{"version":3,"sources":["webpack:///./node_modules/devextreme/esm/localization/language_codes.js","webpack:///./node_modules/devextreme/esm/localization/cldr-data/first_day_of_week_data.js","webpack:///./node_modules/devextreme/esm/localization/intl/date.js","webpack:///./node_modules/devextreme/esm/localization/date.js","webpack:///./src/views/modules/wating-list/WatingList.vue?7b85","webpack:///./src/views/modules/wating-list/WatingList.js","webpack:///./src/views/modules/wating-list/WatingList.js?732a","webpack:///./src/views/modules/wating-list/WatingList.vue","webpack:///./src/api/booking.js","webpack:///./src/api/caddy-calendar.js","webpack:///./node_modules/devextreme/esm/localization/ldml/date.formatter.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.utils.js","webpack:///./node_modules/devextreme/esm/localization/ldml/date.format.js","webpack:///./node_modules/devextreme/esm/localization/default_date_names.js","webpack:///./src/views/modules/wating-list/WatingList.vue?1481","webpack:///./node_modules/devextreme/esm/format_helper.js","webpack:///./node_modules/devextreme/esm/ui/shared/filtering.js","webpack:///./node_modules/devextreme/esm/localization/ldml/date.parser.js","webpack:///./src/views/modules/ultils/ShortKey.vue?144b","webpack:///src/views/modules/ultils/ShortKey.vue","webpack:///./src/views/modules/ultils/ShortKey.vue?9428","webpack:///./src/views/modules/ultils/ShortKey.vue","webpack:///./node_modules/jszip/dist/jszip.min.js","webpack:///./node_modules/devextreme-vue/data-grid.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.modules.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.core.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.column_state_mixin.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.columns_view.js","webpack:///./node_modules/devextreme/esm/ui/shared/accessibility.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.accessibility.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.column_headers.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.column_headers.js","webpack:///./node_modules/devextreme/esm/core/utils/date_serialization.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.columns_controller.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.columns_controller.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.data_source_adapter.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.data_source_adapter.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.data_controller.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.data_controller.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.sorting_mixin.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.sorting.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.sorting.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.rows.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.rows.js","webpack:///./node_modules/devextreme/esm/ui/context_menu/ui.menu_base.edit.strategy.js","webpack:///./node_modules/devextreme/esm/ui/context_menu/ui.menu_base.js","webpack:///./node_modules/devextreme/esm/ui/context_menu/ui.context_menu.js","webpack:///./node_modules/devextreme/esm/ui/context_menu.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.context_menu.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.context_menu.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.error_handling.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.error_handling.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.grid_view.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.grid_view.js","webpack:///./node_modules/devextreme/esm/ui/toolbar/ui.toolbar.menu.js","webpack:///./node_modules/devextreme/esm/ui/toolbar/ui.toolbar.utils.js","webpack:///./node_modules/devextreme/esm/ui/drop_down_menu.js","webpack:///./node_modules/devextreme/esm/ui/toolbar/ui.toolbar.drop_down_menu.js","webpack:///./node_modules/devextreme/esm/ui/toolbar.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.header_panel.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.header_panel.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.base.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.state_storing_core.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.state_storing.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.state_storing.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.selection.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.selection.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.column_chooser.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.column_chooser.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.grouping.core.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.utils.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.grouping.expanded.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.grouping.collapsed.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.grouping.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.master_detail.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.master_detail.js","webpack:///./node_modules/devextreme/esm/ui/number_box/utils.js","webpack:///./node_modules/devextreme/esm/ui/number_box/number_box.caret.js","webpack:///./node_modules/devextreme/esm/ui/number_box/number_box.spin.js","webpack:///./node_modules/devextreme/esm/ui/number_box/number_box.spins.js","webpack:///./node_modules/devextreme/esm/ui/number_box/number_box.base.js","webpack:///./node_modules/devextreme/esm/ui/number_box/number_box.mask.js","webpack:///./node_modules/devextreme/esm/ui/number_box/number_box.js","webpack:///./node_modules/devextreme/esm/ui/number_box.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_box.mask.parts.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_utils.js","webpack:///./node_modules/devextreme/esm/events/gesture/swipeable.js","webpack:///./node_modules/devextreme/esm/ui/calendar/ui.calendar.navigator.js","webpack:///./node_modules/devextreme/esm/ui/calendar/ui.calendar.base_view.js","webpack:///./node_modules/devextreme/esm/ui/calendar/ui.calendar.views.js","webpack:///./node_modules/devextreme/esm/ui/calendar/ui.calendar.js","webpack:///./node_modules/devextreme/esm/ui/calendar.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_box.strategy.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_box.strategy.calendar.js","webpack:///./node_modules/devextreme/esm/renovation/ui/scroll_view/utils/scroll_direction.js","webpack:///./node_modules/devextreme/esm/renovation/ui/scroll_view/utils/convert_location.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_view_roller.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_view.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_box.strategy.date_view.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_box.strategy.native.js","webpack:///./node_modules/devextreme/esm/ui/box.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.time_view.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_box.strategy.calendar_with_time.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_box.strategy.list.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_box.base.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_box.mask.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_box.js","webpack:///./node_modules/devextreme/esm/ui/shared/ui.editor_factory_mixin.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.editor_factory.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.editor_factory.js","webpack:///./node_modules/devextreme/esm/ui/dialog.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.editing_constants.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.editing.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.editing.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.editing_row_based.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.editing_row_based.js","webpack:///./node_modules/devextreme/esm/ui/form/ui.form.items_runtime_info.js","webpack:///./node_modules/devextreme/esm/ui/multi_view/ui.multi_view.animation.js","webpack:///./node_modules/devextreme/esm/ui/multi_view.js","webpack:///./node_modules/devextreme/esm/ui/tabs/item.js","webpack:///./node_modules/devextreme/esm/ui/tabs/constants.js","webpack:///./node_modules/devextreme/esm/renovation/ui/scroll_view/utils/get_scroll_left_max.js","webpack:///./node_modules/devextreme/esm/renovation/ui/scroll_view/utils/get_boundary_props.js","webpack:///./node_modules/devextreme/esm/ui/tabs.js","webpack:///./node_modules/devextreme/esm/ui/tab_panel/item.js","webpack:///./node_modules/devextreme/esm/ui/tab_panel.js","webpack:///./node_modules/devextreme/esm/ui/form/ui.form.item_option_action.js","webpack:///./node_modules/devextreme/esm/ui/form/ui.form.utils.js","webpack:///./node_modules/devextreme/esm/ui/form/ui.form.item_options_actions.js","webpack:///./node_modules/devextreme/esm/ui/responsive_box.js","webpack:///./node_modules/devextreme/esm/ui/form/constants.js","webpack:///./node_modules/devextreme/esm/ui/validation/default_adapter.js","webpack:///./node_modules/devextreme/esm/ui/validator.js","webpack:///./node_modules/devextreme/esm/ui/form/ui.form.layout_manager.utils.js","webpack:///./node_modules/devextreme/esm/ui/form/components/label.js","webpack:///./node_modules/devextreme/esm/ui/form/components/field_item.js","webpack:///./node_modules/devextreme/esm/ui/form/components/button_item.js","webpack:///./node_modules/devextreme/esm/ui/form/components/empty_item.js","webpack:///./node_modules/devextreme/esm/ui/form/ui.form.layout_manager.js","webpack:///./node_modules/devextreme/esm/ui/validation_summary.js","webpack:///./node_modules/devextreme/esm/ui/validation_group.js","webpack:///./node_modules/devextreme/esm/ui/form/ui.form.js","webpack:///./node_modules/devextreme/esm/ui/form.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.editing_form_based.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.editing_form_based.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.editing_cell_based.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.editing_cell_based.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.validating.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.validating.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid.core.virtual_data_loader.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.virtual_scrolling_core.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.virtual_scrolling.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.virtual_scrolling.js","webpack:///./node_modules/devextreme/esm/ui/overlay/utils.js","webpack:///./node_modules/devextreme/esm/ui/menu/ui.submenu.js","webpack:///./node_modules/devextreme/esm/ui/menu/ui.menu.js","webpack:///./node_modules/devextreme/esm/ui/menu.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.filter_row.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.filter_row.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.header_filter_core.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.header_filter.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.header_filter.js","webpack:///./node_modules/devextreme/esm/ui/filter_builder/between.js","webpack:///./node_modules/devextreme/esm/ui/filter_builder/ui.filter_operations_dictionary.js","webpack:///./node_modules/devextreme/esm/ui/filter_builder/utils.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.filter_custom_operations.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.filter_sync.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.filter_sync.js","webpack:///./node_modules/devextreme/esm/ui/filter_builder/filter_builder.js","webpack:///./node_modules/devextreme/esm/ui/filter_builder.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.filter_builder.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.filter_builder.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.filter_panel.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.filter_panel.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.search.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.search.js","webpack:///./node_modules/devextreme/esm/renovation/component_wrapper/grid_pager.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/utils/get_element_width.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/resizable_container.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/common/base_pager_props.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/common/pager_props.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/info.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/common/keyboard_action_context.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/common/light_button.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/common/consts.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/pages/page.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/pages/large.js","webpack:///./node_modules/devextreme/esm/renovation/ui/editors/common/editor_state_props.js","webpack:///./node_modules/devextreme/esm/renovation/ui/editors/common/editor_label_props.js","webpack:///./node_modules/devextreme/esm/renovation/ui/editors/number_box.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/utils/calculate_values_fitted_width.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/pages/small.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/pages/page_index_selector.js","webpack:///./node_modules/devextreme/esm/renovation/ui/editors/drop_down_editors/select_box.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/page_size/small.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/page_size/large.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/page_size/selector.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/content.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/pager.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/pager.j.js","webpack:///./node_modules/devextreme/esm/ui/pager.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.pager.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.pager.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.columns_resizing_reordering.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.columns_resizing_reordering.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.keyboard_navigation.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/aggregate_calculator.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.keyboard_navigation.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.summary.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.column_fixing.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.column_fixing.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.adaptivity.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.virtual_columns_core.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.adaptivity.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.virtual_columns.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.export.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.virtual_columns.js","webpack:///./node_modules/devextreme/esm/exporter/file_saver.js","webpack:///./node_modules/devextreme/esm/exporter/excel_format_converter.js","webpack:///./node_modules/devextreme/esm/exporter/excel/excel.tag_helper.js","webpack:///./node_modules/devextreme/esm/exporter/excel/excel.cell_alignment_helper.js","webpack:///./node_modules/devextreme/esm/exporter/excel/excel.color_helper.js","webpack:///./node_modules/devextreme/esm/exporter/excel/excel.pattern_fill_helper.js","webpack:///./node_modules/devextreme/esm/exporter/excel/excel.fill_helper.js","webpack:///./node_modules/devextreme/esm/exporter/excel/excel.font_helper.js","webpack:///./node_modules/devextreme/esm/exporter/excel/excel.cell_format_helper.js","webpack:///./node_modules/devextreme/esm/exporter/excel/excel.number_format_helper.js","webpack:///./node_modules/devextreme/esm/exporter/excel/excel.file.js","webpack:///./node_modules/devextreme/esm/exporter/excel_creator.js","webpack:///./node_modules/devextreme/esm/color.js","webpack:///./node_modules/devextreme/esm/core/utils/svg.js","webpack:///./node_modules/devextreme/esm/exporter/image_creator.js","webpack:///./node_modules/devextreme/esm/exporter/svg_creator.js","webpack:///./node_modules/devextreme/esm/exporter/pdf_creator.js","webpack:///./node_modules/devextreme/esm/exporter.js","webpack:///./node_modules/devextreme/esm/ui/button_group.js","webpack:///./node_modules/devextreme/esm/ui/drop_down_button.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.export.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.focus.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.focus.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.row_dragging.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.row_dragging.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.js","webpack:///./node_modules/devextreme/esm/ui/data_grid.js","webpack:///./node_modules/devextreme/esm/exporter/common/export_load_panel.js","webpack:///./node_modules/devextreme/esm/exporter/exceljs/export_format.js","webpack:///./node_modules/devextreme/esm/exporter/exceljs/export_merged_ranges_manager.js","webpack:///./node_modules/devextreme/esm/exporter/exceljs/export.js","webpack:///./node_modules/devextreme/esm/exporter/exceljs/export_data_grid.js","webpack:///./node_modules/devextreme/esm/exporter/exceljs/export_pivot_grid.js","webpack:///./node_modules/devextreme/esm/core/utils/date.js"],"names":["LANGUAGE_CODES","ar","bg","ca","cs","da","de","el","en","es","fi","fr","he","hu","is","it","ja","ko","nl","no","pl","pt","rm","ro","ru","hr","sk","sq","sv","th","tr","ur","id","uk","be","sl","et","lv","lt","tg","fa","vi","hy","az","eu","hsb","mk","tn","xh","zu","af","ka","fo","hi","mt","se","ga","ms","kk","ky","sw","tk","uz","tt","bn","pa","gu","or","ta","te","kn","ml","as","mr","sa","mn","bo","cy","km","lo","gl","kok","syr","si","iu","am","tzm","ne","fy","ps","fil","dv","ha","yo","quz","nso","ba","lb","kl","ig","ii","arn","moh","br","ug","mi","oc","co","gsw","sah","qut","rw","wo","prs","gd","smn","sms","zh","nn","bs","sma","nb","sr","dsb","smj","getLanguageId","locale","agq","ak","asa","ast","bas","bem","bez","bm","ce","cgg","ckb","dje","dua","dyo","ee","eo","ewo","ff","fur","gv","ia","jgo","jmc","kab","kde","kea","khq","kkj","ksb","ksf","ksh","ku","kw","lag","lg","ln","lrc","lu","mfe","mg","mgo","mua","mzn","naq","nds","nmg","nnh","nus","nyn","os","pcm","rn","rof","rwk","sbp","sc","ses","sg","shi","so","teo","to","twq","vai","vun","wae","xog","yav","yi","zgh","SYMBOLS_TO_REMOVE_REGEX","getIntlFormatter","format","date","timeZoneName","year","getFullYear","recognizableAsTwentyCentury","String","length","temporaryYearValue","utcDate","Date","UTC","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","setFullYear","utcFormat","extend","timeZone","formatDateTime","formattersCache","getFormatter","key","JSON","stringify","Intl","DateTimeFormat","replace","formatNumber","number","NumberFormat","getAlternativeNumeralsMap","numeralsMapCache","i","normalizeNumerals","dateString","alternativeNumeralsMap","split","map","sign","join","removeLeadingZeroes","str","dateStringEquals","actual","expected","normalizeMonth","text","intlFormats","day","dayofweek","weekday","longdate","month","longdatelongtime","hour","minute","second","longtime","monthandday","monthandyear","shortdate","shorttime","shortyear","Object","defineProperty","get","defaultOptions","resolvedOptions","getIntlFormat","toLowerCase","monthNameStrategies","standalone","monthIndex","monthFormat","parts","filter","part","indexOf","engine","getMonthNames","type","wide","abbreviated","narrow","Array","apply","_","getDayNames","result","dayIndex","short","getPeriodNames","hour12Formatter","hour12","hours","hourNumberText","timeParts","biggerPart","trim","_format","formatter","intlFormat","formatType","this","callBase","arguments","parse","parser","_parseDateBySimpleFormat","formatParts","getFormatParts","dateParts","dateArgs","_generateDateArgs","constructValidDate","ampmShift","parsedDate","hoursShift","minutes","seconds","currentDate","forEach","formatPart","index","datePart","parsed","parseInt","formatUsesMonthName","formatUsesDayName","getTimeSeparator","formattedDate","name","value","sort","a","b","DEFAULT_DAY_OF_WEEK_INDEX","hasIntl","FORMATS_TO_PATTERN_MAP","quarterandyear","shortdateshorttime","quarter","millisecond","possiblePartPatterns","milliseconds","dateLocalization","_getPatternByFormat","_expandPattern","pattern","partName","possiblePatterns","includes","push","getQuarterNames","is24HourFormat","amTime","pmTime","amTimeFormatted","pmTimeFormatted","isNaN","convertDigits","ldmlFormat","that","e","errors","log","getTime","firstDayOfWeekIndex","getValueByClosestLocale","inject","render","_vm","_h","$createElement","_c","_self","attrs","ref","daysOfWeek","monthNames","firstDay","model","search","callback","$$v","$set","expression","$t","on","$event","getWatingList_RBKWL1","_v","_s","isLoading","staticClass","heightTable","listWatingList","saveWatingList","saveGridInstance","scopedSlots","_u","fn","data","convertLocalDateToTimeHotel","Time","dayjs","OpenDate","tz","staticStyle","optionPerPage","perPage","proxy","exportExcel","_l","item","field","isShow","caption","alignment","cellTemplate","editorOptions","allowFiltering","width","band","j","bands","customText","_e","ShortCutKey","allChildComponentClosed","onTriggeredEventHandler","staticRenderFns","dataGridRef","components","DxToolbar","DxItem","DxTexts","DxDataGrid","DxColumn","DxEditing","DxFilterRow","DxHeaderFilter","DxGroupPanel","DxGrouping","DxScrolling","DxPaging","DxPager","DxSummary","DxLookup","DxTotalItem","DxGroupItem","DxMasterDetail","DxStringLengthRule","DxRequiredRule","DxRangeRule","DxValueFormat","DxColumnChooser","DxColumnFixing","DxSelection","DxExport","DxLoadPanel","ShortKey","KeyWord","StartTime","getUTC","EndTime","currentPage","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","A","F","S","Z","dataGridInstance","configTable","displayFormat","useMaskBehavior","windowHeight","localStorage","getItem","mounted","window","innerHeight","computed","dataGrid","$refs","instance","created","_this","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","prev","next","stop","watch","methods","component","_this2","changes","_ref","_callee2","x","time","_utctime","body","_hour","_minute","_time","utctime","_hour2","_minute2","_time2","_hour3","_minute3","_time3","_body","_context2","FullName","showToast","set","utc","BookingWaitingList","Id","PhoneNumber","CaddyCode","Note","AddWatingList","DeleteWatingList","BookingWaitingListId","_x","_x2","_this3","_callee3","response","_context3","booking","api_RBKWL1","sent","Status","Data","showResToast","_this4","_callee4","_context4","api_UBKWL1","_this5","_callee5","_context5","api_DBKWL1","_this6","workbook","Workbook","worksheet","addWorksheet","exportDataGrid","autoFilterEnabled","PrintSelectedRowsOnly","topLeftCell","row","column","customizeCell","options","gridCell","excelCell","rowType","dataField","convertUTC","then","cellRange","headerRow","getRow","height","mergeCells","getCell","concat","font","size","horizontal","footerRowIndex","footerRow","color","argb","italic","xlsx","writeBuffer","buffer","saveAs","Blob","payload","_this7","evt","ctrlKey","input","focus","setTimeout","saveEditData","cancelEditData","api_UBK17","fetch","ROOT","API_UBK17","requestOptions","postBody","handleResponse","api_RBK13","API_RBK13","api_RBK15","API_RBK15","api_UBK16","API_UBK16","api_IBKR01","API_IBKR01","api_DBKR01","API_DBKR01","api_RBKR01","API_RBKR01","getListTeeTimeBooking","GET_LIST_TEE_BOOKING_API","API_UBKWL1","API_RBKWL1","API_DBKWL1","api_RPM01F","API_RPM01F","api_RCL03","API_RCL03","getListNational","GET_LIST_NATIONAL_API","getListGroup","GET_LIST_GROUP_API","getListBooking","GET_LIST_BOOKING_API","getGolfClasses","GOLF_CLASSES_API","getListResources","RESOURCES_API","createBooking","CREATE_BOOKING_API","addMember","ADD_MEMBER_API","getDetailBooking2A","DETAIL_BOOKING_2A_API","getDetailBooking2B","DETAIL_BOOKING_2B_API","getDetailBooking2C","DETAIL_BOOKING_2C_API","getRateCode","RATE_CODE_API","checkIn","CHECK_IN","combineGroup","COMBINE_GROUP_API","getListSources","SOURCES_LIST_API","updateRateCode","UPDATE_RATE_CODE_API","SplitGroup","SPLITGROUP_API","updateCaddy","BOOKING_UPDATE_CADDY","getListCaddy","LIST_CADDY","getListServices","LIST_SERVICES_API","updateBookingInfo","UPDATE_BOOKING_INFO","getConfigInfo","GET_CONFIG_API","noShow","NO_SHOW","getRBK02C","CHECK_OUT","api_RBK02D","API_RBK02D","getRPM01","GET_LIST_PAYMENT","createPayment","CREATE_PAYMENT_API","createPaymentDetail","CREATE_PAYMENT_DETAIL_API","getListPaymentMethod","GET_LIST_PAYMENT_METHOD","getListPaymentDetail","GET_LIST_PAYMENT_DETAIL","updateBookingService","UPDATE_BOOKING_SERVICE","deletePaymentDetail","DELETE_PAYMENT_DETAIL","deletePayment","DELETE_PAYMENT","getListServicesFee","GET_LIST_SERVICES","getListReasonDiscount","GET_LIST_REASON_DISCOUNT","updateTeeTimeForBooking","UPDATE_TEE_TIME_FOR_BOOKING","updateNoteAndLockerForBooking","UPDATE_LOCKER_AND_NOTE_FOR_BOOKING","api_UBK09","API_UBK09","getBookingRetail","GET_BOOKING_RETAIL","api_RBK09","API_RBK09","api_RCS01","API_RCS01","api_RME05","API_RME05","api_UBK04","API_UBK04","api_UBK07","API_UBK07","api_DBK01","API_DBK01","api_DBK02","API_DBK02","api_UPM02","API_UPM02","api_ICI02","API_ICI02","api_RPM02D","API_RPM02D","api_IPM02D","API_IPM02D","api_DPM02D","API_DPM02D","api_UPM02D","API_UPM02D","api_RPF02","API_RPF02","api_RHS01","API_RHS01","api_RIV01","API_RIV01","api_UPM01","API_UPM01","api_UBK12","API_UBK12","api_UBK13","API_UBK13","api_RTE03","API_RTE03","api_RTB02","API_RTB02","api_RBK10","API_RBK10","api_DPM06","API_DPM06","api_RPM02M","API_RPM02M","api_IPM02R","API_IPM02R","api_IEM01","API_IEM01","api_IEM02","API_IEM02","api_DPM07","API_DPM07","api_UBK11","API_UBK11","api_RME01F","API_RME01F","api_DPM09","API_DPM09","api_RRA05","API_RRA05","api_ICI03","API_ICI03","api_VC_RV03","API_VC_RV03","api_VC_RV04","API_VC_RV04","api_VC_RV05","API_VC_RV05","api_UBK10","API_UBK10","api_UPM06","API_UPM06","api_RRPDF","API_RRPDF","api_RBK06","API_RBK06","api_VC_RV06","API_VC_RV06","api_RRA04A","API_RRA04A","api_UBK15","API_UBK15","api_RBK12","API_RBK12","api_UPM07","API_UPM07","getListCaddyCalendar","API_RCAC01","api_UCAC05","API_UCAC05","api_UCAC04","API_UCAC04","api_RCWS01","API_RCWS01","api_RCAC02","API_RCAC02","api_RCA03","API_RCA03","api_RCA05","API_RCA05","api_ICAC01","API_ICAC01","GET_LIST_CADDY","updateCaddyCalendar","API_UCAC01","api_DCAC01","API_DCAC01","api_UCAC02","API_UCAC02","api_RCAC03","API_RCAC03","caddyCalendar","leftPad","FORMAT_TYPES","3","4","5","LDML_FORMATTERS","y","count","useUtc","toString","M","Math","min","L","Q","floor","E","period","d","H","h","m","s","substr","timezoneOffset","getTimezoneOffset","signPart","timezoneOffsetAbs","abs","hoursPart","minutesPart","X","charIndex","char","isCurrentCharEqualsNext","charCount","isEscaping","slice","DATAGRID_SELECTION_DISABLED_CLASS","DATAGRID_GROUP_OPENED_CLASS","DATAGRID_GROUP_CLOSED_CLASS","DATAGRID_EXPAND_CLASS","NO_DATA_CLASS","SCROLLING_MODE_INFINITE","SCROLLING_MODE_VIRTUAL","LEGACY_SCROLLING_MODE","SCROLLING_MODE_OPTION","ROW_RENDERING_MODE_OPTION","DATE_INTERVAL_SELECTORS","getIntervalSelector","calculateCellValue","isDateType","dataType","nameIntervalSelector","groupInterval","Number","equalSelectors","selector1","selector2","originalCallback","columnIndex","setEmptyText","$container","textContent","normalizeSortingInfo","isExpanded","formatValue","valueText","formatObject","getDisplayFormat","target","customizeText","call","getSummaryText","summaryItem","summaryTexts","columnCaption","summaryType","valueFormat","getWidgetInstance","$element","editorData","dxComponents","widgetName","equalFilterParameters","filter1","filter2","isArray","filterValue","normalizeGroupingLoadOptions","group","selector","renderNoDataText","element","noDataClass","addWidgetPrefix","noDataElement","find","last","isVisible","_dataController","isEmpty","addClass","appendTo","removeClass","_getNoDataText","renderLoadPanel","isLocalStore","loadPanelOptions","_loadPanel","remove","option","enabled","shading","message","container","_createComponent","$window","of","boundary","collision","getIndexByKey","items","keyName","combineFilters","filters","operation","resultFilter","_filters$i","checkChanges","changeNames","changesWithChangeNamesCount","proxyMethod","methodName","defaultResult","dataSource","_dataSource","getFormatOptionsByColumn","trueText","falseText","getDisplayValue","displayValueMap","calculateDisplayValue","lookup","calculateGroupValue","getGroupRowSummaryText","summaryItems","getFormatByDataType","getHeaderFilterGroupParameters","remoteGrouping","getGroupInterval","interval","bind","sortingMethod","compare","sortParameters1","sortParameters2","ignoreIsExpanded","desc","Boolean","getPointsByColumns","pointCreated","isVertical","startColumnIndex","offset","rtlEnabled","cellsLength","notCreatePoint","eq","css","point","left","top","prevItemOffset","getExpandCellTemplate","allowRenderToDetachedContainer","isContinuation","isNewRow","rowsView","getView","setAria","localize","getSelectionRange","focusedElement","selectionStart","selectionEnd","setSelectionRange","selectionRange","focusAndSelectElement","isFocused","trigger","isSelectTextOnEditingStart","editor","closest","_loadItemDeferred","done","select","getLastResizableColumnIndex","columns","resultWidths","lastColumnIndex","hasResizableColumns","some","command","fixed","allowResizing","isElementInCurrentGrid","controller","$grid","getWidgetContainerClass","parent","isVirtualRowRendering","rowRenderingMode","isVirtualMode","isAppendMode","getPixelRatio","devicePixelRatio","browser","mozilla","lookupDataSourceOptions","isWrapped","normalizeLookupDataSource","defaultCalculateCellValue","cachedUniqueRelevantItems","hasGroupPaging","remoteOperations","groupPaging","hasLookupOptimization","displayField","lookupDataSource","load","loadOptions","resolve","take","skip","fail","newDataSource","lookupItems","_column$displayValueM","valueExpr","displayExpr","store","_filter","flatMap","storeLoadOptions","arr","promise","ARABIC_COMMA","FORMAT_SEPARATORS","AM_PM_PATTERN","checkDigit","code","charCodeAt","zeroCode","checkPatternContinue","patterns","isDigit","nextChar","isDigitChanged","getPatternStartIndex","defaultPattern","getDifference","processedIndexes","patternsFilter","unshift","replaceCharsCore","indexes","patternPositions","baseCharIndex","patternIndex","replaceChars","letterCount","max","pop","ESCAPE_CHARS_REGEXP","escapeChars","escapeIndexes","match","isCurrentCharEscaped","isPrevCharEscaped","isNextCharEscaped","getFormat","replacedPatterns","datePatterns","test","diff","MONTHS","DAYS","PERIODS","QUARTERS","cutCaptions","captions","lengthByFormat","formatIsValid","valueIsValid","getTimeFormat","showSecond","_normalizeFormat","getDateFormatByDifferences","dateDifferences","intervalFormat","resultFormat","needSpecialSecondFormatter","getDateFormatByTicks","ticks","maxDiff","currentDiff","getDatesDifferences","getDateFormatByTickInterval","startValue","endValue","tickInterval","dateUnitInterval","correctDateDifferences","differences","minDate","maxDate","getDateUnitInterval","week","DEFAULT_DATE_INTERVAL","DEFAULT_DATETIME_INTERVAL","dateIntervals","headerFilter","getFilterSelector","getFilterExpressionByRange","endFilterValue","startFilterExpression","endFilterExpression","setDate","getFilterExpressionForDate","selectedFilterOperation","dateStart","dateEnd","dateInterval","values","dateValue","getFilterExpressionForNumber","startFilterValue","condition","defaultCalculateFilterExpression","isSearchByDisplayValue","monthRegExpGenerator","keys","PATTERN_REGEXPS","countSuffix","timeSeparator","w","parseNumber","caseInsensitiveIndexOf","array","monthPatternParser","reduce","PATTERN_PARSERS","dayNames","periodNames","ORDERED_PATTERNS","PATTERN_SETTERS","datePartValues","hourPartValue","setHours","getSameCharCount","createPattern","getRegExpInfo","regexpText","stubText","addPreviousStub","isEscapeChar","regexpPart","isPossibleForParsingFormat","warn","regexp","RegExp","digitFieldSymbols","isDigitPattern","possibleForParsing","ambiguousDigitPatternsCount","every","getPatternSetters","setPatternPart","patternChar","partSetter","partParser","setPatternPartFromNow","now","setterName","getterName","getShortPatterns","fullPatterns","getMaxOrderedPatternIndex","getOrderedFormatPatterns","formatPatterns","otherPatterns","getParser","regExpInfo","regExpResult","exec","maxPatternIndex","orderedFormatPatterns","regExpPattern","regExpText","supportedShortcuts","props","shortcuts","required","isActive","onUseKeyboardShortcuts","checkallChildComponentClosed","IsActive","keyCode","which","isKeySupported","$emit","preventDefault","document","addEventListener","beforeDestroy","removeEventListener","module","exports","o","u","r","t","require","l","n","Error","1","c","p","encode","f","getTypeOf","charAt","decode","uint8array","Uint8Array","2","compressedSize","uncompressedSize","crc32","compression","compressedContent","prototype","getContentWorker","Promise","pipe","uncompressWorker","streamInfo","data_length","getCompressedWorker","withStreamInfo","createWorkerFrom","compressWorker","STORE","magic","DEFLATE","base64","binary","dir","createFolders","compressionOptions","comment","unixPermissions","dosPermissions","6","lie","7","Uint16Array","Uint32Array","_pako","_pakoAction","_pakoOptions","meta","inherits","processChunk","_createPako","transformTo","flush","cleanUp","raw","level","onData","pako","8","fromCharCode","file","O","utf8encode","I","g","v","k","z","C","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCFullYear","getUTCMonth","getUTCDate","B","fileRecord","R","LOCAL_FILE_HEADER","dirRecord","CENTRAL_FILE_HEADER","bytesWritten","zipComment","zipPlatform","encodeFileName","streamFiles","accumulate","contentBuffer","dirRecords","currentSourceOffset","entriesCount","currentFile","_sources","percent","openedSource","closedSource","DATA_DESCRIPTOR","shift","CENTRAL_DIRECTORY_END","prepareNextSource","previous","isPaused","pause","resume","registerPrevious","end","error","generatedError","lock","9","generateWorker","platform","_compressWorker","10","files","create","root","clone","loadAsync","support","defaults","version","external","11","decompressed","checkCRC32","optimizedBinaryString","decodeFileName","utf8decode","isNode","isStream","reject","prepareContent","all","fileNameStr","fileCommentStr","unsafeOriginalName","12","_upstreamEnded","_bindStream","_stream","13","Readable","_helper","emit","_read","14","Buffer","newBufferFrom","from","allocBuffer","alloc","fill","isBuffer","15","toUpperCase","substring","lastIndexOf","folder","generate","generateInternalStream","mimeType","checkSupport","generateAsync","generateNodeStream","toNodejsStream","16","stream","17","byteAt","zero","lastIndexOfSignature","readAndCheckSignature","readData","checkOffset","18","checkIndex","setIndex","readInt","readString","readDate","19","20","21","subarray","22","23","ZIP64_CENTRAL_DIRECTORY_LOCATOR","ZIP64_CENTRAL_DIRECTORY_END","24","destType","25","26","propName","27","dataIsReady","_tickScheduled","_tickAndRepeat","delay","isFinished","_tick","28","extraStreamInfo","isLocked","_listeners","mergeStreamInfo","hasOwnProperty","29","nodestream","_internalType","_outputType","_mimeType","newBlob","_worker","objectMode","30","string","arraybuffer","ArrayBuffer","nodebuffer","blob","self","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","MSBlobBuilder","append","getBlob","31","leftOver","applyFromCharCode","Utf8DecodeWorker","Utf8EncodeWorker","32","stringifyByChunk","stringifyByChar","applyCanBeUsed","byteLength","MAX_VALUE_16BITS","MAX_VALUE_32BITS","pretty","setImmediate","FileReader","onload","onerror","readAsArrayBuffer","setimmediate","33","checkSignature","reader","isSignature","readBlockEndOfCentral","diskNumber","diskWithCentralDirStart","centralDirRecordsOnThisDisk","centralDirRecords","centralDirSize","centralDirOffset","zipCommentLength","readBlockZip64EndOfCentral","zip64EndOfCentralSize","zip64ExtensibleData","readBlockZip64EndOfCentralLocator","diskWithZip64CentralDirStart","relativeOffsetEndOfZip64CentralDir","disksCount","readLocalFiles","localHeaderOffset","readLocalPart","handleUTF8","processAttributes","readCentralDir","zip64","readCentralPart","readEndOfCentral","prepareReader","34","isEncrypted","bitFlag","useUTF8","fileNameLength","fileName","compressionMethod","versionMadeBy","extraFieldsLength","fileCommentLength","diskNumberStart","internalFileAttributes","externalFileAttributes","readExtraFields","parseZIP64ExtraField","fileComment","extraFields","findExtraFieldUnicodePath","findExtraFieldUnicodeComment","35","_data","_dataBinary","internalStream","_decompressWorker","async","nodeStream","36","MutationObserver","WebKitMutationObserver","createTextNode","observe","characterData","MessageChannel","createElement","onreadystatechange","parentNode","removeChild","documentElement","appendChild","port1","onmessage","port2","postMessage","global","37","TypeError","state","queue","outcome","onFulfilled","callFulfilled","otherCallFulfilled","onRejected","callRejected","otherCallRejected","status","finally","constructor","catch","race","immediate","38","assign","39","method","chunkSize","windowBits","memLevel","strategy","gzip","err","msg","ended","chunks","strm","avail_out","deflateInit2","header","deflateSetHeader","dictionary","string2buf","deflateSetDictionary","_dict_set","next_in","avail_in","output","Buf8","next_out","deflate","onEnd","buf2binstring","shrinkBuf","deflateEnd","flattenChunks","Deflate","deflateRaw","40","inflateInit2","Z_OK","inflateGetHeader","Z_FINISH","Z_NO_FLUSH","binstring2buf","inflate","Z_NEED_DICT","inflateSetDictionary","Z_BUF_ERROR","Z_STREAM_END","Z_SYNC_FLUSH","utf8border","buf2string","arraySet","inflateEnd","Inflate","inflateRaw","ungzip","41","Int32Array","setTyped","Buf16","Buf32","42","43","44","Z_PARTIAL_FLUSH","Z_FULL_FLUSH","Z_BLOCK","Z_TREES","Z_ERRNO","Z_STREAM_ERROR","Z_DATA_ERROR","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_DEFAULT_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_DEFAULT_STRATEGY","Z_BINARY","Z_TEXT","Z_UNKNOWN","Z_DEFLATED","45","46","T","D","pending","pending_buf","pending_out","total_out","N","_tr_flush_block","block_start","strstart","U","P","max_chain_length","prev_length","nice_match","w_size","w_mask","good_match","lookahead","match_start","window_size","hash_size","head","adler","total_in","insert","ins_h","hash_shift","hash_mask","match_length","_tr_tally","max_lazy_match","last_lit","W","prev_match","match_available","good_length","max_lazy","nice_length","max_chain","func","pending_buf_size","gzhead","gzindex","last_flush","w_bits","hash_bits","dyn_ltree","dyn_dtree","bl_tree","l_desc","d_desc","bl_desc","bl_count","heap","heap_len","heap_max","depth","l_buf","lit_bufsize","d_buf","opt_len","static_len","matches","bi_buf","bi_valid","G","data_type","_tr_init","K","Y","deflateInit","deflateReset","deflateResetKeep","hcrc","extra","_tr_align","_tr_stored_block","deflateInfo","47","xflags","extra_len","48","dmax","wsize","whave","wnext","hold","bits","lencode","distcode","lenbits","distbits","mode","sane","49","havedict","flags","check","total","wbits","ncode","nlen","ndist","have","lens","work","lendyn","distdyn","back","was","inflateReset","inflateReset2","inflateResetKeep","inflateInit","inflateInfo","50","51","0","52","static_tree","extra_bits","extra_base","elems","max_length","has_stree","dyn_tree","max_code","stat_desc","V","q","J","53","54","getPrototypeOf","process","nextTick","importScripts","random","attachEvent","Function","args","clearImmediate","source","__importDefault","mod","__esModule","DxLabel","DxKeyboardNavigation","DxHide","DxGroupOperationDescriptions","DxGroupingTexts","DxFrom","DxFormItem","DxFormat","DxForm","DxFilterPanelTexts","DxFilterPanel","DxFilterOperationDescriptions","DxFilterBuilderPopup","DxFilterBuilder","DxFieldLookup","DxField","DxExportTexts","DxEmailRule","DxEditingTexts","DxDataGridHeaderFilterTexts","DxDataGridHeaderFilter","DxCustomRule","DxCustomOperation","DxCursorOffset","DxCompareRule","DxColumnLookup","DxColumnHeaderFilter","DxColumnFixingTexts","DxCollision","DxColCountByScreen","DxChange","DxButton","DxBoundaryOffset","DxAt","DxAsyncRule","DxAnimation","DxValidationRule","DxToolbarItem","DxTo","DxSummaryTexts","DxStateStoring","DxSorting","DxSortByGroupSummaryInfo","DxShow","DxSearchPanel","DxRowDragging","DxRemoteOperations","DxPosition","DxPopup","DxPatternRule","DxOperationDescriptions","DxOffset","DxNumericRule","DxMy","data_grid_1","index_1","index_2","createComponent","accessKey","activeStateEnabled","allowColumnReordering","allowColumnResizing","autoNavigateToFocusedRow","cacheEnabled","cellHintEnabled","columnAutoWidth","columnChooser","columnFixing","columnHidingEnabled","columnMinWidth","columnResizingMode","columnWidth","customizeColumns","customizeExportData","dataRowTemplate","dateSerializationFormat","disabled","editing","elementAttr","errorRowEnabled","export","filterBuilder","filterBuilderPopup","filterPanel","filterRow","filterSyncEnabled","focusedColumnIndex","focusedRowEnabled","focusedRowIndex","focusedRowKey","focusStateEnabled","grouping","groupPanel","highlightChanges","hint","hoverStateEnabled","keyboardNavigation","keyExpr","loadPanel","masterDetail","noDataText","onAdaptiveDetailRowPreparing","onCellClick","onCellDblClick","onCellHoverChanged","onCellPrepared","onContentReady","onContextMenuPreparing","onDataErrorOccurred","onDisposing","onEditCanceled","onEditCanceling","onEditingStart","onEditorPrepared","onEditorPreparing","onExported","onExporting","onFileSaving","onFocusedCellChanged","onFocusedCellChanging","onFocusedRowChanged","onFocusedRowChanging","onInitialized","onInitNewRow","onKeyDown","onOptionChanged","onRowClick","onRowCollapsed","onRowCollapsing","onRowDblClick","onRowExpanded","onRowExpanding","onRowInserted","onRowInserting","onRowPrepared","onRowRemoved","onRowRemoving","onRowUpdated","onRowUpdating","onRowValidating","onSaved","onSaving","onSelectionChanged","onToolbarPreparing","pager","paging","renderAsync","repaintChangesOnly","rowAlternationEnabled","rowDragging","rowTemplate","scrolling","searchPanel","selectedRowKeys","selection","selectionFilter","showBorders","showColumnHeaders","showColumnLines","showRowLines","sortByGroupSummaryInfo","sorting","stateStoring","summary","syncLookupFilterValues","tabIndex","toolbar","twoWayBindingEnabled","visible","wordWrapEnabled","emits","$_instance","beforeCreate","$_WidgetClass","default","$_hasAsyncTemplate","$_expectedChildren","isCollectionItem","optionName","dataGridHeaderFilter","createConfigurationComponent","hide","show","$_optionName","ignoreEmptyValue","reevaluate","validationCallback","$_isCollectionItem","$_predefinedProps","cssClass","icon","onClick","template","insertAfterKey","insertBeforeKey","md","sm","xs","allowEditing","allowExporting","allowFixing","allowGrouping","allowHeaderFiltering","allowHiding","allowReordering","allowSearch","allowSorting","autoExpandGroup","buttons","calculateFilterExpression","calculateSortValue","editCellTemplate","encodeHtml","filterOperations","filterType","filterValues","fixedPosition","formItem","groupCellTemplate","grouped","groupIndex","headerCellTemplate","hidingPriority","isBand","minWidth","ownerBand","resized","setCellValue","showEditorAlways","showInColumnChooser","showWhenGrouped","sortIndex","sortOrder","validationRules","visibleIndex","AsyncRule","button","columnHeaderFilter","columnLookup","CompareRule","CustomRule","EmailRule","NumericRule","PatternRule","RangeRule","RequiredRule","StringLengthRule","validationRule","emptyPanelText","searchTimeout","title","texts","columnFixingTexts","fix","leftPosition","rightPosition","unfix","searchMode","allowClearing","comparisonTarget","comparisonType","dataTypes","editorTemplate","hasValue","dataGridHeaderFilterTexts","cancel","emptyValue","ok","allowAdding","allowDeleting","allowUpdating","confirmDelete","editColumnName","editRowKey","form","newRowPosition","popup","refreshMode","selectTextOnEditStart","startEditAction","useIcons","change","editingTexts","addRow","cancelAllChanges","cancelRowChanges","confirmDeleteMessage","confirmDeleteTitle","deleteRow","editRow","saveAllChanges","saveRowChanges","undeleteRow","validationCancelChanges","allowExportSelectedData","customizeExcelCell","excelFilterEnabled","excelWrapTextEnabled","formats","ignoreExcelErrors","proxyUrl","exportTexts","exportAll","exportSelectedRows","exportTo","defaultFilterOperation","fieldLookup","allowHierarchicalFields","bindingOptions","customOperations","fields","filterOperationDescriptions","groupOperationDescriptions","groupOperations","maxGroupLevel","onFocusIn","onFocusOut","onValueChanged","customOperation","animation","closeOnOutsideClick","contentTemplate","copyRootClassesToWrapper","deferRendering","dragAndResizeArea","dragEnabled","dragOutsideBoundary","fullScreen","hideOnOutsideClick","hideOnParentScroll","maxHeight","maxWidth","minHeight","onHidden","onHiding","onResize","onResizeEnd","onResizeStart","onShowing","onShown","onTitleRendered","position","resizeEnabled","restorePosition","shadingColor","showCloseButton","showTitle","titleTemplate","toolbarItems","wrapperAttr","between","contains","endsWith","equal","greaterThan","greaterThanOrEqual","isBlank","isNotBlank","lessThan","lessThanOrEqual","notContains","notEqual","startsWith","filterEnabled","filterPanelTexts","clearFilter","createFilter","filterEnabledHint","applyFilter","applyFilterText","betweenEndText","betweenStartText","operationDescriptions","resetOperationText","showAllText","showOperationChooser","alignItemLabels","alignItemLabelsInAllGroups","colCount","colCountByScreen","customizeItem","formData","labelLocation","labelMode","minColWidth","onEditorEnterKey","onFieldDataChanged","optionalMark","readOnly","requiredMark","requiredMessage","screenByWidth","scrollingEnabled","showColonAfterLabel","showOptionalMark","showRequiredMark","showValidationSummary","validationGroup","currency","precision","useCurrencyAccountingStyle","colSpan","editorType","helpText","isRequired","itemType","label","opacity","scale","allowCollapsing","autoExpandAll","contextMenuEnabled","expandMode","groupingTexts","groupByThisColumn","groupContinuedMessage","groupContinuesMessage","ungroup","ungroupAll","alignByColumn","showInColumn","showInGroupFooter","skipEmptyValues","and","notAnd","notOr","allowColumnDragging","complete","direction","duration","easing","staggerDelay","start","html","locateInMenu","location","menuItemTemplate","showText","widget","editOnKeyPress","enterKeyAction","enterKeyDirection","showColon","indicatorSrc","showIndicator","showPane","allowedPageSizes","displayMode","infoText","showInfo","showNavigationButtons","showPageSizeSelector","pageIndex","pageSize","toolbarItem","at","boundaryOffset","my","filtering","allowDropInsideItem","autoScroll","cursorOffset","dragDirection","dragTemplate","dropFeedbackMode","handle","onAdd","onDragChange","onDragEnd","onDragMove","onDragStart","onRemove","onReorder","scrollSensitivity","scrollSpeed","showDragIcons","columnRenderingMode","preloadEnabled","scrollByContent","scrollByThumb","showScrollbar","useNative","highlightCaseSensitive","highlightSearchText","placeholder","searchVisibleColumnsOnly","allowSelectAll","deferred","maxFilterLengthInRequest","selectAllMode","showCheckBoxesMode","groupColumn","ascendingText","clearText","descendingText","showSortIndexes","customLoad","customSave","savingTimeout","storageKey","calculateCustomSummary","groupItems","recalculateWhileEditing","totalItems","groupItem","totalItem","avg","avgOtherColumn","maxOtherColumn","minOtherColumn","sum","sumOtherColumn","WIDGET_WITH_LEGACY_CONTAINER_NAME","ModuleItem","inherit","_endUpdateCore","ctor","_updateLockCount","_actions","_actionConfigs","callbackNames","callbackFlags","unique","syncStrategy","init","publicMethods","beginUpdate","endUpdate","optionCache","_optionCache","_silentOption","_setOptionWithoutOptionChange","off","optionChanged","createAction","handled","getAction","actionName","$target","prefix","setAttribute","attr","getController","_controllers","config","action","_createAction","event","_createActionByOption","executeAction","dispose","empty","className","componentName","NAME","containerName","elementIsInsideGrid","$gridElement","Controller","ViewController","_views","getViews","View","_isReady","isReady","_requireReady","_requireRender","_requireResize","_$parent","_invalidate","requireResize","requireReady","_renderCore","_resizeCore","_parentElement","renderCompleted","resizeCompleted","_$element","getElementHeight","marginTop","parseFloat","marginBottom","offsetHeight","getTemplate","_getTemplate","$parent","toggleClass","fire","resize","isResizing","preventScroll","MODULES_ORDER_MAX_INDEX","processModules","componentClass","modules","modulesOrder","controllerTypes","viewTypes","module1","module2","orderIndex1","orderIndex2","controllers","moduleName","views","subclassOf","extenders","extender","createModuleItems","moduleTypes","moduleItems","moduleType","moduleItem","callModuleItemsMethod","registerModule","registerModulesOrder","moduleNames","unregisterModule","COLUMN_INDICATORS_CLASS","GROUP_PANEL_ITEM_CLASS","_applyColumnState","_that$component","columnAlignment","_getColumnAlignment","parameters","isGroupPanelItem","rootElement","hasClass","$indicatorsContainer","_createIndicatorContainer","$span","_getIndicatorClassName","columnsController","indicatorAlignment","getHeaderContentAlignment","indicator","_renderIndicator","ignoreIndicatorAlignment","_getIndicatorContainer","$cell","_getIndicatorElements","$indicatorContainer","children","$indicator","_updateIndicators","indicatorName","getColumns","$cells","getColumnElements","_updateIndicator","rowOptions","cells","SCROLL_CONTAINER_CLASS","SCROLLABLE_SIMULATED_CLASS","GROUP_SPACE_CLASS","CONTENT_CLASS","TABLE_CLASS","TABLE_FIXED_CLASS","CONTENT_FIXED_CLASS","ROW_CLASS","GROUP_ROW_CLASS","GROUP_CELL_CLASS","DETAIL_ROW_CLASS","FILTER_ROW_CLASS","ERROR_ROW_CLASS","CELL_UPDATED_ANIMATION_CLASS","HIDDEN_COLUMNS_WIDTH","CELL_HINT_VISIBLE","FORM_FIELD_ITEM_CONTENT_CLASS","appendElementTemplate","content","subscribeToRowEvents","$table","touchTarget","touchCurrentTarget","timeoutId","clearTouchTargets","timeout","clearTimeout","currentTarget","pointer","down","rowIndex","getRowIndex","rowElement","_rowPointerDown","_rowClick","_rowDblClick","getWidthStyle","setCellWidth","cell","style","copyAttributes","newElement","oldAttributes","attributes","newAttributes","nodeName","hasAttribute","removeAttribute","nodeValue","ColumnsView","_createScrollableOptions","scrollingOptions","useNativeScrolling","bounceEnabled","useKeyboard","useSimulatedScrollbar","_updateCell","_cellPrepared","_createCell","textAlign","headerId","colspan","visibleWidth","_createRow","rowObject","tagName","_isAltRow","dataIndex","_createTable","isAppend","_createColGroup","safari","$row","visibleColumns","_columnsController","getVisibleColumns","cellOptions","isHeaderRow","isDataRow","isMasterDetailRow","isGroupRow","isFilterRow","isDataRowWithTemplate","isEditorShown","isEditing","isHeaderRowWithTemplate","isGroupCellWithTemplate","shouldShowHint","removeAttr","difference","scrollWidth","clientWidth","getOptions","$fieldItemContent","delegateTarget","resultOptions","cellElement","eventType","formItemOptions","getVisibleIndex","colgroupElement","_createCol","col","renderDelayedTemplates","delayedTemplates","_delayedTemplates","syncTemplates","asyncTemplates","_renderDelayedTemplatesCore","_renderDelayedTemplatesCoreAsync","templates","isAsync","templateParameters","doc","getDocument","_processTemplate","renderingTemplate","renderedTemplate","nodeType","templateID","_templatesCache","renderTemplate","templateDeferred","templateOptions","onRendered","templateDeferreds","_getBodies","tableElement","not","_needWrapRow","$tableElement","_this$_getBodies","hasRowTemplate","_wrapRowIfNeed","isRefreshing","_tableElement","needWrapRow","$tbody","_appendRow","appendTemplate","scrollLeft","_scrollLeft","scrollTo","$root","_renderTable","changeType","_renderRows","rows","_getRows","columnIndices","changeTypes","_renderRow","$wrappedRow","_renderCells","_addWatchMethod","_rowPrepared","_needRenderCell","_renderCell","oldValue","oldValues","_updateCells","$rowElement","$newRowElement","$newCells","cellUpdatedClass","$newCell","replaceWith","_setCellAriaAttributes","columnIndexOffset","getColumnIndexOffset","ariaColIndex","_getCellOptions","cellIndex","findIndex","_renderCellContent","renderOptions","_getCellTemplate","isAltRow","watchers","getter","updateValueFunc","updateRowFunc","watcher","newValue","splice","update","keepRow","_columnOptionChanged","optionNames","widths","iterator","setColumnWidths","getCellIndex","getTableElements","getTableElement","setTableElement","excludeValidators","category","afterExecute","_afterRowPrepared","columnsChanged","add","changed","_handleDataChanged","_updateScrollLeftPosition","pos","$scrollContainer","_wrapTableInScrollContainer","scrollChanged","_updateContent","$newTableElement","_findContentElement","_getWidths","$cellElements","offsetWidth","getBoundingClientRect","clientRect","getColumnWidths","$rows","isRowVisible","display","getVisibleColumnIndex","$cols","classList","querySelector","toFixed","getCellElements","_getCellElementsCore","_getRowElements","_getCellElement","columnIdentifier","columnVisibleIndex","_getVisibleColumnIndex","_getRowElement","$tableElements","getCellElement","getRowElement","elements","columnOption","cellPosition","getRowsCount","_getRowElementsCore","tBodies","getBoundingRect","getName","setScrollerSpacing","paddingLeft","paddingRight","isScrollbarVisible","isHorizontal","FOCUS_STATE_CLASS","FOCUS_DISABLED_CLASS","FOCUSED_ROW_SELECTOR","GRID_ROW_SELECTOR","GRID_CELL_SELECTOR","TREELIST_ROW_SELECTOR","TREELIST_CELL_SELECTOR","viewItemSelectorMap","columnHeaders","footer","isMouseDown","isHiddenFocusing","focusedElementInfo","processKeyDown","viewName","$mainElement","executeKeyDown","isHandled","fireKeyDownEvent","originalEvent","saveFocusedElementInfo","selectView","ariaLabel","$activeElements","getActiveAccessibleElements","targetIndex","viewInstance","viewElement","$viewElement","findFocusedViewElement","viewSelectors","$focusViewElement","first","onDocumentVisibilityChange","visibilityState","subscribeVisibilityChange","unsubscribeVisibilityChange","hiddenFocus","registerKeyboardAction","getMainElement","keyDownHandler","mouseDownHandler","focusinHandler","needShowOverlay","$targetElement","viewNames","viewItemIndex","_viewName","setTabIndex","keyboardController","isKeyboardEnabled","CELL_CONTENT_CLASS","HEADERS_CLASS","NOWRAP_CLASS","ROW_CLASS_SELECTOR","HEADER_ROW_CLASS","COLUMN_LINES_CLASS","CONTEXT_MENU_SORT_ASC_ICON","CONTEXT_MENU_SORT_DESC_ICON","CONTEXT_MENU_SORT_NONE_ICON","CELL_FOCUS_DISABLED_CLASS","VISIBILITY_HIDDEN_CLASS","TEXT_CONTENT_ALIGNMENT_CLASS_PREFIX","SORT_INDICATOR_CLASS","SORT_INDEX_INDICATOR_CLASS","HEADER_FILTER_CLASS_SELECTOR","HEADER_FILTER_INDICATOR_CLASS","MULTI_ROW_HEADER_CLASS","columnHeadersModule","columnHeadersView","createCellContent","$cellContent","addCssClassesToCellContent","contentAlignment","$indicatorElements","$visibleIndicatorElements","indicatorCount","sortIndicatorClassName","sortIndexIndicatorClassName","$sortIndicator","$sortIndexIndicator","shiftKey","_getDefaultTemplate","$content","_getHeaderTemplate","resultTemplate","_isGroupingChanged","_isLegacyKeyboardNavigation","_handleActionKeyDown","_lastActionElement","headerFilterController","$column","getColumnIndexByElement","showHeaderFilterMenu","_processHeaderAction","isLoaded","_hasRowElements","getRowCount","_getRowVisibleColumns","$cellElement","rowspan","rowCount","groupExpanding","_isElementVisible","elementOptions","_alignCaptionByCenter","insertBefore","$indicatorElement","returnAll","_isSortableElement","getHeadersRowHeight","$headerRows","toArray","getHeaderElement","columnElements","bandColumnIndex","getChildrenByBandColumn","$columnElements","allowDragging","sourceLocation","draggingPanels","draggableColumnCount","canHideColumn","allowDrag","isColumnOptionUsed","draggingPanel","getColumnCount","getHeight","getContextMenuItems","sortingOptions","onItemClick","params","changeSortOrder","itemData","setRowsOpacity","columnID","setColumnOpacity","NUMBER_SERIALIZATION_FORMAT","DATE_SERIALIZATION_FORMAT","DATETIME_SERIALIZATION_FORMAT","ISO8601_PATTERN","ISO8601_TIME_PATTERN","ISO8601_PATTERN_PARTS","DATE_SERIALIZATION_PATTERN","MILLISECOND_LENGHT","dateParser","skipISO8601Parsing","parseISO8601String","parseDate","getTimePart","isDefaultSerializationFormat","getDateSerializationFormat","parsedValue","newDate","setMonth","timeZoneHour","timeZoneMinute","correctYear","pow","getIso8601Format","deserializeDate","forceIsoDateParsing","serializeDate","serializationFormat","valueOf","USER_STATE_FIELD_NAMES_15_1","USER_STATE_FIELD_NAMES","IGNORE_COLUMN_OPTION_NAMES","bestFitWidth","bufferedFilterValue","COMMAND_EXPAND_CLASS","MAX_SAFE_INTEGER","GROUP_COMMAND_COLUMN_NAME","globalColumnId","columnsControllerModule","commonColumnSettings","adaptColumnWidthByRatio","regenerateColumnsByVisibleItems","DEFAULT_COLUMN_OPTIONS","DATATYPE_OPERATIONS","datetime","COLUMN_INDEX_OPTIONS","setFilterOperationsAsDefaultValues","defaultFilterOperations","createColumn","columnOptions","userStateColumnOptions","bandColumn","commonColumnOptions","setName","getCommonSettings","calculatedColumnOptions","_createCalculatedColumnOptions","createColumnsFromOptions","columnsOptions","_columnsUserState","checkUserStateColumn","hasColumns","getParentBandColumns","columnParentByIndex","_getChildrenByBandColumn","columnChildrenByIndex","recursive","getColumnFullPath","bandColumnsCache","getBandColumnsCache","callbackFilter","isPlain","_columns","calculateColspan","getValueDataType","getSerializationFormat","updateSerializers","deserializeValue","serializeValue","customizeTextForBooleanDataType","getCustomizeTextByDataType","updateColumnIndexes","_commandColumns","updateColumnGroupIndexes","currentColumn","getColumnIndexByVisibleIndex","getGroupColumns","getChooserColumns","userStateColumn","applyUserState","userStateColumnIndex","columnsUserState","ignoreColumnOptionNames","_ignoreColumnOptionNames","columnCountById","resultColumns","allColumnsHaveState","userStateColumnIndexes","applyFieldsState","fieldName","defaultSelectedFilterOperation","findUserStateColumn","_hasUserState","initialIndex","hasAddedBands","columnUserState","added","assignColumns","updateIndexes","isSortOrderValid","resetBandColumnsCache","bandedColumns","parentBandColumns","resetColumnsCache","updateColumnDataTypes","updateColumnChanges","columnChanges","_columnChanges","fireColumnsChanged","onColumnsChanging","reinitOptionNames","isInitialized","reinit","updateSortOrderWhenGrouping","prevGroupIndex","columnWasGrouped","lastSortOrder","sortMode","sortedByAnotherColumn","fireOptionChanged","prevValue","fullOptionName","fullOptionPath","_skipProcessingColumnsChange","_notifyOptionChanged","columnOptionCore","notFireEvent","initialColumn","optionGetter","functionsAsIs","optionSetter","_checkColumns","getColumnByPath","defaultSetCellValue","path","dotCount","isCustomCommandColumn","commandColumn","getFixedPosition","processExpandColumns","expandColumns","customColumnIndex","expandColumnsByType","expandColumn","numberToString","digitsCount","mergeColumns","commandColumns","needToExtend","commandColumnIndex","isColumnFixing","_isColumnFixing","defaultCommandColumns","getCommandColumnIndex","columnType","isColumnFixed","_bandColumnsCache","findColumn","identifier","identifierOptionName","_getExpandColumnOptions","_getFirstItems","groupsCount","getFirstItemsCore","childItems","collapsedItems","isApplyingUserState","_isColumnsFromOptions","addCommandColumn","_dataSourceApplied","applyDataSource","columnIndexes","needUpdateRequireResize","previousValue","fullName","_updateRequireResize","columnOptionValue","columnOptionName","forceApplying","isDataSourceLoaded","_dataSourceColumnsCount","columnsFromDataSource","firstItems","processedFields","updateColumns","isAllDataTypesDefined","reset","_visibleColumns","_fixedColumns","_rowCount","getUserState","isDataSourceApplied","groupingOptions","groupPanelOptions","checkSerializers","isBandColumnsUsed","_shouldReturnVisibleColumns","_compileVisibleColumns","_compileVisibleColumnsCore","getFixedColumns","_getFixedColumnsCore","getFilteringColumns","notFixedColumnCount","transparentColumnIndex","lastFixedPosition","transparentColumn","transparentColspan","prevColumn","newColumn","_getExpandColumnsCore","getExpandColumns","firstGroupColumn","isFixedFirstGroupColumn","parentIndex","_isColumnVisible","isParentColumnVisible","isFixedToEnd","rowspanGroupColumns","rowspanExpandColumns","positiveIndexedColumns","negativeIndexedColumns","notGroupedColumnsCount","columnDigitsCount","indexedColumns","firstPositiveIndexColumn","columnsByFixing","columnsByVisibleIndex","getDataColumns","bandColumnID","getInvisibleColumns","hiddenColumnsByBand","getAllColumns","columnChooserColumns","column1","column2","caption1","caption2","localeCompare","allowMoveColumn","fromVisibleIndex","toVisibleIndex","targetLocation","sourceColumn","moveColumn","targetGroupIndex","fromIndex","toIndex","groupColumns","targetColumn","sortingMode","needResetSorting","getSortDataSourceParameters","useLocalSelector","sortColumns","sortItem","getGroupDataSourceParameters","refresh","updateNewLookupsOnly","deferreds","valueMap","_updateColumnOptions","calculateCallbackName","calculateCallback","context","isRTL","isColumnDataTypesUpdated","lookupDataType","valueDataType","_customizeColumns","hasOwnerBand","updateSortingGrouping","sortParameters","groupParameters","filterParameters","lastLoadOptions","always","_updateChanges","equalSortParameters","dataController","getCombinedFilter","fromDataSource","isColumnsChanged","updateSortGroupParameterIndexes","indexParameterName","columnsGroupParameters","columnsSortParameters","groupingChanged","groupExpandingChanged","updateFilter","remoteFiltering","columnCount","clearSorting","clearGrouping","getVisibleIndexByColumn","visibleColumn","addColumn","deleteColumn","childIndexes","handleStateField","setUserState","isFilterPanelHidden","usedNames","hasEditableColumnWithoutName","duplicatedNames","_column$columns","isEditable","skipDeserialization","parseValue","formattedValue","formattedValueWithDefaultFormat","createFilterExpression","userDataType","updateValueMap","calculateValue","displayValue","dataSourceOptions","paginate","resizedCallbacks","defaultOptionName","parents","invisibleParents","alwaysGetRowIndex","onlyVisibleDirectChildren","isParentBandColumn","bandColumns","getColumnId","cloneItems","groupCount","calculateOperationTypes","isFullReload","operationTypes","reload","fullReload","groupExpand","getPageDataFromCache","updatePaging","fillItemsFromCache","cacheItemsFromBegin","cacheItemBeginCount","cacheItemsFromEnd","_options$skip2","_options$take2","cacheItemEndCount","cachedDataPartBegin","cachedDataPartEnd","reverse","fromEnd","_options$take","_options$cachedData","cachedItems","cachedData","_ref2","_options$skip","localIndex","cacheItemIndex","cacheItem","getItemFromCache","skips","takes","getGroupItemFromCache","isContinuationOnNextPage","childCacheItem","isLast","getCacheItem","loadedItem","globalIndex","childSkips","_remoteOperations","_isLastPage","isLastPage","_hasLastPage","_currentTotalCount","_cachedData","_lastOperationTypes","_eventsStrategy","_totalCountCorrection","_isLoadingAll","loadingChanged","loadError","customizeStoreLoadOptions","changing","pushed","_dataChangedHandler","_customizeStoreLoadOptionsHandler","_handleCustomizeStoreLoadOptions","_dataLoadedHandler","_handleDataLoaded","_loadingChangedHandler","_handleLoadingChanged","_loadErrorHandler","_handleLoadError","_pushHandler","_handlePush","_changingHandler","_handleChanging","memberName","member","isSharedDataSource","resetCurrentTotalCount","resetCache","_cachedStoreData","_cachedPagingData","resetPagesCache","_needClearStoreDataCache","_lastLoadOptions","isLocalOperations","operationName","fromStore","keyInfo","_applyBatch","getDataIndexGetter","_dataIndexGetter","indexByKey","storeData","isCacheUpdated","keyOf","_getKeyInfo","totalCount","isReshapeMode","isLegacyMode","getItemCount","itemsCount","oldItemCount","_items","useInsertIndex","needUpdateTotalCountCorrection","_ref5","_needCleanCacheByOperation","operationType","operationTypesByOrder","operationTypeIndex","currentOperationTypes","_customizeRemoteOperations","cachedStoreData","cachedPagingData","isCustomLoading","_options$data","_handleDataLoading","originalStoreLoadOptions","_isRefreshing","_loadingOperationTypes","_isRefreshed","_lastOperationId","operationId","_handleDataLoadingCore","cachedExtra","localLoadOptionNames","requireTotalCount","optionValue","localPaging","needCache","needPageCache","needPagingCache","needStoreCache","mergeStoreLoadData","_handleDataLoadedCore","_ref3","_options$skip3","_ref4","_options$take3","cacheItems","_loadPageSize","currentTotalCount","isDataLoading","pageCount","_operationTypes","_scheduleCustomLoadCallbacks","_isCustomLoading","loadingOperationTypes","_dataSourceTotalCount","totalCountCorrection","totalItemsCount","ceil","hasKnownLastPage","loadFromStore","dataSourceLoadOptions","loadResult","_customLoadOptions","isLoadingAll","_scheduleLoadCallbacks","fireEvent","full","getCachedStoreData","dataSourceAdapterType","dataControllerModule","loadingTimeout","include","changePaging","_getPagingOptionValue","_skipProcessingPagingChange","_isPaging","pageChanged","members","_cachedProcessedItems","_currentOperationTypes","_columnsChangedHandler","_handleColumnsChanged","_dataPushedHandler","_handleDataPushed","_isLoading","_repaintChangesOnly","_changes","dataErrorOccurred","_refreshDataSource","stopOnFalse","isValueChanged","_array","needToRefreshOnDataSourceChange","changedPagingOptions","_handleDataSourceChange","_setPagingOptions","isPageIndexChanged","_useSortingGroupingFromColumns","getDataSource","returnDataField","combinedFilter","additionalFilter","_calculateAdditionalFilter","waitReady","_readyDeferred","updateItems","_storeLoadOptions$fil","_columnsUpdating","filterApplied","_applyFilter","_needApplyFilter","updateItemsHandler","_change$changeTypes","virtualColumnsScrolling","isAsyncDataSourceApplying","_isDataSourceApplying","isDelayed","needApplyFilter","_isAllDataTypesDefined","_fireLoadingChanged","fireError","pagingEnabled","scrollingMode","appendMode","virtualMode","isPaginateChanged","isPageSizeChanged","_getSpecificDataSourceOption","_initDataSource","oldDataSource","setDataSource","_loadDataSource","_beforeProcessItems","getRowIndexDelta","_processItems","rowIndexDelta","visibleItems","lastVisibleItem","_processItem","_generateDataItem","_processDataItem","dataItem","generateDataValues","isModified","_applyChange","_applyChangeUpdate","_applyChangesOnly","_applyChangeFull","_getRowIndices","rowIndices","correctedRowIndex","allowInvisibleRowIndices","prevIndex","rowIndexCorrection","equalItems","item1","item2","strict","oldItem","oldNextItem","newItem","newNextItem","isFullUpdate","_partialUpdateRow","_isCellChanged","oldRow","newRow","visibleRowIndex","isLiveUpdate","isCellModified","modifiedValues","_getChangedColumnIndices","_cell$column","_changedColumnIndices","changedColumnIndices","isCellChanged","_isItemEquals","_item1$data","_item2$data","_item1$data2","_item2$data2","expandedMatch","summaryCellsMatch","summaryCells","continuationMatch","_change$isLiveUpdate","newIndexByKey","getRowKey","currentItems","oldItems","_correctRowIndices","oldRowIndexOffset","_rowIndexOffset","rowIndexOffset","getRowIndexOffset","newVisibleRowIndex","_afterProcessItems","_updateItemsCore","cachedProcessedItems","useProcessedItemsCache","loadIndex","getVisibleRows","isDataChanged","_change$repaintChange","needUpdateDimensions","_needUpdateDimensions","_fireChanged","_loadingText","_isFilterApplying","resetFilterApplying","filterExpr","filterName","clearColumnOption","searchByText","_fireDataSourceChanged","changedHandler","dataSourceChanged","_getDataSourceAdapter","_createDataSourceAdapterCore","dataSourceAdapterProvider","dataSourceAdapter","isCustomStore","_createDataSourceAdapter","enabledRemoteOperations","cancelAll","_isSharedDataSource","loadAll","getKeyByRowIndex","byLoaded","getRowIndexByKey","byKey","getDataByKeys","rowKeys","keyData","beginCustomLoading","messageText","endCustomLoading","changesOnly","customizeLoadResult","_disposeDataSource","repaintRows","rowIndexes","skipProcessingPagingChange","searchText","isLastPageLoaded","DataController","SORT_CLASS","SORT_NONE_CLASS","SORTUP_CLASS","SORTDOWN_CLASS","SORT_INDEX_CLASS","SORT_INDEX_ICON_CLASS","HEADERS_ACTION_CLASS","ariaSortState","isSortingAllowed","hasSeveralSortIndexes","prepend","COLUMN_HEADERS_VIEW_NAMESPACE","ColumnHeadersViewSortingExtender","$cellElementFromEvent","editingController","editingMode","isCellEditing","HeaderPanelSortingExtender","$rootElement","$item","_processGroupItemAction","groupColumnIndex","sortingModule","headerPanel","ROWS_VIEW_CLASS","DATA_ROW_CLASS","FREE_SPACE_CLASS","ROW_LINES_CLASS","ROW_ALTERNATION_CLASS","LAST_ROW_BORDER","EMPTY_CLASS","ROW_INSERTED_ANIMATION_CLASS","LOADPANEL_HIDE_TIMEOUT","getMaxHorizontalScrollOffset","scrollable","round","rowsModule","defaultCellTemplate","isDataTextEmpty","innerHTML","_getDefaultGroupTemplate","_update","isGroup","isRowExpanded","_setAriaRowIndex","isPagerMode","arg","deep","skipImmediate","_renderScrollable","force","_renderLoadPanel","getScrollable","allColumnsHasWidth","_hasHeight","_renderScrollableCore","_handleScroll","isNativeScrolling","_scrollTop","scrollOffset","_scrollRight","dxScrollableOptions","scrollHandler","onScroll","_scrollable","_scrollableContainer","_renderContent","contentElement","newTableElement","executors","rowInsertedClass","$rowsElement","toggle","insertAfter","prependTo","_createEmptyRow","isFixed","_appendEmptyRow","$emptyRow","$tBodies","isTableContainer","$colgroup","_renderFreeSpaceRow","$freeSpaceRowElement","_checkRowKeys","_needUpdateRowHeight","_rowHeight","_getRowsHeight","$rowElements","_updateRowHeight","rowsHeight","_getFreeSpaceRowElements","tableElements","evaluate","expr","_getColumnsCountBeforeGroups","_getGroupCellOptions","columnsCountBeforeGroups","_renderGroupedCells","groupCellOptions","groupColumnAlignment","updateFreeSpaceRowHeight","_renderDataRowByTemplate","resizeCompletedHandler","scrollableInstance","_visibilityChanged","_lastColumnWidths","groupingTextsOptions","_setRowsOpacityCore","_getDevicePixelRatio","getCellOptions","itemCount","freeSpaceRowElements","isFreeSpaceRowVisible","scrollbarWidth","getScrollbarWidth","elementHeightWithoutScrollbar","contentHeight","showFreeSpaceRow","borderTopWidth","heightCorrection","_getHeightCorrection","resultHeight","_updateLastRowBorder","freeSpaceRowCount","isZoomedWebkit","webkit","isChromeLatest","chrome","hasExtraBorderTop","_fireColumnResizedCallbacks","_editorFactoryController","setLoading","contentWidth","scrollableContainer","clientHeight","lastColumnWidths","columnWidths","_updateScrollable","dxScrollable","getInstance","_updateHorizontalScrollPosition","maxHorizontalScrollOffset","scrollRight","_height","hasHeight","visibilityOptions","calculateLoadPanelPosition","_hideLoadingTimeoutID","groupCellIndex","_getBoundaryVisibleItemIndex","isTop","isFloor","itemIndex","prevOffset","viewportBoundary","$contentElement","contentElementOffsetTop","rowElements","getTopVisibleItemIndex","getBottomVisibleItemIndex","getTopVisibleRowData","_scrollToElement","scrollToElement","_restoreErrorRow","_collectionWidget","getMenuItems","_getTemplateString","DX_MENU_CLASS","DX_MENU_NO_ICONS_CLASS","DX_MENU_BASE_CLASS","ITEM_CLASS","DX_ITEM_CONTENT_CLASS","DX_MENU_SELECTED_ITEM_CLASS","DX_MENU_ITEM_WRAPPER_CLASS","DX_MENU_ITEMS_CONTAINER_CLASS","DX_MENU_ITEM_EXPANDED_CLASS","DX_MENU_SEPARATOR_CLASS","DX_MENU_ITEM_LAST_GROUP_ITEM","DX_ITEM_HAS_TEXT","DX_ITEM_HAS_ICON","DX_ITEM_HAS_SUBMENU","DX_MENU_ITEM_POPOUT_CLASS","DX_MENU_ITEM_POPOUT_CONTAINER_CLASS","DX_MENU_ITEM_CAPTION_CLASS","SINGLE_SELECTION_MODE","DEFAULT_DELAY","super","_getDefaultOptions","showSubmenuMode","selectByClick","focusOnSelectedItem","_itemAttributes","role","useInkRipple","_itemContainer","_clean","_supportedKeys","space","_isSelectionEnabled","selectItem","pageUp","pageDown","_activeStateUnit","_init","_renderSelectedItem","_initActions","itemText","$itemContainer","itemContent","$popOutContainer","$popOutImage","rootValue","multipleSelection","recursiveSelection","recursiveExpansion","searchValue","selectedItem","nodeToSelect","_dataAdapter","getNodeByItem","toggleSelection","internalFields","selectedKeys","getSelectedNodesKeys","selectedKey","node","getNodeByKey","selectable","_selectByItem","_initMarkup","_renderInkRipple","_inkRipple","_toggleActiveState","showWave","hideWave","_isDesktopDevice","devices","real","deviceType","Strategy","_editStrategy","$itemElement","_getItemElementByEventArgs","_isItemDisabled","stopPropagation","_getShowSubmenuMode","_showSubmenusTimeout","_showSubmenu","_getSubmenuDelay","$itemElements","_getAvailableItems","_disabledGetter","_itemDataKey","_addExpandedClass","itemElement","eventArgs","_itemClass","childrenKeys","_renderItems","getRootNodes","nodes","submenuContainer","hasIcons","$nodeContainer","_renderContainer","firstVisibleIndex","nextGroupFirstIndex","isVisibleNode","isBeginGroup","beginGroup","_renderSeparator","_renderItem","$wrapper","$node","$nodeElement","_createDOMElement","$itemFrame","_hasSubmenu","_renderItemFrame","_itemIndexKey","hasText","hasIcon","hasSubmenu","$itemContent","_getItemContent","selectedIndex","_selectedGetter","_isItemSelectable","_selectedItemClass","_setAriaSelected","$itemsContainer","_skipHandling","itemClickActionHandler","_updateSubmenuVisibilityOnClick","_itemDXEventHandler","actionArgs","_updateSelectedItemOnClick","_isItemSelectionAllowed","selectedItemKey","selectedNode","_toggleItemSelection","_fireSelectionChangeEvent","isSelectionByClickEnabled","_isContainerEmpty","_itemsGetter","_updateSelectedItems","_optionChanged","_getElementByItem","_itemElements","oldSelection","newSelection","addedSelection","removedSelection","addedItems","removedItems","_getItemData","selected","ItemClass","DX_MENU_ITEM_CLASS","DX_MENU_PHONE_CLASS","DX_SUBMENU_CLASS","DX_CONTEXT_MENU_CLASS","DX_HAS_CONTEXT_MENU_CLASS","DX_STATE_DISABLED_CLASS","DX_STATE_FOCUSED_CLASS","DX_STATE_HOVER_CLASS","OVERLAY_CONTENT_CLASS","FOCUS_UP","FOCUS_DOWN","FOCUS_LEFT","FOCUS_RIGHT","FOCUS_FIRST","FOCUS_LAST","ACTIONS","LOCAL_SUBMENU_DIRECTIONS","DEFAULT_SHOW_EVENT","showEventOption","showEvent","onSubmenuCreated","onPositioning","submenuDirection","onLeftFirstItem","onLeftLastItem","onCloseRootSubmenu","onExpandLastSubmenu","_defaultOptionsRules","device","_setDeprecatedOptions","_deprecatedOptions","since","alias","_setOptionsByReference","_optionsByReference","_overlay","escape","$availableItems","$focusedItem","$hoveredItem","$hoveredItemContainer","_getActiveItem","$newTarget","$items","_getItemsByLocation","$oldTarget","itemsContainer","$activeItemHighlighted","_prevItem","_setFocusedElement","_nextItem","_hideSubmenuHandler","_expandSubmenuHandler","_moveFocus","$activeItem","_refreshActiveDescendant","$curItem","$parentItem","_hideSubmenusOnSameLevel","_hideSubmenu","isItemHasSubmenu","$submenu","_detachShowContextMenuEvents","_getTarget","_render","_renderVisibility","_addWidgetClass","_attachShowContextMenuEvents","_keyboardListenerId","_focusTarget","_attachKeyboardEvents","overlayOptions","_getOverlayOptions","$overlayContent","_addCustomCssClass","_addPlatformDependentClass","_attachContextMenuEvent","eventName","_itemContextMenuHandler","current","phone","getShowEvent","_showContextMenuEventHandler","contextMenuAction","getShowDelay","_show","validatingTargetName","handler","_hoverEndHandler","$holder","_getChildNodes","submenuElement","innerOverlay","_hideOnOutsideClickHandler","propagateOutsideClick","_overlayShownActionHandler","_overlayHidingActionHandler","_overlayHiddenActionHandler","visualContainer","_hideAllShownSubmenus","_shouldHideOnOutsideClick","isDocument","$activeItemContainer","_getActiveItemsContainer","$itemContainers","_getItemsContainers","$clickedItem","_searchActiveItem","$rootItem","isRootItemClicked","isInnerOverlayClicked","_isIncludeOverlay","_hideAllShownChildSubmenus","$activeOverlay","$allOverlays","isSame","$overlay","$submenuElements","shownSubmenus","_shownSubmenus","$context","isSubmenuRendered","_renderSubmenuItems","_isSubmenuVisible","_drawSubmenu","$expandedItems","siblings","_hideSubmenuCore","submenuPosition","_getSubmenuPosition","fx","setup","_animate","animate","$rootItemWrapper","shouldRenderSubmenu","notCloseMenuOnItemClick","closeMenuOnClick","$prevSubmenu","canceled","$curSubmenu","_stopAnimate","_renderContentImpl","showing","_hide","jQEvent","_event$originalEvent","_positionContextMenu","_renderContextMenuOverlay","_widgetClass","_renderFocusState","_attachHoverEvents","_attachClickEvent","_setAriaAttributes","preventShowingDefaultContextMenuAboveOverlay","_overlayContentId","_getContextMenuPosition","isInitialPosition","_isInitialOptionValue","positioningAction","lastPosition","_refresh","_cleanAriaAttributes","CONTEXT_MENU","footerView","VIEW_NAMES","ContextMenuController","dxEvent","$targetRowElement","$targetCellElement","menuItems","view","_rowOptions$cells","_rowOptions$cells$col","targetElement","_contextMenuPrepared","ContextMenuView","contextMenuInstance","contextMenuModule","contextMenu","contextMenuView","ERROR_MESSAGE_CLASS","ERROR_CLOSEBUTTON_CLASS","ACTION_CLASS","ErrorHandlingController","_columnHeadersView","_rowsView","_createErrorRow","$errorRow","$closeButton","$errorMessage","_renderErrorMessage","errorRowIndex","removeErrorRow","fireContentReadyAction","url","$message","renderErrorRow","$popupContent","$errorMessageElement","$firstErrorRow","resizingController","$columnHeaders","$rowsViewElement","errorHandlingModule","errorHandling","errorHandlingController","hasChanges","BORDERS_CLASS","IMPORTANT_MARGIN_CLASS","GRIDBASE_CONTAINER_CLASS","isPixelWidth","getContainerHeight","paddingTop","paddingBottom","calculateFreeWidth","totalWidth","_getTotalWidth","calculateFreeWidthWithCurrentMinWidth","currentMinWidth","ResizingController","_initPostRenderHandlers","_refreshSizesHandler","_refreshSizes","resizeDeferred","_e$changeTypes","_setScrollerSpacing","_setAriaRowColCount","_fireContentReadyAction","_getBestFitWidths","_widths","_rowsView$getTableEle","headersTableElement","_setVisibleWidths","columnId","_toggleBestFitModeForView","isBestFit","$rowsTables","$viewTables","$tableBody","$rowsTable","$viewTable","_toggleBestFitMode","$rowsFixedTable","_footerView","_toggleContentMinHeight","_needStretch","getContentHeightLimit","_synchronizeColumns","resetBestFitMode","needBestFit","_needBestFit","hasMinWidth","isColumnWidthsCorrected","getActiveElement","_maxWidth","isFocusOutsideWindow","bottom","_correctColumnWidths","expandColumnWidth","_processStretch","_getAverageColumnsWidth","freeWidth","columnCountWithoutWidth","hasPercentWidth","hasAutoWidth","hasWidth","_hasWidth","_loop","isHiddenColumn","averageColumnsWidth","realColumnWidth","_getRealColumnWidth","borderWidth","resultSizes","groupSize","tableSize","unusedIndexes","diffElement","onePixelElementsCount","groupWidth","ratio","percentTotalWidth","pixelTotalWidth","freeSpace","percentTotalWidthInPixel","updateSize","$groupElement","importantMarginClass","detach","updateDimensions","checkSize","_checkSize","prevResult","_resizeDeferred","_resetGroupElementHeight","_updateDimensionsCore","groupElement","scrollTop","_lastWidth","_lastHeight","_devicePixelRatio","_setScrollerSpacingCore","vScrollbarWidth","hScrollbarWidth","$testDiv","rootElementHeight","maxHeightHappened","editorFactory","isMaxHeightApplied","scrollHeight","_updateLastSizes","_renderDimensions","SynchronizeScrollingController","_scrollChangedHandler","GridView","_resizingController","_getWidgetAriaLabel","_groupElement","_renderViews","_getTableRoleName","isFirstRender","_rootElement","gridViewModule","resizing","synchronizeScrolling","gridView","TOOLBAR_MENU_ACTION_CLASS","TOOLBAR_HIDDEN_BUTTON_CLASS","TOOLBAR_HIDDEN_BUTTON_GROUP_CLASS","TOOLBAR_MENU_SECTION_CLASS","TOOLBAR_MENU_LAST_SECTION_CLASS","ToolbarMenu","_renderSections","_getSections","_itemSelector","sectionName","$section","_updateSections","$sections","itemContainer","$after","_getItemTemplateName","isAction","menuTemplate","_itemClickHandler","BUTTON_GROUP_CLASS","TOOLBAR_ITEMS","getItemInstance","toggleItemFocusableElementTabIndex","_itemData$options","_findItemElementByItem","isItemNotFocusable","$widget","_itemInstance$_focusT","_itemData$options2","itemInstance","$focusTarget","DROP_DOWN_MENU_CLASS","DROP_DOWN_MENU_POPUP_CLASS","DROP_DOWN_MENU_POPUP_WRAPPER_CLASS","DROP_DOWN_MENU_LIST_CLASS","DROP_DOWN_MENU_BUTTON_CLASS","POPUP_OPTION_MAP","popupWidth","popupHeight","popupMaxHeight","popupAutoResizeEnabled","BUTTON_OPTION_MAP","buttonIcon","buttonText","buttonWidth","buttonHeight","buttonTemplate","DropDownMenu","extension","_list","_button","tab","_popup","itemTemplate","onButtonClick","usePopover","opened","selectionMode","selectedItemKeys","popupPosition","popupAnimation","onItemRendered","menuWidget","closeOnClick","isSimulator","_initOptions","_dataSourceOptions","_initItemClickAction","_initButtonClickAction","_itemClickAction","_buttonClickAction","_initTemplates","_templateManager","addDefaultTemplates","_renderButton","haspopup","expanded","_renderPopup","_cleanFocusState","_$popup","$button","_buttonOptions","_toggleMenuVisibility","$popup","_popupOptions","usePopup","_renderList","autoResizeEnabled","listConfig","_listOptions","_getAriaTarget","_setListDataSource","listMaxHeight","_itemOptionChanged","property","_this$_list","pageLoadMode","indicateLoading","_deferRendering","_toggleVisibility","_updateFocusableItemsTabIndex","open","close","MENU_INVISIBLE_CLASS","TOOLBAR_DROP_DOWN_MENU_CONTAINER_CLASS","POPOVER_BOUNDARY_OFFSET","_toolbar","_hasVisibleMenuItems","_renderMenuButtonContainer","$menu","_dropDownMenuContainer","_dropDownMenu","_dropDownMenuOptions","renderMenuItems","_getMenuItems","$afterSection","_$afterSection","_$menuButtonContainer","_buttonClass","_getTemplateByOption","itemClickAction","topAndBottomOffset","_getMenuItemTemplate","getDocumentElement","_updateMenuVisibility","isMenuVisible","overflowGetter","itemVisible","itemOverflow","_this$_dropDownMenu","TOOLBAR_AUTO_HIDE_ITEM_CLASS","TOOLBAR_AUTO_HIDE_TEXT_CLASS","TOOLBAR_HIDDEN_ITEM","Toolbar","menuContainer","overflowMenuVisible","_dimensionChanged","dimension","_menu","actionSheetItem","_renderMenu","_postProcessRenderItems","_hideOverflowItems","_getItemsWidth","_getSummaryItemsWidth","_$beforeSection","_$centerSection","elementWidth","overflowItems","itemsWidth","_isMenuItem","$hiddenItems","_restoreItems","$itemMarkup","_getToolbarItems","_renderMenuStrategy","_arrangeItems","margin","float","obj","itemOption","_isToolbarItem","repaint","_changeMenuOption","widgetOption","HEADER_PANEL_CLASS","TOOLBAR_BUTTON_CLASS","TOOLBAR_ARIA_LABEL","DEFAULT_TOOLBAR_ITEM_NAMES","HeaderPanel","_getButtonContainer","_getToolbarButtonClass","specificClass","secondClass","_getToolbarOptions","userToolbarOptions","toolbarOptions","itemRenderedCallback","userItems","_normalizeToolbarItems","defaultItems","defaultProps","defaultButtonsByNames","normalizedItems","_toolbarOptions","$headerPanel","$toolbar","setToolbarItemDisabled","toolbarInstance","itemOptionPrefix","updateToolbarDimensions","_this$_toolbar","getHeaderPanel","normalizedItem","headerPanelModule","DATAGRID_ROW_SELECTOR","DATAGRID_DEPRECATED_TEMPLATE_WARNING","DataGrid","_device","templateName","_dispose","DATE_REGEX","parseDates","StateStoringController","getStorage","storage","getUniqueStorageKey","_loadState","_saveState","setItem","isEnabled","_state","_isLoaded","_windowUnloadHandler","_savingTimeoutID","save","getDataState","pagerView","getPageSizes","processLoadState","selectionController","exportController","updateState","selectionChanged","_initialPageSize","_initialFilterValue","selectionOnlyChanged","exportSelectionOnly","selectionOnly","DEFAULT_FILTER_VALUE","filterSyncController","hasFilterState","getFilterValueFromColumns","stateStoringModule","stateLoaded","isStateLoading","applyState","oldState","newState","oldStateHash","newStateHash","isVirtualScrollingMode","stateStoringController","_restoreStateTimeoutID","_fireSelectionChanged","isDeferredSelection","EDITOR_CELL_CLASS","ROW_SELECTION_CLASS","SELECT_CHECKBOX_CLASS","CHECKBOXES_HIDDEN_CLASS","COMMAND_SELECT_CLASS","SELECTION_DISABLED_CLASS","SHOW_CHECKBOXES_MODE","SELECTION_MODE","processLongTap","isSelectionWithCheckboxes","stopSelectionWithCheckboxes","startSelectionWithCheckboxes","changeItemSelection","control","SelectionController","selectionCellTemplate","isRowSelected","renderSelectCheckBoxContainer","selectionHeaderTemplate","_renderSelectAllCheckBox","_attachSelectAllCheckBoxClickEvent","_selectionMode","_isSelectionWithCheckboxes","_selection","_createSelection","_updateSelectColumn","removedKeys","deselectRows","_getSelectionConfig","selectionOptions","virtualPaging","legacyScrollingMode","ignoreDisabledItems","allowLoadByRange","hasGroupColumns","dataFields","_dataController$dataS","_dataController$dataS2","plainItems","isItemSelected","isSelectableItem","getItemData","oldData","getLoadOptions","loadItemIndex","focusedItemIndex","shiftItemIndex","_dataController$dataS3","_dataController$dataS4","minIndex","maxIndex","isSelectColumnVisible","argument","_updateCheckboxesState","isDeferredMode","removedItemKeys","keyIndex","isComplexKey","selectionChangedOptions","changedItemIndexes","getChangedItemIndexes","visibleChangedItemIndexes","itemIndexes","addedItemKeys","_selectedItemsInternalChange","selectedRowsData","selectedItems","currentSelectedRowKeys","currentDeselectedRowKeys","isDataItem","isSelected","oldSelectionMode","selectRows","_isOnePageSelectAll","isSelectAll","getSelectAllState","selectAll","deselectAll","clearSelection","preserve","isDeselect","getSelectedRowKeys","getSelectedItemKeys","selectRowsByIndexes","getSelectedRowsData","getSelectedItems","visibleItemIndex","setFocusOnly","loadedItemIndex","_focusedItemIndex","selectionModule","hasSelectColumn","currentItem","isUpdateSelection","_updateSelectAllValue","$editor","selectAllValue","hasSelection","dxCheckBox","isEmptyData","createEditor","parentType","setValue","_attachCheckBoxClickEvent","_renderSelectCheckBox","_e$event","_updateCheckboxesClass","isSelectionDisabled","isClickableElement","isCommandSelect","isCheckBoxesHidden","COLUMN_CHOOSER_CLASS","COLUMN_CHOOSER_BUTTON_CLASS","NOTOUCH_ACTION_CLASS","COLUMN_CHOOSER_LIST_CLASS","COLUMN_CHOOSER_PLAIN_CLASS","COLUMN_CHOOSER_DRAG_CLASS","COLUMN_CHOOSER_SELECT_CLASS","COLUMN_CHOOSER_ICON_NAME","COLUMN_CHOOSER_ITEM_CLASS","TREEVIEW_NODE_SELECTOR","CHECKBOX_SELECTOR","CLICK_TIMEOUT","processItems","chooserColumns","isSelectMode","disableCheckBox","parentId","ColumnChooserController","renderShowColumnChooserButton","$columnChooserButton","columnChooserButtonClass","columnChooserEnabled","$showColumnChooserButton","showColumnChooser","integrationOptions","getPosition","ColumnChooserView","_isWinDevice","win","_updateList","_popupContainer","columnChooserList","_columnChooserList","unselectItem","_renderTreeView","_initializePopupContainer","columnChooserOptions","themeName","isGenericTheme","isMaterial","dxPopupOptions","_ignoreCopyRootClassesToWrapperDeprecation","shortcut","treeViewConfig","dataStructure","searchEnabled","$checkBox","$treeViewNode","checkBoxInstance","_prepareSelectModeConfig","_prepareDragModeConfig","selectNodesRecursive","onItemSelectionChanged","isLastColumnUnselected","needPartialRender","needFullRender","$nodes","columnVisible","isColumnChooserVisible","right","hideColumnChooser","popupContainer","columnChooserModule","columnChooserView","_appendColumnChooserItem","hintText","columnChooserMode","isMoveColumnDisallowed","createOffsetFilter","lastLevelOnly","groups","filterElement","currentFilter","GroupingHelper","findGroupInfoByKey","groupsInfo","hash","getGroupInfoIndexByOffset","leftIndex","rightIndex","middleIndex","_groupsInfo","updateTotalItemsCount","isGroupItemCountable","_isVirtualPaging","calculateItemsCount","foreachGroups","childrenAtFirst","foreachCollapsedGroups","updateOffsets","updateParentOffsets","foreachGroupsCore","callbackResults","executeCallback","callbackResult","currentParents","_updateGroupInfoOffsets","groupInfo","findGroupInfo","pathIndex","addGroupInfo","groupInfoData","allowCollapseAll","oldGroups","_group","cleanGroupsInfo","handleDataLoading","handleDataLoaded","handleDataLoadedCore","createGroupFilter","loadTotalCount","correctSkipLoadOption","skipCorrection","resultSkip","pathEquals","path1","path2","updateGroupOffsets","additionalGroupInfo","getGroupCount","collapsedGroups","collapsedItemsCount","skipFirstItem","sorts","arrangeSortingInfo","appendCollapsedPath","collapsedGroup","keyValue","pathValue","_totalCountWasIncreasedByCollapsedItems","query","multiLevelGroup","enumerate","groupedData","processGroupItems","removeLastItemsCount","needRemoveFirstItem","offsetInfo","itemsCountCorrection","changeRowExpand","groupCountQuery","beginPageIndex","dataSourceItems","groupOffsetQuery","getContinuationGroupCount","groupOffset","pageOffset","foreachExpandedGroups","updateGroups","expandedInfo","isLastGroupExpanded","paths","lastCount","updateGroupInfoItem","isLastGroupLevel","_isGroupExpanded","updateGroupInfos","loadedGroupCount","remotePaging","isGroupExpanded","getTotalOffset","groupInfos","totalOffset","childrenTotalCount","applyContinuationToGroupItem","groupLevel","expandedItemIndex","isLastExpandedItem","isFirstExpandedItem","lastExpandedItemSkip","isItemsTruncatedByTake","isDataDeferred","makeDataDeferred","loadGroupItems","currentGroupCount","currentGroupIndex","currentGroup","requireGroupCount","groupSummary","expandedFilters","expandedPath","isPagingLocal","isLastLevelGroupItemsPagingLocal","sortLastLevelGroupItems","expandedItems","loadGroupTotalCount","isGrouping","isFinite","isVirtualPaging","_updatePagingOptions","skipChildrenTotalCount","takeCorrection","parentTakeCorrection","continuationGroupCount","skipContinuationGroupCount","groupInfoCount","childrenGroupInfoCount","remoteGroupPaging","isLastGroup","_processPaging","_processSkips","firstItem","_processTakes","lastItem","maxTakeCount","handleGroup","DATAGRID_GROUP_PANEL_CLASS","DATAGRID_GROUP_PANEL_MESSAGE_CLASS","DATAGRID_GROUP_PANEL_ITEM_CLASS","DATAGRID_GROUP_PANEL_LABEL_CLASS","DATAGRID_GROUP_PANEL_CONTAINER_CLASS","DATAGRID_GROUP_ROW_CLASS","GroupingDataSourceAdapterExtender","_initGroupingHelper","_grouping","isAutoExpandAll","isFocusedRowEnabled","isODataRemoteOperations","collapseAll","_collapseExpandAll","expandAll","isExpand","beginLoading","_changeRowExpandCore","endLoading","_hasGroupLevelsExpandState","GroupingDataControllerExtender","_processGroupItems","_processGroupItem","groupedColumns","collectContinuationItems","resultItems","expandRow","collapseRow","onGroupingMenuItemClick","GroupingHeaderPanelExtender","_appendGroupingItem","_isGroupPanelVisible","isRendered","$groupPanel","_updateGroupPanelContent","_renderGroupPanelItems","_createGroupPanelItem","$groupPanelItem","$toolbarElement","$groupedColumnElement","isGroupingAllowed","isColumnGrouped","GroupingRowsViewExtender","isGroupRowStateChanged","isExpandButtonClicked","_changeGroupRowState","columnHeadersViewExtender","_isProcessedItem","MASTER_DETAIL_CELL_CLASS","MASTER_DETAIL_ROW_CLASS","masterDetailModule","initMasterDetail","_expandedItems","_isExpandAll","expandIndex","_getRowIndicesForExpand","detailColumnIndex","isEnabledChanged","isAutoExpandAllChanged","_updateParentDataGrids","$masterDetailRow","_updateMasterDataGrid","$detailElement","masterRowOptions","masterDataGrid","_updateMasterDataGridCore","isFixedColumns","_updateFixedMasterDetailGrids","masterRowIndex","$tables","rowsNotEqual","tablesNotEqual","detailElementWidth","isDetailHorizontalScrollCanBeShown","isDetailGridWidthChanged","isEditRow","_isDetailRow","$detailCell","getRealSeparatorIndex","quoteBalance","separatorCount","occurrence","getNthOccurrence","splitByIndex","adjustPercentValue","rawValue","getCaretBoundaries","signParts","getSign","prefixStubLength","postfixStubLength","_getDigitCountBeforeIndex","decimalSeparator","getDecimalSeparator","regExp","textBeforePosition","_reverseText","_getDigitPositionByIndex","digitIndex","counter","_trimNonNumericCharsFromEnd","getCaretWithOffset","caret","getCaretAfterFormat","formatted","isSeparatorBasedText","isSeparatorBasedString","realSeparatorOccurrenceIndex","pointPosition","newPointPosition","textParts","formattedParts","isCaretOnFloat","relativeIndex","digitsBefore","newPosition","getCaretInBoundaries","formattedIntPart","positionFromEnd","digitsFromEnd","newPositionFromEnd","newPositionFromBegin","isCaretInBoundaries","boundaries","adjustedCaret","getCaretOffset","previousText","newText","previousBoundaries","newBoundaries","SPIN_CLASS","SPIN_BUTTON_CLASS","SPIN_HOLD_DELAY","NUMBER_BOX","POINTERUP_EVENT_NAME","up","POINTERCANCEL_EVENT_NAME","SpinButton","onChange","_spinIcon","_spinDownHandler","_spinChangeHandler","_clearTimer","_feedBackDeferred","_holdTimer","setInterval","clearInterval","SPIN_CONTAINER_CLASS","SPIN_TOUCH_FRIENDLY_CLASS","$spinContainer","$spinContainerChildren","pointerDownAction","_spinButtonsPointerDownHandler","_spinUpChangeHandler","_spinDownChangeHandler","$spinUp","$spinDown","_getOptions","_addToContainer","_legacyRender","_isTouchFriendly","_isVisible","isTouchFriendly","shouldUpdate","$spinButtons","spinUp","spinDown","WIDGET_CLASS","FIREFOX_CONTROL_KEYS","FORCE_VALUECHANGE_EVENT_NAMESPACE","NumberBoxBase","upArrow","downArrow","enter","step","showSpinButtons","useLargeSpinButtons","invalidValueMessage","_useTemplates","_getDefaultButtons","Ctor","_isSupportInputMode","generic","_renderSubmitElement","_getDefaultAttributes","inputmode","_validateValue","_$submitElement","_setSubmitValue","_getSubmitElement","val","_keyPressHandler","isInputCharValid","_keyPressed","_onMouseWheel","delta","_spinValueChange","_renderValue","inputValue","_input","_forceValueRender","_toggleEmptinessEventHandler","valuenow","valuetext","_updateButtons","_applyDisplayValueFormatter","_renderDisplayText","_renderProps","prop","valuemin","valuemax","$input","_normalizeInputValue","_correctRounding","_saveValueChangeEvent","regex","isFloatValue","isFloatStep","valueAccuracy","stepAccuracy","accuracy","_round","multiplier","_renderValueChangeEvent","forceValueChangeEvent","_forceRefreshInputValue","_valueChangeEventHandler","_normalizeText","_parseValue","valueHasDigits","_isValueValid","_applyValueBoundaries","validationRequest","isValueIncomplete","_isValueIncomplete","isValueCorrect","_isValueInRange","_replaceCommaWithPoint","_inputIsInvalid","isNumberMode","validityState","validity","badInput","_isNumber","isValueValid","isValid","isNumber","validationError","editorSpecific","_clearValue","_resumeValueChangeAction","NUMBER_FORMATTER_NAMESPACE","MOVE_FORWARD","MOVE_BACKWARD","MINUS","MINUS_KEY","INPUT_EVENT","CARET_TIMEOUT_DURATION","NumberBoxMask","_isDeleteKey","_useMaskBehavior","minus","_revertSign","del","_removeHandler","backspace","leftArrow","_arrowHandler","rightArrow","home","_moveCaretToBoundaryEventHandler","_updateFormattedValue","_getTextSeparatorIndex","_focusInHandler","_preventNestedFocusEvent","clearCaretTimeout","_caretTimeout","_caret","_getInputVal","decimalSeparatorIndex","_focusOutHandler","shouldHandleEvent","_focusOutOccurs","_getFormatPattern","_hasValueBeenChanged","_updateParsedValue","_adjustParsedValue","_setTextByParsedValue","_parsedValue","nextCaret","_moveCaretToBoundary","newCaret","_shouldMoveCaret","isDecimalSeparatorNext","moveToFloat","_lastKey","_keyboardHandler","_lastKeyName","_shouldHandleKey","normalizedText","enteredChar","_tryParse","_moveCaret","isDeleteKey","isBackspaceKey","caretPosition","canDelete","_isStub","editedText","_replaceSelectedText","noDigits","valueAfterRemoving","_isNonStubAfter","_isPercentFormat","noEscapedFormat","_parse","formatOption","isCustomParser","integerPartStartIndex","formatPointIndex","textPointIndex","formatIntegerPartLength","textIntegerPartLength","customFormatter","_currentFormat","_updateFormat","isLDMLPattern","isExponentialFormat","shouldUseFormatAsIs","_getFormatForSign","_sign","_removeStubs","excludeComma","thousandsSeparator","getThousandsSeparator","stubs","_getStubs","prefixStubs","postfixRegex","decoratorsRegex","stub","_truncateToPrecision","maxPrecision","strValue","isTextSelected","_getParsedValue","_getPrecisionLimits","isDecimalPointRestricted","isUselessCharRestricted","textWithoutStubs","parsedValueSign","parsedValueWithSign","pointIndex","floatLength","isPrecisionInRange","endsWithZero","_setInputText","_formattedValue","_renderInputType","isNumberType","isDesktop","_setInputType","_isChar","isSpecialChar","altKey","isMinusKey","_renderInput","_renderFormatter","_clearCache","_detachFormatterEvents","_attachFormatterEvents","_isInputFromPaste","inputType","_isValuePasted","_formatValue","isString","escapedDecimalSeparator","regExpString","stubRegExp","currentFormat","realSeparatorIndex","floatPart","minPrecision","_applyRevertedSign","preserveSelectedText","currentText","caretInBoundaries","_removeMinusFromText","isMinusPressed","textWithoutMinus","wasMinusRemoved","textWasChanged","clearedText","_refreshValueChangeEvent","_refreshEvents","monthGetter","monthSetter","monthLimits","getLimits","newDay","PATTERN_GETTERS","lastDayInMonth","isPM","getDay","currentYear","valueLength","maxLimitLength","getPatternGetter","renderDateParts","sections","isStub","limits","_len","_key","setter","forcedPattern","dM","getAmPm","getDatePartIndexByPosition","caretInGroup","DATE_COMPONENTS","TIME_COMPONENTS","ONE_MINUTE","ONE_DAY","ONE_YEAR","getStringFormat","dateUtils","SUPPORTED_FORMATS","MIN_DATEVIEW_DEFAULT_DATE","MAX_DATEVIEW_DEFAULT_DATE","FORMATS_INFO","getStandardPattern","standardPattern","FORMATS_MAP","SUBMIT_FORMATS_MAP","toStandardDateFormat","fromStandardDateFormat","getMaxMonthDay","mergeDates","formatInfo","componentInfo","DATE_COMPONENTS_INFO","getLongestCaptionIndex","captionArray","longestIndex","longestCaptionLength","getLongestDate","stringFormat","longestDate","normalizeTime","setSeconds","setMilliseconds","formatDate","DX_SWIPEABLE","SWIPEABLE_CLASS","ACTION_TO_EVENT_MAP","onStart","swipe","onUpdated","onCancel","Swipeable","elastic","itemSizeFunc","_attachEventHandlers","_detachEventHandlers","_createEventData","_eventData","CALENDAR_NAVIGATOR_CLASS","CALENDAR_NAVIGATOR_PREVIOUS_MONTH_CLASS","CALENDAR_NAVIGATOR_NEXT_MONTH_CLASS","CALENDAR_NAVIGATOR_PREVIOUS_VIEW_CLASS","CALENDAR_NAVIGATOR_NEXT_VIEW_CLASS","CALENDAR_NAVIGATOR_DISABLED_LINK_CLASS","CALENDAR_NAVIGATOR_CAPTION_BUTTON_CLASS","Navigator","onCaptionClick","_clickAction","_captionClickAction","_renderButtons","_renderCaption","_prevButton","$prevButton","_nextButton","$nextButton","_caption","$caption","toggleButton","buttonPrefix","buttonName","abstract","CALENDAR_OTHER_VIEW_CLASS","CALENDAR_CELL_CLASS","CALENDAR_EMPTY_CELL_CLASS","CALENDAR_TODAY_CLASS","CALENDAR_SELECTED_DATE_CLASS","CALENDAR_CONTOURED_DATE_CLASS","CALENDAR_DXCLICK_EVENT_NAME","CALENDAR_DATE_VALUE_KEY","BaseView","_getViewName","disabledDates","allowValueSelection","_todayDate","_renderImpl","_createDisabledDatesHandler","_renderBody","_renderContouredDate","_renderEvents","_$table","$body","rowData","cellDate","_getFirstCellData","prevCellDate","colIndex","_appendCell","_appendMethodName","_cacheAppendMethodName","_getClassNameByDate","getShortDateFormat","getCellAriaLabel","fixTimezoneGap","_prepareCellTemplateData","_getCellText","_getNextCellData","_isTodayCell","_isDateOutOfRange","isDateDisabled","_isOtherView","_createCellClickAction","_cellClickAction","_disabledDatesHandler","_getDefaultDisabledDatesHandler","contouredDate","$oldContouredCell","_getContouredCell","$newContouredCell","_getCellByDate","_changeValue","selectedCell","_selectedCell","_getFirstAvailableDate","getFirstDateView","isBoundary","CALENDAR_OTHER_MONTH_CLASS","Views","firstDayOfWeek","_renderHeader","_renderFocusTarget","$headerRow","$header","_renderHeaderCell","fullCaption","abbrCaption","_getDayCaption","_getFirstDayOfWeek","scope","abbr","getNavigatorCaption","today","sameDate","dateInRange","daysInWeek","getFirstMonthDate","firstMonthDayOffset","sameMonthAndYear","isDisabledDate","getLastMonthDate","foundDate","sameYear","decade","sameDecade","getFirstYearInDecade","createDateWithFullYear","firstYearInDecade","startDate","endDate","_isValueOnCurrentView","century","minDecade","maxDecade","sameCentury","getFirstDecadeInCentury","firstDecadeInCentury","CALENDAR_CLASS","CALENDAR_BODY_CLASS","CALENDAR_FOOTER_CLASS","CALENDAR_TODAY_BUTTON_CLASS","CALENDAR_HAS_FOOTER_CLASS","CALENDAR_VIEWS_WRAPPER_CLASS","CALENDAR_VIEW_CLASS","FOCUSED_STATE_CLASS","ANIMATION_DURATION_SHOW_VIEW","POP_ANIMATION_FROM","POP_ANIMATION_TO","CALENDAR_INPUT_STANDARD_PATTERN","LEVEL_COMPARE_MAP","ZOOM_LEVEL","MONTH","YEAR","DECADE","CENTURY","elementHasFocus","Calendar","zoomLevel","maxZoomLevel","minZoomLevel","showTodayButton","onContouredChanged","skipFocusCheck","_waitRenderView","_moveCurrentDateByOffset","_getRtlCorrection","_navigateUp","isAnimating","_view","_navigateDown","_dateOption","sameView","getViewFirstCellDate","_moveToClosestAvailableDate","getViewLastCellDate","_isMaxZoomLevel","_updateTimeComponent","_dateValue","_getSerializationFormat","_convertToDate","_shiftDate","baseDate","_getMaxDate","_getMinDate","isDateForwardInNeighborView","_areDatesInNeighborView","isDateForwardInRange","dateForward","date1","date2","getYear","isDateForwardInStartView","isDateBackwardInStartView","isCurrentDateAvailable","_isDateNotAvailable","isDateForwardAvailable","isDateBackwardAvailable","dateBackward","_areDatesInSameView","_correctZoomLevel","_initCurrentDate","_getNormalizedDate","normalizeDate","_getDate","_onContouredChanged","_updateCurrentDate","_$viewsWrapper","normalizedDate","_getViewsOffset","_isOtherViewCellClicked","_suppressNavigation","_navigate","_renderNavigator","_setViewContoured","_updateAriaId","zoomCorrection","_getMonthsOffset","yearOffset","monthOffset","_alreadyViewRender","_getDateByOffset","_waitRenderViewTimeout","_date","currentDay","getDifferenceInMonth","lastDay","_navigator","_renderSwipeable","_renderFooter","_updateAriaSelected","_renderSpecificView","beforeDate","_beforeView","_isViewAvailable","afterDate","_afterView","_translateViews","specificView","$view","_viewConfig","_injectComponent","_cellClickHandler","getViewMinBoundaryDate","getViewMaxBoundaryDate","_getViewPosition","coefficient","rtlCorrection","nextView","getViewDown","isMaxZoomLevel","currentValue","setMinutes","newCurrentDate","_animateShowView","_navigatorConfig","_updateButtonsVisibility","_navigatorClickHandler","getViewUp","_isMinZoomLevel","_getRequiredView","_swipeable","_swipeStartHandler","_swipeUpdateHandler","_swipeEndHandler","_viewWidth","maxLeftOffset","maxRightOffset","isRtl","_updateNavigatorCaption","targetOffset","moveOffset","_isDateInInvalidRange","_animateWrapper","_viewWidthValue","$todayButton","_toTodayView","_$footer","_popAnimationView","newView","offsetSign","endPosition","viewsWrapperPosition","_preventViewChangeAnimation","_wrapperAnimationEndHandler","_rearrangeViews","_resetLocation","viewOffset","viewToCreateKey","viewToRemoveKey","destinationDate","dateByOffset","_clearViewWidthCache","_disposeViews","_refreshViews","_updateViewsValue","_value","$prevSelectedCell","$selectedCell","_value2","ariaId","_suppressingNavigation","getContouredDate","DateBoxStrategy","dateBox","_widget","_renderWidget","_createWidget","_getWidgetContainer","_getWidgetName","widgetOptions","_getWidgetOptions","getDefaultOptions","supportedKeys","getKeyboardListener","customizeButtons","getParsedText","renderInputMinMax","renderOpenedState","_updateValue","popupConfig","_this$_getPopup","_getPopup","renderPopupContent","_preventFocusOnPopup","getFirstPopupElement","getLastPopupElement","popupShowingHandler","popupHiddenHandler","dateBoxValue","useCurrentDateByDefault","getDefaultDate","textChangedHandler","renderValue","getValue","isAdaptivityChanged","dateOption","CalendarStrategy","homeEndHandler","viewValue","_getContouredValue","lastActionElement","shouldCloseDropDown","_closeDropDownByEnter","_valueChangedHandler","actionValue","_popupConfig","buttonsLocation","_isCalendarVisible","registerKeyHandler","_escapeHandler","sameHoursAndMinutes","DIRECTION_HORIZONTAL","DIRECTION_VERTICAL","DIRECTION_BOTH","convertToLocation","DATEVIEW_ROLLER_CLASS","DATEVIEW_ROLLER_ACTIVE_CLASS","DATEVIEW_ROLLER_CURRENT_CLASS","DATEVIEW_ROLLER_ITEM_CLASS","DATEVIEW_ROLLER_ITEM_SELECTED_CLASS","DATEVIEW_ROLLER_ITEM_SELECTED_FRAME_CLASS","DATEVIEW_ROLLER_ITEM_SELECTED_BORDER_CLASS","showOnClick","onSelectedIndexChanged","_visibilityChangedHandler","_endActionHandler","_renderSelectedItemFrame","_renderContainerClick","_renderSelectedValue","_renderItemsClick","_renderWheelEvent","_renderSelectedIndexChanged","_selectedIndexChanged","_isWheelScrolled","clickAction","_$items","_fitIndex","_moveTo","_getItemPosition","_renderActiveStateItem","_itemHeight","itemSelector","_getItemSelector","_itemElementIndex","_prepareDirections","_animation","_shouldScrollToNeighborItem","handleMove","_moveIsAllowed","currentSelectedIndex","locationTop","currentSelectedIndexPosition","dy","_isInNullNeighborhood","newSelectedIndex","_fitSelectedIndexInRange","_getSelectedIndexAfterScroll","_getNewSelectedIndex","_visibilityTimer","toggleActiveState","fitIndex","_fireSelectedIndexChanged","_refreshSelectedIndex","DATEVIEW_CLASS","DATEVIEW_COMPACT_CLASS","DATEVIEW_WRAPPER_CLASS","DATEVIEW_ROLLER_CONTAINER_CLASS","TYPE","ROLLER_TYPE","DateView","_valueOption","_getDefaultDate","applyCompactClass","_toggleFormatClasses","_toggleCompactClass","previousFormat","_wrapper","_$wrapper","_renderRollers","_$rollersContainer","_createRollerConfigs","_rollers","_rollerConfigs","$roller","displayItems","roller","_toggleActive","_setActiveRoller","_setRollerState","_createRollerConfig","valueRange","_calculateRollerConfigValueRange","curDate","_getCurrentDate","valueItems","getIndex","currentRoller","activeRoller","_updateRollersPosition","correctIndex","rollerValue","_refreshRollers","_refreshRoller","rollerType","rollerConfig","minYear","minMonth","maxYear","maxMonth","minHour","maxHour","DateViewStrategy","openOnFieldClick","applyButtonText","_popupToolbarItemsConfig","defaultOptionsRules","_device2","_isNativeType","NativeStrategy","_getDateBoxType","dropDownButton","getButton","android","click","BOX_CLASS","BOX_SELECTOR","BOX_ITEM_CLASS","BOX_ITEM_DATA_KEY","MINSIZE_MAP","MAXSIZE_MAP","SHRINK","FLEX_JUSTIFY_CONTENT_MAP","center","FLEX_ALIGN_ITEMS_MAP","stretch","FLEX_DIRECTION_MAP","setFlexProp","cssName","styleExpr","BOX_EVENTNAMESPACE","UPDATE_EVENT","FALLBACK_BOX_ITEM","FALLBACK_WRAP_MAP","FALLBACK_MAIN_SIZE_MAP","FALLBACK_CROSS_SIZE_MAP","FALLBACK_PRE_MARGIN_MAP","FALLBACK_POST_MARGIN_MAP","FALLBACK_CROSS_PRE_MARGIN_MAP","FALLBACK_CROSS_POST_MARGIN_MAP","MARGINS_RTL_FLIP_MAP","marginLeft","marginRight","_renderVisible","_options","fireItemStateChangedAction","_option","initSize","justifyContent","_normalizedAlign","align","alignItems","_normalizedCrossAlign","crossAlign","flexPropPrefix","maxSize","minSize","baseSize","shrink","each","flexBasis","flexDirection","fontSize","whiteSpace","verticalAlign","totalItemSize","boxSize","_setItemsMargins","_chooseMarginSide","itemSize","totalRatio","totalWeightedShrink","totalBaseSize","_baseSize","freeSpaceSize","_boxSize","factor","totalFactor","_contentSize","_parseSize","_boxSizeValue","_totalBaseSize","renderItems","renderAlign","renderCrossAlign","triggerHandler","onItemStateChanged","_layoutStrategy","_queue","_initLayout","_initBoxQueue","_layout","renderBox","_renderAlign","_renderActions","_onItemStateChanged","_queueIsNotEmpty","_shiftItemFromQueue","itemHoldTimeout","onItemHold","onItemContextMenu","_updateTimer","_isUpdated","$itemNode","_renderItemContentByNode","_renderItemContent","boxConfig","box","_pushItemToQueue","_createItemByTemplate","_itemOptions","TIMEVIEW_CLASS","TIMEVIEW_CLOCK_CLASS","TIMEVIEW_FIELD_CLASS","TIMEVIEW_HOURARROW_CLASS","TIMEVIEW_TIME_SEPARATOR_CLASS","TIMEVIEW_FORMAT12_CLASS","TIMEVIEW_FORMAT12_AM","TIMEVIEW_FORMAT12_PM","TIMEVIEW_MINUTEARROW_CLASS","rotateArrow","$arrow","angle","cssRotate","TimeView","use24HourFormat","_showClock","_arrowOffset","stylingMode","_getValue","_renderBox","_updateTime","$box","_renderClock","_renderField","__","_$hourArrow","_$minuteArrow","_updateClock","hourArrowAngle","minuteArrowAngle","_getBoxItems","is12HourFormat","_hourBox","_minuteBox","_format12","_createHourBox","_createMinuteBox","_createFormat12Box","_onHourBoxValueChanged","onKeyboardHandled","opts","_getNumberBoxConfig","_isPM","newHours","_convertMaxHourToMin","maxHoursValue","newMinutes","_refreshFormat12","_silentEditorValueUpdate","_suppressValueChangeAction","displayValueFormatter","_normalizeHours","_updateField","SHRINK_VIEW_SCREEN_WIDTH","DATEBOX_ADAPTIVITY_MODE_CLASS","DATEBOX_TIMEVIEW_SIDE_CLASS","CalendarWithTimeStrategy","applyValueMode","_is24HourFormat","viewDate","_updateDateTime","_timeView","_isShrinkView","_isSmallScreen","_repaintTimer","isAdaptiveMode","currentAdaptiveMode","_currentAdaptiveMode","preventDefaultValue","_box","_attachTabHandler","calendarPopupConfig","clockMinWidth","_hasFocusClass","_this$_widget$option","_removeMinWidthTimer","DATE_FORMAT","BOUNDARY_VALUES","ListStrategy","_widgetItems","_getDateByItemData","_refreshItems","_timeListItemTemplate","_listItemClickHandler","onFocusedItemChanged","_getTimeListItems","_setSelectedItemsByValue","_asyncScrollTimeout","_scrollToSelectedItem","dateIndex","_getDateIndex","scrollToItem","_areDatesEqual","_getBoundaryDate","_getRangeItems","rangeDuration","rangeItems","boundaryValue","_updatePopupHeight","dropDownOptionsHeight","_setPopupOption","_timeList","DATEBOX_CLASS","DX_AUTO_WIDTH_CLASS","DX_INVALID_BADGE_CLASS","DX_CLEAR_BUTTON_CLASS","DATEBOX_WRAPPER_CLASS","DROPDOWNEDITOR_OVERLAY_CLASS","PICKER_TYPE","calendar","rollers","list","native","STRATEGY_NAME","dateView","calendarWithTime","STRATEGY_CLASSES","Native","CalendarWithTime","List","DateBox","_strategy","_renderButtonContainers","showAnalogClock","pickerType","invalidDateMessage","dateOutOfRangeMessage","adaptivityEnabled","calendarOptions","useHiddenSubmitElement","realDevice","_userOptions","_updatePickerOptions","_pickerType","_initStrategy","_toLowerCaseFirstLetter","strategyName","_getStrategyName","_getFormatType","currentType","isTime","isDate","_refreshFormatClass","_refreshPickerTypeClass","_formatValidationIcon","_this$_strategy$_upda","_this$_strategy","inputElement","isRtlEnabled","clearButtonWidth","_getClearButtonWidth","longestElementDimensions","_getLongestElementDimensions","curWidth","getComputedStyle","shouldHideValidationIcon","_storedPadding","leftPadding","rightPadding","_isClearButtonVisible","clearButtonElement","longestValue","$longestValueElement","isPaddingStored","storedPadding","necessaryWidth","_renderPopupWrapper","_getPopupTitle","classPostfixes","_renderPopupContent","_getFirstPopupElement","_getLastPopupElement","_popupShowingHandler","_popupShownHandler","_popupHiddenHandler","_clearValueHandler","_readOnlyPropValue","isCustomValueDisabled","_getDisplayedText","submitFormat","submitValue","displayedText","_getFormatByMode","_getParsedDate","_getDateByDefault","_applyInternalValidation","_applyCustomValidation","parsedText","isDateInRange","validationMessage","_serializeDate","_isValueChanged","oldTime","newTime","_isTextChanged","oldText","_renderOpenedState","_refreshStrategy","_applyButtonHandler","_this$_strategy2","_updatePopupTitle","_this$_popup","_renderInputValue","MASK_EVENT_NAMESPACE","FORWARD","BACKWARD","DateBoxMask","originalHandlers","callOriginalHandler","originalHandler","applyHandler","maskHandler","_shouldUseOriginalHandler","_revertPart","_isAllSelected","_selectFirstPart","_selectLastPart","_revertChanges","_enterHandler","_selectNextPart","_upDownArrowHandler","isNotDeletingInCalendar","_setNewDateIfEmpty","originalValue","_getActivePartValue","_initialMaskValue","_loadMaskValue","_partIncrease","emptyDateValue","alt","_e$originalEvent","_useBeforeInputEvent","oldInputValue","_processInputKey","_maskInputHandler","_renderSelectedPart","_isSingleCharKey","_keyInputHandler","isBackwardDeletion","isForwardDeletion","_isSingleDigitKey","_maskValue","_activePartIndex","_searchString","_searchNumber","_formatPattern","_renderDateParts","formatLength","_getActivePartProp","isShortFormat","maxSearchLength","isLengthExceeded","_searchValue","isValueOverflowed","_getActivePartLimits","_setActivePartValue","_partLimitsReached","startString","endLimit","_clearSearchValue","_regExpInfo","quantifierRegexp","convertedSource","sourcePart","_prepareRegExpInfo","_detachMaskEvents","_clearMaskState","_attachMaskEvents","_initMaskState","_dateParts","_maskClickHandler","_maskPasteHandler","_maskCompositionEndHandler","_maskBeforeInputHandler","_disposed","isBoundaryIndex","lockOtherParts","limitFunction","_getRealLimitsPattern","zeroes","_addLeadingZeroes","limitDelta","_applyLimits","limitBase","limitClosest","_isDateValid","_isValueDirty","_fireChangeEvent","shouldFireChangeEvent","isDefaultPrevented","_saveMaskValue","_renderMask","CHECKBOX_SIZE_CLASS","EDITOR_INLINE_BLOCK","EditorFactoryMixin","getResultConfig","inputAttr","checkEnterBug","ios","getTextEditorConfig","isEnterBug","sharedData","needDelayedUpdate","isInputOrKeyUpEvent","updateValue","valueChangeTimeout","updateValueTimeout","valueChangeEvent","prepareBooleanEditor","prepareSelectBox","editorName","displayGetter","postProcess","selectBox","stopWatch","searchExpr","showClearButton","editorElement","blur","isSearching","isOnForm","showValidationMark","$editorElement","dxDateBox","defaultEnterKeyHandler","dxTextArea","FOCUS_OVERLAY_CLASS","FOCUSED_ELEMENT_CLASS","MODULE_NAMESPACE","UPDATE_FOCUS_EVENTS","DX_HIDDEN","EditorFactory","_getFocusedElement","$dataGridElement","rowSelector","focusedElementSelector","$focusedElement","_getFocusCellSelector","_updateFocusCore","$focusCell","hideBorders","$focus","loseFocus","_updateFocus","isFocusOverlay","_isFocusOverlay","_updateFocusTimeoutID","_updateFocusOverlaySize","calculate","oversize","hideBorder","_$focusedElement","_focusTimeoutID","renderFocusOverlay","focused","refocus","_$focusOverlay","elemCoord","focusOverlayPosition","precise","_updateFocusHandler","_attachContainerEventHandlers","editorFactoryModule","DEFAULT_BUTTON","DX_DIALOG_CLASSNAME","DX_DIALOG_WRAPPER_CLASSNAME","DX_DIALOG_ROOT_CLASSNAME","DX_DIALOG_CONTENT_CLASSNAME","DX_DIALOG_MESSAGE_CLASSNAME","DX_DIALOG_BUTTONS_CLASSNAME","DX_DIALOG_BUTTON_CLASSNAME","DX_BUTTON_CLASSNAME","FakeDialogComponent","custom","_options$title","isMessageDefined","isMessageHtmlDefined","messageHtml","popupToolbarItems","popupInstance","execute","ignoreChildEvents","bottomToolbar","$firstButton","popupOptions","isPortrait","ROW_SELECTED_CLASS","EDIT_FORM_CLASS","DATA_EDIT_DATA_INSERT_TYPE","DATA_EDIT_DATA_REMOVE_TYPE","EDITING_POPUP_OPTION_NAME","EDITING_FORM_OPTION_NAME","EDITING_EDITROWKEY_OPTION_NAME","EDITING_EDITCOLUMNNAME_OPTION_NAME","TARGET_COMPONENT_NAME","EDITORS_INPUT_SELECTOR","FOCUSABLE_ELEMENT_SELECTOR","EDIT_MODE_BATCH","EDIT_MODE_ROW","EDIT_MODE_CELL","EDIT_MODE_FORM","EDIT_MODE_POPUP","FIRST_NEW_ROW_POSITION","LAST_NEW_ROW_POSITION","PAGE_BOTTOM_NEW_ROW_POSITION","PAGE_TOP_NEW_ROW_POSITION","VIEWPORT_BOTTOM_NEW_ROW_POSITION","VIEWPORT_TOP_NEW_ROW_POSITION","EDIT_MODES","ROW_BASED_MODES","MODES_WITH_DELAYED_FOCUS","READONLY_CLASS","LINK_CLASS","ROW_SELECTED","EDIT_BUTTON_CLASS","COMMAND_EDIT_CLASS","COMMAND_EDIT_WITH_ICONS_CLASS","INSERT_INDEX","ROW_INSERTED","ROW_MODIFIED","CELL_MODIFIED","EDITING_NAMESPACE","DATA_EDIT_DATA_UPDATE_TYPE","DEFAULT_START_EDIT_ACTION","EDIT_LINK_CLASS","edit","undelete","delete","EDIT_ICON_CLASS","METHOD_NAMES","ACTION_OPTION_NAMES","BUTTON_NAMES","EDITING_CHANGES_OPTION_NAME","createFailureHandler","isEditingCell","isEditingOrShowEditorAlwaysDataCell","isCommandCell","isEditorCell","EditingController","getButtonIndex","getButtonName","_lastOperation","_deferreds","_saveEditorHandler","_updateEditColumn","_updateEditButtons","_internalState","getEditMode","editMode","_getDefaultEditorTemplate","_getNewRowPosition","getChanges","getInsertRowCount","resetChanges","needReset","_getInternalData","_addInternalData","internalData","_getOldData","_this$_getInternalDat","getUpdatedData","editIndex","getInsertedData","getRemovedData","_fireDataErrorOccurred","getPopupContent","_needToCloseEditableCell","_closeEditItem","_isDefaultButtonVisible","_isButtonVisible","_isButtonDisabled","_getButtonConfig","addRowToNode","editingOptions","allowAction","_getEditingButtons","buttonIndex","haveCustomButtons","_renderEditingButtons","_createButton","_getEditCommandCellTemplate","isRowBasedEditMode","getFirstEditableColumnIndex","getFirstEditableCellInRow","getFocusedCellInRow","_inputFocusTimeoutID","_pointerUpEditorHandler","_pointerDownEditorHandler","_handleEditRowKeyChange","_handleChangesChange","_resetEditColumnName","_resetEditRowKey","oldRowIndexCorrection","_getEditRowIndexCorrection","oldRowIndex","_editRowFromOptionChanged","_addInsertInfo","_items$rowIndex","_pageIndex","_refreshCore","isEditRowKeyDefined","_setEditRowKey","silent","_setEditRowKeyByIndex","getEditRowIndex","_getVisibleEditRowIndex","getEditFormRowIndex","isKeyEqual","isEditCell","isEditRowByIndex","_getVisibleEditColumnIndex","_getInsertRowIndex","isProcessedItems","_getInsertAfterOrBeforeKey","isProcessedItem","nextItem","_generateNewItem","_this$_getInternalDat2","insertInfo","_getLoadedRowIndex","loadedRowIndex","insertAfterOrBeforeKey","_this$_getInternalDat3","isInsert","processDataItem","_processDataItemCore","modified","removed","_initNewRow","_createInsertInfo","_getInsertIndex","parentKey","_this$_getInternalDat4","_setInsertAfterOrBeforeKey","allItems","isViewportBottom","insertKey","maxInsertIndex","editItem","_this$_getInternalDat5","insertChange","_insertChange$insertA","_getPageIndexToInsertRow","lastPageIndex","_addRow","param","oldEditRowIndex","allowCancelEditing","_allowRowAdding","__KEY__","_addRowCore","_navigateToNewRow","insertIndex","initialOldEditRowIndex","editRowIndex","_addChange","_editRowIndex","_change","focusController","pageIndexToInsertRow","navigateToRowByKey","navigateToRow","_showAddedRow","_afterInsertRow","_focusFirstEditableCellInRow","_beforeFocusElementInRow","$firstCell","_editCellInProgress","_delayedInputFocus","_isEditingStart","_beforeUpdateItems","_setEditColumnNameByIndex","_visibleColumns$index","_setEditColumnName","_getEditColumn","_getColumnByName","editColumn","columnName","isColumnHidden","_resetEditIndices","_item$oldData","_editRowFromOptionChangedCore","preventRendering","_needFocusEditor","_focusEditorIfNeed","_showEditPopup","_repaintEditPopup","_getEditPopupHiddenHandler","_getPopupEditFormTemplate","_getSaveButtonConfig","_getCancelButtonConfig","_removeInternalData","_updateInsertAfterOrBeforeKeys","removeChange","_removeChange","executeOperation","waitForDeferredOperations","_processCanceledEditingCell","_repaintEditCell","oldColumn","beforeFocusCallback","callBeforeFocusCallbackAlways","inputFocus","$focusableElement","_beforeFocusCallback","_focusEditingCell","$editCell","editColumnIndex","_checkAndDeleteRow","showDialogTitle","confirmResult","_deleteRowCore","_afterDeleteRow","_fireOnSaving","onSavingParams","_executeEditingAction","_processChanges","results","dataChanges","changeCopy","_beforeSaveEditData","newData","doneDeferred","_processRemoveIfError","_processRemove","_processRemoveCore","_processSaveEditDataResult","hasSavedData","changesLength","isError","_fireSaveEditDataEvents","isSaving","_resolveAfterSave","_saving","_saveEditDataInner","needFocusEditCell","_afterSaveEditData","_endSaving","_cancelSaving","_beforeEndSaving","_refreshDataAfterSave","isFullRefresh","isEditColumnVisible","_isEditColumnVisible","_isEditButtonDisabled","isEditRowDefined","isButtonDisabled","_applyModified","_beforeCloseEditCellInBatchMode","_cancelEditDataCore","_beforeCancelEditData","_afterCancelEditData","_hideEditPopup","hasEditData","isPageChanged","_getRowIndicesForCascadeUpdating","skipCurrentRow","addDeferred","_prepareChange","_options$row","rowKey","setCellValueResult","_updateRowValues","updateFieldValue","forceUpdateRow","_focusPreviousEditingCellIfNeed","_updateEditRow","_needUpdateRow","isCustomSetCellValue","isCustomCalculateCellValue","changeOptions","_applyChangeCore","_updateEditRowCore","_updateRowImmediately","_updateRowWithDelay","_validateEditFormAfterUpdate","changeParams","_this$getChanges","_getFormEditItemTemplate","getColumnTemplate","editingStartOptions","isRowMode","isRowEditing","getEditFormTemplate","useLegacyColumnButtonTemplate","iconType","localizationName","getButtonLocalizationNames","_button$onClick","prepareButtonItem","titleButtonTextByClassNames","revert","prepareEditButtons","buttonItems","highlightDataCell","shouldHighlightCell","_allowEditAction","allowEditAction","needCallback","isNewRowInEditMode","visibleEditRowIndex","cellModified","editingModule","_editingController","_this$_updateEditItem","_updateEditItem","isParasiteChange","dataSourceKeys","newChanges","isEditNewItem","isRowRemoved","isRowInserted","isRowModified","_getColumnIndexByElement","_getColumnIndexByElementCore","_editCellByClick","isEditedCell","editCell","withoutSaveEditData","closeEditCell","_pointerDownTimeout","isEditForm","_parameters$column","isEditableCell","_editCellPrepared","hasTemplate","_formItemPrepared","cellValue","editButtonItems","excludedOptions","shouldInvalidate","EDIT_ROW","editingRowBasedModule","isRowEditMode","hasUpdateChanges","isVisibleInRowEditMode","$editingCell","_map","guid","widgetInstance","itemsRunTimeInfo","getItems","removeItemByKey","itemRunTimeInfo","_findWidgetInstance","storedItem","targetPath","_findFieldByCondition","targetItem","filteredKeys","_translator","completeAction","MULTIVIEW_CLASS","MULTIVIEW_WRAPPER_CLASS","MULTIVIEW_ITEM_CONTAINER_CLASS","MULTIVIEW_ITEM_CLASS","MULTIVIEW_ITEM_HIDDEN_CLASS","MULTIVIEW_ITEM_DATA_KEY","MULTIVIEW_ANIMATION_DURATION","toNumber","MultiView","swipeEnabled","animationEnabled","loop","loopItemFocus","selectOnFocus","selectionRequired","selectionByClick","_$itemContainer","_itemWidth","_itemWidthValue","_clearItemWidthCache","_itemsCount","_normalizeIndex","_getRTLSignCorrection","_initSwipeable","_deferredItems","selectedItemIndices","_getSelectedItemIndices","_updateItemsVisibility","_afterItemElementDeleted","deletedActionArgs","_beforeItemElementInserted","_executeItemRenderAction","renderContentDeferred","_updateItems","newIndex","_updateItemsPosition","_modifyByChanges","positionSign","_animationDirection","$selectedItem","move","isHidden","_renderSpecificItem","hasItemContent","_itemContentClass","_refreshItem","_updateSelection","animationDirection","_animateItemContainer","completeCallback","moveTo","containerPosition","indexDifference","_getItemFocusLoopSignCorrection","isSwipePresent","directionSignVariable","_getSwipeDisabledState","lastIndex","rtl","_swipeDirection","swipeDirection","$selectedElement","itemElements","_itemFocusLooped","$result","_updateSwipeDisabledState","TABS_ITEM_BADGE_CLASS","BADGE_CLASS","TabsItem","_renderWatchers","_startWatcher","_renderBadge","badge","$badge","TABS_EXPANDED_CLASS","getScrollLeftMax","isReachedLeft","scrollOffsetLeft","epsilon","isReachedRight","TABS_CLASS","TABS_WRAPPER_CLASS","TABS_STRETCHED_CLASS","TABS_SCROLLABLE_CLASS","TABS_NAV_BUTTONS_CLASS","OVERFLOW_HIDDEN_CLASS","TABS_ITEM_CLASS","TABS_ITEM_SELECTED_CLASS","TABS_NAV_BUTTON_CLASS","TABS_LEFT_NAV_BUTTON_CLASS","TABS_RIGHT_NAV_BUTTON_CLASS","TABS_ITEM_TEXT_CLASS","TABS_ITEM_DATA_KEY","BUTTON_NEXT_ICON","BUTTON_PREV_ICON","FEEDBACK_HIDE_TIMEOUT","FEEDBACK_DURATION_INTERVAL","FEEDBACK_SCROLL_TIMEOUT","TAB_OFFSET","Tabs","showNavButtons","badgeExpr","_renderWrapper","_renderMultiple","_feedbackHideTimeout","_prepareDefaultItemTemplate","$iconElement","wrapInner","renderArgs","_deferredTemplates","_deferRenderScrolling","_renderScrolling","removeClasses","_isItemsWidthExceeded","_renderNavButtons","_updateNavButtonsVisibility","_scrollToItem","_cleanScrolling","_needStretchItems","tabItemsWidth","_getVisibleItems","$visibleItems","maxTabWidth","_cleanNavButtons","_leftButton","_rightButton","getItemElement","_createNavButton","$leftButton","$rightButton","_updateScrollPosition","scrollBy","holdAction","_holdInterval","holdEventName","pointerUpEventName","pointerOutEventName","out","navButton","$navButton","_clearInterval","_itemSelectHandler","TABPANEL_CLASS","TABPANEL_TABS_CLASS","TABPANEL_CONTAINER_CLASS","TabPanel","itemTitleTemplate","onTitleClick","onTitleHold","_createTitleActions","_renderLayout","_createTitleClickAction","_createTitleHoldAction","_createTitleRenderedAction","_titleClickAction","_titleHoldAction","_titleRenderedAction","_resizeEventTimer","_updateLayout","_tabs","_$tabContainer","$tabs","_tabConfig","_$container","tabsHeight","tabs","tabItems","$activeTab","getFocusedItemId","itemTemplateProperty","$value","$newItem","_isFocusOutHandlerExecuting","_updateFocusState","_toggleFocusClass","_setTabsOption","selectedTabContent","_itemsRunTimeInfo","findWidgetInstanceByItem","findItemContainerByItem","findPreparedItemByItem","createItemPathByIndex","isTabs","concatPaths","getTextWithoutSpaces","isEqualToDataFieldOrNameOrTitleOrCaption","getFullOptionName","getOptionNameFromFullName","tryGetTabPath","fullPath","pathParts","resultPathParts","isFullPathContainsTabs","getItemPath","tabOrGroupItems","itemPath","convertToLayoutManagerOptions","$formElement","formOptions","extendedLayoutManagerOptions","onFieldItemRendered","baseOptions","validationBoundary","layoutData","isRoot","cssItemClass","onLayoutChanged","findInstance","tabPanel","findItemIndexByItem","preparedItem","findPreparedItem","_prepareGroupItemTemplate","_renderGroupContentTemplate","validator","filterRequired","oldContainsRequired","newContainsRequired","findItemContainer","tryCreateItemOptionAction","itemActionOptions","_itemActionOptions$it","_itemActionOptions$it2","_itemActionOptions$it3","RESPONSIVE_BOX_CLASS","SCREEN_SIZE_CLASS_PREFIX","HD_SCREEN_WIDTH","ResponsiveBox","cols","singleColumnScreen","currentScreenFactor","_initLayoutChangedAction","_layoutChangedAction","_updateRootBox","_$root","_setScreenSize","_screenItems","_itemsByScreen","_prepareGrid","_spreadItems","_layoutItems","_linkNodeToItem","_clearItemNodeTemplates","currentScreen","_getCurrentScreen","_removeScreenSizeClass","grid","_grid","_prepareRowsAndCols","_rows","_cols","_createEmptyCell","getSingleColumnRows","screenItemsLength","filteredRows","_filterByScreen","sizeConfig","_defaultSizeConfig","_isSingleColumnScreen","_prepareSingleColumnScreenItems","_sizesByScreen","_screenRegExp","sizeConfigs","_createDefaultSizeConfig","defaultSizeConfig","screenRegExp","screen","_screenWidth","itemInfo","itemCol","itemRow","itemCell","_occupyCells","locations","_isItemCellOccupied","_markSpanningCell","_loopOverSpanning","rowEnd","colEnd","boundRowEnd","boundColEnd","spanningCell","itemNode","rowsCount","colsCount","_layoutBlock","rootBox","_prepareBoxConfig","_rootBoxConfig","rootItems","_needApplyAutoBaseSize","_isSingleItem","_itemByCell","_layoutDirection","firstCellLocation","isItemRowSpanned","isItemColSpanned","block","crossDirection","_crossDirection","_nextBlock","_isBlockIndivisible","prevBlockOptions","_blockSize","startIndex","endIndex","crossStartIndex","crossSpan","crossIndex","lineCrossSpan","_cellByDirection","lineCrossEndIndex","crossEndIndex","defaultMinSize","forceRemoveRoot","$existingRoot","_saveAssistantRoot","_assistantRoots","_cleanUnusedRoots","FORM_CLASS","FORM_GROUP_CLASS","FORM_GROUP_CAPTION_CLASS","FORM_FIELD_ITEM_COL_CLASS","FIELD_ITEM_CLASS","LAYOUT_MANAGER_ONE_COLUMN","FIELD_ITEM_LABEL_CONTENT_CLASS","FORM_LAYOUT_MANAGER_CLASS","FIELD_ITEM_LABEL_CLASS","FIELD_ITEM_CONTENT_CLASS","SINGLE_COLUMN_ITEM_CONTENT","ROOT_SIMPLE_ITEM_CLASS","FORM_GROUP_CONTENT_CLASS","FIELD_ITEM_CONTENT_HAS_GROUP_CLASS","FIELD_ITEM_CONTENT_HAS_TABS_CLASS","FORM_GROUP_WITH_CAPTION_CLASS","FIELD_ITEM_TAB_CLASS","GROUP_COL_COUNT_CLASS","GROUP_COL_COUNT_ATTR","FORM_VALIDATION_SUMMARY","FORM_UNDERLINED_CLASS","SIMPLE_ITEM_TYPE","DefaultAdapter","validationRequestsCallbacks","validationErrors","brokenRules","validationStatus","VALIDATOR_CLASS","VALIDATION_STATUS_VALID","VALIDATION_STATUS_INVALID","VALIDATION_STATUS_PENDING","Validator","initValidationOptions","_initGroupRegistration","_initAdapter","_validationInfo","skipValidation","_findGroup","_groupWasInit","removeRegisteredValidator","_validationGroup","registerValidatorInGroup","dxStandardEditor","_getEditor","adapter","validate","callbacks","_this$option$editor$o","_this$option","_this$option$editor","_toggleAccessibilityAttributes","rules","_resetValidationRules","synchronizeValidationOptions","_validationRules","rule","findGroup","_modelByElement","bypass","currentError","getCurrentValidationError","_getValidationRules","currentResult","brokenRule","_applyValidationResult","res","pendingRules","validatedAction","_updateValidationResult","applyValidationResults","EDITORS_WITH_ARRAY_VALUE","EDITORS_WITHOUT_LABELS","convertToRenderFieldItemOptions","rootElementCssClassList","formOrLayoutManager","createComponentCallback","useFlexLayout","formLabelLocation","requiredMessageTemplate","editorValue","canAssignUndefinedValueToEditor","editorValidationBoundary","editorStylingMode","managerLabelLocation","itemId","managerMarkOptions","_hasRequiredRuleInSet","isSimpleItem","helpID","labelOptions","_convertToLabelOptions","formLabelMode","needRenderLabel","labelID","labelNeedBaselineAlign","_convertToEditorOptions","defaultEditorName","externalEditorOptions","editorInputId","labelText","textWithoutColon","labelMark","markOptions","needRenderOptionalMarkAsHelpText","getLabelMarkText","convertToLabelMarkOptions","editorOptionsWithValue","hasRequiredRule","isEditorWithoutLabels","_excluded","GET_LABEL_WIDTH_BY_TEXT_CLASS","FIELD_ITEM_REQUIRED_MARK_CLASS","FIELD_ITEM_LABEL_LOCATION_CLASS","FIELD_ITEM_OPTIONAL_MARK_CLASS","FIELD_ITEM_LABEL_TEXT_CLASS","renderLabel","_renderLabelMark","markText","setLabelWidthByMaxLabelWidth","$targetContainer","labelsSelector","labelMarkOptions","labelWidth","FIELD_ITEM_LABEL_CONTENT_CLASS_Selector","$FIELD_ITEM_LABEL_CONTENT_CLASS_Items","FIELD_ITEM_LABEL_CONTENT_CLASS_Length","getLabelWidthByInnerHTML","$FIELD_ITEM_LABEL_CONTENT_CLASS","renderLabelOptions","$hiddenContainer","$label","labelTextElement","getLabelInnerHTML","child","innerText","FLEX_LAYOUT_CLASS","FIELD_ITEM_OPTIONAL_CLASS","FIELD_ITEM_REQUIRED_CLASS","FIELD_ITEM_CONTENT_WRAPPER_CLASS","FIELD_ITEM_CONTENT_LOCATION_CLASS","FIELD_ITEM_LABEL_ALIGN_CLASS","FIELD_ITEM_HELP_TEXT_CLASS","LABEL_VERTICAL_ALIGNMENT_CLASS","LABEL_HORIZONTAL_ALIGNMENT_CLASS","TEMPLATE_WRAPPER_CLASS","VALIDATION_TARGET_CLASS","INVALID_CLASS","renderFieldItem","$fieldEditorContainer","$validationTarget","getValidationTarget","validationTargetInstance","tryGetValidationTargetInstance","subscribeWrapperInvalidClassToggle","$div","isItemHaveCustomLabel","itemName","dataGetter","$editorParent","_$validationTarget$pa","_$validationTarget$pa2","wrapperClass","toggleInvalidClass","validationMessageMode","_isFocused","FIELD_BUTTON_ITEM_CLASS","renderButtonItem","convertAlignmentToTextAlign","horizontalAlignment","convertAlignmentToJustifyContent","verticalAlignment","buttonInstance","buttonOptions","FIELD_EMPTY_ITEM_CLASS","renderEmptyItem","FORM_EDITOR_BY_DEFAULT","LAYOUT_MANAGER_FIRST_ROW_CLASS","LAYOUT_MANAGER_LAST_ROW_CLASS","LAYOUT_MANAGER_FIRST_COL_CLASS","LAYOUT_MANAGER_LAST_COL_CLASS","LAYOUT_STRATEGY_FLEX","LAYOUT_STRATEGY_FALLBACK","LayoutManager","_itemWatchers","_updateReferencedOptions","_initDataAndItems","_cleanItemWatchers","initialData","_syncDataWithItems","_getDataByField","_updateFieldValue","_isCheckboxUndefinedStateEnabled","allowIndeterminateState","nameParts","propertyName","isWritableWrapped","_triggerOnFieldDataChanged","isUserItemsExist","_generateItemsByData","processedItems","_isAcceptableItem","unwrap","_updateItemWatchers","_setItems","_sortItems","_getWatch","itemField","_getEditorTypeByDataType","_item$allowIndetermin","_sortIndexes","itemA","itemB","indexA","indexB","clear","_renderResponsiveBox","_hasBrowserFlex","templatesInfo","_getColCount","_prepareItemsWithMerging","layoutItems","_generateLayoutItems","_responsiveBox","_getResponsiveBoxConfig","_renderTemplates","_itemStateChangedHandler","info","_renderButtonItem","_renderFieldItem","xsColCount","isSingleColumnMode","itemRenderedCountInPreviousRows","itemCssClassList","isLastColumn","_getRowsCount","isLastRow","_generateRatio","screenFactor","getTargetScreenFactor","_cashedColCount","_getMaxColCount","maxColCount","isCachedColCountObsolete","itemsMergedByCol","_getColByIndex","merged","generatedItem","rowSpan","_renderEmptyItem","_getFormOrThis","getItemID","_getMarkOptions","_bindDataField","editorInstance","formOrThis","_createWatcher","linkEditorToDataField","fieldValue","array1","array2","_watch","formInstance","readOnlyState","isAutoSize","newLayoutData","getOwnPropertyNames","_disableEditorValueChangedHandler","_cashedRequiredConfig","valueGetter","dataValue","_resetWidget","_resetColCount","isValueReferenceType","updateData","getEditor","findWidgetInstanceByDataField","findWidgetInstanceByName","responsiveBox","getItemsRunTimeInfo","VALIDATION_SUMMARY_CLASS","ITEM_DATA_KEY","ValidationSummary","groupConfig","addGroup","_unsubscribeGroup","groupSubscription","_groupValidationHandler","getGroupConfig","validators","orderedItems","foundItems","_getOrderedItems","_validationSummary","_itemValidationHandler","itemsChanged","foundRule","foundItem","VALIDATION_ENGINE_CLASS","validatorContainer","summaryContainer","refreshValidationGroup","validateGroup","resetGroup","removeGroup","ITEM_OPTIONS_FOR_VALIDATION_UPDATING","Form","_cachedColCountOptions","_groupsColCount","_attachSyncSubscriptions","formID","alignRootItemLabels","_getGroupColCount","_applyLabelsWidthByCol","fieldItemClass","inOneColumn","cssExcludeTabbedSelector","excludeTabbed","_applyLabelsWidth","applyLabelsOptions","_getGroupElementsInColumn","cssColCountSelector","groupSelector","_applyLabelsWidthWithGroups","$rootSimpleItems","_applyLabelsWidthWithNestedGroups","$groups","groupsColIndex","groupColIndex","$groupsByCol","groupColCount","_labelLocation","_alignLabelsInColumn","layoutManager","_checkGrouping","_prepareFormData","_setStylingModeClass","_getValidationGroup","_clearCachedInstances","_renderValidationSummary","_lastMarkupScreenFactor","_targetScreenFactor","_getCurrentScreenFactor","_cachedLayoutManagers","_alignLabels","_clearValidationSummary","_getContent","_this$_$validationSum","_$validationSummary","dxValidationSummary","parentIsTabbedItem","currentPath","_tryPrepareGroupItem","_tryPrepareTabbedItem","_tryPrepareItemTemplate","_prepareItems","groupContentTemplate","_itemGroupTemplate","_itemTabbedTemplate","_rootLayoutManager","_renderLayoutManager","_createLayoutManagerOptions","_tryGetItemsForTemplate","$tabPanel","tabPanelOptions","extendRunTimeItemInfoByKey","tryUpdateTabPanelInstance","$group","$groupContent","_isDataUpdating","addItemsOrExtendFrom","nestedItemsRunTimeInfo","removeItemsByItems","_this$_validationSumm","layoutManagerOptions","baseColCountByScreen","_clearAutoColCountChangedTimeout","autoColCountChangedTimeoutId","_extendConfig","optionFullName","_triggerOnFieldDataChangedByDataSet","splitFullName","_itemsOptionChangedHandler","_formDataOptionChangedHandler","_defaultOptionChangedHandler","_resetValues","_getItemPath","optionNameWithoutPath","simpleOptionName","itemAction","_tryCreateItemOptionAction","_tryExecuteItemOptionAction","_tryChangeLayoutManagerItemOption","_changeItemOption","_generateItemsFromData","removeItemsByPathStartWith","tryExecute","_updateValidationGroupAndSummaryIfNeeded","_this$_validationSumm2","findKeyByPath","postponedOperations","contentReadyHandler","tabPath","tabLayoutManager","findGroupOrTabLayoutManagerByPath","_setLayoutManagerItemOption","endPartIndex","_itemPath","_layoutManager","formItems","layoutManagerItems","layoutItem","_getItemByField","resultItem","fieldParts","_getFieldParts","fieldPath","_getItemByFieldPath","subItemsField","_getSubItemField","separatorIndex","resultPath","isItemWithSubItems","isGroupWithName","nameWithoutSpaces","pathNode","_searchItemInEverySubItem","_isColCountChanged","oldScreenSize","newScreenSize","isChanged","editorSelector","isEditor","_updateData","isComplexData","resetValues","resolveWith","allowUpdateItems","_tryChangeLayoutManagerItemOptions","isRenovatedScrollable","IS_RENOVATED_WIDGET","EDIT_FORM_ITEM_CLASS","EDIT_POPUP_CLASS","EDIT_POPUP_FORM_CLASS","FOCUSABLE_ELEMENT_CLASS","BUTTON_CLASS","FORM_BUTTONS_CONTAINER_CLASS","getEditorType","_column$formItem","isCustomEditorType","forEachFormItems","callBack","editingFormBasedModule","_editForm","_updateEditFormDeferred","isFormOrPopupEditMode","isPopupEditMode","isFormEditMode","firstFormItem","_firstFormItem","$editFormElements","_getEditFormEditorVisibleIndex","_args$items","_args$changeTypes","hasEditRow","onlyInsertChanges","_this$_editPopup","popupVisible","_editPopup","_$popupContent","_row$update","editForm","repaintForm","isMobileDevice","$popupContainer","_this$_editForm","formTemplate","isPopupForm","_this$_editPopup2","_this$_editPopup3","defaultAnimation","_this$_editPopup4","_handleFormOptionChange","_handlePopupOptionChange","_this$_editPopup5","editPopup","popupOptionName","renderFormEditTemplate","detailCellOptions","formTemplateOptions","isReadOnly","getFormEditorTemplate","_cellOptions$row$watc","_cellOptions$row","_validator","validatorOptions","contents","dxValidator","getEditFormOptions","detailOptions","_this$_getValidationG","editFormOptions","_getValidationGroupsInForm","userCustomizeItem","editFormItemClass","baseEditFormOptions","$formContainer","$buttonsContainer","_this$_editPopup6","getEditForm","_this$_updateEditForm","_this$_editPopup7","editFormRowIndex","_isFormItem","isDetailRow","isPopupEditing","ADD_ROW_BUTTON_CLASS","DROPDOWN_EDITOR_OVERLAY_CLASS","ROW_REMOVED","$pointerDownTarget","needCreateHandlers","_this$getController","targetComponent","isCellOrBatchEditMode","isEditorPopup","checkEditorPopup","isDomElement","isAnotherComponent","isAddRowButton","isCellEditMode","$dropDownEditorOverlay","$componentElement","isBatchEditMode","isCurrentComponentElement","$targetCell","_this$_rowsView","isEditColumnNameDefined","_handleEditColumnNameChange","oldColumnIndex","_editCellFromOptionChanged","_deferred","_editCell","coreResult","_editCellCore","isEditByOptionChanged","_getNormalizedEditCellOptions","_beforeEditCell","_prepareEditCell","_closeEditCellCore","_resetModifiedClassCells","columnsCount","_this$_editCellFromOp","needResetIndexes","isBatchMode","_isRowDeleteAllowed","_changes$","_deferred2","isUpdateInCellMode","focusPreviousEditingCell","processIfBatch","INVALIDATE_CLASS","REVERT_TOOLTIP_CLASS","INVALID_MESSAGE_CLASS","WIDGET_INVALID_MESSAGE_CLASS","INVALID_MESSAGE_ALWAYS_CLASS","REVERT_BUTTON_CLASS","PENDING_INDICATOR_CLASS","VALIDATION_PENDING_CLASS","PADDING_BETWEEN_TOOLTIPS","FORM_BASED_MODES","COMMAND_TRANSPARENT","VALIDATION_STATUS","valid","invalid","EDIT_DATA_INSERT_TYPE","EDIT_DATA_REMOVE_TYPE","VALIDATION_CANCELLED","validationResultIsValid","cellValueShouldBeValidated","ValidatingController","_validationState","initValidationState","_validationStateCache","_rowIsValidated","validationData","_getValidationData","validated","keyHash","isObjectKeyHash","_getBrokenRules","validationResults","_rowValidating","getChangeByKey","errorText","getHiddenValidatorsErrorText","brokenRulesMessages","isGroupExpandColumn","isVisibleColumn","isFull","completeList","_isValidationInProgress","validationResult","_currentCellValidator","_validationResult","resetRowValidationResults","isRowDataModified","updateValidationState","setDisableApplyValidationResults","setValidator","renderCellPendingIndicator","disposeCellPendingIndicator","validationStatusChanged","updateCellValidationResult","validatorInitialized","validatorDisposing","getCellValidationResult","cancelCellValidationResult","applyValidationResult","requestIsDisabled","disabledPendingId","_disableApplyValidationResults","getEditorInstance","_syncInternalEditingData","_parameters$row","oldDataFromState","createValidator","needCreateValidator","_parameters$row$oldDa","_parameters$row2","isCellOrBatchEditingAllowed","useDefaultValidator","flag","getDisableApplyValidationResults","isCurrentValidatorProcessing","validateCell","cellParams","stateRestored","_validationData$valid","removeCellValidationResult","_ref6","isInvalidCell","_ref7","getCellValidator","_ref8","setCellValidationStatus","validatingModule","validating","validatingController","_updateRowAndPageIndices","startInsertIndex","_ref9","isNotCanceled","addInValidItem","isInserted","_createInvisibleColumnValidators","invisibleColumns","invisibleColumnValidators","isCellVisible","disposeValidators","isFullValid","_showErrorRow","shouldResetValidationState","columnsWithValidatingEditors","_col$validationRules","validationState","resetRowAndPageIndices","currentValidator","isValidated","needValidation","isCellInvalid","_showRevertButton","$tooltipElement","$overlayContainer","tooltipOptions","$buttonElement","onPositioned","_positionedHandler","_hideFixedGroupCell","$nextFixedRowElement","$groupCellElement","nextRowOptions","visibility","isOverlayVisible","__skipPositionProcessing","isRevertButton","needRepaint","normalizedPosition","_normalizeValidationMessagePositionAndMaxWidth","_showValidationMessage","messages","revertTooltip","editorPopup","myPosition","atPosition","errorMessageText","invalidMessageClass","$overlayElement","_shiftValidationMessageIfNeed","fixedColumns","visibleTableWidth","w1","w2","$overlayContentElement","validationMessageWidth","needMaxWidth","boundaryNonFixedColumnsInfo","firstNonFixedColumnIndex","lastNonFixedColumnIndex","endColumnIndex","$revertContent","contentOffset","revertContentOffset","_getTooltipsSelector","revertTooltipClass","skipValidator","updateCellState","_change$data","showValidationMessage","errorMessages","$tooltips","_oldRow$cells","_cell$column$validati","oldValidationStatus","newValidationStatus","rowIsModified","cellIsMarkedAsInvalid","editingChanged","hasValidationRules","$freeSpaceRowElements","$tooltipContent","isEditorDisposed","contentTable","needTwoPagesLoading","_controller","isVirtual","getViewportItemIndex","getBeginPageIndex","_cache","getEndPageIndex","fireChanged","_isChangedFiring","processDelayChanged","_isDelayChanged","getViewportPageCount","_dataOptions","preventPreload","realViewportSize","viewportSize","viewportItemSize","getContentOffset","getViewportPosition","virtualItemsCount","begin","getItemSizes","getPreloadPageCount","getPageIndexForLoad","dataOptions","needToLoadPageBeforeLast","needToLoadPrevPage","needToLoadNextPage","_loadingPageIndexes","loadCore","processChanged","isDelayChanged","removeCacheItem","isPrepend","viewportItems","removeCount","correctCount","removeItemCount","itemsLength","updateLoading","_lastPageIndex","newPageIndex","lastPageSize","maxPageIndex","defaultPageIndex","endPageIndex","pageIndexForLoad","delayDeferred","_delayDeferred","onChanged","_setViewportPositionCore","removeInvisiblePages","lastCacheLength","isBase","beginItemsCount","endItemsCount","_isVirtualMode","_isVirtual","_isAppendMode","subscribeToExternalScrollers","scrollChangedHandler","$scrollElement","scrollableArray","scrollToArray","disposeArray","getElementOffset","$scrollableElement","scrollableOffset","widgetScrollStrategy","subscribeToScrollEvents","eventsStrategy","topOffset","scrollMethod","VirtualScrollController","_viewportSize","_viewportItemSize","_viewportItemIndex","_position","_isScrollingBack","_itemSizes","_sizeRatio","positionChanged","_dataLoader","viewportParams","getViewportParams","loadedOffset","loadedItemCount","getScrollingTimeout","scrollingTimeout","changingDuration","setViewportPosition","_scrollTimeoutID","getItemIndexByPosition","viewportItemIndex","defaultItemSize","getItemSize","itemOffset","itemOffsetsWithSize","itemOffsetWithSize","itemOffsetDiff","isScrollingBack","prevPosition","setViewportItemIndex","setContentItemSizes","sizes","virtualContentSize","contentHeightLimit","getItemOffset","isEnd","currentItemIndex","getVirtualContentSize","viewportItemIndexChanged","viewportHeight","isRefresh","subscribeToWindowScrollEvents","_windowScroll","_this$option2","topIndex","bottomIndex","maxGap","minGap","topMinGap","bottomMinGap","remainedItems","BOTTOM_LOAD_PANEL_CLASS","TABLE_CONTENT_CLASS","FREESPACE_CLASS","VIRTUAL_ROW_CLASS","LOAD_TIMEOUT","VISIBLE_PAGE_INDEX","_correctCount","isItemCountableFunc","isItemCountableByDataSource","updateItemIndices","VirtualScrollingDataSourceAdapterExtender","_updateLoading","_virtualScrollController","_totalCount","_loadPageCount","_getVirtualScrollDataOptions","_renderTime","_startLoadTime","handleDataChanged","newMode","virtualScrollController","getDelayDeferred","loadPageCount","takeIsDefined","VirtualScrollingRowsViewExtender","removeEmptyRows","$emptyRows","_dataController$state","scrollToPage","updateViewport","_scrollToCurrentPageOnResize","resizeHandler","scrollPosition","itemSizes","_updateContentPosition","startRenderTime","_removeRowsElements","_updateBottomLoading","_addVirtualRow","$virtualRow","_updateContentItemSizes","rowHeights","_getRowHeights","correctedRowHeights","_correctRowHeights","_updateViewportSize","_this$getController$i","visibleRows","firstCountableItem","lastLoadIndex","isRender","rowHeight","$virtualRows","prevFixed","_isFixedTableRendering","_isTableLinesDisplaysCorrect","table","hasColumnLines","_isColumnElementsEqual","$columns","$virtualColumns","_getCellClasses","classes","isExpandColumn","_findBottomLoadPanel","$bottomLoadPanel","showBottomLoading","bottomLoadPanelElement","zeroTopPosition","hasBottomLoadPanel","isViewportChanging","scrollPos","loadIfNeed","_dataController$loadI","virtualScrollingModule","updateTimeout","minTimeout","renderingThreshold","rowPageSize","prerenderedRowChunkSize","loadTwoPagesOnStart","legacyMode","prerenderedRowCount","baseResult","initVirtualRows","_rowsScrollController","_this$_dataSource","_loadViewportParams","getLoadPageParams","getRowPageSize","rowsScrollController","isSortingOperation","allowedTopOffset","virtualRowsRendering","_allItems","_visibleItems","_rowPageIndex","_viewportChanging","_needUpdateViewportAfterLoading","_getRowsScrollDataOptions","_this$_dataSource2","loadViewport","_updateLoadViewportParams","isItemCountable","_that$_dataSource","_itemCount","isNextAfterLast","countableOnly","cancelEmptyChanges","newItems","_dataSource$lastLoadO","prevCountable","prevRowType","isPrevRowNew","currentIndex","wasCountableItem","itemCountable","isNextGroupItem","isNextDataItem","isPrevNewRowFirst","skipForCurrentPage","isNewRowOnStart","isNewRowInEmptyData","isLoadIndexGreaterStart","isLoadIndexLessEnd","byLoadedRows","firstLoadIndex","_dataSource$lastLoadO2","_this$_rowsScrollCont","getPreloadedRowCount","preloadCount","byLoadedPage","_this$_dataSource3","_this$_dataSource4","loadedPageIndex","loadedTake","topPreloadCount","bottomPreloadCount","skipWithPreload","loadingTake","_updateVisiblePageIndex","currentPageIndex","viewPortItemIndex","_getChangedLoadParams","loadedPageParams","pageIndexIsValid","_pageIndexIsValid","_loadItems","checkLoading","viewportIsFilled","_dataSourceAdapter$lo","_dataSourceAdapter$pa","changedParams","currentLoadPageCount","lastRequiredItemCount","pageIndexNotChanged","allLoadedInAppendMode","isRepaintMode","pageIndexIncreased","viewportChanging","checkLoadedParamsOnly","viewportIsNotFilled","loadingItemsStarted","_this$_loadViewportPa","_this$_loadViewportPa2","currentTake","newTake","topItemIndex","_this$_loadViewportPa3","bottomItemIndex","_this$_dataSource5","masterDataGridUpdated","isNewVirtualMode","_resizeTimeout","_lastTime","WINDOW_HEIGHT_PERCENT","getElementMaxHeightByWindow","startLocation","actualOffset","elementOffset","offsetTop","offsetBottom","DX_CONTEXT_MENU_CONTENT_DELIMITER_CLASS","orientation","onHoverStart","_initDataAdapter","_renderDelimiter","$contentDelimiter","_overlayPositionedActionHandler","_showDelimiter","hoverStartAction","_hoverStartHandler","rootItem","submenu","containerOffset","vLocation","hLocation","rootOffset","offsetLeft","rootWidth","rootHeight","submenuWidth","submenuHeight","_isMenuHorizontal","DX_MENU_VERTICAL_CLASS","DX_MENU_HORIZONTAL_CLASS","DX_CONTEXT_MENU_CONTAINER_BORDER_CLASS","DX_STATE_ACTIVE_CLASS","DX_ADAPTIVE_MODE_CLASS","DX_ADAPTIVE_HAMBURGER_BUTTON_CLASS","DX_ADAPTIVE_MODE_OVERLAY_WRAPPER_CLASS","SHOW_SUBMENU_OPERATION","NEXTITEM_OPERATION","PREVITEM_OPERATION","showFirstSubmenuMode","hideSubmenuOnMouseLeave","onSubmenuShowing","onSubmenuShown","onSubmenuHiding","onSubmenuHidden","rootMenuElements","submenuElements","_submenuItemElements","currentSubmenu","_submenus","navigationAction","isMenuHorizontal","_getItemsNavigationOperation","_getKeyboardNavigationAction","navOperation","_menuItemsWidth","_updateItemsWidthCache","$menuItems","_isAdaptivityEnabled","containerWidth","_toggleAdaptiveMode","_visibleSubmenu","_initAdaptivity","_hamburger","_toggleTreeView","_toggleHamburgerActiveState","$menuItemsContainer","$adaptiveElements","_hideVisibleSubmenu","_treeView","_$adaptiveContainer","_ignoreFunctionValueDeprecation","menuOptions","_treeviewItemClickHandler","onItemExpanded","onItemCollapsed","expandEvent","$hamburger","_renderHamburgerButton","_getTreeViewOptions","_getAdaptiveOverlayOptions","delayType","_createSubmenu","_renderBorderElement","_getKeyboardListeners","$submenuContainer","subMenu","_getSubmenuOptions","_parentKey","_clearTimeouts","getSubmenuPosition","_attachSubmenuHandlers","$submenuTarget","disabledExpr","selectedExpr","itemsExpr","_nestedItemOnSelectionChangedHandler","_nestedItemOnItemClickHandler","_nestedItemOnItemRenderedHandler","_moveMainMenuFocus","$currentItem","_clearSelectionInSubmenus","_clearRootSelection","targetSubmenu","cleanAllSubmenus","isOtherItem","selectedItemData","_clearSelectedItems","$prevSelectedItem","prevSelectedItemData","$submenuOverlayContent","getOverlayContent","submenus","submenuMouseLeaveName","hover","_submenuOnShowingHandler","_submenuOnShownHandler","_submenuOnHidingHandler","_submenuOnHiddenHandler","_submenuMouseLeaveHandler","$border","relatedTarget","_getSubmenuByRootElement","_hideSubmenuAfterTimeout","_getDelay","isRootItemHovered","isSubmenuItemHovered","hoveredElementFromSubMenu","isHorizontalMenu","$closestItem","_itemPointerDownHandler","mouseMoveEventName","isSelectionActive","_hasChildren","_getShowFirstSubmenuMode","_getSubmenuByElement","_itemMouseMoveHandler","_showSubmenuTimer","eventArg","_hideSubmenuTimer","_hoveredRootItem","pointers","_changeSubmenusOption","_removeAdaptivity","OPERATION_ICONS","notcontains","startswith","endswith","OPERATION_DESCRIPTORS","FILTERING_TIMEOUT","CORRECT_FILTER_RANGE_OVERLAY_WIDTH","FILTER_RANGE_OVERLAY_CLASS","FILTER_RANGE_START_CLASS","FILTER_RANGE_END_CLASS","MENU_CLASS","EDITOR_WITH_MENU_CLASS","EDITOR_CONTAINER_CLASS","FILTER_MENU","APPLY_BUTTON_CLASS","HIGHLIGHT_OUTLINE_CLASS","FOCUSED_CLASS","FILTER_RANGE_CONTENT_CLASS","FILTER_MODIFIED_CLASS","BETWEEN_OPERATION_DATA_TYPES","isOnClickApplyFilterMode","$editorContainer","componentNames","ColumnHeadersViewFilterRowExtender","getRangeTextByFilterValue","rangeEnd","getColumnFilterValue","formatOptions","getColumnSelectedFilterOperation","bufferedSelectedFilterOperation","getFilterValue","isFilterRange","isRangeStart","updateFilterValue","_applyFilterViewController","setHighLight","normalizedValue","columnFilterValue","isBetween","_updateEditorValue","$editorRangeElements","overlayInstance","_updateFilterRangeContent","_updateFilterOperationChooser","_renderFilterRangeContent","_renderEditor","_getEditorOptions","_hideFilterRange","_filterRangeOverlayInstance","isFilterRowVisible","_initFilterRangeOverlay","$prevElement","_updateFilterRangeOverlay","_showFilterRange","getFilterRangeOverlayInstance","_renderFilterCell","_renderFilterOperationChooser","accessibilityOptions","_getFilterInputAccessibilityAttributes","columnAriaLabel","editorController","filterRowController","setCurrentColumnForFiltering","getWrappedLookupDataSource","lookupOptions","$filterRangeContent","isCellWasFocused","restoreFocus","menu","_focusEditor","_getFilterOperationMenuItems","properties","columnSelectedFilterOperation","notFocusEditor","isOnClickMode","_isEditorFocused","filterRowOptions","availableFilterOperations","descriptionName","_e$operationTypes","_e$operationTypes2","updateLookupDataSource","applyFilterViewController","DataControllerFilterRowExtender","skipCalculateColumnFilters","_filterRowController$","shouldSkip","getCurrentColumnForFiltering","ApplyFilterViewController","_getHeaderPanel","_headerPanel","enableApplyButton","removeHighLights","columnHeadersViewElement","_currentColumn","filterRowModule","columnsResizer","_startResizing","_targetPoint","_endResizing","_needUpdateLookupDataSource","_this$getView","filterItem","_prepareFilterItem","_isShowApplyFilterButton","HEADER_FILTER_CLASS","HEADER_FILTER_MENU_CLASS","DEFAULT_SEARCH_EXPRESSION","resetChildrenItemSelection","updateSelectAllState","selectAllCheckBox","isSearchEnabled","updateHeaderFilterItemSelectionState","filterValuesMatch","isExcludeFilter","HeaderFilterView","getPopupContainer","getListContainer","_listContainer","applyHeaderFilter","isFilterBuilder","fillSelectedItemKeys","isExclude","_getNode","hasChildren","hasChildrenWithSelection","hideHeaderFilterMenu","$columnElement","updatePopup","headerFilterMenu","_cleanPopupContent","_getSearchExpr","useDefaultSearchExpr","headerFilterDataSource","headerFilterOptions","_initializeListContainer","showSelectionControls","_selectedItemsUpdating","oldSelected","filterValueIndex","headerFilterMixin","$headerFilterIndicator","_isHeaderFilterEmpty","indicatorLabel","DATE_INTERVAL_FORMATS","ungroupUTCDates","dates","isMonthPart","convertDataFromUTCToLocal","queryByOptions","isUTCFormat","HeaderFilterController","_headerFilterView","_updateSelectedState","_normalizeGroupItem","currentLevel","valueSelector","displaySelector","getHeaderItemText","firstValueText","secondValue","secondValueText","_column$headerFilter","isLookup","cutoffLevel","useDefaultSearch","convertUTCDates","origPostProcess","getCurrentColumn","isGroupPanel","showHeaderFilterMenuBase","columnElement","dxResizableInstance","dxResizable","headerFilterByColumn","ColumnHeadersViewHeaderFilterExtender","_subscribeToIndicatorEvent","_updateHeaderFilterIndicators","_needUpdateFilterIndicators","HeaderPanelHeaderFilterExtender","headerFilterModule","headerFilterView","FILTER_BUILDER_RANGE_CLASS","FILTER_BUILDER_RANGE_START_CLASS","FILTER_BUILDER_RANGE_END_CLASS","FILTER_BUILDER_RANGE_SEPARATOR_CLASS","SEPARATOR","conditionInfo","$editorStart","$editorEnd","getStartValue","getEndValue","_editorFactory","getConfig","valueSeparator","notForLookup","isblank","isnotblank","OPERATION_NAME","getIconByFilterOperation","filterOperation","getNameByFilterOperation","DEFAULT_DATA_TYPE","EMPTY_MENU_ICON","AND_GROUP_OPERATION","EQUAL_OPERATION","NOT_EQUAL_OPERATION","boolean","object","DEFAULT_FORMAT","LOOKUP_OPERATIONS","AVAILABLE_FIELD_PROPERTIES","FILTER_BUILDER_CLASS","FILTER_BUILDER_ITEM_TEXT_CLASS","FILTER_BUILDER_ITEM_TEXT_PART_CLASS","FILTER_BUILDER_ITEM_TEXT_SEPARATOR_CLASS","FILTER_BUILDER_ITEM_TEXT_SEPARATOR_EMPTY_CLASS","getFormattedValueText","fieldFormat","isNegationGroup","isCondition","getGroupCriteria","setGroupCriteria","criteria","convertGroupToNewStructure","setGroupValue","getGroupMenuItem","availableGroups","groupValue","getGroupValue","getCriteriaOperation","getDefaultFilterOperations","containItems","entity","getFilterOperations","getCaptionByOperation","getOperationFromAvailable","availableOperations","getCustomOperation","filteredOperations","getAvailableOperations","isLookupField","isOperationForbidden","isCustom","getDefaultOperation","createCondition","updateConditionByOperation","removeItem","createEmptyGroup","isNegation","isNegationGroupOperation","groupOperation","getGroupOperationFromNegationOperation","getField","extendedFields","convertToInnerGroup","defaultGroupOperation","innerGroup","convertToInnerStructure","appendGroupOperationToGroup","convertToInnerCondition","conditionHasCustomOperation","appendGroupOperationToCriteria","getNormalizedFields","normalizedField","getConditionFilterExpression","filterExpression","getFilterExpression","_filterExpression","getNormalizedFilter","itemsForRemove","normalizedGroupValue","isValidCondition","getCurrentLookupValueText","loadSingle","getPrimitiveValueText","getArrayValueText","checkDefaultValue","getCurrentValueText","itemExists","pushItemAndCheckParent","originalItems","hasParent","getParentIdFromItemDataField","generateCaptionByDataField","getCaptionWithParents","getOperationValue","getMergedOperations","betweenCaption","betweenIndex","isMatchedCondition","addedFilterDataField","removeFieldConditionsFromFilter","hasMatchedCondition","syncConditionIntoGroup","addedFilter","canPush","syncFilters","getMatchedConditions","filterHasField","renderValueText","lastItemIndex","baseOperation","getFullText","parentText","div","closeEditor","fieldInfo","itemsDeferred","_values","getSelectedItemsTexts","selectedItemsTexts","anyOf","noneOf","baseOp","baseFilter","FILTER_ROW_OPERATIONS","FILTER_TYPES_INCLUDE","FILTER_TYPES_EXCLUDE","getColumnIdentifier","checkForErrors","FilterSyncController","getEmptyFilterValues","canSyncHeaderFilterWithFilterRow","getConditionFromFilterRow","getConditionFromHeaderFilter","selectedOperation","updateHeaderFilterCondition","headerFilterCondition","hasArrayValue","updateFilterRowCondition","syncFilterValue","_skipSyncColumnOptions","filterConditions","filterCondition","_initSync","filteringColumns","isFilterSyncActive","_getSyncFilterRow","_getSyncHeaderFilter","syncFilterRow","syncHeaderFilter","getCustomFilterOperations","filterBuilderCustomOperations","DataControllerFilterSyncExtender","filterSyncEnabledValue","calculatedFilterValue","_parseColumnPropertyName","matched","ColumnHeadersViewFilterSyncExtender","filterSyncModule","filterSync","FILTER_BUILDER_GROUP_CLASS","FILTER_BUILDER_GROUP_ITEM_CLASS","FILTER_BUILDER_GROUP_CONTENT_CLASS","FILTER_BUILDER_GROUP_OPERATIONS_CLASS","FILTER_BUILDER_GROUP_OPERATION_CLASS","FILTER_BUILDER_ACTION_CLASS","FILTER_BUILDER_IMAGE_CLASS","FILTER_BUILDER_IMAGE_ADD_CLASS","FILTER_BUILDER_IMAGE_REMOVE_CLASS","FILTER_BUILDER_ITEM_FIELD_CLASS","FILTER_BUILDER_ITEM_OPERATION_CLASS","FILTER_BUILDER_ITEM_VALUE_CLASS","FILTER_BUILDER_ITEM_VALUE_TEXT_CLASS","FILTER_BUILDER_OVERLAY_CLASS","FILTER_BUILDER_FILTER_OPERATIONS_CLASS","FILTER_BUILDER_FIELDS_CLASS","FILTER_BUILDER_ADD_CONDITION_CLASS","ACTIVE_CLASS","FILTER_BUILDER_MENU_CUSTOM_OPERATION_CLASS","SOURCE","DISABLED_STATE_CLASS","TAB_KEY","ENTER_KEY","ESCAPE_KEY","OPERATORS","FilterBuilder","closePopupOnTargetScroll","_initCustomOperations","disableInvalidateForValue","_disableInvalidateForValue","_initModel","_getNormalizedFields","_model","_customOperations","_updateFilter","_getModel","_initEditorFactory","_getDefaultGroupOperation","_this$option$","actionConfig","_createGroupElementByCriteria","_createConditionElement","_createConditionItem","_createGroupElement","groupCriteria","innerCriteria","$groupItem","_createRemoveButton","_createGroupOperationButton","_createAddButton","newGroup","newCondition","_getGroupOperations","groupMenuItem","$operationButton","_createButtonWithMenu","removeMenu","treeViewElement","treeView","dxTreeView","_subscribeOnClickAndEnterKey","_createPopupWithTreeView","_hasValueButton","_createOperationButtonWithMenu","currentOperation","$valueButton","_createValueButton","_createOperationAndValueButtons","_createFieldButtonWithMenu","getFullCaption","$fieldButton","isSingleChild","$removeButton","addGroupHandler","addConditionHandler","_createValueText","$text","_createValueEditorWithEvents","_updateConditionValue","areValuesDifferent","_addDocumentKeyUp","isComposing","hasCompositionJustEnded","documentKeyUpHandler","_documentKeyUpHandler","_addDocumentClick","closeEditorFunc","documentClickHandler","_isFocusOnEditorParts","_documentClickHandler","activeElement","_removeEvents","createValueText","_createValueEditor","class","$menuContainer","FilterBuilderView","_updatePopupOptions","_initPopup","_filterBuilderPopup","_disposePopup","_filterBuilder","_getPopupContentTemplate","_getPopupToolbarItems","$filterBuilderContainer","filterBuilderModule","filterBuilderView","FILTER_PANEL_CLASS","FILTER_PANEL_TEXT_CLASS","FILTER_PANEL_CHECKBOX_CLASS","FILTER_PANEL_CLEAR_FILTER_CLASS","FILTER_PANEL_LEFT_CONTAINER","FILTER_PANEL_TARGET","FilterPanelView","$leftContainer","_filterValueBuffer","_getCheckElement","_getFilterElement","_getTextElement","_getRemoveButtonElement","_showFilterBuilder","_addTabIndexToElement","filterText","$textElement","getFilterText","clearFilterValue","tabindex","_getConditionText","fieldText","operationText","_getValueMaskedText","_getValueText","hasCustomOperation","getConditionText","getGroupText","isInnerGroup","groupText","filterPanelModule","filterPanelView","SEARCH_PANEL_CLASS","SEARCH_TEXT_CLASS","searchModule","searchFilter","onQueryDone","_i","getSearchPanelOptions","_prepareSearchItem","searchPanelOptions","$search","getSearchTextEditor","$searchPanel","dxTextBox","_searchParams","_getFormattedSearchText","_getStringNormalizer","isCaseSensitive","_findHighlightingTextNodes","stringNormalizer","normalizedSearchText","resultTextNodes","$contents","_highlightSearchTextCore","$textNode","$searchTextSpan","firstContentElement","after","_highlightSearchText","isEquals","textNodes","textNode","_highlightTimer","pageIndexChanged","pageSizeChanged","getElementStyle","_getElementComputedSt","computedStyle","getElementWidth","getElementMinWidth","viewFunction","contentAttributes","infoTextRef","infoTextVisible","isLargeDisplayMode","pageSizesRef","pagesRef","parentRef","Content","rootElementRef","calculateLargeDisplayMode","pageSizes","pageSizesWidth","pages","pagesWidth","parentWidth","calculateInfoTextVisible","infoWidth","minimalWidth","getElementsWidth","pagesHtmlWidth","ResizableContainerProps","TemplateProp","actualIsLargeDisplayMode","actualInfoTextVisible","subscribeToResize","effectUpdateChildProps","updateAdaptivityProps","pagerProps","_this$_effects$","_this$_effects$2","_effects","gridCompatibility","lightModeEnabled","maxPagesCount","pageIndexChange","pageSizeChange","pagesCountText","pagesNavigatorVisible","showPageSizes","restAttributes","currentElementsWidth","elementsWidth","setState","__state_argument","_this$props","restProps","BasePagerProps","freeze","PagerProps","getOwnPropertyDescriptors","defaultPageSize","InternalPagerProps","PAGER_INFO_CLASS","InfoTextPropsType","_this$props$infoText","KeyboardActionContext","widgetRef","LightButtonProps","keyboardEffect","subscribeToClick","keyboardContext","PAGER_CLASS","LIGHT_MODE_CLASS","PAGER_PAGES_CLASS","PAGER_PAGE_INDEXES_CLASS","PAGER_PAGE_CLASS","PAGER_SELECTION_CLASS","PAGER_PAGE_SIZE_CLASS","PAGER_PAGE_SIZES_CLASS","PAGER_SELECTED_PAGE_SIZE_CLASS","FIRST_CHILD_CLASS","PageProps","_excluded2","PAGER_PAGE_SEPARATOR_CLASS","PagesMarkup","pageProps","PAGES_LIMITER","getDelimiterType","slidingWindowSize","createPageIndexesBySlidingWindowIndexes","slidingWindowIndexes","delimiter","pageIndexes","indexesForReuse","createPageIndexes","PagesLargePropsType","canReuseSlidingWindow","generatePageIndexes","isSlidingWindowMode","onPageClick","ConfigContext","slidingWindowState","slidingWindowStateHolder","currentPageCount","lastPageIsFartherThanWindow","pageIndexExistInIndexes","_createPageIndexes","_this$config","createPage","rtlPageIndexes","EditorStateProps","EditorLabelProps","DEFAULT_VALUE","componentProps","componentType","templateNames","NumberBoxProps","defaultValue","isReactComponentWrapper","NumberBoxPropsType","_this$props$value","oneDigitWidth","calculateValuesFittedWidth","PAGER_INFO_TEXT_CLASS","PAGER_PAGE_INDEX_CLASS","LIGHT_PAGES_CLASS","PAGER_PAGES_COUNT_CLASS","pageIndexRef","selectLastPageIndex","valueChange","PagerSmallProps","updateWidth","_this$pageIndexRef$cu","_this$props$pagesCoun","PAGER_NAVIGATE_BUTTON","PAGER_PREV_BUTTON_CLASS","PAGER_NEXT_BUTTON_CLASS","PAGER_BUTTON_DISABLE_CLASS","getNextButtonLabel","getPrevButtonLabel","classNames","nextEnabledClass","prevEnabledClass","nextDisabledClass","prevDisabledClass","reverseDirections","nextButtonProps","prevButtonProps","renderNextButton","renderPrevButton","navigate","getIncrement","PageIndexSelectorProps","PageIndexSelectorPropsType","__getterCache","getButtonProps","canNavigateToPage","getNextPageIndex","canNavigateTo","navigateToPage","rtlAwareDirection","canNavigate","nextProps","nextState","SelectBoxProps","SelectBoxPropsType","PageSizeSmallPropsType","pageSizesText","PageSizeLargePropsType","onPageSizeChange","processedPageSize","htmlRef","normalizedPageSizes","getAllText","PageSizeSelectorProps","PageSizeSelectorPropsType","setRootElementRef","componentWillUpdate","aria","infoVisible","pageIndexSelectorVisible","pagesContainerVisibility","pagesContainerVisible","widgetRootElementRef","PagerContentProps","createFakeInstance","keyboardAction","_this$props$onKeyDown","fakePagerInstance","normalizedDisplayMode","classesMap","_this$props2","__newValue","_newValue","newPageSize","_this$props$pageSize$","getProps","_wrapKeyDownHandler","twoWay","allowNull","MAX_PAGES_COUNT","getPageIndex","PagerView","_pager","pagerOptions","useLegacyKeyboardNavigation","getPager","_pageSizes","pagerVisible","isPager","isPaging","isDataSource","isScrolling","pagerModule","COLUMNS_SEPARATOR_CLASS","COLUMNS_SEPARATOR_TRANSPARENT","DRAGGING_HEADER_CLASS","HEADERS_DRAG_ACTION_CLASS","TRACKER_CLASS","HEADERS_DROP_HIGHLIGHT_CLASS","BLOCK_SEPARATOR_CLASS","DRAGGING_COMMAND_CELL_CLASS","COLUMNS_SEPARATOR_TOUCH_TRACKER_WIDTH","DRAGGING_DELTA","COLUMN_OPACITY","TrackerView","_unsubscribeFromCallback","_positionChanged","_tablePositionController","_subscribeToCallback","setHeight","SeparatorView","_isShown","ColumnsSeparatorView","_isTransparent","columnsSeparatorTransparent","moveByX","outerX","changeCursor","cursorName","BlockSeparatorView","startAnimate","toOptions","DraggingHeaderView","_isDragging","isDragging","_getDraggingPanelByPos","_dragOptions","boundingRect","_resetTargetColumnOptions","_dropOptions","targetColumnIndex","targetColumnElement","posX","posY","_getVisibleIndexObject","_columnsResizerViewController","dragHeader","isCommandColumn","sourceIndex","sourceColumnIndex","sourceColumnElement","_onSelectStart","onselectstart","drag","getSwatchContainer","moveHeader","eventData","dragOptions","moveDeltaX","deltaX","moveDeltaY","deltaY","newLeft","newTop","dockHeader","targetDraggingPanel","isVerticalOrientation","axisName","pointsByTarget","pointsByColumns","_generatePointsByColumns","centerPosition","dock","dropHeader","drop","isNextColumnResizingMode","ColumnsResizerViewController","_isHeadersRowArea","headersRowHeight","_isRtlParentStyle","_this$_$parentContain","_$parentContainer","_pointCreated","isNextColumnMode","isRtlParentStyle","firstPointColumnIndex","nextColumn","_getTargetPoint","currentX","_moveSeparator","_that$_draggingHeader","columnsSeparatorWidth","_columnsSeparatorView","parentOffset","parentOffsetLeft","_draggingHeaderView","_isResizing","_resizingInfo","_updateColumnsWidthIfNeeded","currentColumnIndex","outerWidth","_previousParentOffset","_isReadyResizing","_trackerView","_getNextColumnIndex","_setupResizingInfo","nextColumnIndex","currentHeader","nextHeader","startPosX","currentColumnWidth","nextColumnWidth","_pointsByColumns","_unsubscribeFromEvents","_moveSeparatorHandler","_startResizingHandler","_endResizingHandler","_subscribeToEvents","needUpdate","resizingInfo","isPercentWidth","setColumnWidth","oldColumnWidth","cellWidth","nextCellWidth","nextMinWidth","needCorrectionNextCellWidth","allColumnsHaveWidth","totalPercent","hasScroll","_subscribesToCallbacks","_unsubscribeFromCallbacks","subscribe","_unsubscribes","generatePointsByColumnsHandler","generatePointsByColumnsScrollHandler","previousScrollbarVisibility","previousTableHeight","scrollbarVisibility","TablePositionViewController","diffOffsetTop","columnsHeadersHeight","scrollBarWidth","columnsResizerController","draggingHeaderView","isDraggingOrResizing","_pagerView","targetPoint","DraggingHeaderViewController","draggingHeader","nameDraggingPanel","subscribeToEvents","_getSeparator","_blockSeparatorView","hideSeparators","blockSeparator","columnsSeparator","_animationColumnIndex","_headerPanelView","_columnChooserView","allowDrop","headersView","separator","hasTargetVisibleIndex","columnsResizingReorderingModule","columnsSeparatorView","blockSeparatorView","trackerView","tablePosition","GROUP_FOOTER_CLASS","FREESPACE_ROW_CLASS","COMMAND_CELL_SELECTOR","DATEBOX_WIDGET_NAME","FAST_EDITING_DELETE_KEY","INTERACTIVE_ELEMENTS_SELECTOR","NON_FOCUSABLE_ELEMENTS_SELECTOR","FOCUS_TYPE_ROW","FOCUS_TYPE_CELL","COLUMN_HEADERS_VIEW","FUNCTIONAL_KEYS","isNotFocusedRow","isCellElement","_isRowEditMode","isElementDefined","isMobile","isCellInHeaderRow","isFixedColumnIndexOffsetRequired","shouldPreventScroll","_isVirtualScrolling","KeyboardNavigationController","_selectionController","_updateFocusTimeout","_fastEditingStarted","_focusedCellPosition","_canceledCellPosition","setupFocusedView","_isNeedScroll","_focusedView","_initViewHandlers","_initDocumentHandlers","rowsViewFocusHandler","isRelatedTargetInRowsView","isCommandButton","_isEventInCurrentGrid","$focusedCell","_getFocusedCell","$rowsView","isFocusedViewCorrect","needUpdateFocus","isFocusedElementCorrect","_initPointerEventHandler","_initKeyDownHandler","_setRowsViewAttributes","_isNeedFocus","_isHiddenFocus","isCurrentRowsViewClick","isEditorOverlay","isColumnResizing","targetInsideFocusedView","_resetFocusedCell","_resetFocusedView","_getRowsViewElement","isGridEmpty","_applyTabIndexToElement","pointerEventName","clickSelector","_pointerEventAction","_pointerEventHandler","_keyDownListener","_keyDownHandler","isRowFocusType","focusType","isCellFocusType","setRowFocusType","setCellFocusType","needStopPropagation","_processOnKeyDown","_updateFocusedCellPositionByTarget","_leftRightKeysHandler","ctrl","_upDownKeysHandler","_pageUpDownKeyHandler","_spaceKeyHandler","_ctrlAKeyHandler","_beginFastEditing","_tabKeyHandler","_enterKeyHandler","_escapeKeyHandler","_ctrlFKeyHandler","_f2KeyHandler","_isFastEditingAllowed","_isFastEditingStarted","_closeEditCell","getVisibleRowIndex","directionCode","_getDirectionCodeByKey","isEditingNavigationMode","allowNavigate","_isVirtualColumnRender","_processVirtualHorizontalPosition","_getNextCell","_arrowKeysHandlerFocusCell","_this$_editingControl","_this$_editingControl2","isUpArrow","isRowEditingInCurrentRow","_navigateNextCell","_isVirtualRowRender","_scrollBy","isPageUp","pageStep","isFocusedRowElement","_getElementType","isFocusedSelectionCell","isCellPositionDefined","isOriginalHandlerRequired","_isLastValidCell","_isFirstValidCell","eventTarget","focusedViewElement","_handleTabKeyOnMasterDetailCell","_editingCellTabHandler","_targetCellTabHandler","_getMaxHorizontalOffset","_isColumnRendered","allVisibleColumns","renderedVisibleColumns","_isFixedColumn","_isColumnVirtual","localColumnIndex","getColumnIndex","horizontalScrollPosition","needToScroll","_getVisibleColumnCount","leftEdgePosition","_getHorizontalScrollPositionOffset","positionOffset","$currentCell","_getCell","currentCellWidth","rtlMultiplier","isEditingAllowed","_getCellElementFromTarget","elementType","_updateFocusedCellPosition","nextCellInfo","_getNextCellByTabKey","_getRowIndex","_isDataRow","_focusCell","isHighlighted","_editFocusedCell","_focusInteractiveElement","$lastInteractiveElement","_getInteractiveElement","getFirstValidCellInRow","_checkNewLineTransition","_fireFocusedCellChanging","$newCellElement","_getCellPosition","_fireFocusedRowChanging","rowIndexChanged","setFocusedColumnIndex","_processEnterKeyForDataCell","_getEnterKeyDirection","allowEditingOnEnterKey","_allowEditingOnEnterKey","_handleEnterKeyEditingCell","_startEditing","isShift","_focusEditFormCell","searchTextEditor","isCellValid","_isCellValid","$nextCell","isVerticalDirection","_fireFocusChangingEvents","_focus","isDeleting","fastEditingKey","isInteractiveElement","isExpandCommandCell","_isInsideEditForm","_focusView","_isMasterDetailCell","_clickTargetCellHandler","_isCellEditMode","setFocusedRowIndex","prevRowIndex","resetFocusedRow","_resetFocusedRow","_allowRowUpdating","skipFocusEvent","isDisabled","activeElementSelector","_focusElement","getFocusedView","rowsViewElement","$focusedView","_getFocusedViewByElement","disableFocus","$focusElement","focusedView","isRowFocus","one","isRenderView","_hasSkipRow","$focusedElementInsideCell","isFocusedElementDefined","_this$_focusedCellPos","setFocusedCellPosition","_getFocusedColumnIndexOffset","_getFixedColumnIndexOffset","_applyColumnIndexBoundaries","_this$_focusedView","renderFocusState","restoreFocusableElement","newRowIndex","_getNewPositionByCode","visibleColumnsCount","_hasValidCellAfterPosition","_isLastRow","_hasValidCellBeforePosition","_isCellByPositionValid","getMaxRowIndex","isFirstValidCell","hasValidCells","checkingPosition","visibleColumnCount","isClick","isShowWhenGrouped","isDataCell","rowItems","_isLegacyNavigation","focusedCellPosition","includeCommandCells","newFocusedCellPosition","isLastCellOnDirection","_isCellInRow","visibleColumnIndex","_isAllowEditing","_startEditCell","editResult","_editingCellHandler","_$input$get$select","_$input$get","keyDownEvent","keyPressEvent","inputEvent","$widgetContainer","fireRowEvent","newColumnIndex","prevCellIndex","prevColumnIndex","_fireFocusedCellChanged","localRowIndex","$newFocusedRow","prevFocusedRowIndex","_fireFocusedRowChanged","getFocusedRowIndexByKey","$editForm","$masterDetailCell","_processNextCellInMasterDetail","_processCanceledEditCellPosition","isCanceled","updateFocusedRowIndex","lastVisibleIndex","keyboardNavigationModule","needTriggerPointerEventHandler","_triggerPointerDownEventHandler","cellElements","updateFocusElementTabIndex","_updateFocusedCellTabIndex","cellElementsLength","updateCellTabIndex","isMasterDetailCell","isValidCell","_renderFocusByChange","_getEditorInstance","_handleEditingNavigationMode","originalKeyHandler","isDropDownOpened","isDateBoxWithMask","keyboardNavigationController","_keyboardNavigationController","getRowIndexCorrection","focusedRowIndexCorrection","adaptiveColumns","_showHiddenCellsInView","_hideVisibleCellInView","depthFirstSearch","isCount","aggregator","normalizeAggregate","aggregate","_groupLevel","_totalAggregates","totalAggregates","_groupAggregates","groupAggregates","_totals","_calculateTotals","_calculateGroups","_aggregate","aggregates","_accumulate","_seed","_finalize","maxLevel","seedFn","stepFn","finalizeFn","innerNode","seed","NaN","aggregateIndex","fin","finalize","DATAGRID_TOTAL_FOOTER_CLASS","DATAGRID_SUMMARY_ITEM_CLASS","DATAGRID_TEXT_CONTENT_CLASS","DATAGRID_GROUP_FOOTER_CLASS","DATAGRID_GROUP_TEXT_CONTENT_CLASS","DATAGRID_NOWRAP_CLASS","DATAGRID_FOOTER_ROW_CLASS","DATAGRID_GROUP_FOOTER_ROW_TYPE","DATAGRID_TOTAL_FOOTER_ROW_TYPE","renderSummaryCell","$summaryItems","getSummaryCellOptions","getGroupAggregates","FooterView","footerItems","needUpdateScrollLeft","$newTable","$newRow","totalColumnIndices","SummaryDataSourceAdapterExtender","_summaryGetter","summaryGetter","_summary","sortByGroupsInfo","sortByGroups","groupedItems","forEachGroup","itemsPath","SummaryDataSourceAdapterClientExtender","calculateAggregates","calculator","insertedData","applyAddedData","removedData","applyRemovedData","updatedData","updatedItems","sortGroupsBySummary","sortGroupsBySummaryCore","sortBy","thenBy","sortedItems","totalSummary","_options$cachedData$e","hasOperations","_isDataColumn","_isGroupFooterVisible","isGroupFooterVisible","summaryGroupItems","afterGroupColumnIndex","_calculateSummaryCells","calculateTargetColumnIndex","summaryCellsByColumns","summaryIndex","_getSummaryCells","summaryTotalItems","_footerItems","oldSummaryCells","summaryCell","_prepareUnsavedDataSelector","_prepareAggregateSelector","_getAggregates","commonSkipEmptyValues","summaryProcess","totalValue","_addSortInfo","_findSummaryItem","summaryItemIndex","_getSummarySortByGroups","groupSummaryItems","currentRemoteOperations","_getSummaryOptions","totalSummaryItems","getTotalSummaryValue","summaryItemName","_refreshSummary","_renderGroupSummaryCells","_hasAlignByColumnSummaryItems","_getAlignByColumnCellCount","groupCellColSpan","alignByColumnCellCount","$groupCell","_renderGroupSummaryCellsCore","_getSummaryCellIndex","FIRST_CELL_CLASS","LAST_CELL_CLASS","HOVER_STATE_CLASS","FIXED_COL_CLASS","FIXED_COLUMNS_CLASS","POINTER_EVENTS_NONE_CLASS","getTransparentColumnIndex","normalizeColumnWidths","fixedWidths","fixedColumnIndex","baseFixedColumns","_isFixedColumns","_correctColumnIndicesForFixedColumns","fixedTableElement","_fixedTableElement","_partialUpdateFixedRow","childNodes","_this$_columnsControl","needUpdateColspan","$fixedTable","_partialUpdateFixedTable","fixedCorrection","fixedCells","prevFixedColumn","columnCommand","isRowAltStyle","isEmptyCell","isFixedTableRendering","isGroupCell","alignByFixedColumnCellCount","headerRowIndex","fixedCellElements","fixedColumn","getFixedColumnsOffset","$transparentColumn","getTransparentColumnElement","positionTransparentColumn","getFixedTableElement","synchronizeRows","isWidthsSynchronized","isColumnWidthChanged","useVisibleColumns","_getClientHeight","boundingClientRectElement","$fixedRowElements","fixedRowHeights","heightFixedTable","fixedRowHeight","ColumnHeadersViewFixedColumnsExtender","columnFixingOptions","getFixedColumnElements","$transparentColumnElement","$fixedColumnElements","RowsViewFixedColumnsExtender","_detachHoverEvents","attachHoverEvent","isHover","contentClass","scrollDelay","_fixedScrollTimeout","wheel","$nearestScrollable","shouldScroll","nearestScrollableInstance","nearestScrollableHasVerticalScrollbar","_updateFixedTablePosition","needFocus","vWidth","hWidth","styles","$fixedContent","_getElasticScrollTop","elasticScrollTop","reachedBottom","$scrollableContent","$scrollableContainer","maxScrollTop","_applyElasticScrolling","FooterViewFixedColumnsExtender","columnFixingModule","_pointsByFixedColumns","ROWS_VIEW","FOOTER_VIEW","COLUMN_VIEWS","ADAPTIVE_NAMESPACE","ADAPTIVE_ROW_TYPE","FORM_ITEM_CONTENT_CLASS","FORM_ITEM_MODIFIED","HIDDEN_COLUMN_CLASS","ADAPTIVE_COLUMN_BUTTON_CLASS","ADAPTIVE_COLUMN_NAME_CLASS","COMMAND_ADAPTIVE_HIDDEN_CLASS","ADAPTIVE_DETAIL_ROW_CLASS","ADAPTIVE_ITEM_TEXT_CLASS","LAST_DATA_CELL_CLASS","ADAPTIVE_COLUMN_NAME","EXPAND_ARIA_NAME","COLLAPSE_ARIA_NAME","getDataCellElements","adaptiveCellTemplate","$adaptiveColumnButton","adaptiveColumnsController","toggleExpandAdaptiveDetailRow","AdaptiveColumnsController","_getEditMode","_isItemModified","_renderFormViewTemplate","focusAction","renderFormTemplate","isItemEdited","_isItemEdited","_isVisibleColumnsValid","_calculatePercentWidths","percentWidths","_getItemPercentWidth","_isPercentWidth","_isColumnHidden","_hiddenColumns","hiddenColumn","columnsCanFit","fixedColumnsWidth","columnsWithoutFixedWidthCount","_calculatePercentWidth","_calculateColumnWidth","contentColumns","colWidth","widthOption","columnFitted","partialWidth","resultWidth","_getNotTruncatedColumnWidth","_getCommandColumnsWidth","adaptiveExpandedKey","_getFormItemsByHiddenColumns","hiddenColumns","_getAdaptiveColumnVisibleIndex","_hideAdaptiveColumn","_hideVisibleColumn","cssClassNameToRemove","_showHiddenColumns","$hiddenCommandCells","$hiddenCells","_hideVisibleColumnInView","cancelClassAdding","currentVisibleIndex","_findCellElementInRow","$rowCells","cellIsInsideGroup","groupCellLength","endGroupIndex","cssClassNameToAdd","hideRedundantColumns","hiddenQueue","hasHiddenColumns","needHideColumn","rootElementWidth","getVisibleContentColumns","visibleContentColumns","contentColumnsCount","columnBestFitWidth","getItemContentByColumnIndex","_$itemContents","alwaysExpanded","createFormByHiddenColumns","userFormOptions","defaultFormOptions","_form","updateForm","hasAdaptiveDetailRowExpanded","_contentReadyAction","updateHidingQueue","columnsHasHidingPriority","hideableColumns","_hidingColumnsQueue","getHiddenColumns","getHidingColumnsQueue","adaptiveHidden","isAdaptiveVisible","isAdaptiveDetailRowExpanded","expandAdaptiveDetailRow","collapseAdaptiveDetailRow","updateCommandAdaptiveAriaLabel","setCommandAdaptiveAriaLabel","labelName","$adaptiveCommand","adaptivityModule","_adaptiveColumnsController","hidingColumnsQueueLength","hiddenColumnsLength","isClickable","_updateColumnWidth","hasHiddenColumnsOnly","hasAdaptiveHiddenWidth","$itemContents","_adaptiveController","oldExpandRowIndex","_isForceRowAdaptiveExpand","_collapseAdaptiveDetailRow","_cancelEditAdaptiveDetailRow","expandedKey","_adaptiveExpandedKey","adaptiveController","oldHiddenColumns","hidingColumnsQueue","_updateScrollableTimeoutID","expandRowIndex","lastRowIndex","oldExpandLoadedRowIndex","newExpandLoadedRowIndex","oldKey","isCellOrBatchMode","focusHandler","$dataCells","isCellElementsEquals","foreachColumnInfo","offsets","lastProcessedIndexes","processedColumnCount","createColumnsInfo","newInfo","columnInfo","cellColspan","DEFAULT_COLUMN_WIDTH","setScrollPosition","HeaderViewExtender","ColumnsControllerExtender","getWidths","_beginPageIndex","_endPageIndex","_virtualVisibleColumns","currentPosition","getColumnPageSize","getTotalWidth","_fireColumnsChanged","_changedTimeout","_setScrollPositionCore","needColumnsChanged","_this$_columns","visibleColumnsHash","beginFixedColumnCount","beginFixedColumns","beginColumns","beginWidth","endFixedColumnCount","endFixedColumns","endColumns","endWidth","columnsInfo","leftFixedColumnCount","virtualColumnsModule","columnPageSize","columnRenderingThreshold","prepareItems","emptyCell","defaultSetter","addItem","FILE_EXTESIONS","EXCEL","CSS","PNG","JPEG","GIF","SVG","PDF","MIME_TYPES","fileSaver","_revokeObjectURLTimeout","_getDataUri","_getMimeType","_linkDownloader","href","exportLinkElement","download","_formDownloader","contentType","formAttributes","enctype","exportForm","setAttributes","_saveByProxy","_winJSBlobSave","savePicker","Windows","Storage","Pickers","FileSavePicker","suggestedStartLocation","PickerLocationId","documentsLibrary","fileExtension","fileTypeChoices","suggestedFileName","pickSaveFileAsync","openAsync","FileAccessMode","readWrite","outputStream","inputStream","msDetachStream","Streams","RandomAccessStream","copyAsync","flushAsync","_click","link","dispatchEvent","MouseEvent","cancelable","createEvent","initMouseEvent","_saveBlobAs","_blobSaved","msSaveOrOpenBlob","WinJS","URL","webkitURL","mozURL","msURL","oURL","objectURL","createObjectURL","downloadLink","revokeObjectURL","_objectUrlRevoked","proxyURL","forceProxy","userAgent","ARABIC_ZERO_CODE","DEFINED_NUMBER_FORMTATS","thousands","millions","billions","trillions","decimal","fixedpoint","exponential","PERIOD_REGEXP","DAY_REGEXP","DO_REGEXP","STANDALONE_MONTH_REGEXP","HOUR_REGEXP","ANY_REGEXP","excelFormatConverter","_applyPrecision","_hasArabicDigits","_convertDateFormatToOpenXml","_convertDateFormat","_getLanguageInfo","languageID","languageIDStr","languageInfo","_convertNumberFormat","excelFormat","getOpenXmlCurrencyFormat","convertFormat","tagHelper","toXml","attributeName","attributeValue","cellAlignmentHelper","tryCreateTag","sourceObj","vertical","wrapText","copy","areEqual","leftTag","rightTag","tag","colorHelper","_tryConvertColor","colorCode","rgb","theme","patternFillHelper","patternType","backgroundColor","foregroundColor","fillHelper","patternFill","tryCreateFillFromSimpleFormat","fillPatternType","fillPatternColor","copySimpleFormat","fontHelper","family","scheme","bold","underline","cellFormatHelper","sharedItemsContainer","numberFormatId","numberFormat","registerNumberFormat","fontId","registerFont","fillId","registerFill","applyNumberFormat","isAlignmentEmpty","xfId","applyAlignment","numFmtId","numberFormatHelper","ID_PROPERTY_NAME","formatCode","_cellFormatTags","_fillTags","_fontTags","_numberFormatTags","cellFormat","cellFormatTag","cellFormatTagsAsXmlStringsArray","fillTag","tagsAsXmlStringsArray","fontTag","xmlStringsArray","_convertNumberFormatIndexToId","XML_TAG","GROUP_SHEET_PR_XML","SINGLE_SHEET_PR_XML","BASE_STYLE_XML2","OPEN_XML_FORMAT_URL","RELATIONSHIP_PART_NAME","XL_FOLDER_NAME","WORKBOOK_FILE_NAME","CONTENTTYPES_FILE_NAME","SHAREDSTRING_FILE_NAME","STYLE_FILE_NAME","WORKSHEETS_FOLDER","WORKSHEET_FILE_NAME","WORKSHEET_HEADER_XML","VALID_TYPES","EXCEL_START_TIME","DAYS_COUNT_BEFORE_29_FEB_1900","MAX_DIGIT_WIDTH_IN_PIXELS","UNSUPPORTED_FORMAT_MAPPING","quarterAndYear","ExcelCreator","_getXMLTag","_convertToExcelCellRef","zeroBasedRowIndex","zeroBasedCellIndex","charCode","isCellIndexFound","_convertToExcelCellRefAndTrackMaxIndex","_maxRowIndex","_maxColumnIndex","_getDataType","_tryGetExcelCellDataType","_formatObjectConverter","_tryConvertToExcelNumberFormat","newFormat","_appendString","_stringHash","_stringArray","_tryGetExcelDateValue","days","totalTime","_prepareValue","sourceValue","dataProvider","_dataProvider","cellSourceData","getCellData","getCellType","_callCustomizeExcelCell","sourceData","styleCopy","copyCellFormat","clearStyle","wrapTextEnabled","newStyle","_getDataArray","cellsArray","cellData","rowsLength","styleArrayIndex","getStyleId","cellStyleId","_styleArrayIndexToCellStyleIdMap","hasCustomizeExcelCell","modifiedExcelCell","_styleArray","cellDataType","excelDateValue","_excelFile","registerCellFormat","_needSheetPr","getGroupLevel","_calculateWidth","pixelsWidth","_prepareStyleData","getStyles","_colsArray","fonts","_prepareCellData","_cellsArray","_createXMLRelationships","xmlRelationships","_createXMLRelationship","_getWorkbookContent","_getContentTypesContent","_generateStylesXML","_zip","XML","generateNumberFormatsXml","generateFontsXml","generateFillsXml","generateCellFormatsXml","_generateStringsXML","stringIndex","stringsLength","sharedStringXml","_getPaneXML","frozenArea","getFrozenArea","_getAutoFilterXML","maxCellIndex","getHeaderRowCount","_getIgnoredErrorsXML","ignoreErrors","_generateWorksheetXML","xmlCells","xmlRows","colsLength","rSpans","headerRowCount","xmlResult","_rtlEnabled","rightBottomCellRef","_generateMergingXML","mergeIndex","columnsLength","usedArea","mergeArray","mergeXML","cellMerge","getCellMerging","mergeArrayLength","_generateCommonXML","relsFileContent","relsXML","_generateContent","_generateWorkXML","JSZip","_checkZipState","ready","getData","isBlob","excelCreator","standardColorNames","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","feldspar","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslateblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","violetred","wheat","white","whitesmoke","yellow","yellowgreen","standardColorTypes","re","colorString","hsvToRgb","hslToRgb","Color","baseColor","parseColor","colorIsInvalid","normalize","hsv","toHsvFromRgb","hsl","toHslFromRgb","colorComponent","def","toHexFromRgb","vMin","vInc","vDec","calculateHue","convertTo01Bounds","maxMinSum","makeColorTint","colorPart","colorTint","modifyColorTint","hueToRgb","isIntegerBetweenMinAndMax","highlight","alter","toHex","darken","blend","blendColor","other","getPureColor","isValidHex","hex","isValidRGB","isValidAlpha","fromHSL","_math","_number","PI","sqrt","atan2","cos","sin","_export","exportingAction","exportedAction","fileSavingAction","selectedRowsOnly","excel","creator","formatConverter","BUTTON_GROUP_WRAPPER_CLASS","BUTTON_GROUP_ITEM_CLASS","BUTTON_GROUP_FIRST_ITEM_CLASS","BUTTON_GROUP_LAST_ITEM_CLASS","BUTTON_GROUP_ITEM_HAS_WIDTH","SHAPE_STANDARD_CLASS","ButtonCollection","_prepareItemStyles","_getBasicButtonOptions","_templateData","_hasCustomTemplate","_prepareContent","ButtonGroup","_createItemClickAction","_syncSelectionOptions","$buttons","_buttonsCollection","DROP_DOWN_BUTTON_CLASS","DROP_DOWN_BUTTON_CONTENT","DROP_DOWN_BUTTON_ACTION_CLASS","DROP_DOWN_BUTTON_TOGGLE_CLASS","DROP_DOWN_BUTTON_HAS_ARROW_CLASS","DROP_DOWN_BUTTON_POPUP_WRAPPER_CLASS","DROP_DOWN_EDITOR_OVERLAY_CLASS","DX_BUTTON_TEXT_CLASS","DX_ICON_RIGHT_CLASS","DropDownButton","useSelectMode","splitButton","showArrowIcon","dropDownOptions","dropDownContentTemplate","wrapItemText","useItemTextAsTitle","groupTemplate","buttonGroupOptions","_createActionClickAction","_createSelectionChangedAction","_compileKeyGetter","_compileDisplayGetter","_itemsToDataSource","cache","$listContainer","_escHandler","_getKey","storeKey","_keyGetter","_displayGetter","_renderButtonGroup","_updateArrowClass","_loadSelectedItem","_updateActionButton","_this$_loadSingleDefe","_loadSingleDeferred","_lastSelectedItemData","cachedResult","_loadSingle","_actionClickAction","_selectionChangedAction","previousItem","_actionItem","_actionButtonConfig","isActionButton","isToggleButton","buttonContent","$firstIcon","$textContainer","$secondIcon","_getButtonGroupItems","_buttonGroupItemClick","_popupContentId","$buttonClicked","actionResult","_fireItemClickAction","_buttonGroup","_popupHidingHandler","_bindInnerWidgetOptions","_setAriaExpanded","_popupOptionChanged","getOptionsFromContainer","optionsKeys","_setWidgetOption","_ariaExpandedElements","ariaElement","owns","$buttonGroup","_buttonGroupOptions","buttonElements","_upDownKeyHandler","_tabHandler","hasArrow","isPrimitiveItem","_getDisplayValue","_setListOption","_fireSelectionChangedAction","newConfig","_selectedItemKeyChanged","_actionButtonOptionChanged","_updateDataSource","_updateKeyExpr","_selectModeChanged","_innerWidgetOptionChanged","_updateItemCollection","DATAGRID_EXPORT_MENU_CLASS","DATAGRID_EXPORT_BUTTON_CLASS","DATAGRID_EXPORT_TOOLBAR_BUTTON_NAME","DATAGRID_EXPORT_ICON","DATAGRID_EXPORT_EXCEL_ICON","DATAGRID_EXPORT_SELECTED_ICON","DATAGRID_PDF_EXPORT_ICON","DataProvider","initialColumnWidthsByColumnIndex","_exportController","_initialColumnWidthsByColumnIndex","_selectedRowsOnly","_getGroupValue","_correctCellIndex","_getColumns","_selectionOnly","_getSelectedItems","_getAllItems","isHeadersVisible","getHeaderStyles","columnStyles","getColumnStyles","getGroupRowStyle","_getTotalCellStyleId","_this$getColumns$cell","isTotalCell","getColumnsByAllRows","getColumnsWidths","_convertFromGridGroupSummaryItems","gridGroupSummaryItems","isExcelJS","correctedCellIndex","columnsRow","gridColumn","itemValues","totalSummaryItemName","correctCellIndex","isSummaryAlignByColumn","exportColspan","ExportController","_getEmptyCell","currentHeaderRow","columnWidthsByColumnIndex","_getColumnWidths","_headersView","_needColumnExporting","currentColspan","_calculateExportColspan","childColumns","childColumn","_getFooterSummaryItems","isTotal","estimatedItemsCount","_hasSummaryGroupFooters","_getItemsWithSummaryGroupFooters","sourceItems","beforeGroupFooterItems","groupFooterItems","_updateGroupValuesWithSummaryByColumn","summaryValues","groupColumnCount","_processUnExportedItems","isDetailExpandColumn","selectedRowData","getDataProvider","columnsLastRowVisibleColumns","exportToExcel","_isSelectedRows","callbackList","exportButton","_getExportToolbarButton","_correctItemsPosition","_getExportToolbarItems","toolbarButtonOptions","_widgetOptions","_index","exportOptions","exportMethod","formatName","exportAllIcon","exportSelectedIcon","_isExportButtonVisible","ROW_FOCUSED_CLASS","TABLE_POSTFIX_CLASS","FocusController","_keyboardController","_focusRowByIndex","_triggerFocusedRowChangedIfNeed","_focusRowByKey","focusedRowIndexByKey","isAutoNavigateToFocusedRow","_focusRowByIndexCore","setKeyByIndex","_isValidFocusedRowIndex","_getLastItemIndex","isRowFocused","_isLocalRowIndex","isVirtualScrolling","virtualItems","virtualItemsBegin","visibleRowsCount","visiblePagesCount","_setFocusedRowKeyByIndex","_navigateToRow","isFocusedRowKeyDefined","needFocusRow","isAutoNavigate","rowIndexByKey","_navigateTo","getPageIndexByKey","isVirtualRowRenderingMode","_navigateToVirtualRow","_navigateToVisibleRow","_triggerUpdateFocusedRow","scrollToRowElement","triggerUpdateFocusedRow","scrollTopPosition","_focusRowByKeyOrIndex","currentFocusedRowIndex","updateFocusedRow","$mainRow","isMainTable","_clearPreviousFocusedRow","_prepareFocusedRow","changedItem","scrollToElementVertically","$prevRowFocusedElement","focusedRow","$focusedRowTable","$firstRow","focusModule","visibleRow","isRowElement","sortByKey","notSortedKeys","notSortedKey","isPartialUpdate","isPartialUpdateWithDeleting","_updatePageIndexes","processUpdateFocusedRow","prevRenderingPageIndex","_lastRenderingPageIndex","renderingPageIndex","_isPagingByRendering","isPagingByRendering","isValidRowIndexByKey","needFocusRowByIndex","getGlobalRowIndexByKey","_calculateGlobalRowIndexByGroupedData","_calculateGlobalRowIndexByFlatData","groupFilter","useGroup","_generateFilterByKey","_concatWithCombinedFilter","_generateOperationFilterByKey","_generateBooleanFilter","sortInfo","booleanFilter","sortFilter","dataSourceKey","keyPart","_setFocusedRowElementTabIndex","_findRowElementForTabIndex","_scrollToFocusOnResize","getScrollElementPosition","currentScrollTop","isRowClick","_isFocusedRowInsideGroup","_getGroupPath","groupPath","_expandGroupByPath","isGroupKey","_calculateExpandedRowGlobalIndex","dataOffset","groupContinuationCount","currentPageOffset","COMMAND_HANDLE_CLASS","HANDLE_ICON_CLASS","SORTABLE_WITHOUT_HANDLE_CLASS","RowDraggingExtender","_updateHandleColumn","_allowReordering","isHandleColumnVisible","_getHandleTemplate","sortableName","sortableFixedName","currentSortableName","anotherSortableName","togglePointerEventsStyle","_this$sortableFixedNa","rowsViewOffset","pageX","onDraggableElementShown","$dragElement","dragElement","gridInstance","_synchronizeScrollLeftPosition","_getDraggableRowTemplate","_rowDragging$onDragSt","onDragEnter","onDragLeave","_rowDragging$onDragEn","_rowDragging$onAdd","hasFixedSortable","_updateSortable","_sortable","_sortableFixed","sortable","_getDraggableGridOptions","gridOptions","$dataGridContainer","rowDraggingModule","EXPORT_LOAD_PANEL_CLASS","ExportLoadPanel","_$targetElement","ExportFormat","helpers","mergeRowFieldValues","mergeColumnFieldValues","mergedCells","mergedRanges","_isHeaderCell","isCellInMergedRanges","isMasterCellOfMergedRange","allowToMergeRange","_allowToMergeRange","updateMergedCells","masterCell","unmerged","range","startRowIndex","fullAddress","endRowIndex","MAX_EXCEL_COLUMN_WIDTH","Export","fullOptions","keepColumnWidths","convertDateForExcelJS","numFmt","tryConvertToExcelNumberFormat","formatObjectConverter","getColumn","_component$_getIntern","exportLoadPanel","internalComponent","_getInternalInstance","initialLoadPanelEnabledOption","_getLoadPanelTargetElement","_getLoadPanelContainer","outlineProperties","summaryBelow","summaryRight","dataRowsCount","setColumnsWidth","mergedRangesManager","getCellStyles","_trySetOutlineLevel","exportRow","applyMergedRages","worksheetViewSettings","rightToLeft","_isFrozenZone","_getWorksheetFrozenState","_trySetAutoFilter","cellCount","updateMergedRanges","cellInfo","findMergedCellInfo","setNumberFormat","_trySetFont","setAlignment","_getCustomizeCellOptions","autoFilter","dataRange","ySplit","outlineLevel","_getFullOptions","getFullOptions","dateUnitIntervals","toMilliseconds","getDatesInterval","intervalUnit","millisecondCount","getNextDateUnit","unit","withWeeks","convertMillisecondsToDateUnits","dateUnitCount","convertDateUnitToMilliseconds","dateToMilliseconds","dateUnit","maxInterval","tickIntervalToFormatMap","getQuarter","getFirstQuarterMonth","correctDateWithUnitBeginning","withCorrection","firstQuarterMonth","oldDate","getFirstWeekDate","trimTime","setToDayEnd","getTimezonesDifference","addDateInterval","intervalObject","getDateIntervalByString","years","quarters","months","weeks","setTime","addInterval","isNegative","getSequenceByInterval","cur","intervals","viewType","getLastMonthDay","resultDate","typeView","getDifferenceInMonthForCells","intervalString","startDecadeDate1","startDecadeDate2","startCenturyDate1","startCenturyDate2","normalizeDateByWeek","differenceInDays","intervalsOverlap","firstMin","firstMax","secondMin","secondMax","dateTimeFromDecimal","roundDateByStartDayHour","startDayHour","startTime","trial","roundToHour","makeDate","getDatesOfInterval","sameMonth"],"mappings":"kHAAA,kDASIA,EAAiB,CACjBC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJ,UAAW,EACXC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,IAAK,GACLC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,IAAK,GACLC,IAAK,GACLC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,IAAK,GACLC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,IAAK,IACLC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,IAAK,IACLC,IAAK,IACLC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,IAAK,IACLC,IAAK,IACLC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,GAAI,IACJC,GAAI,IACJC,IAAK,IACLC,GAAI,IACJ,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,QAAS,KACT,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,SAAU,KACV,SAAU,KACV,QAAS,KACT,aAAc,KACd,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,SAAU,KACV,QAAS,KACT,aAAc,KACd,QAAS,KACT,SAAU,KACV,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,SAAU,KACV,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,SAAU,KACV,SAAU,KACV,SAAU,KACV,QAAS,KACT,QAAS,KACT,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,QAAS,KACT,aAAc,KACd,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,QAAS,KACT,aAAc,KACd,aAAc,KACd,cAAe,KACf,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,QAAS,KACT,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,SAAU,KACV,QAAS,KACT,SAAU,KACV,QAAS,KACT,aAAc,KACd,SAAU,KACV,QAAS,MACT,QAAS,MACT,QAAS,MACT,aAAc,MACd,QAAS,MACT,QAAS,MACT,QAAS,MACT,aAAc,MACd,QAAS,MACT,QAAS,MACT,QAAS,MACT,aAAc,MACd,QAAS,MACT,QAAS,MACT,QAAS,MACT,QAAS,MACT,QAAS,MACT,QAAS,MACT,QAAS,MACT,QAAS,MACT,QAAS,MACT,QAAS,MACT,QAAS,MACT,QAAS,MACT,QAAS,MACT,QAAS,MACT,QAAS,MACT,QAAS,MACT,QAAS,MACT,UAAW,MACX,UAAW,MACX,UAAW,MACX,UAAW,MACXC,IAAK,MACL,UAAW,MACXC,IAAK,MACLC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJ,UAAW,MACXC,IAAK,MACL,UAAW,MACX,UAAW,MACX,UAAW,MACX,UAAW,MACXC,GAAI,MACJC,GAAI,MACJ,UAAW,MACXC,IAAK,MACLC,I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AAK,SAAAnL,GAAI,OAAIA,KAElB,SAASyY,GAAYzY,GACnB,OAAOkN,MAAMC,QAAOuL,QAAarL,OAAeC,SAAStN,IACtDmL,KAAKoC,QACLpC,MAAK,SAAAnL,GAAI,OAAIA,KAElB,SAAS2Y,GAAW3Y,GAClB,OAAOkN,MAAMC,QAAOyL,QAAYvL,OAAeC,SAAStN,IACrDmL,KAAKoC,QACLpC,MAAK,SAAAnL,GAAI,OAAIA,KAGlB,SAAS6Y,GAAU7Y,GACjB,OAAOkN,MAAMC,QAAO2L,QAAWzL,OAAeC,SAAStN,IACpDmL,KAAKoC,QACLpC,MAAK,SAAAnL,GAAI,OAAIA,KAElB,SAAS+Y,GAAU/Y,GACjB,OAAOkN,MAAMC,QAAO6L,QAAW3L,OAAeC,SAAStN,IACpDmL,KAAKoC,QACLpC,MAAK,SAAAnL,GAAI,OAAIA,KAElB,SAASiZ,GAAUjZ,GACjB,OAAOkN,MAAMC,QAAO+L,QAAW7L,OAAeC,SAAStN,IACpDmL,KAAKoC,QACLpC,MAAK,SAAAnL,GAAI,OAAIA,KAEX,IAAMmJ,GAAU,CACrBiF,wBACAS,kBACAE,eACAE,iBACAE,iBACAI,gBACAE,YACAsB,eACA1B,mBACAM,qBACAE,qBACAE,qBACAE,cACAU,aACAY,SACAV,cACAV,UACAE,eACAE,iBACAE,iBACAQ,kBACAE,oBACAE,gBACAI,YACAI,WACAE,gBACAE,sBACAE,uBACAE,uBACAI,sBACAE,gBACAE,qBACAE,wBACAE,0BACAE,iCACAZ,uBACAc,aACAE,oBACAE,aACA9B,aACAgC,aACAE,aACAE,aACAE,aACAE,aACAE,aACAE,aACAE,aACAE,cACAE,cACAE,cACAE,cACAE,aACAE,aACAE,aACAE,aACAE,aACAE,aACAE,aACAE,aACAE,aACAE,aACAE,cACAE,cACAE,aACAE,aACAE,aACAE,aACAE,cACAE,aACAE,aACAE,aACAE,eACAE,eACAE,eACAE,aACAE,aACAE,aACAE,aACAE,eACAE,cACAE,aACAE,aACApK,YACAsK,aACAxK,aACA7E,aACAR,aACAY,aACAwD,YACAM,aACAE,aACAE,aACAN,YACAF,YACAT,c,wHC1tBF,SAASkM,EAAqBnZ,GAC5B,OAAOkN,MAAMC,QAAOiM,QAAY/L,OAAeC,SAAStN,IACrDmL,KAAKoC,QACLpC,MAAK,SAAAnL,GAAI,OAAIA,KAElB,SAASqZ,EAAWrZ,GAClB,OAAOkN,MAAMC,QAAOmM,QAAYjM,OAAeC,SAAStN,IACrDmL,KAAKoC,QACLpC,MAAK,SAAAnL,GAAI,OAAIA,KAElB,SAASuZ,EAAWvZ,GAClB,OAAOkN,MAAMC,QAAOqM,QAAYnM,OAAeC,SAAStN,IACrDmL,KAAKoC,QACLpC,MAAK,SAAAnL,GAAI,OAAIA,KAElB,SAASyZ,EAAWzZ,GAClB,OAAOkN,MAAMC,QAAOuM,QAAYrM,OAAeC,SAAStN,IACrDmL,KAAKoC,QACLpC,MAAK,SAAAnL,GAAI,OAAIA,KAElB,SAAS2Z,EAAW3Z,GAClB,OAAOkN,MAAMC,QAAOyM,QAAYvM,OAAeC,SAAStN,IACrDmL,KAAKoC,QACLpC,MAAK,SAAAnL,GAAI,OAAIA,KAElB,SAAS6Z,EAAU7Z,GACjB,OAAOkN,MAAMC,QAAO2M,QAAWzM,OAAeC,SAAStN,IACpDmL,KAAKoC,QACLpC,MAAK,SAAAnL,GAAI,OAAIA,KAElB,SAAS+Z,EAAU/Z,GACjB,OAAOkN,MAAMC,QAAO6M,QAAW3M,OAAeC,SAAStN,IACpDmL,KAAKoC,QACLpC,MAAK,SAAAnL,GAAI,OAAIA,KAElB,SAASia,EAAWja,GAClB,OAAOkN,MAAMC,QAAO+M,OAAY7M,OAAeC,SAAStN,IACrDmL,KAAKoC,QACLpC,MAAK,SAAAnL,GAAI,OAAIA,KAGlB,SAAS+Q,EAAa/Q,GACpB,OAAOkN,MAAMC,QAAOgN,QAAgB9M,OAAeC,SAAStN,IACzDmL,KAAKoC,QACLpC,MAAK,SAAAnL,GAAI,OAAIA,KAGlB,SAASoa,EAAoBpa,GAC3B,OAAOkN,MAAMC,QAAOkN,QAAYhN,OAAeC,SAAStN,IACrDmL,KAAKoC,QACLpC,MAAK,SAAAnL,GAAI,OAAIA,KAGlB,SAASsa,EAAWta,GAClB,OAAOkN,MAAMC,QAAOoN,OAAYlN,OAAeC,SAAStN,IACrDmL,KAAKoC,QACLpC,MAAK,SAAAnL,GAAI,OAAIA,KAGlB,SAASwa,EAAWxa,GAClB,OAAOkN,MAAMC,QAAOsN,QAAYpN,OAAeC,SAAStN,IACrDmL,KAAKoC,QACLpC,MAAK,SAAAnL,GAAI,OAAIA,KAGlB,SAAS0a,EAAW1a,GAClB,OAAOkN,MAAMC,QAAOwN,QAAYtN,OAAeC,SAAStN,IACrDmL,KAAKoC,QACLpC,MAAK,SAAAnL,GAAI,OAAIA,KAGX,IAAM4a,EAAgB,CAC3BzB,uBACAiB,sBACArJ,eACA4I,aACAE,YACAE,YACAE,aACAK,aACAE,aACAE,aACAnB,aACAE,aACAJ,e,kCCjGF,SAASwB,EAAQzkB,EAAM3C,GACnB,MAAO2C,EAAK3C,OAASA,EACjB2C,EAAO,IAAMA,EAEjB,OAAOA,EAZX,kCAcA,IAAI0kB,EAAe,CACfC,EAAG,cACHC,EAAG,OACHC,EAAG,UAEHC,EAAkB,CAClBC,EAAG,SAAShoB,EAAMioB,EAAOC,GACrB,IAAIhoB,EAAOF,EAAKkoB,EAAS,iBAAmB,iBAI5C,OAHI,IAAMD,IACN/nB,GAAQ,KAELwnB,EAAQxnB,EAAKioB,WAAYF,IAEpCG,EAAG,SAASpoB,EAAMioB,EAAOC,EAAQhhB,GAC7B,IAAI3D,EAAQvD,EAAKkoB,EAAS,cAAgB,cACtCzhB,EAAakhB,EAAaM,GAC9B,OAAIxhB,EACOS,EAAUhC,cAAcuB,EAAY,UAAUlD,GAElDmkB,GAASnkB,EAAQ,GAAG4kB,WAAYE,KAAKC,IAAIL,EAAO,KAE3DM,EAAG,SAASvoB,EAAMioB,EAAOC,EAAQhhB,GAC7B,IAAI3D,EAAQvD,EAAKkoB,EAAS,cAAgB,cACtCzhB,EAAakhB,EAAaM,GAC9B,OAAIxhB,EACOS,EAAUhC,cAAcuB,EAAY,cAAclD,GAEtDmkB,GAASnkB,EAAQ,GAAG4kB,WAAYE,KAAKC,IAAIL,EAAO,KAE3DO,EAAG,SAASxoB,EAAMioB,EAAOC,EAAQhhB,GAC7B,IAAI3D,EAAQvD,EAAKkoB,EAAS,cAAgB,cACtClf,EAAUqf,KAAKI,MAAMllB,EAAQ,GAC7BkD,EAAakhB,EAAaM,GAC9B,OAAIxhB,EACOS,EAAU0C,gBAAgBnD,GAAYuC,GAE1C0e,GAAS1e,EAAU,GAAGmf,WAAYE,KAAKC,IAAIL,EAAO,KAE7DS,EAAG,SAAS1oB,EAAMioB,EAAOC,EAAQhhB,GAC7B,IAAI/D,EAAMnD,EAAKkoB,EAAS,YAAc,YAClCzhB,EAAakhB,EAAaM,EAAQ,EAAI,EAAIA,GAC9C,OAAO/gB,EAAUxB,YAAYe,GAAYtD,IAE7CsF,EAAG,SAASzI,EAAMioB,EAAOC,EAAQhhB,GAC7B,IAAIjB,EAAQjG,EAAKkoB,EAAS,cAAgB,cACtCS,EAAS1iB,EAAQ,GAAK,EAAI,EAC1BQ,EAAakhB,EAAaM,GAC9B,OAAO/gB,EAAUpB,eAAeW,GAAYkiB,IAEhDC,EAAG,SAAS5oB,EAAMioB,EAAOC,GACrB,OAAOR,EAAQ1nB,EAAKkoB,EAAS,aAAe,aAAaC,WAAYE,KAAKC,IAAIL,EAAO,KAEzFY,EAAG,SAAS7oB,EAAMioB,EAAOC,GACrB,OAAOR,EAAQ1nB,EAAKkoB,EAAS,cAAgB,cAAcC,WAAYE,KAAKC,IAAIL,EAAO,KAE3Fa,EAAG,SAAS9oB,EAAMioB,EAAOC,GACrB,IAAIjiB,EAAQjG,EAAKkoB,EAAS,cAAgB,cAC1C,OAAOR,GAASzhB,EAAQ,IAAM,IAAIkiB,WAAYE,KAAKC,IAAIL,EAAO,KAElEc,EAAG,SAAS/oB,EAAMioB,EAAOC,GACrB,OAAOR,EAAQ1nB,EAAKkoB,EAAS,gBAAkB,gBAAgBC,WAAYE,KAAKC,IAAIL,EAAO,KAE/Fe,EAAG,SAAShpB,EAAMioB,EAAOC,GACrB,OAAOR,EAAQ1nB,EAAKkoB,EAAS,gBAAkB,gBAAgBC,WAAYE,KAAKC,IAAIL,EAAO,KAE/FrW,EAAG,SAAS5R,EAAMioB,EAAOC,GACrB,OAAOR,EAAQ1nB,EAAKkoB,EAAS,qBAAuB,qBAAqBC,WAAY,GAAGc,OAAO,EAAGhB,IAEtGnU,EAAG,SAAS9T,EAAMioB,EAAOC,GACrB,IAAIgB,EAAiBhB,EAAS,EAAIloB,EAAKmpB,oBACnCC,EAAWF,EAAiB,EAAI,IAAM,IACtCG,EAAoBhB,KAAKiB,IAAIJ,GAC7BjjB,EAAQoiB,KAAKI,MAAMY,EAAoB,IACvC5hB,EAAU4hB,EAAoB,GAC9BE,EAAY7B,EAAQzhB,EAAMkiB,WAAY,GACtCqB,EAAc9B,EAAQjgB,EAAQ0gB,WAAY,GAC9C,OAAOiB,EAAWG,GAAatB,GAAS,EAAI,IAAM,KAAOA,EAAQ,GAAKxgB,EAAU+hB,EAAc,KAElGC,EAAG,SAASzpB,EAAMioB,EAAOC,GACrB,OAAIA,IAAWloB,EAAKmpB,oBACT,IAEJpB,EAAgBjU,EAAE9T,EAAMioB,EAAOC,IAE1CrW,EAAG,SAAS7R,EAAMioB,EAAOC,GACrB,OAAOH,EAAgB0B,EAAEzpB,EAAMioB,GAAS,EAAI,EAAI,EAAGC,KAGhD3mB,EAAe,SAASxB,EAAQmH,GACvC,OAAO,SAASlH,GACZ,IAAI0pB,EACAnjB,EACAojB,EAGAC,EAFAC,EAAY,EACZC,GAAa,EAEbnkB,EAAS,GACb,IAAK3F,EACD,OAAO,KAEX,IAAKD,EACD,OAAOC,EAEX,IAAIkoB,EAAS,MAAQnoB,EAAOA,EAAOO,OAAS,IAAM,QAAUP,EAAOgqB,OAAO,GAC1E,IAAKL,EAAY,EAAGA,EAAY3pB,EAAOO,OAAQopB,IAC3CC,EAAO5pB,EAAO2pB,GACdnjB,EAAYwhB,EAAgB4B,GAC5BC,EAA0BD,IAAS5pB,EAAO2pB,EAAY,GACtDG,IACKD,IACGrjB,IAAcujB,IACdnkB,GAAUY,EAAUvG,EAAM6pB,EAAW3B,EAAQhhB,IAEjD2iB,EAAY,GAEZ,MAAQF,GAASC,GAEVE,GAAevjB,IACtBZ,GAAUgkB,GAFVG,GAAcA,EAId,MAAQH,GAAQC,GAChBF,IAGR,OAAO/jB,K,oCC1If,gQA0DIqkB,EAAoC,wBACpCC,EAA8B,2BAC9BC,EAA8B,2BAC9BC,EAAwB,qBACxBC,EAAgB,SAChBC,EAA0B,WAC1BC,EAAyB,UACzBC,EAAwB,uBACxBC,EAAwB,iBACxBC,EAA4B,6BAC5BC,EAA0B,CAC1BxqB,KAAM,SAASqI,GACX,OAAOA,GAASA,EAAMpI,eAE1BoD,MAAO,SAASgF,GACZ,OAAOA,GAASA,EAAM5H,WAAa,GAEvCwC,IAAK,SAASoF,GACV,OAAOA,GAASA,EAAM3H,WAE1BoI,QAAS,SAAST,GACd,OAAOA,GAAS8f,KAAKI,MAAMlgB,EAAM5H,WAAa,GAAK,GAEvD8C,KAAM,SAAS8E,GACX,OAAOA,GAASA,EAAM1H,YAE1B6C,OAAQ,SAAS6E,GACb,OAAOA,GAASA,EAAMzH,cAE1B6C,OAAQ,SAAS4E,GACb,OAAOA,GAASA,EAAMxH,eAG1B4pB,EAAsB,WACtB,IAAI9d,EAAOjG,UAAU,GACjB2B,EAAQ7B,KAAKkkB,mBAAmB/d,GACpC,IAAK,eAAUtE,GACX,OAAO,KACJ,GAAIsiB,EAAWnkB,KAAKokB,UAAW,CAClC,IAAIC,EAAuBnkB,UAAU,GACrC,OAAO8jB,EAAwBK,GAAsBxiB,GAClD,GAAI,WAAa7B,KAAKokB,SAAU,CACnC,IAAIE,EAAgBpkB,UAAU,GAC9B,OAAOyhB,KAAKI,MAAMwC,OAAO1iB,GAASyiB,GAAiBA,IAGvDE,EAAiB,SAASC,EAAWC,GACrC,OAAI,eAAWD,IAAc,eAAWC,IAChCD,EAAUE,kBAAoBD,EAAUC,iBACjCF,EAAUE,mBAAqBD,EAAUC,kBAAoBF,EAAUG,cAAgBF,EAAUE,YAGzGH,IAAcC,GAGzB,SAASP,EAAWC,GAChB,MAAO,SAAWA,GAAY,aAAeA,EAEjD,IAAIS,EAAe,SAASC,GACxBA,EAAWpnB,IAAI,GAAGqnB,YAAc,KAEhCC,EAAuB,SAASljB,GAChCA,EAAOA,GAAQ,GAEf,IADA,IAAI7C,EAAS,kCAA4B6C,GAChCrG,EAAI,EAAGA,EAAIqG,EAAKlI,OAAQ6B,IACzBqG,GAAQA,EAAKrG,SAAM,IAAWqG,EAAKrG,GAAGwpB,aACtChmB,EAAOxD,GAAGwpB,WAAanjB,EAAKrG,GAAGwpB,YAE/BnjB,GAAQA,EAAKrG,SAAM,IAAWqG,EAAKrG,GAAG6oB,gBACtCrlB,EAAOxD,GAAG6oB,cAAgBxiB,EAAKrG,GAAG6oB,eAG1C,OAAOrlB,GAEPimB,EAAc,SAASrjB,EAAOmP,GAC9B,IAAImU,EAAY,OAAa9rB,OAAOwI,EAAOmP,EAAQ3X,SAAWwI,GAASA,EAAM4f,YAAc,GACvF2D,EAAe,CACfvjB,MAAOA,EACPsjB,UAAWnU,EAAQqU,iBAAmBrU,EAAQqU,iBAAiBF,GAAaA,EAC5EG,OAAQtU,EAAQsU,QAAU,MAC1BhB,cAAetT,EAAQsT,eAE3B,OAAOtT,EAAQuU,cAAgBvU,EAAQuU,cAAcC,KAAKxU,EAASoU,GAAgBA,EAAaD,WAEhGM,EAAiB,SAASC,EAAaC,GACvC,IAAIra,EAAgBoa,EAAYpa,eAAiBoa,EAAYE,eAAiBD,EAAaD,EAAYG,YAAc,gBAAkBF,EAAaD,EAAYG,aAChK,OAAOX,EAAYQ,EAAY7jB,MAAO,CAClCxI,OAAQqsB,EAAYI,YACpBT,iBAAkB,SAASF,GACvB,OAAO7Z,EAAgB,eAAOA,EAAe6Z,EAAWO,EAAYE,eAAiBT,GAEzFI,cAAeG,EAAYH,iBAG/BQ,EAAoB,SAASC,GAC7B,IAAIC,EAAaD,EAAS7f,MAAQ6f,EAAS7f,OACvC+f,EAAeD,GAAcA,EAAWC,aACxCC,EAAaD,GAAgBA,EAAa,GAC9C,OAAOC,GAAcF,EAAWE,IAEhCC,EAAwB,SAASA,EAAsBC,EAASC,GAChE,GAAIznB,MAAM0nB,QAAQF,IAAYxnB,MAAM0nB,QAAQD,GAAU,CAClD,GAAID,EAAQzsB,SAAW0sB,EAAQ1sB,OAC3B,OAAO,EAEP,IAAK,IAAI6B,EAAI,EAAGA,EAAI4qB,EAAQzsB,OAAQ6B,IAChC,IAAK2qB,EAAsBC,EAAQ5qB,GAAI6qB,EAAQ7qB,IAC3C,OAAO,EAInB,OAAO,EACJ,OAAI,eAAW4qB,IAAYA,EAAQzB,aAAe,GAAK,eAAW0B,IAAYA,EAAQ1B,aAAe,EACjGyB,EAAQzB,cAAgB0B,EAAQ1B,aAAe,eAAayB,EAAQG,eAAiB,eAAaF,EAAQE,aAE1G,eAAaH,IAAY,eAAaC,IAIrD,SAASG,EAA6BC,GAIlC,OAHK7nB,MAAM0nB,QAAQG,KACfA,EAAQ,CAACA,IAENA,EAAM5qB,IAAI,CAACiL,EAAMtL,IAChB,eAASsL,GACF,CACH4f,SAAU5f,EACVke,WAAYxpB,EAAIirB,EAAM9sB,OAAS,GAGhCmN,GAGA,QACX6f,iBAAkB,SAASZ,GAEvB,GADAA,EAAWA,GAAYhmB,KAAK6mB,UACvBb,EAAL,CAGA,IAAIc,EAAc9mB,KAAK+mB,gBAAgBrD,GACnCsD,EAAgBhB,EAASiB,KAAK,IAAMH,GAAaI,OACjDC,EAAYnnB,KAAKonB,gBAAgBC,UACjC3hB,EAAY1F,KAAKonB,gBAAgB1hB,YAChCshB,EAAcptB,SACfotB,EAAgB,eAAE,UAAUM,SAASR,GAAaS,SAASvB,IAE3DmB,IAAczhB,EACdshB,EAAcQ,YAAY,aAAajrB,KAAKyD,KAAKynB,kBAEjDT,EAAcM,SAAS,eAG/BI,gBAAiB,SAAS1B,EAAUlB,EAAY6C,GAC5C,IAAIC,EACJ5nB,KAAK6nB,YAAc7nB,KAAK6nB,WAAW7B,WAAW8B,SAC9CF,EAAmB5nB,KAAK+nB,OAAO,aAC3BH,IAAqB,SAAWA,EAAiBI,SAAWL,EAAeC,EAAiBI,UAC5FJ,EAAmB,oBAAO,CACtBK,SAAS,EACTC,QAASN,EAAiBrrB,KAC1B4rB,UAAWrD,GACZ8C,GACH5nB,KAAK6nB,WAAa7nB,KAAKooB,iBAAiB,eAAE,SAASb,SAASzC,GAAa,OAAW8C,IAEpF5nB,KAAK6nB,WAAa,MAG1B,2BAA2B7B,GACvB,IAAIqC,EAAU,eAAE,kBAChB,OAAI,eAAUrC,GAAY,eAAUqC,GACzB,CACHC,GAAID,EACJE,SAAUvC,EACVwC,UAAW,OAGZ,CACHF,GAAItC,IAGZyC,cAAe,SAAS3tB,EAAK4tB,EAAOC,GAChC,IAAIvnB,GAAS,EACb,QAAI,IAAWtG,GAAO+D,MAAM0nB,QAAQmC,GAAQ,CACxCC,EAAUzoB,UAAUtG,QAAU,EAAI,MAAQ+uB,EAC1C,IAAK,IAAIltB,EAAI,EAAGA,EAAIitB,EAAM9uB,OAAQ6B,IAAK,CACnC,IAAIsL,EAAO,eAAU4hB,GAAWD,EAAMjtB,GAAGktB,GAAWD,EAAMjtB,GAC1D,GAAI,eAAaX,EAAKiM,GAAO,CACzB3F,EAAQ3F,EACR,QAIZ,OAAO2F,GAEXwnB,eAAgB,SAASC,EAASC,GAC9B,IAAIC,EAAe,GACnBD,EAAYA,GAAa,MACzB,IAAK,IAAIrtB,EAAI,EAAGA,EAAIotB,EAAQjvB,OAAQ6B,IAAK,CACrC,IAAIutB,EACJ,GAAKH,EAAQptB,GAAb,CAGA,GAAI,KAAO,QAAUutB,EAAaH,EAAQptB,UAAO,IAAWutB,OAAa,EAASA,EAAWpvB,SAAW,MAAQivB,EAAQptB,GAAG,GAAI,CAC3H,GAAI,QAAUqtB,EACV,MAAO,CAAC,KACL,GAAI,OAASA,EAChB,SAGJC,EAAanvB,QACbmvB,EAAa9lB,KAAK6lB,GAEtBC,EAAa9lB,KAAK4lB,EAAQptB,KAK9B,GAHI,IAAMstB,EAAanvB,SACnBmvB,EAAeA,EAAa,IAE5BA,EAAanvB,OACb,OAAOmvB,GAGfE,aAAc,SAAShc,EAASic,GAE5B,IADA,IAAIC,EAA8B,EACzB1tB,EAAI,EAAGA,EAAIytB,EAAYtvB,OAAQ6B,IAChCwR,EAAQic,EAAYztB,KACpB0tB,IAGR,OAAOlc,EAAQrT,QAAUqT,EAAQrT,SAAWuvB,GAEhD/C,sBAAuBA,EACvBgD,YAAa,SAASnd,EAAUod,EAAYC,GACnCrd,EAASod,KACVpd,EAASod,GAAc,WACnB,IAAIE,EAAavpB,KAAKwpB,YACtB,OAAOD,EAAaA,EAAWF,GAAYvqB,MAAMyqB,EAAYrpB,WAAaopB,KAItFpE,YAAaA,EACbuE,yBAA0B,SAAS3Y,EAAQwU,GACvC,MAAO,CACHjsB,OAAQyX,EAAOzX,OACfgsB,iBAAkBvU,EAAOuU,iBACzBE,cAAezU,EAAOyU,cACtBD,OAAQA,EACRoE,SAAU5Y,EAAO4Y,SACjBC,UAAW7Y,EAAO6Y,YAG1BC,gBAAiB,SAAS9Y,EAAQjP,EAAOsE,EAAMgL,GAC3C,OAAIL,EAAO+Y,sBAAmB,IAAW/Y,EAAO+Y,gBAAgBhoB,GACrDiP,EAAO+Y,gBAAgBhoB,GACvBiP,EAAOgZ,uBAAyB3jB,GAAQ,UAAYgL,EACpDL,EAAOgZ,sBAAsB3jB,IAC7B2K,EAAOiZ,QAAY,UAAY5Y,IAAYL,EAAOkZ,qBAAuBlZ,EAAOgZ,uBAGpFjoB,EAFIiP,EAAOiZ,OAAO7F,mBAAmBriB,IAIhDooB,uBAAwB,SAASC,EAAcvE,GAE3C,IADA,IAAI1mB,EAAS,IACJxD,EAAI,EAAGA,EAAIyuB,EAAatwB,OAAQ6B,IAAK,CAC1C,IAAIiqB,EAAcwE,EAAazuB,GAC/BwD,IAAWxD,EAAI,EAAI,KAAO,IAAMgqB,EAAeC,EAAaC,GAEhE,OAAO1mB,EAAS,KAEpBwmB,eAAgBA,EAChBT,qBAAsBA,EACtBmF,oBAAqB,SAAS/F,GAC1B,OAAQA,GACJ,IAAK,OACD,MAAO,YACX,IAAK,WACD,MAAO,uBAGnBgG,+BAAgC,SAAStZ,EAAQuZ,GAC7C,IAAIprB,EAAS,GACTmS,EAAYN,EAAOM,WAAaN,EAAOlP,KACvC0iB,EAAgB,OAAgBgG,iBAAiBxZ,GACrD,OAAIwT,GACA,eAAKA,GAAe,SAAUljB,EAAOmpB,GACjCtrB,EAAOgE,KAAKonB,EAAiB,CACzB1D,SAAUvV,EACVkT,cAAeiG,EACftF,WAAY7jB,EAAQkjB,EAAc1qB,OAAS,GAC3CqqB,EAAoBuG,KAAK1Z,EAAQyZ,OAElCtrB,IAEPorB,EACAprB,EAAS,CAAC,CACN0nB,SAAUvV,EACV6T,YAAY,KAGhBhmB,EAAS,SAASkH,GACd,IAAIlH,EAAS6R,EAAOoT,mBAAmB/d,GAIvC,YAHI,IAAWlH,GAAU,KAAOA,IAC5BA,EAAS,MAENA,GAEP6R,EAAO2Z,gBACPxrB,EAAS,CAAC,CACN0nB,SAAU1nB,EACVyrB,QAAS5Z,EAAO2Z,cAAcD,KAAK1Z,OAIxC7R,IAEX,oBAAoB0rB,EAAiBC,EAAiBC,GAGlD,GAFAF,EAAkB3F,EAAqB2F,GACvCC,EAAkB5F,EAAqB4F,GACnC/rB,MAAM0nB,QAAQoE,IAAoB9rB,MAAM0nB,QAAQqE,GAAkB,CAClE,GAAID,EAAgB/wB,SAAWgxB,EAAgBhxB,OAC3C,OAAO,EAEP,IAAK,IAAI6B,EAAI,EAAGA,EAAIkvB,EAAgB/wB,OAAQ6B,IACxC,IAAK+oB,EAAemG,EAAgBlvB,GAAGkrB,SAAUiE,EAAgBnvB,GAAGkrB,WAAagE,EAAgBlvB,GAAGqvB,OAASF,EAAgBnvB,GAAGqvB,MAAQH,EAAgBlvB,GAAG6oB,gBAAkBsG,EAAgBnvB,GAAG6oB,gBAAkBuG,GAAoBE,QAAQJ,EAAgBlvB,GAAGwpB,cAAgB8F,QAAQH,EAAgBnvB,GAAGwpB,YACxS,OAAO,EAInB,OAAO,EAEP,QAAS0F,IAAoBA,EAAgB/wB,YAAcgxB,IAAoBA,EAAgBhxB,SAGvGoxB,mBAAoB,SAAStC,EAAOuC,EAAcC,EAAYC,GAQ1D,IAPA,IAEIpkB,EACAqkB,EAGAC,EANAC,EAAc5C,EAAM9uB,OACpB2xB,GAAiB,EAGjB3G,EAAcuG,GAAoB,EAClClsB,EAAS,GAEJxD,EAAI,EAAGA,GAAK6vB,EAAa7vB,IAAK,CAC/BA,EAAI6vB,IACJvkB,EAAO2hB,EAAM8C,GAAG/vB,GAChB2vB,EAASrkB,EAAKqkB,SACdC,EAAa,QAAUtkB,EAAK0kB,IAAI,cAEpC,IAAIC,EAAQ,CACRtqB,MAAOwjB,EACPxX,EAAGge,EAASA,EAAOO,OAAST,GAAcG,EAAa5vB,IAAM6vB,EAAc,eAAgBvkB,EAAK,IAAIQ,MAAQ,GAAK,EACjH+Z,EAAG8J,EAASA,EAAOQ,KAAOV,GAAczvB,IAAM6vB,EAAc,eAAgBvkB,EAAK,IAAI2K,OAAS,GAAK,EACnGkT,YAAaA,GAEjB,IAAKsG,GAAczvB,EAAI,EAAG,CACtB,IAAIowB,EAAiBnD,EAAM8C,GAAG/vB,EAAI,GAAG2vB,SACjCS,EAAeD,IAAMF,EAAMpK,IAC3BoK,EAAMpK,EAAIuK,EAAeD,KAG7BX,IACAM,EAAiBN,EAAaS,IAE7BH,GACDtsB,EAAOgE,KAAKyoB,GAEhB9G,IAEJ,OAAO3lB,GAEX6sB,sBAAuB,WACnB,MAAO,CACHC,gCAAgC,EAChC5nB,OAAQ,SAASgkB,EAAWnX,GACxB,IAAI8T,EAAa,eAAEqD,GACnB,IAAI,eAAUnX,EAAQnP,QAAYmP,EAAQ7K,MAAQ6K,EAAQ7K,KAAK6lB,gBAAoBhb,EAAQH,IAAIob,SAM3FpH,EAAaC,OANwF,CACrG,IAAIoH,EAAWlb,EAAQjE,UAAUof,QAAQ,YACzCrH,EAAWwC,SAAS7D,GAAuB6D,SAAShE,GACpD,eAAE,SAASgE,SAAStW,EAAQnP,MAAQ0hB,EAA8BC,GAA6B+D,SAASzC,GACxGoH,EAASE,QAAQ,QAASpb,EAAQnP,MAAQqqB,EAASG,SAAS,2BAA6BH,EAASG,SAAS,yBAA0BvH,OAOrJD,aAAcA,EACdV,WAAYA,EACZmI,kBAAmB,SAASC,GACxB,IACI,GAAIA,EACA,MAAO,CACHC,eAAgBD,EAAeC,eAC/BC,aAAcF,EAAeE,cAGvC,MAAO7oB,IACT,MAAO,IAEX8oB,kBAAmB,SAASH,EAAgBI,GACxC,IACQJ,GAAkBA,EAAeG,mBACjCH,EAAeG,kBAAkBC,EAAeH,eAAgBG,EAAeF,cAErF,MAAO7oB,MAEbgpB,sBAAuB,SAAS7f,EAAWiZ,GACvC,IAAI6G,EAAY7G,EAASp4B,GAAG,UAC5B,OAAak/B,QAAQ9G,EAAU,SAC/B,IAAI+G,EAA6BhgB,EAAUgb,OAAO,iCAC9ClB,EAAUb,EAAStoB,IAAI,GAC3B,IAAKmvB,GAAaE,GAA8B/G,EAASp4B,GAAG,0BAA4Bo4B,EAASp4B,GAAG,cAAe,CAC/G,IAAIo/B,EAASjH,EAAkBC,EAASiH,QAAQ,mBAChD,kBAAKD,GAAUA,EAAOE,mBAAmBC,MAAK,WAC1CtG,EAAQuG,cAIpBrH,kBAAmBA,EACnBsH,4BAA6B,SAASC,EAASC,GAC3C,IACIC,EADAC,EAAsBH,EAAQI,KAAK5c,GAAUA,IAAWA,EAAO6c,UAAY7c,EAAO8c,QAAS,IAAU9c,EAAO+c,eAEhH,IAAKL,EAAkBF,EAAQ1zB,OAAS,EAAG0zB,EAAQE,GAAkBA,IAAmB,CACpF,IAAI1c,EAASwc,EAAQE,GACjBjmB,EAAQgmB,GAAgBA,EAAaC,GACrCK,GAAiBJ,IAAuB,IAAU3c,EAAO+c,cAC7D,IAAK/c,EAAO6c,UAAY7c,EAAO8c,OAAS,mBAAqBrmB,GAASsmB,EAClE,MAGR,OAAOL,GAEXM,uBAAwB,SAASC,EAAY/H,GACzC,GAAIA,GAAYA,EAASpsB,OAAQ,CAC7B,IAAIo0B,EAAQhI,EAASiH,QAAQ,IAAMc,EAAWE,2BAA2BC,SACzE,OAAOF,EAAMpgC,GAAGmgC,EAAWhhB,UAAUiZ,YAEzC,OAAO,GAEXmI,sBAAuB,SAASxqB,GAC5B,IAAIyqB,EAAmBzqB,EAAKokB,OAAOhE,GAC/BsK,EAAgB1qB,EAAKokB,OAAOjE,KAA2BF,EACvD0K,EAAe3qB,EAAKokB,OAAOjE,KAA2BH,EAC1D,SAAI,IAAUhgB,EAAKokB,OAAOlE,KAA2BwK,IAAiBC,IAG/DF,IAAqBxK,GAEhC2K,cAAe,SAAS3iB,GACpB,OAAOA,EAAO4iB,kBAAoB,GAEtC,sBAAsBC,GAClB,OAAIA,EAAQC,QACD,IAEJ,KAAO1uB,KAAKuuB,cAAc,mBAErC,0BAA0BxE,GACtB,IAAI4E,EASJ,OARI5E,EAAOrB,MACPiG,EAA0B5E,EAAOrB,OAEjCiG,EAA0B5E,EAAOR,WAC7B,eAAWoF,KAA6B,OAAgBC,UAAUD,KAClEA,EAA0BA,EAAwB,MAGnD,eAA2BA,IAEtC,2BAA2B7d,EAAQyY,EAAYnrB,GAC3C,IAAIuwB,EAA0B3uB,KAAK6uB,0BAA0B/d,EAAOiZ,QACpE,GAAIjZ,EAAOoT,qBAAuBpT,EAAOge,0BACrC,OAAOH,EAEX,IAEII,EAFAC,EAAiBzF,EAAW0F,mBAAmBC,YAC/CC,EAAwBre,EAAOse,cAAgB,eAASte,EAAOse,cAE/DC,EAAmB,eAAS,GAAIV,EAAyB,CACzDW,KAAMC,IACF,IAAIrN,EAAI,IAAI,cAmDZ,MAlDA,CAACqN,IACG,IAAI7I,EAAQD,EAA6B0I,EAAwB,CAACre,EAAOM,UAAWN,EAAOse,cAAgBte,EAAOM,WAC9G8Q,EAAI,IAAI,cAcZ,OAbK8M,GAAkBD,EACnB7M,EAAEsN,QAAQT,GAEVxF,EAAW+F,KAAK,CACZlxB,OAAQA,EACRsoB,MAAOA,EACP+I,KAAMT,EAAiBO,EAAYE,UAAO,EAC1CC,KAAMV,EAAiBO,EAAYG,UAAO,IAC3CvC,KAAKzE,IACJqG,EAA4BrG,EAC5BxG,EAAEsN,QAAQ9G,KACXiH,KAAKzN,EAAEyN,MAEPzN,GAhBX,CAiBGqN,GAAapC,KAAKzE,IAIjB,IAAIkH,EACJ,GAJI,IAAMlH,EAAM9uB,QACZsoB,EAAEsN,QAAQ,IAGVL,EAAuB,CACvB,IAAIU,EAAcnH,EAAM5sB,IAAIiL,IACxB,IAAI+oB,EACJ,MAAO,CACH,CAAChf,EAAOiZ,OAAOgG,WAAYhpB,EAAKjM,IAChC,CAACgW,EAAOiZ,OAAOiG,aAAc,QAAUF,EAAwBhf,EAAO+Y,gBAAgB9iB,EAAKjM,YAAS,IAAWg1B,EAAwBA,EAAwB/oB,EAAK2hB,MAAM,GAAG5tB,OAGrL80B,EAAgB,IAAI,OAAW,eAAS,GAAIjB,EAAyBY,EAAa,CAC9EU,MAAO,IAAI,OAAW,CAClB9pB,KAAM0pB,EACN/0B,IAAKgW,EAAOiZ,OAAOgG,mBAGxB,CACH,IAAIG,EAAUlwB,KAAK4oB,eAAeF,EAAMyH,QAAQhqB,GAAQA,EAAKrL,KAAKgB,IAAIhB,GAAO,CAACgW,EAAOiZ,OAAOgG,UAAWj1B,IAAO,MAC9G80B,EAAgB,IAAI,OAAW,eAAS,GAAIjB,EAAyBY,EAAa,CAC9EnxB,OAAQ4B,KAAK4oB,eAAe,CAACsH,EAASX,EAAYnxB,QAAS,UAG9D4wB,GACDY,EAAcvqB,GAAG,4BAA6BzB,IAC1CA,EAAEwsB,iBAAiBX,KAAOF,EAAYE,KACtC7rB,EAAEwsB,iBAAiBV,KAAOH,EAAYG,OAG9CE,EAAcN,OAAOnC,KAAKjL,EAAEsN,SAASG,KAAKzN,EAAEyN,QAC7CA,KAAKzN,EAAEyN,MACHzN,GAEXpnB,IAAKgW,EAAOiZ,OAAOgG,UACnB,MAAMj1B,GACF,IAAIonB,EAAI,wBAMR,OALAliB,KAAKsvB,KAAK,CACNlxB,OAAQ,CAAC0S,EAAOiZ,OAAOgG,UAAW,IAAKj1B,KACxCqyB,KAAKkD,IACJnO,EAAEsN,QAAQa,EAAI,MAEXnO,EAAEoO,aAGjB,OAAOjB,K,oCCvlBf,kDASIkB,EAAe,IACfC,EAAoB,kBAAoBD,EACxCE,EAAgB,OAChBC,EAAa,SAASzN,GACtB,IAAI0N,EAAO1N,GAAQ,OAAmBxf,cAAcwf,GAAM,GAAO2N,WAAW,GACxEC,EAAW,OAAmBptB,cAAc,KAAK,GAAOmtB,WAAW,GACvE,OAAOC,GAAYF,GAAQA,EAAOE,EAAW,IAE7CC,EAAuB,SAASv0B,EAAMw0B,EAAU3vB,EAAO4vB,GACvD,IAAI/N,EAAO1mB,EAAK6E,GACZ6vB,EAAW10B,EAAK6E,EAAQ,GAC5B,IAAK4vB,EAAS,CACV,GAAI,MAAQ/N,GAAQ,MAAQA,GAAQ1mB,EAAK8mB,MAAMjiB,EAAQ,EAAGA,EAAQ,KAAOqvB,EACrE,OAAO,EAEX,GAAI,MAAQxN,IAASyN,EAAWO,GAC5B,OAAO,EAGf,IAAIC,EAAiBF,GAAWD,EAASrD,KAAK7qB,GAAWtG,EAAK6E,KAAWyB,EAAQzB,IACjF,OAAOovB,EAAkBlyB,QAAQ2kB,GAAQ,GAAK+N,IAAYN,EAAWzN,MAAW+N,GAAWE,IAE3FC,EAAuB,SAASC,EAAgBhwB,GAChD,IAAKsvB,EAAWU,EAAehwB,IAC3B,MAAOA,EAAQ,IAAMsvB,EAAWU,EAAehwB,EAAQ,MAAQ,MAAQgwB,EAAehwB,EAAQ,IAAMovB,EAAkBlyB,QAAQ8yB,EAAehwB,EAAQ,IAAM,GACvJA,IAGR,OAAOA,GAEPiwB,EAAgB,SAASD,EAAgBL,EAAUO,EAAkBN,GACrE,IAAIv1B,EAAI,EACJwD,EAAS,GACTsyB,EAAiB,SAAS1uB,GAC1B,OAAOuuB,EAAe31B,KAAOoH,EAAQpH,UAAO,IAAWu1B,GAAWN,EAAWU,EAAe31B,MAAQu1B,IAKxG,IAHKnyB,MAAM0nB,QAAQwK,KACfA,EAAW,CAACA,IAEXt1B,EAAI,EAAGA,EAAI21B,EAAex3B,OAAQ6B,IACnC,GAAI61B,EAAiBhzB,QAAQ7C,GAAK,GAAKs1B,EAAS3yB,OAAOmzB,GAAgB33B,OAAQ,CAC3E6B,EAAI01B,EAAqBC,EAAgB31B,GACzC,EAAG,CAEC,GADAu1B,EAAUN,EAAWU,EAAe31B,KAC/BwD,EAAOrF,SAAWo3B,GAAWN,EAAWK,EAAS,GAAGt1B,IACrD,MAEJwD,EAAOgE,KAAKxH,GACZ61B,EAAiBE,QAAQ/1B,GACzBA,UACK21B,EAAe31B,IAAMq1B,EAAqBM,EAAgBL,EAAUt1B,EAAGu1B,IAChF,MAMR,OAHI,IAAM/xB,EAAOrF,QAAW,MAAQw3B,EAAeE,EAAiB,GAAK,IAAM,MAAaF,EAAeE,EAAiB,GAAK,IAC7HA,EAAiBE,QAAQF,EAAiB,GAAK,GAE5CryB,GAEPwyB,EAAmB,SAAS5uB,EAAS6uB,EAASzO,EAAM0O,GACpD,IAAIC,EAAgBF,EAAQ,GACxBG,EAAeD,EAAgBD,EAAiB/3B,OAAS+3B,EAAiBC,GAAiBA,EAQ/F,OAPAF,EAAQxwB,SAAQ,SAAUnC,EAAGqC,GACzByB,EAAUA,EAAQ0f,OAAO,EAAGsP,EAAezwB,IAAU6hB,EAAKrpB,OAAS,EAAIqpB,EAAK7hB,GAAS6hB,GAAQpgB,EAAQ0f,OAAOsP,EAAezwB,EAAQ,MAEnI,IAAMswB,EAAQ93B,SACdiJ,EAAUA,EAAQ1H,QAAQ,IAAM8nB,EAAMA,EAAOA,GAC7CpgB,EAAUA,EAAQ1H,QAAQ,IAAW8nB,EAAMA,EAAOA,IAE/CpgB,GAEPivB,EAAe,SAASjvB,EAAS6uB,EAASzO,EAAM0O,GAChD,IAAIl2B,EACA2F,EACAywB,EACJ,IAAKnB,EAAW7tB,EAAQ6uB,EAAQ,KAAO,KAAM,CACzC,IAAIK,EAAcpQ,KAAKqQ,IAAIN,EAAQ93B,QAAU,EAAI,EAAI,EAAGqpB,EAAKrpB,QAC7D,MAAO83B,EAAQ93B,OAASm4B,EAAa,CAIjC,IAHA3wB,EAAQswB,EAAQO,MAChBJ,EAAeF,EAAiBvwB,GAChCuwB,EAAiBvwB,IAAU,EACtB3F,EAAI2F,EAAQ,EAAG3F,EAAIk2B,EAAiB/3B,OAAQ6B,IAC7Ck2B,EAAiBl2B,KAErBoH,EAAUA,EAAQ0f,OAAO,EAAGsP,GAAgBhvB,EAAQ0f,OAAOsP,EAAe,GAE9EzwB,EAAQswB,EAAQA,EAAQ93B,OAAS,GAAK,EAAGi4B,EAAezwB,EAAQuwB,EAAiB/3B,OAAS+3B,EAAiBvwB,GAASA,EACpH,MAAOswB,EAAQ93B,OAASm4B,EAAa,CAEjC,IADAL,EAAQzuB,KAAKyuB,EAAQA,EAAQ93B,OAAS,GAAK,GACtC6B,EAAI2F,EAAO3F,EAAIk2B,EAAiB/3B,OAAQ6B,IACzCk2B,EAAiBl2B,KAErBoH,EAAUA,EAAQ0f,OAAO,EAAGsP,GAAgB,IAAMhvB,EAAQ0f,OAAOsP,IAIzE,OADAhvB,EAAU4uB,EAAiB5uB,EAAS6uB,EAASzO,EAAM0O,GAC5C9uB,GAEPqiB,EAAc,SAASrjB,EAAOhC,GAC9B,OAAIhB,MAAM0nB,QAAQ1kB,GACPA,EAAM/F,KAAI,SAAU+F,GACvB,OAAQhC,EAAUgC,IAAU,IAAI4f,eAGhC5hB,EAAUgC,IAAU,IAAI4f,YAEhCyQ,EAAsB,YACtBC,EAAc,SAAStvB,EAASuuB,EAAgBE,EAAkBK,GAClE,IAAIS,EAAgBhB,EAAev1B,MAAM,IAAIC,KAAI,SAAUmnB,EAAM7hB,GAC7D,OAAIkwB,EAAiBhzB,QAAQ8C,GAAS,IAAM6hB,EAAKoP,MAAMH,IAAwB,MAAQjP,GAC5E0O,EAAiBvwB,IAEpB,KAiBZ,OAfAyB,EAAUA,EAAQhH,MAAM,IAAIC,KAAI,SAAUmnB,EAAM7hB,GAC5C,IAAInC,EAASgkB,EACTqP,EAAuBF,EAAc9zB,QAAQ8C,IAAU,EACvDmxB,EAAoBnxB,EAAQ,GAAKgxB,EAAc9zB,QAAQ8C,EAAQ,IAAM,EACrEoxB,EAAoBJ,EAAc9zB,QAAQ8C,EAAQ,IAAM,EAS5D,OARIkxB,IACKC,IACDtzB,EAAS,IAAMA,GAEduzB,IACDvzB,GAAU,MAGXA,KACPjD,KAAK,IACF6G,GAEA4vB,EAAY,SAAS5yB,GAC5B,IAAIyxB,EAAmB,GACnBF,EAAiBlM,EAAY,IAAInrB,KAAK,KAAM,EAAG,EAAG,EAAG,EAAG,GAAI8F,GAC5D8xB,EAAmBP,EAAev1B,MAAM,IAAIC,KAAI,SAAUiD,EAAGqC,GAC7D,OAAOA,KAEPnC,EAASmyB,EACTsB,EAAmB,GACnBC,EAAe,CAAC,CAChBr5B,KAAM,IAAIS,KAAK,KAAM,EAAG,EAAG,EAAG,EAAG,EAAG,KACpC8I,QAAS,KACV,CACCvJ,KAAM,IAAIS,KAAK,KAAM,EAAG,EAAG,EAAG,EAAG,GACjC8I,QAAS,KACV,CACCvJ,KAAM,IAAIS,KAAK,KAAM,EAAG,EAAG,EAAG,EAAG,GACjC8I,QAAS,KACV,CACCvJ,KAAM,IAAIS,KAAK,KAAM,EAAG,EAAG,GAAI,EAAG,GAClC8I,QAAS,IACTmuB,SAAS,GACV,CACC13B,KAAM,IAAIS,KAAK,KAAM,EAAG,EAAG,EAAG,EAAG,GACjC8I,QAAS,IACTmuB,SAAS,GACV,CACC13B,KAAM,IAAIS,KAAK,KAAM,EAAG,EAAG,GAAI,EAAG,GAClC8I,QAAS,IACTmuB,SAAS,GACV,CACC13B,KAAM,IAAIS,KAAK,KAAM,EAAG,EAAG,EAAG,EAAG,GACjC8I,QAAS,KACV,CACCvJ,KAAM,CAAC,IAAIS,KAAK,KAAM,EAAG,EAAG,EAAG,EAAG,GAAI,IAAIA,KAAK,KAAM,EAAG,EAAG,EAAG,EAAG,GAAI,IAAIA,KAAK,KAAM,EAAG,EAAG,EAAG,EAAG,IAChG8I,QAAS,KACV,CACCvJ,KAAM,IAAIS,KAAK,KAAM,EAAG,EAAG,EAAG,EAAG,GACjC8I,QAAS,KACV,CACCvJ,KAAM,IAAIS,KAAK,KAAM,EAAG,EAAG,EAAG,EAAG,GACjC8I,QAAS,MAEb,GAAK5D,EAUL,OAPA0zB,EAAazxB,SAAQ,SAAU0xB,GAC3B,IAAIC,EAAOxB,EAAcD,EAAgBlM,EAAY0N,EAAKt5B,KAAMuG,GAAYyxB,EAAkBsB,EAAK5B,SAC/FnuB,EAAU,MAAQ+vB,EAAK/vB,SAAY6vB,EAAiBxQ,EAAU0Q,EAAK/vB,QAAX,IAC5D5D,EAAS6yB,EAAa7yB,EAAQ4zB,EAAMhwB,EAAS8uB,GAC7Ce,EAAiB7vB,GAAWgwB,EAAKj5B,UAErCqF,EAASkzB,EAAYlzB,EAAQmyB,EAAgBE,EAAkBK,GAC3DL,EAAiB13B,OACVqF,OADX,I,oCChMJ,gBAWI6zB,EAAS,CAAC,UAAW,WAAY,QAAS,QAAS,MAAO,OAAQ,OAAQ,SAAU,YAAa,UAAW,WAAY,YACxHC,EAAO,CAAC,SAAU,SAAU,UAAW,YAAa,WAAY,SAAU,YAC1EC,EAAU,CAAC,KAAM,MACjBC,EAAW,CAAC,KAAM,KAAM,KAAM,MAC9BC,EAAc,CAACC,EAAU95B,KACzB,IAAI+5B,EAAiB,CACjBz0B,YAAa,EACbQ,MAAO,EACPP,OAAQ,GAEZ,OAAO,eAAIu0B,EAAUjsB,GAAWA,EAAQqb,OAAO,EAAG6Q,EAAe/5B,MAEtD,QACXmF,cAAe,SAASnF,GACpB,OAAO65B,EAAYJ,EAAQz5B,IAE/B2F,YAAa,SAAS3F,GAClB,OAAO65B,EAAYH,EAAM15B,IAE7B6J,gBAAiB,SAAS7J,GACtB,OAAO45B,GAEX7zB,eAAgB,SAAS/F,GACrB,OAAO25B,K,kCClCf,W,oCCAA,0EAqBe,sBAAmB,CAC9B35B,OAAQ,SAASwI,EAAOjC,GACpB,IAAIyzB,EAAgB,eAASzzB,IAAY,KAAOA,GAAW,eAAcA,IAAY,eAAWA,GAC5F0zB,EAAe,eAAUzxB,IAAU,eAAOA,GAC9C,OAAKwxB,GAAkBC,EAGnB,eAAW1zB,GACJA,EAAQiC,IAEf,eAASjC,KACTA,EAAU,CACNnB,KAAMmB,IAGV,eAAUiC,GACH,OAAmBxI,OAAOwI,EAAOjC,GAExC,eAAOiC,GACA,OAAiBxI,OAAOwI,EAAOjC,QAD1C,GAbW,eAAUiC,GAASA,EAAM4f,WAAa,IAiBrD8R,cAAe,SAASC,GACpB,OAAOA,EAAa,WAAa,aAErCC,iBAAkB,SAASp6B,GACvB,OAAKwF,MAAM0nB,QAAQltB,GAGf,IAAMA,EAAOO,OACNP,EAAO,GAEX,SAASC,GACZ,OAAOD,EAAOyC,KAAI,SAAUqF,GACxB,OAAO,OAAiB9H,OAAOC,EAAM6H,MACrCnF,KAAK,MARF3C,GAWfq6B,2BAA4B,SAASC,EAAiBC,GAClD,IAAIC,EAAe,GACfC,EAA6BF,GAAkBD,EAAgBpxB,eAAiBoxB,EAAgBn6B,MAAQm6B,EAAgB92B,OAAS82B,EAAgBl3B,KAWrJ,OAVIq3B,EACAD,EAAa5wB,MAAK,SAAU3J,GACxB,OAAOA,EAAKe,aAAef,EAAKgB,kBAAoB,IAAM,OAEvDq5B,EAAgBpxB,aACvBsxB,EAAa5wB,KAAK,gBAElB0wB,EAAgB52B,MAAQ42B,EAAgB32B,SAAW82B,GAA8BH,EAAgB12B,SACjG42B,EAAarC,QAAQxxB,KAAKuzB,cAAcI,EAAgB12B,SAExD02B,EAAgBn6B,MAAQm6B,EAAgB92B,OAAS82B,EAAgBl3B,IAC7Dm3B,GAAkB,UAAYA,EACvB,gBAEPC,EAAarC,QAAQ,aACdxxB,KAAKyzB,iBAAiBI,IAGjCF,EAAgBn6B,MAAQm6B,EAAgB92B,MACjC,eAEP82B,EAAgBn6B,MAAQm6B,EAAgBrxB,QACjC,iBAEPqxB,EAAgBn6B,KACT,OAEPm6B,EAAgBrxB,QACT,UAEPqxB,EAAgB92B,OAAS82B,EAAgBl3B,KACrCm3B,EACAC,EAAarC,SAAQ,SAAUl4B,GAC3B,OAAO,OAAiBkF,cAAc,eAAelF,EAAKW,YAAc,IAAM,OAAiBZ,OAAOC,EAAM,UAGhHu6B,EAAarC,QAAQ,eAElBxxB,KAAKyzB,iBAAiBI,IAE7BF,EAAgB92B,MACT,QAEP82B,EAAgBl3B,KACZm3B,EACAC,EAAarC,QAAQ,OAErBqC,EAAarC,SAAQ,SAAUl4B,GAC3B,OAAO,OAAiBD,OAAOC,EAAM,aAAe,KAAO,OAAiBD,OAAOC,EAAM,UAG1F0G,KAAKyzB,iBAAiBI,IAE1B7zB,KAAKyzB,iBAAiBI,IAEjCE,qBAAsB,SAASC,GAC3B,IAAIC,EACAC,EACAz4B,EACJ,GAAIu4B,EAAMp6B,OAAS,EAEf,IADAq6B,EAAU,OAAUE,oBAAoBH,EAAM,GAAIA,EAAM,IACnDv4B,EAAI,EAAGA,EAAIu4B,EAAMp6B,OAAS,EAAG6B,IAC9By4B,EAAc,OAAUC,oBAAoBH,EAAMv4B,GAAIu4B,EAAMv4B,EAAI,IAC5Dw4B,EAAQ1S,MAAQ2S,EAAY3S,QAC5B0S,EAAUC,QAIlBD,EAAU,CACNz6B,MAAM,EACNqD,OAAO,EACPJ,KAAK,EACLM,KAAMi3B,EAAM,GAAG75B,WAAa,EAC5B6C,OAAQg3B,EAAM,GAAG55B,aAAe,EAChC6C,OAAQ+2B,EAAM,GAAG35B,aAAe,EAChCkI,YAAayxB,EAAM,GAAG15B,kBAAoB,GAGlD,IAAIu5B,EAAe7zB,KAAK0zB,2BAA2BO,GACnD,OAAOJ,GAEXO,4BAA6B,SAASC,EAAYC,EAAUC,GACxD,IAAIC,EACAC,EAAyB,SAASd,EAAiBY,EAAc1yB,GACjE,OAAQ0yB,GACJ,IAAK,OACL,IAAK,UACDZ,EAAgB92B,MAAQgF,EAC5B,IAAK,QACD8xB,EAAgBl3B,IAAMoF,EAC1B,IAAK,OACL,IAAK,MACD8xB,EAAgB52B,KAAO8E,EAC3B,IAAK,OACD8xB,EAAgB32B,OAAS6E,EAC7B,IAAK,SACD8xB,EAAgB12B,OAAS4E,EAC7B,IAAK,SACD8xB,EAAgBpxB,YAAcV,IAG1C0yB,EAAe,eAASA,GAAgBA,EAAaz2B,cAAgBy2B,EACrE,IAAIZ,EAAkB,OAAUQ,oBAAoBE,EAAYC,GAC5DD,IAAeC,GACb,SAASI,EAAaC,EAASC,IACxBA,EAAQt6B,mBAAqBs6B,EAAQv6B,aAClCu6B,EAAQv6B,aAAes6B,EAAQt6B,eAAiB,IAChDq6B,EAAYnyB,aAAc,EAC1BmyB,EAAYz3B,QAAS,IAEjB23B,EAAQv6B,cAAgBu6B,EAAQx6B,aACpCw6B,EAAQx6B,aAAeu6B,EAAQv6B,eAAiB,IAChDs6B,EAAYz3B,QAAS,EACrBy3B,EAAY13B,QAAS,IAEjB43B,EAAQx6B,cAAgBw6B,EAAQz6B,WACpCy6B,EAAQz6B,WAAaw6B,EAAQx6B,aAAe,IAC5Cu6B,EAAY13B,QAAS,EACrB03B,EAAY33B,MAAO,IAEf63B,EAAQz6B,YAAcy6B,EAAQ16B,UAAY,EAC9C06B,EAAQ16B,UAAYy6B,EAAQz6B,YAAc,IAC1Cw6B,EAAY33B,MAAO,EACnB23B,EAAYj4B,KAAM,GAEf,IAAMm4B,EAAQ16B,WAAa06B,EAAQ36B,WACtC26B,EAAQ36B,WAAa06B,EAAQ16B,aAAe,IAC5Cy6B,EAAYj4B,KAAM,EAClBi4B,EAAY73B,OAAQ,IAEhB+3B,EAAQ36B,YAAc26B,EAAQn7B,eAClCm7B,EAAQn7B,cAAgBk7B,EAAQl7B,gBAAkB,IAClDi7B,EAAY73B,OAAQ,EACpB63B,EAAYl7B,MAAO,GA7B7B,CAgCAm6B,EAAiBU,EAAaC,EAAWA,EAAWD,EAAYA,EAAaC,EAAWD,EAAaC,GAE3GE,EAAmB,OAAUK,oBAAoBlB,GACjDc,EAAuBd,EAAiBa,GAAkB,GAC1DA,EAAmB,OAAUK,oBAAoBN,GAAgB,UACjEE,EAAuBd,EAAiBa,GAAkB,GAC1Db,EAAgB,CACZmB,KAAM,OACPN,IAAqBA,IAAoB,EAC5C,IAAIX,EAAe7zB,KAAK0zB,2BAA2BC,GACnD,OAAOE,M,kCChNf,4BAeIkB,EAAwB,CAAC,OAAQ,QAAS,OAC1CC,EAA4B,CAAC,OAAQ,QAAS,MAAO,OAAQ,UAC7D7Q,EAAa,SAASC,GACtB,MAAO,SAAWA,GAAY,aAAeA,GAE7CkG,EAAmB,SAASxZ,GAC5B,IAAI1P,EACAnC,EAAS,GACTg2B,EAAgB,CAAC,OAAQ,QAAS,MAAO,OAAQ,SAAU,UAC3D3Q,EAAgBxT,EAAOokB,cAAgBpkB,EAAOokB,aAAa5Q,cAC3DiG,EAAW,YAAcjG,EAAgB,QAAUA,EACvD,OAAIH,EAAWrT,EAAOsT,WAAa,OAASE,GACxCrlB,EAAS,aAAe6R,EAAOsT,SAAW4Q,EAA4BD,EACtE3zB,EAAQ6zB,EAAc32B,QAAQisB,GAC1BnpB,GAAS,GACTnC,EAASg2B,EAAc5R,MAAM,EAAGjiB,GAChCnC,EAAOgE,KAAKqhB,GACLrlB,GAEJA,GACA,eAAUqlB,GACVzlB,MAAM0nB,QAAQjC,GAAiBA,EAAgB,CAACA,QADpD,GAIK,kBACZ,IAAI6Q,EAAoB,SAASrkB,EAAQwU,GACrC,IAAIqB,EAAW7V,EAAOM,WAAaN,EAAO6V,SAI1C,MAHI,WAAarB,IACbqB,EAAW7V,EAAOse,cAAgBte,EAAOgZ,uBAAyBnD,GAE/DA,GAEPyO,EAA6B,SAAS5O,EAAalB,GACnD,IAAI+P,EACAC,EACAC,EAcAj8B,EAbAqtB,EAAWwO,EAAkBn1B,KAAMslB,GACvC,GAAIzmB,MAAM0nB,QAAQC,IAAgB,eAAUA,EAAY,KAAO,eAAUA,EAAY,IAUjF,OATA8O,EAAwB,CAAC3O,EAAU,KAAMH,EAAY,IACrD+O,EAAsB,CAAC5O,EAAU,KAAMH,EAAY,IAC/CrC,EAAWnkB,KAAKokB,YAAc9qB,EAAOktB,EAAY,GAAIltB,EAAKa,WAAab,EAAKc,aAAed,EAAKe,aAAef,EAAKgB,kBAAoB,KACxI+6B,EAAiB,IAAIt7B,KAAKysB,EAAY,GAAGziB,WACrC,SAAW/D,KAAKokB,UAChBiR,EAAeG,QAAQhP,EAAY,GAAGtsB,UAAY,GAEtDq7B,EAAsB,CAAC5O,EAAU,IAAK0O,IAEnC,CAACC,EAAuB,MAAOC,IAI1CE,EAA6B,SAASjP,EAAakP,EAAyBpQ,GAC5E,IAAIqQ,EACAC,EACAC,EACAC,EAAS,SAASC,GAClB,OAAI,eAAOA,GACA,CAACA,EAAUt8B,cAAes8B,EAAU97B,WAAY87B,EAAU77B,UAAW67B,EAAU57B,WAAY47B,EAAU37B,aAAc27B,EAAU17B,cAEjI,gBAAK,GAAK07B,GAAWl6B,MAAM,MAAM,SAAUgG,EAAOT,GACrD,OAAO,IAAMA,EAAQmjB,OAAO1iB,GAAS,EAAI0iB,OAAO1iB,MAL3C,CAOX2kB,GACEG,EAAWwO,EAAkBn1B,KAAMslB,GAMvC,OALI,iBAAmBA,EACnBuQ,EAAevL,EAAiBtqB,MAAM81B,EAAOl8B,OAAS,GAC/C,aAAeoG,KAAKokB,WAC3ByR,EAAe,UAEXA,GACJ,IAAK,OACDF,EAAY,IAAI57B,KAAK+7B,EAAO,GAAI,EAAG,GACnCF,EAAU,IAAI77B,KAAK+7B,EAAO,GAAK,EAAG,EAAG,GACrC,MACJ,IAAK,QACDH,EAAY,IAAI57B,KAAK+7B,EAAO,GAAIA,EAAO,GAAI,GAC3CF,EAAU,IAAI77B,KAAK+7B,EAAO,GAAIA,EAAO,GAAK,EAAG,GAC7C,MACJ,IAAK,UACDH,EAAY,IAAI57B,KAAK+7B,EAAO,GAAI,EAAIA,EAAO,GAAI,GAC/CF,EAAU,IAAI77B,KAAK+7B,EAAO,GAAI,EAAIA,EAAO,GAAK,EAAG,GACjD,MACJ,IAAK,OACDH,EAAY,IAAI57B,KAAK+7B,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,IAC7DF,EAAU,IAAI77B,KAAK+7B,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAK,GAChE,MACJ,IAAK,SACDH,EAAY,IAAI57B,KAAK+7B,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,IACxEF,EAAU,IAAI77B,KAAK+7B,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAK,GAC3E,MACJ,IAAK,SACDH,EAAY,IAAI57B,KAAK+7B,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,IACnFF,EAAU,IAAI77B,KAAK+7B,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAK,GACtF,MACJ,QACIH,EAAY,IAAI57B,KAAK+7B,EAAO,GAAIA,EAAO,GAAIA,EAAO,IAClDF,EAAU,IAAI77B,KAAK+7B,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAK,GAE7D,OAAQJ,GACJ,IAAK,IACD,MAAO,CAAC/O,EAAU,IAAKgP,GAC3B,IAAK,KACD,MAAO,CAAChP,EAAU,IAAKiP,GAC3B,IAAK,IACD,MAAO,CAACjP,EAAU,KAAMiP,GAC5B,IAAK,KACD,MAAO,CAACjP,EAAU,KAAMgP,GAC5B,IAAK,KACD,MAAO,CACH,CAAChP,EAAU,IAAKgP,GAAY,KAAM,CAAChP,EAAU,KAAMiP,IAE3D,QACI,MAAO,CACH,CAACjP,EAAU,KAAMgP,GAAY,MAAO,CAAChP,EAAU,IAAKiP,MAIhEI,EAA+B,SAASxP,EAAakP,EAAyBpQ,GAC9E,IAAIqB,EAAWwO,EAAkBn1B,KAAMslB,GACnChB,EAAgBgG,EAAiBtqB,MACrC,GAAI,iBAAmBslB,GAAUhB,GAAiB,eAAUkC,GAAc,CACtE,IAAIsP,GAAU,GAAKtP,GAAa3qB,MAAM,KAClCgG,EAAQ0iB,OAAOuR,EAAOA,EAAOl8B,OAAS,IACtC2wB,EAAWjG,EAAcwR,EAAOl8B,OAAS,GACzCq8B,EAAmB,CAACtP,EAAU,KAAM9kB,GACpCwzB,EAAiB,CAAC1O,EAAU,IAAK9kB,EAAQ0oB,GACzC2L,EAAY,CAACD,EAAkB,MAAOZ,GAC1C,OAAOa,EAEX,MAAO,CAACvP,EAAU+O,GAA2B,IAAKlP,IAEtD,MAAO,CACH2P,iCAAkC,SAAS3P,EAAakP,EAAyBpQ,GAC7E,IAAIxU,EAAS9Q,KACT2mB,EAAWwO,EAAkBrkB,EAAQwU,GACrC8Q,EAAyBtlB,EAAOgZ,uBAAyB,WAAaxE,EACtElB,EAAWgS,GAA0BtlB,EAAOiZ,QAAUjZ,EAAOiZ,OAAO3F,UAAYtT,EAAOsT,SACvFhmB,EAAS,KACb,GAAK,iBAAmBknB,GAAU,kBAAoBA,GAAW,OAASkB,EAKnE,GAAI,WAAapC,GAActT,EAAOiZ,SAAUqM,EAEhD,IAAI,YAAcV,EACrB,OAAON,EAA2Bt2B,MAAMgS,EAAQ,CAAC0V,EAAalB,IAC3D,GAAInB,EAAWC,IAAa,eAAUoC,GACzC,OAAOiP,EAA2B32B,MAAMgS,EAAQ5Q,WAC7C,GAAI,WAAakkB,EACpB,OAAO4R,EAA6Bl3B,MAAMgS,EAAQ5Q,WAElD9B,EAAS,CAACuoB,EAAU+O,GAA2B,IAAKlP,QARpDpoB,EAAS,CAACuoB,EAAU+O,GAA2B,WAAYlP,QAL3DpoB,EAAS,CAACuoB,EAAU+O,GAA2B,IAAK,MAChD,WAAatR,IACbhmB,EAAS,CAACA,EAAQ,MAAQs3B,EAA0B,KAAO,MAAO,CAAC/O,EAAU+O,GAA2B,IAAK,MAarH,OAAOt3B,GAEXksB,iBAAkBA,GApIV,I,kCCvChB,kIAcIrJ,EAAe,CACfC,EAAG,cACHC,EAAG,OACHC,EAAG,UAEHiV,EAAuB,SAAS9U,EAAO/gB,GACvC,OAAI+gB,EAAQ,EACD/jB,OAAO84B,KAAKrV,GAAcnlB,KAAI,SAAUylB,GAC3C,MAAO,CAAC,SAAU,cAAczlB,KAAI,SAAU2C,GAC1C,OAAO+B,EAAUhC,cAAcyiB,EAAaM,GAAQ9iB,GAAMzC,KAAK,QAC/DA,KAAK,QACTA,KAAK,KAEN,IAAMulB,EAAQ,iBAAmB,mBAExCgV,EAAkB,CAClB,IAAK,SAAShV,EAAO/gB,GACjB,IAAIg2B,EAAcjV,EAAQ,EAAI,IAAI1P,OAAO0P,EAAO,KAAO,GACnDkV,EAAgB,eAAaj2B,EAAUkB,oBAE3C,MADA,MAAQ+0B,IAAkBA,EAAgB,GAAG5kB,OAAO4kB,EAAe,OAC5D,GAAG5kB,OAAO4kB,GAAe5kB,OAAO2kB,IAE3ClV,EAAG,SAASC,GACR,OAAO,IAAMA,EAAQ,SAAS1P,OAAO0P,EAAO,KAAO,WAEvDG,EAAG2U,EACHxU,EAAGwU,EACHvU,EAAG,SAASP,EAAO/gB,GACf,OAAI+gB,EAAQ,EACD/gB,EAAU0C,gBAAgB+d,EAAaM,GAAQ,UAAUvlB,KAAK,KAElE,WAEXgmB,EAAG,SAAST,EAAO/gB,GACf,MAAO,QAEXuB,EAAG,SAASwf,EAAO/gB,GACf,OAAOA,EAAUpB,eAAe6hB,EAAaM,EAAQ,EAAI,EAAIA,GAAQ,UAAUvlB,KAAK,MAExFkmB,EAAG,SAASX,GACR,OAAO,IAAMA,EAAQ,0BAA4B,4BAErDY,EAAG,SAASZ,GACR,OAAO,IAAMA,EAAQ,wBAA0B,0BAEnDa,EAAG,SAASb,GACR,OAAO,IAAMA,EAAQ,iBAAmB,mBAE5Cc,EAAG,SAASd,GACR,OAAO,IAAMA,EAAQ,qBAAuB,uBAEhDe,EAAG,SAASf,GACR,OAAO,IAAMA,EAAQ,qBAAuB,uBAEhDrW,EAAG,SAASqW,GACR,MAAO,WAAW1P,OAAO0P,EAAO,MAEpCmV,EAAG,SAASnV,GACR,OAAO,IAAMA,EAAQ,qBAAuB,wBAGhDoV,EAAcpS,OACdqS,EAAyB,SAASC,EAAOh1B,GACzC,OAAOg1B,EAAM/6B,IAAIiL,GAAQA,EAAKjJ,eAAeQ,QAAQuD,EAAM/D,gBAE3Dg5B,EAAqB,SAASv6B,EAAMglB,EAAO/gB,GAC3C,OAAI+gB,EAAQ,EACD,CAAC,SAAU,cAAczlB,KAAI,SAAU2C,GAC1C,OAAOjB,OAAO84B,KAAKrV,GAAcnlB,KAAI,SAAUylB,GAC3C,IAAI3c,EAAapE,EAAUhC,cAAcyiB,EAAaM,GAAQ9iB,GAC9D,OAAOm4B,EAAuBhyB,EAAYrI,SAE9Cw6B,QAAO,SAAUh1B,EAAGC,GACpB,OAAOD,EAAE8P,OAAO7P,MAChB5D,QAAO,SAAUgD,GACjB,OAAOA,GAAS,KAChB,GAEDu1B,EAAYp6B,GAAQ,GAE3By6B,EAAkB,CAClB1V,EAAG,SAAS/kB,EAAMglB,GACd,IAAI/nB,EAAOm9B,EAAYp6B,GACvB,OAAI,IAAMglB,EACC/nB,EAAO,GAAK,IAAMA,EAAO,KAAOA,EAEpCA,GAEXkoB,EAAGoV,EACHjV,EAAGiV,EACHhV,EAAG,SAASvlB,EAAMglB,EAAO/gB,GACrB,OAAI+gB,EAAQ,EACD/gB,EAAU0C,gBAAgB+d,EAAaM,GAAQ,UAAUjjB,QAAQ/B,GAErEo6B,EAAYp6B,GAAQ,GAE/BylB,EAAG,SAASzlB,EAAMglB,EAAO/gB,GACrB,IAAIy2B,EAAWz2B,EAAUxB,YAAYiiB,EAAaM,EAAQ,EAAI,EAAIA,GAAQ,UAC1E,OAAOqV,EAAuBK,EAAU16B,IAE5CwF,EAAG,SAASxF,EAAMglB,EAAO/gB,GACrB,IAAI02B,EAAc12B,EAAUpB,eAAe6hB,EAAaM,EAAQ,EAAI,EAAIA,GAAQ,UAChF,OAAOqV,EAAuBM,EAAa36B,IAE/C2lB,EAAGyU,EACHxU,EAAGwU,EACHvU,EAAGuU,EACHtU,EAAGsU,EACHrU,EAAGqU,EACHzrB,EAAG,SAAS3O,EAAMglB,GACdA,EAAQI,KAAKqQ,IAAIzQ,EAAO,GACxBhlB,EAAOA,EAAK8mB,MAAM,EAAG,GACrB,MAAO9B,EAAQ,EACXhlB,GAAQ,IACRglB,IAEJ,OAAOoV,EAAYp6B,KAGvB46B,EAAmB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAClDC,EAAkB,CAClB9V,EAAG,cACHI,EAAG,WACHG,EAAG,WACH9f,EAAG,SAASzI,EAAMuI,EAAOw1B,GACrB,IAAI93B,EAAQjG,EAAKa,WACbm9B,EAAgBD,EAAejV,OAC/B,IAAWkV,GAAiBA,IAAkB/3B,GAC9CA,IAECsC,GAAS,KAAOtC,EAEVsC,GAAS,KAAOtC,IACvBA,GAAS,IAFTA,EAAQ,EAIZjG,EAAKi+B,SAASh4B,IAElB2iB,EAAG,UACHC,EAAG,WACHC,EAAG,WACHC,EAAG,aACHC,EAAG,aACHpX,EAAG,mBAEHssB,EAAmB,SAASj7B,EAAM6E,GAClC,IAAI6hB,EAAO1mB,EAAK6E,GAChB,IAAK6hB,EACD,OAAO,EAEX,IAAI1B,EAAQ,EACZ,GACIngB,IACAmgB,UACKhlB,EAAK6E,KAAW6hB,GACzB,OAAO1B,GAEPkW,EAAgB,SAASxU,EAAM1B,GAE/B,IADA,IAAItiB,EAAS,GACJxD,EAAI,EAAGA,EAAI8lB,EAAO9lB,IACvBwD,GAAUgkB,EAEd,OAAOhkB,GAEAy4B,EAAgB,SAASr+B,EAAQmH,GAYxC,IAXA,IAEI4iB,EAFAuU,EAAa,GACbC,EAAW,GAEX7G,EAAW,GACX8G,EAAkB,WACdD,IACA7G,EAAS9tB,KAAK,IAAI4O,OAAO+lB,EAAU,MACnCD,GAAc,GAAG9lB,OAAO,eAAa+lB,GAAW,KAChDA,EAAW,KAGVn8B,EAAI,EAAGA,EAAIpC,EAAOO,OAAQ6B,IAAK,CACpC,IAAIwnB,EAAO5pB,EAAOoC,GACdq8B,EAAe,MAAQ7U,EACvB8U,EAAaxB,EAAgBtT,GACjC,IAAI6U,IACA1U,GAAcA,EACV,MAAQ/pB,EAAOoC,EAAI,IAI3B,GAAIs8B,IAAe3U,EAAY,CAC3B,IAAI7B,EAAQiW,EAAiBn+B,EAAQoC,GACjCoH,EAAU40B,EAAcxU,EAAM1B,GAClCsW,IACA9G,EAAS9tB,KAAKJ,GACd80B,GAAc,IAAI9lB,OAAOkmB,EAAWxW,EAAO/gB,GAAY,KACvD/E,GAAK8lB,EAAQ,OAERqW,IACDD,GAAc,KAElBC,GAAY3U,EAOpB,OAJA4U,IACKG,EAA2BjH,IAC5B,OAAOkH,KAAK,mDAAmDpmB,OAAOxY,EAAQ,MAE3E,CACH03B,SAAUA,EACVmH,OAAQ,IAAIC,OAAO,IAAItmB,OAAO8lB,EAAY,KAAM,OAGpDS,EAAoB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACtDJ,EAA6B,SAASjH,GAC7C,IAAIsH,EAAiBx1B,IACjB,IAAKA,EACD,OAAO,EAEX,IAAIogB,EAAOpgB,EAAQ,GACnB,MAAO,CAAC,IAAK,KAAKG,SAASigB,IAASmV,EAAkBp1B,SAASigB,IAASpgB,EAAQjJ,OAAS,GAEzF0+B,GAAqB,EACrBC,EAA8B,EAClC,OAAOxH,EAASyH,MAAM,CAAC31B,EAASzB,EAAO2vB,KAC/BsH,EAAex1B,KACX,CAACA,GAAW,MAAQA,EAAQ,IAAM,IAAMA,EAAQjJ,OAAhD,CAAwDiJ,KACxDy1B,IAAuBC,EAA8B,GAEpDF,EAAetH,EAAS3vB,EAAQ,MACjCm3B,EAA8B,IAG/BD,KAGJG,EAAoB,WAC3B,OAAOrB,GAEPsB,EAAiB,SAASp/B,EAAMuJ,EAAStG,EAAMiE,EAAW62B,GAC1D,IAAIsB,EAAc91B,EAAQ,GACtB+1B,EAAaxB,EAAgBuB,GAC7BE,EAAa7B,EAAgB2B,GACjC,GAAIC,GAAcC,EAAY,CAC1B,IAAIh3B,EAAQg3B,EAAWt8B,EAAMsG,EAAQjJ,OAAQ4G,GAC7C62B,EAAex0B,GAAWhB,EACtBvI,EAAKs/B,GACLt/B,EAAKs/B,GAAY/2B,GAEjB+2B,EAAWt/B,EAAMuI,EAAOw1B,KAIhCyB,EAAwB,SAASx/B,EAAMuJ,EAASk2B,GAChD,IAAIC,EAAa5B,EAAgBv0B,GAC7Bo2B,EAAa,IAAMD,EAAWzW,OAAO,GACrC1gB,EAAQk3B,EAAIE,KAChB3/B,EAAK0/B,GAAYn3B,IAEjBq3B,EAAmB,SAASC,GAC5B,OAAOA,EAAar9B,KAAI,SAAU+G,GAC9B,MAAI,MAAQA,EAAQ,GACT,GAEA,MAAQA,EAAQ,GAAK,IAAMA,EAAQ,OAIlDu2B,EAA4B,SAASrI,GACrC,IAAIW,EAAUX,EAASj1B,KAAI,SAAU+G,GACjC,OAAOs0B,EAAiB74B,QAAQuE,MAEpC,OAAO8e,KAAKqQ,IAAIlzB,MAAM6iB,KAAM+P,IAE5B2H,EAA2B,SAASC,GACpC,IAAIC,EAAgBD,EAAel7B,QAAO,SAAUyE,GAChD,OAAOs0B,EAAiB74B,QAAQuE,GAAW,KAE/C,OAAOs0B,EAAiBtlB,OAAO0nB,IAExBC,EAAY,SAASngC,EAAQmH,GACpC,IAAIi5B,EAAa/B,EAAcr+B,EAAQmH,GACvC,OAAO,SAASjE,GACZ,IAAIm9B,EAAeD,EAAWvB,OAAOyB,KAAKp9B,GAC1C,GAAIm9B,EAAc,CACd,IAAIX,EAAM,IAAIh/B,KACVT,EAAO,IAAIS,KAAKg/B,EAAIt/B,cAAe,EAAG,GACtC6/B,EAAiBJ,EAAiBO,EAAW1I,UAC7C6I,EAAkBR,EAA0BE,GAC5CO,EAAwBR,EAAyBC,GACjDjC,EAAiB,GAcrB,OAbAwC,EAAsB34B,SAAQ,SAAU2B,EAASzB,GAC7C,GAAKyB,KAAWzB,EAAQ+1B,EAAiBv9B,QAAUwH,EAAQw4B,GAA3D,CAGA,IAAI/H,EAAeyH,EAAeh7B,QAAQuE,GAC1C,GAAIgvB,GAAgB,EAAG,CACnB,IAAIiI,EAAgBL,EAAW1I,SAASc,GACpCkI,EAAaL,EAAa7H,EAAe,GAC7C6G,EAAep/B,EAAMwgC,EAAeC,EAAYv5B,EAAW62B,QAE3DyB,EAAsBx/B,EAAMuJ,EAASk2B,OAGtCz/B,EAEX,OAAO,Q,yDC3Tf,IAAI6K,EAAS,WAAa,IAAIC,EAAIpE,KAASqE,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,QAC/FyD,EAAkB,G,sDCIP,GACfpG,KAAA,UACAuE,KAAA,kBACA6zB,mBAAA,GACAnyB,YAAA,CAAAuC,QAAAC,QAAAC,QAAAC,QAAAC,QAAAC,QAAAC,QAAAC,QAAAC,QAAAC,QAAAC,QAAAC,WAEAkvB,MAAA,CACAC,UAAA,CACAz7B,KAAAI,MACAs7B,UAAA,GAEAryB,wBAAA,CACArJ,KAAAI,OAEAu7B,SAAA,CACA37B,KAAAssB,UAGAje,QAAA,CAEAutB,uBAAA,SAAAxnB,GACA,IAAAynB,EAAA,KAAAxyB,wBAAA1J,QAAA,SAAAgP,GAAA,UAAAA,EAAAmtB,YACAz/B,EAAA+X,EAAA2nB,SAAA3nB,EAAA4nB,MAEAC,EAAA,KAAAR,UAAAxM,MAAA,SAAAtgB,GAAA,OAAAA,IAAAtS,KACA,KAAAs/B,UAAAM,GAAA,IAAAJ,EAAA1gC,SACA,KAAA+gC,MAAA,aAAA7/B,MAAA+X,SACA,KAAAhL,YAAA7E,SAAAlI,IAAA+X,EAAAC,UACAD,EAAA+nB,oBAUAjvB,QAAA,WACAkvB,SAAAC,iBAAA,eAAAT,wBAAA,IAKAU,cAAA,WACAF,SAAAG,oBAAA,eAAAX,0BClD+W,I,YCO3WttB,EAAY,eACd,EACA5I,EACA6D,GACA,EACA,KACA,KACA,MAIa,OAAA+E,E,+BClBf,uBAYC,SAASnJ,GAA2Dq3B,EAAOC,QAAQt3B,IAAnF,EAA4Q,WAAW,OAAO,SAAS0e,EAAEvgB,EAAEo5B,EAAE/Y,GAAG,SAASgZ,EAAEC,EAAEz3B,GAAG,IAAIu3B,EAAEE,GAAG,CAAC,IAAIt5B,EAAEs5B,GAAG,CAAC,IAAIC,EAAE,mBAAmBC,GAASA,EAAQ,IAAI33B,GAAG03B,EAAE,OAAO,EAAED,GAAE,GAAI,GAAGG,EAAE,OAAOA,EAAEH,GAAE,GAAI,IAAII,EAAE,IAAIC,MAAM,uBAAuBL,EAAE,KAAK,MAAMI,EAAE9K,KAAK,mBAAmB8K,EAAE,IAAIhgC,EAAE0/B,EAAEE,GAAG,CAACH,QAAQ,IAAIn5B,EAAEs5B,GAAG,GAAG7V,KAAK/pB,EAAEy/B,SAAQ,SAASt3B,GAAG,IAAI03B,EAAEv5B,EAAEs5B,GAAG,GAAGz3B,GAAG,OAAOw3B,EAAEE,GAAG13B,KAAInI,EAAEA,EAAEy/B,QAAQ5Y,EAAEvgB,EAAEo5B,EAAE/Y,GAAG,OAAO+Y,EAAEE,GAAGH,QAAQ,IAAI,IAAIM,EAAE,mBAAmBD,GAASA,EAAQ33B,EAAE,EAAEA,EAAEwe,EAAExoB,OAAOgK,IAAIw3B,EAAEhZ,EAAExe,IAAI,OAAOw3B,EAAjb,CAAob,CAACO,EAAE,CAAC,SAAS/3B,EAAE03B,EAAED,GAAG,aAAa,IAAInZ,EAAEte,EAAE,WAAWg4B,EAAEh4B,EAAE,aAAai4B,EAAE,oEAAoER,EAAES,OAAO,SAASl4B,GAAG,IAAI,IAAI03B,EAAED,EAAEI,EAAEhgC,EAAE6mB,EAAEvgB,EAAEo5B,EAAE/Y,EAAE,GAAGgZ,EAAE,EAAEI,EAAE53B,EAAEhK,OAAOmiC,EAAEP,EAAEI,EAAE,WAAW1Z,EAAE8Z,UAAUp4B,GAAGw3B,EAAEx3B,EAAEhK,QAAQmiC,EAAEP,EAAEJ,EAAEK,EAAEG,GAAGN,EAAE13B,EAAEw3B,KAAKC,EAAED,EAAEI,EAAE53B,EAAEw3B,KAAK,EAAEA,EAAEI,EAAE53B,EAAEw3B,KAAK,IAAIE,EAAE13B,EAAEgtB,WAAWwK,KAAKC,EAAED,EAAEI,EAAE53B,EAAEgtB,WAAWwK,KAAK,EAAEA,EAAEI,EAAE53B,EAAEgtB,WAAWwK,KAAK,GAAG3/B,EAAE6/B,GAAG,EAAEhZ,GAAG,EAAEgZ,IAAI,EAAED,GAAG,EAAEt5B,EAAE,EAAEg6B,GAAG,GAAGV,IAAI,EAAEI,GAAG,EAAE,GAAGN,EAAE,EAAEY,EAAE,GAAGN,EAAE,GAAGrZ,EAAEnf,KAAK44B,EAAEI,OAAOxgC,GAAGogC,EAAEI,OAAO3Z,GAAGuZ,EAAEI,OAAOl6B,GAAG85B,EAAEI,OAAOd,IAAI,OAAO/Y,EAAEpmB,KAAK,KAAKq/B,EAAEa,OAAO,SAASt4B,GAAG,IAAI03B,EAAED,EAAEI,EAAEhgC,EAAE6mB,EAAEvgB,EAAEo5B,EAAE,EAAE/Y,EAAE,EAAEgZ,EAAE,QAAQ,GAAGx3B,EAAE2e,OAAO,EAAE6Y,EAAExhC,UAAUwhC,EAAE,MAAM,IAAIM,MAAM,mDAAmD,IAAIF,EAAEO,EAAE,GAAGn4B,EAAEA,EAAEzI,QAAQ,mBAAmB,KAAKvB,OAAO,EAAE,GAAGgK,EAAEq4B,OAAOr4B,EAAEhK,OAAO,KAAKiiC,EAAEI,OAAO,KAAKF,IAAIn4B,EAAEq4B,OAAOr4B,EAAEhK,OAAO,KAAKiiC,EAAEI,OAAO,KAAKF,IAAIA,EAAE,GAAG,EAAE,MAAM,IAAIL,MAAM,6CAA6C,IAAIF,EAAEI,EAAEO,WAAW,IAAIC,WAAW,EAAEL,GAAG,IAAIl9B,MAAM,EAAEk9B,GAAGZ,EAAEv3B,EAAEhK,QAAQ0hC,EAAEO,EAAEv9B,QAAQsF,EAAEq4B,OAAOd,OAAO,GAAG1/B,EAAEogC,EAAEv9B,QAAQsF,EAAEq4B,OAAOd,QAAQ,EAAEE,GAAG,GAAG5/B,IAAI,GAAG6mB,EAAEuZ,EAAEv9B,QAAQsF,EAAEq4B,OAAOd,QAAQ,EAAEM,GAAG,EAAEnZ,IAAI,GAAGvgB,EAAE85B,EAAEv9B,QAAQsF,EAAEq4B,OAAOd,OAAOK,EAAEpZ,KAAKkZ,EAAE,KAAKhZ,IAAIkZ,EAAEpZ,KAAKiZ,GAAG,KAAKt5B,IAAIy5B,EAAEpZ,KAAKqZ,GAAG,OAAOD,IAAI,CAAC,YAAY,GAAG,UAAU,KAAKa,EAAE,CAAC,SAASz4B,EAAE03B,EAAED,GAAG,aAAa,IAAII,EAAE73B,EAAE,cAAcnI,EAAEmI,EAAE,uBAAuB0e,EAAE1e,EAAE,uBAAuB7B,EAAE6B,EAAE,4BAA4B,SAASu3B,EAAEv3B,EAAE03B,EAAED,EAAEI,EAAEhgC,GAAGuE,KAAKs8B,eAAe14B,EAAE5D,KAAKu8B,iBAAiBjB,EAAEt7B,KAAKw8B,MAAMnB,EAAEr7B,KAAKy8B,YAAYhB,EAAEz7B,KAAK08B,kBAAkBjhC,EAAE0/B,EAAEwB,UAAU,CAACC,iBAAiB,WAAW,IAAIh5B,EAAE,IAAInI,EAAEggC,EAAEoB,QAAQrN,QAAQxvB,KAAK08B,oBAAoBI,KAAK98B,KAAKy8B,YAAYM,oBAAoBD,KAAK,IAAI/6B,EAAE,gBAAgBu5B,EAAEt7B,KAAK,OAAO4D,EAAEyB,GAAG,OAAM,WAAW,GAAGrF,KAAKg9B,WAAWC,cAAc3B,EAAEiB,iBAAiB,MAAM,IAAIb,MAAM,4CAA2C93B,GAAGs5B,oBAAoB,WAAW,OAAO,IAAIzhC,EAAEggC,EAAEoB,QAAQrN,QAAQxvB,KAAK08B,oBAAoBS,eAAe,iBAAiBn9B,KAAKs8B,gBAAgBa,eAAe,mBAAmBn9B,KAAKu8B,kBAAkBY,eAAe,QAAQn9B,KAAKw8B,OAAOW,eAAe,cAAcn9B,KAAKy8B,eAAetB,EAAEiC,iBAAiB,SAASx5B,EAAE03B,EAAED,GAAG,OAAOz3B,EAAEk5B,KAAK,IAAIxa,GAAGwa,KAAK,IAAI/6B,EAAE,qBAAqB+6B,KAAKxB,EAAE+B,eAAehC,IAAIyB,KAAK,IAAI/6B,EAAE,mBAAmBo7B,eAAe,cAAc7B,IAAIA,EAAEJ,QAAQC,GAAG,CAAC,aAAa,EAAE,sBAAsB,GAAG,2BAA2B,GAAG,sBAAsB,KAAKja,EAAE,CAAC,SAAStd,EAAE03B,EAAED,GAAG,aAAa,IAAII,EAAE73B,EAAE,0BAA0By3B,EAAEiC,MAAM,CAACC,MAAM,OAAOF,eAAe,WAAW,OAAO,IAAI5B,EAAE,sBAAsBsB,iBAAiB,WAAW,OAAO,IAAItB,EAAE,yBAAyBJ,EAAEmC,QAAQ55B,EAAE,YAAY,CAAC,UAAU,EAAE,yBAAyB,KAAKud,EAAE,CAAC,SAASvd,EAAE03B,EAAED,GAAG,aAAa,IAAII,EAAE73B,EAAE,WAAeu3B,EAAE,WAAW,IAAI,IAAIv3B,EAAE03B,EAAE,GAAGD,EAAE,EAAEA,EAAE,IAAIA,IAAI,CAACz3B,EAAEy3B,EAAE,IAAI,IAAII,EAAE,EAAEA,EAAE,EAAEA,IAAI73B,EAAE,EAAEA,EAAE,WAAWA,IAAI,EAAEA,IAAI,EAAE03B,EAAED,GAAGz3B,EAAE,OAAO03B,EAA5G,GAAiHA,EAAEJ,QAAQ,SAASt3B,EAAE03B,GAAG,YAAO,IAAS13B,GAAGA,EAAEhK,OAAO,WAAW6hC,EAAEO,UAAUp4B,GAAG,SAASA,EAAE03B,EAAED,EAAEI,GAAG,IAAIhgC,EAAE0/B,EAAE7Y,EAAEmZ,EAAEJ,EAAEz3B,IAAI,EAAE,IAAI,IAAI7B,EAAE05B,EAAE15B,EAAEugB,EAAEvgB,IAAI6B,EAAEA,IAAI,EAAEnI,EAAE,KAAKmI,EAAE03B,EAAEv5B,KAAK,OAAO,EAAE6B,EAA3F,CAA8F,EAAE03B,EAAE13B,EAAEA,EAAEhK,OAAO,GAAG,SAASgK,EAAE03B,EAAED,EAAEI,GAAG,IAAIhgC,EAAE0/B,EAAE7Y,EAAEmZ,EAAEJ,EAAEz3B,IAAI,EAAE,IAAI,IAAI7B,EAAE05B,EAAE15B,EAAEugB,EAAEvgB,IAAI6B,EAAEA,IAAI,EAAEnI,EAAE,KAAKmI,EAAE03B,EAAE1K,WAAW7uB,KAAK,OAAO,EAAE6B,EAAtG,CAAyG,EAAE03B,EAAE13B,EAAEA,EAAEhK,OAAO,GAAG,IAAI,CAAC,UAAU,KAAKwnB,EAAE,CAAC,SAASxd,EAAE03B,EAAED,GAAG,aAAaA,EAAEoC,QAAO,EAAGpC,EAAEqC,QAAO,EAAGrC,EAAEsC,KAAI,EAAGtC,EAAEuC,eAAc,EAAGvC,EAAE/hC,KAAK,KAAK+hC,EAAEoB,YAAY,KAAKpB,EAAEwC,mBAAmB,KAAKxC,EAAEyC,QAAQ,KAAKzC,EAAE0C,gBAAgB,KAAK1C,EAAE2C,eAAe,MAAM,IAAIC,EAAE,CAAC,SAASr6B,EAAE03B,EAAED,GAAG,aAAa,IAAII,EAAE,KAAKA,EAAE,oBAAoBoB,QAAQA,QAAQj5B,EAAE,OAAO03B,EAAEJ,QAAQ,CAAC2B,QAAQpB,IAAI,CAACyC,IAAI,KAAKC,EAAE,CAAC,SAASv6B,EAAE03B,EAAED,GAAG,aAAa,IAAII,EAAE,oBAAoBW,YAAY,oBAAoBgC,aAAa,oBAAoBC,YAAY5iC,EAAEmI,EAAE,QAAQ0e,EAAE1e,EAAE,WAAW7B,EAAE6B,EAAE,0BAA0Bu3B,EAAEM,EAAE,aAAa,QAAQ,SAASrZ,EAAExe,EAAE03B,GAAGv5B,EAAEyjB,KAAKxlB,KAAK,eAAe4D,GAAG5D,KAAKs+B,MAAM,KAAKt+B,KAAKu+B,YAAY36B,EAAE5D,KAAKw+B,aAAalD,EAAEt7B,KAAKy+B,KAAK,GAAGpD,EAAEkC,MAAM,OAAOjb,EAAEoc,SAAStc,EAAErgB,GAAGqgB,EAAEua,UAAUgC,aAAa,SAAS/6B,GAAG5D,KAAKy+B,KAAK76B,EAAE66B,KAAK,OAAOz+B,KAAKs+B,OAAOt+B,KAAK4+B,cAAc5+B,KAAKs+B,MAAMr7B,KAAKqf,EAAEuc,YAAY1D,EAAEv3B,EAAEuC,OAAM,IAAKic,EAAEua,UAAUmC,MAAM,WAAW/8B,EAAE46B,UAAUmC,MAAMtZ,KAAKxlB,MAAM,OAAOA,KAAKs+B,OAAOt+B,KAAK4+B,cAAc5+B,KAAKs+B,MAAMr7B,KAAK,IAAG,IAAKmf,EAAEua,UAAUoC,QAAQ,WAAWh9B,EAAE46B,UAAUoC,QAAQvZ,KAAKxlB,MAAMA,KAAKs+B,MAAM,MAAMlc,EAAEua,UAAUiC,YAAY,WAAW5+B,KAAKs+B,MAAM,IAAI7iC,EAAEuE,KAAKu+B,aAAa,CAACS,KAAI,EAAGC,MAAMj/B,KAAKw+B,aAAaS,QAAQ,IAAI,IAAI3D,EAAEt7B,KAAKA,KAAKs+B,MAAMY,OAAO,SAASt7B,GAAG03B,EAAEr4B,KAAK,CAACkD,KAAKvC,EAAE66B,KAAKnD,EAAEmD,SAASpD,EAAEgC,eAAe,SAASz5B,GAAG,OAAO,IAAIwe,EAAE,UAAUxe,IAAIy3B,EAAE0B,iBAAiB,WAAW,OAAO,IAAI3a,EAAE,UAAU,MAAM,CAAC,yBAAyB,GAAG,UAAU,GAAG+c,KAAK,KAAKC,EAAE,CAAC,SAASx7B,EAAE03B,EAAED,GAAG,aAAa,SAASrwB,EAAEpH,EAAE03B,GAAG,IAAID,EAAEI,EAAE,GAAG,IAAIJ,EAAE,EAAEA,EAAEC,EAAED,IAAII,GAAG9hC,OAAO0lC,aAAa,IAAIz7B,GAAGA,KAAK,EAAE,OAAO63B,EAAE,SAASA,EAAE73B,EAAE03B,EAAED,EAAEI,EAAEhgC,EAAE6mB,GAAG,IAAIvgB,EAAEo5B,EAAE/Y,EAAExe,EAAE07B,KAAKlE,EAAEx3B,EAAE64B,YAAYjB,EAAElZ,IAAIid,EAAEC,WAAWzD,EAAE0D,EAAEZ,YAAY,SAASvc,EAAEF,EAAExgB,OAAOg6B,EAAE6D,EAAEZ,YAAY,SAASU,EAAEC,WAAWpd,EAAExgB,OAAOsgB,EAAEE,EAAE0b,QAAQjC,EAAE4D,EAAEZ,YAAY,SAASvc,EAAEJ,IAAIG,EAAEod,EAAEZ,YAAY,SAASU,EAAEC,WAAWtd,IAAInjB,EAAE68B,EAAEhiC,SAASwoB,EAAExgB,KAAKhI,OAAO8lC,EAAErd,EAAEzoB,SAASsoB,EAAEtoB,OAAOoI,EAAE,GAAG29B,EAAE,GAAGre,EAAE,GAAGoV,EAAEtU,EAAEub,IAAIiC,EAAExd,EAAE9oB,KAAK8T,EAAE,CAACovB,MAAM,EAAEF,eAAe,EAAEC,iBAAiB,GAAGjB,IAAID,IAAIjuB,EAAEovB,MAAM54B,EAAE44B,MAAMpvB,EAAEkvB,eAAe14B,EAAE04B,eAAelvB,EAAEmvB,iBAAiB34B,EAAE24B,kBAAkB,IAAIrxB,EAAE,EAAEowB,IAAIpwB,GAAG,GAAGswB,IAAIz8B,IAAI2gC,IAAIx0B,GAAG,MAAM,IAAI20B,EAAE,EAAEC,EAAE,EAAEpJ,IAAImJ,GAAG,IAAI,SAASpkC,GAAGqkC,EAAE,IAAID,GAAG,SAASj8B,EAAE03B,GAAG,IAAID,EAAEz3B,EAAE,OAAOA,IAAIy3B,EAAEC,EAAE,MAAM,QAAQ,MAAMD,IAAI,GAA7D,CAAiEjZ,EAAE2b,gBAAgBrH,KAAKoJ,EAAE,GAAGD,GAAG,SAASj8B,GAAG,OAAO,IAAIA,GAAG,GAA1B,CAA8Bwe,EAAE4b,iBAAiBj8B,EAAE69B,EAAEG,cAAch+B,IAAI,EAAEA,GAAG69B,EAAEI,gBAAgBj+B,IAAI,EAAEA,GAAG69B,EAAEK,gBAAgB,EAAE9E,EAAEyE,EAAEM,iBAAiB,KAAK/E,IAAI,EAAEA,GAAGyE,EAAEO,cAAc,EAAEhF,IAAI,EAAEA,GAAGyE,EAAEQ,aAAarhC,IAAI4gC,EAAE30B,EAAE,EAAE,GAAGA,EAAEq1B,EAAEtE,GAAG,GAAGH,EAAE55B,GAAG,KAAKgJ,EAAE20B,EAAE/lC,OAAO,GAAG+lC,GAAGD,IAAIpe,EAAEtW,EAAE,EAAE,GAAGA,EAAEq1B,EAAExE,GAAG,GAAGxZ,EAAErgB,GAAG,KAAKgJ,EAAEsW,EAAE1nB,OAAO,GAAG0nB,GAAG,IAAIU,EAAE,GAAG,OAAOA,GAAG,OAAOA,GAAGhX,EAAEE,EAAE,GAAG8W,GAAGoZ,EAAEmC,MAAMvb,GAAGhX,EAAEjJ,EAAE,GAAGigB,GAAGhX,EAAEmwB,EAAE,GAAGnZ,GAAGhX,EAAEoC,EAAEovB,MAAM,GAAGxa,GAAGhX,EAAEoC,EAAEkvB,eAAe,GAAGta,GAAGhX,EAAEoC,EAAEmvB,iBAAiB,GAAGva,GAAGhX,EAAE+wB,EAAEniC,OAAO,GAAGooB,GAAGhX,EAAEhJ,EAAEpI,OAAO,GAAG,CAAC0mC,WAAWC,EAAEC,kBAAkBxe,EAAE+Z,EAAE/5B,EAAEy+B,UAAUF,EAAEG,oBAAoB11B,EAAE80B,EAAE,GAAG9d,EAAEhX,EAAE6wB,EAAEjiC,OAAO,GAAG,WAAWoR,EAAE60B,EAAE,GAAG70B,EAAEywB,EAAE,GAAGM,EAAE/5B,EAAE65B,GAAG,IAAI4D,EAAE77B,EAAE,YAAYnI,EAAEmI,EAAE,2BAA2B27B,EAAE37B,EAAE,WAAWy8B,EAAEz8B,EAAE,YAAY28B,EAAE38B,EAAE,gBAAgB,SAAS0e,EAAE1e,EAAE03B,EAAED,EAAEI,GAAGhgC,EAAE+pB,KAAKxlB,KAAK,iBAAiBA,KAAK2gC,aAAa,EAAE3gC,KAAK4gC,WAAWtF,EAAEt7B,KAAK6gC,YAAYxF,EAAEr7B,KAAK8gC,eAAerF,EAAEz7B,KAAK+gC,YAAYn9B,EAAE5D,KAAKghC,YAAW,EAAGhhC,KAAKihC,cAAc,GAAGjhC,KAAKkhC,WAAW,GAAGlhC,KAAKmhC,oBAAoB,EAAEnhC,KAAKohC,aAAa,EAAEphC,KAAKqhC,YAAY,KAAKrhC,KAAKshC,SAAS,GAAG7B,EAAEf,SAASpc,EAAE7mB,GAAG6mB,EAAEqa,UAAU15B,KAAK,SAASW,GAAG,IAAI03B,EAAE13B,EAAE66B,KAAK8C,SAAS,EAAElG,EAAEr7B,KAAKohC,aAAa3F,EAAEz7B,KAAKshC,SAAS1nC,OAAOoG,KAAKghC,WAAWhhC,KAAKihC,cAAch+B,KAAKW,IAAI5D,KAAK2gC,cAAc/8B,EAAEuC,KAAKvM,OAAO6B,EAAEkhC,UAAU15B,KAAKuiB,KAAKxlB,KAAK,CAACmG,KAAKvC,EAAEuC,KAAKs4B,KAAK,CAAC4C,YAAYrhC,KAAKqhC,YAAYE,QAAQlG,GAAGC,EAAE,KAAKD,EAAEI,EAAE,IAAIJ,EAAE,SAAS/Y,EAAEqa,UAAU6E,aAAa,SAAS59B,GAAG5D,KAAKmhC,oBAAoBnhC,KAAK2gC,aAAa3gC,KAAKqhC,YAAYz9B,EAAE07B,KAAK19B,KAAK,IAAI05B,EAAEt7B,KAAK+gC,cAAcn9B,EAAE07B,KAAK3B,IAAI,GAAGrC,EAAE,CAAC,IAAID,EAAEI,EAAE73B,EAAE03B,GAAE,EAAGt7B,KAAKmhC,oBAAoBnhC,KAAK6gC,YAAY7gC,KAAK8gC,gBAAgB9gC,KAAKiD,KAAK,CAACkD,KAAKk1B,EAAEiF,WAAW7B,KAAK,CAAC8C,QAAQ,UAAUvhC,KAAKghC,YAAW,GAAI1e,EAAEqa,UAAU8E,aAAa,SAAS79B,GAAG5D,KAAKghC,YAAW,EAAG,IAAI1F,EAAEt7B,KAAK+gC,cAAcn9B,EAAE07B,KAAK3B,IAAItC,EAAEI,EAAE73B,EAAE03B,GAAE,EAAGt7B,KAAKmhC,oBAAoBnhC,KAAK6gC,YAAY7gC,KAAK8gC,gBAAgB,GAAG9gC,KAAKkhC,WAAWj+B,KAAKo4B,EAAEoF,WAAWnF,EAAEt7B,KAAKiD,KAAK,CAACkD,KAAK,SAASvC,GAAG,OAAO28B,EAAEmB,gBAAgB12B,EAAEpH,EAAE44B,MAAM,GAAGxxB,EAAEpH,EAAE04B,eAAe,GAAGtxB,EAAEpH,EAAE24B,iBAAiB,GAA7F,CAAiG34B,GAAG66B,KAAK,CAAC8C,QAAQ,YAAY,IAAIvhC,KAAKiD,KAAK,CAACkD,KAAKk1B,EAAEiF,WAAW7B,KAAK,CAAC8C,QAAQ,KAAKvhC,KAAKihC,cAAcrnC,QAAQoG,KAAKiD,KAAKjD,KAAKihC,cAAcU,SAAS3hC,KAAKqhC,YAAY,MAAM/e,EAAEqa,UAAUmC,MAAM,WAAW,IAAI,IAAIl7B,EAAE5D,KAAK2gC,aAAarF,EAAE,EAAEA,EAAEt7B,KAAKkhC,WAAWtnC,OAAO0hC,IAAIt7B,KAAKiD,KAAK,CAACkD,KAAKnG,KAAKkhC,WAAW5F,GAAGmD,KAAK,CAAC8C,QAAQ,OAAO,IAAIlG,EAAEr7B,KAAK2gC,aAAa/8B,EAAE63B,EAAE,SAAS73B,EAAE03B,EAAED,EAAEI,EAAEhgC,GAAG,IAAI6mB,EAAEmd,EAAEZ,YAAY,SAASpjC,EAAEggC,IAAI,OAAO8E,EAAEqB,sBAAsB,WAAW52B,EAAEpH,EAAE,GAAGoH,EAAEpH,EAAE,GAAGoH,EAAEswB,EAAE,GAAGtwB,EAAEqwB,EAAE,GAAGrwB,EAAEsX,EAAE1oB,OAAO,GAAG0oB,EAA3I,CAA8ItiB,KAAKkhC,WAAWtnC,OAAOyhC,EAAEz3B,EAAE5D,KAAK4gC,WAAW5gC,KAAK8gC,gBAAgB9gC,KAAKiD,KAAK,CAACkD,KAAKs1B,EAAEgD,KAAK,CAAC8C,QAAQ,QAAQjf,EAAEqa,UAAUkF,kBAAkB,WAAW7hC,KAAK8hC,SAAS9hC,KAAKshC,SAASK,QAAQ3hC,KAAKwhC,aAAaxhC,KAAK8hC,SAAS9E,YAAYh9B,KAAK+hC,SAAS/hC,KAAK8hC,SAASE,QAAQhiC,KAAK8hC,SAASG,UAAU3f,EAAEqa,UAAUuF,iBAAiB,SAASt+B,GAAG5D,KAAKshC,SAASr+B,KAAKW,GAAG,IAAI03B,EAAEt7B,KAAK,OAAO4D,EAAEyB,GAAG,QAAO,SAASzB,GAAG03B,EAAEqD,aAAa/6B,MAAKA,EAAEyB,GAAG,OAAM,WAAWi2B,EAAEmG,aAAanG,EAAEwG,SAAS9E,YAAY1B,EAAEgG,SAAS1nC,OAAO0hC,EAAEuG,oBAAoBvG,EAAE6G,SAAQv+B,EAAEyB,GAAG,SAAQ,SAASzB,GAAG03B,EAAE8G,MAAMx+B,MAAK5D,MAAMsiB,EAAEqa,UAAUsF,OAAO,WAAW,QAAQxmC,EAAEkhC,UAAUsF,OAAOzc,KAAKxlB,SAASA,KAAK8hC,UAAU9hC,KAAKshC,SAAS1nC,QAAQoG,KAAK6hC,qBAAoB,GAAI7hC,KAAK8hC,UAAU9hC,KAAKshC,SAAS1nC,QAAQoG,KAAKqiC,oBAAe,GAAQriC,KAAKmiC,OAAM,KAAM7f,EAAEqa,UAAUyF,MAAM,SAASx+B,GAAG,IAAI03B,EAAEt7B,KAAKshC,SAAS,IAAI7lC,EAAEkhC,UAAUyF,MAAM5c,KAAKxlB,KAAK4D,GAAG,OAAM,EAAG,IAAI,IAAIy3B,EAAE,EAAEA,EAAEC,EAAE1hC,OAAOyhC,IAAI,IAAIC,EAAED,GAAG+G,MAAMx+B,GAAG,MAAMA,IAAI,OAAM,GAAI0e,EAAEqa,UAAU2F,KAAK,WAAW7mC,EAAEkhC,UAAU2F,KAAK9c,KAAKxlB,MAAM,IAAI,IAAI4D,EAAE5D,KAAKshC,SAAShG,EAAE,EAAEA,EAAE13B,EAAEhK,OAAO0hC,IAAI13B,EAAE03B,GAAGgH,QAAQhH,EAAEJ,QAAQ5Y,GAAG,CAAC,WAAW,EAAE,eAAe,GAAG,0BAA0B,GAAG,UAAU,GAAG,WAAW,KAAKigB,EAAE,CAAC,SAAS3+B,EAAE03B,EAAED,GAAG,aAAa,IAAID,EAAEx3B,EAAE,mBAAmB63B,EAAE73B,EAAE,mBAAmBy3B,EAAEmH,eAAe,SAAS5+B,EAAE7B,EAAEu5B,GAAG,IAAIH,EAAE,IAAIM,EAAE15B,EAAEg/B,YAAYzF,EAAEv5B,EAAE0gC,SAAS1gC,EAAE++B,gBAAgB1e,EAAE,EAAE,IAAIxe,EAAE1C,SAAQ,SAAS0C,EAAE03B,GAAGlZ,IAAI,IAAIiZ,EAAE,SAASz3B,EAAE03B,GAAG,IAAID,EAAEz3B,GAAG03B,EAAEG,EAAEL,EAAEC,GAAG,IAAII,EAAE,MAAM,IAAIC,MAAML,EAAE,wCAAwC,OAAOI,EAAvG,CAA0GH,EAAEtqB,QAAQyrB,YAAY16B,EAAE06B,aAAahB,EAAEH,EAAEtqB,QAAQ6sB,oBAAoB97B,EAAE87B,oBAAoB,GAAGpiC,EAAE6/B,EAAEqC,IAAIrb,EAAEgZ,EAAEhiC,KAAKgiC,EAAEoH,gBAAgBrH,EAAEI,GAAG0B,eAAe,OAAO,CAACv7B,KAAKgC,EAAE+5B,IAAIliC,EAAEnC,KAAKgpB,EAAEwb,QAAQxC,EAAEwC,SAAS,GAAGC,gBAAgBzC,EAAEyC,gBAAgBC,eAAe1C,EAAE0C,iBAAiBlB,KAAK3B,MAAKA,EAAEiG,aAAahf,EAAE,MAAMxe,GAAGu3B,EAAEiH,MAAMx+B,GAAG,OAAOu3B,IAAI,CAAC,kBAAkB,EAAE,kBAAkB,IAAIwH,GAAG,CAAC,SAAS/+B,EAAE03B,EAAED,GAAG,aAAa,SAASI,IAAI,KAAKz7B,gBAAgBy7B,GAAG,OAAO,IAAIA,EAAE,GAAGv7B,UAAUtG,OAAO,MAAM,IAAI8hC,MAAM,kGAAkG17B,KAAK4iC,MAAMplC,OAAOqlC,OAAO,MAAM7iC,KAAK89B,QAAQ,KAAK99B,KAAK8iC,KAAK,GAAG9iC,KAAK+iC,MAAM,WAAW,IAAIn/B,EAAE,IAAI63B,EAAE,IAAI,IAAIH,KAAKt7B,KAAK,mBAAmBA,KAAKs7B,KAAK13B,EAAE03B,GAAGt7B,KAAKs7B,IAAI,OAAO13B,IAAI63B,EAAEkB,UAAU/4B,EAAE,aAAao/B,UAAUp/B,EAAE,UAAU63B,EAAEwH,QAAQr/B,EAAE,aAAa63B,EAAEyH,SAASt/B,EAAE,cAAc63B,EAAE0H,QAAQ,SAAS1H,EAAEuH,UAAU,SAASp/B,EAAE03B,GAAG,OAAM,IAAKG,GAAGuH,UAAUp/B,EAAE03B,IAAIG,EAAE2H,SAASx/B,EAAE,cAAc03B,EAAEJ,QAAQO,GAAG,CAAC,aAAa,EAAE,aAAa,EAAE,SAAS,GAAG,WAAW,GAAG,YAAY,KAAK4H,GAAG,CAAC,SAASz/B,EAAE03B,EAAED,GAAG,aAAa,IAAID,EAAEx3B,EAAE,WAAWnI,EAAEmI,EAAE,cAAc63B,EAAE73B,EAAE,UAAU0e,EAAE1e,EAAE,gBAAgB7B,EAAE6B,EAAE,uBAAuB43B,EAAE53B,EAAE,iBAAiB,SAASm4B,EAAEN,GAAG,OAAO,IAAIhgC,EAAEohC,SAAQ,SAASj5B,EAAE03B,GAAG,IAAID,EAAEI,EAAE6H,aAAa1G,mBAAmBE,KAAK,IAAI/6B,GAAGs5B,EAAEh2B,GAAG,SAAQ,SAASzB,GAAG03B,EAAE13B,MAAKyB,GAAG,OAAM,WAAWg2B,EAAE2B,WAAWR,QAAQf,EAAE6H,aAAa9G,MAAMlB,EAAE,IAAII,MAAM,mCAAmC93B,OAAMq+B,YAAW3G,EAAEJ,QAAQ,SAASt3B,EAAEu3B,GAAG,IAAI/Y,EAAEpiB,KAAK,OAAOm7B,EAAEC,EAAE3gC,OAAO0gC,GAAG,GAAG,CAACsC,QAAO,EAAG8F,YAAW,EAAGC,uBAAsB,EAAG5F,eAAc,EAAG6F,eAAehI,EAAEiI,aAAalI,EAAEmI,QAAQnI,EAAEoI,SAAShgC,GAAGnI,EAAEohC,QAAQgH,OAAO,IAAInI,MAAM,yDAAyDN,EAAE0I,eAAe,sBAAsBlgC,GAAE,EAAGu3B,EAAEqI,sBAAsBrI,EAAEsC,QAAQnsB,MAAK,SAAS1N,GAAG,IAAI03B,EAAE,IAAIhZ,EAAE6Y,GAAG,OAAOG,EAAEhM,KAAK1rB,GAAG03B,KAAIhqB,MAAK,SAAS1N,GAAG,IAAI03B,EAAE,CAAC7/B,EAAEohC,QAAQrN,QAAQ5rB,IAAIy3B,EAAEz3B,EAAEg/B,MAAM,GAAGzH,EAAEoI,WAAW,IAAI,IAAI9H,EAAE,EAAEA,EAAEJ,EAAEzhC,OAAO6hC,IAAIH,EAAEr4B,KAAK84B,EAAEV,EAAEI,KAAK,OAAOhgC,EAAEohC,QAAQkH,IAAIzI,MAAKhqB,MAAK,SAAS1N,GAAG,IAAI,IAAI03B,EAAE13B,EAAE+9B,QAAQtG,EAAEC,EAAEsH,MAAMnH,EAAE,EAAEA,EAAEJ,EAAEzhC,OAAO6hC,IAAI,CAAC,IAAIhgC,EAAE4/B,EAAEI,GAAGnZ,EAAE7mB,EAAEuoC,YAAYjiC,EAAEq5B,EAAE5L,QAAQ/zB,EAAEuoC,aAAa5hB,EAAEkd,KAAKv9B,EAAEtG,EAAE6nC,aAAa,CAAC5F,QAAO,EAAG8F,uBAAsB,EAAGlqC,KAAKmC,EAAEnC,KAAKqkC,IAAIliC,EAAEkiC,IAAIG,QAAQriC,EAAEwoC,eAAerqC,OAAO6B,EAAEwoC,eAAe,KAAKlG,gBAAgBtiC,EAAEsiC,gBAAgBC,eAAeviC,EAAEuiC,eAAeJ,cAAczC,EAAEyC,gBAAgBniC,EAAEkiC,MAAMvb,EAAEkd,KAAKv9B,GAAGmiC,mBAAmB5hB,GAAG,OAAOgZ,EAAEsF,WAAWhnC,SAASwoB,EAAE0b,QAAQxC,EAAEsF,YAAYxe,OAAM,CAAC,aAAa,EAAE,gBAAgB,GAAG,sBAAsB,GAAG,SAAS,GAAG,UAAU,GAAG,eAAe,KAAK+hB,GAAG,CAAC,SAASvgC,EAAE03B,EAAED,GAAG,aAAa,IAAII,EAAE73B,EAAE,YAAYnI,EAAEmI,EAAE,2BAA2B,SAAS0e,EAAE1e,EAAE03B,GAAG7/B,EAAE+pB,KAAKxlB,KAAK,mCAAmC4D,GAAG5D,KAAKokC,gBAAe,EAAGpkC,KAAKqkC,YAAY/I,GAAGG,EAAEiD,SAASpc,EAAE7mB,GAAG6mB,EAAEqa,UAAU0H,YAAY,SAASzgC,GAAG,IAAI03B,EAAEt7B,MAAMA,KAAKskC,QAAQ1gC,GAAGo+B,QAAQp+B,EAAEyB,GAAG,QAAO,SAASzB,GAAG03B,EAAEr4B,KAAK,CAACkD,KAAKvC,EAAE66B,KAAK,CAAC8C,QAAQ,QAAOl8B,GAAG,SAAQ,SAASzB,GAAG03B,EAAEyG,SAAS/hC,KAAKqiC,eAAez+B,EAAE03B,EAAE8G,MAAMx+B,MAAKyB,GAAG,OAAM,WAAWi2B,EAAEyG,SAASzG,EAAE8I,gBAAe,EAAG9I,EAAE6G,UAAS7f,EAAEqa,UAAUqF,MAAM,WAAW,QAAQvmC,EAAEkhC,UAAUqF,MAAMxc,KAAKxlB,QAAQA,KAAKskC,QAAQtC,SAAQ,IAAK1f,EAAEqa,UAAUsF,OAAO,WAAW,QAAQxmC,EAAEkhC,UAAUsF,OAAOzc,KAAKxlB,QAAQA,KAAKokC,eAAepkC,KAAKmiC,MAAMniC,KAAKskC,QAAQrC,UAAS,IAAK3G,EAAEJ,QAAQ5Y,GAAG,CAAC,0BAA0B,GAAG,WAAW,KAAKiiB,GAAG,CAAC,SAAS3gC,EAAE03B,EAAED,GAAG,aAAa,IAAI5/B,EAAEmI,EAAE,mBAAmB4gC,SAAS,SAAS/I,EAAE73B,EAAE03B,EAAED,GAAG5/B,EAAE+pB,KAAKxlB,KAAKs7B,GAAGt7B,KAAKykC,QAAQ7gC,EAAE,IAAI63B,EAAEz7B,KAAK4D,EAAEyB,GAAG,QAAO,SAASzB,EAAE03B,GAAGG,EAAEx4B,KAAKW,IAAI63B,EAAEgJ,QAAQzC,QAAQ3G,GAAGA,EAAEC,MAAKj2B,GAAG,SAAQ,SAASzB,GAAG63B,EAAEiJ,KAAK,QAAQ9gC,MAAKyB,GAAG,OAAM,WAAWo2B,EAAEx4B,KAAK,SAAQW,EAAE,YAAY86B,SAASjD,EAAEhgC,GAAGggC,EAAEkB,UAAUgI,MAAM,WAAW3kC,KAAKykC,QAAQxC,UAAU3G,EAAEJ,QAAQO,GAAG,CAAC,WAAW,GAAG,kBAAkB,KAAKmJ,GAAG,CAAC,SAAShhC,EAAE03B,EAAED,GAAG,aAAaC,EAAEJ,QAAQ,CAACyI,OAAO,oBAAoBkB,EAAOC,cAAc,SAASlhC,EAAE03B,GAAG,GAAGuJ,EAAOE,MAAMF,EAAOE,OAAO3I,WAAW2I,KAAK,OAAOF,EAAOE,KAAKnhC,EAAE03B,GAAG,GAAG,iBAAiB13B,EAAE,MAAM,IAAI83B,MAAM,4CAA4C,OAAO,IAAImJ,EAAOjhC,EAAE03B,IAAI0J,YAAY,SAASphC,GAAG,GAAGihC,EAAOI,MAAM,OAAOJ,EAAOI,MAAMrhC,GAAG,IAAI03B,EAAE,IAAIuJ,EAAOjhC,GAAG,OAAO03B,EAAE4J,KAAK,GAAG5J,GAAG6J,SAAS,SAASvhC,GAAG,OAAOihC,EAAOM,SAASvhC,IAAIggC,SAAS,SAAShgC,GAAG,OAAOA,GAAG,mBAAmBA,EAAEyB,IAAI,mBAAmBzB,EAAEo+B,OAAO,mBAAmBp+B,EAAEq+B,UAAU,IAAImD,GAAG,CAAC,SAASxhC,EAAE03B,EAAED,GAAG,aAAa,SAAS/Y,EAAE1e,EAAE03B,EAAED,GAAG,IAAII,EAAEhgC,EAAE2/B,EAAEY,UAAUV,GAAGhZ,EAAE8Y,EAAE3gC,OAAO4gC,GAAG,GAAGU,GAAGzZ,EAAEhpB,KAAKgpB,EAAEhpB,MAAM,IAAIS,KAAK,OAAOuoB,EAAEma,cAAcna,EAAEma,YAAYna,EAAEma,YAAY4I,eAAe,iBAAiB/iB,EAAEyb,kBAAkBzb,EAAEyb,gBAAgBx8B,SAAS+gB,EAAEyb,gBAAgB,IAAIzb,EAAEyb,iBAAiB,MAAMzb,EAAEyb,kBAAkBzb,EAAEqb,KAAI,GAAIrb,EAAE0b,gBAAgB,GAAG1b,EAAE0b,iBAAiB1b,EAAEqb,KAAI,GAAIrb,EAAEqb,MAAM/5B,EAAE87B,EAAE97B,IAAI0e,EAAEsb,gBAAgBnC,EAAE18B,EAAE6E,KAAK5B,EAAEwjB,KAAKxlB,KAAKy7B,GAAE,GAAI,IAAI15B,EAAE,WAAWtG,IAAG,IAAK6mB,EAAEob,SAAQ,IAAKpb,EAAEmb,OAAOpC,QAAG,IAASA,EAAEqC,SAASpb,EAAEob,QAAQ37B,IAAIu5B,aAAaM,GAAG,IAAIN,EAAEiB,kBAAkBja,EAAEqb,MAAMrC,GAAG,IAAIA,EAAE1hC,UAAU0oB,EAAEmb,QAAO,EAAGnb,EAAEob,QAAO,EAAGpC,EAAE,GAAGhZ,EAAEma,YAAY,QAAQhhC,EAAE,UAAU,IAAI0/B,EAAE,KAAKA,EAAEG,aAAaM,GAAGN,aAAaE,EAAEF,EAAEO,EAAE8H,QAAQ9H,EAAE+H,SAAStI,GAAG,IAAIjZ,EAAEze,EAAE03B,GAAGF,EAAE0I,eAAelgC,EAAE03B,EAAEhZ,EAAEob,OAAOpb,EAAEkhB,sBAAsBlhB,EAAEmb,QAAQ,IAAIrb,EAAE,IAAIF,EAAEte,EAAEu3B,EAAE7Y,GAAGtiB,KAAK4iC,MAAMh/B,GAAGwe,EAAE,IAAI3mB,EAAEmI,EAAE,UAAUw3B,EAAEx3B,EAAE,WAAW43B,EAAE53B,EAAE,0BAA0B7B,EAAE6B,EAAE,yBAAyBm4B,EAAEn4B,EAAE,cAAcg4B,EAAEh4B,EAAE,sBAAsBse,EAAEte,EAAE,eAAeu3B,EAAEv3B,EAAE,cAAci4B,EAAEj4B,EAAE,iBAAiBye,EAAEze,EAAE,qCAAqC7E,EAAE,SAAS6E,GAAG,MAAMA,EAAEyf,OAAO,KAAKzf,EAAEA,EAAE0hC,UAAU,EAAE1hC,EAAEhK,OAAO,IAAI,IAAI0hC,EAAE13B,EAAE2hC,YAAY,KAAK,OAAO,EAAEjK,EAAE13B,EAAE0hC,UAAU,EAAEhK,GAAG,IAAIoE,EAAE,SAAS97B,GAAG,MAAM,MAAMA,EAAEyf,OAAO,KAAKzf,GAAG,KAAKA,GAAG5B,EAAE,SAAS4B,EAAE03B,GAAG,OAAOA,OAAE,IAASA,EAAEA,EAAES,EAAE6B,cAAch6B,EAAE87B,EAAE97B,GAAG5D,KAAK4iC,MAAMh/B,IAAI0e,EAAEkD,KAAKxlB,KAAK4D,EAAE,KAAK,CAAC+5B,KAAI,EAAGC,cAActC,IAAIt7B,KAAK4iC,MAAMh/B,IAAI,SAASwe,EAAExe,GAAG,MAAM,oBAAoBpG,OAAOm/B,UAAUlb,SAAS+D,KAAK5hB,GAAG,IAAI63B,EAAE,CAACnM,KAAK,WAAW,MAAM,IAAIoM,MAAM,+EAA+Ex6B,QAAQ,SAAS0C,GAAG,IAAI03B,EAAED,EAAEI,EAAE,IAAIH,KAAKt7B,KAAK4iC,MAAMnH,EAAEz7B,KAAK4iC,MAAMtH,IAAID,EAAEC,EAAEjY,MAAMrjB,KAAK8iC,KAAKlpC,OAAO0hC,EAAE1hC,UAAU0hC,EAAEjY,MAAM,EAAErjB,KAAK8iC,KAAKlpC,UAAUoG,KAAK8iC,MAAMl/B,EAAEy3B,EAAEI,IAAIr9B,OAAO,SAASi9B,GAAG,IAAII,EAAE,GAAG,OAAOz7B,KAAKkB,SAAQ,SAAS0C,EAAE03B,GAAGD,EAAEz3B,EAAE03B,IAAIG,EAAEx4B,KAAKq4B,MAAKG,GAAG6D,KAAK,SAAS17B,EAAE03B,EAAED,GAAG,GAAG,IAAIn7B,UAAUtG,OAAO,OAAOgK,EAAE5D,KAAK8iC,KAAKl/B,EAAE0e,EAAEkD,KAAKxlB,KAAK4D,EAAE03B,EAAED,GAAGr7B,KAAK,GAAGoiB,EAAExe,GAAG,CAAC,IAAI63B,EAAE73B,EAAE,OAAO5D,KAAK5B,QAAO,SAASwF,EAAE03B,GAAG,OAAOA,EAAEqC,KAAKlC,EAAE7I,KAAKhvB,MAAK,IAAInI,EAAEuE,KAAK4iC,MAAM5iC,KAAK8iC,KAAKl/B,GAAG,OAAOnI,IAAIA,EAAEkiC,IAAIliC,EAAE,MAAM+pC,OAAO,SAASnK,GAAG,IAAIA,EAAE,OAAOr7B,KAAK,GAAGoiB,EAAEiZ,GAAG,OAAOr7B,KAAK5B,QAAO,SAASwF,EAAE03B,GAAG,OAAOA,EAAEqC,KAAKtC,EAAEzI,KAAKhvB,MAAK,IAAIA,EAAE5D,KAAK8iC,KAAKzH,EAAEC,EAAEt5B,EAAEwjB,KAAKxlB,KAAK4D,GAAG63B,EAAEz7B,KAAK+iC,QAAQ,OAAOtH,EAAEqH,KAAKxH,EAAE15B,KAAK65B,GAAG3T,OAAO,SAASuT,GAAGA,EAAEr7B,KAAK8iC,KAAKzH,EAAE,IAAIz3B,EAAE5D,KAAK4iC,MAAMvH,GAAG,GAAGz3B,IAAI,MAAMy3B,EAAEhY,OAAO,KAAKgY,GAAG,KAAKz3B,EAAE5D,KAAK4iC,MAAMvH,IAAIz3B,IAAIA,EAAE+5B,WAAW39B,KAAK4iC,MAAMvH,QAAQ,IAAI,IAAIC,EAAEt7B,KAAK5B,QAAO,SAASwF,EAAE03B,GAAG,OAAOA,EAAE15B,KAAKyhB,MAAM,EAAEgY,EAAEzhC,UAAUyhC,KAAII,EAAE,EAAEA,EAAEH,EAAE1hC,OAAO6hC,WAAWz7B,KAAK4iC,MAAMtH,EAAEG,GAAG75B,MAAM,OAAO5B,MAAMylC,SAAS,WAAW,MAAM,IAAI/J,MAAM,+EAA+EgK,uBAAuB,SAAS9hC,GAAG,IAAI03B,EAAED,EAAE,GAAG,IAAI,IAAIA,EAAED,EAAE3gC,OAAOmJ,GAAG,GAAG,CAACm9B,aAAY,EAAGtE,YAAY,QAAQoB,mBAAmB,KAAKp/B,KAAK,GAAGgkC,SAAS,MAAM3E,QAAQ,KAAK6H,SAAS,kBAAkB7E,eAAerlC,EAAE+jC,cAAc/gC,KAAK48B,EAAE58B,KAAKX,cAAcu9B,EAAEoB,YAAYpB,EAAEoB,YAAY4I,cAAc,iBAAiBhK,EAAE58B,OAAO48B,EAAE58B,KAAK,WAAW48B,EAAE58B,KAAK,MAAM,IAAIi9B,MAAM,6BAA6BN,EAAEwK,aAAavK,EAAE58B,MAAM,WAAW48B,EAAEoH,UAAU,YAAYpH,EAAEoH,UAAU,UAAUpH,EAAEoH,UAAU,UAAUpH,EAAEoH,WAAWpH,EAAEoH,SAAS,QAAQ,UAAUpH,EAAEoH,WAAWpH,EAAEoH,SAAS,OAAO,IAAIhH,EAAEJ,EAAEyC,SAAS99B,KAAK89B,SAAS,GAAGxC,EAAEH,EAAEqH,eAAexiC,KAAKq7B,EAAEI,GAAG,MAAM73B,IAAI03B,EAAE,IAAIE,EAAE,UAAU4G,MAAMx+B,GAAG,OAAO,IAAI7B,EAAEu5B,EAAED,EAAE58B,MAAM,SAAS48B,EAAEsK,WAAWE,cAAc,SAASjiC,EAAE03B,GAAG,OAAOt7B,KAAK0lC,uBAAuB9hC,GAAGo9B,WAAW1F,IAAIwK,mBAAmB,SAASliC,EAAE03B,GAAG,OAAO13B,EAAEA,GAAG,IAAInF,OAAOmF,EAAEnF,KAAK,cAAcuB,KAAK0lC,uBAAuB9hC,GAAGmiC,eAAezK,KAAKA,EAAEJ,QAAQO,GAAG,CAAC,qBAAqB,EAAE,aAAa,EAAE,aAAa,EAAE,oCAAoC,GAAG,gBAAgB,GAAG,yBAAyB,GAAG,wBAAwB,GAAG,SAAS,GAAG,UAAU,GAAG,cAAc,KAAKuK,GAAG,CAAC,SAASpiC,EAAE03B,EAAED,GAAG,aAAaC,EAAEJ,QAAQt3B,EAAE,WAAW,CAACqiC,YAAO,IAASC,GAAG,CAAC,SAAStiC,EAAE03B,EAAED,GAAG,aAAa,IAAII,EAAE73B,EAAE,gBAAgB,SAASnI,EAAEmI,GAAG63B,EAAEjW,KAAKxlB,KAAK4D,GAAG,IAAI,IAAI03B,EAAE,EAAEA,EAAEt7B,KAAKmG,KAAKvM,OAAO0hC,IAAI13B,EAAE03B,GAAG,IAAI13B,EAAE03B,GAAG13B,EAAE,YAAY86B,SAASjjC,EAAEggC,GAAGhgC,EAAEkhC,UAAUwJ,OAAO,SAASviC,GAAG,OAAO5D,KAAKmG,KAAKnG,KAAKomC,KAAKxiC,IAAInI,EAAEkhC,UAAU0J,qBAAqB,SAASziC,GAAG,IAAI,IAAI03B,EAAE13B,EAAEgtB,WAAW,GAAGyK,EAAEz3B,EAAEgtB,WAAW,GAAG6K,EAAE73B,EAAEgtB,WAAW,GAAGn1B,EAAEmI,EAAEgtB,WAAW,GAAGtO,EAAEtiB,KAAKpG,OAAO,EAAE,GAAG0oB,IAAIA,EAAE,GAAGtiB,KAAKmG,KAAKmc,KAAKgZ,GAAGt7B,KAAKmG,KAAKmc,EAAE,KAAK+Y,GAAGr7B,KAAKmG,KAAKmc,EAAE,KAAKmZ,GAAGz7B,KAAKmG,KAAKmc,EAAE,KAAK7mB,EAAE,OAAO6mB,EAAEtiB,KAAKomC,KAAK,OAAO,GAAG3qC,EAAEkhC,UAAU2J,sBAAsB,SAAS1iC,GAAG,IAAI03B,EAAE13B,EAAEgtB,WAAW,GAAGyK,EAAEz3B,EAAEgtB,WAAW,GAAG6K,EAAE73B,EAAEgtB,WAAW,GAAGn1B,EAAEmI,EAAEgtB,WAAW,GAAGtO,EAAEtiB,KAAKumC,SAAS,GAAG,OAAOjL,IAAIhZ,EAAE,IAAI+Y,IAAI/Y,EAAE,IAAImZ,IAAInZ,EAAE,IAAI7mB,IAAI6mB,EAAE,IAAI7mB,EAAEkhC,UAAU4J,SAAS,SAAS3iC,GAAG,GAAG5D,KAAKwmC,YAAY5iC,GAAG,IAAIA,EAAE,MAAM,GAAG,IAAI03B,EAAEt7B,KAAKmG,KAAKkd,MAAMrjB,KAAKomC,KAAKpmC,KAAKoB,MAAMpB,KAAKomC,KAAKpmC,KAAKoB,MAAMwC,GAAG,OAAO5D,KAAKoB,OAAOwC,EAAE03B,GAAGA,EAAEJ,QAAQz/B,GAAG,CAAC,WAAW,GAAG,eAAe,KAAKgrC,GAAG,CAAC,SAAS7iC,EAAE03B,EAAED,GAAG,aAAa,IAAII,EAAE73B,EAAE,YAAY,SAASnI,EAAEmI,GAAG5D,KAAKmG,KAAKvC,EAAE5D,KAAKpG,OAAOgK,EAAEhK,OAAOoG,KAAKoB,MAAM,EAAEpB,KAAKomC,KAAK,EAAE3qC,EAAEkhC,UAAU,CAAC6J,YAAY,SAAS5iC,GAAG5D,KAAK0mC,WAAW1mC,KAAKoB,MAAMwC,IAAI8iC,WAAW,SAAS9iC,GAAG,GAAG5D,KAAKpG,OAAOoG,KAAKomC,KAAKxiC,GAAGA,EAAE,EAAE,MAAM,IAAI83B,MAAM,sCAAsC17B,KAAKpG,OAAO,mBAAmBgK,EAAE,uBAAuB+iC,SAAS,SAAS/iC,GAAG5D,KAAK0mC,WAAW9iC,GAAG5D,KAAKoB,MAAMwC,GAAG8rB,KAAK,SAAS9rB,GAAG5D,KAAK2mC,SAAS3mC,KAAKoB,MAAMwC,IAAIuiC,OAAO,aAAaS,QAAQ,SAAShjC,GAAG,IAAI03B,EAAED,EAAE,EAAE,IAAIr7B,KAAKwmC,YAAY5iC,GAAG03B,EAAEt7B,KAAKoB,MAAMwC,EAAE,EAAE03B,GAAGt7B,KAAKoB,MAAMk6B,IAAID,GAAGA,GAAG,GAAGr7B,KAAKmmC,OAAO7K,GAAG,OAAOt7B,KAAKoB,OAAOwC,EAAEy3B,GAAGwL,WAAW,SAASjjC,GAAG,OAAO63B,EAAEoD,YAAY,SAAS7+B,KAAKumC,SAAS3iC,KAAK2iC,SAAS,aAAaF,qBAAqB,aAAaC,sBAAsB,aAAaQ,SAAS,WAAW,IAAIljC,EAAE5D,KAAK4mC,QAAQ,GAAG,OAAO,IAAI7sC,KAAKA,KAAKC,IAAI,MAAM4J,GAAG,GAAG,MAAMA,GAAG,GAAG,IAAI,EAAEA,GAAG,GAAG,GAAGA,GAAG,GAAG,GAAGA,GAAG,EAAE,IAAI,GAAGA,IAAI,MAAM03B,EAAEJ,QAAQz/B,GAAG,CAAC,WAAW,KAAKsrC,GAAG,CAAC,SAASnjC,EAAE03B,EAAED,GAAG,aAAa,IAAII,EAAE73B,EAAE,sBAAsB,SAASnI,EAAEmI,GAAG63B,EAAEjW,KAAKxlB,KAAK4D,GAAGA,EAAE,YAAY86B,SAASjjC,EAAEggC,GAAGhgC,EAAEkhC,UAAU4J,SAAS,SAAS3iC,GAAG5D,KAAKwmC,YAAY5iC,GAAG,IAAI03B,EAAEt7B,KAAKmG,KAAKkd,MAAMrjB,KAAKomC,KAAKpmC,KAAKoB,MAAMpB,KAAKomC,KAAKpmC,KAAKoB,MAAMwC,GAAG,OAAO5D,KAAKoB,OAAOwC,EAAE03B,GAAGA,EAAEJ,QAAQz/B,GAAG,CAAC,WAAW,GAAG,qBAAqB,KAAKurC,GAAG,CAAC,SAASpjC,EAAE03B,EAAED,GAAG,aAAa,IAAII,EAAE73B,EAAE,gBAAgB,SAASnI,EAAEmI,GAAG63B,EAAEjW,KAAKxlB,KAAK4D,GAAGA,EAAE,YAAY86B,SAASjjC,EAAEggC,GAAGhgC,EAAEkhC,UAAUwJ,OAAO,SAASviC,GAAG,OAAO5D,KAAKmG,KAAKyqB,WAAW5wB,KAAKomC,KAAKxiC,IAAInI,EAAEkhC,UAAU0J,qBAAqB,SAASziC,GAAG,OAAO5D,KAAKmG,KAAKo/B,YAAY3hC,GAAG5D,KAAKomC,MAAM3qC,EAAEkhC,UAAU2J,sBAAsB,SAAS1iC,GAAG,OAAOA,IAAI5D,KAAKumC,SAAS,IAAI9qC,EAAEkhC,UAAU4J,SAAS,SAAS3iC,GAAG5D,KAAKwmC,YAAY5iC,GAAG,IAAI03B,EAAEt7B,KAAKmG,KAAKkd,MAAMrjB,KAAKomC,KAAKpmC,KAAKoB,MAAMpB,KAAKomC,KAAKpmC,KAAKoB,MAAMwC,GAAG,OAAO5D,KAAKoB,OAAOwC,EAAE03B,GAAGA,EAAEJ,QAAQz/B,GAAG,CAAC,WAAW,GAAG,eAAe,KAAKwrC,GAAG,CAAC,SAASrjC,EAAE03B,EAAED,GAAG,aAAa,IAAII,EAAE73B,EAAE,iBAAiB,SAASnI,EAAEmI,GAAG63B,EAAEjW,KAAKxlB,KAAK4D,GAAGA,EAAE,YAAY86B,SAASjjC,EAAEggC,GAAGhgC,EAAEkhC,UAAU4J,SAAS,SAAS3iC,GAAG,GAAG5D,KAAKwmC,YAAY5iC,GAAG,IAAIA,EAAE,OAAO,IAAIw4B,WAAW,GAAG,IAAId,EAAEt7B,KAAKmG,KAAK+gC,SAASlnC,KAAKomC,KAAKpmC,KAAKoB,MAAMpB,KAAKomC,KAAKpmC,KAAKoB,MAAMwC,GAAG,OAAO5D,KAAKoB,OAAOwC,EAAE03B,GAAGA,EAAEJ,QAAQz/B,GAAG,CAAC,WAAW,GAAG,gBAAgB,KAAK0rC,GAAG,CAAC,SAASvjC,EAAE03B,EAAED,GAAG,aAAa,IAAII,EAAE73B,EAAE,YAAYnI,EAAEmI,EAAE,cAAc0e,EAAE1e,EAAE,iBAAiB7B,EAAE6B,EAAE,kBAAkBu3B,EAAEv3B,EAAE,sBAAsBwe,EAAExe,EAAE,sBAAsB03B,EAAEJ,QAAQ,SAASt3B,GAAG,IAAI03B,EAAEG,EAAEO,UAAUp4B,GAAG,OAAO63B,EAAEmK,aAAatK,GAAG,WAAWA,GAAG7/B,EAAE0gC,WAAW,eAAeb,EAAE,IAAIH,EAAEv3B,GAAGnI,EAAE0gC,WAAW,IAAI/Z,EAAEqZ,EAAEoD,YAAY,aAAaj7B,IAAI,IAAI0e,EAAEmZ,EAAEoD,YAAY,QAAQj7B,IAAI,IAAI7B,EAAE6B,KAAK,CAAC,aAAa,GAAG,WAAW,GAAG,gBAAgB,GAAG,qBAAqB,GAAG,iBAAiB,GAAG,qBAAqB,KAAKwjC,GAAG,CAAC,SAASxjC,EAAE03B,EAAED,GAAG,aAAaA,EAAEmF,kBAAkB,OAAOnF,EAAEqF,oBAAoB,OAAOrF,EAAEuG,sBAAsB,OAAOvG,EAAEgM,gCAAgC,OAAOhM,EAAEiM,4BAA4B,OAAOjM,EAAEqG,gBAAgB,SAAS,IAAI6F,GAAG,CAAC,SAAS3jC,EAAE03B,EAAED,GAAG,aAAa,IAAII,EAAE73B,EAAE,mBAAmBnI,EAAEmI,EAAE,YAAY,SAAS0e,EAAE1e,GAAG63B,EAAEjW,KAAKxlB,KAAK,oBAAoB4D,GAAG5D,KAAKwnC,SAAS5jC,EAAEnI,EAAEijC,SAASpc,EAAEmZ,GAAGnZ,EAAEqa,UAAUgC,aAAa,SAAS/6B,GAAG5D,KAAKiD,KAAK,CAACkD,KAAK1K,EAAEojC,YAAY7+B,KAAKwnC,SAAS5jC,EAAEuC,MAAMs4B,KAAK76B,EAAE66B,QAAQnD,EAAEJ,QAAQ5Y,GAAG,CAAC,WAAW,GAAG,kBAAkB,KAAKmlB,GAAG,CAAC,SAAS7jC,EAAE03B,EAAED,GAAG,aAAa,IAAII,EAAE73B,EAAE,mBAAmBnI,EAAEmI,EAAE,YAAY,SAAS0e,IAAImZ,EAAEjW,KAAKxlB,KAAK,cAAcA,KAAKm9B,eAAe,QAAQ,GAAGv5B,EAAE,YAAY86B,SAASpc,EAAEmZ,GAAGnZ,EAAEqa,UAAUgC,aAAa,SAAS/6B,GAAG5D,KAAKg9B,WAAWR,MAAM/gC,EAAEmI,EAAEuC,KAAKnG,KAAKg9B,WAAWR,OAAO,GAAGx8B,KAAKiD,KAAKW,IAAI03B,EAAEJ,QAAQ5Y,GAAG,CAAC,WAAW,EAAE,WAAW,GAAG,kBAAkB,KAAKolB,GAAG,CAAC,SAAS9jC,EAAE03B,EAAED,GAAG,aAAa,IAAII,EAAE73B,EAAE,YAAYnI,EAAEmI,EAAE,mBAAmB,SAAS0e,EAAE1e,GAAGnI,EAAE+pB,KAAKxlB,KAAK,uBAAuB4D,GAAG5D,KAAK2nC,SAAS/jC,EAAE5D,KAAKm9B,eAAev5B,EAAE,GAAG63B,EAAEiD,SAASpc,EAAE7mB,GAAG6mB,EAAEqa,UAAUgC,aAAa,SAAS/6B,GAAG,GAAGA,EAAE,CAAC,IAAI03B,EAAEt7B,KAAKg9B,WAAWh9B,KAAK2nC,WAAW,EAAE3nC,KAAKg9B,WAAWh9B,KAAK2nC,UAAUrM,EAAE13B,EAAEuC,KAAKvM,OAAO6B,EAAEkhC,UAAUgC,aAAanZ,KAAKxlB,KAAK4D,IAAI03B,EAAEJ,QAAQ5Y,GAAG,CAAC,WAAW,GAAG,kBAAkB,KAAKslB,GAAG,CAAC,SAAShkC,EAAE03B,EAAED,GAAG,aAAa,IAAII,EAAE73B,EAAE,YAAYnI,EAAEmI,EAAE,mBAAmB,SAAS0e,EAAE1e,GAAGnI,EAAE+pB,KAAKxlB,KAAK,cAAc,IAAIs7B,EAAEt7B,KAAKA,KAAK6nC,aAAY,EAAG7nC,KAAKoB,MAAM,EAAEpB,KAAKgyB,IAAI,EAAEhyB,KAAKmG,KAAK,KAAKnG,KAAKvB,KAAK,GAAGuB,KAAK8nC,gBAAe,EAAGlkC,EAAE0N,MAAK,SAAS1N,GAAG03B,EAAEuM,aAAY,EAAGvM,EAAEn1B,KAAKvC,EAAE03B,EAAEtJ,IAAIpuB,GAAGA,EAAEhK,QAAQ,EAAE0hC,EAAE78B,KAAKg9B,EAAEO,UAAUp4B,GAAG03B,EAAEyG,UAAUzG,EAAEyM,oBAAkB,SAASnkC,GAAG03B,EAAE8G,MAAMx+B,MAAK63B,EAAEiD,SAASpc,EAAE7mB,GAAG6mB,EAAEqa,UAAUoC,QAAQ,WAAWtjC,EAAEkhC,UAAUoC,QAAQvZ,KAAKxlB,MAAMA,KAAKmG,KAAK,MAAMmc,EAAEqa,UAAUsF,OAAO,WAAW,QAAQxmC,EAAEkhC,UAAUsF,OAAOzc,KAAKxlB,SAASA,KAAK8nC,gBAAgB9nC,KAAK6nC,cAAc7nC,KAAK8nC,gBAAe,EAAGrM,EAAEuM,MAAMhoC,KAAK+nC,eAAe,GAAG/nC,QAAO,IAAKsiB,EAAEqa,UAAUoL,eAAe,WAAW/nC,KAAK8nC,gBAAe,EAAG9nC,KAAK+hC,UAAU/hC,KAAKioC,aAAajoC,KAAKkoC,QAAQloC,KAAKioC,aAAaxM,EAAEuM,MAAMhoC,KAAK+nC,eAAe,GAAG/nC,MAAMA,KAAK8nC,gBAAe,KAAMxlB,EAAEqa,UAAUuL,MAAM,WAAW,GAAGloC,KAAK+hC,UAAU/hC,KAAKioC,WAAW,OAAM,EAAG,IAAIrkC,EAAE,KAAK03B,EAAE3Z,KAAKC,IAAI5hB,KAAKgyB,IAAIhyB,KAAKoB,MAAM,OAAO,GAAGpB,KAAKoB,OAAOpB,KAAKgyB,IAAI,OAAOhyB,KAAKmiC,MAAM,OAAOniC,KAAKvB,MAAM,IAAI,SAASmF,EAAE5D,KAAKmG,KAAKm/B,UAAUtlC,KAAKoB,MAAMk6B,GAAG,MAAM,IAAI,aAAa13B,EAAE5D,KAAKmG,KAAK+gC,SAASlnC,KAAKoB,MAAMk6B,GAAG,MAAM,IAAI,QAAQ,IAAI,aAAa13B,EAAE5D,KAAKmG,KAAKkd,MAAMrjB,KAAKoB,MAAMk6B,GAAG,OAAOt7B,KAAKoB,MAAMk6B,EAAEt7B,KAAKiD,KAAK,CAACkD,KAAKvC,EAAE66B,KAAK,CAAC8C,QAAQvhC,KAAKgyB,IAAIhyB,KAAKoB,MAAMpB,KAAKgyB,IAAI,IAAI,MAAMsJ,EAAEJ,QAAQ5Y,GAAG,CAAC,WAAW,GAAG,kBAAkB,KAAK6lB,GAAG,CAAC,SAASvkC,EAAE03B,EAAED,GAAG,aAAa,SAASI,EAAE73B,GAAG5D,KAAK4B,KAAKgC,GAAG,UAAU5D,KAAKg9B,WAAW,GAAGh9B,KAAKqiC,eAAe,KAAKriC,KAAKooC,gBAAgB,GAAGpoC,KAAK+hC,UAAS,EAAG/hC,KAAKioC,YAAW,EAAGjoC,KAAKqoC,UAAS,EAAGroC,KAAKsoC,WAAW,CAACniC,KAAK,GAAGg8B,IAAI,GAAGC,MAAM,IAAIpiC,KAAK8hC,SAAS,KAAKrG,EAAEkB,UAAU,CAAC15B,KAAK,SAASW,GAAG5D,KAAK0kC,KAAK,OAAO9gC,IAAIu+B,IAAI,WAAW,GAAGniC,KAAKioC,WAAW,OAAM,EAAGjoC,KAAK8+B,QAAQ,IAAI9+B,KAAK0kC,KAAK,OAAO1kC,KAAK++B,UAAU/+B,KAAKioC,YAAW,EAAG,MAAMrkC,GAAG5D,KAAK0kC,KAAK,QAAQ9gC,GAAG,OAAM,GAAIw+B,MAAM,SAASx+B,GAAG,OAAO5D,KAAKioC,aAAajoC,KAAK+hC,SAAS/hC,KAAKqiC,eAAez+B,GAAG5D,KAAKioC,YAAW,EAAGjoC,KAAK0kC,KAAK,QAAQ9gC,GAAG5D,KAAK8hC,UAAU9hC,KAAK8hC,SAASM,MAAMx+B,GAAG5D,KAAK++B,YAAW,IAAK15B,GAAG,SAASzB,EAAE03B,GAAG,OAAOt7B,KAAKsoC,WAAW1kC,GAAGX,KAAKq4B,GAAGt7B,MAAM++B,QAAQ,WAAW/+B,KAAKg9B,WAAWh9B,KAAKqiC,eAAeriC,KAAKooC,gBAAgB,KAAKpoC,KAAKsoC,WAAW,IAAI5D,KAAK,SAAS9gC,EAAE03B,GAAG,GAAGt7B,KAAKsoC,WAAW1kC,GAAG,IAAI,IAAIy3B,EAAE,EAAEA,EAAEr7B,KAAKsoC,WAAW1kC,GAAGhK,OAAOyhC,IAAIr7B,KAAKsoC,WAAW1kC,GAAGy3B,GAAG7V,KAAKxlB,KAAKs7B,IAAIwB,KAAK,SAASl5B,GAAG,OAAOA,EAAEs+B,iBAAiBliC,OAAOkiC,iBAAiB,SAASt+B,GAAG,GAAG5D,KAAKqoC,SAAS,MAAM,IAAI3M,MAAM,eAAe17B,KAAK,4BAA4BA,KAAKg9B,WAAWp5B,EAAEo5B,WAAWh9B,KAAKuoC,kBAAkBvoC,KAAK8hC,SAASl+B,EAAE,IAAI03B,EAAEt7B,KAAK,OAAO4D,EAAEyB,GAAG,QAAO,SAASzB,GAAG03B,EAAEqD,aAAa/6B,MAAKA,EAAEyB,GAAG,OAAM,WAAWi2B,EAAE6G,SAAQv+B,EAAEyB,GAAG,SAAQ,SAASzB,GAAG03B,EAAE8G,MAAMx+B,MAAK5D,MAAMgiC,MAAM,WAAW,OAAOhiC,KAAK+hC,WAAW/hC,KAAKioC,aAAajoC,KAAK+hC,UAAS,EAAG/hC,KAAK8hC,UAAU9hC,KAAK8hC,SAASE,SAAQ,IAAKC,OAAO,WAAW,IAAIjiC,KAAK+hC,UAAU/hC,KAAKioC,WAAW,OAAM,EAAG,IAAIrkC,EAAE5D,KAAK+hC,UAAS,EAAG,OAAO/hC,KAAKqiC,iBAAiBriC,KAAKoiC,MAAMpiC,KAAKqiC,gBAAgBz+B,GAAE,GAAI5D,KAAK8hC,UAAU9hC,KAAK8hC,SAASG,UAAUr+B,GAAGk7B,MAAM,aAAaH,aAAa,SAAS/6B,GAAG5D,KAAKiD,KAAKW,IAAIu5B,eAAe,SAASv5B,EAAE03B,GAAG,OAAOt7B,KAAKooC,gBAAgBxkC,GAAG03B,EAAEt7B,KAAKuoC,kBAAkBvoC,MAAMuoC,gBAAgB,WAAW,IAAI,IAAI3kC,KAAK5D,KAAKooC,gBAAgB5qC,OAAOm/B,UAAU6L,eAAehjB,KAAKxlB,KAAKooC,gBAAgBxkC,KAAK5D,KAAKg9B,WAAWp5B,GAAG5D,KAAKooC,gBAAgBxkC,KAAK0+B,KAAK,WAAW,GAAGtiC,KAAKqoC,SAAS,MAAM,IAAI3M,MAAM,eAAe17B,KAAK,4BAA4BA,KAAKqoC,UAAS,EAAGroC,KAAK8hC,UAAU9hC,KAAK8hC,SAASQ,QAAQ7gB,SAAS,WAAW,IAAI7d,EAAE,UAAU5D,KAAK4B,KAAK,OAAO5B,KAAK8hC,SAAS9hC,KAAK8hC,SAAS,OAAOl+B,EAAEA,IAAI03B,EAAEJ,QAAQO,GAAG,IAAIgN,GAAG,CAAC,SAAS7kC,EAAE03B,EAAED,GAAG,aAAa,IAAIjZ,EAAExe,EAAE,YAAYnI,EAAEmI,EAAE,mBAAmB0e,EAAE1e,EAAE,mBAAmBw3B,EAAEx3B,EAAE,aAAa63B,EAAE73B,EAAE,cAAc7B,EAAE6B,EAAE,eAAeu3B,EAAE,KAAK,GAAGM,EAAEiN,WAAW,IAAIvN,EAAEv3B,EAAE,uCAAuC,MAAMA,IAAI,SAAS43B,EAAE53B,EAAEu3B,GAAG,OAAO,IAAIp5B,EAAE86B,SAAQ,SAASvB,EAAED,GAAG,IAAII,EAAE,GAAGhgC,EAAEmI,EAAE+kC,cAAcrmB,EAAE1e,EAAEglC,YAAY7mC,EAAE6B,EAAEilC,UAAUjlC,EAAEyB,GAAG,QAAO,SAASzB,EAAE03B,GAAGG,EAAEx4B,KAAKW,GAAGu3B,GAAGA,EAAEG,MAAKj2B,GAAG,SAAQ,SAASzB,GAAG63B,EAAE,GAAGJ,EAAEz3B,MAAKyB,GAAG,OAAM,WAAW,IAAI,IAAIzB,EAAE,SAASA,EAAE03B,EAAED,GAAG,OAAOz3B,GAAG,IAAI,OAAO,OAAOwe,EAAE0mB,QAAQ1mB,EAAEyc,YAAY,cAAcvD,GAAGD,GAAG,IAAI,SAAS,OAAOD,EAAEU,OAAOR,GAAG,QAAQ,OAAOlZ,EAAEyc,YAAYj7B,EAAE03B,IAAvJ,CAA4JhZ,EAAE,SAAS1e,EAAE03B,GAAG,IAAID,EAAEI,EAAE,EAAEhgC,EAAE,KAAK6mB,EAAE,EAAE,IAAI+Y,EAAE,EAAEA,EAAEC,EAAE1hC,OAAOyhC,IAAI/Y,GAAGgZ,EAAED,GAAGzhC,OAAO,OAAOgK,GAAG,IAAI,SAAS,OAAO03B,EAAEt/B,KAAK,IAAI,IAAI,QAAQ,OAAO6C,MAAM89B,UAAU9qB,OAAO/S,MAAM,GAAGw8B,GAAG,IAAI,aAAa,IAAI7/B,EAAE,IAAI2gC,WAAW9Z,GAAG+Y,EAAE,EAAEA,EAAEC,EAAE1hC,OAAOyhC,IAAI5/B,EAAE6S,IAAIgtB,EAAED,GAAGI,GAAGA,GAAGH,EAAED,GAAGzhC,OAAO,OAAO6B,EAAE,IAAI,aAAa,OAAOopC,EAAOhzB,OAAOypB,GAAG,QAAQ,MAAM,IAAII,MAAM,8BAA8B93B,EAAE,MAA3W,CAAkXnI,EAAEggC,GAAG15B,GAAGu5B,EAAE13B,GAAG,MAAMA,GAAGy3B,EAAEz3B,GAAG63B,EAAE,MAAKwG,YAAW,SAASlG,EAAEn4B,EAAE03B,EAAED,GAAG,IAAII,EAAEH,EAAE,OAAOA,GAAG,IAAI,OAAO,IAAI,cAAcG,EAAE,aAAa,MAAM,IAAI,SAASA,EAAE,SAAS,IAAIz7B,KAAK2oC,cAAclN,EAAEz7B,KAAK4oC,YAAYtN,EAAEt7B,KAAK6oC,UAAUxN,EAAEjZ,EAAEwjB,aAAanK,GAAGz7B,KAAK+oC,QAAQnlC,EAAEk5B,KAAK,IAAIrhC,EAAEggC,IAAI73B,EAAE0+B,OAAO,MAAM1+B,GAAG5D,KAAK+oC,QAAQ,IAAIzmB,EAAE,SAAStiB,KAAK+oC,QAAQ3G,MAAMx+B,IAAIm4B,EAAEY,UAAU,CAACqE,WAAW,SAASp9B,GAAG,OAAO43B,EAAEx7B,KAAK4D,IAAIyB,GAAG,SAASzB,EAAE03B,GAAG,IAAID,EAAEr7B,KAAK,MAAM,SAAS4D,EAAE5D,KAAK+oC,QAAQ1jC,GAAGzB,GAAE,SAASA,GAAG03B,EAAE9V,KAAK6V,EAAEz3B,EAAEuC,KAAKvC,EAAE66B,SAAQz+B,KAAK+oC,QAAQ1jC,GAAGzB,GAAE,WAAWwe,EAAE4lB,MAAM1M,EAAEp7B,UAAUm7B,MAAKr7B,MAAMiiC,OAAO,WAAW,OAAO7f,EAAE4lB,MAAMhoC,KAAK+oC,QAAQ9G,OAAO,GAAGjiC,KAAK+oC,SAAS/oC,MAAMgiC,MAAM,WAAW,OAAOhiC,KAAK+oC,QAAQ/G,QAAQhiC,MAAM+lC,eAAe,SAASniC,GAAG,GAAGwe,EAAEwjB,aAAa,cAAc,eAAe5lC,KAAK4oC,YAAY,MAAM,IAAIlN,MAAM17B,KAAK4oC,YAAY,oCAAoC,OAAO,IAAIzN,EAAEn7B,KAAK,CAACgpC,WAAW,eAAehpC,KAAK4oC,aAAahlC,KAAK03B,EAAEJ,QAAQa,GAAG,CAAC,YAAY,EAAE,cAAc,EAAE,sCAAsC,GAAG,aAAa,GAAG,WAAW,GAAG,kBAAkB,GAAG,kBAAkB,KAAKkN,GAAG,CAAC,SAASrlC,EAAE03B,EAAED,GAAG,aAAa,GAAGA,EAAEoC,QAAO,EAAGpC,EAAExE,OAAM,EAAGwE,EAAE6N,QAAO,EAAG7N,EAAE8N,YAAY,oBAAoBC,aAAa,oBAAoBhN,WAAWf,EAAEgO,WAAW,oBAAoBxE,EAAOxJ,EAAEc,WAAW,oBAAoBC,WAAW,oBAAoBgN,YAAY/N,EAAEiO,MAAK,MAAO,CAAC,IAAI7N,EAAE,IAAI2N,YAAY,GAAG,IAAI/N,EAAEiO,KAAK,IAAI,IAAI52B,KAAK,CAAC+oB,GAAG,CAACh9B,KAAK,oBAAoBsT,KAAK,MAAMnO,GAAG,IAAI,IAAInI,EAAE,IAAI8tC,KAAKC,aAAaD,KAAKE,mBAAmBF,KAAKG,gBAAgBH,KAAKI,eAAeluC,EAAEmuC,OAAOnO,GAAGJ,EAAEiO,KAAK,IAAI7tC,EAAEouC,QAAQ,mBAAmB93B,KAAK,MAAMnO,GAAGy3B,EAAEiO,MAAK,IAAK,IAAIjO,EAAEqN,aAAa9kC,EAAE,mBAAmB4gC,SAAS,MAAM5gC,GAAGy3B,EAAEqN,YAAW,IAAK,CAAC,kBAAkB,KAAKoB,GAAG,CAAC,SAASlmC,EAAE03B,EAAEhZ,GAAG,aAAa,IAAI,IAAI6Y,EAAEv3B,EAAE,WAAWwe,EAAExe,EAAE,aAAay3B,EAAEz3B,EAAE,iBAAiB63B,EAAE73B,EAAE,0BAA0Bw3B,EAAE,IAAIv8B,MAAM,KAAKpD,EAAE,EAAEA,EAAE,IAAIA,IAAI2/B,EAAE3/B,GAAG,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,EAAkB,SAASsG,IAAI05B,EAAEjW,KAAKxlB,KAAK,gBAAgBA,KAAK+pC,SAAS,KAAK,SAASvO,IAAIC,EAAEjW,KAAKxlB,KAAK,gBAArGo7B,EAAE,KAAKA,EAAE,KAAK,EAAuG9Y,EAAEkd,WAAW,SAAS57B,GAAG,OAAOwe,EAAEinB,WAAWhO,EAAEyJ,cAAclhC,EAAE,SAAS,SAASA,GAAG,IAAI03B,EAAED,EAAEI,EAAEhgC,EAAE6mB,EAAEvgB,EAAE6B,EAAEhK,OAAOuhC,EAAE,EAAE,IAAI1/B,EAAE,EAAEA,EAAEsG,EAAEtG,IAAI,QAAQ,OAAO4/B,EAAEz3B,EAAEgtB,WAAWn1B,MAAMA,EAAE,EAAEsG,GAAG,QAAQ,OAAO05B,EAAE73B,EAAEgtB,WAAWn1B,EAAE,OAAO4/B,EAAE,OAAOA,EAAE,OAAO,KAAKI,EAAE,OAAOhgC,KAAK0/B,GAAGE,EAAE,IAAI,EAAEA,EAAE,KAAK,EAAEA,EAAE,MAAM,EAAE,EAAE,IAAIC,EAAElZ,EAAE+Z,WAAW,IAAIC,WAAWjB,GAAG,IAAIt8B,MAAMs8B,GAAG1/B,EAAE6mB,EAAE,EAAEA,EAAE6Y,EAAE1/B,IAAI,QAAQ,OAAO4/B,EAAEz3B,EAAEgtB,WAAWn1B,MAAMA,EAAE,EAAEsG,GAAG,QAAQ,OAAO05B,EAAE73B,EAAEgtB,WAAWn1B,EAAE,OAAO4/B,EAAE,OAAOA,EAAE,OAAO,KAAKI,EAAE,OAAOhgC,KAAK4/B,EAAE,IAAIC,EAAEhZ,KAAK+Y,GAAGA,EAAE,KAAKC,EAAEhZ,KAAK,IAAI+Y,IAAI,GAAGA,EAAE,MAAMC,EAAEhZ,KAAK,IAAI+Y,IAAI,IAAIC,EAAEhZ,KAAK,IAAI+Y,IAAI,GAAGC,EAAEhZ,KAAK,IAAI+Y,IAAI,GAAG,IAAIC,EAAEhZ,KAAK,IAAI+Y,IAAI,EAAE,IAAIC,EAAEhZ,KAAK,IAAI,GAAG+Y,GAAG,OAAOC,EAAhiB,CAAmiB13B,IAAI0e,EAAEohB,WAAW,SAAS9/B,GAAG,OAAOwe,EAAEinB,WAAWlO,EAAE0D,YAAY,aAAaj7B,GAAG6d,SAAS,SAAS,SAAS7d,GAAG,IAAI03B,EAAED,EAAEI,EAAEhgC,EAAE6mB,EAAE1e,EAAEhK,OAAOmI,EAAE,IAAIlD,MAAM,EAAEyjB,GAAG,IAAIgZ,EAAED,EAAE,EAAEC,EAAEhZ,GAAG,IAAImZ,EAAE73B,EAAE03B,MAAM,IAAIv5B,EAAEs5B,KAAKI,OAAO,GAAG,GAAGhgC,EAAE2/B,EAAEK,IAAI15B,EAAEs5B,KAAK,MAAMC,GAAG7/B,EAAE,MAAM,CAAC,IAAIggC,GAAG,IAAIhgC,EAAE,GAAG,IAAIA,EAAE,GAAG,EAAE,EAAEA,GAAG6/B,EAAEhZ,GAAGmZ,EAAEA,GAAG,EAAE,GAAG73B,EAAE03B,KAAK7/B,IAAI,EAAEA,EAAEsG,EAAEs5B,KAAK,MAAMI,EAAE,MAAM15B,EAAEs5B,KAAKI,GAAGA,GAAG,MAAM15B,EAAEs5B,KAAK,MAAMI,GAAG,GAAG,KAAK15B,EAAEs5B,KAAK,MAAM,KAAKI,GAAG,OAAO15B,EAAEnI,SAASyhC,IAAIt5B,EAAEmlC,SAASnlC,EAAEA,EAAEmlC,SAAS,EAAE7L,GAAGt5B,EAAEnI,OAAOyhC,GAAGF,EAAE6O,kBAAkBjoC,GAAhX,CAAoX6B,EAAEu3B,EAAE0D,YAAYzc,EAAE+Z,WAAW,aAAa,QAAQv4B,KAAKu3B,EAAEuD,SAAS38B,EAAE05B,GAAG15B,EAAE46B,UAAUgC,aAAa,SAAS/6B,GAAG,IAAI03B,EAAEH,EAAE0D,YAAYzc,EAAE+Z,WAAW,aAAa,QAAQv4B,EAAEuC,MAAM,GAAGnG,KAAK+pC,UAAU/pC,KAAK+pC,SAASnwC,OAAO,CAAC,GAAGwoB,EAAE+Z,WAAW,CAAC,IAAId,EAAEC,GAAGA,EAAE,IAAIc,WAAWf,EAAEzhC,OAAOoG,KAAK+pC,SAASnwC,SAAS0U,IAAItO,KAAK+pC,SAAS,GAAGzO,EAAEhtB,IAAI+sB,EAAEr7B,KAAK+pC,SAASnwC,aAAa0hC,EAAEt7B,KAAK+pC,SAASl4B,OAAOypB,GAAGt7B,KAAK+pC,SAAS,KAAK,IAAItO,EAAE,SAAS73B,EAAE03B,GAAG,IAAID,EAAE,KAAKC,EAAEA,GAAG13B,EAAEhK,QAAQgK,EAAEhK,SAAS0hC,EAAE13B,EAAEhK,QAAQyhC,EAAEC,EAAE,EAAE,GAAGD,GAAG,MAAM,IAAIz3B,EAAEy3B,KAAKA,IAAI,OAAOA,EAAE,GAAI,IAAIA,EAANC,EAAUD,EAAED,EAAEx3B,EAAEy3B,IAAIC,EAAED,EAAEC,EAAnI,CAAsIA,GAAG7/B,EAAE6/B,EAAEG,IAAIH,EAAE1hC,SAASwoB,EAAE+Z,YAAY1gC,EAAE6/B,EAAE4L,SAAS,EAAEzL,GAAGz7B,KAAK+pC,SAASzO,EAAE4L,SAASzL,EAAEH,EAAE1hC,UAAU6B,EAAE6/B,EAAEjY,MAAM,EAAEoY,GAAGz7B,KAAK+pC,SAASzO,EAAEjY,MAAMoY,EAAEH,EAAE1hC,UAAUoG,KAAKiD,KAAK,CAACkD,KAAKmc,EAAEohB,WAAWjoC,GAAGgjC,KAAK76B,EAAE66B,QAAQ18B,EAAE46B,UAAUmC,MAAM,WAAW9+B,KAAK+pC,UAAU/pC,KAAK+pC,SAASnwC,SAASoG,KAAKiD,KAAK,CAACkD,KAAKmc,EAAEohB,WAAW1jC,KAAK+pC,UAAUtL,KAAK,KAAKz+B,KAAK+pC,SAAS,OAAOznB,EAAE2nB,iBAAiBloC,EAAEo5B,EAAEuD,SAASlD,EAAEC,GAAGD,EAAEmB,UAAUgC,aAAa,SAAS/6B,GAAG5D,KAAKiD,KAAK,CAACkD,KAAKmc,EAAEkd,WAAW57B,EAAEuC,MAAMs4B,KAAK76B,EAAE66B,QAAQnc,EAAE4nB,iBAAiB1O,GAAG,CAAC,gBAAgB,GAAG,yBAAyB,GAAG,YAAY,GAAG,UAAU,KAAK2O,GAAG,CAAC,SAASvmC,EAAE03B,EAAEv5B,GAAG,aAAa,IAAIo5B,EAAEv3B,EAAE,aAAawe,EAAExe,EAAE,YAAYy3B,EAAEz3B,EAAE,iBAAiBw3B,EAAEx3B,EAAE,cAAc,SAAS63B,EAAE73B,GAAG,OAAOA,EAAE,SAAS43B,EAAE53B,EAAE03B,GAAG,IAAI,IAAID,EAAE,EAAEA,EAAEz3B,EAAEhK,SAASyhC,EAAEC,EAAED,GAAG,IAAIz3B,EAAEgtB,WAAWyK,GAAG,OAAOC,EAAE13B,EAAE,gBAAgB7B,EAAE+mC,QAAQ,SAASxN,EAAED,GAAGt5B,EAAE6jC,aAAa,QAAQ,IAAI,OAAO,IAAIlzB,KAAK,CAAC4oB,GAAG,CAAC78B,KAAK48B,IAAI,MAAMz3B,GAAG,IAAI,IAAI63B,EAAE,IAAI8N,KAAKC,aAAaD,KAAKE,mBAAmBF,KAAKG,gBAAgBH,KAAKI,eAAe,OAAOlO,EAAEmO,OAAOtO,GAAGG,EAAEoO,QAAQxO,GAAG,MAAMz3B,GAAG,MAAM,IAAI83B,MAAM,sCAAsC,IAAIjgC,EAAE,CAAC2uC,iBAAiB,SAASxmC,EAAE03B,EAAED,GAAG,IAAII,EAAE,GAAGhgC,EAAE,EAAE6mB,EAAE1e,EAAEhK,OAAO,GAAG0oB,GAAG+Y,EAAE,OAAO1hC,OAAO0lC,aAAavgC,MAAM,KAAK8E,GAAG,KAAKnI,EAAE6mB,GAAG,UAAUgZ,GAAG,eAAeA,EAAEG,EAAEx4B,KAAKtJ,OAAO0lC,aAAavgC,MAAM,KAAK8E,EAAEyf,MAAM5nB,EAAEkmB,KAAKC,IAAInmB,EAAE4/B,EAAE/Y,MAAMmZ,EAAEx4B,KAAKtJ,OAAO0lC,aAAavgC,MAAM,KAAK8E,EAAEsjC,SAASzrC,EAAEkmB,KAAKC,IAAInmB,EAAE4/B,EAAE/Y,MAAM7mB,GAAG4/B,EAAE,OAAOI,EAAEz/B,KAAK,KAAKquC,gBAAgB,SAASzmC,GAAG,IAAI,IAAI03B,EAAE,GAAGD,EAAE,EAAEA,EAAEz3B,EAAEhK,OAAOyhC,IAAIC,GAAG3hC,OAAO0lC,aAAaz7B,EAAEy3B,IAAI,OAAOC,GAAGgP,eAAe,CAACnO,WAAW,WAAW,IAAI,OAAOhB,EAAEgB,YAAY,IAAIxiC,OAAO0lC,aAAavgC,MAAM,KAAK,IAAIs9B,WAAW,IAAIxiC,OAAO,MAAMgK,GAAG,OAAM,GAAhH,GAAuHylC,WAAW,WAAW,IAAI,OAAOlO,EAAEkO,YAAY,IAAI1vC,OAAO0lC,aAAavgC,MAAM,KAAKu8B,EAAE2J,YAAY,IAAIprC,OAAO,MAAMgK,GAAG,OAAM,GAA/G,KAAwH,SAAS0e,EAAE1e,GAAG,IAAI03B,EAAE,MAAMD,EAAEt5B,EAAEi6B,UAAUp4B,GAAG63B,GAAE,EAAG,GAAG,eAAeJ,EAAEI,EAAEhgC,EAAE6uC,eAAenO,WAAW,eAAed,IAAII,EAAEhgC,EAAE6uC,eAAejB,YAAY5N,EAAE,KAAK,EAAEH,GAAG,IAAI,OAAO7/B,EAAE2uC,iBAAiBxmC,EAAEy3B,EAAEC,GAAG,MAAM13B,GAAG03B,EAAE3Z,KAAKI,MAAMuZ,EAAE,GAAG,OAAO7/B,EAAE4uC,gBAAgBzmC,GAAG,SAASm4B,EAAEn4B,EAAE03B,GAAG,IAAI,IAAID,EAAE,EAAEA,EAAEz3B,EAAEhK,OAAOyhC,IAAIC,EAAED,GAAGz3B,EAAEy3B,GAAG,OAAOC,EAAEv5B,EAAEioC,kBAAkB1nB,EAAE,IAAIsZ,EAAE,GAAGA,EAAEsN,OAAO,CAACA,OAAOzN,EAAE5E,MAAM,SAASjzB,GAAG,OAAO43B,EAAE53B,EAAE,IAAI/E,MAAM+E,EAAEhK,UAAUuvC,YAAY,SAASvlC,GAAG,OAAOg4B,EAAEsN,OAAO/M,WAAWv4B,GAAG4O,QAAQ2pB,WAAW,SAASv4B,GAAG,OAAO43B,EAAE53B,EAAE,IAAIw4B,WAAWx4B,EAAEhK,UAAUyvC,WAAW,SAASzlC,GAAG,OAAO43B,EAAE53B,EAAEy3B,EAAE2J,YAAYphC,EAAEhK,WAAWgiC,EAAE/E,MAAM,CAACqS,OAAO5mB,EAAEuU,MAAM4E,EAAE0N,YAAY,SAASvlC,GAAG,OAAO,IAAIw4B,WAAWx4B,GAAG4O,QAAQ2pB,WAAW,SAASv4B,GAAG,OAAO,IAAIw4B,WAAWx4B,IAAIylC,WAAW,SAASzlC,GAAG,OAAOy3B,EAAEyJ,cAAclhC,KAAKg4B,EAAEuN,YAAY,CAACD,OAAO,SAAStlC,GAAG,OAAO0e,EAAE,IAAI8Z,WAAWx4B,KAAKizB,MAAM,SAASjzB,GAAG,OAAOm4B,EAAE,IAAIK,WAAWx4B,GAAG,IAAI/E,MAAM+E,EAAE2mC,cAAcpB,YAAY1N,EAAEU,WAAW,SAASv4B,GAAG,OAAO,IAAIw4B,WAAWx4B,IAAIylC,WAAW,SAASzlC,GAAG,OAAOy3B,EAAEyJ,cAAc,IAAI1I,WAAWx4B,MAAMg4B,EAAEO,WAAW,CAAC+M,OAAO5mB,EAAEuU,MAAM,SAASjzB,GAAG,OAAOm4B,EAAEn4B,EAAE,IAAI/E,MAAM+E,EAAEhK,UAAUuvC,YAAY,SAASvlC,GAAG,OAAOA,EAAE4O,QAAQ2pB,WAAWV,EAAE4N,WAAW,SAASzlC,GAAG,OAAOy3B,EAAEyJ,cAAclhC,KAAKg4B,EAAEyN,WAAW,CAACH,OAAO5mB,EAAEuU,MAAM,SAASjzB,GAAG,OAAOm4B,EAAEn4B,EAAE,IAAI/E,MAAM+E,EAAEhK,UAAUuvC,YAAY,SAASvlC,GAAG,OAAOg4B,EAAEyN,WAAWlN,WAAWv4B,GAAG4O,QAAQ2pB,WAAW,SAASv4B,GAAG,OAAOm4B,EAAEn4B,EAAE,IAAIw4B,WAAWx4B,EAAEhK,UAAUyvC,WAAW5N,GAAG15B,EAAE88B,YAAY,SAASj7B,EAAE03B,GAAG,GAAGA,EAAEA,GAAG,IAAI13B,EAAE,OAAO03B,EAAEv5B,EAAE6jC,aAAahiC,GAAG,IAAIy3B,EAAEt5B,EAAEi6B,UAAUV,GAAG,OAAOM,EAAEP,GAAGz3B,GAAG03B,IAAIv5B,EAAEytB,QAAQ,SAAS5rB,GAAG,IAAI,IAAI03B,EAAE13B,EAAE/H,MAAM,KAAKw/B,EAAE,GAAGI,EAAE,EAAEA,EAAEH,EAAE1hC,OAAO6hC,IAAI,CAAC,IAAIhgC,EAAE6/B,EAAEG,GAAG,MAAMhgC,GAAG,KAAKA,GAAG,IAAIggC,GAAGA,IAAIH,EAAE1hC,OAAO,IAAI,OAAO6B,EAAE4/B,EAAEpJ,MAAMoJ,EAAEp4B,KAAKxH,IAAI,OAAO4/B,EAAEr/B,KAAK,MAAM+F,EAAEi6B,UAAU,SAASp4B,GAAG,MAAM,iBAAiBA,EAAE,SAAS,mBAAmBpG,OAAOm/B,UAAUlb,SAAS+D,KAAK5hB,GAAG,QAAQu3B,EAAEkO,YAAYhO,EAAE8J,SAASvhC,GAAG,aAAau3B,EAAEgB,YAAYv4B,aAAaw4B,WAAW,aAAajB,EAAEgO,aAAavlC,aAAawlC,YAAY,mBAAc,GAAQrnC,EAAE6jC,aAAa,SAAShiC,GAAG,IAAIu3B,EAAEv3B,EAAE9F,eAAe,MAAM,IAAI49B,MAAM93B,EAAE,uCAAuC7B,EAAEyoC,iBAAiB,MAAMzoC,EAAE0oC,kBAAkB,EAAE1oC,EAAE2oC,OAAO,SAAS9mC,GAAG,IAAI03B,EAAED,EAAEI,EAAE,GAAG,IAAIJ,EAAE,EAAEA,GAAGz3B,GAAG,IAAIhK,OAAOyhC,IAAII,GAAG,QAAQH,EAAE13B,EAAEgtB,WAAWyK,IAAI,GAAG,IAAI,IAAIC,EAAE7Z,SAAS,IAAI4jB,cAAc,OAAO5J,GAAG15B,EAAEimC,MAAM,SAASpkC,EAAE03B,EAAED,GAAGsP,cAAa,WAAW/mC,EAAE9E,MAAMu8B,GAAG,KAAKC,GAAG,QAAOv5B,EAAE28B,SAAS,SAAS96B,EAAE03B,GAAG,SAASD,KAAKA,EAAEsB,UAAUrB,EAAEqB,UAAU/4B,EAAE+4B,UAAU,IAAItB,GAAGt5B,EAAEtH,OAAO,WAAW,IAAImJ,EAAE03B,EAAED,EAAE,GAAG,IAAIz3B,EAAE,EAAEA,EAAE1D,UAAUtG,OAAOgK,IAAI,IAAI03B,KAAKp7B,UAAU0D,GAAGpG,OAAOm/B,UAAU6L,eAAehjB,KAAKtlB,UAAU0D,GAAG03B,SAAI,IAASD,EAAEC,KAAKD,EAAEC,GAAGp7B,UAAU0D,GAAG03B,IAAI,OAAOD,GAAGt5B,EAAE+hC,eAAe,SAASzI,EAAEz3B,EAAE63B,EAAEhgC,EAAE6mB,GAAG,OAAO8Y,EAAEyB,QAAQrN,QAAQ5rB,GAAG0N,MAAK,SAASmqB,GAAG,OAAON,EAAEmO,OAAO7N,aAAa/oB,OAAO,IAAI,CAAC,gBAAgB,iBAAiBpU,QAAQd,OAAOm/B,UAAUlb,SAAS+D,KAAKiW,MAAM,oBAAoBmP,WAAW,IAAIxP,EAAEyB,SAAQ,SAASvB,EAAED,GAAG,IAAIz3B,EAAE,IAAIgnC,WAAWhnC,EAAEinC,OAAO,SAASjnC,GAAG03B,EAAE13B,EAAE0hB,OAAOrmB,SAAS2E,EAAEknC,QAAQ,SAASlnC,GAAGy3B,EAAEz3B,EAAE0hB,OAAO8c,QAAQx+B,EAAEmnC,kBAAkBtP,MAAKA,KAAInqB,MAAK,SAAS1N,GAAG,IAAI03B,EAAEv5B,EAAEi6B,UAAUp4B,GAAG,OAAO03B,GAAG,gBAAgBA,EAAE13B,EAAE7B,EAAE88B,YAAY,aAAaj7B,GAAG,WAAW03B,IAAIhZ,EAAE1e,EAAEwe,EAAE8Z,OAAOt4B,GAAG63B,IAAG,IAAKhgC,IAAImI,EAAE,SAASA,GAAG,OAAO43B,EAAE53B,EAAEu3B,EAAEgB,WAAW,IAAIC,WAAWx4B,EAAEhK,QAAQ,IAAIiF,MAAM+E,EAAEhK,SAAzE,CAAmFgK,KAAKA,GAAGw3B,EAAEyB,QAAQgH,OAAO,IAAInI,MAAM,2BAA2BL,EAAE,oFAAmF,CAAC,WAAW,EAAE,aAAa,EAAE,gBAAgB,GAAG,YAAY,GAAG2P,aAAa,KAAKC,GAAG,CAAC,SAASrnC,EAAE03B,EAAED,GAAG,aAAa,IAAII,EAAE73B,EAAE,sBAAsBnI,EAAEmI,EAAE,WAAW0e,EAAE1e,EAAE,eAAe7B,EAAE6B,EAAE,cAAcu3B,EAAEv3B,EAAE,aAAa,SAASwe,EAAExe,GAAG5D,KAAK4iC,MAAM,GAAG5iC,KAAKuvB,YAAY3rB,EAAEwe,EAAEua,UAAU,CAACuO,eAAe,SAAStnC,GAAG,IAAI5D,KAAKmrC,OAAO7E,sBAAsB1iC,GAAG,CAAC5D,KAAKmrC,OAAO/pC,OAAO,EAAE,IAAIk6B,EAAEt7B,KAAKmrC,OAAOtE,WAAW,GAAG,MAAM,IAAInL,MAAM,+CAA+CjgC,EAAEivC,OAAOpP,GAAG,cAAc7/B,EAAEivC,OAAO9mC,GAAG,OAAOwnC,YAAY,SAASxnC,EAAE03B,GAAG,IAAID,EAAEr7B,KAAKmrC,OAAO/pC,MAAMpB,KAAKmrC,OAAOxE,SAAS/iC,GAAG,IAAI63B,EAAEz7B,KAAKmrC,OAAOtE,WAAW,KAAKvL,EAAE,OAAOt7B,KAAKmrC,OAAOxE,SAAStL,GAAGI,GAAG4P,sBAAsB,WAAWrrC,KAAKsrC,WAAWtrC,KAAKmrC,OAAOvE,QAAQ,GAAG5mC,KAAKurC,wBAAwBvrC,KAAKmrC,OAAOvE,QAAQ,GAAG5mC,KAAKwrC,4BAA4BxrC,KAAKmrC,OAAOvE,QAAQ,GAAG5mC,KAAKyrC,kBAAkBzrC,KAAKmrC,OAAOvE,QAAQ,GAAG5mC,KAAK0rC,eAAe1rC,KAAKmrC,OAAOvE,QAAQ,GAAG5mC,KAAK2rC,iBAAiB3rC,KAAKmrC,OAAOvE,QAAQ,GAAG5mC,KAAK4rC,iBAAiB5rC,KAAKmrC,OAAOvE,QAAQ,GAAG,IAAIhjC,EAAE5D,KAAKmrC,OAAO5E,SAASvmC,KAAK4rC,kBAAkBtQ,EAAEH,EAAEgB,WAAW,aAAa,QAAQd,EAAE5/B,EAAEojC,YAAYvD,EAAE13B,GAAG5D,KAAK4gC,WAAW5gC,KAAKuvB,YAAYkU,eAAepI,IAAIwQ,2BAA2B,WAAW7rC,KAAK8rC,sBAAsB9rC,KAAKmrC,OAAOvE,QAAQ,GAAG5mC,KAAKmrC,OAAOzb,KAAK,GAAG1vB,KAAKsrC,WAAWtrC,KAAKmrC,OAAOvE,QAAQ,GAAG5mC,KAAKurC,wBAAwBvrC,KAAKmrC,OAAOvE,QAAQ,GAAG5mC,KAAKwrC,4BAA4BxrC,KAAKmrC,OAAOvE,QAAQ,GAAG5mC,KAAKyrC,kBAAkBzrC,KAAKmrC,OAAOvE,QAAQ,GAAG5mC,KAAK0rC,eAAe1rC,KAAKmrC,OAAOvE,QAAQ,GAAG5mC,KAAK2rC,iBAAiB3rC,KAAKmrC,OAAOvE,QAAQ,GAAG5mC,KAAK+rC,oBAAoB,GAAG,IAAI,IAAInoC,EAAE03B,EAAED,EAAEI,EAAEz7B,KAAK8rC,sBAAsB,GAAG,EAAErQ,GAAG73B,EAAE5D,KAAKmrC,OAAOvE,QAAQ,GAAGtL,EAAEt7B,KAAKmrC,OAAOvE,QAAQ,GAAGvL,EAAEr7B,KAAKmrC,OAAO5E,SAASjL,GAAGt7B,KAAK+rC,oBAAoBnoC,GAAG,CAAC9U,GAAG8U,EAAEhK,OAAO0hC,EAAEz5B,MAAMw5B,IAAI2Q,kCAAkC,WAAW,GAAGhsC,KAAKisC,6BAA6BjsC,KAAKmrC,OAAOvE,QAAQ,GAAG5mC,KAAKksC,mCAAmClsC,KAAKmrC,OAAOvE,QAAQ,GAAG5mC,KAAKmsC,WAAWnsC,KAAKmrC,OAAOvE,QAAQ,GAAG,EAAE5mC,KAAKmsC,WAAW,MAAM,IAAIzQ,MAAM,wCAAwC0Q,eAAe,WAAW,IAAIxoC,EAAE03B,EAAE,IAAI13B,EAAE,EAAEA,EAAE5D,KAAK4iC,MAAMhpC,OAAOgK,IAAI03B,EAAEt7B,KAAK4iC,MAAMh/B,GAAG5D,KAAKmrC,OAAOxE,SAASrL,EAAE+Q,mBAAmBrsC,KAAKkrC,eAAe5oB,EAAEke,mBAAmBlF,EAAEgR,cAActsC,KAAKmrC,QAAQ7P,EAAEiR,aAAajR,EAAEkR,qBAAqBC,eAAe,WAAW,IAAI7oC,EAAE,IAAI5D,KAAKmrC,OAAOxE,SAAS3mC,KAAK2rC,kBAAkB3rC,KAAKmrC,OAAO7E,sBAAsBhkB,EAAEoe,uBAAuB98B,EAAE,IAAI7B,EAAE,CAAC2qC,MAAM1sC,KAAK0sC,OAAO1sC,KAAKuvB,cAAcod,gBAAgB3sC,KAAKmrC,QAAQnrC,KAAK4iC,MAAM3/B,KAAKW,GAAG,GAAG5D,KAAKyrC,oBAAoBzrC,KAAK4iC,MAAMhpC,QAAQ,IAAIoG,KAAKyrC,mBAAmB,IAAIzrC,KAAK4iC,MAAMhpC,OAAO,MAAM,IAAI8hC,MAAM,kCAAkC17B,KAAKyrC,kBAAkB,gCAAgCzrC,KAAK4iC,MAAMhpC,SAASgzC,iBAAiB,WAAW,IAAIhpC,EAAE5D,KAAKmrC,OAAO9E,qBAAqB/jB,EAAEsf,uBAAuB,GAAGh+B,EAAE,EAAE,MAAM5D,KAAKorC,YAAY,EAAE9oB,EAAEke,mBAAwK,IAAI9E,MAAM,sDAA/J,IAAIA,MAAM,2IAA2M17B,KAAKmrC,OAAOxE,SAAS/iC,GAAG,IAAI03B,EAAE13B,EAAE,GAAG5D,KAAKkrC,eAAe5oB,EAAEsf,uBAAuB5hC,KAAKqrC,wBAAwBrrC,KAAKsrC,aAAa7vC,EAAE+uC,kBAAkBxqC,KAAKurC,0BAA0B9vC,EAAE+uC,kBAAkBxqC,KAAKwrC,8BAA8B/vC,EAAE+uC,kBAAkBxqC,KAAKyrC,oBAAoBhwC,EAAE+uC,kBAAkBxqC,KAAK0rC,iBAAiBjwC,EAAEgvC,kBAAkBzqC,KAAK2rC,mBAAmBlwC,EAAEgvC,iBAAiB,CAAC,GAAGzqC,KAAK0sC,OAAM,GAAI9oC,EAAE5D,KAAKmrC,OAAO9E,qBAAqB/jB,EAAE+kB,kCAAkC,EAAE,MAAM,IAAI3L,MAAM,wEAAwE,GAAG17B,KAAKmrC,OAAOxE,SAAS/iC,GAAG5D,KAAKkrC,eAAe5oB,EAAE+kB,iCAAiCrnC,KAAKgsC,qCAAqChsC,KAAKorC,YAAYprC,KAAKksC,mCAAmC5pB,EAAEglB,+BAA+BtnC,KAAKksC,mCAAmClsC,KAAKmrC,OAAO9E,qBAAqB/jB,EAAEglB,6BAA6BtnC,KAAKksC,mCAAmC,GAAG,MAAM,IAAIxQ,MAAM,gEAAgE17B,KAAKmrC,OAAOxE,SAAS3mC,KAAKksC,oCAAoClsC,KAAKkrC,eAAe5oB,EAAEglB,6BAA6BtnC,KAAK6rC,6BAA6B,IAAIxQ,EAAEr7B,KAAK2rC,iBAAiB3rC,KAAK0rC,eAAe1rC,KAAK0sC,QAAQrR,GAAG,GAAGA,GAAG,GAAGr7B,KAAK8rC,uBAAuB,IAAIrQ,EAAEH,EAAED,EAAE,GAAG,EAAEI,EAAEz7B,KAAKorC,YAAY9P,EAAEhZ,EAAEoe,uBAAuB1gC,KAAKmrC,OAAO/E,KAAK3K,QAAQ,GAAGA,EAAE,EAAE,MAAM,IAAIC,MAAM,0BAA0B/Z,KAAKiB,IAAI6Y,GAAG,YAAYoR,cAAc,SAASjpC,GAAG5D,KAAKmrC,OAAO1P,EAAE73B,IAAI0rB,KAAK,SAAS1rB,GAAG5D,KAAK6sC,cAAcjpC,GAAG5D,KAAK4sC,mBAAmB5sC,KAAKysC,iBAAiBzsC,KAAKosC,mBAAmB9Q,EAAEJ,QAAQ9Y,GAAG,CAAC,qBAAqB,GAAG,cAAc,GAAG,YAAY,GAAG,UAAU,GAAG,aAAa,KAAK0qB,GAAG,CAAC,SAASlpC,EAAE03B,EAAED,GAAG,aAAa,IAAII,EAAE73B,EAAE,sBAAsB0e,EAAE1e,EAAE,WAAWnI,EAAEmI,EAAE,sBAAsB7B,EAAE6B,EAAE,WAAWu3B,EAAEv3B,EAAE,UAAUwe,EAAExe,EAAE,kBAAkBw3B,EAAEx3B,EAAE,aAAa,SAAS43B,EAAE53B,EAAE03B,GAAGt7B,KAAKgR,QAAQpN,EAAE5D,KAAKuvB,YAAY+L,EAAEE,EAAEmB,UAAU,CAACoQ,YAAY,WAAW,OAAO,IAAI,EAAE/sC,KAAKgtC,UAAUC,QAAQ,WAAW,OAAO,OAAO,KAAKjtC,KAAKgtC,UAAUV,cAAc,SAAS1oC,GAAG,IAAI03B,EAAED,EAAE,GAAGz3B,EAAE8rB,KAAK,IAAI1vB,KAAKktC,eAAetpC,EAAEgjC,QAAQ,GAAGvL,EAAEz3B,EAAEgjC,QAAQ,GAAG5mC,KAAKmtC,SAASvpC,EAAE2iC,SAASvmC,KAAKktC,gBAAgBtpC,EAAE8rB,KAAK2L,IAAI,IAAIr7B,KAAKs8B,iBAAiB,IAAIt8B,KAAKu8B,iBAAiB,MAAM,IAAIb,MAAM,sIAAsI,GAAG,QAAQJ,EAAE,SAAS13B,GAAG,IAAI,IAAI03B,KAAKlZ,EAAE,GAAG5kB,OAAOm/B,UAAU6L,eAAehjB,KAAKpD,EAAEkZ,IAAIlZ,EAAEkZ,GAAGiC,QAAQ35B,EAAE,OAAOwe,EAAEkZ,GAAG,OAAO,KAA3G,CAAiHt7B,KAAKotC,oBAAoB,MAAM,IAAI1R,MAAM,+BAA+BpZ,EAAEooB,OAAO1qC,KAAKotC,mBAAmB,0BAA0B9qB,EAAEuc,YAAY,SAAS7+B,KAAKmtC,UAAU,KAAKntC,KAAKsjC,aAAa,IAAI7nC,EAAEuE,KAAKs8B,eAAet8B,KAAKu8B,iBAAiBv8B,KAAKw8B,MAAMlB,EAAE13B,EAAE2iC,SAASvmC,KAAKs8B,kBAAkBqQ,gBAAgB,SAAS/oC,GAAG5D,KAAKqtC,cAAczpC,EAAEgjC,QAAQ,GAAGhjC,EAAE8rB,KAAK,GAAG1vB,KAAKgtC,QAAQppC,EAAEgjC,QAAQ,GAAG5mC,KAAKotC,kBAAkBxpC,EAAEijC,WAAW,GAAG7mC,KAAK1G,KAAKsK,EAAEkjC,WAAW9mC,KAAKw8B,MAAM54B,EAAEgjC,QAAQ,GAAG5mC,KAAKs8B,eAAe14B,EAAEgjC,QAAQ,GAAG5mC,KAAKu8B,iBAAiB34B,EAAEgjC,QAAQ,GAAG,IAAItL,EAAE13B,EAAEgjC,QAAQ,GAAG,GAAG5mC,KAAKstC,kBAAkB1pC,EAAEgjC,QAAQ,GAAG5mC,KAAKutC,kBAAkB3pC,EAAEgjC,QAAQ,GAAG5mC,KAAKwtC,gBAAgB5pC,EAAEgjC,QAAQ,GAAG5mC,KAAKytC,uBAAuB7pC,EAAEgjC,QAAQ,GAAG5mC,KAAK0tC,uBAAuB9pC,EAAEgjC,QAAQ,GAAG5mC,KAAKqsC,kBAAkBzoC,EAAEgjC,QAAQ,GAAG5mC,KAAK+sC,cAAc,MAAM,IAAIrR,MAAM,mCAAmC93B,EAAE8rB,KAAK4L,GAAGt7B,KAAK2tC,gBAAgB/pC,GAAG5D,KAAK4tC,qBAAqBhqC,GAAG5D,KAAK6tC,YAAYjqC,EAAE2iC,SAASvmC,KAAKutC,oBAAoBf,kBAAkB,WAAWxsC,KAAK+9B,gBAAgB,KAAK/9B,KAAKg+B,eAAe,KAAK,IAAIp6B,EAAE5D,KAAKqtC,eAAe,EAAErtC,KAAK29B,OAAO,GAAG39B,KAAK0tC,wBAAwB,GAAG9pC,IAAI5D,KAAKg+B,eAAe,GAAGh+B,KAAK0tC,wBAAwB,GAAG9pC,IAAI5D,KAAK+9B,gBAAgB/9B,KAAK0tC,wBAAwB,GAAG,OAAO1tC,KAAK29B,KAAK,MAAM39B,KAAKgkC,YAAY3gB,OAAO,KAAKrjB,KAAK29B,KAAI,IAAKiQ,qBAAqB,WAAW,GAAG5tC,KAAK8tC,YAAY,GAAG,CAAC,IAAIlqC,EAAE63B,EAAEz7B,KAAK8tC,YAAY,GAAGjsC,OAAO7B,KAAKu8B,mBAAmBja,EAAEmoB,mBAAmBzqC,KAAKu8B,iBAAiB34B,EAAEgjC,QAAQ,IAAI5mC,KAAKs8B,iBAAiBha,EAAEmoB,mBAAmBzqC,KAAKs8B,eAAe14B,EAAEgjC,QAAQ,IAAI5mC,KAAKqsC,oBAAoB/pB,EAAEmoB,mBAAmBzqC,KAAKqsC,kBAAkBzoC,EAAEgjC,QAAQ,IAAI5mC,KAAKwtC,kBAAkBlrB,EAAEmoB,mBAAmBzqC,KAAKwtC,gBAAgB5pC,EAAEgjC,QAAQ,MAAM+G,gBAAgB,SAAS/pC,GAAG,IAAI03B,EAAED,EAAEI,EAAEhgC,EAAEmI,EAAExC,MAAMpB,KAAKstC,kBAAkB,IAAIttC,KAAK8tC,cAAc9tC,KAAK8tC,YAAY,IAAIlqC,EAAExC,MAAM,EAAE3F,GAAG6/B,EAAE13B,EAAEgjC,QAAQ,GAAGvL,EAAEz3B,EAAEgjC,QAAQ,GAAGnL,EAAE73B,EAAE2iC,SAASlL,GAAGr7B,KAAK8tC,YAAYxS,GAAG,CAACxsC,GAAGwsC,EAAE1hC,OAAOyhC,EAAEx5B,MAAM45B,GAAG73B,EAAE+iC,SAASlrC,IAAI8wC,WAAW,WAAW,IAAI3oC,EAAEw3B,EAAEe,WAAW,aAAa,QAAQ,GAAGn8B,KAAKitC,UAAUjtC,KAAKgkC,YAAY7I,EAAEuI,WAAW1jC,KAAKmtC,UAAUntC,KAAKikC,eAAe9I,EAAEuI,WAAW1jC,KAAK6tC,iBAAiB,CAAC,IAAIvS,EAAEt7B,KAAK+tC,4BAA4B,GAAG,OAAOzS,EAAEt7B,KAAKgkC,YAAY1I,MAAM,CAAC,IAAID,EAAE/Y,EAAEuc,YAAYj7B,EAAE5D,KAAKmtC,UAAUntC,KAAKgkC,YAAYhkC,KAAKuvB,YAAYkU,eAAepI,GAAG,IAAII,EAAEz7B,KAAKguC,+BAA+B,GAAG,OAAOvS,EAAEz7B,KAAKikC,eAAexI,MAAM,CAAC,IAAIhgC,EAAE6mB,EAAEuc,YAAYj7B,EAAE5D,KAAK6tC,aAAa7tC,KAAKikC,eAAejkC,KAAKuvB,YAAYkU,eAAehoC,MAAMsyC,0BAA0B,WAAW,IAAInqC,EAAE5D,KAAK8tC,YAAY,OAAO,GAAGlqC,EAAE,CAAC,IAAI03B,EAAEG,EAAE73B,EAAE/B,OAAO,OAAO,IAAIy5B,EAAEsL,QAAQ,IAAQ7kC,EAAE/B,KAAKmtC,YAAY7R,EAAEsL,QAAQ,GAAlC,KAA0CzL,EAAEuI,WAAWpI,EAAEiL,SAAS3iC,EAAEhK,OAAO,IAAI,OAAO,MAAMo0C,6BAA6B,WAAW,IAAIpqC,EAAE5D,KAAK8tC,YAAY,OAAO,GAAGlqC,EAAE,CAAC,IAAI03B,EAAEG,EAAE73B,EAAE/B,OAAO,OAAO,IAAIy5B,EAAEsL,QAAQ,IAAQ7kC,EAAE/B,KAAK6tC,eAAevS,EAAEsL,QAAQ,GAArC,KAA6CzL,EAAEuI,WAAWpI,EAAEiL,SAAS3iC,EAAEhK,OAAO,IAAI,OAAO,OAAO0hC,EAAEJ,QAAQM,GAAG,CAAC,qBAAqB,EAAE,iBAAiB,EAAE,UAAU,EAAE,qBAAqB,GAAG,YAAY,GAAG,SAAS,GAAG,UAAU,KAAKyS,GAAG,CAAC,SAASrqC,EAAE03B,EAAED,GAAG,aAAa,SAASI,EAAE73B,EAAE03B,EAAED,GAAGr7B,KAAK4B,KAAKgC,EAAE5D,KAAK29B,IAAItC,EAAEsC,IAAI39B,KAAK1G,KAAK+hC,EAAE/hC,KAAK0G,KAAK89B,QAAQzC,EAAEyC,QAAQ99B,KAAK+9B,gBAAgB1C,EAAE0C,gBAAgB/9B,KAAKg+B,eAAe3C,EAAE2C,eAAeh+B,KAAKkuC,MAAM5S,EAAEt7B,KAAKmuC,YAAY9S,EAAEqC,OAAO19B,KAAKgR,QAAQ,CAACyrB,YAAYpB,EAAEoB,YAAYoB,mBAAmBxC,EAAEwC,oBAAoB,IAAIvb,EAAE1e,EAAE,yBAAyBnI,EAAEmI,EAAE,uBAAuB7B,EAAE6B,EAAE,UAAUu3B,EAAEv3B,EAAE,sBAAsBwe,EAAExe,EAAE,0BAA0B63B,EAAEkB,UAAU,CAACyR,eAAe,SAASxqC,GAAG,IAAI03B,EAAE,KAAKD,EAAE,SAAS,IAAI,IAAIz3B,EAAE,MAAM,IAAI83B,MAAM,6BAA6B,IAAID,EAAE,YAAYJ,EAAEz3B,EAAE9F,gBAAgB,SAASu9B,EAAE,iBAAiBA,GAAG,SAASA,IAAIA,EAAE,UAAUC,EAAEt7B,KAAKquC,oBAAoB,IAAI5yC,GAAGuE,KAAKmuC,YAAY1yC,IAAIggC,IAAIH,EAAEA,EAAEwB,KAAK,IAAI/6B,EAAEmoC,oBAAoBzuC,GAAGggC,IAAIH,EAAEA,EAAEwB,KAAK,IAAI/6B,EAAEkoC,mBAAmB,MAAMrmC,IAAI03B,EAAE,IAAIlZ,EAAE,UAAUggB,MAAMx+B,GAAG,OAAO,IAAI0e,EAAEgZ,EAAED,EAAE,KAAKiT,MAAM,SAAS1qC,EAAE03B,GAAG,OAAOt7B,KAAKouC,eAAexqC,GAAGo9B,WAAW1F,IAAIiT,WAAW,SAAS3qC,EAAE03B,GAAG,OAAOt7B,KAAKouC,eAAexqC,GAAG,cAAcmiC,eAAezK,IAAIoH,gBAAgB,SAAS9+B,EAAE03B,GAAG,GAAGt7B,KAAKkuC,iBAAiB/S,GAAGn7B,KAAKkuC,MAAMzR,YAAYc,QAAQ35B,EAAE25B,MAAM,OAAOv9B,KAAKkuC,MAAMhR,sBAAsB,IAAI7B,EAAEr7B,KAAKquC,oBAAoB,OAAOruC,KAAKmuC,cAAc9S,EAAEA,EAAEyB,KAAK,IAAI/6B,EAAEmoC,mBAAmB/O,EAAEiC,iBAAiB/B,EAAEz3B,EAAE03B,IAAI+S,kBAAkB,WAAW,OAAOruC,KAAKkuC,iBAAiB/S,EAAEn7B,KAAKkuC,MAAMtR,mBAAmB58B,KAAKkuC,iBAAiB9rB,EAAEpiB,KAAKkuC,MAAM,IAAIzyC,EAAEuE,KAAKkuC,SAAS,IAAI,IAAI9S,EAAE,CAAC,SAAS,WAAW,eAAe,eAAe,iBAAiBI,EAAE,WAAW,MAAM,IAAIE,MAAM,+EAA+EK,EAAE,EAAEA,EAAEX,EAAExhC,OAAOmiC,IAAIN,EAAEkB,UAAUvB,EAAEW,IAAIP,EAAEF,EAAEJ,QAAQO,GAAG,CAAC,qBAAqB,EAAE,sBAAsB,GAAG,yBAAyB,GAAG,wBAAwB,GAAG,SAAS,KAAK+S,GAAG,CAAC,SAAS5qC,EAAE43B,EAAEF,IAAG,SAAUA,GAAG,aAAa,IAAID,EAAEI,EAAE73B,EAAE03B,EAAEmT,kBAAkBnT,EAAEoT,uBAAuB,GAAG9qC,EAAE,CAAC,IAAInI,EAAE,EAAE6mB,EAAE,IAAI1e,EAAEw3B,GAAGr5B,EAAEu5B,EAAET,SAAS8T,eAAe,IAAIrsB,EAAEssB,QAAQ7sC,EAAE,CAAC8sC,eAAc,IAAKxT,EAAE,WAAWt5B,EAAEoE,KAAK1K,IAAIA,EAAE,QAAQ,GAAG6/B,EAAEqP,mBAAc,IAASrP,EAAEwT,eAAezT,EAAE,aAAaC,GAAG,uBAAuBA,EAAET,SAASkU,cAAc,UAAU,WAAW,IAAInrC,EAAE03B,EAAET,SAASkU,cAAc,UAAUnrC,EAAEorC,mBAAmB,WAAW5T,IAAIx3B,EAAEorC,mBAAmB,KAAKprC,EAAEqrC,WAAWC,YAAYtrC,GAAGA,EAAE,MAAM03B,EAAET,SAASsU,gBAAgBC,YAAYxrC,IAAI,WAAWqP,WAAWmoB,EAAE,QAAQ,CAAC,IAAID,EAAE,IAAIG,EAAEwT,eAAe3T,EAAEkU,MAAMC,UAAUlU,EAAEC,EAAE,WAAWF,EAAEoU,MAAMC,YAAY,IAAI,IAAIptB,EAAE,GAAG,SAASgZ,IAAI,IAAIx3B,EAAE03B,EAAEG,GAAE,EAAG,IAAI,IAAIJ,EAAEjZ,EAAExoB,OAAOyhC,GAAG,CAAC,IAAIC,EAAElZ,EAAEA,EAAE,GAAGxe,GAAG,IAAIA,EAAEy3B,GAAGC,EAAE13B,KAAKy3B,EAAEjZ,EAAExoB,OAAO6hC,GAAE,EAAGD,EAAEN,QAAQ,SAASt3B,GAAG,IAAIwe,EAAEnf,KAAKW,IAAI63B,GAAGJ,OAAO7V,KAAKxlB,KAAK,oBAAoByvC,EAAOA,EAAO,oBAAoBlG,KAAKA,KAAK,oBAAoB39B,OAAOA,OAAO,KAAK,IAAI8jC,GAAG,CAAC,SAAS9rC,EAAE03B,EAAED,GAAG,aAAa,IAAI5/B,EAAEmI,EAAE,aAAa,SAASw3B,KAAK,IAAII,EAAE,GAAGlZ,EAAE,CAAC,YAAYvgB,EAAE,CAAC,aAAa05B,EAAE,CAAC,WAAW,SAASN,EAAEv3B,GAAG,GAAG,mBAAmBA,EAAE,MAAM,IAAI+rC,UAAU,+BAA+B3vC,KAAK4vC,MAAMnU,EAAEz7B,KAAK6vC,MAAM,GAAG7vC,KAAK8vC,aAAQ,EAAOlsC,IAAIw3B,GAAGlZ,EAAEliB,KAAK4D,GAAG,SAASwe,EAAExe,EAAE03B,EAAED,GAAGr7B,KAAKswB,QAAQ1sB,EAAE,mBAAmB03B,IAAIt7B,KAAK+vC,YAAYzU,EAAEt7B,KAAKgwC,cAAchwC,KAAKiwC,oBAAoB,mBAAmB5U,IAAIr7B,KAAKkwC,WAAW7U,EAAEr7B,KAAKmwC,aAAanwC,KAAKowC,mBAAmB,SAASrU,EAAET,EAAED,EAAEI,GAAGhgC,GAAE,WAAW,IAAImI,EAAE,IAAIA,EAAEy3B,EAAEI,GAAG,MAAM73B,GAAG,OAAO43B,EAAEqI,OAAOvI,EAAE13B,GAAGA,IAAI03B,EAAEE,EAAEqI,OAAOvI,EAAE,IAAIqU,UAAU,uCAAuCnU,EAAEhM,QAAQ8L,EAAE13B,MAAK,SAASg4B,EAAEh4B,GAAG,IAAI03B,EAAE13B,GAAGA,EAAE0N,KAAK,GAAG1N,IAAI,iBAAiBA,GAAG,mBAAmBA,IAAI,mBAAmB03B,EAAE,OAAO,WAAWA,EAAEx8B,MAAM8E,EAAE1D,YAAY,SAASgiB,EAAEoZ,EAAE13B,GAAG,IAAIy3B,GAAE,EAAG,SAASI,EAAE73B,GAAGy3B,IAAIA,GAAE,EAAGG,EAAEqI,OAAOvI,EAAE13B,IAAI,SAASnI,EAAEmI,GAAGy3B,IAAIA,GAAE,EAAGG,EAAEhM,QAAQ8L,EAAE13B,IAAI,IAAI0e,EAAEuZ,GAAE,WAAWj4B,EAAEnI,EAAEggC,MAAK,UAAUnZ,EAAE+tB,QAAQ5U,EAAEnZ,EAAEzgB,OAAO,SAASg6B,EAAEj4B,EAAE03B,GAAG,IAAID,EAAE,GAAG,IAAIA,EAAEx5B,MAAM+B,EAAE03B,GAAGD,EAAEgV,OAAO,UAAU,MAAMzsC,GAAGy3B,EAAEgV,OAAO,QAAQhV,EAAEx5B,MAAM+B,EAAE,OAAOy3B,GAAGC,EAAEJ,QAAQC,GAAGwB,UAAU2T,QAAQ,SAAShV,GAAG,GAAG,mBAAmBA,EAAE,OAAOt7B,KAAK,IAAIq7B,EAAEr7B,KAAKuwC,YAAY,OAAOvwC,KAAKsR,MAAK,SAAS1N,GAAG,OAAOy3B,EAAE7L,QAAQ8L,KAAKhqB,MAAK,WAAW,OAAO1N,QAAK,SAASA,GAAG,OAAOy3B,EAAE7L,QAAQ8L,KAAKhqB,MAAK,WAAW,MAAM1N,SAAOu3B,EAAEwB,UAAU6T,MAAM,SAAS5sC,GAAG,OAAO5D,KAAKsR,KAAK,KAAK1N,IAAIu3B,EAAEwB,UAAUrrB,KAAK,SAAS1N,EAAE03B,GAAG,GAAG,mBAAmB13B,GAAG5D,KAAK4vC,QAAQ7tC,GAAG,mBAAmBu5B,GAAGt7B,KAAK4vC,QAAQttB,EAAE,OAAOtiB,KAAK,IAAIq7B,EAAE,IAAIr7B,KAAKuwC,YAAYnV,GAAqF,OAAlFp7B,KAAK4vC,QAAQnU,EAAEM,EAAEV,EAAEr7B,KAAK4vC,QAAQ7tC,EAAE6B,EAAE03B,EAAEt7B,KAAK8vC,SAAS9vC,KAAK6vC,MAAM5sC,KAAK,IAAImf,EAAEiZ,EAAEz3B,EAAE03B,IAAWD,GAAGjZ,EAAEua,UAAUqT,cAAc,SAASpsC,GAAG43B,EAAEhM,QAAQxvB,KAAKswB,QAAQ1sB,IAAIwe,EAAEua,UAAUsT,mBAAmB,SAASrsC,GAAGm4B,EAAE/7B,KAAKswB,QAAQtwB,KAAK+vC,YAAYnsC,IAAIwe,EAAEua,UAAUwT,aAAa,SAASvsC,GAAG43B,EAAEqI,OAAO7jC,KAAKswB,QAAQ1sB,IAAIwe,EAAEua,UAAUyT,kBAAkB,SAASxsC,GAAGm4B,EAAE/7B,KAAKswB,QAAQtwB,KAAKkwC,WAAWtsC,IAAI43B,EAAEhM,QAAQ,SAAS5rB,EAAE03B,GAAG,IAAID,EAAEQ,EAAED,EAAEN,GAAG,GAAG,UAAUD,EAAEgV,OAAO,OAAO7U,EAAEqI,OAAOjgC,EAAEy3B,EAAEx5B,OAAO,IAAI45B,EAAEJ,EAAEx5B,MAAM,GAAG45B,EAAEvZ,EAAEte,EAAE63B,OAAO,CAAC73B,EAAEgsC,MAAM7tC,EAAE6B,EAAEksC,QAAQxU,EAAE,IAAI,IAAI7/B,GAAG,EAAE6mB,EAAE1e,EAAEisC,MAAMj2C,SAAS6B,EAAE6mB,GAAG1e,EAAEisC,MAAMp0C,GAAGu0C,cAAc1U,GAAG,OAAO13B,GAAG43B,EAAEqI,OAAO,SAASjgC,EAAE03B,GAAG13B,EAAEgsC,MAAMttB,EAAE1e,EAAEksC,QAAQxU,EAAE,IAAI,IAAID,GAAG,EAAEI,EAAE73B,EAAEisC,MAAMj2C,SAASyhC,EAAEI,GAAG73B,EAAEisC,MAAMxU,GAAG8U,aAAa7U,GAAG,OAAO13B,GAAGu3B,EAAE3L,QAAQ,SAAS5rB,GAAG,OAAGA,aAAa5D,KAAY4D,EAAS43B,EAAEhM,QAAQ,IAAIxvB,KAAKo7B,GAAGx3B,IAAIu3B,EAAE0I,OAAO,SAASjgC,GAAG,IAAI03B,EAAE,IAAIt7B,KAAKo7B,GAAG,OAAOI,EAAEqI,OAAOvI,EAAE13B,IAAIu3B,EAAE4I,IAAI,SAASngC,GAAG,IAAIy3B,EAAEr7B,KAAK,GAAG,mBAAmBxC,OAAOm/B,UAAUlb,SAAS+D,KAAK5hB,GAAG,OAAO5D,KAAK6jC,OAAO,IAAI8L,UAAU,qBAAqB,IAAIlU,EAAE73B,EAAEhK,OAAO6B,GAAE,EAAG,IAAIggC,EAAE,OAAOz7B,KAAKwvB,QAAQ,IAA8C,IAA1C,IAAIlN,EAAE,IAAIzjB,MAAM48B,GAAG15B,EAAE,EAAEu5B,GAAG,EAAEH,EAAE,IAAIn7B,KAAKo7B,KAAUE,EAAEG,GAAGrZ,EAAExe,EAAE03B,GAAGA,GAAG,OAAOH,EAAE,SAAS/Y,EAAExe,EAAE03B,GAAGD,EAAE7L,QAAQ5rB,GAAG0N,MAAK,SAAS1N,GAAG0e,EAAEgZ,GAAG13B,IAAI7B,IAAI05B,GAAGhgC,IAAIA,GAAE,EAAG+/B,EAAEhM,QAAQ2L,EAAE7Y,OAAK,SAAS1e,GAAGnI,IAAIA,GAAE,EAAG+/B,EAAEqI,OAAO1I,EAAEv3B,SAAQu3B,EAAEsV,KAAK,SAAS7sC,GAAG,IAAI03B,EAAEt7B,KAAK,GAAG,mBAAmBxC,OAAOm/B,UAAUlb,SAAS+D,KAAK5hB,GAAG,OAAO5D,KAAK6jC,OAAO,IAAI8L,UAAU,qBAAqB,IAAItU,EAAEz3B,EAAEhK,OAAO6hC,GAAE,EAAG,IAAIJ,EAAE,OAAOr7B,KAAKwvB,QAAQ,IAA2B,IAAvB,IAA4IztB,EAAxItG,GAAG,EAAE6mB,EAAE,IAAItiB,KAAKo7B,KAAU3/B,EAAE4/B,GAAGt5B,EAAE6B,EAAEnI,GAAG6/B,EAAE9L,QAAQztB,GAAGuP,MAAK,SAAS1N,GAAG63B,IAAIA,GAAE,EAAGD,EAAEhM,QAAQlN,EAAE1e,OAAK,SAASA,GAAG63B,IAAIA,GAAE,EAAGD,EAAEqI,OAAOvhB,EAAE1e,OAAY,OAAO0e,IAAI,CAACouB,UAAU,KAAKC,GAAG,CAAC,SAAS/sC,EAAE03B,EAAED,GAAG,aAAa,IAAII,EAAE,IAAG,EAAG73B,EAAE,sBAAsBgtC,QAAQnV,EAAE73B,EAAE,iBAAiBA,EAAE,iBAAiBA,EAAE,yBAAyB03B,EAAEJ,QAAQO,GAAG,CAAC,gBAAgB,GAAG,gBAAgB,GAAG,qBAAqB,GAAG,uBAAuB,KAAKoV,GAAG,CAAC,SAASjtC,EAAE03B,EAAED,GAAG,aAAa,IAAIt5B,EAAE6B,EAAE,kBAAkBu3B,EAAEv3B,EAAE,kBAAkBwe,EAAExe,EAAE,mBAAmBnI,EAAEmI,EAAE,mBAAmB0e,EAAE1e,EAAE,kBAAkBw3B,EAAE59B,OAAOm/B,UAAUlb,SAAS+Z,EAAE,EAAEO,GAAG,EAAEH,EAAE,EAAE1Z,EAAE,EAAE,SAAS2Z,EAAEj4B,GAAG,KAAK5D,gBAAgB67B,GAAG,OAAO,IAAIA,EAAEj4B,GAAG5D,KAAKgR,QAAQmqB,EAAEyV,OAAO,CAAC3R,MAAMlD,EAAE+U,OAAO5uB,EAAE6uB,UAAU,MAAMC,WAAW,GAAGC,SAAS,EAAEC,SAAStV,EAAEljC,GAAG,IAAIkL,GAAG,IAAI,IAAI03B,EAAEt7B,KAAKgR,QAAQsqB,EAAE0D,KAAK,EAAE1D,EAAE0V,WAAW1V,EAAE0V,YAAY1V,EAAE0V,WAAW1V,EAAE6V,MAAM,EAAE7V,EAAE0V,YAAY1V,EAAE0V,WAAW,KAAK1V,EAAE0V,YAAY,IAAIhxC,KAAKoxC,IAAI,EAAEpxC,KAAKqxC,IAAI,GAAGrxC,KAAKsxC,OAAM,EAAGtxC,KAAKuxC,OAAO,GAAGvxC,KAAKwxC,KAAK,IAAIlvB,EAAEtiB,KAAKwxC,KAAKC,UAAU,EAAE,IAAIpW,EAAEt5B,EAAE2vC,aAAa1xC,KAAKwxC,KAAKlW,EAAE2D,MAAM3D,EAAEwV,OAAOxV,EAAE0V,WAAW1V,EAAE2V,SAAS3V,EAAE4V,UAAU,GAAG7V,IAAIG,EAAE,MAAM,IAAIE,MAAMjgC,EAAE4/B,IAAI,GAAGC,EAAEqW,QAAQ5vC,EAAE6vC,iBAAiB5xC,KAAKwxC,KAAKlW,EAAEqW,QAAQrW,EAAEuW,WAAW,CAAC,IAAIpW,EAAE,GAAGA,EAAE,iBAAiBH,EAAEuW,WAAWzvB,EAAE0vB,WAAWxW,EAAEuW,YAAY,yBAAyBzW,EAAE5V,KAAK8V,EAAEuW,YAAY,IAAIzV,WAAWd,EAAEuW,YAAYvW,EAAEuW,YAAYxW,EAAEt5B,EAAEgwC,qBAAqB/xC,KAAKwxC,KAAK/V,MAAMD,EAAE,MAAM,IAAIE,MAAMjgC,EAAE4/B,IAAIr7B,KAAKgyC,WAAU,GAAI,SAASvW,EAAE73B,EAAE03B,GAAG,IAAID,EAAE,IAAIQ,EAAEP,GAAG,GAAGD,EAAEp4B,KAAKW,GAAE,GAAIy3B,EAAE+V,IAAI,MAAM/V,EAAEgW,KAAK51C,EAAE4/B,EAAE+V,KAAK,OAAO/V,EAAEp8B,OAAO48B,EAAEc,UAAU15B,KAAK,SAASW,EAAE03B,GAAG,IAAID,EAAEI,EAAEhgC,EAAEuE,KAAKwxC,KAAKlvB,EAAEtiB,KAAKgR,QAAQ+/B,UAAU,GAAG/wC,KAAKsxC,MAAM,OAAM,EAAG7V,EAAEH,MAAMA,EAAEA,GAAE,IAAKA,EAAE,EAAE,EAAE,iBAAiB13B,EAAEnI,EAAEsX,MAAMqP,EAAE0vB,WAAWluC,GAAG,yBAAyBw3B,EAAE5V,KAAK5hB,GAAGnI,EAAEsX,MAAM,IAAIqpB,WAAWx4B,GAAGnI,EAAEsX,MAAMnP,EAAEnI,EAAEw2C,QAAQ,EAAEx2C,EAAEy2C,SAASz2C,EAAEsX,MAAMnZ,OAAO,EAAE,CAAC,GAAG,IAAI6B,EAAEg2C,YAAYh2C,EAAE02C,OAAO,IAAIhX,EAAEiX,KAAK9vB,GAAG7mB,EAAE42C,SAAS,EAAE52C,EAAEg2C,UAAUnvB,GAAG,KAAK+Y,EAAEt5B,EAAEuwC,QAAQ72C,EAAEggC,KAAKJ,IAAIG,EAAE,OAAOx7B,KAAKuyC,MAAMlX,KAAKr7B,KAAKsxC,OAAM,GAAI,IAAI71C,EAAEg2C,YAAY,IAAIh2C,EAAEy2C,UAAU,IAAIzW,GAAG,IAAIA,KAAK,WAAWz7B,KAAKgR,QAAQtY,GAAGsH,KAAKk/B,OAAO9c,EAAEowB,cAAcrX,EAAEsX,UAAUh3C,EAAE02C,OAAO12C,EAAE42C,YAAYryC,KAAKk/B,OAAO/D,EAAEsX,UAAUh3C,EAAE02C,OAAO12C,EAAE42C,mBAAmB,EAAE52C,EAAEy2C,UAAU,IAAIz2C,EAAEg2C,YAAY,IAAIpW,GAAG,OAAO,IAAII,GAAGJ,EAAEt5B,EAAE2wC,WAAW1yC,KAAKwxC,MAAMxxC,KAAKuyC,MAAMlX,GAAGr7B,KAAKsxC,OAAM,EAAGjW,IAAIG,GAAG,IAAIC,IAAIz7B,KAAKuyC,MAAM/W,KAAK//B,EAAEg2C,UAAU,KAAK5V,EAAEc,UAAUuC,OAAO,SAASt7B,GAAG5D,KAAKuxC,OAAOtuC,KAAKW,IAAIi4B,EAAEc,UAAU4V,MAAM,SAAS3uC,GAAGA,IAAI43B,IAAI,WAAWx7B,KAAKgR,QAAQtY,GAAGsH,KAAKf,OAAOe,KAAKuxC,OAAOv1C,KAAK,IAAIgE,KAAKf,OAAOk8B,EAAEwX,cAAc3yC,KAAKuxC,SAASvxC,KAAKuxC,OAAO,GAAGvxC,KAAKoxC,IAAIxtC,EAAE5D,KAAKqxC,IAAIrxC,KAAKwxC,KAAKH,KAAKhW,EAAEuX,QAAQ/W,EAAER,EAAEiX,QAAQ7W,EAAEJ,EAAEwX,WAAW,SAASjvC,EAAE03B,GAAG,OAAOA,EAAEA,GAAG,IAAI0D,KAAI,EAAGvD,EAAE73B,EAAE03B,IAAID,EAAE8V,KAAK,SAASvtC,EAAE03B,GAAG,OAAOA,EAAEA,GAAG,IAAI6V,MAAK,EAAG1V,EAAE73B,EAAE03B,KAAK,CAAC,iBAAiB,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,iBAAiB,KAAKwX,GAAG,CAAC,SAASlvC,EAAE03B,EAAED,GAAG,aAAa,IAAIO,EAAEh4B,EAAE,kBAAkBse,EAAEte,EAAE,kBAAkBi4B,EAAEj4B,EAAE,mBAAmBye,EAAEze,EAAE,oBAAoB63B,EAAE73B,EAAE,mBAAmBnI,EAAEmI,EAAE,kBAAkB0e,EAAE1e,EAAE,mBAAmB7E,EAAEvB,OAAOm/B,UAAUlb,SAAS,SAAS1f,EAAE6B,GAAG,KAAK5D,gBAAgB+B,GAAG,OAAO,IAAIA,EAAE6B,GAAG5D,KAAKgR,QAAQkR,EAAE0uB,OAAO,CAACG,UAAU,MAAMC,WAAW,EAAEt4C,GAAG,IAAIkL,GAAG,IAAI,IAAI03B,EAAEt7B,KAAKgR,QAAQsqB,EAAE0D,KAAK,GAAG1D,EAAE0V,YAAY1V,EAAE0V,WAAW,KAAK1V,EAAE0V,YAAY1V,EAAE0V,WAAW,IAAI1V,EAAE0V,aAAa1V,EAAE0V,YAAY,OAAO,GAAG1V,EAAE0V,YAAY1V,EAAE0V,WAAW,KAAKptC,GAAGA,EAAEotC,aAAa1V,EAAE0V,YAAY,IAAI,GAAG1V,EAAE0V,YAAY1V,EAAE0V,WAAW,IAAI,IAAI,GAAG1V,EAAE0V,cAAc1V,EAAE0V,YAAY,IAAIhxC,KAAKoxC,IAAI,EAAEpxC,KAAKqxC,IAAI,GAAGrxC,KAAKsxC,OAAM,EAAGtxC,KAAKuxC,OAAO,GAAGvxC,KAAKwxC,KAAK,IAAI/1C,EAAEuE,KAAKwxC,KAAKC,UAAU,EAAE,IAAIpW,EAAEO,EAAEmX,aAAa/yC,KAAKwxC,KAAKlW,EAAE0V,YAAY,GAAG3V,IAAIhZ,EAAE2wB,KAAK,MAAM,IAAItX,MAAMD,EAAEJ,IAAIr7B,KAAK2xC,OAAO,IAAIrvB,EAAEsZ,EAAEqX,iBAAiBjzC,KAAKwxC,KAAKxxC,KAAK2xC,QAAQ,SAASxW,EAAEv3B,EAAE03B,GAAG,IAAID,EAAE,IAAIt5B,EAAEu5B,GAAG,GAAGD,EAAEp4B,KAAKW,GAAE,GAAIy3B,EAAE+V,IAAI,MAAM/V,EAAEgW,KAAK5V,EAAEJ,EAAE+V,KAAK,OAAO/V,EAAEp8B,OAAO8C,EAAE46B,UAAU15B,KAAK,SAASW,EAAE03B,GAAG,IAAID,EAAEI,EAAEhgC,EAAE6mB,EAAEvgB,EAAEo5B,EAAE/Y,EAAEpiB,KAAKwxC,KAAKpW,EAAEp7B,KAAKgR,QAAQ+/B,UAAUvV,EAAEx7B,KAAKgR,QAAQ6gC,WAAW9V,GAAE,EAAG,GAAG/7B,KAAKsxC,MAAM,OAAM,EAAG7V,EAAEH,MAAMA,EAAEA,GAAE,IAAKA,EAAEjZ,EAAE6wB,SAAS7wB,EAAE8wB,WAAW,iBAAiBvvC,EAAEwe,EAAErP,MAAM8oB,EAAEuX,cAAcxvC,GAAG,yBAAyB7E,EAAEymB,KAAK5hB,GAAGwe,EAAErP,MAAM,IAAIqpB,WAAWx4B,GAAGwe,EAAErP,MAAMnP,EAAEwe,EAAE6vB,QAAQ,EAAE7vB,EAAE8vB,SAAS9vB,EAAErP,MAAMnZ,OAAO,EAAE,CAAC,GAAG,IAAIwoB,EAAEqvB,YAAYrvB,EAAE+vB,OAAO,IAAIjwB,EAAEkwB,KAAKhX,GAAGhZ,EAAEiwB,SAAS,EAAEjwB,EAAEqvB,UAAUrW,IAAIC,EAAEO,EAAEyX,QAAQjxB,EAAEC,EAAE8wB,eAAe9wB,EAAEixB,aAAa9X,IAAIL,EAAE,iBAAiBK,EAAEK,EAAEiW,WAAWtW,GAAG,yBAAyBz8B,EAAEymB,KAAKgW,GAAG,IAAIY,WAAWZ,GAAGA,EAAEH,EAAEO,EAAE2X,qBAAqBvzC,KAAKwxC,KAAKrW,IAAIE,IAAIhZ,EAAEmxB,cAAa,IAAKzX,IAAIV,EAAEhZ,EAAE2wB,KAAKjX,GAAE,GAAIV,IAAIhZ,EAAEoxB,cAAcpY,IAAIhZ,EAAE2wB,KAAK,OAAOhzC,KAAKuyC,MAAMlX,KAAKr7B,KAAKsxC,OAAM,GAAIlvB,EAAEiwB,WAAW,IAAIjwB,EAAEqvB,WAAWpW,IAAIhZ,EAAEoxB,eAAe,IAAIrxB,EAAE8vB,UAAUzW,IAAIpZ,EAAE6wB,UAAUzX,IAAIpZ,EAAEqxB,gBAAgB,WAAW1zC,KAAKgR,QAAQtY,IAAI+C,EAAEogC,EAAE8X,WAAWvxB,EAAE+vB,OAAO/vB,EAAEiwB,UAAU/vB,EAAEF,EAAEiwB,SAAS52C,EAAEsG,EAAE85B,EAAE+X,WAAWxxB,EAAE+vB,OAAO12C,GAAG2mB,EAAEiwB,SAAS/vB,EAAEF,EAAEqvB,UAAUrW,EAAE9Y,EAAEA,GAAGJ,EAAE2xB,SAASzxB,EAAE+vB,OAAO/vB,EAAE+vB,OAAO12C,EAAE6mB,EAAE,GAAGtiB,KAAKk/B,OAAOn9B,IAAI/B,KAAKk/B,OAAOhd,EAAEuwB,UAAUrwB,EAAE+vB,OAAO/vB,EAAEiwB,aAAa,IAAIjwB,EAAE8vB,UAAU,IAAI9vB,EAAEqvB,YAAY1V,GAAE,UAAW,EAAE3Z,EAAE8vB,UAAU,IAAI9vB,EAAEqvB,YAAYpW,IAAIhZ,EAAEoxB,cAAc,OAAOpY,IAAIhZ,EAAEoxB,eAAehY,EAAEpZ,EAAE6wB,UAAUzX,IAAIpZ,EAAE6wB,UAAU7X,EAAEO,EAAEkY,WAAW9zC,KAAKwxC,MAAMxxC,KAAKuyC,MAAMlX,GAAGr7B,KAAKsxC,OAAM,EAAGjW,IAAIhZ,EAAE2wB,MAAMvX,IAAIpZ,EAAEqxB,eAAe1zC,KAAKuyC,MAAMlwB,EAAE2wB,QAAQ5wB,EAAEqvB,UAAU,KAAK1vC,EAAE46B,UAAUuC,OAAO,SAASt7B,GAAG5D,KAAKuxC,OAAOtuC,KAAKW,IAAI7B,EAAE46B,UAAU4V,MAAM,SAAS3uC,GAAGA,IAAIye,EAAE2wB,OAAO,WAAWhzC,KAAKgR,QAAQtY,GAAGsH,KAAKf,OAAOe,KAAKuxC,OAAOv1C,KAAK,IAAIgE,KAAKf,OAAOijB,EAAEywB,cAAc3yC,KAAKuxC,SAASvxC,KAAKuxC,OAAO,GAAGvxC,KAAKoxC,IAAIxtC,EAAE5D,KAAKqxC,IAAIrxC,KAAKwxC,KAAKH,KAAKhW,EAAE0Y,QAAQhyC,EAAEs5B,EAAEgY,QAAQlY,EAAEE,EAAE2Y,WAAW,SAASpwC,EAAE03B,GAAG,OAAOA,EAAEA,GAAG,IAAI0D,KAAI,EAAG7D,EAAEv3B,EAAE03B,IAAID,EAAE4Y,OAAO9Y,GAAG,CAAC,iBAAiB,GAAG,kBAAkB,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,iBAAiB,KAAK+Y,GAAG,CAAC,SAAStwC,EAAE03B,EAAED,GAAG,aAAa,IAAII,EAAE,oBAAoBW,YAAY,oBAAoBgC,aAAa,oBAAoB+V,WAAW9Y,EAAEuV,OAAO,SAAShtC,GAAG,IAAI,IAAI03B,EAAEz8B,MAAM89B,UAAUtZ,MAAMmC,KAAKtlB,UAAU,GAAGo7B,EAAE1hC,QAAQ,CAAC,IAAIyhC,EAAEC,EAAEqG,QAAQ,GAAGtG,EAAE,CAAC,GAAG,iBAAiBA,EAAE,MAAM,IAAIsU,UAAUtU,EAAE,sBAAsB,IAAI,IAAII,KAAKJ,EAAEA,EAAEmN,eAAe/M,KAAK73B,EAAE63B,GAAGJ,EAAEI,KAAK,OAAO73B,GAAGy3B,EAAEoX,UAAU,SAAS7uC,EAAE03B,GAAG,OAAO13B,EAAEhK,SAAS0hC,EAAE13B,EAAEA,EAAEsjC,SAAStjC,EAAEsjC,SAAS,EAAE5L,IAAI13B,EAAEhK,OAAO0hC,EAAE13B,IAAI,IAAInI,EAAE,CAACo4C,SAAS,SAASjwC,EAAE03B,EAAED,EAAEI,EAAEhgC,GAAG,GAAG6/B,EAAE4L,UAAUtjC,EAAEsjC,SAAStjC,EAAE0K,IAAIgtB,EAAE4L,SAAS7L,EAAEA,EAAEI,GAAGhgC,QAAQ,IAAI,IAAI6mB,EAAE,EAAEA,EAAEmZ,EAAEnZ,IAAI1e,EAAEnI,EAAE6mB,GAAGgZ,EAAED,EAAE/Y,IAAIqwB,cAAc,SAAS/uC,GAAG,IAAI03B,EAAED,EAAEI,EAAEhgC,EAAE6mB,EAAEvgB,EAAE,IAAIu5B,EAAEG,EAAE,EAAEJ,EAAEz3B,EAAEhK,OAAO0hC,EAAED,EAAEC,IAAIG,GAAG73B,EAAE03B,GAAG1hC,OAAO,IAAImI,EAAE,IAAIq6B,WAAWX,GAAGH,EAAE7/B,EAAE,EAAE4/B,EAAEz3B,EAAEhK,OAAO0hC,EAAED,EAAEC,IAAIhZ,EAAE1e,EAAE03B,GAAGv5B,EAAEuM,IAAIgU,EAAE7mB,GAAGA,GAAG6mB,EAAE1oB,OAAO,OAAOmI,IAAIugB,EAAE,CAACuxB,SAAS,SAASjwC,EAAE03B,EAAED,EAAEI,EAAEhgC,GAAG,IAAI,IAAI6mB,EAAE,EAAEA,EAAEmZ,EAAEnZ,IAAI1e,EAAEnI,EAAE6mB,GAAGgZ,EAAED,EAAE/Y,IAAIqwB,cAAc,SAAS/uC,GAAG,MAAM,GAAGiO,OAAO/S,MAAM,GAAG8E,KAAKy3B,EAAE+Y,SAAS,SAASxwC,GAAGA,GAAGy3B,EAAE+W,KAAKhW,WAAWf,EAAEgZ,MAAMjW,YAAY/C,EAAEiZ,MAAMH,WAAW9Y,EAAEuV,OAAOvV,EAAE5/B,KAAK4/B,EAAE+W,KAAKvzC,MAAMw8B,EAAEgZ,MAAMx1C,MAAMw8B,EAAEiZ,MAAMz1C,MAAMw8B,EAAEuV,OAAOvV,EAAE/Y,KAAK+Y,EAAE+Y,SAAS3Y,IAAI,IAAI8Y,GAAG,CAAC,SAAS3wC,EAAE03B,EAAED,GAAG,aAAa,IAAIjZ,EAAExe,EAAE,YAAYnI,GAAE,EAAG6mB,GAAE,EAAG,IAAI3oB,OAAO0lC,aAAavgC,MAAM,KAAK,CAAC,IAAI,MAAM8E,GAAGnI,GAAE,EAAG,IAAI9B,OAAO0lC,aAAavgC,MAAM,KAAK,IAAIs9B,WAAW,IAAI,MAAMx4B,GAAG0e,GAAE,EAAG,IAAI,IAAI8Y,EAAE,IAAIhZ,EAAEgwB,KAAK,KAAK3W,EAAE,EAAEA,EAAE,IAAIA,IAAIL,EAAEK,GAAG,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,EAAE,SAASD,EAAE53B,EAAE03B,GAAG,GAAGA,EAAE,QAAQ13B,EAAEsjC,UAAU5kB,IAAI1e,EAAEsjC,UAAUzrC,GAAG,OAAO9B,OAAO0lC,aAAavgC,MAAM,KAAKsjB,EAAEqwB,UAAU7uC,EAAE03B,IAAI,IAAI,IAAID,EAAE,GAAGI,EAAE,EAAEA,EAAEH,EAAEG,IAAIJ,GAAG1hC,OAAO0lC,aAAaz7B,EAAE63B,IAAI,OAAOJ,EAAED,EAAE,KAAKA,EAAE,KAAK,EAAEC,EAAEyW,WAAW,SAASluC,GAAG,IAAI03B,EAAED,EAAEI,EAAEhgC,EAAE6mB,EAAEvgB,EAAE6B,EAAEhK,OAAOuhC,EAAE,EAAE,IAAI1/B,EAAE,EAAEA,EAAEsG,EAAEtG,IAAI,QAAQ,OAAO4/B,EAAEz3B,EAAEgtB,WAAWn1B,MAAMA,EAAE,EAAEsG,GAAG,QAAQ,OAAO05B,EAAE73B,EAAEgtB,WAAWn1B,EAAE,OAAO4/B,EAAE,OAAOA,EAAE,OAAO,KAAKI,EAAE,OAAOhgC,KAAK0/B,GAAGE,EAAE,IAAI,EAAEA,EAAE,KAAK,EAAEA,EAAE,MAAM,EAAE,EAAE,IAAIC,EAAE,IAAIlZ,EAAEgwB,KAAKjX,GAAG1/B,EAAE6mB,EAAE,EAAEA,EAAE6Y,EAAE1/B,IAAI,QAAQ,OAAO4/B,EAAEz3B,EAAEgtB,WAAWn1B,MAAMA,EAAE,EAAEsG,GAAG,QAAQ,OAAO05B,EAAE73B,EAAEgtB,WAAWn1B,EAAE,OAAO4/B,EAAE,OAAOA,EAAE,OAAO,KAAKI,EAAE,OAAOhgC,KAAK4/B,EAAE,IAAIC,EAAEhZ,KAAK+Y,GAAGA,EAAE,KAAKC,EAAEhZ,KAAK,IAAI+Y,IAAI,GAAGA,EAAE,MAAMC,EAAEhZ,KAAK,IAAI+Y,IAAI,IAAIC,EAAEhZ,KAAK,IAAI+Y,IAAI,GAAGC,EAAEhZ,KAAK,IAAI+Y,IAAI,GAAG,IAAIC,EAAEhZ,KAAK,IAAI+Y,IAAI,EAAE,IAAIC,EAAEhZ,KAAK,IAAI,GAAG+Y,GAAG,OAAOC,GAAGD,EAAEmX,cAAc,SAAS5uC,GAAG,OAAO43B,EAAE53B,EAAEA,EAAEhK,SAASyhC,EAAE+X,cAAc,SAASxvC,GAAG,IAAI,IAAI03B,EAAE,IAAIlZ,EAAEgwB,KAAKxuC,EAAEhK,QAAQyhC,EAAE,EAAEI,EAAEH,EAAE1hC,OAAOyhC,EAAEI,EAAEJ,IAAIC,EAAED,GAAGz3B,EAAEgtB,WAAWyK,GAAG,OAAOC,GAAGD,EAAEuY,WAAW,SAAShwC,EAAE03B,GAAG,IAAID,EAAEI,EAAEhgC,EAAE6mB,EAAEvgB,EAAEu5B,GAAG13B,EAAEhK,OAAOuhC,EAAE,IAAIt8B,MAAM,EAAEkD,GAAG,IAAIs5B,EAAEI,EAAE,EAAEJ,EAAEt5B,GAAG,IAAItG,EAAEmI,EAAEy3B,MAAM,IAAIF,EAAEM,KAAKhgC,OAAO,GAAG,GAAG6mB,EAAE8Y,EAAE3/B,IAAI0/B,EAAEM,KAAK,MAAMJ,GAAG/Y,EAAE,MAAM,CAAC,IAAI7mB,GAAG,IAAI6mB,EAAE,GAAG,IAAIA,EAAE,GAAG,EAAE,EAAEA,GAAG+Y,EAAEt5B,GAAGtG,EAAEA,GAAG,EAAE,GAAGmI,EAAEy3B,KAAK/Y,IAAI,EAAEA,EAAE6Y,EAAEM,KAAK,MAAMhgC,EAAE,MAAM0/B,EAAEM,KAAKhgC,GAAGA,GAAG,MAAM0/B,EAAEM,KAAK,MAAMhgC,GAAG,GAAG,KAAK0/B,EAAEM,KAAK,MAAM,KAAKhgC,GAAG,OAAO+/B,EAAEL,EAAEM,IAAIJ,EAAEsY,WAAW,SAAS/vC,EAAE03B,GAAG,IAAID,EAAE,KAAKC,EAAEA,GAAG13B,EAAEhK,QAAQgK,EAAEhK,SAAS0hC,EAAE13B,EAAEhK,QAAQyhC,EAAEC,EAAE,EAAE,GAAGD,GAAG,MAAM,IAAIz3B,EAAEy3B,KAAKA,IAAI,OAAOA,EAAE,GAAI,IAAIA,EAANC,EAAUD,EAAED,EAAEx3B,EAAEy3B,IAAIC,EAAED,EAAEC,IAAI,CAAC,WAAW,KAAKkZ,GAAG,CAAC,SAAS5wC,EAAE03B,EAAED,GAAG,aAAaC,EAAEJ,QAAQ,SAASt3B,EAAE03B,EAAED,EAAEI,GAAG,IAAI,IAAIhgC,EAAE,MAAMmI,EAAE,EAAE0e,EAAE1e,IAAI,GAAG,MAAM,EAAE7B,EAAE,EAAE,IAAIs5B,GAAG,CAAC,IAAIA,GAAGt5B,EAAE,IAAIs5B,EAAE,IAAIA,EAAE/Y,EAAEA,GAAG7mB,EAAEA,EAAE6/B,EAAEG,KAAK,GAAG,IAAI15B,IAAItG,GAAG,MAAM6mB,GAAG,MAAM,OAAO7mB,EAAE6mB,GAAG,GAAG,IAAI,IAAImyB,GAAG,CAAC,SAAS7wC,EAAE03B,EAAED,GAAG,aAAaC,EAAEJ,QAAQ,CAACiY,WAAW,EAAEuB,gBAAgB,EAAEhB,aAAa,EAAEiB,aAAa,EAAEzB,SAAS,EAAE0B,QAAQ,EAAEC,QAAQ,EAAE7B,KAAK,EAAES,aAAa,EAAEH,YAAY,EAAEwB,SAAS,EAAEC,gBAAgB,EAAEC,cAAc,EAAExB,aAAa,EAAEyB,iBAAiB,EAAEC,aAAa,EAAEC,mBAAmB,EAAEC,uBAAuB,EAAEC,WAAW,EAAEC,eAAe,EAAEC,MAAM,EAAEC,QAAQ,EAAEC,mBAAmB,EAAEC,SAAS,EAAEC,OAAO,EAAEC,UAAU,EAAEC,WAAW,IAAI,IAAIC,GAAG,CAAC,SAASlyC,EAAE03B,EAAED,GAAG,aAAa,IAAIF,EAAE,WAAW,IAAI,IAAIv3B,EAAE03B,EAAE,GAAGD,EAAE,EAAEA,EAAE,IAAIA,IAAI,CAACz3B,EAAEy3B,EAAE,IAAI,IAAII,EAAE,EAAEA,EAAE,EAAEA,IAAI73B,EAAE,EAAEA,EAAE,WAAWA,IAAI,EAAEA,IAAI,EAAE03B,EAAED,GAAGz3B,EAAE,OAAO03B,EAA5G,GAAiHA,EAAEJ,QAAQ,SAASt3B,EAAE03B,EAAED,EAAEI,GAAG,IAAIhgC,EAAE0/B,EAAE7Y,EAAEmZ,EAAEJ,EAAEz3B,IAAI,EAAE,IAAI,IAAI7B,EAAE05B,EAAE15B,EAAEugB,EAAEvgB,IAAI6B,EAAEA,IAAI,EAAEnI,EAAE,KAAKmI,EAAE03B,EAAEv5B,KAAK,OAAO,EAAE6B,IAAI,IAAImyC,GAAG,CAAC,SAASnyC,EAAE03B,EAAED,GAAG,aAAa,IAAIjZ,EAAEwZ,EAAEh4B,EAAE,mBAAmBw3B,EAAEx3B,EAAE,WAAWse,EAAEte,EAAE,aAAai4B,EAAEj4B,EAAE,WAAW63B,EAAE73B,EAAE,cAAc43B,EAAE,EAAEO,EAAE,EAAE1Z,EAAE,EAAEtjB,GAAG,EAAE2gC,GAAG,EAAE19B,EAAE,EAAEvG,EAAE,EAAEkkC,EAAE,EAAEre,EAAE,EAAEgB,EAAE,IAAIvgB,EAAE,GAAGo5B,EAAE,GAAGzE,EAAE,EAAEpU,EAAE,EAAEsd,EAAE,GAAGxyB,EAAE,EAAElC,EAAE,IAAI20B,EAAE30B,EAAEkC,EAAE,EAAE0yB,EAAE,GAAG9d,EAAE,IAAIhX,EAAE,EAAEy0B,EAAE,EAAEF,EAAE,EAAEc,EAAE,EAAE,SAASE,EAAE38B,EAAE03B,GAAG,OAAO13B,EAAEytC,IAAI5V,EAAEH,GAAGA,EAAE,SAAS0a,EAAEpyC,GAAG,OAAOA,GAAG,IAAI,EAAEA,EAAE,EAAE,GAAG,SAASqyC,EAAEryC,GAAG,IAAI,IAAI03B,EAAE13B,EAAEhK,OAAO,KAAK0hC,GAAG13B,EAAE03B,GAAG,EAAE,SAASrwB,EAAErH,GAAG,IAAI03B,EAAE13B,EAAEgsC,MAAMvU,EAAEC,EAAE4a,QAAQ7a,EAAEz3B,EAAE6tC,YAAYpW,EAAEz3B,EAAE6tC,WAAW,IAAIpW,IAAIO,EAAEiY,SAASjwC,EAAEuuC,OAAO7W,EAAE6a,YAAY7a,EAAE8a,YAAY/a,EAAEz3B,EAAEyuC,UAAUzuC,EAAEyuC,UAAUhX,EAAEC,EAAE8a,aAAa/a,EAAEz3B,EAAEyyC,WAAWhb,EAAEz3B,EAAE6tC,WAAWpW,EAAEC,EAAE4a,SAAS7a,EAAE,IAAIC,EAAE4a,UAAU5a,EAAE8a,YAAY,IAAI,SAASE,EAAE1yC,EAAE03B,GAAGF,EAAEmb,gBAAgB3yC,EAAE,GAAGA,EAAE4yC,YAAY5yC,EAAE4yC,aAAa,EAAE5yC,EAAE6yC,SAAS7yC,EAAE4yC,YAAYlb,GAAG13B,EAAE4yC,YAAY5yC,EAAE6yC,SAASxrC,EAAErH,EAAE4tC,MAAM,SAASkF,EAAE9yC,EAAE03B,GAAG13B,EAAEuyC,YAAYvyC,EAAEsyC,WAAW5a,EAAE,SAASqb,EAAE/yC,EAAE03B,GAAG13B,EAAEuyC,YAAYvyC,EAAEsyC,WAAW5a,IAAI,EAAE,IAAI13B,EAAEuyC,YAAYvyC,EAAEsyC,WAAW,IAAI5a,EAAE,SAASzZ,EAAEje,EAAE03B,GAAG,IAAID,EAAEI,EAAEhgC,EAAEmI,EAAEgzC,iBAAiBt0B,EAAE1e,EAAE6yC,SAAS10C,EAAE6B,EAAEizC,YAAY1b,EAAEv3B,EAAEkzC,WAAW10B,EAAExe,EAAE6yC,SAAS7yC,EAAEmzC,OAAOlX,EAAEj8B,EAAE6yC,UAAU7yC,EAAEmzC,OAAOlX,GAAG,EAAEzE,EAAEx3B,EAAEgI,OAAO4vB,EAAE53B,EAAEozC,OAAOjb,EAAEn4B,EAAE8I,KAAKkvB,EAAEh4B,EAAE6yC,SAASvrC,EAAEgX,EAAEkZ,EAAE9Y,EAAEvgB,EAAE,GAAG85B,EAAET,EAAE9Y,EAAEvgB,GAAG6B,EAAEizC,aAAajzC,EAAEqzC,aAAax7C,IAAI,GAAG0/B,EAAEv3B,EAAEszC,YAAY/b,EAAEv3B,EAAEszC,WAAW,GAAG,GAAG9b,GAAGC,EAAEC,GAAGv5B,KAAK85B,GAAGT,EAAEC,EAAEt5B,EAAE,KAAKmgB,GAAGkZ,EAAEC,KAAKD,EAAE9Y,IAAI8Y,IAAIC,KAAKD,EAAE9Y,EAAE,GAAG,CAACA,GAAG,EAAE+Y,IAAI,UAAUD,IAAI9Y,KAAK8Y,IAAIC,IAAID,IAAI9Y,KAAK8Y,IAAIC,IAAID,IAAI9Y,KAAK8Y,IAAIC,IAAID,IAAI9Y,KAAK8Y,IAAIC,IAAID,IAAI9Y,KAAK8Y,IAAIC,IAAID,IAAI9Y,KAAK8Y,IAAIC,IAAID,IAAI9Y,KAAK8Y,IAAIC,IAAID,IAAI9Y,KAAK8Y,IAAIC,IAAI/Y,EAAEsZ,GAAG,GAAGH,EAAEvwB,GAAG0wB,EAAEtZ,GAAGA,EAAEsZ,EAAE1wB,EAAEnJ,EAAE05B,EAAE,CAAC,GAAG73B,EAAEuzC,YAAY7b,EAAEH,IAAIp5B,EAAE05B,GAAG,MAAMvZ,EAAEkZ,EAAE9Y,EAAEvgB,EAAE,GAAG85B,EAAET,EAAE9Y,EAAEvgB,YAAYu5B,EAAES,EAAET,EAAEE,IAAIpZ,GAAG,KAAK3mB,GAAG,OAAOsG,GAAG6B,EAAEszC,UAAUn1C,EAAE6B,EAAEszC,UAAU,SAASzvC,EAAE7D,GAAG,IAAI03B,EAAED,EAAEI,EAAEhgC,EAAE6mB,EAAEvgB,EAAEo5B,EAAE/Y,EAAEgZ,EAAEI,EAAEO,EAAEn4B,EAAEmzC,OAAO,EAAE,CAAC,GAAGt7C,EAAEmI,EAAEwzC,YAAYxzC,EAAEszC,UAAUtzC,EAAE6yC,SAAS7yC,EAAE6yC,UAAU1a,GAAGA,EAAE8D,GAAG,CAAC,IAAIjE,EAAEiY,SAASjwC,EAAEgI,OAAOhI,EAAEgI,OAAOmwB,EAAEA,EAAE,GAAGn4B,EAAEuzC,aAAapb,EAAEn4B,EAAE6yC,UAAU1a,EAAEn4B,EAAE4yC,aAAaza,EAAET,EAAED,EAAEz3B,EAAEyzC,UAAU5b,EAAE73B,EAAE0zC,OAAOhc,GAAG13B,EAAE0zC,KAAKhc,GAAGS,GAAGN,EAAEA,EAAEM,EAAE,IAAIV,IAAI,IAAIC,EAAED,EAAEU,EAAEN,EAAE73B,EAAE8I,OAAO4uB,GAAG13B,EAAE8I,KAAK4uB,GAAGS,GAAGN,EAAEA,EAAEM,EAAE,IAAIV,IAAI5/B,GAAGsgC,EAAE,GAAG,IAAIn4B,EAAE4tC,KAAKU,SAAS,MAAM,GAAGnwC,EAAE6B,EAAE4tC,KAAKrW,EAAEv3B,EAAEgI,OAAOwW,EAAExe,EAAE6yC,SAAS7yC,EAAEszC,UAAU9b,EAAE3/B,EAAE+/B,OAAE,EAAOA,EAAEz5B,EAAEmwC,SAAS9W,EAAEI,IAAIA,EAAEJ,GAAGC,EAAE,IAAIG,EAAE,GAAGz5B,EAAEmwC,UAAU1W,EAAEI,EAAEiY,SAAS1Y,EAAEp5B,EAAEgR,MAAMhR,EAAEkwC,QAAQzW,EAAEpZ,GAAG,IAAIrgB,EAAE6tC,MAAMpjC,KAAKzK,EAAEw1C,MAAMr1B,EAAEngB,EAAEw1C,MAAMpc,EAAEK,EAAEpZ,GAAG,IAAIrgB,EAAE6tC,MAAMpjC,OAAOzK,EAAEw1C,MAAM1b,EAAE95B,EAAEw1C,MAAMpc,EAAEK,EAAEpZ,IAAIrgB,EAAEkwC,SAASzW,EAAEz5B,EAAEy1C,UAAUhc,EAAEA,GAAG53B,EAAEszC,WAAW7b,EAAEz3B,EAAEszC,UAAUtzC,EAAE6zC,QAAQrqC,EAAE,IAAIkV,EAAE1e,EAAE6yC,SAAS7yC,EAAE6zC,OAAO7zC,EAAE8zC,MAAM9zC,EAAEgI,OAAO0W,GAAG1e,EAAE8zC,OAAO9zC,EAAE8zC,OAAO9zC,EAAE+zC,WAAW/zC,EAAEgI,OAAO0W,EAAE,IAAI1e,EAAEg0C,UAAUh0C,EAAE6zC,SAAS7zC,EAAE8zC,OAAO9zC,EAAE8zC,OAAO9zC,EAAE+zC,WAAW/zC,EAAEgI,OAAO0W,EAAElV,EAAE,IAAIxJ,EAAEg0C,UAAUh0C,EAAE8I,KAAK4V,EAAE1e,EAAEozC,QAAQpzC,EAAE0zC,KAAK1zC,EAAE8zC,OAAO9zC,EAAE0zC,KAAK1zC,EAAE8zC,OAAOp1B,EAAEA,IAAI1e,EAAE6zC,WAAW7zC,EAAEszC,UAAUtzC,EAAE6zC,OAAOrqC,aAAaxJ,EAAEszC,UAAUrX,GAAG,IAAIj8B,EAAE4tC,KAAKU,UAAU,SAAS/mC,EAAEvH,EAAE03B,GAAG,IAAI,IAAID,EAAEI,IAAI,CAAC,GAAG73B,EAAEszC,UAAUrX,EAAE,CAAC,GAAGp4B,EAAE7D,GAAGA,EAAEszC,UAAUrX,GAAGvE,IAAIE,EAAE,OAAOxwB,EAAE,GAAG,IAAIpH,EAAEszC,UAAU,MAAM,GAAG7b,EAAE,EAAEz3B,EAAEszC,WAAW9pC,IAAIxJ,EAAE8zC,OAAO9zC,EAAE8zC,OAAO9zC,EAAE+zC,WAAW/zC,EAAEgI,OAAOhI,EAAE6yC,SAASrpC,EAAE,IAAIxJ,EAAEg0C,UAAUvc,EAAEz3B,EAAE8I,KAAK9I,EAAE6yC,SAAS7yC,EAAEozC,QAAQpzC,EAAE0zC,KAAK1zC,EAAE8zC,OAAO9zC,EAAE0zC,KAAK1zC,EAAE8zC,OAAO9zC,EAAE6yC,UAAU,IAAIpb,GAAGz3B,EAAE6yC,SAASpb,GAAGz3B,EAAEmzC,OAAOlX,IAAIj8B,EAAEi0C,aAAah2B,EAAEje,EAAEy3B,IAAIz3B,EAAEi0C,cAAczqC,EAAE,GAAGquB,EAAEL,EAAE0c,UAAUl0C,EAAEA,EAAE6yC,SAAS7yC,EAAEuzC,YAAYvzC,EAAEi0C,aAAazqC,GAAGxJ,EAAEszC,WAAWtzC,EAAEi0C,aAAaj0C,EAAEi0C,cAAcj0C,EAAEm0C,gBAAgBn0C,EAAEszC,WAAW9pC,EAAE,CAAC,IAAIxJ,EAAEi0C,eAAej0C,EAAE6yC,WAAW7yC,EAAE8zC,OAAO9zC,EAAE8zC,OAAO9zC,EAAE+zC,WAAW/zC,EAAEgI,OAAOhI,EAAE6yC,SAASrpC,EAAE,IAAIxJ,EAAEg0C,UAAUvc,EAAEz3B,EAAE8I,KAAK9I,EAAE6yC,SAAS7yC,EAAEozC,QAAQpzC,EAAE0zC,KAAK1zC,EAAE8zC,OAAO9zC,EAAE0zC,KAAK1zC,EAAE8zC,OAAO9zC,EAAE6yC,SAAS,KAAK7yC,EAAEi0C,eAAej0C,EAAE6yC,gBAAgB7yC,EAAE6yC,UAAU7yC,EAAEi0C,aAAaj0C,EAAEi0C,aAAa,EAAEj0C,EAAE8zC,MAAM9zC,EAAEgI,OAAOhI,EAAE6yC,UAAU7yC,EAAE8zC,OAAO9zC,EAAE8zC,OAAO9zC,EAAE+zC,WAAW/zC,EAAEgI,OAAOhI,EAAE6yC,SAAS,IAAI7yC,EAAEg0C,eAAenc,EAAEL,EAAE0c,UAAUl0C,EAAE,EAAEA,EAAEgI,OAAOhI,EAAE6yC,WAAW7yC,EAAEszC,YAAYtzC,EAAE6yC,WAAW,GAAGhb,IAAI6a,EAAE1yC,GAAE,GAAI,IAAIA,EAAE4tC,KAAKC,WAAW,OAAOzmC,EAAE,OAAOpH,EAAE6zC,OAAO7zC,EAAE6yC,SAASrpC,EAAE,EAAExJ,EAAE6yC,SAASrpC,EAAE,EAAEkuB,IAAIS,GAAGua,EAAE1yC,GAAE,GAAI,IAAIA,EAAE4tC,KAAKC,UAAUlS,EAAEc,GAAGz8B,EAAEo0C,WAAW1B,EAAE1yC,GAAE,GAAI,IAAIA,EAAE4tC,KAAKC,WAAWzmC,EAAEy0B,EAAE,SAASwY,EAAEr0C,EAAE03B,GAAG,IAAI,IAAID,EAAEI,EAAEhgC,IAAI,CAAC,GAAGmI,EAAEszC,UAAUrX,EAAE,CAAC,GAAGp4B,EAAE7D,GAAGA,EAAEszC,UAAUrX,GAAGvE,IAAIE,EAAE,OAAOxwB,EAAE,GAAG,IAAIpH,EAAEszC,UAAU,MAAM,GAAG7b,EAAE,EAAEz3B,EAAEszC,WAAW9pC,IAAIxJ,EAAE8zC,OAAO9zC,EAAE8zC,OAAO9zC,EAAE+zC,WAAW/zC,EAAEgI,OAAOhI,EAAE6yC,SAASrpC,EAAE,IAAIxJ,EAAEg0C,UAAUvc,EAAEz3B,EAAE8I,KAAK9I,EAAE6yC,SAAS7yC,EAAEozC,QAAQpzC,EAAE0zC,KAAK1zC,EAAE8zC,OAAO9zC,EAAE0zC,KAAK1zC,EAAE8zC,OAAO9zC,EAAE6yC,UAAU7yC,EAAEizC,YAAYjzC,EAAEi0C,aAAaj0C,EAAEs0C,WAAWt0C,EAAEuzC,YAAYvzC,EAAEi0C,aAAazqC,EAAE,EAAE,IAAIiuB,GAAGz3B,EAAEizC,YAAYjzC,EAAEm0C,gBAAgBn0C,EAAE6yC,SAASpb,GAAGz3B,EAAEmzC,OAAOlX,IAAIj8B,EAAEi0C,aAAah2B,EAAEje,EAAEy3B,GAAGz3B,EAAEi0C,cAAc,IAAI,IAAIj0C,EAAEstC,UAAUttC,EAAEi0C,eAAezqC,GAAG,KAAKxJ,EAAE6yC,SAAS7yC,EAAEuzC,eAAevzC,EAAEi0C,aAAazqC,EAAE,IAAIxJ,EAAEizC,aAAazpC,GAAGxJ,EAAEi0C,cAAcj0C,EAAEizC,YAAY,CAAC,IAAIp7C,EAAEmI,EAAE6yC,SAAS7yC,EAAEszC,UAAU9pC,EAAEquB,EAAEL,EAAE0c,UAAUl0C,EAAEA,EAAE6yC,SAAS,EAAE7yC,EAAEs0C,WAAWt0C,EAAEizC,YAAYzpC,GAAGxJ,EAAEszC,WAAWtzC,EAAEizC,YAAY,EAAEjzC,EAAEizC,aAAa,IAAIjzC,EAAE6yC,UAAUh7C,IAAImI,EAAE8zC,OAAO9zC,EAAE8zC,OAAO9zC,EAAE+zC,WAAW/zC,EAAEgI,OAAOhI,EAAE6yC,SAASrpC,EAAE,IAAIxJ,EAAEg0C,UAAUvc,EAAEz3B,EAAE8I,KAAK9I,EAAE6yC,SAAS7yC,EAAEozC,QAAQpzC,EAAE0zC,KAAK1zC,EAAE8zC,OAAO9zC,EAAE0zC,KAAK1zC,EAAE8zC,OAAO9zC,EAAE6yC,UAAU,KAAK7yC,EAAEizC,cAAc,GAAGjzC,EAAEu0C,gBAAgB,EAAEv0C,EAAEi0C,aAAazqC,EAAE,EAAExJ,EAAE6yC,WAAWhb,IAAI6a,EAAE1yC,GAAE,GAAI,IAAIA,EAAE4tC,KAAKC,WAAW,OAAOzmC,OAAO,GAAGpH,EAAEu0C,iBAAiB,IAAI1c,EAAEL,EAAE0c,UAAUl0C,EAAE,EAAEA,EAAEgI,OAAOhI,EAAE6yC,SAAS,MAAMH,EAAE1yC,GAAE,GAAIA,EAAE6yC,WAAW7yC,EAAEszC,YAAY,IAAItzC,EAAE4tC,KAAKC,UAAU,OAAOzmC,OAAOpH,EAAEu0C,gBAAgB,EAAEv0C,EAAE6yC,WAAW7yC,EAAEszC,YAAY,OAAOtzC,EAAEu0C,kBAAkB1c,EAAEL,EAAE0c,UAAUl0C,EAAE,EAAEA,EAAEgI,OAAOhI,EAAE6yC,SAAS,IAAI7yC,EAAEu0C,gBAAgB,GAAGv0C,EAAE6zC,OAAO7zC,EAAE6yC,SAASrpC,EAAE,EAAExJ,EAAE6yC,SAASrpC,EAAE,EAAEkuB,IAAIS,GAAGua,EAAE1yC,GAAE,GAAI,IAAIA,EAAE4tC,KAAKC,UAAUlS,EAAEc,GAAGz8B,EAAEo0C,WAAW1B,EAAE1yC,GAAE,GAAI,IAAIA,EAAE4tC,KAAKC,WAAWzmC,EAAEy0B,EAAE,SAAS/d,EAAE9d,EAAE03B,EAAED,EAAEI,EAAEhgC,GAAGuE,KAAKo4C,YAAYx0C,EAAE5D,KAAKq4C,SAAS/c,EAAEt7B,KAAKs4C,YAAYjd,EAAEr7B,KAAKu4C,UAAU9c,EAAEz7B,KAAKw4C,KAAK/8C,EAAE,SAAS0mB,IAAIniB,KAAKwxC,KAAK,KAAKxxC,KAAKqwC,OAAO,EAAErwC,KAAKm2C,YAAY,KAAKn2C,KAAKy4C,iBAAiB,EAAEz4C,KAAKo2C,YAAY,EAAEp2C,KAAKk2C,QAAQ,EAAEl2C,KAAKwM,KAAK,EAAExM,KAAK04C,OAAO,KAAK14C,KAAK24C,QAAQ,EAAE34C,KAAK8wC,OAAOnR,EAAE3/B,KAAK44C,YAAY,EAAE54C,KAAK+2C,OAAO,EAAE/2C,KAAK64C,OAAO,EAAE74C,KAAKg3C,OAAO,EAAEh3C,KAAK4L,OAAO,KAAK5L,KAAKo3C,YAAY,EAAEp3C,KAAK0M,KAAK,KAAK1M,KAAKs3C,KAAK,KAAKt3C,KAAK03C,MAAM,EAAE13C,KAAKq3C,UAAU,EAAEr3C,KAAK84C,UAAU,EAAE94C,KAAK43C,UAAU,EAAE53C,KAAK23C,WAAW,EAAE33C,KAAKw2C,YAAY,EAAEx2C,KAAK63C,aAAa,EAAE73C,KAAKk4C,WAAW,EAAEl4C,KAAKm4C,gBAAgB,EAAEn4C,KAAKy2C,SAAS,EAAEz2C,KAAKm3C,YAAY,EAAEn3C,KAAKk3C,UAAU,EAAEl3C,KAAK62C,YAAY,EAAE72C,KAAK42C,iBAAiB,EAAE52C,KAAK+3C,eAAe,EAAE/3C,KAAKi/B,MAAM,EAAEj/B,KAAKkxC,SAAS,EAAElxC,KAAKi3C,WAAW,EAAEj3C,KAAK82C,WAAW,EAAE92C,KAAK+4C,UAAU,IAAInd,EAAEyY,MAAM,EAAE3d,GAAG12B,KAAKg5C,UAAU,IAAIpd,EAAEyY,MAAM,GAAG,EAAEtyC,EAAE,IAAI/B,KAAKi5C,QAAQ,IAAIrd,EAAEyY,MAAM,GAAG,EAAElZ,EAAE,IAAI8a,EAAEj2C,KAAK+4C,WAAW9C,EAAEj2C,KAAKg5C,WAAW/C,EAAEj2C,KAAKi5C,SAASj5C,KAAKk5C,OAAO,KAAKl5C,KAAKm5C,OAAO,KAAKn5C,KAAKo5C,QAAQ,KAAKp5C,KAAKq5C,SAAS,IAAIzd,EAAEyY,MAAMzU,EAAE,GAAG5/B,KAAKs5C,KAAK,IAAI1d,EAAEyY,MAAM,EAAE/xB,EAAE,GAAG2zB,EAAEj2C,KAAKs5C,MAAMt5C,KAAKu5C,SAAS,EAAEv5C,KAAKw5C,SAAS,EAAEx5C,KAAKy5C,MAAM,IAAI7d,EAAEyY,MAAM,EAAE/xB,EAAE,GAAG2zB,EAAEj2C,KAAKy5C,OAAOz5C,KAAK05C,MAAM,EAAE15C,KAAK25C,YAAY,EAAE35C,KAAKg4C,SAAS,EAAEh4C,KAAK45C,MAAM,EAAE55C,KAAK65C,QAAQ,EAAE75C,KAAK85C,WAAW,EAAE95C,KAAK+5C,QAAQ,EAAE/5C,KAAKy3C,OAAO,EAAEz3C,KAAKg6C,OAAO,EAAEh6C,KAAKi6C,SAAS,EAAE,SAASC,EAAEt2C,GAAG,IAAI03B,EAAE,OAAO13B,GAAGA,EAAEgsC,OAAOhsC,EAAE4zC,SAAS5zC,EAAEyyC,UAAU,EAAEzyC,EAAEu2C,UAAU1+C,GAAG6/B,EAAE13B,EAAEgsC,OAAOsG,QAAQ,EAAE5a,EAAE8a,YAAY,EAAE9a,EAAE9uB,KAAK,IAAI8uB,EAAE9uB,MAAM8uB,EAAE9uB,MAAM8uB,EAAE+U,OAAO/U,EAAE9uB,KAAKszB,EAAE9d,EAAEpe,EAAE2zC,MAAM,IAAIjc,EAAE9uB,KAAK,EAAE,EAAE8uB,EAAEsd,WAAWpd,EAAEJ,EAAEgf,SAAS9e,GAAGjZ,GAAGke,EAAE38B,EAAE7E,GAAG,SAASs7C,EAAEz2C,GAAG,IAAI03B,EAAE4e,EAAEt2C,GAAG,OAAO03B,IAAIjZ,GAAG,SAASze,GAAGA,EAAEwzC,YAAY,EAAExzC,EAAEmzC,OAAOd,EAAEryC,EAAE0zC,MAAM1zC,EAAEm0C,eAAe31B,EAAExe,EAAEq7B,OAAOoZ,SAASz0C,EAAEqzC,WAAW70B,EAAExe,EAAEq7B,OAAOmZ,YAAYx0C,EAAEkzC,WAAW10B,EAAExe,EAAEq7B,OAAOqZ,YAAY10C,EAAEgzC,iBAAiBx0B,EAAExe,EAAEq7B,OAAOsZ,UAAU30C,EAAE6yC,SAAS,EAAE7yC,EAAE4yC,YAAY,EAAE5yC,EAAEszC,UAAU,EAAEtzC,EAAE6zC,OAAO,EAAE7zC,EAAEi0C,aAAaj0C,EAAEizC,YAAYzpC,EAAE,EAAExJ,EAAEu0C,gBAAgB,EAAEv0C,EAAE8zC,MAAM,EAAvT,CAA0T9zC,EAAEgsC,OAAOtU,EAAE,SAASgf,EAAE12C,EAAE03B,EAAED,EAAEI,EAAEhgC,EAAE6mB,GAAG,IAAI1e,EAAE,OAAO7E,EAAE,IAAIgD,EAAE,EAAE,GAAGu5B,IAAIoE,IAAIpE,EAAE,GAAGG,EAAE,GAAG15B,EAAE,EAAE05B,GAAGA,GAAG,GAAGA,IAAI15B,EAAE,EAAE05B,GAAG,IAAIhgC,EAAE,GAAG6lB,EAAE7lB,GAAG4/B,IAAIsE,GAAGlE,EAAE,GAAG,GAAGA,GAAGH,EAAE,GAAG,EAAEA,GAAGhZ,EAAE,GAAGtgB,EAAEsgB,EAAE,OAAOie,EAAE38B,EAAE7E,GAAG,IAAI08B,IAAIA,EAAE,GAAG,IAAIN,EAAE,IAAIhZ,EAAE,OAAOve,EAAEgsC,MAAMzU,GAAGqW,KAAK5tC,EAAEu3B,EAAE3uB,KAAKzK,EAAEo5B,EAAEud,OAAO,KAAKvd,EAAE0d,OAAOpd,EAAEN,EAAE4b,OAAO,GAAG5b,EAAE0d,OAAO1d,EAAE6b,OAAO7b,EAAE4b,OAAO,EAAE5b,EAAE2d,UAAUr9C,EAAE,EAAE0/B,EAAEkc,UAAU,GAAGlc,EAAE2d,UAAU3d,EAAEyc,UAAUzc,EAAEkc,UAAU,EAAElc,EAAEwc,eAAexc,EAAE2d,UAAU1rC,EAAE,GAAGA,GAAG+tB,EAAEvvB,OAAO,IAAIgwB,EAAEwW,KAAK,EAAEjX,EAAE4b,QAAQ5b,EAAEmc,KAAK,IAAI1b,EAAEyY,MAAMlZ,EAAEkc,WAAWlc,EAAEzuB,KAAK,IAAIkvB,EAAEyY,MAAMlZ,EAAE4b,QAAQ5b,EAAEwe,YAAY,GAAGl+C,EAAE,EAAE0/B,EAAEsd,iBAAiB,EAAEtd,EAAEwe,YAAYxe,EAAEgb,YAAY,IAAIva,EAAEwW,KAAKjX,EAAEsd,kBAAkBtd,EAAEye,MAAM,EAAEze,EAAEwe,YAAYxe,EAAEue,MAAM,EAAEve,EAAEwe,YAAYxe,EAAE8D,MAAM3D,EAAEH,EAAE+V,SAAS5uB,EAAE6Y,EAAE2V,OAAOzV,EAAEgf,EAAEz2C,GAAGwe,EAAE,CAAC,IAAIV,EAAE,EAAE,EAAE,EAAE,GAAE,SAAS9d,EAAE03B,GAAG,IAAID,EAAE,MAAM,IAAIA,EAAEz3B,EAAE60C,iBAAiB,IAAIpd,EAAEz3B,EAAE60C,iBAAiB,KAAK,CAAC,GAAG70C,EAAEszC,WAAW,EAAE,CAAC,GAAGzvC,EAAE7D,GAAG,IAAIA,EAAEszC,WAAW5b,IAAIE,EAAE,OAAOxwB,EAAE,GAAG,IAAIpH,EAAEszC,UAAU,MAAMtzC,EAAE6yC,UAAU7yC,EAAEszC,UAAUtzC,EAAEszC,UAAU,EAAE,IAAIzb,EAAE73B,EAAE4yC,YAAYnb,EAAE,IAAI,IAAIz3B,EAAE6yC,UAAU7yC,EAAE6yC,UAAUhb,KAAK73B,EAAEszC,UAAUtzC,EAAE6yC,SAAShb,EAAE73B,EAAE6yC,SAAShb,EAAE6a,EAAE1yC,GAAE,GAAI,IAAIA,EAAE4tC,KAAKC,WAAW,OAAOzmC,EAAE,GAAGpH,EAAE6yC,SAAS7yC,EAAE4yC,aAAa5yC,EAAEmzC,OAAOlX,IAAIyW,EAAE1yC,GAAE,GAAI,IAAIA,EAAE4tC,KAAKC,WAAW,OAAOzmC,EAAE,OAAOpH,EAAE6zC,OAAO,EAAEnc,IAAIS,GAAGua,EAAE1yC,GAAE,GAAI,IAAIA,EAAE4tC,KAAKC,UAAUlS,EAAEc,IAAIz8B,EAAE6yC,SAAS7yC,EAAE4yC,cAAcF,EAAE1yC,GAAE,GAAIA,EAAE4tC,KAAKC,WAAWzmC,MAAK,IAAI0W,EAAE,EAAE,EAAE,EAAE,EAAEvW,GAAG,IAAIuW,EAAE,EAAE,EAAE,GAAG,EAAEvW,GAAG,IAAIuW,EAAE,EAAE,EAAE,GAAG,GAAGvW,GAAG,IAAIuW,EAAE,EAAE,EAAE,GAAG,GAAGu2B,GAAG,IAAIv2B,EAAE,EAAE,GAAG,GAAG,GAAGu2B,GAAG,IAAIv2B,EAAE,EAAE,GAAG,IAAI,IAAIu2B,GAAG,IAAIv2B,EAAE,EAAE,GAAG,IAAI,IAAIu2B,GAAG,IAAIv2B,EAAE,GAAG,IAAI,IAAI,KAAKu2B,GAAG,IAAIv2B,EAAE,GAAG,IAAI,IAAI,KAAKu2B,IAAI5c,EAAEkf,YAAY,SAAS32C,EAAE03B,GAAG,OAAOgf,EAAE12C,EAAE03B,EAAEqE,EAAE,GAAG,EAAE,IAAItE,EAAEqW,aAAa4I,EAAEjf,EAAEmf,aAAaH,EAAEhf,EAAEof,iBAAiBP,EAAE7e,EAAEuW,iBAAiB,SAAShuC,EAAE03B,GAAG,OAAO13B,GAAGA,EAAEgsC,MAAM,IAAIhsC,EAAEgsC,MAAMpjC,KAAKzN,GAAG6E,EAAEgsC,MAAM8I,OAAOpd,EAAEjZ,GAAGtjB,GAAGs8B,EAAEiX,QAAQ,SAAS1uC,EAAE03B,GAAG,IAAID,EAAEI,EAAEhgC,EAAE6mB,EAAE,IAAI1e,IAAIA,EAAEgsC,OAAO,EAAEtU,GAAGA,EAAE,EAAE,OAAO13B,EAAE28B,EAAE38B,EAAE7E,GAAGA,EAAE,GAAG08B,EAAE73B,EAAEgsC,OAAOhsC,EAAEuuC,SAASvuC,EAAEmP,OAAO,IAAInP,EAAEsuC,UAAU,MAAMzW,EAAE4U,QAAQ/U,IAAIS,EAAE,OAAOwE,EAAE38B,EAAE,IAAIA,EAAE6tC,WAAW,EAAE1yC,GAAG,GAAG08B,EAAE+V,KAAK5tC,EAAEy3B,EAAEI,EAAEmd,WAAWnd,EAAEmd,WAAWtd,EAAEG,EAAE4U,SAASvQ,EAAE,GAAG,IAAIrE,EAAEjvB,KAAK5I,EAAE2zC,MAAM,EAAEb,EAAEjb,EAAE,IAAIib,EAAEjb,EAAE,KAAKib,EAAEjb,EAAE,GAAGA,EAAEid,QAAQhC,EAAEjb,GAAGA,EAAEid,OAAOn8C,KAAK,EAAE,IAAIk/B,EAAEid,OAAOgC,KAAK,EAAE,IAAIjf,EAAEid,OAAOiC,MAAM,EAAE,IAAIlf,EAAEid,OAAO92C,KAAK,EAAE,IAAI65B,EAAEid,OAAO5a,QAAQ,GAAG,IAAI4Y,EAAEjb,EAAE,IAAIA,EAAEid,OAAOrrC,MAAMqpC,EAAEjb,EAAEA,EAAEid,OAAOrrC,MAAM,EAAE,KAAKqpC,EAAEjb,EAAEA,EAAEid,OAAOrrC,MAAM,GAAG,KAAKqpC,EAAEjb,EAAEA,EAAEid,OAAOrrC,MAAM,GAAG,KAAKqpC,EAAEjb,EAAE,IAAIA,EAAEwD,MAAM,EAAE,GAAGxD,EAAEyV,UAAUzV,EAAEwD,MAAM,EAAE,EAAE,GAAGyX,EAAEjb,EAAE,IAAIA,EAAEid,OAAO5gD,IAAI2jC,EAAEid,OAAOiC,OAAOlf,EAAEid,OAAOiC,MAAM/gD,SAAS88C,EAAEjb,EAAE,IAAIA,EAAEid,OAAOiC,MAAM/gD,QAAQ88C,EAAEjb,EAAEA,EAAEid,OAAOiC,MAAM/gD,QAAQ,EAAE,MAAM6hC,EAAEid,OAAOgC,OAAO92C,EAAE2zC,MAAM1b,EAAEj4B,EAAE2zC,MAAM9b,EAAE0a,YAAY1a,EAAEya,QAAQ,IAAIza,EAAEkd,QAAQ,EAAEld,EAAE4U,OAAO,KAAKqG,EAAEjb,EAAE,GAAGib,EAAEjb,EAAE,GAAGib,EAAEjb,EAAE,GAAGib,EAAEjb,EAAE,GAAGib,EAAEjb,EAAE,GAAGib,EAAEjb,EAAE,IAAIA,EAAEwD,MAAM,EAAE,GAAGxD,EAAEyV,UAAUzV,EAAEwD,MAAM,EAAE,EAAE,GAAGyX,EAAEjb,EAAE,GAAGA,EAAE4U,OAAOruB,OAAO,CAAC,IAAIjgB,EAAE49B,GAAGlE,EAAEod,OAAO,GAAG,IAAI,EAAE92C,IAAI,GAAG05B,EAAEyV,UAAUzV,EAAEwD,MAAM,EAAE,EAAExD,EAAEwD,MAAM,EAAE,EAAE,IAAIxD,EAAEwD,MAAM,EAAE,IAAI,EAAE,IAAIxD,EAAEgb,WAAW10C,GAAG,IAAIA,GAAG,GAAGA,EAAE,GAAG05B,EAAE4U,OAAOruB,EAAE20B,EAAElb,EAAE15B,GAAG,IAAI05B,EAAEgb,WAAWE,EAAElb,EAAE73B,EAAE2zC,QAAQ,IAAIZ,EAAElb,EAAE,MAAM73B,EAAE2zC,QAAQ3zC,EAAE2zC,MAAM,EAAE,GAAG,KAAK9b,EAAE4U,OAAO,GAAG5U,EAAEid,OAAOiC,MAAM,CAAC,IAAIl/C,EAAEggC,EAAEya,QAAQza,EAAEkd,SAAS,MAAMld,EAAEid,OAAOiC,MAAM/gD,UAAU6hC,EAAEya,UAAUza,EAAEgd,mBAAmBhd,EAAEid,OAAOgC,MAAMjf,EAAEya,QAAQz6C,IAAImI,EAAE2zC,MAAM1b,EAAEj4B,EAAE2zC,MAAM9b,EAAE0a,YAAY1a,EAAEya,QAAQz6C,EAAEA,IAAIwP,EAAErH,GAAGnI,EAAEggC,EAAEya,QAAQza,EAAEya,UAAUza,EAAEgd,oBAAoB/B,EAAEjb,EAAE,IAAIA,EAAEid,OAAOiC,MAAMlf,EAAEkd,UAAUld,EAAEkd,UAAUld,EAAEid,OAAOgC,MAAMjf,EAAEya,QAAQz6C,IAAImI,EAAE2zC,MAAM1b,EAAEj4B,EAAE2zC,MAAM9b,EAAE0a,YAAY1a,EAAEya,QAAQz6C,EAAEA,IAAIggC,EAAEkd,UAAUld,EAAEid,OAAOiC,MAAM/gD,SAAS6hC,EAAEkd,QAAQ,EAAEld,EAAE4U,OAAO,SAAS5U,EAAE4U,OAAO,GAAG,GAAG,KAAK5U,EAAE4U,OAAO,GAAG5U,EAAEid,OAAO92C,KAAK,CAACnG,EAAEggC,EAAEya,QAAQ,EAAE,CAAC,GAAGza,EAAEya,UAAUza,EAAEgd,mBAAmBhd,EAAEid,OAAOgC,MAAMjf,EAAEya,QAAQz6C,IAAImI,EAAE2zC,MAAM1b,EAAEj4B,EAAE2zC,MAAM9b,EAAE0a,YAAY1a,EAAEya,QAAQz6C,EAAEA,IAAIwP,EAAErH,GAAGnI,EAAEggC,EAAEya,QAAQza,EAAEya,UAAUza,EAAEgd,kBAAkB,CAACn2B,EAAE,EAAE,MAAMA,EAAEmZ,EAAEkd,QAAQld,EAAEid,OAAO92C,KAAKhI,OAAO,IAAI6hC,EAAEid,OAAO92C,KAAKgvB,WAAW6K,EAAEkd,WAAW,EAAEjC,EAAEjb,EAAEnZ,SAAS,IAAIA,GAAGmZ,EAAEid,OAAOgC,MAAMjf,EAAEya,QAAQz6C,IAAImI,EAAE2zC,MAAM1b,EAAEj4B,EAAE2zC,MAAM9b,EAAE0a,YAAY1a,EAAEya,QAAQz6C,EAAEA,IAAI,IAAI6mB,IAAImZ,EAAEkd,QAAQ,EAAEld,EAAE4U,OAAO,SAAS5U,EAAE4U,OAAO,GAAG,GAAG,KAAK5U,EAAE4U,OAAO,GAAG5U,EAAEid,OAAO5a,QAAQ,CAACriC,EAAEggC,EAAEya,QAAQ,EAAE,CAAC,GAAGza,EAAEya,UAAUza,EAAEgd,mBAAmBhd,EAAEid,OAAOgC,MAAMjf,EAAEya,QAAQz6C,IAAImI,EAAE2zC,MAAM1b,EAAEj4B,EAAE2zC,MAAM9b,EAAE0a,YAAY1a,EAAEya,QAAQz6C,EAAEA,IAAIwP,EAAErH,GAAGnI,EAAEggC,EAAEya,QAAQza,EAAEya,UAAUza,EAAEgd,kBAAkB,CAACn2B,EAAE,EAAE,MAAMA,EAAEmZ,EAAEkd,QAAQld,EAAEid,OAAO5a,QAAQlkC,OAAO,IAAI6hC,EAAEid,OAAO5a,QAAQlN,WAAW6K,EAAEkd,WAAW,EAAEjC,EAAEjb,EAAEnZ,SAAS,IAAIA,GAAGmZ,EAAEid,OAAOgC,MAAMjf,EAAEya,QAAQz6C,IAAImI,EAAE2zC,MAAM1b,EAAEj4B,EAAE2zC,MAAM9b,EAAE0a,YAAY1a,EAAEya,QAAQz6C,EAAEA,IAAI,IAAI6mB,IAAImZ,EAAE4U,OAAO,UAAU5U,EAAE4U,OAAO,IAAI,GAAG,MAAM5U,EAAE4U,SAAS5U,EAAEid,OAAOgC,MAAMjf,EAAEya,QAAQ,EAAEza,EAAEgd,kBAAkBxtC,EAAErH,GAAG63B,EAAEya,QAAQ,GAAGza,EAAEgd,mBAAmB/B,EAAEjb,EAAE,IAAI73B,EAAE2zC,OAAOb,EAAEjb,EAAE73B,EAAE2zC,OAAO,EAAE,KAAK3zC,EAAE2zC,MAAM,EAAE9b,EAAE4U,OAAOruB,IAAIyZ,EAAE4U,OAAOruB,GAAG,IAAIyZ,EAAEya,SAAS,GAAGjrC,EAAErH,GAAG,IAAIA,EAAE6tC,UAAU,OAAOhW,EAAEmd,YAAY,EAAEv2B,OAAO,GAAG,IAAIze,EAAEsuC,UAAU8D,EAAE1a,IAAI0a,EAAE3a,IAAIC,IAAIS,EAAE,OAAOwE,EAAE38B,GAAG,GAAG,GAAG,MAAM63B,EAAE4U,QAAQ,IAAIzsC,EAAEsuC,SAAS,OAAO3R,EAAE38B,GAAG,GAAG,GAAG,IAAIA,EAAEsuC,UAAU,IAAIzW,EAAEyb,WAAW5b,IAAIE,GAAG,MAAMC,EAAE4U,OAAO,CAAC,IAAIlV,EAAE,IAAIM,EAAEyV,SAAS,SAASttC,EAAE03B,GAAG,IAAI,IAAID,IAAI,CAAC,GAAG,IAAIz3B,EAAEszC,YAAYzvC,EAAE7D,GAAG,IAAIA,EAAEszC,WAAW,CAAC,GAAG5b,IAAIE,EAAE,OAAOxwB,EAAE,MAAM,GAAGpH,EAAEi0C,aAAa,EAAExc,EAAED,EAAE0c,UAAUl0C,EAAE,EAAEA,EAAEgI,OAAOhI,EAAE6yC,WAAW7yC,EAAEszC,YAAYtzC,EAAE6yC,WAAWpb,IAAIib,EAAE1yC,GAAE,GAAI,IAAIA,EAAE4tC,KAAKC,WAAW,OAAOzmC,EAAE,OAAOpH,EAAE6zC,OAAO,EAAEnc,IAAIS,GAAGua,EAAE1yC,GAAE,GAAI,IAAIA,EAAE4tC,KAAKC,UAAUlS,EAAEc,GAAGz8B,EAAEo0C,WAAW1B,EAAE1yC,GAAE,GAAI,IAAIA,EAAE4tC,KAAKC,WAAWzmC,EAAEy0B,EAAzU,CAA4UhE,EAAEH,GAAG,IAAIG,EAAEyV,SAAS,SAASttC,EAAE03B,GAAG,IAAI,IAAID,EAAEI,EAAEhgC,EAAE6mB,EAAEvgB,EAAE6B,EAAEgI,SAAS,CAAC,GAAGhI,EAAEszC,WAAWhsC,EAAE,CAAC,GAAGzD,EAAE7D,GAAGA,EAAEszC,WAAWhsC,GAAGowB,IAAIE,EAAE,OAAOxwB,EAAE,GAAG,IAAIpH,EAAEszC,UAAU,MAAM,GAAGtzC,EAAEi0C,aAAa,EAAEj0C,EAAEszC,WAAW9pC,GAAG,EAAExJ,EAAE6yC,WAAWhb,EAAE15B,EAAEtG,EAAEmI,EAAE6yC,SAAS,MAAM10C,IAAItG,IAAIggC,IAAI15B,IAAItG,IAAIggC,IAAI15B,IAAItG,GAAG,CAAC6mB,EAAE1e,EAAE6yC,SAASvrC,EAAE,UAAUuwB,IAAI15B,IAAItG,IAAIggC,IAAI15B,IAAItG,IAAIggC,IAAI15B,IAAItG,IAAIggC,IAAI15B,IAAItG,IAAIggC,IAAI15B,IAAItG,IAAIggC,IAAI15B,IAAItG,IAAIggC,IAAI15B,IAAItG,IAAIggC,IAAI15B,IAAItG,IAAIA,EAAE6mB,GAAG1e,EAAEi0C,aAAa3sC,GAAGoX,EAAE7mB,GAAGmI,EAAEi0C,aAAaj0C,EAAEszC,YAAYtzC,EAAEi0C,aAAaj0C,EAAEszC,WAAW,GAAGtzC,EAAEi0C,cAAczqC,GAAGiuB,EAAED,EAAE0c,UAAUl0C,EAAE,EAAEA,EAAEi0C,aAAazqC,GAAGxJ,EAAEszC,WAAWtzC,EAAEi0C,aAAaj0C,EAAE6yC,UAAU7yC,EAAEi0C,aAAaj0C,EAAEi0C,aAAa,IAAIxc,EAAED,EAAE0c,UAAUl0C,EAAE,EAAEA,EAAEgI,OAAOhI,EAAE6yC,WAAW7yC,EAAEszC,YAAYtzC,EAAE6yC,YAAYpb,IAAIib,EAAE1yC,GAAE,GAAI,IAAIA,EAAE4tC,KAAKC,WAAW,OAAOzmC,EAAE,OAAOpH,EAAE6zC,OAAO,EAAEnc,IAAIS,GAAGua,EAAE1yC,GAAE,GAAI,IAAIA,EAAE4tC,KAAKC,UAAUlS,EAAEc,GAAGz8B,EAAEo0C,WAAW1B,EAAE1yC,GAAE,GAAI,IAAIA,EAAE4tC,KAAKC,WAAWzmC,EAAEy0B,EAAlxB,CAAqxBhE,EAAEH,GAAGlZ,EAAEqZ,EAAEwD,OAAOuZ,KAAK/c,EAAEH,GAAG,GAAGH,IAAIoE,GAAGpE,IAAIkF,IAAI5E,EAAE4U,OAAO,KAAKlV,IAAInwB,GAAGmwB,IAAIoE,EAAE,OAAO,IAAI37B,EAAE6tC,YAAYhW,EAAEmd,YAAY,GAAGv2B,EAAE,GAAG8Y,IAAIsE,IAAI,IAAInE,EAAEF,EAAEwf,UAAUnf,GAAG,IAAIH,IAAIF,EAAEyf,iBAAiBpf,EAAE,EAAE,GAAE,GAAI,IAAIH,IAAI2a,EAAExa,EAAE6b,MAAM,IAAI7b,EAAEyb,YAAYzb,EAAEgb,SAAS,EAAEhb,EAAE+a,YAAY,EAAE/a,EAAEgc,OAAO,KAAKxsC,EAAErH,GAAG,IAAIA,EAAE6tC,WAAW,OAAOhW,EAAEmd,YAAY,EAAEv2B,EAAE,OAAOiZ,IAAIS,EAAE1Z,EAAEoZ,EAAEjvB,MAAM,EAAE,GAAG,IAAIivB,EAAEjvB,MAAMkqC,EAAEjb,EAAE,IAAI73B,EAAE2zC,OAAOb,EAAEjb,EAAE73B,EAAE2zC,OAAO,EAAE,KAAKb,EAAEjb,EAAE73B,EAAE2zC,OAAO,GAAG,KAAKb,EAAEjb,EAAE73B,EAAE2zC,OAAO,GAAG,KAAKb,EAAEjb,EAAE,IAAI73B,EAAE4zC,UAAUd,EAAEjb,EAAE73B,EAAE4zC,UAAU,EAAE,KAAKd,EAAEjb,EAAE73B,EAAE4zC,UAAU,GAAG,KAAKd,EAAEjb,EAAE73B,EAAE4zC,UAAU,GAAG,OAAOb,EAAElb,EAAE73B,EAAE2zC,QAAQ,IAAIZ,EAAElb,EAAE,MAAM73B,EAAE2zC,QAAQtsC,EAAErH,GAAG,EAAE63B,EAAEjvB,OAAOivB,EAAEjvB,MAAMivB,EAAEjvB,MAAM,IAAIivB,EAAEya,QAAQ7zB,EAAE,IAAIgZ,EAAEqX,WAAW,SAAS9uC,GAAG,IAAI03B,EAAE,OAAO13B,GAAGA,EAAEgsC,OAAOtU,EAAE13B,EAAEgsC,MAAMS,UAAUvQ,GAAG,KAAKxE,GAAG,KAAKA,GAAG,KAAKA,GAAG,MAAMA,GAAGA,IAAItZ,GAAG,MAAMsZ,EAAEiF,EAAE38B,EAAE7E,IAAI6E,EAAEgsC,MAAM,KAAKtU,IAAItZ,EAAEue,EAAE38B,GAAG,GAAGye,GAAGtjB,GAAGs8B,EAAE0W,qBAAqB,SAASnuC,EAAE03B,GAAG,IAAID,EAAEI,EAAEhgC,EAAE6mB,EAAEvgB,EAAEo5B,EAAE/Y,EAAEgZ,EAAEI,EAAEF,EAAE1hC,OAAO,IAAIgK,IAAIA,EAAEgsC,MAAM,OAAO7wC,EAAE,GAAG,KAAKujB,GAAG+Y,EAAEz3B,EAAEgsC,OAAOpjC,OAAO,IAAI8V,GAAG+Y,EAAEgV,SAASvQ,GAAGzE,EAAE6b,UAAU,OAAOn4C,EAAE,IAAI,IAAIujB,IAAI1e,EAAE2zC,MAAMr1B,EAAEte,EAAE2zC,MAAMjc,EAAEE,EAAE,IAAIH,EAAE7uB,KAAK,EAAEgvB,GAAGH,EAAE0b,SAAS,IAAIz0B,IAAI2zB,EAAE5a,EAAEic,MAAMjc,EAAEob,SAAS,EAAEpb,EAAEmb,YAAY,EAAEnb,EAAEoc,OAAO,GAAGrc,EAAE,IAAIQ,EAAEwW,KAAK/W,EAAE0b,QAAQnb,EAAEiY,SAASzY,EAAEE,EAAEE,EAAEH,EAAE0b,OAAO1b,EAAE0b,OAAO,GAAGzb,EAAEF,EAAEI,EAAEH,EAAE0b,QAAQh1C,EAAE6B,EAAEsuC,SAAS/W,EAAEv3B,EAAEquC,QAAQ7vB,EAAExe,EAAEmP,MAAMnP,EAAEsuC,SAAS1W,EAAE53B,EAAEquC,QAAQ,EAAEruC,EAAEmP,MAAMuoB,EAAE7zB,EAAE4zB,GAAGA,EAAE6b,WAAW9pC,GAAG,CAAC,IAAIquB,EAAEJ,EAAEob,SAASh7C,EAAE4/B,EAAE6b,WAAW9pC,EAAE,GAAGiuB,EAAEqc,OAAOrc,EAAEqc,OAAOrc,EAAEsc,WAAWtc,EAAEzvB,OAAO6vB,EAAEruB,EAAE,IAAIiuB,EAAEuc,UAAUvc,EAAE3uB,KAAK+uB,EAAEJ,EAAE2b,QAAQ3b,EAAEic,KAAKjc,EAAEqc,OAAOrc,EAAEic,KAAKjc,EAAEqc,OAAOjc,EAAEA,MAAMhgC,IAAI4/B,EAAEob,SAAShb,EAAEJ,EAAE6b,UAAU9pC,EAAE,EAAE3F,EAAE4zB,GAAG,OAAOA,EAAEob,UAAUpb,EAAE6b,UAAU7b,EAAEmb,YAAYnb,EAAEob,SAASpb,EAAEoc,OAAOpc,EAAE6b,UAAU7b,EAAE6b,UAAU,EAAE7b,EAAEwc,aAAaxc,EAAEwb,YAAYzpC,EAAE,EAAEiuB,EAAE8c,gBAAgB,EAAEv0C,EAAEquC,QAAQ9W,EAAEv3B,EAAEmP,MAAMqP,EAAExe,EAAEsuC,SAASnwC,EAAEs5B,EAAE7uB,KAAK8V,EAAED,GAAGgZ,EAAEyf,YAAY,sCAAsC,CAAC,kBAAkB,GAAG,YAAY,GAAG,UAAU,GAAG,aAAa,GAAG,UAAU,KAAKC,GAAG,CAAC,SAASn3C,EAAE03B,EAAED,GAAG,aAAaC,EAAEJ,QAAQ,WAAWl7B,KAAKzD,KAAK,EAAEyD,KAAKqN,KAAK,EAAErN,KAAKg7C,OAAO,EAAEh7C,KAAKlI,GAAG,EAAEkI,KAAK26C,MAAM,KAAK36C,KAAKi7C,UAAU,EAAEj7C,KAAK4B,KAAK,GAAG5B,KAAK89B,QAAQ,GAAG99B,KAAK06C,KAAK,EAAE16C,KAAKmtB,MAAK,IAAK,IAAI+tB,GAAG,CAAC,SAASt3C,EAAE03B,EAAED,GAAG,aAAaC,EAAEJ,QAAQ,SAASt3B,EAAE03B,GAAG,IAAID,EAAEI,EAAEhgC,EAAE6mB,EAAEvgB,EAAEo5B,EAAE/Y,EAAEgZ,EAAEI,EAAEO,EAAEH,EAAE1Z,EAAE2Z,EAAExZ,EAAEtjB,EAAE2gC,EAAE19B,EAAE29B,EAAEre,EAAEoV,EAAEkJ,EAAExyB,EAAElC,EAAE20B,EAAEC,EAAEzE,EAAEz3B,EAAEgsC,MAAMnU,EAAE73B,EAAEquC,QAAQpS,EAAEj8B,EAAEmP,MAAMtX,EAAEggC,GAAG73B,EAAEsuC,SAAS,GAAG5vB,EAAE1e,EAAEyuC,SAASvS,EAAEl8B,EAAEuuC,OAAOpwC,EAAEugB,GAAGgZ,EAAE13B,EAAE6tC,WAAWtW,EAAE7Y,GAAG1e,EAAE6tC,UAAU,KAAKrvB,EAAEiZ,EAAE8f,KAAK/f,EAAEC,EAAE+f,MAAM5f,EAAEH,EAAEggB,MAAMtf,EAAEV,EAAEigB,MAAM1f,EAAEP,EAAEzvB,OAAOsW,EAAEmZ,EAAEkgB,KAAK1f,EAAER,EAAEmgB,KAAKn5B,EAAEgZ,EAAEogB,QAAQ18C,EAAEs8B,EAAEqgB,SAAShc,GAAG,GAAGrE,EAAEsgB,SAAS,EAAE35C,GAAG,GAAGq5B,EAAEugB,UAAU,EAAEh4C,EAAE,EAAE,CAACi4B,EAAE,KAAK3Z,GAAG2d,EAAEpE,MAAMI,EAAEA,GAAG,EAAE3Z,GAAG2d,EAAEpE,MAAMI,EAAEA,GAAG,GAAG8D,EAAEtd,EAAEH,EAAEwd,GAAGpE,EAAE,OAAO,CAAC,GAAGpZ,KAAKZ,EAAEqe,IAAI,GAAG9D,GAAGva,EAAE,KAAKA,EAAEqe,IAAI,GAAG,KAAKG,EAAExd,KAAK,MAAMqd,MAAM,CAAC,KAAK,GAAGre,GAAG,CAAC,GAAG,IAAI,GAAGA,GAAG,CAACqe,EAAEtd,GAAG,MAAMsd,IAAIzd,GAAG,GAAGZ,GAAG,IAAI,SAASga,EAAE,GAAG,GAAGha,EAAE,CAAC+Z,EAAEwgB,KAAK,GAAG,MAAMj4C,EAAEA,EAAEytC,IAAI,8BAA8BhW,EAAEwgB,KAAK,GAAG,MAAMj4C,EAAE8yB,EAAE,MAAMiJ,GAAGre,GAAG,MAAMua,EAAEva,IAAIY,GAAG2d,EAAEpE,MAAMI,EAAEA,GAAG,GAAGnF,GAAGxU,GAAG,GAAGZ,GAAG,EAAEY,KAAKZ,EAAEua,GAAGva,GAAGua,EAAE,KAAK3Z,GAAG2d,EAAEpE,MAAMI,EAAEA,GAAG,EAAE3Z,GAAG2d,EAAEpE,MAAMI,EAAEA,GAAG,GAAG8D,EAAE5gC,EAAEmjB,EAAElgB,GAAGq5B,EAAE,OAAO,CAAC,GAAGnZ,KAAKZ,EAAEqe,IAAI,GAAG9D,GAAGva,IAAI,IAAIA,EAAEqe,IAAI,GAAG,MAAM,CAAC,GAAG,IAAI,GAAGre,GAAG,CAACqe,EAAE5gC,GAAG,MAAM4gC,IAAIzd,GAAG,GAAGZ,GAAG,IAAI,SAAS+Z,EAAEz3B,EAAEytC,IAAI,wBAAwBhW,EAAEwgB,KAAK,GAAG,MAAMj4C,EAAE,GAAGg8B,EAAE,MAAMD,EAAE9D,GAAGva,GAAG,MAAMY,GAAG2d,EAAEpE,MAAMI,GAAGA,GAAG,GAAGva,IAAIY,GAAG2d,EAAEpE,MAAMI,EAAEA,GAAG,IAAIzZ,GAAGwd,GAAG1d,GAAG,GAAGZ,GAAG,GAAG,CAAC1d,EAAEytC,IAAI,gCAAgChW,EAAEwgB,KAAK,GAAG,MAAMj4C,EAAE,GAAGse,KAAKZ,EAAEua,GAAGva,GAAGA,EAAEgB,EAAEvgB,GAAG69B,EAAE,CAAC,GAAGpE,GAAGla,EAAEse,EAAEte,IAAI+Z,EAAEygB,KAAK,CAACl4C,EAAEytC,IAAI,gCAAgChW,EAAEwgB,KAAK,GAAG,MAAMj4C,EAAE,GAAGsH,EAAE0wB,GAAGxuB,EAAE,KAAK2uB,GAAG,GAAG3uB,GAAGguB,EAAE9Z,EAAEA,EAAEoV,EAAE,CAAC,IAAIA,GAAGpV,EAAEwe,EAAExd,KAAKsZ,EAAExuB,OAAOkU,IAAIlU,EAAEkV,EAAEsd,EAAE10B,EAAE40B,QAAQ,GAAG/D,EAAEza,GAAG,GAAGlU,GAAGguB,EAAEW,EAAEza,GAAGA,GAAGya,GAAGrF,EAAE,CAAC,IAAIA,GAAGpV,EAAEwe,EAAExd,KAAKsZ,EAAExuB,OAAOkU,IAAI,GAAGlU,EAAE,EAAE2uB,EAAErF,EAAE,CAAC,IAAIA,GAAGpV,EAAEya,EAAE+D,EAAExd,KAAKsZ,EAAExuB,OAAOkU,IAAIlU,EAAEkV,EAAEsd,EAAE10B,EAAE40B,SAAS,GAAG1yB,GAAG2uB,EAAEza,EAAEA,EAAEoV,EAAE,CAAC,IAAIA,GAAGpV,EAAEwe,EAAExd,KAAKsZ,EAAExuB,OAAOkU,IAAIlU,EAAEkV,EAAEsd,EAAE10B,EAAE40B,EAAE,KAAK,EAAEpJ,GAAGoJ,EAAExd,KAAKpX,EAAEkC,KAAK0yB,EAAExd,KAAKpX,EAAEkC,KAAK0yB,EAAExd,KAAKpX,EAAEkC,KAAKspB,GAAG,EAAEA,IAAIoJ,EAAExd,KAAKpX,EAAEkC,KAAK,EAAEspB,IAAIoJ,EAAExd,KAAKpX,EAAEkC,WAAW,CAAC,IAAIA,EAAEkV,EAAEsd,EAAEE,EAAExd,KAAKwd,EAAE1yB,KAAK0yB,EAAExd,KAAKwd,EAAE1yB,KAAK0yB,EAAExd,KAAKwd,EAAE1yB,KAAK,GAAGspB,GAAG,KAAKA,IAAIoJ,EAAExd,KAAKwd,EAAE1yB,KAAK,EAAEspB,IAAIoJ,EAAExd,KAAKwd,EAAE1yB,OAAO,OAAO,aAAaquB,EAAEhgC,GAAG6mB,EAAE6Y,GAAGM,GAAG/E,EAAEmF,GAAG,EAAE3Z,IAAI,IAAI2Z,GAAGnF,GAAG,IAAI,EAAE9yB,EAAEquC,QAAQxW,EAAE73B,EAAEyuC,SAAS/vB,EAAE1e,EAAEsuC,SAASzW,EAAEhgC,EAAEA,EAAEggC,EAAE,EAAE,GAAGA,EAAEhgC,GAAGmI,EAAE6tC,UAAUnvB,EAAE6Y,EAAEA,EAAE7Y,EAAE,IAAI,KAAKA,EAAE6Y,GAAGE,EAAEkgB,KAAKr5B,EAAEmZ,EAAEmgB,KAAK3f,IAAI,IAAIkgB,GAAG,CAAC,SAASn4C,EAAE03B,EAAED,GAAG,aAAa,IAAIoE,EAAE77B,EAAE,mBAAmB27B,EAAE37B,EAAE,aAAay8B,EAAEz8B,EAAE,WAAW28B,EAAE38B,EAAE,aAAaoyC,EAAEpyC,EAAE,cAAcqyC,EAAE,EAAEhrC,EAAE,EAAEqrC,EAAE,EAAEI,GAAG,EAAEC,EAAE,EAAElb,EAAE,IAAIhgC,EAAE,IAAI,SAASomB,EAAEje,GAAG,OAAOA,IAAI,GAAG,MAAMA,IAAI,EAAE,SAAS,MAAMA,IAAI,KAAK,IAAIA,IAAI,IAAI,SAAS0e,IAAItiB,KAAK67C,KAAK,EAAE77C,KAAKknB,MAAK,EAAGlnB,KAAKwM,KAAK,EAAExM,KAAKg8C,UAAS,EAAGh8C,KAAKi8C,MAAM,EAAEj8C,KAAKm7C,KAAK,EAAEn7C,KAAKk8C,MAAM,EAAEl8C,KAAKm8C,MAAM,EAAEn8C,KAAKs3C,KAAK,KAAKt3C,KAAKo8C,MAAM,EAAEp8C,KAAKo7C,MAAM,EAAEp7C,KAAKq7C,MAAM,EAAEr7C,KAAKs7C,MAAM,EAAEt7C,KAAK4L,OAAO,KAAK5L,KAAKu7C,KAAK,EAAEv7C,KAAKw7C,KAAK,EAAEx7C,KAAKpG,OAAO,EAAEoG,KAAKorB,OAAO,EAAEprB,KAAK26C,MAAM,EAAE36C,KAAKy7C,QAAQ,KAAKz7C,KAAK07C,SAAS,KAAK17C,KAAK27C,QAAQ,EAAE37C,KAAK47C,SAAS,EAAE57C,KAAKq8C,MAAM,EAAEr8C,KAAKs8C,KAAK,EAAEt8C,KAAKu8C,MAAM,EAAEv8C,KAAKw8C,KAAK,EAAEx8C,KAAK2M,KAAK,KAAK3M,KAAKy8C,KAAK,IAAIhd,EAAE4U,MAAM,KAAKr0C,KAAK08C,KAAK,IAAIjd,EAAE4U,MAAM,KAAKr0C,KAAK28C,OAAO,KAAK38C,KAAK48C,QAAQ,KAAK58C,KAAK87C,KAAK,EAAE97C,KAAK68C,KAAK,EAAE78C,KAAK88C,IAAI,EAAE,SAAS/6C,EAAE6B,GAAG,IAAI03B,EAAE,OAAO13B,GAAGA,EAAEgsC,OAAOtU,EAAE13B,EAAEgsC,MAAMhsC,EAAE4zC,SAAS5zC,EAAEyyC,UAAU/a,EAAE6gB,MAAM,EAAEv4C,EAAEytC,IAAI,GAAG/V,EAAE9uB,OAAO5I,EAAE2zC,MAAM,EAAEjc,EAAE9uB,MAAM8uB,EAAEugB,KAAKlF,EAAErb,EAAEpU,KAAK,EAAEoU,EAAE0gB,SAAS,EAAE1gB,EAAE6f,KAAK,MAAM7f,EAAEgc,KAAK,KAAKhc,EAAEigB,KAAK,EAAEjgB,EAAEkgB,KAAK,EAAElgB,EAAEmgB,QAAQngB,EAAEqhB,OAAO,IAAIld,EAAE6U,MAAM7Y,GAAGH,EAAEogB,SAASpgB,EAAEshB,QAAQ,IAAInd,EAAE6U,MAAM74C,GAAG6/B,EAAEwgB,KAAK,EAAExgB,EAAEuhB,MAAM,EAAEvG,GAAGI,EAAE,SAASvb,EAAEv3B,GAAG,IAAI03B,EAAE,OAAO13B,GAAGA,EAAEgsC,QAAQtU,EAAE13B,EAAEgsC,OAAOwL,MAAM,EAAE9f,EAAE+f,MAAM,EAAE/f,EAAEggB,MAAM,EAAEv5C,EAAE6B,IAAI8yC,EAAE,SAASt0B,EAAExe,EAAE03B,GAAG,IAAID,EAAEI,EAAE,OAAO73B,GAAGA,EAAEgsC,OAAOnU,EAAE73B,EAAEgsC,MAAMtU,EAAE,GAAGD,EAAE,EAAEC,GAAGA,IAAID,EAAE,GAAGC,GAAG,GAAGA,EAAE,KAAKA,GAAG,KAAKA,IAAIA,EAAE,GAAG,GAAGA,GAAGob,GAAG,OAAOjb,EAAE7vB,QAAQ6vB,EAAE2gB,QAAQ9gB,IAAIG,EAAE7vB,OAAO,MAAM6vB,EAAEjvB,KAAK6uB,EAAEI,EAAE2gB,MAAM9gB,EAAEH,EAAEv3B,KAAK8yC,EAAE,SAAStb,EAAEx3B,EAAE03B,GAAG,IAAID,EAAEI,EAAE,OAAO73B,GAAG63B,EAAE,IAAInZ,GAAG1e,EAAEgsC,MAAMnU,GAAG7vB,OAAO,MAAMyvB,EAAEjZ,EAAExe,EAAE03B,MAAMgb,IAAI1yC,EAAEgsC,MAAM,MAAMvU,GAAGqb,EAAE,IAAIlb,EAAEO,EAAEH,GAAE,EAAG,SAASn0B,EAAE7D,GAAG,GAAGg4B,EAAE,CAAC,IAAIN,EAAE,IAAIE,EAAE,IAAIiE,EAAE6U,MAAM,KAAKvY,EAAE,IAAI0D,EAAE6U,MAAM,IAAIhZ,EAAE,EAAEA,EAAE,KAAK13B,EAAE64C,KAAKnhB,KAAK,EAAE,KAAKA,EAAE,KAAK13B,EAAE64C,KAAKnhB,KAAK,EAAE,KAAKA,EAAE,KAAK13B,EAAE64C,KAAKnhB,KAAK,EAAE,KAAKA,EAAE,KAAK13B,EAAE64C,KAAKnhB,KAAK,EAAE,IAAI0a,EAAEC,EAAEryC,EAAE64C,KAAK,EAAE,IAAIjhB,EAAE,EAAE53B,EAAE84C,KAAK,CAAClB,KAAK,IAAIlgB,EAAE,EAAEA,EAAE,IAAI13B,EAAE64C,KAAKnhB,KAAK,EAAE0a,EAAE/qC,EAAErH,EAAE64C,KAAK,EAAE,GAAG1gB,EAAE,EAAEn4B,EAAE84C,KAAK,CAAClB,KAAK,IAAI5f,GAAE,EAAGh4B,EAAE63C,QAAQjgB,EAAE53B,EAAE+3C,QAAQ,EAAE/3C,EAAE83C,SAAS3f,EAAEn4B,EAAEg4C,SAAS,EAAE,SAASzwC,EAAEvH,EAAE03B,EAAED,EAAEI,GAAG,IAAIhgC,EAAE6mB,EAAE1e,EAAEgsC,MAAM,OAAO,OAAOttB,EAAE1W,SAAS0W,EAAE84B,MAAM,GAAG94B,EAAE85B,MAAM95B,EAAEg5B,MAAM,EAAEh5B,EAAE+4B,MAAM,EAAE/4B,EAAE1W,OAAO,IAAI6zB,EAAE2S,KAAK9vB,EAAE84B,QAAQ3f,GAAGnZ,EAAE84B,OAAO3b,EAAEoU,SAASvxB,EAAE1W,OAAO0vB,EAAED,EAAE/Y,EAAE84B,MAAM94B,EAAE84B,MAAM,GAAG94B,EAAEg5B,MAAM,EAAEh5B,EAAE+4B,MAAM/4B,EAAE84B,QAAQ3f,GAAGhgC,EAAE6mB,EAAE84B,MAAM94B,EAAEg5B,SAAS7/C,EAAEggC,GAAGgE,EAAEoU,SAASvxB,EAAE1W,OAAO0vB,EAAED,EAAEI,EAAEhgC,EAAE6mB,EAAEg5B,QAAQ7f,GAAGhgC,IAAIgkC,EAAEoU,SAASvxB,EAAE1W,OAAO0vB,EAAED,EAAEI,EAAEA,EAAE,GAAGnZ,EAAEg5B,MAAM7f,EAAEnZ,EAAE+4B,MAAM/4B,EAAE84B,QAAQ94B,EAAEg5B,OAAO7/C,EAAE6mB,EAAEg5B,QAAQh5B,EAAE84B,QAAQ94B,EAAEg5B,MAAM,GAAGh5B,EAAE+4B,MAAM/4B,EAAE84B,QAAQ94B,EAAE+4B,OAAO5/C,KAAK,EAAE4/B,EAAE0hB,aAAa5hB,EAAEE,EAAE2hB,cAAc56B,EAAEiZ,EAAE4hB,iBAAiBl7C,EAAEs5B,EAAE6hB,YAAY,SAASt5C,GAAG,OAAOw3B,EAAEx3B,EAAE,KAAKy3B,EAAE0X,aAAa3X,EAAEC,EAAEgY,QAAQ,SAASzvC,EAAE03B,GAAG,IAAID,EAAEI,EAAEhgC,EAAE6mB,EAAEvgB,EAAEo5B,EAAE/Y,EAAEgZ,EAAEI,EAAEO,EAAEH,EAAE1Z,EAAE2Z,EAAExZ,EAAEtjB,EAAE2gC,EAAE19B,EAAE29B,EAAEre,EAAEoV,EAAEkJ,EAAExyB,EAAElC,EAAE20B,EAAEC,EAAE,EAAE9d,EAAE,IAAIyd,EAAE2S,KAAK,GAAGpnC,EAAE,CAAC,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,IAAIpH,IAAIA,EAAEgsC,QAAQhsC,EAAEuuC,SAASvuC,EAAEmP,OAAO,IAAInP,EAAEsuC,SAAS,OAAOwE,EAAE,MAAMrb,EAAEz3B,EAAEgsC,OAAOiM,OAAOxgB,EAAEwgB,KAAK,IAAI95C,EAAE6B,EAAEyuC,SAAS52C,EAAEmI,EAAEuuC,OAAO/vB,EAAExe,EAAE6tC,UAAUnvB,EAAE1e,EAAEquC,QAAQxW,EAAE73B,EAAEmP,MAAMooB,EAAEv3B,EAAEsuC,SAAS9W,EAAEC,EAAEkgB,KAAK/f,EAAEH,EAAEmgB,KAAKzf,EAAEZ,EAAES,EAAExZ,EAAEhV,EAAEkpC,EAAE1yC,EAAE,OAAO,OAAOy3B,EAAEwgB,MAAM,KAAKlF,EAAE,GAAG,IAAItb,EAAE7uB,KAAK,CAAC6uB,EAAEwgB,KAAK,GAAG,MAAM,KAAKrgB,EAAE,IAAI,CAAC,GAAG,IAAIL,EAAE,MAAMv3B,EAAEu3B,IAAIC,GAAGK,EAAEnZ,MAAMkZ,EAAEA,GAAG,EAAE,GAAG,EAAEH,EAAE7uB,MAAM,QAAQ4uB,EAAE,CAACpZ,EAAEqZ,EAAE6gB,MAAM,GAAG,IAAI9gB,EAAEpZ,EAAE,GAAGoZ,IAAI,EAAE,IAAIC,EAAE6gB,MAAM7b,EAAEhF,EAAE6gB,MAAMl6B,EAAE,EAAE,GAAGwZ,EAAEJ,EAAE,EAAEC,EAAEwgB,KAAK,EAAE,MAAM,GAAGxgB,EAAE4gB,MAAM,EAAE5gB,EAAEic,OAAOjc,EAAEic,KAAKnqB,MAAK,KAAM,EAAEkO,EAAE7uB,UAAU,IAAI4uB,IAAI,IAAIA,GAAG,IAAI,GAAG,CAACx3B,EAAEytC,IAAI,yBAAyBhW,EAAEwgB,KAAK,GAAG,MAAM,GAAG,IAAI,GAAGzgB,GAAG,CAACx3B,EAAEytC,IAAI,6BAA6BhW,EAAEwgB,KAAK,GAAG,MAAM,GAAGrgB,GAAG,EAAEoE,EAAE,GAAG,IAAIxE,KAAK,IAAI,IAAIC,EAAE+gB,MAAM/gB,EAAE+gB,MAAMxc,OAAO,GAAGA,EAAEvE,EAAE+gB,MAAM,CAACx4C,EAAEytC,IAAI,sBAAsBhW,EAAEwgB,KAAK,GAAG,MAAMxgB,EAAE8f,KAAK,GAAGvb,EAAEh8B,EAAE2zC,MAAMlc,EAAE6gB,MAAM,EAAE7gB,EAAEwgB,KAAK,IAAIzgB,EAAE,GAAG,GAAGI,EAAEJ,EAAE,EAAE,MAAM,KAAK,EAAE,KAAKI,EAAE,IAAI,CAAC,GAAG,IAAIL,EAAE,MAAMv3B,EAAEu3B,IAAIC,GAAGK,EAAEnZ,MAAMkZ,EAAEA,GAAG,EAAE,GAAGH,EAAE4gB,MAAM7gB,EAAE,IAAI,IAAIC,EAAE4gB,OAAO,CAACr4C,EAAEytC,IAAI,6BAA6BhW,EAAEwgB,KAAK,GAAG,MAAM,GAAG,MAAMxgB,EAAE4gB,MAAM,CAACr4C,EAAEytC,IAAI,2BAA2BhW,EAAEwgB,KAAK,GAAG,MAAMxgB,EAAEic,OAAOjc,EAAEic,KAAK/6C,KAAK6+B,GAAG,EAAE,GAAG,IAAIC,EAAE4gB,QAAQj6B,EAAE,GAAG,IAAIoZ,EAAEpZ,EAAE,GAAGoZ,IAAI,EAAE,IAAIC,EAAE6gB,MAAM7b,EAAEhF,EAAE6gB,MAAMl6B,EAAE,EAAE,IAAIwZ,EAAEJ,EAAE,EAAEC,EAAEwgB,KAAK,EAAE,KAAK,EAAE,KAAKrgB,EAAE,IAAI,CAAC,GAAG,IAAIL,EAAE,MAAMv3B,EAAEu3B,IAAIC,GAAGK,EAAEnZ,MAAMkZ,EAAEA,GAAG,EAAEH,EAAEic,OAAOjc,EAAEic,KAAKjqC,KAAK+tB,GAAG,IAAIC,EAAE4gB,QAAQj6B,EAAE,GAAG,IAAIoZ,EAAEpZ,EAAE,GAAGoZ,IAAI,EAAE,IAAIpZ,EAAE,GAAGoZ,IAAI,GAAG,IAAIpZ,EAAE,GAAGoZ,IAAI,GAAG,IAAIC,EAAE6gB,MAAM7b,EAAEhF,EAAE6gB,MAAMl6B,EAAE,EAAE,IAAIwZ,EAAEJ,EAAE,EAAEC,EAAEwgB,KAAK,EAAE,KAAK,EAAE,KAAKrgB,EAAE,IAAI,CAAC,GAAG,IAAIL,EAAE,MAAMv3B,EAAEu3B,IAAIC,GAAGK,EAAEnZ,MAAMkZ,EAAEA,GAAG,EAAEH,EAAEic,OAAOjc,EAAEic,KAAK0D,OAAO,IAAI5f,EAAEC,EAAEic,KAAKx/C,GAAGsjC,GAAG,GAAG,IAAIC,EAAE4gB,QAAQj6B,EAAE,GAAG,IAAIoZ,EAAEpZ,EAAE,GAAGoZ,IAAI,EAAE,IAAIC,EAAE6gB,MAAM7b,EAAEhF,EAAE6gB,MAAMl6B,EAAE,EAAE,IAAIwZ,EAAEJ,EAAE,EAAEC,EAAEwgB,KAAK,EAAE,KAAK,EAAE,GAAG,KAAKxgB,EAAE4gB,MAAM,CAAC,KAAKzgB,EAAE,IAAI,CAAC,GAAG,IAAIL,EAAE,MAAMv3B,EAAEu3B,IAAIC,GAAGK,EAAEnZ,MAAMkZ,EAAEA,GAAG,EAAEH,EAAEzhC,OAAOwhC,EAAEC,EAAEic,OAAOjc,EAAEic,KAAK2D,UAAU7f,GAAG,IAAIC,EAAE4gB,QAAQj6B,EAAE,GAAG,IAAIoZ,EAAEpZ,EAAE,GAAGoZ,IAAI,EAAE,IAAIC,EAAE6gB,MAAM7b,EAAEhF,EAAE6gB,MAAMl6B,EAAE,EAAE,IAAIwZ,EAAEJ,EAAE,OAAOC,EAAEic,OAAOjc,EAAEic,KAAKqD,MAAM,MAAMtf,EAAEwgB,KAAK,EAAE,KAAK,EAAE,GAAG,KAAKxgB,EAAE4gB,QAAQ9gB,GAAGjZ,EAAEmZ,EAAEzhC,UAAUsoB,EAAEiZ,GAAGjZ,IAAImZ,EAAEic,OAAO1X,EAAEvE,EAAEic,KAAK2D,UAAU5f,EAAEzhC,OAAOyhC,EAAEic,KAAKqD,QAAQtf,EAAEic,KAAKqD,MAAM,IAAI97C,MAAMw8B,EAAEic,KAAK2D,YAAYxb,EAAEoU,SAASxY,EAAEic,KAAKqD,MAAMlf,EAAEnZ,EAAEJ,EAAE0d,IAAI,IAAIvE,EAAE4gB,QAAQ5gB,EAAE6gB,MAAM7b,EAAEhF,EAAE6gB,MAAMzgB,EAAEvZ,EAAEI,IAAI6Y,GAAGjZ,EAAEI,GAAGJ,EAAEmZ,EAAEzhC,QAAQsoB,GAAGmZ,EAAEzhC,QAAQ,MAAMgK,EAAEy3B,EAAEzhC,OAAO,EAAEyhC,EAAEwgB,KAAK,EAAE,KAAK,EAAE,GAAG,KAAKxgB,EAAE4gB,MAAM,CAAC,GAAG,IAAI9gB,EAAE,MAAMv3B,EAAE,IAAIse,EAAE,EAAE0d,EAAEnE,EAAEnZ,EAAEJ,KAAKmZ,EAAEic,MAAM1X,GAAGvE,EAAEzhC,OAAO,QAAQyhC,EAAEic,KAAK11C,MAAMjI,OAAO0lC,aAAaO,IAAIA,GAAG1d,EAAEiZ,IAAI,GAAG,IAAIE,EAAE4gB,QAAQ5gB,EAAE6gB,MAAM7b,EAAEhF,EAAE6gB,MAAMzgB,EAAEvZ,EAAEI,IAAI6Y,GAAGjZ,EAAEI,GAAGJ,EAAE0d,EAAE,MAAMh8B,OAAOy3B,EAAEic,OAAOjc,EAAEic,KAAK11C,KAAK,MAAMy5B,EAAEzhC,OAAO,EAAEyhC,EAAEwgB,KAAK,EAAE,KAAK,EAAE,GAAG,KAAKxgB,EAAE4gB,MAAM,CAAC,GAAG,IAAI9gB,EAAE,MAAMv3B,EAAE,IAAIse,EAAE,EAAE0d,EAAEnE,EAAEnZ,EAAEJ,KAAKmZ,EAAEic,MAAM1X,GAAGvE,EAAEzhC,OAAO,QAAQyhC,EAAEic,KAAKxZ,SAASnkC,OAAO0lC,aAAaO,IAAIA,GAAG1d,EAAEiZ,IAAI,GAAG,IAAIE,EAAE4gB,QAAQ5gB,EAAE6gB,MAAM7b,EAAEhF,EAAE6gB,MAAMzgB,EAAEvZ,EAAEI,IAAI6Y,GAAGjZ,EAAEI,GAAGJ,EAAE0d,EAAE,MAAMh8B,OAAOy3B,EAAEic,OAAOjc,EAAEic,KAAKxZ,QAAQ,MAAMzC,EAAEwgB,KAAK,EAAE,KAAK,EAAE,GAAG,IAAIxgB,EAAE4gB,MAAM,CAAC,KAAKzgB,EAAE,IAAI,CAAC,GAAG,IAAIL,EAAE,MAAMv3B,EAAEu3B,IAAIC,GAAGK,EAAEnZ,MAAMkZ,EAAEA,GAAG,EAAE,GAAGJ,KAAK,MAAMC,EAAE6gB,OAAO,CAACt4C,EAAEytC,IAAI,sBAAsBhW,EAAEwgB,KAAK,GAAG,MAAMrgB,EAAEJ,EAAE,EAAEC,EAAEic,OAAOjc,EAAEic,KAAKoD,KAAKrf,EAAE4gB,OAAO,EAAE,EAAE5gB,EAAEic,KAAKnqB,MAAK,GAAIvpB,EAAE2zC,MAAMlc,EAAE6gB,MAAM,EAAE7gB,EAAEwgB,KAAK,GAAG,MAAM,KAAK,GAAG,KAAKrgB,EAAE,IAAI,CAAC,GAAG,IAAIL,EAAE,MAAMv3B,EAAEu3B,IAAIC,GAAGK,EAAEnZ,MAAMkZ,EAAEA,GAAG,EAAE53B,EAAE2zC,MAAMlc,EAAE6gB,MAAMr6B,EAAEuZ,GAAGI,EAAEJ,EAAE,EAAEC,EAAEwgB,KAAK,GAAG,KAAK,GAAG,GAAG,IAAIxgB,EAAE2gB,SAAS,OAAOp4C,EAAEyuC,SAAStwC,EAAE6B,EAAE6tC,UAAUrvB,EAAExe,EAAEquC,QAAQ3vB,EAAE1e,EAAEsuC,SAAS/W,EAAEE,EAAEkgB,KAAKngB,EAAEC,EAAEmgB,KAAKhgB,EAAE,EAAE53B,EAAE2zC,MAAMlc,EAAE6gB,MAAM,EAAE7gB,EAAEwgB,KAAK,GAAG,KAAK,GAAG,GAAG,IAAIvgB,GAAG,IAAIA,EAAE,MAAM13B,EAAE,KAAK,GAAG,GAAGy3B,EAAEnU,KAAK,CAACkU,KAAK,EAAEI,EAAEA,GAAG,EAAEA,EAAEH,EAAEwgB,KAAK,GAAG,MAAM,KAAKrgB,EAAE,GAAG,CAAC,GAAG,IAAIL,EAAE,MAAMv3B,EAAEu3B,IAAIC,GAAGK,EAAEnZ,MAAMkZ,EAAEA,GAAG,EAAE,OAAOH,EAAEnU,KAAK,EAAEkU,EAAEI,GAAG,EAAE,GAAGJ,KAAK,IAAI,KAAK,EAAEC,EAAEwgB,KAAK,GAAG,MAAM,KAAK,EAAE,GAAGp0C,EAAE4zB,GAAGA,EAAEwgB,KAAK,GAAG,IAAIvgB,EAAE,MAAMF,KAAK,EAAEI,GAAG,EAAE,MAAM53B,EAAE,KAAK,EAAEy3B,EAAEwgB,KAAK,GAAG,MAAM,KAAK,EAAEj4C,EAAEytC,IAAI,qBAAqBhW,EAAEwgB,KAAK,GAAGzgB,KAAK,EAAEI,GAAG,EAAE,MAAM,KAAK,GAAG,IAAIJ,KAAK,EAAEI,EAAEA,GAAG,EAAEA,EAAEA,EAAE,IAAI,CAAC,GAAG,IAAIL,EAAE,MAAMv3B,EAAEu3B,IAAIC,GAAGK,EAAEnZ,MAAMkZ,EAAEA,GAAG,EAAE,IAAI,MAAMJ,KAAKA,IAAI,GAAG,OAAO,CAACx3B,EAAEytC,IAAI,+BAA+BhW,EAAEwgB,KAAK,GAAG,MAAM,GAAGxgB,EAAEzhC,OAAO,MAAMwhC,EAAEI,EAAEJ,EAAE,EAAEC,EAAEwgB,KAAK,GAAG,IAAIvgB,EAAE,MAAM13B,EAAE,KAAK,GAAGy3B,EAAEwgB,KAAK,GAAG,KAAK,GAAG,GAAG35B,EAAEmZ,EAAEzhC,OAAO,CAAC,GAAGuhC,EAAEjZ,IAAIA,EAAEiZ,GAAG/Y,EAAEF,IAAIA,EAAEE,GAAG,IAAIF,EAAE,MAAMte,EAAE67B,EAAEoU,SAASp4C,EAAEggC,EAAEnZ,EAAEJ,EAAEngB,GAAGo5B,GAAGjZ,EAAEI,GAAGJ,EAAEE,GAAGF,EAAEngB,GAAGmgB,EAAEmZ,EAAEzhC,QAAQsoB,EAAE,MAAMmZ,EAAEwgB,KAAK,GAAG,MAAM,KAAK,GAAG,KAAKrgB,EAAE,IAAI,CAAC,GAAG,IAAIL,EAAE,MAAMv3B,EAAEu3B,IAAIC,GAAGK,EAAEnZ,MAAMkZ,EAAEA,GAAG,EAAE,GAAGH,EAAEihB,KAAK,KAAK,GAAGlhB,GAAGA,KAAK,EAAEI,GAAG,EAAEH,EAAEkhB,MAAM,GAAG,GAAGnhB,GAAGA,KAAK,EAAEI,GAAG,EAAEH,EAAEghB,MAAM,GAAG,GAAGjhB,GAAGA,KAAK,EAAEI,GAAG,EAAE,IAAIH,EAAEihB,MAAM,GAAGjhB,EAAEkhB,MAAM,CAAC34C,EAAEytC,IAAI,sCAAsChW,EAAEwgB,KAAK,GAAG,MAAMxgB,EAAEmhB,KAAK,EAAEnhB,EAAEwgB,KAAK,GAAG,KAAK,GAAG,KAAKxgB,EAAEmhB,KAAKnhB,EAAEghB,OAAO,CAAC,KAAK7gB,EAAE,GAAG,CAAC,GAAG,IAAIL,EAAE,MAAMv3B,EAAEu3B,IAAIC,GAAGK,EAAEnZ,MAAMkZ,EAAEA,GAAG,EAAEH,EAAEohB,KAAKzxC,EAAEqwB,EAAEmhB,SAAS,EAAEphB,EAAEA,KAAK,EAAEI,GAAG,EAAE,KAAKH,EAAEmhB,KAAK,IAAInhB,EAAEohB,KAAKzxC,EAAEqwB,EAAEmhB,SAAS,EAAE,GAAGnhB,EAAEogB,QAAQpgB,EAAEshB,OAAOthB,EAAEsgB,QAAQ,EAAEzwC,EAAE,CAACswC,KAAKngB,EAAEsgB,SAASvuC,EAAE4oC,EAAE,EAAE3a,EAAEohB,KAAK,EAAE,GAAGphB,EAAEogB,QAAQ,EAAEpgB,EAAEqhB,KAAKxxC,GAAGmwB,EAAEsgB,QAAQzwC,EAAEswC,KAAKpuC,EAAE,CAACxJ,EAAEytC,IAAI,2BAA2BhW,EAAEwgB,KAAK,GAAG,MAAMxgB,EAAEmhB,KAAK,EAAEnhB,EAAEwgB,KAAK,GAAG,KAAK,GAAG,KAAKxgB,EAAEmhB,KAAKnhB,EAAEihB,KAAKjhB,EAAEkhB,OAAO,CAAC,KAAK7c,GAAGI,EAAEzE,EAAEogB,QAAQrgB,GAAG,GAAGC,EAAEsgB,SAAS,MAAM,GAAG,IAAI35C,EAAE,MAAM89B,KAAK/gC,EAAE+gC,IAAI,KAAKtE,IAAI,CAAC,GAAG,IAAIL,EAAE,MAAMv3B,EAAEu3B,IAAIC,GAAGK,EAAEnZ,MAAMkZ,EAAEA,GAAG,EAAE,GAAGx5B,EAAE,GAAGo5B,KAAKr8B,EAAEy8B,GAAGz8B,EAAEs8B,EAAEohB,KAAKphB,EAAEmhB,QAAQx6C,MAAM,CAAC,GAAG,KAAKA,EAAE,CAAC,IAAI69B,EAAE9gC,EAAE,EAAEy8B,EAAEqE,GAAG,CAAC,GAAG,IAAI1E,EAAE,MAAMv3B,EAAEu3B,IAAIC,GAAGK,EAAEnZ,MAAMkZ,EAAEA,GAAG,EAAE,GAAGJ,KAAKr8B,EAAEy8B,GAAGz8B,EAAE,IAAIs8B,EAAEmhB,KAAK,CAAC54C,EAAEytC,IAAI,4BAA4BhW,EAAEwgB,KAAK,GAAG,MAAMjc,EAAEvE,EAAEohB,KAAKphB,EAAEmhB,KAAK,GAAGt6B,EAAE,GAAG,EAAEkZ,GAAGA,KAAK,EAAEI,GAAG,OAAO,GAAG,KAAKx5B,EAAE,CAAC,IAAI69B,EAAE9gC,EAAE,EAAEy8B,EAAEqE,GAAG,CAAC,GAAG,IAAI1E,EAAE,MAAMv3B,EAAEu3B,IAAIC,GAAGK,EAAEnZ,MAAMkZ,EAAEA,GAAG,EAAEA,GAAGz8B,EAAE6gC,EAAE,EAAE1d,EAAE,GAAG,GAAGkZ,KAAKr8B,IAAIq8B,KAAK,EAAEI,GAAG,MAAM,CAAC,IAAIqE,EAAE9gC,EAAE,EAAEy8B,EAAEqE,GAAG,CAAC,GAAG,IAAI1E,EAAE,MAAMv3B,EAAEu3B,IAAIC,GAAGK,EAAEnZ,MAAMkZ,EAAEA,GAAG,EAAEA,GAAGz8B,EAAE6gC,EAAE,EAAE1d,EAAE,IAAI,KAAKkZ,KAAKr8B,IAAIq8B,KAAK,EAAEI,GAAG,EAAE,GAAGH,EAAEmhB,KAAKt6B,EAAEmZ,EAAEihB,KAAKjhB,EAAEkhB,MAAM,CAAC34C,EAAEytC,IAAI,4BAA4BhW,EAAEwgB,KAAK,GAAG,MAAM,KAAK35B,KAAKmZ,EAAEohB,KAAKphB,EAAEmhB,QAAQ5c,GAAG,GAAG,KAAKvE,EAAEwgB,KAAK,MAAM,GAAG,IAAIxgB,EAAEohB,KAAK,KAAK,CAAC74C,EAAEytC,IAAI,uCAAuChW,EAAEwgB,KAAK,GAAG,MAAM,GAAGxgB,EAAEsgB,QAAQ,EAAEzwC,EAAE,CAACswC,KAAKngB,EAAEsgB,SAASvuC,EAAE4oC,EAAEC,EAAE5a,EAAEohB,KAAK,EAAEphB,EAAEihB,KAAKjhB,EAAEogB,QAAQ,EAAEpgB,EAAEqhB,KAAKxxC,GAAGmwB,EAAEsgB,QAAQzwC,EAAEswC,KAAKpuC,EAAE,CAACxJ,EAAEytC,IAAI,8BAA8BhW,EAAEwgB,KAAK,GAAG,MAAM,GAAGxgB,EAAEugB,SAAS,EAAEvgB,EAAEqgB,SAASrgB,EAAEuhB,QAAQ1xC,EAAE,CAACswC,KAAKngB,EAAEugB,UAAUxuC,EAAE4oC,EAAE/qC,EAAEowB,EAAEohB,KAAKphB,EAAEihB,KAAKjhB,EAAEkhB,MAAMlhB,EAAEqgB,SAAS,EAAErgB,EAAEqhB,KAAKxxC,GAAGmwB,EAAEugB,SAAS1wC,EAAEswC,KAAKpuC,EAAE,CAACxJ,EAAEytC,IAAI,wBAAwBhW,EAAEwgB,KAAK,GAAG,MAAM,GAAGxgB,EAAEwgB,KAAK,GAAG,IAAIvgB,EAAE,MAAM13B,EAAE,KAAK,GAAGy3B,EAAEwgB,KAAK,GAAG,KAAK,GAAG,GAAG,GAAG1gB,GAAG,KAAK/Y,EAAE,CAACxe,EAAEyuC,SAAStwC,EAAE6B,EAAE6tC,UAAUrvB,EAAExe,EAAEquC,QAAQ3vB,EAAE1e,EAAEsuC,SAAS/W,EAAEE,EAAEkgB,KAAKngB,EAAEC,EAAEmgB,KAAKhgB,EAAE+E,EAAE38B,EAAEg4B,GAAG75B,EAAE6B,EAAEyuC,SAAS52C,EAAEmI,EAAEuuC,OAAO/vB,EAAExe,EAAE6tC,UAAUnvB,EAAE1e,EAAEquC,QAAQxW,EAAE73B,EAAEmP,MAAMooB,EAAEv3B,EAAEsuC,SAAS9W,EAAEC,EAAEkgB,KAAK/f,EAAEH,EAAEmgB,KAAK,KAAKngB,EAAEwgB,OAAOxgB,EAAEwhB,MAAM,GAAG,MAAM,IAAIxhB,EAAEwhB,KAAK,EAAEnd,GAAGI,EAAEzE,EAAEogB,QAAQrgB,GAAG,GAAGC,EAAEsgB,SAAS,MAAM,GAAG,IAAI35C,EAAE,MAAM89B,KAAK/gC,EAAE+gC,IAAI,KAAKtE,IAAI,CAAC,GAAG,IAAIL,EAAE,MAAMv3B,EAAEu3B,IAAIC,GAAGK,EAAEnZ,MAAMkZ,EAAEA,GAAG,EAAE,GAAGkE,GAAG,IAAI,IAAIA,GAAG,CAAC,IAAIC,EAAE5gC,EAAEuiB,EAAEoe,EAAEhJ,EAAE10B,EAAE09B,GAAGI,EAAEzE,EAAEogB,QAAQ/kB,IAAI0E,GAAG,GAAGuE,EAAEre,GAAG,IAAIqe,OAAO,GAAG,IAAI39B,EAAE,MAAM89B,IAAIH,GAAG5gC,EAAE+gC,IAAI,KAAKtE,IAAI,CAAC,GAAG,IAAIL,EAAE,MAAMv3B,EAAEu3B,IAAIC,GAAGK,EAAEnZ,MAAMkZ,EAAEA,GAAG,EAAEJ,KAAKuE,EAAEnE,GAAGmE,EAAEtE,EAAEwhB,MAAMld,EAAE,GAAGvE,KAAKr8B,EAAEy8B,GAAGz8B,EAAEs8B,EAAEwhB,MAAM99C,EAAEs8B,EAAEzhC,OAAOoI,EAAE,IAAI09B,EAAE,CAACrE,EAAEwgB,KAAK,GAAG,MAAM,GAAG,GAAGnc,EAAE,CAACrE,EAAEwhB,MAAM,EAAExhB,EAAEwgB,KAAK,GAAG,MAAM,GAAG,GAAGnc,EAAE,CAAC97B,EAAEytC,IAAI,8BAA8BhW,EAAEwgB,KAAK,GAAG,MAAMxgB,EAAEsf,MAAM,GAAGjb,EAAErE,EAAEwgB,KAAK,GAAG,KAAK,GAAG,GAAGxgB,EAAEsf,MAAM,CAAC,IAAI9a,EAAExE,EAAEsf,MAAMnf,EAAEqE,GAAG,CAAC,GAAG,IAAI1E,EAAE,MAAMv3B,EAAEu3B,IAAIC,GAAGK,EAAEnZ,MAAMkZ,EAAEA,GAAG,EAAEH,EAAEzhC,QAAQwhC,GAAG,GAAGC,EAAEsf,OAAO,EAAEvf,KAAKC,EAAEsf,MAAMnf,GAAGH,EAAEsf,MAAMtf,EAAEwhB,MAAMxhB,EAAEsf,MAAMtf,EAAEyhB,IAAIzhB,EAAEzhC,OAAOyhC,EAAEwgB,KAAK,GAAG,KAAK,GAAG,KAAKnc,GAAGI,EAAEzE,EAAEqgB,SAAStgB,GAAG,GAAGC,EAAEugB,UAAU,MAAM,GAAG,IAAI55C,EAAE,MAAM89B,KAAK/gC,EAAE+gC,IAAI,KAAKtE,IAAI,CAAC,GAAG,IAAIL,EAAE,MAAMv3B,EAAEu3B,IAAIC,GAAGK,EAAEnZ,MAAMkZ,EAAEA,GAAG,EAAE,GAAG,IAAI,IAAIkE,GAAG,CAAC,IAAIC,EAAE5gC,EAAEuiB,EAAEoe,EAAEhJ,EAAE10B,EAAE09B,GAAGI,EAAEzE,EAAEqgB,SAAShlB,IAAI0E,GAAG,GAAGuE,EAAEre,GAAG,IAAIqe,OAAO,GAAG,IAAI39B,EAAE,MAAM89B,IAAIH,GAAG5gC,EAAE+gC,IAAI,KAAKtE,IAAI,CAAC,GAAG,IAAIL,EAAE,MAAMv3B,EAAEu3B,IAAIC,GAAGK,EAAEnZ,MAAMkZ,EAAEA,GAAG,EAAEJ,KAAKuE,EAAEnE,GAAGmE,EAAEtE,EAAEwhB,MAAMld,EAAE,GAAGvE,KAAKr8B,EAAEy8B,GAAGz8B,EAAEs8B,EAAEwhB,MAAM99C,EAAE,GAAG2gC,EAAE,CAAC97B,EAAEytC,IAAI,wBAAwBhW,EAAEwgB,KAAK,GAAG,MAAMxgB,EAAEjQ,OAAOppB,EAAEq5B,EAAEsf,MAAM,GAAGjb,EAAErE,EAAEwgB,KAAK,GAAG,KAAK,GAAG,GAAGxgB,EAAEsf,MAAM,CAAC,IAAI9a,EAAExE,EAAEsf,MAAMnf,EAAEqE,GAAG,CAAC,GAAG,IAAI1E,EAAE,MAAMv3B,EAAEu3B,IAAIC,GAAGK,EAAEnZ,MAAMkZ,EAAEA,GAAG,EAAEH,EAAEjQ,QAAQgQ,GAAG,GAAGC,EAAEsf,OAAO,EAAEvf,KAAKC,EAAEsf,MAAMnf,GAAGH,EAAEsf,MAAMtf,EAAEwhB,MAAMxhB,EAAEsf,MAAM,GAAGtf,EAAEjQ,OAAOiQ,EAAE8f,KAAK,CAACv3C,EAAEytC,IAAI,gCAAgChW,EAAEwgB,KAAK,GAAG,MAAMxgB,EAAEwgB,KAAK,GAAG,KAAK,GAAG,GAAG,IAAIz5B,EAAE,MAAMxe,EAAE,GAAGse,EAAE0Z,EAAExZ,EAAEiZ,EAAEjQ,OAAOlJ,EAAE,CAAC,IAAIA,EAAEmZ,EAAEjQ,OAAOlJ,GAAGmZ,EAAEggB,OAAOhgB,EAAEygB,KAAK,CAACl4C,EAAEytC,IAAI,gCAAgChW,EAAEwgB,KAAK,GAAG,MAAMhgB,EAAE3Z,EAAEmZ,EAAEigB,OAAOp5B,GAAGmZ,EAAEigB,MAAMjgB,EAAE+f,MAAMl5B,GAAGmZ,EAAEigB,MAAMp5B,EAAEA,EAAEmZ,EAAEzhC,SAASsoB,EAAEmZ,EAAEzhC,QAAQyoB,EAAEgZ,EAAEzvB,YAAYyW,EAAE5mB,EAAEogC,EAAE95B,EAAEs5B,EAAEjQ,OAAOlJ,EAAEmZ,EAAEzhC,OAAO,IAAIwoB,EAAEF,IAAIA,EAAEE,GAAGA,GAAGF,EAAEmZ,EAAEzhC,QAAQsoB,EAAEzmB,EAAEsG,KAAKsgB,EAAEwZ,OAAO3Z,IAAI,IAAImZ,EAAEzhC,SAASyhC,EAAEwgB,KAAK,IAAI,MAAM,KAAK,GAAG,GAAG,IAAIz5B,EAAE,MAAMxe,EAAEnI,EAAEsG,KAAKs5B,EAAEzhC,OAAOwoB,IAAIiZ,EAAEwgB,KAAK,GAAG,MAAM,KAAK,GAAG,GAAGxgB,EAAE7uB,KAAK,CAAC,KAAKgvB,EAAE,IAAI,CAAC,GAAG,IAAIL,EAAE,MAAMv3B,EAAEu3B,IAAIC,GAAGK,EAAEnZ,MAAMkZ,EAAEA,GAAG,EAAE,GAAGI,GAAGxZ,EAAExe,EAAEyyC,WAAWza,EAAEP,EAAE8gB,OAAOvgB,EAAEA,IAAIh4B,EAAE2zC,MAAMlc,EAAE6gB,MAAM7gB,EAAE4gB,MAAM5b,EAAEhF,EAAE6gB,MAAMzgD,EAAEmgC,EAAE75B,EAAE65B,GAAG2D,EAAElE,EAAE6gB,MAAMzgD,EAAEmgC,EAAE75B,EAAE65B,IAAIA,EAAExZ,GAAGiZ,EAAE4gB,MAAM7gB,EAAEvZ,EAAEuZ,MAAMC,EAAE6gB,MAAM,CAACt4C,EAAEytC,IAAI,uBAAuBhW,EAAEwgB,KAAK,GAAG,MAAMrgB,EAAEJ,EAAE,EAAEC,EAAEwgB,KAAK,GAAG,KAAK,GAAG,GAAGxgB,EAAE7uB,MAAM6uB,EAAE4gB,MAAM,CAAC,KAAKzgB,EAAE,IAAI,CAAC,GAAG,IAAIL,EAAE,MAAMv3B,EAAEu3B,IAAIC,GAAGK,EAAEnZ,MAAMkZ,EAAEA,GAAG,EAAE,GAAGJ,KAAK,WAAWC,EAAE8gB,OAAO,CAACv4C,EAAEytC,IAAI,yBAAyBhW,EAAEwgB,KAAK,GAAG,MAAMrgB,EAAEJ,EAAE,EAAEC,EAAEwgB,KAAK,GAAG,KAAK,GAAGzuC,EAAE,EAAE,MAAMxJ,EAAE,KAAK,GAAGwJ,GAAG,EAAE,MAAMxJ,EAAE,KAAK,GAAG,OAAO,EAAE,KAAK,GAAG,QAAQ,OAAO8yC,EAAE,OAAO9yC,EAAEyuC,SAAStwC,EAAE6B,EAAE6tC,UAAUrvB,EAAExe,EAAEquC,QAAQ3vB,EAAE1e,EAAEsuC,SAAS/W,EAAEE,EAAEkgB,KAAKngB,EAAEC,EAAEmgB,KAAKhgB,GAAGH,EAAE+f,OAAOxf,IAAIh4B,EAAE6tC,WAAWpW,EAAEwgB,KAAK,KAAKxgB,EAAEwgB,KAAK,IAAI,IAAIvgB,KAAKnwB,EAAEvH,EAAEA,EAAEuuC,OAAOvuC,EAAEyuC,SAASzW,EAAEh4B,EAAE6tC,YAAYpW,EAAEwgB,KAAK,IAAI,IAAI9f,GAAGn4B,EAAEsuC,SAAStW,GAAGh4B,EAAE6tC,UAAU7tC,EAAE4zC,UAAUzb,EAAEn4B,EAAEyyC,WAAWza,EAAEP,EAAE8gB,OAAOvgB,EAAEP,EAAE7uB,MAAMovB,IAAIh4B,EAAE2zC,MAAMlc,EAAE6gB,MAAM7gB,EAAE4gB,MAAM5b,EAAEhF,EAAE6gB,MAAMzgD,EAAEmgC,EAAEh4B,EAAEyuC,SAASzW,GAAG2D,EAAElE,EAAE6gB,MAAMzgD,EAAEmgC,EAAEh4B,EAAEyuC,SAASzW,IAAIh4B,EAAEu2C,UAAU9e,EAAEmgB,MAAMngB,EAAEnU,KAAK,GAAG,IAAI,KAAKmU,EAAEwgB,KAAK,IAAI,IAAI,KAAKxgB,EAAEwgB,MAAM,KAAKxgB,EAAEwgB,KAAK,IAAI,IAAI,GAAG9f,GAAG,IAAIH,GAAG,IAAIN,IAAIluB,IAAIkpC,IAAIlpC,GAAG,GAAGA,IAAIiuB,EAAEyY,WAAW,SAASlwC,GAAG,IAAIA,IAAIA,EAAEgsC,MAAM,OAAO8G,EAAE,IAAIpb,EAAE13B,EAAEgsC,MAAM,OAAOtU,EAAE1vB,SAAS0vB,EAAE1vB,OAAO,MAAMhI,EAAEgsC,MAAM,KAAK0G,GAAGjb,EAAE4X,iBAAiB,SAASrvC,EAAE03B,GAAG,IAAID,EAAE,OAAOz3B,GAAGA,EAAEgsC,MAAM,IAAI,GAAGvU,EAAEz3B,EAAEgsC,OAAOpjC,MAAMkqC,IAAIrb,EAAEic,KAAKhc,GAAGnO,MAAK,EAAGmpB,GAAGI,GAAGrb,EAAEkY,qBAAqB,SAAS3vC,EAAE03B,GAAG,IAAID,EAAEI,EAAEH,EAAE1hC,OAAO,OAAOgK,GAAGA,EAAEgsC,MAAM,KAAKvU,EAAEz3B,EAAEgsC,OAAOpjC,MAAM,KAAK6uB,EAAEwgB,KAAKnF,EAAE,KAAKrb,EAAEwgB,MAAMtc,EAAE,EAAEjE,EAAEG,EAAE,KAAKJ,EAAE6gB,OAAO,EAAE/wC,EAAEvH,EAAE03B,EAAEG,EAAEA,IAAIJ,EAAEwgB,KAAK,IAAI,IAAIxgB,EAAE2gB,SAAS,EAAE1F,GAAGI,GAAGrb,EAAE8hB,YAAY,sCAAsC,CAAC,kBAAkB,GAAG,YAAY,GAAG,UAAU,GAAG,YAAY,GAAG,aAAa,KAAKC,GAAG,CAAC,SAASx5C,EAAE03B,EAAED,GAAG,aAAa,IAAI4a,EAAEryC,EAAE,mBAAmBqH,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,GAAGqrC,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAII,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,EAAE,GAAGC,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAIrb,EAAEJ,QAAQ,SAASt3B,EAAE03B,EAAED,EAAEI,EAAEhgC,EAAE6mB,EAAEvgB,EAAEo5B,GAAG,IAAI/Y,EAAEgZ,EAAEI,EAAEO,EAAEH,EAAE1Z,EAAE2Z,EAAExZ,EAAEtjB,EAAE2gC,EAAEvE,EAAEqgB,KAAKx5C,EAAE,EAAE29B,EAAE,EAAEre,EAAE,EAAEoV,EAAE,EAAEkJ,EAAE,EAAExyB,EAAE,EAAElC,EAAE,EAAE20B,EAAE,EAAEC,EAAE,EAAE9d,EAAE,EAAEhX,EAAE,KAAKy0B,EAAE,EAAEF,EAAE,IAAI0W,EAAE5B,MAAM,IAAIhU,EAAE,IAAI4V,EAAE5B,MAAM,IAAI9T,EAAE,KAAKyV,EAAE,EAAE,IAAIh0C,EAAE,EAAEA,GAAG,GAAGA,IAAIu9B,EAAEv9B,GAAG,EAAE,IAAI29B,EAAE,EAAEA,EAAElE,EAAEkE,IAAIJ,EAAEjE,EAAED,EAAEsE,MAAM,IAAIC,EAAEF,EAAEhJ,EAAE,GAAG,GAAGA,GAAG,IAAI6I,EAAE7I,GAAGA,KAAK,GAAGA,EAAEkJ,IAAIA,EAAElJ,GAAG,IAAIA,EAAE,OAAOj7B,EAAE6mB,KAAK,SAAS7mB,EAAE6mB,KAAK,SAAS6Y,EAAEqgB,KAAK,EAAE,EAAE,IAAIl6B,EAAE,EAAEA,EAAEoV,GAAG,IAAI6I,EAAEje,GAAGA,KAAK,IAAIse,EAAEte,IAAIse,EAAEte,GAAGtf,EAAE69B,EAAE,EAAE79B,GAAG,GAAGA,IAAI,GAAG69B,IAAI,GAAGA,GAAGN,EAAEv9B,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE69B,IAAI,IAAIj8B,GAAG,IAAI8yB,GAAG,OAAO,EAAE,IAAI2J,EAAE,GAAG,EAAEr+B,EAAE,EAAEA,EAAE,GAAGA,IAAIq+B,EAAEr+B,EAAE,GAAGq+B,EAAEr+B,GAAGu9B,EAAEv9B,GAAG,IAAI29B,EAAE,EAAEA,EAAElE,EAAEkE,IAAI,IAAIrE,EAAED,EAAEsE,KAAK59B,EAAEs+B,EAAE/E,EAAED,EAAEsE,OAAOA,GAAG,GAAGzd,EAAE,IAAIte,GAAGoH,EAAEu1B,EAAEx+B,EAAE,IAAI,IAAI6B,GAAGoH,EAAEC,EAAEw0B,GAAG,IAAIc,EAAE+V,EAAEN,GAAG,IAAI,MAAMhrC,EAAE0rC,EAAEnW,EAAEoW,GAAG,GAAG30C,EAAEsf,EAAEsa,EAAEtZ,EAAEpX,EAAEy0B,EAAE3d,EAAE,EAAEwZ,GAAG,EAAEO,GAAG+D,EAAE,IAAI1yB,EAAEwyB,IAAI,EAAE,IAAIh8B,GAAG,IAAIk8B,GAAG,IAAIl8B,GAAG,IAAIk8B,EAAE,OAAO,EAAE,OAAO,CAAC,IAAIjE,EAAE75B,EAAEkJ,EAAEnM,EAAEgD,EAAE49B,GAAGzd,GAAGG,EAAE,EAAEtgB,EAAE49B,IAAI59B,EAAE49B,GAAGzd,GAAGG,EAAEke,EAAEyV,EAAEj0C,EAAE49B,IAAI30B,EAAEy0B,EAAE19B,EAAE49B,MAAMtd,EAAE,GAAG,GAAGD,EAAE,GAAGpgB,EAAEkJ,EAAEoW,EAAE8Z,EAAE,GAAGhuB,EAAE3R,EAAEmgC,GAAG5Z,GAAG9W,IAAIkwB,GAAGhZ,IAAIyZ,GAAG,GAAGxZ,GAAG,GAAGtjB,EAAE,EAAE,IAAIq8B,IAAI,IAAIhZ,EAAE,GAAGpgB,EAAE,EAAEggB,EAAEI,GAAGA,IAAI,EAAE,GAAG,IAAIA,GAAGJ,GAAGI,EAAE,EAAEJ,GAAGI,GAAGJ,EAAE,EAAE2d,IAAI,KAAKJ,EAAEv9B,GAAG,CAAC,GAAGA,IAAI00B,EAAE,MAAM10B,EAAEs5B,EAAED,EAAEt5B,EAAE49B,IAAI,GAAGC,EAAE59B,IAAIggB,EAAE+Z,KAAKP,EAAE,CAAC,IAAI,IAAItwB,IAAIA,EAAE00B,GAAGhE,GAAGta,EAAEue,EAAE,IAAIzyB,EAAEpL,EAAEkJ,GAAGkC,EAAElC,EAAEwrB,MAAMmJ,GAAGN,EAAEnyB,EAAElC,KAAK,IAAIkC,IAAIyyB,IAAI,EAAE,GAAGC,GAAG,GAAG1yB,EAAE,IAAIxJ,GAAG,IAAIk8B,GAAG,IAAIl8B,GAAG,IAAIk8B,EAAE,OAAO,EAAErkC,EAAE+/B,EAAExZ,EAAE+Z,GAAG6D,GAAG,GAAGxyB,GAAG,GAAGwuB,EAAEtZ,EAAE,GAAG,OAAO,IAAIN,IAAIvmB,EAAEmgC,EAAE5Z,GAAGhgB,EAAEkJ,GAAG,GAAG,IAAI,GAAG,GAAGiwB,EAAEqgB,KAAK5b,EAAE,IAAI,CAAC,kBAAkB,KAAKyd,GAAG,CAAC,SAASz5C,EAAE03B,EAAED,GAAG,aAAaC,EAAEJ,QAAQ,CAACmB,EAAE,kBAAkBV,EAAE,aAAa2hB,EAAE,GAAG,KAAK,aAAa,KAAK,eAAe,KAAK,aAAa,KAAK,sBAAsB,KAAK,eAAe,KAAK,yBAAyB,IAAIC,GAAG,CAAC,SAAS35C,EAAE03B,EAAED,GAAG,aAAa,IAAI5/B,EAAEmI,EAAE,mBAAmBu3B,EAAE,EAAE/Y,EAAE,EAAE,SAASqZ,EAAE73B,GAAG,IAAI,IAAI03B,EAAE13B,EAAEhK,OAAO,KAAK0hC,GAAG13B,EAAE03B,GAAG,EAAE,IAAIhZ,EAAE,EAAEvgB,EAAE,GAAGq5B,EAAE,IAAII,EAAEJ,EAAE,EAAEr5B,EAAEg6B,EAAE,GAAGH,EAAE,GAAG78B,EAAE,EAAEy8B,EAAE,EAAEkE,EAAE,GAAGxd,EAAE,GAAG2Z,EAAE,EAAExZ,EAAE,IAAIrgB,EAAE,GAAG29B,EAAE,GAAGre,EAAE,GAAGoV,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAGkJ,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAIxyB,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAGlC,EAAE,CAAC,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI20B,EAAE,IAAIhhC,MAAM,GAAG28B,EAAE,IAAIC,EAAEoE,GAAG,IAAIC,EAAE,IAAIjhC,MAAM,EAAEk9B,GAAGN,EAAEqE,GAAG,IAAI9d,EAAE,IAAInjB,MAAM,KAAK48B,EAAEzZ,GAAG,IAAIhX,EAAE,IAAInM,MAAM,KAAK48B,EAAEzwB,GAAG,IAAIy0B,EAAE,IAAI5gC,MAAMkD,GAAG05B,EAAEgE,GAAG,IAAIF,EAAEc,EAAEE,EAAEyV,EAAE,IAAIn3C,MAAMk9B,GAAG,SAASka,EAAEryC,EAAE03B,EAAED,EAAEI,EAAEhgC,GAAGuE,KAAKw9C,YAAY55C,EAAE5D,KAAKy9C,WAAWniB,EAAEt7B,KAAK09C,WAAWriB,EAAEr7B,KAAK29C,MAAMliB,EAAEz7B,KAAK49C,WAAWniD,EAAEuE,KAAK69C,UAAUj6C,GAAGA,EAAEhK,OAAO,SAASqR,EAAErH,EAAE03B,GAAGt7B,KAAK89C,SAASl6C,EAAE5D,KAAK+9C,SAAS,EAAE/9C,KAAKg+C,UAAU1iB,EAAE,SAASgb,EAAE1yC,GAAG,OAAOA,EAAE,IAAIoe,EAAEpe,GAAGoe,EAAE,KAAKpe,IAAI,IAAI,SAAS8yC,EAAE9yC,EAAE03B,GAAG13B,EAAEuyC,YAAYvyC,EAAEsyC,WAAW,IAAI5a,EAAE13B,EAAEuyC,YAAYvyC,EAAEsyC,WAAW5a,IAAI,EAAE,IAAI,SAASqb,EAAE/yC,EAAE03B,EAAED,GAAGz3B,EAAEq2C,SAAS/3B,EAAEmZ,GAAGz3B,EAAEo2C,QAAQ1e,GAAG13B,EAAEq2C,SAAS,MAAMvD,EAAE9yC,EAAEA,EAAEo2C,QAAQp2C,EAAEo2C,OAAO1e,GAAGpZ,EAAEte,EAAEq2C,SAASr2C,EAAEq2C,UAAU5e,EAAEnZ,IAAIte,EAAEo2C,QAAQ1e,GAAG13B,EAAEq2C,SAAS,MAAMr2C,EAAEq2C,UAAU5e,GAAG,SAASxZ,EAAEje,EAAE03B,EAAED,GAAGsb,EAAE/yC,EAAEy3B,EAAE,EAAEC,GAAGD,EAAE,EAAEC,EAAE,IAAI,SAAS7zB,EAAE7D,EAAE03B,GAAG,IAAI,IAAID,EAAE,EAAEA,GAAG,EAAEz3B,EAAEA,KAAK,EAAEy3B,IAAI,EAAE,IAAIC,IAAI,OAAOD,IAAI,EAAE,SAASlwB,EAAEvH,EAAE03B,EAAED,GAAG,IAAII,EAAEhgC,EAAE6mB,EAAE,IAAIzjB,MAAM6gC,EAAE,GAAG39B,EAAE,EAAE,IAAI05B,EAAE,EAAEA,GAAGiE,EAAEjE,IAAInZ,EAAEmZ,GAAG15B,EAAEA,EAAEs5B,EAAEI,EAAE,IAAI,EAAE,IAAIhgC,EAAE,EAAEA,GAAG6/B,EAAE7/B,IAAI,CAAC,IAAI0/B,EAAEv3B,EAAE,EAAEnI,EAAE,GAAG,IAAI0/B,IAAIv3B,EAAE,EAAEnI,GAAGgM,EAAE6a,EAAE6Y,KAAKA,KAAK,SAAS8c,EAAEr0C,GAAG,IAAI03B,EAAE,IAAIA,EAAE,EAAEA,EAAEE,EAAEF,IAAI13B,EAAEm1C,UAAU,EAAEzd,GAAG,EAAE,IAAIA,EAAE,EAAEA,EAAES,EAAET,IAAI13B,EAAEo1C,UAAU,EAAE1d,GAAG,EAAE,IAAIA,EAAE,EAAEA,EAAEM,EAAEN,IAAI13B,EAAEq1C,QAAQ,EAAE3d,GAAG,EAAE13B,EAAEm1C,UAAU,EAAE12B,GAAG,EAAEze,EAAEi2C,QAAQj2C,EAAEk2C,WAAW,EAAEl2C,EAAEo0C,SAASp0C,EAAEm2C,QAAQ,EAAE,SAASr4B,EAAE9d,GAAG,EAAEA,EAAEq2C,SAASvD,EAAE9yC,EAAEA,EAAEo2C,QAAQ,EAAEp2C,EAAEq2C,WAAWr2C,EAAEuyC,YAAYvyC,EAAEsyC,WAAWtyC,EAAEo2C,QAAQp2C,EAAEo2C,OAAO,EAAEp2C,EAAEq2C,SAAS,EAAE,SAAS93B,EAAEve,EAAE03B,EAAED,EAAEI,GAAG,IAAIhgC,EAAE,EAAE6/B,EAAEhZ,EAAE,EAAE+Y,EAAE,OAAOz3B,EAAEnI,GAAGmI,EAAE0e,IAAI1e,EAAEnI,KAAKmI,EAAE0e,IAAImZ,EAAEH,IAAIG,EAAEJ,GAAG,SAAS6e,EAAEt2C,EAAE03B,EAAED,GAAG,IAAI,IAAII,EAAE73B,EAAE01C,KAAKje,GAAG5/B,EAAE4/B,GAAG,EAAE5/B,GAAGmI,EAAE21C,WAAW99C,EAAEmI,EAAE21C,UAAUp3B,EAAEmZ,EAAE13B,EAAE01C,KAAK79C,EAAE,GAAGmI,EAAE01C,KAAK79C,GAAGmI,EAAE61C,QAAQh+C,KAAK0mB,EAAEmZ,EAAEG,EAAE73B,EAAE01C,KAAK79C,GAAGmI,EAAE61C,SAAS71C,EAAE01C,KAAKje,GAAGz3B,EAAE01C,KAAK79C,GAAG4/B,EAAE5/B,EAAEA,IAAI,EAAEmI,EAAE01C,KAAKje,GAAGI,EAAE,SAAS4e,EAAEz2C,EAAE03B,EAAED,GAAG,IAAII,EAAEhgC,EAAE6mB,EAAEvgB,EAAEo5B,EAAE,EAAE,GAAG,IAAIv3B,EAAEo0C,SAAS,KAAKvc,EAAE73B,EAAEuyC,YAAYvyC,EAAEg2C,MAAM,EAAEze,IAAI,EAAEv3B,EAAEuyC,YAAYvyC,EAAEg2C,MAAM,EAAEze,EAAE,GAAG1/B,EAAEmI,EAAEuyC,YAAYvyC,EAAE81C,MAAMve,GAAGA,IAAI,IAAIM,EAAE5Z,EAAEje,EAAEnI,EAAE6/B,IAAIzZ,EAAEje,GAAG0e,EAAEtX,EAAEvP,IAAI2/B,EAAE,EAAEE,GAAG,KAAKv5B,EAAE20B,EAAEpU,KAAKq0B,EAAE/yC,EAAEnI,GAAGgkC,EAAEnd,GAAGvgB,GAAG8f,EAAEje,EAAE0e,EAAEg0B,IAAI7a,GAAGJ,GAAG,KAAKt5B,EAAE69B,EAAEtd,KAAKq0B,EAAE/yC,EAAE63B,GAAGua,EAAE1zB,GAAGvgB,IAAIo5B,EAAEv3B,EAAEo0C,WAAWn2B,EAAEje,EAAEye,EAAEiZ,GAAG,SAASgf,EAAE12C,EAAE03B,GAAG,IAAID,EAAEI,EAAEhgC,EAAE6mB,EAAEgZ,EAAEwiB,SAAS/7C,EAAEu5B,EAAE0iB,UAAUR,YAAYriB,EAAEG,EAAE0iB,UAAUH,UAAUz7B,EAAEkZ,EAAE0iB,UAAUL,MAAMviB,GAAG,EAAE,IAAIx3B,EAAE21C,SAAS,EAAE31C,EAAE41C,SAASz6C,EAAEs8B,EAAE,EAAEA,EAAEjZ,EAAEiZ,IAAI,IAAI/Y,EAAE,EAAE+Y,IAAIz3B,EAAE01C,OAAO11C,EAAE21C,UAAUne,EAAEC,EAAEz3B,EAAE61C,MAAMpe,GAAG,GAAG/Y,EAAE,EAAE+Y,EAAE,GAAG,EAAE,KAAKz3B,EAAE21C,SAAS,GAAGj3B,EAAE,GAAG7mB,EAAEmI,EAAE01C,OAAO11C,EAAE21C,UAAUne,EAAE,IAAIA,EAAE,IAAI,EAAEx3B,EAAE61C,MAAMh+C,GAAG,EAAEmI,EAAEi2C,UAAU1e,IAAIv3B,EAAEk2C,YAAY/3C,EAAE,EAAEtG,EAAE,IAAI,IAAI6/B,EAAEyiB,SAAS3iB,EAAEC,EAAEz3B,EAAE21C,UAAU,EAAE,GAAGle,EAAEA,IAAI6e,EAAEt2C,EAAE0e,EAAE+Y,GAAG,IAAI5/B,EAAE2mB,EAAEiZ,EAAEz3B,EAAE01C,KAAK,GAAG11C,EAAE01C,KAAK,GAAG11C,EAAE01C,KAAK11C,EAAE21C,YAAYW,EAAEt2C,EAAE0e,EAAE,GAAGmZ,EAAE73B,EAAE01C,KAAK,GAAG11C,EAAE01C,OAAO11C,EAAE41C,UAAUne,EAAEz3B,EAAE01C,OAAO11C,EAAE41C,UAAU/d,EAAEnZ,EAAE,EAAE7mB,GAAG6mB,EAAE,EAAE+Y,GAAG/Y,EAAE,EAAEmZ,GAAG73B,EAAE61C,MAAMh+C,IAAImI,EAAE61C,MAAMpe,IAAIz3B,EAAE61C,MAAMhe,GAAG73B,EAAE61C,MAAMpe,GAAGz3B,EAAE61C,MAAMhe,IAAI,EAAEnZ,EAAE,EAAE+Y,EAAE,GAAG/Y,EAAE,EAAEmZ,EAAE,GAAGhgC,EAAEmI,EAAE01C,KAAK,GAAG79C,IAAIy+C,EAAEt2C,EAAE0e,EAAE,GAAG,GAAG1e,EAAE21C,WAAW31C,EAAE01C,OAAO11C,EAAE41C,UAAU51C,EAAE01C,KAAK,GAAG,SAAS11C,EAAE03B,GAAG,IAAID,EAAEI,EAAEhgC,EAAE6mB,EAAEvgB,EAAEo5B,EAAE/Y,EAAEkZ,EAAEwiB,SAAS1iB,EAAEE,EAAEyiB,SAASviB,EAAEF,EAAE0iB,UAAUR,YAAYzhB,EAAET,EAAE0iB,UAAUH,UAAUjiB,EAAEN,EAAE0iB,UAAUP,WAAWv7B,EAAEoZ,EAAE0iB,UAAUN,WAAW7hB,EAAEP,EAAE0iB,UAAUJ,WAAWv7B,EAAE,EAAE,IAAIC,EAAE,EAAEA,GAAGod,EAAEpd,IAAI1e,EAAEy1C,SAAS/2B,GAAG,EAAE,IAAIF,EAAE,EAAExe,EAAE01C,KAAK11C,EAAE41C,UAAU,GAAG,EAAEne,EAAEz3B,EAAE41C,SAAS,EAAEne,EAAEt8B,EAAEs8B,IAAIQ,GAAGvZ,EAAEF,EAAE,EAAEA,EAAE,GAAGqZ,EAAE73B,EAAE01C,KAAKje,IAAI,GAAG,GAAG,KAAK/Y,EAAEuZ,EAAExZ,KAAKD,EAAE,EAAEqZ,EAAE,GAAGnZ,EAAE8Y,EAAEK,IAAI73B,EAAEy1C,SAAS/2B,KAAKvgB,EAAE,EAAEmgB,GAAGuZ,IAAI15B,EAAE65B,EAAEH,EAAEvZ,IAAIiZ,EAAE/Y,EAAE,EAAEqZ,GAAG73B,EAAEi2C,SAAS1e,GAAG7Y,EAAEvgB,GAAGg6B,IAAIn4B,EAAEk2C,YAAY3e,GAAGK,EAAE,EAAEC,EAAE,GAAG15B,KAAK,GAAG,IAAIsgB,EAAE,CAAC,EAAE,CAAC,IAAIC,EAAEuZ,EAAE,EAAE,IAAIj4B,EAAEy1C,SAAS/2B,IAAIA,IAAI1e,EAAEy1C,SAAS/2B,KAAK1e,EAAEy1C,SAAS/2B,EAAE,IAAI,EAAE1e,EAAEy1C,SAASxd,KAAKxZ,GAAG,QAAQ,EAAEA,GAAG,IAAIC,EAAEuZ,EAAE,IAAIvZ,EAAEA,IAAI,IAAImZ,EAAE73B,EAAEy1C,SAAS/2B,GAAG,IAAImZ,GAAGL,GAAG3/B,EAAEmI,EAAE01C,OAAOje,MAAMjZ,EAAE,EAAE3mB,EAAE,KAAK6mB,IAAI1e,EAAEi2C,UAAUv3B,EAAEF,EAAE,EAAE3mB,EAAE,IAAI2mB,EAAE,EAAE3mB,GAAG2mB,EAAE,EAAE3mB,EAAE,GAAG6mB,GAAGmZ,MAAjqB,CAAwqB73B,EAAE03B,GAAGnwB,EAAEmX,EAAE8Y,EAAEx3B,EAAEy1C,UAAU,SAASt2B,EAAEnf,EAAE03B,EAAED,GAAG,IAAII,EAAEhgC,EAAE6mB,GAAG,EAAEvgB,EAAEu5B,EAAE,GAAGH,EAAE,EAAE/Y,EAAE,EAAEgZ,EAAE,EAAE,IAAI,IAAIr5B,IAAIqgB,EAAE,IAAIgZ,EAAE,GAAGE,EAAE,GAAGD,EAAE,GAAG,GAAG,MAAMI,EAAE,EAAEA,GAAGJ,EAAEI,IAAIhgC,EAAEsG,EAAEA,EAAEu5B,EAAE,GAAGG,EAAE,GAAG,KAAKN,EAAE/Y,GAAG3mB,IAAIsG,IAAIo5B,EAAEC,EAAEx3B,EAAEq1C,QAAQ,EAAEx9C,IAAI0/B,EAAE,IAAI1/B,GAAGA,IAAI6mB,GAAG1e,EAAEq1C,QAAQ,EAAEx9C,KAAKmI,EAAEq1C,QAAQ,EAAEj3C,MAAMm5B,GAAG,GAAGv3B,EAAEq1C,QAAQ,EAAEtZ,KAAK/7B,EAAEq1C,QAAQ,EAAE33B,KAAKgB,EAAE7mB,EAAE2/B,GAAGD,EAAE,KAAKp5B,GAAGqgB,EAAE,IAAI,GAAG3mB,IAAIsG,GAAGqgB,EAAE,EAAE,IAAIA,EAAE,EAAE,IAAI,SAAS67B,EAAEr6C,EAAE03B,EAAED,GAAG,IAAII,EAAEhgC,EAAE6mB,GAAG,EAAEvgB,EAAEu5B,EAAE,GAAGH,EAAE,EAAE/Y,EAAE,EAAEgZ,EAAE,EAAE,IAAI,IAAIr5B,IAAIqgB,EAAE,IAAIgZ,EAAE,GAAGK,EAAE,EAAEA,GAAGJ,EAAEI,IAAI,GAAGhgC,EAAEsG,EAAEA,EAAEu5B,EAAE,GAAGG,EAAE,GAAG,OAAON,EAAE/Y,GAAG3mB,IAAIsG,GAAG,CAAC,GAAGo5B,EAAEC,EAAE,KAAKvZ,EAAEje,EAAEnI,EAAEmI,EAAEq1C,SAAS,KAAK9d,SAAS,IAAI1/B,GAAGA,IAAI6mB,IAAIT,EAAEje,EAAEnI,EAAEmI,EAAEq1C,SAAS9d,KAAKtZ,EAAEje,EAAE5B,EAAE4B,EAAEq1C,SAAStC,EAAE/yC,EAAEu3B,EAAE,EAAE,IAAIA,GAAG,IAAItZ,EAAEje,EAAE+7B,EAAE/7B,EAAEq1C,SAAStC,EAAE/yC,EAAEu3B,EAAE,EAAE,KAAKtZ,EAAEje,EAAE0d,EAAE1d,EAAEq1C,SAAStC,EAAE/yC,EAAEu3B,EAAE,GAAG,IAAI7Y,EAAE7mB,EAAE2/B,GAAGD,EAAE,KAAKp5B,GAAGqgB,EAAE,IAAI,GAAG3mB,IAAIsG,GAAGqgB,EAAE,EAAE,IAAIA,EAAE,EAAE,IAAIqZ,EAAEua,GAAG,IAAIkI,GAAE,EAAG,SAASC,EAAEv6C,EAAE03B,EAAED,EAAEI,GAAGkb,EAAE/yC,GAAG0e,GAAG,IAAImZ,EAAE,EAAE,GAAG,GAAG,SAAS73B,EAAE03B,EAAED,EAAEI,GAAG/Z,EAAE9d,GAAG63B,IAAIib,EAAE9yC,EAAEy3B,GAAGqb,EAAE9yC,GAAGy3B,IAAI5/B,EAAEo4C,SAASjwC,EAAEuyC,YAAYvyC,EAAEgI,OAAO0vB,EAAED,EAAEz3B,EAAEsyC,SAAStyC,EAAEsyC,SAAS7a,EAAvG,CAA0Gz3B,EAAE03B,EAAED,GAAE,GAAIA,EAAE+e,SAAS,SAASx2C,GAAGs6C,IAAI,WAAW,IAAIt6C,EAAE03B,EAAED,EAAEI,EAAEhgC,EAAE6mB,EAAE,IAAIzjB,MAAM6gC,EAAE,GAAG,IAAIjE,EAAEJ,EAAE,EAAEI,EAAE15B,EAAE,EAAE05B,IAAI,IAAIgE,EAAEhE,GAAGJ,EAAEz3B,EAAE,EAAEA,EAAE,GAAG8yB,EAAE+E,GAAG73B,IAAIoH,EAAEqwB,KAAKI,EAAE,IAAIzwB,EAAEqwB,EAAE,GAAGI,EAAEA,EAAEhgC,EAAE,EAAEggC,EAAE,GAAGA,IAAI,IAAIua,EAAEva,GAAGhgC,EAAEmI,EAAE,EAAEA,EAAE,GAAGg8B,EAAEnE,GAAG73B,IAAIoe,EAAEvmB,KAAKggC,EAAE,IAAIhgC,IAAI,EAAEggC,EAAEM,EAAEN,IAAI,IAAIua,EAAEva,GAAGhgC,GAAG,EAAEmI,EAAE,EAAEA,EAAE,GAAGg8B,EAAEnE,GAAG,EAAE73B,IAAIoe,EAAE,IAAIvmB,KAAKggC,EAAE,IAAIH,EAAE,EAAEA,GAAGoE,EAAEpE,IAAIhZ,EAAEgZ,GAAG,EAAE,IAAI13B,EAAE,EAAEA,GAAG,KAAKi8B,EAAE,EAAEj8B,EAAE,GAAG,EAAEA,IAAI0e,EAAE,KAAK,KAAK1e,GAAG,KAAKi8B,EAAE,EAAEj8B,EAAE,GAAG,EAAEA,IAAI0e,EAAE,KAAK,KAAK1e,GAAG,KAAKi8B,EAAE,EAAEj8B,EAAE,GAAG,EAAEA,IAAI0e,EAAE,KAAK,KAAK1e,GAAG,KAAKi8B,EAAE,EAAEj8B,EAAE,GAAG,EAAEA,IAAI0e,EAAE,KAAK,IAAInX,EAAE00B,EAAErE,EAAE,EAAElZ,GAAG1e,EAAE,EAAEA,EAAEm4B,EAAEn4B,IAAIk8B,EAAE,EAAEl8B,EAAE,GAAG,EAAEk8B,EAAE,EAAEl8B,GAAG6D,EAAE7D,EAAE,GAAG27B,EAAE,IAAI0W,EAAEpW,EAAEnJ,EAAE0E,EAAE,EAAEI,EAAEkE,GAAGW,EAAE,IAAI4V,EAAEnW,EAAEF,EAAE,EAAE7D,EAAE2D,GAAGa,EAAE,IAAI0V,EAAE,IAAIp3C,MAAM,GAAGuO,EAAE,EAAEwuB,EAAEC,GAArgB,GAA2gBqiB,GAAE,GAAIt6C,EAAEs1C,OAAO,IAAIjuC,EAAErH,EAAEm1C,UAAUxZ,GAAG37B,EAAEu1C,OAAO,IAAIluC,EAAErH,EAAEo1C,UAAU3Y,GAAGz8B,EAAEw1C,QAAQ,IAAInuC,EAAErH,EAAEq1C,QAAQ1Y,GAAG38B,EAAEo2C,OAAO,EAAEp2C,EAAEq2C,SAAS,EAAEhC,EAAEr0C,IAAIy3B,EAAEwf,iBAAiBsD,EAAE9iB,EAAEkb,gBAAgB,SAAS3yC,EAAE03B,EAAED,EAAEI,GAAG,IAAIhgC,EAAE6mB,EAAEvgB,EAAE,EAAE,EAAE6B,EAAEq7B,OAAO,IAAIr7B,EAAE4tC,KAAK2I,YAAYv2C,EAAE4tC,KAAK2I,UAAU,SAASv2C,GAAG,IAAI03B,EAAED,EAAE,WAAW,IAAIC,EAAE,EAAEA,GAAG,GAAGA,IAAID,KAAK,EAAE,GAAG,EAAEA,GAAG,IAAIz3B,EAAEm1C,UAAU,EAAEzd,GAAG,OAAOH,EAAE,GAAG,IAAIv3B,EAAEm1C,UAAU,KAAK,IAAIn1C,EAAEm1C,UAAU,KAAK,IAAIn1C,EAAEm1C,UAAU,IAAI,OAAO32B,EAAE,IAAIkZ,EAAE,GAAGA,EAAEF,EAAEE,IAAI,GAAG,IAAI13B,EAAEm1C,UAAU,EAAEzd,GAAG,OAAOlZ,EAAE,OAAO+Y,EAAjO,CAAoOv3B,IAAI02C,EAAE12C,EAAEA,EAAEs1C,QAAQoB,EAAE12C,EAAEA,EAAEu1C,QAAQp3C,EAAE,SAAS6B,GAAG,IAAI03B,EAAE,IAAIvY,EAAEnf,EAAEA,EAAEm1C,UAAUn1C,EAAEs1C,OAAO6E,UAAUh7B,EAAEnf,EAAEA,EAAEo1C,UAAUp1C,EAAEu1C,OAAO4E,UAAUzD,EAAE12C,EAAEA,EAAEw1C,SAAS9d,EAAEM,EAAE,EAAE,GAAGN,GAAG,IAAI13B,EAAEq1C,QAAQ,EAAE/tC,EAAEowB,GAAG,GAAGA,KAAK,OAAO13B,EAAEi2C,SAAS,GAAGve,EAAE,GAAG,EAAE,EAAE,EAAEA,EAApL,CAAuL13B,GAAGnI,EAAEmI,EAAEi2C,QAAQ,EAAE,IAAI,GAAGv3B,EAAE1e,EAAEk2C,WAAW,EAAE,IAAI,IAAIr+C,IAAIA,EAAE6mB,IAAI7mB,EAAE6mB,EAAE+Y,EAAE,EAAEA,EAAE,GAAG5/B,IAAI,IAAI6/B,EAAE6iB,EAAEv6C,EAAE03B,EAAED,EAAEI,GAAG,IAAI73B,EAAEstC,UAAU5uB,IAAI7mB,GAAGk7C,EAAE/yC,EAAE,GAAG63B,EAAE,EAAE,GAAG,GAAG4e,EAAEz2C,EAAEi8B,EAAEC,KAAK6W,EAAE/yC,EAAE,GAAG63B,EAAE,EAAE,GAAG,GAAG,SAAS73B,EAAE03B,EAAED,EAAEI,GAAG,IAAIhgC,EAAE,IAAIk7C,EAAE/yC,EAAE03B,EAAE,IAAI,GAAGqb,EAAE/yC,EAAEy3B,EAAE,EAAE,GAAGsb,EAAE/yC,EAAE63B,EAAE,EAAE,GAAGhgC,EAAE,EAAEA,EAAEggC,EAAEhgC,IAAIk7C,EAAE/yC,EAAEA,EAAEq1C,QAAQ,EAAE/tC,EAAEzP,GAAG,GAAG,GAAGwiD,EAAEr6C,EAAEA,EAAEm1C,UAAUzd,EAAE,GAAG2iB,EAAEr6C,EAAEA,EAAEo1C,UAAU3d,EAAE,GAA7I,CAAiJz3B,EAAEA,EAAEs1C,OAAO6E,SAAS,EAAEn6C,EAAEu1C,OAAO4E,SAAS,EAAEh8C,EAAE,GAAGs4C,EAAEz2C,EAAEA,EAAEm1C,UAAUn1C,EAAEo1C,YAAYf,EAAEr0C,GAAG63B,GAAG/Z,EAAE9d,IAAIy3B,EAAEyc,UAAU,SAASl0C,EAAE03B,EAAED,GAAG,OAAOz3B,EAAEuyC,YAAYvyC,EAAEg2C,MAAM,EAAEh2C,EAAEo0C,UAAU1c,IAAI,EAAE,IAAI13B,EAAEuyC,YAAYvyC,EAAEg2C,MAAM,EAAEh2C,EAAEo0C,SAAS,GAAG,IAAI1c,EAAE13B,EAAEuyC,YAAYvyC,EAAE81C,MAAM91C,EAAEo0C,UAAU,IAAI3c,EAAEz3B,EAAEo0C,WAAW,IAAI1c,EAAE13B,EAAEm1C,UAAU,EAAE1d,MAAMz3B,EAAEm2C,UAAUze,IAAI13B,EAAEm1C,UAAU,GAAG/tC,EAAEqwB,GAAGD,EAAE,MAAMx3B,EAAEo1C,UAAU,EAAE1C,EAAEhb,OAAO13B,EAAEo0C,WAAWp0C,EAAE+1C,YAAY,GAAGte,EAAEuf,UAAU,SAASh3C,GAAG+yC,EAAE/yC,EAAE,EAAE,GAAGie,EAAEje,EAAEye,EAAEwd,GAAG,SAASj8B,GAAG,KAAKA,EAAEq2C,UAAUvD,EAAE9yC,EAAEA,EAAEo2C,QAAQp2C,EAAEo2C,OAAO,EAAEp2C,EAAEq2C,SAAS,GAAG,GAAGr2C,EAAEq2C,WAAWr2C,EAAEuyC,YAAYvyC,EAAEsyC,WAAW,IAAItyC,EAAEo2C,OAAOp2C,EAAEo2C,SAAS,EAAEp2C,EAAEq2C,UAAU,GAArJ,CAAyJr2C,KAAK,CAAC,kBAAkB,KAAKw6C,GAAG,CAAC,SAASx6C,EAAE03B,EAAED,GAAG,aAAaC,EAAEJ,QAAQ,WAAWl7B,KAAK+S,MAAM,KAAK/S,KAAKiyC,QAAQ,EAAEjyC,KAAKkyC,SAAS,EAAElyC,KAAKw3C,SAAS,EAAEx3C,KAAKmyC,OAAO,KAAKnyC,KAAKqyC,SAAS,EAAEryC,KAAKyxC,UAAU,EAAEzxC,KAAKq2C,UAAU,EAAEr2C,KAAKqxC,IAAI,GAAGrxC,KAAK4vC,MAAM,KAAK5vC,KAAKm6C,UAAU,EAAEn6C,KAAKu3C,MAAM,IAAI,IAAI8G,GAAG,CAAC,SAASz6C,EAAE03B,EAAED,IAAG,SAAUz3B,IAAI,SAASy3B,EAAEI,GAAG,aAAa,IAAIJ,EAAEsP,aAAa,CAAC,IAAIlvC,EAAE6mB,EAAEgZ,EAAEv5B,EAAEo5B,EAAE,EAAE/Y,EAAE,GAAGgZ,GAAE,EAAGI,EAAEH,EAAER,SAASj3B,EAAEpG,OAAO8gD,gBAAgB9gD,OAAO8gD,eAAejjB,GAAGz3B,EAAEA,GAAGA,EAAEqP,WAAWrP,EAAEy3B,EAAE5/B,EAAE,qBAAqB,GAAGgmB,SAAS+D,KAAK6V,EAAEkjB,SAAS,SAAS36C,GAAG26C,EAAQC,UAAS,WAAW5iB,EAAEh4B,OAAM,WAAW,GAAGy3B,EAAEmU,cAAcnU,EAAEojB,cAAc,CAAC,IAAI76C,GAAE,EAAG03B,EAAED,EAAEiU,UAAU,OAAOjU,EAAEiU,UAAU,WAAW1rC,GAAE,GAAIy3B,EAAEmU,YAAY,GAAG,KAAKnU,EAAEiU,UAAUhU,EAAE13B,GAA9I,IAAqJ7B,EAAE,gBAAgB4f,KAAK+8B,SAAS,IAAIrjB,EAAEP,iBAAiBO,EAAEP,iBAAiB,UAAU5Y,GAAE,GAAImZ,EAAEsjB,YAAY,YAAYz8B,GAAG,SAASte,GAAGy3B,EAAEmU,YAAYztC,EAAE6B,EAAE,OAAOy3B,EAAEyT,iBAAiBxT,EAAE,IAAIwT,gBAAgBO,MAAMC,UAAU,SAAS1rC,GAAGg4B,EAAEh4B,EAAEuC,OAAO,SAASvC,GAAG03B,EAAEiU,MAAMC,YAAY5rC,KAAK43B,GAAG,uBAAuBA,EAAEuT,cAAc,WAAWzsB,EAAEkZ,EAAE2T,gBAAgB,SAASvrC,GAAG,IAAI03B,EAAEE,EAAEuT,cAAc,UAAUzT,EAAE0T,mBAAmB,WAAWpT,EAAEh4B,GAAG03B,EAAE0T,mBAAmB,KAAK1sB,EAAE4sB,YAAY5T,GAAGA,EAAE,MAAMhZ,EAAE8sB,YAAY9T,KAAK,SAAS13B,GAAGqP,WAAW2oB,EAAE,EAAEh4B,IAAIA,EAAE+mC,aAAa,SAAS/mC,GAAG,mBAAmBA,IAAIA,EAAE,IAAIg7C,SAAS,GAAGh7C,IAAI,IAAI,IAAI03B,EAAE,IAAIz8B,MAAMqB,UAAUtG,OAAO,GAAGyhC,EAAE,EAAEA,EAAEC,EAAE1hC,OAAOyhC,IAAIC,EAAED,GAAGn7B,UAAUm7B,EAAE,GAAG,IAAII,EAAE,CAACz2B,SAASpB,EAAEi7C,KAAKvjB,GAAG,OAAOlZ,EAAE+Y,GAAGM,EAAEhgC,EAAE0/B,GAAGA,KAAKv3B,EAAEk7C,eAAe/iB,EAAE,SAASA,EAAEn4B,UAAUwe,EAAExe,GAAG,SAASg4B,EAAEh4B,GAAG,GAAGw3B,EAAEnoB,WAAW2oB,EAAE,EAAEh4B,OAAO,CAAC,IAAI03B,EAAElZ,EAAExe,GAAG,GAAG03B,EAAE,CAACF,GAAE,EAAG,KAAK,SAASx3B,GAAG,IAAI03B,EAAE13B,EAAEoB,SAASq2B,EAAEz3B,EAAEi7C,KAAK,OAAOxjB,EAAEzhC,QAAQ,KAAK,EAAE0hC,IAAI,MAAM,KAAK,EAAEA,EAAED,EAAE,IAAI,MAAM,KAAK,EAAEC,EAAED,EAAE,GAAGA,EAAE,IAAI,MAAM,KAAK,EAAEC,EAAED,EAAE,GAAGA,EAAE,GAAGA,EAAE,IAAI,MAAM,QAAQC,EAAEx8B,MAAM28B,EAAEJ,IAAxK,CAA6KC,GAAG,QAAQS,EAAEn4B,GAAGw3B,GAAE,KAAM,SAASlZ,EAAEte,GAAGA,EAAEm7C,SAAS1jB,GAAG,iBAAiBz3B,EAAEuC,MAAM,IAAIvC,EAAEuC,KAAK7H,QAAQyD,IAAI65B,GAAGh4B,EAAEuC,KAAKkd,MAAMthB,EAAEnI,UAApgD,CAA+gD,oBAAoB2vC,UAAK,IAAS3lC,EAAE5D,KAAK4D,EAAE2lC,QAAQ/jB,KAAKxlB,KAAK,oBAAoByvC,EAAOA,EAAO,oBAAoBlG,KAAKA,KAAK,oBAAoB39B,OAAOA,OAAO,KAAK,KAAK,GAAG,CAAC,IAApr9F,CAAyr9F,S;;;;;;;;;;;;GCEx99F,IAAIozC,EAAmBh/C,MAAQA,KAAKg/C,iBAAoB,SAAUC,GAC9D,OAAQA,GAAOA,EAAIC,WAAcD,EAAM,CAAE,QAAWA,IAExDzhD,OAAOC,eAAey9B,EAAS,aAAc,CAAEr5B,OAAO,IACtDq5B,EAAQjyB,SAAWiyB,EAAQrxB,YAAcqxB,EAAQikB,QAAUjkB,EAAQkkB,qBAAuBlkB,EAAQ9yB,OAAS8yB,EAAQmkB,OAASnkB,EAAQxyB,eAAiBwyB,EAAQvyB,aAAeuyB,EAAQokB,6BAA+BpkB,EAAQ/xB,YAAc+xB,EAAQqkB,gBAAkBrkB,EAAQtyB,WAAasyB,EAAQskB,OAAStkB,EAAQukB,WAAavkB,EAAQwkB,SAAWxkB,EAAQykB,OAASzkB,EAAQzyB,YAAcyyB,EAAQ0kB,mBAAqB1kB,EAAQ2kB,cAAgB3kB,EAAQ4kB,8BAAgC5kB,EAAQ6kB,qBAAuB7kB,EAAQ8kB,gBAAkB9kB,EAAQ+kB,cAAgB/kB,EAAQglB,QAAUhlB,EAAQilB,cAAgBjlB,EAAQtxB,SAAWsxB,EAAQklB,YAAcllB,EAAQmlB,eAAiBnlB,EAAQ1yB,UAAY0yB,EAAQolB,4BAA8BplB,EAAQqlB,uBAAyBrlB,EAAQslB,aAAetlB,EAAQulB,kBAAoBvlB,EAAQwlB,eAAiBxlB,EAAQylB,cAAgBzlB,EAAQ0lB,eAAiB1lB,EAAQ2lB,qBAAuB3lB,EAAQ4lB,oBAAsB5lB,EAAQxxB,eAAiBwxB,EAAQzxB,gBAAkByxB,EAAQ3yB,SAAW2yB,EAAQ6lB,YAAc7lB,EAAQ8lB,mBAAqB9lB,EAAQ+lB,SAAW/lB,EAAQgmB,SAAWhmB,EAAQimB,iBAAmBjmB,EAAQkmB,KAAOlmB,EAAQmmB,YAAcnmB,EAAQomB,YAAcpmB,EAAQ5yB,gBAAa,EACjrC4yB,EAAQ1xB,cAAgB0xB,EAAQqmB,iBAAmBrmB,EAAQhyB,YAAcgyB,EAAQsmB,cAAgBtmB,EAAQ/yB,UAAY+yB,EAAQumB,KAAOvmB,EAAQ7yB,QAAU6yB,EAAQwmB,eAAiBxmB,EAAQlyB,UAAYkyB,EAAQ7xB,mBAAqB6xB,EAAQymB,eAAiBzmB,EAAQ0mB,UAAY1mB,EAAQ2mB,yBAA2B3mB,EAAQ4mB,OAAS5mB,EAAQvxB,YAAcuxB,EAAQ6mB,cAAgB7mB,EAAQryB,YAAcqyB,EAAQ8mB,cAAgB9mB,EAAQ5xB,eAAiB4xB,EAAQ+mB,mBAAqB/mB,EAAQ3xB,YAAc2xB,EAAQgnB,WAAahnB,EAAQinB,QAAUjnB,EAAQknB,cAAgBlnB,EAAQpyB,SAAWoyB,EAAQnyB,QAAUmyB,EAAQmnB,wBAA0BnnB,EAAQonB,SAAWpnB,EAAQqnB,cAAgBrnB,EAAQsnB,KAAOtnB,EAAQ9xB,oBAAiB,EAClsB,IAAIq5C,EAAczD,EAAgB,EAAQ,SACtC0D,EAAU,EAAQ,QAClBC,EAAU,EAAQ,QAClBr6C,EAAao6C,EAAQE,gBAAgB,CACrC3oB,MAAO,CACH4oB,UAAWlpD,OACXmpD,mBAAoB/3B,QACpBg4B,sBAAuBh4B,QACvBi4B,oBAAqBj4B,QACrBk4B,yBAA0Bl4B,QAC1Bm4B,aAAcn4B,QACdo4B,gBAAiBp4B,QACjBq4B,gBAAiBr4B,QACjBs4B,cAAe7lD,OACf8lD,aAAc9lD,OACd+lD,oBAAqBx4B,QACrBy4B,eAAgBj/B,OAChBk/B,mBAAoB9pD,OACpB2zB,QAASzuB,MACT6kD,YAAa,CAACn/B,OAAQ5qB,QACtBgqD,iBAAkB/E,SAClBgF,oBAAqBhF,SACrBiF,gBAAiB,GACjBt6B,WAAY,GACZu6B,wBAAyBnqD,OACzBoqD,SAAUh5B,QACVi5B,QAASxmD,OACTymD,YAAazmD,OACb0mD,gBAAiBn5B,QACjBo5B,OAAQ3mD,OACR4mD,cAAe5mD,OACf6mD,mBAAoB7mD,OACpB8mD,YAAa9mD,OACb+mD,UAAW/mD,OACXgnD,kBAAmB,CAACz5B,QAASpxB,QAC7B6sB,YAAa,CAAC3nB,MAAO+/C,SAAUjlD,QAC/B8qD,mBAAoBlgC,OACpBmgC,kBAAmB35B,QACnB45B,gBAAiBpgC,OACjBqgC,cAAe,GACfC,kBAAmB95B,QACnB+5B,SAAUtnD,OACVunD,WAAYvnD,OACZ03B,aAAc13B,OACdkU,OAAQ,CAACktC,SAAUr6B,OAAQ5qB,QAC3BqrD,iBAAkBj6B,QAClBk6B,KAAMtrD,OACNurD,kBAAmBn6B,QACnBo6B,mBAAoB3nD,OACpB4nD,QAAS,CAACvmD,MAAOlF,QACjB0rD,UAAW7nD,OACX8nD,aAAc9nD,OACd+nD,WAAY5rD,OACZ6rD,6BAA8B5G,SAC9B6G,YAAa7G,SACb8G,eAAgB9G,SAChB+G,mBAAoB/G,SACpBgH,eAAgBhH,SAChBiH,eAAgBjH,SAChBkH,uBAAwBlH,SACxBmH,oBAAqBnH,SACrBoH,YAAapH,SACbqH,eAAgBrH,SAChBsH,gBAAiBtH,SACjBuH,eAAgBvH,SAChBwH,iBAAkBxH,SAClByH,kBAAmBzH,SACnB0H,WAAY1H,SACZ2H,YAAa3H,SACb4H,aAAc5H,SACd6H,qBAAsB7H,SACtB8H,sBAAuB9H,SACvB+H,oBAAqB/H,SACrBgI,qBAAsBhI,SACtBiI,cAAejI,SACfkI,aAAclI,SACdmI,UAAWnI,SACXoI,gBAAiBpI,SACjBqI,WAAYrI,SACZsI,eAAgBtI,SAChBuI,gBAAiBvI,SACjBwI,cAAexI,SACfyI,cAAezI,SACf0I,eAAgB1I,SAChB2I,cAAe3I,SACf4I,eAAgB5I,SAChB6I,cAAe7I,SACf8I,aAAc9I,SACd+I,cAAe/I,SACfgJ,aAAchJ,SACdiJ,cAAejJ,SACfkJ,gBAAiBlJ,SACjBmJ,QAASnJ,SACToJ,SAAUpJ,SACVqJ,mBAAoBrJ,SACpBsJ,mBAAoBtJ,SACpBuJ,MAAO3qD,OACP4qD,OAAQ5qD,OACRyxB,iBAAkB,CAAClE,QAASvtB,OAAQ7D,QACpC0uD,YAAat9B,QACbu9B,mBAAoBv9B,QACpBw9B,sBAAuBx9B,QACvBy9B,YAAahrD,OACbirD,YAAa,GACbp9B,WAAYN,QACZ29B,UAAWlrD,OACXmrD,YAAanrD,OACborD,gBAAiB/pD,MACjBgqD,UAAWrrD,OACXsrD,gBAAiB,CAACjqD,MAAO+/C,SAAUjlD,QACnCovD,YAAah+B,QACbi+B,kBAAmBj+B,QACnBk+B,gBAAiBl+B,QACjBm+B,aAAcn+B,QACdo+B,uBAAwBtqD,MACxBuqD,QAAS5rD,OACT6rD,aAAc7rD,OACd8rD,QAAS9rD,OACT+rD,uBAAwBx+B,QACxBy+B,SAAUjlC,OACVklC,QAASjsD,OACTksD,qBAAsB3+B,QACtB4+B,QAAS5+B,QACTxjB,MAAO,CAACq3C,SAAUr6B,OAAQ5qB,QAC1BiwD,gBAAiB7+B,SAErB8+B,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,mBAAoB,KACpB,4BAA6B,KAC7B,+BAAgC,KAChC,6BAA8B,KAC9B,kCAAmC,KACnC,sBAAuB,KACvB,yBAA0B,KAC1B,yBAA0B,KAC1B,uBAAwB,KACxB,sBAAuB,KACvB,6BAA8B,KAC9B,wBAAyB,KACzB,4BAA6B,KAC7B,iBAAkB,KAClB,qBAAsB,KACtB,0BAA2B,KAC3B,6BAA8B,KAC9B,yBAA0B,KAC1B,oBAAqB,KACrB,iCAAkC,KAClC,kBAAmB,KACnB,iBAAkB,KAClB,qBAAsB,KACtB,yBAA0B,KAC1B,gBAAiB,KACjB,uBAAwB,KACxB,4BAA6B,KAC7B,qBAAsB,KACtB,mBAAoB,KACpB,2BAA4B,KAC5B,qBAAsB,KACtB,4BAA6B,KAC7B,2BAA4B,KAC5B,yBAA0B,KAC1B,uBAAwB,KACxB,2BAA4B,KAC5B,kBAAmB,KACnB,oBAAqB,KACrB,sBAAuB,KACvB,gBAAiB,KACjB,0BAA2B,KAC3B,cAAe,KACf,2BAA4B,KAC5B,4BAA6B,KAC7B,iBAAkB,KAClB,mBAAoB,KACpB,sBAAuB,KACvB,oBAAqB,KACrB,sCAAuC,KACvC,qBAAsB,KACtB,wBAAyB,KACzB,4BAA6B,KAC7B,wBAAyB,KACzB,wBAAyB,KACzB,gCAAiC,KACjC,6BAA8B,KAC9B,qBAAsB,KACtB,wBAAyB,KACzB,yBAA0B,KAC1B,wBAAyB,KACzB,0BAA2B,KAC3B,2BAA4B,KAC5B,oBAAqB,KACrB,qBAAsB,KACtB,sBAAuB,KACvB,8BAA+B,KAC/B,+BAAgC,KAChC,6BAA8B,KAC9B,8BAA+B,KAC/B,uBAAwB,KACxB,sBAAuB,KACvB,mBAAoB,KACpB,yBAA0B,KAC1B,oBAAqB,KACrB,wBAAyB,KACzB,yBAA0B,KAC1B,uBAAwB,KACxB,uBAAwB,KACxB,wBAAyB,KACzB,uBAAwB,KACxB,wBAAyB,KACzB,uBAAwB,KACxB,sBAAuB,KACvB,uBAAwB,KACxB,sBAAuB,KACvB,uBAAwB,KACxB,yBAA0B,KAC1B,iBAAkB,KAClB,kBAAmB,KACnB,4BAA6B,KAC7B,4BAA6B,KAC7B,eAAgB,KAChB,gBAAiB,KACjB,0BAA2B,KAC3B,qBAAsB,KACtB,4BAA6B,KAC7B,+BAAgC,KAChC,qBAAsB,KACtB,qBAAsB,KACtB,oBAAqB,KACrB,mBAAoB,KACpB,qBAAsB,KACtB,yBAA0B,KAC1B,mBAAoB,KACpB,yBAA0B,KAC1B,qBAAsB,KACtB,2BAA4B,KAC5B,yBAA0B,KAC1B,sBAAuB,KACvB,gCAAiC,KACjC,iBAAkB,KAClB,sBAAuB,KACvB,iBAAkB,KAClB,gCAAiC,KACjC,kBAAmB,KACnB,iBAAkB,KAClB,8BAA+B,KAC/B,iBAAkB,KAClB,eAAgB,KAChB,yBAA0B,MAE9B/9C,SAAU,CACNG,SAAU,WACN,OAAOjM,KAAK8pD,aAGpBC,aAAc,WACV/pD,KAAKgqD,cAAgBvH,EAAYwH,QACjCjqD,KAAKkqD,oBAAqB,EAC1BlqD,KAAKmqD,mBAAqB,CACtBr5C,OAAQ,CAAEs5C,kBAAkB,EAAMC,WAAY,WAC9ChH,cAAe,CAAE+G,kBAAkB,EAAOC,WAAY,iBACtD/G,aAAc,CAAE8G,kBAAkB,EAAOC,WAAY,gBACrDC,qBAAsB,CAAEF,kBAAkB,EAAOC,WAAY,gBAC7DrG,QAAS,CAAEoG,kBAAkB,EAAOC,WAAY,WAChDlG,OAAQ,CAAEiG,kBAAkB,EAAOC,WAAY,UAC/CjG,cAAe,CAAEgG,kBAAkB,EAAOC,WAAY,iBACtDhG,mBAAoB,CAAE+F,kBAAkB,EAAOC,WAAY,sBAC3D/F,YAAa,CAAE8F,kBAAkB,EAAOC,WAAY,eACpD9F,UAAW,CAAE6F,kBAAkB,EAAOC,WAAY,aAClDvF,SAAU,CAAEsF,kBAAkB,EAAOC,WAAY,YACjDtF,WAAY,CAAEqF,kBAAkB,EAAOC,WAAY,cACnDn1B,aAAc,CAAEk1B,kBAAkB,EAAOC,WAAY,gBACrDlF,mBAAoB,CAAEiF,kBAAkB,EAAOC,WAAY,sBAC3DhF,UAAW,CAAE+E,kBAAkB,EAAOC,WAAY,aAClD/E,aAAc,CAAE8E,kBAAkB,EAAOC,WAAY,gBACrDlC,MAAO,CAAEiC,kBAAkB,EAAOC,WAAY,SAC9CjC,OAAQ,CAAEgC,kBAAkB,EAAOC,WAAY,UAC/Cp7B,iBAAkB,CAAEm7B,kBAAkB,EAAOC,WAAY,oBACzD7B,YAAa,CAAE4B,kBAAkB,EAAOC,WAAY,eACpD3B,UAAW,CAAE0B,kBAAkB,EAAOC,WAAY,aAClD1B,YAAa,CAAEyB,kBAAkB,EAAOC,WAAY,eACpDxB,UAAW,CAAEuB,kBAAkB,EAAOC,WAAY,aAClDlB,uBAAwB,CAAEiB,kBAAkB,EAAMC,WAAY,0BAC9DjB,QAAS,CAAEgB,kBAAkB,EAAOC,WAAY,WAChDhB,aAAc,CAAEe,kBAAkB,EAAOC,WAAY,gBACrDf,QAAS,CAAEc,kBAAkB,EAAOC,WAAY,WAChDZ,QAAS,CAAEW,kBAAkB,EAAOC,WAAY,eAI5DnvB,EAAQ5yB,WAAaA,EACrB,IAAIg5C,EAAcqB,EAAQ4H,6BAA6B,CACnDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,cAAe,KACf,cAAe,MAEnB5vB,MAAO,CACHuwB,KAAM,CAAChtD,OAAQ+mB,OAAQ5qB,QACvB8wD,KAAM,CAACjtD,OAAQ+mB,OAAQ5qB,WAG/BuhC,EAAQomB,YAAcA,EACtBA,EAAYoJ,aAAe,YAC3BpJ,EAAY6I,mBAAqB,CAC7BK,KAAM,CAAEJ,kBAAkB,EAAOC,WAAY,QAC7CI,KAAM,CAAEL,kBAAkB,EAAOC,WAAY,SAEjD,IAAIhJ,EAAcsB,EAAQ4H,6BAA6B,CACnDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,0BAA2B,KAC3B,iBAAkB,KAClB,oBAAqB,KACrB,cAAe,KACf,4BAA6B,MAEjC5vB,MAAO,CACH0wB,iBAAkB5/B,QAClB7C,QAASvuB,OACTixD,WAAY7/B,QACZtsB,KAAM9E,OACNkxD,mBAAoBjM,YAG5B1jB,EAAQmmB,YAAcA,EACtBA,EAAYqJ,aAAe,kBAC3BrJ,EAAYyJ,oBAAqB,EACjCzJ,EAAY0J,kBAAoB,CAC5BtsD,KAAM,SAEV,IAAI2iD,EAAOuB,EAAQ4H,6BAA6B,CAC5CV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,WAAY,KACZ,WAAY,MAEhB5vB,MAAO,CACH7sB,EAAGzT,OACH2nB,EAAG3nB,UAGXuhC,EAAQkmB,KAAOA,EACfA,EAAKsJ,aAAe,KACpB,IAAIvJ,EAAmBwB,EAAQ4H,6BAA6B,CACxDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,WAAY,KACZ,WAAY,MAEhB5vB,MAAO,CACH7sB,EAAGmX,OACHjD,EAAGiD,UAGX2W,EAAQimB,iBAAmBA,EAC3BA,EAAiBuJ,aAAe,iBAChC,IAAIxJ,EAAWyB,EAAQ4H,6BAA6B,CAChDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,kBAAmB,KACnB,kBAAmB,KACnB,cAAe,KACf,cAAe,KACf,cAAe,KACf,iBAAkB,KAClB,kBAAmB,KACnB,cAAe,KACf,iBAAkB,MAEtB5vB,MAAO,CACH+wB,SAAUrxD,OACVoqD,SAAU,CAACh5B,QAAS6zB,UACpBqG,KAAMtrD,OACNsxD,KAAMtxD,OACNiI,KAAMjI,OACNuxD,QAAStM,SACTuM,SAAU,GACV5uD,KAAM5C,OACNgwD,QAAS,CAAC5+B,QAAS6zB,aAG3B1jB,EAAQgmB,SAAWA,EACnBA,EAASwJ,aAAe,UACxBxJ,EAAS4J,oBAAqB,EAC9B,IAAI7J,EAAW0B,EAAQ4H,6BAA6B,CAChDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,cAAe,KACf,wBAAyB,KACzB,yBAA0B,KAC1B,cAAe,MAEnB5vB,MAAO,CACH9zB,KAAM,GACNilD,eAAgB,GAChBC,gBAAiB,GACjB5sD,KAAM9E,UAGduhC,EAAQ+lB,SAAWA,EACnBA,EAASyJ,aAAe,UACxBzJ,EAAS6J,oBAAqB,EAC9B,IAAI9J,EAAqB2B,EAAQ4H,6BAA6B,CAC1DV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,YAAa,KACb,YAAa,KACb,YAAa,KACb,YAAa,MAEjB5vB,MAAO,CACHljC,GAAIwtB,OACJ+mC,GAAI/mC,OACJgnC,GAAIhnC,OACJinC,GAAIjnC,UAGZ2W,EAAQ8lB,mBAAqBA,EAC7BA,EAAmB0J,aAAe,mBAClC,IAAI3J,EAAc4B,EAAQ4H,6BAA6B,CACnDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,WAAY,KACZ,WAAY,MAEhB5vB,MAAO,CACH7sB,EAAGzT,OACH2nB,EAAG3nB,UAGXuhC,EAAQ6lB,YAAcA,EACtBA,EAAY2J,aAAe,YAC3B,IAAIniD,EAAWo6C,EAAQ4H,6BAA6B,CAChDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,mBAAoB,KACpB,sBAAuB,KACvB,wBAAyB,KACzB,wBAAyB,KACzB,qBAAsB,KACtB,uBAAwB,KACxB,8BAA+B,KAC/B,qBAAsB,KACtB,yBAA0B,KAC1B,uBAAwB,KACxB,qBAAsB,KACtB,sBAAuB,KACvB,yBAA0B,KAC1B,iBAAkB,KAClB,4BAA6B,KAC7B,+BAAgC,KAChC,mCAAoC,KACpC,6BAA8B,KAC9B,4BAA6B,KAC7B,iBAAkB,KAClB,sBAAuB,KACvB,iBAAkB,KAClB,kBAAmB,KACnB,uBAAwB,KACxB,mBAAoB,KACpB,kBAAmB,KACnB,0BAA2B,KAC3B,uBAAwB,KACxB,oBAAqB,KACrB,mBAAoB,KACpB,0BAA2B,KAC3B,oBAAqB,KACrB,qBAAsB,KACtB,sBAAuB,KACvB,eAAgB,KAChB,uBAAwB,KACxB,gBAAiB,KACjB,kBAAmB,KACnB,2BAA4B,KAC5B,iBAAkB,KAClB,oBAAqB,KACrB,4BAA6B,KAC7B,sBAAuB,KACvB,wBAAyB,KACzB,gBAAiB,KACjB,gBAAiB,KACjB,kBAAmB,KACnB,cAAe,KACf,mBAAoB,KACpB,qBAAsB,KACtB,iBAAkB,KAClB,iCAAkC,KAClC,sBAAuB,KACvB,0BAA2B,KAC3B,6BAA8B,KAC9B,yBAA0B,KAC1B,mBAAoB,KACpB,uBAAwB,KACxB,mBAAoB,KACpB,kBAAmB,KACnB,cAAe,KACf,yBAA0B,KAC1B,iBAAkB,KAClB,sBAAuB,KACvB,eAAgB,MAEpB5vB,MAAO,CACH9yB,UAAWxN,OACX8xD,aAAc1gC,QACd2gC,eAAgB3gC,QAChBzjB,eAAgByjB,QAChB4gC,YAAa5gC,QACb6gC,cAAe7gC,QACf8gC,qBAAsB9gC,QACtB+gC,YAAa/gC,QACbghC,gBAAiBhhC,QACjB8C,cAAe9C,QACfihC,YAAajhC,QACbkhC,aAAclhC,QACdmhC,gBAAiBnhC,QACjBohC,QAASttD,MACTqlB,mBAAoB06B,SACpB90B,sBAAuB,CAAC80B,SAAUjlD,QAClCyyD,0BAA2BxN,SAC3B50B,oBAAqB,CAAC40B,SAAUjlD,QAChC0yD,mBAAoB,CAACzN,SAAUjlD,QAC/BuN,QAASvN,OACTyN,aAAc,GACdkmB,QAASzuB,MACTmsD,SAAUrxD,OACV4rB,cAAeq5B,SACfxtC,UAAWzX,OACXyqB,SAAUzqB,OACV2yD,iBAAkB,GAClBjlD,cAAe,GACfklD,WAAYxhC,QACZpB,UAAWhwB,OACX6yD,iBAAkB3tD,MAClB4tD,WAAY9yD,OACZ6sB,YAAa,GACbkmC,aAAc7tD,MACd+uB,MAAO7C,QACP4hC,cAAehzD,OACfN,OAAQ,CAACmE,OAAQohD,SAAUjlD,QAC3BizD,SAAUpvD,OACVqvD,kBAAmB,GACnBC,QAAS/hC,QACTgiC,WAAYxoC,OACZyoC,mBAAoB,GACpB93B,aAAc13B,OACdyvD,eAAgB1oC,OAChB2oC,OAAQniC,QACRhB,OAAQvsB,OACR2vD,SAAU5oC,OACV3iB,KAAMjI,OACNyzD,UAAW7oC,OACX8jC,YAAat9B,QACbsiC,QAASzO,SACTlpB,wBAAyB/7B,OACzB2zD,aAAc1O,SACd2O,iBAAkBxiC,QAClByiC,oBAAqBziC,QACrB0iC,gBAAiB1iC,QACjB2iC,UAAWnpC,OACXkG,cAAem0B,SACf+O,UAAWh0D,OACX+vB,SAAU/vB,OACV8E,KAAM9E,OACNi0D,gBAAiB/uD,MACjB8qD,QAAS5+B,QACT8iC,aAActpC,OACdhd,MAAO,CAACgd,OAAQ5qB,WAGxBuhC,EAAQ3yB,SAAWA,EACnBA,EAASmiD,aAAe,UACxBniD,EAASuiD,oBAAqB,EAC9BviD,EAAS4hD,mBAAqB,CAC1B2D,UAAW,CAAE1D,kBAAkB,EAAMC,WAAY,mBACjD0D,OAAQ,CAAE3D,kBAAkB,EAAMC,WAAY,WAC9C2D,mBAAoB,CAAE5D,kBAAkB,EAAOC,WAAY,gBAC3D4D,aAAc,CAAE7D,kBAAkB,EAAOC,WAAY,UACrD6D,YAAa,CAAE9D,kBAAkB,EAAMC,WAAY,mBACnD8D,WAAY,CAAE/D,kBAAkB,EAAMC,WAAY,mBAClD+D,UAAW,CAAEhE,kBAAkB,EAAMC,WAAY,mBACjDhxD,OAAQ,CAAE+wD,kBAAkB,EAAOC,WAAY,UAC/CuC,SAAU,CAAExC,kBAAkB,EAAOC,WAAY,YACjDn1B,aAAc,CAAEk1B,kBAAkB,EAAOC,WAAY,gBACrDtgC,OAAQ,CAAEqgC,kBAAkB,EAAOC,WAAY,UAC/CgE,YAAa,CAAEjE,kBAAkB,EAAMC,WAAY,mBACnDiE,YAAa,CAAElE,kBAAkB,EAAMC,WAAY,mBACnDkE,UAAW,CAAEnE,kBAAkB,EAAMC,WAAY,mBACjDmE,aAAc,CAAEpE,kBAAkB,EAAMC,WAAY,mBACpDoE,iBAAkB,CAAErE,kBAAkB,EAAMC,WAAY,mBACxDqE,eAAgB,CAAEtE,kBAAkB,EAAMC,WAAY,oBAE1D,IAAI5gD,EAAkBk5C,EAAQ4H,6BAA6B,CACvDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,qBAAsB,KACtB,wBAAyB,KACzB,iBAAkB,KAClB,gBAAiB,KACjB,cAAe,KACf,uBAAwB,KACxB,mBAAoB,KACpB,eAAgB,KAChB,eAAgB,MAEpB5vB,MAAO,CACH+xB,YAAajhC,QACb4jC,eAAgBh1D,OAChBquB,QAAS+C,QACTrZ,OAAQ6S,OACRs3B,KAAMliD,OACNi1D,cAAerqC,OACfopC,UAAWh0D,OACXk1D,MAAOl1D,OACP4N,MAAOgd,UAGf2W,EAAQzxB,gBAAkBA,EAC1BA,EAAgBihD,aAAe,gBAC/B,IAAIhhD,EAAiBi5C,EAAQ4H,6BAA6B,CACtDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,iBAAkB,KAClB,eAAgB,MAEpB5vB,MAAO,CACHjS,QAAS+C,QACT+jC,MAAOtxD,UAGf09B,EAAQxxB,eAAiBA,EACzBA,EAAeghD,aAAe,eAC9BhhD,EAAeygD,mBAAqB,CAChC4E,kBAAmB,CAAE3E,kBAAkB,EAAOC,WAAY,SAC1DyE,MAAO,CAAE1E,kBAAkB,EAAOC,WAAY,UAElD,IAAIvJ,EAAsB6B,EAAQ4H,6BAA6B,CAC3DV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,aAAc,KACd,sBAAuB,KACvB,uBAAwB,KACxB,eAAgB,MAEpB5vB,MAAO,CACH+0B,IAAKr1D,OACLs1D,aAAct1D,OACdu1D,cAAev1D,OACfw1D,MAAOx1D,UAGfuhC,EAAQ4lB,oBAAsBA,EAC9BA,EAAoB4J,aAAe,QACnC,IAAI7J,EAAuB8B,EAAQ4H,6BAA6B,CAC5DV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,qBAAsB,KACtB,oBAAqB,KACrB,uBAAwB,KACxB,gBAAiB,KACjB,oBAAqB,KACrB,eAAgB,MAEpB5vB,MAAO,CACH+xB,YAAajhC,QACbxB,WAAY,GACZjF,cAAe,CAACC,OAAQ5qB,QACxB+X,OAAQ6S,OACR6qC,WAAYz1D,OACZ4N,MAAOgd,UAGf2W,EAAQ2lB,qBAAuBA,EAC/BA,EAAqB6J,aAAe,eACpC,IAAI9J,EAAiB+B,EAAQ4H,6BAA6B,CACtDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,uBAAwB,KACxB,4BAA6B,KAC7B,oBAAqB,KACrB,qBAAsB,KACtB,mBAAoB,MAExB5vB,MAAO,CACHo1B,cAAetkC,QACf7G,mBAAoB06B,SACpBr1B,WAAY,GACZyG,YAAa,CAAC4uB,SAAUjlD,QACxBo2B,UAAWp2B,UAGnBuhC,EAAQ0lB,eAAiBA,EACzBA,EAAe8J,aAAe,SAC9B,IAAI/J,EAAgBgC,EAAQ4H,6BAA6B,CACrDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,0BAA2B,KAC3B,wBAAyB,KACzB,0BAA2B,KAC3B,iBAAkB,KAClB,cAAe,MAEnB5vB,MAAO,CACHq1B,iBAAkB1Q,SAClB2Q,eAAgB51D,OAChBgxD,iBAAkB5/B,QAClB7C,QAASvuB,OACT8E,KAAM9E,UAGduhC,EAAQylB,cAAgBA,EACxBA,EAAc+J,aAAe,kBAC7B/J,EAAcmK,oBAAqB,EACnCnK,EAAcoK,kBAAoB,CAC9BtsD,KAAM,WAEV,IAAIiiD,EAAiBiC,EAAQ4H,6BAA6B,CACtDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,WAAY,KACZ,WAAY,MAEhB5vB,MAAO,CACH7sB,EAAGmX,OACHjD,EAAGiD,UAGX2W,EAAQwlB,eAAiBA,EACzBA,EAAegK,aAAe,eAC9B,IAAIjK,EAAoBkC,EAAQ4H,6BAA6B,CACzDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,mCAAoC,KACpC,iBAAkB,KAClB,uBAAwB,KACxB,mBAAoB,KACpB,wBAAyB,KACzB,kBAAmB,KACnB,cAAe,KACf,cAAe,MAEnB5vB,MAAO,CACHmyB,0BAA2BxN,SAC3B13C,QAASvN,OACT4rB,cAAeq5B,SACf4Q,UAAW3wD,MACX4wD,eAAgB,GAChBC,SAAU3kC,QACVkgC,KAAMtxD,OACNiI,KAAMjI,UAGduhC,EAAQulB,kBAAoBA,EAC5BA,EAAkBiK,aAAe,mBACjCjK,EAAkBqK,oBAAqB,EACvC,IAAItK,EAAemC,EAAQ4H,6BAA6B,CACpDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,0BAA2B,KAC3B,iBAAkB,KAClB,oBAAqB,KACrB,cAAe,KACf,4BAA6B,MAEjC5vB,MAAO,CACH0wB,iBAAkB5/B,QAClB7C,QAASvuB,OACTixD,WAAY7/B,QACZtsB,KAAM9E,OACNkxD,mBAAoBjM,YAG5B1jB,EAAQslB,aAAeA,EACvBA,EAAakK,aAAe,kBAC5BlK,EAAasK,oBAAqB,EAClCtK,EAAauK,kBAAoB,CAC7BtsD,KAAM,UAEV,IAAI8hD,EAAyBoC,EAAQ4H,6BAA6B,CAC9DV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,qBAAsB,KACtB,gBAAiB,KACjB,uBAAwB,KACxB,eAAgB,KAChB,iBAAkB,KAClB,eAAgB,MAEpB5vB,MAAO,CACH+xB,YAAajhC,QACbrZ,OAAQ6S,OACRqqC,cAAerqC,OACfuqC,MAAOtxD,OACPmsD,QAAS5+B,QACTxjB,MAAOgd,UAGf2W,EAAQqlB,uBAAyBA,EACjCA,EAAuBmK,aAAe,eACtCnK,EAAuB4J,mBAAqB,CACxCwF,0BAA2B,CAAEvF,kBAAkB,EAAOC,WAAY,SAClEyE,MAAO,CAAE1E,kBAAkB,EAAOC,WAAY,UAElD,IAAI/J,EAA8BqC,EAAQ4H,6BAA6B,CACnEV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,gBAAiB,KACjB,oBAAqB,KACrB,YAAa,MAEjB5vB,MAAO,CACH21B,OAAQj2D,OACRk2D,WAAYl2D,OACZm2D,GAAIn2D,UAGZuhC,EAAQolB,4BAA8BA,EACtCA,EAA4BoK,aAAe,QAC3C,IAAIliD,EAAYm6C,EAAQ4H,6BAA6B,CACjDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,qBAAsB,KACtB,uBAAwB,KACxB,uBAAwB,KACxB,iBAAkB,KAClB,uBAAwB,KACxB,wBAAyB,KACzB,oBAAqB,KACrB,cAAe,KACf,cAAe,KACf,wBAAyB,KACzB,eAAgB,KAChB,qBAAsB,KACtB,+BAAgC,KAChC,yBAA0B,KAC1B,eAAgB,KAChB,kBAAmB,MAEvB5vB,MAAO,CACH81B,YAAahlC,QACbilC,cAAe,CAACjlC,QAAS6zB,UACzBqR,cAAe,CAACllC,QAAS6zB,UACzB3xC,QAASpO,MACTqxD,cAAenlC,QACfolC,eAAgBx2D,OAChBy2D,WAAY,GACZC,KAAM7yD,OACNq+C,KAAMliD,OACN22D,eAAgB32D,OAChB42D,MAAO/yD,OACPgzD,YAAa72D,OACb82D,sBAAuB1lC,QACvB2lC,gBAAiB/2D,OACjBm1D,MAAO,GACP6B,SAAU5lC,WAGlBmQ,EAAQ1yB,UAAYA,EACpBA,EAAUkiD,aAAe,UACzBliD,EAAU2hD,mBAAqB,CAC3ByG,OAAQ,CAAExG,kBAAkB,EAAMC,WAAY,WAC9CwG,aAAc,CAAEzG,kBAAkB,EAAOC,WAAY,SACrDgG,KAAM,CAAEjG,kBAAkB,EAAOC,WAAY,QAC7CkG,MAAO,CAAEnG,kBAAkB,EAAOC,WAAY,SAC9CyE,MAAO,CAAE1E,kBAAkB,EAAOC,WAAY,UAElD,IAAIhK,EAAiBsC,EAAQ4H,6BAA6B,CACtDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,gBAAiB,KACjB,0BAA2B,KAC3B,0BAA2B,KAC3B,8BAA+B,KAC/B,4BAA6B,KAC7B,mBAAoB,KACpB,iBAAkB,KAClB,wBAAyB,KACzB,wBAAyB,KACzB,qBAAsB,KACtB,iCAAkC,MAEtC5vB,MAAO,CACH62B,OAAQn3D,OACRo3D,iBAAkBp3D,OAClBq3D,iBAAkBr3D,OAClBs3D,qBAAsBt3D,OACtBu3D,mBAAoBv3D,OACpBw3D,UAAWx3D,OACXy3D,QAASz3D,OACT03D,eAAgB13D,OAChB23D,eAAgB33D,OAChB43D,YAAa53D,OACb63D,wBAAyB73D,UAGjCuhC,EAAQmlB,eAAiBA,EACzBA,EAAeqK,aAAe,QAC9B,IAAItK,EAAcuC,EAAQ4H,6BAA6B,CACnDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,0BAA2B,KAC3B,iBAAkB,KAClB,cAAe,MAEnB5vB,MAAO,CACH0wB,iBAAkB5/B,QAClB7C,QAASvuB,OACT8E,KAAM9E,UAGduhC,EAAQklB,YAAcA,EACtBA,EAAYsK,aAAe,kBAC3BtK,EAAY0K,oBAAqB,EACjC1K,EAAY2K,kBAAoB,CAC5BtsD,KAAM,SAEV,IAAImL,EAAW+4C,EAAQ4H,6BAA6B,CAChDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,iCAAkC,KAClC,4BAA6B,KAC7B,iBAAkB,KAClB,4BAA6B,KAC7B,8BAA+B,KAC/B,kBAAmB,KACnB,iBAAkB,KAClB,2BAA4B,KAC5B,kBAAmB,KACnB,eAAgB,MAEpB5vB,MAAO,CACHw3B,wBAAyB1mC,QACzB2mC,mBAAoB9S,SACpB52B,QAAS+C,QACT4mC,mBAAoB5mC,QACpB6mC,qBAAsB7mC,QACtBoiB,SAAUxzC,OACVk4D,QAAShzD,MACTizD,kBAAmB/mC,QACnBgnC,SAAUp4D,OACVm1D,MAAOtxD,UAGf09B,EAAQtxB,SAAWA,EACnBA,EAAS8gD,aAAe,SACxB9gD,EAASugD,mBAAqB,CAC1B6H,YAAa,CAAE5H,kBAAkB,EAAOC,WAAY,SACpDyE,MAAO,CAAE1E,kBAAkB,EAAOC,WAAY,UAElD,IAAIlK,EAAgBwC,EAAQ4H,6BAA6B,CACrDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,mBAAoB,KACpB,4BAA6B,KAC7B,kBAAmB,MAEvB5vB,MAAO,CACHg4B,UAAWt4D,OACXu4D,mBAAoBv4D,OACpBw4D,SAAUx4D,UAGlBuhC,EAAQilB,cAAgBA,EACxBA,EAAcuK,aAAe,QAC7B,IAAIxK,EAAUyC,EAAQ4H,6BAA6B,CAC/CV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,mCAAoC,KACpC,iBAAkB,KAClB,uBAAwB,KACxB,mBAAoB,KACpB,kBAAmB,KACnB,gCAAiC,KACjC,uBAAwB,KACxB,wBAAyB,KACzB,mBAAoB,KACpB,0BAA2B,KAC3B,gBAAiB,KACjB,gBAAiB,KACjB,cAAe,KACf,kBAAmB,MAEvB5vB,MAAO,CACHmyB,0BAA2BxN,SAC3B13C,QAASvN,OACT4rB,cAAeq5B,SACfxtC,UAAWzX,OACXyqB,SAAUzqB,OACVy4D,uBAAwBz4D,OACxB0N,cAAe,GACfooD,eAAgB,GAChB9lC,UAAWhwB,OACX6yD,iBAAkB3tD,MAClBxF,OAAQ,CAACmE,OAAQohD,SAAUjlD,QAC3BowB,OAAQvsB,OACRoE,KAAMjI,OACN+vB,SAAU/vB,UAGlBuhC,EAAQglB,QAAUA,EAClBA,EAAQwK,aAAe,SACvBxK,EAAQ4K,oBAAqB,EAC7B5K,EAAQiK,mBAAqB,CACzBkI,YAAa,CAAEjI,kBAAkB,EAAOC,WAAY,UACpDhxD,OAAQ,CAAE+wD,kBAAkB,EAAOC,WAAY,UAC/CtgC,OAAQ,CAAEqgC,kBAAkB,EAAOC,WAAY,WAEnD,IAAIpK,EAAgB0C,EAAQ4H,6BAA6B,CACrDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,uBAAwB,KACxB,oBAAqB,KACrB,qBAAsB,KACtB,mBAAoB,MAExB5vB,MAAO,CACHo1B,cAAetkC,QACfxB,WAAY,CAAC1qB,MAAOrB,QACpBwyB,YAAa,CAAC4uB,SAAUjlD,QACxBo2B,UAAW,CAAC6uB,SAAUjlD,WAG9BuhC,EAAQ+kB,cAAgBA,EACxBA,EAAcyK,aAAe,SAC7B,IAAI1K,EAAkB2C,EAAQ4H,6BAA6B,CACvDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,mBAAoB,KACpB,4BAA6B,KAC7B,iCAAkC,KAClC,wBAAyB,KACzB,0BAA2B,KAC3B,kBAAmB,KACnB,qBAAsB,KACtB,gBAAiB,KACjB,qCAAsC,KACtC,2BAA4B,KAC5B,oCAAqC,KACrC,yBAA0B,KAC1B,gBAAiB,KACjB,cAAe,KACf,2BAA4B,KAC5B,uBAAwB,KACxB,wBAAyB,KACzB,qBAAsB,KACtB,0BAA2B,KAC3B,2BAA4B,KAC5B,mBAAoB,KACpB,oBAAqB,KACrB,uBAAwB,KACxB,yBAA0B,KAC1B,wBAAyB,KACzB,oBAAqB,KACrB,kBAAmB,KACnB,eAAgB,KAChB,iBAAkB,KAClB,eAAgB,MAEpB5vB,MAAO,CACH4oB,UAAWlpD,OACXmpD,mBAAoB/3B,QACpBunC,wBAAyBvnC,QACzBwnC,eAAgB/0D,OAChBg1D,iBAAkB3zD,MAClBklD,SAAUh5B,QACVk5B,YAAazmD,OACbi1D,OAAQ5zD,MACR6zD,4BAA6Bl1D,OAC7BqnD,kBAAmB95B,QACnB4nC,2BAA4Bn1D,OAC5Bo1D,gBAAiB/zD,MACjB6S,OAAQ,CAACktC,SAAUr6B,OAAQ5qB,QAC3BsrD,KAAMtrD,OACNurD,kBAAmBn6B,QACnB8nC,cAAetuC,OACfshC,eAAgBjH,SAChBoH,YAAapH,SACbwH,iBAAkBxH,SAClByH,kBAAmBzH,SACnBkU,UAAWlU,SACXmU,WAAYnU,SACZiI,cAAejI,SACfoI,gBAAiBpI,SACjBoU,eAAgBpU,SAChBvzB,WAAYN,QACZy+B,SAAUjlC,OACV1iB,MAAO,CAAChD,MAAO+/C,SAAUjlD,QACzBgwD,QAAS5+B,QACTxjB,MAAO,CAACq3C,SAAUr6B,OAAQ5qB,WAGlCuhC,EAAQ8kB,gBAAkBA,EAC1BA,EAAgB0K,aAAe,gBAC/B1K,EAAgBmK,mBAAqB,CACjC8I,gBAAiB,CAAE7I,kBAAkB,EAAMC,WAAY,oBACvDrjD,MAAO,CAAEojD,kBAAkB,EAAMC,WAAY,UAC7CqI,4BAA6B,CAAEtI,kBAAkB,EAAOC,WAAY,+BACpEsI,2BAA4B,CAAEvI,kBAAkB,EAAOC,WAAY,+BAEvE,IAAItK,EAAuB4C,EAAQ4H,6BAA6B,CAC5DV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,mBAAoB,KACpB,4BAA6B,KAC7B,mBAAoB,KACpB,wBAAyB,KACzB,6BAA8B,KAC9B,mBAAoB,KACpB,yBAA0B,KAC1B,kCAAmC,KACnC,wBAAyB,KACzB,kBAAmB,KACnB,2BAA4B,KAC5B,qBAAsB,KACtB,6BAA8B,KAC9B,qBAAsB,KACtB,2BAA4B,KAC5B,oBAAqB,KACrB,gBAAiB,KACjB,4BAA6B,KAC7B,4BAA6B,KAC7B,cAAe,KACf,2BAA4B,KAC5B,mBAAoB,KACpB,kBAAmB,KACnB,mBAAoB,KACpB,kBAAmB,KACnB,wBAAyB,KACzB,qBAAsB,KACtB,mBAAoB,KACpB,oBAAqB,KACrB,kBAAmB,KACnB,kBAAmB,KACnB,uBAAwB,KACxB,yBAA0B,KAC1B,kBAAmB,KACnB,qBAAsB,KACtB,uBAAwB,KACxB,mBAAoB,KACpB,iBAAkB,KAClB,yBAA0B,KAC1B,kBAAmB,KACnB,uBAAwB,KACxB,yBAA0B,KAC1B,oBAAqB,KACrB,iBAAkB,KAClB,sBAAuB,KACvB,yBAA0B,KAC1B,mBAAoB,KACpB,kBAAmB,KACnB,eAAgB,KAChB,uBAAwB,KACxB,sBAAuB,KACvB,iBAAkB,KAClB,eAAgB,KAChB,qBAAsB,MAE1B5vB,MAAO,CACH4oB,UAAWlpD,OACXmpD,mBAAoB/3B,QACpBmoC,UAAW11D,OACX+0D,eAAgB/0D,OAChB21D,oBAAqB,CAACpoC,QAAS6zB,UAC/Bz2B,UAAW,GACXirC,gBAAiB,GACjBC,yBAA0BtoC,QAC1BuoC,eAAgBvoC,QAChBg5B,SAAUh5B,QACVwoC,kBAAmB,GACnBC,YAAazoC,QACb0oC,oBAAqB1oC,QACrBk5B,YAAa,GACbY,kBAAmB95B,QACnB2oC,WAAY3oC,QACZrZ,OAAQ,CAACktC,SAAUr6B,OAAQ5qB,QAC3Bg6D,mBAAoB,CAAC5oC,QAAS6zB,UAC9BgV,mBAAoB7oC,QACpBk6B,KAAMtrD,OACNurD,kBAAmBn6B,QACnB8oC,UAAW,CAACjV,SAAUr6B,OAAQ5qB,QAC9Bm6D,SAAU,CAAClV,SAAUr6B,OAAQ5qB,QAC7Bo6D,UAAW,CAACnV,SAAUr6B,OAAQ5qB,QAC9BwzD,SAAU,CAACvO,SAAUr6B,OAAQ5qB,QAC7BksD,eAAgBjH,SAChBoH,YAAapH,SACbkU,UAAWlU,SACXmU,WAAYnU,SACZoV,SAAUpV,SACVqV,SAAUrV,SACViI,cAAejI,SACfoI,gBAAiBpI,SACjBsV,SAAUtV,SACVuV,YAAavV,SACbwV,cAAexV,SACfyV,UAAWzV,SACX0V,QAAS1V,SACT2V,gBAAiB3V,SACjB4V,SAAU,CAAC5V,SAAUphD,OAAQ7D,QAC7B86D,cAAe1pC,QACf2pC,gBAAiB3pC,QACjBM,WAAYN,QACZ9C,QAAS8C,QACT4pC,aAAch7D,OACdi7D,gBAAiB7pC,QACjB8pC,UAAW9pC,QACXy+B,SAAUjlC,OACVsqC,MAAOl1D,OACPm7D,cAAe,GACfC,aAAcl2D,MACd8qD,QAAS5+B,QACTxjB,MAAO,CAACq3C,SAAUr6B,OAAQ5qB,QAC1Bq7D,YAAa,MAGrB95B,EAAQ6kB,qBAAuBA,EAC/BA,EAAqB2K,aAAe,qBACpC,IAAI5K,EAAgC6C,EAAQ4H,6BAA6B,CACrEV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,iBAAkB,KAClB,kBAAmB,KACnB,kBAAmB,KACnB,eAAgB,KAChB,qBAAsB,KACtB,4BAA6B,KAC7B,iBAAkB,KAClB,oBAAqB,KACrB,kBAAmB,KACnB,yBAA0B,KAC1B,qBAAsB,KACtB,kBAAmB,KACnB,oBAAqB,MAEzB5vB,MAAO,CACHg7B,QAASt7D,OACTu7D,SAAUv7D,OACVw7D,SAAUx7D,OACVy7D,MAAOz7D,OACP07D,YAAa17D,OACb27D,mBAAoB37D,OACpB47D,QAAS57D,OACT67D,WAAY77D,OACZ87D,SAAU97D,OACV+7D,gBAAiB/7D,OACjBg8D,YAAah8D,OACbi8D,SAAUj8D,OACVk8D,WAAYl8D,UAGpBuhC,EAAQ4kB,8BAAgCA,EACxCA,EAA8B4K,aAAe,8BAC7C,IAAI7K,EAAgB8C,EAAQ4H,6BAA6B,CACrDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,uBAAwB,KACxB,uBAAwB,KACxB,eAAgB,KAChB,iBAAkB,MAEtB5vB,MAAO,CACH1U,cAAeq5B,SACfkX,cAAe/qC,QACf+jC,MAAOtxD,OACPmsD,QAAS5+B,WAGjBmQ,EAAQ2kB,cAAgBA,EACxBA,EAAc6K,aAAe,cAC7B7K,EAAcsK,mBAAqB,CAC/B4L,iBAAkB,CAAE3L,kBAAkB,EAAOC,WAAY,SACzDyE,MAAO,CAAE1E,kBAAkB,EAAOC,WAAY,UAElD,IAAIzK,EAAqB+C,EAAQ4H,6BAA6B,CAC1DV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,qBAAsB,KACtB,sBAAuB,KACvB,2BAA4B,MAEhC5vB,MAAO,CACH+7B,YAAar8D,OACbs8D,aAAct8D,OACdu8D,kBAAmBv8D,UAG3BuhC,EAAQ0kB,mBAAqBA,EAC7BA,EAAmB8K,aAAe,QAClC,IAAIjiD,EAAck6C,EAAQ4H,6BAA6B,CACnDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,qBAAsB,KACtB,yBAA0B,KAC1B,wBAAyB,KACzB,0BAA2B,KAC3B,+BAAgC,KAChC,4BAA6B,KAC7B,qBAAsB,KACtB,8BAA+B,KAC/B,iBAAkB,MAEtB5vB,MAAO,CACHk8B,YAAax8D,OACby8D,gBAAiBz8D,OACjB08D,eAAgB18D,OAChB28D,iBAAkB38D,OAClB48D,sBAAuB/4D,OACvBg5D,mBAAoB78D,OACpB88D,YAAa98D,OACb+8D,qBAAsB3rC,QACtB4+B,QAAS5+B,WAGjBmQ,EAAQzyB,YAAcA,EACtBA,EAAYiiD,aAAe,YAC3BjiD,EAAY0hD,mBAAqB,CAC7BoM,sBAAuB,CAAEnM,kBAAkB,EAAOC,WAAY,0BAElE,IAAI1K,EAASgD,EAAQ4H,6BAA6B,CAC9CV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,mBAAoB,KACpB,4BAA6B,KAC7B,yBAA0B,KAC1B,oCAAqC,KACrC,wBAAyB,KACzB,kBAAmB,KACnB,0BAA2B,KAC3B,uBAAwB,KACxB,kBAAmB,KACnB,qBAAsB,KACtB,2BAA4B,KAC5B,kBAAmB,KACnB,gBAAiB,KACjB,cAAe,KACf,2BAA4B,KAC5B,eAAgB,KAChB,uBAAwB,KACxB,mBAAoB,KACpB,qBAAsB,KACtB,wBAAyB,KACzB,qBAAsB,KACtB,0BAA2B,KAC3B,4BAA6B,KAC7B,mBAAoB,KACpB,oBAAqB,KACrB,uBAAwB,KACxB,yBAA0B,KAC1B,sBAAuB,KACvB,kBAAmB,KACnB,sBAAuB,KACvB,yBAA0B,KAC1B,oBAAqB,KACrB,uBAAwB,KACxB,0BAA2B,KAC3B,6BAA8B,KAC9B,0BAA2B,KAC3B,0BAA2B,KAC3B,+BAAgC,KAChC,kBAAmB,KACnB,yBAA0B,KAC1B,iBAAkB,KAClB,eAAgB,MAEpB5vB,MAAO,CACH4oB,UAAWlpD,OACXmpD,mBAAoB/3B,QACpB4rC,gBAAiB5rC,QACjB6rC,2BAA4B7rC,QAC5BwnC,eAAgB/0D,OAChBq5D,SAAU,CAACtyC,OAAQ5qB,QACnBm9D,iBAAkBt5D,OAClBu5D,cAAenY,SACfmF,SAAUh5B,QACVk5B,YAAazmD,OACbqnD,kBAAmB95B,QACnBisC,SAAU,GACVtlD,OAAQ,CAACktC,SAAUr6B,OAAQ5qB,QAC3BsrD,KAAMtrD,OACNurD,kBAAmBn6B,QACnBrC,MAAO7pB,MACPo4D,cAAet9D,OACfu9D,UAAWv9D,OACXw9D,YAAa5yC,OACbshC,eAAgBjH,SAChBoH,YAAapH,SACbwY,iBAAkBxY,SAClByY,mBAAoBzY,SACpBkU,UAAWlU,SACXmU,WAAYnU,SACZiI,cAAejI,SACfoI,gBAAiBpI,SACjB0Y,aAAc39D,OACd49D,SAAUxsC,QACVysC,aAAc79D,OACd89D,gBAAiB99D,OACjB0xB,WAAYN,QACZ2sC,cAAe9Y,SACf+Y,iBAAkB5sC,QAClB6sC,oBAAqB7sC,QACrB8sC,iBAAkB9sC,QAClB+sC,iBAAkB/sC,QAClBgtC,sBAAuBhtC,QACvBy+B,SAAUjlC,OACVyzC,gBAAiBr+D,OACjBgwD,QAAS5+B,QACTxjB,MAAO,CAACq3C,SAAUr6B,OAAQ5qB,WAGlCuhC,EAAQykB,OAASA,EACjBA,EAAO+K,aAAe,OACtB/K,EAAOwK,mBAAqB,CACxB2M,iBAAkB,CAAE1M,kBAAkB,EAAOC,WAAY,qBAE7D,IAAI3K,EAAWiD,EAAQ4H,6BAA6B,CAChDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,kBAAmB,KACnB,mBAAoB,KACpB,gBAAiB,KACjB,mBAAoB,KACpB,cAAe,KACf,oCAAqC,MAEzC5vB,MAAO,CACHg+B,SAAUt+D,OACVkG,UAAW++C,SACXx+C,OAAQw+C,SACRsZ,UAAW3zC,OACX9lB,KAAM9E,OACNw+D,2BAA4BptC,WAGpCmQ,EAAQwkB,SAAWA,EACnBA,EAASgL,aAAe,SACxB,IAAIjL,EAAakD,EAAQ4H,6BAA6B,CAClDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,iBAAkB,KAClB,kBAAmB,KACnB,mBAAoB,KACpB,uBAAwB,KACxB,oBAAqB,KACrB,kBAAmB,KACnB,oBAAqB,KACrB,kBAAmB,KACnB,eAAgB,KAChB,cAAe,KACf,kBAAmB,KACnB,yBAA0B,KAC1B,iBAAkB,KAClB,sBAAuB,MAE3B5vB,MAAO,CACHm+B,QAAS7zC,OACTymC,SAAUrxD,OACVyX,UAAWzX,OACX0N,cAAe,GACfgxD,WAAY1+D,OACZ2+D,SAAU3+D,OACV4+D,WAAYxtC,QACZytC,SAAU7+D,OACV8+D,MAAOj7D,OACPoE,KAAMjI,OACNwxD,SAAU,GACVyC,gBAAiB/uD,MACjB8qD,QAAS5+B,QACT8iC,aAActpC,UAGtB2W,EAAQukB,WAAaA,EACrBA,EAAWiL,aAAe,WAC1BjL,EAAW0K,mBAAqB,CAC5B2D,UAAW,CAAE1D,kBAAkB,EAAMC,WAAY,mBACjD6D,YAAa,CAAE9D,kBAAkB,EAAMC,WAAY,mBACnD8D,WAAY,CAAE/D,kBAAkB,EAAMC,WAAY,mBAClD+D,UAAW,CAAEhE,kBAAkB,EAAMC,WAAY,mBACjDoO,MAAO,CAAErO,kBAAkB,EAAOC,WAAY,SAC9CgE,YAAa,CAAEjE,kBAAkB,EAAMC,WAAY,mBACnDiE,YAAa,CAAElE,kBAAkB,EAAMC,WAAY,mBACnDkE,UAAW,CAAEnE,kBAAkB,EAAMC,WAAY,mBACjDmE,aAAc,CAAEpE,kBAAkB,EAAMC,WAAY,mBACpDoE,iBAAkB,CAAErE,kBAAkB,EAAMC,WAAY,mBACxDqE,eAAgB,CAAEtE,kBAAkB,EAAMC,WAAY,oBAE1D,IAAI7K,EAASmD,EAAQ4H,6BAA6B,CAC9CV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,cAAe,KACf,iBAAkB,KAClB,kBAAmB,KACnB,eAAgB,KAChB,aAAc,MAElB5vB,MAAO,CACHtO,KAAMpH,OACNm0C,QAASn0C,OACTiwC,SAAUh3D,OACVm7D,MAAOp0C,OACPqH,IAAKrH,UAGb2W,EAAQskB,OAASA,EACjBA,EAAOkL,aAAe,OACtBlL,EAAO2K,mBAAqB,CACxBqK,SAAU,CAAEpK,kBAAkB,EAAOC,WAAY,aAErD,IAAIzhD,EAAa+5C,EAAQ4H,6BAA6B,CAClDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,yBAA0B,KAC1B,uBAAwB,KACxB,4BAA6B,KAC7B,oBAAqB,KACrB,eAAgB,MAEpB5vB,MAAO,CACH2+B,gBAAiB7tC,QACjB8tC,cAAe9tC,QACf+tC,mBAAoB/tC,QACpBguC,WAAYp/D,OACZm1D,MAAOtxD,UAGf09B,EAAQtyB,WAAaA,EACrBA,EAAW8hD,aAAe,WAC1B9hD,EAAWuhD,mBAAqB,CAC5B6O,cAAe,CAAE5O,kBAAkB,EAAOC,WAAY,SACtDyE,MAAO,CAAE1E,kBAAkB,EAAOC,WAAY,UAElD,IAAI9K,EAAkBoD,EAAQ4H,6BAA6B,CACvDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,2BAA4B,KAC5B,+BAAgC,KAChC,+BAAgC,KAChC,iBAAkB,KAClB,oBAAqB,MAEzB5vB,MAAO,CACHg/B,kBAAmBt/D,OACnBu/D,sBAAuBv/D,OACvBw/D,sBAAuBx/D,OACvBy/D,QAASz/D,OACT0/D,WAAY1/D,UAGpBuhC,EAAQqkB,gBAAkBA,EAC1BA,EAAgBmL,aAAe,QAC/B,IAAIvhD,EAAcw5C,EAAQ4H,6BAA6B,CACnDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,uBAAwB,KACxB,gBAAiB,KACjB,uBAAwB,KACxB,uBAAwB,KACxB,cAAe,KACf,sBAAuB,KACvB,2BAA4B,KAC5B,yBAA0B,KAC1B,qBAAsB,KACtB,qBAAsB,MAE1B5vB,MAAO,CACHq/B,cAAevuC,QACfja,OAAQnX,OACR4rB,cAAeq5B,SACftzC,cAAe3R,OACfiI,KAAMjI,OACN4/D,aAAc5/D,OACd6/D,kBAAmBzuC,QACnB0uC,gBAAiB1uC,QACjBlF,YAAalsB,OACbmsB,YAAa,CAACtoB,OAAQohD,SAAUjlD,WAGxCuhC,EAAQ/xB,YAAcA,EACtBA,EAAYuhD,aAAe,aAC3BvhD,EAAY2hD,oBAAqB,EACjC3hD,EAAYghD,mBAAqB,CAC7BrkC,YAAa,CAAEskC,kBAAkB,EAAOC,WAAY,gBAExD,IAAI/K,EAA+BqD,EAAQ4H,6BAA6B,CACpEV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,aAAc,KACd,gBAAiB,KACjB,eAAgB,KAChB,YAAa,MAEjB5vB,MAAO,CACHy/B,IAAK//D,OACLggE,OAAQhgE,OACRigE,MAAOjgE,OACP1I,GAAI0I,UAGZuhC,EAAQokB,6BAA+BA,EACvCA,EAA6BoL,aAAe,6BAC5C,IAAI/hD,EAAeg6C,EAAQ4H,6BAA6B,CACpDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,6BAA8B,KAC9B,wBAAyB,KACzB,iBAAkB,MAEtB5vB,MAAO,CACH4/B,oBAAqB9uC,QACrB4jC,eAAgBh1D,OAChBgwD,QAAS,CAAC5+B,QAASpxB,WAG3BuhC,EAAQvyB,aAAeA,EACvBA,EAAa+hD,aAAe,aAC5B,IAAIhiD,EAAiBi6C,EAAQ4H,6BAA6B,CACtDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,qBAAsB,KACtB,oBAAqB,KACrB,uBAAwB,KACxB,gBAAiB,KACjB,oBAAqB,KACrB,uBAAwB,KACxB,eAAgB,KAChB,iBAAkB,KAClB,eAAgB,MAEpB5vB,MAAO,CACH+xB,YAAajhC,QACbxB,WAAY,GACZjF,cAAe,CAACC,OAAQ5qB,QACxB+X,OAAQ6S,OACR6qC,WAAYz1D,OACZi1D,cAAerqC,OACfuqC,MAAOtxD,OACPmsD,QAAS5+B,QACTxjB,MAAOgd,UAGf2W,EAAQxyB,eAAiBA,EACzBA,EAAegiD,aAAe,eAC9B,IAAIrL,EAASsD,EAAQ4H,6BAA6B,CAC9CV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,kBAAmB,KACnB,eAAgB,KAChB,mBAAoB,KACpB,kBAAmB,KACnB,gBAAiB,KACjB,cAAe,KACf,sBAAuB,KACvB,eAAgB,KAChB,YAAa,KACb,cAAe,MAEnB5vB,MAAO,CACH6/B,SAAUlb,SACV5W,MAAOzjB,OACPw1C,UAAWpgE,OACXqgE,SAAUz1C,OACV01C,OAAQtgE,OACRorC,KAAMvnC,OACN08D,aAAc31C,OACd41C,MAAOvb,SACPlmD,GAAI8E,OACJiB,KAAM9E,UAGduhC,EAAQmkB,OAASA,EACjBA,EAAOqL,aAAe,OACtBrL,EAAO8K,mBAAqB,CACxBplB,KAAM,CAAEqlB,kBAAkB,EAAOC,WAAY,QAC7C3xD,GAAI,CAAE0xD,kBAAkB,EAAOC,WAAY,OAE/C,IAAIjiD,EAASu6C,EAAQ4H,6BAA6B,CAC9CV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,kBAAmB,KACnB,kBAAmB,KACnB,cAAe,KACf,sBAAuB,KACvB,kBAAmB,KACnB,0BAA2B,KAC3B,cAAe,KACf,iBAAkB,KAClB,kBAAmB,KACnB,kBAAmB,KACnB,cAAe,KACf,iBAAkB,KAClB,gBAAiB,MAErB5vB,MAAO,CACH+wB,SAAUrxD,OACVoqD,SAAUh5B,QACVqvC,KAAMzgE,OACN0gE,aAAc1gE,OACd2gE,SAAU3gE,OACV4gE,iBAAkB,GAClB34D,KAAMjI,OACNqX,QAAS,GACTwpD,SAAU7gE,OACVwxD,SAAU,GACV5uD,KAAM5C,OACNgwD,QAAS5+B,QACT0vC,OAAQ9gE,UAGhBuhC,EAAQ9yB,OAASA,EACjBA,EAAOsiD,aAAe,QACtBtiD,EAAO0iD,oBAAqB,EAC5B,IAAI1L,EAAuBuD,EAAQ4H,6BAA6B,CAC5DV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,wBAAyB,KACzB,iBAAkB,KAClB,wBAAyB,KACzB,2BAA4B,MAEhC5vB,MAAO,CACHygC,eAAgB3vC,QAChB/C,QAAS+C,QACT4vC,eAAgBhhE,OAChBihE,kBAAmBjhE,UAG3BuhC,EAAQkkB,qBAAuBA,EAC/BA,EAAqBsL,aAAe,qBACpC,IAAIvL,GAAUwD,EAAQ4H,6BAA6B,CAC/CV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,mBAAoB,KACpB,kBAAmB,KACnB,mBAAoB,KACpB,cAAe,KACf,iBAAkB,MAEtB5vB,MAAO,CACH9yB,UAAWxN,OACX2gE,SAAU3gE,OACVkhE,UAAW9vC,QACXxuB,KAAM5C,OACNgwD,QAAS5+B,WAGjBmQ,EAAQikB,QAAUA,GAClBA,GAAQuL,aAAe,QACvB,IAAI7gD,GAAc84C,EAAQ4H,6BAA6B,CACnDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,iBAAkB,KAClB,gBAAiB,KACjB,sBAAuB,KACvB,iBAAkB,KAClB,sBAAuB,KACvB,uBAAwB,KACxB,kBAAmB,KACnB,cAAe,KACf,eAAgB,MAEpB5vB,MAAO,CACHjS,QAAS,CAAC+C,QAASpxB,QACnB+X,OAAQ6S,OACRu2C,aAAcnhE,OACdsuB,QAAS8C,QACT4pC,aAAch7D,OACdohE,cAAehwC,QACfiwC,SAAUjwC,QACVxuB,KAAM5C,OACN4N,MAAOgd,UAGf2W,EAAQrxB,YAAcA,GACtBA,GAAY6gD,aAAe,YAC3B,IAAIzhD,GAAW05C,EAAQ4H,6BAA6B,CAChDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,uBAAwB,KACxB,4BAA6B,KAC7B,oBAAqB,KACrB,qBAAsB,KACtB,mBAAoB,MAExB5vB,MAAO,CACHo1B,cAAetkC,QACf7G,mBAAoB06B,SACpBr1B,WAAY,GACZyG,YAAa,CAAC4uB,SAAUjlD,QACxBo2B,UAAWp2B,UAGnBuhC,EAAQjyB,SAAWA,GACnBA,GAASyhD,aAAe,SACxB,IAAIthD,GAAiBu5C,EAAQ4H,6BAA6B,CACtDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,uBAAwB,KACxB,iBAAkB,KAClB,kBAAmB,MAEvB5vB,MAAO,CACH4+B,cAAe9tC,QACf/C,QAAS+C,QACTogC,SAAU,MAGlBjwB,EAAQ9xB,eAAiBA,GACzBA,GAAeshD,aAAe,eAC9B,IAAIlI,GAAOG,EAAQ4H,6BAA6B,CAC5CV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,WAAY,KACZ,WAAY,MAEhB5vB,MAAO,CACH7sB,EAAGzT,OACH2nB,EAAG3nB,UAGXuhC,EAAQsnB,KAAOA,GACfA,GAAKkI,aAAe,KACpB,IAAInI,GAAgBI,EAAQ4H,6BAA6B,CACrDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,0BAA2B,KAC3B,iBAAkB,KAClB,cAAe,MAEnB5vB,MAAO,CACH0wB,iBAAkB5/B,QAClB7C,QAASvuB,OACT8E,KAAM9E,UAGduhC,EAAQqnB,cAAgBA,GACxBA,GAAcmI,aAAe,kBAC7BnI,GAAcuI,oBAAqB,EACnCvI,GAAcwI,kBAAoB,CAC9BtsD,KAAM,WAEV,IAAI6jD,GAAWK,EAAQ4H,6BAA6B,CAChDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,WAAY,KACZ,WAAY,MAEhB5vB,MAAO,CACH7sB,EAAGmX,OACHjD,EAAGiD,UAGX2W,EAAQonB,SAAWA,GACnBA,GAASoI,aAAe,SACxB,IAAIrI,GAA0BM,EAAQ4H,6BAA6B,CAC/DV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,iBAAkB,KAClB,kBAAmB,KACnB,kBAAmB,KACnB,eAAgB,KAChB,qBAAsB,KACtB,4BAA6B,KAC7B,kBAAmB,KACnB,yBAA0B,KAC1B,qBAAsB,KACtB,kBAAmB,KACnB,oBAAqB,MAEzB5vB,MAAO,CACHg7B,QAASt7D,OACTu7D,SAAUv7D,OACVw7D,SAAUx7D,OACVy7D,MAAOz7D,OACP07D,YAAa17D,OACb27D,mBAAoB37D,OACpB87D,SAAU97D,OACV+7D,gBAAiB/7D,OACjBg8D,YAAah8D,OACbi8D,SAAUj8D,OACVk8D,WAAYl8D,UAGpBuhC,EAAQmnB,wBAA0BA,GAClCA,GAAwBqI,aAAe,wBACvC,IAAI3hD,GAAU45C,EAAQ4H,6BAA6B,CAC/CV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,0BAA2B,KAC3B,qBAAsB,KACtB,kBAAmB,KACnB,eAAgB,KAChB,kBAAmB,KACnB,+BAAgC,KAChC,8BAA+B,KAC/B,iBAAkB,MAEtB5vB,MAAO,CACHghC,iBAAkB,CAACp8D,MAAOlF,QAC1BuhE,YAAavhE,OACbwhE,SAAUxhE,OACV8+D,MAAO9+D,OACPyhE,SAAUrwC,QACVswC,sBAAuBtwC,QACvBuwC,qBAAsBvwC,QACtB4+B,QAAS,CAAC5+B,QAASpxB,WAG3BuhC,EAAQnyB,QAAUA,GAClBA,GAAQ2hD,aAAe,QACvB,IAAI5hD,GAAW65C,EAAQ4H,6BAA6B,CAChDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,iBAAkB,KAClB,mBAAoB,KACpB,kBAAmB,MAEvB5vB,MAAO,CACHjS,QAAS+C,QACTwwC,UAAWh3C,OACXi3C,SAAUj3C,UAGlB2W,EAAQpyB,SAAWA,GACnBA,GAAS4hD,aAAe,SACxB,IAAItI,GAAgBO,EAAQ4H,6BAA6B,CACrDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,0BAA2B,KAC3B,iBAAkB,KAClB,iBAAkB,KAClB,cAAe,MAEnB5vB,MAAO,CACH0wB,iBAAkB5/B,QAClB7C,QAASvuB,OACTkJ,QAAS,GACTpE,KAAM9E,UAGduhC,EAAQknB,cAAgBA,GACxBA,GAAcsI,aAAe,kBAC7BtI,GAAc0I,oBAAqB,EACnC1I,GAAc2I,kBAAoB,CAC9BtsD,KAAM,WAEV,IAAI0jD,GAAUQ,EAAQ4H,6BAA6B,CAC/CV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,mBAAoB,KACpB,4BAA6B,KAC7B,mBAAoB,KACpB,wBAAyB,KACzB,6BAA8B,KAC9B,mBAAoB,KACpB,yBAA0B,KAC1B,kCAAmC,KACnC,wBAAyB,KACzB,kBAAmB,KACnB,2BAA4B,KAC5B,qBAAsB,KACtB,6BAA8B,KAC9B,qBAAsB,KACtB,2BAA4B,KAC5B,oBAAqB,KACrB,gBAAiB,KACjB,4BAA6B,KAC7B,4BAA6B,KAC7B,cAAe,KACf,2BAA4B,KAC5B,mBAAoB,KACpB,kBAAmB,KACnB,mBAAoB,KACpB,kBAAmB,KACnB,wBAAyB,KACzB,qBAAsB,KACtB,mBAAoB,KACpB,oBAAqB,KACrB,kBAAmB,KACnB,kBAAmB,KACnB,uBAAwB,KACxB,yBAA0B,KAC1B,kBAAmB,KACnB,qBAAsB,KACtB,uBAAwB,KACxB,mBAAoB,KACpB,iBAAkB,KAClB,yBAA0B,KAC1B,kBAAmB,KACnB,uBAAwB,KACxB,yBAA0B,KAC1B,oBAAqB,KACrB,iBAAkB,KAClB,sBAAuB,KACvB,yBAA0B,KAC1B,mBAAoB,KACpB,kBAAmB,KACnB,eAAgB,KAChB,uBAAwB,KACxB,sBAAuB,KACvB,iBAAkB,KAClB,eAAgB,KAChB,qBAAsB,MAE1B5vB,MAAO,CACH4oB,UAAWlpD,OACXmpD,mBAAoB/3B,QACpBmoC,UAAW11D,OACX+0D,eAAgB/0D,OAChB21D,oBAAqB,CAACpoC,QAAS6zB,UAC/Bz2B,UAAW,GACXirC,gBAAiB,GACjBC,yBAA0BtoC,QAC1BuoC,eAAgBvoC,QAChBg5B,SAAUh5B,QACVwoC,kBAAmB,GACnBC,YAAazoC,QACb0oC,oBAAqB1oC,QACrBk5B,YAAa,GACbY,kBAAmB95B,QACnB2oC,WAAY3oC,QACZrZ,OAAQ,CAACktC,SAAUr6B,OAAQ5qB,QAC3Bg6D,mBAAoB,CAAC5oC,QAAS6zB,UAC9BgV,mBAAoB7oC,QACpBk6B,KAAMtrD,OACNurD,kBAAmBn6B,QACnB8oC,UAAW,CAACjV,SAAUr6B,OAAQ5qB,QAC9Bm6D,SAAU,CAAClV,SAAUr6B,OAAQ5qB,QAC7Bo6D,UAAW,CAACnV,SAAUr6B,OAAQ5qB,QAC9BwzD,SAAU,CAACvO,SAAUr6B,OAAQ5qB,QAC7BksD,eAAgBjH,SAChBoH,YAAapH,SACbkU,UAAWlU,SACXmU,WAAYnU,SACZoV,SAAUpV,SACVqV,SAAUrV,SACViI,cAAejI,SACfoI,gBAAiBpI,SACjBsV,SAAUtV,SACVuV,YAAavV,SACbwV,cAAexV,SACfyV,UAAWzV,SACX0V,QAAS1V,SACT2V,gBAAiB3V,SACjB4V,SAAU,CAAC5V,SAAUphD,OAAQ7D,QAC7B86D,cAAe1pC,QACf2pC,gBAAiB3pC,QACjBM,WAAYN,QACZ9C,QAAS8C,QACT4pC,aAAch7D,OACdi7D,gBAAiB7pC,QACjB8pC,UAAW9pC,QACXy+B,SAAUjlC,OACVsqC,MAAOl1D,OACPm7D,cAAe,GACfC,aAAcl2D,MACd8qD,QAAS5+B,QACTxjB,MAAO,CAACq3C,SAAUr6B,OAAQ5qB,QAC1Bq7D,YAAa,MAGrB95B,EAAQinB,QAAUA,GAClBA,GAAQuI,aAAe,QACvBvI,GAAQgI,mBAAqB,CACzB+I,UAAW,CAAE9I,kBAAkB,EAAOC,WAAY,aAClDmK,SAAU,CAAEpK,kBAAkB,EAAOC,WAAY,YACjDoR,YAAa,CAAErR,kBAAkB,EAAMC,WAAY,iBAEvD,IAAInI,GAAaS,EAAQ4H,6BAA6B,CAClDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,YAAa,KACb,kBAAmB,KACnB,wBAAyB,KACzB,mBAAoB,KACpB,YAAa,KACb,YAAa,KACb,gBAAiB,MAErB5vB,MAAO,CACHyhC,GAAI,CAACl+D,OAAQ7D,QACb4uB,SAAU,GACVozC,eAAgB,CAACn+D,OAAQ7D,QACzB6uB,UAAW,CAAChrB,OAAQ7D,QACpBiiE,GAAI,CAACp+D,OAAQ7D,QACb2uB,GAAI,GACJ8C,OAAQ,CAAC5tB,OAAQ7D,WAGzBuhC,EAAQgnB,WAAaA,GACrBA,GAAWwI,aAAe,WAC1B,IAAInhD,GAAco5C,EAAQ4H,6BAA6B,CACnDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,0BAA2B,KAC3B,aAAc,KACd,iBAAkB,KAClB,aAAc,KACd,oBAAqB,KACrB,cAAe,MAEnB5vB,MAAO,CACH0wB,iBAAkB5/B,QAClBiH,IAAK,GACL9J,QAASvuB,OACTioB,IAAK,GACLgpC,WAAY7/B,QACZtsB,KAAM9E,UAGduhC,EAAQ3xB,YAAcA,GACtBA,GAAYmhD,aAAe,kBAC3BnhD,GAAYuhD,oBAAqB,EACjCvhD,GAAYwhD,kBAAoB,CAC5BtsD,KAAM,SAEV,IAAIwjD,GAAqBU,EAAQ4H,6BAA6B,CAC1DV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,mBAAoB,KACpB,kBAAmB,KACnB,qBAAsB,KACtB,gBAAiB,KACjB,iBAAkB,KAClB,iBAAkB,MAEtB5vB,MAAO,CACH4hC,UAAW9wC,QACX+5B,SAAU/5B,QACVmE,YAAanE,QACbq9B,OAAQr9B,QACRq+B,QAASr+B,QACTu+B,QAASv+B,WAGjBmQ,EAAQ+mB,mBAAqBA,GAC7BA,GAAmByI,aAAe,mBAClC,IAAIphD,GAAiBq5C,EAAQ4H,6BAA6B,CACtDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,iBAAkB,KAClB,cAAe,KACf,cAAe,MAEnB5vB,MAAO,CACH/R,QAASvuB,OACTgG,KAAMorB,QACNtsB,KAAM9E,UAGduhC,EAAQ5xB,eAAiBA,GACzBA,GAAeohD,aAAe,kBAC9BphD,GAAewhD,oBAAqB,EACpCxhD,GAAeyhD,kBAAoB,CAC/BtsD,KAAM,YAEV,IAAIujD,GAAgBW,EAAQ4H,6BAA6B,CACrDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,6BAA8B,KAC9B,yBAA0B,KAC1B,oBAAqB,KACrB,kBAAmB,KACnB,mBAAoB,KACpB,sBAAuB,KACvB,cAAe,KACf,uBAAwB,KACxB,sBAAuB,KACvB,0BAA2B,KAC3B,gBAAiB,KACjB,eAAgB,KAChB,gBAAiB,KACjB,eAAgB,KAChB,sBAAuB,KACvB,mBAAoB,KACpB,oBAAqB,KACrB,qBAAsB,KACtB,kBAAmB,KACnB,mBAAoB,KACpB,2BAA4B,KAC5B,qBAAsB,KACtB,uBAAwB,MAE5B5vB,MAAO,CACH6hC,oBAAqB/wC,QACrBghC,gBAAiBhhC,QACjBgxC,WAAYhxC,QACZxC,SAAU,GACVJ,UAAW,GACX6zC,aAAc,CAACx+D,OAAQ7D,QACvBwM,KAAM,GACN81D,cAAetiE,OACfuiE,aAAc,GACdC,iBAAkBxiE,OAClByE,OAAQzE,OACR+sB,MAAO/sB,OACPyiE,OAAQziE,OACR0iE,MAAOzd,SACP0d,aAAc1d,SACd2d,UAAW3d,SACX4d,WAAY5d,SACZ6d,YAAa7d,SACb8d,SAAU9d,SACV+d,UAAW/d,SACXge,kBAAmBr4C,OACnBs4C,YAAat4C,OACbu4C,cAAe/xC,WAGvBmQ,EAAQ8mB,cAAgBA,GACxBA,GAAc0I,aAAe,cAC7B1I,GAAcmI,mBAAqB,CAC/B6R,aAAc,CAAE5R,kBAAkB,EAAOC,WAAY,iBAEzD,IAAIxhD,GAAc85C,EAAQ4H,6BAA6B,CACnDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,6BAA8B,KAC9B,cAAe,KACf,wBAAyB,KACzB,qBAAsB,KACtB,0BAA2B,KAC3B,yBAA0B,KAC1B,uBAAwB,KACxB,uBAAwB,KACxB,mBAAoB,MAExB5vB,MAAO,CACH8iC,oBAAqBpjE,OACrBkiD,KAAMliD,OACNqjE,eAAgBjyC,QAChBs9B,YAAat9B,QACbqD,iBAAkBz0B,OAClBsjE,gBAAiBlyC,QACjBmyC,cAAenyC,QACfoyC,cAAexjE,OACfyjE,UAAW,CAACryC,QAASpxB,WAG7BuhC,EAAQryB,YAAcA,GACtBA,GAAY6hD,aAAe,YAC3B,IAAI3I,GAAgBY,EAAQ4H,6BAA6B,CACrDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,gCAAiC,KACjC,6BAA8B,KAC9B,qBAAsB,KACtB,kCAAmC,KACnC,cAAe,KACf,iBAAkB,KAClB,eAAgB,MAEpB5vB,MAAO,CACHojC,uBAAwBtyC,QACxBuyC,oBAAqBvyC,QACrBwyC,YAAa5jE,OACb6jE,yBAA0BzyC,QAC1BxuB,KAAM5C,OACNgwD,QAAS5+B,QACTxjB,MAAOgd,UAGf2W,EAAQ6mB,cAAgBA,GACxBA,GAAc2I,aAAe,cAC7B,IAAI/gD,GAAcg5C,EAAQ4H,6BAA6B,CACnDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,wBAAyB,KACzB,kBAAmB,KACnB,kCAAmC,KACnC,cAAe,KACf,uBAAwB,KACxB,4BAA6B,MAEjC5vB,MAAO,CACHwjC,eAAgB1yC,QAChB2yC,SAAU3yC,QACV4yC,yBAA0Bp5C,OAC1Bs3B,KAAMliD,OACNikE,cAAejkE,OACfkkE,mBAAoBlkE,UAG5BuhC,EAAQvxB,YAAcA,GACtBA,GAAY+gD,aAAe,YAC3B,IAAI5I,GAASa,EAAQ4H,6BAA6B,CAC9CV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,kBAAmB,KACnB,eAAgB,KAChB,mBAAoB,KACpB,kBAAmB,KACnB,gBAAiB,KACjB,cAAe,KACf,sBAAuB,KACvB,eAAgB,KAChB,YAAa,KACb,cAAe,MAEnB5vB,MAAO,CACH6/B,SAAUlb,SACV5W,MAAOzjB,OACPw1C,UAAWpgE,OACXqgE,SAAUz1C,OACV01C,OAAQtgE,OACRorC,KAAMvnC,OACN08D,aAAc31C,OACd41C,MAAOvb,SACPlmD,GAAI8E,OACJiB,KAAM9E,UAGduhC,EAAQ4mB,OAASA,GACjBA,GAAO4I,aAAe,OACtB,IAAI7I,GAA2Bc,EAAQ4H,6BAA6B,CAChEV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,qBAAsB,KACtB,mBAAoB,KACpB,qBAAsB,MAE1B5vB,MAAO,CACH6jC,YAAankE,OACbg0D,UAAWh0D,OACX+rB,YAAa,CAACnB,OAAQ5qB,WAG9BuhC,EAAQ2mB,yBAA2BA,GACnCA,GAAyB6I,aAAe,yBACxC7I,GAAyBiJ,oBAAqB,EAC9C,IAAIlJ,GAAYe,EAAQ4H,6BAA6B,CACjDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,uBAAwB,KACxB,mBAAoB,KACpB,wBAAyB,KACzB,cAAe,KACf,yBAA0B,MAE9B5vB,MAAO,CACH8jC,cAAepkE,OACfqkE,UAAWrkE,OACXskE,eAAgBtkE,OAChBkiD,KAAMliD,OACNukE,gBAAiBnzC,WAGzBmQ,EAAQ0mB,UAAYA,GACpBA,GAAU8I,aAAe,UACzB,IAAI/I,GAAiBgB,EAAQ4H,6BAA6B,CACtDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,oBAAqB,KACrB,oBAAqB,KACrB,iBAAkB,KAClB,uBAAwB,KACxB,oBAAqB,KACrB,cAAe,MAEnB5vB,MAAO,CACHkkC,WAAYvf,SACZwf,WAAYxf,SACZ52B,QAAS+C,QACTszC,cAAe95C,OACf+5C,WAAY3kE,OACZ8E,KAAM9E,UAGduhC,EAAQymB,eAAiBA,GACzBA,GAAe+I,aAAe,eAC9B,IAAIrhD,GAAqBs5C,EAAQ4H,6BAA6B,CAC1DV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,0BAA2B,KAC3B,aAAc,KACd,iBAAkB,KAClB,aAAc,KACd,cAAe,KACf,cAAe,MAEnB5vB,MAAO,CACH0wB,iBAAkB5/B,QAClBiH,IAAKzN,OACL2D,QAASvuB,OACTioB,IAAK2C,OACL5kB,KAAMorB,QACNtsB,KAAM9E,UAGduhC,EAAQ7xB,mBAAqBA,GAC7BA,GAAmBqhD,aAAe,kBAClCrhD,GAAmByhD,oBAAqB,EACxCzhD,GAAmB0hD,kBAAoB,CACnCtsD,KAAM,gBAEV,IAAIuK,GAAY25C,EAAQ4H,6BAA6B,CACjDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,gCAAiC,KACjC,oBAAqB,KACrB,iCAAkC,KAClC,yBAA0B,KAC1B,eAAgB,KAChB,oBAAqB,MAEzB5vB,MAAO,CACHskC,uBAAwB3f,SACxB4f,WAAY3/D,MACZ4/D,wBAAyB1zC,QACzB0uC,gBAAiB1uC,QACjB+jC,MAAOtxD,OACPkhE,WAAY7/D,SAGpBq8B,EAAQlyB,UAAYA,GACpBA,GAAU0hD,aAAe,UACzB1hD,GAAUmhD,mBAAqB,CAC3BwU,UAAW,CAAEvU,kBAAkB,EAAMC,WAAY,cACjD1kC,aAAc,CAAEykC,kBAAkB,EAAOC,WAAY,SACrDyE,MAAO,CAAE1E,kBAAkB,EAAOC,WAAY,SAC9CuU,UAAW,CAAExU,kBAAkB,EAAMC,WAAY,eAErD,IAAI3I,GAAiBiB,EAAQ4H,6BAA6B,CACtDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,aAAc,KACd,wBAAyB,KACzB,eAAgB,KAChB,aAAc,KACd,wBAAyB,KACzB,aAAc,KACd,wBAAyB,KACzB,aAAc,KACd,wBAAyB,MAE7B5vB,MAAO,CACH4kC,IAAKllE,OACLmlE,eAAgBnlE,OAChB4nB,MAAO5nB,OACPq4B,IAAKr4B,OACLolE,eAAgBplE,OAChBioB,IAAKjoB,OACLqlE,eAAgBrlE,OAChBslE,IAAKtlE,OACLulE,eAAgBvlE,UAGxBuhC,EAAQwmB,eAAiBA,GACzBA,GAAegJ,aAAe,QAC9B,IAAIriD,GAAUs6C,EAAQ4H,6BAA6B,CAC/CV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,gBAAiB,KACjB,aAAc,KACd,wBAAyB,KACzB,gBAAiB,KACjB,0BAA2B,KAC3B,0BAA2B,KAC3B,qBAAsB,KACtB,8BAA+B,KAC/B,4BAA6B,KAC7B,eAAgB,KAChB,sBAAuB,KACvB,mBAAoB,KACpB,iBAAkB,KAClB,oBAAqB,KACrB,mBAAoB,KACpB,4BAA6B,KAC7B,kBAAmB,KACnB,2BAA4B,KAC5B,aAAc,KACd,2BAA4B,KAC5B,+BAAgC,KAChC,+BAAgC,KAChC,sBAAuB,KACvB,aAAc,KACd,wBAAyB,KACzB,aAAc,KACd,wBAAyB,KACzB,YAAa,KACb,uBAAwB,KACxB,wBAAyB,KACzB,wBAAyB,KACzB,aAAc,KACd,wBAAyB,KACzB,qBAAsB,KACtB,eAAgB,KAChB,iBAAkB,KAClB,oBAAqB,KACrB,iCAAkC,MAEtC5vB,MAAO,CACH62B,OAAQn3D,OACRklE,IAAKllE,OACLmlE,eAAgBnlE,OAChBi2D,OAAQj2D,OACRo3D,iBAAkBp3D,OAClBq3D,iBAAkBr3D,OAClBq8D,YAAar8D,OACbs3D,qBAAsBt3D,OACtBu3D,mBAAoBv3D,OACpB4nB,MAAO5nB,OACPs8D,aAAct8D,OACdw3D,UAAWx3D,OACXy3D,QAASz3D,OACTk2D,WAAYl2D,OACZs4D,UAAWt4D,OACXu4D,mBAAoBv4D,OACpBw4D,SAAUx4D,OACVu8D,kBAAmBv8D,OACnBq1D,IAAKr1D,OACLs/D,kBAAmBt/D,OACnBu/D,sBAAuBv/D,OACvBw/D,sBAAuBx/D,OACvBs1D,aAAct1D,OACdq4B,IAAKr4B,OACLolE,eAAgBplE,OAChBioB,IAAKjoB,OACLqlE,eAAgBrlE,OAChBm2D,GAAIn2D,OACJu1D,cAAev1D,OACf03D,eAAgB13D,OAChB23D,eAAgB33D,OAChBslE,IAAKtlE,OACLulE,eAAgBvlE,OAChB43D,YAAa53D,OACbw1D,MAAOx1D,OACPy/D,QAASz/D,OACT0/D,WAAY1/D,OACZ63D,wBAAyB73D,UAGjCuhC,EAAQ7yB,QAAUA,GAClBA,GAAQqiD,aAAe,QACvB,IAAIjJ,GAAOkB,EAAQ4H,6BAA6B,CAC5CV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,cAAe,KACf,iBAAkB,KAClB,kBAAmB,KACnB,eAAgB,KAChB,aAAc,MAElB5vB,MAAO,CACHtO,KAAMpH,OACNm0C,QAASn0C,OACTiwC,SAAUh3D,OACVm7D,MAAOp0C,OACPqH,IAAKrH,UAGb2W,EAAQumB,KAAOA,GACfA,GAAKiJ,aAAe,KACpB,IAAIviD,GAAYw6C,EAAQ4H,6BAA6B,CACjDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,kBAAmB,KACnB,eAAgB,KAChB,iBAAkB,MAEtB5vB,MAAO,CACH8pB,SAAUh5B,QACVrC,MAAO7pB,MACP8qD,QAAS5+B,WAGjBmQ,EAAQ/yB,UAAYA,GACpBA,GAAUuiD,aAAe,UACzBviD,GAAUgiD,mBAAqB,CAC3BpjD,KAAM,CAAEqjD,kBAAkB,EAAMC,WAAY,UAEhD,IAAI7I,GAAgBmB,EAAQ4H,6BAA6B,CACrDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,kBAAmB,KACnB,cAAe,KACf,kBAAmB,KACnB,iBAAkB,KAClB,kBAAmB,KACnB,cAAe,KACf,iBAAkB,KAClB,iBAAkB,KAClB,gBAAiB,MAErB5vB,MAAO,CACH8pB,SAAUh5B,QACVqvC,KAAMzgE,OACN2gE,SAAU3gE,OACVqX,QAAS,GACTm6C,SAAU,GACV5uD,KAAM5C,OACN8vD,QAAS9vD,OACTgwD,QAAS5+B,QACT0vC,OAAQ9gE,UAGhBuhC,EAAQsmB,cAAgBA,GACxBA,GAAckJ,aAAe,eAC7BlJ,GAAcsJ,oBAAqB,EACnC,IAAI5hD,GAAcy5C,EAAQ4H,6BAA6B,CACnDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,mBAAoB,KACpB,gBAAiB,KACjB,kBAAmB,KACnB,uBAAwB,KACxB,uBAAwB,KACxB,cAAe,KACf,sBAAuB,KACvB,yBAA0B,KAC1B,qBAAsB,KACtB,qBAAsB,MAE1B5vB,MAAO,CACH9yB,UAAWxN,OACXmX,OAAQnX,OACRqxD,SAAUrxD,OACV4rB,cAAeq5B,SACftzC,cAAe3R,OACfiI,KAAMjI,OACN4/D,aAAc5/D,OACd8/D,gBAAiB1uC,QACjBlF,YAAalsB,OACbmsB,YAAa,CAACtoB,OAAQohD,SAAUjlD,WAGxCuhC,EAAQhyB,YAAcA,GACtBA,GAAYwhD,aAAe,aAC3BxhD,GAAY4hD,oBAAqB,EACjC5hD,GAAYihD,mBAAqB,CAC7BrkC,YAAa,CAAEskC,kBAAkB,EAAOC,WAAY,gBAExD,IAAI9I,GAAmBoB,EAAQ4H,6BAA6B,CACxDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,0BAA2B,KAC3B,wBAAyB,KACzB,0BAA2B,KAC3B,aAAc,KACd,iBAAkB,KAClB,aAAc,KACd,iBAAkB,KAClB,oBAAqB,KACrB,cAAe,KACf,cAAe,KACf,4BAA6B,MAEjC5vB,MAAO,CACHq1B,iBAAkB1Q,SAClB2Q,eAAgB51D,OAChBgxD,iBAAkB5/B,QAClBiH,IAAK,GACL9J,QAASvuB,OACTioB,IAAK,GACL/e,QAAS,GACT+nD,WAAY7/B,QACZprB,KAAMorB,QACNtsB,KAAM9E,OACNkxD,mBAAoBjM,YAG5B1jB,EAAQqmB,iBAAmBA,GAC3BA,GAAiBmJ,aAAe,kBAChCnJ,GAAiBuJ,oBAAqB,EACtCvJ,GAAiBwJ,kBAAoB,CACjCtsD,KAAM,YAEV,IAAI+K,GAAgBm5C,EAAQ4H,6BAA6B,CACrDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,kBAAmB,KACnB,mBAAoB,KACpB,gBAAiB,KACjB,mBAAoB,KACpB,cAAe,KACf,oCAAqC,MAEzC5vB,MAAO,CACHg+B,SAAUt+D,OACVkG,UAAW++C,SACXx+C,OAAQw+C,SACRsZ,UAAW3zC,OACX9lB,KAAM9E,OACNw+D,2BAA4BptC,WAGpCmQ,EAAQ1xB,cAAgBA,GACxBA,GAAckhD,aAAe,cAC7BxvB,EAAQ+uB,QAAU3hD,G,6OCxsFd62D,EAAoC,aACpCC,EAAa,OAAMC,QAAQ,CAC3BC,eAAgB,aAChBC,KAAM,SAASxyD,GACX,IAAIpJ,EAAO3D,KACX2D,EAAK67D,iBAAmB,EACxB77D,EAAKoJ,UAAYA,EACjBpJ,EAAK87D,SAAW,GAChB97D,EAAK+7D,eAAiB,GACtB,eAAK1/D,KAAK2/D,iBAAmB,IAAI,SAAUv+D,EAAOQ,GAC9C,IAAIq6C,EAAQt4C,EAAKi8D,cAAch+D,IAAS,GACxCq6C,EAAM4jB,QAAS,EAAM5jB,EAAM6jB,cAAe,EAC1Cn8D,EAAK3D,MAAQ,qBAAUi8C,OAG/B8jB,KAAM,aACNJ,cAAe,aACfC,cAAe,aACfI,cAAe,aACfC,YAAa,WACTjgE,KAAKw/D,oBAETU,UAAW,WACHlgE,KAAKw/D,iBAAmB,IACxBx/D,KAAKw/D,mBACAx/D,KAAKw/D,kBACNx/D,KAAKs/D,mBAIjBv3C,OAAQ,SAASnmB,GACb,IAAImL,EAAY/M,KAAK+M,UACjBozD,EAAcpzD,EAAUqzD,aAC5B,OAAI,IAAMlgE,UAAUtG,QAAUumE,GACpBv+D,KAAQu+D,IACVA,EAAYv+D,GAAQmL,EAAUgb,OAAOnmB,IAElCu+D,EAAYv+D,IAEhBmL,EAAUgb,OAAOjpB,MAAMiO,EAAW7M,YAE7CmgE,cAAe,SAASz+D,EAAMC,GAC1B,IAAIkL,EAAY/M,KAAK+M,UACjBozD,EAAcpzD,EAAUqzD,aAI5B,OAHID,IACAA,EAAYv+D,GAAQC,GAEjBkL,EAAUuzD,8BAA8B1+D,EAAMC,IAEzDwqB,SAAU,SAASzqB,GACf,IAAIu+D,EAAcngE,KAAK+M,UAAUqzD,aACjC,OAAID,GACMv+D,KAAQu+D,IACVA,EAAYv+D,GAAQ,OAAoBvI,OAAOuI,IAE5Cu+D,EAAYv+D,IAEhB,OAAoBvI,OAAOuI,IAEtCyD,GAAI,WACA,OAAOrF,KAAK+M,UAAU1H,GAAGvG,MAAMkB,KAAK+M,UAAW7M,YAEnDqgE,IAAK,WACD,OAAOvgE,KAAK+M,UAAUwzD,IAAIzhE,MAAMkB,KAAK+M,UAAW7M,YAEpDsgE,cAAe,SAAS3hB,GAChBA,EAAKj9C,QAAQ5B,KAAKy/D,WAClBz/D,KAAKygE,aAAa5hB,EAAKj9C,KAAM5B,KAAK0/D,eAAe7gB,EAAKj9C,OACtDi9C,EAAK6hB,SAAU,IAGvBC,UAAW,SAASC,GAChB,OAAO5gE,KAAKy/D,SAASmB,IAEzBx0C,QAAS,SAASxqB,EAAMC,EAAOg/D,GAC3B,IAAIv7C,EAASu7C,EAAQnjE,IAAI,GACrBojE,EAAS,SAAWl/D,GAAQ,OAASA,EAAO,QAAU,GACtD0jB,EAAOy7C,aACPz7C,EAAOy7C,aAAaD,EAASl/D,EAAMC,GAEnCg/D,EAAQG,KAAKF,EAASl/D,EAAMC,IAGpCumB,iBAAkB,WACd,OAAOpoB,KAAK+M,UAAUqb,iBAAiBtpB,MAAMkB,KAAK+M,UAAW7M,YAEjE+gE,cAAe,SAASr/D,GACpB,OAAO5B,KAAK+M,UAAUm0D,aAAat/D,IAEvC6+D,aAAc,SAASG,EAAYO,GAC/B,GAAI,eAAWP,GAAa,CACxB,IAAIQ,EAASphE,KAAK+M,UAAUs0D,cAAcT,EAAWp2C,KAAKxqB,MAAOmhE,GACjE,OAAO,SAASv9D,GACZw9D,EAAO,CACHE,MAAO19D,KAIf5D,KAAKy/D,SAASmB,GAAc5gE,KAAK+M,UAAUw0D,sBAAsBX,EAAYO,GAC7EnhE,KAAK0/D,eAAekB,GAAcO,GAG1CK,cAAe,SAASZ,EAAY5vD,GAChC,IAAIowD,EAASphE,KAAKy/D,SAASmB,GAC3B,OAAOQ,GAAUA,EAAOpwD,IAE5BywD,QAAS,WACL,IAAI99D,EAAO3D,KACX,eAAK2D,EAAKg8D,iBAAmB,IAAI,WAC7Bh8D,EAAK3D,MAAM0hE,YAGnB36C,gBAAiB,SAAS46C,GACtB,IAAIC,EAAgB5hE,KAAK+M,UAAU80D,KACnC,MAAO,MAAQD,EAAcv+C,MAAM,GAAGvlB,eAAiB6jE,EAAY,IAAMA,EAAY,KAEzF1zC,wBAAyB,WACrB,IAAI6zC,EAAgB9hE,KAAK+M,UAAU80D,OAAS1C,EAAoC,KAAO,YACvF,OAAOn/D,KAAK+mB,gBAAgB+6C,IAEhCC,oBAAqB,SAAS/7C,GAC1B,IAAIg8C,EAAeh8C,EAASiH,QAAQ,IAAMjtB,KAAKiuB,2BAA2BC,SAC1E,OAAO8zC,EAAap0E,GAAGoS,KAAK+M,UAAUiZ,eAG1Ci8C,EAAa7C,EACb8C,EAAiBD,EAAW5C,QAAQ,CACpClzC,QAAS,SAASvqB,GACd,OAAO5B,KAAK+M,UAAUo1D,OAAOvgE,IAEjCwgE,SAAU,WACN,OAAOpiE,KAAK+M,UAAUo1D,UAG1BE,EAAOjD,EAAWC,QAAQ,CAC1BiD,SAAU,WACN,OAAOtiE,KAAK+M,UAAUw1D,WAE1BjD,eAAgB,WACZt/D,KAAKC,YACAD,KAAKsiE,YAActiE,KAAKwiE,gBACzBxiE,KAAKyiE,gBAAiB,EACtBziE,KAAK+M,UAAU21D,gBAAiB,GAEhC1iE,KAAKyiE,iBACLziE,KAAKyiE,gBAAiB,EACtBziE,KAAKmE,OAAOnE,KAAK2iE,YAGzBC,YAAa,SAASC,EAAeC,GACjC9iE,KAAKyiE,gBAAiB,EACtBziE,KAAK+M,UAAU21D,eAAiB,mBAAgB1iE,KAAK+M,UAAU21D,gBAAkBG,GACjF7iE,KAAKwiE,cAAgBxiE,KAAKwiE,eAAiBM,GAE/CC,YAAa,aACbC,YAAa,aACbC,eAAgB,WACZ,OAAOjjE,KAAK2iE,UAEhBpD,KAAM,SAASxyD,GACX/M,KAAKC,SAAS8M,GACd/M,KAAKkjE,gBAAkB,uBACvBljE,KAAKmjE,gBAAkB,wBAE3Bt8C,QAAS,WACL,OAAO7mB,KAAKojE,WAEhBC,iBAAkB,WACd,IAAIr9C,EAAWhmB,KAAK6mB,UACpB,IAAKb,EACD,OAAO,EAEX,IAAIs9C,EAAYC,WAAWv9C,EAASyF,IAAI,eAAiB,EACrD+3C,EAAeD,WAAWv9C,EAASyF,IAAI,kBAAoB,EAC3Dg4C,EAAez9C,EAAStoB,IAAI,GAAG+lE,aACnC,OAAOA,EAAeH,EAAYE,GAEtCr8C,UAAW,WACP,OAAO,GAEXu8C,YAAa,SAAS9hE,GAClB,OAAO5B,KAAK+M,UAAU42D,aAAa/hE,IAEvCuC,OAAQ,SAASy/D,EAAS5yD,GACtB,IAAIgV,EAAWhmB,KAAKojE,UAChBj8C,EAAYnnB,KAAKmnB,aAChBnB,GAAa49C,KAGlB5jE,KAAKwiE,eAAgB,EAChBx8C,IACDA,EAAWhmB,KAAKojE,UAAY,eAAE,SAAS77C,SAASq8C,GAChD5jE,KAAK2iE,SAAWiB,GAEpB59C,EAAS69C,YAAY,aAAc18C,GAC/BA,IACAnnB,KAAK+M,UAAUqzD,aAAe,GAC9BpgE,KAAK+iE,YAAY/xD,GACjBhR,KAAK+M,UAAUqzD,kBAAe,EAC9BpgE,KAAKkjE,gBAAgBY,KAAK9yD,MAGlC+yD,OAAQ,WACJ/jE,KAAKgkE,YAAa,EAClBhkE,KAAKgjE,cACLhjE,KAAKmjE,gBAAgBW,OACrB9jE,KAAKgkE,YAAa,GAEtBhxD,MAAO,SAASixD,GACZjkE,KAAK6mB,UAAUnpB,IAAI,GAAGsV,MAAM,CACxBixD,cAAeA,OAIvBC,EAA0B,IAC1BC,EAAiB,SAASxgE,EAAMygE,GAChC,IAAIC,EAAUD,EAAeC,QACzBC,EAAeF,EAAeE,aAC9BC,EAAkBH,EAAeG,iBAAmB,GACpDC,EAAYJ,EAAeI,WAAa,GACvCJ,EAAeG,kBACZD,GACAD,EAAQviE,MAAK,SAAU2iE,EAASC,GAC5B,IAAIC,EAAcL,EAAahmE,QAAQmmE,EAAQ7iE,MAC3CgjE,EAAcN,EAAahmE,QAAQomE,EAAQ9iE,MAO/C,OANI+iE,EAAc,IACdA,EAAcT,GAEdU,EAAc,IACdA,EAAcV,GAEXS,EAAcC,KAG7B,eAAKP,GAAS,WACV,IAAIQ,EAAc7kE,KAAK6kE,YACnBC,EAAa9kE,KAAK4B,KAClBmjE,EAAQ/kE,KAAK+kE,MACjBF,GAAe,eAAKA,GAAa,SAAUjjE,EAAMnD,GAC7C,GAAI8lE,EAAgB3iE,GAChB,MAAM,OAAO85B,MAAM,QAASopC,EAAYljE,GACrC,KAAMnD,GAAQA,EAAKumE,YAAcvmE,EAAKumE,WAAW/C,IAEpD,MADAxjE,EAAKumE,WAAW/C,GACV,OAAOvmC,MAAM,QAASopC,EAAYljE,GAE5C2iE,EAAgB3iE,GAAQnD,KAE5BsmE,GAAS,eAAKA,GAAO,SAAUnjE,EAAMnD,GACjC,GAAI+lE,EAAU5iE,GACV,MAAM,OAAO85B,MAAM,QAASopC,EAAYljE,GACrC,KAAMnD,GAAQA,EAAKumE,YAAcvmE,EAAKumE,WAAW3C,IACpD,MAAM,OAAO3mC,MAAM,QAASopC,EAAYljE,GAE5C4iE,EAAU5iE,GAAQnD,QAG1B,eAAK4lE,GAAS,WACV,IAAIY,EAAYjlE,KAAKilE,UACjBA,IACAA,EAAUJ,aAAe,eAAKI,EAAUJ,aAAa,SAAUjjE,EAAMsjE,GAC7DX,EAAgB3iE,KAChB2iE,EAAgB3iE,GAAQ2iE,EAAgB3iE,GAAMy9D,QAAQ6F,OAG9DD,EAAUF,OAAS,eAAKE,EAAUF,OAAO,SAAUnjE,EAAMsjE,GACjDV,EAAU5iE,KACV4iE,EAAU5iE,GAAQ4iE,EAAU5iE,GAAMy9D,QAAQ6F,WAK1Dd,EAAeG,gBAAkBA,EACjCH,EAAeI,UAAYA,GAE/B,IAAIW,EAAoB,SAASC,GAC7B,IAAIC,EAAc,GAwBlB,OAvBA,eAAKD,GAAa,SAAUxjE,EAAM0jE,GAC9B,IAAIC,EAAa,IAAID,EAAW3hE,GAChC4hE,EAAW3jE,KAAOA,EAChB,SAAS+B,EAAM/B,EAAM2jE,GACnB,IAAIvF,EAAgBuF,EAAWvF,gBAC3BA,GACA,eAAKA,GAAe,SAAU5+D,EAAOioB,GACjC,IAAIk8C,EAAWl8C,GASX,MAAM,OAAOqS,MAAM,QAAS95B,EAAMynB,GARlC,GAAK1lB,EAAK0lB,GAKN,MAAM,OAAOqS,MAAM,QAASrS,GAJ5B1lB,EAAK0lB,GAAc,WACf,OAAOk8C,EAAWl8C,GAAYvqB,MAAMymE,EAAYrlE,eAPtE,CAiBAyD,EAAM/B,EAAM2jE,GACdF,EAAYzjE,GAAQ2jE,KAEjBF,GAEX1hE,EAAKu9D,aAAeiE,EAAkBZ,GACtC5gE,EAAKw+D,OAASgD,EAAkBX,IAEhCgB,EAAwB,SAAS7hE,EAAM0lB,EAAYw1B,GACnDA,EAAOA,GAAQ,GACXl7C,EAAKu9D,cACL,eAAKv9D,EAAKu9D,cAAc,WACpBlhE,KAAKqpB,IAAerpB,KAAKqpB,GAAYvqB,MAAMkB,KAAM6+C,MAGrDl7C,EAAKw+D,QACL,eAAKx+D,EAAKw+D,QAAQ,WACdniE,KAAKqpB,IAAerpB,KAAKqpB,GAAYvqB,MAAMkB,KAAM6+C,OAI9C,GACXwlB,QAAS,GACThC,KAAMA,EACNH,eAAgBA,EAChBD,WAAYA,EACZwD,eAAgB,SAAS7jE,EAAMq5B,GAE3B,IADA,IAAIopC,EAAUrkE,KAAKqkE,QACV5oE,EAAI,EAAGA,EAAI4oE,EAAQzqE,OAAQ6B,IAChC,GAAI4oE,EAAQ5oE,GAAGmG,OAASA,EACpB,OAGRq5B,EAAOr5B,KAAOA,EACdyiE,EAAQphE,KAAKg4B,UACNj7B,KAAKukE,uBACLvkE,KAAKwkE,WAEhBkB,qBAAsB,SAASC,GAC3B3lE,KAAKskE,aAAeqB,GAExBC,iBAAkB,SAAShkE,GACvB5B,KAAKqkE,QAAU,eAAKrkE,KAAKqkE,SAAS,SAAUppC,GACxC,OAAOA,EAAOr5B,OAASA,YAEpB5B,KAAKukE,uBACLvkE,KAAKwkE,WAEhBL,eAAgBA,EAChBqB,sBAAuBA,GCvWZ,iBAAS,GAAI,EAAS,OAAe,CAChDnB,QAAS,K,oICMTwB,EAA0B,uBAC1BC,EAAyB,sBACd,GACXC,kBAAmB,SAAS/0D,GACxB,IAAIg1D,EACA36C,EAAarrB,KAAK+nB,OAAO,cACzBk+C,EAAkBjmE,KAAKkmE,oBAAoBl1D,EAAQF,OAAO3J,UAAWkkB,GACrE86C,EAAa,OAAA1rE,EAAA,YAAO,EAAM,CAC1BwrE,gBAAiBA,GAClBj1D,GACCo1D,EAAmBD,EAAWE,YAAYC,SAASR,GACnDS,EAAuBvmE,KAAKwmE,0BAA0BL,EAAYC,GAClEK,EAAQ,eAAE,UAAUn/C,SAAStnB,KAAK0mE,uBAAuB11D,EAAQpP,OACjE+kE,EAAoB,QAAUX,EAAkBhmE,KAAK+M,iBAAc,IAAWi5D,OAAkB,EAASA,EAAgB/E,cAAc,WACvI2F,GAAsB,OAASD,QAAqB,IAAWA,OAAoB,EAASA,EAAkBE,0BAA0BZ,KAAqBA,EAKjK,OAJAE,EAAWh+C,UAAYo+C,EACvBJ,EAAWW,UAAYL,EACvBzmE,KAAK+mE,iBAAiBZ,GACtBI,GAAsBH,GAAqBp1D,EAAQi4C,iBAAoB,SAAW2d,EAAkC,YAAb,YAA0B51D,EAAQq1D,aAClII,GAEXC,uBAAwB,OACxBR,oBAAqB,SAAS/+D,EAAWkkB,GAErC,OADAA,EAAaA,GAAcrrB,KAAK+nB,OAAO,cAChC5gB,GAAa,WAAaA,EAAYA,EAAY,eAAoBkkB,IAEjFm7C,0BAA2B,SAASx1D,EAASg2D,GACzC,IAAIT,EAAuBvmE,KAAKinE,uBAAuBj2D,EAAQq1D,aAC3DO,EAAqB,SAAW51D,EAAQi1D,gBAAkB,QAAU,OAKxE,OAJKM,EAAqB3sE,SACtB2sE,EAAuB,eAAE,SAASj/C,SAASu+C,IAE/C7lE,KAAKosB,QAAQ,OAAQ,eAAgBm6C,GAC9BA,EAAqB96C,IAAI,QAASza,EAAQi4C,kBAAoB+d,EAA2BJ,EAAqB,OAEzHK,uBAAwB,SAASC,GAC7B,OAAOA,GAASA,EAAMjgD,KAAK,IAAM4+C,IAErCsB,sBAAuB,SAASD,GAC5B,IAAIE,EAAsBpnE,KAAKinE,uBAAuBC,GACtD,OAAOE,GAAuBA,EAAoBC,YAEtDN,iBAAkB,SAAS/1D,GACvB,IAAI8T,EAAa9T,EAAQmX,UACrBm/C,EAAat2D,EAAQ81D,UACzBhiD,GAAcwiD,GAAcxiD,EAAW8kB,OAAO09B,IAElDC,kBAAmB,SAASC,GACxB,IAEIN,EAFA55C,EAAUttB,KAAKynE,aACfC,EAAS1nE,KAAK2nE,oBAElB,GAAKD,GAAUp6C,EAAQ1zB,SAAW8tE,EAAO9tE,OAGzC,IAAK,IAAI6B,EAAI,EAAGA,EAAI6xB,EAAQ1zB,OAAQ6B,IAAK,CACrCyrE,EAAQQ,EAAOl8C,GAAG/vB,GAClBuE,KAAK4nE,iBAAiBV,EAAO55C,EAAQ7xB,GAAI+rE,GACzC,IAAIK,EAAaX,EAAMh5C,SAAS/nB,KAAK,WACjC0hE,GAAcA,EAAWC,QACzBD,EAAWC,MAAMZ,EAAM9lE,SAAS0P,OAASwc,EAAQ7xB,MAI7DmsE,iBAAkB,SAASV,EAAOp2D,EAAQ02D,GACtC,IAAK12D,EAAO6c,QACR,OAAO3tB,KAAK+lE,kBAAkB,CAC1BnkE,KAAM4lE,EACNnB,YAAaa,EACbp2D,OAAQA,EACRm4C,gBAAiBjpD,KAAK+nB,OAAO,uB,wBCtBzCggD,EAAyB,mBACzBC,EAA6B,uBAC7BC,EAAoB,cACpBC,EAAgB,UAChBC,EAAc,QACdC,EAAoB,cACpBC,EAAsB,gBACtBC,EAAY,SACZC,EAAkB,eAClBC,GAAmB,gBACnBC,GAAmB,uBACnBC,GAAmB,aACnBC,GAAkB,eAClBC,GAA+B,yBAC/BC,GAAuB,WACvBC,GAAoB,oBACpBC,GAAgC,wBAChCC,GAAwB,CACxB7kE,OAAQ,SAAS6M,GACbA,EAAQmX,UAAUyhB,OAAO54B,EAAQi4D,WAGrCC,GAAuB,SAASvlE,EAAMwlE,GACtC,IAAIC,EACAC,EACAC,EAEJ,SAASC,EAAkBC,GACvB,OAAOv2D,YAAW,WACdm2D,EAAcC,EAAqB,OACnCG,GAER,OAAankE,GAAG8jE,EAAQ,sBAAuB,WAAW,SAAUvlE,GAChE6lE,aAAaH,GACT,eAAiB1lE,EAAEnF,MACnB2qE,EAAcxlE,EAAE0hB,OAChB+jD,EAAqBzlE,EAAE8lE,cACvBJ,EAAYC,EAAkB,MAE9BD,EAAYC,OAGpB,OAAalkE,GAAG8jE,EAAQ,CAAC,OAAgB,OAAeQ,EAAA,KAAcC,MAAM5tE,KAAK,KAAM,UAAW2H,EAAK88D,cAAa,SAAU78D,GAC1H,IAAI09D,EAAQ19D,EAAE09D,MACV8H,IACA9H,EAAMh8C,OAAS8jD,EACf9H,EAAMoI,cAAgBL,GAErB,eAAE/H,EAAMh8C,QAAQ2H,QAAQ,KAAKrzB,SAC9BgK,EAAEimE,SAAWlmE,EAAKmmE,YAAYxI,EAAMoI,eAChC9lE,EAAEimE,UAAY,IACdjmE,EAAEmmE,WAAa,eAAiB,eAAEzI,EAAMoI,gBACxC9lE,EAAE0pB,QAAU3pB,EAAK8jE,aACbnG,EAAM7iE,OAASkrE,EAAA,KAAcC,KAC7BjmE,EAAKqmE,gBAAgBpmE,GACd09D,EAAM7iE,OAAS,OACtBkF,EAAKsmE,UAAUrmE,GAEfD,EAAKumE,aAAatmE,UAMlCumE,GAAgB,SAAS5iE,GACzB,MAAI,SAAWA,EACJ,GAEJ,eAAUA,GAASA,EAAQ,KAAOA,GAEzC6iE,GAAe,SAASC,EAAMv5D,EAAQvJ,GACtC8iE,EAAKC,MAAM/iE,MAAQ8iE,EAAKC,MAAMxW,SAAW,SAAWhjD,EAAOvJ,MAAQ,GAAKA,GAExEgjE,GAAiB,SAAS1jD,EAAS2jD,GACnC,GAAK3jD,GAAY2jD,EAAjB,CAGA,IAEI/uE,EAFAgvE,EAAgB5jD,EAAQ6jD,WACxBC,EAAgBH,EAAWE,WAE/B,IAAKjvE,EAAI,EAAGA,EAAIgvE,EAAc7wE,OAAQ6B,IAAK,CACvC,IAAImG,EAAO6oE,EAAchvE,GAAGmvE,SACvBJ,EAAWK,aAAajpE,IACzBilB,EAAQikD,gBAAgBlpE,GAGhC,IAAKnG,EAAI,EAAGA,EAAIkvE,EAAc/wE,OAAQ6B,IAClCorB,EAAQk6C,aAAa4J,EAAclvE,GAAGmvE,SAAUD,EAAclvE,GAAGsvE,aAG9DC,GAAc,EAAQ3I,KAAKhD,QAAQ,GAAkBA,QAAQ,CACpE4L,yBAA0B,WACtB,IAAIC,EAAmBlrE,KAAK+nB,OAAO,aAC/BojD,EAAqBnrE,KAAK+nB,OAAO,uBACjC/W,EAAU,OAAAvW,EAAA,WAAO,GAAIywE,EAAkB,CACvCnR,UAAW,OACXqR,eAAe,EACfC,aAAa,IAYjB,YAVI,IAAWF,IACXA,GAAqB,GAErB,SAAWA,UACJn6D,EAAQosD,iBACRpsD,EAAQs6D,wBAEft6D,EAAQosD,YAAc+N,EACtBn6D,EAAQs6D,uBAAyBH,GAE9Bn6D,GAEXu6D,YAAa,SAASrE,EAAOf,GACrBA,EAAWh1D,SACXnR,KAAKwrE,cAActE,EAAOf,IAGlCsF,YAAa,SAASz6D,GAClB,IAAIF,EAASE,EAAQF,OACjB3J,EAAY2J,EAAO3J,WAAa,eAAoBnH,KAAK+nB,OAAO,eAChEsiD,EAAO,aAAWt7B,cAAc,MACpCs7B,EAAKC,MAAMoB,UAAYvkE,EACvB,IAAI+/D,EAAQ,eAAEmD,GAuBd,MAtBI,SAAWr5D,EAAQG,SAAWL,EAAO66D,WAAa76D,EAAOrS,MACrDuB,KAAK+M,UAAUgb,OAAO,sBACtB/nB,KAAKosB,QAAQ,cAAetb,EAAO66D,SAAUzE,GAGjDp2D,EAAOk6C,UACPkc,EAAM5/C,SAASxW,EAAOk6C,UAEtB,WAAal6C,EAAO6c,UACpBu5C,EAAM5/C,SAASxW,EAAOk6C,UACtBkc,EAAM5/C,SAAStnB,KAAK+mB,gBAAgBkhD,KAEpCn3D,EAAO86D,QAAU,EACjB1E,EAAMlG,KAAK,UAAWlwD,EAAO86D,UACrB96D,EAAOo8C,QAAU,SAAWp8C,EAAO+6D,cAAgB7rE,KAAK+nB,OAAO,sBACnEjX,EAAOvJ,OAASuJ,EAAOq8C,YACvBkd,EAAKC,MAAMnd,SAAWgd,GAAcr5D,EAAOq8C,UAAYr8C,EAAOvJ,QAE9DuJ,EAAOvJ,OACP6iE,GAAaC,EAAMv5D,EAAQq5D,GAAcr5D,EAAOvJ,SAGjD2/D,GAEX4E,WAAY,SAASC,EAAWC,GAC5BA,EAAUA,GAAW,KACrB,IAAIhmD,EAAW,eAAE,IAAInU,OAAOm6D,EAAS,MAAM1kD,SAASghD,GAEpD,OADAtoE,KAAKosB,QAAQ,OAAQ,MAAOpG,GACrBA,GAEXimD,UAAW,SAASp7D,GAChB,OAAOA,GAAOA,EAAIq7D,UAAY,IAAM,GAExCC,aAAc,SAAS7+C,EAAS8+C,GAC5B,IAAIzoE,EAAO3D,KACPmpE,EAAS,eAAE,WAAW7hD,SAAS3jB,EAAKojB,gBAAgBohD,IAAc7gD,SAAS3jB,EAAKojB,gBAAgBqhD,IAWpG,GAVI96C,IAAY8+C,GACZjD,EAAOv/B,OAAOjmC,EAAK0oE,gBAAgB/+C,IAC/BmB,EAAA,KAAQ69C,QACRnD,EAAOv/B,OAAO,eAAE,WAAWA,OAAO,SAEtCjmC,EAAKyoB,QAAQ,OAAQ,eAAgB+8C,IAErCxlE,EAAKyoB,QAAQ,UAAU,EAAM+8C,GAEjCnpE,KAAKosB,QAAQ,OAAQ,eAAgB,eAAE,WAAW7E,SAAS4hD,IACvDiD,EACA,OAAOjD,EAEP16C,EAAA,KAAQC,SACR,OAAarpB,GAAG8jE,EAAQ,YAAa,MAAM,SAAUvlE,GAC7CA,EAAEkP,SACFlP,EAAEg3B,oBAIVj3B,EAAKokB,OAAO,oBACZ,OAAa1iB,GAAG8jE,EAAQ,YAAa,eAAgBnpE,KAAKygE,cAAa,SAAU5hB,GAC7E,IAAIj7C,EAAIi7C,EAAKyiB,MACTt7C,EAAW,eAAEpiB,EAAE0hB,QACf4hD,EAAQ,eAAEtjE,EAAE8lE,eACZ6C,EAAOrF,EAAMh5C,SACbs+C,EAAiB7oE,EAAK8oE,mBAAmBC,oBACzC7E,EAAa0E,EAAKpmE,KAAK,WACvBye,EAAcsiD,EAAM9lE,QACpBurE,EAAc9E,GAAcA,EAAWC,OAASD,EAAWC,MAAMljD,GACjE9T,EAAS67D,EAAcA,EAAY77D,OAAS07D,EAAe5nD,GAC3DgoD,EAAcL,EAAKjG,SAAS,iBAC5BuG,EAAYN,EAAKjG,SAAS,eAC1BwG,EAAoBP,EAAKjG,SAASmC,IAClCsE,EAAaR,EAAKjG,SAASiC,GAC3ByE,EAAcT,EAAKjG,SAAS3iE,EAAKojB,gBAAgB2hD,KACjDuE,EAAwBJ,KAAe/7D,GAAUA,EAAO1J,cACxD8lE,EAAgBL,GAAaF,IAAgB9E,EAAWsF,WAAaR,EAAYQ,YAAc,OAASr8D,QAAU,IAAWA,OAAS,EAASA,EAAOy8C,mBACtJ6f,EAA0BR,KAAiB97D,GAAUA,EAAOk8C,oBAC5DqgB,EAA0BN,KAAgBj8D,GAAUA,EAAOi8C,YAAcj8C,EAAO+7C,mBAChFygB,GAAkBR,IAAsBE,IAAgBE,IAAkBD,IAA0BG,IAA4BC,EACpI,GAAIC,EAAgB,CACZtnD,EAAS7f,KAAK2iE,MACd9iD,EAASunD,WAAW,SACpBvnD,EAAS7f,KAAK2iE,IAAmB,IAErC,IAAI0E,EAAaxnD,EAAS,GAAGynD,YAAcznD,EAAS,GAAG0nD,YACnDF,EAAa,IAAM,eAAUxnD,EAASg7C,KAAK,YAC3Ch7C,EAASg7C,KAAK,QAASh7C,EAASzpB,QAChCypB,EAAS7f,KAAK2iE,IAAmB,SAKjD,IAAI6E,EAAa,SAASrM,GACtB,IAAI4F,EAAQ,eAAE5F,EAAMoI,eAChBkE,EAAoB,eAAEtM,EAAMh8C,QAAQ2H,QAAQ,IAAM87C,IAClDwD,EAAOrF,EAAMh5C,SACb25C,EAAa0E,EAAKpmE,KAAK,WACvB6K,EAAU62D,GAAcA,EAAWC,OAASD,EAAWC,MAAMZ,EAAM9lE,SACvE,GAAK8lE,EAAMj6C,QAAQ,SAASr/B,GAAG0zE,EAAMuM,gBAArC,CAGA,IAAIC,EAAgB,OAAArzE,EAAA,WAAO,GAAIuW,EAAS,CACpC+8D,YAAa,eAAiB7G,GAC9B5F,MAAOA,EACP0M,UAAW1M,EAAM7iE,OAGrB,GADAqvE,EAAcjE,SAAWlmE,EAAKmmE,YAAYyC,GACtCqB,EAAkBh0E,OAAQ,CAC1B,IAAIq0E,EAAkBL,EAAkBznE,KAAK,gBACzC8nE,EAAgBn9D,SAChBg9D,EAAch9D,OAASm9D,EAAgBn9D,OACvCg9D,EAAclpD,YAAcjhB,EAAK8oE,mBAAmByB,gBAAgBJ,EAAch9D,OAAO1P,QAGjG,OAAO0sE,IAmBX,OAjBA,OAAazoE,GAAG8jE,EAAQ,YAAa,gBAAgB,SAAUvlE,GAC3D,IAAIoN,EAAU28D,EAAW/pE,GACzBoN,GAAWrN,EAAK69D,cAAc,qBAAsBxwD,MAExD,OAAa3L,GAAG8jE,EAAQ,WAAY,gBAAgB,SAAUvlE,GAC1D,IAAIoN,EAAU28D,EAAW/pE,GACzBoN,GAAWrN,EAAK69D,cAAc,qBAAsBxwD,MAExD,OAAa3L,GAAG8jE,EAAQ,OAAgB,gBAAgB,SAAUvlE,GAC9D,IAAIoN,EAAU28D,EAAW/pE,GACzBoN,GAAWrN,EAAK69D,cAAc,cAAexwD,MAEjD,OAAa3L,GAAG8jE,EAAQ,OAAe,gBAAgB,SAAUvlE,GAC7D,IAAIoN,EAAU28D,EAAW/pE,GACzBoN,GAAWrN,EAAK69D,cAAc,iBAAkBxwD,MAEpDk4D,GAAqBvlE,EAAMwlE,GACpBA,GAEXa,gBAAiB,OACjBC,UAAW,OACXC,aAAc,OACdmC,gBAAiB,SAAS/+C,GAEtB,IADA,IAAI6gD,EAAkB,eAAE,cACf1yE,EAAI,EAAGA,EAAI6xB,EAAQ1zB,OAAQ6B,IAEhC,IADA,IAAImwE,EAAUt+C,EAAQ7xB,GAAGmwE,SAAW,EAC3BnkE,EAAI,EAAGA,EAAImkE,EAASnkE,IACzB0mE,EAAgBvkC,OAAO5pC,KAAKouE,WAAW9gD,EAAQ7xB,KAGvD,OAAO0yE,GAEXC,WAAY,SAASt9D,GACjB,IAAIvJ,EAAQuJ,EAAO+6D,cAAgB/6D,EAAOvJ,MACtC,mBAAqBA,IACrBA,EAAQshE,IAEZ,IAAIwF,EAAM,eAAE,SAEZ,OADA,eAASA,EAAK9mE,GACP8mE,GAEXC,uBAAwB,SAAS1d,GAC7B,IAAI2d,EAAmBvuE,KAAKwuE,kBACxBC,EAAgBF,EAAiBnwE,OAAO+sD,IAAaA,EAAS7c,OAC9DogC,EAAiBH,EAAiBnwE,OAAO+sD,GAAYA,EAAS7c,OAClEtuC,KAAKwuE,kBAAoB,GACzBxuE,KAAK2uE,4BAA4BF,GAAe,EAAO7d,GACvD5wD,KAAK4uE,iCAAiCF,IAE1CE,iCAAkC,SAASC,GACvC,IAAIlrE,EAAO3D,KACP6uE,EAAUj1E,QACV,iBAAYqZ,YAAW,WACnBtP,EAAKgrE,4BAA4BE,GAAW,OAIxDF,4BAA6B,SAASE,EAAWC,EAASle,GACtD,IAAIt3D,EAAO,IAAIS,KACf,MAAO80E,EAAUj1E,OAAQ,CACrB,IAAIm1E,EAAqBF,EAAUltC,QAC/B3wB,EAAU+9D,EAAmB/9D,QAC7Bg+D,EAAM,aAAWC,cAOrB,GANKH,IAAW,eAAE99D,EAAQmX,WAAW8E,QAAQ+hD,GAAKp1E,SAC1Cg3D,IACA5/C,EAAQ4/C,OAASA,GAErBme,EAAmB5jB,SAAShnD,OAAO6M,IAEnC89D,GAAW,IAAI/0E,KAAOT,EAAO,GAAI,CACjC0G,KAAK4uE,iCAAiCC,GACtC,QAGHA,EAAUj1E,QAAUoG,KAAKwuE,kBAAkB50E,QAC5CoG,KAAKsuE,0BAGbY,iBAAkB,SAAS/jB,GACvB,IAAIgkB,EACJ,GAAIhkB,GAAYA,EAAShnD,SAAW,eAAWgnD,GAC3CgkB,EAAoB,CAChBpjD,+BAAgCo/B,EAASp/B,+BACzC5nB,OAAQ,SAAS6M,GACbm6C,EAAShnD,OAAO6M,EAAQmX,UAAWnX,EAAQlM,MAAOkM,EAAQ4/C,QAC1D5/C,EAAQ0sD,UAAY1sD,EAAQ0sD,SAASluC,iBAG1C,GAAI,eAAW27B,GAClBgkB,EAAoB,CAChBhrE,OAAQ,SAAS6M,GACb,IAAIo+D,EAAmBjkB,EAAS,eAAiBn6C,EAAQmX,WAAYnX,EAAQlM,MAAOkM,EAAQ4/C,QACxFwe,IAAqBA,EAAiBC,UAAY,eAAWD,KAC7Dp+D,EAAQmX,UAAUyhB,OAAOwlC,GAE7Bp+D,EAAQ0sD,UAAY1sD,EAAQ0sD,SAASluC,gBAG1C,CACH,IAAI8/C,EAAa,eAASnkB,GAAYA,EAAW,eAAEA,GAAU6V,KAAK,MAC7DsO,GAGItvE,KAAKuvE,gBAAgBD,KACtBtvE,KAAKuvE,gBAAgBD,GAActvE,KAAK0jE,YAAYvY,IAExDgkB,EAAoBnvE,KAAKuvE,gBAAgBD,IALzCH,EAAoBnvE,KAAK0jE,YAAYvY,GAQ7C,OAAOgkB,GAEXK,eAAgB,SAASrnD,EAAWgjC,EAAUn6C,EAAS+a,EAAgC6kC,GACnF,IAAIue,EAAoBnvE,KAAKkvE,iBAAiB/jB,EAAUn6C,GACpDF,EAASE,EAAQF,OACjB+7D,EAAY,SAAW77D,EAAQG,QAC/Bs+D,EAAmB,IAAI,cACvBC,EAAkB,CAClBvnD,UAAWA,EACXrjB,MAAOkM,EACP0sD,SAAU+R,EACVE,WAAY,KACRF,EAAiBjgD,YAGzB,GAAI2/C,EAAmB,CACnBn+D,EAAQjE,UAAY/M,KAAK+M,UACzB,IAAIuhC,EAAQx9B,IAAWA,EAAOu3C,aAAewkB,GAAa7sE,KAAK+nB,OAAO,kBAAmB,IAAUjX,EAAOu3C,cAAgBv3C,EAAO6c,SAAW7c,EAAOy8C,mBAAqBsf,GAAa,WAAa77D,EAAQG,WACrMg+D,EAAkBpjD,iCAAkCA,GAAoCuiB,EAGzFtuC,KAAKwuE,kBAAkBvrE,KAAK,CACxBkoD,SAAUgkB,EACVn+D,QAAS0+D,EACTphC,MAAOA,IALX6gC,EAAkBhrE,OAAOurE,GAQzB9e,IACAA,EAAOgf,kBAAoBhf,EAAOgf,mBAAqB,GACvDhf,EAAOgf,kBAAkB3sE,KAAKwsE,SAGlCA,EAAiB5rC,SAErB,OAAO4rC,EAAiBn/C,WAE5Bu/C,WAAY,SAASC,GACjB,OAAO,eAAEA,GAAczI,SAAS,SAAS0I,IAAI,cAAcA,IAAI,eAEnEC,aAAc,SAASC,GACnB,IAAIC,EACAC,IAAmBnwE,KAAK+nB,SAAS0gC,YACrC,OAAO0nB,KAAqB,QAAUD,EAAmBlwE,KAAK6vE,WAAWI,UAAmB,IAAWC,IAAoBA,EAAiB9xE,OAAO,IAAMkqE,GAAW1uE,SAExKw2E,eAAgB,SAASjH,EAAQoD,EAAM8D,GACnC,IAAIJ,EAAgBI,EAAelH,GAAUnpE,KAAKswE,cAAgBtwE,KAAKswE,eAAiBnH,EACpFoH,EAAcvwE,KAAKgwE,aAAaC,GACpC,GAAIM,EAAa,CACb,IAAIC,EAAS,eAAE,WAAWlpD,SAASilD,EAAKvL,KAAK,UAE7C,OADAhhE,KAAKosB,QAAQ,OAAQ,eAAgBokD,GAC9BA,EAAO5mC,OAAO2iC,GAEzB,OAAOA,GAEXkE,WAAY,SAAStH,EAAQoD,EAAMmE,GAC/BA,EAAiBA,GAAkB1H,GACnC0H,EAAevsE,OAAO,CAClB8kE,QAASsD,EACTpkD,UAAWghD,KAGnBnG,YAAa,WACT,IAAI2N,EAAa3wE,KAAK4wE,YAClBD,GAAc,IACd3wE,KAAK4wE,YAAc,EACnB5wE,KAAK6wE,SAAS,CACVllD,KAAMglD,MAIlB5N,YAAa,SAASn/D,GAClB,IAAIktE,EAAQ9wE,KAAK6mB,UAAUqH,SACtB4iD,IAASA,EAAM5iD,SAASt0B,QACzBoG,KAAKsuE,uBAAuB1qE,IAGpCmtE,aAAc,SAAS//D,GACnBA,EAAUA,GAAW,GACrBA,EAAQsc,QAAUttB,KAAKysE,mBAAmBC,oBAC1C,IAAIsE,EAAahgE,EAAQ4/C,QAAU5/C,EAAQ4/C,OAAOogB,WAC9C7H,EAASnpE,KAAKmsE,aAAan7D,EAAQsc,QAAS,WAAa0jD,GAAc,YAAcA,GAAc,WAAaA,GAEpH,OADAhxE,KAAKixE,YAAY9H,EAAQn4D,GAClBm4D,GAEX8H,YAAa,SAAS9H,EAAQn4D,GAI1B,IAHA,IAAIkgE,EAAOlxE,KAAKmxE,SAASngE,EAAQ4/C,QAC7BwgB,EAAgBpgE,EAAQ4/C,QAAU5/C,EAAQ4/C,OAAOwgB,eAAiB,GAClEC,EAAcrgE,EAAQ4/C,QAAU5/C,EAAQ4/C,OAAOygB,aAAe,GACzD51E,EAAI,EAAGA,EAAIy1E,EAAKt3E,OAAQ6B,IAC7BuE,KAAKsxE,WAAWnI,EAAQ,OAAA1uE,EAAA,WAAO,CAC3BoW,IAAKqgE,EAAKz1E,GACV21E,cAAeA,EAAc31E,GAC7Bu1E,WAAYK,EAAY51E,IACzBuV,KAGXsgE,WAAY,SAASnI,EAAQn4D,GACpBA,EAAQogE,gBACTpgE,EAAQH,IAAIi3D,MAAQ,IAExB,IAAIyE,EAAOvsE,KAAK8rE,WAAW96D,EAAQH,KAC/B0gE,EAAcvxE,KAAKowE,eAAejH,EAAQoD,GAC1C,WAAav7D,EAAQggE,YACrBhxE,KAAKwxE,aAAajF,EAAMv7D,GAE5BhR,KAAKywE,WAAWtH,EAAQoI,GACxB,IAAI1J,EAAa,OAAAptE,EAAA,WAAO,CACpB6yB,QAAStc,EAAQsc,SAClBtc,EAAQH,KACX7Q,KAAKyxE,gBAAgB5J,EAAY72D,EAAQH,KACzC7Q,KAAK0xE,aAAaH,EAAa1J,EAAY72D,EAAQH,MAEvD8gE,gBAAiB,SAAS/sD,EAAawsD,GACnC,OAAQA,GAAiBA,EAAc9yE,QAAQsmB,IAAgB,GAEnE4sD,aAAc,SAASjF,EAAMv7D,GAIzB,IAHA,IAAI4T,EAAc,EACd/T,EAAMG,EAAQH,IACdyc,EAAUtc,EAAQsc,QACb7xB,EAAI,EAAGA,EAAI6xB,EAAQ1zB,OAAQ6B,IAC5BuE,KAAK2xE,gBAAgBl2E,EAAGuV,EAAQogE,gBAChCpxE,KAAK4xE,YAAYrF,EAAM,OAAA9xE,EAAA,WAAO,CAC1BqW,OAAQwc,EAAQ7xB,GAChBmpB,YAAaA,EACb/iB,MAAOgP,EAAIilB,QAAUjlB,EAAIilB,OAAOlR,GAChCitD,SAAUhhE,EAAIihE,WAAajhE,EAAIihE,UAAUltD,IAC1C5T,IAEHsc,EAAQ7xB,GAAGmwE,QAAU,EACrBhnD,GAAe0I,EAAQ7xB,GAAGmwE,QAE1BhnD,KAIZmtD,aAAc,SAASC,EAAaC,EAAgBb,GAChD,IAAI1J,EAASsK,EAAY3K,WACrB6K,EAAYD,EAAe5K,WAC3BriB,EAAmBhlD,KAAK+nB,OAAO,oBAC/BoqD,EAAmBnyE,KAAK+mB,gBAAgB6hD,IAC5CwI,EAAclwE,SAAQ,SAAU0jB,EAAaxjB,GACzC,IAAI8lE,EAAQQ,EAAOl8C,GAAG5G,GAClBwtD,EAAWF,EAAU1mD,GAAGpqB,GAC5B8lE,EAAMmL,YAAYD,GACdptB,IAAqBotB,EAAS9L,SAAS,sBACvC8L,EAAS9qD,SAAS6qD,MAG1B5H,GAAeyH,EAAYt0E,IAAI,GAAIu0E,EAAev0E,IAAI,KAE1D40E,uBAAwB,SAASpL,EAAOyF,GACpC,GAAI,cAAgBA,EAAYx7D,QAAS,CACrCnR,KAAKosB,QAAQ,OAAQ,WAAY86C,GACjC,IAAIqL,EAAoBvyE,KAAKysE,mBAAmB+F,uBAC5CC,EAAe9F,EAAY/nD,YAAc2tD,EAAoB,EACjEvyE,KAAKosB,QAAQ,WAAYqmD,EAAcvL,KAG/C0K,YAAa,SAASrF,EAAMv7D,GACxB,IAAI27D,EAAc3sE,KAAK0yE,gBAAgB1hE,GACvC,GAAIA,EAAQogE,eACR,GAAIpgE,EAAQH,IAAIi3D,MAAO,CACnB,IAAI6K,EAAY3hE,EAAQH,IAAIi3D,MAAM8K,UAAUvI,GAAQA,EAAKzlD,cAAgB+nD,EAAY/nD,aACrF5T,EAAQH,IAAIi3D,MAAM6K,GAAahG,QAGnC37D,EAAQH,IAAIi3D,MAAM7kE,KAAK0pE,GAE3B,IAAIzF,EAAQlnE,KAAKyrE,YAAYkB,GAI7B,OAHA3sE,KAAKsyE,uBAAuBpL,EAAOyF,GACnC3sE,KAAK6yE,mBAAmB3L,EAAOyF,EAAa37D,GAC5Cu7D,EAAK7uE,IAAI,GAAG0xC,YAAY83B,EAAMxpE,IAAI,IAC3BwpE,GAEX2L,mBAAoB,SAAS3L,EAAOl2D,EAAS8hE,GACzC,IAAI3nB,EAAWnrD,KAAK+yE,iBAAiB/hE,GACrC,mBAAMm6C,GAAYnrD,KAAKwvE,eAAetI,EAAO/b,EAAUn6C,OAAS,EAAQ8hE,EAAcliB,SAASzjC,KAAK,KAChGntB,KAAKurE,YAAYrE,EAAOl2D,MAGhC+hE,iBAAkB,aAClB5B,SAAU,WACN,MAAO,IAEXuB,gBAAiB,SAAS1hE,GACtB,IAAI27D,EAAc,CACd77D,OAAQE,EAAQF,OAChB8T,YAAa5T,EAAQ4T,YACrBzT,QAASH,EAAQH,IAAIM,QACrB6hE,SAAUhzE,KAAKisE,UAAUj7D,EAAQH,MAGrC,OADA7Q,KAAKyxE,gBAAgB9E,GACdA,GAEX8E,gBAAiB,SAASzgE,EAAS+tC,GAC/B,GAAK/+C,KAAK+nB,OAAO,sBAAjB,CAGA,IAAIkrD,EAAW,GAyCf,OAxCAl0B,EAASA,GAAU/tC,EACnB+tC,EAAOlyC,MAAQkyC,EAAOlyC,OAAS,SAASqmE,EAAQC,EAAiBC,GAC7D,IAAIvB,EAAWqB,EAAOn0B,EAAO54C,MACzBktE,EAAU,SAASxiE,GACfA,GAAOuiE,GACPA,EAAcviE,GAElB,IAAIyiE,EAAWJ,EAAOn0B,EAAO54C,MACzBpL,KAAKC,UAAU62E,KAAc92E,KAAKC,UAAUs4E,KACxCziE,GACAsiE,EAAgBG,GAEpBzB,EAAWyB,IAInB,OADAL,EAAShwE,KAAKowE,GACP,WACH,IAAIjyE,EAAQ6xE,EAAS30E,QAAQ+0E,GACzBjyE,GAAS,GACT6xE,EAASM,OAAOnyE,EAAO,KAInC29C,EAAOy0B,OAASz0B,EAAOy0B,QAAU,SAAS3iE,EAAK4iE,GACvC5iE,IACA7Q,KAAKmG,KAAO6K,EAAQ7K,KAAO0K,EAAI1K,KAC/BnG,KAAK6pE,SAAW74D,EAAQ64D,SAAWh5D,EAAIg5D,SACvC7pE,KAAKksE,UAAYl7D,EAAQk7D,UAAYr7D,EAAIq7D,UACzClsE,KAAKilB,WAAajU,EAAQiU,WAAapU,EAAIoU,WACvCjU,EAAQH,MAAQ4iE,IAChBziE,EAAQH,IAAMA,IAGtBoiE,EAAS/xE,SAAQ,SAAUmyE,GACvBA,EAAQxiE,OAGZkuC,IAAW/tC,IACXA,EAAQnE,MAAQkyC,EAAOlyC,MAAM2d,KAAKu0B,IAE/B/tC,IAEXw6D,cAAe,SAASnB,EAAMr5D,GAC1BA,EAAQ+8D,YAAc,eAAiB,eAAE1D,IACzCrqE,KAAKwhE,cAAc,iBAAkBxwD,IAEzC0gE,aAAc,SAASnF,EAAMv7D,GACzB,eAAYu7D,EAAK7uE,IAAI,GAAI,UAAWsT,GACpCA,EAAQ+4D,WAAa,eAAiBwC,GACtCvsE,KAAKwhE,cAAc,gBAAiBxwD,IAExC0iE,qBAAsB,SAAS9vE,GAC3B,IAAI+vE,EAAc/vE,EAAE+vE,YACpB,GAAI,OAAc1qD,aAAa0qD,EAAa,CAAC,QAAS,iBAAtD,CACI,IAAInH,EAAiBxsE,KAAKysE,mBAAmBC,oBACzCkH,EAASC,EAAA,KAAkBrH,GAAgB,SAAU17D,GACrD,IAAIvJ,EAAQuJ,EAAO+6D,cAAgB/6D,EAAOvJ,MAC1C,OAAO,eAAUA,GAASA,EAAQ,UAEtCvH,KAAK8zE,gBAAgB,CACjBF,OAAQA,EACRD,YAAaA,SAIhB3zE,KAAKwiE,eACNxiE,KAAKmE,UAGb4vE,aAAc,SAAS7M,GACnB,IAAIyL,EAAYzL,EAAMttE,OAASstE,EAAM,GAAGyL,WAAa,EACrD,OAAOA,GAEXqB,iBAAkB,WACd,OAAOh0E,KAAKswE,eAAiB,kBAEjC2D,gBAAiB,WACb,OAAOj0E,KAAKswE,eAEhB4D,gBAAiB,SAASpE,GACtB9vE,KAAKswE,cAAgBR,GAEzBtP,cAAe,SAAS3hB,GAEpB,OADA7+C,KAAKC,SAAS4+C,GACNA,EAAKj9C,MACT,IAAK,kBACL,IAAK,iBACL,IAAK,gBACL,IAAK,qBACD5B,KAAK4iE,aAAY,GAAM,GACvB/jB,EAAK6hB,SAAU,IAG3BX,KAAM,WACF,IAAIp8D,EAAO3D,KACX2D,EAAKitE,aAAe,EACpBjtE,EAAK8oE,mBAAqB9oE,EAAKs9D,cAAc,WAC7Ct9D,EAAKyjB,gBAAkBzjB,EAAKs9D,cAAc,QAC1Ct9D,EAAK6qE,kBAAoB,GACzB7qE,EAAK4rE,gBAAkB,GACvB5rE,EAAK88D,aAAa,eAClB98D,EAAK88D,aAAa,cAClB98D,EAAK88D,aAAa,kBAClB98D,EAAK88D,aAAa,iBAClB98D,EAAK88D,aAAa,qBAAsB,CACpC0T,kBAAmB,CAAC,WAAY,cAEpCxwE,EAAK88D,aAAa,iBAAkB,CAChC0T,kBAAmB,CAAC,WAAY,YAChCC,SAAU,cAEdzwE,EAAK88D,aAAa,gBAAiB,CAC/B0T,kBAAmB,CAAC,WAAY,YAChCC,SAAU,YACVC,aAAc,SAASzwE,GACnBD,EAAK2wE,kBAAkB1wE,MAG/BD,EAAK8oE,mBAAmB8H,eAAeC,IAAI7wE,EAAK+vE,qBAAqBlpD,KAAK7mB,IAC1EA,EAAKyjB,iBAAmBzjB,EAAKyjB,gBAAgBqtD,QAAQD,IAAI7wE,EAAK+wE,mBAAmBlqD,KAAK7mB,KAE1F2wE,kBAAmB,OACnBI,mBAAoB,aACpB/U,cAAe,WACX,MAAO,CAAC,kBAEZgV,0BAA2B,WACvB,IAAIhE,EAAa3wE,KAAK4wE,YAClBD,GAAc,IACd3wE,KAAK4wE,YAAc,EACnB5wE,KAAK6wE,SAAS,CACVllD,KAAMglD,MAIlBE,SAAU,SAAS+D,GACf,IAAI5uD,EAAWhmB,KAAK6mB,UAChBguD,EAAmB7uD,GAAYA,EAASqhD,SAAS,IAAMrnE,KAAK+mB,gBAAgBghD,IAAyBgI,IAAI,IAAM/vE,KAAK+mB,gBAAgBshD,IACpI,eAAUuM,IAAQ,eAAUA,EAAIjpD,OAAS3rB,KAAK4wE,cAAgBgE,EAAIjpD,OAClE3rB,KAAK4wE,YAAcgE,EAAIjpD,KACvBkpD,GAAoBA,EAAiBlE,WAAWiE,EAAIjpD,QAG5DmpD,4BAA6B,SAAS3L,GAClC,IAAI0L,EAAmB,eAAE,SACrBzX,EAAYp9D,KAAK+nB,OAAO,uBAc5B,QAbI,IAAUq1C,GAAa,SAAWA,IAAc,uBAChDyX,EAAiBvtD,SAAStnB,KAAK+mB,gBAAgBihD,IAEnD,OAAa3iE,GAAGwvE,EAAkB,SAAU,KACxC,IAAIlE,EAAakE,EAAiBlE,aAC9BA,IAAe3wE,KAAK4wE,aACpB5wE,KAAK+0E,cAAcjR,KAAK,CACpBn4C,KAAMglD,GACP3wE,KAAK4B,QAGhBizE,EAAiBvtD,SAAStnB,KAAK+mB,gBAAgBmhD,IAAgB5gD,SAAStnB,KAAK+mB,gBAAgBghD,IAAyBn+B,OAAOu/B,GAAQ5hD,SAASvnB,KAAK6mB,WACnJ7mB,KAAKosB,QAAQ,OAAQ,eAAgByoD,GAC9BA,GAEXG,eAAgB,SAASC,GACrBj1E,KAAKk0E,gBAAgBe,GACrBj1E,KAAK80E,4BAA4BG,IAErCC,oBAAqB,OACrBC,WAAY,SAASC,GACjB,IACI7tE,EADAtI,EAAS,GAcb,OAZIm2E,GACAvB,EAAA,KAAmBuB,GAAe,SAAUh0E,EAAO2F,GAE/C,GADAQ,EAAQR,EAAKsuE,YACTtuE,EAAKuuE,sBAAuB,CAC5B,IAAIC,EAAa,eAAgBxuE,GAC7BwuE,EAAWhuE,MAAQA,EAAQ,IAC3BA,EAAQguE,EAAWhuE,OAG3BtI,EAAOgE,KAAKsE,MAGbtI,GAEXu2E,gBAAiB,SAASvF,GACtB,IACIwF,EACA/N,EAFAzoE,EAAS,GAKb,IAFCe,KAAK+nB,OAAO,uBAAyB,UACtCkoD,EAAgBA,GAAiBjwE,KAAKi0E,kBAClChE,EAAe,CACfwF,EAAQxF,EAAc5I,SAAS,yBAAyBA,WACxD,IAAK,IAAI5rE,EAAI,EAAGA,EAAIg6E,EAAM77E,OAAQ6B,IAAK,CACnC,IAAI8wE,EAAOkJ,EAAMjqD,GAAG/vB,GAChBi6E,EAAe,SAAWnJ,EAAK7uE,IAAI,GAAG4sE,MAAMqL,UAAYpJ,EAAKjG,SAAS,sBAC1E,IAAKiG,EAAK3+E,GAAG,IAAM26E,KAAqBgE,EAAK3+E,GAAG,IAAM66E,MAAsB8D,EAAK3+E,GAAG,IAAM+6E,KAAoB+M,EAAc,CACxHhO,EAAS6E,EAAKlF,SAAS,MACvB,OAGRpoE,EAASe,KAAKm1E,WAAWzN,GAE7B,OAAOzoE,GAEX22E,sBAAuB,SAAShxD,EAAailD,GACzC,OAAOjlD,GAEXkvD,gBAAiB,SAAS5mE,GACtB,IAMI2oE,EACAtuE,EACA4lD,EACAvoC,GARAgvD,OAAQA,EACR3D,cAAeA,EACf3iD,QAASA,EACTM,MAAOA,GACP1gB,EAKAk2C,EAAkBpjD,KAAK+nB,OAAO,mBAElC,GADAkoD,EAAgBA,GAAiBjwE,KAAKi0E,kBAClChE,GAAiBA,EAAcr2E,QAAUg6E,EAAQ,CACjDhvD,EAAc,EACdixD,EAAQ5F,EAAc5I,SAAS,YAAYA,SAAS,OACpD,eAASwO,EAAO,QAChBvoD,EAAUA,GAAWttB,KAAKynE,WAAW,KAAMwI,GAC3C,IAAK,IAAIx0E,EAAI,EAAGA,EAAI6xB,EAAQ1zB,OAAQ6B,IAAK,CACrC,GAAI2nD,IAAoBx1B,IACpBrmB,EAAQ+lB,EAAQ7xB,GAAG8L,MACfA,IAAU+lB,EAAQ7xB,GAAGkyB,SAAS,CAC9BpmB,EAAQ+lB,EAAQ7xB,GAAGowE,cAAgBtkE,EACnCA,EAAQ4iE,GAAc5iE,GACtB4lD,EAAWgd,GAAc78C,EAAQ7xB,GAAG0xD,UAAY5lD,GAEhD,IADA,IAAIkuE,EAAQA,GAASxF,EAAc5I,WAAWA,SAAS,WAAW0I,IAAI,IAAMtH,IACnEoB,EAAW,EAAGA,EAAW4L,EAAM77E,OAAQiwE,IAAY,CACxD,IAAIh5D,EAAM4kE,EAAM5L,GACZQ,OAAO,EACPxc,EAAe7tD,KAAK41E,sBAAsBn6E,EAAGouE,GAE7CQ,EADAx5D,EAAIilE,UAAU5gB,SAASqT,GAChB13D,EAAIklE,cAAc,qBAAqBlkE,OAAOg8C,EAAe,EAAG,YAAYh8C,OAAO22D,GAAkB,MAErG33D,EAAIi3D,MAAMja,GAEjBwc,IACAD,GAAaC,EAAM/8C,EAAQ7xB,GAAI8L,GAC/B8iE,EAAKC,MAAMnd,SAAWA,IAKlC7/B,EAAQ7xB,GAAGmwE,QACXhnD,GAAe0I,EAAQ7xB,GAAGmwE,SAG9BrkE,EAAQqsE,EAAOhvD,GACX,mBAAqBrd,IACrBA,EAAQshE,IAER,kBAAoBthE,IACpBA,EAAQA,EAAMyuE,QAAQ,GAAK,MAE/B,eAASH,EAAMrqD,GAAG5G,GAAc,eAAUrd,GAASA,EAAQ,QAC3Dqd,QAIZqxD,gBAAiB,SAASpM,GACtB,OAAO7pE,KAAKk2E,qBAAqBrM,IAErCqM,qBAAsB,SAASrM,GAC3B,IAAI0C,EAAOvsE,KAAKm2E,kBAAkB3qD,GAAGq+C,GACrC,OAAO0C,EAAKlF,YAEhB+O,gBAAiB,SAASvM,EAAUwM,GAChC,IAAInP,EACAQ,EAAS1nE,KAAKi2E,gBAAgBpM,GAC9ByM,EAAqBt2E,KAAKu2E,uBAAuB7O,EAAQmC,EAAUwM,GAIvE,GAHI3O,EAAO9tE,QAAU08E,GAAsB,IACvCpP,EAAQQ,EAAOl8C,GAAG8qD,IAElBpP,GAASA,EAAMttE,OACf,OAAOstE,GAGfsP,eAAgB,SAAS3M,GACrB,IAAIlmE,EAAO3D,KACPgyE,EAAc,iBACdyE,EAAiB9yE,EAAKqwE,mBAI1B,GAHAH,EAAA,KAAmB4C,GAAgB,SAAU13E,EAAG+wE,GAC5CkC,EAAcA,EAAYwC,IAAI7wE,EAAKwyE,gBAAgB,eAAErG,IAAetkD,GAAGq+C,OAEvEmI,EAAYp4E,OACZ,OAAOo4E,GAGf0E,eAAgB,SAAS7M,EAAUwM,GAC/B,OAAO,eAAiBr2E,KAAKo2E,gBAAgBvM,EAAUwM,KAE3DM,cAAe,SAAS9M,GACpB,IAAI4L,EAAQz1E,KAAKw2E,eAAe3M,GAC5B+M,EAAW,GACf,GAAInB,IAAU,eAAiBA,GAAO/3E,IAClC,IAAK,IAAIjC,EAAI,EAAGA,EAAIg6E,EAAM77E,OAAQ6B,IAC9Bm7E,EAAS3zE,KAAKwyE,EAAMh6E,SAGxBm7E,EAAWnB,EAEf,OAAOmB,GAEXL,uBAAwB,SAAS7O,EAAQmC,EAAUwM,GAC/C,GAAI,eAASA,GAAmB,CAC5B,IAAIzxD,EAAc5kB,KAAKysE,mBAAmBoK,aAAaR,EAAkB,SACzE,OAAOr2E,KAAKysE,mBAAmByB,gBAAgBtpD,GAEnD,OAAOyxD,GAEX1O,kBAAmB,aACnBF,WAAY,SAASoC,GACjB,OAAO7pE,KAAKysE,mBAAmBC,kBAAkB7C,IAErDj4D,QAAS,SAASklE,EAAc5F,GAC5B,IACIxJ,EADA+N,EAAQvE,GAAQlxE,KAAKm2E,kBAEzB,GAAIV,EAAM77E,OAAS,GAAKk9E,EAAajN,UAAY,IACzC,YAAc7pE,KAAK+nB,OAAO,mBAAqB,YAAc/nB,KAAK+nB,OAAO,gCACzE+uD,EAAajN,SAAWiN,EAAajN,SAAW4L,EAAM77E,OAASk9E,EAAajN,SAAW4L,EAAM77E,OAAS,GAE1G8tE,EAAS1nE,KAAKi2E,gBAAgBa,EAAajN,UACvCnC,GAAUA,EAAO9tE,OAAS,GAC1B,OAAO8tE,EAAOl8C,GAAGk8C,EAAO9tE,OAASk9E,EAAalyD,YAAckyD,EAAalyD,YAAc8iD,EAAO9tE,OAAS,IAInHm9E,aAAc,WACV,IAAIjH,EAAe9vE,KAAKi0E,kBACxB,OAAInE,GAAgB,IAAMA,EAAal2E,OAC5Bk2E,EAAa,GAAGoB,KAAKt3E,OAEzB,GAEXo9E,oBAAqB,SAASlH,GAE1B,GADAA,EAAeA,GAAgB9vE,KAAKi0E,kBAChCnE,EAAc,CACd,IAAIK,EAAiBnwE,KAAK+nB,SAAS0gC,aAAezoD,KAAK+nB,OAAO,mBAC1DkvD,EAAU9G,GAAkBL,EAAa7oD,KAAK,WAAaqhD,GAC/D,OAAO2O,GAAWA,EAAQr9E,OAASq9E,EAAUnH,EAAa7oD,KAAK,cAAgBqhD,EAAY,QAAUA,GAEzG,OAAO,kBAEX6N,gBAAiB,SAASrG,GACtB,OAAO9vE,KAAKg3E,oBAAoBlH,IAEpChG,YAAa,SAASyC,GAClB,OAAOvsE,KAAKm2E,kBAAkB/0E,MAAMmrE,IAExC2K,gBAAiB,aACjBC,QAAS,aACTC,mBAAoB,SAAS7vE,GACzB,IAAIye,EAAWhmB,KAAK6mB,UAChBwE,EAAarrB,KAAK+nB,OAAO,cAC7B/B,GAAYA,EAASyF,IAAI,CACrB4rD,YAAahsD,EAAa9jB,EAAQ,GAClC+vE,aAAejsD,EAAqB,GAAR9jB,KAGpCgwE,mBAAoB,SAASC,GACzB,IAAIxxD,EAAWhmB,KAAK6mB,UAChBopD,EAAgBjwE,KAAKswE,cACzB,SAAItqD,IAAYiqD,KACLuH,EAAe,eAAcvH,GAAiB,eAASjqD,GAAY,EAAI,eAAeiqD,GAAiB,eAAUjqD,GAAY,M,aC77B5IyxD,GAAoB,mBACpBC,GAAuB,yBACvBC,GAAuB,kBACvBC,GAAoB,gCACpBC,GAAqB,GAAGhmE,OAAO+lE,GAAmB,SAClDE,GAAwB,gCACxBC,GAAyB,GAAGlmE,OAAOimE,GAAuB,SAC1DE,GAAsB,CACtBjzB,WAAY,CAAC,2DACbkzB,cAAe,CAAC,8DAA+D,+DAC/E1zB,UAAW,CAAC,oFAAqF,qFACjGr4B,SAAU,CAAC,GAAGra,OAAO8lE,IAAuB,GAAG9lE,OAAO+lE,GAAmB,cAAe,GAAG/lE,OAAOgmE,GAAoB,cAAe,GAAGhmE,OAAOgmE,IAAqB,GAAGhmE,OAAOimE,GAAuB,cAAe,GAAGjmE,OAAOkmE,GAAwB,cAAe,GAAGlmE,OAAOkmE,KAC/QG,OAAQ,CAAC,sDAAuD,uDAChE5zB,YAAa,CAAC,4CAA6C,6CAC3D6D,MAAO,CAAC,gCAAiC,kCAEzCgwB,IAAc,EACdC,IAAmB,EACnBC,GAAqB,KAEzB,SAASC,GAAeC,EAAUtsE,EAAUq1D,EAAOF,EAAQoX,EAAcC,GACrE,IAAIC,EAAYC,GAAiB1sE,EAAUq1D,EAAMsX,cAAeH,GAChE,IAAIC,EAAJ,CAGA,IAAI/vD,EAAU,gBAAiB24C,GAC3B,UAAY34C,GAAW,UAAYA,GACnCkwD,GAAuBvX,EAAMh8C,OAAQrZ,GACrCm1D,GAAUA,EAAO,CACbE,MAAOA,KAEJ,QAAU34C,EACjB6vD,EAAalxD,SAASmwD,IAEtBqB,GAAWP,EAAUtsE,EAAUq1D,IAIvC,SAASuX,GAAuBvzD,EAAQrZ,GACpC,IAAI40D,EAAU,eAAEv7C,GACZyzD,EAAYlY,EAAQG,KAAK,cACzBgY,EAAkBC,GAA4BF,EAAW9sE,EAAS4a,WAClEqyD,EAAcF,EAAgB53E,MAAMy/D,GACxCwX,GAAqB,OAAA59E,EAAA,WAAO,GAAI,CAC5Bs+E,UAAWA,EACX33E,MAAO83E,GACR,CACCC,aAAcltE,IAItB,SAASgtE,GAA4BF,EAAWK,GAC5C,IACIJ,EADAK,EAAe,eAAED,GAOrB,OAJIJ,EADAD,EACkBM,EAAapyD,KAAK,gBAAgBpV,OAAOknE,EAAW,iBAEpDM,EAAapyD,KAAK,cAEjC+xD,EAGX,SAASM,GAAuBC,GAC5B,IAAK,IAAIn4E,KAASm4E,EAAe,CAC7B,IAAI5yD,EAAW4yD,EAAcn4E,GACzBo4E,EAAoB,eAAE7yD,GAAU8yD,QACpC,GAAID,EAAkB5/E,OAClB,OAAO4/E,GAKnB,SAASb,GAAiB1sE,EAAUq1D,EAAOE,GACvC,IAAI3iB,EAAO,CACPyiB,MAAOA,EACPZ,SAAS,GAOb,OALIc,EACAA,EAAc3iB,GAEd5yC,EAASs1D,sBAAsB,YAA/Bt1D,CAA4C4yC,GAEzCA,EAAK6hB,QAGhB,SAASgZ,KACLtB,GAAmB,YAAc,aAAWnJ,cAAc0K,gBAEvD,SAASC,KACZ,OAAav0E,GAAG,aAAW4pE,cAAe,mBAAoByK,IAE3D,SAASG,KACZ,OAAatZ,IAAI,aAAW0O,cAAe,mBAAoByK,IAE5D,SAASI,GAAYjzD,GACxBuxD,IAAmB,EACnBvxD,EAAQ7T,QACRolE,IAAmB,EAEhB,SAAS2B,GAAuBxB,EAAUtsE,EAAU+Z,EAAUW,EAAUy6C,EAAQqX,GACnF,GAAIxsE,EAAS8b,OAAO,+BAChB,OAAO,OAEX,IAAIiyD,EAAiB,IAAM,eAAE/tE,EAAS4a,WAClCozD,EAAiBr2E,GAAK00E,GAAeC,EAAUtsE,EAAUrI,EAAGw9D,EAAQ4Y,IAAkBvB,GACtFyB,EAAmB,KACnB/B,IAAc,EACd6B,IAAiBxyD,YAAYiwD,KAE7B0C,EAAiB,KACjB,IAAIC,GAAmBjC,KAAgBC,GACnCgC,GACAJ,IAAiB1yD,SAASmwD,IAE9BU,IAAc,GAKlB,OAHA,OAAa9yE,GAAG2gB,EAAU,UAAWW,EAAUszD,GAC/C,OAAa50E,GAAG2gB,EAAU,YAAaW,EAAUuzD,GACjD,OAAa70E,GAAG2gB,EAAU,UAAWW,EAAUwzD,GACxC,KACH,OAAa5Z,IAAIv6C,EAAU,UAAWW,EAAUszD,GAChD,OAAa1Z,IAAIv6C,EAAU,YAAaW,EAAUuzD,GAClD,OAAa3Z,IAAIv6C,EAAU,UAAWW,EAAUwzD,IAGjD,SAAS,GAAaluE,GACzB,IAAKA,EAAS8b,OAAO,gCAAkCswD,GAAoB,CACvE,IAAIc,EAAed,GAAmBc,aACtC,GAAIA,EAAc,CACd,IAAIH,EAAkBC,GAA4BZ,GAAmBU,UAAWI,EAAatyD,WACzFwzD,EAAiBrB,EAAgBxtD,GAAG6sD,GAAmBj3E,OAC3Di3E,GAAqB,KACrB,OAAavrD,QAAQutD,EAAgB,WAI1C,SAASvB,GAAWP,EAAUtsE,EAAUq1D,GAC3C,IAAI34C,EAAU,gBAAiB24C,GAC/B,GAAIA,EAAMxuD,UAAY,YAAc6V,GAAW,cAAgBA,GAAU,CACrE,IAAI2xD,EAAY98E,OAAO84B,KAAK0hD,IACxBuC,EAAgBD,EAAUh8E,QAAQi6E,GACtC,MAAOgC,GAAiB,GAAKA,EAAgBD,EAAU1gF,OAAQ,CAC3D2gF,EAAgB,YAAc5xD,IAAY4xD,IAAkBA,EAC5D,IAAIC,EAAYF,EAAUC,GACtBhB,EAAgBvB,GAAoBwC,GACpChB,EAAoBF,GAAuBC,GAC/C,GAAIC,GAAqBA,EAAkB5/E,OAAQ,CAC/C4/E,EAAkBxY,KAAK,WAAY/0D,EAAS8b,OAAO,aAAe,GAClE,OAAa+E,QAAQ0sD,EAAmB,SACxCA,EAAkBhyD,YAAYkwD,IAC9B,SAKT,SAAS+C,GAAYxuE,EAAU+Z,GAC7B/Z,EAAS8b,OAAO,gCACjB/B,EAASg7C,KAAK,WAAY/0D,EAAS8b,OAAO,aAAe,GCxK1D,IAAI,GAAyB,SAASwwD,EAAUtsE,EAAU+Z,EAAUW,EAAUy6C,GACjF,IAAIsZ,EAAqBzuE,EAASg1D,cAAc,sBAC5Ch1D,EAAS8b,OAAO,gCAAkC2yD,IAAuBA,EAAmBC,sBAGhG1uE,EAASw0D,aAAa,aACtB,GAAqC8X,EAAUtsE,EAAU+Z,EAAUW,EAAUy6C,EAAQviB,IACjF5yC,EAASu1D,cAAc,YAAa3iB,OCaxC+7B,GAAqB,eACrBC,GAAgB,UAChBC,GAAe,SACfC,GAAqB,UACrBC,GAAmB,gBACnBC,GAAqB,kBACrBC,GAA6B,wBAC7BC,GAA8B,yBAC9BC,GAA8B,yBAC9BC,GAA4B,yBAC5BC,GAA0B,uBAC1BC,GAAsC,6BACtCC,GAAuB,oBACvBC,GAA6B,0BAC7BC,GAA+B,oBAC/BC,GAAgC,6BAChCC,GAAyB,sBAClBC,GAAsB,CAC7Bl+E,eAAgB,WACZ,MAAO,CACHqrD,mBAAmB,EACnB7F,iBAAiB,IAGzB4hB,MAAO,CACH+W,kBAAmB9Q,GAAY3L,QAAQ,WACnC,IAAI0c,EAAoB,SAASp4E,EAAMujE,EAAOl2D,GAC1C,IAAIgrE,EAAe,eAAE,SAAS10D,SAAS3jB,EAAKojB,gBAAgB6zD,KAC5Dj3E,EAAKyoB,QAAQ,OAAQ,eAAgB4vD,GACrCC,EAA2Bt4E,EAAMujE,EAAOl2D,EAAQF,OAAQkrE,GACxD,IAAI/yB,EAAkBtlD,EAAKokB,OAAO,mBAC9Bm0D,EAAmBv4E,EAAKs9D,cAAc,WAAW4F,0BAA0B71D,EAAQF,OAAO3J,WAC9F,OAAO60E,EAAa/yB,GAAmB,UAAYizB,EAAmB,WAAa,aAAahV,IAGpG,SAAS+U,EAA2Bt4E,EAAMujE,EAAOp2D,EAAQkrE,GACrD,IAAIG,EAAqBx4E,EAAKwjE,sBAAsBD,GAAO,GACvDkV,EAA4Bz4E,EAAKwjE,sBAAsBD,GACvDmV,EAAiBF,GAAsBA,EAAmBviF,OAC1DqsE,EAAkBtiE,EAAKuiE,oBAAoBp1D,EAAO3J,WAClDm1E,EAAyB,IAAIzqE,OAAOlO,EAAK+iE,uBAAuB,SAChE6V,EAA8B,IAAI1qE,OAAOlO,EAAK+iE,uBAAuB,cACrE8V,EAAiBJ,EAA0Bh+E,OAAOk+E,GAClDG,EAAsBL,EAA0B/U,WAAWjpE,OAAOm+E,GACtEP,EAAeA,GAAgB9U,EAAMG,SAAS,IAAM1jE,EAAKojB,gBAAgB6zD,KACzEoB,EAAanY,YAAY0X,GAAsCtV,EAAiBoW,EAAiB,GAAGxY,YAAY0X,IAAuC,SAAWtV,EAAkB,QAAU,QAASoW,EAAiB,GAAK,WAAavrE,EAAO3J,WAAW08D,YAAY2X,KAAwBgB,EAAe5iF,QAAQiqE,YAAY4X,KAA8BgB,EAAoB7iF,QAAQiqE,YAAY8X,KAAiCS,EAA0Bh+E,OAAO,IAAMuF,EAAK+iE,uBAAuB,iBAAiB9sE,QAElgB,MAAO,CACHuyE,aAAc,WACV,IAAIhD,EAASnpE,KAAKC,SAASnB,MAAMkB,KAAME,WAOvC,OANA,OAAamF,GAAG8jE,EAAQ,wBAAyBnpE,KAAKygE,cAAa,SAAU78D,GACzE,IAAI09D,EAAQ19D,EAAE09D,MACVA,EAAMob,UACNpb,EAAM1mC,qBAGPuuC,GAEX,8BACI,OAAOnpE,KAAK+nB,OAAO,gCAEvB40D,oBAAqB,SAAS7rE,GAC1B,IAAInN,EAAO3D,KACX,OAAO,SAAS8kB,EAAY9T,GACxB,IAAI4rE,EAAW9rE,EAAO6c,QAAU7I,EAAai3D,EAAkBp4E,EAAMmhB,EAAY9T,GAC7E9J,EAAU,WAAa4J,EAAO6c,SAAW7c,EAAO5J,QAChDA,EACA01E,EAASrgF,KAAK2K,GACP4J,EAAO6c,SACd7I,EAAWs1C,KAAK,YAI5ByiB,mBAAoB,SAAS/rE,GACzB,OAAOA,EAAOk8C,oBAAsB,CAChCjhC,gCAAgC,EAChC5nB,OAAQnE,KAAK28E,oBAAoB7rE,KAGzCo+D,iBAAkB,SAAS/jB,EAAUn6C,GACjC,IACI8rE,EADAn5E,EAAO3D,KAEP8Q,EAASE,EAAQF,OACjBq+D,EAAoBxrE,EAAK1D,SAASkrD,GAatC,OAXI2xB,EADA,WAAa9rE,EAAQG,SAAWg+D,GAAqBr+D,EAAOk8C,qBAAuBl8C,EAAO6c,QACzE,CACbxpB,OAAQ,SAAS6M,GACb,IAAI4rE,EAAWb,EAAkBp4E,EAAMqN,EAAQmX,UAAWnX,EAAQlM,OAClEqqE,EAAkBhrE,OAAO,OAAA1J,EAAA,WAAO,GAAIuW,EAAS,CACzCmX,UAAWy0D,OAKNzN,EAEd2N,GAEXpI,mBAAoB,SAAS9wE,GACrB,YAAcA,EAAEotE,aAGhBhxE,KAAK+8E,oBAAsB/8E,KAAKwiE,iBAChCxiE,KAAK+8E,oBAAqB,EAC1B/8E,KAAKmE,WAGbytE,YAAa,SAASrF,EAAMv7D,GACxB,IAAIk2D,EAAQlnE,KAAKC,SAASssE,EAAMv7D,GAShC,MARI,WAAaA,EAAQH,IAAIM,UACzB+1D,EAAM5/C,SAAS+zD,IACVr7E,KAAKg9E,+BACFhsE,EAAQF,SAAWE,EAAQF,OAAOrS,MAClCyoE,EAAMlG,KAAK,WAAYhhE,KAAK+nB,OAAO,aAAe,IAIvDm/C,GAEXoL,uBAAwB,SAASpL,EAAOyF,GACpC3sE,KAAKC,SAASinE,EAAOyF,GACjB,WAAaA,EAAYx7D,UACzBnR,KAAKosB,QAAQ,OAAQ,eAAgB86C,IACjCyF,EAAY77D,QAAW67D,EAAY77D,OAAO6c,SAAYg/C,EAAY77D,OAAOo8C,SACzEga,EAAMlG,KAAK,KAAM2L,EAAY77D,OAAO66D,UACpC3rE,KAAKosB,QAAQ,QAAS,OAAoB/yB,OAAO,yBAA2B,IAAMszE,EAAY77D,OAAO5J,QAASggE,MAI1H4E,WAAY,SAASj7D,GACjB,IAAI07D,EAAOvsE,KAAKC,SAASnB,MAAMkB,KAAME,WAQrC,OAPAqsE,EAAK1I,YAAYoX,GAAoBj7E,KAAK+nB,OAAO,oBAC7C,WAAalX,EAAIM,UACjBo7D,EAAKjlD,SAAS0zD,IACTh7E,KAAKg9E,+BACN,GAAuB,gBAAiBh9E,KAAMusE,EAAM,KAAMvsE,KAAKi9E,qBAAqBzyD,KAAKxqB,QAG1FusE,GAEX0Q,qBAAsB,SAASp+B,GAC3B,IAAIyiB,EAAQziB,EAAKyiB,MACbT,EAAU,eAAES,EAAMh8C,QAEtB,GADAtlB,KAAKk9E,mBAAqB5b,EAAMh8C,OAC5Bu7C,EAAQjzE,GAAG8tF,IAA+B,CAC1C,IAAIyB,EAAyBn9E,KAAKihE,cAAc,gBAC5Cmc,EAAUvc,EAAQ5zC,QAAQ,MAC1BrI,EAAc5kB,KAAKq9E,wBAAwBD,GAC3Cx4D,GAAe,GACfu4D,EAAuBG,qBAAqB14D,GAAa,OAE1D,CACH,IAAI2nD,EAAO1L,EAAQ5zC,QAAQ8tD,IAC3B/6E,KAAKu9E,qBAAqBjc,EAAOiL,GAErCjL,EAAM1mC,kBAEVmoC,YAAa,WACT,IAAIp/D,EAAO3D,KACP8kB,EAAanhB,EAAKkjB,YAClBljB,EAAK2sE,eAAkB3sE,EAAKyjB,gBAAgBo2D,YAAe75E,EAAK85E,mBAGpE34D,EAAWwC,SAAS3jB,EAAKojB,gBAAgB8zD,KAAgBhX,YAAYlgE,EAAKojB,gBAAgB+zD,KAAgBn3E,EAAKokB,OAAO,oBAAoB25C,QAC1I/9D,EAAKyoB,QAAQ,OAAQ,eAAgBtH,GACrCnhB,EAAKqxE,eAAerxE,EAAKotE,gBACrBptE,EAAK+5E,cAAgB,GACrB54D,EAAWwC,SAASs0D,IAExBj4E,EAAK1D,SAASnB,MAAM6E,EAAMzD,aAE9B+wE,YAAa,WACT,IAAIttE,EAAO3D,MACP2D,EAAKyjB,gBAAgBo2D,YAAc75E,EAAK85E,mBACxC95E,EAAK1D,SAASnB,MAAM6E,EAAMzD,WAC1ByD,EAAK85E,iBAAkB,IAG/BE,sBAAuB,SAAS9T,GAC5B,OAAO7pE,KAAKysE,mBAAmBC,kBAAkB7C,IAErDyH,WAAY,SAASnI,EAAQn4D,GACzBA,EAAQsc,QAAUttB,KAAK29E,sBAAsB3sE,EAAQH,IAAIg5D,UACzD7pE,KAAKC,SAASkpE,EAAQn4D,IAE1By6D,YAAa,SAASz6D,GAClB,IAAIF,EAASE,EAAQF,OACjB8sE,EAAe59E,KAAKC,SAASnB,MAAMkB,KAAME,WAE7C,OADA4Q,EAAO+sE,QAAU,GAAK,WAAa7sE,EAAQG,SAAWysE,EAAa5c,KAAK,UAAWlwD,EAAO+sE,SACnFD,GAEXzM,SAAU,WACN,IAAIlyE,EAAS,GACT6+E,EAAW99E,KAAK09E,cACpB,GAAI19E,KAAK+nB,OAAO,qBACZ,IAAK,IAAItsB,EAAI,EAAGA,EAAIqiF,EAAUriF,IAC1BwD,EAAOgE,KAAK,CACRkO,QAAS,SACT04D,SAAUpuE,IAItB,OAAOwD,GAEX8zE,iBAAkB,SAAS/hE,GACvB,GAAI,WAAaA,EAAQG,QACrB,OAAOnR,KAAK68E,mBAAmB7rE,EAAQF,SAG/C4iE,qBAAsB,SAAS9vE,GAC3B,IAAIytE,EAAcztE,EAAEytE,YAChBsC,EAAc/vE,EAAE+vE,YAChBtC,EAAYvsB,UAAYusB,EAAY0M,eAChC1M,EAAYvsB,WACZ9kD,KAAK+8E,oBAAqB,IAIlC/8E,KAAKC,SAAS2D,IACV+vE,EAAYpsE,OAASosE,EAAYhqB,UACjC3pD,KAAKmjE,gBAAgBW,SAG7Bka,kBAAmB,SAASC,GACxB,OAAOA,GAAkBA,EAAet0B,SAE5Cu0B,sBAAuB,SAAShX,GAC5B,IAAIX,EAAuBvmE,KAAKinE,uBAAuBC,GAAO,GAC1DX,GAAwBA,EAAqB3sE,SAC7C2sE,EAAqBnoE,OAAO,IAAMk9E,IAAyBxzD,SAC3Dy+C,EAAuBvmE,KAAKinE,uBAAuBC,GACnDX,EAAqBxjC,QAAQzb,SAASg0D,IAAyB7vD,IAAI,QAAS,IAAI0yD,aAAajX,EAAMG,SAAS,IAAMrnE,KAAK+mB,gBAAgB6zD,QAG/IrP,YAAa,SAASrE,EAAOl2D,GACrB,WAAaA,EAAQG,SAAW,WAAaH,EAAQF,OAAO3J,WAC5DnH,KAAKk+E,sBAAsBhX,GAE/BlnE,KAAKC,SAASnB,MAAMkB,KAAME,YAE9B0nE,iBAAkB,SAASV,EAAOp2D,EAAQ02D,GACtC,IAAI4W,EAAoBp+E,KAAKC,SAASnB,MAAMkB,KAAME,WAKlD,MAJI,WAAa4Q,EAAO3J,WACpBnH,KAAKk+E,sBAAsBhX,GAE/B+U,EAA2Bj8E,KAAMknE,EAAOp2D,GACjCstE,GAEXnX,uBAAwB,SAASC,EAAOmX,GACpC,IAAI9X,EAAuBvmE,KAAKC,SAASinE,GACzC,OAAOmX,EAAY9X,EAAuBA,EAAqBnoE,OAAO,SAAWk9E,GAA0B,MAE/GgD,mBAAoB,WAChB,OAAO,GAEXC,oBAAqB,WACjB,IAAItO,EAAgBjwE,KAAKi0E,kBACrBuK,EAAcvO,GAAiBA,EAAchpD,KAAK,IAAM+zD,IAC5D,OAAOwD,GAAeA,EAAYC,UAAU1nD,QAAO,SAAUkoC,EAAKztD,GAC9D,OAAOytD,EAAM,eAAUztD,KACvB,IAAM,GAEdktE,iBAAkB,SAASt9E,GACvB,IAAIu9E,EAAiB3+E,KAAK2nE,oBAC1B,OAAOgX,GAAkBA,EAAenzD,GAAGpqB,IAE/CumE,kBAAmB,SAASvmE,EAAOw9E,GAC/B,IACIhB,EADAj6E,EAAO3D,KAEP2mE,EAAoBhjE,EAAK8oE,mBACzBqR,EAAWn6E,EAAK+5E,cACpB,GAAI/5E,EAAKokB,OAAO,qBAAsB,CAClC,GAAI+1D,EAAW,KAAO,eAAU18E,IAAU,eAAUw9E,IAAmB,CACnE,IAAI3/E,EAAS,GACTutE,EAAiB,eAAUoS,GAAmBjY,EAAkBkY,wBAAwBD,GAAiB,GAAQjY,EAAkB+F,oBAMvI,OALA,eAAKF,GAAgB,SAAUztE,EAAG+R,GAC9B,IAAI+4D,EAAW,eAAUzoE,GAASA,EAAQulE,EAAkBmD,YAAYh5D,EAAO1P,OAC/Ew8E,EAAej6E,EAAKyyE,gBAAgBvM,EAAUlD,EAAkBuH,gBAAgBp9D,EAAO1P,MAAOyoE,IAC9F+T,GAAgB3+E,EAAOgE,KAAK26E,EAAalgF,IAAI,OAE1C,eAAEuB,GACN,IAAKmC,GAASA,EAAQ08E,EACzB,OAAOn6E,EAAKsyE,gBAAgB70E,GAAS,KAIjDi8E,wBAAyB,SAASnW,GAC9B,IAAIyL,EAAY3yE,KAAK+zE,aAAa7M,GAC9BqF,EAAOrF,EAAMj6C,QAAQ,WACrB48C,EAAW0C,EAAK,GAAG1C,SACnB/4D,EAAS9Q,KAAKynE,WAAWoC,GAAU8I,GACvC,OAAO7hE,EAASA,EAAO1P,OAAS,GAEpCw0E,sBAAuB,SAAShxD,EAAailD,GACzC,IAAI/4D,EAAS9Q,KAAKynE,aAAa7iD,GAC/B,OAAO9T,EAAS9Q,KAAKysE,mBAAmByB,gBAAgBp9D,EAAO1P,MAAOyoE,IAAa,GAEvF2L,gBAAiB,WACb,IAAIsJ,EAAkB9+E,KAAK2nE,oBAC3B,OAAImX,GAAmBA,EAAgBllF,OAC5BoG,KAAKm1E,WAAW2J,GAEpB9+E,KAAKC,SAASnB,MAAMkB,KAAME,YAErC6+E,cAAe,SAASjuE,EAAQkuE,EAAgBC,GAC5C,IAAIxjF,EACAyjF,EAAuB,EACvBrV,EAAW/4D,GAAU9Q,KAAKysE,mBAAmB3C,YAAYh5D,EAAO1P,OAChEksB,EAAUttB,KAAKynE,WAAW,IAAMoC,EAAW,EAAI,MAC/CsV,GAAiB,OAASruE,QAAU,IAAWA,OAAS,EAASA,EAAOg7C,cAAgBx+B,EAAQ1zB,OAAS,EACzGwlF,EAAY,SAAStuE,GACrB,OAAOA,EAAOi7C,iBAAmBj7C,EAAO86C,eAAiB96C,EAAOg7C,aAEpE,IAAKrwD,EAAI,EAAGA,EAAI6xB,EAAQ1zB,OAAQ6B,IACxB2jF,EAAU9xD,EAAQ7xB,KAClByjF,IAGR,GAAIA,GAAwB,IAAMC,EAC9B,OAAO,EACJ,IAAKF,EACR,OAAQj/E,KAAK+nB,OAAO,0BAA4B/nB,KAAKysE,mBAAmB4S,mBAAmB,qBAAuBvuE,GAAUA,EAAOi7C,gBAEvI,IAAKtwD,EAAI,EAAGA,EAAIwjF,EAAerlF,OAAQ6B,IAAK,CACxC,IAAI6jF,EAAgBL,EAAexjF,GACnC,GAAI6jF,GAAiBA,EAAcP,cAAcjuE,EAAQkuE,GACrD,OAAO,EAGf,OAAO,GAEX9H,gBAAiB,WACb,IAAI4H,EAAkB9+E,KAAK2nE,oBAC3B,GAAImX,GAAmBA,EAAgBllF,OAAQ,CAC3C,IAAIwxB,EAASprB,KAAKi0E,kBAAkB7oD,SACpC,MAAO,CACHQ,IAAKR,EAAOQ,KAGpB,OAAO,MAEXurD,QAAS,WACL,MAAO,WAEXoI,eAAgB,WACZ,IAAIT,EAAkB9+E,KAAK2nE,oBAC3B,OAAOmX,EAAkBA,EAAgBllF,OAAS,GAEtDutB,UAAW,WACP,OAAOnnB,KAAK+nB,OAAO,sBAEvBy4C,cAAe,SAAS3hB,GACpB,OAAQA,EAAKj9C,MACT,IAAK,oBACL,IAAK,kBACL,IAAK,kBACD5B,KAAK4iE,aAAY,GAAM,GACvB/jB,EAAK6hB,SAAU,EACf,MACJ,QACI1gE,KAAKC,SAAS4+C,KAG1B2gC,UAAW,WACP,OAAOx/E,KAAKqjE,oBAEhBoc,oBAAqB,SAASzuE,GAC1B,IAAIrN,EAAO3D,KACP8Q,EAASE,EAAQF,OACrB,GAAIE,EAAQH,MAAQ,WAAaG,EAAQH,IAAIM,SAAW,mBAAqBH,EAAQH,IAAIM,SAAU,CAC/F,IAAIuuE,EAAiB/7E,EAAKokB,OAAO,WACjC,GAAI23D,GAAkB,SAAWA,EAAe7jC,MAAQ/qC,GAAUA,EAAOm7C,aAAc,CACnF,IAAI0zB,EAAc,SAASC,GACvB3sE,YAAW,WACPtP,EAAK8oE,mBAAmBoT,gBAAgB/uE,EAAO1P,MAAOw+E,EAAOE,SAASj+E,WAG9E,MAAO,CAAC,CACJtF,KAAMmjF,EAAe3hB,cACrBl8D,MAAO,MACPkiD,SAAU,QAAUjzC,EAAO68C,UAC3B1C,KAAMiwB,GACNyE,YAAaA,GACd,CACCpjF,KAAMmjF,EAAezhB,eACrBp8D,MAAO,OACPkiD,SAAU,SAAWjzC,EAAO68C,UAC5B1C,KAAMkwB,GACNwE,YAAaA,GACd,CACCpjF,KAAMmjF,EAAe1hB,UACrBn8D,MAAO,OACPkiD,UAAWjzC,EAAO68C,UAClB1C,KAAMmwB,GACNuE,YAAaA,OAK7BjC,YAAa,WACT,OAAO19E,KAAKysE,oBAAsBzsE,KAAKysE,mBAAmBiR,eAE9DqC,eAAgB,SAASn7D,EAAa/iB,EAAOgoE,GACzC,IACIpuE,EACAkjF,EAFAh7E,EAAO3D,KAGP89E,EAAWn6E,EAAK+5E,cAChBpwD,EAAU3pB,EAAK8oE,mBAAmBhF,aAClC32D,EAASwc,GAAWA,EAAQ1I,GAC5Bo7D,EAAWlvE,GAAUA,EAAOo8C,QAAUp8C,EAAO1P,MAC7C6+E,EAAmB,SAAS7+E,EAAO0P,GAC/BA,EAAOs8C,YAAc4yB,IACrBrB,EAAenzD,GAAGpqB,GAAOqqB,IAAI,CACzBitC,QAAS72D,IAETiP,EAAOo8C,QACPvpD,EAAKo8E,eAAejvE,EAAO1P,MAAOS,EAAOpG,EAAI,KAIzD,GAAI,eAAUukF,GAEV,IADAnW,EAAWA,GAAY,EAClBpuE,EAAIouE,EAAUpuE,EAAIqiF,EAAUriF,IAC7BkjF,EAAiBh7E,EAAKsyE,gBAAgBx6E,GACtC,eAAKkI,EAAK8jE,WAAWhsE,GAAIwkF,KA/YN,MC1ChBpE,GAAoB9W,MAAM+W,kBACzD,EAASrW,eAAe,gBAAiBoW,I,4GCKrCqE,GAA8B,SAC9BC,GAA4B,aAC5BC,GAAgC,sBAChCC,GAAkB,yHAClBC,GAAuB,+BACvBC,GAAwB,CAAC,GAAI,OAAQ,GAAI,KAAM,GAAI,KAAM,MAAO,GAAI,KAAM,GAAI,KAAM,QACpFC,GAA6B,8BAC7BC,GAAqB,EACrBC,GAAa,SAASnkF,EAAMokF,GAC5B,IAAI1hF,EAIJ,OAHI,eAAS1C,KAAUokF,IACnB1hF,EAAS2hF,GAAmBrkF,IAEzB0C,GAAU4hF,GAAUtkF,IAG/B,SAASukF,GAAYziF,GACjB,OAAQA,GAAQ,EAGpB,SAASwiF,GAAUtkF,GACf,IAAIwkF,EAA+BC,GAA2BzkF,KAAU4jF,GACpEc,GAAe,eAAO1kF,IAASxC,KAAKoG,MAAM5D,GAC9C,IAAK0kF,GAAeF,EAA8B,CAC9C,IAAI5iF,EAAQ5B,EAAK81B,MAAMmuD,IACvB,GAAIriF,EAAO,CACP,IAAI+iF,EAAU,IAAInnF,KAAK+mF,GAAY3iF,EAAM,IAAK2iF,GAAY3iF,EAAM,IAAK2iF,GAAY3iF,EAAM,KAIvF,OAHA+iF,EAAQ3mF,YAAYumF,GAAY3iF,EAAM,KACtC+iF,EAAQC,SAASL,GAAY3iF,EAAM,IAAM,GACzC+iF,EAAQ1rD,QAAQsrD,GAAY3iF,EAAM,KAC3B+iF,GAGf,OAAO,eAASD,GAAe,IAAIlnF,KAAKknF,GAAe1kF,EAG3D,SAASqkF,GAAmBrkF,GACxB,IAAI4B,EAAQ5B,EAAK81B,MAAMguD,IACvB,IAAKliF,EAED,OADAA,EAAQ5B,EAAK81B,MAAMiuD,IACfniF,EACO,IAAIpE,KAAK,EAAG,EAAG,EAAG+mF,GAAY3iF,EAAM,IAAK2iF,GAAY3iF,EAAM,IAAK2iF,GAAY3iF,EAAM,UAE7F,EAEJ,IAAI3E,EAAOsnF,GAAY3iF,EAAM,IACzBtB,IAAUsB,EAAM,GAChB1B,EAAM0B,EAAM,GACZijF,EAAe,EACfC,EAAiB,EACjBC,EAAcp/D,IACd1oB,EAAO,KAAO0oB,EAAE3nB,YAAYf,GACrB0oB,GAEXk/D,EAAeN,GAAY3iF,EAAM,KACjCkjF,EAAiBP,GAAY3iF,EAAM,KAC/B,MAAQA,EAAM,MACdijF,GAAgBA,EAChBC,GAAkBA,GAEtB,IAAItkF,EAAO+jF,GAAY3iF,EAAM,IAAMijF,EAC/BpkF,EAAS8jF,GAAY3iF,EAAM,IAAMkjF,EACjCpkF,EAAS6jF,GAAY3iF,EAAM,KAC3BoE,EAAc,SAASlE,GAEvB,OADAA,EAAOA,GAAQ,GACRyiF,GAAYziF,GAAQsjB,KAAK4/D,IAAI,GAAId,GAAqBpiF,EAAKzE,QAFpD,CAGhBuE,EAAM,KACR,OAAIA,EAAM,IACCmjF,EAAY,IAAIvnF,KAAKA,KAAKC,IAAIR,EAAMqD,EAAOJ,EAAKM,EAAMC,EAAQC,EAAQsF,KAE1E++E,EAAY,IAAIvnF,KAAKP,EAAMqD,EAAOJ,EAAKM,EAAMC,EAAQC,EAAQsF,IAExE,IAAIi/E,GAAmB,SAASjlF,EAAMilB,GAClC,IAAIrjB,EAAQ5B,EAAK81B,MAAMguD,IACnBphF,EAAS,GACb,IAAKd,EAED,OADAA,EAAQ5B,EAAK81B,MAAMiuD,IACfniF,EACOA,EAAM,GAAK,WAAa,aAEnC,EAEJ,IAAK,IAAI1C,EAAI,EAAGA,EAAI8kF,GAAsB3mF,OAAQ6B,IAC1C0C,EAAM1C,KACNwD,GAAUshF,GAAsB9kF,IAAM0C,EAAM1C,IAepD,MAZI,MAAQ0C,EAAM,MACdc,GAAU,OAEVd,EAAM,MACFA,EAAM,IACNc,GAAU,MACHd,EAAM,IACbc,GAAU,KAEVA,GAAU,KAGXA,GAEPwiF,GAAkB,SAAS5/E,GAC3B,MAAI,kBAAoBA,EACb,IAAI9H,KAAK8H,GAEb6+E,GAAW7+E,GAAQ,kBAAS6/E,sBAEnCC,GAAgB,SAAS9/E,EAAO+/E,GAChC,OAAKA,EAGA,eAAO//E,GAGR+/E,IAAwB1B,GACjBr+E,GAASA,EAAMggF,QAAUhgF,EAAMggF,UAAY,KAE/C,gBAAiBD,EAAqB,QAAtC,CAAwD//E,GALpD,KAHAA,GAUXm/E,GAA6B,SAASn/E,GACtC,MAAI,kBAAoBA,EACbq+E,GACA,eAASr+E,IAEZ,kBAAS6/E,sBACTroF,EAASmoF,GAAiB3/E,IAE1BxI,IAEOwI,EAAMvD,QAAQ,MAAQ,EACtB8hF,GAEAD,KAEJt+E,EACA,UADJ,EAXH,IAAIxI,GAeG,IACXqnF,WAAYA,GACZe,gBAAiBA,GACjBE,cAAeA,GACfX,2BAA4BA,I,8EC5F5Bc,GAA8B,CAAC,eAAgB,aAAc,QAAS,iBACtEC,GAAyB,CAAC,eAAgB,YAAa,OAAQ,WAAY,QAAS,UAAW,YAAa,gBAAiB,YAAa,aAAc,cAAe,sBAAuB,0BAA2B,kCAAmC,SAASlwE,OAAOiwE,IAC5QE,GAA6B,CAC7BnW,cAAc,EACdoW,cAAc,EACdC,qBAAqB,GAErBC,GAAuB,oBACvBC,GAAmB79D,OAAO69D,kBAAoB,iBAC9CC,GAA4B,cAC5B,GAAS,wBACTC,GAAiB,EACVC,GAA0B,CACjC5kF,eAAgB,WACZ,MAAO,CACH6kF,qBAAsB,CAClBl7E,gBAAgB,EAChBwkD,aAAa,EACbG,cAAc,EACdR,cAAc,EACdc,YAAY,EACZ7iC,SAAU,OAAoBrwB,OAAO,uBACrCswB,UAAW,OAAoBtwB,OAAO,yBAE1C0pD,uBAAuB,EACvBC,qBAAqB,EACrBS,mBAAoB,aACpBD,oBAAgB,EAChBE,iBAAa,EACb++B,yBAAyB,EACzBn1D,aAAS,EACTo1D,iCAAiC,EACjC/+B,iBAAkB,KAClBG,6BAAyB,IAGjC+gB,YAAa,CACTv3C,QAAS,EAAQ20C,WAAW5C,QAAQ,WAChC,IAAIsjB,EAAyB,CACzBh5B,SAAS,EACT6D,qBAAqB,GAErBo1B,EAAsB,CACtBvnF,OAAQ,CAAC,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,WAC1C6tC,OAAQ,CAAC,WAAY,cAAe,aAAc,WAAY,IAAK,MACnE5vC,KAAM,CAAC,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,WACxCupF,SAAU,CAAC,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,YAE5CC,EAAuB,CACvBj1B,cAAc,EACdd,YAAY,EACZD,SAAS,EACTY,WAAW,EACXC,WAAW,GAEXo1B,EAAqC,SAASjyE,GAC9CA,EAAO07C,iBAAmB17C,EAAOkyE,yBAEjCC,EAAe,SAASt/E,EAAMu/E,EAAeC,EAAwBC,GACrE,IAAIC,EAAsB,GAC1B,GAAIH,EAAe,CACX,eAASA,KACTA,EAAgB,CACZ9xE,UAAW8xE,IAGnBv/E,EAAK2/E,QAAQJ,GACb,IAAIjkF,EAAS,GACb,GAAIikF,EAAcv1D,QACd1uB,EAAS,gBAAoBokF,EAAqBH,OAC/C,CACHG,EAAsB1/E,EAAK4/E,kBAAkBL,GACzCC,GAA0BA,EAAuBvhF,MAAQuhF,EAAuB/xE,YAChF8xE,EAAgB,OAAAzoF,EAAA,WAAO,GAAIyoF,EAAe,CACtC9xE,UAAW+xE,EAAuB/xE,aAG1C,IAAIoyE,EAA0B7/E,EAAK8/E,+BAA+BP,EAAeE,GAC5EF,EAAczkF,OACfQ,EAAS,CACL0sE,SAAU,UAAU95D,OAAOywE,QAGnCrjF,EAAS,gBAAoBA,EAAQ0jF,GACrC,gBAAoB1jF,EAAQokF,GAC5B,gBAAoBpkF,EAAQukF,GAC5B,gBAAoBvkF,EAAQikF,GAC5B,gBAAoBjkF,EAAQ,CACxB0nB,SAAU,OAMlB,OAHIu8D,EAAc12B,mBAAqB02B,EAAcF,yBACjDD,EAAmC9jF,GAEhCA,IAGXykF,EAA2B,SAASA,EAAyB//E,EAAMggF,EAAgBP,GACnF,IAAInkF,EAAS,GAkBb,OAjBI0kF,GACA,eAAKA,GAAgB,SAAUviF,EAAO8hF,GAClC,IAAIC,EAAyBx/E,EAAKigF,mBAAqBC,EAAqBX,EAAev/E,EAAKigF,kBAAkBxiF,KAAWuC,EAAKigF,kBAAkBxiF,GAChJ0P,EAASmyE,EAAat/E,EAAMu/E,EAAeC,EAAwBC,GACnEtyE,IACIsyE,IACAtyE,EAAOs8C,UAAYg2B,GAEvBnkF,EAAOgE,KAAK6N,GACRA,EAAOwc,UACPruB,EAASA,EAAO4S,OAAO6xE,EAAyB//E,EAAMmN,EAAOwc,QAASxc,WAC/DA,EAAOwc,QACdxc,EAAOgzE,YAAa,OAK7B7kF,GAEP8kF,EAAuB,SAASn/D,EAAao/D,GAC7C,IAAI/kF,EAAS,GACTivB,EAAS81D,EAAoBp/D,GACjC,MAAOsJ,EACHjvB,EAAOuyB,QAAQtD,GACftJ,EAAcsJ,EAAO9sB,MACrB8sB,EAAS81D,EAAoBp/D,GAEjC,OAAO3lB,GAEPglF,EAA2B,SAASr/D,EAAas/D,EAAuBC,GACxE,IAAIllF,EAAS,GACTooE,EAAW6c,EAAsBt/D,GACrC,GAAIyiD,EACA,IAAK,IAAI5rE,EAAI,EAAGA,EAAI4rE,EAASztE,OAAQ6B,IAAK,CACtC,IAAIqV,EAASu2D,EAAS5rE,GACjB,eAAUqV,EAAOi8C,cAAej8C,EAAO28C,kBACxCxuD,EAAOgE,KAAK6N,GACRqzE,GAAarzE,EAAOo8C,SACpBjuD,EAASA,EAAO4S,OAAOoyE,EAAyBnzE,EAAO1P,MAAO8iF,EAAuBC,MAKrG,OAAOllF,GAEPmlF,EAAoB,SAASzgF,EAAMmN,GACnC,IACIwc,EADAruB,EAAS,GAETolF,EAAmB1gF,EAAK2gF,sBACxBC,EAAiB,SAASx9E,GAC1B,OAAOA,EAAKqmD,YAAct8C,EAAOs8C,WAErC,GAAIi3B,EAAiBG,QAAS,CAC1B,IAAI5/D,EAAcjhB,EAAK8gF,SAASnmF,QAAQwS,GACpC8T,GAAe,IACf3lB,EAAS,CAAC,WAAW4S,OAAO+S,EAAa,WAE1C,CACH0I,EAAU3pB,EAAK8gF,SAASrmF,OAAOmmF,GAC/B,MAAOj3D,EAAQ1zB,SAAW,IAAM0zB,EAAQhvB,QAAQwS,GAC5C7R,EAAOuyB,QAAQ,WAAW3f,OAAOyb,EAAQhvB,QAAQwS,GAAS,MAC1DA,EAASuzE,EAAiBL,oBAAoBlzE,EAAO1P,OACrDksB,EAAUxc,EAASnN,EAAK8gF,SAASrmF,OAAOmmF,GAAkB,GAGlE,OAAOtlF,EAAOjD,KAAK,MAEnB0oF,EAAmB,SAASA,EAAiB/gF,EAAMq8E,GACnD,IAAIpU,EAAU,EACVt+C,EAAU3pB,EAAKk7E,wBAAwBmB,GAAU,GASrD,OARA,eAAK1yD,GAAS,SAAUvuB,EAAG+R,GACnBA,EAAOo8C,QACPp8C,EAAO86D,QAAU96D,EAAO86D,SAAW8Y,EAAiB/gF,EAAMmN,EAAO1P,OACjEwqE,GAAW96D,EAAO86D,SAAW,GAE7BA,GAAW,KAGZA,GAEP+Y,EAAmB,SAAS9iF,GAC5B,IAAIuiB,EAAW,eAAKviB,GAIpB,MAHI,WAAauiB,GAAY,YAAcA,GAAY,WAAaA,GAAY,SAAWA,GAAY,WAAaA,IAChHA,OAAW,GAERA,GAEPwgE,EAAyB,SAASxgE,EAAUviB,GAC5C,OAAQuiB,GACJ,IAAK,OACL,IAAK,WACD,OAAO,GAAkB48D,2BAA2Bn/E,GACxD,IAAK,SACD,GAAI,eAASA,GACT,MAAO,SAEX,GAAI,eAAUA,GACV,OAAO,OAInBgjF,EAAoB,SAAS7zE,EAASoT,GACjCpT,EAAQ8zE,mBACL,OAAc3gE,WAAWC,KACzBpT,EAAQ8zE,iBAAmB,SAASjjF,GAChC,OAAO,GAAkB4/E,gBAAgB5/E,IAE7CmP,EAAQ+zE,eAAiB,SAASljF,GAC9B,OAAO,eAASA,GAASA,EAAQ,GAAkB8/E,cAAc9/E,EAAO7B,KAAK4hF,uBAGjF,WAAax9D,IACbpT,EAAQ8zE,iBAAmB,SAASjjF,GAChC,IAAIo/E,EAAc1d,WAAW1hE,GAC7B,OAAO2B,MAAMy9E,GAAep/E,EAAQo/E,GAExCjwE,EAAQ+zE,eAAiB,SAASljF,EAAOyjB,GACrC,MAAI,WAAaA,EACNzjB,EAEJ,eAAUA,IAAU,WAAa7B,KAAK4hF,oBAAsB//E,EAAM4f,WAAa5f,MAKlGmjF,EAAkC,SAASphF,GAC3C,OAAI,IAASA,EAAE/B,MACJ7B,KAAK0pB,UAAY,QACjB,IAAU9lB,EAAE/B,MACZ7B,KAAK2pB,WAAa,QAElB/lB,EAAEuhB,WAAa,IAG1B8/D,EAA6B,SAAS7gE,GACtC,GAAI,YAAcA,EACd,OAAO4gE,GAGXE,EAAsB,SAASvhF,GAC/B,eAAKA,EAAK8gF,UAAU,SAAUrjF,EAAO0P,GACjCA,EAAO1P,MAAQA,KAEnB,eAAKuC,EAAK8gF,UAAU,SAAUrjF,EAAO0P,GAC7B,eAASA,EAAOs8C,aAChBt8C,EAAOs8C,UAAYt8C,EAAOs8C,UAAUhsD,UAG5C,eAAKuC,EAAKwhF,iBAAiB,SAAU/jF,EAAO0P,GACxCA,EAAO1P,QAAUA,EAAQ,OAG7BgkF,EAA2B,SAASzhF,EAAM0hF,GAC1C,gBAAiB1hF,EAAK8gF,SAAU,aAAcY,GAAe,SAAUv0E,GACnE,IAAIg8C,EAAUh8C,EAAOg8C,QAErB,cADOh8C,EAAOg8C,QACPA,MAGXw4B,EAA+B,SAAS3hF,EAAMkqD,EAAcyM,GAC5D,IAEIxpD,EAFA+4D,EAAW,eAAShc,GAAgBA,EAAagc,SAAW,KAC5Dv8C,EAAU,UAAYgtC,EAAW32D,EAAK4hF,kBAAoB,kBAAoBjrB,EAAW32D,EAAK6hF,oBAAsB7hF,EAAK+oE,kBAAkB7C,GAO/I,OALAhc,EAAe,eAASA,GAAgBA,EAAajpC,YAAcipC,EACnE/8C,EAASwc,EAAQugC,GACb/8C,GAAUA,EAAOrS,OAAS4jF,KAC1BvxE,EAASnN,EAAK8gF,SAASrmF,OAAOiwE,GAAOv9D,EAAOrS,OAAS4vE,EAAI5vE,MAAM,IAAMqS,GAElEA,GAAU,eAAUA,EAAO1P,OAAS0P,EAAO1P,OAAS,GAG/D,SAASyiF,EAAqB/yE,EAAQ20E,GAClC,OAAO30E,GAAU20E,GAAmBA,EAAgB7jF,QAAUkP,EAAOlP,MAAQkP,EAAOM,aAAeq0E,EAAgBr0E,YAAcN,EAAOM,WAAaN,EAAOlP,MAEhK,IAAI8jF,EAAiB,SAAS/hF,GAC1B,IAOImN,EACA60E,EACAlqF,EATAmqF,EAAmBjiF,EAAKigF,kBACxBiC,EAA0BliF,EAAKmiF,0BAA4B,GAC3Dx4D,EAAU3pB,EAAK8gF,SACfsB,EAAkB,GAClBC,EAAgB,GAChBC,GAAsB,EACtBC,EAAyB,GAK7B,SAASC,EAAiBr1E,EAAQ20E,GAC9B,GAAKA,EAGL,IAAK,IAAIrkF,EAAQ,EAAGA,EAAQ2gF,GAAuBnoF,OAAQwH,IAAS,CAChE,IAAIglF,EAAYrE,GAAuB3gF,GACnCykF,EAAwB7iF,SAASojF,KAGjC,aAAeA,EACft1E,EAAOs1E,GAAat1E,EAAOs1E,IAAcX,EAAgBW,GAClDtE,GAA4B9+E,SAASojF,GACxCA,KAAaX,IACb30E,EAAOs1E,GAAaX,EAAgBW,KAGpC,4BAA8BA,GAAaX,EAAgBW,KAC3Dt1E,EAAOu1E,+BAAiCv1E,EAAOs1E,IAAc,MAEjEt1E,EAAOs1E,GAAaX,EAAgBW,MAKhD,SAASE,EAAoBV,EAAkB90E,GAG3C,IAFA,IAAIhiB,EAAKgiB,EAAOlP,MAAQkP,EAAOM,UAC3BmQ,EAAQwkE,EAAgBj3F,IAAO,EAC1B2Y,EAAI,EAAGA,EAAIm+E,EAAiBhsF,OAAQ6N,IACzC,GAAIo8E,EAAqB/yE,EAAQ80E,EAAiBn+E,IAAK,CACnD,IAAI8Z,EAKA,OAFAwkE,EAAgBj3F,GAAMi3F,EAAgBj3F,IAAO,EAC7Ci3F,EAAgBj3F,KACT2Y,EAJP8Z,IAQZ,OAAQ,EAEZ,GAAIqkE,EAAkB,CAClB,IAAKnqF,EAAI,EAAGA,EAAI6xB,EAAQ1zB,OAAQ6B,IAC5BkqF,EAAuBW,EAAoBV,EAAkBt4D,EAAQ7xB,IACrEwqF,EAAsBA,GAAuBN,GAAwB,EACrEO,EAAuBjjF,KAAK0iF,GAEhC,IAAKlqF,EAAI,EAAGA,EAAI6xB,EAAQ1zB,OAAQ6B,IAC5BqV,EAASwc,EAAQ7xB,GACjBkqF,EAAuBO,EAAuBzqF,IAC1CkI,EAAK4iF,eAAiBN,IACtBE,EAAiBr1E,EAAQ80E,EAAiBD,IAE1CA,GAAwB,GAAK,eAAUC,EAAiBD,GAAsBa,cAC9ER,EAAcL,GAAwB70E,EAEtCk1E,EAAc/iF,KAAK6N,GAG3B,IAAI21E,GAAgB,EACpB,IAAKhrF,EAAI,EAAGA,EAAImqF,EAAiBhsF,OAAQ6B,IAAK,CAC1C,IAAIirF,EAAkBd,EAAiBnqF,GACnCirF,EAAgBC,OAASL,EAAoBh5D,EAASo5D,GAAmB,IACzE51E,EAASmyE,EAAat/E,EAAM+iF,EAAgBC,OAC5CR,EAAiBr1E,EAAQ41E,GACzBV,EAAc/iF,KAAK6N,GACf41E,EAAgBC,MAAMr5D,UACtBm5D,GAAgB,IAIxBA,IACAvB,EAAoBvhF,GACpBqiF,EAAgBtC,EAAyB//E,EAAMqiF,IAEnDY,EAAcjjF,EAAMqiF,KAGxBa,EAAgB,SAASljF,EAAMmN,GAC/Bo0E,EAAoBvhF,GACpByhF,EAAyBzhF,EAAMmN,GAC7B,SAASnN,EAAM0hF,GACb,eAAK1hF,EAAK8gF,UAAU,SAAUrjF,EAAO0P,GAC7B,eAAUA,EAAO48C,aAAeo5B,EAAiBh2E,EAAO68C,mBACjD78C,EAAO48C,aAGtB,gBAAiB/pD,EAAK8gF,SAAU,YAAaY,GAAe,SAAUv0E,GAClE,OAAQ,eAAUA,EAAOi8C,aAAe+5B,EAAiBh2E,EAAO68C,cAPtE,CASAhqD,EAAMmN,GACRi2E,EAAsBpjF,GACpB,SAASA,EAAM0hF,GAMb,IALA,IAAIv0E,EACA7R,EAAS,GACTolF,EAAmB1gF,EAAK2gF,sBACxB0C,EAAgB,GAChB15D,EAAU3pB,EAAK8gF,SAASrmF,OAAO0S,IAAWA,EAAO6c,SAC5ClyB,EAAI,EAAGA,EAAI6xB,EAAQ1zB,OAAQ6B,IAAK,CACrCqV,EAASwc,EAAQ7xB,GACjB,IAAIwrF,EAAoBlD,EAAqBtoF,EAAG4oF,EAAiBL,qBAC7DiD,EAAkBrtF,OAClBotF,EAAc/jF,KAAK6N,GAEnB7R,EAAOgE,KAAK6N,GAGpB,gBAAiBk2E,EAAe,eAAgB3B,GAChD,gBAAiBpmF,EAAQ,eAAgBomF,GAhB3C,CAiBA1hF,EAAMmN,IAERo2E,EAAoB,SAASvjF,GAC7BA,EAAKujF,qBAGT,SAASN,EAAcjjF,EAAM2pB,GACzB3pB,EAAK8gF,SAAWn3D,EAChB45D,EAAkBvjF,GAClBA,EAAKwjF,wBAET,IAAIC,EAAsB,SAASzjF,EAAMqtE,EAAY3mB,EAAYzlC,GAC7D,IAAIyiE,EAAgB1jF,EAAK2jF,gBAAkB,CACvC3T,YAAa,CACT/5E,OAAQ,GAEZy3E,YAAa,CACTz3E,OAAQ,GAEZgrB,YAAaA,GAEjBylC,EAAaA,GAAc,MAC3BA,EAAaA,EAAWxuD,MAAM,KAAK,GACnC,IAAIw1E,EAAcgW,EAAchW,YAC5BL,IAAeK,EAAYL,KAC3BK,EAAYL,IAAc,EAC1BK,EAAYz3E,UAEhB,IAAI+5E,EAAc0T,EAAc1T,YAC5BtpB,IAAespB,EAAYtpB,KAC3BspB,EAAYtpB,IAAc,EAC1BspB,EAAY/5E,eAEZ,IAAWgrB,GAAeA,IAAgByiE,EAAcziE,oBACjDyiE,EAAcziE,YAEzBjhB,EAAK2jF,eAAiBD,EACtBH,EAAkBvjF,IAElB4jF,EAAqB,SAAS5jF,GAC9B,IAkBIqN,EAlBAw2E,EAAoB7jF,EAAKokB,OAAO,qBAChCs/D,EAAgB1jF,EAAK2jF,eACrBG,EAAoB,CAAC,YAAa,SAAU,WAAY,WACxD9jF,EAAK+jF,kBAAoB/jF,EAAK67D,kBAAoB6nB,IAC9CG,IACA7jF,EAAK67D,mBACLgoB,EAAkB,OAAA/sF,EAAA,WAAO,CACrBsS,UAAWpJ,EAAKoJ,WACjBs6E,IACH1jF,EAAK67D,oBAET77D,EAAK2jF,oBAAiB,EAClBt2E,EAAUq2E,EAAc1T,YAAa3iE,GAAWy2E,EAAkB/5D,KAAK9rB,GAAQoP,EAAQpP,IACvF+B,EAAKgkF,SAELhkF,EAAK4wE,eAAezQ,KAAKujB,KAKjCO,EAA8B,SAASjkF,EAAMmN,EAAQi8C,EAAY86B,GACjE,IAAIC,EAAmBD,GAAkB,EACzC,GAAI96B,GAAc,EACT+6B,IACDh3E,EAAOi3E,cAAgBj3E,EAAO68C,eAE/B,CACH,IAAIq6B,EAAWrkF,EAAKokB,OAAO,gBACvB4lC,EAAY78C,EAAOi3E,cACvB,GAAI,WAAaC,EAAU,CACvB,IAAIC,EAAwBtkF,EAAK8gF,SAAS/2D,KAAK2gD,GAAOA,IAAQv9D,GAAU,eAAUu9D,EAAI3gB,YAClFu6B,IACAt6B,OAAY,GAGpB78C,EAAO68C,UAAYA,IAGvBu6B,EAAoB,SAASvkF,EAAMqN,GACnC,IAAInP,EAAQmP,EAAQnP,MAChBwoD,EAAar5C,EAAQq5C,WACrB89B,EAAYn3E,EAAQm3E,UACpBC,EAAiBp3E,EAAQo3E,eACzBC,EAAiB,GAAGx2E,OAAOu2E,EAAgB,KAAKv2E,OAAOw4C,GACtD23B,GAA2B33B,IAAe1mD,EAAK2kF,+BAAiCD,IACjF1kF,EAAK2kF,6BAA+BD,EACpC1kF,EAAKoJ,UAAUw7E,qBAAqBF,EAAgBxmF,EAAOsmF,GAC3DxkF,EAAK2kF,8BAA+B,IAGxCE,EAAmB,SAAS7kF,EAAMmN,EAAQu5C,EAAYxoD,EAAO4mF,GAC7D,IAEIn7D,EACA0jD,EACA0X,EAJAC,EAAe,gBAAct+B,GAC7BzlC,EAAc9T,EAAO1P,MAIzB,GAAI,IAAMlB,UAAUtG,OAChB,OAAO+uF,EAAa73E,EAAQ,CACxB83E,eAAe,IAGvB,IAAIT,EAAYQ,EAAa73E,EAAQ,CACjC83E,eAAe,IAEnB,IAAK,eAAaT,EAAWtmF,GAAQ,CAC7B,eAAiBwoD,GAAc,wBAA0BA,GACzD2mB,EAAa,WACb4W,EAA4BjkF,EAAMmN,EAAQjP,EAAOsmF,IAEjDnX,EADO,cAAgB3mB,GAAc,cAAgBA,GAAc,uBAAyBA,EAC/E,UAEA,UAEjB,IAAIw+B,EAAe,gBAAcx+B,GACjCw+B,EAAa/3E,EAAQjP,EAAO,CACxB+mF,eAAe,IAEnB,IAAIR,EAAiBhE,EAAkBzgF,EAAMmN,GACzCgyE,EAAqBz4B,KACrBw8B,EAAcljF,EAAMmN,GACpBjP,EAAQ8mF,EAAa73E,IAErB,SAAWu5C,GAAc,iBAAmBA,GAC5C1mD,EAAKmlF,gBAEJ,eAAUX,IAAe,eAAUtmF,IAAU,IAAMwoD,EAAW/rD,QAAQ,YACvEmqF,GAAe,GAEdA,EAiBDvB,EAAkBvjF,IAhBbo+E,GAAuB/+E,SAASqnD,IAAe,iBAAmBA,IACnE/8B,EAAU3pB,EAAKokB,OAAO,WACtB2gE,EAAgB/kF,EAAKolF,gBAAgBX,EAAgB96D,GACjD,eAASo7D,KACTA,EAAgBp7D,EAAQ1I,GAAe,CACnCxT,UAAWs3E,IAGfA,GAAiB7E,EAAqB6E,EAAe53E,IACrD+3E,EAAaH,EAAe7mF,EAAO,CAC/B+mF,eAAe,KAI3BxB,EAAoBzjF,EAAMqtE,EAAY3mB,EAAYzlC,IAItDwjE,GAAkBF,EAAkBvkF,EAAM,CACtCykF,eAAgBA,EAChB/9B,WAAYA,EACZxoD,MAAOA,EACPsmF,UAAWA,MAKvB,SAASrB,EAAiBn5B,GACtB,MAAO,QAAUA,GAAa,SAAWA,EAE7C,IAAIq7B,EAAsB,SAAS7iF,EAAMtE,GACrC,IAAIonF,EAAOjpF,KAAKoR,UAAUvV,MAAM,KAC5BqtF,EAAWD,EAAKrvF,OAAS,EACzBoG,KAAK+kF,iBACLljF,EAAQ7B,KAAK+kF,eAAeljF,IAEhC,IAAK,IAAIpG,EAAI,EAAGA,EAAIytF,EAAUztF,IAAK,CAC/B,IAAImG,EAAOqnF,EAAKxtF,GAChB0K,EAAOA,EAAKvE,GAAQuE,EAAKvE,IAAS,GAEtCuE,EAAK8iF,EAAKC,IAAarnF,GAEvBsnF,EAAwB,CAACxlF,EAAMylF,MAAoBzlF,EAAK8gF,SAASrmF,OAAO0S,GAAUA,EAAOrS,OAAS2qF,EAAc3qF,MAAM7E,OACtHyvF,EAAmB,SAAS1lF,EAAMmN,GAClC,IAAIua,EAAa1nB,EAAKokB,OAAO,cAC7B,OAAIjX,EAAO6c,UAAYw7D,EAAsBxlF,EAAMmN,KAAYA,EAAO67C,cAC3DthC,EAAa,QAAU,OAE3Bva,EAAO67C,eAEd28B,EAAuB,SAASh8D,EAASi8D,EAAe9qF,EAAMmmB,GAC9D,IAAI4kE,EACA1L,EAAW99E,KAAK09E,cAChBG,EAAUvwD,EAAQ1I,IAAgB0I,EAAQ1I,GAAai5D,QACvD4L,EAAsBF,EAAcnrF,OAAO0S,GAAUA,EAAOrS,OAASA,GAgBzE,OAfA6uB,EAAQpsB,QAAQ,CAAC4P,EAAQ1P,KACjB0P,EAAOrS,OAASA,IAChB+qF,EAAoBpoF,EACpBy8E,EAAUvwD,EAAQlsB,EAAQ,GAAKksB,EAAQlsB,EAAQ,GAAGy8E,QAAUC,KAGhED,EAAU,IACV4L,EAAsB,eAAIA,GAAqB,SAAUC,GACrD,OAAO,OAAAjvF,EAAA,WAAO,GAAIivF,EAAc,CAC5B7L,QAASA,QAIrB4L,EAAoBj4D,QAAQ1yB,MAAM2qF,EAAqB,eAAUD,GAAqB,CAACA,EAAmB,GAAK,CAAC5kE,EAAa,IAC7H0I,EAAQimD,OAAOz0E,MAAMwuB,EAASm8D,GACvB5L,GAAW,GAElB8L,EAAiB,SAAStuF,EAAQuuF,GAClC,IAAI1tF,EAAMb,EAASA,EAAOomB,WAAa,IACvC,MAAOvlB,EAAItC,OAASgwF,EAChB1tF,EAAM,IAAMA,EAEhB,OAAOA,GAEP2tF,EAAe,CAAClmF,EAAM2pB,EAASw8D,EAAgBC,KAa/C,IAZA,IAAIj5E,EACAk5E,EACA/qF,EAASquB,EAAQjK,QAAQvnB,IAAIgV,GAAU,OAAArW,EAAA,WAAO,GAAIqW,IAClDm5E,EAAiBtmF,EAAKumF,kBACtBC,EAAwBL,EAAezmE,QAAQvnB,IAAIgV,GAAU,OAAArW,EAAA,WAAO,CACpEmzB,MAAOq8D,GACRn5E,IACCs5E,EAAwBt5E,GAAUg5E,EAAe/yD,OAAO,CAAC93B,EAAQmqF,EAAehoF,KAChF,IAAIipF,EAAaN,GAAgBj5E,EAAOrS,OAAS4jF,GAA4B,SAAWvxE,EAAOrS,KAC/F,OAAO2qF,EAAc3qF,OAAS4rF,GAAcjB,EAAcz7D,UAAY7c,EAAO6c,QAAUvsB,EAAQnC,IAC/F,GACAslF,EAAiB6E,GAAiBA,EAAcz7D,UAAYm8D,EAAeE,GAAoBr8D,QAC1FlyB,EAAI,EAAGA,EAAI6xB,EAAQ1zB,OAAQ6B,IAGhC,GAFAqV,EAASwc,EAAQ7xB,GACjBuuF,EAAqBl5E,IAAWA,EAAOrS,MAAQqS,EAAO6c,SAAWy8D,EAAsBt5E,IAAW,EAC9Fk5E,GAAsB,EACtB,GAAID,EACA9qF,EAAOxD,GAAK,OAAAhB,EAAA,WAAO,CACfmzB,MAAOq8D,GACRH,EAAeE,GAAqBl5E,GACnCA,EAAOrS,OAAS4jF,KAChB8H,EAAwBA,EAAsB/rF,OAAOmmF,QAEtD,CACH,IAAIrB,EAAgB,CAChBr1B,aAAc/8C,EAAO+8C,aACrBzsD,MAAO0P,EAAO1P,MACduqE,SAAU76D,EAAO66D,SACjBhgB,YAAa,IAAM76C,EAAOi8C,WAC1BhB,gBAAiB,IAAMj7C,EAAOi8C,WAC9BA,WAAYj8C,EAAOi8C,YAEvB9tD,EAAOxD,GAAK,OAAAhB,EAAA,WAAO,GAAIqW,EAAQg5E,EAAeE,GAAqBl5E,EAAOrS,OAAS4jF,IAA6Ba,GAO5H,OAHI51D,EAAQ1zB,QAAUmwF,GAAgBI,EAAsBvwF,SACxDqF,EAASA,EAAO4S,OAAOs4E,IAEpBlrF,GAEPqrF,EAAgB,CAAC3mF,EAAMmN,IAAW,eAAUA,EAAO8c,SAAW9c,EAAOrS,KAAOqS,EAAO8c,MAAQjqB,EAAKumF,kBAChGnD,EAAwBpjF,IACxBA,EAAK4mF,uBAAoB,GAEzBC,EAAa,CAACl9D,EAASm9D,KACvB,IACI35E,EADA45E,EAAuB,eAASD,IAAeA,EAAWloE,OAAO,EAAGkoE,EAAWnsF,QAAQ,MAE3F,QAAI,IAAWmsF,EAcf,OAXIC,IACAD,EAAaA,EAAWloE,OAAOmoE,EAAqB9wF,OAAS,IAE7D8wF,EACA55E,EAASwc,EAAQlvB,OAAO0S,GAAU,GAAKA,EAAO45E,KAA0BD,GAAY,GAEpF,CAAC,QAAS,OAAQ,YAAa,WAAW/8D,KAAK28B,IAC3Cv5C,EAASwc,EAAQlvB,OAAO0S,GAAUA,EAAOu5C,KAAgBogC,GAAY,KAC5D35E,IAGVA,GAEX,MAAO,CACH65E,wBAAyB,WACrB,MAAO,CACHlsF,KAAM,SACNkvB,QAAS,SACTpmB,MAAO,OACPyjD,SAAUm3B,GACV12B,cAAc,EACdG,eAAe,EACfK,cAAc,EACdp+B,eAAe,EACfk+B,iBAAiB,EACjBD,aAAa,IAGrB8+B,eAAgB,SAASrhE,GACrB,IAAIshE,EACAniE,EAAQ,GAeZ,OAdIa,GAAcA,EAAWb,QAAQ9uB,OAAS,IAC1CixF,EAAc,OAAc7lE,qBAAqBuE,EAAW7C,SAAS9sB,OACrE8uB,EAAQ,SAASoiE,EAAkBpiE,EAAOmiE,GACtC,IAAKniE,IAAUmiE,EACX,OAAOniE,EAEX,IAAK,IAAIjtB,EAAI,EAAGA,EAAIitB,EAAM9uB,OAAQ6B,IAAK,CACnC,IAAIsvF,EAAaD,EAAkBpiE,EAAMjtB,GAAGitB,OAASA,EAAMjtB,GAAGuvF,eAAgBH,EAAc,GAC5F,GAAIE,GAAcA,EAAWnxF,OACzB,OAAOmxF,GAPX,CAUNxhE,EAAWb,QAASmiE,IAAgB,IAEnCniE,GAEX42C,eAAgB,YACXt/D,KAAKsoF,8BAAgCf,EAAmBvnF,OAE7D+/D,KAAM,SAASkrB,GACX,IAAI39D,EAAUttB,KAAK+nB,OAAO,WAC1B/nB,KAAKmlF,gBAAkBnlF,KAAKmlF,iBAAmB,GAC/CnlF,KAAKykF,SAAWzkF,KAAKykF,UAAY,GACjCzkF,KAAKkrF,wBAA0B59D,EAC3BttB,KAAKkrF,uBACLtE,EAAc5mF,KAAMstB,EAAUo2D,EAAyB1jF,KAAMstB,GAAW,IACxEo4D,EAAe1lF,OAEf4mF,EAAc5mF,KAAMA,KAAK4jF,kBAAoBF,EAAyB1jF,KAAMA,KAAK4jF,mBAAqB5jF,KAAKykF,UAC5G,SAAS9gF,GACR,IAAIqN,EAAUrN,EAAKgnF,0BACnBhnF,EAAKwnF,iBAAiBn6E,GAFvB,CAGDhR,MACEA,KAAKorF,mBACLprF,KAAKqrF,gBAAgBrrF,KAAKwpB,aAAa,EAAMyhE,GAE7CpE,EAAc7mF,MAElBA,KAAK8oF,iBAETnpB,cAAe,WACX,MAAO,CAAC,mBAEZopB,gBAAiB,SAASE,EAAM37D,GAC5B,IAAIxc,EACAw6E,EAAgB,GAoCpB,OAnCArC,EAAK9tF,QAAQ,IAAQ,SAAU4D,EAAG6lB,GAE9B,OADA0mE,EAAcroF,KAAK1B,SAASqjB,IACrB,MAEP0mE,EAAc1xF,SAEVkX,EADAwc,EACSg+D,EAAcv0D,QAAO,SAAUjmB,EAAQ1P,GAC5C,OAAO0P,GAAUA,EAAOwc,SAAWxc,EAAOwc,QAAQlsB,KAClD,CACAksB,QAASA,IAGJ,SAAS3pB,EAAM2nF,GACpB,IAAIrsF,EACAquB,EACA+2D,EAAmB1gF,EAAK2gF,sBACxBC,EAAiB,SAASzzE,GAC1B,IAAIs8C,EAAYnuD,EAASA,EAAOmC,WAAQ,EACxC,OAAO0P,EAAOs8C,YAAcA,GAEhC,GAAIi3B,EAAiBG,QACjBvlF,EAAS0E,EAAK8gF,SAAS6G,EAAc,QAClC,CACHh+D,EAAU3pB,EAAK8gF,SAASrmF,OAAOmmF,GAC/B,IAAK,IAAI9oF,EAAI,EAAGA,EAAI6vF,EAAc1xF,OAAQ6B,IACtCwD,EAASquB,EAAQg+D,EAAc7vF,IAC3BwD,IACAquB,EAAU3pB,EAAK8gF,SAASrmF,OAAOmmF,IAI3C,OAAOtlF,EAnBF,CAoBPe,KAAMsrF,IAGTx6E,GAEX0vD,cAAe,SAAS3hB,GACpB,IAAI0sC,EACJ,OAAQ1sC,EAAKj9C,MACT,IAAK,0BACDi9C,EAAK6hB,SAAU,EACf,MACJ,IAAK,aACG7hB,EAAKh9C,QAAUg9C,EAAK2sC,eAAkBxrF,KAAK+nB,OAAO,YAAgBlpB,MAAM0nB,QAAQs4B,EAAKh9C,QAAWhD,MAAM0nB,QAAQs4B,EAAK2sC,iBACnHxrF,KAAKykF,SAAW,IAEpB,MACJ,IAAK,UACD8G,EAA0BvrF,KAAKsoF,6BAC/BzpC,EAAK6hB,SAAU,EACV1gE,KAAKsoF,+BACFzpC,EAAKj9C,OAASi9C,EAAK4sC,UACnBzrF,KAAK4jF,kBAAoB,KACzB5jF,KAAK8lF,yBAA2B,KAChC9lF,KAAK+/D,SAEL//D,KAAK0zE,qBAAqB70B,GAC1B0sC,GAA0B,IAG9BA,GACAvrF,KAAK0rF,qBAAqB7sC,GAE9B,MACJ,IAAK,uBACL,IAAK,kBACL,IAAK,sBACL,IAAK,wBACL,IAAK,eACL,IAAK,WACL,IAAK,aACL,IAAK,kCACL,IAAK,mBACL,IAAK,sBACL,IAAK,0BACL,IAAK,qBACL,IAAK,iBACL,IAAK,cACDA,EAAK6hB,SAAU,EACf,IAAImlB,EAA0B,gBAAkBhnC,EAAK4sC,UAAY,CAAC,SAClEzrF,KAAK2nF,OAAO9B,GACZ,MACJ,IAAK,aACD7lF,KAAK2nF,SACL,MACJ,QACI3nF,KAAKC,SAAS4+C,KAG1B60B,qBAAsB,SAAS70B,GAC3B,IAAI8sC,EAAoB,GACpB76E,EAAS9Q,KAAK+oF,gBAAgBlqC,EAAK4sC,UACnCG,EAAmB/sC,EAAK4sC,SAAStwF,QAAQ,GAAQ,IACjD2V,IACI86E,EACAD,EAAkBC,GAAoB/sC,EAAKh9C,MAE3C8pF,EAAoB9sC,EAAKh9C,MAE7B7B,KAAKsoF,6BAA+BzpC,EAAK4sC,SACzCzrF,KAAK62E,aAAa/lE,EAAO1P,MAAOuqF,GAChC3rF,KAAKsoF,8BAA+B,IAG5CoD,qBAAsB,SAAS7sC,GAC3B,IAAI9xC,EAAY/M,KAAK+M,UACjB,UAAY8xC,EAAK4sC,SAAStwF,QAAQ,GAAQ,KAAO4R,EAAUyyD,mBAC3DzyD,EAAU21D,gBAAiB,IAGnC1C,cAAe,WACX,MAAO,CAAC,YAAa,eAAgB,eAAgB,cAAe,eAAgB,gBAAiB,oBAAqB,0BAE9HqrB,gBAAiB,SAAS9hE,EAAYsiE,EAAeZ,GACjD,IAAIa,EAAqBviE,GAAcA,EAAWi0D,WAElD,GADAx9E,KAAKwpB,YAAcD,GACdvpB,KAAKorF,oBAAsB,IAAMprF,KAAK+rF,yBAA2BF,GAAiB7rF,KAAK+nB,OAAO,mCAAoC,CACnI,GAAI+jE,EAAoB,CACpB,IAAK9rF,KAAKkrF,sBAAuB,CAC7B,IAAIc,EAAwB,SAASroF,EAAM4lB,GAKvC,IAJA,IACI68D,EADA6F,EAAatoF,EAAKinF,eAAerhE,GAEjC2iE,EAAkB,GAClBjtF,EAAS,GACJxD,EAAI,EAAGA,EAAIwwF,EAAWryF,OAAQ6B,IACnC,GAAIwwF,EAAWxwF,GACX,IAAK2qF,KAAa6F,EAAWxwF,GACpB,eAAWwwF,EAAWxwF,GAAG2qF,MAAe,QAAgBx3D,UAAUq9D,EAAWxwF,GAAG2qF,MACjF8F,EAAgB9F,IAAa,GAK7C,IAAKA,KAAa8F,EACd,GAAI,IAAM9F,EAAU9nF,QAAQ,MAAO,CAC/B,IAAIwS,EAASmyE,EAAat/E,EAAMyiF,GAChCnnF,EAAOgE,KAAK6N,GAGpB,OAAO7R,EApBiB,CAqB1Be,KAAMupB,GACJyiE,EAAsBpyF,SACtBgtF,EAAc5mF,KAAMgsF,GACpBhsF,KAAK+rF,wBAA0B/rF,KAAKykF,SAAS7qF,OAC7C8rF,EAAe1lF,OAGvB,OAAOA,KAAKmsF,cAAc5iE,EAAYsiE,EAAeZ,GAErDjrF,KAAKorF,oBAAqB,EAC1BvE,EAAc7mF,WAEf,GAAI8rF,IAAuB9rF,KAAKosF,uBAAsB,IAASpsF,KAAKmnF,sBAAsB59D,GAG7F,OAFA69D,EAAoBpnF,KAAM,WAC1BunF,EAAmBvnF,OACZ,IAAK,eAAU6jC,SAASvT,WAGvC+7D,MAAO,WACHrsF,KAAKwpB,YAAc,KACnBxpB,KAAKorF,oBAAqB,EAC1BprF,KAAK+rF,6BAA0B,EAC/B/rF,KAAK2nF,UAETT,kBAAmB,WACflnF,KAAKssF,qBAAkB,EACvBtsF,KAAKusF,mBAAgB,EACrBvsF,KAAKwsF,eAAY,EACjBzF,EAAsB/mF,OAE1B2nF,OAAQ,SAAS9B,GACb7lF,KAAK4jF,kBAAoB5jF,KAAKysF,eAC9BzsF,KAAK8lF,yBAA2BD,GAA2B,KAC3D7lF,KAAK+/D,OACD8lB,IACA7lF,KAAK8lF,yBAA2B,OAGxC4B,cAAe,WACX,QAAS1nF,KAAKykF,SAAS7qF,UAAYoG,KAAK+nB,OAAO,YAEnD2kE,oBAAqB,WACjB,OAAO1sF,KAAKorF,oBAEhB7H,kBAAmB,SAASzyE,GACxB,IAAI0xE,IAAyB1xE,IAAWA,EAAOrS,OAASuB,KAAK+nB,OAAO,yBAA2B,GAC3F4kE,EAAkB3sF,KAAK+nB,OAAO,aAAe,GAC7C6kE,EAAoB5sF,KAAK+nB,OAAO,eAAiB,GACrD,OAAO,OAAAttB,EAAA,WAAO,CACVkxD,YAAa3rD,KAAK+nB,OAAO,wBACzB8F,cAAe7tB,KAAK+nB,OAAO,6BAA0B,EACrDgkC,gBAAiB/rD,KAAK+nB,OAAO,yBAC7BolC,SAAUntD,KAAK+nB,OAAO,kBACtBxgB,MAAOvH,KAAK+nB,OAAO,eACnBmkC,gBAAiBygC,EAAgB9zB,cACjCD,gBAAiB+zB,EAAgB/zB,gBACjChN,cAAeghC,EAAkB/yB,qBAAuB+yB,EAAkBjjC,SAAWgjC,EAAgB7zB,oBACtG0pB,IAEPnD,mBAAoB,SAASh1B,GACzB,IAAK,IAAI5uD,EAAI,EAAGA,EAAIuE,KAAKykF,SAAS7qF,OAAQ6B,IACtC,GAAIuE,KAAKykF,SAAShpF,GAAG4uD,GACjB,OAAO,GAInB+hC,sBAAuB,SAASS,GAC5B,IAAIv/D,EAAUttB,KAAKykF,SACnB,IAAKn3D,EAAQ1zB,OACT,OAAO,EAEX,IAAK,IAAI6B,EAAI,EAAGA,EAAI6xB,EAAQ1zB,OAAQ6B,IAChC,IAAK6xB,EAAQ7xB,GAAG2V,WAAakc,EAAQ7xB,GAAGyoB,qBAAuBoJ,EAAQ7xB,GAAGqzB,8BAGrExB,EAAQ7xB,GAAG2oB,UAAYyoE,GAAoBv/D,EAAQ7xB,GAAGqpF,uBAAoB,IAAWx3D,EAAQ7xB,GAAGmmF,qBACjG,OAAO,EAGf,OAAO,GAEXna,WAAY,WACR,OAAOznE,KAAKykF,UAEhBqI,kBAAmB,WACf,OAAO9sF,KAAKynE,aAAa/5C,MAAK,SAAU5c,GACpC,OAAOA,EAAOo8C,WAGtBq4B,gBAAiB,WACb,IAAItmF,EAAS,GAMb,OALA,eAAKe,KAAKykF,UAAU,WACZ,eAAUzkF,KAAK+sD,cACf9tD,EAAOe,KAAK+sD,YAAc/sD,SAG3Bf,GAEX8tF,4BAA6B,WACzB,OAAO,GAEXC,uBAAwB,SAASnjB,GAG7B,OAFA7pE,KAAKssF,gBAAkBtsF,KAAKssF,iBAAmBtsF,KAAKitF,6BACpDpjB,EAAW,eAAUA,GAAYA,EAAW7pE,KAAKssF,gBAAgB1yF,OAAS,EACnEoG,KAAKssF,gBAAgBziB,IAAa,IAE7C6C,kBAAmB,SAAS7C,GACxB,OAAK7pE,KAAK+sF,8BAGH/sF,KAAKgtF,uBAAuBluF,MAAMkB,KAAME,WAFpC,IAIfgtF,gBAAiB,SAASrjB,GAGtB,OAFA7pE,KAAKusF,cAAgBvsF,KAAKusF,eAAiBvsF,KAAKmtF,uBAChDtjB,EAAW,eAAUA,GAAYA,EAAW7pE,KAAKusF,cAAc3yF,OAAS,EACjEoG,KAAKusF,cAAc1iB,IAAa,IAE3CujB,oBAAqB,WACjB,OAAOptF,KAAKynE,aAAarpE,OAAO2I,IAASA,EAAKqK,WAAarK,EAAKnF,QAAUmF,EAAKO,gBAAkBP,EAAK8kD,uBAAuB/vD,IAAIiL,IAC7H,IAAIC,EAAQ,OAAAvM,EAAA,YAAO,EAAM,GAAIsM,GAK7B,OAJK,eAAUC,EAAMoK,aACjBpK,EAAMoK,UAAYpK,EAAMpF,MAE5BoF,EAAMwlD,iBAAmBzlD,EAAKylD,mBAAqBzlD,EAAKi8E,wBAA0Bh8E,EAAMwlD,iBAAmB,KACpGxlD,KAGfwrE,qBAAsB,WAClB,OAAO,GAEX2a,qBAAsB,WAClB,IAOIE,EACAC,EACAC,EATAtuF,EAAS,GACT6+E,EAAW99E,KAAK09E,cAChBuM,EAAiBjqF,KAAKkqF,kBACtBsD,EAAoB,CACpB7/D,QAAS,eAET8/D,EAAqB,EAIzB,GAAIxD,EACA,IAAK,IAAIxuF,EAAI,EAAGA,GAAKqiF,EAAUriF,IAAK,CAChC4xF,EAAsB,EACtBE,EAAoB,KACpBD,EAAyB,KAEzB,IADA,IAAI9gB,EAAiBxsE,KAAK0sE,kBAAkBjxE,GAAG,GACtCgM,EAAI,EAAGA,EAAI+kE,EAAe5yE,OAAQ6N,IAAK,CAC5C,IAAIimF,EAAalhB,EAAe/kE,EAAI,GAChCqJ,EAAS07D,EAAe/kE,GACvBqJ,EAAO8c,MAYD8/D,GAAcA,EAAW9/D,OAASy7D,EAAiBrpF,KAAM0tF,KAAgBrE,EAAiBrpF,KAAM8Q,GAClG,eAAUw8E,KACXA,EAAyB7lF,GAG7B8lF,EAAoBz8E,EAAO67C,eAhBvB,IAAMlxD,IACFqV,EAAOo8C,QAAUp8C,EAAO86D,QACxB6hB,GAAsB38E,EAAO86D,QAE7B6hB,KAGRJ,IACK,eAAUC,KACXA,EAAyB7lF,IAUrC,GAAI,IAAMhM,IAAM,IAAM4xF,GAAuBA,GAAuB7gB,EAAe5yE,QAC/E,MAAO,GAEN,eAAU0zF,KACXA,EAAyB,UAAYC,EAAoB,EAAI/gB,EAAe5yE,QAEhFqF,EAAOxD,GAAK+wE,EAAenpD,MAAM,GAC5BmqE,EAAkB5hB,UACnB4hB,EAAkB5hB,QAAU6hB,GAEhCxuF,EAAOxD,GAAG83E,OAAO+Z,EAAwBD,EAAqBG,GAGtE,OAAOvuF,EAAOnD,IAAIwxB,GAAWA,EAAQxxB,IAAIgV,IACrC,IAAI68E,EAAY,eAAS,GAAI78E,GAI7B,OAHI68E,EAAUhiB,WACVgiB,EAAUhiB,UAAY,UAEnBgiB,MAGfzD,gBAAiB,WACb,IAAID,EAAiBjqF,KAAK+nB,OAAO,wBAOjC,OANCkiE,GAAkB,eAAKjqF,KAAKykF,UAAU,SAAU1lF,EAAG+R,GAChD,GAAIA,EAAO8c,MAEP,OADAq8D,GAAiB,GACV,KAGRA,GAEX2D,sBAAuB,WACnB,OAAO5tF,KAAKulF,mBAEhBsI,iBAAkB,WACd,IACInE,EADAH,EAAgBvpF,KAAK4tF,wBAErBE,EAAmBvE,EAAcnrF,OAAO0S,GAAU,IAAMA,EAAOi8C,YAAY,GAC3EghC,EAA0BD,GAAoBA,EAAiBlgE,MAC/Dq8D,EAAiBjqF,KAAKkqF,kBACtB7+D,EAAarrB,KAAK+nB,OAAO,cAe7B,OAdIwhE,EAAc3vF,SACd8vF,EAAe1pF,KAAK62E,aAAa,mBAErC0S,EAAgB,eAAIA,EAAez4E,GAAU,OAAArW,EAAA,WAAO,GAAIqW,EAAQ,CAC5D+6D,aAAc,KACd1e,SAAU,KACV/lD,aAAe,eAAU0J,EAAOi8C,YAAoC,KAAtBj8C,EAAO1J,aACrD4lD,mBAAoB,KACpBp/B,SAAQ,eAAU9c,EAAOi8C,cAAgBghC,IAA0B9D,EACnEt9B,cAAethC,EAAa,QAAU,QACvCq+D,EAAc,CACbtoF,MAAO0P,EAAO1P,MACd3C,KAAMqS,EAAOrS,MAAQ4jF,MAElBkH,GAEXjF,oBAAqB,WACjB,IAAKtkF,KAAKuqF,kBAAmB,CACzB,IAAIj9D,EAAUttB,KAAKykF,SACfP,EAAwB,GACxBF,EAAsB,GACtBQ,GAAU,EACdl3D,EAAQpsB,SAAQ,SAAU4P,GACtB,IAAIs8C,EAAYt8C,EAAOs8C,UACnB4gC,EAAc,eAAS5gC,GAAaA,EAAUhsD,MAAQgsD,EACtDl/B,EAASZ,EAAQ0gE,GACjBl9E,EAAOgzE,aACPU,GAAU,GAEV1zE,EAAO86D,UACP96D,EAAO86D,aAAU,GAEjB96D,EAAO+sE,UACP/sE,EAAO+sE,aAAU,GAEjB3vD,EACA81D,EAAoBlzE,EAAO1P,OAAS8sB,EAEpC8/D,GAAe,EAEnB9J,EAAsB8J,GAAe9J,EAAsB8J,IAAgB,GAC3E9J,EAAsB8J,GAAa/qF,KAAK6N,MAE5C9Q,KAAKuqF,kBAAoB,CACrB/F,QAASA,EACTN,sBAAuBA,EACvBF,oBAAqBA,GAG7B,OAAOhkF,KAAKuqF,mBAEhB0D,iBAAkB,SAASn9E,GACvB,OAAOA,EAAO64C,SAAW3pD,KAAKkuF,sBAAsBp9E,EAAO1P,QAE/D6rF,2BAA4B,WACxB,IACIxxF,EAQA0yF,EATAxqF,EAAO3D,KAEPf,EAAS,GACTmvF,EAAsB,EACtBC,EAAuB,EACvBvQ,EAAWn6E,EAAK+5E,cAChB4Q,EAAyB,GACzBC,EAAyB,GACzBC,EAAyB,EAEzBnjE,EAAa1nB,EAAKokB,OAAO,cACzBs8D,EAAmB1gF,EAAK2gF,sBACxBiF,EAAgBM,EAAalmF,EAAMA,EAAKkqF,mBAAoBlqF,EAAK8gF,UACjEn3D,EAAUu8D,EAAalmF,EAAMA,EAAK8gF,SAAU9gF,EAAKwhF,iBAAiB,GAClEsJ,EAAoB,SAASpzF,GAC7B,IAAII,EACJ,IAAKA,EAAI,EAAGJ,EAAS,EAAGI,IACpBJ,GAAU,GAEd,OAAOI,EALa,CAMtB6xB,EAAQ1zB,QAqBV,IApBE,SAAS+J,EAAM2pB,EAAS+2D,GAEtB,IADA,IAAIxG,EACKpiF,EAAI,EAAGA,EAAI6xB,EAAQ1zB,OAAQ6B,IAAK,CACrC,IAAIqV,EAASwc,EAAQ7xB,IACjBqV,EAAO64C,SAAW74C,EAAO6c,WACrB7c,EAAOo8C,SACPp8C,EAAO86D,QAAU96D,EAAO86D,SAAW8Y,EAAiB/gF,EAAMmN,EAAO1P,QAEhE0P,EAAOo8C,QAAWp8C,EAAO86D,UAC1BiS,EAAUl6E,EAAK+5E,cACV5sE,EAAO6c,SAAa,eAAU7c,EAAOi8C,cAAej8C,EAAO28C,kBAC5DowB,GAAWkG,EAAqBjzE,EAAO1P,MAAOijF,EAAiBL,qBAAqBpqF,QAEpFikF,EAAU,IACV/sE,EAAO+sE,QAAUA,MAdnC,CAmBAl6E,EAAM2pB,EAAS+2D,GACZ5oF,EAAI,EAAGA,EAAIqiF,EAAUriF,IACtBwD,EAAOxD,GAAK,GACZ8yF,EAAuB9yF,GAAK,CAAC,IAC7B6yF,EAAuB7yF,GAAK,CAAC,GAAI,GAAI,IA8EzC,OA5EA,eAAK6xB,GAAS,WACV,IACIohE,EADA7gC,EAAe7tD,KAAK6tD,aAEpBo5B,EAAoBlD,EAAqB/jF,KAAKoB,MAAOijF,EAAiBL,qBACtEr6B,EAAUhmD,EAAKsqF,iBAAiBjuF,MACpC,GAAI2pD,KAAa,eAAU3pD,KAAK+sD,aAAe/sD,KAAKytD,iBAAkB,CAClE,IAAIoc,EAAWod,EAAkBrtF,OAqBjC,GApBIi0D,EAAe,GACfA,GAAgBA,EAChB6gC,EAAiBH,EAAuB1kB,KAExC7pE,KAAK4tB,MAAQq5D,EAAkBrtF,OAASqtF,EAAkB,GAAGr5D,MAAQ5tB,KAAK4tB,MAC1E5tB,KAAK2sD,cAAgBs6B,EAAkBrtF,OAASqtF,EAAkB,GAAGt6B,cAAgB3sD,KAAK2sD,cACtF3sD,KAAK4tB,OACLugE,EAAe,UAAYnuF,KAAK2sD,eAC5BthC,GAAgBrrB,KAAK2tB,UAAWw7D,EAAsBxlF,EAAM3D,QAC5DmuF,GAAgBA,GAGhBO,EADAP,EACiBG,EAAuBzkB,GAAU,GAEjCykB,EAAuBzkB,GAAU,IAGtD6kB,EAAiBJ,EAAuBzkB,GAAU,IAGtDod,EAAkBrtF,OAElB,IADAi0D,EAAe87B,EAAe97B,EAAc4gC,GACvChzF,EAAIwrF,EAAkBrtF,OAAS,EAAG6B,GAAK,EAAGA,IAC3CoyD,EAAe87B,EAAe1C,EAAkBxrF,GAAGoyD,aAAc4gC,GAAqB5gC,EAG9F6gC,EAAe7gC,GAAgB6gC,EAAe7gC,IAAiB,GAC/D6gC,EAAe7gC,GAAc5qD,KAAKjD,MAClCwuF,QAGR,eAAKvvF,GAAQ,SAAU4qE,GACnB,gBAAU0kB,EAAuB1kB,IAAW,SAAU9qE,EAAGuuB,GACrDruB,EAAO4qE,GAAUr4C,QAAQ1yB,MAAMG,EAAO4qE,GAAWv8C,MAErD,IAAIqhE,EAA2B1vF,EAAO4qE,GAAUjwE,OAChD,eAAK00F,EAAuBzkB,IAAW,SAAUzoE,EAAOwtF,GACpD,gBAAUA,GAAiB,SAAU7vF,EAAG8vF,GACpC5vF,EAAO4qE,GAAU5mE,KAAKnE,MAAMG,EAAO4qE,GAAWglB,SAGlDR,EAAuBxkB,EAAW,IAClCwkB,GAAwB/E,EAAqB9jE,KAAK7hB,EAAM1E,EAAO4qE,GAAW0f,EAAe,eAAgBoF,IAEzGP,EAAsBvkB,EAAW,IACjCukB,GAAuB9E,EAAqB9jE,KAAK7hB,EAAM1E,EAAO4qE,GAAW0f,EAAelH,GAA2BsM,OAG3H1vF,EAAOgE,KAAK,SAAS6rF,EAAexhE,EAASu8C,EAAUklB,GACnD,IAAI9vF,EAAS,GAab,OAZA4qE,EAAWA,GAAY,EACvBv8C,EAAQu8C,IAAa,eAAKv8C,EAAQu8C,IAAW,SAAU9qE,EAAG+R,GAClDA,EAAOs8C,YAAc2hC,GAAgBj+E,EAAOrS,OAAS4jF,KAChDvxE,EAAOo8C,QAAWp8C,EAAO86D,QAK1B3sE,EAAOgE,KAAKnE,MAAMG,EAAQ6vF,EAAexhE,EAASu8C,EAAW,EAAG/4D,EAAO1P,UAJlE0P,EAAO6c,SAAWk8C,EAAW,IAC9B5qE,EAAOgE,KAAK6N,OAOrB7R,EAdC,CAeVA,KACGuvF,GAA0B7qF,EAAK8gF,SAAS7qF,QACzCqF,EAAO6+E,GAAU76E,KAAK,CAClB0qB,QAAS,UAGV1uB,GAEX+vF,oBAAqB,SAAS1hE,EAASsxD,GACnC,IAEIqQ,EAFAtrF,EAAO3D,KACPf,EAAS,GAuBb,OArBAquB,EAAUA,GAAW3pB,EAAK8gF,SAC1B,eAAKn3D,GAAS,SAAUvuB,EAAG+R,GACvB,GAAIA,EAAOs8C,YAAcwxB,EAGzB,OAAI9tE,EAAOo8C,QAIH+hC,EAHCn+E,EAAO64C,QAGchmD,EAAKqrF,oBAAoBrrF,EAAKk7E,wBAAwB/tE,EAAO1P,OAAQ0P,EAAO1P,OAF5EuC,EAAKk7E,wBAAwB/tE,EAAO1P,YAI1D6tF,EAAoBr1F,SACpBqF,EAAOgE,KAAK6N,GACZ7R,EAASA,EAAO4S,OAAOo9E,WAI1Bn+E,EAAO64C,SACR1qD,EAAOgE,KAAK6N,OAGb7R,GAEXumF,kBAAmB,SAAS0J,GACxB,IAAI5hE,EAAU4hE,EAAgBlvF,KAAKynE,aAAeznE,KAAKgvF,sBACnDG,EAAuB7hE,EAAQlvB,OAAO0S,GAAUA,EAAO08C,qBACvDG,EAAY3tD,KAAK+nB,OAAO,2BAC5B,MAAO,EAAEuF,EAASqgC,KACd,GAAI,QAAUA,GAAa,SAAWA,EAClC,OAAOrgC,EAEX,IAAIvxB,EAAO,QAAU4xD,EAAY,GAAK,EAMtC,OALArgC,EAAQxrB,MAAK,SAAUstF,EAASC,GAC5B,IAAIC,EAAWF,EAAQloF,SAAW,GAC9BqoF,EAAWF,EAAQnoF,SAAW,GAClC,OAAOnL,EAAOuzF,EAASE,cAAcD,MAElCjiE,GAVJ,CAWJ6hE,EAAsBxhC,IAE7B8hC,gBAAiB,SAASC,EAAkBC,EAAgB3Q,EAAgB4Q,GACxE,IAAIhrE,EAAc0gE,EAA6BtlF,KAAM0vF,EAAkB1Q,GACnE6Q,EAAe7vF,KAAKykF,SAAS7/D,GACjC,SAAIirE,KAAiBA,EAAa9jC,iBAAmB8jC,EAAajkC,eAAiBikC,EAAa/jC,gBACxFkzB,IAAmB4Q,EACf,kBAAoB5Q,IAGxB0Q,EAAmB,eAASA,GAAoBA,EAAiB9qE,YAAc8qE,EAC/EC,EAAiB,eAASA,GAAkBA,EAAe/qE,YAAc+qE,EAClED,IAAqBC,GAAkBD,EAAmB,IAAMC,GAChE,UAAY3Q,GAAkB,kBAAoB4Q,GAAkB,UAAYA,EAChFC,GAAgBA,EAAajkC,cAC7B,kBAAoBozB,GAAkB,kBAAoB4Q,GAC1DC,GAAgBA,EAAa/jC,cAMhDgkC,WAAY,SAASJ,EAAkBC,EAAgB3Q,EAAgB4Q,GACnE,IACI/H,EAGAkI,EAJA/+E,EAAU,GAEVg/E,EAAY1K,EAA6BtlF,KAAM0vF,EAAkB1Q,GACjEiR,EAAU3K,EAA6BtlF,KAAM2vF,EAAgBC,GAEjE,GAAII,GAAa,EAAG,CAChB,IAAIl/E,EAAS9Q,KAAKykF,SAASuL,GAe3B,GAdAL,EAAiB,eAASA,GAAkBA,EAAe/qE,YAAc+qE,EACzEI,EAAmBE,GAAW,EAAIjwF,KAAKykF,SAASwL,GAASljC,YAAc,EACnE,eAAUj8C,EAAOi8C,aAAe,UAAYiyB,IACxC+Q,EAAmBj/E,EAAOi8C,YAC1BgjC,IAEA,UAAYH,EACZ5+E,EAAQ+7C,gBAAa,GAErB86B,EAAiB/2E,EAAOi8C,kBACjBj8C,EAAOi8C,WACdq4B,EAAyBplF,QAG7B,UAAY4vF,EACZ5+E,EAAQ+7C,WAAa,SAASppD,EAAMmN,EAAQi8C,GACxC,IACItxD,EADAy0F,EAAevsF,EAAK4hF,kBAExB,GAAIx4B,GAAc,EACd,IAAKtxD,EAAI,EAAGA,EAAIy0F,EAAat2F,OAAQ6B,IAC7By0F,EAAaz0F,GAAGsxD,YAAcA,GAC9BmjC,EAAaz0F,GAAGsxD,kBAKxB,IADAA,EAAa,EACRtxD,EAAI,EAAGA,EAAIy0F,EAAat2F,OAAQ6B,IACjCsxD,EAAaprC,KAAKqQ,IAAI+6B,EAAYmjC,EAAaz0F,GAAGsxD,WAAa,GAGvE,OAAOA,EAfU,CAgBnB/sD,KAAM,EAAG+vF,GACXj/E,EAAOi8C,WAAa86B,OACjB,GAAI8H,GAAkB,EAAG,CAC5B,IAAIQ,EAAenwF,KAAKykF,SAASwL,GAC5BE,GAAgBr/E,EAAOs8C,YAAc+iC,EAAa/iC,UAE5Ck9B,EAActqF,KAAM8Q,GAAUw5E,EAActqF,KAAMmwF,GACzDn/E,EAAQ68C,aAAeu0B,GAEvBpxE,EAAQ68C,aAAesiC,EAAatiC,aAJpC78C,EAAQ68C,aAAeu0B,GAO/B,IAAIj7D,EAAY,kBAAoByoE,EAChC9+E,EAAO64C,UAAYxiC,IACnBnW,EAAQ24C,QAAUxiC,GAEtBnnB,KAAK62E,aAAa/lE,EAAO1P,MAAO4P,KAGxC6uE,gBAAiB,SAASj7D,EAAa+oC,GACnC,IAAI38C,EAAU,GACV0uE,EAAiB1/E,KAAK+nB,OAAO,WAC7BqoE,EAAc1Q,GAAkBA,EAAe7jC,KAC/Cw0C,EAAmB,WAAaD,IAAgBziC,EAChD1B,EAAe,WAAamkC,GAAe,aAAeA,EAC1Dt/E,EAAS9Q,KAAKykF,SAAS7/D,GACvBqnC,GAAgBn7C,GAAUA,EAAOm7C,eAC7BokC,IAAqB,eAAUv/E,EAAOi8C,aACtC,eAAK/sD,KAAKykF,UAAU,SAAUrjF,GACtBA,IAAUwjB,GAAe5kB,KAAK2tD,YACzB,eAAU3tD,KAAK+sD,oBACT/sD,KAAK2tD,iBAET3tD,KAAK0tD,cAIpBo5B,EAAiBn5B,GACb78C,EAAO68C,YAAcA,IACrB38C,EAAQ28C,UAAYA,GAEjB,SAAWA,EACd78C,EAAO68C,YACP38C,EAAQ08C,eAAY,EACpB18C,EAAQ28C,eAAY,GAGtB,SAAS78C,GACP,GAAI,SAAW68C,EAAW,CACtB,KAAM,cAAe78C,MAAU,cAAeA,GAC1C,OAAO,EAEXE,EAAQ28C,eAAY,EACpB38C,EAAQ08C,eAAY,OACb,eAAU58C,EAAOi8C,aAAe,eAAUj8C,EAAO48C,WACxD18C,EAAQ28C,UAAY,SAAW78C,EAAO68C,UAAY,MAAQ,OAE1D38C,EAAQ28C,UAAY,MAV1B,CAaA78C,IAGV9Q,KAAK62E,aAAa/lE,EAAO1P,MAAO4P,IAEpCs/E,4BAA6B,SAASC,GAClC,IAAIC,EAAc,GACd1uF,EAAO,GAmBX,OAlBA,eAAK9B,KAAKykF,UAAU,YACXzkF,KAAKoR,WAAapR,KAAK2mB,UAAY3mB,KAAKkkB,qBAAuB,eAAUlkB,KAAK0tD,aAAe,eAAU1tD,KAAK+sD,cAC7GyjC,EAAYxwF,KAAK0tD,WAAa1tD,SAGtC,eAAKwwF,GAAa,WACd,IAAI7iC,EAAY3tD,MAAQA,KAAK2tD,UAC7B,GAAIm5B,EAAiBn5B,GAAY,CAC7B,IAAI8iC,EAAW,CACX9pE,SAAU3mB,KAAKqsD,oBAAsBrsD,KAAKovB,cAAgBpvB,KAAK8pB,uBAAyBymE,GAAoBvwF,KAAK2mB,UAAY3mB,KAAKoR,WAAapR,KAAKkkB,mBACpJ4G,KAAM,SAAW9qB,KAAK2tD,WAEtB3tD,KAAKyqB,gBACLgmE,EAAS/lE,QAAU1qB,KAAKyqB,cAAcD,KAAKxqB,OAE/C8B,EAAKmB,KAAKwtF,OAGX3uF,EAAKlI,OAAS,EAAIkI,EAAO,MAEpC4uF,6BAA8B,SAASH,GACnC,IAAI7pE,EAAQ,GAeZ,OAdA,eAAK1mB,KAAKulF,mBAAmB,WACzB,IAAI5+D,EAAW3mB,KAAKgqB,qBAAuBhqB,KAAKovB,cAAgBpvB,KAAK8pB,uBAAyBymE,GAAoBvwF,KAAK2mB,UAAY3mB,KAAKoR,WAAapR,KAAKkkB,mBAC1J,GAAIyC,EAAU,CACV,IAAIg4C,EAAY,CACZh4C,SAAUA,EACVmE,KAAM,SAAW9qB,KAAK2tD,UACtB1oC,aAAcjlB,KAAKksD,iBAEnBlsD,KAAKyqB,gBACLk0C,EAAUj0C,QAAU1qB,KAAKyqB,cAAcD,KAAKxqB,OAEhD0mB,EAAMzjB,KAAK07D,OAGZj4C,EAAM9sB,OAAS,EAAI8sB,EAAQ,MAEtCiqE,QAAS,SAASC,GACd,IAAIC,EAAY,GAYhB,OAXA,eAAK7wF,KAAKykF,UAAU,WAChB,IAAI16D,EAAS/pB,KAAK+pB,OAClB,GAAIA,IAAW/pB,KAAK8pB,sBAAuB,CACvC,GAAI8mE,GAAwB7mE,EAAO+mE,SAC/B,OAEA/mE,EAAOypD,QACPqd,EAAU5tF,KAAK8mB,EAAOypD,cAI3B,UAAK10E,MAAM,OAAG+xF,GAAW1jE,KAAK+5D,EAAkB18D,KAAK,KAAMxqB,QAEtE+wF,qBAAsB,SAASjgF,EAAQ8T,GACnC9T,EAAO6V,SAAW7V,EAAO6V,UAAY,SAASxgB,GAC1C,OAAO2K,EAAOoT,mBAAmB/d,IAErC,eAAK,CAAC,qBAAsB,sBAAuB,0BAA0B,SAAUpH,EAAGiyF,GACtF,IAAIC,EAAoBngF,EAAOkgF,GAC/B,GAAI,eAAWC,GACX,GAAKA,EAAkBtsE,iBAWnB7T,EAAOkgF,GAAuBE,QAAQpgF,OAASA,MAXV,CACrC,IAAIogF,EAAU,CACVpgF,OAAQA,GAEZA,EAAOkgF,GAAyB,SAAS7qF,GACrC,OAAO8qF,EAAkBzrE,KAAK0rE,EAAQpgF,OAAQ3K,IAElD2K,EAAOkgF,GAAuBrsE,iBAAmBssE,EACjDngF,EAAOkgF,GAAuBpsE,YAAcA,EAC5C9T,EAAOkgF,GAAuBE,QAAUA,MAMhD,eAASpgF,EAAOgZ,yBAChBhZ,EAAOse,aAAete,EAAOgZ,sBAC7BhZ,EAAOgZ,sBAAwB,gBAAchZ,EAAOse,eAEpDte,EAAOgZ,wBACPhZ,EAAO+Y,gBAAkB/Y,EAAO+Y,iBAAmB,IAEvDg7D,EAAkB/zE,EAAQA,EAAOsT,UACjC,IAAI2F,EAASjZ,EAAOiZ,OAChBA,GACA86D,EAAkB96D,EAAQA,EAAO3F,UAErC,IAAIA,EAAW2F,EAASA,EAAO3F,SAAWtT,EAAOsT,SAC7CA,IACAtT,EAAO3J,UAAY2J,EAAO3J,WAAa,SAASid,EAAU+sE,GACtD,OAAQ/sE,GACJ,IAAK,SACD,MAAO,QACX,IAAK,UACD,MAAO,SACX,QACI,OAAO,eAAoB+sE,IAPA,CASrC/sE,EAAUpkB,KAAK+nB,OAAO,eACxBjX,EAAOzX,OAASyX,EAAOzX,QAAU,OAAc8wB,oBAAoB/F,GACnEtT,EAAOyU,cAAgBzU,EAAOyU,eAAiB0/D,EAA2B7gE,GAC1EtT,EAAOkyE,wBAA0BlyE,EAAOkyE,0BAA4Bj5D,GAAU64D,EAAoBx+D,IAAa,GAC1G,eAAUtT,EAAO07C,mBAClBu2B,EAAmCjyE,GAEvCA,EAAOshD,uBAAyBthD,EAAO07C,kBAAoB17C,EAAO07C,iBAAiB,IAAM,IACzF17C,EAAOy8C,iBAAmB,eAAUz8C,EAAOy8C,kBAAoBz8C,EAAOy8C,iBAAmB,YAAcnpC,IAAatT,EAAO1J,eAAiB0J,EAAOiZ,SAG3Jo9D,sBAAuB,SAAS59D,GAC5B,IAAI5lB,EAAO3D,KACP8jD,EAA0BngD,EAAKokB,OAAO,2BACtCkkE,EAAatoF,EAAKinF,eAAerhE,GACjC6nE,GAA2B,EAyD/B,OAxDA,eAAKztF,EAAK8gF,UAAU,SAAUrjF,EAAO0P,GACjC,IAAIrV,EACAoG,EACAuiB,EACAitE,EACAC,EACAvnE,EAASjZ,EAAOiZ,OAOpB,GANI,OAAc5F,WAAWrT,EAAOsT,gBAAa,IAAWtT,EAAO8wE,sBAC/D9wE,EAAO8wE,oBAAsB99B,GAE7B/5B,GAAU,OAAc5F,WAAW4F,EAAO3F,gBAAa,IAAWtT,EAAO8wE,sBACzE73D,EAAO63D,oBAAsB99B,GAE7BhzC,EAAOoT,oBAAsB+nE,EAAWryF,OAAQ,CAChD,IAAKkX,EAAOsT,UAAY2F,IAAWA,EAAO3F,SAAU,CAChD,IAAK3oB,EAAI,EAAGA,EAAIwwF,EAAWryF,OAAQ6B,IAC/BoG,EAAQiP,EAAOoT,mBAAmB+nE,EAAWxwF,IACxCqV,EAAOsT,WACRktE,EAAgB3M,EAAiB9iF,GACjCuiB,EAAWA,GAAYktE,EACnBltE,GAAYktE,GAAiBltE,IAAaktE,IAC1CltE,EAAW,WAGf2F,IAAWA,EAAO3F,WAClBktE,EAAgB3M,EAAiB,OAAc/6D,gBAAgB9Y,EAAQjP,EAAOoqF,EAAWxwF,KACzF41F,EAAiBA,GAAkBC,EAC/BD,GAAkBC,GAAiBD,IAAmBC,IACtDD,EAAiB,YAIzBjtE,GAAYitE,KACRjtE,IACAtT,EAAOsT,SAAWA,GAElB2F,GAAUsnE,IACVtnE,EAAO3F,SAAWitE,GAEtBD,GAA2B,GAGnC,QAAI,IAAWtgF,EAAO8wE,qBAAuB73D,QAAU,IAAWA,EAAO63D,oBACrE,IAAKnmF,EAAI,EAAGA,EAAIwwF,EAAWryF,OAAQ6B,IAC/BoG,EAAQiP,EAAOoT,mBAAmB+nE,EAAWxwF,IAAI,QAC7C,IAAWqV,EAAO8wE,sBAClB9wE,EAAO8wE,oBAAsBgD,EAAuB9zE,EAAOsT,SAAUviB,IAErEkoB,QAAU,IAAWA,EAAO63D,sBAC5B73D,EAAO63D,oBAAsBgD,EAAuB76D,EAAO3F,SAAU2F,EAAO7F,mBAAmBriB,GAAO,KAKtH8B,EAAKotF,qBAAqBjgF,EAAQ1P,MAE/BgwF,GAEXG,kBAAmB,SAASjkE,GACxB,IAAIq2B,EAAmB3jD,KAAK+nB,OAAO,oBACnC,GAAI47B,EAAkB,CAClB,IAAI6tC,EAAelkE,EAAQI,MAAK,SAAU5c,GACtC,OAAO,eAASA,EAAOs8C,cAEvBokC,GACA3K,EAAc7mF,MAElB2jD,EAAiBr2B,GACjBs5D,EAAc5mF,KAAM0jF,EAAyB1jF,KAAMstB,MAG3D6+D,cAAe,SAAS5iE,EAAYsiE,EAAeZ,GAI/C,GAHKY,GACD7rF,KAAKyxF,sBAAsBloE,IAE1BA,GAAcA,EAAWi0D,WAAY,CACtC,IAAIkU,EAAiBnoE,EAAaA,EAAWznB,QAAU,GAAK9B,KAAKswF,8BAC7DqB,EAAkBpoE,EAAaA,EAAW7C,SAAW,GAAK1mB,KAAK0wF,+BAC/DkB,EAAmB,OAASroE,QAAc,IAAWA,OAAa,EAASA,EAAWsoE,kBAAkBzzF,OACvG6sF,GACDjrF,KAAKuxF,kBAAkBvxF,KAAKykF,UAEhCoC,EAAc7mF,MACd,IAAIstB,EAAUttB,KAAKykF,SACnB,OAAO,kBAAKzkF,KAAK2wF,SAAQ,IAAOmB,OAAO,KAC/B9xF,KAAKykF,WAAan3D,IAGtBttB,KAAK+xF,eAAexoE,EAAY,CAC5B6/B,QAASsoC,EACT5sC,SAAU6sC,EACV91B,UAAW+1B,IAEfrK,EAAmBvnF,WAI/B+xF,eAAgB,SAASxoE,EAAY48C,GAC7B58C,IACAvpB,KAAKmnF,sBAAsB59D,GAC3BvpB,KAAKorF,oBAAqB,GAEzB,OAAc4G,oBAAoB7rB,EAAW/c,QAASppD,KAAKswF,gCAC5DlJ,EAAoBpnF,KAAM,WAEzB,OAAcgyF,oBAAoB7rB,EAAWrhB,SAAU9kD,KAAK0wF,iCAC7DtJ,EAAoBpnF,KAAM,YAE9B,IAAIiyF,EAAiBjyF,KAAKihE,cAAc,QACpCgxB,IAAmB,OAAc7rE,sBAAsB+/C,EAAWtK,UAAWo2B,EAAeC,sBAC5F9K,EAAoBpnF,KAAM,aAE9BonF,EAAoBpnF,KAAM,YAE9ByxF,sBAAuB,SAASloE,EAAY4oE,GACxC,IACIT,EACAU,EAFAzuF,EAAO3D,KAGPqyF,EAAkC,SAAS/kE,EAASokE,EAAgBY,GACpE,eAAKhlE,GAAS,SAAUlsB,EAAO0P,GAE3B,UADOA,EAAOwhF,GACVZ,EACA,IAAK,IAAIj2F,EAAI,EAAGA,EAAIi2F,EAAe93F,OAAQ6B,IAAK,CAC5C,IAAIkrB,EAAW+qE,EAAej2F,GAAGkrB,SAC7B1B,EAAaysE,EAAej2F,GAAGwpB,WACnC,GAAI0B,IAAa7V,EAAOM,WAAauV,IAAa7V,EAAOlP,MAAQ+kB,IAAa7V,EAAO6V,UAAYA,IAAa7V,EAAOoT,oBAAsByC,IAAa7V,EAAOkZ,qBAAuBrD,IAAa7V,EAAOgZ,sBAAuB,CAEzNhZ,EAAO68C,UADPwkC,EACmB,cAAerhF,EAASA,EAAO68C,UAAY+jC,EAAej2F,GAAGqvB,KAAO,OAAS,MAE7Eha,EAAO68C,YAAc+jC,EAAej2F,GAAGqvB,KAAO,OAAS,YAE1E,IAAW7F,IACXnU,EAAOo7C,gBAAkBjnC,GAE7BnU,EAAOwhF,GAAsB72F,EAC7B,YAMpB,GAAI8tB,EAAY,CACZmoE,EAAiB,OAAc1sE,qBAAqBuE,EAAWznB,QAC/D,IAAI6vF,EAAkB,OAAc3sE,qBAAqBuE,EAAW7C,SAChE6rE,EAAyB5uF,EAAK+sF,+BAC9B8B,EAAwB7uF,EAAK2sF,8BAC7BmC,GAAmB,OAAcT,oBAAoBL,EAAiBY,GAAwB,GAC9FG,GAAyBD,IAAoB,OAAcT,oBAAoBL,EAAiBY,GAC/F5uF,EAAK8gF,SAAS7qF,SACf,eAAK+3F,GAAiB,SAAUvwF,EAAOslB,GACnC/iB,EAAK8gF,SAASxhF,KAAKyjB,EAAMC,aAE7B,eAAK+qE,GAAgB,SAAUtwF,EAAOU,GAC7B,eAAWA,EAAK6kB,WACjBhjB,EAAK8gF,SAASxhF,KAAKnB,EAAK6kB,aAGhCigE,EAAcjjF,EAAM+/E,EAAyB//E,EAAMA,EAAK8gF,aAEvD0N,IAAmBI,GAA2B5uF,EAAK4iF,iBAAmBkM,IAAmBC,IAC1FL,EAAgC1uF,EAAK8gF,SAAUkN,EAAiB,cAC5DQ,IACAM,GAAmBrL,EAAoBzjF,EAAM,YAC7C+uF,GAAyBtL,EAAoBzjF,EAAM,kBACnDyuF,GAAmB,KAGtBD,IAAmBK,GAA0B7uF,EAAK4iF,gBAAmB,OAAcyL,oBAAoBN,EAAgBc,KACxHH,EAAgC1uF,EAAK8gF,SAAUiN,EAAgB,aAC3DS,IACA/K,EAAoBzjF,EAAM,WAC1ByuF,GAAmB,IAGvBA,GACA7K,EAAmB5jF,KAI/BgvF,aAAc,SAASv0F,EAAQw0F,EAAiBhuE,EAAa4B,GACzD,IAAK3nB,MAAM0nB,QAAQnoB,GACf,OAAOA,EAKX,GAHAA,EAAS,OAAA3D,EAAA,WAAO,GAAI2D,GACpBwmB,OAAc,IAAWxmB,EAAOwmB,YAAcxmB,EAAOwmB,YAAcA,EACnE4B,OAAc,IAAWpoB,EAAOooB,YAAcpoB,EAAOooB,YAAcA,EAC/D,eAASpoB,EAAO,KAAO,MAAQA,EAAO,GAAI,CAC1C,IAAI0S,EAAS9Q,KAAK62E,aAAaz4E,EAAO,IAClCw0F,EACI,kBAASlR,qBAAuB5wE,GAAUA,EAAOi0E,gBAAkB3mF,EAAOxE,OAAS,IACnFwE,EAAOA,EAAOxE,OAAS,GAAKkX,EAAOi0E,eAAe3mF,EAAOA,EAAOxE,OAAS,GAAI,WAE1EkX,GAAUA,EAAO6V,WACxBvoB,EAAO,GAAK0S,EAAO6V,SACnBvoB,EAAO,GAAGwmB,YAAc9T,EAAO1P,YAE5B,eAAWhD,EAAO,MACzBA,EAAO,GAAGwmB,YAAcA,EACxBxmB,EAAO,GAAGooB,YAAcA,GAE5B,IAAK,IAAI/qB,EAAI,EAAGA,EAAI2C,EAAOxE,OAAQ6B,IAC/B2C,EAAO3C,GAAKuE,KAAK2yF,aAAav0F,EAAO3C,GAAIm3F,EAAiBhuE,EAAa4B,GAE3E,OAAOpoB,GAEXy0F,YAAa,WACT,OAAO7yF,KAAKykF,SAAWzkF,KAAKykF,SAAS7qF,OAAS,GAElDi9E,aAAc,SAAS4T,EAAY1iE,EAAQlmB,EAAO4mF,GAC9C,IAAI9kF,EAAO3D,KACPstB,EAAU3pB,EAAK8gF,SAAS5yE,OAAOlO,EAAKwhF,iBACpCr0E,EAAS05E,EAAWl9D,EAASm9D,GACjC,GAAI35E,EAAQ,CACR,GAAI,IAAM5Q,UAAUtG,OAChB,OAAO,OAAAa,EAAA,WAAO,GAAIqW,GAEtB,GAAI,eAASiX,GAAS,CAClB,GAAI,IAAM7nB,UAAUtG,OAChB,OAAO4uF,EAAiB7kF,EAAMmN,EAAQiX,GAEtCygE,EAAiB7kF,EAAMmN,EAAQiX,EAAQlmB,EAAO4mF,QAE3C,eAAS1gE,IAChB,eAAKA,GAAQ,SAAUsiC,EAAYxoD,GAC/B2mF,EAAiB7kF,EAAMmN,EAAQu5C,EAAYxoD,EAAO4mF,MAG1DlB,EAAmB5jF,KAG3BmvF,aAAc,WACV,IAAID,EAAc7yF,KAAK6yF,cACvB7yF,KAAKigE,cACL,IAAK,IAAIxkE,EAAI,EAAGA,EAAIo3F,EAAap3F,IAC7BuE,KAAK62E,aAAap7E,EAAG,iBAAa,GAEtCuE,KAAKkgE,aAET6yB,cAAe,WACX,IAAIF,EAAc7yF,KAAK6yF,cACvB7yF,KAAKigE,cACL,IAAK,IAAIxkE,EAAI,EAAGA,EAAIo3F,EAAap3F,IAC7BuE,KAAK62E,aAAap7E,EAAG,kBAAc,GAEvCuE,KAAKkgE,aAETgO,gBAAiB,SAAS9sE,EAAOyoE,GAE7B,IADA,IAAIv8C,EAAUttB,KAAK0sE,kBAAkB7C,GAC5BpuE,EAAI6xB,EAAQ1zB,OAAS,EAAG6B,GAAK,EAAGA,IACrC,GAAI6xB,EAAQ7xB,GAAG2F,QAAUA,EACrB,OAAO3F,EAGf,OAAQ,GAEZu3F,wBAAyB,SAASliF,EAAQ+4D,GACtC,IAAI2C,EAAiBxsE,KAAK0sE,kBAAkB7C,GACxCopB,EAAgBzmB,EAAepuE,OAAOiwE,GAAOA,EAAIjtE,QAAU0P,EAAO1P,OAASitE,EAAI1gD,UAAY7c,EAAO6c,SAAS,GAC/G,OAAO6+C,EAAeluE,QAAQ20F,IAElCrd,sBAAuB,SAAS9mF,EAAI+6E,GAChC,IAAIzoE,EAAQpB,KAAK62E,aAAa/nF,EAAI,SAClC,OAAOkR,KAAKkuE,gBAAgB9sE,EAAOyoE,IAEvCqpB,UAAW,SAASliF,GAChB,IAAIF,EAASmyE,EAAajjF,KAAMgR,GAC5B5P,EAAQpB,KAAKykF,SAAS7qF,OAC1BoG,KAAKykF,SAASxhF,KAAK6N,GACfA,EAAOo8C,SACPltD,KAAKykF,SAAWf,EAAyB1jF,KAAMA,KAAKykF,UACpD3zE,EAAS9Q,KAAKykF,SAASrjF,IAE3B0P,EAAO61E,MAAQ31E,EACf61E,EAAc7mF,KAAM8Q,GACpB9Q,KAAKmsF,cAAcnsF,KAAKwpB,aACxBxpB,KAAK8oF,iBAETqK,aAAc,SAASrkG,GACnB,IAeIw+B,EAfAxc,EAAS9Q,KAAK62E,aAAa/nF,GAC/B,GAAIgiB,GAAUA,EAAO1P,OAAS,EAAG,CAO7B,GANAksB,EAAUttB,KAAKykF,SAAen3D,EAAQpsB,QAAQ4P,IACtC,eAAUA,EAAOs8C,aACjBt8C,EAAOs8C,UAAY9/B,EAAQxc,EAAOs8C,cAG1CptD,KAAKykF,SAASlR,OAAOziE,EAAO1P,MAAO,GAC/B0P,EAAOo8C,OAAQ,CACf,IAAIkmC,EAAepzF,KAAK6+E,wBAAwB/tE,EAAO1P,OAAOtF,IAAIgV,GAAUA,EAAO1P,OACnFpB,KAAKykF,SAAWzkF,KAAKykF,SAASrmF,OAAO0S,GAAUsiF,EAAa90F,QAAQwS,EAAO1P,OAAS,GAExFylF,EAAc7mF,MACdA,KAAKmsF,cAAcnsF,KAAKwpB,eAIhC2hE,iBAAkB,SAASn6E,GACvB,IAAIo4E,EAAgBppF,KAAKmlF,gBAAgB/mF,OAAO0S,GAAUA,EAAO6c,UAAY3c,EAAQ2c,SAAS,GACzFy7D,IACDA,EAAgBp4E,EAChBhR,KAAKmlF,gBAAgBliF,KAAKmmF,KAGlCqD,aAAc,WACV,IAEIhxF,EAFA6xB,EAAUttB,KAAKykF,SACfxlF,EAAS,GAGb,SAASo0F,EAAiBjyF,EAAOS,QACzB,IAAWyrB,EAAQ7xB,GAAGoG,KACtB5C,EAAOxD,GAAGoG,GAASyrB,EAAQ7xB,GAAGoG,IAGtC,IAAKpG,EAAI,EAAGA,EAAI6xB,EAAQ1zB,OAAQ6B,IAC5BwD,EAAOxD,GAAK,GACZ,eAAKsmF,GAAwBsR,GAEjC,OAAOp0F,GAEXqkF,QAAS,SAASxyE,GACdA,EAAOlP,KAAOkP,EAAOlP,MAAQkP,EAAOM,WAAaN,EAAOrS,MAE5D60F,aAAc,SAAS1jD,GACnB,IAAIrmB,EAAavpB,KAAKwpB,YAClBq8D,EAA0B7lF,KAAK+nB,OAAO,wCAE1C,GADA,OAAS6nB,QAAS,IAAWA,GAAiBA,EAAM1uC,QAAQlB,KAAKsjF,UAC5DuC,EAAyB,CAC1BA,EAA0B,GAC1B,IAAIrD,EAAuBxiF,KAAKujF,oBAC3BvjF,KAAK+nB,OAAO,0BACb89D,EAAwB5iF,KAAK,WAE7B,SAAWjD,KAAK+nB,OAAO,iBACvB89D,EAAwB5iF,KAAK,YAAa,aAEzCu/E,EAAqB52B,eACtBi6B,EAAwB5iF,KAAK,cAE5Bu/E,EAAqB72B,aACtBk6B,EAAwB5iF,KAAK,QAAS,iBAErCu/E,EAAqB30D,eACtBg4D,EAAwB5iF,KAAK,QAAS,gBAE1C,IAAIswF,GAAuBvzF,KAAK+nB,OAAO,wBAClC/nB,KAAK+nB,OAAO,sBAAwBwrE,GACrC1N,EAAwB5iF,KAAK,cAAe,4BAE3CjD,KAAK+nB,OAAO,yBAA2BwrE,GACxC1N,EAAwB5iF,KAAK,eAAgB,cAGrDjD,KAAK4jF,kBAAoBh0C,EACzB5vC,KAAK8lF,yBAA2BD,EAChC7lF,KAAKumF,gBAAkB32C,EACvBw3C,EAAoBpnF,KAAM,aAC1BA,KAAK+/D,MAAK,GACNx2C,IACAA,EAAWznB,KAAK9B,KAAKswF,+BACrB/mE,EAAW7C,MAAM1mB,KAAK0wF,kCAG9B5H,cAAe,WACX,IAAI0K,EAAY,GACZC,GAA+B,EAC/BC,EAAkB,GACtB1zF,KAAKykF,SAASvjF,QAAQ4P,IAClB,IAAI6iF,EACA/xF,EAAOkP,EAAOlP,KACdsrD,EAAS,QAAUymC,EAAkB7iF,EAAOwc,eAAY,IAAWqmE,OAAkB,EAASA,EAAgB/5F,OAC9Gg6F,EAAa9iF,EAAO26C,eAAiB36C,EAAOM,WAAaN,EAAOw8C,gBAAkBJ,EAClFtrD,GACI4xF,EAAU5xF,IACV8xF,EAAgBzwF,KAAK,IAAI4O,OAAOjQ,EAAM,MAE1C4xF,EAAU5xF,IAAQ,GACXgyF,IACPH,GAA+B,KAGnCC,EAAgB95F,QAChB,OAAOkK,IAAI,QAAS4vF,EAAgB13F,KAAK,OAEzCy3F,GACA,OAAO3vF,IAAI,UAGnB2/E,+BAAgC,SAASP,EAAeE,GACpD,IAAII,EAA0B,GAC1BpyE,EAAY8xE,EAAc9xE,UAK9B,IAJIvS,MAAM0nB,QAAQ28D,EAAc51D,UAAY41D,EAAc51D,QAAQ1zB,QAAUspF,EAAch2B,UACtFs2B,EAAwBt2B,QAAS,EACjC97C,EAAY,MAEZA,EAAW,CACX,GAAI,eAASA,GAAY,CACrB,IAAI8hE,EAAS,gBAAc9hE,GAC3BoyE,EAA0B,CACtBt8E,QAAS,gBAAWkK,GACpB8S,mBAAoB,SAAS/d,EAAM0tF,GAC/B,IAAIhyF,EAAQqxE,EAAO/sE,GACnB,OAAOnG,KAAK8kF,mBAAqB+O,EAAsB7zF,KAAK8kF,iBAAiBjjF,GAASA,GAE1FyrD,aAAc07B,EACd8K,WAAY,SAASv3F,GACjB,IAAI0C,EACAgiF,EA8BJ,MA7BI,WAAajhF,KAAKokB,SACd,eAAS7nB,IAASyD,KAAK3G,OACvB4F,EAAS,SAAS1C,EAAMlD,GACpB,IAAI4nF,EAAc,QAAmB9gF,MAAM5D,GAC3C,GAAI,eAAU0kF,GAAc,CACxB,IAAI8S,EAAiB,QAAmB16F,OAAO4nF,EAAa5nF,GACxD26F,EAAkC,QAAmB36F,OAAO4nF,EAAa,WAC7E,GAAI8S,IAAmBx3F,GAAQy3F,IAAoCz3F,EAC/D,OAAO0kF,GANV,CASP1kF,EAAKoD,OAAQK,KAAK3G,QACb,eAAUkD,IAAS,eAAUA,KACpC0C,EAASslB,OAAOhoB,IAEb,YAAcyD,KAAKokB,SACtB7nB,IAASyD,KAAK0pB,SACdzqB,GAAS,EACF1C,IAASyD,KAAK2pB,YACrB1qB,GAAS,GAEN,OAAcklB,WAAWnkB,KAAKokB,WACrC68D,EAAc,QAAiB9gF,MAAM5D,EAAMyD,KAAK3G,QAC5C4nF,IACAhiF,EAASgiF,IAGbhiF,EAAS1C,EAEN0C,IAInBukF,EAAwBl8E,gBAAiB,OAEzCk8E,EAAwBl8E,iBAAmB47E,EAAc92B,0BA8F7D,OA5FAo3B,EAAwBp3B,0BAA4B,WAChD,OAAO,QAAYj2B,iCAAiCr3B,MAAMkB,KAAME,YAEpEsjF,EAAwByQ,uBAAyB,SAASztE,GACtD,IAAIvnB,EAWJ,OAVIe,KAAKosD,4BACLntD,EAASe,KAAKosD,0BAA0BttD,MAAMkB,KAAME,YAEpD,eAAWjB,KACXA,EAAS,CAACA,EAAQ,KAAK,IAEvBA,IACAA,EAAO2lB,YAAc5kB,KAAKoB,MAC1BnC,EAAOunB,YAAcA,GAElBvnB,GAENmS,GAAc,eAASA,IACxB,OAAA3W,EAAA,YAAO,EAAM+oF,EAAyB,CAClCv3B,cAAc,EACdL,eAAe,EACf1nC,mBAAoB,WAChB,OAAO,QAIfk/D,IACAI,EAAwB73B,aAAc,GAEtCu3B,EAAc9+D,WACdo/D,EAAwB0Q,aAAehR,EAAc9+D,UAErD8+D,EAAcxtD,2BAA6B,mCAAoC8tD,KAC/EA,EAAwB6C,+BAAiCnD,EAAcxtD,yBAEvEwtD,EAAcn5D,SACdy5D,EAAwBz5D,OAAS,CAC7B7F,mBAAoB,SAASriB,EAAOgyF,GAIhC,OAHI7zF,KAAK+vB,YACLluB,EAAQ7B,KAAK8wF,UAAY9wF,KAAK8wF,SAASjvF,IAEpC7B,KAAK8kF,mBAAqB+O,EAAsB7zF,KAAK8kF,iBAAiBjjF,GAASA,GAE1FsyF,eAAgB,WAEZ,GADAn0F,KAAK8wF,SAAW,GACZ9wF,KAAK0oB,MAGL,IAFA,IAAI0rE,EAAiB,gBAAcp0F,KAAK+vB,WACpCjG,EAAwB,gBAAc9pB,KAAKgwB,aACtCv0B,EAAI,EAAGA,EAAIuE,KAAK0oB,MAAM9uB,OAAQ6B,IAAK,CACxC,IAAIsL,EAAO/G,KAAK0oB,MAAMjtB,GAClB44F,EAAevqE,EAAsB/iB,GACzC/G,KAAK8wF,SAASsD,EAAertF,IAASstF,EACtCr0F,KAAKokB,SAAWpkB,KAAKokB,UAAYugE,EAAiB0P,KAI9D7gB,OAAQ,WACJ,IAAI7vE,EAAO3D,KACPupB,EAAa5lB,EAAK4lB,WACtB,GAAIA,EAIA,GAHI,eAAWA,KAAgB,QAAgBqF,UAAUrF,KACrDA,EAAaA,EAAW,KAExB,eAAcA,IAAeA,aAAsB,SAAS1qB,MAAM0nB,QAAQgD,IAC1E,GAAI5lB,EAAKosB,UAAW,CAChB,IAAIukE,EAAoB,gBAA2B/qE,GAGnD,OAFA+qE,EAAkBC,UAAW,EAC7BhrE,EAAa,IAAI,QAAW+qE,GACrB/qE,EAAW+F,OAAOnC,MAAK,SAAUhnB,GACpCxC,EAAK+kB,MAAQviB,EACbxC,EAAKwwF,gBAAkBxwF,EAAKwwF,0BAIpC,OAAOrwF,IAAI,cAGfH,EAAKwwF,gBAAkBxwF,EAAKwwF,oBAK5C3Q,EAAwBgR,iBAAmB,uBACvCtR,EAAc71B,SACdm2B,EAAwBgR,iBAAiBhgB,IAAI0O,EAAc71B,QAAQ7iC,KAAK04D,IAE5E,eAAKM,GAAyB,SAAUn5B,GACpC,GAAI,eAAWm5B,EAAwBn5B,KAAgB,IAAMA,EAAW/rD,QAAQ,WAAY,CACxF,IAAIm2F,EAAoB,UAAYpqC,EAAWpuB,OAAO,GAAGoJ,cAAgBglB,EAAW9nC,OAAO,GAC3FihE,EAAwBiR,GAAqBjR,EAAwBn5B,OAGtEm5B,GAEX9F,YAAa,WAgBT,OAfA19E,KAAKwsF,UAAYxsF,KAAKwsF,WAAa,SAAS7oF,GACxC,IAAIm6E,EAAW,EACXuG,EAAmB1gF,EAAK2gF,sBACxBN,EAAsBK,EAAiBL,oBAU3C,OATArgF,EAAK8gF,SAASvjF,SAAQ,SAAU4P,GAC5B,IAAI4jF,EAAU3Q,EAAqBjzE,EAAO1P,MAAO4iF,GAC7C2Q,EAAmBD,EAAQt2F,QAAO,SAAU0S,GAC5C,OAAQA,EAAO64C,WAEf74C,EAAO64C,UAAYgrC,EAAiB/6F,SACpCkkF,EAAWn8D,KAAKqQ,IAAI8rD,EAAU4W,EAAQ96F,OAAS,OAGhDkkF,EAbwB,CAcjC99E,MACKA,KAAKwsF,WAEhB1iB,YAAa,SAASllD,EAAagwE,GAC/B,IAAI9jF,EAAS9Q,KAAKykF,SAAS7/D,GACvBy/D,EAAmBrkF,KAAKskF,sBAC5B,OAAOxzE,IAAW8jF,GAAqB9jF,EAAO64C,UAAa74C,EAAO6c,UAAW,eAAU7c,EAAOi8C,aAAgBg3B,EAAqBn/D,EAAay/D,EAAiBL,qBAAqBpqF,OAAS,GAEnMilF,wBAAyB,SAASD,EAAiBiW,GAC/C,IAAIxQ,EAAmBrkF,KAAKskF,sBACxBrlF,EAASglF,EAAyBrF,EAAiByF,EAAiBH,uBAAwB2Q,GAChG,OAAIA,EACO51F,EAAOb,QAAO,SAAU0S,GAC3B,OAAOA,EAAO64C,UAAY74C,EAAO6c,WACjC7rB,MAAK,SAAUstF,EAASC,GACxB,OAAOD,EAAQvhC,aAAewhC,EAAQxhC,gBAGvC5uD,GAEX61F,mBAAoB,SAASlwE,EAAag6D,GACtC,IAAI3/E,GAAS,EACT6R,EAAS9Q,KAAKykF,SAAS7/D,GACvBy/D,EAAmBrkF,KAAKskF,sBACxB2C,EAAoBn2E,GAAUizE,EAAqBn/D,EAAay/D,EAAiBL,qBASrF,OARIiD,GACA,eAAKA,GAAmB,SAAUloF,EAAGqkF,GACjC,GAAIA,EAAWhiF,QAAUw9E,EAErB,OADA3/E,GAAS,GACF,KAIZA,GAEXivF,sBAAuB,SAAStpE,GAC5B,IAAI3lB,GAAS,EACTolF,EAAmBrkF,KAAKskF,sBACxByQ,EAAcnwE,GAAe,GAAKm/D,EAAqBn/D,EAAay/D,EAAiBL,qBAKzF,OAJA+Q,GAAe,eAAKA,GAAa,SAAUh2F,EAAGqkF,GAE1C,OADAnkF,EAASA,GAAUmkF,EAAWz5B,QACvB1qD,KAEJA,GAEX+1F,YAAa,SAASlkF,GAClB,OAAIA,EAAO6c,SAAW7c,EAAOrS,OAAS4jF,GAC9B8G,EAAsBnpF,KAAM8Q,GACrB,QAAUA,EAAOrS,KAErB,WAAaqS,EAAO6c,QAExB7c,EAAO1P,OAElB6jF,2BAA4BA,EAC5Bpe,0BAA2B,SAASZ,GAChC,IAAI56C,EAAarrB,KAAK+nB,OAAO,cAC7B,OAAIsD,EACO,SAAW46C,EAAkB,QAAU,OAE3CA,IAzkEiB,MC1F5C,EAASR,eAAe,UAAW,CAC/B9nE,eAAgB,WACZ,OAAO,OAAAlD,EAAA,YAAO,EAAM,GAAI8nF,GAAwB5kF,iBAAkB,CAC9D6kF,qBAAsB,CAClB92B,gBAAgB,MAI5BmZ,YAAa0d,GAAwB1d,c,8BCW1B,KAAS5C,WAAW5C,QAAQ,WACvC,SAAS41B,EAAWvsE,EAAOwsE,GACvB,GAAIxsE,IACAA,EAAQA,EAAMrF,MAAM,GAChB6xE,GACA,IAAK,IAAIz5F,EAAI,EAAGA,EAAIitB,EAAM9uB,OAAQ6B,IAC9BitB,EAAMjtB,GAAK,OAAAhB,EAAA,WAAO,CACdK,IAAK4tB,EAAMjtB,GAAGX,KACf4tB,EAAMjtB,IACTitB,EAAMjtB,GAAGitB,MAAQusE,EAAWvsE,EAAMjtB,GAAGitB,MAAOwsE,EAAa,GAIrE,OAAOxsE,EAGX,SAASysE,EAAwB5lE,EAAasiE,EAAiBuD,GAC3D,IAAIC,EAAiB,CACjBC,QAAQ,EACRC,YAAY,GAiBhB,OAfI1D,IACAwD,EAAiB,CACbjsC,SAAU,EAAS4oC,oBAAoBziE,EAAYztB,KAAM+vF,EAAgB/vF,MACzEgjD,UAAW,EAASktC,oBAAoBziE,EAAY7I,MAAOmrE,EAAgBnrE,OAAO,GAClFq3D,gBAAiB,EAASiU,oBAAoBziE,EAAY7I,MAAOmrE,EAAgBnrE,QAAUmrE,EAAgB2D,YAC3G35B,WAAY,EAASz1C,sBAAsBmJ,EAAYnxB,OAAQyzF,EAAgBzzF,QAC/Em9D,UAAWhsC,EAAYgsC,YAAcs2B,EAAgBt2B,UACrD7rC,KAAMH,EAAYG,OAASmiE,EAAgBniE,KAC3CD,KAAMF,EAAYE,OAASoiE,EAAgBpiE,KAC3C+rC,SAAUjsC,EAAYisC,WAAaq2B,EAAgBr2B,SACnD+5B,WAAYH,GAEhBC,EAAeC,OAASF,GAAgBC,EAAejsC,SAAWisC,EAAevwC,UAAYuwC,EAAex5B,UAC5Gw5B,EAAejtC,OAASitC,EAAe95B,WAAa85B,EAAe75B,UAAY65B,EAAe5lE,MAE3F4lE,EAGX,SAASI,EAAqBzkF,EAAS0kF,GACnC,IAAIR,EAAa,EAASlwE,qBAAqBhU,EAAQ0V,OAAS1V,EAAQof,iBAAiB1J,OAAS1V,EAAQue,YAAY7I,OAAO9sB,OACzH8uB,EAAQ,GACZ,GAAIitE,EAAmBjtE,EAAO1X,EAASkkF,GACnC,OAAOxsE,EACAgtE,GACL,SAASE,EAAqB5kF,EAASkkF,GACrC,IAAIW,EAAsBD,EAAoBh8F,QAE1Cw2B,iBAAkBA,GAClBpf,EACJ,QAAI,IAAWof,EAAiBV,MAAQU,EAAiBX,OAASylE,EAAY,CAC1E,IAAIY,EAAoB,GACxBH,EAAmBG,EAAmB9kF,EAASkkF,GAAY,GAC3D,IAEQa,EAAgBC,EAFpBC,EAAoBH,EAAkBl8F,OAC1C,GAAIi8F,GAAuBI,EAEvBjlF,EAAQ0e,KAAO,QAAUqmE,EAAiB/kF,EAAQ0e,YAAS,IAAWqmE,EAAiBA,EAAiB3lE,EAAiBV,KACzH1e,EAAQye,KAAO,QAAUumE,EAAiBhlF,EAAQye,YAAS,IAAWumE,EAAiBA,EAAiB5lE,EAAiBX,KAEzHomE,IACAzlE,EAAiBV,MAAQmmE,EACzBzlE,EAAiBX,MAAQomE,EACzB7kF,EAAQklF,oBAAsBN,GAE9BK,IACA7lE,EAAiBX,MAAQwmE,EACzBjlF,EAAQmlF,kBAAoBL,EAAkBM,YArBxD,CAwBA1tE,EAAO1X,EAASkkF,GAI1B,SAASS,EAAmBjtE,EAAO1X,EAASkkF,EAAYmB,GACpD,IAAInpF,EAAMopF,EAAeC,GAErBnmE,iBAAkBA,GAClBpf,EACAye,EAAO,QAAUviB,EAAO,QAAUopF,EAAgBtlF,EAAQye,YAAS,IAAW6mE,EAAgBA,EAAgBlmE,EAAiBX,YAAS,IAAWviB,EAAOA,EAAO,EACjKspF,EAAc,QAAUD,EAAsBvlF,EAAQylF,kBAAe,IAAWF,OAAsB,EAASA,EAAoB7tE,MACvI,GAAI+G,GAAQ+mE,EAAa,CAGrB,IAFA,IAAIE,EAAOC,EACPjnE,EAAO,QAAUgnE,EAAQ,QAAUC,EAAgB3lF,EAAQ0e,YAAS,IAAWinE,EAAgBA,EAAgBvmE,EAAiBV,YAAS,IAAWgnE,EAAQA,EAAQ,EAC/Jj7F,EAAI,EAAGA,EAAIg0B,EAAMh0B,IAAK,CAC3B,IAAIm7F,EAAaP,EAAU5mE,EAAO,EAAIh0B,EAAIA,EACtCo7F,EAAiBD,EAAalnE,EAC9BonE,EAAYN,EAAYK,GAC5B,QAAI,IAAWC,GAAaD,KAAkBL,EAC1C,OAAO,EAEX,IAAIzvF,EAAOgwF,EAAiB/lF,EAAS8lF,EAAW5B,EAAY0B,EAAYnnE,GACxE,IAAI1oB,EAGA,OAAO,EAFP2hB,EAAMzlB,KAAK8D,GAKnB,OAAO,EAEX,OAAO,EAGX,SAASgwF,EAAiB/lF,EAAS8lF,EAAW5B,EAAY9zF,EAAOquB,GAC7D,GAAIylE,GAAc4B,EAAW,CACzB,IAAIE,EAAQ,IAAM51F,GAAS4P,EAAQgmF,OAAS,GACxCC,EAAQ71F,IAAUquB,EAAO,GAAKze,EAAQimF,OAAS,GACnD,OAAO,SAASC,EAAsBJ,EAAW5B,EAAY8B,EAAOC,GAChE,GAAI/B,GAAc4B,EAAW,CACzB,IAAI73F,EAAS,eAAS,GAAI63F,GACtBpnE,EAAOsnE,EAAM,IAAM,EACnBvnE,EAAOwnE,EAAM,GACbvuE,EAAQouE,EAAUpuE,MACtB,GAAIA,EAAO,CACP,QAAI,IAAW+G,IAAS/G,EAAMgH,GAC1B,OAEJzwB,EAAOypB,MAAQ,GACXsuE,EAAMp9F,SACNqF,EAAO+sB,gBAAiB,GAExBirE,EAAMr9F,SACNqF,EAAOk4F,0BAA2B,GAEtC,IAAK,IAAI17F,EAAI,OAAG,IAAWg0B,EAAO/G,EAAMjtB,EAAIi0B,GAAQj0B,EAAIg0B,EAAMh0B,IAAK,CAC/D,IAAI27F,EAAiB1uE,EAAMjtB,EAAIi0B,GAC3B2nE,EAAS57F,EAAI,IAAMg0B,EACnB1oB,EAAOmwF,EAAsBE,EAAgBlC,EAAa,EAAG,IAAMz5F,EAAIu7F,EAAM3zE,MAAM,GAAK,GAAIg0E,EAASJ,EAAM5zE,MAAM,GAAK,IAC1H,QAAI,IAAWtc,EAGX,OAFA9H,EAAOypB,MAAMzlB,KAAK8D,IAM9B,OAAO9H,EAEX,OAAO63F,EA9BJ,CA+BLA,EAAW5B,EAAY8B,EAAOC,GAEhC,OAAOH,EAIf,SAASQ,EAAaR,EAAWS,EAAYrC,EAAY8B,GACrD,GAAI9B,GAAcqC,EAAY,CAC1B,IAAIt4F,EAAS,eAAS,GAAIs4F,UACnBt4F,EAAO+sB,sBACP/sB,EAAOk4F,yBACd,IAAIznE,EAAOsnE,EAAM,IAAM,EASvB,OARIO,EAAW7uE,QACXzpB,EAAOypB,OAAS,OAASouE,QAAa,IAAWA,OAAY,EAASA,EAAUpuE,QAAU,GAC1F6uE,EAAW7uE,MAAMxnB,QAAQ,CAAC6F,EAAM3F,KAC5B,IAAIo2F,EAAcp2F,EAAQsuB,EACtB+nE,EAAa,IAAMr2F,EAAQ41F,EAAM3zE,MAAM,GAAK,GAChDpkB,EAAOypB,MAAM8uE,GAAeF,EAAar4F,EAAOypB,MAAM8uE,GAAczwF,EAAMmuF,EAAa,EAAGuC,MAG3Fx4F,EAEX,OAAOs4F,EAEX,MAAO,CACHx3B,KAAM,SAASx2C,EAAY0F,GACvB,IAAItrB,EAAO3D,KACX2D,EAAK6lB,YAAcD,EACnB5lB,EAAK+zF,kBAAoBzoE,GAAoB,GAC7CtrB,EAAKg0F,aAAepuE,EAAWquE,aAC/Bj0F,EAAKk0F,cAAe,EACpBl0F,EAAKm0F,mBAAqB,EAC1Bn0F,EAAKo0F,YAAc,CACfrvE,MAAO,IAEX/kB,EAAKq0F,oBAAsB,GAC3Br0F,EAAKs0F,gBAAkB1uE,EAAW0uE,gBAClCt0F,EAAKu0F,sBAAwB,EAC7Bv0F,EAAKw0F,eAAgB,EACrBx0F,EAAK8wE,QAAU,uBACf9wE,EAAKy0F,eAAiB,uBACtBz0F,EAAK00F,UAAY,uBACjB10F,EAAK20F,0BAA4B,uBACjC30F,EAAK40F,SAAW,uBAChB50F,EAAK60F,OAAS,uBACd70F,EAAK80F,oBAAsB90F,EAAK+wE,mBAAmBlqD,KAAK7mB,GACxDA,EAAK+0F,kCAAoC/0F,EAAKg1F,iCAAiCnuE,KAAK7mB,GACpFA,EAAKi1F,mBAAqBj1F,EAAKk1F,kBAAkBruE,KAAK7mB,GACtDA,EAAKm1F,uBAAyBn1F,EAAKo1F,sBAAsBvuE,KAAK7mB,GAC9DA,EAAKq1F,kBAAoBr1F,EAAKs1F,iBAAiBzuE,KAAK7mB,GACpDA,EAAKu1F,aAAev1F,EAAKw1F,YAAY3uE,KAAK7mB,GAC1CA,EAAKy1F,iBAAmBz1F,EAAK01F,gBAAgB7uE,KAAK7mB,GAClD4lB,EAAWlkB,GAAG,UAAW1B,EAAK80F,qBAC9BlvE,EAAWlkB,GAAG,4BAA6B1B,EAAK+0F,mCAChDnvE,EAAWlkB,GAAG,sBAAuB1B,EAAKi1F,oBAC1CrvE,EAAWlkB,GAAG,iBAAkB1B,EAAKm1F,wBACrCvvE,EAAWlkB,GAAG,YAAa1B,EAAKq1F,mBAChCzvE,EAAWlkB,GAAG,WAAY1B,EAAKy1F,kBAC/B7vE,EAAW0G,QAAQ5qB,GAAG,aAAc1B,EAAKu1F,cACzC,eAAK3vE,GAAY,SAAU+vE,EAAYC,IAC9B51F,EAAK21F,IAAe,eAAWC,KAChC51F,EAAK21F,GAAc,WACf,OAAOt5F,KAAKwpB,YAAY8vE,GAAYx6F,MAAMkB,KAAKwpB,YAAatpB,iBAK5E+uB,iBAAkB,WACd,OAAOjvB,KAAK03F,mBAEhBj2B,QAAS,SAAS+3B,GACd,IAAIjwE,EAAavpB,KAAKwpB,YAClByG,EAAQ1G,EAAW0G,QACvB1G,EAAWg3C,IAAI,UAAWvgE,KAAKy4F,qBAC/BlvE,EAAWg3C,IAAI,4BAA6BvgE,KAAK04F,mCACjDnvE,EAAWg3C,IAAI,sBAAuBvgE,KAAK44F,oBAC3CrvE,EAAWg3C,IAAI,iBAAkBvgE,KAAK84F,wBACtCvvE,EAAWg3C,IAAI,YAAavgE,KAAKg5F,mBACjCzvE,EAAWg3C,IAAI,WAAYvgE,KAAKo5F,kBAChCnpE,GAASA,EAAMswC,IAAI,aAAcvgE,KAAKk5F,cACjCM,GACDjwE,EAAWk4C,WAGnBkvB,QAAS,SAAS3/E,EAASqkF,GACvB,IAAI9rE,EAAavpB,KAAKwpB,YAClB6rE,EAAeC,SACft1F,KAAKy5F,yBACLz5F,KAAK23F,aAAepuE,EAAWgrE,WAC/Bv0F,KAAK63F,aAAe73F,KAAK23F,cAGjC8B,uBAAwB,WACpBz5F,KAAK83F,mBAAqB,EAC1B93F,KAAKk4F,sBAAwB,GAEjCwB,WAAY,WACR15F,KAAK25F,sBAAmB,EACxB35F,KAAK45F,uBAAoB,GAE7BC,gBAAiB,WACb75F,KAAK+3F,YAAc,CACfrvE,MAAO,KAGfoxE,yBAA0B,WACtB,IAAI7qE,EAAmBjvB,KAAKivB,mBACxBomE,EAAiBF,EAAwBn1F,KAAK+5F,kBAAoB,GAAI,IACtEC,EAAoBx8F,OAAO84B,KAAKrH,GAAkBuJ,MAAMyhE,IAAkB5E,EAAe4E,KAAmBhrE,EAAiBgrE,IACjI,OAAQD,GAEZ/2F,KAAM,SAASgK,EAASitF,GACpB,IAAIjqE,EAAQjwB,KAAKiwB,QACbjwB,KAAK85F,6BACL95F,KAAK25F,sBAAmB,GAE5B35F,KAAK45F,uBAAoB,EACzB55F,KAAK65F,iBAAgB,GACjB75F,KAAK25F,kBACL,gBAAW,CACPQ,QAASlqE,EACT9pB,KAAMnG,KAAK25F,iBACX1sF,QAASA,IAGZitF,GACDl6F,KAAKo6F,YAAYntF,GAErBjN,KAAKw4F,OAAO10B,KAAK72D,IAErBotF,mBAAoB,WAChB,IAAKr6F,KAAKs6F,iBAAkB,CACxB,IAAIC,EACAC,EACAvqE,EAAQjwB,KAAKiwB,QACjBjwB,KAAKs6F,iBAAmBn0F,IACpB,IAAIs0F,EAAiBD,GAAaA,IAAcx6F,KAAK25F,iBACrD,IAAKY,GAAcE,EAAgB,CAC/BD,EAAYx6F,KAAK25F,kBAAoB,GACrCY,EAAa,GACb,IAAK,IAAI9+F,EAAI,EAAGA,EAAI++F,EAAU5gG,OAAQ6B,IAClC8+F,EAAW,eAAWtqE,EAAMyqE,MAAMF,EAAU/+F,MAAQA,EAG5D,OAAO8+F,EAAW,eAAWtqE,EAAMyqE,MAAMv0F,MAGjD,OAAOnG,KAAKs6F,kBAEhBK,YAAa,WACT,OAAO36F,KAAKiwB,SAEhBmqE,YAAa,SAASntF,GAClB,IAAIktF,EAAUn6F,KAAK26F,cACfpxE,EAAavpB,KAAKwpB,YAClB0rE,EAAa,EAASlwE,qBAAqBhlB,KAAK0mB,SAAS9sB,OACzDghG,EAAa56F,KAAK46F,aAClBC,EAAgB,YAAc76F,KAAK+nB,OAAO,uBAC1CsG,EAAgB,YAAcruB,KAAK+nB,OAAO,kBAC1C+yE,EAAe96F,KAAK+nB,OAAO,wBAC/B9a,EAAUA,EAAQ7O,QAAO,SAAUwyD,GAC/B,OAAQrnC,EAAWgrE,YAAc,WAAa3jC,EAAOnyD,WAAQ,IAAWmyD,EAAOxvD,SAEnF,IAAI25F,EAAe,IAAM7F,EAAal1F,KAAKg7F,aAAeh7F,KAAK0oB,QAAQ9uB,OACnEqhG,EAAeF,IACnB,gBAAW,CACPZ,QAASA,EACTh0F,KAAMnG,KAAKk7F,OACXjuF,QAASA,EACTioF,WAAYA,EACZiG,gBAAgB,IAEpB,gBAAW,CACPhB,QAASA,EACTh0F,KAAMojB,EAAWb,QACjBzb,QAASA,EACTioF,WAAYA,EACZiG,gBAAgB,IAEpB,IAAIC,EAAiCp7F,KAAK83F,mBAAqB,IAAM+C,GAAiBxsE,KAAmBysE,GAAgBF,IAAeK,GACpIG,IACAp7F,KAAKk4F,uBAAyB6C,IAAiBE,GAEnDhuF,EAAQsmE,OAAO,EAAGtmE,EAAQrT,SAE9Bu/F,YAAa,SAASkC,GAClB,IACIpuF,QAASA,GACTouF,EACJr7F,KAAKiD,KAAKgK,GAAS,IAEvBosF,gBAAiB,SAASz1F,GACtB5D,KAAKu4F,SAASz0B,KAAKlgE,GACnB5D,KAAKo6F,YAAYx2F,EAAEqJ,UAEvBquF,2BAA4B,SAASC,EAAetsE,GAChD,IAAIusE,EAAwB,CAAC,YAAa,UAAW,UACjDC,EAAqBD,EAAsBl9F,QAAQi9F,GACnDG,EAAwBD,GAAsB,EAAID,EAAsBn4E,MAAMo4E,GAAsB,CAACF,GACzG,OAAOG,EAAsBhuE,KAAK6tE,GAAiBtsE,EAAiBssE,KAExEI,2BAA4B,SAAS3qF,EAASqkF,GAC1C,IAAIuG,EAAkB57F,KAAK25F,iBACvBkC,EAAmB77F,KAAK45F,kBACxBnD,EAAaz2F,KAAK+3F,aAClB/mF,EAAQof,iBAAiBhyB,SAAW4S,EAAQie,iBAAiB4sC,WAAa7qD,EAAQof,iBAAiBtuB,OAASkP,EAAQie,iBAAiBm6B,WACrIp4C,EAAQie,iBAAmB,CACvB4sC,UAAW7qD,EAAQie,iBAAiB4sC,UACpCvS,QAASt4C,EAAQie,iBAAiBq6B,UAGtC+rC,EAAeE,YACfqG,OAAkB,EAClBC,OAAmB,EACnBpF,EAAa,CACT/tE,MAAO,MAGP2sE,EAAeC,QACfuG,OAAmB,EACnBpF,EAAa,CACT/tE,MAAO,KAEJ2sE,EAAetX,iBACtB0Y,EAAa,CACT/tE,MAAO,KAGf,eAAK2sE,EAAgB,CAACkG,EAAe15F,KAC7BA,GAAS7B,KAAKs7F,2BAA2BC,EAAevqF,EAAQie,oBAChE2sE,OAAkB,EAClBC,OAAmB,MAI3BA,IACA7qF,EAAQie,iBAAiBm5B,QAAS,GAEtCp3C,EAAQ4qF,gBAAkBA,EAC1B5qF,EAAQ6qF,iBAAmBA,EAC3B7qF,EAAQylF,WAAaA,EAChBzlF,EAAQ8qF,kBACT97F,KAAK25F,iBAAmBiC,EACxB57F,KAAK45F,kBAAoBiC,EACzB77F,KAAK+3F,YAActB,IAG3B,iCAAiCzlF,GAC7B,IAAI+qF,EACJ/7F,KAAKg8F,mBAAmBhrF,GAClB,KAAO,QAAU+qF,EAAgB/qF,EAAQ7K,YAAS,IAAW41F,OAAgB,EAASA,EAAcniG,UACtGoX,EAAQ7K,KAAOsvF,EAAqBzkF,GAAS,IAASA,EAAQ4qF,kBAGtEI,mBAAoB,SAAShrF,GACzB,IAAIuY,EAAavpB,KAAKwpB,YAClBqoE,EAAkB7xF,KAAK+5F,iBAC3B/5F,KAAKs4F,0BAA0Bx0B,KAAK9yD,GACpCA,EAAQg3B,MAAQhoC,KAAK+nB,OAAO,kBAC5B/W,EAAQirF,yBAA2BjrF,EAAQof,iBAC3Cpf,EAAQie,iBAAmB,OAAAx0B,EAAA,WAAO,GAAIuF,KAAKivB,oBAC3C,IAAImmE,GAAgBp1F,KAAKw9E,aAAex9E,KAAKk8F,cACzCl8F,KAAK+nB,OAAO,yCAA2C/nB,KAAKw9E,aAC5DxsE,EAAQg3B,WAAQ,GAEpB,IAAIzY,EAAc,OAAA90B,EAAA,WAAO,CACrB8gE,UAAWv7D,KAAKu7D,YAChBC,SAAUx7D,KAAKw7D,YAChBxqD,EAAQof,kBACPilE,EAAiBF,EAAwB5lE,EAAasiE,EAAiBuD,GAE3E,GADAp1F,KAAK27F,2BAA2B3qF,EAASqkF,IACpCrkF,EAAQ8qF,gBAAiB,CAC1B,IAAIzrB,EAAerwE,KAAKk8F,cACxBlrF,EAAQuqD,UAAYhyC,EAAWgyC,YAC/BvqD,EAAQ6gF,gBAAkBtiE,EAC1Bve,EAAQqkF,eAAiBA,EACzBr1F,KAAKm8F,uBAAyB9G,EAC9Br1F,KAAKk8F,eAAgB,EACrB,kBAAK7rB,GAAgBrwE,KAAKo8F,cAAgBp8F,KAAK2wF,QAAQ3/E,EAASqkF,IAAiBloE,KAAK,KAC9EntB,KAAKq8F,mBAAqBrrF,EAAQsrF,cAClCt8F,KAAKo8F,cAAe,EACpBp8F,KAAKsvB,OAAOwiE,OAAO,KACf9xF,KAAKo8F,cAAe,OAG7BzsE,KAAK,KACJpG,EAAWqmC,OAAO5+C,EAAQsrF,eAC3BxK,OAAO,KACN9xF,KAAKk8F,eAAgB,IAEzB3yE,EAAWqmC,OAAO5vD,KAAKq8F,kBACvBr8F,KAAKq8F,iBAAmBrrF,EAAQsrF,YAC5Bt8F,KAAKk8F,eACL3yE,EAAWqmC,OAAO5vD,KAAKq8F,kBAG/Br8F,KAAKu8F,uBAAuBvrF,IAEhCurF,uBAAwB,SAASvrF,GAC7B,IAAIie,EAAmBje,EAAQie,iBAC/Bje,EAAQue,YAAc,GACtB,IAAIitE,EAAcxrF,EAAQylF,WAAW97C,MACjC8hD,EAAuB,CACvBr+F,QAAS6wB,EAAiB4sC,UAC1B/5D,MAAOmtB,EAAiBm6B,QACxB1iC,OAAQuI,EAAiB61B,SACzBwE,SAAUr6B,EAAiBq6B,QAC3B55B,MAAOT,EAAiBm5B,OACxB34B,MAAOR,EAAiBm5B,OACxBs0C,kBAAmBF,GAAe,eAAgBA,IAAgBvtE,EAAiBm5B,QAEvF,eAAKp3C,EAAQof,kBAAkB,SAAUi6B,EAAYsyC,GAC7CF,EAAqBpyC,KACrBr5C,EAAQue,YAAY86B,GAAcsyC,SAC3B3rF,EAAQof,iBAAiBi6B,OAGpCmyC,IACAxrF,EAAQ2pC,MAAQ6hD,IAGxB3D,kBAAmB,SAAS7nF,GACxB,IAAIue,EAAcve,EAAQue,YACtBqtE,EAAc5rF,EAAQie,mBAAqBje,EAAQie,iBAAiBm5B,OACpEquC,EAAazlF,EAAQylF,WACrBrmE,EAAmBpf,EAAQof,iBAC3BysE,GAAY,IAAU78F,KAAK+nB,OAAO,iBAAmBqI,EACrD0sE,EAAgBD,IAAc7rF,EAAQ8qF,iBAAmBrF,KAAgBmG,GAAexsE,EAAiB1J,OACzGq2E,EAAkBF,GAAaD,EAC/BI,EAAiBD,IAAoB/rF,EAAQ8qF,gBACjD,GAAKvsE,EAAL,CAIIqtE,IACA5rF,EAAQ0e,KAAOH,EAAYG,KAC3B1e,EAAQye,KAAOF,EAAYE,YACpBF,EAAYG,YACZH,EAAYE,MAEnBF,EAAY7I,QACZ6I,EAAY7I,MAAQ1V,EAAQ0V,OAAS6I,EAAY7I,OAErD,IAAIwuE,EAAa,EAASlwE,qBAAqBhU,EAAQ0V,OAAS0J,EAAiB1J,OAAS6I,EAAY7I,OAAO9sB,OACzGoX,EAAQklF,sBACRllF,EAAQ7K,KAAO6K,EAAQklF,oBAAoBrkF,OAAOb,EAAQ7K,OAE1D6K,EAAQmlF,oBACRnlF,EAAQ7K,KAAO6K,EAAQ7K,KAAK0L,OAAOb,EAAQmlF,oBAE1C2G,GAAkBrH,EAAqBzkF,KACpC+rF,GAAmB/rF,EAAQ6qF,iBAC3B7qF,EAAQ7K,KAAO8uF,EAAWjkF,EAAQ6qF,iBAAkB3G,IAEhD8H,IACKh9F,KAAK25F,iBAEC3oF,EAAQisF,qBACfjsF,EAAQ7K,KAAOnG,KAAK25F,iBAAmB35F,KAAK25F,iBAAiB9nF,OAAOb,EAAQ7K,OAF5EnG,KAAK25F,iBAAmB1E,EAAWjkF,EAAQ7K,KAAM,EAAS6e,qBAAqBoL,EAAiB1J,OAAO9sB,SAK/G,IAAI,QAAWoX,EAAQ7K,MAAMmpB,KAAKC,GAAapC,KAAKhnB,IAChD6K,EAAQ7K,KAAOA,EACX62F,IACAh9F,KAAK45F,kBAAoB3E,EAAWjkF,EAAQ7K,KAAM+uF,MAEvDvlE,KAAKyS,IACJpxB,EAAQ7K,MAAO,IAAK,eAAU09B,OAAOzB,MAGzC7S,EAAYmtE,mBAAqBE,IACjC5rF,EAAQ2pC,MAAQ,eAAc3pC,EAAQ2pC,OAAS3pC,EAAQ2pC,MAAQ,GAC/D3pC,EAAQ2pC,MAAMigD,WAAa5pF,EAAQ7K,KAAKvM,QAExCoX,EAAQ2pC,OAAS3pC,EAAQ2pC,MAAMigD,YAAc,KAAM,IAAUxqE,EAAiBssE,oBAAqB,IAAUntE,EAAYmtE,qBACzH1rF,EAAQ2pC,MAAMigD,YAAc,GAEhC56F,KAAKk9F,sBAAsBlsF,GACvB8rF,IACArG,EAAW97C,MAAQ87C,EAAW97C,OAAS,OAAAlgD,EAAA,WAAO,GAAIuW,EAAQ2pC,OAC1D,kBAAK3pC,EAAQ7K,MAAMgnB,KAAKhnB,KAClB,SAAS6K,EAAS7K,EAAM+uF,GAOtB,IANA,IAAIiI,EAAOC,EAAgBC,EAAOC,GAE9BltE,iBAAkBA,GAClBpf,EACA0e,EAAO,QAAUytE,EAAQ,QAAUC,EAAiBpsF,EAAQ0e,YAAS,IAAW0tE,EAAiBA,EAAiBhtE,EAAiBV,YAAS,IAAWytE,EAAQA,EAAQ,EACvK1tE,EAAO,QAAU4tE,EAAQ,QAAUC,EAAiBtsF,EAAQye,YAAS,IAAW6tE,EAAiBA,EAAiBltE,EAAiBX,YAAS,IAAW4tE,EAAQA,EAAQ,EAClK5hG,EAAI,EAAGA,EAAIg0B,EAAMh0B,IAAK,CAC3B,IAAI+7F,EAAc/7F,EAAIi0B,EAClB6tE,EAAavsF,EAAQylF,WAAW/tE,MAChCsuE,EAAQ,IAAMv7F,GAAKuV,EAAQgmF,OAAS,GACxCuG,EAAW/F,GAAeF,EAAaiG,EAAW/F,GAAcrxF,EAAK1K,GAAIy5F,EAAY8B,IAX3F,CAaAhmF,EAAS7K,EAAM+uF,OAI7B,kBAAKlkF,EAAQ7K,MAAMgnB,KAAK,KAChBnc,EAAQ6gF,kBACR7xF,KAAK+5F,iBAAmB/oF,EAAQ6gF,gBAChCr0F,OAAO84B,KAAKtlB,EAAQqkF,gBAAgBn0F,QAAQq6F,IACxCv7F,KAAKg4F,oBAAoBuD,GAAiBv7F,KAAKg4F,oBAAoBuD,IAAkBvqF,EAAQqkF,eAAekG,QAIxHvqF,EAAQof,iBAAmBpf,EAAQirF,8BA3E/Bj8F,KAAKwpB,YAAYomC,OAAO5+C,EAAQsrF,cA6ExCY,sBAAuB,SAASlsF,GACxBA,EAAQie,mBAAqBje,EAAQie,iBAAiBm5B,QAAUvpD,MAAM0nB,QAAQvV,EAAQ7K,aAClF,IAAW6K,EAAQ0e,OACnB1e,EAAQ7K,KAAO6K,EAAQ7K,KAAKkd,MAAMrS,EAAQ0e,YAE1C,IAAW1e,EAAQye,OACnBze,EAAQ7K,KAAO6K,EAAQ7K,KAAKkd,MAAM,EAAGrS,EAAQye,SAIzDspE,sBAAuB,SAASrzF,GAC5B1F,KAAKo4F,eAAet0B,KAAKp+D,IAE7BuzF,iBAAkB,SAAS72D,GACvBpiC,KAAKq4F,UAAUv0B,KAAK1hC,GACpBpiC,KAAKy0E,QAAQ3Q,KAAK,CACdkN,WAAY,YACZ5uC,MAAOA,KAGfo7D,cAAe,WACX,OAAOx9F,KAAKw7D,YAEhBkZ,mBAAoB,SAAS71B,GACzB,IAAI4+C,EACAl0E,EAAavpB,KAAKwpB,YAClB9jB,GAAY,EACZg4F,GAAiB7+C,GAAQ,eAAUA,EAAKmyB,YACxCgqB,EAAah7F,KAAKg7F,aAClB0C,IACA19F,KAAK23F,aAAeqD,IAAeh7F,KAAKw9F,iBAAmBxC,EAAah7F,KAAKw9F,gBACzEx9F,KAAK23F,cACL33F,KAAK63F,cAAe,IAGxBtuE,EAAWqxE,cAAgB,EACvBrxE,EAAWgyC,aAAev7D,KAAK29F,cAC/Bp0E,EAAWgyC,UAAUv7D,KAAK29F,YAAc,GACxC39F,KAAKu7D,UAAUhyC,EAAWgyC,aAC1Bv7D,KAAK65F,kBACLtwE,EAAW+F,OACX5pB,GAAY,GAETg4F,IACPD,EAAoBl0E,EAAWgyC,YAAcv7D,KAAKw7D,WAAaw/B,EAC3DyC,EAAoBz9F,KAAK83F,qBACzB93F,KAAK83F,mBAAqB2F,EACtB,IAAMl0E,EAAWgyC,aAAgBv7D,KAAK+nB,OAAO,0BAC7C/nB,KAAKk4F,sBAAwB,IAGjC,IAAM8C,GAAczxE,EAAWgyC,aAAev7D,KAAK29F,cACnDp0E,EAAWgyC,UAAUv7D,KAAK29F,YAAc,GACpC,aAAe39F,KAAK+nB,OAAO,oBAC3BwB,EAAW+F,OACX5pB,GAAY,KAInBA,IACD1F,KAAK49F,gBAAkB59F,KAAKg4F,oBAC5Bh4F,KAAKg4F,oBAAsB,GAC3Bh4F,KAAK+M,UAAUqzD,aAAe,GAC9BpgE,KAAKy0E,QAAQ3Q,KAAKjlB,GAClB7+C,KAAK+M,UAAUqzD,kBAAe,IAGtCy9B,6BAA8B,SAASngC,GACnC,IAAI/5D,EAAO3D,KACX2D,EAAKm6F,kBAAmB,EACxBpgC,EAASo0B,QAAO,WACZnuF,EAAKm6F,kBAAmB,MAGhCC,sBAAuB,WACnB,OAAO/9F,KAAKm8F,wBAEhB9G,eAAgB,WACZ,OAAOr1F,KAAK49F,iBAEhB/L,gBAAiB,WACb,OAAO7xF,KAAK+5F,kBAAoB,IAEpCnC,WAAY,WACR,OAAO53F,KAAK23F,aAEhBqG,sBAAuB,WACnB,OAAOh+F,KAAKwpB,YAAYoxE,cAE5BA,WAAY,WACR,OAAOr5F,UAAUvB,KAAK83F,oBAAsB93F,KAAKg+F,yBAA2Bh+F,KAAKk4F,wBAErF+F,qBAAsB,WAClB,OAAOj+F,KAAKk4F,uBAEhB8C,WAAY,WACR,OAAOh7F,KAAKwpB,YAAYd,QAAQ9uB,QAEpCskG,gBAAiB,WACb,OAAOl+F,KAAK46F,cAEhBp/B,SAAU,WACN,IAAIjyC,EAAavpB,KAAKwpB,YACtB,OAAKtpB,UAAUtG,QAAW2vB,EAAWgrE,WAG9BhrE,EAAWiyC,SAAS18D,MAAMyqB,EAAYrpB,WAFlC,GAIfy9F,UAAW,WACP,IAAIp8E,EAAQvhB,KAAKk+F,kBAAoBl+F,KAAKk4F,sBACtC18B,EAAWx7D,KAAKw7D,WACpB,OAAIA,GAAYj6C,EAAQ,EACbI,KAAKqQ,IAAI,EAAGrQ,KAAKw8E,KAAK58E,EAAQi6C,IAElC,GAEX4iC,iBAAkB,WACd,OAAOp+F,KAAK63F,cAAgB73F,KAAKwpB,YAAYoxE,cAAgB,GAEjEyD,cAAe,SAAS9uE,EAAaU,GACjC,IAAI1G,EAAavpB,KAAKwpB,YAClBtH,EAAI,IAAI,cACZ,GAAKqH,EAWL,OARA0G,EAAQA,GAAS1G,EAAW0G,QAC5BA,EAAMX,KAAKC,GAAapC,MAAK,SAAUhnB,EAAMw0C,GACrCx0C,IAAStH,MAAM0nB,QAAQpgB,IAAStH,MAAM0nB,QAAQpgB,EAAKA,QACnDw0C,EAAQx0C,EACRA,EAAOA,EAAKA,MAEhB+b,EAAEsN,QAAQrpB,EAAMw0C,MAChBhrB,KAAKzN,EAAE2hB,QACJ3hB,GAEX45E,gBAAiB,WACb,QAAS97F,KAAK89F,kBAElBxuE,KAAM,SAASte,GACX,IAAIrN,EAAO3D,KACPupB,EAAa5lB,EAAK6lB,YAClBtH,EAAI,IAAI,cACZ,GAAIlR,EAAS,CACT,IAAIif,EAAQ1G,EAAW0G,QACnBquE,EAAwB/0E,EAAWgG,cACnCgvE,EAAa,CACbnuE,iBAAkBpf,EAClB8qF,iBAAiB,GAkCrB,OAhCA,eAAK7rE,EAAMuuE,sBAAwB,IAAI,SAAUz/F,EAAGsrD,GAC1CA,KAAck0C,EAAWnuE,mBAC3BmuE,EAAWnuE,iBAAiBi6B,GAAci0C,EAAsBj0C,OAGxErqD,KAAKm4F,cAAgBnnF,EAAQytF,aAC7B96F,EAAKk6F,6BAA6B37E,GAClCqH,EAAWm1E,uBAAuBx8E,GAClCve,EAAKg1F,iCAAiC4F,GACpC,SAASn9B,EAAQoI,GACX,eAAUA,GACV,eAAapI,EAAQoI,GAErBpI,IAJN,EAMA,WACE,IAAK73C,EAAW0G,QACZ,OAAO/N,EAAE2hB,OAAO,YAEpB,kBAAK06D,EAAWp4F,MAAQxC,EAAK06F,cAAcE,EAAWnuE,mBAAmBjD,MAAK,SAAUhnB,EAAMw0C,GAC1F4jD,EAAWp4F,KAAOA,EAClBo4F,EAAW5jD,MAAQA,GAAS,GAC5Bh3C,EAAKk1F,kBAAkB0F,GACnBvtF,EAAQ0rF,wBAAqB,IAAW6B,EAAW5jD,MAAMigD,aACzD2D,EAAW5jD,MAAMigD,WAAa3qE,EAAM2qE,WAAW2D,EAAWnuE,mBAE9D,kBAAKmuE,EAAWp4F,KAAMo4F,EAAW5jD,MAAMigD,YAAYztE,MAAK,SAAUhnB,EAAMy0F,GACpE2D,EAAW5jD,MAAMigD,WAAaA,EAC9B14E,EAAEsN,QAAQrpB,EAAMo4F,EAAW5jD,UAC3BhrB,KAAKzN,EAAE2hB,WACXlU,KAAKzN,EAAE2hB,UACXlgC,EAAKokB,OAAO,mBACT7F,EAAEyN,MAAK,WACVhsB,EAAKs0F,gBAAgB0G,UAAU,YAAaz+F,cAC5C4xF,OAAO,KACP9xF,KAAKm4F,eAAgB,IACtB7nE,UAEH,OAAO/G,EAAW+F,QAG1BgmE,OAAQ,SAASsJ,GACb,OAAOA,EAAO5+F,KAAKwpB,YAAY8rE,SAAWt1F,KAAKwpB,YAAY8F,QAE/DuvE,mBAAoB,WAChB,OAAO7+F,KAAK25F,mBAnuBmB,ICzBvCmF,GAAwB,GACb,IACXrkG,OAAQ,SAASyqE,GACb45B,GAAwBA,GAAsBz/B,QAAQ6F,IAE1DriC,OAAQ,SAAS91B,GACb,OAAO,IAAI+xF,GAAsB/xF,K,uCCqB9BgyF,GAAuB,CAC9BphG,eAAgB,WACZ,MAAO,CACHqhG,eAAgB,EAChBz1E,WAAY,KACZ25B,cAAc,EACdoF,oBAAoB,EACpBtD,kBAAkB,EAClBe,oBAAqB,KACrB92B,iBAAkB,OAClBm5B,OAAQ,CACJpgC,SAAS,EACTwzC,cAAU,EACVD,eAAW,KAIvBsJ,YAAa,CACT1+D,KAAM,EAAQ87D,WAAW5C,QAAQ,IAAI4/B,QAAQ,SAAiB5/B,QAAQ,WAClE,IAAI6/B,EAAe,SAASv7F,EAAM0mD,EAAYxoD,GAC1C,IAAI0nB,EAAa5lB,EAAK6lB,YACtB,GAAID,EAAY,CACZ,QAAI,IAAW1nB,EAAO,CAClB,IAAIgwE,EAAWluE,EAAKw7F,sBAAsB90C,GAC1C,GAAIwnB,IAAahwE,EAAO,CAChB,aAAewoD,GACf9gC,EAAWgyC,UAAU,GAEzBhyC,EAAW8gC,GAAYxoD,GACvB8B,EAAKy7F,6BAA8B,EACnCz7F,EAAKokB,OAAO,UAAYsiC,EAAYxoD,GACpC8B,EAAKy7F,6BAA8B,EACnC,IAAI7jC,EAAYhyC,EAAWgyC,YAE3B,OADA53D,EAAK07F,UAAY,cAAgBh1C,EAC1B9gC,EAAW,cAAgB8gC,EAAa,OAAS,YAAYl9B,KAAK,KACrExpB,EAAK07F,WAAY,EACjB17F,EAAK27F,YAAYx7B,KAAKvI,KAG9B,OAAO,wBAAW/rC,UAAUc,UAEhC,OAAO/G,EAAW8gC,KAEtB,OAAO,GAEPk1C,EAAU,CACVx/B,KAAM,WACF,IAAIp8D,EAAO3D,KACX2D,EAAKu3F,OAAS,GACdv3F,EAAK67F,sBAAwB,KAC7B77F,EAAK8oE,mBAAqB9oE,EAAKs9D,cAAc,WAC7Ct9D,EAAK07F,WAAY,EACjB17F,EAAK87F,uBAAyB,KAC9B97F,EAAK80F,oBAAsB70F,IACvBD,EAAK87F,uBAAyBz/F,KAAKwpB,YAAY6rE,iBAC/C1xF,EAAK+wE,mBAAmB9wE,GACxBD,EAAK87F,uBAAyB,MAElC97F,EAAK+7F,uBAAyB/7F,EAAKg8F,sBAAsBn1E,KAAK7mB,GAC9DA,EAAKm1F,uBAAyBn1F,EAAKo1F,sBAAsBvuE,KAAK7mB,GAC9DA,EAAKq1F,kBAAoBr1F,EAAKs1F,iBAAiBzuE,KAAK7mB,GACpDA,EAAK+0F,kCAAoC/0F,EAAKg1F,iCAAiCnuE,KAAK7mB,GACpFA,EAAKy1F,iBAAmBz1F,EAAK01F,gBAAgB7uE,KAAK7mB,GAClDA,EAAKi8F,mBAAqBj8F,EAAKk8F,kBAAkBr1E,KAAK7mB,GACtDA,EAAK8oE,mBAAmB8H,eAAeC,IAAI7wE,EAAK+7F,wBAChD/7F,EAAKm8F,YAAa,EAClBn8F,EAAKm6F,kBAAmB,EACxBn6F,EAAKo8F,yBAAsB,EAC3Bp8F,EAAKq8F,SAAW,GAChBr8F,EAAK88D,aAAa,uBAClB98D,EAAKs8F,kBAAkBzrB,KAAI,SAAUpyC,GACjC,OAAOz+B,EAAK69D,cAAc,sBAAuB,CAC7Cp/B,MAAOA,OAGfz+B,EAAKu8F,sBAETf,sBAAuB,SAAS90C,GAC5B,OAAOrqD,KAAKwpB,YAAY6gC,MAE5BsV,cAAe,WACX,MAAO,CAAC,UAAW,iBAAkB,oBAAqB,cAAe,oBAAqB,WAElGC,cAAe,SAASh+D,GACpB,GAAI,sBAAwBA,EACxB,MAAO,CACHu+F,aAAa,IAIzBngC,cAAe,WACX,MAAO,CAAC,qBAAsB,mBAAoB,UAAW,SAAU,cAAe,oBAAqB,QAAS,QAAS,gBAAiB,YAAa,WAAY,YAAa,aAAc,qBAAsB,mBAAoB,mBAAoB,gBAAiB,iBAAkB,gBAEvSqsB,MAAO,WACHrsF,KAAKysE,mBAAmB4f,QACxBrsF,KAAKk7F,OAAS,GACdl7F,KAAKkgG,sBAET,wBAAwBrhD,GACpB,GAAIA,EAAKh9C,QAAUg9C,EAAK2sC,eAAiBxrF,KAAK+nB,OAAO,YAAclpB,MAAM0nB,QAAQs4B,EAAKh9C,QAAUhD,MAAM0nB,QAAQs4B,EAAK2sC,eAAgB,CAC/H,IAAI4U,EAAiBvhD,EAAKh9C,QAAUg9C,EAAK2sC,cACzC,GAAI4U,EAAgB,CAChB,IAAInwE,EAAQjwB,KAAKiwB,QACbA,IACAA,EAAMowE,OAASxhD,EAAKh9C,OAM5B,OAHI7B,KAAKsgG,gCAAgCzhD,IACrC7+C,KAAK2wF,QAAQ3wF,KAAK+nB,OAAO,wBAEtB,EAEX,OAAO,GAEXu4E,gCAAiC,SAASzhD,GACtC,OAAO,GAEX2hB,cAAe,SAAS3hB,GACpB,IACIt1B,EACAg3E,EAFA58F,EAAO3D,KAIX,SAAS0gE,IACL7hB,EAAK6hB,SAAU,EAEnB,GAAI,eAAiB7hB,EAAKj9C,MAAQi9C,EAAKj9C,OAASi9C,EAAK4sC,UAAYzrF,KAAKwgG,wBAAwB3hD,GAC1F6hB,SAGJ,OAAQ7hB,EAAKj9C,MACT,IAAK,eACL,IAAK,qBACL,IAAK,mBACL,IAAK,iBACD8+D,IACA,MACJ,IAAK,mBACL,IAAK,UACL,IAAK,aACL,IAAK,YACDA,IACA/8D,EAAK0oF,QACL,MACJ,IAAK,SAED,GADA9iE,EAAa5lB,EAAK4lB,aACdA,IACAg3E,EAAuB58F,EAAK88F,kBAAkBl3E,GAC1Cg3E,GAAsB,CACtB,IAAIhlC,EAAYhyC,EAAWgyC,YAC3Bv7D,KAAKq/F,UAAYkB,EAAqBG,mBACtCn3E,EAAW+F,OAAOnC,KAAK,KACnBntB,KAAKq/F,WAAY,EACjB17F,EAAK27F,YAAYx7B,KAAKvI,KAIlCmF,IACA,MACJ,IAAK,aACD/8D,EAAK0oF,QACL,MACJ,IAAK,UACD9iE,EAAa5lB,EAAK4lB,aACdA,GAAcA,EAAW7jB,aAAem5C,EAAKj9C,OAASi9C,EAAK4sC,WAC3DzrF,KAAK2gG,gCAAiC,EACtCp3E,EAAW+F,QAEf,MACJ,QACI3rB,EAAK1D,SAAS4+C,KAG1B0jB,QAAS,WACL,OAAQviE,KAAK8/F,YAEjBc,cAAe,WACX,OAAO5gG,KAAKwpB,aAAexpB,KAAKwpB,YAAYA,aAEhD0oE,kBAAmB,SAAS2O,GACxB,OAAO7gG,KAAK8gG,oBAAe,EAAQD,IAEvCC,eAAgB,SAAS1iG,EAAQyiG,GAC7B,IAAIt3E,EAAavpB,KAAKwpB,YAClBm9C,EAAoB3mE,KAAKysE,mBAC7B,GAAIljD,EAAY,MACR,IAAWnrB,IACXA,EAASmrB,EAAWnrB,UAExB,IAAI2iG,EAAmB/gG,KAAKghG,6BACxBD,IACIp6B,EAAkB+lB,uBAAyB/lB,EAAkBylB,2BAC7DhuF,EAAS,OAAcwqB,eAAe,CAACm4E,EAAkB3iG,KAGjEA,EAASuoE,EAAkBgsB,aAAav0F,EAAQyiG,GAAmBt3E,EAAW0F,mBAAmB4sC,WAErG,OAAOz9D,GAEX6iG,UAAW,WACP,OAAIjhG,KAAKw/D,kBACLx/D,KAAKkhG,eAAiB,IAAI,cACnBlhG,KAAKkhG,gBAET,qBAEX5hC,eAAgB,WACZ,IAAIryD,EAAUjN,KAAKggG,SACnB,GAAI/yF,EAAQrT,OAAQ,CAChBoG,KAAKggG,SAAW,GAChB,IAAI13C,EAAqBr7C,EAAQurB,MAAMo4B,GAAUA,EAAOtI,oBACxDtoD,KAAKmhG,YAAY,IAAMl0F,EAAQrT,OAASqT,EAAQ,GAAK,CACjDq7C,mBAAoBA,IAGxBtoD,KAAKkhG,iBACLlhG,KAAKkhG,eAAe1xE,UACpBxvB,KAAKkhG,eAAiB,OAG9BvI,iCAAkC,SAAS/0F,GACvC,IAAIw9F,EACAz6B,EAAoB3mE,KAAKysE,mBACzBljD,EAAavpB,KAAKwpB,YAClB4G,EAAmBxsB,EAAEwsB,iBACrBxsB,EAAEk4F,kBAAoB1rE,EAAiBquE,eAG3CruE,EAAiBhyB,OAAS4B,KAAK8gG,eAAe1wE,EAAiBhyB,QAC3D,KAAO,QAAUgjG,EAAwBhxE,EAAiBhyB,cAAW,IAAWgjG,OAAwB,EAASA,EAAsBxnG,SAAW,MAAQw2B,EAAiBhyB,OAAO,KAClLwF,EAAEuC,KAAO,GACTvC,EAAE+2C,MAAQ/2C,EAAE+2C,OAAS,GACrB/2C,EAAE+2C,MAAMigD,WAAa,GAEpBj0B,EAAkB+lB,uBACnB/lB,EAAkBwgB,sBAAsB59D,GAE5CvpB,KAAKqhG,kBAAmB,EACxB16B,EAAkB8qB,sBAAsBloE,GAAavpB,KAAK2gG,gCAC1D3gG,KAAKqhG,kBAAmB,EACxBjxE,EAAiBtuB,KAAO6kE,EAAkB2pB,8BAC1ClgE,EAAiB1J,MAAQigD,EAAkB+pB,+BAC3CnnE,EAAWznB,KAAKsuB,EAAiBtuB,MACjCynB,EAAW7C,MAAM0J,EAAiB1J,OAClC0J,EAAiBtuB,KAAO6kE,EAAkB2pB,6BAA6B/mE,EAAW0F,mBAAmBm6B,SACrGxlD,EAAE8iB,MAAQigD,EAAkB+pB,8BAA8BnnE,EAAW0F,mBAAmB61B,YAE5F66C,sBAAuB,SAAS/7F,GAC5B,IAGI4iB,EACAkmC,EACA40C,EALA39F,EAAO3D,KACPqxE,EAAcztE,EAAEytE,YAChBsC,EAAc/vE,EAAE+vE,YAIpB,GAAItC,EAAYjoB,SAAWioB,EAAYvsB,SAC/BnhD,EAAK6lB,cAAgB7lB,EAAK09F,mBAC1B19F,EAAK6lB,YAAY9C,MAAM/iB,EAAK8oE,mBAAmBikB,gCAC/C/sF,EAAK6lB,YAAY1nB,KAAK6B,EAAK8oE,mBAAmB6jB,+BAC9C3sF,EAAK2xF,eAEN,GAAIjkB,EAAY/jD,UACnBo/B,EAAe/oD,EAAK8oE,mBAAmBoK,aAAajzE,EAAEghB,YAAa,iBAC/D+uD,EAAYjnB,cAAgBinB,EAAYlnB,YAAc5tD,MAAM0nB,QAAQmmC,IAAiBinB,EAAYntD,aAAemtD,EAAYj+C,yBAA2Bi+C,EAAYrsE,kBACnKkf,EAAc7iB,EAAK8oE,mBAAmBoK,aAAajzE,EAAEghB,YAAa,gBAC9D/lB,MAAM0nB,QAAQmmC,SAAiB,IAAW9oD,EAAEghB,aAAe,eAAU4B,KAAiBmtD,EAAYj+C,yBAA2Bi+C,EAAYntD,eACzI7iB,EAAK49F,eACLD,GAAgB,IAGnB39F,EAAK69F,kBAAqB,OAAcv4E,aAAa0qD,EAAa,CAAC,QAAS,eAAgB,cAAe,sBAAuB,0BAA2B,eAAgB,gBAC9KhwE,EAAK8oE,mBAAmB8H,eAAeC,KAAI,SAAUitB,EAAmB7wC,GACpE,IAAI8wC,EACJ/9F,EAAK8oE,mBAAmB8H,eAAezsD,OAAO25E,GAC9C99F,EAAKw9F,YAAY,CACb74C,oBAAoB,EACpBq5C,wBAAyB,OAAS/wC,QAAU,IAAWA,GAAkB,QAAU8wC,EAAsB9wC,EAAOygB,mBAAgB,IAAWqwB,OAA3E,EAA0GA,EAAoBC,6BAItM,eAAUhuB,EAAYhqB,UAAU,CAChC,IAAI74C,EAASnN,EAAK8oE,mBAAmBoK,aAAajzE,EAAEghB,aAChD9T,IAAW,eAAUA,EAAO0V,cAAgB,eAAU1V,EAAO47C,iBAC7D/oD,EAAK49F,eACLD,GAAgB,IAIvBA,GAAiBjwB,EAAYxV,WAC9Bl4D,EAAK2xF,UAGb5gB,mBAAoB,SAAS9wE,GACzB,IAAID,EAAO3D,KACPupB,EAAa5lB,EAAK6lB,YAClBm9C,EAAoBhjE,EAAK8oE,mBACzBm1B,GAA4B,EAChC5hG,KAAK2gG,gCAAiC,EAClCp3E,IAAe5lB,EAAKk+F,wBACpBl+F,EAAKk+F,uBAAwB,EAC7B,kBAAKl+F,EAAK8oE,mBAAmB4e,gBAAgB9hE,IAAa4D,MAAK,WACvDxpB,EAAKm8F,YACLn8F,EAAKo1F,uBAAsB,GAE3B6I,GAA6Bh+F,GAAKA,EAAEk+F,YACpCl+F,EAAEk+F,WAAY,GAElBn+F,EAAKk+F,uBAAwB,EAC7B,IAQId,EARAgB,EAAkBp+F,EAAK69F,iBAC3B79F,EAAK69F,kBAAmB,EACpBO,IAAoBp+F,EAAKq+F,yBAA2BjB,EAAmBp9F,EAAKq9F,6BAA8BD,GAAoBA,EAAiBnnG,SAC/I,OAAOkK,IAAI,QAASH,EAAKoJ,UAAU80D,MACnCl+D,EAAK49F,gBAEL59F,EAAKw9F,YAAYv9F,GAAG,MAGxB+rB,MAAK,WACLhsB,EAAKk+F,uBAAwB,KAE7Bl+F,EAAKk+F,wBACLD,GAA4B,EAC5Bj+F,EAAKo1F,uBAAsB,IAE/Bp1F,EAAK69F,kBAAoB79F,EAAK8oE,mBAAmBigB,sBACjD/oF,EAAKq+F,uBAAyBr7B,EAAkBylB,0BAGxD2M,sBAAuB,SAASrzF,GAC5B1F,KAAK8/F,WAAap6F,EAClB1F,KAAKiiG,uBAEThJ,iBAAkB,SAASr1F,GACvB5D,KAAKigG,kBAAkBn8B,KAAKlgE,IAEhCi8F,kBAAmB,SAAS5yF,GACxBjN,KAAKw4F,OAAO10B,KAAK72D,IAErBi1F,UAAW,WACPliG,KAAKigG,kBAAkBn8B,KAAK,OAAOpoC,MAAM58B,MAAM,OAAQoB,aAE3DugG,kBAAmB,SAASl3E,GACxB,IAAIgyC,EAAYv7D,KAAK+nB,OAAO,oBACxByzC,EAAWx7D,KAAK+nB,OAAO,mBACvBo6E,EAAgBniG,KAAK+nB,OAAO,kBAC5Bq6E,EAAgBpiG,KAAK+nB,OAAO,kBAC5Bs6E,EAAa,aAAeD,EAC5BE,EAAc,YAAcF,EAC5B7N,EAAW4N,GAAiBG,GAAeD,EAC3CE,GAAoB,EACpBC,GAAoB,EACpB9B,GAAqB,EAczB,OAbAn3E,EAAWmzE,mBAAmB2F,QAC1B,IAAWF,GAAiB54E,EAAWgrE,aAAeA,IACtDhrE,EAAWgrE,SAASA,GACpBgO,GAAoB,QAEpB,IAAW/mC,GAAYjyC,EAAWiyC,aAAeA,IACjDjyC,EAAWiyC,SAASA,GACpBgnC,GAAoB,QAEpB,IAAWjnC,GAAahyC,EAAWgyC,cAAgBA,IACnDhyC,EAAWgyC,UAAUA,GACrBmlC,GAAqB,MAErB6B,GAAqBC,GAAqB9B,IACnC,CACH6B,kBAAmBA,EACnBC,kBAAmBA,EACnB9B,mBAAoBA,IAKhC+B,6BAA8B,WAC1B,IAAIl5E,EAAavpB,KAAK+nB,OAAO,cAC7B,OAAIlpB,MAAM0nB,QAAQgD,GACP,CACH0G,MAAO,CACHxxB,KAAM,QACN0H,KAAMojB,EACNzuB,IAAKkF,KAAK+nB,OAAO,aAItBwB,GAEXm5E,gBAAiB,WACb,IAAIC,EAAgB3iG,KAAKwpB,YACzBxpB,KAAKC,WACL,IAAIspB,EAAavpB,KAAKwpB,YAGtB,GAFAxpB,KAAK2gG,gCAAiC,EACtC3gG,KAAKw/F,sBAAwB,KACzBj2E,EAAY,CACZ,IAAIg3E,EAAuBvgG,KAAKygG,kBAAkBl3E,GAClDvpB,KAAKq/F,UAAY,OAASkB,QAAwB,IAAWA,OAAuB,EAASA,EAAqBG,mBAClH1gG,KAAK4iG,cAAcr5E,QACZo5E,GACP3iG,KAAKmhG,eAGb0B,gBAAiB,WACb,IAAIl/F,EAAO3D,KACPupB,EAAa5lB,EAAK6lB,YAClBvqB,EAAS,IAAI,cAWjB,OAVA,kBAAKe,KAAKysE,mBAAmBkkB,SAAQ,IAAOmB,QAAO,WAC3CvoE,EACAA,EAAW+F,OAAOnC,MAAK,WACnBxpB,EAAK07F,WAAY,EACjBpgG,EAAOuwB,QAAQ1wB,MAAMG,EAAQiB,cAC7ByvB,KAAK1wB,EAAO4kC,QAEhB5kC,EAAOuwB,aAGRvwB,EAAOqxB,WAElBwyE,oBAAqB,SAASp6E,GAC1B,OAAOA,EAAMrF,MAAM,IAEvB0/E,iBAAkB,WACd,OAAO,GAEXC,cAAe,SAASt6E,EAAOkoC,GAC3B,IAAIjtD,EAAO3D,KACPijG,EAAgBt/F,EAAKo/F,mBACrB/xB,EAAapgB,EAAOogB,WACpBxE,EAAiB7oE,EAAK8oE,mBAAmBC,kBAAkB,KAAM,eAAiBsE,GAClFkyB,EAAev/F,EAAKu3F,OACpBiI,EAAkB,WAAanyB,GAAckyB,EAAatpG,OAAS,EAAIspG,EAAaA,EAAatpG,OAAS,GAAK,KAC/GsyE,EAAY,eAAU,OAASi3B,QAAmB,IAAWA,OAAkB,EAASA,EAAgBj3B,WAAai3B,EAAgBj3B,UAAY,EAAI,EACrJl7D,EAAU,CACVw7D,eAAgBA,EAChBN,UAAWA,GAEXjtE,EAAS,GAQb,OAPA,eAAKypB,GAAO,SAAUtnB,EAAO2F,GACrB,eAAUA,KACViK,EAAQ64D,SAAWzoE,EAAQ6hG,EAC3Bl8F,EAAOpD,EAAKy/F,aAAar8F,EAAMiK,GAC/B/R,EAAOgE,KAAK8D,OAGb9H,GAEXmkG,aAAc,SAASr8F,EAAMiK,GAIzB,OAHAjK,EAAO/G,KAAKqjG,kBAAkBt8F,EAAMiK,GACpCjK,EAAO/G,KAAKsjG,iBAAiBv8F,EAAMiK,GACnCjK,EAAKmlE,UAAYl7D,EAAQk7D,YAClBnlE,GAEXs8F,kBAAmB,SAASl9F,GACxB,MAAO,CACHgL,QAAS,OACThL,KAAMA,EACNrL,IAAKkF,KAAK06F,MAAMv0F,KAGxBm9F,iBAAkB,SAASC,EAAUvyF,GAEjC,OADAuyF,EAASztE,OAAS91B,KAAKwjG,mBAAmBD,EAASp9F,KAAM6K,EAAQw7D,gBAC1D+2B,GAEXC,mBAAoB,SAASr9F,EAAMmnB,EAASm2E,GAGxC,IAFA,IACI5hG,EADAi0B,EAAS,GAEJr6B,EAAI,EAAGA,EAAI6xB,EAAQ1zB,OAAQ6B,IAAK,CACrC,IAAIqV,EAASwc,EAAQ7xB,GACrBoG,EAAQ4hG,OAAa,EAAS,KACzB3yF,EAAO6c,UACJ7c,EAAOoT,mBACPriB,EAAQiP,EAAOoT,mBAAmB/d,GAC3B2K,EAAOM,YACdvP,EAAQsE,EAAK2K,EAAOM,aAG5B0kB,EAAO7yB,KAAKpB,GAEhB,OAAOi0B,GAEX4tE,aAAc,SAAS9yC,GACf,WAAaA,EAAOogB,WACpBhxE,KAAK2jG,mBAAmB/yC,GACjB5wD,KAAK0oB,QAAQ9uB,QAAUg3D,EAAOtI,oBAAsB,YAAcsI,EAAOogB,WAChFhxE,KAAK4jG,kBAAkBhzC,GAChB,YAAcA,EAAOogB,YAC5BhxE,KAAK6jG,iBAAiBjzC,IAG9BizC,iBAAkB,SAASjzC,GACvB5wD,KAAKk7F,OAAStqC,EAAOloC,MAAMrF,MAAM,IAErCygF,eAAgB,SAASlzC,GACrB,IAAImzC,EAAanzC,EAAOmzC,WAAW1gF,MAAM,GACrC4/E,EAAgBjjG,KAAK+iG,mBACzBgB,EAAWjiG,MAAK,SAAUC,EAAGC,GACzB,OAAOD,EAAIC,KAEf,IAAK,IAAIvG,EAAI,EAAGA,EAAIsoG,EAAWnqG,OAAQ6B,IAAK,CACxC,IAAIuoG,EAAoBD,EAAWtoG,GAC/Bm1D,EAAOqzC,2BACPD,GAAqBf,GAErBe,EAAoB,IACpBD,EAAWxwB,OAAO93E,EAAG,GACrBA,KAGR,OAAOsoG,GAEXJ,mBAAoB,SAAS/yC,GACzB,IAOIogB,EAPArtE,EAAO3D,KACP0oB,EAAQkoC,EAAOloC,MACfq7E,EAAapgG,EAAKmgG,eAAelzC,GACjCqyC,EAAgBt/F,EAAKo/F,mBACrBz6C,EAAqB3kD,EAAKokB,OAAO,sBACjCm8E,GAAa,EACbC,EAAqB,EAEzBvzC,EAAOloC,MAAQ,GACfkoC,EAAOmzC,WAAa,GACpBnzC,EAAOwgB,cAAgB,GACvBxgB,EAAOygB,YAAc,GACrB,IAAI+yB,EAAa,SAASC,EAAOC,EAAOC,GACpC,IAAItlG,EAASolG,GAASC,GAAS,eAAaD,EAAMvpG,IAAKwpG,EAAMxpG,KAI7D,OAHImE,GAAUslG,IACVtlG,EAASolG,EAAMlzF,UAAYmzF,EAAMnzF,UAAY,WAAamzF,EAAMnzF,SAAWkzF,EAAMl3B,YAAcm3B,EAAMn3B,YAElGluE,GAEX,eAAK8kG,GAAY,SAAU3iG,EAAOyoE,GAC9B,IAAIuH,EAEJ,GADAvH,GAAYs6B,EAAqBlB,EAC7BiB,IAAcr6B,EAAlB,CAGAq6B,EAAYr6B,EACZ,IAAI26B,EAAU7gG,EAAKu3F,OAAOrxB,GACtB46B,EAAc9gG,EAAKu3F,OAAOrxB,EAAW,GACrC66B,EAAUh8E,EAAMmhD,GAChB86B,EAAcj8E,EAAMmhD,EAAW,GAC/B06B,EAASH,EAAWI,EAASC,IAAgBL,EAAWM,EAASC,GAKrE,GAJID,IACAA,EAAQ76B,SAAWA,EACnBjZ,EAAOloC,MAAMzlB,KAAKyhG,IAElBF,GAAWE,GAAWN,EAAWI,EAASE,EAASH,GACnDvzB,EAAa,SACbrtE,EAAKu3F,OAAOrxB,GAAY66B,EACpBF,EAAQ76C,UAAY+6C,EAAQ/6C,QAC5BiH,EAAOloC,MAAM6qD,QAAQ,EAAG,EAAG,CACvB5pB,QAAS+6C,EAAQ/6C,UAEdrB,IAAuBsI,EAAOg0C,eACrCxzB,EAAgBztE,EAAKkhG,kBAAkBL,EAASE,EAAS76B,EAAWo5B,SAErE,GAAIyB,IAAYF,GAAWG,GAAeP,EAAWI,EAASG,EAAaJ,GAC9EvzB,EAAa,SACbrtE,EAAKu3F,OAAO3nB,OAAO1J,EAAU,EAAG66B,GAChCP,SACG,GAAIK,IAAYE,GAAWD,GAAeL,EAAWM,EAASD,EAAaF,GAC9EvzB,EAAa,SACbrtE,EAAKu3F,OAAO3nB,OAAO1J,EAAU,GAC7Bs6B,IACAD,GAAa,MACV,KAAIQ,EAIP,OAHA1zB,EAAa,SACbrtE,EAAKu3F,OAAOrxB,GAAY66B,EAI5B9zC,EAAOmzC,WAAW9gG,KAAK4mE,EAAWo5B,GAClCryC,EAAOygB,YAAYpuE,KAAK+tE,GACxBpgB,EAAOwgB,cAAcnuE,KAAKmuE,QAGlC0zB,eAAgB,SAASC,EAAQC,EAAQC,EAAiBrgF,EAAasgF,GACnE,GAAInqG,KAAKC,UAAU+pG,EAAOjvE,OAAOlR,MAAkB7pB,KAAKC,UAAUgqG,EAAOlvE,OAAOlR,IAC5E,OAAO,EAGX,SAASugF,EAAet0F,EAAK+T,GACzB,QAAO/T,EAAIu0F,qBAAiB,IAAWv0F,EAAIu0F,eAAexgF,GAE9D,OAAIugF,EAAeJ,EAAQngF,KAAiBugF,EAAeH,EAAQpgF,IAKvEygF,yBAA0B,SAASb,EAASE,EAASO,EAAiBC,GAClE,IAAI9zB,EACJ,GAAIozB,EAAQrzF,UAAYuzF,EAAQvzF,QAAS,CACrC,GAAI,UAAYuzF,EAAQvzF,SAAW,gBAAkBuzF,EAAQvzF,UACzDigE,EAAgB,GACZ,WAAaszB,EAAQvzF,SACrB,IAAK,IAAIyT,EAAc,EAAGA,EAAc4/E,EAAQ1uE,OAAOl8B,OAAQgrB,IACvD5kB,KAAK8kG,eAAeN,EAASE,EAASO,EAAiBrgF,EAAasgF,IACpE9zB,EAAcnuE,KAAK2hB,GAK/B,UAAY8/E,EAAQvzF,SAAWuzF,EAAQz/E,aAAeu/E,EAAQv/E,YAAcu/E,EAAQ18B,QACpFsJ,EAAgBozB,EAAQ18B,MAAMhsE,IAAI,CAACuuE,EAAMjpE,KACrC,IAAIkkG,EACJ,MAAO,iBAAmB,QAAUA,EAAej7B,EAAKv5D,cAAW,IAAWw0F,OAAe,EAASA,EAAa7mG,MAAQ2C,GAAS,IACrIhD,OAAOgD,GAASA,GAAS,IAGpC,OAAOgwE,GAEXyzB,kBAAmB,SAASL,EAASE,EAASO,EAAiBC,GAC3D,IAAIK,EACAC,EAAuBxlG,KAAKqlG,yBAAyBb,EAASE,EAASO,EAAiBC,GAmB5F,OAlBI,QAAUK,EAAwBC,SAAyB,IAAWD,GAAyBA,EAAsB3rG,QAAUoG,KAAK+nB,OAAO,qBAC3Iy9E,OAAuB,GAEvBA,IACAhB,EAAQ18B,OAAS08B,EAAQ18B,MAAM5mE,SAAQ,SAAUmpE,EAAMzlD,GACnD,IAAI6gF,EAAgBD,EAAqBlnG,QAAQsmB,IAAgB,GAC5D6gF,GAAiBp7B,GAAQA,EAAKmJ,QAC/BnJ,EAAKmJ,OAAOkxB,MAGpBA,EAAQlxB,OAASgxB,EAAQhxB,OACzBkxB,EAAQ73F,MAAQ23F,EAAQ33F,MACxB63F,EAAQ58B,MAAQ08B,EAAQ18B,MACpBo9B,IACAR,EAAQ5yB,UAAY0yB,EAAQ1uE,QAEhC0uE,EAAQhxB,QAAUgxB,EAAQhxB,OAAOkxB,IAE9Bc,GAEXE,cAAe,SAASrB,EAAOC,GAC3B,GAAIvpG,KAAKC,UAAUqpG,EAAMvuE,UAAY/6B,KAAKC,UAAUspG,EAAMxuE,QACtD,OAAO,EAEX,GAAI,CAAC,WAAY,WAAY,UAAW,aAAapI,KAAK1mB,GAASq9F,EAAMr9F,KAAWs9F,EAAMt9F,IACtF,OAAO,EAEX,GAAI,UAAYq9F,EAAMlzF,SAAW,gBAAkBkzF,EAAMlzF,QAAS,CAC9D,IAAIw0F,EAAaC,EAAaC,EAAcC,EACxCC,EAAgB1B,EAAMp/E,aAAeq/E,EAAMr/E,WAC3C+gF,EAAoBjrG,KAAKC,UAAUqpG,EAAM4B,gBAAkBlrG,KAAKC,UAAUspG,EAAM2B,cAChFC,GAAqB,QAAUP,EAActB,EAAMl+F,YAAS,IAAWw/F,OAAc,EAASA,EAAY35E,mBAAqB,QAAU45E,EAActB,EAAMn+F,YAAS,IAAWy/F,OAAc,EAASA,EAAY55E,kBAAoB,QAAU65E,EAAexB,EAAMl+F,YAAS,IAAW0/F,OAAe,EAASA,EAAa1O,6BAA+B,QAAU2O,EAAexB,EAAMn+F,YAAS,IAAW2/F,OAAe,EAASA,EAAa3O,0BAC3b,IAAK4O,IAAkBC,IAAsBE,EACzC,OAAO,EAGf,OAAO,GAEXtC,kBAAmB,SAAShzC,GACxB,IAAIu1C,EACApC,EAAa,GACb3yB,EAAgB,GAChBC,EAAc,GACd3oD,EAAQ,GACR09E,EAAgB,GAChBlB,EAAe,QAAUiB,EAAuB,OAASv1C,QAAU,IAAWA,OAAS,EAASA,EAAOs0C,oBAAiB,IAAWiB,GAAuBA,EAE9J,SAASE,EAAUx1F,GACf,GAAIA,EACA,OAAOA,EAAIM,QAAU,IAAMpW,KAAKC,UAAU6V,EAAI/V,KAGtD,IAAIwrG,EAAetmG,KAAKk7F,OACpBqL,EAAWD,EAAajjF,QAC5ButC,EAAOloC,MAAMxnB,SAAQ,SAAU6F,EAAM3F,GACjC,IAAItG,EAAMurG,EAAUt/F,GACpBq/F,EAActrG,GAAOsG,EACrB2F,EAAK8iE,SAAWzoE,KAEpB,IAAInC,EAAS,gBAAYsnG,EAAU31C,EAAOloC,MAAO29E,EAAW,CAAChC,EAAOC,MAC3DtkG,KAAK0lG,cAAcrB,EAAOC,KAG3BD,EAAMv8B,QACNu8B,EAAM7wB,QAAU6wB,EAAM7wB,OAAO8wB,GAC7BD,EAAMv8B,MAAM5mE,SAAQ,SAAUmpE,GACtBA,GAAQA,EAAKmJ,QACbnJ,EAAKmJ,OAAO8wB,GAAO,QAIxB,IAENrlG,GAILA,EAAOiC,QAAQ0vD,IACX,OAAQA,EAAOnyD,MACX,IAAK,SACD,IAAI2C,EAAQwvD,EAAOxvD,MACfsjG,EAAU9zC,EAAOzqD,KACjBq+F,EAAU5zC,EAAO4zC,QACjBgB,EAAuBxlG,KAAK6kG,kBAAkBL,EAASE,EAAStjG,EAAO8jG,GAC3EnB,EAAW9gG,KAAK7B,GAChBiwE,EAAYpuE,KAAK,UACjBylB,EAAMzlB,KAAKyhG,GACX4B,EAAallG,GAASsjG,EACtBtzB,EAAcnuE,KAAKuiG,GACnB,MACJ,IAAK,SACDzB,EAAW9gG,KAAK2tD,EAAOxvD,OACvBiwE,EAAYpuE,KAAK,UACjBylB,EAAMzlB,KAAK2tD,EAAOzqD,MAClBirE,EAAcnuE,UAAK,GACnBqjG,EAAa/yB,OAAO3iB,EAAOxvD,MAAO,EAAGwvD,EAAOzqD,MAC5C,MACJ,IAAK,SACD49F,EAAW9gG,KAAK2tD,EAAOxvD,OACvBiwE,EAAYpuE,KAAK,UACjBqjG,EAAa/yB,OAAO3iB,EAAOxvD,MAAO,GAClCsnB,EAAMzlB,KAAK2tD,EAAO4zC,SAClBpzB,EAAcnuE,UAAK,MAG/B2tD,EAAOtI,oBAAqB,EAC5BsI,EAAOogB,WAAa,SACpBpgB,EAAOmzC,WAAaA,EACpBnzC,EAAOwgB,cAAgBA,EACvBxgB,EAAOygB,YAAcA,EACrBzgB,EAAOloC,MAAQA,EACX69E,EAAS3sG,SACTg3D,EAAOs0C,cAAe,GAE1BllG,KAAKwmG,mBAAmB38B,IACpB,IAAI48B,EAAoBzmG,KAAK0mG,iBAAmB,EAC5CC,EAAiB3mG,KAAK4mG,oBACtBpC,EAAU+B,EAAS18B,EAAW48B,GAC9B3rG,EAAMurG,EAAU7B,GAChBqC,EAAqBT,EAActrG,GACvC,OAAO+rG,GAAsB,EAAIA,EAAqBF,EAAiB98B,EAAW,KA9ClF7pE,KAAK6jG,iBAAiBjzC,IAiD9B41C,mBAAoB,OACpBM,mBAAoB,SAASp+E,GACzB,OAAOA,GAEXq+E,iBAAkB,SAASn2C,GACvB,IAAIloC,EACAa,EAAavpB,KAAKwpB,YAClBwnD,EAAapgB,EAAOogB,YAAc,UAEtC,GADApgB,EAAOogB,WAAaA,EAChBznD,EAAY,CACZ,IAAIy9E,EAAuBhnG,KAAKw/F,sBAC5B5uC,EAAOq2C,wBAA0BD,EACjCt+E,EAAQs+E,GAERt+E,EAAQkoC,EAAOloC,OAASa,EAAWb,QACnCA,EAAQ1oB,KAAK8iG,oBAAoBp6E,GACjCA,EAAQ1oB,KAAKgjG,cAAct6E,EAAOkoC,GAClC5wD,KAAKw/F,sBAAwB92E,GAEjCA,EAAQ1oB,KAAK8mG,mBAAmBp+E,EAAOkoC,GACvCA,EAAOloC,MAAQA,EACf,IAAI69E,EAAWvmG,KAAKk7F,OAAOthG,SAAW8uB,EAAM9uB,QAAUoG,KAAKk7F,OAC3Dl7F,KAAK0jG,aAAa9yC,GAClB,IAAIqyC,EAAgBjjG,KAAK+iG,mBACzB,eAAK/iG,KAAKk7F,OAAQ,CAAC95F,EAAO2F,KACtBA,EAAK8iE,SAAWzoE,EAAQ6hG,EACpBsD,IACAx/F,EAAK+gE,MAAQy+B,EAASnlG,GAAO0mE,OAAS,IAE1C,IAAI48B,EAAUh8E,EAAMtnB,GAChBsjG,IACA39F,EAAKmgG,UAAYxC,EAAQwC,aAGjClnG,KAAK0mG,gBAAkB1mG,KAAK4mG,yBAE5B5mG,KAAKk7F,OAAS,IAGtB7B,gBAAiB,SAASz1F,GACtB,IAAIstE,EAAOlxE,KAAKmnG,iBACZ59E,EAAavpB,KAAKupB,aAClBA,GACA3lB,EAAEqJ,QAAQ/L,SAAQ,SAAU0vD,GACxB,GAAI,WAAaA,EAAOnyD,MAAQmyD,EAAOxvD,OAAS,EAAG,CAE/C,IADA,IAAI8qE,EAAY,EACPzwE,EAAI,EAAGA,EAAIm1D,EAAOxvD,MAAO3F,IAAK,CACnC,IAAIoV,EAAMqgE,EAAKz1E,IACXoV,GAAQ,SAAWA,EAAIM,SAAW,UAAYN,EAAIM,SAClD+6D,IAGRtb,EAAOxvD,MAAQ8qE,OAK/Bi1B,YAAa,SAASvwC,EAAQw2C,GAGtB,IAAIC,EADR,GADAz2C,EAASA,GAAU,QACf,IAAW5wD,KAAK+/F,oBAEhBnvC,EAAOtI,mBAAqB,QAAU++C,EAAwBz2C,EAAOtI,0BAAuB,IAAW++C,EAAwBA,EAAwBrnG,KAAK+/F,oBAC5JnvC,EAAO02C,qBAAuB12C,EAAO02C,sBAAwBtnG,KAAKunG,2BAC/D,GAAI32C,EAAO3jD,QACd2jD,EAAOtI,mBAAqBtoD,KAAK+nB,OAAO,2BACrC,GAAIq/E,EAAe,CACtB,IAAI/R,EAAiBr1F,KAAKupB,aAAa8rE,iBACvCzkC,EAAOtI,mBAAqB+sC,IAAmBA,EAAevwC,WAAauwC,EAAex5B,WAAa77D,KAAK+nB,OAAO,sBACnH6oC,EAAOw2C,eAAgB,EACnB/R,IAAmBA,EAAeC,QAAUD,EAAejtC,QAAUitC,EAAetX,kBACpFntB,EAAO02C,sBAAuB,IAGlCtnG,KAAKw/D,kBAAqB5O,EAAOhB,QAIrC5vD,KAAK+mG,iBAAiBn2C,GAClBA,EAAOhB,QAGX5vD,KAAKwnG,aAAa52C,IAPd5wD,KAAKggG,SAAS/8F,KAAK2tD,IAS3BmtC,sBAAuB,WACnB,IAAIx0E,EAAavpB,KAAKupB,aACtB,OAAOA,GAAcA,EAAWw0E,yBAA2B,IAE/DyJ,aAAc,SAAS52C,GACf5wD,KAAKy/F,yBACL7uC,EAAOykC,eAAiBr1F,KAAKy/F,uBAC7Bz/F,KAAKy/F,uBAAyB,MAElC,eAAY,KACRz/F,KAAKy0E,QAAQ3Q,KAAKlT,MAG1BlrD,UAAW,WACP,OAAO1F,KAAK8/F,YAAc9/F,KAAK89F,kBAEnCmE,oBAAqB,WACjBjiG,KAAKo4F,eAAet0B,KAAK9jE,KAAK0F,YAAa1F,KAAKynG,eAEpDzG,2BAA4B,WACxB,OAAO,MAEXO,aAAc,WACV,IAAIh4E,EAAavpB,KAAKwpB,YACtB,GAAID,EAGA,OAFAA,EAAWgyC,UAAU,GACrBv7D,KAAK0nG,mBAAoB,EAClB1nG,KAAKs1F,SAASnoE,KAAK,KAClBntB,KAAK0nG,mBACL1nG,KAAKs/F,YAAYx7B,UAKjC6jC,oBAAqB,WACjB3nG,KAAK0nG,mBAAoB,GAE7BtpG,OAAQ,SAASwpG,GACb,IAAIr+E,EAAavpB,KAAKwpB,YAClBprB,EAASmrB,GAAcA,EAAWnrB,SACtC,GAAI,IAAM8B,UAAUtG,OAChB,OAAOwE,EAEXwpG,EAAa1nG,UAAUtG,OAAS,EAAIiF,MAAM89B,UAAUtZ,MAAMmC,KAAKtlB,UAAW,GAAK0nG,EAC3E,OAAcxhF,sBAAsBhoB,EAAQwpG,KAG5Cr+E,GACAA,EAAWnrB,OAAOwpG,GAEtB5nG,KAAKuhG,iBAETvrC,YAAa,SAAS6xC,GAClB,IAAIlkG,EAAO3D,KACP2mE,EAAoBhjE,EAAK8oE,mBACzBq7B,EAAoB,SAASz9C,GAE7B,IADA,IAAIwoC,EAAclsB,EAAkBksB,cAC3BzxF,EAAQ,EAAGA,EAAQyxF,EAAazxF,IACrCulE,EAAkBkQ,aAAaz1E,EAAOipD,OAAY,IAI1D,GADA1mD,EAAKoJ,UAAUkzD,cACX//D,UAAUtG,OAAS,EACnB,OAAQiuG,GACJ,IAAK,aACDlkG,EAAKvF,OAAO,MACZ,MACJ,IAAK,SACDuF,EAAKokG,aAAa,IAClB,MACJ,IAAK,SACDD,EAAkB,gBAClB,MACJ,IAAK,MACDA,EAAkB,oBAG1BnkG,EAAKvF,OAAO,MACZuF,EAAKokG,aAAa,IAClBD,EAAkB,eAClBA,EAAkB,uBAClBA,EAAkB,gBAEtBnkG,EAAKoJ,UAAUmzD,aAEnB8nC,uBAAwB,WACpB,IAAIrkG,EAAO3D,KACX2D,EAAK8wE,QAAQD,KAAI,SAAUyzB,IACvBtkG,EAAK8wE,QAAQ3sD,OAAOmgF,GACpBtkG,EAAKukG,kBAAkBpkC,WAG/BqkC,sBAAuB,OACvBC,6BAA8B,SAAS7+E,EAAY0F,GAC/C,IAAIo5E,EAA4BroG,KAAKmoG,wBACjCG,EAAoBD,EAA0BxlE,OAAO7iC,KAAK+M,WAE9D,OADAu7F,EAAkBvoC,KAAKx2C,EAAY0F,GAC5Bq5E,GAEX3gF,aAAc,SAASsI,GAEnB,OADAA,EAAQA,GAASjwB,KAAKiwB,QACfA,aAAiB,SAE5Bs4E,cAAe,SAASt4E,GAEpB,OADAA,EAAQA,GAASjwB,KAAKiwB,QACfA,aAAiB,eAE5Bu4E,yBAA0B,SAASj/E,GAC/B,IAAI0F,EAAmBjvB,KAAK+nB,OAAO,oBAC/BkI,EAAQ1G,EAAW0G,QACnBw4E,EAA0B,CAC1B5sC,WAAW,EACXzS,SAAS,EACThB,QAAQ,EACRtD,UAAU,EACVwE,SAAS,GAeb,OAbIr6B,GAAoBA,EAAiBC,cACrCD,EAAmB,OAAAx0B,EAAA,WAAO,GAAIguG,EAAyBx5E,IAEvD,SAAWA,IACXA,EAAmBjvB,KAAK2nB,aAAasI,IAAUjwB,KAAKuoG,cAAct4E,GAAS,GAAK,CAC5E4rC,WAAW,EACXzS,SAAS,EACThB,QAAQ,KAGZ,IAASn5B,IACTA,EAAmBw5E,GAEhBzoG,KAAKooG,6BAA6B7+E,EAAY0F,IAEzD2zE,cAAe,SAASr5E,GACpB,IAAIo5E,EAAgB3iG,KAAKwpB,aACpBD,GAAco5E,IACfA,EAAc+F,YACd/F,EAAcluB,QAAQ3sD,OAAO9nB,KAAKy4F,qBAClCkK,EAAcvK,eAAetwE,OAAO9nB,KAAK84F,wBACzC6J,EAActK,UAAUvwE,OAAO9nB,KAAKg5F,mBACpC2J,EAAcrK,0BAA0BxwE,OAAO9nB,KAAK04F,mCACpDiK,EAAcpK,SAASzwE,OAAO9nB,KAAKo5F,kBACnCuJ,EAAcnK,OAAO1wE,OAAO9nB,KAAK4/F,oBACjC+C,EAAclhC,QAAQzhE,KAAK2oG,sBAE3Bp/E,IACAA,EAAavpB,KAAKwoG,yBAAyBj/E,IAE/CvpB,KAAKwpB,YAAcD,EACfA,IACAvpB,KAAKgoG,yBACLhoG,KAAK8/F,YAAcv2E,EAAWi0D,WAC9Bx9E,KAAKwhG,kBAAmB,EACxBxhG,KAAKgiG,uBAAyBhiG,KAAKysE,mBAAmB2f,wBACtD7iE,EAAWkrD,QAAQD,IAAIx0E,KAAKy4F,qBAC5BlvE,EAAW6uE,eAAe5jB,IAAIx0E,KAAK84F,wBACnCvvE,EAAW8uE,UAAU7jB,IAAIx0E,KAAKg5F,mBAC9BzvE,EAAW+uE,0BAA0B9jB,IAAIx0E,KAAK04F,mCAC9CnvE,EAAWgvE,SAAS/jB,IAAIx0E,KAAKo5F,kBAC7B7vE,EAAWivE,OAAOhkB,IAAIx0E,KAAK4/F,sBAGnCl3E,MAAO,WACH,OAAO1oB,KAAKk7F,QAEhB7zE,QAAS,WACL,OAAQrnB,KAAK0oB,QAAQ9uB,QAEzB+jG,UAAW,WACP,OAAO39F,KAAKwpB,YAAcxpB,KAAKwpB,YAAYm0E,YAAc,GAE7Dp0E,WAAY,WACR,OAAOvpB,KAAKwpB,aAEhByG,MAAO,WACH,IAAI1G,EAAavpB,KAAKwpB,YACtB,OAAOD,GAAcA,EAAW0G,SAEpC24E,QAAS,SAASziG,GACd,IAAIxC,EAAO3D,KACPkiB,EAAI,IAAI,cACRqH,EAAa5lB,EAAK6lB,YACtB,GAAID,EACA,GAAIpjB,EAAM,CACN,IAAI6K,EAAU,CACV7K,KAAMA,EACN21F,iBAAiB,EACjB1rE,iBAAkB,CACdquE,cAAc,GAElBlvE,YAAa,CACTnxB,OAAQuF,EAAKuuF,oBACbxrE,MAAO6C,EAAW7C,QAClB5kB,KAAMynB,EAAWznB,SAGzBynB,EAAWsvE,kBAAkB7nF,GAC7B,kBAAKA,EAAQ7K,MAAMgnB,MAAK,SAAUhnB,GAC9BA,EAAOxC,EAAKm/F,oBAAoB38F,GAChC+b,EAAEsN,QAAQ7rB,EAAKq/F,cAAc78F,EAAM,CAC/B6qE,WAAY,eACZhgE,EAAQ2pC,OAAS3pC,EAAQ2pC,MAAM2O,YACnC35B,KAAKzN,EAAE2hB,aACR,GAAKta,EAAW7jB,YAanBwc,EAAE2hB,aAb8B,CAChC,IAAItU,EAAc,OAAA90B,EAAA,WAAO,GAAI8uB,EAAWgG,cAAe,CACnDkvE,cAAc,EACd/B,mBAAmB,IAEvBnzE,EAAW+F,KAAKC,GAAapC,MAAK,SAAUzE,EAAOiyB,GAC/CjyB,EAAQ/kB,EAAKm/F,oBAAoBp6E,GACjCA,EAAQ/kB,EAAKq/F,cAAct6E,EAAO,CAC9BsoD,WAAY,eAEhB9uD,EAAEsN,QAAQ9G,EAAOiyB,GAASA,EAAM2O,YAChC35B,KAAKzN,EAAE2hB,aAKf3hB,EAAEsN,QAAQ,IAEd,OAAOtN,GAEX2mF,iBAAkB,SAASh/B,EAAUi/B,GACjC,IAAI/hG,EAAO/G,KAAK0oB,MAAMogF,GAAUj/B,GAChC,GAAI9iE,EACA,OAAOA,EAAKjM,KAGpBiuG,iBAAkB,SAASjuG,EAAKguG,GAC5B,OAAO,OAAcrgF,cAAc3tB,EAAKkF,KAAK0oB,MAAMogF,KAEvDpO,MAAO,SAASv0F,GACZ,IAAI8pB,EAAQjwB,KAAKiwB,QACjB,GAAIA,EACA,OAAOA,EAAMyqE,MAAMv0F,IAG3B6iG,MAAO,SAASluG,GACZ,IAEImE,EAFAgxB,EAAQjwB,KAAKiwB,QACb45C,EAAW7pE,KAAK+oG,iBAAiBjuG,GAErC,GAAKm1B,EAML,OAHI45C,GAAY,IACZ5qE,GAAS,IAAK,eAAUuwB,QAAQxvB,KAAK0oB,QAAQmhD,GAAU1jE,OAEpDlH,GAAUgxB,EAAM+4E,MAAMluG,IAEjCA,IAAK,WACD,IAAIm1B,EAAQjwB,KAAKiwB,QACjB,GAAIA,EACA,OAAOA,EAAMn1B,OAGrB8rG,kBAAmB,WACf,OAAO,GAEXqC,cAAe,SAASC,GACpB,IAAIvlG,EAAO3D,KACPf,EAAS,IAAI,cACb4xF,EAAY,GACZ1qF,EAAO,GASX,OARA,eAAK+iG,GAAS,SAAU9nG,EAAOtG,GAC3B+1F,EAAU5tF,KAAKU,EAAKqlG,MAAMluG,GAAKqyB,MAAK,SAAUg8E,GAC1ChjG,EAAK/E,GAAS+nG,SAGtB,UAAKrqG,MAAM,OAAG+xF,GAAWiB,QAAO,WAC5B7yF,EAAOuwB,QAAQrpB,MAEZlH,GAEXs8D,UAAW,SAAS15D,GAChB,OAAOq9F,EAAal/F,KAAM,YAAa6B,IAE3C25D,SAAU,SAAS35D,GACf,OAAOq9F,EAAal/F,KAAM,WAAY6B,IAE1CunG,mBAAoB,SAASC,GACzBrpG,KAAK89F,kBAAmB,EACxB99F,KAAKynG,aAAe4B,GAAe,GACnCrpG,KAAKiiG,uBAETqH,iBAAkB,WACdtpG,KAAK89F,kBAAmB,EACxB99F,KAAKynG,kBAAe,EACpBznG,KAAKiiG,uBAETtR,QAAS,SAAS3/E,IACV,IAASA,EACTA,EAAU,CACNskF,QAAQ,EACRiU,aAAa,GAETv4F,IACRA,EAAU,CACN+Y,QAAQ,EACR8+B,WAAW,EACXysC,QAAQ,IAGhB,IAAI3xF,EAAO3D,KACPupB,EAAa5lB,EAAKi9F,gBAClB2I,EAAcv4F,EAAQu4F,YACtBrnF,EAAI,IAAI,cACRsnF,EAAsB,WACtB7lG,EAAKo8F,sBAAwBwJ,GAgBjC,OAdA,mBAAMv4F,EAAQ+Y,QAAUpmB,EAAK8oE,mBAAmBkkB,WAAWmB,QAAO,WAC1D9gF,EAAQse,MAAQte,EAAQskF,QACxB/rE,GAAcA,EAAWlkB,GAAG,sBAAuBmkG,GACnD,kBAAK7lG,EAAK2xF,OAAOtkF,EAAQskF,OAAQiU,IAAczX,QAAO,WAClDvoE,GAAcA,EAAWg3C,IAAI,sBAAuBipC,GACpD7lG,EAAKo8F,yBAAsB,KAC3B5yE,KAAKjL,EAAEsN,SAASG,KAAKzN,EAAE2hB,UAE3BlgC,EAAKw9F,YAAY,CACb74C,mBAAoBt3C,EAAQu4F,cAEhCrnF,EAAEsN,cAGHtN,EAAEoO,WAEb62E,eAAgB,WACZ,OAAOnnG,KAAK0oB,SAEhB+gF,mBAAoB,WAChBzpG,KAAK4iG,cAAc,OAEvBnhC,QAAS,WACLzhE,KAAKypG,qBACLzpG,KAAKC,SAASnB,MAAMkB,KAAME,YAE9BwpG,YAAa,SAASC,EAAYJ,GAC9BI,EAAa9qG,MAAM0nB,QAAQojF,GAAcA,EAAa,CAACA,IACnDA,EAAW/vG,OAAS,GAAK,eAAU+vG,EAAW,MAC9C3pG,KAAKmhG,YAAY,CACbnwB,WAAY,SACZ+yB,WAAY4F,EACZ/E,cAAe2E,KAI3BK,2BAA4B,SAASne,GACjC,OAAOzrF,KAAKo/F,8BAAgC,qBAAuB3T,GAAY,oBAAsBA,IAEzGgB,aAAc,WACV,MAAO,CACHod,WAAY7pG,KAAK+nB,OAAO,oBACxBwzC,UAAWv7D,KAAKu7D,YAChBC,SAAUx7D,KAAKw7D,aAGvBqjC,mBAAoB,WAChB,OAAO7+F,KAAKwpB,aAAexpB,KAAKwpB,YAAYq1E,sBAEhDiL,iBAAkB,WACd,IAAIvuC,EAAYv7D,KAAKu7D,YACjBoiC,EAAY39F,KAAK29F,YACrB,OAAOpiC,IAAcoiC,EAAY,IAWzC,OARA,OAAcv0E,YAAYm2E,EAAS,QACnC,OAAcn2E,YAAYm2E,EAAS,UACnC,OAAcn2E,YAAYm2E,EAAS,QACnC,OAAcn2E,YAAYm2E,EAAS,aAAc,GACjD,OAAcn2E,YAAYm2E,EAAS,kBAAmB,GACtD,OAAcn2E,YAAYm2E,EAAS,oBAAoB,GACvD,OAAcn2E,YAAYm2E,EAAS,YAAY,GAC/C,OAAcn2E,YAAYm2E,EAAS,aAAc,GAC1CA,EAnpC2D,MCxCnEwK,GAAiBhL,GAAqBl6B,YAAY1+D,KAAKk5D,QAAQ,CACtE8oC,sBAAuB,WACnB,OAAO,IAEX1F,6BAA8B,WAC1B,IAAIl5E,EAAavpB,KAAK+nB,OAAO,cAI7B,OAHIwB,IAAe1qB,MAAM0nB,QAAQgD,IAAevpB,KAAK+nB,OAAO,YACxD,OAAOjkB,IAAI,SAER9D,KAAKC,cAGpB,EAASwlE,eAAe,OAAQ,CAC5B9nE,eAAgBohG,GAAqBphG,eACrCknE,YAAa,CACT1+D,KAAM4jG,MCjBd,IAAIC,GAAa,UACbC,GAAkB,eAClBC,GAAe,aACfC,GAAiB,eACjBC,GAAmB,gBACnBC,GAAwB,qBACxBC,GAAuB,SACZ,IACXvkC,kBAAmB,SAAS/0D,GACxB,IAAIu5F,EACA/tB,EACA4T,EAAcpwF,KAAK+nB,OAAO,gBAC1Bs+C,EAAcr1D,EAAQq1D,YACtBv1D,EAASE,EAAQF,OACjBy1D,EAAuBvmE,KAAKinE,uBAAuBZ,GACvD,GAAI,SAAWr1D,EAAQpP,KAAM,CACzBykE,EAAYp/C,KAAK,IAAM+iF,IAAYliF,UAClCy+C,EAAqBc,WAAWztE,QAAU2sE,EAAqBz+C,SAChE,IAAI0iF,EAAmB,SAAWpa,GAAet/E,EAAOm7C,aACxD,IAAK,eAAUn7C,EAAOi8C,cAAgBy9C,GAAoB,eAAU15F,EAAO68C,YAAa,CACpF48C,EAAgB,QAAUz5F,EAAO68C,UAAY,YAAc,aAC3D6uB,EAAiBx8E,KAAKC,SAAS+Q,GAAS6yD,YAAYqmC,GAAc,QAAUp5F,EAAO68C,WAAWkW,YAAYsmC,GAAgB,SAAWr5F,EAAO68C,WAC5I,IAAI88C,EAAwBzqG,KAAKihE,iBAAmBjhE,KAAKihE,cAAc,WAAW4V,aAAa,eAC3F4zB,GAAyBzqG,KAAK+nB,OAAO,4BAA8BjX,EAAO48C,WAAa,IACvF,eAAE,UAAUpmC,SAAS+iF,IAAuB9tG,KAAKuU,EAAO48C,UAAY,GAAGnmC,SAASi1D,GAChFA,EAAel1D,SAAS8iF,KAExBI,GACAx5F,EAAQq1D,YAAY/+C,SAAStnB,KAAK+mB,gBAAgBujF,KAQ1D,OALK,eAAUx5F,EAAO68C,WAGlB3tD,KAAKosB,QAAQ,OAAQm+E,EAAelkC,GAFpCrmE,KAAKosB,QAAQ,OAAQ,OAAQi6C,GAI1BmW,EAEP,OAAOx8E,KAAKC,SAAS+Q,IAG7B01D,uBAAwB,SAAS9kE,GAC7B,MAAI,SAAWA,EACJooG,GACA,cAAgBpoG,EAChByoG,GAEJrqG,KAAKC,SAAS2B,IAEzBmlE,iBAAkB,SAAS/1D,GACvB,IAAIF,EAASE,EAAQF,OACjBgU,EAAa9T,EAAQmX,UACrBm/C,EAAat2D,EAAQ81D,UACzB,GAAI,SAAW91D,EAAQpP,KAAM,CACzB,IAAIypB,EAAarrB,KAAK+nB,OAAO,cAI7B,GAHK,eAAUjX,EAAO68C,YAClB2Z,GAAcA,EAAWhgD,SAAS2iF,IAElCnlF,EAAWuiD,WAAWztE,UAAYyxB,GAAc,SAAWra,EAAQi1D,iBAAmB56C,GAAc,UAAYra,EAAQi1D,iBAExH,YADAnhD,EAAW4lF,QAAQpjC,GAI3BtnE,KAAKC,SAAS+Q,IAElB42D,iBAAkB,SAASV,EAAOp2D,EAAQ02D,GACtC,GAAI,SAAWA,IAAiB,eAAU12D,EAAOi8C,YAGjD,OAAO/sD,KAAKC,SAASnB,MAAMkB,KAAME,YAErCinE,sBAAuB,SAASD,EAAOmX,GACnC,IAAIlC,EAAqBn8E,KAAKC,SAASinE,GACvC,OAAOmX,EAAYlC,EAAqBA,GAAsBA,EAAmBpM,IAAI,IAAMk6B,MC5D/FU,GAAgC,8BAChCC,GAAmC,OAAAnwG,EAAA,WAAO,GAAI,GAAc,CAC5D,WAAWoW,GACP,IAAI07D,EAAOvsE,KAAKC,SAAS4Q,GAMzB,MALI,WAAaA,EAAIM,SACjB,OAAa9L,GAAGknE,EAAM,gBAAa,OAAgBo+B,IAAgC,KAAM3qG,KAAKygE,aAAa78D,IACvG5D,KAAKu9E,qBAAqB35E,EAAE09D,MAAOiL,MAGpCA,GAEXgR,qBAAsB,SAASjc,EAAOiL,GAClC,GAAI,eAAEjL,EAAMoI,eAAex7C,SAASxwB,IAAI,KAAO6uE,EAAK7uE,IAAI,GAAxD,CAGA,IAAIiG,EAAO3D,KACP2oB,EAAU,KACVkiF,EAAwB,eAAEvpC,EAAMoI,eAChCG,EAAWghC,EAAsB38E,SAAS9sB,QAC1CwjB,GAAe,EACnB,GAAGvB,MAAMmC,KAAK7hB,EAAKsyE,gBAAgBpM,IAAWn8C,KAAK,CAACkwD,EAAcx8E,KAC9D,GAAIw8E,IAAiBitB,EAAsBntG,IAAI,GAE3C,OADAknB,EAAcxjB,GACP,IAGf,IAAIorE,EAAiB7oE,EAAK8oE,mBAAmBC,kBAAkB7C,GAC3D/4D,EAAS07D,EAAe5nD,GACxBkmF,EAAoBnnG,EAAKs9D,cAAc,WACvC8pC,EAAcpnG,EAAKokB,OAAO,gBAC1BijF,EAAgBF,GAAqBA,EAAkB39B,cAAgB,UAAY49B,GAAe,SAAWA,IAC7GC,GAAkBrnG,EAAK26E,mBAAmB,eAAEhd,EAAMh8C,YAGlDxU,GAAW,eAAUA,EAAOi8C,aAAgBj8C,EAAO6c,UAC/C2zC,EAAMob,SACN/zD,EAAU,QACH,gBAAoB24C,KAC3B34C,EAAU,QAEd1V,WAAW,KACPtP,EAAK8oE,mBAAmBoT,gBAAgB/uE,EAAO1P,MAAOunB,SAIlE,mBAAmBu+C,EAAOl2D,GACtB,IAAIF,EAASE,EAAQF,OAChBA,EAAO6c,SAAW,WAAa3c,EAAQG,SACxCnR,KAAK+lE,kBAAkB,CACnBnkE,KAAM,OACNykE,YAAaa,EACbp2D,OAAQA,EACRm4C,gBAAiBjpD,KAAK+nB,OAAO,qBAGrC/nB,KAAKC,SAASnB,MAAMkB,KAAME,YAE9B,qBAAqB0D,GACjB,IAAIytE,EAAcztE,EAAEytE,YAChB,IAAMA,EAAYz3E,QAAUy3E,EAAYjoB,QACxCppD,KAAKunE,kBAAkB,QAG3BvnE,KAAKC,SAAS2D,IAElB,cAAci7C,GACV,OAAQA,EAAKj9C,MACT,IAAK,UACD5B,KAAK4iE,cACL/jB,EAAK6hB,SAAU,EACf,MACJ,QACI1gE,KAAKC,SAAS4+C,OAI1BosD,GAA6B,OAAAxwG,EAAA,WAAO,GAAI,GAAc,CACtD,sBAAsBywG,EAAcptC,GAChC,IAAIn6D,EAAO3D,KACPmrG,EAAQxnG,EAAK1D,YAAYC,WAc7B,OAbA,OAAamF,GAAG8lG,EAAO,gBAAa,OAAgB,yBAA0BxnG,EAAK88D,aAAa,KAC5F98D,EAAKynG,wBAAwBttC,EAAY18D,UAE7CuC,EAAKoiE,kBAAkB,CACnBnkE,KAAM,OACNykE,YAAa8kC,EACbr6F,OAAQ,CACJ3J,UAAWxD,EAAKokB,OAAO,cAAgB,QAAU,OACjDkkC,aAAc6R,EAAY7R,aAC1B0B,UAAW,SAAWmQ,EAAYnQ,UAAY,OAAS,OAE3D1E,iBAAiB,IAEdkiD,GAEX,wBAAwBE,GACpBp4F,WAAW,IAAMjT,KAAKihE,cAAc,WAAW4e,gBAAgBwrB,KAEnE,cAAcxsD,GACV,OAAQA,EAAKj9C,MACT,IAAK,UACD5B,KAAK4iE,cACL/jB,EAAK6hB,SAAU,EACf,MACJ,QACI1gE,KAAKC,SAAS4+C,OAInBysD,GAAgB,CACvB3tG,eAAgB,KAAM,CAClByrD,QAAS,CACLvN,KAAM,SACNkiB,cAAe,OAAoB1kE,OAAO,mCAC1C4kE,eAAgB,OAAoB5kE,OAAO,oCAC3C2kE,UAAW,OAAoB3kE,OAAO,+BACtC6kE,iBAAiB,KAGzB+G,UAAW,CACPF,MAAO,CACH+W,kBAAmB8uB,GACnBW,YAAaN,MCvIzB,EAASxlC,eAAe,UAAW6lC,I,2CC8C/BE,GAAkB,WAClB,GAAgB,UAChB,GAAe,SACf,GAAkB,eAClB,GAAmB,gBACnBC,GAAiB,cACjBC,GAAmB,mBACnBC,GAAkB,eAClB,GAAqB,kBACrBC,GAAwB,aACxBC,GAAkB,qBAClBC,GAAc,WACdC,GAA+B,yBAC/BC,GAAyB,IAE7B,SAASC,GAA6BC,GAClC,OAAOA,EAAavqF,KAAKwqF,MAAMD,EAAWz+B,cAAgBy+B,EAAWx+B,eAAiB,EAEnF,IAAI0+B,GAAa,CACpBzuG,eAAgB,WACZ,MAAO,CACHunD,mBAAmB,EACnBwD,UAAW,CACP0U,UAAW,QAEf/X,UAAW,CACPr9B,QAAS,OACTzrB,KAAM,OAAoBlD,OAAO,WACjCkO,MAAO,IACPmK,OAAQ,GACRqpD,eAAe,EACfD,aAAc,GACdE,UAAU,GAEdnX,gBAAiB,KACjBT,iBAAiB,EACjBmC,WAAY,OAAoBlsD,OAAO,yBACvCuwD,iBAAiB,EACjBX,iBAAiB,EACjBC,cAAc,EACdX,uBAAuB,EACvBzF,oBAAoB,EACpB4G,sBAAsB,IAG9Bqb,MAAO,CACH74C,SAAU8+C,GAAY3L,QAAQ,WAC1B,IAAIgtC,EAAsB,SAASvnF,EAAY9T,GAC3C,IAAIs7F,EAAkB,gBAAQt7F,EAAQzU,OAAS,SAAWyU,EAAQG,QAC9D5U,EAAOyU,EAAQzU,KACf4rB,EAAYrD,EAAWpnB,IAAI,GAC3B4uG,EACA,OAAcznF,aAAaC,GACpB9T,EAAQF,OAAOy7C,WACtBpkC,EAAUpD,YAAcxoB,EAExB4rB,EAAUokF,UAAYhwG,GAG9B,MAAO,CACHogF,oBAAqB,SAAS7rE,GAC1B,OAAQA,EAAO6c,SACX,IAAK,QACD,OAAO,SAASxF,GACZA,EAAUiyC,KAAK,WAEvB,QACI,OAAOiyC,IAGnBG,yBAA0B,SAAS17F,GAC/B,IAAI6U,EAAe3lB,KAAK+nB,OAAO,iBAC/B,OAAO,SAASjD,EAAY9T,GACxB,IAAI7K,EAAO6K,EAAQ7K,KACf5J,EAAOyU,EAAQF,OAAO5J,QAAU,KAAO8J,EAAQzU,KAC/C4rB,EAAYrD,EAAWpnB,IAAI,GAC3BsT,EAAQkZ,cAAgBlZ,EAAQkZ,aAAatwB,SAC7C2C,GAAQ,IAAM,OAAc0tB,uBAAuBjZ,EAAQkZ,aAAcvE,IAEzExf,IACI6K,EAAQkoD,uBAAyBloD,EAAQmoD,sBACzC58D,GAAQ,KAAOyU,EAAQkoD,sBAAwB,KAAOloD,EAAQmoD,sBAAwB,IAC/EnoD,EAAQmoD,sBACf58D,GAAQ,KAAOyU,EAAQmoD,sBAAwB,IACxCnoD,EAAQkoD,wBACf38D,GAAQ,KAAOyU,EAAQkoD,sBAAwB,MAGvDp0C,EAAWwC,SAAS,IAChBxW,EAAOy7C,WACPpkC,EAAUpD,YAAcxoB,EAExB4rB,EAAUokF,UAAYhwG,IAIlCkwG,QAAS,aACT15B,iBAAkB,SAAS/hE,GACvB,IACIm6C,EADAr6C,EAASE,EAAQF,OAerB,OAPIq6C,EANA,UAAYn6C,EAAQG,UAAW,eAAUL,EAAOi8C,aAAgBj8C,EAAO28C,iBAAoB38C,EAAO6c,SAK1F,SAAW3c,EAAQG,SAAWL,EAAO6c,UAAY7c,EAAO1J,aACrD0J,EAAO1J,aAEP,CACP2kB,gCAAgC,EAChC5nB,OAAQnE,KAAK28E,oBAAoB7rE,IAT1BA,EAAO+7C,mBAAqB,CACnC9gC,gCAAgC,EAChC5nB,OAAQnE,KAAKwsG,yBAAyB17F,IAUvCq6C,GAEX2gB,WAAY,SAASj7D,GACjB,IAAI07D,EAAOvsE,KAAKC,SAASnB,MAAMkB,KAAME,WACrC,GAAI2Q,EAAK,CACL,IAAI67F,EAAU,UAAY77F,EAAIM,QAC1B07D,EAAY,SAAWh8D,EAAIM,QAO/B,GANA07D,GAAaN,EAAKjlD,SAASmkF,IAC3B5+B,GAAa7sE,KAAK+nB,OAAO,iBAAmBwkD,EAAKjlD,SAASqkF,IAC1D3rG,KAAK+nB,OAAO,oBAAsBwkD,EAAKjlD,SAAS,KAC5C,IAAUzW,EAAI84C,SACd4iB,EAAK/hB,OAELkiD,EAAS,CACTngC,EAAKjlD,SAAS,IACd,IAAIqlF,EAAgB97F,EAAIoU,WACxBjlB,KAAKosB,QAAQ,OAAQ,MAAOmgD,GAC5BvsE,KAAKosB,QAAQ,WAAY,eAAUugF,IAAkBA,EAAclrF,WAAY8qD,IAGvF,OAAOA,GAEXmF,aAAc,SAASnF,EAAM1E,EAAYh3D,GACjC,SAAWg3D,EAAW12D,UAClBnR,KAAK+nB,OAAO,2BACZ/nB,KAAKisE,UAAUp7D,IAAQ07D,EAAKjlD,SAASskF,IACrC/jC,EAAWh7D,OAASg7D,EAAWh7D,MAAM,IAAM7M,KAAKisE,UAAUp7D,GAAMhP,IAC5D0qE,EAAK1I,YAAY+nC,GAAuB/pG,MAGhD7B,KAAK4sG,iBAAiB/kC,EAAY0E,GAClC1E,EAAWh7D,OAASg7D,EAAWh7D,MAAM,IAAMg7D,EAAWgC,SAAU,IAAM7pE,KAAK4sG,iBAAiB/kC,EAAY0E,KAE5GvsE,KAAKC,SAASnB,MAAMkB,KAAME,YAE9B0sG,iBAAkB,SAAS/7F,EAAK07D,GAC5B,IAAIx/D,EAAY/M,KAAK+M,UACjB8/F,EAAc,aAAe9/F,EAAUgb,OAAO,oBAAsB,OAAcoG,sBAAsBphB,GACxG88D,EAAWh5D,EAAIg5D,SAAW,EAC1BgjC,EACAhjC,EAAW98D,EAAUwuD,YAAcxuD,EAAUyuD,WAAaqO,EAE1DA,GAAY7pE,KAAKonB,gBAAgBw/E,oBAErC5mG,KAAKosB,QAAQ,WAAYy9C,EAAU0C,IAEvC+H,kBAAmB,SAAS1wE,GACxB,IAAIkpG,EAAMlpG,EAAEi7C,KAAK,GACbozC,EAAiBjyF,KAAKonB,gBACtBvW,EAAMohF,EAAekV,iBAAiB2F,EAAIjjC,UAC1Ch9D,EAAQ7M,KAAK+nB,OAAO,kCACxB,GAAK+kF,EAAI3mG,MAAQ,SAAW2mG,EAAI37F,UAAW27F,EAAI7gF,UAAajsB,KAAK+nB,OAAO,yBAA4Blb,GAAUgE,EAA9G,CAGA,IAAI4wD,EAAU50D,EAAM,IAAMolF,EAAeuR,mBAAmBsJ,EAAI3mG,KAAM2mG,EAAIx/E,SAAU,KAChF2kE,EAAeyX,YAAY,CAAC74F,EAAIg5D,UAAW7pE,KAAK+nB,OAAO,wBACxD,CACCglF,MAAM,EACNC,eAAe,IAEnB,OAAa3nG,GAAGynG,EAAI/iC,WAAYjiD,GAAA,KAAa25C,KAEjDwrC,kBAAmB,SAASC,GACxB,IAAIlnF,EAAWhmB,KAAK6mB,UAOpB,GANKb,EAASqhD,WAAWztE,QACrBosB,EAAS4jB,OAAO,UAEhBsjE,GAAUltG,KAAK6nB,YACf7nB,KAAKmtG,iBAAiBnnF,EAAUA,EAASkI,SAAUluB,KAAKonB,gBAAgBO,iBAEvEulF,IAAUltG,KAAKotG,kBAAoBptG,KAAKonB,gBAAgBo2D,WAAY,CAGrE,IAFA,IAAIlwD,EAAUttB,KAAKynE,aACf4lC,GAAqB,EAChB5xG,EAAI,EAAGA,EAAI6xB,EAAQ1zB,OAAQ6B,IAChC,IAAK6xB,EAAQ7xB,GAAG8L,QAAU+lB,EAAQ7xB,GAAG0xD,SAAU,CAC3CkgD,GAAqB,EACrB,OAGJrtG,KAAK+nB,OAAO,oBAAsB/nB,KAAKstG,YAAcD,GAAsBrtG,KAAKysE,mBAAmByd,oBACnGlqF,KAAKutG,sBAAsBvnF,KAIvCwnF,cAAe,SAAS5pG,GACpB,IAAIynB,EAAarrB,KAAK+nB,OAAO,cACzB0lF,EAAoB7pG,EAAEmJ,UAAUgb,OAAO,aAC3C/nB,KAAK0tG,WAAa9pG,EAAE+pG,aAAa/hF,IACjC5rB,KAAK4wE,YAAchtE,EAAE+pG,aAAahiF,KAClC,IAAIglD,EAAa/sE,EAAE+pG,aAAahiF,KAC5BN,IACArrB,KAAK4tG,aAAe3B,GAA6BroG,EAAEmJ,WAAa/M,KAAK4wE,YACjE68B,IACA98B,GAAc3wE,KAAK4tG,cAElB5tG,KAAKu3E,oBAAmB,KACzBv3E,KAAK4wE,aAAe,IAG5B5wE,KAAK+0E,cAAcjR,KAAK,eAAS,GAAIlgE,EAAE+pG,aAAc,CACjDhiF,KAAMglD,IACN3wE,KAAK4B,OAEb2rG,sBAAuB,SAASvnF,GAC5B,IAAI6nF,EAAsB7tG,KAAKirE,2BAC3B6iC,EAAgB9tG,KAAKwtG,cAAchjF,KAAKxqB,MAC5C6tG,EAAoBE,SAAWD,EAC/B9tG,KAAKguG,YAAchuG,KAAKooB,iBAAiBpC,EAAU,QAAY6nF,GAC/D7tG,KAAKiuG,qBAAuBjuG,KAAKguG,aAAe,eAAEhuG,KAAKguG,YAAY7lF,cAEvEglF,iBAAkB,OAAczlF,gBAChCwmF,eAAgB,SAASC,EAAgBr+B,GAErC,OADAq+B,EAAezsC,QAAQ93B,OAAOkmC,GACvB9vE,KAAKk1E,uBAEhBF,eAAgB,SAASo5B,EAAiBx9C,GACtC,IAAIjtD,EAAO3D,KACP8vE,EAAensE,EAAKswE,kBACpBk6B,EAAiBxqG,EAAKuxE,sBACtBlE,EAAapgB,GAAUA,EAAOogB,WAC9Bq9B,EAAY,GACZrpD,EAAmBhlD,KAAK+nB,OAAO,oBAC/BumF,EAAmBtuG,KAAK+mB,gBAAgBglF,IAC5C,OAAQ/6B,GACJ,IAAK,SACD,eAAKpgB,EAAOmzC,YAAY,SAAU3iG,EAAOyoE,GACrC,IAAIoI,EAAiBtuE,EAAKwyE,gBAAgBi4B,GAAiB5iF,GAAGpqB,GAC1D4vE,EAAapgB,EAAOygB,aAAezgB,EAAOygB,YAAYjwE,GACtD2F,EAAO6pD,EAAOloC,OAASkoC,EAAOloC,MAAMtnB,GACxCitG,EAAUprG,MAAK,WACX,IAAIsrG,EAAe5qG,EAAKwyE,kBACpBnE,EAAcu8B,EAAa/iF,GAAGq+C,GAClC,OAAQmH,GACJ,IAAK,SACD,GAAIjqE,EAAM,CACN,IAAIqqE,EAAgBxgB,EAAOwgB,eAAiBxgB,EAAOwgB,cAAchwE,GAC7D,eAAU2F,EAAK4iD,UAAY5iD,EAAK4iD,UAAYqoB,EAAYpkF,GAAG,YAC3DokF,EAAYw8B,OAAOznG,EAAK4iD,SACjBynB,EACPztE,EAAKouE,aAAaC,EAAaC,EAAgBb,GAE/CY,EAAYK,YAAYJ,GAGhC,MACJ,IAAK,SACD,GAAKs8B,EAAa30G,OAKPo4E,EAAYp4E,OACnBq4E,EAAekM,aAAanM,GAE5BC,EAAew8B,YAAYF,EAAarnF,aAPxC,GAAI4oD,EAAc,CACd,IAAIxqD,EAAS2sD,EAAerkF,GAAG,SAAWkiF,EAAeA,EAAazI,SAAS,SAC/E4K,EAAey8B,UAAUppF,GAO7B0/B,GAAoB4L,EAAOs0C,cAC3BjzB,EAAe3qD,SAASgnF,GAE5B,MACJ,IAAK,SACDt8B,EAAYlqD,gBAI5B,eAAKumF,GAAW,WACZruG,UAEJouG,EAAgBtmF,SAChB,MACJ,QACInkB,EAAKuwE,gBAAgBk6B,GACrBD,EAAe7mF,SAAS3jB,EAAKojB,gBAAgB,KAC7CpjB,EAAKuqG,eAAeC,EAAgBC,KAGhDO,gBAAiB,SAAShtC,EAAWitC,EAASl9F,GAC1C,IAAIw1D,EACAqF,EAAOvsE,KAAK8rE,aACZx+C,EAAUshF,EAAU5uG,KAAKktF,kBAAoBltF,KAAKynE,aACtD8E,EAAKjlD,SAASq6C,GAAWkC,YAAY,GAAoB7jE,KAAK+nB,OAAO,oBACrE,IAAK,IAAItsB,EAAI,EAAGA,EAAI6xB,EAAQ1zB,OAAQ6B,IAChCyrE,EAAQlnE,KAAKyrE,YAAY,CACrB36D,OAAQwc,EAAQ7xB,GAChB0V,QAAS,YACTyT,YAAanpB,EACb6xB,QAASA,IAEb,eAAU5b,IAAWw1D,EAAMz7C,IAAI,SAAU/Z,GACzC66D,EAAK3iC,OAAOs9B,GAGhB,OADAlnE,KAAKosB,QAAQ,OAAQ,eAAgBmgD,GAC9BA,GAEXsiC,gBAAiB,SAAS1lC,EAAQ2lC,EAAWx0C,GACzC,IAAIy0C,EAAW/uG,KAAK6vE,WAAW1G,GAC3B6lC,GAAoBD,EAASn1G,QAAUk1G,EAAUlhH,GAAG,SACpDk3B,EAAakqF,EAAmB7lC,EAAS4lC,EAC7C,GAAI,QAAUz0C,GAEV,GADAx1C,EAAW20D,QAAQixB,QAAQoE,GACvBE,EAAkB,CAClB,IAAIC,EAAYnqF,EAAWuiD,SAAS,YACpCviD,EAAW4lF,QAAQuE,SAGvBnqF,EAAWoC,OAAO0iB,OAAOklE,IAGjCI,oBAAqB,SAASj/B,EAAerf,GACzC,IAAIu+C,EAAuBnvG,KAAK2uG,gBAAgBjD,IAChDyD,EAAuBnvG,KAAKowE,eAAeH,EAAek/B,EAAsB,aAAe,OAASv+C,QAAU,IAAWA,OAAS,EAASA,EAAOogB,aACtJhxE,KAAK6uG,gBAAgB5+B,EAAek/B,IAExCC,cAAe,SAASp+F,GACpB,IAAIrN,EAAO3D,KACPkxE,EAAOvtE,EAAKwtE,SAASngE,GACrBo0C,EAAUzhD,EAAKyjB,gBAAgB6I,SAAWtsB,EAAKyjB,gBAAgB6I,QAAQn1B,MAC3EsqD,GAAW8rB,EAAKxjD,MAAK,SAAU7c,GAC3B,GAAI,SAAWA,EAAIM,cAAW,IAAWN,EAAI/V,IAEzC,OADA6I,EAAKyjB,gBAAgB86E,UAAU,QAAS98C,IACjC,MAInBiqD,qBAAsB,SAASrU,GAC3B,OAAOA,EAAa,IAAMh7F,KAAKsvG,YAEnCC,eAAgB,SAASt/B,GACrBA,EAAgBA,GAAiBjwE,KAAKswE,cACtC,IAAIk/B,EAAev/B,EAAc5I,SAAS,SAASA,WAAW0I,IAAI,mBAAmBA,IAAI,IAAM27B,IAC/F,OAAO8D,EAAa/wB,UAAU1nD,QAAO,SAAUkoC,EAAKpuD,GAChD,OAAOouD,EAAM,eAAgBpuD,GAAKa,SAClC,IAER+9F,iBAAkB,WACd,IAAIx/B,EAAgBjwE,KAAKi0E,kBACrB+mB,EAAah7F,KAAKonB,gBAAgBsB,QAAQ9uB,OAC9C,GAAIq2E,GAAiBjwE,KAAKqvG,qBAAqBrU,GAAa,CACxD,IAAI0U,EAAa1vG,KAAKuvG,eAAet/B,GACrCjwE,KAAKsvG,WAAaI,EAAa1U,IAGvC9lB,oBAAqB,WACjB,IAAI0H,EAAW58E,KAAK6mB,UAChBqlF,EAAalsG,KAAKotG,gBACtB,GAAIxwB,EAIA,OAHIsvB,IACAtvB,EAAW,eAAEsvB,EAAWjjC,YAErB2T,EAASvV,WAAWoS,SAGnCtD,gBAAiB,SAASrG,GACtB,IAAI2F,EAAQz1E,KAAKC,SAAS6vE,GAC1B,OAAO2F,GAASA,EAAM1F,IAAI,IAAM27B,KAEpCiE,yBAA0B,SAASxmC,GAC/B,IAAIymC,EAAgBzmC,GAAUnpE,KAAKg0E,mBACnC,OAAO47B,GAAiBA,EAAcvoC,SAAS,SAASA,SAAS,IAAMqkC,KAE3EjkF,eAAgB,WACZ,OAAOznB,KAAK+nB,OAAO,eAEvBkiD,UAAW,SAASrmE,GAChB,IAAImD,EAAO/G,KAAKonB,gBAAgBsB,QAAQ9kB,EAAEimE,WAAa,GACvD7pE,KAAKwhE,cAAc,aAAc,OAAA/mE,EAAA,WAAO,CACpCo1G,SAAU,SAASC,GACf,IAAI58B,EAAS,gBAAc48B,GAC3B,OAAO58B,EAAOnsE,EAAKZ,QAExBvC,EAAGmD,KAEVmjE,aAAc,SAAStmE,GACnB,IAAImD,EAAO/G,KAAKonB,gBAAgBsB,QAAQ9kB,EAAEimE,WAAa,GACvD7pE,KAAKwhE,cAAc,gBAAiB,OAAA/mE,EAAA,WAAO,GAAImJ,EAAGmD,KAEtDgpG,6BAA8B,SAASziF,GACnC,IAAK,IAAI7xB,EAAI,EAAGA,EAAI6xB,EAAQ1zB,OAAQ6B,IAChC,GAAI,gBAAkB6xB,EAAQ7xB,GAAGgD,KAC7B,OAAOhD,EAGf,OAAO,GAEXu0G,qBAAsB,SAASh/F,GAC3B,IAAIi/F,EAA2BjwG,KAAK+vG,6BAA6B/+F,EAAQsc,SACrE1I,GAAe5T,EAAQH,IAAIk8C,YAAc,GAAKkjD,EAClD,MAAO,CACHrrF,YAAaA,EACbgnD,QAAS56D,EAAQsc,QAAQ1zB,OAASgrB,EAAc,IAGxDorD,aAAc,WACV,OAAOhwE,KAAKC,SAASnB,MAAMkB,KAAME,cAAgBF,KAAK+nB,OAAO,oBAEjEypD,aAAc,SAASjF,EAAMv7D,GACrB,UAAYA,EAAQH,IAAIM,QACxBnR,KAAKkwG,oBAAoB3jC,EAAMv7D,GACxBA,EAAQH,IAAIilB,QACnB91B,KAAKC,SAASssE,EAAMv7D,IAG5Bk/F,oBAAqB,SAAS3jC,EAAMv7D,GAOhC,IANA,IACI04E,EAGAzkE,EAJApU,EAAMG,EAAQH,IAEdyc,EAAUtc,EAAQsc,QAClBu8C,EAAWh5D,EAAIg5D,SAEfsmC,EAAmBnwG,KAAKgwG,qBAAqBh/F,GACxCvV,EAAI,EAAGA,GAAK00G,EAAiBvrF,YAAanpB,IAC3CA,IAAM00G,EAAiBvrF,aAAe0I,EAAQ7xB,GAAGm9D,iBAAmB,aAAe5nD,EAAQoxF,eAC3Fn9E,IAAepU,EAAIoU,WACnBykE,EAAep8D,EAAQ7xB,KAEvBwpB,EAAa,KACbykE,EAAe,CACX/7D,QAAS,SACTq9B,SAAU19B,EAAQ7xB,GAAGuvD,WAGzBhrD,KAAK2xE,gBAAgBl2E,EAAGuV,EAAQogE,gBAChCpxE,KAAK4xE,YAAYrF,EAAM,CACnB1qE,MAAOojB,EACPpU,IAAKA,EACLg5D,SAAUA,EACV/4D,OAAQ44E,EACR9kE,YAAanpB,EACb21E,cAAepgE,EAAQogE,gBAInC,IAAIg/B,EAAuB,eAAoBpwG,KAAK+nB,OAAO,eACvD+1C,EAAc,OAAArjE,EAAA,WAAO,GAAI6yB,EAAQ6iF,EAAiBvrF,aAAc,CAChE+I,QAAS,KACTlvB,KAAM,KACNusD,SAAU,KACVzjD,MAAO,KACPkmD,iBAAiB,EACjBtmD,UAAWipG,IAEXD,EAAiBvkC,QAAU,IAC3B9N,EAAY8N,QAAUukC,EAAiBvkC,SAEvC5rE,KAAK2xE,gBAAgBw+B,EAAiBvrF,YAAc,EAAG5T,EAAQogE,gBAC/DpxE,KAAK4xE,YAAYrF,EAAM,CACnB1qE,MAAOgP,EAAIilB,OAAOjlB,EAAIk8C,YACtBl8C,IAAKA,EACLg5D,SAAUA,EACV/4D,OAAQgtD,EACRl5C,YAAaurF,EAAiBvrF,YAAc,EAC5CwsD,cAAepgE,EAAQogE,iBAInCH,YAAa,SAAS9H,EAAQn4D,GAC1B,IAAIoxF,EAAgBpiG,KAAK+nB,OAAO,kBAChC/nB,KAAKC,SAASkpE,EAAQ,OAAA1uE,EAAA,WAAO,CACzB2nG,cAAeA,GAChBpxF,IACHhR,KAAKovG,cAAcp+F,EAAQ4/C,QAC3B5wD,KAAKkvG,oBAAoB/lC,EAAQn4D,EAAQ4/C,QACpC5wD,KAAKstG,YACNttG,KAAKqwG,yBAAyBlnC,IAGtC,yBAAyBA,EAAQn4D,EAAS6yC,GACtC,IAAIhzC,EAAMG,EAAQH,IACdg3D,EAAa,OAAAptE,EAAA,WAAO,CACpB6yB,QAAStc,EAAQsc,SAClBzc,GACC2/D,EAASxwE,KAAK8rE,WAAWj7D,EAAK,SAClC2/D,EAAOjpD,SAAS4hD,GAChBnpE,KAAKwvE,eAAegB,EAAQ3sB,EAAiBgkB,GAAY,EAAM72D,EAAQ4/C,QACvE5wD,KAAK0xE,aAAalB,EAAQ3I,EAAY72D,EAAQH,MAElDygE,WAAY,SAASnI,EAAQn4D,GACzB,IAAIH,EAAMG,EAAQH,IACd43C,EAAczoD,KAAK+nB,SAAS0gC,YAC5B5E,EAAkB7jD,KAAK+nB,OAAO,mBAC9B,SAAWlX,EAAIM,SAAW0yC,EAC1B7jD,KAAKswG,yBAAyBnnC,EAAQn4D,EAAS6yC,GACvC,SAAWhzC,EAAIM,SAAW,UAAYN,EAAIM,SAAa,eAAUN,EAAIk8C,cAAetE,EAK5FzoD,KAAKC,SAASkpE,EAAQn4D,GAJtBhR,KAAKwvE,eAAerG,EAAQ1gB,EAAa,OAAAhuD,EAAA,WAAO,CAC5C6yB,QAAStc,EAAQsc,SAClBzc,IAAM,IAKjBkgE,aAAc,SAAS//D,GACnB,IAAIrN,EAAO3D,KACPmpE,EAASxlE,EAAK1D,SAAS+Q,GAc3B,OAbK,eAAUrN,EAAKswE,mBAWhBtwE,EAAKspG,qBAVLtpG,EAAKuwE,gBAAgB/K,GACrBxlE,EAAKspG,mBAAkB,GACvBtpG,EAAKw/D,gBAAgBqR,KAAI,SAAU+7B,IAC/B,IAAIC,EAAqB7sG,EAAKypG,gBAC1BoD,GAAsB7sG,EAAKkjB,UAAUoG,QAAQ,iBAAY4N,UAAUjhC,SACnE+J,EAAKw/D,gBAAgBr7C,OAAOyoF,GAC5BC,EAAmBC,oBAAmB,QAM3CtnC,GAEXgD,aAAc,WACV,IAAIhD,EAASnpE,KAAKC,SAASnB,MAAMkB,KAAME,WAIvC,OAHIF,KAAK+nB,SAAS0gC,aAAezoD,KAAK+nB,SAAS87B,kBAC3CslB,EAAO5hD,SAASvnB,KAAK+M,UAAUiZ,YAE5BmjD,GAEXpG,YAAa,SAASnS,GAClB,IAAI5qC,EAAWhmB,KAAK6mB,UACpBb,EAASsB,SAAStnB,KAAK+mB,gBAAgBykF,KAAkB3nC,YAAY7jE,KAAK+mB,gBAAgB,KAAgB/mB,KAAK+nB,OAAO,oBACtH/B,EAAS69C,YAAYioC,GAAa9rG,KAAKonB,gBAAgBC,WACvDrnB,KAAKosB,QAAQ,OAAQ,eAAgBpG,GACrC,IAAImjD,EAASnpE,KAAK+wE,aAAa,CAC3BngB,OAAQA,IAEZ5wD,KAAKg1E,eAAe7L,EAAQvY,GAC5B5wD,KAAKC,SAAS2wD,GACd5wD,KAAK0wG,kBAAoB,MAE7Bv/B,SAAU,SAASvgB,GACf,OAAOA,GAAUA,EAAOloC,OAAS1oB,KAAKonB,gBAAgBsB,SAE1DgqD,gBAAiB,SAAS1hE,GACtB,IAAIF,EAASE,EAAQF,OACjBD,EAAMG,EAAQH,IACd1K,EAAO0K,EAAI1K,KACX8/F,EAAep1F,GAAOA,EAAIo1F,aAC1BpkG,EAAQmP,EAAQnP,MAChBwyF,EAAe,OAAczqE,gBAAgB9Y,EAAQjP,EAAOsE,EAAM0K,EAAIM,SACtEg1D,EAAanmE,KAAKC,SAAS+Q,GAa/B,GAZAm1D,EAAWtkE,MAAQA,EACnBskE,EAAW0L,SAAW7gE,EAAQ6gE,SAC9B1L,EAAWkuB,aAAeA,EAC1BluB,EAAWt1D,IAAMA,EACjBs1D,EAAWrrE,IAAM+V,EAAI/V,IACrBqrE,EAAWhgE,KAAOA,EAClBggE,EAAWh1D,QAAUN,EAAIM,QACzBg1D,EAAWrwC,OAASjlB,EAAIilB,OACxBqwC,EAAW5pE,KAAQuU,EAAO6c,QAA4D,GAAlD,OAAczI,YAAYmvE,EAAcvjF,GAC5Eq1D,EAAW0D,SAAWh5D,EAAIg5D,SAC1B1D,EAAWj8C,aAAe+7E,GAAgBA,EAAaj1F,EAAQ4T,aAC/DuhD,EAAW9Y,QAAUv8C,EAAO0jF,iBACxB,eAAU1jF,EAAOi8C,cAAgBj8C,EAAO6c,QAAS,CACjD,IAAIgjF,EAAuB3wG,KAAK+nB,OAAO,kBACnCq6E,EAAgBpiG,KAAK+nB,OAAO,kBAC5B,YAAcq6E,GAAiB,aAAeA,IAC9Cj8B,EAAWhN,sBAAwBhzD,GAAQA,EAAKgxF,0BAA4BwZ,GAAwBA,EAAqBx3C,sBACzHgN,EAAWjN,sBAAwB/yD,GAAQA,EAAK6lB,gBAAkB2kF,GAAwBA,EAAqBz3C,uBAGvH,OAAOiN,GAEXyqC,oBAAqB,SAASn7B,EAAOjJ,EAAgB5nD,EAAa/iB,GAC9D,IAAI8kE,EAAoB3mE,KAAKysE,mBACzBn/C,EAAUq5C,EAAkBc,aAC5B32D,EAASwc,GAAWA,EAAQ1I,GAC5Bo7D,EAAWlvE,GAAUA,EAAOo8C,QAAUp8C,EAAO1P,MACjD,eAAKq0E,GAAO,SAAU5L,EAAUh5D,GAC5B,IAAK,eAAEA,GAAKy1D,SAAS,IACjB,IAAK,IAAI7qE,EAAI,EAAGA,EAAI+wE,EAAe5yE,OAAQ6B,IACvC,IAAI,eAAUukF,IAAarZ,EAAkBmuB,mBAAmBtoB,EAAe/wE,GAAG2F,MAAO4+E,IAAaxT,EAAe/wE,GAAG2F,QAAUwjB,KAC9H6wD,EAAMjqD,GAAGq+C,GAAUxC,WAAW77C,GAAG/vB,GAAGgwB,IAAI,CACpCitC,QAAS72D,KAER,eAAUm+E,IACX,UAOxB6wB,qBAAsB,WAClB,OAAO,iBAAYriF,kBAEvB5H,iBAAkB,OAAcA,iBAChCkqF,eAAgB,SAASjnC,EAAUwM,GAC/B,IACI1J,EACA77D,EAFA+2D,EAAa7nE,KAAKonB,gBAAgBsB,QAAQmhD,GAkB9C,OAfIhC,IAEI/2D,EADA,eAASulE,GACAr2E,KAAKysE,mBAAmBoK,aAAaR,GAErCr2E,KAAKysE,mBAAmBC,oBAAoB2J,GAErDvlE,IACA67D,EAAc3sE,KAAK0yE,gBAAgB,CAC/B7wE,MAAOiP,EAAOoT,mBAAmB2jD,EAAW1hE,MAC5C0jE,SAAUhC,EAAWgC,SACrBh5D,IAAKg3D,EACL/2D,OAAQA,MAIb67D,GAEXl7D,OAAQ,SAASrQ,GACb,GAAIA,GAAS,EAAG,CACZ,IAAI8vE,EAAOlxE,KAAKm2E,kBAChB,GAAIjF,EAAKt3E,OAASwH,EACd,OAAO,eAAE8vE,EAAK9vE,MAI1BivG,yBAA0B,SAASlnC,GAC/B,IAAI8oB,EAAiBjyF,KAAKonB,gBACtB2pF,EAAY9e,EAAevpE,OAAM,GAAM9uB,OACvCu0G,EAAiBnuG,KAAKk1E,sBACtB87B,EAAuBhxG,KAAK2vG,yBAAyBxmC,GACzD,GAAI6nC,GAAwB7C,GAAkBlc,EAAe2I,cAAgB,EAAG,CAC5E,IAAIqW,GAAwB,EAC5B,GAAIF,EAAY,EACZ,GAAK/wG,KAAKstG,WAcN0D,EAAqBxmD,OACrB,eAAY,KACR,IAAI0mD,EAAiBlxG,KAAKmxG,mBAAkB,GACxCC,EAAgC,eAAUpxG,KAAK6mB,WAAaqqF,EAC5DG,EAAgB,eAAelD,GAC/BmD,EAAmBF,EAAgCC,EAAgB,EACnE3B,EAAa1vG,KAAKuvG,eAAepB,EAAe9mC,WAAWoS,SAC3DxJ,EAAgB9G,GAAUnpE,KAAKg0E,mBAC/Bu9B,EAAiB5vF,KAAKw8E,KAAK56B,WAAW0M,EAAcxkD,IAAI,oBACxD+lF,EAAmBxxG,KAAKyxG,uBACxBC,EAAeN,EAAgC1B,EAAa6B,EAAiBC,EAC7EF,GACA,eAAY,KACRN,EAAqBvlF,IAAI,SAAUimF,GACnCT,GAAwB,EACxBD,EAAqBvmD,SAG7B,eAAY,IAAMzqD,KAAK2xG,qBAAqBV,UAhC9B,CAClB,IAAIW,EAAoB3f,EAAez2B,WAAau1C,EAChD3O,EAAgBpiG,KAAK+nB,OAAO,kBAC5B6pF,EAAoB,GAAK3f,EAAe0L,YAAc,GAAK,YAAcyE,GAAiB,aAAeA,IACzG,eAAU4O,EAAsBY,EAAoB5xG,KAAKsvG,YACzD2B,GAAwB,IAEvBA,GAAyB9nC,EAC1B,eAAU6nC,EAAsB,GAEhCA,EAAqBxC,OAAOyC,GAEhCjxG,KAAK2xG,qBAAqBV,QAwB9BD,EAAqBvlF,IAAI,SAAU,GACnCulF,EAAqBvmD,OACrBzqD,KAAK2xG,sBAAqB,KAItCF,qBAAsB,WAClB,IAAII,EAAiBpjF,EAAA,KAAQqjF,QAAU9xG,KAAK6wG,wBAA0B,EAClEkB,EAAiBtjF,EAAA,KAAQujF,QAAUvjF,EAAA,KAAQ0U,SAAW,GACtD8uE,EAAoBxjF,EAAA,KAAQC,SAAWD,EAAA,KAAQ0U,SAAW,KAAOnjC,KAAK+nB,OAAO,gBACjF,OAAO8pF,GAAkBI,GAAqBF,EAAiB,EAAI,GAEvEr+B,qBAAsB,SAAS9vE,GAC3B,IAAI+vE,EAAc/vE,EAAE+vE,YAChB/vE,EAAEytE,YAAYvsB,WAGd6uB,EAAYpsE,OAASosE,EAAY9H,gBACjC7rE,KAAKC,SAAS2D,GACd5D,KAAKkyG,gCAGb9E,cAAe,WACX,OAAOptG,KAAKguG,aAEhBjuC,KAAM,WACF,IAAIp8D,EAAO3D,KACPiyF,EAAiBtuF,EAAKs9D,cAAc,QACxCt9D,EAAK1D,WACL0D,EAAKwuG,yBAA2BxuG,EAAKs9D,cAAc,iBACnDt9D,EAAK2rG,WAAa,EAClB3rG,EAAK+pG,WAAa,EAClB/pG,EAAKitE,aAAe,EACpBjtE,EAAKiqG,aAAe,EACpBjqG,EAAK2pG,YAAa,EAClBrb,EAAemG,eAAe5jB,KAAI,SAAU9uE,EAAW2jG,GACnD1lG,EAAKyuG,WAAW1sG,EAAW2jG,MAE/BpX,EAAeiW,kBAAkB1zB,KAAI,WAC7B7wE,EAAKitE,aAAe,GACpBjtE,EAAK6pG,cAAc,CACfzgG,UAAWpJ,EAAKypG,gBAChBO,aAAc,CACV/hF,IAAKjoB,EAAK+pG,WACV/hF,KAAMhoB,EAAKitE,mBAM/B8D,mBAAoB,SAAS9jB,GACzB,OAAQA,EAAOogB,YACX,IAAK,UACL,IAAK,UACL,IAAK,SACL,IAAK,SACDhxE,KAAKmE,OAAO,KAAMysD,GAClB,MACJ,QACI5wD,KAAKysG,QAAQ77C,KAGzBoP,cAAe,WACX,MAAO,CAAC,qBAAsB,uBAAwB,oBAAqB,iBAAkB,gBAAiB,kBAElHqyC,aAAc,WACV,OAAO,eAASryG,KAAK6mB,WAAa7mB,KAAKmxG,qBAE3CA,kBAAmB,SAAS35B,GACxB,IAUI7zE,EAAMuoG,EAVNoG,EAAsBtyG,KAAKiuG,sBAAwBjuG,KAAKiuG,qBAAqBvwG,IAAI,GACjFwzG,EAAiB,EAUrB,OATIoB,IACK96B,GAGD05B,EAAiBoB,EAAoBC,aAAeD,EAAoB7uC,aAAe6uC,EAAoBC,aAAe,EAC1HrB,IAAmBvtG,EAAO3D,KAAMksG,EAAavoG,EAAKypG,gBAAiBlB,EAAavqF,KAAKw8E,KAAK56B,WAAW,eAAE2oC,EAAWjjC,WAAWx9C,IAAI,mBAAqB,IAHtJylF,EAAiBoB,EAAoB5kC,YAAc4kC,EAAoBj9B,YAAci9B,EAAoB5kC,YAAc,GAOxHwjC,EAAiB,EAAIA,EAAiB,GAEjDgB,4BAA6B,WAIzB,IAHA,IAAIM,EAAmBxyG,KAAK0wG,mBAAqB,GAC7C+B,EAAe,GACfnlF,EAAUttB,KAAKynE,aACVhsE,EAAI,EAAGA,EAAI6xB,EAAQ1zB,OAAQ6B,IAChCg3G,EAAah3G,GAAK6xB,EAAQ7xB,GAAGowE,aACzBv+C,EAAQ7xB,GAAG+4F,mBAAqB,eAAUlnE,EAAQ7xB,GAAGsxD,aAAeylD,EAAiB/2G,KAAOg3G,EAAah3G,IACzG6xB,EAAQ7xB,GAAG+4F,iBAAiB1wB,KAAK2uC,EAAah3G,IAGtDuE,KAAK0wG,kBAAoB+B,GAE7Bd,qBAAsB,SAASV,GACvBjxG,KAAK+nB,OAAO,gBAAkB/nB,KAAK+nB,OAAO,kBAAoBkpF,EAC9DjxG,KAAK6mB,UAAUS,SAASukF,IAExB7rG,KAAK6mB,UAAUW,YAAYqkF,KAGnC6G,kBAAmB,WACf,IAAIC,EAAe,QAAWC,YAAY5yG,KAAK6mB,WAC3C8rF,IACAA,EAAan/B,SACbxzE,KAAK6yG,oCAGbA,gCAAiC,WAC7B,IAAI3G,EAAalsG,KAAKotG,gBAClBz8B,EAAau7B,GAAcA,EAAWyB,eAAehiF,KACrDN,EAAarrB,KAAK+nB,OAAO,cAC7B,GAAIsD,EAAY,CACZ,IAAIynF,EAA4B7G,GAA6BC,GACzD6G,EAAcD,EAA4BniC,EAC1CoiC,IAAgB/yG,KAAK4tG,eACrB5tG,KAAK4wE,YAAckiC,EAA4B9yG,KAAK4tG,cAGxD5tG,KAAK4wE,aAAe,GAAKD,IAAe3wE,KAAK4wE,aAC7Cs7B,EAAWr7B,SAAS,CAChBzjE,EAAGpN,KAAK4wE,eAIpB5N,YAAa,WACT,IAAIr/D,EAAO3D,KACX2D,EAAKuuG,8BACLvuG,EAAK8rG,mBACL,gBAAY,WACR9rG,EAAKspG,oBACLtpG,EAAKijB,mBACLjjB,EAAK0sG,2BACL,gBAAY,WACR1sG,EAAK+uG,2BAIjB7hC,SAAU,SAASvW,GACf,IAAIt0C,EAAWhmB,KAAK6mB,UAChB8rF,EAAe3sF,GAAY,QAAW4sF,YAAY5sF,GAClD2sF,GACAA,EAAa9hC,SAASvW,IAG9B5oD,OAAQ,SAASshG,EAASC,GACtB,IAAItvG,EAAO3D,KACPgmB,EAAWhmB,KAAK6mB,UACpB,GAAI,IAAM3mB,UAAUtG,OAChB,OAAOosB,EAAW,eAAeA,GAAU,GAAQ,EAEvDriB,EAAK2pG,gBAAa,IAAW2F,EAAY,SAAWD,EAAUC,EAC1D,eAAUD,IAAYhtF,GACtB,eAAUA,EAAUgtF,IAG5BZ,WAAY,SAAS1sG,EAAW2jG,GAC5B,IAAIhkD,EAAYrlD,KAAK6nB,WACjBoqE,EAAiBjyF,KAAKonB,gBACtBQ,EAAmB5nB,KAAK+nB,OAAO,cAAgB,GAC/CmrC,EAAY++B,EAAezU,WAAa51D,EAAiBsrC,UAAY,KACrEltC,EAAWhmB,KAAK6mB,UACpB,GAAK,oBAGAw+B,QAAa,IAAWgkD,GAAepX,EAAetqE,gBAAkB,SAAWC,EAAiBI,SAAWhC,IAChHhmB,KAAKmtG,iBAAiBnnF,EAAUA,EAASkI,UACzCm3B,EAAYrlD,KAAK6nB,YAEjBw9B,GAAW,CACX,IAAI6tD,EAAoB,CACpBhrF,QAASmhF,GAAezhF,EAAiBrrB,KACzC22D,UAAWA,EACXvJ,QAASjkD,GAETA,IACAwtG,EAAkB1+C,SAAW,OAAc2+C,2BAA2BntF,IAE1EyjD,aAAazpE,KAAKozG,uBACd/tD,EAAUt9B,OAAO,aAAeriB,EAChC1F,KAAKozG,sBAAwBngG,YAAW,WACpCoyC,EAAUt9B,OAAOmrF,KACjBlH,IAEJ3mD,EAAUt9B,OAAOmrF,KAI7BnzB,eAAgB,SAASn7D,EAAa/iB,GAClC,IAAI4zE,EAAQz1E,KAAKm2E,kBAAkBpG,IAAI,IAAM,KAAoB,GACjE/vE,KAAK4wG,oBAAoBn7B,EAAOz1E,KAAKynE,aAAc7iD,EAAa/iB,IAEpEq0E,qBAAsB,SAASrM,GAC3B,IAAInC,EAAS1nE,KAAKC,SAASnB,MAAMkB,KAAME,WACvC,GAAIwnE,EAAQ,CACR,IAAI2rC,EAAiB3rC,EAAOtpE,OAAO,IAAM,IAAkBgD,QAC3D,GAAIiyG,GAAkB,GAAK3rC,EAAO9tE,OAASy5G,EAAiB,EACxD,OAAO3rC,EAAOrkD,MAAM,EAAGgwF,EAAiB,GAGhD,OAAO3rC,GAEX4rC,6BAA8B,SAASC,EAAOC,GAC1C,IAAIC,EAAY,EACZC,EAAa,EACbtoF,EAAS,EACTuoF,EAAmB3zG,KAAK0tG,WACxBkG,EAAkB5zG,KAAKk1E,sBACvB2+B,EAA0BD,GAAmBA,EAAgBxoF,SAASQ,IACtEqmE,EAAiBjyF,KAAKihE,cAAc,QACpCv4C,EAAQupE,EAAevpE,QACvBonD,EAAe9vE,KAAKi0E,kBACxB,GAAIvrD,EAAM9uB,QAAUk2E,EAAc,CAC9B,IAAIgkC,EAAc9zG,KAAKm2E,gBAAgBrG,GAAc1xE,OAAO,YAC5D,IAAKm1G,EAAO,CACR,IAAI7hG,EAAS,eAAe1R,KAAKstG,WAAattG,KAAK6mB,UAAY,kBAC/D8sF,GAAoBjiG,EAExB,IAAK+hG,EAAY,EAAGA,EAAY/qF,EAAM9uB,OAAQ65G,IAAa,CACvDC,EAAatoF,EACb,IAAI4mD,EAAc,eAAE8hC,GAAatoF,GAAGioF,GACpC,GAAIzhC,EAAYp4E,SACZwxB,EAAS4mD,EAAY5mD,SACrBA,GAAUmoF,EAAQnoF,EAAOQ,IAAMR,EAAOQ,IAAM,eAAeomD,IAAgB6hC,EACvEzoF,EAASuoF,GAAkB,CACvBF,IACID,GAAW,EAAIG,EAAmBhyF,KAAKwqF,MAAM/gF,EAASsoF,KACtDD,IAGR,OAIRA,GAAaA,IAAc/qF,EAAM9uB,QACjC65G,IAGR,OAAOA,GAEXM,uBAAwB,SAASP,GAC7B,OAAOxzG,KAAKszG,8BAA6B,EAAME,IAEnDQ,0BAA2B,SAASR,GAChC,OAAOxzG,KAAKszG,8BAA6B,EAAOE,IAEpDS,qBAAsB,WAClB,IAAIR,EAAYzzG,KAAK+zG,yBACjBrrF,EAAQ1oB,KAAKonB,gBAAgBsB,QACjC,GAAIA,EAAM+qF,GACN,OAAO/qF,EAAM+qF,GAAWttG,MAGhC+tG,iBAAkB,SAASluF,EAAUoF,GACjC,IAAI8gF,EAAalsG,KAAKotG,gBACtBlB,GAAcA,EAAWiI,gBAAgBnuF,EAAUoF,IAEvDo1C,cAAe,SAAS3hB,GAEpB,OADA7+C,KAAKC,SAAS4+C,GACNA,EAAKj9C,MACT,IAAK,kBACL,IAAK,kBACL,IAAK,eACL,IAAK,wBACL,IAAK,cACL,IAAK,kBACL,IAAK,uBACD5B,KAAK4iE,aAAY,GAAM,GACvB/jB,EAAK6hB,SAAU,EACf,MACJ,IAAK,YACD1gE,KAAKsvG,WAAa,KAClBtvG,KAAKswE,cAAgB,KACrBzxB,EAAK6hB,SAAU,EACf,MACJ,IAAK,aACD1gE,KAAKsvG,WAAa,KAClBtvG,KAAKswE,cAAgB,KACrB,MACJ,IAAK,YACDtwE,KAAKswE,cAAgB,KACrBtwE,KAAK4iE,aAAY,EAAM,sBAAwB/jB,EAAK4sC,UACpD5sC,EAAK6hB,SAAU,EACf,MACJ,IAAK,aACD1gE,KAAK4mB,mBACLi4B,EAAK6hB,SAAU,IAG3Be,QAAS,WACLgI,aAAazpE,KAAKozG,uBAClBpzG,KAAKguG,aAAehuG,KAAKguG,YAAYvsC,WAEzC2V,mBAAoB,aACpBg9B,iBAAkB,cAr5BI,MC5FhBhI,GAAWrnC,MAAM74C,SACvC,EAASu5C,eAAe,OAAQ2mC,I,yHCAhC,MAAM,WAA6B,QAC/B,iBACI,OAAO,eAAIpsG,KAAKq0G,kBAAkBtsF,OAAO,UAAU,SAAUusF,EAAavtG,GACtE,OAAOA,EAAK2hB,MAAQ,CAAC3hB,GAAM8K,OAAO,eAAI9K,EAAK2hB,MAAO4rF,IAAiBvtG,KAG3E,eAAeA,GACX,OAAOhM,KAAKC,UAAU+L,EAAM,CAACjM,EAAK+G,IAC1B,aAAe/G,EACRkF,KAAKu0G,mBAAmB1yG,GAE5BA,GAGf,mBAAmBspD,GACf,IAAIlsD,EAMJ,OAJIA,EADA,kBAAoBksD,EACX,eAAEA,GAAU5uD,OAEZ4uD,EAAS1pC,WAEfxiB,GAGA,U,aCNXu1G,GAAgB,UAChBC,GAAyBD,GAAgB,YACzCE,GAAqB,eACrBC,GAAaH,GAAgB,QAC7BI,GAAwBD,GAAa,WACrCE,GAA8BF,GAAa,YAC3CG,GAA6BH,GAAa,WAC1CI,GAAgCP,GAAgB,mBAChDQ,GAA8BL,GAAa,YAC3CM,GAA0BT,GAAgB,aAC1CU,GAA+BV,GAAgB,mBAC/CW,GAAmBR,GAAa,YAChCS,GAAmBT,GAAa,YAChCU,GAAsBV,GAAa,eACnCW,GAA4BX,GAAa,UACzCY,GAAsCD,GAA4B,aAClEE,GAA6Bb,GAAa,QAC1Cc,GAAwB,SACxBC,GAAgB,CAChBjrD,KAAM,GACND,KAAM,KAEV,MAAM,WAAiB,QACnB,qBACI,OAAO,OAAA/vD,EAAA,WAAOk7G,MAAMC,qBAAsB,CACtCltF,MAAO,GACPsiC,SAAU,GACVlI,oBAAoB,EACpB+yD,gBAAiB,CACbj0G,KAAM,UACNomC,MAAO,CACHyiB,KAAM,GACND,KAAM,MAGd0I,UAAW,CACPzI,KAAM,CACFhsD,KAAM,OACNsmC,KAAM,EACNrsC,GAAI,EACJshE,SAAU,KAEdxP,KAAM,CACF/rD,KAAM,OACNsmC,KAAM,EACNrsC,GAAI,EACJshE,SAAU,MAGlB87C,eAAe,EACfC,qBAAqB,EACrB3wD,QAAS,KACT4wD,gBAAiB,CACbC,KAAM,YAEVC,cAAc,IAGtB,eACI,MAAO,oBAEX,aACI,OAAOvB,GAEX,oBACA,qBACI,OAAOE,GAEX,eACI,OAAOH,GAEX,eACI,OAAO10G,KAAKm2G,iBAEhB,SACIn2G,KAAK+nB,OAAO,iBAAkB,MAC9B4tF,MAAMS,SAEV,iBACI,OAAO,OAAA37G,EAAA,WAAOk7G,MAAMU,iBAAkB,CAClCC,MAAO,KACH,IAAInL,EAAQ,eAAEnrG,KAAK+nB,OAAO,mBACrBojF,EAAMvxG,QAAWoG,KAAKu2G,uBAG3Bv2G,KAAKw2G,WAAWrL,EAAM,KAE1BsL,OAAQ,OACRC,SAAU,SAGlB,sBACI,OAAO12G,KAAK+nB,OAAO,mBAAqB0tF,GAE5C,QACIz1G,KAAK22G,iBAAmB,IAAI9kG,OAAO8iG,IACnCgB,MAAMiB,QACN52G,KAAK62G,sBACL72G,KAAK82G,eAET,kBAAkBh3B,GACd,IAAIi3B,EAAWj3B,EAASvjF,KACpBy6G,EAAiB,eAAE,UAAU1vF,SAASkuF,IACtCyB,EAAc,eAAcn3B,GAAYi3B,EAAWp9G,OAAOmmF,GAC9D,OAAOi3B,GAAYC,EAAez6G,KAAK06G,GAE3C,oBAAoBn3B,GAChB,IACIo3B,EADAxuF,EAAQo3D,EAASp3D,MAErB,GAAIA,GAASA,EAAM9uB,OAAQ,CACvB,IAAIu9G,EAAe,eAAE,SAAS7vF,SAASguF,IACvC4B,EAAmB,eAAE,UAAU5vF,SAASiuF,IAAqC3rE,OAAOutE,GAExF,OAAOD,EAEX,yBACI,MAAO,CACHE,UAAW,EACXC,mBAAmB,EACnBC,oBAAoB,EACpBC,oBAAoB,EACpBC,YAAa,IAGrB,cAAcC,GACV,GAAKA,EAAL,CAGA,IAAIC,EAAe13G,KAAK23G,aAAaC,cAAcH,GACnDz3G,KAAK23G,aAAaE,gBAAgBH,EAAaI,eAAeh9G,KAAK,IAEvE,sBACI,IAAIi9G,EAAe/3G,KAAK23G,aAAaK,uBACjCC,EAAcF,EAAan+G,QAAUm+G,EAAa,GAClDN,EAAez3G,KAAK+nB,OAAO,gBAC/B,GAAKkwF,EAAL,CAIA,IAAIC,EAAOl4G,KAAK23G,aAAaQ,aAAaF,IACtC,IAAUC,EAAKE,aAGdX,EAIDA,IAAiBS,EAAKJ,eAAe/wG,OACrC/G,KAAK23G,aAAaE,gBAAgBI,GAAa,GAC/Cj4G,KAAKq4G,cAAcZ,IALnBz3G,KAAK+nB,OAAO,eAAgBmwF,EAAKJ,eAAe/wG,YARhD/G,KAAKq4G,cAAcZ,GAgB3B,gBACA,cACI9B,MAAM2C,cACNt4G,KAAK+nB,OAAO,iBAAmB/nB,KAAKu4G,mBAExC,mBACIv4G,KAAKw4G,WAAa,kBAEtB,mBAAmBxyF,EAAUnkB,EAAO+B,GAEhC,GADA+xG,MAAM8C,mBAAmB35G,MAAMkB,KAAME,WAChCF,KAAKw4G,WAAV,CAGA,IAAIr3C,EAAS,CACTt6C,QAASb,EACTs7C,MAAO19D,GAEP/B,EACA7B,KAAKw4G,WAAWE,SAASv3C,GAEzBnhE,KAAKw4G,WAAWG,SAASx3C,IAGjC,sBACI,IAAIw7B,EAAc38F,KAAK+nB,OAAO,mBAE9B,OADA40E,EAAc,eAASA,GAAeA,EAAY/6F,KAAO+6F,EAClD38F,KAAK44G,mBAAqBjc,EAAc,UAEnD,sBACA,mBACI,MAAO,YAAckc,GAAA,KAAQC,OAAOC,WAExC,oBACI,IAAIC,EAAW,GACfh5G,KAAKi5G,cAAgB,IAAID,EAASh5G,MAEtC,mBAAmBgmB,GACfA,EAASsB,SAAStnB,KAAK+nB,OAAO,aAElC,uBACI,MAAO,IAAIlW,OAAOijG,IAEtB,mBAAmBlxG,GACf,IAAIs1G,EAAel5G,KAAKm5G,2BAA2Bv1G,GAC9Cs1G,IAAgBl5G,KAAKo5G,gBAAgBF,KAG1Ct1G,EAAEy1G,kBACE,YAAcr5G,KAAKs5G,wBACnB7vC,aAAazpE,KAAKu5G,sBAClBv5G,KAAKu5G,qBAAuBtmG,WAAWjT,KAAKw5G,aAAahvF,KAAKxqB,KAAMk5G,GAAel5G,KAAKy5G,iBAAiB,WAGjH,mBAAmBC,GACf,OAAO/D,MAAMgE,mBAAmBD,GAAet7G,QAAO,WAClD,MAAO,WAAa,eAAE4B,MAAMyrB,IAAI,iBAGxC,gBAAgB0/E,GACZ,OAAOnrG,KAAK45G,gBAAgBzO,EAAMhlG,KAAKnG,KAAK65G,iBAEhD,aAAaX,GACTl5G,KAAK85G,kBAAkBZ,GAE3B,kBAAkBa,GACd,eAAEA,GAAazyF,SAAS0tF,IAE5B,iBAAiB5zC,GACb,IACIp5B,MAAOA,GACPhoC,KAAK+nB,OAAO,mBAChB,OAAK,eAAUigB,GAGR,eAASA,GAASA,EAAMo5B,GAAUp5B,EAF9B0tE,GAAct0C,GAI7B,2BAA2B44C,GACvB,IAAIn5C,EAAU,eAAEm5C,EAAU10F,QAC1B,GAAIu7C,EAAQyF,SAAStmE,KAAKi6G,eAAiBp5C,EAAQnjE,IAAI,KAAOs8G,EAAUtwC,cACpE,OAAO7I,EAEX,OAAQA,EAAQyF,SAAStmE,KAAKi6G,cAE1B,GADAp5C,EAAUA,EAAQ3yC,SACd2yC,EAAQyF,SAAS,cACjB,OAAO,KAGf,OAAOzF,EAEX,mBACI4I,aAAazpE,KAAKu5G,sBAEtB,YAAYrB,GACR,OAAOA,GAAQA,EAAKJ,eAAeoC,aAAatgH,OAEpD,qBACIoG,KAAKm6G,aAAan6G,KAAK23G,aAAayC,gBAExC,aAAaC,EAAOC,GAChB,GAAID,EAAMzgH,OAAQ,CACdoG,KAAKu6G,UAAW,EAChB,IAAIC,EAAiBx6G,KAAKy6G,iBAAiBz6G,KAAKgmB,WAAYs0F,GACxDI,GAAqB,EACrBC,GAAuB,EAC3B,eAAKN,EAAO,CAACj5G,EAAO82G,KAChB,IAAI0C,GAAgB,IAAU1C,EAAKvuD,QAC/BixD,GAAiBF,EAAoB,IACrCA,EAAoBt5G,GAExB,IAAIy5G,EAAeH,EAAoBt5G,IAAU82G,EAAK4C,YAAc15G,IAAUu5G,GAC1EE,IACAF,EAAsBC,EAAgBx5G,EAAQA,EAAQ,GAEtDA,IAAUu5G,GAAuBD,EAAoBt5G,GACrDpB,KAAK+6G,iBAAiBP,GAE1Bx6G,KAAKg7G,YAAY55G,EAAO82G,EAAMsC,KAE7Bx6G,KAAKu6G,UACNC,EAAelzF,SAASmtF,KAIpC,iBAAiBwG,GACb,IAAIn2F,EAAa,eAAE,QAEnB,OADA9kB,KAAKosB,QAAQ,OAAQ,OAAQtH,GACtBA,EAAWyC,SAAS0zF,GAAU3zF,SAASytF,IAElD,kBAAkByF,GACd,IAAIU,EAAQ,eAAE,QAEd,OADAl7G,KAAKosB,QAAQ,OAAQ,OAAQ8uF,GACtBA,EAAM3zF,SAASizF,GAAgBlzF,SAASwtF,IAEnD,YAAY1zG,EAAO82G,EAAMsC,EAAgBW,GACrC,IAAIzyF,EAAQ1oB,KAAK+nB,OAAO,SACpBmzF,EAAQC,GAAgBn7G,KAAKo7G,kBAAkBZ,GAC/C9xF,EAAMtnB,EAAQ,IAAMsnB,EAAMtnB,EAAQ,GAAG05G,YACrCI,EAAM5zF,SAAS4tF,IAEnB,IAAImG,EAAa1F,MAAMqF,YAAY55G,EAAO82G,EAAKJ,eAAe/wG,KAAMm0G,GAChEhD,EAAKJ,eAAe/wG,OAAS/G,KAAK+nB,OAAO,iBACzCszF,EAAW/zF,SAASutF,IAExBwG,EAAWr6C,KAAK,YAAa,GACzBhhE,KAAKs7G,YAAYpD,IACjBl4G,KAAKosB,QAAQ,WAAY,OAAQivF,GAGzC,iBAAiBj6G,EAAO0+E,EAAUk3B,GAC9B,IAAIqE,EAAarE,EAAe3vC,SAAS,IAAIx1D,OAAO8iG,KACpD,OAAO0G,EAAWzhH,OAASyhH,EAAa1F,MAAM4F,iBAAiBz8G,MAAMkB,KAAME,WAE/E,aAAairG,EAAOpkG,GAChB,IAAImxG,EAAOl4G,KAAK23G,aAAaC,cAAc7wG,GACvC3F,EAAQ+pG,EAAMhlG,KAAKnG,KAAKw7G,iBACxBhB,EAAiBrP,EAAMl+E,QAAQ,MAC/BkuF,EAAehQ,EAAMl+E,QAAQ,MACjCjtB,KAAKg7G,YAAY55G,EAAO82G,EAAMsC,EAAgBW,GAElD,mBAAmBr7B,EAAUu7B,GACzB,IAAII,IAAU37B,EAASvjF,QAASujF,EAASvjF,KAAK3C,OAC1C8hH,IAAY57B,EAAS70B,KACrB0wD,IAAa77B,EAASp3D,SAAUo3D,EAASp3D,MAAM9uB,OACnDyhH,EAAWx3C,YAAYsxC,GAAkBsG,GACzCJ,EAAWx3C,YAAYuxC,GAAkBsG,GACpC17G,KAAKu6G,WACNv6G,KAAKu6G,SAAWmB,GAEpBL,EAAWx3C,YAAYwxC,GAAqBsG,GAEhD,gBAAgBN,GACZ,IAAIO,EAAejG,MAAMkG,gBAAgBR,GAIzC,OAHKO,EAAahiH,SACdgiH,EAAeP,EAAWh0C,SAAS,IAAIx1D,OAAO+iG,MAE3CgH,EAEX,uBAAuB/8D,GACnB,IAAIq6D,EAAe,eAAEr6D,EAAKk7D,aACtB+B,EAAgB97G,KAAK23G,aAAaK,uBACtC,GAAK8D,EAAcliH,QAAWoG,KAAK+7G,gBAAgBl9D,EAAKihC,WAAc9/E,KAAKg8G,kBAAkBn9D,EAAKihC,UAAlG,CAIA,IAAIo4B,EAAOl4G,KAAK23G,aAAaC,cAAc/4D,EAAKihC,UAC5Co4B,EAAKJ,eAAeh9G,MAAQghH,EAAc,IAC1C5C,EAAa5xF,SAAStnB,KAAKi8G,sBAC3Bj8G,KAAKk8G,iBAAiBhD,EAAc,SAEpCl5G,KAAKk8G,iBAAiBhD,EAAc,cARpCl5G,KAAKk8G,iBAAiBhD,EAAc,SAW5C,kBAAkBnyG,GACd,OAAO,IAAUA,EAAKqxG,WAE1B,iBAAiB+D,GACb,eAAE,QAAQ50F,SAAS40F,GAAiB70F,SAAS2tF,IAEjD,kBAAkBrxG,GACd,IAAIA,EAAEw4G,cAAN,CAGA,IAAIC,EAAyBr8G,KAAKqhE,cAAcrhE,KAAKs8G,gCAAgC9xF,KAAKxqB,OAC1FA,KAAKu8G,oBAAoB34G,EAAG,cAAe,GAAI,CAC3CywE,aAAcgoC,EAAuB7xF,KAAKxqB,QAE9C4D,EAAEw4G,eAAgB,GAEtB,gCAAgCI,GAC5Bx8G,KAAKy8G,2BAA2BD,GAC5B,YAAcx8G,KAAKs5G,uBACnBt5G,KAAK85G,kBAAkB0C,EAAW39D,KAAK,GAAGk7D,aAGlD,2BAA2ByC,GACvB,IAAI39D,EAAO29D,EAAW39D,KAAO29D,EAAW39D,KAAK,GAAK29D,EAClD,GAAKx8G,KAAK08G,wBAAwB79D,EAAKihC,UAAvC,CAGA,IAAI68B,EAAkB38G,KAAK23G,aAAaK,uBACpC4E,EAAeD,EAAgB/iH,QAAUoG,KAAK23G,aAAaQ,aAAawE,EAAgB,IACxFC,GACA58G,KAAK68G,qBAAqBD,GAAc,GAEvCA,GAAgBA,EAAa9E,eAAe/wG,OAAS83C,EAAKihC,UAG3D9/E,KAAK88G,0BAA0B,KAAM98G,KAAK+nB,OAAO,iBACjD/nB,KAAKsgE,8BAA8B,eAAgB,OAHnDtgE,KAAKw2G,WAAW33D,EAAKihC,WAM7B,wBAAwB/4E,GACpB,IAAIg2G,EAA4B/8G,KAAKu2G,uBAAyBv2G,KAAK+nB,OAAO,iBAC1E,OAAQ/nB,KAAKg9G,qBAAuBD,GAA6B/8G,KAAKg8G,kBAAkBj1G,KAAU/G,KAAKi9G,aAAal2G,GAExH,oBACI,OAAO/G,KAAKm2G,iBAAiBvoH,GAAG,UAEpC,wBACI,OAAO,iBAEX,eAAeixD,GACX,OAAQA,EAAKj9C,MACT,IAAK,kBACD,MACJ,IAAK,eACD,IAAIs2G,EAAOl4G,KAAK23G,aAAaC,cAAc/4D,EAAKh9C,OAC5Co2G,EAAcj4G,KAAK23G,aAAaK,uBAAuB,GAC3D,GAAIE,GAAQA,EAAKJ,eAAeh9G,MAAQm9G,EAAa,CACjD,IAAI,IAAUC,EAAKE,WACf,MAEAH,GACAj4G,KAAK68G,qBAAqB78G,KAAK23G,aAAaQ,aAAaF,IAAc,GAE3Ej4G,KAAK68G,qBAAqB3E,GAAM,GAChCl4G,KAAKk9G,uBAET,MACJ,IAAK,WACL,IAAK,WACL,IAAK,gBACL,IAAK,YACL,IAAK,eACDl9G,KAAK4iE,cACL,MACJ,QACI+yC,MAAMwH,eAAet+D,IAGjC,qBAAqBq5D,EAAMr2G,GACvB,IAAIk4G,EAAc/5G,KAAKo9G,kBAAkBlF,EAAKJ,eAAe/wG,MAC7DgzG,GAAe,eAAEA,GAAal2C,YAAYgxC,IAC1C70G,KAAK23G,aAAaE,gBAAgBK,EAAKJ,eAAeh9G,IAAK+G,GAE/D,kBAAkBi+E,GACd,IAAI7gF,EAQJ,OAPA,eAAKe,KAAKq9G,gBAAiB,CAACt+G,EAAGg7G,IACvB,eAAEA,GAAa5zG,KAAKnG,KAAK65G,kBAAoB/5B,IAGjD7gF,EAAS86G,GACF,IAEJ96G,EAEX,qBAAqBq+G,EAAcC,IAC3BD,GAAgBC,IAChBv9G,KAAK88G,0BAA0BS,EAAcD,GAGrD,0BAA0BE,EAAgBC,GACtCz9G,KAAKuhE,sBAAsB,qBAAsB,CAC7C4S,kBAAmB,CAAC,WAAY,aADpCn0E,CAEG,CACC09G,WAAY,CAACF,GACbG,aAAc,CAACF,KAGvB,WAAW1D,GACP,IAAIj6B,EAAWi6B,EAAY1qC,SAAWrvE,KAAK49G,aAAa7D,GAAeA,EACnE9B,EAAcj4G,KAAK23G,aAAaK,uBAAuB,GACvDP,EAAez3G,KAAK+nB,OAAO,gBAC3BmwF,EAAOl4G,KAAK23G,aAAaC,cAAc93B,GACvCo4B,EAAKJ,eAAeh9G,MAAQm9G,IACxBA,GACAj4G,KAAK68G,qBAAqB78G,KAAK23G,aAAaQ,aAAaF,IAAc,GAE3Ej4G,KAAK68G,qBAAqB3E,GAAM,GAChCl4G,KAAKk9G,qBAAqBzF,EAAc33B,GACxC9/E,KAAKsgE,8BAA8B,eAAgBwf,IAG3D,aAAai6B,GACT,IAAIj6B,EAAWi6B,EAAY1qC,SAAWrvE,KAAK49G,aAAa7D,GAAeA,EACnE7B,EAAOl4G,KAAK23G,aAAaC,cAAc93B,GACvC23B,EAAez3G,KAAK+nB,OAAO,gBAC3BmwF,EAAKJ,eAAe+F,WACpB79G,KAAK68G,qBAAqB3E,GAAM,GAChCl4G,KAAKk9G,qBAAqBzF,EAAc,MACxCz3G,KAAKsgE,8BAA8B,eAAgB,QAI/D,GAASw9C,UAAY,QACN,U,0BCrcX,GAAgB,UAChBC,GAAqB,GAAgB,QACrC,GAA8BA,GAAqB,YACnDC,GAAsB,wBACtB,GAAgC,GAAgB,mBAChD,GAA6BD,GAAqB,WAClDE,GAAmB,aACnBC,GAAwB,kBACxBC,GAA4B,sBAC5BC,GAA0B,oBAC1BC,GAAyB,mBACzBC,GAAuB,iBACvBC,GAAwB,qBACxBC,GAAW,KACXC,GAAa,OACbC,GAAa,OACbC,GAAc,QACdC,GAAc,QACdC,GAAa,OACbC,GAAU,CAAC,YAAa,UAAW,mBAAoB,WAAY,WAAY,gBAAiB,kBAAmB,iBAAkB,qBAAsB,uBAC3JC,GAA2B,CAACP,GAAUC,GAAYG,GAAaC,IAC/DG,GAAqB,gBACrB,GAAS,iBACb,MAAM,WAAoB,GACtB,aAAaC,GACT,IAAIhgH,EAAS,KAQb,OAPI,eAASggH,GACL,OAASA,EAAgBr9G,OACzB3C,EAASggH,EAAgBr9G,MAAQo9G,IAGrC//G,EAASggH,EAENhgH,EAEX,aAAaggH,GACT,OAAO,eAASA,IAAoBA,EAAgBj3E,MAExD,qBACI,OAAO,OAAAvtC,EAAA,WAAOk7G,MAAMC,qBAAsB,CACtCsJ,UAAWF,GACXrrD,oBAAoB,EACpBa,SAAU,CACNkH,GAAI,WACJE,GAAI,YAERvH,UAAW,KACXC,QAAS,KACT6qD,iBAAkB,KAClBlrD,SAAU,KACVD,SAAU,KACVorD,cAAe,KACfC,iBAAkB,OAClB11D,SAAS,EACTrkC,YAAQ,EACRg6F,gBAAiB,KACjBC,eAAgB,KAChBC,mBAAoB,KACpBC,oBAAqB,OAG7B,uBACI,OAAO9J,MAAM+J,uBAAuB7tG,OAAO,CAAC,CACxC8tG,OAAQ,KAAO,iBACf3uG,QAAS,CACLkiD,UAAW,SAIvB,wBACIyiD,MAAMiK,wBACN,OAAAnlH,EAAA,WAAOuF,KAAK6/G,mBAAoB,CAC5B1sD,oBAAqB,CACjB2sD,MAAO,OACPC,MAAO,wBAInB,eACI//G,KAAKy/D,SAAW,GAChB,eAAKq/C,GAAS,CAAC19G,EAAOggE,KAClBphE,KAAKy/D,SAAS2B,GAAUphE,KAAKuhE,sBAAsBH,IAAW,SAGtE,yBACIu0C,MAAMqK,yBACN,OAAAvlH,EAAA,WAAOuF,KAAKigH,oBAAqB,CAC7B/sD,WAAW,EACXukD,cAAc,IAGtB,mBACA,iBACI,OAAOz3G,KAAKkgH,SAAWlgH,KAAKkgH,SAAStjC,WAAa,iBAEtD,sBACI,OAAO58E,KAAKm2G,iBAEhB,iBACI,OAAOn2G,KAAKkgH,SAAWlgH,KAAKkgH,SAAStjC,gBAAa,EAEtD,iBACI,OAAO,OAAAniF,EAAA,WAAOk7G,MAAMU,iBAAkB,CAClCC,MAAO,KACH,IAAInL,EAAQ,eAAEnrG,KAAK+nB,OAAO,mBAC1B/nB,KAAKwqD,OACA2gD,EAAMvxG,QAAWoG,KAAKu2G,uBAG3Bv2G,KAAKw2G,WAAWrL,EAAM,KAE1BgV,OAAQngH,KAAKwqD,OAGrB,iBACI,IAAI41D,EAAkBpgH,KAAK25G,qBACvB0G,EAAeD,EAAgBhiH,OAAO,IAAIyT,OAAOwsG,KACjDiC,EAAeF,EAAgBhiH,OAAO,IAAIyT,OAAOysG,KACjDiC,EAAwBD,EAAarzF,QAAQ,IAAIpb,OAAO,KAC5D,OAAI0uG,EAAsBt5F,KAAK,IAAIpV,OAAOksG,KAAqB38G,MAAMi/G,IAAiB,EAC3EA,EAEPC,EAAa1mH,OACN0mH,EAEJ3K,MAAM6K,iBAEjB,WAAWlmD,GACP,IAKImmD,EALAC,EAAS1gH,KAAK2gH,oBAAoBrmD,GAClCsmD,EAAa5gH,KAAKwgH,gBAAe,GACjCF,EAAetgH,KAAK6gH,iBAAiB55F,KAAK,IAAIpV,OAAOysG,KACrD+B,EAAe,eAAErgH,KAAK+nB,OAAO,mBAC7B+4F,KAA4BT,EAAazmH,SAAU0mH,EAAa1mH,QAEpE,OAAQ0gE,GACJ,KAAKkkD,GACDiC,EAAaK,EAAyB9gH,KAAK+gH,UAAUL,GAAUE,EAC/D5gH,KAAKghH,mBAAmBP,GACpBG,EAAWhzH,GAAG8yH,EAAOjnC,UACrBz5E,KAAKy/D,SAAS6/C,gBAAgBsB,GAElC,MACJ,KAAKnC,GACDgC,EAAaK,EAAyB9gH,KAAKihH,UAAUP,GAAUE,EAC/D5gH,KAAKghH,mBAAmBP,GACpBG,EAAWhzH,GAAG8yH,EAAOx5F,SACrBlnB,KAAKy/D,SAAS8/C,eAAeqB,GAEjC,MACJ,KAAKjC,GACD8B,EAAazgH,KAAK+nB,OAAO,cAAgB/nB,KAAKkhH,sBAAwBlhH,KAAKmhH,sBAAsBT,EAAQpmD,GACzGt6D,KAAKghH,mBAAmBP,GACxB,MACJ,KAAK/B,GACD+B,EAAazgH,KAAK+nB,OAAO,cAAgB/nB,KAAKmhH,sBAAsBT,EAAQpmD,GAAYt6D,KAAKkhH,sBAC7FlhH,KAAKghH,mBAAmBP,GACxB,MACJ,KAAK7B,GACD6B,EAAaC,EAAOjnC,QACpBz5E,KAAKghH,mBAAmBP,GACxB,MACJ,KAAK5B,GACD4B,EAAaC,EAAOx5F,OACpBlnB,KAAKghH,mBAAmBP,GACxB,MACJ,QACI,OAAO9K,MAAMyL,WAAW9mD,IAGpC,mBAAmBt0C,GACXA,GAAY,IAAMA,EAASpsB,QAC3BoG,KAAK+nB,OAAO,iBAAkB,eAAiB/B,IAGvD,oBAAoBs0C,GAChB,IACIomD,EADAW,EAAcrhH,KAAKwgH,gBAAe,GAMtC,OAJIzB,GAAyB/7G,SAASs3D,KAClComD,EAASW,EAAYp0F,QAAQ,IAAIpb,OAAO,KAAgCw1D,WAAWA,YAEvFq5C,EAAS1gH,KAAK25G,mBAAmB+G,GAC1BA,EAEX,iBACI,OAAO1gH,KAAKgmB,WAEhB,2BACI,GAAI,eAAUhmB,KAAKkgH,UAAW,CAC1B,IAAIr/C,EAAU7gE,KAAKkgH,SAAStjC,WAC5B+4B,MAAM2L,yBAAyBzgD,IAGvC,sBACI,IAAI0gD,EAAWvhH,KAAKwgH,gBAAe,GAC/BgB,EAAcD,EAAS7sB,QAAQ,IAAI7iF,OAAO,KAA8B4nE,QAC5E,OAAI+nC,EAAY5nH,QACZoG,KAAKyhH,yBAAyBD,GAC9BxhH,KAAK0hH,aAAaH,EAASt0F,QAAQ,IAAIpb,OAAOosG,MACvCuD,IAEXxhH,KAAKy/D,SAAS+/C,mBAAmB+B,GAC1BA,GAEX,sBAAsBb,EAAQpmD,GAC1B,IAAIinD,EAAWvhH,KAAKwgH,gBAAe,GAC/B1gC,EAAW9/E,KAAK49G,aAAa2D,GAC7BrJ,EAAOl4G,KAAK23G,aAAaC,cAAc93B,GACvC6hC,EAAmB3hH,KAAKs7G,YAAYpD,GACpC0J,EAAWL,EAASl6C,SAAS,IAAIx1D,OAAOosG,KAC5C,GAAI0D,IAAqBJ,EAASj7C,SAAS83C,IAIvC,OAHKwD,EAAShoH,QAAU,WAAagoH,EAASn2F,IAAI,eAC9CzrB,KAAKw5G,aAAa+H,GAEfvhH,KAAKihH,UAAUjhH,KAAK2gH,oBAAoBrmD,IAEnDt6D,KAAKy/D,SAASggD,oBAAoB8B,GAGtC,SACQvhH,KAAKkgH,WACLlgH,KAAKkgH,SAASl6F,WAAW8B,SACzB9nB,KAAKkgH,SAAW,MAEpBlgH,KAAK6hH,6BAA6B7hH,KAAK8hH,cACvCnM,MAAMS,SAEV,cACIp2G,KAAKgmB,WAAWsB,SAAS62F,IACzBxI,MAAM2C,cAEV,UACI3C,MAAMoM,UACN/hH,KAAKgiH,kBAAkBhiH,KAAK+nB,OAAO,YACnC/nB,KAAKiiH,kBAET,qBACIjiH,KAAK6hH,6BAA6B7hH,KAAK8hH,cACvC9hH,KAAKkiH,+BAET,yBACKliH,KAAKmiH,qBAAuBniH,KAAKoiH,eAAexoH,QAAU+7G,MAAM0M,wBAErE,4BACI,IAAIriH,KAAKkgH,SAAT,CAGA,IAAIoC,EAAiBtiH,KAAKuiH,qBAC1BviH,KAAKkgH,SAAWlgH,KAAKooB,iBAAiB,eAAE,SAASb,SAASvnB,KAAKojE,WAAY,QAASk/C,GACpF,IAAIE,EAAkBxiH,KAAKkgH,SAAStjC,WACpC4lC,EAAgBl7F,SAAS42F,IACzBl+G,KAAKyiH,mBAAmBD,GACxBxiH,KAAK0iH,2BAA2BF,GAChCxiH,KAAK2iH,2BAET,+CACI,IAAI3L,EAAiBh3G,KAAKm2G,iBACtByM,EAAY,gBAAa,QAAsB5iH,KAAK6hE,MACxD,OAAatB,IAAIy2C,EAAgB4L,EAAW,IAAI/wG,OAAOosG,KACvD,OAAa54G,GAAG2xG,EAAgB4L,EAAW,IAAI/wG,OAAOosG,KAAoBr6G,IACtEA,EAAEy1G,kBACFz1G,EAAEg3B,iBACF,OAAa2lC,IAAIy2C,EAAgB4L,EAAW,IAAI/wG,OAAOosG,OACxDzzF,KAAKxqB,OAEZ,wBAAwB4D,GACpB+xG,MAAMkN,wBAAwBj/G,GAC9BA,EAAEy1G,kBAEN,2BAA2BrzF,GACnB6yF,GAAA,KAAQiK,UAAUC,OAClB/8F,EAASsB,SAAS02F,IAG1B,6BAA6B14F,GACzB,IAAI45F,EAAYl/G,KAAKgjH,aAAahjH,KAAK+nB,OAAO,cAC9C,GAAKm3F,EAAL,CAGA,IAAI0D,EAAY,gBAAa1D,EAAWl/G,KAAK6hE,MACzC7hE,KAAKijH,6BACL,OAAa1iD,IAAI,aAAW0O,cAAe2zC,EAAWt9F,EAAQtlB,KAAKijH,8BAEnE,OAAa1iD,IAAI,eAAEj7C,GAASs9F,IAGpC,+BACI,IAAIt9F,EAAStlB,KAAK8hH,aACd5C,EAAYl/G,KAAKgjH,aAAahjH,KAAK+nB,OAAO,cAC9C,GAAKm3F,EAAL,CAGA,IAAI0D,EAAY,gBAAa1D,EAAWl/G,KAAK6hE,MACzCqhD,EAAoBljH,KAAKqhE,cAAcz9D,IACvC,IAAIokC,EAAQhoC,KAAKmjH,aAAanjH,KAAK+nB,OAAO,cACtCigB,EACA/0B,WAAW,IAAMjT,KAAKojH,MAAMx/G,EAAE09D,OAAQt5B,GAEtChoC,KAAKojH,MAAMx/G,EAAE09D,QAElB,CACC+hD,qBAAsB,WAEtBC,EAAU1/G,GAAKs/G,EAAkB,CACjC5hD,MAAO19D,EACP0hB,OAAQ,eAAE1hB,EAAE8lE,iBAEhBw5C,EAAoBljH,KAAKqhE,cAAc6hD,GACnC,eAAW59F,IAAWA,EAAO+pD,UAAY,eAAS/pD,IAClDtlB,KAAKijH,kCAA+B,EACpC,OAAa59G,GAAGigB,EAAQs9F,EAAWU,KAEnCtjH,KAAKijH,6BAA+BK,EACpC,OAAaj+G,GAAG,aAAW4pE,cAAe2zC,EAAWt9F,EAAQtlB,KAAKijH,gCAG1E,iBAAiBr/G,GACb+xG,MAAM4N,iBAAiB3/G,GACvBA,EAAEy1G,kBAEN,qBACA,iBAAiB4B,EAAUX,GACvB,IAAIkJ,EAAUlJ,GAAoBt6G,KAAKm2G,iBACvC8E,EAAW,eAAE,SACbA,EAAS1zF,SAASi8F,GAASl8F,SAAS22F,IAAkBxyF,IAAI,aAAc6uF,EAAmB,SAAW,WACjGW,EAAS/sF,SAASo4C,SAASi4C,KAC5Bv+G,KAAKyiH,mBAAmBxH,GAE5B,IAAIkB,EAAkBxG,MAAM8E,iBAAiBQ,GAC7C,OAAIX,EACO6B,EAEPn8G,KAAK+nB,OAAO,SACLo0F,EAAgB1wF,IAAI,WAAYzrB,KAAK+nB,OAAO,UAEnD/nB,KAAK+nB,OAAO,UACLo0F,EAAgB1wF,IAAI,YAAazrB,KAAK+nB,OAAO,WAEjDo0F,EAEX,oBAAoBjE,EAAMmD,GACtBr7G,KAAKm6G,aAAan6G,KAAKyjH,eAAevL,GAAOmD,GAC7Cr7G,KAAKy/D,SAAS0/C,iBAAiB,CAC3BpF,YAAa,eAAiBsB,GAC9Bv7B,SAAUo4B,EAAKJ,eAAe/wG,KAC9B28G,eAAgB,eAAiBrI,EAAWh0C,SAAS,IAAIx1D,OAAOosG,QAGxE,qBACI,IAAIzpD,EAAWx0D,KAAK+nB,OAAO,YACvBu6F,EAAiB,CACjBz9D,kBAAmB7kD,KAAK+nB,OAAO,qBAC/BmrC,UAAWlzD,KAAK+nB,OAAO,aACvB47F,cAAc,EACdhwD,mBAAoB/vD,GAAK5D,KAAK4jH,2BAA2BhgH,GACzDigH,uBAAuB,EACvBjwD,oBAAoB,EACpBN,gBAAgB,EAChBkB,SAAU,CACNkH,GAAIlH,EAASkH,GACbE,GAAIpH,EAASoH,GACbtzC,GAAItoB,KAAK8hH,aACTt5F,UAAW,WAEfP,SAAS,EACT4sC,WAAW,EACXnjD,OAAQ,OACRnK,MAAO,OACP+sD,QAASt0D,KAAK8jH,2BAA2Bt5F,KAAKxqB,MAC9Ci0D,SAAUj0D,KAAK+jH,4BAA4Bv5F,KAAKxqB,MAChDg0D,SAAUh0D,KAAKgkH,4BAA4Bx5F,KAAKxqB,MAChDikH,gBAAiB,IAErB,OAAO3B,EAEX,2BAA2BxV,GACvB9sG,KAAKy/D,SAASnL,QAAQw4C,GAE1B,4BAA4BA,GACxB9sG,KAAKy/D,SAASxL,SAAS64C,GAClBA,EAAIl9C,SACL5vD,KAAKkkH,wBACLlkH,KAAKsgE,8BAA8B,WAAW,IAGtD,4BAA4BwsC,GACxB9sG,KAAKy/D,SAASzL,SAAS84C,GAE3B,0BAA0BlpG,GACtB,IACIuvD,oBAAqBA,EACrBQ,mBAAoBA,GACpB3zD,KAAK+nB,SACT,OAAI,eAAW4rC,GACJA,EAAmB/vD,GACnB,eAAWuvD,GACXA,EAAoBvvD,GAEpB+vD,GAAsBR,EAGrC,2BAA2BvvD,GACvB,IAAK5D,KAAKmkH,0BAA0BvgH,GAChC,OAAO,EAEX,GAAI,aAAWwgH,WAAWxgH,EAAE0hB,QACxB,OAAO,EAEX,IAAI++F,EAAuBrkH,KAAKskH,yBAAyB1gH,EAAE0hB,QACvDi/F,EAAkBvkH,KAAKwkH,sBACvBC,EAAezkH,KAAK0kH,kBAAkB9gH,EAAE0hB,QACxCq/F,EAAY3kH,KAAKgmB,WAAW0uE,QAAQ,IAAI7iF,OAAOksG,KAC/C6G,EAAoBH,EAAa,KAAOE,EAAU,IAAMF,EAAa7qH,QAAU+qH,EAAU/qH,OACzFirH,EAAwB7kH,KAAK8kH,kBAAkBT,EAAsBE,IAAoBE,EAAa7qH,OAC1G,OAAIirH,IAAyBD,IACrB,YAAc5kH,KAAKs5G,uBACnBt5G,KAAK+kH,2BAA2BN,IAE7B,GAIf,yBAAyBn/F,GACrB,OAAO,eAAEA,GAAQ2H,QAAQ,IAAIpb,OAAO,KAExC,sBACI,OAAO7R,KAAKkgH,SAAStjC,WAAW31D,KAAK,IAAIpV,OAAO,KAEpD,kBAAkByT,GACd,OAAO,eAAEA,GAAQ2H,QAAQ,IAAIpb,OAAOksG,KAAqBvyF,GAAG,GAEhE,kBAAkBw5F,EAAgBC,GAC9B,IAAIC,GAAS,EAMb,OALA,eAAKD,EAAc,CAAC7jH,EAAO+jH,KACnBH,EAAep3H,GAAGu3H,KAAcD,IAChCA,GAAS,KAGVA,EAEX,2BAA2BT,GACvB,IAAIW,EAAmBX,EAAax9F,KAAK,IAAIpV,OAAOosG,KAChDoH,EAAgB,OAAA5qH,EAAA,WAAO,GAAIuF,KAAKslH,gBAChCF,EAAiBxrH,OAAS,GAC1B,eAAKyrH,EAAe,CAACjkH,EAAOwgH,KACxB,IAAI2D,EAAWvlH,KAAK0kH,kBAAkB9C,EAAS1wB,SAAShjE,SACpDq3F,EAASr3F,SAAStgC,GAAG62H,EAAav2F,SAASA,YAAcq3F,EAAS33H,GAAG62H,EAAav2F,WAClFluB,KAAK0hH,aAAaE,KAKlC,aAAazW,GACT,IAAI+M,EAAOl4G,KAAK23G,aAAaC,cAAc53G,KAAK49G,aAAazS,IAE7D,GADAnrG,KAAKyhH,yBAAyBtW,GACzBnrG,KAAKs7G,YAAYpD,GAAtB,CAGA,IAAI0J,EAAWzW,EAAM9jC,SAAS,IAAIx1D,OAAOosG,KACrCuH,EAAoB5D,EAAShoH,OACjC+7G,MAAM6D,aAAarO,GACdqa,GACDxlH,KAAKylH,oBAAoBvN,EAAM/M,GAE9BnrG,KAAK0lH,kBAAkB9D,IACxB5hH,KAAK2lH,aAAaxa,IAG1B,yBAAyBA,GACrB,IAAIya,EAAiBza,EAAMj9E,OAAO,IAAIrc,OAAO,KAA6Bg0G,WAAW5+F,KAAK,IAAIpV,OAAO,KACjG+zG,EAAehsH,SACfgsH,EAAep+F,YAAY,IAC3BxnB,KAAK0hH,aAAakE,EAAe3+F,KAAK,IAAIpV,OAAOosG,OAGzD,kBAAkB2D,GACV5hH,KAAK0lH,kBAAkB9D,IACvB5hH,KAAK8lH,iBAAiBlE,GAG9B,kBAAkBA,GACd,MAAO,YAAcA,EAASn2F,IAAI,cAEtC,aAAaytF,GACT,IAAIhmD,EAAYlzD,KAAK+nB,OAAO,aAAe/nB,KAAK+nB,OAAO,aAAa0iC,KAAO,GACvEm3D,EAAW1I,EAAa7xC,SAAS,IAAIx1D,OAAOosG,KAC5C8H,EAAkB/lH,KAAKgmH,oBAAoB9M,GAC3Cl5G,KAAKkgH,UAAYlgH,KAAKkgH,SAASn4F,OAAO,aACjC,eAAU/nB,KAAKslH,kBAChBtlH,KAAKslH,eAAiB,IAErBtlH,KAAKslH,eAAetiH,SAAS4+G,IAC9B5hH,KAAKslH,eAAeriH,KAAK2+G,GAEzB1uD,GACA+yD,GAAA,KAAGr5G,KAAKg1G,GAEZ,QAAkBsE,MAAMtE,EAAUmE,GAC9B7yD,IACI,eAAcA,EAAUx6D,MACxBw6D,EAAUx6D,GAAG87D,SAAWuxD,GAE5B/lH,KAAKmmH,SAASvE,EAAU1uD,IAE5B0uD,EAASn2F,IAAI,aAAc,YAGnC,SAAS3G,EAAY9T,GACjBi1G,GAAA,KAAGG,QAAQthG,EAAY9T,GAE3B,oBAAoB2zG,GAChB,IAAItF,EAAmBr/G,KAAK+nB,OAAO,oBAAoBjqB,cACnDuoH,EAAmB1B,EAAUz2F,OAAO,IAAIrc,OAAO,KAC/C2iD,EAAW,CACXhsC,UAAW,OACXF,GAAI+9F,EACJj7F,OAAQ,CACJhJ,EAAG,EACHud,GAAI,IAGZ,OAAQ0/E,GACJ,IAAK,OACD7qD,EAASkH,GAAK,WACdlH,EAASoH,GAAK,YACd,MACJ,IAAK,QACDpH,EAASkH,GAAK,YACdlH,EAASoH,GAAK,WACd,MACJ,QACQ57D,KAAK+nB,OAAO,eACZysC,EAASkH,GAAK,WACdlH,EAASoH,GAAK,cAEdpH,EAASkH,GAAK,YACdlH,EAASoH,GAAK,YAG1B,OAAOpH,EAEX,gCAAgCgoD,GAC5B,GAAKA,EAAW39D,KAAKjlD,OAArB,CAGA,IAAIkmF,EAAW08B,EAAW39D,KAAK,GAAGihC,SAC9Bo4B,EAAOl4G,KAAK23G,aAAaC,cAAc93B,GAC3C,GAAKo4B,EAAL,CAGA,IAAIgB,EAAe,eAAEsD,EAAW39D,KAAK,GAAGk7D,aACpC6H,EAAW1I,EAAajyF,KAAK,IAAIpV,OAAOosG,KACxCqI,EAAsBtmH,KAAKs7G,YAAYpD,KAAU0J,EAAShoH,OAK9D,GAJI0sH,IACAtmH,KAAKylH,oBAAoBvN,EAAMgB,GAC/B0I,EAAW1I,EAAajyF,KAAK,IAAIpV,OAAOosG,MAExC/E,EAAahoB,UAAY0wB,EAAS1wB,SAAW,YAAc0wB,EAASn2F,IAAI,cAA5E,CAGAzrB,KAAKy8G,2BAA2BD,GAChC,IAAI+J,EAA0BzmC,IAAY,IAAUA,EAAS0mC,iBAC7D,GAAK1mC,IAAYA,EAAS/7B,WAAYwiE,EAGtC,GAAI,IAAM3E,EAAShoH,OAAQ,CACvB,IAAI6sH,EAAe,eAAEvN,EAAaxkB,QAAQ,IAAI7iF,OAAOosG,KAAmB,IACxEj+G,KAAK0hH,aAAa+E,IACbjK,EAAWkK,UAAY1mH,KAAKkgH,UAAYlgH,KAAKkgH,SAASn4F,OAAO,YAC9D/nB,KAAK+nB,OAAO,WAAW,QAGvB/nB,KAAKslH,gBAAkBtlH,KAAKslH,eAAe1rH,OAAS,GAChDoG,KAAKslH,eAAe,GAAG13H,GAAGg0H,IAC1B5hH,KAAK0hH,aAAaE,GAG1B5hH,KAAKw5G,aAAaN,MAG1B,aAAayN,GACT,IAAItB,EAAgB,OAAA5qH,EAAA,WAAO,GAAIuF,KAAKslH,gBACpC,eAAKD,EAAe,CAACjkH,EAAOwgH,MACpB+E,EAAY/4H,GAAGg0H,IAAa,gBAAS+E,EAAY,GAAI/E,EAAS,OAC9DA,EAAS1zF,SAAS1G,YAAY,IAC9BxnB,KAAK8lH,iBAAiBlE,MAIlC,iBAAiBA,GACb,IAAIxgH,EAAQpB,KAAKslH,eAAehnH,QAAQsjH,GACpC1uD,EAAYlzD,KAAK+nB,OAAO,aAAe/nB,KAAK+nB,OAAO,aAAayiC,KAAO,KACvEppD,GAAS,GACTpB,KAAKslH,eAAe/xC,OAAOnyE,EAAO,GAEtCpB,KAAK4mH,aAAahF,GAClB1uD,GAAalzD,KAAKmmH,SAASvE,EAAU1uD,GACrC0uD,EAASn2F,IAAI,aAAc,UAE/B,aAAa3G,GACTmhG,GAAA,KAAGr5G,KAAKkY,GAAY,GAExB,wBACI,IAAIugG,EAAgB,OAAA5qH,EAAA,WAAO,GAAIuF,KAAKslH,gBAChCM,EAAiB5lH,KAAKkgH,SAAStjC,WAAW31D,KAAK,IAAIpV,OAAO,KAC9D+zG,EAAep+F,YAAY,IAC3B,eAAK69F,EAAe,CAACtmH,EAAG6iH,KACpB5hH,KAAK0hH,aAAaE,KAG1B,mBAAmBj4D,GACXA,GACA3pD,KAAK6mH,qBAGb,eAAehoE,GACX,GAAIigE,GAAQ97G,SAAS67C,EAAKj9C,MACtB5B,KAAK82G,oBAGT,OAAQj4D,EAAKj9C,MACT,IAAK,UACD5B,KAAKgiH,kBAAkBnjE,EAAKh9C,OAC5B,MACJ,IAAK,YACL,IAAK,WACL,IAAK,mBACD7B,KAAK4iE,cACL,MACJ,IAAK,SACD/jB,EAAK2sC,eAAiBxrF,KAAK6hH,6BAA6BhjE,EAAK2sC,eAC7DxrF,KAAK4iE,cACL,MACJ,IAAK,sBACL,IAAK,qBACD,MACJ,QACI+yC,MAAMwH,eAAet+D,IAGjC,kBAAkBioE,GACd,OAAOA,EAAU9mH,KAAKojH,QAAUpjH,KAAK+mH,QAEzC,qBACA,MAAMzlD,GACF,IAAIziB,EAAO,CACPmoE,QAAS1lD,GAEThxC,GAAU,IAAK,eAAUuT,SAASvT,UAEtC,GADAtwB,KAAKy/D,SAASpL,UAAUxV,GACpBA,EAAK+Q,OACL,OAAOt/B,EAEX,IAEQ22F,EAFJzyD,EAAWx0D,KAAKknH,qBAAqB5lD,GACrC9M,IAEKx0D,KAAKkgH,WACNlgH,KAAKmnH,4BACLnnH,KAAKkgH,SAAStjC,WAAWt1D,SAAStnB,KAAKonH,gBACvCpnH,KAAKqnH,oBACLrnH,KAAKsnH,qBACLtnH,KAAKunH,oBACLvnH,KAAKm6G,aAAan6G,KAAK23G,aAAayC,iBAExCp6G,KAAKsgE,8BAA8B,WAAW,GAC9CtgE,KAAKkgH,SAASn4F,OAAO,WAAYysC,GACjClkC,EAAUtwB,KAAKkgH,SAASz1D,OACxB6W,GAASA,EAAM+3C,kBACfr5G,KAAKwnH,sBACA,OAASlmD,QAAS,IAAWA,GAAiB,QAAU2lD,EAAuB3lD,EAAMsX,qBAAkB,IAAWquC,OAA7E,EAA6GA,EAAqBxoH,QAAU88C,GAAA,KAAU35C,MAC5L5B,KAAKynH,gDAGb,OAAOn3F,EAEX,qBACItwB,KAAK0nH,kBAAoB,MAAM71G,OAAO,IAAI,SAC1C7R,KAAKosB,QAAQ,OAAQpsB,KAAK0nH,mBAC1B1nH,KAAKosB,QAAQ,CACTt9B,GAAIkR,KAAK0nH,kBACTzR,KAAM,QACPj2G,KAAKkgH,SAAStjC,YAErB,uBACI58E,KAAKkgH,UAAYlgH,KAAKosB,QAAQ,KAAM,KAAMpsB,KAAKkgH,SAAStjC,YACxD58E,KAAKosB,QAAQ,YAAQ,GAEzB,aACI,OAAOpsB,KAAK+nB,OAAO,WAAa/nB,KAAK+nB,OAAO,YAAYO,IAAM,eAAE,aAAW2mD,eAE/E,0BACI,OAAO,OAAAx0E,EAAA,WAAO,GAAIuF,KAAK+nB,OAAO,YAAa,CACvCO,GAAItoB,KAAK8hH,eAGjB,qBAAqBkF,GACjB,IAAIxyD,EAAWx0D,KAAK2nH,0BAChBC,EAAoB5nH,KAAK6nH,sBAAsB,YAC/CC,EAAoB9nH,KAAKuhE,sBAAsB,gBAAiBi7C,GAChEwK,GAAWA,EAAQpsF,gBAAkBgtF,IACrCpzD,EAASlsC,GAAK0+F,GAElB,IAAIxK,EAAa,CACbhoD,SAAUA,EACV8M,MAAO0lD,GASX,OAPAc,EAAkBtL,GACdA,EAAW5sD,OACX4E,EAAW,KACJgoD,EAAWl7C,QAClBk7C,EAAWl7C,MAAM1R,QAAS,EAC1Bo3D,EAAQpsF,kBAEL45B,EAEX,WACI,GAAK,iBAEE,GAAIx0D,KAAKkgH,SAAU,CACtB,IAAI6H,EAAe/nH,KAAKkgH,SAASn4F,OAAO,YACxC4tF,MAAMqS,WACNhoH,KAAKkgH,UAAYlgH,KAAKkgH,SAASn4F,OAAO,WAAYggG,QAElDpS,MAAMqS,gBANNrS,MAAMqS,WASd,QACI,IAAI13F,EAOJ,OANItwB,KAAKkgH,WACL5vF,EAAUtwB,KAAKkgH,SAAS11D,OACxBxqD,KAAKsgE,8BAA8B,WAAW,IAElDtgE,KAAKioH,uBACLjoH,KAAK+nB,OAAO,iBAAkB,MACvBuI,IAAW,IAAK,eAAUuT,SAASvT,UAE9C,OAAOw2F,GACH,IAAIn9D,EAAU3pD,KAAK+nB,OAAO,WAE1B,OADA++F,OAAU,IAAWA,GAAWn9D,EAAUm9D,EACnC9mH,KAAKgiH,kBAAkB8E,GAElC,OACI,OAAO9mH,KAAKwuG,QAAO,GAEvB,OACI,OAAOxuG,KAAKwuG,QAAO,IAG3B,eAAkB,gBAAiB,IACpB,UC1xBA,MCWX0Z,GAAe,kBACf,GAAW,CACXpsC,kBAAmB,SACnB5vD,SAAU,UACVi8F,WAAY,SACZ5c,YAAa,eAEb6c,GAAa,CAAC,oBAAqB,WAAY,aAAc,eAC7DC,GAAwB,EAAQnmD,eAAe7C,QAAQ,CACvDU,KAAM,WACF//D,KAAKygE,aAAa,2BAEtBgf,oBAAqB,SAAS6oC,GAC1B,IAAKA,EACD,OAAO,EAEX,IAEItiG,EACAuiG,EACAC,EACAC,EALA9kH,EAAO3D,KACPq6E,EAAiB,eAAEiuC,EAAQhjG,QAiC/B,OA5BA,eAAK8iG,IAAY,WACb,IAAIM,EAAO/kH,EAAKwoB,QAAQnsB,MAExB,GADAgmB,EAAW0iG,GAAQA,EAAK7hG,UACpBb,IAAaA,EAASp4B,GAAGysF,IAAmBr0D,EAASiB,KAAKozD,GAAgBzgF,QAAS,CACnF,IAAI+uH,EAAmBC,EACvBJ,EAAqBnuC,EAAeptD,QAAQ,8BAC5Cs7F,EAAoBC,EAAmBt6F,SACvC,IAAI27C,EAAW6+C,EAAK5+C,YAAYy+C,GAC5B3jG,EAAc4jG,EAAmB,IAAMA,EAAmB,GAAG71C,UAC7D9K,EAAa0gD,EAAkBpiH,KAAK,WACpC6K,EAAU,CACVswD,MAAOgnD,EACPO,cAAe,eAAiBxuC,GAChC/0D,OAAQ,GAAStlB,MACjB6pE,SAAUA,EACVh5D,IAAK63G,EAAKv3C,WAAWtH,GACrBjlD,YAAaA,EACb9T,OAAQ,OAAS+2D,QAAc,IAAWA,GAAsB,QAAU8gD,EAAoB9gD,EAAWC,aAAU,IAAW6gD,GAA6B,QAAUC,EAAwBD,EAAkB/jG,UAAiB,IAAWgkG,OAApL,EAAqNA,EAAsB93G,QAMtS,GAJAE,EAAQ0X,MAAQggG,EAAKjpC,qBAAuBipC,EAAKjpC,oBAAoBzuE,GACrErN,EAAK69D,cAAc,yBAA0BxwD,GAC7CrN,EAAKmlH,qBAAqB93G,GAC1By3G,EAAYz3G,EAAQ0X,MAChB+/F,EACA,OAAO,MAIZA,GAEXK,qBAAsB,SAEtBC,GAAkB,EAAQ1mD,KAAKhD,QAAQ,CACvC0D,YAAa,WACT,IAAIp/D,EAAO3D,KACPgmB,EAAWriB,EAAKkjB,UAAUS,SAAS4gG,IACvCloH,KAAKosB,QAAQ,OAAQ,eAAgBpG,GACrChmB,KAAKooB,iBAAiBpC,EAAU,GAAa,CACzCo5F,cAAe,SAAS5C,GACpB,IAAIl7C,EAAQk7C,EAAWl7C,MACnB0nD,EAAsBxM,EAAWzvG,UACjC2b,EAAQ/kB,EAAKs9D,cAAc,eAAewe,oBAAoBne,GAC9D54C,GACAsgG,EAAoBjhG,OAAO,QAASW,GACpC44C,EAAM+3C,mBAENmD,EAAW5sD,QAAS,GAG5B+vB,YAAa,SAASC,GAClBA,EAAOE,SAASH,aAAeC,EAAOE,SAASH,YAAYC,IAE/D50B,SAAUrnD,EAAKsqB,0BACf3I,OAAQ3hB,EAAKoJ,UAAUiZ,gBAIxBijG,GAAoB,CAC3BtrH,eAAgB,WACZ,MAAO,CACHmoD,uBAAwB,OAGhC+e,YAAa,CACTqkD,YAAab,IAEjBtjD,MAAO,CACHokD,gBAAiBJ,KCjGzB,EAAatjD,eAAe,cAAewjD,ICK3C,IAAI,GAAkB,eAClBG,GAAsB,mBACtBC,GAA0B,iBAC1BC,GAAe,SACfC,GAA0B,EAAQrnD,eAAe7C,QAAQ,CACzDU,KAAM,WACF//D,KAAKwpH,mBAAqBxpH,KAAKmsB,QAAQ,qBACvCnsB,KAAKypH,UAAYzpH,KAAKmsB,QAAQ,aAElCu9F,gBAAiB,SAAStnF,EAAOq0C,GAC7B,IACIkzC,EACAC,EAFAjmH,EAAO3D,KAGP6pH,EAAgB7pH,KAAK8pH,oBAAoB1nF,GAC7C,OAAIq0C,GACAkzC,EAAY,eAAE,QAAQriG,SAAS,IAC/BsiG,EAAe,eAAE,SAAStiG,SAAS+hG,IAAyB/hG,SAAS3jB,EAAKojB,gBAAgBuiG,KAC1F,OAAajkH,GAAGukH,EAAc,OAAgBjmH,EAAK88D,cAAa,SAAU5hB,GACtE,IACI8qE,EADA/lH,EAAIi7C,EAAKyiB,MAETyoD,EAAgB,eAAEnmH,EAAE8lE,eAAez8C,QAAQ,IAAM,IAAiB7rB,QACtEwC,EAAEy1G,kBACF,eAAK5iC,GAAgB,SAAU13E,EAAG+wE,GAC9B65C,EAAY,eAAE75C,GAAczI,SAAS,SAASA,SAAS,MAAM77C,GAAGu+F,GAChEpmH,EAAKqmH,eAAeL,MAExBhmH,EAAKs9D,cAAc,aAAet9D,EAAKs9D,cAAc,YAAYgpD,6BAErE,eAAE,QAAQjpD,KAAK,CACX5I,QAASz0D,EAAKs9D,cAAc,WAAWyL,oBAAoB9yE,OAC3Dq8G,KAAM,iBACPvL,QAAQkf,GAAchgF,OAAOigF,GAAetiG,SAASoiG,GACjDA,GAEJE,GAEXC,oBAAqB,SAAS1nF,GAC1B,IAAIla,EAAUka,EAAM8nF,IAAM9nF,EAAMla,QAAQ/sB,QAAQinC,EAAM8nF,IAAK,IAAM9nF,EAAMla,SAAWka,EAC9E+nF,EAAW,eAAE,SAAS7iG,SAAS8hG,IAAqB7sH,KAAK2rB,GAI7D,OAHIka,EAAM8nF,KACN,eAAE,OAAOlpD,KAAK,OAAQ5+B,EAAM8nF,KAAK3tH,KAAK6lC,EAAM8nF,KAAK3iG,SAAS4iG,GAEvDA,GAEXC,eAAgB,SAAShoF,EAAOynC,EAAUwgD,GACtC,IACIC,EACAC,EAFA5mH,EAAO3D,KAGX,GAAIqqH,EAIA,OAHAA,EAAcpjG,KAAK,IAAMmiG,IAAqBthG,SAC9CwiG,EAAuB3mH,EAAK+lH,gBAAgBtnF,GAC5CioF,EAAc3f,QAAQ4f,GACfA,EAEX,IAAIlxC,EAAcvP,GAAY,IAAMlmE,EAAK6lH,mBAAmBriG,YAAcxjB,EAAK8lH,UAAY9lH,EAAK6lH,mBAC5F/yC,EAAiB2C,EAAYpF,mBACjC,eAAKyC,GAAgB,SAAU13E,EAAG+wE,GAG9B,GAFAw6C,EAAuB3mH,EAAK+lH,gBAAgBtnF,EAAOq0C,GACnD8zC,EAAiBA,GAAkBD,EAC/BzgD,GAAY,EAAG,CACf,IAAI0C,EAAO6M,EAAYjD,gBAAgB,eAAErG,IAAetkD,GAAGq+C,GAC3DlmE,EAAKqmH,eAAez9C,EAAK5/D,QACzB29G,EAAqB7b,YAAYliC,OAC9B,CACH,IAAIiE,EAAS,eAAEV,GAAczI,SAAS,SAClCysC,EAActjC,EAAOnJ,SAAS,MAC9B1jE,EAAK6lH,mBAAmBriG,aACxBxjB,EAAKqmH,eAAelW,EAAY5sF,QAChC,eAAE4oD,GAAclmC,OAAO0gF,KAEvB3mH,EAAKqmH,eAAelW,EAAYr6B,SAChCjJ,EAAOiJ,QAAQixB,QAAQ4f,QAInC,IAAIE,EAAqB7mH,EAAKs9D,cAAc,YAE5C,OADAupD,GAAsBA,EAAmBP,yBAClCM,GAEXP,eAAgB,SAASz9C,GACrB,IAAKA,EAAM,CACP,IAAIk+C,EAAiBzqH,KAAKwpH,oBAAsBxpH,KAAKwpH,mBAAmB3iG,UAExE,GADA0lD,EAAOk+C,GAAkBA,EAAexjG,KAAK,IAAM,KAC9CslD,IAASA,EAAK3yE,OAAQ,CACvB,IAAI8wH,EAAmB1qH,KAAKypH,UAAU5iG,UACtC0lD,EAAOm+C,GAAoBA,EAAiBzjG,KAAK,IAAM,KAG/DslD,GAAQA,EAAKjG,SAAS,KAAoBiG,EAAKzkD,UAEnD04C,cAAe,SAAS3hB,GACpB,OAAQA,EAAKj9C,MACT,IAAK,kBACDi9C,EAAK6hB,SAAU,EACf,MACJ,QACI1gE,KAAKC,SAAS4+C,OAInB8rE,GAAsB,CAC7BhtH,eAAgB,WACZ,MAAO,CACHumD,iBAAiB,IAGzB2gB,YAAa,CACT+lD,cAAerB,IAEnBtkD,UAAW,CACPJ,YAAa,CACT1+D,KAAM,CACF45D,KAAM,WACF,IAAIp8D,EAAO3D,KACP6qH,EAA0BlnH,EAAKs9D,cAAc,iBACjDt9D,EAAK1D,WACL0D,EAAKs8F,kBAAkBzrB,KAAI,SAAUpyC,EAAOioF,GACpC1mH,EAAKokB,OAAO,oBACZ8iG,EAAwBT,eAAehoF,OAAO,EAAQioF,MAG9D1mH,EAAK8wE,QAAQD,KAAI,SAAU5wE,GACvB,IAAIA,GAAK,cAAgBA,EAAEotE,WAA3B,CAGA,IAAI65C,EAA0BlnH,EAAKs9D,cAAc,iBAC7C6pC,EAAoBnnG,EAAKs9D,cAAc,WACvC6pC,IAAsBA,EAAkBggB,cACxCD,GAA2BA,EAAwBb,0BCrI/E,EAASvkD,eAAe,gBAAiBklD,ICiCzC,IAAII,GAAgB,UAChB,GAAoB,cACpBC,GAAyB,mBACzBC,GAA2B,wBAC3B,GAAuB,iBACvB,GAAa,CAAC,uBAAwB,qBAAsB,cAAe,cAAe,oBAAqB,WAAY,aAAc,oBAAqB,kBAAmB,YAAa,qBAAsB,kBAAmB,YAAa,mBAAoB,qBACxQ,GAAiB,SAAS1jH,GAC1B,OAAO,eAASA,IAAU,MAAQA,EAAM8b,OAAO,IAE/C6nG,GAAe,SAAS3jH,GACxB,OAAO,eAASA,IAAU,OAASA,EAAM8b,OAAO,IAEhD8nG,GAAqB,SAASrmG,GAC9B,IAAIytF,EAAeztF,EAAWpnB,IAAI,GAAG60G,aACjC6Y,EAAa7nD,WAAWz+C,EAAW2G,IAAI,eACvC4/F,EAAgB9nD,WAAWz+C,EAAW2G,IAAI,kBAC9C,OAAO8mF,EAAe6Y,EAAaC,GAEnCC,GAAqB,SAAS3nH,EAAMiwE,GACpC,IAAIy+B,EAAe1uG,EAAK8lH,UAAUpX,eAC9BkZ,EAAa5nH,EAAK6nH,eAAe53C,EAAQy+B,GAC7C,OAAOA,EAAekZ,GAEtBE,GAAwC,SAAS9nH,EAAMihB,EAAa8mG,EAAiB93C,GACrF,OAAO03C,GAAmB3nH,EAAMiwE,EAAO93E,KAAI,SAAUyL,EAAOnG,GACxD,OAAOA,IAAUwjB,EAAc8mG,EAAkBnkH,OAGrD,GAAe,SAASglB,EAAgBI,GACxC,GAA0BJ,GAC1B,OAAcG,kBAAkBH,EAAgBI,IAEhDg/F,GAAqB,EAAQzpD,eAAe7C,QAAQ,CACpDusD,wBAAyB,WACrB,IAAI35B,EAAiBjyF,KAAKonB,gBACrBpnB,KAAK6rH,uBACN7rH,KAAK6rH,qBAAuBjoH,IACxBquF,EAAexd,QAAQ3sD,OAAO9nB,KAAK6rH,sBACnC,IAAIj8C,EAAoBhsE,GAAKA,EAAEgsE,mBAAqB,GACpD,UAAK9wE,MAAMkB,KAAM4vE,GAAmBziD,KAAK,KACrCntB,KAAK8rH,cAAcloH,MAG3BquF,EAAexd,QAAQD,IAAI,KACvByd,EAAexd,QAAQD,IAAIx0E,KAAK6rH,0BAI5CC,cAAe,SAASloH,GACpB,IAAImoH,EACApoH,EAAO3D,KACPgxE,EAAaptE,GAAKA,EAAEotE,WACpB8wB,EAAYl+F,GAAKA,EAAEk+F,UACnBp5E,EAAQ/kB,EAAKyjB,gBAAgBsB,QACjC,GAAK9kB,GAAK,YAAcotE,GAAc,YAAcA,GAAc,WAAaA,GAIxE,GAAI,WAAaA,EAAY,CAChC,IAAIg7C,EACJ,GAAI,KAAO,QAAUA,EAAiBpoH,EAAEytE,mBAAgB,IAAW26C,OAAiB,EAASA,EAAepyH,QACxG,SAEC8uB,EAAM9uB,OAAS,GAAK,WAAagK,EAAEytE,YAAY,KAAS,IAAM3oD,EAAM9uB,QAAU,WAAagK,EAAEytE,YAAY,IAAQztE,EAAE0jG,qBAMpHykB,EAAiBpoH,EAAKogE,SALtB,eAAY,IAAM,eAAY,IAAM,eAAY,KAC5CpgE,EAAKsoH,oBAAoBtoH,EAAK2pG,YAC9B3pG,EAAK8lH,UAAU1lD,mBAXlB+9B,IACDiqB,EAAiBpoH,EAAKogE,UAgB1BiN,GAAc,oBAAsBA,GAAc,qBAAuBA,GAAc,cAAgBA,IAAe8wB,GACtH,kBAAKiqB,GAAgB5+F,MAAK,WACtBxpB,EAAKuoH,sBACLvoH,EAAKsmH,6BAIjBA,uBAAwB,WACpBjqH,KAAK+M,UAAUo/G,2BAEnBD,oBAAqB,WACjB,IAAIn/G,EAAY/M,KAAK+M,UACrBA,EAAUqf,QAAQ,CACd0xD,SAAU99E,KAAKonB,gBAAgB82E,kBAC/BrnC,SAAU9pD,EAAU8lF,eACrB9lF,EAAUiZ,WAAWqhD,SAAS,IAAM4jD,MAE3CmB,kBAAmB,WACf,IAAIC,EACAngG,EAAWlsB,KAAKypH,UAChB3tC,EAAoB97E,KAAKwpH,mBACzB51C,EAAS1nD,EAASspD,kBACtB,GAAM,QAAU62C,EAAUz4C,SAAW,IAAWy4C,IAAWA,EAAQzyH,OAAS,CACxE,IAAI0yH,EACAC,EAAsBzwC,EAAkB7H,kBAC5C6H,EAAkB5H,gBAAgB,QAAUo4C,EAAwBpgG,EAAS+nD,yBAAsB,IAAWq4C,OAAwB,EAASA,EAAsBjlD,SAAS,eAC9KuM,EAASkI,EAAkBtG,kBAC3BsG,EAAkB5H,gBAAgBq4C,GAEtC,OAAO34C,GAEX44C,kBAAmB,SAAShgD,EAAgBoH,GACxC,IAAIjN,EAAoB3mE,KAAKysE,mBAC7B9F,EAAkB1G,cAClB,eAAKuM,GAAgB,SAAUprE,EAAO0P,GAClC,IAAI27G,EAAW9lD,EAAkBquB,YAAYlkF,GAC7C61D,EAAkBkQ,aAAa41C,EAAU,eAAgB74C,EAAOxyE,OAEpEulE,EAAkBzG,aAEtBwsD,0BAA2B,SAAShE,EAAM/mD,EAAWgrD,GACjD,GAAKjE,GAASA,EAAKvhG,YAAnB,CAGA,IAAIylG,EAAc5sH,KAAKypH,UAAUz1C,mBAC7B64C,EAAcnE,EAAK10C,mBACvB,eAAK44C,EAAa,CAACxrH,EAAO0uE,KACtB,IAAIg9C,EACAC,EAAa,eAAEj9C,GACfk9C,EAAaH,EAAYrhG,GAAGpqB,GAC5B4rH,GAAcA,EAAWpzH,SAErBkzH,EADAH,EACaK,EAAW3lD,SAAS,SAAS9/C,SAASwlG,GAEtCA,EAAW1lD,SAAS,IAAM1F,GAAWp6C,SAASylG,GAE/DF,EAAWjpD,YAAYlC,EAAWgrD,GAClCG,EAAWjpD,YAAY7jE,KAAK+mB,gBAAgB,YAAa4lG,QAIrEM,mBAAoB,SAASN,GACzB,IAAII,EAAa/sH,KAAKypH,UAAUx1C,kBAC5Bi5C,EAAkBltH,KAAKypH,UAAUz1C,mBAAmBxoD,GAAG,GACtDuhG,IAGLA,EAAWthG,IAAI,cAAekhG,EAAY,OAAS,SACnDI,EAAW1lD,SAAS,YAAY57C,IAAI,UAAWkhG,EAAY,OAAS,IACpEO,EAAgBrpD,YAAY7jE,KAAK+mB,gBAAgB,KAAqB4lG,GACtE3sH,KAAK0sH,0BAA0B1sH,KAAKwpH,mBAAoB,YAAamD,GACrE3sH,KAAK0sH,0BAA0B1sH,KAAKmtH,YAAa,YAAaR,GAC9D3sH,KAAKotH,wBAAwBT,GACzB3sH,KAAKqtH,iBACLN,EAAWrvH,IAAI,GAAG4sE,MAAM/iE,MAAQolH,EAAY,OAAS,MAG7DS,wBAAyB,SAAST,GAC9B,GAAI3sH,KAAK+nB,OAAO,mBAAoB,CAChC,IAAImkF,EAAalsG,KAAKypH,UAAUrc,gBAC5BwG,EAAkB5zG,KAAKypH,UAAUv0C,uBACjC,KAAW,OAASg3B,QAAc,IAAWA,OAAa,EAASA,EAAWnkF,OAAO,eACrF6rF,EAAgBnoF,IAAI,CAChBsoC,UAAW44D,EAAY,OAAcW,sBAAsB7+F,EAAA,MAAW,OAKtF8+F,oBAAqB,WACjB,IAKIC,EAGAjhG,EACAI,EATAg6C,EAAoB3mE,KAAKysE,mBACzBD,EAAiB7F,EAAkB+F,oBACnCtpB,EAAkBpjD,KAAK+nB,OAAO,mBAC9B0lG,EAAcztH,KAAK0tH,eACnBC,GAAc,EAEdC,GAA0B,EAC1BrgG,EAAe,IAGlBkgG,GAAe,eAAKjhD,GAAgB,SAAUprE,EAAO0P,GAClD,GAAI,SAAWA,EAAOvJ,MAElB,OADAkmH,GAAc,GACP,KAGf,eAAKjhD,GAAgB,SAAUprE,EAAO0P,GAClC,GAAIA,EAAOq8C,SAEP,OADAwgE,GAAc,GACP,KAGf3tH,KAAKwsH,kBAAkBhgD,EAAgB,IACnCihD,IACAlhG,EAAiB,aAAWshG,mBAC5BlhG,EAAiB,OAAcL,kBAAkBC,GACjDvsB,KAAKitH,oBAAmB,GACxBO,GAAmB,GAEvB,IAAIxnG,EAAWhmB,KAAK+M,UAAUiZ,WAC1BA,GAAYA,EAAS,IAAMhmB,KAAK8tH,mBACzB9tH,KAAK8tH,UACZ9nG,EAAS,GAAGskD,MAAMxW,SAAW,IAEjC,eAAY,KAoBR,GAnBI25D,GACAlgG,EAAevtB,KAAKosH,oBACpB,eAAK5/C,GAAgB,SAAUprE,EAAO0P,GAClC,IAAI27G,EAAW9lD,EAAkBquB,YAAYlkF,GAC7C61D,EAAkBkQ,aAAa41C,EAAU,eAAgBl/F,EAAansB,IAAQ,OAE3EusH,IACPpgG,EAAevtB,KAAKosH,qBAExB,eAAK5/C,GAAgB,SAAUprE,GAC3B,IAAImG,EAAQvH,KAAKuH,MACb,SAAWA,IACP,eAAUA,GACVgmB,EAAansB,GAAS,eAAUmG,IAAU2jH,GAAa3jH,GAASg8D,WAAWh8D,GAASA,EAC5E67C,IACR71B,EAAansB,QAAS,OAI9BosH,IACAxtH,KAAKitH,oBAAmB,GACxBO,GAAmB,EACfjhG,GAAkBA,IAAmB,aAAWshG,oBAAoB,CACpE,IAAIE,EAAuB,eAAgBxhG,GAAgByhG,OAAS,EAC/DD,GACD,GAAaxhG,EAAgBI,GAIzCihG,EAA0B5tH,KAAKiuH,qBAAqB1gG,EAAci/C,GAC9DppB,KACE,WACE,IAAI8qE,EACJ,eAAK1hD,GAAgB,SAAUprE,EAAO0P,GAC9B,gBAAkBA,EAAOrS,OACzByvH,EAAoB3gG,EAAansB,OAGzC,eAAKorE,GAAgB,SAAUprE,EAAO0P,GAC9B,gBAAkBA,EAAOrS,MAAQyvH,IACjC3gG,EAAansB,GAAS8sH,MAThC,GAaEluH,KAAKqtH,gBACLrtH,KAAKmuH,gBAAgB5gG,EAAci/C,IAG3C,eAAY,MACJihD,GAAeG,IACf5tH,KAAKwsH,kBAAkBhgD,EAAgBj/C,QAKvDmgG,aAAc,WACV,OAAO1tH,KAAK+nB,OAAO,oBAEvBslG,aAAc,WACV,OAAOrtH,KAAKysE,mBAAmBC,oBAAoBh/C,KAAKkO,GAAK,SAAWA,EAAEr0B,QAAUq0B,EAAEjO,UAE1FygG,wBAAyB,SAAS7gG,GAC9B,IAAI8gG,EAAY/C,GAAmBtrH,KAAMutB,GACrC+gG,EAA0B/gG,EAAanvB,QAAO,SAAUmJ,GACxD,YAAO,IAAWA,KAClB3N,OACJ,OAAOy0H,EAAYC,GAEvBL,qBAAsB,SAAS1gG,EAAci/C,GACzC,IACI/wE,EADAkI,EAAO3D,KAEPuuH,GAAkB,EAClBC,GAAe,EACfZ,GAA0B,EAC1B5nG,EAAWriB,EAAKoJ,UAAUiZ,WAC1ByoG,EAAW9qH,EAAK+qH,UAChBC,EAAQ,WACR,IAAIvtH,EAAQ3F,EACRqV,EAAS07D,EAAeprE,GACxBwtH,EAAiBrhG,EAAansB,KAAW,GACzCmG,EAAQgmB,EAAansB,GACrB+rD,EAAWr8C,EAAOq8C,SACtB,GAAIA,EACA,QAAI,IAAW5lD,EAAO,CAClB,IAAIsnH,EAAsBlrH,EAAKyqH,wBAAwB7gG,GACvDhmB,EAAQsnH,OACL,GAAI,GAAetnH,GAAQ,CAC9B,IAAI8mH,EAAY5C,GAAsC9nH,EAAMvC,EAAO+rD,EAAU5/B,GACzE8gG,EAAY,IACZ9mH,GAAS,GAIrB,IAAIunH,EAAkBnrH,EAAKorH,oBAAoB3tH,EAAOmsB,EAAazxB,KAAI,SAAU4nD,EAAa9+B,GAC1F,OAAOxjB,IAAUwjB,EAAcrd,EAAQm8C,MAEvCyJ,IAAayhE,GAAkBE,EAAkB3hE,IACjD5/B,EAAansB,GAAS+rD,EACtBygE,GAA0B,EAC1BnyH,GAAK,GAEJ,eAAUqV,EAAOvJ,SAClBinH,GAAe,GAEf,GAAe19G,EAAOvJ,SACtBgnH,GAAkB,IAG1B,IAAK9yH,EAAI,EAAGA,EAAI+wE,EAAe5yE,OAAQ6B,IACnCkzH,IAEJ,IAAKH,GAAgBjhG,EAAa3zB,OAAQ,CACtC,IAAI8wH,EAAmB/mH,EAAK8lH,UAAU5iG,UAClCwrF,EAAe1uG,EAAK8lH,UAAUpX,eAC9BnB,EAAiBvtG,EAAK8lH,UAAUtY,oBAChCoa,EAAa5nH,EAAK6nH,eAAej+F,EAAc8kF,GACnD,GAAIkZ,EAAalZ,EAAc,CAC3B,IAAI7kF,EAAkB,OAAcH,4BAA4Bm/C,EAAgBj/C,GAChF,GAAIC,GAAmB,IACnBD,EAAaC,GAAmB,OAChCogG,GAA0B,GACtB,IAAUa,IAAaF,GAAiB,CACxC,IAAIS,EAAcrrH,EAAKokB,OAAO,eAAiBpG,KAAKw8E,KAAK,eAAcusB,GAAoB,eAAcA,IAAqB,EAC9H/mH,EAAKmqH,UAAYvC,EAAara,EAAiB8d,EAC/ChpG,EAASyF,IAAI,WAAY9nB,EAAKmqH,aAK9C,OAAOF,GAEXO,gBAAiB,SAASc,EAAaziD,GACnC,IAAI0iD,EAAYlvH,KAAKypH,UAAUpX,eAC3B8c,EAAYnvH,KAAKwrH,eAAeyD,EAAaC,GAC7CE,EAAgB,CAChBx1H,OAAQ,GAEZ,GAAKq1H,EAAYr1H,OAAjB,CAGA,eAAK4yE,GAAgB,SAAUprE,IACvBpB,KAAKuH,OAAS0nH,EAAY7tH,KAAW,MACrCguH,EAAchuH,IAAS,EACvBguH,EAAcx1H,aAGtB,IAAIi5B,EAAOq8F,EAAYC,EACnBE,EAAc1tG,KAAKI,MAAM8Q,GAAQo8F,EAAYr1H,OAASw1H,EAAcx1H,SACpE01H,EAAwBz8F,EAAOw8F,GAAeJ,EAAYr1H,OAASw1H,EAAcx1H,QACrF,GAAIi5B,GAAQ,EACR,IAAK,IAAIp3B,EAAI,EAAGA,EAAIwzH,EAAYr1H,OAAQ6B,IAChC2zH,EAAc3zH,KAGlBwzH,EAAYxzH,IAAM4zH,EACdC,EAAwB,IACpBA,EAAwB,GACxBL,EAAYxzH,IAAM6zH,EAClBA,EAAwB,IAExBL,EAAYxzH,KACZ6zH,SAMpBP,oBAAqB,SAASnqG,EAAa6tF,EAAc8c,GACrD,IAAIC,EAAQ,EACRjoH,EAAQkrG,EAAa7tF,GACzB,IAAK,GAAerd,GAChB,OAAOg8D,WAAWh8D,GAEtB,IAAIkoH,EAAoBhd,EAAa17E,OAAO,CAACkoC,EAAK13D,EAAOnG,IAChD,GAAemG,GAGb03D,EAAMsE,WAAWh8D,GAFb03D,EAGZ,GACCywD,EAAkBjd,EAAa17E,OAAO,CAACkoC,EAAK13D,KACvCA,GAASA,IAAU,IAAwB,GAAeA,GACpD03D,EAEJA,EAAMsE,WAAWh8D,GACzB,GACHgoH,EAAaA,GAAcvvH,KAAKypH,UAAUpX,eAC1C,IAAIsd,EAAYJ,EAAaG,EACzBE,EAA2BH,EAAoBF,EAAa,IAIhE,OAHIG,EAAkB,GAAKE,EAA2BF,GAAmBH,IACrEC,EAAQI,EAA2BD,EAAYA,EAAYC,EAA2B,GAEnFrsD,WAAWh8D,GAASgoH,EAAaC,EAAQ,KAEpDhE,eAAgB,SAAS53C,EAAQ27C,GAE7B,IADA,IAAItwH,EAAS,EACJxD,EAAI,EAAGA,EAAIm4E,EAAOh6E,OAAQ6B,IAAK,CACpC,IAAI8L,EAAQqsE,EAAOn4E,GACf8L,GAASA,IAAU,KACnBtI,GAAUe,KAAK+uH,oBAAoBtzH,EAAGm4E,EAAQ27C,IAGtD,OAAO5tG,KAAKw8E,KAAKl/F,IAErB4wH,WAAY,SAASxpD,GACjB,IAAIypD,EACAvoH,EACA2jG,EAAe,eAAE7kC,GACjB0pD,EAAuB/vH,KAAK+mB,gBAAgBikG,SAC5C,IAAWhrH,KAAKstG,YAAcpC,GAAgBA,EAAat9G,GAAG,aAAe,eAASs9G,KACtF4kB,EAAgB5kB,EAAa7jC,SAAS,IAAMrnE,KAAKiuB,2BAC7C6hG,EAAcl2H,QACdk2H,EAAcE,SAElBhwH,KAAKstG,aAAe6d,GAAmBjgB,GACvC3jG,EAAQ,eAAS2jG,GACjBA,EAAa5jF,SAASyoG,GACtB/vH,KAAK0uH,UAAY,eAASxjB,KAAkB3jG,EAC5C2jG,EAAa1jF,YAAYuoG,GACrBD,EAAcl2H,QACdk2H,EAAcvoG,SAAS2jF,KAInClrC,cAAe,WACX,MAAO,CAAC,SAAU,qBAEtB+D,OAAQ,WACJ,OAAQ/jE,KAAK+M,UAAU21D,gBAAkB1iE,KAAKiwH,oBAElDA,iBAAkB,SAASC,GACvB,IAAIvsH,EAAO3D,KAEX,GADA2D,EAAKioH,0BACAjoH,EAAKwsH,WAAWD,GAArB,CAGA,IAAIE,EAAazsH,EAAK0sH,gBAClBpxH,EAAS0E,EAAK0sH,gBAAkB,IAAI,cAgBxC,OAfA,kBAAKD,GAAYt+B,QAAO,WACpB,gBAAY,WACJnuF,EAAKyjB,gBAAgBo2D,YACrB75E,EAAK4pH,sBAET5pH,EAAK2sH,2BACL,gBAAY,WACR,gBAAY,WACR,gBAAY,WACR3sH,EAAK4sH,oCAIjBpjG,KAAKluB,EAAOuwB,SAASG,KAAK1wB,EAAO4kC,WAElC5kC,EAAOqxB,YAElBggG,yBAA0B,WACtB,IAAIE,EAAexwH,KAAK+M,UAAUiZ,WAAWqhD,WAAW3pE,IAAI,GACxDwuG,EAAalsG,KAAKypH,UAAUrc,iBAC5BojB,IAAgBA,EAAalmD,MAAM54D,QAAYw6F,GAAeA,EAAWukB,cACzED,EAAalmD,MAAM54D,OAAS,KAGpCy+G,WAAY,SAASD,GACjB,IAAIhlB,EAAelrG,KAAK+M,UAAUiZ,WAClC,QAAIkqG,IAAclwH,KAAK0wH,aAAe,eAASxlB,IAAiBlrG,KAAK2wH,cAAgB,eAAUzlB,IAAiBlrG,KAAK4wH,oBAAsB,iBAAYpiG,mBAAqB08E,EAAat9G,GAAG,eAKhMijI,wBAAyB,SAAS5d,GAC9B,IAAItvG,EAAO3D,KACP8wH,EAAkB7d,EAAYtvG,EAAK8lH,UAAUtY,oBAAsB,EACnE4f,EAAkBptH,EAAK8lH,UAAUtY,mBAAkB,GACvD,gBAAY,WACRxtG,EAAK6lH,oBAAsB7lH,EAAK6lH,mBAAmBpyC,mBAAmB05C,GACtEntH,EAAKwpH,aAAexpH,EAAKwpH,YAAY/1C,mBAAmB05C,GACxDntH,EAAK8lH,UAAUryC,mBAAmB05C,EAAiBC,OAG3D9E,oBAAqB,SAAShZ,IACtB,IAASjzG,KAAK+nB,OAAO,uBACrB,eAAY,KACR,eAAY,KACR/nB,KAAK6wH,wBAAwB5d,OAIrCjzG,KAAK6wH,wBAAwB5d,IAGrCsd,sBAAuB,WACnB,IAWIS,EAXArtH,EAAO3D,KACPiyF,EAAiBtuF,EAAKyjB,gBACtB8E,EAAWvoB,EAAK8lH,UAChBve,EAAevnG,EAAKoJ,UAAUiZ,WAC9BwqG,EAAetlB,EAAa7jC,WAAW3pE,IAAI,GAC3CuzH,EAAoB/lB,IAAiBA,EAAaxtG,IAAI,GAAG60G,cAAgB,eAAUrH,IACnFr3C,EAAYtyD,SAAS2pG,EAAaz/E,IAAI,cACtCylG,EAAoBr9D,GAAao9D,GAAqBp9D,EACtDniD,EAAS/N,EAAKokB,OAAO,WAAamjF,EAAaxtG,IAAI,GAAG4sE,MAAM54D,OAC5Dy/G,EAAgBxtH,EAAKs9D,cAAc,iBACnCmwD,EAAqBF,GAAqBV,EAAaa,eAAiBb,EAAa/sD,aAEzF9/D,EAAKksH,WAAW3kB,GAChB,IAAI+H,EAAYtvG,EAAK2pG,YAAc4jB,EAC/Bx/G,GAAU/N,EAAK2pG,WAAa,SAAW57F,IACvCs/G,EAAW,eAAE,SACb,eAAUA,EAAUt/G,GACpBs/G,EAASzpG,SAAS2jF,GAClBvnG,EAAK2pG,aAAe,eAAU0jB,GAC9BA,EAASlpG,UAEb,gBAAY,WACRoE,EAASxa,OAAO,KAAMuhG,GAClBie,IAAsBE,GACtB,eAAEZ,GAAc/kG,IAAI,SAAUooC,GAE7Bo+B,EAAezU,WAIpB,gBAAY,WACR75E,EAAK2tH,iBAAiBpmB,GACtBvnG,EAAKsoH,oBAAoBhZ,GACzB,eAAK,IAAY,SAAU7xG,EAAOm3E,GAC9B,IAAImwC,EAAO/kH,EAAKwoB,QAAQosD,GACpBmwC,GACAA,EAAK3kD,YAGbotD,GAAiBA,EAAcptD,YAZ/B73C,EAASkmF,WAAWngB,EAAevsF,iBAgB/C4rH,iBAAkB,SAASpmB,GACvBlrG,KAAK0wH,WAAa,eAASxlB,GAC3BlrG,KAAK2wH,YAAc,eAAUzlB,GAC7BlrG,KAAK4wH,kBAAoB,iBAAYpiG,kBAEzCgyC,cAAe,SAAS3hB,GACpB,OAAQA,EAAKj9C,MACT,IAAK,QACL,IAAK,SACD5B,KAAK+M,UAAUwkH,oBACfvxH,KAAK+jE,SACT,IAAK,cAED,YADAllB,EAAK6hB,SAAU,GAEnB,QACI1gE,KAAKC,SAAS4+C,KAG1BkhB,KAAM,WACF//D,KAAKonB,gBAAkBpnB,KAAKihE,cAAc,QAC1CjhE,KAAKysE,mBAAqBzsE,KAAKihE,cAAc,WAC7CjhE,KAAKwpH,mBAAqBxpH,KAAKmsB,QAAQ,qBACvCnsB,KAAKmtH,YAAcntH,KAAKmsB,QAAQ,cAChCnsB,KAAKypH,UAAYzpH,KAAKmsB,QAAQ,eAGlCqlG,GAAiC,EAAQtvD,eAAe7C,QAAQ,CAChEoyD,sBAAuB,SAAS1sD,EAAO6P,EAAK2D,GACxC,IAAK,IAAI9wE,EAAI,EAAGA,EAAIs9D,EAAMnrE,OAAQ6N,IAC1Bs9D,EAAMt9D,IAAMs9D,EAAMt9D,GAAG7F,OAAS22E,GAC9BxT,EAAMt9D,GAAGopE,SAAS,CACdllD,KAAMipD,EAAIjpD,KACVC,IAAKgpD,EAAIhpD,OAKzBm0C,KAAM,WAEF,IADA,IAAIgF,EAAQ,CAAC/kE,KAAKmsB,QAAQ,qBAAsBnsB,KAAKmsB,QAAQ,cAAensB,KAAKmsB,QAAQ,aAChF1wB,EAAI,EAAGA,EAAIspE,EAAMnrE,OAAQ6B,IAAK,CACnC,IAAIitH,EAAO3jD,EAAMtpE,GACbitH,GACAA,EAAK3zC,cAAcP,IAAIx0E,KAAKyxH,sBAAsBjnG,KAAKxqB,KAAM+kE,QAKzE2sD,GAAW,EAAQrvD,KAAKhD,QAAQ,CAChCC,eAAgB,WACRt/D,KAAK+M,UAAU21D,iBACf1iE,KAAK+M,UAAU21D,gBAAiB,EAChC1iE,KAAK2xH,oBAAoB5tD,WAGjC6tD,oBAAqB,WACjB,MAAO,2BAEX7xD,KAAM,WACF//D,KAAK2xH,oBAAsB3xH,KAAKihE,cAAc,YAC9CjhE,KAAKonB,gBAAkBpnB,KAAKihE,cAAc,SAE9C90C,QAAS,SAASvqB,GACd,OAAO5B,KAAK+M,UAAUo1D,OAAOvgE,IAEjCilB,QAAS,WACL,OAAO7mB,KAAK6xH,eAEhBrxD,cAAe,SAAS3hB,GAChB,eAAU7+C,KAAK6xH,gBAAkB,gBAAkBhzE,EAAKj9C,MACxD5B,KAAK6xH,cAAchuD,YAAY7jE,KAAK+mB,gBAAgBgkG,MAAkBlsE,EAAKh9C,OAC3Eg9C,EAAK6hB,SAAU,GAEf1gE,KAAKC,SAAS4+C,IAGtBizE,aAAc,SAAShC,GACnB,IAAInsH,EAAO3D,KACX,eAAK,IAAY,SAAUoB,EAAOm3E,GAC9B,IAAImwC,EAAO/kH,EAAKwoB,QAAQosD,GACpBmwC,GACAA,EAAKvkH,OAAO2rH,OAIxBiC,kBAAmB,WACf,MAAO,QAEX5tH,OAAQ,SAAS+mG,GACb,IAAI8mB,GAAiBhyH,KAAK6xH,cACtB/B,EAAgB9vH,KAAK6xH,eAAiB,eAAE,SAASvqG,SAAStnB,KAAKiuB,2BACnE6hG,EAAcxoG,SAAS2jG,IACvB6E,EAAcjsD,YAAY7jE,KAAK+mB,gBAAgBgkG,MAAkB/qH,KAAK+nB,OAAO,gBAC7E/nB,KAAKosB,QAAQ,OAAQ,eAAgB8+E,GACrClrG,KAAK+M,UAAUqf,QAAQ,CACnB6pF,KAAMj2G,KAAK+xH,oBACXt5D,MAAO,OAAoBp/D,OAAO2G,KAAK4xH,wBACxC9B,GACH9vH,KAAKiyH,aAAe/mB,GAAgBlrG,KAAKiyH,aACrCD,IACAhyH,KAAK6xH,cAAgB/B,EACrB,kBAAe9vH,KAAKihE,cAAc,YAAY4uD,WAAW3kB,GACzD4kB,EAAcvoG,SAAS2jF,IAE3BlrG,KAAK8xH,aAAahC,IAEtBt8C,OAAQ,WACJ,IAAI03B,EAAelrG,KAAKiyH,aACpBnC,EAAgB9vH,KAAK6xH,cACrBrH,EAAqBxqH,KAAKihE,cAAc,YACxCiqC,GAAgB4kB,IAChBtF,EAAmBzmD,SACf/jE,KAAKonB,gBAAgBo2D,YACrBx9E,KAAK2xH,oBAAoB1H,6BAK9BiI,GAAiB,CACxBv0H,eAAgB,WACZ,MAAO,CACHorD,aAAa,EACbV,aAAa,IAGrBwc,YAAa,CACTstD,SAAUxG,GACVyG,qBAAsBZ,IAE1BzsD,MAAO,CACHstD,SAAUX,IAEdtJ,WAAY,ICrrBhB,EAAS3iD,eAAe,WAAYysD,I,iBCIhCI,GAA4B,yBAC5BC,GAA8B,2BAC9BC,GAAoC,iCACpCC,GAA6B,0BAC7BC,GAAkC,+BAClCC,GAAc,QAAStzD,QAAQ,CAC/Bs3C,iBAAkB,IAAM2b,GACxBha,YAAa,WACTt4G,KAAK4yH,kBACL5yH,KAAKC,YAET4yH,aAAc,WACV,OAAO7yH,KAAKm2G,iBAAiB9uC,YAEjCg2C,cAAe,WACX,OAAOr9G,KAAK6yH,eAAexrD,SAASrnE,KAAK8yH,kBAE7CF,gBAAiB,WACb,IAAIjvH,EAAO3D,KACP8kB,EAAa9kB,KAAKm2G,iBACtB,eAAK,CAAC,SAAU,SAAU,QAAS,SAAS,WACxC,IAAI4c,EAAc,KAAO/yH,KAAO,UAC5BgzH,EAAWrvH,EAAKovH,GACfC,IACDrvH,EAAKovH,GAAeC,EAAW,eAAE,SAAS1rG,SAASmrG,KAEvDO,EAASzrG,SAASzC,OAG1Bq1F,aAAc,WACVn6G,KAAKC,SAASnB,MAAMkB,KAAME,WAC1BF,KAAKizH,mBAETA,gBAAiB,WACb,IAAIC,EAAYlzH,KAAKgmB,WAAWiB,KAAK,IAAMwrG,IAC3CS,EAAU1rG,YAAYkrG,IACtBQ,EAAUnjD,IAAI,UAAUvkD,IAAI,GAAGlE,SAASorG,KAE5C1X,YAAa,SAAS55G,EAAO2F,EAAMosH,EAAeC,GAC9C,IAAI94D,EAAWvzD,EAAKuzD,UAAY,OAC5Bx1C,EAAa9kB,KAAK,KAAOs6D,EAAW,WACpCy/C,EAAc/5G,KAAKC,SAASmB,EAAO2F,EAAM+d,EAAYsuG,GAgBzD,OAfIpzH,KAAKqzH,qBAAqB,CACtBvzC,SAAU/4E,KAEdgzG,EAAYzyF,SAAS,2BAErB,SAAWgzC,GAAY,aAAevzD,EAAK0zD,QAAU,kBAAoB1zD,EAAK0zD,QAAU1zD,EAAKusH,WAC7FvZ,EAAYzyF,SAASgrG,IAErB,aAAevrH,EAAK0zD,QACpBs/C,EAAYzyF,SAASirG,IAErB,kBAAoBxrH,EAAK0zD,QACzBs/C,EAAYzyF,SAASkrG,IAEzBzY,EAAYzyF,SAASvgB,EAAKikD,UACnB+uD,GAEXsZ,qBAAsB,SAASx0E,GAC3B,IAAIsM,EAAWnrD,KAAKC,SAAS4+C,GACzB14C,EAAO04C,EAAKihC,SACZyzC,EAAeptH,GAAQA,EAAKo0D,iBAChC,OAAOg5D,GAAgBpoE,GAE3BqoE,kBAAmB,SAAS5vH,EAAGi7C,EAAMsiB,GAC7B,eAAEv9D,EAAE0hB,QAAQ2H,QAAQ,IAAMqlG,IAA2B14H,QACrDoG,KAAKC,SAAS2D,EAAGi7C,EAAMsiB,IAG/Bi1C,OAAQ,WACJp2G,KAAK6yH,eAAenxD,QACpB1hE,KAAKC,cAGb,eAAkB,gBAAiB0yH,IACpB,U,oDCnFXc,GAAqB,iBACrBC,GAAgB,CAAC,iBAAkB,WAAY,aAAc,YAAa,SAAU,cAAe,SAAU,YAAa,gBAAiB,oBAC3IC,GAAkB,SAAS3tG,GAC3B,IAAI85D,EAAW95D,EAAS7f,MAAQ6f,EAAS7f,OACrC+f,EAAe45D,GAAYA,EAAS55D,aACpCC,EAAaD,GAAgBA,EAAa,GAC9C,OAAOC,GAAc25D,EAAS35D,IAE3B,SAASytG,GAAmC1iC,EAASnqF,GACxD,IAAI8sH,EACJ,GAAK3iC,EAAL,CAGA,IAAIia,EAAQja,EAAQ4iC,uBAAuB/sH,GAC3C,GAAKokG,EAAMvxG,OAAX,CAGA,IAAIkmF,EAAWoR,EAAQ0sB,aAAazS,GAChC4oB,KAAwB,QAAUF,EAAoB/zC,EAAS9uE,eAAY,IAAW6iH,GAAqBA,EAAkB9vE,UAAY+7B,EAAS/7B,UAAYmtC,EAAQnpE,OAAO,cAE7K0yC,OAAQA,GACRqlB,EACJ,GAAIrlB,IAAW,IAAMi5D,GAAcp1H,QAAQm8D,GAAS,CAChD,IAAIu5D,EAAU7oB,EAAMlkF,KAAKwzC,EAAO38D,cAAc3C,QAAQ,KAAM,SAC5D,GAAI64H,EAAQp6H,OAAQ,CAChB,IAAIq6H,EAAuBC,EACvBC,EAAeR,GAAgBK,GAC/BI,EAAe,qBAAuB35D,EAAS05D,EAAa/R,eAAen7F,KAAK,IAAIpV,OAAO4hH,MAAwB,OAASU,QAAgB,IAAWA,GAAwB,QAAUF,EAAwBE,EAAa/R,oBAAiB,IAAW6R,OAApF,EAAqHA,EAAsBzuG,KAAK2uG,KAAkB,eAAEA,EAAattG,WACvV2iC,EAAW,QAAU0qE,EAAqBp0C,EAAS9uE,eAAY,IAAWkjH,OAAqB,EAASA,EAAmB1qE,SAC3HuqE,EACAK,EAAapzD,KAAK,YAAa,GAE/BozD,EAAapzD,KAAK,WAAYxX,GAAsB,OCzBpE,IAAI,GAAS,iBAoBT6qE,GAAuB,kBACvBC,GAA6B,wBAC7BC,GAAqC,gCACrCC,GAA4B,uBAC5BC,GAA8B,yBAC9BC,GAAmB,CACnBC,WAAY,QACZC,YAAa,SACbC,eAAgB,YAChBC,uBAAwB,qBAExBC,GAAoB,CACpBC,WAAY,OACZC,WAAY,OACZC,YAAa,QACbC,aAAc,SACdC,eAAgB,YAEhBC,GAAe,OAAOh2D,QAAQ,CAC9Bg3C,eAAgB,WACZ,IAAIif,EAAY,GAIhB,OAHKt1H,KAAK+nB,OAAO,WAAc/nB,KAAKu1H,MAAMxtG,OAAO,oBAC7CutG,EAAYt1H,KAAKw1H,QAAQnf,kBAEtB,OAAA57G,EAAA,WAAOuF,KAAKC,WAAYq1H,EAAW,CACtCG,IAAK,WACDz1H,KAAK01H,QAAU11H,KAAK01H,OAAOlrE,WAIvCorD,mBAAoB,WAChB,OAAO,OAAAn7G,EAAA,WAAOuF,KAAKC,WAAY,CAC3ByoB,MAAO,GACPi3D,YAAa,KACbp2D,WAAY,KACZosG,aAAc,OACdV,WAAY,GACZD,WAAY,WACZE,iBAAa,EACbC,kBAAc,EACdC,eAAgB,UAChBQ,cAAe,KACfC,YAAY,EACZlB,WAAY,OACZC,YAAa,OACb9xE,oBAAoB,EACpBoC,mBAAmB,EACnB4wE,QAAQ,EACRC,cAAe,OACfC,iBAAkB,GAClB1iE,gBAAgB,EAChB2iE,cAAe,CACXr6D,GAAI,aACJF,GAAI,gBACJlzC,UAAW,WACX4C,OAAQ,CACJuU,EAAG,IAGXu2F,oBAAgB,EAChBC,eAAgB,KAChBC,WAAY,QACZvB,oBAAgB,EAChBwB,cAAc,EACdngB,cAAc,EACd/tF,eAAW,EACX2sG,wBAAwB,KAGhCpV,qBAAsB,WAClB,OAAO1/G,KAAKC,WAAW4R,OAAO,CAAC,CAC3B8tG,OAAQ,CACJl9E,SAAU,OAEdzxB,QAAS,CACL6kH,YAAY,IAEjB,CACClW,OAAQ,CACJl9E,SAAU,WAEdzxB,QAAS,CACLilH,cAAe,CACX7qG,OAAQ,CACJuU,EAAG,MAIhB,CACCggF,OAAQ,WACJ,MAAO,YAAc9G,GAAA,KAAQC,OAAOC,aAAeF,GAAA,KAAQyd,eAE/DtlH,QAAS,CACL6zC,mBAAmB,IAExB,CACC86D,OAAQ,CACJl9E,SAAU,WAEdzxB,QAAS,CACLilH,cAAe,CACXr6D,GAAI,QAAU57D,KAAK+nB,OAAO,cAAgB,OAAS,SACnD2zC,GAAI,QAAU17D,KAAK+nB,OAAO,cAAgB,OAAS,SACnDS,UAAW,WAEf0tG,eAAgB,CACZzrE,KAAM,CACFhsD,KAAM,MACNu7D,SAAU,IACVj1B,KAAM,CACF4zB,MAAO,GAEXjgE,GAAI,CACAigE,MAAO,IAGfnO,KAAM,CACF/rD,KAAM,MACNu7D,SAAU,IACVj1B,KAAM,CACF4zB,MAAO,GAEXjgE,GAAI,CACAigE,MAAO,OAKxB,CACCgnD,OAAQ,WACJ,OAAO,kBAEX3uG,QAAS,CACLklG,cAAc,OAI1BqgB,aAAc,SAASvlH,GACf,YAAc6nG,GAAA,KAAQiK,UAAUrgF,WAC3BzxB,EAAQilH,gBACTjlH,EAAQilH,cAAgB,CACpBv6D,IAAK1qD,EAAQ6kH,WAAa,UAAY,SAAW7kH,EAAQqa,WAAa,OAAS,YAI3FrrB,KAAKC,SAAS+Q,IAElBwlH,mBAAoB,WAChB,MAAO,CACHjiC,UAAU,IAGlBqiB,MAAO,WACH52G,KAAKC,WACLD,KAAKgmB,WAAWsB,SAAS+sG,IACzBr0H,KAAK0iG,kBACL1iG,KAAKy2H,uBACLz2H,KAAK02H,0BAETD,qBAAsB,WAClBz2H,KAAK22H,iBAAmB32H,KAAKuhE,sBAAsB,gBAEvDm1D,uBAAwB,WACpB12H,KAAK42H,mBAAqB52H,KAAKuhE,sBAAsB,kBAEzDs1D,eAAgB,WACZ72H,KAAK82H,iBAAiBC,oBAAoB,CACtC9tD,QAAS,IAAI,QAAqB,aAEtCjpE,KAAKC,YAETq4G,YAAa,WACTt4G,KAAKg3H,gBACLh3H,KAAKC,YAET8hH,QAAS,WACL/hH,KAAKC,WACLD,KAAKosB,QAAQ,CACT6pF,KAAM,UACNghB,UAAU,EACVC,SAAUl3H,KAAK+nB,OAAO,aAG9B8+F,mBAAoB,WACZ7mH,KAAK+nB,OAAO,WACZ/nB,KAAKm3H,gBAGb/gB,OAAQ,WACJp2G,KAAKo3H,mBACDp3H,KAAK01H,SACL11H,KAAK01H,OAAO1vG,WAAW8B,gBAChB9nB,KAAKq3H,UAGpBL,cAAe,WACX,IAAIM,EAAUt3H,KAAKgmB,WAAWsB,SAASmtG,IACnCtzD,EAASnhE,KAAKu3H,iBAClBv3H,KAAKw1H,QAAUx1H,KAAKooB,iBAAiBkvG,EAAS,cAAQn2D,IAE1Ds3C,mBAAoB,SAASzyF,EAAUnkB,EAAO+B,GAC1C5D,KAAKw1H,QAAQ/c,mBAAmBzyF,EAAUnkB,EAAO+B,IAErD2zH,eAAgB,WACZ,MAAO,CACHh7H,KAAMyD,KAAK+nB,OAAO,cAClBkjC,KAAMjrD,KAAK+nB,OAAO,cAClBxgB,MAAOvH,KAAK+nB,OAAO,eACnBrW,OAAQ1R,KAAK+nB,OAAO,gBACpBmuF,aAAcl2G,KAAK+nB,OAAO,gBAC1BojC,SAAUnrD,KAAK+nB,OAAO,kBACtBm9B,mBAAmB,EACnBL,mBAAmB,EACnBqG,QAAS,SAAStnD,GACd5D,KAAK+nB,OAAO,UAAW/nB,KAAK+nB,OAAO,WACnC/nB,KAAK42H,mBAAmBhzH,IAC1B4mB,KAAKxqB,QAGfw3H,sBAAuB,SAAS1B,GAC5B,IAAIlmF,OAAQ,IAAWkmF,GAAU91H,KAAK01H,OAAO3tG,OAAO,WAAa+tG,EAC7DA,GACA91H,KAAKm3H,eAETn3H,KAAK01H,OAAOlnB,OAAO5+D,GACnB5vC,KAAKosB,QAAQ,WAAYwjB,IAE7BunF,aAAc,WACV,IAAIn3H,KAAKq3H,QAAT,CAGA,IAAII,EAASz3H,KAAKq3H,QAAU,eAAE,SAAS9vG,SAASvnB,KAAKgmB,YACjDm7C,EAASnhE,KAAK03H,gBAClB13H,KAAK01H,OAAS11H,KAAKooB,iBAAiBqvG,EAAQ,QAASt2D,KAEzDu2D,cAAe,WACX,IAAIC,GAAY33H,KAAK+nB,OAAO,cAC5B,MAAO,CACH8+B,cAAe,SAAShI,GACpBA,EAAK9xC,UAAUkuG,WAAW3zF,SAASitG,IAAoC1wD,YAAYywD,GAA4BqD,IAEnHrkE,gBAAgB,EAChBF,gBAAiB,SAAS+6C,GACtBnuG,KAAK43H,YAAYzpB,IACnB3jF,KAAKxqB,MACPw0D,SAAUx0D,KAAK+nB,OAAO,iBACtBmrC,UAAWlzD,KAAK+nB,OAAO,kBACvBi/B,gBAAiB,SAASnI,GAClB,YAAcA,EAAKj9C,MACnB5B,KAAK+nB,OAAO,SAAU82B,EAAKh9C,QAEjC2oB,KAAKxqB,MACPslB,OAAQtlB,KAAKgmB,WACbtU,OAAQ1R,KAAK+nB,OAAO,eACpBxgB,MAAOvH,KAAK+nB,OAAO,cACnB8rC,UAAW7zD,KAAK+nB,OAAO,kBACvBI,UAAWnoB,KAAK+nB,OAAO,aACvB8vG,kBAAmB73H,KAAK+nB,OAAO,4BAGvC6vG,YAAa,SAASzpB,GAClB,IAAIvxB,EAAW,eAAEuxB,GACb2pB,EAAa93H,KAAK+3H,eACtBn7C,EAASt1D,SAASktG,IAClBx0H,KAAKu1H,MAAQv1H,KAAKooB,iBAAiBw0D,EAAU58E,KAAK+nB,OAAO,cAAe+vG,GACxE93H,KAAKu1H,MAAMyC,eAAiB,WACxB,OAAOh4H,KAAKgmB,YACdwE,KAAKxqB,MACPA,KAAKi4H,qBACL,IAAIC,EAAgB,GAAK,eAAU,IAC/B,eAAUt7C,GAAYs7C,GACtB,eAAUt7C,EAAUs7C,IAG5BC,mBAAoB,SAASpxH,EAAMqxH,EAAUv2H,GACzC,IAAIw2H,EACJ,QAAUA,EAAcr4H,KAAKu1H,aAAU,IAAW8C,GAAuBA,EAAYF,mBAAmBpxH,EAAMqxH,EAAUv2H,GACxH+xH,GAAmC5zH,KAAKu1H,MAAOxuH,IAEnDgxH,aAAc,WACV,MAAO,CACHO,aAAc,eACdC,iBAAiB,EACjBhzE,WAAY,GACZwwE,cAAe/1H,KAAK+nB,OAAO,iBAC3BiuG,iBAAkBh2H,KAAK+nB,OAAO,oBAC9B4tG,aAAc31H,KAAK+nB,OAAO,gBAC1B43D,YAAa,SAAS/7E,GACd5D,KAAK+nB,OAAO,iBACZ/nB,KAAK+nB,OAAO,UAAU,GAE1B/nB,KAAK22H,iBAAiB/yH,IACxB4mB,KAAKxqB,MACPwpD,UAAW,EACX3E,kBAAmB7kD,KAAK+nB,OAAO,qBAC/B+6B,mBAAoB9iD,KAAK+nB,OAAO,sBAChCouG,eAAgBn2H,KAAK+nB,OAAO,kBAC5BiuF,gBAAiB,CACbC,KAAM,cAIlBgiB,mBAAoB,WACZj4H,KAAKu1H,OACLv1H,KAAKu1H,MAAMxtG,OAAO,aAAc/nB,KAAKwpB,aAAexpB,KAAK+nB,OAAO,iBAE7D/nB,KAAKw4H,iBAEhB,wBACI,OAAOx4H,KAAKC,WAAW4R,OAAO,CAAC7R,KAAKu1H,SAExCkD,kBAAmB,SAAS9uE,GACxB3pD,KAAKC,SAAS0pD,GACd3pD,KAAKw1H,QAAQztG,OAAO,UAAW4hC,IAEnCwzD,eAAgB,SAASt+D,GACrB,IAAIj9C,EAAOi9C,EAAKj9C,KACZC,EAAQg9C,EAAKh9C,MACjB,OAAQD,GACJ,IAAK,QACL,IAAK,aACG5B,KAAK+nB,OAAO,oBAAsB/nB,KAAK+nB,OAAO,UAC9C/nB,KAAKw4H,iBAAkB,GAEvBx4H,KAAKkgG,qBACLlgG,KAAKi4H,sBAET,MACJ,IAAK,eACGj4H,KAAKu1H,OACLv1H,KAAKu1H,MAAMxtG,OAAOnmB,EAAM5B,KAAK2jE,aAAa9hE,IAE9C,MACJ,IAAK,cACD7B,KAAKy2H,uBACL,MACJ,IAAK,gBACDz2H,KAAK42H,qBACL,MACJ,IAAK,aACL,IAAK,aACL,IAAK,cACL,IAAK,eACL,IAAK,iBACD52H,KAAKw1H,QAAQztG,OAAOgtG,GAAkBnzH,GAAOC,GAC7C7B,KAAKm3H,eACL,MACJ,IAAK,aACL,IAAK,cACL,IAAK,iBACL,IAAK,yBACDn3H,KAAK01H,OAAO3tG,OAAO2sG,GAAiB9yH,GAAOC,GAC3C,MACJ,IAAK,aACL,IAAK,aACL,IAAK,eACD7B,KAAK4iE,cACL,MACJ,IAAK,oBACL,IAAK,qBACG5iE,KAAKu1H,OACLv1H,KAAKu1H,MAAMxtG,OAAOnmB,EAAMC,GAE5B7B,KAAKC,SAAS4+C,GACd,MACJ,IAAK,gBACL,IAAK,mBACL,IAAK,iBACG7+C,KAAKu1H,OACLv1H,KAAKu1H,MAAMxtG,OAAOnmB,EAAMC,GAE5B,MACJ,IAAK,SACG7B,KAAKw4H,kBACLx4H,KAAKkgG,qBACLlgG,KAAKi4H,sBAETj4H,KAAKw3H,sBAAsB31H,GAC3B7B,KAAK04H,gCACL,MACJ,IAAK,iBACL,IAAK,gBACL,IAAK,eACD,MACJ,IAAK,YACD14H,KAAK01H,QAAU11H,KAAK01H,OAAO3tG,OAAO82B,EAAKj9C,KAAMi9C,EAAKh9C,OAClD,MACJ,IAAK,WACG7B,KAAKu1H,OACLv1H,KAAK04H,gCAET,MACJ,QACI14H,KAAKC,SAAS4+C,KAG1B,gCACI7+C,KAAK+nB,OAAO,SAAS7mB,QAAQ6F,GAAQ6sH,GAAmC5zH,KAAKu1H,MAAOxuH,KAExF4xH,KAAM,WACF34H,KAAK+nB,OAAO,UAAU,IAE1B6wG,MAAO,WACH54H,KAAK+nB,OAAO,UAAU,MAE3Bk3E,QAAQ,SACX,eAAkB,iBAAkBo2B,IACrB,UCxaXwD,GAAuB,qBACvBC,GAAyC,4BACzCC,GAA0B,GAC9B,MAAM,GACF,YAAYtvE,GACRzpD,KAAKg5H,SAAWvvE,EAEpB,SACI,GAAKzpD,KAAKi5H,uBAAV,CAGAj5H,KAAKk5H,6BACL,IAAIC,EAAQ,eAAE,SAAS5xG,SAASvnB,KAAKo5H,0BACrCp5H,KAAKq5H,cAAgBr5H,KAAKg5H,SAAS5wG,iBAAiB+wG,EAAO,GAAcn5H,KAAKs5H,wBAC9Et5H,KAAKu5H,mBAET,kBACSv5H,KAAKq5H,eACNr5H,KAAKmE,SAETnE,KAAKq5H,eAAiBr5H,KAAKq5H,cAActxG,OAAO,QAAS/nB,KAAKw5H,iBAC1Dx5H,KAAKq5H,gBAAkBr5H,KAAKq5H,cAActxG,OAAO,SAASnuB,QAC1DoG,KAAKq5H,cAAcT,QAG3B,6BACI,IAAIa,EAAgBz5H,KAAKg5H,SAASU,eAClC15H,KAAK25H,sBAAwB,eAAE,SAASpyG,SAASkyG,GAAenyG,SAAStnB,KAAKg5H,SAASY,gBAAgBtyG,SAASwxG,IAEpH,uBACI,OAAO94H,KAAKg5H,SAASa,qBAAqB,oBAE9C,uBACI,IAAIC,EAAkB95H,KAAKg5H,SAASz3D,sBAAsB,eACtDw4D,EAAqB,EAAIhB,GAC7B,MAAO,CACHh1E,SAAU/jD,KAAKg5H,SAASjxG,OAAO,YAC/B4tG,aAAc31H,KAAKg6H,qBAAqBxvG,KAAKxqB,MAC7C2/E,YAAa,SAAS/7E,GAClBk2H,EAAgBl2H,IAClB4mB,KAAKxqB,MACPszD,gBAAgB,EAChBnrC,UAAWnoB,KAAKg5H,SAASjxG,OAAO,iBAChC8sG,eAAgB,YAAchc,GAAA,KAAQiK,UAAUrgF,SAAW,aAAWw3F,qBAAqB1nB,aAAewnB,OAAqB,EAC/H3D,WAAY,GACZpvE,gBAAiB95C,IACb,IACItL,KAAMA,EACNC,MAAOA,GACPqL,EACA,WAAatL,GACb5B,KAAKg5H,SAASjxG,OAAO,sBAAuBlmB,GAE5C,UAAYD,GACZ5B,KAAKk6H,sBAAsBr4H,IAGnCo0H,cAAe,CACXv6D,GAAI,eACJE,GAAI,cAIhB,sBAAsB6sD,GAClB,IAAI//F,EAAQ+/F,GAAazoH,KAAKw5H,gBAC1BW,EAAgBzxG,EAAM9uB,QAAUoG,KAAKi5H,qBAAqBvwG,GAC9D1oB,KAAKw3H,sBAAsB2C,GAE/B,gBACI,OAAOn6H,KAAKg5H,SAASQ,gBAEzB,qBAAqB9wG,GACjB,IAAI+/F,EAAY//F,GAAS1oB,KAAKg5H,SAASjxG,OAAO,SAC1C9oB,GAAS,EACT0pF,EAAe,gBAAc,WAC7ByxC,EAAiB,gBAAc,gBAYnC,OAXA,eAAK3R,GAAW,SAAUrnH,EAAO2F,GAC7B,IAAIszH,EAAc1xC,EAAa5hF,EAAM,CACjC6hF,eAAe,IAEf0xC,EAAeF,EAAerzH,EAAM,CACpC6hF,eAAe,MAEf,IAAUyxC,GAAgB,SAAWC,GAAgB,WAAaA,IAAiB,SAAWvzH,EAAKuzD,WACnGr7D,GAAS,MAGVA,EAEX,sBAAsB4C,GACb7B,KAAKo5H,0BAGVp5H,KAAKo5H,yBAAyBv1D,YAAYg1D,IAAuBh3H,GAErE,yBACI,OAAO7B,KAAK25H,sBAEhB,aAAa/3H,EAAMC,GACf7B,KAAKq5H,eAAiBr5H,KAAKq5H,cAActxG,OAAOnmB,EAAMC,GAE1D,WAAWkF,EAAMqxH,EAAUv2H,GAEnB,IAAI04H,EADJ,aAAenC,GAAY,qBAAuBA,EAElD,QAAUmC,EAAsBv6H,KAAKq5H,qBAAkB,IAAWkB,GAA+BA,EAAoBpC,mBAAmBpxH,EAAMqxH,EAAUv2H,GAExJ7B,KAAKu5H,mBAIF,U,aCjGXiB,GAA+B,4BAC/BC,GAA+B,4BAC/BC,GAAsB,4BACtBC,GAAU,QAAYt7D,QAAQ,CAC9Bu2C,mBAAoB,WAChB,OAAO,OAAAn7G,EAAA,WAAOuF,KAAKC,WAAY,CAC3Bs6D,iBAAkB,WAClBqgE,mBAAe,EACfC,qBAAqB,KAG7B5K,iBAAkB,WACdjwH,KAAK86H,qBAETA,kBAAmB,SAASC,GACpB,WAAaA,IAGjB/6H,KAAKC,WACLD,KAAKg7H,MAAMzB,oBAEf1C,eAAgB,WACZ72H,KAAKC,WACLD,KAAK82H,iBAAiBC,oBAAoB,CACtCkE,gBAAiB,IAAI,QAAqB,WAGlD3iB,YAAa,WACTt4G,KAAKC,WACLD,KAAK04H,gCACL14H,KAAKk7H,eAETC,wBAAyB,WACrBn7H,KAAKo7H,qBACLp7H,KAAKg7H,MAAMd,wBACXl6H,KAAKC,WACL,eAAY,KACRD,KAAKg7H,MAAMzB,qBAGnBve,YAAa,SAAS55G,EAAO2F,EAAMosH,EAAeC,GAC9C,IAAIrZ,EAAc/5G,KAAKC,SAASmB,EAAO2F,EAAMosH,EAAeC,GAO5D,MANI,SAAWrsH,EAAKszD,cAChB0/C,EAAYzyF,SAASkzG,IAErB,aAAezzH,EAAK0zD,QAAU,WAAa1zD,EAAKyzD,UAChDu/C,EAAYl2C,YAAY42D,IAErB1gB,GAEXshB,eAAgB,WACZ,OAAOr7H,KAAKs7H,sBAAsB,CAACt7H,KAAKu7H,gBAAiBv7H,KAAKw7H,gBAAiBx7H,KAAK05H,kBAExF0B,mBAAoB,SAASK,GACzB,IAAIC,EAAgB17H,KAAKgmB,WAAWiB,KAAK,IAAMuzG,IAC/C,GAAKkB,EAAc9hI,OAAnB,CAGA6hI,EAAeA,GAAgB,eAASz7H,KAAKgmB,YAC7C,eAAE01G,GAAel0G,YAAYkzG,IAC7B,IAAIiB,EAAa37H,KAAKq7H,iBACtB,MAAOK,EAAc9hI,QAAU6hI,EAAeE,EAAY,CACtD,IAAIxwB,EAAQuwB,EAAclwG,IAAI,GAC9BmwG,GAAc,eAAcxwB,GAC5BA,EAAM7jF,SAASozG,IACfgB,EAAcnoD,QAAQ,EAAG,MAGjCimD,cAAe,WACX,IAAI71H,EAAO3D,KACPyoH,EAAY,eAAKzoH,KAAK+nB,OAAO,UAAY,IAAI,SAAUhhB,GACvD,OAAOpD,EAAKi4H,YAAY70H,MAExB80H,EAAe77H,KAAKm2G,iBAAiB9uC,SAAS,IAAMmzD,GAA+B,IAAME,IAAqB3qD,IAAI,uBACtH/vE,KAAK87H,cAAgB97H,KAAK87H,eAAiB,GAC3C,IAAIJ,EAAgB,GAAGr4G,MAAMmC,KAAKq2G,GAAc//H,IAAIiL,IAChD,IAAI+4E,EAAWn8E,EAAKi6G,aAAa72G,GAC7BiwG,EAAiB,eAAEjwG,GACnBg1H,EAAc/kB,EAAe3vC,WACjC,OAAO,OAAA5sE,EAAA,WAAO,CACV8/D,iBAAkB,WACd52D,EAAKm4H,cAAc74H,KAAK,CACpBklB,UAAW6uF,EACXjwG,KAAMg1H,IAEV,IAAIj3G,EAAa,eAAE,SAASwC,SAASkzG,IACrC,OAAO11G,EAAW8kB,OAAOmyF,KAE9Bj8C,KAEP,MAAO,IAAI47C,KAAkBjT,IAEjCuT,iBAAkB,WACd,IAAIr4H,EAAO3D,KACX,OAAO,eAAKA,KAAK+nB,OAAO,UAAY,IAAI,SAAUhhB,GAC9C,OAAQpD,EAAKi4H,YAAY70H,OAGjCm0H,YAAa,WACTl7H,KAAKi8H,sBACL,eAAY,KACRj8H,KAAKg7H,MAAM72H,YAGnB83H,oBAAqB,WACZj8H,KAAKg7H,QACNh7H,KAAKg7H,MAAQ,IAAI,GAAoBh7H,QAG7Ck8H,cAAe,WACX,IAAIl8H,KAAKgmB,WAAWp4B,GAAG,WAAvB,CAGAoS,KAAKw7H,gBAAgB/vG,IAAI,CACrB0wG,OAAQ,SACRC,MAAO,SAEX,eAAKp8H,KAAK87H,eAAiB,IAAI,SAAU/8H,EAAGs9H,GACxC,eAAEA,EAAIl0G,WAAWyhB,OAAOyyF,EAAIt1H,SAEhC/G,KAAK87H,cAAgB,GACrB,IAAIL,EAAe,eAASz7H,KAAKgmB,YACjChmB,KAAKo7H,mBAAmBK,GACxBz7H,KAAKC,SAASw7H,KAElBtD,mBAAoB,SAASpxH,EAAMqxH,EAAUv2H,GACrC7B,KAAK47H,YAAY70H,GACjB/G,KAAKg7H,MAAMsB,WAAWv1H,EAAMqxH,EAAUv2H,GAC/B7B,KAAKu8H,eAAex1H,GAC3B/G,KAAKC,SAAS8G,EAAMqxH,EAAUv2H,IAE9B7B,KAAKC,SAAS8G,EAAMqxH,EAAUv2H,GAC9B7B,KAAKg7H,MAAMzB,mBAEX,aAAenB,GAAY,qBAAuBA,GAClDxE,GAAmC5zH,KAAM+G,GAEzC,aAAeqxH,GACfp4H,KAAKw8H,WAGb,gCACIx8H,KAAKg8H,mBAAmB96H,QAAQ6F,GAAQ6sH,GAAmC5zH,KAAM+G,KAErF60H,YAAa,SAAS97C,GAClB,MAAO,SAAWA,EAASxlB,UAAY,WAAawlB,EAASzlB,cAEjEkiE,eAAgB,SAASz8C,GACrB,YAAO,IAAWA,EAASxlB,UAAY,UAAYwlB,EAASzlB,cAEhE8iD,eAAgB,SAASt+D,GACrB,IACIj9C,KAAMA,EACNC,MAAOA,GACPg9C,EACJ,OAAQj9C,GACJ,IAAK,mBACD5B,KAAKy8H,kBAAkB,eAAgBz8H,KAAK2jE,aAAa9hE,IACzD,MACJ,IAAK,cACD7B,KAAKy8H,kBAAkB76H,EAAMC,GAC7B7B,KAAKC,SAASnB,MAAMkB,KAAME,WAC1B,MACJ,IAAK,gBACDF,KAAKy8H,kBAAkB,YAAa56H,GACpC,MACJ,IAAK,sBACD7B,KAAKy8H,kBAAkB,SAAU56H,GACjC,MACJ,IAAK,WACD7B,KAAKy8H,kBAAkB,WAAY56H,GACnC7B,KAAKC,SAASnB,MAAMkB,KAAME,WAC1BF,KAAK04H,gCACL,MACJ,QACI14H,KAAKC,SAASnB,MAAMkB,KAAME,aAGtCu8H,kBAAmB,SAAS76H,EAAMC,GAC9B7B,KAAKg7H,MAAM0B,aAAa96H,EAAMC,MAGtC,eAAkB,YAAa84H,IAChB,UC1LXgC,GAAqB,eACrBC,GAAuB,iBACvBC,GAAqB,eACrBC,GAA6B,CAAC,eAAgB,oBAAqB,sBAAuB,eAAgB,aAAc,eAAgB,aAAc,eACtJC,GAAc/xD,GAAY3L,QAAQ,CAClC28D,iBAAkB,WACd,MAAO,IAEXgB,oBAAqB,WACjB,OAAO,eAAE,SAAS11G,SAAStnB,KAAK+mB,gBAAgB61G,MAEpDK,uBAAwB,SAASC,GAC7B,IAAIC,EAAcD,EAAgB,IAAMA,EAAgB,GACxD,OAAOl9H,KAAK+mB,gBAAgB61G,IAAwBO,GAExDC,mBAAoB,WAChB,IAAIC,EAAqBr9H,KAAK+nB,OAAO,WACjC/W,EAAU,CACVssH,eAAgB,CACZ50G,MAAO1oB,KAAKg8H,mBACZryE,QAAS,OAAS0zE,QAAsB,IAAWA,OAAqB,EAASA,EAAmB1zE,QACpG5F,SAAU,OAASs5E,QAAsB,IAAWA,OAAqB,EAASA,EAAmBt5E,SACrGoyE,eAAgB,SAASvyH,GACrB,IAAI25H,EAAuB35H,EAAEk8E,SAASq2C,eAClCoH,GACAA,EAAqB35H,MAKjC45H,EAAY,OAASH,QAAsB,IAAWA,OAAqB,EAASA,EAAmB30G,MAG3G,GAFA1X,EAAQssH,eAAe50G,MAAQ1oB,KAAKy9H,uBAAuBzsH,EAAQssH,eAAe50G,MAAO80G,GACzFx9H,KAAKwhE,cAAc,qBAAsBxwD,GACrCA,EAAQssH,iBAAmB,eAAUtsH,EAAQssH,eAAe3zE,SAAU,CACtE,IAAIoL,EAAe/jD,EAAQssH,eAAe50G,MAC1C1X,EAAQssH,eAAe3zE,UAAa,OAASoL,QAAgB,IAAWA,IAAgBA,EAAan7D,QAEzG,OAAOoX,EAAQssH,gBAEnB,uBAAuBI,EAAcF,GACjCE,EAAax8H,QAAQ6sD,IACjB,IAAK+uE,GAA2B95H,SAAS+qD,EAAOnsD,MAC5C,MAAM,IAAI85B,MAAM,yBAAyB7pB,OAAOk8C,EAAOnsD,KAAM,mDAGrE,IAAI+7H,EAAe,CACfrjE,SAAU,SAEV/zC,EAAU1nB,MAAM0nB,QAAQi3G,GAC5B,IAAK,eAAUA,GACX,OAAOE,EAENn3G,IACDi3G,EAAY,CAACA,IAEjB,IAAII,EAAwB,GAC5BF,EAAax8H,QAAQ6sD,IACjB6vE,EAAsB7vE,EAAOnsD,MAAQmsD,IAEzC,IAAI8vE,EAAkBL,EAAU1hI,IAAIiyD,IAC5B,eAASA,KACTA,EAAS,CACLnsD,KAAMmsD,IAGV,eAAUA,EAAOnsD,QACb,eAAUg8H,EAAsB7vE,EAAOnsD,OACvCmsD,EAAS,OAAAtzD,EAAA,YAAO,EAAM,GAAImjI,EAAsB7vE,EAAOnsD,MAAOmsD,GACvD+uE,GAA2B95H,SAAS+qD,EAAOnsD,QAClDmsD,EAAS,eAAS,GAAIA,EAAQ,CAC1BpE,SAAS,MAId,OAAAlvD,EAAA,YAAO,EAAM,GAAIkjI,EAAc5vE,KAE1C,OAAOxnC,EAAUs3G,EAAkBA,EAAgB,IAEvD96D,YAAa,WACT,GAAK/iE,KAAKg5H,SAONh5H,KAAKg5H,SAASjxG,OAAO/nB,KAAK89H,qBAPV,CAChB,IAAIC,EAAe/9H,KAAK6mB,UACxBk3G,EAAaz2G,SAAStnB,KAAK+mB,gBAAgB41G,KAC3C,IAAIlkE,EAAQ,OAAoBp/D,OAAO2G,KAAK+M,UAAU80D,KAAOg7D,IACzDmB,EAAW,eAAE,SAASh9D,KAAK,aAAcvI,GAAOlxC,SAASw2G,GAC7D/9H,KAAKg5H,SAAWh5H,KAAKooB,iBAAiB41G,EAAU,GAASh+H,KAAK89H,mBAKtEpqD,qBAAsB,OACtBgB,mBAAoB,WACZ10E,KAAKwiE,eACLxiE,KAAKmE,UAGb47D,KAAM,WACF//D,KAAKC,WACLD,KAAKygE,aAAa,qBAAsB,CACpC0T,kBAAmB,CAAC,WAAY,eAGxChwE,OAAQ,WACJnE,KAAK89H,gBAAkB99H,KAAKo9H,qBAC5Bp9H,KAAKC,SAASnB,MAAMkB,KAAME,YAE9B+9H,uBAAwB,SAASr8H,EAAM+6F,GACnC,IAAIuhC,EAAkBl+H,KAAKg5H,SAC3B,GAAIkF,EAAiB,CACjB,IAAIx1G,EAAQw1G,EAAgBn2G,OAAO,UAAY,GAC3C0rF,EAAY/qF,EAAMpqB,QAAQoqB,EAAMtqB,QAAO,SAAU2I,GACjD,OAAOA,EAAKnF,OAASA,KACrB,IACJ,GAAI6xG,GAAa,EAAG,CAChB,IAAI0qB,EAAmB,SAAW1qB,EAAY,IAC1CyqB,EAAgBn2G,OAAOo2G,EAAmB,YAC1CD,EAAgBn2G,OAAOo2G,EAAmB,oBAAqBxhC,GAE/DuhC,EAAgBn2G,OAAOo2G,EAAmB,YAAaxhC,MAKvEyhC,wBAAyB,WACrB,IAAIC,EACJ,QAAUA,EAAiBr+H,KAAKg5H,gBAAa,IAAWqF,GAA0BA,EAAepO,oBAErGqO,eAAgB,WACZ,OAAOt+H,KAAK6mB,WAEhB24D,UAAW,WACP,OAAOx/E,KAAKqjE,oBAEhB7C,cAAe,SAAS3hB,GAKpB,GAJI,uBAAyBA,EAAKj9C,OAC9B5B,KAAK4iE,cACL/jB,EAAK6hB,SAAU,GAEf,YAAc7hB,EAAKj9C,OACnBi9C,EAAK6hB,SAAU,EACX1gE,KAAKg5H,UAAU,CACf,IAAI76H,EAAQ,gBAAa0gD,EAAK4sC,UAC1BphC,EAAaxL,EAAK4sC,SAAStwF,QAAQ,aAAc,IACrD,GAAI,IAAMgD,EAAMvE,OAAQ,CACpB,IAAI0jI,EAAiBt9H,KAAKo9H,qBAC1Bp9H,KAAKg5H,SAASjxG,OAAOu1G,QAClB,GAAI,UAAYn/H,EAAM,GACzB,GAAI,IAAMA,EAAMvE,OAAQ,CACpB,IAAIkkI,EAAkB99H,KAAKo9H,qBAC3Bp9H,KAAKg5H,SAASjxG,OAAO,QAAS+1G,EAAgBp1G,YAC3C,GAAI,IAAMvqB,EAAMvE,OAAQ,CAC3B,IAAI2kI,EAAiBv+H,KAAKy9H,uBAAuBz9H,KAAKg8H,mBAAoBn9E,EAAKh9C,OAC/E7B,KAAKg5H,SAASjxG,OAAOsiC,EAAYk0E,QAC1BpgI,EAAMvE,QAAU,GACvBoG,KAAKg5H,SAASjxG,OAAOsiC,EAAYxL,EAAKh9C,YAG1C7B,KAAKg5H,SAASjxG,OAAOsiC,EAAYxL,EAAKh9C,OAIlD7B,KAAKC,SAAS4+C,IAElB13B,UAAW,WACP,OAAOnnB,KAAK89H,iBAAmB99H,KAAK89H,gBAAgBn0E,SAExDo1B,cAAe,SAERy/C,GAAoB,CAC3B7gI,eAAgB,WACZ,MAAO,IAEXonE,MAAO,CACHwmC,YAAawxB,IAEjB93D,UAAW,CACPJ,YAAa,CACTstD,SAAU,CACN5B,sBAAuB,WACnBvwH,KAAKC,SAASnB,MAAMkB,KAAME,WAC1BF,KAAKmsB,QAAQ,eAAeiyG,+BCpMvBI,GAAkBz5D,MAAMwmC,YACjD,EAAS9lC,eAAe,cAAe+4D,ICoBvC,IAAIC,GAAwB,UACxBC,GAAuC,0JAU3C,EAASh5D,qBAAqB,CAAC,eAAgB,UAAW,YAAa,gBAAiB,gBAAiB,WAAY,UAAW,kBAAmB,mBAAoB,mBAAoB,eAAgB,aAAc,aAAc,OAAQ,mBAAoB,gBAAiB,YAAa,cAAe,eAAgB,UAAW,SAAU,OAAQ,QAAS,4BAA6B,cAAe,qBAAsB,gBAAiB,UAAW,eAAgB,SAAU,aAC9d,IAAIi5D,GAAW,OAAOt/D,QAAQ,CAC1Bs3C,iBAAkB8nB,GAClB7oB,mBAAoB,WAChB,IAAI32G,EAASe,KAAKC,WAMlB,OALA,eAAK,EAASokE,SAAS,WACf,eAAWrkE,KAAKrC,iBAChB,OAAAlD,EAAA,YAAO,EAAMwE,EAAQe,KAAKrC,qBAG3BsB,GAEX2gH,sBAAuB,WACnB5/G,KAAKC,WACL,OAAAxF,EAAA,WAAOuF,KAAK6/G,mBAAoB,CAC5Bx0C,YAAa,CACTy0C,MAAO,OACPC,MAAO,8BAEXt3D,YAAa,CACTq3D,MAAO,OACP53F,QAAS,+CAIrBw3F,qBAAsB,WAClB,OAAO1/G,KAAKC,WAAW4R,OAAO,CAAC,CAC3B8tG,OAAQ,CACJl9E,SAAU,OAEdzxB,QAAS,CACLk4C,cAAc,IAEnB,CACCy2D,OAAQ,WACJ,OAAO,kBAEX3uG,QAAS,CACLk4C,cAAc,EACdD,iBAAiB,EACjB/zB,aAAc,CACVxjB,OAAQ,KAEZsyC,QAAS,CACL2M,UAAU,GAEd9H,UAAW,CACPgV,mBAAoB,YAG7B,CACC8hD,OAAQ,WACJ,OAAOlxF,EAAA,KAAQqjF,QAEnB9gG,QAAS,CACLguF,eAAgB,GAChB35C,UAAW,CACP6N,UAAW,CACPzI,KAAM,CACFwP,OAAQ,2BACRD,SAAU,IACVj1B,KAAM,CACF2zB,QAAS,GAEbhgE,GAAI,CACAggE,QAAS,QAM9B,CACCinD,OAAQ,SAASif,GACb,MAAO,YAAcA,EAAQ7lB,YAEjC/nG,QAAS,CACL8zC,SAAU,CACNiU,WAAY,iBAK5B69C,MAAO,WACH52G,KAAKC,WACL,EAASkkE,eAAenkE,KAAM,GAC9B,EAASwlE,sBAAsBxlE,KAAM,SAEzCo2G,OAAQ,OACR+G,eAAgB,SAASt+D,GACrB,EAAS2mB,sBAAsBxlE,KAAM,gBAAiB,CAAC6+C,IAClDA,EAAK6hB,SACN1gE,KAAKC,SAAS4+C,IAGtBi8E,kBAAmB,WACf96H,KAAKiwH,kBAAiB,IAE1Bxf,mBAAoB,SAAS9mD,GACrBA,GACA3pD,KAAKiwH,oBAGb3X,YAAa,WACTt4G,KAAKC,SAASnB,MAAMkB,KAAME,WAC1BF,KAAKmsB,QAAQ,YAAYhoB,OAAOnE,KAAKgmB,aAEzC6gG,mBAAoB,WAChB7mH,KAAKmsB,QAAQ,YAAYqnD,UAE7B06B,eAAgB,WACZ,IAAIvqG,EAAO3D,KACX,gBAAY,WACR2D,EAAKkjH,yBAGbljD,aAAc,SAASk7D,GACnB,IAAI1zE,EAAW0zE,EAKf,OAJI,eAAS1zE,IAAa,MAAQA,EAAS,KACvCA,EAAW,eAAE0zE,GACb,OAAO5mG,KAAKymG,KAET1+H,KAAKC,SAASkrD,IAEzB2zE,SAAU,WACN9+H,KAAKC,WACL,EAASulE,sBAAsBxlE,KAAM,YAEzCuiE,QAAS,WACL,OAAOviE,KAAKihE,cAAc,QAAQsB,WAEtCtC,YAAa,WACTjgE,KAAKC,WACL,EAASulE,sBAAsBxlE,KAAM,gBAEzCkgE,UAAW,WACP,EAASsF,sBAAsBxlE,KAAM,aACrCA,KAAKC,YAETghE,cAAe,SAASr/D,GACpB,OAAO5B,KAAKkhE,aAAat/D,IAE7BuqB,QAAS,SAASvqB,GACd,OAAO5B,KAAKmiE,OAAOvgE,IAEvBoR,MAAO,SAAS6T,GACZ7mB,KAAKihE,cAAc,sBAAsBjuD,MAAM6T,MAGvD83G,GAASl5D,eAAiB,EAASA,eAAej7C,KAAK,GACvD,eAAkB,aAAcm0G,IACjB,U,aCnKXI,GAAa,+DACb,GAAa,SAASC,EAAWpvF,GAC5BA,GAGL,eAAKA,GAAO,SAAU90C,EAAK+G,GACvB,GAAI,eAAcA,IAAUhD,MAAM0nB,QAAQ1kB,GACtCm9H,EAAWn9H,QACR,GAAI,kBAAoBA,EAAO,CAClC,IAAIvI,EAAOylI,GAAWplG,KAAK93B,GACvBvI,IACAs2C,EAAM90C,GAAO,IAAIf,KAAKA,KAAKC,KAAKV,EAAK,IAAKA,EAAK,GAAK,GAAIA,EAAK,IAAKA,EAAK,IAAKA,EAAK,IAAKA,EAAK,WAKhG2lI,GAAyB,EAAQ/8D,eAAe7C,QAAQ,WAC/D,IAAI6/D,EAAa,SAASluH,GACtB,IAAImuH,EAAU,mBAAqBnuH,EAAQvS,KAAO,kBAAmB,iBAAYgN,aACjF,IAAK0zH,EACD,MAAM,IAAIzjG,MAAM,SAEpB,OAAOyjG,GAEPC,EAAsB,SAASpuH,GAC/B,OAAO,eAAUA,EAAQstD,YAActtD,EAAQstD,WAAa,WAEhE,MAAO,CACH+gE,WAAY,WACR,IAAIruH,EAAUhR,KAAK+nB,OAAO,gBAC1B,GAAI,WAAa/W,EAAQvS,KACrB,OAAOuS,EAAQmtD,YAAcntD,EAAQmtD,aAEzC,IACI,OAAOpjE,KAAKoF,MAAM++H,EAAWluH,GAAStF,QAAQ0zH,EAAoBpuH,KACpE,MAAOpN,GACL,OAAOE,IAAIF,EAAEskB,WAGrBo3G,WAAY,SAAS1vF,GACjB,IAAI5+B,EAAUhR,KAAK+nB,OAAO,gBAC1B,GAAI,WAAa/W,EAAQvS,KAIzB,IACIygI,EAAWluH,GAASuuH,QAAQH,EAAoBpuH,GAAUjW,KAAKC,UAAU40C,IAC3E,MAAOhsC,GACL,OAAOE,IAAIF,EAAEskB,cANblX,EAAQotD,YAAcptD,EAAQotD,WAAWxuB,IASjDowB,cAAe,WACX,MAAO,CAAC,UAEZw/D,UAAW,WACP,OAAOx/H,KAAK+nB,OAAO,yBAEvBg4C,KAAM,WACF,IAAIp8D,EAAO3D,KAUX,OATA2D,EAAK87H,OAAS,GACd97H,EAAK+7H,WAAY,EACjB/7H,EAAKm8F,YAAa,EAClBn8F,EAAKg8H,qBAAuB,gBACpB,IAAWh8H,EAAKi8H,kBAChBj8H,EAAK27H,WAAW37H,EAAKisC,UAG7B,OAAavqC,GAAG,iBAAa,SAAU1B,EAAKg8H,sBACrCh8H,GAEX65E,SAAU,WACN,OAAOx9E,KAAK0/H,WAEhBh6H,UAAW,WACP,OAAO1F,KAAK8/F,YAEhBxwE,KAAM,WACFtvB,KAAK8/F,YAAa,EAClB,IAAIvB,EAAa,yBAAYv+F,KAAKq/H,cASlC,OARA9gC,EAAWzM,OAAO,KACd9xF,KAAK0/H,WAAY,EACjB1/H,KAAK8/F,YAAa,IACnB3yE,KAAKyiB,IACA,OAASA,GAAU,eAAcA,IACjC5vC,KAAK4vC,MAAMA,KAGZ2uD,GAEX3uD,MAAO,SAAS6vF,GACZ,IAAI97H,EAAO3D,KACX,IAAKE,UAAUtG,OACX,OAAO,OAAAa,EAAA,YAAO,EAAM,GAAIkJ,EAAK87H,QAE7B97H,EAAK87H,OAAS,OAAAhlI,EAAA,WAAO,GAAIglI,GACzB,GAAW97H,EAAK87H,SAGxBI,KAAM,WACF,IAAIl8H,EAAO3D,KACXypE,aAAa9lE,EAAKi8H,kBAClBj8H,EAAKi8H,iBAAmB3sH,YAAW,WAC/BtP,EAAK27H,WAAW37H,EAAKisC,SACrBjsC,EAAKi8H,sBAAmB,IACxBj8H,EAAKokB,OAAO,gCAEpBy4C,cAAe,SAAS3hB,GACpB,OAAQA,EAAKj9C,MACT,IAAK,eACG5B,KAAKw/H,cAAgBx/H,KAAK0F,aAC1B1F,KAAKsvB,OAETuvB,EAAK6hB,SAAU,EACf,MACJ,QACI1gE,KAAKC,SAAS4+C,KAG1B4iB,QAAS,WACLgI,aAAazpE,KAAK4/H,kBAClB,OAAar/D,IAAI,iBAAa,SAAUvgE,KAAK2/H,wBAxGU,ICvB/DG,GAAen8H,IACf,IAAIo8H,EAAYp8H,EAAKwoB,QAAQ,aACzB8lE,EAAiBtuF,EAAKs9D,cAAc,QACpCrxB,EAAQ,CACRqrB,iBAAkB8kE,EAAYA,EAAUC,oBAAiB,EACzD17E,YAAa,CACTwR,cAAenyD,EAAKokB,OAAO,8BAE/BvB,YAAa7iB,EAAKokB,OAAO,eACzB68B,cAAejhD,EAAKokB,OAAO,qBAAuBpkB,EAAKokB,OAAO,sBAAmB,GAErF,OAAO,OAAAttB,EAAA,WAAOm1C,EAAOqiD,EAAexF,iBAEpCwzC,GAAmBt8H,IACnB,IAAIgjE,EAAoBhjE,EAAKs9D,cAAc,WACvCi/D,EAAsBv8H,EAAKs9D,cAAc,aACzCk/D,EAAmBx8H,EAAKs9D,cAAc,UACtCgxB,EAAiBtuF,EAAKs9D,cAAc,QACpC0F,GACAA,EAAkB4N,eAAeC,KAAI,WACjC7wE,EAAKy8H,YAAY,CACb9yG,QAASq5C,EAAkB8lB,oBAInCyzC,GACAA,EAAoBG,iBAAiB7rD,KAAI,SAAU5wE,GAC/CD,EAAKy8H,YAAY,CACbx3E,gBAAiBhlD,EAAEglD,gBACnBE,gBAAiBllD,EAAEklD,qBAI3BmpC,IACAtuF,EAAK28H,iBAAmB38H,EAAKokB,OAAO,mBACpCpkB,EAAK48H,oBAAsB58H,EAAKokB,OAAO,eACvCkqE,EAAexd,QAAQD,KAAI,WACvB,IAAI5kC,EAAQkwF,GAAan8H,GACzBA,EAAKy8H,YAAYxwF,OAGrBuwF,GACAA,EAAiBK,qBAAqBhsD,KAAI,WACtC7wE,EAAKy8H,YAAY,CACbK,oBAAqBN,EAAiBO,sBAKlDC,GAAuB,KACvB,GAAiB,CAACh9H,EAAMisC,KACxB,IAAIgxF,EAAuBj9H,EAAKs9D,cAAc,cAC1C0F,EAAoBhjE,EAAKs9D,cAAc,WACvC4/D,EAAiBjxF,EAAMtiB,cAAW,IAAWsiB,EAAMppB,YACvD,OAAIo6G,EACIC,EACOjxF,EAAMppB,aAAeo6G,EAAqBE,0BAA0BlxF,EAAMtiB,SAE1E3pB,EAAK48H,qBAAuBK,EAAqBE,0BAA0Bn6D,EAAkBc,cAGrGk5D,IAEAI,GAAqB,CAC5BpjI,eAAgB,WACZ,MAAO,CACH0rD,aAAc,CACVrhC,SAAS,EACTs2C,WAAY,KACZ7/D,KAAM,eACN0/D,WAAY,KACZC,WAAY,KACZC,cAAe,OAI3BwG,YAAa,CACTxb,aAAc41E,IAElBh6D,UAAW,CACPF,MAAO,CACH74C,SAAU,CACN6zC,KAAM,WACF,IAAIp8D,EAAO3D,KACPiyF,EAAiBtuF,EAAKs9D,cAAc,QACxCt9D,EAAK1D,WACLgyF,EAAe+uC,YAAYxsD,KAAI,WAC3B,GAAIyd,EAAezU,aAAeyU,EAAe2O,gBAAiB,CAC9Dj9F,EAAKyuG,YAAW,GAChBzuG,EAAKijB,mBACL,IAAIk1D,EAAoBn4E,EAAKoJ,UAAUof,QAAQ,qBAC/C2vD,GAAqBA,EAAkB33E,SACvCR,EAAKoJ,UAAUo/G,iCAMnCtnD,YAAa,CACTxb,aAAc,CACV0W,KAAM,WACF//D,KAAKC,SAASnB,MAAMkB,KAAME,WAC1B+/H,GAAiBjgI,OAErB0F,UAAW,WACP,OAAO1F,KAAKC,YAAcD,KAAKihE,cAAc,QAAQggE,kBAEzDrxF,MAAO,SAAS6vF,GACZ,IAAIxgI,EAASe,KAAKC,SAASnB,MAAMkB,KAAME,WAIvC,YAHI,IAAWu/H,GACXz/H,KAAKkhI,WAAW,OAAAzmI,EAAA,YAAO,EAAM,GAAIglI,IAE9BxgI,GAEXmhI,YAAa,SAASxwF,GAClB,GAAI5vC,KAAKw/H,YAAa,CAClB,IAAI2B,EAAWnhI,KAAK4vC,QAChBwxF,EAAW,OAAA3mI,EAAA,WAAO,GAAI0mI,EAAUvxF,GAChCyxF,EAAe,eAAWF,GAC1BG,EAAe,eAAWF,GACzB,eAAaC,EAAcC,KAC5B1xF,EAAQ,OAAAn1C,EAAA,YAAO,EAAM,GAAIm1C,GACzB,OAAAn1C,EAAA,WAAOuF,KAAKy/H,OAAQ7vF,GACpB5vC,KAAK6/H,aAGT,OAAAplI,EAAA,WAAOuF,KAAKy/H,OAAQ7vF,IAG5BsxF,WAAY,SAAStxF,GACjB,IAAIqrB,EAAmBrrB,EAAMqrB,iBACzB4uC,EAAaj6D,EAAMi6D,WACnBjhD,EAAkBhZ,EAAMgZ,gBACxBE,EAAkBlZ,EAAMkZ,gBACxBq3E,EAAmBngI,KAAKihE,cAAc,UACtC0F,EAAoB3mE,KAAKihE,cAAc,WACvCgxB,EAAiBjyF,KAAKihE,cAAc,QACpCmhC,EAAgBpiG,KAAK+nB,OAAO,kBAC5Bw5G,EAAyB,YAAcn/B,GAAiB,aAAeA,EACvE9mC,GAAuB,IAASt7D,KAAK+nB,OAAO,kBAAoB/nB,KAAK+nB,OAAO,8BAChF/nB,KAAK+M,UAAUkzD,cACX0G,GACAA,EAAkB2sB,aAAa1jD,EAAMtiB,SAErC6yG,GACAA,EAAiBO,cAAc9wF,EAAM6wF,qBAEpCzgI,KAAK+nB,OAAO,uBACb/nB,KAAK+nB,OAAO,kBAAmB6gC,GAAmB,IAEtD5oD,KAAK+nB,OAAO,kBAAmB+gC,GAC3BmS,GAAoB,SAAWj7D,KAAK+nB,OAAO,4BAC3C/nB,KAAK+nB,OAAO,SAASkzC,iBAAmBA,GAExCj7D,KAAK+nB,OAAO,uBACZ/nB,KAAK+nB,OAAO,mBAAoB,GAChC/nB,KAAK+nB,OAAO,gBAAiB6nB,EAAMgV,eAAiB,OAExD5kD,KAAK+M,UAAUmzD,YACflgE,KAAK+nB,OAAO,mBAAoB8hF,GAAc,IAC9C7pG,KAAK+nB,OAAO,cAAe,GAAe/nB,KAAM4vC,IAChD5vC,KAAK+nB,OAAO,6BAA6B6nB,EAAM0U,aAAc1U,EAAM0U,YAAYwR,eAC/E91D,KAAK+nB,OAAO,mBAAoB6nB,EAAM2rB,WAAa,GACnDv7D,KAAK+nB,OAAO,kBAAqBw5G,IAA0BjmE,IAAyB,eAAU1rB,EAAM4rB,UAA6Bx7D,KAAKsgI,iBAAtB1wF,EAAM4rB,UACtHy2B,GAAkBA,EAAe5F,UAGzC/+D,QAAS,CACLy/D,4BAA6B,WACzB,IAAI9tF,EAASe,KAAKC,SAASnB,MAAMkB,KAAME,WACnCshI,EAAyBxhI,KAAKihE,cAAc,gBAChD,OAAOhiE,KAAYuiI,EAAuBhC,aAAegC,EAAuBhkD,cAGxFr3E,KAAM,CACFw5D,cAAe,WACX,OAAO3/D,KAAKC,WAAW4R,OAAO,CAAC,iBAEnCquF,mBAAoB,WAChB,IAAIjgG,EAAWD,KAAKC,SAChBuhI,EAAyBxhI,KAAKihE,cAAc,gBAChD,GAAIugE,EAAuBhC,cAAgBgC,EAAuBhkD,WAAY,CAC1E/T,aAAazpE,KAAKyhI,wBAClB,IAAI/jE,EAAW,IAAI,cAcnB,OAbA19D,KAAKyhI,uBAAyBxuH,WAAW,KACrCuuH,EAAuBlyG,OAAOwiE,OAAO,KACjC9xF,KAAKyhI,uBAAyB,OAC/Bt0G,KAAK,KACJltB,EAASulB,KAAKxlB,MACdA,KAAKghI,YAAYl9D,OACjBpG,EAASluC,YACVG,KAAKyS,IACJpiC,KAAKghI,YAAYl9D,OACjB9jE,KAAKi5F,iBAAiB72D,GAAS,iBAC/Bs7B,EAAS75B,aAGV65B,EAASptC,UACRtwB,KAAKihI,kBACbhhI,EAASulB,KAAKxlB,OAGtB0F,UAAW,WACP,IAAI87H,EAAyBxhI,KAAKihE,cAAc,gBAChD,OAAOjhE,KAAKC,YAAcuhI,EAAuB97H,aAErDu7H,eAAgB,WACZ,OAAO,eAAUjhI,KAAKyhI,yBAE1BjkD,SAAU,WACN,OAAOx9E,KAAKC,aAAeD,KAAKihI,kBAEpCx/D,QAAS,WACLgI,aAAazpE,KAAKyhI,wBAClBzhI,KAAKC,aAGb4oD,UAAW,CACP64E,sBAAuB,SAAS1wH,GAC5B,IAAIwwH,EAAyBxhI,KAAKihE,cAAc,gBAC5C0gE,EAAsB3hI,KAAK+nB,OAAO,sBAClCy5G,EAAuB97H,aAAei8H,GAG1C3hI,KAAKC,SAASnB,MAAMkB,KAAME,gBC5O9C,EAASulE,eAAe,eAAgBs7D,I,iBC0BpCa,GAAoB,iBACpB,GAAY,SACZC,GAAsB,eACtBC,GAAwB,qBACxBC,GAA0B,8BAC1BC,GAAuB,oBACvBC,GAA2B,wBAC3B,GAAiB,cACjBC,GAAuB,+BACvBC,GAAiB,iBACjBC,GAAiB,SAASz+H,EAAM2kH,GAChC,IAAI4X,EAAsBv8H,EAAKs9D,cAAc,aACzC/0C,EAAWvoB,EAAKwoB,QAAQ,YACxBogD,EAAO,eAAE+7C,EAAQhjG,QAAQ2H,QAAQ,IAAM,IACvC48C,EAAW39C,EAAS49C,YAAYyC,GAChC1C,EAAW,IAGX,cAAgBlmE,EAAKokB,OAAOm6G,IACxBhC,EAAoBmC,4BACpBnC,EAAoBoC,8BAEpBpC,EAAoBqC,gCAGpB,YAAc5+H,EAAKokB,OAAOm6G,KAC1BhC,EAAoBqC,+BAEpB,WAAa5+H,EAAKokB,OAAOm6G,KACzBhC,EAAoBsC,oBAAoB34D,EAAU,CAC9C44D,SAAS,OAKrBC,GAAsB,EAASzgE,WAAW5C,QAAQ,WAClD,IAAIsjE,EAAwB,CAACx6G,EAAWnX,KACpC,IAAIjE,EAAYiE,EAAQjE,UACpBmf,EAAWnf,EAAUof,QAAQ,YAC7Bpf,EAAUgb,OAAO,iBAAmBhb,EAAUgb,OAAO,wBACrD/W,EAAQnP,MAAQkL,EAAU61H,cAAc5xH,EAAQH,IAAI/V,MAExDoxB,EAAS22G,8BAA8B,eAAE16G,GAAYnX,IAErD8xH,EAA0B,CAAC36G,EAAWnX,KACtC,IAAIF,EAASE,EAAQF,OACjB8sE,EAAe,eAAEz1D,GACjB2zD,EAAoB9qE,EAAQjE,UAAUof,QAAQ,qBAClDyxD,EAAat2D,SAASs6G,IACtB9lD,EAAkBinD,yBAAyBnlD,EAAc9sE,GACzDgrE,EAAkBknD,mCAAmCplD,IAEzD,MAAO,CACH7d,KAAM,WACF,IACIrC,SAAUA,EACVE,cAAeA,EACf/hB,KAAMA,GACN77C,KAAK+nB,OAAO,cAAgB,GAC5B,aAAe/nB,KAAK+nB,OAAO,mBAAsB21C,GAAY,aAAe7hB,GAAQ,aAAe+hB,GACnG,OAAO95D,IAAI,SAEf9D,KAAKonB,gBAAkBpnB,KAAKihE,cAAc,QAC1CjhE,KAAKijI,eAAiBpnF,EACtB77C,KAAKkjI,4BAA6B,EAClCljI,KAAKmjI,WAAanjI,KAAKojI,mBACvBpjI,KAAKqjI,sBACLrjI,KAAKygE,aAAa,qBAAsB,CACpC0T,kBAAmB,CAAC,WAAY,cAEpCn0E,KAAKonB,iBAAmBpnB,KAAKonB,gBAAgBoxE,OAAOhkB,IAAIx0E,KAAK6/F,kBAAkBr1E,KAAKxqB,QAExF6/F,kBAAmB,SAAS5yF,GACxB,IAAIq2H,EAAcr2H,EAAQ7O,OAAOwyD,GAAU,WAAaA,EAAOnyD,MAAM3C,IAAI80D,GAAUA,EAAO91D,KAC1FwoI,EAAY1pI,QAAUoG,KAAKujI,aAAaD,IAE5CE,oBAAqB,WACjB,IAAIvxC,EAAiBjyF,KAAKonB,gBACtBu/C,EAAoB3mE,KAAKihE,cAAc,WACvCwiE,EAAmBzjI,KAAK+nB,OAAO,cAAgB,GAC/C21C,EAAW+lE,EAAiB/lE,SAC5B0kC,EAAgBpiG,KAAK+nB,OAAO,kBAC5B27G,EAAgB,YAActhC,GAAiB,aAAeA,EAC9D3kC,EAAiBz9D,KAAK+nB,OAAO,4BAC7B47G,EAAsB3jI,KAAK+nB,OAAO,wBACtC,MAAO,CACHgwF,aAAc/3G,KAAK+nB,OAAO,mBAC1B8zB,KAAM77C,KAAKijI,eACXvlE,SAAUA,EACVC,yBAA0B8lE,EAAiB9lE,yBAC3C7U,gBAAiB9oD,KAAK+nB,OAAO,mBAC7B67G,qBAAqB,EACrBC,iBAAkB,WACd,IAAIC,EAAkBn9D,EAAkB4e,kBAAkB3rF,OAAS,EACnE,OAAO8pI,IAAkBC,IAAwBG,GAAmBrmE,IAAmBC,GAE3F5iE,IAAK,WACD,OAAO,OAASm3F,QAAkB,IAAWA,OAAiB,EAASA,EAAen3F,OAE1F4/F,MAAO,SAAS3zF,GACZ,OAAO,OAASkrF,QAAkB,IAAWA,OAAiB,EAASA,EAAeyI,MAAM3zF,IAEhGg9H,WAAY,WACR,IAAIC,EACJ,OAAO,QAAUA,EAAwB/xC,EAAe1oE,oBAAiB,IAAWy6G,OAAwB,EAASA,EAAsB52G,UAE/IkC,KAAM,SAASte,GACX,IAAIizH,EACJ,OAAQ,QAAUA,EAAyBhyC,EAAe1oE,oBAAiB,IAAW06G,OAAyB,EAASA,EAAuB30G,KAAKte,MAAa,IAAK,eAAUwe,QAAQ,KAE5L00G,WAAY,WACR,OAAOjyC,EAAevpE,OAAM,IAEhCy7G,eAAgB,SAASp9H,GACrB,OAAOA,EAAK82G,UAEhBumB,iBAAkB,SAASr9H,GACvB,MAAO,UAAY,OAASA,QAAQ,IAAWA,OAAO,EAASA,EAAKoK,WAAapK,EAAKklB,UAE1Fo4G,YAAa,SAASt9H,GAClB,OAAQ,OAASA,QAAQ,IAAWA,OAAO,EAASA,EAAKu9H,WAAa,OAASv9H,QAAQ,IAAWA,OAAO,EAASA,EAAKZ,OAASY,GAEpI3I,OAAQ,WACJ,OAAO6zF,EAAeC,kBAAkBx0B,IAE5Ck9B,WAAY,IAAM3I,EAAe2I,aACjC2pC,eAAgB,SAASC,EAAeC,EAAkBC,GACtD,IAAIC,EAAwBC,GAExB9iI,KAAMA,EACN1D,OAAQA,GACR,QAAUumI,EAAyB,QAAUC,EAAyB3yC,EAAe1oE,oBAAiB,IAAWq7G,OAAyB,EAASA,EAAuB/yC,yBAAsB,IAAW8yC,EAAyBA,EAAyB,GAC7PE,EAAWljH,KAAKC,IAAI4iH,EAAeC,GACnCK,EAAWnjH,KAAKqQ,IAAIwyG,EAAeC,GACnC,eAAUC,KACVG,EAAWljH,KAAKC,IAAI8iH,EAAgBG,GACpCC,EAAWnjH,KAAKqQ,IAAI0yG,EAAgBI,IAExC,IAAIr1G,EAAOq1G,EAAWD,EAAW,EACjC,MAAO,CACHn1G,KAAMm1G,EACNp1G,KAAMA,EACNrxB,OAAQA,EACR0D,KAAMA,IAGdmmD,mBAAoBjoD,KAAKk9G,qBAAqB1yF,KAAKxqB,QAG3DqjI,oBAAqB,WACjB,IAAI18D,EAAoB3mE,KAAKihE,cAAc,WACvC8jE,EAAwB/kI,KAAK+kI,wBACjCp+D,EAAkBwkB,iBAAiB,CAC/B1sF,KAAM,YACNkvB,QAAS,SACTg8B,QAASo7E,EACTl3E,cAAe,EACfzpC,SAAU,UACVjd,UAAW,SACX6jD,SAAUg3E,GACVz6H,MAAO,OACPH,aAAcu7H,EACd31E,mBAAoB81E,IAExBn8D,EAAkBkQ,aAAa,iBAAkB,UAAWkuD,IAEhE3B,iBAAkB,WACd,IAAIpyH,EAAUhR,KAAKwjI,sBACnB,OAAO,IAAI,QAAUxyH,IAEzB0wH,sBAAuB,SAAS1wH,GAC5B,IAAIg0H,EAAWhlI,KAAK+nB,OAAO,sBAAwB,CAC/C+gC,gBAAiB9oD,KAAK+nB,OAAO,oBAC7B,CACA6gC,gBAAiB5oD,KAAK+nB,OAAO,oBAEjC/nB,KAAKqgI,iBAAiBv8D,KAAKkhE,GACvBh0H,GACAhR,KAAKwhE,cAAc,qBAAsBxwD,IAGjDi0H,uBAAwB,SAASj0H,GAC7B,IAAIk0H,EAAiBl0H,EAAQk0H,eACzBp8E,EAAkB93C,EAAQ83C,gBAC1BktE,EAAmBhlH,EAAQglH,iBAC3BmP,EAAkBn0H,EAAQm0H,gBAC1B,YAAcnlI,KAAK+nB,OAAOm6G,OACtBgD,EAAiBp8E,GAAmB,SAASnlD,EAAMmlD,GAC/C,IAAIs8E,EAAW,EACXn1G,EAAQtsB,EAAKyjB,gBAAgB6I,QAC7Bn1B,EAAMm1B,GAASA,EAAMn1B,MACrBuqI,EAAexmI,MAAM0nB,QAAQzrB,GACjC,IAAKguD,EAAgBlvD,OACjB,OAAO,EAEX,GAAIyrI,GAAgBxmI,MAAM0nB,QAAQuiC,EAAgB,KAAO,QAAUA,EAAgB,GAAI,CACnF,IAAK,IAAIrtD,EAAI,EAAGA,EAAIqtD,EAAgBlvD,OAAQ6B,IACxC,GAAIoD,MAAM0nB,QAAQuiC,EAAgBrtD,IAAK,CACnC,GAAIqtD,EAAgBrtD,GAAG,KAAOX,EAAIsqI,IAAa,MAAQt8E,EAAgBrtD,GAAG,GACtE,OAAO,EAEX2pI,IAGR,OAAO,EAEX,OAAOtqI,IAAQguD,EAAgB,GAnBC,CAoBlC9oD,KAAM8oD,GAAmBktE,EAAiBp8H,OAAS,GACrDoG,KAAKuiI,gCACE2C,EAAiBp8E,IAAoBA,EAAgBlvD,OAAS,IAAMo8H,EAAiBp8H,QAAUurI,EAAgBvrI,SACtHoG,KAAKsiI,gCAIjBplB,qBAAsB,SAASr+D,GAC3B,IAAIymF,EACAJ,EAAiBllI,KAAK+nB,OAAO,sBAC7B+gC,EAAkB9oD,KAAKmjI,WAAWr6E,kBAClCmpC,EAAiBjyF,KAAKonB,gBACtBsB,EAAQupE,EAAevpE,OAAM,GAC7Bw6E,EAAejR,EAAevpE,QAClC,GAAKA,EAAL,CAGA,IAAI25G,EAA4BriI,KAAKqiI,4BACjCkD,EAAqBvlI,KAAKwlI,sBAAsB98G,GAChD+8G,EAA4BzlI,KAAKwlI,sBAAsBtiC,GAC3DljG,KAAKilI,uBAAuB,CACxBjP,iBAAkBn3E,EAAKm3E,iBACvBmP,gBAAiBtmF,EAAKsmF,gBACtBr8E,gBAAiBA,EACjBo8E,eAAgBA,KAEhBK,EAAmB3rI,QAAUyoI,IAA8BriI,KAAKqiI,8BAChEpwC,EAAekP,YAAY,CACvBnwB,WAAY,kBACZ00D,YAAaD,IAGjBP,GACAllI,KAAK+nB,OAAO,kBAAmB+gC,GAC/Bw8E,EAA0B,KACnBzmF,EAAK8mF,cAAc/rI,QAAUilD,EAAKsmF,gBAAgBvrI,UACzDoG,KAAK4lI,8BAA+B,EACpC5lI,KAAK+nB,OAAO,kBAAmB82B,EAAKm3E,iBAAiB3yG,MAAM,IAC3DrjB,KAAK4lI,8BAA+B,EACpCN,EAA0B,CACtBO,iBAAkBhnF,EAAKinF,cAAcziH,MAAM,GAC3CulC,gBAAiB/J,EAAKm3E,iBAAiB3yG,MAAM,GAC7C0iH,uBAAwBlnF,EAAK8mF,cAActiH,MAAM,GACjD2iH,yBAA0BnnF,EAAKsmF,gBAAgB9hH,MAAM,KAG7DrjB,KAAK0hI,sBAAsB4D,KAE/BE,sBAAuB,SAAS98G,GAG5B,IAFA,IAAIg9G,EAAc,GACd/D,EAAsB3hI,KAAK+nB,OAAO,sBAC7BtsB,EAAI,EAAG7B,EAAS8uB,EAAM9uB,OAAQ6B,EAAI7B,EAAQ6B,IAAK,CACpD,IAAIoV,EAAM6X,EAAMjtB,GACZ0oI,EAAiBnkI,KAAK4iI,cAAcjB,EAAsB9wH,EAAI1K,KAAO0K,EAAI/V,KACzEkF,KAAKmjI,WAAW8C,WAAWp1H,IAAQA,EAAIq1H,aAAe/B,GACtDuB,EAAYziI,KAAKxH,GAGzB,OAAOiqI,GAEX/lE,cAAe,WACX,MAAO,CAAC,qBAEZa,cAAe,SAAS3hB,GAEpB,OADA7+C,KAAKC,SAAS4+C,GACNA,EAAKj9C,MACT,IAAK,YACD,IAAIukI,EAAmBnmI,KAAKijI,eAE5B,GADAjjI,KAAK+/D,OACD,iCAAmClhB,EAAK4sC,SAAU,CAClD,IAAIsqC,EAAgB/1H,KAAKijI,eACrBr6E,EAAkB5oD,KAAK+nB,OAAO,mBAC9Bo+G,IAAqBpQ,IACjB,WAAaA,EACTntE,EAAgBhvD,OAAS,IACzBgvD,EAAkB,CAACA,EAAgB,KAEhC,aAAemtE,IACtBntE,EAAkB,KAG1B5oD,KAAKomI,WAAWx9E,GAAiBkpC,OAAO,KACpC9xF,KAAK0hI,0BAGb1hI,KAAKihE,cAAc,WAAWkrB,gBAC9BttC,EAAK6hB,SAAU,EACf,MACJ,IAAK,kBACD1gE,KAAKmjI,WAAWr6E,gBAAgBjK,EAAKh9C,OACrCg9C,EAAK6hB,SAAU,EACf,MACJ,IAAK,kBACD,IAAI7+D,EAAQg9C,EAAKh9C,OAAS,IACtBhD,MAAM0nB,QAAQ1kB,IAAW7B,KAAK4lI,+BAAiC5lI,KAAK+M,UAAU6zF,iBAAoB/+F,EAAMjI,QACxGoG,KAAKomI,WAAWvkI,GAEpBg9C,EAAK6hB,SAAU,IAG3BV,cAAe,WACX,MAAO,CAAC,aAAc,eAAgB,sBAAuB,qBAAsB,sBAAuB,iBAAkB,YAAa,cAAe,+BAAgC,8BAA+B,kBAE3N4iE,cAAe,SAAS91B,GACpB,OAAO9sG,KAAKmjI,WAAWgB,eAAer3B,IAE1Ci4B,sBAAuB,WACnB,MAAO,aAAe/kI,KAAK+nB,OAAOo6G,MAAoB,WAAaniI,KAAK+nB,OAAOm6G,KAAyB,YAAcliI,KAAK+nB,OAAOm6G,KAAyBliI,KAAKkjI,6BAEpKmD,oBAAqB,WACjB,MAAO,SAAWrmI,KAAK+nB,OAAO,4BAElCu+G,YAAa,WACT,OAAOtmI,KAAKmjI,WAAWoD,kBAAkBvmI,KAAKqmI,wBAElDG,UAAW,WAIP,MAHI,YAAcxmI,KAAK+nB,OAAOm6G,KAC1BliI,KAAKuiI,+BAEFviI,KAAKmjI,WAAWqD,UAAUxmI,KAAKqmI,wBAE1CI,YAAa,WACT,OAAOzmI,KAAKmjI,WAAWsD,YAAYzmI,KAAKqmI,wBAE5CK,eAAgB,WACZ,OAAO1mI,KAAKg2H,iBAAiB,KAEjCrlC,QAAS,WACL,IAAI/nC,EAAkB5oD,KAAK+nB,OAAO,oBAAsB,GACxD,OAAK/nB,KAAK+nB,OAAO,uBAAyB6gC,EAAgBhvD,OAC/CoG,KAAKg2H,iBAAiBptE,IAE1B,IAAK,eAAUp5B,UAAUc,WAEpC0lG,iBAAkB,SAASn0H,EAAO8kI,EAAUC,EAAYN,GACpD,OAAOtmI,KAAKmjI,WAAWnN,iBAAiBn0H,EAAO8kI,EAAUC,EAAYN,IAEzEO,mBAAoB,WAChB,OAAO7mI,KAAKmjI,WAAW2D,uBAE3BV,WAAY,SAAS9vG,EAAMqwG,GACvB,OAAO3mI,KAAKg2H,iBAAiB1/F,EAAMqwG,IAEvCpD,aAAc,SAASjtG,GACnB,OAAOt2B,KAAKg2H,iBAAiB1/F,GAAM,GAAM,IAE7CywG,oBAAqB,SAASr1G,GAC1B,IAAIhJ,EAAQ1oB,KAAKonB,gBAAgBsB,QAC7B4N,EAAO,GAUX,OATKz3B,MAAM0nB,QAAQmL,KACfA,EAAU7yB,MAAM89B,UAAUtZ,MAAMmC,KAAKtlB,UAAW,IAEpD,eAAKwxB,GAAS,WACV,IAAI3qB,EAAO2hB,EAAM1oB,MACb+G,GAAQ,SAAWA,EAAKoK,SACxBmlB,EAAKrzB,KAAK8D,EAAKjM,QAGhBkF,KAAKomI,WAAW9vG,IAE3B0wG,oBAAqB,WACjB,OAAOhnI,KAAKmjI,WAAW8D,oBAE3BzE,oBAAqB,SAAS0E,EAAkB5wG,EAAM6wG,GAClD7wG,EAAOA,GAAQ,GACXt2B,KAAKqiI,8BACL/rG,EAAKmsG,SAAU,GAEnB,IAAI2E,EAAkBF,EAAmBlnI,KAAKonB,gBAAgBw/E,oBAAsB5mG,KAAKonB,gBAAgBw/E,mBAAkB,GAC3H,OAAO5mG,KAAKmjI,WAAWX,oBAAoB4E,EAAiB9wG,EAAM6wG,IAEtE1C,iBAAkB,SAAShxB,GACvB,IAAI,eAAUA,GAGV,OAAOzzG,KAAKmjI,WAAWkE,kBAFvBrnI,KAAKmjI,WAAWkE,kBAAoB5zB,GAK5C4uB,0BAA2B,WACvB,MAAO,aAAeriI,KAAK+nB,OAAOo6G,MAAoB,WAAaniI,KAAK+nB,OAAOm6G,KAAyBliI,KAAKkjI,6BAEjHX,6BAA8B,WAC1B,MAAI,aAAeviI,KAAK+nB,OAAOo6G,MAAoBniI,KAAKqiI,8BACpDriI,KAAKkjI,4BAA6B,EAClCljI,KAAKqjI,uBACE,IAIff,4BAA6B,WACzB,QAAItiI,KAAKkjI,6BACLljI,KAAKkjI,4BAA6B,EAClCljI,KAAKqjI,uBACE,KA7W+B,IAmX3CiE,GAAkB,CACzB3pI,eAAgB,WACZ,MAAO,CACHkrD,UAAW,CACPhN,KAAM,OACNgiB,mBAAoB,UACpBJ,gBAAgB,EAChBG,cAAe,WACfD,yBAA0B,KAC1BD,UAAU,GAEd5U,gBAAiB,GACjBF,gBAAiB,KAGzBic,YAAa,CACThc,UAAW65E,IAEfz9D,UAAW,CACPJ,YAAa,CACT1+D,KAAM,CACF45D,KAAM,WACF,IAAImgE,EAAsBlgI,KAAKihE,cAAc,aACzCikE,EAAiBllI,KAAK+nB,OAAO,sBACjC/nB,KAAKC,SAASnB,MAAMkB,KAAME,WACtBglI,GACAhF,EAAoB+E,uBAAuB,CACvCC,gBAAgB,EAChBp8E,gBAAiB9oD,KAAK+nB,OAAO,sBAIzC86E,gBAAiB,WACb,IAAIl/F,EAAO3D,KACX,OAAO2D,EAAK1D,WAAWktB,MAAK,WACxBxpB,EAAKs9D,cAAc,aAAa0vB,cAGxC2S,iBAAkB,SAASv8F,EAAMiK,GAC7B,IAAIrN,EAAO3D,KACPkgI,EAAsBv8H,EAAKs9D,cAAc,aACzCsmE,EAAkBrH,EAAoB6E,wBACtCpD,EAAsB3wH,EAAQ2wH,yBAAsB,IAAW3wH,EAAQ2wH,oBAAsB3hI,KAAK+nB,OAAO,sBAAwB/W,EAAQ2wH,oBACzIp+B,EAAWvjG,KAAKC,SAASnB,MAAMkB,KAAME,WAEzC,GADAqjG,EAAS2iC,WAAahG,EAAoB0C,cAAcjB,EAAsBp+B,EAASp9F,KAAOo9F,EAASzoG,KACnGysI,GAAmBhkC,EAASztE,OAC5B,IAAK,IAAIr6B,EAAI,EAAGA,EAAIuV,EAAQw7D,eAAe5yE,OAAQ6B,IAC/C,GAAI,WAAauV,EAAQw7D,eAAe/wE,GAAGkyB,QAAS,CAChD41E,EAASztE,OAAOr6B,GAAK8nG,EAAS2iC,WAC9B,MAIZ,OAAO3iC,GAEX5S,QAAS,SAAS3/E,GACd,IAAIrN,EAAO3D,KACPkiB,EAAI,IAAI,cAQZ,OAPAliB,KAAKC,SAASnB,MAAMkB,KAAME,WAAWitB,MAAK,YACjCnc,GAAWA,EAAQ63C,UACpBllD,EAAKs9D,cAAc,aAAa0vB,UAAUxjE,KAAKjL,EAAEsN,SAASG,KAAKzN,EAAE2hB,QAEjE3hB,EAAEsN,aAENG,KAAKzN,EAAE2hB,QACJ3hB,EAAEoO,WAEbokD,mBAAoB,SAAS9wE,GACzB5D,KAAKC,SAASnB,MAAMkB,KAAME,WACpB0D,GAAK,YAAcA,EAAEotE,YAAgBhxE,KAAK+/F,qBAC5C//F,KAAKihE,cAAc,aAAawjE,kBAAkB,IAG1D/gC,aAAc,SAAS9yC,GACnB,IAAIA,GAAU,oBAAsBA,EAAOogB,WAU3C,OAAOhxE,KAAKC,SAASnB,MAAMkB,KAAME,WAT7B0wD,EAAOloC,MAAMxnB,QAAQ,CAAC6F,EAAM3F,KACxB,IAAIomI,EAAcxnI,KAAKk7F,OAAO95F,GAC1BomI,IACAA,EAAYtB,WAAan/H,EAAKm/H,WAC9BsB,EAAY1xG,OAAS/uB,EAAK+uB,WAO1CwpC,eAAgB,WACZ,IAAIryD,EAAUjN,KAAKggG,SACfynC,EAAoBx6H,EAAQrT,OAAS,GAAKqT,EAAQurB,MAAMo4B,GAAU,oBAAsBA,EAAOogB,YACnG,GAAIy2D,EAAmB,CACnB,IAAI/B,EAAcz4H,EAAQnR,IAAI80D,GAAUA,EAAO80E,aAAe,IAAI3uG,OAAO,CAACh1B,EAAGC,IAAMD,EAAE8P,OAAO7P,IAC5FhC,KAAKggG,SAAW,CAAC,CACbhvB,WAAY,kBACZ00D,YAAaA,IAGrB1lI,KAAKC,SAASnB,MAAMkB,KAAME,aAGlCgpH,YAAa,CACTJ,qBAAsB,SAAS93G,GAC3B,IAAIs3G,EAAUt3G,EAAQswD,MAClBgnD,EAAQ1vC,eAAiB,WAAa0vC,EAAQ1vC,cAAcn6E,MAAQuS,EAAQ0X,OAAS1X,EAAQ0X,MAAM9uB,OAAS,GAGhHwoI,GAAepiI,KAAMsoH,MAIjCvjD,MAAO,CACH+W,kBAAmB,CACf/b,KAAM,WACF//D,KAAKC,WACLD,KAAKihE,cAAc,aAAao/D,iBAAiB7rD,IAAIx0E,KAAK0nI,sBAAsBl9G,KAAKxqB,QAEzF0nI,sBAAuB,WACnB,IAAI1hH,EAAWhmB,KAAK6mB,UAChB8gH,EAAU3hH,GAAYA,EAASiB,KAAK,IAAM66G,IAC9C,GAAI97G,GAAY2hH,EAAQ/tI,QAAU,aAAeoG,KAAK+nB,OAAO,kBAAmB,CAC5E,IAAI6/G,EAAiB5nI,KAAKihE,cAAc,aAAaqlE,cACjDuB,GAAe,IAAUD,EACzBzgH,EAAYnnB,KAAK+nB,OAAO,6BAA+B/nB,KAAKihE,cAAc,QAAQ55C,UAAYwgH,EAClGF,EAAQG,WAAW,YAAY//G,OAAO,CAClC4hC,QAASxiC,EACTtlB,MAAO+lI,MAInBlzD,mBAAoB,SAAS9wE,GACzB5D,KAAKC,SAAS2D,KACTA,GAAK,YAAcA,EAAEotE,YAAcptE,EAAE0kD,oBAAsB,WAAa1kD,EAAEotE,aAC3EhxE,KAAK0nI,yBAGb3E,yBAA0B,SAASj+G,EAAYhU,GAC3C,IAAInN,EAAO3D,KACPkgI,EAAsBv8H,EAAKs9D,cAAc,aACzC8mE,EAAcpkI,EAAKs9D,cAAc,QAAQ55C,UACzCmpG,EAAe,eAAE,SAASjpG,SAASzC,GAAYwC,SAASw6G,IAwB5D,OAvBAn+H,EAAKyoB,QAAQ,QAAS,OAAoB/yB,OAAO,4BAA6Bm3H,GAC9E7sH,EAAKs9D,cAAc,iBAAiB+mE,aAAaxX,EAAc,OAAA/1H,EAAA,WAAO,GAAIqW,EAAQ,CAC9Em3H,WAAY,YACZ7jH,SAAU,UACVviB,MAAOq+H,EAAoBoG,cAC3Bj/H,cAAe,CACXsiD,SAAUo+E,IAAgBpkI,EAAKokB,OAAO,8BAA+B,IAAUm4G,EAAoBoG,gBAEvG98E,SAAU7lD,EAAKokB,OAAO,gCAAkC,EAAIpkB,EAAKokB,OAAO,aAAe,EACvFmgH,SAAU,SAASrmI,EAAO+B,GACtB,IAAI65D,EAAiB95D,EAAKokB,OAAO,4BACjCnkB,EAAEmJ,UAAUgb,OAAO,UAAW01C,IAAkB,IAAU75D,EAAEmJ,UAAUgb,OAAO,UACxEnkB,EAAE09D,OAAS4+D,EAAoBoG,gBAAkBzkI,IAGlD+B,EAAE/B,QAAU47D,EACZ75D,EAAEmJ,UAAUgb,OAAO,SAAS,GAE5BnkB,EAAE/B,MAAQq+H,EAAoBsG,YAActG,EAAoBuG,cAEpE7iI,EAAE09D,MAAM1mC,sBAGT41F,GAEXwS,mCAAoC,SAASh9G,GACzC,OAAa3gB,GAAG2gB,EAAU,OAAgBhmB,KAAKygE,cAAa,SAAU78D,GAClE,IAAI09D,EAAQ19D,EAAE09D,MACT,eAAEA,EAAMh8C,QAAQ2H,QAAQ,IAAM60G,IAAuBloI,QACtD,OAAakzB,QAAQ,eAAEw0C,EAAMoI,eAAerC,SAAS,IAAMy6D,IAAwB,QAEvFxgE,EAAM1mC,uBAIlB1O,SAAU,CACN22G,8BAA+B,SAAS/9G,EAAY9T,GAC5C,SAAWA,EAAQG,SAAYH,EAAQH,IAAIob,SAK3C,OAAcpH,aAAaC,IAJ3BA,EAAWwC,SAASs6G,IACpB5hI,KAAKmoI,0BAA0BrjH,GAC/B9kB,KAAKooI,sBAAsBtjH,EAAY9T,KAK/Co3H,sBAAuB,SAASjgH,EAAWnX,GACvC,IAAIw/G,EAAe,eAAE,SAASlpG,SAASw6G,IAAuBv6G,SAASY,GAevE,OAdAnoB,KAAKosB,QAAQ,QAAS,OAAoB/yB,OAAO,4BAA6Bm3H,GAC9ExwH,KAAKihE,cAAc,iBAAiB+mE,aAAaxX,EAAc,OAAA/1H,EAAA,WAAO,GAAIuW,EAAQF,OAAQ,CACtFm3H,WAAY,UACZ7jH,SAAU,UACV2F,OAAQ,KACRloB,MAAOmP,EAAQnP,MACfqmI,SAAU,SAASrmI,EAAO+B,GACtB,IAAIykI,EACA,aAAe,OAASzkI,QAAK,IAAWA,GAAa,QAAUykI,EAAWzkI,EAAE09D,aAAU,IAAW+mE,OAArD,EAAyEA,EAAS5pI,OAC9H,OAAaquB,QAAQlpB,EAAEijB,QAAS,OAAgBjjB,IAGxDiN,IAAKG,EAAQH,OAEV2/G,GAEX2X,0BAA2B,SAASniH,GAChC,OAAa3gB,GAAG2gB,EAAU,OAAgBhmB,KAAKygE,cAAa,SAAU78D,GAClE,IAAIs8H,EAAsBlgI,KAAKihE,cAAc,aACzCK,EAAQ19D,EAAE09D,MACVuI,EAAW7pE,KAAK8pE,YAAY,eAAExI,EAAMoI,eAAez8C,QAAQ,IAAM,KACjE48C,GAAY,IACZq2D,EAAoBqC,+BACpBrC,EAAoBsC,oBAAoB34D,EAAU,CAC9CloC,MAAO2/B,EAAMob,WAEb,eAAEpb,EAAMh8C,QAAQ2H,QAAQ,IAAM60G,IAAuBloI,QACrDoG,KAAKihE,cAAc,QAAQkgC,YAAY,CACnCnwB,WAAY,kBACZ00D,YAAa,CAAC77D,WAMlC4iC,QAAS,SAAS77C,GACd,IAAIjtD,EAAO3D,KACP4vG,EAAgBjsG,EAAKqwE,mBACrB,oBAAsBpjB,EAAOogB,WACzB4+B,EAAch2G,OAAS,IACvB,eAAKg2G,GAAe,SAAU7wG,EAAG+wE,GAC7B,eAAKlf,EAAO80E,aAAe,IAAI,SAAU3mI,EAAGqC,GACxC,IAAImrE,EACJ,GAAI3b,EAAOloC,MAAMtnB,KACbmrE,EAAO5oE,EAAKwyE,gBAAgB,eAAErG,IAAetkD,GAAGpqB,GAC5CmrE,EAAK3yE,QAAQ,CACb,IAAIssI,EAAat1E,EAAOloC,MAAMtnB,GAAO8kI,WACrC35D,EAAK1I,YAAYg+D,QAAqB,IAAWqE,GAAqBA,GAAYj/G,KAAK,IAAM66G,IAAuBgG,WAAW,SAAU,QAAS5B,GAClJviI,EAAKyoB,QAAQ,WAAY85G,EAAY35D,UAKrD5oE,EAAK2kI,0BAGT3kI,EAAK1D,SAAS2wD,IAGtBub,aAAc,WACV,IAAIxoE,EAAO3D,KACP+1H,EAAgBpyH,EAAKokB,OAAO,kBAC5BohD,EAASxlE,EAAK1D,SAASnB,MAAM6E,EAAMzD,WAevC,MAdI,SAAW61H,IACP,cAAgBpyH,EAAKokB,OAAOm6G,KAA0B,YACtD,OAAa78H,GAAG8jE,EAAQ,gBAAa5tB,GAAA,KAAU35C,KAAM,sBAAuB,IAAM,GAAgB+B,EAAK88D,cAAa,SAAU78D,GAC1Hw+H,GAAez+H,EAAKoJ,UAAWnJ,EAAE09D,OACjC19D,EAAE09D,MAAM+3C,sBAGhB,OAAah0G,GAAG8jE,EAAQ,wBAAyBxlE,EAAK88D,cAAa,SAAU78D,GACzE,IAAI09D,EAAQ19D,EAAE09D,MACVA,EAAMob,UACNpb,EAAM1mC,sBAIXuuC,GAEX2C,WAAY,SAASj7D,GACjB,IAAI07D,EAAOvsE,KAAKC,SAASnB,MAAMkB,KAAME,WACrC,GAAI2Q,EAAK,CACL,IAAIq1H,EAAar1H,EAAIq1H,WACjBA,GACA35D,EAAKjlD,SAASu6G,IAElB,IAAI9L,EAAgB/1H,KAAK+nB,OAAOo6G,IAC5B,SAAWpM,GACX/1H,KAAKosB,QAAQ,WAAY85G,EAAY35D,GAG7C,OAAOA,GAEXtC,UAAW,SAASrmE,GAChB,IAAI0kH,EAAU1kH,EAAE09D,MACZinE,EAAsB,eAAEjgB,EAAQhjG,QAAQ2H,QAAQ,IAAMg1G,IAA0BroI,OAC/EoG,KAAKwoI,mBAAmB,eAAElgB,EAAQhjG,WAC9BijH,GAAwB,aAAevoI,KAAK+nB,OAAOo6G,KAAmB,WAAaniI,KAAK+nB,OAAOm6G,KAC5FliI,KAAKihE,cAAc,aAAauhE,oBAAoB5+H,EAAEimE,SAAU,CAC5D44D,QAAS,gBAAoBna,GAC7B3mF,MAAO2mF,EAAQ5rC,aAEnB4rC,EAAQ1tF,iBACRh3B,EAAE88D,SAAU,GAGpB1gE,KAAKC,SAAS2D,KAGtB4kI,mBAAoB,SAAS3nE,GACzB,IAAI4nE,EAAkB5nE,EAAQ5zC,QAAQ,IAAM+0G,IAAsBpoI,OAClE,QAAS6uI,GAEb1lE,YAAa,SAASnS,GAClB5wD,KAAKC,SAAS2wD,GACd5wD,KAAKsoI,0BAETA,uBAAwB,WACpB,IAAI14B,EAAgB5vG,KAAKg0E,mBACrBksD,EAAsBlgI,KAAKihE,cAAc,aACzCynE,EAAqBxI,EAAoB6E,0BAA4B7E,EAAoBmC,4BAC7F,eAAKzyB,GAAe,SAAU7wG,EAAG+wE,GAC7B,eAAEA,GAAcjM,YAAYk+D,GAAyB2G,WCpuB7E,EAASjjE,eAAe,YAAa6hE,I,8BC4BjCqB,GAAuB,iBACvBC,GAA8B,wBAC9BC,GAAuB,iBACvBC,GAA4B,sBAC5BC,GAA6B,uBAC7BC,GAA4B,2BAC5BC,GAA8B,6BAC9BC,GAA2B,iBAC3BC,GAA4B,yBAC5BC,GAAyB,oBACzBC,GAAoB,eACpBC,GAAgB,IAChBC,GAAe,SAAS5lI,EAAM6lI,GAC9B,IAAI9gH,EAAQ,GACR+gH,EAAe,WAAa9lI,EAAKokB,OAAO,sBAmB5C,OAlBIyhH,EAAe5vI,QACf,eAAK4vI,GAAgB,SAAUpoI,EAAO0P,GAClC,IAAI/J,EAAO,CACPxK,KAAMuU,EAAO5J,QACb8jD,SAAUl6C,EAAOk6C,SACjBc,YAAah7C,EAAOg7C,YACpBorE,UAAU,EACVpoI,GAAIgiB,EAAO1P,MACX2iD,UAAU,EACV2lF,iBAAiB,IAAU54H,EAAOg7C,YAClC69E,SAAU,eAAU74H,EAAOs8C,WAAat8C,EAAOs8C,UAAY,MAE3Dq8E,IACA1iI,EAAK82G,SAAW/sG,EAAO64C,SAE3BjhC,EAAMzlB,KAAK8D,MAGZ2hB,GAEPkhH,GAA0B,EAAQ1nE,eAAe7C,QAAQ,CACzDwqE,8BAA+B,SAAS7jH,GACpC,IAII8jH,EAJAnmI,EAAO3D,KACP+pI,EAA2BpmI,EAAKojB,gBAAgB6hH,IAChDoB,EAAuBrmI,EAAKokB,OAAO,yBACnCkiH,EAA2BjkH,EAASiB,KAAK,IAAM8iH,GAE/CC,EACKC,EAAyBrwI,OAW1BqwI,EAAyBx/E,QAVzBq/E,EAAuB,eAAE,SAASxiH,SAASyiH,GAA0BxiH,SAASvB,GAC9EriB,EAAKykB,iBAAiB0hH,EAAsB,cAAQ,CAChD7+E,KAAMi+E,GACNh+E,QAAS,WACLvnD,EAAKwoB,QAAQ,qBAAqB+9G,qBAEtCjlF,KAAMthD,EAAKokB,OAAO,uBAClBoiH,mBAAoB,MAM5BF,EAAyBz/E,QAGjC4/E,YAAa,WACT,IAAIl+G,EAAWlsB,KAAKmsB,QAAQ,YAC5B,MAAO,CACHyvC,GAAI,eACJF,GAAI,eACJpzC,GAAI4D,GAAYA,EAASrF,UACzB2B,UAAW,MACX4C,OAAQ,QACRuwC,eAAgB,UAIxB0uE,GAAoBr/D,GAAY3L,QAAQ,CACxC2D,YAAa,OACbsnE,aAAc,WACV,QAASzxB,GAAA,KAAQC,OAAOyxB,KAE5BC,YAAa,SAAS55E,GAClB,IAAIloC,EACA2hG,EAAgBrqH,KAAKyqI,gBAAgB7tD,WACrC6sD,EAAe,WAAazpI,KAAK+nB,OAAO,sBACxC2iH,EAAoB1qI,KAAK2qI,mBACzBnB,EAAiBxpI,KAAKysE,mBAAmB+Y,kBAAkBikD,GAK/D,GAJAzpI,KAAKyqI,gBAAgBr+G,QAAQ,CACzB6pF,KAAM,SACNx9C,MAAO,OAAoBp/D,OAAO,mCAElCowI,GAAgBiB,GAAqB95E,GAAU,cAAgBA,EAAOogB,WAAY,CAClFtoD,EAAQ6gH,GAAavpI,KAAMwpI,GAC3B,IAAK,IAAI/tI,EAAI,EAAGA,EAAIitB,EAAM9uB,OAAQ6B,IAAK,CACnC,IAAIoiH,EAAWn1F,EAAMjtB,GAAGoiH,SACpB/uH,EAAK45B,EAAMjtB,GAAG3M,GACdA,IAAO8hE,EAAOhsC,cACVi5F,EACA6sB,EAAkBl0B,WAAW1nH,EAAI+uH,GAEjC6sB,EAAkBE,aAAa97I,EAAI+uH,UAIvC4rB,GAAiBiB,GAAqB,SAAW95E,IACzD5wD,KAAKyqI,gBAAgBxvB,WAAWp3C,YAAY7jE,KAAK+mB,gBAAgBiiH,KAA6BS,GAAc5lE,YAAY7jE,KAAK+mB,gBAAgBkiH,IAA8BQ,GAC3K/gH,EAAQ6gH,GAAavpI,KAAMwpI,GAC3BxpI,KAAK6qI,gBAAgBxgB,EAAe3hG,KAG5CoiH,0BAA2B,WACvB,IAAInnI,EAAO3D,KACPgmB,EAAWriB,EAAKkjB,UAAUS,SAAS3jB,EAAKojB,gBAAgB4hH,KACxDoC,EAAuBpnI,EAAKokB,OAAO,iBACnCijH,EAAY,iBACZC,EAAiB,eAAUD,GAC3BE,EAAa,eAAgBF,GAC7BG,EAAiB,CACjBxhF,SAAS,EACT1hC,SAAS,EACT2sC,iBAAiB,EACjBpB,aAAa,EACbiB,eAAe,EACfpB,0BAA0B,EAC1B+3E,4CAA4C,EAC5Cr2E,aAAc,CAAC,CACXx4D,KAAMwuI,EAAqBl8E,MAC3BpF,QAAS,MACT6Q,SAAU2wE,GAAkBC,EAAa,SAAW,WAExD12E,SAAU7wD,EAAKs9D,cAAc,iBAAiBmpE,cAC9C7iI,MAAOwjI,EAAqBxjI,MAC5BmK,OAAQq5H,EAAqBr5H,OAC7B2Z,WAAY1nB,EAAKokB,OAAO,cACxBisC,SAAU,WACFrwD,EAAK2mI,gBACL,eAAE,QAAQ9iH,YAAY7jB,EAAKojB,gBAAgB8hH,MAGnD1gH,UAAW4iH,EAAqB5iH,WAEhC8iH,GAAkBC,EAClB,OAAAzwI,EAAA,WAAO0wI,EAAgB,CACnBv2E,iBAAiB,IAGrBu2E,EAAep2E,aAAao2E,EAAep2E,aAAan7D,QAAU,CAC9DyxI,SAAU,UAGb,eAAUrrI,KAAKyqI,iBAQhBzqI,KAAKyqI,gBAAgB1iH,OAAOojH,IAP5BxnI,EAAK8mI,gBAAkB9mI,EAAKykB,iBAAiBpC,EAAU,QAAOmlH,GAC9DxnI,EAAK8mI,gBAAgBplI,GAAG,iBAAiB,SAAUw5C,GAC3C,YAAcA,EAAKj9C,MACnB+B,EAAKu/D,gBAAgBY,YAOrCf,YAAa,SAASnS,GACd5wD,KAAKyqI,iBACLzqI,KAAKwqI,YAAY55E,IAGzBi6E,gBAAiB,SAAS/lH,EAAY4D,GAClC,IAAI/kB,EAAO3D,KACPqjD,EAAgBrjD,KAAK+nB,OAAO,iBAC5B0hH,EAAe,WAAapmF,EAAcxH,KAC1CyvF,EAAiB,CACjB5iH,MAAOA,EACP6iH,cAAe,QACfzoF,oBAAoB,EACpB+B,mBAAmB,EACnBK,mBAAmB,EACnBywE,aAAc,OACd93D,mBAAoB,OACpBu5C,UAAW,KACXo0B,cAAenoF,EAAc2I,YAC7B4C,cAAevL,EAAcuL,cAC7BunE,eAAgB,SAASvyH,GACrB,GAAIA,EAAEk8E,SAAS4pD,gBAAiB,CAC5B,IACI+B,EADAC,EAAgB,eAAE9nI,EAAEm2G,aAAa9sF,QAAQm8G,IAE7C,GAAIsC,EAAc9xI,SACd6xI,EAAYC,EAAczkH,KAAKoiH,IAC3BoC,EAAU7xI,QAAQ,CAClB,IAAI+xI,EAAmBF,EAAUtlI,KAAK,cACtCwlI,GAAoBA,EAAiB5jH,OAAO,YAAY,OAMxEyoF,EAAqB1rF,EAAWmC,KAAK,kBAAkB9gB,KAAK,gBAC5DsqH,EAAYjgB,GAAsBA,EAAmBigB,YACrDgZ,IAAiBzpI,KAAKysE,mBAAmBqgB,qBACzChoE,EAAWwC,SAAStnB,KAAK+mB,gBAAgBgiH,KAE7CuC,EAAezlF,eAAiB,SAASjiD,GACrC,gBAAY,WACR,GAAI6sH,EAAW,CACX,IAAIvkB,EAAa,eAAEtoG,EAAEijB,SAASI,KAAK,kBAAkB9gB,KAAK,gBAC1D+lG,GAAcA,EAAWr7B,SAAS,CAC9BvvD,EAAGmvG,IAGX9sH,EAAKu/D,gBAAgBY,WAGzB9jE,KAAKsqI,iBACLgB,EAAengE,oBAAqB,GAExC,OAAA1wE,EAAA,WAAO6wI,EAAgB7B,EAAezpI,KAAK4rI,2BAA6B5rI,KAAK6rI,0BACzE7rI,KAAK2qI,oBACAW,EAAeE,gBAChBF,EAAe9zB,YAAc,IAEjCx3G,KAAK2qI,mBAAmB5iH,OAAOujH,KAE/BtrI,KAAK2qI,mBAAqB3qI,KAAKooB,iBAAiBtD,EAAY,cAAUwmH,GACtExmH,EAAWwC,SAAStnB,KAAK+mB,gBAAgB+hH,OAGjD+C,uBAAwB,WACpB,IAAId,EAAuB/qI,KAAK+nB,OAAO,iBACvC,MAAO,CACHw9B,WAAYwlF,EAAqBp8E,eACjC7L,oBAAoB,EACpB+B,mBAAmB,EACnBK,mBAAmB,EACnBywE,aAAc,SAASxvH,EAAM/E,EAAO2F,GAChC,eAAEA,GAAMxK,KAAK4J,EAAK5J,MAAM2xB,SAAS5G,SAASnhB,EAAK6kD,UAAU1jC,SAAS6hH,OAI9EyC,yBAA0B,WACtB,IAAIjoI,EAAO3D,KACX,MAAO,CACH8rI,sBAAsB,EACtBjuE,mBAAoB,SACpBkuE,uBAAwB,SAASnoI,GAC7B,IAAI4oE,EAAiB7oE,EAAK8oE,mBAAmBC,oBAAoBtuE,QAAO,SAAU2I,GAC9E,OAAQA,EAAK4mB,WAEbq+G,EAAyB,IAAMx/D,EAAe5yE,SAAWgK,EAAEk8E,SAAS+9B,SACpEmuB,EACApoI,EAAEmJ,UAAUypG,WAAW5yG,EAAEm2G,aAEzB9mG,YAAW,WACPtP,EAAK8oE,mBAAmBoK,aAAajzE,EAAEk8E,SAAShxF,GAAI,UAAW8U,EAAEk8E,SAAS+9B,YAC1EyrB,OAKpB51D,qBAAsB,SAAS9vE,GAC3B,IAAIytE,EAAcztE,EAAEytE,YAChBsC,EAAc/vE,EAAE+vE,YAChB81D,EAAe,WAAazpI,KAAK+nB,OAAO,sBAE5C,GADA/nB,KAAKC,SAAS2D,GACV6lI,EAAc,CACd,IAAIwC,EAAoBt4D,EAAYhqB,SAAW,IAAMgqB,EAAY/5E,aAAU,IAAWgK,EAAEghB,YACpFsnH,EAAiBv4D,EAAYnmB,qBAAuBmmB,EAAYzsE,SAAWysE,EAAYhqB,SAAW0nB,EAAY/jD,SAAWqmD,EAAY5vC,IACrIkoG,EACAjsI,KAAKmE,OAAO,KAAM,CACd6sE,WAAY,YACZpsD,YAAahhB,EAAEghB,cAEZsnH,GACPlsI,KAAKmE,OAAO,KAAM,UAI9Bq8D,cAAe,SAAS3hB,GACpB,OAAQA,EAAKj9C,MACT,IAAK,gBACD5B,KAAK8qI,4BACL9qI,KAAKmE,OAAO,KAAM,QAClB,MACJ,QACInE,KAAKC,SAAS4+C,KAG1B8oB,kBAAmB,WACf,IACIuzC,EADAj8G,EAAS,GAETwqI,EAAe,WAAazpI,KAAK+nB,OAAO,sBACxCyhH,EAAiBxpI,KAAKysE,mBAAmB+Y,kBAAkBikD,GAC3D7sD,EAAW58E,KAAKyqI,iBAAmBzqI,KAAKyqI,gBAAgB7tD,WACxDuvD,EAASvvD,GAAYA,EAAS31D,KAAK,qBAQvC,OAPIklH,GACA3C,EAAetoI,SAAQ,SAAU4P,GAC7BoqG,EAAQixB,EAAO/tI,OAAO,oBAAsB0S,EAAO1P,MAAQ,MAC3D,IAAI2F,EAAOm0G,EAAMthH,OAASshH,EAAM7zC,SAAS,IAAM8hE,IAA2BzrI,IAAI,GAAK,KACnFuB,EAAOgE,KAAK8D,MAGb,eAAE9H,IAEbk4E,QAAS,WACL,MAAO,iBAEX1P,WAAY,WACR,OAAOznE,KAAKysE,mBAAmB+Y,qBAEnCzG,cAAe,SAASjuE,EAAQkuE,GAC5B,IAAIotD,EAAgBt7H,GAAUA,EAAOg7C,cAAgB,kBAAoBkzB,IAAmBluE,EAAO64C,SAAW3pD,KAAKysE,mBAAmByhB,sBAAsBp9E,EAAO1P,QACnK,OAAOpB,KAAKqsI,0BAA4BD,GAE5Cl1D,gBAAiB,WACb,IAAI/uD,EAAYnoB,KAAKyqI,iBAAmBzqI,KAAKyqI,gBAAgBjoB,kBAC7D,GAAIr6F,GAAaA,EAAUv6B,GAAG,YAAa,CACvC,IAAIw9B,EAASjD,EAAUiD,SACvB,MAAO,CACHO,KAAMP,EAAOO,KACbC,IAAKR,EAAOQ,IACZ0gH,MAAOlhH,EAAOO,KAAO,eAAcxD,GACnC6lG,OAAQ5iG,EAAOQ,IAAM,eAAezD,IAG5C,OAAO,MAEX+hH,kBAAmB,WACVlqI,KAAKyqI,kBACNzqI,KAAK8qI,4BACL9qI,KAAKmE,UAETnE,KAAKyqI,gBAAgBhgF,OACjBzqD,KAAKsqI,gBACL,eAAE,QAAQhjH,SAAStnB,KAAK+mB,gBAAgB8hH,MAGhD0D,kBAAmB,WACXvsI,KAAKyqI,iBACLzqI,KAAKyqI,gBAAgBjgF,QAG7B6hF,uBAAwB,WACpB,IAAIG,EAAiBxsI,KAAKyqI,gBAC1B,OAAO+B,GAAkBA,EAAezkH,OAAO,YAEnDi4C,cAAe,WACX,MAAO,CAAC,oBAAqB,wBAG1BysE,GAAsB,CAC7B9uI,eAAgB,WACZ,MAAO,CACH0lD,cAAe,CACXr7B,SAAS,EACTgkC,aAAa,EACb4C,cAAe,IACf/S,KAAM,cACNt0C,MAAO,IACPmK,OAAQ,IACRm9C,MAAO,OAAoBx1D,OAAO,iCAClCs1D,eAAgB,OAAoBt1D,OAAO,qCAC3C8uB,eAAW,KAIvB08C,YAAa,CACTxhB,cAAeumF,IAEnB7kE,MAAO,CACH2nE,kBAAmBrC,IAEvBplE,UAAW,CACPF,MAAO,CACHwmC,YAAa,CACTywB,iBAAkB,WACd,IAAItzG,EAAQ1oB,KAAKC,WACjB,OAAOD,KAAK2sI,yBAAyBjkH,IAEzCikH,yBAA0B,SAASjkH,GAC/B,IAAI/kB,EAAO3D,KACPgqI,EAAuBrmI,EAAKokB,OAAO,yBACvC,GAAIiiH,EAAsB,CACtB,IAAI4C,EAAWjpI,EAAKokB,OAAO,uBACvB0zC,EAAc,CACdhB,OAAQ,WACRzpD,QAAS,CACLi6C,KAAMi+E,GACNh+E,QAAS,WACLvnD,EAAKoJ,UAAUof,QAAQ,qBAAqB+9G,qBAEhDjlF,KAAM2nF,EACNrwI,KAAMqwI,EACN/lF,cAAe,SAASjjD,GACpB,eAAEA,EAAEijB,SAASS,SAAS3jB,EAAKs5H,uBAAuBt5H,EAAKojB,gBAAgB6hH,OAE3E3kF,YAAa,CACT,gBAAiB,WAGzBuW,SAAU,SACVF,SAAU,QACV14D,KAAM,sBACNy4D,aAAc,OACd3M,UAAW,IAEfhlC,EAAMzlB,KAAKw4D,GAEf,OAAO/yC,GAEX83C,cAAe,SAAS3hB,GACpB,OAAQA,EAAKj9C,MACT,IAAK,gBACD5B,KAAK4iE,cACL/jB,EAAK6hB,SAAU,EACf,MACJ,QACI1gE,KAAKC,SAAS4+C,KAG1B13B,UAAW,WACP,IAAI6iH,EAAuBhqI,KAAK+nB,OAAO,yBACvC,OAAO/nB,KAAKC,YAAc+pI,KAItCnlE,YAAa,CACTv3C,QAAS,CACLmiE,gBAAiB,SAASC,EAAkBC,EAAgB3Q,EAAgB4Q,GACxE,IAAIi9C,EAAoB7sI,KAAK+nB,OAAO,sBAChC+kH,EAAyB,WAAaD,GAAqB,kBAAoBj9C,EACnF,OAAOk9C,GAAiC9sI,KAAKC,SAASyvF,EAAkBC,EAAgB3Q,EAAgB4Q,QCpcvF68C,GAAoB5nE,YAAYxhB,cACtCopF,GAAoB1nE,MAAM2nE,kBACzD,EAASjnE,eAAe,gBAAiBgnE,I,8BCGlC,SAASM,GAAmB9jD,EAAM74D,EAAkB48G,GAGvD,IAFA,IAAIC,EAAS,mCAAqB78G,EAAiB1J,OAC/CtoB,EAAS,GACJ3C,EAAIuxI,EAAgB/jD,EAAKrvF,OAAS,EAAI,EAAG6B,EAAIwtF,EAAKrvF,OAAQ6B,IAAK,CAEpE,IADA,IAAIyxI,EAAgB,GACXzlI,EAAI,EAAGA,GAAKhM,EAAGgM,IAAK,CACzB,IAAIkf,EAAWsmH,EAAOxlI,GAAGkf,SACzB,GAAIlrB,IAAMgM,GAAM,OAASwhF,EAAKxhF,KAAM,IAAUwhF,EAAKxhF,KAAM,IAASwhF,EAAKxhF,GAShE,CACH,IAAI0lI,EAAgB,CAACxmH,EAAUlrB,IAAMgM,EAAIwlI,EAAOxlI,GAAGqjB,KAAO,IAAM,IAAM,IAAKm+D,EAAKxhF,IAC5E,MAAQ0lI,EAAc,GACtBD,EAAcjqI,KAAK,CAACkqI,EAAe,KAAM,CAACxmH,EAAU,IAAK,QAEzDumH,EAAcjqI,KAAKkqI,QAbnB,IAAUlkD,EAAKxhF,GACfylI,EAAcjqI,KAAK,CAAC0jB,EAAU,MAAKsmH,EAAOxlI,GAAGqjB,MAAc,QACpDm+D,EAAKxhF,IAAMwlI,EAAOxlI,GAAGqjB,KAAOmiH,EAAOxlI,GAAGqjB,MAC7CoiH,EAAcjqI,KAAK,CAAC0jB,EAAU,KAAMsiE,EAAKxhF,MAEzCylI,EAAcjqI,KAAK,CAAC0jB,EAAU,KAAM,OACpCumH,EAAcjqI,KAAK,CAAC0jB,EAAU,IAAK,QAW/CvoB,EAAO6E,KAAK,EAAS2lB,eAAeskH,IAGxC,OADA9uI,EAAS,EAASwqB,eAAexqB,EAAQ,MAClC,EAASwqB,eAAe,CAACxqB,EAAQgyB,EAAiBhyB,SAEtD,IAAIgvI,GAAiB,OAAM/tE,QAAQ,WACtC,IAAIguE,EAAqB,SAASC,EAAYxyI,GAC1C,IAAIyyI,EAAOD,EAAWC,KACtB,OAAOA,GAAQA,EAAKxyI,KAAKC,UAAUF,KAEnC0yI,EAA4B,SAASF,EAAYliH,GACjD,IAaIhqB,EAbAqsI,EAAY,EACZC,EAAaJ,EAAW1zI,OAAS,EACrC,IAAK0zI,EAAW1zI,OACZ,OAAO,EAEX,EAAG,CACC,IAAI+zI,EAAcD,EAAaD,GAAa,EACxCH,EAAWK,GAAaviH,OAASA,EACjCsiH,EAAaC,EAEbF,EAAYE,QAEXD,EAAaD,EAAY,GAElC,IAAKrsI,EAAQqsI,EAAWrsI,GAASssI,EAAYtsI,IACzC,GAAIksI,EAAWlsI,GAAOgqB,OAASA,EAC3B,MAGR,OAAOhqB,GAEX,MAAO,CACHm+D,KAAM,SAAS+oC,GACXtoG,KAAKwpB,YAAc8+E,EACnBtoG,KAAKqsF,SAETA,MAAO,WACHrsF,KAAK4tI,YAAc,GACnB5tI,KAAKk4F,sBAAwB,GAEjC+F,qBAAsB,WAClB,OAAOj+F,KAAKk4F,uBAEhB21C,sBAAuB,SAAS5vC,GAC5Bj+F,KAAKk4F,sBAAwB+F,GAAwB,GAEzD6vC,qBAAsB,SAAS/mI,GAC3B,OAAQ/G,KAAK+tI,qBAAuBhnI,EAAKilB,gBAE7C+hH,iBAAkB,WACd,IAAI3rC,EAAgBpiG,KAAKwpB,YAAYzB,OAAO,kBAC5C,MAAO,YAAcq6E,GAAiB,aAAeA,GAEzDpH,WAAY,WACR,IAAIsN,EAAoBtoG,KAAKwpB,YACzBD,EAAa++E,EAAkB9+E,YAC/B0rE,EAAa,EAASlwE,qBAAqBuE,EAAW7C,SAAW,IAAI9sB,OACrEohG,EAAa,SAASgzC,EAAoBrqI,EAAM+kB,EAAOmiE,GACvD,IAAI5rF,EAAS,EACb,GAAIypB,EACA,GAAKmiE,EAGD,IAAK,IAAIpvF,EAAI,EAAGA,EAAIitB,EAAM9uB,OAAQ6B,IAC1BkI,EAAKmqI,qBAAqBplH,EAAMjtB,KAChCwD,IAEJA,GAAU+uI,EAAoBrqI,EAAM+kB,EAAMjtB,GAAGitB,MAAOmiE,EAAc,QANtE5rF,EAASypB,EAAM9uB,OAUvB,OAAOqF,EAdM,CAefe,KAAMupB,EAAWb,QAASwsE,GAC5B,OAAO8F,GAEXizC,cAAe,SAASjpI,EAAUkpI,EAAiBC,EAAwBC,EAAeC,GACtF,IAAI1qI,EAAO3D,KACX,OAAO,SAASsuI,EAAkBhB,EAAYtoI,EAAUkpI,EAAiBx5C,GACrE,IAAI65C,EAAkB,GAEtB,SAASC,EAAgBxpI,EAAUmB,EAAMuuF,EAAS65C,GAC9C,IAAIE,EAAiBtoI,GAAQnB,EAASmB,EAAMuuF,GAE5C,OADA+5C,GAAkBF,EAAgBtrI,KAAKwrI,GAChCA,EAEX,IAAK,IAAIhzI,EAAI,EAAGA,EAAI6xI,EAAW1zI,OAAQ6B,IAAK,CAExC,GADAi5F,EAAQzxF,KAAKqqI,EAAW7xI,GAAG0K,OACtB+nI,IAAmB,IAAUM,EAAgBxpI,EAAUsoI,EAAW7xI,GAAG0K,KAAMuuF,EAAS65C,GACrF,OAAO,EAEX,IAAKjB,EAAW7xI,GAAG0K,MAAQmnI,EAAW7xI,GAAG0K,KAAK8e,YAAckpH,EAAwB,CAChF,IAAI9mE,EAAWimE,EAAW7xI,GAAG4rE,SACzBonE,EAAiBpnE,EAASztE,QAAU00I,EAAkBjnE,EAAUriE,EAAUkpI,EAAiBx5C,GAE/F,GADA+5C,GAAkBF,EAAgBtrI,KAAKwrI,IACnC,IAAUA,EACV,OAAO,EAGf,GAAIP,IAAmB,IAAUM,EAAgBxpI,EAAUsoI,EAAW7xI,GAAG0K,KAAMuuF,EAAS65C,GACpF,OAAO,EAENjB,EAAW7xI,GAAG0K,MAAQmnI,EAAW7xI,GAAG0K,KAAKilB,SAAWkiH,EAAW7xI,GAAG2vB,SACnEgjH,GAAgB,GAEpB15C,EAAQziE,MAEZ,IAAIy8G,EAAiBL,GAAuB35C,EAAQrxE,MAAM,GAC1D,OAAO+qH,GAAiB,UAAKtvI,MAAM,OAAGyvI,GAAiBz8C,QAAO,WAC1DnuF,EAAKgrI,wBAAwBrB,EAAYoB,MA/B1C,CAiCL/qI,EAAKiqI,YAAa5oI,EAAUkpI,EAAiB,KAEnDS,wBAAyB,SAASrB,EAAY54C,GAC1CA,EAAUA,GAAW,GACrB,IAAK,IAAItzF,EAAQ,EAAGA,EAAQksI,EAAW1zI,OAAQwH,IAAS,CACpD,IAAIwtI,EAAYtB,EAAWlsI,GAC3B,GAAIwtI,EAAUzoI,MAAQyoI,EAAUzoI,KAAKilB,SAAWwjH,EAAUxjH,OAAQ,CAC9DwjH,EAAUxjH,OAASwjH,EAAUzoI,KAAKilB,OAClC,IAAK,IAAI4iE,EAAc,EAAGA,EAAc0G,EAAQ96F,OAAQo0F,IACpD0G,EAAQ1G,GAAa5iE,OAASwjH,EAAUxjH,QAIpDkiH,EAAWxrI,MAAK,SAAUC,EAAGC,GACzB,OAAOD,EAAEqpB,OAASppB,EAAEopB,WAG5ByjH,cAAe,SAAS5lD,GAGpB,IAFA,IAAI2lD,EACAtB,EAAattI,KAAK4tI,YACbkB,EAAY,EAAGxB,GAAcwB,EAAY7lD,EAAKrvF,OAAQk1I,IAC3DF,EAAYvB,EAAmBC,EAAYrkD,EAAK6lD,IAChDxB,EAAasB,GAAaA,EAAUvnE,SAExC,OAAOunE,GAAaA,EAAUzoI,MAElC4oI,aAAc,SAASC,GAInB,IAHA,IAAIJ,EACA3lD,EAAO+lD,EAAc/lD,KACrBqkD,EAAattI,KAAK4tI,YACbkB,EAAY,EAAGA,EAAY7lD,EAAKrvF,OAAQk1I,IAAa,CAE1D,GADAF,EAAYvB,EAAmBC,EAAYrkD,EAAK6lD,KAC3CF,EAAW,CACZA,EAAY,CACR9zI,IAAKmuF,EAAK6lD,GACV1jH,OAAQ4jH,EAAc5jH,OACtBjlB,KAAM,CACFilB,OAAQ4jH,EAAc5jH,OACtBnG,YAAY,EACZgkE,KAAMA,EAAK5lE,MAAM,EAAGyrH,EAAY,IAEpCznE,SAAU,IAEd,IAAIjmE,EAAQosI,EAA0BF,EAAY0B,EAAc5jH,QAChEkiH,EAAW/5D,OAAOnyE,EAAO,EAAGwtI,GAC5BtB,EAAWC,KAAOD,EAAWC,MAAQ,GACrCD,EAAWC,KAAKxyI,KAAKC,UAAU4zI,EAAU9zI,MAAQ8zI,EAEjDE,IAAc7lD,EAAKrvF,OAAS,IAC5Bg1I,EAAUzoI,KAAO6oI,EACbJ,EAAUxjH,SAAW4jH,EAAc5jH,QACnCprB,KAAK2uI,wBAAwBrB,IAGrCA,EAAasB,EAAUvnE,WAG/B4nE,iBAAkB,WACd,OAAO,GAEXt+C,QAAS,SAAS3/E,GACd,IAAIof,EAAmBpf,EAAQof,iBAC3B68G,EAAS,mCAAqB78G,EAAiB1J,OAAS,IACxDwoH,EAAY,WAAYlvI,KAAO,mCAAqBA,KAAKmvI,QAAU,IAAMlC,EACzEpiD,EAAclpE,KAAKC,IAAIstH,EAAUt1I,OAAQqzI,EAAOrzI,QACpDoG,KAAKmvI,OAAS/+G,EAAiB1J,MAC/B,IAAK,IAAIqmC,EAAa,EAAGA,EAAa89B,EAAa99B,IAC/C,GAAImiF,EAAUniF,GAAYpmC,WAAasmH,EAAOlgF,GAAYpmC,SAAU,CAChEkkE,EAAc99B,EACd,MAGH89B,EAGC,SAASukD,EAAgB9B,EAAYvgF,EAAY89B,GAC/C,IAAK,IAAIpvF,EAAI,EAAGA,EAAI6xI,EAAW1zI,OAAQ6B,IAC/BsxD,EAAa,GAAK89B,EAClByiD,EAAW7xI,GAAG4rE,SAAW,GAEzB+nE,EAAgB9B,EAAW7xI,GAAG4rE,SAAUta,EAAa,EAAG89B,GALlE,CAQA7qF,KAAK4tI,YAAa,EAAG/iD,GAVvB7qF,KAAKqsF,SAabgjD,kBAAmB,aACnBC,iBAAkB,SAASt+H,EAAS/Q,GAChCA,EAAS+Q,IAEbu+H,qBAAsB,SAASv+H,EAAS/Q,GACpCA,EAAS+Q,KArMqB,ICnCnC,SAASw+H,GAAkBvmD,EAAM74D,GAGpC,IAFA,IAAI68G,EAAS,mCAAqB78G,EAAiB1J,OAC/CtoB,EAAS,GACJ3C,EAAI,EAAGA,EAAIwtF,EAAKrvF,OAAQ6B,IAC7B2C,EAAO6E,KAAK,CAACgqI,EAAOxxI,GAAGkrB,SAAU,IAAKsiE,EAAKxtF,KAK/C,OAHI20B,EAAiBhyB,QACjBA,EAAO6E,KAAKmtB,EAAiBhyB,QAE1B,OAAcwqB,eAAexqB,G,iBCapCqxI,GAAiB,SAASlmH,EAAYvY,GACtC,IAAIkR,EAAI,IAAI,cACRqN,EAAc,OAAA90B,EAAA,WAAO,CACrBi1B,KAAM,EACND,KAAM,EACNitE,mBAAmB,GACpB1rF,GAIH,OAHAuY,EAAW+F,KAAKC,GAAapC,MAAK,SAAUhnB,EAAMw0C,GAC9Cz4B,EAAEsN,QAAQmrB,GAASA,EAAMigD,eACzBjrE,KAAKzN,EAAE2hB,OAAOrZ,KAAKtI,IAChBA,GAEA,GAAiBkrH,GAAmB/tE,QAAQ,WACnD,IAAI8uE,EAAyB,SAASxqI,EAAMqB,EAAUopI,GAClD,OAAOzqI,EAAKsqI,eAAc,SAAUW,GAChC,IAAKA,EAAU3pH,WACX,OAAOjgB,EAAS4pI,MAEpB,GAAO,EAAOR,GAAe,IAEjCsB,EAAwB,SAAS/rI,EAAM+rB,GACvC,IAAIigH,EAAiB,EACjBC,EAAalgH,GAAQ,EAUzB,OATIA,IACAy+G,EAAuBxqI,GAAM,SAAUirI,GACnC,GAAIA,EAAUxjH,OAASukH,GAAkBjgH,EACrC,OAAO,EAEXigH,GAAkBf,EAAUrtH,MAAQ,KAExCquH,GAAcD,GAEXC,GAEPC,EAAa,SAASC,EAAOC,GAC7B,GAAID,EAAMl2I,SAAWm2I,EAAMn2I,OACvB,OAAO,EAEX,IAAK,IAAI6B,EAAI,EAAGA,EAAIq0I,EAAMl2I,OAAQ6B,IAC9B,IAAK,wBAAU,KAAMq0I,EAAMr0I,GAAIs0I,EAAMt0I,IACjC,OAAO,EAGf,OAAO,GAEPu0I,EAAqB,SAASA,EAAmBrsI,EAAM+kB,EAAOugE,EAAM79D,EAAQ6kH,GAC5E,GAAKvnH,EAAL,CAGA,IAAK,IAAIjtB,EAAI,EAAGA,EAAIitB,EAAM9uB,OAAQ6B,IAAK,CACnC,IAAIsL,EAAO2hB,EAAMjtB,GACjB,GAAI,QAASsL,QAAQ,IAAWA,EAAK2hB,MAAO,CACxCugE,EAAKhmF,KAAK8D,EAAKjM,KACXm1I,GAAuBJ,EAAWI,EAAoBhnD,KAAMA,KAAUliF,EAAKilB,iBAC3EikH,EAAoB7kH,OAASA,GAEjC,IAAIwjH,EAAYjrI,EAAKkrI,cAAc5lD,GAC/B2lD,IAAc7nI,EAAKilB,iBACnB4iH,EAAUxjH,OAASA,GAEnBwjH,IAAcA,EAAU3pH,WACxBmG,GAAUwjH,EAAUrtH,MAEpB6J,EAAS4kH,EAAmBrsI,EAAMoD,EAAK2hB,MAAOugE,EAAM79D,EAAQ6kH,GAEhEhnD,EAAKh3D,WAEL7G,IAGR,OAAOA,IAEP8kH,EAAgB,SAASA,EAAcnpI,EAAMmuF,GAC7C,IAAI3zE,EAAQxa,EAAKwa,OAASxa,EAAK2hB,MAAM9uB,OACrC,IAAKmN,EAAKwa,OAAS2zE,EAAa,EAAG,CAC/B3zE,EAAQ,EACR,IAAK,IAAI9lB,EAAI,EAAGA,EAAIsL,EAAK2hB,MAAM9uB,OAAQ6B,IACnC8lB,GAAS2uH,EAAcnpI,EAAK2hB,MAAMjtB,GAAIy5F,EAAa,GAG3D,OAAO3zE,GAEX,MAAO,CACH8tH,kBAAmB,SAASr+H,GACxB,IAIIye,EAJAW,EAAmBpf,EAAQof,iBAC3B+/G,EAAkB,GAClBC,EAAsB,EACtBC,GAAgB,EAEhB3pH,EAAQ1V,EAAQue,YAAY7I,MAC5BipH,EAAiB,EAUrB,GATE,SAASv/G,EAAkBb,GACzB,GAAIA,EAAY7I,MAAO,CACnB,IAAIumH,EAAS,EAAajoH,qBAAqBuK,EAAY7I,OACvD4pH,EAAQ,EAAatrH,qBAAqBoL,EAAiBtuB,MAC/DsuB,EAAiBtuB,KAAO,QAAYyuI,mBAAmBtD,EAAQqD,UACxD/gH,EAAY7I,OALzB,CAOA0J,EAAkBpf,EAAQue,aAC5Bve,EAAQ0V,MAAQ1V,EAAQ0V,OAASA,GAC7B1V,EAAQ8qF,gBAAZ,CAGA,IAAIvsE,EAAc,OAAA90B,EAAA,WAAO,GAAI21B,GAC7Bb,EAAYG,KAAOggH,EAAsB1vI,KAAMowB,EAAiBV,MAC5DH,EAAYG,MAAQH,EAAYE,MAAQ/I,IACxC6I,EAAYG,OACZH,EAAYE,OACZ4gH,GAAgB,GAEhB9gH,EAAYE,MAAQ/I,IACpB+I,EAAOF,EAAYE,KACnBF,EAAYE,QAEhB0+G,EAAuBnuI,MAAM,SAAU4uI,GACnC,GAAIA,EAAUxjH,QAAUmE,EAAYG,KAAOH,EAAYE,KAAOkgH,EAC1D,OAAO,EACAf,EAAUxjH,QAAUmE,EAAYG,KAAOigH,GAAkBf,EAAUrtH,QAC1EouH,GAAkBf,EAAUrtH,MAAQ,EACpC4uH,EAAgBltI,KAAK2rI,GACrBwB,GAAuBxB,EAAUrtH,UAGzC,eAAK4uH,GAAiB,WAClB5gH,EAAYnxB,OAAS,SAAS6qF,EAAM74D,EAAkB1J,GAGlD,IAFA,IAAIumH,EAAS,EAAajoH,qBAAqB0B,GAAS0J,EAAiB1J,OACrEtoB,EAAS,GACJ3C,EAAI,EAAGA,EAAIwtF,EAAKrvF,OAAQ6B,IAAK,CAElC,IADA,IAAIyxI,EAAgB,GACXzlI,EAAI,EAAGA,GAAKhM,EAAGgM,IACpBylI,EAAcjqI,KAAK,CAACgqI,EAAOxlI,GAAGkf,SAAUlrB,IAAMgM,EAAI,KAAO,IAAKwhF,EAAKxhF,KAEvErJ,EAAO6E,KAAK,EAAa2lB,eAAeskH,IAG5C,OADA9uI,EAAS,EAAawqB,eAAexqB,EAAQ,MACtC,EAAawqB,eAAe,CAACxqB,EAAQgyB,EAAiBhyB,SAX5C,CAYnB4B,KAAKipF,KAAM15D,EAAa7I,MAE9B1V,EAAQof,iBAAmBb,EAC3Bve,EAAQm/H,gBAAkBA,EAC1Bn/H,EAAQo/H,oBAAsBA,EAC9Bp/H,EAAQ0e,KAAOH,EAAYG,MAAQ,EACnC1e,EAAQq/H,cAAgBA,EACxBr/H,EAAQye,KAAOA,IAEnB6/G,iBAAkB,SAASt+H,EAAS/Q,GAChC,IAAIkwI,EAAkBn/H,EAAQm/H,gBAC1BlD,EAAS,EAAajoH,qBAAqBhU,EAAQ0V,OACnDwuE,EAAa+3C,EAAOrzI,OAExB,SAAS42I,EAAoBrqI,EAAM8iF,EAAMgkD,EAAQwD,EAAgBrlH,GAC7D,GAAKjlB,GAAS8iF,EAAKrvF,QAAWqzI,EAAOrzI,OAArC,CAGA,IAAI82I,EACAj1I,EACAk1I,EAAY,gBAAa1nD,EAAK,IAAI,GACtC,IAAKxtF,EAAI,EAAGA,EAAI0K,EAAKvM,OAAQ6B,IAAK,CAE9B,GADAi1I,EAAW,gBAAavqI,EAAK1K,GAAGX,KAAK,GACjCswB,GAAUqlH,EAAerlH,QAAUulH,IAAcD,EACjD,MAEAtlH,GAAU8kH,EAAc/pI,EAAK1K,GAAIwxI,EAAOrzI,QAG3CuM,EAAKvM,QAAU+2I,IAAcD,GAC9BvqI,EAAKotE,OAAO93E,EAAG,EAAG,CACdX,IAAKmuF,EAAK,GACVvgE,MAAO,GACPnH,MAAO,IAAM0nE,EAAKrvF,OAAS62I,EAAelvH,WAAQ,IAG1DivH,EAAoBrqI,EAAK1K,GAAGitB,MAAOugE,EAAK5lE,MAAM,GAAI4pH,EAAO5pH,MAAM,GAAIotH,EAAgBrlH,IASvF,GAPIpa,EAAQo/H,qBAAuBp/H,EAAQ2pC,OAAS3pC,EAAQ2pC,MAAMigD,YAAc,IACvE5pF,EAAQ2pC,MAAMi2F,0CACf5/H,EAAQ2pC,MAAMigD,YAAc5pF,EAAQo/H,oBACpCp/H,EAAQ2pC,MAAMi2F,yCAA0C,IAGhE3wI,EAAS+Q,GACLkkF,EAAY,CACZ,IAAI/uF,EAAO6K,EAAQ7K,KACf0qI,EAAQ,gBAAU1qI,GAItB,GAHA,QAAY2qI,gBAAgBD,EAAO5D,GAAQ8D,YAAY5jH,MAAK,SAAU6jH,GAClE7qI,EAAO6qI,KAEPb,EACA,IAAK,IAAIrB,EAAY,EAAGA,EAAYqB,EAAgBv2I,OAAQk1I,IACxD0B,EAAoBrqI,EAAMgqI,EAAgBrB,GAAW7lD,KAAMgkD,EAAQkD,EAAgBrB,GAAY99H,EAAQ0e,MAG1G1e,EAAQ8qF,iBACP,SAASm1C,EAAkBttI,EAAM+kB,EAAOugE,EAAM79D,EAAQilH,EAAe5gH,GAGnE,IAFA,IAAIyhH,EAAuB,EACvBC,GAAsB,EACjB11I,EAAI,EAAGA,EAAIitB,EAAM9uB,OAAQ6B,IAAK,CACnC,IAAIsL,EAAO2hB,EAAMjtB,GACjB,QAAI,IAAWsL,EAAK2hB,MAAO,CACvBugE,EAAKhmF,KAAK8D,EAAKjM,KACf,IAAI8zI,EAAYjrI,EAAKkrI,cAAc5lD,GACnC,GAAI2lD,IAAcA,EAAU3pH,WACxBle,EAAKikF,eAAiBjkF,EAAK2hB,MAC3B3hB,EAAK2hB,MAAQ,KACb0C,GAAUwjH,EAAUrtH,MACpBkO,IACIA,EAAO,GACPyhH,IAEAb,IACAc,GAAsB,QAEvB,GAAIpqI,EAAK2hB,MAAO,CACnB,IAAI0oH,EAAaH,EAAkBttI,EAAMoD,EAAK2hB,MAAOugE,EAAM79D,EAAQilH,EAAe5gH,GAC9E4gH,IACIe,EAAWhmH,OAASA,EAAS,EAC7BrkB,EAAKilB,gBAAiB,EAEtBmlH,GAAsB,GAG9B/lH,EAASgmH,EAAWhmH,OACpBqE,EAAO2hH,EAAW3hH,KACdA,EAAO,IACH1oB,EAAK2hB,MAAM9uB,OACXmN,EAAKowF,0BAA2B,EAEhC+5C,KAIZjoD,EAAKh3D,WAEDo+G,IACAc,GAAsB,GAE1B/lH,IACAqE,IACIA,EAAO,GACPyhH,IAGRb,GAAgB,EAQpB,OANIc,GACAzoH,EAAM6qD,OAAO,EAAG,GAEhB29D,GACAxoH,EAAM6qD,QAAQ29D,EAAsBA,GAEjC,CACH9lH,OAAQA,EACRqE,KAAMA,GA3DZ,CA6DAzvB,KAAMmG,EAAM,GAAI6K,EAAQ0e,KAAM1e,EAAQq/H,cAAer/H,EAAQye,MAEnEze,EAAQ7K,KAAOA,IAGvB2nI,qBAAsB,SAAS/mI,GAC3B,OAAO,OAASA,EAAK2hB,OAEzBmlH,sBAAuB,WACnB,IAAIwD,EAAuB,EAC3BlD,EAAuBnuI,MAAM,SAAU4uI,GAC/BA,EAAUrtH,QACV8vH,GAAwBzC,EAAUrtH,MAAQ,MAGlDvhB,KAAKC,SAASoxI,IAElBC,gBAAiB,SAASroD,GACtB,IAMIsoD,EANA5tI,EAAO3D,KACPupB,EAAa5lB,EAAK6lB,YAClBgoH,EAAiBjoH,EAAWioH,eAAiBjoH,EAAWioH,iBAAmBjoH,EAAWgyC,YACtFk2E,EAAkBloH,EAAWb,QAC7B0C,EAASskH,EAAsB/rI,EAAM6tI,EAAiBjoH,EAAWiyC,YACjEozE,EAAYjrI,EAAKkrI,cAAc5lD,GAYnC,OATIsoD,EADA3C,IAAcA,EAAU3pH,YACN,IAAK,eAAUuK,QAAQo/G,EAAUrtH,OAEjCkuH,GAAelmH,EAAY,CACzCnrB,OAAQoxI,GAAkBvmD,EAAM,CAC5B7qF,OAAQmrB,EAAWnrB,SACnBsoB,MAAO6C,EAAW7C,YAIvB,kBAAK6qH,GAAiBpkH,MAAK,SAAU5L,GACxCA,EAAQhgB,SAASggB,EAAM3nB,OAAS2nB,EAAM,GAAKA,GACvCqtH,GACAoB,EAAmBrsI,EAAM8tI,EAAiB,GAAIrmH,GAC9CwjH,EAAU3pH,YAAc2pH,EAAU3pH,WAClC2pH,EAAUrtH,MAAQA,IAElBqtH,EAAY,CACRxjH,QAAS,EACT7J,MAAOA,EACP0nE,KAAMA,EACNhkE,YAAY,GAEhB+qH,EAAmBrsI,EAAM8tI,EAAiB,GAAIrmH,EAAQwjH,GAClDA,EAAUxjH,QAAU,GACpBznB,EAAKorI,aAAaH,IAG1BjrI,EAAKkqI,2BACLl+G,MAAK,WACLpG,EAAW0uE,gBAAgB0G,UAAU,YAAaz+F,eAG1D+uI,iBAAkB,WACd,OAAO,GAEXt+C,QAAS,SAAS3/E,EAASqkF,GACvB,IAAI1xF,EAAO3D,KACPowB,EAAmBpf,EAAQof,iBAC3B7G,EAAa5lB,EAAK6lB,YAEtB,GADAxpB,KAAKC,SAASnB,MAAMkB,KAAME,WACtBm1F,EAAeC,OACf,OAAO64C,EAAuBxqI,GAAM,SAAUirI,GAC1C,IAAI2C,EAAkB9B,GAAelmH,EAAY,CAC7CnrB,OAAQoxI,GAAkBZ,EAAU3lD,KAAM74D,KAE1CshH,EAAmBjC,GAAelmH,EAAY,CAC9CnrB,OAAQ2uI,GAAmB6B,EAAU3lD,KAAM74D,KAE/C,OAAO,kBAAKshH,EAAkBH,GAAiBpkH,MAAK,SAAU/B,EAAQ7J,GAClE6J,EAAS7pB,SAAS6pB,EAAOxxB,OAASwxB,EAAO,GAAKA,GAC9C7J,EAAQhgB,SAASggB,EAAM3nB,OAAS2nB,EAAM,GAAKA,GAC3CqtH,EAAUxjH,OAASA,EACfwjH,EAAUrtH,QAAUA,IACpBqtH,EAAUrtH,MAAQA,EAClB5d,EAAKkqI,+BAGb,KArUmC,I,aCfvD,SAAS8D,GAA0BC,EAAap2E,EAAU0zD,EAAWniE,GAEjE,GADAA,EAAaA,GAAc,EACvByO,EAAW,GAAK0zD,EAAY,EAAG,CAC/B,IAAI2iB,EAAaD,EAAcjwH,KAAKI,MAAM6vH,EAAcp2E,GAAYA,GAAYA,EAKhF,OAJAq2E,GAAc3iB,EAAYniE,EAAa,EACnC8kF,EAAa,IACbA,GAAcr2E,GAEX75C,KAAKI,MAAM8vH,GAAcr2E,EAAWzO,EAAa,IAE5D,OAAO,EAEJ,IAAI,GAAiBqgF,GAAmB/tE,QAAQ,WACnD,IAAIyyE,EAAwB,SAASnuI,EAAMqB,EAAU+sI,GACjD,OAAOpuI,EAAKsqI,eAAc,SAAUW,EAAWl6C,GAC3C,GAAIk6C,EAAU3pH,WACV,OAAOjgB,EAAS4pI,EAAWl6C,MAE/B,GAAM,EAAOq9C,EAAcA,IAE/Bd,EAAoB,SAASA,EAAkBttI,EAAM+kB,EAAOmiE,EAAamnD,EAAc/oD,EAAM6S,EAAiBm2C,GAC9G,IAAIhtH,EAKJ,GAJA+sH,EAAatpH,MAAQspH,EAAatpH,OAAS,GAC3CspH,EAAaE,MAAQF,EAAaE,OAAS,GAC3CF,EAAazwH,MAAQywH,EAAazwH,OAAS,EAC3CywH,EAAaG,UAAYH,EAAaG,WAAa,EAC9CtnD,EAGL,IAAK,IAAIpvF,EAAI,EAAGA,EAAIitB,EAAM9uB,OAAQ6B,IAAK,CACnC,IAAIsL,EAAO2hB,EAAMjtB,GACjB,QAAI,IAAWsL,EAAK2hB,MAAO,CAEvB,GADAugE,EAAKhmF,KAAK8D,EAAKjM,KACXghG,EACA72E,GAAa,MACV,CACH,IAAI2pH,EAAYjrI,EAAKkrI,cAAc5lD,GACnChkE,EAAa2pH,GAAaA,EAAU3pH,WAEnCA,EAGMle,EAAK2hB,MACZuoH,EAAkBttI,EAAMoD,EAAK2hB,MAAOmiE,EAAc,EAAGmnD,EAAc/oD,EAAM6S,EAAiBm2C,GACnF,IAAMpnD,IAAe9jF,EAAKwa,OAAWu6E,IAAmBm2C,IAC/DD,EAAatpH,MAAMzlB,KAAK8D,GACxBirI,EAAaE,MAAMjvI,KAAKgmF,EAAK5lE,MAAM,IACnC2uH,EAAazwH,OAASywH,EAAaG,UACnCH,EAAaG,UAAYprI,EAAKwa,QAR9Bxa,EAAKikF,eAAiBjkF,EAAK2hB,MAC3B3hB,EAAK2hB,MAAQ,MASjBugE,EAAKh3D,SAIbmgH,EAAsB,SAASzuI,EAAMoD,EAAMsrI,EAAkBppD,EAAM79D,GACnE,IACI7J,EADAqtH,EAAYjrI,EAAKkrI,cAAc5lD,GAE9B2lD,GAWGyD,EACAzD,EAAUrtH,MAAQxa,EAAKwa,MAAQ,EAAIxa,EAAKwa,MAAQxa,EAAK2hB,OAAS3hB,EAAK2hB,MAAM9uB,QAAU,EAEnFmN,EAAKwa,MAAQqtH,EAAUrtH,OAASxa,EAAKwa,MAEzCqtH,EAAUxjH,OAASA,IAffinH,IACA9wH,EAAQxa,EAAKwa,MAAQ,EAAIxa,EAAKwa,MAAQxa,EAAK2hB,MAAM9uB,QAErD+J,EAAKorI,aAAa,CACd9pH,WAAYthB,EAAK2uI,iBAAiBrpD,EAAKrvF,OAAS,GAChDqvF,KAAMA,EAAK5lE,MAAM,GACjB+H,OAAQA,EACR7J,MAAOA,GAAS,MAWxBgxH,EAAmB,SAASA,EAAiB5uI,EAAMqN,EAAS0X,EAAO8pH,EAAkBzlF,EAAYk8B,EAAM+E,GACvG,IAKIzsE,EALA2zE,EAAalkF,EAAQ0V,MAAQ1V,EAAQ0V,MAAM9sB,OAAS,EACpDy4I,EAAmBn9C,IAAes9C,EAClCC,EAAezhI,EAAQie,iBAAiBm5B,OACxCh9B,EAAS,EACTwvE,EAAa,EAOjB,GALA7tC,EAAaA,GAAc,EAC3Bk8B,EAAOA,GAAQ,GACXwpD,IAAiBzkD,IACjB5iE,EAAS,IAAM2hC,EAAa/7C,EAAQ0e,MAAQ,EAAI1e,EAAQgmF,MAAMjqC,EAAa,IAAM,GAEjFA,GAAcylF,EACd,OAAO9pH,EAAM9uB,OAEjB,IAAK,IAAI6B,EAAI,EAAGA,EAAIitB,EAAM9uB,OAAQ6B,IAAK,CACnC,IAAIsL,EAAO2hB,EAAMjtB,GACjB,GAAIsL,EAAM,CAEN,GADAkiF,EAAKhmF,KAAK8D,EAAKjM,MACViM,EAAKwa,QAAUxa,EAAK2hB,YAAS,IAAW3hB,EAAK2hB,MAC9C,OAAQ,EAIZ,GAFA0pH,EAAoBzuI,EAAMoD,EAAMsrI,EAAkBppD,EAAM79D,EAAS3vB,GACjE8lB,EAAQxa,EAAK2hB,MAAQ6pH,EAAiB5uI,EAAMqN,EAASjK,EAAK2hB,MAAO8pH,EAAkBzlF,EAAa,EAAGk8B,EAAMxtF,GAAKsL,EAAKwa,QAAU,EACzHA,EAAQ,EACR,OAAQ,EAEZq5E,GAAcr5E,EACd0nE,EAAKh3D,OAGb,OAAO2oE,GAEP83C,EAAkB,SAASzF,EAAQlgF,GACnC,OAAOkgF,GAAUA,EAAOrzI,QAAUqzI,EAAOlgF,MAAiBkgF,EAAOlgF,GAAY9nC,YAE7E0tH,EAAiB,SAASC,EAAYp3E,EAAUpwC,GAGhD,IAFA,IAAI8jG,EACA2jB,EAAcznH,EACT2hC,EAAa,EAAGA,EAAa6lF,EAAWh5I,OAAQmzD,IACrDmiE,EAAY0jB,EAAW7lF,GAAY3hC,OAAS,EACxC2hC,EAAa,IACbmiE,GAAa0jB,EAAW7lF,EAAa,GAAG+lF,mBACpCt3E,IACA0zD,GAAayiB,GAA0BkB,EAAar3E,EAAU0zD,EAAWniE,EAAa,GAAKA,IAGnG8lF,GAAe3jB,EAEnB,OAAO2jB,GAGX,SAASE,EAA6B/hI,EAASghI,EAAcgB,EAAYC,GACrE,IAAIlsI,EAAOirI,EAAatpH,MAAMuqH,GAC1BvjH,EAAO1e,EAAQgmF,OAAShmF,EAAQgmF,MAAMg8C,GACtCvjH,EAAOze,EAAQimF,OAASjmF,EAAQimF,MAAM+7C,GACtCE,EAAqBD,IAAsBjB,EAAatpH,MAAM9uB,OAAS,EACvEu5I,EAAsB,IAAMF,EAC5BG,EAAuBD,GAAuBzjH,GAAQ,EACtD2jH,EAAyBtsI,EAAKwa,MAAQkO,EAAO2jH,EAC7CD,QAAuB,IAAWzjH,IAClC3oB,EAAKilB,gBAAiB,GAEtBknH,QAAsB,IAAWzjH,GAAQ4jH,IACzCtsI,EAAKowF,0BAA2B,GAIxC,SAASm8C,EAAentI,GACpB,OAAQtH,MAAM0nB,QAAQpgB,GAG1B,SAASotI,EAAiBviI,GACjBsiI,EAAetiI,EAAQ7K,QACxB6K,EAAQ7K,KAAO,IAAI,eAI3B,SAASqtI,EAAe7vI,EAAMqN,EAASwhI,EAAkBR,EAAcgB,EAAY7sI,GAC1E6K,EAAQ8qF,kBACTk2C,EAAe,GACff,EAAkBttI,EAAMwC,EAAMqsI,EAAkBR,EAAc,IAC5D,SAAShhI,EAASghI,EAAcyB,GAC9B,IAAIC,EAAoBD,EAAoB,EACxCv+C,EAAalkF,EAAQ0V,MAAQ1V,EAAQ0V,MAAM9sB,OAAS,EACxDo4I,EAAatiH,KAAO1e,EAAQgmF,OAAShmF,EAAQgmF,MAAM08C,GAC/C1iI,EAAQimF,YAAS,IAAWjmF,EAAQimF,MAAMy8C,KAEtC1B,EAAaviH,KADbylE,IAAeu+C,GACKzB,EAAazwH,MAAQywH,EAAazwH,OAASywH,EAAatiH,MAAQ,GAEhE,EAExBsiH,EAAaviH,MAAQze,EAAQimF,MAAMy8C,IAVzC,CAYA1iI,EAASghI,EAAcQ,IAE7B,IAAIt9C,EAAalkF,EAAQ0V,MAAQ1V,EAAQ0V,MAAM9sB,OAAS,EACpDo4I,EAAaE,MAAMt4I,QAAUs7F,EAAas9C,EAAmB,GAC7De,EAAiBviI,GACf,SAASrN,EAAMqN,EAASghI,EAAcQ,EAAkBQ,EAAY7sI,GAClE,IAAI8mI,EAASj8H,EAAQ0V,OAAS,GAC1BitH,EAAe1G,EAAO+F,EAAa,GACnCniD,EAAY,GAChB,eAAKmhD,EAAaE,OAAO,SAAUe,GAC/B,IAAI1jH,EAAc,CACdmtE,mBAAmB,EACnBk3C,mBAAmB,EACnBltH,MAAO,CAACitH,GACRE,aAAc7iI,EAAQof,iBAAiByjH,aACvCz1I,OAAQoxI,GAAkBwC,EAAaE,MAAMe,GAAoB,CAC7D70I,OAAQ4S,EAAQof,iBAAiBhyB,OACjCsoB,MAAOumH,IAEX7/G,OAAQpc,EAAQof,iBAAiBhD,QAEjC,IAAM6lH,IACN1jH,EAAYG,KAAOsiH,EAAatiH,MAAQ,GAExCujH,IAAsBjB,EAAaE,MAAMt4I,OAAS,IAClD21B,EAAYE,KAAOuiH,EAAaviH,MAEpC,IAAI8uE,EAAa,IAAMhvE,EAAYE,KAAO,GAAK9rB,EAAK6lB,YAAY60E,cAAc9uE,GAC9E,kBAAKgvE,GAAYpxE,MAAK,SAAUhnB,GAC5B,IAAIY,EAAOirI,EAAatpH,MAAMuqH,GAC9BF,EAA6B/hI,EAASghI,EAAcgB,EAAYC,GAChElsI,EAAK2hB,MAAQviB,KAEjB0qF,EAAU5tF,KAAKs7F,MAEnB,UAAKz/F,MAAM,KAAM+xF,GAAW1jE,MAAK,WAC7BolH,EAAiB5uI,EAAMqN,EAAS7K,EAAMqsI,EAAmB,GACzDgB,EAAe7vI,EAAMqN,EAASwhI,EAAmB,EAAGR,EAAcgB,EAAa,EAAG7sI,MAhCxF,CAkCAxC,EAAMqN,EAASghI,EAAcQ,EAAkBQ,EAAY7sI,IACtD6rI,EAAaE,MAAMt4I,QAAUoX,EAAQof,iBAAiB1J,OAC7D6sH,EAAiBviI,GACf,SAASrN,EAAMqN,EAASghI,EAAc7rI,GACpC,IAAI2tI,EAAkB,GAClB7G,EAASj8H,EAAQ0V,OAAS,GAC9B,eAAKsrH,EAAaE,OAAO,SAAUnzI,EAAGg1I,GAClCD,EAAgB7wI,KAAKusI,GAAkBuE,EAAc,CACjDrtH,MAAO1V,EAAQ8qF,gBAAkB9qF,EAAQof,iBAAiB1J,MAAQumH,QAG1E,IAAI7uI,EAAS4S,EAAQof,iBAAiBhyB,OACjC4S,EAAQof,iBAAiBquE,eAC1BrgG,EAAS,EAAawqB,eAAe,CAACxqB,EAAQ,EAAawqB,eAAekrH,EAAiB,SAE/F,IAAIvkH,EAAc,OAAA90B,EAAA,WAAO,GAAIuW,EAAQof,iBAAkB,CACnDssE,mBAAmB,EACnBk3C,mBAAmB,EACnBltH,MAAO,KACP5kB,KAAMmrI,EAAOp7H,OAAO,EAAamT,qBAAqBhU,EAAQof,iBAAiBtuB,MAAQ,KACvF1D,OAAQA,IAER41I,EAAgBrwI,EAAK6lB,YAAYyqH,mCAChCD,IACDzkH,EAAYG,KAAOsiH,EAAatiH,KAChCH,EAAYE,KAAOuiH,EAAaviH,MAEpC,kBAAK,IAAMuiH,EAAaviH,KAAO,GAAK9rB,EAAK6lB,YAAY60E,cAAc9uE,IAAcpC,MAAK,SAAUzE,EAAOiyB,GAC/Fq5F,IACAtrH,EAAQ/kB,EAAK6lB,YAAY0qH,wBAAwBxrH,EAAOukH,EAAQ+E,EAAaE,OAC7ExpH,EAAQspH,EAAatiH,KAAOhH,EAAMrF,MAAM2uH,EAAatiH,MAAQhH,EAC7DA,EAAQspH,EAAaviH,KAAO/G,EAAMrF,MAAM,EAAG2uH,EAAaviH,MAAQ/G,GAEpE,eAAKspH,EAAatpH,OAAO,SAAUtnB,EAAO2F,GACtC,IAAIgqG,EAAYhqG,EAAKwa,OAAS,IAAMngB,GAAS4wI,EAAatiH,MAAQ,GAC9DykH,EAAgBzrH,EAAM6qD,OAAO,EAAGw9B,GACpCgiC,EAA6B/hI,EAASghI,EAAc/E,EAAOrzI,OAAS,EAAGwH,GACvE2F,EAAK2hB,MAAQyrH,KAEjBnjI,EAAQ7K,KAAKqpB,QAAQrpB,MACrBwpB,KAAK3e,EAAQ7K,KAAK09B,QArCxB,CAsCAlgC,EAAMqN,EAASghI,EAAc7rI,IACxBmtI,EAAetiI,EAAQ7K,OAC9B6K,EAAQ7K,KAAKqpB,QAAQrpB,GAG7B,IAAIiuI,EAAsB,SAAS7qH,EAAYvY,GAC3C,IAAIkR,EAAI,IAAI,cACRmyH,KAAgBrjI,EAAQ0V,QAAS1V,EAAQ0V,MAAM9sB,QAC/C21B,EAAc,OAAA90B,EAAA,WAAO,CACrBi1B,KAAM,EACND,KAAM,EACNmkH,kBAAmBS,EACnB33C,mBAAoB23C,GACrBrjI,EAAS,CACR0V,MAAO2tH,EAAarjI,EAAQ0V,MAAQ,OAUxC,OARA6C,EAAW+F,KAAKC,GAAapC,MAAK,SAAUhnB,EAAMw0C,GAC9C,IAAIp5B,EAAQo5B,IAAU05F,EAAa15F,EAAMu6C,WAAav6C,EAAMigD,YACvD05C,SAAS/yH,GAIdW,EAAEsN,QAAQjO,GAHNW,EAAE2hB,OAAO,QAAWnI,MAAM24G,EAAa,QAAU,aAIrD1kH,KAAKzN,EAAE2hB,OAAOrZ,KAAKtI,IAChBA,GAEX,MAAO,CACH2rH,sBAAuB,SAAS78H,GAC5B,IAAIktF,EAAkB,EAClBtD,EAAa5pF,EAAQ2pC,OAAS3pC,EAAQ2pC,MAAMigD,YAAc,EAC1D1F,EAAalkF,EAAQ2pC,OAAS3pC,EAAQ2pC,MAAMu6C,YAAc,EAC1D15B,EAAWx7D,KAAKwpB,YAAYgyC,WAC5B+4E,EAAkBv0I,KAAK+tI,mBAC3B+D,EAAsB9xI,MAAM,SAAU4uI,GAClCA,EAAUkE,mBAAqB,KAEnChB,EAAsB9xI,MAAM,SAAU4uI,EAAWl6C,GAC7C,IAAIm+C,EAAcF,EAAej+C,EAAS6/C,EAAkB,EAAI/4E,EAAU0iC,GACtE38E,EAAQqtH,EAAUrtH,MAAQqtH,EAAUkE,mBACnCyB,IACDhzH,GAASowH,GAA0BkB,EAAar3E,EAAUj6C,EAAOmzE,EAAQ96F,OAAS,IAElF86F,EAAQA,EAAQ96F,OAAS,GACzB86F,EAAQA,EAAQ96F,OAAS,GAAGk5I,oBAAsBvxH,EAElD28E,GAAmB38E,KAG3BvhB,KAAKC,SAASi+F,EAAkBtD,EAAa1F,IAEjDo9C,iBAAkB,SAASvlF,GACvB,IAAIkgF,EAASjtI,KAAKwpB,YAAY9C,QAC9B,OAAOgsH,EAAgBzF,EAAQlgF,IAEnCynF,qBAAsB,SAASxjI,EAAShM,GACpC,IAAIuvI,EAAkBv0I,KAAK+tI,mBACvBvyE,EAAWx7D,KAAKwpB,YAAYgyC,WAC5Bw7B,EAAQ,GACRC,EAAQ,GACRw9C,EAAyB,EACzB3B,EAAqB,EACrB9hI,EAAQye,OACRqiH,EAAsB9xI,MAAM,SAAU4uI,GAClCA,EAAUkE,mBAAqB,EAC/BlE,EAAU6F,uBAAyB,KAEvC3C,EAAsB9xI,MAAM,SAAU4uI,EAAWl6C,GAC7C,IAAIjlE,EACAilH,EAAiB,EACjBC,EAAuB,EACvB9B,EAAcF,EAAej+C,EAAS6/C,EAAkB,EAAI/4E,EAAUs3E,GACtE8B,EAAyB,EACzBC,EAA6B,EAC7BC,EAAiBlG,EAAUrtH,MAAQqtH,EAAUkE,mBAC7CiC,EAAyBD,EAC7B9vI,GAAYA,EAAS4pI,EAAWiE,GAChC,IAAInjH,EAAO1e,EAAQ0e,KAAOmjH,EACtBA,GAAe7hI,EAAQ0e,KAAO1e,EAAQye,MAAQqlH,IAC9CrlH,EAAOze,EAAQye,KACV8kH,IACDK,EAAyBjD,GAA0BkB,EAAar3E,EAAUs5E,EAAgBpgD,EAAQ96F,OAAS,GAC3Gk7I,GAAkBF,EAAyBlgD,EAAQ96F,OACnDm7I,GAA0BH,EACtBp5E,GAAY9rC,GAAQ,IACpBglH,EAAiBhgD,EAAQ96F,OACzB+6I,EAAuBjgD,EAAQ96F,OAAS,EACxCi7I,EAA6BlzH,KAAKI,MAAM2N,EAAO8rC,KAGnD9rC,GAAQ,GACJmjH,EAAciC,EAAiB9jI,EAAQ0e,MACvCsnE,EAAMxlE,QAAQ9B,EAAOmlH,EAA6BH,EAAiB9F,EAAU6F,wBAE7E5B,EAAciC,GAAkB9jI,EAAQ0e,KAAOD,GAC/CwnE,EAAMzlE,QAAQ/B,EAAOilH,EAAiB9F,EAAUkE,mBAAqBlE,EAAU6F,yBAE5E5B,EAAciC,GAAkB9jI,EAAQ0e,KAAOD,GACtDwnE,EAAMzlE,QAAQ/B,EAAOC,EAAOk/G,EAAUkE,qBAG1CD,GAAe7hI,EAAQ0e,OACnBglE,EAAQA,EAAQ96F,OAAS,GACzB86F,EAAQA,EAAQ96F,OAAS,GAAG66I,wBAA0B9yH,KAAKC,IAAImzH,EAAwBrlH,EAAO,EAAImlH,EAA6BF,GAE/HF,GAA0B9yH,KAAKC,IAAImzH,EAAwBrlH,EAAO,IAGtEmjH,GAAe7hI,EAAQ0e,KAAOD,IAC9BqlH,EAAiBnzH,KAAKC,IAAImzH,EAAwBrlH,EAAOD,GAAQolH,EAA6B,GAAKF,GAC/FjgD,EAAQA,EAAQ96F,OAAS,GACzB86F,EAAQA,EAAQ96F,OAAS,GAAGk5I,oBAAsBgC,EAElDhC,GAAsBgC,MAIlC9jI,EAAQ0e,MAAQ+kH,EAChBzjI,EAAQye,MAAQqjH,EAAqB2B,GAEzCzjI,EAAQgmF,MAAQA,EAChBhmF,EAAQimF,MAAQA,GAEpBq6C,gBAAiB,SAASroD,GACtB,IAAI2lD,EAAY5uI,KAAK6uI,cAAc5lD,GAC/B1/D,EAAavpB,KAAKwpB,YAClBwrH,EAAoBzrH,EAAW0F,mBAAmBC,YAClD+9G,EAAS,EAAajoH,qBAAqBuE,EAAW7C,SAC1D,OAAIkoH,GACAA,EAAU3pH,YAAc2pH,EAAU3pH,WAC9B+vH,GAAqBpG,EAAU3pH,YAAcgkE,EAAKrvF,OAASqzI,EAAOrzI,OAC3Dw6I,EAAoB7qH,EAAY,CACnCnrB,OAAQoxI,GAAkBvmD,EAAM,CAC5B7qF,OAAQmrB,EAAWsoE,kBAAkBzzF,OACrCsoB,MAAO6C,EAAW7C,UAEtBA,MAAO,CAACumH,EAAOhkD,EAAKrvF,SACpBwzB,OAAQ7D,EAAW6D,WACpBD,MAAK,SAAU+nE,GACd05C,EAAUrtH,MAAQ2zE,MAGnB,IAAK,eAAU1lE,YAEnB,IAAK,eAAUqU,UAE1BwrG,kBAAmB,SAASr+H,GACxB,IAAIof,EAAmBpf,EAAQof,iBAC3B68G,EAAS,EAAajoH,qBAAqBoL,EAAiB1J,OAAS1V,EAAQue,YAAY7I,OAC7F,IAAI1V,EAAQ8qF,iBAAoBmxC,EAAOrzI,OAAvC,CAGA,GAAIoX,EAAQie,iBAAiB61B,SAAU,CACnC,IAAI2tF,EAAezyI,KAAKwpB,YAAYyF,mBAAmBm5B,OACvDh4B,EAAiB1J,MAAQ,EAAa1B,qBAAqBoL,EAAiB1J,OAC5E0J,EAAiB1J,MAAMxlB,SAAQ,SAAUwlB,EAAOtlB,GAC5C,IAAI6zI,EAAc7zI,IAAUgvB,EAAiB1J,MAAM9sB,OAAS,EAC5D8sB,EAAMzB,YAAcwtH,IAAiBwC,KAG7CjkI,EAAQ0V,MAAQ1V,EAAQ0V,OAASumH,EAC7Bj8H,EAAQie,iBAAiBm5B,QACzBp3C,EAAQ0e,KAAOU,EAAiBV,KAChC1e,EAAQye,KAAOW,EAAiBX,KAChCW,EAAiBwjH,mBAAoB,EACrCxjH,EAAiB1J,MAAQumH,EAAO5pH,MAAM,EAAG,GACzCrjB,KAAKw0I,qBAAqBxjI,GAC1Bof,EAAiBV,KAAO1e,EAAQ0e,KAChCU,EAAiBX,KAAOze,EAAQye,OAEhCze,EAAQ0e,KAAO1e,EAAQue,YAAYG,KACnC1e,EAAQye,KAAOze,EAAQue,YAAYE,KACnCzvB,KAAKw0I,qBAAqBxjI,MAGlCu+H,qBAAsB,SAASv+H,EAAS/Q,GACpC,IAEI26F,EAFA43C,EAAmB,EAAaxtH,qBAAqBhU,EAAQof,iBAAiB1J,OAAS1V,EAAQue,YAAY7I,OAAO9sB,OAClHs7F,EAAalkF,EAAQ0V,MAAQ1V,EAAQ0V,MAAM9sB,OAAS,EAEpDo4I,EAAe,GACnB,GAAIhhI,EAAQ8qF,gBACR77F,EAAS+Q,GACTigI,EAAkBjxI,KAAMgR,EAAQ7K,KAAMqsI,EAAkBR,EAAc,GAAIhhI,EAAQ8qF,gBAAiB9qF,EAAQof,iBAAiBquE,kBACzH,CAOH,GANKztF,EAAQie,iBAAiBm5B,QAC1BpoD,KAAKiuI,eAAc,SAAUW,GACzBA,EAAUrtH,MAAQ,KAG1Bq5E,EAAa23C,EAAiBvyI,KAAMgR,EAASA,EAAQ7K,KAAMqsI,GACvD53C,EAAa,EAEb,YADA5pF,EAAQ7K,MAAO,IAAK,eAAU09B,OAAO,OAAOnI,MAAM,WAStD,GANK1qB,EAAQie,iBAAiBm5B,QACtBoqF,GAAoBxhI,EAAQ2pC,OAAS3pC,EAAQue,YAAYmtE,oBACzD1rF,EAAQ2pC,MAAMigD,WAAaA,EAC3B5pF,EAAQ2pC,MAAMu6C,WAAalkF,EAAQ7K,KAAKvM,QAG5Cs7F,GAAclkF,EAAQof,iBAAiBwjH,oBAAsBU,SAAStjI,EAAQ2pC,MAAMu6C,YAEpF,YADAlkF,EAAQ7K,MAAO,IAAK,eAAU09B,OAAO,QAAWnI,MAAM,WAG1D17B,KAAK6tI,sBAAsB78H,GACtBA,EAAQie,iBAAiBm5B,QAC1BpoD,KAAKw0I,qBAAqBxjI,GAE9B/Q,EAAS+Q,GACJA,EAAQie,iBAAiBm5B,QAC1BpoD,KAAKk1I,eAAelkI,EAASwhI,GAGrCgB,EAAexzI,KAAMgR,EAASwhI,EAAkBR,EAAc,EAAGhhI,EAAQ7K,OAE7EgvI,cAAe,SAASzsH,EAAOsuE,EAAO9B,GAClC,GAAKA,EAAL,CAGA,IAAIkgD,EAAY1sH,EAAM,GAClBgH,EAAOsnE,EAAM,GACb3vB,EAAW+tE,GAAaA,EAAU1sH,WAClC,IAAWgH,IACX0lH,EAAUppH,gBAAiB,EACvBq7C,IACA+tE,EAAU1sH,MAAQ2+C,EAAShkD,MAAMqM,GACjC1vB,KAAKm1I,cAAcC,EAAU1sH,MAAOsuE,EAAM3zE,MAAM,GAAI6xE,EAAa,OAI7EmgD,cAAe,SAAS3sH,EAAOsuE,EAAOC,EAAO/B,EAAYR,GACrD,GAAKQ,GAAexsE,EAApB,CAGAgsE,EAAUA,GAAW,GACrB,IAAI4gD,EAAW5sH,EAAMA,EAAM9uB,OAAS,GAChCytE,EAAWiuE,GAAYA,EAAS5sH,MAChC+G,EAAOwnE,EAAM,GACbvnE,EAAOsnE,EAAM,GACjB,GAAIs+C,EAAU,CACV,IAAIC,EAAeD,EAAS/zH,OAAS+zH,EAAStpH,gBAAkB0D,GAAQ,IAAM23C,EAASztE,YACnF,IAAW61B,GAAQ8lH,EAAe9lH,IAClC6lH,EAASn+C,0BAA2B,EACpCzC,EAAQxzF,SAAQ,SAAUgtB,GACtBA,EAAOipE,0BAA2B,KAElC9vB,IACAA,EAAWA,EAAShkD,MAAM,EAAGoM,GAC7B6lH,EAAS5sH,MAAQ2+C,IAGzBqtB,EAAQzxF,KAAKqyI,GACbt1I,KAAKq1I,cAAchuE,EAAU2vB,EAAM3zE,MAAM,GAAI4zE,EAAM5zE,MAAM,GAAI6xE,EAAa,EAAGR,MAGrFwgD,eAAgB,SAASlkI,EAASkkF,GAC9Bl1F,KAAKm1I,cAAcnkI,EAAQ7K,KAAM6K,EAAQgmF,MAAO9B,GAChDl1F,KAAKq1I,cAAcrkI,EAAQ7K,KAAM6K,EAAQgmF,MAAOhmF,EAAQimF,MAAO/B,IAEnE++C,iCAAkC,WAC9B,OAAO,GAEXC,wBAAyB,SAASxrH,GAC9B,OAAOA,GAEXioE,QAAS,SAAS3/E,EAASqkF,GACvB,IAKIpwE,EACA8nC,EANAppD,EAAO3D,KACPupB,EAAa5lB,EAAK6lB,YAClB4G,EAAmBpf,EAAQof,iBAC3B1J,EAAQ1V,EAAQ0V,OAAS1V,EAAQof,iBAAiB1J,MAClDwoH,EAAY,EAAalqH,qBAAqBrhB,EAAKwrI,QAIvD,SAASqG,EAAY5G,EAAWl6C,GACxBA,EAAQ96F,SAAWmzD,EAAa,IAChC6hF,EAAU3pH,WAAaA,GAG/B,IAAK8nC,EAAa,EAAGA,EAAamiF,EAAUt1I,OAAQmzD,IAChD9nC,EAAaytH,EAAgBhsH,EAAOqmC,GAChC2lF,EAAgB/uI,EAAKwrI,OAAQpiF,KAAgB9nC,GAC7CthB,EAAKsqI,cAAcuH,GAI3B,GADA7xI,EAAK1D,SAASnB,MAAMkB,KAAME,WACtBwmB,GAAS1V,EAAQie,iBAAiBm5B,QAAUitC,EAAeC,OAC3D,OAAOw8C,EAAsBnuI,GAAM,SAAUirI,GACzC,IAAI2C,EAAkB6C,EAAoB7qH,EAAY,CAClDnrB,OAAQoxI,GAAkBZ,EAAU3lD,KAAM,CACtC7qF,OAAQgyB,EAAiBhyB,OACzBsoB,MAAOA,IAEXA,MAAOA,EAAMrD,MAAMurH,EAAU3lD,KAAKrvF,QAClCwzB,OAAQgD,EAAiBhD,SAEzBskH,EAAmB0C,EAAoB7qH,EAAY,CACnDnrB,OAAQ2uI,GAAmB6B,EAAU3lD,KAAM,CACvC7qF,OAAQgyB,EAAiBhyB,OACzBsoB,MAAOA,IACR,GACHA,MAAOA,EAAMrD,MAAMurH,EAAU3lD,KAAKrvF,OAAS,EAAGg1I,EAAU3lD,KAAKrvF,QAC7DwzB,OAAQgD,EAAiBhD,SAE7B,OAAO,kBAAKskH,EAAkBH,GAAiBpkH,MAAK,SAAU/B,EAAQ7J,GAClE6J,EAAS7pB,SAAS6pB,EAAOxxB,OAASwxB,EAAO,GAAKA,GAC9C7J,EAAQhgB,SAASggB,EAAM3nB,OAAS2nB,EAAM,GAAKA,GAC3CqtH,EAAUxjH,OAASA,EACfwjH,EAAUrtH,QAAUA,IACpBqtH,EAAUrtH,MAAQA,EAClB5d,EAAKkqI,sBAAsB78H,UAGnC,KAtiBmC,ICHnDykI,GAA6B,0BAC7BC,GAAqC,yBACrCC,GAAkC,sBAClCC,GAAmC,mBACnCC,GAAuC,kBACvCpyH,GAAwB,qBACxBqyH,GAA2B,eAC3B,GAA+B,oBAC/BC,GAAoC,CACpCh2E,KAAM,WACF//D,KAAKC,SAASnB,MAAMkB,KAAME,WAC1BF,KAAKg2I,uBAETA,oBAAqB,SAAShlI,GAC1B,IAAI8zC,EAAW9kD,KAAKi2I,UAChBC,EAAkBl2I,KAAK+nB,OAAO,0BAC9BouH,EAAsBn2I,KAAK+nB,OAAO,qBAClCkH,EAAmBje,EAAUA,EAAQie,iBAAmBjvB,KAAKivB,mBAC7DmnH,EAA0BnnH,EAAiB4sC,WAAa5sC,EAAiBm6B,SAAWn6B,EAAiBm5B,QACrGguF,GAA4BnnH,EAAiB61B,WAAaoxF,GAAoBC,IAItErxF,GAAYA,aAAoB,MACxC9kD,KAAKi2I,UAAY,IAAI,GAAwBj2I,SAJxC8kD,GAAYA,aAAoB,MACjC9kD,KAAKi2I,UAAY,IAAI,GAAuBj2I,QAMxDk+F,gBAAiB,WACb,IAAItD,EAAa56F,KAAKC,WACtB,OAAO26F,EAAa,GAAK56F,KAAKwpB,YAAY9C,SAAW1mB,KAAKwpB,YAAYkzE,oBAAsB9B,EAAa56F,KAAKi2I,UAAUh4C,uBAAyBrD,GAErJI,WAAY,WACR,OAAOh7F,KAAKwpB,YAAY9C,QAAU1mB,KAAKi2I,UAAUj7C,cAAgB,EAAIh7F,KAAKC,SAASnB,MAAMkB,KAAME,YAEnG+uI,iBAAkB,WACd,OAAOjvI,KAAKi2I,UAAUhH,oBAE1BnB,qBAAsB,SAAS/mI,GAC3B,OAAO/G,KAAKi2I,UAAUnI,qBAAqB/mI,IAE/C4lG,cAAe,SAAS7xG,GACpB,IAAI8zI,EAAY5uI,KAAKi2I,UAAUpH,cAAc/zI,GAC7C,OAAO8zI,EAAYA,EAAU3pH,YAAcjlB,KAAKi2I,UAAUhH,oBAE9DoH,YAAa,SAAStpF,GAClB,OAAO/sD,KAAKs2I,mBAAmBvpF,GAAY,IAE/CwpF,UAAW,SAASxpF,GAChB,OAAO/sD,KAAKs2I,mBAAmBvpF,GAAY,IAE/CupF,mBAAoB,SAASvpF,EAAYypF,GACrC,IAAIjtH,EAAavpB,KAAKwpB,YAClB9C,EAAQ6C,EAAW7C,QACnBumH,EAAS,EAASjoH,qBAAqB0B,GAAS,IACpD,GAAIumH,EAAOrzI,OAAQ,CACf,IAAK,IAAI6B,EAAI,EAAGA,EAAIwxI,EAAOrzI,OAAQ6B,SAC3B,IAAWsxD,GAAcA,IAAetxD,EACxCwxI,EAAOxxI,GAAGwpB,WAAauxH,EAChB9vH,GAASA,EAAMjrB,KACtBwxI,EAAOxxI,GAAGwpB,WAAayB,EAAMjrB,GAAGwpB,YAGxCsE,EAAW7C,MAAMumH,GACjBjtI,KAAKi2I,UAAUhI,eAAc,SAAUW,EAAWl6C,QAC1C,IAAW3nC,GAAcA,IAAe2nC,EAAQ96F,OAAS,IACzDg1I,EAAU3pH,WAAauxH,MAE3B,GAAO,GACXx2I,KAAK65F,kBAET,OAAO,GAEXlJ,QAAS,WAEL,OADA3wF,KAAKC,SAASnB,MAAMkB,KAAME,WACnBF,KAAKi2I,UAAUtlD,QAAQ7xF,MAAMkB,KAAKi2I,UAAW/1I,YAExDoxI,gBAAiB,SAASroD,GACtB,IAAI1/D,EAAavpB,KAAKwpB,YACtB,GAAID,EAAW7C,QAKX,OAJA6C,EAAWktH,eACPz2I,KAAK+5F,mBACL/5F,KAAK+5F,iBAAiBvE,aAAc,GAEjCx1F,KAAK02I,qBAAqBztD,GAAM6I,QAAO,WAC1CvoE,EAAWotH,iBAIvBD,qBAAsB,SAASztD,GAC3B,OAAOjpF,KAAKi2I,UAAU3E,gBAAgBroD,IAE1C2tD,2BAA4B,SAASlwH,EAAOzB,GACxC,GAAIyB,GAAS7nB,MAAM0nB,QAAQG,GACvB,IAAK,IAAIjrB,EAAI,EAAGA,EAAIirB,EAAM9sB,OAAQ6B,IAC9B,GAAIirB,EAAMjrB,GAAGwpB,aAAeA,EACxB,OAAO,GAKvB02E,2BAA4B,SAAS3qF,EAASqkF,GAC1C,IAAIpmE,EAAmBje,EAAQie,iBAC3Bje,EAAQof,iBAAiB1J,OACrBuI,EAAiB61B,WAAa9zC,EAAQ8qF,kBACjC7sE,EAAiBC,cAAelvB,KAAK42I,2BAA2B5lI,EAAQof,iBAAiB1J,OAAO,KACjGuI,EAAiBm5B,QAAS,IAG7Bn5B,EAAiB61B,UAAc71B,EAAiBm6B,SAAYn6B,EAAiB4sC,YAAa7qD,EAAQ8qF,kBAAmB97F,KAAK42I,2BAA2B5lI,EAAQof,iBAAiB1J,OAAO,KACtLuI,EAAiBm5B,QAAS,KAEtBp3C,EAAQ8qF,iBAAmB7sE,EAAiBm5B,QAAUitC,EAAevwC,UAC7E9kD,KAAK05F,aAET15F,KAAKC,SAASnB,MAAMkB,KAAME,YAE9B87F,mBAAoB,SAAShrF,GAGzB,OAFAhR,KAAKC,SAAS+Q,GACdhR,KAAKg2I,oBAAoBhlI,GAClBhR,KAAKi2I,UAAU5G,kBAAkBr+H,IAE5C6nF,kBAAmB,SAAS7nF,GACxB,OAAOhR,KAAKi2I,UAAU3G,iBAAiBt+H,EAAShR,KAAKC,SAASuqB,KAAKxqB,QAEvEk9F,sBAAuB,SAASlsF,GAC5B,OAAOhR,KAAKi2I,UAAU1G,qBAAqBv+H,EAAShR,KAAKC,SAASuqB,KAAKxqB,SAG/E,GAAkBvF,OAAOs7I,IACzB,IAAIc,GAAiC,CACjC92E,KAAM,WACF//D,KAAKC,WACLD,KAAKygE,aAAa,kBAClBzgE,KAAKygE,aAAa,iBAClBzgE,KAAKygE,aAAa,mBAClBzgE,KAAKygE,aAAa,mBAEtBqiC,oBAAqB,SAASp6E,GAC1B,IAAIwnE,EAAelwF,KAAKysE,mBAAmB8Y,kBAK3C,OAJA78D,EAAQ1oB,KAAKC,SAASyoB,GAClBA,EAAM9uB,QAAUs2F,EAAat2F,SAC7B8uB,EAAQ1oB,KAAK82I,mBAAmBpuH,EAAOwnE,EAAat2F,SAEjD8uB,GAEX06E,aAAc,SAASr8F,EAAMiK,GAOzB,OANI,eAAUjK,EAAKgmD,aAAe,eAAShmD,EAAKoK,UAAY,IAAMpK,EAAKoK,QAAQ7S,QAAQ,UACnFyI,EAAO/G,KAAK+2I,kBAAkBhwI,EAAMiK,GACpCA,EAAQk7D,UAAY,GAEpBnlE,EAAO/G,KAAKC,SAASnB,MAAMkB,KAAME,WAE9B6G,GAEXgwI,kBAAmB,SAAShwI,GACxB,OAAOA,GAEX+vI,mBAAoB,SAASpuH,EAAOmiE,EAAa75E,GAC7C,IAAIgmI,EAAiBh3I,KAAKysE,mBAAmB8Y,kBACzCz0E,EAASkmI,EAAeA,EAAep9I,OAASixF,GACpD,IAAK75E,EAAS,CACV,IAAIoxF,EAAgBpiG,KAAK+nB,OAAO,kBAChC/W,EAAU,CACNimI,yBAA0B,YAAc70C,GAAiB,aAAeA,EACxE80C,YAAa,GACbjuD,KAAM,GACNnzD,OAAQ,IAGhB,IAAIohH,EAAclmI,EAAQkmI,YAa1B,GAZIlmI,EAAQ7K,QACJ6K,EAAQimI,0BAA6BjmI,EAAQ7K,KAAK6lB,gBAClDkrH,EAAYj0I,KAAK,CACbkO,QAAS,QACThL,KAAM6K,EAAQ7K,KACd4mD,WAAY/7C,EAAQi4E,KAAKrvF,OAAS,EAClCqrB,aAAcjU,EAAQ7K,KAAKuiB,MAC3B5tB,IAAKkW,EAAQi4E,KAAK5lE,MAAM,GACxByS,OAAQ9kB,EAAQ8kB,OAAOzS,MAAM,MAIrCqF,EACA,GAAI,IAAMmiE,EACNqsD,EAAYj0I,KAAKnE,MAAMo4I,EAAaxuH,QAEpC,IAAK,IAAIjtB,EAAI,EAAGA,EAAIitB,EAAM9uB,OAAQ6B,IAAK,CACnC,IAAIsL,EAAO2hB,EAAMjtB,GACbsL,GAAQ,UAAWA,GACnBiK,EAAQ7K,KAAOY,EACfiK,EAAQi4E,KAAKhmF,KAAK8D,EAAKjM,KACvBkW,EAAQ8kB,OAAO7yB,KAAK6N,GAAUA,EAAOg0E,mBAAqBh0E,EAAOgZ,sBAAwBhZ,EAAOg0E,iBAAiB/9E,EAAKjM,KAAOiM,EAAKjM,KAClIkF,KAAK82I,mBAAmB/vI,EAAK2hB,MAAOmiE,EAAc,EAAG75E,GACrDA,EAAQ7K,UAAO,EACf6K,EAAQi4E,KAAKh3D,MACbjhB,EAAQ8kB,OAAO7D,OAEfilH,EAAYj0I,KAAK8D,GAKjC,OAAOmwI,GAEXl3E,cAAe,WACX,OAAOhgE,KAAKC,WAAW4R,OAAO,CAAC,cAAe,YAAa,gBAAiB,YAAa,iBAE7FwkI,YAAa,SAAStpF,GAClB,IAAIxjC,EAAavpB,KAAKwpB,YAClBD,GAAcA,EAAW8sH,YAAYtpF,KACrCxjC,EAAWgyC,UAAU,GACrBhyC,EAAW+rE,WAGnBihD,UAAW,SAASxpF,GAChB,IAAIxjC,EAAavpB,KAAKwpB,YAClBD,GAAcA,EAAWgtH,UAAUxpF,KACnCxjC,EAAWgyC,UAAU,GACrBhyC,EAAW+rE,WAGnBg8C,gBAAiB,SAASx2I,GACtB,IAAI6I,EAAO3D,KACPk3H,EAAWvzH,EAAKgpG,cAAc7xG,GAC9B+jD,EAAO,CACP/jD,IAAKA,EACLo8H,SAAUA,GAGd,OADAvzH,EAAK69D,cAAc01D,EAAW,kBAAoB,iBAAkBr4E,GAC/DA,EAAK+Q,QAMH,IAAK,eAAUpgC,UALX,kBAAK7rB,EAAK+yI,qBAAqB57I,IAAMqyB,MAAK,WAC7C0xB,EAAKq4E,UAAYA,EACjBvzH,EAAK69D,cAAc01D,EAAW,iBAAmB,gBAAiBr4E,OAK9E63F,qBAAsB,SAAS57I,GAC3B,IAAI6I,EAAO3D,KACPupB,EAAavpB,KAAKwpB,YAClBtH,EAAI,IAAI,cAQZ,OAPKqH,EAGD,kBAAKA,EAAW+nH,gBAAgBx2I,IAAMqyB,MAAK,WACvCxpB,EAAK2rB,OAAOnC,KAAKjL,EAAEsN,SAASG,KAAKzN,EAAE2hB,WACnClU,KAAKzN,EAAE2hB,QAJX3hB,EAAEsN,UAMCtN,GAEXyqF,cAAe,SAAS7xG,GACpB,IAAIyuB,EAAavpB,KAAKwpB,YACtB,OAAOD,GAAcA,EAAWojF,cAAc7xG,IAElDq8I,UAAW,SAASr8I,GAChB,OAAKkF,KAAK2sG,cAAc7xG,IAGjB,IAAK,eAAU00B,UAFXxvB,KAAKsxI,gBAAgBx2I,IAIpCs8I,YAAa,SAASt8I,GAClB,OAAIkF,KAAK2sG,cAAc7xG,GACZkF,KAAKsxI,gBAAgBx2I,IAEzB,IAAK,eAAU00B,WAE1BgxC,cAAe,SAAS3hB,GAChB,aAAeA,EAAKj9C,OACpBi9C,EAAKj9C,KAAO,cAEhB5B,KAAKC,SAAS4+C,KAGlBw4F,GAA0B,SAASvmI,EAAQ8uE,GAC3C,IAAIjZ,EAAoB3mE,KAAKysE,mBAC7B,OAAQmT,EAAOE,SAASj+E,OACpB,IAAK,QACD,IAAIorI,EAAStmE,EAAkBn9C,YAAY9C,SAAW,GACtDigD,EAAkBkQ,aAAa/lE,EAAOM,UAAW,aAAc67H,EAAOrzI,QACtE,MACJ,IAAK,UACD+sE,EAAkBkQ,aAAa/lE,EAAOM,UAAW,cAAe,GAChE,MACJ,IAAK,aACDpR,KAAK+M,UAAUgmF,kBAGhBukD,GAA8B,CACrCtb,iBAAkB,WACd,IAAItzG,EAAQ1oB,KAAKC,WACjB,OAAOD,KAAKu3I,oBAAoB7uH,IAEpC6uH,oBAAqB,SAAS7uH,GAC1B,GAAI1oB,KAAKw3I,uBAAwB,CAC7B,IAAIC,GAAa,EACbh8E,EAAc,CACdtQ,SAAU,KACN,IAAIusF,EAAc,eAAE,SAASpwH,SAASmuH,IAGtC,OAFAz1I,KAAK23I,yBAAyBD,GAC9B,GAAuB,aAAc13I,KAAM03I,OAAa,EAAQ13I,KAAKi9E,qBAAqBzyD,KAAKxqB,OACxF03I,GAEX91I,KAAM,aACNu0H,eAAgB,KACZshB,GAAcz3I,KAAKkjE,gBAAgBY,OACnC2zE,GAAa,GAEjBn9E,SAAU,SACVD,aAAc,QACd3M,UAAW,GAEfhlC,EAAMzlB,KAAKw4D,GAEf,OAAO/yC,GAEXu0D,qBAAsB,SAASp+B,GAC3B,IAAIyiB,EAAQziB,EAAKyiB,MACbT,EAAU,eAAES,EAAMh8C,QAClB+lF,EAAmBxqC,EAAQ5zC,QAAQ,IAAIpb,OAAO8jI,KAAkCv0I,QAChF0P,EAAS9Q,KAAKysE,mBAAmB8Y,kBAAkB8lB,GACnDzmF,EAAc9T,GAAUA,EAAO1P,MAC/By/D,EAAQjzE,GAAG,IACXoS,KAAKihE,cAAc,gBAAgBqc,qBAAqB14D,GAAa,GAErE5kB,KAAKorG,wBAAwBxmF,GAEjC08C,EAAM1mC,kBAEV48G,qBAAsB,WAClB,IACIrwH,EADAylE,EAAoB5sF,KAAK+nB,OAAO,cAQpC,OANI6kE,IACAzlE,EAAYylE,EAAkBjjC,QAC1B,SAAWxiC,IACXA,EAAY,YAAc0xF,GAAA,KAAQiK,UAAU/J,aAG7C5xF,GAEXywH,uBAAwB,SAASF,EAAaxnD,GAC1C,IAAIvsF,EAAO3D,KACX03I,EAAYh2E,QACZ,eAAKwuB,GAAc,SAAU9uF,EAAO08D,GAChCn6D,EAAKk0I,sBAAsBH,EAAa55E,MAE5C,GAAa99D,OAEjB63I,sBAAuB,SAAS3sC,EAAcptC,GAC1C,IAAIg6E,EAAkB,eAAE,SAASxwH,SAASw2C,EAAY9S,UAAU1jC,SAASquH,IAAiCxvI,KAAK,aAAc23D,GAAav2C,SAAS2jF,GAAc3uG,KAAKuhE,EAAY52D,SAElL,OADAuzE,GAAYz6E,KAAM83I,GACXA,GAEXpkE,qBAAsB,SAAS9vE,GAC3B,IAAK5D,KAAKwiE,gBAAkB,EAASv5C,aAAarlB,EAAE+vE,YAAa,CAAC,QAAS,iBAAkB,CACzF,IAAIokE,EAAkB/3I,KAAK6mB,UACvB6wH,EAAcK,GAAmBA,EAAgB9wH,KAAK,IAAMwuH,IAC5DiC,GAAeA,EAAY99I,SAC3BoG,KAAK23I,yBAAyBD,GAC9B13I,KAAKkjE,gBAAgBY,QAG7B9jE,KAAKC,YAET03I,yBAA0B,SAASD,GAC/B,IAAIxnD,EAAelwF,KAAKihE,cAAc,WAAWskB,kBAC7CqH,EAAoB5sF,KAAK+nB,OAAO,cACpC/nB,KAAK43I,uBAAuBF,EAAaxnD,GACrCtD,EAAkB/yB,sBAAwBq2B,EAAat2F,SACvD,eAAE,SAAS0tB,SAASouH,IAAoCn5I,KAAKqwF,EAAkBj+B,gBAAgBpnC,SAASmwH,GACxGA,EAAYzqH,QAAQ,IAAM4oH,IAAsCvuH,SAASsuH,IACzE8B,EAAYzqH,QAAQ,IAAM2oH,IAAkCnqH,IAAI,WAAY,QAC5EzrB,KAAKo+H,4BAGbr/C,cAAe,SAASjuE,GACpB,IAAI87E,EAAoB5sF,KAAK+nB,OAAO,cACpC,OAAO/nB,KAAKw3I,wBAA0B5qD,EAAkB/yB,qBAAuB/oD,GAAUA,EAAO86C,eAEpG+b,kBAAmB,WACf,IAAI3hD,EAAWhmB,KAAK6mB,UACpB,OAAOb,GAAYA,EAASiB,KAAK,IAAM0uH,KAE3CluE,WAAY,WACR,OAAOznE,KAAKihE,cAAc,WAAWskB,mBAEzCrO,gBAAiB,WACb,IAAIlxD,EAAWhmB,KAAK6mB,UACpB,GAAIb,GAAYA,EAASiB,KAAK,IAAMwuH,IAA4B77I,OAAQ,CACpE,IAAIwxB,EAASpF,EAASoF,SACtB,MAAO,CACHQ,IAAKR,EAAOQ,IACZoiG,OAAQ5iG,EAAOQ,IAAM,eAAU5F,IAGvC,OAAO,MAEXmxD,QAAS,WACL,MAAO,SAEXsI,oBAAqB,SAASzuE,GAC1B,IAEI0X,EAFAowC,EAAqB94D,KAAK+nB,OAAO,+BACjCiwH,EAAwB,eAAEhnI,EAAQ63G,eAAe57F,QAAQ,IAAM0oH,IAKnE,GAHIqC,EAAsBp+I,SACtBoX,EAAQF,OAASknI,EAAsB7xI,KAAK,eAE5C2yD,GAAsB9nD,EAAQF,OAAQ,CACtC,IAAIA,EAASE,EAAQF,OACjBmnI,GAAoB,eAAUnnI,EAAO86C,gBAAiB96C,EAAO86C,cACjE,GAAIqsF,EAAmB,CACnB,IAAIC,EAAkB,eAAUpnI,EAAOi8C,aAAej8C,EAAOi8C,YAAc,EACvEiM,EAAgBh5D,KAAK+nB,OAAO,kBAC5B43D,EAAc03D,GAAwB7sH,KAAKxqB,KAAM8Q,GACrD4X,EAAQ,CAAC,CACLnsB,KAAMy8D,EAAcI,QACpBv3D,MAAO,UACPkiD,UAAWm0F,EACXv4D,YAAaA,GACd,CACCpjF,KAAMy8D,EAAcK,WACpBx3D,MAAO,aACP89E,YAAaA,KAIzB,OAAOj3D,GAEXvB,UAAW,WACP,OAAOnnB,KAAKC,YAAcD,KAAKw3I,wBAEnCh3E,cAAe,SAAS3hB,GAChB,eAAiBA,EAAKj9C,MACtB5B,KAAK4iE,cACL/jB,EAAK6hB,SAAU,GAEf1gE,KAAKC,SAAS4+C,KAItBs5F,GAA2B,CAC3B14D,oBAAqB,SAASzuE,GAC1B,IACI0X,EADAowC,EAAqB94D,KAAK+nB,OAAO,+BAErC,GAAI+wC,GAAsB9nD,EAAQH,KAAO,UAAYG,EAAQH,IAAIM,QAAS,CACtE,IAAIw1D,EAAoB3mE,KAAKysE,mBACzB37D,EAAS61D,EAAkBkQ,aAAa,cAAgB7lE,EAAQH,IAAIk8C,YACxE,GAAIj8C,GAAUA,EAAO86C,cAAe,CAChC,IAAIoN,EAAgBh5D,KAAK+nB,OAAO,kBAC5B43D,EAAc03D,GAAwB7sH,KAAKxqB,KAAM8Q,GACrD4X,EAAQ,GACRA,EAAMzlB,KAAK,CACP1G,KAAMy8D,EAAcI,QACpBv3D,MAAO,UACP89E,YAAaA,GACd,CACCpjF,KAAMy8D,EAAcK,WACpBx3D,MAAO,aACP89E,YAAaA,KAIzB,OAAOj3D,GAEXuhD,UAAW,SAASrmE,GAChB,IAAIm1D,EAAa/4D,KAAK+nB,OAAO,uBACzBq6E,EAAgBpiG,KAAK+nB,OAAO,kBAC5BqwH,EAAyB,aAAeh2C,GAAiB,aAAerpC,GAAc,eAAEn1D,EAAE09D,MAAMh8C,QAAQ2H,QAAQ,IAAM6oH,IAA0Bl8I,OAChJy+I,EAAwB,eAAEz0I,EAAE09D,MAAMh8C,QAAQ2H,QAAQ,IAAMxJ,IAAuB7pB,QAC/Ew+I,GAA0BC,IAC1Br4I,KAAKs4I,qBAAqB10I,GAE9B5D,KAAKC,SAAS2D,IAElB00I,qBAAsB,SAAS10I,GAC3B,IAAIquF,EAAiBjyF,KAAKihE,cAAc,QACpCpwD,EAAMohF,EAAevpE,QAAQ9kB,EAAEimE,UAC/BjR,EAAkB54D,KAAKysE,mBAAmBoK,aAAa,cAAgBhmE,EAAIk8C,WAAY,oBACvF,SAAWl8C,EAAIM,SAAW,UAAYN,EAAIM,UAAW,IAAUynD,KAC/Dq5B,EAAeq/C,gBAAgBzgI,EAAI/V,KAAK,GACxC8I,EAAE09D,MAAM1mC,iBACRh3B,EAAE88D,SAAU,KAIpB63E,GAA4B,CAC5B94D,oBAAqB,SAASzuE,GAC1B,IAAI8nD,EAAqB94D,KAAK+nB,OAAO,+BACjCW,EAAQ1oB,KAAKC,SAAS+Q,GAC1B,GAAI8nD,GAAsB9nD,EAAQH,MAAQ,WAAaG,EAAQH,IAAIM,SAAW,mBAAqBH,EAAQH,IAAIM,SAAU,CACrH,IAAIL,EAASE,EAAQF,OACrB,IAAKA,EAAO6c,WAAa,eAAU7c,EAAO86C,gBAAkB96C,EAAO86C,eAAgB,CAC/E,IAAIoN,EAAgBh5D,KAAK+nB,OAAO,kBAC5BmwH,EAAkB,eAAUpnI,EAAOi8C,aAAej8C,EAAOi8C,YAAc,EACvE4yB,EAAc03D,GAAwB7sH,KAAKxqB,KAAM8Q,GACrD4X,EAAQA,GAAS,GACjBA,EAAMzlB,KAAK,CACP1G,KAAMy8D,EAAcC,kBACpBp3D,MAAO,QACPi5G,YAAY,EACZ/2D,SAAUm0F,EACVv4D,YAAaA,IAEb7uE,EAAO28C,iBACP/kC,EAAMzlB,KAAK,CACP1G,KAAMy8D,EAAcI,QACpBv3D,MAAO,UACPkiD,UAAWm0F,EACXv4D,YAAaA,IAGrBj3D,EAAMzlB,KAAK,CACP1G,KAAMy8D,EAAcK,WACpBx3D,MAAO,aACP89E,YAAaA,KAIzB,OAAOj3D,IAGf,EAAS+8C,eAAe,WAAY,CAChC9nE,eAAgB,WACZ,MAAO,CACHmnD,SAAU,CACN+T,eAAe,EACfD,iBAAiB,EACjBE,oBAAoB,EACpBC,WAAY,cACZjK,MAAO,CACHqK,sBAAuB,OAAoB9/D,OAAO,oCAClD6/D,sBAAuB,OAAoB7/D,OAAO,oCAClD4/D,kBAAmB,OAAoB5/D,OAAO,8BAC9C+/D,QAAS,OAAoB//D,OAAO,gCACpCggE,WAAY,OAAoBhgE,OAAO,+BAG/C0rD,WAAY,CACR4E,SAAS,EACTgF,eAAgB,OAAoBt1D,OAAO,kCAC3CwgE,qBAAqB,KAIjCoL,UAAW,CACPJ,YAAa,CACT1+D,KAAM0wI,GACNvpH,QAAS,CACLq9D,wBAAyB,WACrB,IAAI35E,EAAUhR,KAAKC,SAASnB,MAAMkB,KAAME,WAExC,OADA8Q,EAAQ5J,aAAe,EAAS0kB,wBACzB9a,IAGfgzC,QAAS,CACLw0F,iBAAkB,SAASzxI,GACvB,OAAO,eAAUA,EAAKgmD,aAAe,eAAShmD,EAAKoK,UAAY,IAAMpK,EAAKoK,QAAQ7S,QAAQ,YAItGymE,MAAO,CACHwmC,YAAa+rC,GACbprH,SAAUisH,GACVr8D,kBAAmBy8D,OC/jB/B,IAAIE,GAA2B,wBAC3BC,GAA0B,uBAC1B,GAA4B,yBAC5B,GAAkB,eACXC,GAAqB,CAC5Bh7I,eAAgB,WACZ,MAAO,CACH2nD,aAAc,CACVt9B,SAAS,EACT6wC,eAAe,EACf1N,SAAU,QAItB8Z,UAAW,CACPJ,YAAa,CACTv3C,QAAS,CACLsgE,sBAAuB,WACnB,IAAIrE,EAAgBvpF,KAAKC,WAOzB,OANID,KAAK+nB,OAAO,yBACZwhE,EAActmF,KAAK,CACfxE,KAAM,eACN2I,aAAc,OAAc0kB,0BAG7By9D,IAGfpjF,KAAM,WACF,IAAIyyI,EAAmB,SAASj1I,GAC5BA,EAAKk1I,eAAiB,GACtBl1I,EAAKm1I,aAAen1I,EAAKokB,OAAO,+BAEpC,MAAO,CACHg4C,KAAM,WACF64E,EAAiB54I,MACjBA,KAAKC,YAETs2I,UAAW,SAASxpF,GAChB,IAAIppD,EAAO3D,KACP+sD,EAAa,GACbppD,EAAKm1I,cAAe,EACpBn1I,EAAKk1I,eAAiB,GACtBl1I,EAAKw9F,eAELx9F,EAAK1D,SAASnB,MAAM6E,EAAMzD,YAGlCm2I,YAAa,SAAStpF,GAClB,IAAIppD,EAAO3D,KACP+sD,EAAa,GACbppD,EAAKm1I,cAAe,EACpBn1I,EAAKk1I,eAAiB,GACtBl1I,EAAKw9F,eAELx9F,EAAK1D,SAASnB,MAAM6E,EAAMzD,YAGlCysG,cAAe,SAAS7xG,GACpB,IAAI6I,EAAO3D,KACP+4I,EAAc,OAActwH,cAAc3tB,EAAK6I,EAAKk1I,gBACxD,OAAIh6I,MAAM0nB,QAAQzrB,GACP6I,EAAK1D,SAASnB,MAAM6E,EAAMzD,cAEvByD,EAAKm1I,cAAgBC,GAAe,GAAKp1I,EAAKk1I,eAAeE,GAAapvF,WAG5FqvF,wBAAyB,SAASl+I,GAC9B,IAAI+uE,EAAW7pE,KAAK+oG,iBAAiBjuG,GACrC,MAAO,CAAC+uE,EAAUA,EAAW,IAEjC6sE,qBAAsB,SAAS57I,GAC3B,IACImE,EADA0E,EAAO3D,KAEX,GAAInB,MAAM0nB,QAAQzrB,GACdmE,EAAS0E,EAAK1D,SAASnB,MAAM6E,EAAMzD,eAChC,CACH,IAAI64I,EAAc,OAActwH,cAAc3tB,EAAK6I,EAAKk1I,gBACxD,GAAIE,GAAe,EAAG,CAClB,IAAIpvF,EAAUhmD,EAAKk1I,eAAeE,GAAapvF,QAC/ChmD,EAAKk1I,eAAeE,GAAapvF,SAAWA,OAE5ChmD,EAAKk1I,eAAe51I,KAAK,CACrBnI,IAAKA,EACL6uD,SAAS,IAGjBhmD,EAAKw9F,YAAY,CACbnwB,WAAY,SACZ+yB,WAAYpgG,EAAKq1I,wBAAwBl+I,KAE7CmE,GAAS,IAAK,eAAUuwB,UAE5B,OAAOvwB,GAEXqkG,iBAAkB,SAASn9F,EAAM6K,GAC7B,IAAIrN,EAAO3D,KACPujG,EAAW5/F,EAAK1D,SAASnB,MAAM6E,EAAMzD,WAczC,OAbAqjG,EAASt+E,WAAathB,EAAKgpG,cAAcpJ,EAASzoG,UAC9C,IAAWkW,EAAQioI,oBACnBjoI,EAAQioI,mBAAqB,EAC7B,eAAKjoI,EAAQw7D,gBAAgB,SAAUprE,EAAO0P,GAC1C,GAAI,WAAaA,EAAO6c,UAAY,eAAU7c,EAAOi8C,YAEjD,OADA/7C,EAAQioI,kBAAoB73I,GACrB,MAIf4P,EAAQioI,mBAAqB,IAC7B11C,EAASztE,OAAO9kB,EAAQioI,mBAAqB11C,EAASt+E,YAEnDs+E,GAEXP,cAAe,SAASt6E,EAAOkoC,GAC3B,IAAIjtD,EAAO3D,KACPgxE,EAAapgB,EAAOogB,WACpB/xE,EAAS,GAEb,OADAypB,EAAQ/kB,EAAK1D,SAASnB,MAAM6E,EAAMzD,WAC9B,eAAiB8wE,EACVtoD,GAEP,YAAcsoD,IACdrtE,EAAKk1I,eAAiB,eAAKl1I,EAAKk1I,gBAAgB,SAAU9xI,GACtD,OAAOA,EAAK4iD,YAGpB,eAAKjhC,GAAO,SAAUtnB,EAAO2F,GACzB9H,EAAOgE,KAAK8D,GACZ,IAAIgyI,EAAc,OAActwH,cAAc1hB,EAAKjM,IAAK6I,EAAKk1I,gBACzD,SAAW9xI,EAAKoK,UAAYpK,EAAKke,YAAc8zH,GAAe,KAAOhyI,EAAKklB,UAC1EhtB,EAAOgE,KAAK,CACR0mD,QAAS5iD,EAAKke,WACd9T,QAAS,SACTrW,IAAKiM,EAAKjM,IACVqL,KAAMY,EAAKZ,KACX2vB,OAAQ,QAIb72B,IAEXuhE,cAAe,SAAS3hB,GACpB,IAAIq6F,EACAC,EACJ,GAAI,iBAAmBt6F,EAAKj9C,KAAM,CAE9B,OADAi9C,EAAKj9C,KAAO,aACJi9C,EAAK4sC,UACT,IAAK,eACD,IAAI5pF,EAAQg9C,EAAKh9C,OAAS,GACtB2pF,EAAgB3sC,EAAK2sC,eAAiB,GAC1C0tD,EAAmBr3I,EAAMmmB,UAAYwjE,EAAcxjE,QACnDmxH,EAAyBt3I,EAAMg3D,gBAAkB2yB,EAAc3yB,cAC/D,MACJ,IAAK,wBACD+/E,EAAiB54I,MACjB,MACJ,IAAK,uBACDk5I,GAAmB,EACnB,MACJ,IAAK,6BACDC,GAAyB,GAE7BD,GAAoBC,IACpBP,EAAiB54I,MAGzBA,KAAKC,SAAS4+C,KA1IpB,GA8INszE,SAAU,CACNlI,uBAAwB,WACpBjqH,KAAKC,SAASnB,MAAMkB,KAAME,WAC1BF,KAAKo5I,uBAAuBp5I,KAAK+M,UAAUiZ,aAE/CozH,uBAAwB,SAASpzH,GAC7B,IAAIqzH,EAAmBrzH,EAASiH,QAAQ,IAAMyrH,IAC1CW,EAAiBz/I,QACjB,kBAAKoG,KAAKs5I,sBAAsBD,EAAkBrzH,IAAWmH,KAAK,KAC9DntB,KAAKo5I,uBAAuBC,EAAiBnrH,aAIzDorH,sBAAuB,SAASD,EAAkBE,GAC9C,IAAIC,EAAmB,eAAEH,GAAkBlzI,KAAK,WAC5CszI,EAAiB,eAAEJ,GAAkBpsH,QAAQ,IAAMjtB,KAAKiuB,2BAA2BC,SAAS/nB,KAAK,cACrG,GAAIqzI,GAAoBC,EACpB,OAAOz5I,KAAK05I,0BAA0BD,EAAgBD,IAG9DE,0BAA2B,SAASD,EAAgBD,GAChD,IAAIt3H,EAAI,wBACR,GAAIu3H,EAAettH,QAAQ,YAAYwtH,iBACnC35I,KAAK45I,8BAA8BH,EAAgBD,EAAiB3vE,SAAU,eAAE2vE,EAAiBzvE,aAAa58C,KAAKjL,EAAEsN,aAClH,CACH,IAAI,IAASiqH,EAAe1xH,OAAO,uBAE/B,YADA0xH,EAAexpB,mBAAmB9iG,KAAK,IAAMjL,EAAEsN,SAAQ,IAG3D,IAAI08E,EAAautC,EAAersC,gBAC5BlB,EACA,OAASA,QAAc,IAAWA,GAAsBA,EAAW14B,SAASrmD,KAAK,IAAMjL,EAAEsN,WAEzFtN,EAAEsN,UAGV,OAAOtN,EAAEoO,WAEbspH,8BAA+B,SAASH,EAAgBI,EAAgBN,GACpE,IAAIr3H,EAAI,wBACJuzD,EAAQ,eAAEgkE,EAAe9iE,cAAckjE,IACvCC,EAAU,eAAEL,EAAettH,QAAQ,YAAY6nD,oBAC/C+lE,EAAe,KAAO,OAAStkE,QAAS,IAAWA,OAAQ,EAASA,EAAM77E,SAAW,eAAU67E,EAAMjqD,GAAG,MAAQ,eAAUiqD,EAAMjqD,GAAG,IACnIwuH,EAAiB,KAAO,OAASF,QAAW,IAAWA,OAAU,EAASA,EAAQlgJ,SAAW,eAAUkgJ,EAAQtuH,GAAG,MAAQ,eAAUsuH,EAAQtuH,GAAG,IACnJ,GAAIuuH,GAAgBC,EAAgB,CAChC,IAAIC,EAAqB,eAASV,GAUlC,OATAE,EAAexpB,mBAAmB9iG,KAAK,KACnC,IAAI+sH,EAAqCl6I,KAAK+nB,OAAO,qBAAsB,IAAS0xH,EAAe1xH,OAAO,uBACtGoyH,EAA2BD,GAAsCD,IAAuB,eAASV,GACjGW,GAAsCC,EACtCn6I,KAAKiwH,mBAAmB9iG,KAAK,IAAMjL,EAAEsN,SAAQ,IAE7CtN,EAAEsN,SAAQ,KAGXtN,EAAEoO,UAEb,OAAO,wBAAWd,WAEtBy9F,mBAAoB,SAASN,GAEzB,GADA3sH,KAAKC,SAASnB,MAAMkB,KAAME,WACtBF,KAAK+nB,OAAO,yBAA0B,CACtC,IAAIglG,EAAa/sH,KAAKypH,UAAUx1C,kBAC5B84C,GACAA,EAAW9lG,KAAK,0BAA0BwE,IAAI,WAAYkhG,EAAY,EAAI,QAM9F5nD,MAAO,CACH74C,SAAU,CACN6mD,iBAAkB,SAAS/hE,GACvB,IAIIm6C,EAJAxnD,EAAO3D,KACP8Q,EAASE,EAAQF,OACjBg6F,EAAoBnnG,EAAKs9D,cAAc,WACvCm5E,EAAYtvC,GAAqBA,EAAkBsvC,UAAUppI,EAAQ64D,UAUzE,OAFI1e,EANA,WAAar6C,EAAO6c,SAAYysH,EAMrBz2I,EAAK1D,SAASnB,MAAM6E,EAAMzD,WAL1ByD,EAAKokB,OAAO,0BAA4B,CAC/CgE,gCAAgC,EAChC5nB,OAAQR,EAAKg5E,oBAAoB7rE,IAKlCq6C,GAEXkvF,aAAc,SAASxpI,GACnB,OAAOA,GAAOA,EAAIM,SAAW,IAAMN,EAAIM,QAAQ7S,QAAQ,WAE3DwtE,WAAY,SAASj7D,GACjB,IAAI07D,EAAOvsE,KAAKC,SAASnB,MAAMkB,KAAME,WAQrC,OAPI2Q,GAAO7Q,KAAKq6I,aAAaxpI,KACzB7Q,KAAK+nB,OAAO,iBAAmBwkD,EAAKjlD,SAAS,IAC7CilD,EAAKjlD,SAASoxH,IACV,eAAU7nI,EAAI84C,UACd4iB,EAAKiiC,OAAO39F,EAAI84C,UAGjB4iB,GAEXiF,aAAc,SAASjF,EAAMv7D,GACzB,IACIspI,EADAzpI,EAAMG,EAAQH,IAEd27D,EAAiBxsE,KAAKysE,mBAAmBC,oBACzC77D,EAAIM,SAAWnR,KAAKq6I,aAAaxpI,GAC7B7Q,KAAK2xE,gBAAgB,EAAG3gE,EAAQogE,iBAChCkpE,EAAct6I,KAAK4xE,YAAYrF,EAAM,CACjC1qE,MAAO,KACPgP,IAAKA,EACLg5D,SAAUh5D,EAAIg5D,SACd/4D,OAAQ,CACJ6c,QAAS,UAEb/I,YAAa,EACbgsC,OAAQ5/C,EAAQ4/C,SAEpB0pF,EAAYhzH,SAAS,IAA2BA,SAASmxH,IAA0Bz3E,KAAK,UAAWwL,EAAe5yE,SAGtHoG,KAAKC,SAASnB,MAAMkB,KAAME,gBClTlD,EAASulE,eAAe,eAAgBkzE,I,2BCDpC4B,GAAwB,SAASr+I,GAGjC,IAFA,IAAIs+I,EAAe,EACfC,EAAiB,EACZh/I,EAAI,EAAGA,EAAIS,EAAItC,SAAU6B,EAI9B,GAHI,MAAQS,EAAIT,IACZ++I,IAEA,MAAQt+I,EAAIT,OACVg/I,EACED,EAAe,IAAM,GACrB,MAAO,CACHE,WAAYD,EACZr5I,MAAO3F,GAKvB,MAAO,CACHi/I,WAAY,EACZt5I,OAAQ,IAGZu5I,GAAmB,SAASz+I,EAAK0/B,EAAGH,GACpC,IAAIhgC,GAAK,EACT,MAAOggC,KAAOhgC,IAAMS,EAAItC,OACpB6B,EAAIS,EAAIoC,QAAQs9B,EAAGngC,GAEvB,OAAOA,GAEPm/I,GAAe,SAAS1+I,EAAKkF,GAC7B,OAAK,IAAMA,EACA,CAAClF,GAEL,CAACA,EAAImnB,MAAM,EAAGjiB,GAAQlF,EAAImnB,MAAMjiB,EAAQ,KAE/Cy5I,GAAqB,SAASC,EAAU5iF,GACxC,OAAO4iF,GAAY,gBAAOA,EAAW,IAAK5iF,IC3BnC6iF,GAAqB,SAASx+I,EAAMlD,GAC3C,GAAI,kBAAoBA,EAAQ,CAC5B,IAAI2hJ,EAAY3hJ,EAAOwC,MAAM,KACzBE,EAAO,QAAOk/I,QAAQ1+I,EAAMlD,GAChC2hJ,EAAU,GAAKA,EAAU,IAAM,IAAMA,EAAU,GAC/C3hJ,EAAS2hJ,EAAUj/I,EAAO,EAAI,EAAI,GACxBG,EAAM7C,EAAhBA,EAAwB6C,EAAIf,QAAQ,aAAce,GAAOA,EAAIL,MAAM,IAAIC,IAAI,IAAM,KAAKE,KAAK,IAAIumB,OAAO,IACtG,IAAI24H,EAAmB,YAAYvhH,KAAKtgC,GAAQ,GAAGO,OAC/CuhJ,EAAoB,YAAYxhH,KAAKtgC,GAAQ,GAAGO,OACpD,MAAO,CACHugE,MAAO+gF,EACP/4G,IAAK5lC,EAAK3C,OAASuhJ,GAGvB,MAAO,CACHhhF,MAAO,EACPh4B,IAAK5lC,EAAK3C,QAGlB,IAAIsC,GAEJk/I,GAA4B,SAASh6I,EAAO7E,GAC5C,IAAI8+I,EAAmB,QAAOC,sBAC1BC,EAAS,IAAIpjH,OAAO,QAAU,eAAakjH,GAAoB,IAAK,KACpEG,EAAqBj/I,EAAK8mB,MAAM,EAAGjiB,GACvC,OAAOo6I,EAAmBrgJ,QAAQogJ,EAAQ,IAAI3hJ,QAE9C6hJ,GAAe,SAASl/I,GACxB,OAAOA,EAAKV,MAAM,IAAIu6F,UAAUp6F,KAAK,KAErC0/I,GAA2B,SAASC,EAAYp/I,GAChD,IAAKo/I,EACD,OAAQ,EAEZ,IAAIJ,EAAS,SACTK,EAAU,EACVx6I,EAAQ,KACRnC,EAASs8I,EAAO5hH,KAAKp9B,GACzB,MAAO0C,EAAQ,CAEX,GADAmC,EAAQnC,EAAOmC,MACXw6I,GAAWD,EACX,OAAOv6I,EAEXw6I,IACA38I,EAASs8I,EAAO5hH,KAAKp9B,GAEzB,OAAO,OAAS6E,EAAQ7E,EAAK3C,OAASwH,GAEtCy6I,GAA8B,SAASt/I,GACvC,OAAOA,EAAKpB,QAAQ,YAAa,KAE1B2gJ,GAAqB,SAASC,EAAO3wH,GAO5C,YANI,IAAW2wH,EAAM5hF,QACjB4hF,EAAQ,CACJ5hF,MAAO4hF,EACP55G,IAAK45G,IAGN,CACH5hF,MAAO4hF,EAAM5hF,MAAQ/uC,EACrB+W,IAAK45G,EAAM55G,IAAM/W,IAGd4wH,GAAsB,SAASz/I,EAAM0/I,EAAWF,EAAO1iJ,GAC9D0iJ,EAAQD,GAAmBC,EAAO,GAClC,IAAIrwH,EAAQ,QAAO4vH,sBACfY,EAAuBC,GAAuB5/I,GAC9C6/I,EAA+B7B,GAAsBlhJ,GAAQqhJ,WAC7D2B,EAAgBH,EAAuB,EAAIvB,GAAiBp+I,EAAMmvB,EAAO0wH,GACzEE,EAAmB3B,GAAiBsB,EAAWvwH,EAAO0wH,GACtDG,EAAY3B,GAAar+I,EAAM8/I,GAC/BG,EAAiB5B,GAAaqB,EAAWK,GACzCG,GAAkB,IAAMJ,GAAiBN,EAAM5hF,MAAQkiF,EAC3D,GAAII,EAAgB,CAChB,IAAIC,EAAgBX,EAAM5hF,MAAQkiF,EAAgB,EAC9CM,EAAevB,GAA0BsB,EAAeH,EAAU,IAClEK,EAAcJ,EAAe,GAAKF,EAAmB,EAAIZ,GAAyBiB,EAAcH,EAAe,IAAM,EAAIP,EAAUriJ,OACvI,OAAOijJ,GAAqBD,EAAaX,EAAW5iJ,GAEpD,IAAIyjJ,EAAmBjB,GAA4BW,EAAe,IAC9DO,EAAkBR,EAAU,GAAG3iJ,OAASmiJ,EAAM5hF,MAC9C6iF,EAAgB5B,GAA0B2B,EAAiBtB,GAAac,EAAU,KAClFU,EAAqBvB,GAAyBsB,EAAevB,GAAaqB,IAC1EI,EAAuBJ,EAAiBljJ,QAAUqjJ,EAAqB,GAC3E,OAAOJ,GAAqBK,EAAsBjB,EAAW5iJ,IAIrE,SAAS8iJ,GAAuB5/I,GAC5B,OAAO,IAAMA,EAAK3C,UAAY2C,EAAK81B,MAAM,iBAEtC,IAAI8qH,GAAsB,SAASpB,EAAOx/I,EAAMlD,GACnD0iJ,EAAQD,GAAmBC,EAAO,GAClC,IAAIqB,EAAaP,GAAqBd,EAAOx/I,EAAMlD,GACnD,OAAO0iJ,EAAM5hF,OAASijF,EAAWjjF,OAAS4hF,EAAM55G,KAAOi7G,EAAWj7G,KAE/D,SAAS06G,GAAqBd,EAAOx/I,EAAMlD,GAC9C0iJ,EAAQD,GAAmBC,EAAO,GAClC,IAAIqB,EAAarC,GAAmBx+I,EAAMlD,GACtCgkJ,EAAgB,CAChBljF,MAAO,gBAAa4hF,EAAM5hF,MAAOijF,EAAWjjF,MAAOijF,EAAWj7G,KAC9DA,IAAK,gBAAa45G,EAAM55G,IAAKi7G,EAAWjjF,MAAOijF,EAAWj7G,MAE9D,OAAOk7G,EAEJ,IAAIC,GAAiB,SAASC,EAAcC,EAASnkJ,GACxD,IAAIokJ,EAAqB1C,GAAmBwC,EAAclkJ,GACtDqkJ,EAAgB3C,GAAmByC,EAASnkJ,GAChD,OAAOqkJ,EAAcvjF,MAAQsjF,EAAmBtjF,O,oDCtGhDwjF,GAAa,oBACbC,GAAoB,2BACpBC,GAAkB,IAClBC,GAAa,cACbC,GAAuB,gBAAap0E,EAAA,KAAcq0E,GAAIF,IACtDG,GAA2B,gBAAat0E,EAAA,KAAc/Z,OAAQkuF,IAC9DI,GAAa,OAAO7+E,QAAQ,CAC5Bu2C,mBAAoB,WAChB,OAAO,OAAAn7G,EAAA,WAAOuF,KAAKC,WAAY,CAC3B85D,UAAW,KACXokF,SAAU,KACVr7F,oBAAoB,EACpBoC,mBAAmB,KAG3BozD,YAAa,WACTt4G,KAAKC,WACL,IAAI85D,EAAY4jF,GAAa,IAAM39I,KAAK+nB,OAAO,aAC/C/nB,KAAKgmB,WAAWsB,SAASs2H,IAAmBt2H,SAASyyC,GACrD/5D,KAAKo+I,UAAY,eAAE,SAAS92H,SAASyyC,EAAY,SAASxyC,SAASvnB,KAAKgmB,aAE5E+7F,QAAS,WACL/hH,KAAKC,WACL,IAAI2iH,EAAY,gBAAaj5C,EAAA,KAAcC,KAAM5pE,KAAK6hE,MAClD77C,EAAWhmB,KAAKgmB,WACpB,OAAau6C,IAAIv6C,EAAU48F,GAC3B,OAAav9G,GAAG2gB,EAAU48F,EAAW5iH,KAAKq+I,iBAAiB7zH,KAAKxqB,OAChEA,KAAKs+I,mBAAqBt+I,KAAKuhE,sBAAsB,aAEzD88E,iBAAkB,SAASz6I,GACvBA,EAAEg3B,iBACF56B,KAAKu+I,cACL,OAAal5I,GAAGrF,KAAKgmB,WAAYu1B,GAAA,KAAU35C,KAAM,WAC7C5B,KAAKw+I,kBAAoB,IAAI,cAC7B,gBAAKx+I,KAAKw+I,mBACVx+I,KAAKs+I,mBAAmB,CACpBh9E,MAAO19D,IAEX5D,KAAKy+I,WAAaC,YAAY1+I,KAAKs+I,mBAAoBT,GAAiB,CACpEv8E,MAAO19D,KAEb4mB,KAAKxqB,OACP,IAAI66B,EAAW,aAAWo0C,cAC1B,OAAa5pE,GAAGw1B,EAAUkjH,GAAsB/9I,KAAKu+I,YAAY/zH,KAAKxqB,OACtE,OAAaqF,GAAGw1B,EAAUojH,GAA0Bj+I,KAAKu+I,YAAY/zH,KAAKxqB,OAC1EA,KAAKs+I,mBAAmB,CACpBh9E,MAAO19D,KAGfk7H,SAAU,WACN9+H,KAAKu+I,cACLv+I,KAAKC,YAETs+I,YAAa,WACT,OAAah+E,IAAIvgE,KAAKgmB,WAAYu1B,GAAA,KAAU35C,MAC5C,IAAIi5B,EAAW,aAAWo0C,cAC1B,OAAa1O,IAAI1lC,EAAUkjH,IAC3B,OAAax9E,IAAI1lC,EAAUojH,IACvBj+I,KAAKw+I,mBACLx+I,KAAKw+I,kBAAkBhvH,UAEvBxvB,KAAKy+I,YACLE,cAAc3+I,KAAKy+I,aAG3BthC,eAAgB,SAASt+D,GACrB,OAAQA,EAAKj9C,MACT,IAAK,WACL,IAAK,YACD5B,KAAK4iE,cACL,MACJ,QACI5iE,KAAKC,SAAS4+C,OAIf,MCnFX,GAAa,oBACb+/F,GAAuB,8BACvBC,GAA4B,mCACjB,MAAM,WAAoB,QACrC,cAAc5yI,EAAU6yI,GACpB,IACI9xH,OAAQA,GACRhtB,KACA4iH,EAAY,gBAAaj5C,EAAA,KAAQC,KAAM58C,EAAO60C,MAC9Ck9E,EAAyBD,EAAez3E,WACxC23E,EAAoBhyH,EAAOq0C,cAAcz9D,GAAKopB,EAAOiyH,+BAA+Br7I,IACxF,OAAa28D,IAAIu+E,EAAgBl8B,GACjC,OAAav9G,GAAGy5I,EAAgBl8B,EAAWh/G,GAAKo7I,EAAkB,CAC9D19E,MAAO19D,KAEX,GAAWgvG,YAAYmsC,EAAuBvzH,GAAG,IAAIzD,OAAO,WAAYnkB,GAAKopB,EAAOkyH,qBAAqBt7I,IACzG,GAAWgvG,YAAYmsC,EAAuBvzH,GAAG,IAAIzD,OAAO,WAAYnkB,GAAKopB,EAAOmyH,uBAAuBv7I,IAE/G,UACI,IACIopB,OAAQA,GACRhtB,KACA8+I,EAAiB,eAAE,SAASx3H,SAASs3H,IACrCQ,EAAU,eAAE,SAAS73H,SAASu3H,GAC9BO,EAAY,eAAE,SAAS93H,SAASu3H,GAChC9tI,EAAUhR,KAAKs/I,cASnB,OARAt/I,KAAKu/I,gBAAgBT,GACrB9xH,EAAO5E,iBAAiBg3H,EAAS,GAAY,OAAA3kJ,EAAA,WAAO,CAChDs/D,UAAW,MACZ/oD,IACHgc,EAAO5E,iBAAiBi3H,EAAW,GAAY,OAAA5kJ,EAAA,WAAO,CAClDs/D,UAAW,QACZ/oD,IACHhR,KAAKw/I,cAAcxyH,EAAOhH,WAAYhmB,KAAKy/I,mBAAoBzuI,EAAQ24C,SAChE,CACH19C,SAAU6yI,EACV94H,SAAU84H,GAGlB,cACI,IACI9xH,OAAQA,GACRhtB,KACA2pD,EAAU3pD,KAAK0/I,aACf37F,EAAW/2B,EAAOjF,OAAO,YAC7B,MAAO,CACH4hC,QAASA,EACT5F,SAAUA,GAGlB,aACI,IACI/2B,OAAQA,GACRhtB,KACJ,OAAO21G,MAAM+pC,cAAgB1yH,EAAOjF,OAAO,mBAE/C,mBACI,IACIiF,OAAQA,GACRhtB,KACJ,OAAOgtB,EAAOjF,OAAO,oBAAsBiF,EAAOjF,OAAO,uBAE7D,cAAc4/G,EAASgY,EAAiBx4H,GACpCwgH,EAAQ9jE,YAAYg7E,GAA2Bc,GAC/ChY,EAAQ9jE,YAAY,GAAY18C,GAEpC,SACI,IAAIy4H,EAAejqC,MAAMniC,SACzB,GAAIosE,EAAc,CACd,IACI5yH,OAAQA,EACR/gB,SAAUA,GACVjM,KACA2nI,EAAU36G,EAAOhH,WACjBmB,EAAYnnB,KAAK0/I,aACjBC,EAAkB3/I,KAAKy/I,mBACvBI,EAAe5zI,EAASo7D,WACxBy4E,EAAS,GAAWltC,YAAYitC,EAAar0H,GAAG,IAChDu0H,EAAW,GAAWntC,YAAYitC,EAAar0H,GAAG,IAClDxa,EAAUhR,KAAKs/I,cACnBQ,EAAO/3H,OAAO/W,GACd+uI,EAASh4H,OAAO/W,GAChBhR,KAAKw/I,cAAc7X,EAASgY,EAAiBx4H,KC9DzD,IAAI,GAAOxF,KACPq+H,GAAe,eACfC,GAAuB,CAAC,MAAO,MAAO,YAAa,YAAa,aAAc,OAAQ,MAAO,SAC7FC,GAAoC,4BACpCC,GAAgB,QAAW9gF,QAAQ,CACnCg3C,eAAgB,WACZ,OAAO,OAAA57G,EAAA,WAAOuF,KAAKC,WAAY,CAC3BmgJ,QAAS,SAASx8I,GACT,gBAAoBA,KACrBA,EAAEg3B,iBACFh3B,EAAEy1G,kBACFr5G,KAAKk/I,qBAAqBt7I,KAGlCy8I,UAAW,SAASz8I,GACX,gBAAoBA,KACrBA,EAAEg3B,iBACFh3B,EAAEy1G,kBACFr5G,KAAKm/I,uBAAuBv7I,KAGpC08I,MAAO,gBAGf1qC,mBAAoB,WAChB,OAAO,OAAAn7G,EAAA,WAAOuF,KAAKC,WAAY,CAC3B4B,MAAO,EACP+f,SAAK,EACLoQ,SAAK,EACLuuH,KAAM,EACNC,iBAAiB,EACjBC,qBAAqB,EACrB5kG,KAAM,OACN6kG,oBAAqB,OAAoBrnJ,OAAO,mCAChD8yD,aAAS,KAGjBw0F,cAAe,WACX,OAAO,GAEXC,mBAAoB,WAChB,OAAO5gJ,KAAKC,WAAW4R,OAAO,CAAC,CAC3BjQ,KAAM,QACNi/I,KAAM,OAGdC,oBAAqB,WACjB,IAAI39G,EAAUogC,WAAW90C,EAAA,KAAQ0U,SACjC,OAAO1U,EAAA,KAAQujF,QAAU7uE,GAAW,IAAM1U,EAAA,KAAQ69C,QAAUnpC,GAAW,IAE3Eu8E,qBAAsB,WAClB,OAAO1/G,KAAKC,WAAW4R,OAAO,CAAC,CAC3B8tG,OAAQ,WACJ,OAAO9G,GAAA,KAAQC,OAAOioC,UAAYloC,GAAA,KAAQyd,eAE9CtlH,QAAS,CACLyvI,qBAAqB,IAE1B,CACC9gC,OAAQ,WACJ,MAAO,YAAc9G,GAAA,KAAQC,OAAOC,aAAe/4G,KAAK8gJ,uBAC1Dt2H,KAAKxqB,MACPgR,QAAS,CACL6qC,KAAM,cAIlBy8D,YAAa,WACTt4G,KAAKghJ,uBACLhhJ,KAAKgmB,WAAWsB,SAAS04H,IACzBhgJ,KAAKC,YAETghJ,sBAAuB,WACnB,IAAIv2E,EAAa1qE,KAAKC,WAEtB,OADAyqE,EAAWw2E,UAAY,UAChBx2E,GAEXm8C,mBAAoB,WAChB7mH,KAAK+nB,OAAO,YAAc/nB,KAAKmhJ,eAAenhJ,KAAK+nB,OAAO,UAC1D/nB,KAAKosB,QAAQ,OAAQ,eAEzB40H,qBAAsB,WAClBhhJ,KAAKohJ,gBAAkB,eAAE,WAAWpgF,KAAK,OAAQ,UAAUz5C,SAASvnB,KAAKgmB,YACzEhmB,KAAKqhJ,gBAAgBrhJ,KAAK+nB,OAAO,WAErCs5H,gBAAiB,SAASx/I,GACtB7B,KAAKshJ,oBAAoBC,IAAI,eAA4B1/I,KAE7Dy/I,kBAAmB,WACf,OAAOthJ,KAAKohJ,iBAEhBI,iBAAkB,SAAS59I,GACvB5D,KAAKC,SAAS2D,GACd,IAAIqf,EAAO,gBAAQrf,GACf69I,EAAmB,cAAc7uH,KAAK3P,GAC1C,IAAKw+H,EAAkB,CACnB,IAAI94H,EAAU,gBAAiB/kB,GAC/B,GAAI,gBAAoBA,IAAM+kB,GAAWs3H,GAAqBj9I,SAAS2lB,GACnE,OAGJ,OADA/kB,EAAEg3B,kBACK,EAEX56B,KAAK0hJ,aAAc,GAEvBC,cAAe,SAASr5B,GACpBA,EAAQs5B,MAAQ,EAAI5hJ,KAAK6hJ,iBAAiB,EAAGv5B,GAAWtoH,KAAK6hJ,kBAAkB,EAAGv5B,IAEtFw5B,aAAc,WACV,IAAIC,EAAa/hJ,KAAKgiJ,SAAST,MAC3B1/I,EAAQ7B,KAAK+nB,OAAO,SACnBg6H,EAAWnoJ,QAAU2qB,OAAOw9H,KAAgBlgJ,IAC7C7B,KAAKiiJ,oBACLjiJ,KAAKkiJ,gCAET,IAAI/8H,EAAY,eAAUtjB,GAAS,KAAO,OAAoBxI,OAAO,0BAOrE,OANA2G,KAAKosB,QAAQ,CACT+1H,SAAU,eAActgJ,EAAO,IAC/BugJ,UAAWj9H,IAEfnlB,KAAK+nB,OAAO,OAAQ/nB,KAAKgiJ,SAAST,OAClCvhJ,KAAKqiJ,kBACE,IAAK,eAAU7yH,WAE1ByyH,kBAAmB,WACf,IAAIpgJ,EAAQ7B,KAAK+nB,OAAO,SACpB1sB,EAASkpB,OAAO1iB,GAChBkyF,EAAiBvwF,MAAMnI,GAAU,GAAK2E,KAAKsiJ,4BAA4BzgJ,GAC3E7B,KAAKuiJ,mBAAmBxuD,IAE5BuuD,4BAA6B,SAASzgJ,GAClC,OAAO7B,KAAK+nB,OAAO,wBAAZ/nB,CAAqC6B,IAEhD2gJ,aAAc,WACVxiJ,KAAKgiJ,SAASS,KAAK,CACf7gI,IAAK5hB,KAAK+nB,OAAO,OACjBiK,IAAKhyB,KAAK+nB,OAAO,OACjBw4H,KAAMvgJ,KAAK+nB,OAAO,UAEtB/nB,KAAKosB,QAAQ,CACTs2H,SAAU,eAAc1iJ,KAAK+nB,OAAO,OAAQ,IAC5C46H,SAAU,eAAc3iJ,KAAK+nB,OAAO,OAAQ,OAGpDk3H,+BAAgC,WAC5B,IAAI2D,EAAS5iJ,KAAKgiJ,SACbhiJ,KAAK+nB,OAAO,wBAA0B,aAAW8lG,qBAAuB+0B,EAAO,IAChF,OAAa91H,QAAQ81H,EAAQ,UAGrC1D,qBAAsB,SAASt7I,GACtB5D,KAAK+nB,OAAO,aACb/nB,KAAK6hJ,iBAAiB,EAAGj+I,EAAE09D,OAAS19D,IAG5Cu7I,uBAAwB,SAASv7I,GACxB5D,KAAK+nB,OAAO,aACb/nB,KAAK6hJ,kBAAkB,EAAGj+I,EAAE09D,OAAS19D,IAG7Ci+I,iBAAkB,SAAS9lJ,EAAMusH,GAC7B,IAAIi4B,EAAOh9E,WAAWvjE,KAAK+nB,OAAO,SAClC,GAAI,IAAMw4H,EAAV,CAGA,IAAI1+I,EAAQ0hE,WAAWvjE,KAAK6iJ,yBAA2B,EACvDhhJ,EAAQ7B,KAAK8iJ,iBAAiBjhJ,EAAO0+I,EAAOxkJ,GAC5C,IAAI6lB,EAAM5hB,KAAK+nB,OAAO,OAClBiK,EAAMhyB,KAAK+nB,OAAO,OAClB,eAAUnG,KACV/f,EAAQ8f,KAAKqQ,IAAIpQ,EAAK/f,IAEtB,eAAUmwB,KACVnwB,EAAQ8f,KAAKC,IAAIoQ,EAAKnwB,IAE1B7B,KAAK+iJ,sBAAsBz6B,GAC3BtoH,KAAK+nB,OAAO,QAASlmB,KAEzBihJ,iBAAkB,SAASjhJ,EAAO0+I,GAC9B,IAAIyC,EAAQ,WACRC,EAAeD,EAAMpwH,KAAK/wB,GAC1BqhJ,EAAcF,EAAMpwH,KAAK2tH,GAC7B,GAAI0C,GAAgBC,EAAa,CAC7B,IAAIC,EAAgBF,EAAeD,EAAMrpH,KAAK93B,GAAO,GAAGjI,OAAS,EAC7DwpJ,EAAeF,EAAcF,EAAMrpH,KAAK4mH,GAAM,GAAG3mJ,OAAS,EAC1DypJ,EAAW,GAAKrxH,IAAImxH,EAAeC,GAEvC,OADAvhJ,EAAQ7B,KAAKsjJ,OAAOzhJ,EAAQ0+I,EAAM8C,GAC3BxhJ,EAEX,OAAOA,EAAQ0+I,GAEnB+C,OAAQ,SAASzhJ,EAAOq2D,GACpBA,EAAYA,GAAa,EACzB,IAAIqrF,EAAa5hI,KAAK4/D,IAAI,GAAIrpB,GAG9B,OAFAr2D,GAAS0hJ,EACT1hJ,EAAQ8f,KAAKwqF,MAAMtqG,GAAS0hJ,EACrB1hJ,GAEX2hJ,wBAAyB,WACrBxjJ,KAAKC,WACL,IAAIwjJ,EAAwB,gBAAa,WAAYvD,IACrD,OAAa3/E,IAAIvgE,KAAK6mB,UAAW48H,GACjC,OAAap+I,GAAGrF,KAAK6mB,UAAW48H,EAAuBzjJ,KAAK0jJ,wBAAwBl5H,KAAKxqB,QAE7F0jJ,wBAAyB,WACrB,GAAI,WAAa1jJ,KAAK+nB,OAAO,QAA7B,CAGA,IAAI66H,EAAS5iJ,KAAKgiJ,SACdjuD,EAAiB/zF,KAAKsiJ,4BAA4BtiJ,KAAK+nB,OAAO,UAClE66H,EAAOrB,IAAI,MACXqB,EAAOrB,IAAIxtD,KAEf4vD,yBAA0B,SAAS//I,GAC/B,IAAIg/I,EAAS5iJ,KAAKgiJ,SACdD,EAAa/hJ,KAAK4jJ,iBAClB/hJ,EAAQ7B,KAAK6jJ,YAAY9B,GACzB+B,EAAiB,MAAQ/B,GAAc,MAAQA,GAC/C/hJ,KAAK+jJ,iBAAoB/jJ,KAAKmhJ,eAAet/I,IAI7CiiJ,GACA9jJ,KAAKC,SAAS2D,EAAGJ,MAAM3B,GAAS,KAAOA,GAE3C7B,KAAKgkJ,sBAAsBjC,EAAYlgJ,GACvC7B,KAAKikJ,kBAAkBngF,KAAK,CACxBjiE,MAAOA,EACPmrB,OAAQhtB,QATR4iJ,EAAOrB,IAAIvhJ,KAAKsiJ,4BAA4BzgJ,KAYpDmiJ,sBAAuB,SAASjC,EAAY9gE,GACxC,IAAIijE,EAAoBlkJ,KAAKmkJ,mBAAmBpC,GAC5CqC,EAAiBpkJ,KAAKqkJ,gBAAgBtC,GACrCmC,GAAsBE,GAAkB,OAASnjE,GAC9C18D,OAAOw9H,KAAgB9gE,GACvBjhF,KAAKgiJ,SAAST,IAAIvhJ,KAAKsiJ,4BAA4BrhE,KAI/DqjE,uBAAwB,SAASziJ,GAC7B,OAAOA,EAAM1G,QAAQ,IAAK,MAE9BopJ,gBAAiB,WACb,IAAIC,EAAe,WAAaxkJ,KAAK+nB,OAAO,QACxC08H,EAAgBzkJ,KAAKgiJ,SAAStkJ,IAAI,GAAGgnJ,SACzC,OAAOF,GAAgBC,GAAiBA,EAAcE,UAE1DpC,mBAAoB,SAAShmJ,GACrByD,KAAKukJ,mBAGTvkJ,KAAKC,SAAS1D,IAElB4nJ,mBAAoB,SAAStiJ,GACzB,MAAO,+BAA+B+wB,KAAK/wB,IAE/CwiJ,gBAAiB,SAASxiJ,GACtB,OAAO,gBAAQA,EAAO7B,KAAK+nB,OAAO,OAAQ/nB,KAAK+nB,OAAO,SAE1D68H,UAAW,SAAS/iJ,GAChB,OAAO,OAAS7B,KAAK6jJ,YAAYhiJ,IAErCs/I,eAAgB,SAASt/I,GACrB,IAAIkgJ,EAAa/hJ,KAAK4jJ,iBAClBiB,EAAe7kJ,KAAK+jJ,gBACpBe,GAAU,EACVC,EAAW/kJ,KAAK4kJ,UAAU7C,GAgB9B,OAfIv+I,MAAM+gB,OAAO1iB,MACbijJ,GAAU,IAETjjJ,GAASgjJ,EACVC,GAAU,EACFC,GAAaF,IACrBC,GAAU,GAEd9kJ,KAAK+nB,OAAO,CACR+8H,QAASA,EACTE,gBAAiBF,EAAU,KAAO,CAC9BG,gBAAgB,EAChB/8H,QAASloB,KAAK+nB,OAAO,0BAGtB+8H,GAEXjC,qBAAsB,WAClB,OAAO7iJ,KAAK6jJ,YAAY7jJ,KAAK4jJ,mBAEjCA,eAAgB,WACZ,IAAI/hJ,EAAQ7B,KAAKgiJ,SAAST,MAAM5hJ,OAChC,OAAOK,KAAKskJ,uBAAuBziJ,IAEvCgiJ,YAAa,SAAShiJ,GAClB,IAAIxG,EAASkoE,WAAW1hE,GACxB,OAAI2B,MAAMnI,GACC,KAEJ,gBAAaA,EAAQ2E,KAAK+nB,OAAO,OAAQ/nB,KAAK+nB,OAAO,SAEhEm9H,YAAa,WACLllJ,KAAKukJ,oBACLvkJ,KAAKgiJ,SAAST,IAAI,IAClBvhJ,KAAKmhJ,kBAETnhJ,KAAKC,YAETosF,MAAO,WACC,OAASrsF,KAAK+nB,OAAO,UACrB/nB,KAAK+nB,OAAO,OAAQ,IACpB/nB,KAAK8hJ,gBAEL9hJ,KAAK+nB,OAAO,QAAS,OAG7Bo1F,eAAgB,SAASt+D,GACrB,OAAQA,EAAKj9C,MACT,IAAK,QACD5B,KAAKmhJ,eAAetiG,EAAKh9C,OACzB7B,KAAKqhJ,gBAAgBxiG,EAAKh9C,OAC1B7B,KAAKC,SAAS4+C,GACd7+C,KAAKmlJ,2BACL,MACJ,IAAK,OACDnlJ,KAAKwiJ,eACL,MACJ,IAAK,MACL,IAAK,MACDxiJ,KAAKwiJ,eACLxiJ,KAAK+nB,OAAO,QAAS/nB,KAAK6jJ,YAAY7jJ,KAAK+nB,OAAO,WAClD,MACJ,IAAK,kBACL,IAAK,sBACD/nB,KAAKqiJ,eAAe,CAAC,UACrB,MACJ,IAAK,sBACD,MACJ,QACIriJ,KAAKC,SAAS4+C,OAIf,MCxUXumG,GAA6B,oBAC7BC,GAAe,EACfC,IAAiB,EACjBC,GAAQ,IACRC,GAAY,QACZC,GAAc,QACdC,GAAyB,EACzBC,GAAgB,GAActmF,QAAQ,CACtCu2C,mBAAoB,WAChB,OAAO,OAAAn7G,EAAA,WAAOuF,KAAKC,WAAY,CAC3BsL,iBAAiB,EACjBlS,OAAQ,QAGhBusJ,aAAc,SAAS9qJ,GACnB,MAAO,QAAUA,GAErBu7G,eAAgB,WACZ,OAAKr2G,KAAK6lJ,mBAGH,OAAAprJ,EAAA,WAAOuF,KAAKC,WAAY,CAC3B6lJ,MAAO9lJ,KAAK+lJ,YAAYv7H,KAAKxqB,MAC7BgmJ,IAAKhmJ,KAAKimJ,eAAez7H,KAAKxqB,MAC9BkmJ,UAAWlmJ,KAAKimJ,eAAez7H,KAAKxqB,MACpCmmJ,UAAWnmJ,KAAKomJ,cAAc57H,KAAKxqB,KAAMslJ,IACzCe,WAAYrmJ,KAAKomJ,cAAc57H,KAAKxqB,KAAMqlJ,IAC1CiB,KAAMtmJ,KAAKumJ,iCAAiC/7H,KAAKxqB,KAAMqlJ,IACvD/E,MAAOtgJ,KAAKwmJ,sBAAsBh8H,KAAKxqB,MACvCmiC,IAAKniC,KAAKumJ,iCAAiC/7H,KAAKxqB,KAAMslJ,MAV/CtlJ,KAAKC,YAapBwmJ,uBAAwB,SAASlqJ,GAC7B,IAAI8+I,EAAmB,QAAOC,sBAC1Bc,EAA+B7B,GAAsBv6I,KAAK+nB,OAAO,WAAW2yH,WAChF,OAAOC,GAAiBp+I,EAAM8+I,EAAkBe,IAEpDsK,gBAAiB,SAAS9iJ,GACjB5D,KAAK2mJ,yBAAyB/iJ,KAC/B5D,KAAK4mJ,oBACL5mJ,KAAK6mJ,cAAgB5zI,WAAW,WAC5BjT,KAAK6mJ,mBAAgB,EACrB,IAAI9K,EAAQ/7I,KAAK8mJ,SACjB,GAAI/K,EAAM5hF,QAAU4hF,EAAM55G,KAAOniC,KAAK6lJ,mBAAoB,CACtD,IAAItpJ,EAAOyD,KAAK+mJ,eACZC,EAAwBhnJ,KAAKymJ,uBAAuBlqJ,GACpDyqJ,GAAyB,EACzBhnJ,KAAK8mJ,OAAO,CACR3sF,MAAO6sF,EACP7kH,IAAK6kH,IAGThnJ,KAAKumJ,iCAAiCjB,GAAe1hJ,KAG/D4mB,KAAKxqB,MAAO0lJ,KAElB1lJ,KAAKC,SAAS2D,IAElBqjJ,iBAAkB,SAASrjJ,GACvB,IAAIsjJ,GAAqBlnJ,KAAK2mJ,yBAAyB/iJ,GACnDsjJ,IACAlnJ,KAAKmnJ,iBAAkB,EACnBnnJ,KAAK6lJ,oBACL7lJ,KAAKwmJ,yBAGbxmJ,KAAKC,SAAS2D,GACVsjJ,IACAlnJ,KAAKmnJ,iBAAkB,IAG/B,qBAAqBpF,GACjB,IAAI1oJ,EAAS2G,KAAKonJ,oBACdvlJ,EAAQ7B,KAAK+nB,OAAO,SACpBk0H,EAAYj8I,KAAKJ,QAAQiC,EAAOxI,IAAW,GAC/C,OAAO4iJ,IAAc8F,GAEzByE,sBAAuB,WACnB,IAAIzE,EAAa/hJ,KAAK+mJ,eAClB/mJ,KAAKqnJ,qBAAqBtF,KAC1B/hJ,KAAKsnJ,qBACLtnJ,KAAKunJ,qBACLvnJ,KAAKwnJ,wBACDxnJ,KAAKynJ,eAAiBznJ,KAAK+nB,OAAO,UAClC,OAAa+E,QAAQ9sB,KAAKgiJ,SAAU,YAIhDoE,cAAe,SAAS7F,EAAM38I,GAC1B,GAAK5D,KAAK6lJ,mBAAV,CAGA,IAAItpJ,EAAOyD,KAAK+mJ,eACZ1tJ,EAAS2G,KAAKonJ,oBACdM,EAAY5L,GAAmB97I,KAAK8mJ,SAAUvG,GAC7CpD,GAAoBuK,EAAWnrJ,EAAMlD,KACtCquJ,EAAYnH,IAAS8E,GAAeqC,EAAUvlH,IAAMulH,EAAUvtF,MAC9Dv2D,EAAEg3B,iBACF56B,KAAK8mJ,OAAOjK,GAAqB6K,EAAWnrJ,EAAMlD,OAG1DsuJ,qBAAsB,SAAS5tF,GAC3B,IAAIqjF,EAAarC,GAAmB/6I,KAAK+mJ,eAAgB/mJ,KAAKonJ,qBAC1DQ,EAAW9L,GAAmB/hF,IAAcsrF,GAAejI,EAAWjjF,MAAQijF,EAAWj7G,IAAK,GAClGniC,KAAK8mJ,OAAOc,IAEhBrB,iCAAkC,SAASxsF,EAAWn2D,IAC7C5D,KAAK6lJ,oBAAsBjiJ,GAAKA,EAAE84E,WAGvC18E,KAAK2nJ,qBAAqB5tF,GAC1Bn2D,GAAKA,EAAEg3B,mBAEXitH,iBAAkB,SAAStrJ,EAAMw/I,GAC7B,IAAIV,EAAmB,QAAOC,sBAC1BwM,EAAyBvrJ,EAAK0/B,OAAO8/G,EAAM55G,OAASk5G,EACpD0M,GAAe/nJ,KAAKgoJ,WAAa3M,GAAoB,MAAQr7I,KAAKgoJ,UAAY,MAAQhoJ,KAAKgoJ,WAAaF,EAC5G,OAAOC,GAEXhB,aAAc,WACV,OAAO,QAAOtjJ,cAAczD,KAAKgiJ,SAAST,OAAO,IAErD0G,iBAAkB,SAASrkJ,GAIvB,GAHA5D,KAAK4mJ,oBACL5mJ,KAAKgoJ,SAAW,QAAOvkJ,cAAc,gBAAQG,IAAI,GACjD5D,KAAKkoJ,aAAe,gBAAiBtkJ,IAChC5D,KAAKmoJ,iBAAiBvkJ,EAAEg1E,eACzB,OAAO54E,KAAKC,SAAS2D,GAEzB,IAAIwkJ,EAAiBpoJ,KAAK+mJ,eACtBhL,EAAQ/7I,KAAK8mJ,SACbuB,EAAcroJ,KAAKkoJ,eAAiB1C,GAAY,GAAKxlJ,KAAKgoJ,SAC1D10E,EAAWtzE,KAAKsoJ,UAAUF,EAAgBrM,EAAOsM,GAYrD,OAXIroJ,KAAK6nJ,iBAAiBO,EAAgBrM,KACtC/7I,KAAKuoJ,WAAW,GAChB3kJ,EAAEg1E,cAAch+C,uBAEhB,IAAW04C,EACPtzE,KAAKkoJ,eAAiB1C,IACtB5hJ,EAAEg1E,cAAch+C,iBAGpB56B,KAAKynJ,aAAen0E,EAEjBtzE,KAAKC,SAAS2D,IAEzB49I,iBAAkB,SAAS59I,GAClB5D,KAAK6lJ,oBACN7lJ,KAAKC,SAAS2D,IAGtBqiJ,eAAgB,SAASriJ,GACrB,IAAIm4I,EAAQ/7I,KAAK8mJ,SACbvqJ,EAAOyD,KAAK+mJ,eACZ5sF,EAAQ4hF,EAAM5hF,MACdh4B,EAAM45G,EAAM55G,IAChBniC,KAAKgoJ,SAAW,gBAAQpkJ,GACxB5D,KAAKkoJ,aAAe,gBAAiBtkJ,GACrC,IAAI4kJ,EAAcxoJ,KAAK4lJ,aAAa5lJ,KAAKkoJ,cACrCO,GAAkBD,EACtB,GAAIruF,IAAUh4B,EAAK,CACf,IAAIumH,EAAgBvuF,EAChBwuF,EAAYF,GAAkBC,EAAgB,GAAKF,GAAeE,EAAgBnsJ,EAAK3C,OAC3F,IAAI+uJ,EAKA,YADA/kJ,EAAEg3B,iBAHF4tH,GAAermH,IACfsmH,GAAkBtuF,IAM1B,IAAIl3C,EAAO1mB,EAAK8mB,MAAM82C,EAAOh4B,GAC7B,GAAIniC,KAAK4oJ,QAAQ3lI,GAOb,OANAjjB,KAAKuoJ,WAAWC,EAAc,GAAK,IAC/BxoJ,KAAKynJ,aAAe,GAAK,EAAIznJ,KAAKynJ,gBAAiB,OACnDznJ,KAAK+lJ,YAAYniJ,GACjB5D,KAAKwnJ,8BAET5jJ,EAAEg3B,iBAGN,IAAIygH,EAAmB,QAAOC,sBAC9B,GAAIr4H,IAASo4H,EAAb,CAQA,GAAIl5G,EAAMg4B,EAAQ59D,EAAK3C,OAAQ,CAC3B,IAAIivJ,EAAa7oJ,KAAK8oJ,qBAAqBvsJ,EAAM,CAC7C49D,MAAOA,EACPh4B,IAAKA,GACN,IACC4mH,EAAWF,EAAW9jJ,OAAO,SAAW,EAC5C,GAAIgkJ,GAAY/oJ,KAAKqkJ,gBAAgB,GAEjC,YADArkJ,KAAKynJ,aAAeznJ,KAAKynJ,aAAe,GAAK,EAAIznJ,KAAKynJ,gBAAiB,KAAU,EAAI,GAI7F,IAAIuB,EAAqBhpJ,KAAKsoJ,UAAU/rJ,EAAM,CAC1C49D,MAAOA,EACPh4B,IAAKA,GACN,SACC,IAAW6mH,EACXplJ,EAAEg3B,iBAEF56B,KAAKynJ,aAAeuB,MA1BxB,CACI,IAAIhC,EAAwBzqJ,EAAK+B,QAAQ+8I,GACrCr7I,KAAKipJ,gBAAgBjC,EAAwB,KAC7ChnJ,KAAKuoJ,WAAWC,EAAc,GAAK,GACnC5kJ,EAAEg3B,oBAyBdsuH,iBAAkB,WACd,IAAI7vJ,EAAS2G,KAAKonJ,oBACd+B,EAAkB9vJ,EAAO8B,QAAQ,WAAY,IACjD,OAAQ,IAAMguJ,EAAgB7qJ,QAAQ,MAE1C8qJ,OAAQ,SAAS7sJ,EAAMlD,GACnB,IAAIgwJ,EAAerpJ,KAAK+nB,OAAO,UAC3BuhI,EAAiB,eAAWD,EAAajpJ,QACzCA,EAASkpJ,EAAiBD,EAAajpJ,OAAS,QAAOD,MACvDopJ,EAAwB,EAC5B,IAAKD,EAAgB,CACjB,IAAIE,EAAmBjP,GAAsBlhJ,GAAQ+H,MACjDqoJ,EAAiBzpJ,KAAKymJ,uBAAuBlqJ,GAC7CmtJ,GAA2B,IAAMF,EAAmBA,EAAmBnwJ,EAAOO,OAC9E+vJ,GAAyB,IAAMF,EAAiBA,EAAiBltJ,EAAK3C,OACtE+vJ,EAAwBD,IAA4B,IAAMrwJ,EAAOiF,QAAQ,OACzEirJ,EAAwBI,EAAwBD,GAIxD,OADAntJ,EAAOA,EAAKgmB,OAAOgnI,GACZnpJ,EAAO7D,EAAMlD,IAExBuG,QAAS,SAASiC,EAAOxI,GACrB,IAAIgwJ,EAAerpJ,KAAK+nB,OAAO,UAC3B6hI,GAAmB,OAASP,QAAgB,IAAWA,OAAe,EAASA,EAAaxpJ,YAAcwpJ,EAC1GxpJ,EAAY,eAAW+pJ,GAAmBA,EAAkB,QAAOvwJ,OACnE06F,EAAiB,OAASlyF,EAAQ,GAAKhC,EAAUgC,EAAOxI,GAC5D,OAAO06F,GAEXqzD,kBAAmB,WAIf,OAHKpnJ,KAAK6pJ,gBACN7pJ,KAAK8pJ,gBAEF9pJ,KAAK6pJ,gBAEhBC,cAAe,WACX,IAAIzwJ,EAAS2G,KAAK+nB,OAAO,UACrBuhI,EAAiB,eAAW,OAASjwJ,QAAU,IAAWA,OAAS,EAASA,EAAO+G,QACnF2pJ,EAAgB,eAAS1wJ,KAAYA,EAAOiF,QAAQ,MAAQ,GAAKjF,EAAOiF,QAAQ,MAAQ,GACxF0rJ,EAAsB,gBAAkB3wJ,GAAU,iBAAmB,OAASA,QAAU,IAAWA,OAAS,EAASA,EAAOoF,MAC5HwrJ,EAAsBX,GAAkBS,GAAiBC,EAC7DhqJ,KAAK6pJ,eAAiBI,EAAsB5wJ,EAAS,gBAAcwI,IAC/D,IAAItF,EAAOyD,KAAKJ,QAAQiC,EAAOxI,GAC/B,OAAO,QAAOoK,cAAclH,GAAM,MAG1C2tJ,kBAAmB,SAAS3tJ,GACxB,IAAIlD,EAAS2G,KAAKonJ,oBAClB,GAAI,eAAS/tJ,GAAS,CAClB,IAAI2hJ,EAAY3hJ,EAAOwC,MAAM,KACzBE,EAAO,QAAOk/I,QAAQ1+I,EAAMlD,GAEhC,OADA2hJ,EAAU,GAAKA,EAAU,IAAM,IAAMA,EAAU,GACxCj/I,EAAO,EAAIi/I,EAAU,GAAKA,EAAU,GAE3C,IAAImP,EAAQ,QAAOlP,QAAQ1+I,GAC3B,OAAO4tJ,EAAQ,EAAI,IAAM,IAGjCC,aAAc,SAAS7tJ,EAAM8tJ,GACzB,IAAIhxJ,EAAS2G,KAAKkqJ,kBAAkB3tJ,GAChC+tJ,EAAqB,QAAOC,wBAC5BC,EAAQxqJ,KAAKyqJ,UAAUpxJ,GACvB4F,EAAS1C,EACb,GAAIiuJ,EAAM5wJ,OAAQ,CACd,IAAI8wJ,EAAcF,EAAM,GACpBG,EAAe,IAAIxyH,OAAO,IAAM,eAAaqyH,EAAM,IAAM,IAAM,KAAM,KACrEI,EAAkB,IAAIzyH,OAAO,KAAO,eAAakyH,EAAe,GAAKC,GAAsB,IAAK,KACpGrrJ,EAASA,EAAO9D,QAAQuvJ,EAAa,IAAIvvJ,QAAQwvJ,EAAc,IAAIxvJ,QAAQyvJ,EAAiB,IAEhG,OAAO3rJ,GAEXwrJ,UAAW,SAASpxJ,GAChB,IAAIqgC,EAAe,iBAAiBC,KAAKtgC,GACrCwJ,EAAU62B,GAAgBA,EAAa,GAAG/5B,OAC9C,OAAOtG,EAAOwC,MAAMgH,GAAS/G,KAAI,SAAU+uJ,GACvC,OAAOA,EAAK1vJ,QAAQ,KAAM,QAGlC2vJ,qBAAsB,SAASjpJ,EAAOkpJ,GAClC,GAAI,eAAUlpJ,GAAQ,CAClB,IAAImpJ,EAAWnpJ,EAAM4f,WACjBulI,EAAwBgE,EAAS1sJ,QAAQ,KAC7C,GAAI0sJ,GAAYhE,GAAyB,EAAG,CACxC,IAAI/lE,EAAc1d,WAAWynF,EAASzoI,OAAO,EAAGykI,EAAwB+D,EAAe,IACvF,OAAOvnJ,MAAMy9E,GAAep/E,EAAQo/E,GAG5C,OAAOp/E,GAEXymJ,UAAW,SAAS/rJ,EAAMssD,EAAW5lC,GACjC,IAAI4lI,EAAa7oJ,KAAK8oJ,qBAAqBvsJ,EAAMssD,EAAW5lC,GACxD5pB,EAAS2G,KAAKonJ,oBACd6D,EAAiBpiG,EAAUsR,QAAUtR,EAAU1mB,IAC/C8+C,EAAcjhF,KAAKkrJ,gBAAgBrC,EAAYxvJ,GAC/C0xJ,GAAgB1xJ,EAAO+G,QAAUJ,KAAKmrJ,oBAAoBtC,GAAY72H,IACtEouE,EAAiBnf,IAAgBjhF,KAAKynJ,aACtCpM,EAAmB,QAAOC,sBAC1B8P,EAA2BnoI,IAASo4H,GAAoB,IAAM0P,EAC9DM,GAA2BJ,IAAmB7qD,GAAkBn9E,IAASsiI,KAAUvlJ,KAAKmkJ,mBAAmB0E,IAAe7oJ,KAAK4oJ,QAAQ3lI,GAC3I,IAAImoI,IAA4BC,IAG5B,KAAOrrJ,KAAKoqJ,aAAavB,KACzB5nE,EAAct/D,KAAKiB,IAAI,EAAI5iB,KAAKynJ,gBAEhCjkJ,MAAMy9E,IAAV,CAGA,IAAIp/E,EAAQ,OAASo/E,EAAcjhF,KAAKynJ,aAAexmE,EAEvD,OADAA,EAAc8pE,EAAe/qJ,KAAK8qJ,qBAAqBjpJ,EAAOkpJ,GAAgB9pE,GACtE5nF,EAAO+G,QAAUJ,KAAKkpJ,mBAAqBrO,GAAmB55D,EAAa8pE,GAAgB9pE,IAEvGiqE,gBAAiB,SAAS3uJ,EAAMlD,GAC5B,IAAI0C,EAAO,QAAOk/I,QAAQ1+I,GAAO,OAASlD,QAAU,IAAWA,OAAS,EAASA,EAAOwG,YAAcxG,GAClGiyJ,EAAmBtrJ,KAAKoqJ,aAAa7tJ,GAAM,GAC3C0kF,EAAcjhF,KAAKopJ,OAAOkC,EAAkBjyJ,GAC5CkyJ,EAAkBtqE,EAAc,GAAK,EAAI,EACzCuqE,EAAsB,eAAUvqE,IAAgBllF,IAASwvJ,EAAkBxvJ,EAAOklF,EAAcA,EACpG,OAAOuqE,GAEXrH,mBAAoB,SAAS5nJ,GACzB,IAAKyD,KAAK6lJ,mBACN,OAAO7lJ,KAAKC,SAAS1D,GAEzB,IAAIw/I,EAAQ/7I,KAAK8mJ,SACbp7H,EAAQ,QAAO4vH,sBACfmQ,EAAazrJ,KAAKymJ,uBAAuBlqJ,GACzCkgJ,EAAiBgP,GAAc,GAAKA,EAAa1P,EAAM5hF,MACvDoiF,EAAYv8I,KAAKoqJ,aAAa7tJ,GAAM,GAAMV,MAAM6vB,GACpD,IAAK+wH,GAAkB,IAAMF,EAAU3iJ,OACnC,OAAO,EAEX,IAAI8xJ,EAAcnP,EAAU,GAAG3iJ,OAC3BP,EAAS2G,KAAKonJ,oBACdkC,IAAmBjwJ,EAAO+G,OAC1B83D,GAAaoxF,GAAkBtpJ,KAAKmrJ,oBAAoBnrJ,KAAKonJ,oBAAqB7qJ,GAClFovJ,IAAqBrC,GAAwB,gBAAQoC,EAAaxzF,EAAUt2C,IAAKs2C,EAAUlmC,KAC3F45H,EAAe,MAAQrP,EAAU,GAAGtgH,OAAOyvH,EAAc,GAC7D,OAAOC,IAAuBC,IAAiBF,IAEnDrH,gBAAiB,SAASxiJ,GACtB,IAAI+f,EAAM,eAAc5hB,KAAK+nB,OAAO,QAAQ,KACxCiK,EAAM,eAAchyB,KAAK+nB,OAAO,OAAQ,KAC5C,OAAO,gBAAQlmB,EAAO+f,EAAKoQ,IAE/B65H,cAAe,SAAStvJ,GACpB,IAAI6rJ,EAAiB,QAAO3kJ,cAAclH,GAAM,GAC5CqrJ,EAAW5L,GAAoBh8I,KAAK+mJ,eAAgBqB,EAAgBpoJ,KAAK8mJ,SAAU9mJ,KAAKonJ,qBAC5FpnJ,KAAKgiJ,SAAST,IAAIhlJ,GAClByD,KAAKkiJ,+BACLliJ,KAAK8rJ,gBAAkBvvJ,EAClByD,KAAKmnJ,iBACNnnJ,KAAK8mJ,OAAOc,IAGpB/B,iBAAkB,WACd,QAAS7lJ,KAAK+nB,OAAO,WAAa/nB,KAAK+nB,OAAO,oBAElDgkI,iBAAkB,WACd,IAAIC,EAAe,WAAahsJ,KAAK+nB,OAAO,QACxCkkI,EAAY,YAAcpzC,GAAA,KAAQC,OAAOC,WACzC/4G,KAAK6lJ,oBAAsBmG,EAC3BhsJ,KAAKksJ,cAAcD,GAAajsJ,KAAK8gJ,sBAAwB,OAAS,OAEtE9gJ,KAAKC,YAGbksJ,QAAS,SAASjwJ,GACd,OAAO,eAASA,IAAQ,IAAMA,EAAItC,QAEtC2uJ,WAAY,SAASn9H,GACjB,GAAKA,EAAL,CAGA,IAAIw8H,EAAW9L,GAAmB97I,KAAK8mJ,SAAU17H,GAC7CiyH,EAAgBR,GAAqB+K,EAAU5nJ,KAAK+mJ,eAAgB/mJ,KAAKonJ,qBAC7EpnJ,KAAK8mJ,OAAOzJ,KAEhB8K,iBAAkB,SAASvkJ,GACvB,IAAI+kB,EAAU,gBAAiB/kB,GAC3BwoJ,EAAgB,gBAAoBxoJ,IAAMA,EAAEyoJ,QAAUzoJ,EAAE84E,WAAa18E,KAAKmsJ,QAAQxjI,GAClF2jI,EAAa3jI,IAAY68H,GACzBj6I,EAAkBvL,KAAK6lJ,mBAC3B,OAAOt6I,IAAoB6gJ,IAAkBE,GAEjDC,aAAc,WACVvsJ,KAAKC,WACLD,KAAKwsJ,oBAETA,iBAAkB,WACdxsJ,KAAKysJ,cACLzsJ,KAAK0sJ,yBACD1sJ,KAAK6lJ,oBACL7lJ,KAAK2sJ,0BAGbD,uBAAwB,WACpB,OAAansF,IAAIvgE,KAAKgiJ,SAAU,IAAMoD,KAE1CwH,kBAAmB,SAAShpJ,GACxB,IAAIipJ,EAAYjpJ,EAAEg1E,eAAiBh1E,EAAEg1E,cAAci0E,UACnD,OAAI,eAAUA,GACH,oBAAsBA,EAEtB7sJ,KAAK8sJ,gBAGpBH,uBAAwB,WACpB,IAAI/J,EAAS5iJ,KAAKgiJ,SAClB,OAAa38I,GAAGu9I,EAAQ,gBAAa6C,GAAaL,IAA6B,SAASxhJ,GACpF5D,KAAK+sJ,aAAanpJ,GAClB5D,KAAK8sJ,gBAAiB,GACxBtiI,KAAKxqB,OACP,OAAaqF,GAAGu9I,EAAQ,gBAAa,UAAWwC,IAA6B,WACpEplJ,KAAK6mJ,gBACN7mJ,KAAK6mJ,cAAgB5zI,WAAW,WAC5BjT,KAAK6mJ,mBAAgB,EACrB7mJ,KAAK8mJ,OAAOjK,GAAqB78I,KAAK8mJ,SAAU9mJ,KAAK+mJ,eAAgB/mJ,KAAKonJ,uBAC5E58H,KAAKxqB,MAAO0lJ,MAEpBl7H,KAAKxqB,OACP,OAAaqF,GAAGu9I,EAAQ,aAAc,WAClC5iJ,KAAK4mJ,qBACPp8H,KAAKxqB,QAEX4mJ,kBAAmB,WACfn9E,aAAazpE,KAAK6mJ,eAClB7mJ,KAAK6mJ,mBAAgB,GAEzBnD,wBAAyB,WACrB,IAAK1jJ,KAAK6lJ,mBACN,OAAO7lJ,KAAKC,YAGpBgpJ,gBAAiB,SAAS7nJ,GACtB,IAAI7E,EAAOyD,KAAK+mJ,eAAe1jI,MAAMjiB,GACrC,OAAO7E,IAASyD,KAAK4oJ,QAAQrsJ,GAAM,IAEvCqsJ,QAAS,SAAS1sJ,EAAK8wJ,GACnB,IAAIC,EAA0B,eAAa,QAAO3R,uBAC9C4R,EAAe,SAAWD,EAA0B,MACpDE,EAAa,IAAIh1H,OAAO+0H,EAAc,KAC1C,OAAOC,EAAWv6H,KAAK12B,KAAS8wJ,GAAYhtJ,KAAKmsJ,QAAQjwJ,KAE7D2nJ,YAAa,SAAStnJ,GAClB,OAAKyD,KAAK6lJ,mBAGH7lJ,KAAKynJ,aAFDznJ,KAAKC,SAAS1D,IAI7B4uJ,oBAAqB,SAAS5uJ,GAC1B,IAAI6wJ,EAAgBptJ,KAAKkqJ,kBAAkB3tJ,GACvC8wJ,EAAqB9S,GAAsB6S,GAAehsJ,MAC1DksJ,GAAa1S,GAAawS,EAAeC,GAAoB,IAAM,IAAIlyJ,QAAQ,SAAU,IACzFoyJ,EAAeD,EAAUnyJ,QAAQ,UAAW,MAAMvB,OAClDmxJ,EAAeuC,EAAU1zJ,OAC7B,MAAO,CACHgoB,IAAK2rI,EACLv7H,IAAK+4H,IAGbhF,YAAa,SAASniJ,GAClB,GAAK5D,KAAK6lJ,mBAAV,CAGA,IAAI9J,EAAQ/7I,KAAK8mJ,SACjB,GAAI/K,EAAM5hF,QAAU4hF,EAAM55G,IAAK,CAC3B,GAAI,gBAAiBv+B,KAAO4hJ,GAExB,YADAxlJ,KAAKwtJ,mBAAmB5pJ,EAAGm4I,GAAO,GAGlC/7I,KAAK8mJ,OAAOjK,GAAqB,EAAG78I,KAAK+mJ,eAAgB/mJ,KAAKonJ,sBAGtEpnJ,KAAKwtJ,mBAAmB5pJ,EAAGm4I,KAE/ByR,mBAAoB,SAAS5pJ,EAAGm4I,EAAO0R,GACnC,IAAIn6E,GAAY,EAAI,eAActzE,KAAKynJ,aAAc,MACrD,GAAIznJ,KAAKqkJ,gBAAgB/wE,KACrBtzE,KAAKynJ,aAAen0E,EAChBm6E,GAAsB,CACtB,IAAIp0J,EAAS2G,KAAKonJ,oBACd7J,EAAev9I,KAAK+mJ,eACxB/mJ,KAAKwnJ,wBACL5jJ,EAAEg3B,iBACF,IAAI8yH,EAAc1tJ,KAAK+mJ,eACnB37H,EAASkyH,GAAeC,EAAcmQ,EAAar0J,GACvD0iJ,EAAQD,GAAmBC,EAAO3wH,GAClC,IAAIuiI,EAAoB9Q,GAAqBd,EAAO2R,EAAar0J,GACjE2G,KAAK8mJ,OAAO6G,KAIxBC,qBAAsB,SAASrxJ,EAAMw/I,GACjC,IAAI8R,EAAiB7tJ,KAAKkoJ,eAAiB1C,IAAajpJ,EAAK0/B,OAAO8/G,EAAM5hF,MAAQ,KAAOorF,GACzF,OAAOsI,EAAiB7tJ,KAAK8oJ,qBAAqBvsJ,EAAM,CACpD49D,MAAO4hF,EAAM5hF,MAAQ,EACrBh4B,IAAK45G,EAAM5hF,OACZ,IAAM59D,GAEbirJ,sBAAuB,WACnB,IAAInuJ,EAAS2G,KAAKonJ,oBACd9lJ,EAAStB,KAAK6jJ,cACd5H,EAAYj8I,KAAKJ,QAAQ0B,EAAQjI,IAAW,GAChD2G,KAAK6rJ,cAAc5P,IAEvB8Q,aAAc,SAASnpJ,GACnB,IAAIwkJ,EAAiBpoJ,KAAK+mJ,eACtBhL,EAAQ/7I,KAAK8mJ,SACbgH,EAAmB9tJ,KAAK4tJ,qBAAqBxF,EAAgBrM,GAC7DgS,EAAkBD,IAAqB1F,EAE3C,GADAA,EAAiB0F,GACZ9tJ,KAAK4sJ,kBAAkBhpJ,IAAM5D,KAAKmkJ,mBAAmB2J,GAKtD,OAJA9tJ,KAAK8rJ,gBAAkB1D,OACnB2F,GACA/tJ,KAAKwnJ,yBAIb,IAAIwG,EAAiB,QAAOvqJ,cAAczD,KAAK8rJ,iBAAiB,KAAU1D,EAC1E,GAAI4F,EAAgB,CAChB,IAAInsJ,EAAQ7B,KAAKsoJ,UAAUF,EAAgBrM,EAAO,IAC9C,eAAUl6I,KACV7B,KAAKynJ,aAAe5lJ,GAG5B7B,KAAKwnJ,yBAETjF,mBAAoB,WACZviJ,KAAK6lJ,mBACL7lJ,KAAKkiJ,+BAELliJ,KAAKC,SAASnB,MAAMkB,KAAME,YAGlC4hJ,aAAc,WAKV,OAJI9hJ,KAAK6lJ,qBACL7lJ,KAAKynJ,aAAeznJ,KAAK+nB,OAAO,SAChC/nB,KAAKwnJ,yBAEFxnJ,KAAKC,YAEhBqnJ,mBAAoB,WAChB,IAAIvF,EAAa/hJ,KAAK+mJ,eACtB/mJ,KAAKynJ,aAAeznJ,KAAKsoJ,UAAUvG,EAAY/hJ,KAAK8mJ,WAExDS,mBAAoB,WAChB,GAAKvnJ,KAAK6lJ,mBAAV,CAGA,IAAIoI,EAAcjuJ,KAAKoqJ,aAAapqJ,KAAK+mJ,gBACrC9lE,EAAcgtE,EAAcjuJ,KAAK6jJ,cAAgB,KAChD,eAAU5iE,GAIfjhF,KAAKynJ,aAAe,gBAAaxmE,EAAajhF,KAAK+nB,OAAO,OAAQ/nB,KAAK+nB,OAAO,QAH1E/nB,KAAKynJ,aAAexmE,IAK5B0iE,yBAA0B,SAAS//I,GAC/B,IAAK5D,KAAK6lJ,mBACN,OAAO7lJ,KAAKC,SAAS2D,GAEzB,IAAIm4I,EAAQ/7I,KAAK8mJ,SACjB9mJ,KAAK+iJ,sBAAsBn/I,GAC3B5D,KAAKgoJ,SAAW,KAChBhoJ,KAAKkoJ,aAAe,KACpBloJ,KAAKsnJ,qBACLtnJ,KAAKunJ,qBACLvnJ,KAAK+nB,OAAO,QAAS/nB,KAAKynJ,cACtB1L,GACA/7I,KAAK8mJ,OAAO/K,IAGpB5+B,eAAgB,SAASt+D,GACrB,OAAQA,EAAKj9C,MACT,IAAK,SACL,IAAK,kBACD5B,KAAK+rJ,mBACL/rJ,KAAK8pJ,gBACL9pJ,KAAKwsJ,mBACLxsJ,KAAK8hJ,eACL9hJ,KAAKkuJ,2BACLluJ,KAAKmuJ,iBACL,MACJ,IAAK,MACL,IAAK,MACDnuJ,KAAKunJ,qBACLvnJ,KAAKC,SAAS4+C,GACd,MACJ,QACI7+C,KAAKC,SAAS4+C,KAG1B4tG,YAAa,kBACFzsJ,KAAK8rJ,uBACL9rJ,KAAKgoJ,gBACLhoJ,KAAKkoJ,oBACLloJ,KAAKynJ,oBACLznJ,KAAKmnJ,gBACZ19E,aAAazpE,KAAK6mJ,sBACX7mJ,KAAK6mJ,eAEhBzwC,OAAQ,WACJp2G,KAAKysJ,cACLzsJ,KAAKC,cAGE,MCrpBf,eAAkB,cAAe,IAClB,UCFA,M,uCCWXmuJ,GAAc90J,GAAQA,EAAKW,WAAa,EACxCo0J,GAAc,CAAC/0J,EAAMuI,KACrB,IAAIpF,EAAMnD,EAAKY,UACXo0J,EAAcC,GAAU,IAAKj1J,GAC7Bg6E,EAAW,gBAAa/xE,SAASM,GAAQysJ,EAAY1sI,IAAK0sI,EAAYt8H,KAC1E14B,EAAK6nF,SAAS7N,EAAW,EAAG,GAC5B,IACI1xD,IAAKA,EACLoQ,IAAKA,GACLu8H,GAAU,KAAMj1J,GAChBk1J,EAAS,gBAAa/xJ,EAAKmlB,EAAKoQ,GACpC14B,EAAKk8B,QAAQg5H,IAEbC,GAAkB,CAClB1sJ,EAAGzI,GAAQA,EAAKa,WAAa,GAAK,EAAI,EACtC6nB,EAAG,SACHV,EAAG,cACHI,EAAG0sI,GACHvsI,EAAGusI,GACHlsI,EAAG,UACHC,EAAG,WACHC,EAAG,WACHC,EAAG,aACHC,EAAG,aACHpX,EAAG,mBAEHksB,GAAkB,OAAA38B,EAAA,WAAO,GAAI,kBAAqB,CAClDsH,EAAG,CAACzI,EAAMuI,KACN,IAAItC,EAAQjG,EAAKa,WACb2oH,EAAUvjH,GAAS,GACnBujH,MAAcvhH,SAASM,IAG3BvI,EAAKi+B,UAAUh4B,EAAQ,IAAM,KAEjC2iB,EAAG,CAAC5oB,EAAMuI,KACN,IAAI6sJ,EAAiBH,GAAU,KAAMj1J,GAAM04B,IACvCnwB,EAAQ6sJ,GACRp1J,EAAK6nF,SAAS7nF,EAAKW,WAAa,GAEpCX,EAAKk8B,QAAQ3zB,IAEjBugB,EAAG,CAAC9oB,EAAMuI,KACN,IAAI8sJ,EAAOr1J,EAAKa,YAAc,GAC9Bb,EAAKi+B,UAAU11B,EAAQ,IAAM8sJ,EAAO,GAAK,KAE7CjtI,EAAG2sI,GACHxsI,EAAGwsI,GACHrsI,EAAG,CAAC1oB,EAAMuI,KACFA,EAAQ,GAGZvI,EAAKk8B,QAAQl8B,EAAKY,UAAYZ,EAAKs1J,SAAWrtJ,SAASM,KAE3Dyf,EAAG,CAAChoB,EAAMuI,KACN,IAAIgtJ,EAAcv1J,EAAKG,cACnBq1J,EAAcn1J,OAAOkI,GAAOjI,OAC5Bm1J,EAAiBp1J,OAAO40J,GAAU,IAAKj1J,GAAM04B,KAAKp4B,OAClD05E,EAAW/xE,SAAS5H,OAAOk1J,GAAatsI,OAAO,EAAGwsI,EAAiBD,GAAejtJ,GACtFvI,EAAKiB,YAAY+4E,MAGrB07E,GAAmBr2H,GAAe81H,GAAgB91H,IAAgB,KAAOA,GAClEs2H,GAAkB,CAAC1yJ,EAAMk9B,KA6BhC,IA5BA,IAAIx6B,EAASw6B,EAAWvB,OAAOyB,KAAKp9B,GAChC49D,EAAQ,EACRh4B,EAAM,EACN+sH,EAAW,GACXvgC,EAAQ,SAASlzH,GACjB0+D,EAAQh4B,EACRA,EAAMg4B,EAAQl7D,EAAOxD,GAAG7B,OACxB,IAAIiJ,EAAU42B,EAAW1I,SAASt1B,EAAI,GAAGN,QAAQ,SAAU,IACvD+3E,EAAS87E,GAAiBnsJ,EAAQ,IACtCqsJ,EAASjsJ,KAAK,CACV7B,MAAO3F,EAAI,EACX0zJ,OAAQtsJ,IAAY5D,EAAOxD,GAC3BsgJ,MAAO,CACH5hF,MAAOA,EACPh4B,IAAKA,GAETt/B,QAASA,EACTtG,KAAM0C,EAAOxD,GACb2zJ,OAAQ,WACJ,IAAK,IAAIC,EAAOnvJ,UAAUtG,OAAQilD,EAAO,IAAIhgD,MAAMwwJ,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC7EzwG,EAAKywG,GAAQpvJ,UAAUovJ,GAE3B,OAAOf,GAAU1rJ,EAAQ,MAAOg8C,IAEpC0wG,OAAQn4H,GAAgBv0B,EAAQ,KAAO,OACvCqwE,OAAQA,KAGPz3E,EAAI,EAAGA,EAAIwD,EAAOrF,OAAQ6B,IAC/BkzH,EAAMlzH,GAEV,OAAOyzJ,GAEPX,GAAY,CAAC1rJ,EAASvJ,EAAMk2J,KAC5B,IAAIJ,EAAS,CACT9tI,EAAG,CACCM,IAAK,EACLoQ,IAAK,MAETtQ,EAAG,CACCE,IAAK,EACLoQ,IAAK,IAETnQ,EAAG,CACCD,IAAK,EACLoQ,IAAK,IAET9P,EAAG,CACCN,IAAK,EACLoQ,IAAK,IAETy9H,GAAI,CACA7tI,IAAK,EACLoQ,IAAK,IAAIj4B,KAAKT,EAAKG,cAAeH,EAAKW,WAAa,EAAG,GAAGC,WAE9D8nB,EAAG,CACCJ,IAAK,EACLoQ,IAAK,GAET7P,EAAG,CACCP,IAAK,EACLoQ,IAAK,IAET5P,EAAG,CACCR,IAAK,EACLoQ,IAAK,IAET3P,EAAG,CACCT,IAAK,EACLoQ,IAAK,IAET1P,EAAG,CACCV,IAAK,EACLoQ,IAAK,IAET9mB,EAAG,CACC0W,IAAK,EACLoQ,IAAK,KAETjwB,EAAG,CACC6f,IAAK,EACLoQ,IAAK,IAGb,OAAOo9H,EAAOI,GAAiB3sJ,IAAYusJ,EAAOM,SAE3CC,GAA6B,CAACnvJ,EAAWg0D,KAChD,IAAK,IAAI/4D,EAAI,EAAGA,EAAI+E,EAAU5G,OAAQ6B,IAAK,CACvC,IAAIm0J,EAAepvJ,EAAU/E,GAAGsgJ,MAAM55G,KAAOqyB,EAC7C,IAAKh0D,EAAU/E,GAAG0zJ,QAAUS,EACxB,OAAOn0J,EAGf,OAAO,M,0BChKPo0J,GAAkB,CAAC,OAAQ,MAAO,QAAS,OAC3CC,GAAkB,CAAC,QAAS,UAAW,UAAW,gBAClDC,GAAa,IACbC,GAAU,GAAKD,GAAa,GAC5BE,GAAW,IAAMD,GACjBE,GAAkB,SAAS72J,GAC3B,IAAI0G,SAAoB1G,EACxB,MAAI,WAAa0G,EACN,SAEP,WAAaA,QAAc,IAAW1G,EAAOoF,KACtCpF,EAAOoF,KAEX,MAEP0xJ,GAAY,CACZC,kBAAmB,CAAC,OAAQ,OAAQ,YACpCL,WAAYA,GACZC,QAASA,GACTC,SAAUA,GACVI,0BAA2B,IAAIt2J,KAAK,KAAM,EAAG,GAC7Cu2J,0BAA2B,WACvB,IAAIpvE,EAAU,IAAInnF,KAClB,OAAO,IAAIA,KAAKmnF,EAAQznF,cAAgB,GAAIynF,EAAQjnF,WAAYinF,EAAQhnF,UAAW,GAAI,GAAI,IAFpE,GAI3Bq2J,aAAc,CACVj3J,KAAM,CACFk3J,mBAAoB,WAChB,MAAO,cAEXtoJ,WAAY2nJ,IAEhBxiJ,KAAM,CACFmjJ,mBAAoB,WAChB,MAAO,SAEXtoJ,WAAY4nJ,IAEhBjtE,SAAU,CACN2tE,mBAAoB,WAChB,IAAIC,EAcJ,OAbE,WACE,IAAI7N,EAAS,eAAE,WAAW5hF,KAAK,OAAQ,YACvC4hF,EAAOrB,IAAI,qBACPqB,EAAOrB,QACPkP,EAAkB,qBAJxB,GAOGA,IACDA,EAAkB,wBAEtBN,GAAUI,aAAa1tE,SAAS2tE,mBAAqB,WACjD,OAAOC,GAEJA,GAEXvoJ,WAAY,IAAI2nJ,MAAoBC,KAExC,iBAAkB,CACdU,mBAAoB,WAChB,MAAO,uBAEXtoJ,WAAY,IAAI2nJ,GAAiB,QAAS,UAAW,aAG7Da,YAAa,CACTp3J,KAAM,YACN+T,KAAM,YACNw1E,SAAU,sBAEd8tE,mBAAoB,CAChBr3J,KAAM,OACN+T,KAAM,OACNw1E,SAAU,kBAEd+tE,qBAAsB,SAASt3J,EAAMmF,GACjC,IAAIoE,EAAUstJ,GAAUI,aAAa9xJ,GAAM+xJ,qBAC3C,OAAO,GAAkB7uE,cAAcroF,EAAMuJ,IAEjDguJ,uBAAwB,SAASt0J,GAC7B,IAAIjD,EAAO,GAAkBonF,WAAWnkF,GACxC,OAAO,eAAOjD,GAAQA,OAAO,GAEjCw3J,eAAgB,SAASt3J,EAAMqD,GAC3B,OAAO,IAAI9C,KAAKP,EAAMqD,EAAQ,EAAG,GAAG3C,WAExC62J,WAAY,SAASl/E,EAAUyB,EAAUj6E,GACrC,IAAKi6E,EACD,OAAOA,GAAY,KAEvB,IAAKzB,GAAYruE,MAAMquE,EAAS9tE,WAAY,CACxC,IAAIg1B,EAAM,IAAIh/B,KAAK,MACnB83E,EAAW,IAAI93E,KAAKg/B,EAAIt/B,cAAes/B,EAAI9+B,WAAY8+B,EAAI7+B,WAE/D,IAAI+E,EAAS,IAAIlF,KAAK83E,EAASgQ,WAC3BmvE,EAAab,GAAUI,aAAal3J,GAKxC,OAJA,eAAK23J,EAAW9oJ,YAAY,WACxB,IAAI+oJ,EAAgBd,GAAUe,qBAAqBlxJ,MACnDf,EAAOgyJ,EAAc1B,QAAQj8E,EAAS29E,EAAc/9E,cAEjDj0E,GAEXkyJ,uBAAwB,SAASC,GAC7B,IAEI31J,EAFA41J,EAAe,EACfC,EAAuB,EAE3B,IAAK71J,EAAI,EAAGA,EAAI21J,EAAax3J,SAAU6B,EAC/B21J,EAAa31J,GAAG7B,OAAS03J,IACzBD,EAAe51J,EACf61J,EAAuBF,EAAa31J,GAAG7B,QAG/C,OAAOy3J,GAEX7vJ,oBAAqB,SAASnI,GAC1B,OAAO,QAAiBmI,oBAAoBnI,IAEhDoI,kBAAmB,SAASpI,GACxB,OAAO,QAAiBoI,kBAAkBpI,IAE9Ck4J,eAAgB,SAASl4J,EAAQuL,EAAYqyB,GACzC,IAAIu6H,EAAetB,GAAgB72J,GAC/BwD,EAAQ,EACP20J,IAAgBrB,GAAU3uJ,oBAAoBgwJ,KAC/C30J,EAAQszJ,GAAUgB,uBAAuBvsJ,IAE7C,IAAI6sJ,EAAc,IAAI13J,KAAK,KAAM8C,EAAO,GAAI,GAAI,GAAI,GAAI,KACxD,IAAK20J,GAAgBrB,GAAU1uJ,kBAAkB+vJ,GAAe,CAC5D,IAAIl4J,EAAOm4J,EAAYv3J,UAAYu3J,EAAY7C,SAAWuB,GAAUgB,uBAAuBl6H,GAC3Fw6H,EAAYj8H,QAAQl8B,GAExB,OAAOm4J,GAEXC,cAAe,SAASp4J,GACpBA,EAAKq4J,WAAW,GAChBr4J,EAAKs4J,gBAAgB,KAG7BzB,GAAUe,qBAAuB,CAC7B13J,KAAM,CACF05E,OAAQ,cACRq8E,OAAQ,cACR1vJ,UAAW,SAASgC,EAAOvI,GACvB,IAAIu4J,EAAa,IAAI93J,KAAKT,EAAKyK,WAE/B,OADA8tJ,EAAWt3J,YAAYsH,GAChB,QAAiBxI,OAAOw4J,EAAY,SAE/Cx9H,gBAAY,EACZC,cAAU,GAEd73B,IAAK,CACDy2E,OAAQ,UACRq8E,OAAQ,UACR1vJ,UAAW,SAASgC,EAAOvI,GACvB,IAAIu4J,EAAa,IAAI93J,KAAKT,EAAKyK,WAE/B,OADA8tJ,EAAWr8H,QAAQ3zB,GACZ,QAAiBxI,OAAOw4J,EAAY,MAE/Cx9H,WAAY,EACZC,cAAU,GAEdz3B,MAAO,CACHq2E,OAAQ,WACRq8E,OAAQ,WACR1vJ,UAAW,SAASgC,GAChB,OAAO,QAAiBrD,gBAAgBqD,IAE5CwyB,WAAY,EACZC,SAAU,IAEd/0B,MAAO,CACH2zE,OAAQ,WACRq8E,OAAQ,WACR1vJ,UAAW,SAASgC,GAChB,OAAO,QAAiBxI,OAAO,IAAIU,KAAK,EAAG,EAAG,EAAG8H,GAAQ,SAE7DwyB,WAAY,EACZC,SAAU,IAEdvzB,QAAS,CACLmyE,OAAQ,aACRq8E,OAAQ,aACR1vJ,UAAW,SAASgC,GAChB,OAAO,QAAiBxI,OAAO,IAAIU,KAAK,EAAG,EAAG,EAAG,EAAG8H,GAAQ,WAEhEwyB,WAAY,EACZC,SAAU,IAEdtzB,QAAS,CACLkyE,OAAQ,aACRq8E,OAAQ,aACR1vJ,UAAW,SAASgC,GAChB,OAAO,QAAiBxI,OAAO,IAAIU,KAAK,EAAG,EAAG,EAAG,EAAG,EAAG8H,GAAQ,WAEnEwyB,WAAY,EACZC,SAAU,IAEd7xB,aAAc,CACVywE,OAAQ,kBACRq8E,OAAQ,kBACR1vJ,UAAW,SAASgC,GAChB,OAAO,QAAiBxI,OAAO,IAAIU,KAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG8H,GAAQ,gBAEtEwyB,WAAY,EACZC,SAAU,MAGH,U,iECrMXw9H,GAAe,cACfC,GAAkB,eAClBC,GAAsB,CACtBC,QAASC,GAAA,KACTC,UAAWD,GAAA,KACX3/G,MAAO2/G,GAAA,KACPE,SAAU,iBAEVC,GAAY,QAAahzF,QAAQ,CACjCu2C,mBAAoB,WAChB,OAAO,OAAAn7G,EAAA,WAAOuF,KAAKC,WAAY,CAC3BqyJ,SAAS,EACT5hH,WAAW,EACXqpB,UAAW,aACXw4F,aAAc,KACdN,QAAS,KACTE,UAAW,KACX5/G,MAAO,KACP6/G,SAAU,QAGlBrwC,QAAS,WACL/hH,KAAKC,WACLD,KAAKgmB,WAAWsB,SAASyqI,IACzB/xJ,KAAKwyJ,wBAETA,qBAAsB,WAElB,GADAxyJ,KAAKyyJ,wBACDzyJ,KAAK+nB,OAAO,YAAhB,CAGA,IAAI85C,EAAO7hE,KAAK6hE,KAChB7hE,KAAK0yJ,mBACL,eAAKV,GAAqB,SAASpxF,EAAYgiD,GAC3C,IAAIxhD,EAASphE,KAAKuhE,sBAAsBX,EAAY,CAChDswB,QAASlxF,OAEb4iH,EAAY,gBAAaA,EAAW/gD,GACpC,OAAax8D,GAAGrF,KAAKgmB,WAAY48F,EAAW5iH,KAAK2yJ,YAAY,SAAU/uJ,GACnE,OAAOw9D,EAAO,CACVE,MAAO19D,QAGjB4mB,KAAKxqB,SAEX0yJ,iBAAkB,WACd1yJ,KAAK2yJ,WAAa,CACdL,QAAStyJ,KAAK+nB,OAAO,WACrBwqI,aAAcvyJ,KAAK+nB,OAAO,gBAC1BgyC,UAAW/5D,KAAK+nB,OAAO,aACvB2oB,UAAW1wC,KAAK+nB,OAAO,eAG/B0qI,qBAAsB,WAClB,OAAalyF,IAAIvgE,KAAKgmB,WAAY,IAAM8rI,KAE5C30C,eAAgB,SAASt+D,GACrB,OAAQA,EAAKj9C,MACT,IAAK,WACL,IAAK,UACL,IAAK,YACL,IAAK,QACL,IAAK,WACL,IAAK,UACL,IAAK,YACL,IAAK,eACL,IAAK,YACD5B,KAAKyyJ,uBACLzyJ,KAAKwyJ,uBACL,MACJ,IAAK,aACD,MACJ,QACIxyJ,KAAKC,SAAS4+C,KAG1B8hG,cAAe,WACX,OAAO,KAGf,gBAAK0R,GAAWP,IACD,UC9FXc,GAA2B,wBAC3BC,GAA0C,uCAC1CC,GAAsC,mCACtCC,GAAyC,sCACzCC,GAAqC,kCACrCC,GAAyC,sCACzCC,GAA0C,6BAC1CC,GAAY,OAAO9zF,QAAQ,CAC3Bu2C,mBAAoB,WAChB,OAAO,OAAAn7G,EAAA,WAAOuF,KAAKC,WAAY,CAC3BirD,QAAS,KACTkoG,eAAgB,KAChB72J,KAAM,MAGdq6G,MAAO,WACH52G,KAAKC,WACLD,KAAK82G,gBAETA,aAAc,WACV92G,KAAKqzJ,aAAerzJ,KAAKuhE,sBAAsB,WAC/CvhE,KAAKszJ,oBAAsBtzJ,KAAKuhE,sBAAsB,mBAE1D+2C,YAAa,WACTt4G,KAAKC,WACLD,KAAKgmB,WAAWsB,SAASsrI,IACzB5yJ,KAAKuzJ,iBACLvzJ,KAAKwzJ,kBAETD,eAAgB,WACZ,IAAI5vJ,EAAO3D,KACP+5D,EAAY/5D,KAAK+nB,OAAO,eAAiB,EAAI,EACjD/nB,KAAKyzJ,YAAczzJ,KAAKooB,iBAAiB,eAAE,OAAQ,cAAQ,CACvDy8B,mBAAmB,EACnBoG,KAAM,cACNC,QAAS,SAAStnD,GACdD,EAAK0vJ,aAAa,CACdt5F,WAAYA,EACZuH,MAAO19D,KAGfumI,mBAAoB,KAExB,IAAIupB,EAAc1zJ,KAAKyzJ,YAAYztI,WAAWsB,SAASyrI,IAAwCzrI,SAASurI,IACxG7yJ,KAAK2zJ,YAAc3zJ,KAAKooB,iBAAiB,eAAE,OAAQ,cAAQ,CACvDy8B,mBAAmB,EACnBoG,KAAM,eACNC,QAAS,SAAStnD,GACdD,EAAK0vJ,aAAa,CACdt5F,UAAWA,EACXuH,MAAO19D,KAGfumI,mBAAoB,KAExB,IAAIypB,EAAc5zJ,KAAK2zJ,YAAY3tI,WAAWsB,SAAS0rI,IAAoC1rI,SAASwrI,IACpG9yJ,KAAK6zJ,SAAW7zJ,KAAKooB,iBAAiB,eAAE,OAAOd,SAAS4rI,IAA0C,cAAQ,CACtGruG,mBAAmB,EACnBqG,QAAS,SAAStnD,GACdD,EAAK2vJ,oBAAoB,CACrBhyF,MAAO19D,KAGfumI,mBAAoB,KAExB,IAAI2pB,EAAW9zJ,KAAK6zJ,SAAS7tI,WAC7BhmB,KAAKgmB,WAAW4jB,OAAO8pH,EAAaI,EAAUF,IAElDJ,eAAgB,WACZxzJ,KAAK6zJ,SAAS9rI,OAAO,OAAQ/nB,KAAK+nB,OAAO,UAE7CgsI,aAAc,SAASC,EAAcnyJ,GACjC,IAAIoyJ,EAAa,IAAMD,EAAe,SAClCjmG,EAAS/tD,KAAKi0J,GACdlmG,IACAA,EAAOhmC,OAAO,WAAYlmB,GAC1BksD,EAAO/nC,WAAW69C,YAAYovF,GAAwCpxJ,KAG9Es7G,eAAgB,SAASt+D,GACrB,OAAQA,EAAKj9C,MACT,IAAK,OACD5B,KAAKwzJ,iBACL,MACJ,QACIxzJ,KAAKC,SAAS4+C,OAIf,OCrEXq1G,SAAU,IACV,OACAC,GAA4B,yBAC5BC,GAAsB,mBACtBC,GAA4B,yBAC5BC,GAAuB,oBACvBC,GAA+B,4BAC/BC,GAAgC,6BAChCC,GAA8B,gBAAa,OAAgB,cAC3DC,GAA0B,iBAC1BC,GAAW,OAAOt1F,QAAQ,CAC1Bu1F,aAAc,WACV,MAAO,QAEXh/C,mBAAoB,WAChB,OAAO,OAAAn7G,EAAA,WAAOuF,KAAKC,WAAY,CAC3B3G,KAAM,IAAIS,KACV8qD,mBAAmB,EACnBz9C,aAAc,KACdytJ,cAAe,KACfpvG,YAAa,KACbq4B,SAAU,EACVjnB,SAAU,EACVi+F,qBAAqB,EACrBC,WAAY,IAAM,IAAIh7J,QAG9Bu+G,YAAa,WACTt4G,KAAKC,WACLD,KAAKg1J,eAETA,YAAa,WACTh1J,KAAKgmB,WAAW4jB,OAAO5pC,KAAKmsE,gBAC5BnsE,KAAKi1J,8BACLj1J,KAAKk1J,cACLl1J,KAAKm1J,uBACLn1J,KAAK8hJ,eACL9hJ,KAAKo1J,iBAETjpF,aAAc,WAMV,OALAnsE,KAAKq1J,QAAU,eAAE,WACjBr1J,KAAKosB,QAAQ,CACTqsC,MAAO,OAAoBp/D,OAAO,6BAClC48G,KAAM,QACPj2G,KAAKq1J,SACDr1J,KAAKq1J,SAEhBH,YAAa,WACTl1J,KAAKs1J,MAAQ,eAAE,WAAW/tI,SAASvnB,KAAKq1J,SAKxC,IAJA,IAAIE,EAAU,CACVC,SAAUx1J,KAAKy1J,oBACfC,aAAc,MAET7rF,EAAW,EAAGiU,EAAW99E,KAAK+nB,OAAO,YAAa8hD,EAAWiU,EAAUjU,IAAY,CACxF0rF,EAAQ1kJ,IAAM7Q,KAAK8rE,aACnB,IAAK,IAAI6pF,EAAW,EAAG9+F,EAAW72D,KAAK+nB,OAAO,YAAa4tI,EAAW9+F,EAAU8+F,IAC5E31J,KAAK4xE,YAAY2jF,EAASI,KAItC7pF,WAAY,WACR,IAAIj7D,EAAM,aAAWk+B,cAAc,MAGnC,OAFA/uC,KAAKosB,QAAQ,OAAQ,MAAO,eAAEvb,IAC9B7Q,KAAKs1J,MAAM53J,IAAI,GAAG0xC,YAAYv+B,GACvBA,GAEX+kJ,YAAa,SAAS/kJ,EAAKw5D,GAClBrqE,KAAK61J,mBACN71J,KAAK81J,yBAET,eAAEjlJ,GAAK7Q,KAAK61J,mBAAmBxrF,IAEnCyrF,uBAAwB,SAASzqI,GAC7BrrB,KAAK61J,mBAAqB,OAASxqI,QAAc,IAAWA,EAAaA,EAAarrB,KAAK+nB,OAAO,eAAiB,UAAY,UAEnI0jD,YAAa,SAAS+pF,GAClB,IAAInrF,EAAO,aAAWt7B,cAAc,MAChCm4B,EAAQ,eAAEmD,GAQd,OAPAA,EAAK1I,UAAY3hE,KAAK+1J,oBAAoBP,GAC1CnrF,EAAKtJ,aAAa,aAAc,GAAkB4gB,cAAc6zE,EAAU,QAAcQ,uBACxF,eAAY3rF,EAAMqqF,GAAyBc,GAC3Cx1J,KAAKosB,QAAQ,CACT6pF,KAAM,WACNx9C,MAAOz4D,KAAKi2J,iBAAiBT,IAC9BtuF,GACI,CACHmD,KAAMA,EACNnD,MAAOA,IAGf0K,YAAa,SAASgO,EAAQjN,GAC1B,IACI6iF,SAAUA,EACVE,aAAcA,EACd7kJ,IAAKA,GACL+uE,EACA81E,GACA,QAAcQ,eAAeR,EAAcF,GAE/C51E,EAAO81E,aAAeF,EACtB,IACInrF,KAAMA,EACNnD,MAAOA,GACPlnE,KAAKyrE,YAAY+pF,GACjBpuJ,EAAepH,KAAK+nB,OAAO,gBAC/B/nB,KAAK41J,YAAY/kJ,EAAKw5D,GAClBjjE,EACAA,EAAajD,OAAOnE,KAAKm2J,yBAAyBX,EAAU7iF,EAAWzL,IAEvEmD,EAAKkiC,UAAYvsG,KAAKo2J,aAAaZ,GAEvC51E,EAAO41E,SAAWx1J,KAAKq2J,iBAAiBb,IAE5CO,oBAAqB,SAASP,GAC1B,IAAI7zF,EAAYyyF,GAUhB,OATIp0J,KAAKs2J,aAAad,KAClB7zF,GAAa,IAAI9vD,OAAOyiJ,MAExBt0J,KAAKu2J,kBAAkBf,IAAax1J,KAAKw2J,eAAehB,MACxD7zF,GAAa,IAAI9vD,OAAOwiJ,KAExBr0J,KAAKy2J,aAAajB,KAClB7zF,GAAa,IAAI9vD,OAAOsiJ,KAErBxyF,GAEXw0F,yBAA0B,SAASX,EAAU7iF,EAAWzL,GACpD,MAAO,CACHpiE,MAAO,CACHvI,KAAMyD,KAAKo2J,aAAaZ,GACxBl8J,KAAMk8J,EACN9sC,KAAM1oH,KAAK40J,gBAEfzsI,UAAW,eAAiB++C,GAC5B9lE,MAAOuxE,IAGfyiF,cAAe,WACXp1J,KAAK02J,yBACL,OAAan2F,IAAIvgE,KAAKq1J,QAASZ,IAC/B,OAAapvJ,GAAGrF,KAAKq1J,QAASZ,GAA6B,KAAM7wJ,IACxD,eAAEA,EAAE8lE,eAAepD,SAAS+tF,KAC7Br0J,KAAK22J,iBAAiB,CAClBr1F,MAAO19D,EACP/B,MAAO,eAAE+B,EAAE8lE,eAAevjE,KAAKuuJ,SAK/CgC,uBAAwB,WACpB12J,KAAK22J,iBAAmB32J,KAAKuhE,sBAAsB,gBAEvD0zF,4BAA6B,WACzB,IAAIJ,EAAgB70J,KAAK+nB,OAAO,iBAChC/nB,KAAK42J,sBAAwB/3J,MAAM0nB,QAAQsuI,GAAiB70J,KAAK62J,gCAAgChC,GAAiBA,GAAiB,QAEvIgC,gCAAiC,SAAShC,GACtC,OAAO,QAEXyB,aAAc,GACdC,kBAAmB,GACnBC,eAAgB,SAAShB,GACrB,IAAIh1J,EAAY,CACZlH,KAAMk8J,EACN9sC,KAAM1oH,KAAK40J,gBAEf,OAAO50J,KAAK42J,sBAAsBp2J,IAEtCi2J,aAAc,GACdL,aAAc,GACdX,kBAAmB,GACnBY,iBAAkB,GAClBlB,qBAAsB,SAAS2B,GAC3B,GAAK92J,KAAK+nB,OAAO,qBAAjB,CAGA+uI,EAAgBA,GAAiB92J,KAAK+nB,OAAO,iBAC7C,IAAIgvI,EAAoB/2J,KAAKg3J,oBACzBC,EAAoBj3J,KAAKk3J,eAAeJ,GAC5CC,EAAkBvvI,YAAYgtI,IAC9ByC,EAAkB3vI,SAASktI,MAE/BwC,kBAAmB,WACf,OAAOh3J,KAAKq1J,QAAQpuI,KAAK,IAAIpV,OAAO2iJ,MAExC2C,aAAc,SAAS3B,GACnB,GAAIA,EAAU,CACV,IAAI3zJ,EAAQ7B,KAAK+nB,OAAO,SACpBurD,EAAWzxE,EAAQ,IAAI9H,KAAK8H,GAAS,IAAI9H,KAC7Cu5E,EAAS99C,QAAQggI,EAASt7J,WAC1Bo5E,EAAS6N,SAASq0E,EAASv7J,YAC3Bq5E,EAAS/4E,YAAYi7J,EAAS/7J,eAC9B65E,EAAS99C,QAAQggI,EAASt7J,WAC1B8F,KAAK+nB,OAAO,QAASurD,QAErBtzE,KAAK+nB,OAAO,QAAS,OAG7B+5H,aAAc,WACV,GAAK9hJ,KAAK+nB,OAAO,uBAAjB,CAGA,IAAIlmB,EAAQ7B,KAAK+nB,OAAO,SACpBqvI,EAAep3J,KAAKk3J,eAAer1J,GACnC7B,KAAKq3J,eACLr3J,KAAKq3J,cAAc7vI,YAAY+sI,IAEnC6C,EAAa9vI,SAASitI,IACtBv0J,KAAKq3J,cAAgBD,IAEzBnB,iBAAkB,SAAS38J,GACvB,OAAO0G,KAAKo2J,aAAa98J,IAE7Bg+J,uBAAwB,WACpB,IAAIh+J,EAAO0G,KAAK+nB,OAAO,QACnBnG,EAAM5hB,KAAK+nB,OAAO,OAEtB,OADAzuB,EAAO,QAAci+J,iBAAiBv3J,KAAK40J,eAAgBt7J,GACpD,IAAIS,KAAK6nB,GAAOtoB,EAAOsoB,EAAMA,EAAMtoB,IAE9C49J,eAAgB,GAChBM,WAAY,GACZr6C,eAAgB,SAASt+D,GACrB,IACIj9C,KAAMA,EACNC,MAAOA,GACPg9C,EACJ,OAAQj9C,GACJ,IAAK,QACD5B,KAAK8hJ,eACL,MACJ,IAAK,gBACD9hJ,KAAKm1J,qBAAqBtzJ,GAC1B,MACJ,IAAK,cACD7B,KAAK02J,yBACL,MACJ,IAAK,gBACL,IAAK,eACD12J,KAAK4iE,cACL,MACJ,IAAK,aACD5iE,KAAK81J,uBAAuBj0J,GAC5B7B,KAAKC,SAAS4+C,GACd,MACJ,IAAK,aACD7+C,KAAKk1J,cACL,MACJ,QACIl1J,KAAKC,SAAS4+C,OAIf,MCxQX44G,GAA6B,0BAC7B,GAA4B,yBAC5BC,GAAQ,CACR76J,MAAO,GAASwiE,QAAQ,CACpBu1F,aAAc,WACV,MAAO,SAEXh/C,mBAAoB,WAChB,OAAO,OAAAn7G,EAAA,WAAOuF,KAAKC,WAAY,CAC3B03J,oBAAgB,EAChB75E,SAAU,EACVjnB,SAAU,KAGlBm+F,YAAa,WACTh1J,KAAKC,WACLD,KAAK43J,iBAET1C,YAAa,WACTl1J,KAAKC,WACLD,KAAKq1J,QAAQpuI,KAAK,IAAIpV,OAAO,KAA4ByV,SAASmwI,KAEtEI,mBAAoB,OACpB5B,iBAAkB,SAAS38J,GACvB,OAAO,QAAiBD,OAAOC,EAAM,aAEzCs+J,cAAe,WACX,IAAIE,EAAa,eAAE,QACfC,EAAU,eAAE,WAAWnuH,OAAOkuH,GAClC93J,KAAKq1J,QAAQ3qD,QAAQqtD,GACrB,IAAK,IAAIpC,EAAW,EAAG9+F,EAAW72D,KAAK+nB,OAAO,YAAa4tI,EAAW9+F,EAAU8+F,IAC5E31J,KAAKg4J,kBAAkBrC,EAAUmC,IAGzCE,kBAAmB,SAASrlF,EAAWmlF,GACnC,IACIl5D,KAAMq5D,EACNt5J,YAAau5J,GACbl4J,KAAKm4J,eAAen4J,KAAKo4J,qBAAuBzlF,GAChDzL,EAAQ,eAAE,QAAQlG,KAAK,CACvBq3F,MAAO,MACPC,KAAML,IACP17J,KAAK27J,GACRl4J,KAAK41J,YAAYkC,EAAY5wF,IAEjCqxF,oBAAqB,WACjB,OAAO,QAAiBl/J,OAAO2G,KAAK+nB,OAAO,QAAS,iBAExDuuI,aAAc,SAASd,GACnB,IAAIgD,EAAQx4J,KAAK+nB,OAAO,aAAZ/nB,GACZ,OAAO,QAAUy4J,SAASjD,EAAUgD,IAExCjC,kBAAmB,SAASf,GACxB,IAAI7gI,EAAU30B,KAAK+nB,OAAO,OACtB6M,EAAU50B,KAAK+nB,OAAO,OAC1B,OAAQ,QAAU2wI,YAAYlD,EAAU7gI,EAASC,EAAS,SAE9D6hI,aAAc,SAASjB,GACnB,OAAOA,EAASv7J,aAAe+F,KAAK+nB,OAAO,QAAQ9tB,YAEvDm8J,aAAc,SAASZ,GACnB,OAAO,QAAiBn8J,OAAOm8J,EAAU,MAE7C2C,eAAgB,SAAS17J,GACrB,IAAIk8J,EAAa34J,KAAK+nB,OAAO,YACzB7oB,EAAWzC,EAAMk8J,EACrB,MAAO,CACH/5D,KAAM,QAAiB5/F,cAAcE,GACrCP,YAAa,QAAiBK,YAAY,eAAeE,KAGjEu2J,kBAAmB,WACf,IAAI5wJ,EAAW,QAAU+zJ,kBAAkB54J,KAAK+nB,OAAO,SACnD8wI,EAAsB74J,KAAKo4J,qBAAuBvzJ,EAAS+pJ,SAC3D+J,EAAa34J,KAAK+nB,OAAO,YAK7B,OAJI8wI,GAAuB,IACvBA,GAAuBF,GAE3B9zJ,EAAS2wB,QAAQ3wB,EAAS3K,UAAY2+J,GAC/Bh0J,GAEXwxJ,iBAAkB,SAAS/8J,GAGvB,OAFAA,EAAO,IAAIS,KAAKT,GAChBA,EAAKk8B,QAAQl8B,EAAKY,UAAY,GACvBZ,GAEX8+J,mBAAoB,WAChB,OAAO,eAAUp4J,KAAK+nB,OAAO,mBAAqB/nB,KAAK+nB,OAAO,kBAAoB,QAAiB/jB,uBAEvGkzJ,eAAgB,SAAS59J,GACrB,OAAO0G,KAAKq1J,QAAQpuI,KAAK,kBAAkBpV,OAAO,GAAkB8vE,cAAcroF,EAAM,QAAU08J,sBAAuB,QAE7HwB,WAAY,SAASl+J,GACjB,OAAO,QAAUw/J,iBAAiBx/J,EAAM0G,KAAK+nB,OAAO,SAAW,QAAU+wI,iBAAiBx/J,EAAM0G,KAAK+nB,OAAO,SAEhH8uI,gCAAiC,SAAShC,GACtC,OAAO,SAASh2G,GACZ,IAAIk6G,EAAiBlE,EAAcnnI,MAAK,SAAU3mB,GAC9C,OAAO,QAAU0xJ,SAAS1xJ,EAAM83C,EAAKvlD,SAEzC,GAAIy/J,EACA,OAAO,MAKvBv/J,KAAM,GAAS6lE,QAAQ,CACnBu1F,aAAc,WACV,MAAO,QAEX0B,aAAc,SAASd,GACnB,IAAIgD,EAAQx4J,KAAK+nB,OAAO,aAAZ/nB,GACZ,OAAO,QAAU84J,iBAAiBtD,EAAUgD,IAEhDjC,kBAAmB,SAASf,GACxB,OAAQ,QAAUkD,YAAYlD,EAAU,QAAUoD,kBAAkB54J,KAAK+nB,OAAO,QAAS,QAAUixI,iBAAiBh5J,KAAK+nB,OAAO,UAEpI0uI,aAAc,WACV,OAAO,GAEXL,aAAc,SAASZ,GACnB,OAAO,QAAiBh3J,cAAc,eAAeg3J,EAASv7J,aAElEw7J,kBAAmB,WACf,IAAIx0J,EAAcjB,KAAK+nB,OAAO,QAC1B5hB,EAAO,IAAIpM,KAAKkH,GAGpB,OAFAkF,EAAKqvB,QAAQ,GACbrvB,EAAKg7E,SAAS,GACPh7E,GAEXkwJ,iBAAkB,SAAS/8J,GAGvB,OAFAA,EAAO,IAAIS,KAAKT,GAChBA,EAAK6nF,SAAS7nF,EAAKW,WAAa,GACzBX,GAEX49J,eAAgB,SAAS59J,GACrB,IAAI2/J,EAAY,IAAIl/J,KAAKT,GAEzB,OADA2/J,EAAUzjI,QAAQ,GACXx1B,KAAKq1J,QAAQpuI,KAAK,kBAAkBpV,OAAO,GAAkB8vE,cAAcs3E,EAAW,QAAUjD,sBAAuB,QAElIC,iBAAkB,SAAS38J,GACvB,OAAO,QAAiBD,OAAOC,EAAM,iBAEzCi/J,oBAAqB,WACjB,OAAO,QAAiBl/J,OAAO2G,KAAK+nB,OAAO,QAAS,SAExDyvI,WAAY,SAASl+J,GACjB,OAAO,QAAU4/J,SAAS5/J,EAAM0G,KAAK+nB,OAAO,SAAW,QAAUmxI,SAAS5/J,EAAM0G,KAAK+nB,OAAO,WAGpGoxI,OAAQ,GAAS95F,QAAQ,CACrBu1F,aAAc,WACV,MAAO,UAEX0B,aAAc,SAASd,GACnB,IAAIgD,EAAQx4J,KAAK+nB,OAAO,aAAZ/nB,GACZ,OAAO,QAAUk5J,SAAS1D,EAAUgD,IAExCjC,kBAAmB,SAASf,GACxB,IAAI5zI,EAAM5hB,KAAK+nB,OAAO,OAClBiK,EAAMhyB,KAAK+nB,OAAO,OACtB,OAAQ,QAAU2wI,YAAYlD,EAAS/7J,cAAemoB,GAAOA,EAAInoB,cAAeu4B,GAAOA,EAAIv4B,gBAE/Fg9J,aAAc,SAASjB,GACnB,IAAIl8J,EAAO,IAAIS,KAAKy7J,GAEpB,OADAl8J,EAAK6nF,SAAS,IACN,QAAUi4E,WAAW9/J,EAAM0G,KAAK+nB,OAAO,UAEnDquI,aAAc,SAASZ,GACnB,OAAO,QAAiBn8J,OAAOm8J,EAAU,SAE7CC,kBAAmB,WACf,IAAIj8J,EAAO,QAAU6/J,qBAAqBr5J,KAAK+nB,OAAO,SAAW,EACjE,OAAO,QAAUuxI,uBAAuB9/J,EAAM,EAAG,IAErD68J,iBAAkB,SAAS/8J,GAGvB,OAFAA,EAAO,IAAIS,KAAKT,GAChBA,EAAKiB,YAAYjB,EAAKG,cAAgB,GAC/BH,GAEXi/J,oBAAqB,WACjB,IAAIt3J,EAAcjB,KAAK+nB,OAAO,QAC1BwxI,EAAoB,QAAUF,qBAAqBp4J,GACnDu4J,EAAY,IAAIz/J,KAAKkH,GACrBw4J,EAAU,IAAI1/J,KAAKkH,GAGvB,OAFAu4J,EAAUj/J,YAAYg/J,GACtBE,EAAQl/J,YAAYg/J,EAAoB,GACjC,QAAiBlgK,OAAOmgK,EAAW,QAAU,IAAM,QAAiBngK,OAAOogK,EAAS,SAE/FC,sBAAuB,SAASz4J,EAAaY,GACzC,OAAO,QAAUu3J,WAAWn4J,EAAaY,IAE7Cq1J,eAAgB,SAAS59J,GACrB,IAAI2/J,EAAY,IAAIl/J,KAAKT,GAGzB,OAFA2/J,EAAUzjI,QAAQ,GAClByjI,EAAU93E,SAAS,GACZnhF,KAAKq1J,QAAQpuI,KAAK,kBAAkBpV,OAAO,GAAkB8vE,cAAcs3E,EAAW,QAAUjD,sBAAuB,QAElIwB,WAAY,SAASl+J,GACjB,OAAO,QAAU8/J,WAAW9/J,EAAM0G,KAAK+nB,OAAO,SAAW,QAAUqxI,WAAW9/J,EAAM0G,KAAK+nB,OAAO,WAGxG4xI,QAAS,GAASt6F,QAAQ,CACtBu1F,aAAc,WACV,MAAO,WAEX0B,aAAc,SAASd,GACnB,IAAIgD,EAAQx4J,KAAK+nB,OAAO,aAAZ/nB,GACZ,OAAO,QAAUo5J,WAAW5D,EAAUgD,IAE1CjC,kBAAmB,SAASf,GACxB,IAAI2D,EAAS,QAAUE,qBAAqB7D,GACxCoE,EAAY,QAAUP,qBAAqBr5J,KAAK+nB,OAAO,QACvD8xI,EAAY,QAAUR,qBAAqBr5J,KAAK+nB,OAAO,QAC3D,OAAQ,QAAU2wI,YAAYS,EAAQS,EAAWC,IAErDpD,aAAc,SAASjB,GACnB,IAAIl8J,EAAO,IAAIS,KAAKy7J,GAEpB,OADAl8J,EAAK6nF,SAAS,IACN,QAAU24E,YAAYxgK,EAAM0G,KAAK+nB,OAAO,UAEpDquI,aAAc,SAASZ,GACnB,IAAIgE,EAAY,QAAiBngK,OAAOm8J,EAAU,QAC9CiE,EAAU,IAAI1/J,KAAKy7J,GAEvB,OADAiE,EAAQl/J,YAAYk/J,EAAQhgK,cAAgB,GACrC+/J,EAAY,MAAQ,QAAiBngK,OAAOogK,EAAS,SAEhEhE,kBAAmB,WACf,IAAI0D,EAAS,QAAUY,wBAAwB/5J,KAAK+nB,OAAO,SAAW,GACtE,OAAO,QAAUuxI,uBAAuBH,EAAQ,EAAG,IAEvD9C,iBAAkB,SAAS/8J,GAGvB,OAFAA,EAAO,IAAIS,KAAKT,GAChBA,EAAKiB,YAAYjB,EAAKG,cAAgB,IAC/BH,GAEX49J,eAAgB,SAAS59J,GACrB,IAAI2/J,EAAY,IAAIl/J,KAAKT,GAIzB,OAHA2/J,EAAUzjI,QAAQ,GAClByjI,EAAU93E,SAAS,GACnB83E,EAAU1+J,YAAY,QAAU8+J,qBAAqBJ,IAC9Cj5J,KAAKq1J,QAAQpuI,KAAK,kBAAkBpV,OAAO,GAAkB8vE,cAAcs3E,EAAW,QAAUjD,sBAAuB,QAElIuC,oBAAqB,WACjB,IAAIt3J,EAAcjB,KAAK+nB,OAAO,QAC1BiyI,EAAuB,QAAUD,wBAAwB94J,GACzDu4J,EAAY,IAAIz/J,KAAKkH,GACrBw4J,EAAU,IAAI1/J,KAAKkH,GAGvB,OAFAu4J,EAAUj/J,YAAYy/J,GACtBP,EAAQl/J,YAAYy/J,EAAuB,IACpC,QAAiB3gK,OAAOmgK,EAAW,QAAU,IAAM,QAAiBngK,OAAOogK,EAAS,SAE/FjC,WAAY,SAASl+J,GACjB,OAAO,QAAUwgK,YAAYxgK,EAAM0G,KAAK+nB,OAAO,SAAW,QAAU+xI,YAAYxgK,EAAM0G,KAAK+nB,OAAO,YAI/F,M,0BCpOXkyI,GAAiB,cACjBC,GAAsB,mBACtB,GAAsB,mBACtBC,GAAwB,qBACxBC,GAA8B,2BAC9BC,GAA4B,0BAC5BC,GAA+B,4BAC/BC,GAAsB,mBACtBC,GAAsB,mBACtBC,GAA+B,IAC/BC,GAAqB,GACrBC,GAAmB,EACnBC,GAAkC,aAClC,GAA0B,iBAC1BC,GAAoB,CACpBh+J,MAAO,EACPrD,KAAM,EACN2/J,OAAQ,EACRQ,QAAS,GAETmB,GAAa,CACbC,MAAO,QACPC,KAAM,OACNC,OAAQ,SACRC,QAAS,WAGb,SAASC,GAAgBt0I,GACrB,OAAOA,EAAQy/C,SAASk0F,IAE5B,IAAIY,GAAW,QAAO/7F,QAAQ,CAC1Bs3C,iBAAkB,IAAM,GACxBf,mBAAoB,WAChB,OAAO,OAAAn7G,EAAA,WAAOuF,KAAKC,WAAY,CAC3BilD,mBAAmB,EACnBpC,oBAAoB,EACpB7hD,YAAa,IAAIlH,KACjB8H,MAAO,KACPiiD,6BAAyB,EACzBliC,IAAK,IAAI7nB,KAAK,IAAK,GACnBi4B,IAAK,IAAIj4B,KAAK,IAAK,GACnB49J,oBAAgB,EAChB0D,UAAWP,GAAWC,MACtBO,aAAcR,GAAWC,MACzBQ,aAAcT,GAAWI,QACzBM,iBAAiB,EACjBp0J,aAAc,OACdytJ,cAAe,KACfpvG,YAAa,KACbg2G,mBAAoB,KACpBC,gBAAgB,EAChB3G,WAAY,IAAM,IAAIh7J,QAG9B2lH,qBAAsB,WAClB,OAAO1/G,KAAKC,WAAW4R,OAAO,CAAC,CAC3B8tG,OAAQ,WACJ,MAAO,YAAc9G,GAAA,KAAQC,OAAOC,aAAeF,GAAA,KAAQyd,eAE/DtlH,QAAS,CACL6zC,mBAAmB,OAI/BwxD,eAAgB,WACZ,OAAO,OAAA57G,EAAA,WAAOuF,KAAKC,WAAY,CAC3BomJ,WAAY,SAASziJ,GACjBA,EAAEg3B,iBACE,gBAAoBh3B,GACpB5D,KAAK27J,gBAAgB,GAErB37J,KAAK47J,yBAAyB,EAAI57J,KAAK67J,sBAG/C1V,UAAW,SAASviJ,GAChBA,EAAEg3B,iBACE,gBAAoBh3B,GACpB5D,KAAK27J,iBAAiB,GAEtB37J,KAAK47J,0BAA0B,EAAI57J,KAAK67J,sBAGhDzb,QAAS,SAASx8I,GAEd,GADAA,EAAEg3B,iBACE,gBAAoBh3B,GACpB5D,KAAK87J,kBACF,CACH,GAAI71C,GAAA,KAAG81C,YAAY/7J,KAAKg8J,MAAMh2I,YAC1B,OAEJhmB,KAAK47J,0BAA0B,EAAI57J,KAAKg8J,MAAMj0I,OAAO,eAG7Ds4H,UAAW,SAASz8I,GAEhB,GADAA,EAAEg3B,iBACE,gBAAoBh3B,GACpB5D,KAAKi8J,oBACF,CACH,GAAIh2C,GAAA,KAAG81C,YAAY/7J,KAAKg8J,MAAMh2I,YAC1B,OAEJhmB,KAAK47J,yBAAyB,EAAI57J,KAAKg8J,MAAMj0I,OAAO,eAG5Du+H,KAAM,SAAS1iJ,GACXA,EAAEg3B,iBACF,IAAIygI,EAAYr7J,KAAK+nB,OAAO,aACxB9mB,EAAcjB,KAAK+nB,OAAO,eAC1BnG,EAAM5hB,KAAKk8J,YAAY,OAC3B,IAAIl8J,KAAKg8J,MAAMxF,eAAev1J,GAA9B,CAGA,IAAI3H,EAAO,QAAU6iK,SAASd,EAAWp6J,EAAa2gB,GAAOA,EAAM,QAAUw6I,qBAAqBf,EAAWp6J,GAC7GjB,KAAKq8J,4BAA4B/iK,KAErC6oC,IAAK,SAASv+B,GACVA,EAAEg3B,iBACF,IAAIygI,EAAYr7J,KAAK+nB,OAAO,aACxB9mB,EAAcjB,KAAK+nB,OAAO,eAC1BiK,EAAMhyB,KAAKk8J,YAAY,OAC3B,IAAIl8J,KAAKg8J,MAAMxF,eAAev1J,GAA9B,CAGA,IAAI3H,EAAO,QAAU6iK,SAASd,EAAWp6J,EAAa+wB,GAAOA,EAAM,QAAUsqI,oBAAoBjB,EAAWp6J,GAC5GjB,KAAKq8J,4BAA4B/iK,KAErCm9G,OAAQ,SAAS7yG,GACbA,EAAEg3B,iBACF56B,KAAK27J,iBAAiB,EAAI37J,KAAK67J,sBAEnCnlD,SAAU,SAAS9yG,GACfA,EAAEg3B,iBACF56B,KAAK27J,gBAAgB,EAAI37J,KAAK67J,sBAElCpmC,IAAK,OACL6qB,MAAO,SAAS18I,GACZ,GAAK5D,KAAKu8J,mBAEH,IAAKv8J,KAAKg8J,MAAMxF,eAAex2J,KAAK+nB,OAAO,gBAAiB,CAC/D,IAAIlmB,EAAQ7B,KAAKw8J,qBAAqBx8J,KAAK+nB,OAAO,gBAClD/nB,KAAKy8J,WAAW56J,EAAO+B,SAHvB5D,KAAKi8J,oBAQrBS,wBAAyB,SAASryG,GAC9B,IAAIxoD,EAAQ7B,KAAK+nB,OAAOsiC,GAAc,SACtC,OAAIrqD,KAAK+nB,OAAO,2BACL/nB,KAAK+nB,OAAO,2BAEnB,eAAUlmB,GACH,SAEN,eAASA,GAGP,GAAkBm/E,2BAA2Bn/E,QAHpD,GAKJ86J,eAAgB,SAAS96J,EAAOwoD,GAC5B,OAAO,GAAkBo3B,gBAAgB5/E,IAE7C46J,WAAY,SAAS56J,EAAOy/D,GACxB,GAAIA,EAAO,CACP,GAAI,YAAcA,EAAM7iE,KAAM,CAC1B,IAAIsvE,EAAc/tE,KAAKg8J,MAAMhF,oBAAoBt5J,IAAI,GACrD4jE,EAAMh8C,OAASyoD,EAEnB/tE,KAAK+iJ,sBAAsBzhF,GAE/BthE,KAAKk8J,YAAY,QAASr6J,IAE9Bq6J,YAAa,SAAS7xG,EAAYsyC,GAC9B,GAAI,IAAMz8F,UAAUtG,OAChB,OAAOoG,KAAK28J,eAAe38J,KAAK+nB,OAAOsiC,GAAaA,GAExD,IAAIu3B,EAAsB5hF,KAAK08J,wBAAwBryG,GACvDrqD,KAAK+nB,OAAOsiC,EAAY,GAAkBs3B,cAAcgb,EAAa/a,KAEzEg7E,WAAY,SAASvB,EAAW/hK,EAAM8xB,EAAQgrE,GAC1C,OAAQilE,GACJ,KAAKP,GAAWC,MACZzhK,EAAKk8B,QAAQl8B,EAAKY,UAAYkxB,EAASgrE,GACvC,MACJ,KAAK0kE,GAAWE,KACZ1hK,EAAK6nF,SAAS7nF,EAAKW,WAAamxB,EAASgrE,GACzC,MACJ,KAAK0kE,GAAWG,OACZ3hK,EAAKiB,YAAYjB,EAAKG,cAAgB2xB,EAASgrE,GAC/C,MACJ,KAAK0kE,GAAWI,QACZ5hK,EAAKiB,YAAYjB,EAAKG,cAAgB,GAAK2xB,EAASgrE,KAGhEwlE,yBAA0B,SAASxwI,GAC/B,IAAIyxI,EAAW78J,KAAK+nB,OAAO,eACvB9mB,EAAc,IAAIlH,KAAK8iK,GACvBxB,EAAYr7J,KAAK+nB,OAAO,aAC5B/nB,KAAK48J,WAAWvB,EAAWp6J,EAAamqB,EAAQ,GAChD,IAAIwJ,EAAU50B,KAAK88J,cACfnoI,EAAU30B,KAAK+8J,cACfC,EAA8Bh9J,KAAKi9J,wBAAwB5B,EAAWp6J,EAAa47J,GACnFK,EAAuB,gBAAQj8J,EAAa0zB,EAASC,IAAYooI,EACjEG,EAAc,IAAIpjK,KAAKkH,GAC3B,MAAOi8J,EAAsB,CACzB,IAAKl9J,KAAKg8J,MAAMxF,eAAe2G,GAAc,CACzCl8J,EAAck8J,EACd,MAEJn9J,KAAK48J,WAAWvB,EAAW8B,EAAa/xI,EAAQ,GAChD4xI,EAA8Bh9J,KAAKi9J,wBAAwB5B,EAAW8B,EAAaN,GACnFK,EAAuB,gBAAQC,EAAaxoI,EAASC,IAAYooI,EAEjEh9J,KAAKg8J,MAAMxF,eAAeqG,IAAa78J,KAAKg8J,MAAMxF,eAAev1J,GACjEjB,KAAK27J,gBAAgBvwI,EAAS,EAAI,GAAK,GAEvCprB,KAAK+nB,OAAO,cAAe9mB,IAGnC,oBAAoBo6J,EAAW+B,EAAOC,GAClC,OAAQhC,GACJ,KAAKP,GAAWC,MACZ,OAAOqC,EAAMnjK,aAAeojK,EAAMpjK,WACtC,KAAK6gK,GAAWE,KACZ,OAAOoC,EAAME,YAAcD,EAAMC,UACrC,KAAKxC,GAAWG,OACZ,OAAO15J,SAAS67J,EAAME,UAAY,MAAQ/7J,SAAS87J,EAAMC,UAAY,IACzE,KAAKxC,GAAWI,QACZ,OAAO35J,SAAS67J,EAAME,UAAY,OAAS/7J,SAAS87J,EAAMC,UAAY,OAGlF,wBAAwBjC,EAAW+B,EAAOC,GACtC,OAAQhC,GACJ,KAAKP,GAAWC,MACZ,OAAQh5J,EAAIq7J,EAAMnjK,WAAY+H,EAAIq7J,EAAMpjK,WAAY2oB,EAAMjB,KAAKiB,IAAI7gB,EAAIC,GAAI2f,KAAKC,IAAIgB,EAAK,GAAKA,IAAS,EAC3G,KAAKk4I,GAAWE,KACZ,OAAOr5I,KAAKiB,IAAIw6I,EAAME,UAAYD,EAAMC,YAAc,EAC1D,KAAKxC,GAAWG,OACZ,OAAOt5I,KAAKiB,IAAIw6I,EAAME,UAAYD,EAAMC,YAAc,GAC1D,KAAKxC,GAAWI,QACZ,OAAOv5I,KAAKiB,IAAIw6I,EAAME,UAAYD,EAAMC,YAAc,IAE9D,IAAIv7J,EAAGC,EAAG4gB,GAEdy5I,4BAA6B,WACzB,IAMIkB,EACAC,EAPAX,EAAW38J,UAAUtG,OAAS,QAAK,IAAWsG,UAAU,GAAKA,UAAU,GAAKF,KAAK+nB,OAAO,eACxF9mB,EAAc,IAAIlH,KAAK8iK,GACvBxB,EAAYr7J,KAAK+nB,OAAO,aACxB01I,GAA0Bz9J,KAAK09J,oBAAoBz8J,GACnD08J,EAAyBF,EACzBG,EAA0BH,EAG1BN,EAAc,IAAIpjK,KAAKkH,GACvB48J,EAAe,IAAI9jK,KAAKkH,GAC5B,EAAG,CACC,GAAI08J,EAAwB,CACxB18J,EAAck8J,EACd,MAEJ,GAAIS,EAAyB,CACzB38J,EAAc48J,EACd,MAEJ79J,KAAK48J,WAAWvB,EAAW8B,EAAa,EAAG,GAC3Cn9J,KAAK48J,WAAWvB,EAAWwC,EAAc,GAAI,GAC7CN,EAA2Bv9J,KAAK89J,oBAAoBzC,EAAW8B,EAAaN,GAC5EW,EAA4Bx9J,KAAK89J,oBAAoBzC,EAAWwC,EAAchB,GAC9Ec,EAAyBJ,IAA6Bv9J,KAAK09J,oBAAoBP,GAC/ES,EAA0BJ,IAA8Bx9J,KAAK09J,oBAAoBG,SAC5EN,GAA4BC,GACrCx9J,KAAK+nB,OAAO,cAAe9mB,IAE/By8J,oBAAqB,SAASpkK,GAC1B,IAAIs7B,EAAU50B,KAAK88J,cACfnoI,EAAU30B,KAAK+8J,cACnB,OAAQ,gBAAQzjK,EAAMq7B,EAASC,IAAY50B,KAAKg8J,MAAMxF,eAAel9J,IAEzEs9G,MAAO,WACH52G,KAAKC,WACLD,KAAK+9J,oBACL/9J,KAAKg+J,mBACLh+J,KAAK82G,gBAETinD,kBAAmB,WACf,IAAIxC,EAAev7J,KAAK+nB,OAAO,gBAC3BuzI,EAAet7J,KAAK+nB,OAAO,gBAC3BszI,EAAYr7J,KAAK+nB,OAAO,aACxB8yI,GAAkBS,GAAgBT,GAAkBU,KAGpDV,GAAkBQ,GAAaR,GAAkBS,GACjDt7J,KAAK+nB,OAAO,YAAauzI,GAClBT,GAAkBQ,GAAaR,GAAkBU,IACxDv7J,KAAK+nB,OAAO,YAAawzI,KAGjCyC,iBAAkB,WACd,IAAI/8J,EAAcjB,KAAKi+J,mBAAmBj+J,KAAKk8J,YAAY,WAAal8J,KAAKi+J,mBAAmBj+J,KAAK+nB,OAAO,gBAC5G/nB,KAAK+nB,OAAO,cAAe9mB,IAE/Bg9J,mBAAoB,SAAS3kK,GAEzB,OADAA,EAAO,QAAU4kK,cAAc5kK,EAAM0G,KAAK+8J,cAAe/8J,KAAK88J,eACvD,eAAUxjK,GAAQ0G,KAAKm+J,SAAS7kK,GAAQA,GAEnDw9G,aAAc,WACV92G,KAAK22J,iBAAmB32J,KAAKuhE,sBAAsB,eACnDvhE,KAAKo+J,oBAAsBp+J,KAAKuhE,sBAAsB,uBAE1Ds1D,eAAgB,WACZ72H,KAAK82H,iBAAiBC,oBAAoB,CACtC1sD,KAAM,IAAI,SAAiB,SAAUr5D,GACjC,IAAI7K,EAAO6K,EAAQlM,MACnB,eAAEkM,EAAQmX,WAAWyhB,OAAO,eAAE,UAAUrtC,KAAK4J,GAAQA,EAAK5J,MAAQ5C,OAAOwM,UAGjFnG,KAAKC,YAETo+J,mBAAoB,SAAS/kK,GACrB2sH,GAAA,KAAG81C,YAAY/7J,KAAKs+J,iBACpBr4C,GAAA,KAAGr5G,KAAK5M,KAAKs+J,gBAAgB,GAEjC,IAAI18I,EAAM5hB,KAAK+8J,cACX/qI,EAAMhyB,KAAK88J,cACf,GAAIl7I,EAAMoQ,EACNhyB,KAAK+nB,OAAO,cAAe,IAAIhuB,UADnC,CAIA,IAAIwkK,EAAiBv+J,KAAKi+J,mBAAmB3kK,GAC7C,GAAIA,EAAKyK,YAAcw6J,EAAex6J,UAAtC,CAIA,IAAIqnB,EAASprB,KAAKw+J,gBAAgBx+J,KAAKg8J,MAAMj0I,OAAO,QAASw2I,GACzD,IAAMnzI,IAAWprB,KAAKu8J,mBAAqBv8J,KAAKy+J,0BAChDrzI,EAAS,GAETprB,KAAKg8J,OAAS,IAAM5wI,IAAWprB,KAAK0+J,oBACpC1+J,KAAK2+J,UAAUvzI,EAAQmzI,IAEvBv+J,KAAK4+J,mBACL5+J,KAAK6+J,kBAAkBN,GACvBv+J,KAAK8+J,cAAcP,SAZnBv+J,KAAK+nB,OAAO,cAAe,IAAIhuB,KAAKwkK,MAe5CM,kBAAmB,SAASvlK,IACpB0G,KAAK+nB,OAAO,mBAAqBozI,GAAgBn7J,KAAKoiH,kBACtDpiH,KAAKg8J,MAAMj0I,OAAO,gBAAiBzuB,IAG3CyjK,YAAa,WACT,OAAI/8J,KAAK4hB,MAGT5hB,KAAK4hB,IAAM5hB,KAAKk8J,YAAY,QAAU,IAAIniK,KAAK,IAAK,IAFzCiG,KAAK4hB,KAKpBk7I,YAAa,WACT,OAAI98J,KAAKgyB,MAGThyB,KAAKgyB,IAAMhyB,KAAKk8J,YAAY,QAAU,IAAIniK,KAAK,IAAK,IAFzCiG,KAAKgyB,KAKpBwsI,gBAAiB,SAAShF,EAAWC,GACjC,IAIIsF,EAJA1D,EAAYr7J,KAAK+nB,OAAO,aAC5B,GAAIszI,IAAcP,GAAWC,MACzB,OAAO/6J,KAAKg/J,iBAAiBxF,EAAWC,GAG5C,OAAQ4B,GACJ,KAAKP,GAAWI,QACZ6D,EAAiB,IACjB,MACJ,KAAKjE,GAAWG,OACZ8D,EAAiB,GACjB,MACJ,QACIA,EAAiB,EAEzB,OAAOx9J,SAASk4J,EAAQhgK,cAAgBslK,GAAkBx9J,SAASi4J,EAAU//J,cAAgBslK,IAEjGC,iBAAkB,SAASxF,EAAWC,GAClC,IAAIwF,EAAaxF,EAAQhgK,cAAgB+/J,EAAU//J,cAC/CylK,EAAczF,EAAQx/J,WAAau/J,EAAUv/J,WACjD,OAAO,GAAKglK,EAAaC,GAE7BvD,gBAAiB,SAASvwI,GACtB,IAAIprB,KAAKm/J,mBAAT,CAGAn/J,KAAKm/J,oBAAqB,EAC1B,IAAI7lK,EAAO0G,KAAKo/J,iBAAiBh0I,EAASprB,KAAK67J,qBAC/C77J,KAAKq8J,4BAA4B/iK,GACjC0G,KAAKq/J,uBAAyBpsJ,WAAW,KACrCjT,KAAKm/J,oBAAqB,MAGlCtD,kBAAmB,WACf,OAAO77J,KAAK+nB,OAAO,eAAiB,EAAI,GAE5Cq3I,iBAAkB,SAASh0I,EAAQ9xB,GAC/B,IAAIgmK,EACJhmK,EAAO0G,KAAKm+J,SAAS,QAAUmB,EAAQhmK,SAAS,IAAWgmK,EAAQA,EAAQt/J,KAAK+nB,OAAO,gBACvF,IAAIw3I,EAAajmK,EAAKY,UAClBszE,EAAa,QAAUgyF,qBAAqBx/J,KAAK+nB,OAAO,cAAgBqD,EAC5E9xB,EAAKk8B,QAAQ,GACbl8B,EAAK6nF,SAAS7nF,EAAKW,WAAauzE,GAChC,IAAIiyF,EAAU,QAAUzG,iBAAiB1/J,GAAMY,UAE/C,OADAZ,EAAKk8B,QAAQ+pI,EAAaE,EAAUA,EAAUF,GACvCjmK,GAEX8oH,aAAc,WACV,OAAOpiH,KAAKgmB,YAEhBsyF,YAAa,WACTt4G,KAAKghJ,uBACLhhJ,KAAKC,WACL,IAAI+lB,EAAWhmB,KAAKgmB,WACpBA,EAASsB,SAAS2yI,IAClBj6J,KAAKk1J,cACLlvI,EAAS4jB,OAAO5pC,KAAKs1J,OACrBt1J,KAAK8xH,eACL9xH,KAAK4+J,mBACL54I,EAAS4jB,OAAO5pC,KAAK0/J,WAAW15I,YAChChmB,KAAK2/J,mBACL3/J,KAAK4/J,gBACL5/J,KAAK6/J,sBACL7/J,KAAK8+J,gBACL9+J,KAAKq8J,+BAETt6C,QAAS,WACL/hH,KAAKC,WACLD,KAAK6+J,kBAAkB7+J,KAAK+nB,OAAO,iBAEvCmtI,YAAa,WACJl1J,KAAKs+J,iBACNt+J,KAAKs1J,MAAQ,eAAE,SAAShuI,SAAS4yI,IACjCl6J,KAAKs+J,eAAiB,eAAE,SAASh3I,SAASgzI,IAC1Ct6J,KAAKs1J,MAAM1rH,OAAO5pC,KAAKs+J,kBAG/B,wBACI,OAAOt+J,KAAKC,WAAW4R,OAAO,CAAC7R,KAAKg8J,SAExClqC,aAAc,WACV9xH,KAAKgmB,WAAWsB,SAASizI,GAAsB,IAAMv6J,KAAK+nB,OAAO,cACjE,IAAI9mB,EAAcjB,KAAK+nB,OAAO,eAE9B,GADA/nB,KAAKg8J,MAAQh8J,KAAK8/J,oBAAoB7+J,GAClC,iBAAa,CACb,IAAI8+J,EAAa//J,KAAKo/J,kBAAkB,EAAGn+J,GAC3CjB,KAAKggK,YAAchgK,KAAKigK,iBAAiBF,GAAc//J,KAAK8/J,oBAAoBC,GAAc,KAC9F,IAAIG,EAAYlgK,KAAKo/J,iBAAiB,EAAGn+J,GACzCi/J,EAAU1qI,QAAQ,GAClBx1B,KAAKmgK,WAAangK,KAAKigK,iBAAiBC,GAAalgK,KAAK8/J,oBAAoBI,GAAa,KAE/FlgK,KAAKogK,mBAETN,oBAAqB,SAASxmK,GAC1B,IAAI+mK,EAAe,GAAMrgK,KAAK+nB,OAAO,cACjCu4I,EAAQ,eAAE,SAAS/4I,SAASvnB,KAAKs+J,gBACjCn9F,EAASnhE,KAAKugK,YAAYjnK,GAC9B,OAAO0G,KAAKooB,iBAAiBk4I,EAAOD,EAAcl/F,IAEtDo/F,YAAa,SAASjnK,GAClB,IAAIu7J,EAAgB70J,KAAK+nB,OAAO,iBAEhC,OADA8sI,EAAgB,eAAWA,GAAiB70J,KAAKwgK,iBAAiB3L,EAAcrqI,KAAKxqB,OAAS60J,EACvF,CACHv7J,KAAMA,EACNsoB,IAAK5hB,KAAK+8J,cACV/qI,IAAKhyB,KAAK88J,cACVnF,eAAgB33J,KAAK+nB,OAAO,kBAC5BlmB,MAAO7B,KAAKk8J,YAAY,SACxB1yG,cAAU,EACV3E,kBAAmB7kD,KAAK+nB,OAAO,qBAC/Bm9B,kBAAmBllD,KAAK+nB,OAAO,qBAC/B8sI,cAAeA,EACfpvG,YAAazlD,KAAKygK,kBAAkBj2I,KAAKxqB,MACzCoH,aAAcpH,KAAK65H,qBAAqB,gBACxCi7B,oBAAqB90J,KAAKu8J,kBAC1BxH,WAAY/0J,KAAK+nB,OAAO,gBAGhCy4I,iBAAkB,SAAShoH,GACvB,IAAI70C,EAAO3D,KACX,OAAO,SAAS4/E,GAIZ,OAHA,OAAAnlF,EAAA,WAAOmlF,EAAQ,CACX7yE,UAAWpJ,IAER60C,EAAKonC,KAGpBqgF,iBAAkB,SAAS3mK,GACvB,IAAI+hK,EAAYr7J,KAAK+nB,OAAO,aACxBnG,EAAM,QAAU8+I,uBAAuBrF,EAAWr7J,KAAK+8J,eACvD/qI,EAAM,QAAU2uI,uBAAuBtF,EAAWr7J,KAAK88J,eAC3D,OAAO,QAAUpE,YAAYp/J,EAAMsoB,EAAKoQ,IAE5CouI,gBAAiB,WACb,gBAAKpgK,KAAKg8J,MAAMh2I,WAAY,CACxB2F,KAAM,EACNC,IAAK,IAET5rB,KAAKggK,aAAe,gBAAKhgK,KAAKggK,YAAYh6I,WAAY,CAClD2F,KAAM3rB,KAAK4gK,kBAAkB,GAC7Bh1I,IAAK,IAET5rB,KAAKmgK,YAAc,gBAAKngK,KAAKmgK,WAAWn6I,WAAY,CAChD2F,KAAM3rB,KAAK4gK,iBAAiB,GAC5Bh1I,IAAK,KAGbg1I,iBAAkB,SAASC,GACvB,IAAIC,EAAgB9gK,KAAK+nB,OAAO,eAAiB,EAAI,EACrD,OAAO,IAAM84I,EAAcC,EAAgB,KAE/CL,kBAAmB,SAAS78J,GACxB,IAAIy3J,EAAYr7J,KAAK+nB,OAAO,aACxBg5I,EAAW,QAAUC,YAAY3F,GACjC4F,EAAiBjhK,KAAKu8J,kBAC1B,GAAIwE,IAAaE,EACbjhK,KAAKi8J,cAAcr4J,EAAE09D,MAAMoI,mBACxB,CACH,IAAI4J,EAAWtzE,KAAKw8J,qBAAqB54J,EAAE/B,OAC3C7B,KAAKy8J,WAAWnpF,EAAU1vE,EAAE09D,OAC5BthE,KAAK22J,iBAAiB/yJ,KAG9B44J,qBAAsB,SAASljK,GAC3B,IAAI2F,EAAS,IAAIlF,KAAKT,GAClB4nK,EAAelhK,KAAKk8J,YAAY,SAOpC,OANIgF,IACAjiK,EAAOs4B,SAAS2pI,EAAa/mK,YAC7B8E,EAAOkiK,WAAWD,EAAa9mK,cAC/B6E,EAAO0yJ,WAAWuP,EAAa7mK,cAC/B4E,EAAO2yJ,gBAAgBsP,EAAa5mK,oBAEjC2E,GAEXs9J,gBAAiB,WACb,OAAOv8J,KAAK+nB,OAAO,eAAiB/nB,KAAK+nB,OAAO,iBAEpDk0I,cAAe,SAAS5xF,GACpB,IAAIgxF,EAAYr7J,KAAK+nB,OAAO,aAC5B,IAAI/nB,KAAKu8J,kBAAT,CAGA,IAAIwE,EAAW,QAAUC,YAAY3F,GACrC,GAAK0F,EAAL,CAGA,IAAIK,EAAiBphK,KAAKg8J,MAAMj0I,OAAO,kBAAoB/nB,KAAKg8J,MAAMj0I,OAAO,QACzEsiD,IACA+2F,EAAiB,eAAE/2F,GAAMlkE,KAAK,KAElCnG,KAAKy+J,yBAA0B,EAC/Bz+J,KAAK+nB,OAAO,cAAeq5I,GAC3BphK,KAAK+nB,OAAO,YAAag5I,GACzB/gK,KAAKy+J,yBAA0B,EAC/Bz+J,KAAK4+J,mBACL5+J,KAAKqhK,mBACLrhK,KAAKq8J,8BACLr8J,KAAK6+J,kBAAkB7+J,KAAKi+J,mBAAmBj+J,KAAK+nB,OAAO,oBAE/D62I,iBAAkB,WACT5+J,KAAK0/J,aACN1/J,KAAK0/J,WAAa,IAAI,GAAU,eAAE,SAAU1/J,KAAKshK,qBAErDthK,KAAK0/J,WAAW33I,OAAO,OAAQ/nB,KAAKg8J,MAAMzD,uBAC1Cv4J,KAAKuhK,4BAETD,iBAAkB,WACd,MAAO,CACH/kK,KAAMyD,KAAKg8J,MAAMzD,sBACjBrtG,QAASlrD,KAAKwhK,uBAAuBh3I,KAAKxqB,MAC1CozJ,eAAgBpzJ,KAAK87J,YAAYtxI,KAAKxqB,MACtCqrB,WAAYrrB,KAAK+nB,OAAO,gBAGhCy5I,uBAAwB,SAAS59J,GAC7B,IAAI3C,EAAcjB,KAAKo/J,iBAAiBx7J,EAAEm2D,UAAW/5D,KAAK+nB,OAAO,gBACjE/nB,KAAKq8J,4BAA4Bp7J,IAErC66J,YAAa,WACT,IAAIT,EAAYr7J,KAAK+nB,OAAO,aACxBg5I,EAAW,QAAUU,UAAUpG,GAC9B0F,IAAY/gK,KAAK0hK,gBAAgBrG,KAGtCr7J,KAAK+nB,OAAO,YAAag5I,GACzB/gK,KAAK4+J,mBACL5+J,KAAKqhK,mBACLrhK,KAAKq8J,8BACLr8J,KAAK6+J,kBAAkB7+J,KAAKi+J,mBAAmBj+J,KAAK+nB,OAAO,mBAE/D25I,gBAAiB,SAASrG,GACtB,IAAIz5I,EAAM5hB,KAAK+8J,cACX/qI,EAAMhyB,KAAK88J,cACf,OAAO,QAAUX,SAASd,EAAWz5I,EAAKoQ,IAAQhyB,KAAK+nB,OAAO,kBAAoBszI,GAEtFkG,yBAA0B,WACtBvhK,KAAK0/J,WAAW3L,aAAa,QAAS,eAAU/zJ,KAAK2hK,iBAAiB,UACtE3hK,KAAK0/J,WAAW3L,aAAa,QAAS,eAAU/zJ,KAAK2hK,iBAAiB,WAE1EhC,iBAAkB,WACT3/J,KAAK4hK,aACN5hK,KAAK4hK,WAAa5hK,KAAKooB,iBAAiBpoB,KAAKgmB,WAAY,GAAW,CAChEisI,QAASjyJ,KAAK6hK,mBAAmBr3I,KAAKxqB,MACtCmyJ,UAAWnyJ,KAAK8hK,oBAAoBt3I,KAAKxqB,MACzCuyC,MAAOvyC,KAAK+hK,iBAAiBv3I,KAAKxqB,MAClCuyJ,aAAcvyJ,KAAKgiK,WAAWx3I,KAAKxqB,UAI/C6hK,mBAAoB,SAASj+J,GACzBqiH,GAAA,KAAGr5G,KAAK5M,KAAKs+J,gBAAgB,GAC7B16J,EAAE09D,MAAM2gG,cAAgBjiK,KAAK2hK,iBAAiB,QAAU,EAAI,EAC5D/9J,EAAE09D,MAAM4gG,eAAiBliK,KAAK2hK,iBAAiB,QAAU,EAAI,GAEjEA,iBAAkB,SAAS//J,GACvB,IAAI8mH,EACAy5C,EAAQniK,KAAK+nB,OAAO,cAMxB,MALI,SAAWnmB,EACX8mH,EAAOy5C,EAAQniK,KAAKggK,YAAchgK,KAAKmgK,WAChC,SAAWv+J,IAClB8mH,EAAOy5C,EAAQniK,KAAKmgK,WAAangK,KAAKggK,aAEnCt3C,GAEXo5C,oBAAqB,SAASl+J,GAC1B,IAAIwnB,EAASxnB,EAAE09D,MAAMl2C,OACrB,gBAAKprB,KAAKs+J,eAAgB,CACtB3yI,KAAMP,EAASprB,KAAKgiK,aACpBp2I,IAAK,IAET5rB,KAAKoiK,wBAAwBh3I,IAEjC22I,iBAAkB,SAASn+J,GACvB,IAAIy+J,EAAez+J,EAAE09D,MAAM+gG,aACvBC,EAAcD,EAAmBA,EAAe1gJ,KAAKiB,IAAIy/I,GAA5B,EACjC,GAAI,IAAMC,EAAV,CAIA,IAAIhpK,EAAO0G,KAAKo/J,kBAAkBkD,EAAatiK,KAAK67J,qBAChD77J,KAAKuiK,sBAAsBjpK,KAEvBA,EADAgpK,GAAc,EACP,IAAIvoK,KAAKiG,KAAK+8J,eAEd,IAAIhjK,KAAKiG,KAAK88J,gBAG7B98J,KAAK+nB,OAAO,cAAezuB,QAXvB0G,KAAKwiK,gBAAgB,EAAG/H,KAahCuH,WAAY,WAIR,OAHKhiK,KAAKyiK,kBACNziK,KAAKyiK,gBAAkB,eAASziK,KAAKgmB,aAElChmB,KAAKyiK,iBAEhBL,wBAAyB,SAASh3I,GAC9BA,GAAUprB,KAAK67J,oBACf,IAAInzC,EAAO1oH,KAAKg8J,MACZ5wI,EAAS,IAAMprB,KAAKggK,YACpBt3C,EAAO1oH,KAAKggK,YACL50I,GAAU,IAAMprB,KAAKmgK,aAC5Bz3C,EAAO1oH,KAAKmgK,YAEhBngK,KAAK0/J,WAAW33I,OAAO,OAAQ2gG,EAAK6vC,wBAExCgK,sBAAuB,SAASjpK,GAC5B,IAAI0G,KAAKg8J,MAAMxE,WAAWl+J,GAA1B,CAGA,IAAIsoB,EAAM5hB,KAAK+8J,cACX/qI,EAAMhyB,KAAK88J,cACXyB,EAAiB,QAAUL,cAAc5kK,EAAMsoB,EAAKoQ,GACxD,OAAOusI,IAAmB38I,GAAO28I,IAAmBvsI,IAExD4tI,cAAe,WACX,IAAIpE,EAAkBx7J,KAAK+nB,OAAO,mBAClC,GAAIyzI,EAAiB,CACjB,IAAIkH,EAAe1iK,KAAKooB,iBAAiB,eAAE,OAAQ,cAAQ,CACvDy8B,mBAAmB,EACnBtoD,KAAM,OAAoBlD,OAAO,8BACjC6xD,QAAS,SAASrM,GACd7+C,KAAK2iK,aAAa9jH,IACpBr0B,KAAKxqB,MACPmqI,mBAAoB,KACrBnkH,WAAWsB,SAAS8yI,IACvBp6J,KAAK4iK,SAAW,eAAE,SAASt7I,SAAS6yI,IAAuBvwH,OAAO84H,GAClE1iK,KAAKgmB,WAAW4jB,OAAO5pC,KAAK4iK,UAEhC5iK,KAAKgmB,WAAW69C,YAAYw2F,GAA2BmB,IAE3Dxa,qBAAsB,WAClBhhJ,KAAKohJ,gBAAkB,eAAE,WAAWpgF,KAAK,OAAQ,UAAUz5C,SAASvnB,KAAKgmB,YACzEhmB,KAAKqhJ,gBAAgBrhJ,KAAK+nB,OAAO,WAErCs5H,gBAAiB,SAASx/I,GACtB,IAAIk0B,EAAY/1B,KAAK28J,eAAe96J,GACpC7B,KAAKshJ,oBAAoBC,IAAI,GAAkB5/D,cAAc5rD,EAAW6kI,MAE5EtZ,kBAAmB,WACf,OAAOthJ,KAAKohJ,iBAEhBigB,iBAAkB,WAEd,OADAp7C,GAAA,KAAGr5G,KAAK5M,KAAKg8J,MAAMh2I,YAAY,GACxBhmB,KAAK6iK,kBAAkB7iK,KAAKg8J,MAAOtB,GAAoBC,GAAkBF,IAA8BnqI,WAElHuyI,kBAAmB,SAASn6C,EAAM3jF,EAAMrsC,EAAIshE,GACxC,OAAOisD,GAAA,KAAGG,QAAQsC,EAAK1iG,WAAY,CAC/BvnB,KAAM,MACNsmC,KAAM,CACF4zB,MAAO5zB,EACP2zB,QAAS3zB,GAEbrsC,GAAI,CACAigE,MAAOjgE,EACPggE,QAAShgE,GAEbshE,SAAUA,KAGlB2kG,UAAW,SAASvzI,EAAQvpB,GACxB,GAAI,IAAMupB,GAAU,IAAMzJ,KAAKiB,IAAIwI,IAAWprB,KAAKigK,iBAAiBp+J,GAAQ,CACxE,IAAIihK,EAAU9iK,KAAK8/J,oBAAoBj+J,GACnCupB,EAAS,GACTprB,KAAKmgK,YAAcngK,KAAKmgK,WAAWn6I,WAAW8B,SAC9C9nB,KAAKmgK,WAAa2C,IAElB9iK,KAAKggK,aAAehgK,KAAKggK,YAAYh6I,WAAW8B,SAChD9nB,KAAKggK,YAAc8C,GAEvB9iK,KAAKogK,kBAET,IAAIU,EAAgB9gK,KAAK67J,oBACrBkH,EAAa33I,EAAS,EAAI,EAAIA,EAAS,GAAK,EAAI,EAChD43I,GAAelC,EAAgBiC,EAAa/iK,KAAKgiK,aACjDiB,EAAuBjjK,KAAKs+J,eAAe9pG,WAAW7oC,KACtDs3I,IAAyBD,IACrBhjK,KAAKkjK,4BACLljK,KAAKmjK,4BAA4B/3I,EAAQvpB,GAEzC7B,KAAKwiK,gBAAgBQ,EAAavI,IAA8BttI,KAAKntB,KAAKmjK,4BAA4B34I,KAAKxqB,KAAMorB,EAAQvpB,MAIrI2gK,gBAAiB,SAAS9pK,EAAIshE,GAC1B,OAAOisD,GAAA,KAAGG,QAAQpmH,KAAKs+J,eAAgB,CACnC7/J,KAAM,QACNsmC,KAAM,CACFpZ,KAAM3rB,KAAKs+J,eAAe9pG,WAAW7oC,MAEzCjzB,GAAI,CACAizB,KAAMjzB,GAEVshE,SAAUA,KAGlBmkG,SAAUt8J,GAAS,IAAI9H,KAAK8H,GAC5B8gK,aAAc,SAAS9jH,GACnB7+C,KAAK+iJ,sBAAsBlkG,EAAKyiB,OAChC,IAAIk3F,EAAQ,IAAIz+J,KACZiG,KAAKu8J,kBACLv8J,KAAKk8J,YAAY,QAAS1D,IAG9Bx4J,KAAKkjK,6BAA8B,EACnCljK,KAAK+nB,OAAO,YAAa/nB,KAAK+nB,OAAO,iBACrC/nB,KAAKk8J,YAAY,QAAS1D,GAC1Bx4J,KAAKqhK,mBACLrhK,KAAKkjK,6BAA8B,IAEvCC,4BAA6B,SAAS/3I,EAAQ81D,GAC1ClhF,KAAKojK,gBAAgBh4I,GACrBprB,KAAKogK,kBACLpgK,KAAKqjK,iBACLrjK,KAAK4+J,mBACL5+J,KAAK6+J,kBAAkB39E,GACvBlhF,KAAK8+J,cAAc59E,IAEvBkiF,gBAAiB,SAASh4I,GAItB,IAAIk4I,EACAC,EACAC,EALJ,GAAI,IAAMp4I,IAMNA,EAAS,GACTk4I,EAAa,EACbC,EAAkB,cAClBC,EAAkB,eAElBF,GAAc,EACdC,EAAkB,aAClBC,EAAkB,eAEjBxjK,KAAKujK,IAAV,CAGA,IAAIE,EAAkBzjK,KAAKujK,GAAiBx7I,OAAO,QAC/C/nB,KAAKwjK,IACLxjK,KAAKwjK,GAAiBx9I,WAAW8B,SAEjCsD,IAAWk4I,EACXtjK,KAAKwjK,GAAmBxjK,KAAKg8J,OAE7Bh8J,KAAKwjK,GAAmBxjK,KAAK8/J,oBAAoB9/J,KAAKo/J,iBAAiBkE,EAAYG,IACnFzjK,KAAKg8J,MAAMh2I,WAAW8B,UAE1B9nB,KAAKg8J,MAAQh8J,KAAKujK,GAClB,IAAIG,EAAe1jK,KAAKo/J,kBAAkBkE,EAAYG,GACtDzjK,KAAKujK,GAAmBvjK,KAAKigK,iBAAiByD,GAAgB1jK,KAAK8/J,oBAAoB4D,GAAgB,OAE3GL,eAAgB,WACZ,gBAAKrjK,KAAKs+J,eAAgB,CACtB3yI,KAAM,EACNC,IAAK,KAGbwqF,OAAQ,WACJp2G,KAAKC,WACLD,KAAK2jK,8BACE3jK,KAAKs+J,sBACLt+J,KAAK0/J,kBACL1/J,KAAK4iK,UAEhBe,qBAAsB,kBACX3jK,KAAKyiK,iBAEhBmB,cAAe,WACX5jK,KAAKg8J,MAAMh2I,WAAW8B,SACtB9nB,KAAKggK,aAAehgK,KAAKggK,YAAYh6I,WAAW8B,SAChD9nB,KAAKmgK,YAAcngK,KAAKmgK,WAAWn6I,WAAW8B,gBACvC9nB,KAAKg8J,aACLh8J,KAAKggK,mBACLhgK,KAAKmgK,YAEhBrhC,SAAU,WACNr1D,aAAazpE,KAAKq/J,wBAClBr/J,KAAKC,YAET4jK,cAAe,WACX7jK,KAAK4jK,gBACL5jK,KAAK8xH,gBAETrhB,mBAAoB,WAChBzwG,KAAKogK,mBAET1Z,gBAAiB,WACb1mJ,KAAKC,SAASnB,MAAMkB,KAAME,WAC1BF,KAAKg8J,MAAMj0I,OAAO,gBAAiB/nB,KAAK+nB,OAAO,iBAEnDk/H,iBAAkB,WACdjnJ,KAAKC,SAASnB,MAAMkB,KAAME,WAC1BF,KAAKg8J,MAAMj0I,OAAO,gBAAiB,OAEvC+7I,kBAAmB,SAASjiK,GACxB,IAAIyxE,EAAWzxE,EAAQ,IAAI9H,KAAK8H,GAAS,KACzC7B,KAAKg8J,MAAMj0I,OAAO,QAASurD,GAC3BtzE,KAAKggK,aAAehgK,KAAKggK,YAAYj4I,OAAO,QAASurD,GACrDtzE,KAAKmgK,YAAcngK,KAAKmgK,WAAWp4I,OAAO,QAASurD,IAEvDusF,oBAAqB,SAASh+J,EAAO2pF,GACjC,IAAIu4E,EACJliK,EAAQ,QAAUkiK,EAASliK,SAAU,IAAWkiK,EAASA,EAAS/jK,KAAKk8J,YAAY,SACnF,IAAI8H,EAAoBhkK,KAAKg8J,MAAM9E,eAAe1rE,GAC9Cy4E,EAAgBjkK,KAAKg8J,MAAM9E,eAAer1J,GAC9C7B,KAAKosB,QAAQ,gBAAY,EAAQ43I,GACjChkK,KAAKosB,QAAQ,YAAY,EAAM63I,GAC3BpiK,GAAS7B,KAAK+nB,OAAO,eAAehkB,YAAclC,EAAMkC,WACxD/D,KAAK8+J,cAAcj9J,IAG3Bi9J,cAAe,SAASj9J,GACpB,IAAIqiK,EACJriK,EAAQ,QAAUqiK,EAAUriK,SAAU,IAAWqiK,EAAUA,EAAUlkK,KAAK+nB,OAAO,eACjF,IAAIo8I,EAAS,MAAQ,IAAI,QACrB/xF,EAAWpyE,KAAKg8J,MAAM9E,eAAer1J,GACzC7B,KAAKosB,QAAQ,KAAM+3I,EAAQ/xF,GAC3BpyE,KAAKosB,QAAQ,mBAAoB+3I,GACjCnkK,KAAKo+J,oBAAoB+F,IAE7BC,uBAAwB,SAASp/J,EAAU65C,GACvC7+C,KAAK0+J,qBAAsB,EAC3B15J,EAASlG,MAAMkB,KAAM6+C,UACd7+C,KAAK0+J,qBAEhBvhD,eAAgB,SAASt+D,GACrB,IAAIh9C,EAAQg9C,EAAKh9C,MACb2pF,EAAgB3sC,EAAK2sC,cACzB,OAAQ3sC,EAAKj9C,MACT,IAAK,QACD5B,KAAKC,SAAS4+C,GACd7+C,KAAK2jK,uBACL,MACJ,IAAK,MACL,IAAK,MACD3jK,KAAK4hB,SAAM,EACX5hB,KAAKgyB,SAAM,EACXhyB,KAAKokK,uBAAuBpkK,KAAKq+J,mBAAoB,CAACr+J,KAAK+nB,OAAO,iBAClE/nB,KAAK6jK,gBACL7jK,KAAK4+J,mBACL,MACJ,IAAK,iBACD5+J,KAAK6jK,gBACL7jK,KAAKuhK,2BACL,MACJ,IAAK,cACDvhK,KAAKosB,QAAQ,UAAM,EAAQpsB,KAAKg8J,MAAM9E,eAAe1rE,IACrDxrF,KAAKq+J,mBAAmBx8J,GACxB,MACJ,IAAK,YACD7B,KAAKgmB,WAAWwB,YAAY+yI,GAAsB,IAAM/uE,GACxDxrF,KAAK+9J,oBACL/9J,KAAK6jK,gBACL7jK,KAAK4+J,mBACL5+J,KAAK8+J,gBACL,MACJ,IAAK,eACL,IAAK,eACD9+J,KAAK+9J,oBACL/9J,KAAKuhK,2BACL,MACJ,IAAK,QACD1/J,EAAQ7B,KAAK28J,eAAe96J,GAC5B2pF,EAAgBxrF,KAAK28J,eAAenxE,GACpCxrF,KAAK6/J,oBAAoBh+J,EAAO2pF,GAChCxrF,KAAK+nB,OAAO,cAAe,eAAUlmB,GAAS,IAAI9H,KAAK8H,GAAS,IAAI9H,MACpEiG,KAAK8jK,kBAAkBjiK,GACvB7B,KAAKqhJ,gBAAgBx/I,GACrB7B,KAAKC,SAAS4+C,GACd,MACJ,IAAK,cACD7+C,KAAKg8J,MAAMj0I,OAAO,cAAelmB,GACjC,MACJ,IAAK,qBACD7B,KAAKo+J,oBAAsBp+J,KAAKuhE,sBAAsB,sBACtD,MACJ,IAAK,gBACL,IAAK,0BACL,IAAK,eACL,IAAK,kBACDvhE,KAAK4iE,cACL,MACJ,IAAK,iBACD,MACJ,IAAK,aACD5iE,KAAK6jK,gBACL,MACJ,QACI7jK,KAAKC,SAAS4+C,KAG1BwlH,iBAAkB,WACd,OAAOrkK,KAAKg8J,MAAMj0I,OAAO,oBAGjC,eAAkB,aAAcqzI,IACjB,UCz+BA,MCMX,GAAW,OAAMlH,SACjBoQ,GAAkB,OAAMjlG,QAAQ,CAChCE,KAAM,SAASglG,GACXvkK,KAAKukK,QAAUA,GAEnB7nC,aAAc,WACV,OAAO18H,KAAKwkK,SAAWxkK,KAAKwkK,QAAQz8I,OAAOjpB,MAAMkB,KAAKwkK,QAAStkK,YAEnEukK,cAAe,SAAS59I,GACpBA,EAAUA,GAAW,eAAE,SACvB7mB,KAAKwkK,QAAUxkK,KAAK0kK,cAAc79I,GAClC7mB,KAAKwkK,QAAQx+I,WAAWuB,SAASvnB,KAAK2kK,wBAE1CD,cAAe,SAAS79I,GACpB,IAAIV,EAAanmB,KAAK4kK,iBAClBC,EAAgB7kK,KAAK8kK,oBACzB,OAAO9kK,KAAKukK,QAAQn8I,iBAAiBvB,EAASV,EAAY0+I,IAE9DC,kBAAmB,GACnBF,eAAgB,GAChBG,kBAAmB,WACf,MAAO,CACHlpH,KAAM,SAGdx2B,iBAAkB,GAClB2/I,cAAe,OACfC,oBAAqB,OACrBC,iBAAkB,OAClBC,cAAe,SAAS5oK,EAAMlD,GAC1B,IAAIwI,EAAQ,QAAiB1B,MAAM5D,EAAMlD,GACzC,OAAOwI,GAAgB,QAAiB1B,MAAM5D,IAElD6oK,kBAAmB,OACnBC,kBAAmB,WACfrlK,KAAKslK,gBAETC,YAAa,GACbzqC,kBAAmB,WACf,IAAI0qC,EACJ,QAAUA,EAAkBxlK,KAAKylK,mBAAgB,IAAWD,GAA2BA,EAAgBhpC,WAE3GkpC,mBAAoB,WAChB,IAAIn1G,EAAQvwD,KAAKylK,YACjBzlK,KAAKykK,gBACL,IAAIp6C,EAAgB95D,EAAMqsB,WAAW1uD,SACrC,OAAaqyC,IAAI8pD,EAAe,aAChC,OAAahlH,GAAGglH,EAAe,YAAarqH,KAAK2lK,qBAAqBn7I,KAAKxqB,QAE/E4lK,qBAAsB,OACtBC,oBAAqB,OACrBF,qBAAsB,SAAS/hK,GAC3BA,EAAEg3B,kBAEN+pI,oBAAqB,WACjB,OAAO3kK,KAAKylK,YAAY7oF,YAE5B6oF,UAAW,WACP,OAAOzlK,KAAKukK,QAAQ7uC,QAExBowC,oBAAqB,OACrBC,mBAAoB,OACpBT,aAAc,WACVtlK,KAAKwkK,SAAWxkK,KAAKwkK,QAAQz8I,OAAO,QAAS/nB,KAAKgmK,iBAEtDC,wBAAyB,OACzBC,eAAgB,WACZ,OAAO,IAAInsK,MAEfosK,mBAAoB,OACpBC,YAAa,WACLpmK,KAAKukK,QAAQx8I,OAAO,WACpB/nB,KAAKslK,gBAGbe,SAAU,WACN,OAAOrmK,KAAKwkK,QAAQz8I,OAAO,UAE/Bu+I,oBAAqB,WACjB,OAAO,GAEX7kG,QAAS,WACL,IAAIlR,EAAQvwD,KAAKylK,YACbl1G,GACAA,EAAMqsB,WAAWlb,SAGzBskG,aAAc,WACV,OAAI9lK,UAAUtG,OACHoG,KAAKukK,QAAQxuI,UAAUj3B,MAAMkB,KAAKukK,QAASrkK,WAE3CF,KAAKukK,QAAQgC,WAAWznK,MAAMkB,KAAKukK,QAAS,CAAC,aAIjD,MCxFXiC,GAAmB,GAAgBnnG,QAAQ,CAC3CwC,KAAM,WACNmjG,cAAe,WACX,IAAIyB,EAAiB,SAAS7iK,GAC1B,QAAI5D,KAAK+nB,OAAO,YACZnkB,EAAEg3B,kBACK,IAIf,MAAO,CACHyrH,WAAY,WACR,GAAIrmJ,KAAK+nB,OAAO,UACZ,OAAO,GAGfo+H,UAAW,WACP,GAAInmJ,KAAK+nB,OAAO,UACZ,OAAO,GAGfu4H,MAAO,SAAS18I,GACZ,GAAI5D,KAAKukK,QAAQx8I,OAAO,UAAW,CAE/B,GADAnkB,EAAEg3B,iBACE56B,KAAKwkK,QAAQz8I,OAAO,eAAiB/nB,KAAKwkK,QAAQz8I,OAAO,gBAAiB,CAC1E,IAAI2+I,EAAY1mK,KAAK2mK,qBACjBC,EAAoB5mK,KAAKk9E,mBACzB2pF,EAAsB7mK,KAAK8mK,wBAM/B,OALID,GAAuBH,GAAa,aAAeE,GACnD5mK,KAAKgmK,aAAaU,EAAW9iK,GAEjCijK,GAAuB7mK,KAAKukK,QAAQ3rC,QACpC54H,KAAKukK,QAAQ5gB,yBAAyB//I,IAC9BijK,EAER,OAAO,EAGX7mK,KAAKukK,QAAQ5gB,yBAAyB//I,IAE5C4mB,KAAKxqB,MACPsmJ,KAAMmgB,EACNtkI,IAAKskI,IAGbphJ,iBAAkB,SAAS/Z,GACvB,OAAOA,GAAiB,aAE5Bw7J,sBAAuB,KAAM,EAC7BlC,eAAgB,WACZ,OAAO,IAEX+B,mBAAoB,WAChB,OAAO3mK,KAAKwkK,QAAQxI,MAAMj0I,OAAO,kBAErC,sBACI,OAAO/nB,KAAKwkK,SAEhBM,kBAAmB,WACf,IAAIjQ,EAAgB70J,KAAKukK,QAAQx8I,OAAO,iBACxC,OAAO,OAAAttB,EAAA,WAAOuF,KAAKukK,QAAQx8I,OAAO,mBAAoB,CAClDlmB,MAAO7B,KAAKgmK,gBAAkB,KAC9BliH,wBAAyB,KACzBliC,IAAK5hB,KAAKukK,QAAQgC,WAAW,OAC7Bv0I,IAAKhyB,KAAKukK,QAAQgC,WAAW,OAC7BvzG,eAAgBhzD,KAAK+mK,qBAAqBv8I,KAAKxqB,MAC/CylD,YAAazlD,KAAKygK,kBAAkBj2I,KAAKxqB,MACzCwpD,SAAU,KACVqrG,cAAe,eAAWA,GAAiB70J,KAAKwgK,iBAAiB3L,EAAcrqI,KAAKxqB,KAAKukK,UAAY1P,EACrG4G,mBAAoBz7J,KAAKshH,yBAAyB92F,KAAKxqB,MACvD07J,gBAAgB,KAGxB8E,iBAAkB,SAAShoH,GACvB,IAAI70C,EAAO3D,KACX,OAAO,SAAS4/E,GAIZ,OAHA,OAAAnlF,EAAA,WAAOmlF,EAAQ,CACX7yE,UAAWpJ,EAAK4gK,UAEb/rH,EAAKonC,KAGpB0hC,yBAA0B,SAAS19G,GAC/B5D,KAAKk9E,mBAAqB,WAC1Bl9E,KAAKukK,QAAQn4I,QAAQ,mBAAoBxoB,EAAEojK,cAE/CzB,YAAa,SAAS0B,GAClB,IAAIlyG,EAAekyG,EAAalyG,aAC5BmyG,EAAkBlnK,KAAKukK,QAAQx8I,OAAO,mBACtCysC,EAAW,GAuBf,OArBIA,EADA,YAAc0yG,EACH,eAAUA,GAEV,CAAC,SAAU,UAEtB,eAAiBlnK,KAAKukK,QAAQx8I,OAAO,mBAAqB/nB,KAAKmnK,sBAC/DpyG,EAAavjC,QAAQ,CACjBipC,OAAQ,WACRhR,QAAS+K,EAAS,GAClB8F,SAAU,UAAY9F,EAAS,GAAK,SAAWA,EAAS,GACxDxjD,QAAS,CACL61C,cAAe,SAASjjD,GACpBA,EAAEmJ,UAAUq6J,mBAAmB,SAAUpnK,KAAKqnK,eAAe78I,KAAKxqB,QACpEwqB,KAAKxqB,MACPkrD,QAASrM,IACL7+C,KAAKwkK,QAAQ7B,aAAa9jH,IAE9BtiD,KAAM,OAAoBlD,OAAO,8BACjCoF,KAAM,WAIX,OAAAhE,EAAA,YAAO,EAAMwsK,EAAc,CAC9BlyG,aAAcA,EACdP,SAAU,CACNhsC,UAAW,gBAEfjhB,MAAO,UAGf4/J,mBAAoB,WAChB,OAAO,eAAcnnK,KAAKukK,QAAQx8I,OAAO,sBAAuB,IAAU/nB,KAAKukK,QAAQx8I,OAAO,4BAElGs/I,eAAgB,WACZrnK,KAAKukK,QAAQ3rC,QACb54H,KAAKukK,QAAQvxJ,SAEjB+zJ,qBAAsB,SAASnjK,GAC3B,IAAI/B,EAAQ+B,EAAE/B,MACVsmF,EAAYvkF,EAAE4nF,cACd,QAAUitE,SAAS52J,EAAOsmF,IAAc,QAAUm/E,oBAAoBzlK,EAAOsmF,IAG7E,cAAgBnoF,KAAKukK,QAAQx8I,OAAO,mBACpC/nB,KAAKgmK,aAAahmK,KAAKqmK,WAAYziK,EAAE09D,QAG7CgkG,aAAc,WACLtlK,KAAKwkK,SAGVxkK,KAAKwkK,QAAQz8I,OAAO,QAAS/nB,KAAKgmK,iBAEtCG,mBAAoB,WAChBnmK,KAAKk9E,mBAAqB,QACtBl9E,KAAKukK,QAAQx8I,OAAO,WAAa/nB,KAAKwkK,SACtCxkK,KAAKslK,cAAa,IAG1B7E,kBAAmB,SAAS78J,GACxB,IAAI2gK,EAAUvkK,KAAKukK,QACf,cAAgBA,EAAQx8I,OAAO,oBAC/Bw8I,EAAQx8I,OAAO,UAAU,GACzB/nB,KAAKgmK,aAAahmK,KAAKqmK,WAAYziK,EAAE09D,WAIlC,M,0BCtKR,MAAM,GACT,YAAYvH,GACR/5D,KAAKunK,qBAAuB,aAC5BvnK,KAAKwnK,mBAAqB,WAC1BxnK,KAAKynK,eAAiB,OACtBznK,KAAK+5D,UAAY,OAASA,QAAa,IAAWA,EAAYA,EAAY,QAE9E,mBACI,OAAO/5D,KAAK+5D,YAAc,SAAwB/5D,KAAK+5D,YAAc,QAEzE,iBACI,OAAO/5D,KAAK+5D,YAAc,SAAsB/5D,KAAK+5D,YAAc,QAEvE,aACI,OAAO/5D,KAAK+5D,YAAc,SCT3B,SAAS2tG,GAAkBptG,EAAUP,GACxC,GAAI,eAAcO,GAAW,CACzB,IAAI3uC,EAAO,eAAc2uC,EAAS3uC,KAAM2uC,EAASltD,GAC7Cwe,EAAM,eAAc0uC,EAAS1uC,IAAK0uC,EAASh5C,GAC/C,MAAO,CACHqK,KAAM,eAAUA,GAAQA,OAAO,EAC/BC,IAAK,eAAUA,GAAOA,OAAM,GAGpC,IACI4rD,aAAcA,EACdtsD,WAAYA,GACZ,IAAI,GAAgB6uC,GACxB,MAAO,CACHpuC,KAAM6rD,GAAgB,eAAUld,GAAYA,OAAW,EACvD1uC,IAAKV,GAAc,eAAUovC,GAAYA,OAAW,GCE5D,IAAIqtG,GAAwB,oBACxBC,GAA+B,kBAC/BC,GAAgC,4BAChCC,GAA6B,mBAC7BC,GAAsC,4BACtCC,GAA4C,kCAC5CC,GAA6C,mCACjD,MAAM,WAAuB,QACzB,qBACI,OAAO,OAAAxtK,EAAA,WAAOk7G,MAAMC,qBAAsB,CACtCz4C,cAAe,QACfC,WAAW,EACX0+C,cAAe,EACf1wC,eAAe,EACf1iD,MAAO,GACPw/I,aAAa,EACbh9G,QAAS,KACTi9G,uBAAwB,KACxBlrG,iBAAiB,IAGzB,QACI04C,MAAMiB,QACN52G,KAAK+nB,OAAO,qBAAsB/nB,KAAKooK,0BAA0B59I,KAAKxqB,OACtEA,KAAK+nB,OAAO,QAAS/nB,KAAKqoK,kBAAkB79I,KAAKxqB,OAErD,UACI21G,MAAMoM,UACN/hH,KAAKsoK,2BACLtoK,KAAKgmB,WAAWsB,SAASqgJ,IACzB3nK,KAAKuoK,wBACLvoK,KAAKm6G,eACLn6G,KAAKwoK,uBACLxoK,KAAKyoK,oBACLzoK,KAAK0oK,oBACL1oK,KAAK2oK,8BAET,8BACI3oK,KAAK4oK,sBAAwB5oK,KAAKuhE,sBAAsB,0BAE5D,oBACI,OAAal8D,GAAG,eAAErF,KAAKmoB,aAAc,eAAgBvkB,IACjD5D,KAAK6oK,kBAAmB,IAGhC,wBACI,GAAK7oK,KAAK+nB,OAAO,eAAjB,CAGA,IAAI66F,EAAY,gBAAa,OAAgB5iH,KAAK6hE,MAC9CinG,EAAc9oK,KAAKuhE,sBAAsB,WAC7C,OAAahB,IAAI,eAAEvgE,KAAKmoB,aAAcy6F,GACtC,OAAav9G,GAAG,eAAErF,KAAKmoB,aAAcy6F,GAAW,SAAUh/G,GACtDklK,EAAY,CACRxnG,MAAO19D,QAInB,eACI,IAAI8kB,EAAQ1oB,KAAK+nB,OAAO,UAAY,GAChC24F,EAAS,iBACb,eAAE1gH,KAAKipE,WAAWvH,QAClBh5C,EAAMxnB,SAAQ,SAAU6F,GACpB25G,EAASA,EAAOlsC,IAAI,eAAE,SAASltD,SAASwgJ,IAA4Bl+H,OAAO7iC,OAE/E,eAAE/G,KAAKipE,WAAWr/B,OAAO82E,GACzB1gH,KAAK+oK,QAAUroD,EACf1gH,KAAKwzE,SAET,2BACI,eAAE,SAASlsD,SAAS0gJ,IAA2Cp+H,OAAO,eAAE,SAAStiB,SAAS2gJ,KAA6C1gJ,SAAS,eAAEvnB,KAAKmoB,cAE3J,qBAAqB2zF,GACjB,IAAI16G,EAAQpB,KAAKgpK,UAAU,OAASltD,QAAiB,IAAWA,EAAgBA,EAAgB97G,KAAK+nB,OAAO,kBAC5G/nB,KAAKipK,QAAQ,CACTr9I,IAAK5rB,KAAKkpK,iBAAiB9nK,KAE/BpB,KAAKmpK,yBAET,UAAU/nK,GACN,IAAIsnB,EAAQ1oB,KAAK+nB,OAAO,UAAY,GAChCgpF,EAAYroF,EAAM9uB,OACtB,OAAIwH,GAAS2vG,EACFA,EAAY,EAEnB3vG,EAAQ,EACD,EAEJA,EAEX,iBAAiBA,GACb,OAAOugB,KAAKwqF,MAAMnsG,KAAKopK,cAAgBhoK,GAE3C,oBACI,IAAIioK,EAAerpK,KAAKspK,mBACpB1mD,EAAY,gBAAa,OAAgB5iH,KAAK6hE,MAClD,OAAatB,IAAIvgE,KAAKgmB,WAAY48F,EAAWymD,GAC7C,OAAahkK,GAAGrF,KAAKgmB,WAAY48F,EAAWymD,EAAcrpK,KAAKwzH,kBAAkBhpG,KAAKxqB,OAE1F,mBACI,MAAO,IAAM8nK,GAEjB,kBAAkBlkK,GACd5D,KAAK+nB,OAAO,gBAAiB/nB,KAAKupK,kBAAkB3lK,EAAE8lE,gBAE1D,kBAAkBqwC,GACd,OAAO/5G,KAAKq9G,gBAAgBj8G,MAAM24G,GAEtC,gBACI,OAAO/5G,KAAKgmB,WAAWiB,KAAKjnB,KAAKspK,oBAErC,yBACI,IAAIxtD,EAAgB97G,KAAK+nB,OAAO,iBAChC,eAAK/nB,KAAK+oK,SAAS,SAAU3nK,GACzB,eAAEpB,MAAM6jE,YAAYkkG,GAAqCjsD,IAAkB16G,MAGnF,8BACI,MAAO,YAAcy3G,GAAA,KAAQC,OAAOC,YAAc/4G,KAAK6oK,iBAE3D,QAAQj5E,GACJ,IACIhkE,IAAKA,EACLD,KAAMA,GACN+7I,GAAkB93E,GAClBt1B,EAAWt6D,KAAK2tG,eAChBi0C,EAAQ,CACRx0I,EAAGktD,EAAS3uC,KAAOA,EACnBrK,EAAGg5C,EAAS1uC,IAAMA,GAEtB,GAAI5rB,KAAK0/I,eAAiBkC,EAAMx0I,GAAKw0I,EAAMtgI,GAEvC,GADAthB,KAAKwpK,oBAAmB,GACpBxpK,KAAKypK,aAAezpK,KAAK0pK,8BAA+B,CACxD,IAAI/lK,EAAO3D,KACXimH,GAAA,KAAGr5G,KAAK,eAAE5M,KAAKipE,YACfg9C,GAAA,KAAGG,QAAQ,eAAEpmH,KAAKipE,WAAY,CAC1BjP,SAAU,IACVv7D,KAAM,QACN/F,GAAI,CACAkzB,IAAKjK,KAAKI,MAAM6/H,EAAMtgI,IAE1B,WACI,gBAAc,eAAE3d,EAAKslE,YACrBtlE,EAAKgmK,WAAW,CACZ/nB,MAAOA,cAIZ5hJ,KAAKypK,gBAEZzpK,KAAK2pK,WAAW,CACZ/nB,MAAOA,IAKvB,UAAUh+I,GACN,OAAO5D,KAAK4pK,eAAehmK,GAE/B,yBAAyBxC,GACrB,IAAI45F,EAAah7F,KAAK+nB,OAAO,SAASnuB,OACtC,OAAO+nB,KAAKqQ,IAAIrQ,KAAKC,IAAIxgB,EAAO45F,EAAa,GAAI,GAErD,sBAAsB5tF,GAClB,OAAQ,IAAMA,GAAKA,GAAK,GAE5B,6BAA6By8J,GACzB,IAAIC,EAAc9pK,KAAK2tG,eAAe/hF,IAClCm+I,EAA+BF,EAAuB7pK,KAAKopK,cAC3DY,EAAKF,EAAcC,EACvB,GAAI/pK,KAAKiqK,sBAAsBD,GAC3B,OAAOH,EAEX,IAAI9vG,EAAYiwG,EAAK,EAAI,GAAK,EAC1BE,EAAmBlqK,KAAKmqK,yBAAyBN,EAAuB9vG,GAC5E,OAAOmwG,EAEX,qBAAqBL,GACjB,GAAI7pK,KAAK0pK,8BACL,OAAO1pK,KAAKoqK,6BAA6BP,GAE7C7pK,KAAKypK,YAAa,EAClB,IAAIj6C,EAAQxvH,KAAK2tG,eAAe/hF,IAAM5rB,KAAKopK,cAC3C,OAAOznJ,KAAKwqF,MAAMqjB,GAEtB,oBACI,IAAIq6C,EAAuB7pK,KAAK+nB,OAAO,iBACnCmiJ,EAAmBlqK,KAAKqqK,qBAAqBR,GAC7CK,IAAqBL,EACrB7pK,KAAKwoK,qBAAqB0B,GAE1BlqK,KAAK+nB,OAAO,gBAAiBmiJ,GAEjClqK,KAAK6oK,kBAAmB,EAE5B,cACI,IAAI19D,EAAQnrG,KAAK+oK,QAAQtvF,QACzB,OAAO,eAAU0xB,GAErB,cAAcv7D,GACV5vC,KAAKgmB,WAAW69C,YAAY+jG,GAA8Bh4H,GAE9D,aACI,OAAO,eAAE5vC,KAAKmoB,aAAav6B,GAAG,YAElC,0BAA0BiU,EAAO2pF,GAC7BxrF,KAAK4oK,sBAAsB,CACvB/mK,MAAOA,EACP2pF,cAAeA,EACflqB,WAAO,IAGf,mBAAmB3X,GACfgsD,MAAMlF,mBAAmB9mD,GACzB3pD,KAAKooK,0BAA0Bz+G,GAEnC,0BAA0BA,GAClBA,IACA3pD,KAAKsqK,iBAAmBr3J,WAAW,KAC/BjT,KAAKwoK,qBAAqBxoK,KAAK+nB,OAAO,qBAG9C/nB,KAAKuqK,mBAAkB,GAE3B,kBAAkB36H,GACd5vC,KAAKgmB,WAAW69C,YAAYgkG,GAA+Bj4H,GAE/D,wBACI,IAAIksE,EAAgB97G,KAAK+nB,OAAO,iBAC5ByiJ,EAAWxqK,KAAKgpK,UAAUltD,GAC1B0uD,IAAa1uD,EACb97G,KAAKmpK,yBAELnpK,KAAK+nB,OAAO,gBAAiByiJ,GAGrC,eAAe3rH,GACX,OAAQA,EAAKj9C,MACT,IAAK,gBACD5B,KAAKyqK,0BAA0B5rH,EAAKh9C,MAAOg9C,EAAK2sC,eAChDxrF,KAAKwoK,qBAAqB3pH,EAAKh9C,OAC/B,MACJ,IAAK,QACD7B,KAAKm6G,eACLn6G,KAAK0qK,wBACL,MACJ,IAAK,UACL,IAAK,cACD1qK,KAAKuoK,wBACL,MACJ,IAAK,yBACDvoK,KAAK2oK,8BACL,MACJ,QACIhzD,MAAMwH,eAAet+D,IAGjC,WACI4qB,aAAazpE,KAAKsqK,kBAClB30D,MAAMmpB,YAGd,eAAkB,mBAAoB,IACvB,UCrRX6rC,GAAiB,cACjBC,GAAyB,sBACzBC,GAAyB,sBACzBC,GAAkC,sBAClC,GAAwB,oBACxBC,GAAO,CACPzxK,KAAM,OACNupF,SAAU,WACVx1E,KAAM,QAEN29J,GAAc,CACdxxK,KAAM,OACNqD,MAAO,QACPJ,IAAK,MACL8C,MAAO,SAEP0rK,GAAW,QAAO5rG,QAAQ,CAC1B6rG,aAAc,WACV,IAAIrpK,EAAQ7B,KAAK+nB,OAAO,SACpBzuB,EAAO,IAAIS,KAAK8H,GACpB,OAAQA,GAAS2B,MAAMlK,GAAQ0G,KAAKmrK,kBAAoB7xK,GAE5D6xK,gBAAiB,WACb,IAAI7xK,EAAO,IAAIS,KACf,OAAIiG,KAAK+nB,OAAO,UAAYgjJ,GAAKzxK,KACtB,IAAIS,KAAKT,EAAKG,cAAeH,EAAKW,WAAYX,EAAKY,WAEvDZ,GAEXs8G,mBAAoB,WAChB,OAAO,OAAAn7G,EAAA,WAAOuF,KAAKC,WAAY,CAC3B00B,QAAS,GAAY07H,0BACrBz7H,QAAS,GAAY07H,0BACrB7xJ,KAAMssK,GAAKzxK,KACXuI,MAAO,IAAI9H,KACXqxK,mBAAmB,KAG3B1rD,qBAAsB,WAClB,OAAO1/G,KAAKC,WAAW4R,OAAO,CAAC,CAC3B8tG,OAAQ,SAASif,GACb,MAAO,YAAcA,EAAQ7lB,YAEjC/nG,QAAS,CACLo6J,mBAAmB,OAI/BrpD,QAAS,WACL/hH,KAAKC,WACLD,KAAKgmB,WAAWsB,SAASqjJ,IACzB3qK,KAAKqrK,qBAAqBrrK,KAAK+nB,OAAO,SACtC/nB,KAAKsrK,uBAETD,qBAAsB,SAASje,EAAeme,GAC1CvrK,KAAKgmB,WAAWsB,SAASqjJ,GAAiB,IAAMvd,GAChDme,GAAkBvrK,KAAKgmB,WAAWwB,YAAYmjJ,GAAiB,IAAMY,IAEzED,oBAAqB,WACjBtrK,KAAKgmB,WAAW69C,YAAY+mG,GAAwB5qK,KAAK+nB,OAAO,uBAEpEyjJ,SAAU,WACN,OAAOxrK,KAAKyrK,WAEhB5kD,mBAAoB,WAChB7mH,KAAKyrK,UAAY,eAAE,SAASnkJ,SAASujJ,IACrC7qK,KAAK0rK,iBACL1rK,KAAKyrK,UAAUlkJ,SAASvnB,KAAKgmB,aAEjC0lJ,eAAgB,WACP1rK,KAAK2rK,qBACN3rK,KAAK2rK,mBAAqB,eAAE,SAASrkJ,SAASwjJ,KAElD9qK,KAAK2rK,mBAAmBjqG,QACxB1hE,KAAK4rK,uBACL5rK,KAAK6rK,SAAW,GAChB,IAAIloK,EAAO3D,KACX,eAAK2D,EAAKmoK,gBAAgB,SAAUlqK,GAChC,IAAImqK,EAAU,eAAE,SAASxkJ,SAAS5jB,EAAKgoK,oBAAoBrkJ,SAAS,GAAwB,IAAM3jB,EAAKmoK,eAAelqK,GAAMnD,MAC5HkF,EAAKkoK,SAASloK,EAAKmoK,eAAelqK,GAAMnD,MAAQkF,EAAKykB,iBAAiB2jJ,EAAS,GAAgB,CAC3FrjJ,MAAO/kB,EAAKmoK,eAAelqK,GAAMoqK,aACjClwD,cAAen4G,EAAKmoK,eAAelqK,GAAMk6G,cACzC3+C,cAAe,QACfF,iBAAiB,EACjBg1F,QAAS,SAASruJ,GACd,IAAIqoK,EAASroK,EAAEmJ,UACfk/J,EAAOC,eAAc,GACrBvoK,EAAKwoK,iBAAiBxoK,EAAKmoK,eAAelqK,GAAOqqK,EAAOlkJ,OAAO,mBAEnEwqB,MAAO,SAAS3uC,GACZ,IAAIqoK,EAASroK,EAAEmJ,UACfk/J,EAAOC,eAAc,IAEzBhhH,QAAS,SAAStnD,GACd,IAAIqoK,EAASroK,EAAEmJ,UACfk/J,EAAOC,eAAc,GACrBvoK,EAAKwoK,iBAAiBxoK,EAAKmoK,eAAelqK,GAAOqqK,EAAOlkJ,OAAO,kBAC/DpkB,EAAKyoK,gBAAgBzoK,EAAKmoK,eAAelqK,GAAOqqK,EAAOlkJ,OAAO,kBAC9DkkJ,EAAOC,eAAc,IAEzB/D,uBAAwB,SAASvkK,GAC7B,IAAIqoK,EAASroK,EAAEmJ,UACfpJ,EAAKyoK,gBAAgBzoK,EAAKmoK,eAAelqK,GAAOqqK,EAAOlkJ,OAAO,wBAI1EpkB,EAAKgoK,mBAAmBpkJ,SAAS5jB,EAAK6nK,aAE1CI,qBAAsB,SAASntK,GAC3B,IAAIkF,EAAO3D,KACXvB,EAAOA,GAAQkF,EAAKokB,OAAO,QAC3BpkB,EAAKmoK,eAAiB,GACtB,QAAiBvrK,eAAe,GAAYmwJ,YAAYjyJ,IAAOyC,SAAQ,SAAU4B,GAC7Ea,EAAK0oK,oBAAoBvpK,OAGjCupK,oBAAqB,SAASzqG,GAgB1B,IAfA,IAAIqvF,EAAgB,GAAYC,qBAAqBtvF,GACjD0qG,EAAatsK,KAAKusK,iCAAiC3qG,GACnDvtC,EAAai4I,EAAWj4I,WACxBC,EAAWg4I,EAAWh4I,SACtBz0B,EAAYoxJ,EAAcpxJ,UAC1B2sK,EAAUxsK,KAAKysK,kBACftrG,EAAS,CACT1iE,KAAMmjE,EACNsmE,SAAU+oB,EAAc1B,OACxBmd,WAAY,GACZV,aAAc,GACdW,SAAU,SAAS9qK,GACf,OAAOA,EAAMovJ,EAAc/9E,UAAY7+C,IAGtC54B,EAAI44B,EAAY54B,GAAK64B,EAAU74B,IACpC0lE,EAAOurG,WAAWzpK,KAAKxH,GACvB0lE,EAAO6qG,aAAa/oK,KAAKpD,EAAUpE,EAAG+wK,IAE1CrrG,EAAO26C,cAAgB36C,EAAOwrG,SAASH,GACvCxsK,KAAK8rK,eAAelqG,GAAiBT,GAEzCgrG,iBAAkB,SAASS,GACvB,IAAIC,EAAeD,GAAiB5sK,KAAK6rK,SAASe,EAAcnuK,MAChE,eAAKuB,KAAK6rK,UAAU,WAChB7rK,KAAKuqK,kBAAkBvqK,OAAS6sK,OAGxCC,uBAAwB,WACpB,IAAInpK,EAAO3D,KACX,eAAKA,KAAK6rK,UAAU,SAAUptK,GAC1B,IAAIsuK,EAAeppK,EAAKmoK,eAAertK,GAAMkuK,SAAShpK,EAAK8oK,mBAC3DzsK,KAAK+nB,OAAO,gBAAiBglJ,OAGrCX,gBAAiB,SAASH,EAAQnwD,GAC9B,GAAIA,IAAkBmwD,EAAOnwD,cAAe,CACxC,IAAIkxD,EAAcf,EAAOS,WAAW5wD,GAChCosB,EAAW+jC,EAAO/jC,SAClBg5B,EAAe,IAAInnK,KAAKiG,KAAKysK,mBAC7BxrK,EAAcigK,EAAahnK,UAC3By6B,EAAU30B,KAAK+nB,OAAO,WACtB6M,EAAU50B,KAAK+nB,OAAO,WACtBkkJ,EAAOxtK,OAASusK,GAAYnuK,MAC5BoE,EAAc0gB,KAAKC,IAAI3gB,EAAa,GAAY6vJ,eAAeoQ,EAAaznK,cAAeuzK,IACpFf,EAAOxtK,OAASusK,GAAYxxK,OACnCyH,EAAc0gB,KAAKC,IAAI3gB,EAAa,GAAY6vJ,eAAekc,EAAa9L,EAAajnK,cAE7FinK,EAAa1rI,QAAQv0B,GACrBigK,EAAah5B,GAAU8kC,GACvB,IAAIzO,EAAiB,QAAUL,cAAcgD,EAAcvsI,EAASC,GACpEssI,EAAe,GAAYnQ,WAAWwN,EAAgB2C,EAAc,QACpEA,EAAe,QAAUhD,cAAcgD,EAAcvsI,EAASC,GAC9D50B,KAAK+nB,OAAO,QAASm5I,GACrB+K,EAAOnwD,cAAgBA,EAEvBmwD,EAAOxtK,OAASusK,GAAYxxK,MAC5BwG,KAAKitK,kBAELhB,EAAOxtK,OAASusK,GAAYnuK,QAC5BmD,KAAKktK,eAAelC,GAAYvuK,KAChCuD,KAAKktK,eAAelC,GAAYzrK,SAGxC2tK,eAAgB,SAASC,GACrB,IAAIlB,EAASjsK,KAAK6rK,SAASsB,GAC3B,GAAIlB,EAAQ,CACRjsK,KAAKqsK,oBAAoBc,GACzB,IAAIC,EAAeptK,KAAK8rK,eAAeqB,GACnCA,IAAenC,GAAYvuK,KAAO2wK,EAAapB,aAAavqJ,aAAewqJ,EAAOlkJ,OAAO,SAAStG,YAClGwqJ,EAAOlkJ,OAAO,CACVW,MAAO0kJ,EAAapB,aACpBlwD,cAAesxD,EAAatxD,kBAK5C2wD,gBAAiB,WACb,IAAID,EAAUxsK,KAAKkrK,eACfv2I,EAAU30B,KAAK+nB,OAAO,WACtB6M,EAAU50B,KAAK+nB,OAAO,WAC1B,OAAO,QAAUm2I,cAAcsO,EAAS73I,EAASC,IAErD23I,iCAAkC,SAAS3qG,GACvC,IAAI4qG,EAAUxsK,KAAKysK,kBACf93I,EAAU30B,KAAK+nB,OAAO,WACtB6M,EAAU50B,KAAK+nB,OAAO,WACtBslJ,EAAU,QAAUnU,SAASsT,EAAS73I,GACtC24I,EAAWD,GAAWb,EAAQvyK,aAAe06B,EAAQ16B,WACrDszK,EAAU,QAAUrU,SAASsT,EAAS53I,GACtC44I,EAAWD,GAAWf,EAAQvyK,aAAe26B,EAAQ36B,WACrDwzK,EAAUH,GAAYd,EAAQtyK,YAAcy6B,EAAQz6B,UACpDwzK,EAAUF,GAAYhB,EAAQtyK,YAAc06B,EAAQ16B,UACpD+2J,EAAgB,GAAYC,qBAAqBtvF,GACjDvtC,EAAa48H,EAAc58H,WAC3BC,EAAW28H,EAAc38H,SA0B7B,OAzBIstC,IAAkBopG,GAAYxxK,OAC9B66B,EAAaM,EAAQl7B,cACrB66B,EAAWM,EAAQn7B,eAEnBmoE,IAAkBopG,GAAYnuK,QAC1BwwK,IACAh5I,EAAaM,EAAQ16B,YAErBszK,IACAj5I,EAAWM,EAAQ36B,aAGvB2nE,IAAkBopG,GAAYvuK,MAC9B63B,EAAW,GAAYw8H,eAAe0b,EAAQ/yK,cAAe+yK,EAAQvyK,YACjEozK,GAAWC,IACXj5I,EAAaM,EAAQz6B,WAErBqzK,GAAWC,IACXl5I,EAAWM,EAAQ16B,YAGvB0nE,IAAkBopG,GAAYzrK,QAC9B80B,EAAao5I,EAAU94I,EAAQx6B,WAAak6B,EAC5CC,EAAWo5I,EAAU94I,EAAQz6B,WAAam6B,GAEvC,CACHD,WAAYA,EACZC,SAAUA,IAGlB24I,gBAAiB,WACbjtK,KAAKktK,eAAelC,GAAYnuK,OAChCmD,KAAKktK,eAAelC,GAAYvuK,KAChCuD,KAAKktK,eAAelC,GAAYzrK,QAEpC49G,eAAgB,SAASt+D,GACrB,OAAQA,EAAKj9C,MACT,IAAK,UACL,IAAK,UACL,IAAK,OACD5B,KAAK0rK,iBACL1rK,KAAKqrK,qBAAqBxsH,EAAKh9C,MAAOg9C,EAAK2sC,eAC3C,MACJ,IAAK,UACDxrF,KAAKC,SAAS4+C,GACVA,EAAKh9C,OACL7B,KAAK0rK,iBAET,MACJ,IAAK,QACD1rK,KAAK+nB,OAAO,QAAS/nB,KAAKkrK,gBAC1BlrK,KAAKitK,kBACLjtK,KAAK8sK,yBACL,MACJ,QACI9sK,KAAKC,SAAS4+C,KAG1Bu3D,OAAQ,WACJp2G,KAAKC,kBACED,KAAK2rK,sBAGpB,eAAkB,aAAcV,IACjB,UC9RX,GAAS,iBAWT0C,GAAmB,GAAgBtuG,QAAQ,CAC3CwC,KAAM,WACNkjG,kBAAmB,WACf,OAAO,OAAAtqK,EAAA,WAAOuF,KAAKC,WAAY,CAC3B2tK,kBAAkB,EAClBC,gBAAiB,OAAoBx0K,OAAO,MAC5C,6BAA6B,KAGrCgsB,iBAAkB,SAAS/Z,GACvB,OAAOA,GAAiB,GAAUolJ,YAAY1wJ,KAAKukK,QAAQx8I,OAAO,UAEtEw9I,YAAa,SAASpkG,GAClB,MAAO,CACHpM,aAAc/0D,KAAKukK,QAAQuJ,2BAC3BjnH,cAAesa,EAAOta,cACtBknH,oBAAqB,CAAC,CAClBpuD,OAAQ,CACJl9E,SAAU,WAEdzxB,QAAS,CACLzJ,MAAO,IACPmK,OAAQ,MAEb,CACCiuG,OAAQ,SAASif,GACb,IAAIn8F,EAAWm8F,EAAQn8F,SACvB,MAAO,YAAcA,GAAY,QAAUA,GAE/CzxB,QAAS,CACLzJ,MAAO,OACPmK,OAAQ,SAEb,CACCiuG,OAAQ,SAASquD,GACb,IAAIvrI,EAAWurI,EAASvrI,SACpBsgF,EAAQirD,EAASjrD,MACrB,MAAO,YAActgF,GAAYsgF,GAErC/xG,QAAS,CACLzJ,MAAO,IACPusD,SAAU,OACVD,UAAW,OACXniD,OAAQ,OACR8iD,SAAU,CACNhsC,UAAW,kBAGpB,CACCm3F,OAAQ,CACJl9E,SAAU,MACVsgF,OAAO,GAEX/xG,QAAS,CACLzJ,MAAO,OACPitD,SAAU,CACNoH,GAAI,SACJF,GAAI,SACJpzC,GAAI,SAMxBm8I,cAAe,WACX,GAAI,uBAAUzkK,KAAKukK,QAAQx8I,OAAO,UAAY/nB,KAAKukK,QAAQ0J,iBAAmBjuK,KAAKukK,QAAQx8I,OAAO,YAC1F/nB,KAAKwkK,UACLxkK,KAAKwkK,QAAQx+I,WAAW8B,SACxB9nB,KAAKwkK,QAAU,UAHvB,CAOA,IAAIj0G,EAAQvwD,KAAKylK,YACjB,GAAIzlK,KAAKwkK,QACLxkK,KAAKwkK,QAAQz8I,OAAO/nB,KAAK8kK,yBACtB,CACH,IAAIj+I,EAAU,eAAE,SAASU,SAASgpC,EAAMqsB,YACxC58E,KAAKwkK,QAAUxkK,KAAK0kK,cAAc79I,GAEtC7mB,KAAKwkK,QAAQx+I,WAAWuB,SAASvnB,KAAK2kK,yBAE1CC,eAAgB,WACZ,OAAO,IAEXS,kBAAmB,WACfrlK,KAAKC,WACDD,KAAKwkK,SACLxkK,KAAKwkK,QAAQz8I,OAAO,QAAS/nB,KAAKwkK,QAAQiI,oBAGlD3H,kBAAmB,WACf,MAAO,CACHjjK,MAAO7B,KAAKgmK,gBAAkB,IAAIjsK,KAClC0E,KAAMuB,KAAKukK,QAAQx8I,OAAO,QAC1B4M,QAAS30B,KAAKukK,QAAQgC,WAAW,QAAU,IAAIxsK,KAAK,KAAM,EAAG,GAC7D66B,QAAS50B,KAAKukK,QAAQgC,WAAW,QAAU,IAAIxsK,KAAKA,KAAKg/B,MAAQ,GAAK,GAAUk3H,UAChFjqG,YAAa,WACThmD,KAAKwkK,QAAU,MACjBh6I,KAAKxqB,UAIJ,MCxGXkuK,GAAiB,GAAgB7uG,QAAQ,CACzCwC,KAAM,SACN0jG,YAAa,SAAS0B,GAClB,OAAO,OAAAxsK,EAAA,WAAO,GAAIwsK,EAAc,CAC5B1/J,MAAO,UAGf49J,cAAe,SAAS5oK,GACpB,OAAKA,EAGD,aAAeyD,KAAKukK,QAAQx8I,OAAO,QAC5B,IAAIhuB,KAAKwC,EAAKpB,QAAQ,KAAM,KAAKA,QAAQ,IAAK,KAAKU,MAAM,KAAK,IAElE,GAAUg1J,uBAAuBt0J,GAL7B,MAOfmpK,mBAAoB,OACpBd,eAAgB,OAChBE,kBAAmB,OACnBqJ,gBAAiB,WACb,IAAI1vK,EAAOuB,KAAKukK,QAAQx8I,OAAO,QAM/B,OALK,GAAUqoI,kBAAkBptJ,SAASvE,GAE/B,aAAeA,GAAS,uBAAUA,KACzCA,EAAO,kBAFPA,EAAO,OAIJA,GAEXymK,iBAAkB,WACd,IAAIkJ,EAAiBpuK,KAAKukK,QAAQ8J,UAAU,YACxCx1D,GAAA,KAAQC,OAAOw1D,SAAWF,GAC1BA,EAAe/oK,GAAG,QAAS,WACvBrF,KAAKukK,QAAQviB,SAAStkJ,IAAI,GAAG6wK,SAC/B/jJ,KAAKxqB,QAGf+kK,kBAAmB,WACf,MAAO,CACHlpH,KAAM77C,KAAKmuK,oBAGnB9oJ,iBAAkB,SAAS/Z,GACvB,IAAI7M,EAAOuB,KAAKmuK,kBAChB,OAAO7iK,GAAiB,GAAUolJ,YAAYjyJ,IAElD2mK,kBAAmB,SAASxiB,GACxBA,EAAO5hF,KAAK,CACRp/C,IAAK,GAAkB+/D,cAAc3hF,KAAKukK,QAAQgC,WAAW,OAAQ,cACrEv0I,IAAK,GAAkB2vD,cAAc3hF,KAAKukK,QAAQgC,WAAW,OAAQ,mBAIlE,M,aC/BXiI,GAAY,SACZC,GAAe,UACfC,GAAiB,cACjBC,GAAoB,gBACpBC,GAAc,CACd/9J,IAAK,WACLw9D,IAAK,aAELwgG,GAAc,CACdh+J,IAAK,WACLw9D,IAAK,aAELygG,GAAS,EACTC,GAA2B,CAC3B50G,MAAO,aACPh4B,IAAK,WACL6sI,OAAQ,SACR,gBAAiB,gBACjB,eAAgB,gBAEhBC,GAAuB,CACvB90G,MAAO,aACPh4B,IAAK,WACL6sI,OAAQ,SACRE,QAAS,WAETC,GAAqB,CACrBt+J,IAAK,MACLw9D,IAAK,UAEL+gG,GAAc,CAACvoJ,EAAS47H,EAAM5gJ,KAG9B,GAFAA,EAAQ,eAAmB4gJ,EAAM5gJ,GACjCglB,EAAQyjD,MAAM,eAAUm4E,IAAS5gJ,GAC5B,iBAAa,CACd,GAAI,KAAOA,IAAU,eAAUA,GAC3B,OAEJ,IAAIwtK,EAAU,gBAAU5sB,GACpB6sB,EAAYD,EAAU,KAAOxtK,EAAQ,IACpCglB,EAAQ6jD,WAAWJ,MAEbzjD,EAAQ6jD,WAAWJ,MAAMzoE,MAAMvD,QAAQgxK,GAAa,IAC3DzoJ,EAAQ6jD,WAAWJ,MAAMzoE,OAAS,IAAMytK,GAFxCzoJ,EAAQk6C,aAAa,QAASuuG,KAMtCC,GAAqB,QACrBC,GAAe,YAAcD,GAC7BE,GAAoB,uBACpBC,GAAoB,CACpB7+J,IAAK,SACLw9D,IAAK,UAELshG,GAAyB,CACzB9+J,IAAK,CACDjP,KAAM,QACNsxE,OAAQ,OACRq8E,OAAQ,QAEZlhF,IAAK,CACDzsE,KAAM,SACNsxE,OAAQ,OACRq8E,OAAQ,SAGZqgB,GAA0B,CAC1B/+J,IAAK8+J,GAAuBthG,IAC5BA,IAAKshG,GAAuB9+J,KAE5Bg/J,GAA0B,CAC1Bh/J,IAAK,aACLw9D,IAAK,aAELyhG,GAA2B,CAC3Bj/J,IAAK,cACLw9D,IAAK,gBAEL0hG,GAAgC,CAChCl/J,IAAK,YACLw9D,IAAK,cAEL2hG,GAAiC,CACjCn/J,IAAK,eACLw9D,IAAK,eAEL4hG,GAAuB,CACvBC,WAAY,cACZC,YAAa,cAEjB,MAAM,WAAgB,QAClB,eAAetuK,EAAOgwE,GAClB8jC,MAAMy6D,eAAevuK,GACjB,eAAUgwE,IACV7xE,KAAKqwK,SAASC,2BAA2B,CACrC1uK,KAAM,UACNguC,MAAO/tC,EACPs/H,SAAUtvD,KAK1B,MAAM,GACF,YAAY7rD,EAAU+B,GAClB/nB,KAAKojE,UAAYp9C,EACjBhmB,KAAKuwK,QAAUxoJ,EACf/nB,KAAKwwK,SAAW,OAChBxwK,KAAKwzE,OAAS,OAElB,YACIxzE,KAAKojE,UAAU33C,IAAI,CACfkqD,QAAS,eAAgB,iBAAmB,SAEhDy5F,GAAYpvK,KAAKojE,UAAU1lE,IAAI,GAAI,gBAAiByxK,GAAmBnvK,KAAKuwK,QAAQ,eAExF,cACIvwK,KAAKojE,UAAU33C,IAAI,CACfglJ,eAAgBzwK,KAAK0wK,qBAG7B,mBACI,IAAIC,EAAQ3wK,KAAKuwK,QAAQ,SACzB,OAAOI,KAAS5B,GAA2BA,GAAyB4B,GAASA,EAEjF,mBACI3wK,KAAKojE,UAAU33C,IAAI,CACfmlJ,WAAY5wK,KAAK6wK,0BAGzB,wBACI,IAAIC,EAAa9wK,KAAKuwK,QAAQ,cAC9B,OAAOO,KAAc7B,GAAuBA,GAAqB6B,GAAcA,EAEnF,YAAYpwD,GACR,IAAIqwD,EAAiB,eAAgB,iBACjCh3G,EAAY/5D,KAAKuwK,QAAQ,aAC7B,eAAK7vD,GAAQ,WACT,IAAIvV,EAAQ,eAAEnrG,MACV+G,EAAOokG,EAAMhlG,KAAKwoK,IACtBxjE,EAAM1/E,IAAI,CACNkqD,QAASo7F,EAAiB,SAC3BtlJ,IAAIojJ,GAAY90G,GAAYhzD,EAAKiqK,SAAW,QAAQvlJ,IAAImjJ,GAAY70G,GAAYhzD,EAAKkqK,SAAW,KACnG7B,GAAYjkE,EAAMztG,IAAI,GAAI,YAAaqJ,EAAKmqK,UAAY,GACxD9B,GAAYjkE,EAAMztG,IAAI,GAAI,WAAYqJ,EAAKyoH,OAC3C4/C,GAAYjkE,EAAMztG,IAAI,GAAI,aAAc,eAAUqJ,EAAKoqK,QAAUpqK,EAAKoqK,OAASrC,IAC/E3jE,EAAM9jC,WAAW+pG,KAAK,CAACryK,EAAGk4G,KACtB,eAAEA,GAAaxrF,IAAI,CACflkB,MAAO,OACPmK,OAAQ,OACRikE,QAAS,eAAgB,iBAAmB,OAC5C07F,UAAW,IAEfjC,GAAYn4D,EAAa,WAAY,GACrCm4D,GAAYn4D,EAAa,gBAAiB,eAAEA,GAAa,GAAG3sC,MAAMgnG,eAAiB,gBAKnG,MAAM,GACF,YAAYtrJ,EAAU+B,GAClB/nB,KAAKojE,UAAYp9C,EACjBhmB,KAAKuwK,QAAUxoJ,EAEnB,YACI/nB,KAAKojE,UAAU33C,IAAI,CACf8lJ,SAAU,EACVC,WAAY9B,GAAkB1vK,KAAKuwK,QAAQ,cAC3CkB,cAAe,QAEnB,OAAalxG,IAAIvgE,KAAKojE,UAAWosG,IACjC,OAAanqK,GAAGrF,KAAKojE,UAAWosG,GAAcxvK,KAAKwzE,OAAOhpD,KAAKxqB,OAEnE,cACI,IAAI0gH,EAAS1gH,KAAK+oK,QAClB,GAAKroD,EAAL,CAGA,IAAIiwD,EAAQ3wK,KAAKuwK,QAAQ,SACrBmB,EAAgB1xK,KAAK0xK,cACrB33G,EAAY/5D,KAAKuwK,QAAQ,aACzBoB,EAAUhC,GAAuB51G,GAAWmZ,OAAOlzE,KAAKojE,WACxDusD,EAAYgiD,EAAUD,EACtB/vI,EAAQ,EAEZ,OADA3hC,KAAK4xK,iBAAiBlxD,EAAQ3mD,EAAW,GACjC42G,GACJ,IAAK,QACD,MACJ,IAAK,MACDhvI,EAAQguF,EACRjP,EAAOjnC,QAAQhuD,IAAIzrB,KAAK6xK,kBAAkBhC,GAAwB91G,IAAap4B,GAC/E,MACJ,IAAK,SACDA,EAAQ,GAAKguF,EACbjP,EAAOjnC,QAAQhuD,IAAIzrB,KAAK6xK,kBAAkBhC,GAAwB91G,IAAap4B,GAC/E++E,EAAOx5F,OAAOuE,IAAIzrB,KAAK6xK,kBAAkB/B,GAAyB/1G,IAAap4B,GAC/E,MACJ,IAAK,gBACDA,EAAQ,GAAKguF,GAAajP,EAAO9mH,OAAS,GAC1CoG,KAAK4xK,iBAAiBlxD,EAAQ3mD,EAAWp4B,GACzC++E,EAAOjnC,QAAQhuD,IAAIzrB,KAAK6xK,kBAAkBhC,GAAwB91G,IAAa,GAC/E2mD,EAAOx5F,OAAOuE,IAAIzrB,KAAK6xK,kBAAkB/B,GAAyB/1G,IAAa,GAC/E,MACJ,IAAK,eACDp4B,EAAQ,GAAKguF,EAAYjP,EAAO9mH,OAChCoG,KAAK4xK,iBAAiBlxD,EAAQ3mD,EAAWp4B,KAGrD,iBAAiB++E,EAAQ3mD,EAAWp4B,GAChC++E,EAAOj1F,IAAIzrB,KAAK6xK,kBAAkBhC,GAAwB91G,IAAap4B,GAAOlW,IAAIzrB,KAAK6xK,kBAAkB/B,GAAyB/1G,IAAap4B,GAEnJ,mBACI,IAAI++E,EAAS1gH,KAAK+oK,QAClB,GAAKroD,EAAL,CAGA,IAAIowD,EAAa9wK,KAAKuwK,QAAQ,cAC1Bx2G,EAAY/5D,KAAKuwK,QAAQ,aACzBx+J,EAAO69J,GAAwB71G,GAAWmZ,OAAOlzE,KAAKojE,WACtDz/D,EAAO3D,KACX,OAAQ8wK,GACJ,IAAK,QACD,MACJ,IAAK,MACD,eAAKpwD,GAAQ,WACT,IAAIvV,EAAQ,eAAEnrG,MACV8xK,EAAWlC,GAAwB71G,GAAWmZ,OAAOi4B,GACrDxpE,EAAQ5vB,EAAO+/J,EACnB3mE,EAAM1/E,IAAI9nB,EAAKkuK,kBAAkB9B,GAA8Bh2G,IAAap4B,MAEhF,MACJ,IAAK,SACD,eAAK++E,GAAQ,WACT,IAAIvV,EAAQ,eAAEnrG,MACV8xK,EAAWlC,GAAwB71G,GAAWmZ,OAAOi4B,GACrDxpE,EAAQ,IAAM5vB,EAAO+/J,GACzB3mE,EAAM1/E,IAAI9nB,EAAKkuK,kBAAkB9B,GAA8Bh2G,IAAap4B,GAAOlW,IAAI9nB,EAAKkuK,kBAAkB7B,GAA+Bj2G,IAAap4B,MAE9J,MACJ,IAAK,UACD++E,EAAOj1F,IAAI9nB,EAAKkuK,kBAAkB9B,GAA8Bh2G,IAAa,GAAGtuC,IAAI9nB,EAAKkuK,kBAAkB7B,GAA+Bj2G,IAAa,GAAGtuC,IAAImkJ,GAAwB71G,GAAWn4D,KAAM,UAGnN,kBAAkBC,GACd,OAAK7B,KAAKuwK,QAAQ,eAGXN,GAAqBpuK,IAFjBA,EAIf,YAAY6+G,GACR1gH,KAAK+oK,QAAUroD,EACf,IAAI3mD,EAAY/5D,KAAKuwK,QAAQ,aACzBwB,EAAa,EACbC,EAAsB,EACtBC,EAAgB,EACpB,eAAKvxD,EAAQ,CAAC3hH,EAAGgI,KACb,IAAIokG,EAAQ,eAAEpkG,GACdokG,EAAM1/E,IAAI,CACNkqD,QAAS,eACT87F,cAAe,QAEnB9B,GAAuB51G,GAAWw1F,OAAOpkD,EAAO,QAChDA,EAAM3jF,YAAYioJ,IAClB,IAAI3vF,EAAWqrB,EAAMhlG,KAAKwoK,IACtBn/C,EAAQ1vC,EAAS0vC,OAAS,EAC1Bz9G,EAAO/R,KAAKkyK,UAAU/mE,GACtBgmE,EAAS,eAAUrxF,EAASqxF,QAAUrxF,EAASqxF,OAASrC,GAC5DiD,GAAcviD,EACdwiD,GAAuBb,EAASp/J,EAChCkgK,GAAiBlgK,IAErB,IAAIogK,EAAgBnyK,KAAKoyK,WAAaH,EAClCH,EAAW3mE,IACX,IAAIrrB,EAAWqrB,EAAMhlG,KAAKwoK,IACtB58J,EAAO/R,KAAKkyK,UAAU/mE,GACtBknE,EAASF,GAAiB,EAAIryF,EAAS0vC,OAAS,GAAK,eAAU1vC,EAASqxF,QAAUrxF,EAASqxF,OAASrC,IAAU/8J,EAC9GugK,EAAcH,GAAiB,EAAIJ,EAAaC,EAChDrwI,EAAQ2wI,EAAc3wJ,KAAKwqF,MAAMgmE,EAAgBE,EAASC,GAAe,EAC7E,OAAOvgK,EAAO4vB,GAEd+vI,EAAgB,EACpB,eAAKhxD,EAAQ,CAAC3hH,EAAGgI,KACb,IAAIokG,EAAQ,eAAEpkG,GACV+4E,EAAW,eAAE/4E,GAAMZ,KAAKwoK,IACxB58J,EAAO+/J,EAAS3mE,GACpBumE,GAAiB3/J,EACjBo5F,EAAM1/E,IAAIojJ,GAAY90G,GAAY+lB,EAASkxF,SAAW,QAAQvlJ,IAAImjJ,GAAY70G,GAAY+lB,EAASmxF,SAAW,KAAKxlJ,IAAIkkJ,GAAuB51G,GAAWn4D,KAAMmQ,GAC/Jo5F,EAAM7jF,SAASmoJ,MAEnBzvK,KAAK0xK,cAAgBA,EAEzB,UAAU3qK,GACN,IAAI+4E,EAAW,eAAE/4E,GAAMZ,KAAKwoK,IAC5B,OAAO,MAAQ7uF,EAASoxF,SAAW,EAAI,SAAWpxF,EAASoxF,SAAWlxK,KAAKuyK,aAAaxrK,GAAQ/G,KAAKwyK,WAAW1yF,EAASoxF,UAE7H,aAAanqK,GACT,OAAO4oK,GAAuB3vK,KAAKuwK,QAAQ,cAAcr9F,OAAO,eAAEnsE,IAEtE,WAAWgL,GACP,OAAOpY,OAAOoY,GAAMsgB,MAAM,QAAU,IAAMkxC,WAAWxxD,GAAQ/R,KAAKyyK,cAAgB1gK,EAEtF,SAASlQ,GACL,IAAK3B,UAAUtG,OAEX,OADAoG,KAAKyyK,cAAgBzyK,KAAKyyK,eAAiBzyK,KAAK0yK,iBACzC1yK,KAAKyyK,cAEhBzyK,KAAKyyK,cAAgB5wK,EAEzB,iBACI,IAAI5C,EAAS,EAIb,OAHA,eAAKe,KAAK+oK,QAAS,CAAChqK,EAAGgI,KACnB9H,GAAUe,KAAKkyK,UAAUnrK,KAEtB9H,EAEX,WACIe,KAAKoyK,SAASzC,GAAuB3vK,KAAKuwK,QAAQ,cAAcr9F,OAAOlzE,KAAKojE,YAEhF,SACI,GAAKpjE,KAAK+oK,UAAW/oK,KAAKojE,UAAUx1E,GAAG,WAAvC,CAGAoS,KAAK+oK,QAAQ/4C,SACbhwH,KAAKwwK,WACLxwK,KAAKojE,UAAUx5B,OAAO5pC,KAAK+oK,SAC3B/oK,KAAK2yK,YAAY3yK,KAAK+oK,SACtB/oK,KAAK4yK,cACL5yK,KAAK6yK,mBACL,IAAIhsJ,EAAU7mB,KAAKojE,UAAU1lE,IAAI,GACjCsC,KAAK+oK,QAAQ9hJ,KAAKwnJ,IAAc2C,MAAK,WAC7BvqJ,IAAY,eAAE7mB,MAAMkuB,SAASjB,QAAQwhJ,IAAc/wK,IAAI,IACvD,OAAao1K,eAAe9yK,KAAMwvK,SAKlD,MAAM,WAAY,QACd,qBACI,OAAO,OAAA/0K,EAAA,WAAOk7G,MAAMC,qBAAsB,CACtC77C,UAAW,MACX42G,MAAO,QACPG,WAAY,UACZhuH,oBAAoB,EACpB+B,mBAAmB,EACnBkuH,wBAAoB,EACpBC,gBAAiB,OACjBC,YAAQ,IAGhB,aACI,OAAOvE,GAEX,eACI,OAAOC,GAEX,gBACI,OAAO3uK,KAAKm2G,iBAAiB9uC,SAASrnE,KAAK8yH,iBAE/C,QACInd,MAAMiB,QACN52G,KAAKgmB,WAAWsB,SAAS,GAAGzV,OAAO28J,GAAW,KAAK38J,OAAO7R,KAAK+nB,OAAO,qBACtE/nB,KAAKkzK,cACLlzK,KAAKmzK,gBAET,cACInzK,KAAKozK,QAAU,aAAepzK,KAAK+nB,OAAO,mBAAqB,IAAI,GAAuB/nB,KAAKgmB,WAAYhmB,KAAK+nB,OAAOyC,KAAKxqB,OAAS,IAAI,GAAmBA,KAAKgmB,WAAYhmB,KAAK+nB,OAAOyC,KAAKxqB,OAElM,gBACIA,KAAKizK,OAASjzK,KAAK+nB,OAAO,WAAa,GAE3C,mBACI,OAAO/nB,KAAK+nB,OAAO,aAAsB/nB,KAAKizK,OAAOr5K,OAEzD,iBAAiBuxG,EAAOhqC,GACpBnhE,KAAKizK,OAAOhwK,KAAK,CACbkoG,MAAOA,EACPhqC,OAAQA,IAGhB,sBACI,OAAOnhE,KAAKizK,OAAOtxI,QAEvB,cACI3hC,KAAKgmB,WAAWsB,SAASknJ,IACzBxuK,KAAKozK,QAAQC,YACb19D,MAAM2C,cACNt4G,KAAKszK,eACLtzK,KAAKuzK,iBAET,iBACIvzK,KAAKwzK,oBAAsBxzK,KAAKuhE,sBAAsB,sBAE1D,eACIvhE,KAAKozK,QAAQR,cACb5yK,KAAKozK,QAAQP,mBAEjB,aAAanqJ,GACT1oB,KAAKozK,QAAQ5C,WACb76D,MAAMwE,aAAazxF,GACnB,MAAO1oB,KAAKyzK,mBAAoB,CAC5B,IAAI1sK,EAAO/G,KAAK0zK,sBAChB1zK,KAAKooB,iBAAiBrhB,EAAKokG,MAAO,GAAK,OAAA1wG,EAAA,WAAO,CAC1Cu4K,gBAAiBhzK,KAAK+nB,OAAO,mBAC7B4tG,aAAc31H,KAAK+nB,OAAO,gBAC1B4rJ,gBAAiB3zK,KAAK+nB,OAAO,mBAC7B6rJ,WAAY5zK,KAAK+nB,OAAO,cACxB43D,YAAa3/E,KAAK+nB,OAAO,eACzB8rJ,kBAAmB7zK,KAAK+nB,OAAO,qBAC/BouG,eAAgBn2H,KAAK+nB,OAAO,kBAC5BkrJ,OAAQjzK,KAAKizK,QACdlsK,EAAKo6D,SAEZnhE,KAAKozK,QAAQT,YAAY3yK,KAAKq9G,iBAC9B5zC,aAAazpE,KAAK8zK,cAClB9zK,KAAK8zK,aAAe7gK,WAAW,KACtBjT,KAAK+zK,YACN/zK,KAAKozK,QAAQ5/F,SAEjBxzE,KAAK+zK,YAAa,EAClB/zK,KAAK8zK,aAAe,OAG5B,mBAAmBj1H,GACf,IAAIm1H,EAAYn1H,EAAKihC,UAAYjhC,EAAKihC,SAASo4B,KAC/C,OAAI87D,EACOh0K,KAAKi0K,yBAAyBp1H,EAAMm1H,GAExCr+D,MAAMu+D,mBAAmBr1H,GAEpC,uBAAuBA,GACnB,IAAIs1H,EAAYt1H,EAAKihC,SAASs0F,IACzBD,GAGLn0K,KAAKq0K,iBAAiBx1H,EAAKo4D,YAAak9D,GAE5C,sBAAsBx+C,EAAc92E,GAChC,OAAIA,EAAKihC,SAASs0F,IACPz+C,EAAa52E,OAAS42E,EAAa52E,SAAW,iBAElD42D,MAAM2+D,sBAAsB3+C,EAAc92E,GAErD,mBAAmB8K,GACXA,GACA3pD,KAAK86H,oBAGb,oBACQ96H,KAAK8zK,eAGT9zK,KAAK+zK,YAAa,EAClB/zK,KAAKozK,QAAQ5/F,UAEjB,WACI/J,aAAazpE,KAAK8zK,cAClBn+D,MAAMmpB,SAAShgI,MAAMkB,KAAME,WAE/B,mBAAmB6G,EAAMqxH,EAAUv2H,EAAOgwE,GAClC,YAAcumD,GACdp4H,KAAKwzK,oBAAoB,CACrB5xK,KAAMw2H,EACNxoF,MAAO/tC,EACPs/H,UAAU,IAAUtvD,IAG5B8jC,MAAMwiB,mBAAmBpxH,EAAMqxH,EAAUv2H,GAE7C,eAAeg9C,GACX,OAAQA,EAAKj9C,MACT,IAAK,kBACL,IAAK,SACL,IAAK,YACD5B,KAAK4iE,cACL,MACJ,IAAK,QACD5iE,KAAKozK,QAAQR,cACb,MACJ,IAAK,aACD5yK,KAAKozK,QAAQP,mBACb,MACJ,QACIl9D,MAAMwH,eAAet+D,IAGjC,eACI,IAAI7tC,EAAU2kG,MAAM4+D,eAIpB,OAHAvjK,EAAQs/J,2BAA6B1sK,IACjC5D,KAAKwzK,oBAAoB5vK,IAEtBoN,EAEX,UACIhR,KAAK86H,qBAGb,GAAIhd,UAAY,GAChB,eAAkB,QAAS,IACZ,UCvgBX02D,GAAiB,cACjBC,GAAuB,oBACvBC,GAAuB,oBACvBC,GAA2B,wBAC3BC,GAAgC,6BAChCC,GAA0B,uBAC1BC,IAAwB,EACxBC,GAAuB,EACvBC,GAA6B,0BAC7BC,GAAc,SAASC,EAAQC,EAAO/pJ,GACtCgqJ,GAAUF,EAAQC,EAAO/pJ,IAEzBgqJ,GAAY,SAASF,EAAQC,EAAO/pJ,GACpC8pJ,EAAOzpJ,IAAI,YAAa,UAAY0pJ,EAAQ,oBAAsB/pJ,EAAS,QAE3EiqJ,GAAW,QAAOh2G,QAAQ,CAC1Bu2C,mBAAoB,WAChB,OAAO,OAAAn7G,EAAA,WAAOuF,KAAKC,WAAY,CAC3B4B,MAAO,IAAI9H,KAAKA,KAAKg/B,OACrBu8I,iBAAiB,EACjBC,YAAY,EACZC,aAAc,EACdC,iBAAa,KAGrBC,UAAW,WACP,OAAO11K,KAAK+nB,OAAO,UAAY,IAAIhuB,MAEvC68G,MAAO,WACH52G,KAAKC,WACLD,KAAKgmB,WAAWsB,SAASktJ,KAE7BzyD,QAAS,WACL/hH,KAAKC,WACLD,KAAK21K,aACL31K,KAAK41K,eAETD,WAAY,WACR,IAAIE,EAAO,eAAE,SAAStuJ,SAASvnB,KAAKgmB,YAChC0C,EAAQ,GACR1oB,KAAK+nB,OAAO,eACZW,EAAMzlB,KAAK,CACPusH,MAAO,EACP2hD,OAAQ,EACRD,SAAU,OACV/lH,SAAUnrD,KAAK81K,aAAatrJ,KAAKxqB,QAGzC0oB,EAAMzlB,KAAK,CACPusH,MAAO,EACP2hD,OAAQ,EACRD,SAAU,OACV/lH,SAAUnrD,KAAK+1K,aAAavrJ,KAAKxqB,QAErCA,KAAKooB,iBAAiBytJ,EAAM,GAAK,CAC7BnkK,OAAQ,OACRnK,MAAO,OACPwyD,UAAW,MACXrxC,MAAOA,KAGfotJ,aAAc,SAAS/2K,EAAGi3K,EAAI7tJ,GAC1BnoB,KAAKi2K,YAAc,eAAE,SAAS3uJ,SAASqtJ,IACvC30K,KAAKk2K,cAAgB,eAAE,SAAS5uJ,SAAS0tJ,IACzC,IAAIlwJ,EAAa,eAAEqD,GACnBrD,EAAWwC,SAASmtJ,IAAsB7qI,OAAO5pC,KAAKi2K,aAAarsI,OAAO5pC,KAAKk2K,eAC/El2K,KAAKosB,QAAQ,OAAQ,eAAgBtH,IAEzCqxJ,aAAc,WACV,IAAI9oK,EAAOrN,KAAK01K,YACZU,EAAiB/oK,EAAKlT,WAAa,GAAK,IAAMkT,EAAKjT,aAAe,GAAK,GACvEi8K,EAAmBhpK,EAAKjT,aAAe,GAAK,IAChD66K,GAAYj1K,KAAKi2K,YAAaG,EAAgBp2K,KAAK+nB,OAAO,iBAC1DktJ,GAAYj1K,KAAKk2K,cAAeG,EAAkBr2K,KAAK+nB,OAAO,kBAElEuuJ,aAAc,SAASC,GACnB,IAAI7tJ,EAAQ,CAAC,CACT8mG,MAAO,EACP2hD,OAAQ,EACRD,SAAU,OACV/lH,SAAU,IAAMnrD,KAAKw2K,SAASxwJ,YAC/B,CACCwpG,MAAO,EACP2hD,OAAQ,EACRD,SAAU,OACV/lH,SAAU,eAAE,SAAS7jC,SAASstJ,IAA+Br4K,KAAK,QAAiBmF,qBACpF,CACC8tH,MAAO,EACP2hD,OAAQ,EACRD,SAAU,OACV/lH,SAAU,IAAMnrD,KAAKy2K,WAAWzwJ,aAUpC,OARIuwJ,GACA7tJ,EAAMzlB,KAAK,CACPusH,MAAO,EACP2hD,OAAQ,EACRD,SAAU,OACV/lH,SAAU,IAAMnrD,KAAK02K,UAAU1wJ,aAGhC0C,GAEXqtJ,aAAc,WACV,IAAIQ,GAAkBv2K,KAAK+nB,OAAO,mBAMlC,OALA/nB,KAAK22K,eAAeJ,GACpBv2K,KAAK42K,mBACDL,GACAv2K,KAAK62K,qBAEF72K,KAAKooB,iBAAiB,eAAE,SAASd,SAASotJ,IAAuB,GAAK,CACzE36G,UAAW,MACX42G,MAAO,SACPG,WAAY,SACZpoJ,MAAO1oB,KAAKs2K,aAAaC,KAC1BvwJ,YAEP2wJ,eAAgB,SAASJ,GACrB,IAAIvpJ,EAAShtB,KAAKw2K,SAAWx2K,KAAKooB,iBAAiB,eAAE,SAAU,GAAW,OAAA3tB,EAAA,WAAO,CAC7EmnB,KAAM,EACNoQ,IAAKukJ,EAAiB,GAAK,GAC3B10K,MAAO7B,KAAK01K,YAAYv7K,WACxB64D,eAAgBhzD,KAAK82K,uBAAuBtsJ,KAAKxqB,MACjD+2K,kBAAmBC,GAAQh3K,KAAKioJ,iBAAiB+uB,IAClDh3K,KAAKi3K,wBACRjqJ,EAAOZ,QAAQ,QAAS,UAE5B8qJ,MAAO,WACH,OAAQl3K,KAAK+nB,OAAO,oBAAsB,IAAM/nB,KAAK02K,UAAU3uJ,OAAO,UAE1E+uJ,uBAAwB,SAAS5pK,GAC7B,IACIrL,MAAOA,EACPkL,UAAWA,GACXG,EACAg0J,EAAelhK,KAAK01K,YACpBpiG,EAAW,IAAIv5E,KAAKmnK,GACpBiW,EAAWn3K,KAAKo3K,qBAAqBv1K,GACzCkL,EAAUgb,OAAO,QAASovJ,GACtBn3K,KAAKk3K,UACLC,GAAY,IAEhB7jG,EAAS/7C,SAAS4/I,GAClB,GAAUzlB,cAAcp+E,GACxBtzE,KAAK+nB,OAAO,QAASurD,IAEzB8jG,qBAAsB,SAAS73K,GAC3B,IAAI83K,EAAgBr3K,KAAK+nB,OAAO,mBAAqB,GAAK,GAC1D,OAAQsvJ,EAAgB93K,GAAS83K,GAErCT,iBAAkB,WACd,IAAI5pJ,EAAShtB,KAAKy2K,WAAaz2K,KAAKooB,iBAAiB,eAAE,SAAU,GAAW,OAAA3tB,EAAA,WAAO,CAC/EmnB,KAAM,EACNoQ,IAAK,GACLnwB,MAAO7B,KAAK01K,YAAYt7K,aACxB28K,kBAAmBC,GAAQh3K,KAAKioJ,iBAAiB+uB,GACjDhkH,eAAgB0jC,IACZ,IACI70F,MAAOA,EACPkL,UAAWA,GACX2pF,EACA4gF,GAAc,GAAKz1K,GAAS,GAChCkL,EAAUgb,OAAO,QAASuvJ,GAC1B,IAAIjqK,EAAO,IAAItT,KAAKiG,KAAK01K,aACzBroK,EAAK8zJ,WAAWmW,GAChB,GAAU5lB,cAAcrkJ,GACxBrN,KAAK+nB,OAAO,QAAS1a,KAE1BrN,KAAKi3K,wBACRjqJ,EAAOZ,QAAQ,QAAS,YAE5ByqJ,mBAAoB,WAChB,IAAI3/I,EAAc,QAAiB93B,iBAC/B4tB,EAAShtB,KAAK02K,UAAY12K,KAAKooB,iBAAiB,eAAE,SAASd,SAASutJ,IAA0B,cAAW,CACzGnsJ,MAAO,CAAC,CACJ7mB,MAAOizK,GACPv4K,KAAM26B,EAAY,IACnB,CACCr1B,MAAOkzK,GACPx4K,KAAM26B,EAAY,KAEtBnH,UAAW,QACXC,YAAa,OACb+mJ,kBAAmBC,GAAQh3K,KAAKioJ,iBAAiB+uB,GACjDhkH,eAAgBmqC,IACZ,IACIt7F,MAAOA,GACPs7F,EACA59F,EAAQS,KAAK01K,YAAYv7K,WACzBkT,EAAO,IAAItT,KAAKiG,KAAK01K,aACrByB,GAAY53K,EAAQ,GAAKsC,GAAS,GACtCwL,EAAKkqB,SAAS4/I,GACdn3K,KAAK+nB,OAAO,QAAS1a,IAEzBxL,MAAO7B,KAAK01K,YAAYv7K,YAAc,GAAK46K,GAAuBD,GAClEW,YAAaz1K,KAAK+nB,OAAO,iBAE7BiF,EAAOZ,QAAQ,QAAS,SAE5BmrJ,iBAAkB,WACd,IAAIv3K,KAAK+nB,OAAO,mBAAhB,CAGA,IAAIlmB,EAAQ7B,KAAK01K,YACbn2K,EAAQsC,EAAM1H,WACdw0J,EAAOpvJ,GAAS,GAChB+zE,EAAWq7E,EAAOomB,GAAuBD,GAC7C90K,KAAKw3K,yBAAyBx3K,KAAK02K,UAAWpjG,KAElDkkG,yBAA0B,SAASxqJ,EAAQnrB,GACnCmrB,IACAA,EAAOyqJ,6BACPzqJ,EAAOjF,OAAO,QAASlmB,GACvBmrB,EAAOm4H,6BAGf8xB,oBAAqB,WACjB,MAAO,CACHz2B,iBAAiB,EACjBk3B,sBAAuB,SAAS71K,GAC5B,OAAQA,EAAQ,GAAK,IAAM,IAAMA,GAErC4zK,YAAaz1K,KAAK+nB,OAAO,iBAGjC4vJ,gBAAiB,SAASp4K,GACtB,OAAOS,KAAK+nB,OAAO,mBAAqBxoB,EAAQA,EAAQ,IAAM,IAElEq4K,aAAc,WACV,IAAIr4K,EAAQS,KAAK23K,gBAAgB33K,KAAK01K,YAAYv7K,YAClD6F,KAAKw3K,yBAAyBx3K,KAAKw2K,SAAUj3K,GAC7CS,KAAKw3K,yBAAyBx3K,KAAKy2K,WAAYz2K,KAAK01K,YAAYt7K,cAChE4F,KAAKu3K,oBAET3B,YAAa,WACL51K,KAAK+nB,OAAO,eACZ/nB,KAAKm2K,eAETn2K,KAAK43K,gBAETnnE,mBAAoB,SAAS9mD,GACrBA,GACA3pD,KAAK41K,eAGbz4D,eAAgB,SAASt+D,GACrB,OAAQA,EAAKj9C,MACT,IAAK,QACD5B,KAAK41K,cACL51K,KAAKC,SAAS4+C,GACd,MACJ,IAAK,eACD,MACJ,IAAK,kBACL,IAAK,aACL,IAAK,cACD7+C,KAAK4iE,cACL,MACJ,QACI5iE,KAAKC,SAAS4+C,OAI9B,eAAkB,aAAcw2H,IACjB,UC3QX,GAAS,iBAUTwC,GAA2B,IAC3BC,GAAgC,6BAChCC,GAA8B,gCAC9BC,GAA2B,GAAiB34G,QAAQ,CACpDwC,KAAM,mBACNkjG,kBAAmB,WACf,OAAO,OAAAtqK,EAAA,WAAOuF,KAAKC,WAAY,CAC3Bg4K,eAAgB,aAChB/Q,gBAAiB,eACjB,6BAA6B,KAGrCJ,sBAAuB,WACnB,OAAO,QAAUrO,SAASz4J,KAAK2mK,qBAAsB3mK,KAAK08H,aAAa,WAE3Er3G,iBAAkB,SAAS/Z,GACvB,OAAOA,GAAiB,sBAE5B4sK,gBAAiB,WACb,OAAO,QAAiB/0K,eAAenD,KAAKqlB,iBAAiBrlB,KAAKukK,QAAQx8I,OAAO,oBAErF4+I,mBAAoB,WAChB,IAAIwR,EAAWn4K,KAAKC,WACpB,OAAOD,KAAKo4K,gBAAgBD,IAEhC1T,cAAe,WACXzkK,KAAKC,WACLD,KAAKq4K,UAAYr4K,KAAKukK,QAAQn8I,iBAAiB,eAAE,SAAU,GAAU,CACjEvmB,MAAO7B,KAAKgmK,eACZuP,YAAav1K,KAAKs4K,gBAClBhD,gBAAiBt1K,KAAKk4K,kBACtBllH,eAAgBhzD,KAAK+mK,qBAAqBv8I,KAAKxqB,MAC/Cy1K,YAAaz1K,KAAKukK,QAAQx8I,OAAO,iBAErC/nB,KAAKq4K,UAAUjR,mBAAmB,SAAUpnK,KAAKqnK,eAAe78I,KAAKxqB,QAEzEqlK,kBAAmB,WACfrlK,KAAKC,WACL,IAAIswD,EAAQvwD,KAAKylK,YACbl1G,GACAA,EAAM0qD,WAAWp3C,YAAYi0G,GAA+B93K,KAAKu4K,kBAErE9uG,aAAazpE,KAAKw4K,eAClBx4K,KAAKw4K,cAAgBvlK,WAAW,WAC5BjT,KAAKylK,aAAezlK,KAAKylK,YAAYjpC,WACvChyG,KAAKxqB,MAAO,IAElBsmK,oBAAqB,WACjB,IAAImS,EAAiBz4K,KAAKs4K,gBACtBI,EAAsB14K,KAAK24K,qBAC/B,OAAIF,IAAmBC,GACnB14K,KAAK24K,qBAAuBF,OACrB,IAAWC,GAEf14K,KAAKC,YAEhBqlK,aAAc,SAASsT,GACnB,IAAIt/K,EAAO0G,KAAKgmK,eACX1sK,GAASs/K,IACVt/K,EAAO,IAAIS,KACX,GAAY23J,cAAcp4J,IAE9B0G,KAAKC,WACDD,KAAKq4K,YACL/+K,GAAQ0G,KAAKq4K,UAAUtwJ,OAAO,QAASzuB,GACvC0G,KAAKq4K,UAAUtwJ,OAAO,kBAAmB/nB,KAAKk4K,qBAGtDK,eAAgB,WACZ,OAAO,eAAS,KAAWV,IAE/BS,cAAe,WACX,OAAQt4K,KAAKukK,QAAQx8I,OAAO,oBAAsB/nB,KAAKukK,QAAQx8I,OAAO,sBAAwB/nB,KAAKu4K,kBAEvGjC,aAAc,WACV,IAAI5tJ,EAAQ,CAAC,CACT8mG,MAAO,EACP2hD,OAAQ,EACRD,SAAU,OACVtvK,KAAM,aAUV,OARK5B,KAAKs4K,iBACN5vJ,EAAMzlB,KAAK,CACPusH,MAAO,EACP2hD,OAAQ,EACRD,SAAU,OACVtvK,KAAM,SAGP8mB,GAEXg9I,mBAAoB,WAChB1lK,KAAKC,WACLD,KAAK24K,qBAAuB34K,KAAKs4K,gBACjC,IAAIjuD,EAAgBrqH,KAAKylK,YAAY7oF,WACrC58E,KAAK64K,KAAO74K,KAAKukK,QAAQn8I,iBAAiB,eAAE,SAASb,SAAS8iG,GAAgB,GAAK,CAC/EtwD,UAAW,MACX+2G,WAAY,UACZpoJ,MAAO1oB,KAAKs2K,eACZ3gD,aAAc,SAASxvH,EAAM1K,EAAGorB,GAC5B,IAAI/B,EAAa,eAAE,SACnB,OAAQ3e,EAAKvE,MACT,IAAK,WACDkjB,EAAW8kB,OAAO5pC,KAAKwkK,QAAQx+I,YAC3BhmB,KAAKs4K,kBACLt4K,KAAKq4K,UAAUryJ,WAAWsB,SAASywJ,IACnCjzJ,EAAW8kB,OAAO5pC,KAAKq4K,UAAUryJ,aAErC,MACJ,IAAK,OACDlB,EAAW8kB,OAAO5pC,KAAKq4K,UAAUryJ,YACjC,eAAEa,GAASS,SAASywJ,IAE5B,OAAOjzJ,GACT0F,KAAKxqB,QAEXA,KAAK84K,qBAETvT,YAAa,SAAS0B,GAClB,IAAI8R,EAAsB/4K,KAAKC,SAASgnK,GACpChoK,EAAS,OAAAxE,EAAA,WAAOs+K,EAAqB,CACrCxxK,MAAO,OACP8sD,UAAW,WACP,GAAI,aAAer0D,KAAK64K,KAAK9wJ,OAAO,mBAAoB,CACpD,IAAIixJ,EAAgBh5K,KAAKylK,YAAY7oF,WAAW31D,KAAK,sBAAsBwE,IAAI,YAC/EzrB,KAAKq4K,UAAUryJ,WAAWyF,IAAI,WAAYutJ,KAEhDxuJ,KAAKxqB,QAEX,OAAOf,GAEX2mK,qBAAsB,WAClB,OAAO5lK,KAAKq4K,UAAU7B,SAASxwJ,WAAWiB,KAAK,UAEnD6xJ,kBAAmB,WACf,IAAIvU,EAAUvkK,KAAKukK,QACnBvkK,KAAKq4K,UAAU7B,SAASpP,mBAAmB,OAAO,SAAUxjK,GACpDA,EAAE84E,WACF94E,EAAEg3B,iBACF2pI,EAAQvxJ,aAIpB2yJ,qBAAsB,SAAS/hK,GACtB,eAAEA,EAAE0hB,QAAQghD,SAAS,yBACtBtmE,KAAKC,SAASnB,MAAMkB,KAAME,WACrBF,KAAKukK,QAAQ0U,kBACdj5K,KAAKukK,QAAQvxJ,UAIzBolK,gBAAiB,SAAS9+K,GACtB,IAAI+T,EAAOrN,KAAKq4K,UAAUtwJ,OAAO,SAEjC,OADAzuB,EAAKi+B,SAASlqB,EAAKlT,WAAYkT,EAAKjT,aAAciT,EAAKhT,aAAcgT,EAAK/S,mBACnEhB,GAEX+sK,SAAU,WACN,IAAI6S,EACA5/K,EAAO,QAAU4/K,EAAuBl5K,KAAKwkK,QAAQz8I,OAAO,gBAAa,IAAWmxJ,EAAuBA,EAAuBl5K,KAAKwkK,QAAQH,mBAEnJ,OADA/qK,EAAOA,EAAO,IAAIS,KAAKT,GAAQ,IAAIS,KAC5BiG,KAAKo4K,gBAAgB9+K,IAEhCmoE,QAAS,WACLgI,aAAazpE,KAAKm5K,sBAClB1vG,aAAazpE,KAAKw4K,eAClBx4K,KAAKC,cAGE,M,yBClLX,GAAS,iBAoBTm5K,GAAc,OACdC,GAAkB,CAClBz3J,IAAK,IAAI7nB,KAAK,EAAG,EAAG,EAAG,EAAG,GAC1Bi4B,IAAK,IAAIj4B,KAAK,EAAG,EAAG,EAAG,GAAI,KAE3Bu/K,GAAe,GAAgBj6G,QAAQ,CACvCwC,KAAM,OACNmjG,cAAe,WACX,MAAO,CACHvvC,IAAK,WACD,IACIK,OAAQA,EACRmiD,eAAgBA,GAChBj4K,KAAK+nB,SACL+tG,GAAU,cAAgBmiD,GAC1Bj4K,KAAK44H,SAGbtiB,MAAO,OACPgwC,KAAM,OACNnkH,IAAK,SAGb4iI,kBAAmB,WACf,OAAO,OAAAtqK,EAAA,WAAOuF,KAAKC,WAAY,CAC3Bg4K,eAAgB,eAGxB5yJ,iBAAkB,SAAS/Z,GACvB,OAAOA,GAAiB,aAE5Bi6J,YAAa,SAAS0B,GAClB,OAAOA,GAEXZ,SAAU,WACN,IAAIvqD,EAAgB97G,KAAKwkK,QAAQz8I,OAAO,iBACxC,IAAK,IAAM+zF,EACP,OAAO97G,KAAKukK,QAAQx8I,OAAO,SAE/B,IAAI+3D,EAAW9/E,KAAKu5K,aAAaz9D,GACjC,OAAO97G,KAAKw5K,mBAAmB15F,IAEnCmmF,wBAAyB,WACrB,OAAO,GAEXC,eAAgB,WACZ,OAAO,IAAInsK,KAAK,OAEpB+rK,oBAAqB,WACjB9lK,KAAKukK,QAAQzpC,qBAEjB2pC,cAAe,WACXzkK,KAAKC,WACLD,KAAKy5K,iBAET7U,eAAgB,WACZ,OAAO,SAEXE,kBAAmB,WACf,MAAO,CACHnvC,aAAc31H,KAAK05K,sBAAsBlvJ,KAAKxqB,MAC9C2/E,YAAa3/E,KAAK25K,sBAAsBnvJ,KAAKxqB,MAC7CwpD,UAAW,EACXowH,qBAAsB55K,KAAKshH,yBAAyB92F,KAAKxqB,MACzD+1H,cAAe,WAGvBzU,yBAA0B,SAAS19G,GAC/B5D,KAAKukK,QAAQn4I,QAAQ,mBAAoB,IACzCpsB,KAAKukK,QAAQn4I,QAAQ,mBAAoBxoB,EAAEojK,cAE/CyS,cAAe,WACXz5K,KAAKu5K,aAAev5K,KAAK65K,oBACzB75K,KAAKwkK,QAAQz8I,OAAO,QAAS/nB,KAAKu5K,eAEtClU,kBAAmB,WACVrlK,KAAKwkK,UAGVxkK,KAAKwkK,QAAQz8I,OAAO,iBAAkB,MACtC/nB,KAAK85K,2BACD95K,KAAKwkK,QAAQz8I,OAAO,iCACpB/nB,KAAK+5K,oBAAsB9mK,WAAWjT,KAAKg6K,sBAAsBxvJ,KAAKxqB,OAEtEA,KAAKg6K,0BAGbv4G,QAAS,WACLzhE,KAAKC,WACLwpE,aAAazpE,KAAK+5K,sBAEtBzU,aAAc,WACLtlK,KAAKwkK,UAGVxkK,KAAKy5K,gBACLz5K,KAAK85K,2BACL95K,KAAKg6K,0BAETF,yBAA0B,WACtB,IAAIj4K,EAAQ7B,KAAKgmK,eACbiU,EAAYj6K,KAAKk6K,cAAcr4K,IAC9B,IAAMo4K,EACPj6K,KAAKwkK,QAAQz8I,OAAO,gBAAiB,IAErC/nB,KAAKwkK,QAAQz8I,OAAO,gBAAiBkyJ,IAG7CD,sBAAuB,WACnBh6K,KAAKwkK,QAAQ2V,aAAan6K,KAAKwkK,QAAQz8I,OAAO,mBAElDmyJ,cAAe,SAAS5gL,GAEpB,IADA,IAAI2F,GAAU,EACLxD,EAAI,EAAGggC,EAAIz7B,KAAKu5K,aAAa3/K,OAAQ6B,EAAIggC,EAAGhgC,IACjD,GAAIuE,KAAKo6K,eAAe9gL,EAAM0G,KAAKu5K,aAAa99K,IAAK,CACjDwD,EAASxD,EACT,MAGR,OAAOwD,GAEXm7K,eAAgB,SAAS3gG,EAAOx8E,GAC5B,OAAO,eAAOw8E,IAAU,eAAOx8E,IAAWw8E,EAAMt/E,aAAe8C,EAAO9C,YAAcs/E,EAAMr/E,eAAiB6C,EAAO7C,cAEtHy/K,kBAAmB,WACf,IAAIj4J,EAAM5hB,KAAKukK,QAAQgC,WAAW,QAAUvmK,KAAKq6K,iBAAiB,OAC9DroJ,EAAMhyB,KAAKukK,QAAQgC,WAAW,QAAUvmK,KAAKq6K,iBAAiB,OAC9Dx4K,EAAQ7B,KAAKukK,QAAQgC,WAAW,UAAY,KAC5C3kB,EAAQ5vH,EAAMpQ,EACd7gB,EAAU6gB,EAAIxnB,aAAe4F,KAAKukK,QAAQx8I,OAAO,YACrD,OAAI65H,EAAQ,EACD,IAEPA,EAAQ,GAAUoO,UAClBpO,EAAQ,GAAUoO,SAElBnuJ,EAAQ+f,EAAM,GAAUouI,UAG5BpuI,EAAM5hB,KAAKq6K,iBAAiB,OAC5Bz4J,EAAIu/I,WAAWpgK,GACXc,GAAS8f,KAAKiB,IAAI/gB,EAAQmwB,GAAO,GAAUg+H,UAC3CpO,GAAS,GAAK5vH,EAAI73B,WAAawnB,KAAKiB,IAAIoP,EAAI53B,aAAe2G,IAAY,GAAUgvJ,aAL1E/vJ,KAAKs6K,eAAe14J,EAAK,IAAI7nB,KAAK6nB,GAAMggI,KASvD04B,eAAgB,SAASjmJ,EAAY6sI,EAAcqZ,GAC/C,IAAIC,EAAa,GACbjwJ,EAAWvqB,KAAKukK,QAAQx8I,OAAO,YACnC,MAAOm5I,EAAe7sI,GAAckmJ,EAChCC,EAAWv3K,KAAK,IAAIlJ,KAAKmnK,IACzBA,EAAaC,WAAWD,EAAa9mK,aAAemwB,GAExD,OAAOiwJ,GAEXH,iBAAkB,SAAS9xJ,GACvB,IAAIkyJ,EAAgBpB,GAAgB9wJ,GAChC24I,EAAe,IAAInnK,KAAK,eAAciG,KAAKukK,QAAQgC,WAAW,SAAU,IAC5E,OAAO,IAAIxsK,KAAKmnK,EAAaznK,cAAeynK,EAAajnK,WAAYinK,EAAahnK,UAAWugL,EAActgL,WAAYsgL,EAAcrgL,eAEzIs/K,sBAAuB,SAAS55F,GAC5B,IAAIx0E,EAAgBtL,KAAKukK,QAAQx8I,OAAO,iBACxC,OAAO,QAAiB1uB,OAAOymF,EAAU9/E,KAAKqlB,iBAAiB/Z,KAEnEquK,sBAAuB,SAAS/1K,GAC5B,GAAI,eAAiB5D,KAAKukK,QAAQx8I,OAAO,kBAAzC,CAGA,IAAIzuB,EAAO0G,KAAKw5K,mBAAmB51K,EAAEk8E,UACrC9/E,KAAKukK,QAAQx8I,OAAO,UAAU,GAC9B/nB,KAAKgmK,aAAa1sK,EAAMsK,EAAE09D,SAE9Bk4G,mBAAoB,SAAS15F,GACzB,IAAIxmF,EAAO0G,KAAKukK,QAAQx8I,OAAO,SAC3BxoB,EAAQugF,EAAS3lF,WACjB4G,EAAU++E,EAAS1lF,aACnB4G,EAAU8+E,EAASzlF,aACnBb,EAAOsmF,EAASrmF,cAChBoD,EAAQijF,EAAS7lF,WACjBwC,EAAMqjF,EAAS5lF,UAgBnB,OAfIZ,GAEIA,EADA0G,KAAKukK,QAAQx8I,OAAO,2BACb,GAAkB05D,gBAAgBnoF,GAElC,IAAIS,KAAKT,GAEpBA,EAAKi+B,SAASh4B,GACdjG,EAAK6nK,WAAWpgK,GAChBzH,EAAKq4J,WAAW3wJ,GAChB1H,EAAKiB,YAAYf,GACjBF,EAAK6nF,SAAStkF,GACdvD,EAAKk8B,QAAQ/4B,IAEbnD,EAAO,IAAIS,KAAKP,EAAMqD,EAAOJ,EAAK8C,EAAOwB,EAAS,EAAG,GAElDzH,GAEX2rK,oBAAqB,WACjB,OAAOjlK,KAAKwkK,SAEhBkW,mBAAoB,WAChB,IAAIC,EAAwB,gBAAa36K,KAAKukK,QAAQx8I,OAAO,2BAC7D,QAAI,IAAW4yJ,GAAyB,SAAWA,EAAuB,CACtE36K,KAAKukK,QAAQqW,gBAAgB,SAAU,QACvC,IAAIhmD,EAAc,eAAe50H,KAAKwkK,QAAQx+I,YAC1C6tC,EAAY,IAAM,eAAU,IAChC7zD,KAAKukK,QAAQqW,gBAAgB,SAAUj5J,KAAKC,IAAIgzG,EAAa/gE,IAEjE7zD,KAAKukK,QAAQsW,WAAa76K,KAAKukK,QAAQsW,UAAU5qD,oBAErDk1C,cAAe,SAAS5oK,EAAMlD,GAC1B,IAAIwI,EAAQ7B,KAAKC,SAAS1D,EAAMlD,GAIhC,OAHIwI,IACAA,EAAQ,GAAUkvJ,WAAWlvJ,EAAO,IAAI9H,KAAK,MAAOq/K,KAEjDv3K,KAGA,MCjPX,GAAS,iBA+BTi5K,GAAgB,aAChBC,GAAsB,gBACtBC,GAAyB,wBACzBC,GAAwB,uBACxBC,GAAwB,qBACxBC,GAA+B,4BAC/BC,GAAc,CACdC,SAAU,WACVC,QAAS,UACTC,KAAM,OACNC,OAAQ,UAER,GAAO,CACPliL,KAAM,OACNupF,SAAU,WACVx1E,KAAM,QAENouK,GAAgB,CAChBJ,SAAU,WACVK,SAAU,WACVF,OAAQ,SACRG,iBAAkB,mBAClBJ,KAAM,QAENK,GAAmB,CACnBxgB,SAAU,GACV6P,SAAU,GACV4Q,OAAQ,GACRC,iBAAkB,GAClBC,KAAM,IAENC,GAAU,QAAe38G,QAAQ,CACjCg3C,eAAgB,WACZ,OAAO,OAAA57G,EAAA,WAAOuF,KAAKC,WAAYD,KAAKi8K,UAAUjX,kBAElDkX,wBAAyB,WACrBl8K,KAAKC,SAASnB,MAAMkB,KAAME,WAC1BF,KAAKi8K,UAAU/W,oBAEnBtvD,mBAAoB,WAChB,OAAO,OAAAn7G,EAAA,WAAOuF,KAAKC,WAAY,CAC3BxB,KAAM,OACN09K,iBAAiB,EACjBt6K,MAAO,KACPiiD,6BAAyB,EACzBliC,SAAK,EACLoQ,SAAK,EACL1mB,cAAe,KACfif,SAAU,GACVsqI,cAAe,KACfunB,WAAYhB,GAAYC,SACxBgB,mBAAoB,OAAoBhjL,OAAO,iCAC/CijL,sBAAuB,OAAoBjjL,OAAO,oBAClDw0K,gBAAiB,OAAoBx0K,OAAO,MAC5CkjL,mBAAmB,EACnBC,gBAAiB,GACjBC,wBAAwB,KAGhC/8D,qBAAsB,WAClB,OAAO1/G,KAAKC,WAAW4R,OAAO,CAAC,CAC3B8tG,OAAQ,CACJl9E,SAAU,OAEdzxB,QAAS,CACL,6BAA6B,IAElC,CACC2uG,OAAQ,CACJl9E,SAAU,WAEdzxB,QAAS,CACLk2J,gBAAiB,iBAEtB,CACCvnD,OAAQ,WACJ,IAAI+8D,EAAa7jE,GAAA,KAAQC,OACrBr2E,EAAWi6I,EAAWj6I,SAC1B,MAAO,QAAUA,GAAY,YAAcA,GAE/CzxB,QAAS,CACLorK,WAAYhB,GAAYI,SAE7B,CACC77D,OAAQ,CACJl9E,SAAU,UACVs2E,WAAY,WAEhB/nG,QAAS,CACLk2J,gBAAiB,oBAI7B3wC,aAAc,SAASvlH,GACnBhR,KAAK28K,aAAe,OAAAliL,EAAA,WAAO,GAAIuW,GAC/BhR,KAAKC,SAAS+Q,GACdhR,KAAK48K,wBAETA,qBAAsB,WAClB,IAAIR,EAAap8K,KAAK+nB,OAAO,cACzBtpB,EAAOuB,KAAK+nB,OAAO,QACnBq0J,IAAehB,GAAYG,MAAS98K,IAAS,GAAKokF,UAAYpkF,IAAS,GAAKnF,OAC5E8iL,EAAahB,GAAYC,UAEzB58K,IAAS,GAAK4O,MAAQ+uK,IAAehB,GAAYC,WACjDe,EAAahB,GAAYG,MAE7Bv7K,KAAK+nB,OAAO,qBAAsB,YAAc8wF,GAAA,KAAQC,OAAOr2E,UAAY25I,IAAehB,GAAYI,QACtGx7K,KAAK68K,YAAcT,GAEvBxlE,MAAO,WACH52G,KAAK88K,gBACL98K,KAAK+nB,OAAO,OAAAttB,EAAA,WAAO,GAAIuF,KAAKi8K,UAAUlX,oBAAqB/kK,KAAK28K,sBACzD38K,KAAK28K,aACZ38K,KAAKC,YAET88K,wBAAyB,SAAS7zI,GAC9B,OAAOA,EAAOjN,OAAO,GAAGn+B,cAAgBorC,EAAO3mB,OAAO,IAE1Du6J,cAAe,WACX,IAAIE,EAAeh9K,KAAKi9K,iBAAiBj9K,KAAKk9K,kBAC1ChsI,EAAW0qI,GAAiBoB,GAC1Bh9K,KAAKi8K,WAAaj8K,KAAKi8K,UAAUp6G,OAASm7G,IAC5Ch9K,KAAKi8K,UAAY,IAAI/qI,EAASlxC,QAGtCk9K,eAAgB,WACZ,IAAIC,EAAcn9K,KAAK+nB,OAAO,QAC1Bq1J,EAAS,SAASxqJ,KAAKuqJ,GACvBE,EAAS,SAASzqJ,KAAKuqJ,GACvB1+K,EAAO,GAOX,OANI4+K,IACA5+K,GAAQ,GAAKnF,MAEb8jL,IACA3+K,GAAQ,GAAK4O,MAEV5O,GAEXw+K,iBAAkB,SAASx+K,GACvB,IAAI29K,EAAap8K,KAAK68K,YACtB,OAAIT,IAAehB,GAAYE,QACpBG,GAAcC,SACdU,IAAehB,GAAYI,OAC3BC,GAAcD,OAErB/8K,IAAS,GAAKnF,KACPmiL,GAAcJ,SAErB58K,IAAS,GAAKokF,SACP44F,GAAcE,iBAElBF,GAAcF,MAEzBjjE,YAAa,WACTt4G,KAAKgmB,WAAWsB,SAASwzJ,IACzB96K,KAAKC,WACLD,KAAKs9K,sBACLt9K,KAAKu9K,0BACLv9K,KAAKi8K,UAAU7W,kBAAkBplK,KAAKgiJ,WAE1CjgC,QAAS,WACL/hH,KAAKC,WACLD,KAAKw9K,yBAETjsD,kBAAmB,WACfvxH,KAAKC,WACLD,KAAKgmB,WAAW69C,YAAYk3G,IAAsB/6K,KAAK+nB,OAAO,UAC9D/nB,KAAK86H,qBAETA,kBAAmB,WAGX,IAAI2iD,EAAuBC,GAF/B19K,KAAKC,SAASC,WACVF,KAAK01H,UAEL,QAAU+nD,GAAyBC,EAAkB19K,KAAKi8K,WAAWvB,0BAAuB,IAAW+C,GAAiCA,EAAsBj4J,KAAKk4J,KAG3KJ,oBAAqB,WACjB,IAAIt3J,EAAWhmB,KAAKgmB,WACpB,eAAK,IAAM,SAAUjnB,EAAGgI,GACpBif,EAASwB,YAAYszJ,GAAgB,IAAM/zK,MAE/Cif,EAASsB,SAASwzJ,GAAgB,IAAM96K,KAAK+nB,OAAO,UAExDw1J,wBAAyB,WACrB,IAAIv3J,EAAWhmB,KAAKgmB,WACpB,eAAKo1J,IAAa,SAAUr8K,EAAGgI,GAC3Bif,EAASwB,YAAYszJ,GAAgB,IAAM/zK,MAE/Cif,EAASsB,SAASwzJ,GAAgB,IAAM96K,KAAK68K,cAEjDW,sBAAuB,WACnB,GAAK,iBAAL,CAGA,IAAIG,EAAe39K,KAAKgiJ,SAAStkJ,IAAI,GACjCkgL,EAAe59K,KAAK+nB,OAAO,cAC3B81J,EAAmB79K,KAAK89K,uBACxBC,EAA2B/9K,KAAKg+K,+BAChCC,EAAW16G,WAAW,GAAO26G,iBAAiBP,GAAcp2K,OAASs2K,EACrEM,EAA2BJ,EAAyBx2K,MAAQ02K,EAC5D3zG,EAAQqzG,EAAarzG,MACzBtqE,KAAKgmB,WAAW69C,YAAYm3G,IAAyBmD,GACjDA,QACI,IAAWn+K,KAAKo+K,iBAChBp+K,KAAKo+K,eAAiBR,EAAeG,EAAyBM,YAAcN,EAAyBO,cAEzGV,EAAetzG,EAAM+M,YAAc,EAAI/M,EAAMgN,aAAe,GAE5DsmG,EAAetzG,EAAM+M,YAAcr3E,KAAKo+K,eAAiB,KAAO9zG,EAAMgN,aAAet3E,KAAKo+K,eAAiB,OAGnHN,qBAAsB,WAClB,IAAID,EAAmB,EACvB,GAAI79K,KAAKu+K,yBAA2B,KAAOv+K,KAAKgiJ,SAAST,MAAO,CAC5D,IAAIi9B,EAAqBx+K,KAAKgmB,WAAWiB,KAAK,IAAMg0J,IAAuBv9K,IAAI,GAC/EmgL,EAAmBt6G,WAAW,GAAO26G,iBAAiBM,GAAoBj3K,OAE9E,OAAOs2K,GAEXG,6BAA8B,WAC1B,IAAI3kL,EAAS2G,KAAKi8K,UAAU52J,iBAAiBrlB,KAAK+nB,OAAO,kBACrD02J,EAAe,QAAiBplL,OAAO,GAAYk4J,eAAel4J,EAAQ,QAAiBmF,gBAAiB,QAAiBQ,eAAgB3F,GAC7IupJ,EAAS5iJ,KAAKgiJ,SACd27B,EAAe/6B,EAAOllJ,IAAI,GAC1BghL,EAAuB,gBAA4B97B,EAAQ67B,GAC3DE,OAAkB,IAAW3+K,KAAKo+K,eAClCQ,EAAiBD,EAAsB3+K,KAAKo+K,eAAT,EACvCM,EAAqBn3J,SAASvnB,KAAKgmB,YACnC,IAAIy1G,EAAel4D,WAAW,GAAO26G,iBAAiBQ,EAAqBhhL,IAAI,IAAI6J,OAC/E+2K,EAAe/6G,WAAW,GAAO26G,iBAAiBP,GAAcrmG,cAChE+mG,EAAc96G,WAAW,GAAO26G,iBAAiBP,GAActmG,aAC/DwnG,EAAiBpjD,EAAe4iD,EAAcC,EAAeM,EAEjE,OADAF,EAAqB52J,SACd,CACHvgB,MAAOs3K,EACPR,YAAaA,EACbC,aAAcA,IAGtB,wBACI,OAAOt+K,KAAKC,WAAW4R,OAAO,CAAC7R,KAAKi8K,WAAaj8K,KAAKi8K,UAAUhX,yBAEpE9tC,aAAc,WACVn3H,KAAKC,WACLD,KAAK01H,OAAOza,WAAW3zF,SAAS4zJ,IAChCl7K,KAAK8+K,uBAET7X,aAAc,WACV,IAAI1B,EAAcvlK,KAAKC,WACvB,OAAO,OAAAxF,EAAA,WAAOuF,KAAKi8K,UAAU1W,YAAYA,GAAc,CACnD12G,MAAO7uD,KAAK++K,iBACZvrH,aAAa,KAGrBsrH,oBAAqB,WACjB,GAAK9+K,KAAK01H,OAAV,CAGA,IAAI1vG,EAAWhmB,KAAKgmB,WAChBg5J,EAAiB,OAAAvkL,EAAA,WAAO,GAAI,GAAM2gL,IACtC,eAAK4D,EAAgB,SAASjgL,EAAGgI,GAC7Bif,EAASwB,YAAY0zJ,GAAwB,IAAMn0K,IACrDyjB,KAAKxqB,OACPA,KAAK01H,OAAOza,WAAW3zF,SAAS4zJ,GAAwB,IAAMl7K,KAAK+nB,OAAO,SAAST,SAAS4zJ,GAAwB,IAAMl7K,KAAK68K,aAAav1J,SAAS6zJ,MAEzJ8D,oBAAqB,WACjBj/K,KAAKC,WACLD,KAAKi8K,UAAUvW,sBAEnBwZ,sBAAuB,WACnB,OAAOl/K,KAAKi8K,UAAUrW,wBAA0B5lK,KAAKC,YAEzDk/K,qBAAsB,WAClB,OAAOn/K,KAAKi8K,UAAUpW,uBAAyB7lK,KAAKC,YAExDm/K,qBAAsB,WAClBp/K,KAAKC,WACLD,KAAKi8K,UAAUnW,uBAEnBuZ,mBAAoB,WAChBr/K,KAAKC,WACLD,KAAKi8K,UAAU5W,qBAEnBia,oBAAqB,WACjBt/K,KAAKC,WACLD,KAAKi8K,UAAU5W,oBACfrlK,KAAKi8K,UAAUlW,sBAEnBt1D,mBAAoB,SAAS9mD,GACrBA,GACA3pD,KAAKw9K,yBAGb+B,mBAAoB,SAAS37K,GACzB5D,KAAK+nB,OAAO,OAAQ,IACpB/nB,KAAKC,SAAS2D,IAElB47K,mBAAoB,WAChB,GAAIx/K,KAAK68K,cAAgBzB,GAAYE,QACjC,OAAO,EAEX,IAAI74I,EAAWo2E,GAAA,KAAQC,OAAOr2E,SAC1Bg9I,EAAwBz/K,KAAKiuK,kBAAoB,QAAUxrI,GAAY,YAAcA,GACzF,OAAIg9I,EACOz/K,KAAK+nB,OAAO,YAEhB/nB,KAAKC,YAEhBs+K,sBAAuB,WACnB,OAAOv+K,KAAKC,aAAeD,KAAKiuK,iBAEpCnsB,aAAc,WACV,IAAIjgJ,EAAQ7B,KAAKumK,WAAW,SAG5B,OAFAvmK,KAAK+nB,OAAO,OAAQ/nB,KAAK0/K,kBAAkB79K,IAC3C7B,KAAKi8K,UAAU7V,cACRpmK,KAAKC,YAEhBohJ,gBAAiB,WACb,IAAIx/I,EAAQ7B,KAAKumK,WAAW,SACxBziH,EAA0B9jD,KAAK+nB,OAAO,2BACtC43J,EAAe,GAAYhvB,mBAAmB3wJ,KAAK+nB,OAAO,SAC1D63J,EAAc97H,EAA0B,GAAkB69B,cAAc9/E,EAAOiiD,GAA2B,GAAY8sG,qBAAqB/uJ,EAAO89K,GACtJ3/K,KAAKshJ,oBAAoBC,IAAIq+B,IAEjCF,kBAAmB,SAAS79K,GACxB,IACIg+K,EADAhkI,EAAO77C,KAAK+nB,OAAO,QAEvB,GAAI,SAAW8zB,EAAM,CACjB,IAAIvwC,EAAgBtL,KAAKi8K,UAAU52J,iBAAiBrlB,KAAK+nB,OAAO,kBAChE83J,EAAgB,QAAiBxmL,OAAOwI,EAAOyJ,OAC5C,CACH,IAAIjS,EAAS2G,KAAK8/K,iBAAiBjkI,GAE/BgkI,EADAxmL,EACgB,QAAiBA,OAAOwI,EAAOxI,GAE/B,GAAYu3J,qBAAqB/uJ,EAAOg6C,GAGhE,OAAOgkI,GAEXC,iBAAkB,SAASjkI,GACvB,OAAO,uBAAUA,GAAQ,KAAO,GAAY60G,YAAY70G,IAE5D8nG,yBAA0B,SAAS//I,GAC/B,IACIrH,KAAMA,EACNkC,KAAMA,EACNumJ,gBAAiBA,GACjBhlJ,KAAK+nB,SACLm5I,EAAelhK,KAAKumK,WAAW,SACnC,GAAIhqK,IAASyD,KAAK0/K,kBAAkBxe,GAApC,CAOA,IAAIrgK,EAAab,KAAK+/K,eAAexjL,GACjCsF,EAAQ,OAASq/J,QAAgB,IAAWA,EAAeA,EAAelhK,KAAKggL,oBAC/E1sG,EAAW,GAAYy9E,WAAWlvJ,EAAOhB,EAAYpC,GACrDnF,EAAOuH,GAAc,SAAWpC,EAAO60E,EAAWzyE,EACtD,GAAIb,KAAKigL,yBAAyB3mL,GAAMwrJ,QAAS,CAC7C,IAAI+6B,EAAgB7/K,KAAK0/K,kBAAkBpsG,GACvCzxE,GAASyxE,GAAYzxE,EAAMkC,YAAcuvE,EAASvvE,WAAa87K,IAAkBtjL,EACjFyD,KAAK8hJ,eAEL9hJ,KAAK+1B,UAAUu9C,EAAU1vE,SAfxBohJ,IAAmBA,EAAgBC,iBACpCjlJ,KAAKigL,yBAAyB/e,GAC9BlhK,KAAKkgL,uBAAuBhf,KAiBxC8e,kBAAmB,WACf,OAAOhgL,KAAKi8K,UAAUhW,2BAA6BjmK,KAAKi8K,UAAU/V,kBAEtE6Z,eAAgB,SAASxjL,GACrB,IAAI+O,EAAgBtL,KAAKi8K,UAAU52J,iBAAiBrlB,KAAK+nB,OAAO,kBAC5Do4J,EAAangL,KAAKi8K,UAAU9W,cAAc5oK,EAAM+O,GACpD,OAAO,OAAS60K,QAAc,IAAWA,EAAaA,OAAa,GAEvE,yBAAyBt+K,GACrB,IAAItF,EAAOyD,KAAK+nB,OAAO,QACnB0zF,IAAYl/G,GAAQ,OAASsF,EAC7Bw7K,IAAWx7K,GAAS,eAAWA,KAAW2B,MAAM3B,EAAMkC,WACtDq8K,EAAgB/C,GAAU,QAAU3kB,YAAY72J,EAAO7B,KAAKumK,WAAW,OAAQvmK,KAAKumK,WAAW,OAAQvmK,KAAK+nB,OAAO,SACnH+8H,GAAWrpC,IAAY55G,GAASu+K,EAChCC,EAAoB,GAaxB,OAZKhD,EAEO+C,IACRC,EAAoBrgL,KAAK+nB,OAAO,0BAFhCs4J,EAAoBrgL,KAAK+nB,OAAO,sBAIpC/nB,KAAK+nB,OAAO,CACR+8H,QAASA,EACTE,gBAAiBF,EAAU,KAAO,CAC9BG,gBAAgB,EAChB/8H,QAASm4J,KAGV,CACHv7B,QAASA,EACTu4B,OAAQA,IAGhB6C,uBAAwB,SAASr+K,GAC7B7B,KAAKikJ,kBAAkBngF,KAAK,CACxB92C,OAAQhtB,KACR6B,MAAO7B,KAAKsgL,eAAez+K,MAGnC0+K,gBAAiB,SAASjtG,GACtB,IAAIzB,EAAW7xE,KAAKumK,WAAW,SAC3Bia,EAAU3uG,GAAYA,EAAS9tE,UAC/B08K,EAAUntG,GAAYA,EAASvvE,UACnC,OAAOy8K,IAAYC,GAEvBC,eAAgB,SAASptG,GACrB,IAAIqtG,EAAU3gL,KAAK+nB,OAAO,QACtBy1H,EAAUlqE,GAAYtzE,KAAK0/K,kBAAkBpsG,IAAa,GAC9D,OAAOqtG,IAAYnjC,GAEvBgF,aAAc,WACVxiJ,KAAKC,WACLD,KAAKgiJ,SAAShhF,KAAK,eAAgB,QAEvC4/G,mBAAoB,WACX5gL,KAAKiuK,iBACNjuK,KAAKC,WAELD,KAAKi8K,UAAU3V,uBACftmK,KAAK6gL,oBAGb9B,eAAgB,WACZ,IAAIxhH,EAAcv9D,KAAK+nB,OAAO,eAC9B,GAAIw1C,EACA,OAAOA,EAEX,IAAI9+D,EAAOuB,KAAK+nB,OAAO,QACvB,OAAItpB,IAAS,GAAK4O,KACP,OAAoBhU,OAAO,0CAElCoF,IAAS,GAAKnF,MAAQmF,IAAS,GAAKokF,SAC7B,OAAoBxpF,OAAO,0CAE/B,IAEXwnL,iBAAkB,WACd7gL,KAAKi8K,UAAUx6G,UACfzhE,KAAK88K,gBACL98K,KAAK+nB,OAAO/nB,KAAKi8K,UAAUlX,qBAC3B/kK,KAAKgoH,YAET84D,oBAAqB,SAASl9K,GAC1B,IAAI/B,EAAQ7B,KAAKi8K,UAAU5V,WAC3BrmK,KAAK+1B,UAAUl0B,EAAO+B,EAAE09D,OACxBthE,KAAKC,YAET6+H,SAAU,WACN,IAAIiiD,EACJ/gL,KAAKC,WACL,QAAU8gL,EAAmB/gL,KAAKi8K,iBAAc,IAAW8E,GAA4BA,EAAiBt/G,WAE5GwsG,cAAe,WACX,OAAOjuK,KAAK68K,cAAgBzB,GAAYI,QAE5CwF,kBAAmB,WACf,IAAIC,EACJ,QAAUA,EAAejhL,KAAK01H,cAAW,IAAWurD,GAAwBA,EAAal5J,OAAO,QAAS/nB,KAAK++K,mBAElH5hE,eAAgB,SAASt+D,GACrB,OAAQA,EAAKj9C,MACT,IAAK,kBACL,IAAK,UACD5B,KAAKC,SAASnB,MAAMkB,KAAME,WAC1BF,KAAKw9K,wBACL,MACJ,IAAK,aACDx9K,KAAK48K,qBAAqB,CACtBR,WAAYv9H,EAAKh9C,QAErB7B,KAAK6gL,mBACL7gL,KAAKu9K,0BACLv9K,KAAK4iE,cACL,MACJ,IAAK,OACD5iE,KAAK48K,qBAAqB,CACtBvjL,OAAQwlD,EAAKh9C,QAEjB7B,KAAK6gL,mBACL7gL,KAAKs9K,sBACLt9K,KAAK8+K,sBACL9+K,KAAKw9K,wBACLx9K,KAAKslK,eACL,MACJ,IAAK,cACDtlK,KAAKC,SAASnB,MAAMkB,KAAME,WAC1BF,KAAKghL,oBACL,MACJ,IAAK,MACL,IAAK,MACD,IAAIl8B,EAAU9kJ,KAAK+nB,OAAO,WAC1B/nB,KAAKigL,yBAAyBjgL,KAAKumK,WAAW,UACzCzhB,GACD9kJ,KAAKkgL,uBAAuBlgL,KAAKumK,WAAW,UAEhDvmK,KAAK4iE,cACL,MACJ,IAAK,0BACL,IAAK,WACL,IAAK,gBACL,IAAK,kBACD5iE,KAAK4iE,cACL,MACJ,IAAK,gBACD5iE,KAAK+nB,OAAO,OAAQ/nB,KAAK0/K,kBAAkB1/K,KAAKumK,WAAW,WAC3DvmK,KAAKkhL,oBACL,MACJ,IAAK,OACDlhL,KAAKi8K,UAAU9V,mBAAmBtnH,EAAKh9C,OACvC7B,KAAKC,SAASnB,MAAMkB,KAAME,WAC1B,MACJ,IAAK,UACDF,KAAKC,SAASnB,MAAMkB,KAAME,WAC1BF,KAAKw9K,wBACL,MACJ,IAAK,qBACDx9K,KAAKw9K,wBACLx9K,KAAKC,SAASnB,MAAMkB,KAAME,WAC1B,MACJ,IAAK,WACDF,KAAKC,SAASnB,MAAMkB,KAAME,WAC1BF,KAAKw9K,wBACL,MACJ,IAAK,qBACL,IAAK,wBACL,IAAK,oBACL,IAAK,kBACD,MACJ,QACIx9K,KAAKC,SAASnB,MAAMkB,KAAME,aAGtCw8J,wBAAyB,WACrB,IAAI76J,EAAQ7B,KAAK+nB,OAAO,SACxB,OAAI/nB,KAAK+nB,OAAO,4BAA8B,kBAAS25D,oBAC5C1hF,KAAK+nB,OAAO,2BAEnB,eAAUlmB,GACH,SAEN,eAASA,GAGP,GAAkBm/E,2BAA2Bn/E,QAHpD,GAKJyjK,aAAc,SAASzjK,GACnB7B,KAAKC,WACLD,KAAKigL,yBAAyB,OAASp+K,QAAS,IAAWA,EAAQA,EAAQ7B,KAAKumK,WAAW,WAE/FxwI,UAAW,SAASl0B,EAAOymH,GACvB,IAAIloB,EAAiBpgG,KAAKugL,gBAAgB1+K,GAW1C,OAVIu+F,GAAkBkoB,GAClBtoH,KAAK+iJ,sBAAsBz6B,GAE1BloB,IACGpgG,KAAK0gL,eAAe7+K,GACpB7B,KAAKslK,aAAazjK,GACX,KAAO7B,KAAK+nB,OAAO,SAC1B/nB,KAAKkgL,uBAAuBr+K,IAG7B7B,KAAKumK,WAAW,QAAS1kK,IAEpC0kK,WAAY,SAASl8G,EAAYxoD,GAC7B,GAAI,IAAM3B,UAAUtG,OAChB,OAAO,GAAkB6nF,gBAAgBzhF,KAAK+nB,OAAOsiC,IAEzDrqD,KAAK+nB,OAAOsiC,EAAYrqD,KAAKsgL,eAAez+K,KAEhDy+K,eAAgB,SAAShnL,GACrB,IAAIsoF,EAAsB5hF,KAAK08J,0BAC/B,OAAO,GAAkB/6E,cAAcroF,EAAMsoF,IAEjDsjE,YAAa,WACT,IAAIrjJ,EAAQ7B,KAAK+nB,OAAO,SACxB/nB,KAAKC,WACD,OAAS4B,GACT7B,KAAKkgL,uBAAuB,OAGpC7zF,MAAO,WACH,IAAIxqF,EAAQ7B,KAAK+nB,OAAO,SACxB/nB,KAAKC,WACD,OAAS4B,GACT7B,KAAKigL,yBAAyB,SAI3B,MCnlBXkB,GAAuB,cACvBC,GAAU,EACVC,IAAY,EACZC,GAAc,GAAYjiH,QAAQ,CAClC,eAAez7D,GACX,IAAI29K,EAAmBvhL,KAAKC,SAAS2D,GACjC49K,EAAsB59K,IACtB,IAAI69K,EAAkBF,EAAiB,gBAAiB39K,IACxD,OAAO69K,GAAmBA,EAAgB3iL,MAAMkB,KAAM,CAAC4D,KAEvD89K,EAAe,CAAC99K,EAAG+9K,IACf3hL,KAAK4hL,0BAA0Bh+K,GACxB49K,EAAoB1iL,MAAMkB,KAAM,CAAC4D,IAEjC+9K,EAAY7iL,MAAMkB,KAAM,CAAC4D,IAGxC,OAAO,OAAAnJ,EAAA,WAAO,GAAI8mL,EAAkB,CAChCv7B,IAAKpiJ,GAAK89K,EAAa99K,EAAG09D,IACtBthE,KAAK6hL,YAAYT,IACjBphL,KAAK8hL,kBAAoBxgH,EAAM1mC,mBAEnCsrH,UAAWtiJ,GAAK89K,EAAa99K,EAAG09D,IAC5BthE,KAAK6hL,YAAYR,IACjBrhL,KAAK8hL,kBAAoBxgH,EAAM1mC,mBAEnC0rH,KAAM1iJ,GAAK89K,EAAa99K,EAAG09D,IACvBthE,KAAK+hL,mBACLzgH,EAAM1mC,mBAEVuH,IAAKv+B,GAAK89K,EAAa99K,EAAG09D,IACtBthE,KAAKgiL,kBACL1gH,EAAM1mC,mBAEVulF,OAAQv8G,GAAK89K,EAAa99K,EAAG09D,IACzBthE,KAAKiiL,eAAe3gH,KAExBg/E,MAAO18I,GAAK89K,EAAa99K,EAAG09D,IACxBthE,KAAKkiL,cAAc5gH,KAEvB6kF,UAAWviJ,GAAK89K,EAAa99K,EAAG09D,IAC5BthE,KAAKmiL,gBAAgBd,IACrB//G,EAAM1mC,mBAEVyrH,WAAYziJ,GAAK89K,EAAa99K,EAAG09D,IAC7BthE,KAAKmiL,gBAAgBf,IACrB9/G,EAAM1mC,mBAEVwlH,QAASx8I,GAAK89K,EAAa99K,EAAG09D,IAC1BthE,KAAKoiL,oBAAoBhB,IACzB9/G,EAAM1mC,mBAEVylH,UAAWz8I,GAAK89K,EAAa99K,EAAG09D,IAC5BthE,KAAKoiL,oBAAoBf,IACzB//G,EAAM1mC,sBAIlB,0BAA0Bh3B,GACtB,IAAIy+K,EAA0BriL,KAAK+nB,OAAO,WAAankB,IAAM,IAAM,CAAC,YAAa,OAAOtF,QAAQ,gBAAiBsF,IACjH,OAAQ5D,KAAK6lJ,oBAAsBw8B,GAA2Bz+K,GAAKA,EAAEyoJ,QAEzE,oBAAoB9L,GAChBvgJ,KAAKsiL,qBACL,IAAIC,EAAgBviL,KAAKwiL,oBAAoBxiL,KAAKyiL,mBAC9CvhB,EAAelhK,KAAKwiL,sBACpB5gC,EAAQsf,EAAeqhB,EAC3BviL,KAAK0iL,eAAe1iL,KAAKyiL,mBACzBziL,KAAK2iL,cAAc/gC,EAAQrB,GAAM,IAErC,qBACI,OAAO,OAAA9lJ,EAAA,WAAOuF,KAAKC,WAAY,CAC3BsL,iBAAiB,EACjBq3K,eAAgB,IAAI7oL,KAAK,IAAK,EAAG,EAAG,EAAG,EAAG,MAGlD,iBAAiBmT,GACb,IACI0rE,cAAeA,EACfiqG,IAAKA,GACL31K,EACApS,EAAM89E,EAAczyE,MAAQyyE,EAAc99E,IAC9C,MAAO,kBAAoBA,GAAO,IAAMA,EAAIlB,SAAWipL,IAAQ,gBAAoBjqG,IAEvF,kBAAkBh1E,GACd,IAAIk/K,EACA38K,EAAO,QAAU28K,EAAmBl/K,EAAEg1E,qBAAkB,IAAWkqG,OAAmB,EAASA,EAAiB38K,KACpH,OAAO,KAAO,OAASA,QAAQ,IAAWA,OAAO,EAASA,EAAKvM,SAAW2H,SAAS4E,EAAM,KAE7F48K,qBAAsB,WAClB,OAAOlqE,GAAA,KAAQC,OAAOw1D,SAE1B,iBAAiB1qK,EAAG9I,GAChB,IAAIkoL,EAAgBhjL,KAAKgiJ,SAAST,MAClCvhJ,KAAKijL,iBAAiBnoL,GACtB8I,EAAEg3B,iBACF,IAAIwlE,EAAiB4iF,IAAkBhjL,KAAKgiJ,SAAST,MACrDnhD,GAAkB,OAAatzE,QAAQ9sB,KAAKgiJ,SAAU,UAE1D,iBAAiBp+I,GACb,IAAI9I,EAAM8I,EAAEg1E,cAAc99E,IACtBmE,EAASe,KAAKC,SAAS2D,GAC3B,OAAK5D,KAAK6lJ,oBAAsB7lJ,KAAK+iL,yBAGjCt0J,EAAA,KAAQujF,QAAU,YAAcpuG,EAAE9I,KAAO,IAAM8I,EAAE+sB,KAAKryB,QAAQ,UAC9DxD,EAAM8I,EAAE+sB,KAAKx1B,QAAQ,QAAS,IAC9B6E,KAAKijL,iBAAiBnoL,GACtBkF,KAAKkjL,kBAAoB,KACrBljL,KAAKmjL,wBAEFnjL,KAAKojL,iBAAiBx/K,IAC7B5D,KAAKqjL,iBAAiBz/K,EAAEg1E,cAAe99E,IAThCmE,GAaf,wBAAwB2E,GACpB5D,KAAKkjL,kBAAoB,KACzB,IACIr2B,UAAWA,GACXjpJ,EAAEg1E,cACF,0BAA4Bi0E,IAC5B7sJ,KAAKkjL,kBAAoB,KACrBljL,KAAKmjL,wBAGb,IAAIG,EAAqB,0BAA4Bz2B,EACjD02B,EAAoB,yBAA2B12B,EACnD,GAAIy2B,GAAsBC,EAAmB,CACzC,IAAIxpH,EAAYupH,EAAqBjC,GAAWD,GAChDphL,KAAKkjL,kBAAoB,KACrBljL,KAAK6hL,cACL7hL,KAAKmiL,gBAAgBpoH,IAG7B,GAAK/5D,KAAK6lJ,oBAAuB7lJ,KAAKojL,iBAAiBx/K,GAAvD,CAGA,IAAI9I,EAAM8I,EAAEg1E,cAAczyE,KAE1B,OADAnG,KAAKqjL,iBAAiBz/K,EAAG9I,IAClB,IAEX,iBAAiB8I,GACb,IACIg1E,cAAetX,GACf19D,EACA,2BAA6B,OAAS09D,QAAS,IAAWA,OAAQ,EAASA,EAAMurF,YAAc7sJ,KAAKwjL,kBAAkB5/K,KACtH5D,KAAKijL,iBAAiB3hH,EAAMn7D,MAC5BnG,KAAKuiJ,mBAAmBviJ,KAAK0/K,kBAAkB1/K,KAAKyjL,aACpDzjL,KAAKmiL,mBAETniL,KAAKC,SAAS2D,GACV5D,KAAKkjL,oBACLljL,KAAKkjL,oBACLljL,KAAKkjL,kBAAoB,OAGjC,iBAAiBpoL,GACTkF,KAAK8hL,mBACL9hL,KAAK0jL,iBAAmB,GAE5B1jL,KAAKsiL,qBACD9+K,MAAMjC,SAASzG,IACfkF,KAAK2jL,cAAc7oL,GAEnBkF,KAAK4jL,cAAc9oL,IAG3B,iBACI,IAAIihJ,EAAQ/7I,KAAK8mJ,SACjB,OAAO/K,EAAM55G,IAAM45G,EAAM5hF,QAAUn6D,KAAK+nB,OAAO,QAAQnuB,QAE3D,oBACI,GAAIoG,KAAK6jL,eACL,OAAO7jL,KAAK6jL,eAEhB,IAAIxqL,EAAS2G,KAAKi8K,UAAU52J,iBAAiBrlB,KAAK+nB,OAAO,kBACrDgiI,EAAgB,eAAS1wJ,KAAY,QAAiBsJ,oBAAoBtJ,GAQ9E,OANI2G,KAAK6jL,eADL95B,EACsB1wJ,EAEA,iBAAU,SAAUwI,GACtC,OAAO,QAAiBxI,OAAOwI,EAAOxI,MAGvC2G,KAAK6jL,gBAEhB,qBACI,IAAK7jL,KAAKyjL,WAAY,CAClB,IAAI5hL,EAAQ,SAAW7B,KAAK+nB,OAAO,QAAU,IAAIhuB,KAAK,MAAQ,IAAIA,KAClEiG,KAAKyjL,WAAa5hL,EAClB7B,KAAKyiL,kBAAoB5gL,EACzB7B,KAAK8jL,qBAGb,mBAAmB9xJ,GACf,IAAI+8H,EAAiBp1J,OAAOq4B,GAAKp4B,OAC7BmqL,EAAe/jL,KAAKgkL,mBAAmB,WAAWpqL,OAClDqqL,EAAgB,IAAMF,EACtBG,EAAkBD,EAAgBl1B,EAAiBptI,KAAKC,IAAImiK,EAAch1B,GAC1Eo1B,EAAmBnkL,KAAKokL,aAAaxqL,SAAWsqL,EAChDG,EAAoB9iL,SAASvB,KAAKokL,aAAe,KAAOpyJ,EAC5D,OAAOmyJ,GAAoBE,GAE/B,cAAcphK,GACV,IACI+O,IAAKA,GACLhyB,KAAKskL,uBACLv1B,EAAiBp1J,OAAOq4B,GAAKp4B,OACjCoG,KAAKokL,cAAgBpkL,KAAKokL,aAAenhK,GAAMV,QAAQwsI,GACnDvrJ,MAAMxD,KAAKokL,gBACXpkL,KAAKokL,aAAenhK,GAExBjjB,KAAKukL,oBAAoBvkL,KAAKokL,cAC1BpkL,KAAKwkL,mBAAmBxyJ,IACxBhyB,KAAKmiL,gBAAgBf,KAG7B,cAAcn+J,GACV,GAAKzf,MAAMjC,SAASvB,KAAKgkL,mBAAmB,UAA5C,CAMA,IAHA,IAAI50B,EAASpvJ,KAAKgkL,mBAAmB,SAAxBhkL,CAAkCA,KAAKyjL,YAChDgB,EAAczkL,KAAKokL,aAAenhK,EAAKnlB,cACvC4mL,EAAWt1B,EAAOp9H,IAAMo9H,EAAOxtI,IAC1BnmB,EAAI,EAAGA,GAAKipL,EAAUjpL,IAG3B,GAFAuE,KAAK0iL,eAAe1iL,KAAKyiL,mBACzBziL,KAAK2iL,cAAclnL,EAAI,GACnB,IAAMuE,KAAKgkL,mBAAmB,QAAQlmL,cAAcQ,QAAQmmL,GAE5D,YADAzkL,KAAKokL,aAAeK,GAI5BzkL,KAAKsiL,qBACDtiL,KAAKokL,eACLpkL,KAAK2kL,oBACL3kL,KAAK2jL,cAAc1gK,MAG3B,oBACIjjB,KAAKokL,aAAe,IAExBvC,YAAa,SAAS9nH,GAClB,IAAK/5D,KAAK8hL,iBAAkB,CACxB,IAAI1lL,EAAS4D,KAAKwiL,oBAAoBxiL,KAAK+nB,OAAO,mBAClD/nB,KAAKukL,oBAAoBnoL,GACzB4D,KAAKmiL,gBAAgBpoH,GAEzB/5D,KAAK2kL,qBAET,mBACI,OAAO3kL,KAAK+nB,OAAO,oBAAsB,SAAW/nB,KAAK+nB,OAAO,SAEpE,qBACI/nB,KAAK4kL,YAAc,gBAAc5kL,KAAKonJ,oBAAqB,SAC3D,IAAIlvH,EAASl4B,KAAK4kL,YAAY1sJ,OAC1B6mB,EAAS7mB,EAAO6mB,OAChB9C,EAAQ/jB,EAAO+jB,MACf4oI,EAAmB,IAAI1sJ,OAAO,wBAC9B2sJ,EAAkB/lI,EAAOljD,MAAMgpL,GAAkB/oL,IAAIipL,GAAcF,EAAiBjyJ,KAAKmyJ,GAAcA,EAAa,QAAmBthL,cAAcshL,GAAY,IAAQ/oL,KAAK,IAClLgE,KAAK4kL,YAAY1sJ,OAAS,IAAIC,OAAO2sJ,EAAiB7oI,IAE1D,iBACIj8C,KAAK0jL,iBAAmB,EACxB1jL,KAAK6jL,eAAiB,KACtB7jL,KAAKglL,qBACLhlL,KAAK0iL,kBAET,cACI1iL,KAAKC,WACLD,KAAKilL,oBACLjlL,KAAKklL,kBACDllL,KAAK6lJ,qBACL7lJ,KAAKmlL,oBACLnlL,KAAKolL,iBACLplL,KAAK8jL,qBAGb,mBACI,GAAK9jL,KAAK6lJ,mBAAV,CAGA,IAAItpJ,EAAOyD,KAAK+nB,OAAO,SAAW/nB,KAAK0/K,kBAAkB1/K,KAAKyjL,YAC1DlnL,IACAyD,KAAKqlL,WAAap2B,GAAgB1yJ,EAAMyD,KAAK4kL,aACxC5kL,KAAKgiJ,SAASp0J,GAAG,YAClBoS,KAAKmiL,qBAIjB,oBACI,OAAa5hH,IAAIvgE,KAAKgiJ,SAAU,IAAMm/B,KAE1C,oBACI,OAAa97K,GAAGrF,KAAKgiJ,SAAU,gBAAa,UAAWm/B,IAAuBnhL,KAAKslL,kBAAkB96J,KAAKxqB,OAC1G,OAAaqF,GAAGrF,KAAKgiJ,SAAU,gBAAa,QAASm/B,IAAuBnhL,KAAKulL,kBAAkB/6J,KAAKxqB,OACxG,OAAaqF,GAAGrF,KAAKgiJ,SAAU,gBAAa,OAAQm/B,IAAuB,KACvEnhL,KAAKmjL,wBAET,OAAa99K,GAAGrF,KAAKgiJ,SAAU,gBAAa,iBAAkBm/B,IAAuBnhL,KAAKwlL,2BAA2Bh7J,KAAKxqB,OACtHA,KAAK+iL,wBACL,OAAa19K,GAAGrF,KAAKgiJ,SAAU,gBAAa,cAAem/B,IAAuBnhL,KAAKylL,wBAAwBj7J,KAAKxqB,QAG5H,sBACIA,KAAKuiJ,mBAAmBviJ,KAAK0/K,kBAAkB1/K,KAAKyjL,aACpDzjL,KAAKmiL,mBAET,kBACQniL,KAAK+nB,OAAO,UACZ/nB,KAAK0jL,iBAAmB1jL,KAAKqlL,WAAWzrL,OACxCoG,KAAKmiL,gBAAgBd,MAG7B,mBACQrhL,KAAK+nB,OAAO,UACZ/nB,KAAK0jL,kBAAoB,EACzB1jL,KAAKmiL,gBAAgBf,MAG7B,cAAcx9K,GACN5D,KAAK6lJ,oBACL7lJ,KAAK2iL,cAAc/+K,EAAEg+I,MAAQ,EAAIw/B,GAAUC,GAAUz9K,IAG7D,kBACI,IAAI28I,EAAOrgJ,UAAUtG,OAAS,QAAK,IAAWsG,UAAU,GAAKA,UAAU,GAAK,EAC5E,GAAKF,KAAK+nB,OAAO,UAAW/nB,KAAK0lL,UAAjC,CAGInlC,IACAvgJ,KAAKyiL,kBAAoB,IAAI1oL,KAAKiG,KAAKyjL,aAE3C,IAAIriL,EAAQ,gBAAapB,KAAK0jL,iBAAmBnjC,EAAM,EAAGvgJ,KAAKqlL,WAAWzrL,OAAS,GACnF,GAAIoG,KAAKqlL,WAAWjkL,GAAO+tJ,OAAQ,CAC/B,IAAIw2B,EAAkB,IAAMvkL,GAASm/I,EAAO,GAAKn/I,IAAUpB,KAAKqlL,WAAWzrL,OAAS,GAAK2mJ,EAAO,EAChG,IAAKolC,EAED,YADA3lL,KAAKmiL,gBAAgB5hC,GAAQ,EAAIA,EAAO,EAAIA,EAAO,GAGnDn/I,EAAQpB,KAAK0jL,iBAGjB1jL,KAAK0jL,mBAAqBtiL,GAC1BpB,KAAK2kL,oBAET3kL,KAAK0jL,iBAAmBtiL,EACxBpB,KAAK8mJ,OAAO9mJ,KAAKgkL,mBAAmB,YAExC,wBACI,GAAI,MAAQhkL,KAAKgkL,mBAAmB,WAAW,GAC3C,MAAO,MAGf,qBAAqB4B,GACjB,IAAIC,EAAgB7lL,KAAKgkL,mBAAmB,UAC5C,OAAO6B,EAAc7lL,KAAKyjL,WAAYmC,GAAkB5lL,KAAK8lL,0BAEjE,oBAAoB/vJ,GAChBA,EAAYA,GAAa/1B,KAAKyjL,WAC9B,IAAIvwG,EAASlzE,KAAKgkL,mBAAmB,UACrC,OAAO,eAAW9wG,GAAUA,EAAOn9C,GAAaA,EAAUm9C,MAE9D,kBAAkBrxE,GACd,IAAIkkL,EAAS/lL,KAAKokL,aAAa/xJ,MAAM,OACjC+8H,EAASpvJ,KAAKskL,uBACdv1B,EAAiBp1J,OAAOy1J,EAAOp9H,KAAKp4B,OACxC,QAASmsL,GAAUA,EAAO,IAAM,IAAMpsL,OAAOkI,IAAQ0gB,QAAQwsI,IAEjE,oBAAoBltJ,EAAOk0B,GACvBA,EAAYA,GAAa/1B,KAAKyjL,WAC9B,IAAIl0B,EAASvvJ,KAAKgkL,mBAAmB,UACjC50B,EAASpvJ,KAAKskL,uBAClBziL,EAAQ,gBAAQA,EAAOutJ,EAAOxtI,IAAKwtI,EAAOp9H,KAAOnwB,EAAQA,EAAQ,GACjEA,EAAQ7B,KAAKgmL,kBAAkB,gBAAankL,EAAOutJ,EAAOxtI,IAAKwtI,EAAOp9H,MACtE,eAAWu9H,GAAUA,EAAOx5H,EAAWl0B,GAASk0B,EAAUw5H,GAAQ1tJ,GAClE7B,KAAKuiJ,mBAAmBviJ,KAAK0/K,kBAAkB3pJ,IAC/C/1B,KAAK8jL,oBAET,mBAAmB1rD,GACf,GAAKp4H,KAAKqlL,YAAerlL,KAAKqlL,WAAWrlL,KAAK0jL,kBAG9C,OAAO1jL,KAAKqlL,WAAWrlL,KAAK0jL,kBAAkBtrD,IAElD,iBACI,IAAIv2H,EAAQ3B,UAAUtG,OAAS,QAAK,IAAWsG,UAAU,GAAKA,UAAU,GAAKF,KAAKumK,WAAW,SAC7FvmK,KAAKyjL,WAAa5hL,GAAS,IAAI9H,KAAK8H,GACpC7B,KAAKyiL,kBAAoB5gL,GAAS,IAAI9H,KAAK8H,IAE/C,iBACI,IAAIA,EAAQ7B,KAAKyjL,YAAc,IAAI1pL,KAAKiG,KAAKyjL,YACzC5hL,GAAS,SAAW7B,KAAK+nB,OAAO,SAChClmB,EAAM01B,SAAS,EAAG,EAAG,EAAG,GAE5Bv3B,KAAKyiL,kBAAoB,IAAI1oL,KAAK8H,GAClC7B,KAAKumK,WAAW,QAAS1kK,IAE7B,iBACI7B,KAAK0iL,iBACL1iL,KAAKuiJ,mBAAmBviJ,KAAK0/K,kBAAkB1/K,KAAKyjL,aACpDzjL,KAAK8jL,oBAET,mBAAmBvnL,GACfyD,KAAKC,SAAS1D,GACVyD,KAAK6lJ,oBACL7lJ,KAAK+nB,OAAO,OAAQxrB,IAG5B,cAAcgkJ,EAAMqlC,GAChB5lL,KAAKsiL,qBACL,IACItwJ,IAAKA,EACLpQ,IAAKA,GACL5hB,KAAKskL,qBAAqBsB,GAC1BK,EAAaj0J,EAAMpQ,EACnB,IAAMqkK,GACNA,IAEJ,IAAI3yG,EAAWitE,EAAOvgJ,KAAKwiL,sBACvBlvG,EAAWthD,EACXshD,EAAWtzE,KAAKkmL,aAAa5yG,EAAU,CACnC6yG,UAAWvkK,EACXwkK,aAAcp0J,EACdi0J,WAAYA,IAET3yG,EAAW1xD,IAClB0xD,EAAWtzE,KAAKkmL,aAAa5yG,EAAU,CACnC6yG,UAAWn0J,EACXo0J,aAAcxkK,EACdqkK,WAAYA,KAGpBjmL,KAAKukL,oBAAoBjxG,IAE7B,aAAaA,EAAUojB,GACnB,IACIyvF,UAAWA,EACXC,aAAcA,EACdH,WAAYA,GACZvvF,EACAkrD,GAAStuE,EAAW8yG,GAAgBH,EACxC,OAAOrkC,EAAQukC,EAAYvkC,EAAQ,EAAI,gBAAKA,GAASwkC,GAEzD,oBACIpmL,KAAK0iL,eAAe1iL,KAAKyjL,YACrBzjL,KAAK+nB,OAAO,UACZ/nB,KAAK0jL,iBAAmB/zB,GAA2B3vJ,KAAKqlL,WAAYrlL,KAAK8mJ,SAAS3sF,OAC7En6D,KAAK8hL,mBACF,eAAU9hL,KAAK0jL,kBACf1jL,KAAK8mJ,OAAO9mJ,KAAKgkL,mBAAmB,UAEpChkL,KAAKgiL,qBAKrB,2BAA2Bp+K,GACvB5D,KAAKgiJ,SAAST,IAAIvhJ,KAAK0/K,kBAAkB1/K,KAAKyjL,aAC9CzjL,KAAKmiL,kBACLniL,KAAKkjL,kBAAoB,KACrBljL,KAAKmjL,wBAGb,kBAAkBv/K,GACd,IAAI45I,EAAUx9I,KAAK8oJ,qBAAqB9oJ,KAAK+nB,OAAO,QAAS/nB,KAAK8mJ,SAAU,gBAAcljJ,IACtFtK,EAAO,QAAiB6G,MAAMq9I,EAASx9I,KAAKonJ,qBAC5C9tJ,GAAQ0G,KAAKqmL,aAAa/sL,KAC1B0G,KAAKyjL,WAAanqL,EAClB0G,KAAKuiJ,mBAAmBviJ,KAAK0/K,kBAAkB1/K,KAAKyjL,aACpDzjL,KAAK8jL,mBACL9jL,KAAKmiL,mBAETv+K,EAAEg3B,kBAENyrJ,aAAc/sL,GAAQ,eAAOA,KAAUkK,MAAMlK,GAC7C,gBACI,IAAIuI,EAAQ7B,KAAKumK,WAAW,SAC5B,OAAQvmK,KAAKyjL,YAAczjL,KAAKyjL,WAAW1/K,cAAgBlC,GAASA,EAAMkC,YAE9E,mBACI/D,KAAK2kL,oBACD3kL,KAAKsmL,iBACL,OAAax5J,QAAQ9sB,KAAKgiJ,SAAU,WAG5C,cAAcp+I,GACV5D,KAAKumL,mBACLvmL,KAAKmiL,gBAAgBf,IACrBx9K,EAAEg3B,kBAEN,iBAAiBh3B,GACb,IAAI4iL,EAAwBxmL,KAAK6lJ,qBAAuBjiJ,EAAE6iL,qBACtDD,GACAxmL,KAAKumL,mBACLvmL,KAAKC,SAAS2D,GACd5D,KAAK+hL,iBAAiBn+K,IAEtB5D,KAAKC,SAAS2D,IAGtB,yBAAyBA,GACrB,IAAIrH,EAAOyD,KAAK+nB,OAAO,QACnB/nB,KAAK6lJ,oBACL7lJ,KAAK+iJ,sBAAsBn/I,GACtBrH,EAEM,OAASyD,KAAKyjL,YACrBzjL,KAAK0iL,eAAenmL,GAFpByD,KAAKyjL,WAAa,KAItBzjL,KAAK0mL,kBAEL1mL,KAAKC,SAAS2D,IAGtB,eAAei7C,GACX,OAAQA,EAAKj9C,MACT,IAAK,kBACD5B,KAAK2mL,cACL,MACJ,IAAK,gBACL,IAAK,OACD3mL,KAAKC,SAAS4+C,GACd7+C,KAAK2mL,cACL,MACJ,IAAK,QACD3mL,KAAK0iL,iBACL1iL,KAAKC,SAAS4+C,GACd7+C,KAAK8jL,mBACL,MACJ,IAAK,iBACD,MACJ,QACI9jL,KAAKC,SAAS4+C,KAG1B,kBACI7+C,KAAK2kL,2BACE3kL,KAAKqlL,kBACLrlL,KAAK0jL,wBACL1jL,KAAKyjL,YAEhB,QACIzjL,KAAKklL,kBACLllL,KAAK0jL,iBAAmB,EACxB1jL,KAAKC,YAET,SACID,KAAKC,WACLD,KAAKilL,oBACLjlL,KAAKklL,qBAGE,MC7kBf,eAAkB,YAAa,IAChB,ICuBXt2J,UAAWA,IACX,QAMAg4J,GAAsB,gBACtBC,GAAsB,yBACtBC,GAAqB,WACrB,IAAIC,EAAkB,SAAS5lH,EAAQnwD,GACnC,OAAO,OAAAvW,EAAA,WAAO0mE,EAAQ,CAClB5J,SAAUvmD,EAAQumD,SAClBgG,YAAavsD,EAAQusD,YACrBypH,UAAW,CACPl4L,GAAIkiB,EAAQliB,IAEhB06D,SAAUx4C,EAAQw4C,UACnBx4C,EAAQ3J,gBAEX4/K,EAAgB,WAChB,OAAOx4J,EAAA,KAAQC,SAAWmqF,GAAA,KAAQC,OAAOouE,KAEzCC,EAAsB,SAASn2K,GAC/B,IAAI7K,EAAO,GACPihL,EAAaH,IACbI,EAAar2K,EAAQq2K,YAAclhL,EACvC,OAAO4gL,EAAgB,CACnBxpH,YAAavsD,EAAQusD,YACrBh2D,MAAOyJ,EAAQzJ,MACf1F,MAAOmP,EAAQnP,MACfmxD,eAAgB,SAASpvD,GACrB,IAAI0jL,EAAoB,cAAgBt2K,EAAQi3H,YAAc,gBAAkBj3H,EAAQi3H,WACpFs/C,EAAsB3jL,EAAE09D,QAAU,UAAY19D,EAAE09D,MAAM7iE,MAAQ,UAAYmF,EAAE09D,MAAM7iE,MAClF+oL,EAAc,SAAS5jL,EAAG6kF,GAC1Bz3E,GAAWA,EAAQk3H,SAAStkI,EAAE/B,MAAO4mF,IAEzChf,aAAatjE,EAAKshL,oBACdF,GAAuBD,EACvBD,EAAWI,mBAAqBthL,EAAKshL,mBAAqBx0K,YAAW,WACjEu0K,EAAY5jL,EAAGuC,EAAKshL,qBAAuBJ,EAAWI,sBACtD,eAAUz2K,EAAQ02K,oBAAsB12K,EAAQ02K,mBAAqB,GAEzEF,EAAY5jL,IAGpBmjD,UAAW,SAASnjD,GACZwjL,GAAc,UAAY,gBAAiBxjL,EAAE09D,QAC7C,OAAax0C,QAAQ,eAAElpB,EAAEmJ,UAAUi1I,UAAW,WAGtD2lC,iBAAkB,UAAY,cAAgB32K,EAAQi3H,WAAa,eAAiB,KACrFj3H,IAEH42K,EAAuB,SAAS52K,GAC5B,cAAgBA,EAAQi3H,YAAc,kBAAoBj3H,EAAQi3H,WAClE4/C,EAAiB,OAAAptL,EAAA,WAAOuW,EAAS,CAC7B+Y,OAAQ,CACJiG,YAAa,SAAS7pB,GAClB,OAAI,IAASA,EACF6K,EAAQ0Y,UAAY,QACpB,IAAUvjB,EACV6K,EAAQ2Y,WAAa,aADzB,GAIXJ,WAAY,EAAC,GAAM,OAIzB,SAASvY,GACPA,EAAQ82K,WAAa,aACrB92K,EAAQ3J,cAAgB0/K,EAAgB,CACpC9iI,YAAa,CACTn1D,GAAIkiB,EAAQliB,IAEhB+S,MAAO,eAAUmP,EAAQnP,OAASmP,EAAQnP,WAAQ,EAClDqjD,mBAAoBl0C,EAAQumD,SAC5B1S,mBAAoB7zC,EAAQumD,SAC5BzU,oBAAoB,EACpBkQ,eAAgB,SAASpvD,GACrBoN,EAAQk3H,UAAYl3H,EAAQk3H,SAAStkI,EAAE/B,MAAO+B,KAEnDoN,GAbL,CAcAA,IAIV,SAAS62K,EAAiB72K,GACtB,IACI+2K,EACAx+J,EACAy+J,EAHAj+J,EAAS/Y,EAAQ+Y,OAIjBijD,EAAc,cAAgBh8D,EAAQi3H,WAC1C,GAAIl+G,EAAQ,CACRg+J,EAAgB,gBAAch+J,EAAOiG,aACrCzG,EAAaQ,EAAOR,WAChB,eAAWA,KAAgBqF,GAAUrF,KACrCA,EAAaA,EAAWvY,EAAQH,KAAO,IACrC,SAASG,GACP,GAAIA,EAAQH,KAAOG,EAAQH,IAAIhE,OAAS,YAAcmE,EAAQi3H,WAAY,CACtE,IAEIggD,EAFA5gL,EAAgB2J,EAAQ3J,eAAiB,GAC7C2J,EAAQ3J,cAAgBA,EAExB,IAMIkiB,EANAs9B,EAAgBx/C,EAAcw/C,cAClCx/C,EAAcw/C,cAAgB,SAASjjD,GACnCijD,GAAiBA,EAAc/nD,MAAMkB,KAAME,WAC3C+nL,EAAYrkL,EAAEmJ,UACdk7K,EAAU5iL,GAAG,YAAa6iL,IAG9B,IAAIA,EAAYl3K,EAAQH,IAAIhE,MAAM,KAC9B0c,EAAavY,EAAQ+Y,OAAOR,WAAWvY,EAAQH,KACxC0Y,GAAcA,EAAWnrB,QACjC,KACC6pL,EAAUlgK,OAAO,aAAcwB,IAChC1Y,IACCG,EAAQH,IAAMA,KAlBxB,CAqBAG,KAEF,eAASuY,IAAe1qB,MAAM0nB,QAAQgD,MACtCA,EAAa,gBAA2BA,GACpCyjD,IACAg7G,EAAcz+J,EAAWy+J,YACzBz+J,EAAWy+J,YAAc,SAASt/J,GAK9B,OAJI,IAAM1oB,KAAKu7D,cACX7yC,EAAQA,EAAMrF,MAAM,GACpBqF,EAAM8I,QAAQ,OAEdw2J,EACOA,EAAYxiK,KAAKxlB,KAAM0oB,GAE3BA,KAInB,IAAI2mC,EAAgBtkC,QAAQhB,EAAOslC,gBAAkB2d,GACrDh8D,EAAQ82K,WAAa,cACrB92K,EAAQ3J,cAAgB0/K,EAAgB,CACpCv7C,eAAe,EACf3pI,MAAOmP,EAAQnP,MACfkuB,UAAW/e,EAAQ+Y,OAAOgG,UAC1Bo4J,WAAYn3K,EAAQ+Y,OAAOo+J,YAAcn3K,EAAQ+Y,OAAOiG,YACxDq/B,cAAeA,EACf+4H,gBAAiB/4H,EACjBr/B,YAAa,SAAS7pB,GAClB,OAAI,OAASA,EACF6K,EAAQylD,YAEZsxH,EAAc5hL,IAEzBojB,WAAYA,EACZypC,eAAgB,SAASpvD,GACrB,IAAIg8E,EAAS,CAACh8E,EAAE/B,QACfmrE,GAAe4S,EAAO38E,KAAKW,EAAEmJ,UAAUgb,OAAO,SAC/C/W,EAAQk3H,SAASppI,MAAMkB,KAAM4/E,KAElC5uE,IAGX,MAAO,CACHg3H,aAAc,SAASljH,EAAY9T,GAM/B,GALAA,EAAQ4+C,QAAS,EACjB5+C,EAAQq3K,cAAgB,eAAiBvjK,GACpC,eAAU9T,EAAQw4C,YACnBx4C,EAAQw4C,SAAWxpD,KAAK+nB,OAAO,aAE/B/W,EAAQ+Y,OACR89J,EAAiB72K,QAEjB,OAAQA,EAAQoT,UACZ,IAAK,OACL,IAAK,YACC,SAASpT,GACPA,EAAQ82K,WAAa,YACrB92K,EAAQ3J,cAAgB0/K,EAAgB,CACpCllL,MAAOmP,EAAQnP,MACfmxD,eAAgB,SAASnU,GACrB7tC,EAAQk3H,SAASrpF,EAAKh9C,QAE1BklD,UAAW,SAAS75C,GAChB,IACIH,UAAWA,EACXu0D,MAAOA,GACPp0D,EACA3B,EAAkBwB,EAAUgb,OAAO,oBAClCk/J,KAAmB17K,IAAoB,UAAY,gBAAiB+1D,KACrEv0D,EAAUu7K,OACVv7K,EAAUiG,UAGlB1H,cAAe0F,EAAQ3X,OACvBoF,KAAMuS,EAAQoT,SACd0/B,wBAAyB,KACzBv8C,MAAO,kBAAoByJ,EAAQi3H,gBAAa,EAAS,QAC1Dj3H,GAtBL,CAuBAA,GACF,MACJ,IAAK,UACD42K,EAAqB52K,GACrB,MACJ,IAAK,UACC,SAASA,GACP,IAAImwD,EAASgmH,EAAoBn2K,GACjCmwD,EAAOt/D,MAAQ,eAAUmP,EAAQnP,OAASmP,EAAQnP,MAAQ,KAC1DmP,EAAQ82K,WAAa,cACrB92K,EAAQ3J,cAAgB85D,EAJ1B,CAKAnwD,GACF,MACJ,SACM,SAASA,GACP,IAOInP,EAPAs/D,EAASgmH,EAAoBn2K,GAC7Bu3K,EAAc,gBAAkBv3K,EAAQi3H,WACxCj3H,EAAQqnD,YAAc,cAAgBrnD,EAAQqnD,WAC9C8I,EAAOt/D,MAAQmP,EAAQnP,MAEvBs/D,EAAOt/D,OAASA,EAAQmP,EAAQnP,MAAO,eAAUA,GAASA,EAAM4f,WAAa,IAGjF0/C,EAAOwmH,kBAAoBY,EAAc,sBAAwB,GACjEpnH,EAAOtlB,KAAOslB,EAAOtlB,OAAS0sI,EAAc,SAAW,QACvDv3K,EAAQ82K,WAAa,YACrB92K,EAAQ3J,cAAgB85D,EAZ1B,CAaAnwD,GAGV,YAAcA,EAAQi3H,YAAcj3H,EAAQqnD,aAC5CrnD,EAAQ82K,WAAa92K,EAAQqnD,YAEjCr4D,KAAKwhE,cAAc,oBAAqBxwD,GACpCA,EAAQ4+C,SAGR,YAAc5+C,EAAQi3H,YAAej3H,EAAQw3K,UAAa,eAAUx3K,EAAQ3J,cAAcohL,sBAC1Fz3K,EAAQ3J,cAAcohL,oBAAqB,GAC5C,SAAS9kL,EAAMqN,GACd,IAAI03K,EAAiB,eAAE13K,EAAQq3K,eAC/B,GAAIr3K,EAAQ82K,YAAc92K,EAAQ3J,eAAiBqhL,EAAe13K,EAAQ82K,YAAa,CAQnF,GAPI,eAAiB92K,EAAQ82K,YAAc,aAAe92K,EAAQ82K,YACzD92K,EAAQw3K,WACTE,EAAephK,SAAS3jB,EAAKojB,gBAAgB6/J,KAC7C8B,EAAex6J,SAAS5G,SAASu/J,KAGzCljL,EAAKykB,iBAAiBsgK,EAAgB13K,EAAQ82K,WAAY92K,EAAQ3J,eAC9D,cAAgB2J,EAAQ82K,WAAY,CACpC,IAAIvjB,EAAUmkB,EAAeC,UAAU,YACnCC,EAAyBrkB,EAAQluD,iBAAiBiqC,MACtDikB,EAAQ6C,mBAAmB,QAASxjK,IAC5B2gK,EAAQx8I,OAAO,WACf6gK,EAAuBhlL,IAEpB,IAGX,eAAiBoN,EAAQ82K,YACzBY,EAAeG,WAAW,YAAYzhB,mBAAmB,SAAS,SAAU9lG,GACpE,UAAY,gBAAiBA,IAAWA,EAAMxuD,SAAYwuD,EAAMob,UAChEpb,EAAM+3C,sBAvBvB,CA4BDr5G,KAAMgR,GACRhR,KAAKwhE,cAAc,mBAAoBxwD,MAhQ1B,GAoQV,MC3QX,GAAsB,yBACtB,GAA4B,yBAC5B83K,GAAsB,gBACtB,GAAgB,UAChBC,GAAwB,aACxB,GAAY,SACZC,GAAmB,0BACnBC,GAAsB,gBAAa,CAACt/G,EAAA,KAAcC,KAAM,UAAW,QAAgB5tE,KAAK,KAAMgtL,IAC9FE,GAAY,YACZC,GAAgB,EAAQjnH,eAAe7C,QAAQ,CAC/C+pH,mBAAoB,SAASC,GACzB,IAAIC,EAActpL,KAAK+nB,OAAO,qBAAuB,qBAAuB,uCACxEwhK,EAAyB,uBAAuB13K,OAAOy3K,EAAa,yIACpEE,EAAkBH,EAAiBpiK,KAAKsiK,GAC5C,OAAOvpL,KAAK+hE,oBAAoBynH,IAAoBA,GAExDC,sBAAuB,WACnB,MAAO,gBAEXC,iBAAkB,WACd,IACIC,EACAC,EAFAP,EAAmBrpL,KAAK+M,WAAa/M,KAAK+M,UAAUiZ,WAGxD,GAAIqjK,EAAkB,CAClB,IAAIQ,EAAS7pL,KAAKopL,mBAAmBC,GACrC,GAAIQ,GAAUA,EAAOjwL,SACZiwL,EAAOvjH,SAAS,KAA+BujH,EAAOvjH,SAAS,MAChEqjH,EAAaE,EAAO58J,QAAQjtB,KAAKypL,wBAA0B,MAAQ,IACnEG,EAAcD,EAAWjsL,IAAI,KAAOmsL,EAAOnsL,IAAI,IAAMisL,EAAWrjH,SAAS,IACzEujH,EAASF,GAETE,EAAOjwL,SAAWiwL,EAAOvjH,SAAS,KAElC,YADAtmE,KAAKgT,MAAM62K,EAAQD,GAK/B5pL,KAAK8pL,aAETC,aAAc,SAASnmL,GACnB,IAAID,EAAO3D,KACPgqL,EAAiBpmL,GAAKA,EAAE09D,OAAS,eAAE19D,EAAE09D,MAAMh8C,QAAQghD,SAAS3iE,EAAKojB,gBAAgB+hK,KACrFnlL,EAAKsmL,gBAAkBtmL,EAAKsmL,iBAAmBD,EAC/CvgH,aAAa9lE,EAAKumL,uBAClBvmL,EAAKumL,sBAAwBj3K,YAAW,kBAC7BtP,EAAKumL,sBACPvmL,EAAKsmL,iBACNtmL,EAAK+lL,mBAET/lL,EAAKsmL,iBAAkB,MAG/BE,wBAAyB,SAASnkK,EAAUwuC,GACxCxuC,EAASwkC,OACT,IAAI8P,EAAW,QAAc8vH,UAAUpkK,EAAU,OAAAvrB,EAAA,WAAO,CACpD+tB,UAAW,OACZgsC,IACC8F,EAASl4C,EAAEioK,SAAW,GACtB,eAAcrkK,EAAU,eAAcA,GAAYs0C,EAASl4C,EAAEioK,UAE7D/vH,EAAS36B,EAAE0qJ,SAAW,GACtB,eAAerkK,EAAU,eAAeA,GAAYs0C,EAAS36B,EAAE0qJ,UAEnErkK,EAASykC,QAEbkV,cAAe,WACX,MAAO,CAAC,YAEZ3sD,MAAO,SAASgT,EAAUskK,GACtB,IAAI3mL,EAAO3D,KACX,QAAI,IAAWgmB,EACX,OAAOriB,EAAK4mL,iBACLvkK,IACFA,EAASp4B,GAAG+V,EAAK4mL,mBAClB5mL,EAAK4mL,kBAAoB5mL,EAAK4mL,iBAAiB/iK,YAAYuhK,IAE/DplL,EAAK4mL,iBAAmBvkK,EACxByjD,aAAa9lE,EAAK6mL,iBAClB7mL,EAAK6mL,gBAAkBv3K,YAAW,kBACvBtP,EAAK6mL,gBACZ7mL,EAAK8mL,mBAAmBzkK,EAAUskK,GAClCtkK,EAASsB,SAASyhK,IAClBplL,EAAK+mL,QAAQ5mH,KAAK99C,QAI9B2kK,QAAS,WACL,IAAId,EAAS7pL,KAAKgT,QAClBhT,KAAKgT,MAAM62K,IAEfY,mBAAoB,SAASzkK,EAAUskK,GACnC,GAAK,OAAcx8J,uBAAuB9tB,KAAMgmB,GAMhD,GAHKhmB,KAAK4qL,iBACN5qL,KAAK4qL,eAAiB,eAAE,SAAStjK,SAAStnB,KAAK+mB,gBAAgB+hK,MAE/DwB,EACAtqL,KAAK4qL,eAAetjK,SAAS4hK,SAC1B,GAAIljK,EAASpsB,OAAQ,CACxB,IAAI+2K,EAAQliJ,EAAA,KAAQC,QAAU,eAAiB,WAC3CkuD,EAAW52D,EAASiH,QAAQ,IAAMjtB,KAAK+mB,gBAAgB,KACvD8jK,EAAY,eAAgB7kK,EAAStoB,IAAI,IAC7CsC,KAAK4qL,eAAepjK,YAAY0hK,IAAW3hK,SAASq1D,GACpD,eAAe58E,KAAK4qL,eAAgBC,EAAU78D,OAAS68D,EAAUj/J,IAAM,GACvE,eAAc5rB,KAAK4qL,eAAgBC,EAAUv+C,MAAQu+C,EAAUl/J,KAAO,GACtE,IAAIm/J,EAAuB,CACvBC,SAAS,EACTnvH,GAAI+0G,EACJj1G,GAAIi1G,EACJroJ,GAAItC,EACJuC,SAAUq0D,EAAShjF,QAAUgjF,GAEjC58E,KAAKmqL,wBAAwBnqL,KAAK4qL,eAAgBE,GAClD,QAAc5kE,MAAMlmH,KAAK4qL,eAAgBE,GACzC9qL,KAAK4qL,eAAen/J,IAAI,aAAc,aAG9Cs4C,OAAQ,WACJ,IAAIylH,EAAkBxpL,KAAKuqL,iBACvBf,GACAxpL,KAAKgT,MAAMw2K,IAGnBM,UAAW,WACP9pL,KAAKuqL,kBAAoBvqL,KAAKuqL,iBAAiB/iK,YAAYuhK,IAC3D/oL,KAAKuqL,iBAAmB,KACxBvqL,KAAK4qL,gBAAkB5qL,KAAK4qL,eAAetjK,SAAS4hK,KAExDnpH,KAAM,WACF//D,KAAKygE,aAAa,oBAAqB,CACnC0T,kBAAmB,CAAC,WAAY,YAChCC,SAAU,cAEdp0E,KAAKygE,aAAa,mBAAoB,CAClC0T,kBAAmB,CAAC,WAAY,YAChCC,SAAU,cAEdp0E,KAAKgrL,oBAAsBhrL,KAAKgrL,qBAAuBhrL,KAAKygE,aAAazgE,KAAK+pL,aAAav/J,KAAKxqB,OAChG,OAAaqF,GAAG,aAAW4pE,cAAeg6G,GAAqBjpL,KAAKgrL,qBACpEhrL,KAAKirL,iCAETA,8BAA+B,WAC3B,IAAItnL,EAAO3D,KACP8kB,EAAanhB,EAAKoJ,WAAapJ,EAAKoJ,UAAUiZ,WAC9ClB,GACA,OAAazf,GAAGyf,EAAY,gBAAa,UAAWkkK,KAAmB,SAAUplL,GACzE,QAAU,gBAAiBA,IAC3BD,EAAKqnL,oBAAoBpnL,OAKzC69D,QAAS,WACLgI,aAAazpE,KAAKwqL,iBAClB/gH,aAAazpE,KAAKkqL,uBAClB,OAAa3pH,IAAI,aAAW0O,cAAeg6G,GAAqBjpL,KAAKgrL,wBAE1E/rF,QAAQ,IACAisF,GAAsB,CAC7BvtL,eAAgB,WACZ,MAAO,IAEXknE,YAAa,CACTssD,cAAeg4D,KC5LvB,EAAS1jH,eAAe,gBAAiBylH,I,2CCmCrC,GAAS,iBACTC,GAAiB,CACjB5uL,KAAM,KACN2uD,QAAS,WACL,OAAO,IAGXkgI,GAAsB,YACtBC,GAA8B,GAAGx5K,OAAOu5K,GAAqB,YAC7DE,GAA2B,GAAGz5K,OAAOu5K,GAAqB,SAC1DG,GAA8B,GAAG15K,OAAOu5K,GAAqB,YAC7DI,GAA8B,GAAG35K,OAAOu5K,GAAqB,YAC7DK,GAA8B,GAAG55K,OAAOu5K,GAAqB,YAC7DM,GAA6B,GAAG75K,OAAOu5K,GAAqB,WAC5DO,GAAsB,YACfC,GAAsB,QAAUvsH,QAAQ,CAC/CE,KAAM,SAAS14C,EAAS7V,GACpBhR,KAAKC,SAAS+Q,IAElB0uG,qBAAsB,WAClB,OAAO1/G,KAAKC,WAAW4R,OAAO,CAAC,CAC3B8tG,OAAQ,CACJl9E,SAAU,OAEdzxB,QAAS,CACLzJ,MAAO,WAKZskL,GAAS,SAAS76K,GACzB,IAAI86K,EACApuH,EAAW,IAAI,cACf//D,GAAiB,IAAKiuL,IAAqB7jK,SAC/C/W,EAAU,OAAAvW,EAAA,WAAOkD,EAAgBqT,GACjC,IAAIgV,EAAW,eAAE,SAASsB,SAAS8jK,IAAqB7jK,SAAS,mBAC7DwkK,EAAmB,YAAa/6K,EAChCg7K,EAAuB,gBAAiBh7K,EACxC+6K,GACA,OAAOjoL,IAAI,SAEf,IAAImoL,EAActyL,OAAOqyL,EAAuBh7K,EAAQi7K,YAAcj7K,EAAQkX,SAC1EiiG,EAAW,eAAE,SAAS7iG,SAASkkK,IAA6BpxH,KAAK6xH,GACjEC,EAAoB,GACxB,eAAKl7K,EAAQm7C,SAAW,CAACg/H,KAAiB,WACtC,IAAI/pH,EAAS,IAAI,QAAOphE,KAAKkrD,QAAS,CAClCgmC,QAASi7F,IAEbD,EAAkBjpL,KAAK,CACnBwmD,QAAS,SACT6Q,SAAUu+C,GAAA,KAAQiK,UAAUwrD,QAAU,QAAU,SAChD7zG,OAAQ,WACRzpD,QAAS,OAAAvW,EAAA,WAAO,GAAIuF,KAAM,CACtBkrD,QAAS,WACL,IAAIjsD,EAASmiE,EAAOgrH,WAAWlsL,WAC/BsqD,EAAKvrD,WAKrB,IAAIktL,EAAgB,IAAI,QAAMnmK,EAAU,OAAAvrB,EAAA,WAAO,CAC3Co0D,MAAO,QAAUi9H,EAAiB96K,EAAQ69C,aAAU,IAAWi9H,EAAiBA,EAAiB,GACjGj3H,UAAW,eAAc7jD,EAAQ6jD,WAAW,GAC5CrB,YAAa,eAAcxiD,EAAQwiD,aAAa,GAChD9hD,OAAQ,OACRnK,MAAOyJ,EAAQzJ,MACfqtD,gBAAiB5jD,EAAQ4jD,kBAAmB,EAC5Cy3H,mBAAmB,EACnBlkK,UAAWnC,EACXi+F,gBAAiB,GACjBp+D,eAAgB,SAAShH,GACrBA,EAAK9xC,UAAU6vE,WAAWt1D,SAASikK,IAA6B3hJ,OAAOugF,IAE3E91D,UAAW,SAASzwD,GAChBA,EAAEmJ,UAAUu/K,gBAAgBhlK,SAASmkK,IAA6BxkK,KAAK,IAAIpV,OAAO85K,KAAsBrkK,SAASokK,IACjH,mBAEJp3H,QAAS,SAAS1wD,GACd,IAAI2oL,EAAe3oL,EAAEmJ,UAAUu/K,gBAAgBrlK,KAAK,IAAIpV,OAAO85K,KAAsBlyG,QACrF,OAAa3sD,QAAQy/J,EAAc,UAEvCt4H,SAAU,WACNyJ,EAAS75B,UAEbkxB,aAAcm3H,EACdh5H,UAAW,CACPzI,KAAM,CACFhsD,KAAM,MACNu7D,SAAU,KAEdxP,KAAM,CACF/rD,KAAM,MACNu7D,SAAU,IACVthE,GAAI,CACAggE,QAAS,EACTC,MAAO,GAEX5zB,KAAM,CACF2zB,QAAS,EACTC,MAAO,KAInBttC,WAAY,kBAASA,WACrBmpC,SAAU,CACNmH,eAAgB,CACZv5C,EAAG,GACHud,EAAG,KAGZ3uB,EAAQw7K,eAOX,SAAShiI,EAAK3oD,GACV67D,EAASluC,QAAQ3tB,GACjBsqL,EAAc3hI,OAAOr9B,MAAK,WACtBg/J,EAAcnmK,WAAW8B,YAGjC,OAZAqkK,EAAclxE,WAAW3zF,SAAS+jK,IAC9Br6K,EAAQwjD,UACR23H,EAAcpkK,OAAO,WAAY/W,EAAQwjD,UAE7C23H,EAAclxE,WAAW3zF,SAASgkK,IAQ3B,CACH7gI,KAAM,WACF,GAAI,YAAcouD,GAAA,KAAQC,OAAOr2E,SAAU,CACvC,IAAIgqJ,EAAa,eAAU,IAAU,eAAS,IAC1CllL,EAAQklL,EAAa,MAAQ,MACjCN,EAAcpkK,OAAO,CACjBxgB,MAAOA,IAIf,OADA4kL,EAAc1hI,OACPiT,EAASptC,WAEpBk6B,KAAMA,IAcH,GAAU,SAASyhI,GAC1B,IAAIp9H,EAAQ3uD,UAAUtG,OAAS,QAAK,IAAWsG,UAAU,GAAKA,UAAU,GAAK,GACzE20D,EAAY30D,UAAUtG,OAAS,EAAIsG,UAAU,QAAK,EAClD8Q,EAAU,eAAci7K,GAAeA,EAAc,CACrDp9H,MAAOA,EACPo9H,YAAaA,EACbp3H,UAAWA,EACX1I,QAAS,CAAC,CACN5vD,KAAM,OAAoBlD,OAAO,OACjC6xD,QAAS,WACL,OAAO,IAEZ,CACC3uD,KAAM,OAAoBlD,OAAO,MACjC6xD,QAAS,WACL,OAAO,KAGfsI,YAAaqB,GAEjB,OAAOg3H,GAAO76K,GAASy5C,Q,aChNhB,GAAoB,iBACpB,GAAY,SAEZiiI,GAAqB,eACrBC,GAAkB,YAClBC,GAA6B,SAC7BC,GAA6B,SAC7BC,GAA4B,gBAC5BC,GAA2B,eAC3BC,GAAiC,qBACjCC,GAAqC,yBACrCC,GAAwB,kBACxBC,GAAyB,6BACzBC,GAA6B,eAAiBD,GAC9CE,GAAkB,QAClBC,GAAgB,MAChBC,GAAiB,OACjBC,GAAiB,OACjBC,GAAkB,QAClBC,GAAyB,QACzBC,GAAwB,OACxBC,GAA+B,aAC/BC,GAA4B,UAC5BC,GAAmC,iBACnCC,GAAgC,cAChCC,GAAa,CAACX,GAAiBC,GAAeC,GAAgBC,GAAgBC,IAC9EQ,GAAkB,CAACX,GAAeE,GAAgBC,IAClDS,GAA2B,CAACZ,GAAeE,IC0ClDW,GAAiB,WACjBC,GAAa,UACbC,GAAe,eACfC,GAAoB,iBACpBC,GAAqB,kBACrBC,GAAgCD,GAAqB,cACrDE,GAAe,sBACfC,GAAe,kBACfC,GAAe,kBACfC,GAAgB,mBAChBC,GAAoB,oBACpB,GAA4B,yBAC5BC,GAA6B,SAC7BC,GAA4B,QAC5BC,GAAkB,CAClBnvD,KAAM,eACNjwE,OAAQ,iBACRq/H,KAAM,eACNC,SAAU,mBACVC,OAAQ,iBACR36G,IAAK,eAEL46G,GAAkB,CAClBvvD,KAAM,OACNjwE,OAAQ,SACRq/H,KAAM,OACNC,SAAU,SACVC,OAAQ,QACR36G,IAAK,OAEL66G,GAAe,CACfJ,KAAM,UACNE,OAAQ,YACRD,SAAU,cACVrvD,KAAM,eACNjwE,OAAQ,iBACR4kB,IAAK,oBAEL86G,GAAsB,CACtB96G,IAAK,cACLy6G,KAAM,gBACNE,OAAQ,iBAERI,GAAe,CAAC,OAAQ,OAAQ,SAAU,SAAU,YACpDC,GAA8B,kBAC9BC,GAAuB,SAAS/xH,GAChC,OAAO,SAASovC,GACZ,IAAI1qE,EAAQ0qE,aAAepxE,MAAQoxE,EAAM,IAAIpxE,MAAMoxE,GAAOnzG,OAAOmzG,IAAQ,iBACzEpvC,EAAS75B,OAAOzB,KAGpBstJ,GAAgB,SAASt1C,EAAWztE,GACpC,OAAOA,EAAYQ,WAAaitE,GAAaztE,EAAY77D,OAAO26C,cAEhEkkI,GAAsC,SAASv1C,EAAWztE,GAC1D,IAAIijH,IAAkBjjH,EAAY77D,OAAO6c,QACrCw/C,EAAYuiH,GAAct1C,EAAWztE,GACrCkjH,GAAgBD,IAAkBziH,GAAaR,EAAY77D,OAAOy8C,kBACtE,MAAO,SAAWof,EAAYx7D,SAAW0+K,GAEzCC,GAAoB,EAAQ5tH,eAAe7C,QAAQ,WACnD,IAAI0wH,EAAiB,CAAC5jI,EAASvqD,KAC3B,IAAI3C,GAAU,EAOd,OANAktD,EAAQz+B,KAAK,CAACqgC,EAAQ3sD,KAClB,GAAI4uL,EAAcjiI,KAAYnsD,EAE1B,OADA3C,EAASmC,GACF,IAGRnC,GAGX,SAAS+wL,EAAcjiI,GACnB,OAAO,eAASA,GAAUA,EAAOnsD,KAAOmsD,EAE5C,MAAO,CACHgS,KAAM,WACF//D,KAAKysE,mBAAqBzsE,KAAKihE,cAAc,WAC7CjhE,KAAKonB,gBAAkBpnB,KAAKihE,cAAc,QAC1CjhE,KAAKypH,UAAYzpH,KAAKmsB,QAAQ,YAC9BnsB,KAAKiwL,eAAiB,KAClBjwL,KAAKkwL,YACLlwL,KAAKkwL,WAAWhvL,QAAQghB,GAAKA,EAAE2hB,OAAO,WAE1C7jC,KAAKkwL,WAAa,GACblwL,KAAKy4F,sBACNz4F,KAAKy4F,oBAAsBz4F,KAAK00E,mBAAmBlqD,KAAKxqB,MACxDA,KAAKonB,gBAAgBqtD,QAAQD,IAAIx0E,KAAKy4F,sBAErCz4F,KAAKmwL,qBACNnwL,KAAKygE,aAAa,eAAgB,CAC9B0T,kBAAmB,CAAC,WAAY,cAEpCn0E,KAAKygE,aAAa,iBAAkB,CAChC0T,kBAAmB,CAAC,WAAY,cAEpCn0E,KAAKygE,aAAa,gBAAiB,CAC/B0T,kBAAmB,CAAC,WAAY,cAEpCn0E,KAAKygE,aAAa,iBAAkB,CAChC0T,kBAAmB,CAAC,WAAY,cAEpCn0E,KAAKygE,aAAa,gBAAiB,CAC/B0T,kBAAmB,CAAC,WAAY,cAEpCn0E,KAAKygE,aAAa,eAAgB,CAC9B0T,kBAAmB,CAAC,WAAY,cAEpCn0E,KAAKygE,aAAa,gBAAiB,CAC/B0T,kBAAmB,CAAC,WAAY,cAEpCn0E,KAAKygE,aAAa,eAAgB,CAC9B0T,kBAAmB,CAAC,WAAY,cAEpCn0E,KAAKygE,aAAa,UAAW,CACzB0T,kBAAmB,CAAC,WAAY,cAEpCn0E,KAAKygE,aAAa,WAAY,CAC1B0T,kBAAmB,CAAC,WAAY,cAEpCn0E,KAAKygE,aAAa,kBAAmB,CACjC0T,kBAAmB,CAAC,WAAY,cAEpCn0E,KAAKygE,aAAa,iBAAkB,CAChC0T,kBAAmB,CAAC,WAAY,eAGxCn0E,KAAKowL,oBACLpwL,KAAKqwL,qBACArwL,KAAKswL,iBACNtwL,KAAKswL,eAAiB,IAE1BtwL,KAAK+M,UAAUkzG,oBAAoB+sE,KAAkC,EACrEhtL,KAAK+M,UAAUkzG,oBAAoBuvE,KAA+B,GAEtEe,YAAa,WACT,IAAIC,EAAWxwL,KAAK+nB,OAAO,gBAC3B,OAAK,IAAMimK,GAAW1vL,QAAQkyL,GACnBA,EAEJlD,IAEXmD,0BAA2B,WACvB,MAAO,CAACtoK,EAAWnX,KACf,IAAI22H,EAAU,eAAE,SAASpgH,SAASY,GAClCnoB,KAAKihE,cAAc,iBAAiB+mE,aAAaL,EAAS,OAAAltI,EAAA,WAAO,GAAIuW,EAAQF,OAAQ,CACjFjP,MAAOmP,EAAQnP,MACfqmI,SAAUl3H,EAAQk3H,SAClBr3H,IAAKG,EAAQH,IACbo3H,WAAY,UACZ1gI,MAAO,KACPgwD,UAAWvmD,EAAQk3H,SACnBsgD,SAAUx3K,EAAQw3K,SAClB15L,GAAIkiB,EAAQliB,QAIxB4hM,mBAAoB,WAChB,IAAIpgI,EAAiBtwD,KAAK+nB,OAAO,0BAC7Bq6E,EAAgBpiG,KAAK+nB,OAAO,kBAChC,GAAI,YAAcq6E,EACd,OAAQ9xC,GACJ,KAAKu9H,GACD,OAAOE,GACX,KAAKH,GACD,OAAOE,GACX,QACI,OAAOx9H,EAGnB,OAAOA,GAEXqgI,WAAY,WACR,OAAO3wL,KAAK+nB,OAAOynK,KAEvBoB,kBAAmB,WACf,IAAI3jL,EAAUjN,KAAK+nB,OAAOynK,IAC1B,OAAOviL,EAAQ7O,OAAOwyD,GAAU,WAAaA,EAAOnyD,MAAM7E,QAE9Di3L,aAAc,WACV,IAAI5jL,EAAUjN,KAAK2wL,aACfG,EAAY,OAAS7jL,QAAW,IAAWA,OAAU,EAASA,EAAQrT,OACtEk3L,GACA9wL,KAAKqgE,cAAcmvH,GAA6B,KAGxDuB,iBAAkB,SAASj2L,GACvB,OAAOkF,KAAKswL,eAAelyL,OAAO2I,GAAQ,eAAaA,EAAKjM,IAAKA,IAAM,IAE3Ek2L,iBAAkB,SAASpxG,GACvB,IAAIqxG,EAAejxL,KAAK+wL,iBAAiBnxG,EAAO9kF,KAChD,OAAIm2L,EACO,OAAAx2L,EAAA,WAAOw2L,EAAcrxG,IAEhC5/E,KAAKswL,eAAertL,KAAK28E,GAClBA,IAEXsxG,YAAa,SAASp2L,GAClB,IAAIq2L,EACJ,OAAO,QAAUA,EAAwBnxL,KAAK+wL,iBAAiBj2L,UAAS,IAAWq2L,OAAwB,EAASA,EAAsB7sD,SAE9I8sD,eAAgB,SAASjrL,GACrB,IAAIrL,EAAMkF,KAAKonB,gBAAgBszE,MAAMv0F,GACjC8G,EAAUjN,KAAK2wL,aACfU,EAAY,OAAc5oK,cAAc3tB,EAAKmS,GACjD,OAAIA,EAAQokL,GACD,gBAAwBlrL,EAAM8G,EAAQokL,GAAWlrL,MAErDA,GAEXmrL,gBAAiB,WACb,OAAOtxL,KAAK2wL,aAAavyL,OAAOwyD,GAAUA,EAAOzqD,MAAQyqD,EAAOnyD,OAASmuL,IAA4B9wL,IAAI80D,GAAUA,EAAOzqD,OAE9HorL,eAAgB,WACZ,OAAOvxL,KAAK2wL,aAAavyL,OAAOwyD,GAAU5wD,KAAKkxL,YAAYtgI,EAAO91D,MAAQ81D,EAAOnyD,OAASouL,IAA4B/wL,IAAI80D,GAAU5wD,KAAKkxL,YAAYtgI,EAAO91D,OAEhK02L,uBAAwB,SAAS1kF,GAC7B,GAAI,WAAaA,EAAjB,CAGA,IAAIud,EAAgBrqH,KAAKyxL,kBACzBzxL,KAAKonB,gBAAgB64E,kBAAkBn8B,KAAKgpC,EAAKud,KAErDqnE,yBAA0B,OAC1BC,eAAgB,OAChBj9G,mBAAoB,OACpBk9G,wBAAyB,SAAS7jI,EAAQ/8C,GACtC,IAAI/R,GAAS,EACb,OAAQ8uD,EAAOnsD,MACX,IAAK,SACD3C,EAASe,KAAKgwD,cAAch/C,GAC5B,MACJ,IAAK,WACD/R,GAAS,EAEjB,OAAOA,GAEX4yL,iBAAkB,SAAS9jI,EAAQ/8C,GAC/B,IAAI24C,EAAUoE,EAAOpE,QACrB,OAAK,eAAUA,GAGR,eAAWA,GAAWA,EAAQnkC,KAAKuoC,EAAQ,CAC9ChhD,UAAWiE,EAAQjE,UACnB8D,IAAKG,EAAQH,IACbC,OAAQE,EAAQF,SACf64C,EANM3pD,KAAK4xL,wBAAwB7jI,EAAQ/8C,IAQpD8gL,kBAAmB,SAAS/jI,EAAQ/8C,GAChC,IAAI+yC,EAAWgK,EAAOhK,SACtB,OAAO,eAAWA,GAAYA,EAASv+B,KAAKuoC,EAAQ,CAChDhhD,UAAWiE,EAAQjE,UACnB8D,IAAKG,EAAQH,IACbC,OAAQE,EAAQF,WACbizC,GAEXguI,iBAAkB,SAAShkI,EAAQ/8C,GAC/B,IAAImwD,EAAS,eAASpT,GAAUA,EAAS,GACrCkmG,EAAa+7B,EAAcjiI,GAC3B8C,EAAe,CAAC7/C,IAChB,IAAI6/C,EAAe7/C,EAAQjE,UAAUgb,OAAO,kBAAoB,GAChE,MAAO,CACH83G,KAAMhvE,EAAaS,eACnB1B,OAAQiB,EAAaG,iBACrBi+H,KAAMp+H,EAAaO,QACnB89H,SAAUr+H,EAAaU,YACvB49H,OAAQt+H,EAAaM,UACrBqjB,IAAK3jB,EAAamhI,eARP,CAUhBhhL,GACCqY,EAAagmK,GAAap7B,GAC1Bg+B,EAAiBjyL,KAAK+nB,OAAO,WAC7B64C,EAAa0uH,GAAoBr7B,GACjCi+B,GAActxH,GAAaqxH,EAAerxH,GAC9C,OAAO,OAAAnmE,EAAA,WAAO,CACVmH,KAAMqyJ,EACN13J,KAAMs0D,EAAaojG,GACnBjpG,SAAUgkI,GAAgB/6B,IAC3B,CACC/oG,QAAS7hC,GAAc,CAACzlB,IACpB,IAAI09D,EAAQ19D,EAAE09D,MACdA,EAAM+3C,kBACN/3C,EAAM1mC,iBACN3nB,WAAW,KACPjC,EAAQH,KAAOqhL,GAAelyL,KAAKqpB,IAAerpB,KAAKqpB,GAAYrY,EAAQH,IAAIg5D,eAGxF1I,IAEPgxH,mBAAoB,SAASnhL,GACzB,IAAIohL,EACAC,IAAsBrhL,EAAQF,OAAOq7C,QACrCA,GAAWn7C,EAAQF,OAAOq7C,SAAW,IAAI9oC,QAkB7C,OAjBIgvK,GACAD,EAAcrC,EAAe5jI,EAAS,QAClCimI,GAAe,IACXrC,EAAe5jI,EAAS,QAAU,GAClCA,EAAQonB,OAAO6+G,EAAc,EAAG,EAAG,QAEnCrC,EAAe5jI,EAAS,UAAY,GACpCA,EAAQonB,OAAOw8G,EAAe5jI,EAAS,QAAU,EAAG,EAAG,WAG/DimI,EAAcrC,EAAe5jI,EAAS,UAClCimI,GAAe,GAAKrC,EAAe5jI,EAAS,YAAc,GAC1DA,EAAQonB,OAAO6+G,EAAc,EAAG,EAAG,aAGvCjmI,EAAUojI,GAAalsK,QAEpB8oC,EAAQrwD,IAAIiyD,GAAU/tD,KAAK+xL,iBAAiBhkI,EAAQ/8C,KAE/DshL,sBAAuB,SAASxtK,EAAYqnC,EAASn7C,EAAS4/C,GAC1DzE,EAAQjrD,QAAQ6sD,IACR/tD,KAAK6xL,iBAAiB9jI,EAAQ/8C,IAC9BhR,KAAKuyL,cAAcztK,EAAYipC,EAAQ/8C,EAAS4/C,MAI5D4hI,4BAA6B,WACzB,MAAO,CAACrqK,EAAWnX,EAAS4/C,KACxB,IAAI9rC,EAAa,eAAEqD,GACnB,GAAI,SAAWnX,EAAQG,QAAS,CAC5B,IAAIg7C,EAAUnsD,KAAKmyL,mBAAmBnhL,GACtChR,KAAKsyL,sBAAsBxtK,EAAYqnC,EAASn7C,EAAS4/C,GACzD5/C,EAAQnE,OAASmE,EAAQnE,MAAM,IAAMs/C,EAAQrwD,IAAIiyD,GAAU/tD,KAAK6xL,iBAAiB9jI,EAAQ/8C,IAAW,KAChG8T,EAAW48C,QACX1hE,KAAKsyL,sBAAsBxtK,EAAYqnC,EAASn7C,UAGpD,OAAc6T,aAAaC,KAIvC2tK,mBAAoB,WAChB,IAAIjC,EAAWxwL,KAAKuwL,cACpB,OAAQ,IAAMtC,GAAgB3vL,QAAQkyL,IAE1CkC,4BAA6B,WACzB,IACI9tK,EADA+hD,EAAoB3mE,KAAKihE,cAAc,WAEvCuL,EAAiB7F,EAAkB+F,oBAOvC,OANA,eAAKF,GAAgB,SAAUprE,EAAO0P,GAClC,GAAIA,EAAO26C,aAEP,OADA7mC,EAAcxjB,GACP,KAGRwjB,GAEX+tK,0BAA2B,SAAS9oH,GAChC,IAAI39C,EAAWlsB,KAAKmsB,QAAQ,YAC5B,OAAOD,GAAYA,EAASkqD,gBAAgBvM,GAAsB,EAAG7pE,KAAK0yL,gCAE9EE,oBAAqB,SAAS/oH,GAC1B,OAAO7pE,KAAK2yL,0BAA0B9oH,IAE1CphD,cAAe,SAAS3tB,EAAK4tB,GACzB,OAAO,OAAcD,cAAc3tB,EAAK4tB,IAE5CoiG,WAAY,SAASjhD,GAGjB,IAFA,IAAI58D,EAAUjN,KAAK2wL,aACf1xL,GAAS,EACJxD,EAAI,EAAGA,GAAK,OAASwR,QAAW,IAAWA,OAAU,EAASA,EAAQrT,QAAS6B,IACpF,GAAIwR,EAAQxR,GAAGgD,QAAU,eAAUorE,IAAa7pE,KAAKonB,gBAAgB2hF,iBAAiB97F,EAAQxR,GAAGX,OAAS+uE,GAAW,CACjH5qE,GAAS,EACT,MAGR,OAAOA,GAEXwiE,QAAS,WACLzhE,KAAKC,WACLwpE,aAAazpE,KAAK6yL,sBAClB,OAAatyH,IAAI,aAAW0O,cAAetF,EAAA,KAAcq0E,GAAIh+I,KAAK8yL,yBAClE,OAAavyH,IAAI,aAAW0O,cAAetF,EAAA,KAAcC,KAAM5pE,KAAK+yL,2BACpE,OAAaxyH,IAAI,aAAW0O,cAAe,OAAgBjvE,KAAKmwL,qBAEpE3vH,cAAe,SAAS3hB,GACpB,GAAI,YAAcA,EAAKj9C,KAAM,CACzB,IAAI6pF,EAAW5sC,EAAK4sC,SAChBA,IAAauhG,GACbhtL,KAAKgzL,wBAAwBn0I,GACtB4sC,IAAa+jG,GACpBxvL,KAAKizL,qBAAqBp0I,GAClBA,EAAK6hB,UACb1gE,KAAKysE,mBAAmBkb,SACxB3nF,KAAK+/D,OACL//D,KAAK6wL,eACL7wL,KAAKkzL,uBACLlzL,KAAKmzL,oBAETt0I,EAAK6hB,SAAU,OAEf1gE,KAAKC,SAAS4+C,IAGtBm0I,wBAAyB,SAASn0I,GAC9B,IAAIgrB,EAAW7pE,KAAKonB,gBAAgB2hF,iBAAiBlqD,EAAKh9C,OACtDuxL,EAAwBpzL,KAAKqzL,6BAC7BC,EAActzL,KAAKonB,gBAAgB2hF,iBAAiBlqD,EAAK2sC,eAAiB4nG,EAC1E,eAAUv0I,EAAKh9C,OACXg9C,EAAKh9C,QAAUg9C,EAAK2sC,eACpBxrF,KAAKuzL,0BAA0B1pH,EAAUypH,GAG7CtzL,KAAKmT,kBAGb8/K,qBAAsB,SAASp0I,GAC3B,IAAIozC,EAAiBjyF,KAAKonB,gBACtBna,EAAU4xC,EAAKh9C,OACdg9C,EAAKh9C,MAAMjI,QAAWilD,EAAK2sC,cAAc5xF,UAG9CqT,EAAQ/L,QAAQ0vD,IACZ,GAAI,WAAaA,EAAOnyD,KACpBuB,KAAKwzL,eAAe5iI,OACjB,CACH,IAAI6iI,EACA/qK,EAAQupE,EAAevpE,QACvBmhD,EAAWooB,EAAe8W,iBAAiBn4C,EAAO91D,KACtDkF,KAAKgxL,iBAAiB,CAClBl2L,IAAK81D,EAAO91D,IACZwpI,QAAS,QAAUmvD,EAAkB/qK,EAAMmhD,UAAc,IAAW4pH,OAAkB,EAASA,EAAgBttL,UAI3H8rF,EAAekP,YAAY,CACvB74C,oBAAoB,EACpB48C,cAAc,MAGtBllC,cAAe,WACX,MAAO,CAAC,SAAU,YAAa,cAAe,UAAW,eAAgB,iBAAkB,gBAE/F2wB,QAAS,WACA,eAAU3wF,KAAK0zL,aAGpB1zL,KAAK2zL,aAAa70L,MAAMkB,KAAME,YAElCyzL,aAAc,OACdxmH,UAAW,WACP,IAAIymH,EAAsB,eAAU5zL,KAAK+nB,OAAOilK,KAChD,OAAO4G,GAEXx5C,UAAW,WACP,OAAO,GAEXy5C,eAAgB,SAAShyL,EAAOiyL,GACxBA,EACA9zL,KAAKqgE,cAAc2sH,GAAgCnrL,GAEnD7B,KAAK+nB,OAAOilK,GAAgCnrL,IAGpDkyL,sBAAuB,SAASlqH,EAAUiqH,GACtC,IAAIh5L,EAAMkF,KAAKonB,gBAAgByhF,iBAAiBh/B,QAC5C,IAAW/uE,EAIfkF,KAAK6zL,eAAe/4L,EAAKg5L,GAHrB9zL,KAAKonB,gBAAgB86E,UAAU,UAKvC8xF,gBAAiB,WACb,OAAOh0L,KAAKi0L,2BAEhBC,oBAAqB,WACjB,OAAQ,GAEZ,iBAAiBrqH,GACb,IAAI/uE,EAAMkF,KAAKonB,gBAAgByhF,iBAAiBh/B,GAC5CsqH,EAAa,eAAUr5L,IAAQ,eAAakF,KAAK+nB,OAAOilK,IAAiClyL,GAC7F,OAAIq5L,EACOn0L,KAAKi0L,4BAA8BpqH,EAEvCsqH,GAEXC,WAAY,SAASnvF,EAAiBrgF,GAClC,OAAO5kB,KAAKq0L,iBAAiBpvF,IAAoBjlG,KAAKs0L,+BAAiC1vK,GAE3F6sK,gBAAiB,OACjBj5C,iBAAkB,SAASzxI,GACvB,OAAO,GAEXwtL,mBAAoB,SAAS7rK,EAAOkoC,EAAQ4jI,GACxC,IAAIv1L,GAAU,EACVgzF,EAAiBjyF,KAAKonB,gBACtBtsB,EAAMkF,KAAKy0L,2BAA2B7jI,GA2B1C,OA1BK,eAAU91D,IAAQ,IAAM4tB,EAAM9uB,OAExB,eAAUkB,IACjB4tB,EAAMgF,KAAK,CAAC3mB,EAAM3F,KACd,IAAIszL,EAAkBF,GAAoBx0L,KAAKw4I,iBAAiBzxI,GAUhE,GATI,eAASA,KACL2tL,GAAmB,eAAU3tL,EAAK0nL,KAC9B,eAAa1nL,EAAKjM,IAAKA,KACvBmE,EAASmC,GAEN,eAAa6wF,EAAeyI,MAAM3zF,GAAOjM,KAChDmE,EAASmC,IAGbnC,GAAU,EAAG,CACb,IAAI01L,EAAWjsK,EAAMzpB,EAAS,GAC9B,GAAI01L,IAAa,WAAaA,EAASxjL,SAAW,mBAAqBwjL,EAASxjL,UAAY,eAAUy/C,EAAOxF,gBACzG,OAKJ,OAHI,eAAUwF,EAAOxF,kBACjBnsD,GAAU,IAEP,KArBfA,EAAS,EAyBNA,GAEX21L,iBAAkB,SAAS95L,GACvB,IAAI+5L,EACA9tL,EAAO,CACPjM,IAAKA,GAELg6L,EAAa,QAAUD,EAAyB70L,KAAK+wL,iBAAiBj2L,UAAS,IAAW+5L,OAAyB,EAASA,EAAuBC,WAIvJ,OAHI,OAASA,QAAc,IAAWA,GAAcA,EAAWrG,MAC3D1nL,EAAK0nL,IAAgBqG,EAAWrG,KAE7B1nL,GAEXguL,mBAAoB,SAASrsK,EAAOkoC,EAAQ4jI,GACxC,IAAIQ,EAAiBh1L,KAAKu0L,mBAAmB7rK,EAAOkoC,EAAQ4jI,GACxDviG,EAAiBjyF,KAAKonB,gBAC1B,GAAI4tK,EAAiB,EAAG,CACpB,IAAI1kI,EAAiBtwD,KAAK0wL,qBACtBn1H,EAAY02B,EAAe12B,YAC3B05H,EAAyBj1L,KAAKy0L,2BAA2B7jI,GACzDN,IAAmBq9H,IAAyB,IAAMpyH,GAAc,eAAU05H,GAEnE3kI,IAAmBq9H,IAAyB17F,EAAe6X,qBAClEkrF,EAAiBtsK,EAAM9uB,QAFvBo7L,EAAiB,EAKzB,OAAOA,GAEXzrD,aAAc,SAAS7gH,EAAO9kB,GAC1B,IAAIotE,EAAaptE,EAAEotE,WACnBhxE,KAAKwzE,OAAOxC,GACZ,IAAI/jE,EAAUjN,KAAK2wL,aAmBnB,OAlBA1jL,EAAQ/L,QAAQ0vD,IACZ,IAAIskI,EACAC,EAAWvkI,EAAOnyD,OAASmuL,GAC/B,GAAKuI,EAAL,CAGA,IAAIr6L,EAAM81D,EAAO91D,IACbg6L,EAAa,QAAUI,EAAyBl1L,KAAK+wL,iBAAiBj2L,UAAS,IAAWo6L,OAAyB,EAASA,EAAuBJ,WAClJ,eAAUh6L,IAAS,eAAUg6L,KAC9BA,EAAa90L,KAAKwzL,eAAe5iI,GACjC91D,EAAMg6L,EAAWh6L,KAErB,IAAIk6L,EAAiBh1L,KAAK+0L,mBAAmBrsK,EAAOkoC,GAChD7pD,EAAO/G,KAAK40L,iBAAiB95L,GAC7Bk6L,GAAkB,GAClBtsK,EAAM6qD,OAAOyhH,EAAgB,EAAGjuL,MAGjC2hB,GAEX0sK,gBAAiB,SAASruL,EAAMiK,EAASwyF,GACrC,IAAIl2E,EAAUtc,EAAQw7D,eAClB1xE,EAAMiM,EAAKZ,KAAKsoL,IAAgB1nL,EAAKZ,KAAKrL,IAAMiM,EAAKjM,IACrDmS,EAAUjN,KAAK2wL,aACfU,EAAY,OAAc5oK,cAAc3tB,EAAKmS,GACjDlG,EAAKomE,WAAY,EACbkkH,GAAa,GACbrxL,KAAKq1L,qBAAqBtuL,EAAMkG,EAAQokL,GAAYv2L,EAAKwyB,EAASk2E,IAG1E6xF,qBAAsB,SAAStuL,EAAM6pD,EAAQ91D,EAAKwyB,EAASk2E,GACvD,IACIr9F,KAAMA,EACN1H,KAAMA,GACNmyD,EACJ,OAAQnyD,GACJ,KAAKmuL,GACD7lL,EAAKklB,UAAW,EAChBllB,EAAKjM,IAAMA,EACXiM,EAAKZ,KAAOA,EACZ,MACJ,KAAK2oL,GACD/nL,EAAKuuL,UAAW,EAChBvuL,EAAKu9H,QAAUv9H,EAAKZ,KACpBY,EAAKZ,KAAO,gBAAwBY,EAAKZ,KAAMA,GAC/CY,EAAKq+F,eAAiB5B,EAAmBr9F,EAAMmnB,GAAS,GACxD,MACJ,KAAKu/J,GACD9lL,EAAKwuL,SAAU,IAG3BC,YAAa,SAASxkL,GAElB,GADAhR,KAAKwhE,cAAc,eAAgBxwD,GAC/BA,EAAQsf,QAAS,CACjB,IAAIotC,EAAW,IAAI,cAEnB,OADA,kBAAK,yBAAY1sD,EAAQsf,UAAUnD,KAAKuwC,EAASluC,SAASG,KAAK8/J,GAAqB/xH,IAAW/tC,KAAKm9E,GAAO9sG,KAAKwxL,uBAAuB1kF,IAChIpvC,IAGf+3H,kBAAmB,WACf,IAAIX,EAAa,GAEjB,OADAA,EAAWrG,IAAgBzuL,KAAK01L,kBACzBZ,GAEXtB,eAAgB,SAAS5iI,EAAQ+kI,GAC7B,IAAIC,EACAd,GAEAh6L,IAAKA,GACL81D,EAMJ,GALK,eAAU91D,KACXA,EAAMnB,OAAO,IAAI,SACjBi3D,EAAO91D,IAAMA,GAEjBg6L,EAAa,QAAUc,EAAyB51L,KAAK+wL,iBAAiBj2L,UAAS,IAAW86L,OAAyB,EAASA,EAAuBd,YAC9I,eAAUA,GAAa,CACxB,IAAIG,EAAyBj1L,KAAKy0L,2BAA2B7jI,GAC7DkkI,EAAa90L,KAAKy1L,oBACb,eAAUR,IACXj1L,KAAK61L,2BAA2BjlI,EAAQ+kI,GAOhD,OAJA31L,KAAKgxL,iBAAiB,CAClB8D,WAAYA,EACZh6L,IAAKA,IAEF,CACHg6L,WAAYA,EACZh6L,IAAKA,IAGb+6L,2BAA4B,SAASjlI,EAAQ+kI,GACzC,IAAI1jG,EAAiBjyF,KAAKonB,gBACtB0uK,EAAW7jG,EAAevpE,OAAM,GAChCwD,EAAWlsB,KAAKmsB,QAAQ,YACxBmkC,EAAiBtwD,KAAK0wL,qBAC1B,OAAQpgI,GACJ,KAAKo9H,GACL,KAAKC,GACD,MACJ,KAAKE,GACL,KAAKD,GACD,GAAIkI,EAASl8L,OAAQ,CACjB,IAAI65G,EAAYnjD,IAAmBu9H,GAA4B,EAAIiI,EAASl8L,OAAS,EACrFg3D,EAAO,IAAM6iD,EAAY,kBAAoB,kBAAoBqiF,EAASriF,GAAW34G,IAEzF,MACJ,QACI,IAAIi7L,EAAmBzlI,IAAmBw9H,GACtC5mD,EAAmB6uD,EAAmB,OAAS7pK,QAAY,IAAWA,OAAW,EAASA,EAAS8nF,4BAA8B,OAAS9nF,QAAY,IAAWA,OAAW,EAASA,EAAS6nF,yBAC9LljG,EAAMohF,EAAekV,iBAAiB+/B,GACtCr2H,KAASA,EAAIs8D,WAAa,WAAat8D,EAAIM,SAAW,mBAAqBN,EAAIM,UAC/E+1H,IAEJ,IAAI8uD,EAAY/jG,EAAe4W,iBAAiBq+B,GAC5C,eAAU8uD,KACVplI,EAAOvF,gBAAkB2qI,KAIzCN,gBAAiB,WACb,IAAIO,EAAiB,EAQrB,OAPAj2L,KAAK2wL,aAAazvL,QAAQg1L,IACtB,IAAIC,EACArB,EAAa,QAAUqB,EAAyBn2L,KAAK+wL,iBAAiBmF,EAASp7L,YAAS,IAAWq7L,OAAyB,EAASA,EAAuBrB,WAC5J,eAAUA,IAAeoB,EAASz3L,OAASmuL,IAA8BkI,EAAWrG,IAAgBwH,IACpGA,EAAiBnB,EAAWrG,OAG7BwH,EAAiB,GAE5BxB,2BAA4B,SAAS2B,GACjC,IAAIC,EACJ,OAAO,QAAUA,EAAwBD,EAAahrI,sBAAmB,IAAWirI,EAAwBA,EAAwBD,EAAa/qI,iBAErJirI,yBAA0B,WACtB,IAAIhmI,EAAiBtwD,KAAK0wL,qBACtBz+F,EAAiBjyF,KAAKonB,gBACtBm0C,EAAY02B,EAAe12B,YAC3Bg7H,EAAgBtkG,EAAe0L,YAAc,EACjD,OAAIrtC,IAAmBo9H,IAA0B,IAAMnyH,EAC5C,EACAjL,IAAmBq9H,IAAyBpyH,IAAcg7H,EAC1DA,GAEH,GAEZzlI,OAAQ,SAAS6kI,GACb,IAAI1jG,EAAiBjyF,KAAKonB,gBACtB6I,EAAQgiE,EAAehiE,QAC3B,OAAKA,EAIEjwB,KAAKw2L,QAAQb,IAHhB1jG,EAAeiQ,UAAU,QAASliG,KAAK+M,UAAU80D,OAC1C,IAAK,eAAUh+B,WAI9B2yJ,QAAS,SAASb,GACd,IAAI1jG,EAAiBjyF,KAAKonB,gBACtB6I,EAAQgiE,EAAehiE,QACvBn1B,EAAMm1B,GAASA,EAAMn1B,MACrB27L,EAAQ,CACRtwL,KAAM,IAENuwL,EAAkB12L,KAAKi0L,0BACvBv2H,EAAW,IAAI,cAInB,OAHA19D,KAAK2wF,QAAQ,CACTgmG,oBAAoB,IAEnB32L,KAAK42L,mBAIL97L,IACD27L,EAAMtwL,KAAK0wL,QAAUl9L,OAAO,IAAI,UAEpC,kBAAKqG,KAAKw1L,YAAYiB,EAAOd,IAAYxoK,KAAK,KACtCntB,KAAK42L,kBACL,kBAAK52L,KAAK82L,YAAYL,EAAMtwL,KAAMwvL,EAAWe,IAAkBvpK,KAAKuwC,EAASluC,SAASG,KAAK+tC,EAAS75B,QAEpG65B,EAAS75B,OAAO,YAErBlU,KAAK+tC,EAAS75B,QACV65B,EAASptC,YAbZ,kBAAKtwB,KAAK+2L,kBAAkBL,IAAkBvpK,KAAKuwC,EAASluC,SAASG,KAAK+tC,EAAS75B,QAC5E65B,EAASptC,YAcxBsmK,gBAAiB,WACb,IAAII,EAAch3L,KAAK01L,kBACvB,QAAIsB,EAAc,IAKtBF,YAAa,SAAS3wL,EAAMwvL,EAAWsB,GACnC,IAAIrmI,EAAS,CACTzqD,KAAMA,EACN1H,KAAMmuL,IAENsK,EAAel3L,KAAKi0L,0BACpBa,EAAa90L,KAAKwzL,eAAe5iI,EAAQ+kI,GACzC76L,EAAMg6L,EAAWh6L,IAGrB,OAFAkF,KAAK6zL,eAAe/4L,GAAK,GACzBkF,KAAKm3L,WAAWvmI,GACT5wD,KAAK+2L,kBAAkBE,EAAwBrmI,EAAQsmI,IAElEH,kBAAmB,SAASL,EAAiB9lI,EAAQsmI,GACjD,IAAIE,EAAeC,EACfn1K,EAAI,IAAI,cACR+vE,EAAiBjyF,KAAKonB,gBACtBkwK,EAAkBt3L,KAAKihE,cAAc,SAGzC,GAFAi2H,EAAe,QAAUE,EAAgBF,SAAiB,IAAWE,EAAgBA,GAAiB,EACtGxmI,EAAS,QAAUymI,EAAUzmI,SAAW,IAAWymI,EAAUA,EAAUr3L,KAAK2wL,aAAavyL,OAAOw9B,GAAKA,EAAEn9B,OAASmuL,IAA4B,IACvIh8H,EACD,OAAO1uC,EAAE2hB,OAAO,UAAUvT,UAE9B,IAAIinK,EAAuBv3L,KAAKs2L,2BAC5BzsH,EAAW7pE,KAAK+0L,mBAAmB9iG,EAAevpE,QAASkoC,GAAQ,GACnE4mI,EAAqB18L,IACrB,kBAAK,OAASw8L,QAAmB,IAAWA,OAAkB,EAASA,EAAgBG,cAAc38L,IAAMqyB,KAAK,KAC5G08C,EAAWooB,EAAe8W,iBAAiBn4C,EAAO91D,KAClDonB,EAAEsN,aAGNylK,EAAyBj1L,KAAKy0L,2BAA2B7jI,GAuB7D,OAtBI2mI,GAAwB,EACxBtlG,EAAe12B,UAAUg8H,GAAsBpqK,KAAK,KAChDqqK,EAAmB5mI,EAAO91D,OAC3B60B,KAAKzN,EAAE2hB,QACHgmC,EAAW,GAAK,eAAUorH,GACjCuC,EAAmBvC,IAEnBhjG,EAAekP,YAAY,CACvBnwB,WAAY,SACZ+yB,WAAY,CAAC2yF,EAAiBQ,EAAcrtH,KAEhDA,EAAWooB,EAAe8W,iBAAiBn4C,EAAO91D,KAC9C+uE,EAAW,EACX2tH,EAAmB5mI,EAAO91D,KAE1BonB,EAAEsN,WAGVtN,EAAEiL,KAAK,KACHntB,KAAK03L,cAAc7tH,GACnB7pE,KAAK23L,gBAAgB/mI,EAAO91D,OAEzBonB,EAAEoO,WAEbonK,cAAe,SAAS7tH,GACpB7pE,KAAK43L,6BAA6B/tH,IAEtCguH,yBAA0B,OAC1BD,6BAA8B,SAAS/tH,GACnC,IAAIooB,EAAiBjyF,KAAKonB,gBACtBtsB,EAAMm3F,EAAe4W,iBAAiBh/B,GACtCiuH,EAAa93L,KAAK2yL,0BAA0B9oH,GAChD7pE,KAAK+3L,qBAAsB,EAC3B/3L,KAAKg4L,mBAAmBF,EAAY,KAChCjuH,EAAWooB,EAAe8W,iBAAiBjuG,GAC3CkF,KAAK+3L,qBAAsB,EAC3B/3L,KAAK63L,yBAAyBhuH,MAGtCouH,gBAAiB,SAASjnL,GAEtB,OADAhR,KAAKwhE,cAAc,iBAAkBxwD,GAC9BA,EAAQ4+C,QAEnBsoI,mBAAoB,OACpB5D,2BAA4B,WACxB,IAAInkI,EAAiBnwD,KAAK+nB,OAAOklK,IACjC,OAAK,eAAU98H,GAGRnwD,KAAKysE,mBAAmBmJ,sBAAsBzlB,IAFzC,GAIhBgoI,0BAA2B,SAAS/2L,EAAO0yL,GACvC,IAAIsE,EACA5rH,EAAiBxsE,KAAKysE,mBAAmBC,oBAC7C1sE,KAAKq4L,mBAAmB,QAAUD,EAAwB5rH,EAAeprE,UAAW,IAAWg3L,OAAwB,EAASA,EAAsBx2L,KAAMkyL,IAEhKuE,mBAAoB,SAASz2L,EAAMkyL,GAC3BA,EACA9zL,KAAKqgE,cAAc4sH,GAAoCrrL,GAEvD5B,KAAK+nB,OAAOklK,GAAoCrrL,IAGxDsxL,qBAAsB,WAClBlzL,KAAKq4L,mBAAmB,MAAM,IAElCC,eAAgB,WACZ,IAAInoI,EAAiBnwD,KAAK+nB,OAAOklK,IACjC,OAAOjtL,KAAKu4L,iBAAiBpoI,IAEjCooI,iBAAkB,SAAS32L,GACvB,IACI42L,EADAhsH,EAAiBxsE,KAAKysE,mBAAmBC,oBAQ7C,OANA,eAAU9qE,IAAS4qE,EAAe9+C,KAAK5c,IACnC,GAAIA,EAAOlP,OAASA,EAEhB,OADA42L,EAAa1nL,GACN,IAGR0nL,GAEXvE,wBAAyB,SAASwE,GAC9B,IAAIxmG,EAAiBjyF,KAAKonB,gBACtBgpC,EAAapwD,KAAK+nB,OAAOilK,IACzBnjH,EAAWooB,EAAe8W,iBAAiB34C,GAC/C,OAAK,IAAMyZ,EACAA,EAEJA,EAAW7pE,KAAKqzL,2BAA2BoF,IAEtDpF,2BAA4B,SAASoF,GACjC,IAAID,EAAaC,EAAaz4L,KAAKu4L,iBAAiBE,GAAcz4L,KAAKs4L,iBACnEI,EAAiB,oBAAsB,OAASF,QAAc,IAAWA,OAAa,EAASA,EAAW3sH,cAC9G,OAAO6sH,EAAiB,EAAI,GAEhCvF,iBAAkB,WACdnzL,KAAK6zL,eAAe,MAAM,IAE9B8E,kBAAmB,WACf34L,KAAKkzL,uBACLlzL,KAAKmzL,oBAET/hI,QAAS,SAASyY,GACd,IAAI+uH,EACA3mG,EAAiBjyF,KAAKonB,gBACtBsB,EAAQupE,EAAevpE,QACvB3hB,EAAO2hB,EAAMmhD,GACb+V,EAAS,CACTz5E,KAAMY,GAAQA,EAAKZ,KACnBypD,QAAQ,GAER0jI,EAActzL,KAAKi0L,0BACvB,GAAKltL,EAGL,OAAI8iE,IAAaypH,aAGb,IAAWvsL,EAAKjM,KAIfiM,EAAKklB,WACN2zD,EAAO9kF,IAAMiM,EAAKjM,KAElBkF,KAAKi4L,gBAAgBr4G,KAGzB5/E,KAAK6wL,eACL7wL,KAAK+/D,OACL//D,KAAKkzL,uBACLlzL,KAAK0zL,WAAazhG,EAAe12B,YACjCv7D,KAAKgxL,iBAAiB,CAClBl2L,IAAKiM,EAAKjM,IACVwpI,QAAS,QAAUs0D,EAAgB7xL,EAAKu9H,eAAY,IAAWs0D,EAAgBA,EAAgB7xL,EAAKZ,OAExGnG,KAAK6zL,eAAe9sL,EAAKjM,OAjBrBkF,KAAKonB,gBAAgB86E,UAAU,WAmBvCqxF,0BAA2B,SAAS1pH,EAAUypH,GAC1C,IAAIvvF,EAAa,CAACuvF,EAAazpH,GAC/B7pE,KAAKk4L,mBAAmBn0F,EAAYl6B,EAAUypH,GAC9CtzL,KAAK64L,8BAA8B90F,EAAYl6B,IAEnDgvH,8BAA+B,SAAS90F,EAAYl6B,EAAUivH,GAC1D94L,KAAK+4L,kBAAmB,EACxB/4L,KAAKonB,gBAAgB+5E,YAAY,CAC7BnwB,WAAY,SACZ+yB,WAAYA,EACZn0C,OAAQkpI,KAGhBE,mBAAoB,OACpBC,eAAgB,OAChBC,kBAAmB,OACnBC,2BAA4B,WACxB,OAAOv1L,IACC5D,KAAKmtE,aACLntE,KAAKmT,mBAIjBimL,0BAA2B,OAC3BC,qBAAsB,WAClB,MAAO,CACH98L,KAAMyD,KAAK+nB,OAAO,gCAClBmjC,QAASlrD,KAAKkT,aAAasX,KAAKxqB,QAGxCs5L,uBAAwB,WACpB,MAAO,CACH/8L,KAAMyD,KAAK+nB,OAAO,kCAClBmjC,QAASlrD,KAAKmT,eAAeqX,KAAKxqB,QAG1Cu5L,oBAAqB,SAASz+L,GAC1B,IAAIm2L,EAAejxL,KAAK+wL,iBAAiBj2L,GACrCsG,EAAQpB,KAAKswL,eAAehyL,QAAQ2yL,GACpC7vL,GAAS,GACTpB,KAAKswL,eAAe/8G,OAAOnyE,EAAO,IAG1Co4L,+BAAgC,SAASvsL,EAAS7L,GAC9C,IAAIq4L,EAAexsL,EAAQ7L,GAC3B6L,EAAQ/L,QAAQ0vD,IACZ,IAAIqkI,EAAyBj1L,KAAKy0L,2BAA2B7jI,GACzD,eAAaqkI,EAAwBwE,EAAa3+L,OAClD81D,EAAO,eAAUA,EAAOxF,gBAAkB,iBAAmB,mBAAqBprD,KAAKy0L,2BAA2BgF,OAI9HC,cAAe,SAASt4L,GACpB,GAAIA,GAAS,EAAG,CACZ,IAAI6L,EAAU,IAAIjN,KAAK2wL,cACnB71L,EAAMmS,EAAQ7L,GAAOtG,IACzBkF,KAAKu5L,oBAAoBz+L,GACzBkF,KAAKw5L,+BAA+BvsL,EAAS7L,GAC7C6L,EAAQsmE,OAAOnyE,EAAO,GACtBpB,KAAKqgE,cAAcmvH,GAA6BviL,GAC5C,eAAajN,KAAK+nB,OAAOilK,IAAiClyL,IAC1DkF,KAAK24L,sBAIjBgB,iBAAkB,SAASj8H,EAAUllB,GACjCx4C,KAAKiwL,gBAAkBjwL,KAAKiwL,eAAepsJ,SAC3C7jC,KAAKiwL,eAAiBvyH,EACtB19D,KAAK45L,4BAA4BzsK,KAAK,KAC9B,aAAeuwC,EAAS9tB,UAG5B4I,IACAx4C,KAAKiwL,eAAiB,QACvBtgK,KAAK,KACJ+tC,EAAS75B,SACT7jC,KAAKiwL,eAAiB,QAG9B2J,0BAA2B,WACvB,OAAO,qBAAQ55L,KAAKkwL,aAExB2J,4BAA6B,OAC7BC,iBAAkB,SAAShpL,EAAQipL,EAAWrD,GAC1C12L,KAAK+4L,kBAAmB,GACnBjoL,IAAWA,EAAOy8C,kBAAoBwsI,IAAcA,EAAUxsI,kBAC/DvtD,KAAK+3L,qBAAsB,EAC3B/3L,KAAKihE,cAAc,iBAAiB6oH,YACpC9pL,KAAKonB,gBAAgB+5E,YAAY,CAC7BnwB,WAAY,SACZ+yB,WAAY,CAAC2yF,EAAiB12L,KAAKi0L,8BAEhCnjL,IAAWipL,GAClB/5L,KAAKonB,gBAAgB+5E,YAAY,CAC7BnwB,WAAY,SACZ+yB,WAAY,MAIxBi0F,mBAAoB,SAAS9wH,EAAO8yH,EAAqBC,GACrD,IAAIC,EAAa,KAIb,GAHIF,GACAA,IAEA9yH,EAAO,CACP,IAAIizH,EAAoBjzH,EAAMjgD,KAAKmmK,IAA4B3zG,QAC/D,OAAc7sD,sBAAsB5sB,KAAMm6L,GAE9Cn6L,KAAKo6L,qBAAuB,MAE5BvhF,GAAA,KAAQC,OAAOouE,KAAOruE,GAAA,KAAQC,OAAOw1D,QACrC4rB,KAEIl6L,KAAKo6L,sBACLp6L,KAAKo6L,uBAET3wH,aAAazpE,KAAK6yL,sBACdoH,IACAj6L,KAAKo6L,qBAAuBJ,GAEhCh6L,KAAK6yL,qBAAuB5/K,WAAWinL,KAG/CG,kBAAmB,SAASL,EAAqBM,EAAWL,GACxD,IAAI/tK,EAAWlsB,KAAKmsB,QAAQ,YACxBouK,EAAkBv6L,KAAKs0L,6BAC3BgG,EAAYA,GAAapuK,GAAYA,EAASkqD,gBAAgBp2E,KAAKi0L,0BAA2BsG,GAC1FD,GACAt6L,KAAKg4L,mBAAmBsC,EAAWN,EAAqBC,IAGhE9oI,UAAW,SAAS0Y,GAChB7pE,KAAKw6L,mBAAmB3wH,IAE5B2wH,mBAAoB,SAAS3wH,GACzB,IAAIooH,EAAiBjyL,KAAK+nB,OAAO,WAC7B8oC,EAAe,OAASohI,QAAkB,IAAWA,OAAiB,EAASA,EAAenjI,MAC9FoB,EAAgB,OAAS+hI,QAAkB,IAAWA,OAAiB,EAASA,EAAe/hI,cAC/Fe,EAAuB,OAASJ,QAAgB,IAAWA,OAAe,EAASA,EAAaI,qBAChGlqD,EAAO/G,KAAKonB,gBAAgBsB,QAAQmhD,GACpC7Z,GAAiBhwD,KAAKmtE,aAAepmE,EAAKklB,SAC9C,GAAIllB,GAAQipD,EACR,GAAKE,GAAkBe,EAEhB,CACH,IAAIC,EAAqBL,GAAgBA,EAAaK,mBAClDupI,EAAkB,eAAUvpI,IAAuBA,EAAmBt3D,OAAS,EACnF,GAAQq3D,EAAsBC,EAAoBupI,GAAiBttK,KAAKutK,IAChEA,GACA16L,KAAK26L,eAAe9wH,UAN5B7pE,KAAK26L,eAAe9wH,IAYhC8wH,eAAgB,SAAS9wH,GACrB,IAAIooB,EAAiBjyF,KAAKonB,gBACtBrgB,EAAOkrF,EAAevpE,QAAQmhD,GAC9B/uE,EAAMiM,GAAQA,EAAKjM,IACnB47L,EAAkB12L,KAAKi0L,0BAC3Bj0L,KAAK2wF,UACL,IAAI1jF,EAAUjN,KAAK2wL,aACfU,EAAY,OAAc5oK,cAAc3tB,EAAKmS,GAiBjD,OAhBIokL,GAAa,EACTpkL,EAAQokL,GAAW5yL,OAASmuL,GAC5B5sL,KAAK05L,cAAcrI,GAEnBrxL,KAAKm3L,WAAW,CACZr8L,IAAKA,EACL2D,KAAMouL,KAId7sL,KAAKm3L,WAAW,CACZr8L,IAAKA,EACLwpI,QAASv9H,EAAKZ,KACd1H,KAAMouL,KAGP7sL,KAAK46L,gBAAgB/wH,EAAU6sH,IAE1CkE,gBAAiB,SAAS/wH,EAAU6sH,GAChC,OAAO12L,KAAKkT,gBAEhBq+C,YAAa,SAASsY,GAClB,IAAIooB,EAAiBjyF,KAAKonB,gBACtBrgB,EAAOkrF,EAAevpE,QAAQmhD,GAC9B6sH,EAAkB12L,KAAKi0L,0BACvBn5L,EAAMiM,GAAQA,EAAKjM,IACnBmS,EAAUjN,KAAK2wL,aACnB,GAAI5pL,EAAM,CACN,IAAIsqL,EAAY,OAAc5oK,cAAc3tB,EAAKmS,GACjD,GAAIokL,GAAa,EAAG,CAChB,IACIlrL,KAAMA,GACN8G,EAAQokL,GACR,eAAclrL,GACdnG,KAAK05L,cAAcrI,GAEnBrxL,KAAKm3L,WAAW,CACZr8L,IAAKA,EACL2D,KAAMqwL,KAGd78F,EAAekP,YAAY,CACvBnwB,WAAY,SACZ+yB,WAAY,CAAC2yF,EAAiB7sH,QAK9CgxH,cAAe,WACX,IAAIC,EAAiB,CACjBlrI,QAAQ,EACRt/B,QAAS,KACTrjB,QAAS,IAAIjN,KAAK2wL,eAEtB3wL,KAAKwhE,cAAc,WAAYs5H,GAC/B,IAAI54K,EAAI,IAAI,cAUZ,OATA,kBAAK,yBAAY44K,EAAexqK,UAAUnD,KAAK,KAC3CjL,EAAEsN,QAAQsrK,KACXnrK,KAAKm9E,IACJ2iF,GAAqBvtK,GACrBliB,KAAKwxL,uBAAuB1kF,GAC5B5qF,EAAEsN,QAAQ,CACNogC,QAAQ,MAGT1tC,GAEX64K,sBAAuB,SAASn6H,EAAYgf,EAAQpnC,GAChD,GAAIx4C,KAAK+M,UAAU24K,UACf,OAAO,KAEX,IAAIhoH,EAAW,IAAI,cAWnB,OAVA19D,KAAKwhE,cAAcZ,EAAYgf,GAC/B,kBAAK,yBAAYA,EAAOhwB,SAASziC,MAAK,SAAUyiC,GACxCA,EACA38C,YAAW,WACPyqD,EAASluC,QAAQ,aAGrBgpB,EAAKonC,GAAQzyD,KAAKuwC,EAASluC,SAASG,KAAK8/J,GAAqB/xH,OAElE/tC,KAAK8/J,GAAqB/xH,IACvBA,GAEXs9H,gBAAiB,SAASnqG,EAAWoqG,EAASC,EAAajuL,GACvD,IAAIgjB,EAAQjwB,KAAKonB,gBAAgB6I,QACjC,eAAKhjB,EAAS,CAAC7L,EAAOwvD,KAClB,IAMI8M,EACAkiB,EAPA0kD,EAAUtkI,KAAKkxL,YAAYtgI,EAAO91D,MAElCqL,KAAMA,EACN1H,KAAMA,GACNmyD,EACAuqI,EAAa,eAAS,GAAIvqI,GAG9B,IAAI5wD,KAAKo7L,oBAAoBxqI,EAAQxvD,GAArC,CAGA,OAAQ3C,GACJ,KAAKouL,GACDjtG,EAAS,CACLz5E,KAAMm+H,EACNxpI,IAAK81D,EAAO91D,IACZ80D,QAAQ,GAEZ8N,EAAW19D,KAAK+6L,sBAAsB,gBAAiBn7G,GAAQ,WAC3D,OAAO3vD,EAAMnI,OAAO8oC,EAAO91D,KAAKqyB,MAAK,SAAUryB,GAC3CogM,EAAYj4L,KAAK,CACbxE,KAAM,SACN3D,IAAKA,UAIjB,MACJ,KAAK8xL,GACDhtG,EAAS,CACLz5E,KAAMA,EACNypD,QAAQ,GAEZ8N,EAAW19D,KAAK+6L,sBAAsB,iBAAkBn7G,GAAQ,WAC5D,OAAO3vD,EAAMwnB,OAAOmoC,EAAOz5E,MAAMgnB,MAAK,SAAUhnB,EAAMrL,GAC9C,eAAUA,KACVqgM,EAAWrgM,IAAMA,GAEjBqL,GAAQ,eAASA,IAASA,IAASy5E,EAAOz5E,OAC1Cg1L,EAAWh1L,KAAOA,GAEtB+0L,EAAYj4L,KAAK,CACbxE,KAAM,SACN0H,KAAMA,EACN/E,MAAO,UAInB,MACJ,KAAK0tL,GACDlvG,EAAS,CACLy7G,QAASl1L,EACTm+H,QAASA,EACTxpI,IAAK81D,EAAO91D,IACZ80D,QAAQ,GAEZ8N,EAAW19D,KAAK+6L,sBAAsB,gBAAiBn7G,GAAQ,WAC3D,OAAO3vD,EAAMujD,OAAO5iB,EAAO91D,IAAK8kF,EAAOy7G,SAASluK,MAAK,SAAUhnB,EAAMrL,GAC7DqL,GAAQ,eAASA,IAASA,IAASy5E,EAAOy7G,UAC1CF,EAAWh1L,KAAOA,GAEtB+0L,EAAYj4L,KAAK,CACbxE,KAAM,SACN3D,IAAKA,EACLqL,KAAMA,UAM1B,GADA8G,EAAQ7L,GAAS+5L,EACbz9H,EAAU,CACV,IAAI49H,EAAe,IAAI,cACvB59H,EAASo0B,QAAO,SAAU3rF,GACtB80L,EAAQh4L,KAAK,CACTnI,IAAK81D,EAAO91D,IACZmE,OAAQkH,OAEZ2rF,OAAOwpG,EAAa9rK,SACxBqhE,EAAU5tF,KAAKq4L,EAAahrK,gBAIxCirK,sBAAuB,SAAStuL,EAASokL,GACrC,IAAIzgI,EAAS3jD,EAAQokL,GAMrB,OALK,OAASzgI,QAAU,IAAWA,OAAS,EAASA,EAAOnyD,QAAUouL,IAC9DwE,GAAa,GACbpkL,EAAQsmE,OAAO89G,EAAW,IAG3B,GAEXmK,eAAgB,SAASvuL,EAASokL,EAAWzhI,GACzC,IAAIgB,EAAS3jD,EAAQokL,GACrB,IAAKzhI,IAAWgB,GAAUA,EAAOnyD,OAASouL,GACtC,OAAO7sL,KAAKy7L,mBAAmBxuL,EAASokL,GAAYzhI,IAAWgB,IAGvE6qI,mBAAoB,SAASxuL,EAASokL,GAIlC,OAHIA,GAAa,GACbpkL,EAAQsmE,OAAO89G,EAAW,IAEvB,GAEXqK,2BAA4B,SAAST,GAIjC,IAHA,IAAIU,GAAe,EACf1uL,EAAU,IAAIjN,KAAK2wL,cACnBiL,EAAgB3uL,EAAQrT,OACnB6B,EAAI,EAAGA,EAAIw/L,EAAQrhM,OAAQ6B,IAAK,CACrC,IAAIqxG,EAAMmuF,EAAQx/L,GAAGwD,OACjB2wD,EAAS,WAAak9C,EACtBukF,EAAY,OAAc5oK,cAAcwyK,EAAQx/L,GAAGX,IAAKmS,GACxD2jD,EAAS3jD,EAAQokL,GACjBwK,EAAU/uF,GAAOA,aAAepxE,MACpC,GAAImgK,GAQA,GAPIjrI,GACA5wD,KAAKgxL,iBAAiB,CAClBl2L,IAAK81D,EAAO91D,IACZsnC,MAAO0qE,IAGf9sG,KAAKwxL,uBAAuB1kF,GACxB9sG,KAAKu7L,sBAAsBtuL,EAASokL,GACpC,WAEGrxL,KAAKw7L,eAAevuL,EAASokL,EAAWzhI,KAC/C+rI,GAAgB/rI,GAMxB,OAHI3iD,EAAQrT,OAASgiM,GACjB57L,KAAKqgE,cAAcmvH,GAA6BviL,GAE7C0uL,GAEXG,wBAAyB,SAAS7uL,GAC9B,eAAKA,EAAS,CAAClO,EAAGmO,KACd,IACI/G,KAAMA,EACNrL,IAAKA,EACL2D,KAAMA,GACNyO,EACA+jL,EAAejxL,KAAKgxL,iBAAiB,CACrCl2L,IAAKA,IAEL8kF,EAAS,CACT9kF,IAAKA,EACLqL,KAAMA,GAKV,OAHI8qL,EAAa7uJ,QACbw9C,EAAOx9C,MAAQ6uJ,EAAa7uJ,OAExB3jC,GACJ,KAAKouL,GACD7sL,KAAKwhE,cAAc,eAAgB,OAAA/mE,EAAA,WAAO,GAAImlF,EAAQ,CAClDz5E,KAAM8qL,EAAa3sD,WAEvB,MACJ,KAAKsoD,GACD5sL,KAAKwhE,cAAc,gBAAiBoe,GACpC,MACJ,KAAKkvG,GACD9uL,KAAKwhE,cAAc,eAAgBoe,MAG/C5/E,KAAKwhE,cAAc,UAAW,CAC1Bv0D,QAASA,KAGjBiG,aAAc,WACV,IAAIwqD,EAAW,IAAI,cAqBnB,OApBA19D,KAAK45L,4BAA4BzsK,KAAK,KAC9BntB,KAAK+7L,WACL/7L,KAAKg8L,kBAAkBt+H,GAG3B,kBAAK19D,KAAKo7L,uBAAuBjuK,KAAKyiC,IAClC,GAAIA,EACA5vD,KAAKg8L,kBAAkBt+H,EAAU,CAC7B9N,OAAQA,QAFhB,CAMA5vD,KAAKi8L,SAAU,EACf,IAAIjrL,EAAU,GACdhR,KAAKk8L,mBAAmBlrL,GAAS8gF,OAAO,KACpC9xF,KAAKi8L,SAAU,EACfjrL,EAAQmrL,mBAAqBn8L,KAAKq6L,sBACnCltK,KAAKuwC,EAASluC,SAASG,KAAK+tC,EAAS75B,WACzClU,KAAK+tC,EAAS75B,UAClBlU,KAAK+tC,EAAS75B,QACV65B,EAASptC,WAEpB0rK,kBAAmB,SAASt+H,GACxB,IACI9N,OAAQA,EACRxtB,MAAOA,GACPliC,UAAUtG,OAAS,QAAK,IAAWsG,UAAU,GAAKA,UAAU,GAAK,GACrE,kBAAKF,KAAKo8L,mBAAmBxsI,IAASziC,MAAK,WACvCuwC,EAASluC,QAAQ4S,MACjBzS,KAAK+tC,EAAS75B,SAEtBq4J,mBAAoB,SAASlrL,GACzB,IAAIiqL,EAAU,GACVpqG,EAAY,GACZqqG,EAAc,GACdjpG,EAAiBjyF,KAAKonB,gBACtBmC,EAAa0oE,EAAe1oE,aAC5BtqB,EAAS,IAAI,cA6BjB,OA5BA,kBAAKe,KAAK66L,iBAAiB1tK,KAAKupE,IAC5B,IACI9mC,OAAQA,EACR3iD,QAASA,GACTypF,EACJ,OAAI9mC,EACO3wD,EAAOuwB,UAAUc,WAE5BtwB,KAAKg7L,gBAAgBnqG,EAAWoqG,EAASC,EAAajuL,GAClD4jF,EAAUj3F,QACV,OAAS2vB,QAAc,IAAWA,GAAsBA,EAAWktH,eACnE,qBAAQ5lD,GAAW1jE,KAAK,KAChBntB,KAAK07L,2BAA2BT,GAChCj7L,KAAKq8L,WAAWnB,EAAajuL,EAAShO,IAEtC,OAASsqB,QAAc,IAAWA,GAAsBA,EAAWotH,aACnE13I,EAAOuwB,aAEZG,KAAKyS,IACJ,OAAS7Y,QAAc,IAAWA,GAAsBA,EAAWotH,aACnE13I,EAAOuwB,QAAQ4S,KAEZnjC,EAAO6yF,OAAO,KACjB9gF,EAAQmrL,mBAAoB,IAC7B7rK,gBAEPtwB,KAAKs8L,cAAcr9L,MACpB0wB,KAAK1wB,EAAO4kC,QACR5kC,EAAOqxB,WAElBisK,iBAAkB,SAAStvL,GACvBjN,KAAK24L,qBAET0D,WAAY,SAASnB,EAAajuL,EAASywD,GACvC,IAAIn0C,EAAavpB,KAAKonB,gBAAgBmC,aACtCvpB,KAAKu8L,iBAAiBtvL,GACtB,OAASsc,QAAc,IAAWA,GAAsBA,EAAWotH,aACnE32I,KAAKw8L,sBAAsBtB,EAAajuL,EAASywD,IAErD4+H,cAAe,SAASr9L,GACpBe,KAAKwhE,cAAc,UAAW,CAC1Bv0D,QAAS,KAEbjN,KAAKg8L,kBAAkB/8L,IAE3Bu9L,sBAAuB,SAAStB,EAAajuL,EAASywD,GAClD,IAAIu0B,EAAiBjyF,KAAKonB,gBACtBopC,EAAcxwD,KAAK+nB,OAAO,uBAC1B00K,EAAgB,YAAcjsI,GAAe,YAAcA,EAC1DisI,GACDxqG,EAAehvF,KAAKi4L,GAExB,kBAAKjpG,EAAetB,QAAQ,CACxB9nC,UAAW4zI,EACXnnG,OAAQmnG,EACRntK,KAAM,YAAckhC,EACpB+4C,YAAavpG,KAAK+nB,OAAO,yBACzB+pE,OAAO,KACP9xF,KAAK87L,wBAAwB7uL,KAC9BkgB,KAAK,KACJntB,KAAKg8L,kBAAkBt+H,KACxB/tC,KAAKyS,IACJpiC,KAAKg8L,kBAAkBt+H,EAAU,CAC7Bt7B,MAAOA,OAInB25J,SAAU,WACN,OAAO/7L,KAAKi8L,SAEhB7L,kBAAmB,WACf,IAAIsM,EAAsB18L,KAAK28L,uBAC3BhsI,EAAW3wD,KAAK+nB,OAAO,oBACvBijC,EAAWujI,IAAsB59H,EAAW,IAAM69H,GAAgC,IACtFxuL,KAAKysE,mBAAmB0e,iBAAiB,CACrC1sF,KAAM,UACNkvB,QAAS,OACTg8B,QAAS+yI,EACT1xI,SAAUA,EACVzjD,MAAO,OACPJ,UAAW,SACXC,aAAcpH,KAAKwyL,8BACnB7lI,cAAe,UAEnB3sD,KAAKysE,mBAAmBoK,aAAa,eAAgB,CACjDltB,QAAS+yI,EACT1xI,SAAUA,KAGlB2xI,qBAAsB,WAClB,IAAI1K,EAAiBjyL,KAAK+nB,OAAO,WACjC,OAAOkqK,EAAejiI,eAE1B4sI,sBAAuB,WACnB,IAAI9xE,EAAa9qH,KAAK8qH,aAClB+xE,EAAmB,eAAU78L,KAAK+nB,OAAO,uBAC7C,QAAS80K,GAAoB/xE,IAEjCulE,mBAAoB,WAChB,IAAI9kF,EAAcvrG,KAAKmsB,QAAQ,eAC3B2wK,EAAmB98L,KAAK48L,wBACxBrxF,IACAA,EAAY0yB,uBAAuB,aAAc6+D,GACjDvxF,EAAY0yB,uBAAuB,eAAgB6+D,KAG3DC,eAAgB,SAAS/2K,GACrBA,GAAYA,EAASsB,SAASsnK,KAElCoO,gCAAiC,OACjC7pL,eAAgB,WACZ,IAAIlG,EAAUjN,KAAK2wL,aACf/wG,EAAS,CACThwB,QAAQ,EACR3iD,QAASA,GAEbjN,KAAKwhE,cAAc,kBAAmBoe,GACjCA,EAAOhwB,SACR5vD,KAAKi9L,sBACLj9L,KAAKwhE,cAAc,iBAAkB,CACjCv0D,QAASA,MAIrBgwL,oBAAqB,WACjB,IAAIpzH,EAAW7pE,KAAKi0L,0BACpBj0L,KAAKk9L,wBACLl9L,KAAK+/D,OACL//D,KAAK6wL,eACL7wL,KAAKkzL,uBACLlzL,KAAKmzL,mBACLnzL,KAAKm9L,qBAAqBtzH,IAE9BszH,qBAAsB,SAAStzH,GAC3B,IAAIooB,EAAiBjyF,KAAKonB,gBAC1B6qE,EAAekP,YAAY,CACvB74C,mBAAoBtoD,KAAK+nB,OAAO,yBAGxCq1K,eAAgB,OAChBC,YAAa,WACT,OAAOr9L,KAAK8qH,cAEhBt3C,OAAQ,SAASxC,GACb,IAAIihB,EAAiBjyF,KAAKonB,gBACtB6qE,GAAkBjyF,KAAK0zL,aAAezhG,EAAe12B,cACjD,YAAcyV,GACdhxE,KAAK2wF,QAAQ,CACT2sG,eAAe,IAGvBt9L,KAAK0zL,WAAazhG,EAAe12B,aAErCv7D,KAAKqwL,sBAETkN,iCAAkC,SAAS1sL,EAAK2sL,GAC5C,OAAOA,EAAiB,GAAK,CAAC3sL,EAAIg5D,WAEtC4zH,YAAa,SAAS//H,GACd19D,KAAKkwL,WAAW5xL,QAAQo/D,GAAY,IACpC19D,KAAKkwL,WAAWjtL,KAAKy6D,GACrBA,EAASo0B,OAAO,KACZ,IAAI1wF,EAAQpB,KAAKkwL,WAAW5xL,QAAQo/D,GAChCt8D,GAAS,GACTpB,KAAKkwL,WAAW38G,OAAOnyE,EAAO,OAK9Cs8L,eAAgB,SAAS1sL,EAASnP,EAAOtF,GACrC,IAAIohM,EACAtC,EAAU,GACV/2D,EAAU,QAAUq5D,EAAe3sL,EAAQH,WAAQ,IAAW8sL,OAAe,EAASA,EAAax3L,KACnGy3L,EAAS5sL,EAAQlW,IACjB4iE,EAAW,IAAI,cACnB,QAAI,IAAWkgI,EAAQ,CACnB5sL,EAAQnP,MAAQA,EAChB,IAAIg8L,EAAqB,yBAAY7sL,EAAQF,OAAOw8C,aAAa+tI,EAASx5L,EAAO,OAAApH,EAAA,YAAO,EAAM,GAAI6pI,GAAU/nI,IAC5GshM,EAAmB1wK,MAAK,WACpBuwC,EAASluC,QAAQ,CACbrpB,KAAMk1L,EACNvgM,IAAK8iM,EACLt5D,QAASA,EACT7lI,KAAMqwL,QAEVn/J,KAAK8/J,GAAqB/xH,IAAW/tC,KAAKm9E,GAAO9sG,KAAKwxL,uBAAuB1kF,IAC7E,eAAUvwG,IAASyU,EAAQF,OAAO+Y,kBAClC7Y,EAAQF,OAAO+Y,gBAAgBhoB,GAAStF,GAE5CyD,KAAK89L,iBAAiB9sL,GACtBhR,KAAKy9L,YAAY//H,GAErB,OAAOA,GAEXogI,iBAAkB,SAAS9sL,GACvB,GAAIA,EAAQ8kB,OAAQ,CAChB,IAAIm8D,EAAiBjyF,KAAKonB,gBACtByiD,EAAWooB,EAAe8W,iBAAiB/3F,EAAQlW,KACnD+V,EAAMohF,EAAekV,iBAAiBt9B,GACtCh5D,IACAG,EAAQ8kB,OAASjlB,EAAIilB,QAEzB9kB,EAAQ8kB,OAAO9kB,EAAQ4T,aAAe5T,EAAQnP,QAGtDk8L,iBAAkB,SAAS/sL,EAASnP,EAAOtF,EAAMyhM,GAC7C,IAAIJ,EAAS5sL,EAAQlW,IACjB4iE,EAAW,IAAI,cAanB,YAZI,IAAWkgI,GACX59L,KAAKonB,gBAAgB86E,UAAU,SAE/BlxF,EAAQF,OAAOw8C,aACfttD,KAAK09L,eAAe1sL,EAASnP,EAAOtF,GAAM4wB,KAAKyyD,IAC3C,kBAAK5/E,KAAK0jG,aAAa1yF,EAAS4uE,EAAQo+G,IAAiBlsG,OAAO,KAC5Dp0B,EAASluC,cAIjBkuC,EAASluC,UAENkuC,EAASptC,WAEpB2tK,gCAAiC,SAASjtL,GACtC,GAAIhR,KAAKq9L,gBAAkBr9L,KAAKo0L,WAAWpjL,EAAQ64D,SAAU74D,EAAQ4T,aAGjE,OAFA5kB,KAAKq6L,oBACLr6L,KAAKk+L,eAAeltL,EAAQH,KAAK,IAC1B,GAGfstL,eAAgB,SAASrtL,GACrB,IAAI07D,EAAiBxsE,KAAKysE,mBAAmBC,oBACxC57D,IACDA,EAAS9Q,KAAKs4L,kBAElB,IAAI8F,EAAuBttL,GAAUA,EAAOw8C,eAAiBx8C,EAAOk4E,oBAChEq1G,EAA6B7xH,EAAe9+C,KAAKulE,GAAiBA,EAAc/uE,qBAAuB+uE,EAAcnkE,2BACzH,OAAOsvK,GAAwBC,GAEnC36F,aAAc,SAAS1yF,EAAS4uE,EAAQo+G,GACpC,IAAIM,EAAgB,eAAS,GAAIttL,EAAS,CACtCgtL,eAAgBA,IAIpB,OAFAh+L,KAAKm3L,WAAWv3G,EAAQ0+G,GACxBt+L,KAAKqwL,qBACErwL,KAAKu+L,iBAAiBvtL,EAASstL,EAAcN,iBAExDO,iBAAkB,SAASvtL,EAASgtL,GAChC,IAAII,EAAuBptL,EAAQF,OAAOw8C,eAAiBt8C,EAAQF,OAAOk4E,oBACtEn4E,EAAMG,EAAQH,IACdA,IACImtL,GAAkBI,EAClBp+L,KAAKk+L,eAAertL,EAAKmtL,EAAgBI,GAClCvtL,EAAI2iE,QACX3iE,EAAI2iE,WAIhBgrH,mBAAoB,SAAS3tL,EAAK2sL,EAAgBY,GAC9Cp+L,KAAKonB,gBAAgB+5E,YAAY,CAC7BnwB,WAAY,SACZ+yB,WAAY/jG,KAAKu9L,iCAAiC1sL,EAAK2sL,MAG/DU,eAAgB,SAASrtL,EAAKmtL,EAAgBI,GACtCJ,EACAh+L,KAAKy+L,sBAAsB5tL,EAAKmtL,EAAgBI,GAEhDp+L,KAAK0+L,oBAAoB7tL,EAAKutL,IAGtCK,sBAAuB,SAAS5tL,EAAKmtL,EAAgBI,GACjDp+L,KAAKw+L,mBAAmB3tL,GAAMmtL,EAAgBI,GAC9Cp+L,KAAK2+L,6BAA6B9tL,EAAKutL,GAClCJ,GACDh+L,KAAKq6L,qBAGbqE,oBAAqB,SAAS7tL,EAAKutL,GAC/B,IAAI1gI,EAAW,IAAI,cACnB19D,KAAKy9L,YAAY//H,GACjBzqD,WAAW,KACP,IAAIu2K,EAAkB,eAAE,aAAW37D,oBAC/BjpG,EAAc5kB,KAAKypH,UAAU11C,aAAay1G,EAAiB34K,EAAIg5D,UAC/Dt9C,EAAiBi9J,EAAgB9rL,IAAI,GACrCivB,EAAiB,OAAcL,kBAAkBC,GAGrD,GAFAvsB,KAAKw+L,mBAAmB3tL,GAAK,EAAOutL,GACpCp+L,KAAK2+L,6BAA6B9tL,EAAKutL,GACnCx5K,GAAe,EAAG,CAClB,IAAIy7F,EAAergH,KAAKypH,UAAUrzC,gBAAgBvlE,EAAIg5D,SAAUjlD,GAChE5kB,KAAKg4L,mBAAmB33E,EAAc,KAClCptG,WAAW,KACPsZ,EAAiB,aAAWshG,mBACxBlhG,EAAeH,gBAAkB,GACjC,OAAcE,kBAAkBH,EAAgBI,OAKhE+wC,EAASluC,aAGjBmvK,6BAA8B,OAC9BxH,WAAY,SAASyH,EAAc5tL,GAC/B,IAAI6tL,EACAhuL,EAAM,OAASG,QAAW,IAAWA,OAAU,EAASA,EAAQH,IAChE5D,EAAU,IAAIjN,KAAK2wL,cACnBvvL,EAAQ,OAAcqnB,cAAcm2K,EAAa9jM,IAAKmS,GACtD7L,EAAQ,IACRA,EAAQ6L,EAAQrT,OAChBoG,KAAKgxL,iBAAiB,CAClBl2L,IAAK8jM,EAAa9jM,IAClBwpI,QAASs6D,EAAat6D,iBAEnBs6D,EAAat6D,QACpBr3H,EAAQhK,KAAK27L,IAEjB,IAAIhuI,EAAS,eAAS,GAAI3jD,EAAQ7L,IAkBlC,OAjBIwvD,IACIguI,EAAaz4L,OACbyqD,EAAOzqD,KAAO,gBAAwByqD,EAAOzqD,KAAMy4L,EAAaz4L,OAE9DyqD,EAAOnyD,MAASmgM,EAAaz4L,OAASy4L,EAAangM,OACrDmyD,EAAOnyD,KAAOmgM,EAAangM,MAE3BoS,IACAA,EAAIyzH,QAAUtkI,KAAKkxL,YAAYrgL,EAAI/V,KACnC+V,EAAI1K,KAAO,gBAAwB0K,EAAI1K,KAAMy4L,EAAaz4L,QAGlE8G,EAAQ7L,GAASwvD,EACjB5wD,KAAKqgE,cAAcmvH,GAA6BviL,GAC5C+D,GAAW4/C,KAAY,QAAUiuI,EAAmB7+L,KAAK2wL,oBAAiB,IAAWkO,OAAmB,EAASA,EAAiBz9L,MAClI4P,EAAQgtL,gBAAiB,GAEtBptI,GAEXkuI,yBAA0B,SAASnyH,EAAa77D,GAC5C,OAAOA,EAAOw7C,kBAAoBtsD,KAAKywL,6BAE3CsO,kBAAmB,SAAS/tL,GACxB,IAEIm6C,EAIA6zI,EANAluL,EAASE,EAAQF,OACjB+4D,EAAW74D,EAAQH,KAAOG,EAAQH,IAAIg5D,SAEtCo1H,EAAYj/L,KAAKyyL,qBACjByM,EAAel/L,KAAKo6I,UAAUvwE,GAC9BmhC,EAAgBhrG,KAAKo0L,WAAWvqH,EAAU74D,EAAQ4T,aAEtD,KAAK9T,EAAOy8C,kBAAoBz8C,EAAOw8C,eAAiB4xI,GAAgBpuL,EAAO26C,cAAgBu/C,KAAoB,SAAWh6F,EAAQG,SAAW,mBAAqBH,EAAQG,SAAaL,EAAO6c,QAmBvL,WAAa7c,EAAO6c,SAAW,WAAa3c,EAAQG,SAAW+tL,IACtE/zI,EAAW,OAASnrD,WAAQ,IAAWA,UAAO,EAASA,KAAKm/L,oBAAoBnuL,QApBuH,CACvM,IAAIi/C,EAAgBjwD,KAAKiwD,cAAcj/C,MACjCi/C,GAAiBivI,IAAiBpuL,EAAO26C,cAAgBu/C,KAAmBk0F,GAAiBD,IAC3FnuL,EAAOy8C,mBAAqB0xI,IAC5BD,EAAsB,CAClBpvI,QAAQ,EACR90D,IAAKkW,EAAQH,IAAIob,cAAW,EAASjb,EAAQH,IAAI/V,IACjDqL,KAAM6K,EAAQH,IAAI1K,KAClB2K,OAAQA,GAEZ9Q,KAAKi4L,gBAAgB+G,IAEpBA,GAAwBA,EAAoBpvI,SAC7C5+C,EAAQk3H,SAAW,CAACrmI,EAAOtF,KACvByD,KAAK+9L,iBAAiB/sL,EAASnP,EAAOtF,MAIlD4uD,EAAWr6C,EAAOw7C,kBAAoBtsD,KAAKywL,4BAI/C,OAAOtlI,GAEXonI,cAAe,SAASztK,EAAYipC,EAAQ/8C,EAAS4/C,GACjD,IAAI3F,EAAOmkI,GAAgBrhI,EAAOnsD,MAC9B+uD,EAAW3wD,KAAK+nB,OAAO,oBACvBq3K,EAAgCp/L,KAAK+nB,OAAO,iCAC5CuvG,EAAU,eAAE,OAAOt2D,KAAK,OAAQ,KAAK15C,SAAS8mK,IAAY9mK,SAASymC,EAAO/C,UAC9E,GAAI+C,EAAO5C,UAAYi0I,EACnBp/L,KAAKypH,UAAUj6C,eAAe1qD,EAAYipC,EAAO5C,SAAUn6C,GAAS,OACjE,CACH,GAAI+8C,EAAO5C,SACPmsE,EAAU,eAAE,UAAUhwG,SAASymC,EAAO/C,eACnC,GAAI2F,GAAY1F,GAAQ8C,EAAO9C,KAAM,CACxCA,EAAO8C,EAAO9C,MAAQA,EACtB,IAAIo0I,EAAW,QAA6Bp0I,GACxC,UAAYo0I,GAAY,QAAUA,EAClC/nE,EAAU,QAA4BrsE,GAAM3jC,SAASymC,EAAO/C,UAE5DssE,EAAQhwG,SAAS,WAAa,WAAa+3K,EAAW,IAAM,KAAOp0I,GAAM+V,KAAK,QAASjT,EAAOxxD,MAElG+6H,EAAQhwG,SAAS,gBACjBxC,EAAWwC,SAASknK,IACpB,IAAI8Q,EAAmBt/L,KAAKu/L,6BAA6BxxI,EAAOnsD,MAChE09L,GAAoBhoE,EAAQt2D,KAAK,aAAc,OAAoB3nE,OAAOimM,SAE1EhoE,EAAQ/6H,KAAKwxD,EAAOxxD,MAEpB,eAAUwxD,EAAO9I,OACjBqyE,EAAQt2D,KAAK,QAASjT,EAAO9I,MAE7BjlD,KAAK8xL,kBAAkB/jI,EAAQ/8C,GAC/BsmH,EAAQhwG,SAAS,qBACTymC,EAAO5C,WAAY4C,EAAO7C,SAClC,OAAa7lD,GAAGiyH,EAAS,gBAAa,QAASu3D,IAAoB7uL,KAAKygE,cAAa,SAAU78D,GAC3F,IAAI47L,EACJ,QAAUA,EAAkBzxI,EAAO7C,eAAY,IAAWs0I,GAA2BA,EAAgBh6K,KAAKuoC,EAAQ,OAAAtzD,EAAA,WAAO,GAAImJ,EAAG,CAC5HiN,IAAKG,EAAQH,IACbC,OAAQE,EAAQF,UAEpBlN,EAAE09D,MAAM1mC,iBACRh3B,EAAE09D,MAAM+3C,sBAGhBv0F,EAAW8kB,OAAO0tF,EAAS,UACvBvpE,EAAO5C,UACPnrD,KAAKypH,UAAUj6C,eAAe8nD,EAASvpE,EAAO5C,SAAUn6C,GAAS,EAAM4/C,KAInF2uI,2BAA4B,KAAM,CAC9BtQ,KAAM,4BACNpvD,KAAM,mCACNsvD,OAAQ,8BACRD,SAAU,gCACVt/H,OAAQ,uCAEZ6vI,kBAAmB,SAASl0F,EAAa3pG,EAAMynB,EAAYqkC,GACvD,IAAImD,EAAe7wD,KAAK+nB,OAAO,kBAAoB,GAC/C23K,EAA8B,CAC9BC,OAAQ9uI,EAAaE,iBACrB8uE,KAAMhvE,EAAaQ,eACnBP,OAAQD,EAAaC,QAErB6Q,EAAY,CACZg+H,OAAQ,SACR9/D,KAAM,OACN/uE,OAAQ,UACTlvD,GACCgrI,EAAW8yD,EAA4B99L,GACvCk7L,GAAoB,SAAWn7H,GAAa,WAAaA,IAAc3hE,KAAK48L,wBAChF,MAAO,CACHniI,OAAQ,WACRzpD,QAAS,CACL61C,cAAejjD,IACX,eAAEA,EAAEijB,SAASS,SAASikF,EAAY0xB,uBAAuBqxD,GAAoB,IAAMtuL,KAAK+mB,gBAAgB46C,GAAa,aAEzH1W,KAAM,eAAiB0W,EACvB5d,SAAU+4I,EACV5xI,QAAS,KACLj4C,WAAW,KACPjT,KAAKqpB,QAGb9sB,KAAMqwI,EACN3nF,KAAM2nF,GAEVpyE,SAAU,SACV54D,KAAMA,EAAO,SACb04D,SAAU,QACVD,aAAc,OACd3M,UAAWA,IAGnBkyI,mBAAoB,SAASr0F,GACzB,IAAI0mF,EAAiBjyL,KAAK+nB,OAAO,YAAc,GAC3C83K,EAAc,GAIlB,OAHI5N,EAAeliI,aACf8vI,EAAY58L,KAAKjD,KAAKy/L,kBAAkBl0F,EAAa,SAAU,SAAU,KAEtEs0F,GAEXC,kBAAmB,SAAS54H,EAAO0Y,GAC/B5/E,KAAK+/L,oBAAoBngH,IAAW1Y,EAAM5/C,SAASsnK,KAEvD+I,gBAAiB,OACjByD,oBAAqB,SAASxqI,GAC1B,GAAIA,IAAW,eAAUA,EAAO91D,MAAQ,eAAU81D,EAAOnyD,MACrD,OAAO,GAGf29L,mBAAoB,OACpBc,sBAAuB,OACvB8C,iBAAkB,SAASp/H,EAAY5vD,GACnC,IAAIivL,EAAkBjgM,KAAK+nB,OAAO,WAAa64C,GAO/C,OANI,eAAWq/H,KACXA,EAAkBA,EAAgB,CAC9BlzL,UAAW/M,KAAK+M,UAChB8D,IAAKG,EAAQH,OAGdovL,GAEXhwI,cAAe,SAASj/C,EAAS4xG,GAC7B,IAAIlyD,EAAkB1wD,KAAK+nB,OAAO,4BAA8BgnK,GAC5DmR,IAAehgM,UAAUtG,OAAS,KAAI82D,IAAoBkyD,GAAa,SAAWA,GACtF,OAAOs9E,GAAgBlgM,KAAKggM,iBAAiB,gBAAiBhvL,IAElEg/C,cAAe,SAASh/C,GACpB,OAAOhR,KAAKggM,iBAAiB,gBAAiBhvL,IAElDm0F,eAAgB,SAASh/B,GACrB,IAAIvhD,EAAcuhD,EAAWvhD,YACzBwgF,EAAiBj/B,EAAWt1D,MAAQs1D,EAAWt1D,IAAIob,SAAWk6C,EAAWt1D,IAAIilB,OAASqwC,EAAWt1D,IAAIu0F,gBACzG,QAASA,QAAkB,IAAWA,EAAexgF,IAEzDu7K,mBAAoB,WAChB,IAAIC,EAAsBpgM,KAAKi0L,0BAC3B/iH,EAAOlxE,KAAKonB,gBAAgBsB,QAChC,OAAO03K,GAAuB,GAAIlvH,EAAKkvH,GAAqBn0K,UAEhE8zK,oBAAqB,SAAS55H,GAC1B,IAAIk6H,EAAergM,KAAKmlG,eAAeh/B,GACvC,OAAOk6H,GAAgBl6H,EAAWr1D,OAAOw8C,eAAiBttD,KAAKuwL,gBAAkBjD,KAAkBnnH,EAAWt1D,IAAIs8D,aAvxDvE,IA2xD5CmzH,GAAgB,CACvB3iM,eAAgB,WACZ,MAAO,CACHqmD,QAAS,CACLnI,KAAM,MACN2U,YAAa,OACbF,eAAgBy9H,GAChBh+H,aAAa,EACbE,eAAe,EACfD,eAAe,EACfW,UAAU,EACVF,uBAAuB,EACvBP,eAAe,EACfpB,MAAO,CACHsC,QAAS,OAAoB/3D,OAAO,6BACpCg4D,eAAgB,OAAoBh4D,OAAO,oCAC3Ci4D,eAAgB,OAAoBj4D,OAAO,oCAC3C03D,iBAAkB,OAAoB13D,OAAO,sCAC7C23D,iBAAkB,OAAoB33D,OAAO,sCAC7Cy3D,OAAQ,OAAoBz3D,OAAO,4BACnC83D,UAAW,OAAoB93D,OAAO,+BACtCk4D,YAAa,OAAoBl4D,OAAO,iCACxC43D,qBAAsB,OAAoB53D,OAAO,0CACjD63D,mBAAoB,IAExBb,KAAM,CACFwG,SAAU,GAEdtG,MAAO,GACPG,gBAAiB,QACjBN,WAAY,KACZD,eAAgB,KAChBljD,QAAS,IAEbmyL,+BAA+B,IAGvCv6H,YAAa,CACT7gB,QAAS8rI,IAEb7qH,UAAW,CACPJ,YAAa,CACT1+D,KAAM,CACF45D,KAAM,WACF//D,KAAKugM,mBAAqBvgM,KAAKihE,cAAc,WAC7CjhE,KAAKC,YAETq1F,OAAQ,SAASsJ,EAAMt2C,GAEnB,OADCA,GAAsBtoD,KAAKugM,mBAAmB5vG,UACxC3wF,KAAKC,SAASnB,MAAMkB,KAAME,YAErCwpG,YAAa,WACT,IAAI1pG,KAAKihE,cAAc,WAAW86H,WAGlC,OAAO/7L,KAAKC,SAASnB,MAAMkB,KAAME,YAErCg+L,eAAgB,SAASx1K,GACrB,IAIQ83K,EAJJpwI,EAAapwD,KAAK+nB,OAAOilK,IACzBkK,EAAe,OAAczuK,cAAc2nC,EAAY1nC,GACvDwtK,EAAWxtK,EAAMwuK,GACjBhB,IAEAA,EAAS/oH,WAAY,EACrB,QAAUqzH,EAAwBxgM,KAAKygM,uBAAoB,IAAWD,GAAiCA,EAAsBh7K,KAAKxlB,KAAMk2L,KAGhJnvF,iBAAkB,SAASn2C,GACvB5wD,KAAKC,SAAS2wD,GACd5wD,KAAKk+L,eAAel+L,KAAK0oB,OAAM,KAEnCi7E,mBAAoB,SAAS/yC,GACzB5wD,KAAKk+L,eAAettI,EAAOloC,OAC3B1oB,KAAKC,SAAS2wD,IAElBgzC,kBAAmB,SAAShzC,GACxB5wD,KAAKk+L,eAAettI,EAAOloC,OAC3B1oB,KAAKC,SAAS2wD,IAElBoyC,cAAe,SAASt6E,EAAOkoC,GAE3B,OADAloC,EAAQ1oB,KAAKugM,mBAAmBh3D,aAAa7gH,EAAOkoC,GAC7C5wD,KAAKC,SAASyoB,EAAOkoC,IAEhC0yC,iBAAkB,SAASC,EAAUvyF,GAEjC,OADAhR,KAAKugM,mBAAmBnL,gBAAgB7xF,EAAUvyF,EAAShR,KAAKwjG,oBACzDxjG,KAAKC,SAASsjG,EAAUvyF,IAEnCoyF,aAAc,SAASr8F,EAAMiK,GAMzB,OALAjK,EAAO/G,KAAKC,SAAS8G,EAAMiK,GACvBjK,EAAKklB,WACLjb,EAAQk7D,mBACDnlE,EAAKmlE,WAETnlE,GAEXs+F,yBAA0B,SAASb,EAASE,EAAS76B,EAAUq7B,GAC3D,GAAIV,EAAQv4E,WAAay4E,EAAQz4E,UAAYu4E,EAAQ+wF,UAAY7wF,EAAQ6wF,QAGzE,OAAOv1L,KAAKC,SAASnB,MAAMkB,KAAME,YAErC4kG,eAAgB,SAASC,EAAQC,EAAQC,EAAiBrgF,EAAasgF,GACnE,IAAI4F,EAAoB9qG,KAAKihE,cAAc,WACvCoJ,EAAO06B,EAAOj9B,OAASi9B,EAAOj9B,MAAMljD,GACpCuoD,EAAY29B,GAAqBA,EAAkBspF,WAAWnvF,EAAiBrgF,GACnF,QAAIsgF,IAAgB/3B,QAGhB9C,IAAQA,EAAKv5D,QAAWu5D,EAAKv5D,OAAOy8C,kBAAoB8c,EAAK8C,YAAcA,IAGxEntE,KAAKC,SAASnB,MAAMkB,KAAME,aAErCogG,gCAAiC,SAASzhD,GACtC,IAAIisD,EAAoB9qG,KAAKihE,cAAc,WACvCy/H,EAAmB7hM,MAAM0nB,QAAQs4B,EAAKh9C,QAAUg9C,EAAKh9C,QAAUg9C,EAAK2sC,eAAiBsf,EAAkBixF,WAC3G,OAAQ2E,GAEZ,wBAAwB7hJ,GACpB,IAAI5/C,EAASe,KAAKC,SAAS4+C,GACvB5xC,EAAUjN,KAAK+nB,OAAO,mBACtBwB,EAAas1B,EAAKh9C,MACtB,GAAIhD,MAAM0nB,QAAQgD,IAAetc,EAAQrT,OAAQ,CAC7C,IAAI+mM,EAAiBp3K,EAAWztB,IAAIiL,GAAQ/G,KAAK06F,MAAM3zF,IACnD65L,EAAa3zL,EAAQ7O,OAAOwyD,GAAU,WAAaA,EAAOnyD,MAAQkiM,EAAejzK,KAAK5yB,GAAO,eAAa81D,EAAO91D,IAAKA,KACtH8lM,EAAWhnM,SAAWqT,EAAQrT,QAC9BoG,KAAK+nB,OAAO,kBAAmB64K,GAEnC,IAAIxwI,EAAapwD,KAAK+nB,OAAO,sBACzB84K,EAAgBD,EAAWlzK,KAAKkjC,GAAU,WAAaA,EAAOnyD,MAAQ,eAAa2xD,EAAYQ,EAAO91D,OACrG+lM,GAAiBF,EAAenoK,MAAM19B,IAAQ,eAAas1D,EAAYt1D,KACxEkF,KAAK+nB,OAAO,qBAAsB,MAG1C,OAAO9oB,KAInB8lE,MAAO,CACH74C,SAAU,CACN6zC,KAAM,WACF//D,KAAKC,WACLD,KAAKugM,mBAAqBvgM,KAAKihE,cAAc,YAEjD8S,aAAc,SAAS7M,EAAO2C,GAC1B,IAAK3C,EAAMt5E,GAAG,OAASi8E,GAAY,EAAG,CAClC,IAAIuL,EAAgBp1E,KAAKi2E,gBAAgBpM,GACrC8I,GAAa,EAMjB,OALA,eAAKyC,GAAe,SAAUh0E,EAAO2sE,GAC7B,eAAEA,GAAa9mD,KAAKigD,GAAOttE,SAC3B+4E,EAAYvxE,MAGbuxE,EAEX,OAAO3yE,KAAKC,SAASnB,MAAMkB,KAAME,YAErC8/D,cAAe,WACX,OAAOhgE,KAAKC,WAAW4R,OAAO,CAAC,eAEnCkhE,iBAAkB,SAAS/hE,GACvB,IAAIm6C,EAAWnrD,KAAKugM,mBAAmBxB,kBAAkB/tL,GACzD,OAAOm6C,GAAYnrD,KAAKC,SAAS+Q,IAErC86D,WAAY,SAASj7D,GACjB,IAAI07D,EAAOvsE,KAAKC,SAASnB,MAAMkB,KAAME,WACrC,GAAI2Q,EAAK,CACL,IAAIiwL,IAAiBjwL,EAAI0kL,QACrBwL,IAAkBlwL,EAAIob,SACtB+0K,IAAkBnwL,EAAIykL,SAC1ByL,GAAiBx0H,EAAKjlD,SAASonK,IAC/BsS,GAAiBz0H,EAAKjlD,SAASqnK,KAC3BoS,GAAiBD,IACjBv0H,EAAK/kD,YAAY6mK,IAGzB,OAAO9hH,GAEX00H,yBAA0B,SAASj7K,GAC/B,IAAIiqD,EAAgBjqD,EAASiH,QAAQ,SACjCwpD,EAAiBz2E,KAAKg0E,mBAC1B,MAAO/D,EAAcr2E,SAAW68E,EAAer4E,OAAO6xE,GAAer2E,OACjEosB,EAAWiqD,EAAchjD,QAAQ,MACjCgjD,EAAgBjqD,EAASiH,QAAQ,SAErC,OAAOjtB,KAAKkhM,6BAA6Bl7K,IAE7Ck7K,6BAA8B,SAASl7K,GACnC,IAAIq0D,EAAiBr0D,EAASiH,QAAQ,IAAM,GAAY,oCACxD,OAAOjtB,KAAK+zE,aAAasG,IAE7B8mH,iBAAkB,SAASv9L,EAAGg/G,GAC1B,IAAI9X,EAAoB9qG,KAAKugM,mBACzBlmH,EAAiB,eAAEz2E,EAAE09D,MAAMh8C,QAC3BV,EAAc5kB,KAAKihM,yBAAyB5mH,GAC5CxpE,EAAM7Q,KAAKonB,gBAAgBsB,QAAQ9kB,EAAEimE,UACrC5Z,EAAgB66C,EAAkB76C,cAAc,CAChDp/C,IAAKA,GACN+xG,IAAc/xG,GAAOA,EAAIob,SACxBnb,EAAS9Q,KAAKysE,mBAAmBC,oBAAoB9nD,GACrDw8K,EAAet2F,EAAkBspF,WAAWxwL,EAAEimE,SAAUjlD,GACxD6mC,EAAewE,GAAiBn/C,IAAWA,EAAO26C,cAAgB21I,GAClE1wI,EAAkB1wD,KAAK+nB,OAAO,4BAA8B,QAChE,GAAI,SAAW66F,EAIX,OAHK/J,GAAA,KAAQC,OAAOouE,MAAOruE,GAAA,KAAQC,OAAOw1D,SAAa8yB,GACnD,kBAEGtwL,GAAUA,EAAOy8C,kBAAoB9B,GAAgBq/C,EAAkBu2F,SAASz9L,EAAEimE,SAAUjlD,GAEvG,GAAI,UAAYg+F,GAAa,aAAelyD,IAAoB0wI,EAAc,CAC1E,IAAIE,EAAsB,OAASzwL,QAAO,IAAWA,OAAM,EAASA,EAAIob,SACxE6+E,EAAkBy2F,eAAc,EAAOD,GAE3C,OAAI71I,GAAgBm3D,IAAclyD,EACvBo6C,EAAkBu2F,SAASz9L,EAAEimE,SAAUjlD,IAAgBkmF,EAAkBsvC,UAAUx2I,EAAEimE,eADhG,GAIJG,gBAAiB,SAASpmE,GACtB5D,KAAKwhM,oBAAsBvuL,WAAW,KAClCjT,KAAKmhM,iBAAiBv9L,EAAG,WAGjCqmE,UAAW,SAASrmE,GAChB,IAAI69L,EAAa,eAAE79L,EAAEmmE,YAAYzD,SAAStmE,KAAK+mB,gBAAgB4lK,KAC/D/oL,EAAE09D,MAAM4rH,IAAyBltL,KAAK+M,UACjC/M,KAAKmhM,iBAAiBv9L,EAAG,UAAa69L,GACvCzhM,KAAKC,SAASnB,MAAMkB,KAAME,YAGlCgqE,aAAc,SAAStmE,GACd5D,KAAKmhM,iBAAiBv9L,EAAG,aAC1B5D,KAAKC,SAASnB,MAAMkB,KAAME,YAGlCsrE,cAAe,SAAStE,EAAOf,GAC3B,IAAIu7H,EACA52F,EAAoB9qG,KAAKugM,mBACzB3Q,IAAkBzpH,EAAWr1D,OAAO6c,QACpCg0K,EAAiBx7H,EAAW+hE,SAC5BkS,EAAYtvC,EAAkBsvC,UAAUj0E,EAAW0D,UACnDsD,EAAYuiH,GAAct1C,EAAWj0E,GACzC,GAAIwpH,GAAoCv1C,EAAWj0E,GAAa,CAC5D,IAAIh/D,EAAYg/D,EAAWr1D,OAAO3J,UAClC+/D,EAAMrD,YAAY7jE,KAAK+mB,gBAAgBonK,KAAkBwT,GAAgB99H,YAAY,IAA4B89H,GAC7Gx6L,GACA+/D,EAAMjgD,KAAKkmK,IAAwB1zG,QAAQhuD,IAAI,YAAatkB,GAGhEgmE,GACAntE,KAAK4hM,kBAAkB16H,GAE3B,IAAI26H,IAAiB,QAAUH,EAAqBv7H,EAAWr1D,cAAW,IAAW4wL,IAAsBA,EAAmBt6L,eAC1H++D,EAAWr1D,QAAW8+K,GAAmBiS,IAAe/2F,EAAkBi1F,oBAAoB55H,IAC9F2kC,EAAkBg1F,kBAAkB54H,EAAOf,GAE/CnmE,KAAKC,SAASnB,MAAMkB,KAAME,YAE9B0hM,kBAAmB,OACnBE,kBAAmB,OACnBpvH,gBAAiB,SAAS1hE,GACtB,IAAI27D,EAAc3sE,KAAKC,SAAS+Q,GAEhC,OADA27D,EAAYQ,UAAYntE,KAAKugM,mBAAmBnM,WAAWznH,EAAY9C,SAAU8C,EAAY/nD,aACtF+nD,GAEXlB,YAAa,SAASz6D,GAClB,IAAIk2D,EAAQlnE,KAAKC,SAAS+Q,GACtBopI,EAAYp6I,KAAKugM,mBAAmBnmD,UAAUppI,EAAQ64D,UAE1D,OADA8lH,GAAoCv1C,EAAWppI,IAAYk2D,EAAM5/C,SAAS,IACnE4/C,GAEX66H,UAAW,SAASl4H,EAAUwM,EAAkBx0E,EAAOtF,GACnD,IAAIowE,EAAc3sE,KAAK8wG,eAAejnC,EAAUwM,GAChD,GAAI1J,EAAa,CACb,QAAI,IAAW9qE,EACX,OAAO8qE,EAAY9qE,MAEnB7B,KAAKugM,mBAAmBxC,iBAAiBpxH,EAAa9qE,EAAOtF,GAAM,KAI/EklE,QAAS,WACLzhE,KAAKC,SAASnB,MAAMkB,KAAME,WAC1BupE,aAAazpE,KAAKwhM,sBAEtBz+H,YAAa,WACT/iE,KAAKC,SAASnB,MAAMkB,KAAME,WAC1BF,KAAKugM,mBAAmBvH,uBAGhCztF,YAAa,CACTywB,iBAAkB,WACd,IAAItzG,EAAQ1oB,KAAKC,WACb+hM,EAAkBhiM,KAAKihE,cAAc,WAAW2+H,mBAAmB5/L,MACvE,OAAOgiM,EAAgBnwL,OAAO6W,IAElC83C,cAAe,SAAS3hB,GACpB,IAAI4sC,EAAW5sC,EAAK4sC,SACpB,OAAQ5sC,EAAKj9C,MACT,IAAK,UACD,IAAIqgM,EAAkB,CAACnV,GAA2B0C,GAA6BvC,GAAoCD,IAC/GkV,EAAmBz2G,IAAaw2G,EAAgBv0K,KAAK28B,GAAcA,IAAeohC,GACtFy2G,GAAoBliM,KAAK4iE,cACzB5iE,KAAKC,SAAS4+C,GACd,MACJ,IAAK,gCACDA,EAAK6hB,SAAU,EACf,MACJ,QACI1gE,KAAKC,SAAS4+C,KAG1B13B,UAAW,WACP,IAAI8qK,EAAiBjyL,KAAKihE,cAAc,WAAWl5C,OAAO,WAC1D,OAAO/nB,KAAKC,aAAe,OAASgyL,QAAkB,IAAWA,OAAiB,EAASA,EAAeliI,kBC7sE9H,EAAS0V,eAAe,UAAW,OAAAhrE,EAAA,YAAO,EAAM,GAAI6lM,GAAe,CAC/Dr7H,UAAW,CACPJ,YAAa,CACT1+D,KAAM,CACFuwI,qBAAsB,SAAS57I,GAC3B,IAAIgwG,EAAoB9qG,KAAKugM,mBAI7B,OAHI1hM,MAAM0nB,QAAQzrB,IACdgwG,GAAqBA,EAAkBna,UAEpC3wF,KAAKC,SAASnB,MAAMkB,KAAME,kBCXrD,IAAIiiM,GAAW,cACJC,GAAwB,CAC/Bn9H,UAAW,CACPJ,YAAa,CACT7gB,QAAS,CACLq+I,cAAe,WACX,OAAOriM,KAAKuwL,gBAAkBjD,IAElC6P,qBAAsB,SAAStzH,GAC3B,IAAIooB,EAAiBjyF,KAAKonB,gBACtBpnB,KAAKyyL,sBAAwB5oH,GAAY,EACzCooB,EAAekP,YAAY,CACvBnwB,WAAY,SACZ+yB,WAAY,CAACl6B,EAAUA,EAAW,KAGtC7pE,KAAKC,SAASnB,MAAMkB,KAAME,YAGlC0xL,wBAAyB,SAAS7jI,EAAQ/8C,GACtC,IAAIiuL,EAAYj/L,KAAKyyL,qBACjBr4C,EAAYppI,EAAQH,KAAOG,EAAQH,IAAIg5D,WAAa7pE,KAAKi0L,0BAC7D,GAAIgL,EACA,OAAQlxI,EAAOnsD,MACX,IAAK,OACD,OAAQw4I,GAAap6I,KAAKiwD,cAAcj/C,GAC5C,IAAK,SACD,OAAOhR,KAAKC,SAASnB,MAAMkB,KAAME,aAAek6I,EACpD,IAAK,OACL,IAAK,SACD,OAAOA,EACX,QACI,OAAOp6I,KAAKC,SAASnB,MAAMkB,KAAME,WAG7C,OAAOF,KAAKC,SAASnB,MAAMkB,KAAME,YAErCk6I,UAAW,SAASvwE,GAChB,OAAO7pE,KAAKyyL,sBAAwBzyL,KAAKq0L,iBAAiBxqH,IAE9DyyH,cAAe,WACPt8L,KAAKyyL,uBACAzyL,KAAK8qH,cACN9qH,KAAKi9L,uBAGbj9L,KAAKC,SAASnB,MAAMkB,KAAME,YAE9ByzL,aAAc,SAAS/zG,GACnB,IACI+2G,mBAAoBA,GACpB,OAAS/2G,QAAU,IAAWA,EAASA,EAAS,GACpD,GAAI5/E,KAAKyyL,qBAAsB,CAC3B,IAAI6P,EAAmBtiM,KAAK2wL,aAAavyL,OAAOvQ,GAAM,WAAaA,EAAG4Q,MAAM7E,OAAS,EACrFoG,KAAK+/D,OACL42H,GAAsB2L,GAAoBtiM,KAAKi9L,sBAEnDj9L,KAAKC,SAASnB,MAAMkB,KAAME,YAE9By8L,qBAAsB,WAClB,IAAI19L,EAASe,KAAKC,SAASnB,MAAMkB,KAAME,WACnC+xL,EAAiBjyL,KAAK+nB,OAAO,WAC7Bs6K,EAAgBriM,KAAKqiM,gBACrBE,EAAyBtQ,EAAehiI,eAAiBgiI,EAAeliI,YAC5E,OAAO9wD,GAAUojM,GAAiBE,GAEtCvJ,mBAAoB,WAChB,IAAIxI,EAAWxwL,KAAKuwL,cACpB,GAAIvwL,KAAK+4L,iBAAkB,CACvB,IAAK,IAAM7K,GAAyB5vL,QAAQkyL,GAAW,CACnD,IAAIgS,EAAexiM,KAAK4yL,oBAAoB5yL,KAAKi0L,2BACjDj0L,KAAKg4L,mBAAmBwK,EAAc,KAClCA,GAAgBxiM,KAAK+M,UAAUiG,MAAMwvL,KAG7CxiM,KAAK+4L,kBAAmB,KAIpC5yL,KAAM,CACFk/F,yBAA0B,SAASb,EAASE,EAAS76B,EAAUq7B,GAC3D,IAAI4F,EAAoB9qG,KAAKihE,cAAc,WAC3C,IAAI6pC,EAAkB2nF,sBAAwBjuF,EAAQr3B,YAAcu3B,EAAQv3B,UAG5E,OAAOntE,KAAKC,SAASnB,MAAMkB,KAAME,cAI7C6kE,MAAO,CACH74C,SAAU,CACN4/C,WAAY,SAASj7D,GACjB,IAAI07D,EAAOvsE,KAAKC,SAASnB,MAAMkB,KAAME,WACrC,GAAI2Q,EAAK,CACL,IAAIi6F,EAAoB9qG,KAAKugM,mBACzBnmD,EAAYtvC,EAAkBsvC,UAAUvpI,EAAIg5D,UAC5CuwE,IACA7tE,EAAKjlD,SAAS66K,IACd51H,EAAK/kD,YAAYklK,IACb,WAAa77K,EAAIM,SACjBo7D,EAAKjlD,SAAStnB,KAAK+mB,gBAAgB4lK,MAI/C,OAAOpgH,GAEXkgC,QAAS,SAAS77C,GACd5wD,KAAKC,SAAS2wD,GACV,oBAAsBA,EAAOogB,YAC7BhxE,KAAKg0E,mBAAmB3M,SAAS,SAASA,SAAS,IAAM86H,IAAU36K,YAAYklK,SC/GvG,EAASjnH,eAAe,kBAAmB28H,I,8BCM5B,MAAM,GACjB,cACIpiM,KAAKyiM,KAAO,GAEhB,oBAAoBvsK,GAChB,IAAIj3B,EAWJ,OAVA,eAAKe,KAAKyiM,MAAM,SAAUC,EAAMx1L,GAC5B,IACIy1L,eAAgBA,EAChB57L,KAAMA,GACNmG,EACJ,GAAIgpB,EAAUnvB,GAEV,OADA9H,EAAS0jM,GACF,KAGR1jM,EAEX,sBAAsB+F,EAAU+qB,GAC5B,IAAI9wB,EAOJ,OANA,eAAKe,KAAKyiM,MAAM,SAAU3nM,EAAK+G,GAC3B,GAAImD,EAASnD,GAET,OADA5C,EAAS,SAAW8wB,EAAYj1B,EAAM+G,EAAMkuB,IACrC,KAGR9wB,EAEX,QACIe,KAAKyiM,KAAO,GAEhB,mBAAmBG,GACf,eAAKA,EAAiBC,WAAYH,GAAQ1iM,KAAK8iM,gBAAgBJ,IAEnE,gBAAgB5nM,UACLkF,KAAKyiM,KAAK3nM,GAErB,IAAIkW,GACA,IAAIlW,EAAMkW,EAAQ0xL,MAAQ,IAAI,QAE9B,OADA1iM,KAAKyiM,KAAK3nM,GAAOkW,EACVlW,EAEX,qBAAqB8nM,GACjBA,EAAiBxxB,KAAK,CAACt2K,EAAKioM,KACpB/iM,KAAKyiM,KAAK3nM,IACNioM,EAAgBJ,iBAChB3iM,KAAKyiM,KAAK3nM,GAAK6nM,eAAiBI,EAAgBJ,gBAEpD3iM,KAAKyiM,KAAK3nM,GAAKk8G,eAAiB+rF,EAAgB/rF,gBAEhDh3G,KAAKw0E,IAAI,CACLztE,KAAMg8L,EAAgBh8L,KACtB47L,eAAgBI,EAAgBJ,eAChCD,KAAM5nM,EACNk8G,eAAgB+rF,EAAgB/rF,mBAKhD,2BAA2Bl8G,EAAKkW,GACxBhR,KAAKyiM,KAAK3nM,KACVkF,KAAKyiM,KAAK3nM,GAAO,OAAAL,EAAA,WAAOuF,KAAKyiM,KAAK3nM,GAAMkW,IAGhD,yBAAyBjK,GACrB,OAAO/G,KAAKgjM,oBAAoBC,GAAcA,IAAel8L,GAEjE,kCAAkCm8L,GAC9B,OAAOljM,KAAKmjM,sBAAsBzsG,IAC9B,IACIzN,KAAMA,GACNyN,EACJ,OAAOzN,IAASi6G,GACjB,iBAEP,cAAcA,GACV,OAAOljM,KAAKmjM,sBAAsBhmG,IAC9B,IACIlU,KAAMA,GACNkU,EACJ,OAAOlU,IAASi6G,GACjB,QAEP,yBAAyBthM,GACrB,OAAO5B,KAAKgjM,oBAAoBj8L,GAAQnF,IAASmF,EAAKnF,MAE1D,8BAA8BwP,GAC1B,OAAOpR,KAAKgjM,oBAAoBj8L,GAAQqK,KAAe,eAASrK,GAAQA,EAAOA,EAAKqK,YAExF,wBAAwBrK,GACpB,IAAK,IAAIjM,KAAOkF,KAAKyiM,KACjB,GAAIziM,KAAKyiM,KAAK3nM,GAAKiM,OAASA,EACxB,OAAO/G,KAAKyiM,KAAK3nM,GAAKk8G,eAG9B,OAAO,KAEX,oBAAoBosF,GAChB,OAAOpjM,KAAKmjM,sBAAsB9lG,IAC9B,IACIt2F,KAAMA,GACNs2F,EACJ,OAAOt2F,IAASq8L,GACjB,aAEP,uBAAuBr8L,GACnB,OAAO/G,KAAKmjM,sBAAsB9nG,IAC9B,IACIt0F,KAAMygI,GACNnsC,EACJ,OAAOmsC,IAAgBzgI,GACxB,gBAEP,WACI,OAAO/G,KAAKyiM,KAEhB,KAAKn/E,GACD,eAAKtjH,KAAKyiM,MAAM,SAAU3nM,EAAKioM,GAC3Bz/E,EAAQxoH,EAAKioM,MAGrB,2BAA2B95G,GACvB,IAAI3yD,EAAO94B,OAAO84B,KAAKt2B,KAAKyiM,MACxBY,EAAe/sK,EAAKl4B,OAAOtD,KACvBkF,KAAKyiM,KAAK3nM,GAAKmuF,MACRjpF,KAAKyiM,KAAK3nM,GAAKmuF,KAAK3qF,QAAQ2qF,EAAM,IAAM,GAIvDo6G,EAAaniM,QAAQpG,GAAOkF,KAAK8iM,gBAAgBhoM,KCvIlD,IAAIwoM,GAAc,CACrB,KAAKt9K,EAAUwuC,GACX,gBAAKxuC,EAAU,CACX2F,KAAM6oC,MAIP,GAAY,CACnB,OAAOxuC,EAAUwuC,EAAUwF,EAAUupI,GACjCt9E,GAAA,KAAGG,QAAQpgG,EAAU,CACjBvnB,KAAM,QACN/F,GAAI,CACAizB,KAAM6oC,GAEVwF,SAAUA,EACVF,SAAUypI,KAGlB,SAASv9K,GACLigG,GAAA,KAAGr5G,KAAKoZ,GAAU,K,aCctBw9K,GAAkB,eAClBC,GAA0B,uBAC1BC,GAAiC,8BACjCC,GAAuB,oBACvBC,GAA8B,2BAC9BC,GAA0B,sBAC1BC,GAA+B,IAC/BC,GAAWliM,IAAUA,EACrB,GAAWmkB,GAAY,gBAAOA,GAAU2F,KACxCq4K,GAAY,QAAiB3kI,QAAQ,CACrCs3C,iBAAkB,IAAMgtF,GACxBttF,eAAgB,WACZ,OAAO,OAAA57G,EAAA,WAAOuF,KAAKC,WAAY,CAC3Bw2G,OAAQ,OACRC,SAAU,UAGlBd,mBAAoB,WAChB,OAAO,OAAAn7G,EAAA,WAAOuF,KAAKC,WAAY,CAC3B67G,cAAe,EACfmoF,cAAc,EACdC,kBAAkB,EAClBC,MAAM,EACN7wI,gBAAgB,EAChB0iD,gBAAiB,CACbC,KAAM,YAEVmuF,eAAe,EACfC,eAAe,EACftuE,cAAe,SACfuuE,mBAAmB,EACnBC,kBAAkB,KAG1B7kF,qBAAsB,WAClB,OAAO1/G,KAAKC,WAAW4R,OAAO,CAAC,CAC3B8tG,OAAQ,WACJ,MAAO,YAAc9G,GAAA,KAAQC,OAAOC,aAAeF,GAAA,KAAQyd,eAE/DtlH,QAAS,CACL6zC,mBAAmB,OAI/Bo1D,WAAY,WACR,OAAO0pF,IAEX9pF,aAAc,WACV,OAAOgqF,IAEX1tF,eAAgB,WACZ,OAAOn2G,KAAKwkM,iBAEhBnnF,cAAe,WACX,OAAOr9G,KAAKm2G,iBAAiB9uC,SAASrnE,KAAK8yH,kBAE/C2xE,WAAY,WAIR,OAHKzkM,KAAK0kM,kBACN1kM,KAAK0kM,gBAAkB,eAAS1kM,KAAKyrK,YAElCzrK,KAAK0kM,iBAEhBC,qBAAsB,kBACX3kM,KAAK0kM,iBAEhBE,YAAa,WACT,OAAO5kM,KAAK+nB,OAAO,SAASnuB,QAEhCirM,gBAAiB,SAASzjM,GACtB,IAAImgB,EAAQvhB,KAAK4kM,cAOjB,OANIxjM,EAAQ,IACRA,GAASmgB,GAETngB,GAASmgB,IACTngB,GAASmgB,GAENngB,GAEX0jM,sBAAuB,WACnB,OAAO9kM,KAAK+nB,OAAO,eAAiB,EAAI,GAE5C6uF,MAAO,WACH52G,KAAKC,SAASnB,MAAMkB,KAAME,WAC1B,IAAI8lB,EAAWhmB,KAAKgmB,WACpBA,EAASsB,SAASk8K,IAClBxjM,KAAKyrK,UAAY,eAAE,SAASnkJ,SAASm8K,IACrCzjM,KAAKyrK,UAAUlkJ,SAASvB,GACxBhmB,KAAKwkM,gBAAkB,eAAE,SAASl9K,SAASo8K,IAC3C1jM,KAAKwkM,gBAAgBj9K,SAASvnB,KAAKyrK,WACnCzrK,KAAK+nB,OAAO,gBAAiB/nB,KAAK+nB,OAAO,SACzC/nB,KAAK+kM,kBAETzsF,YAAa,WACTt4G,KAAKglM,eAAiB,GACtBhlM,KAAKC,WACL,IAAIglM,EAAsBjlM,KAAKklM,0BAC/BllM,KAAKmlM,uBAAuBF,EAAoB,KAEpDG,yBAA0B,SAASj6F,EAAOk6F,GACtCrlM,KAAKC,SAASkrG,EAAOk6F,GACjBrlM,KAAKglM,gBACLhlM,KAAKglM,eAAezxH,OAAO8xH,EAAkB5xF,UAAW,IAGhE6xF,2BAA4B,SAAS10I,GACjC5wD,KAAKC,SAASnB,MAAMkB,KAAME,WACtBF,KAAKglM,gBACLhlM,KAAKglM,eAAezxH,OAAO3iB,EAAOxvD,MAAO,EAAG,OAGpDmkM,yBAA0B,SAASnkM,EAAO0+E,EAAUi6B,GAChD34G,GAASpB,KAAK+nB,OAAO,UAAY,IAAIzpB,QAAQwhF,GAC7C9/E,KAAKC,SAASmB,EAAO0+E,EAAUi6B,IAEnCm6D,mBAAoB,SAASr1H,GACzB,IAAI2mJ,EAAwB,IAAI,cAC5B7hM,EAAO3D,KACPC,EAAWD,KAAKC,SAChBy9D,EAAW,IAAI,cAOnB,OANAA,EAASvwC,MAAK,WACV,IAAIyuF,EAAe37G,EAASulB,KAAK7hB,EAAMk7C,GACvC2mJ,EAAsBh2K,QAAQosF,MAElC57G,KAAKglM,eAAenmJ,EAAKz9C,OAASs8D,EAClC19D,KAAK+nB,OAAO,mBAAqB21C,EAASluC,UACnCg2K,EAAsBl1K,WAEjCyxF,QAAS,WACL/hH,KAAKC,WACL,eAAY,KACR,IAAIglM,EAAsBjlM,KAAKklM,0BAC/BllM,KAAKylM,aAAaR,EAAoB,OAG9CQ,aAAc,SAAS3pF,EAAe4pF,GAClC1lM,KAAK2lM,qBAAqB7pF,EAAe4pF,GACzC1lM,KAAKmlM,uBAAuBrpF,EAAe4pF,IAE/CE,iBAAkB,WACd5lM,KAAKC,SAASnB,MAAMkB,KAAME,WAC1B,IAAI+kM,EAAsBjlM,KAAKklM,0BAC/BllM,KAAKmlM,uBAAuBF,EAAoB,KAEpDU,qBAAsB,SAAS7pF,EAAe4pF,GAC1C,IAAIhsF,EAAgB15G,KAAKq9G,gBACrBwoF,EAAe,eAAUH,IAAa1lM,KAAK8lM,oBAAoBJ,EAAU5pF,QAAiB,EAC1FiqF,EAAgBrsF,EAAcluF,GAAGswF,GACrCwnF,GAAY0C,KAAKD,EAAe,GAC5B,eAAUL,IACVpC,GAAY0C,KAAKtsF,EAAcluF,GAAGk6K,GAAW,IAAMG,EAAe,MAG1EV,uBAAwB,SAASrpF,EAAe4pF,GAC5C,IAAIhsF,EAAgB15G,KAAKq9G,gBACzB3D,EAAc03D,KAAK,SAAS39D,EAAW1sG,GACnC,IAAIokG,EAAQ,eAAEpkG,GACVk/L,EAAWxyF,IAAcqI,GAAiBrI,IAAciyF,EACvDO,GACDjmM,KAAKkmM,oBAAoBzyF,GAE7BtI,EAAMtnC,YAAY+/H,GAA6BqC,GAC/CjmM,KAAKosB,QAAQ,SAAU65K,QAAY,EAAQ96F,IAC7C3gF,KAAKxqB,QAEXkmM,oBAAqB,SAAS9kM,GAC1B,IAAI+pG,EAAQnrG,KAAKq9G,gBAAgB7xF,GAAGpqB,GAChC+kM,EAAiBh7F,EAAMlkF,KAAKjnB,KAAKomM,qBAAqBxsM,OAAS,EAC/D,eAAUwH,KAAW+kM,IACrBnmM,KAAKglM,eAAe5jM,GAAOouB,UAC3B,gBAAmB27E,KAG3Bk7F,aAAc,SAASl7F,EAAOpkG,GAC1B/G,KAAKC,SAASkrG,EAAOpkG,GACrB/G,KAAKmlM,uBAAuBnlM,KAAK+nB,OAAO,mBAE5Cm0F,iBAAkB,OAClBoqF,iBAAkB,SAAS9oF,EAAgBC,GACvC,IAAIioF,EAAWloF,EAAe,GAC1BtZ,EAAYuZ,EAAiB,GACjC,GAAU3jD,SAAS95D,KAAKwkM,iBACxBxkM,KAAKylM,aAAavhG,EAAWwhG,GAC7B,IAAIa,EAAqBvmM,KAAK8lM,oBAAoBJ,EAAUxhG,GAC5DlkG,KAAKwmM,sBAAsBD,EAAqBvmM,KAAKykM,aAAc,WAC/DnB,GAAY0C,KAAKhmM,KAAKwkM,gBAAiB,GACvCxkM,KAAKylM,aAAaC,GAClB,eAAS1lM,KAAKwkM,kBAChBh6K,KAAKxqB,QAEXwmM,sBAAuB,SAAShyI,EAAUiyI,GACtC,IAAIzsI,EAAWh6D,KAAK+nB,OAAO,oBAAsB+7K,GAA+B,EAChF,GAAU4C,OAAO1mM,KAAKwkM,gBAAiBhwI,EAAUwF,EAAUysI,IAE/DX,oBAAqB,SAASJ,EAAUxhG,GACpC,IAAIyiG,EAAoB,GAAS3mM,KAAKwkM,iBAClCoC,GAAmB1iG,EAAYwhG,GAAY1lM,KAAK8kM,wBAA0B9kM,KAAK6mM,kCAC/EC,EAAiB,IAAMH,EACvBI,EAAwBD,EAAiBH,EAAoBC,EACjE,OAAO,gBAAKG,IAEhB,yBACI,OAAQ/mM,KAAK+nB,OAAO,iBAAmB/nB,KAAK4kM,eAAiB,GAEjE,iBACI5kM,KAAKooB,iBAAiBpoB,KAAKgmB,WAAY,GAAW,CAC9C+9B,SAAU/jD,KAAKgnM,yBACf10C,SAAS,EACTC,aAAcvyJ,KAAKykM,WAAWj6K,KAAKxqB,MACnCiyJ,QAASpzG,GAAQ7+C,KAAK6hK,mBAAmBhjH,EAAKyiB,OAC9C6wF,UAAWtzG,GAAQ7+C,KAAK8hK,oBAAoBjjH,EAAKyiB,OACjD/uB,MAAOsM,GAAQ7+C,KAAK+hK,iBAAiBljH,EAAKyiB,UAGlDugG,mBAAoB,SAASj+J,GACzB,GAAUk2D,SAAS95D,KAAKwkM,iBACxB,IAAI1oF,EAAgB97G,KAAK+nB,OAAO,iBAC5Bo8K,EAAOnkM,KAAK+nB,OAAO,QACnBk/K,EAAYjnM,KAAK4kM,cAAgB,EACjCsC,EAAMlnM,KAAK+nB,OAAO,cACtBnkB,EAAEq+J,cAAgB8hC,GAASI,IAAS+C,EAAMprF,EAAgB,EAAIA,EAAgBmrF,IAC9ErjM,EAAEs+J,eAAiB6hC,GAASI,IAAS+C,EAAMprF,EAAgBmrF,EAAYnrF,EAAgB,IACvF97G,KAAKmnM,gBAAkB,MAE3BrlC,oBAAqB,SAASl+J,GAC1B,IAAIwnB,EAASxnB,EAAEwnB,OACXg8K,EAAiB,gBAAKh8K,GAAUprB,KAAK8kM,wBAEzC,GADAxB,GAAY0C,KAAKhmM,KAAKwkM,gBAAiBp5K,EAASprB,KAAKykM,cACjD2C,IAAmBpnM,KAAKmnM,gBAAiB,CACzCnnM,KAAKmnM,gBAAkBC,EACvB,IAAItrF,EAAgB97G,KAAK+nB,OAAO,iBAC5B29K,EAAW1lM,KAAK6kM,gBAAgB/oF,EAAgBsrF,GACpDpnM,KAAKylM,aAAa3pF,EAAe4pF,KAGzC3jC,iBAAkB,SAASn+J,GACvB,IAAIy+J,EAAez+J,EAAEy+J,aAAeriK,KAAK8kM,wBACzC,GAAIziC,EAAc,CACdriK,KAAK+nB,OAAO,gBAAiB/nB,KAAK6kM,gBAAgB7kM,KAAK+nB,OAAO,iBAAmBs6I,IACjF,IAAIglC,EAAmBrnM,KAAKsnM,eAAelpM,OAAO,qBAClD4B,KAAK+nB,OAAO,sBAAwB/nB,KAAK+nB,OAAO,iBAAkB,eAAiBs/K,SAEnFrnM,KAAKwmM,sBAAsB,EAAG,SAGtCK,gCAAiC,WAC7B,OAAO7mM,KAAKunM,kBAAoB,EAAI,GAExCnmF,WAAY,WACRphH,KAAKC,SAASnB,MAAMkB,KAAME,WAC1BF,KAAKunM,kBAAmB,GAE5BxmF,UAAW,SAASL,GAChB,IAAI8mF,EAAUxnM,KAAKC,SAASnB,MAAMkB,KAAME,WAExC,OADAF,KAAKunM,iBAAmBC,EAAQ55M,GAAG8yH,EAAOx5F,QACnCsgL,GAEXvmF,UAAW,SAASP,GAChB,IAAI8mF,EAAUxnM,KAAKC,SAASnB,MAAMkB,KAAME,WAExC,OADAF,KAAKunM,iBAAmBC,EAAQ55M,GAAG8yH,EAAOjnC,SACnC+tH,GAEX1sE,kBAAmB,WACf96H,KAAK2kM,wBAETl0F,mBAAoB,SAAS9mD,GACrBA,GACA3pD,KAAK86H,qBAGb,4BACI,IAAI/2E,EAAW/jD,KAAKgnM,yBACpB,GAAUp0F,YAAY5yG,KAAKgmB,YAAY+B,OAAO,WAAYg8B,IAE9Do5D,eAAgB,SAASt+D,GACrB,IAAIh9C,EAAQg9C,EAAKh9C,MACjB,OAAQg9C,EAAKj9C,MACT,IAAK,OACD5B,KAAK+nB,OAAO,gBAAiBlmB,GAC7B,MACJ,IAAK,mBACD,MACJ,IAAK,eACD7B,KAAKynM,4BACL,MACJ,IAAK,iBACDznM,KAAK4iE,cACL,MACJ,IAAK,QACD5iE,KAAKynM,4BACLznM,KAAKC,SAAS4+C,GACd,MACJ,QACI7+C,KAAKC,SAAS4+C,OAI9B,eAAkB,cAAemlJ,IAClB,UC5UX0D,GAAwB,qBACxBC,GAAc,WACdC,GAAW,QAAqBvoI,QAAQ,CACxCwoI,gBAAiB,WACb7nM,KAAKC,WACLD,KAAK8nM,cAAc,QAAS9nM,KAAK+nM,aAAav9K,KAAKxqB,QAEvD+nM,aAAc,SAASC,GAEnB,GADAhoM,KAAKojE,UAAUiE,SAAS,IAAMsgI,IAAa7/K,SACtCkgL,EAAL,CAGA,IAAIC,EAAS,eAAE,SAAS3gL,SAASogL,IAAuBpgL,SAASqgL,IAAaprM,KAAKyrM,GACnFhoM,KAAKojE,UAAUx5B,OAAOq+J,OAGf,MClBJC,GAAsB,mB,aCA1B,SAASC,GAAiBthL,GAC7B,OAAOA,EAAQ4mD,YAAc5mD,EAAQ6mD,YCQlC,SAAS06H,GAAcC,EAAkBC,GAC5C,OAAO3mL,KAAKwqF,MAAMk8F,IAAqBC,EAEpC,SAASC,GAAe1hL,EAASwhL,EAAkBC,GACtD,OAAO3mL,KAAKwqF,MAAMg8F,GAAiBthL,GAAWwhL,IAAqBC,EC0CvE,IAAIE,GAAa,UACbC,GAAqB,kBACrBC,GAAuB,oBACvBC,GAAwB,qBACxBC,GAAyB,sBACzBC,GAAwB,qBACxBC,GAAkB,SAClBC,GAA2B,kBAC3BC,GAAwB,qBACxBC,GAA6B,0BAC7BC,GAA8B,2BAC9BC,GAAuB,cACvBC,GAAqB,YACrBC,GAAmB,cACnBC,GAAmB,cACnBC,GAAwB,IACxBC,GAA6B,EAC7BC,GAA0B,IAC1BC,GAAa,GACbC,GAAO,QAAiBtqI,QAAQ,CAChCs3C,iBAAkB,IAAMmyF,GACxBlzF,mBAAoB,WAChB,OAAO,OAAAn7G,EAAA,WAAOuF,KAAKC,WAAY,CAC3BilD,mBAAmB,EACnB0kJ,gBAAgB,EAChB3sI,iBAAiB,EACjBtF,kBAAkB,EAClBo+D,cAAe,SACfjzE,oBAAoB,EACpBwhJ,mBAAmB,EACnBD,eAAe,EACfD,eAAe,EACfluF,cAAc,EACd2zF,UAAW,SAAS1jM,GAChB,OAAOA,EAAOA,EAAK6hM,WAAQ,GAE/BhyF,gBAAiB,CACbC,KAAM,UAIlByJ,qBAAsB,WAClB,IAAIsrB,EAAY,iBAChB,OAAOhrI,KAAKC,WAAW4R,OAAO,CAAC,CAC3B8tG,OAAQ,WACJ,MAAO,YAAc9G,GAAA,KAAQC,OAAOC,YAExC/nG,QAAS,CACL44L,gBAAgB,IAErB,CACCjqF,OAAQ,CACJ5G,WAAY,WAEhB/nG,QAAS,CACLisD,iBAAiB,IAEtB,CACC0iD,OAAQ,WACJ,MAAO,YAAc9G,GAAA,KAAQC,OAAOC,aAAeF,GAAA,KAAQyd,eAE/DtlH,QAAS,CACL6zC,mBAAmB,IAExB,CACC86D,OAAQ,WACJ,OAAO,eAAWqrB,IAEtBh6H,QAAS,CACLklG,cAAc,EACdmuF,eAAe,OAI3BztF,MAAO,WACH52G,KAAKC,WACLD,KAAKosB,QAAQ,OAAQ,WACrBpsB,KAAKgmB,WAAWsB,SAASkhL,IACzBxoM,KAAK8pM,iBACL9pM,KAAK+pM,kBACL/pM,KAAKgqM,qBAAuBT,IAEhC1yE,eAAgB,WACZ72H,KAAKC,WACLD,KAAK82H,iBAAiBC,oBAAoB,CACtChwH,KAAM,IAAI,QAAiB,SAAS+d,EAAY3e,GACxC,eAAcA,GACdnG,KAAKiqM,4BAA4B9jM,EAAM2e,GAEvCA,EAAWvoB,KAAK5C,OAAOwM,IAE3B,IAAI+jM,EAAe,gBAAkB/jM,EAAK8kD,MAC1Ci/I,GAAgBA,EAAax7F,UAAU5pF,GACvCA,EAAWqlL,UAAU,eAAE,UAAU7iL,SAAS6hL,MAC5C3+K,KAAKxqB,MAAO,CAAC,OAAQ,OAAQ,QAASA,KAAK+nB,OAAO,sCAG5DusJ,sBAAuB,SAAS3+C,EAAcy0E,GAC1C,IACItqH,SAAUA,EACV33D,UAAWA,EACX/mB,MAAOA,GACPgpM,EAEJ,OADApqM,KAAKqqM,mBAAmBjpM,GAAS,IAAI,cAC9Bu0H,EAAaxxH,OAAO,CACvBW,MAAOg7E,EACP33D,UAAWA,EACX/mB,MAAOA,EACPuuE,WAAY,IAAM3vE,KAAKqqM,mBAAmBjpM,GAAOouB,aAGzDyqF,WAAY,WACR,OAAO6uF,IAEX7sF,mBAAoB,WAChB,OAAO8sF,IAEXlvF,aAAc,WACV,OAAOuvF,IAEX9wF,YAAa,WACTt4G,KAAKqqM,mBAAqB,GAC1BrqM,KAAKC,WACLD,KAAK+nB,OAAO,iBAAmB/nB,KAAKu4G,mBACpCv4G,KAAKgmB,WAAWsB,SAASuhL,KAE7B9mF,QAAS,WACL/hH,KAAKC,WACLD,KAAKsqM,yBAET,wBACI,UAAKxrM,MAAMkB,KAAMA,KAAKqqM,oBAAoBl9K,KAAK,IAAMntB,KAAKuqM,qBAE9DA,iBAAkB,WACd,IAAIC,EAAgB,CAAC9B,GAAsBR,GAAqBW,IAEhE,GADA7oM,KAAKgmB,WAAWwB,YAAYgjL,EAAcxuM,KAAK,MAC3CgE,KAAK+nB,OAAO,qBAAuB/nB,KAAKyqM,wBAAyB,CAC5DzqM,KAAKguG,cACNhuG,KAAKitG,oBACLjtG,KAAK0qM,qBAET,IAAIx+F,EAAalsG,KAAKotG,gBAEtB,GADAlB,EAAW14B,SACPxzE,KAAK+nB,OAAO,cAAe,CAC3B,IAAIk6I,EAAgBkmC,GAAiB,eAAEnoM,KAAKotG,gBAAgBjlF,aAAazqB,IAAI,IAC7EwuG,EAAWr7B,SAAS,CAChBllD,KAAMs2I,IAGdjiK,KAAK2qM,8BACL3qM,KAAK4qM,cAAc5qM,KAAK+nB,OAAO,iBAE7B/nB,KAAK+nB,OAAO,qBAAuB/nB,KAAKyqM,0BAC1CzqM,KAAK6qM,kBACD7qM,KAAK8qM,sBAAwB9qM,KAAKyqM,yBAClCzqM,KAAKgmB,WAAWsB,SAASohL,IAE7B1oM,KAAKgmB,WAAWwB,YAAYohL,IAAwBthL,SAAS4gL,MAGrEuC,sBAAuB,WACnB,IAAIM,EAAgB/qM,KAAKs7H,sBAAsBt7H,KAAKgrM,oBAAoB,GACxE,OAAOD,EAAgB,EAAI,eAAS/qM,KAAKgmB,aAE7C8kL,kBAAmB,WACf,IAAIG,EAAgBjrM,KAAKgrM,mBACrBvvE,EAAe,eAASz7H,KAAKgmB,YAC7B21G,EAAa,GACjB,eAAKsvE,EAAe,CAAClsM,EAAGgI,KACpB40H,EAAW14H,KAAK,eAAc8D,GAAM,MAExC,IAAImkM,EAAcvpL,KAAKqQ,IAAIlzB,MAAM,KAAM68H,GACvC,OAAOuvE,EAAczvE,EAAewvE,EAAcrxM,QAEtDuxM,iBAAkB,WACTnrM,KAAKorM,aAAgBprM,KAAKqrM,eAG/BrrM,KAAKorM,YAAYplL,WAAW8B,SAC5B9nB,KAAKqrM,aAAarlL,WAAW8B,SAC7B9nB,KAAKorM,YAAc,KACnBprM,KAAKqrM,aAAe,OAExBR,gBAAiB,WACR7qM,KAAKguG,cAGVhuG,KAAKyrK,UAAUlkJ,SAASvnB,KAAKgmB,YAC7BhmB,KAAKguG,YAAYhoF,WAAW8B,SAC5B9nB,KAAKguG,YAAc,KACnBhuG,KAAKmrM,qBAET5yF,iBAAkB,WACdv4G,KAAKw4G,WAAa,mBAEtBC,mBAAoB,SAASzyF,EAAUnkB,EAAO+B,GAE1C,GADA5D,KAAKC,SAASnB,MAAMkB,KAAME,WACrBF,KAAKw4G,WAAV,CAGA,IAAIr3C,EAAS,CACTt6C,QAASb,EACTs7C,MAAO19D,GAEP/B,EACA7B,KAAKw4G,WAAWE,SAASv3C,GAEzBnhE,KAAKw4G,WAAWG,SAASx3C,KAGjC4oI,gBAAiB,WACT,aAAe/pM,KAAK+nB,OAAO,kBAC3B/nB,KAAK+nB,OAAO,iBAAiB,IAGrC+hL,eAAgB,WACZ9pM,KAAKyrK,UAAY,eAAE,SAASnkJ,SAASmhL,IACrCzoM,KAAKgmB,WAAW4jB,OAAO5pC,KAAKyrK,YAEhCt1D,eAAgB,WACZ,OAAOn2G,KAAKyrK,WAEhBx+D,kBAAmB,WACf,IAAI+J,EAAiBh3G,KAAKgmB,WAAWmkL,UAAU,eAAE,SAAS7iL,SAASqhL,KAAwBthI,WAC3FrnE,KAAKguG,YAAchuG,KAAKooB,iBAAiB4uF,EAAgB,QAAY,CACjEj9C,UAAW,aACXoD,cAAe,QACfkO,aAAa,EACbjO,WAAW,EACXH,gBAAiBj9D,KAAK+nB,OAAO,mBAC7BgmF,SAAU,KACN/tG,KAAK2qM,iCAGb3qM,KAAKgmB,WAAW4jB,OAAO5pC,KAAKguG,YAAYhoF,aAE5C4kL,cAAe,SAAS9qH,GACpB,GAAK9/E,KAAKguG,YAAV,CAGA,IAAI7C,EAAQnrG,KAAKi5G,cAAcqyF,eAAexrH,GAC9C9/E,KAAKguG,YAAYmG,gBAAgBhJ,KAErCu/F,kBAAmB,WAEf,GADA1qM,KAAKgmB,WAAW69C,YAAY+kI,GAAwB5oM,KAAK+nB,OAAO,mBAC3D/nB,KAAK+nB,OAAO,kBAAjB,CAGA,IAAIsD,EAAarrB,KAAK+nB,OAAO,cAC7B/nB,KAAKorM,YAAcprM,KAAKurM,kBAAkB7B,GAAYr+K,EAAag+K,GAAmBC,IACtF,IAAIkC,EAAcxrM,KAAKorM,YAAYplL,WACnCwlL,EAAYlkL,SAAS2hL,IACrBjpM,KAAKgmB,WAAW0kF,QAAQ8gG,GACxBxrM,KAAKqrM,aAAerrM,KAAKurM,iBAAiB7B,GAAYr+K,EAAai+K,GAAmBD,IACtF,IAAIoC,EAAezrM,KAAKqrM,aAAarlL,WACrCylL,EAAankL,SAAS4hL,IACtBlpM,KAAKgmB,WAAW4jB,OAAO6hK,KAE3Bd,4BAA6B,WACzB,IAAIz+F,EAAalsG,KAAKotG,gBACtBptG,KAAKorM,aAAeprM,KAAKorM,YAAYrjL,OAAO,WAAYqgL,GAAcl8F,EAAWv7B,aAAc,IAC/F3wE,KAAKqrM,cAAgBrrM,KAAKqrM,aAAatjL,OAAO,WAAYwgL,GAAe,eAAEr8F,EAAW/jF,aAAazqB,IAAI,GAAIwuG,EAAWv7B,aAAc,KAExI+6H,sBAAuB,SAAStgL,EAAQ4uC,GACpCh6D,KAAKguG,YAAYx6B,SACjBxzE,KAAKguG,YAAY29F,SAASvgL,EAAS4uC,IAEvCuxI,iBAAkB,SAASngL,EAAQ6/B,GAC/B,IAAItnD,EAAO3D,KACP4rM,EAAajoM,EAAK09D,eAAc,WAChC19D,EAAKkoM,cAAgBntD,aAAY,WAC7B/6I,EAAK+nM,sBAAsBtgL,EAAQo+K,MACnCA,OAEJsC,EAAgB,gBAAavwJ,GAAA,KAAU35C,KAAM,eAC7CmqM,EAAqB,gBAAapiI,EAAA,KAAcq0E,GAAI,eACpDguD,EAAsB,gBAAariI,EAAA,KAAcsiI,IAAK,eACtDC,EAAYlsM,KAAKooB,iBAAiB,eAAE,SAASd,SAAS0hL,IAAwB,cAAQ,CACtFnkJ,mBAAmB,EACnBoG,KAAMA,EACNC,QAAS,WACLvnD,EAAK+nM,sBAAsBtgL,EAAQ,IAEvC++G,mBAAoB,KAEpBgiE,EAAaD,EAAUlmL,WAc3B,OAbA,OAAa3gB,GAAG8mM,EAAYL,EAAe,CACvCtiI,QAASigI,IACV,SAAS7lM,GACRgoM,EAAW,CACPtqI,MAAO19D,KAEb4mB,KAAKxqB,OACP,OAAaqF,GAAG8mM,EAAYJ,GAAoB,WAC5CpoM,EAAKyoM,oBAET,OAAa/mM,GAAG8mM,EAAYH,GAAqB,WAC7CroM,EAAKyoM,oBAEFF,GAEXE,eAAgB,WACRpsM,KAAK6rM,eACLltD,cAAc3+I,KAAK6rM,gBAG3BvF,iBAAkB,SAAS9oF,GACvBx9G,KAAKguG,aAAehuG,KAAKguG,YAAYmG,gBAAgBn0G,KAAKsnM,eAAe97K,GAAGgyF,EAAe,IAAK,CAC5F7xF,KAAM,EACN2gH,MAAO,KAGf77B,mBAAoB,SAAS9mD,GACrBA,GACA3pD,KAAK86H,qBAGbA,kBAAmB,WACf96H,KAAKuqM,oBAET8B,mBAAoB,SAASzoM,GACrB,WAAa5D,KAAK+nB,OAAO,kBAAoB/nB,KAAKmkI,eAAevgI,EAAE8lE,gBAGvE1pE,KAAKC,SAAS2D,IAElBwyG,OAAQ,WACJp2G,KAAKqqM,mBAAqB,GAC1BrqM,KAAK6qM,kBACL7qM,KAAKC,YAETk9G,eAAgB,SAASt+D,GACrB,OAAQA,EAAKj9C,MACT,IAAK,eACL,IAAK,mBACL,IAAK,iBACD5B,KAAK4iE,cACL,MACJ,IAAK,kBACD5iE,KAAKguG,aAAehuG,KAAKguG,YAAYjmF,OAAO82B,EAAKj9C,KAAMi9C,EAAKh9C,OAC5D,MACJ,IAAK,QACD7B,KAAKC,SAAS4+C,GACd7+C,KAAK86H,oBACL,MACJ,IAAK,gBACD96H,KAAK+pM,kBACL/pM,KAAKC,SAAS4+C,GACd,MACJ,IAAK,YACD7+C,KAAK4iE,cACL,MACJ,QACI5iE,KAAKC,SAAS4+C,KAG1B,4BACI7+C,KAAKC,WACLD,KAAKsqM,yBAET,yBAAyBn/F,EAAOk6F,GAC5BrlM,KAAKC,SAASkrG,EAAOk6F,GACrBrlM,KAAKuqM,oBAET,gBACI,OAAOvqM,KAAKguG,eAGpB27F,GAAK7rF,UAAY,GACjB,eAAkB,SAAU6rF,IACb,UCraA,MAAM,WAAqB,QACtC,kBAEI,OADA3pM,KAAK8nM,cAAc,QAAS,QACrBnyF,MAAMkyF,mBC2BrB,IAAIyE,GAAiB,cACjBC,GAAsB,mBACtBC,GAA2B,wBAC3B,GAAuB,cACvBC,GAAW,GAAUptI,QAAQ,CAC7Bu2C,mBAAoB,WAChB,OAAO,OAAAn7G,EAAA,WAAOuF,KAAKC,WAAY,CAC3BysM,kBAAmB,QACnBxnJ,mBAAmB,EACnB0kJ,gBAAgB,EAChB3sI,iBAAiB,EACjBtF,kBAAkB,EAClBg1I,aAAc,KACdC,YAAa,KACbr4I,gBAAiB,KACjBs1I,UAAW,SAAS1jM,GAChB,OAAOA,EAAOA,EAAK6hM,WAAQ,MAIvCtoF,qBAAsB,WAClB,OAAO1/G,KAAKC,WAAW4R,OAAO,CAAC,CAC3B8tG,OAAQ,WACJ,MAAO,YAAc9G,GAAA,KAAQC,OAAOC,aAAeF,GAAA,KAAQyd,eAE/DtlH,QAAS,CACL6zC,mBAAmB,IAExB,CACC86D,OAAQ,WACJ,OAAQ,YAEZ3uG,QAAS,CACLizL,cAAc,IAEnB,CACCtkF,OAAQ,CACJl9E,SAAU,WAEdzxB,QAAS,CACLkzL,kBAAkB,OAI9BttF,MAAO,WACH52G,KAAKC,WACLD,KAAKgmB,WAAWsB,SAASglL,IACzBtsM,KAAKosB,QAAQ,OAAQ,aAEzBksF,YAAa,WACTt4G,KAAKC,WACLD,KAAK6sM,sBACL7sM,KAAK8sM,iBAETj2E,eAAgB,WACZ72H,KAAKC,WACLD,KAAK82H,iBAAiBC,oBAAoB,CACtCloE,MAAO,IAAI,SAAiB,SAAU/pC,EAAY3e,GAC9C,GAAI,eAAcA,GAAO,CACrB,IAAI+jM,EAAe,gBAAkB/jM,EAAK8kD,MACtCi/I,GACAplL,EAAW8kB,OAAOsgK,GAElB,eAAU/jM,EAAK0oD,SAAW,eAAc1oD,EAAK0oD,QAC7C/pC,EAAW8kB,OAAO,aAAW+E,eAAexoC,EAAK0oD,aAE9C,eAAU1oD,IACjB2e,EAAWvoB,KAAK5C,OAAOwM,IAE3B2e,EAAWqlL,UAAU,eAAE,UAAU7iL,SAAS,OAC1C,CAAC,QAAS,QAAStnB,KAAK+nB,OAAO,sCAG3C8kL,oBAAqB,WACjB7sM,KAAK+sM,0BACL/sM,KAAKgtM,yBACLhtM,KAAKitM,8BAETF,wBAAyB,WACrB/sM,KAAKktM,kBAAoBltM,KAAKuhE,sBAAsB,iBAExDyrI,uBAAwB,WACpBhtM,KAAKmtM,iBAAmBntM,KAAKuhE,sBAAsB,gBAEvD0rI,2BAA4B,WACxBjtM,KAAKotM,qBAAuBptM,KAAKuhE,sBAAsB,oBAE3D2sC,eAAgB,WACZ,IAAIvqG,EAAO3D,KACXA,KAAKC,WACDD,KAAK+nB,OAAO,mCACZ/nB,KAAKqtM,kBAAoBp6L,YAAW,WAChCtP,EAAK2pM,kBACL,KAGZR,cAAe,WACX,GAAI9sM,KAAKutM,MACLvtM,KAAKstM,oBADT,CAIA,IAAItnL,EAAWhmB,KAAKgmB,WACpBhmB,KAAKwtM,eAAiB,eAAE,SAASlmL,SAASilL,IAAqBhlL,SAASvB,GACxE,IAAIynL,EAAQ,eAAE,SAASlmL,SAASvnB,KAAKwtM,gBACrCxtM,KAAKutM,MAAQvtM,KAAKooB,iBAAiBqlL,EAAO,GAAMztM,KAAK0tM,cACrD1tM,KAAK2tM,YAAc,eAAE,SAASrmL,SAASklL,IAA0BjlL,SAASvB,GAC1EhmB,KAAK2tM,YAAY/jK,OAAO5pC,KAAKyrK,WAC7BzrK,KAAKstM,kBAETA,cAAe,WACX,GAAI,iBAAa,CACb,IAAIM,EAAa,eAAe5tM,KAAKwtM,gBACrCxtM,KAAK2tM,YAAYliL,IAAI,CACjB63C,WAAYsqI,EACZxiF,WAAYwiF,MAIxBtsF,yBAA0B,WACtB,GAAKthH,KAAKutM,MAAV,CAGA,IAAIM,EAAO7tM,KAAKutM,MACZO,EAAWD,EAAKvG,eAChByG,EAAa,eAAED,EAASD,EAAK9lL,OAAO,mBACpCj5B,EAAKkR,KAAKguM,mBACdhuM,KAAKosB,QAAQ,gBAAY,EAAQ,eAAE0hL,IACnC9tM,KAAKosB,QAAQ,WAAYt9B,EAAIi/M,KAEjCL,WAAY,WACR,MAAO,CACHrJ,eAAe,EACfx/I,kBAAmB7kD,KAAK+nB,OAAO,qBAC/Bm9B,kBAAmBllD,KAAK+nB,OAAO,qBAC/BugC,mBAAoBtoD,KAAK+nB,OAAO,sBAChCyhC,SAAUxpD,KAAK+nB,OAAO,YACtB+zF,cAAe97G,KAAK+nB,OAAO,iBAC3B8hL,UAAW7pM,KAAK+nB,OAAO,aACvB43D,YAAa3/E,KAAKktM,kBAAkB1iL,KAAKxqB,MACzC4zK,WAAY5zK,KAAKmtM,iBAAiB3iL,KAAKxqB,MACvC2zK,gBAAiB3zK,KAAK+nB,OAAO,mBAC7BkgC,mBAAoB,SAASrkD,GACzB5D,KAAK+nB,OAAO,gBAAiBnkB,EAAEmJ,UAAUgb,OAAO,kBAChD/nB,KAAKshH,4BACP92F,KAAKxqB,MACPm2H,eAAgBn2H,KAAKotM,qBAAqB5iL,KAAKxqB,MAC/C21H,aAAc31H,KAAK65H,qBAAqB,qBACxCnxG,MAAO1oB,KAAK+nB,OAAO,SACnBw9B,WAAY,KACZoS,iBAAkB33D,KAAK+nB,OAAO,oBAC9Bk1C,gBAAiBj9D,KAAK+nB,OAAO,mBAC7B6hL,eAAgB5pM,KAAK+nB,OAAO,kBAC5BkmL,qBAAsB,cACtB7J,cAAepkM,KAAK+nB,OAAO,QAC3Bu8K,mBAAmB,EACnBt9I,gBAAiB,SAASnI,GACtB,GAAI,mBAAqBA,EAAKj9C,KAC1B,GAAIi9C,EAAKh9C,MAAO,CACZ,IAAIqsM,EAAS,eAAErvJ,EAAKh9C,OAChBssM,EAAWnuM,KAAKq9G,gBAAgB7xF,GAAG0iL,EAAO9sM,SAC9CpB,KAAK+nB,OAAO,iBAAkB,eAAiBomL,SAE/CnuM,KAAK+nB,OAAO,iBAAkB82B,EAAKh9C,QAG7C2oB,KAAKxqB,MACP8yD,UAAW,SAASjU,GAChB7+C,KAAK0mJ,gBAAgB7nG,EAAKyiB,QAC5B92C,KAAKxqB,MACP+yD,WAAY,SAASlU,GACZ7+C,KAAKouM,6BACNpuM,KAAKinJ,iBAAiBpoG,EAAKyiB,QAEjC92C,KAAKxqB,QAGf63J,mBAAoB,WAChB73J,KAAKoiH,eAAephD,KAAK,YAAa,IAE1CqtI,kBAAmB,SAASzqM,EAAGipB,GAC3B7sB,KAAKC,SAAS2D,EAAGipB,GACbjpB,EAAE0hB,SAAWtlB,KAAKutM,MAAMnrF,eAAe1kH,IAAI,IAC3CsC,KAAKsuM,kBAAkBzhL,EAAW7sB,KAAKoiH,iBAG/C6kC,iBAAkB,SAASrjJ,GACvB5D,KAAKouM,6BAA8B,EACnCpuM,KAAKC,SAASnB,MAAMkB,KAAME,WAC1BF,KAAKutM,MAAMtmD,iBAAiBrjJ,GAC5B5D,KAAKouM,6BAA8B,GAEvCG,eAAgB,SAAS3sM,EAAMC,GACvB7B,KAAKutM,OACLvtM,KAAKutM,MAAMxlL,OAAOnmB,EAAMC,IAGhC4uG,mBAAoB,SAAS9mD,GACrBA,IACA3pD,KAAKutM,MAAMzyE,oBACX96H,KAAKstM,kBAGblmC,mBAAoB,SAAStsK,EAAKwoH,GAC9BtjH,KAAKC,SAASnF,EAAKwoH,GACftjH,KAAKutM,OACLvtM,KAAKutM,MAAMnmC,mBAAmBtsK,EAAKwoH,IAG3CkZ,QAAS,WACLx8H,KAAKC,WACLD,KAAKutM,MAAM/wE,WAEfrf,eAAgB,SAASt+D,GACrB,IAAIj9C,EAAOi9C,EAAKj9C,KACZC,EAAQg9C,EAAKh9C,MACb4pF,EAAW5sC,EAAK4sC,SACpB,OAAQ7pF,GACJ,IAAK,aACD5B,KAAKC,SAAS4+C,GACd,MACJ,IAAK,QACD7+C,KAAKuuM,eAAe3sM,EAAM5B,KAAK+nB,OAAOnmB,IACtC5B,KAAKstM,gBACAttM,KAAK+nB,OAAO,uBACb/nB,KAAKutM,MAAM/wE,UAEfx8H,KAAKC,SAAS4+C,GACd,MACJ,IAAK,QACD7+C,KAAKC,SAAS4+C,GACd7+C,KAAKutM,MAAM/wE,UACX,MACJ,IAAK,gBACL,IAAK,eAGD,GAFAx8H,KAAKuuM,eAAe9iH,EAAU5pF,GAC9B7B,KAAKC,SAAS4+C,IACV,IAAS7+C,KAAK+nB,OAAO,qBAAsB,CAC3C,IAAI+zF,EAAgB97G,KAAK+nB,OAAO,iBAC5BymL,EAAqBxuM,KAAKq9G,gBAAgB7xF,GAAGswF,GACjD97G,KAAK+nB,OAAO,iBAAkB,eAAiBymL,IAEnD,MACJ,IAAK,kBACL,IAAK,oBACL,IAAK,oBACDxuM,KAAKuuM,eAAe9iH,EAAU5pF,GAC9B7B,KAAKC,SAAS4+C,GACd,MACJ,IAAK,mBACL,IAAK,kBACL,IAAK,iBACD7+C,KAAKuuM,eAAe9iH,EAAU5pF,GAC9B,MACJ,IAAK,iBACD,IAAI/S,EAAK+S,EAAQ,eAAEA,GAAOT,QAAUS,EAChC6iG,EAAU7iG,EAAQ7B,KAAKutM,MAAMlwF,gBAAgB7xF,GAAG18B,GAAM+S,EAC1D7B,KAAKuuM,eAAe,iBAAkB,eAAiB7pG,IACvD1kG,KAAKC,SAAS4+C,GACd,MACJ,IAAK,oBACD7+C,KAAKuuM,eAAe,eAAgBvuM,KAAK65H,qBAAqB,sBAC9D,MACJ,IAAK,eACD75H,KAAK+sM,0BACL/sM,KAAKuuM,eAAe,cAAevuM,KAAKktM,kBAAkB1iL,KAAKxqB,OAC/D,MACJ,IAAK,cACDA,KAAKgtM,yBACLhtM,KAAKuuM,eAAe,aAAcvuM,KAAKmtM,iBAAiB3iL,KAAKxqB,OAC7D,MACJ,IAAK,kBACDA,KAAKitM,6BACLjtM,KAAKuuM,eAAe,iBAAkBvuM,KAAKotM,qBAAqB5iL,KAAKxqB,OACrE,MACJ,IAAK,OACDA,KAAKuuM,eAAe,gBAAiB1sM,GACrC,MACJ,IAAK,YACD7B,KAAK4iE,cACL,MACJ,QACI5iE,KAAKC,SAAS4+C,KAG1Bu3D,OAAQ,WACJ3sC,aAAazpE,KAAKqtM,mBAClBrtM,KAAKC,cAGbwsM,GAAS3uF,UAAY,GACrB,eAAkB,aAAc2uF,IACjB,UCpUA,MAAM,GACjB,YAAYz7L,GACRhR,KAAKqwK,SAAWr/J,EAChBhR,KAAKyuM,kBAAoBzuM,KAAKqwK,SAASuyB,iBAE3C,eACI,OAAO5iM,KAAKyuM,kBAAkBC,yBAAyB1uM,KAAKqwK,SAAStpK,MAEzE,oBACI,OAAO/G,KAAKyuM,kBAAkBE,wBAAwB3uM,KAAKqwK,SAAStpK,MAExE,mBACI,OAAO/G,KAAKyuM,kBAAkBG,uBAAuB5uM,KAAKqwK,SAAStpK,MAEvE,aACI,OAAMmtJ,YCVP,IAAI26C,GAAwB,CAACztM,EAAO0tM,IAAW,GAAGj9L,OAAOi9L,EAAS,OAAS,QAAS,KAAKj9L,OAAOzQ,EAAO,KACnG2tM,GAAc,CAACj/D,EAAOC,IACzB,eAAUD,IAAU,eAAUC,GACvB,GAAGl+H,OAAOi+H,EAAO,KAAKj+H,OAAOk+H,GAEjCD,GAASC,EAETi/D,GAAuBzyM,GAAQA,EAAOA,EAAKpB,QAAQ,MAAO,SAAM,EAChE8zM,GAA2C,CAACloM,EAAMq/E,MACrDr/E,IACOA,EAAKqK,YAAcg1E,GAAar/E,EAAKnF,OAASwkF,GAAa4oH,GAAqBjoM,EAAK8nD,SAAWu3B,GAAa,UAAYr/E,EAAKyxD,UAAYw2I,GAAqBjoM,EAAKG,WAAak/E,GAIrL8oH,GAAoB,CAACjmH,EAAM5+B,IAAe,GAAGx4C,OAAOo3E,EAAM,KAAKp3E,OAAOw4C,GACtE8kJ,GAA4B1jH,IACnC,IAAIttF,EAAQstF,EAAS5vF,MAAM,KAC3B,OAAOsC,EAAMA,EAAMvE,OAAS,GAAGuB,QAAQ,SAAU,KAE1Ci0M,GAAgBC,IAGvB,IAFA,IAAIC,EAAYD,EAASxzM,MAAM,KAC3B0zM,EAAkB,IAAID,GACjB7zM,EAAI6zM,EAAU11M,OAAS,EAAG6B,GAAK,EAAGA,IAAK,CAC5C,GAAI+zM,GAAuBF,EAAU7zM,IACjC,OAAO8zM,EAAgBvzM,KAAK,KAEhCuzM,EAAgBh8H,OAAO93E,EAAG,GAE9B,MAAO,IAEA+zM,GAAyBH,GAAYA,EAAS/wM,QAAQ,SAAW,EACjEmxM,GAAc,CAAC/mL,EAAO3hB,EAAM+nM,KACnC,IAAI1tM,EAAQsnB,EAAMpqB,QAAQyI,GAC1B,GAAI3F,GAAS,EACT,OAAOytM,GAAsBztM,EAAO0tM,GAExC,IAAK,IAAIrzM,EAAI,EAAGA,EAAIitB,EAAM9uB,OAAQ6B,IAAK,CACnC,IAAI2nM,EAAa16K,EAAMjtB,GACnBi0M,EAAkBtM,EAAWyK,MAAQzK,EAAW16K,MACpD,GAAIgnL,EAAiB,CACjB,IAAIC,EAAWF,GAAYC,EAAiB3oM,EAAMq8L,EAAWyK,MAC7D,GAAI8B,EACA,OAAOZ,GAAYF,GAAsBpzM,EAAGqzM,GAASa,MAK9D,SAASC,GAA8B1iM,GAC1C,IACImjD,KAAMA,EACNw/I,aAAcA,EACdC,YAAaA,EACbpnL,MAAOA,EACPsvC,gBAAiBA,EACjB+3I,6BAA8BA,EAC9B14I,mBAAoBA,EACpBxR,eAAgBA,EAChBG,YAAaA,EACbgqJ,oBAAqBA,GACrB9iM,EACA+iM,EAAc,CACd5/I,KAAMA,EACN3nC,MAAOA,EACPmnL,aAAcA,EACd73I,gBAAiBA,EACjBX,mBAAoBA,EACpBxR,eAAgBA,EAChBG,YAAaA,EACbgqJ,oBAAqBA,EACrBE,mBAAoBJ,EAAYn4I,iBAAmBk4I,OAAe,EAClEl4I,iBAAkBm4I,EAAYn4I,iBAC9BG,iBAAkBg4I,EAAYh4I,iBAC9BD,iBAAkBi4I,EAAYj4I,iBAC9BL,aAAcs4I,EAAYt4I,aAC1BF,aAAcw4I,EAAYx4I,aAC1BG,gBAAiBq4I,EAAYr4I,gBAC7BC,cAAeo4I,EAAYp4I,cAC3By4I,WAAYL,EAAY94I,SACxBC,cAAe64I,EAAY74I,cAC3BF,cAAe+4I,EAAY/4I,cAC3BI,YAAa24I,EAAY34I,YACzBS,oBAAqBk4I,EAAYl4I,oBACjCR,iBAAkB04I,EAAY14I,iBAC9BF,UAAW44I,EAAY54I,WAEvBj4D,EAAS,OAAAxE,EAAA,WAAOw1M,EAAa,CAC7BG,OAAQL,EAA6BK,OACrCv5I,SAAUk5I,EAA6Bl5I,SACvCF,gBAAiBo5I,EAA6Bp5I,gBAC9C05I,aAAcN,EAA6BM,aAC3Cv5I,iBAAkBi5I,EAA6Bj5I,iBAC/Cw5I,gBAAiBP,EAA6BO,gBAC9C/oM,MAAOwoM,EAA6BxoM,QAExC,OAAOtI,EC1FX,MAAM,WAAqC,GACvC,aACI,IACI4C,MAAOA,GACP7B,KAAKqwK,SACLpkK,EAAWjM,KAAKuwM,eACpB,QAAItkM,IACAA,EAAS8b,OAAOlmB,IACT,IAKnB,MAAM,WAAkC,GACpC,aACI,IAAI2uM,EAAWxwM,KAAKuwM,eACpB,GAAIC,EAAU,CACV,IACInmJ,WAAYA,EACZtjD,KAAMA,EACNlF,MAAOA,GACP7B,KAAKqwK,SACL58D,EAAYzzG,KAAKyuM,kBAAkBgC,oBAAoB1pM,GAC3D,GAAI0sG,GAAa,EAEb,OADA+8F,EAASzoL,OAAOmnL,GAAkB,SAASr9L,OAAO4hG,EAAW,KAAMppD,GAAaxoD,IACzE,EAGf,OAAO,GAGf,MAAM,WAAwC,GAC1C,aACI,OAAO,GAGf,MAAM,WAAuC,GACzC,aACI,IAAI6uM,EAAe1wM,KAAK2wM,mBACxB,QAAI,MAAQD,IAAgBA,EAAaE,4BAA6BF,EAAaG,+BAC/EH,EAAaE,0BAA0B5wM,KAAKqwK,SAAStpK,KAAKokD,UAC1DulJ,EAAaG,+BACN,IAKnB,MAAM,WAAmC,GACrC,aACI,IAAIL,EAAWxwM,KAAKuwM,eACpB,GAAIC,EAAU,CACV,IACI3uM,MAAOA,GACP7B,KAAKqwK,SAET,OADAmgC,EAASzoL,OAAO,aAAclmB,IACvB,EAEX,OAAO,GAGf,MAAM,WAAwC,GAC1C,aACI,IACIkF,KAAMA,GACN/G,KAAKqwK,SACLpkK,EAAWjM,KAAKuwM,eAChBO,EAAY7kM,GAAY,eAAKA,EAAS+Z,WAAW,GAAI,eACzD,GAAI8qL,GAAa/pM,EAAM,CACnB,IAAIgqM,EAAiBhqM,GAAQ,aAAeA,EAAKtI,KAC7CuyM,GAAuBF,EAAU/oL,OAAO,oBAAsB,IAAI2F,KAAKqjL,GACvEE,GAAuBlqM,EAAK6mD,iBAAmB,IAAIlgC,KAAKqjL,GAC5D,IAAKC,IAAwBC,GAAuBD,GAAuBC,EAEvE,OADAH,EAAU/oL,OAAO,kBAAmBhhB,EAAK6mD,kBAClC,EAGf,OAAO,GAGf,MAAM,WAAiC,GACnC,aACI,IAAIopD,EAAiBh3G,KAAKkxM,qBAEtB1lH,cAAeA,EACf3pF,MAAOA,GACP7B,KAAKqwK,SACT,QAAIr5D,IACAA,EAAexvF,YAAYgkE,GAAelkE,SAASzlB,IAC5C,IAKnB,IAAIsvM,GAA4B,CAAC9mJ,EAAY+mJ,KACzC,OAAQ/mJ,GACJ,IAAK,gBACL,IAAK,gBACD,OAAO,IAAI,GAA6B+mJ,GAC5C,IAAK,kBACD,OAAO,IAAI,GAAgCA,GAC/C,IAAK,WACD,OAAO,IAAI,GAAyBA,GACxC,IAAK,QACL,IAAK,WACL,IAAK,OACL,IAAK,cACL,IAAK,QACD,OAAO,IAAI,GAA0B,OAAA32M,EAAA,WAAO22M,EAAmB,CAC3D/mJ,WAAYA,KAEpB,IAAK,OACD,OAAO,IAAI,GAA2B+mJ,GAC1C,IAAK,WACD,IAAIC,EAAuBC,EAAwBC,EAC/C/4I,EAAW,QAAU64I,EAAwB,OAASD,QAAqB,IAAWA,GAA6B,QAAUE,EAAyBF,EAAkBrqM,YAAS,IAAWuqM,OAAlF,EAAoHA,EAAuB94I,gBAAa,IAAW64I,EAAwBA,EAAwB,QAAUE,EAAyBH,EAAkBxO,iBAAiBgM,uBAAuB,OAASwC,QAAqB,IAAWA,OAAoB,EAASA,EAAkBrqM,aAAU,IAAWwqM,OAAyB,EAASA,EAAuB/4I,SACpkB,MAAI,WAAaA,EACN,IAAI,GAAgC44I,GACpC,UAAY54I,EACZ,IAAI,GAA+B44I,GAEvC,IAAI,GAA0B,OAAA32M,EAAA,WAAO22M,EAAmB,CAC3D/mJ,WAAYA,KAEpB,QACI,OAAO,OAGJ,MCrHX,GAAS,iBAWTmnJ,GAAuB,mBACvBC,GAA2BD,GAAuB,WAClD,GAAiB,cACjB,GAAoB,gBACpBE,GAAkB,KAClBC,GAAgB,QAAiBtyI,QAAQ,CACzCu2C,mBAAoB,WAChB,OAAO,OAAAn7G,EAAA,WAAOuF,KAAKC,WAAY,CAC3BixE,KAAM,GACN0gI,KAAM,GACNl6I,cAAe,KACfm6I,mBAAoB,GACpBngM,OAAQ,OACRnK,MAAO,OACPu7C,oBAAoB,EACpB+B,mBAAmB,EACnBkuH,wBAAoB,EACpBu9B,gBAAiB,KACjBwB,yBAAqB,EACrB9+B,qBAAiB,KAGzBp8D,MAAO,WACE52G,KAAK+nB,OAAO,kBACb/nB,KAAKqwK,SAASyjB,OAAO,gBAAiB,QAE1C9zL,KAAKC,WACLD,KAAK+xM,4BAETA,yBAA0B,WACtB/xM,KAAKgyM,qBAAuBhyM,KAAKuhE,sBAAsB,kBAAmB,CACtE4S,kBAAmB,CAAC,WAAY,eAGxC8lC,WAAY,WACR,OAAO,IAEXJ,aAAc,WACV,OAAO,IAEXvB,YAAa,WACTt4G,KAAKC,WACLD,KAAKgmB,WAAWsB,SAASkqL,IACzBxxM,KAAKiyM,kBAETA,eAAgB,WACZxoI,aAAazpE,KAAK8zK,cAClB9zK,KAAK8zK,aAAe7gK,WAAW,WACvBjT,KAAKkyM,QACL,OAAap/B,eAAe9yK,KAAKkyM,OAAQ,aAE/C1nL,KAAKxqB,QAEXm6G,aAAc,WACVn6G,KAAKmyM,iBACLnyM,KAAKoyM,aAAepyM,KAAKqyM,iBACzBryM,KAAKsyM,eACLtyM,KAAKuyM,eACLvyM,KAAKwyM,eACLxyM,KAAKyyM,mBAETt6E,mBAAoB,SAASpxH,GACzB,IAAIokG,EAAQnrG,KAAK8zH,uBAAuB/sH,GACnCokG,EAAMvxG,SAGXoG,KAAKqmM,aAAal7F,EAAOpkG,GACzB/G,KAAK0yM,0BACL1yM,KAAKysG,SAAQ,KAEjB0lG,eAAgB,WACZ,IAAIQ,EAAgB3yM,KAAK4yM,oBACzB5yM,KAAK6yM,yBACL7yM,KAAKgmB,WAAWsB,SAASmqL,GAA2BkB,GACpD3yM,KAAK+nB,OAAO,sBAAuB4qL,IAEvCE,uBAAwB,WACpB,IAAIf,EAAsB9xM,KAAK+nB,OAAO,uBACtC+pL,GAAuB9xM,KAAKgmB,WAAWwB,YAAYiqL,GAA2BK,IAElFQ,aAAc,WACV,IAAIQ,EAAO9yM,KAAK+yM,MAAQ,GACxB/yM,KAAKgzM,sBACL,eAAKhzM,KAAKizM,MAAO,WACb,IAAIpiM,EAAM,GACViiM,EAAK7vM,KAAK4N,GACV,eAAK7Q,KAAKkzM,MAAO,WACbriM,EAAI5N,KAAKjD,KAAKmzM,qBAChB3oL,KAAKxqB,QACTwqB,KAAKxqB,QAEXozM,oBAAqB,WACjB,IAAIliI,EAAOlxE,KAAK+nB,OAAO,QACnBsrL,EAAoBrzM,KAAKoyM,aAAax4M,OAC1C,GAAIs3E,EAAKt3E,OAAQ,CAGb,IAFA,IAAI05M,EAAetzM,KAAKuzM,gBAAgBriI,GACpCjyE,EAAS,GACJxD,EAAI,EAAGA,EAAI43M,EAAmB53M,IAAK,CACxC,IAAI+3M,EAAaxzM,KAAKyzM,qBAClBh4M,EAAI63M,EAAa15M,QAAU,eAAU05M,EAAa73M,GAAG01K,UACrDqiC,EAAWriC,OAASmiC,EAAa73M,GAAG01K,QAExClyK,EAAOgE,KAAKuwM,GAEhB,OAAOv0M,EAEP,OAAOe,KAAKyzM,mBAAmBJ,IAGvCL,oBAAqB,WACbhzM,KAAK0zM,yBACL1zM,KAAK2zM,kCACL3zM,KAAKizM,MAAQjzM,KAAKozM,sBAClBpzM,KAAKkzM,MAAQlzM,KAAKyzM,mBAAmB,KAErCzzM,KAAKizM,MAAQjzM,KAAK4zM,eAAe5zM,KAAK+nB,OAAO,SAC7C/nB,KAAKkzM,MAAQlzM,KAAK4zM,eAAe5zM,KAAK+nB,OAAO,WAGrD2rL,sBAAuB,WACnB,OAAO1zM,KAAK6zM,gBAAgBjhL,KAAK5yB,KAAK+nB,OAAO,yBAA2B/nB,KAAK+nB,OAAO,QAAQnuB,SAAWoG,KAAK+nB,OAAO,QAAQnuB,QAE/H+5M,gCAAiC,WAC7B3zM,KAAKoyM,aAAatwM,MAAK,SAAUuiG,EAAOC,GACpC,OAAOD,EAAM/pC,SAASzpD,IAAMyzF,EAAMhqC,SAASzpD,KAAOwzF,EAAM/pC,SAAS+T,IAAMi2B,EAAMhqC,SAAS+T,OAE1F,eAAKruE,KAAKoyM,cAAc,SAAUhxM,EAAO2F,GACrC,OAAAtM,EAAA,WAAOsM,EAAKuzD,SAAU,CAClBzpD,IAAKzP,EACLitE,IAAK,EACLwP,QAAS,EACTjS,QAAS,QAIrBgoI,eAAgB,SAASE,GACrB,OAAO,eAAI9zM,KAAKuzM,gBAAgBO,GAAc,SAASN,GACnD,OAAO,OAAA/4M,EAAA,WAAOuF,KAAKyzM,qBAAsBD,IAC3ChpL,KAAKxqB,QAEX+zM,yBAA0B,WACtB,MAAO,CACHvkF,MAAO,EACP0hD,SAAU,EACVD,QAAS,EACTD,QAAS,IAGjByiC,mBAAoB,SAAS1hM,GACzB,IAAIiiM,EAAoBh0M,KAAK+zM,2BAC7B,IAAK7zM,UAAUtG,OACX,OAAOo6M,EAGX,IADA,IAAI/0M,EAAS,GACJxD,EAAI,EAAGA,EAAIsW,EAAMtW,IACtBwD,EAAOgE,KAAK+wM,GAEhB,OAAO/0M,GAEXs0M,gBAAiB,SAAS7qL,GACtB,IAAIurL,EAAej0M,KAAK6zM,gBACxB,OAAO,eAAKnrL,GAAO,SAAU3hB,GACzB,OAAQA,EAAKmtM,QAAUD,EAAarhL,KAAK7rB,EAAKmtM,YAGtDL,cAAe,WACX,IAAIK,EAASl0M,KAAK4yM,oBAClB,OAAO,IAAIz6K,OAAO,UAAY+7K,EAAS,UAAW,MAEtDtB,kBAAmB,WACf,IAAIrrM,EAAQvH,KAAKm0M,eACjB,OAAOn0M,KAAK+nB,OAAO,gBAAZ/nB,CAA6BuH,IAExC4sM,aAAc,WACV,OAAO,iBAAc,eAAS,IAAUzC,IAE5CyB,iBAAkB,WACd,MAAO,CACHpsM,KAAM,GACNuzD,SAAU,CACNsR,QAAS,EACTiS,QAAS,KAIrB00H,aAAc,WACV,eAAKvyM,KAAKoyM,aAAc,SAASrzM,EAAGq1M,GAChC,IAAI95I,EAAW85I,EAAS95I,UAAY,GAChC+5I,EAAU/5I,EAAS+T,IACnBimI,EAAUh6I,EAASzpD,IACnBA,EAAM7Q,KAAK+yM,MAAMuB,GACjBC,EAAW1jM,GAAOA,EAAIwjM,GAC1Br0M,KAAKw0M,aAAaD,EAAUH,IAC9B5pL,KAAKxqB,QAEXqyM,eAAgB,WACZ,OAAOryM,KAAK+nB,OAAO,SAASgP,OAAO,CAAC93B,EAAQ8H,KACxC,IAAI0tM,EAAY1tM,EAAKuzD,UAAY,GAWjC,OAVAm6I,EAAY,eAAcA,GAAa,CAACA,GAAaA,EACrDz0M,KAAKuzM,gBAAgBkB,GAAWvzM,QAAQo5D,IACpCr7D,EAAOgE,KAAK,CACR8D,KAAMA,EACNuzD,SAAU,OAAA7/D,EAAA,WAAO,CACbojF,QAAS,EACTjS,QAAS,GACVtR,OAGJr7D,GACR,KAEPu1M,aAAc,SAASD,EAAUH,GACxBG,IAAYv0M,KAAK00M,oBAAoBH,EAAUH,KAGpD,OAAA35M,EAAA,WAAO85M,EAAUH,GACjBp0M,KAAK20M,kBAAkBJ,KAE3BG,oBAAqB,SAASH,EAAUH,GACpC,IAAK,eAAcG,EAASxtM,MACxB,OAAO,EAEX,IAAI9H,GAAS,EAIb,OAHAe,KAAK40M,kBAAkBR,EAAS95I,UAAU,SAAU+P,GAChDprE,EAASA,IAAW,eAAcorE,EAAKtjE,SAEpC9H,GAEX21M,kBAAmB,SAASt6I,EAAUt1D,GAClC,IAAI6vM,EAASv6I,EAASzpD,IAAMypD,EAASujB,QAAU,EAC3Ci3H,EAASx6I,EAAS+T,IAAM/T,EAASsR,QAAU,EAC3CmpI,EAAcpzL,KAAKC,IAAIizL,EAAQ70M,KAAKizM,MAAMr5M,OAAS,GACnDo7M,EAAcrzL,KAAKC,IAAIkzL,EAAQ90M,KAAKkzM,MAAMt5M,OAAS,GACvD0gE,EAASujB,SAAWg3H,EAASE,EAC7Bz6I,EAASsR,SAAWkpI,EAASE,EAC7B,IAAK,IAAInrI,EAAWvP,EAASzpD,IAAKg5D,GAAYkrI,EAAalrI,IACvD,IAAK,IAAI8rF,EAAWr7F,EAAS+T,IAAKsnF,GAAYq/C,EAAar/C,IACnD9rF,IAAavP,EAASzpD,KAAO8kJ,IAAar7F,EAAS+T,KACnDrpE,EAAShF,KAAK+yM,MAAMlpI,GAAU8rF,KAK9Cg/C,kBAAmB,SAASJ,GACxBv0M,KAAK40M,kBAAkBL,EAASj6I,UAAU,SAAU+P,GAChD,OAAA5vE,EAAA,WAAO4vE,EAAM,CACTtjE,KAAMwtM,EAASxtM,KACfkuM,aAAcV,QAI1B9B,gBAAiB,WACb,eAAKzyM,KAAKq9G,iBAAiB,SAAUt+G,EAAGm2M,GACpC,IAAI/pG,EAAQ,eAAE+pG,GACVnuM,EAAOokG,EAAMhlG,KAAK,IACjBY,EAAKqtK,MACNrtK,EAAKmxG,KAAO/M,EAAM9jC,gBAI9BmrI,aAAc,WACV,IAAI2C,EAAYn1M,KAAK+yM,MAAMn5M,OACvBw7M,EAAYD,GAAan1M,KAAK+yM,MAAM,GAAGn5M,OAC3C,GAAKu7M,GAAcC,EAAnB,CAGA,IAAIn2M,EAASe,KAAKq1M,aAAa,CAC3Bt7I,UAAW,MACXlpD,IAAK,CACDspD,MAAO,EACPh4B,IAAKgzK,EAAY,GAErB9mI,IAAK,CACDlU,MAAO,EACPh4B,IAAKizK,EAAY,KAGrBE,EAAUt1M,KAAKu1M,kBAAkBt2M,EAAOm1K,KAAO,CAC/Cr6G,UAAW,MACXrxC,MAAO,CAAC,OAAAjuB,EAAA,WAAOwE,EAAQ,CACnBuwH,MAAO,OAGf,OAAA/0H,EAAA,WAAO66M,EAASt1M,KAAKw1M,eAAeF,EAAQ5sL,QAC5C1oB,KAAKkyM,OAAS,eAAE,SAAS3qL,SAASvnB,KAAKm2G,kBACvCn2G,KAAKooB,iBAAiBpoB,KAAKkyM,OAAQ,GAAKoD,KAE5CE,eAAgB,SAAS9sL,GACrB,IAAI+sL,EAAY,eAAK/sL,EAAO,SAAStnB,EAAO2F,GACxC/G,KAAK01M,uBAAuB3uM,IAAS,OAAAtM,EAAA,WAAOsM,EAAM,CAC9CmqK,SAAU,UAEhB1mJ,KAAKxqB,OACP,OAAO,OAAAvF,EAAA,WAAO,CACV8M,MAAO,OACPmK,OAAQ,OACRgX,MAAO+sL,EACP9/E,aAAc31H,KAAK65H,qBAAqB,gBACxC85C,gBAAiB3zK,KAAK+nB,OAAO,mBAC7B6rJ,WAAY5zK,KAAKuhE,sBAAsB,cACvCoe,YAAa3/E,KAAKuhE,sBAAsB,eACxCsyG,kBAAmB7zK,KAAKuhE,sBAAsB,qBAC9C40D,eAAgBn2H,KAAKuhE,sBAAsB,mBAC5C,CACCyxG,gBAAiBhzK,KAAK+nB,OAAO,sBAGrC2tL,uBAAwB,SAAS3uM,GAC7B,OAAQA,EAAKmqK,YAAcnqK,EAAKkqK,SAAW,SAAWlqK,EAAKkqK,YAAclqK,EAAKiqK,SAAW,SAAWjqK,EAAKiqK,UAE7GukC,kBAAmB,SAASp0I,GACxB,OAAO,OAAA1mE,EAAA,WAAO0mE,GAAU,GAAI,CACxB2vG,WAAY,UACZiC,mBAAoB/yK,KAAK+nB,OAAO,yBAGxCstL,aAAc,SAASrkM,GACnB,OAAIhR,KAAK21M,cAAc3kM,GACZhR,KAAK41M,YAAY5kM,EAAQH,IAAIspD,MAAOnpD,EAAQq9D,IAAIlU,OAEpDn6D,KAAK61M,iBAAiB7kM,IAEjC2kM,cAAe,SAAS3kM,GACpB,IAAI8kM,EAAoB91M,KAAK+yM,MAAM/hM,EAAQH,IAAIspD,OAAOnpD,EAAQq9D,IAAIlU,OAAOG,SACrEy7I,EAAmB/kM,EAAQH,IAAIsxB,IAAMnxB,EAAQH,IAAIspD,QAAU27I,EAAkBj4H,QAAU,EACvFm4H,EAAmBhlM,EAAQq9D,IAAIlsC,IAAMnxB,EAAQq9D,IAAIlU,QAAU27I,EAAkBlqI,QAAU,EAC3F,OAAOmqI,GAAoBC,GAE/BJ,YAAa,SAAS/rI,EAAU8rF,GAC5B,IAAI4+C,EAAWv0M,KAAK+yM,MAAMlpI,GAAU8rF,GACpC,OAAO4+C,EAASU,aAAe,KAAOV,EAASxtM,MAEnD8uM,iBAAkB,SAAS7kM,GACvB,IAGIilM,EAHAvtL,EAAQ,GACRqxC,EAAY/oD,EAAQ+oD,UACpBm8I,EAAiBl2M,KAAKm2M,gBAAgBp8I,GAE1C,MAAOk8I,EAAQj2M,KAAKo2M,WAAWplM,GAAU,CACrC,GAAIhR,KAAKq2M,oBAAoBrlM,EAAQslM,iBAAkBL,GACnD,MAAM,OAAOv6K,MAAM,SAEvB,IAAI30B,EAAO/G,KAAKq1M,aAAa,CACzBt7I,UAAWm8I,EACXrlM,IAAKolM,EAAMplM,IACXw9D,IAAK4nI,EAAM5nI,IACXioI,iBAAkBtlM,IAElBjK,IACA,OAAAtM,EAAA,WAAOsM,EAAM/G,KAAKu2M,WAAWN,EAAOC,IACpCxtL,EAAMzlB,KAAK8D,IAEfiK,EAAQklM,GAAgB/7I,MAAQ87I,EAAMC,GAAgB/zK,IAAM,EAEhE,MAAO,CACHiyI,IAAKp0K,KAAKu1M,kBAAkB,CACxBx7I,UAAWA,EACXrxC,MAAOA,MAInB2tL,oBAAqB,SAASrlM,EAASilM,GACnC,OAAOjlM,GAAWA,EAAQq9D,IAAIlU,QAAU87I,EAAM5nI,IAAIlU,OAASnpD,EAAQq9D,IAAIlsC,MAAQ8zK,EAAM5nI,IAAIlsC,KAAOnxB,EAAQH,IAAIspD,QAAU87I,EAAMplM,IAAIspD,OAASnpD,EAAQH,IAAIsxB,MAAQ8zK,EAAMplM,IAAIsxB,KAE3Kg0K,gBAAiB,SAASp8I,GACtB,MAAO,QAAUA,EAAY,MAAQ,OAEzCq8I,WAAY,SAASplM,GACjB,IAAI+oD,EAAY/oD,EAAQ+oD,UACpBm8I,EAAiBl2M,KAAKm2M,gBAAgBp8I,GACtCy8I,EAAaxlM,EAAQ+oD,GAAWI,MAChCs8I,EAAWzlM,EAAQ+oD,GAAW53B,IAC9Bu0K,EAAkB1lM,EAAQklM,GAAgB/7I,MAC9C,GAAIu8I,EAAkB1lM,EAAQklM,GAAgB/zK,IAC1C,OAAO,KAGX,IADA,IAAIw0K,EAAY,EACPC,EAAaF,EAAiBE,EAAaF,EAAkBC,EAAWC,IAAc,CAE3F,IADA,IAAIC,EAAgB,EACXz1M,EAAQo1M,EAAYp1M,GAASq1M,EAAUr1M,IAAS,CACrD,IAAIipE,EAAOrqE,KAAK82M,iBAAiB/8I,EAAW34D,EAAOw1M,GACnDC,EAAgBl1L,KAAKqQ,IAAI6kL,EAAexsI,EAAK/P,SAAS47I,EAAiB,SAE3E,IAAIa,EAAoBH,EAAaC,EACjCG,EAAgBN,EAAkBC,EAClCI,EAAoBC,IACpBL,GAAaI,EAAoBC,GAGzC,IAAI/3M,EAAS,GASb,OARAA,EAAO86D,GAAa,CAChBI,MAAOq8I,EACPr0K,IAAKs0K,GAETx3M,EAAOi3M,GAAkB,CACrB/7I,MAAOu8I,EACPv0K,IAAKu0K,EAAkBC,EAAY,GAEhC13M,GAEX63M,iBAAkB,SAAS/8I,EAAW34D,EAAOw1M,GACzC,MAAO,QAAU78I,EAAY/5D,KAAK+yM,MAAM6D,GAAYx1M,GAASpB,KAAK+yM,MAAM3xM,GAAOw1M,IAEnFL,WAAY,SAASN,EAAOl8I,GAMxB,IALA,IAAIk9I,EAAiB,QAAUl9I,EAAY,OAAS,EAChD+5I,EAAc,QAAU/5I,EAAY/5D,KAAKizM,MAAQjzM,KAAKkzM,MACtDj0M,EAAS,OAAAxE,EAAA,WAAOuF,KAAK+zM,2BAA4B,CACjDvkF,MAAO,IAEFpuH,EAAQ60M,EAAMl8I,GAAWI,MAAO/4D,GAAS60M,EAAMl8I,GAAW53B,IAAK/gC,IAAS,CAC7E,IAAIoyM,EAAaM,EAAY1yM,GAC7BnC,EAAOuwH,OAASgkF,EAAWhkF,MAC3BvwH,EAAOiyK,UAAYsiC,EAAWtiC,SAC9BjyK,EAAOgyK,SAAWuiC,EAAWviC,QAC7BhyK,EAAO+xK,SAAWwiC,EAAWxiC,QACzB,eAAUwiC,EAAWriC,UACrBlyK,EAAOkyK,OAASqiC,EAAWriC,QAMnC,OAHAlyK,EAAOgyK,QAAUhyK,EAAOgyK,QAAUhyK,EAAOgyK,QAAUgmC,EACnDh4M,EAAO+xK,QAAU/xK,EAAO+xK,QAAU/xK,EAAO+xK,QAAU,OACnDhxK,KAAK0zM,0BAA4Bz0M,EAAOiyK,SAAW,QAC5CjyK,GAEXwtG,QAAS,SAASyqG,GACd,IAAIC,EAAgBn3M,KAAKkyM,OACzBlyM,KAAKm6G,eACDg9F,IACID,EACAC,EAAcrvL,UAEdqvL,EAAcnnF,SACdhwH,KAAKo3M,mBAAmBD,KAGhCn3M,KAAKgyM,uBACLhyM,KAAKiyM,kBAETmF,mBAAoB,SAAStmI,GACzB9wE,KAAKq3M,gBAAkBr3M,KAAKq3M,iBAAmB,GAC/Cr3M,KAAKq3M,gBAAgBp0M,KAAK6tE,IAE9BguD,SAAU,WACNr1D,aAAazpE,KAAK8zK,cAClB9zK,KAAK0yM,0BACL1yM,KAAKs3M,oBACLt3M,KAAKC,SAASnB,MAAMkB,KAAME,YAE9Bo3M,kBAAmB,WACVt3M,KAAKq3M,iBAGV,eAAKr3M,KAAKq3M,iBAAiB,SAAUt4M,EAAGgI,GACpC,eAAEA,GAAM+gB,aAGhB4qL,wBAAyB,WACrB,eAAK1yM,KAAK+nB,OAAO,UAAU,kBAChB/nB,KAAKk4G,SAGpBugB,kBAAmB,SAAS9uE,GACxB3pD,KAAKC,SAAS0pD,GACVA,GACA3pD,KAAKiyM,kBAGb1qF,kBAAmB,OACnBpK,eAAgB,SAASt+D,GACrB,OAAQA,EAAKj9C,MACT,IAAK,OACL,IAAK,OACL,IAAK,gBACL,IAAK,kBACL,IAAK,qBACD5B,KAAK0yM,0BACL1yM,KAAK4iE,cACL,MACJ,IAAK,QACL,IAAK,SACD5iE,KAAKC,SAAS4+C,GACd7+C,KAAKysG,UACL,MACJ,IAAK,kBACDzsG,KAAK+xM,2BACL,MACJ,IAAK,eACD/xM,KAAK0yM,0BACL1yM,KAAKC,SAAS4+C,GACd,MACJ,IAAK,sBACD,MACJ,QACI7+C,KAAKC,SAAS4+C,KAG1Bi8E,kBAAmB,WACX96H,KAAK4yM,sBAAwB5yM,KAAK+nB,OAAO,wBACzC/nB,KAAKysG,WAGb+vB,QAAS,WACLx8H,KAAKysG,aAGb,eAAkB,kBAAmBklG,IACtB,UCxhBJ,GAAe,YACf4F,GAAa,UACbC,GAAmB,gBACnBC,GAA2B,wBAC3BC,GAA4B,UAC5BC,GAAmB,gBACnBC,GAA4B,4BAC5BC,GAAiC,8BACjCC,GAA4B,oBAC5BC,GAAyB,sBACzBC,GAA2B,wBAC3BC,GAA6B,gCAC7BC,GAAyB,sBACzBC,GAA2B,wBAC3BC,GAAqC,0BACrCC,GAAoC,yBACpCC,GAAgC,6BAChCC,GAAuB,oBACvBC,GAAwB,qBACxBC,GAAuB,kBACvBC,GAA0B,6BAC1BC,GAAwB,kCACxBC,GAAmB,SCrB1BC,GAAiB,OAAMx5I,QAAQ,CAC/B,KAAKryC,EAAQ8jL,GACT9wM,KAAKgtB,OAASA,EACdhtB,KAAK8wM,UAAYA,EACjB9wM,KAAK84M,4BAA8B,GACnC,IAAIx1F,EAAUzkE,IACV7+C,KAAK84M,4BAA4B53M,QAAQ6F,GAAQA,EAAK83C,KAE1D7xB,EAAOi3H,kBAAkBzvE,IAAI8uC,GAC7Bt2F,EAAO3nB,GAAG,aAAa,WACnB2nB,EAAOi3H,kBAAkBn8H,OAAOw7F,OAGxC,WACI,OAAOtjH,KAAKgtB,OAAOjF,OAAO,UAE9B,4BACI,OAAO/nB,KAAKgtB,OAAOjF,OAAO,oBAE9B,SACI,OAAO/nB,KAAKgtB,OAAOjF,OAAO,aAE9B,uBAAuB63D,GACnB5/E,KAAKgtB,OAAOjF,OAAO,CACfgxL,iBAAkBn5H,EAAOo5H,YACzBC,iBAAkBr5H,EAAOvvC,UAGjC,QACIrwC,KAAKgtB,OAAOq/D,SAEhB,QACIrsF,KAAKgtB,OAAOha,WAGL,MCjBXkmM,GAAkB,eAClBC,GAA0B,QAC1BC,GAA4B,UAC5BC,GAA4B,UAC5BC,GAAY,QAAaj6I,QAAQ,CACjCk3D,aAAc,SAASvlH,GACnBhR,KAAKC,SAASnB,MAAMkB,KAAME,WAC1BF,KAAK+nB,OAAO,QAAiBwxL,sBAAsBvoM,KAEvD,qBACI,OAAO,OAAAvW,EAAA,WAAOuF,KAAKC,WAAY,CAC3B2tD,gBAAiB,MAGzB,QACI5tD,KAAKC,WACLD,KAAKw5M,yBACLx5M,KAAK0qL,QAAU,uBACf1qL,KAAKy5M,eACLz5M,KAAK05M,gBAAkB,CACnBz6M,OAAQ,KACRy+D,SAAU,KACVi8I,gBAAgB,IAGxB,yBACI,IAAIjzL,EAAQ1mB,KAAK45M,aACZ55M,KAAK65M,eACN75M,KAAKqF,GAAG,aAAa,SAAUw5C,GAC3B,QAAiBi7J,0BAA0Bj7J,EAAK9xC,UAAUgtM,iBAAkBl7J,EAAK9xC,cAGpF/M,KAAK65M,eAAiB75M,KAAK+5M,mBAAqBrzL,IACjD,QAAiBozL,0BAA0B95M,KAAK+5M,iBAAkB/5M,MAClEA,KAAK65M,eAAgB,EACrB75M,KAAK+5M,iBAAmBrzL,EACxB,QAAiBszL,yBAAyBtzL,EAAO1mB,QAGzD,yBACIA,KAAKC,WACL,OAAAxF,EAAA,WAAOuF,KAAKigH,oBAAqB,CAC7BjoD,iBAAiB,KAGzB,aACI,IAAInxC,EAAU7mB,KAAKgmB,WAAW,GAC9B,OAAO,eAAYa,EAAS,yBAEhC,eACI,IAAIozL,EAAmBj6M,KAAKk6M,aACxBC,EAAUn6M,KAAK+nB,OAAO,WAC1B,IAAKoyL,EAAS,CACV,GAAIF,EASA,OARAE,EAAU,IAAI,GAAeF,EAAkBj6M,MAC/Cm6M,EAAQrB,4BAA4B71M,KAAK47C,IACjC7+C,KAAK05M,gBAAgBC,gBAGzB35M,KAAKo6M,SAASv7J,UAElB7+C,KAAK+nB,OAAO,UAAWoyL,GAG3B,MAAM,OAAOz+K,MAAM,SAEvB,IAAI2+K,EAAYF,EAAQrB,4BACpBuB,GACAA,EAAUp3M,KAAK47C,IACX7+C,KAAKo6M,SAASv7J,MAI1B,oBAAoBsjH,GAChB,IAAIm4C,EAAuBC,EAAcC,EACrCnvL,EAAa,QAAUivL,EAAwB,QAAUC,EAAev6M,KAAK+nB,OAAO,kBAAe,IAAWwyL,GAAwB,QAAUC,EAAsBD,EAAavtL,cAAW,IAAWwtL,OAA5E,EAA2GA,EAAoBzyL,OAAO,qBAAkB,IAAWuyL,EAAwBA,EAAwBn4C,EACpVniK,KAAKC,SAASorB,IAElB,cACIrrB,KAAKgmB,WAAWsB,SAAS4xL,IACzBl5M,KAAKC,YAET,UACID,KAAKC,WACLD,KAAKy6M,kCAET,iCACI,IAAIR,EAAmBj6M,KAAKk6M,aAC5B,GAAID,EAAkB,CAClB,IAAIS,EAAQ16M,KAAK+nB,OAAO,oBAAsB,GAC1CwwC,EAAamiJ,EAAMhtL,KAAKxgB,IACxB,IACIzO,KAAMA,GACNyO,EACJ,MAAO,aAAezO,KACpB,KACFw7M,EAAiBvyH,iBACjBuyH,EAAiB7tL,QAAQ,WAAYmsC,GAEzC0hJ,EAAiBlyL,OAAO,oBAAqB,KACzCkyL,EAAiB7tL,QAAQ,WAAYmsC,OAIjD,mBAAmB5O,GACXA,GACA3pD,KAAKw5M,0BAGb,eAAe36J,GACX,OAAQA,EAAKj9C,MACT,IAAK,kBAED,YADA5B,KAAKw5M,yBAET,IAAK,kBAID,OAHAx5M,KAAK26M,wBACL36M,KAAKy6M,2CACL,IAAWz6M,KAAK+nB,OAAO,YAAc/nB,KAAKo6M,YAE9C,IAAK,UACDp6M,KAAKy5M,eACL,MACJ,IAAK,UACL,IAAK,mBACDz5M,KAAK+nB,OAAO,QAAiB6yL,6BAA6B/7J,EAAM7+C,KAAK+nB,WACrE,MACJ,QACI/nB,KAAKC,SAAS4+C,KAG1B,sBAOI,OANK7+C,KAAK66M,mBACN76M,KAAK66M,iBAAmB,eAAI76M,KAAK+nB,OAAO,mBAAoB,CAAC+yL,EAAM15M,IAAU,OAAA3G,EAAA,WAAO,GAAIqgN,EAAM,CAC1FhK,UAAW9wM,KACXoB,MAAOA,MAGRpB,KAAK66M,kBAEhB,aACI,IAAI70L,EAAWhmB,KAAKgmB,WACpB,OAAOhmB,KAAK+nB,OAAO,oBAAsB,QAAiBgzL,UAAU/0L,EAAUhmB,KAAKg7M,gBAAgBh1L,KAEvG,+BACWhmB,KAAK66M,kBAEhB,SAASh8J,GACL,IAUI5/C,EAVAk7M,EAAUn6M,KAAK+nB,OAAO,WACtBnmB,EAAO5B,KAAK+nB,OAAO,QACnBkzL,EAASd,EAAQc,QAAUd,EAAQc,SACnCp5M,EAAQg9C,QAAQ,IAAWA,EAAKh9C,MAAQg9C,EAAKh9C,MAAQs4M,EAAQ9zC,WAC7D60C,EAAef,EAAQgB,2BAA6BhB,EAAQgB,4BAC5DT,EAAQ16M,KAAKo7M,sBACbC,EAAgBr7M,KAAK05M,iBAAmB15M,KAAK05M,gBAAgBz6M,OACjE,OAAIo8M,GAAiBA,EAAchrK,SAAWgpK,IAA6BgC,EAAcx5M,QAAUA,EACxF,OAAApH,EAAA,WAAO,GAAI4gN,IAGlBJ,EACAh8M,EAAS,CACL6lJ,SAAS,EACTz0G,OAAQ8oK,IAEL+B,GAAgBA,EAAaj2D,gBACpCi2D,EAAapK,UAAY9wM,KACzBf,EAAS,CACL6lJ,SAAS,EACTz0G,OAAQ+oK,GACRkC,WAAYJ,EACZlC,YAAa,CAACkC,KAGlBj8M,EAAS,QAAiBm7M,SAASv4M,EAAO64M,EAAO94M,GAErD3C,EAAOnQ,IAAK,IAAK,SAAM2yB,WACvBzhB,KAAKu7M,uBAAuBt8M,EAAQk7M,GACpCl7M,EAAO66D,UAAY76D,EAAO66D,SAASxoD,KAAKkqM,IAChCA,EAAI1sN,KAAOkR,KAAK05M,gBAAgBz6M,OAAOnQ,IACvCkR,KAAKu7M,uBAAuBC,EAAKrB,KAGlC,OAAA1/M,EAAA,WAAO,GAAIuF,KAAK05M,gBAAgBz6M,UAE3C,QACI,IAAIk7M,EAAUn6M,KAAK+nB,OAAO,WACtB9oB,EAAS,CACTnQ,GAAI,KACJg2J,SAAS,EACTw2D,WAAY,KACZtC,YAAa,KACbyC,aAAc,KACdprK,OAAQ8oK,GACRr/I,SAAU,MAEd95D,KAAK05M,gBAAgBC,gBAAiB,EACtCQ,EAAQ9tH,QACRrsF,KAAK05M,gBAAgBC,gBAAiB,EACtC35M,KAAK26M,wBACL36M,KAAKu7M,uBAAuBt8M,EAAQk7M,IAExC,wBAAwBl7M,GACpB,GAAKe,KAAK05M,gBAAgBz6M,QAAUe,KAAK05M,gBAAgBz6M,OAAOnQ,KAAOmQ,EAAOnQ,GAM1E,IAAK,IAAI2zJ,KAAQxjJ,EACT,OAASwjJ,GAAQ,aAAeA,IAChCziJ,KAAK05M,gBAAgBz6M,OAAOwjJ,GAAQxjJ,EAAOwjJ,QAR2B,CAC9E,IAAI3oF,EAAW95D,KAAK05M,gBAAgBh8I,UAAY19D,KAAK05M,gBAAgBz6M,OAAO66D,SAC5E95D,KAAK05M,gBAAgBz6M,OAAS,OAAAxE,EAAA,WAAO,GAAIwE,EAAQ,CAC7C66D,SAAUA,MAUtB,uBAAuB76D,EAAQk7M,GAC3B,IAAIuB,EAAkB17M,KAAKuhE,sBAAsB,cAAe,CAC5D4S,kBAAmB,CAAC,cAQxB,GANAl1E,EAAO6xM,UAAY9wM,KACnBA,KAAK27M,wBAAwB18M,GAC7Bk7M,EAAQyB,wBAA0BzB,EAAQyB,uBAAuB57M,KAAK05M,gBAAgBz6M,QACtFe,KAAK+nB,OAAO,CACRkxL,iBAAkBj5M,KAAK05M,gBAAgBz6M,OAAOoxC,SAE9CrwC,KAAK05M,gBAAgBz6M,OAAOoxC,SAAWgpK,GAMvC,OALKr5M,KAAK05M,gBAAgBh8I,WACtB19D,KAAK05M,gBAAgBh8I,SAAW,IAAI,cACpC19D,KAAK05M,gBAAgBz6M,OAAO66D,SAAW95D,KAAK05M,gBAAgBh8I,SAASptC,gBAEzEtwB,KAAKi4F,gBAAgB0G,UAAU,aAAc,CAAC3+F,KAAK05M,gBAAgBz6M,SAGnEe,KAAK05M,gBAAgBz6M,OAAOoxC,SAAWgpK,KACvCqC,EAAgBz8M,GACZe,KAAK05M,gBAAgBh8I,WACrB19D,KAAK05M,gBAAgBh8I,SAASluC,QAAQvwB,GACtCe,KAAK05M,gBAAgBh8I,SAAW,QAI5C,QACI,IAAIy8I,EAAUn6M,KAAK+nB,OAAO,WAC1BoyL,GAAWA,EAAQnnM,OAASmnM,EAAQnnM,SAExC2tI,cAAe,WACX,OAAO,KAGf,eAAkB,cAAe24D,IAClB,U,aC5PXuC,GAA2B,CAAC,WAAY,iBACjCC,GAAyB,CAAC,aAAc,aAAc,eAAgB,eAAgB,gBAAiB,WAAY,YACvH,SAASC,GAAgC7uM,GAC5C,IACI02D,QAASA,EACTo4I,wBAAyBA,EACzBC,oBAAqBA,EACrBC,wBAAyBA,EACzBC,cAAeA,EACfp1M,KAAMA,EACNokD,SAAUA,EACVvpD,KAAMA,EACNw6M,kBAAmBA,EACnBC,wBAAyBA,EACzBrkJ,gBAAiBA,EACjBskJ,YAAaA,EACbC,gCAAiCA,EACjCC,yBAA0BA,EAC1BC,kBAAmBA,EACnB7kJ,oBAAqBA,EACrB8kJ,qBAAsBA,EACtBC,OAAQA,EACRC,mBAAoBA,EACpB1lJ,UAAWA,GACXhqD,EACAqrD,EAAa,eAAUxxD,EAAKwxD,YAAcxxD,EAAKwxD,aAAeskJ,GAAsB91M,EAAK6mD,iBACzFkvJ,EAAe/1M,EAAKyxD,WAAaogJ,GACjCmE,EAASh2M,EAAKuxD,SAAW,MAAQ,IAAI,QAAO,KAC5C0kJ,EAAeC,GAAuB,CACtCl2M,KAAMA,EACNjY,GAAI6tN,EACJpkJ,WAAYA,EACZqkJ,mBAAoBA,EACpBhlJ,oBAAqBA,EACrBX,cAAeylJ,EACfQ,cAAehmJ,IAEfimJ,EAAkBH,EAAarzJ,SAAWqzJ,EAAazgN,MAEvD+9D,SAAUrD,EACVmmJ,QAASA,GACTJ,EACAK,EAAyB,QAAUpmJ,MAAoBlwD,EAAKuxD,WAAa6jJ,GAAiB,CAAC,aAAc,eAAgB,aAAc,gBAAgBn5M,SAAS+D,EAAKsxD,aACrKhxD,EAAgBi2M,GAAwB,CACxCjlJ,WAAYtxD,EAAKsxD,WACjBikJ,YAAaA,EACbiB,kBAAmBx2M,EAAKqK,UACxBmrM,gCAAiCA,EACjCiB,sBAAuBz2M,EAAKM,cAC5Bo2M,cAAed,EACfH,yBAA0BA,EAC1BC,kBAAmBA,EACnBS,cAAehmJ,EACfwmJ,UAAWV,EAAaW,iBACxBC,UAAWZ,EAAaa,YAAY/lJ,iBAAmBn+D,OAAO0lC,aAAa,KAAO29K,EAAaa,YAAYrmJ,aAAe,KAE1HsmJ,EAAmCd,EAAaa,YAAYhmJ,mBAAqBmlJ,EAAarzJ,SAAW,WAAatiD,EAAc6vD,YAAc,eAAUnwD,EAAKuxD,UACjKA,EAAWwlJ,EAAmCd,EAAaa,YAAYvmJ,aAAevwD,EAAKuxD,SAC/F,MAAO,CACHsL,QAASA,EACTo4I,wBAAyBA,EACzBC,oBAAqBA,EACrBC,wBAAyBA,EACzBC,cAAeA,EACfa,aAAcA,EACdK,uBAAwBA,EACxBpmJ,cAAeA,EACfkmJ,gBAAiBA,EACjBp2M,KAAMA,EACN+1M,aAAcA,EACdvkJ,WAAYA,EACZpN,SAAUA,EACV4xJ,OAAQA,EACRK,QAASA,EACTx7M,KAAMA,EACN02D,SAAUA,EACV8jJ,kBAAmBA,EACnBC,wBAAyBA,EACzBrkJ,gBAAiBA,EACjB3wD,cAAeA,GAGhB,SAAS02M,GAAiBrnH,GAC7B,IACI5+B,iBAAkBA,EAClBN,aAAcA,EACdK,iBAAkBA,EAClBP,aAAcA,GACdo/B,EACJ,OAAK5+B,GAAqBD,EAGnBl+D,OAAO0lC,aAAa,MAAQy4B,EAAmBN,EAAeF,GAF1D,GAIR,SAAS0mJ,GAA0B7gH,EAAO5kC,GAC7C,IACIT,iBAAkBA,EAClBN,aAAcA,EACdK,iBAAkBA,EAClBP,aAAcA,GACd6lC,EACJ,MAAO,CACHrlC,iBAAkBA,GAAoBS,EACtCf,aAAcA,EACdK,iBAAkBA,IAAqBU,EACvCjB,aAAcA,GAItB,SAASgmJ,GAAwBjgH,GAC7B,IACIhlC,WAAYA,EACZklJ,kBAAmBA,EACnBjB,YAAaA,EACbC,gCAAiCA,EACjCiB,sBAAuBA,EACvBC,cAAeA,EACfjB,yBAA0BA,EAC1BC,kBAAmBA,EACnBS,cAAeA,EACfQ,UAAWA,EACXE,UAAWA,GACXvgH,EACA4gH,EAAyB,SACzB,IAAW3B,GAAeC,KAC1B0B,EAAuBp8M,MAAQy6M,IAE9B,IAAMT,GAAyBv9M,QAAQ+5D,KACxC4lJ,EAAuBp8M,MAAQo8M,EAAuBp8M,OAAS,IAEnE,IAAIq1D,EAAY,OAASsmJ,QAAyB,IAAWA,OAAwB,EAASA,EAAsBtmJ,UAC/G,eAAUA,KACXA,EAAY,YAAcgmJ,EAAgB,SAAWA,GAEzD,IAAIznC,GAAe,OAAS+nC,QAAyB,IAAWA,OAAwB,EAASA,EAAsB/nC,cAAgBgnC,EACnIx9M,EAAS,OAAAxE,EAAA,YAAO,EAAMwjN,EAAwBT,EAAuB,CACrEx2B,UAAW,CACPl4L,GAAI2uN,GAERvN,mBAAoBsM,EACpB/mC,YAAaA,EACbh9G,MAAOilJ,EACPxmJ,UAAWA,EACX0mJ,UAAWA,IAaf,OAXIJ,IACIv+M,EAAOsqB,aACPtqB,EAAOsqB,WAAai0L,EAAsBj0L,YAE1CtqB,EAAOypB,QACPzpB,EAAOypB,MAAQ80L,EAAsB90L,QAGzC60L,IAAsBt+M,EAAO2C,OAC7B3C,EAAO2C,KAAO27M,GAEXt+M,EAGX,SAAS49M,GAAsBnC,GAC3B,IAAIwD,EASJ,OARIxD,GAASA,EAAM9gN,QACf,eAAK8gN,GAAO,SAAUt5M,EAAO05M,GACzB,GAAI,aAAeA,EAAKr8M,KAEpB,OADAy/M,GAAkB,GACX,KAIZA,EAGX,SAASjB,GAAuB5hH,GAC5B,IACIt0F,KAAMA,EACNjY,GAAIA,EACJypE,WAAYA,EACZqkJ,mBAAoBA,EACpBhlJ,oBAAqBA,EACrBX,cAAeA,EACfimJ,cAAeA,GACf7hH,EACA8iH,EAAwBrC,GAAuB94M,SAAS+D,EAAKsxD,YAC7D2kJ,EAAe,OAAAviN,EAAA,WAAO,CACtBogE,UAAWjD,EACX0C,SAAUrD,EACVnoE,GAAIA,EACJ66D,QAAS,YAAcuzJ,GAAiBiB,GAAyB,WAAajB,EAC9E3kJ,WAAYA,GACbxxD,EAAOA,EAAK0xD,MAAQ,GAAI,CACvBolJ,YAAaG,GAA0BpB,EAAoBrkJ,KAY/D,MAVI,CAAC,eAAgB,aAAc,WAAY,WAAY,gBAAiB,WAAY,gBAAgBv1D,SAAS+D,EAAKsxD,cAClH2kJ,EAAaI,QAAU,YAAYvrM,OAAO,IAAI,WAE7CmrM,EAAazgN,MAAQwK,EAAKqK,YAC3B4rM,EAAazgN,KAAO,gBAAWwK,EAAKqK,YAEpC4rM,EAAazgN,OACbygN,EAAaW,iBAAmBX,EAAazgN,KAC7CygN,EAAazgN,MAAQygN,EAAaniJ,UAAY,IAAM,IAEjDmiJ,ECzNX,IAAIoB,GAAY,CAAC,mCAgBNC,GAAgC,iCAChCC,GAAiC,8BACjCC,GAAkC,gCAClCC,GAAiC,8BACjCC,GAA8B,2BAClC,SAASC,GAAYxxM,GACxB,IACI3Q,KAAMA,EACNzN,GAAIA,EACJwrE,SAAUA,EACVnzD,UAAWA,EACXi2M,QAASA,EAAU,KACnBS,YAAaA,EAAc,IAC3B3wM,EACJ,OAAK,eAAU3Q,IAASA,EAAK3C,QAAU,EAC5B,KAEJ,eAAE,WAAW0tB,SAASywL,GAAyB,IAAMwG,GAAkCjkJ,GAAU0G,KAAK,MAAOlyE,GAAIkyE,KAAK,KAAMo8I,GAAS3xL,IAAI,YAAatkB,GAAWyiC,OAAO,eAAE,UAAUtiB,SAASuwL,IAAgCjuK,OAAO,eAAE,UAAUtiB,SAASm3L,IAA6BliN,KAAKA,GAAOoiN,GAAiBd,KAG9T,SAASc,GAAiBd,GACtB,IAAIe,EAAWb,GAAiBF,GAChC,MAAI,KAAOe,EACA,KAEJ,eAAE,UAAUt3L,SAASu2L,EAAY/lJ,iBAAmBwmJ,GAAiCE,IAAgCjiN,KAAKqiN,GAE9H,SAASC,GAA6BC,EAAkBC,EAAgBC,GAC3E,IAGIC,EACAxjN,EAJAyjN,EAA0C,GAAGrtM,OAAOktM,EAAgB,QAAQltM,OAAOkmM,GAAwB,UAAUlmM,OAAO0sM,GAAiC,YAAY1sM,OAAOgmM,IAChLsH,EAAwCL,EAAiB73L,KAAKi4L,GAC9DE,EAAwCD,EAAsCvlN,OAG9Ek6D,EAAW,EACf,IAAKr4D,EAAI,EAAGA,EAAI2jN,EAAuC3jN,IACnDwjN,EAAaI,GAAyB,CAClCC,gCAAiCH,EAAsC1jN,GACvE6+D,SAAU,OACVujJ,YAAamB,IAEbC,EAAanrJ,IACbA,EAAWmrJ,GAGnB,IAAKxjN,EAAI,EAAGA,EAAI2jN,EAAuC3jN,IACnD0jN,EAAsC1jN,GAAG6uE,MAAM/iE,MAAQusD,EAAW,KAI1E,SAASurJ,GAAyBruM,GAC9B,IACIsuM,gCAAiCA,GACjCtuM,EAASuuM,EAAqB,gBAA8BvuM,EAASotM,IACrEoB,EAAmB,eAAE,SAASl4L,SAAS,IAAcA,SAAS+2L,IAA+B92L,SAAS,QAC1Gg4L,EAAmBhjN,KAAO,IAC1B,IAAIkjN,EAASf,GAAYa,GAAoBh4L,SAASi4L,GAClDE,EAAmBD,EAAOx4L,KAAK,IAAMw3L,IAA6B,GACtEiB,EAAiBnzG,UAAYozG,GAAkBL,GAC/C,IAAIrgN,EAASygN,EAAiBrqI,YAE9B,OADAmqI,EAAiB13L,SACV7oB,EAGX,SAAS0gN,GAAkBL,GACvB,IACIM,EAEAnkN,EAHA7B,EAAS0lN,EAAgCj4I,SAASztE,OAElDqF,EAAS,GAEb,IAAKxD,EAAI,EAAGA,EAAI7B,EAAQ6B,IACpBmkN,EAAQN,EAAgCj4I,SAAS5rE,GACjDwD,GAAW,gBAAQ2gN,EAAMC,WAA+BD,EAAMrzG,UAAxBqzG,EAAMC,UAEhD,OAAO5gN,ECnEJ,IAAI6gN,GAAoB,iBACpBC,GAA4B,yBAC5BC,GAA4B,yBAC5BC,GAAmC,gCACnCC,GAAoC,kCACpCC,GAA+B,4BAC/BC,GAA6B,0BAC7BC,GAAiC,mBACjCC,GAAmC,mBAI1CC,GAAyB,sBACzBC,GAA0B,uBAC1BC,GAAgB,aACb,SAASC,GAAgBxzM,GAC5B,IACI02D,QAASA,EACTo4I,wBAAyBA,EACzBC,oBAAqBA,EACrBC,wBAAyBA,EACzBC,cAAeA,EACfa,aAAcA,EACdK,uBAAwBA,EACxBpmJ,cAAeA,EACfkmJ,gBAAiBA,EACjBf,kBAAmBA,EACnBr1M,KAAMA,EACNM,cAAeA,EACfy1M,aAAcA,EACdvkJ,WAAYA,EACZpN,SAAUA,EACV4xJ,OAAQA,EACRK,QAASA,EACTx7M,KAAMA,EACN02D,SAAUA,EACV+jJ,wBAAyBA,EACzBrkJ,gBAAiBA,GACjB9qD,EACAg+F,EAAe,eAAE,SAAS5jF,SAAS00L,EAAwBhgN,KAAK,MAAMurB,SAASq8C,GACnFsnC,EAAa5jF,SAASixC,EAAaynJ,GAA4BD,IAC3DjD,GAAgBX,GAChBjxG,EAAa5jF,SAASw4L,IAEtBhD,GAAgBO,GAChBnyG,EAAa5jF,SAAS64L,IAE1B,IAAIQ,EAAwB,eAAE,SAC9BA,EAAsBx6M,KAAK,eAAgBY,GAC3C45M,EAAsBr5L,SAAS0wL,IAA0B1wL,SAAS44L,GAAoC,CAClG5zE,MAAO,OACP3gH,KAAM,QACNC,IAAK,UACNwwL,IACH,IAsBIzZ,EAtBA8c,EAAStC,EAAkBuB,GAAY1B,GAAgB,KAuB3D,GAtBIyC,GACAv0G,EAAathE,OAAO61K,GAChB,QAAUxoJ,GAAiB,SAAWA,GACtCi0C,EAAathE,OAAO+2K,GAEpB,UAAY1pJ,GACZi0C,EAAaR,QAAQi2G,GAErB,QAAU1pJ,EACVi0C,EAAa5jF,SAAS+4L,IAEtBn1G,EAAa5jF,SAASg5L,IAEtB,eAAiBv5M,EAAKsxD,YAAc,aAAetxD,EAAKsxD,YACxD,OAAahzD,GAAGo6M,EAAQ,QAAgB,WACpC,OAAa3yL,QAAQ6zL,EAAsBt5I,WAAY,YAI/D6jC,EAAathE,OAAO+2K,GAGpBx1J,EACAA,EAAShnD,OAAO,CACZgkB,UAAW,eAAiBw4L,GAC5B77M,MAAO,CACHsM,UAAWrK,EAAKqK,UAChBinD,WAAYtxD,EAAKsxD,WACjBhxD,cAAeA,EACf0F,UAAWkvM,EACXr6M,KAAMmF,EAAKnF,MAEf,aACI,IAAIg/M,EAAoBC,GAAoBF,GACxCG,EAA2BC,GAA+BH,GAC9DI,GAAmCF,UAGxC,CACH,IAAIG,EAAO,eAAE,SAAS15L,SAASo5L,GAC/B,IACIhe,EAAiBuZ,EAAwB+E,EAAMl6M,EAAKsxD,WAAYhxD,GAChEs7L,EAAev2K,QAAQ,cAAe2wL,GAClCK,GACAza,EAAev2K,QAAQ,aAAcgxL,GAEzCza,EAAev2K,QAAQ,WAAYmsC,GACrC,MAAO30D,GACL,OAAOE,IAAI,QAASF,EAAEskB,UAG9B,IAAI04L,EAAoBC,GAAoBF,GACxCG,EAA2BF,GAAqBA,EAAkBz6M,KAAKq6M,IAC3E,GAAIM,EAA0B,CAC1B,IAGIlzJ,EAHAszJ,EAAwBn6M,EAAK0xD,OAAS1xD,EAAK0xD,MAAMl8D,KACjD4kN,EAAWD,EAAwB,KAAOt/M,EAC1CwkF,EAAY86H,EAAwBn6M,EAAK0xD,MAAMl8D,KAAO4kN,GAAY,gBAAWA,GAEjF,GAAIrE,EACA,GAAI/1M,EAAK6mD,gBACLA,EAAkB7mD,EAAK6mD,oBACpB,CACH,IAAI6J,EAAkB,gBAAO4kJ,EAAyBj2H,GAAa,IACnEx4B,EAAkB7mD,EAAKwxD,WAAa,CAAC,CACjC95D,KAAM,WACNypB,QAASuvC,IACR,KAGT54D,MAAM0nB,QAAQqnC,IAAoBA,EAAgBh0D,QAClDsiN,EAAwB0E,EAAmB,GAAW,CAClDhzJ,gBAAiBA,EACjBoK,gBAAiBA,EACjBopJ,WAAY,WACR,MAAO,CACHx0J,SAAU7lD,MAK1Bi6M,GAAmCF,GAEvC,GAAIxoJ,GAAYwkJ,EAAc,CAC1B,IAAIuE,EAAgBV,EAAsBzyL,SAC1CmzL,EAAcz3K,OAAO,eAAE,SAAStiB,SAAS24L,IAAkCr2K,OAAO+2K,GAAuB/2K,OAAO,eAAE,SAAStiB,SAAS84L,IAA4Bp/I,KAAK,KAAM+7I,GAAQxgN,KAAK+7D,KAE5L,MAAO,CACHqoJ,sBAAuBA,EACvBz1G,aAAcA,EACdy3F,eAAgBA,GAIxB,SAASke,GAAoBF,GACzB,IAAIh5E,EAAUg5E,EAAsBt5I,WAAWoS,QAC/C,OAAOkuD,EAAQrhE,SAASi6I,IAA0B54E,EAAQtgE,WAAWoS,QAAUkuD,EAGnF,SAASo5E,GAA+BH,GACpC,IAAIU,EAAuBC,EAC3B,OAAQ,OAASX,QAAqB,IAAWA,OAAoB,EAASA,EAAkBz6M,KAAKq6M,OAA8B,OAASI,QAAqB,IAAWA,GAA6B,QAAUU,EAAwBV,EAAkB1yL,cAAW,IAAWozL,GAAiC,QAAUC,EAAyBD,EAAsB97L,KAAKo7L,UAAuB,IAAWW,OAApN,EAAsPA,EAAuBp7M,KAAKq6M,KAGtd,SAASQ,GAAmCF,GACxC,GAAIA,GAA4B,iBAAc,CAC1C,IAAIU,EAAe,IAAI3vM,OAAOouM,IAC1BwB,EAAqB/qH,IACrB,IACI7vE,QAASA,EACT9Z,UAAWA,GACX2pF,GAEAouD,QAASA,EACT48D,sBAAuBA,GACvB30M,EAAUgb,SACd,eAAElB,GAAS6tE,QAAQ8sH,GAAc39I,YAAY48I,IAAe,IAAU37D,IAAY/3I,EAAU40M,cAAgB,WAAaD,KAE7HZ,EAAyBz7M,GAAG,gBAAiBzB,IACrC,YAAcA,EAAEhC,MAGpB6/M,EAAmB79M,KAEvBk9M,EAAyBz7M,GAAG,UAAWo8M,GAAoBp8M,GAAG,WAAYo8M,GAAoBp8M,GAAG,WAAYo8M,ICjMrH,IAAIG,GAA0B,uBACvB,SAASC,GAAiB30M,GAC7B,IACInG,KAAMA,EACN68D,QAASA,EACTo4I,wBAAyBA,EACzBhkJ,gBAAiBA,EACjBkkJ,wBAAyBA,GACzBhvM,EACAg+F,EAAe,eAAE,SAAS3jF,SAASq8C,GAASt8C,SAAS00L,EAAwBhgN,KAAK,MAAMsrB,SAASs6L,IAAyBn2L,IAAI,YAAaq2L,GAA4B/6M,EAAKg7M,sBAChLn+I,EAAQn4C,IAAI,iBAAkBu2L,GAAiCj7M,EAAKk7M,oBACpE,IAAI3qF,EAAU,eAAE,SAAS/vG,SAAS2jF,GAClC,MAAO,CACHA,aAAcA,EACdg3G,eAAgBhG,EAAwB5kF,EAAS,WAAY,OAAA78H,EAAA,WAAO,CAChEu9D,gBAAiBA,GAClBjxD,EAAKo7M,iBAIhB,SAASL,GAA4BC,GACjC,OAAO,eAAUA,GAAuBA,EAAsB,QAGlE,SAASC,GAAiCC,GACtC,OAAQA,GACJ,IAAK,SACD,MAAO,SACX,IAAK,SACD,MAAO,WACX,QACI,MAAO,cCrCZ,IAAIG,GAAyB,sBAC7B,SAASC,GAAgBn1M,GAC5B,IACI02D,QAASA,EACTo4I,wBAAyBA,GACzB9uM,EACJ,OAAO,eAAE,SAASoa,SAAS86L,IAAwBhoJ,KAAK,UAAU9yC,SAAS00L,EAAwBhgN,KAAK,MAAMurB,SAASq8C,GC4D3H,IAAI0+I,GAAyB,YACzBC,GAAiC,eACjCC,GAAgC,cAChCC,GAAiC,eACjCC,GAAgC,cAChCC,GAAuB,OACvBC,GAA2B,WAC3BC,GAAgB,OAAOxjJ,QAAQ,CAC/Bu2C,mBAAoB,WAChB,OAAO,OAAAn7G,EAAA,WAAOuF,KAAKC,WAAY,CAC3BkwM,WAAY,GACZ54I,UAAU,EACVV,SAAU,EACVC,sBAAkB,EAClBG,cAAe,OACfI,mBAAoB,KACpBD,iBAAkB,KAClBL,cAAe,KACfJ,iBAAiB,EACjBQ,YAAa,IACbW,kBAAkB,EAClBJ,cAAe,KACfG,kBAAkB,EAClBL,aAAc,IACdN,UAAW,UACXI,aAAc,OAAoBj+D,OAAO,uBACzCo+D,gBAAiB,OAAoB58D,aAAa,6BAG1DmlH,uBAAwB,WACpBhgH,KAAKC,WACL,OAAAxF,EAAA,WAAOuF,KAAKigH,oBAAqB,CAC7BkwF,YAAY,EACZn4I,iBAAiB,KAGzB4+C,MAAO,WACH,IAAIu5F,EAAanwM,KAAK+nB,OAAO,cAC7B/nB,KAAKC,WACLD,KAAK8iN,cAAgB,GACrB9iN,KAAKyuM,kBAAoB,IAAI,GAC7BzuM,KAAK+iN,yBAAyB5S,GAC9BnwM,KAAKgjN,kBAAkB7S,IAE3BrxE,SAAU,WACN9+H,KAAKC,WACLD,KAAKijN,sBAETD,kBAAmB,SAASE,GACxBljN,KAAKmjN,qBACLnjN,KAAKylM,aAAayd,IAEtBC,mBAAoB,WAChB,IAAIhT,EAAanwM,KAAK+nB,OAAO,cACzBy1G,EAAYx9H,KAAK+nB,OAAO,SACxB,eAAUy1G,IACVA,EAAUt8H,QAAQ6F,IAEV,IAAIlF,EADJkF,EAAKqK,gBAAa,IAAWpR,KAAKojN,gBAAgBr8M,EAAKqK,aAEnDrK,EAAKM,gBACLxF,EAAQkF,EAAKM,cAAcxF,QAE3B,eAAUA,IAAUkF,EAAKqK,aAAa++L,IACtCnwM,KAAKqjN,kBAAkBt8M,EAAKqK,UAAWvP,OAM3DuhN,gBAAiB,SAAShyM,GACtB,OAAOA,EAAYpR,KAAK+nB,OAAO,cAAgB3W,GAAa,MAEhEkyM,iCAAkC,SAASp2M,GACvC,IACIq2M,wBAAyBA,EACzBlrJ,WAAYA,EACZjnD,UAAWA,GACXlE,EACJ,IAAI,IAASq2M,GAA2B,eAAiBlrJ,EAAY,CACjE,IAAImrJ,EAAY,CAAC,gBAAiBpyM,EAAUvV,MAAM,MAC9C4nN,EAAeD,EAAUvxL,MACzBk+K,EAAanwM,KAAK+nB,OAAOy7L,EAAUxnN,KAAK,MAC5C,OAAOm0M,GAAcsT,KAAgBtT,EAEzC,OAAO,GAEXkT,kBAAmB,SAASjyM,EAAWvP,GACnC,IAAIsuM,EAAanwM,KAAK+nB,OAAO,cACzBurD,EAAWzxE,GACV,QAAgB+sB,UAAUuhL,EAAW/+L,KAAe,eAAUA,GAC/DpR,KAAK+nB,OAAO,cAAgB3W,EAAWkiE,GAChC,QAAgBowI,kBAAkBvT,EAAW/+L,MACpDkiE,EAAW,eAAWA,GAAYA,IAAaA,EAC/C68H,EAAW/+L,GAAWkiE,IAE1BtzE,KAAK2jN,2BAA2B,CAC5BvyM,UAAWA,EACXvP,MAAOyxE,KAGfqwI,2BAA4B,SAAS9kK,GACjC7+C,KAAKuhE,sBAAsB,qBAA3BvhE,CAAiD6+C,IAErD4mJ,aAAc,SAAS0K,GACnB,IAAIxsM,EAAO3D,KACPw9H,EAAYx9H,KAAK+nB,OAAO,SACxB67L,EAAmB,eAAUpmF,GAC7BzmE,EAAgBpzD,EAAKokB,OAAO,iBAC5BW,EAAQk7L,EAAmBpmF,EAAYx9H,KAAK6jN,qBAAqB1T,GACrE,GAAI,eAAUznL,GAAQ,CAClB,IAAIo7L,EAAiB,GACrB,eAAKp7L,GAAO,SAAUtnB,EAAO2F,GACrBpD,EAAKogN,kBAAkBh9M,KACvBA,EAAOpD,EAAKy/F,aAAar8F,GACzBgwD,GAAiBA,EAAchwD,GAC3B,eAASA,KAAS,IAAU,QAAgBi9M,OAAOj9M,EAAK4iD,UACxDm6J,EAAe7gN,KAAK8D,OAI3BpD,EAAKm/M,cAAclpN,QAAWgqN,GAC/BjgN,EAAKsgN,oBAAoBv7L,GAE7B1oB,KAAKkkN,UAAUJ,GACf9jN,KAAKmkN,eAGblB,mBAAoB,WAChBjjN,KAAK8iN,cAAc5hN,SAAQ,SAAUugE,GACjCA,OAEJzhE,KAAK8iN,cAAgB,IAEzBmB,oBAAqB,SAASv7L,GAC1B,IAAI/kB,EAAO3D,KACP6M,EAAQlJ,EAAKygN,YACjB17L,EAAMxnB,SAAQ,SAAU6F,GAChB,eAASA,IAAS,eAAUA,EAAK4iD,UAAY,eAAW98C,IACxDlJ,EAAKm/M,cAAc7/M,KAAK4J,GAAM,WAC1B,OAAO,QAAgBm3M,OAAOj9M,EAAK4iD,YACnC,WACAhmD,EAAK8hM,aAAa9hM,EAAKokB,OAAO,eAC9BpkB,EAAK64H,YACL,CACAxvB,eAAe,SAK/B62G,qBAAsB,SAAS1T,GAC3B,IAAIlxM,EAAS,GAQb,OAPI,eAAUkxM,IACV,eAAKA,GAAY,SAAU/+L,GACvBnS,EAAOgE,KAAK,CACRmO,UAAWA,OAIhBnS,GAEX8kN,kBAAmB,SAASh9M,GACxB,IAAIs9M,EAAYt9M,EAAKqK,WAAarK,EAC9B+4E,EAAW9/E,KAAKojN,gBAAgBiB,GACpC,QAAS,eAAWvkI,KAAc,QAAgBlxD,UAAUkxD,KAEhEsjB,aAAc,SAASr8F,GASnB,GARI,kBAAoBA,IACpBA,EAAO,CACHqK,UAAWrK,IAGf,kBAAoBA,GAASA,EAAKyxD,WAClCzxD,EAAKyxD,SAAWogJ,KAEf,eAAU7xM,EAAKsxD,aAAe,eAAUtxD,EAAKqK,WAAY,CAC1D,IAAIvP,EAAQ7B,KAAKojN,gBAAgBr8M,EAAKqK,WACtCrK,EAAKsxD,WAAa,eAAUx2D,GAAS7B,KAAKskN,yBAAyB,eAAKziN,IAAUygN,GAGlF,IAAIiC,EADJ,eAAiBx9M,EAAKsxD,aAEtBtxD,EAAKw8M,wBAA0B,QAAUgB,EAAwBx9M,EAAKw8M,+BAA4B,IAAWgB,GAAwBA,GAEzI,OAAOx9M,GAEXu9M,yBAA0B,SAASlgM,GAC/B,OAAQA,GACJ,IAAK,SACD,MAAO,cACX,IAAK,OACD,MAAO,YACX,IAAK,UACD,MAAO,aACX,QACI,MAAO,cAGnB+/L,WAAY,WACR,gBAAiBnkN,KAAKk7F,OAAQ,gBAC9Bl7F,KAAKwkN,gBAETA,aAAc,WACVxkN,KAAKk7F,OAAOp5F,MAAK,SAAU2iN,EAAOC,GAC9B,IAEIzlN,EAFA0lN,EAASF,EAAM52J,aACf+2J,EAASF,EAAM72J,aASnB,OANI5uD,EADA0lN,EAASC,EACA,EACFD,EAASC,GACN,EAED,EAEN3lN,MAGfq5G,YAAa,WACTt4G,KAAKyuM,kBAAkBoW,QACvB7kN,KAAKgmB,WAAWsB,SAASwwL,IACzB93M,KAAKC,WACLD,KAAK8kN,wBAETC,gBAAiB,WACb,OAAO,eAAUpC,MAA0BA,IAE/CmC,qBAAsB,WAClB,IAAIE,EAAgB,GACpB,GAAIhlN,KAAKk7F,QAAUl7F,KAAKk7F,OAAOthG,OAAQ,CACnC,IAAIi9D,EAAW72D,KAAKilN,eAChBngM,EAAa,eAAE,SAASyC,SAASvnB,KAAKgmB,YAC1ChmB,KAAKklN,yBAAyBruJ,GAC9B,IAAIsuJ,EAAcnlN,KAAKolN,uBACvBplN,KAAKqlN,eAAiBrlN,KAAKooB,iBAAiBtD,EAAY,GAAe9kB,KAAKslN,wBAAwBH,EAAatuJ,EAAUmuJ,IACtH,kBACDhlN,KAAKulN,iBAAiBP,KAIlCQ,yBAA0B,SAAS5hN,GAC/B5D,KAAKgoH,YAETu9F,iBAAkB,SAASP,GACvB,IAAIrhN,EAAO3D,KACX,eAAKglN,GAAe,SAAUjmN,EAAG0mN,GAC7B,OAAQA,EAAKjtJ,UACT,IAAK,QACD6pJ,GAAgBoD,GAChB,MACJ,IAAK,SACD9hN,EAAK+hN,kBAAkBD,GACvB,MACJ,QACI9hN,EAAKgiN,iBAAiBF,QAItCH,wBAAyB,SAASH,EAAatuJ,EAAUmuJ,GACrD,IAAIrhN,EAAO3D,KACP82D,EAAmBnzD,EAAKokB,OAAO,oBAC/B69L,EAAa9uJ,GAAoBA,EAAiBtL,GACtD,MAAO,CACHunH,mBAAoB/yK,KAAKwlN,yBAAyBh7L,KAAKxqB,MACvDgzK,gBAAiBrvK,EAAKohN,kBAAoBpC,GAAuBC,GACjEtS,gBAAiB,WACb,IAAIA,EAAkB3sM,EAAKokB,OAAO,mBAC9B89L,EAAqBliN,EAAKkiN,qBAC1BvV,IACA3sM,EAAKqiB,WAAW69C,YAAY+zI,GAA2BiO,GACvDvV,EAAgBuV,KAGxBhgK,eAAgB,SAASjiD,GACjB,kBACAD,EAAK4hN,iBAAiBP,GAEtBrhN,EAAKokB,OAAO,oBACZpkB,EAAKqiB,WAAW69C,YAAY+zI,GAA2Bj0M,EAAKkiN,mBAAmBjiN,EAAEmJ,aAGzF4oH,aAAc,SAAS/xH,EAAGk8E,EAAUi6B,GAChC,GAAKn2G,EAAE02D,SAAP,CAGA,IAAI4+C,EAAe,eAAEa,GACjB+rG,EAAkCliN,EAAE02D,SAASzpD,IAAMgmD,EACnD9vD,EAAOpD,EAAKu3F,OAAOt3F,EAAE02D,SAAS+T,IAAMy3I,GACxC,GAAK/+M,EAAL,CAGA,IAAIg/M,EAAmB,CAACh/M,EAAKikD,UAC7BkuD,EAAar1C,YAAYo0I,GAA4Bt0M,EAAKkiN,mBAAmB7lN,OACzE,IAAM4D,EAAE02D,SAASzpD,KACjBk1M,EAAiB9iN,KAAKs/M,IAEtB,IAAM3+M,EAAE02D,SAAS+T,KACjB03I,EAAiB9iN,KAAKw/M,IAEtB17M,EAAKyxD,WAAaogJ,IAAoBj1M,EAAKokB,OAAO,WAClDmxF,EAAa5xF,SAAS4wL,IAE1B,IAAI8N,EAAepiN,EAAE02D,SAAS+T,MAAQxX,EAAW,GAAKjzD,EAAE02D,SAAS+T,IAAMzqE,EAAE02D,SAASsR,UAAY/U,EAC1Fs+I,EAAYxxM,EAAKsiN,gBACjBC,EAAYtiN,EAAE02D,SAASzpD,MAAQskM,EAAY,EAC3C6Q,GACAD,EAAiB9iN,KAAKy/M,IAEtBwD,GACAH,EAAiB9iN,KAAKu/M,IAEtB,UAAYz7M,EAAKyxD,WACjButJ,EAAiB9iN,KAAK00M,IACtBoO,EAAiB9iN,KAAKU,EAAKokB,OAAO,iBAC9B,eAAUhhB,EAAKsnE,MACf03I,EAAiB9iN,KAAK,UAAY8D,EAAKsnE,MAG/C22I,EAAc/hN,KAAK,CACfu1D,SAAUzxD,EAAKyxD,SACfzxD,KAAMA,EACN68D,QAASs1C,EACT8iG,wBAAyB+J,OAGjCnU,KAAMjuM,EAAKwiN,eAAetvJ,GAC1Bqa,KAAMvtE,EAAKwiN,eAAexiN,EAAKsiN,iBAAiB,GAChD18L,WAAY47L,EACZztJ,cAAe/zD,EAAKokB,OAAO,iBAC3B8pL,oBAAoB+T,GAAqB,OAGjDX,aAAc,WACV,IAAIpuJ,EAAW72D,KAAK+nB,OAAO,YACvB+uC,EAAmB92D,KAAK+nB,OAAO,oBACnC,GAAI+uC,EAAkB,CAClB,IAAIsvJ,EAAepmN,KAAK+nB,OAAO,QAAQs+L,wBAClCD,IACDA,EAAe,iBAAc,eAAuBpmN,KAAK+nB,OAAO,kBAAoB,MAExF8uC,EAAWC,EAAiBsvJ,IAAiBvvJ,EAEjD,GAAI,SAAWA,EAAU,CACrB,GAAI72D,KAAKsmN,gBACL,OAAOtmN,KAAKsmN,gBAEhBtmN,KAAKsmN,gBAAkBzvJ,EAAW72D,KAAKumN,kBAE3C,OAAO1vJ,EAAW,EAAI,EAAIA,GAE9B0vJ,gBAAiB,WACb,IAAK,iBACD,OAAO,EAEX,IAAIpvJ,EAAcn3D,KAAK+nB,OAAO,eAC1BxgB,EAAQ,eAASvH,KAAKgmB,YACtBg1E,EAAah7F,KAAKk7F,OAAOthG,OACzB4sN,EAAc7kM,KAAKI,MAAMxa,EAAQ4vD,IAAgB,EACrD,OAAO6jC,EAAawrH,EAAcxrH,EAAawrH,GAEnDC,yBAA0B,WACtB,OAAOzmN,KAAKsmN,iBAAmBtmN,KAAKumN,oBAAsBvmN,KAAKsmN,iBAEnEpB,yBAA0B,SAASruJ,GAC/B,IACI9vD,EACA2/M,EAEAj/M,EACAhM,EALAitB,EAAQ1oB,KAAKk7F,OAAO73E,MAAM,GAG1BpkB,EAAS,GAGb,IAAKxD,EAAI,EAAGA,EAAIitB,EAAM9uB,OAAQ6B,IAM1B,GALAsL,EAAO2hB,EAAMjtB,GACbwD,EAAOgE,KAAK8D,IACR/G,KAAK+nB,OAAO,oBAAsBhhB,EAAK4vD,iBAAmB5vD,EAAKqxD,WAC/DrxD,EAAKsnE,IAAMruE,KAAK2mN,eAAe1nN,EAAOrF,OAAS,EAAGi9D,IAElD9vD,EAAKqxD,QAAU,GAAKrxD,EAAKsnE,IAAMtnE,EAAKqxD,SAAWvB,EAAU,CAEzD,IADA6vJ,EAAmB,GACdj/M,EAAI,EAAGA,EAAIV,EAAKqxD,QAAU,EAAG3wD,IAC9Bi/M,EAAiBzjN,KAAK,CAClB2jN,QAAQ,IAGhB3nN,EAASA,EAAO4S,OAAO60M,eAEhB3/M,EAAKqxD,QAGpBp4D,KAAKkkN,UAAUjlN,IAEnB0nN,eAAgB,SAASvlN,EAAOy1D,GAC5B,OAAOz1D,EAAQy1D,GAEnBqtJ,UAAW,SAASx7L,GAChB1oB,KAAKk7F,OAASxyE,EACd1oB,KAAKsmN,gBAAkB,MAE3BlB,qBAAsB,WAClB,IAGIr+M,EACAtL,EAJAitB,EAAQ1oB,KAAKk7F,OACbrkC,EAAW72D,KAAKilN,eAChBhmN,EAAS,GAGb,IAAKxD,EAAI,EAAGA,EAAIitB,EAAM9uB,OAAQ6B,IAE1B,GADAsL,EAAO2hB,EAAMjtB,IACRsL,EAAK6/M,OAAQ,CACd,IAAIC,EAAgB,CAChBvsJ,SAAU,CACNzpD,IAAKtP,SAAS9F,EAAIo7D,GAClBwX,IAAKruE,KAAK2mN,eAAelrN,EAAGo7D,KAGhC,eAAU9vD,EAAKg9C,YACf8iK,EAAc9iK,SAAWh9C,EAAKg9C,UAE9B,eAAUh9C,EAAK4iD,WACfk9J,EAAcl9J,QAAU5iD,EAAK4iD,SAE7B,eAAU5iD,EAAKqxD,WACfyuJ,EAAcvsJ,SAASsR,QAAU7kE,EAAKqxD,SAEtC,eAAUrxD,EAAK+/M,WACfD,EAAcvsJ,SAASujB,QAAU92E,EAAK+/M,SAE1C7nN,EAAOgE,KAAK4jN,GAGpB,OAAO5nN,GAEX8nN,iBAAkB,SAASjiM,GACvBu9L,GAAgB,CACZv9L,WAAYA,KAGpB4gM,kBAAmB,SAAShvH,GACxB,IACI3vF,KAAMA,EACN68D,QAASA,EACTo4I,wBAAyBA,GACzBtlH,GAEAwU,aAAcA,EACdg3G,eAAgBA,GAChBL,GAAiB,CACjB96M,KAAMA,EACN68D,QAASA,EACTo4I,wBAAyBA,EACzBhkJ,gBAAiBh4D,KAAK+nB,OAAO,mBAC7Bm0L,wBAAyBl8M,KAAKooB,iBAAiBoC,KAAKxqB,QAExDA,KAAKyuM,kBAAkBj6H,IAAI,CACvBztE,KAAMA,EACN47L,eAAgBuf,EAChBxf,KAAM37L,EAAK27L,KACX1rF,eAAgB9L,KAGxBy6G,iBAAkB,SAASxoH,GACvB,IAAIo9G,GAEAxzM,KAAMA,EACN68D,QAASA,EACTo4I,wBAAyBA,GACzB7+G,EACAm/G,EAAct8M,KAAKojN,gBAAgBr8M,EAAKqK,WACxCmrM,GAAkC,EACtC,QAAI,IAAWD,EAAa,CACxB,IACIiH,wBAAyBA,EACzBlrJ,WAAYA,EACZjnD,UAAWA,GACXrK,EACJw1M,EAAkCv8M,KAAKsjN,iCAAiC,CACpEC,wBAAyBA,EACzBlrJ,WAAYA,EACZjnD,UAAWA,IAGnB,IAAIxP,EAAOmF,EAAKqK,WAAarK,EAAKnF,MAE9B++M,sBAAuBA,EACvBhe,eAAgBA,EAChBz3F,aAAcA,GACdw1G,GAAgB3E,GAAgC,CAChDn4I,QAASA,EACTo4I,wBAAyBA,EACzBj1M,KAAMA,EACNnF,KAAMA,EACN06M,YAAaA,EACbC,gCAAiCA,EACjCN,oBAAqBj8M,KAAKgnN,iBAC1B9K,wBAAyBl8M,KAAKooB,iBAAiBoC,KAAKxqB,MACpDm8M,cAAen8M,KAAK+kN,kBACpB3I,kBAAmBp8M,KAAK+nB,OAAO,iBAC/Bs0L,wBAAyBr8M,KAAK+nB,OAAO,mBACrCiwC,gBAAiBh4D,KAAK+nB,OAAO,mBAC7By0L,yBAA0Bx8M,KAAK+nB,OAAO,sBACtC00L,kBAAmBz8M,KAAK+nB,OAAO,SAAW/nB,KAAK+nB,OAAO,QAAQA,OAAO,eACrE6vC,oBAAqB53D,KAAK+nB,OAAO,uBACjC20L,qBAAsB18M,KAAK+nB,OAAO,iBAClCojC,SAAUpkD,EAAKokD,SAAWnrD,KAAK2jE,aAAa58D,EAAKokD,UAAY,KAC7DwxJ,OAAQ38M,KAAK+nB,OAAO,SAAW/nB,KAAK+nB,OAAO,QAAQk/L,UAAUrlN,GAC7Dg7M,mBAAoB58M,KAAKknN,kBACzBhwJ,UAAWl3D,KAAK+nB,OAAO,gBAE3B,QAAUwyL,EAAev6M,KAAK+nB,OAAO,8BAA2B,IAAWwyL,GAAwBA,IAC/F5X,GAAkB57L,EAAKqK,WACvBpR,KAAKmnN,eAAexkB,EAAgB57L,EAAKqK,UAAWrK,EAAKsxD,WAAYsoJ,GAEzE3gN,KAAKyuM,kBAAkBj6H,IAAI,CACvBztE,KAAMA,EACN47L,eAAgBA,EAChBD,KAAM37L,EAAK27L,KACX1rF,eAAgB9L,KAGxBg8G,gBAAiB,WACb,MAAO,CACHpvJ,iBAAkB93D,KAAK+nB,OAAO,oBAC9ByvC,aAAcx3D,KAAK+nB,OAAO,gBAC1B8vC,iBAAkB73D,KAAK+nB,OAAO,oBAC9BuvC,aAAct3D,KAAK+nB,OAAO,kBAGlCi/L,eAAgB,WACZ,OAAOhnN,KAAK+nB,OAAO,SAAW/nB,MAElCmnN,eAAgB,SAASC,EAAgBh2M,EAAWinD,EAAYvzC,GAC5D,IAAIuiM,EAAarnN,KAAKgnN,iBACtBI,EAAe/hN,GAAG,YAAY,SAAUw5C,GACpCwoK,EAAW9lJ,sBAAsB,mBAAjC8lJ,CAAqD,OAAA5sN,EAAA,WAAOokD,EAAM,CAC9DztC,UAAWA,QAGnBpR,KAAKsnN,eAAeF,EAAgBtiM,EAAY1T,GAChDpR,KAAKunN,sBAAsBH,EAAgBh2M,EAAWinD,IAE1DivJ,eAAgB,SAASF,EAAgBtiM,EAAY1T,GACjD,IAAIzN,EAAO3D,KACP6M,EAAQlJ,EAAKygN,YACjB,GAAK,eAAWv3M,GAAhB,CAGA,IAAI40D,EAAU50D,GAAM,WAChB,OAAOlJ,EAAKy/M,gBAAgBhyM,MAC5B,WACA,IAAIo2M,EAAa7jN,EAAKy/M,gBAAgBhyM,GACtC,GAAI,aAAeg2M,EAAevlJ,KAAM,CACpC,IAAIy6I,EAAc8K,EAAer/L,OAAO,SACxC,GAAIy/L,IAAelL,GAAe,SAASmL,EAAQC,GAC3C,IAAK7oN,MAAM0nB,QAAQkhM,KAAY5oN,MAAM0nB,QAAQmhM,IAAWD,EAAO7tN,SAAW8tN,EAAO9tN,OAC7E,OAAO,EAEX,IAAK,IAAI6B,EAAI,EAAGA,EAAIgsN,EAAO7tN,OAAQ6B,IAC/B,GAAIgsN,EAAOhsN,KAAOisN,EAAOjsN,GACrB,OAAO,EAGf,OAAO,EATmB,CAU5B+rN,EAAYlL,GACd,OAGR8K,EAAer/L,OAAO,QAASy/L,KAC/B,CACAz6G,MAAM,EACNC,eAAe,IAEnB,OAAa3nG,GAAGyf,EAAYgD,GAAA,KAAa25C,KAE7C2iJ,UAAW,WACP,IAAK,eAAUpkN,KAAK2nN,QAAS,CACzB,IAAIC,EAAe5nN,KAAK+nB,OAAO,QAC/B/nB,KAAK2nN,OAASC,GAAgBA,EAAa7/L,OAAO,kCAEtD,OAAO/nB,KAAK2nN,QAEhBv/L,iBAAkB,SAASu/G,EAASlpI,EAAM4I,GACtC,IAAIwgN,EAAgB7nN,KAAK+nB,OAAO,YAC5B9b,EAAWjM,KAAKC,SAAS0nI,EAASlpI,EAAM4I,GAO5C,OANAwgN,GAAiB57M,EAAS8b,OAAO,WAAY8/L,GAC7C7nN,KAAKqF,GAAG,iBAAiB,SAAUw5C,GAC3B,aAAeA,EAAKj9C,MAAS,eAAUyF,EAAckwD,WACrDtrD,EAAS8b,OAAO82B,EAAKj9C,KAAMi9C,EAAKh9C,UAGjCoK,GAEXk6M,eAAgB,SAAS5kM,EAAOumM,GAC5B,IACIt4F,EACA/zH,EAFAwD,EAAS,GAGb,IAAKxD,EAAI,EAAGA,EAAI8lB,EAAO9lB,IACnB+zH,EAAQ,CACJA,MAAO,GAEPs4F,IACAt4F,EAAM0hD,SAAW,QAErBjyK,EAAOgE,KAAKusH,GAEhB,OAAOvwH,GAEXgnN,cAAe,WACX,OAAOtkM,KAAKw8E,KAAKn+F,KAAKk7F,OAAOthG,OAASoG,KAAKilN,iBAE/ClC,yBAA0B,SAASgF,GAC/B,IAAI5X,EAAanwM,KAAK+nB,OAAO,cACzB,eAASooL,IACT3yM,OAAOwqN,oBAAoB7X,GAAYjvM,QAAQk3H,UAAmBp4H,KAAKigH,oBAAoB,cAAgBmY,IAE3G,eAAS2vF,IACTvqN,OAAOwqN,oBAAoBD,GAAe7mN,QAAQk3H,GAAYp4H,KAAKigH,oBAAoB,cAAgBmY,IAAY,IAG3H,aAAansH,GACTjM,KAAKioN,mCAAoC,EACzCh8M,EAASogF,QACTrsF,KAAKioN,mCAAoC,EACzCh8M,EAAS8b,OAAO,WAAW,IAE/B,eAAe82B,GACX,GAAI,IAAMA,EAAK4sC,SAAS1mF,OAAO,eAG/B,OAAQ85C,EAAKj9C,MACT,IAAK,mBACL,IAAK,mBACL,IAAK,eACL,IAAK,eACD5B,KAAKkoN,sBAAwB,KAC7BloN,KAAK4iE,cACL,MACJ,IAAK,aACD5iE,KAAK+iN,yBAAyBlkK,EAAKh9C,OAC/B7B,KAAK+nB,OAAO,SACP,eAAc82B,EAAKh9C,QACpB7B,KAAKyuM,kBAAkBr9B,KAAK,CAACryK,EAAGgkM,KAC5B,GAAI,eAAUA,EAAgBh8L,MAAO,CACjC,IAAIqK,EAAY2xL,EAAgBh8L,KAAKqK,UACrC,GAAIA,GAAa,eAAU2xL,EAAgBJ,gBAAiB,CACxD,IAAIwlB,EAAc,gBAAc/2M,GAC5Bg3M,EAAYD,EAAYtpK,EAAKh9C,QAE7B0hN,wBAAyBA,EACzBlrJ,WAAYA,GACZ0qI,EAAgBh8L,UAChB,IAAWqhN,GAAapoN,KAAKsjN,iCAAiC,CAC1DC,wBAAyBA,EACzBlrJ,WAAYA,EACZjnD,UAAWA,IAEf2xL,EAAgBJ,eAAe56K,OAAO,QAASqgM,GAE/CpoN,KAAKqoN,aAAatlB,EAAgBJ,qBAOtD3iM,KAAKgjN,kBAAkBnkK,EAAKh9C,OAC5B7B,KAAK4iE,eAET,MACJ,IAAK,QACD5iE,KAAKijN,qBACLjjN,KAAKgjN,kBAAkBnkK,EAAKh9C,OAC5B7B,KAAK4iE,cACL,MACJ,IAAK,kBACL,IAAK,gBACL,IAAK,YACL,IAAK,kBACD5iE,KAAK4iE,cACL,MACJ,IAAK,gBACD5iE,KAAKylM,aAAazlM,KAAK+nB,OAAO,eAC9B/nB,KAAK4iE,cACL,MACJ,IAAK,WACD5iE,KAAKsoN,iBACL,MACJ,IAAK,cACG,SAAWtoN,KAAK+nB,OAAO,aACvB/nB,KAAKsoN,iBAET,MACJ,IAAK,WACD,MACJ,IAAK,QACDtoN,KAAKC,SAAS4+C,GACV,SAAW7+C,KAAK+nB,OAAO,aACvB/nB,KAAKsoN,iBAET,MACJ,IAAK,qBACD,MACJ,QACItoN,KAAKC,SAAS4+C,KAG1BypK,eAAgB,WACZtoN,KAAKsmN,gBAAkB,KACvBtmN,KAAK4iE,eAET,sBAAsBwkJ,EAAgBh2M,GAClCpR,KAAKqF,GAAG,gBAAiBw5C,IACjBA,EAAK4sC,WAAa,cAAc55E,OAAOT,IACvCg2M,EAAe9mJ,8BAA8B,QAASzhB,EAAKh9C,SAGnEulN,EAAe/hN,GAAG,eAAgBw5C,IAC9B,IAAI0pK,EAAuB,eAAS1pK,EAAKh9C,QAAUhD,MAAM0nB,QAAQs4B,EAAKh9C,OACjE7B,KAAKioN,mCAAuCM,GAAwB1pK,EAAKh9C,QAAUg9C,EAAK2sC,eACzFxrF,KAAKqjN,kBAAkBjyM,EAAWytC,EAAKh9C,UAInDi5H,kBAAmB,WACX,SAAW96H,KAAK+nB,OAAO,aAAe/nB,KAAKymN,4BAC3CzmN,KAAKi4F,gBAAgB0G,UAAU,wBAGvC6pH,WAAY,SAASriN,EAAMtE,GACvB,IAAI8B,EAAO3D,KACP,eAASmG,GACT,eAAKA,GAAM,SAAUiL,EAAWo2M,GAC5B7jN,EAAK0/M,kBAAkBjyM,EAAWo2M,MAE/B,kBAAoBrhN,GAC3BxC,EAAK0/M,kBAAkBl9M,EAAMtE,IAGrC4mN,UAAW,SAASzhN,GAChB,OAAOhH,KAAKyuM,kBAAkBia,8BAA8B1hN,IAAUhH,KAAKyuM,kBAAkBka,yBAAyB3hN,IAE1H6+M,mBAAoB,SAAS94M,GACzB,IAAI67M,EAAgB5oN,KAAKqlN,gBAAkBt4M,EAC3C,GAAI67M,EACA,OAAOA,EAAc7gM,OAAO,yBAA2B6gM,EAAc7gM,OAAO,uBAGpF8gM,oBAAqB,WACjB,OAAO7oN,KAAKyuM,qBAGpB,eAAkB,kBAAmBoU,IACtB,IC9xBXiG,GAA2B,uBAC3B,GAAaA,GAA2B,QACxCC,GAAgBD,GAA2B,aAC3CE,GAAoB,QAAiB3pJ,QAAQ,CAC7C,qBACI,OAAO,OAAA5kE,EAAA,WAAOuF,KAAKC,WAAY,CAC3B4kD,mBAAmB,EACnBU,WAAY,QAGpB,yBACIvlD,KAAKC,WACL,OAAAxF,EAAA,WAAOuF,KAAKigH,oBAAqB,CAC7BjoD,iBAAiB,KAGzB,QACIh4D,KAAKC,WACLD,KAAKw5M,0BAET,yBACI,IAAIxzL,EAAWhmB,KAAKgmB,WAChBU,EAAQ1mB,KAAK+nB,OAAO,oBAAsB,QAAiBgzL,UAAU/0L,EAAUhmB,KAAKg7M,gBAAgBh1L,IACpGijM,EAAc,QAAiBC,SAASxiM,GAC5C1mB,KAAKmpN,oBACLnpN,KAAK65M,eAAgB,EACrB75M,KAAK+5M,iBAAmBrzL,EACxB1mB,KAAKopN,kBAAoBppN,KAAKqpN,wBAAwB7+L,KAAKxqB,MAC3DipN,EAAY5jN,GAAG,YAAarF,KAAKopN,oBAErC,oBACI,IAAIH,EAAc,QAAiBK,eAAetpN,KAAK+5M,kBACvDkP,GAAeA,EAAY1oJ,IAAI,YAAavgE,KAAKopN,oBAErD,iBAAiBG,EAAY7gM,GACzB,IAAI8gM,EAAe,GAWnB,OAVA,eAAKD,GAAY,SAAUxqN,EAAG+xM,GAC1B,IAAI2Y,EAAa,eAAK/gM,GAAO,SAAU3hB,GACnC,GAAIA,EAAK+pM,YAAcA,EACnB,OAAO,KAGX2Y,EAAW7vN,SACX4vN,EAAeA,EAAa33M,OAAO43M,OAGpCD,GAEX,wBAAwB5pI,GACpB,IAAIl3D,EAAQ1oB,KAAK0pN,iBAAiB9pI,EAAO2pI,WAAY,eAAI3pI,EAAOo5H,aAAa,SAAU8B,GACnF,MAAO,CACHv+M,KAAMu+M,EAAK5yL,QACX4oL,UAAWgK,EAAKhK,UAChB1vM,MAAO05M,EAAK15M,WAGpBpB,KAAKupN,WAAa3pI,EAAO2pI,WACzB,eAAKvpN,KAAKupN,WAAY,CAACxqN,EAAG+xM,KACtB,GAAIA,EAAU6Y,qBAAuB3pN,KAAM,CACvC,IAAIsjH,EAAUtjH,KAAK4pN,uBAAuBp/L,KAAKxqB,MAC/C8wM,EAAUzrM,GAAG,YAAai+G,GAC1BwtF,EAAUzrM,GAAG,aAAa,WACtByrM,EAAUvwI,IAAI,YAAa+iD,GAC3BwtF,EAAU6Y,mBAAqB,KAC/BrmG,EAAU,QAEdwtF,EAAU6Y,mBAAqB3pN,QAGvCA,KAAK+nB,OAAO,QAASW,IAEzB,uBAAuBxb,GACnB,IACI43I,QAASA,EACTgsD,UAAWA,EACXkI,YAAaA,GACb9rM,EACAwb,EAAQ1oB,KAAK+nB,OAAO,SACpB8hM,GAAe,EACfp2G,EAAY,EACZkb,EAAQ,WACR,IAAI5nH,EAAO2hB,EAAM+qF,GACjB,GAAI1sG,EAAK+pM,YAAcA,EAAW,CAC9B,IAAIgZ,EAAY,eAAK9Q,GAAe,IAAI,SAAU8B,GAC9C,OAAOA,EAAK15M,QAAU2F,EAAK3F,SAC3B,GACJ,GAAI0jJ,IAAYglE,EAGZ,OAFAphM,EAAM6qD,OAAOkgC,EAAW,GACxBo2G,GAAe,EACR,WAEPC,EAAU5hM,UAAYnhB,EAAKxK,OAC3BwK,EAAKxK,KAAOutN,EAAU5hM,QACtB2hM,GAAe,GAGvBp2G,KAEJ,MAAOA,EAAY/qF,EAAM9uB,OACV+0H,IAKf,eAAKqqF,GAAa,SAAUj6M,EAAG+7M,GAC3B,IAAIiP,EAAY,eAAKrhM,GAAO,SAAU3hB,GAClC,OAAOA,EAAK+pM,YAAcA,GAAa/pM,EAAK3F,QAAU05M,EAAK15M,SAC3D,GACC2oN,IACDrhM,EAAMzlB,KAAK,CACP1G,KAAMu+M,EAAK5yL,QACX4oL,UAAWA,EACX1vM,MAAO05M,EAAK15M,QAEhByoN,GAAe,MAGnBA,IACAnhM,EAAQ1oB,KAAK0pN,iBAAiB1pN,KAAKupN,WAAY7gM,GAC/C1oB,KAAK+nB,OAAO,QAASW,KAG7B,cACI1oB,KAAKgmB,WAAWsB,SAASwhM,IACzB9oN,KAAKC,YAET,eAAe4+C,GACX,OAAQA,EAAKj9C,MACT,IAAK,kBACD5B,KAAKw5M,yBACL,MACJ,QACIx5M,KAAKC,SAAS4+C,KAG1Bo7D,WAAY,IAAM,GAClBJ,aAAc,IAAMkvG,GACpB,uBAAuBnpI,GACnB,OAAav6E,GAAGu6E,EAAOm6B,YAAa,SAAS,WACzCn6B,EAAOE,SAASgxH,WAAalxH,EAAOE,SAASgxH,UAAU99L,OAAS4sE,EAAOE,SAASgxH,UAAU99L,YAGlG,WACIhT,KAAKC,WACLD,KAAKmpN,qBAET,yBACInpN,KAAKw5M,4BAGb,eAAkB,sBAAuBwP,IAC1B,UC/JXgB,GAA0B,qBAC1B,GAAkB,eAClB,GAA2B,uBAC/B,MAAM,WAAwB,QAC1B,qBACI,OAAOr0G,MAAMC,qBAEjB,QACID,MAAMiB,QACN,QAAiBsyG,SAASlpN,MAE9B,cACI,IAAIgmB,EAAWhmB,KAAKgmB,WACpBA,EAASsB,SAAS0iM,IAClBhkM,EAASiB,KAAK,IAAIpV,OAAO,KAAkBu/J,MAAK,SAAUryK,EAAGkrN,GACzD,GAAUr3G,YAAY,eAAEq3G,IAAqBzQ,4BAEjDxzL,EAASiB,KAAK,IAAIpV,OAAO,KAA2Bu/J,MAAK,SAAUryK,EAAGmrN,GAClE,GAAkBt3G,YAAY,eAAEs3G,IAAmBC,4BAEvDx0G,MAAM2C,cAEV,WACI,OAAO,QAAiB8xG,cAAcpqN,MAE1C,QACI,OAAO,QAAiBqqN,WAAWrqN,MAEvC,WACI,QAAiBsqN,YAAYtqN,MAC7BA,KAAKgmB,WAAWwB,YAAYwiM,IAC5Br0G,MAAMmpB,WAEV,gBACI,OAAO,GAGf,eAAkB,oBAAqB,IACxB,I,aC+CX,GAAsB,mBACtByrF,GAAuC,CAAC,QAAS,aAAc,kBAAmB,WAClFC,GAAO,OAAOnrJ,QAAQ,CACtBu3C,MAAO,WACH52G,KAAKC,WACLD,KAAKyqN,uBAAyB,GAC9BzqN,KAAKyuM,kBAAoB,IAAI,GAC7BzuM,KAAK0qN,gBAAkB,GACvB1qN,KAAK2qN,4BAET/0G,mBAAoB,WAChB,OAAO,OAAAn7G,EAAA,WAAOuF,KAAKC,WAAY,CAC3B2qN,OAAQ,MAAQ,IAAI,QACpB5zJ,SAAU,GACVH,SAAU,EACVa,cAAe,OACfZ,sBAAkB,EAClBG,cAAe,OACfM,UAAU,EACVF,mBAAoB,KACpBN,cAAe,KACfK,iBAAkB,KAClBD,YAAa,IACbR,iBAAiB,EACjBC,4BAA4B,EAC5Bi0J,qBAAqB,EACrBjzJ,qBAAqB,EACrBE,kBAAkB,EAClBD,kBAAkB,EAClBL,aAAc,IACdF,aAAc,OAAoBj+D,OAAO,uBACzCo+D,gBAAiB,OAAoB58D,aAAa,0BAClDk9D,uBAAuB,EACvBrvC,WAAO,EACPivC,kBAAkB,EAClBK,qBAAiB,EACjBy9G,YAAa,kBAASgnC,kBACtBvlJ,UAAW,aAGnBwoD,qBAAsB,WAClB,OAAO1/G,KAAKC,WAAW4R,OAAO,CAAC,CAC3B8tG,OAAQ,WACJ,OAAO,kBAEX3uG,QAAS,CACL4mD,qBAAqB,EACrBX,cAAe,WAI3B+oD,uBAAwB,WACpBhgH,KAAKC,WACL,OAAAxF,EAAA,WAAOuF,KAAKigH,oBAAqB,CAC7BjpD,UAAU,EACVgB,iBAAiB,KAGzB8yJ,kBAAmB,SAAS9kM,GACxB,OAAOzkB,SAASykB,EAASg7C,KAAKy3I,MAElCsS,uBAAwB,SAASjmM,EAAY1jB,GACzC,IAAI4P,EAAU9Q,UAAUtG,OAAS,QAAK,IAAWsG,UAAU,GAAKA,UAAU,GAAK,GAC3E8+M,EAAmB9+M,UAAUtG,OAAS,EAAIsG,UAAU,QAAK,EACzD8qN,EAAiBh6M,EAAQi6M,YAActT,GAAmBD,GAA4Bt2M,EACtF8pN,EAA2Bl6M,EAAQm6M,cAAgB,SAASt5M,OAAO0mM,GAAsB,KAAO,GACpGsG,GAA6B/5L,EAAY,IAAIjT,OAAOm5M,GAAgBn5M,OAAOq5M,GAA2BlM,IAG1GoM,kBAAmB,SAAStmM,EAAYqmM,EAAeF,EAAap0J,EAAUmoJ,GAC1EnoJ,EAAWo0J,EAAc,EAAIp0J,GAAY72D,KAAK8qN,kBAAkBhmM,GAChE,IAIIrpB,EAJA4vN,EAAqB,CACrBF,cAAeA,EACfF,YAAaA,GAGjB,IAAKxvN,EAAI,EAAGA,EAAIo7D,EAAUp7D,IACtBuE,KAAK+qN,uBAAuBjmM,EAAYrpB,EAAG4vN,EAAoBrM,IAGvEsM,0BAA2B,SAASxmM,EAAYF,EAAaiyC,GACzD,IAAI00J,EAAsB,eAAU10J,GAAY,IAAM2hJ,GAAwB3hJ,EAAW,GACrF20J,EAAgB,IAAM9T,GAA4B9yL,EAAc,OAASozL,GAA2B,OAASR,GAAmB+T,EACpI,OAAOzmM,EAAWmC,KAAKukM,IAE3BC,4BAA6B,SAAS3mM,EAAY+xC,EAAUs0J,EAAenM,GACvE,IAAI,IAASh/M,KAAK+nB,OAAO,uBAErB,IADA,IAAI2jM,EAAmB5mM,EAAWmC,KAAK,IAAIpV,OAAOqmM,KACzCviD,EAAW,EAAGA,EAAW9+F,EAAU8+F,IACxC31J,KAAK+qN,uBAAuBW,EAAkB/1D,EAAUw1D,EAAenM,GAG/E,IAAIpoJ,EAA6B52D,KAAK+nB,OAAO,8BAC7C,GAAI6uC,EACA52D,KAAK2rN,kCAAkC7mM,EAAY+xC,EAAUs0J,EAAenM,OACzE,CACH,IACIvjN,EADAmwN,EAAU5rN,KAAKgmB,WAAWiB,KAAK,IAAMuwL,IAEzC,IAAK/7M,EAAI,EAAGA,EAAImwN,EAAQhyN,OAAQ6B,IAC5BuE,KAAKorN,kBAAkBQ,EAAQpgM,GAAG/vB,GAAI0vN,OAAe,OAAQ,EAAQnM,KAIjF2M,kCAAmC,SAAS7mM,EAAY+xC,EAAUs0J,EAAenM,GAC7E,IAGIrpD,EACAk2D,EACAC,EACAC,EANAV,EAAqB,CACrBF,cAAeA,GAMnB,IAAKx1D,EAAW,EAAGA,EAAW9+F,EAAU8+F,IAGpC,IAFAo2D,EAAe/rN,KAAKsrN,0BAA0BxmM,EAAY6wI,GAC1D31J,KAAK+qN,uBAAuBgB,EAAc,EAAGV,EAAoBrM,GAC5D6M,EAAiB,EAAGA,EAAiB7rN,KAAK0qN,gBAAgB9wN,OAAQiyN,IAAkB,CACrFE,EAAe/rN,KAAKsrN,0BAA0BxmM,EAAY6wI,EAAU31J,KAAK0qN,gBAAgBmB,IACzF,IAAIG,EAAgBhsN,KAAK8qN,kBAAkBiB,GAC3C,IAAKD,EAAgB,EAAGA,EAAgBE,EAAeF,IACnD9rN,KAAK+qN,uBAAuBgB,EAAcD,EAAeT,EAAoBrM,KAK7FiN,eAAgB,WACZ,OAAOjsN,KAAK+nB,OAAO,kBAEvBmkM,qBAAsB,SAASh/M,GAC3B,IACIi/M,cAAeA,EACflB,YAAaA,EACbnmM,WAAYA,EACZqmM,cAAeA,EACfziM,MAAOA,GACPxb,EACJ,GAAK,kBAAe,QAAUlN,KAAKisN,iBAAnC,CAGA,IAAIjN,EAAmBhB,GAA0BmO,EAAcjF,mBAC3D+D,EACAjrN,KAAKorN,kBAAkBtmM,EAAYqmM,GAAe,OAAM,EAAQnM,GACzDh/M,KAAKosN,eAAe1jM,GAC3B1oB,KAAKyrN,4BAA4B3mM,EAAYqnM,EAAclH,eAAgBkG,EAAenM,GAE1Fh/M,KAAKorN,kBAAkBtmM,EAAYqmM,GAAe,EAAOgB,EAAclH,eAAgBjG,KAG/FqN,iBAAkB,WACT,eAAUrsN,KAAK+nB,OAAO,cACvB/nB,KAAK+nB,OAAO,WAAY,KAGhCukM,qBAAsB,WACd,eAAiBtsN,KAAK+nB,OAAO,gBAC7B/nB,KAAKgmB,WAAWsB,SAASqxL,KAGjCrgG,YAAa,WACT,QAAiB4wG,SAASlpN,KAAKusN,uBAC/BvsN,KAAKwsN,wBACLxsN,KAAKqsN,mBACLrsN,KAAKgmB,WAAWsB,SAASiwL,IACzBv3M,KAAKssN,uBACLtsN,KAAKC,WACLD,KAAKosB,QAAQ,OAAQ,OAAQpsB,KAAKgmB,YAC9BhmB,KAAK+nB,OAAO,qBACZ/nB,KAAKitG,oBAETjtG,KAAK8sM,gBACL9sM,KAAKysN,2BACLzsN,KAAK0sN,wBAA0B1sN,KAAK2sN,qBAAuB3sN,KAAK4sN,2BAEpEA,wBAAyB,WACrB,OAAO,iBAAc,eAAuB5sN,KAAK+nB,OAAO,kBAAoB,MAEhFykM,sBAAuB,WACnBxsN,KAAKyuM,kBAAkBoW,QACvB7kN,KAAK6sN,sBAAwB,IAEjCC,aAAc,SAASX,EAAelB,GAClCjrN,KAAKksN,qBAAqB,CACtBpnM,WAAY9kB,KAAKgmB,WACjBmmM,cAAeA,EACfhB,eAAe,EACfziM,MAAO1oB,KAAK+nB,OAAO,SACnBkjM,YAAaA,IAEjB,gBAAmBjrN,KAAKgmB,WAAWiB,KAAK,IAAIpV,OAAO,YAEvDukG,OAAQ,WACJp2G,KAAK+sN,0BACL/sN,KAAKC,WACLD,KAAK0qN,gBAAkB,GACvB1qN,KAAKyqN,uBAAyB,GAC9BzqN,KAAK0sN,6BAA0B,GAEnCz/G,kBAAmB,WACf,IAAI9hC,EAAqBnrE,KAAK+nB,OAAO,sBACrC/nB,KAAKguG,YAAc,IAAI,QAAWhuG,KAAKgmB,WAAY,CAC/Co3C,YAAa+N,EACbG,uBAAwBH,EACxBE,aAAa,EACbtR,UAAW,OACXqR,eAAe,KAGvB4hJ,YAAa,WACT,OAAOhtN,KAAK+nB,OAAO,oBAAsB,eAAE/nB,KAAKguG,YAAY/kC,WAAajpE,KAAKgmB,YAElF+mM,wBAAyB,WACrB,IAAIE,EACJ,QAAUA,EAAwBjtN,KAAKktN,2BAAwB,IAAWD,GAAiCA,EAAsBnlM,SACjI9nB,KAAKktN,yBAAsB,EAC3BltN,KAAK2pN,wBAAqB,GAE9B8C,yBAA0B,WACtBzsN,KAAK+sN,0BACD/sN,KAAK+nB,OAAO,2BACZ/nB,KAAKktN,oBAAsB,eAAE,SAAS5lM,SAASoxL,IAAyBnxL,SAASvnB,KAAKgtN,eACtFhtN,KAAK2pN,mBAAqB3pN,KAAKktN,oBAAoBC,oBAAoB,CACnEn1J,gBAAiBh4D,KAAKusN,wBACvBY,oBAAoB,cAG/B,cAAczkM,EAAO0kM,EAAoBC,EAAave,GAClD,GAAIpmL,EAAO,CAEP,IADA,IAAIzpB,EAAS,GACJxD,EAAI,EAAGA,EAAIitB,EAAM9uB,OAAQ6B,IAAK,CACnC,IAAIsL,EAAO2hB,EAAMjtB,GACbwtF,EAAO8lH,GAAYse,EAAaxe,GAAsBpzM,EAAGqzM,IACzD/L,EAAkB,CAClBh8L,KAAMA,EACN0sG,UAAWh4G,EACXwtF,KAAMA,GAENy5G,EAAO1iM,KAAKyuM,kBAAkBj6H,IAAIuuH,GAMtC,GALI,eAASh8L,KACTA,EAAO,CACHqK,UAAWrK,IAGf,eAASA,GAAO,CAChB,IAAI2pM,EAAe,eAAS,GAAI3pM,GAChCg8L,EAAgB2N,aAAeA,EAC/BA,EAAahO,KAAOA,EACpB1iM,KAAKstN,qBAAqB5c,GAC1B1wM,KAAKutN,sBAAsB7c,EAAcznH,GACzCjpF,KAAKwtN,wBAAwB9c,GACzB0c,IACA1c,EAAaL,aAAekI,IAE5B7H,EAAahoL,QACbgoL,EAAahoL,MAAQ1oB,KAAKytN,cAAc/c,EAAahoL,MAAO0kM,EAAoBnkI,IAEpFhqF,EAAOgE,KAAKytM,QAEZzxM,EAAOgE,KAAK8D,GAGpB,OAAO9H,IAGfquN,qBAAsB,SAASvmN,GACvB,UAAYA,EAAKyxD,WACjBzxD,EAAK4vD,gBAAkB,eAAc5vD,EAAK4vD,iBAAiB,GAC3D5vD,EAAK6pM,0BAA4Bj7E,IACzB5uH,EAAKokD,WACLpkD,EAAK2mN,qBAAuB1tN,KAAK2jE,aAAagyD,IAElD5uH,EAAKokD,SAAWnrD,KAAK2tN,mBAAmBnjM,KAAKxqB,KAAM+G,IAEvDA,EAAK6pM,0BAA0B7pM,EAAKokD,YAG5CoiK,sBAAuB,SAASxmN,EAAMkiF,GAC9B,WAAaliF,EAAKyxD,WAClBzxD,EAAKokD,SAAWnrD,KAAK4tN,oBAAoBpjM,KAAKxqB,KAAM+G,GACpDA,EAAK8mM,KAAO7tM,KAAKytN,cAAc1mN,EAAK8mM,MAAM,EAAM5kH,GAAM,KAG9DukI,wBAAyB,SAASzmN,GAC1BA,EAAKokD,WACLpkD,EAAKokD,SAAWnrD,KAAK2jE,aAAa58D,EAAKokD,YAG/CihK,eAAgB,SAAS1jM,GACrB,GAAIA,EACA,IAAK,IAAIjtB,EAAI,EAAGA,EAAIitB,EAAM9uB,OAAQ6B,IAAK,CACnC,IAAIsL,EAAO2hB,EAAMjtB,GACjB,GAAI,UAAYsL,EAAKyxD,SACjB,OAAO,IAKvBs0I,cAAe,WACX,IAAInpM,EAAO3D,KACP0oB,EAAQ/kB,EAAKokB,OAAO,SACpB60D,EAAWj5E,EAAKqpN,cACpBtkM,EAAQ/kB,EAAK8pN,cAAc/kM,GAC3B/kB,EAAKkqN,mBAAqBlqN,EAAKmqN,qBAAqBlxI,EAAU58E,KAAK+tN,4BAA4BrlM,EAAO,CAClG0nL,QAAQ,EACRv5I,SAAUlzD,EAAKokB,OAAO,YACtB4uC,gBAAiBhzD,EAAKokB,OAAO,mBAC7B2vC,cAAe13D,KAAK+nB,OAAO,iBAC3B+uC,iBAAkB92D,KAAK+nB,OAAO,oBAC9BuoL,gBAAiB,SAAS2a,GACtBtnN,EAAKmpN,aAAatiM,KAAK7mB,EAAvBA,CAA6BA,EAAKkqN,mBAAoB5C,IAE1DplK,eAAgB,SAASjiD,GACrBD,EAAKmpN,aAAalpN,EAAEmJ,UAAWnJ,EAAEmJ,UAAU84M,2BAIvDmI,wBAAyB,SAASjnN,GAC9B,OAAOA,EAAK2hB,OAAS,IAEzBklM,oBAAqB,SAAS7mN,EAAMnD,EAAGkhB,GACnC,IAAImpM,EAAY,eAAE,SAAS1mM,SAASzC,GAChCopM,EAAkB,OAAAzzN,EAAA,WAAO,GAAIsM,EAAKmnN,gBAAiB,CACnD3kM,WAAYxiB,EAAK8mM,KACjB13E,eAAgBt3E,GAAQ,gBAAkBA,EAAKk7D,aAC/C4b,aAAc,CAAC71C,EAAUl8E,EAAGukB,KACxB,IAAIrD,EAAa,eAAEqD,GACfwuC,EAAkB,eAAcmpB,EAASnpB,iBAAiB,GAC1Dw1J,EAAgBnsN,KAAK8tN,qBAAqBhpM,EAAY9kB,KAAK+tN,4BAA4B/tN,KAAKguN,wBAAwBluI,GAAW,CAC/HjpB,SAAUipB,EAASjpB,SACnBF,gBAAiBA,EACjBe,cAAe13D,KAAK+nB,OAAO,iBAC3B+uC,iBAAkBgpB,EAAShpB,iBAC3Bu5I,aAAcvwH,EAASuwH,aACvBC,gBAAiB2a,IACbjrN,KAAKksN,qBAAqB,CACtBpnM,WAAYA,EACZqnM,cAAeA,EACfzjM,MAAOo3D,EAASp3D,MAChBuiM,YAAaA,QAIrBjrN,KAAKyuM,mBACLzuM,KAAKyuM,kBAAkB0f,2BAA2BruI,EAAS4iH,KAAM,CAC7DypB,cAAeA,IAGnBx1J,GACA32D,KAAKksN,qBAAqB,CACtBpnM,WAAYA,EACZqnM,cAAeA,EACfzjM,MAAOo3D,EAASp3D,MAChBuiM,YAAakB,EAActG,0BAKvCuI,EAA4B,CAAC1lM,EAAOzc,KAChCpN,MAAM0nB,QAAQmC,IACdA,EAAMxnB,QAAQ6F,GAAQ/G,KAAKyuM,kBAAkB0f,2BAA2BpnN,EAAK27L,KAAM,CAC/EC,eAAgB12L,MAIxBukM,EAAWxwM,KAAKooB,iBAAiB6lM,EAAW,GAAUC,GAC1D,eAAEppM,GAAYoJ,SAAS5G,SAAS+wL,IAChC7H,EAASnrM,GAAG,gBAAiBzB,IACrB,eAAiBA,EAAE6nF,UACnB2iI,EAA0BxqN,EAAE/B,MAAO+B,EAAEmJ,aAG7CqhN,EAA0B,CAAC,CACvB1rB,KAAM37L,EAAK27L,SACT37L,EAAK8mM,MAAO2C,IAEtBmd,mBAAoB,SAAS5mN,EAAMnD,EAAGkhB,GAClC,IAEI+xC,EACAs1J,EAHAkC,EAAS,eAAE,SAASxqJ,YAAYy0I,GAA+B,eAAUvxM,EAAKG,UAAYH,EAAKG,QAAQtN,QAAQ0tB,SAASkwL,IAAkBjwL,SAASzC,GACvJ,eAAEA,GAAYoJ,SAAS5G,SAAS8wL,IAG5BrxM,EAAKG,SACL,eAAE,UAAUogB,SAASmwL,IAA0Bl7M,KAAKwK,EAAKG,SAASqgB,SAAS8mM,GAE/E,IAAIC,EAAgB,eAAE,SAAShnM,SAAS6wL,IAA0B5wL,SAAS8mM,GACvEtnN,EAAK2mN,sBACL3mN,EAAK8pM,4BAA8B,KAC/Byd,EAAc5sJ,QACd,IAAIv7D,EAAO,CACP6wD,SAAUh3D,KAAK+nB,OAAO,YACtBhb,UAAW/M,MAEf+G,EAAK2mN,qBAAqBvpN,OAAO,CAC7BW,MAAOqB,EACPgiB,UAAW,eAAiBmmM,MAGpCvnN,EAAK8pM,gCAELsb,EAAgBnsN,KAAK8tN,qBAAqBQ,EAAetuN,KAAK+tN,4BAA4B/tN,KAAKguN,wBAAwBjnN,GAAO,CAC1H8vD,SAAU9vD,EAAK8vD,SACfC,iBAAkB/vD,EAAK+vD,iBACvBH,gBAAiB5vD,EAAK4vD,gBACtB05I,aAActpM,EAAKspM,gBAEvBrwM,KAAKyuM,mBAAqBzuM,KAAKyuM,kBAAkB0f,2BAA2BpnN,EAAK27L,KAAM,CACnFypB,cAAeA,IAEnBt1J,EAAWs1J,EAAclH,eACpBjlN,KAAK0qN,gBAAgB1nN,SAAS6zD,IAC/B72D,KAAK0qN,gBAAgBznN,KAAK4zD,GAE9Bw3J,EAAO/mM,SAASkxL,GAAwB3hJ,GACxCw3J,EAAOrtJ,KAAKy3I,GAAsB5hJ,KAG1Ck3J,4BAA6B,SAASrlM,EAAOqnL,GACzC,OAAOH,GAA8B,CACjCv/I,KAAMrwD,KACN8vM,YAAa9vM,KAAK+nB,SAClB8nL,aAAc7vM,KAAKgmB,WACnB0C,MAAOA,EACPsvC,gBAAiBh4D,KAAKusN,sBACtBxc,6BAA8BA,EAC9B14I,mBAAoBxY,IACX7+C,KAAKuuN,iBACNvuN,KAAK2jN,2BAA2B9kK,IAGxCgH,eAAgBhH,IACZ7+C,KAAKyuM,kBAAkB+f,qBAAqB3vK,EAAK9xC,UAAU0hM,mBAC3DsB,EAA6BlqJ,gBAAkBkqJ,EAA6BlqJ,eAAehH,IAE/FmH,YAAa0wC,IACT,IACI3pF,UAAWA,GACX2pF,EACA+3H,EAAyB1hN,EAAU87M,sBACvC7oN,KAAKyuM,kBAAkBigB,mBAAmBD,IAE9Cze,oBAAqB,KACjB,IAAI2e,EACJ,QAAUA,EAAwB3uN,KAAK2pN,0BAAuB,IAAWgF,GAAiCA,EAAsBxE,6BAI5I2D,qBAAsB,SAASlqJ,EAASgrJ,GACpC,IAAIC,EAAuB,CACvB93N,GAAI63N,EAAqB/3J,SACzBvL,GAAIsjK,EAAqB/3J,SACzBtL,GAAIqjK,EAAqB/3J,SACzBrL,GAAI,GAERxrD,KAAKyqN,uBAAuBxnN,KAAK,CAC7B6zD,iBAAkB,OAAAr8D,EAAA,WAAOo0N,EAAsBD,EAAqB93J,oBAExE,IAAI9wC,EAAW,eAAE,SACjBA,EAASuB,SAASq8C,GAClB,IAAI33D,EAAWjM,KAAKooB,iBAAiBpC,EAAU,kBAAmB4oM,GAMlE,OALA3iN,EAAS5G,GAAG,sBAAuB,KAC/BrF,KAAK8uN,mCACL9uN,KAAK+uN,6BAA+B97M,WAAW,KAAOjT,KAAK0lL,WAAa1lL,KAAKgoH,WAAY,KAE7FhoH,KAAK6sN,sBAAsB5pN,KAAKgJ,GACzBA,GAEXsgN,oBAAqB,WACjB,OAAOvsN,KAAK+nB,OAAO,oBAAsB/nB,MAE7CooB,iBAAkB,SAASpC,EAAUvnB,EAAM0iE,GAKvC,OAJAA,EAASA,GAAU,GACnBnhE,KAAKgvN,cAAc7tJ,EAAQ,CACvB5J,SAAUv3D,KAAK+nB,OAAO,cAEnB/nB,KAAKC,SAAS+lB,EAAUvnB,EAAM0iE,IAEzCwpJ,yBAA0B,WACtB,IAAIhnN,EAAO3D,KACX2D,EAAK0B,GAAG,iBAAiB,SAAUw5C,GAC/B,IAAIowK,EAAiBpwK,EAAK4sC,SACtB,aAAewjI,IACV,eAAUpwK,EAAKh9C,QAChB8B,EAAK0sK,SAASyjB,OAAO,WAAYj1I,EAAKh9C,MAAQ,IAElD8B,EAAKurN,oCAAoCrwK,EAAKh9C,QAE9C8B,EAAKkpN,sBAAsBjzN,QAC3B,eAAK+J,EAAKkpN,uBAAuB,SAAUzrN,EAAO+qN,GAC1C,aAAe8C,IACftrN,EAAK4qN,iBAAkB,EACvBpC,EAAcpkM,OAAO,aAAc82B,EAAKh9C,OACxC8B,EAAK4qN,iBAAkB,GAEvB,aAAe1vK,EAAKj9C,MAAQ,aAAei9C,EAAKj9C,MAChDuqN,EAAcpkM,OAAOknM,EAAgBpwK,EAAKh9C,cAM9Ds7G,eAAgB,SAASt+D,GACrB,IAAIswK,EAAgBtwK,EAAK4sC,SAAS5vF,MAAM,KACpCszN,EAAcv1N,OAAS,IAAM,IAAMu1N,EAAc,GAAGpqN,OAAO,UAAY/E,KAAKovN,2BAA2BvwK,IAGvGswK,EAAcv1N,OAAS,IAAM,IAAMu1N,EAAc,GAAGpqN,OAAO,aAAe/E,KAAKqvN,8BAA8BxwK,IAGjH7+C,KAAKsvN,6BAA6BzwK,IAEtCywK,6BAA8B,SAASzwK,GACnC,OAAQA,EAAKj9C,MACT,IAAK,WACI5B,KAAK+nB,OAAO,SAEN,eAAc82B,EAAKh9C,QAC1B7B,KAAKuvN,eAFLvvN,KAAK4iE,cAIT,MACJ,IAAK,qBACD,MACJ,IAAK,QACL,IAAK,WACL,IAAK,mBACL,IAAK,gBACL,IAAK,YACL,IAAK,kBACL,IAAK,sBACL,IAAK,gBACL,IAAK,6BACL,IAAK,mBACL,IAAK,mBACL,IAAK,eACL,IAAK,eACL,IAAK,kBACL,IAAK,mBACL,IAAK,SACL,IAAK,mBACL,IAAK,gBACL,IAAK,cACD5iE,KAAK4iE,cACL,MACJ,IAAK,wBACD5iE,KAAKysN,2BACL,MACJ,IAAK,cACG,SAAWzsN,KAAK+nB,OAAO,aACvB/nB,KAAK4iE,cAET,MACJ,IAAK,sBACL,IAAK,WACD,MACJ,IAAK,QACD5iE,KAAKC,SAAS4+C,GACd7+C,KAAK6tN,mBAAmB9lM,OAAO82B,EAAKj9C,KAAMi9C,EAAKh9C,OAC/C7B,KAAK8sN,aAAa9sN,KAAK6tN,mBAAoB7tN,KAAK6tN,mBAAmBhI,sBACnE,MACJ,IAAK,UACD7lN,KAAKC,SAAS4+C,GACVA,EAAKh9C,OACL,gBAAkB7B,KAAKgmB,YAE3B,MACJ,IAAK,kBACD,QAAiBskM,YAAYzrK,EAAK2sC,eAAiBxrF,MACnDA,KAAK4iE,cACL,MACJ,QACI5iE,KAAKC,SAAS4+C,KAG1BuwK,2BAA4B,SAASvwK,GACjC,IAAI2kK,EAAY3kK,EAAK4sC,SAAS5vF,MAAM,KAChCgG,EAAQg9C,EAAKh9C,MACb8tM,EAAW3vM,KAAKwvN,aAAahM,GAC7Bz8M,EAAO/G,KAAK+nB,OAAO4nL,GACnB8f,EAAwB5wK,EAAK4sC,SAAStwF,QAAQw0M,EAAW,IAAK,IAC9D+f,EAAmBD,EAAsB5zN,MAAM,KAAK,GAAGV,QAAQ,SAAU,IACzEw0N,EAAa3vN,KAAK4vN,2BAA2BF,EAAkB3oN,EAAMA,EAAK2oN,GAAmB7wK,EAAK2sC,cAAemkH,GACjH1wM,EAASe,KAAK6vN,4BAA4BF,IAAe3vN,KAAK8vN,kCAAkCjxK,EAAK4sC,SAAU5pF,GACnH,IAAK5C,GAAU8H,EAAM,CACjB/G,KAAK+vN,kBAAkBhpN,EAAM0oN,EAAuB5tN,GACpD,IAAI6mB,EAAQ1oB,KAAKgwN,uBAAuBhwN,KAAK+nB,OAAO,UACpD/nB,KAAK+nB,OAAO,QAASW,GACrBzpB,GAAS,EAEb,OAAOA,GAEXowN,8BAA+B,SAASxwK,GACpC,IAAI2kK,EAAY3kK,EAAK4sC,SAAS5vF,MAAM,KAChCgG,EAAQg9C,EAAKh9C,MACbuP,EAAYoyM,EAAUngM,MAAM,GAAGrnB,KAAK,KACpCgxB,EAAShtB,KAAKyoN,UAAUr3M,GAS5B,OARI4b,EACAA,EAAOjF,OAAO,QAASlmB,GAEvB7B,KAAK2jN,2BAA2B,CAC5BvyM,UAAWA,EACXvP,MAAOA,KAGR,GAEX+tN,2BAA4B,SAASvlK,EAAYtjD,EAAMlF,EAAO2pF,EAAemkH,GAKzE,MAJI,SAAWtlJ,IACXrqD,KAAKyuM,kBAAkBwhB,2BAA2B,GAAGp+M,OAAO89L,EAAU,UACtE9tM,EAAQ7B,KAAKytN,cAAc5rN,GAAO,EAAM8tM,GAAU,IAE/C,GAA0BtlJ,EAAY,CACzCtjD,KAAMA,EACNlF,MAAOA,EACP2pF,cAAeA,EACfo3G,iBAAkB5iM,KAAKyuM,qBAG/BohB,4BAA6B,SAASzuJ,GAClC,OAAOA,GAAUA,EAAO8uJ,cAE5BC,yCAA0C,SAAS1kI,GAC/C,IAIY2kI,EAJR/lK,EAAa8kJ,GAA0B1jH,GACvC8+H,GAAqCjsN,QAAQ+rD,IAAe,IAC5D,QAAiB6+J,SAASlpN,KAAKusN,uBAC3BvsN,KAAK+nB,OAAO,2BAEZ,QAAUqoM,EAAyBpwN,KAAK2pN,0BAAuB,IAAWyG,GAAkCA,EAAuBjG,4BAI/I,4BAA4BgC,EAAe9hK,EAAYxoD,EAAOonF,GAC1D,GAAIjpF,KAAKw/D,iBAAmB,EAAG,EAC1B2sJ,EAAc3sJ,kBAAoB2sJ,EAAclsJ,cACjD,IAAInlE,EAAMkF,KAAKyuM,kBAAkB4hB,cAAcpnI,GAC/CjpF,KAAKswN,oBAAoB97I,IAAI15E,EAAK,MAC7BqxN,EAAczmC,WAAaymC,EAAcjsJ,aACnC,IAAK,eAAU1wC,YAG9B,IAAI+gM,EAAsB3sN,IAEtB,GADAA,EAAEmJ,UAAUwzD,IAAI,eAAgBgwJ,GAC5B/gB,GAAuBvmH,GAAO,CAC9B,IAAIunI,EAAUphB,GAAcnmH,GACxBwnI,EAAmBzwN,KAAKyuM,kBAAkBiiB,kCAAkCF,GAC5EC,GACAzwN,KAAKksN,qBAAqB,CACtBxjM,MAAO+nM,EAAiB1oM,OAAO,SAC/BokM,cAAesE,EACf3rM,WAAY2rM,EAAiBzqM,WAC7BilM,YAAawF,EAAiB5K,4BAItC7lN,KAAK8sN,aAAa9sN,KAAK6tN,mBAAoB7tN,KAAK6tN,mBAAmBhI,uBAG3EsG,EAAc9mN,GAAG,eAAgBkrN,GACjCpE,EAAcpkM,OAAOsiC,EAAYxoD,GACjC7B,KAAKmwN,yCAAyC9lK,IAElD,kCAAkCohC,EAAU5pF,GACxC,IAAI2hN,EAAY/3H,EAAS5vF,MAAM,KAC3BwuD,EAAa8kJ,GAA0B1jH,GAC3C,GAAI,UAAYphC,GAAcm5J,EAAU5pN,OAAS,EAAG,CAChD,IAAI+1M,EAAW3vM,KAAKwvN,aAAahM,GAC7B2I,EAAgBnsN,KAAKyuM,kBAAkBiiB,kCAAkC/gB,GAC7E,GAAIwc,EAAe,CACfnsN,KAAKyuM,kBAAkBigB,mBAAmBvC,EAActD,uBACxD,IAAIngM,EAAQ1oB,KAAKytN,cAAc5rN,GAAO,EAAO8tM,GAE7C,OADA3vM,KAAK2wN,4BAA4BxE,EAAe9hK,EAAY3hC,EAAOinL,IAC5D,QAER,GAAI6T,EAAU5pN,OAAS,EAAG,CAC7B,IAAIg3N,EAAepN,EAAU5pN,OAAS,EAClCi3N,EAAY7wN,KAAKwvN,aAAahM,EAAUngM,MAAM,EAAGutM,IACjDE,EAAiB9wN,KAAKyuM,kBAAkBiiB,kCAAkCG,GAC9E,GAAIC,EAAgB,CAChB,IAAI1oI,EAAiB8mH,GAAkBsU,EAAUoN,GAAevmK,GAChE,GAAI,eAAiBA,GACbymK,EAAe/oM,OAAOqgE,KAAoBvmF,EAC1C,OAAO,EAGf,GAAI,YAAcwoD,EAAY,CAC1B,IAAI0mK,EAAY/wN,KAAK+nB,OAAOmnL,GAAkB2hB,EAAW,UACzD,GAAIE,GAAaA,EAAUn3N,OAAQ,CAC/B,IAAIo3N,EAAqBF,EAAe/oM,OAAO,SAC/CgpM,EAAU7vN,QAAQ,CAAC6F,EAAM3F,KACrB,IAAI6vN,EAAaD,EAAmB5vN,GACpC6vN,EAAWpjK,aAAe9mD,EAAK8mD,gBAK3C,OADA7tD,KAAK2wN,4BAA4BG,EAAgB1oI,EAAgBvmF,EAAOgvN,IACjE,GAGf,OAAO,GAEX,mCAAmClhB,EAAU3+L,GACzC,IAAI/R,EASJ,OARAe,KAAKigE,cACL,eAAKjvD,EAAS,CAACq5C,EAAYsyC,KAEvB,GADA19F,EAASe,KAAK8vN,kCAAkC5gB,GAAkBS,EAAUtlJ,GAAasyC,IACpF19F,EACD,OAAO,IAGfe,KAAKkgE,YACEjhE,GAEXuwN,aAAc,SAAShM,GACnB,IACI/nN,EADAk0M,EAAW6T,EAAU,GAEzB,IAAK/nN,EAAI,EAAGA,EAAI+nN,EAAU5pN,OAAQ6B,IAAK,CACnC,IAAK,IAAM+nN,EAAU/nN,GAAGsJ,OAAO,0BAG3B,MAFA4qM,GAAY,IAAM6T,EAAU/nN,GAKpC,OAAOk0M,GAEXgU,2BAA4B,SAAS9kK,GACjC7+C,KAAKuhE,sBAAsB,qBAA3BvhE,CAAiD6+C,IAErDqwK,oCAAqC,SAAS/oN,GAC1C,IAAIxC,EAAO3D,KACPmG,GAAQ,eAASA,IACjB,eAAKA,GAAM,SAAUiL,EAAWvP,GAC5B8B,EAAKggN,2BAA2B,CAC5BvyM,UAAWA,EACXvP,MAAOA,QAKvBwhN,kBAAmB,SAASjyM,EAAWvP,GACnC,GAAI,eAAU7B,KAAK+nB,OAAO,aAAc,CACpC,IAAIiF,EAAShtB,KAAKyoN,UAAUr3M,GAE5B,GADApR,KAAK+nB,OAAO,YAAc3W,EAAWvP,GACjCmrB,EAAQ,CACR,IAAIsvL,EAActvL,EAAOjF,OAAO,SAC5Bu0L,IAAgBz6M,GAChBmrB,EAAOjF,OAAO,QAASlmB,MAKvCmuN,uBAAwB,SAAStnM,GAC7B,IAAIsuC,EAAWh3D,KAAK+nB,OAAO,YACvB9oB,EAAS,GAmBb,OAlBKypB,GAAS,eAAUsuC,IACpB,eAAKA,GAAU,SAAU5lD,GACrBnS,EAAOgE,KAAK,CACRmO,UAAWA,OAInBsX,GACA,eAAKA,GAAO,SAAUtnB,EAAO2F,GACrB,eAASA,GACT9H,EAAOgE,KAAK8D,GAEZ9H,EAAOgE,KAAK,CACRmO,UAAWrK,OAKpB9H,GAEXiyN,gBAAiB,SAASlqN,EAAO0hB,GAC7B,IAIIyoM,EAJAxtN,EAAO3D,KACPoxN,EAAa,eAASpqN,GAASA,EAAQrD,EAAK0tN,eAAerqN,GAC3Do/E,EAAYgrI,EAAWhrI,UACvBkrI,EAAYF,EAAWE,UAsB3B,OApBI5oM,EAAM9uB,QACN,eAAK8uB,GAAO,SAAUtnB,EAAO2F,GACzB,IAAIyxD,EAAWzxD,EAAKyxD,SACpB,GAAI84J,EAAU13N,OAAQ,CAClB,IAAIqvF,EAAOqoI,EAAUjuM,QACrBtc,EAAOpD,EAAK4tN,oBAAoBtoI,EAAM7C,EAAWr/E,QAC9C,GAAI,UAAYyxD,IAAczxD,EAAKG,UAAWH,EAAKnF,MAAS,WAAa42D,IAAazxD,EAAKnF,KAAM,CACpG,IAAI4vN,EAAgB7tN,EAAK8tN,iBAAiBj5J,GAC1CzxD,EAAK2hB,MAAQ/kB,EAAKqsN,uBAAuBjpN,EAAK2hB,OAC9C3hB,EAAOpD,EAAKutN,gBAAgB,CACxB9qI,UAAWA,EACXkrI,UAAWA,GACZvqN,EAAKyqN,IAEZ,GAAIviB,GAAyCloM,EAAMq/E,GAE/C,OADA+qI,EAAapqN,GACN,KAIZoqN,GAEXE,eAAgB,SAASrqN,GACrB,IAAIo/E,EAAYp/E,EACZ0qN,EAAiBtrI,EAAU9nF,QAAQ,KACnCqzN,EAAa,GACjB,OAAQ,IAAMD,EACVC,EAAW1uN,KAAKmjF,EAAU7jE,OAAO,EAAGmvM,IACpCtrI,EAAYA,EAAU7jE,OAAOmvM,EAAiB,GAC9CA,EAAiBtrI,EAAU9nF,QAAQ,KAEvC,MAAO,CACH8nF,UAAWA,EACXkrI,UAAWK,EAAWv7H,YAG9Bm7H,oBAAqB,SAAStoI,EAAM7C,EAAWr/E,GAC3C,IAGI9H,EAHAu5D,EAAWzxD,EAAKyxD,SAChBg5J,EAAgBxxN,KAAKyxN,iBAAiBj5J,GACtCo5J,EAAqB,UAAYp5J,GAAY,WAAaA,GAAYzxD,EAAK8nD,MAE/E,EAAG,CACC,IAAI+iK,EAqBA,MApBA,IAAIhwN,EAAOmF,EAAKnF,MAAQmF,EAAKG,SAAWH,EAAK8nD,MACzCgjK,EAAkB,eAAUjwN,GAC5BkwN,EAAoB9iB,GAAqBptM,GACzCmwN,OAAW,EAKf,GAJAhrN,EAAKyqN,GAAiBxxN,KAAKgwN,uBAAuBjpN,EAAKyqN,IACnDK,IACAE,EAAW9oI,EAAKh3D,QAEfg3D,EAAKrvF,SACNqF,EAASe,KAAKkxN,gBAAgB9qI,EAAWr/E,EAAKyqN,IAC1CvyN,GACA,QAGH4yN,GAAmBA,GAAmBC,IAAsBC,IACzD9oI,EAAKrvF,SACLqF,EAASe,KAAKgyN,0BAA0B/oI,EAAM7C,EAAWr/E,EAAKyqN,WAMrEvoI,EAAKrvF,SAAW,eAAUqF,IACnC,OAAOA,GAEXwyN,iBAAkB,SAASj5J,GACvB,MAAO,WAAaA,EAAW,OAAS,SAE5Cw5J,0BAA2B,SAAS/oI,EAAM7C,EAAW19D,GACjD,IACIzpB,EADA0E,EAAO3D,KAWX,OATA,eAAK0oB,GAAO,SAAUtnB,EAAOu9D,GAEzB,GADA1/D,EAAS0E,EAAK4tN,oBAAoBtoI,EAAK5lE,QAAS+iE,EAAWznB,GACvD1/D,EACA,OAAO,KAGVA,IACDA,GAAS,GAENA,GAEX8wN,kBAAmB,SAAShpN,EAAMghB,EAAQlmB,GAClC,eAASkF,KACTA,EAAKghB,GAAUlmB,IAGvBi5H,kBAAmB,WACf,IAAIg3E,EAAsB9xM,KAAK4sN,0BAC3B5sN,KAAK0sN,0BAA4B5a,IAC7B9xM,KAAKiyN,mBAAmBjyN,KAAK0sN,wBAAyB5a,KACtD9xM,KAAK2sN,oBAAsB7a,EAC3B9xM,KAAKgoH,WACLhoH,KAAK2sN,yBAAsB,GAE/B3sN,KAAK0sN,wBAA0B5a,IAGvCmgB,mBAAoB,SAASC,EAAeC,GACxC,IAAIC,GAAY,EAOhB,OANA,eAAKpyN,KAAKyqN,wBAAwB,SAAUrpN,EAAO2F,GAC/C,GAAIA,EAAK+vD,iBAAiBo7J,KAAmBnrN,EAAK+vD,iBAAiBq7J,GAE/D,OADAC,GAAY,GACL,KAGRA,GAEXpqG,SAAU,WACN,IAAIqqG,EAAiB,IAAM,GAAsB,YAAc,GAAsB,YACrF,OAAavlM,QAAQ9sB,KAAKgmB,WAAWiB,KAAKorM,GAAiB,UAC3DryN,KAAKC,YAETsvN,aAAc,WACVvvN,KAAKyuM,kBAAkBr9B,MAAK,SAAUryK,EAAGgkM,GACjC,eAAUA,EAAgBJ,iBAAmB,QAAO2vB,SAASvvB,EAAgBJ,kBAC7EI,EAAgBJ,eAAet2G,QAC/B02G,EAAgBJ,eAAe56K,OAAO,WAAW,OAGzD,QAAiBsiM,WAAWrqN,KAAKusN,wBAErCgG,YAAa,SAASpsN,EAAMtE,EAAO2wN,GAC/B,IAAI7uN,EAAO3D,KACPkuC,EAAQskL,EAAgB3wN,EAAQsE,EAChC,eAAS+nC,GACT,eAAKA,GAAO,SAAU98B,EAAWo2M,GAC7B7jN,EAAK4uN,YAAYC,EAAgBrsN,EAAO,IAAMiL,EAAYA,EAAWo2M,EAAY,eAASA,OAEvF,eAASrhN,IAChBxC,EAAK0/M,kBAAkBl9M,EAAMtE,IAGrCulK,mBAAoB,SAAStsK,EAAKwoH,GAC9BtjH,KAAKC,SAASnF,EAAKwoH,GACnBtjH,KAAKyuM,kBAAkBr9B,MAAK,SAAUryK,EAAGgkM,GACjC,eAAUA,EAAgBJ,iBAC1BI,EAAgBJ,eAAev7B,mBAAmBtsK,EAAKwoH,OAInElB,aAAc,WACV,OAAOpiH,KAAKgmB,WAAWiB,KAAK,IAAM+wL,GAA2B,eAAev+H,SAEhFg3B,mBAAoB,aACpBq+G,iCAAkC,WAC1B9uN,KAAK+uN,+BACLtlJ,aAAazpE,KAAK+uN,8BAClB/uN,KAAK+uN,kCAA+B,IAG5CjwF,SAAU,WACN9+H,KAAK8uN,mCACL,QAAiBxE,YAAYtqN,KAAKusN,uBAClCvsN,KAAKC,YAETwyN,YAAa,WACTzyN,KAAKuvN,gBAET/G,WAAY,SAASriN,EAAMtE,GACvB7B,KAAKuyN,YAAYpsN,EAAMtE,IAE3B4mN,UAAW,SAASr3M,GAChB,OAAOpR,KAAKyuM,kBAAkBia,8BAA8Bt3M,IAAcpR,KAAKyuM,kBAAkBka,yBAAyBv3M,IAE9Hi9J,UAAW,SAASzsK,GAChB,OAAO5B,KAAKyuM,kBAAkBka,yBAAyB/mN,IAE3DquH,iBAAkB,WACd,IAAItsH,EAAO3D,KACP09D,EAAW,IAAI,cAQnB,OAPI/5D,EAAKqqG,YACLrqG,EAAKqqG,YAAYx6B,SAASrmD,MAAK,WAC3BuwC,EAASg1J,YAAY/uN,MAGzB+5D,EAASg1J,YAAY/uN,GAElB+5D,EAASptC,WAEpBgsG,WAAY,SAASxtI,EAAIi5B,EAAQlmB,GAC7B,IAAI6mB,EAAQ1oB,KAAKgwN,uBAAuBhwN,KAAK+nB,OAAO,UAChDhhB,EAAO/G,KAAKkxN,gBAAgBpiO,EAAI45B,GAChCugE,EAAOwmH,GAAY/mL,EAAO3hB,GAC9B,GAAKA,EAGL,OAAQ7G,UAAUtG,QACd,KAAK,EACD,OAAOmN,EACX,KAAK,EACD,IAAI4oN,EAAa3vN,KAAK4vN,2BAA2B7nM,EAAQhhB,EAAMlF,EAAOkF,EAAKghB,GAASkhE,GACpFjpF,KAAK+vN,kBAAkBhpN,EAAMghB,EAAQlmB,GACrC,IAAI4pF,EAAWyjH,GAAkBjmH,EAAMlhE,GAClC/nB,KAAK6vN,4BAA4BF,IAAgB3vN,KAAK8vN,kCAAkCrkI,EAAU5pF,IACnG7B,KAAK+nB,OAAO,QAASW,GAEzB,MACJ,QAGY,IAAIiqM,EAFZ,GAAI,eAAS5qM,GACT,IAAK/nB,KAAK4yN,mCAAmC3pI,EAAMlhE,GAE/C,eAAKA,EAAQ,CAACsiC,EAAYsyC,KACtB,IAAIgzH,EAAa3vN,KAAK4vN,2BAA2BvlK,EAAYtjD,EAAM41F,EAAa51F,EAAKsjD,GAAa4+B,GAClGjpF,KAAK+vN,kBAAkBhpN,EAAMsjD,EAAYsyC,GACpCg2H,GAAqB3yN,KAAK6vN,4BAA4BF,KACvDgD,GAAmB,KAG3BA,GAAoB3yN,KAAK+nB,OAAO,QAASW,KAK7D0xL,SAAU,WACN,OAAO,QAAiBgQ,cAAcpqN,KAAKusN,wBAE/CtF,UAAW,SAASrlN,GAChB,MAAO,MAAQ5B,KAAK+nB,OAAO,UAAY,KAAOnmB,GAAQ,IAAI,UAE9DykN,sBAAuB,WACnB,OAAOrmN,KAAK2sN,uBAGpB,eAAkB,SAAUnC,IACb,UCnkCA,MCmCXqI,KAA0B,QAAWC,oBACrCC,GAAuB,iBACvBC,GAAmB,aACnBC,GAAwB,kBACxBC,GAA0BL,GAAwB,gBAAkB,0BACpEM,GAAe,YACfC,GAA+B,yBAC/BC,GAAgBtsN,IAChB,IAAIusN,EACAxiN,EAAS/J,EAAK+J,OAClB,OAAO/J,EAAKwsN,mBAAqBxsN,EAAKsxD,WAAa,QAAUi7J,EAAmBxiN,EAAO87C,gBAAa,IAAW0mK,OAAmB,EAASA,EAAiBj7J,YAE5Jm7J,GAAmB,CAAC9qM,EAAO+qM,KAC3B/qM,EAAMxnB,QAAQ6F,IACNA,EAAK2hB,OAAS3hB,EAAK8mM,KACnB2lB,GAAiBzsN,EAAK2hB,OAAS3hB,EAAK8mM,KAAM4lB,GAE1CA,EAAS1sN,MAIV2sN,GAAyB,CAChCzuJ,UAAW,CACPJ,YAAa,CACT7gB,QAAS,CACL+b,KAAM,WACF//D,KAAK2zN,UAAY,KACjB3zN,KAAK4zN,wBAA0B,KAC/B5zN,KAAKC,SAASnB,MAAMkB,KAAME,YAE9B2zN,sBAAuB,WACnB,OAAO7zN,KAAK8zN,mBAAqB9zN,KAAK+zN,kBAE1CD,gBAAiB,WACb,IAAItjC,EAAWxwL,KAAK+nB,OAAO,gBAC3B,OAAOyoK,IAAa/C,IAExBsmC,eAAgB,WACZ,IAAIvjC,EAAWxwL,KAAK+nB,OAAO,gBAC3B,OAAOyoK,IAAahD,IAExBkF,4BAA6B,WACzB,IAAIshC,EAAgBh0N,KAAKi0N,eACzB,GAAIj0N,KAAK+zN,kBAAoBC,EAAe,CACxC,IAAI5jK,EAAapwD,KAAK+nB,OAAOilK,IACzBkK,EAAel3L,KAAKonB,gBAAgB2hF,iBAAiB34C,GACrD8jK,EAAoBl0N,KAAKypH,UAAUxzC,gBAAgBihH,GACvD,OAAOl3L,KAAKypH,UAAU0qG,+BAA+BD,EAAmBF,EAAcljN,QAE1F,OAAO9Q,KAAKC,SAASnB,MAAMkB,KAAME,YAErCg0L,oBAAqB,WACjB,OAAOl0L,KAAK6zN,wBAA0B7zN,KAAKi0L,0BAA4Bj0L,KAAKC,SAASnB,MAAMkB,KAAME,YAErGy8L,qBAAsB,WAClB,IAAI19L,EAASe,KAAKC,SAASnB,MAAMkB,KAAME,WACnC+xL,EAAiBjyL,KAAK+nB,OAAO,WACjC,OAAO/nB,KAAK6zN,yBAA0B5hC,EAAehiI,eAA0BhxD,GAEnFy1E,mBAAoB,SAAS71B,GACzB,GAAI7+C,KAAK8zN,kBAAmB,CACxB,IAAIM,EAAaC,EACbjkK,EAAapwD,KAAK+nB,OAAO,sBACzBusM,EAAa,OAASz1K,QAAQ,IAAWA,GAAgB,QAAUu1K,EAAcv1K,EAAKn2B,aAAU,IAAW0rM,OAA3D,EAAkFA,EAAY1mM,KAAK3mB,GAAQ,eAAaA,EAAKjM,IAAKs1D,IAClLmkK,GAAqB,QAAUF,EAAoBx1K,EAAKwyB,mBAAgB,IAAWgjJ,OAAoB,EAASA,EAAkBz6N,SAAWilD,EAAKwyB,YAAY74C,MAAMzxB,GAAQ,WAAaA,GACxL,YAAc83C,EAAKmyB,aAAcsjJ,GAAgBC,GAClDv0N,KAAKk5L,oBAGbl5L,KAAKC,SAASnB,MAAMkB,KAAME,YAE9BuxL,gBAAiB,WACb,IAAI+iC,EACAC,EAAe,QAAUD,EAAmBx0N,KAAK00N,kBAAe,IAAWF,OAAmB,EAASA,EAAiBzsM,OAAO,WACnI,GAAI/nB,KAAK8zN,mBAAqBW,EAC1B,OAAOz0N,KAAK20N,gBAGpBj9B,cAAe,SAAS7tH,GAChB7pE,KAAK8zN,kBACL9zN,KAAKi5L,eAAepvH,GAEpB7pE,KAAKC,SAASnB,MAAMkB,KAAME,YAGlC+8L,oBAAqB,WACjBj9L,KAAKC,SAASnB,MAAMkB,KAAME,WACtBF,KAAK8zN,mBACL9zN,KAAKo9L,kBAGboB,mBAAoB,SAAS3tL,EAAK2sL,EAAgBY,GAC9C,IAGYw2B,EAHRC,EAAW70N,KAAK2zN,UAChB3zN,KAAK8zN,kBACD9zN,KAAK+nB,OAAO,uBAEZ,QAAU6sM,EAAc/jN,EAAI2iE,cAAW,IAAWohJ,GAAuBA,EAAYpvM,KAAK3U,EAAKA,GAC/F7Q,KAAKypH,UAAUn7C,0BACRumJ,IACP70N,KAAK4zN,yBAA0B,IAAK,eAAUzmM,KAAK,IAAM0nM,EAASr4F,WAC7Dx8H,KAAKw/D,kBACNx/D,KAAK4zN,wBAAwBpkM,WAIrCxvB,KAAKC,SAASnB,MAAMkB,KAAME,YAGlC+4L,eAAgB,SAASpvH,EAAUirJ,GAC/B,IAAIC,EAAiB,YAAcl8G,GAAA,KAAQiK,UAAU/J,WACjDyzE,EAAe,OAAA/xL,EAAA,WAAO,CACtBo6D,WAAW,EACXnB,WAAYqhK,EACZ1hK,0BAA0B,EAC1B+3E,4CAA4C,EAC5Cr2E,aAAc,CAAC,CACXtL,QAAS,SACT6Q,SAAU,QACVG,OAAQ,WACRzpD,QAAShR,KAAKq5L,wBACf,CACC5vI,QAAS,SACT6Q,SAAU,QACVG,OAAQ,WACRzpD,QAAShR,KAAKs5L,2BAElBlmI,gBAAiBpzD,KAAKo5L,0BAA0BvvH,IACjD7pE,KAAK+nB,OAAO+kK,KACf,IAAK9sL,KAAK00N,WAAY,CAClB,IAAIM,EAAkB,eAAE,SAASztM,SAASvnB,KAAK+M,UAAUiZ,YAAYsB,SAAStnB,KAAK+mB,gBAAgBisM,KACnGhzN,KAAK00N,WAAa10N,KAAKooB,iBAAiB4sM,EAAiB,QAAO,CAC5D3hK,0BAA0B,EAC1B+3E,4CAA4C,IAEhDprI,KAAK00N,WAAWrvN,GAAG,SAAUrF,KAAKm5L,8BAClCn5L,KAAK00N,WAAWrvN,GAAG,QAASzB,IAGpB,IAAIqxN,GAFR,OAAanoM,QAAQlpB,EAAEmJ,UAAU6vE,WAAW31D,KAAKmmK,IAA4Br9G,IAAI,IAAIl+D,OAAOqhN,KAA0Bz5I,QAAS,SAC3Hq7I,KAEA,QAAUG,EAAkBj1N,KAAK2zN,iBAAc,IAAWsB,GAA2BA,EAAgBz4F,aAIjHx8H,KAAK00N,WAAW3sM,OAAOykK,GACvBxsL,KAAK00N,WAAWjqK,OAChBzqD,KAAKC,SAASnB,MAAMkB,KAAME,YAE9Bk5L,0BAA2B,SAASvvH,GAChC,IAAIh5D,EAAM7Q,KAAK+M,UAAUo6F,iBAAiBt9B,GACtC6F,EAAkB,CAClB7+D,IAAKA,EACLilB,OAAQjlB,EAAIilB,OACZ3kB,QAASN,EAAIM,QACbrW,IAAK+V,EAAI/V,IACT+uE,SAAUA,GAGd,OADA7pE,KAAKypH,UAAUh4C,gBAAgB/B,EAAiB7+D,GACzCsX,IACH,IAAI+sM,EAAel1N,KAAKm/L,sBACpBjzF,EAAalsG,KAAKooB,iBAAiB,eAAE,SAASb,SAASY,GAAY,SACvEnoB,KAAK20N,eAAiB,eAAEzoH,EAAWjjC,WACnCisJ,EAAal1N,KAAK20N,eAAgBjlJ,EAAiB,CAC/CylJ,aAAa,IAEjBn1N,KAAKypH,UAAUn7C,2BAGvB4qH,kBAAmB,WACf,IAAIrvH,EAAW7pE,KAAKi0L,0BACpB,GAAIpqH,GAAY,EAAG,CACf,IAAIurJ,EAAmBC,EACnBC,EAAmB,QAAUF,EAAoBp1N,KAAK00N,kBAAe,IAAWU,OAAoB,EAASA,EAAkBrtM,OAAO,aAC1I,QAAUstM,EAAoBr1N,KAAK00N,kBAAe,IAAWW,GAA6BA,EAAkBttM,OAAO,YAAa,MAChI/nB,KAAKi5L,eAAepvH,GAAU,QAC1B,IAAWyrJ,GACXt1N,KAAK00N,WAAW3sM,OAAO,YAAautM,KAIhDl4B,eAAgB,WACZ,IAAIm4B,EACJ,QAAUA,EAAoBv1N,KAAK00N,kBAAe,IAAWa,GAA6BA,EAAkBxtM,OAAO,WAAW,IAElIy4C,cAAe,SAAS3hB,GACpB,GAAI,YAAcA,EAAKj9C,MAAQ5B,KAAK6zN,wBAAyB,CACzD,IAAIpoI,EAAW5sC,EAAK4sC,SAChB,IAAMA,EAASntF,QAAQyuL,KACvB/sL,KAAKw1N,wBAAwB32K,GAC7BA,EAAK6hB,SAAU,GACR,IAAM+qB,EAASntF,QAAQwuL,MAC9B9sL,KAAKy1N,yBAAyB52K,GAC9BA,EAAK6hB,SAAU,GAGvB1gE,KAAKC,SAASnB,MAAMkB,KAAME,YAE9Bs1N,wBAAyB,SAAS32K,GAC9B,IAAI62K,EACJ,GAAI11N,KAAK+zN,iBAAkB,CACvB,IAAI78B,EAAel3L,KAAKi0L,0BACpBiD,GAAgB,GAChBl3L,KAAKonB,gBAAgB+5E,YAAY,CAC7BnwB,WAAY,SACZ+yB,WAAY,CAACmzF,UAGd,QAAUw+B,EAAoB11N,KAAK00N,kBAAe,IAAWgB,GAAqBA,EAAkB3tM,OAAO,YAAc,IAAM82B,EAAK4sC,SAASntF,QAAQyuL,KAC5J/sL,KAAKk5L,qBAGbu8B,yBAA0B,SAAS52K,GAC/B,IAAI82K,EAAY31N,KAAK00N,WACrB,GAAIiB,EAAW,CACX,IAAIC,EAAkB/2K,EAAK4sC,SAASpoE,MAAMypK,GAA0BlzL,OAAS,GACzEg8N,EACAD,EAAU5tM,OAAO6tM,EAAiB/2K,EAAKh9C,OAEvC8zN,EAAU5tM,OAAO82B,EAAKh9C,SAIlCg0N,uBAAwB,SAASC,EAAmB/uN,EAAMgvN,EAAqB5tM,EAAW6tM,GACtF,IAAIryN,EAAO3D,KACP8kB,EAAa,eAAEqD,GACfrX,EAAS/J,EAAK+J,OACdunD,EAAag7J,GAActsN,GAC3BwuJ,EAAU,OAASugE,QAAqB,IAAWA,OAAoB,EAASA,EAAkBjlN,IAAI1K,KACtGkqD,EAAO0lK,EAAoBhpN,WAE3B0rD,MAAOA,EACPmlJ,UAAWA,EACX1mJ,UAAWA,GACX6+J,EAAoB1uN,eAAiB,GACrCslE,EAAc,OAAAlyE,EAAA,WAAO,GAAIq7N,EAAmB,CAC5C3vN,KAAMovJ,EACNxnF,YAAa,KACby6G,UAAU,EACVzhL,KAAMA,EACNjY,GAAIuhE,EAAK42J,UAAUlgN,EAAKnF,MAAQmF,EAAKqK,WACrCN,OAAQ,OAAArW,EAAA,WAAO,GAAIqW,EAAQ,CACvBunD,WAAYA,EACZhxD,cAAe,OAAA5M,EAAA,WAAO,CAClBg+D,MAAOA,EACPmlJ,UAAWA,EACX1mJ,UAAWA,GACZpmD,EAAOzJ,cAAeN,EAAKM,iBAElCud,YAAa9T,EAAO1P,MACpB8mI,UAAW8tF,GAAcllN,EAAO26C,cAAgB,SAAS5pD,GACrD8B,EAAKo6L,iBAAiBpxH,EAAa9qE,MAG3C8qE,EAAY9qE,MAAQiP,EAAOoT,mBAAmBqxI,GAC9C,IAAIpqG,EAAWnrD,KAAK8+L,yBAAyBt0K,KAAKxqB,KAAnCA,CAAyC2sE,EAAa77D,GAIrE,OAHA9Q,KAAKypH,UAAUj6C,eAAe1qD,EAAYqmC,EAAUwhB,IAAe7nD,EAAWmI,QAAQ,iBAAY4N,UAAUjhC,QAAQuzB,KAAK,KACrHntB,KAAKypH,UAAUl+C,YAAYzmD,EAAY6nD,KAEpCA,GAEXspJ,sBAAuB,SAAStpJ,EAAa5lE,GACzC,IAAI+J,EAAS9Q,KAAK+M,UAAU8pE,aAAa9vE,EAAKqK,WAC9C,MAAO,CAACJ,EAASmX,KACb,IAAI+tM,EAAuBC,EACvBrxM,EAAa,eAAEqD,GACnB,QAAU+tM,GAAyBC,EAAmBxpJ,EAAY97D,KAAKhE,aAAU,IAAWqpN,GAAiCA,EAAsB1wM,KAAK2wM,GAAkB,WACtK,OAAOrlN,EAAO6V,SAASgmD,EAAY97D,IAAI1K,QACvC,KACA,IAAIiwN,EACA1tC,EAAiB5jK,EAAWmC,KAAK,cAAcwyD,QAC/Cq3H,EAAYpoB,EAAeviL,KAAK,eAChCkwN,EAAmB,QAAUD,EAAatlB,SAAc,IAAWslB,OAAa,EAASA,EAAWruM,SACxGjD,EAAWwxM,WAAWxuM,SACtB6kD,EAAc3sE,KAAK61N,uBAAuBrrM,KAAKxqB,KAAjCA,CAAuC2sE,EAAa5lE,EAAMiK,EAAS8T,GACjF4jK,EAAiB5jK,EAAWmC,KAAK,cAAcwyD,QAC/Cq3H,EAAYpoB,EAAeviL,KAAK,eAC5BkwN,IAAqBvlB,GACrBpoB,EAAe6tC,YAAY,CACvB3oK,gBAAiByoK,EAAiBzoK,gBAClCoK,gBAAiBq+J,EAAiBr+J,gBAClCopJ,WAAYiV,EAAiBjV,eAIzCz0I,EAAc3sE,KAAK61N,uBAAuBrrM,KAAKxqB,KAAjCA,CAAuC2sE,EAAa5lE,EAAMiK,EAAS8T,KAGzF0xM,mBAAoB,SAASC,GACzB,IAAIC,EACAC,EAAkB,QAAUD,EAAwB12N,KAAK42N,kCAA+B,IAAWF,OAAwB,EAASA,EAAsBlxM,KAAKxlB,KAAMy2N,GACrKI,EAAoB72N,KAAK+nB,OAAO,8BAChC+uM,EAAoB92N,KAAK+mB,gBAAgBgsM,IACzCrqM,EAAQ1oB,KAAK+nB,OAAO,sBACpBwrM,EAAqB,GACzB,GAAK7qM,EAaD8qM,GAAiB9qM,EAAO3hB,IACpB,IAAI41M,GAAU,OAAS51M,QAAQ,IAAWA,OAAO,EAASA,EAAKnF,QAAU,OAASmF,QAAQ,IAAWA,OAAO,EAASA,EAAKqK,WACtHurM,IACA4W,EAAmB5W,KAAY51M,EAAKsxD,kBAhBpC,CACR,IAAI/qC,EAAUttB,KAAKihE,cAAc,WAAWwG,aAC5C/+C,EAAQ,GACR,eAAK4E,GAAS,SAAUvuB,EAAG+R,GAClBA,EAAOo8C,QAAWp8C,EAAOrS,MAC1BiqB,EAAMzlB,KAAK,CACP6N,OAAQA,EACRlP,KAAMkP,EAAOlP,KACbwP,UAAWN,EAAOM,eAYlC,OAAO,OAAA3W,EAAA,WAAO,GAAIk8N,EAAiB,CAC/BjuM,MAAOA,EACPkiM,OAAQ,MAAQ,IAAI,QACpB7zJ,cAAehwD,IACX,IAAI+J,EACA6rM,EAAS51M,EAAKnF,MAAQmF,EAAKqK,UAI/B,IAHIrK,EAAK+J,QAAU6rM,KACf7rM,EAAS/J,EAAK+J,QAAU9Q,KAAKysE,mBAAmBoK,aAAa9vE,EAAKnF,KAAO,QAAUmF,EAAKnF,KAAO,aAAemF,EAAKqK,YAEnHN,EAAQ,CAGR,GAFA/J,EAAK0xD,MAAQ1xD,EAAK0xD,OAAS,GAC3B1xD,EAAK0xD,MAAMl8D,KAAOwK,EAAK0xD,MAAMl8D,MAAQuU,EAAO5J,QACxC,YAAc4J,EAAOsT,eAAY,IAAWrd,EAAK0xD,MAAM9O,QAAS,CAChE,IAAIuN,EAAYl3D,KAAK+nB,OAAO,0BACxB,aAAemvC,GAAa,WAAaA,IACzCnwD,EAAK0xD,MAAM9O,SAAU,GAG7B5iD,EAAKokD,SAAWpkD,EAAKokD,UAAYnrD,KAAKi2N,sBAAsBQ,EAAe1vN,GAC3EA,EAAK+J,OAASA,EACd/J,EAAKwsN,mBAAqBA,EAAmB5W,GACzC7rM,EAAO87C,UACP,OAAAnyD,EAAA,WAAOsM,EAAM+J,EAAO87C,eAEpB,IAAW7lD,EAAKwxD,YAAcznD,EAAO88C,kBACrC7mD,EAAKwxD,WAAaznD,EAAO88C,gBAAgBlgC,MAAK,SAAUotL,GACpD,MAAO,aAAeA,EAAKr8M,QAE/BsI,EAAK6mD,gBAAkB,IAE3B,IAAIysE,GAAc,eAAUtzH,EAAK4iD,UAAW5iD,EAAK4iD,SAC5C3pD,KAAKi0N,gBAAkB55F,IACxBr6H,KAAKi0N,eAAiBltN,GAG9B,OAAS8vN,QAAqB,IAAWA,GAA6BA,EAAkBrxM,KAAKxlB,KAAM+G,GACnGA,EAAKikD,SAAW,eAASjkD,EAAKikD,UAAYjkD,EAAKikD,SAAW,IAAM8rK,EAAoBA,MAIhG33B,oBAAqB,WACjB,MAAO,CAACr6K,EAAY2xM,EAAezlN,KAC/B,IAAI2lN,EAAkB32N,KAAK+nB,OAAOglK,IAC9BgqC,EAAsB/2N,KAAKw2N,mBAAmBC,GAC9CO,EAAiB,eAAE,SAASzvM,SAASzC,GACrCqwM,EAAc,OAASnkN,QAAW,IAAWA,OAAU,EAASA,EAAQmkN,YAM5E,GALAn1N,KAAKi0N,oBAAiB,EAClBkB,GACA6B,EAAe1vM,SAAStnB,KAAK+mB,gBAAgBksM,KAEjDjzN,KAAK2zN,UAAY3zN,KAAKooB,iBAAiB4uM,EAAgB,GAAM,OAAAv8N,EAAA,WAAO,GAAIk8N,EAAiBI,KACpF5B,EAAa,CACd,IAAI8B,EAAoB,eAAE,SAAS3vM,SAAStnB,KAAK+mB,gBAAgBqsM,KAA+B7rM,SAASzC,GACzG9kB,KAAKooB,iBAAiB,eAAE,SAASb,SAAS0vM,GAAoB,cAAQj3N,KAAKq5L,wBAC3Er5L,KAAKooB,iBAAiB,eAAE,SAASb,SAAS0vM,GAAoB,cAAQj3N,KAAKs5L,0BAE/Et5L,KAAK2zN,UAAUtuN,GAAG,eAAgB,KAC9B,IAAI6xN,EACJl3N,KAAKypH,UAAUn7C,yBACf,QAAU4oJ,EAAoBl3N,KAAK00N,kBAAe,IAAWwC,GAA6BA,EAAkB16F,cAIxH26F,YAAa,WACT,OAAOn3N,KAAK2zN,WAEhBr0J,eAAgB,WACZ,IAAI83J,EACJ,QAAUA,EAAwBp3N,KAAK4zN,+BAA4B,IAAWwD,GAAiCA,EAAsB5nM,WAEzI+sK,iBAAkB,WAGV,IAAI86B,GAFRr3N,KAAKC,SAASnB,MAAMkB,KAAME,WACtBF,KAAK8zN,qBAEL,QAAUuD,EAAoBr3N,KAAK00N,kBAAe,IAAW2C,GAA6BA,EAAkB7sK,SAGpH6qI,qBAAsB,SAAStuL,EAAMmG,GACjC,IACIzO,KAAMA,GACNyO,EACAlN,KAAK8zN,mBAAqBr1N,IAASmuL,KACnC7lL,EAAK4iD,SAAU,GAEnB3pD,KAAKC,SAASnB,MAAMkB,KAAME,YAE9B24L,8BAA+B,SAAS90F,EAAYl6B,GAChD,IAAIiqJ,EAAkB9zN,KAAK8zN,kBAC3B9zN,KAAKC,SAAS8jG,EAAYl6B,EAAUiqJ,GAChCA,GACA9zN,KAAKi5L,eAAepvH,KAIhC1jE,KAAM,CACFs6L,gBAAiB,SAAS15L,GAClB/G,KAAKugM,mBAAmBwzB,mBACxBhtN,EAAKoK,QAAU,WAGvBk0F,yBAA0B,SAASb,EAASE,EAASO,EAAiBC,GAClE,IAAI,IAAUA,IAAgBR,EAAQv3B,YAAantE,KAAKugM,mBAAmBwzB,iBAG3E,OAAO/zN,KAAKC,SAASnB,MAAMkB,KAAME,cAI7C6kE,MAAO,CACH74C,SAAU,CACN2mD,mBAAoB,SAAS3L,EAAOl2D,GAC5B,SAAWA,EAAQG,SAAWnR,KAAKugM,mBAAmBuzB,oBAAqB,IAAU9iN,EAAQH,IAAI84C,SAGrG3pD,KAAKC,SAASnB,MAAMkB,KAAME,YAE9B+1E,gBAAiB,SAASpM,GACtB,IAAIuL,EAAgBp1E,KAAKC,SAAS4pE,GAC9BihC,EAAoB9qG,KAAKugM,mBACzBs0B,EAAW/pH,EAAkBqsH,cAC7BG,EAAmBxsH,EAAkBopF,sBACzC,OAAIojC,IAAqBztJ,GAAYuL,GAAiBy/I,EAC3CA,EAAS7uM,WAAWiB,KAAK,IAAMjnB,KAAK+mB,gBAAgBgsM,IAAwB,MAAQI,IAExF/9I,GAEXmB,uBAAwB,SAAS7O,EAAQmC,EAAUwM,GAC/C,IAAIihJ,EAAmBt3N,KAAKugM,mBAAmBrM,sBAC/C,GAAIojC,IAAqBztJ,GAAY,eAASwM,GAAmB,CAC7D,IAAIvlE,EAAS9Q,KAAKysE,mBAAmBoK,aAAaR,GAClD,OAAOr2E,KAAKm0N,+BAA+BzsJ,EAAQ52D,GAEvD,OAAO9Q,KAAKC,SAASnB,MAAMkB,KAAME,YAErCi0N,+BAAgC,SAASzsJ,EAAQ52D,GAC7C,IAAI+8C,GAAgB,EAQpB,OAPA,eAAK6Z,GAAQ,SAAUtmE,EAAO2sE,GAC1B,IAAIhnE,EAAO,eAAEgnE,GAAa9mD,KAAK,0BAA0B9gB,KAAK,gBAC9D,GAAI,OAASY,QAAQ,IAAWA,GAAQA,EAAK+J,QAAUA,GAAU/J,EAAK+J,OAAO1P,QAAU0P,EAAO1P,MAE1F,OADAysD,EAAezsD,GACR,KAGRysD,GAEX0pK,YAAa,SAASpxJ,GAClB,IAAIqxJ,EAAc,WAAarxJ,EAAWh1D,SAAW,mBAAqBg1D,EAAWh1D,QACjFsmN,EAAiB,SAAWtxJ,EAAWh1D,SAAWnR,KAAKugM,mBAAmBuzB,kBAC9E,OAAQ0D,GAAeC,IAAmBtxJ,EAAWp/D,MAEzDwkE,YAAa,SAASrE,EAAOf,GACrBnmE,KAAKu3N,YAAYpxJ,GACjBnmE,KAAK8hM,kBAAkB37H,EAAYe,GAEnClnE,KAAKC,SAASinE,EAAOf,QCnf7C,EAASV,eAAe,mBAAoBiuJ,IC6B5C,IAAI,GAAsB,gBACtBgE,GAAuB,gBACvBC,GAAgC,4BAChC,GAAoB,iBACpB,GAAY,SACZ,GAAsB,mBACtB,GAAiB,cACjBC,GAAc,iBACd,GAAiC,qBACjC,GAAqC,yBACrC,GAA6B,SAClB,IACX3yJ,UAAW,CACPJ,YAAa,CACT7gB,QAAS,CACL+b,KAAM,WACF,IAGQ83J,EACA7zJ,EAJJ8zJ,GAAsB93N,KAAKmwL,oBAC/BnwL,KAAKC,SAASnB,MAAMkB,KAAME,WACtB43N,KAGA93N,KAAK8yL,wBAA0B,KAC3B,IAAIilC,EACJ/zJ,EAAa,QAAU+zJ,EAAsB/3N,KAAKihE,cAAc,yBAAsB,IAAW82J,OAAsB,EAASA,EAAoB/zJ,cAExJhkE,KAAK+yL,0BAA4BnvL,GAAKi0N,EAAqB,eAAEj0N,EAAE0hB,QAC/DtlB,KAAKmwL,mBAAqBnwL,KAAKygE,cAAa,SAAU78D,GAClD,IAAI09D,EAAQ19D,EAAE09D,MACVT,EAAU,eAAES,EAAMh8C,QAClB0yM,EAAkB12J,EAAM4rH,IACxBngL,EAAY/M,KAAK+M,UACrB,KAAI8qN,IAAsBA,EAAmBjqO,GAAG,UAAaiqO,EAAmBjqO,GAAGizE,KAY/E7gE,KAAKi4N,0BAA4Bj4N,KAAK+3L,oBAAqB,CAC3D,IAAImgC,EAAgBC,EAAiBt3J,IAAYs3J,EAAiB,OAASH,QAAmB,IAAWA,OAAkB,EAASA,EAAgBhyM,YAChJoyM,IAAiBv3J,EAAQ5zC,QAAQ,iBAAY4N,UAAUjhC,OACvDy+N,EAAqBL,IAAoBA,EAAgBtyC,WAAasyC,IAAoBh4N,KAAK+M,UAC/FurN,IAAmBz3J,EAAQ5zC,QAAQ,IAAIpb,OAAO7R,KAAK+mB,gBAAgB2wM,MAAwB99N,OAC3FowL,EAAiBnpH,EAAQyF,SAAStmE,KAAK+mB,gBAAgB,KACvDwxM,EAAiBv4N,KAAKu4N,iBACrBv0J,GAAek0J,GAAkBluC,GAAoBsuC,GAAkBC,GAAkBv4N,KAAKmtE,cAAiBirJ,IAAgBC,GAChIr4N,KAAK2xL,eAAennK,KAAKxqB,KAAzBA,CAA+B6gE,GAhBvC,SAASs3J,EAAiBnyM,GACtB,IAAKA,EACD,OAAO,EAEX,IAAIwyM,EAAyBxyM,EAASiH,QAAQ,IAAIpb,OAAO8lN,KACrDc,EAAoB1rN,EAAUiZ,WAClC,OAAOwyM,EAAuB5+N,OAAS,GAAK,IAAM6+N,EAAkBxrM,QAAQurM,GAAwB5+N,WAc5G,OAAayL,GAAG,aAAW4pE,cAAetF,EAAA,KAAcq0E,GAAIh+I,KAAK8yL,yBACjE,OAAaztL,GAAG,aAAW4pE,cAAetF,EAAA,KAAcC,KAAM5pE,KAAK+yL,2BACnE,OAAa1tL,GAAG,aAAW4pE,cAAe,OAAgBjvE,KAAKmwL,sBAGvEooC,eAAgB,WACZ,OAAOv4N,KAAK+nB,OAAO,kBAAoBwlK,IAE3CmrC,gBAAiB,WACb,OAAO14N,KAAK+nB,OAAO,kBAAoBslK,IAE3C4qC,sBAAuB,WACnB,OAAOj4N,KAAKu4N,kBAAoBv4N,KAAK04N,mBAEzChnC,yBAA0B,SAASr3G,GAC/B,IAAIr0D,EAAWhmB,KAAK+M,UAAUiZ,WAC1B/mB,EAASe,KAAKmtE,YACdwrJ,GAA6B3yM,KAAcq0D,EAAeptD,QAAQjH,GAAUpsB,OAChF,GAAI++N,EAA2B,CAC3B,IAAI9rJ,EAAYwN,EAAeptD,QAAQ,IAAM,IAAgBrzB,OAC7D,GAAIizE,EAAW,CACX,IAAI3gD,EAAWlsB,KAAKmsB,QAAQ,YACxBysM,EAAcv+I,EAAeptD,QAAQ,IAAM,GAAY,QACvD48C,EAAW39C,EAAS49C,YAAY8uJ,EAAY1qM,UAC5CtJ,EAAcsH,EAAS+pD,gBAAgBpM,GAAUzoE,MAAMw3N,GACvDpsJ,EAAiBxsE,KAAKysE,mBAAmBC,oBACzCjhB,EAAe+gB,EAAe5nD,IAAgB4nD,EAAe5nD,GAAa6mC,aAC9ExsD,EAASA,IAAWwsD,IAAiBzrD,KAAKo0L,WAAWvqH,EAAUjlD,IAGvE,OAAO3lB,GAAUe,KAAKC,SAASnB,MAAMkB,KAAME,YAE/CyxL,eAAgB,SAASt3G,GACjBr6E,KAAK0xL,yBAAyBr3G,IAC9Br6E,KAAKuhM,iBAGbvI,mBAAoB,WAChB,GAAIh5L,KAAK+4L,kBAAoB/4L,KAAKi4N,wBAAyB,CACvD,IAAIY,EACAt+B,EAAkBv6L,KAAKs0L,6BACvBptH,EAAQ,QAAU2xJ,EAAkB74N,KAAKypH,iBAAc,IAAWovG,OAAkB,EAASA,EAAgBziJ,gBAAgBp2E,KAAKi0L,0BAA2BsG,GAC7JrzH,IAAUA,EAAMjgD,KAAK,UAAUrtB,OAC/BoG,KAAKq6L,kBAAkB,KACnBr6L,KAAK+3L,qBAAsB,GAC5B7wH,GAAO,GAEVlnE,KAAK+3L,qBAAsB,EAE/B/3L,KAAK+4L,kBAAmB,OAExB/4L,KAAKC,SAASnB,MAAMkB,KAAME,YAGlCitE,UAAW,WACP,GAAIntE,KAAKi4N,wBAAyB,CAC9B,IAAIrkC,EAAsB,eAAU5zL,KAAK+nB,OAAO,KAC5C+wM,EAA0B,eAAU94N,KAAK+nB,OAAO,KACpD,OAAO6rK,GAAuBklC,EAElC,OAAO94N,KAAKC,SAASnB,MAAMkB,KAAME,YAErC64N,4BAA6B,SAASl6K,GAClC,IAAIy0I,EAActzL,KAAKi0L,wBAAwBp1I,EAAK2sC,eACpD,GAAIxrF,KAAKi4N,0BAA4B,IAAM3kC,GAAe,eAAUz0I,EAAKh9C,QAAUg9C,EAAKh9C,QAAUg9C,EAAK2sC,cAAe,CAClH,IAAI5mE,EAAc5kB,KAAKysE,mBAAmBmJ,sBAAsB/2B,EAAKh9C,OACjEm3N,EAAiBh5N,KAAKysE,mBAAmBmJ,sBAAsB/2B,EAAK2sC,eACxExrF,KAAKi5N,2BAA2Br0M,EAAao0M,EAAgB1lC,KAGrEkD,QAAS,SAASb,EAAWj4H,GACzB,GAAI19D,KAAKu4N,kBAAoBv4N,KAAK8qH,aAAc,CAC5C,IAAIouG,EAAY,IAAI,cAQpB,OAPAl5N,KAAKkT,eAAeia,KAAK,KAChBntB,KAAK8qH,aAGNouG,EAAUr1L,OAAO,UAFjB7jC,KAAK8wD,OAAO6kI,GAAWxoK,KAAK+rM,EAAU1pM,SAASG,KAAKupM,EAAUr1L,UAK/Dq1L,EAAU5oM,UAErB,OAAOtwB,KAAKC,SAASnB,MAAMkB,KAAME,YAErCmhM,SAAU,SAASx3H,EAAUjlD,GACzB,OAAO5kB,KAAKm5N,UAAU,CAClBtvJ,SAAUA,EACVjlD,YAAaA,KAGrBu0M,UAAW,SAASnoN,GAChB,IACIooN,EADAl3M,EAAI,IAAI,cAMZ,OAJAliB,KAAK25L,iBAAiBz3K,EAAG,KACrBk3M,EAAap5N,KAAKq5N,cAAcroN,GAChC,kBAAKooN,GAAYjsM,KAAKjL,EAAEsN,SAASG,KAAKzN,EAAE2hB,eAErC,IAAWu1L,EAAaA,EAAal3M,EAAEoO,WAElD+oM,cAAe,SAASroN,GACpB,IAAIihF,EAAiBjyF,KAAKonB,gBACtBkyM,EAAwB,eAAUtoN,EAAQgoN,iBAAmB,eAAUhoN,EAAQsiL,cAE/E1uK,YAAaA,EACbilD,SAAUA,EACV/4D,OAAQA,EACR/J,KAAMA,GACN/G,KAAKu5N,8BAA8BvoN,GACnC4uE,EAAS,CACTz5E,KAAM,OAASY,QAAQ,IAAWA,OAAO,EAASA,EAAKZ,KACvDypD,QAAQ,EACR9+C,OAAQA,GAEZ,QAAI,IAAW/J,EAAKjM,IAApB,CAIA,GAAIgW,IAAW,SAAW/J,EAAKoK,SAAW,mBAAqBpK,EAAKoK,WAAapK,EAAKwuL,SAAWv1L,KAAKi4N,wBAAyB,CAC3H,IAAKqB,GAAyBt5N,KAAKo0L,WAAWvqH,EAAUjlD,GACpD,OAAO,EAEX,IAAIsyK,EAAertH,EAAWooB,EAAe2U,oBAC7C,OAAO,kBAAK5mG,KAAKw5N,gBAAgB3vJ,EAAUjlD,EAAa7d,IAAOomB,KAAKyiC,IAC5DA,GAGC5vD,KAAKy5N,iBAAiB75I,EAAQ74E,EAAM6d,EAAasyK,IAClDl3L,KAAK65L,gCAIjB,OAAO,EAjBH75L,KAAKonB,gBAAgB86E,UAAU,UAmBvCs3H,gBAAiB,SAAS3vJ,EAAUjlD,EAAa7d,GAC7C,GAAI/G,KAAKu4N,mBAAqBxxN,EAAKklB,UAAYjsB,KAAK8qH,aAAc,CAC9D,IAAI5oG,EAAI,IAAI,cAIZ,OAHAliB,KAAKkT,eAAe4+E,OAAO,KACvB5vE,EAAEsN,QAAQxvB,KAAK8qH,gBAEZ5oG,IAGf89C,cAAe,WACX,IAAIA,EAAgBhgE,KAAKC,SAASnB,MAAMkB,KAAME,WAC9C,OAAO8/D,EAAcnuD,OAAO,CAAC,WAAY,mBAE7C0nN,8BAA+B,SAASrsN,GACpC,IAUI6sL,GATAi/B,eAAgBA,EAChB1lC,YAAaA,EACb1uK,YAAaA,EACbilD,SAAUA,GACV38D,EACAy5D,EAAoB3mE,KAAKysE,mBACzBD,EAAiB7F,EAAkB+F,oBACnChkD,EAAQ1oB,KAAKonB,gBAAgBsB,QAC7B3hB,EAAO2hB,EAAMmhD,GAGbkwH,EADA,eAAUi/B,GACExsJ,EAAewsJ,GAEfh5N,KAAKs4L,iBAEhB,eAAUhF,KACXA,EAActzL,KAAKi0L,2BAEnB,eAASrvK,KACTA,EAAc+hD,EAAkBkQ,aAAajyD,EAAa,SAC1DA,EAAc+hD,EAAkBuH,gBAAgBtpD,IAEpD,IAAI9T,EAAS07D,EAAe5nD,GAC5B,MAAO,CACHm1K,UAAWA,EACXn1K,YAAaA,EACb0uK,YAAaA,EACbzpH,SAAUA,EACV/4D,OAAQA,EACR/J,KAAMA,IAGd0yN,iBAAkB,SAAS75I,EAAQ74E,EAAMwzL,EAAiBrD,GAItD,GAHKnwL,EAAKklB,WACN2zD,EAAO9kF,IAAMiM,EAAKjM,KAElBkF,KAAKi4L,gBAAgBr4G,GACrB,OAAO,EAMP,IAAIg5G,GAJR54L,KAAK0zL,WAAa1zL,KAAKonB,gBAAgBm0C,YACvCv7D,KAAK6zL,eAAe9sL,EAAKjM,KACzBkF,KAAKm4L,0BAA0BoC,GAC1B36G,EAAO9uE,OAAOy8C,mBAEfvtD,KAAKgxL,iBAAiB,CAClBl2L,IAAKiM,EAAKjM,IACVwpI,QAAS,QAAUs0D,EAAgB7xL,EAAKu9H,eAAY,IAAWs0D,EAAgBA,EAAgB7xL,EAAKZ,OAG5G,OAAO,GAEXo7L,cAAe,SAAS1F,EAASyF,GAC7B,IAAIriM,EAAS,oBACTy3L,EAAkB12L,KAAKi0L,0BAC3B,GAAIj0L,KAAKi4N,wBAAyB,CAC9B,IAAIv6J,EAAW,IAAI,cACnBz+D,EAAS,IAAI,cACbe,KAAK25L,iBAAiBj8H,EAAU,KAC5B19D,KAAK05N,mBAAmB79B,EAASnF,EAAiB4K,GAAqBxvG,OAAO7yF,EAAOuwB,WAG7F,OAAOvwB,EAAOqxB,WAElBopM,mBAAoB,SAAS79B,EAASnF,EAAiB4K,GACnD,IAAIrvG,EAAiBjyF,KAAKonB,gBACtBs2C,EAAW,IAAI,cACfptC,EAAUotC,EAASptC,UACvB,GAAItwB,KAAKu4N,kBAAoBv4N,KAAK8qH,cAC9B,IAAKw2E,EAQD,OAPAthM,KAAKkT,eAAeia,KAAKiV,IAChBpiC,KAAK8qH,aAIVptD,EAASluC,UAHLxvB,KAAKuhM,gBAAgBn/J,GAAO0vD,OAAOp0B,EAASluC,WAK7Cc,OAKX,GAFAtwB,KAAKmzL,mBACLnzL,KAAKkzL,uBACDwD,GAAmB,EAAG,CACtB,IAAI3yF,EAAa,CAAC2yF,GAClB12L,KAAKg9L,gCAAgCj5F,GAChC83F,GACD5pG,EAAekP,YAAY,CACvBnwB,WAAY,SACZ+yB,WAAYA,IAM5B,OADArmC,EAASluC,UACFc,GAEXqpM,yBAA0B,SAAS1sN,GAC/B,GAAIjN,KAAK04N,kBAAmB,CACxB,IAAIkB,EAAe55N,KAAKysE,mBAAmBC,oBAAoB9yE,OAC/DqT,EAAQ/L,QAAQw1F,IACZ,IACI57F,IAAKA,GACL47F,EACA7sB,EAAW7pE,KAAKonB,gBAAgB2hF,iBAAiBjuG,GACrD,IAAK,IAAM+uE,EACP,IAAK,IAAIjlD,EAAc,EAAGA,EAAcg1M,EAAch1M,IAClD5kB,KAAKypH,UAAUrzC,gBAAgBvM,EAAUjlD,GAAa4C,YAAY,QAMtFk2K,eAAgB,SAAS1sL,EAASnP,EAAOtF,GACrC,IAAIqhF,EAAe,eAAE5sE,EAAQ+8D,aAI7B,OAHI/tE,KAAK04N,wBAAqB,IAAW1nN,EAAQlW,KAC7CkF,KAAK+8L,eAAen/G,EAAc5sE,GAE/BhR,KAAKC,SAASnB,MAAMkB,KAAME,YAErCo8L,cAAe,WACX,IAAIrqG,EAAiBjyF,KAAKonB,gBACtBpnB,KAAKi4N,0BACDj4N,KAAK04N,mBACL14N,KAAK24L,oBAET1mG,EAAekP,eAEnBnhG,KAAKC,SAASnB,MAAMkB,KAAME,YAE9BsgE,cAAe,SAAS3hB,GACpB,IAAI4sC,EAAW5sC,EAAK4sC,SAChB,YAAc5sC,EAAKj9C,MAAQ6pF,IAAa,IACxCzrF,KAAK+4N,4BAA4Bl6K,GACjCA,EAAK6hB,SAAU,GAEf1gE,KAAKC,SAAS4+C,IAGtBo6K,2BAA4B,SAASr0M,EAAao0M,EAAgB1lC,GAC9D,IAAIhmK,EAAUttB,KAAKysE,mBAAmBC,oBAClC9nD,GAAe,GACf,eAAY,KACR5kB,KAAK85L,iBAAiBxsK,EAAQ1I,GAAc0I,EAAQ0rM,GAAiB1lC,MAIjFN,wBAAyB,SAASn0I,GAC9B,GAAI7+C,KAAKi4N,wBAAyB,CAC9B,IAIQ4B,EAJJj1M,EAAc5kB,KAAKs0L,6BACnBlB,EAAwBpzL,KAAKqzL,6BAC7BC,EAActzL,KAAKonB,gBAAgB2hF,iBAAiBlqD,EAAK2sC,eAAiB4nG,EAC9E,GAAI,eAAUv0I,EAAKh9C,QAAUg9C,EAAKh9C,QAAUg9C,EAAK2sC,cAE7C,QAAUquI,EAAwB75N,KAAKi5N,kCAA+B,IAAWY,GAAiCA,EAAsBr0M,KAAKxlB,KAAM4kB,EAAaA,EAAa0uK,QAGjLtzL,KAAKC,SAASnB,MAAMkB,KAAME,YAGlCixD,UAAW,SAAS0Y,GAChB,GAAI7pE,KAAKu4N,kBAAoBv4N,KAAKmtE,YAAa,CAC3C,IAAIlhD,EAAWjsB,KAAKonB,gBAAgBsB,QAAQmhD,GAAU59C,SAClD2xK,EAAS59L,KAAKonB,gBAAgByhF,iBAAiBh/B,GACnD7pE,KAAKuhM,cAAc,KAAMt1K,GAAU6lE,OAAO,KACtCjoB,EAAW7pE,KAAKonB,gBAAgB2hF,iBAAiB60F,GACjD59L,KAAKw6L,mBAAmB3wH,UAG5B7pE,KAAKC,SAASnB,MAAMkB,KAAME,YAGlCs6L,mBAAoB,SAAS3wH,GACrB7pE,KAAK04N,kBACL14N,KAAK26L,eAAe9wH,GAEpB7pE,KAAKC,SAASnB,MAAMkB,KAAME,YAGlCyzL,aAAc,SAAS/zG,GACnB,IACI09G,cAAeA,GACf,OAAS19G,QAAU,IAAWA,EAASA,EAAS,GAChDk6I,EAAmB95N,KAAK04N,mBAAqBp7B,GAAiB,YAAct9L,KAAK+nB,OAAO,kBACxF/nB,KAAKi4N,wBACD6B,IACA95N,KAAKkzL,uBACLlzL,KAAKmzL,oBAGTnzL,KAAKC,SAASnB,MAAMkB,KAAME,YAGlC02L,gBAAiB,SAASh3G,GACtB,QAAI5/E,KAAK04N,mBAGF14N,KAAKC,SAASnB,MAAMkB,KAAME,YAErC06L,gBAAiB,SAAS/wH,EAAU6sH,GAChC,IAAIzkG,EAAiBjyF,KAAKonB,gBAC1B,OAAIpnB,KAAK04N,mBACLzmI,EAAekP,YAAY,CACvBnwB,WAAY,SACZ+yB,WAAY,CAAC2yF,EAAiB7sH,MAE3B,IAAK,eAAUr6C,WAEnBxvB,KAAKC,SAASnB,MAAMkB,KAAME,YAErCg+L,eAAgB,SAASrtL,EAAKmtL,EAAgBI,GACtCp+L,KAAKi4N,wBACLj4N,KAAKy+L,sBAAsB5tL,EAAKmtL,EAAgBI,GAEhDp+L,KAAKC,SAASnB,MAAMkB,KAAME,YAGlC0xL,wBAAyB,SAAS7jI,EAAQ/8C,GACtC,GAAIhR,KAAKi4N,wBAAyB,CAC9B,IAAI8B,EAAc/5N,KAAK04N,kBACvB,OAAQ3qK,EAAOnsD,MACX,IAAK,OACL,IAAK,SACL,IAAK,OACD,OAAO,EACX,IAAK,SACD,OAAO5B,KAAKC,SAASnB,MAAMkB,KAAME,cAAgB65N,IAAgB/oN,EAAQH,IAAI0kL,SACjF,IAAK,WACD,OAAOwkC,GAAe/5N,KAAKgwD,cAAch/C,IAAYA,EAAQH,IAAI0kL,QACrE,QACI,OAAOv1L,KAAKC,SAASnB,MAAMkB,KAAME,YAG7C,OAAOF,KAAKC,SAASnB,MAAMkB,KAAME,YAErC85N,oBAAqB,WACjB,IAAI/5N,EAAWD,KAAKC,SAASnB,MAAMkB,KAAME,WACzC,OAAOD,GAAYD,KAAK04N,mBAE5Bn8B,iBAAkB,SAAStvL,GAEnB,IAAIgtN,EADJj6N,KAAKu4N,iBAED,YAAc,QAAU0B,EAAYhtN,EAAQ,UAAO,IAAWgtN,OAAY,EAASA,EAAUx7N,OAC7FuB,KAAKC,SAASnB,MAAMkB,KAAME,YAG1BF,KAAK04N,mBACL14N,KAAK25N,yBAAyB1sN,GAElCjN,KAAKC,SAASnB,MAAMkB,KAAME,aAGlC0/L,mBAAoB,SAASr0F,GACzB,IAAI0mF,EAAiBjyL,KAAK+nB,OAAO,YAAc,GAC3C83K,EAAc7/L,KAAKC,SAASnB,MAAMkB,KAAME,WAK5C,OAJK+xL,EAAehiI,eAAiBgiI,EAAeliI,aAAekiI,EAAejiI,gBAAkBhwD,KAAK04N,oBACrG74B,EAAY58L,KAAKjD,KAAKy/L,kBAAkBl0F,EAAa,OAAQ,eAAgB,KAC7Es0F,EAAY58L,KAAKjD,KAAKy/L,kBAAkBl0F,EAAa,SAAU,iBAAkB,MAE9Es0F,GAEX3D,mBAAoB,WAChB,IAAIg+B,EAKAx8J,EAJAtM,EAAUpxD,KAAKonB,gBAAgB+/E,iBAAiBnnG,KAAKg0L,mBACrDwE,EAAax4L,KAAKs4L,iBAClB/qI,EAAmB,OAASirI,QAAc,IAAWA,OAAa,EAASA,EAAWjrI,iBACtF4sK,EAAqBn6N,KAAKu4N,oBAAsB,OAASnnK,QAAW,IAAWA,GAAWA,EAAQnlC,UAMtG,OAJIkuM,GAAsB5sK,IACtBmQ,EAAW,IAAI,cACf19D,KAAKy9L,YAAY//H,IAEd19D,KAAKC,SAASnB,MAAMkB,KAAME,WAAW4xF,OAAO,QAAUooI,EAAax8J,SAAa,IAAWw8J,OAAa,EAASA,EAAW1qM,UAEvIk0E,aAAc,SAAS1yF,EAAS4uE,EAAQo+G,GACpC,IAAIm8B,EAAqBn6N,KAAKu4N,kBAAoBvnN,EAAQH,MAAQG,EAAQH,IAAIob,SAC1EshC,EAAmBv8C,EAAQF,OAAOy8C,iBAClC6wI,EAAuBptL,EAAQF,OAAOw8C,eAAiBt8C,EAAQF,OAAOk4E,oBACtEoxI,EAA2B7sK,IAAqBywI,GAAkBm8B,GAAsBn6N,KAAKq9L,gBAAkBr9L,KAAKo0L,WAAWpjL,EAAQ64D,SAAU74D,EAAQ4T,aAC7J,OAAIw1M,GACAp6N,KAAKq6L,yBACLr6L,KAAKk+L,eAAeltL,EAAQH,KAAK,EAAMutL,IAGpCp+L,KAAKC,SAASnB,MAAMkB,KAAME,YAErCq+L,iBAAkB,SAASvtL,EAASgtL,GAChC,IAAIzwI,EAAmBv8C,EAAQF,OAAOy8C,iBAClC4sK,EAAqBn6N,KAAKu4N,kBAAoBvnN,EAAQH,MAAQG,EAAQH,IAAIob,SAC9E,GAAIshC,IAAqBywI,EAAgB,CACrC,GAAIm8B,EAGA,OAFAn6N,KAAK6zL,eAAe7iL,EAAQH,IAAI/V,KAAK,GACrCkF,KAAKm4L,0BAA0BnnL,EAAQ4T,aAAa,GAC7C5kB,KAAKkT,eACT,GAAIlT,KAAK04N,kBAEZ,OADA16B,EAAiBh+L,KAAKm+L,eAAentL,EAAQF,QACtC9Q,KAAKC,SAAS+Q,EAASgtL,GAGtC,OAAOh+L,KAAKC,SAASnB,MAAMkB,KAAME,YAErCm1L,qBAAsB,SAAStuL,EAAMo2F,GACjC,IACIh3F,KAAMA,EACN1H,KAAMA,GACN0+F,EACAn9F,KAAK04N,mBAAqBj6N,IAAS,KACnCsI,EAAKZ,KAAO,gBAAwBY,EAAKZ,KAAMA,IAEnDnG,KAAKC,SAASnB,MAAMkB,KAAME,YAE9Bu7L,mBAAoB,SAASxuL,EAASokL,EAAWgpC,GAC7C,IAAIr6N,KAAK04N,mBAAsB2B,EAG/B,OAAOr6N,KAAKC,SAASnB,MAAMkB,KAAME,YAErCq7L,sBAAuB,WACnB,IAAIv7L,KAAK04N,kBAGT,OAAO14N,KAAKC,SAASnB,MAAMkB,KAAME,YAErC23L,yBAA0B,SAAShuH,GAC/B7pE,KAAKC,SAASnB,MAAMkB,KAAME,WAC1B,IAAIg3L,EAAertH,GAAY,EAAIA,EAAW,EAC1CjlD,EAAc5kB,KAAK0yL,8BACvB9tK,GAAe,GAAK5kB,KAAKqhM,SAASnK,EAActyK,MAI5DmgD,MAAO,CACH74C,SAAU,CACNigD,aAAc,WACV,IAAIhD,EAASnpE,KAAKC,SAASnB,MAAMkB,KAAME,WACnC4qG,EAAoB9qG,KAAKugM,mBAQ7B,OAPIz1F,EAAkBmtH,yBAA2Bj4N,KAAK+nB,OAAO,0BACzD,OAAa1iB,GAAG8jE,EAAQ,gBAAa5tB,GAAA,KAAU35C,KAAM,sBAAuB,WAAa,GAAoB,IAAK5B,KAAKygE,aAAa,KAC5HqqC,EAAkB39B,aAClB29B,EAAkBy2F,mBAIvBp4H,GAEX2C,WAAY,SAASj7D,GACjB,IAAI07D,EAAOvsE,KAAKC,SAASnB,MAAMkB,KAAME,WACrC,GAAI2Q,EAAK,CACL,IAAIi6F,EAAoB9qG,KAAKugM,mBACzBO,IAAiBjwL,EAAI0kL,QACrBzqF,EAAkB4tH,mBAClB53B,GAAgBv0H,EAAKjlD,SAASswM,IAGtC,OAAOrrJ,IAGfg/B,YAAa,CACTpkF,UAAW,WACP,IAAI8qK,EAAiBjyL,KAAKihE,cAAc,WAAWl5C,OAAO,WAC1D,OAAO/nB,KAAKC,YAAcgyL,IAAmBA,EAAehiI,eAAiBgiI,EAAejiI,gBAAkBiiI,EAAep2I,OAASwxI,QChlB1J,EAAS5nH,eAAe,mBAAoB,I,8BC+CxC60J,GAAmB,UACnBC,GAAuB,iBACvB,GAAkB,WAClBC,GAAwB,qBACxBC,GAA+B,kBAC/BC,GAA+B,4BAC/BC,GAAsB,mBACtB,GAAkB,YAClBC,GAA0B,uBAC1BC,GAA2B,wBAC3B,GAAgB,UAChB,GAAe,sBACfC,GAA2B,EAC3B,GAAgB,MAChB,GAAiB,OACjB,GAAkB,QAClB,GAAiB,OACjB,GAAkB,QAClB,GAAmB,gBACnBC,GAAmB,CAAC,GAAiB,IACrCC,GAAsB,cACtBC,GAAoB,CACpBC,MAAO,QACPC,QAAS,UACTjlL,QAAS,WAETklL,GAAwB,SACxBC,GAAwB,SACxBC,GAAuB,SACvBC,GAA0B,SAASt8N,GACnC,OAAO,eAAUA,IAAWA,IAAWq8N,IAEvCE,GAA6B,SAAS35N,EAAOgmE,GAC7C,YAAO,IAAWhmE,QAAS,IAAWA,GAASgmE,IAAeA,EAAW57C,UAEzEwvM,GAAuB,EAAQx5J,WAAW5C,QAAQ,CAClDU,KAAM,WACF//D,KAAKugM,mBAAqBvgM,KAAKihE,cAAc,WAC7CjhE,KAAKygE,aAAa,mBACbzgE,KAAK07N,kBACN17N,KAAK27N,uBAGb,sBACI37N,KAAK07N,iBAAmB,GACxB17N,KAAK47N,sBAAwB,IAEjCC,gBAAiB,SAASjrK,GACtB,IAAIkrK,EAAiB97N,KAAK+7N,mBAAmB,OAASnrK,QAAU,IAAWA,OAAS,EAASA,EAAO91D,KACpG,QAASghO,KAAoBA,EAAeE,WAEhDD,mBAAoB,SAASjhO,EAAK+nC,GAC9B,IAEIi5L,EAFAG,EAAU,eAAWnhO,GACrBohO,EAAkB,eAASD,GAiB/B,OAdIH,EADAI,EACiBl8N,KAAK07N,iBAAiBt9N,OAAO+H,GAAQ,eAAaA,EAAKrL,IAAKA,IAAM,GAElEkF,KAAK47N,sBAAsBK,IAE3CH,GAAkBj5L,IACnBi5L,EAAiB,CACbhhO,IAAKA,EACLgqJ,SAAS,GAEb9kJ,KAAK07N,iBAAiBz4N,KAAK64N,GACtBI,IACDl8N,KAAK47N,sBAAsBK,GAAWH,IAGvCA,GAEXK,gBAAiB,SAASL,EAAgBM,GACtC,IAAIpjB,EAMJ,OAJIA,EADAojB,EACcA,EAAkBpjB,aAAeojB,EAAkB9gB,YAAc,CAAC8gB,EAAkB9gB,YAEpFwgB,EAAe9iB,aAAe,GAEzCA,GAEXqjB,eAAgB,SAASP,EAAgBM,GACrC,IAAI1+J,EAAW,IAAI,cACf9M,EAAS5wD,KAAKugM,mBAAmB+7B,eAAe,OAASR,QAAkB,IAAWA,OAAiB,EAASA,EAAehhO,KAC/Hk+M,EAAch5M,KAAKm8N,gBAAgBL,EAAgBM,GACnDt3E,EAAUs3E,EAAoBA,EAAkBt3E,QAAUg3E,EAAeh3E,QACzE3+E,EAAa,CACb6yI,YAAaA,EACbl0D,QAASA,EACThqJ,IAAK81D,EAAO91D,IACZugM,QAASzqI,EAAOzqD,KAChBm+H,QAAStkI,KAAKugM,mBAAmBrP,YAAYtgI,EAAO91D,KACpDw1B,QAAS,KACTisM,UAAWv8N,KAAKw8N,6BAA6BxjB,IAQjD,OANAh5M,KAAKwhE,cAAc,kBAAmB2E,GACtC,kBAAK,yBAAYA,EAAW71C,UAAUwhE,QAAO,WACzCgqI,EAAeh3E,QAAU3+E,EAAW2+E,QACpCg3E,EAAeS,UAAYp2J,EAAWo2J,UACtC7+J,EAASluC,QAAQ22C,MAEdzI,EAASptC,WAEpBksM,6BAA8B,SAASxjB,GACnC,IAAIyjB,EAAsB,GAS1B,OARA,eAAKzjB,GAAa,SAAUj6M,EAAGu8M,GAC3B,IAAIxqM,EAASwqM,EAAWxqM,OACpB4rN,EAAsB5rN,QAAU,IAAWA,EAAOi8C,aAAej8C,EAAO28C,gBACxEkvK,EAAkB7rN,GAAUA,EAAO64C,QAClC2xJ,EAAWxK,UAAU9qL,WAAWkI,SAASt0B,QAAY+iO,IAAmBD,GACzED,EAAoBx5N,KAAKq4M,EAAWpzL,YAGrCu0M,EAAoBzgO,KAAK,OAEpCo+M,SAAU,SAASwiB,GACf,IAAI93E,GAAU,EACVh6C,EAAoB9qG,KAAKugM,mBACzB7iI,EAAW,IAAI,cACfm/J,EAAe,GACfrsC,EAAW1lF,EAAkBylF,cAEjC,GADAqsC,EAASA,GAAUpsC,IAAa,GAC5BxwL,KAAK88N,wBACL,OAAOp/J,EAASluC,SAAQ,GAAOc,UAGnC,GADAtwB,KAAK88N,yBAA0B,EAC3BF,EAAQ,CACR9xH,EAAkB2yF,YAAY//H,GAC9B,IAAIzwD,EAAU69F,EAAkB6lF,aAChC,eAAK1jL,EAAS,CAAC7L,EAAO8L,KAClB,IACIzO,KAAMA,EACN3D,IAAKA,GACLoS,EACJ,GAAI,WAAazO,EAAM,CACnB,IAAIq9N,EAAiB97N,KAAK+7N,mBAAmBjhO,GAAK,GAC9CiiO,EAAmB/8N,KAAKoqN,cAAc0R,GAC1Ce,EAAa55N,KAAK85N,GAClBA,EAAiB5vM,KAAK4vM,IAClBjB,EAAeE,WAAY,EAC3Bl3E,EAAUA,GAAWi4E,EAAiBj4E,kBAI/C,GAAI9kJ,KAAKg9N,sBAAuB,CACnC,IAAID,EAAmB/8N,KAAKoqN,cAAcpqN,KAAKg9N,sBAAsBpjB,cACrEijB,EAAa55N,KAAK85N,GAClBA,EAAiB5vM,KAAK4vM,IAClBj4E,EAAUi4E,EAAiBj4E,UAOnC,OAJA,qBAAQ+3E,GAAc1vM,KAAK,KACvBntB,KAAK88N,yBAA0B,EAC/Bp/J,EAASluC,QAAQs1H,KAEdpnF,EAASptC,WAEpB85L,cAAe,SAAS0R,GACpB,IAAImB,EAGAF,EAFA99N,EAAS,IAAI,cACbmrN,EAAgB0R,GAAkB,QAAiBxS,eAAewS,GAStE,OAPI,OAAS1R,QAAiB,IAAWA,GAAiBA,EAAcb,WAAW3vN,SAC/EoG,KAAKk9N,0BAA0BpB,GAC/BiB,EAAmB,QAAiB3S,cAAc0R,IAEtD,mBAAM,QAAUmB,EAAoBF,SAAqB,IAAWE,OAAoB,EAASA,EAAkBnjK,WAAaijK,GAAkB5vM,KAAK4vM,IACnJ,kBAAK/8N,KAAKq8N,eAAeP,EAAgBiB,IAAmB5vM,KAAKluB,EAAOuwB,WAErEvwB,EAAOqxB,WAElB6sM,kBAAmBvsK,IAAW,eAAcA,EAAOzqD,MACnDi3N,sBAAuB,SAASxsK,GAC5B,IAAI4/H,EAAWxwL,KAAKugM,mBAAmBhQ,cACnCz1L,EAAM81D,EAAO91D,IACbghO,EAAiB97N,KAAK+7N,mBAAmBjhO,GAAK,GAClD,IAAK,IAAMigO,GAAiBz8N,QAAQkyL,GAAW,CAC3C,GAAI5/H,EAAOnyD,OAAS28N,KAA0Bp7N,KAAKm9N,kBAAkBvsK,GAEjE,YADAkrK,EAAeh3E,SAAU,GAG7B9kJ,KAAKq9N,kCAAiC,GACtC,IAAIpU,EAAc,QAAiBK,eAAewS,GAClD,GAAI7S,EAAa,CACb,IAAI8T,EAAmB,QAAiB3S,cAAc0R,GACtD,kBAAKiB,EAAiBjjK,UAAYijK,GAAkB5vM,KAAK4vM,IACrDjB,EAAeh3E,QAAUi4E,EAAiBj4E,QAC1Cg3E,EAAe9iB,YAAc+jB,EAAiB/jB,mBAE1C8iB,EAAe9iB,aAAgB8iB,EAAe9iB,YAAYp/M,SAClEkiO,EAAeh3E,SAAU,GAE7B9kJ,KAAKq9N,kCAAiC,QAEtCvB,EAAeh3E,SAAU,GAGjCw4E,aAAc,SAASxsB,GACnB9wM,KAAKg9N,sBAAwBlsB,GAEjCysB,2BAA4B,SAASz4M,GACjC,IAAIwiD,EAAaxiD,EAAWmC,KAAK,IAAM2zM,IACvC,IAAKtzJ,EAAW1tE,OAAQ,CACpB,IAAIwtE,EAAsBtiD,EAC1BwiD,EAAa,eAAE,SAAS//C,SAAS6/C,GAAqB9/C,SAASszM,IAC/D56N,KAAKooB,iBAAiBk/C,EAAY,SAClCxiD,EAAWwC,SAASuzM,MAG5B2C,4BAA6B,SAAS14M,GAClC,IAAIwiD,EAAaxiD,EAAWmC,KAAK,IAAM2zM,IACvC,GAAItzJ,EAAW1tE,OAAQ,CACnB,IAAIktE,EAAY,QAAc8rC,YAAYtrC,GACtCR,IACAA,EAAUrF,UACVqF,EAAU9gD,WAAW8B,UAEzBhD,EAAW0C,YAAYqzM,MAG/B4C,wBAAyB,SAASx+N,GAC9B,IAAI6xM,EAAY7xM,EAAO6xM,UACnB94I,EAAkB84I,EAAU/oL,OAAO,mBACnCjX,EAASggM,EAAU/oL,OAAO,aAAjB+oL,GAAiChgM,OAC9C9Q,KAAK09N,2BAA2B,CAC5B9/B,OAAQ5lI,EAAgBl9D,IACxB8pB,YAAa9T,EAAO1P,MACpB27N,iBAAkB99N,KAG1B0+N,qBAAsB,SAAS7wH,GAC3BA,EAAI//F,UAAU1H,GAAG,aAAcrF,KAAKy9N,wBAAwBjzM,KAAKxqB,OACjE8sG,EAAI//F,UAAU1H,GAAG,YAAarF,KAAKy9N,wBAAwBjzM,KAAKxqB,QAEpE49N,mBAAoB,SAAS9wH,GACzB,IAAIgkG,EAAYhkG,EAAI//F,UAChBirD,EAAkB84I,EAAU/oL,OAAO,mBACnCjX,EAASggM,EAAU/oL,OAAO,aAAjB+oL,GAAiChgM,OAC1C7R,EAASe,KAAK69N,wBAAwB,CACtCjgC,OAAQ,OAAS5lI,QAAmB,IAAWA,OAAkB,EAASA,EAAgBl9D,IAC1F8pB,YAAa9T,EAAO1P,QAEpBm6N,GAAwBt8N,IAAWA,EAAOoxC,SAAW4qL,GAAkB/kL,SACvEl2C,KAAK89N,2BAA2B,CAC5BltK,OAAQoH,EACRpzC,YAAa9T,EAAO1P,SAIhC28N,sBAAuB,SAASj5M,EAAY7lB,GACxC,IAAI6xM,EAAY7xM,EAAO6xM,UACnB94I,EAAkB84I,EAAU/oL,OAAO,mBACnCjX,EAASggM,EAAU/oL,OAAO,aAAjB+oL,GAAiChgM,OAK9C,GAJA7R,EAAO+5M,aAAe/5M,EAAO+5M,YAAY93M,QAAQ45M,IAC7CA,EAAKl2L,YAAc9T,EAAO1P,MAC1B05M,EAAKhqM,OAASA,IAEdgU,EAAY,CACZ,IAAIi4M,EAAmB/8N,KAAK69N,wBAAwB,CAChDjgC,OAAQ5lI,EAAgBl9D,IACxB8pB,YAAa9T,EAAO1P,QAEpB48N,EAAoBzC,GAAwBwB,IAAqBA,EAAiBkB,oBAAsBh/N,EAAOnQ,GACnH,GAAIkR,KAAKk+N,gCAAkCF,EACvC,OAEJ,GAAI/+N,EAAOoxC,SAAW4qL,GAAkBE,QAAS,CAC7C,IAAItxC,EAAS/kK,EAAWmC,KAAK,UACxB,gBAAQ4iK,KACT,OAAa/8J,QAAQ+8J,EAAQ,SAC7B,OAAa/8J,QAAQ+8J,EAAQlgH,EAAA,KAAcC,OAGnD,IAAI58C,GAAUlc,EAAOw7C,kBAAoBtsD,KAAKihE,cAAc,iBAAiBk9J,kBAAkBr5M,GAC3F7lB,EAAOoxC,SAAW4qL,GAAkB/kL,QAChClpB,EACAA,EAAOjF,OAAO,mBAAoBkzM,GAAkB/kL,SAEpDl2C,KAAKu9N,2BAA2Bz4M,GAE7BkI,EACPA,EAAOjF,OAAO,mBAAoBkzM,GAAkBC,OAEpDl7N,KAAKw9N,4BAA4B14M,GAErCA,EAAW++C,YAAY7jE,KAAK+mB,gBAAgBuzM,IAAmBr7N,EAAOoxC,SAAW4qL,GAAkBE,WAG3GiD,yBAA0B,SAASj4J,GAC/B,IAAIk4J,EACAvzH,EAAoB9qG,KAAKugM,mBACzB3vI,EAASk6C,EAAkBwxH,eAAen2J,EAAWrrE,KACrDwjO,EAAmBxzH,EAAkBomF,YAAY/qH,EAAWrrE,KAC5DwpI,EAAU,QAAU+5F,EAAkBl4J,EAAWt1D,WAAQ,IAAWwtN,OAAkB,EAASA,EAAgB/5F,QAC/G1zE,GAAU0zE,IAAYg6F,GACtBxzH,EAAkBkmF,iBAAiB,CAC/Bl2L,IAAKqrE,EAAWrrE,IAChBwpI,QAASA,KAIrBi6F,gBAAiB,SAASp4J,EAAYrhD,GAClC,IAAIgmF,EAAoB9qG,KAAKugM,mBACzBzvL,EAASq1D,EAAWr1D,OACpBy8C,EAAmBz8C,EAAOy8C,iBAC9B,IAAI,eAAUz8C,EAAO6c,UAAa7c,EAAO88C,iBAAoB/uD,MAAM0nB,QAAQzV,EAAO88C,kBAAqB98C,EAAO88C,gBAAgBh0D,OAA9H,CAGA,IAAIy3L,EAAYvmF,EAAkBriF,cAAc09C,EAAWrrE,IAAKgwG,EAAkB6lF,cAC9E6tC,EAAsBntC,GAAa,EACvC,IAAKmtC,EAAqB,CACtB,IAAKjxK,EAAkB,CACnB,IAAIoZ,EAAoB3mE,KAAKihE,cAAc,WACvCuL,GAAkB,OAAS7F,QAAqB,IAAWA,OAAoB,EAASA,EAAkB+F,sBAAwB,GACtInf,EAAmBif,EAAe9+C,MAAK,SAAU5c,GAC7C,OAAOA,EAAOy8C,oBAGtB,IAMQkxK,EAAuBC,EAN3BtkF,EAAY,eAAap6I,KAAK+nB,OAAO,sBAAuBo+C,EAAWrrE,KACvE6jO,EAA8B7zH,EAAkBmtH,yBAA2BntH,EAAkB76C,cAAc,CAC3Gp/C,IAAKs1D,EAAWt1D,MAGpB,GADA2tN,EAAsBpkF,GAAaukF,GAA+BpxK,EAC9DoxK,GAA+BpxK,EAE/Bu9C,EAAkBkmF,iBAAiB,CAC/Bl2L,IAAKqrE,EAAWrrE,IAChBwpI,QAAS,QAAUm6F,EAAwB,QAAUC,EAAmBv4J,EAAWt1D,WAAQ,IAAW6tN,OAAmB,EAASA,EAAiBp6F,eAAY,IAAWm6F,EAAwBA,EAAwBt4J,EAAWhgE,OAIjP,GAAIq4N,EAAqB,CACrB,GAAI15M,IAAeA,EAAWlrB,OAE1B,YADA,OAAOkK,IAAI,SAGf9D,KAAKo+N,yBAAyBj4J,GAC9B,IAAI21J,EAAiB97N,KAAK+7N,mBAAmB51J,EAAWrrE,KAAK,GACzDurK,EAAW,KACX,IAAIz1G,EAASk6C,EAAkBwxH,eAAe,OAASR,QAAkB,IAAWA,OAAiB,EAASA,EAAehhO,KACzH+G,EAAQiP,EAAOoT,oBAAoB,OAAS0sC,QAAU,IAAWA,OAAS,EAASA,EAAOzqD,OAAS,IACvG,YAAO,IAAWtE,EAAQA,EAAQskE,EAAWtkE,OAE7C+8N,EAAsB95M,GAAcA,EAAWwhD,SAAS,aAC5DxhD,GAAcA,EAAWwC,SAAStnB,KAAK+mB,gBAAgB,KACvD,IAAI+pL,EAAY,IAAI,GAAUhsL,GAAc,eAAE,SAAU,CACpDljB,KAAMkP,EAAO5J,QACb0mD,gBAAiB,OAAAnzD,EAAA,YAAO,EAAM,GAAIqW,EAAO88C,iBACzCoK,gBAAiB8jK,EACjB3hB,QAASykB,EAAsB,KAAO,CAClCv4D,SAAUA,EACVu1C,uBAAwB38M,IACpBe,KAAK+9N,sBAAsBj5M,EAAY7lB,KAG/CmiN,WAAY,WACR,IAAItmN,EAAM,OAASghO,QAAkB,IAAWA,OAAiB,EAASA,EAAehhO,IACrF81D,EAASk6C,EAAkBwxH,eAAexhO,GAC1CwpI,EAAUx5B,EAAkBomF,YAAYp2L,GAC5C,MAAO,CACHqL,KAAM,gBAAwBm+H,EAAS,OAAS1zE,QAAU,IAAWA,OAAS,EAASA,EAAOzqD,MAC9F2K,OAAQA,IAGhB+1C,cAAe7mD,KAAK29N,qBAAqBnzM,KAAKxqB,MAC9CgmD,YAAahmD,KAAK49N,mBAAmBpzM,KAAKxqB,QAE9C,GAAI4+N,EAAqB,CACrB,IAAIzkB,EAAUrJ,EAAU/oL,OAAO,WAC3BoyL,IACAA,EAAQ9zC,SAAWA,EACnB8zC,EAAQrB,4BAA8B,GACtCqB,EAAQc,OAAS,IAAM90I,EAAWt1D,IAAIob,WAAajsB,KAAK88N,0BAA4BhyH,EAAkB3F,eAAeh/B,IAG7H,OAAO2qI,KAGfusB,iCAAkC,SAASwB,GACvC7+N,KAAKk+N,+BAAiCW,GAE1CC,iCAAkC,WAC9B,OAAO9+N,KAAKk+N,gCAEhBa,6BAA8B,SAASroI,GACnC,IACIknG,OAAQA,EACRh5K,YAAaA,GACb8xE,EACJ,OAAO12F,KAAKg9N,uBAAyB,eAAah9N,KAAKg9N,sBAAsBj1M,OAAO,mBAAmBjtB,IAAK8iM,IAAW59L,KAAKg9N,sBAAsBj1M,OAAO,aAAlC/nB,GAAkD8Q,OAAO1P,QAAUwjB,GAE9Lo6M,aAAc,SAASluB,GACnB,IAAImuB,EAAa,CACbrhC,OAAQkT,EAAU/oL,OAAO,mBAAmBjtB,IAC5C8pB,YAAaksL,EAAU/oL,OAAO,aAAjB+oL,GAAiChgM,OAAO1P,OAErD27N,EAAmB/8N,KAAK69N,wBAAwBoB,GAChDC,EAAgB3D,GAAwBwB,GACvCmC,IACDnC,EAAmBjsB,EAAUsJ,YAEjC,IAAI18I,EAAW,IAAI,cACfy8I,EAAUrJ,EAAU/oL,OAAO,WAS/B,OARIm3M,GAAiBnC,EAAiB1sL,SAAW4qL,GAAkB/kL,UAC/Dl2C,KAAK09N,2BAA2BuB,GAChC9kB,EAAQyB,uBAAuBmhB,IAEnC,kBAAKA,EAAiBjjK,UAAYijK,GAAkB5vM,KAAK4vM,IACrDmC,GAAiB/kB,EAAQyB,uBAAuBmhB,GAChDr/J,EAASluC,QAAQutM,KAEdr/J,EAASptC,WAEpBotM,2BAA4B,SAASvgI,GACjC,IACIygG,OAAQA,EACRh5K,YAAaA,EACbm4M,iBAAkBA,GAClB5/H,EACA2+H,EAAiB97N,KAAK+7N,mBAAmBn+B,GAC7C,GAAKk+B,EAAL,CAMA,IAAI78N,EACJ,GAJK68N,EAAeM,oBAChBN,EAAeM,kBAAoB,IAGnCW,GAGA,GAFA99N,EAAS,OAAAxE,EAAA,WAAO,GAAIsiO,GACpBjB,EAAeM,kBAAkBx3M,GAAe3lB,EAC5C89N,EAAiB1sL,SAAW4qL,GAAkB/kL,UAC1Cl2C,KAAKugM,mBAAmBhQ,gBAAkB,KAC1CtxL,EAAOy+D,SAAW,IAAI,cACtBz+D,EAAO66D,SAASg4B,OAAO,KACnB7yF,EAAOy+D,SAASluC,YAEpBxvB,KAAKugM,mBAAmB9C,YAAYx+L,EAAOy+D,WAE3C19D,KAAKk+N,gCAEL,YADAj/N,EAAOg/N,kBAAoBlB,EAAiBjuO,SAKpDmQ,EAAS68N,EAAeM,kBAAkBx3M,GAE1C3lB,GAAUA,EAAOg/N,0BACVh/N,EAAOg/N,oBAGtBJ,wBAAyB,SAASxgI,GAC9B,IAAI8hI,GAEAvhC,OAAQA,EACRh5K,YAAaA,GACby4E,EACAy+H,EAAiB97N,KAAK+7N,mBAAmBn+B,GAAQ,GACrD,OAAO,OAASk+B,QAAkB,IAAWA,GAA0B,QAAUqD,EAAwBrD,EAAeM,yBAAsB,IAAW+C,OAA3F,EAA4HA,EAAsBv6M,IAEpNw6M,2BAA4B,SAAS/jI,GACjC,IACIzqC,OAAQA,EACRhsC,YAAaA,GACby2E,EACAygI,EAAiB97N,KAAK+7N,mBAAmB,OAASnrK,QAAU,IAAWA,OAAS,EAASA,EAAO91D,KAChGghO,GAAkBA,EAAeM,oBACjCp8N,KAAK89N,2BAA2B,CAC5BltK,OAAQA,EACRhsC,YAAaA,WAEVk3M,EAAeM,kBAAkBx3M,KAGhDk5M,2BAA4B,SAASuB,GACjC,IACIzuK,OAAQA,EACRhsC,YAAaA,GACby6M,EACAvD,EAAiB97N,KAAK+7N,mBAAmBnrK,EAAO91D,KACpD,GAAI81D,GAAUkrK,EAAeM,kBAAmB,CAC5C,IAAIn9N,EAAS68N,EAAeM,kBAAkBx3M,GAC1C3lB,IACAA,EAAOy+D,UAAYz+D,EAAOy+D,SAAS75B,OAAOy3L,IAC1CQ,EAAeM,kBAAkBx3M,GAAe02M,MAI5D4B,0BAA2B,SAASpB,GAC5BA,IACAA,EAAeM,0BAA4BN,EAAeM,yBACnDN,EAAeE,YAG9BsD,cAAe,SAASC,GACpB,IACI3hC,OAAQA,EACRh5K,YAAaA,GACb26M,EACAtgO,EAASe,KAAK69N,wBAAwB,CACtCjgC,OAAQA,EACRh5K,YAAaA,IAEjB,OAAO22M,GAAwBt8N,IAAWA,EAAOoxC,SAAW4qL,GAAkBE,SAElFqE,iBAAkB,SAASC,GACvB,IACI7hC,OAAQA,EACRh5K,YAAaA,GACb66M,EACA3D,EAAiB97N,KAAK+7N,mBAAmBn+B,GACzCqrB,EAAc6S,GAAkB,QAAiBxS,eAAewS,GAChEvS,EAAaN,GAAeA,EAAYM,WAC5C,OAAOA,GAAcA,EAAWnrN,OAAOuhC,IACnC,IAAI7uB,EAAS6uB,EAAE5X,OAAO,aAAT4X,GAAyB7uB,OACtC,QAAOA,GAASA,EAAO1P,QAAUwjB,IAClC,IAEP86M,wBAAyB,SAAS/yJ,GAC9B,IAAIowJ,EAAmB/8N,KAAK69N,wBAAwB,CAChDjgC,OAAQjxH,EAAY7xE,IACpB8pB,YAAa+nD,EAAY77D,OAAO1P,QAEhC,eAAU27N,GACVpwJ,EAAYssI,iBAAmB8jB,IAAqBzB,GAAuByB,EAAiB1sL,OAASirL,UAE9F3uJ,EAAYssI,oBAIpB0mB,GAAmB,CAC1BhiO,eAAgB,WACZ,MAAO,CACHqmD,QAAS,CACL8K,MAAO,CACH0C,wBAAyB,OAAoBn4D,OAAO,0CAKpEwrE,YAAa,CACT+6J,WAAYnE,IAEhBx2J,UAAW,CACPJ,YAAa,CACT7gB,QAAS,CACLmzI,WAAY,SAASyH,GACjB,IAAIhuI,EAAS5wD,KAAKC,SAASnB,MAAMkB,KAAME,WACnC2/N,EAAuB7/N,KAAKihE,cAAc,cAI9C,OAHIrQ,GAAUguI,EAAangM,OAAS48N,IAChCwE,EAAqBzC,sBAAsBxsK,GAExCA,GAEXqiI,qBAAsB,SAASp0I,GAC3B7+C,KAAKC,SAASnB,MAAMkB,KAAME,WAC1B,IAAI2/N,EAAuB7/N,KAAKihE,cAAc,cAC9CpiB,EAAKh9C,MAAMX,QAAQ0vD,SACX,IAAWivK,EAAqB9D,mBAAmBnrK,EAAO91D,MAC1D+kO,EAAqBzC,sBAAsBxsK,MAIvDkvK,yBAA0B,WACtB,IAAIn8N,EAAO3D,KACP+/N,EAAmBp8N,EAAKwoB,QAAQ,YAAY4nF,yBAC5ClqC,EAAWk2J,EACf,eAAKp8N,EAAKgtL,aAAc,CAAC5xL,EAAGihO,KACxB,IACIllO,IAAKA,EACL2D,KAAMA,GACNuhO,EACAlE,EAAiB97N,KAAKihE,cAAc,cAAc86J,mBAAmBjhO,GACrEghO,IAAmBA,EAAeh3E,SAAWg3E,EAAevgK,YAAc53D,EAAK+vL,aAC/EooC,EAAevgK,UAAY53D,EAAK+vL,WAE5BooC,EAAejyJ,SADfprE,IAAS28N,GACiB2E,EAEAl2J,EAE9BA,QAIZ+sJ,2BAA4B,SAASH,GACjC,IAAIoJ,EAAuB7/N,KAAKihE,cAAc,cAC1C66J,EAAiB+D,EAAqB9D,mBAAmBtF,EAAc37N,KAAK,GAChF,MAAO,CACHk9D,gBAAiB8jK,IAGzBn9B,6BAA8B,SAAS9tL,EAAKutL,GACpCA,GAAwBp+L,KAAK2zN,WAC7B3zN,KAAK2zN,UAAUvZ,WAEnBp6M,KAAKC,SAASnB,MAAMkB,KAAME,YAE9Bu5N,iBAAkB,SAAS75I,GACvB,IAAIqgJ,EAAgBjgO,KAAKC,SAASnB,MAAMkB,KAAME,WAC1C2/N,EAAuB7/N,KAAKihE,cAAc,cAM9C,OALIg/J,GAAiBrgJ,EAAO9uE,OAAOy8C,kBAC/BsyK,EAAqBzC,sBAAsB,CACvCtiO,IAAK8kF,EAAO9kF,MAGbmlO,GAEX12F,aAAc,SAAS7gH,EAAOsoD,GAC1B,IAAI/jE,EAAUjN,KAAK2wL,aACf1+F,EAAiBjyF,KAAKihE,cAAc,QACpC4+J,EAAuB7/N,KAAKihE,cAAc,cAC9Cv4C,EAAQ1oB,KAAKC,SAASyoB,EAAOsoD,GAC7B,IAAIgqB,EAAatyE,EAAM9uB,OACnBsmO,EAAiB,SAAStvK,EAAQkrK,GAClC,IAAI31N,EAAO,CACPrL,IAAK81D,EAAO91D,KAEZsG,EAAQ,SAASwvD,EAAQloC,GACzB,IAAItnB,GAAS,EACT+zL,EAAWvkI,EAAOnyD,OAAS28N,GAC3BtgO,EAAM81D,EAAO91D,IAOjB,OANA,eAAK4tB,GAAO,SAAUjtB,EAAGsL,GACrB,GAAI,eAAajM,EAAKq6L,EAAWpuL,EAAKjM,IAAMm3F,EAAeyI,MAAM3zF,IAE7D,OADA3F,EAAQ3F,GACD,KAGR2F,EAVC,CAWVwvD,EAAQloC,GACV,KAAItnB,GAAS,GAAb,CAGA06N,EAAejyJ,SAAWiyJ,EAAejyJ,SAAWmxB,EAAa8gI,EAAejyJ,SAAWmxB,EAAa8gI,EAAejyJ,SACvH,IAAIA,EAAWiyJ,EAAejyJ,SAC9B1jE,EAAK,IAAgB,EACrBuiB,EAAM6qD,OAAO1J,EAAU,EAAG1jE,KAW9B,OATInG,KAAKuwL,gBAAkB,IAAmB,YAAcv/G,GAAc,WAAaA,GACnF/jE,EAAQ/L,QAAQ0vD,IACZ,IAAI91D,EAAM81D,EAAO91D,IACbghO,EAAiB+D,EAAqB9D,mBAAmBjhO,GACzDghO,GAAkBlrK,EAAOnyD,MAAQq9N,EAAevgK,YAAcv7D,KAAK0zL,aAAe,OAAS9iI,QAAU,IAAWA,OAAS,EAASA,EAAO2K,aAAev7D,KAAK0zL,YAC7JwsC,EAAetvK,EAAQkrK,KAI5BpzM,GAEX0sK,gBAAiB,SAASruL,GACtB,IAAIo5N,EAAap5N,EAAKZ,KAAK,IACvBrL,EAAMqlO,EAAap5N,EAAKZ,KAAKrL,IAAMiM,EAAKjM,IACxC01L,EAAWxwL,KAAKuwL,cACpB,GAAIC,IAAa,IAAmB2vC,GAAcrlO,EAAK,CACnD,IAAImS,EAAUjN,KAAK2wL,aACfU,EAAY,OAAc5oK,cAAc3tB,EAAKmS,GACjD,GAAIokL,GAAa,EAAG,CAChB,IAAIzgI,EAAS3jD,EAAQokL,GACrB,GAAIzgI,EAAOnyD,OAAS28N,GAAuB,CACvC,IAAI92F,EAAUtkI,KAAKkxL,YAAYtgI,EAAO91D,KACtCiM,EAAKZ,KAAO,OAAA1L,EAAA,YAAO,EAAM,GAAI6pI,EAAS1zE,EAAOzqD,MAC7CY,EAAKjM,IAAMA,IAIvBkF,KAAKC,SAASnB,MAAMkB,KAAME,YAE9BkgO,iCAAkC,SAASnzN,GACvC,IAAItJ,EAAO3D,KACP6/N,EAAuB7/N,KAAKihE,cAAc,cAC1C0F,EAAoB3mE,KAAKihE,cAAc,WACvC3zC,EAAUq5C,EAAkBc,aAC5B44J,EAAmB15J,EAAkBqoB,sBAAsB5wF,OAAO0S,IAAWA,EAAOo8C,QACpFgjC,EAAevpB,EAAkB4e,kBAAkBnnF,OAAO0S,IAAWA,EAAO28C,kBAAoB,IAAM4yK,EAAiB/hO,QAAQwS,IAC/HwvN,EAA4B,GAC5BC,EAAgB,CAACzvN,EAAQ8sL,IAAW59L,KAAKonB,gBAAgB2hF,iBAAiB60F,IAAW,GAAKyiC,EAAiB/hO,QAAQwS,GAAU,EA4BjI,OA3BAuvN,EAAiBp9N,QAAQitF,IACpB,IAAM6qI,GAAiBz8N,QAAQ0B,KAAKuwL,gBACrC,eAAKjjK,GAAS,SAAUvuB,EAAG+R,GACvB7D,EAAQ/L,SAAQ,SAAU0vD,GACtB,IAAIzqD,EACJ,IAAIo6N,EAAczvN,EAAQ8/C,EAAO91D,KAAjC,CAGA,GAAI81D,EAAOnyD,OAAS28N,GAChBj1N,EAAOyqD,EAAOzqD,UACX,GAAI,WAAayqD,EAAOnyD,KAAM,CACjC,IAAI6lI,EAAU3gI,EAAKutL,YAAYtgI,EAAO91D,KACtCqL,EAAO,gBAAwBm+H,EAAS1zE,EAAOzqD,MAEnD,GAAIA,EAAM,CACN,IAAI2qM,EAAY+uB,EAAqBtB,gBAAgB,CACjDztN,OAAQA,EACRhW,IAAK81D,EAAO91D,IACZ+G,MAAOiP,EAAOoT,mBAAmB/d,KAEjC2qM,GACAwvB,EAA0Br9N,KAAK6tM,WAM5C,WACHwvB,EAA0Bp/N,SAAQ,SAAU4vM,GACxCA,EAAUrvI,eAItB25H,oBAAqB,SAASxqI,EAAQygI,GAClC,IAAIpyL,EAASe,KAAKC,SAASnB,MAAMkB,KAAME,WACnC2/N,EAAuB7/N,KAAKihE,cAAc,cAC1C66J,EAAiB+D,EAAqB9D,mBAAmB,OAASnrK,QAAU,IAAWA,OAAS,EAASA,EAAO91D,KACpH,GAAI81D,EAAQ,CACR,IAAIk0F,EAAU,WAAal0F,EAAOnyD,MAAQq9N,EAAeh3E,QACzD7lJ,EAASA,IAAW6lJ,MACjB,CACH,IAAI07E,EAAoBxgO,KAAKogO,iCAAiCpgO,KAAK2wL,cACnE1xL,EAAS,IAAI,cACbe,KAAK25L,iBAAiB16L,EAAQ,KAC1B4gO,EAAqBzlB,UAAS,GAAMjtL,KAAKszM,IAGrC,OAFAD,IACAxgO,KAAK8/N,2BACG9/N,KAAKuwL,eACT,KAAK,GACIkwC,GACDzgO,KAAKq6L,oBAET,MACJ,KAAK,GACIomC,IACDzgO,KAAKmzL,mBACLnzL,KAAKkzL,uBACLlzL,KAAKihE,cAAc,QAAQkgC,eAGvCliG,EAAOuwB,SAASixM,OAI5B,OAAOxhO,EAAOqxB,QAAUrxB,EAAOqxB,UAAYrxB,GAE/Cu6N,gBAAiB,SAAS3vJ,EAAUjlD,EAAa7d,GAC7C,IAAI9H,EAASe,KAAKC,SAAS4pE,EAAUjlD,EAAa7d,GAClD,GAAI/G,KAAKuwL,gBAAkB,GAAgB,CACvC,IAAIrpH,EAAQlnE,KAAKypH,UAAUrzC,gBAAgBvM,EAAUjlD,GACjDksL,EAAY5pI,GAASA,EAAM/gE,KAAK,eAChC0hE,EAAaX,GAASA,EAAMj6C,QAAQ,WAAW9mB,KAAK,WACpDtE,EAAQivM,GAAaA,EAAU/oL,OAAO,WAAWs+I,WACrD,GAAIyqC,GAAa0qB,GAA2B35N,EAAOgmE,GAAa,CAC5D,IAAIg4J,EAAuB7/N,KAAKihE,cAAc,cAC1CvD,EAAW,IAAI,cAInB,OAHA,kBAAKmiK,EAAqBb,aAAaluB,GAAY7xM,GAAQkuB,KAAK,CAAC4vM,EAAkB99N,KAC/Ey+D,EAASluC,QAAQutM,EAAiB1sL,SAAW4qL,GAAkBC,OAASj8N,KAErEy+D,EAASptC,UACb,IAAKwgL,EACR,OAAO7xM,IAInBm9L,mBAAoB,SAASxsI,GACzB,IAAI26D,EACAguG,EAAiBv4N,KAAKuwL,gBAAkB,GAK5C,GAJA,eAAKvwL,KAAK2wL,aAAc,CAAC5xL,EAAG6xD,KACxB,IAAI+4D,EAAY3pH,KAAK0gO,cAAc9vK,GACnC25D,EAAiBA,GAAkBZ,IAEnCY,EAAgB,CAChB,IAAIre,EAAalsG,KAAKypH,UAAUrc,gBAC5BlB,IACAA,EAAW14B,SACX04B,EAAWiI,gBAAgBoW,IAGnC,GAAI36D,GAAU2oK,GAAkBv4N,KAAKm+L,iBAAkB,CACnD,IAAIjH,EAAel3L,KAAKg0L,kBACxBh0L,KAAKonB,gBAAgB+5E,YAAY,CAC7BnwB,WAAY,SACZ+yB,WAAY,CAACmzF,KAEjBl3L,KAAKq6L,yBACF,IAAKzqI,EAAQ,CAChB,IAAI+wK,GAA6B,EACjC,GAAIpI,EAAgB,CAChB,IAAIjrM,EAAUttB,KAAKihE,cAAc,WAAWwG,aACxCm5J,EAA+BtzM,EAAQlvB,OAAOiwE,IAC9C,IAAIwyJ,EACJ,OAAOxyJ,EAAI9gB,mBAAqB,QAAUszK,EAAuBxyJ,EAAIzgB,uBAAoB,IAAWizK,OAAuB,EAASA,EAAqBjnO,QAAU,IACpKA,OAAS,EACZ+mO,GAA8BC,EAE9BD,GACA3gO,KAAKihE,cAAc,cAAc06J,wBAI7CjnJ,mBAAoB,SAAS71B,GACzB,IAAIiiL,EAAkB9gO,KAAKihE,cAAc,cAAcy6J,iBACnD,aAAe17N,KAAK+nB,OAAO,mBAC3B/nB,KAAK+gO,yBAEL,YAAcliL,EAAKmyB,YACnB,eAAK8vJ,GAAiB,SAAU/hO,EAAG+8N,GAC/BA,EAAejyJ,UAAYhrB,EAAKn2B,MAAM9uB,UAG9CoG,KAAKC,SAAS4+C,IAElBkiL,uBAAwB,WACpB,IAAID,EAAkB9gO,KAAKihE,cAAc,cAAcy6J,iBACvD,eAAKoF,EAAiB,CAAC/hO,EAAG+8N,KAClBA,EAAevgK,YAAcv7D,KAAK0zL,oBAC3BooC,EAAevgK,iBACfugK,EAAejyJ,aAIlCqzH,sBAAuB,WACnBl9L,KAAKihE,cAAc,cAAc06J,sBACjC37N,KAAKC,YAETygO,cAAe,SAAS9vK,GACpB,IAAIy5D,EACAO,EAAgB5qH,KAAKihE,cAAc,iBACnCv4C,EAAQ1oB,KAAKihE,cAAc,QAAQv4C,QACnCmhD,EAAW7pE,KAAKyoB,cAAcmoC,EAAO91D,IAAK4tB,GAC1CozM,EAAiB97N,KAAKihE,cAAc,cAAc86J,mBAAmBnrK,EAAO91D,KAChF,IAAM,OAASghO,QAAkB,IAAWA,IAAkBA,EAAeh3E,UAAY,OAASg3E,QAAkB,IAAWA,GAAkBA,EAAeS,WAAa1yJ,GAAY,EAErL,OADAwgD,EAAgBrqH,KAAKyxL,kBACd7mE,GAAiBA,EAAcR,eAAe,OAAS0xG,QAAkB,IAAWA,OAAiB,EAASA,EAAeS,UAAW1yJ,EAAUwgD,IAGjK0zE,iBAAkB,SAASn6L,GACvB,IAAIi8N,EAAuB7/N,KAAKihE,cAAc,cAC1CvD,EAAW,IAAI,cAenB,OAdAmiK,EAAqBT,2BAA2B,CAC5CxuK,OAAQ5wD,KAAKs8N,eAAe14N,EAAE9I,KAC9B8pB,YAAahhB,EAAEkN,OAAO1P,QAE1BpB,KAAKC,SAASnB,MAAMkB,KAAME,WAAWitB,KAAK,KACtC,IAAI6zM,EAAmBnB,EAAqBL,iBAAiB,CACzD5hC,OAAQh6L,EAAE9I,IACV8pB,YAAahhB,EAAEkN,OAAO1P,QAE1B,kBAAK4/N,GAAoBnB,EAAqBb,aAAagC,IAAmB7zM,KAAK4vM,IAC/E/8N,KAAKihE,cAAc,iBAAiB0pH,UACpCjtH,EAASluC,QAAQutM,OAGlBr/J,EAASptC,WAEpBwvK,kBAAmB,SAAS54H,EAAOf,GAC/BnmE,KAAKC,SAASnB,MAAMkB,KAAME,WAC1B,IAAI2/N,EAAuB7/N,KAAKihE,cAAc,cAC9C4+J,EAAqBH,wBAAwBv5J,GAC7C,IAAIw7H,IAAmBx7H,EAAW+hE,SAC9Bm4D,EAAergM,KAAKmlG,eAAeh/B,GACnC86J,EAAc,eAAU96J,EAAW8yI,kBACnCioB,EAAiB7gC,GAAgBl6H,EAAWr1D,OAAOw8C,cAAgBq0I,IAAmBtB,KAAkBl6H,EAAWt1D,IAAIob,WAAag1M,GACxI,GAAIC,EAAgB,CAChB,IAAIpwB,EAAY5pI,EAAM/gE,KAAK,eACvB2qM,GACA,kBAAK9wM,KAAKihE,cAAc,cAAc+9J,aAAaluB,IAAY3jL,KAAK,KAChE0yM,EAAqBH,wBAAwBv5J,OAK7Dm2J,eAAgB,SAASxhO,GACrB,IAAImS,EAAUjN,KAAK2wL,aACnB,OAAO1jL,EAAQ,OAAcwb,cAAc3tB,EAAKmS,KAEpDk4F,eAAgB,SAASh/B,GACrB,IAAIk6H,EAAergM,KAAKC,SAASkmE,GAC7BvV,EAAS5wD,KAAKs8N,eAAen2J,EAAWrrE,KACxCqmO,IAAkBh7J,EAAWt1D,KAAO7Q,KAAKihE,cAAc,cAAcq+J,cAAc,CACnF1hC,OAAQz3H,EAAWrrE,IACnB8pB,YAAauhD,EAAWr1D,OAAO1P,QAEnC,OAAOi/L,GAAgBrgM,KAAKihE,cAAc,cAAc46J,gBAAgBjrK,IAAWuwK,IAG3FhwG,cAAe,CACXiwG,kBAAmB,SAASt8M,GACxB,GAAKA,GAAeA,EAAWlrB,OAA/B,CAGA,IAAIynO,EAAkBrhO,KAAKypH,UAAU5iG,UAAUI,KAAK,IAAMjnB,KAAK+mB,gBAAgBwzM,KAC3E+G,EAAoBx8M,EAAWmI,QAAQ,IAAIpb,OAAO7R,KAAK+mB,gBAAgB,MAC3Es6M,GAAmBA,EAAgBv5M,SACnCu5M,EAAkB,eAAE,SAAS/5M,SAAStnB,KAAK+mB,gBAAgBwzM,KAAuBhzM,SAASzC,GAC3F,IAAIy8M,EAAiB,CACjBruK,UAAW,KACXvJ,SAAS,EACTpiD,MAAO,OACPmK,OAAQ,OACRuW,SAAS,EACTE,UAAWm5M,EACXz9G,uBAAuB,EACvBlwD,oBAAoB,EACpBN,0BAA0B,EAC1B+3E,4CAA4C,EAC5Ch4E,gBAAiB,KACb,IAAIouK,EAAiB,eAAE,SAASl6M,SAASqzM,IACrCxY,EAAgB,CAChBl3J,KAAM,SACNhG,KAAMjlD,KAAK+nB,OAAO,yCAClBmjC,QAAS,KACLlrD,KAAKugM,mBAAmBptL,mBAGhC,OAAO,IAAI,cAAOquN,EAAgBrf,GAAen8L,YAErDwuC,SAAU,CACNoH,GAAI,WACJF,GAAI,YACJtwC,OAAQ,MACR5C,UAAW,OACXmzC,eAAgB,MAChBpzC,SAAUvoB,KAAKypH,UAAU5iG,UACzByB,GAAIxD,GAER28M,aAAczhO,KAAK0hO,mBAAmBl3M,KAAKxqB,OAE/C,OAAO,IAAI,QAAQqhO,EAAiBE,KAExCI,oBAAqB,SAASz6J,EAAOo7C,GACjC,IAAIs/G,EACAC,EACAloF,EAAiB35I,KAAKypH,UAAUkwB,iBAChCk6E,EAAwB7zN,KAAKugM,mBAAmBszB,wBACpD,GAAIl6E,IAAmBk6E,EAAuB,CAC1C,IAAIiO,EAAiB56J,EAAMj6C,QAAQ,WAAWtgB,OAAOxG,KAAK,WACtD27N,GAAkB,UAAYA,EAAe3wN,UAC7CywN,EAAuB,eAAE5hO,KAAKypH,UAAU9yC,cAAcmrJ,EAAej4J,WAAW3iD,OAChF26M,EAAoBD,EAAqB36M,KAAK,IAAM,IAChD46M,EAAkBjoO,QAAU,WAAaioO,EAAkBnkO,IAAI,GAAG4sE,MAAMy3J,aACxEF,EAAkBp2M,IAAI,aAAc,UACpC62F,EAAet8D,YAAc,WACzB67K,EAAkBp2M,IAAI,aAAc,SAMxDi2M,mBAAoB,SAAS99N,EAAGo+N,GAC5B,IAAKp+N,EAAEmJ,UAAUk1N,yBAA0B,CACvC,IAAIC,EAAiB,eAAEt+N,EAAEijB,SAASy/C,SAAStmE,KAAK+mB,gBAAgBwzM,KAC5D4H,GAAeD,GAAkBliO,KAAKypH,UAAUpZ,2BAChD+xH,EAAqBpiO,KAAKqiO,+CAA+Cz+N,EAAGs+N,EAAgBF,GAChGp+N,EAAEmJ,UAAUk1N,4BAA8BE,IAAeC,GACrDA,EACAx+N,EAAEmJ,UAAUgb,OAAOq6M,GACZD,GACPv+N,EAAEmJ,UAAUyvH,YAIxB8lG,uBAAwB,SAASp7J,EAAOq7J,EAAUp7N,EAAWq7N,GACzD,IAAIC,EAAcv7J,EAAMjgD,KAAK,8BAA8B9gB,KAAK,WAC5D67N,EAAmBS,GAAeA,EAAY16M,OAAO,WACrD26M,EAAaV,EAAmB,YAAc,OAAS76N,EACvDw7N,EAAaX,EAAmB,WAAa,UAAY76N,EACzDm6N,EAAoBp6J,EAAMj6C,QAAQ,IAAIpb,OAAO7R,KAAK+mB,gBAAgB,MAClE67M,EAAmB,GACvBL,GAAYA,EAASrhO,SAAQ,SAAUgnB,GACnC06M,IAAqBA,EAAiBhpO,OAAS,QAAU,IAAM,gBAAWsuB,MAE9E,IAAI26M,EAAsB7iO,KAAK+mB,gBAAgB0zM,IAC/Cz6N,KAAKypH,UAAU5iG,UAAUI,KAAK,IAAM47M,GAAqB/6M,SACzD,IAAIg7M,EAAkB,eAAE,SAASx7M,SAASkzM,IAAuBlzM,SAASozM,IAA8BpzM,SAASu7M,GAAqBzoK,KAAKwoK,GAAkBr7M,SAAS2/C,GAClKo7C,EAAiB,CACjBn6F,UAAWm5M,EACXr5M,SAAS,EACT1gB,MAAO,OACPmK,OAAQ,OACRi4C,SAAS,EACTuJ,WAAW,EACX2wD,uBAAuB,EACvBlwD,oBAAoB,EACpBN,0BAA0B,EAC1B+3E,4CAA4C,EAC5C52E,SAAU,CACNhsC,UAAW,OACXD,SAAUvoB,KAAKypH,UAAU5iG,UACzB80C,eAAgB,MAChBvwC,OAAQ,CACJhe,EAAG,EACHkU,GAAI0gN,GAAoBvzM,EAAA,KAAQC,SAAW,EAAI,GAEnDktC,GAAI8mK,EACJhnK,GAAIinK,EACJr6M,GAAI4+C,GAERu6J,aAAc79N,IACV5D,KAAK0hO,mBAAmB99N,EAAGo+N,GAC3BhiO,KAAK+iO,8BAA8Bn/N,EAAEmJ,UAAU6vE,WAAY4lJ,GAAiBA,EAAc5lJ,WAAY1V,KAG9GlnE,KAAK2hO,oBAAoBz6J,EAAOo7C,GAChC,IAAI,QAAQwgH,EAAiBxgH,IAEjC+/G,+CAAgD,SAASrxN,EAASkxN,EAAgBF,GAC9E,IAAIgB,EAAehjO,KAAKysE,mBAAmBygB,kBAC3C,GAAK81I,GAAiBA,EAAappO,OAAnC,CAGA,IAAI46D,EAEA7wD,EAAMkjB,EAASgjD,EAAUuL,EADzB6tJ,GAAqBf,IAAmBv+N,EAAO3D,KAAM6mB,EAAU7V,EAAQ6V,QAASgjD,EAAW,eAAEhjD,GAASoG,QAAQ,MAAM7rB,QAASg0E,EAAgB,eAAEzxE,EAAK8lH,UAAU9yC,cAAc9M,IAAW4P,QAAQpS,WAAWjpE,OAAO,yBAA0BuF,EAAK8lH,UAAUt0C,WAAWC,GAAer+C,OAAO,CAACmsM,EAAIC,IAAOD,EAAKC,EAAI,IAEhTC,EAAyBpyN,EAAQjE,UAAU6vE,WAC3CymJ,EAAyB,eAAcD,GAAwB,GAC/DE,GAAgBpB,GAAkBmB,EAAyBJ,EAC3Dr+M,EAAc5kB,KAAKypH,UAAU11C,aAAa,eAAE/iE,EAAQ6V,SAASoG,QAAQ,OACrEs2M,EAA8B,SAASP,GACvC,IAAIQ,EACAC,EAQJ,OAPAT,EAAat1M,KAAK,CAAC5c,EAAQ1P,KACvB,GAAI0P,EAAO6c,UAAYqtM,GAGnB,OAFAwI,EAA2B,IAAMpiO,GAAS,EAAIA,EAC9CqiO,EAA0BriO,IAAU4hO,EAAappO,OAAS,GAAK,EAAIwH,EAAQ0P,EAAO86D,QAAU,GACrF,IAGR,CACHzgD,iBAAkBq4M,EAClBE,eAAgBD,GAZU,CAchCT,GAiBF,OAhBKd,GAAmBt9M,IAAgB2+M,EAA4Bp4M,mBAAoBm4M,EAM7E1+M,IAAgB2+M,EAA4BG,iBACnDlvK,EAAW,CACPhsC,UAAW,YACXozC,GAAI,YACJF,GAAIwmK,GAAkBF,EAAmB,WAAa,gBAEtDE,IACA1tK,EAASppC,OAAS,SAZtBopC,EAAW,CACPhsC,UAAW,YACXozC,GAAI,WACJF,GAAIsmK,EAAmB,YAAc,eAYtCxtK,GAAY,CACfA,SAAUA,EACVV,SAAUwvK,EAAeL,EAAoB,OAAI,KAGzDF,8BAA+B,SAASnmJ,EAAU+mJ,EAAgBz8J,GAC9D,GAAKy8J,EAAL,CAGA,IAAIC,EAAgBhnJ,EAASxxD,SACzBy4M,EAAsBF,EAAev4M,SACzC,GAAIw4M,EAAch4M,MAAQi4M,EAAoBj4M,KAAOg4M,EAAcj4M,KAAO,eAASixD,GAAYinJ,EAAoBl4M,KAAM,CACrH,IAAIA,EAAO,eAASg4M,GAAkB7I,GACtCl+I,EAASnxD,IAAI,OAAQo4M,EAAoBl4M,KAAOu7C,EAAM97C,SAASO,MAAQA,EAAOA,MAGtFm4M,qBAAsB,WAClB,IAAIjB,EAAsB7iO,KAAK+mB,gBAAgB0zM,IAC3CsJ,EAAqB/jO,KAAK+mB,gBAAgBwzM,IAC9C,MAAO,oBAAsBwJ,EAAqB,sBAAwBlB,EAAsB,wBAA0BA,GAE9H9iK,KAAM,WACF//D,KAAKC,WACLD,KAAKugM,mBAAqBvgM,KAAKihE,cAAc,WAC7CjhE,KAAKysE,mBAAqBzsE,KAAKihE,cAAc,WAC7CjhE,KAAKypH,UAAYzpH,KAAKmsB,QAAQ,aAElC29J,UAAW,SAASk6C,GACXA,GACDhkO,KAAKihE,cAAc,cAAcq8J,aAAa,MAElDt9N,KAAKC,YAETgkO,gBAAiB,SAASj+M,EAAU+2M,EAAkBzyC,GAClD,IAAI45C,EAOA1B,EANA34C,EAAS,OAAS7jK,QAAY,IAAWA,OAAW,EAASA,EAASiH,QAAQjtB,KAAKypL,yBACnFviH,EAAQ,OAAS2iH,QAAU,IAAWA,GAAUA,EAAOj8L,GAAG,MAAQi8L,EAAS,KAC3EhiH,EAAa,OAASgiH,QAAU,IAAWA,OAAS,EAASA,EAAO58J,QAAQ,WAAW9mB,KAAK,WAC5FyqD,EAASiX,EAAa7nE,KAAKihE,cAAc,WAAWq7J,eAAez0J,EAAW/sE,KAAO,KACrFgW,EAASo2D,GAASlnE,KAAKihE,cAAc,WAAWyL,oBAAoBxF,EAAM9lE,SAC1E+jG,OAAiB,KAAY,OAASv0C,QAAU,IAAWA,GAAkB,QAAUszK,EAAetzK,EAAOzqD,YAAS,IAAW+9N,OAA7D,EAAqFA,EAAa,OAASpzN,QAAU,IAAWA,OAAS,EAASA,EAAOlP,SAAW5B,KAAKugM,mBAAmBxE,aAE/P,OAASghC,QAAoB,IAAWA,OAAmB,EAASA,EAAiB1sL,UAAY4qL,GAAkBE,SAAWh2H,IAC3HnlG,KAAKugM,mBAAmBhQ,gBAAkB,KAC1CiyC,EAAgBxiO,KAAKohO,kBAAkBv3C,IAG/C,IAAIs6C,EAAwBpH,GAAoBA,EAAiB1sL,SAAW4qL,GAAkBE,QAC9F,GAAIgJ,GAAyBj9J,GAASp2D,GAAUisN,GAAoBA,EAAiB/jB,YAAa,CAC9F,IAAIorB,EAAgB,GACpBrH,EAAiB/jB,YAAY93M,SAAQ,SAAU45M,GACvCA,EAAK5yL,SACLk8M,EAAcnhO,KAAK63M,EAAK5yL,YAG5Bk8M,EAAcxqO,QACdoG,KAAKsiO,uBAAuBz4C,EAAQu6C,EAAetzN,EAAO3J,WAAa,OAAQq7N,IAErFl4C,GAActqL,KAAKypH,UAAU5iG,WAAa7mB,KAAKypH,UAAUpZ,4BAE/Dr9F,MAAO,SAASgT,EAAUskK,GACtB,IAAKpqL,UAAUtG,OACX,OAAOoG,KAAKC,WAEhB,IAAIokO,EAAYr+M,GAAYA,EAASiH,QAAQ,IAAMjtB,KAAK+mB,gBAAgB,KAAkBE,KAAKjnB,KAAK8jO,wBAEpG,GADAO,GAAaA,EAAUv8M,SACnB,OAAS9B,QAAY,IAAWA,GAAYA,EAASsgD,SAAS,UAC9D,OAAOtmE,KAAKC,SAAS+lB,EAAUskK,GAEnC,IAMIyyC,EANAlzC,EAAS,OAAS7jK,QAAY,IAAWA,OAAW,EAASA,EAASiH,QAAQjtB,KAAKypL,yBACnFxpL,EAAWD,KAAKC,SAChB6wM,EAAYjnB,IAAWA,EAAO1jL,KAAK,gBAAkB6f,EAASiB,KAAK,IAAMjnB,KAAK+mB,gBAAgB,KAAkByE,GAAG,GAAGrlB,KAAK,gBAC3H0hE,EAAagiH,GAAUA,EAAO58J,QAAQ,WAAW9mB,KAAK,WACtD2kG,EAAoB9qG,KAAKihE,cAAc,WACvCrQ,EAASiX,EAAaijC,EAAkBwxH,eAAez0J,EAAW/sE,KAAO,KAEzE+kO,EAAuB7/N,KAAKihE,cAAc,cAC9C,GAAI6vI,EAAW,CACX+uB,EAAqBvC,aAAaxsB,GAClC,IAAIjvM,EAAQivM,EAAU/oL,OAAO,WAAWs+I,WACxC,GAAIm1D,GAA2B35N,EAAOgmE,IAAeg4J,EAAqBhE,gBAAgBjrK,GAkBtF,OAjBAk6C,EAAkB8uF,4BAA4BzsK,KAAK,KAC/C,kBAAK0yM,EAAqBb,aAAaluB,IAAY3jL,KAAKluB,IACpD89N,EAAmB99N,EACnB,IAAI6R,EAASisN,EAAiBjsB,UAAU/oL,OAAO,aAAlCg1M,GAAkDjsN,OAC3D8/C,GAAU9/C,IAAW+uN,EAAqBd,6BAA6B,CACnEnhC,OAAQhtI,EAAO91D,IACf8pB,YAAa9T,EAAO1P,UAIxB27N,EAAiB1sL,SAAW4qL,GAAkBE,UAC9C7wC,GAAa,GAEjBtqL,KAAKikO,gBAAgBj+M,EAAU+2M,EAAkBzyC,GACjDrqL,EAASulB,KAAKxlB,KAAMgmB,EAAUskK,QAG/BtqL,KAAKC,SAAS+lB,EAAUskK,GAIvC,OADAtqL,KAAKikO,gBAAgBj+M,EAAU+2M,EAAkBzyC,GAC1CtqL,KAAKC,SAAS+lB,EAAUskK,IAEnC6zC,kBAAmB,SAASr5M,GACxB,IAAI6iH,EAAU7iH,EAAWmC,KAAK,kBAAkBuE,GAAG,GACnD,OAAO,OAAczF,kBAAkB4hH,KAG/CxhI,KAAM,CACF2+F,eAAgB,SAASC,EAAQC,EAAQC,EAAiBrgF,EAAasgF,GACnE,IAAIo/H,EAAeC,EACfl6J,EAAO,QAAUi6J,EAAgBv/H,EAAOj9B,aAAU,IAAWw8J,OAAgB,EAASA,EAAc1/M,GACpG4/M,EAAsBn6J,GAAQA,EAAK4uI,iBACnC4mB,EAAuB7/N,KAAKihE,cAAc,cAC1C87J,EAAmB8C,EAAqBhC,wBAAwB,CAChEjgC,OAAQ74F,EAAOjqG,IACf8pB,YAAaA,IAEbk3M,EAAiB+D,EAAqB9D,mBAAmBh3H,EAAOjqG,KAChE2pO,EAAsBlJ,GAAwBwB,GAAoBA,EAAiB1sL,OAAS0sL,EAC5F2H,EAAgB3pO,KAAKC,UAAUgqG,EAAOI,kBAAoBrqG,KAAKC,UAAU+pG,EAAOK,gBAChFu/H,EAAwB,eAAE,OAASt6J,QAAQ,IAAWA,OAAO,EAASA,EAAK0D,aAAazH,SAAStmE,KAAK+mB,gBAAgBuzM,KACtHsK,EAAiB7/H,EAAO53B,YAAc63B,EAAO73B,UAC7C03J,EAAqB,OAASx6J,QAAQ,IAAWA,GAAgB,QAAUk6J,EAAwBl6J,EAAKv5D,OAAO88C,uBAAoB,IAAW22K,OAAtF,EAAuHA,EAAsB3qO,OACzM,SAAIgrO,GAAkBC,GAAsBL,IAAwBC,GAAuBC,GAAiB5I,EAAeh3E,SAAW6/E,IAG/H3kO,KAAKC,SAASnB,MAAMkB,KAAME,cAI7C6kE,MAAO,CACH74C,SAAU,CACNmkF,yBAA0B,SAASlnC,GAC/B,IAAIqmC,EACAL,EACA21H,EACA9+M,EAAWhmB,KAAK6mB,UAChBk+M,EAAkB/+M,GAAYA,EAASiB,KAAK,IAAMjnB,KAAK+mB,gBAAgB0zM,IAAgC,wBAE3G,GADAz6N,KAAKC,SAASkpE,GACV47J,GAAmBA,EAAgBnrO,SACnC41G,EAAexvG,KAAKm2E,kBACpB2uJ,EAAwB9kO,KAAK2vG,yBAAyBxmC,GACtDgmC,EAAuB21H,EAAsBrrJ,QACzC01B,GAAwB,IAAMK,EAAa51G,UAAYu1G,EAAqBvhH,GAAG,aAAe,eAAem3O,GAAmB,eAAe51H,KAG/I,OAFA21H,EAAsBr6K,OACtB,eAAUq6K,EAAuB,eAAeC,KACzC,GAInBjjC,kBAAmB,SAASn1H,EAAa7nD,GACrC9kB,KAAKC,SAASnB,MAAMkB,KAAME,WAC1B,eAAY,KACR,IAAIynI,EAAU7iH,EAAWmC,KAAK,cAAcwyD,QACxCurJ,EAAmBr9F,EAAQ/tI,SAAW+tI,EAAQtgE,WAAWztE,OACxDorO,GACDhlO,KAAKihE,cAAc,cAAcs9J,gBAAgB5xJ,EAAag7D,MAI1En8D,cAAe,SAAStE,EAAOf,GACtBnmE,KAAKihE,cAAc,WAAW4yJ,yBAC/B7zN,KAAKihE,cAAc,cAAcs9J,gBAAgBp4J,EAAYe,GAEjElnE,KAAKC,SAASnB,MAAMkB,KAAME,YAE9Bk0G,iBAAkB,SAAS6wH,GACvB,IAAIn6H,EAAoB9qG,KAAKihE,cAAc,WAC3C6pC,GAAqBA,EAAkBggB,cAAgB9qH,KAAKm2E,gBAAgB8uJ,GAAc7zD,KAAK,CAACryK,EAAGgI,KAC/F,IAAI8gE,EAAa,eAAE9gE,GAAMZ,KAAK,WAC9B,GAAI0hE,EAAY,CACZ,IAAIjX,EAASk6C,EAAkBwxH,eAAez0J,EAAW/sE,KACzD81D,GAAUk6C,EAAkB41H,cAAc9vK,WC/uCtE,EAAS6U,eAAe,aAAck6J,ICItC,IAAI97M,GAAwB,uBACxBqhN,GAAsBvhO,GAAQA,EAAKokB,OAAO,kCAAoCpkB,EAAKwhO,YAAYC,aAAezhO,EAAKwhO,YAAYE,uBAAyB,EACxJC,GAAoB3hO,GAAQA,EAAK4hO,OAAO3rO,OAAS+J,EAAK4hO,OAAO,GAAGhqK,WAAa,EAC7EiqK,GAAkB7hO,GAAQA,EAAK4hO,OAAO3rO,OAAS+J,EAAK4hO,OAAO5hO,EAAK4hO,OAAO3rO,OAAS,GAAG2hE,WAAa,EAChGkqK,GAAc,CAAC9hO,EAAM8wE,EAAS51B,KAC9Bl7C,EAAK+hO,kBAAmB,EACxBjxJ,EAAQ51B,GACRl7C,EAAK+hO,kBAAmB,GAExBC,GAAsB,CAAChiO,EAAM8wE,EAAS51B,KACtC,GAAIl7C,EAAKiiO,gBAGL,OAFAjiO,EAAKiiO,iBAAkB,EACvBH,GAAY9hO,EAAM8wE,EAAS51B,IACpB,GAGXgnL,GAAuBliO,IACvB,IAAI63D,EAAW73D,EAAKmiO,aAAatqK,WAC7BuqK,EAAiBpiO,EAAKokB,OAAO,4BACjC,GAAIg+M,EACA,OAAO,EAEX,IAAIC,EAAmBriO,EAAKwhO,YAAYc,eACxC,GAAItiO,EAAKwhO,YAAY92M,iBAAmB1qB,EAAKokB,OAAO,kCAAmC,CACnFi+M,EAAmB,EAMnB,IALA,IAAIC,EAAetiO,EAAKwhO,YAAYc,eAAiBtiO,EAAKwhO,YAAYe,mBAClE96M,EAASznB,EAAKwhO,YAAYgB,mBAC1B3xK,EAAW7wD,EAAKwhO,YAAYiB,sBAC5BC,EAAoB1iO,EAAKwhO,YAAYkB,oBACrCnoI,EAAkBv6F,EAAKmiO,aAAa5nI,kBAC/BuV,EAAY4yH,EAAkBC,MAAO7yH,EAAYvV,EAAiBuV,IAAa,CACpF,GAAIroF,GAAUopC,EAAWyxK,EACrB,MAEJ,IAAIn0D,EAAWnuK,EAAKwhO,YAAYoB,eAAe9yH,IAAc9vG,EAAKwhO,YAAYe,mBAC9E96M,GAAU0mJ,EACN1mJ,GAAUopC,GACVwxK,KAIZ,OAAOxqK,GAAYwqK,EAAmB,EAAIrkN,KAAKw8E,KAAK6nI,EAAmBxqK,GAAY,GAEnFgrK,GAAsB,CAAC7iO,EAAMm+B,KAC7B,IAAIk7B,EAAiBr5D,EAAKokB,OAAO,4BAC7B41E,EAAYkoI,GAAqBliO,GACjC2qB,EAAe3qB,EAAKwhO,YAAY72M,eAapC,OAZIqvE,IACI77D,EACA67D,EAAY3gC,EAAiB,EAAI,GAE7BA,GACA2gC,KAEArvE,GAAiB42M,GAAoBvhO,IACrCg6F,MAILA,GAEP8oI,GAAsB9iO,IACtB,IAAI1E,GAAU,EACVuyI,EAAiB8zF,GAAkB3hO,GACnC+iO,EAAc/iO,EAAKmiO,aACvB,GAAIt0F,EAAiB,EACjBvyI,EAAS0E,EAAK+vL,gBACX,GAAK/vL,EAAK4hO,OAAO5hO,EAAK+vL,WAAaliD,IAEnC,GAAIA,GAAkB,GAAK7tI,EAAKwhO,YAAYc,gBAAkB,EAAG,CACpE,GAAIz0F,EAAiB,EAAG,CACpB,IAAIm1F,EAA2BnB,GAAgB7hO,GAAQ,IAAM+iO,EAAY/oI,aAAeh6F,EAAK4hO,OAAO3rO,OAAS4sO,GAAoB7iO,GAAQ,EACrIijO,EAAqBD,GAA4BhjO,EAAK+vL,aAAeliD,GAAkBg1F,GAAoB7iO,GAAM,GACjHijO,IACA3nO,EAASuyI,EAAiB,GAGlC,GAAIvyI,EAAS,EAAG,CACZ,IAAI4nO,EAAqBr1F,EAAiB7tI,EAAK4hO,OAAO3rO,QAAU+J,EAAK+vL,WAAa8yC,GAAoB7iO,GAClGkjO,IACA5nO,EAASuyI,EAAiB7tI,EAAK4hO,OAAO3rO,eAZ9CqF,EAAS0E,EAAK+vL,WAmBlB,OAHI/vL,EAAKmjO,oBAAoB7nO,KACzBA,GAAU,GAEPA,GAEP8nO,GAAW,CAACpjO,EAAM43D,KAClB,IAAImrK,EAAc/iO,EAAKmiO,aACvB,GAAIvqK,IAAc53D,EAAK43D,cAAgBmrK,EAAYhhO,aAAe61D,EAAYmrK,EAAY/oI,cAAgB+oI,EAAYtoI,oBAAsB7iC,IAAcmrK,EAAY/oI,YAGlK,OAFA+oI,EAAYnrK,UAAUA,GACtB53D,EAAKmjO,oBAAoBvrK,IAAa,EAC/B,kBAAKmrK,EAAYp3M,QAAQwiE,OAAO,KACnCnuF,EAAKmjO,oBAAoBvrK,IAAa,KAI9CyrK,GAAiB,CAACrjO,EAAM8wE,EAASzD,EAAYi2J,EAAgBC,KAC7D,IAAIR,EAAc/iO,EAAKmiO,aACnBp9M,EAAQg+M,EAAYh+M,QAAQrF,QAC5ButC,EAAS,eAASogB,GAAcA,OAAa,EAC7Cm2J,EAAY,YAAcn2J,EAC1Bo2J,EAAgBV,EAAYU,gBAC5Bp2J,GAAc,eAASA,KAAgBrtE,EAAKiiO,kBAC5Ch1K,EAAS,CACLogB,WAAYA,EACZtoD,MAAOA,GAEPw+M,IACAt2K,EAAOy2K,YAAcH,EAAgBlsI,WACjCpqC,EAAOy2K,aAAeX,EAAYY,eAClC12K,EAAOy2K,YAAcX,EAAYY,aAAaF,EAAex2K,EAAOy2K,YAAaF,MAI7F,IAAII,EAAkBL,EAAkBA,EAAgBM,YAAc,EAClED,GAAmBb,EAAYY,eAC/BC,EAAkBb,EAAYY,aAAaF,EAAeG,EAAiBJ,IAE3E,WAAan2J,GACbo2J,EAAcnkO,KAAKnE,MAAMsoO,EAAe1+M,GACpCw+M,GACAE,EAAc7zJ,OAAO,EAAGg0J,IAErBJ,GACPC,EAAc51M,QAAQ1yB,MAAMsoO,EAAe1+M,GACvCw+M,GACAE,EAAc7zJ,QAAQg0J,IAG1B5jO,EAAKmiO,aAAasB,cAAc1+M,GAEpCg+M,EAAYe,gBACZ9jO,EAAK+jO,eAAiB/jO,EAAK43D,YAC3B53D,EAAKiiO,gBAAkBqB,EAClBA,GACDxB,GAAY9hO,EAAM8wE,EAAS7jB,IAG5B,MAAM,GACT,YAAY7iC,EAAY24M,GACpB1mO,KAAKmlO,YAAcp3M,EACnB/tB,KAAK8lO,aAAeY,EACpB1mO,KAAK0zL,WAAa1zL,KAAK0nO,eAAiBhB,EAAYnrK,YACpDv7D,KAAKulO,OAAS,GACdvlO,KAAK8mO,oBAAsB,GAE/B,SACI,OAAO9mO,KAAKmlO,YAAYp9M,OAAOjpB,MAAMkB,KAAKmlO,YAAajlO,WAE3D,yBAAyBuzG,GACrB,IAKIk0H,EALAnsK,EAAWx7D,KAAK8lO,aAAatqK,WAC7BmiC,EAAY39F,KAAK8lO,aAAanoI,YAC9B2E,EAActiG,KAAKmlO,YAAY92M,gBAC/Bg0E,EAAariG,KAAKmlO,YAAY72M,eAC9B4vE,EAAkBl+F,KAAK8lO,aAAa5nI,kBAExC,GAAI1iC,IAAa8mC,GAAeD,IAAenE,GAAmB,EAAG,CACjE,IAAI+nI,EAAejmO,KAAKmlO,YAAYc,eACpC,GAAIA,GAAgBxyH,EAAYwyH,GAAgB/nI,IAAoBl+F,KAAKmlO,YAAYC,YACjF,GAAIplO,KAAK8lO,aAAa1nI,mBAAoB,CACtCupI,EAAehqI,EAAY,EAC3B,IAAIiqI,EAAe1pI,EAAkB1iC,EACjCmsK,EAAe,GAAKC,EAAe,GAAKA,EAAe3B,GACvD0B,SAGJA,EAAehqI,MAEhB,CACHgqI,EAAehmN,KAAKI,MAAM0xF,EAAYj4C,GACtC,IAAIqsK,EAAelqI,EAAY,EAC/BgqI,EAAehmN,KAAKqQ,IAAI21M,EAAc,GACtCA,EAAehmN,KAAKC,IAAI+lN,EAAcE,GAG1C,OADA7nO,KAAKu7D,UAAUosK,GACR3nO,KAAKsvB,QAGpB,UAAUisC,GACN,IAAIltC,EAAgBruB,KAAKmlO,YAAY92M,gBACjCC,EAAetuB,KAAKmlO,YAAY72M,eACpC,OAAI,IAAUtuB,KAAK+nB,OAAOlE,MAA2BwK,GAAiBC,SAC9D,IAAWitC,IACXv7D,KAAK0zL,WAAan4H,GAEfv7D,KAAK0zL,YAEL1zL,KAAK8lO,aAAavqK,UAAUA,GAG3C,eAAeusK,GACX,IAAIt2F,EAAiB8zF,GAAkBtlO,MAIvC,OAHIwxI,EAAiB,IACjBA,OAAiB,IAAWs2F,EAAmBA,EAAmB9nO,KAAKu7D,aAEpEi2E,EAEX,eACI,IAAIu2F,EAAevC,GAAgBxlO,MACnC,OAAO+nO,EAAe,EAAIA,EAAe/nO,KAAK0nO,eAElD,WACI,OAAO1nO,KAAK8lO,aAAatqK,WAE7B,OACI,IACIv8D,EADAynO,EAAc1mO,KAAK8lO,aAEnBz3M,EAAgBruB,KAAKmlO,YAAY92M,gBACjCC,EAAetuB,KAAKmlO,YAAY72M,eACpC,IAAI,IAAUtuB,KAAK+nB,OAAOlE,MAA2BwK,GAAiBC,GAAe,CACjF,IAAI05M,EAAmBvB,GAAoBzmO,MAC3C,GAAIgoO,GAAoB,EAAG,CACvB,IAAIzpI,EAAawoI,GAAS/mO,KAAMgoO,GAC5BzpI,IACAt/F,EAAS,IAAI,cACbs/F,EAAWpxE,KAAK,KACZ,IAAI86M,EAAgBjoO,KAAKkoO,eACrBD,EACAA,EAAc96M,KAAKluB,EAAOuwB,SAASG,KAAK1wB,EAAO4kC,QAE/C5kC,EAAOuwB,YAEZG,KAAK1wB,EAAO4kC,QACf6iM,EAAYe,uBAIpBxoO,EAASynO,EAAYp3M,OAOzB,OALKrwB,GAAUe,KAAK0nO,iBAAmB1nO,KAAKu7D,aACxCv7D,KAAK8lO,aAAaqC,UAAU,CACxBn3J,WAAY,cAGb/xE,IAAU,IAAK,eAAUuwB,UAEpC,aACI,IAAInB,EAAgBruB,KAAKmlO,YAAY92M,gBACjCC,EAAetuB,KAAKmlO,YAAY72M,eACpC,IAAKD,GAAiBC,KAAkBtuB,KAAK8lO,aAAapgO,eAAiB1F,KAAK0lO,kBAAoB1lO,KAAKmlO,YAAYC,aAAc,CAC/H,IAAI5wK,EAAWx0D,KAAKmlO,YAAYiB,sBAC5B5xK,EAAW,EACXx0D,KAAKmlO,YAAYiD,yBAAyB5zK,GAE1Cx0D,KAAKsvB,QAIjB,kBAAkBrvB,EAAU2D,GACxB,IAEIotE,EACAq3J,EAHA3B,EAAc1mO,KAAK8lO,aACnBwC,EAAkBtoO,KAAKulO,OAAO3rO,OAG9By0B,EAAgBruB,KAAKmlO,YAAY92M,gBACjCC,EAAetuB,KAAKmlO,YAAY72M,eACpC,GAAI1qB,GAAKA,EAAEqJ,QACPw4N,GAAYzlO,KAAMC,EAAU2D,QACzB,IAAI,IAAU5D,KAAK+nB,OAAOlE,MAA2BwK,GAAiBC,GAAe,CACxF,IAAIkjH,EAAiB8zF,GAAkBtlO,MACvC,GAAIwxI,GAAkB,IACdnjH,GAAiBmjH,EAAiBxxI,KAAKulO,OAAO3rO,SAAW8sO,EAAYnrK,aAAei2E,EAAiB,IAAMk1F,EAAYnrK,cACvH+sK,EAAkB,EAClBtoO,KAAKulO,OAAS,IAEdj3M,GACA,GAAI,IAAMo4M,EAAYnrK,YAClBv7D,KAAKulO,OAAS,QACX,GAAImB,EAAYnrK,YAAciqK,GAAgBxlO,MAKjD,YAJAylO,GAAYzlO,KAAMC,EAAU,CACxB+wE,WAAY,SACZtoD,MAAO,KAMvB,IAYIw+M,EAZApwI,EAAY,CACZv7B,UAAWmrK,EAAYnrK,YACvBisK,YAAad,EAAYh+M,OAAM,GAAM9uB,OACrCohG,WAAYh7F,KAAKg7F,YAAW,IAE5Bh7F,KAAK+nB,OAAO,mCAAqCsG,EACjDg6M,EAAuBroO,KAAKulO,OAAO3rO,OAAS+nB,KAAKqQ,IAAIw0M,GAAoBxmO,OAASA,KAAK+nB,OAAO,4BAA8B,EAAI,GAAI,GAEpI49M,GAAoB3lO,KAAMC,EAAU,CAChC6hG,WAAW,IAIf0vC,IAAmBk1F,EAAYnrK,YAAc,GACzC8sK,IACAnB,EAAkBlnO,KAAKulO,OAAOtzM,OAElC++C,EAAa,UACbhxE,KAAKulO,OAAO/zM,QAAQslE,KAEhBuxI,IACAnB,EAAkBlnO,KAAKulO,OAAO5jM,SAElCqvC,EAAa,SACbhxE,KAAKulO,OAAOtiO,KAAK6zF,IAErB,IAAImwI,EAAiB54M,GAAiB,IAAMi6M,GAAmBpD,GAAoBllO,MACnFgnO,GAAehnO,KAAMC,EAAUD,KAAKulO,OAAO3rO,OAAS,EAAIo3E,OAAa,EAAQi2J,EAAgBC,GAC7FlnO,KAAKkoO,eAAiBloO,KAAKsvB,OAAOnC,KAAK,KAC/Bw4M,GAAoB3lO,KAAMC,IAC1BD,KAAKsvB,cAIb03M,GAAehnO,KAAMC,EAAU2D,GAGvC,mBACI,OAAO5D,KAAKkoO,eAEhB,WAAWK,GACP,IAAIvtI,EAAa,EACb3sE,EAAgBruB,KAAKmlO,YAAY92M,gBAQrC,OAPKk6M,GAAUl6M,EACXruB,KAAKulO,OAAOrkO,QAAQ41F,IAChBkE,GAAclE,EAAUkE,aAG5BA,EAAah7F,KAAK8lO,aAAa9qI,aAE5BA,EAEX,oBACI,IAAIz/B,EAAY+pK,GAAkBtlO,MAC9Bu7D,EAAY,IACZA,EAAYv7D,KAAK8lO,aAAavqK,aAElC,IAAIitK,EAAkBjtK,EAAYv7D,KAAK8lO,aAAatqK,WAChDw/B,EAAah7F,KAAKulO,OAAO3rO,OAASoG,KAAK8lO,aAAatqK,WACpDitK,EAAgB9mN,KAAKqQ,IAAI,EAAGhyB,KAAK8lO,aAAa5nI,kBAAoBlD,EAAawtI,GACnF,MAAO,CACHlC,MAAOkC,EACPrmM,IAAKsmM,GAGb,QACIzoO,KAAK8mO,oBAAsB,GAC3B9mO,KAAKulO,OAAS,IC5UtB,IAAI5hN,GAA0B,WAC1BC,GAAyB,UACzB,GAAwB,uBACxB8kN,GAAiB/kO,GAAQA,EAAKokB,OAAO,oBAAsBnE,IAA0BjgB,EAAKglO,WAC1FC,GAAgBjlO,GAAQA,EAAKokB,OAAO,oBAAsBpE,KAA4BhgB,EAAKglO,WACxF,SAASE,GAA6B7iN,EAAU8iN,EAAsBzuJ,GACzE,IAAI0uJ,EACAC,EAAkB,GAClBC,EAAgB,GAChBC,EAAe,GAGnB,SAASC,EAAiBj9H,GACtB,IAAIk9H,EAAqBl9H,EAAWrlF,QAAUqlF,EAAWlmF,WAAakmF,EAClEm9H,EAAmB,QAAcj+M,OAAOg+M,GAC5C,OAAKC,EAGEn9H,EAAWukB,aAAe44G,EAAiBz9M,IAAM5F,EAASoF,SAASQ,KAF/D5F,EAASoF,SAASQ,IANjCyuD,EAAiBA,GAAkBr0D,EAUnC,IAAIsjN,EAAuB,CACvBjkO,GAAI,SAAS6mG,EAAY0W,EAAWU,GAChCpX,EAAW7mG,GAAG,SAAUi+G,IAE5B/iD,IAAK,SAAS2rC,EAAY0W,EAAWU,GACjCpX,EAAW3rC,IAAI,SAAU+iD,KAIjC,SAASimH,EAAwBR,GAC7B,IAAI3kH,EAAa,cAAgB2kH,EAAerrO,IAAI,GAAGktE,SACnDshC,EAAa68H,EAAe5iO,KAAK,gBACjCqjO,EAAiBF,EACrB,GAAKp9H,IACDA,EAAakY,GAAc,eAAE,mBAAgB,SAAW2kH,EAAet9M,IAAI,cAAgBs9M,EAC3FS,EAAiB,OACZt9H,GAHT,CAOA,IAAIoX,EAAU,SAASpX,GACnB,OAAO,WACH,IAAIukB,EAAYvkB,EAAWukB,YAAc04G,EAAiBj9H,GAC1DukB,EAAYA,EAAY,EAAIA,EAAY,EACxCq4G,EAAqBr4G,IAJf,CAMZvkB,GACFs9H,EAAenkO,GAAG6mG,EAAY,SAAUoX,GACxC2lH,EAAchmO,MAAK,SAAU2xE,GACzB,IAAI60J,EAAYN,EAAiBj9H,GAC7Bw9H,EAAex9H,EAAWr7B,SAAW,WAAa,YAClD+D,EAAM60J,GAAa,GACnBv9H,EAAWw9H,GAAc90J,EAAM60J,MAGvCT,EAAgB/lO,KAAKipG,GACrBg9H,EAAajmO,MAAK,WACdumO,EAAejpK,IAAI2rC,EAAY,SAAUoX,OAGjD,IAAKylH,EAAiB1uJ,EAAensD,SAAU66M,EAAenvO,OAAQmvO,EAAiBA,EAAe76M,SAClGq7M,EAAwBR,GAE5B,MAAO,CACHl4J,SAAU,SAAS+D,GACf,eAAKq0J,GAAe,SAAUlqO,EAAG8xE,GAC7BA,EAAS+D,OAGjBnT,QAAS,WACL,eAAKynK,GAAc,SAAUnqO,EAAG0iE,GAC5BA,SAKT,IAAIkoK,GAA0B,OAAMtqK,QAAQ,WAC/C,IAAIkgC,EAAU,CACVhgC,KAAM,SAASxyD,EAAW25N,EAAatB,GACnCplO,KAAK8lO,aAAeY,EACpB1mO,KAAK+M,UAAYA,EACjB/M,KAAK4pO,eAAgB,IAAU78N,EAAUgb,OAAO,IAAyB,GAAK,EAC9E/nB,KAAK6pO,kBAAoB,GACzB7pO,KAAK8pO,mBAAqB,EAC1B9pO,KAAK+pO,UAAY,EACjB/pO,KAAKgqO,kBAAmB,EACxBhqO,KAAKuyK,aAAe,EACpBvyK,KAAKiqO,WAAa,GAClBjqO,KAAKkqO,WAAa,EAClBlqO,KAAK2oO,WAAavD,EAClBplO,KAAKmqO,gBAAkB,uBACvBnqO,KAAKoqO,YAAc,IAAI,GAAkBpqO,KAAMA,KAAK8lO,eAExDS,aAAc,WACV,OAAOvmO,KAAKiqO,YAEhBliN,OAAQ,WACJ,OAAO/nB,KAAK+M,UAAUgb,OAAOjpB,MAAMkB,KAAK+M,UAAW7M,YAEvDklO,UAAW,WACP,OAAOplO,KAAK2oO,YAEhBtC,kBAAmB,WACf,GAAIqC,GAAe1oO,MAAO,CACtB,IAAI0mO,EAAc1mO,KAAK8lO,aACnB5nI,EAAkBwoI,EAAYxoI,kBAClC,IAAI,IAAUl+F,KAAK+nB,OAAO,MAA2B,IAAMm2E,EAAiB,CACxE,IAAImsI,EAAiBrqO,KAAKsqO,oBACtBC,EAAe7D,EAAY6D,eAC3BC,EAAkB9D,EAAY8D,kBAC9B96M,EAAO/N,KAAKqQ,IAAIq4M,EAAe36M,KAAM66M,GACrC96M,EAAO9N,KAAKC,IAAIyoN,EAAe56M,KAAM+6M,GACrC/B,EAAgB9mN,KAAKqQ,IAAIksE,GAAmBxuE,EAAOD,GAAO,GAC9D,MAAO,CACH62M,MAAO52M,EACPyS,IAAKsmM,GAGb,OAAOzoO,KAAKoqO,YAAY/D,kBAAkBvnO,MAAMkB,KAAKoqO,YAAalqO,aAG1EuqO,oBAAqB,WACjB,IAAIpiL,EAAcroD,KAAK+nB,OAAO,yBAC1B2iN,EAAmB,EACvB,GAAK,eAAUriL,IAKR,GAAIA,EAAa,CACpB,IAAIkyJ,EACJmwB,EAAmB,QAAUnwB,EAAev6M,KAAK+nB,OAAO,4BAAyB,IAAWwyL,EAAeA,EAAe,QAN1HmwB,EAAmB/oN,KAAKC,IAAI5hB,KAAK+nB,OAAO,sBAAwB,EAAG/nB,KAAK8lO,aAAa6E,oBACjFD,EAAmB1qO,KAAK+nB,OAAO,kCAC/B2iN,EAAmB1qO,KAAK+nB,OAAO,yBAA2B,GAMlE,OAAO2iN,GAEXE,oBAAqB,SAASp2K,GAC1B,IAAIv1D,EAAS,IAAI,cACbyrO,EAAmB1qO,KAAKyqO,sBAW5B,OAVAhhK,aAAazpE,KAAK6qO,kBACdH,EAAmB,EACnB1qO,KAAK6qO,iBAAmB53N,WAAW,KAC/BjT,KAAKooO,yBAAyB5zK,GAC9Bv1D,EAAOuwB,WACRk7M,IAEH1qO,KAAKooO,yBAAyB5zK,GAC9Bv1D,EAAOuwB,WAEJvwB,EAAOqxB,WAElB81M,oBAAqB,WACjB,OAAOpmO,KAAK+pO,WAEhBe,uBAAwB,SAASt2K,EAAUu2K,EAAmBr5N,GAC1D,IAAIq4N,EACJv1K,EAAW,QAAUu1K,EAAYv1K,SAAa,IAAWu1K,EAAYA,EAAY/pO,KAAK+pO,UAKtF,IAJA,IAAIiB,EAAkBhrO,KAAKirO,cACvB7/M,EAAS,EACT8/M,EAAa,EACbC,EAAsB3tO,OAAO84B,KAAKt2B,KAAKiqO,YAAYp4N,QAAQ,GACtDpW,EAAI,EAAGA,EAAI0vO,EAAoBvxO,QAAUwxB,EAASopC,EAAU/4D,IAAK,CACtE,IAAI2vO,EAAqB7pO,SAAS4pO,EAAoB1vO,IAClD4vO,GAAkB72K,EAAWppC,GAAU4/M,EAC3C,GAAII,EAAqB,GAAKF,EAAaG,EAAiBD,EAAoB,CAC5EF,GAAcG,EACVrrO,KAAKkqO,WAAa,GAAK,eAAUa,KACjCG,EAAaH,EAAoBr5N,EAAS1R,KAAK6pO,mBAEnD,MAEAwB,EAAiBD,EAAqBF,EACtC9/M,GAAUigN,EAAiBL,EAC3BE,GAAcG,EAElB,IAAIv5D,EAAW9xK,KAAKiqO,WAAWmB,GAC/BhgN,GAAU0mJ,EACVo5D,GAAc9/M,EAASopC,EAAW,GAAKA,EAAWppC,EAAS0mJ,GAAYA,EAE3E,OAAOnwJ,KAAKwqF,MAAM,GAAK++H,GAAc,IAEzCI,gBAAiB,WACb,OAAOtrO,KAAKgqO,kBAEhB5B,yBAA0B,SAAS5zK,GAC/B,IAAI+2K,EAAevrO,KAAK+pO,WAAa,EACrC/pO,KAAK+pO,UAAYv1K,EACb+2K,IAAiBvrO,KAAK+pO,YACtB/pO,KAAKgqO,iBAAmBhqO,KAAK+pO,UAAYwB,GAE7C,IAAI93H,EAAYzzG,KAAK8qO,yBACjB7rO,EAASe,KAAKwrO,qBAAqB/3H,GAEvC,OADAzzG,KAAKmqO,gBAAgBrmK,OACd7kE,GAEXwsO,oBAAqB,SAASC,GAC1B,IAAIrF,EAAoBrmO,KAAKqmO,oBAE7B,GADArmO,KAAKuyK,aAAem5D,EAAM30M,OAAO,CAACh1B,EAAGC,IAAMD,EAAIC,EAAG,GAC9CqkO,EAAmB,CACnBqF,EAAMxqO,QAAQ,CAAC6Q,EAAM3Q,KACjBpB,KAAKiqO,WAAW5D,EAAkBC,MAAQllO,GAAS2Q,IAEvD,IAAI45N,GAAsBtF,EAAkBC,MAAQD,EAAkBlkM,IAAMniC,KAAKg7F,cAAgBh7F,KAAK6pO,kBAClG+B,EAAqB,OAAct+G,sBAAsB7+F,EAAA,MAEzDzuB,KAAKkqO,WADLyB,EAAqBC,EACHA,EAAqBD,EAErB,IAI9BV,YAAa,WACT,OAAOjrO,KAAK6pO,kBAAoB7pO,KAAKkqO,YAEzC2B,cAAe,SAASp4H,EAAWq4H,GAC/B,IAAIzF,EAAoBrmO,KAAKqmO,oBACzBt1H,EAAY0C,EAChB,IAAK4yH,EACD,OAAO,EAEX,IAAIj7M,EAAS,EACT8yE,EAAkBl+F,KAAK8lO,aAAa5nI,kBAUxC,OATA1gG,OAAO84B,KAAKt2B,KAAKiqO,YAAY/oO,QAAQ6qO,IAC5Bh7H,IAGD+6H,EAAQC,GAAoB7tI,EAAkBuV,EAAYs4H,EAAmBt4H,KAC7EroF,GAAUprB,KAAKiqO,WAAW8B,GAC1Bh7H,OAGDpvF,KAAKI,MAAMqJ,EAAS2lF,EAAY/wG,KAAK6pO,kBAAoB7pO,KAAKkqO,aAEzE/D,iBAAkB,SAAS1nO,GACvB,IAAIqtO,EAAQ,QAAUrtO,EAClB4nO,EAAoBrmO,KAAKqmO,oBAC7B,OAAKA,EAGErmO,KAAK6rO,cAAcC,EAAQzF,EAAkBlkM,IAAMkkM,EAAkBC,MAAOwF,GAFxE,GAIfE,sBAAuB,WACnB,IAAI3F,EAAoBrmO,KAAKqmO,oBAC7B,OAAOA,EAAoBrmO,KAAKmmO,iBAAiB,SAAWnmO,KAAKmmO,iBAAiB,OAASnmO,KAAKuyK,aAAe,GAEnH8yD,qBAAsB,WAClB,OAAOrlO,KAAK8pO,oBAEhB0B,qBAAsB,SAAS/3H,GAE3B,GADAzzG,KAAK8pO,mBAAqBr2H,GACtB,IAAUzzG,KAAK+nB,OAAO,IAG1B,OAAO/nB,KAAKoqO,YAAY6B,yBAAyBntO,MAAMkB,KAAKoqO,YAAalqO,YAE7EgmO,iBAAkB,SAASn0N,GAIvB,YAHI,IAAWA,IACX/R,KAAK6pO,kBAAoB93N,GAEtB/R,KAAK6pO,mBAEhB5D,aAAc,SAASl0N,GAInB,YAHI,IAAWA,IACX/R,KAAK4pO,cAAgB73N,GAElB/R,KAAK4pO,eAEhBsC,eAAgB,SAASx6N,EAAQ++G,GAC7B,IAAIj8D,EAAW,OAASi8D,QAAa,IAAWA,EAAYA,EAAYzwH,KAAK+pO,UACzEzD,EAAQtmO,KAAK8qO,uBAAuBt2K,GACpCryB,EAAMniC,KAAK8qO,uBAAuBt2K,EAAW9iD,EAAQ40N,EAAO50N,GAChE1R,KAAKimO,aAAatkN,KAAKw8E,KAAKh8D,EAAMmkM,IAC7B,eAAU71G,IAAczwH,KAAK8pO,qBAAuBxD,GACrDtmO,KAAKooO,yBAAyB5zK,IAGtC63B,MAAO,SAAS8/I,GACZnsO,KAAKoqO,YAAY/9I,QACZ8/I,IACDnsO,KAAKiqO,WAAa,KAG1BmC,8BAA+B,SAASpmN,GACpChmB,KAAKqsO,cAAgBrsO,KAAKqsO,eAAiBxD,GAA6B7iN,EAAUyqG,IAC1EzwH,KAAKkmO,oBACLlmO,KAAK4qO,oBAAoBn6G,MAIrChvD,QAAS,WACLgI,aAAazpE,KAAK6qO,kBAClB7qO,KAAKqsO,eAAiBrsO,KAAKqsO,cAAc5qK,UACzCzhE,KAAKqsO,cAAgB,MAEzBx7J,SAAU,SAAS+D,GACf50E,KAAKqsO,eAAiBrsO,KAAKqsO,cAAcx7J,SAAS+D,IAEtDvmD,cAAe,WACX,OAAOq6M,GAAe1oO,OAE1BsuB,aAAc,WACV,OAAOs6M,GAAc5oO,OAEzBsqO,kBAAmB,WACf,IAAIgC,EACAhqI,EAActiG,KAAK+nB,OAAO,oBAAsBnE,GAChDs6E,EAAkBl+F,KAAK8lO,aAAa5nI,kBACpCE,EAAmBp+F,KAAK8lO,aAAa1nI,mBACrCmuI,EAAWnuI,GAAoBp+F,KAAK8pO,mBAAqB5rI,EAAkBA,EAAkBl+F,KAAK8pO,mBAClG0C,EAAcxsO,KAAK4pO,cAAgB2C,EACnCE,EAASzsO,KAAK+nB,OAAO,sCAAwC,EAC7DujN,EAAkBtrO,KAAKsrO,kBACvBoB,EAAS,QAAUJ,EAAgBtsO,KAAK+nB,OAAO,wCAAqC,IAAWukN,EAAgBA,EAAgB,EAC/HK,EAAYrB,EAAkBoB,EAAS,EACvCE,EAAetB,EAAkB,EAAIoB,EACrCh9M,EAAO/N,KAAKI,MAAMJ,KAAKqQ,IAAI,EAAGu6M,EAAWI,GAAaF,GAAUA,EAChEh9M,EAAO9N,KAAKw8E,MAAMquI,EAAcI,EAAel9M,GAAQ+8M,GAAUA,EACrE,GAAInqI,EAAa,CACb,IAAIuqI,EAAgBlrN,KAAKqQ,IAAI,EAAGksE,EAAkBxuE,GAClDD,EAAO9N,KAAKC,IAAI6N,EAAMo9M,GAE1B,MAAO,CACHn9M,KAAMA,EACND,KAAMA,IAGdurE,WAAY,WACR,IAAI/7F,EAAS,EAMb,OAJIA,EADAe,KAAK+nB,OAAO,IACH/nB,KAAKoqO,YAAYpvI,WAAWl8F,MAAMkB,KAAKoqO,YAAalqO,WAEpDF,KAAK8lO,aAAa9qI,aAExB/7F,IAQf,MALA,CAAC,YAAa,iBAAkB,eAAgB,WAAY,OAAQ,aAAc,oBAAqB,oBAAoBiC,SAAQ,SAAUU,GACzI29F,EAAQ39F,GAAQ,WACZ,OAAO5B,KAAKoqO,YAAYxoO,GAAM9C,MAAMkB,KAAKoqO,YAAalqO,eAGvDq/F,EAxQwC,ICvE/CutI,GAA0B,oBAC1BC,GAAsB,gBACtB,GAAoB,cACpB,GAAgB,UAChBC,GAAkB,mBAClB,GAAqB,kBACrBC,GAAoB,iBACpB,GAAe,kBACf,GAA0B,WAC1B,GAAyB,UACzBC,GAAe,IACf,GAAwB,uBACxBC,GAAqB,mBACrB,GAAgB,SAASxpO,GACzB,OAAOA,EAAKokB,OAAO,oBAAsB,IAEzC,GAAe,SAASpkB,GACxB,OAAOA,EAAKokB,OAAO,oBAAsB,IAEzCwsH,GAAkB,SAAS5wI,GAC3B,OAAO,GAAcA,IAAS,GAAaA,IAE3CypO,GAAgB,SAAS1kN,EAAOnH,EAAO80E,EAASg3I,GAChD,IAAK,IAAI5xO,EAAI,EAAGA,EAAI8lB,EAAQ,EAAG9lB,IAAK,CAChC,IAAIsL,EAAO2hB,EAAM2tE,EAAU3tE,EAAM9uB,OAAS,EAAI6B,EAAIA,GAC9CsL,IAASsmO,EAAoBtmO,EAAMtL,IAAM8lB,EAAO80E,IAChD90E,IAGR,OAAOA,GAEP+rN,GAA8B,SAASvmO,EAAMwiB,GAC7C,MAAO,SAAWxiB,EAAKoK,UAAYpK,EAAKklB,UAAY,UAAYllB,EAAKoK,SAAWoY,EAAWukH,qBAAqB/mI,EAAKZ,OAErHonO,GAAoB,SAAS7kN,GAI7B,OAHAA,EAAMxnB,SAAQ,SAAU6F,EAAM3F,GAC1B2F,EAAK8iE,SAAWzoE,KAEbsnB,GAEP8kN,GAA4C,WAC5C,IAAIC,EAAiB,SAAS9pO,GAC1B,IAAI6tI,EAAiB7tI,EAAK+pO,yBAAyBl8F,gBAAgB,GAC/D,GAAc7tI,KACV6tI,EAAiB,GAAK7tI,EAAKsiO,gBAAkB,GAAKtiO,EAAK0hO,wBAA0B,IAAM7zF,EAAiB7tI,EAAK63D,WAAa73D,EAAK0hO,wBAA0B7zF,EAAiB7tI,EAAK63D,WAAa73D,EAAKq3F,aAAer3F,EAAK0hO,uBAAyB1hO,EAAKsiO,iBAAmBtiO,EAAK6lB,YAAY9jB,YAClR/B,EAAKm8F,aACNn8F,EAAKm8F,YAAa,EAClBn8F,EAAKy0F,eAAet0B,MAAK,IAEtBngE,EAAKm8F,aACZn8F,EAAKm8F,YAAa,EAClBn8F,EAAKy0F,eAAet0B,MAAK,MAIjC7kE,EAAS,CACT8gE,KAAM,WACF//D,KAAKC,SAASnB,MAAMkB,KAAME,WAC1BF,KAAKk7F,OAAS,GACdl7F,KAAK2tO,aAAe,EACpB3tO,KAAK0/H,WAAY,EACjB1/H,KAAK4tO,eAAiB,EACtB5tO,KAAK0tO,yBAA2B,IAAI/D,GAAwB3pO,KAAK+M,UAAW/M,KAAK6tO,iCAErFA,6BAA8B,WAC1B,IAAIlqO,EAAO3D,KACX,MAAO,CACHw7D,SAAU,WACN,OAAO73D,EAAK63D,YAEhB0iC,gBAAiB,WACb,OAAOv6F,EAAKu6F,mBAEhBE,iBAAkB,WACd,OAAOz6F,EAAKy6F,oBAEhB7iC,UAAW,SAASn6D,GAChB,OAAOuC,EAAK6lB,YAAY+xC,UAAUn6D,IAEtCsE,UAAW,WACP,OAAO/B,EAAK6lB,YAAY9jB,cAAgB/B,EAAKm4F,mBAEjD6B,UAAW,WACP,OAAOh6F,EAAKg6F,aAEhBruE,KAAM,WACF,OAAO3rB,EAAK6lB,YAAY8F,QAE5Bm4M,cAAe,WACXgG,EAAe9pO,IAEnBq3F,WAAY,WACR,OAAOr3F,EAAKq3F,YAAW,IAE3BtyE,MAAO,WACH,OAAO/kB,EAAK6lB,YAAYd,SAE5B0+M,cAAe,SAAS1+M,GAIpB,OAHIA,IACA/kB,EAAKu3F,OAASxyE,GAEX/kB,EAAKu3F,QAEhBitI,UAAW,SAASvkO,GAChBD,EAAK8wE,QAAQ3Q,KAAKlgE,IAEtB+mO,iBAAkB,SAAS/mO,GACvB,OAAID,EAAK+B,YACEwnO,GAEJvpO,EAAKmqO,aAAe,KAIvC/0I,sBAAuB,SAASrzF,IACxB,IAAU1F,KAAK+nB,OAAO,KAIrB,GAAc/nB,QAASA,KAAKm4F,gBAC7Bn4F,KAAK8/F,WAAap6F,EAClB1F,KAAKC,SAASnB,MAAMkB,KAAME,YAG1BF,KAAK+tO,eADLroO,EACsB,IAAI3L,UAEJ,GAVtBiG,KAAKC,SAASnB,MAAMkB,KAAME,YAalC+4F,iBAAkB,YACV,IAAUj5F,KAAK+nB,OAAO,MACtB/nB,KAAK8/F,YAAa,EAClB9/F,KAAKo4F,eAAet0B,MAAK,IAE7B9jE,KAAKC,SAASnB,MAAMkB,KAAME,YAE9Bw0E,mBAAoB,SAAS9wE,GACzB,IAAI,IAAU5D,KAAK+nB,OAAO,IAItB,OAHA/nB,KAAKk7F,OAASl7F,KAAKwpB,YAAYd,QAAQrF,QACvCrjB,KAAK2tO,YAAc3tO,KAAKg+F,uBAAsB,QAC9Ch+F,KAAKC,SAASnB,MAAMkB,KAAME,WAG9B,IAAID,EAAWD,KAAKC,SAASuqB,KAAKxqB,MAClCA,KAAK0tO,yBAAyBM,kBAAkB/tO,EAAU2D,IAE9D+3F,2BAA4B,SAAS3qF,EAASqkF,GAC1C,IAAI44I,GAAU,IAAUjuO,KAAK+nB,OAAO,IAChCsgC,EAAcroD,KAAK+nB,OAAO,yBACzB,eAAUsgC,KACXA,EAAcroD,KAAK8tO,aAAe9tO,KAAK+nB,OAAO,mCAE7C,GAAc/nB,OAAS,GAAaA,OAASiuO,IAAa54I,EAAeC,SAAWD,EAAe3lE,OAAQu+M,GAAa5lL,IACzHr3C,EAAQg3B,WAAQ,GAEpBhoC,KAAKC,SAASnB,MAAMkB,KAAME,YAE9BwoB,MAAO,WACH,OAAO1oB,KAAKk7F,QAEhB8C,sBAAuB,SAASuqI,GAC5B,OAAO,IAAUvoO,KAAK+nB,OAAO,KAA0B,GAAc/nB,QAAUuoO,EAASvoO,KAAK2tO,YAAc3tO,KAAKC,YAEpH+6F,WAAY,SAASutI,GACjB,OAAIA,IAAU,IAAUvoO,KAAK+nB,OAAO,IACzB/nB,KAAKC,WAETD,KAAK0tO,yBAAyB1yI,cAEzC1rE,KAAM,SAASC,GACX,OAAI,IAAUvvB,KAAK+nB,OAAO,KAA0BwH,EACzCvvB,KAAKC,SAASsvB,GAElBvvB,KAAK0tO,yBAAyBp+M,QAEzC5pB,UAAW,WACP,OAAO,IAAU1F,KAAK+nB,OAAO,IAAyB/nB,KAAKwpB,YAAY9jB,YAAc1F,KAAK8/F,YAE9FtiB,SAAU,WACN,OAAOx9E,KAAKwpB,YAAYg0D,YAAcx9E,KAAK0/H,WAE/C7lC,gBAAiB,SAASqL,GACjBA,GACDllG,KAAK0tO,yBAAyBrhJ,OAAM,GAExCrsF,KAAKC,SAASnB,MAAMkB,KAAME,YAE9Bw2I,qBAAsB,WAClB,IAAIz3I,EAASe,KAAKC,SAASnB,MAAMkB,KAAME,WACvC,OAAI,IAAUF,KAAK+nB,OAAO,MAG1B/nB,KAAK65F,kBACL4zI,EAAeztO,OAHJf,GAMfq2F,OAAQ,WACJt1F,KAAKwpB,YAAY+xC,UAAUv7D,KAAKu7D,aAChC,IAAI2yK,EAA0BluO,KAAK0tO,yBACnC,IAAI,IAAU1tO,KAAK+nB,OAAO,KAA0BmmN,EAAyB,CACzE,IAAIhsN,EAAI,IAAI,cASZ,OARAliB,KAAKC,SAASnB,MAAMkB,KAAME,WAAWitB,MAAK,SAAUkO,GAChD,IAAI4sM,EAAgBiG,EAAwBC,mBACxClG,EACAA,EAAc96M,KAAKjL,EAAEsN,SAASG,KAAKzN,EAAE2hB,QAErC3hB,EAAEsN,QAAQ6L,MAEd1L,KAAKzN,EAAE2hB,QACJ3hB,EAEP,OAAOliB,KAAKC,SAASnB,MAAMkB,KAAME,YAGzCywF,QAAS,SAAS3/E,EAASqkF,GACvB,IAAI,IAAUr1F,KAAK+nB,OAAO,IAAwB,CAC9C,IAAIqI,EAAmBpf,EAAQof,iBAC3B7G,EAAavpB,KAAKwpB,YAClB6rE,EAAeC,QACft1F,KAAK0tO,yBAAyBrhJ,QAC9B9iE,EAAWb,QAAQ9uB,OAAS,EAC5BoG,KAAK0/H,WAAY,EACjB+tG,EAAeztO,MACfA,KAAK0/H,WAAY,EACb,GAAa1/H,OACbA,KAAKu7D,UAAU,GACfhyC,EAAWgyC,UAAU,GACrBnrC,EAAiBmrC,UAAY,EAC7BvqD,EAAQuqD,UAAY,EACpBnrC,EAAiBV,KAAO,IAExBnG,EAAWgyC,UAAUv7D,KAAKu7D,aACtBhyC,EAAWgrE,aACXvjF,EAAQuqD,UAAYv7D,KAAKu7D,YACzBnrC,EAAiBV,KAAO1vB,KAAKu7D,YAAcv7D,KAAKw7D,cAGjD,GAAax7D,OAASowB,EAAiBV,MAAQ1vB,KAAKk4F,sBAAwB,IACnF9nE,EAAiBV,MAAQ1vB,KAAKk4F,uBAGtC,OAAOl4F,KAAKC,SAASnB,MAAMkB,KAAME,YAErCuhE,QAAS,WACLzhE,KAAK0tO,yBAAyBjsK,UAC9BzhE,KAAKC,SAASnB,MAAMkB,KAAME,YAE9BkuO,cAAe,SAAS7sN,GACpB,IAAK,eAAUA,GACX,OAAOvhB,KAAK4tO,eAEhB5tO,KAAK4tO,eAAiBrsN,GAE1By6E,mBAAoB,SAAShrF,GACzB,IAAIo9N,EAAgBpuO,KAAKouO,gBACrB5yK,EAAWx7D,KAAKw7D,WAChByyK,GAAU,IAAUjuO,KAAK+nB,OAAO,IAChCqI,EAAmBpf,EAAQof,iBAC3Bi+M,EAAgB,eAAUj+M,EAAiBX,MAC/Cze,EAAQo9N,cAAgBA,GACnBp9N,EAAQ8qF,iBAAmBmyI,GAAWI,GAAiBD,EAAgB,GAAK5yK,EAAW,IACxFprC,EAAiBX,KAAO2+M,EAAgB5yK,GAE5Cx7D,KAAKC,SAASnB,MAAMkB,KAAME,YAE9Bs9F,cAAe,WACX,OAAOx9F,KAAKC,SAASnB,MAAMkB,KAAME,WAAaF,KAAKouO,kBAmB3D,MAhBA,CAAC,iBAAkB,eAAgB,aAAaltO,SAAQ,SAAUU,GAC9D3C,EAAO2C,GAAQ,WACX,IAAI,IAAU5B,KAAK+nB,OAAO,IAAwB,CAC9C,IAAIwB,EAAavpB,KAAKwpB,YACtB,OAAOD,EAAWgyC,UAAUz8D,MAAMyqB,EAAYrpB,WAElD,IAAIguO,EAA0BluO,KAAK0tO,yBACnC,OAAOQ,EAAwBtsO,GAAM9C,MAAMovO,EAAyBhuO,eAG5E,CAAC,oBAAqB,mBAAoB,wBAAyB,sBAAuB,sBAAuB,uBAAwB,uBAAwB,yBAA0B,eAAgB,mBAAoB,cAAe,eAAgB,cAAcgB,SAAQ,SAAUU,GAC1R3C,EAAO2C,GAAQ,WACX,IAAIssO,EAA0BluO,KAAK0tO,yBACnC,OAAOQ,EAAwBtsO,GAAM9C,MAAMovO,EAAyBhuO,eAGrEjB,EArPqC,GAuP5CqvO,GAAmC,WACnC,IAAIC,EAAkB,SAASC,EAAY7sK,GACvC,IAAIsV,EAAUu3J,EAAW/vJ,UAAU3iF,IAAI+U,GAAO,eAAEA,GAAKqd,OAAO,IAAMyzC,GAAWjkE,IAAI,IAAIU,OAAOyS,GAAOA,GAC/FomE,EAAQr9E,SACR40O,EAAa,eAAEv3J,IAGnB,IADA,IAAI6G,EAAWnc,IAAcqrK,GAAkBwB,EAAW50O,OAAS,EAAI40O,EAAW50O,OACzE6B,EAAI,EAAGA,EAAIqiF,EAAUriF,IAC1B+yO,EAAWhjN,GAAG/vB,GAAGqsB,UAGzB,MAAO,CACHi4C,KAAM,WACF,IAAI0uK,EACAx8I,EAAiBjyF,KAAKihE,cAAc,QACxCjhE,KAAKC,WACLgyF,EAAeqN,YAAY9qB,IAAIjZ,IAC3B,IAAIk1D,EAAYzwH,KAAK0tG,WACrB1tG,KAAK0uO,aAAa,OAASnzK,QAAa,IAAWA,EAAYA,EAAY02B,EAAe12B,cACtF,IAAUv7D,KAAK+nB,OAAO,KAA0B/nB,KAAK0tG,aAAe+iB,GACpEx+B,EAAe08I,mBAGvB18I,EAAeiW,kBAAkB1zB,IAAI,MAChCx0E,KAAK0tG,YAAc1tG,KAAK4uO,iCAE7B,QAAUH,EAAwBx8I,EAAe+uC,mBAAgB,IAAWytG,GAAiCA,EAAsBj6J,IAAI,KACnIx0E,KAAK4uO,iCAET5uO,KAAK4uO,gCAETA,6BAA8B,WAC1B,IAAI38I,EAAiBjyF,KAAKihE,cAAc,QACxC,GAAIgxB,EAAe12B,YAAc,EAAG,CAChC,IAAIszK,EAAgB,KAChB7uO,KAAKmjE,gBAAgBr7C,OAAO+mN,GAC5B7uO,KAAK0uO,aAAaz8I,EAAe12B,cAErCv7D,KAAKmjE,gBAAgBqR,IAAIq6J,KAGjCH,aAAc,SAASnzK,GACnB,IAEIuzK,EAFA78I,EAAiBjyF,KAAKonB,gBACtBo0C,EAAWy2B,EAAiBA,EAAez2B,WAAa,EAE5D,GAAI,GAAcx7D,OAAS,GAAaA,MAAO,CAC3C,IAAI8xK,EAAW7/E,EAAeg5I,cAC1B8D,EAAY98I,EAAes0I,eAC3B9yH,EAAYl4C,EAAYC,EAE5B,IAAK,IAAIp6D,KADT0tO,EAAiBr7H,EAAYq+D,EACXi9D,EACV3tO,EAAQqyG,IACRq7H,GAAkBC,EAAU3tO,GAAS0wK,QAI7Cg9D,EAAiB,EAErB9uO,KAAK6wE,SAAS,CACVvvD,EAAGwtN,EACH1hO,EAAGpN,KAAK4wE,eAGhBtC,uBAAwB,SAAS1qE,GAC7B5D,KAAKgvO,wBAAuB,GAC5BhvO,KAAKC,SAASnB,MAAMkB,KAAME,YAE9B6iE,YAAa,SAASn/D,GAClB,IAAIqrO,EAAkB,IAAIl1O,KAC1BiG,KAAKC,SAASnB,MAAMkB,KAAME,WAC1B,IAAIqpB,EAAavpB,KAAKonB,gBAAgBoC,YACtC,GAAID,GAAc3lB,EAAG,CACjB,IAAImtG,EAAYntG,EAAE8kB,MAAQ9kB,EAAE8kB,MAAM9uB,OAAS,GACvCqsO,EAAejmO,KAAKonB,gBAAgB6+M,gBAAkB,GACtD,OAAc93M,sBAAsBnuB,OAAS+wG,EAAY,IAAK,IAAU/wG,KAAK+nB,OAAO,IACpFwB,EAAWukN,aAAe,IAAI/zO,KAAOk1O,GAAmBhJ,EAAel1H,EAEvExnF,EAAWukN,YAAc,IAAI/zO,KAAOk1O,IAIhD94J,gBAAiB,SAASrG,GACtB,IAAI2F,EAAQz1E,KAAKC,SAAS6vE,GAC1B,OAAO2F,GAASA,EAAM1F,IAAI,IAAMk9J,KAEpCiC,oBAAqB,SAASjK,EAAcoC,EAAar2J,GACrD,IAAI8iC,EAAc9zG,KAAKm2E,gBAAgB8uJ,GAAcxmJ,UAEjDq1B,EADA,WAAa9iC,EACC8iC,EAAYzwF,MAAM,EAAGgkN,GAErBvzH,EAAYzwF,OAAOgkN,GAErC,IAAIx8G,EAA0B7qH,KAAKihE,cAAc,iBACjD6yC,EAAYh4G,IAAIiuE,IACZ,IAAIiI,EAAc,eAAEjI,GACpB8gD,GAA2BA,EAAwBb,eAAeh4C,EAAYrlE,QAC9EqlE,EAAYlqD,YAGpBktD,eAAgB,SAASlF,EAAclf,GACnC,IAAIk0K,EACA32H,EAAiBnuG,KAAKk1E,sBACtBlE,EAAapgB,GAAUA,EAAOogB,WAC9Bi0J,EAAe92H,EAAe9mC,WAAWoS,QAC7C,GAAI,WAAazI,GAAc,YAAcA,EAAY,CACrD,IAAI+9B,EAAW/uG,KAAK6vE,WAAWC,GAC3B,IAAMi/B,EAASn1G,OACfoG,KAAK6vE,WAAWo1J,GAAc,WAAaj0J,EAAa,SAAW,WAAW+9B,EAAS1nC,YAEvF0nC,EAAS,WAAa/9B,EAAa,WAAa,aAAai0J,GAEjEn1J,EAAahoD,SACbg9M,EAAwB9kO,KAAK2vG,yBAAyBs1H,GACtDsJ,EAAgBzJ,EAAuBkI,IACnCp8K,EAAOy2K,aACPrnO,KAAKkvO,oBAAoBjK,EAAcr0K,EAAOy2K,YAAar2J,GAE/DhxE,KAAKo0G,iBAAiB6wH,QAEtBjlO,KAAKC,SAASnB,MAAMkB,KAAME,WACtB,WAAa8wE,GACbhxE,KAAKo0G,iBAAiB6wH,GAG9BjlO,KAAKmvO,wBAETC,eAAgB,SAASjmK,EAAQylC,EAASt0C,EAAU9F,GAChD,GAAKA,EAAL,CAGA,IAAI66K,EAAcrvO,KAAK2uG,gBAAgBs+H,GAAmBr+H,EAASp6C,GACnE66K,EAAcrvO,KAAKowE,eAAejH,EAAQkmK,GAC1CrvO,KAAK6uG,gBAAgB1lC,EAAQkmK,EAAa/0K,KAE9Cg1K,wBAAyB,WACrB,IAAIC,EAAavvO,KAAKwvO,iBAClBC,EAAsBzvO,KAAK0vO,mBAAmBH,GAClDvvO,KAAKonB,gBAAgBqkN,oBAAoBgE,IAE7CE,oBAAqB,SAASzD,EAAgBz7G,GACrC,eAAUy7G,KACXA,EAAiBlsO,KAAKstG,WAAa,eAAettG,KAAK6mB,WAAa,eAAe,mBAEvF7mB,KAAKonB,gBAAgB8kN,eAAeA,EAAgBz7G,IAExD++G,eAAgB,WACZ,IAAIzX,EAAqB6X,EACrB9b,EAAkB,QAAUiE,EAAsB/3N,KAAKihE,cAAc,kBAAe,IAAW82J,GAA+B,QAAU6X,EAAwB7X,EAAoBjE,uBAAoB,IAAW8b,OAA9F,EAA+HA,EAAsBpqN,KAAKuyM,GAC/QjkH,EAAc9zG,KAAKm2E,gBAAgBn2E,KAAKswE,eAAemO,UAI3D,OAHIq1I,IACAhgH,EAAcA,EAAY11G,OAAOyS,IAAQ,eAAEA,GAAKy1D,SAAS,MAEtDwtC,EAAYh4G,IAAI+U,GAAO,eAAgBA,GAAKa,SAEvDg+N,mBAAoB,SAASH,GAQzB,IAPA,IAAIt9I,EAAiBjyF,KAAKonB,gBACtBmC,EAAa0oE,EAAezoE,YAC5BimN,EAAsB,GACtBI,EAAc59I,EAAekV,iBAC7B2qE,EAAW,EACXg+D,GAAqB,EACrBC,GAAiB,EACZt0O,EAAI,EAAGA,EAAI8zO,EAAW31O,OAAQ6B,IAAK,CACxC,IAAI+rI,EAAcqoG,EAAYp0O,GACzB,eAAU+rI,MAGX,IAAUxnI,KAAK+nB,OAAO,KAClBgoN,GAAiB,GAAKA,IAAkBvoG,EAAYtgC,YACpDuoI,EAAoBxsO,KAAK6uK,GACzBA,EAAW,GAEfi+D,EAAgBvoG,EAAYtgC,WACrBomI,GAA4B9lG,EAAaj+G,KAC5CumN,EACAA,GAAqB,GAErBL,EAAoBxsO,KAAK6uK,GACzBA,EAAW,IAGnBA,GAAYy9D,EAAW9zO,IAG3B,OADAq2K,EAAW,GAAK29D,EAAoBxsO,KAAK6uK,GAClC29D,GAEXT,uBAAwB,SAASgB,GAC7B,IAAI/9I,EAAiBjyF,KAAKonB,gBACtB6oN,EAAYjwO,KAAKsvG,YAAc,GAEnC,GADArd,EAAei0I,iBAAiB+J,GAC5B,GAAcjwO,OAAS,OAAcmuB,sBAAsBnuB,MAAO,CAC7DgwO,GACDhwO,KAAKsvO,0BAET,IAAI1jN,EAAMqmE,EAAek0I,iBAAiB,SACtCn4G,EAAS/7B,EAAek0I,iBAAiB,OACzCrsF,EAAU95I,KAAKg0E,mBACfk8J,EAAep2F,EAAQzyE,SAAS,SAASA,SAAS,IAAM4lK,IAC5DsB,EAAgB2B,EAAcjD,IAC9BnzF,EAAQs3B,KAAK,CAAChwK,EAAOylB,KACjB,IAAI+nF,EAAUxtG,EAAQ,EAClB+uO,EAAYnwO,KAAKowO,uBACrBpwO,KAAKowO,uBAAyBxhI,EAC9B5uG,KAAKovO,eAAe,eAAEvoN,GAAU+nF,EAAS,MAAOhjF,GAChD5rB,KAAKovO,eAAe,eAAEvoN,GAAU+nF,EAAS,SAAUof,GACnDhuH,KAAKowO,uBAAyBD,MAI1CE,6BAA8B,SAASC,GACnC,IAAIC,EAAiBD,EAAMrpN,KAAK,IAAM,IAAoBrtB,OAAS,EACnE,OAAO22O,IAAmBvwO,KAAK+nB,OAAO,oBAE1CyoN,uBAAwB,SAASC,EAAUC,GACvC,IAAIzxO,EAASwxO,EAAS72O,SAAW82O,EAAgB92O,OASjD,OARIqF,GACA,eAAKwxO,GAAU,SAAUrvO,EAAOylB,GAC5B,GAAIA,EAAQyjD,MAAM/iE,QAAUmpO,EAAgBtvO,GAAOkpE,MAAM/iE,MAErD,OADAtI,GAAS,EACFA,KAIZA,GAEX0xO,gBAAiB,SAAS7/N,GACtB,IAAI8/N,EAAU,GACV5lL,EAAWl6C,EAAOk6C,SAClB6lL,EAAiB,WAAa//N,EAAO6c,QAGzC,OAFAq9B,GAAY4lL,EAAQ3tO,KAAK+nD,GACzB6lL,GAAkBD,EAAQ3tO,KAAKjD,KAAK+mB,gBAAgB,KAC7C6pN,GAEXE,qBAAsB,SAASl9H,GAC3B,IAAI5tF,EAAW4tF,GAAmB5zG,KAAK6mB,UACnCkqN,EAAmB/qN,GAAYA,EAASiB,KAAK,IAAMjnB,KAAK+mB,gBAAgB+lN,KAC5E,GAAIiE,GAAoBA,EAAiBn3O,OACrC,OAAOm3O,GAGf5B,qBAAsB,WAClB,IAAI7sI,EAAc,GAActiG,MAC5BqiG,EAAa,GAAariG,MAC1BgxO,GAAqBhxO,KAAKonB,gBAAgBg3E,oBAAsBp+F,KAAKonB,gBAAgBo2D,aAAe8kB,GAAeD,GACnHuR,EAAkB5zG,KAAKk1E,sBACvB+7J,EAAyBjxO,KAAK8wO,qBAAqBl9H,GACnDo9H,EACKC,GACD,eAAE,SAAS3pN,SAAStnB,KAAK+mB,gBAAgB+lN,KAA0BljM,OAAO5pC,KAAKooB,iBAAiB,eAAE,SAAU,SAAepC,YAAYuB,SAASqsF,GAE7Iq9H,GACPA,EAAuBnpN,UAG/B0lF,cAAe,SAAS5pG,GACpB,IAAI+/H,GAAsB,IAAS3jI,KAAK+nB,OAAO,IAC3CmpN,EAAkB,IAAMttO,EAAE+pG,aAAa/hF,KACtC5rB,KAAKstG,aAAeq2B,GAAuButG,IAAoBlxO,KAAKsvG,aACrEtvG,KAAK0tG,WAAa9pG,EAAE+pG,aAAa/hF,IAC7B,GAAc5rB,QAAS,IAAUA,KAAK+nB,OAAO,MAC7C/nB,KAAKsvO,0BACLtvO,KAAK2vO,oBAAoB,KAAM3vO,KAAK0tG,aAExC1tG,KAAKonB,gBAAgBwjN,oBAAoBhnO,EAAE+pG,aAAa/hF,MAE5D5rB,KAAKC,SAASnB,MAAMkB,KAAME,YAE9BmvG,qBAAsB,SAASrU,GAC3B,OAAOh7F,KAAKC,SAASnB,MAAMkB,KAAME,YAAc86F,EAAa,GAAK,GAAah7F,QAAU,OAAcmuB,sBAAsBnuB,OAEhIyvG,iBAAkB,WAEd,GADAzvG,KAAKC,SAASnB,MAAMkB,KAAME,WACtBF,KAAKsvG,WAAY,CACjBtvG,KAAKgvO,yBACL,IAAI9C,EAAiBlsO,KAAKstG,WAAa,eAAettG,KAAK6mB,WAAa,eAAe,kBACnForE,EAAiBjyF,KAAKonB,iBACtB,IAAUpnB,KAAK+nB,OAAO,KACtB/nB,KAAK2vO,oBAAoBzD,GACzBj6I,EAAe08I,kBAEf18I,EAAeg0I,aAAatkN,KAAKw8E,KAAK+tI,EAAiBlsO,KAAKsvG,eAIxEe,yBAA0B,WACtB,IAAIpxG,EAASe,KAAKC,SAASnB,MAAMkB,KAAME,WAIvC,OAHIjB,GACAe,KAAKgvO,yBAEF/vO,GAEXmzG,WAAY,SAAS1sG,EAAW2jG,GAC5B,IAAIpX,EAAiBjyF,KAAKonB,gBACtB+pN,EAAqBl/I,EAAe12B,YAAc,GAAK02B,EAAezU,cAAgBx9E,KAAK8wO,wBAC3F,IAAU9wO,KAAK+nB,OAAO,KAA0BriB,GAAausF,EAAem/I,uBAG5ED,IACAzrO,GAAY,GAEhB1F,KAAKC,SAASulB,KAAKxlB,KAAM0F,EAAW2jG,KAExCrmC,YAAa,WACT,IAAIr/D,EAAO3D,KACPgmB,EAAWriB,EAAKkjB,UACpBljB,EAAK1D,WACD0D,EAAKoJ,UAAUiZ,aAAeriB,EAAK0oO,eAAiBrmN,EAASiH,QAAQ,iBAAY4N,UAAUjhC,SAC3F+J,EAAK0oO,cAAgBxD,GAA6B7iN,GAAU,SAAUqrN,IAC7D1tO,EAAK2pG,YAAc3pG,EAAK2rG,YACzB3rG,EAAKyjB,gBAAgBwjN,oBAAoByG,KAE7C1tO,EAAKoJ,UAAUiZ,YACnBriB,EAAK0B,GAAG,aAAa,WACjB1B,EAAK0oO,cAAc5qK,eAGvB,IAAUzhE,KAAK+nB,OAAO,KACtBpkB,EAAK2tO,cAGbA,WAAY,WACR,IAAIC,EACAt/I,EAAiBjyF,KAAKonB,gBAC1B,OAAS6qE,QAAkB,IAAWA,GAA0B,QAAUs/I,EAAwBt/I,EAAeq/I,kBAAe,IAAWC,GAAiCA,EAAsB/rN,KAAKysE,IAE3Mne,gBAAiB,SAASF,GACtB,IACIgJ,EADAsvB,EAAalsG,KAAKotG,gBAEtBptG,KAAKC,SAASnB,MAAMkB,KAAME,WACtB,YAAcF,KAAK+nB,OAAO,oBAC1B60D,EAAWsvB,EAAa,eAAEA,EAAWjjC,WAAajpE,KAAK6mB,UACvD7mB,KAAKC,SAAS2zE,EAAQgJ,EAASvV,SAAS,IAAMrnE,KAAK+mB,gBAAgB,KAAgBsgD,SAAS,SAAWrnE,KAAK+mB,gBAAgBgmN,IAAuB,QAG3J34H,iBAAkB,WACd,IAAI,IAAUp0G,KAAK+nB,OAAO,IAAwB,CAC9C,IAAI6iG,EAAgB5qH,KAAKihE,cAAc,iBACvC,OAAS2pD,QAAiB,IAAWA,GAAyBA,EAAcZ,iBAEhFhqH,KAAKC,SAASnB,MAAMkB,KAAME,YAE9BuhE,QAAS,WACLgI,aAAazpE,KAAK6qO,kBAClB7qO,KAAKC,aAvVsB,GA2V5BuxO,GAAyB,CAChC7zO,eAAgB,WACZ,MAAO,CACH+qD,UAAW,CACP8gB,QAAS,IACTioK,cAAe,IACfC,WAAY,EACZC,mBAAoB,IACpBtJ,sBAAsB,EACtBuJ,YAAa,EACbC,wBAAyB,EACzBh2L,KAAM,WACNmhB,gBAAgB,EAChB5uC,iBAAkB,WAClB0jN,qBAAqB,EACrBC,YAAY,EACZC,oBAAqB,KAIjC/sK,UAAW,CACPqjC,kBAAmBklI,GACnB3oK,YAAa,CACT1+D,KAAM,WACF,IAAIo5F,EAAU,CACVW,mBAAoB,WAChB,IAAI+xI,EAAajyO,KAAKC,SAASnB,MAAMkB,KAAME,aAAc,IAAK,eAAUsvB,UAAUc,UAElF,OADA2hN,EAAW9kN,KAAKntB,KAAKkyO,gBAAgB1nN,KAAKxqB,OACnCiyO,GAEXpvI,gBAAiB,WACb,GAAI7iG,KAAKmyO,uBAAyB59F,GAAgBv0I,MAAO,CACrD,IAAIoyO,GAEAhE,cAAeA,GACf,eAAUpuO,KAAKqyO,qBAAuBryO,KAAKsyO,oBAAsB,GACrElE,GAAiB,IAAM,QAAUgE,EAAoBpyO,KAAKwpB,mBAAgB,IAAW4oN,GAA6BA,EAAkBhE,cAAcA,IAEtJ,OAAOpuO,KAAKC,SAASnB,MAAMkB,KAAME,YAErCqyO,eAAgB,WACZ,IAAIX,EAAc5xO,KAAK+nB,OAAO,yBAC1ByzC,EAAWx7D,KAAKw7D,WACpB,OAAOA,GAAYA,EAAWo2K,EAAcp2K,EAAWo2K,GAE3Dt8I,OAAQ,WACJ,IAAIk9I,EAAuBxyO,KAAKmyO,uBAAyBnyO,KAAKwpB,YAC1DiqF,EAAY++H,GAAwBA,EAAqB1H,yBACzD7rO,EAASe,KAAKC,SAASnB,MAAMkB,KAAME,WACvC,OAAOjB,GAAUA,EAAOkuB,KAAK,KACzB,GAAI,GAAcntB,OAAS,OAAcmuB,sBAAsBnuB,MAAO,CAClE,IAAI2mG,EAAiB3mG,KAAK4mG,oBACtB/8B,EAAWloD,KAAKI,MAAM0xF,GAAa9M,EACnC55F,EAAY/M,KAAK+M,UACjBm/F,EAAan/F,EAAUqgG,eAAiBrgG,EAAUqgG,gBAClDqlI,EAAqBzyO,KAAKupB,aAAa8rE,iBAAiBjsC,QAC5D,GAAI8iD,IAAeumI,GAAsB5oK,GAAY,EAAG,CACpD,IAAIE,EAAah9D,EAAU4pE,cAAc9M,GACrCmI,EAAcjI,GAAcA,EAAW,IAAM,eAAEA,EAAW,IAC1Dn+C,EAAMomD,GAAeA,EAAYxd,WAAW5oC,IAC5CmmF,EAAiBtjF,EAAA,KAAQujF,QAAUvjF,EAAA,KAAQ0U,SAAW,GACtDuvM,EAAmBjkN,EAAA,KAAQC,SAAWqjF,EAAiB,EAAI,EAC3DnmF,EAAM8mN,IACN9mN,EAAMjK,KAAKwqF,MAAMvgF,EAAM,eAAeomD,IAAgByhC,EAAY,IAClEvH,EAAWr7B,SAAS,CAChBvvD,EAAGsK,UAO3BsmN,gBAAiB,WACb,IAAIS,EAAuB,OAAcxkN,sBAAsBnuB,MAG/D,GAFAA,KAAK4yO,UAAY,KACjB5yO,KAAKqyO,oBAAsB,KACvB,YAAcryO,KAAK+nB,OAAO,oBAAqB,IAAS4qN,IAAwB,IAAUA,IAAwB,IAAU3yO,KAAK+nB,OAAO,MAA2B/nB,KAAK+nB,OAAO,yBAG/K,OAFA/nB,KAAK6yO,cAAgB,UACrB7yO,KAAKmyO,sBAAwB,MAGjC,IAAI52K,GAAa,GAAcv7D,OAASA,KAAKu7D,aAAev7D,KAAK29F,YAAc39F,KAAK29F,YAAc,EAAI39F,KAAKu7D,YAC3Gv7D,KAAK8yO,cAAgBnxN,KAAKw8E,KAAK5iC,EAAYv7D,KAAKw7D,WAAax7D,KAAKuyO,kBAClEvyO,KAAK6yO,eAAgB,IAAU7yO,KAAK+nB,OAAO,IAAyB,KAAO,GAC3E/nB,KAAK+yO,mBAAoB,EACzB/yO,KAAKgzO,iCAAkC,EAClChzO,KAAKmyO,wBACNnyO,KAAKmyO,sBAAwB,IAAIxI,GAAwB3pO,KAAK+M,UAAW/M,KAAKizO,6BAA6B,GAC3GjzO,KAAKmyO,sBAAsBhI,gBAAgB31J,IAAI,KAC3C,IAAI0+J,EACJ,IAAI,IAAUlzO,KAAK+nB,OAAO,IAItB,OAHA/nB,KAAK+yO,mBAAoB,EACzB/yO,KAAKmzO,oBACLnzO,KAAK+yO,mBAAoB,GAG7B,QAAUG,EAAqBlzO,KAAKwpB,mBAAgB,IAAW0pN,GAA8BA,EAAmB1H,qBAAqBxrO,KAAKmyO,sBAAsB9M,4BAGpK,IAAUrlO,KAAK+nB,OAAO,KACtB/nB,KAAKozO,4BAELpzO,KAAKw9E,aAAc,IAAUx9E,KAAK+nB,OAAO,KACzC/nB,KAAKmyO,sBAAsB7iN,QAGnC8hN,mBAAoB,WAChB,OAAOpxO,KAAK+yO,mBAEhBE,0BAA2B,WACvB,IAAItvO,EAAO3D,KACPqzO,EAAkB,SAAStsO,GAC3B,OAAOumO,GAA4BvmO,EAAMpD,EAAK6lB,cAElD,MAAO,CACHgyC,SAAU,WACN,OAAO73D,EAAK4uO,kBAEhBhI,aAAc,WACV,IAAI+I,EACJ,OAAO,GAAc3vO,KAAU,QAAU2vO,EAAoB3vO,EAAK6lB,mBAAgB,IAAW8pN,OAAoB,EAASA,EAAkBzhJ,kBAAkBniE,OAAS,GAE3K86M,gBAAiB,WACb,OAAO7mO,EAAK4vO,YAEhBr1I,gBAAiB,WACb,OAAIq2C,GAAgB5wI,GACTA,EAAKu6F,mBAET,IAAUv6F,EAAKokB,OAAO,IAAyBpkB,EAAK4vO,WAAa5vO,EAAKu3F,OAAO98F,OAAOi1O,GAAiBz5O,QAEhHwkG,iBAAkB,WACd,OAAO,IAAUz6F,EAAKokB,OAAO,KAAyBpkB,EAAKy6F,oBAE/D7iC,UAAW,SAASn6D,GAIhB,YAHI,IAAWA,IACXuC,EAAKmvO,cAAgB1xO,GAElBuC,EAAKmvO,eAEhBptO,UAAW,WACP,OAAO/B,EAAK+B,aAEhBi4F,UAAW,WACP,IAAIA,EAAYh8E,KAAKw8E,KAAKn+F,KAAKk+F,kBAAoBl+F,KAAKw7D,YACxD,OAAOmiC,GAAwB,GAEnCruE,KAAM,WACE3rB,EAAKwuO,sBAAsB52K,aAAev7D,KAAK29F,cAC/Ch6F,EAAKmvO,cAAgB9yO,KAAK29F,YAAc,EACxCh6F,EAAKwuO,sBAAsB52K,UAAU53D,EAAKmvO,iBAEzC9yO,KAAK0oB,QAAQ9uB,QAAUoG,KAAKk+F,mBAGjCv6F,EAAKwuO,sBAAsBnE,kBAAkBp9K,IACzCA,EAASA,GAAU,GACnBA,EAAOogB,WAAapgB,EAAOogB,YAAc,UACzCpgB,EAAOloC,MAAQkoC,EAAOloC,OAAS/kB,EAAKkvO,cACpClvO,EAAKkvO,cAAc3xO,QAAQ,CAAC6F,EAAM3F,KAC9B2F,EAAK8iE,SAAWzoE,IAEpBuC,EAAK6jG,aAAa52C,MAG1B62K,cAAe,aACfzsI,WAAY,WACR,OAAOh7F,KAAK0oB,OAAM,GAAM9uB,QAE5B0tO,aAAc,SAAS5+M,EAAOnH,EAAO80E,GACjC,OAAO+2I,GAAc1kN,EAAOnH,EAAO80E,EAAS,CAACtvF,EAAMysO,EAAiBn9I,IAC5DtvF,EAAKklB,SACEunN,IAAoBn9I,EAE3Bm9I,GAAmBn9I,GACXtvF,EAAKklB,SAEVonN,EAAgBtsO,KAG/B2hB,MAAO,SAAS+qN,GACZ,IAAIx0O,EAAS0E,EAAKu3F,OAClB,GAAIv3F,EAAKokB,OAAO,IAAwB,CACpC,IAAIwB,EAAa5lB,EAAK4lB,aAClB88M,EAAoB,OAAS98M,QAAc,IAAWA,OAAa,EAASA,EAAW88M,oBACvFC,EAAQD,EAAoBA,EAAkBC,MAAQ,EACtDsL,EAAcjuO,EAAK4uO,iBACnB7iN,EAAO/rB,EAAKmvO,cAAgBlB,EAActL,EAC1C72M,EAAOmiN,EACX,GAAIliN,EAAO,EACP,MAAO,GAEPA,IACAA,EAAO1vB,KAAKsnO,aAAaroO,EAAQywB,GACjCzwB,EAASA,EAAOokB,MAAMqM,IAEtBD,IACAA,EAAOzvB,KAAKsnO,aAAaroO,EAAQwwB,GACjCxwB,EAASA,EAAOokB,MAAM,EAAGoM,IAGjC,OAAOgkN,EAAgBx0O,EAAOb,OAAOi1O,GAAmBp0O,GAE5DmoO,cAAe,SAAS1+M,GAIpB,OAHIA,IAAS,IAAU/kB,EAAKokB,OAAO,MAC/BpkB,EAAKkvO,cAAgBnqN,GAElB/kB,EAAKkvO,eAEhB1K,UAAW,aACXwC,iBAAkB,SAAS/mO,GACvB,IAAI2lB,EAAa5lB,EAAK4lB,aACtB,OAAI,OAASA,QAAc,IAAWA,GAAcA,EAAW7jB,cAAe,IAAU/B,EAAKokB,OAAO,IACzFmlN,IAEH,OAAS3jN,QAAc,IAAWA,OAAa,EAASA,EAAWukN,cAAgB,KAIvG/mI,iBAAkB,SAASn2C,GACvB,IAAIgxF,EAAQ5hJ,KAAK+iG,mBAEjB,GADA/iG,KAAKC,SAASnB,MAAMkB,KAAME,YACtB,IAAUF,KAAK+nB,OAAO,KAA0B,OAAcoG,sBAAsBnuB,MAChF,WAAa4wD,EAAOogB,YAAc,IAAMpgB,EAAOmzC,WAAWnqG,QAAUg3D,EAAO8iL,qBAC3E9iL,EAAOhB,QAAS,OAFxB,CAMA,IAAI4iL,EAAuBxyO,KAAKmyO,sBAChC,GAAIK,EAAsB,CACtB,IAAItvI,EAAeljG,KAAK6yO,cACpB1G,EAAY,YAAcv7K,EAAOogB,YAAcpgB,EAAOs0C,aAC1D,GAAI,WAAat0C,EAAOogB,YAAcpgB,EAAOloC,QAAUkoC,EAAOloC,MAAM9uB,OAChE,OAEAuyO,GAAa,WAAav7K,EAAOogB,YAAc,YAAcpgB,EAAOogB,YACpEpgB,EAAOhB,QAAS,EAChBu8K,GAAaqG,EAAqBnmJ,OAAM,GACxCmmJ,EAAqBljN,SAEjB,WAAashC,EAAOogB,WACpBpgB,EAAOmzC,WAAW7iG,QAAQ,CAAC2oE,EAAUzoE,KACjC,IAAI4vE,EAAapgB,EAAOygB,YAAYjwE,GAChCsjG,EAAU9zC,EAAOloC,MAAMtnB,GACvB,WAAa4vE,EACbkyB,EAAar5B,GAAY66B,EAClB,WAAa1zB,EACpBkyB,EAAa3vB,OAAO1J,EAAU,EAAG66B,GAC1B,WAAa1zB,GACpBkyB,EAAa3vB,OAAO1J,EAAU,MAItCq5B,EAAahiG,QAAQ,CAAC6F,EAAM3F,KACxB8hG,EAAa9hG,GAASpB,KAAKk7F,OAAO95F,EAAQwgJ,IAAU1+C,EAAa9hG,KAErEwvD,EAAOloC,MAAQw6E,GAEnBqqI,GAAkBrqI,OAI9BkwI,0BAA2B,WACvB,IAAI/I,EAAiBrqO,KAAKmyO,sBAAsB7H,oBAC5C9uK,EAAWx7D,KAAKw7D,WACpB,GAAI6uK,IAAmB91F,GAAgBv0I,OAASw7D,EAAW,EAAG,CAC1D,IAAIq2E,EAAa7xI,KAAKu7D,YAAcC,EACpC6uK,EAAe36M,MAAQmiH,EAE3B7xI,KAAKqyO,oBAAsBhI,GAE/BrnI,cAAe,SAASt6E,GACpB,IAAIirN,EAAW3zO,KAAKC,SAASnB,MAAMkB,KAAME,WACzC,IAAI,IAAUF,KAAK+nB,OAAO,IAAwB,CAC9C,IAAI6rN,EAGAC,EACAC,EACAC,EAJAxqN,EAAavpB,KAAKwpB,YAClBwqN,EAAe,QAAUJ,EAAwB,OAASrqN,QAAc,IAAWA,OAAa,EAASA,EAAWsoE,kBAAkBniE,YAAS,IAAWkkN,EAAwBA,EAAwB,EAI1MK,GAAmB,EACvBN,EAASzyO,QAAQ6F,IACb,IAAIoK,EAAUpK,EAAKoK,QACf+iO,EAAgB5G,GAA4BvmO,EAAMwiB,GAClD4qN,EAAkB,UAAYhjO,IAAY0iO,GAAiBK,GAAiB,UAAYJ,GAAeE,EAAe,GACtHI,EAAiB,SAAWjjO,GAAW+iO,IAAkBL,GAAiB,UAAYC,GAC1F,IAAK/sO,EAAKklB,UAAY,eAAU4nN,GAAgB,CAC5C,IAAIQ,EAAoBN,IAAiBE,GACpCE,IAAmBC,GAAoBC,GACxCL,KAGJG,GAAmBC,KACnBH,GAAmB,GAEvBltO,EAAKmgG,UAAY8sI,EACjBH,EAAgBK,EAChBJ,EAAc3iO,EACd4iO,EAAehtO,EAAKklB,WAG5B,OAAO0nN,GAEX7sI,mBAAoB,SAASp+E,GAEzB,GADA1oB,KAAKuzO,WAAa7qN,EAAMtqB,OAAO2I,GAAQumO,GAA4BvmO,EAAM/G,KAAKwpB,cAAc5vB,OACxF,eAAUoG,KAAKqyO,qBAAsB,CACrCryO,KAAKozO,4BACL,IAAIn0O,EAASypB,EAEb,GADA1oB,KAAK4yO,UAAYlqN,EACbA,EAAM9uB,OAAQ,CACd,IACI06O,mBAAoBA,GACpBt0O,KAAKsyO,mBAAkB,GACvB5iN,EAAOhH,EAAM,GAAGw+E,UAAYotI,EAC5B7kN,EAAOzvB,KAAKqyO,oBAAoB5iN,KACpCxwB,EAASypB,EAAMtqB,OAAOvQ,IAClB,IAAI0mP,EAAkB1mP,EAAGo+B,UAAYp+B,EAAGq5G,WAAax3E,EAAO,EACxD8kN,EAAsB3mP,EAAGo+B,UAAYp+B,EAAGq5G,YAAcx3E,GAAQ,IAAMD,EACpEglN,EAA0B5mP,EAAGq5G,WAAax3E,GAAQ6kN,EAClDG,EAAqB7mP,EAAGq5G,UAAYx3E,EAAOD,GAAQ+kN,EACvD,OAAOC,GAA2BC,IAG1C,OAAOz1O,EAEX,OAAOe,KAAKC,SAASnB,MAAMkB,KAAME,YAErCwjG,aAAc,SAAS9yC,GACnB,IAAIjtD,EAAO3D,KACP0oB,EAAQkoC,EAAOloC,MACfsoD,EAAapgB,EAAOogB,WACpBq2J,EAAcz2K,EAAOy2K,YACzB,GAAIA,EAAa,CACb,IAAIhxI,EAAU,YAAcrlB,EAC5Bq2J,EAAc+F,GAAczpO,EAAKu3F,OAAQmsI,EAAahxI,GAAS,SAAUtvF,EAAMysO,GAC3E,MAAO,SAAWzsO,EAAKoK,UAAYpK,EAAKklB,UAAY,UAAYllB,EAAKoK,UAAYxN,EAAK6lB,YAAYskH,qBAAqB/mI,EAAKZ,OAASqtO,MAEzI5iL,EAAOy2K,YAAcA,EAEzB,OAAQr2J,GACJ,IAAK,UACDrtE,EAAKu3F,OAAO1pE,QAAQ1yB,MAAM6E,EAAKu3F,OAAQxyE,GACnC2+M,GACA1jO,EAAKu3F,OAAO3nB,QAAQ8zJ,GAExB,MACJ,IAAK,SACD1jO,EAAKu3F,OAAOj4F,KAAKnE,MAAM6E,EAAKu3F,OAAQxyE,GAChC2+M,GACA1jO,EAAKu3F,OAAO3nB,OAAO,EAAG8zJ,GAE1B,MACJ,QACI1jO,EAAK1D,SAAS2wD,KAG1BloC,MAAO,SAASotK,GACZ,OAAOA,EAAW91L,KAAK4yO,WAAa5yO,KAAKk7F,OAASl7F,KAAK6yO,eAAiB7yO,KAAKk7F,QAEjF6H,iBAAkB,WACd,IAAI6+C,EAAQ,EACZ,GAAI5hJ,KAAK+nB,OAAO,IAAwB,CACpC,IAAIm7E,EAAeljG,KAAK6yO,cACpB3vI,GAAgBA,EAAa,KAC7B0+C,EAAQ5hJ,KAAKk7F,OAAO58F,QAAQ4kG,EAAa,KAGjD,OAAO0+C,EAAQ,EAAI,EAAIA,GAE3Bh7C,kBAAmB,SAAS+tI,GACxB,IAAIvpN,EAAS,EACT7B,EAAavpB,KAAKupB,aAClBipN,EAAuBxyO,KAAKmyO,sBAC5BlE,GAAU,IAAUjuO,KAAK+nB,OAAO,IAChC27G,EAAgB6Q,GAAgBv0I,MACpC,GAAIwyO,IAAyBmC,EACzB,GAAI1G,GAAW,eAAUjuO,KAAKqyO,qBAAsB,CAChD,IACIiC,mBAAoBA,EACpB/4K,UAAWA,GACXv7D,KAAKsyO,mBAAkB,GACvB5pN,EAAQ1oB,KAAK0oB,OAAM,GAEvB,GADA0C,EAASs4G,EAAgBnoE,EAAYv7D,KAAKw7D,WAAa,EACnD9yC,EAAM9uB,OAAQ,CACd,IAAIg7O,EAAiBlsN,EAAM,GAAGw+E,UAC9B97E,GAAU1C,EAAMtqB,OAAO2I,GAAQA,EAAKmgG,UAAY0tI,EAAiBN,GAAoB16O,aAGzFwxB,EAASonN,EAAqBhhG,iBAAmBghG,EAAqBh3K,gBAEvE,GAAIkoE,GAAiBuqG,GAAW1kN,EAAY,CAC/C,IAAIsrN,EACJzpN,EAAS,QAAUypN,EAAyBtrN,EAAWsoE,kBAAkBniE,YAAS,IAAWmlN,EAAyBA,EAAyB,OACxI,GAAc70O,OAASupB,IAC9B6B,EAAS7B,EAAWioH,iBAAmBjoH,EAAWiyC,YAEtD,OAAOpwC,GAEX66M,aAAc,WACV,IAAIuM,EAAuBxyO,KAAKmyO,sBAC5B5oN,EAAavpB,KAAKwpB,YAClBvqB,EAAS,OAASuzO,QAAwB,IAAWA,OAAuB,EAASA,EAAqBvM,aAAannO,MAAM0zO,EAAsBtyO,WACvJ,OAAI,IAAUF,KAAK+nB,OAAO,IACf9oB,EAEJ,OAASsqB,QAAc,IAAWA,OAAa,EAASA,EAAW08M,aAAannO,MAAMyqB,EAAYrpB,YAE7GgsO,eAAgB,SAASx6N,EAAQ++G,GAC7B,IAAIqkH,EACJ,QAAUA,EAAwB90O,KAAKmyO,6BAA0B,IAAW2C,GAAiCA,EAAsB5I,eAAex6N,EAAQ++G,IAE9Jy1G,iBAAkB,WACd,IAAIsM,EAAuBxyO,KAAKmyO,sBAC5B5oN,EAAavpB,KAAKwpB,YAClBvqB,EAAS,OAASuzO,QAAwB,IAAWA,OAAuB,EAASA,EAAqBtM,iBAAiBpnO,MAAM0zO,EAAsBtyO,WAC3J,OAAI,IAAUF,KAAK+nB,OAAO,IACf9oB,EAEJ,OAASsqB,QAAc,IAAWA,OAAa,EAASA,EAAW28M,iBAAiBpnO,MAAMyqB,EAAYrpB,YAEjH0qO,oBAAqB,WACjB,IAAI4H,EAAuBxyO,KAAKmyO,sBAC5B5oN,EAAavpB,KAAKwpB,YACtBxpB,KAAKq/F,WAAY,EACbmzI,EACAA,EAAqB5H,oBAAoB9rO,MAAM0zO,EAAsBtyO,WAErE,OAASqpB,QAAc,IAAWA,GAAsBA,EAAWqhN,oBAAoB9rO,MAAMyqB,EAAYrpB,YAGjHurO,oBAAqB,SAASC,GAC1B,IAAI8G,EAAuBxyO,KAAKmyO,sBAC5B5oN,EAAavpB,KAAKwpB,YAClBvqB,EAAS,OAASuzO,QAAwB,IAAWA,OAAuB,EAASA,EAAqB/G,oBAAoBC,GAClI,OAAI,IAAU1rO,KAAK+nB,OAAO,IACf9oB,EAEJ,OAASsqB,QAAc,IAAWA,OAAa,EAASA,EAAWkiN,oBAAoBC,IAElGqJ,qBAAsB,WAClB,IAAIC,EAAeh1O,KAAK+nB,OAAO,+BAC3Bi1C,EAAiBh9D,KAAK+nB,OAAO,4BACjC,GAAI,eAAUitN,GACV,OAAOA,EAEX,IAAI/O,EAAejmO,KAAKimO,eACxB,OAAOjpK,EAAiB,EAAIipK,EAAeA,GAE/CqM,kBAAmB,SAAS2C,GACxB,IAAIC,EAAoBC,EACpB35K,EAAWx7D,KAAKw7D,WAChB6uK,EAAiBrqO,KAAKqyO,oBACtBxgJ,EAAkB,QAAUqjJ,EAAqBl1O,KAAKwpB,mBAAgB,IAAW0rN,OAAqB,EAASA,EAAmBrjJ,kBAClIujJ,GAAmB,OAASvjJ,QAAmB,IAAWA,OAAkB,EAASA,EAAgBt2B,YAAc,EACnH85K,GAAc,OAASxjJ,QAAmB,IAAWA,OAAkB,EAASA,EAAgBpiE,OAAS,EACzG67M,EAAkBtrO,KAAKmyO,sBAAsB7G,kBAC7CgK,EAAkBhK,EAAkBtrO,KAAK+0O,uBAAyB,EAClEQ,EAAqBjK,EAAkB,EAAItrO,KAAK+0O,uBAChD92I,GAAwB,QAAUk3I,EAAqBn1O,KAAKwpB,mBAAgB,IAAW2rN,OAAqB,EAASA,EAAmBl3I,yBAA2B,EACnKu3I,EAAkB7zN,KAAKqQ,IAAI,EAAGq4M,EAAe36M,KAAO4lN,GACpD/5K,EAAY05K,EAAeG,EAAkBzzN,KAAKI,MAAMy5C,EAAWg6K,EAAkBh6K,EAAW,GAChGq2E,EAAat2E,EAAYC,EACzB84K,EAAqBjK,EAAe36M,KAAOmiH,EAC3C4jG,EAAcpL,EAAe56M,KAAO6kN,EAAqBiB,EAAqBt3I,EAC9ExuE,EAAOwlN,EAAeI,EAAaI,EACnCrH,EAAgBzsN,KAAKw8E,KAAK3iC,EAAW/rC,EAAO+rC,EAAW,GAC3D,MAAO,CACHD,UAAWA,EACX6yK,cAAezsN,KAAKqQ,IAAI,EAAGo8M,GAC3BkG,mBAAoB3yN,KAAKqQ,IAAI,EAAGsiN,KAGxCoB,wBAAyB,SAASC,GAC9B,GAAK31O,KAAKmyO,sBAAV,CAGA,GAAI,eAAUwD,GAGV,OAFA31O,KAAKqgE,cAAc8sK,GAAoBwI,QACvC31O,KAAKs/F,YAAYx7B,OAGrB,IAAI8xK,EAAoB51O,KAAKmyO,sBAAsB9M,uBAC/CsC,EAAehmN,KAAKI,MAAM6zN,EAAoB51O,KAAKw7D,YACnDx7D,KAAKu7D,cAAgBosK,IACrB3nO,KAAKqgE,cAAc8sK,GAAoBxF,GACvC3nO,KAAKmhG,YAAY,CACbnwB,WAAY,iBAIxB6kK,sBAAuB,WACnB,IAAIC,EAAmB91O,KAAKsyO,mBAAkB,IAE1C/2K,UAAWA,EACX6yK,cAAeA,GACfpuO,KAAKsyO,oBACLyD,EAAmB/1O,KAAKg2O,kBAAkBz6K,GAC1Ct8D,EAAS,KAOb,OANKe,KAAK8/F,aAAci2I,GAAqBx6K,IAAcu6K,EAAiBv6K,WAAa6yK,IAAkB0H,EAAiB1H,gBACxHnvO,EAAS,CACLs8D,UAAWA,EACX6yK,cAAeA,IAGhBnvO,GAEX+2O,kBAAmB,SAASz6K,GACxB,IAAIt8D,GAAS,EAIb,OAHI,GAAae,OAASA,KAAKo+F,oBAAsB,GAAcp+F,SAC/Df,EAASs8D,EAAYv7D,KAAKw7D,WAAax7D,KAAKk+F,mBAEzCj/F,GAEXg3O,WAAY,SAASC,EAAcC,GAC/B,IAAIC,EAAuBC,EACvB3yG,EAAgB6Q,GAAgBv0I,MAChCsoG,EAAoBtoG,KAAKwpB,YACzB8sN,EAAgBt2O,KAAK61O,wBACrBU,EAAuB,QAAUH,EAAwB,OAAS9tI,QAAqB,IAAWA,OAAoB,EAASA,EAAkB8lI,uBAAoB,IAAWgI,EAAwBA,EAAwB,EAChOI,EAAwBx2O,KAAKw7D,WAAa+6K,EAC1CZ,EAAmB,QAAUU,EAAwB,OAAS/tI,QAAqB,IAAWA,OAAoB,EAASA,EAAkB/sC,mBAAgB,IAAW86K,EAAwBA,EAAwB,EACxNI,GAAuB,OAASH,QAAiB,IAAWA,OAAgB,EAASA,EAAc/6K,aAAeo6K,EAClHe,EAAwB,GAAa12O,OAASA,KAAKk+F,kBAAoBs4I,EACvEG,EAAgB,YAAc32O,KAAK+nB,OAAO,uBAC1C6uN,GAAsB,OAASN,QAAiB,IAAWA,OAAgB,EAASA,EAAc/6K,WAAao6K,EAC/G12O,GAAS,EACb,IAAKqpG,GAAqBo7B,GAAiBwyG,IAAiBS,GAAiBR,GAAoBS,GAAsBH,GAAuBC,GAC1I,OAAOz3O,EAKX,GAHIykI,GAAiB1jI,KAAK8/F,aACtB9/F,KAAKgzO,iCAAkC,GAEvCtvG,GAAiB4yG,EAAe,CAChCr3O,GAAS,EACTqpG,EAAkB/sC,UAAU+6K,EAAc/6K,WAC1C+sC,EAAkB8lI,cAAckI,EAAclI,eAC9CpuO,KAAK+/F,qBAAsB,EAC3B//F,KAAKunG,uBAAwB,EAC7B,IAAIsvI,EAAmB72O,KAAK+yO,kBAC5B/yO,KAAKsvB,OAAOwiE,OAAO,KACf9xF,KAAK+/F,yBAAsB,EAC3B//F,KAAKunG,2BAAwB,IAC9Bp6E,KAAK,KACJ,IAAIyqE,EAAa53F,KAAK29F,YAAc,GAAK39F,KAAKu7D,cAAgBv7D,KAAK29F,YAAc,GAChFk5I,GAAoBj/I,IAAe53F,KAAK01O,0BACrC11O,KAAKgzO,kCACLhzO,KAAKgzO,iCAAkC,EACvChzO,KAAKmzO,aAAa,CACd2D,uBAAuB,OAKvC,OAAO73O,GAEXk0O,aAAc,SAASvzJ,GACnB,IACIk3J,sBAAuBA,EACvBZ,aAAcA,EACda,oBAAqBA,GACrB,OAASn3J,QAAU,IAAWA,EAASA,EAAS,GAChD8jD,EAAgB6Q,GAAgBv0I,MACpC,GAAI0jI,GAAiB,OAAcv1G,sBAAsBnuB,MAAO,CAC5DA,KAAKozO,4BACL,IAAI4D,EAAsBh3O,KAAKi2O,WAAWC,GAAea,GACpDC,GAAyBh3O,KAAK8/F,YAAco2I,GAAkBY,GAC/D92O,KAAKmhG,YAAY,CACb74C,oBAAoB,EACpBg/C,sBAAsB,EACtBL,wBAAwB,EACxBysI,oBAAoB,MAKpC/E,eAAgB,WACZ,IAAIsI,EAAuBC,EACvBjR,EAAejmO,KAAKimO,eACpBl1H,EAAY/wG,KAAK0oB,QAAQ9uB,OACzBm9O,EAAsB9Q,EAAel1H,EACrComI,EAAc,QAAUF,EAAwB,QAAUC,EAAyBl3O,KAAKqyO,2BAAwB,IAAW6E,OAAyB,EAASA,EAAuBznN,YAAS,IAAWwnN,EAAwBA,EAAwB,EACxPzE,EAAuBxyO,KAAKmyO,sBAC5BiF,EAAU,OAAS5E,QAAwB,IAAWA,OAAuB,EAASA,EAAqBlI,oBAAoB76M,MAClIsnN,GAAuBI,EAAcC,KAAap3O,KAAKq/F,WAAa0R,GAAa/wG,KAAKmzO,aAAa,CAChG+C,cAAc,EACda,oBAAqBA,KAG7BzF,WAAY,WACR,IAAI,IAAUtxO,KAAK+nB,OAAO,IAA1B,CAGA,IAAIyqN,EAAuBxyO,KAAKmyO,sBAChCK,GAAwBA,EAAqBlB,aAC7C,IAAI/nN,EAAavpB,KAAKwpB,YACtB,OAAOD,GAAcA,EAAW+nN,eAEpCrG,YAAa,WACT,IAAIuH,EAAuBxyO,KAAKmyO,sBAChC,GAAIK,EACA,OAAOA,EAAqBvH,YAAYnsO,MAAM0zO,EAAsBtyO,WAExE,IAAIqpB,EAAavpB,KAAKwpB,YACtB,OAAOD,GAAcA,EAAW0hN,YAAYnsO,MAAMyqB,EAAYrpB,YAElEqmO,aAAc,WACV,IAAIiM,EAAuBxyO,KAAKmyO,sBAChC,GAAIK,EACA,OAAOA,EAAqBjM,aAAaznO,MAAM0zO,EAAsBtyO,WAEzE,IAAIqpB,EAAavpB,KAAKwpB,YACtB,OAAOD,GAAcA,EAAWg9M,aAAaznO,MAAMyqB,EAAYrpB,YAEnEimO,iBAAkB,WACd,IAAIqM,EAAuBxyO,KAAKmyO,sBAChC,GAAIK,EACA,OAAOA,EAAqBrM,iBAAiBrnO,MAAM0zO,EAAsBtyO,WAE7E,IAAIqpB,EAAavpB,KAAKwpB,YACtB,OAAOD,GAAcA,EAAW48M,iBAAiBrnO,MAAMyqB,EAAYrpB,YAEvEywF,QAAS,SAAS3/E,GACd,IAAIuY,EAAavpB,KAAKwpB,YAItB,OAHID,GAAcvY,GAAWA,EAAQse,MAAQ,GAAatvB,OACtDupB,EAAWkwE,yBAERz5F,KAAKC,SAASnB,MAAMkB,KAAME,YAErCuhE,QAAS,WACL,IAAI+wK,EAAuBxyO,KAAKmyO,sBAChCK,GAAwBA,EAAqB/wK,UAC7CzhE,KAAKC,SAASnB,MAAMkB,KAAME,YAE9Bm3O,aAAc,WACV,IAAIC,EACJ,OAAO,QAAUA,EAAyBt3O,KAAKqyO,2BAAwB,IAAWiF,OAAyB,EAASA,EAAuB5nN,MAE/I6nN,gBAAiB,WACb,IAAIlN,EAAiBrqO,KAAKqyO,oBAC1B,OAAOhI,GAAkBA,EAAe36M,KAAO26M,EAAe56M,MAElE42M,kBAAmB,WACf,IAAImM,EAAuBxyO,KAAKmyO,sBAChC,GAAIK,EACA,OAAOA,EAAqBnM,kBAAkBvnO,MAAM0zO,EAAsBtyO,WAE9E,IAAIqpB,EAAavpB,KAAKwpB,YACtB,OAAO,OAASD,QAAc,IAAWA,OAAa,EAASA,EAAW88M,kBAAkBvnO,MAAMyqB,EAAYrpB,YAElHq7D,UAAW,SAASm4H,GAChB,IAIY6mB,EAJR72E,EAAgB6Q,GAAgBv0I,MAChCwyO,EAAuBxyO,KAAKmyO,sBAChC,IAAI,IAAUnyO,KAAK+nB,OAAO,KAA0B27G,GAAiB8uG,QAC7D,IAAW9+C,EAEX,OAAO,QAAU6mB,EAAev6M,KAAK+nB,OAAOolN,WAAwB,IAAW5yB,EAAeA,EAAe,EAGrH,OAAOv6M,KAAKC,SAASnB,MAAMkB,KAAME,YAErCsnG,aAAc,SAAS5jG,GACnB5D,KAAKC,SAASnB,MAAMkB,KAAME,WAC1B,IACIm1F,eAAgBA,GAChBzxF,EACJ,IAAI,IAAU5D,KAAK+nB,OAAO,KAA0BwsH,GAAgBv0I,OAASq1F,EAAgB,CACzF,IACIE,WAAYA,EACZh6B,UAAWA,GACX85B,EACAzxF,EAAEwjG,gBAAkB7R,GAAch6B,GAClCv7D,KAAK01O,wBAAwB11O,KAAKwpB,YAAY+xC,eAI1D4jC,sBAAuB,SAAS90C,GAC5B,IAAIprD,EAASe,KAAKC,SAASnB,MAAMkB,KAAME,WAIvC,OAHI,IAAUF,KAAK+nB,OAAO,KAA0BwsH,GAAgBv0I,QAChEf,EAASe,KAAKqqD,MAEXprD,GAEXooB,QAAS,WACL,OAAO,IAAUrnB,KAAK+nB,OAAO,KAA0B/nB,KAAK0oB,OAAM,GAAM9uB,OAASoG,KAAKC,SAASD,KAAME,YAEzG4pG,iBAAkB,WACd,IAAI7qG,GAAS,EACb,IAAI,IAAUe,KAAK+nB,OAAO,KAA0BwsH,GAAgBv0I,MAAO,CACvE,IACIu7D,UAAWA,EACX6yK,cAAeA,GACfpuO,KAAKsyO,mBAAkB,GACvB30I,EAAY39F,KAAK29F,YACrB1+F,EAASs8D,EAAY6yK,GAAiBzwI,OAEtC1+F,EAASe,KAAKC,SAASnB,MAAMkB,KAAME,WAEvC,OAAOjB,GAEXotF,MAAO,WACHrsF,KAAKuzO,WAAa,EAClBvzO,KAAK4yO,UAAY,KACjB5yO,KAAKC,SAASnB,MAAMkB,KAAME,YAE9BqhG,aAAc,WACV,IAAIi2I,EACJ,QAAUA,EAAqBx3O,KAAKwpB,mBAAgB,IAAWguN,GAA8BA,EAAmBpJ,cAAc,GAC9HpuO,KAAKC,SAASnB,MAAMkB,KAAME,aAKlC,OAFA,OAAckpB,YAAYm2E,EAAS,yBACnC,OAAcn2E,YAAYm2E,EAAS,wBAC5BA,EAjrBL,GAmrBN4yB,SAAU,CACNunB,0BAA2B,SAASD,GAChC,OAAO,kBAAKz5I,KAAKC,SAASnB,MAAMkB,KAAME,YAAYitB,KAAKsqN,IACnD,IAAIC,EAAmB,GAAcj+F,KAAmB,IAAUA,EAAe1xH,OAAO,IACxF,IAAK0vN,GAAyBC,EAAkB,CAC5C,IAAIxrI,EAAautC,EAAersC,gBAC5BlB,GACAutC,EAAexpB,uBAK/BlsD,OAAQ,WACJ,IAEI9kE,EAFA0E,EAAO3D,KACPC,EAAW0D,EAAK1D,SAEpB,GAAI,GAAc0D,IAAS,OAAcwqB,sBAAsBxqB,GAAO,CAClE8lE,aAAa9lE,EAAKg0O,gBAClB,IAAI9kN,EAAO,IAAI94B,KAAO4J,EAAKi0O,UACvBnG,EAAgB9tO,EAAKokB,OAAO,2BAC5BpkB,EAAKi0O,WAAa/kN,EAAO4+M,GACzBxyO,EAAS,IAAI,cACb0E,EAAKg0O,eAAiB1kO,YAAW,WAC7BhT,EAASnB,MAAM6E,GAAMwpB,KAAKluB,EAAOuwB,SAASG,KAAK1wB,EAAO4kC,QACtDlgC,EAAKi0O,UAAY,IAAI79O,OACrB03O,GACJ9tO,EAAKi0O,UAAY,IAAI79O,OAErBkF,EAASgB,EAASnB,MAAM6E,GACpBA,EAAKyjB,gBAAgBo2D,aACrB75E,EAAKi0O,UAAY,IAAI79O,YAI7BkF,EAASgB,EAASnB,MAAM6E,GAE5B,OAAO1E,GAEXwiE,QAAS,WACLzhE,KAAKC,SAASnB,MAAMkB,KAAME,WAC1BupE,aAAazpE,KAAK23O,mBAI9B5yK,MAAO,CACH74C,SAAUoiN,MCv4CtB,EAAS7oK,eAAe,mBAAoB+rK,IAC5C,GAAkB/2O,OAAO+2O,GAAuBvsK,UAAUqjC,mBCK1D,IAAIuvI,GAAwB,GACjBC,GAA8B,CAAC9xN,EAAU+xN,KAChD,IAIIC,EAJA3vN,EAAU,eAAE,mBAEZuD,IAAKqsN,GACLjyN,EAASoF,SAEb,GAAI,eAAU2sN,GAAgB,CAC1B,GAAIA,EAAgBE,EAChB,OAAOA,EAAgBF,EAEvBC,EAAe,eAAe3vN,GAAW0vN,EAAgB1vN,EAAQooG,gBAElE,CACH,IAAIynH,EAAYD,EAAgB5vN,EAAQooG,YACpC0nH,EAAe,eAAe9vN,GAAW6vN,EAAY,eAAelyN,GACxEgyN,EAAer2N,KAAKqQ,IAAIkmN,EAAWC,GAEvC,OAAOH,EAAeH,I,aCXtBO,GAA0C,oCAC1C,GAAmB,aACvB,MAAM,WAAgB,GAClB,qBACI,OAAO,OAAA39O,EAAA,WAAOk7G,MAAMC,qBAAsB,CACtCyiI,YAAa,aACb7uL,SAAU,KACV8uL,aAAc,SAGtB,mBACIt4O,KAAK23G,aAAe33G,KAAK+nB,OAAO,gBAC3B/nB,KAAK23G,cACNhC,MAAM4iI,mBAGd,qBACIv4O,KAAKmnH,4BACLxR,MAAMkR,qBACN,IAAI3O,EAAOl4G,KAAK23G,aAAaQ,aAAan4G,KAAK+nB,OAAO,eACtDmwF,GAAQl4G,KAAKm6G,aAAan6G,KAAKyjH,eAAevL,IAC9Cl4G,KAAKw4O,mBAET,mBACIx4O,KAAKy4O,kBAAoB,eAAE,SAASlxN,SAASvnB,KAAKm2G,kBAAkB7uF,SAAS8wN,IAEjF,qBACI,OAAO,OAAA39O,EAAA,WAAOk7G,MAAM4M,qBAAsB,CACtCk/G,aAAczhO,KAAK04O,gCAAgCluN,KAAKxqB,QAGhE,gCAAgC8sG,GAC5B9sG,KAAK24O,eAAe7rI,GAExB,iBAAiBlpG,GACb+xG,MAAM4N,iBAAiB3/G,GACvB5D,KAAKsuM,mBAAkB,EAAO1qM,EAAE8lE,eAEpC,oBACI,MAAO,eAAiB1pE,KAAK+nB,OAAO,eAExC,mBAAmBnkB,GACf,IAAIg1O,EAAmB54O,KAAK+nB,OAAO,gBACnC6wN,EAAiBh1O,GACjB+xG,MAAMkjI,mBAAmBj1O,GACzB5D,KAAKsuM,mBAAkB,EAAM1qM,EAAE8lE,eAEnC,aAAai7C,GACT3kH,KAAKy/D,SAASpL,UAAU,CACpBykL,SAAU,eAAiBn0H,GAC3Bo0H,QAAS/4O,OAEb21G,MAAMgQ,aAAahB,GACnB3kH,KAAKy/D,SAASnL,QAAQ,CAClBwkL,SAAU,eAAiBn0H,GAC3Bo0H,QAAS/4O,OAGjB,aAAa2kH,GACT3kH,KAAKy/D,SAASxL,SAAS,CACnBrE,QAAQ,EACRkpL,SAAU,eAAiBn0H,GAC3Bo0H,QAAS/4O,OAEb21G,MAAM+L,aAAaiD,GACnB3kH,KAAKy/D,SAASzL,SAAS,CACnB8kL,SAAU,eAAiBn0H,GAC3Bo0H,QAAS/4O,OAGjB,eAAe8sG,GACX,GAAK9sG,KAAKy4O,kBAAV,CAGA,IAAI72H,EAAW5hH,KAAKm2G,iBAAiB9uC,SAAS,IAAIx1D,OAAO,KAAmB2Z,GAAG,GAC3Em5F,EAAY3kH,KAAK+nB,OAAO,YAAYO,GACpCksC,EAAW,CACXlsC,GAAIs5F,GAEJo3H,EAAkBlsI,EAAIt4C,SACtBykL,EAAYD,EAAgBr5M,EAAE26B,SAC9B4+K,EAAYF,EAAgB52N,EAAEk4C,SAC9B6+K,EAAax0H,EAAUv5F,SACvBguN,EAAaz3N,KAAKwqF,MAAMgtI,EAAWxtN,MACnCusN,EAAYv2N,KAAKwqF,MAAMgtI,EAAWvtN,KAClCytN,EAAY,eAAS10H,GACrB20H,EAAa,eAAU30H,GACvB40H,EAAe,eAAS33H,GACxB43H,EAAgB,eAAU53H,GAC9B5hH,KAAKy4O,kBAAkBhtN,IAAI,UAAW,SACtC,eAASzrB,KAAKy4O,kBAAmBz4O,KAAKy5O,oBAAsBJ,EAAYE,EAAeF,EAAY,EAAIE,EAAe,GACtH,eAAUv5O,KAAKy4O,kBAAmBz4O,KAAKy5O,oBAAsB,EAAIH,EAAaE,EAAgBF,EAAa,EAAIE,GAC3Gx5O,KAAKy5O,oBACDR,EAAYf,EACRv2N,KAAKwqF,MAAM+sI,KAAeE,GAC1B5kL,EAASppC,OAAS,OAClBopC,EAASkH,GAAKlH,EAASoH,GAAK,aAE5BpH,EAASppC,OAAS,QAClBopC,EAASkH,GAAKlH,EAASoH,GAAK,cAGhC,eAAU57D,KAAKy4O,kBAAmB,GAC9B92N,KAAKwqF,MAAM+sI,KAAeE,GAC1B5kL,EAASppC,OAAS,MAClBopC,EAASkH,GAAKlH,EAASoH,GAAK,gBAE5BpH,EAASppC,OAAS,OAClBopC,EAASkH,GAAKlH,EAASoH,GAAK,iBAG7Bs9K,EAAYE,EACfz3N,KAAKwqF,MAAM8sI,KAAef,GAC1B1jL,EAASppC,OAAS,OAClBopC,EAASkH,GAAKlH,EAASoH,GAAK,aAE5BpH,EAASppC,OAAS,QAClBopC,EAASkH,GAAKlH,EAASoH,GAAK,eAEzBj6C,KAAKwqF,MAAM8sI,KAAef,GACjC1jL,EAASppC,OAAS,MAClBopC,EAASkH,GAAKlH,EAASoH,GAAK,cAE5BpH,EAASppC,OAAS,OAClBopC,EAASkH,GAAKlH,EAASoH,GAAK,gBAEhC,QAAkBsqD,MAAMlmH,KAAKy4O,kBAAmBjkL,IAEpD,0BACI,OAAOx0D,KAAK+nB,OAAO,YAEvB,mBACI,OAAO/nB,KAAKkgH,SAASn4F,OAAO,WAEhC,oBACI,OAAO/nB,KAAKkgH,SAAStjC,YAGd,UCtHX,GAAgB,UAChB88J,GAAyB,GAAgB,YACzCC,GAA2B,GAAgB,cAC3C,GAAqB,GAAgB,QACrC,GAAgC,GAAgB,mBAChD,GAA8B,GAAqB,YACnD,GAAwB,kBACxBC,GAAyC,GAAwB,oBACjE,GAA0C,oCAC1C,GAAmB,aACnB,GAA0B,oBAC1B,GAAuB,iBACvBC,GAAwB,kBACxBC,GAAyB,GAAgB,iBACzCC,GAAqC,GAAgB,oBACrDC,GAAyCF,GAAyB,mBAClE,GAAW,KACX,GAAa,OACb,GAAa,OACb,GAAc,QACdG,GAAyB,cACzBC,GAAqB,WACrBC,GAAqB,WACrB,GAAgB,CAChB1vL,KAAM,GACND,KAAM,KAEN,GAAU,CAAC,mBAAoB,iBAAkB,kBAAmB,kBAAmB,oBAAqB,cAAe,qBAAsB,kBACrJ,MAAM,WAAa,GACf,qBACI,OAAO,OAAA/vD,EAAA,WAAOk7G,MAAMC,qBAAsB,CACtCyiI,YAAa,aACbh5H,iBAAkB,OAClB+6H,qBAAsB,CAClBx4O,KAAM,UACNomC,MAAO,CACHyiB,KAAM,GACND,KAAM,MAGd6vL,yBAAyB,EACzBC,iBAAkB,KAClBC,eAAgB,KAChBC,gBAAiB,KACjBC,gBAAiB,KACjBl+D,mBAAmB,IAG3B,yBACI5mE,MAAMqK,yBACN,OAAAvlH,EAAA,WAAOuF,KAAKigH,oBAAqB,CAC7B/sD,WAAW,EACXukD,cAAc,IAGtB,gBACI,IAAIijI,EAAmB/kI,MAAM0H,gBACzBs9H,EAAkB36O,KAAK46O,uBAC3B,OAAOF,EAAiBlmK,IAAImmK,GAEhC,uBACI,IAAI/jK,EAAW,GACXyyF,EAAe,IAAIx3J,OAAO,IAC1BgpO,EAAiB76O,KAAK86O,UAAUlhP,QAAUoG,KAAK86O,UAAU,GAI7D,OAHID,GAAkBA,EAAeh6H,mBACjCjqC,EAAWikK,EAAeh6H,iBAAiB55F,KAAKoiJ,IAE7CzyF,EAEX,eACI,OAAO52E,KAAKgmB,WAEhB,oBACI,MAAO,eAAiBhmB,KAAK+nB,OAAO,eAExC,WAAWuyC,GACP,IAGI0qE,EACAl8G,EACAiyN,EACAt6H,EANAC,EAAS1gH,KAAK25G,qBACdqhI,EAAmBh7O,KAAKy5O,oBACxBp4H,EAAcrhH,KAAKwgH,gBAAe,GAKtC,OAAQlmD,GACJ,KAAK,GACDxxC,EAAYkyN,EAAmBf,GAAyBj6O,KAAKi7O,6BAA6Bd,IAC1Fn1G,EAAWg2G,EAAmB35H,EAAcX,EAC5Cq6H,EAAmB/6O,KAAKk7O,6BAA6BpyN,EAAWk8G,GAChEvkB,EAAas6H,IACb,MACJ,KAAK,GACDjyN,EAAYkyN,EAAmBf,GAAyBj6O,KAAKi7O,6BAA6Bf,IAC1Fl1G,EAAWg2G,EAAmB35H,EAAcX,EAC5Cq6H,EAAmB/6O,KAAKk7O,6BAA6BpyN,EAAWk8G,GAChEvkB,EAAas6H,IACb,MACJ,KAAK,GACDjyN,EAAYkyN,EAAmBh7O,KAAKi7O,6BAA6Bf,IAAsBD,GACvFj1G,EAAWg2G,EAAmBt6H,EAASW,EACvC05H,EAAmB/6O,KAAKk7O,6BAA6BpyN,EAAWk8G,GAChEvkB,EAAas6H,IACb,MACJ,KAAK,GACDjyN,EAAYkyN,EAAmBh7O,KAAKi7O,6BAA6Bd,IAAsBF,GACvFj1G,EAAWg2G,EAAmBt6H,EAASW,EACvC05H,EAAmB/6O,KAAKk7O,6BAA6BpyN,EAAWk8G,GAChEvkB,EAAas6H,IACb,MACJ,QACI,OAAOplI,MAAMyL,WAAW9mD,GAE5BmmD,GAAc,IAAMA,EAAW7mH,QAC/BoG,KAAK+nB,OAAO,iBAAkB,eAAiB04F,IAGvD,6BAA6B33F,GACzB,IAAIqyN,EAAeryN,EAInB,OAHI9oB,KAAK+nB,OAAO,gBACZozN,EAAeryN,IAAcqxN,GAAqBD,GAAqBC,IAEpEgB,EAEX,6BAA6BryN,EAAWk8G,GACpC,IAAI5jE,EAAS,OACb,OAAQt4C,GACJ,KAAKmxN,GACIj1G,EAAS1+D,SAAS,MACnBlF,EAASphE,KAAKw5G,aAAahvF,KAAKxqB,KAAMglI,IAE1C,MACJ,KAAKk1G,GACD94K,EAASphE,KAAKihH,UAAUz2F,KAAKxqB,KAAMglI,GACnC,MACJ,KAAKm1G,GACD/4K,EAASphE,KAAK+gH,UAAUv2F,KAAKxqB,KAAMglI,GAE3C,OAAO5jE,EAEX,SACIu0C,MAAMS,SACNp2G,KAAK+nB,OAAO,kCAAoC0hD,aAAazpE,KAAKqtM,mBAEtE,mBAAmB1jJ,GACXA,IACK3pD,KAAKo7O,iBACNp7O,KAAKq7O,yBAETr7O,KAAK86H,qBAGb,uBACI,OAAO96H,KAAK+nB,OAAO,sBAAwB,eAAiB/nB,KAAK+nB,OAAO,eAE5E,yBACI,IAAIuzN,EAAat7O,KAAKgmB,WAAWiB,KAAK,MAAMwyD,QAAQpS,SAAS,MAAMA,SAAS,IAAIx1D,OAAO,KACvF7R,KAAKo7O,gBAAkBp7O,KAAKs7H,sBAAsBggH,GAAY,GAElE,oBACI,GAAKt7O,KAAKu7O,uBAAV,CAGA,IAAIC,EAAiB,eAAcx7O,KAAKgmB,YACxChmB,KAAKy7O,oBAAoBz7O,KAAKo7O,gBAAkBI,IAEpD,QACI7lI,MAAMiB,QACN52G,KAAK86O,UAAY,GAErB,eACI96O,KAAKy/D,SAAW,GAChB,eAAK,GAAS,CAACr+D,EAAOggE,KAClBphE,KAAKy/D,SAAS2B,GAAUphE,KAAKuhE,sBAAsBH,KAG3D,cACIphE,KAAK07O,gBAAkB,KACvB17O,KAAKgmB,WAAWsB,SAAS,IACzBquF,MAAM2C,cACNt4G,KAAKyiH,mBAAmBziH,KAAKgmB,YAC7BhmB,KAAKosB,QAAQ,OAAQ,WAEzB,UACIupF,MAAMoM,UACN/hH,KAAK27O,kBAET,yBAMI,OALA37O,KAAK47O,WAAa,IAAI,cAAO,eAAE,SAASt0N,SAASyyN,IAAqC,CAClF9uL,KAAM,OACNnI,oBAAoB,EACpBoI,QAASlrD,KAAK67O,gBAAgBrxN,KAAKxqB,QAEhCA,KAAK47O,WAAW51N,WAE3B,gBAAgB4pB,GACR,eAAcA,KACdA,GAAS5vC,KAAKkgH,SAASn4F,OAAO,YAElC/nB,KAAKkgH,SAASn4F,OAAO,UAAW6nB,GAChC5vC,KAAK87O,4BAA4BlsM,GAErC,4BAA4BA,GACxB5vC,KAAK47O,YAAc57O,KAAK47O,WAAW51N,WAAW69C,YAAYg2K,GAAuBjqM,GAErF,oBAAoBA,GAChB,IAAImsM,EAAsB/7O,KAAKgmB,WAAWiB,KAAK,IAAIpV,OAAO8nO,KACtDqC,EAAoBh8O,KAAKgmB,WAAWiB,KAAK,IAAIpV,OAAOioO,KACpDlqM,EACA5vC,KAAKi8O,uBAELj8O,KAAKk8O,WAAal8O,KAAKk8O,UAAU7lG,cACjCr2I,KAAKkgH,UAAYlgH,KAAK67O,gBAAgBjsM,IAE1CmsM,EAAoBvtI,QAAQ5+D,GAC5BosM,EAAkBxtI,OAAO5+D,GAE7B,oBACS5vC,KAAKm8O,sBAGVn8O,KAAKy7O,qBAAoB,GACzBz7O,KAAKm8O,oBAAoBr0N,SACzB9nB,KAAKm8O,oBAAsB,KAC3Bn8O,KAAKk8O,UAAY,KACjBl8O,KAAK47O,WAAa,KAClB57O,KAAKkgH,SAAW,MAEpB,0BAA0Bt8G,GACtB5D,KAAKy/D,SAASkgB,YAAY/7E,GACrBA,EAAEs0G,KAAK7wC,SAASztE,QACjBoG,KAAK67O,iBAAgB,GAG7B,6BACI,IAAI30C,EAAMlnM,KAAK+nB,OAAO,cAClBysC,EAAW0yI,EAAM,QAAU,OAC/B,MAAO,CACHk1C,iCAAiC,EACjCvoL,UAAW,IAAMikL,GAA4B93O,KAAKgmB,YAClDstC,gBAAgB,EAChBrrC,SAAS,EACTirC,WAAW,EACXU,oBAAoB,EACpBI,SAAU,KACNh0D,KAAK87O,6BAA4B,IAErCpqO,OAAQ,OACRiiD,mBAAoB/vD,IAAM,eAAEA,EAAE0hB,QAAQ2H,QAAQ,IAAIpb,OAAOkoO,KAAqCngP,OAC9F46D,SAAU,CACNhsC,UAAW,UACXkzC,GAAI,UAAYlH,EAChBoH,GAAI,OAASpH,EACblsC,GAAItoB,KAAK47O,WAAW51N,aAIhC,sBACI,IAAIq2N,EAAc,GASlB,OARA,eAAK,CAAC,aAAc,QAAS,YAAa,qBAAsB,YAAa,aAAc,WAAY,cAAe,cAAe,oBAAqB,OAAQ,oBAAqB,YAAa,QAAS,eAAgB,eAAgB,gBAAiB,WAAY,WAAY,CAACt9O,EAAGgpB,KACtRs0N,EAAYt0N,GAAU/nB,KAAK+nB,OAAOA,KAEtC,eAAK,CAAC,oBAAqB,qBAAsB,kBAAmB,CAAChpB,EAAG6hE,KACpEy7K,EAAYz7K,GAAch9D,IACtB5D,KAAKy/D,SAASmB,GAAYh9D,MAG3B,OAAAnJ,EAAA,WAAO4hP,EAAa,CACvB9yN,WAAYvpB,KAAK4gG,gBACjBsjG,mBAAoBlkM,KAAK+nB,OAAO,aAChC43D,YAAa3/E,KAAKs8O,0BAA0B9xN,KAAKxqB,MACjDu8O,eAAgB34O,IACZ5D,KAAKkgH,SAASsc,UACdx8H,KAAKy/D,SAAS86K,eAAe32O,IAEjC44O,gBAAiB54O,IACb5D,KAAKkgH,SAASsc,UACdx8H,KAAKy/D,SAASg7K,gBAAgB72O,IAElCkoI,sBAAsB,EACtBh2B,cAAe91G,KAAK+nB,OAAO,iBAC3B00N,YAAa,UAGrB,kBACI,GAAKz8O,KAAKu7O,uBAAV,CAGAv7O,KAAKm8O,oBAAsB,eAAE,SAAS70N,SAASwyN,IAC/C,IAAI4C,EAAa18O,KAAK28O,yBACtB38O,KAAKk8O,UAAYl8O,KAAKooB,iBAAiB,eAAE,SAAU,cAAUpoB,KAAK48O,uBAClE58O,KAAKkgH,SAAWlgH,KAAKooB,iBAAiB,eAAE,SAAU,QAASpoB,KAAK68O,8BAChE78O,KAAKkgH,SAAStjC,WAAWhzC,OAAO5pC,KAAKk8O,UAAUl2N,YAAYsB,SAASwyN,IAAwBxyN,SAAStnB,KAAK+nB,OAAO,aACjH/nB,KAAKkgH,SAASjF,WAAW3zF,SAAS0yN,IAClCh6O,KAAKm8O,oBAAoBvyM,OAAO8yM,GAChC18O,KAAKm8O,oBAAoBvyM,OAAO5pC,KAAKkgH,SAASl6F,YAC9ChmB,KAAKgmB,WAAW4jB,OAAO5pC,KAAKm8O,qBAC5Bn8O,KAAKq7O,yBACLr7O,KAAK86H,qBAET,UAAUgiH,GACN,IAAI90M,EAAQhoC,KAAK+nB,OAAO,wBAAwBigB,MAChD,OAAK,eAAUA,GAGJ,eAASA,GAASA,EAAM80M,GAAa90M,EAFrC,GAAc80M,GAK7B,iBAAiBl5O,GACb,OAAO+xG,MAAMsyC,iBAAiBrkJ,IAAK5D,KAAK07O,iBAE5C,mBACI,IAAIzgI,EAAW,eAAE,SAEjB,OADAA,EAAS1zF,SAASvnB,KAAKgmB,YAAYsB,SAAStnB,KAAKy5O,oBAAsBE,GAA2BD,IAC3F/jI,MAAM8E,iBAAiBQ,GAElC,oBAAoB/C,EAAMmD,GACtB,IAAI09H,EAAU/4O,KAAK+8O,eAAe7kI,EAAMmD,GAGxC,OAFAr7G,KAAK86O,UAAU73O,KAAK81O,GACpB/4O,KAAKg9O,qBAAqB3hI,GACnB09H,EAEX,wBACI,OAAOpjI,MAAMsnI,wBAAwBprO,OAAO7R,KAAK07O,iBAErD,eAAexjI,EAAMyM,GACjB,IAAIu4H,EAAoB,eAAE,SAAS51N,SAAS,IAAuBC,SAASo9F,GACxEj8F,EAAQ1oB,KAAKyjH,eAAevL,GAC5BilI,EAAUn9O,KAAKooB,iBAAiB80N,EAAmB,GAAS,OAAAziP,EAAA,WAAOuF,KAAKo9O,qBAAsB,CAC9FzlI,aAAc33G,KAAK23G,aACnB0lI,WAAYnlI,EAAKJ,eAAeh9G,IAChC4tB,MAAOA,EACP4vN,aAAct4O,KAAKs9O,eAAe9yN,KAAKxqB,MACvCw0D,SAAUx0D,KAAKu9O,mBAAmB54H,MAGtC,OADA3kH,KAAKw9O,uBAAuB74H,EAAWw4H,GAChCA,EAEX,qBACI,IAAIM,EAAiB,eAAE,SACnBzC,EAAmBh7O,KAAKy5O,oBAC5B,MAAO,CACH9jH,aAAc31H,KAAK+nB,OAAO,gBAC1BzC,OAAQm4N,EACRpF,YAAar4O,KAAK+nB,OAAO,eACzBguG,cAAe/1H,KAAK+nB,OAAO,iBAC3BijC,SAAUhrD,KAAK+nB,OAAO,YACtB+tF,cAAe91G,KAAK+nB,OAAO,iBAC3Bm9B,kBAAmBllD,KAAK+nB,OAAO,qBAC/B+6B,mBAAoB9iD,KAAK+nB,OAAO,sBAChC88B,kBAAmB7kD,KAAK+nB,OAAO,qBAC/BmrC,UAAWlzD,KAAK+nB,OAAO,aACvB8tF,gBAAiB71G,KAAK+nB,OAAO,mBAC7BiI,YAAahwB,KAAK+nB,OAAO,eACzB21N,aAAc19O,KAAK+nB,OAAO,gBAC1B41N,aAAc39O,KAAK+nB,OAAO,gBAC1B61N,UAAW59O,KAAK+nB,OAAO,aACvB6xJ,qBAAsBh2K,IACbA,EAAEmJ,UAAUgb,OAAO,YAGxB/nB,KAAK+nB,OAAO,iBAAkBnkB,EAAEmJ,UAAUgb,OAAO,oBAErDkgC,mBAAoBjoD,KAAK69O,qCAAqCrzN,KAAKxqB,MACnE2/E,YAAa3/E,KAAK89O,8BAA8BtzN,KAAKxqB,MACrDm2H,eAAgBn2H,KAAK+9O,iCAAiCvzN,KAAKxqB,MAC3Ds/G,gBAAiB07H,EAAmB,KAAOh7O,KAAKg+O,mBAAmBxzN,KAAKxqB,KAAMm6O,IAC9E56H,eAAgBy7H,EAAmB,KAAOh7O,KAAKg+O,mBAAmBxzN,KAAKxqB,KAAMk6O,IAC7E16H,mBAAoBx/G,KAAKg+O,mBAAmBxzN,KAAKxqB,KAAMg7O,EAAmBb,GAAqB,MAC/F16H,oBAAqBu7H,EAAmBh7O,KAAKg+O,mBAAmBxzN,KAAKxqB,KAAMk6O,IAAsB,MAGzG,2BACI,IAAKl6O,KAAK44G,mBACN,MAAO,UAEX,IAAIjc,EAAc38F,KAAK+nB,OAAO,wBAC9B,OAAO,eAAS40E,GAAeA,EAAY/6F,KAAO+6F,EAEtD,mBAAmB5iC,GACf,IAAI2mD,EAAS1gH,KAAK25G,qBACd5I,EAAY2P,EAAO9mH,OACnBqkP,EAAev9H,EAAOtiH,OAAO,IAAIyT,OAAO,KAA8B2Z,GAAG,GACzEioF,EAAYiN,EAAOt/G,MAAM68O,GAC7Bj+O,KAAK0hH,aAAa1hH,KAAK07O,iBACvBjoI,GAAa15C,IAAcogL,IAAsB,EAAI,EACjD1mI,GAAa1C,EACb0C,EAAY,EACLA,EAAY,IACnBA,EAAY1C,EAAY,GAE5B,IAAIo9F,EAAWztF,EAAOl1F,GAAGioF,GACzBzzG,KAAK+nB,OAAO,iBAAkB,eAAiBomL,IAEnD,qCAAqCtvJ,GACjC,IAAI44D,EAAe54D,EAAK6+D,WAAW9jH,QAAUilD,EAAK6+D,WAAW,GACzDq7H,EAAU,GAAQnmI,YAAY/zD,EAAKh4B,SACnCohC,EAAqBjoD,KAAKy/D,SAASxX,mBACvCA,EAAmBpJ,GACnB44D,GAAgBz3G,KAAKk+O,0BAA0BzmI,EAAa,GAAIshI,GAChE/4O,KAAKm+O,sBACLn+O,KAAKsgE,8BAA8B,eAAgBm3C,GAEvD,0BAA0B1wG,EAAMq3O,GAC5B,IAAIC,GAAoBn+O,UAAUtG,OAClC,eAAKoG,KAAK86O,UAAW,CAAC15O,EAAO23O,KACzB,IAAIn3H,EAAWm3H,EAAQ5iI,iBACnBmoI,GAAe18H,EAASh0H,GAAGwwP,GAAiBA,EAAcjoI,kBAC1D4vF,EAAgBnkF,EAAS36F,KAAK,IAAIpV,OAAO7R,KAAKi8G,uBAClD,GAAIqiI,GAAev4C,EAAcnsM,QAAUykP,EAAkB,CACzDt4C,EAAcv+K,YAAYxnB,KAAKi8G,sBAC/B,IAAIsiI,EAAmBv+O,KAAK49G,aAAamoF,GACrCw4C,IACAA,EAAiB1gI,UAAW,GAEhCk7H,EAAQyF,yBAIpB,sBACI,IAAIC,EAAoBz+O,KAAKgmB,WAAWiB,KAAK,IAAIpV,OAAO,KAAgC4nE,QAAQpS,WAAWA,WAAWjpE,OAAO,IAAIyT,OAAO7R,KAAKi8G,uBAC7I,GAAIwiI,EAAkB7kP,OAAQ,CAC1B,IAAI8kP,EAAuB1+O,KAAK49G,aAAa6gI,GAC7CC,EAAqB7gI,UAAW,EAChC4gI,EAAkBj3N,YAAYxnB,KAAKi8G,uBAG3C,8BAA8Br4G,GAC1B5D,KAAKy/D,SAASkgB,YAAY/7E,GAE9B,iCAAiCA,GAC7B5D,KAAKy/D,SAAS02D,eAAevyH,GAEjC,uBAAuB+gH,EAAWo0H,GAC9B,IAAI4F,EAAyB5F,EAAQ6F,oBACjCC,EAAWF,EAAuB13N,KAAK,IAAIpV,OAAO,KAClDitO,EAAwB,gBAAaC,GAAA,KAAe/+O,KAAK6hE,KAAO,YACpEk3K,EAAQhxN,OAAO,CACXssC,UAAWr0D,KAAKg/O,yBAAyBx0N,KAAKxqB,KAAM2kH,EAAWo0H,GAC/DzkL,QAASt0D,KAAKi/O,uBAAuBz0N,KAAKxqB,KAAM2kH,EAAWo0H,GAC3D9kL,SAAUj0D,KAAKk/O,wBAAwB10N,KAAKxqB,KAAM2kH,EAAWo0H,GAC7D/kL,SAAUh0D,KAAKm/O,wBAAwB30N,KAAKxqB,KAAM2kH,EAAWo0H,KAEjE,eAAK8F,EAAU,CAACz9O,EAAO23O,KACnB,OAAax4K,IAAIw4K,EAAS+F,GAC1B,OAAaz5O,GAAG0zO,EAAS+F,EAAuB,KAAM9+O,KAAKo/O,0BAA0B50N,KAAKxqB,KAAM2kH,MAGxG,yBAAyBA,EAAWo0H,GAChC,IAAIsG,EAAU16H,EAAUt9C,SAAS,IAAIx1D,OAAO+nO,KAC5C55O,KAAKy/D,SAAS66K,iBAAiB,CAC3BxB,SAAU,eAAiBn0H,GAC3Bo0H,QAASA,IAEbsG,EAAQ50L,OACRk6D,EAAUr9F,SAAS,IAEvB,uBAAuBq9F,EAAWo0H,GAC9B/4O,KAAKy/D,SAAS86K,eAAe,CACzBzB,SAAU,eAAiBn0H,GAC3Bo0H,QAASA,IAGjB,wBAAwBp0H,EAAWo0H,EAAS/+H,GACxC,IAAIqlI,EAAU16H,EAAUt9C,SAAS,IAAIx1D,OAAO+nO,KACxC/6L,EAAOm7D,EACXn7D,EAAKi6L,SAAW,eAAiBn0H,GACjC9lE,EAAKk6L,QAAUA,EACf/4O,KAAKy/D,SAAS+6K,gBAAgB37L,GAC9Bm7D,EAAYn7D,EACPm7D,EAAUpqD,SACP5vD,KAAK07O,kBAAoB3C,IACzB/4O,KAAK07O,gBAAkB,MAE3B2D,EAAQ70L,OACRm6D,EAAUn9F,YAAY,KAG9B,wBAAwBm9F,EAAWo0H,GAC/B/4O,KAAKy/D,SAASg7K,gBAAgB,CAC1B3B,SAAU,eAAiBn0H,GAC3Bo0H,QAASA,IAGjB,0BAA0Bp0H,EAAW3K,GACjC,IAAI10F,EAAS,eAAE00F,EAAUslI,eAAe5qJ,QAAQ,IAAI7iF,OAAO,KAAwB,GAC/Eq3G,EAAclpH,KAAKu/O,yBAAyB56H,GAAWi6H,oBAAoB,GAC3E5+O,KAAK+nB,OAAO,4BAA8BzC,IAAW4jG,IACrDlpH,KAAKs9O,iBACLrqO,WAAWjT,KAAKw/O,yBAAyBh1N,KAAKxqB,MAAOA,KAAKy/O,UAAU,UAG5E,2BACI,GAAKz/O,KAAK07O,gBAAV,CAGA,IAAIgE,EAAoB,eAAE1/O,KAAK07O,gBAAgB11N,WAAWkrE,SAAS5qB,SAAS,IACxEq5K,EAAuB3/O,KAAK07O,gBAAgBkD,oBAAoB33N,KAAK,IAAIpV,OAAO,KAAuBjY,OACvGgmP,EAA4B5/O,KAAK07O,gBAAgBkD,oBAAoBlhP,IAAI,GAAGq4E,cAAc,UACzF6pK,GAA8BD,GAAyBD,GACxD1/O,KAAK07O,gBAAgBlxL,QAG7B,yBAAyBm6D,GACrB,IAAKA,EACD,OAAO,EAEX,IAAI/C,EAAW+C,EAAUt9C,SAAS,IAAIx1D,OAAO,KAC7C,OAAO+vG,EAAShoH,QAAU,GAAQg5G,YAAYgP,GAElD,mBAAmB+C,GACf,IAAIk7H,EAAmB7/O,KAAKy5O,oBACxBp6H,EAAmBr/G,KAAK+nB,OAAO,oBAAoBjqB,cACnDutB,EAAarrB,KAAK+nB,OAAO,cACzBg+F,EAAkB,CAClBv9F,UAAW,OACXF,GAAIq8F,GAER,OAAQtF,GACJ,IAAK,YACD0G,EAAgBrqD,GAAK,WACrBqqD,EAAgBnqD,GAAKikL,EAAmB,cAAgB,YACxD,MACJ,IAAK,gBACD95H,EAAgBrqD,GAAKmkL,EAAmB,cAAgB,YACxD95H,EAAgBnqD,GAAK,WACrB,MACJ,QACQikL,GACA95H,EAAgBrqD,GAAKrwC,EAAa,eAAiB,cACnD06F,EAAgBnqD,GAAKvwC,EAAa,YAAc,aAEhD06F,EAAgBrqD,GAAKrwC,EAAa,WAAa,YAC/C06F,EAAgBnqD,GAAKvwC,EAAa,YAAc,YAG5D,OAAO06F,EAEX,qBAAqB5a,GACjB,eAAE,SAAS5jF,SAAS4jF,GAAO7jF,SAASsyN,IAAwCpvL,OAEhF,wBAAwB5mD,GACpB,IAAIi9D,EAAU,eAAEj9D,EAAE0hB,QACdw6N,EAAej/K,EAAQ5zC,QAAQjtB,KAAKq9G,iBACpCyiI,EAAax5K,SAAS,4BACtBtmE,KAAK+nB,OAAO,iBAAkB,MAGlC4tF,MAAMoqI,wBAAwBn8O,GAElC,mBAAmBA,GACf,IAAIo8O,EAAqB,gBAAar2K,EAAA,KAAcq8H,KAAMhmM,KAAK6hE,MAC3DspC,EAAQnrG,KAAKm5G,2BAA2Bv1G,GACxCs0G,EAAOl4G,KAAK23G,aAAaC,cAAc53G,KAAK49G,aAAazS,IACzD80I,EAAoB,eAAUr8O,EAAEuoD,UAAY,IAAMvoD,EAAEuoD,UAAY,eAAUvoD,EAAEuoD,UAAY,IAAMvoD,EAAE62B,MACpG,IAAIz6B,KAAKo5G,gBAAgBjO,GAIzB,GADA,OAAa5qC,IAAI4qC,EAAO60I,GACnBhgP,KAAKkgP,aAAahoI,IAIvB,GAAI,YAAcl4G,KAAKmgP,6BAA+BF,EAAmB,CACrE,IAAIlH,EAAU/4O,KAAKogP,qBAAqBj1I,GACxCnrG,KAAKs9O,iBACAvE,EAAQ/W,qBACT,OAAa38N,GAAG8lG,EAAO60I,EAAoBhgP,KAAKqgP,sBAAsB71N,KAAKxqB,OAC3EA,KAAKsgP,kBAAoBtgP,KAAKy/O,UAAU,eAR5Cz/O,KAAKsgP,kBAAoBrtO,WAAWjT,KAAKw/O,yBAAyBh1N,KAAKxqB,MAAOA,KAAKy/O,UAAU,SAYrG,iBAAiBc,GACb,IAAIp1I,EAAQnrG,KAAKm5G,2BAA2BonI,GACxCjB,EAAgB,eAAEiB,EAASjB,eAC/B3pI,MAAM4N,iBAAiBg9H,GACvBvgP,KAAKs9O,iBACDt9O,KAAKo5G,gBAAgBjO,IAGrBm0I,EAAch5K,SAAS,KAGvBtmE,KAAK+nB,OAAO,6BAA+Bu3N,EAAch5K,SAAS,MAClEtmE,KAAKwgP,kBAAoBvtO,WAAW,KAChCjT,KAAKw/O,4BACNx/O,KAAKy/O,UAAU,UAG1B,sBACI,QAAKz/O,KAAK07O,kBAGV17O,KAAK0hH,aAAa1hH,KAAK07O,kBAChB,GAEX,aAAaxiI,GACT,IAAI6/H,EAAU/4O,KAAKogP,qBAAqBlnI,GACpCl5G,KAAK07O,kBAAoB3C,GACzB/4O,KAAKi8O,sBAELlD,IACA/4O,KAAKs9O,iBACLt9O,KAAKgT,QACL+lO,EAAQtuL,OACRzqD,KAAK+nB,OAAO,iBAAkBgxN,EAAQhxN,OAAO,oBAEjD/nB,KAAK07O,gBAAkB3C,EACvB/4O,KAAKygP,iBAAmBvnI,EAE5B,aAAa6/H,GACTA,GAAWA,EAAQvuL,OACfxqD,KAAK07O,kBAAoB3C,IACzB/4O,KAAK07O,gBAAkB,MAE3B17O,KAAKygP,iBAAmB,KAE5B,sBAAsB78O,GAClB,IAAIA,EAAE88O,WAAY98O,EAAE88O,SAAS9mP,OAA7B,CAGA,IAAIuxG,EAAQ,eAAEvnG,EAAE8lE,eACX,eAAU1pE,KAAKsgP,qBAGpBtgP,KAAKs9O,iBACLt9O,KAAKsgP,kBAAoBrtO,WAAW,KAChC,IAAI8lO,EAAU/4O,KAAKogP,qBAAqBj1I,GACpC4tI,IAAYA,EAAQ/W,oBACpBhiO,KAAKw5G,aAAarO,IAEvBnrG,KAAKy/O,UAAU,WAEtB,iBACIh2K,aAAazpE,KAAKwgP,mBAClB/2K,aAAazpE,KAAKsgP,mBAEtB,qBAAqBpnI,EAAcp5B,GAC/B,IAAIi5J,EAAU/4O,KAAKu/O,yBAAyBrmI,GAC5C,GAAI6/H,EACA,OAAOA,EAEPj5J,EAAWA,GAAY9/E,KAAK49G,aAAa1E,GACzC,IAAIhB,EAAOl4G,KAAK23G,aAAaC,cAAc93B,GAC3C,OAAO9/E,KAAKkgP,aAAahoI,IAASl4G,KAAKylH,oBAAoBvN,EAAMgB,GAGzE,gCAAgCsD,GAC5B,IAAI39D,EAAO29D,EAAW39D,KAAKjlD,QAAU4iH,EAAW39D,KAAK,GACrD,GAAKA,IAAQ7+C,KAAK45G,gBAAgB/6D,EAAKihC,UAAvC,CAGA,IAAIo5B,EAAe,eAAEr6D,EAAKk7D,aACtB8gI,EAAiB76O,KAAKogP,qBAAqBlnI,EAAcr6D,EAAKihC,UAElE,GADA9/E,KAAKy8G,2BAA2BD,GAC5Bx8G,KAAK07O,gBAAiB,CACtB,GAAI17O,KAAK07O,kBAAoBb,EAIzB,YAHI,YAAc76O,KAAK+nB,OAAO,yBAC1B/nB,KAAK0hH,aAAa1hH,KAAK07O,kBAI3B17O,KAAK0hH,aAAa1hH,KAAK07O,iBAG1Bb,IAGAA,EAAe7Y,oBAChBhiO,KAAKw5G,aAAaN,KAI1B,eAAer6D,GACX,GAAI,GAAQvgD,QAAQugD,EAAKj9C,OAAS,EAC9B5B,KAAK82G,oBAGT,OAAQj4D,EAAKj9C,MACT,IAAK,cACL,IAAK,mBACD5B,KAAK4iE,cACL,MACJ,IAAK,uBACL,IAAK,0BACD,MACJ,IAAK,kBACD5iE,KAAK2gP,sBAAsB9hM,EAAKj9C,KAAMi9C,EAAKh9C,OAC3C,MACJ,IAAK,oBACDg9C,EAAKh9C,MAAQ7B,KAAK27O,kBAAoB37O,KAAK4gP,oBAC3C,MACJ,IAAK,QACG5gP,KAAKu7O,yBACLv7O,KAAKk8O,UAAUn0N,OAAO82B,EAAKj9C,KAAMi9C,EAAKh9C,OACtC7B,KAAKkgH,SAASn4F,OAAO82B,EAAKj9C,KAAMi9C,EAAKh9C,QAEzC8zG,MAAMwH,eAAet+D,GACrB7+C,KAAK86H,oBACL,MACJ,IAAK,YACG96H,KAAKu7O,wBACLv7O,KAAKk8O,UAAUn0N,OAAO,qBAAsB82B,EAAKh9C,OAErD8zG,MAAMwH,eAAet+D,GACrB,MACJ,SACQ7+C,KAAKu7O,wBAA2B18L,EAAKj9C,OAASi9C,EAAK4sC,UAAY,UAAY5sC,EAAKj9C,MAChF5B,KAAKk8O,UAAUn0N,OAAO82B,EAAK4sC,SAAU5sC,EAAKh9C,OAE9C8zG,MAAMwH,eAAet+D,IAGjC,sBAAsBj9C,EAAMC,GACxB,eAAK7B,KAAK86O,UAAW,CAAC15O,EAAO23O,KACzBA,EAAQhxN,OAAOnmB,EAAMC,KAG7B,WAAWk4G,GACP/5G,KAAK0hH,aAAa1hH,KAAK07O,iBACvB/lI,MAAMa,WAAWuD,GAErB,aAAaA,GACT/5G,KAAK0hH,aAAa1hH,KAAK07O,iBACvB/lI,MAAMa,WAAWuD,IAGzB,eAAkB,SAAU,IACb,UC3vBA,MC2BX8mI,GAAkB,CAClB,IAAK,0BACL,KAAM,8BACN,IAAK,wBACL,KAAM,8BACN,IAAK,2BACL,KAAM,iCACN52L,QAAS,2BACT62L,YAAa,gCACb5rL,SAAU,4BACV6rL,WAAY,+BACZC,SAAU,6BACV/rL,QAAS,4BAETgsL,GAAwB,CACxB,IAAK,QACL,KAAM,WACN,IAAK,WACL,KAAM,kBACN,IAAK,cACL,KAAM,qBACNF,WAAY,aACZ7rL,SAAU,WACV4rL,YAAa,cACbE,SAAU,WACV/rL,QAAS,WAETisL,GAAoB,IACpBC,GAAqC,EACrC,GAAmB,aACnBC,GAA6B,uBAC7BC,GAA2B,qBAC3BC,GAAyB,mBACzBC,GAAa,UACbC,GAAyB,sBACzBC,GAAyB,sBACzB,GAAoB,iBACpBC,GAAc,iBACdC,GAAqB,kBACrBC,GAA0B,uBAC1BC,GAAgB,aAChB,GAA4B,yBAC5BC,GAA6B,0BAC7BC,GAAwB,qBACxB,GAAyB,6BACzBC,GAA+B,CAAC,OAAQ,WAAY,UAExD,SAASC,GAAyBt+O,GAC9B,MAAO,YAAcA,EAAKokB,OAAO,yBAErC,IAAIo2M,GAAoB,SAAS+jB,GAC7B,IAAIv6G,EAAUu6G,GAAoBA,EAAiB76K,WAC/C86K,EAAiBx6G,GAAWA,EAAQxhI,KAAK,gBACzC6mB,EAASm1N,GAAkBA,EAAevoP,QAAU+tI,EAAQxhI,KAAKg8O,EAAe,IACpF,GAAIn1N,aAAkB,QAClB,OAAOA,GAGXo1N,GAAqC,WACrC,IAAIC,EAA4B,SAAS1+O,EAAMmN,GAC3C,IAAI7R,EAAS,GACTqjP,EAAW,GACX97N,EAAc+7N,EAAqB5+O,EAAMmN,GACzC0xO,EAAgB,OAAc/4N,yBAAyB3Y,EAAQ,aAUnE,OATIjS,MAAM0nB,QAAQC,IACdvnB,EAAS,OAAcimB,YAAYsB,EAAY,GAAIg8N,GACnDF,EAAW,OAAcp9N,YAAYsB,EAAY,GAAIg8N,GACjD,KAAOF,IACPrjP,GAAU,MAAQqjP,IAEf,eAAU97N,KACjBvnB,EAAS,OAAcimB,YAAYsB,EAAag8N,IAE7CvjP,GAGX,SAASsjP,EAAqB5+O,EAAMmN,GAChC,GAAIA,EACA,OAAOmxO,GAAyBt+O,SAAS,IAAWmN,EAAOoxE,oBAAsBpxE,EAAOoxE,oBAAsBpxE,EAAO0V,YAG7H,IAAIi8N,EAAmC,SAAS9+O,EAAMmN,GAClD,GAAIA,EACA,OAAOmxO,GAAyBt+O,SAAS,IAAWmN,EAAO4xO,gCAAkC5xO,EAAO4xO,gCAAkC5xO,EAAO4kB,yBAGjJitN,EAAiB,SAASh/O,EAAMihB,EAAas9N,GAC7C,IAAIpxO,EAASnN,EAAK8oE,mBAAmBoK,aAAajyD,GAC9C4B,EAAc+7N,EAAqB5+O,EAAMmN,GACzC8xO,EAAgBV,EAAiBj1N,QAAQ,IAAMtpB,EAAKojB,gBAAgBq6N,KAA6BxnP,OACjGipP,EAAeX,EAAiB57K,SAAS3iE,EAAKojB,gBAAgBs6N,KAClE,OAAI76N,GAAe3nB,MAAM0nB,QAAQC,IAAgB,YAAci8N,EAAiC9+O,EAAMmN,GAC9F+xO,EACOr8N,EAAY,GAEZA,EAAY,IAGnBo8N,GAAiB,SAASp8N,EAAa1V,GAC3C,QAAIA,GAAUkxO,GAA6B1jP,QAAQwS,EAAOsT,WAAa,GAAKvlB,MAAM0nB,QAAQC,UAGnF,IAAWA,EAJG,CAKvBA,EAAa1V,GAAU0V,EAAc,MAEvCs8N,EAAoB,SAASn/O,EAAMqN,GACnC,IAAInP,EAAQ,KAAOmP,EAAQnP,MAAQ,KAAOmP,EAAQnP,MAC9CqgP,EAAmBlxO,EAAQmX,UAC3BrX,EAASnN,EAAK8oE,mBAAmBoK,aAAa7lE,EAAQF,OAAO1P,OAC7DolB,EAAcm8N,EAAeh/O,EAAMmN,EAAO1P,MAAO8gP,GACrD,GAAK,eAAU17N,IAAiB,eAAU3kB,GAA1C,CAGA8B,EAAKo/O,2BAA2BC,aAAad,EAAkB17N,IAAgB3kB,GAC/E,IAAI+pF,EAAmBq2J,GAAyBt+O,GAAQ,sBAAwB,cAC5Es/O,EAAkB,SAASt/O,EAAM6iB,EAAa1V,EAAQoxO,GACtD,GAAI,YAAcO,EAAiC9+O,EAAMmN,GAAS,CAC9D,IAAIoyO,EAAoBX,EAAqB5+O,EAAMmN,GACnD,OAAIoxO,EAAiB57K,SAAS3iE,EAAKojB,gBAAgBs6N,KACxC,CAAC76N,EAAa3nB,MAAM0nB,QAAQ28N,GAAqBA,EAAkB,QAAK,GAExE,CAACrkP,MAAM0nB,QAAQ28N,GAAqBA,EAAkB,GAAKA,EAAmB18N,GAG7F,OAAOA,EATW,CAUpB7iB,EAAM9B,EAAOiP,EAAQoxO,GACnBiB,EAAY,YAAcV,EAAiC9+O,EAAMmN,GACjE23E,EAAez3E,EAAQy3E,cAAgB06J,GAAatkP,MAAM0nB,QAAQ08N,IAAoBA,EAAgB3kP,aAAQ,IAAW,EAC7HqF,EAAK8oE,mBAAmBoK,aAAa/lE,EAAO1P,MAAOwqF,EAAkBq3J,EAAiBx6J,KAE1F,MAAO,CACH26J,mBAAoB,SAAStyO,EAAQoxO,GACjC,IAAIl1N,EAASmxM,GAAkB+jB,GAC/Bl1N,GAAUA,EAAOjF,OAAO,QAAS46N,EAAe3iP,KAAM8Q,EAAO1P,MAAO8gP,KAExExuK,qBAAsB,SAAS9vE,GAC3B,IACIsjE,EACAg7K,EACAmB,EACAlqH,EAJAxlD,EAAc/vE,EAAE+vE,YAKpB,GAAI,OAAc1qD,aAAa0qD,EAAa,CAAC,cAAe,sBAAuB,0BAA2B,kCAAmC,eAAgB,qBAAkB,IAAW/vE,EAAEghB,YAAhM,CACI,IAAIipC,EAAe7tD,KAAKysE,mBAAmByB,gBAAgBtqE,EAAEghB,aACzD9T,EAAS9Q,KAAKysE,mBAAmBoK,aAAajzE,EAAEghB,aAGpD,GAFAsiD,EAAQlnE,KAAKo2E,gBAAgBp2E,KAAK6mB,UAAUI,KAAK,IAAMjnB,KAAK+mB,gBAAgB,KAAmB3lB,QAASysD,IAAiB,iBACzHq0L,EAAmBh7K,EAAMjgD,KAAK,IAAMw6N,IAAwBhoK,QACxD9F,EAAYntD,aAAemtD,EAAYuO,oBAAqB,CAC5DliF,KAAKojP,mBAAmBtyO,EAAQoxO,GAChC,IAAIoB,EAAkBp8K,EAAMjgD,KAAK,IAAMjnB,KAAK+mB,gBAAgBq6N,KAA6Bj7O,KAAK,aAC1Fm9O,IACAD,EAAuBC,EAAgB1mK,WAAW31D,KAAK,IAAMw6N,IAC7DzhP,KAAKojP,mBAAmBtyO,EAAQuyO,EAAqB5pK,SACrDz5E,KAAKojP,mBAAmBtyO,EAAQuyO,EAAqBn8N,SAEpDo8N,GAAoBA,EAAgBv7N,OAAO,YAC5C/nB,KAAKujP,0BAA0Br8K,EAAOm7K,EAA0BriP,KAAM8Q,KAG1E6iE,EAAYj+C,yBAA2Bi+C,EAAY+uK,kCAC/C70L,GAAgB,GAAK/8C,IACrBqoH,EAAQjyD,EAAMjgD,KAAK,IAAMs6N,IACrBpoH,EAAMv/H,SACNoG,KAAKwjP,8BAA8BrqH,EAAOroH,EAAQoxO,GAC9C,YAAcO,EAAiCziP,KAAM8Q,GACrD9Q,KAAKyjP,0BAA0Bv8K,EAAOp2D,GAC/BoxO,EAAiBj7N,KAAK,IAAM66N,IAA4BloP,SAC/DoG,KAAK0jP,cAAcxB,EAAkBliP,KAAK2jP,kBAAkBzB,EAAkBpxO,IAC9E9Q,KAAK4jP,2BAOzB5jP,KAAKC,SAAS2D,IAElBm/D,YAAa,WACT/iE,KAAK6jP,4BAA8B,KACnC7jP,KAAKC,SAASnB,MAAMkB,KAAME,YAE9B8iE,YAAa,WACThjE,KAAKC,SAASnB,MAAMkB,KAAME,WAC1BF,KAAK6jP,6BAA+B7jP,KAAK6jP,4BAA4BrnH,WAEzEsnH,mBAAoB,WAChB,OAAO9jP,KAAKg+E,kBAAkBh+E,KAAK+nB,OAAO,eAE9CZ,UAAW,WACP,OAAOnnB,KAAKC,YAAcD,KAAK8jP,sBAEnC/jL,KAAM,WACF//D,KAAKC,WACLD,KAAK+iP,2BAA6B/iP,KAAKihE,cAAc,gBAEzD8iL,wBAAyB,SAAS78K,EAAOp2D,GACrC,IAAInN,EAAO3D,KACPqnL,EAAa,GACb66D,EAAmBh7K,EAAMjgD,KAAK,wBAC9Bk+F,EAAW,eAAE,SAAS79F,SAAS3jB,EAAKojB,gBAAgBq6N,KAA6B75N,SAAS2/C,GAC9F,OAAOvjE,EAAKykB,iBAAiB+8F,EAAU,QAAS,CAC5CzzG,OAAQ,OACRuW,SAAS,EACT4sC,WAAW,EACXhQ,mBAAmB,EACnB8O,oBAAoB,EACpBN,0BAA0B,EAC1B+3E,4CAA4C,EAC5Cl4E,WAAW,EACXsB,SAAU,CACNoH,GAAI,MACJF,GAAI,MACJpzC,GAAI45N,EAAiBtoP,QAAUsoP,GAAoBh7K,EACnD97C,OAAQ,QAEZgoC,gBAAiB,SAAS+6C,GACtB,IAAI9mG,EACAsgI,EAAU,eAAE,SAASrgH,SAASm6N,GAAyB,IAAM99O,EAAKojB,gBAAgBs6N,KAA2B95N,SAAS4mF,GA2B1H,OA1BAr9F,EAASnN,EAAK8oE,mBAAmBoK,aAAa/lE,EAAO1P,OACrDiG,EAAgB1D,EAAKggP,kBAAkBh8G,EAAS72H,GAChDzJ,EAAcggL,WAAaA,EAC3B1jL,EAAK+/O,cAAc/7G,EAAStgI,GAC5B,OAAahC,GAAGsiI,EAAQ1gH,KAAK,IAAyB,WAAW,SAAUrjB,GACvE,IAAIogP,EAAe98K,EAAMjgD,KAAK,cAAc8oD,IAAInsE,EAAE0hB,QAAQm0D,QACtD,QAAU,gBAAiB71E,IAAMA,EAAE84E,WACnC94E,EAAEg3B,iBACFj3B,EAAKigP,mBACAI,EAAapqP,SACdoqP,EAAe98K,EAAMx6D,OAAOua,KAAK,cAAcC,QAEnD,OAAa4F,QAAQk3N,EAAc,aAG3Cr8G,EAAU,eAAE,SAASrgH,SAASm6N,GAAyB,IAAM99O,EAAKojB,gBAAgBu6N,KAAyB/5N,SAAS4mF,GACpH9mG,EAAgB1D,EAAKggP,kBAAkBh8G,EAAS72H,GAChDzJ,EAAcggL,WAAaA,EAC3B1jL,EAAK+/O,cAAc/7G,EAAStgI,GAC5B,OAAahC,GAAGsiI,EAAQ1gH,KAAK,IAAyB,WAAW,SAAUrjB,GACnE,QAAU,gBAAiBA,IAAOA,EAAE84E,WACpC94E,EAAEg3B,iBACFj3B,EAAKigP,mBACL,OAAa92N,QAAQo6C,EAAMv6D,OAAOsa,KAAK,cAAcwyD,QAAS,aAG/D,eAAE00B,GAAgB7mF,SAAS3jB,EAAKsqB,4BAE3CqmC,QAAS,SAAS1wD,GACd,IAAI+jI,EAAU/jI,EAAEmJ,UAAU6vE,WAAW31D,KAAK,IAAMw6N,IAAwBhoK,QACxE,OAAa3sD,QAAQ66G,EAAQ1gH,KAAK,IAAyB,UAE/D+sC,SAAU,WACNljD,EAASnN,EAAK8oE,mBAAmBoK,aAAa/lE,EAAO1P,OACrD8lE,EAAMjgD,KAAK,IAAMs6N,IAAYrzN,SAAS5G,SAASk6N,IAC3C,YAAciB,EAAiC9+O,EAAMmN,KACrDnN,EAAK4/O,0BAA0Br8K,EAAOm7K,EAA0B1+O,EAAMmN,IACtEnN,EAAKoJ,UAAUkjH,wBAK/Bg0H,0BAA2B,SAASjzO,GAChC,IAAIsyO,EAAkBtjP,KAAK6jP,4BAC3BP,GAAmBA,EAAgBv7N,OAAO/W,IAE9CkzO,iBAAkB,SAASh9K,EAAOp2D,GAC9B,IAAIq0G,EAAWj+C,EAAMG,SAAS,IAAMrnE,KAAK+mB,gBAAgBq6N,KACrDkC,EAAkBn+H,EAASvrH,QAAUurH,EAASh/G,KAAK,cAClDm9O,GAAmBxyO,IACpBwyO,EAAkBtjP,KAAK+jP,wBAAwB78K,EAAOp2D,IAErDwyO,EAAgBv7N,OAAO,aACxB/nB,KAAK6jP,6BAA+B7jP,KAAK6jP,4BAA4Br5L,OACrExqD,KAAK6jP,4BAA8BP,EACnCtjP,KAAKikP,0BAA0B,CAC3B18O,MAAO,eAAc2/D,GAAO,GAAQi6K,KAExCnhP,KAAK6jP,6BAA+B7jP,KAAK6jP,4BAA4Bp5L,SAG7Em5L,iBAAkB,WACd,IAAIN,EAAkBtjP,KAAK6jP,4BAC3BP,GAAmBA,EAAgB94L,QAEvC25L,8BAA+B,WAC3B,OAAOnkP,KAAK6jP,6BAEhB/3K,WAAY,SAASj7D,GACjB,IAAI07D,EAAOvsE,KAAKC,SAAS4Q,GAOzB,MANI,WAAaA,EAAIM,UACjBo7D,EAAKjlD,SAAStnB,KAAK+mB,gBAAgB,KAC9B/mB,KAAK+nB,OAAO,gCACb,OAAa1iB,GAAGknE,EAAM,UAAWjL,GAASwX,GAAW,YAAa94E,KAAMshE,KAGzEiL,GAEX4E,SAAU,WACN,IAAIlyE,EAASe,KAAKC,WAMlB,OALID,KAAK8jP,sBACL7kP,EAAOgE,KAAK,CACRkO,QAAS,WAGVlS,GAEXmlP,kBAAmB,SAAS/5K,EAAMr5D,GAC9B,IAAIF,EAASE,EAAQF,OACjBo2D,EAAQ,eAAEmD,GACVrqE,KAAK+M,UAAUgb,OAAO,sBACtB/nB,KAAKosB,QAAQ,cAAetb,EAAO66D,SAAUzE,GAEjDlnE,KAAKosB,QAAQ,QAAS,OAAoB/yB,OAAO,6BAA8B6tE,GAC/EA,EAAM5/C,SAAS,IACf,IAAIxC,EAAa,eAAE,SAASyC,SAAS2/C,GACjCg7K,EAAmB,eAAE,SAAS56N,SAASm6N,IAAwBl6N,SAASzC,GAC5E,GAAI,YAAc29N,EAAiCziP,KAAM8Q,GACrD9Q,KAAKyjP,0BAA0Bv8K,EAAOp2D,OACnC,CACH,IAAIzJ,EAAgBrH,KAAK2jP,kBAAkBzB,EAAkBpxO,GAC7D9Q,KAAK0jP,cAAcxB,EAAkB76O,GAEzC,IAAIF,EAAY2J,EAAO3J,UACnBA,GAAa,WAAaA,GAC1B+/D,EAAMjgD,KAAK,IAAwBwyD,QAAQhuD,IAAI,YAAa3a,EAAO3J,WAEnE2J,EAAO07C,kBAAoB17C,EAAO07C,iBAAiB5yD,QACnDoG,KAAKqkP,8BAA8Bv/N,EAAYhU,EAAQoxO,IAG/DrvK,mBAAoB,SAAS3L,EAAOl2D,GAChC,IAAIrN,EAAO3D,KACP8Q,EAASE,EAAQF,OACrB,GAAI,WAAaE,EAAQG,QACrB,GAAIL,EAAO6c,QACPu5C,EAAM9M,KAAK,eACR,GAAItpD,EAAOxJ,eAId,YAHA3D,EAAK6rE,eAAetI,EAAOvjE,EAAKygP,kBAAkB55N,KAAK7mB,GAAOqN,GAASmc,KAAK,KACxExpB,EAAK4nE,YAAYrE,EAAOl2D,KAKpChR,KAAKC,SAASnB,MAAMkB,KAAME,YAE9ByjP,kBAAmB,SAASzB,EAAkBpxO,GAC1C,IAAInN,EAAO3D,KACPskP,EAAuB,CACvBj9O,cAAe,CACX2/K,UAAWrjL,EAAK4gP,uCAAuCzzO,KAG3D7R,EAAS,OAAAxE,EAAA,WAAO6pP,EAAsBxzO,EAAQ,CAC9CjP,MAAO8gP,EAAeh/O,EAAMmN,EAAO1P,MAAO8gP,GAC1Cj6G,WAAY,YACZxxE,YAAa9yD,EAAKokB,OAAO,yBACzB2/J,mBAAoB,YAAc/jL,EAAKokB,OAAO,yBAA2B,EAAIm5N,GAC7E35O,MAAO,KACP2gI,SAAU,SAASrmI,EAAO4mF,GACtBq6J,EAAkBn/O,EAAM,CACpBmN,OAAQA,EACRjP,MAAOA,EACPsmB,UAAW+5N,EACXz5J,aAAcA,OAW1B,MAPI,YAAcg6J,EAAiC9+O,EAAMmN,KACjDoxO,EAAiB57K,SAAS3iE,EAAKojB,gBAAgBs6N,KAC/CpiP,EAAOs+D,YAAc55D,EAAKokB,OAAO,8BAEjC9oB,EAAOs+D,YAAc55D,EAAKokB,OAAO,6BAGlC9oB,GAEXslP,uCAAwC,SAASzzO,GAC7C,IAAI0zO,EAAkB,OAAoBnrP,OAAO,6BACjD,OAAI2G,KAAK+M,UAAUgb,OAAO,qBACf,CACH,aAAcy8N,EACd,mBAAoB1zO,EAAO66D,UAG5B,CACH,aAAc64K,IAGtBd,cAAe,SAASxB,EAAkBlxO,GACtCkxO,EAAiBxgL,QACjB,IAAI17C,EAAW,eAAE,SAASuB,SAAS26N,GAC/BuC,EAAmBzkP,KAAKihE,cAAc,iBACtC13C,EAAavpB,KAAKihE,cAAc,QAAQ13C,aACxCm7N,EAAsB1kP,KAAKihE,cAAc,eAC7C,GAAIjwD,EAAQ+Y,QAAU/pB,KAAK+nB,OAAO,0BAA2B,CACzD28N,EAAoBC,6BAA6B3zO,GACjD,IAAI5S,EAAS4B,KAAKihE,cAAc,QAAQixB,oBACxCwyJ,EAAoBC,6BAA6B,MACjD,IAAIt1N,EAAmB,OAAcu1N,2BAA2B5zO,EAASuY,EAAYnrB,GACjFymP,EAAgB,eAAS,GAAI7zO,EAAS,CACtC+Y,OAAQ,eAAS,GAAI/Y,EAAQ+Y,OAAQ,CACjCR,WAAY8F,MAGpB,OAAOo1N,EAAiBz8G,aAAahiH,EAAU6+N,GAE/C,OAAOJ,EAAiBz8G,aAAahiH,EAAUhV,IAGvDyyO,0BAA2B,SAASv8K,EAAOp2D,GACvC,IAAInN,EAAO3D,KACPkiP,EAAmBh7K,EAAMjgD,KAAK,IAAMw6N,IAAwBhoK,QAChEyoK,EAAiBxgL,QACjB,IAAIojL,EAAsB,eAAE,SAASx9N,SAASw6N,IAA4B9gL,KAAK,WAAYhhE,KAAK+nB,OAAO,aACvG,OAAa1iB,GAAGy/O,EAAqB,WAAW,WAC5CnhP,EAAKugP,iBAAiBh9K,EAAOp2D,MAEjCg0O,EAAoBv9N,SAAS26N,GAC7Bv+O,EAAK4/O,0BAA0Br8K,EAAOm7K,EAA0B1+O,EAAMmN,KAE1EyyO,0BAA2B,SAASr8K,EAAOrlE,GACvC,IAAIijP,EAAsB59K,EAAMjgD,KAAK,IAAM66N,IACvCgD,EAAoBlrP,SAChB,KAAOiI,EACPijP,EAAoB1qL,KAAK,UAEzB0qL,EAAoBvoP,KAAKsF,KAIrC2hP,8BAA+B,SAASrqH,EAAOroH,EAAQoxO,GACnD,IACI6C,EADAphP,EAAO3D,KAEPglP,EAAe,WACf,IAAIC,EAAO,GAAKryI,YAAYumB,GAC5B8rH,GAAQA,EAAKl9N,OAAO,iBAAkB,MACtCg9N,GAAoBphP,EAAKuhP,aAAahD,IAE1Cv+O,EAAKykB,iBAAiB+wG,EAAO,GAAM,CAC/BgR,mBAAoB,GACpBrnF,oBAAoB,EACpBizE,cAAe,SACf/qE,SAAUrnD,EAAKsqB,0BAA4B,IAAM,GAA4B,IAAMyzN,GACnFtH,qBAAsB,UACtBC,yBAAyB,EACzB3xN,MAAO,CAAC,CACJq7B,UAAUjzC,EAAO07C,mBAAoB17C,EAAO07C,iBAAiB5yD,OAC7DqxD,KAAM41L,GAAgB4B,EAAiC9+O,EAAMmN,IAAW,WACxEsnG,YAAY,EACZ1vF,MAAO/kB,EAAKwhP,6BAA6Br0O,KAE7C6uE,YAAa,SAASylK,GAClB,IAAI1vN,EAA0B0vN,EAAWtlK,SAASl+E,KAC9CyjP,EAAgC5C,EAAiC9+O,EAAMmN,GACvEw0O,GAAiB,EACjBC,EAAgBtD,GAAyBt+O,GACzCqN,EAAU,GACd,KAAIo0O,EAAWtlK,SAASp3D,OAASgN,GAA2BA,IAA4B2vN,GAAxF,CAeA,GAZI3vN,GACA1kB,EAAQu0O,EAAgB,kCAAoC,2BAA6B7vN,EACrF,YAAcA,GAA2B,YAAc2vN,IACvDC,EAAiB,YAAc5vN,EAC/B1kB,EAAQu0O,EAAgB,sBAAwB,eAAiB,QAGrEv0O,EAAQu0O,EAAgB,sBAAwB,eAAiB,KACjEv0O,EAAQu0O,EAAgB,kCAAoC,2BAA6Bz0O,EAAOu1E,gCAAkC,MAEtI1iF,EAAK8oE,mBAAmBoK,aAAa/lE,EAAO1P,MAAO4P,GACnDrN,EAAKo/O,2BAA2BC,aAAad,GAAkB,IAC1DxsN,EAAyB,CAC1B,IAAI1I,EAASmxM,GAAkB+jB,GAC3Bl1N,GAAU,cAAgBA,EAAO60C,OAAS70C,EAAOjF,OAAO,aACxDiF,EAAOq/D,QACPr/D,EAAOjF,OAAO,WAAW,IAG5Bu9N,EAGD3hP,EAAKugP,iBAAiBhC,EAAiBj1N,QAAQ,IAAM,IAAoBnc,GAFzEnN,EAAKuhP,aAAahD,KAK1B5H,iBAAkB,WACdyK,EAAmBphP,EAAK6hP,iBAAiBtD,GACzCv+O,EAAKs9D,cAAc,iBAAiB6oH,aAExC0wD,gBAAiB,WACb,OAAa1tN,QAAQqsG,EAAO,QAC5B6rH,KAEJn/L,eAAgB,SAASjiD,GACrB,OAAayB,GAAG8zH,EAAO,OAAQ,KAC3B,IAAI8rH,EAAOrhP,EAAEmJ,UACbk4O,EAAKzF,2BACLwF,OAGR35N,WAAY1nB,EAAKokB,OAAO,iBAGhCy9N,iBAAkB,SAAS1gO,GACvB,OAAOA,EAAWwhD,SAASu7K,KAAkB/8N,EAAW4vE,QAAQ,IAAMmtJ,IAAejoP,QAEzFsrP,aAAc,SAASpgO,GACnB9kB,KAAKihE,cAAc,iBAAiBjuD,MAAM8R,GAC1C,OAAagI,QAAQhI,EAAWmC,KAAK,IAAyB,UAElEo9N,8BAA+B,SAASv/N,EAAYhU,EAAQoxO,GACxD,IAAI/oH,EACAn5H,KAAK+nB,OAAO,oCACZjD,EAAWwC,SAASk6N,IACpBroH,EAAQ,eAAE,SAASzqB,UAAU5pF,GAC7B9kB,KAAKwjP,8BAA8BrqH,EAAOroH,EAAQoxO,KAG1DiD,6BAA8B,SAASr0O,GACnC,IAAInN,EAAO3D,KACPf,EAAS,CAAC,IACVwmP,EAAmB9hP,EAAKokB,OAAO,aAC/BwuC,EAAwBkvL,GAAoBA,EAAiBlvL,uBAAyB,GAC1F,GAAIzlD,EAAO07C,kBAAoB17C,EAAO07C,iBAAiB5yD,OAAQ,CAC3D,IAAI8rP,EAA4B50O,EAAO07C,iBAAiBpuD,QAAO,SAAUyD,GACrE,OAAO,eAAUo/O,GAAsBp/O,OAE3C5C,EAAS,eAAIymP,GAA2B,SAAU7jP,GAC9C,IAAI8jP,EAAkB1E,GAAsBp/O,GAC5C,MAAO,CACHD,KAAMC,EACNg8G,UAAW4kI,EAAiC9+O,EAAMmN,IAAWA,EAAOshD,0BAA4BvwD,EAChGtF,KAAMg6D,EAAsBovL,GAC5B16L,KAAM41L,GAAgBh/O,OAG9B5C,EAAOgE,KAAK,CACRrB,KAAM,KACNrF,KAAMkpP,GAAoBA,EAAiBjvL,mBAC3CvL,KAAM41L,GAAgB52L,UAG9B,OAAOhrD,GAEXy1E,mBAAoB,SAAS9wE,GACzB,IAAIgiP,EAAmBC,EACvB7lP,KAAKC,SAASnB,MAAMkB,KAAME,YACtB,QAAU0lP,EAAoBhiP,EAAEyxF,sBAAmB,IAAWuwJ,GAAqBA,EAAkB/pL,WAAa,QAAUgqL,EAAqBjiP,EAAEyxF,sBAAmB,IAAWwwJ,GAAsBA,EAAmBtwJ,aAC1Nv1F,KAAK8lP,0BAGbA,uBAAwB,WACpB,GAAK9lP,KAAK+nB,OAAO,2BAGZ/nB,KAAK6mB,UAAV,CAGA,IAAIyG,EAAUttB,KAAKysE,mBAAmBC,oBAClCnjD,EAAavpB,KAAKonB,gBAAgBmC,aAClCw8N,EAA4B/lP,KAAK+iP,2BACjCl5K,EAAW7pE,KAAK6mB,UAAUI,KAAK,IAAMjnB,KAAK+mB,gBAAgB,KAAmB3lB,SAC5E,IAAMyoE,GAGXv8C,EAAQpsB,QAAQ,CAAC4P,EAAQ1P,KACrB,GAAK0P,EAAOiZ,QAAUjZ,EAAOoT,qBAAuBpT,EAAOge,0BAA3D,CAGA,IAAIo4C,EAAQlnE,KAAKo2E,gBAAgBvM,EAAUzoE,GACvC4rB,EAASmxM,GAAkB,OAASj3J,QAAS,IAAWA,OAAQ,EAASA,EAAMjgD,KAAK,yBACxF,GAAI+F,EAAQ,CACR+4N,EAA0BpB,6BAA6B7zO,GACvD,IAAI1S,EAAS4B,KAAKonB,gBAAgB8qE,oBAClC6zJ,EAA0BpB,6BAA6B,MACvD,IAAIt1N,EAAmB,OAAcu1N,2BAA2B9zO,EAAQyY,EAAYnrB,GACpF4uB,EAAOjF,OAAO,aAAcsH,SAIxCmxC,cAAe,SAAS3hB,GACpB,OAAQA,EAAKj9C,MACT,IAAK,YACL,IAAK,kBACD5B,KAAK4iE,aAAY,GAAM,GACvB/jB,EAAK6hB,SAAU,EACf,MACJ,IAAK,yBACG7hB,EAAKh9C,MACL7B,KAAK8lP,yBAEL9lP,KAAKmE,SAET06C,EAAK6hB,SAAU,EACf,MACJ,QACI1gE,KAAKC,SAAS4+C,MAxhBO,GA6hBrCmnM,GAAkC,CAClCC,2BAA4B,WACxB,OAAO,GAEXjlJ,2BAA4B,WACxB,GAAIhhG,KAAKimP,6BACL,OAAOjmP,KAAKC,WAEhB,IAAI4oB,EAAU,CAAC7oB,KAAKC,YAChBqtB,EAAUttB,KAAKysE,mBAAmBC,kBAAkB,MAAM,GAC1Dg4K,EAAsB1kP,KAAKihE,cAAc,eAS7C,OARA,eAAK3zC,GAAS,WACV,IAAI44N,EACAC,GAAc,QAAUD,EAAwBxB,EAAoB0B,sCAAmC,IAAWF,OAAwB,EAASA,EAAsB9kP,SAAWpB,KAAKoB,MAC7L,GAAIpB,KAAKsH,gBAAkBtH,KAAKosD,2BAA6B,eAAUpsD,KAAKwmB,eAAiB2/N,EAAY,CACrG,IAAI/nP,EAAS4B,KAAKi0F,uBAAuBj0F,KAAKwmB,YAAaxmB,KAAK01B,yBAA2B11B,KAAKoyD,uBAAwB,aACxHvpC,EAAQ5lB,KAAK7E,OAGd,OAAcwqB,eAAeC,KAGxCw9N,GAA4B,EAAQnkL,eAAe7C,QAAQ,CAC3DinL,gBAAiB,WAIb,OAHKtmP,KAAKumP,eACNvmP,KAAKumP,aAAevmP,KAAKmsB,QAAQ,gBAE9BnsB,KAAKumP,cAEhBvD,aAAc,SAASh9N,EAAUnkB,GACzBogP,GAAyBjiP,QACzBgmB,GAAYA,EAAS69C,YAAY+9K,GAAyB//O,IAAUmkB,EAASiH,QAAQ,IAAM,IAAmB42C,YAAYk+K,GAAuBlgP,GACjJ7B,KAAKsmP,kBAAkBE,kBAAkB3kP,KAGjDs0D,YAAa,WACT,IAAIwQ,EAAoB3mE,KAAKihE,cAAc,WACvC3zC,EAAUq5C,EAAkBc,aAChCd,EAAkB1G,cAClB,IAAK,IAAIxkE,EAAI,EAAGA,EAAI6xB,EAAQ1zB,OAAQ6B,IAAK,CACrC,IAAIqV,EAASwc,EAAQ7xB,QACjB,IAAWqV,EAAOoxE,sBAClBvb,EAAkBkQ,aAAap7E,EAAG,cAAeqV,EAAOoxE,qBACxDpxE,EAAOoxE,yBAAsB,QAE7B,IAAWpxE,EAAO4xO,kCAClB/7K,EAAkBkQ,aAAap7E,EAAG,0BAA2BqV,EAAO4xO,iCACpE5xO,EAAO4xO,qCAAkC,GAGjD/7K,EAAkBzG,YAClBlgE,KAAKymP,oBAETA,iBAAkB,WACd,GAAIxE,GAAyBjiP,MAAO,CAChC,IAAI0mP,EAA2B1mP,KAAKmsB,QAAQ,qBAAqBtF,UACjE6/N,EAAyBz/N,KAAK,IAAMjnB,KAAK+mB,gBAAgB,IAAoB,KAAO66N,IAAyBp6N,YAAYo6N,IACzH8E,EAAyBz/N,KAAK,IAAMjnB,KAAK+mB,gBAAgB,IAAoB,KAAOg7N,IAAuBv6N,YAAYu6N,IACvH/hP,KAAKsmP,kBAAkBE,mBAAkB,KAGjD7B,6BAA8B,SAAS7zO,GACnC9Q,KAAK2mP,eAAiB71O,GAE1Bs1O,6BAA8B,WAC1B,OAAOpmP,KAAK2mP,kBAGTC,GAAkB,CACzBjpP,eAAgB,WACZ,MAAO,CACH4rD,wBAAwB,EACxBhF,UAAW,CACPoF,SAAS,EACT+M,sBAAsB,EACtBD,YAAa,OAAoBp9D,OAAO,mCACxCm9D,mBAAoB,OAAoBn9D,OAAO,0CAC/C88D,YAAa,OACbC,gBAAiB,OAAoB/8D,OAAO,8BAC5Ck9D,sBAAuB,CACnBnB,MAAO,OAAoB/7D,OAAO,uCAClCu8D,SAAU,OAAoBv8D,OAAO,0CACrCo8D,SAAU,OAAoBp8D,OAAO,qCACrCq8D,gBAAiB,OAAoBr8D,OAAO,6CAC5Cg8D,YAAa,OAAoBh8D,OAAO,wCACxCi8D,mBAAoB,OAAoBj8D,OAAO,gDAC/Cw8D,WAAY,OAAoBx8D,OAAO,2CACvC67D,SAAU,OAAoB77D,OAAO,yCACrCs8D,YAAa,OAAoBt8D,OAAO,4CACxC87D,SAAU,OAAoB97D,OAAO,yCACrC47D,QAAS,OAAoB57D,OAAO,wCACpCk8D,QAAS,OAAoBl8D,OAAO,0CACpCm8D,WAAY,OAAoBn8D,OAAO,8CAE3Ci9D,iBAAkB,OAAoBj9D,OAAO,iDAC7Cg9D,eAAgB,OAAoBh9D,OAAO,kDAIvDwrE,YAAa,CACT1O,YAAakwL,IAEjBphL,UAAW,CACPJ,YAAa,CACT1+D,KAAM6/O,GACNa,eAAgB,CACZC,eAAgB,WACZ,IAAInjP,EAAO3D,KAEX,GADA2D,EAAK1D,SAASnB,MAAM6E,EAAMzD,WACtByD,EAAKqgE,aAAc,CACnB,IAAIs/K,EAAkB3/O,EAAK6lH,mBAAmB26H,gCAC9C,GAAIb,EAAiB,CACjB,IAAI3wK,EAAY2wK,EAAgBt9N,WAAWiH,QAAQ,MAAM7rB,QACrDuxE,IAAchvE,EAAKojP,aAAaniO,aAAe+tD,IAAchvE,EAAKojP,aAAaniO,YAAc,GAC7F0+N,EAAgB1mK,WAAWpyB,UAK3Cw8L,aAAc,WACV,IACI9/K,EADAvjE,EAAO3D,KAEX,GAAI2D,EAAKqgE,aAAc,CACnB,IAAIs/K,EAAkB3/O,EAAK6lH,mBAAmB26H,gCAC1Cb,IACAp8K,EAAQo8K,EAAgBt9N,WAAWiH,QAAQ,MAC3CtpB,EAAK6lH,mBAAmBy6H,0BAA0B,CAC9C18O,MAAO,eAAc2/D,GAAO,GAAQi6K,KAExCmC,EAAgB1mK,WAAWnyB,QAGnC9mD,EAAK1D,SAASnB,MAAM6E,EAAMzD,aAGlC8jD,QAAS,CACL,iBAAiBhzC,GAIb,OAHIA,EAAQF,OAAOiZ,SACf/pB,KAAKinP,6BAA8B,GAEhCjnP,KAAKC,SAASnB,MAAMkB,KAAME,YAErC,mBAAmB0vD,GAEX,IAAIs3L,EADJlnP,KAAKinP,8BAAgCr3L,IAErC,QAAUs3L,EAAgBlnP,KAAKmsB,QAAQ,4BAAyB,IAAW+6N,GAAyBA,EAAcpB,0BAGtH,OADA9lP,KAAKinP,6BAA8B,EAC5BjnP,KAAKC,SAASnB,MAAMkB,KAAME,YAErC,uBAEI,OADAF,KAAKinP,6BAA8B,EAC5BjnP,KAAKC,SAASnB,MAAMkB,KAAME,cAI7C6kE,MAAO,CACH+W,kBAAmBsmK,GACnB72I,YAAa,CACTywB,iBAAkB,WACd,IAAItzG,EAAQ1oB,KAAKC,WACbknP,EAAannP,KAAKonP,mBAAmB1+N,GACzC,OAAOy+N,EAAWt1O,OAAO6W,IAE7B0+N,mBAAoB,WAChB,IAAIzjP,EAAO3D,KACPmnP,EAAa,GACjB,GAAIxjP,EAAK0jP,2BAA4B,CACjC,IAAIz6G,EAAWjpI,EAAKokB,OAAO,6BACvBuF,EAAU3pB,EAAK8oE,mBAAmBhF,aAClC1jB,GAAYz2B,EAAQlvB,QAAO,SAAU0S,GACrC,YAAO,IAAWA,EAAOoxE,uBACzBtoF,OACA6hE,EAAc,CACdhB,OAAQ,WACRzpD,QAAS,CACLi6C,KAAM,eACNlH,SAAUA,EACVmH,QAAS,WACLvnD,EAAKo/O,2BAA2B5sL,eAEpClR,KAAM2nF,EACNrwI,KAAMqwI,EACN/lF,cAAe,SAASjjD,GACpB,eAAEA,EAAEijB,SAASS,SAAS3jB,EAAKs5H,uBAAuB0kH,OAG1DnnL,SAAU,SACV54D,KAAM,oBACN04D,SAAU,QACVD,aAAc,OACd3M,UAAW,IAEfy5L,EAAWlkP,KAAKw4D,GAEpB,OAAO0rL,GAEXE,yBAA0B,WACtB,IAAI5B,EAAmBzlP,KAAK+nB,OAAO,aACnC,OAAO09N,GAAoBA,EAAiB97L,SAAW,YAAc87L,EAAiBtvL,aAE1F4J,KAAM,WACF//D,KAAKC,WACLD,KAAKonB,gBAAkBpnB,KAAKihE,cAAc,QAC1CjhE,KAAK+iP,2BAA6B/iP,KAAKihE,cAAc,gBAEzDulL,kBAAmB,SAAS3kP,GACxB7B,KAAKi+H,uBAAuB,qBAAsBp8H,IAEtDslB,UAAW,WACP,OAAOnnB,KAAKC,YAAcD,KAAKqnP,4BAEnC7mL,cAAe,SAAS3hB,GAChB,cAAgBA,EAAKj9C,MACrB5B,KAAK4iE,cACL/jB,EAAK6hB,SAAU,GAEf1gE,KAAKC,SAAS4+C,QCx0BtC,EAAK4mB,eAAe,YAAamhL,I,cCe7BU,GAAsB,mBACtBC,GAA2B,wBAC3BC,GAA4B,OAEhC,SAASC,GAA2B/+N,GAChCA,EAAQA,GAAS,GACjB,IAAK,IAAIjtB,EAAI,EAAGA,EAAIitB,EAAM9uB,OAAQ6B,IAC9BitB,EAAMjtB,GAAGoiH,UAAW,EACpB4pI,GAA2B/+N,EAAMjtB,GAAGitB,OAI5C,SAASg/N,GAAqB9jP,EAAG8oD,GAC7B,IAAI9oD,EAAEmJ,UAAUgb,OAAO,eAAvB,CAGA,IAAI4/N,EAAoB,eAAE/jP,EAAEijB,SAASI,KAAK,gCAAgC9gB,KAAK,cAC3EwhP,GAAqBj7L,GAAgBA,EAAa9yD,QAClD+tP,EAAkB5/N,OAAO,aAAS,IAI1C,SAAS6/N,GAAgBjkP,EAAMqN,GAC3B,IAAIkkB,EAAelkB,EAAQkkB,aAC3B,OAAIA,GAAgB,eAAUA,EAAa82B,aAChC92B,EAAa82B,YAEjBroD,EAAKokB,OAAO,4BAEhB,SAAS8/N,GAAqC9gP,EAAM+gP,EAAmBC,GAC1E,GAAID,EAAoBC,GAEpB,GADAhhP,EAAK82G,UAAW,EACZkqI,GAAmBhhP,EAAK2hB,MACxB,IAAK,IAAIjhB,EAAI,EAAGA,EAAIV,EAAK2hB,MAAM9uB,OAAQ6N,IACnC,IAAKV,EAAK2hB,MAAMjhB,GAAGo2G,SAAU,CACzB92G,EAAK82G,cAAW,EAChB,YAILkqI,GAAmBhhP,EAAK82G,YAC/B92G,EAAK82G,UAAW,EAChB4pI,GAA2B1gP,EAAK2hB,QAGjC,IAAIs/N,GAAmB,EAAQ3lL,KAAKhD,QAAQ,CAC/C4oL,kBAAmB,WACf,OAAOjoP,KAAKyqI,iBAEhBy9G,iBAAkB,WACd,OAAOloP,KAAKmoP,gBAEhBC,kBAAmB,SAASp3O,GACxB,IAAIuqK,EAAOv7K,KAAKkoP,mBACZ1wI,EAAc+jE,EAAKxzJ,OAAO,eAC1Bu+G,GAAe9uB,IAAgBxmG,EAAQq3O,iBAAmB9sE,EAAKv1J,WAAWiB,KAAK,gBAAgBuE,GAAG,GAAG86C,SAAS,uBAC9G5Z,EAAe,GACd45E,GAuBG,SAAWt1H,EAAQvS,OACnBuS,EAAQy7C,WAAa,WAErB5tD,MAAM0nB,QAAQvV,EAAQ07C,gBACtB17C,EAAQ07C,aAAe,KA1BvB,SAAW17C,EAAQvS,OACfuS,EAAQy7C,aACRz7C,EAAQy7C,WAAa,WACtB,SAAS67L,EAAqB57L,EAAchkC,EAAO6/N,GAClD,eAAK7/N,GAAO,SAAU3pB,EAAGgI,GACrB,QAAI,IAAWA,EAAK82G,YAAc92G,EAAK82G,SAAW0qI,EAAW,CACzD,IAAIrwI,EAAOqjE,EAAKitE,SAASzhP,GACrB0hP,EAAcltE,EAAK2kE,aAAahoI,GAChCwwI,EAA2BD,GAAe1hP,EAAK2hB,OAAS3hB,EAAK2hB,MAAMgF,KAAK3mB,GAAQA,EAAK82G,UACzF,IAAKrG,IAAgBkxI,EAEjB,YADAh8L,EAAazpD,KAAK8D,EAAKlF,OAI3BkF,EAAK2hB,OAAS3hB,EAAK2hB,MAAM9uB,QACzB0uP,EAAqB57L,EAAc3lD,EAAK2hB,MAAO6/N,MAZxD,CAeD77L,EAAc6uH,EAAKxzJ,OAAO,UAAU,GACtC/W,EAAQ07C,aAAeA,GAU3B17C,EAAQ07C,eAAiB17C,EAAQ07C,aAAa9yD,SAC9CoX,EAAQ07C,aAAe,MAE3B17C,EAAQlS,QACRkB,KAAK2oP,wBAETrrK,qBAAsB,SAASsrK,EAAgB53O,GAC3C,GAAIA,EAAS,CACThR,KAAK8qI,0BAA0B95H,GAC/B,IAAIw7H,EAAiBxsI,KAAKioP,oBAC1BjoP,KAAK2oP,uBACL3oP,KAAK6oP,YAAYD,EAAgB53O,GACjCw7H,EAAe/hF,SAGvBk+L,qBAAsB,WAClB,IAAIG,EAAmB9oP,KAAKioP,oBAC5Ba,GAAoBA,EAAiBt+L,QAEzCq+L,YAAa,SAAS7iO,EAAUhV,GAC5B,IAAIi4C,EAAkBjpD,KAAK+nB,OAAO,mBAC9B5gB,EAAY,UAAY6J,EAAQ7J,WAAa8hD,EAAkB,OAAS,QAC5EjpD,KAAKyqI,gBAAgBr+G,QAAQ,CACzB6pF,KAAM,SACNx9C,MAAO,OAAoBp/D,OAAO,kCAElC2G,KAAKyqI,kBACLzqI,KAAK+oP,qBACL/oP,KAAKyqI,gBAAgB1iH,OAAO,WAAY,CACpC6zC,GAAIz0D,EAAY,OAChBu0D,GAAIv0D,EAAY,UAChBmhB,GAAItC,EACJwC,UAAW,eAIvBwgO,eAAgB,SAASh4O,GACrB,IAAI+Y,EAAS/Y,EAAQ+Y,OACjBk/N,EAAuBj4O,EAAQi4O,qBAC/BC,EAAyBl4O,EAAQkkB,cAAgBlkB,EAAQkkB,aAAa3L,WAC1E,GAAI0/N,GAAwB,eAAUC,KAA4B,eAAWA,GACzE,OAAO1B,GAEX,GAAIz9N,EACA,OAAOA,EAAOiG,aAAe,OAEjC,GAAIhf,EAAQuY,WAAY,CACpB,IAAI7C,EAAQ1V,EAAQuY,WAAW7C,MAC/B,GAAI7nB,MAAM0nB,QAAQG,IAAUA,EAAM9sB,OAAS,EACvC,OAAO8sB,EAAM,GAAGC,SACb,GAAI,eAAWD,KAAW1V,EAAQ4hF,gBACrC,OAAOlsE,EAGf,OAAO1V,EAAQI,WAAaJ,EAAQ2V,UAExCoiO,mBAAoB,WAChB/oP,KAAKyqI,iBAAmBzqI,KAAKyqI,gBAAgB7tD,WAAWlb,SAE5DopE,0BAA2B,SAAS95H,GAChC,IAAIrN,EAAO3D,KACPgmB,EAAWriB,EAAKkjB,UAChBsiO,EAAsBxlP,EAAKokB,OAAO,gBAClCxgB,EAAQyJ,EAAQkkB,cAAgBlkB,EAAQkkB,aAAa3tB,OAAS4hP,GAAuBA,EAAoB5hP,MACzGmK,EAASV,EAAQkkB,cAAgBlkB,EAAQkkB,aAAaxjB,QAAUy3O,GAAuBA,EAAoBz3O,OAC3Gy5H,EAAiB,CACjB5jI,MAAOA,EACPmK,OAAQA,EACRi4C,SAAS,EACT1hC,SAAS,EACT4sC,WAAW,EACXD,iBAAiB,EACjBhB,oBAAoB,EACpBJ,aAAa,EACbG,oBAAoB,EACpB9O,mBAAmB,EACnBwO,0BAA0B,EAC1B+3E,4CAA4C,EAC5Cr2E,aAAc,CAAC,CACXtL,QAAS,SACT6Q,SAAU,QACVG,OAAQ,WACRzpD,QAAS,CACLzU,KAAM4sP,EAAoBr6L,MAAMgB,GAChC5E,QAAS,WACLvnD,EAAKykP,kBAAkBp3O,MAGhC,CACCy4C,QAAS,SACT6Q,SAAU,QACVG,OAAQ,WACRzpD,QAAS,CACLzU,KAAM4sP,EAAoBr6L,MAAMc,OAChC1E,QAAS,WACLvnD,EAAKglP,2BAIjBl0L,eAAe,EACfJ,UAAW,SAASzwD,GAChBA,EAAEmJ,UAAU6vE,WAAW1uD,SAAS5G,SAAS,6BACzC3jB,EAAKylP,yBAAyBp4O,GAC9BA,EAAQqjD,WAAarjD,EAAQqjD,UAAUzwD,IAE3C0wD,QAAS,WACL3wD,EAAKukP,mBAAmBl1O,SAE5BghD,SAAUhjD,EAAQgjD,SAClBnN,cAAe,SAASjjD,GACpB,IAAImJ,EAAYnJ,EAAEmJ,UAClBA,EAAUgb,OAAO,YAAahb,EAAU6oG,qBAAqB1iD,aAGhE,eAAUvvD,EAAK8mI,iBAGhB9mI,EAAK8mI,gBAAgB1iH,OAAOojH,GAF5BxnI,EAAK8mI,gBAAkB9mI,EAAKykB,iBAAiBpC,EAAU,QAAOmlH,IAKtEi+G,yBAA0B,SAASp4O,GAC/B,IAAIrN,EAAO3D,KACP48E,EAAWj5E,EAAK8mI,gBAAgB7tD,WAChCioF,EAAgB,CAChBr5B,cAAeo8G,GAAgBjkP,EAAMqN,GACrC49C,cAAejrD,EAAKokB,OAAO,8BAC3BqnC,WAAYp+C,EAAQkkB,cAAgBlkB,EAAQkkB,aAAak6B,YAAc,GACvE7lC,WAAYvY,EAAQuY,WACpBs8B,eAAgB,WACZliD,EAAKu/D,gBAAgBY,QAEzB6xD,aAAc,SAASxvH,EAAMpH,EAAG8nB,GAC5B,IAAIb,EAAW,eAAEa,GACjB,OAAI7V,EAAQu7C,WACDvmC,EAASzpB,KAAK4J,EAAK5J,MAEvBypB,EAASo0C,KAAKj0D,EAAK5J,QAIlC,SAASyqD,EAAgBpjD,GACjB,gBAAkBA,EAAE6nF,UAAaz6E,EAAQq3O,kBAAmB,IAAU1kP,EAAKokB,OAAO,wCAC9E,SAAW/W,EAAQvS,KACnBmF,EAAEmJ,UAAUgb,OAAO,qBAAsBnkB,EAAE/B,MAAQ,SAAW,aAE9D+B,EAAEmJ,UAAUgb,OAAO,gBAAiBnkB,EAAE/B,MAAQ,WAAa,QAInE,SAAWmP,EAAQvS,KACnBkF,EAAKwkP,eAAiBxkP,EAAKykB,iBAAiB,eAAE,SAASb,SAASq1D,GAAW,cAAU,OAAAniF,EAAA,WAAOoqK,EAAe,CACvGhnG,mBAAoB7sD,EAAQq3O,gBAAkB,SAAW,YACzDrhM,gBAAiBA,EACjB5B,QAAS,QAGbzhD,EAAKwkP,eAAiBxkP,EAAKykB,iBAAiB,eAAE,SAASb,SAASq1D,GAAW,QAAM,OAAAniF,EAAA,WAAOoqK,EAAe,CACnGsjB,WAAYxkL,EAAKqlP,eAAeh4O,GAChCsnH,aAAc,eACd+wH,uBAAuB,EACvBtzH,cAAe/kH,EAAQq3O,gBAAkB,WAAa,MACtDrhM,gBAAiBA,EACjBiB,mBAAoB,SAASrkD,GACzB,IAAI8kB,EAAQ9kB,EAAEmJ,UAAUgb,OAAO,SAC3B+9G,EAAgBliI,EAAEmJ,UAAUgb,OAAO,iBACvC,IAAKnkB,EAAEmJ,UAAUu8O,yBAA2B1lP,EAAEmJ,UAAUgb,OAAO,iBAAmB/W,EAAQq3O,gBAAiB,CACvG,IAAI37L,EAAe17C,EAAQ07C,cAAgB,GACvC67L,EAAY,YAAcv3O,EAAQy7C,WAClC,IAAMq5E,EAAclsI,QAAU8uB,EAAM9uB,SAAW8yD,EAAa9yD,QAAU,GAAK2uP,GAAa77L,EAAa9yD,SAAW8uB,EAAM9uB,OAAS,IAC/HoX,EAAQy7C,WAAa,UACrBz7C,EAAQ07C,aAAe,IAChBo5E,EAAclsI,SAAW8uB,EAAM9uB,SACtCoX,EAAQy7C,WAAa,UACrBz7C,EAAQ07C,aAAe,IAG/B,eAAKhkC,GAAO,SAAUtnB,EAAO2F,GACzB,IAAI82G,EAAW,OAAcp1F,cAAc1hB,EAAM++H,EAAe,OAAS,EACrEyjH,IAAgBxiP,EAAK82G,SACzB,GAAI0rI,IAAgB1rI,EAAU,CAC1B92G,EAAK82G,SAAWA,EAChB7sG,EAAQ07C,aAAe17C,EAAQ07C,cAAgB,GAC/C,IAAI88L,EAAmB,OAAc/gO,cAAc1hB,EAAKlF,MAAOmP,EAAQ07C,aAAc,MACjF88L,GAAoB,GACpBx4O,EAAQ07C,aAAa6mB,OAAOi2K,EAAkB,GAE9C3rI,EAAW,YAAc7sG,EAAQy7C,YACjCz7C,EAAQ07C,aAAazpD,KAAK8D,EAAKlF,WAI3C6lP,GAAqB9jP,EAAGoN,EAAQ07C,eAEpC7G,eAAgB,SAASjiD,GACrB,IAAImJ,EAAYnJ,EAAEmJ,UACd2b,EAAQ3b,EAAUgb,OAAO,SACzB+9G,EAAgB,GACpB,eAAKp9G,GAAO,WACJ1oB,KAAK69G,UACLioB,EAAc7iI,KAAKjD,SAG3B+M,EAAUu8O,wBAAyB,EACnCv8O,EAAUgb,OAAO,gBAAiB+9G,GAClC/4H,EAAUu8O,wBAAyB,EACnC5B,GAAqB9jP,EAAGoN,EAAQ07C,mBAKhDqW,YAAa,WACT/iE,KAAK6mB,UAAUS,SAASigO,OAGrB17L,GAAuB,SAAS/6C,GACvC,OAAO,eAAUA,EAAO+6C,sBAAwB/6C,EAAO+6C,qBAAuB/6C,EAAOxJ,gBAE9EmiP,GAAoB,CAC3B1jL,kBAAmB,SAAS/0D,GACxB,IAAI04O,EACArjL,EAAcr1D,EAAQq1D,YACtBv1D,EAASE,EAAQF,OACrB,GAAI,iBAAmBE,EAAQpP,KAAM,CAEjC,GADAykE,EAAYp/C,KAAK,IAAMqgO,IAAqBx/N,SACxC+jC,GAAqB/6C,GAAS,CAC9B44O,EAAyB1pP,KAAKC,SAAS+Q,GAAS6yD,YAAY,yBAA0B7jE,KAAK2pP,qBAAqB74O,IAC3G9Q,KAAK+nB,OAAO,gCACb2hO,EAAuB1oL,KAAK,WAAYhhE,KAAK+nB,OAAO,aAAe,GAEvE,IAAI6hO,EAAiB,OAAoBvwP,OAAO,wCAAyCyX,EAAO5J,SAChGwiP,EAAuB1oL,KAAK,aAAc4oL,GAC1CF,EAAuB1oL,KAAK,gBAAiB,UAC7C0oL,EAAuB1oL,KAAK,OAAQ,UAExC,OAAO0oL,EAEX,OAAO1pP,KAAKC,SAAS+Q,IAEzB24O,qBAAsB,SAAS74O,GAC3B,OAAQA,EAAO47C,eAAiB57C,EAAO47C,aAAa9yD,QAExD8sE,uBAAwB,SAAS9kE,GAC7B,MAAI,iBAAmBA,EACZ0lP,GAEJtnP,KAAKC,SAAS2B,IAEzBmlE,iBAAkB,SAAS/1D,GACvB,IAAI8T,EAAa9T,EAAQmX,UACrBm/C,EAAat2D,EAAQ81D,UACzB,GAAI,iBAAmB91D,EAAQpP,KAAM,CACjC,IAAIypB,EAAarrB,KAAK+nB,OAAO,cAC7B,GAAIjD,EAAWuiD,WAAWztE,UAAYyxB,GAAc,UAAYra,EAAQi1D,iBAAmB56C,GAAc,SAAWra,EAAQi1D,iBAExH,YADAnhD,EAAW4lF,QAAQpjC,GAI3BtnE,KAAKC,SAAS+Q,IAElBwvD,cAAe,SAAS3hB,GACpB,GAAI,iBAAmBA,EAAKj9C,KAAM,CAC9B,IAAIkhE,EAAe,sBAAwB9iE,KAAK4B,KAChD5B,KAAK4iE,YAAYE,EAAcA,GAC/BjkB,EAAK6hB,SAAU,OAEf1gE,KAAKC,SAAS4+C,KCvUtBgrM,GAAwB,CACxBhtP,MAAO,SAASgF,GACZ,OAAO,QAAiBrD,gBAAgBqD,EAAQ,IAEpDS,QAAS,SAAST,GACd,OAAO,QAAiBxI,OAAO,IAAIU,KAAK,IAAK,EAAI8H,EAAQ,GAAI,aAIrE,SAASioP,GAAgBphO,EAAOloB,EAAWupP,GAkBvC,OAjBAvpP,EAAYA,GAAa,GACzBupP,EAAQA,GAAS,GACjBrhO,EAAMxnB,QAAQ6F,IACV,GAAI,eAAUA,EAAKjM,KAAM,CACrB,IAAIkvP,EAAc,IAAMxpP,EAAU5G,OAElC,GADA4G,EAAUyC,KAAK+mP,EAAcjjP,EAAKjM,IAAM,EAAIiM,EAAKjM,KAC7CiM,EAAK2hB,MACLohO,GAAgB/iP,EAAK2hB,MAAOloB,EAAWupP,OACpC,CACH,IAAIzwP,EAAO,IAAIS,KAAKA,KAAKC,IAAI8E,MAAM/E,KAAMyG,IACzCupP,EAAM9mP,KAAK3J,GAEfkH,EAAUyxB,WAEV83N,EAAM9mP,KAAK,QAGZ8mP,EAGX,SAASE,GAA0B9jP,EAAM2K,GACrC,IAAIi5O,EAAQD,GAAgB3jP,GACxB0qI,EAAQ,gBAAUk5G,GAClBrjO,EAAQ,OAAc0D,+BAA+B,eAAS,GAAItZ,EAAQ,CAC1EoT,mBAAoB5qB,GAAQA,KAEhC,OAAO,QAAY4wP,eAAer5G,EAAO,CACrCnqH,MAAOA,IACR+3D,UAGP,SAAS0rK,GAAY9wP,GACjB,MAAO,OAAS,OAASA,QAAU,IAAWA,OAAS,EAASA,EAAOgqB,OAAO,KAAO,SAAW,OAAShqB,QAAU,IAAWA,OAAS,EAASA,EAAOgqB,OAAO,IAElK,IAAI+mO,GAAyB,EAAQloL,eAAe7C,QAAQ,CACxDU,KAAM,WACF//D,KAAKysE,mBAAqBzsE,KAAKihE,cAAc,WAC7CjhE,KAAKonB,gBAAkBpnB,KAAKihE,cAAc,QAC1CjhE,KAAKqqP,kBAAoBrqP,KAAKmsB,QAAQ,qBAE1Cm+N,qBAAsB,SAAS5hO,EAAO5X,GAClC,IAAIrV,EAAIitB,EAAM9uB,OACV2uP,EAAY,YAAcz3O,EAAO27C,WACrC,MAAOhxD,IAAK,CACR,IAAIsL,EAAO2hB,EAAMjtB,GACb,UAAWitB,EAAMjtB,IACjBuE,KAAKsqP,qBAAqB5hO,EAAMjtB,GAAGitB,MAAO5X,GAE9C+2O,GAAqC9gP,EAAM,OAAc0hB,cAAcC,EAAMjtB,GAAGoG,MAAOiP,EAAO47C,aAAc,OAAS,EAAG67L,KAGhIgC,oBAAqB,SAASxjP,EAAMyjP,EAAcx5O,GAC9C,IAAInP,EACAwyF,EACApL,EAAOj4E,EAAQi4E,KACfwhK,EAAgBz5O,EAAQy5O,cACxBC,EAAkB15O,EAAQ05O,gBAC1B55O,EAASE,EAAQF,OAoBrB,OAnBI25O,GAAiBC,GACjB7oP,EAAQ4oP,EAAc1jP,GACtBstF,EAAeq2J,EAAgB3jP,KAE/BlF,EAAQkF,EAAKjM,IACbu5F,EAAexyF,GAKfkF,EAHC,eAASA,GAGH,OAAAtM,EAAA,WAAO,GAAIsM,GAFX,GAIXkiF,EAAKhmF,KAAKpB,GACN,IAAMonF,EAAKrvF,OACXmN,EAAKlF,MAAQonF,EAAK,GAElBliF,EAAKlF,MAAQonF,EAAKjtF,KAAK,KAE3B+K,EAAKxK,KAAOyD,KAAK2qP,kBAAkBt2J,EAAcvjF,EAAQ05O,EAAcx5O,EAAQm4O,qBACxEpiP,GAEX4jP,kBAAmB,SAASt2J,EAAcvjF,EAAQ05O,EAAcrB,GAC5D,IAAI5sP,EAAO,OAAc2oB,YAAYmvE,EAAc,SAASxyF,EAAOiP,EAAQ05O,GACvE,IAAIlmO,EAAgB,QAAYgG,iBAAiBxZ,GAC7C7R,EAAS,OAAcwqB,yBAAyB3Y,EAAQ,gBAkB5D,OAjBIwT,IACArlB,EAAOqlB,cAAgBA,EAAckmO,GACjC,OAAcrmO,WAAWrT,EAAOsT,UAChCnlB,EAAO5F,OAASwwP,GAAsBvlO,EAAckmO,IAC7C,WAAa15O,EAAOsT,WAC3BnlB,EAAOomB,iBAAmB,WACtB,IAAIm9N,EAAgB,CAChBnpP,OAAQyX,EAAOzX,OACfisB,OAAQ,gBAERslO,EAAiB,OAAc1lO,YAAYrjB,EAAO2gP,GAClDqI,EAAchpP,EAAQyiB,EAAckmO,GACpCM,EAAkB,OAAc5lO,YAAY2lO,EAAarI,GAC7D,OAAOoI,GAAkBE,EAAkBF,EAAiB,MAAQE,EAAkB,MAI3F7rP,EApBwC,CAqBjDo1F,EAAcvjF,EAAQ05O,IAIxB,OAHKjuP,IACDA,EAAO4sP,EAAoBr6L,MAAMe,YAE9BtzD,GAEXu6I,mBAAoB,SAASt4E,EAAYgsL,EAAcvhK,EAAMj4E,GACzD,IAAI05O,EACAD,EACA35O,EAASE,EAAQF,OACjBiZ,EAASjZ,EAAOiZ,OAChBkV,EAAQjuB,EAAQiuB,MACpBgqD,EAAOA,GAAQ,GACfuhK,EAAeA,GAAgB,EAC3BzgO,IACA2gO,EAAkB,gBAAc3gO,EAAOiG,aACvCy6N,EAAgB,gBAAc1gO,EAAOgG,YAEzC,IAAK,IAAIt0B,EAAI,EAAGA,EAAI+iE,EAAW5kE,OAAQ6B,IACnC+iE,EAAW/iE,GAAKuE,KAAKuqP,oBAAoB/rL,EAAW/iE,GAAI+uP,EAAc,CAClE15O,OAAQE,EAAQF,OAChBq4O,oBAAqBn4O,EAAQm4O,oBAC7BuB,gBAAiBA,EACjBD,cAAeA,EACfxhK,KAAMA,IAEN,UAAWzqB,EAAW/iE,KAClB+uP,IAAiBvrN,GAAU,eAAUu/B,EAAW/iE,GAAGoG,OAGnD7B,KAAK82I,mBAAmBt4E,EAAW/iE,GAAGitB,MAAO8hO,EAAe,EAAGvhK,EAAMj4E,UAF9DwtD,EAAW/iE,GAAGitB,OAK7BugE,EAAKh3D,OAGb2uE,cAAe,SAAS9vF,GACpB,IAAIi6O,EACAxhO,EAAavpB,KAAKonB,gBAAgBmC,aAClCc,EAAiB,OAASd,QAAc,IAAWA,OAAa,EAASA,EAAW0F,mBAAmB61B,SACvGp+B,EAAQ,OAAc0D,+BAA+BtZ,EAAQuZ,GAC7D6+N,EAAyB,QAAU6B,EAAuBj6O,EAAOokB,oBAAiB,IAAW61N,OAAuB,EAASA,EAAqBxhO,WAClJ4/N,EAAsBnpP,KAAK+nB,OAAO,gBAClCijO,GAAW,EACXh6O,EAAU,CACVjE,UAAW/M,KAAK+M,WAEpB,GAAKwc,EAAL,CAGA,GAAI,eAAU2/N,KAA4B,eAAWA,GACjDl4O,EAAQuY,WAAa,gBAA2B2/N,QAC7C,GAAIp4O,EAAOiZ,OAEd,GADAihO,GAAW,EACPhrP,KAAK+nB,OAAO,0BAA2B,CACvC/nB,KAAK2mP,eAAiB71O,EACtB,IAAI1S,EAAS4B,KAAKonB,gBAAgB8qE,oBAClClyF,KAAK2mP,eAAiB,KACtB31O,EAAQuY,WAAa,OAAcq7N,2BAA2B9zO,EAAQyY,EAAYnrB,QAElF4S,EAAQuY,WAAa,OAAcsF,0BAA0B/d,EAAOiZ,YAErE,CACH,IAAIkhO,EAAcpsP,MAAM0nB,QAAQG,GAASA,EAAM9sB,OAAS,EAAI,EAC5DoG,KAAK2mP,eAAiB71O,EACtB,IAAIof,EAAUlwB,KAAKonB,gBAAgB8qE,oBACnClyF,KAAK2mP,eAAiB,KACtB31O,EAAQuY,WAAa,CACjBnrB,OAAQ8xB,EACRxJ,MAAOA,EACPwkO,kBAAkB,EAClB57N,KAAMte,IACF,IAAIkR,EAAI,IAAI,cAcZ,OAbAlR,EAAQI,UAAYN,EAAOM,WAAaN,EAAOlP,KAC/C2nB,EAAW+F,KAAKte,GAASmc,MAAK,SAAUhnB,GACpC,IAAIglP,EAAkB9gO,GAAkB8/N,GAAYr5O,EAAO8wE,sBAAwBqpK,EAAc,EAC7FE,IACAhlP,EAAO8jP,GAA0B9jP,EAAM2K,IAE3CnN,EAAKmzI,mBAAmB3wI,EAAM,KAAM,KAAM,CACtC84B,MAAOgsN,EACPn6O,OAAQA,EACRq4O,oBAAqBA,IAEzBjnO,EAAEsN,QAAQrpB,MACVwpB,KAAKzN,EAAE2hB,QACJ3hB,IAIf,eAAWgnO,IACXA,EAAuB1jO,KAAK1U,EAAQE,GAExC,IAAIo6O,EAAkBp6O,EAAQuY,WAAWy+J,YACrCrkL,EAAO3D,KAkBX,OAjBAgR,EAAQuY,WAAWy+J,YAAc,SAAS7hL,GACtC,IAAIuiB,EAAQviB,EAcZ,OAbI6kP,IACI,IAAMhrP,KAAKu7D,aAAgBv7D,KAAKw3G,gBAChC9uF,EAAQA,EAAMrF,MAAM,GACpBqF,EAAM8I,QAAQ,OAElB7tB,EAAKmzI,mBAAmBpuH,EAAO,KAAM,KAAM,CACvCuW,MAAO,EACPnuB,OAAQA,EACRq4O,oBAAqBA,KAG7BzgO,EAAQ0iO,GAAmBA,EAAgB5lO,KAAKxlB,KAAM0oB,IAAUA,EAChE/kB,EAAK2mP,qBAAqB5hO,EAAO5X,GAC1B4X,GAEJ1X,EAAQuY,aAEnB8hO,iBAAkB,WACd,OAAOrrP,KAAK2mP,gBAEhBrpK,qBAAsB,SAAS14D,EAAa0mO,GACxC,IAAI3kL,EAAoB3mE,KAAKysE,mBACzB37D,EAAS,OAAArW,EAAA,YAAO,EAAM,GAAIuF,KAAKysE,mBAAmBhF,aAAa7iD,IACnE,GAAI9T,EAAQ,CACR,IAAI+8C,EAAe8Y,EAAkBuH,gBAAgBtpD,GACjD8jG,EAAO4iI,EAAetrP,KAAKmsB,QAAQ,eAAiBnsB,KAAKmsB,QAAQ,qBACjEy8N,EAAiBA,GAAkBlgI,EAAK/gD,oBAAoBn8C,GAAG8/N,EAAex6O,EAAOi8C,WAAac,GACtG7tD,KAAKurP,yBAAyB,CAC1BC,cAAe5C,EACf93O,OAAQA,EACRqlD,aAAa,EACbr3D,MAAO,WACH6nE,EAAkBkQ,aAAajyD,EAAa,CACxC8nC,aAAc1sD,KAAK0sD,aACnBD,WAAYzsD,KAAKysD,kBAMrC8+L,yBAA0B,SAASv6O,GAC/B,IAAIrN,EAAO3D,KACP8Q,EAASE,EAAQF,OACrB,GAAIA,EAAQ,CACR,IAAIwT,EAAgB,QAAYgG,iBAAiBxZ,GAC7CyY,EAAa5lB,EAAKyjB,gBAAgBmC,aAClCqpE,EAAkBrpE,GAAcA,EAAW0F,mBAAmB4sC,UAClE,OAAAphE,EAAA,WAAOuW,EAASF,EAAQ,CACpBrS,KAAM6lB,GAAiBA,EAAc1qB,OAAS,EAAI,OAAS,OAC3Dg5F,gBAAiBA,EACjBv+B,UAAW,SAASzwD,GAChB,IAAI6nP,EAAsB7nP,EAAEmJ,UAAUy1G,kBAAkBkpI,YAAY,YACpED,GAAuBA,EAAoB1jO,OAAO,eAAe,SAAUnkB,GACvE,IAAI+iE,EAAoBhjE,EAAKs9D,cAAc,WACvC0qL,EAAuBhlL,EAAkBkQ,aAAa7lE,EAAQI,UAAW,gBAC7Eu6O,EAAuBA,GAAwB,GAC/CA,EAAqBpkP,MAAQ3D,EAAE2D,MAC/BokP,EAAqBj6O,OAAS9N,EAAE8N,OAChCi1D,EAAkBkQ,aAAa7lE,EAAQI,UAAW,eAAgBu6O,GAAsB,OAGhG33L,SAAU,IAAM,GAAah0D,QAEjCgR,EAAQuY,WAAa5lB,EAAKi9F,cAAc5vF,GACpCA,EAAQq3O,kBACRr3O,EAAQuY,WAAWnrB,OAAS,KAC5B4S,EAAQ7J,UAAY,SAExBxD,EAAK0mP,kBAAkB/sK,qBAAqBtsE,EAAQw6O,cAAex6O,KAG3E23O,qBAAsB,WAClB3oP,KAAKqqP,kBAAkB1B,0BAG3BiD,GAAwC,OAAAnxP,EAAA,WAAO,GAAIgvP,GAAmB,CACtE52K,mBAAoB,SAAS3L,EAAOl2D,GAChC,IACI04O,EADA/lP,EAAO3D,KAEP8Q,EAASE,EAAQF,QAChBA,EAAO6c,SAAWk+B,GAAqB/6C,IAAWnN,EAAKokB,OAAO,yBAA2B,WAAa/W,EAAQG,UAC/Gu4O,EAAyB/lP,EAAKoiE,kBAAkB,CAC5CnkE,KAAM,eACNykE,YAAaa,EACbp2D,OAAQA,EACRm4C,gBAAiBtlD,EAAKokB,OAAO,qBAEjC2hO,GAA0B/lP,EAAKkoP,2BAA2BnC,EAAwB54O,EAAQ,iBAE9F9Q,KAAKC,SAASnB,MAAMkB,KAAME,YAE9B2rP,2BAA4B,SAASvkL,EAAYx2D,EAAQ02D,GACrD,IAAI7jE,EAAO3D,KACP,iBAAmBwnE,GACnB,OAAaniE,GAAGiiE,EAAY,OAAgB3jE,EAAK88D,cAAa,SAAU78D,GACpEA,EAAE09D,MAAM+3C,kBACR11G,EAAKs9D,cAAc,gBAAgBqc,qBAAqBxsE,EAAO1P,OAAO,QAIlFwmE,iBAAkB,SAASV,EAAOp2D,EAAQ02D,GACtC,IAAIF,EAAatnE,KAAKC,SAASinE,EAAOp2D,EAAQ02D,GAC9CF,GAActnE,KAAK6rP,2BAA2BvkL,EAAYx2D,EAAQ02D,IAEtEskL,8BAA+B,WACvB9rP,KAAK+nB,OAAO,yBACZ/nB,KAAKunE,kBAAkB,iBAG/BwkL,4BAA6B,WACzB,OAAO,GAEXr4K,qBAAsB,SAAS9vE,GAC3B,IAAI+vE,EAAc/vE,EAAE+vE,YAChB,OAAc1qD,aAAa0qD,EAAa,CAAC,eAAgB,eACrD3zE,KAAK+rP,+BACL/rP,KAAK8rP,gCAIb9rP,KAAKC,SAAS2D,MAGlBooP,GAAkC,OAAAvxP,EAAA,WAAO,GAAIgvP,GAAmB,CAChE5xG,sBAAuB,SAAS3sC,EAAcptC,GAC1C,IAEI4rL,EAFA/lP,EAAO3D,KACPmrG,EAAQxnG,EAAK1D,SAASnB,MAAM6E,EAAMzD,WAmBtC,OAjBK49D,EAAYnwC,SAAWk+B,GAAqBiS,IAAgBn6D,EAAKokB,OAAO,0BACzE2hO,EAAyB/lP,EAAKoiE,kBAAkB,CAC5CnkE,KAAM,eACNykE,YAAa8kC,EACbr6F,OAAQ,CACJ3J,UAAW,eAAoBxD,EAAKokB,OAAO,eAC3C2kC,aAAcoR,EAAYpR,aAC1Bb,sBAAsB,GAE1B5C,iBAAiB,IAErBygM,GAA0B,OAAarkP,GAAGqkP,EAAwB,OAAgB/lP,EAAK88D,cAAa,SAAU78D,GAC1G,IAAI09D,EAAQ19D,EAAE09D,MACdA,EAAM+3C,kBACN11G,EAAKs9D,cAAc,gBAAgBqc,qBAAqBxf,EAAY18D,OAAO,QAG5E+pG,KAMf,IAAI,GAAkC,CAClC86I,2BAA4B,WACxB,OAAO,GAEXjlJ,2BAA4B,WACxB,GAAIhhG,KAAKimP,6BACL,OAAOjmP,KAAKC,WAEhB,IAAI4oB,EAAU,CAAC7oB,KAAKC,YAChBqtB,EAAUttB,KAAKysE,mBAAmBC,kBAAkB,MAAM,GAC1DyQ,EAAyBn9E,KAAKihE,cAAc,gBAC5CokB,EAAgBlI,EAAuBkuK,mBA0B3C,OAzBA,eAAK/9N,GAAS,SAAUvuB,EAAG+R,GACvB,IAAI1S,EACJ,KAAIinF,GAAiBA,EAAcjkF,QAAU0P,EAAO1P,QAGhDyqD,GAAqB/6C,IAAWA,EAAOs7C,2BAA6BvtD,MAAM0nB,QAAQzV,EAAO47C,eAAiB57C,EAAO47C,aAAa9yD,OAAQ,CACtI,IAAI8yD,EAAe,GACnB,eAAK57C,EAAO47C,cAAc,SAAU3tD,EAAGynB,GAC/B3nB,MAAM0nB,QAAQC,GACdpoB,EAASooB,GAEL1V,EAAOg0E,mBAAqB,OAAc3gE,WAAWrT,EAAOsT,WAAa,WAAatT,EAAOsT,WAC7FoC,EAAc1V,EAAOg0E,iBAAiBt+D,IAE1CpoB,EAAS0S,EAAOmjF,uBAAuBztE,EAAa,IAAK,iBAEzDpoB,IACAA,EAAOwmB,YAAc9T,EAAO1P,OAEhCsrD,EAAazpD,KAAK7E,MAEtBsuD,EAAe,OAAc9jC,eAAe8jC,EAAc,MAC1D7jC,EAAQ5lB,KAAK,YAAc6N,EAAO27C,WAAa,CAAC,IAAKC,GAAgBA,OAGtE,OAAc9jC,eAAeC,KAGjCojO,GAAqB,CAC5BtuP,eAAgB,WACZ,MAAO,CACH4rD,wBAAwB,EACxBr0B,aAAc,CACVy0B,SAAS,EACTpiD,MAAO,IACPmK,OAAQ,IACRs6C,aAAa,EACb4C,cAAe,IACfE,MAAO,CACHe,WAAY,OAAoBx2D,OAAO,qCACvCy2D,GAAI,OAAoBz2D,OAAO,6BAC/Bu2D,OAAQ,OAAoBv2D,OAAO,qCAKnDwrE,YAAa,CACT3vC,aAAck1N,IAElBrlL,MAAO,CACHmnL,iBAAkBlE,IAEtB/iL,UAAW,CACPJ,YAAa,CACT1+D,KAAM,IAEV4+D,MAAO,CACH+W,kBAAmB8vK,GACnBrgJ,YAAaygJ,MCrdzB,EAAKvmL,eAAe,eAAgBwmL,I,iBCAhCE,GAA6B,yBAC7BC,GAAmCD,GAA6B,SAChEE,GAAiCF,GAA6B,OAC9DG,GAAuCH,GAA6B,aACpEI,GAAY,IAEhB,SAAS,GAAeC,EAAerkO,GACnC,IAAIskO,EAAe,eAAE,SAASnlO,SAAS8kO,IACnCM,EAAa,eAAE,SAASplO,SAAS+kO,IACjCv2N,EAAS02N,EAAc3qP,OAAS,GAChC8qP,EAAgB,SAAS72N,GACzB,OAAOA,GAAUA,EAAOl8B,OAAS,EAAIk8B,EAAO,GAAK,MAEjD82N,EAAc,SAAS92N,GACvB,OAAOA,GAAU,IAAMA,EAAOl8B,OAASk8B,EAAO,GAAK,MAEvD3N,EAAUyhB,OAAO6iN,GACjBtkO,EAAUyhB,OAAO,eAAE,UAAUtiB,SAASglO,IAAsC/vP,KAAKgwP,KACjFpkO,EAAUyhB,OAAO8iN,GACjBvkO,EAAUb,SAAS6kO,IACnBnsP,KAAK6sP,eAAe7kH,aAAaxiH,KAAKxlB,KAAMysP,EAAc,OAAAhyP,EAAA,WAAO,GAAI+xP,EAAcxlP,MAAOwlP,EAAe,CACrG3qP,MAAO8qP,EAAc72N,GACrBmyG,WAAY,gBACZC,SAAU,SAASrmI,GACfi0B,EAAS,CAACj0B,EAAO+qP,EAAY92N,IAC7B02N,EAActkH,SAASpyG,OAG/B91B,KAAK6sP,eAAe7kH,aAAaxiH,KAAKxlB,KAAM0sP,EAAY,OAAAjyP,EAAA,WAAO,GAAI+xP,EAAcxlP,MAAOwlP,EAAe,CACnG3qP,MAAO+qP,EAAY92N,GACnBmyG,WAAY,gBACZC,SAAU,SAASrmI,GACfi0B,EAAS,CAAC62N,EAAc72N,GAASj0B,GACjC2qP,EAActkH,SAASpyG,OAI5B,SAASg3N,GAAU5lP,EAASgqF,GAC/B,MAAO,CACHtvF,KAAM,UACNsF,QAASA,EACT+jD,KAAM,QACN8hM,eAAgBR,GAChB/8L,UAAW,CAAC,SAAU,OAAQ,YAC9BC,eAAgB,GAAejlC,KAAK0mE,GACpC87J,cAAc,GCjDtB,IAAI,GAAkB,CAClB,IAAK,QACL,KAAM,WACN,IAAK,OACL,KAAM,cACN,IAAK,UACL,KAAM,iBACNlM,YAAa,iBACb5rL,SAAU,WACV6rL,WAAY,aACZC,SAAU,WACViM,QAAS,UACTC,WAAY,cAEZC,GAAiB,CACjB,IAAK,QACL,KAAM,WACN,IAAK,WACL,KAAM,kBACN,IAAK,cACL,KAAM,qBACNpM,WAAY,aACZ7rL,SAAU,WACV4rL,YAAa,cACbE,SAAU,WACViM,QAAS,UACTC,WAAY,aACZj4L,QAAS,WAEE,IACXm4L,yBAA0B,SAASC,GAC/B,OAAO,GAAgBA,IAE3BC,yBAA0B,SAASD,GAC/B,OAAOF,GAAeE,KCF1BE,GAAoB,SACpBC,GAAkB,YAClBC,GAAsB,MACtBC,GAAkB,IAClBC,GAAsB,KACtB,GAAsB,CACtBtyP,OAAQ,CAAC,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,UAAW,cACrD6tC,OAAQ,CAAC,WAAY,cAAe,aAAc,WAAY,IAAK,KAAM,UAAW,cACpF5vC,KAAM,CAAC,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,UAAW,cACnDupF,SAAU,CAAC,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,UAAW,cACvD+qK,QAAS,CAAC,IAAK,KAAM,UAAW,cAChCC,OAAQ,CAAC,UAAW,eAEpBC,GAAiB,CACjBx0P,KAAM,YACNupF,SAAU,sBAEVkrK,GAAoB,CAAC,IAAK,KAAM,UAAW,cAC3CC,GAA6B,CAAC,UAAW,gBAAiB,YAAa,WAAY,iBAAkB,YAAa,gBAAiB,mBAAoB,SAAU,SAAU,WAAY,4BAA6B,QACpNC,GAAuB,mBACvBC,GAAiCD,GAAuB,QACxDE,GAAsCD,GAAiC,QACvEE,GAA2CF,GAAiC,aAC5EG,GAAiDD,GAA2C,SAEhG,SAASE,GAAsBtnP,EAAOnF,GAClC,IAAI0sP,EAAcvnP,EAAM3N,QAAUy0P,GAAe9mP,EAAMod,UACvD,OAAO,QAAa/qB,OAAOwI,EAAO0sP,GAGtC,SAASC,GAAgB9nO,GACrB,OAAOA,GAASA,EAAM9sB,OAAS,GAAK,MAAQ8sB,EAAM,KAAO+nO,GAAY/nO,GAElE,SAASgoO,GAAiBhoO,GAC7B,OAAO8nO,GAAgB9nO,GAASA,EAAM,GAAKA,EAG/C,SAASioO,GAAiBjoO,EAAOkoO,GAM7B,OALIJ,GAAgB9nO,GAChBA,EAAM,GAAKkoO,EAEXloO,EAAQkoO,EAELloO,EAGX,SAASmoO,GAA2BnoO,EAAO7kB,IACnC,SAASA,GACL,OAAQ,IAAMA,EAAMvD,QAAQ,KADhC,CAEEuD,GAQK2sP,GAAgB9nO,IACrB,SAASA,GACP,IAAIkoO,EAAWF,GAAiBhoO,GAChCA,EAAM9sB,OAAS,EACf,GAAGqJ,KAAKnE,MAAM4nB,EAAOkoO,GAHvB,CAIAloO,GAZG8nO,GAAgB9nO,IACf,SAASA,GACP,IAAIkoO,EAAWloO,EAAMrD,MAAM,GAC3BqD,EAAM9sB,OAAS,EACf8sB,EAAMzjB,KAAK,IAAK2rP,GAHlB,CAIAloO,GAUP,SAASooO,GAAcpoO,EAAO7kB,GACjCgtP,GAA2BnoO,EAAO7kB,GAClC,IACIpG,EADAmzP,EAAWF,GAAiBhoO,GAYhC,OAVA7kB,EAAQ,SAASA,GACb,OAAQ,IAAMA,EAAMvD,QAAQ,KAAOuD,EAAQA,EAAMyjC,UAAU,GADvD,CAENzjC,GACA,SAAS+sP,EAAU/sP,GACjB,IAAKpG,EAAI,EAAGA,EAAImzP,EAASh1P,OAAQ6B,IACxBoD,MAAM0nB,QAAQqoO,EAASnzP,MACxBmzP,EAASnzP,GAAKoG,GAHxB,CAMA+sP,EAAU/sP,GACL6kB,EAEJ,SAASqoO,GAAiBroO,EAAOsoO,GACpC,IAAIC,EAAaC,GAAcxoO,GAC/B,OAAOsoO,EAAgB5wP,QAAO,SAAU2I,GACpC,OAAOA,EAAKlF,QAAUotP,KACtB,GAGR,SAASE,GAAqBP,GAC1B,GAAIH,GAAYG,GACZ,OAAOnB,GAGX,IADA,IAAI5rP,EAAQ,GACHpG,EAAI,EAAGA,EAAImzP,EAASh1P,OAAQ6B,IAAK,CACtC,IAAIsL,EAAO6nP,EAASnzP,GACpB,IAAKoD,MAAM0nB,QAAQxf,GAAO,CACtB,GAAIlF,GAASA,IAAUkF,EACnB,MAAM,IAAI,QAAW20B,MAAM,SAE3B,MAAQ30B,IACRlF,EAAQkF,IAIpB,OAAOlF,EAEJ,SAASqtP,GAAcxoO,GAC1B,IAAIkoO,EAAWF,GAAiBhoO,GAC5B7kB,EAAQstP,GAAqBP,GAOjC,OANK/sP,IACDA,EAAQ4rP,IAERmB,IAAaloO,IACb7kB,EAAQ,IAAMA,GAEXA,EAGX,SAASutP,GAA2BpoP,GAChC,OAAOA,EAAM+iB,QAAUgkO,IAAqB,GAAoB/mP,EAAMod,UAAYmpO,IAGtF,SAAS8B,GAAaC,GAClB,OAAOzwP,MAAM0nB,QAAQ+oO,IAAWA,EAAO11P,OAEpC,SAAS21P,GAAoBvoP,GAChC,IAAI/H,EAASowP,GAAaroP,EAAMwlD,kBAAoBxlD,EAAMwlD,iBAAmB4iM,GAA2BpoP,GACxG,OAAO,OAAAvM,EAAA,WAAO,GAAIwE,GAEf,SAASuwP,GAAsB1mO,EAAW4pC,GAC7C,IAAIunC,EAAgB,GAA2BqzJ,yBAAyBxkO,GACxE,OAAO4pC,GAA+BA,EAA4BunC,GAAiBvnC,EAA4BunC,GAAiBA,EAE7H,SAASw1J,GAA0B3mO,EAAW4mO,GACjD,IAAK,IAAIj0P,EAAI,EAAGA,EAAIi0P,EAAoB91P,OAAQ6B,IAC5C,GAAIi0P,EAAoBj0P,GAAGoG,QAAUinB,EACjC,OAAO4mO,EAAoBj0P,GAGnC,MAAM,IAAI,OAAOigC,MAAM,QAAS5S,GAE7B,SAAS6mO,GAAmBn9L,EAAkB5wD,GACjD,IAAIguP,EAAqBp9L,EAAiBp0D,QAAO,SAAU2I,GACvD,OAAOA,EAAKnF,OAASA,KAEzB,OAAOguP,EAAmBh2P,OAASg2P,EAAmB,GAAK,KAExD,SAASC,GAAuB7oP,EAAO0rD,EAA6BF,GACvE,IAAIhG,EAAmB+iM,GAAoBvoP,GACvC8oP,IAAkB9oP,EAAM+iB,OAU5B,OATAyoC,EAAiBtxD,SAAQ,SAAU+xD,GAC/B,IAAKjsD,EAAMwlD,mBAAqB,IAAMA,EAAiBluD,QAAQ20D,EAAgBrxD,MAAO,CAClF,IAAI4tD,EAAYyD,GAAmBA,EAAgBzD,UAC/CugM,IAAuBD,KAAkB78L,EAAgB+5L,cACxD+C,GAAwBvgM,GAAaA,EAAUlxD,QAAQ0I,EAAMod,UAAYmpO,KAAsB,GAChG/gM,EAAiBvpD,KAAKgwD,EAAgBrxD,UAI3C4qD,EAAiB1wD,KAAI,SAAUgtB,GAClC,IAAImqC,EAAkB08L,GAAmBn9L,EAAkB1pC,GAC3D,OAAImqC,EACO,CACHhI,KAAMgI,EAAgBhI,MAAQuiM,GAC9BjxP,KAAM02D,EAAgB/rD,SAAW,gBAAW+rD,EAAgBrxD,MAC5DC,MAAOoxD,EAAgBrxD,KACvBouP,UAAU,GAGP,CACH/kM,KAAM,GAA2BmiM,yBAAyBtkO,IAAc0kO,GACxEjxP,KAAMizP,GAAsB1mO,EAAW4pC,GACvC7wD,MAAOinB,MAKhB,SAASmnO,GAAoBjpP,GAChC,OAAOA,EAAMorD,wBAA0Bm9L,GAAoBvoP,GAAO,GAE/D,SAASkpP,GAAgBlpP,EAAOwrD,GACnC,IAAIt8B,EAAY,CAAClvB,EAAMoK,UAAW,GAAI,IAClCi8O,EAAkB4C,GAAoBjpP,GAE1C,OADAmpP,GAA2Bj6N,EAAWm3N,EAAiB76L,GAChDt8B,EAEJ,SAASk6N,GAAW1pO,EAAO3f,GAC9B,IAAI6nP,EAAWF,GAAiBhoO,GAC5BtlB,EAAQwtP,EAAStwP,QAAQyI,GAK7B,OAJA6nP,EAASr7K,OAAOnyE,EAAO,GACnB,IAAMwtP,EAASh1P,QACfg1P,EAASr7K,OAAOnyE,EAAO,GAEpBslB,EAEJ,SAAS2pO,GAAiBxuP,GAC7B,IAAIyuP,EAAaC,GAAyB1uP,GACtC2uP,EAAiBF,EAAaG,GAAuC5uP,GAASA,EAClF,OAAOyuP,EAAa,CAAC,IAAK,CAACE,IAAmB,CAACA,GAY5C,SAAS,GAAQzpP,EAAM2f,GAC1B,IAAIkoO,EAAWF,GAAiBhoO,GAC5BuoO,EAAaC,GAAcN,GAE/B,OADA,IAAMA,EAASh1P,OAASg1P,EAASp9N,QAAQzqB,GAAQ6nP,EAAS3rP,KAAK8D,EAAMkoP,GAC9DvoO,EAEJ,SAASgqO,GAASt/O,EAAWqhD,GAChC,IAAK,IAAIh3D,EAAI,EAAGA,EAAIg3D,EAAO74D,OAAQ6B,IAAK,CACpC,GAAIg3D,EAAOh3D,GAAGmG,OAASwP,EACnB,OAAOqhD,EAAOh3D,GAElB,GAAIg3D,EAAOh3D,GAAG2V,UAAUtT,gBAAkBsT,EAAUtT,cAChD,OAAO20D,EAAOh3D,GAGtB,IAAIk1P,EAAiB9tD,GAASpwI,GAAQ,GAAMr0D,QAAO,SAAU2I,GACzD,OAAOA,EAAKqK,UAAUtT,gBAAkBsT,EAAUtT,iBAEtD,GAAI6yP,EAAe/2P,OAAS,EACxB,OAAO+2P,EAAe,GAE1B,MAAM,IAAI,OAAOj1N,MAAM,QAAStqB,GAE7B,SAAS,GAAQw9O,GACpB,QAAK/vP,MAAM0nB,QAAQqoO,KAGZA,EAASh1P,OAAS,GAAKiF,MAAM0nB,QAAQqoO,EAAS,KAAO/vP,MAAM0nB,QAAQqoO,EAAS,KAEhF,SAASH,GAAYG,GACxB,QAAK/vP,MAAM0nB,QAAQqoO,KAGZA,EAASh1P,OAAS,IAAMiF,MAAM0nB,QAAQqoO,EAAS,MAAQ/vP,MAAM0nB,QAAQqoO,EAAS,KAGzF,SAASgC,GAAoBlqO,EAAO8rC,EAAkBq+L,GAClDA,EAAwBA,GAAyBpD,GAGjD,IAFA,IAAI+C,EAAiBrB,GAAqBzoO,GAAO5oB,eAAiB+yP,EAC9DC,EAAa,GACRr1P,EAAI,EAAGA,EAAIirB,EAAM9sB,OAAQ6B,IAC1B,GAAQirB,EAAMjrB,KACdq1P,EAAW7tP,KAAK8tP,GAAwBrqO,EAAMjrB,GAAI+2D,EAAkBq+L,IACpEC,EAAaE,GAA4BF,EAAYN,IAC9C/B,GAAY/nO,EAAMjrB,MACzBq1P,EAAW7tP,KAAKguP,GAAwBvqO,EAAMjrB,GAAI+2D,IAClDs+L,EAAaE,GAA4BF,EAAYN,IAM7D,OAHI,IAAMM,EAAWl3P,SACjBk3P,EAAaE,GAA4BF,EAAYN,IAElDM,EAGX,SAASI,GAA4Bh7N,EAAWs8B,GAC5C,IAAIS,EAAkB08L,GAAmBn9L,EAAkBt8B,EAAU,IACrE,OAAO+8B,GAAmBA,EAAgBrxD,OAASs0B,EAAU,GAGjE,SAAS+6N,GAAwB/6N,EAAWs8B,GACxC,OAAI0+L,GAA4Bh7N,EAAWs8B,IAGvCt8B,EAAUt8B,OAAS,IACnBs8B,EAAU,GAAKA,EAAU,GACzBA,EAAU,GAAKw3N,IAJRx3N,EASf,SAASq6N,GAAyBznO,GAC9B,OAAQ,IAAMA,EAAUxqB,QAAQ,OAGpC,SAASmyP,GAAuC3nO,GAC5C,OAAOA,EAAUwc,UAAU,GAAGxnC,cAGlC,SAASqzP,GAA+BvC,EAAU4B,GAC9C,IAAIF,EAAaC,GAAyBC,GAE1C,OADAA,EAAiBF,EAAaG,GAAuCD,GAAkBA,EAChFF,EAAa,CAAC,IAAK1B,EAAU4B,GAAkB,CAAC5B,EAAU4B,GAGrE,SAASQ,GAA4BtqO,EAAO8pO,GACxC,IAAIF,EAAaC,GAAyBC,GAC1CA,EAAiBF,EAAaG,GAAuCD,GAAkBA,EACvF9pO,EAAMzjB,KAAKutP,GACX,IAAIvxP,EAASynB,EAIb,OAHI4pO,IACArxP,EAAS,CAAC,IAAKA,IAEZA,EAEJ,SAAS8xP,GAAwBlvP,EAAO2wD,EAAkBq+L,GAE7D,OADAA,EAAwBA,GAAyBpD,GAC5C5rP,GAGLA,EAAQ,OAAApH,EAAA,YAAO,EAAM,GAAIoH,GACrB4sP,GAAY5sP,GACLsvP,GAA+BF,GAAwBpvP,EAAO2wD,GAAmBq+L,GAExFrC,GAAgB3sP,GACT,CAAC,IAAK4sP,GAAY5sP,EAAM,IAAMsvP,GAA+BF,GAAwBpvP,EAAM,GAAI2wD,GAAmBq+L,GAAyBrC,GAAgB3sP,EAAM,IAAMsvP,GAA+BJ,GAAwBlvP,EAAM,GAAI2wD,GAAmBq+L,GAAyBD,GAAoB/uP,EAAM,GAAI2wD,EAAkBq+L,IAExUD,GAAoB/uP,EAAO2wD,EAAkBq+L,IATzCR,GAAiBQ,GAWzB,SAASO,GAAoB3+L,GAChC,OAAOA,EAAO17B,QAAO,SAAU93B,EAAQ+H,GACnC,GAAI,eAAUA,EAAMoK,WAAY,CAC5B,IAAIigP,EAAkB,GACtB,IAAK,IAAIv2P,KAAOkM,EACRA,EAAMlM,IAAQkzP,GAA2B1vP,QAAQxD,IAAQ,IACzDu2P,EAAgBv2P,GAAOkM,EAAMlM,IAGrCu2P,EAAgBl7N,iCAAmC,QAAYA,iCAC1D,eAAUk7N,EAAgBjtO,YAC3BitO,EAAgBjtO,SAAWmpO,IAE1B,eAAU8D,EAAgB3nO,YAC3B2nO,EAAgB3nO,SAAW,OAAoBrwB,OAAO,wBAErD,eAAUg4P,EAAgB1nO,aAC3B0nO,EAAgB1nO,UAAY,OAAoBtwB,OAAO,yBAE3D4F,EAAOgE,KAAKouP,GAEhB,OAAOpyP,IACP,IAGR,SAASqyP,GAA6Bp7N,EAAWu8B,EAAQD,EAAkBltC,GACvE,IAAIte,EAAQ0pP,GAASx6N,EAAU,GAAIu8B,GAC/B8+L,EAAmBN,GAAwB/6N,EAAWs8B,GACtDS,EAAkBT,EAAiB54D,QAAU+1P,GAAmBn9L,EAAkB++L,EAAiB,IACvG,OAAIt+L,GAAmBA,EAAgB7G,0BAC5B6G,EAAgB7G,0BAA0BttD,MAAMm0D,EAAiB,CAACs+L,EAAiB,GAAIvqP,EAAOyrD,IAC9FzrD,EAAMitF,uBACNjtF,EAAMitF,uBAAuBn1F,MAAMkI,EAAO,CAACuqP,EAAiB,GAAIA,EAAiB,GAAIjsO,IACrFte,EAAMolD,0BACNplD,EAAMolD,0BAA0BttD,MAAMkI,EAAO,CAACuqP,EAAiB,GAAIA,EAAiB,GAAIjsO,IAExFte,EAAMmvB,iCAAiCr3B,MAAMkI,EAAO,CAACuqP,EAAiB,GAAIA,EAAiB,GAAIjsO,IAGvG,SAASksO,GAAoB3vP,EAAO4wD,EAAQD,EAAkBltC,GACjE,IAAK,eAAUzjB,GACX,OAAO,KAEX,GAAI2sP,GAAgB3sP,GAAQ,CACxB,IAAI0vP,EAAmBC,GAAoB3vP,EAAM,GAAI4wD,EAAQD,EAAkBltC,GAC/E,MAAO,CAAC,IAAKisO,GAEjB,IAAI3C,EAAWF,GAAiB7sP,GAChC,GAAI4sP,GAAYG,GACZ,OAAO0C,GAA6B1C,EAAUn8L,EAAQD,EAAkBltC,IAAW,KAKnF,IAHA,IACImsO,EADAxyP,EAAS,GAETgwP,EAAaC,GAAcN,GACtBnzP,EAAI,EAAGA,EAAImzP,EAASh1P,OAAQ6B,IAC7B,GAAQmzP,EAASnzP,KACjBg2P,EAAoBD,GAAoB5C,EAASnzP,GAAIg3D,EAAQD,EAAkBltC,GAC3EmsO,IACAh2P,GAAKwD,EAAOgE,KAAKgsP,GACjBhwP,EAAOgE,KAAKwuP,KAEThD,GAAYG,EAASnzP,MAC5Bg2P,EAAoBH,GAA6B1C,EAASnzP,GAAIg3D,EAAQD,EAAkBltC,GACpFmsO,IACAxyP,EAAOrF,QAAUqF,EAAOgE,KAAKgsP,GAC7BhwP,EAAOgE,KAAKwuP,KAOxB,OAHI,IAAMxyP,EAAOrF,SACbqF,EAASA,EAAO,IAEbA,EAAOrF,OAASqF,EAAS,KAGjC,SAASyyP,GAAoBhrO,GAChC,IACIjrB,EADAmzP,EAAWF,GAAiBhoO,GAEhC,GAAI,IAAMkoO,EAASh1P,OACf,OAAO,KAEX,IAAI+3P,EAAiB,GACrB,IAAKl2P,EAAI,EAAGA,EAAImzP,EAASh1P,OAAQ6B,IAC7B,GAAI,GAAQmzP,EAASnzP,IAAK,CACtB,IAAIm2P,EAAuBF,GAAoB9C,EAASnzP,IACpDm2P,EACAhD,EAASnzP,GAAKm2P,EAEdD,EAAe1uP,KAAK2rP,EAASnzP,SAE1BgzP,GAAYG,EAASnzP,MACvBo2P,GAAiBjD,EAASnzP,KAC3Bk2P,EAAe1uP,KAAK2rP,EAASnzP,KAIzC,IAAKA,EAAI,EAAGA,EAAIk2P,EAAe/3P,OAAQ6B,IACnC20P,GAAWxB,EAAU+C,EAAel2P,IAExC,OAAI,IAAMmzP,EAASh1P,OACR,MAEXg1P,EAASr7K,OAAOq7K,EAASh1P,OAAS,EAAG,GACjC,IAAMg1P,EAASh1P,SACf8sB,EAAQioO,GAAiBjoO,EAAOkoO,EAAS,KAEzC,IAAMloO,EAAM9sB,OACL,KAEJ8sB,GAEJ,SAASorO,GAA0B9qP,EAAOnF,EAAOyhH,GACpD,GAAI,KAAOzhH,EAAX,CAIA,IAAIkoB,EAAS/iB,EAAM+iB,OACnB,GAAIA,EAAOrB,MACP46F,EAAQv5F,EAAO7F,mBAAmBriB,IAAU,QACzC,CACH,IAAIwtB,EAAmB,eAAWtF,EAAOR,YAAcQ,EAAOR,WAAW,IAAMQ,EAAOR,WAClFA,EAAa,IAAI,QAAW8F,GAChC9F,EAAWwoO,WAAWhoO,EAAOgG,UAAWluB,GAAOsrB,MAAK,SAAUluB,GAC1D,IAAIkmB,EAAY,GACZlmB,IACAkmB,EAAY4E,EAAOiG,YAAc,gBAAcjG,EAAOiG,YAArB,CAAkC/wB,GAAUA,GAE7E+H,EAAMue,gBACNJ,EAAYne,EAAMue,cAAc,CAC5B1jB,MAAOA,EACPsjB,UAAWA,KAGnBm+F,EAAQn+F,MACRwK,MAAK,WACL2zF,EAAQ,aAtBZA,EAAQ,IA2BhB,SAAS0uI,GAAsBhrP,EAAOnF,EAAOoxD,EAAiB3tC,EAAQtU,GAClE,IAAImU,EAuBJ,OArBIA,GADA,IAAStjB,EACGmF,EAAM0iB,UAAY,OAAoBrwB,OAAO,wBAClD,IAAUwI,EACLmF,EAAM2iB,WAAa,OAAoBtwB,OAAO,wBAE9Ci1P,GAAsBtnP,EAAOnF,GAEzCmF,EAAMue,gBACNJ,EAAYne,EAAMue,cAAcC,KAAKxe,EAAO,CACxCnF,MAAOA,EACPsjB,UAAWA,EACXG,OAAQA,KAGZ2tC,GAAmBA,EAAgB1tC,gBACnCJ,EAAY8tC,EAAgB1tC,cAAcC,KAAKytC,EAAiB,CAC5DpxD,MAAOA,EACPsjB,UAAWA,EACXne,MAAOA,EACPse,OAAQA,GACTtU,IAEAmU,EAGX,SAAS8sO,GAAkBjrP,EAAOnF,EAAOoxD,EAAiB3tC,GACtD,IAAItU,EAAU,CACV8kB,OAAQj0B,GAEZ,OAAOA,EAAM/F,IAAI6jC,GAAKqyN,GAAsBhrP,EAAO24B,EAAGszB,EAAiB3tC,EAAQtU,IAGnF,SAASkhP,GAAkBrwP,GACvB,MAAO,KAAOA,GAAS,OAASA,EAE7B,SAASswP,GAAoBnrP,EAAOnF,EAAOoxD,GAC9C,IAAI3tC,EAASplB,UAAUtG,OAAS,QAAK,IAAWsG,UAAU,GAAKA,UAAU,GAAK,gBAC9E,GAAIgyP,GAAkBrwP,GAClB,MAAO,GAEX,GAAIhD,MAAM0nB,QAAQ1kB,GAAQ,CACtB,IAAI5C,EAAS,IAAI,cAQjB,OAPA,UAAKH,MAAMkB,KAAMiyP,GAAkBjrP,EAAOnF,EAAOoxD,EAAiB3tC,IAAS6H,MAAK,WAC5E,IAAK,IAAIkiI,EAAOnvJ,UAAUtG,OAAQilD,EAAO,IAAIhgD,MAAMwwJ,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC7EzwG,EAAKywG,GAAQpvJ,UAAUovJ,GAE3B,IAAI/yJ,EAAOsiD,EAAKnxB,KAAK3mB,IAASmrP,GAAkBnrP,IAAS83C,EAAK/iD,IAAIiL,GAASmrP,GAAkBnrP,GAAe,IAAPA,GAAc,GACnH9H,EAAOuwB,QAAQjzB,MAEZ0C,EAEP,OAAO+yP,GAAsBhrP,EAAOnF,EAAOoxD,EAAiB3tC,GAIpE,SAAS8sO,GAAWluH,EAAYyF,GAC5B,OAAOzF,EAAWx2G,MAAK,SAAU3mB,GAC7B,OAAOA,EAAKqK,YAAcu4H,KAIlC,SAAS0oH,GAAuBC,EAAepuH,EAAYn9H,GACvD,IAAIqK,EAAYrK,EAAKqK,UACjBmhP,GAAUnhP,KACVrK,EAAK4iI,SAAW6oH,GAA6BphP,GACxCghP,GAAWluH,EAAYn9H,EAAK4iI,WAAcyoH,GAAWE,EAAevrP,EAAK4iI,WAC1E0oH,GAAuBC,EAAepuH,EAAY,CAC9Cp1I,GAAIiY,EAAK4iI,SACTvlH,SAAU,SACVhT,UAAWrK,EAAK4iI,SAChBziI,QAASurP,GAA2B1rP,EAAK4iI,UAAU,GACnDn9E,iBAAkB,CAAC,UAAW,iBAI1C03E,EAAWjhI,KAAK8D,GAGpB,SAAS0rP,GAA2BrhP,EAAWkhD,GAC3C,IAAIprD,EAAU,GACd,GAAIorD,EACAlhD,EAAYA,EAAUk0B,UAAUl0B,EAAUm0B,YAAY,KAAO,QAC1D,GAAIgtN,GAAUnhP,GAOjB,OANAA,EAAUvV,MAAM,KAAKqF,SAAQ,SAAU8F,EAAO5F,EAAOivB,GACjDnpB,GAAW,gBAAWF,GAClB5F,IAAUivB,EAAIz2B,OAAS,IACvBsN,GAAW,QAGZA,EAEX,OAAO,gBAAWkK,GAEf,SAASyxL,GAASpwI,EAAQH,GAE7B,IADA,IAAI5pC,EAAQ,GACHjtB,EAAI,EAAGA,EAAIg3D,EAAO74D,OAAQ6B,IAAK,CACpC,IAAIsL,EAAO,OAAAtM,EAAA,YAAO,EAAM,CACpByM,QAASurP,GAA2BhgM,EAAOh3D,GAAG2V,UAAWkhD,IAC1DG,EAAOh3D,IACVsL,EAAKjY,GAAKiY,EAAKnF,MAAQmF,EAAKqK,UACxBkhD,EACA+/L,GAAuB5/L,EAAQ/pC,EAAO3hB,GAEtC2hB,EAAMzlB,KAAK8D,GAGnB,OAAO2hB,EAGX,SAAS6pO,GAAUnhP,GACf,OAAQ,IAAMA,EAAUm0B,YAAY,KAGxC,SAASitN,GAA6BphP,GAClC,OAAOA,EAAUk0B,UAAU,EAAGl0B,EAAUm0B,YAAY,MAEjD,SAASmtN,GAAsB3rP,EAAMm9H,GACxC,GAAIquH,GAAUxrP,EAAKqK,WAEf,IADA,IAAIu4H,EAAW6oH,GAA6BzrP,EAAKqK,WACxC3V,EAAI,EAAGA,EAAIyoI,EAAWtqI,OAAQ6B,IACnC,GAAIyoI,EAAWzoI,GAAG2V,YAAcu4H,EAC5B,OAAO+oH,GAAsBxuH,EAAWzoI,GAAIyoI,GAAc,IAAMn9H,EAAKG,QAIjF,OAAOH,EAAKG,QAET,SAASipP,GAA2Bj6N,EAAWpN,EAAW0pC,GAC7D,IAAIS,EAAkB08L,GAAmBn9L,EAAkB1pC,GAC3D,OAAImqC,IACI,IAAUA,EAAgBvD,UAC1Bx5B,EAAU,GAAKpN,EACfoN,EAAUt8B,OAAS,IAEnBs8B,EAAU,GAAKpN,EACfoN,EAAU,GAAK,IAEZA,IAEP,YAAcpN,GACdoN,EAAU,GAAKw3N,GACfx3N,EAAU,GAAK,MACR,eAAiBpN,GACxBoN,EAAU,GAAKy3N,GACfz3N,EAAU,GAAK,OAEf+8B,EAAkB08L,GAAmBn9L,EAAkBt8B,EAAU,KAC7D+8B,GAAmB,IAAM/8B,EAAUt8B,QAAU,OAASs8B,EAAU,MAChEA,EAAU,GAAK,IAEnBA,EAAU,GAAKpN,GAEZoN,GAEJ,SAASy8N,GAAkBz8N,GAC9B,IAAIhvB,EAUJ,OAPQA,EAFJ,OAASgvB,EAAU,GACfA,EAAU,KAAOw3N,GACP,UAEA,aAGJx3N,EAAU,GAEjBhvB,EAEJ,SAAS2qP,GAAiB37N,GAC7B,MAAO,KAAOA,EAAU,GAErB,SAAS08N,GAAoBpgM,EAAkBqgM,EAAgB3hK,GAClE,IAAIjyF,EAAS,OAAAxE,EAAA,YAAO,EAAM,GAAI+3D,GAC1BsgM,GAAgB,EAYpB,OAXA7zP,EAAOyuB,MAAK,SAAUulC,EAAiB7xD,GACnC,GAAI,YAAc6xD,EAAgBrxD,KAE9B,OADAkxP,EAAe1xP,GACR,MAGV,IAAM0xP,EACP7zP,EAAO6zP,GAAgB,OAAAr4P,EAAA,WAAOqyP,GAAU+F,EAAgB3hK,GAAUjyF,EAAO6zP,IAEzE7zP,EAAOuyB,QAAQs7N,GAAU+F,EAAgB3hK,IAEtCjyF,EAGX,SAAS8zP,GAAmB30P,EAAQ40P,GAChC,OAAO50P,EAAO,KAAO40P,EAElB,SAASC,GAAgC70P,EAAQgT,GACpD,IAAKhT,GAAU,IAAMA,EAAOxE,OACxB,OAAO,KAEX,GAAI60P,GAAYrwP,GAAS,CACrB,IAAI80P,EAAsBH,GAAmB30P,EAAQgT,GACrD,OAAQ8hP,EAA+B,KAAT90P,EAE9B,OAAO+0P,GAAuB/0P,EAAQ,CAACgT,IAAY,GAI3D,SAAS+hP,GAAuB/0P,EAAQg1P,EAAaC,GACjD,IAAIp0P,EAAS,GAiBb,OAhBAb,EAAO8C,SAAQ,SAAU6F,GACjB0nP,GAAY1nP,GACRgsP,GAAmBhsP,EAAMqsP,EAAY,IACjCC,GACAp0P,EAAOgE,KAAKmwP,GACZC,GAAU,GAEVp0P,EAAOs0E,OAAOt0E,EAAOrF,OAAS,EAAG,GAGrCqF,EAAOgE,KAAK8D,IAGf9H,EAAOrF,QAAU,GAAQmN,KAAU9H,EAAOgE,KAAK8D,MAGpD,IAAM9H,EAAOrF,OACN,MAEPy5P,IACAp0P,EAAOgE,KAAKwqP,IACZxuP,EAAOgE,KAAKmwP,IAET,IAAMn0P,EAAOrF,OAASqF,EAAO,GAAKA,GAEtC,SAASq0P,GAAYl1P,EAAQg1P,GAChC,GAAI,OAASh1P,GAAU,IAAMA,EAAOxE,OAChC,OAAOw5P,EAEX,GAAI3E,GAAYrwP,GACZ,OAAI20P,GAAmB30P,EAAQg1P,EAAY,IAChCA,EAEA,CAACh1P,EAAQqvP,GAAqB2F,GAG7C,IAAInE,EAAaC,GAAc9wP,GAC/B,OAAI6wP,IAAexB,GACR,CAAC2F,EAAa,MAAOh1P,GAEzB+0P,GAAuB/0P,EAAQg1P,GAAa,GAEhD,SAASG,GAAqBn1P,EAAQgT,GACzC,GAAI,OAAShT,GAAU,IAAMA,EAAOxE,OAChC,MAAO,GAEX,GAAI60P,GAAYrwP,GACZ,OAAI20P,GAAmB30P,EAAQgT,GACpB,CAAChT,GAED,GAGf,IAAI6wP,EAAaC,GAAc9wP,GAC/B,GAAI6wP,IAAexB,GACf,MAAO,GAEX,IAAIxuP,EAASb,EAAOA,QAAO,SAAU2I,GACjC,OAAO0nP,GAAY1nP,IAASgsP,GAAmBhsP,EAAMqK,MAEzD,OAAOnS,EAEJ,SAASu0P,GAAep1P,EAAQgT,GACnC,OAAI,OAAShT,GAAU,IAAMA,EAAOxE,SAGhC60P,GAAYrwP,GACLA,EAAO,KAAOgT,EAElBhT,EAAOsvB,MAAK,SAAU3mB,GACzB,OAAQ0nP,GAAY1nP,IAAS,GAAQA,KAAUysP,GAAezsP,EAAMqK,OAGrE,IAAIqiP,GAAkB,SAAS3uO,EAAYjjB,EAAOoxD,GACrD,GAAIp0D,MAAM0nB,QAAQ1kB,GAAQ,CACtB,IAAI6xP,EAAgB7xP,EAAMjI,OAAS,EACnCkrB,EAAW48C,QACX7/D,EAAMX,QAAQ,CAACo6B,EAAG7/B,KACd,eAAE,UAAU6rB,SAAS6mO,IAAqC5xP,KAAK++B,GAAG/T,SAASzC,GACvErpB,IAAMi4P,GACN,eAAE,UAAUpsO,SAAS8mO,IAA0C7xP,KAAK02D,GAAmBA,EAAgB85L,eAAiB95L,EAAgB85L,eAAiB,KAAKzlO,SAAS+mO,IAAgD9mO,SAASzC,UAGjOjjB,EACPijB,EAAWvoB,KAAKsF,GAEhBijB,EAAWvoB,KAAK,OAAoBlD,OAAO,oCC5vBnD,SAASs6P,GAAc7gD,GACnB,IAAI8gD,EAAc,SAAS78I,EAAU88I,GACjC,OAAOA,EAAaA,EAAa,IAAM98I,EAAWA,GAElD55B,EAAyB21H,GAAQA,EAAK7xI,cAAc,gBACxD,MAAO,CACHzR,UAAW,CAAC,SAAU,OAAQ,WAAY,SAAU,UAAW,UAC/DpD,0BAA2B,SAAS5lC,EAAaxf,EAAOyrD,GACpD,IAAIxzD,EAAS,GACTgoM,EAAYzgL,EAAY5sB,OAAS,EAarC,OAZA4sB,GAAeA,EAAYtlB,SAAQ,SAAUW,EAAOT,GAChD,GAAIqtP,GAAY5sP,IAAU,GAAQA,GAAQ,CACtC,IAAI0vP,EAAmBC,GAAoB3vP,EAAO4wD,EAAQ,GAAI,gBAC9DxzD,EAAOgE,KAAKsuP,QAEZtyP,EAAOgE,KAAKuuP,GAAoB,CAACxqP,EAAMoK,UAAW,IAAKvP,GAAQ4wD,EAAQ,GAAI,iBAE/ErxD,IAAU6lM,GAAahoM,EAAOgE,KAAK,SAEnC,IAAMhE,EAAOrF,SACbqF,EAASA,EAAO,IAEbA,GAEXwwD,eAAgB,SAAS+8L,EAAerkO,GACpC,IAAI2rO,EAAM,eAAE,SAASxsO,SAAS,oCAAoCC,SAASY,GACvErX,EAAS,OAAArW,EAAA,YAAO,EAAM,GAAIq4M,EAAKj8H,aAAa21K,EAAcxlP,MAAMoK,YAkBpE,OAjBAqiP,GAAgBK,EAAKtH,EAAcjwP,MAAQiwP,EAAcjwP,KAAKV,MAAM,MACpEiV,EAAO27C,WAAa,UACpB37C,EAAO47C,aAAe8/L,EAAc3qP,MAAQ2qP,EAAc3qP,MAAMwhB,QAAU,GAC1E85D,EAAuBouK,yBAAyB,CAC5CC,cAAesI,EACfhjP,OAAQA,EACRhS,MAAO,WAEH,IAAI+C,EADJA,EAAQ7B,KAAK0sD,aAAmB8/L,EAActkH,SAASrmI,GAEvDs7E,EAAuBwrK,uBACvB6D,EAAcuH,eAElB//L,SAAU,WACNw4L,EAAcuH,eAElB1L,iBAAiB,IAEdlgO,GAEX5C,cAAe,SAASyuO,EAAWhjP,GAC/BA,EAAUA,GAAW,GACrB,IAAInP,EAAQmyP,EAAUnyP,MAClBiP,EAASgiM,EAAKj8H,aAAam9K,EAAUhtP,MAAMoK,WAC3C8jB,EAAepkB,GAAUA,EAAOokB,aAChCnL,EAASjZ,GAAUA,EAAOiZ,OAC1B+L,EAAS9kB,EAAQ8kB,QAAU,CAACj0B,GAChC,GAAIqzB,GAAgBA,EAAa3L,YAAcQ,GAAUA,EAAOR,WAAY,CACxE,IAAItqB,EAAS,IAAI,cACbg1P,EAAgBjjP,EAAQ0X,OAAS,IAAI,cACzC,IAAK1X,EAAQ0X,MAAO,CAChB5X,EAAS,OAAArW,EAAA,WAAO,GAAIqW,EAAQ,CACxB27C,WAAY,UACZC,aAAc52B,IAElB,IAAIw+D,EAAoBnX,EAAuByjB,cAAc9vF,GAC7DwjF,EAAkBC,UAAW,EAC7B,IAAIhrE,EAAa,IAAI,QAAW+qE,GAC5Bx5F,EAAMyuB,EAAW0G,QAAQn1B,MAC7B,GAAIA,EAAK,CACL,IACIg7B,OAAQo+N,GACRljP,EACJ,GAAIkjP,GAAWA,EAAQt6P,OAAS,EAAG,CAC/B,IAAIwE,EAAS81P,EAAQn9N,OAAO,CAAC93B,EAAQ4C,KAC7B5C,EAAOrF,QACPqF,EAAOgE,KAAK,MAEhBhE,EAAOgE,KAAK,CAACnI,EAAK,IAAK+G,IAChB5C,GACR,IACHsqB,EAAWnrB,OAAOA,QAElBmrB,EAAWnrB,OAAO,CAACtD,EAAK,IAAKk5P,EAAUnyP,aAEpCmyP,EAAUhtP,MAAM8iB,uBACvB,OAAOhmB,IAAI,SAEfkN,EAAQ0X,MAAQurO,EAChB1qO,EAAW+F,OAAOnC,KAAK8mO,EAAczkO,SAgBzC,OAdAykO,EAAc9mO,KAAKzE,IACf,IAAItnB,EAAQ00B,EAAOx3B,QAAQ01P,EAAUnyP,OACrC5C,EAAOuwB,QAAQ,SAAS2kO,EAAsBzrO,EAAOmrO,GACjD,IAAI50P,EAAS,GAQb,OAPAypB,EAAMxnB,SAAQ,SAAU6F,GACpB,GAAIA,EAAK2hB,MAAO,CACZ,IAAI0rO,EAAqBD,EAAsBptP,EAAK2hB,MAAOkrO,EAAY7sP,EAAKxK,KAAMs3P,IAClF50P,EAASA,EAAO4S,OAAOuiP,GAE3BrtP,EAAK82G,UAAY5+G,EAAOgE,KAAK2wP,EAAY7sP,EAAKxK,KAAMs3P,OAEjD50P,EATI,CAUbypB,GAAOtnB,MAENnC,EAEP,IAAI1C,EAAO4gF,EAAuBwtK,kBAAkB9oP,EAAOiP,EAAQ,EAAGgiM,EAAK/qL,OAAO,iBAClF,OAAOxrB,IAKhB,SAAS83P,GAAMvhD,GAClB,OAAO,OAAAr4M,EAAA,WAAOk5P,GAAc7gD,GAAO,CAC/BlxM,KAAM,QACNqpD,KAAM,YACN/jD,QAAS,OAAoB7N,OAAO,0CAGrC,SAASi7P,GAAOxhD,GACnB,IAAIyhD,EAASZ,GAAc7gD,GAC3B,OAAO,OAAAr4M,EAAA,WAAO,GAAI85P,EAAQ,CACtBnoM,0BAA2B,SAAS5lC,EAAaxf,EAAOyrD,GACpD,IAAI+hM,EAAaD,EAAOnoM,0BAA0B5lC,EAAaxf,EAAOyrD,GACtE,OAAK+hM,GAAc,IAAMA,EAAW56P,OAG7B,MAAQ46P,EAAW,GAAKA,EAAa,CAAC,IAAKA,GAFvC,MAIf5yP,KAAM,SACNqpD,KAAM,cACN/jD,QAAS,OAAoB7N,OAAO,2CC9H5C,IAAIo7P,GAAwB,CAAC,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,cAAe,WAAY,aAAc,WAAY,WAC/GC,GAAuB,UACvBC,GAAuB,UAE3B,SAASC,GAAoB9jP,GACzB,OAAOA,EAAOlP,MAAQkP,EAAOM,UAGjC,SAASyjP,GAAevnO,GACpBA,EAAQpsB,QAAQ4P,IACZ,IAAI25E,EAAamqK,GAAoB9jP,GACrC,IAAK,eAAU25E,IAAe35E,EAAOxJ,eACjC,MAAM,IAAI,OAAOo0B,MAAM,QAAS5qB,EAAO5J,WAInD,IAAI4tP,GAAuB,EAAQ7yL,WAAW5C,QAAQ,WAClD,IAAI01L,EAAuB,WACvB,MAAO,CACHtoM,WAAYioM,GACZhoM,kBAAc,IAGlBsoM,EAAmC,SAASlkP,GAC5C,IAAI47C,EAAe57C,EAAO47C,cAAgB,GAC1C,OAAQ,QAAYpiC,iBAAiBxZ,MAAaA,EAAOokB,cAAgBpkB,EAAOokB,aAAa3L,aAAe,IAAMmjC,EAAa9yD,QAAU,OAAS8yD,EAAa,IAE/JuoM,EAA4B,SAASnkP,GACrC,IAAIjP,EAAQiP,EAAO0V,YACnB,GAAI,eAAU3kB,GAAQ,CAClB,IAAIinB,EAAYhY,EAAO4kB,yBAA2B5kB,EAAOshD,wBAA0B69L,GAAoBn/O,GACnG1S,EAAS,CAACw2P,GAAoB9jP,GAASgY,EAAWhY,EAAO0V,aAC7D,OAAOpoB,EAEP,OAAO,MAGX82P,EAA+B,SAASpkP,GACxC,IAAIqkP,EACAtzP,EACA6qD,EAAe57C,EAAO47C,aAC1B,OAAKA,GAGD,IAAMA,EAAa9yD,QAAUo7P,EAAiClkP,KAAYjS,MAAM0nB,QAAQmmC,EAAa,KACxDyoM,EAA7CrkP,EAAO27C,aAAekoM,GAA2C,KAA2B,IAC5F9yP,EAAQ6qD,EAAa,KAEwByoM,EAA7CrkP,EAAO27C,aAAekoM,GAA2C,SAA+B,QAChG9yP,EAAQ6qD,GAEL,CAACkoM,GAAoB9jP,GAASqkP,EAAmBtzP,IAT7C,MAWXuzP,EAA8B,SAASzuL,EAAmB71D,EAAQukP,GAClE,IAAIngO,EAAe,SAASmgO,EAAuBvkP,GAC/C,IAAKukP,EACD,OAAON,IAEX,IAAItoM,EACA/2B,EAA0B2/N,EAAsB,GAChDxzP,EAAQwzP,EAAsB,GAC9BC,EAAgBz2P,MAAM0nB,QAAQ1kB,GAClC,IAAKyzP,IACIN,EAAiClkP,GAClC,OAAOikP,IAGf,OAAQr/N,GACJ,IAAK,QACL,IAAK,IACD+2B,EAAaioM,GACb,MACJ,IAAK,SACL,IAAK,KACDjoM,EAAakoM,GACb,MACJ,QACI,OAAOI,IAEf,MAAO,CACHtoM,WAAYA,EACZC,aAAc4oM,EAAgBzzP,EAAQ,CAACA,IA3B5B,CA6BjBwzP,EAAuBvkP,GACzB61D,EAAkBkQ,aAAa+9K,GAAoB9jP,GAASokB,IAE5DqgO,EAA2B,SAAS5uL,EAAmB71D,EAAQolB,GAC/D,IAAIuvN,EACA/vN,EAA0B,OAASQ,QAAa,IAAWA,OAAY,EAASA,EAAU,GAC1F1P,EAAc,OAAS0P,QAAa,IAAWA,OAAY,EAASA,EAAU,GAC9Es2B,EAAmB17C,EAAO07C,kBAAoB17C,EAAOkyE,0BACnDx2B,GAAoBA,EAAiBluD,QAAQo3B,IAA4B,GAAKA,IAA4B5kB,EAAOshD,yBAA2BqiM,GAAsBn2P,QAAQo3B,IAA4B,GAAK,OAASlP,GAClNkP,IAA4B5kB,EAAOshD,wBAA2B,eAAUthD,EAAO4kB,2BAC/EA,EAA0B5kB,EAAO4kB,yBAErC+vN,EAAmB,CACfj/N,YAAaA,EACbkP,wBAAyBA,IAG7B+vN,EAAmB,CACfj/N,iBAAa,EACbkP,6BAAyB,GAGjCixC,EAAkBkQ,aAAa+9K,GAAoB9jP,GAAS20O,IAEhE,MAAO,CACH+P,gBAAiB,WACb,IAAI7xP,EAAO3D,KACP2mE,EAAoBhjE,EAAKs9D,cAAc,WACvC3zC,EAAUq5C,EAAkBymB,sBAChCptF,KAAKy1P,wBAAyB,EAC9BnoO,EAAQpsB,SAAQ,SAAU4P,GACtB,IAAI4kP,EAAmBnC,GAAqB5vP,EAAKokB,OAAO,eAAgB6sO,GAAoB9jP,IAC5F,GAAI,IAAM4kP,EAAiB97P,OAAQ,CAC/B,IAAI+7P,EAAkBD,EAAiB,GACvCN,EAA4BzuL,EAAmB71D,EAAQ6kP,GACvDJ,EAAyB5uL,EAAmB71D,EAAQ6kP,QAEpD,eAAU7kP,EAAO47C,eAAiB0oM,EAA4BzuL,EAAmB71D,GACjF,eAAUA,EAAO0V,cAAgB+uO,EAAyB5uL,EAAmB71D,MAGrF9Q,KAAKy1P,wBAAyB,GAElCG,UAAW,WACP,IAAItoO,EAAUttB,KAAKihE,cAAc,WAAWwG,aACxCwqB,EAAiBjyF,KAAKihE,cAAc,QACpC1F,EAAY02B,EAAe12B,YAE/B,GADAs5L,GAAevnO,IACVttB,KAAK+nB,OAAO,eAAgB,CAC7B,IAAI8tO,EAAmB71P,KAAKihE,cAAc,WAAWmsB,sBACjD5mE,EAAcxmB,KAAK8gI,0BAA0B+0H,GACjD71P,KAAK+nB,OAAO,cAAevB,GAE/BxmB,KAAKw1P,kBACLvjK,EAAe12B,UAAUA,IAE7BwE,KAAM,WACF,IAAIkyB,EAAiBjyF,KAAKihE,cAAc,QACpCgxB,EAAe6jK,uBACX91P,KAAKihE,cAAc,WAAWmrB,wBAC9BpsF,KAAK41P,YAEL3jK,EAAeiW,kBAAkB1zB,IAAI,IAAMx0E,KAAK41P,eAI5DG,kBAAmB,SAASvvO,EAAa1V,GACrC,IAAI1S,EAAS62P,EAA0BnkP,GACvC,OAAI,eAAU1S,GACHk1P,GAAY9sO,EAAapoB,GAEzB60P,GAAgCzsO,EAAaouO,GAAoB9jP,KAGhFklP,qBAAsB,SAASxvO,EAAa1V,GACxC,IAAI1S,EAAS82P,EAA6BpkP,GAC1C,OAAI1S,EACOk1P,GAAY9sO,EAAapoB,GAEzB60P,GAAgCzsO,EAAaouO,GAAoB9jP,KAGhFgwH,0BAA2B,SAASxzG,GAChC,IAAKttB,KAAKihE,cAAc,QAAQ60L,qBAC5B,OAAO,KAEX,IAAItvO,EAAc,CAAC,OAOnB,OANA8G,GAAWA,EAAQpsB,QAAQ4P,IACvB,IAAIokB,EAAeggO,EAA6BpkP,GAC5CyzC,EAAY0wM,EAA0BnkP,GAC1CokB,GAAgB,GAAQA,EAAc1O,GACtC+9B,GAAa,GAAQA,EAAW/9B,KAE7BkrO,GAAoBlrO,IAE/ByvO,cAAe,SAASnlP,EAAQjP,GAC5B7B,KAAK+nB,OAAO,cAAe/nB,KAAK+1P,kBAAkB/1P,KAAK+nB,OAAO,eAAgBjX,KAElFolP,iBAAkB,SAASplP,GACvB9Q,KAAK+nB,OAAO,cAAe/nB,KAAKg2P,qBAAqBh2P,KAAK+nB,OAAO,eAAgBjX,KAErFqlP,0BAA2B,WACvB,IAAIC,EAAgCp2P,KAAK+nB,OAAO,mCAAqC,GACrF,MAAO,CAACssO,GAAMr0P,KAAK+M,WAAYunP,GAAOt0P,KAAK+M,YAAY8E,OAAOukP,IAElEp2L,cAAe,WACX,MAAO,CAAC,+BA7KkC,IAiLlDq2L,GAAmC,CACnCP,mBAAoB,WAChB,IAAIQ,EAAyBt2P,KAAK+nB,OAAO,qBACzC,MAAO,SAAWuuO,EAAyBt2P,KAAK+nB,OAAO,uBAAyBuuO,GAEpFrQ,2BAA4B,WACxB,OAAO,eAAUjmP,KAAK+nB,OAAO,iBAAmB/nB,KAAK81P,sBAEzD90J,2BAA4B,WACxB,IAAI,IAAUhhG,KAAK+nB,OAAO,6BACtB,OAAO/nB,KAAKC,WAEhB,IAAI4oB,EAAU,CAAC7oB,KAAKC,YAChBqtB,EAAUttB,KAAKihE,cAAc,WAAWmsB,sBACxC5mE,EAAcxmB,KAAK+nB,OAAO,eAC9B,GAAI/nB,KAAK81P,qBAAsB,CAC3B,IAAIzwK,EAAgBrlF,KAAKihE,cAAc,gBAAgBoqL,mBACnDhmK,GAAiB7+D,IACjBA,EAAcysO,GAAgCzsO,EAAaouO,GAAoBvvK,KAGvF,IAAI7yB,EAAmBxyD,KAAKihE,cAAc,cAAck1L,4BACpDI,EAAwB/E,GAAoBhrO,EAAa8G,EAASklC,EAAkB,iBAIxF,OAHI+jM,GACA1tO,EAAQ5lB,KAAKszP,GAEV,OAAc3tO,eAAeC,IAExC2tO,yBAA0B,SAAS/qK,GAC/B,IAAIgrK,EAAUhrK,EAASp5D,MAAM,YAC7B,OAAIokO,EACOA,EAAQ,GAER,MAGfzgM,YAAa,SAAS6xC,GAClB7nG,KAAK+M,UAAUkzD,cACX//D,UAAUtG,OAAS,GACf,gBAAkBiuG,GAClB7nG,KAAK+nB,OAAO,cAAe,MAE/B/nB,KAAKC,SAAS4nG,KAEd7nG,KAAK+nB,OAAO,cAAe,MAC3B/nB,KAAKC,YAETD,KAAK+M,UAAUmzD,aAEnBM,cAAe,SAAS3hB,GACpB,OAAQA,EAAKj9C,MACT,IAAK,cACD5B,KAAKuhG,eACLvhG,KAAK81P,sBAAwB91P,KAAKihE,cAAc,cAAcu0L,kBAC9D32M,EAAK6hB,SAAU,EACf,MACJ,IAAK,oBACD7hB,EAAK6hB,SAAU,EACf,MACJ,IAAK,UACD,GAAI1gE,KAAK81P,qBAAsB,CAC3B,IAAIhlP,EAAS9Q,KAAKihE,cAAc,WAAW8nB,gBAAgBlqC,EAAK4sC,UAC5Dm1C,EAAuB5gI,KAAKihE,cAAc,cAC9C,GAAInwD,IAAW8vH,EAAqB60H,uBAAwB,CACxD,IAAIhyC,EAAezjN,KAAKw2P,yBAAyB33M,EAAK4sC,UACtDm1C,EAAqB60H,wBAAyB,EAC1C,eAAiBhyC,EACbkxC,KAAyB91M,EAAKh9C,OAAS8yP,KAAyB91M,EAAK2sC,eACrEo1C,EAAqBs1H,iBAAiBplP,GAEnC,iBAAmB2yM,EAC1B7iF,EAAqBs1H,iBAAiBplP,GAC/B,CAAC,cAAe,2BAA2BxS,QAAQmlN,IAAiB,GAC3E7iF,EAAqBq1H,cAAcnlP,EAAQA,EAAO0V,aAEtDo6G,EAAqB60H,wBAAyB,GAGtDz1P,KAAKC,SAAS4+C,GACd,MACJ,QACI7+C,KAAKC,SAAS4+C,MAI1B63M,GAAsC,CACtC/M,qBAAsB,SAAS74O,GAC3B,OAAI9Q,KAAKihE,cAAc,QAAQ60L,sBACnBtC,GAAexzP,KAAK+nB,OAAO,eAAgB6sO,GAAoB9jP,IAEpE9Q,KAAKC,SAAS6Q,IAEzBi7O,4BAA6B,WACzB,OAAQ/rP,KAAKihE,cAAc,QAAQ60L,sBAEvCt1L,cAAe,SAAS3hB,GAChB,gBAAkBA,EAAKj9C,KACvB5B,KAAK8rP,gCAEL9rP,KAAKC,SAAS4+C,KAIf83M,GAAmB,CAC1Bh5P,eAAgB,WACZ,MAAO,CACH6oB,YAAa,KACbg+B,kBAAmB,SAG3BqgB,YAAa,CACT+xL,WAAY9B,IAEhB7vL,UAAW,CACPJ,YAAa,CACT1+D,KAAMkwP,IAEVtxL,MAAO,CACH+W,kBAAmB46K,MCxU/B,EAAKjxL,eAAe,aAAckxL,ICkDlC,IAAI,GAAuB,mBACvBE,GAA6B,GAAuB,SACpDC,GAAkCD,GAA6B,QAC/DE,GAAqCF,GAA6B,WAClEG,GAAwCH,GAA6B,cACrEI,GAAuCJ,GAA6B,aACpEK,GAA8B,GAAuB,UACrDC,GAA6BD,GAA8B,QAC3DE,GAAiC,eACjCC,GAAoC,iBACpC,GAAiC,GAAuB,QACxDC,GAAkC,GAAuB,cACzDC,GAAsC,GAAuB,kBAC7DC,GAAkC,GAAuB,cACzDC,GAAuC,GAAuB,mBAC9DC,GAA+B,GAAuB,WACtDC,GAAyC,GAAuB,cAChEC,GAA8B,GAAuB,UACrDC,GAAqC,GAAuB,iBAC5DC,GAAe,kBACfC,GAA6C,GAAuB,yBACpEC,GAAS,gBACTC,GAAuB,oBACvBC,GAAU,MACVC,GAAY,QACZC,GAAa,SACb,GAAU,CAAC,CACXx2P,KAAM,oBACNu/D,OAAQ,CACJgT,kBAAmB,CAAC,WAAY,YAChCC,SAAU,cAEf,CACCxyE,KAAM,mBACNu/D,OAAQ,CACJgT,kBAAmB,CAAC,WAAY,YAChCC,SAAU,cAEf,CACCxyE,KAAM,iBACNu/D,OAAQ,CACJgT,kBAAmB,CAAC,WAAY,eAGpCkkL,GAAY,CACZ3+L,IAAK,MACLzoE,GAAI,KACJ0oE,OAAQ,OACRC,MAAO,OAEP,GAAgB,OAAMyF,QAAQ,IAC9Bi5L,GAAgB,OAAOj5L,QAAQ,CAC/Bu2C,mBAAoB,WAChB,OAAO,OAAAn7G,EAAA,WAAOuF,KAAKC,WAAY,CAC3BomD,kBAAmB,KACnBD,iBAAkB,KAClB4M,eAAgB,KAChBP,OAAQ,GACRG,gBAAiB,CAAC,MAAO,KAAM,SAAU,SACzCC,mBAAe,EACfhxD,MAAO,KACPywD,yBAAyB,EACzBK,2BAA4B,CACxB+G,IAAK,OAAoBrgE,OAAO,uBAChCpI,GAAI,OAAoBoI,OAAO,sBAC/BsgE,OAAQ,OAAoBtgE,OAAO,0BACnCugE,MAAO,OAAoBvgE,OAAO,0BAEtCm5D,iBAAkB,GAClB+lM,0BAA0B,EAC1B7lM,4BAA6B,CACzBuC,QAAS,OAAoB57D,OAAO,0CACpC+7D,MAAO,OAAoB/7D,OAAO,yCAClCu8D,SAAU,OAAoBv8D,OAAO,4CACrCo8D,SAAU,OAAoBp8D,OAAO,uCACrCq8D,gBAAiB,OAAoBr8D,OAAO,+CAC5Cg8D,YAAa,OAAoBh8D,OAAO,0CACxCi8D,mBAAoB,OAAoBj8D,OAAO,kDAC/Cw8D,WAAY,OAAoBx8D,OAAO,6CACvC67D,SAAU,OAAoB77D,OAAO,2CACrCs8D,YAAa,OAAoBt8D,OAAO,8CACxC87D,SAAU,OAAoB97D,OAAO,2CACrCk8D,QAAS,OAAoBl8D,OAAO,0CACpCm8D,WAAY,OAAoBn8D,OAAO,iDAInD8jH,eAAgB,SAASt+D,GACrB,OAAQA,EAAKj9C,MACT,IAAK,2BACD,MACJ,IAAK,oBACL,IAAK,mBACL,IAAK,iBACD5B,KAAK82G,eACL,MACJ,IAAK,mBACD92G,KAAKw4P,wBACLx4P,KAAK4iE,cACL,MACJ,IAAK,SACL,IAAK,gBACL,IAAK,kBACL,IAAK,0BACL,IAAK,6BACL,IAAK,8BACD5iE,KAAK4iE,cACL,MACJ,IAAK,QACD,GAAI/jB,EAAKh9C,QAAUg9C,EAAK2sC,cAAe,CACnC,IAAIitK,EAA4Bz4P,KAAK04P,2BAChCD,IACDz4P,KAAK24P,aACL34P,KAAK4iE,eAET5iE,KAAK04P,4BAA6B,EAClC14P,KAAKwhE,cAAc,iBAAkB,CACjC3/D,MAAOg9C,EAAKh9C,MACZ2pF,cAAe3sC,EAAK2sC,gBAExBxrF,KAAK04P,2BAA6BD,EAEtC,MACJ,QACIz4P,KAAKC,SAAS4+C,KAG1B2yM,oBAAqB,WACjB,IAAI/+L,EAASzyD,KAAK44P,uBACd/2P,EAAQ,OAAApH,EAAA,YAAO,EAAM,GAAIuF,KAAK64P,QAClC,OAAO,GAAqBnH,GAAoB7vP,GAAQ4wD,EAAQzyD,KAAK84P,kBAAmBd,KAE5FY,qBAAsB,WAClB,OAAOxH,GAAoBpxP,KAAK+nB,OAAO,YAE3CgxO,cAAe,WACX/4P,KAAK04P,4BAA6B,EAClC,IAAI72P,EAAQ,OAAApH,EAAA,YAAO,EAAM,GAAIuF,KAAK64P,QAC9B5V,EAAkByO,GAAoB7vP,GACtCgwE,EAAW6/K,GAAoB1xP,KAAKg5P,UAAUh5P,KAAK+nB,OAAO,WAC1DhtB,KAAKC,UAAU62E,KAAc92E,KAAKC,UAAUioP,IAC5CjjP,KAAK+nB,OAAO,QAASk7N,GAEzBjjP,KAAK04P,4BAA6B,EAClC14P,KAAKmsH,2BAETvV,MAAO,WACH52G,KAAKw4P,wBACLx4P,KAAK24P,aACL34P,KAAKi5P,qBACLj5P,KAAK82G,eACL92G,KAAKC,YAETg5P,mBAAoB,WAChBj5P,KAAK6sP,eAAiB,IAAI,IAE9B2L,sBAAuB,WACnBx4P,KAAK84P,kBAAoBlG,GAAoB5yP,KAAK+nB,OAAO,oBAAqB/nB,KAAK+nB,OAAO,uCAAwC/nB,OAEtIk5P,0BAA2B,WACvB,IAAIC,EAAe5+C,EACnB,OAAO,QAAU4+C,EAAgB,QAAU5+C,EAAev6M,KAAK+nB,OAAO,0BAAuB,IAAWwyL,OAAe,EAASA,EAAa,UAAO,IAAW4+C,EAAgBA,EAAgBd,GAAU3+L,KAE7Ms/L,UAAW,SAASn3P,GAChB,OAAOkvP,GAAwBlvP,EAAO7B,KAAK84P,kBAAmB94P,KAAKk5P,8BAEvEP,WAAY,WACR34P,KAAK64P,OAAS74P,KAAKg5P,UAAUh5P,KAAK+nB,OAAO,WAE7C+uF,aAAc,WACV,IAAInzG,EAAO3D,KACX2D,EAAK87D,SAAW,GAChB,GAAQv+D,SAAQ,SAAUkgE,GACtB,IAAIg4L,EAAe,OAAA3+P,EAAA,WAAO,GAAI2mE,EAAOD,QACrCx9D,EAAK87D,SAAS2B,EAAOx/D,MAAQ+B,EAAK49D,sBAAsBH,EAAOx/D,KAAMw3P,OAG7E53L,cAAe,SAASZ,EAAY5vD,GAChC,IAAIowD,EAASphE,KAAKy/D,SAASmB,GAC3B,OAAOQ,GAAUA,EAAOpwD,IAE5BsnG,YAAa,WACTt4G,KAAKgmB,WAAWsB,SAAS,IACzBtnB,KAAKC,WACLD,KAAKq5P,8BAA8Br5P,KAAK64P,QAAQtxO,SAASvnB,KAAKgmB,aAElEszO,wBAAyB,SAASpjO,EAAWhI,GACzC,OAAO,eAAE,SAAS5G,SAASuvO,IAA4BjtN,OAAO5pC,KAAKu5P,qBAAqBrjO,EAAWhI,KAEvGmrO,8BAA+B,SAASzK,EAAU1gO,GAK9C,IAJA,IAAI8kH,EAAa9yI,UAAUtG,OAAS,QAAK,IAAWsG,UAAU,GAAKA,UAAU,GAAK,EAC9EmuN,EAASruN,KAAKw5P,oBAAoB5K,EAAU1gO,EAAQ8kH,GACpDs7E,EAAgBD,EAAOpnM,KAAK,IAAM8vO,IAClC0C,EAAgB/K,GAAiBE,GAC5BnzP,EAAI,EAAGA,EAAIg+P,EAAc7/P,OAAQ6B,IAAK,CAC3C,IAAIi+P,EAAgBD,EAAch+P,GAC9B,GAAQi+P,GACR15P,KAAKq5P,8BAA8BK,EAAe9K,EAAU57G,EAAa,GAAGzrH,SAAS+mM,GAC9EmgC,GAAYiL,IACnB15P,KAAKs5P,wBAAwBI,EAAe9K,GAAUrnO,SAAS+mM,GAGvE,OAAOD,GAEXmrC,oBAAqB,SAAS5K,EAAU1gO,EAAQ8kH,GAC5C,IAAI2mH,EAAa,eAAE,SAASryO,SAASwvO,IACjCxoC,EAAgB,eAAE,SAAShnM,SAASyvO,IACpC1oC,EAAS,eAAE,SAAS/mM,SAASuvO,IAA4BjtN,OAAO+vN,GAAY/vN,OAAO0kL,GAqBvF,OApBI,MAAQpgM,GACRluB,KAAK45P,oBAAoB,KACrBxJ,GAAWliO,EAAQ0gO,GACnBvgC,EAAOvmM,SACP9nB,KAAK+4P,kBACNxxO,SAASoyO,GAEhB35P,KAAK65P,4BAA4BjL,GAAUrnO,SAASoyO,GACpD35P,KAAK85P,iBAAiB,KAClB,IAAIC,EAAW1J,GAAiBrwP,KAAKk5P,6BACrC,GAAQa,EAAUnL,GAClB5uP,KAAKw5P,oBAAoBO,EAAUnL,EAAU57G,EAAa,GAAGzrH,SAAS+mM,GACtEtuN,KAAK+4P,iBACN,KACC,IAAI/xP,EAAQhH,KAAK+nB,OAAO,UAAU,GAC9BiyO,EAAe9J,GAAgBlpP,EAAOhH,KAAK84P,mBAC/C,GAAQkB,EAAcpL,GACtB5uP,KAAKs5P,wBAAwBU,EAAcpL,GAAUrnO,SAAS+mM,GAC9DtuN,KAAK+4P,iBACN/lH,GAAYzrH,SAASoyO,GACjBtrC,GAEX97B,cAAe,SAASrrL,GACpB,OAAO,eAAE,SAAS3K,KAAK2K,IAE3B2yP,4BAA6B,SAASjL,GAClC,IAAIh8L,EAAkB5yD,KAAKi6P,oBAAoBrL,GAC3CsL,EAAgBnL,GAAiBH,EAAUh8L,GAC3C1rD,EAAUgzP,EAAc39P,KACxB49P,EAAmBvnM,GAAmBA,EAAgBh5D,OAAS,EAAIoG,KAAKuyL,cAAcrrL,GAASogB,SAAS2wO,IAAwBj4P,KAAKo6P,sBAAsB,CAC3JlzP,QAASA,EACT+9O,KAAM,CACFv8N,MAAOkqC,EACP5iC,YAAa,OACbo1B,QAAS,QACTu6B,YAAa/7E,IACLs2P,IAAkBt2P,EAAEk8E,WACpBgvK,GAAcF,EAAUhrP,EAAEk8E,SAASj+E,OACnCs4P,EAAiB59P,KAAKqH,EAAEk8E,SAASvjF,MACjC29P,EAAgBt2P,EAAEk8E,SAClB9/E,KAAK+4P,kBAGblzM,eAAgB,SAASjiD,GACrBA,EAAEmJ,UAAUypG,WAAW0jJ,IAE3BlvM,SAAUgsM,MAGlB,OAAOmD,EAAiB7yO,SAAS,IAAgCA,SAAS2vO,IAAsCj2L,KAAK,WAAY,IAErIo5L,sBAAuB,SAASppP,GAC5B,IAmCIsyG,EAnCA3/G,EAAO3D,KACPq6P,EAAa,WACb12P,EAAKqiB,WAAWiB,KAAK,IAAM6wO,IAActwO,YAAYswO,IACrDn0P,EAAKqiB,WAAWiB,KAAK,4BAA4Ba,SACjDnkB,EAAKqiB,WAAWiB,KAAK,eAAea,UAEpCuD,EAAarrB,KAAK+nB,OAAO,cACzBysC,EAAWnpC,EAAa,QAAU,OAClCisG,EAAUt3H,KAAKuyL,cAAcvhL,EAAQ9J,SAgDzC,OA/CA,OAAAzM,EAAA,WAAOuW,EAAQi0O,KAAM,CACjBpgM,mBAAmB,EACnBkxE,cAAe,SACfp2C,aAAc2jC,EAAUtyG,EAAQi0O,KAAKtlK,YAAa,SAAS/7E,GACvD0/G,EAAQ1/G,GACJ,YAAcA,EAAE09D,MAAM7iE,MACtB47P,MAGRpmM,SAAU,SAASrwD,GACf0zH,EAAQ9vG,YAAYswO,KAExBtjM,SAAU,CACNoH,GAAIpH,EAAW,OACfkH,GAAIlH,EAAW,UACfppC,OAAQ,MACR9C,GAAIgvG,EACJ9uG,UAAW,QAEf0qC,UAAW,KACXc,SAAU,WACNqmM,KAEJrvM,SAAU0sM,GAA+B,IAAM1mP,EAAQi0O,KAAKj6L,SAC5D3/B,WAAYA,IAGhBra,EAAQu/C,MAAQ,CACZ+D,QAAS,SAASmxJ,GACd,IAAI60C,EAAkB,eAAE70C,EAAK14M,UAAUk8D,WAAWhiD,KAAK,gBACnDszO,EAAWD,EAAgBE,WAAW,YAC1C,OAAan1P,GAAGi1P,EAAiB,iBAAiB,SAAU12P,GACxD,IAAI+kB,EAAU,gBAAiB/kB,IAC3B,YAAcA,EAAEnF,MAAQkqB,IAAYuvO,IAAW,UAAYt0P,EAAEnF,OAASkqB,IAAYyvO,IAAczvO,IAAYwvO,OAC5G1yC,EAAK14M,UAAUy9C,OACf,OAAa19B,QAAQ9b,EAAQi0O,KAAKzwL,SAASlsC,GAAI,aAGvDiyO,EAASvnP,QACTunP,EAASxyO,OAAO,iBAAkB,QAG1C/nB,KAAKy6P,6BAA6BnjI,GAAS,WACvC+iI,IACA12P,EAAK+2P,yBAAyB1pP,EAASrN,EAAKqiB,YAC5CsxG,EAAQhwG,SAASwwO,OAEdxgI,GAEXqjI,gBAAiB,SAASzkO,GACtB,IAAI+8B,EAAkB08L,GAAmB3vP,KAAK84P,kBAAmB5iO,EAAU,IAC3E,OAAO+8B,GAAkB,IAAUA,EAAgBvD,SAAW,OAASx5B,EAAU,IAErF0kO,+BAAgC,SAAS1kO,EAAWlvB,GAChD,IAAIrD,EAAO3D,KACP0vP,EAAsBG,GAAuB7oP,EAAOhH,KAAK+nB,OAAO,+BAAgC/nB,KAAK84P,mBACrG+B,EAAmBpL,GAA0BkD,GAAkBz8N,GAAYw5N,GAC3EyK,EAAmBn6P,KAAKo6P,sBAAsB,CAC9ClzP,QAAS2zP,EAAiBt+P,KAC1B0oP,KAAM,CACFv8N,MAAOgnO,EACP1/N,YAAa,OACbmmG,eAAgB,SAASvyH,GACrBA,EAAEk8E,SAASkwK,UAAY,eAAEpsP,EAAEm2G,aAAazyF,SAASywO,KAErDlyM,eAAgB,SAASjiD,GACrBA,EAAEmJ,UAAUypG,WAAWqkJ,IAE3Bl7K,YAAa/7E,IACT,GAAIi3P,IAAqBj3P,EAAEk8E,SAAU,CACjC+6K,EAAmBj3P,EAAEk8E,SACrBqwK,GAA2Bj6N,EAAW2kO,EAAiBh5P,MAAO8B,EAAKm1P,mBACnE,IAAIgC,EAAeX,EAAiBt0I,WAAWznH,OAAO,IAAMo5P,IACxD7zP,EAAKg3P,gBAAgBzkO,IACjB,IAAM4kO,EAAalhQ,QACnBkhQ,EAAahzO,SAEjBnkB,EAAKo3P,mBAAmB7kO,EAAWlvB,GAAOugB,SAAS4yO,EAAiBjsO,WAEpE4sO,EAAahzO,SAEjBqyO,EAAiB//L,KAAKygM,EAAiBt+P,MACvCyD,KAAK+4P,kBAGb/tM,SAAU2sM,MAEfrwO,SAAS,IAAgCA,SAASiwO,IAAqCv2L,KAAK,WAAY,GAC3G,OAAOm5L,GAEXa,gCAAiC,SAAS9kO,EAAWlvB,EAAOmkG,GACxDnrG,KAAK46P,+BAA+B1kO,EAAWlvB,GAAOugB,SAAS4jF,GAC3DnrG,KAAK26P,gBAAgBzkO,IACrBl2B,KAAK+6P,mBAAmB7kO,EAAWlvB,GAAOugB,SAAS4jF,IAG3D8vJ,2BAA4B,SAASxoM,EAAQv8B,EAAWlvB,GACpD,IAAIrD,EAAO3D,KACPsyD,EAA0BtyD,KAAK+nB,OAAO,2BACtCW,EAAQm6K,GAASpwI,EAAQH,GACzBvrD,EAAO2pP,GAAS1pP,EAAMpF,MAAQoF,EAAMoK,UAAWsX,GAC/CwyO,EAAiB,SAASn0P,EAAM2hB,GAChC,OAAO4pC,EAA0BogM,GAAsB3rP,EAAM2hB,GAAS3hB,EAAKG,SAE3Ei0P,EAAen7P,KAAKo6P,sBAAsB,CAC1ClzP,QAASg0P,EAAen0P,EAAM2hB,GAC9Bu8N,KAAM,CACFv8N,MAAOA,EACP6iH,cAAe,QACfnmF,QAAS,KACTukF,SAAU,WACV35G,YAAa,UACb2vD,YAAa/7E,IACT,GAAImD,IAASnD,EAAEk8E,SAAU,CACrB/4E,EAAOnD,EAAEk8E,SACT5pD,EAAU,GAAKnvB,EAAKnF,MAAQmF,EAAKqK,UACjC8kB,EAAU,GAAK,WAAanvB,EAAKqd,SAAW,KAAO,GACnD+rO,GAA2Bj6N,EAAW+5N,GAAoBlpP,GAAOpD,EAAKm1P,mBACtEqC,EAAat1I,WAAWznH,OAAO,IAAM,IAAgC0pB,SACrEnkB,EAAKq3P,gCAAgC9kO,EAAWnvB,EAAMo0P,EAAajtO,UACnE,IAAIhnB,EAAUg0P,EAAen0P,EAAMnD,EAAEmJ,UAAUgb,OAAO,UACtDozO,EAAa/gM,KAAKlzD,GAClBlH,KAAK+4P,kBAGblzM,eAAgB,SAASjiD,GACrBA,EAAEmJ,UAAUypG,WAAWzvG,IAE3BikD,SAAU4sM,MAEftwO,SAAS,IAAgCA,SAASgwO,IAAiCt2L,KAAK,WAAY,GACvG,OAAOm6L,GAEX5B,qBAAsB,SAASrjO,EAAWhI,GACtC,IAAIi9E,EAAQ,eAAE,SAAS7jF,SAASwvO,IAC5BrkM,EAASzyD,KAAK44P,uBACd5xP,EAAQ0pP,GAASx6N,EAAU,GAAIu8B,GAanC,OAZAzyD,KAAK45P,oBAAoB,KACrBxJ,GAAWliO,EAAQgI,GACnB,IAAIklO,EAAgB,IAAMjwJ,EAAMj9E,SAASm5C,WAAWztE,OAChDwhQ,EACAjwJ,EAAMj9E,SAASpG,SAEfqjF,EAAMrjF,SAEV9nB,KAAK+4P,kBACNxxO,SAAS4jF,GACZnrG,KAAKi7P,2BAA2BxoM,EAAQv8B,EAAWlvB,GAAOugB,SAAS4jF,GACnEnrG,KAAKg7P,gCAAgC9kO,EAAWlvB,EAAOmkG,GAChDA,GAEX8uJ,oBAAqB,SAASrL,GAC1B,IAAIh8L,EAAkB5yD,KAAK+nB,OAAO,mBAC9B4qC,EAA6B3yD,KAAK+nB,OAAO,8BAI7C,OAHK6qC,GAAoBA,EAAgBh5D,SACrCg5D,EAAkB,CAACs8L,GAAcN,GAAUzzP,QAAQ,IAAK,SAErDy3D,EAAgB92D,IAAIgtB,IAAa,CACpCvsB,KAAMo2D,EAA2B7pC,GACjCjnB,MAAOw2P,GAAUvvO,OAGzB8wO,oBAAqB,SAASt2I,GAC1B,IAAI+3I,EAAgB,eAAE,SAAS/zO,SAAS6vO,IAA4B7vO,SAAS+vO,IAAmC/vO,SAAS4vO,IAA6Bl2L,KAAK,WAAY,GAEvK,OADAhhE,KAAKy6P,6BAA6BY,EAAe/3I,GAC1C+3I,GAEXvB,iBAAkB,SAASwB,EAAiBC,EAAqBvoH,GAC7D,IAAI1b,EACAzkE,EAAgB7yD,KAAK+nB,OAAO,iBAsBhC,OArBI,eAAU8qC,IAAkBmgF,GAAcngF,GAC1CykE,EAAUt3H,KAAKuyL,gBACfvyL,KAAKy6P,6BAA6BnjI,EAASikI,IAE3CjkI,EAAUt3H,KAAKo6P,sBAAsB,CACjCnV,KAAM,CACFv8N,MAAO,CAAC,CACJxhB,QAAS,OAAoB7N,OAAO,gCACpCk1K,MAAOgtF,GACR,CACCr0P,QAAS,OAAoB7N,OAAO,4BACpCk1K,MAAO+sF,IAEXtrO,YAAa,UACb2vD,YAAa,SAAS/7E,GAClBA,EAAEk8E,SAASyuF,SAEfvjH,SAAU6sM,MAIfvgI,EAAQhwG,SAAS6vO,IAA4B7vO,SAAS8vO,IAAgC9vO,SAAS4vO,IAA6Bl2L,KAAK,WAAY,IAExJw6L,iBAAkB,SAASz0P,EAAMC,EAAO8d,GACpC,IAAInhB,EAAO3D,KACPy7P,EAAQ,eAAE,SAASrhM,KAAK,UAAU9yC,SAASmwO,IAAsCz2L,KAAK,WAAY,GAAGz5C,SAASzC,GAC9GjjB,EAAQkF,EAAK,GACbksD,EAAkB08L,GAAmBhsP,EAAKm1P,kBAAmB/xP,EAAK,IAgBtE,OAfKksD,GAAmBjsD,EAAM+iB,OAC1B+nO,GAA0B9qP,EAAOnF,GAAO,SAAU5C,GAC9Cw0P,GAAgBgI,EAAOx8P,MAG3B,kBAAKkzP,GAAoBnrP,EAAOnF,EAAOoxD,IAAkB9lC,KAAKluB,IAC1Dw0P,GAAgBgI,EAAOx8P,EAAQg0D,KAGvCtvD,EAAK82P,6BAA6BgB,GAAO,SAAU73P,GAC3C,UAAYA,EAAEnF,MACdmF,EAAEy1G,kBAEN11G,EAAK+3P,6BAA6B30P,EAAMC,EAAO8d,MAE5C22O,GAEXE,sBAAuB,SAAS50P,EAAMlF,EAAOmD,GACzC,IAAI42P,EAAqB70P,EAAK,KAAOlF,EACjC+5P,IACA70P,EAAK,GAAKlF,GAEdmD,IACAhF,KAAK+4P,iBAET8C,kBAAmB,SAASl0H,EAASrkB,GACjC,IAAIw4I,GAAc,EACdC,GAA0B,EAC1BlhO,EAAW,aAAWo0C,cACtB+sL,EAAuBp4P,IACnBk4P,GAAeC,EACfA,GAA0B,EAG9Bz4I,EAAQ1/G,IAEZ,OAAayB,GAAGw1B,EAAU,QAASmhO,GACnC,IAAIjpP,EAAQ40H,EAAQ1gH,KAAK,SACzB,OAAa5hB,GAAG0N,EAAO,mBAAoB,KACvC+oP,GAAc,IAElB,OAAaz2P,GAAG0N,EAAO,iBAAkB,KACrC+oP,GAAc,EACdC,GAA0B,IAE9B,OAAa12P,GAAG0N,EAAO,UAAWuuD,IAC1B,MAAQA,EAAM7mC,QACdshO,GAA0B,KAGlC/7P,KAAKi8P,sBAAwBD,GAEjCE,kBAAmB,SAASv0H,EAASw0H,GACjC,IAAIthO,EAAW,aAAWo0C,cACtBmtL,EAAuBx4P,IAClB5D,KAAKq8P,sBAAsB10H,EAAS/jI,EAAE0hB,UACvC,OAAawH,QAAQ66G,EAAQ1gH,KAAK,SAAU,UAC5Ck1O,MAGR,OAAa92P,GAAGw1B,EAAU,gBAAiBuhO,GAC3Cp8P,KAAKs8P,sBAAwBF,GAEjCC,sBAAuB,SAAS10H,EAASriH,GACrC,IAAIi3O,EAAgBj3O,GAAU,aAAWuoG,mBACzC,OAAO,eAAE0uI,GAAetvO,QAAQ06G,EAAQtgE,YAAYztE,QAAU,eAAE2iQ,GAAetvO,QAAQ,8BAA8BrzB,QAEzH4iQ,cAAe,WACX,IAAI3hO,EAAW,aAAWo0C,cAC1B,eAAUjvE,KAAKi8P,wBAA0B,OAAa17L,IAAI1lC,EAAU,QAAS76B,KAAKi8P,uBAClF,eAAUj8P,KAAKs8P,wBAA0B,OAAa/7L,IAAI1lC,EAAU,gBAAiB76B,KAAKs8P,wBAE9Fx9H,SAAU,WACN9+H,KAAKw8P,gBACLx8P,KAAKC,YAETy7P,6BAA8B,SAAS30P,EAAMC,EAAO8d,GAChD,IAAIjjB,EAAQkF,EAAK,GACb01P,EAAkB,KAClB33O,EAAW48C,QACX1hE,KAAKw8P,gBACEx8P,KAAKw7P,iBAAiBz0P,EAAMC,EAAO8d,IAE1CivO,EAAc,KACd/zP,KAAK27P,sBAAsB50P,EAAMlF,GAAO,WACpC46P,QAGJzrP,EAAU,CACVnP,MAAO,KAAOA,EAAQ,KAAOA,EAC7BwrP,gBAAiBsF,GAAkB5rP,GACnCmhI,SAAU,SAAS/hI,GACftE,EAAQ,OAASsE,EAAO,GAAKA,GAEjC4tP,YAAaA,EACbx3P,KAAMuoB,EAAWvoB,QAErBuoB,EAAW48C,QACX,IAAIimE,EAAU3nI,KAAK08P,mBAAmB53O,EAAY9d,EAAOgK,GACzD,OAAa8b,QAAQ66G,EAAQ1gH,KAAK,SAAS8oD,IAAI,WAAWvkD,GAAG,GAAI,SACjExrB,KAAKw8P,gBACLx8P,KAAKk8P,kBAAkBv0H,EAASosH,GAChC/zP,KAAK67P,kBAAkBl0H,EAAS/jI,IAC5B,IAAI+kB,EAAU,gBAAiB/kB,GAC/B,GAAI+kB,IAAYuvO,GAAS,CACrB,GAAIl4P,KAAKq8P,sBAAsB10H,GAC3B,OAEJ3nI,KAAK27P,sBAAsB50P,EAAMlF,GAAO,WACpC46P,IACI74P,EAAE84E,UACF,OAAa5vD,QAAQhI,EAAWpY,OAAQ,YAIhDic,IAAYyvO,IACZ,OAAatrO,QAAQ2vO,IAAmB,SAExC9zO,IAAYwvO,IACZn4P,KAAK27P,sBAAsB50P,EAAMlF,GAAO,WACpC,OAAairB,QAAQ2vO,IAAmB,cAIpDz8P,KAAKmsH,2BAET4uI,mBAAoB,SAASh0P,EAAMC,GAC/B,IAAI8zP,EAAe,eAAE,SAASxzO,SAAS,IAAgCA,SAASkwO,IAEhF,OADAx3P,KAAKw7P,iBAAiBz0P,EAAMC,EAAO8zP,GAC5BA,GAEX4B,mBAAoB,SAAS53O,EAAY9d,EAAOgK,GAC5C,IAAI22H,EAAU,eAAE,SAAS3mE,KAAK,WAAY,GAAGz5C,SAASzC,GAClDmuC,EAAkB08L,GAAmB3vP,KAAK84P,kBAAmB9nP,EAAQq8O,iBACrE59L,EAAiBwD,GAAmBA,EAAgBxD,eAAiBwD,EAAgBxD,eAAiBzoD,EAAMyoD,eAChH,GAAIA,EAAgB,CAChB,IAAItE,EAAWnrD,KAAK2jE,aAAalU,GACjCtE,EAAShnD,OAAO,CACZW,MAAO,OAAArK,EAAA,WAAO,CACVuM,MAAOA,GACRgK,GACHmX,UAAWw/G,SAGf3nI,KAAK6sP,eAAe7kH,aAAaxiH,KAAKxlB,KAAM2nI,EAAS,OAAAltI,EAAA,WAAO,GAAIuM,EAAOgK,EAAS,CAC5Ei3H,WAAY+vH,MAGpB,OAAOrwH,GAEX+yH,yBAA0B,SAAS1pP,EAAS8T,GACxC,IAAInhB,EAAO3D,KACPy3H,EAAS,eAAE,SAASnwG,SAAStW,EAAQi0O,KAAKj6L,UAAUzjC,SAASzC,GACjE9kB,KAAKooB,iBAAiBqvG,EAAQ,QAAO,CACjCziE,YAAa,CACT2nM,MAAO3rP,EAAQi0O,KAAKj6L,UAExBiJ,SAAUjjD,EAAQi0O,KAAKhxL,SACvBD,SAAUhjD,EAAQi0O,KAAKjxL,SACvB3oC,WAAYra,EAAQi0O,KAAK55N,WACzBmpC,SAAUxjD,EAAQi0O,KAAKzwL,SACvBtB,UAAWliD,EAAQi0O,KAAK/xL,UACxBE,gBAAiB,SAAS+6C,GACtB,IAAIyuJ,EAAiB,eAAE,SAASr1O,SAAS4mF,GACzCxqG,EAAKykB,iBAAiBw0O,EAAgB,cAAU5rP,EAAQi0O,MACxDjlP,KAAKw8H,WAET4/G,iCAAiC,EACjCvoL,UAAW,WACP,OAAOikL,GAA4B9mO,EAAQi0O,KAAKzwL,SAASlsC,KAE7DqhC,SAAS,EACT9E,mBAAmB,EACnB+O,mBAAoB5zD,KAAK+nB,OAAO,4BAChC4rC,oBAAoB,EACpBW,QAAStjD,EAAQu/C,MAAM+D,QACvBrsC,SAAS,EACT1gB,MAAO,OACPmK,OAAQ,OACRmjD,WAAW,KAGnB4lM,6BAA8B,SAASnjI,EAAShU,GAC5C,OAAaj+G,GAAGiyH,EAAS,UAAWhU,GACpC,OAAaj+G,GAAGiyH,EAAS,SAAS,SAAU1zH,GACpC,gBAAiBA,KAAOu0P,IACxB70I,EAAQ1/G,SAKxB,eAAkB,kBAAmB00P,IACtB,UCxsBA,M,aCWXuE,GAAoB,EAAQx6L,KAAKhD,QAAQ,CACzC0D,YAAa,WACT/iE,KAAK88P,uBAETA,oBAAqB,WACb98P,KAAK+nB,OAAO,8BACZ/nB,KAAK+8P,aACE/8P,KAAKg9P,qBACZh9P,KAAKg9P,oBAAoBxyM,QAGjCyyM,cAAe,WACPj9P,KAAKg9P,sBACLh9P,KAAKg9P,oBAAoBv7L,UACzBzhE,KAAKg9P,yBAAsB,GAE3Bh9P,KAAKk9P,iBACLl9P,KAAKk9P,eAAez7L,UACpBzhE,KAAKk9P,oBAAiB,IAG9BH,WAAY,WACR,IAAIp5P,EAAO3D,KACX2D,EAAKs5P,gBACLt5P,EAAKq5P,oBAAsBr5P,EAAKykB,iBAAiBzkB,EAAKkjB,UAAW,QAAO,OAAApsB,EAAA,WAAO,CAC3Eo0D,MAAO,OAAoBx1D,OAAO,sCAClC+5D,gBAAiB,SAASwgD,GACtB,OAAOjwG,EAAKw5P,yBAAyBvpJ,IAEzC5sD,gBAAiB,SAASnI,GAClB,YAAcA,EAAKj9C,MACnB+B,EAAKokB,OAAO,6BAA8B82B,EAAKh9C,QAGvDkzD,aAAcpxD,EAAKy5P,yBACpBz5P,EAAKokB,OAAO,sBAAuB,CAClCisC,SAAU,SAASpwD,GACf,GAAaD,GACbA,EAAKs5P,qBAIjBE,yBAA0B,SAAShvJ,GAC/B,IAAIyF,EAAkB,eAAEzF,GACpBkvJ,EAA0B,eAAE,SAAS91O,SAAS,eAAE4mF,IACpDnuG,KAAKk9P,eAAiBl9P,KAAKooB,iBAAiBi1O,EAAyB,GAAe,OAAA5iQ,EAAA,WAAO,CACvFoH,MAAO7B,KAAK+nB,OAAO,eACnB0qC,OAAQzyD,KAAKihE,cAAc,WAAWmsB,uBACvCptF,KAAK+nB,OAAO,iBAAkB,CAC7ByqC,iBAAkBxyD,KAAKihE,cAAc,cAAck1L,+BAEvDn2P,KAAKooB,iBAAiBwrF,EAAiB,QAAY,CAC/C75C,UAAW,UAGnBqjM,sBAAuB,WACnB,IAAIz5P,EAAO3D,KACX,MAAO,CAAC,CACJypD,QAAS,SACT6Q,SAAU,QACVG,OAAQ,WACRzpD,QAAS,CACLzU,KAAM,OAAoBlD,OAAO,MACjC6xD,QAAS,SAAStnD,GACd,IAAIxF,EAASuF,EAAKu5P,eAAen1O,OAAO,SACxCpkB,EAAKokB,OAAO,cAAe3pB,GAC3BuF,EAAKq5P,oBAAoBxyM,UAGlC,CACCf,QAAS,SACT6Q,SAAU,QACVG,OAAQ,WACRzpD,QAAS,CACLzU,KAAM,OAAoBlD,OAAO,UACjC6xD,QAAS,SAAStnD,GACdD,EAAKq5P,oBAAoBxyM,YAKzCgW,cAAe,SAAS3hB,GACpB,OAAQA,EAAKj9C,MACT,IAAK,gBACL,IAAK,qBACD5B,KAAK4iE,cACL/jB,EAAK6hB,SAAU,EACf,MACJ,QACI1gE,KAAKC,SAAS4+C,OAInBy+M,GAAsB,CAC7B3/P,eAAgB,WACZ,MAAO,CACHymD,cAAe,CACXuO,2BAA4B,CACxB+G,IAAK,OAAoBrgE,OAAO,uBAChCpI,GAAI,OAAoBoI,OAAO,sBAC/BsgE,OAAQ,OAAoBtgE,OAAO,0BACnCugE,MAAO,OAAoBvgE,OAAO,0BAEtCq5D,4BAA6B,CACzBuC,QAAS,OAAoB57D,OAAO,0CACpC+7D,MAAO,OAAoB/7D,OAAO,yCAClCu8D,SAAU,OAAoBv8D,OAAO,4CACrCo8D,SAAU,OAAoBp8D,OAAO,uCACrCq8D,gBAAiB,OAAoBr8D,OAAO,+CAC5Cg8D,YAAa,OAAoBh8D,OAAO,0CACxCi8D,mBAAoB,OAAoBj8D,OAAO,kDAC/Cw8D,WAAY,OAAoBx8D,OAAO,6CACvC67D,SAAU,OAAoB77D,OAAO,2CACrCs8D,YAAa,OAAoBt8D,OAAO,8CACxC87D,SAAU,OAAoB97D,OAAO,2CACrCk8D,QAAS,OAAoBl8D,OAAO,0CACpCm8D,WAAY,OAAoBn8D,OAAO,+CAG/CgrD,mBAAoB,KAG5B0gB,MAAO,CACHw4L,kBAAmBV,KCnI3B,EAAKp3L,eAAe,gBAAiB63L,ICyBrC,IAAIE,GAAqB,eACrBC,GAA0BD,GAAqB,QAC/CE,GAA8BF,GAAqB,YACnDG,GAAkCH,GAAqB,gBACvDI,GAA8BJ,GAAqB,QACnDK,GAAsB,cACtBC,GAAkB,EAAQz7L,KAAKhD,QAAQ,CACvCl4C,UAAW,WACP,OAAOnnB,KAAK+nB,OAAO,wBAA0B/nB,KAAKihE,cAAc,QAAQ13C,cAE5Ew2C,KAAM,WACF//D,KAAKihE,cAAc,QAAQinC,kBAAkB1zB,IAAI,IAAMx0E,KAAKmE,WAEhE4+D,YAAa,WACT,IAAI/8C,EAAWhmB,KAAK6mB,UACpBb,EAAS07C,QAAQp6C,SAAStnB,KAAK+mB,gBAAgBy2O,KAC/C,IAAIO,EAAiB,eAAE,SAASz2O,SAAStnB,KAAK+mB,gBAAgB62O,KAA8Br2O,SAASvB,GACjGhmB,KAAK+nB,OAAO,gBAAkB/nB,KAAKg+P,oBACnCD,EAAen0N,OAAO5pC,KAAKi+P,oBAAoBr0N,OAAO5pC,KAAKk+P,qBAAqBt0N,OAAO5pC,KAAKm+P,mBAC5Fn4O,EAAS4jB,OAAO5pC,KAAKo+P,4BAErBL,EAAen0N,OAAO5pC,KAAKk+P,qBAAqBt0N,OAAO5pC,KAAKm+P,oBAGpEF,iBAAkB,WACd,IAAIt6P,EAAO3D,KACPgmB,EAAW,eAAE,SAASsB,SAAStnB,KAAK+mB,gBAAgB22O,KAQxD,OAPA/5P,EAAKykB,iBAAiBpC,EAAU,cAAU,CACtCnkB,MAAO8B,EAAKokB,OAAO,6BACnBirC,eAAgB,SAASpvD,GACrBD,EAAKokB,OAAO,4BAA6BnkB,EAAE/B,UAGnDmkB,EAASg7C,KAAK,QAAShhE,KAAK+nB,OAAO,wCAC5B/B,GAEXk4O,kBAAmB,WACf,IAAIv6P,EAAO3D,KACPgmB,EAAW,eAAE,SAASsB,SAAS,kBAInC,OAHA,OAAajiB,GAAG2gB,EAAU,QAAS,IAAMriB,EAAK06P,sBAC9C,GAAuB,cAAe16P,EAAMqiB,OAAU,EAAQ,IAAMriB,EAAK06P,sBACzE16P,EAAK26P,sBAAsBt4O,GACpBA,GAEXm4O,gBAAiB,WACb,IAEII,EAFA56P,EAAO3D,KACPw+P,EAAe,eAAE,SAASl3O,SAAS3jB,EAAKojB,gBAAgB02O,KAExDj3O,EAAc7iB,EAAKokB,OAAO,eAuB9B,OAtBIvB,EACA,kBAAK7iB,EAAK86P,cAAcj4O,EAAa7iB,EAAKs9D,cAAc,cAAck1L,8BAA8BhpO,MAAK,SAAUoxO,GAC/G,IAAIh5O,EAAgB5hB,EAAKokB,OAAO,6BAChC,GAAIxC,EAAe,CACf,IAAI5d,EAAa4d,EAAc,CAC3BxY,UAAWpJ,EAAKoJ,UAChByZ,YAAaA,EACbjqB,KAAMgiQ,IAEN,kBAAoB52P,IACpB42P,EAAa52P,GAGrB62P,EAAajiQ,KAAKgiQ,OAGtBA,EAAa56P,EAAKokB,OAAO,kCACzBy2O,EAAajiQ,KAAKgiQ,IAEtB,OAAal5P,GAAGm5P,EAAc,QAAS,IAAM76P,EAAK06P,sBAClD,GAAuB,cAAe16P,EAAM66P,OAAc,EAAQ,IAAM76P,EAAK06P,sBAC7E16P,EAAK26P,sBAAsBE,GACpBA,GAEXH,mBAAoB,WAChBr+P,KAAK+nB,OAAO,8BAA8B,IAE9Cq2O,wBAAyB,WACrB,IAAIz6P,EAAO3D,KACP0+P,EAAmB,IAAM/6P,EAAKokB,OAAO,cAAe,MACpD/B,EAAW,eAAE,SAASsB,SAAS3jB,EAAKojB,gBAAgB42O,KAAkCphQ,KAAKoH,EAAKokB,OAAO,kCAI3G,OAHA,OAAa1iB,GAAG2gB,EAAU,QAAS04O,GACnC,GAAuB,cAAe1+P,KAAMgmB,OAAU,EAAQ04O,GAC9D/6P,EAAK26P,sBAAsBt4O,GACpBA,GAEXs4O,sBAAuB,SAASt4O,GAC5B,IAAKhmB,KAAK+nB,OAAO,+BAAgC,CAC7C,IAAI42O,EAAW3+P,KAAK+nB,OAAO,aAAe,EAC1C/B,EAASg7C,KAAK,WAAY29L,KAGlCn+L,cAAe,SAAS3hB,GACpB,OAAQA,EAAKj9C,MACT,IAAK,cACD5B,KAAK4iE,cACL5iE,KAAK+nB,OAAO,6BAA6B,GACzC82B,EAAK6hB,SAAU,EACf,MACJ,IAAK,cACD1gE,KAAK4iE,cACL/jB,EAAK6hB,SAAU,EACf,MACJ,QACI1gE,KAAKC,SAAS4+C,KAG1B+/M,kBAAmB,SAASC,EAAWC,EAAe35O,GAClD,IAAIlmB,EAAS,IAAI4S,OAAOgtP,EAAW,MAAMhtP,OAAOitP,GAIhD,OAHI,eAAU35O,KACVlmB,GAAUkmB,GAEPlmB,GAEX8/P,oBAAqB,SAASl9P,GAC1B,OAAOhD,MAAM0nB,QAAQ1kB,GAAS,KAAKgQ,OAAOhQ,EAAM7F,KAAK,QAAS,MAAQ,KAAK6V,OAAOhQ,EAAO,MAE7Fm9P,cAAe,SAASh4P,EAAOisD,EAAiBpxD,GAC5C,IAAI67D,EAAW,IAAI,cACfuhM,EAAqBhsM,GAAmBA,EAAgB1tC,cAC5D,GAAI,eAAU1jB,IAAUo9P,EACpB,IAAKA,GAAsBj4P,EAAM+iB,OAC7B+nO,GAA0B9qP,EAAOnF,EAAOsE,IACpCu3D,EAASluC,QAAQxvB,KAAK++P,oBAAoB54P,UAE3C,CACH,IAAIkuF,EAAex1F,MAAM0nB,QAAQ1kB,GAASA,EAAQ,OAAU+nB,gBAAgB5iB,EAAOnF,GACnF,kBAAKswP,GAAoBnrP,EAAOqtF,EAAcphC,EAAiB4qM,KAAsB1wO,KAAKhnB,IACtFu3D,EAASluC,QAAQxvB,KAAK++P,oBAAoB54P,WAIlDu3D,EAASluC,QAAQ,IAErB,OAAOkuC,EAASptC,WAEpB4uO,iBAAkB,SAAS14O,EAAaxV,GACpC,IAII8tP,EAJAn7P,EAAO3D,KACP8oB,EAAYtC,EAAY,GACxBk3C,EAAW,IAAI,cACfzK,EAAkB08L,GAAmB3+O,EAAQwhD,iBAAkB1pC,GAE/D9hB,EAAQ0pP,GAASlqO,EAAY,GAAIxV,EAAQsc,SACzCuxO,EAAY73P,EAAME,SAAW,GAC7BrF,EAAQ2kB,EAAY,GAWxB,OATIs4O,EADA7rM,EACgBA,EAAgB/rD,SAAW,gBAAW+rD,EAAgBrxD,MAEtD4tP,GADT,OAAS3tP,EACsB,MAAQinB,EAAY,UAAY,aAEhCA,EAF8C9X,EAAQ0hD,6BAIhG1yD,KAAKg/P,cAAch4P,EAAOisD,EAAiBpxD,GAAOsrB,KAAKhI,IACnDu4C,EAASluC,QAAQ7rB,EAAKi7P,kBAAkBC,EAAWC,EAAe35O,MAE/Du4C,GAEXyhM,aAAc,SAAS34O,EAAaxV,EAASouP,GACzC,IAAIz7P,EAAO3D,KACPf,EAAS,IAAI,cACbs9I,EAAY,GACZ0yG,EAAaC,GAAc1oO,GAwB/B,OAvBAA,EAAYtlB,QAAQ6F,IACZ0nP,GAAY1nP,GACZw1I,EAAUt5I,KAAKU,EAAKu7P,iBAAiBn4P,EAAMiK,IACpC,GAAQjK,IACfw1I,EAAUt5I,KAAKU,EAAKw7P,aAAap4P,EAAMiK,GAAS,MAGxD,UAAKlS,MAAMkB,KAAMu8I,GAAWpvH,MAAK,WAE7B,IADA,IAAI5wB,EACK8yJ,EAAOnvJ,UAAUtG,OAAQilD,EAAO,IAAIhgD,MAAMwwJ,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC7EzwG,EAAKywG,GAAQpvJ,UAAUovJ,GAE3B,GAAI,MAAQ2/F,EAAW,GAAI,CACvB,IAAIoQ,EAAYruP,EAAQ2hD,2BAA2B,MAAQs8L,EAAW3pN,UAAU,EAAG,GAAGD,cAAgB4pN,EAAW3pN,UAAU,IAAIzpC,MAAM,KACrIU,EAAO,GAAGsV,OAAOwtP,EAAU,GAAI,KAAKxtP,OAAOgtC,EAAK,SAEhDtiD,EAAOsiD,EAAK7iD,KAAK,IAAI6V,OAAOb,EAAQ2hD,2BAA2Bs8L,GAAa,MAE5EmQ,IACA7iQ,EAAO,IAAIsV,OAAOtV,EAAM,MAE5B0C,EAAOuwB,QAAQjzB,MAEZ0C,GAEXw/P,cAAe,SAASj4O,EAAagsC,GACjC,IAAIxhD,EAAU,CACVwhD,iBAAkBA,EAClBllC,QAASttB,KAAKihE,cAAc,WAAWmsB,sBACvC16B,4BAA6B1yD,KAAK+nB,OAAO,6CACzC4qC,2BAA4B3yD,KAAK+nB,OAAO,6CAE5C,OAAO0mO,GAAYjoO,GAAexmB,KAAKk/P,iBAAiB14O,EAAaxV,GAAWhR,KAAKm/P,aAAa34O,EAAaxV,MAG5GsuP,GAAoB,CAC3B3hQ,eAAgB,WACZ,MAAO,CACH2mD,YAAa,CACTqF,SAAS,EACTmM,eAAe,EACfhH,MAAO,CACHmH,aAAc,OAAoB58D,OAAO,sCACzC28D,YAAa,OAAoB38D,OAAO,qCACxC68D,kBAAmB,OAAoB78D,OAAO,+CAK9D0rE,MAAO,CACHw6L,gBAAiBzB,IAErB74L,UAAW,CACPJ,YAAa,CACT1+D,KAAM,CACFq6D,cAAe,SAAS3hB,GACpB,OAAQA,EAAKj9C,MACT,IAAK,cACD5B,KAAKuhG,eACL1iD,EAAK6hB,SAAU,EACf,MACJ,QACI1gE,KAAKC,SAAS4+C,SCxP1C,EAAK4mB,eAAe,cAAe65L,ICOnC,IAAIE,GAAqB,eACrBC,GAAoB,cACpB,GAAqB,eACrB,GAAoB,IAExB,SAASzzM,GAAYl7C,GACjB,OAAO,eAAUA,EAAOk7C,aAAel7C,EAAOk7C,YAAcl7C,EAAOxJ,eAGvE,SAASwsF,GAAWhjF,EAAQvU,GACxB,IAAIwtB,EAASjZ,EAAOiZ,OACpB,OAAKjZ,EAAOgjF,WAGR/pE,EACOjZ,EAAOgjF,WAAWtuE,KAAKuE,EAAQxtB,GAEnCuU,EAAOgjF,WAAWv3F,GALdA,EAOR,IAAImjQ,GAAe,CACtB/hQ,eAAgB,WACZ,MAAO,CACHgrD,YAAa,CACTgB,SAAS,EACTpiD,MAAO,IACPg2D,YAAa,OAAoBlkE,OAAO,qCACxCikE,qBAAqB,EACrBD,wBAAwB,EACxB9gE,KAAM,GACNihE,0BAA0B,KAItCyH,UAAW,CACPJ,YAAa,CACT1+D,KAAM,CACF65D,cAAe,WACX,OAAOhgE,KAAKC,WAAW4R,OAAO,CAAC,kBAEnCmvF,2BAA4B,WACxB,IAAI5iG,EAAS4B,KAAKC,WACd0/P,EAAe,SAASh8P,EAAMpH,GAC9B,IAAId,EACAqV,EAGAiZ,EAFAuD,EAAU3pB,EAAK8oE,mBAAmBhF,aAClCjK,EAA2B75D,EAAKokB,OAAO,wCAEvCc,EAAU,GACd,IAAKtsB,EACD,OAAO,KAGX,SAASqjQ,EAAYl3O,GAEjB,IADA,IAAIy/L,EAAc,gBAAcp+L,EAAOgG,WAC9B8vO,EAAK,EAAGA,EAAKn3O,EAAM9uB,OAAQimQ,IAAM,CACtC,IAAIh+P,EAAQsmN,EAAYz/L,EAAMm3O,IAC9Bh3O,EAAQ5lB,KAAK6N,EAAOmjF,uBAAuBpyF,EAAO,KAAM,YAGhE,IAAKpG,EAAI,EAAGA,EAAI6xB,EAAQ1zB,OAAQ6B,IAE5B,GADAqV,EAASwc,EAAQ7xB,KACb+hE,GAA6B1sD,EAAO64C,UAGpCqC,GAAYl7C,IAAWA,EAAOs7C,0BAA2B,CACzDriC,EAASjZ,EAAOiZ,OAChB,IAAIvD,EAAcstE,GAAWhjF,EAAQvU,GACjCwtB,GAAUA,EAAOrB,MACjB,gBAAUqB,EAAOrB,OAAOtqB,OAAO0S,EAAOmjF,uBAAuBzuE,KAAK,CAC9DpU,UAAW2Y,EAAOiG,YAClB5L,SAAU2F,EAAO3F,SACjBgoC,0BAA2Bt7C,EAAOs7C,2BACnC5lC,EAAa,KAAM,WAAWuqH,YAAY5jH,KAAKyyO,QAC3C,IAAWp5O,GAClBqC,EAAQ5lB,KAAK6N,EAAOmjF,uBAAuBztE,EAAa,KAAM,WAI1E,OAAI,IAAMqC,EAAQjvB,OACP,CAAC,KAEL,OAAcgvB,eAAeC,EAAS,MAxC9B,CAyCjB7oB,KAAMA,KAAK+nB,OAAO,qBACpB,OAAO,OAAca,eAAe,CAACxqB,EAAQuhQ,KAEjD53J,aAAc,SAASxrG,GACnByD,KAAK+nB,OAAO,mBAAoBxrB,IAEpCikE,cAAe,SAAS3hB,GACpB,OAAQA,EAAK4sC,UACT,IAAK,mBACL,IAAK,cACDzrF,KAAKuhG,eACL1iD,EAAK6hB,SAAU,EACf,MACJ,QACI1gE,KAAKC,SAAS4+C,OAKlCkmB,MAAO,CACHwmC,YAAa,WACT,IAAIu0J,EAAwB,SAASn8P,GACjC,OAAOA,EAAKokB,OAAO,gBAEvB,MAAO,CACHi0G,iBAAkB,WACd,IAAItzG,EAAQ1oB,KAAKC,WACjB,OAAOD,KAAK+/P,mBAAmBr3O,IAEnCq3O,mBAAoB,SAASr3O,GACzB,IAAI/kB,EAAO3D,KACPiyF,EAAiBtuF,EAAKs9D,cAAc,QACpC++L,EAAqBF,EAAsBn8P,GAC/C,GAAIq8P,GAAsBA,EAAmBr2M,QAAS,CAClD,IAAI8R,EAAc,CACdtQ,SAAU,SAAShlD,EAAM/E,EAAO+mB,GAC5B,IAAI83O,EAAU,eAAE,SAAS34O,SAAS3jB,EAAKojB,gBAAgBy4O,KAAqBj4O,SAASY,GACrFxkB,EAAKs9D,cAAc,iBAAiB+mE,aAAai4H,EAAS,CACtD14P,MAAOy4P,EAAmBz4P,MAC1Bg2D,YAAayiM,EAAmBziM,YAChC0qE,WAAY,cACZpmI,MAAO8B,EAAKokB,OAAO,oBACnB2/J,mBAAoB,GACpBx/C,SAAU,SAASrmI,GACfowF,EAAe8V,aAAalmG,IAEhCwF,cAAe,CACX2/K,UAAW,CACP,aAAc,OAAoB3tL,OAAO,GAAGwY,OAAOlO,EAAKoJ,UAAU80D,KAAM,0BAIpFl+D,EAAKogE,UAETniE,KAAM,cACN04D,SAAU,QACVD,aAAc,QACd3M,UAAW,IAEfhlC,EAAMzlB,KAAKw4D,GAEf,OAAO/yC,GAEXw3O,oBAAqB,WACjB,IAAIv8P,EAAO3D,KACPgmB,EAAWriB,EAAKkjB,UAChBs5O,EAAen6O,EAASiB,KAAK,IAAMtjB,EAAKojB,gBAAgBy4O,KAAqBphQ,QAAO,WACpF,OAAO,eAAE4B,MAAMitB,QAAQ,IAAMtpB,EAAKojB,gBAAgB,KAAqBn5B,GAAGo4B,MAE9E,OAAIm6O,EAAavmQ,OACNumQ,EAAaC,UAAU,YAE3B,MAEXj5O,UAAW,WACP,IAAI64O,EAAqBF,EAAsB9/P,MAC/C,OAAOA,KAAKC,YAAc+/P,GAAsBA,EAAmBr2M,SAEvE6W,cAAe,SAAS3hB,GACpB,GAAI,gBAAkBA,EAAKj9C,KAAM,CAC7B,GAAI,qBAAuBi9C,EAAK4sC,SAAU,CACtC,IAAIz+D,EAAShtB,KAAKkgQ,sBACdlzO,GACAA,EAAOjF,OAAO,QAAS82B,EAAKh9C,YAGhC7B,KAAK4iE,cAET/jB,EAAK6hB,SAAU,OAEf1gE,KAAKC,SAAS4+C,KAtEjB,GA2Eb3yB,SAAU,CACN6zC,KAAM,WACF//D,KAAKC,SAASnB,MAAMkB,KAAME,WAC1BF,KAAKqgQ,cAAgB,IAEzBC,wBAAyB,SAASxvP,EAAQ+4F,GACtC,IAAIhoG,EAAQiyF,GAAWhjF,EAAQ+4F,GAC3B24I,EAAgB,OAAc/4N,yBAAyB3Y,EAAQ,UACnE,OAAO,OAAcoU,YAAYrjB,EAAO2gP,IAE5C+d,qBAAsB,WAClB,IAAIC,EAAkBxgQ,KAAK+nB,OAAO,sCAClC,OAAO,SAAS7rB,GACZ,OAAOskQ,EAAkBtkQ,EAAMA,EAAI4B,gBAG3C2iQ,2BAA4B,SAAS3vP,EAAQi9D,EAAa87B,GACtD,IAAIk/D,EAEAroD,EADA98C,EAAUmK,EAAY7/C,SAEtBwyO,EAAmB1gQ,KAAKugQ,uBACxBI,EAAuBD,EAAiB72J,GACxC+2J,EAAkB,GACtB,GAAKh9L,EAAQhqE,QAEN,GAAIkX,EACP,GAAIA,EAAOi8C,YAAc,IAAMj8C,EAAO28C,gBAClCizD,EAAS3yC,MACN,CACH,IAAInpD,EAAc5kB,KAAKysE,mBAAmByB,gBAAgBp9D,EAAO1P,OACjEs/G,EAAS98C,EAAQyD,SAAS,MAAM77C,GAAG5G,GAAaqC,KAAK,WANzD28C,EAAU,eAAE,SAASh6B,OAAOmkC,GAsBhC,OAbA2yC,EAAS,QAAUqoD,EAAUroD,SAAW,IAAWqoD,GAAWA,EAAQnvK,OAAS8mH,EAAS98C,EAAQ38C,KAAK,KACrGy5F,EAAO0wD,MAAK,SAAUryK,EAAG8nB,GAErB,IADA,IAAIg6O,EAAY,eAAEh6O,GAASyvM,WAClB76N,EAAI,EAAGA,EAAIolQ,EAAUjnQ,OAAQ6B,IAAK,CACvC,IAAIy8G,EAAO2oJ,EAAUnjQ,IAAIjC,GACzB,GAAI,IAAMy8G,EAAK7oC,SAAU,CACrB,IAAI+4E,EAAiBs4G,EAAiBxoJ,EAAKnzF,aAAemzF,EAAKntC,WAC3Dq9E,EAAe9pJ,QAAQqiQ,IAAyB,GAChDC,EAAgB39P,KAAKi1G,QAK9B0oJ,GAEXE,yBAA0B,SAASC,EAAWl3J,GAC1C,IAAIm3J,EAAkB,eAAE,UAAU15O,SAAStnB,KAAK+mB,gBAAgB04O,KAC5DljQ,EAAOwkQ,EAAUxkQ,OACjB0kQ,EAAsBF,EAAU,GAChCL,EAAmB1gQ,KAAKugQ,uBACxBn/P,EAAQs/P,EAAiBnkQ,GAAM+B,QAAQoiQ,EAAiB72J,IAC5D,GAAIzoG,GAAS,EAQT,OAPI6/P,EAAoBl8O,YACpBk8O,EAAoBl8O,YAAcxoB,EAAKgmB,OAAO,EAAGnhB,GAEjD6/P,EAAoBl2L,UAAYxuE,EAAKgmB,OAAO,EAAGnhB,GAEnD2/P,EAAUG,MAAMF,EAAgBzkQ,KAAKA,EAAKgmB,OAAOnhB,EAAOyoG,EAAWjwG,UACnEmnQ,EAAY,eAAE,aAAWpyN,eAAepyC,EAAKgmB,OAAOnhB,EAAQyoG,EAAWjwG,UAAU60G,YAAYuyJ,GACtFhhQ,KAAK8gQ,yBAAyBC,EAAWl3J,IAGxDs3J,qBAAsB,SAASpzL,EAAaqzL,EAAUtwP,GAClD,IAAInN,EAAO3D,KACP0gQ,EAAmB1gQ,KAAKugQ,uBACxB12J,EAAalmG,EAAKokB,OAAO,oBAI7B,GAHIq5O,GAAYtwP,IACZ+4F,EAAaA,GAAclmG,EAAK28P,wBAAwBxvP,EAAQ+4F,IAEhEA,GAAclmG,EAAKokB,OAAO,mCAAoC,CAC9D,IAAIs5O,EAAY19P,EAAK88P,2BAA2B3vP,EAAQi9D,EAAa87B,GACrEw3J,EAAUngQ,QAAQogQ,IACVF,EACIV,EAAiB,eAAEY,GAAU/kQ,UAAYmkQ,EAAiB72J,IAC1D,eAAEy3J,GAAUjvL,YAAY,eAAE,UAAU/qD,SAAS3jB,EAAKojB,gBAAgB04O,KAAoBljQ,KAAK,eAAE+kQ,GAAU/kQ,SAG3GoH,EAAKm9P,yBAAyB,eAAEQ,GAAWz3J,OAK3D9mC,YAAa,WACT/iE,KAAKC,SAASnB,MAAMkB,KAAME,YACtBF,KAAK+nB,SAAS0gC,aAAezoD,KAAK+nB,OAAO,sBACrC/nB,KAAK+nB,OAAO,kCACZ0hD,aAAazpE,KAAKuhQ,iBAClBvhQ,KAAKuhQ,gBAAkBtuP,WAAW,WAC9BjT,KAAKmhQ,qBAAqBnhQ,KAAKi0E,oBACjCzpD,KAAKxqB,QAEPA,KAAKmhQ,qBAAqBnhQ,KAAKi0E,qBAI3C1I,YAAa,SAASrE,EAAOf,GACzB,IAAIr1D,EAASq1D,EAAWr1D,OACpBsT,EAAWtT,EAAOiZ,QAAUjZ,EAAOiZ,OAAO3F,UAAYtT,EAAOsT,SAC7Dg9O,EAAW,WAAah9O,EACxB4nC,GAAYl7C,KAAYq1D,EAAWqiH,WAC/BxoL,KAAK+nB,OAAO,kCACP/nB,KAAKqgQ,cAAczmQ,SACpB6vE,aAAazpE,KAAKuhQ,iBAClBvhQ,KAAKuhQ,gBAAkBtuP,WAAW,WAC9BjT,KAAKqgQ,cAAcn/P,QAAQ,SAAS0+E,GAChC5/E,KAAKmhQ,qBAAqBriQ,MAAMkB,KAAM4/E,IACxCp1D,KAAKxqB,OACPA,KAAKqgQ,cAAgB,IACvB71O,KAAKxqB,QAEXA,KAAKqgQ,cAAcp9P,KAAK,CAACikE,EAAOk6L,EAAUtwP,KAE1C9Q,KAAKmhQ,qBAAqBj6L,EAAOk6L,EAAUtwP,IAGnD9Q,KAAKC,SAASinE,EAAOf,IAEzB1E,QAAS,WACLgI,aAAazpE,KAAKuhQ,iBAClBvhQ,KAAKC,gBClTzB,EAASwlE,eAAe,SAAUi6L,I,iBCH3B,MAAM,WAAyB,QAClC,eAAe7gN,GACX,OAAQA,EAAKj9C,MACT,IAAK,YACD,IAAI4/P,EAAmBxhQ,KAAK+nB,OAAO,oBAC/By5O,GACAA,EAAiB3iN,EAAKh9C,OAE1B,MACJ,IAAK,WACD,IAAI4/P,EAAkBzhQ,KAAK+nB,OAAO,mBAC9B05O,GACAA,EAAgB5iN,EAAKh9C,OAGjC8zG,MAAMwH,eAAet+D,I,qECZtB,SAAS6iN,GAAgB9/P,EAAMilB,GAClC,IAAI86O,EACAC,EAAgB,QAAUD,EAAwB,gBAAwB96O,UAAa,IAAW86O,EAAwBA,EAAwB,GACtJ,OAAO,gBAASC,EAAchgQ,IAE3B,SAASigQ,GAAgBh7O,GAC5B,OAAO66O,GAAgB,QAAS76O,GAE7B,SAASi7O,GAAmBj7O,GAC/B,OAAO66O,GAAgB,WAAY76O,GCXvC,IAAI,GAAY,CAAC,kBAAmB,cAiBzBk7O,GAAe70P,IACtB,IACI80P,kBAAmBA,EACnBC,YAAaA,EACbC,gBAAiBA,EACjBC,mBAAoBA,EACpBC,aAAcA,EACdC,SAAUA,EACVC,UAAWA,EACXroO,OACIm5B,gBAAiBmvM,IAErBr1P,EACJ,OAAOq1P,EAAQ,eAAS,CACpBC,eAAgBF,EAChBF,aAAcA,EACdH,YAAaA,EACbI,SAAUA,EACVH,gBAAiBA,EACjBC,mBAAoBA,GACrBH,KAEA,SAASS,GAA0B/rK,GACtC,IACIgsK,UAAWC,EACXC,MAAOC,EACP30O,OAAQ40O,GACRpsK,EACJ,OAAOosK,GAAeH,EAAiBE,GAAc,EAElD,SAASE,GAAyB5lK,GACrC,IACIsoH,KAAMu9C,EACNN,UAAWC,EACXC,MAAOC,EACP30O,OAAQ40O,GACR3lK,EACA8lK,EAAeN,EAAiBE,EAAaG,EACjD,OAAOF,EAAcG,EAAe,EAGxC,SAASC,GAAiB7lK,GACtB,IACIooH,KAAMA,EACNi9C,UAAWA,EACXE,MAAOA,EACP10O,OAAQA,GACRmvE,EACAylK,EAAcjB,GAAgB3zO,GAC9By0O,EAAiBd,GAAgBa,GACjCM,EAAYnB,GAAgBp8C,GAC5B09C,EAAiBtB,GAAgBe,GACrC,MAAO,CACH10O,OAAQ40O,EACRJ,UAAWC,EACXl9C,KAAMu9C,EAAYtB,GAAgB,aAAcj8C,GAAQi8C,GAAgB,cAAej8C,GACvFm9C,MAAOO,GAGR,IAAIC,GAA0B,GAIjC1/L,GAAc2/L,GAAgBA,IAAiBA,EAAa1lI,aAAe1jG,GAAS,gBAAe,gBAAqB,EAAGopO,EAAc,eAAS,GAAIppO,KAAWopO,GAC9J,MAAM,WAA2B,QACpC,YAAYppO,GACR07E,MAAM17E,GACNj6B,KAAKsiQ,UAAY,kBACjBtiQ,KAAKoiQ,aAAe,kBACpBpiQ,KAAKiiQ,YAAc,kBACnBjiQ,KAAKqiQ,SAAW,kBAChBriQ,KAAKsjQ,0BAA2B,EAChCtjQ,KAAKujQ,uBAAwB,EAC7BvjQ,KAAK4vC,MAAQ,CACTsyN,iBAAiB,EACjBC,oBAAoB,GAExBniQ,KAAKwjQ,kBAAoBxjQ,KAAKwjQ,kBAAkBh5O,KAAKxqB,MACrDA,KAAKyjQ,uBAAyBzjQ,KAAKyjQ,uBAAuBj5O,KAAKxqB,MAC/DA,KAAK0jQ,sBAAwB1jQ,KAAK0jQ,sBAAsBl5O,KAAKxqB,MAEjE,gBACI,MAAO,CAAC,IAAI,QAAcA,KAAKwjQ,kBAAmB,CAACxjQ,KAAK4vC,MAAMsyN,gBAAiBliQ,KAAK4vC,MAAMuyN,qBAAsB,IAAI,QAAcniQ,KAAKyjQ,uBAAwB,CAACzjQ,KAAKi6B,MAAOj6B,KAAK4vC,MAAMsyN,gBAAiBliQ,KAAK4vC,MAAMuyN,mBAAoBniQ,KAAKi6B,MAAM0pO,WAAY3jQ,KAAKi6B,MAAMm5B,mBAE7Q,gBACI,IAAIwwM,EAAiBC,EACrB,QAAUD,EAAkB5jQ,KAAK8jQ,SAAS,UAAO,IAAWF,GAA2BA,EAAgBpwL,OAAO,CAACxzE,KAAK4vC,MAAMsyN,gBAAiBliQ,KAAK4vC,MAAMuyN,qBACtJ,QAAU0B,EAAmB7jQ,KAAK8jQ,SAAS,UAAO,IAAWD,GAA4BA,EAAiBrwL,OAAO,CAACxzE,KAAKi6B,MAAOj6B,KAAK4vC,MAAMsyN,gBAAiBliQ,KAAK4vC,MAAMuyN,mBAAoBniQ,KAAKi6B,MAAM0pO,WAAY3jQ,KAAKi6B,MAAMm5B,kBAE/N,oBACI,IAAIpuD,EAAW,KACXhF,KAAK8iQ,YAAc,GAAK9iQ,KAAK0jQ,yBAGjC,OADA,QAAgBlvL,IAAIxvE,GACb,KACH,QAAgB8iB,OAAO9iB,IAG/B,yBACQhF,KAAK8iQ,YAAc,GACnB9iQ,KAAK0jQ,wBAGb,wBACI,IACI/hM,UAAWA,EACXzG,YAAaA,EACb6oM,kBAAmBA,EACnB3lK,iBAAkBA,EAClBjjC,SAAUA,EACV1C,MAAOA,EACPurM,iBAAkBA,EAClBC,cAAeA,EACfl9M,UAAWA,EACX42C,UAAWA,EACXpiC,UAAWA,EACX2oM,gBAAiBA,EACjB1oM,SAAUA,EACV2oM,eAAgBA,EAChBzB,UAAWA,EACX0B,eAAgBA,EAChBC,sBAAuBA,EACvBh5O,WAAYA,EACZ+vC,SAAUA,EACVC,sBAAuBA,EACvBipM,cAAeA,EACf1pK,WAAYA,EACZjxC,QAASA,GACT3pD,KAAKi6B,MAAM0pO,WACf,OAAO,eAAS,GAAI3jQ,KAAKukQ,eAAgB,CACrC/oM,SAAUA,EACVD,UAAWA,EACX2oM,gBAAiBA,EACjBC,eAAgBA,EAChBJ,kBAAmBA,EACnBpiM,UAAWA,EACXvG,SAAUA,EACVD,SAAUA,EACV6oM,iBAAkBA,EAClB9oM,YAAaA,EACb+oM,cAAeA,EACftmK,UAAWA,EACXymK,eAAgBA,EAChBz6M,QAASA,EACTy0C,iBAAkBA,EAClBimK,sBAAuBA,EACvBC,cAAeA,EACf5B,UAAWA,EACXr3O,WAAYA,EACZgwC,sBAAuBA,EACvBu/B,WAAYA,EACZ7zC,UAAWA,EACX0R,MAAOA,IAGf,kBACI,OAAOz4D,KAAKsiQ,UAAUx/I,QAAU++I,GAAgB7hQ,KAAKsiQ,UAAUx/I,SAAW,EAE9E,wBACI,IAAI0hJ,EAAuBtB,GAAiB,CACxCh1O,OAAQluB,KAAKsiQ,UAAUx/I,QACvB4/I,UAAW1iQ,KAAKoiQ,aAAat/I,QAC7B2iG,KAAMzlN,KAAKiiQ,YAAYn/I,QACvB8/I,MAAO5iQ,KAAKqiQ,SAASv/I,UAEzB,GAAI9iH,KAAKujQ,wBAA0BvjQ,KAAK4vC,MAAMsyN,iBAAmBliQ,KAAKsjQ,2BAA6BtjQ,KAAK4vC,MAAMuyN,mBAA9G,CAGA,IAAI96O,GAAW,eAAUrnB,KAAKykQ,eAC1Bp9O,IACArnB,KAAKykQ,cAAgB,KAErBp9O,GAAWrnB,KAAK4vC,MAAMuyN,sBACtBniQ,KAAKykQ,cAAc/B,UAAY8B,EAAqB9B,UACpD1iQ,KAAKykQ,cAAc7B,MAAQ4B,EAAqB5B,QAEhDv7O,GAAWrnB,KAAK4vC,MAAMsyN,mBACtBliQ,KAAKykQ,cAAch/C,KAAO++C,EAAqB/+C,MAEnDzlN,KAAKsjQ,yBAA2Bb,GAA0B,eAAS,CAC/Dv0O,OAAQs2O,EAAqBt2O,QAC9B,CACCw0O,UAAW1iQ,KAAKykQ,cAAc/B,UAC9BE,MAAO5iQ,KAAKykQ,cAAc7B,SAE9B5iQ,KAAKujQ,sBAAwBR,GAAyB,eAAS,GAAIyB,EAAsB,CACrF/+C,KAAMzlN,KAAKykQ,cAAch/C,QAE7BzlN,KAAK0kQ,SAASC,IAAoB,CAC9BzC,gBAAiBliQ,KAAKujQ,yBAE1BvjQ,KAAK0kQ,SAASC,IAAoB,CAC9BxC,mBAAoBniQ,KAAKsjQ,6BAGjC,qBACI,IAAIsB,EAAc5kQ,KAAKi6B,MACnB4qO,EAAY,gBAA8BD,EAAa,IAC3D,OAAOC,EAEX,SACI,IAAI5qO,EAAQj6B,KAAKi6B,MACjB,OAAO8nO,GAAa,CAChB9nO,MAAO,eAAS,GAAIA,EAAO,CACvBm5B,gBAAiBsQ,GAAYzpC,EAAMm5B,mBAEvC8uM,gBAAiBliQ,KAAK4vC,MAAMsyN,gBAC5BC,mBAAoBniQ,KAAK4vC,MAAMuyN,mBAC/BG,UAAWtiQ,KAAKsiQ,UAChBF,aAAcpiQ,KAAKoiQ,aACnBH,YAAajiQ,KAAKiiQ,YAClBI,SAAUriQ,KAAKqiQ,SACfL,kBAAmBhiQ,KAAKgiQ,kBACxBc,YAAa9iQ,KAAK8iQ,YAClBY,sBAAuB1jQ,KAAK0jQ,sBAC5Ba,eAAgBvkQ,KAAKukQ,kBAIjC,GAAmB5mI,aAAeylI,GC7O3B,IAAI0B,GAAiB,CACxBf,mBAAmB,EACnB3oM,UAAU,EACVF,YAAa,WACb+oM,cAAe,GACftmK,UAAW,GACXh0C,SAAS,EACTy0C,kBAAkB,EAClBimK,sBAAuB,OACvBC,eAAe,EACf5B,UAAWllQ,OAAOunQ,OAAO,CAAC,EAAG,KAC7B1pM,uBAAuB,EACvBu/B,WAAY,EACZ,YACI,OAAO,OAAoBvhG,OAAO,uBCX/B2rQ,GAAaxnQ,OAAOqlC,OAAOrlC,OAAOm/B,UAAW,eAASn/B,OAAOynQ,0BAA0BH,IAAiBtnQ,OAAOynQ,0BAA0B,CAChJC,gBAAiB,EACjBf,eAAgB,OAChBr8B,iBAAkB,EAClBo8B,gBAAiB,WAEViB,GAAqB3nQ,OAAOqlC,OAAOrlC,OAAOm/B,UAAW,eAASn/B,OAAOynQ,0BAA0BH,IAAiBtnQ,OAAOynQ,0BAA0B,CACxJzpM,SAAU,EACVD,UAAW,MCVX,GAAY,CAAC,WAAY,YAAa,YAAa,iBAAkB,cAc9D6pM,GAAmB,UACnB,GAAel4P,IACtB,IACI+sB,OACIuoO,eAAgBA,GAEpBjmQ,KAAMA,GACN2Q,EACJ,OAAO,gBAAY,EAAG,MAAOk4P,GAAkB7oQ,EAAM,EAAG,KAAM,KAAMimQ,IAGpE6C,GAAoB,CACpB,gBACI,OAAOF,GAAmB5pM,WAE9B,gBACI,OAAO4pM,GAAmBxnK,WAE9B,iBACI,OAAOwnK,GAAmBvqK,aAG3B,MAAM,WAAiB,QAC1B,YAAY3gE,GACR07E,MAAM17E,GACNj6B,KAAK4vC,MAAQ,GAEjB,eACI,IAAI01N,EACJ,OAAQ,QAAUA,EAAuBtlQ,KAAKi6B,MAAMkhC,gBAAa,IAAWmqM,EAAuBA,EAAuB,KAAO,OAAoBzqQ,aAAa,mBAAjC,GAErI,WACI,IACI8iG,UAAWA,EACXpiC,UAAWA,EACXq/B,WAAYA,GACZ56F,KAAKi6B,MACT,OAAO,gBAAOj6B,KAAKm7D,UAAWI,EAAY,GAAG95C,WAAYk8E,EAAUl8E,WAAYm5E,EAAWn5E,YAE9F,qBACI,IAAImjP,EAAc5kQ,KAAKi6B,MACnB4qO,EAAY,gBAA8BD,EAAa,IAC3D,OAAOC,EAEX,SACI,IAAI5qO,EAAQj6B,KAAKi6B,MACjB,OAAO,GAAa,CAChBA,MAAO,eAAS,GAAIA,GACpBkhC,SAAUn7D,KAAKm7D,SACf5+D,KAAMyD,KAAKzD,KACXgoQ,eAAgBvkQ,KAAKukQ,kBAIjC,GAAS5mI,aAAe0nI,G,iBCnEbE,GAAwB,qBAAc,GCD7C,GAAY,CAAC,WAAY,YAAa,QAAS,UAAW,WAAY,YAc/D,GAAer4P,IACtB,IACI+sB,OACIotC,SAAUA,EACV1F,UAAWA,EACXlJ,MAAOA,EACPolD,SAAUA,EACVr0D,SAAUA,GAEdg8M,UAAWA,GACXt4P,EACJ,OAAO,gBAAY,EAAG,MAAOy0D,EAAW0F,EAAU,EAAG,CACjD7d,SAAUA,EACVysD,KAAM,SACN,aAAcx9C,EACd,eAAgBolD,EAAW,YAAS,GACrC,KAAM2nJ,IAEFC,GAAmB,CAC1B9jM,UAAW,GACXlJ,MAAO,GACPjP,SAAU,EACVq0D,UAAU,GAKP,MAAM,WAAoB,QAC7B,YAAY5jF,GACR07E,MAAM17E,GACNj6B,KAAK4vC,MAAQ,GACb5vC,KAAKwlQ,UAAY,kBACjBxlQ,KAAK0lQ,eAAiB1lQ,KAAK0lQ,eAAel7O,KAAKxqB,MAC/CA,KAAK2lQ,iBAAmB3lQ,KAAK2lQ,iBAAiBn7O,KAAKxqB,MAEvD,sBACI,MAAI,0BAA2BA,KAAKkxF,QACzBlxF,KAAKkxF,QAAQq0K,sBAEjBA,GAEX,gBACI,MAAO,CAAC,IAAI,QAAcvlQ,KAAK0lQ,eAAgB,CAAC1lQ,KAAK4lQ,gBAAiB5lQ,KAAKi6B,MAAMixB,UAAW,IAAI,QAAclrD,KAAK2lQ,iBAAkB,CAAC3lQ,KAAKi6B,MAAMixB,WAErJ,gBACI,IAAI04M,EAAiBC,EACrB,QAAUD,EAAkB5jQ,KAAK8jQ,SAAS,UAAO,IAAWF,GAA2BA,EAAgBpwL,OAAO,CAACxzE,KAAK4lQ,gBAAiB5lQ,KAAKi6B,MAAMixB,UAChJ,QAAU24M,EAAmB7jQ,KAAK8jQ,SAAS,UAAO,IAAWD,GAA4BA,EAAiBrwL,OAAO,CAACxzE,KAAKi6B,MAAMixB,UAEjI,iBACI,OAAOlrD,KAAK4lQ,gBAAgB7rL,uBAAuB/5E,KAAKwlQ,UAAU1iJ,QAAS9iH,KAAKi6B,MAAMixB,SAE1F,mBACI,OAAO,gBAAsBlrD,KAAKwlQ,UAAU1iJ,QAAS9iH,KAAKi6B,MAAMixB,SAEpE,qBACI,IAAI05M,EAAc5kQ,KAAKi6B,MACnB4qO,EAAY,gBAA8BD,EAAa,IAC3D,OAAOC,EAEX,SACI,IAAI5qO,EAAQj6B,KAAKi6B,MACjB,OAAO,GAAa,CAChBA,MAAO,eAAS,GAAIA,GACpBurO,UAAWxlQ,KAAKwlQ,UAChBI,gBAAiB5lQ,KAAK4lQ,gBACtBrB,eAAgBvkQ,KAAKukQ,kBAIjC,GAAY5mI,aAAe8nI,GCtFpB,IAAII,GAAc,WACdC,GAAmB,gBACnBC,GAAoB,WACpBC,GAA2B,kBAC3BC,GAAmB,UACnBC,GAAwB,eACxBC,GAAwB,eACxBC,GAAyB,gBACzBC,GAAiC,GAAGx0P,OAAOs0P,GAAuB,KAAKt0P,OAAOq0P,IAC9EI,GAAoB,iB,aCP3B,GAAY,CAAC,YAAa,QAAS,UAAW,YAqBvC,GAAep5P,IACtB,IACIy0D,UAAWA,EACXlJ,MAAOA,EACPx+B,OACIixB,QAASA,EACT2yD,SAAUA,GAEdh8G,MAAOA,GACPqL,EACJ,OAAO,gBAAqB,EAAG,GAAa,CACxCy0D,UAAWA,EACXlJ,MAAOA,EACPvN,QAASA,EACT2yD,SAAUA,EACVx2C,SAAUxlE,KAGP0kQ,GAAY,CACnBnlQ,MAAO,EACPy8G,UAAU,EACVl8C,UAAWskM,IAER,MAAM,WAAa,QACtB,YAAYhsO,GACR07E,MAAM17E,GACNj6B,KAAK4vC,MAAQ,GAEjB,YACI,OAAO,gBAAO,OAAoB/0C,aAAa,gBAAiBmF,KAAK6B,OAEzE,YACI,OAAO7B,KAAKi6B,MAAM74B,MAAQ,EAE9B,gBACI,IACIy8G,SAAUA,GACV79G,KAAKi6B,MACT,OAAO,gBAAe,CAClB,CAAC,GAAGpoB,OAAO7R,KAAKi6B,MAAM0nC,cAAe3hE,KAAKi6B,MAAM0nC,UAChD,CAACukM,MAA0BroJ,IAGnC,qBACI,IAAI+mJ,EAAc5kQ,KAAKi6B,MACnB4qO,EAAY,gBAA8BD,EAAa,IAC3D,OAAOC,EAEX,SACI,IAAI5qO,EAAQj6B,KAAKi6B,MACjB,OAAO,GAAa,CAChBA,MAAO,eAAS,GAAIA,GACpBw+B,MAAOz4D,KAAKy4D,MACZ52D,MAAO7B,KAAK6B,MACZ8/D,UAAW3hE,KAAK2hE,UAChB4iM,eAAgBvkQ,KAAKukQ,kBAIjC,GAAK5mI,aAAe4oI,G,iBChFhB,GAAY,CAAC,eACbC,GAAa,CAAC,gBAAiB,YAAa,YAAa,mBAqBzDC,GAA6B,eACtB,GAAev5P,IACtB,IACI01P,MAAOA,GACP11P,EACAw5P,EAAc9D,EAAM9mQ,IAAI46F,IACxB,IACI57F,IAAKA,EACL6rQ,UAAWA,GACXjwK,EACJ,OAAOiwK,EAAY,gBAAqB,EAAG,GAAM,CAC7CvlQ,MAAOulQ,EAAUvlQ,MACjBy8G,SAAU8oJ,EAAU9oJ,SACpB3yD,QAASy7M,EAAUz7M,SACpBpwD,GAAO,gBAAY,EAAG,MAAO2rQ,GAA4B,QAAS,GAAI,KAAM3rQ,KAEnF,OAAO,gBAAe4rQ,EAAa,IAEnCE,GAAgB,EAEpB,SAASC,GAAiBrwD,EAAYswD,EAAmBnpK,GACrD,OAAI,IAAM64G,EACC,OAEPA,EAAaswD,IAAsBnpK,EAAY,EACxC,MAEJ,OAGX,SAASopK,GAAwCC,EAAsBrpK,EAAWspK,GAC9E,IAAIC,EAAc,GACdC,EAAkB,GACtB,OAAQF,GACJ,IAAK,OACDC,EAAc,IAAIF,GAClB,MACJ,IAAK,OACDE,EAAc,CAAC,EAAG,SAAUF,EAAsB,OAAQrpK,EAAY,GACtEwpK,EAAkBH,EAAqB3jP,MAAM,GAAI,GACjD,MACJ,IAAK,OACD6jP,EAAc,CAAC,KAAMF,EAAsB,OAAQrpK,EAAY,GAC/DwpK,EAAkBH,EAAqB3jP,MAAM,GAAI,GACjD,MACJ,IAAK,MACD6jP,EAAc,CAAC,EAAG,SAAUF,EAAsBrpK,EAAY,GAC9DwpK,EAAkBH,EAAqB3jP,MAAM,GAErD,MAAO,CACH2jP,qBAAsBA,EACtBG,gBAAiBA,EACjBD,YAAaA,GAIrB,SAASE,GAAkB5wD,EAAYswD,EAAmBnpK,EAAWspK,GAEjE,IADA,IAAID,EAAuB,GAClBvrQ,EAAI,EAAGA,EAAIqrQ,EAAmBrrQ,GAAK,EACxCurQ,EAAqB/jQ,KAAKxH,EAAI+6M,GAElC,OAAOuwD,GAAwCC,EAAsBrpK,EAAWspK,GAEpF,IAAII,GAAsB,CACtB,gBACI,OAAOlC,GAAmB5pM,WAE9B,oBACI,OAAO4pM,GAAmBlB,eAE9B,gBACI,OAAOkB,GAAmBxnK,YAG3B,MAAM,WAAmB,QAC5B,YAAY1jE,GACR07E,MAAM17E,GACNj6B,KAAK4vC,MAAQ,GACb5vC,KAAKsnQ,sBAAwBtnQ,KAAKsnQ,sBAAsB98O,KAAKxqB,MAC7DA,KAAKunQ,oBAAsBvnQ,KAAKunQ,oBAAoB/8O,KAAKxqB,MACzDA,KAAKwnQ,oBAAsBxnQ,KAAKwnQ,oBAAoBh9O,KAAKxqB,MACzDA,KAAKynQ,YAAcznQ,KAAKynQ,YAAYj9O,KAAKxqB,MAE7C,aACI,MAAI,kBAAmBA,KAAKkxF,QACjBlxF,KAAKkxF,QAAQw2K,cAEjB,QAEX,yBACI,IAAIC,EAAqB3nQ,KAAK4nQ,yBAC9B,OAAKD,GACM,CACHR,gBAAiB,GACjBH,qBAAsB,IAKlC,sBAAsBa,EAAkBtsM,GACpC,IACI4rM,gBAAiBA,GACjBnnQ,KAAK2nQ,mBACLG,EAA8BX,EAAgB9jP,OAAO,GAAG,GAAKwkP,EAAmB,EAChFE,EAA0BZ,EAAgBnkQ,SAASu4D,GACvD,OAAOusM,GAA+BC,EAE1C,sBACI,IACIpqK,UAAWA,EACXpiC,UAAWA,GACXv7D,KAAKi6B,MACLu8K,EAAa,GAEbwwD,qBAAsBA,GACtBhnQ,KAAK2nQ,mBAELnxD,EADAj7I,IAAcyrM,EAAqB,GACtBzrM,EAAY,EAClBA,IAAcyrM,EAAqBA,EAAqBptQ,OAAS,GAC3D2hE,EAAY,EAAIqrM,GACtBrrM,EAAYqrM,GACN,EACNrrM,GAAaoiC,EAAYipK,GACnBjpK,EAAYipK,GAAgB,EAE5BrrM,EAAY,EAE7B,IAAIurM,EAAoBF,GACpBK,EAAYJ,GAAiBrwD,EAAYswD,EAAmBnpK,GAC5DqqK,EAAqBZ,GAAkB5wD,EAAYswD,EAAmBnpK,EAAWspK,IAE7EC,YAAaA,GACbc,EACJL,EAAqB,gBAA8BK,EAAoB,IAE3E,OADAhoQ,KAAK4nQ,yBAA2BD,EACzBT,EAEX,sBACI,IACIjD,cAAeA,EACftmK,UAAWA,GACX39F,KAAKi6B,MACT,OAAO0jE,GAAaipK,IAAiBjpK,GAAasmK,EAEtD,YAAY1oM,GACRv7D,KAAKi6B,MAAMiqO,gBAAgB3oM,GAE/B,kBACI,IACIoiC,UAAWA,GACX39F,KAAKi6B,MACT,GAAIj6B,KAAKwnQ,sBACL,OAAOJ,GAAkB,EAAGzpK,EAAWA,EAAW,QAAQupK,YAE9D,GAAIlnQ,KAAKsnQ,sBAAsB3pK,EAAW39F,KAAKi6B,MAAMshC,WAAY,CAC7D,IACIyrM,qBAAsBA,GACtBhnQ,KAAK2nQ,mBACLV,EAAYJ,GAAiBG,EAAqB,GAAIJ,GAAejpK,GACzE,OAAOopK,GAAwCC,EAAsBrpK,EAAWspK,GAAWC,YAE/F,OAAOlnQ,KAAKunQ,sBAEhB,YACI,IAAIU,GAEA1sM,UAAWA,GACXv7D,KAAKi6B,MACLiuO,EAAa9mQ,IACb,IAAIuiQ,EAAa,QAAUviQ,GAAS,SAAWA,EAAQ,KAAO,CAC1DA,MAAOA,EACP8pD,QAAS,IAAMlrD,KAAKynQ,YAAYrmQ,GAChCy8G,SAAUtiD,IAAcn6D,GAE5B,MAAO,CACHtG,IAAKsG,EAAMqgB,WACXklP,UAAWhD,IAGfwE,EAAiB,QAAUF,EAAejoQ,KAAKmhE,cAAW,IAAW8mM,GAAgBA,EAAa58O,WAAa,IAAIrrB,KAAKknQ,aAAa9wK,UAAYp2F,KAAKknQ,YAC1J,OAAOiB,EAAersQ,IAAIsF,GAAS8mQ,EAAW9mQ,IAElD,qBACI,IAAIwjQ,EAAc5kQ,KAAKi6B,MACnB4qO,EAAY,gBAA8BD,EAAa4B,IAC3D,OAAO3B,EAEX,SACI,IAAI5qO,EAAQj6B,KAAKi6B,MACjB,OAAO,GAAa,CAChBA,MAAO,eAAS,GAAIA,GACpBknC,OAAQnhE,KAAKmhE,OACb+lM,YAAalnQ,KAAKknQ,YAClBtE,MAAO5iQ,KAAK4iQ,MACZ2B,eAAgBvkQ,KAAKukQ,kBAIjC,GAAW5mI,aAAe0pI,G,8BC7Nfe,GAAmB,CAC1BljN,mBAAmB,EACnBpC,oBAAoB,EACpB,wBACI,MAAO,YAAc+1D,GAAA,KAAQC,OAAOC,aAAeF,GAAA,KAAQyd,gBCDxD+xI,GAAmB,CAC1B5vM,MAAO,GACP,gBACI,OAAO,eAAW,kBAAa,WAAa,WCLhD,GAAY,CAAC,YAAa,qBAAsB,YAAa,eAAgB,WAAY,oBAAqB,SAAU,OAAQ,oBAAqB,sBAAuB,UAAW,QAAS,YAAa,MAAO,MAAO,OAAQ,OAAQ,UAAW,YAAa,YAAa,WAAY,aAAc,kBAAmB,OAAQ,WAAY,sBAAuB,kBAAmB,mBAAoB,wBAAyB,mBAAoB,QAAS,cAAe,UAAW,SAqB/d6vM,GAAgB,EACT,GAAep7P,IACtB,IACIq7P,eAAgBA,EAChBhE,eAAgBA,GAChBr3P,EACJ,OAAO,gBAAe,gBAAqB,EAAG,QAAqB,eAAS,CACxEs7P,cAAe,GACfD,eAAgBA,EAChBE,cAAe,IAChBlE,MAEImE,GAAiBlrQ,OAAOqlC,OAAOrlC,OAAOm/B,UAAW,eAASn/B,OAAOynQ,0BAA0B,SAAcznQ,OAAOynQ,0BAA0B,CACjJ0D,aAAcL,GACdM,yBAAyB,MAElBC,GAAqB,CAC5B,mBACI,OAAOH,GAAeC,cAE1B,eACI,OAAOD,GAAenxM,UAE1B,WACI,OAAOmxM,GAAe9mQ,MAE1B,sBACI,OAAO8mQ,GAAe1jH,iBAE1B,uBACI,OAAO0jH,GAAe3vD,kBAE1B,4BACI,OAAO2vD,GAAehnD,uBAE1B,uBACI,OAAOgnD,GAAezvD,kBAE1B,cACI,OAAOyvD,GAAe5jH,SAE1B,gBACI,OAAO4jH,GAAe/mM,WAE1B,yBACI,OAAOymM,GAAiBtlN,oBAE5B,eACI,OAAO4lN,GAAe3kN,UAE1B,wBACI,OAAOqkN,GAAiBvjN,mBAE5B,wBACI,OAAOujN,GAAiBljN,mBAE5B,eACI,OAAOwjN,GAAel/M,UAE1B,cACI,OAAOk/M,GAAe/+M,SAE1B,YACI,OAAO0+M,GAAiB5vM,OAE5B,gBACI,OAAO4vM,GAAiBnxM,WAE5B0xM,yBAAyB,GAEtB,MAAM,WAAkB,QAC3B,YAAY3uO,GACR07E,MAAM17E,GACNj6B,KAAK4vC,MAAQ,CACT/tC,WAAO,IAAW7B,KAAKi6B,MAAMp4B,MAAQ7B,KAAKi6B,MAAMp4B,MAAQ7B,KAAKi6B,MAAM0uO,cAG3E,qBACI,OAAO,eAAS,GAAI3oQ,KAAKi6B,MAAO,CAC5Bp4B,WAAO,IAAW7B,KAAKi6B,MAAMp4B,MAAQ7B,KAAKi6B,MAAMp4B,MAAQ7B,KAAK4vC,MAAM/tC,QAG3E,qBACI,IAAIinQ,EAAoB,eAAS,GAAI9oQ,KAAKi6B,MAAO,CACzCp4B,WAAO,IAAW7B,KAAKi6B,MAAMp4B,MAAQ7B,KAAKi6B,MAAMp4B,MAAQ7B,KAAK4vC,MAAM/tC,QAEvEgjQ,EAAY,gBAA8BiE,EAAmB,IACjE,OAAOjE,EAEX,SACI,IAAI5qO,EAAQj6B,KAAKi6B,MACjB,OAAO,GAAa,CAChBA,MAAO,eAAS,GAAIA,EAAO,CACvBp4B,WAAO,IAAW7B,KAAKi6B,MAAMp4B,MAAQ7B,KAAKi6B,MAAMp4B,MAAQ7B,KAAK4vC,MAAM/tC,QAEvE0mQ,eAAgBvoQ,KAAKuoQ,eACrBhE,eAAgBvkQ,KAAKukQ,kBAIjC,GAAU5mI,aAAekrI,GC3HlB,IAAIE,GAAgB,GACpB,SAASC,GAA2B77M,EAAUr3B,GACjD,OAAOq3B,EAAW47M,GAAgBpnP,KAAKqQ,OAAO8D,GAAQrU,WAAW7nB,OCArE,IAAI,GAAY,CAAC,YAAa,YAAa,kBAAmB,kBA4B1DqvQ,GAAwB,GAAGp3P,OAAOuzP,GAAkB,kBACpD8D,GAAyB,gBACzBC,GAAoB,iBACpBC,GAA0B,iBACnB,GAAel8P,IACtB,IACIm8P,aAAcA,EACdjF,eAAgBA,EAChBnqO,OACI0jE,UAAWA,GAEf2rK,oBAAqBA,EACrBznQ,MAAOA,EACP0nQ,YAAaA,EACbhiQ,MAAOA,GACP2F,EACJ,OAAO,gBAAY,EAAG,MAAOi8P,GAAmB,CAAC,gBAAqB,EAAG,GAAW,CAChFxnM,UAAWunM,GACXtnP,IAAK,EACLoQ,IAAK2rE,EACLp2F,MAAOA,EACP1F,MAAOA,EACP0nQ,YAAaA,IACb,gBAAY,EAAG,OAAQN,GAAuB7E,EAAgB,GAAI,gBAAqB,EAAG,GAAM,CAChGziM,UAAWynM,GACXvrJ,UAAU,EACVz8G,MAAOu8F,EAAY,EACnBzyC,QAASo+M,KACR,EAAG,KAAM,KAAMD,IAEpBG,GAAkB,CAClB,gBACI,OAAOrE,GAAmB5pM,WAE9B,gBACI,OAAO4pM,GAAmBxnK,YAM3B,MAAM,WAAmB,QAC5B,YAAY1jE,GACR07E,MAAM17E,GACNj6B,KAAKqpQ,aAAe,kBACpBrpQ,KAAK4vC,MAAQ,CACTud,SAAU,IAEdntD,KAAKypQ,YAAczpQ,KAAKypQ,YAAYj/O,KAAKxqB,MACzCA,KAAKspQ,oBAAsBtpQ,KAAKspQ,oBAAoB9+O,KAAKxqB,MACzDA,KAAKupQ,YAAcvpQ,KAAKupQ,YAAY/+O,KAAKxqB,MAE7C,gBACI,MAAO,CAAC,IAAI,QAAcA,KAAKypQ,YAAa,CAACzpQ,KAAK4vC,MAAMud,YAE5D,gBACI,IAAIy2M,EACJ,QAAUA,EAAkB5jQ,KAAK8jQ,SAAS,UAAO,IAAWF,GAA2BA,EAAgBpwL,OAAO,CAACxzE,KAAK4vC,MAAMud,WAE9H,cACI,IAAIu8M,EACAr8Q,EAAK,QAAUq8Q,EAAwB1pQ,KAAKqpQ,aAAavmJ,eAAY,IAAW4mJ,OAAwB,EAASA,EAAsB3zL,cAAc,IAAIlkE,OAAOq3P,KACpKlpQ,KAAK0kQ,SAASC,IAAoB,CAC9Bx3M,SAAU9/D,GAAMy0Q,GAAmBz0Q,IAAOs3Q,EAAiBx3M,YAGnE,YACI,OAAOntD,KAAKi6B,MAAMshC,UAAY,EAElC,YACI,IACIoiC,UAAWA,GACX39F,KAAKi6B,MACT,OAAO+uO,GAA2BhpQ,KAAK4vC,MAAMud,SAAU,CAACwwC,IAE5D,qBACI,IAAIgsK,EACJ,OAAQ,QAAUA,EAAwB3pQ,KAAKi6B,MAAMmqO,sBAAmB,IAAWuF,EAAwBA,EAAwB,KAAO,OAAoB9uQ,aAAa,yBAAjC,GAE9I,sBACImF,KAAKi6B,MAAMiqO,gBAAgBlkQ,KAAKi6B,MAAM0jE,UAAY,GAEtD,YAAY97F,GACR7B,KAAKi6B,MAAMiqO,gBAAgBriQ,EAAQ,GAEvC,qBACI,IAAI+iQ,EAAc5kQ,KAAKi6B,MACnB4qO,EAAY,gBAA8BD,EAAa,IAC3D,OAAOC,EAEX,SACI,IAAI5qO,EAAQj6B,KAAKi6B,MACjB,OAAO,GAAa,CAChBA,MAAO,eAAS,GAAIA,GACpBovO,aAAcrpQ,KAAKqpQ,aACnBxnQ,MAAO7B,KAAK6B,MACZ0F,MAAOvH,KAAKuH,MACZ68P,eAAgBpkQ,KAAKokQ,eACrBkF,oBAAqBtpQ,KAAKspQ,oBAC1BC,YAAavpQ,KAAKupQ,YAClBhF,eAAgBvkQ,KAAKukQ,kBAIjC,GAAW5mI,aAAe6rI,GCpI1B,IAAI,GAAY,CAAC,mBAAoB,qBAAsB,gBAAiB,YAAa,YAAa,kBAAmB,iBAAkB,wBAAyB,cA2BhKI,GAAwB,qBACxBC,GAA0B,iBAC1BC,GAA0B,iBACnBC,GAA6B,oBACpCC,GAAqB,IAAM,OAAoBnvQ,aAAa,mBAAjC,GAC3BovQ,GAAqB,IAAM,OAAoBpvQ,aAAa,mBAAjC,GAC3BqvQ,GAAa,CACbC,iBAAkB,GAAGt4P,OAAO+3P,GAAuB,KAAK/3P,OAAOi4P,IAC/DM,iBAAkB,GAAGv4P,OAAO+3P,GAAuB,KAAK/3P,OAAOg4P,IAC/DQ,kBAAmB,GAAGx4P,OAAOk4P,GAA4B,KAAKl4P,OAAO+3P,GAAuB,KAAK/3P,OAAOi4P,IACxGQ,kBAAmB,GAAGz4P,OAAOk4P,GAA4B,KAAKl4P,OAAO+3P,GAAuB,KAAK/3P,OAAOg4P,KAExGU,GAAoB,CACpB59P,KAAM,OACND,KAAM,QAEC,GAAeQ,IACtB,IACIs9P,gBAAiBA,EACjBtG,gBAAiBA,EACjBuG,gBAAiBA,EACjBxwO,OACIkoO,mBAAoBA,EACpB8B,cAAeA,EACftmK,UAAWA,EACXpiC,UAAWA,EACX6oM,eAAgBA,GAEpBsG,iBAAkBA,EAClBC,iBAAkBA,GAClBz9P,EACJ,OAAO,gBAAe,CAACy9P,GAAoB,gBAAqB,EAAG,GAAa,CAC5ElyM,MAAOwxM,KACPtoM,UAAW8oM,EAAgB9oM,UAC3BnY,SAAUihN,EAAgBjhN,SAC1B0B,QAASu/M,EAAgBG,WACzBzI,GAAsB,gBAAqB,EAAG,GAAY,CAC1D8B,cAAeA,EACftmK,UAAWA,EACXpiC,UAAWA,EACX2oM,gBAAiBA,KAChB/B,GAAsB,gBAAqB,EAAG,GAAY,CAC3DxkK,UAAWA,EACXpiC,UAAWA,EACX2oM,gBAAiBA,EACjBE,eAAgBA,IAChBsG,GAAoB,gBAAqB,EAAG,GAAa,CACzDjyM,MAAOuxM,KACProM,UAAW6oM,EAAgB7oM,UAC3BnY,SAAUghN,EAAgBhhN,SAC1B0B,QAASs/M,EAAgBI,YACxB,IAGT,SAASC,GAAa9wM,GAClB,MAAO,SAAWA,EAAY,GAAK,EAEhC,IAAI+wM,GAAyB,CAChC3I,oBAAoB,GAEpB4I,GAA6B,CAC7B,gBACI,OAAO5F,GAAmB5pM,WAE9B,oBACI,OAAO4pM,GAAmBlB,eAE9B,gBACI,OAAOkB,GAAmBxnK,WAE9B,uBACI,OAAOwnK,GAAmB/mK,kBAE9B,4BACI,OAAO+mK,GAAmB9pM,uBAE9B,iBACI,OAAO8pM,GAAmBvqK,YAE9B,yBACI,OAAOkwK,GAAuB3I,qBAG/B,MAAM,WAA0B,QACnC,YAAYloO,GACR07E,MAAM17E,GACNj6B,KAAK4vC,MAAQ,GACb5vC,KAAKgrQ,cAAgB,GACrBhrQ,KAAKkkQ,gBAAkBlkQ,KAAKkkQ,gBAAgB15O,KAAKxqB,MACjDA,KAAKirQ,eAAiBjrQ,KAAKirQ,eAAezgP,KAAKxqB,MAC/CA,KAAKkrQ,kBAAoBlrQ,KAAKkrQ,kBAAkB1gP,KAAKxqB,MACrDA,KAAKmrQ,iBAAmBnrQ,KAAKmrQ,iBAAiB3gP,KAAKxqB,MACnDA,KAAKorQ,cAAgBprQ,KAAKorQ,cAAc5gP,KAAKxqB,MAC7CA,KAAKqrQ,eAAiBrrQ,KAAKqrQ,eAAe7gP,KAAKxqB,MAEnD,aACI,MAAI,kBAAmBA,KAAKkxF,QACjBlxF,KAAKkxF,QAAQw2K,cAEjB,QAEX,gBAAgBnsM,GACRv7D,KAAKkrQ,kBAAkB3vM,IACvBv7D,KAAKi6B,MAAMiqO,gBAAgB3oM,GAGnC,eAAexB,GACX,IAAIkuM,EACAqD,EAAoB,QAAUrD,EAAejoQ,KAAKmhE,cAAW,IAAW8mM,GAAgBA,EAAa58O,WAAak/O,GAAkBxwM,GAAaA,EACjJwxM,EAAcvrQ,KAAKorQ,cAAcE,GACjC3pM,EAAYuoM,GAAW,GAAGr4P,OAAOkoD,GAAWloD,OAAO05P,EAAc,UAAY,WAAY,UAC7F,MAAO,CACH5pM,UAAWA,EACXnY,SAAU+hN,EAAc,GAAK,EAC7BX,SAAU,IAAM5qQ,KAAKqrQ,eAAeC,IAG5C,kBAAkB/vM,GACd,OAAKv7D,KAAKi6B,MAAMmkE,iBAGT7iC,GAAa,GAAKA,GAAav7D,KAAKi6B,MAAM0jE,UAAY,EAFlDpiC,GAAa,EAI5B,iBAAiBxB,GACb,OAAO/5D,KAAKi6B,MAAMshC,UAAYsvM,GAAa9wM,GAE/C,cAAcA,GACV,OAAO/5D,KAAKkrQ,kBAAkBlrQ,KAAKmrQ,iBAAiBpxM,IAExD,eAAeA,GACX/5D,KAAKkkQ,gBAAgBlkQ,KAAKmrQ,iBAAiBpxM,IAE/C,uBACI,IACIooM,mBAAoBA,EACpB9mM,sBAAuBA,GACvBr7D,KAAKi6B,MACT,OAAQkoO,GAAsB9mM,EAElC,uBACI,OAAOr7D,KAAK2qQ,mBAAqB3qQ,KAAKi6B,MAAMmkE,iBAEhD,sBACI,YAAI,IAAWp+F,KAAKgrQ,cAAcP,gBACvBzqQ,KAAKgrQ,cAAcP,gBAEvBzqQ,KAAKgrQ,cAAcP,gBAAkB,KAAOzqQ,KAAKirQ,eAAe,QAA3B,GAEhD,sBACI,YAAI,IAAWjrQ,KAAKgrQ,cAAcR,gBACvBxqQ,KAAKgrQ,cAAcR,gBAEvBxqQ,KAAKgrQ,cAAcR,gBAAkB,KAAOxqQ,KAAKirQ,eAAe,QAA3B,GAEhD,qBACI,IAAIrG,EAAc5kQ,KAAKi6B,MACnB4qO,EAAY,gBAA8BD,EAAa,IAC3D,OAAOC,EAEX,oBAAoB2G,EAAWC,EAAWv6K,GAClClxF,KAAKkxF,QAAQw2K,gBAAkBx2K,EAAQw2K,eAAiB1nQ,KAAKi6B,MAAMmkE,mBAAqBotK,EAAUptK,kBAAoBp+F,KAAKi6B,MAAM0jE,YAAc6tK,EAAU7tK,WAAa39F,KAAKi6B,MAAMshC,YAAciwM,EAAUjwM,WAAav7D,KAAKi6B,MAAMiqO,kBAAoBsH,EAAUtH,kBAC/PlkQ,KAAKgrQ,cAAcP,qBAAkB,GAErCzqQ,KAAKkxF,QAAQw2K,gBAAkBx2K,EAAQw2K,eAAiB1nQ,KAAKi6B,MAAMmkE,mBAAqBotK,EAAUptK,kBAAoBp+F,KAAKi6B,MAAM0jE,YAAc6tK,EAAU7tK,WAAa39F,KAAKi6B,MAAMshC,YAAciwM,EAAUjwM,WAAav7D,KAAKi6B,MAAMiqO,kBAAoBsH,EAAUtH,kBAC/PlkQ,KAAKgrQ,cAAcR,qBAAkB,GAG7C,SACI,IAAIvwO,EAAQj6B,KAAKi6B,MACjB,OAAO,GAAa,CAChBA,MAAO,eAAS,GAAIA,GACpBknC,OAAQnhE,KAAKmhE,OACb+iM,gBAAiBlkQ,KAAKkkQ,gBACtByG,iBAAkB3qQ,KAAK2qQ,iBACvBD,iBAAkB1qQ,KAAK0qQ,iBACvBD,gBAAiBzqQ,KAAKyqQ,gBACtBD,gBAAiBxqQ,KAAKwqQ,gBACtBjG,eAAgBvkQ,KAAKukQ,kBAIjC,GAAkB5mI,aAAeotI,GChNjC,IAAI,GAAY,CAAC,YAAa,qBAAsB,YAAa,aAAc,eAAgB,WAAY,cAAe,oBAAqB,SAAU,OAAQ,oBAAqB,UAAW,QAAS,YAAa,OAAQ,UAAW,YAAa,YAAa,WAAY,aAAc,WAAY,kBAAmB,mBAAoB,wBAAyB,mBAAoB,QAAS,cAAe,YAAa,UAAW,SAqBna,GAAe79P,IACtB,IACIq7P,eAAgBA,EAChBhE,eAAgBA,GAChBr3P,EACJ,OAAO,gBAAe,gBAAqB,EAAG,QAAqB,eAAS,CACxEs7P,cAAe,cACfD,eAAgBA,EAChBE,cAAe,CAAC,yBAA0B,gBAAiB,iBAC5DlE,MAEImH,GAAiBluQ,OAAOqlC,OAAOrlC,OAAOm/B,UAAW,eAASn/B,OAAOynQ,0BAA0B,SAAcznQ,OAAOynQ,0BAA0B,CACjJ0D,aAAc,KACdC,yBAAyB,MAElB+C,GAAqB,CAC5B,mBACI,OAAOD,GAAe/C,cAE1B,eACI,OAAO+C,GAAen0M,UAE1B,WACI,OAAOm0M,GAAe9pQ,MAE1B,sBACI,OAAO8pQ,GAAe1mH,iBAE1B,uBACI,OAAO0mH,GAAe3yD,kBAE1B,4BACI,OAAO2yD,GAAehqD,uBAE1B,uBACI,OAAOgqD,GAAezyD,kBAE1B,cACI,OAAOyyD,GAAe5mH,SAE1B,gBACI,OAAO4mH,GAAe/pM,WAE1B,yBACI,OAAOymM,GAAiBtlN,oBAE5B,eACI,OAAO4oN,GAAe3nN,UAE1B,wBACI,OAAOqkN,GAAiBvjN,mBAE5B,wBACI,OAAOujN,GAAiBljN,mBAE5B,eACI,OAAOwmN,GAAeliN,UAE1B,cACI,OAAOkiN,GAAe/hN,SAE1B,YACI,OAAO0+M,GAAiB5vM,OAE5B,gBACI,OAAO4vM,GAAiBnxM,WAE5B0xM,yBAAyB,GAEtB,MAAM,WAAkB,QAC3B,YAAY3uO,GACR07E,MAAM17E,GACNj6B,KAAK4vC,MAAQ,CACT/tC,WAAO,IAAW7B,KAAKi6B,MAAMp4B,MAAQ7B,KAAKi6B,MAAMp4B,MAAQ7B,KAAKi6B,MAAM0uO,cAG3E,qBACI,OAAO,eAAS,GAAI3oQ,KAAKi6B,MAAO,CAC5Bp4B,WAAO,IAAW7B,KAAKi6B,MAAMp4B,MAAQ7B,KAAKi6B,MAAMp4B,MAAQ7B,KAAK4vC,MAAM/tC,QAG3E,qBACI,IAAIinQ,EAAoB,eAAS,GAAI9oQ,KAAKi6B,MAAO,CACzCp4B,WAAO,IAAW7B,KAAKi6B,MAAMp4B,MAAQ7B,KAAKi6B,MAAMp4B,MAAQ7B,KAAK4vC,MAAM/tC,QAEvEgjQ,EAAY,gBAA8BiE,EAAmB,IACjE,OAAOjE,EAEX,SACI,IAAI5qO,EAAQj6B,KAAKi6B,MACjB,OAAO,GAAa,CAChBA,MAAO,eAAS,GAAIA,EAAO,CACvBp4B,WAAO,IAAW7B,KAAKi6B,MAAMp4B,MAAQ7B,KAAKi6B,MAAMp4B,MAAQ7B,KAAK4vC,MAAM/tC,QAEvE0mQ,eAAgBvoQ,KAAKuoQ,eACrBhE,eAAgBvkQ,KAAKukQ,kBAIjC,GAAU5mI,aAAeguI,GCxHzB,IAAI,GAAY,CAAC,WAAY,iBAAkB,YAAa,aAoBjD,GAAez+P,IACtB,IACI+sB,OACIuhC,SAAUA,EACV2oM,eAAgBA,EAChBzB,UAAWA,GAEfn7P,MAAOA,GACP2F,EACJ,OAAO,gBAAqB,EAAG,GAAW,CACtC8iB,YAAa,OACbD,UAAW,QACXxG,WAAYm5O,EACZ7gQ,MAAO25D,EACP+tM,YAAapF,EACb58P,MAAOA,KAIXqkQ,GAAyB,CACzB,eACI,OAAOzG,GAAmB3pM,WAG3B,MAAM,WAAsB,QAC/B,YAAYvhC,GACR07E,MAAM17E,GACNj6B,KAAK4vC,MAAQ,CACTud,SAAU,IAEdntD,KAAKypQ,YAAczpQ,KAAKypQ,YAAYj/O,KAAKxqB,MAE7C,gBACI,MAAO,CAAC,IAAI,QAAcA,KAAKypQ,YAAa,CAACzpQ,KAAKi6B,MAAOj6B,KAAK4vC,MAAMud,SAAUntD,KAAKi6B,MAAMuhC,SAAUx7D,KAAKi6B,MAAMkqO,eAAgBnkQ,KAAKi6B,MAAMyoO,aAE7I,gBACI,IAAIkB,EACJ,QAAUA,EAAkB5jQ,KAAK8jQ,SAAS,UAAO,IAAWF,GAA2BA,EAAgBpwL,OAAO,CAACxzE,KAAKi6B,MAAOj6B,KAAK4vC,MAAMud,SAAUntD,KAAKi6B,MAAMuhC,SAAUx7D,KAAKi6B,MAAMkqO,eAAgBnkQ,KAAKi6B,MAAMyoO,YAE/M,cACI1iQ,KAAK0kQ,SAASC,IAAoB,CAC9Bx3M,SAAU20M,GAAmB9hQ,KAAKi6B,MAAMqoO,UAAUx/I,UAAY6hJ,EAAiBx3M,YAGvF,YACI,OAAO67M,GAA2BhpQ,KAAK4vC,MAAMud,SAAUntD,KAAKi6B,MAAMyoO,UAAU5mQ,IAAI+/B,GAAKA,EAAEh6B,QAE3F,qBACI,IAAI+iQ,EAAc5kQ,KAAKi6B,MACnB4qO,EAAY,gBAA8BD,EAAa,IAC3D,OAAOC,EAEX,SACI,IAAI5qO,EAAQj6B,KAAKi6B,MACjB,OAAO,GAAa,CAChBA,MAAO,eAAS,GAAIA,GACpB1yB,MAAOvH,KAAKuH,MACZg9P,eAAgBvkQ,KAAKukQ,kBAIjC,GAAc5mI,aAAeiuI,GCjF7B,IAAI,GAAY,CAAC,WAAY,iBAAkB,aAyBpC,GAAe1+P,IACtB,IACI2+P,cAAeA,GACf3+P,EACJ,OAAO,gBAAe2+P,EAAc/vQ,IAAI46F,IACpC,IACI/0B,UAAWA,EACX4sG,MAAOA,EACP91G,MAAOA,EACPl8D,KAAMA,GACNm6F,EACJ,OAAO,gBAAqB,EAAG,GAAa,CACxC/0B,UAAWA,EACXlJ,MAAOA,EACPvN,QAASqjH,EACTlnG,SAAU9qE,GACXA,KACH,IAGJuvQ,GAAyB,CACzB,eACI,OAAO3G,GAAmB3pM,WAG3B,MAAM,WAAsB,QAC/B,YAAYvhC,GACR07E,MAAM17E,GACNj6B,KAAK4vC,MAAQ,GACb5vC,KAAKgrQ,cAAgB,GACrBhrQ,KAAK+rQ,iBAAmB/rQ,KAAK+rQ,iBAAiBvhP,KAAKxqB,MAEvD,oBACI,YAAI,IAAWA,KAAKgrQ,cAAca,cACvB7rQ,KAAKgrQ,cAAca,cAEvB7rQ,KAAKgrQ,cAAca,cAAgB,MACtC,IACIrwM,SAAUA,EACVknM,UAAWA,GACX1iQ,KAAKi6B,MACT,OAAOyoO,EAAU5mQ,IAAI,CAACqhG,EAAO/7F,KACzB,IACI7E,KAAMA,EACNsF,MAAOmqQ,GACP7uK,EACA0gB,EAAWmuJ,IAAsBxwM,EACjCmG,EAAY,gBAAe,CAC3B,CAACk8C,EAAWwoJ,GAAiCF,KAAwB,EACrE,CAACG,IAAoB,IAAMllQ,IAE/B,MAAO,CACHugE,UAAWA,EACX4sG,MAAOvuK,KAAK+rQ,iBAAiBC,GAC7BvzM,MAAO,WAAW5mD,OAAOm6P,EAAmB,kBAC5CzvQ,KAAMA,MAnBwB,GAwB9C,iBAAiByvQ,GACb,MAAO,KACHhsQ,KAAKi6B,MAAMkqO,eAAe6H,GACnBhsQ,KAAKi6B,MAAMuhC,UAG1B,qBACI,IAAIopM,EAAc5kQ,KAAKi6B,MACnB4qO,EAAY,gBAA8BD,EAAa,IAC3D,OAAOC,EAEX,oBAAoB2G,EAAWC,EAAWv6K,GAClClxF,KAAKi6B,MAAMuhC,WAAagwM,EAAUhwM,UAAYx7D,KAAKi6B,MAAMyoO,YAAc8I,EAAU9I,WAAa1iQ,KAAKi6B,MAAMkqO,iBAAmBqH,EAAUrH,iBACtInkQ,KAAKgrQ,cAAca,mBAAgB,GAG3C,SACI,IAAI5xO,EAAQj6B,KAAKi6B,MACjB,OAAO,GAAa,CAChBA,MAAO,eAAS,GAAIA,GACpB4xO,cAAe7rQ,KAAK6rQ,cACpBtH,eAAgBvkQ,KAAKukQ,kBAIjC,GAAc5mI,aAAemuI,GC9G7B,IAAI,GAAY,CAAC,qBAAsB,WAAY,iBAAkB,YAAa,kBAsBvE,GAAe5+P,IACtB,IACI++P,QAASA,EACTC,oBAAqBA,EACrBjyO,OACIkoO,mBAAoBA,EACpB3mM,SAAUA,EACV2oM,eAAgBA,IAEpBj3P,EACJ,OAAO,gBAAY,EAAG,MAAOk5P,GAAwB,CAACjE,GAAsB,gBAAqB,EAAG,GAAe,CAC/GO,UAAWwJ,EACX1wM,SAAUA,EACV2oM,eAAgBA,KACfhC,GAAsB,gBAAqB,EAAG,GAAe,CAC9DG,UAAW2J,EACXvJ,UAAWwJ,EACX1wM,SAAUA,EACV2oM,eAAgBA,KACf,EAAG,KAAM,KAAM8H,IAGxB,SAASE,KACL,OAAO,OAAoBtxQ,aAAa,2BAAjC,GAEX,IAAIuxQ,GAAwB,CACxBjK,oBAAoB,GAEpBkK,GAA4B,CAC5B,eACI,OAAOlH,GAAmB3pM,UAE9B,gBACI,OAAO2pM,GAAmBzC,WAE9B,yBACI,OAAO0J,GAAsBjK,qBAM9B,MAAM,WAAyB,QAClC,YAAYloO,GACR07E,MAAM17E,GACNj6B,KAAK4vC,MAAQ,GACb5vC,KAAKisQ,QAAU,kBACfjsQ,KAAKgrQ,cAAgB,GACrBhrQ,KAAKssQ,kBAAoBtsQ,KAAKssQ,kBAAkB9hP,KAAKxqB,MAEzD,gBACI,MAAO,CAAC,IAAI,QAAcA,KAAKssQ,kBAAmB,KAEtD,oBACI,IACI9J,eAAgBA,GAChBxiQ,KAAKi6B,MACLuoO,IACAA,EAAe1/I,QAAU9iH,KAAKisQ,QAAQnpJ,SAG9C,0BACI,YAAI,IAAW9iH,KAAKgrQ,cAAckB,oBACvBlsQ,KAAKgrQ,cAAckB,oBAEvBlsQ,KAAKgrQ,cAAckB,oBAAsB,MAC5C,IACIxJ,UAAWA,GACX1iQ,KAAKi6B,MACT,OAAOyoO,EAAU5mQ,IAAI+/B,GAAK,QAAUA,GAAK,IAAMA,EAAI,CAC/Ct/B,KAAM4vQ,KACNtqQ,MAAO,GACP,CACAtF,KAAM5C,OAAOkiC,GACbh6B,MAAOg6B,KATiC,GAapD,qBACI,IAAI+oO,EAAc5kQ,KAAKi6B,MACnB4qO,EAAY,gBAA8BD,EAAa,IAC3D,OAAOC,EAEX,oBAAoB2G,EAAWC,EAAWv6K,GACtCykB,MAAM42J,sBACFvsQ,KAAKi6B,MAAMyoO,YAAc8I,EAAU9I,YACnC1iQ,KAAKgrQ,cAAckB,yBAAsB,GAGjD,SACI,IAAIjyO,EAAQj6B,KAAKi6B,MACjB,OAAO,GAAa,CAChBA,MAAO,eAAS,GAAIA,GACpBgyO,QAASjsQ,KAAKisQ,QACdC,oBAAqBlsQ,KAAKksQ,oBAC1B3H,eAAgBvkQ,KAAKukQ,kBAIjC,GAAiB5mI,aAAe0uI,G,iBCzH5B,GAAY,CAAC,YAAa,cAAe,oBAAqB,mBAAoB,WAAY,cAAe,kBAAmB,qBAAsB,QAAS,mBAAoB,gBAAiB,YAAa,YAAa,YAAa,kBAAmB,WAAY,iBAAkB,YAAa,eAAgB,iBAAkB,wBAAyB,WAAY,iBAAkB,aAAc,WAAY,wBAAyB,gBAAiB,aAAc,WAwC7c,GAAen/P,IACtB,IACIs/P,KAAMA,EACN57B,QAASA,EACT67B,YAAaA,EACbtK,mBAAoBA,EACpBuK,yBAA0BA,EAC1BC,yBAA0BA,EAC1BC,sBAAuBA,EACvB3yO,OACImkE,iBAAkBA,EAClBjjC,SAAUA,EACV8mM,YAAaA,EACbgC,cAAeA,EACftmK,UAAWA,EACXpiC,UAAWA,EACX2oM,gBAAiBA,EACjB1oM,SAAUA,EACV2oM,eAAgBA,EAChBzB,UAAWA,EACXN,aAAcA,EACdgC,eAAgBA,EAChB/B,SAAUA,EACVh3O,WAAYA,EACZgwC,sBAAuBA,EACvBipM,cAAeA,EACf1pK,WAAYA,EACZjxC,QAASA,GAEb46M,eAAgBA,EAChBsI,qBAAsBA,GACtB3/P,EACJ,OAAO,gBAAe,gBAAqB,EAAG,QAAQ,eAAS,CAC3Ds1P,eAAgBqK,EAChBxhP,WAAYA,EACZulN,QAASA,EACTjnL,QAASA,EACT6iN,KAAMA,GACPjI,EAAgB,CACfl9L,SAAU,CAACi9L,GAAiB,gBAAqB,EAAG,GAAkB,CAClE9B,eAAgBJ,EAChBD,mBAAoBA,EACpB3mM,SAAUA,EACV2oM,eAAgBA,EAChBzB,UAAWA,IACXkK,GAAyB,gBAAY,EAAG,MAAO7G,GAAmB,CAAC0G,GAAe,gBAAqB,EAAG,GAAU,CACpHjK,eAAgBP,EAChB9mM,SAAUA,EACVwiC,UAAWA,EACXpiC,UAAWA,EACXq/B,WAAYA,IACZ8xK,GAA4B,gBAAY,EAAG,MAAO1G,GAA0B,gBAAqB,EAAG,GAAmB,CACvH5nK,iBAAkBA,EAClB+jK,mBAAoBA,EACpB8B,cAAeA,EACftmK,UAAWA,EACXpiC,UAAWA,EACX2oM,gBAAiBA,EACjBE,eAAgBA,EAChB/oM,sBAAuBA,EACvBu/B,WAAYA,IACZ,EAAG,KAAM,KAAMynK,IAAY,EAAG,CAC9B/3L,MAAO,gBAAgB,CACnBy3J,WAAY4qC,YAKjBG,GAAoBtvQ,OAAOqlC,OAAOrlC,OAAOm/B,UAAW,eAASn/B,OAAOynQ,0BAA0BE,IAAqB3nQ,OAAOynQ,0BAA0B,CAC3J/C,iBAAiB,EACjBC,oBAAoB,MAKjB,MAAM,WAAqB,QAC9B,YAAYloO,GACR07E,MAAM17E,GACNj6B,KAAK4vC,MAAQ,GACb5vC,KAAK6sQ,qBAAuB,kBAC5B7sQ,KAAKgrQ,cAAgB,GACrBhrQ,KAAKssQ,kBAAoBtsQ,KAAKssQ,kBAAkB9hP,KAAKxqB,MACrDA,KAAK+sQ,mBAAqB/sQ,KAAK+sQ,mBAAmBviP,KAAKxqB,MAE3D,gBACI,MAAO,CAAC,IAAI,QAAcA,KAAKssQ,kBAAmB,KAEtD,kBACI,OAAO,eAAS,GAAItsQ,KAAKkxF,QAAS,CAC9Bq0K,sBAAuBvlQ,KAAKgtQ,iBAGpC,oBACI,IACIxK,eAAgBA,GAChBxiQ,KAAKi6B,MACLuoO,IACAA,EAAe1/I,QAAU9iH,KAAK6sQ,qBAAqB/pJ,SAG3D,qBACI,MAAO,CACH/6F,OAAQ,KAAM,EACdlB,QAAS,IAAM7mB,KAAK6sQ,qBAAqB/pJ,QACzCvhD,sBAAuB,IAAM39D,IACzB,IAAIqpQ,EAAuBrI,EAC3B,QAAUqI,GAAyBrI,EAAc5kQ,KAAKi6B,OAAO8sB,iBAAc,IAAWkmN,GAAiCA,EAAsBznP,KAAKo/O,EAAahhQ,KAI3K,qBACI,YAAI,IAAW5D,KAAKgrQ,cAAcgC,eACvBhtQ,KAAKgrQ,cAAcgC,eAEvBhtQ,KAAKgrQ,cAAcgC,eAAiB,MAAO,CAC9CjzL,uBAAwB,CAAClzD,EAASu6C,KAC9B,IAAI8rM,EAAoBltQ,KAAK+sQ,qBAC7B,OAAO,GAAwB,QAASG,EAAmBrmP,OAAS,EAAQu6C,MAHzC,GAO/C,kBACI,IACI8gM,gBAAiBA,EACjB9mM,SAAUA,GACVp7D,KAAKi6B,MACT,OAAOmhC,GAAY8mM,EAEvB,+BACI,OAAO,IAAMliQ,KAAKi6B,MAAMuhC,SAE5B,4BACI,IACIN,YAAaA,EACb8oM,iBAAkBA,GAClBhkQ,KAAKi6B,MACT,MAAI,aAAeihC,QAAe,IAAW8oM,EAClCA,EAAmB,UAAY,OAEnC9oM,EAEX,4BACI,QAASl7D,KAAKi6B,MAAMoqO,uBAAyBrkQ,KAAKi6B,MAAM0jE,UAAY,EAExE,+BACI,GAAI,SAAW39F,KAAKi6B,MAAMoqO,uBAAyB,IAAMrkQ,KAAKi6B,MAAM0jE,WAAa39F,KAAKi6B,MAAMmkE,iBACxF,MAAO,SAIf,yBACI,IAAIljC,EAAcl7D,KAAKmtQ,sBACnBluQ,GAAS,EAMb,OAJIA,EADA,aAAei8D,EACNl7D,KAAKi6B,MAAMkoO,mBAEX,SAAWjnM,EAEjBj8D,EAEX,cACI,IAAImuQ,EAAa,CACb,CAAC,GAAGv7P,OAAO7R,KAAKi6B,MAAM0nC,cAAe3hE,KAAKi6B,MAAM0nC,UAChD,CAACkkM,KAAc,EACf,CAACC,KAAoB9lQ,KAAKmiQ,oBAE9B,OAAO,gBAAeiL,GAE1B,WACI,MAAO,CACHn3J,KAAM,aACNx9C,MAAOz4D,KAAKi6B,MAAMw+B,OAG1B,qBACI,IAAI40M,EAAertQ,KAAKi6B,MACpB4qO,EAAY,gBAA8BwI,EAAc,IAC5D,OAAOxI,EAEX,oBAAoB2G,EAAWC,EAAWv6K,GACtCykB,MAAM42J,sBACFvsQ,KAAKi6B,MAAM8sB,YAAcykN,EAAUzkN,YACnC/mD,KAAKgrQ,cAAcgC,oBAAiB,GAG5C,SACI,IAAI/yO,EAAQj6B,KAAKi6B,MACjB,OAAO,GAAa,CAChBA,MAAO,eAAS,GAAIA,GACpB4yO,qBAAsB7sQ,KAAK6sQ,qBAC3BG,eAAgBhtQ,KAAKgtQ,eACrBP,YAAazsQ,KAAKysQ,YAClBC,yBAA0B1sQ,KAAK0sQ,yBAC/BE,sBAAuB5sQ,KAAK4sQ,sBAC5BD,yBAA0B3sQ,KAAK2sQ,yBAC/BxK,mBAAoBniQ,KAAKmiQ,mBACzBvxB,QAAS5wO,KAAK4wO,QACd47B,KAAMxsQ,KAAKwsQ,KACXjI,eAAgBvkQ,KAAKukQ,kBAIjC,GAAa5mI,aAAemvI,GClP5B,IAAI,GAAY,CAAC,YAAa,mBAAoB,kBAAmB,cAAe,oBAAqB,mBAAoB,WAAY,QAAS,mBAAoB,gBAAiB,YAAa,YAAa,YAAa,kBAAmB,WAAY,iBAAkB,YAAa,iBAAkB,wBAAyB,aAAc,WAAY,wBAAyB,gBAAiB,aAAc,WAoB9Y,GAAe5/P,IACtB,IACIy2P,WAAYA,EACZY,eAAgBA,GAChBr3P,EACJ,OAAO,gBAAe,gBAAqB,EAAG,GAAoB,eAAS,CACvEkmD,gBAAiB,GACjBuwM,WAAYA,GACbY,MAKA,MAAM,WAAc,QACvB,YAAYtqO,GACR07E,MAAM17E,GACNj6B,KAAKgrQ,cAAgB,GACrBhrQ,KAAK4vC,MAAQ,CACT4rB,cAAU,IAAWx7D,KAAKi6B,MAAMuhC,SAAWx7D,KAAKi6B,MAAMuhC,SAAWx7D,KAAKi6B,MAAMirO,gBAC5E3pM,eAAW,IAAWv7D,KAAKi6B,MAAMshC,UAAYv7D,KAAKi6B,MAAMshC,UAAYv7D,KAAKi6B,MAAM6tM,kBAEnF9nO,KAAKkkQ,gBAAkBlkQ,KAAKkkQ,gBAAgB15O,KAAKxqB,MACjDA,KAAKmkQ,eAAiBnkQ,KAAKmkQ,eAAe35O,KAAKxqB,MAEnD,gBACI,MAAO,CAAC,mBAEZ,gBAAgB2nO,GAER,IAAI2lC,EASAC,EAVJvtQ,KAAKi6B,MAAM8pO,mBAEX/jQ,KAAK0kQ,SAASC,IACV2I,EAAa3lC,EAAe,EACrB,CACHpsK,UAAW+xM,KAGnBttQ,KAAKi6B,MAAMiqO,gBAAgBoJ,KAG3BttQ,KAAK0kQ,SAASC,IACV4I,EAAY5lC,EACL,CACHpsK,UAAWgyM,KAGnBvtQ,KAAKi6B,MAAMiqO,gBAAgBqJ,IAGnC,gBACI,OAAIvtQ,KAAKi6B,MAAM8pO,wBACH,IAAW/jQ,KAAKi6B,MAAMshC,UAAYv7D,KAAKi6B,MAAMshC,UAAYv7D,KAAK4vC,MAAM2rB,WAAa,OAEtF,IAAWv7D,KAAKi6B,MAAMshC,UAAYv7D,KAAKi6B,MAAMshC,UAAYv7D,KAAK4vC,MAAM2rB,UAE/E,eAAeiyM,GACX,IAAIF,EACJttQ,KAAK0kQ,SAASC,IACV2I,EAAaE,EACN,CACHhyM,SAAU8xM,KAGlBttQ,KAAKi6B,MAAMkqO,eAAemJ,GAE9B,gBACI,OAAIttQ,KAAKi6B,MAAM8pO,kBACJ,gBAAe,CAClB,qBAAqB,EACrB,CAAC,GAAGlyP,OAAO7R,KAAKi6B,MAAM0nC,cAAe3hE,KAAKi6B,MAAM0nC,YAGjD3hE,KAAKi6B,MAAM0nC,UAEtB,iBACI,YAAI,IAAW3hE,KAAKgrQ,cAAcrH,WACvB3jQ,KAAKgrQ,cAAcrH,WAEvB3jQ,KAAKgrQ,cAAcrH,WAAa,KAAO,eAAS,GAAI,eAAS,GAAI3jQ,KAAKi6B,MAAO,CAChFuhC,cAAU,IAAWx7D,KAAKi6B,MAAMuhC,SAAWx7D,KAAKi6B,MAAMuhC,SAAWx7D,KAAK4vC,MAAM4rB,SAC5ED,eAAW,IAAWv7D,KAAKi6B,MAAMshC,UAAYv7D,KAAKi6B,MAAMshC,UAAYv7D,KAAK4vC,MAAM2rB,YAC/E,CACAoG,UAAW3hE,KAAK2hE,UAChBpG,UAAWv7D,KAAKu7D,UAChB2oM,gBAAiB3oM,GAAav7D,KAAKkkQ,gBAAgB3oM,GACnD4oM,eAAgB3oM,GAAYx7D,KAAKmkQ,eAAe3oM,KAPb,GAU3C,qBACI,IAAIiyM,EAAwB,eAAS,GAAIztQ,KAAKi6B,MAAO,CAC7CuhC,cAAU,IAAWx7D,KAAKi6B,MAAMuhC,SAAWx7D,KAAKi6B,MAAMuhC,SAAWx7D,KAAK4vC,MAAM4rB,SAC5ED,eAAW,IAAWv7D,KAAKi6B,MAAMshC,UAAYv7D,KAAKi6B,MAAMshC,UAAYv7D,KAAK4vC,MAAM2rB,YAEnFspM,EAAY,gBAA8B4I,EAAuB,IACrE,OAAO5I,EAEX,oBAAoB2G,EAAWC,EAAWv6K,GACtCykB,MAAM42J,sBACFvsQ,KAAKi6B,QAAUuxO,GAAaxrQ,KAAKi6B,MAAM8pO,oBAAsByH,EAAUzH,mBAAqB/jQ,KAAKi6B,MAAM0nC,YAAc6pM,EAAU7pM,WAAa3hE,KAAK4vC,MAAM2rB,YAAckwM,EAAUlwM,WAAav7D,KAAKi6B,MAAMshC,YAAciwM,EAAUjwM,WAAav7D,KAAKi6B,MAAMiqO,kBAAoBsH,EAAUtH,iBAAmBlkQ,KAAKi6B,MAAMkqO,iBAAmBqH,EAAUrH,iBAChVnkQ,KAAKgrQ,cAAcrH,gBAAa,GAGxC,SACI,IAAI1pO,EAAQj6B,KAAKi6B,MACjB,OAAO,GAAa,CAChBA,MAAO,eAAS,GAAIA,EAAO,CACvBuhC,cAAU,IAAWx7D,KAAKi6B,MAAMuhC,SAAWx7D,KAAKi6B,MAAMuhC,SAAWx7D,KAAK4vC,MAAM4rB,SAC5ED,eAAW,IAAWv7D,KAAKi6B,MAAMshC,UAAYv7D,KAAKi6B,MAAMshC,UAAYv7D,KAAK4vC,MAAM2rB,YAEnF2oM,gBAAiBlkQ,KAAKkkQ,gBACtB3oM,UAAWv7D,KAAKu7D,UAChB4oM,eAAgBnkQ,KAAKmkQ,eACrBxiM,UAAW3hE,KAAK2hE,UAChBgiM,WAAY3jQ,KAAK2jQ,WACjBY,eAAgBvkQ,KAAKukQ,kBAIjC,GAAM5mI,aAAeqnI,GCpIN,MAAM,WAAc,GAC/B,WACI,IAAI/qO,EAAQ07E,MAAM+3J,WAElB,OADAzzO,EAAM8sB,UAAY/mD,KAAK2tQ,oBAAoB1zO,EAAM8sB,WAC1C9sB,EAEX,iBACI,MAAO,CACH2zO,OAAQ,CACJ,CAAC,WAAY,kBAAmB,kBAChC,CAAC,YAAa,mBAAoB,oBAEtCC,UAAW,GACXj3L,SAAU,GACV/H,UAAW,GACX50C,MAAO,CAAC,kBAAmB,iBAAkB,mBAAoB,kBAAmB,oBAAqB,YAAa,WAAY,WAAY,mBAAoB,cAAe,gBAAiB,YAAa,iBAAkB,UAAW,mBAAoB,wBAAyB,gBAAiB,YAAa,aAAc,wBAAyB,aAAc,QAAS,YAAa,WAAY,cAGtZ,qBACI,OAAO,IAGf,eAAkB,UAAW,IC5Bd,UCQX,GAAc,QACd6zO,GAAkB,GAClBC,GAAe,SAAS97K,GACxB,OAAO,GAAK1wF,SAAS0wF,EAAe12B,cAAgB,IAEpDyyM,GAAY,EAAQ3rM,KAAKhD,QAAQ,CACjCU,KAAM,WACF,IAAIkyB,EAAiBjyF,KAAKihE,cAAc,QACxCgxB,EAAexd,QAAQD,IAAI5wE,IACvB,GAAIA,GAAKA,EAAE0kD,mBAAoB,CAC3B,IAAIH,EAAQnoD,KAAKiuQ,OACb9lN,EACAA,EAAMpgC,OAAO,CACTwzC,UAAWwyM,GAAa97K,GACxBz2B,SAAUy2B,EAAez2B,WACzBmiC,UAAW1L,EAAe0L,YAC1B/C,WAAY3I,EAAe2I,aAC3BwD,iBAAkBnM,EAAemM,qBAGrCp+F,KAAKmE,eAEDP,GAAK,WAAaA,EAAEotE,YAAc,oBAAsBptE,EAAEotE,YAAc,qBAAuBptE,EAAEotE,cACzGhxE,KAAKiuQ,OAAS,KACdjuQ,KAAKmE,aAIjB4+D,YAAa,WACT,IAAI/8C,EAAWhmB,KAAK6mB,UAAUS,SAAStnB,KAAK+mB,gBAAgB,KACxDmnP,EAAeluQ,KAAK+nB,OAAO,UAAY,GACvCkqE,EAAiBjyF,KAAKihE,cAAc,QACpCyZ,EAAqB16E,KAAKihE,cAAc,sBACxCjwD,EAAU,CACVizP,cAAe6J,GACfvyM,UAAWwyM,GAAa97K,GACxB0L,UAAW1L,EAAe0L,YAC1BniC,SAAUy2B,EAAez2B,WACzB8oM,cAAe4J,EAAa5yM,qBAC5BF,SAAU8yM,EAAa9yM,SACvBF,YAAagzM,EAAahzM,YAC1BmpM,sBAAuB6J,EAAavkN,QACpC0R,sBAAuB6yM,EAAa7yM,sBACpC5C,MAAOy1M,EAAaz1M,MACpBiqM,UAAW1iQ,KAAKggI,eAChBplC,WAAY3I,EAAe2I,aAC3BwD,iBAAkBnM,EAAemM,mBACjCojK,iBAAkB,SAASjmM,GACnB02B,EAAe12B,cAAgBA,EAAY,GAC3C02B,EAAe12B,UAAUA,EAAY,IAG7CkmM,gBAAiB,SAASjmM,GACtBy2B,EAAez2B,SAASA,IAE5BzU,UAAWnjD,GAAK82E,GAAsBA,EAAmBlZ,cAAc,YAAa59D,GACpFuqQ,4BAA6BnuQ,KAAK+nB,OAAO,+BACzCsjD,YAAarrE,KAAK+nB,OAAO,+BAEzB,eAAUmmP,EAAa/yM,YACvBnqD,EAAQmqD,SAAW+yM,EAAa/yM,UAEhCn7D,KAAKiuQ,OACLjuQ,KAAKiuQ,OAAOzxI,UAGZ,iBACAx8H,KAAKiuQ,OAASjuQ,KAAKooB,iBAAiBpC,EAAU,GAAOhV,GAErDgV,EAASsB,SAAS,YAAY8yC,KAAK,4DAG3Cg0M,SAAU,WACN,OAAOpuQ,KAAKiuQ,QAEhBjuI,aAAc,WACV,IAAI/tC,EAAiBjyF,KAAKihE,cAAc,QACpCitM,EAAeluQ,KAAK+nB,OAAO,SAC3BkzC,EAAmBizM,GAAgBA,EAAajzM,iBAChDO,EAAWy2B,EAAez2B,WAW9B,OAVK,eAAUx7D,KAAKquQ,aAAgBruQ,KAAKquQ,WAAWrrQ,SAASw4D,KACzDx7D,KAAKquQ,WAAa,GACdH,IACIrvQ,MAAM0nB,QAAQ00C,GACdj7D,KAAKquQ,WAAapzM,EACXA,GAAoBO,EAAW,IACtCx7D,KAAKquQ,WAAa,CAAC1sP,KAAKI,MAAMy5C,EAAW,GAAIA,EAAU,EAAIA,MAIhEx7D,KAAKquQ,YAEhBlnP,UAAW,WACP,IAAI8qE,EAAiBjyF,KAAKihE,cAAc,QACpCitM,EAAeluQ,KAAK+nB,OAAO,SAC3BumP,EAAeJ,GAAgBA,EAAavkN,QAC5CjB,EAAY1oD,KAAK+nB,OAAO,aAQ5B,MAPI,SAAWumP,IAIPA,IAHA5lN,GAAc,YAAcA,EAAU7M,MAAQ,aAAe6M,EAAU7M,QAGxDo2C,EAAe0L,YAAc,GAAK1L,EAAezU,aAAeyU,EAAemM,qBAG/FkwK,GAEX9uL,UAAW,WACP,OAAOx/E,KAAKqjE,oBAEhB7C,cAAe,SAAS3hB,GACpB,IAAIj9C,EAAOi9C,EAAKj9C,KACZ2sQ,EAAU,UAAY3sQ,EACtB4sQ,EAAW,WAAa5sQ,EACxB6sQ,EAAe,eAAiB7sQ,EAChC8sQ,EAAc,cAAgB9sQ,EAC9BqwF,EAAiBjyF,KAAKihE,cAAc,QACxC,GAAIstM,GAAWC,GAAYE,GAAeD,EAAc,CAEpD,GADA5vN,EAAK6hB,SAAU,EACXuxB,EAAe2X,2BAA2B/qD,EAAK4sC,UAC/C,QAEA8iL,GAAWC,KACXxuQ,KAAKquQ,WAAa,MAEjBI,IACDzuQ,KAAKiuQ,OAAS,KACdjuQ,KAAK4iE,cACD,kBAAe2rM,GAAWvuQ,KAAK+M,WAC/B/M,KAAK+M,UAAUg3D,YAK/BtC,QAAS,WACLzhE,KAAKiuQ,OAAS,QAGXU,GAAc,CACrBhxQ,eAAgB,WACZ,MAAO,CACHwqD,MAAO,CACHwB,QAAS,OACT2R,sBAAsB,EACtBL,iBAAkB,OAClBxC,MAAO,OAAoBp/D,OAAO,wBAI9C0rE,MAAO,CACHg7D,UAAWiuI,KC1JnB,EAASvoM,eAAe,QAASkpM,I,8BCmC7BC,GAA0B,oBAC1BC,GAAgC,gCAChCC,GAAwB,cACxB,GAAqB,eACrBC,GAA4B,cAC5BC,GAAgB,UAChBC,GAA+B,iBAC/BC,GAAwB,qBACxB,GAAmB,gBACnB,GAAe,YACfC,GAA8B,uBAC9B,GAAmB,+BACnBC,GAAwC,GACxCC,GAAiB,EACjBC,GAAiB,GACjBzhP,GAAgB,SAASlqB,GACzB,OAAOA,EAAKokB,OAAO,wBAA0BpkB,EAAKs9D,cAAc,WAAWoe,mBAAmB,kBAE9F,GAAkB,SAAS17E,GAC3B,OAAOA,EAAKokB,OAAO,0BAA4BpkB,EAAKs9D,cAAc,WAAWoe,mBAAmB,oBAEhGkwL,GAAc,EAAQltM,KAAKhD,QAAQ,CACnC0D,YAAa,WACT/iE,KAAKC,WACLD,KAAK6mB,UAAUS,SAAStnB,KAAK+mB,gBAAgBioP,KAC7ChvQ,KAAKwqD,QAETglN,yBAA0B,WAClBxvQ,KAAKyvQ,kBACLzvQ,KAAK0vQ,yBAAyBvlC,gBAAgBriN,OAAO9nB,KAAKyvQ,mBAGlEE,qBAAsB,WAClB,IAAIhsQ,EAAO3D,KACX2D,EAAK8rQ,iBAAmB,SAASj7M,GAC7B,IAAIxuC,EAAWriB,EAAKkjB,UAChBb,GAAYA,EAASsgD,SAAS3iE,EAAKojB,gBAAgBioP,OACnDhpP,EAASyF,IAAI,CACTG,IAAK4oC,EAAS5oC,MAElB,eAAW5F,EAAUwuC,EAAS9iD,UAGtC1R,KAAK0vQ,yBAAyBvlC,gBAAgB31J,IAAI7wE,EAAK8rQ,mBAE3DjvM,cAAe,SAAS3hB,GAChB,wBAA0BA,EAAKj9C,OAC/B5B,KAAKwvQ,2BACD3wN,EAAKh9C,QACL7B,KAAK2vQ,uBACL3vQ,KAAK4iE,gBAGb5iE,KAAKC,SAAS4+C,IAElBkhB,KAAM,WACF//D,KAAKC,WACLD,KAAK0vQ,yBAA2B1vQ,KAAKihE,cAAc,iBACnDjhE,KAAK2vQ,wBAETxoP,UAAW,WACP,OAAO0G,GAAc7tB,OAEzByqD,KAAM,WACFzqD,KAAK6mB,UAAU4jC,QAEnBD,KAAM,WACFxqD,KAAK6mB,WAAa7mB,KAAK6mB,UAAU2jC,QAErColN,UAAW,SAAS/tQ,GAChB,eAAW7B,KAAK6mB,UAAWhlB,IAE/B4/D,QAAS,WACLzhE,KAAKwvQ,2BACLxvQ,KAAKC,cAGT4vQ,GAAgB,EAAQxtM,KAAKhD,QAAQ,CACrC07C,iBAAkB,aAClBh4C,YAAa,SAAS/xD,GAClBhR,KAAKC,SAAS+Q,GACdhR,KAAK8vQ,UAAW,EAChB9vQ,KAAK+6G,mBACL/6G,KAAKwqD,QAETC,KAAM,WACFzqD,KAAK8vQ,UAAW,GAEpBtlN,KAAM,WACFxqD,KAAK8vQ,UAAW,GAEpBp+P,OAAQ,SAAS7P,GACb,IAAImkB,EAAWhmB,KAAK6mB,UACpB,GAAIb,EAAU,CACV,IAAI,eAAUnkB,GAGV,OAAO,eAAUmkB,GAFjB,eAAWA,EAAUnkB,KAMjC0F,MAAO,SAAS1F,GACZ,IAAImkB,EAAWhmB,KAAK6mB,UACpB,GAAIb,EAAU,CACV,IAAI,eAAUnkB,GAGV,OAAO,eAASmkB,GAFhB,eAASA,EAAUnkB,OAO/BkuQ,GAAuBF,GAAcxwM,QAAQ,CAC7C07C,iBAAkB,WACd/6G,KAAKC,WACL,IAAI+lB,EAAWhmB,KAAK6mB,UACpBb,EAASsB,SAAStnB,KAAK+mB,gBAAgB6nP,MAE3Ce,qBAAsB,WAClB,IACI3pP,EADAriB,EAAO3D,KAEX2D,EAAK8rQ,iBAAmB,SAASj7M,GAC7BxuC,EAAWriB,EAAKkjB,UACZb,IACAA,EAASyF,IAAI,CACTG,IAAK4oC,EAAS5oC,MAElB,eAAW5F,EAAUwuC,EAAS9iD,UAGtC/N,EAAK+rQ,yBAAyBvlC,gBAAgB31J,IAAI7wE,EAAK8rQ,mBAE3DD,yBAA0B,WACtBxvQ,KAAKyvQ,kBAAoBzvQ,KAAK0vQ,yBAAyBvlC,gBAAgBriN,OAAO9nB,KAAKyvQ,mBAEvF74J,MAAO,WACH52G,KAAKgwQ,eAAiBniP,GAAc7tB,MAChCA,KAAKmnB,aACLnnB,KAAK2vQ,wBAGbxoP,UAAW,WACP,OAAOnnB,KAAK+nB,OAAO,uBAAyB,GAAgB/nB,OAAS6tB,GAAc7tB,QAEvFwgE,cAAe,SAAS3hB,GAChB,wBAA0BA,EAAKj9C,OAC3Bi9C,EAAKh9C,OACL7B,KAAK42G,QACL52G,KAAK4iE,cACL5iE,KAAKwqD,MAAK,KAEVxqD,KAAKwvQ,2BACLxvQ,KAAKgwQ,eAAiBniP,GAAc7tB,MACpCA,KAAKwqD,MAAK,KAGlBxqD,KAAKC,SAAS4+C,IAElBkhB,KAAM,WACF//D,KAAKC,WACLD,KAAK0vQ,yBAA2B1vQ,KAAKihE,cAAc,iBACnDjhE,KAAK42G,SAETnsD,KAAM,WACF,IAAIzkC,EAAWhmB,KAAK6mB,UAChBb,IAAahmB,KAAK8vQ,WACd9vQ,KAAKgwQ,eACLhqP,EAASwB,YAAYxnB,KAAK+mB,gBAAgB8nP,KAE1C7oP,EAASykC,QAGjBzqD,KAAKC,YAETuqD,KAAM,SAAS0iD,GACX,IAAIlnF,EAAWhmB,KAAK6mB,UAChBopP,EAA8BjwQ,KAAK+mB,gBAAgB8nP,IACnD7oP,IAAahmB,KAAK8vQ,UAAY5iK,KAC1BltG,KAAKgwQ,gBACLhqP,EAASsB,SAAS2oP,GAClBjqP,EAASyF,IAAI,OAAQ,IACrBzF,EAASykC,SAELzkC,EAASsgD,SAAS2pM,IAClBjqP,EAASwB,YAAYyoP,GAEzBjqP,EAASwkC,SAGjBxqD,KAAKC,YAETiwQ,QAAS,SAASC,GACd,IAAInqP,EAAWhmB,KAAK6mB,UAChBb,GACAA,EAASyF,IAAI,OAAQ,OAAS0kP,EAAS,EAAIA,EAASnwQ,KAAKijE,iBAAiB73C,SAASO,OAG3FykP,aAAc,SAASC,GACnBA,EAAa,eAAUA,GAAcA,EAAa,GAClD,IAAIrqP,EAAWhmB,KAAK6mB,UAChBb,GACAA,EAASyF,IAAI,SAAU4kP,IAG/B5uM,QAAS,WACLzhE,KAAKwvQ,2BACLxvQ,KAAKC,cAGTqwQ,GAAqBT,GAAcxwM,QAAQ,CAC3CU,KAAM,WACF,IAAIp8D,EAAO3D,KACXA,KAAKC,WACLD,KAAKihE,cAAc,QAAQm3B,eAAe5jB,KAAI,SAAU9uE,GAC/CA,GACD/B,EAAK6mD,WAIjBuwD,iBAAkB,WACd/6G,KAAKC,WACLD,KAAK6mB,UAAUS,SAAS4nP,IAAuB90M,KAAK,WAExD5P,KAAM,WACF,IAAIoZ,EAAU5jE,KAAKijE,iBACfj9C,EAAWhmB,KAAK6mB,UAChBb,GAAYhmB,KAAK8vQ,UACjB9pP,EAASyF,IAAI,UAAW,QAExBm4C,IAAYA,EAAQyD,SAAS,IAAM6nM,IAAuBt1Q,QAC1DgqE,EAAQ8mC,QAAQ1qG,KAAK6mB,WAEzB7mB,KAAKC,YAETknB,UAAW,WACP,IAAIylE,EAAoB5sF,KAAK+nB,OAAO,cAChCgjH,EAAuB/qI,KAAK+nB,OAAO,iBACvC,OAAO6kE,GAAqBA,EAAkBjjC,SAAWohF,GAAwBA,EAAqB/iH,SAE1GyiC,KAAM,SAASmlC,GACX,IAAI5pE,EAAWhmB,KAAK6mB,UAChB0pP,EAAe,SAASC,GACxBvqJ,GAAA,KAAGr5G,KAAKoZ,GAAU,GAClBigG,GAAA,KAAGG,QAAQpgG,EAAU,CACjBvnB,KAAM,QACNsmC,KAAM,CACFx9B,MAAO,EACPouE,QAAS66L,EAAU76L,SAEvBj9E,GAAI83Q,EACJx2M,SAAU,IACVC,OAAQ,WAGhB,GAAIj0C,IAAahmB,KAAK8vQ,SAClB,OAAQlgL,GACJ,IAAK,QACD2gL,EAAa,CACThpQ,MAAO,OACPouE,QAAS,iBAEb,MACJ,IAAK,gBACD46L,EAAa,CACThpQ,MAAO,OACPouE,QAAS,UAEb,MACJ,QACI3vD,EAASyF,IAAI,UAAW,IAGpCzrB,KAAKC,cAGTwwQ,GAAqB,EAAQpuM,KAAKhD,QAAQ,CAC1CqxM,aAAa,EACbC,WAAY,WACR,OAAO3wQ,KAAK0wQ,aAEhBE,uBAAwB,SAASh8L,GAC7B,IAAI31E,EAUJ,OATA,eAAKe,KAAK6wQ,aAAa5xL,gBAAgB,SAAU79E,EAAOk+E,GACpD,GAAIA,EAAe,CACf,IAAIwxL,EAAexxL,EAAcpI,kBACjC,GAAI45L,SAAiB,IAAWA,EAAa9iJ,QAAUp5C,EAAItzD,EAAIwvP,EAAa9iJ,eAAY,IAAW8iJ,EAAallP,KAAOgpD,EAAItzD,EAAIwvP,EAAallP,YAAS,IAAWklP,EAAanlP,MAAQipD,EAAIxnE,EAAI0jQ,EAAanlP,aAAU,IAAWmlP,EAAaxkI,OAAS13D,EAAIxnE,EAAI0jQ,EAAaxkI,OAEtQ,OADArtI,EAASqgF,GACF,MAIZrgF,GAEX8jE,YAAa,WACT/iE,KAAK6mB,UAAUS,SAAStnB,KAAK+mB,gBAAgB+nP,IAAyB,IAAM9uQ,KAAK+mB,gBAAgB,IAAsB,IAAM,IAAcyjC,QAE/IumN,0BAA2B,WACvB,IAAInxL,EAAS5/E,KAAKgxQ,aAClBpxL,EAAOqxL,mBAAqB,SACrBrxL,EAAOsxL,2BACPtxL,EAAOyX,cACPzX,EAAOuxL,YACPvxL,EAAOwxL,MAElBC,uBAAwB,SAASxnM,EAAUhc,GACvC,OAAI,eAAUgc,GACH,CACHjlD,YAAaipC,EACbgc,SAAUA,GAGXhc,GAEX4T,QAAS,WACL,IAAI56C,EAAU7mB,KAAK6mB,UACnB7mB,KAAK6wQ,aAAe,KACpBhqP,GAAWA,EAAQqH,SAASjH,KAAK,IAAMjnB,KAAK+mB,gBAAgB+nP,KAAwBhnP,UAExFX,UAAW,WACP,IAAIw/C,EAAoB3mE,KAAKihE,cAAc,WACvCuhB,EAAuB7b,EAAkB4c,oBAC7C,OAAOvjF,KAAK+nB,OAAO,uBAAyB,GAAgB/nB,OAASwiF,EAAqB52B,eAAiB42B,EAAqB12B,cAEpIiU,KAAM,WACF,IAAIp8D,EAAO3D,KACXA,KAAKC,WACLD,KAAKmlO,YAAcnlO,KAAKihE,cAAc,kBACtCjhE,KAAKsxQ,8BAAgCtxQ,KAAKihE,cAAc,kBACxDjhE,KAAKihE,cAAc,QAAQm3B,eAAe5jB,KAAI,SAAU9uE,GACpD,IAAImhB,EAAUljB,EAAKkjB,WACdnhB,GAAamhB,GACdA,EAAQ2jC,WAIpB+mN,WAAY,SAASvgQ,GACjB,IAAIw6O,EAAgBx6O,EAAQw6O,cACxBgmB,IAAoBxgQ,EAAQ6+E,aAAapxF,KAC7CuB,KAAK0wQ,aAAc,EACnB1wQ,KAAK6wQ,aAAe7/P,EACpBhR,KAAKgxQ,aAAe,CAChBS,YAAazgQ,EAAQ5P,MACrBswQ,kBAAmB1xQ,KAAKqxQ,uBAAuBrgQ,EAAQ64D,SAAU74D,EAAQ4T,aACzE+sP,oBAAqB3gQ,EAAQw6O,cAC7BxsK,eAAgBhuE,EAAQguE,gBAE5B,IAAInkD,EAAW,aAAWo0C,cAC1BjvE,KAAK4xQ,eAAiB/2O,EAASg3O,cAC/Bh3O,EAASg3O,cAAgB,WACrB,OAAO,GAEX7xQ,KAAKmlO,YAAY2sC,KAAK9xQ,KAAKgxQ,cAC3BhxQ,KAAK6mB,UAAU4E,IAAI,CACfigD,UAAW8/K,GAAiBA,EAAc//N,IAAI,aAC9C/Z,OAAQ85O,IAAkBgmB,GAAmBhmB,EAAc9tP,IAAI,GAAG60G,cAAgB,eAAUi5I,IAC5FjkP,MAAOikP,IAAkBgmB,GAAmBhmB,EAAc9tP,IAAI,GAAGgwE,aAAe,eAAS89K,IACzFh6E,WAAYg6E,GAAiBA,EAAc//N,IAAI,gBAChDnE,SAAStnB,KAAK+mB,gBAAgBgoP,KAA4BlrM,YAAYsrM,GAA6BqC,GAAiBj1Q,KAAKi1Q,EAAkB,GAAKxgQ,EAAQ6+E,aAAa3oF,SACxKlH,KAAK6mB,UAAUU,SAAS,QAAgBwqP,mBAAmBvmB,KAE/DwmB,WAAY,SAASnzN,GACjB,IAAIj7C,EAAIi7C,EAAKyiB,MACT39D,EAAOC,EAAEuC,KAAKxC,KACdsuQ,EAAY,gBAAaruQ,GACzBogE,IAAargE,EAAK2tQ,+BAAgC3tQ,EAAK2tQ,8BAA8BttM,aACrFkuM,EAAcvuQ,EAAKktQ,aACvB,GAAIltQ,EAAK+sQ,cAAgB1sM,EAAY,CACjC,IAAIh+C,EAAWriB,EAAKkjB,UAChBsrP,EAAaxwP,KAAKiB,IAAIqvP,EAAU7kQ,EAAI8kQ,EAAY1mB,cAAcpgO,SAASO,KAAOumP,EAAYE,QAC1FC,EAAa1wP,KAAKiB,IAAIqvP,EAAU3wP,EAAI4wP,EAAY1mB,cAAcpgO,SAASQ,IAAMsmP,EAAYI,QAC7F,GAAItsP,EAASp4B,GAAG,aAAeukR,EAAa9C,IAAkBgD,EAAahD,GAAgB,CACvFrpP,EAASykC,OACT,IAAI8nN,EAAUN,EAAU7kQ,EAAI8kQ,EAAYE,OACpCI,EAASP,EAAU3wP,EAAI4wP,EAAYI,OACvCtsP,EAASyF,IAAI,CACTE,KAAM4mP,EACN3mP,IAAK4mP,IAET7uQ,EAAK8uQ,WAAWR,GAEpBruQ,EAAEg3B,mBAGV63O,WAAY,SAASR,GACjB,IAAIS,EAAsB1yQ,KAAK4wQ,uBAAuBqB,GAClDlkP,EAAa/tB,KAAKmlO,YAClBvlJ,EAAS5/E,KAAKgxQ,aACdkB,EAAclyQ,KAAK6wQ,aACvB,GAAI6B,EAAqB,CACrB,IAAIrnP,EAAarrB,KAAK+nB,OAAO,cACzB4qP,EAAwB,kBAAoBD,EAAoBv7L,UAChEy7L,EAAWD,EAAwB,IAAM,IACzC/iL,EAAiB8iL,EAAoBv7L,UACrCtN,EAAW,YAAc+lB,EAAiBsiL,EAAYroM,cAAW,EACjEgmB,EAAeqiL,EAAYriL,aAC3BlR,EAAiB+zL,EAAoB/qM,kBAAkBkC,EAAU,OAASgmB,QAAgB,IAAWA,OAAe,EAASA,EAAaziC,YAAc,GACxJylN,EAAiBX,EAAYW,eAAiBX,EAAYW,gBAAkB,GAC5EC,EAAkB,kBAAoBljL,EAAiB,GAAKijL,EAAejjL,IAAmB7hE,EAAWglP,yBAAyB,OAAAt4Q,EAAA,WAAO,GAAIy3Q,EAAa,CAC1JQ,oBAAqBA,EACrBplP,QAASolP,EAAoBjrM,WAAWoC,GACxC8U,eAAgBA,EAChBg0L,sBAAuBA,EACvBxnP,iBAAkB,YAAcykE,GAAkB,eAAEjR,EAAe,IAAIv9E,WAI3E,GAFAyxQ,EAAejjL,GAAkBkjL,EACjClzL,EAAOgQ,eAAiBA,EACpBkjL,EAAgBl5Q,OAAS,EACzB,IAAK,IAAI6B,EAAI,EAAGA,EAAIq3Q,EAAgBl5Q,OAAQ6B,IAAK,CAC7C,IAAIu3Q,EAAiBF,EAAgBr3Q,EAAI,KAAOq3Q,EAAgBr3Q,GAAGm3Q,GAAYE,EAAgBr3Q,EAAI,GAAGm3Q,IAAa,EACnH,QAAI,IAAWI,IAAmB3nP,GAAc,MAAQunP,EAAWX,EAAUW,GAAYI,EAAiBf,EAAUW,GAAYI,GAAiB,CAC7IpzL,EAAOqxL,kBAAoBjxQ,KAAKqxQ,uBAAuBxnM,EAAUipM,EAAgBr3Q,GAAGmpB,aAChF+5D,EAAeljF,IACfmkF,EAAOsxL,oBAAsBvyL,EAAenzD,GAAG/vB,GAC/CmkF,EAAOyX,QAAS,IAEhBzX,EAAOsxL,oBAAsBvyL,EAAez3D,OAC5C04D,EAAOyX,QAAS,GAEpBzX,EAAOuxL,KAAO2B,EAAgBr3Q,GAAG2R,EACjCwyE,EAAOwxL,KAAO0B,EAAgBr3Q,GAAG6lB,EACjCyM,EAAWklP,KAAKrzL,GAChB,YAIR5/E,KAAK+wQ,4BACLhjP,EAAWklP,KAAKrzL,KAI5BszL,WAAY,SAASr0N,GACjB,IAAIj7C,EAAIi7C,EAAKyiB,MACT39D,EAAOC,EAAEuC,KAAKxC,KACdoqB,EAAapqB,EAAKwhO,YACtBxhO,EAAKkjB,UAAU2jC,OACXz8B,GAAcpqB,EAAK+sQ,aACnB3iP,EAAWolP,KAAKxvQ,EAAKqtQ,cAEzBrtQ,EAAKkjB,UAAUU,SAAS5jB,EAAKs/D,kBAC7Bt/D,EAAKktQ,aAAe,KACpBltQ,EAAKqtQ,aAAe,KACpBrtQ,EAAK+sQ,aAAc,EACnB,aAAWzhM,cAAc4iM,cAAgBluQ,EAAKiuQ,gBAAkB,QAGpEwB,GAA2B,SAASzvQ,GACpC,MAAO,WAAaA,EAAKokB,OAAO,uBAEhCsrP,GAA+B,EAAQnxM,eAAe7C,QAAQ,CAC9Di0M,kBAAmB,SAASlC,GACxB,GAAIpxQ,KAAKwpH,mBAAoB,CACzB,IAAI3iG,EAAU7mB,KAAKwpH,mBAAmB3iG,UACtC,GAAIA,EAAS,CACT,IAAIqxN,EAAYrxN,EAAQuE,SAASQ,IAC7B2nP,EAAmBvzQ,KAAKwpH,mBAAmBjrC,sBAC/C,OAAO6yL,GAAQl5B,GAAak5B,GAAQl5B,EAAYq7B,GAGxD,OAAO,GAEXC,kBAAmB,WACf,IAAIC,EACJ,OAAOzzQ,KAAK+nB,OAAO,eAAiB,SAAW,QAAU0rP,EAAwBzzQ,KAAK0zQ,yBAAsB,IAAWD,OAAwB,EAASA,EAAsBvlP,SAASzC,IAAI,eAE/LkoP,cAAe,SAASjoP,EAAOJ,EAAagC,GACxC,IAAIsmP,EAAmBR,GAAyBpzQ,MAC5CqrB,EAAarrB,KAAK+nB,OAAO,cACzB8rP,EAAmB7zQ,KAAKwzQ,oBACxBM,EAAyBF,IAAoBvoP,GAAewoP,EAAuB,EAAJ,EACnF,GAAInoP,EAAMtqB,OAAS0yQ,GAAyBpoP,EAAMtqB,MAAQkqB,GAAgBsoP,GAAsBvoP,IAAcwoP,EAAwB,EAAJ,GAAQ,CACtInoP,EAAM9G,aAAekvP,EACrB,IAAIzuL,EAAgB/3D,EAAQ5B,EAAM9G,cAAgB,GAC9CmvP,EAAazmP,EAAQ5B,EAAM9G,YAAc,IAAM,GACnD,QAASgvP,EAAmBvuL,EAAcx3D,eAAiBkmP,EAAWlmP,cAAgBw3D,EAAcx3D,eAExG,OAAO,GAEXmmP,gBAAiB,SAASlB,EAAiBmB,EAAU7B,GACjD,GAAIU,EACA,IAAK,IAAIr3Q,EAAI,EAAGA,EAAIq3Q,EAAgBl5Q,OAAQ6B,IACxC,IAAIq3Q,EAAgBr3Q,GAAG2R,IAAM0lQ,EAAgB,GAAG1lQ,IAAK0lQ,EAAgBr3Q,EAAI,IAAMq3Q,EAAgBr3Q,GAAG2R,IAAM0lQ,EAAgBr3Q,EAAI,GAAG2R,IAG3H0lQ,EAAgBr3Q,GAAG2R,EAAIglQ,GAAU6B,GAAYA,GAAYnB,EAAgBr3Q,GAAG2R,EAAIglQ,EAChF,OAAOU,EAAgBr3Q,GAInC,OAAO,MAEXy4Q,eAAgB,SAASr1N,GACrB,IAAIs1N,EACAvwQ,EAAIi7C,EAAKyiB,MACT39D,EAAOC,EAAEuC,KACTiuQ,EAAwBzwQ,EAAK0wQ,sBAAsB9sQ,QACnDqsQ,EAAmBR,GAAyBzvQ,GAC5CyuQ,EAASgC,EAAwB,EACjCE,EAAe3wQ,EAAK+vQ,kBAAkBtoP,SACtCmpP,EAAmBD,EAAa3oP,KAChCsmP,EAAY,gBAAaruQ,GACzBynB,EAAa1nB,EAAKokB,OAAO,cACzB8rP,EAAmB7zQ,KAAKwzQ,oBACxB7C,EAAa,QAAUwD,EAAwBxwQ,EAAK6wQ,2BAAwB,IAAWL,OAAwB,EAASA,EAAsBxD,aAClJ,GAAIhtQ,EAAK8wQ,aAAe9wQ,EAAK+wQ,eACzB,IAAKH,GAAoBtC,EAAU7kQ,IAAMwmQ,GAAoBC,MAAuBD,GAAoB3B,EAAU7kQ,GAAKmnQ,EAAmB,eAAS5wQ,EAAK+vQ,qBAChJ/vQ,EAAKgxQ,4BAA4B1C,EAAU7kQ,GAAI,CAC/C,IAAI85D,EAAQvjE,EAAK6lH,mBAAmB7hD,oBAAoBn8C,GAAG7nB,EAAK+wQ,cAAcE,oBAC1EvqM,EAAOnD,EAAM,GACjB,GAAImD,EAAM,CACN,IAAIwqM,EAAaxqM,EAAKiL,wBAAwB/tE,MAC9C5D,EAAK0wQ,sBAAsBnE,QAAQhpM,EAAM97C,SAASO,OAASioP,GAAoBC,IAAqBxoP,EAAa,EAAIwpP,IACrHlxQ,EAAK+rQ,yBAAyBl8L,OAAO7vE,EAAKojP,aAAazlO,GACvD1d,EAAEg3B,wBAIN+1O,IACJhtQ,EAAK2vQ,kBAAkBrB,EAAU3wP,IAC7B3d,EAAKmxQ,wBACDnxQ,EAAKmxQ,sBAAsBnpP,OAAS2oP,EAAa3oP,MAAQhoB,EAAKmxQ,sBAAsBlpP,MAAQ0oP,EAAa1oP,KACzGjoB,EAAKmvQ,gBAAgB,OAG7BnvQ,EAAKojP,aAAepjP,EAAKqwQ,gBAAgBrwQ,EAAKmvQ,kBAAmBb,EAAU7kQ,EAAGgnQ,GAC9EzwQ,EAAKmxQ,sBAAwBR,EAC7B3wQ,EAAKoxQ,kBAAmB,EACpBpxQ,EAAKojP,cACLpjP,EAAK0wQ,sBAAsBjE,aAAa,cACxCzsQ,EAAK0wQ,sBAAsBnE,QAAQvsQ,EAAKojP,aAAa35O,EAAIglQ,GACzDzuQ,EAAK+rQ,yBAAyBl8L,OAAO7vE,EAAKojP,aAAazlO,GACvD3d,EAAKoxQ,kBAAmB,EACxBnxQ,EAAEg3B,mBAEFj3B,EAAK0wQ,sBAAsBjE,eAC3BzsQ,EAAK0wQ,sBAAsBnE,QAAQ,SAGvCvsQ,EAAKmvQ,gBAAgB,MACrBnvQ,EAAKoxQ,kBAAmB,EACxBpxQ,EAAK0wQ,sBAAsBjE,eAC3BzsQ,EAAK0wQ,sBAAsBnE,QAAQ,SAI/ClpB,aAAc,SAASnoM,GACnB,IAAIj7C,EAAIi7C,EAAKyiB,MACT39D,EAAOC,EAAEuC,KACTxC,EAAK8wQ,cACL9wQ,EAAKmvQ,gBAAgB,MACrBnvQ,EAAK+wQ,cAAgB,KACrB/wQ,EAAK0wQ,sBAAsB7pN,OAC3B7mD,EAAK0wQ,sBAAsBjE,eAC3BzsQ,EAAKqxQ,aAAaxqN,OAClB7mD,EAAKoxQ,kBAAmB,EACxBpxQ,EAAK8wQ,aAAc,IAG3BQ,oBAAqB,SAASL,GAC1B,OAAOA,EAAqB,GAEhCM,mBAAoB,SAAS/D,GACzB,IAAIyD,EAAqB50Q,KAAK+mP,aAAaniO,YACvCuwP,EAAkBn1Q,KAAKi1Q,oBAAoBL,GAC3CQ,EAAgBp1Q,KAAKwpH,mBAAmB9qC,iBAAiBk2L,GACzDS,EAAar1Q,KAAKwpH,mBAAmB9qC,iBAAiBy2L,GAC1Dn1Q,KAAK00Q,cAAgB,CACjBY,UAAWnE,EACXyD,mBAAoBA,EACpBW,mBAAoBH,GAAiBA,EAAcx7Q,OAAS,EAAI,eAAgBw7Q,EAAc,IAAI7tQ,MAAQ,EAC1G4tQ,gBAAiBA,EACjBK,gBAAiBH,GAAcA,EAAWz7Q,OAAS,EAAI,eAAgBy7Q,EAAW,IAAI9tQ,MAAQ,IAGtGu/O,eAAgB,SAASjoM,GACrB,IAAIj7C,EAAIi7C,EAAKyiB,MACT39D,EAAOC,EAAEuC,KACT8rQ,EAAY,gBAAaruQ,GAY7B,GAXI,gBAAaA,KACTD,EAAK2vQ,kBAAkBrB,EAAU3wP,IACjC3d,EAAKojP,aAAepjP,EAAKqwQ,gBAAgBrwQ,EAAKmvQ,kBAAmBb,EAAU7kQ,EAAGgiQ,IAC1EzrQ,EAAKojP,eACLpjP,EAAK0wQ,sBAAsBnE,QAAQvsQ,EAAKojP,aAAa35O,EAAIzJ,EAAK0wQ,sBAAsB9sQ,QAAU,GAC9F5D,EAAKoxQ,kBAAmB,IAG5BpxQ,EAAKoxQ,kBAAmB,GAG5BpxQ,EAAKoxQ,iBAAkB,CACvBpxQ,EAAKuxQ,mBAAmBjD,EAAU7kQ,GAClCzJ,EAAK8wQ,aAAc,EACnB9wQ,EAAK+rQ,yBAAyBl8L,OAAO7vE,EAAKojP,aAAazlO,GACvD3d,EAAK0wQ,sBAAsB5pN,OAC3B9mD,EAAKqxQ,aAAavqN,OAClB,IAAIyhD,EAAavoG,EAAKoJ,UAAUqgG,gBAC5BlB,GAAcvoG,EAAK6vQ,sBACnB7vQ,EAAKiqG,aAAe,eAAS1B,EAAWtvB,YAAc,eAASsvB,EAAW/jF,aAAe+jF,EAAWv7B,cAExG/sE,EAAEg3B,iBACFh3B,EAAEy1G,kBAEFr5G,KAAKgkE,cACLhkE,KAAKihE,cAAc,iBAAiB6oH,aAG5CipF,yBAA0B,WACtB,IAAIpvQ,EAAO3D,KACPstB,EAAU3pB,EAAK8oE,mBAAqB9oE,EAAK8oE,mBAAmBC,oBAAsB,GAClF5E,EAAQnkE,EAAK6lH,mBAAmB7hD,oBAChCmrM,EAAkB,GAClBhrM,GAASA,EAAMluE,OAAS,IACxBk5Q,EAAkB,OAAc9nP,mBAAmB88C,GAAO,SAAUp8C,GAChE,OAAO/nB,EAAKgwQ,cAAcjoP,EAAOo8C,EAAMluE,OAAQ0zB,OAGvD3pB,EAAK8xQ,iBAAmB3C,GAE5B4C,uBAAwB,WACpB11Q,KAAK21Q,uBAAyB,OAAap1M,IAAI,aAAW0O,cAAe,gBAAatF,EAAA,KAAcq8H,KAAM,IAAmBhmM,KAAK21Q,uBAClI31Q,KAAK41Q,uBAAyB,OAAar1M,IAAIvgE,KAAK0zQ,kBAAmB,gBAAa/pM,EAAA,KAAcC,KAAM,IAAmB5pE,KAAK41Q,uBAC5H51Q,KAAK61Q,sBACL,OAAat1M,IAAIvgE,KAAKq0Q,sBAAsBxtP,UAAW,gBAAa8iD,EAAA,KAAcq0E,GAAI,IAAmBh+I,KAAK61Q,qBAC9G,OAAat1M,IAAI,aAAW0O,cAAe,gBAAatF,EAAA,KAAcq0E,GAAI,IAAmBh+I,KAAK61Q,uBAG1GC,mBAAoB,WAChB91Q,KAAK21Q,sBAAwB31Q,KAAKygE,aAAazgE,KAAKk0Q,gBACpDl0Q,KAAK41Q,sBAAwB51Q,KAAKygE,aAAazgE,KAAK8mP,gBACpD9mP,KAAK61Q,oBAAsB71Q,KAAKygE,aAAazgE,KAAKgnP,cAClD,OAAa3hP,GAAG,aAAW4pE,cAAe,gBAAatF,EAAA,KAAcq8H,KAAM,IAAmBhmM,KAAMA,KAAK21Q,uBACzG,OAAatwQ,GAAGrF,KAAK0zQ,kBAAmB,gBAAa/pM,EAAA,KAAcC,KAAM,IAAmB5pE,KAAMA,KAAK41Q,uBACvG,OAAavwQ,GAAGrF,KAAKq0Q,sBAAsBxtP,UAAW,gBAAa8iD,EAAA,KAAcq0E,GAAI,IAAmBh+I,KAAMA,KAAK61Q,qBACnH,OAAaxwQ,GAAG,aAAW4pE,cAAe,gBAAatF,EAAA,KAAcq0E,GAAI,IAAmBh+I,KAAMA,KAAK61Q,sBAE3GlB,4BAA6B,SAASxD,GAClC,IAAIiB,EACA2D,EACA1jK,EAAeryG,KAAKypH,UAAUpX,eAC9B2jK,EAAeh2Q,KAAK00Q,cACpB/tM,EAAoB3mE,KAAKysE,mBACzBD,EAAiB7F,EAAkB+F,oBACnC0nM,EAAwBp0Q,KAAKq0Q,sBAAsB9sQ,QACnDqsQ,EAAmBR,GAAyBpzQ,MAC5CyiF,EAA0BmxL,GAAoB5zQ,KAAK+nB,OAAO,6BAA+B/nB,KAAK+nB,OAAO,mBACrGsD,EAAarrB,KAAK+nB,OAAO,cACzB8rP,EAAmB7zQ,KAAKwzQ,oBACxB1iQ,EAAS07D,EAAewpM,EAAapB,oBACrCb,EAAavnM,EAAewpM,EAAab,iBAE7C,SAASc,EAAe1uQ,GACpB,OAAO,eAASA,IAAU,MAAQA,EAAM8b,OAAO,GAGnD,SAAS6yP,EAAeplQ,EAAQ4yC,EAAa2uD,EAAc5vB,GACvD,GAAI3xE,EAAQ,CACR,IAAIqlQ,EAAiBrlQ,EAAOvJ,MACxB4uQ,IACA1zL,EAA0BwzL,EAAeE,IAEzC1zL,GACA9b,EAAkBkQ,aAAa/lE,EAAO1P,MAAO,eAAgBsiD,GAC7DijB,EAAkBkQ,aAAa/lE,EAAO1P,MAAO,SAAUsiD,EAAc2uD,EAAe,KAAKr8B,QAAQ,GAAK,OAEtGrP,EAAkBkQ,aAAa/lE,EAAO1P,MAAO,eAAgB,MAC7DulE,EAAkBkQ,aAAa/lE,EAAO1P,MAAO,QAASsiD,KAIlE0uN,EAASjB,EAAO6E,EAAaV,WACxB1B,GAAoBC,IAAqBxoP,IAC1C+mP,GAAUA,GAEd,IACIgE,UAAWA,EACXC,cAAeA,GACf,SAASz0H,GACT,IAAI00H,EACAD,EACAE,EACAH,EAAYJ,EAAaT,mBAAqB3zH,EAC9Cz0F,EAAWr8C,GAAUA,EAAOq8C,UAAYinN,EACxCn1Q,EAAS,GAqBb,OApBIm3Q,GAAajpN,EACbluD,EAAOm3Q,UAAYA,GAEnBn3Q,EAAOm3Q,UAAYjpN,EACnBopN,GAA8B,GAE9B3C,IACAyC,EAAgBL,EAAaR,gBAAkB5zH,EAC/C00H,EAAevC,GAAcA,EAAW5mN,UAAYinN,EAChDiC,GAAiBC,EAEbr3Q,EAAOo3Q,cADPE,EACuBP,EAAaR,iBAAmB5zH,EAAQz0F,EAAWipN,GAEnDC,GAG3Bp3Q,EAAOo3Q,cAAgBC,EACvBr3Q,EAAOm3Q,UAAYJ,EAAaT,oBAAsB3zH,EAAQ00H,EAAeD,KAG9Ep3Q,EA3BP,CA4BFmzQ,GAEF,GADA2D,EAAajlQ,EAAOvJ,QAAU6uQ,EAC1BL,EAAY,CAmBZ,GAlBApvM,EAAkB1G,cAClBm2M,EAAYz0P,KAAKI,MAAMq0P,GACvB/jK,EAAe,SAASA,EAAc7lC,GAClC,IAAIgqM,EAAsBhqM,EAAeh0C,MAAM1nB,GAAUA,EAAOvJ,OAChE,GAAIivQ,EAAqB,CACrB,IAAIC,EAAejqM,EAAez1C,OAAO,CAACkoC,EAAKnuD,KACvCmlQ,EAAenlQ,EAAOvJ,SACtB03D,GAAOsE,WAAWzyD,EAAOvJ,QAEtB03D,GACR,GACCw3M,EAAe,MACfpkK,EAAeA,EAAeokK,EAAe,KAGrD,OAAOpkK,EAbI,CAcbA,EAAc7lC,GAChB0pM,EAAeplQ,EAAQslQ,EAAW/jK,EAAc5vB,GAC5CmxL,EACAyC,EAAgB10P,KAAKI,MAAMs0P,GAC3BH,EAAenC,EAAYsC,EAAehkK,EAAc5vB,OACrD,CACH,IAAIgwB,EAAezyG,KAAKwpH,mBAAmBh0C,kBAC3Ci9B,EAAaujK,EAAapB,oBAAsBwB,EAChD,IAAIM,EAAYjkK,EAAa17E,OAAO,CAACw0F,EAAYhkH,IAAUgkH,EAAahkH,EAAO,GAAKvH,KAAKypH,UAAUpX,eACnG,IAAKqkK,EAAW,CACZ,IAAIlpP,EAAkB,OAAcH,4BAA4Bm/C,GAC5Dh/C,GAAmB,GACnBm5C,EAAkBkQ,aAAarK,EAAeh/C,GAAiBpsB,MAAO,eAAgB,QAG9F,IAAK,IAAI3F,EAAI,EAAGA,EAAIg3G,EAAa74G,OAAQ6B,IACjC+wE,EAAe/wE,IAAM+wE,EAAe/wE,KAAOqV,QAAU,IAAW07D,EAAe/wE,GAAG8L,OAClFo/D,EAAkBkQ,aAAarK,EAAe/wE,GAAG2F,MAAO,QAASqxG,EAAah3G,IAK1F,GADAkrE,EAAkBzG,aACb0zM,EAAkB,CACnB5zQ,KAAK+M,UAAUkjH,mBACf,IAAI/jB,EAAalsG,KAAK+M,UAAUqgG,gBAChC,GAAIlB,GAAc2nK,EAAkB,CAChC,IAAIloP,EAAO,eAASugF,EAAWtvB,YAAc,eAASsvB,EAAW/jF,aAAenoB,KAAK4tG,aACrF1B,EAAWr7B,SAAS,CAChBllD,KAAMA,MAKtB,OAAOoqP,GAEXpG,qBAAsB,SAAS3qQ,EAAUs+G,GACrCt+G,EAASwvE,IAAI8uC,GACbtjH,KAAK22Q,uBAAuB1zQ,KAAK,CAC7B+B,SAAUA,EACVs+G,QAASA,KAGjBszJ,0BAA2B,WACvB,IAAK,IAAIn7Q,EAAI,EAAGA,EAAIuE,KAAK22Q,uBAAuB/8Q,OAAQ6B,IAAK,CACzD,IAAIo7Q,EAAY72Q,KAAK22Q,uBAAuBl7Q,GAC5Co7Q,EAAU7xQ,SAAS8iB,OAAO+uP,EAAUvzJ,SAExCtjH,KAAK22Q,uBAAyB,IAElCG,cAAe,WACX92Q,KAAK01Q,yBACL11Q,KAAK42Q,6BAEThgK,MAAO,WACH,IAAIjzG,EAAO3D,KACP+2Q,EAAiC,WAC5BpzQ,EAAK8wQ,aACN9wQ,EAAKmvQ,gBAAgB,OAGzBkE,EAAuC,SAAS5rP,GAC5CznB,EAAKitE,cAAgBxlD,EAAOO,OAC5BhoB,EAAKitE,YAAcxlD,EAAOO,KAC1BhoB,EAAKmvQ,gBAAgB,QAG7BnvQ,EAAK0wQ,sBAAwB1wQ,EAAKwoB,QAAQ,wBAC1CxoB,EAAK6lH,mBAAqB7lH,EAAKwoB,QAAQ,qBACvCxoB,EAAKqxQ,aAAerxQ,EAAKwoB,QAAQ,eACjCxoB,EAAK8lH,UAAY9lH,EAAKwoB,QAAQ,YAC9BxoB,EAAK8oE,mBAAqB9oE,EAAKs9D,cAAc,WAC7Ct9D,EAAK+rQ,yBAA2B/rQ,EAAKs9D,cAAc,iBACnDt9D,EAAK+vQ,kBAAoB/vQ,EAAKoJ,UAAUiZ,WACxCriB,EAAK6wQ,oBAAsB7wQ,EAAKoJ,UAAUof,QAAQ,sBAClDxoB,EAAKgsQ,qBAAqBhsQ,EAAK6lH,mBAAmBtmD,gBAAiB6zM,GACnEpzQ,EAAKgsQ,qBAAqBhsQ,EAAK6lH,mBAAmBrmD,gBAAiB4zM,GACnEpzQ,EAAKgsQ,qBAAqBhsQ,EAAK0wQ,sBAAsBnxM,iBAAiB,WAClEv/D,EAAK+xQ,yBACL/xQ,EAAKmyQ,wBAETnyQ,EAAKgsQ,qBAAqBhsQ,EAAK8lH,UAAUvmD,iBAAiB,WACtDv/D,EAAK8lH,UAAU10C,cAAcjtD,OAAOkvP,GACpCrzQ,EAAK8lH,UAAU10C,cAAcP,IAAIwiM,MAErC,IAAIC,EAA8B,IAAMtzQ,EAAK8lH,UAAUtY,oBACnD+lK,EAAsB,EAC1BvzQ,EAAKgsQ,qBAAqBhsQ,EAAKs9D,cAAc,iBAAiBkpK,iBAAiB,SAAUvmO,GACrF,GAAID,EAAK8wQ,cAAgB9wQ,EAAK8lH,UAAUzlD,WAAY,CAChD,IAAImzM,EAAsB,IAAMxzQ,EAAK8lH,UAAUtY,oBAC3C8lK,IAAgCE,GAAuBD,GAAuBA,IAAwBtzQ,EAAE8N,QACxGulQ,EAA8BE,EAC9BD,EAAsBtzQ,EAAE8N,OACxB/N,EAAKoJ,UAAUkjH,oBAEftsH,EAAK8lH,UAAUpZ,2BAGvB6mK,EAAsBtzQ,EAAE8N,WAGhC8uD,cAAe,SAAS3hB,GACpB7+C,KAAKC,SAAS4+C,GACV,wBAA0BA,EAAKj9C,OAC3Bi9C,EAAKh9C,OACL7B,KAAK42G,QACL52G,KAAK81Q,sBAEL91Q,KAAK82Q,kBAIjB9yM,WAAY,WACR,OAAOhkE,KAAKy0Q,aAEhB10M,KAAM,WACF//D,KAAK22Q,uBAAyB,GAC1B9oP,GAAc7tB,OACdA,KAAK42G,SAGbk8J,gBAAiB,SAASjxQ,GACtB,QAAI,IAAWA,EAMX,OAHK7B,KAAKy1Q,kBACNz1Q,KAAK+yQ,2BAEF/yQ,KAAKy1Q,iBALZz1Q,KAAKy1Q,iBAAmB5zQ,GAQhC4/D,QAAS,WACLzhE,KAAK82Q,gBACL92Q,KAAKC,cAGTm3Q,GAA8B,EAAQl1M,eAAe7C,QAAQ,CAC7DmU,OAAQ,SAAS5nD,GACb,IAAIg0D,EAAS,GACT55D,EAAWhmB,KAAKwpH,mBAAmB3iG,UACnCuE,EAASpF,GAAYA,EAASoF,SAC9B8sN,EAAY9sN,GAAUA,EAAOQ,KAAO,EACpCyrP,EAAgB,eAAUzrP,GAAOjK,KAAKiB,IAAIgJ,EAAMssN,GAAa,EAC7Do/B,EAAuBt3Q,KAAKwpH,mBAAqBxpH,KAAKwpH,mBAAmBhqC,YAAc,EACvF+3L,EAAiBv3Q,KAAKypH,UAAUtY,mBAAkB,GAClDzB,EAAa1vG,KAAKypH,UAAYzpH,KAAKypH,UAAU/3G,SAAW6lQ,EAAiB,EACzEC,EAA2Bx3Q,KAAK+M,UAAUk0D,cAAc,kBACxDw2M,EAAqBz3Q,KAAK+M,UAAUof,QAAQ,sBAChDyzD,EAAOluE,OAAS4lQ,EAChB,IAAII,GAAuB,IAAUF,EAAyBxzM,cAAgByzM,EAAmB9G,aAC7F+G,IACA93L,EAAOluE,QAAUg+F,EAAa2nK,GAE9B,OAASzrP,GAAO5F,GAAYA,EAASpsB,SACrCgmF,EAAOh0D,IAAM5F,EAAS,GAAGkyN,UAAYm/B,GAEzCr3Q,KAAKmqO,gBAAgBrmK,KAAK8b,IAE9B7f,KAAM,WACF,IAAIp8D,EAAO3D,KACX2D,EAAK1D,WACL0D,EAAK6lH,mBAAqBxpH,KAAKmsB,QAAQ,qBACvCxoB,EAAK8lH,UAAYzpH,KAAKmsB,QAAQ,YAC9BxoB,EAAKg0Q,WAAa33Q,KAAKmsB,QAAQ,aAC/BxoB,EAAK8lH,UAAUtmD,gBAAgBqR,KAAI,WAC/B,GAAI7wE,EAAKokB,OAAO,uBAAwB,CACpC,IAAI6vP,EAAcj0Q,EAAKs9D,cAAc,kBAAkB8lL,aACvDpjP,EAAK6vE,OAAOokM,EAAcA,EAAYt2P,EAAI,WAItDi+C,KAAM,SAASxyD,GACX/M,KAAKC,SAAS8M,GACd/M,KAAKmqO,gBAAkB,0BAG3B0tC,GAA+B,EAAQ31M,eAAe7C,QAAQ,CAC9D0zM,yBAA0B,SAAS/hQ,GAC/B,IAAIrN,EAAO3D,KACX,OAAO,OAAcgrB,mBAAmBha,EAAQ2tE,gBAAgB,SAAUjzD,GACtE,OAAO/nB,EAAKgwQ,cAAcjoP,EAAO1a,EAAQsc,QAAStc,EAAQ0hQ,oBAAoBv7L,UAAWnmE,EAAQ6+E,gBACjG7+E,EAAQ2hQ,sBAAuB3hQ,EAAQma,mBAE/CwoP,cAAe,SAASjoP,EAAO4B,EAASgtC,EAAUu1B,GAC9C,IAAIM,EAAe7iE,EAAQ5B,EAAM9G,aAC7B8oE,EAAapgE,EAAQ5B,EAAM9G,YAAc,GAC7C,OAAQ01C,GACJ,IAAK,gBACD,OAAO,EACX,IAAK,UACD,OAAOu1B,IAAiBA,EAAa9jC,mBAAqBokC,IAAiBA,EAAapkC,oBAAsB2hC,IAAeA,EAAW3hC,iBAC5I,QACI,OAAO,IAAMz+B,EAAQ1zB,SAGjCk8Q,mBAAoB,SAASgC,EAAgB74L,GACzC,IAAIt7E,EAAO3D,KACX,eAAKi/E,GAAgB,SAAUlgF,EAAGugF,GAC9B,GAAIA,EAmCA,IAlCA,IAAIhyD,EACAwwD,EAAWwB,EAAc5B,YAAc4B,EAAc5B,cAAgB,EACrEq6L,EAAoBz4L,EAAcnI,UAClC6gM,EAAoB,SAAS52Q,EAAOoqP,GACpC,GAAKA,EAAL,CAGA,IAAI5C,EAAiB,eAAE4C,GACnB16O,EAASwc,EAAQlsB,GACjBk+E,EAAcP,cAAcjuE,EAAQinQ,EAAmB94L,KACvD2pK,EAAethO,SAAS3jB,EAAKojB,gBAAgBgoP,KAC7C,OAAa1pQ,GAAGujP,EAAgB,gBAAakpB,GAAA,KAAgB,IAAmBnuQ,EAAK88D,cAAa,SAAU5hB,GACxG,IAAIj7C,EAAIi7C,EAAKyiB,MACT2wM,EAAY,gBAAaruQ,GAC7Bk0Q,EAAevG,WAAW,CACtBa,OAAQH,EAAU7kQ,EAAI,eAAExJ,EAAE8lE,eAAet+C,SAASO,KAClD2mP,OAAQL,EAAU3wP,EAAI,eAAE1d,EAAE8lE,eAAet+C,SAASQ,IAClDikE,aAAc/+E,EACd1P,MAAO0P,EAAO1P,MACdwjB,YAAaxjB,EACboqP,cAAe5C,EACf5pK,eAAgB+4L,EAChB94L,eAAgBA,EAChBpV,SAAUlmE,EAAK8oE,mBAAmB3C,YAAYh5D,EAAO1P,OAAO,SAGpE,OAAaiE,GAAGujP,EAAgB,gBAAakpB,GAAA,KAAe,IAAmB,CAC3EnuQ,KAAMm0Q,GACPn0Q,EAAK88D,aAAaq3M,EAAe9F,aACpC,OAAa3sQ,GAAGujP,EAAgB,gBAAakpB,GAAA,KAAc,IAAmB,CAC1EnuQ,KAAMm0Q,GACPn0Q,EAAK88D,aAAaq3M,EAAe5E,gBAGnCz3Q,EAAI,EAAGA,EAAIqiF,EAAUriF,IAAK,CAC/B,IAAIkjF,EAAiBW,EAAc3X,kBAAkBlsE,IAAM,GACvDkjF,EAAe/kF,SACf0zB,EAAUgyD,EAAc7X,WAAWhsE,IAAM,GACzC,eAAKkjF,EAAgBq5L,SAMzCtC,uBAAwB,SAASoC,EAAgB74L,GAC7C,IAAIt7E,EAAO3D,KACX,eAAKi/E,GAAgB,SAAUlgF,EAAGugF,GAC9B,GAAIA,EAAe,CACf,IAAIX,EAAiBW,EAAc3X,qBAAuB,GAC1D,eAAKgX,GAAgB,SAAUv9E,EAAOoqP,GAClC,IAAI5C,EAAiB,eAAE4C,GACvB,OAAajrL,IAAIqoL,EAAgB,gBAAakpB,GAAA,KAAgB,KAC9D,OAAavxM,IAAIqoL,EAAgB,gBAAakpB,GAAA,KAAe,KAC7D,OAAavxM,IAAIqoL,EAAgB,gBAAakpB,GAAA,KAAc,KAC5DlpB,EAAephO,YAAY7jB,EAAKojB,gBAAgBgoP,aAKhEkJ,cAAe,SAASroL,GACpB,MAAO,YAAcA,EAAiB5vF,KAAKq0Q,sBAAwBr0Q,KAAKk4Q,qBAE5EC,eAAgB,SAAS15Q,GACrB,IAAI25Q,EAAiBp4Q,KAAKk4Q,oBACtBG,EAAmBr4Q,KAAKq0Q,sBAC5Br0Q,KAAKs4Q,sBAAwB,KAC7BF,GAAkBA,EAAe5tN,OACjC,UAAY/rD,GAAQ45Q,GAAoBA,EAAiB7tN,QAE7DuV,KAAM,WACF,IAAIp8D,EAAO3D,KACX2D,EAAK1D,WACL0D,EAAK8oE,mBAAqB9oE,EAAKs9D,cAAc,WAC7Ct9D,EAAK6lH,mBAAqB7lH,EAAKwoB,QAAQ,qBACvCxoB,EAAK0wQ,sBAAwB1wQ,EAAKwoB,QAAQ,wBAC1CxoB,EAAK6wQ,oBAAsB7wQ,EAAKwoB,QAAQ,sBACxCxoB,EAAK8lH,UAAY9lH,EAAKwoB,QAAQ,YAC9BxoB,EAAKu0Q,oBAAsBv0Q,EAAKwoB,QAAQ,sBACxCxoB,EAAK40Q,iBAAmB50Q,EAAKwoB,QAAQ,eACrCxoB,EAAK60Q,mBAAqB70Q,EAAKwoB,QAAQ,qBACvC,IAAI6rP,EAAoB,WACpB,GAAIr0Q,EAAK6wQ,oBAAqB,CAC1B,IAAIv1L,EAAiB,CAACt7E,EAAK60Q,mBAAoB70Q,EAAK6lH,mBAAoB7lH,EAAK40Q,kBAC7E50Q,EAAK+xQ,uBAAuB/xQ,EAAK6wQ,oBAAqBv1L,GACtDt7E,EAAKmyQ,mBAAmBnyQ,EAAK6wQ,oBAAqBv1L,KAG1Dt7E,EAAK6lH,mBAAmBtmD,gBAAgBsR,IAAIwjM,GAC5Cr0Q,EAAK40Q,kBAAoB50Q,EAAK40Q,iBAAiBr1M,gBAAgBsR,IAAIwjM,GACnEr0Q,EAAK60Q,oBAAsB70Q,EAAK60Q,mBAAmBt1M,gBAAgBsR,IAAIwjM,IAE3ES,UAAW,SAAStyM,GAChB,OAAOnmE,KAAKysE,mBAAmBgjB,gBAAgBtpB,EAAWurM,kBAAmBvrM,EAAW8qM,kBAAmB9qM,EAAW6Y,eAAgB7Y,EAAWypB,iBAErJkiL,KAAM,SAAS3rM,GACX,IAAIsrM,EAActrM,EAAWsrM,YACzBzyL,EAAiB7Y,EAAW6Y,eAC5B2yL,EAAsBxrM,EAAWwrM,oBACjC+G,EAAc14Q,KAAKwpH,mBACnBt9F,EAAWlsB,KAAKypH,UAChBkoJ,IACAA,EAAoBlmP,IAAI,CACpBitC,QAAS42M,KAET,YAActwL,IACd05L,GAAeA,EAAY34L,eAAe0xL,EAAanC,IACvDpjP,GAAYA,EAAS6zD,eAAe0xL,EAAanC,OAI7D2D,KAAM,SAAS9sM,GACX,IAAIxiE,EAAO3D,KACPixQ,EAAoB,eAAS9qM,EAAW8qM,mBAAqB9qM,EAAW8qM,kBAAkBrsP,YAAcuhD,EAAW8qM,kBACnHjyL,EAAiB7Y,EAAW6Y,eAC5B4Q,EAAiBzpB,EAAWypB,eAC5B+oL,EAAYh1Q,EAAKs0Q,cAAcroL,GAC/BgpL,EAAwB3H,GAAqB,EACjDttQ,EAAK6lH,mBAAmB3iG,UAAUI,KAAK,IAAM,IAAkB48C,YAAYlgE,EAAKojB,gBAAgBkoP,IAA+B,YAAcjwL,GAAkB,YAAc4Q,IAAmBgpL,GAC5LD,IACIh1Q,EAAK80Q,UAAUtyM,IAAeyyM,EAC1B,UAAYhpL,GAAkB,kBAAoBA,EAChD,WACMjsF,EAAK20Q,wBAA0BrH,IAC/BttQ,EAAKw0Q,iBACLQ,EAAU9xP,UAAUs/C,EAAWkxB,OAAS,cAAgB,gBAAgBlxB,EAAW+qM,qBACnFvtQ,EAAK20Q,sBAAwBrH,EAC7B0H,EAAUluN,KAAKmlC,IALrB,IASFjsF,EAAKw0Q,eAAe,SACpBx0Q,EAAKs9D,cAAc,iBAAiBuS,OAAOrN,EAAWirM,MACtDuH,EAAUzI,QAAQ/pM,EAAWgrM,KAAOwH,EAAUpxQ,SAC9CoxQ,EAAUluN,QAGd9mD,EAAKw0Q,mBAIjBhF,KAAM,SAAShtM,GACX,IAAIwrM,EAAsBxrM,EAAWwrM,oBASrC,GARIA,IACAA,EAAoBlmP,IAAI,CACpBitC,QAAS,KAEb14D,KAAKwpH,mBAAmBzpC,eAAe5Z,EAAWsrM,YAAa,IAC/DzxQ,KAAKypH,UAAU1pC,eAAe5Z,EAAWsrM,YAAa,IACtDzxQ,KAAKwpH,mBAAmB3iG,UAAUI,KAAK,IAAM,IAAkBO,YAAYxnB,KAAK+mB,gBAAgBkoP,MAEhGjvQ,KAAKy4Q,UAAUtyM,GAAa,CAC5B,IAAIwyM,EAAY34Q,KAAKi4Q,cAAc9xM,EAAWypB,gBAC1C+oL,GACAA,EAAUnuN,OAEdxqD,KAAKysE,mBAAmBqjB,WAAW3pB,EAAWurM,kBAAmBvrM,EAAW8qM,kBAAmB9qM,EAAW6Y,eAAgB7Y,EAAWypB,kBAG7InuB,QAAS,WACDzhE,KAAKw0Q,qBACLx0Q,KAAK01Q,uBAAuB11Q,KAAKw0Q,oBAAqB,CAACx0Q,KAAKw4Q,mBAAoBx4Q,KAAKwpH,mBAAoBxpH,KAAKu4Q,sBAI/GM,GAAkC,CACzC9zM,MAAO,CACH+zM,qBAAsB/I,GACtBgJ,mBAAoBzI,GACpBmH,mBAAoBhH,GACpBuI,YAAazJ,IAEjB1qM,YAAa,CACTizM,eAAgBD,GAChBoB,cAAe7B,GACfvwB,eAAgBwsB,IAEpBpuM,UAAW,CACPF,MAAO,CACH74C,SAAU,CACNmjF,qBAAsB,SAAS0B,GAC3B,IAAInnD,EAAkB5pD,KAAK+nB,OAAO,mBAC9ByvP,EAA2Bx3Q,KAAKihE,cAAc,kBAC9C+C,EAAawzM,EAAyBxzM,aAC1C,OAAOhkE,KAAKC,SAASnB,MAAMkB,KAAME,YAAc6wG,EAAY,GAAKnnD,GAAmBoa,KAI/Fa,YAAa,CACTssD,cAAe,CACXs5D,mBAAoB,WAChB,IAAIzqL,KAAKihE,cAAc,kBAAkB+C,aAGzC,OAAOhkE,KAAKC,SAASnB,MAAMkB,KAAME,gBC5nCrB24Q,GAAgC9zM,MAAM0yM,mBAC5BoB,GAAgCh0M,YAAYizM,eACpDe,GAAgC9zM,MAAM+zM,qBAC/BD,GAAgCh0M,YAAYo0M,cAC3CJ,GAAgCh0M,YAAYgiL,eAC7DgyB,GAAgC9zM,MAAMi0M,YAC/D,EAASvzM,eAAe,4BAA6BozM,I,iBC0BjD,GAAkB,WAClB,GAAkB,YAClBK,GAAqB,eACrB,GAAY,SACZ,GAAiB,cACjB,GAAkB,eAClB,GAAmB,gBACnB,GAAuB,iBACvB,GAA0B,uBAC1BC,GAAsB,mBACtB,GAAoB,iBACpB,GAA2B,wBAC3B,GAAoB,iBACpB,GAAgC,4BAChC,GAAuB,oBACvB,GAAuB,oBACvB,GAAqB,kBACrBC,GAAwB,sBACxB,GAA4B,yBAC5BC,GAAsB,YACtB,GAAoB,mBACpB,GAAe,YACf,GAAsB,mBACtBC,GAA0B,SAC1BC,GAAgC,oFAChCC,GAAkC,GAAG3nQ,OAAO0nQ,GAA+B,6BAC3E,GAAgB,MAChB,GAAiB,OACjB,GAAkB,QAClB,GAAiB,OACjBE,GAAiB,MACjBC,GAAkB,OAClBC,GAAsB,oBACtBC,GAAkB,CAAC,QAAS,UAAW,OAE3C,SAAS,GAAWrtM,GAChB,OAAOA,GAAQA,EAAKjG,SAAS,IAGjC,SAASkxJ,GAAYjrJ,GACjB,OAAOA,GAAQA,EAAKjG,SAAS,IAGjC,SAAS,GAAUiG,GACf,OAAOA,IAAS,GAAWA,KAAUirJ,GAAYjrJ,GAGrD,SAASstM,GAAgBttM,GACrB,OAAQA,GAAQA,EAAKjG,SAAS6yM,KAAwB5sM,EAAKjG,SAAS,IAGxE,SAASwzM,GAAc9zP,GACnB,OAAOA,EAASpsB,QAAU,OAASosB,EAAS,GAAGgmD,QAGnD,SAAS6jH,GAAalsL,EAAMujE,GACxB,OAAQvjE,EAAKo2Q,kBAAoB7yM,IAAUA,EAAMZ,SAAS,KAAyBY,EAAMZ,SAAS,IAGtG,SAAS0zM,GAAiBh0P,GACtB,OAAO,eAAUA,IAAaA,EAASpsB,OAAS,EAGpD,SAASqgR,KACL,MAAO,YAAcphK,GAAA,KAAQiK,UAAU/J,WAG3C,SAASmhK,GAAkBhzM,GACvB,QAASA,EAAMh5C,OAAO,IAAIrc,OAAO,KAAmBjY,OAGxD,SAASugR,GAAiCx2Q,EAAMmN,GAC5C,IAAIua,EAAa1nB,EAAKokB,OAAO,cACzB9oB,GAAS,EAMb,OAJIA,EADAosB,IACW,UAAYva,EAAO67C,eAAiB,eAAU77C,EAAO6c,WAAa,eAAU7c,EAAO67C,mBAElF,eAAU77C,EAAO67C,gBAAkB,SAAW77C,EAAO67C,eAE9D1tD,EAGX,SAASm7Q,GAAoBz2Q,GACzB,IAAI+2E,EAAqB/2E,EAAKs9D,cAAc,sBAC5C,QAAOyZ,EAAmB2/L,uBAAwB12Q,EAAKokB,OAAO,qBAAuB2yD,EAAmB5Q,cAE5G,IAAIwwM,GAA+B,EAAKp4M,eAAe7C,QAAQ,CAC3DU,KAAM,WACF//D,KAAKonB,gBAAkBpnB,KAAKihE,cAAc,QAC1CjhE,KAAKu6Q,qBAAuBv6Q,KAAKihE,cAAc,aAC/CjhE,KAAKugM,mBAAqBvgM,KAAKihE,cAAc,WAC7CjhE,KAAKumP,aAAevmP,KAAKmsB,QAAQ,eACjCnsB,KAAKysE,mBAAqBzsE,KAAKihE,cAAc,WAC7CjhE,KAAK6sP,eAAiB7sP,KAAKihE,cAAc,iBACrCjhE,KAAK26E,sBACL,KACA36E,KAAKw6Q,oBAAsB,KAC3Bx6Q,KAAKy6Q,qBAAsB,EAC3Bz6Q,KAAK06Q,qBAAuB,GAC5B16Q,KAAK26Q,sBAAwB,KAC7B36Q,KAAK6sP,eAAeniE,QAAQl2G,IAAIxuD,IAC5BhmB,KAAK46Q,mBACD56Q,KAAK66Q,eACD70P,EAASp4B,GAAG,aAAeoS,KAAK86Q,cAAgB96Q,KAAK86Q,aAAa1tK,gBAClEptG,KAAK86Q,aAAa5mK,iBAAiBluF,GACnChmB,KAAK66Q,eAAgB,KAIjC76Q,KAAK+6Q,oBACL/6Q,KAAKg7Q,wBACLh7Q,KAAKygE,aAAa,eAG1Bs6M,kBAAmB,WACf,IAAI7uP,EAAWlsB,KAAKmsB,QAAQ,YACxB8uP,EAAuB35M,IACvB,IAAIt7C,EAAW,eAAEs7C,EAAMh8C,QACnB41P,EAA4B,eAAE55M,EAAMg+K,eAAeryN,QAAQf,EAASrF,WAAWjtB,OAC/EuhR,EAAkBn1P,EAASsgD,SAAS,WACxC,GAAI60M,IAAoBD,GAA6Bl7Q,KAAKo7Q,sBAAsB95M,GAAQ,CACpF,IAAI+5M,EAAer7Q,KAAKs7Q,kBACxBD,EAAgBrB,GAAiBqB,GAAyEA,EAAzDnvP,EAAS+pD,gBAAgB,GAAG73E,OAAO,cAAcotB,GAAG,GAChGxF,EAASiH,QAAQouP,GAAczhR,SAChC0nE,EAAM1mC,iBACN,OAAa9N,QAAQuuP,EAAc,YAI/CnvP,EAASg3C,gBAAgBsR,IAAI5wE,IACzB,IAAI23Q,EAAYrvP,EAASrF,UACrB+9E,GAAgBhhG,GAAK,YAAcA,EAAEotE,WACrCwqM,EAAuBx7Q,KAAK86Q,cAAgB96Q,KAAK86Q,aAAal5Q,OAASsqB,EAAStqB,KAChF65Q,GAAkB,EAClBrvM,EAAWxoE,IAAM,WAAaA,EAAEotE,YAAc,YAAcptE,EAAEotE,YAC9Dw4G,EAAkB,eAAE,UACpBkyF,GAA2BlyF,EAAgB5vL,QAAU4vL,EAAgBv8J,QAAQsuP,GAAW3hR,OAC5F,OAAa2mE,IAAIg7M,EAAW,UAAWN,GACvC,OAAa51Q,GAAGk2Q,EAAW,UAAWN,GACtCj7Q,KAAK27Q,2BACL37Q,KAAK47Q,sBACL57Q,KAAK67Q,yBACDL,GAAwBE,IACxBD,EAAkBz7Q,KAAK87Q,cAAgB1vM,EAAWpsE,KAAK+7Q,gBAAkBn3K,KAAkB,OAAShhG,QAAK,IAAWA,GAAKA,EAAE+9F,yBAC3H85K,GAAmBz7Q,KAAK+pL,cAAa,OAIjDixF,sBAAuB,WACnB,IAAIngP,EAAW,aAAWo0C,cAC1BjvE,KAAKs8P,sBAAwBt8P,KAAKygE,aAAa78D,IAC3C,IAAIi9D,EAAU,eAAEj9D,EAAE09D,MAAMh8C,QACpB02P,EAAyBh8Q,KAAKo7Q,sBAAsBx3Q,EAAE09D,QAAUT,EAAQ5zC,QAAQ,IAAIpb,OAAO7R,KAAK+mB,gBAAgB,MAAmBntB,OACnIqiR,EAAkBp7M,EAAQ5zC,QAAQ,IAAIpb,OAAO,KAAgCjY,OAC7E49Q,EAA2Bx3Q,KAAKihE,cAAc,kBAC9Ci7M,IAAqB1E,GAA4BA,EAAyBxzM,aAC9E,IAAKg4M,IAA2BC,IAAoBC,EAAkB,CAClE,IAAIC,IAA0Bn8Q,KAAK86Q,cAAej6M,EAAQ6zB,UAAUt2F,OAAO4B,KAAK86Q,aAAaj0P,WAAWjtB,OAAS,GAChHuiR,GAA2Bn8Q,KAAKo8Q,mBAAkB,GACnDp8Q,KAAKq8Q,uBAGb,OAAah3Q,GAAGw1B,EAAU,gBAAa8uC,EAAA,KAAcC,KAAM,gCAAiC5pE,KAAKs8P,wBAErGuf,uBAAwB,WACpB,IAAIN,EAAYv7Q,KAAKs8Q,sBACjBC,GAAev8Q,KAAKonB,gBAAgB+/E,iBAAiBvtG,OACrD2iR,GACAv8Q,KAAKw8Q,wBAAwBjB,IAGrCI,yBAA0B,WACtB,IAAIc,EAAoBxC,KAAkC,OAArBtwM,EAAA,KAAcC,KAC/C8yM,EAAgB,IAAI7qQ,OAAO,GAAW,YAAYA,OAAO,IACzD0pQ,EAAYv7Q,KAAKs8Q,sBAChB,eAAUt8Q,KAAK28Q,uBAChB38Q,KAAK28Q,oBAAsB38Q,KAAKygE,aAAazgE,KAAK48Q,uBAEtD,OAAar8M,IAAIg7M,EAAW,gBAAakB,EAAkB,gCAAiCz8Q,KAAK28Q,qBACjG,OAAat3Q,GAAGk2Q,EAAW,gBAAakB,EAAkB,gCAAiCC,EAAe18Q,KAAK28Q,sBAEnHf,oBAAqB,WACjB,IAAIL,EAAYv7Q,KAAKs8Q,sBACrB,QAAS/7M,IAAIvgE,KAAK68Q,kBAClB78Q,KAAK68Q,iBAAmB,QAASx3Q,GAAGk2Q,EAAW,KAAM33Q,GAAK5D,KAAK88Q,gBAAgBl5Q,KAEnF69D,QAAS,WACLzhE,KAAKC,WACLD,KAAKq8Q,oBACL,QAAS97M,IAAIvgE,KAAK68Q,kBAClB,OAAat8M,IAAI,aAAW0O,cAAe,gBAAatF,EAAA,KAAcC,KAAM,gCAAiC5pE,KAAKs8P,uBAClH7yL,aAAazpE,KAAKw6Q,qBAClB,MAEJh6M,cAAe,SAAS3hB,GACpB,OAAQA,EAAKj9C,MACT,IAAK,qBACL,IAAK,8BACDi9C,EAAK6hB,SAAU,EACf,MACJ,QACI1gE,KAAKC,SAAS4+C,KAG1Bk+N,eAAgB,WACZ,OAAO/8Q,KAAKg9Q,YAAcvD,IAE9BwD,gBAAiB,WACb,OAAOj9Q,KAAKg9Q,YAActD,IAE9BwD,gBAAiB,WACTl9Q,KAAK+nB,OAAO,uBACZ/nB,KAAKg9Q,UAAYvD,KAGzB0D,iBAAkB,WACdn9Q,KAAKg9Q,UAAYtD,IAErBoD,gBAAiB,SAASl5Q,GACtB,IAAIw5Q,GAAsB,EAC1Bp9Q,KAAK87Q,cAAe,EACpB97Q,KAAK66Q,eAAgB,EACrB,IAAIniM,EAAY14E,KAAKq9Q,kBAAkBz5Q,GACnCupE,EAAYntE,KAAKugM,mBAAmBpzH,YACpCyL,EAAgBh1E,EAAEg1E,cACtB,GAAIA,EAAc6tG,qBAGd,OAFAzmL,KAAK87Q,cAAe,OACpB97Q,KAAK66Q,eAAgB,GAIzB,GADAjB,GAAgBt7Q,QAAQsF,EAAE+kB,SAAW,GAAK3oB,KAAKs9Q,mCAAmC1kM,EAActzD,SAC3FozD,EAAW,CACZ,OAAQ90E,EAAE+kB,SACN,IAAK,YACL,IAAK,aACD3oB,KAAKu9Q,sBAAsB35Q,EAAGupE,GAC9BuL,GAAY,EACZ,MACJ,IAAK,UACL,IAAK,YACG90E,EAAE45Q,KACF,GAAyB,WAAYx9Q,KAAM44E,GAE3C54E,KAAKy9Q,mBAAmB75Q,EAAGupE,GAE/BuL,GAAY,EACZ,MACJ,IAAK,SACL,IAAK,WACD14E,KAAK09Q,sBAAsB95Q,GAC3B80E,GAAY,EACZ,MACJ,IAAK,QACDA,EAAY14E,KAAK29Q,iBAAiB/5Q,EAAGupE,GACrC,MACJ,IAAK,IACG,gBAAoBvpE,EAAEg1E,gBACtB54E,KAAK49Q,iBAAiBh6Q,EAAGupE,GACzBuL,GAAY,GAEZA,EAAY14E,KAAK69Q,kBAAkBj6Q,EAAEg1E,eAEzC,MACJ,IAAK,MACD54E,KAAK89Q,eAAel6Q,EAAGupE,GACvBuL,GAAY,EACZ,MACJ,IAAK,QACD14E,KAAK+9Q,iBAAiBn6Q,EAAGupE,GACzBuL,GAAY,EACZ,MACJ,IAAK,SACD14E,KAAKg+Q,kBAAkBp6Q,EAAGupE,GAC1BuL,GAAY,EACZ,MACJ,IAAK,IACG,gBAAoB90E,EAAEg1E,gBACtB54E,KAAKi+Q,iBAAiBr6Q,GACtB80E,GAAY,GAEZA,EAAY14E,KAAK69Q,kBAAkBj6Q,EAAEg1E,eAEzC,MACJ,IAAK,KACD54E,KAAKk+Q,gBACLxlM,GAAY,EACZ,MACJ,IAAK,MACL,IAAK,YACG14E,KAAKm+Q,0BAA4Bn+Q,KAAKo+Q,0BACtC1lM,EAAY14E,KAAK69Q,kBAAkBjlM,GAAe,IAGzDF,GAAc14E,KAAK69Q,kBAAkBjlM,KACtC54E,KAAK87Q,cAAe,EACpB97Q,KAAK66Q,eAAgB,EACrBuC,GAAsB,GAEtBA,GACAxkM,EAAcygC,oBAI1BgkK,kBAAmB,SAASrjK,GACxB,IAAIphC,EAAgBohC,EAAUphC,cAC1B/5B,EAAO,CACP6hB,SAAS,EACTY,MAAOsX,GAMX,OAJA54E,KAAKwhE,cAAc,YAAa3iB,GAChCm7D,EAAUwjK,KAAO5kM,EAAc9lE,QAC/BknG,EAAU6oE,IAAMjqG,EAAcyzE,OAC9BryC,EAAUr4E,MAAQi3C,EAAc8D,WACvB79B,EAAK6hB,SAElB29M,eAAgB,WACZprQ,WAAW,KACPjT,KAAKugM,mBAAmBgB,mBAGhCg8E,sBAAuB,SAASvjK,EAAW7sC,GACvC,IAAItD,EAAW7pE,KAAKs+Q,qBAChBh5Q,EAAS00G,EAAUphC,cACnBrM,EAAOvsE,KAAK86Q,cAAgB96Q,KAAK86Q,aAAarpQ,OAAOo4D,GACrD00M,EAAgBv+Q,KAAKw+Q,uBAAuBxkK,EAAUrxF,SACtD81P,EAA0Bz+Q,KAAKo+Q,wBAC/BM,IAAkBvxM,GAAasxM,IAA4B,GAAUlyM,GACzE,GAAImyM,EAAe,CACf1+Q,KAAKm9Q,mBACLsB,GAA2Bz+Q,KAAKq+Q,iBAC5Br+Q,KAAK2+Q,0BACL3+Q,KAAK4+Q,kCAAkCL,GAE3C,IAAIr3M,EAAQlnE,KAAK6+Q,aAAaN,GAC1BvE,GAAiB9yM,IACjBlnE,KAAK8+Q,2BAA2Bx5Q,EAAQ4hE,EAAOq3M,GAEnDj5Q,GAAUA,EAAOs1B,mBAGzB6iP,mBAAoB,SAASzjK,EAAW7sC,GACpC,IAAI4xM,EAAuBC,EACvB/5K,EAAkBjlG,KAAKs+Q,qBACvB/xM,EAAOvsE,KAAK86Q,cAAgB96Q,KAAK86Q,aAAarpQ,OAAOwzF,GACrD3/F,EAAS00G,EAAUphC,cACnBqmM,EAAY,YAAcjlK,EAAUrxF,QACpCY,EAAavpB,KAAKonB,gBAAgBmC,aAClC21P,EAA2B,QAAUH,EAAwB/+Q,KAAKugM,0BAAuB,IAAWw+E,GAAiC,QAAUC,EAAyBD,EAAsB1qF,wBAAqB,IAAW2qF,OAAlG,EAAoIA,EAAuBx5P,KAAKu5P,EAAuB95K,GACnTw5K,EAA0Bz+Q,KAAKo+Q,wBAC/BM,IAAkBQ,IAA6B/xM,GAAasxM,IAA4BlyM,IAASirJ,GAAYjrJ,GACjH,GAAImyM,EAAe,CAEf,GADAD,GAA2Bz+Q,KAAKq+Q,kBAC3Br+Q,KAAKm/Q,kBAAkB75Q,EAAQ00G,EAAUrxF,UACtC3oB,KAAKo/Q,uBAAyBH,GAAa11P,IAAeA,EAAW7jB,YAAa,CAClF,IAAIuqO,EAAY,eAAe1jK,GAC3B1C,EAAW7pE,KAAK06Q,qBAAqB7wM,SAAW,EACpD7pE,KAAKq/Q,UAAU,GAAIpvC,EAAWpmK,EAAUvkE,GAGhDA,GAAUA,EAAOs1B,mBAGzB8iP,sBAAuB,SAAS1jK,GAC5B,IAAIz+C,EAAYv7D,KAAKonB,gBAAgBm0C,YACjCoiC,EAAY39F,KAAKonB,gBAAgBu2E,YACjCwE,EAAgBniG,KAAK+nB,OAAO,kBAC5Bu3P,EAAW,WAAatlK,EAAUrxF,QAClC42P,EAAWD,GAAY,EAAI,EAC3BpzK,EAAalsG,KAAKmsB,QAAQ,YAAYihF,gBACtCjL,IAAkBniG,KAAKq6Q,uBAClBiF,EAAW/jN,EAAY,EAAIA,EAAYoiC,EAAY,KAAO39F,KAAKq6Q,wBAChEr6Q,KAAKonB,gBAAgBm0C,UAAUA,EAAYgkN,GAC3CvlK,EAAUphC,cAAch+C,kBAErBsxE,GAAc,eAAUA,EAAW/jF,aAAe,eAAU+jF,EAAWtvB,cAC9E58E,KAAKq/Q,UAAU,EAAG,eAAUnzK,EAAW/jF,aAAeo3P,GACtDvlK,EAAUphC,cAAch+C,mBAGhC+iP,iBAAkB,SAAS3jK,EAAW7sC,GAClC,IAAItD,EAAW7pE,KAAKs+Q,qBAChBz9M,EAAU,eAAEm5C,EAAUphC,eAAiBohC,EAAUphC,cAActzD,QACnE,GAAItlB,KAAK+nB,OAAO,cAAgB,SAAW/nB,KAAK+nB,OAAO,aAAa8zB,OAASsxB,EAAW,CACpF,IAAIqyM,EAAsB,QAAUx/Q,KAAKy/Q,gBAAgB5+M,IAAY7gE,KAAK+8Q,kBAAoB,GAAUl8M,GACpG6+M,EAAyB7+M,EAAQyF,SAAS,IAI9C,OAHIo5M,GAA0B,YAAc1/Q,KAAK+nB,OAAO,iCACpD/nB,KAAKu6Q,qBAAqBh4I,kCAE1Bi9I,GAAuB3+M,EAAQ3yC,SAASo4C,SAAS,KAAmBzF,EAAQyF,SAAStmE,KAAK+mB,gBAAgB,QAC1G/mB,KAAKu6Q,qBAAqB/3I,oBAAoB34D,EAAU,CACpDloC,MAAOq4E,EAAUr4E,MACjB8gG,QAASzoB,EAAUwjK,OAEvBxjK,EAAUphC,cAAch+C,kBACjB,GAIX,OAAO56B,KAAK69Q,kBAAkB7jK,EAAUphC,gBAGhDglM,iBAAkB,SAAS5jK,EAAW7sC,GAC7BA,GAAc6sC,EAAU6oE,KAAO,aAAe7iL,KAAK+nB,OAAO,oBAAqB/nB,KAAK+nB,OAAO,8BAC5F/nB,KAAKu6Q,qBAAqB/zI,YAC1BxsB,EAAUphC,cAAch+C,mBAGhCkjP,eAAgB,SAAS9jK,EAAW7sC,GAChC,IAAI8kH,EAAiBjyL,KAAK+nB,OAAO,WAC7BgyC,EAAYigD,EAAUr4E,MAAQ,WAAa,OAC3Cg+O,EAAwB,eAAU3/Q,KAAK06Q,wBAA0B,eAAc16Q,KAAK06Q,sBACpFkF,GAA6BD,IAA0B3lK,EAAUr4E,OAAS3hC,KAAK6/Q,iBAAiB7/Q,KAAK06Q,uBAAyB1gK,EAAUr4E,OAAS3hC,KAAK8/Q,kBAAkB9/Q,KAAK06Q,sBAC7KqF,EAAc/lK,EAAUphC,cAActzD,OACtC06P,EAAqBhgR,KAAK86Q,cAAgB96Q,KAAK86Q,aAAaj0P,UAChE,IAAI7mB,KAAKigR,gCAAgCF,EAAahmN,GAAtD,CAIA,GADA,eAAEimN,GAAoB14P,SAAS,IAC3B2qK,GAAkB8tF,IAAgBH,EAOlC,GANI,eAAEG,GAAaz5M,SAAStmE,KAAK+mB,gBAAgB,MAC7C/mB,KAAKo8Q,oBAELp8Q,KAAK2+Q,0BACL3+Q,KAAK4+Q,kCAAkC7kN,GAEvCoT,GACA,IAAKntE,KAAKkgR,uBAAuBlmK,EAAWjgD,GACxC,YAEG/5D,KAAKmgR,sBAAsBnmK,EAAWjgD,KAC7C6lN,GAA4B,GAGhCA,GACA5/Q,KAAK6sP,eAAe/iE,YAChB9pL,KAAKugM,mBAAmBpzH,cAAgBntE,KAAK+5Q,mBAC7C/5Q,KAAKo8Q,mBAAkB,GACvBp8Q,KAAKq8Q,oBACLr8Q,KAAKq+Q,mBAGTrkK,EAAUphC,cAAch+C,mBAGhCwlP,wBAAyB,WACrB,IAAIl0K,EAAalsG,KAAK+M,UAAUqgG,gBAC5BlhF,EAAWlsB,KAAKmsB,QAAQ,YACxBf,EAAS8gF,EAAaA,EAAWz+B,cAAgB,eAASvhD,EAASrF,WAAa,EACpF,OAAOuE,GAEXi1P,kBAAmB,SAASz7P,GACxB,IAAI07P,EAAoBtgR,KAAKysE,mBAAmBC,kBAAkB,MAAM,GACpE6zM,EAAyBvgR,KAAKysE,mBAAmBC,oBACjD57D,EAASwvQ,EAAkB17P,GAC3B3lB,GAAS,EAIb,OAHI6R,IACA7R,EAASshR,EAAuBjiR,QAAQwS,IAAW,GAEhD7R,GAEXuhR,eAAgB,SAAS57P,GACrB,IAAI07P,EAAoBtgR,KAAKysE,mBAAmBC,kBAAkB,MAAM,GACpE57D,EAASwvQ,EAAkB17P,GAC/B,QAAS9T,KAAYA,EAAO8c,OAEhC6yP,iBAAkB,SAAS77P,GACvB,IAAI87P,EAAmB97P,EAAc5kB,KAAKysE,mBAAmB+F,uBACzDhG,EAAiBxsE,KAAKysE,mBAAmBC,oBACzC57D,EAAS07D,EAAek0M,GAC5B,QAAS5vQ,GAAU,YAAcA,EAAO6c,SAE5CixP,kCAAmC,SAAS7kN,GACxC,IAEIo7M,EAFAjpK,EAAalsG,KAAK+M,UAAUqgG,gBAC5BxoF,EAAc5kB,KAAK2gR,iBAEnBC,EAA2B,EAC3BC,GAAe,EACnB,OAAQ9mN,GACJ,IAAK,OACL,IAAK,YACD,IAAI6/J,EAAe55N,KAAK8gR,yBACxB3L,EAAkBvwP,EAAc,EAChCg8P,EAA2B5gR,KAAK+nB,OAAO,cAAgB/nB,KAAKogR,0BAA4B,EAEpFS,EADA,SAAW9mN,EACI6/J,IAAiBu7C,GAAmBn1Q,KAAKwgR,eAAe57P,KAAiB5kB,KAAKqgR,kBAAkBlL,GAEhGv7C,EAAeu7C,GAAmBn1Q,KAAKwgR,eAAe57P,KAAiB5kB,KAAKqgR,kBAAkBlL,GAEjH,MACJ,IAAK,WACL,IAAK,gBAGD,GAFAA,EAAkBvwP,EAAc,EAChCg8P,EAA2B5gR,KAAK+nB,OAAO,cAAgB,EAAI/nB,KAAKogR,0BAC5D,aAAermN,EAAW,CAC1B,IAAIwY,EAAoBvyE,KAAKysE,mBAAmB+F,uBAC5CuuM,EAAmB5L,EAAkB,GAAK,IAAM5iM,EACpDsuM,EAAeE,GAAoB/gR,KAAKwgR,eAAe57P,KAAiB5kB,KAAKqgR,kBAAkBlL,QAE/F0L,EAAe1L,GAAmB,GAAKn1Q,KAAKwgR,eAAe57P,KAAiB5kB,KAAKqgR,kBAAkBlL,GAG3G0L,EACA30K,EAAWr7B,SAAS,CAChBllD,KAAMi1P,IAEH,eAAUzL,IAAoB,eAAUp7M,IAAc/5D,KAAKygR,iBAAiBtL,KACnFyL,EAA2B5gR,KAAKghR,mCAAmCjnN,GACnE,IAAM6mN,GAA4B10K,EAAWy/F,SAAS,CAClDhgL,KAAMi1P,EACNh1P,IAAK,MAIjBo1P,mCAAoC,SAASjnN,GACzC,IAAIknN,EAAiB,EACjBC,EAAelhR,KAAKmhR,SAASnhR,KAAK06Q,sBAClC0G,EAAmBF,GAAgB,eAAcA,GACrD,GAAIE,EAAmB,EAAG,CACtB,IAAIC,EAAgBrhR,KAAK+nB,OAAO,eAAiB,EAAI,EACrDk5P,EAAiB,cAAgBlnN,GAAa,SAAWA,EAAYqnN,EAAmBC,EAAgBD,EAAmBC,GAAiB,EAEhJ,OAAOJ,GAEXf,uBAAwB,SAASlmK,EAAWjgD,GACxC,IAEIunN,EAFAvB,EAAc/lK,EAAUphC,cAActzD,OACtC4hD,EAAQlnE,KAAKuhR,0BAA0BxB,GAEvCz6Q,EAAS00G,EAAUphC,cACnB4oM,EAAcxhR,KAAKy/Q,gBAAgBM,GACvC,GAAI74M,EAAMt5E,GAAGwrR,IACT,OAAQp5Q,KAAKmgR,sBAAsBnmK,EAAWjgD,GAElD/5D,KAAKyhR,2BAA2Bv6M,GAChC,IAAIw6M,EAAe1hR,KAAK2hR,qBAAqBr8Q,EAAQy0D,EAAWynN,GAEhE,GADAt6M,EAAQw6M,EAAax6M,OAChBA,GAASlnE,KAAKigR,gCAAgC/4M,EAAOnN,GACtD,OAAO,EAEX,IAAI4M,EAAoB3mE,KAAKysE,mBACzBkG,EAAY3yE,KAAKmsB,QAAQ,YAAY4nD,aAAa7M,GAClDtiD,EAAc+tD,EAAYhM,EAAkB6L,uBAC5C1hE,EAAS61D,EAAkB+F,kBAAkB,MAAM,GAAM9nD,GACzD2nD,EAAOrF,EAAMh5C,SACb27C,EAAW7pE,KAAK4hR,aAAar1M,GAC7B17D,EAAM7Q,KAAKonB,gBAAgBsB,QAAQmhD,GACnCihC,EAAoB9qG,KAAKugM,mBAC7B,GAAIzvL,GAAUA,EAAO26C,aAAc,CAC/B,IAAIo2N,GAAchxQ,GAAO,SAAWA,EAAIM,QACxCmwQ,EAAmBx2K,EAAkB76C,cAAc,CAC/Cp/C,IAAKA,IACJgxQ,EAAahxQ,GAAOA,EAAIob,SAYjC,OAVKq1P,GACDthR,KAAKq+Q,iBAELr+Q,KAAK8hR,WAAW56M,GAAQw6M,EAAaK,kBAChC/hR,KAAK+5Q,kBAAoBuH,EAC1BthR,KAAKgiR,mBAELhiR,KAAKiiR,yBAAyB/6M,EAAO8yC,EAAUr4E,SAGhD,GAEXw+O,sBAAuB,SAASnmK,EAAWjgD,GACvC,IAKIynN,EALAl8Q,EAAS00G,EAAUphC,cACnBmnM,EAAcz6Q,EAAOggB,OACrB4hD,EAAQlnE,KAAKuhR,0BAA0BxB,GACvCmC,EAA0BliR,KAAKmiR,uBAAuBj7M,GAAQ8yC,EAAUr4E,OACxEi+O,GAA4B,EAEhC,IAAK/vF,GAAa7vL,KAAMknE,IAAUg7M,EAAwBtoR,QAAUmmR,IAAgBmC,EAAwBxkR,IAAI,GAC5GkiR,GAA4B,MACzB,MACC,IAAW5/Q,KAAK06Q,qBAAqB7wM,UAAY,eAAEk2M,GAAaz5M,SAAS,KACzEtmE,KAAKyhR,2BAA2Bv6M,GAEpCs6M,EAAcxhR,KAAKy/Q,gBAAgBM,GAC/B//Q,KAAK+8Q,mBACL/8Q,KAAKm9Q,mBACD,QAAUqE,GAAe,GAAU,eAAEzB,MACrCA,EAAc//Q,KAAKoiR,uBAAuB,eAAErC,IAC5CyB,EAAcxhR,KAAKy/Q,gBAAgBM,KAG3C,IAAI2B,EAAe1hR,KAAK2hR,qBAAqBr8Q,EAAQy0D,EAAWynN,GAEhE,GADAt6M,EAAQw6M,EAAax6M,OAChBA,EACD,OAAO,EAGX,GADAA,EAAQlnE,KAAKqiR,wBAAwB/8Q,EAAQ4hE,IACxCA,EACD,OAAO,EAEXlnE,KAAK8hR,WAAW56M,GAAQw6M,EAAaK,eAChClyF,GAAa7vL,KAAMknE,IACpBlnE,KAAKiiR,yBAAyB/6M,EAAO8yC,EAAUr4E,OAGvD,OAAOi+O,GAEX+B,qBAAsB,SAASr8Q,EAAQy0D,EAAWynN,GAC9C,IAAIt6M,EAAQlnE,KAAK6+Q,aAAa9kN,EAAWynN,GACrC3iO,EAAOqoB,GAASlnE,KAAKsiR,yBAAyBh9Q,EAAQ4hE,GAAO,GACjE,OAAKroB,GAAQA,EAAK+Q,OACP,IAEP/Q,EAAK0jO,kBACLr7M,EAAQroB,EAAK0jO,iBAEV,CACHr7M,MAAOA,EACP66M,cAAeljO,EAAKkjO,iBAG5BM,wBAAyB,SAAS/8Q,EAAQ4hE,GACtC,IAAI2C,EAAW7pE,KAAKs+Q,qBAChB/xM,EAAOrF,EAAMh5C,SACjB,GAAI27C,IAAa7pE,KAAK4hR,aAAar1M,GAAO,CACtC,IAAIuK,EAAe92E,KAAKwiR,iBAAiBt7M,GACrCroB,EAAO7+C,KAAKyiR,wBAAwBn9Q,EAAQinE,GAChD,GAAI1tB,EAAK+Q,OACL,OAEA/Q,EAAK6jO,kBACL1iR,KAAK2iR,sBAAsB7rM,EAAalyD,aACxCsiD,EAAQlnE,KAAKs7Q,mBAGrB,OAAOp0M,GAEX62M,iBAAkB,SAAS/jK,EAAW7sC,GAClC,IAAIjG,EAAQlnE,KAAKs7Q,kBACbzxM,EAAW7pE,KAAKs+Q,qBAChB/xM,EAAOvsE,KAAK86Q,cAAgB96Q,KAAK86Q,aAAarpQ,OAAOo4D,GACzD,GAAI7pE,KAAK+nB,OAAO,6BAA+B,GAAWwkD,IAASvsE,KAAK+nB,OAAO,yBAA2Bm/C,GAASA,EAAMZ,SAAS,IAAuB,CACrJ,IAAIxrE,EAAMkF,KAAKonB,gBAAgByhF,iBAAiBh/B,GAC5C9iE,EAAO/G,KAAKonB,gBAAgBsB,QAAQmhD,QACpC,IAAW/uE,GAAOiM,GAAQA,EAAKZ,OAASY,EAAKZ,KAAK6lB,gBAClDhsB,KAAKonB,gBAAgBkqH,gBAAgBx2I,QAGzCkF,KAAK4iR,4BAA4B5oK,EAAW7sC,IAGpDy1M,4BAA6B,SAAS5oK,EAAW7sC,GAC7C,IAAIpT,EAAY/5D,KAAK6iR,sBAAsB7oK,GACvC8oK,EAAyB9iR,KAAK+iR,0BAC9B51M,IAAc21M,GAA0B/oN,GACxC/5D,KAAKgjR,2BAA2BhpK,EAAUphC,eACtC,SAAW7e,GAAa,aAAeA,EACvC/5D,KAAKmgR,sBAAsBnmK,EAAWjgD,GAC/B,YAAcA,GAAa,cAAgBA,GAClD/5D,KAAKm/Q,kBAAkBnlK,EAAUphC,cAAe7e,IAE7C+oN,GACP9iR,KAAKijR,cAAcjpK,IAG3B6oK,sBAAuB,SAAS7oK,GAC5B,IAAIp/C,EAAoB56D,KAAK+nB,OAAO,wCAChCm7P,EAAUlpK,EAAUr4E,MACxB,MAAI,WAAai5B,EACNsoN,EAAU,UAAY,YAE7B,QAAUtoN,EACHsoN,EAAU,WAAa,YADlC,GAIJF,2BAA4B,SAAS1hN,GACjC,IAAIh8C,EAASg8C,EAAMh8C,OACf4hD,EAAQlnE,KAAKuhR,0BAA0Bj8P,GACvC+8K,EAAgBriM,KAAK+5Q,iBACzB/5Q,KAAKyhR,2BAA2Bv6M,GAC5Bm7H,GACAriM,KAAKmjR,mBAAmBj8M,GACxBj0D,WAAWjT,KAAKugM,mBAAmBrtL,aAAasX,KAAKxqB,KAAKugM,uBAE1D,OAAazzK,QAAQ,eAAExH,GAAS,UAChCtlB,KAAKq+Q,iBACL/8M,EAAM1mC,mBAGdojP,kBAAmB,SAAShkK,EAAW7sC,GACnC,IAAIjG,EAAQlnE,KAAKuhR,0BAA0BvnK,EAAUphC,cAActzD,QAC/D6nD,IACAntE,KAAKyhR,2BAA2Bv6M,GAC3BlnE,KAAK+5Q,kBAON/5Q,KAAKmjR,mBAAmBj8M,GACxBlnE,KAAKugM,mBAAmBptL,iBACpB,IAAMnT,KAAKonB,gBAAgBsB,QAAQ9uB,SACnCoG,KAAKo8Q,oBACLp8Q,KAAK6sP,eAAe/iE,cAVpB,SAAW9pL,KAAKugM,mBAAmBhQ,cACnCvwL,KAAKugM,mBAAmBptL,iBAExBnT,KAAKq+Q,iBAUbrkK,EAAUphC,cAAch+C,mBAGhCqjP,iBAAkB,SAASjkK,GACvB,GAAIh6G,KAAK+nB,OAAO,uBAAwB,CACpC,IAAIq7P,EAAmBpjR,KAAKumP,aAAa2Z,sBACrCkjB,IACAA,EAAiBpwQ,QACjBgnG,EAAUphC,cAAch+C,oBAIpCsjP,cAAe,WACX,IAAI/wM,EAAYntE,KAAKugM,mBAAmBpzH,YACpCtD,EAAW7pE,KAAKs+Q,qBAChB/xM,EAAOvsE,KAAK86Q,cAAgB96Q,KAAK86Q,aAAarpQ,OAAOo4D,IACpDsD,GAAa,GAAUZ,IACxBvsE,KAAKijR,iBAGb9D,kBAAmB,SAAS75Q,EAAQk1B,GAChC,IAAI0sC,EAAQlnE,KAAK6+Q,aAAarkP,GAC1B+jP,EAAgBv+Q,KAAKw+Q,uBAAuBhkP,GAC5C6oP,EAAcn8M,GAASlnE,KAAKsjR,aAAap8M,GACzCjoE,IAASokR,GAAcrjR,KAAK8+Q,2BAA2Bx5Q,EAAQ4hE,EAAOq3M,GAC1E,OAAOt/Q,GAEX6/Q,2BAA4B,SAASx5Q,EAAQi+Q,EAAWxpN,GACpD,IAAIypN,EAAsB,YAAczpN,GAAa,YAAcA,EAC/Dlb,EAAO7+C,KAAKyjR,yBAAyBn+Q,EAAQi+Q,EAAWC,GAAqB,GAEjF,OADAD,EAAY1kO,EAAK0jO,kBACZ1jO,EAAK+Q,SAAU5vD,KAAKsjR,aAAaC,MAClCvjR,KAAK0jR,OAAOH,GAAY1kO,EAAKkjO,gBACtB,IAIflE,kBAAmB,SAASjlM,EAAe+qM,GACvC,IAAK3jR,KAAKm+Q,yBAA2BvlM,EAAcyzE,QAAUzzE,EAAc9lE,SAAW9S,KAAKugM,mBAAmBpzH,YAC1G,OAAO,EAEX,GAAIw2M,EACA3jR,KAAKijR,cAAcrqM,EAAe0gM,QAC/B,CACH,IAAIx+Q,EAAM89E,EAAc99E,IACpB0/B,EAAUo+C,EAAcp+C,SAAWo+C,EAAcn+C,MACjDmpP,EAAiB9oR,GAAO0/B,GAAW7gC,OAAO0lC,aAAa7E,IACvDopP,GAAmB,IAAMA,EAAehqR,QAAUgqR,IAAmBtK,IACrEt5Q,KAAKijR,cAAcrqM,EAAegrM,GAG1C,OAAO,GAEXhH,qBAAsB,SAASh5Q,GAC3B,IAAI09D,EAAQ19D,EAAE09D,OAAS19D,EACnBi9D,EAAU,eAAES,EAAMoI,eAClBx9C,EAAWlsB,KAAKmsB,QAAQ,YACxB6zP,EAAqB9zP,GAAYA,EAASrF,UAC1C+8C,EAAU/C,EAAQ3yC,SAClB21P,EAAuB,eAAEviN,EAAMh8C,QAAQ13B,GAAG2rR,IAC1Cr3C,IAAmB,eAAE5gK,EAAMh8C,QAAQ2H,QAAQ,IAAIpb,OAAO,KAAsBjY,OAC5EkqR,EAAsBjjN,EAAQyF,SAAS,IACtCtmE,KAAKo7Q,sBAAsB95M,KAG3B4gK,IAAmBliO,KAAKsjR,aAAaziN,GAAUgjN,KAAyBC,EAalEjjN,EAAQjzE,GAAG,OAClBoS,KAAKo8Q,qBAbLv7M,EAAU7gE,KAAK+jR,kBAAkBljN,GAAW,eAAES,EAAMh8C,QAAUu7C,EAC9D7gE,KAAKgkR,aACL,eAAEhE,GAAoBx4P,YAAY,IAC9Bo8C,EAAQ0C,SAAS6yM,KACjBn5Q,KAAKyhR,2BAA2B5gN,GAChC7gE,KAAKw8Q,wBAAwBx8Q,KAAK86Q,aAAaj0P,WAC/C7mB,KAAK86Q,aAAa9nQ,OAAM,IAChBhT,KAAKikR,oBAAoBpjN,GAGjC7gE,KAAKyhR,2BAA2B5gN,GAFhC7gE,KAAKkkR,wBAAwB5iN,EAAOT,MAQhDqjN,wBAAyB,SAAS5iN,EAAO4F,GACrC,IAAItiD,EAAc5kB,KAAKmsB,QAAQ,YAAY4nD,aAAa7M,GACpDp2D,EAAS9Q,KAAKysE,mBAAmBC,oBAAoB9nD,GACrD2zM,EAAiBv4N,KAAKmkR,kBAC1BnkR,KAAKm9Q,mBACL,IAAIt+N,EAAO7+C,KAAKyjR,yBAAyBniN,EAAO4F,GAAO,GAEvD,GADAA,EAAQroB,EAAK0jO,gBACR1jO,EAAK+Q,OAwBN5vD,KAAKk9Q,kBACLl9Q,KAAKokR,mBAAmBvlO,EAAKwlO,cACzBrkR,KAAKugM,mBAAmBpzH,aAAeorJ,GACvCv4N,KAAKq+Q,qBA3BK,CACd,GAAIx/N,EAAKylO,gBAEL,YADAtkR,KAAKihE,cAAc,SAASsjN,mBAUhC,GAPI1lO,EAAK6jO,kBACLx7M,EAAQlnE,KAAKs7Q,mBAEZz8N,EAAKkjO,eAAkBxpD,GACxBv4N,KAAKk9Q,kBAETl9Q,KAAKyhR,2BAA2Bv6M,GAC5BlnE,KAAKwkR,qBAAuBjsD,GAAkBznN,GAAUA,EAAO26C,aAC/DzrD,KAAK87Q,cAAe,EACpB97Q,KAAK+7Q,gBAAiB,MACnB,CACH70M,EAAQlnE,KAAKs7Q,kBACb,IAAIz6M,EAAUS,GAAS,eAAEA,EAAMh8C,QAAQ2H,QAAQusP,GAAkC,QAC7EiL,EAAiB5jN,GAAWA,EAAQkP,IAAI7I,GAAOt5E,GAAG4rR,IAClDlnD,IAAaxhN,IAAWA,EAAO6c,SAAWu5C,EAAMZ,SAAS,IACzDo+M,GAAcpyD,KAAczzK,EAAKkjO,eAAiB0C,GACtDzkR,KAAK0jR,OAAOx8M,EAAOw9M,EAAYD,MAU3CD,kBAAmB,WACf,IAAI36M,EAAW7pE,KAAKs+Q,qBAChBztQ,EAAM7Q,KAAKonB,gBAAgBsB,QAAQmhD,GACvC,OAAO7pE,KAAKugM,mBAAmBtwI,cAAc,CACzCp/C,IAAKA,GACN,UAEPmC,MAAO,SAAS6T,GACZ,IAAI89P,EACAjgO,EAAoB1kD,KAAK+nB,OAAO,qBAChCg6P,EAAgBjI,GAAc,eAAEjzP,IAC/BA,IACD89P,EAAwB,0CACnBjgO,IACDigO,GAAyB,kDAE7B99P,EAAU7mB,KAAK+M,UAAUiZ,WAAWiB,KAAK09P,GAAuBlrM,SAEpE5yD,GAAW7mB,KAAK4kR,cAAc,eAAE/9P,GAAUk7P,IAE9C8C,eAAgB,WACZ,OAAO7kR,KAAK86Q,cAEhBF,iBAAkB,WACV56Q,KAAK26E,sBAAwB,eAAU36E,KAAK86Q,eAC5C96Q,KAAKgkR,cAGbY,cAAe,SAAS5+P,EAAU+7P,GAC9B,IAAI+C,EAAkB,eAAE9kR,KAAKs8Q,uBACzByI,EAAe/+P,EAASiH,QAAQ63P,GAChC/H,EAAiB/8Q,KAAK+8Q,iBACtBl+N,EAAO,IACNkmO,EAAanrR,QAAUkgR,GAAc9zP,KAAchmB,KAAKsjR,aAAat9P,KAG1EhmB,KAAKgkR,aACLhkR,KAAK87Q,cAAe,EACpB97Q,KAAK66Q,eAAgB,GACjBf,GAAc9zP,IAAa,GAAWA,MACtChmB,KAAKm9Q,mBACLt+N,EAAO7+C,KAAKyjR,yBAAyB,KAAMz9P,GAAU,EAAO+7P,GAC5D/7P,EAAW64B,EAAK0jO,gBACZxF,IAAmBl+N,EAAKkjO,eACxB/hR,KAAKk9Q,mBAGRr+N,EAAK+Q,SACN5vD,KAAK0jR,OAAO19P,GAAW64B,EAAKkjO,eAC5B/hR,KAAKiiR,yBAAyBj8P,MAGtCg/P,yBAA0B,SAASh/P,GAC/B,IAAI0iG,EAAO1oH,KAAK6kR,iBACZvkH,EAAQ53C,GAAQ,eAAEA,EAAK7hG,WAC3B,OAAOb,GAAY,IAAMA,EAASiH,QAAQqzI,GAAO1mK,QAErDoqR,WAAY,WACRhkR,KAAK86Q,aAAe96Q,KAAKmsB,QAAQ,aAErCkwP,kBAAmB,WACfr8Q,KAAKk9Q,kBACLl9Q,KAAK86Q,aAAe,MAExBmH,yBAA0B,SAAS/6M,EAAOmwB,GACtC,GAAKnwB,EAAL,CAGA,IAAIsiH,EAAkBxpL,KAAKmiR,uBAAuBj7M,EAAOmwB,GACzD,OAAczqE,sBAAsB5sB,KAAMwpL,KAE9Ck6F,OAAQ,SAASx8M,EAAO+9M,EAAcR,GAClC,IAAIl4M,EAAOrF,IAAUA,EAAMZ,SAAS,IAAaY,EAAMj6C,QAAQ,IAAIpb,OAAO,KAAcq1D,EACxF,IAAIqF,IAAQstM,GAAgBttM,GAA5B,CAGA,IAEI24M,EAFAC,EAAcnlR,KAAK86Q,aACnBthM,EAAoB2rM,GAAeA,EAAYt+P,UAEnD7mB,KAAK+7Q,eAAiBkJ,EACtB,IAAIG,EAAa,GAAW74M,IAASvsE,KAAK+8Q,iBACtCqI,GACAF,EAAgB34M,EACZ44M,GACAnlR,KAAKokR,mBAAmBpkR,KAAK4hR,aAAar1M,KAEvCutM,GAAc5yM,KACrBg+M,EAAgBh+M,EAChBlnE,KAAKyhR,2BAA2Bv6M,IAEhCg+M,IACI1rM,GACAA,EAAkBvyD,KAAK,6CAA6C8oD,IAAIm1M,GAAe19P,YAAY,IAA2B+lD,WAAW,YAE7I,OAAa83M,IAAIH,EAAe,OAAQthR,IAChCA,EAAE07O,eACF4lC,EAAc19P,YAAY,MAG7Bi9P,IACDzkR,KAAKw8Q,wBAAwB0I,GAC7B,OAAap4P,QAAQo4P,EAAe,UAEpCD,GACAC,EAAc59P,SAAS,IACnB89P,GACAl+M,EAAM5/C,SAAS,KAGnBtnB,KAAK6sP,eAAe75O,MAAMkyQ,MAItCn7F,aAAc,SAASu7F,GACnBtlR,KAAKw6Q,oBAAsBvnQ,WAAW,KAClC,IAAI63F,EAAoB9qG,KAAKugM,mBACzBg4B,EAAiBztH,EAAkBylF,gBAAkB,GACrDmoC,EAAkB5tH,EAAkBylF,gBAAkB,GAC1D,GAAIgoC,GAAkBztH,EAAkBggB,cAAgB4tG,GAAmB5tH,EAAkBq1F,qBACzFr1F,EAAkBuvF,wBADtB,CAIA,IAAInzH,EAAQlnE,KAAKs7Q,kBACbnuM,EAAY29B,EAAkB39B,YAClC,GAAIjG,KAAWlnE,KAAKikR,oBAAoB/8M,IAAWlnE,KAAK+5Q,kBAAmB,CACvE,GAAI/5Q,KAAKulR,YAAYr+M,EAAMh5C,UAAW,CAClC,IAAI6rC,EAAY/5D,KAAK06Q,sBAAwB16Q,KAAK06Q,qBAAqB7wM,SAAW,EAAI,UAAY,YAClG3C,EAAQlnE,KAAK6+Q,aAAa9kN,GAE9B,GAAIigN,GAAiB9yM,GACjB,GAAIA,EAAMt5E,GAAG,OAASs5E,EAAMZ,SAAStmE,KAAK+mB,gBAAgB,KAAwB,CAC9E,IAAI6oK,EAAgB1oH,EAAMt5E,GAAGwrR,IACzBoM,EAA4Bt+M,EAAMjgD,KAAK,UACvCw+P,EAA0BzL,GAAiBwL,GAC/C,IAAKF,GAAiB11F,IAAkB5vL,KAAK6sP,eAAe75O,QAKhDyyQ,IAA4BzlR,KAAK87Q,eAAgB97Q,KAAK+7Q,gBAC9D/7Q,KAAK0jR,OAAOx8M,EAAOlnE,KAAK+7Q,oBANyC,CACjE,GAAInsF,GAAiB61F,EAEjB,YADA,OAAc74P,sBAAsB5sB,KAAMwlR,IAE5CC,GAA2BzlR,KAAK0jR,OAAOx8M,GAIzCiG,GACAntE,KAAKiiR,yBAAyBz3P,KAAKxqB,KAAnCA,CAAyCknE,QAG7C,OAAap6C,QAAQo6C,EAAO,cAMhDo0M,gBAAiB,WACb,OAAO,eAAEt7Q,KAAKmhR,SAASnhR,KAAK06Q,wBAEhC4C,mCAAoC,SAASh4P,GACzC,IAAIogQ,EACAlE,EAAcxhR,KAAKy/Q,gBAAgBn6P,GACvC,GAAI,QAAUk8P,GAAe,eAAU,QAAUkE,EAAwB1lR,KAAK06Q,4BAAyB,IAAWgL,OAAwB,EAASA,EAAsB9gQ,aAAc,CACnL,IAAI2nD,EAAO,eAAEjnD,GACbtlB,KAAK86Q,cAAgB,GAAWvuM,IAASvsE,KAAKokR,mBAAmBpkR,KAAK4hR,aAAar1M,SAEnFvsE,KAAKyhR,2BAA2BzhR,KAAKuhR,0BAA0Bj8P,KAGvEm8P,2BAA4B,SAASv6M,EAAOnN,GACxC,IAAIvF,EAAWx0D,KAAKwiR,iBAAiBt7M,EAAOnN,GAM5C,OALIvF,KACK0S,EAAMttE,QAAU46D,EAASqV,UAAY,GAAKrV,EAAS5vC,aAAe,IACnE5kB,KAAK2lR,uBAAuBnxN,EAASqV,SAAUrV,EAAS5vC,aAGzD4vC,GAEXoxN,6BAA8B,SAAShhQ,GACnC,IAAIwG,EAAS,EACTta,EAAS9Q,KAAKysE,mBAAmBC,oBAAoB9nD,GAMzD,OALI9T,GAAUA,EAAO8c,MACjBxC,EAASprB,KAAK6lR,2BAA2B/0Q,GAClC8T,GAAe,IACtBwG,EAASprB,KAAKysE,mBAAmB+F,wBAE9BpnD,GAEXy6P,2BAA4B,SAAS/0Q,GACjC,IAAIsa,EAAS+uP,GAAiCn6Q,KAAM8Q,GAAU9Q,KAAK8gR,yBAA2B9gR,KAAKysE,mBAAmBC,oBAAoB9yE,OAAS,EACnJ,OAAOwxB,GAEXo3P,iBAAkB,SAASt7M,EAAOnN,GAC9B,IAAIn1C,EACA2nD,EAAOytM,GAAiB9yM,IAAUA,EAAMj6C,QAAQ,MAChDf,EAAWlsB,KAAKmsB,QAAQ,YAC5B,GAAI6tP,GAAiBztM,GAAO,CACxB,IAAI1C,EAAW7pE,KAAK4hR,aAAar1M,GAOjC,OANA3nD,EAAcsH,EAAS6nD,aAAa7M,EAAO2C,GAC3CjlD,GAAe5kB,KAAK4lR,6BAA6BhhQ,GAC7Cm1C,IACAn1C,EAAc,aAAem1C,EAAYn1C,EAAc,EAAIA,EAAc,EACzEA,EAAc5kB,KAAK8lR,4BAA4BlhQ,IAE5C,CACHilD,SAAUA,EACVjlD,YAAaA,KAIzBk9P,WAAY,SAAS56M,EAAOw9M,GACxB,GAAI1kR,KAAKsjR,aAAap8M,GAElB,OADAlnE,KAAK0jR,OAAOx8M,EAAOw9M,IACZ,GAGfvB,mBAAoB,SAASj8M,GACrBA,EAAMZ,SAAS,KACftmE,KAAK6sP,eAAe75O,MAAMk0D,GAAO,IAGzCk1M,kBAAmB,SAASn4M,GACxB,IAAI8hN,EACA7+M,EAAQlnE,KAAKs7Q,kBACjBtB,GAAiB9yM,IAAUA,EAAMqG,WAAW,YAC5CvtE,KAAK87Q,cAAe,EACpB97Q,KAAK66Q,eAAgB,EACrB76Q,KAAK06Q,qBAAuB,GAC5BjxM,aAAazpE,KAAKw6Q,qBAClB,QAAUuL,EAAqB/lR,KAAK86Q,oBAAiB,IAAWiL,GAA8BA,EAAmBC,iBAAiB,CAC9H/hN,cAAeA,KAGvBgiN,wBAAyB,SAASp8M,EAAUvkE,GACxC,IAAIu5C,EACAmzB,EACAitM,EAAY,eAAUp1M,GACtB39C,EAAWlsB,KAAKmsB,QAAQ,YACxBu+F,EAAmBx+F,EAASrF,UAC5BjC,EAAc5kB,KAAK06Q,qBAAqB91P,YACxC+hF,EAAiB3mG,KAAKonB,gBAAgBw/E,oBAC1C/8B,EAAWo1M,EAAYp1M,EAAW39C,EAAS6nF,yBAA2BpN,EACjEs4K,GAKDjtM,EAAc9lD,EAASza,OAAOo4D,EAAW88B,GACzC9nD,EAAO7+C,KAAKyiR,wBAAwBn9Q,EAAQ0sE,IACvCnzB,EAAK+Q,QAAU/Q,EAAK6jO,kBACrB74M,EAAWhrB,EAAKqnO,eAPpBlmR,KAAK6sP,eAAe/iE,YACpB9pL,KAAKw8Q,wBAAwB9xJ,GAC7B,OAAa59F,QAAQ49F,EAAkB,UAQtCu0J,GAAcpgO,EAAK+Q,QACpB5vD,KAAK2lR,uBAAuB97M,EAAUjlD,GAE1Cq6P,GAAaj/Q,KAAK+pL,gBAEtBo8F,sBAAuB,SAASrvM,EAAc0qM,EAAa7wP,GACvD,IAEIy1P,EAFAxhQ,EAAckyD,EAAalyD,YAC3BilD,EAAWiN,EAAajN,SAE5B,QAAI,IAAWiN,EAAajN,UAAY,SAAWl5C,EAC/C,MAAO,CACH/L,YAAa,EACbilD,SAAU,GAGlB,OAAQl5C,GACJ,IAAK,YACL,IAAK,OACDy1P,EAAsBpmR,KAAK8gR,yBACvBl8P,EAAcwhQ,EAAsB,GAAK,QAAU5E,GAAexhR,KAAKqmR,2BAA2B,CAC9FzhQ,YAAaA,EACbilD,SAAUA,IAEdjlD,IACQ5kB,KAAKsmR,WAAWz8M,IAAa,SAAWl5C,IAChD/L,EAAc,EACdilD,KAEJ,MACJ,IAAK,gBACL,IAAK,WACGjlD,EAAc,GAAK,QAAU48P,GAAexhR,KAAKumR,4BAA4B,CACzE3hQ,YAAaA,EACbilD,SAAUA,IAEdjlD,IACOilD,EAAW,GAAK,aAAel5C,IACtCk5C,IACAu8M,EAAsBpmR,KAAK8gR,yBAC3Bl8P,EAAcwhQ,EAAsB,GAExC,MACJ,IAAK,UACDv8M,EAAWA,EAAW,EAAIA,EAAW,EAAIA,EACzC,MACJ,IAAK,YACDA,EAAY7pE,KAAKsmR,WAAWz8M,GAA2BA,EAAfA,EAAW,EAE3D,MAAO,CACHjlD,YAAaA,EACbilD,SAAUA,IAGlB87M,uBAAwB,SAAS97M,EAAUjlD,GACvC5kB,KAAKokR,mBAAmBv6M,GACxB7pE,KAAK2iR,sBAAsB/9P,IAE/Bw/P,mBAAoB,SAASv6M,GACpB7pE,KAAK06Q,uBACN16Q,KAAK06Q,qBAAuB,IAEhC16Q,KAAK06Q,qBAAqB7wM,SAAWA,GAEzC84M,sBAAuB,SAAS/9P,GACvB5kB,KAAK06Q,uBACN16Q,KAAK06Q,qBAAuB,IAEhC16Q,KAAK06Q,qBAAqB91P,YAAcA,GAE5CklD,YAAa,WACT,OAAO9pE,KAAK06Q,qBAAuB16Q,KAAK06Q,qBAAqB7wM,UAAY,GAE7E82M,eAAgB,WACZ,OAAO3gR,KAAK06Q,qBAAuB16Q,KAAK06Q,qBAAqB91P,aAAe,GAEhF05P,mBAAoB,WAChB,IAAIz0M,EAAW7pE,KAAK06Q,sBAAwB16Q,KAAK06Q,qBAAqB7wM,SACtE,OAAK,eAAUA,IAAaA,EAAW,GAC3B,EAELA,EAAW7pE,KAAKonB,gBAAgBw/E,qBAE3ChxB,sBAAuB,WACnB,IAAIhxD,EAAc5kB,KAAK06Q,sBAAwB16Q,KAAK06Q,qBAAqB91P,YACzE,OAAK,eAAUA,GAGRA,EAAc5kB,KAAKysE,mBAAmB+F,wBAFjC,GAIhBszM,4BAA6B,SAASlhQ,GAClC,IAAIwhQ,EAAsBpmR,KAAK8gR,yBAM/B,OALIl8P,EAAc,EACdA,EAAc,EACPA,GAAewhQ,IACtBxhQ,EAAcwhQ,EAAsB,GAEjCxhQ,GAEX4hQ,uBAAwB,SAAS1vM,GAC7B,IAAI5P,EAAQ,eAAElnE,KAAKmhR,SAASrqM,IAC5B,OAAO92E,KAAKsjR,aAAap8M,IAE7Bo/M,WAAY,SAASz8M,GACjB,IAAIooB,EAAiBjyF,KAAKonB,gBACtB87E,EAAejR,EAAevpE,QAAQtqB,OAAO2I,IAAQ,IAAUA,EAAK4iD,SACxE,OAAI3pD,KAAKo/Q,sBACEv1M,GAAYooB,EAAew0L,iBAE/B58M,IAAaq5B,EAAatpG,OAAS,GAE9CkmR,kBAAmB,SAAShpM,GACxB,IAAI4vM,GAAmB,EAIvB,OAHI,IAAM5vM,EAAajN,UAAYiN,EAAalyD,aAAe,IAC3D8hQ,EAAmBA,IAAqB1mR,KAAKumR,4BAA4BzvM,IAEtE4vM,GAEXH,4BAA6B,SAASzvM,GAClC,IAAIlyD,EAAckyD,EAAalyD,YAC3B+hQ,GAAgB,EACpB,MAAO/hQ,EAAc,IAAM+hQ,EAAe,CACtC,IAAIC,EAAmB,CACnBhiQ,cAAeA,EACfilD,SAAUiN,EAAajN,UAE3B88M,EAAgB3mR,KAAKwmR,uBAAuBI,GAEhD,OAAOD,GAEXN,2BAA4B,SAASvvM,GACjC,IAAIlyD,EAAckyD,EAAalyD,YAC3B+hQ,GAAgB,EAChBE,EAAqB7mR,KAAK8gR,yBAC9B,MAAOl8P,EAAciiQ,EAAqB,IAAMF,EAAe,CAC3D,IAAIC,EAAmB,CACnBhiQ,cAAeA,EACfilD,SAAUiN,EAAajN,UAE3B88M,EAAgB3mR,KAAKwmR,uBAAuBI,GAEhD,OAAOD,GAEX9G,iBAAkB,SAAS/oM,GACvB,IAAIq+L,EAAkBr+L,EAAalyD,aAAe,EAAIkyD,EAAalyD,YAAc,EAAI,EACjFilD,EAAWiN,EAAajN,SACxB+8M,EAAmB,CACnBhiQ,YAAauwP,EACbtrM,SAAUA,GAEVgmK,EAAc7vO,KAAKonB,gBAAgB+/E,iBACnCt2F,EAAMg/N,GAAeA,EAAYhmK,GACjCq8I,EAAYlmN,KAAKsmR,WAAWz8M,GAChC,QAAKq8I,OAGDr1M,GAAO,UAAYA,EAAIM,SAAW2lE,EAAalyD,YAAc,KAG7DkyD,EAAalyD,cAAgB5kB,KAAK8gR,yBAA2B,IAG7D9gR,KAAKwmR,uBAAuBI,IAGzB5mR,KAAK6/Q,iBAAiB+G,MAEjCtD,aAAc,SAASp8M,EAAO4/M,GAC1B,GAAI9M,GAAiB9yM,GAAQ,CACzB,IAAIh7C,EAAWlsB,KAAKmsB,QAAQ,YACxBogD,EAAOrF,EAAMh5C,SACby4C,EAAoB3mE,KAAKysE,mBACzB7nD,EAAcsH,EAAS6nD,aAAa7M,GAASP,EAAkB6L,uBAC/D1hE,EAAS61D,EAAkB+F,kBAAkB,MAAM,GAAM9nD,GACzDiiQ,EAAqB7mR,KAAK8gR,yBAC1Bh2K,EAAoB9qG,KAAKugM,mBACzBzzH,EAAoB0qJ,GAAYjrJ,GAChCw6M,EAAoBj2Q,GAAUA,EAAO28C,gBACrCu5N,EAAal2Q,IAAWo2D,EAAMZ,SAAS,KAAyB,GAAUiG,GAC9E,GAAIvsE,KAAKikR,oBAAoB/8M,GACzB,OAAO,EAEX,GAAI2/M,EAAqBjiQ,KAAiBkoD,GAAqBh8D,KAAY,eAAUA,EAAOi8C,aAAeg6N,GAAqBC,IAAezlR,SAAS2lE,EAAMlG,KAAK,YAAc,GAAI,CACjL,IAAIimN,EAAWjnR,KAAKonB,gBAAgBsB,QAChCu8E,EAAkB/4E,EAAS49C,YAAYyC,GACvC17D,EAAMo2Q,EAAShiL,GACf+F,EAAgBF,GAAqB9qG,KAAKmkR,mBAAqBr5K,EAAkB39B,YACjF+xM,EAA2Bp0K,GAAqBA,EAAkBsvC,UAAUn1C,GAC5E93B,EAAY+xM,GAA4Bl0K,EAC5C,OAAIl6F,EAAO6c,QACH3tB,KAAKknR,uBACG/5M,GAAa,WAAar8D,EAAO6c,SAEzCq9E,IAGAk0K,EACO,WAAapuQ,EAAO6c,SAEvBw/C,KAER69B,IAAiBn6F,GAAO,SAAWA,EAAIM,YAGnCg8D,GAAar8D,EAAO26C,cAAgBq7N,MAIxD1E,uBAAwB,SAAS71M,EAAM3nD,GACnC,IACIsiD,EACAsgI,EAFA9/H,EAAS6E,EAAKtlD,KAAK,QAGvBrC,EAAcA,GAAe,EAC7B,IAAK,IAAInpB,EAAImpB,EAAanpB,EAAIisE,EAAO9tE,SAAU6B,EAE3C,GADAyrE,EAAQQ,EAAOl8C,GAAG/vB,GACduE,KAAKsjR,aAAap8M,GAAQ,CAC1BsgI,EAAUtgI,EACV,MAGR,OAAOsgI,GAEXq3E,aAAc,SAASrkP,EAASgnP,EAAa1qM,GACzC,IAGI5P,EACAqF,EAJA46M,EAAsBrwM,GAAgB92E,KAAK06Q,qBAC3CqC,EAAiB/8Q,KAAK+8Q,iBACtBqK,EAAsBrK,GAAkB,CAAC,OAAQ,YAAY/5Q,SAASw3B,GAG1E,GAAIx6B,KAAK86Q,cAAgBqM,EAAqB,CAC1C,IAAIE,EAAyBrnR,KAAKmmR,sBAAsBgB,EAAqB3F,EAAahnP,GAC1F0sC,EAAQ,eAAElnE,KAAKmhR,SAASkG,IACxB,IAAIC,EAAwB,aAAe9sP,EAAUx6B,KAAK8/Q,kBAAkBuH,GAA0BrnR,KAAK6/Q,iBAAiBwH,GAS5H,GARIrN,GAAiB9yM,KAAWlnE,KAAKsjR,aAAap8M,IAAUlnE,KAAKunR,aAAaF,EAAwBD,KAAyBE,IAEvHpgN,EADA61M,EACQ/8Q,KAAKoiR,uBAAuBl7M,EAAMh5C,SAAUm5P,EAAuBziQ,aAEnE5kB,KAAK6+Q,aAAarkP,EAAS,OAAQ6sP,IAGnD96M,EAAOytM,GAAiB9yM,IAAUA,EAAMh5C,SACpCluB,KAAKulR,YAAYh5M,GAAO,CACxB,IAAI1C,EAAW7pE,KAAK4hR,aAAar1M,GACjC,GAAKvsE,KAAKsmR,WAAWz8M,GAMjB,OAAO,KALP3C,EAAQlnE,KAAK6+Q,aAAarkP,EAAS,MAAO,CACtC5V,YAAauiQ,EAAoBviQ,YACjCilD,SAAUA,IAMtB,OAAOmwM,GAAiB9yM,GAASA,EAAQ,KAE7C,OAAO,MAEX+7M,cAAe,SAASjpK,EAAW4pK,GAC/B,IAAIuD,EAAsBnnR,KAAK06Q,qBAC3Bz1K,EAAkBjlG,KAAKs+Q,qBACvBkJ,EAAqBxnR,KAAK41E,wBAC1B/kE,EAAM7Q,KAAKonB,gBAAgBsB,QAAQu8E,GACnCn0F,EAAS9Q,KAAKysE,mBAAmBC,oBAAoB86M,GACrDxnR,KAAKynR,gBAAgB52Q,EAAKC,KACtB9Q,KAAK+5Q,iBACL/5Q,KAAKugM,mBAAmBnvI,QAAQ6zC,GACzBkiL,GACPnnR,KAAK0nR,eAAe1tK,EAAW4pK,KAI3C6D,gBAAiB,SAAS52Q,EAAKC,GAC3B,OAAO9Q,KAAKugM,mBAAmBtwI,cAAc,CACzCp/C,IAAKA,KACHC,GAAUA,EAAO26C,cAE3Bu2N,iBAAkB,WACd,IAAIn4M,EAAW7pE,KAAKs+Q,qBAChB3oH,EAAW31J,KAAK41E,wBACpB,OAAO51E,KAAKugM,mBAAmBc,SAASx3H,EAAU8rF,IAEtD+xH,eAAgB,SAAS1tK,EAAW4pK,GAChC5jR,KAAKy6Q,oBAAsB,eAAUmJ,GACrC,IAAI+D,EAAa3nR,KAAKgiR,mBACtB,GAAIhiR,KAAKo+Q,wBACL,IAAI,IAASuJ,EACT3nR,KAAK4nR,oBAAoB5tK,EAAW4pK,QACjC,GAAI+D,GAAcA,EAAWx6P,KAAM,CACtC,IAAImvL,EAAcsnE,IAAmBtK,GAA0BsK,EAAiB,GAChF+D,EAAWx6P,KAAK,IAAMntB,KAAK4nR,oBAAoB5tK,EAAWsiG,MAItEsrE,oBAAqB,SAAS5tK,EAAWsiG,GACrC,IAAIurE,EAAoBC,EACpBllI,EAAS5iJ,KAAKs7Q,kBAAkBr0P,KAAKsyP,IAA+B/tP,GAAG,GACvEu8P,EAAe,gBAAY/tK,EAAW,CACtCv7G,KAAM,UACN6mB,OAAQs9H,EAAOllJ,IAAI,KAEnBsqR,EAAgB,gBAAYhuK,EAAW,CACvCv7G,KAAM,WACN6mB,OAAQs9H,EAAOllJ,IAAI,KAEnBuqR,EAAa,gBAAYjuK,EAAW,CACpCv7G,KAAM,QACN6mB,OAAQs9H,EAAOllJ,IAAI,KASvB,GAPIuqR,EAAWrvM,gBACXqvM,EAAWrvM,cAAgB,gBAAYqvM,EAAWrvM,cAAe,CAC7DzyE,KAAMm2M,KAGd,QAAUurE,GAAsBC,EAAcllI,EAAOllJ,IAAI,IAAI0vB,cAAW,IAAWy6P,GAA8BA,EAAmBriQ,KAAKsiQ,GACzI,OAAah7P,QAAQ81H,EAAQmlI,IACxBA,EAAathG,uBACd,OAAa35J,QAAQ81H,EAAQolI,IACxBA,EAAcvhG,sBAAsB,CACrC,IAAIj9G,EAAU/6C,EAAA,KAAQC,QAAU,GAAK,EACrCzb,WAAW,KACP2vI,EAAOrB,IAAI+6D,GACX,IAAI4rE,EAAmBtlI,EAAO31H,QAAQ,IAAIpb,OAAO,KACjD,OAAa0uD,IAAI2nN,EAAkB,YACnC,OAAa7C,IAAI6C,EAAkB,YAAY,WAC3C,OAAap7P,QAAQ81H,EAAQ,aAEjC,OAAa91H,QAAQ81H,EAAQqlI,IAC9Bz+M,KAIfi6M,yBAA0B,SAASn+Q,EAAQ4hE,EAAOihN,EAAcpG,GAC5D,IAAIljO,EAAO,GACPi4B,EAAe92E,KAAKwiR,iBAAiBt7M,IAAU,GAqBnD,OApBIlnE,KAAKi9Q,oBACLp+N,EAAO7+C,KAAKsiR,yBAAyBh9Q,EAAQ4hE,EAAO66M,GAC/CljO,EAAK+Q,SACNknB,EAAalyD,YAAci6B,EAAKupO,eAChCtxM,EAAajN,SAAWhrB,EAAKqnO,YAC7BnE,EAAgBljO,EAAKkjO,cACrB76M,EAAQ,eAAElnE,KAAKmhR,SAASrqM,OAG3Bj4B,EAAK+Q,QAAUu4N,GAAgBjhN,IAChCroB,EAAO7+C,KAAKyiR,wBAAwBn9Q,EAAQ4hE,EAAMh5C,UAC7C2wB,EAAK+Q,SACNknB,EAAajN,SAAWhrB,EAAKqnO,YAC7BrnO,EAAKkjO,cAAgBA,IAG7BljO,EAAK0jO,gBAAkB,eAAEviR,KAAKmhR,SAASrqM,IAClCj4B,EAAK0jO,gBAAgB3oR,SACtBilD,EAAK0jO,gBAAkBr7M,GAEpBroB,GAEXyjO,yBAA0B,SAASh9Q,EAAQs4E,EAAcmkM,GACrD,IAAIsG,EAAgBroR,KAAK+nB,OAAO,sBAC5Bs8P,EAAerkR,KAAK+nB,OAAO,mBAC3B+uD,EAAe92E,KAAKwiR,iBAAiB5kM,GACrCh5D,EAAckyD,EAAeA,EAAalyD,aAAe,EACzDilD,EAAWiN,EAAeA,EAAajN,UAAY,EACnDhrB,EAAO,CACPkvB,YAAa6P,EACb0qM,gBAAiBD,EACjBhE,aAAcA,EACd+D,eAAgBxjQ,EAChBshQ,YAAar8M,EACbqH,KAAMlxE,KAAKonB,gBAAgB+/E,iBAC3B75E,QAASttB,KAAKysE,mBAAmBC,oBACjCpL,MAAOh8D,EACPy8Q,cAAeA,IAAiB,EAChCnyN,QAAQ,GAgBZ,OAdA5vD,KAAK26Q,sBAAwB,KAC7B36Q,KAAKwhE,cAAc,wBAAyB3iB,GACxCA,EAAKupO,iBAAmBxjQ,GAAei6B,EAAKqnO,cAAgBr8M,IAC5DhrB,EAAK0jO,gBAAkB,eAAEviR,KAAKmhR,SAAS,CACnCv8P,YAAai6B,EAAKupO,eAClBv+M,SAAUhrB,EAAKqnO,gBAGnBrnO,EAAK+Q,SACL5vD,KAAK26Q,sBAAwB,CACzB9wM,SAAUA,EACVjlD,YAAaA,IAGdi6B,GAEX0pO,wBAAyB,SAAS3qM,EAAcyqM,EAAehE,GAC3D,IAAIpyL,EAAiBjyF,KAAKonB,gBACtBxC,EAAc5kB,KAAKmsB,QAAQ,YAAY4nD,aAAa6J,GACpD/T,EAAW7pE,KAAK4hR,aAAahkM,GAAgBA,EAAa1vD,UAC1Ds6P,EAAgB7mQ,KAAKC,IAAIioD,EAAWooB,EAAe2U,oBAAqB3U,EAAevpE,QAAQ9uB,OAAS,GACxG81L,EAAgB1vL,KAAKugM,mBAAmBnM,WAAWo0F,EAAe5jQ,GAClE/T,EAAMohF,EAAevpE,QAAQ8/P,GAC5B94F,GAAkB24F,IAAkBzjQ,GAAey/P,IAAiBx6M,GACrE7pE,KAAKwhE,cAAc,uBAAwB,CACvCuM,YAAa6P,EACbh5D,YAAaA,EACbilD,SAAUA,EACVh5D,IAAKA,EACLC,OAAQ9Q,KAAKysE,mBAAmBC,oBAAoB9nD,MAIhE69P,wBAAyB,SAASzoK,EAAWyuK,GACzC,IAAIvC,EAAclmR,KAAK4hR,aAAa6G,GAChCx2L,EAAiBjyF,KAAKonB,gBACtBshQ,EAAsB1oR,KAAK+nB,OAAO,mBAClCg2E,EAAwB9L,EAAe8L,wBACvCl/C,EAAO,CACPkrB,WAAY0+M,EACZpE,aAAcqE,EACdxC,YAAaA,EACb5kN,MAAO04C,EACP9oC,KAAM+gB,EAAekV,iBACrBv3C,QAAQ,GAEZ,OAAKqiC,GAAkBA,EAAevsF,cAAgBq4F,EAAsBzI,QAAUyI,EAAsB31C,SACxGvJ,EAAK+Q,QAAS,EACP/Q,IAEP7+C,KAAK+nB,OAAO,uBACZ/nB,KAAKwhE,cAAc,uBAAwB3iB,GACtCA,EAAK+Q,QAAU/Q,EAAKqnO,cAAgBA,IACrCrnO,EAAKylO,gBAAkBzlO,EAAKqnO,YAAc,EACrCrnO,EAAKylO,iBACNtkR,KAAKokR,mBAAmBvlO,EAAKqnO,aAEjCrnO,EAAK6jO,iBAAkB,IAGxB7jO,IAEX8pO,uBAAwB,SAAS32M,GAC7B,IAAInhE,EACA+zC,EAAgB5kD,KAAK+nB,OAAO,iBAC5BuvK,EAAkBt3L,KAAKihE,cAAc,SACrCtc,EAAkB,OAAS2yI,QAAmB,IAAWA,OAAkB,EAASA,EAAgBsxF,wBAAwBhkO,GAChI,GAAI5kD,KAAK+nB,OAAO,qBAAsB,CAClC,GAAI48B,GAAmB,EAAG,CACtB,IAAIstC,EAAiBjyF,KAAKonB,gBAC1BvW,EAAM8zC,GAAmB,GAAKstC,EAAekV,iBAAiBxiD,EAAkBstC,EAAe2U,qBAEnG5mG,KAAKwhE,cAAc,sBAAuB,CACtCuI,WAAYiI,EACZnI,SAAUllB,EACV9zC,IAAKA,MAIjBuqQ,sBAAuB,SAAS95M,GAC5B,OAAO,OAAcxzC,uBAAuB9tB,KAAM,eAAEshE,EAAMh8C,UAE9Dy0P,eAAgB,WACZ,IAAIvpF,EAAWxwL,KAAKugM,mBAAmBhQ,cACvC,OAAOC,IAAa,IAAiBA,IAAa,IAEtD2zF,gBAAiB,WACb,IAAI3zF,EAAWxwL,KAAKugM,mBAAmBhQ,cACvC,OAAOC,IAAa,IAAkBA,IAAa,IAEvD2tF,sBAAuB,WACnB,OAAOn+Q,KAAKmkR,mBAAqBnkR,KAAK+nB,OAAO,sCAEjDo6P,uBAAwB,SAASj7M,EAAOmwB,GACpC,IAAImyF,EAAkBtiH,EAAMjgD,KAAKsyP,IAA+Bn7Q,OAAO,YACvE,OAAOi5F,EAASmyF,EAAgBtiK,OAASsiK,EAAgB/vG,SAE7D+iM,wBAAyB,SAASx2P,GAC9B,IAAIwjC,EAAWxpD,KAAK+nB,OAAO,aAAe,EAC1C/B,EAASg7C,KAAK,WAAY,eAAUxX,GAAYA,EAAW,IAE/D23N,SAAU,SAASrqM,GACf,GAAI92E,KAAK86Q,cAAgBhkM,EAAc,CACnC,IAAI6vB,EAAiB3mG,KAAKonB,gBAAgBw/E,oBACtC91F,EAAS9Q,KAAKysE,mBAAmBC,kBAAkB,MAAM,GAAMoK,EAAalyD,aAC5E2tD,EAAoBzhE,GAAUA,EAAO8c,MAAQ5tB,KAAK6lR,2BAA2B/0Q,GAAU9Q,KAAKysE,mBAAmB+F,uBAC/G3I,EAAWiN,EAAajN,UAAY,EAAIiN,EAAajN,SAAW88B,GAAkB,EAClF/hF,EAAckyD,EAAalyD,aAAe,EAAIkyD,EAAalyD,YAAc2tD,GAAqB,EAClG,OAAOvyE,KAAK86Q,aAAalpQ,QAAQ,CAC7Bi4D,SAAUA,EACVjlD,YAAaA,MAIzBg9P,aAAc,SAASr1M,GACnB,IAAIrgD,EAAWlsB,KAAKmsB,QAAQ,YACxB09C,EAAW39C,EAAS49C,YAAYyC,GAIpC,OAHI1C,GAAY,IACZA,GAAY7pE,KAAKonB,gBAAgBw/E,qBAE9B/8B,GAEX07M,YAAa,SAASh5M,GAClB,IAAI17D,EAAM07D,GAAQA,EAAK7uE,IAAI,GAC3B,OAAOmT,IAAQ,SAAWA,EAAIy5D,MAAMqL,SAAWpJ,EAAKjG,SAAStmE,KAAK+mB,gBAAgBmyP,MAAwB1hD,GAAYjrJ,KAAUA,EAAKjG,SAAStmE,KAAK+mB,gBAAgB,OAEvKg8P,wBAAyB,WACrB,MAAO,cAAgB/iR,KAAK+nB,OAAO,sCAEvCm/P,oBAAqB,WACjB,OAAOlnR,KAAK+nB,OAAO,gCAEvBy2P,uBAAwB,SAAS1jR,GAC7B,IAAIyjR,EACJ,OAAQzjR,GACJ,IAAK,UACDyjR,EAAgB,UAChB,MACJ,IAAK,YACDA,EAAgB,UAChB,MACJ,IAAK,YACDA,EAAgBv+Q,KAAK+nB,OAAO,cAAgB,YAAc,gBAC1D,MACJ,IAAK,aACDw2P,EAAgBv+Q,KAAK+nB,OAAO,cAAgB,gBAAkB,YAEtE,OAAOw2P,GAEXlE,oBAAqB,WACjB,IAAIj4K,EAAgBpiG,KAAK+nB,OAAO,kBAChC,MAAO,YAAcq6E,GAAiB,aAAeA,GAEzDg9K,oBAAqB,WACjB,OAAOp/Q,KAAKq6Q,uBAAyB,OAAclsP,sBAAsBnuB,OAE7E2+Q,uBAAwB,WACpB,MAAO,YAAc3+Q,KAAK+nB,OAAO,kCAErCs3P,UAAW,SAAS1zP,EAAMC,EAAKi+C,EAAUvkE,GACrC,IAAI3B,EAAO3D,KACPksG,EAAalsG,KAAKmsB,QAAQ,YAAYihF,gBAO1C,OANIzpG,EAAK+2Q,sBACLxuK,EAAW7mG,GAAG,UAAU,SAAUyoG,IAC9B5B,EAAW3rC,IAAI,SAAUutC,GACzB76F,WAAWtP,EAAKsiR,wBAAwBz7P,KAAK7mB,EAAMkmE,EAAUvkE,OAG9D4mG,EAAWy/F,SAAS,CACvBhgL,KAAMA,EACNC,IAAKA,KAGbm4P,kBAAmB,SAASl9P,GACxB,IAAIgiQ,EAAY,eAAEhiQ,GAASoG,QAAQ,IAAMjtB,KAAK+mB,gBAAgB,KAC9D,OAAO8hQ,EAAUjvR,QAAUoG,KAAK+hE,oBAAoB8mN,IAExD5E,oBAAqB,SAASp9P,GAC1B,IAAIiiQ,EAAoB,eAAEjiQ,GAASoG,QAAQ,IAAM,IACjD,OAAO67P,EAAkBlvR,QAAUoG,KAAK+hE,oBAAoB+mN,IAEhEC,+BAAgC,SAASxF,IAChCvjR,KAAK+jR,kBAAkBR,IAAcA,GACtCvjR,KAAKw8Q,wBAAwB+G,IAGrCtD,gCAAiC,SAAS36P,EAAQy0C,GAC9C,GAAI/5D,KAAKikR,oBAAoB3+P,GAAS,CAClCtlB,KAAKyhR,2BAA2B,eAAEn8P,GAASy0C,GAC3C,IAAIwpN,EAAYvjR,KAAK6+Q,aAAa9kN,EAAW,OAE7C,OADA/5D,KAAK+oR,+BAA+BxF,IAC7B,EAEX,OAAO,GAEX9D,gBAAiB,SAASn6P,GACtB,OAAO,eAAEA,GAAQ13B,GAAG,MAAQ,MAAQ,QAExCwwR,sBAAuB,WACnB,OAAOp+Q,KAAKm+Q,yBAA2Bn+Q,KAAKy6Q,qBAEhDqG,uBAAwB,WACpB,OAAO9gR,KAAKysE,mBAAmBC,kBAAkB,MAAM,GAAM9yE,QAEjE2tR,aAAc,SAASzwM,EAAcswM,GACjC,IAAIxiQ,EAAckyD,EAAalyD,YAC3BwhQ,EAAsBpmR,KAAK8gR,yBAC/B,OAAOsG,EAAsBxiQ,GAAe,GAAKA,GAAewhQ,EAAsB,EAAIxhQ,EAAc,GAAKA,EAAcwhQ,EAAsB,GAErJ7E,0BAA2B,SAASj8P,GAChC,IAEI4hD,EAFAs6M,EAAcxhR,KAAKy/Q,gBAAgBn6P,GACnC+0D,EAAiB,eAAE/0D,GAOvB,OAJI4hD,EADA,SAAWs6M,EACHnnM,EAAeptD,QAAQ,IAAIpb,OAAO,GAAW,UAE7CwoE,EAAehT,WAAW0I,IAAI,IAAM,IAAsB0J,QAE/DvS,GAEXo1M,oBAAqB,WACjB,IAAIpwP,EAAWlsB,KAAKmsB,QAAQ,YAC5B,OAAOD,GAAYA,EAASrF,WAEhC8zD,kBAAmB,WACf,OAAO36E,KAAK+nB,OAAO,+BAEvBihQ,iCAAkC,SAASn/M,EAAUjlD,GACjD,GAAI5kB,KAAK26Q,sBAAuB,CAC5B,IAAIsO,EAAajpR,KAAK26Q,sBAAsB9wM,WAAaA,GAAY7pE,KAAK26Q,sBAAsB/1P,cAAgBA,EAEhH,OADA5kB,KAAK26Q,sBAAwB,KACtBsO,IAGfC,sBAAuB,WACnB,IAAIj3L,EAAiBjyF,KAAKonB,gBACtB69E,EAAkBjlG,KAAKs+Q,qBACvBp7K,EAAejR,EAAevpE,QAC9BygQ,EAAmBjmL,EAAatpG,OAASspG,EAAatpG,OAAS,GAAK,EACpE+sG,EAAiB1U,EAAe2U,oBACpCuiL,GAAoB,GAAKlkL,EAAkBkkL,GAAoBnpR,KAAKokR,mBAAmB+E,EAAmBxiL,MAGvGyiL,GAA2B,CAClCzrR,eAAgB,WACZ,MAAO,CACHwwQ,6BAA6B,EAC7BhpN,mBAAoB,CAChBn9B,SAAS,EACT2yC,eAAgB,YAChBC,kBAAmB,OACnBF,gBAAgB,KAI5BmK,YAAa,CACT1f,mBAAoBm1N,IAExBr1M,UAAW,CACPF,MAAO,CACH74C,SAAU,CACN+9C,UAAW,SAASrmE,GAChB,IAAIszL,EAAel3L,KAAKihE,cAAc,WAAW+yH,kBAC7Ct5G,EAAqB16E,KAAKihE,cAAc,sBACxC0Z,EAAoBD,EAAmBC,oBACvCu8G,IAAiBtzL,EAAEimE,UACnB6Q,EAAmByiM,mBAEvB,IAAIkM,GAAkCpP,OAAet/L,IAAsB36E,KAAK+nB,OAAO,qBACnFshQ,GACArpR,KAAKspR,gCAAgC1lR,GAAI+2E,GAE7C36E,KAAKC,SAASnB,MAAMkB,KAAME,YAE9BopR,gCAAiC,SAAS1lR,EAAGspG,GACzC,IAAIt0B,EAAgBh1E,EAAE09D,MAAMsX,cAC5B,GAAIA,EAAe,CACf,IAAI8B,EAAqB16E,KAAKihE,cAAc,sBACxCiG,EAAQ,eAAE0R,EAActzD,QACxBV,EAAc5kB,KAAK+zE,aAAa7M,GAChCp2D,EAAS9Q,KAAKihE,cAAc,WAAWyL,oBAAoB9nD,GAC3D/T,EAAM7Q,KAAKihE,cAAc,QAAQv4C,QAAQ9kB,EAAEimE,UAC/C,GAAI6Q,EAAmB+sM,gBAAgB52Q,EAAKC,IAAWo8F,EAAO,CAC1D,IAAI8M,EAAY,gBAAYphC,EAAe,CACvClP,cAAekP,EAActzD,SAEjCo1D,EAAmBkiM,qBAAqB5iK,MAIpDgsK,iBAAkB,SAASpmM,GACvB,IACI3b,cAAeA,EACfw9L,gBAAiBA,GACjB,OAAS7hL,QAAU,IAAWA,EAASA,EAAS,GAChDlF,EAAqB16E,KAAKihE,cAAc,sBACxCypD,EAAmB1qH,KAAK6mB,UACxB6jG,IAAqB,gBAAQA,IAC7BA,EAAiB1pD,KAAK,WAAY,MAEtCygM,GAAmB/mL,EAAmBwuM,wBACtC,IAAIr/M,EAAW6Q,EAAmB4jM,uBAC7B,eAAUz0M,IAAaA,EAAW,KACnCA,EAAW,GAEf,IAAI0/M,EAAevpR,KAAKi2E,gBAAgBpM,GACpC6Q,EAAmBC,qBAAuB4uM,EAAa3vR,QACvDoG,KAAKwpR,2BAA2BD,EAActlN,IAGtDulN,2BAA4B,SAASD,GACjC,IAAI7uM,EAAqB16E,KAAKihE,cAAc,sBACxCsL,EAAOg9M,EAAa/9P,GAAG,GAAG0C,SAC9B,GAAI,GAAWq+C,GACXmO,EAAmB8hM,wBAAwBjwM,OACxC,CACH,IAAI3nD,EAAc81D,EAAmBimM,mBAChC,eAAU/7P,IAAgBA,EAAc,KACzCA,EAAc,GAElB5kB,KAAKypR,2BAA2BF,EAAc3kQ,KAGtD6kQ,2BAA4B,SAASF,EAAc3kQ,GAC/C,IAAI81D,EAAqB16E,KAAKihE,cAAc,sBACxCyoN,EAAqBH,EAAeA,EAAa3vR,QAAU,EAC3D+vR,EAAqB,SAASziN,GAC9B,IAAI0iN,EAAqBlvM,EAAmBupM,oBAAoB/8M,GAC5D2iN,EAAcnvM,EAAmB4oM,aAAap8M,GAClD,IAAK0iN,GAAsBC,GAAe/P,GAAc5yM,GAGpD,OAFAwT,EAAmB8hM,wBAAwBt1M,GAC3CwT,EAAmByiM,oBACZ,GAGXj2M,EAAQqiN,EAAanrR,OAAO,mBAAmByT,OAAO+S,EAAc,EAAG,OAC3E,GAAIsiD,EAAMttE,OACN+vR,EAAmBziN,OAChB,CACCwiN,GAAsB9kQ,IACtBA,EAAc8kQ,EAAqB,GAEvC,IAAK,IAAIjuR,EAAImpB,EAAanpB,EAAIiuR,IAAsBjuR,EAChD,GAAIkuR,EAAmB,eAAEJ,EAAa9tR,KAClC,QAKhB6yE,uBAAwB,SAAS1d,GAC7B5wD,KAAKC,SAASnB,MAAMkB,KAAME,WAC1BF,KAAK8pR,qBAAqBl5N,IAE9B,qBAAqBA,GACjB,IACIykC,eAAgBA,EAChB/sC,mBAAoBA,GACpB,OAASsI,QAAU,IAAWA,EAASA,EAAS,IAEhD2kC,WAAYA,EACZ/5B,SAAUA,GACV,OAAS65B,QAAkB,IAAWA,EAAiBA,EAAiB,GAC5E,IAAKzkC,IAAWtI,GAAsBitC,GAAc/5B,EAAU,CAC1D,IAAIyI,EAAgBm2M,GAAoBp6Q,MACxCA,KAAKgmR,iBAAiB,CAClB/hN,cAAeA,EACfw9L,gBAAiBjmM,MAI7BuH,YAAa,SAASnS,GAClB5wD,KAAKC,SAASnB,MAAMkB,KAAME,WAC1BF,KAAK8pR,qBAAqBl5N,IAE9BgxI,kBAAmB,SAAS16H,GACxB,IAAIkgJ,EAAiBpnN,KAAK+pR,mBAAmB7iN,GACzCwT,EAAqB16E,KAAKihE,cAAc,sBACxCw9M,EAA0B/jM,GAAsBA,EAAmB0jM,wBACnEh3D,GAAkBq3D,GAClBz+Q,KAAKgqR,6BAA6B5iE,GAEtCpnN,KAAKC,SAASnB,MAAMkB,KAAME,YAE9B8pR,6BAA8B,SAAS5iE,GACnC,CAAC,YAAa,WAAWlmN,SAAQ,SAAUynB,GACvC,IAAIshQ,EAAqB7iE,EAAe/wG,iBAAiB1tF,GACzDy+L,EAAehgD,mBAAmBz+I,EAAS/kB,IACvC,IAAIsmR,EAAmB,SAAW9iE,EAAeplE,SAAShhF,KAAK,iBAC/D,GAAIkpN,EACA,OAAOD,GAAsBA,EAAmBzkQ,KAAK4hM,EAAgBxjN,QAIjFwjN,EAAehgD,mBAAmB,YAAa,QAC/CggD,EAAehgD,mBAAmB,aAAc,QAChD,IAAI+iH,EAAoB/iE,EAAevlJ,OAASw3M,IAAuBjyD,EAAer/L,OAAO,mBACzFoiQ,GACA/iE,EAAehgD,mBAAmB,QAAS,SAGnD2iH,mBAAoB,SAAS7iN,GACzB,IAAIygE,EAAUzgE,EAAMjgD,KAAK,kBAAkBuE,GAAG,GAC9C,OAAO,OAAczF,kBAAkB4hH,MAInD9iE,YAAa,CACT7gB,QAAS,CACLq9I,SAAU,SAASx3H,EAAUjlD,GACzB,IAAI81D,EAAqB16E,KAAKihE,cAAc,sBAC5C,GAAIyZ,EAAmBsuM,iCAAiCn/M,EAAUjlD,GAC9D,OAAO,EAEX,IAAIomF,EAAgBhrG,KAAKC,SAAS4pE,EAAUjlD,GAI5C,OAHIomF,GACAtwB,EAAmBkgM,mBAEhB5vK,GAEX55C,QAAS,SAASyY,GACd,IAAI6Q,EAAqB16E,KAAKihE,cAAc,sBACxCumN,EAAqB9sM,EAAmB9E,wBACxC9kE,EAAS9Q,KAAKysE,mBAAmBC,oBAAoB86M,IACrD12Q,GAAUA,EAAOrS,MAAQuB,KAAK+nB,OAAO,kBAAoB,KACzD2yD,EAAmB0hM,oBAEvBp8Q,KAAKC,SAAS4pE,IAElB/Y,OAAQ,SAAS6kI,GACb,IAAIj7G,EAAqB16E,KAAKihE,cAAc,sBAG5C,OAFAyZ,EAAmBkgM,mBACnBlgM,EAAmByiM,mBACZn9Q,KAAKC,SAASnB,MAAMkB,KAAME,YAErC0yL,oBAAqB,SAAS/oH,GAC1B,IAAIugN,EAA+BpqR,KAAKihE,cAAc,sBAClDiG,EAAQlnE,KAAKC,SAAS4pE,GAC1B,GAAIugN,EAA6BzvM,qBAAuByvM,EAA6B1P,qBAAqB7wM,WAAaA,EAAU,CAC7H,IAAIwxM,EAAe+O,EAA6B9O,kBAC5CtB,GAAiBqB,KAAkBA,EAAa/0M,SAAS,MACzDY,EAAQm0M,GAGhB,OAAOn0M,GAEX2yH,4BAA6B,WACzB75L,KAAKuhM,gBAAgBp0K,KAAK,KACtB,IAAIg4B,EAAqBnlD,KAAKihE,cAAc,sBAC5C9b,EAAmB4kI,kBAG3BhqH,KAAM,WACF//D,KAAKC,WACLD,KAAKqqR,8BAAgCrqR,KAAKihE,cAAc,uBAE5DsgI,cAAe,WACX,IAAIp8I,EAAqBnlD,KAAKqqR,8BAC9BllO,EAAmBs1N,qBAAsB,EACzC,IAAIx7Q,EAASe,KAAKC,SAASnB,MAAMkB,KAAME,WAEvC,OADAilD,EAAmB4kI,eACZ9qL,GAEX+4L,mBAAoB,WAChBh4L,KAAKqqR,8BAA8BxP,eAAgB,EACnD76Q,KAAKC,SAASnB,MAAMkB,KAAME,YAE9B+3L,gBAAiB,WACb,IAAI9yI,EAAqBnlD,KAAKihE,cAAc,sBACxCrR,EAAS5vD,KAAKC,SAASnB,MAAMkB,KAAME,WACvC,GAAI0vD,IAAWzK,EAAmB22N,aAAc,CAC5C,IAAI50M,EAAQ/hB,EAAmBm2N,kBAC/Bn2N,EAAmBu+N,OAAOx8M,GAAO,GAErC,OAAOtX,IAGfzpD,KAAM,CACFqgG,mBAAoB,SAAS8jL,GACzB,IAAI3mR,EAAO3D,KACPoqR,EAA+BzmR,EAAKs9D,cAAc,sBAClDkwD,EAAgBxtH,EAAKs9D,cAAc,iBACnCkmN,EAAsBiD,EAA6B1P,qBAEvD,GADA/2Q,EAAK1D,SAASnB,MAAM6E,EAAMzD,WACtBinR,GAAuBA,EAAoBt9M,UAAY,EAAG,CAC1D,IAAI0gN,EAA4BD,EAAsBnD,EAAoBt9M,UACtE0gN,IACApD,EAAoBt9M,UAAY0gN,EAChCp5J,EAAcw5D,aAI1B87F,eAAgB,WACZ,IAAIxnR,EAASe,KAAK0oB,QAAQ9uB,OAAS,EAC/BysO,EAAoBrmO,KAAKqmO,oBAC7B,GAAIA,EAAmB,CACnB,IAAI1/H,EAAiB3mG,KAAK4mG,oBAC1B3nG,GAAU0nG,EAAiB0/H,EAAkBlkM,IAEjD,OAAOljC,IAGfurR,gBAAiB,CACbC,uBAAwB,SAASv9Q,GAC7B,IACIqrE,SAAUA,EACV7Q,OAAQA,EACR8pM,gBAAiBA,GACjBtkQ,EACJlN,KAAKC,SAASnB,MAAMkB,KAAME,WAC1Bq4E,IAAaohM,KAAwBnI,GAAmB9pM,EAAO0pG,KAAK,CAACryK,EAAGgvE,KACpE,IAAI7G,EAAQ,eAAE6G,GACdmsM,GAAkBhzM,IAAUA,EAAMlG,KAAK,WAAY,MAG3D0pN,uBAAwB,SAASh0L,GAC7B,IACIne,SAAUA,EACVrR,MAAOA,EACPsqM,gBAAiBA,GACjB96K,EACJ12F,KAAKC,SAASnB,MAAMkB,KAAME,WACtBq4E,IAAaohM,KAAwBnI,GAAmB0I,GAAkBhzM,IAC1EA,EAAMqG,WAAW,iBCj8DzC,SAASo9M,GAAiBlvR,EAAGg+C,EAAO3W,EAAM99B,GACtC,IAAIyC,EAAI,EACR,GAAIhM,EAAIg+C,EACJ,KAAOhyC,EAAIq7B,EAAKpa,MAAM9uB,OAAQ6N,IAC1BkjR,GAAiBlvR,EAAI,EAAGg+C,EAAO3W,EAAKpa,MAAMjhB,GAAIzC,GAGlDvJ,IAAMg+C,GACNz0C,EAAS89B,GAIjB,SAAShnC,GAAI+6B,EAAO7xB,GAChB,IAAIvJ,EACJ,GAAI,QAASo7B,EACT,OAAOA,EAAM/6B,IAAIkJ,GAErB,IAAI/F,EAAS,IAAIJ,MAAMg4B,EAAMj9B,QAC7B,IAAK6B,KAAKo7B,EACN53B,EAAOxD,GAAKuJ,EAAS6xB,EAAMp7B,GAAIA,GAEnC,OAAOwD,EAGX,SAAS,GAAQmO,GACb,OAAOA,IAAMA,GAAK,KAAOA,GAAK,OAASA,QAAK,IAAWA,EAG3D,SAASw9Q,GAAQC,GACb,OAAOA,IAAe,kBAAYtpQ,MAGtC,SAASupQ,GAAmBC,GACxB,IAAIpkQ,EAAW,gBAAcokQ,EAAUpkQ,UACnC8yC,IAAkB,oBAAqBsxN,IAAYA,EAAUtxN,gBAC7DoxN,EAAaE,EAAUF,WAC3B,GAAI,kBAAoBA,IACpBA,EAAa,kBAAYA,IACpBA,GACD,MAAMhnR,GAAA,KAAO63B,MAAM,QAASqvP,EAAUF,YAG9C,MAAO,CACHlkQ,SAAUA,EACVkkQ,WAAYA,EACZpxN,gBAAiBA,GCvDzB,EAASgM,eAAe,qBAAsB2jN,ID0D/B,cAAM/pN,QAAQ,CACzBE,KAAM,SAASvuD,GACXhR,KAAKkuC,MAAQl9B,EAAQ7K,KACrBnG,KAAKgrR,YAAch6Q,EAAQgiI,YAAc,EACzChzI,KAAKirR,iBAAmBnvR,GAAIkV,EAAQk6Q,iBAAmB,GAAIJ,IAC3D9qR,KAAKmrR,iBAAmBrvR,GAAIkV,EAAQo6Q,iBAAmB,GAAIN,IAC3D9qR,KAAKqrR,QAAU,IAEnBjhG,UAAW,WACHpqL,KAAKirR,iBAAiBrxR,QACtBoG,KAAKsrR,iBAAiB,EAAG,CACrB5iQ,MAAO1oB,KAAKkuC,QAGhBluC,KAAKmrR,iBAAiBvxR,QAAUoG,KAAKgrR,YAAc,GACnDhrR,KAAKurR,iBAAiB,CAClB7iQ,MAAO1oB,KAAKkuC,SAIxBg9O,gBAAiB,WACb,OAAOlrR,KAAKqrR,SAEhBG,WAAY,SAASC,EAAYtlR,EAAMgiB,GAEnC,IADA,IAAIvuB,EAASuM,EAAKuiB,MAAQviB,EAAKuiB,MAAM9uB,OAAS,EACrC6B,EAAI,EAAGA,EAAIgwR,EAAW7xR,OAAQ6B,IACnC,GAAImvR,GAAQa,EAAWhwR,GAAGovR,YACtB1iQ,EAAU1sB,IAAM0sB,EAAU1sB,IAAM,GAAK7B,OAGzC,IAAK,IAAI6N,EAAI,EAAGA,EAAI7N,EAAQ6N,IACxBzH,KAAK0rR,YAAYjwR,EAAGgwR,EAAWhwR,GAAI0sB,EAAWhiB,EAAKuiB,MAAMjhB,KAIrE6jR,iBAAkB,SAASrsP,EAAO94B,GAI9B,GAHI,IAAM84B,IACNj/B,KAAKqrR,QAAUrrR,KAAK2rR,MAAM3rR,KAAKirR,mBAE/BhsP,IAAUj/B,KAAKgrR,YACfhrR,KAAKwrR,WAAWxrR,KAAKirR,iBAAkB9kR,EAAMnG,KAAKqrR,cAElD,IAAK,IAAI5vR,EAAI,EAAGA,EAAI0K,EAAKuiB,MAAM9uB,OAAQ6B,IACnCuE,KAAKsrR,iBAAiBrsP,EAAQ,EAAG94B,EAAKuiB,MAAMjtB,IAGhD,IAAMwjC,IACNj/B,KAAKqrR,QAAUrrR,KAAK4rR,UAAU5rR,KAAKirR,iBAAkBjrR,KAAKqrR,WAGlEE,iBAAkB,SAASzoP,GACvB,IAAI+oP,EAAW7rR,KAAKgrR,YAChBxgC,EAAeqhC,EAAW,EAC1BC,EAAS9rR,KAAK2rR,MAAMnhQ,KAAKxqB,KAAMA,KAAKmrR,kBACpCY,EAAS/rR,KAAKwrR,WAAWhhQ,KAAKxqB,KAAMA,KAAKmrR,kBACzCa,EAAahsR,KAAK4rR,UAAUphQ,KAAKxqB,KAAMA,KAAKmrR,kBAEhD,SAASN,EAAW3yK,GAChBA,EAAKuzK,WAAaK,EAAOthC,EAAe,GACpCA,IAAiBqhC,EACjBE,EAAO7zK,EAAMA,EAAKuzK,YAElBd,GAAiBngC,EAAcqhC,EAAU3zK,GAAM,SAAU+zK,GACrDF,EAAOE,EAAW/zK,EAAKuzK,eAG/BvzK,EAAKuzK,WAAaO,EAAW9zK,EAAKuzK,YAEtC,QAASjhC,EAAe,EACpBmgC,GAAiB,EAAGngC,EAAc1nN,EAAM+nP,IAGhDc,MAAO,SAASF,EAAY1+N,GACxB,OAAOjxD,GAAI2vR,GAAY,SAAUV,GAC7B,IAAIF,EAAaE,EAAUF,WACvBqB,EAAO,SAAUrB,EAAa,eAAWA,EAAWqB,MAAQrB,EAAWqB,KAAKn/N,GAAc89N,EAAWqB,KAAOC,IAChH,OAAOD,MAGfR,YAAa,SAASU,EAAgBrB,EAAW9vF,EAASl0L,GACtD,IAAIlF,EAAQkpR,EAAUpkQ,SAAS5f,GAC3B8jR,EAAaE,EAAUF,WACvBpxN,EAAkBsxN,EAAUtxN,gBAC5BA,GAAmB,GAAQ53D,KAG3Bo5L,EAAQmxF,KAAoBnxF,EAAQmxF,GACpCnxF,EAAQmxF,GAAkBvqR,EAE1Bo5L,EAAQmxF,GAAkBvB,EAAWtqI,KAAK06C,EAAQmxF,GAAiBvqR,KAG3E+pR,UAAW,SAASH,EAAYxwF,GAC5B,OAAOn/L,GAAI2vR,GAAY,SAAUV,EAAW3pR,GACxC,IAAIirR,EAAMtB,EAAUF,WAAWyB,SAC/B,OAAOD,EAAMA,EAAIpxF,EAAQ75L,IAAU65L,EAAQ75L,SE3HnDmrR,GAA8B,2BAC9BC,GAA8B,2BAC9BC,GAA8B,2BAC9BC,GAA8B,2BAC9BC,GAAoC,iCACpCC,GAAwB,qBACxBC,GAA4B,gBAC5BC,GAAiC,cACjCC,GAAiC,cAC1BC,GAAoB,SAAS3iN,EAAMr5D,GAC1C,IAAIk2D,EAAQ,eAAEmD,GACVv5D,EAASE,EAAQF,OACjBoZ,EAAelZ,EAAQkZ,aACvB+iQ,EAAgB,GACpB,IAAKn8Q,EAAO6c,SAAWzD,EAAc,CACjC,IAAK,IAAIzuB,EAAI,EAAGA,EAAIyuB,EAAatwB,OAAQ6B,IAAK,CAC1C,IAAIiqB,EAAcwE,EAAazuB,GAC/BwxR,EAAchqR,KAAK,eAAE,SAASwoB,IAAI,YAAa/F,EAAYve,WAAa2J,EAAO3J,WAAWmgB,SAASklQ,IAA6BllQ,SAASmlQ,IAA6BnlQ,SAAS5B,EAAYslC,UAAU6Y,YAAY8oN,GAAmC,UAAY37Q,EAAQG,SAAS5U,KAAK,EAASkpB,eAAeC,EAAa1U,EAAQ2U,gBAEvUuhD,EAAMt9B,OAAOqjP,KAGjBC,GAAwB,SAASvpR,EAAMqN,GACvC,IAAI2U,EAAehiB,EAAKokB,OAAO,kBAAoB,GACnD,MAAO,CACH62C,UAAW5tD,EAAQH,IACnBqZ,aAAclZ,EAAQH,IAAIo1F,aAAaj1F,EAAQ4T,aAC/Ce,aAAcA,IAGlBwnQ,GAAqB,SAAShnR,GAC9B,OAAOA,EAAKmjD,SAAWnjD,EAAKslR,YAAc,IAE1ChtN,GAA0B,SAAS96D,GACnC,OAAOA,EAAKokB,OAAO,oCAEZqlQ,GAAapiN,GAAY3L,QAAQ,CACxC8R,SAAU,WACN,OAAOnxE,KAAKonB,gBAAgBimQ,eAEhC36M,gBAAiB,SAAS1hE,GACtB,OAAO,OAAAvW,EAAA,WAAOuF,KAAKC,SAAS+Q,GAAUk8Q,GAAsBltR,KAAMgR,KAEtE6hE,mBAAoB,SAAS3L,EAAOl2D,GAChCg8Q,GAAkB9lN,EAAOl2D,GACzBhR,KAAKC,SAASnB,MAAMkB,KAAME,YAE9B6iE,YAAa,SAASnS,GAClB,IAAI08N,GAAuB,EACvB1uN,EAAY5+D,KAAKonB,gBAAgBimQ,cAAc,GAC9Cz8N,GAAWA,EAAOwgB,gBACnBpxE,KAAK6mB,UAAU66C,QAAQp6C,SAASilQ,IAA6B1oN,YAAY+oN,IAAwB5sR,KAAK+nB,OAAO,oBAC7GulQ,GAAuB,GAEvB1uN,GAAaA,EAAUqnC,cAAgBrnC,EAAUqnC,aAAarsG,SAC9DoG,KAAKg1E,eAAeh1E,KAAK+wE,aAAa,CAClCngB,OAAQA,IACRA,GACJ08N,GAAwBttR,KAAK20E,8BAGrCK,eAAgB,SAASu4M,EAAW38N,GAChC,IAAIA,GAAU,WAAaA,EAAOogB,aAAcpgB,EAAOwgB,cAKnD,OAAOpxE,KAAKC,SAASnB,MAAMkB,KAAME,WAJjC,IAAIqsE,EAAOvsE,KAAKi0E,kBAAkBhtD,KAAK,WACnCumQ,EAAUD,EAAUtmQ,KAAK,WAC7BjnB,KAAK+xE,aAAaxF,EAAMihN,EAAS58N,EAAOwgB,cAAc,KAK9DnH,UAAW,SAASrmE,GAChB,IAAImD,EAAO/G,KAAKonB,gBAAgBimQ,cAAczpR,EAAEimE,WAAa,GAC7D7pE,KAAKwhE,cAAc,aAAc,OAAA/mE,EAAA,WAAO,GAAImJ,EAAGmD,KAEnD2sE,qBAAsB,SAAS9vE,GAC3B,IAAI+vE,EAAc/vE,EAAE+vE,YAChB/vE,EAAEytE,YAAYvsB,WAGd6uB,EAAYpsE,OAASosE,EAAY9H,eACjC7rE,KAAKC,SAAS2D,IAGtB8wE,mBAAoB,SAAS9wE,GACzB,IAAIotE,EAAaptE,EAAEotE,WACf,WAAaptE,EAAEotE,YAAcptE,EAAE0kD,mBAC1B1kD,EAAE6pR,mBAEI7pR,EAAE6pR,mBAAmB7zR,QAC5BoG,KAAKmE,OAAO,KAAM,CACd6sE,WAAY,SACZI,cAAe,CAACxtE,EAAE6pR,sBAJtBztR,KAAKmE,SAOF,YAAc6sE,GAAc,WAAaA,GAAc,YAAcA,GAC5EhxE,KAAKmE,UAGb2nE,WAAY,SAASj7D,GACjB,IAAI07D,EAAOvsE,KAAKC,SAASnB,MAAMkB,KAAME,WAIrC,OAHI2Q,EAAIM,UAAY47Q,IAChBxgN,EAAKjlD,SAASulQ,IAEXtgN,GAEXiT,UAAW,WACP,OAAOx/E,KAAKqjE,oBAEhBl8C,UAAW,WACP,QAASnnB,KAAKonB,gBAAgBimQ,cAAczzR,UAGhD8zR,GAAmC,CACnC3tN,KAAM,WACF//D,KAAKC,SAASnB,MAAMkB,KAAME,WAC1BF,KAAKirR,iBAAmB,GACxBjrR,KAAK2tR,eAAiB,QAE1BC,cAAe,SAASD,GACpB,IAAKztR,UAAUtG,OACX,OAAOoG,KAAK2tR,eAEZ,eAAWA,KACX3tR,KAAK2tR,eAAiBA,IAG9BrkO,QAAS,SAASukO,GACd,IAAK3tR,UAAUtG,OACX,OAAOoG,KAAK2tR,iBAEhB3tR,KAAK2tR,eAAiB,WAClB,OAAOE,IAGf3C,gBAAiB,WACb,OAAOlrR,KAAKirR,kBAEhBh3I,iCAAkC,WAC9B,IAAI3qF,EAAUtpD,KAAKspD,UACfwkO,EAAmBxkO,GAAWA,EAAQykO,eAC1C,OAAOD,GAAoBA,EAAiBl0R,QAEhDs6I,wBAAyB,SAASxrH,EAAOukH,EAAQiF,GAC7C,IAAI87I,EAAe,QAAYl9I,gBAAgB,gBAAUpoH,GAAQukH,GAAQxuD,UACrEx/E,EAAS,GAmBb,OAlBAizI,EAAMhxI,SAAQ,SAAU+nF,IAClB,SAASglM,EAAahhJ,EAAQ/3C,EAAYlwF,EAAUikF,GAClDA,EAAOA,GAAQ,GACf,IAAK,IAAIxtF,EAAI,EAAGA,EAAIwxI,EAAOrzI,OAAQ6B,IAC/BwtF,EAAKhmF,KAAKgqI,EAAOxxI,GAAGX,KAChB,IAAMo6F,EACNlwF,EAASikF,EAAMgkD,EAAOxxI,GAAGitB,OAEzBulQ,EAAahhJ,EAAOxxI,GAAGitB,MAAOwsE,EAAa,EAAGlwF,EAAUikF,GAE5DA,EAAKh3D,MATX,CAWA+7P,EAAc/gJ,EAAOrzI,QAAQ,SAAUs0R,EAAWxlQ,GAC5CugE,EAAKxnE,aAAeysQ,EAAUzsQ,aAC9BxiB,EAASA,EAAO4S,OAAO6W,UAI5BzpB,IAGXkvR,GAAyC,WACzC,IAAIC,EAAsB,SAASzqR,EAAM2lD,EAASnjD,EAAM6sI,GACpD,IAAIq7I,EACJ,GAAI5vN,GAAwB96D,GAAO,CAC/B,IAAImnG,EAAoBnnG,EAAKs9D,cAAc,WAC3C,GAAI6pC,EAAmB,CACnB,IAAIwjL,EAAexjL,EAAkBwmF,kBACjCg9F,EAAa10R,SACbuM,EAAO,SAASooR,EAAepoR,EAAMmoR,EAAct7I,GAC/C,OAAIA,EACOu7I,EAAepoR,EAAMmoR,EAAaxyR,IAAIiL,IAAQ,CACjD2hB,MAAO,CAAC3hB,KACRisI,EAAa,IAEd7sI,EAAK0L,OAAOy8Q,GANhB,CAOLnoR,EAAMmoR,EAAct7I,IAE1B,IAAIw7I,EAAc1jL,EAAkBymF,iBAChCi9F,EAAY50R,SACZuM,EAAO,SAASsoR,EAAiBtoR,EAAMqoR,EAAax7I,GAChD,OAAIA,EACO7sI,EAAKrK,IAAIqK,IACZ,IAAIuoR,EAAc,GACdC,EAAeF,EAAiBtoR,EAAKuiB,OAAS,GAAI8lQ,EAAax7I,EAAa,GAOhF,OANAx1I,OAAOC,eAAeixR,EAAa,aAAc,CAC7ChxR,IAAK,IAAMyI,EAAKslR,WAChBn9Q,IAAKzM,IACDsE,EAAKslR,WAAa5pR,KAGnB,OAAApH,EAAA,WAAOi0R,EAAavoR,EAAM,CAC7BuiB,MAAOimQ,MAIZxoR,EAAK/H,OAAO+H,GAAQqoR,EAAYlwR,QAAQ6H,GAAQ,GAhBpD,CAiBLA,EAAMqoR,EAAax7I,KAajC,OATI1pF,IACA+kO,EAAa,IAAI,GAAoB,CACjCnD,gBAAiB5hO,EAAQ4hO,gBACzBE,gBAAiB9hO,EAAQ8hO,gBACzBjlR,KAAMA,EACN6sI,WAAYA,IAEhBq7I,EAAWjkG,aAERikG,EAAaA,EAAWnD,kBAAoB,IAEnD0D,EAAsB,SAASzoR,EAAMugB,EAAO4iC,GAC5C,IAAIykO,EAAezkO,GAAWA,EAAQykO,cAAgBzkO,EAAQykO,eAC9D,OAAIA,GAAgBA,EAAan0R,OACtB,SAASi1R,EAAwBnmQ,EAAOukH,EAAQ8gJ,GACnD,IAAKrlQ,IAAUukH,EAAOrzI,OAClB,OAAO8uB,EAEX,IAEImoH,EAFAnqH,EAAQumH,EAAO,GACfqD,EAAQy9I,EAAa,GAsBzB,OApBIrnQ,GAAS4pH,GAASA,EAAM12I,SACxBi3I,EAAQ,gBAAUnoH,GAClB,eAAK4nH,GAAO,SAAUlvI,GAEdyvI,EADA,IAAMzvI,EACEyvI,EAAMi+I,OAAO9uR,KAAK2mB,SAAU3mB,KAAK8qB,MAEjC+lH,EAAMk+I,OAAO/uR,KAAK2mB,SAAU3mB,KAAK8qB,SAGjD+lH,EAAME,YAAY5jH,MAAK,SAAU6hQ,GAC7BtmQ,EAAQsmQ,MAGhB/hJ,EAASA,EAAO5pH,MAAM,GACtB0qQ,EAAeA,EAAa1qQ,MAAM,GAC9B4pH,EAAOrzI,QAAUm0R,EAAan0R,QAC9B,eAAK8uB,GAAO,WACR1oB,KAAK0oB,MAAQmmQ,EAAwB7uR,KAAK0oB,MAAOukH,EAAQ8gJ,MAG1DrlQ,EA3BJ,CA4BLviB,EAAMugB,EAAOqnQ,GAEZ5nR,GAEX,MAAO,CACHw1F,2BAA4B,SAAS3qF,GACjC,IAAIs4C,EAAUtpD,KAAKspD,UACfA,IACIt4C,EAAQie,iBAAiBq6B,QACpBt4C,EAAQ8qF,kBAAmB9qF,EAAQof,iBAAiBquE,eACjDztF,EAAQof,iBAAiB1J,QACrB1V,EAAQie,iBAAiB61B,SACzB9zC,EAAQof,iBAAiByjH,aAAevqF,EAAQ8hO,gBACzC9hO,EAAQ8hO,gBAAgBxxR,SAC/BoX,EAAQie,iBAAiBm5B,QAAS,IAG1Cp3C,EAAQof,iBAAiB6+P,aAAe3lO,EAAQ4hO,kBAE7C5hO,EAAQ4hO,gBAAgBtxR,QAAU0vD,EAAQ8hO,gBAAgBxxR,QAAUoX,EAAQof,iBAAiB1J,SACpG1V,EAAQie,iBAAiBm5B,QAAS,IAG1CpoD,KAAKC,SAASnB,MAAMkB,KAAME,WAC1B,IAAIs8F,EAAcxrF,EAAQylF,WAAW97C,MACjC6hD,GAAeA,EAAYlzC,UAAYt4C,EAAQ8qF,kBAC/C9qF,EAAQof,iBAAiB6+P,kBAAe,IAGhD/xL,sBAAuB,SAASlsF,GAC5B,IAAIi8H,EAAS,mCAAqBj8H,EAAQof,iBAAiB1J,OAAS1V,EAAQue,YAAY7I,OAAS,IAC7FuI,EAAmBje,EAAQie,kBAAoB,GAC/Cq6B,EAAUtpD,KAAK4tR,eAAL5tR,CAAqBivB,GACnC,IAAKje,EAAQ8qF,iBAAmB9qF,EAAQof,iBAAiBquE,aACrD,GAAIxvE,EAAiBq6B,SACZr6B,EAAiBm5B,QAAU6kF,EAAOrzI,QAAU0vD,IACxCr6B,EAAiB61B,UAClBspO,EAAoBpuR,KAAM,CACtBorR,gBAAiB9hO,EAAQ8hO,iBAC1Bp6Q,EAAQ7K,KAAM8mI,EAAOrzI,QAE5BoX,EAAQ7K,KAAOyoR,EAAoB59Q,EAAQ7K,KAAM8mI,EAAQ3jF,SAE1D,IAAKr6B,EAAiBm5B,QAAUkB,EAAS,CAC5C,IAAIitC,EAAqB24L,EACrB75L,EAAiBrkF,EAAQqkF,gBAAkB,GAC3C85L,EAAgB3xR,OAAO84B,KAAK++D,GAAgB3nE,KAAKjvB,GAAQ42F,EAAe52F,IAC5E,IAAK0wR,GAAmB,QAAU54L,EAAsBvlF,EAAQylF,kBAAe,IAAWF,GAAuB,QAAU24L,EAAwB34L,EAAoB57C,aAAU,IAAWu0O,IAAyBA,EAAsB5lO,SAAY2jF,EAAOrzI,QAAU0vD,EAAQ8hO,gBAAgBxxR,OAAQ,CACpS,IAAIsxR,EAAkBkD,EAAoBpuR,KAAMspD,EAASt4C,EAAQ7K,KAAM8mI,EAAOrzI,QAC9EoX,EAAQ2pC,MAAQ,eAAc3pC,EAAQ2pC,OAAS3pC,EAAQ2pC,MAAQ,GAC/D3pC,EAAQ2pC,MAAM2O,QAAU4hO,EACpBl6Q,EAAQylF,aACRzlF,EAAQylF,WAAW97C,MAAQ3pC,EAAQ2pC,OAG3C3pC,EAAQ7K,KAAOyoR,EAAoB59Q,EAAQ7K,KAAM8mI,EAAQ3jF,GAG5Dt4C,EAAQ8qF,kBACT97F,KAAKirR,iBAAmBj6Q,EAAQ2pC,OAAS3pC,EAAQ2pC,MAAM2O,SAAWtpD,KAAKirR,kBAE3EjrR,KAAKC,SAAS+Q,KA/ImB,GAmJ7C,GAAkBvW,OAAOizR,IACzB,GAAkBjzR,OAAO0zR,IACzB,EAAS1oN,eAAe,UAAW,CAC/B9nE,eAAgB,WACZ,MAAO,CACH2rD,QAAS,CACLkV,gBAAY,EACZE,gBAAY,EACZH,4BAAwB,EACxB9E,iBAAiB,EACjBgF,yBAAyB,EACzB3P,MAAO,CACHmQ,IAAK,OAAoB5lE,OAAO,yBAChC6lE,eAAgB,OAAoB7lE,OAAO,oCAC3CuoB,IAAK,OAAoBvoB,OAAO,yBAChC2lE,eAAgB,OAAoB3lE,OAAO,oCAC3C24B,IAAK,OAAoB34B,OAAO,yBAChC0lE,eAAgB,OAAoB1lE,OAAO,oCAC3CwlE,IAAK,OAAoBxlE,OAAO,yBAChCylE,eAAgB,OAAoBzlE,OAAO,oCAC3CkoB,MAAO,OAAoBloB,OAAO,6BAG1C8vD,4BAAwB,IAGhC4b,MAAO,CACHojD,WAAYilK,IAEhBnoN,UAAW,CACPJ,YAAa,CACT1+D,KAAM,CACFipR,cAAe,SAASt+Q,GACpB,OAAOA,KAAY,eAAUA,EAAOi8C,aAAej8C,EAAO28C,kBAE9D4hO,sBAAuB,WAEnB,IADA,IAAI7wN,EAAax+D,KAAK+nB,OAAO,uBAAyB,GAC7CtsB,EAAI,EAAGA,EAAI+iE,EAAW5kE,OAAQ6B,IAAK,CACxC,IAAIkjE,EAAYH,EAAW/iE,GACvBqV,EAAS9Q,KAAKysE,mBAAmBoK,aAAalY,EAAUpF,cAAgBoF,EAAU7tD,QACtF,GAAI6tD,EAAUnF,mBAAqBx5D,KAAKovR,cAAct+Q,GAClD,OAAO,EAGf,OAAO,GAEXgmI,mBAAoB,SAASpuH,EAAOwsE,EAAYlkF,GAC5C,IAAI7K,EAAO6K,GAAWA,EAAQ7K,KAC1BlH,EAASe,KAAKC,SAASnB,MAAMkB,KAAME,WAevC,OAdI8Q,SACI,IAAWA,EAAQs+Q,uBACnBt+Q,EAAQs+Q,qBAAuBtvR,KAAKqvR,yBAEpClpR,GAAQA,EAAKuiB,OAAS1X,EAAQs+Q,uBAAyBt+Q,EAAQimI,2BAA6B9wI,EAAKgxF,2BACjGl4F,EAAOgE,KAAK,CACRkO,QAAS27Q,GACThyR,IAAKkW,EAAQi4E,KAAK5lE,QAClBld,KAAMA,EACN4mD,WAAY/7C,EAAQi4E,KAAKrvF,OAAS,EAClCk8B,OAAQ,MAIb72B,GAEX83I,kBAAmB,SAASp4E,EAAW3tD,GACnC,IAAIrN,EAAO3D,KAIX,GAHKgR,EAAQu+Q,oBACTv+Q,EAAQu+Q,kBAAoB5rR,EAAKokB,OAAO,uBAAyB,IAEjE,UAAY42C,EAAUxtD,QAAS,CAC/B,IAAIk6F,GAAoB,EACpBmkL,GAAyB,EAC7B,eAAKx+Q,EAAQw7D,gBAAgB,SAAU3e,GACnC,IAAI6/B,EAAa18E,EAAQw7D,eAAe3e,EAAe,GACnD8Q,EAAU5R,aAAe/sD,KAAK+sD,aAC9Bs+C,EAAmBrrG,KAAKoB,OAExBysD,EAAe,GAAK,WAAa6/B,EAAW//D,SAAW,WAAa3tB,KAAK2tB,UACzE6hQ,EAAwBxvR,KAAKoB,UAGrCu9D,EAAUsnC,aAAejmG,KAAKyvR,uBAAuBz+Q,EAAQu+Q,kBAAmBpC,GAAmBxuN,EAAUx4D,MAAO6K,EAAQw7D,gBAAgB,SAAU9mD,EAAa5U,GAC/J,OAAI4U,EAAY8zC,mBACJ,EAER9zC,EAAY4zC,eAAiBxoD,IAAW,eAAUA,EAAOi8C,aAAej8C,EAAO1P,QAAUouR,EAClF1+Q,EAAO1P,MAEPiqG,KAEX,GAOR,OALI1sC,EAAUxtD,UAAY27Q,KACtBnuN,EAAUsnC,aAAejmG,KAAKyvR,uBAAuBz+Q,EAAQu+Q,kBAAmBpC,GAAmBxuN,EAAUx4D,MAAO6K,EAAQw7D,gBAAgB,SAAU9mD,EAAa5U,GAC/J,OAAO4U,EAAY8zC,mBAAqB71D,EAAKyrR,cAAct+Q,GAAUA,EAAO1P,OAAS,MAGtFu9D,GAEX8wN,uBAAwB,SAASvlQ,EAAcuhQ,EAAYj/M,EAAgBkjN,EAA4B3iN,GACnG,IAAIppE,EAAO3D,KACPimG,EAAe,GACf0pL,EAAwB,GAgC5B,OA/BA,eAAKzlQ,GAAc,SAAU0lQ,EAAclqQ,GACvC,IAAI5U,EAASnN,EAAK8oE,mBAAmBoK,aAAanxD,EAAY5U,QAC1DyoD,EAAe7zC,EAAY6zC,cAAgB51D,EAAK8oE,mBAAmBoK,aAAanxD,EAAY6zC,eAAiBzoD,EAC7G8T,EAAc8qQ,EAA2BhqQ,EAAa6zC,GAC1D,GAAI30C,GAAe,EAAG,CACb+qQ,EAAsB/qQ,KACvB+qQ,EAAsB/qQ,GAAe,IAEzC,IAEQkB,EAFJilQ,EAAYU,EAAWmE,GAC3B,GAAI7E,IAAcA,EAEV,eAAUrlQ,EAAYI,aACtBA,EAAcJ,EAAYI,YACnB,UAAYJ,EAAYG,cAC/BC,EAAc,EAASqE,oBAAoBrZ,GAAUA,EAAOsT,WAEhEurQ,EAAsB/qQ,GAAa3hB,KAAK,OAAAxI,EAAA,WAAO,GAAIirB,EAAa,CAC5D7jB,MAAO,eAASkpR,IAAcj6Q,GAAUA,EAAOg0E,iBAAmBh0E,EAAOg0E,iBAAiBimM,GAAaA,EACvGjlQ,YAAaA,EACbF,cAAe9U,GAAUA,EAAO1P,QAAUwjB,EAAc9T,EAAO5J,aAAU,SAKpF,eAAcyoR,IACfnjN,EAAetrE,QAAQ,CAAC4P,EAAQ+8C,KAC5B,IAAI6/B,EAAalhB,EAAe3e,EAAe,GAC3CjpC,GAAcmoD,GAAe,YAAc,OAAS2gB,QAAc,IAAWA,OAAa,EAASA,EAAW//D,UAAY,WAAa7c,EAAO6c,QAAsF7c,EAAO1P,MAAlF,OAASssF,QAAc,IAAWA,OAAa,EAASA,EAAWtsF,MAChO6kG,EAAahjG,KAAK0sR,EAAsB/qQ,IAAgB,MAGzDqhF,GAEX4pL,iBAAkB,SAASC,EAAmB5E,GAC1C,IAAIvnR,EAAO3D,KACP2mE,EAAoBhjE,EAAK8oE,mBAC7B,OAAO9oE,EAAK8rR,uBAAuBK,EAAmB5E,EAAiBvkN,EAAkB+F,qBAAqB,SAAUhnD,EAAa5U,GACjI,OAAOnN,EAAKyrR,cAAct+Q,GAAUA,EAAO1P,OAAS,MAG5D2lG,iBAAkB,SAASn2C,GACvB,IAAIq1C,EACA18E,EAAavpB,KAAKwpB,YAClB6jQ,EAAcrtR,KAAK+vR,aACnBC,EAAkB3C,GAAeA,EAAY,IAAMA,EAAY,GAAGpnL,aAClE6pL,EAAoB9vR,KAAK+nB,OAAO,sBAEpC,GADA/nB,KAAK+vR,aAAe,GAChBxmQ,GAAcumQ,GAAqBA,EAAkBl2R,OAAQ,CAC7D,IAAIsxR,EAAkB3hQ,EAAW2hQ,kBACjCjlL,EAAejmG,KAAK6vR,iBAAiBC,EAAmB5E,GACpDt6N,GAAUA,EAAOtI,oBAAsB0nO,IACvCp/N,EAAO68N,mBAAqBxnL,EAAanqG,KAAI,SAAUm0R,EAAa7uR,GAChE,OAAIrG,KAAKC,UAAUi1R,KAAiBl1R,KAAKC,UAAUg1R,EAAgB5uR,IACxDA,GAEH,KACRhD,OAAOgD,GAASA,GAAS,IAE7B6kG,EAAarsG,QACboG,KAAK+vR,aAAa9sR,KAAK,CACnBkO,QAAS47Q,GACT9mL,aAAcA,IAI1BjmG,KAAKC,SAAS2wD,IAElBs/N,4BAA6B,SAASvpQ,GAClC,GAAI83C,GAAwBz+D,MAAO,CAC/B,IAAI8qG,EAAoB9qG,KAAKihE,cAAc,WAC3C,GAAI6pC,EACA,OAAO,SAAS3kG,GAEZ,OADAA,EAAO2kG,EAAkBsmF,eAAejrL,GACjCwgB,EAASxgB,IAI5B,OAAOwgB,GAEXwpQ,0BAA2B,SAASxpQ,EAAUkkQ,GAE1C,OADAlkQ,EAAW3mB,KAAKkwR,4BAA4BvpQ,GACxC,QAAUkkQ,GAAc,QAAUA,EAC3B,SAAS1kR,GACZ,IAAItE,EAAQ8kB,EAASxgB,GACrB,OAAO,eAAUtE,GAAS0iB,OAAO1iB,GAASA,GAG3C8kB,GAEXypQ,eAAgB,SAASlmQ,EAAc+E,GACnC,IAAItrB,EAAO3D,KACP2mE,EAAoBhjE,EAAKs9D,cAAc,WACvC1C,EAAyB56D,EAAKokB,OAAO,kCACrCsoQ,EAAwB1sR,EAAKokB,OAAO,2BACxC,OAAO,eAAImC,GAAgB,IAAI,SAAUxE,GACrC,IAAI5U,EAAS61D,EAAkBkQ,aAAanxD,EAAY5U,QACpDoT,EAAqBpT,GAAUA,EAAOoT,mBAAqBpT,EAAOoT,mBAAmBsG,KAAK1Z,GAAU,gBAAcA,EAASA,EAAOM,UAAYsU,EAAY5U,QAC1J+5Q,EAAanlQ,EAAYG,aAAe,QACxC4zC,EAAkB,eAAU/zC,EAAY+zC,iBAAmB/zC,EAAY+zC,gBAAkB42N,EAC7F,GAAIphQ,EACA,MAAO,CACHtI,SAAUjB,EAAY5U,OACtB+U,YAAaglQ,GAGjB,IAAIlkQ,EAAWhjB,EAAKwsR,0BAA0BjsQ,EAAoB2mQ,GAClE,GAAI,WAAaA,EAAY,CACpBtsN,IACD,OAAOz6D,IAAI,SACXy6D,EAAyB,cAE7B,IAAIvtD,EAAU,CACVjE,UAAWpJ,EAAKoJ,UAChBnL,KAAM8jB,EAAY9jB,MAEtB28D,EAAuBvtD,GACvBA,EAAQs/Q,eAAiB,YACzBzF,EAAa,CACTqB,KAAM,SAASn/N,GAMX,OALA/7C,EAAQs/Q,eAAiB,QACzBt/Q,EAAQu/Q,gBAAa,EACrBv/Q,EAAQ+7C,WAAaA,SACd/7C,EAAQnP,MACf08D,EAAuBvtD,GAChBA,EAAQu/Q,YAEnBhwI,KAAM,SAASgwI,EAAY1uR,GAKvB,OAJAmP,EAAQs/Q,eAAiB,YACzBt/Q,EAAQu/Q,WAAaA,EACrBv/Q,EAAQnP,MAAQA,EAChB08D,EAAuBvtD,GAChBA,EAAQu/Q,YAEnBjE,SAAU,SAASiE,GAKf,OAJAv/Q,EAAQs/Q,eAAiB,WACzBt/Q,EAAQu/Q,WAAaA,SACdv/Q,EAAQnP,MACf08D,EAAuBvtD,GAChBA,EAAQu/Q,aAI3B,MAAO,CACH5pQ,SAAUA,EACVkkQ,WAAYA,EACZpxN,gBAAiBA,OAKjC+2N,aAAc,SAASzC,EAAcjwN,EAAan3C,EAAUgnC,GACxD,GAAImQ,EAAa,CACb,IAAI/Q,EAAa+Q,EAAY/Q,WAC7BY,EAAYA,GAAamQ,EAAYnQ,UACjC,eAAUZ,KACVghO,EAAahhO,GAAcghO,EAAahhO,IAAe,GACvDghO,EAAahhO,GAAY9pD,KAAK,CAC1B0jB,SAAUA,EACVmE,KAAM,SAAW6iC,OAKjC8iO,iBAAkB,SAASvmQ,EAActoB,GACrC,IAAI8uR,GAAoB,EAUxB,OATI,eAAU9uR,IACV,eAAKsoB,GAAgB,IAAI,SAAU9oB,GAC/B,GAAIpB,KAAK4B,OAASA,GAAQR,IAAUQ,GAAQ5B,KAAK6lB,cAAgBjkB,GAAQ5B,KAAK8Q,SAAWlP,IAAS8jB,EAAc1lB,KAAM6lB,EAAcH,EAAYG,YAAa/U,EAAS4U,EAAY5U,QAAQ+U,GAAe/U,GAAU+U,EAAc,IAAM/U,KAAYlP,GAE/O,OADA8uR,EAAmBtvR,GACZ,EAEX,IAAIskB,EAAaG,EAAa/U,KAG/B4/Q,GAEXC,wBAAyB,SAASxnO,EAAwBynO,GACtD,IAAIjtR,EAAO3D,KACP2mE,EAAoBhjE,EAAK8oE,mBACzByjB,EAAevpB,EAAkB4e,kBACjCwoM,EAAe,GACnB,GAAK6C,GAAsBA,EAAkBh3R,OAsB7C,OAnBA,eAAKuvD,GAA0B,IAAI,WAC/B,IAAIwE,EAAY3tD,KAAK2tD,UACjBmQ,EAAc99D,KAAK89D,YACnB4yN,EAAmB/sR,EAAK8sR,iBAAiBG,EAAmB5wR,KAAK0lB,aACrE,KAAIgrQ,EAAmB,GAAvB,CAGA,IAAI/pQ,EAAW,SAASxgB,GACpB,OAAOgnR,GAAmBhnR,GAAMuqR,IAEhC,eAAU5yN,IACVA,EAAc6I,EAAkBkQ,aAAa/Y,GAC7Cn6D,EAAK6sR,aAAazC,EAAcjwN,EAAan3C,EAAUgnC,IAEvD,eAAKuiC,GAAc,SAAUnjC,EAAY+Q,GACrCn6D,EAAK6sR,aAAazC,EAAcjwN,EAAan3C,EAAUgnC,UAI5DogO,GAEX3lL,6BAA8B,SAAS7+E,EAAY0F,GAC/C,IAAItrB,EAAO3D,KACPsoG,EAAoBtoG,KAAKC,SAASspB,EAAY0F,GAIlD,OAHAq5E,EAAkBslL,eAAc,SAAUiD,GACtC,OAAOltR,EAAKmtR,mBAAmBD,GAA2B5hQ,MAEvDq5E,GAEXwoL,mBAAoB,SAAS7hQ,GACzB,IAAItrB,EAAO3D,KACP4wR,EAAoBjtR,EAAKokB,OAAO,sBAChCgpQ,EAAoBptR,EAAKokB,OAAO,sBAChCohC,EAAyBxlD,EAAKokB,OAAO,0BACrCqjQ,EAAkBznR,EAAKysR,eAAeQ,EAAmB3hQ,GAAoBA,EAAiB61B,UAAY71B,EAAiBq6B,SAC3H4hO,EAAkBvnR,EAAKysR,eAAeW,EAAmB9hQ,GAAoBA,EAAiBq6B,SAClG,GAAI8hO,EAAgBxxR,QAAUsxR,EAAgBtxR,OAC1C,MAAO,CACHwxR,gBAAiBA,EACjBF,gBAAiBA,EACjB6C,aAAc,WACV,OAAOpqR,EAAKgtR,wBAAwBxnO,EAAwBynO,MAK5E5wN,cAAe,WACX,IAAIlzD,EAAU9M,KAAKC,WAEnB,OADA6M,EAAQ7J,KAAK,wBACN6J,GAEXkkR,qBAAsB,SAASC,GAC3B,IAAIP,EAAmB1wR,KAAKywR,iBAAiBzwR,KAAK+nB,OAAO,sBAAuBkpQ,GAC5ExF,EAAazrR,KAAKwpB,YAAY0hQ,kBAClC,GAAIO,EAAW7xR,QAAU82R,GAAoB,EACzC,OAAOjF,EAAWiF,IAG1BlwN,cAAe,SAAS3hB,GAChB,YAAcA,EAAKj9C,MAAQ,2BAA6Bi9C,EAAKj9C,OAC7Di9C,EAAKj9C,KAAO,cAEhB5B,KAAKC,SAAS4+C,IAElBkhB,KAAM,WACF//D,KAAK+vR,aAAe,GACpB/vR,KAAKC,YAETotR,YAAa,WACT,OAAOrtR,KAAK+vR,eAGpB/rO,QAAS,CACLktO,gBAAiB,WACTzyN,GAAwBz+D,QAAUA,KAAK+7L,YACvC/7L,KAAKonB,gBAAgBupE,QAAQ,CACzBrhE,MAAM,EACNi6E,aAAa,KAIzB4tF,WAAY,SAASv3G,GACjB,IAAI3gF,EAASe,KAAKC,SAASnB,MAAMkB,KAAME,WAIvC,OAHI0/E,EAAOnhF,MACPuB,KAAKkxR,kBAEFjyR,GAEXy6L,cAAe,WACX,IAAIz6L,EAASe,KAAKC,SAASnB,MAAMkB,KAAME,WAEvC,OADAF,KAAKkxR,kBACEjyR,GAEXkU,eAAgB,WACZ,IAAIlU,EAASe,KAAKC,SAASnB,MAAMkB,KAAME,WAEvC,OADAF,KAAKkxR,kBACEjyR,KAInB8lE,MAAO,CACH74C,SAAU,CACN4/C,WAAY,SAASj7D,GACjB,IAAI07D,EAAOvsE,KAAKC,SAASnB,MAAMkB,KAAME,WAErC,OADA2Q,GAAO07D,EAAKjlD,SAASzW,EAAIM,UAAY27Q,GAAiCJ,GAA8B,IAC7FngN,GAEXiF,aAAc,SAASjF,EAAMv7D,GACzBhR,KAAKC,SAASnB,MAAMkB,KAAME,WACtB,UAAY8Q,EAAQH,IAAIM,SAAWH,EAAQH,IAAIo1F,cAAgBj1F,EAAQH,IAAIo1F,aAAarsG,QACxFoG,KAAKmxR,yBAAyB5kN,EAAMv7D,IAG5CogR,8BAA+B,SAASxsQ,EAAa5T,GACjD,OAAQ,eAAUA,EAAQsc,QAAQ1I,GAAamoC,aAAe/7C,EAAQH,IAAIo1F,aAAarhF,GAAahrB,QAExGy3R,2BAA4B,SAASC,EAAkBtgR,GAEnD,IADA,IAAIugR,EAAyB,EACpB91R,EAAI,EAAGA,EAAI61R,EAAkB71R,IAAK,CACvC,IAAImpB,EAAc5T,EAAQH,IAAIo1F,aAAarsG,OAAS6B,EACpD81R,EAAyBvxR,KAAKoxR,8BAA8BxsQ,EAAa5T,GAAWvV,EAAI81R,EAE5F,OAAOA,GAEXJ,yBAA0B,SAAS5kN,EAAMv7D,GACrC,IAAIwgR,EAAajlN,EAAKlF,WAAWngD,OAC7BoqQ,EAAmB/sQ,OAAOitQ,EAAWxwN,KAAK,aAAe,EACzDuwN,EAAyBvxR,KAAKqxR,2BAA2BC,EAAkBtgR,GAC/EhR,KAAKyxR,6BAA6BD,EAAYxgR,EAASsgR,EAAkBC,IAE7EE,6BAA8B,SAASD,EAAYxgR,EAASsgR,EAAkBC,GAC1E,GAAIA,EAAyB,EAAG,CAC5BC,EAAWxwN,KAAK,UAAWswN,EAAmBC,GAC9C,IAAK,IAAI91R,EAAI,EAAGA,EAAI81R,EAAwB91R,IAAK,CAC7C,IAAImpB,EAAc5T,EAAQsc,QAAQ1zB,OAAS23R,EAAyB91R,EACpEuE,KAAK4xE,YAAY4/M,EAAWtjQ,SAAU,OAAAzzB,EAAA,WAAO,CACzCqW,OAAQE,EAAQsc,QAAQ1I,GACxBA,YAAa5kB,KAAK0xR,qBAAqB9sQ,EAAa5T,EAAQsc,UAC7Dtc,OAIf0gR,qBAAsB,SAAS9sQ,GAC3B,OAAOA,GAEXmuD,iBAAkB,SAAS/hE,GACvB,OAAKA,EAAQF,OAAO6c,UAAY,eAAU3c,EAAQF,OAAOi8C,aAAe/7C,EAAQkZ,cAAgBlZ,EAAQkZ,aAAatwB,OAC1GozR,GAEAhtR,KAAKC,SAAS+Q,IAG7B0hE,gBAAiB,SAAS1hE,GACtB,IAAIm1D,EAAanmE,KAAKC,SAAS+Q,GAC/B,OAAIA,EAAQH,IAAIo1F,aACL,OAAAxrG,EAAA,WAAO0rE,EAAY+mN,GAAsBltR,KAAMgR,IAE/Cm1D,Q,iBC7vB3B,GAAgB,UAChB,GAAsB,gBACtB,GAA2B,wBAC3BwrN,GAAmB,gBACnBC,GAAkB,eAClBC,GAAoB,iBACpBC,GAAkB,eAClBC,GAAsB,mBACtBC,GAA4B,yBAC5B,GAAsB,cACtB,GAAkB,eAClB,GAAmB,uBACnBC,GAA4B,SAASjvD,GACrC,IAAI11I,GAA0B,EAO9B,OANA,eAAK01I,GAAc,SAAU5hO,EAAO0P,GAChC,GAAIA,EAAO6c,UAAY,GAEnB,OADA2/D,EAAyBlsF,GAClB,KAGRksF,GAEP4kM,GAAwB,SAASlvD,EAAcpvJ,EAAQu+M,GACvD,IAAIC,EAAmB,EACvB,GAAIpvD,GAAgBpvJ,GAAUu+M,EAC1B,IAAK,IAAI12R,EAAI,EAAGA,EAAIunO,EAAappO,OAAQ6B,IACjCunO,EAAavnO,GAAGkyB,UAAY,GAC5BykQ,GAAoBpvD,EAAavnO,GAAGmwE,SAEhCgI,EAAOw+M,GAAoBD,EAAY12R,KACvCm4E,EAAOw+M,GAAoBD,EAAY12R,IAE3C22R,KAIZ,OAAOx+M,GAEPy+M,GAAmB,CACnBtyN,KAAM,WACF//D,KAAKC,WACLD,KAAKowO,wBAAyB,EAC9BpwO,KAAKsyR,iBAAkB,GAE3BlkN,WAAY,SAASt9D,GACjB,OAAO9Q,KAAKC,SAAS6Q,GAAQ+yD,YAAYiuN,MAAoB9xR,KAAKowO,0BAA2Bt/N,EAAO8c,OAAS9c,EAAO6c,SAAW7c,EAAO6c,UAAY,OAEtJ4kQ,qCAAsC,SAASvvD,EAAcpyK,GACzD,IAAI08B,EAAyB2kM,GAA0BjvD,GACnDv1I,EAAqBu1I,EAAa11I,GAAwB1hB,QAC1DwF,EAAgBxgB,GAAUA,EAAOwgB,cACjCA,IACAxgB,EAAOwgB,cAAgBA,EAAct1E,KAAI,SAAUs1E,GAC/C,GAAIA,EACA,OAAOA,EAAct1E,KAAI,SAAU8oB,GAC/B,OAAIA,EAAc0oE,EACP1oE,EACAA,GAAe0oE,EAAyBG,EACxC7oE,EAAc6oE,EAAqB,GAEtC,KACRrvF,QAAO,SAAUwmB,GACjB,OAAOA,GAAe,UAM1C,yBAAyBo+M,GACrB,IAAIwvD,EAAoBxyR,KAAKyyR,mBACzBh9M,EAAQz1E,KAAKg3E,oBAAoBw7M,GACjCvjL,EAAYujL,EAAkBnrN,SAAS,YAC3C4nC,EAAU58B,YAAYryE,KAAKqsE,gBAAgB22J,IAC3C,IAAK,IAAIvnO,EAAI,EAAGA,EAAIg6E,EAAM77E,OAAQ6B,IAC9BuE,KAAK0yR,uBAAuB,eAAEj9M,EAAMh6E,IAAKunO,IAGjD,uBAAuBz2J,EAAMy2J,GACzB,IAII7yH,EAJAo5K,EAAeh9M,EAAK7uE,IAAI,GAAGi1R,WAC3BrlM,EAAyB2kM,GAA0BjvD,GACnDx1I,EAAoBw1I,EAAa11I,GACjC/a,EAAoBvyE,KAAKysE,mBAAmB+F,uBAE5CmjF,EAAWpjF,EAAoB,EAC/B3G,EAAU4hB,EAAkB5hB,QAChC,GAAIW,EAAKjG,SAAS,IAAlB,CACI,IAAIssN,EACJrJ,EAAa,GAAGxoN,aAAa,UAAW,QAAU6xN,EAAwB5yR,KAAKysE,mBAAmBC,2BAAwB,IAAWkmN,OAAwB,EAASA,EAAsBh5R,YAFhM,CAKI2yE,EAAKjG,SAAS,MACd6pC,EAAmBnwG,KAAKgwG,qBAAqB,CACzCn/F,IAAK07D,EAAKpmE,KAAK,WACfmnB,QAASttB,KAAKysE,mBAAmBC,sBAErCd,EAAUukC,EAAiBvkC,QAAUjqD,KAAKqQ,IAAI,EAAGu3P,EAAa3vR,QAAUu2G,EAAiBvrF,YAAc,KAE3G,IAAK,IAAInd,EAAI,EAAGA,EAAI8hR,EAAa3vR,OAAQ6N,IAAK,CAC1C,IAAIorR,EAAoB1iL,EAAmB1oG,IAAM0oG,EAAiBvrF,YAAc,EAAInd,IAAM6lF,EAC1Fi8L,EAAa9hR,GAAGs5D,aAAa,gBAAiB40F,GAC1Ck9H,GACAtJ,EAAa9hR,GAAGs5D,aAAa,UAAW6K,GACxC+pF,GAAY/pF,GAEZ+pF,OAIZ5kF,aAAc,SAAS//D,GACnB,IAAI8hR,EACA9vD,EAAehjO,KAAKktF,kBACxBltF,KAAKsyR,kBAAoBtvD,EAAappO,OACtC,IAAIuvE,EAASnpE,KAAKC,SAAS+Q,GAC3B,GAAIhR,KAAKsyR,gBAAiB,CACtB,IAAI1hO,EAAS,OAAS5/C,QAAW,IAAWA,OAAU,EAASA,EAAQ4/C,OAEvE,GADA5wD,KAAKowO,wBAAyB,EAC1B,OAASx/K,QAAU,IAAWA,GAAUA,EAAO+wC,0BAA2B,IAAS3hG,KAAK+nB,OAAO,wBAC/F/nB,KAAK+yR,yBAAyB/vD,OAC3B,CACH,IAAI5xJ,EAAgB,OAASxgB,QAAU,IAAWA,OAAS,EAASA,EAAOwgB,cAC3EpxE,KAAKuyR,qCAAqCvvD,EAAcpyK,GACxDkiO,EAAc9yR,KAAKmsE,aAAa62J,GAChChjO,KAAKixE,YAAY6hN,EAAa,OAAAr4R,EAAA,WAAO,GAAIuW,EAAS,CAC9Csc,QAAS01M,KAEbhjO,KAAKg1E,eAAe89M,EAAaliO,GAC7BwgB,IACAxgB,EAAOwgB,cAAgBA,GAG/BpxE,KAAKowO,wBAAyB,OAE9BpwO,KAAKyyR,oBAAsBzyR,KAAKyyR,mBAAmBvkQ,SAASpG,SAC5D9nB,KAAKyyR,mBAAqB,KAE9B,OAAOtpN,GAEXmI,WAAY,SAASnI,EAAQn4D,GACzB,IAAIgiR,EACAlrN,EAAQ92D,EAAQH,IAAIi3D,MAExB,GADA9nE,KAAKC,SAASnB,MAAMkB,KAAME,WACtBF,KAAKowO,wBAA0BtoK,GAASA,EAAMluE,OAAQ,CACtDo5R,EAAkB,EAClB,IAAIC,EAAajiR,EAAQH,IAAIi3D,OAAS,GACtCA,EAAQA,EAAMzkD,QACdrS,EAAQH,IAAIi3D,MAAQA,EACpB,IAAK,IAAIrsE,EAAI,EAAGA,EAAIw3R,EAAWr5R,OAAQ6B,IAC/Bw3R,EAAWx3R,GAAGqV,QAAUmiR,EAAWx3R,GAAGqV,OAAO6c,UAAY,GACzDqlQ,GAAmBC,EAAWx3R,GAAGqV,OAAO86D,SAAW,GAAK,EAG5D9D,EAAMrsE,EAAIu3R,GAAmBC,EAAWx3R,KAIpDgwE,YAAa,SAASz6D,GAClB,IAKIgyN,EACAkwD,EACA5lM,EAPA3pF,EAAO3D,KACP8Q,EAASE,EAAQF,OACjBqiR,EAAgBriR,GAAUA,EAAO6c,QACjCxc,EAAUH,EAAQG,QAClB+1D,EAAQvjE,EAAK1D,SAASnB,MAAM6E,EAAMzD,YAIlCyD,EAAKysO,wBAA0B,WAAaj/N,KAC5C6xN,EAAer/N,EAAKupF,kBACpBI,EAAyB2kM,GAA0BjvD,GACnDkwD,EAAkBlwD,EAAa11I,EAAyB,IAExD3pF,EAAKysO,uBACD+iD,IAAkB,KAClBjsN,EAAM5/C,SAAS0qQ,IAA2BnuN,YAAY8tN,GAAkB,IAAMrkM,GAA0B4lM,GAAmB,WAAaA,EAAgBvlQ,SAASk2C,YAAY+tN,GAAiB5uD,EAAappO,QAAU0zF,IAA2B01I,EAAappO,OAAS,GAClQ,cAAgBuX,GAChB,OAAc0T,aAAaqiD,IAG5B,WAAa/1D,GACpB+1D,EAAMrD,YAAY8tN,GAAkB3gR,EAAQ4T,cAAgB0oE,GAEhE,IAAI8lM,EAAgBzvR,EAAKokB,OAAO,0BAA4B/W,EAAQgiE,SAIpE,OAHIvkD,EAAA,KAAQC,SAAW1d,EAAQF,OAAO8c,OAAS,UAAY5c,EAAQG,UAAYiiR,GAC3ElsN,EAAM5/C,SAASwqQ,IAEZ5qN,GAEX4N,4BAA6B,WACzB,IAAID,EAAmB70E,KAAKC,SAASnB,MAAMkB,KAAME,WAIjD,OAHIF,KAAKowO,wBACLv7J,EAAiBvtD,SAAStnB,KAAK+mB,gBAAgB,KAE5C8tD,GAEXhC,mBAAoB,SAAS3L,EAAOl2D,GAChC,IAAIqiR,EACAviR,EAASE,EAAQF,OACjBwiR,EAAwBtzR,KAAKowO,uBAC7BmjD,EAAc,UAAYviR,EAAQG,SAAW,eAAUL,EAAOi8C,YAIlE,GAHIumO,GAAyBC,IAAgBziR,EAAO6c,UAAY7c,EAAO+7C,mBACnEqa,EAAMz7C,IAAI,gBAAiB,SAE1B6nQ,GAAyBtzR,KAAKsyR,gBAAiB,CAEhD,GADAe,EAAcviR,EAAO8c,OAAS9c,EAAO6c,UAAW,IAAU7c,EAAO8c,MAC7D2lQ,IACAF,GAAc,EACVriR,EAAQH,IAAIo1F,cAAgBj1F,EAAQH,IAAIo1F,aAAarsG,QAAQ,CAC7D,IAAI0zB,EAAUttB,KAAKysE,mBAAmBC,oBAClC8mN,EAA8BxzR,KAAKqxR,2BAA6BrxR,KAAKqxR,2BAA2BvgR,EAAO86D,QAAS,CAChHt+C,QAASA,EACTzc,IAAKG,EAAQH,IACb+9F,SAAS,IACR,EACL,GAAI4kL,EAA8B,EAAG,CACjC,IAAIlmM,EAAyB2kM,GAA0BjyR,KAAKysE,mBAAmBygB,mBAC/EmmM,EAAc/lQ,EAAQ1zB,OAAS45R,EAA8BlmM,GAIzE,GAAI+lM,EAAa,CACb,GAAIviR,EAAO6c,SAAW,YAAc7c,EAAOrS,MAAQ,UAAYuS,EAAQG,QAEnE,YADA+1D,EAAM9M,KAAK,UAAU9yC,SAASxW,EAAOk6C,UAGrCkc,EAAM5/C,SAAS,mBAIvBxW,EAAO6c,UAAY,IACnB3tB,KAAKC,SAASnB,MAAMkB,KAAME,YAGlCg2E,qBAAsB,SAASrM,GAC3B,IAAI0/M,EAAevpR,KAAKC,SAASnB,MAAMkB,KAAME,WACzC6sE,EAAaw8M,EAAar7P,SAASo4C,SAAS,IAC5CmtN,EAAiB,sBAAwBzzR,KAAK4B,KAAOioE,OAAW,EACpE,GAAI7pE,KAAKyyR,oBAAsBlJ,EAAc,CACzC,IAAIvmD,EAAehjO,KAAKktF,gBAAgBumM,GACpCC,EAAoB1zR,KAAKm2E,gBAAgBn2E,KAAKyyR,oBAAoBjnQ,GAAGq+C,GAAUxC,SAAS,MAC5F,eAAKqsN,EAAmB,CAAC9uQ,EAAaylD,KAClC,GAAI0C,EACIw8M,EAAa3kQ,IAAgB,WAAaylD,EAAKC,MAAMy3J,aACrDwnD,EAAa3kQ,GAAeylD,OAE7B,CACH,IAAIspN,EAAc3wD,EAAap+M,GAC/B,GAAI+uQ,EACA,GAAIA,EAAYhmQ,UAAY,GACpB+lQ,EAAkBloQ,GAAG5G,GAAa0hD,SAAS,MAC3CijN,EAAa3kQ,GAAeylD,GAAQk/M,EAAa3kQ,QAElD,CACH,IAAIwtQ,EAAmBpyR,KAAKysE,mBAAmBumB,wBAAwB2gM,EAAaF,GACpFlK,EAAa6I,GAAoB/nN,GAAQk/M,EAAa6I,OAM1E,OAAO7I,GAEX/zM,gBAAiB,WACb,IAAI28M,EACAlzR,EAASe,KAAKC,WACd+iO,EAAehjO,KAAKktF,kBAIxB,OAHIltF,KAAKyyR,oBAAsBxzR,EAAOrF,SAClCu4R,EAAcnyR,KAAKC,SAASD,KAAKyyR,qBAE9BP,GAAsBlvD,EAAc/jO,EAAQkzR,IAEvDl+M,gBAAiB,WACb,IAAInE,EAAe9vE,KAAKowO,uBAAyBpwO,KAAKyyR,mBAAqBzyR,KAAKC,WAChF,OAAO6vE,GAEXoE,gBAAiB,SAASpE,GAClB9vE,KAAKowO,uBACLpwO,KAAKyyR,mBAAqB3iN,EAAaxoD,SAAS0qQ,IAEhDhyR,KAAKC,SAAS6vE,IAGtBrI,WAAY,SAASoC,EAAUoG,GAE3B,OADAA,EAAgBA,GAAiBjwE,KAAKi0E,kBAClCj0E,KAAKowO,wBAA0BngK,GAAiBA,EAAchjD,QAAQ,SAASiB,OAAO,IAAMluB,KAAK+mB,gBAAgB,KAAsBntB,OAChIoG,KAAKktF,gBAAgBrjB,GAEzB7pE,KAAKC,SAAS4pE,EAAUoG,IAEnCnG,YAAa,SAASyC,GAClB,IAAIumN,EAAc9yR,KAAKyyR,mBACvB,OAAIK,GAAeA,EAAY7rQ,KAAKslD,GAAM3yE,OAC/BoG,KAAKm2E,gBAAgB28M,GAAa1xR,MAAMmrE,GAE5CvsE,KAAKC,SAASssE,IAEzByH,iBAAkB,WACd,IAAI/0E,EAASe,KAAKC,SAASnB,MAAMkB,KAAME,WAIvC,OAHIF,KAAKyyR,qBACLxzR,EAAS,eAAE,CAACA,EAAOvB,IAAI,GAAIsC,KAAKyyR,mBAAmB/0R,IAAI,MAEpDuB,GAEXiuF,gBAAiB,SAASrjB,GACtB,OAAO7pE,KAAKysE,mBAAmBygB,gBAAgBrjB,IAEnD+pN,sBAAuB,WACnB,IAIIC,EAJAzoQ,EAAS,CACTO,KAAM,EACN2gH,MAAO,GAGX,GAAItsI,KAAKyyR,mBAAoB,CACzBoB,EAAqB7zR,KAAK8zR,8BAC1B,IAAIC,EAA4BF,EAAmBr/N,WACnDppC,EAAS,CACLO,KAAMooQ,EAA0BpoQ,KAChC2gH,MAAO,eAActsI,KAAK6mB,WAAW,IAAS,eAAcgtQ,GAAoB,GAAQE,EAA0BpoQ,OAG1H,OAAOP,GAEX0oQ,4BAA6B,WACzB,OAAO9zR,KAAKyyR,oBAAsBzyR,KAAKyyR,mBAAmBxrQ,KAAK,IAAM+qQ,IAA2Bv4M,SAEpGu6M,qBAAsB,WAClB,OAAOh0R,KAAKyyR,oBAEhB94I,eAAgB,WACZ,OAAO35I,KAAKsyR,iBAEhBtvN,YAAa,WACThjE,KAAKC,WACLD,KAAKi0R,mBAETngN,gBAAiB,SAAS9iE,GACtB,IAAIsc,EACAk/C,EAAiBxsE,KAAKysE,mBAAmBC,oBACzCkH,EAAS5iE,EAAQ4iE,OACjBsgN,EAAuBtgN,GAAUA,EAAOh6E,QAAU,eAAU4yE,EAAe,GAAGX,cAC9E8H,EAAc3iE,EAAQ2iE,YACtBwgN,EAAuBxgN,GAAeA,EAAYpsE,MAClD6sR,GAAoB,EAExB,GADAp0R,KAAKC,SAASnB,MAAMkB,KAAME,WACtBF,KAAKyyR,mBAAoB,CACzB,IAAIjkK,EAAe56C,GAAUA,EAAOlmD,MAAK,SAAUnmB,GAC/C,MAAO,SAAWA,KAEtB6sR,EAAoB5lK,KAAkB0lK,IAAyBl0R,KAAKu3E,oBAAmB,IACnF68M,IACA9mQ,EAAUk/C,GAEdxsE,KAAKC,SAAS,OAAAxF,EAAA,WAAO,GAAIuW,EAAS,CAC9Bi/D,cAAejwE,KAAKyyR,mBACpBnlQ,QAASA,EACTM,OAAO,MAGXsmQ,GAAwBC,GAAwBn0R,KAAK+nB,OAAO,qBAC5D/nB,KAAKi0R,mBAGb5nN,gBAAiB,SAAS/+C,GACtB,GAAIttB,KAAKowO,yBAA2BpwO,KAAK+nB,OAAO,mBAAoB,CAChE,IAAIykD,EAAiBxsE,KAAKysE,mBAAmBC,oBACzC0nN,EAAoB5nN,EAAepuE,QAAO,SAAU0S,GACpD,OAAQA,EAAOvJ,SACf3N,OACAw6R,IACA9mQ,EAAUk/C,GAGlB,OAAOxsE,KAAKC,SAASqtB,IAEzB+mQ,iBAAkB,SAASxtQ,GACvB,IAAIytQ,EAA4BztQ,EAAQyuD,uBAAyB,eAAgBzuD,GACjF,OAAOytQ,GAA6BA,EAA0B5iR,OAAS4iR,EAA0B5iR,OAASmV,EAAQ0rF,cAEtH0hL,gBAAiB,WACb,IAEIpqN,EACA2lC,EACA+kL,EACA3gL,EALA27H,EAAa,GACbilD,EAAkB,GAKtB,GAAIx0R,KAAKsyR,iBAAmBtyR,KAAKswE,eAAiBtwE,KAAKyyR,mBAAoB,CACvE,IAAI7sR,EAAc5F,KAAKq0R,iBAAiBr0R,KAAKswE,cAAc5yE,IAAI,IAC3D+2R,EAAmBz0R,KAAKq0R,iBAAiBr0R,KAAKyyR,mBAAmB/0R,IAAI,IAIzE,GAHA8xG,EAAexvG,KAAKm2E,gBAAgBn2E,KAAKswE,eACzCikN,EAAoBv0R,KAAKm2E,gBAAgBn2E,KAAKyyR,oBAC9C7+K,EAAkB5zG,KAAKk1E,sBACnBtvE,IAAgB6uR,EAAkB,CAIlC,IAHA7gL,GAAmBA,EAAgBnoF,IAAI,SAAU7lB,GACjD4pG,EAAa/jF,IAAI,SAAU,IAC3B8oQ,EAAkB9oQ,IAAI,SAAU,IAC3Bo+C,EAAW,EAAGA,EAAW2lC,EAAa51G,OAAQiwE,IAC/C0lK,EAAWtsO,KAAKjD,KAAKq0R,iBAAiB7kL,EAAa9xG,IAAImsE,KACvD2qN,EAAgBvxR,KAAKjD,KAAKq0R,iBAAiBE,EAAkB72R,IAAImsE,KAErE,IAAKA,EAAW,EAAGA,EAAW2lC,EAAa51G,OAAQiwE,IAAY,CAC3D,IAAIomK,EAAYV,EAAW1lK,GACvB6qN,EAAiBF,EAAgB3qN,GACjComK,EAAYykD,EACZH,EAAkB/oQ,GAAGq+C,GAAUp+C,IAAI,SAAUwkN,GACtCA,EAAYykD,GACnBllL,EAAahkF,GAAGq+C,GAAUp+C,IAAI,SAAUipQ,GAGhD9gL,GAAmBA,EAAgBnoF,IAAI,SAAU,OAI7D2rD,mBAAoB,SAAS7vE,GACzB,IAAI8jB,EAAarrB,KAAK+nB,OAAO,cAC7B/nB,KAAKC,SAASsH,GACdvH,KAAK6mB,UAAUwgD,SAAS,IAAMrnE,KAAK+mB,gBAAgB,KAAsB0E,IAAI,CACzE4rD,YAAahsD,EAAa9jB,EAAQ,GAClC+vE,aAAejsD,EAAqB,GAAR9jB,MAIpCotR,GAAwC,OAAAl6R,EAAA,WAAO,GAAI43R,GAAkB,CACrE10M,sBAAuB,SAAS9T,GAC5B,OAAI7pE,KAAKowO,uBACEpwO,KAAKktF,gBAAgBrjB,GAEzB7pE,KAAKC,SAAS4pE,IAEzB4V,oBAAqB,SAASzuE,GAC1B,IAAIF,EAASE,EAAQF,OACjB8jR,EAAsB50R,KAAK+nB,OAAO,gBAClCW,EAAQ1oB,KAAKC,SAAS+Q,GAC1B,GAAIA,EAAQH,KAAO,WAAaG,EAAQH,IAAIM,UACpC,IAASyjR,EAAoB5sQ,SAAWlX,GAAUA,EAAO66C,YAAa,CACtE,IAAIg0B,EAAcC,IACd,OAAQA,EAAOE,SAASj+E,OACpB,IAAK,OACD7B,KAAKysE,mBAAmBoK,aAAa/lE,EAAO1P,MAAO,SAAS,GAC5D,MACJ,IAAK,OACDpB,KAAKysE,mBAAmBoK,aAAa/lE,EAAO1P,MAAO,CAC/CwsB,OAAO,EACP++B,cAAe,SAEnB,MACJ,IAAK,QACD3sD,KAAKysE,mBAAmBoK,aAAa/lE,EAAO1P,MAAO,CAC/CwsB,OAAO,EACP++B,cAAe,YAI/BjkC,EAAQA,GAAS,GACjBA,EAAMzlB,KAAK,CACP1G,KAAMq4R,EAAoB9lO,MAAME,IAChC8rD,YAAY,EACZpyF,MAAO,CAAC,CACJnsB,KAAMq4R,EAAoB9lO,MAAMG,aAChCptD,MAAO,OACPkiD,SAAUjzC,EAAO8c,SAAW9c,EAAO67C,eAAiB,SAAW77C,EAAO67C,eACtEgzB,YAAaA,GACd,CACCpjF,KAAMq4R,EAAoB9lO,MAAMI,cAChCrtD,MAAO,QACPkiD,SAAUjzC,EAAO8c,OAAS,UAAY9c,EAAO67C,cAC7CgzB,YAAaA,KAElB,CACCpjF,KAAMq4R,EAAoB9lO,MAAMK,MAChCttD,MAAO,OACPkiD,UAAWjzC,EAAO8c,MAClB+xD,YAAaA,IAIzB,OAAOj3D,GAEXmsQ,uBAAwB,SAAShrN,GAC7B,GAAI,eAAUA,GACV,OAAO7pE,KAAKyyR,oBAAsBzyR,KAAKm2E,gBAAgBn2E,KAAKyyR,oBAAoBjnQ,GAAGq+C,GAAUxC,WAEjG,IAAIsX,EAAiB3+E,KAAK2nE,oBACtBmtN,EAA4B90R,KAAK8zR,8BACrC,GAAIn1M,GAAkBm2M,GAA6BA,EAA0Bl7R,OAAQ,CACjF,IAAI0zF,EAAyB2kM,GAA0BjyR,KAAKktF,mBAC5DvO,EAAepL,OAAO+Z,EAAwBwnM,EAA0Bp3R,IAAI,GAAG06D,QAAS08N,EAA0Bp3R,IAAI,IAE1H,OAAOihF,GAEXnJ,gBAAiB,WACb,IAAI28M,EACAlzR,EAASe,KAAKC,WACd80R,EAAuB/0R,KAAK60R,yBAC5B7xD,EAAehjO,KAAKktF,kBAQxB,OAPIltF,KAAKyyR,qBAEDN,EADA4C,GAAwBA,EAAqBn7R,OAC/BoG,KAAKm1E,WAAW4/M,GAEhB/0R,KAAKC,SAASD,KAAKyyR,qBAGlCP,GAAsBlvD,EAAc/jO,EAAQkzR,MAGvD6C,GAA+B,OAAAv6R,EAAA,WAAO,GAAI43R,GAAkB,CAC5D4C,mBAAoB,WAChBj1R,KAAKyyR,oBAAsB,OAAalyN,IAAIvgE,KAAKyyR,mBAAoB,qBAAsB,gBAC3FzyR,KAAKswE,eAAiB,OAAa/P,IAAIvgE,KAAKswE,cAAe,qBAAsB,iBAErFg3C,mBAAoB,WAChB,IAAI3jH,EAAO3D,KACPk1R,EAAmB,SAAS/rN,GAC5B,OAAa9jE,GAAG8jE,EAAQ,qBAAsB,eAAgBxlE,EAAK88D,cAAa,SAAU5hB,GACtF,IAAIyiB,EAAQziB,EAAKyiB,MACbuI,EAAWlmE,EAAKmmE,YAAY,eAAExI,EAAMh8C,QAAQ2H,QAAQ,YACpDkoQ,EAAU,cAAgB7zN,EAAM7iE,KAChCorE,GAAY,IACZlmE,EAAK2sE,eAAiB3sE,EAAKwyE,gBAAgBxyE,EAAK2sE,eAAe9kD,GAAGq+C,GAAUhG,YAAYguN,GAAmBsD,GAC3GxxR,EAAK8uR,oBAAsB9uR,EAAKwyE,gBAAgBxyE,EAAK8uR,oBAAoBjnQ,GAAGq+C,GAAUhG,YAAYguN,GAAmBsD,SAI7HxxR,EAAK8uR,oBAAsB9uR,EAAK2sE,gBAChC4kN,EAAiBvxR,EAAK8uR,oBACtByC,EAAiBvxR,EAAK2sE,iBAG9B4E,oBAAqB,WACjB,IACI0H,EACA6zC,EAFA9sH,EAAO3D,KAGPo1R,EAAezxR,EAAKojB,gBAAgB,IACpCF,EAAUljB,EAAKkjB,UACfwuQ,EAAc5mQ,EAAA,KAAQC,QAAU,GAAK,EACzC,GAAI7H,GAAWljB,EAAKysO,uBAAwB,CACxCxzJ,EAAW/1D,EAAQwgD,SAAS,IAAM+tN,GAClC,IAAIlpL,EAAavoG,EAAKypG,gBAkCtB,OAjCKxwB,EAAShjF,QAAUsyG,IACpBtvB,EAAW,eAAE,SAASt1D,SAAS8tQ,GAC/B,OAAa/vR,GAAGu3E,EAAU,UAAU,SAAUh5E,GAC1C6lE,aAAa9lE,EAAK2xR,qBAClB3xR,EAAK2xR,oBAAsBriR,YAAW,WAClCw9G,EAAY,eAAE7sH,EAAE0hB,QAAQmrG,YACxBvkB,EAAWr7B,SAAS,CAChBvvD,EAAGmvG,MAEP4kK,MAER,OAAahwR,GAAGu3E,EAAU24M,GAAA,MAAgB,SAAU3xR,GAChD,IAAI4xR,EAAqB,eAAE5xR,EAAE0hB,QAAQ2H,QAAQ,kBACzCwoQ,GAAe,EACnB,GAAIvpL,GAAcA,EAAWlmF,WAAWp4B,GAAG4nS,GACvCC,GAAe,MACZ,CACH,IAAIC,EAA4BF,EAAmB57R,QAAU,QAAWg5G,YAAY4iL,EAAmB93R,IAAI,IACvGi4R,EAAwCD,GAA6BA,EAA0BrkK,eAAiBqkK,EAA0BnjL,eAAiB,EAC/JkjL,EAAeC,IAA8BC,EAEjD,GAAIF,IACAhlK,EAAYvkB,EAAWukB,YACvBvkB,EAAWr7B,SAAS,CAChBvvD,EAAGmvG,EAAY7sH,EAAEg+I,QAEjB11C,EAAWukB,YAAc,GAAKvkB,EAAWukB,YAAcvkB,EAAWqG,eAAiBrG,EAAWmlB,eAAiB1tH,EAAKwtG,qBACpH,OAAO,KAInBv0B,EAASr1D,SAASV,IAEf+1D,EAEX,OAAOj5E,EAAK1D,YAEhByyG,kBAAmB,WACf1yG,KAAKC,WACL,IAAIisG,EAAalsG,KAAKotG,gBACtB,GAAI,OAASlB,QAAc,IAAWA,IAAcA,EAAWw5E,UAA/D,CAGA,IAAIj1D,EAAYvkB,GAAcA,EAAWyB,eAAe/hF,IACxD5rB,KAAK41R,0BAA0BnlK,KAEnCviB,eAAgB,SAASC,EAAgBr+B,GACrC,OAAI9vE,KAAKowO,uBACEjiI,EAAezsC,QAAQp6C,SAAStnB,KAAK+mB,gBAAgB,IAAiB,IAAM/mB,KAAK+mB,gBAAgB,KAAsB6iB,OAAOkmC,GAElI9vE,KAAKC,SAASkuG,EAAgBr+B,IAEzCkgC,qBAAsB,SAASh/F,GAC3B,OAAIhR,KAAKowO,uBACEpwO,KAAKC,SAAS,OAAAxF,EAAA,WAAO,GAAIuW,EAAS,CACrCsc,QAASttB,KAAKysE,mBAAmBC,uBAGlC1sE,KAAKC,SAAS+Q,IAEzBk/F,oBAAqB,SAAS3jC,EAAMv7D,GAChC,OAAOhR,KAAKC,SAASssE,EAAM,OAAA9xE,EAAA,WAAO,GAAIuW,EAAS,CAC3Csc,QAASttB,KAAKysE,mBAAmBC,wBAGzCykN,yBAA0B,SAAS5kN,EAAMv7D,GACjChR,KAAKowO,uBACLpwO,KAAKC,SAASssE,EAAM,OAAA9xE,EAAA,WAAO,GAAIuW,EAAS,CACpCsc,QAASttB,KAAKysE,mBAAmBC,uBAGrC1sE,KAAKC,SAASssE,EAAMv7D,IAG5BogR,8BAA+B,SAASxsQ,EAAa5T,GACjD,IAAI/R,EAASe,KAAKC,SAASnB,MAAMkB,KAAME,WACnC4Q,EAASE,EAAQsc,QAAQ1I,GAC7B,OAAI5T,EAAQ49F,QACD99F,EAAO8c,QAAU3uB,GAAU,UAAY6R,EAAO67C,eAElD1tD,KAAYe,KAAKsyR,kBAAoBxhR,EAAO8c,QAEvD6jQ,6BAA8B,SAASD,EAAYxgR,EAASsgR,EAAkBC,GAC1E,IAAIiC,EACJ,GAAIxzR,KAAKowO,uBAAwB,CAC7Bp/N,EAAQ49F,SAAU,EAClB4kL,EAA8BxzR,KAAKqxR,2BAA2BC,EAAkBtgR,GAChFA,EAAQ49F,SAAU,EAClB,IAAIzjF,EAAmBna,EAAQsc,QAAQ1zB,OAAS45R,EAChDxiR,EAAU,OAAAvW,EAAA,WAAO,GAAIuW,EAAS,CAC1Bsc,QAASttB,KAAKktF,oBAElB,IAAII,EAAyB2kM,GAA0BjhR,EAAQsc,SAC3DnC,EAAmBmiE,GACnBkmM,GAA+BxiR,EAAQsc,QAAQggE,GAAwB1hB,QAAU,GAAK,EACtF0lN,GAAoBtgR,EAAQsc,QAAQggE,GAAwB1hB,QAAU,GAAK,GACpE2lN,EAAyB,GAChCC,EAAW/lQ,IAAI,aAAc,UAEjC8lQ,EAAyBiC,EAE7BxzR,KAAKC,SAASuxR,EAAYxgR,EAASsgR,EAAkBC,IAEzDG,qBAAsB,SAAS9sQ,EAAa0I,GACxC,GAAIttB,KAAKowO,uBAAwB,CAC7B,IAAI9iJ,EAAyB2kM,GAA0B3kQ,GAIvD,OAHI1I,EAAc0oE,IACd1oE,GAAe0I,EAAQggE,GAAwB1hB,QAAU,GAEtDhnD,EAEX,OAAO5kB,KAAKC,SAASnB,MAAMkB,KAAME,YAErC6iE,YAAa,SAASnS,GAClB5wD,KAAKi1R,qBACLj1R,KAAKC,SAAS2wD,GACd,IAAI+oF,EAAiB35I,KAAKsyR,gBAC1BtyR,KAAK6mB,UAAUg9C,YAAYkuN,GAAqBp4I,GAC5C35I,KAAK+nB,OAAO,sBAAwB4xH,GACpC35I,KAAKsnH,sBAGbvnC,eAAgB,SAASn7D,EAAa/iB,GAClC7B,KAAKC,SAAS2kB,EAAa/iB,GAC3B,IAAI4zE,EAAQz1E,KAAKm2E,gBAAgBn2E,KAAKyyR,oBACtCzyR,KAAK4wG,oBAAoBn7B,EAAOz1E,KAAKktF,kBAAmBtoE,EAAa/iB,IAEzE2+D,cAAe,SAAS3hB,GACpB7+C,KAAKC,SAAS4+C,GACV,sBAAwBA,EAAKj9C,MAAQ5B,KAAKsyR,kBAC1CzzO,EAAKh9C,MAAQ7B,KAAKsnH,qBAAuBtnH,KAAKi1R,uBAGtDlhN,aAAc,SAAS7M,GACnB,IAAI4rN,EAAc9yR,KAAKyyR,mBACnB9/M,EAAY,EAChB,GAAImgN,GAAe5rN,EAAMt5E,GAAG,OAASs5E,EAAMj6C,QAAQ6lQ,GAAal5R,OAAQ,CACpE,IAAI0zB,EAAUttB,KAAKktF,kBAWnB,OAVA,eAAK5/D,GAAS,SAAUlsB,EAAO0P,GAC3B,GAAI1P,IAAU8lE,EAAM,GAAGyL,UACnB,OAAO,EAEP7hE,EAAO86D,QACP+G,GAAa7hE,EAAO86D,QAGxB+G,OAEGA,EAEX,OAAO3yE,KAAKC,SAASnB,MAAMkB,KAAME,YAErC01R,0BAA2B,SAASnlK,EAAWolK,GAC3C,GAAI71R,KAAKyyR,oBAAsBzyR,KAAKswE,cAAe,CAC/C,IAAIk5G,EACAr4D,EAAgBnxH,KAAKihE,cAAc,iBACvCjhE,KAAKyyR,mBAAmBvkQ,SAASuiG,UAAUA,GACvColK,GAAa1kK,IACbq4D,EAAkBr4D,EAAcn+G,QAChCw2K,GAAmBr4D,EAAcn+G,MAAMw2K,MAInDpyG,mBAAoB,SAAS0+M,EAAQC,GACjC,IAAIC,EAAS,CACTxyN,aAAc,GAEdyyN,EAAgBj2R,KAAK6mB,UAAUwgD,SAAS,IAAMrnE,KAAK+mB,gBAAgB,KACvE,GAAIkvQ,EAAcr8R,QAAUoG,KAAKyyR,mBAAoB,CACjDwD,EAAcxqQ,IAAIuqQ,GAClBh2R,KAAKyyR,mBAAmBhnQ,IAAIuqQ,GAC5BA,EAAOh2R,KAAK+nB,OAAO,cAAgB,aAAe,eAAiB+tQ,EACnEE,EAAOxyN,aAAeuyN,EACtB,IAAI5qN,EAAqBnrE,KAAKguG,aAAehuG,KAAKguG,YAAYjmF,OAAO,cACpEojD,EAAqB8qN,EAAgBj2R,KAAKyyR,oBAAoBhnQ,IAAIuqQ,KAG3EE,qBAAsB,SAAStyR,GAC3B,IAAIuyR,EAAmB,EACvB,GAAIvyR,EAAE+pG,aAAa/hF,IAAM,EACrBuqQ,GAAoBvyR,EAAE+pG,aAAa/hF,SAChC,GAAIhoB,EAAEwyR,cAAe,CACxB,IAAIC,EAAqB,eAAEzyR,EAAEmJ,UAAUk8D,WACnCqtN,EAAuB,eAAE1yR,EAAEmJ,UAAUob,aACrCouQ,EAAe50Q,KAAKqQ,IAAIqkQ,EAAmB34R,IAAI,GAAG60G,aAAe+jL,EAAqB54R,IAAI,GAAG60G,aAAc,GAC/G4jL,EAAmBI,EAAe3yR,EAAE+pG,aAAa/hF,IAErD,OAAOjK,KAAKI,MAAMo0Q,IAEtBK,uBAAwB,SAAS5yR,GAC7B,GAAI5D,KAAKyyR,mBAAoB,CACzB,IAAI0D,EAAmBn2R,KAAKk2R,qBAAqBtyR,GAC7C,IAAM+d,KAAKw8E,KAAKg4L,GAChB,gBAAKn2R,KAAKyyR,mBAAoB,CAC1B7mQ,IAAKuqQ,IAGTn2R,KAAKyyR,mBAAmBhnQ,IAAI,YAAa,MAIrD+hF,cAAe,SAAS5pG,GACpB5D,KAAK41R,0BAA0BhyR,EAAE+pG,aAAa/hF,KAAK,GACnD5rB,KAAKw2R,uBAAuB5yR,GAC5B5D,KAAKC,SAAS2D,IAElBorO,uBAAwB,SAASgB,GAC7BhwO,KAAKC,SAASnB,MAAMkB,KAAME,WACrB8vO,GACDhwO,KAAK41R,0BAA0B51R,KAAK0tG,aAG5Cp5B,kBAAmB,SAAS1wE,GACpB5D,KAAKowO,wBAGTpwO,KAAKC,SAAS2D,IAElBswG,iBAAkB,SAASluF,GACvBhmB,KAAKC,SAAS+lB,EAAUhmB,KAAK4zR,0BAEjCnyN,QAAS,WACLzhE,KAAKC,SAASnB,MAAMkB,KAAME,WAC1BupE,aAAazpE,KAAKs1R,wBAGtBmB,GAAiCpE,GAC1BqE,GAAqB,CAC5B/4R,eAAgB,WACZ,MAAO,CACH2lD,aAAc,CACVt7B,SAAS,EACT8mC,MAAO,CACHE,IAAK,OAAoB31D,OAAO,8BAChC81D,MAAO,OAAoB91D,OAAO,gCAClC41D,aAAc,OAAoB51D,OAAO,uCACzC61D,cAAe,OAAoB71D,OAAO,4CAK1D4rE,UAAW,CACPF,MAAO,CACH+W,kBAAmB64M,GACnBzoQ,SAAU8oQ,GACV7sK,WAAYsuK,IAEhB5xN,YAAa,CACTizM,eAAgB,CACZ/E,yBAA0B,SAAS/hQ,GAC/B,IAAIw7D,EAAiBx7D,EAAQsc,QACzBolP,EAAsB1hQ,EAAQ0hQ,oBAClC,GAAIA,GAAuB,YAAcA,EAAoBv7L,WAAau7L,EAAoB/4H,kBACtF3oI,EAAQ6+E,aAAajiE,MAAO,CACvB5c,EAAQ64D,WACT74D,EAAQ2tE,eAAiB+zL,EAAoBmiB,uBAAuB,IAExE7jR,EAAQsc,QAAUolP,EAAoBxlL,gBAAgBl8E,EAAQ64D,UAC9D,IAAIipM,EAAkB9yQ,KAAKC,SAAS+Q,GAYpC,OAXE,SAASsc,EAAS01M,EAAc8vC,GAC9B,IAAIxlL,EAAyB2kM,GAA0BjvD,GACnDj2D,EAAez/I,EAAQ1zB,OAASopO,EAAappO,OACjD,eAAKk5Q,GAAiB,SAAU/zQ,EAAG2sB,GAC3BA,EAAMtqB,MAAQksF,IACd5hE,EAAM9G,aAAemoJ,EACrBrhJ,EAAMtqB,OAAS2rK,MANzB,CAUAvgG,EAAgBx7D,EAAQsc,QAASwlP,GAC5BA,EAGf,OAAO9yQ,KAAKC,SAAS+Q,IAEzB2iQ,cAAe,SAASjoP,EAAO4B,EAASgtC,EAAUu1B,GAC9C,IAAI5wF,EAASe,KAAKC,SAASnB,MAAMkB,KAAME,WACnCiwF,EAAe7iE,EAAQ5B,EAAM9G,aAC7BivQ,EAAqB7zR,KAAKwpH,mBAAmBsqK,8BACjD,IAAK70R,GAAU,YAAcq7D,GAAYu5N,GAAsBA,EAAmBj6R,OAAQ,CACtF,IAAIk3Q,EAAe,eAAgB+iB,EAAmBn2R,IAAI,IAC1D,OAAImyF,GAAgBA,EAAajiE,MACtB,UAAYiiE,EAAaljC,cAAgBjhC,EAAMte,EAAI0jQ,EAAaxkI,MAAQ5gH,EAAMte,EAAI0jQ,EAAanlP,QAElGwkE,IAAgBA,EAAaviE,OAAS,UAAYuiE,EAAaxjC,iBAG5DjhC,EAAMte,EAAI0jQ,EAAanlP,MAAQD,EAAMte,EAAI0jQ,EAAaxkI,OAGrE,OAAOrtI,IAGf4nP,eAAgB,CACZksB,yBAA0B,WACtB,IAAIpvQ,EAAO3D,KACP2mE,EAAoBhjE,EAAK8oE,mBACzBn/C,EAAUq5C,GAAqBhjE,EAAK8oE,mBAAmBC,oBACvDs2J,EAAer8J,GAAqBhjE,EAAK8oE,mBAAmBygB,kBAC5DI,EAAyB2kM,GAA0BjvD,GACnDj2D,EAAez/I,EAAQ1zB,OAASopO,EAAappO,OAC7CkuE,EAAQnkE,EAAK6lH,mBAAmBqrK,yBACpClxR,EAAK1D,WACD6nE,GAASA,EAAMluE,OAAS,IACxB+J,EAAKgzR,sBAAwB,OAAc3rQ,mBAAmB88C,GAAO,SAAUp8C,GAK3E,OAJIA,EAAMtqB,MAAQksF,IACd5hE,EAAM9G,aAAemoJ,EACrBrhJ,EAAMtqB,OAAS2rK,GAEZppK,EAAKgwQ,cAAcjoP,EAAO4B,EAAQ1zB,OAAQ0zB,QAI7D0mP,gBAAiB,SAASlB,EAAiBmB,EAAU7B,GACjD,IAAIyhB,EAAqB7zR,KAAKwpH,mBAAmBsqK,8BACjD,GAAID,GAAsBA,EAAmBj6R,OAAQ,CACjD,IAAIk3Q,EAAe,eAAgB+iB,EAAmBn2R,IAAI,IAC1D,GAAIu2Q,GAAYnD,EAAanlP,MAAQsoP,GAAYnD,EAAaxkI,MAC1D,OAAOtsI,KAAKC,SAASD,KAAK22R,sBAAuB1iB,EAAU7B,GAGnE,OAAOpyQ,KAAKC,SAAS6yQ,EAAiBmB,EAAU7B,QC92BpE,EAAS3sM,eAAe,eAAgBixN,ICmCxC,IAAI,GAAsB,oBACtBE,GAAY,WACZC,GAAc,aACdC,GAAe,CAAC,GAAqBF,GAAWC,IAChDE,GAAqB,uBACrB,GAAuB,iBACvBC,GAAoB,iBACpBC,GAA0B,wBAC1BC,GAAqB,mBACrBC,GAAsB,gBACtBC,GAA+B,gBAC/BC,GAA6B,sBAC7BC,GAAgC,6BAChCC,GAA4B,yBAC5BC,GAA2B,wBAC3B,GAA2B,wBAC3BC,GAAuB,oBACvBC,GAAuB,WACvB,GAAkB,QAClB,GAAgB,MAChB,GAAiB,OACjB,GAAkB,QAClB,GAAuB,iBACvB,GAAmB,gBACnB,GAAkB,eAClBC,GAAmB,gCACnBC,GAAqB,kCACrB,GAAwB,uBAE5B,SAAS5iM,GAAYrxF,EAAMmN,GACvB,OAAOnN,EAAK8oE,mBAAmBuoB,YAAYlkF,GAG/C,SAAS+mR,GAAoBtrN,GACzB,OAAOA,EAAKtlD,KAAK,kEAGrB,SAAS6wQ,GAAqB3vQ,EAAWnX,GACrC,IAAI+mR,EACAjzQ,EAAa,eAAEqD,GACf6vQ,EAA4BhnR,EAAQjE,UAAUk0D,cAAc,mBAC5D,SAAWjwD,EAAQG,SACnB4mR,EAAwB,eAAE,UAAUzwQ,SAAS0wQ,EAA0BjxQ,gBAAgBqwQ,KACvF,OAAa/xR,GAAG0yR,EAAuB,gBAAa,OAAgBhB,IAAqBiB,EAA0Bv3N,cAAa,WAC5Hu3N,EAA0BC,8BAA8BjnR,EAAQlW,SAEpEi9R,EAAsBxwQ,SAASzC,IAE/B,OAAcD,aAAaC,GAGnC,IAAIozQ,GAA4B,EAAQh2N,eAAe7C,QAAQ,CAC3D06M,eAAgB,WACZ,IAAIvpF,EAAWxwL,KAAKm4R,eACpB,OAAO3nG,IAAa,IAExB4nG,gBAAiB,SAASrxR,EAAM4lE,GAC5B,IAAI/nD,EAAc5kB,KAAKysE,mBAAmByB,gBAAgBnnE,EAAK+J,OAAO1P,OAClEyoE,EAAW7pE,KAAKonB,gBAAgB2hF,iBAAiBp8B,EAAY7xE,KAC7D+V,EAAM7Q,KAAKonB,gBAAgBsB,QAAQmhD,EAAW,GAClD,OAAOh5D,GAAOA,EAAIu0F,gBAAkB,eAAUv0F,EAAIu0F,eAAexgF,KAErEyzQ,wBAAyB,SAAStxR,EAAM4lE,EAAa7nD,GACjD,IAAIhU,EAAS/J,EAAK+J,OACdwnR,EAAct4R,KAAKygE,cAAa,WAChC,OAAa3zC,QAAQhI,EAAY,WAEjCywI,EAAU5oF,EAAY97D,IAAI1K,KAC1BtE,EAAQiP,EAAOoT,mBAAmBqxI,GAClClhE,EAAe,OAAczqE,gBAAgB9Y,EAAQjP,EAAO0zJ,EAAS5oF,EAAYx7D,SACjF5U,EAAO,OAAc2oB,YAAYmvE,EAAcvjF,GAC/CmnN,EAAwBj4N,KAAKugM,mBAAmB03B,wBAChD/rM,EAAWlsB,KAAKypH,UAQpB,GAPI34G,EAAO26C,cAAgBzrD,KAAKihE,cAAc,sBAAsB0Z,sBAChE71D,EAAWk8C,KAAK,WAAYhhE,KAAK+nB,OAAO,aACpCkwM,IACA,OAAa13J,IAAIz7C,EAAY,QAASwzQ,GACtC,OAAajzR,GAAGyf,EAAY,QAASwzQ,KAGzCxnR,EAAO1J,aAAc,CACrB,IAAIsoE,EAAkB,OAAAj1E,EAAA,WAAO,GAAIkyE,EAAa,CAC1C9qE,MAAOA,EACPwyF,aAAcA,EACd93F,KAAMA,EACNuU,OAAQA,IAERsnN,IAAiBtzM,EAAWmI,QAAQ,iBAAY4N,UAAUjhC,OAC9DsyB,EAASsjD,eAAe1qD,EAAYhU,EAAO1J,aAAcsoE,EAAiB0oJ,GAAcjrM,KAAK,KACzFjB,EAASs/C,cAAc1mD,EAAY6nD,SAEpC,CACH,IAAIxkD,EAAYrD,EAAWpnB,IAAI,GAC3BoT,EAAOy7C,WACPpkC,EAAUpD,YAAcxoB,EAExB4rB,EAAUokF,UAAYhwG,EAE1BuoB,EAAWwC,SAASkwQ,IACf,eAAUj7R,IAAS,KAAOA,GAC3BuoB,EAAWs1C,KAAK,UAEfp6D,KAAK+5Q,kBACF/5Q,KAAKo4R,gBAAgBrxR,EAAM4lE,IAC3B7nD,EAAWwC,SAAS4vQ,IAG5BhrQ,EAASs/C,cAAc1mD,EAAY6nD,KAG3ChJ,aAAc,SAAS58D,EAAM4lE,GACzB,IAAIhpE,EAAO3D,KACP8Q,EAAS/J,EAAK+J,OACdg6F,EAAoB9qG,KAAKihE,cAAc,WAC3C,OAAO,SAASjwD,EAASmX,GACrB,IAAIrD,EAAa,eAAEqD,GACfvD,EAAcjhB,EAAK8oE,mBAAmByB,gBAAgBp9D,EAAO1P,OAC7DsuE,EAAkB,OAAAj1E,EAAA,WAAO,GAAIkyE,GAC7B4rN,EAAqB,WACrB,IAAIC,EAAe70R,EAAK80R,cAAc1xR,GACtC2oE,EAAgB7tE,MAAQ8qE,EAAY97D,IAAIilB,OAAOlR,GAC3C4zQ,GAAgB1nR,EAAOy8C,iBACvBu9C,EAAkB+qH,uBAAuBnmJ,EAAiB3oE,EAAMiK,EAAS8T,GAAa0zQ,IAEtF9oN,EAAgB5+D,OAASA,EACzB4+D,EAAgB9qD,YAAcA,EAC9BjhB,EAAK00R,wBAAwBtxR,EAAM2oE,EAAiB5qD,KAG5DyzQ,IACA7oN,EAAgB7iE,OAAS6iE,EAAgB7iE,OAAM,WAC3C,MAAO,CACH2rR,aAAc70R,EAAK80R,cAAc1xR,GACjClF,MAAO8qE,EAAY97D,IAAIilB,OAAOlR,OAElC,WACAE,EAAWwxM,WAAWxuM,SACtBhD,EAAW0C,YAAYgwQ,IACvBe,SAIZG,uBAAwB,SAASlsN,GAC7B,QAAIA,EAAiB,MAGjBA,EAAe5yE,OAAS,WAEpB,IADA,IAAIqF,EAAS,EACJwI,EAAI,EAAGA,EAAI+kE,EAAe5yE,OAAQ6N,IAAK,CAC5C,IAAIwrF,EAAgBzmB,EAAe/kE,GAC/BwrF,EAActlE,SACd1uB,IAGR,OAAOA,EARa,IASjB,IAKf05R,wBAAyB,SAAS/kN,EAAQpH,GACtC,IAAI7oE,EAAO3D,KACP44R,EAAgB,EAMpB,OALApsN,EAAetrE,SAAQ,SAAU6F,EAAM3F,GAC/BwyE,EAAOxyE,KAAW,KAClBw3R,GAAiBj1R,EAAKk1R,qBAAqB9xR,OAG5C6xR,GAEXE,gBAAiB,SAASvxR,GACtB,OAAO,eAASA,IAAU,MAAQA,EAAM8b,OAAO,IAEnD01Q,gBAAiB,SAASjoR,GACtB,OAAO9Q,KAAKg5R,eAAe56R,QAAO,SAAU66R,GACxC,OAAOA,EAAa73R,QAAU0P,EAAO1P,SACrCxH,OAAS,GAEjBw0H,wBAAyB,SAASotH,EAAgBluN,EAAS4rQ,GACvD,IAAIv1R,EAAO3D,KACPm5R,EAAoB,EACpBC,EAAgC,EAkBpC,OAjBA9rQ,EAAQpsB,SAAQ,SAAU4P,GACtB,IAAKnN,EAAKo1R,gBAAgBjoR,GAAS,CAC/B,IAAIvJ,EAAQuJ,EAAOvJ,MACf,eAAUA,KAAW/D,MAAM+/D,WAAWh8D,IACtC4xR,GAAqBx1R,EAAKm1R,gBAAgBvxR,GAAS5D,EAAK01R,uBAAuB,CAC3ExrO,aAAc/8C,EAAO+8C,aACrB+rK,aAActsM,EAAQ1zB,OACtBs/R,cAAeA,EACfj3M,aAAcnxE,EAAOmxE,aACrBv+B,YAAan8C,EACbi0O,eAAgBA,IACfj4K,WAAWh8D,GAEhB6xR,SAIJ59C,EAAiB29C,GAAqBC,GAElDE,sBAAuB,SAASxoR,EAAQ0qO,EAAgB+9C,EAAgBL,GACpE,IAIIM,EAJA/sK,EAAWz3B,GAAYh1F,KAAM8Q,GAC7B2oR,EAAcz5R,KAAKysE,mBAAmBoK,aAAa41C,EAAU,SAC7DxqC,EAAejiF,KAAKysE,mBAAmBoK,aAAa41C,EAAU,gBAC9DmtG,EAAe2/D,EAAe3/R,OAElC,GAAI6/R,GAAe,SAAWA,EAAa,CACvC,IAAIz5R,KAAK84R,gBAAgBW,GAUrB,OAAOl2N,WAAWk2N,GATlBD,EAAWx5R,KAAKq5R,uBAAuB,CACnCxrO,aAAc/8C,EAAO+8C,aACrB+rK,aAAcA,EACds/D,cAAeA,EACfj3M,aAAcA,EACdv+B,YAAa+1O,EACbj+C,eAAgBA,QAKrB,CACH,IAAIp4L,EAAkBpjD,KAAK+nB,OAAO,mBAClCyxQ,EAAWp2O,GAAqBtyC,EAAO6c,QAAUs0D,EAAejiF,KAAKouH,wBAAwBotH,EAAgB+9C,EAAgBL,GAEjI,OAAOM,GAEXH,uBAAwB,SAASroR,GAC7B,IAAI0oR,EAAe1oR,EAAQ68C,aAAe78C,EAAQ4oN,aAAe,GAAK5oN,EAAQkoR,cAC1ES,EAAe3oR,EAAQwqO,eAAiBj4K,WAAWvyD,EAAQ0yC,aAAe,IAC1Ek2O,EAAc5oR,EAAQkoR,eAAiBS,EAAe3oR,EAAQixE,aAAejxE,EAAQixE,aAAe03M,EACxG,OAAOD,EAAe1oR,EAAQwqO,eAAiBj4K,WAAWvyD,EAAQ0yC,aAAe,IAAMk2O,GAE3FC,4BAA6B,SAAS/oR,EAAQ0qO,EAAgB+9C,EAAgBL,GAC1E,IAAIzsK,EAAWz3B,GAAYh1F,KAAM8Q,GAC7B2oR,EAAcz5R,KAAKysE,mBAAmBoK,aAAa41C,EAAU,SAC7DxqC,EAAejiF,KAAKysE,mBAAmBoK,aAAa41C,EAAU,gBAClE,GAAIgtK,GAAe,SAAWA,IAAgBz5R,KAAK84R,gBAAgBW,GAC/D,OAAOl2N,WAAWk2N,GAEtB,IAAID,EAAWx5R,KAAKs5R,sBAAsBxoR,EAAQ0qO,EAAgB+9C,EAAgBL,GAClF,OAAOM,EAAWv3M,EAAe,KAAOu3M,GAE5CX,qBAAsB,SAAS9xR,GAC3B,IAAI9H,EAAS,EAIb,OAHI8H,EAAKQ,OAASvH,KAAK84R,gBAAgB/xR,EAAKQ,SACxCtI,EAASskE,WAAWx8D,EAAKQ,QAEtBtI,GAEX66R,wBAAyB,WACrB,IAAIn2R,EAAO3D,KACPstB,EAAU3pB,EAAK8oE,mBAAmBC,oBAClC8sN,EAAW,EAMf,OALA,eAAKlsQ,GAAS,SAAUlsB,EAAO0P,IACvBA,EAAO1P,MAAQ,GAAK0P,EAAO6c,WAC3B6rQ,GAAY71R,EAAK8oE,mBAAmBoK,aAAame,GAAYrxF,EAAMmN,GAAS,iBAAmB,MAGhG0oR,GAEXf,cAAe,SAAS1xR,GACpB,GAAI/G,KAAK6zN,wBACL,OAAO,EAEX,IAAI7zN,KAAK+5Q,iBAKF,CACH,IAAIlwM,EAAW7pE,KAAKonB,gBAAgB2hF,iBAAiB/oG,KAAKonB,gBAAgB2yQ,uBAAyB,EAC/Fn1Q,EAAc5kB,KAAKysE,mBAAmByB,gBAAgBnnE,EAAK+J,OAAO1P,OACtE,OAAOpB,KAAKugM,mBAAmBnM,WAAWvqH,EAAUjlD,GAPpD,IAAIwrC,EAAapwD,KAAK+nB,OAAO,sBAC7B,QAAI,eAAaqoC,EAAYpwD,KAAKonB,gBAAgB2yQ,6BAAlD,GASRC,6BAA8B,SAASC,GACnC,IAAIvxQ,EAAQ,GASZ,OARA,eAAKuxQ,GAAe,SAAUl7R,EAAG+R,GAC7B4X,EAAMzlB,KAAK,CACP6N,OAAQA,EACRlP,KAAMkP,EAAOlP,KACbwP,UAAWN,EAAOM,UAClBy8C,aAAc/8C,EAAO+8C,kBAGtBnlC,GAEXwxQ,+BAAgC,SAAS1tN,GACrC,IAAK,IAAI/wE,EAAI,EAAGA,EAAI+wE,EAAe5yE,OAAQ6B,IAAK,CAC5C,IAAIqV,EAAS07D,EAAe/wE,GAC5B,GAAIqV,EAAO6c,UAAY+pQ,GACnB,OAAOj8R,IAInB0+R,oBAAqB,SAAS5sQ,EAAci/C,GACxC,IAAI3e,EAAe7tD,KAAKk6R,+BAA+B1tN,GACnD,eAAU3e,KACVtgC,EAAasgC,GAAgB,GAC7B7tD,KAAKo6R,mBAAmB,CACpB5oB,iBAAiB,EACjB3jN,aAAcA,MAI1B48N,uBAAwB,SAASv9Q,GAC7B,IACIw6D,OAAQA,EACR8pM,gBAAiBA,GACjBtkQ,EACAmtR,EAAuBr6R,KAAK+mB,gBAAgBowQ,IAC5C3lB,GACA6oB,EAAuB/C,GACvB5vN,EAAO1G,KAAK,CACRxX,SAAU,EACV,cAAe,OAChBhiC,YAAY6yQ,IAEf3yN,EAAOlgD,YAAY6yQ,IAG3BC,mBAAoB,WAChB,IAAK,IAAI7+R,EAAI,EAAGA,EAAIq7R,GAAal9R,OAAQ6B,IAAK,CAC1C,IAAIitH,EAAO1oH,KAAKmsB,QAAQ2qQ,GAAar7R,IACrC,GAAIitH,GAAQA,EAAKvhG,aAAeuhG,EAAK7hG,UAAW,CAC5C,IAAI0xD,EAAWmwC,EAAK9mH,KAChB24R,EAAsB7xK,EAAK7hG,UAAUI,KAAK,IAAMqwQ,IACpDt3R,KAAKyqR,uBAAuB,CACxBlyM,SAAUA,EACV7Q,OAAQ6yN,EACR/oB,iBAAiB,IAErB,IAAIgpB,EAAe9xK,EAAK7hG,UAAUI,KAAK,IAAMjnB,KAAK+mB,gBAAgBowQ,KAClEn3R,KAAKyqR,uBAAuB,CACxBlyM,SAAUA,EACV7Q,OAAQ8yN,OAKxBlX,aAAc,SAASp8M,GACnB,OAAOA,GAASA,EAAMttE,SAAWstE,EAAMZ,SAAS,MAA8BY,EAAMZ,SAAS,KAEjG8zN,mBAAoB,SAAS1jM,GACzB,IACI86K,gBAAiBA,EACjB3jN,aAAcA,GACd6oC,EACA/yF,EAAO3D,KACX82R,GAAa51R,SAAQ,SAAUq3E,GAC3B,IAAImwC,EAAO/kH,EAAKwoB,QAAQosD,GACxBmwC,GAAQ/kH,EAAK82R,yBAAyB,CAClC/xK,KAAMA,EACN8oJ,gBAAiBA,EACjB3jN,aAAcA,QAI1B4sO,yBAA0B,SAASt9L,GAC/B,IAMIvf,GALA8qC,KAAMA,EACN8oJ,gBAAiBA,EACjB3jN,aAAcA,GACdsvC,EACA5kB,EAAWmwC,EAAK9mH,KAEhBkP,EAAS9Q,KAAKysE,mBAAmBC,oBAAoB7e,GACrDypK,EAAmBt3N,KAAKugM,oBAAsBvgM,KAAKugM,mBAAmBrM,sBAC1E,GAAIxrE,GAAQA,EAAKvhG,aAAerW,EAG5B,IAFA,IAAIqkM,EAAYzsF,EAAK3xC,eACjBy4B,EAAekZ,EAAKvyC,kBACftM,EAAW,EAAGA,EAAWsrI,EAAWtrI,IAAY,CACrD,IAAI6wN,EAAoB7wN,IAAaytJ,GAAoB/+I,IAAaq+M,IAAa,UAAY52R,KAAK+nB,OAAO,gBAC3G,IAAK2yQ,EAAmB,CACpB,IAAIC,EAAsBpiN,IAAa,GAAsBv4E,KAAKysE,mBAAmByB,gBAAgBp9D,EAAO1P,MAAOyoE,GAAYhc,EAC/H,GAAI8sO,GAAuB,EAAG,CAC1B,IAAI3oN,EAAcw9B,EAAahkF,GAAGq+C,GAClC+T,EAAe59E,KAAK46R,sBAAsB5oN,EAAa2oN,GACvD36R,KAAKsjR,aAAa1lM,IAAiB59E,KAAK0qR,uBAAuB,CAC3DnyM,SAAUA,EACVi5L,gBAAiBA,EACjBtqM,MAAO0W,QAO/B,sBAAsB5L,EAAaw1M,GAC/B,IAAIqT,EAAY7oN,EAAY3K,WACxBxZ,EAAe25N,EACfsT,GAAoB,EACxB,GAAI9oN,EAAY1L,SAAS,IAAkB,CACvC,IAAIkrN,EAAax/M,EAAY/qD,KAAK,IAAIpV,OAAO,KACzCumD,EAAUo5N,EAAWxwN,KAAK,WAC9B,GAAIwwN,EAAW53R,QAAU,eAAUw+D,GAAU,CACzC,IAAI2iO,EAAkBx5R,SAAS62D,GAC3B4iO,EAAgBxJ,EAAWpwR,QAAU25R,EAAkB,EACvDvT,EAAqBwT,EACrBntO,EAAe25N,EAAqBuT,EAAkB,EAEtDD,GAAoB,GAIhC,IAAIl9M,EAAgBk9M,OAAiD,EAA7BD,EAAUrvQ,GAAGqiC,GACrD,OAAO+vB,GAEX8sM,uBAAwB,SAASrtL,GAC7B,IACIn2B,MAAOA,EACPsqM,gBAAiBA,GACjBn0K,EACA49L,EAAoBzpB,EAAkB8lB,GAAgCt3R,KAAK+mB,gBAAgBowQ,IAC/FjwN,EAAMlG,KAAK,CACPxX,UAAW,EACX,eAAe,IAChBliC,SAAS2zQ,IAEhB9C,aAAc,WACV,OAAOn4R,KAAKugM,mBAAmBhQ,eAEnCsjC,sBAAuB,WACnB,IAAIrjC,EAAWxwL,KAAKm4R,eACpB,OAAO3nG,IAAa,IAAkBA,IAAa,IAEvD0qG,qBAAsB,SAAS3tQ,EAAci/C,EAAgB2uN,GAEzD,GADAn7R,KAAKg5R,eAAiB,GAClBh5R,KAAK04R,uBAAuBlsN,IAAmB2uN,EAAYvhS,OAAQ,CACnE,IAQI6B,EACA2/R,EACAC,EAVA9vK,EAAa,EACbrgB,EAAelrG,KAAK+M,UAAUiZ,WAC9Bs1Q,EAAmB,eAASpwL,GAAgBlrG,KAAK85R,0BACjDyB,EAA2B,WAC3B,OAAO/uN,EAAepuE,OAAO2I,IAASA,EAAK4mB,SAAW,IAAM3tB,KAAKg5R,eAAe56R,OAAO3C,GAAKA,EAAE2F,QAAU2F,EAAK3F,OAAOxH,SACtH4wB,KAAKxqB,MACHw7R,EAAwBD,IACxBE,EAAsBD,EAAsB5hS,OAIhD,EAAG,CACCyhS,GAAiB,EACjB9vK,EAAa,EACb,IAAIqtK,EAAgB54R,KAAK24R,wBAAwBprQ,EAAci/C,GAC3D0sN,EAAgBN,EAAgB,KAAO,IAAMA,EACjD,IAAKn9R,EAAI,EAAGA,EAAI+wE,EAAe5yE,OAAQ6B,IAAK,CACxC,IAAIw3F,EAAgBzmB,EAAe/wE,GAC/BioD,EAAc1jD,KAAK65R,4BAA4B5mM,EAAeqoM,EAAkBE,EAAuBtC,GACvGzsK,EAAWz3B,GAAYh1F,KAAMizF,GAC7BwmM,EAAcz5R,KAAKysE,mBAAmBoK,aAAa41C,EAAU,SAC7Dt/D,EAAWntD,KAAKysE,mBAAmBoK,aAAa41C,EAAU,YAC1DivK,EAAqB17R,KAAKysE,mBAAmBoK,aAAa41C,EAAU,gBACxE,GAAIl/F,EAAa9xB,KAAO,GAAxB,CAIA,IAAKioD,IAAgBuvC,EAActlE,UAAYslE,EAAcrlE,MAAO,CAChEytQ,GAAiB,EACjB,MAEC5B,GAAe,SAAWA,IAC3B/1O,EAAc/hC,KAAKqQ,IAAI0pQ,GAAsB,EAAGvuO,GAAY,KAE5D8lC,EAActlE,UAAY+pQ,IAAwB0D,KAClD7vK,GAAc7nE,QAXd03O,GAAmB,EAe3B,GADAC,EAAiBA,GAAkB9vK,EAAa,eAASrgB,GACrDmwL,EAAgB,CAChB,IAAIvqR,EAASqqR,EAAYlpQ,MACrB47B,EAAe7tD,KAAKysE,mBAAmByB,gBAAgBp9D,EAAO1P,OAClEk6R,GAAoBt7R,KAAKs5R,sBAAsBxoR,EAAQwqR,EAAkBE,EAAuBtC,GAChGl5R,KAAKo6R,mBAAmB,CACpBvsO,aAAcA,IAElBtgC,EAAasgC,GAAgB,GAC7B7tD,KAAKg5R,eAAe/1R,KAAK6N,GACzB0qR,EAAwBD,WAEvBF,GAAkBG,EAAsB5hS,OAAS,GAAKuhS,EAAYvhS,QACvE6hS,IAAwBD,EAAsB5hS,QAC9CoG,KAAKm6R,oBAAoB5sQ,EAAci/C,QAG3CxsE,KAAKm6R,oBAAoB5sQ,EAAci/C,IAG/CmvN,4BAA6B,SAASnU,GAElC,IADA,IAAI5rK,EACKngH,EAAI,EAAGA,EAAIuE,KAAK47R,eAAehiS,OAAQ6B,IAAK,CACjDmgH,EAAe57G,KAAK47R,eAAepwQ,GAAG/vB,GACtC,IAAIsL,EAAO60G,EAAaz1G,KAAK,gBAC7B,GAAIY,GAAQA,EAAK+J,QAAU9Q,KAAKysE,mBAAmByB,gBAAgBnnE,EAAK+J,OAAO1P,SAAWomR,EACtF,OAAO5rK,IAInBq8K,8BAA+B,SAASn9R,EAAK+gS,GACnC77R,KAAK6zN,yBAA2B7zN,KAAKugM,mBAAmBpzH,aAC1DntE,KAAKihE,cAAc,QAAQg3N,8BAA8Bn9R,EAAK+gS,IAGtEC,0BAA2B,SAAS3zQ,EAAWnX,GAC3C,IAAIrN,EAAO3D,KACP8kB,EAAa,eAAEqD,GACf4zQ,EAAkB,CAClBrzQ,MAAO/kB,EAAKq2R,6BAA6Br2R,EAAKq1R,gBAC9CpuE,OAAQ,MAAQ,IAAI,SAEpBoxE,EAAqB,iBAAe,CACpCnlO,SAAU,GACV,GACJ72D,KAAKwhE,cAAc,+BAAgC,CAC/CsuI,YAAaisF,IAEjBp4R,EAAKi4R,eAAiB,KACtBj4R,EAAKs4R,MAAQt4R,EAAKykB,iBAAiB,eAAE,SAASb,SAASzC,GAAa,GAAM,OAAArqB,EAAA,WAAOuhS,EAAoBD,EAAiB,CAClHhlO,cAAe,SAAShwD,GACpB,IAAI+J,EAAS/J,EAAK+J,QAAUnN,EAAK8oE,mBAAmBoK,aAAa9vE,EAAKnF,MAAQmF,EAAKqK,WAC/EN,IACA/J,EAAK0xD,MAAQ1xD,EAAK0xD,OAAS,GAC3B1xD,EAAK0xD,MAAMl8D,KAAOwK,EAAK0xD,MAAMl8D,MAAQuU,EAAO5J,QAC5CH,EAAK+J,OAASA,EACd/J,EAAKokD,SAAWxnD,EAAKggE,aAAa58D,EAAMiK,EAASrN,EAAKu4R,WAAW1xQ,KAAK7mB,KAE1Eo4R,EAAgBhlO,eAAiBglO,EAAgBhlO,cAAcvxC,KAAKxlB,KAAM+G,IAE9E8+C,eAAgB,SAASjiD,GACrBm4R,EAAgBl2O,gBAAkBk2O,EAAgBl2O,eAAergC,KAAKxlB,KAAM4D,GAC5ED,EAAKi4R,eAAiB92Q,EAAWmC,KAAK,IAAMgwQ,SAIxDkF,6BAA8B,WAC1B,OAAO,eAAUn8R,KAAKonB,gBAAgB2yQ,wBAE1CmC,WAAY,SAASjC,GACbj6R,KAAKm8R,gCACDn8R,KAAKi8R,OAAS,eAAUj8R,KAAKi8R,MAAMG,uBAC/BnC,GAAiBA,EAAcrgS,OAC/BoG,KAAKi8R,MAAMl0Q,OAAO,QAAS/nB,KAAKg6R,6BAA6BC,IAE7Dj6R,KAAKi8R,MAAMz/J,YAK3B6/J,kBAAmB,SAAS/uQ,GACxB,IAGIgvQ,EACA7gS,EAJA8gS,EAAkBjvQ,EAAQlvB,QAAO,SAAU0S,GAC3C,OAAOA,EAAO64C,UAAY74C,EAAOrS,OAASqS,EAAO8c,SAAW,eAAU9c,EAAOi8C,aAAej8C,EAAOi8C,YAAc,MAKrH,GADA/sD,KAAKw8R,oBAAsB,GACvBx8R,KAAK+nB,OAAO,wBAA0B,WAAa/nB,KAAK+nB,OAAO,sBAC/D,OAAO/nB,KAAKw8R,oBAEhB,IAAK/gS,EAAI,EAAGA,EAAI8gS,EAAgB3iS,OAAQ6B,IAChC,eAAU8gS,EAAgB9gS,GAAGwxD,iBAAmBsvO,EAAgB9gS,GAAGwxD,gBAAkB,IACrFqvO,GAA2B,EAC3Bt8R,KAAKw8R,oBAAoBD,EAAgB9gS,GAAGwxD,gBAAkBsvO,EAAgB9gS,IAGtF,GAAI6gS,EACAt8R,KAAKw8R,oBAAoBpmM,eACtB,GAAIp2F,KAAK+nB,OAAO,uBACnB,IAAKtsB,EAAI,EAAGA,EAAI8gS,EAAgB3iS,OAAQ6B,IAAK,CACzC,IAAIoyD,EAAe7tD,KAAKysE,mBAAmByB,gBAAgBquN,EAAgB9gS,GAAG2F,OAC9EpB,KAAKw8R,oBAAoB3uO,GAAgB0uO,EAAgB9gS,GAIjE,OADAuE,KAAKw8R,oBAAsBx8R,KAAKw8R,oBAAoBp+R,OAAOZ,QACpDwC,KAAKw8R,qBAEhBC,iBAAkB,WACd,OAAOz8R,KAAKg5R,gBAEhBoC,iBAAkB,WACd,OAAOp7R,KAAKg5R,eAAep/R,OAAS,GAExC8iS,sBAAuB,WACnB,OAAO18R,KAAKw8R,qBAEhBz8N,KAAM,WACF,IAAIp8D,EAAO3D,KACX2D,EAAK8oE,mBAAqB9oE,EAAKs9D,cAAc,WAC7Ct9D,EAAKyjB,gBAAkBzjB,EAAKs9D,cAAc,QAC1Ct9D,EAAK8lH,UAAY9lH,EAAKwoB,QAAQ,YAC9BxoB,EAAK8oE,mBAAmB0e,iBAAiB,CACrC1sF,KAAMi5R,GACN/pQ,QAAS+pQ,GACT/tO,SAAS,EACTgzO,gBAAgB,EAChB3xO,SAAUqsO,GACVlwR,UAAW,SACXI,MAAO,OACPH,aAAc0wR,GACdnrO,cAAe,UAEnBhpD,EAAK8oE,mBAAmB8H,eAAeC,KAAI,WACvC,IAAIooN,IAAsBj5R,EAAK04R,kBAAkB14R,EAAK8oE,mBAAmBhF,cAAc7tE,OACvF+J,EAAK8oE,mBAAmBoK,aAAa,mBAAoB,kBAAmB+lN,GAAmB,MAEnGj5R,EAAK48L,mBAAqB58L,EAAKs9D,cAAc,WAC7Ct9D,EAAK64R,oBAAsB,GAC3B74R,EAAKq1R,eAAiB,GACtBr1R,EAAK88D,aAAa,gCAClB98D,EAAK1D,YAETugE,cAAe,SAAS3hB,GAChB,wBAA0BA,EAAKj9C,MAC/B5B,KAAKysE,mBAAmBoK,aAAa,mBAAoB,kBAAmBh4B,EAAKh9C,OAErF7B,KAAKC,SAAS4+C,IAElBmhB,cAAe,WACX,MAAO,CAAC,8BAA+B,0BAA2B,8BAEtE68N,4BAA6B,SAAS/hS,GAClC,OAAOkF,KAAKonB,gBAAgB2yQ,uBAAyB,eAAa/5R,KAAKonB,gBAAgB2yQ,sBAAuBj/R,IAElHgiS,wBAAyB,SAAShiS,GACzBkF,KAAKm8R,gCACNn8R,KAAKi4R,8BAA8Bn9R,IAG3CiiS,0BAA2B,WACnB/8R,KAAKm8R,gCACLn8R,KAAKi4R,iCAGb+E,+BAAgC,SAASliS,EAAK29D,GAC1C,IAAIoR,EAAW7pE,KAAKonB,gBAAgB2hF,iBAAiBjuG,GACrD,IAAK,IAAM+uE,EAAX,CAGA,IAAI0C,EAAO,eAAEvsE,KAAK+M,UAAU4pE,cAAc9M,IAC1C7pE,KAAKi9R,4BAA4B1wN,EAAM9T,KAE3CwkO,4BAA6B,SAAS1wN,EAAM2wN,GACxC,IAAIC,EAAmB5wN,EAAKtlD,KAAK,wBACjCk2Q,EAAiBn8N,KAAK,aAAc,OAAoB3nE,OAAO6jS,OAG5DE,GAAmB,CAC1Bz/R,eAAgB,WACZ,MAAO,CACH4lD,qBAAqB,EACrBiC,6BAA8B,OAGtCqf,YAAa,CACT2lN,gBAAiB0N,IAErBjzN,UAAW,CACPF,MAAO,CACH74C,SAAU,CACN6mD,iBAAkB,SAAS/hE,GACvB,IAAIrN,EAAO3D,KACP8Q,EAASE,EAAQF,OACrB,OAAIE,EAAQG,UAAY6lR,IAAqB,WAAalmR,EAAO6c,QACtD,SAASxF,EAAWnX,GACvBrN,EAAK05R,2BAA2BvB,0BAA0B,eAAE3zQ,GAAYnX,IAGzErN,EAAK1D,SAAS+Q,IAEzB86D,WAAY,SAASj7D,GACjB,IAAI07D,EAAOvsE,KAAKC,SAASnB,MAAMkB,KAAME,WAIrC,OAHI2Q,GAAOA,EAAIM,UAAY6lR,IAAqBnmR,EAAI/V,MAAQkF,KAAKonB,gBAAgB2yQ,uBAC7ExtN,EAAKjlD,SAASiwQ,IAEXhrN,GAEXiF,aAAc,SAASjF,EAAMv7D,GACzBhR,KAAKC,SAASssE,EAAMv7D,GACpB,IAAIgnR,EAA4Bh4R,KAAKq9R,2BACjCC,EAA2BtF,EAA0B0E,wBAAwB9iS,OAC7E2jS,EAAsBvF,EAA0ByE,mBAAmB7iS,OACnE0jS,IAA6BC,GAC7B1F,GAAoBtrN,GAAMrlD,OAAOI,SAASmwQ,IAE1C,SAAWzmR,EAAQH,IAAIM,SACvB6mR,EAA0BiF,4BAA4B1wN,EAAMorN,KAGpEz2F,6BAA8B,SAASl7K,GACnC,IAAI41F,EAAe51F,EAASiH,QAAQ,IAAMgqQ,IAC1C,GAAIr7K,EAAahiH,QAAUgiH,EAAa3uF,QAAQjtB,KAAK+M,UAAUiZ,YAAYpsB,OAAQ,CAC/E,IAAIgzD,EAAWgvD,EAAahiH,OAASgiH,EAAaniC,QAAQtzE,KAAK,gBAAkB,KACjF,OAAOymD,GAAYA,EAAS97C,QAAU9Q,KAAKysE,mBAAmByB,gBAAgBthB,EAAS97C,OAAO1P,OAE9F,OAAOpB,KAAKC,SAAS+lB,IAG7BwlD,cAAe,SAAStE,EAAOl2D,GAC3BhR,KAAKC,SAASnB,MAAMkB,KAAME,WACtB8Q,EAAQH,IAAIM,UAAY6lR,IAAqBhmR,EAAQF,OAAO+6D,eAAiB,IAC7E3E,EAAM5/C,SAAStnB,KAAK+mB,gBAAgBowQ,MAG5C/gN,gBAAiB,SAASvM,EAAUwM,GAChC,IAAItvE,EAAO/G,KAAKonB,gBAAgBsB,QAAQmhD,GACxC,OAAI9iE,GAAQA,EAAKoK,UAAY6lR,GAClBh3R,KAAKq9R,2BAA2B1B,4BAA4BtlN,GAE5Dr2E,KAAKC,SAASnB,MAAMkB,KAAME,YAGzCu/E,oBAAqB,SAASzuE,GAC1B,GAAIA,EAAQH,KAAO,mBAAqBG,EAAQH,IAAIM,QAAS,CACzD,IAAIu3G,EAAO1oH,KAAK+M,UAAUof,QAAQ,qBAC9BygC,EAAW,eAAE57C,EAAQ63G,eAAe57F,QAAQ,wBAAwBtgB,OAAOxG,KAAK,gBAEpF,OADA6K,EAAQF,OAAS87C,EAAWA,EAAS97C,OAASE,EAAQF,OAC/C43G,EAAKjpC,qBAAuBipC,EAAKjpC,oBAAoBzuE,GAEhE,OAAOhR,KAAKC,UAAYD,KAAKC,SAAS+Q,IAE1Cw3H,mBAAoB,SAAS3nE,GACzB,IAAI28N,IAAcx9R,KAAKC,UAAWD,KAAKC,SAAS4gE,GAChD,OAAO28N,KAAiB38N,EAAQ5zC,QAAQ,IAAMoqQ,IAA4Bz9R,QAE9EmmE,KAAM,WACF//D,KAAKC,WACLD,KAAKq9R,2BAA6Br9R,KAAKihE,cAAc,sBAIjE4D,YAAa,CACT1gB,OAAQ,CACJs5O,mBAAoB,SAAS3sR,EAAQvJ,GACjCvH,KAAKC,SAAS6Q,EAAQA,EAAO+6D,eAAiB,GAAuB/6D,EAAOmxE,aAAe16E,KAGnGs/O,eAAgB,CACZ8sB,cAAe,SAASjoP,EAAOJ,EAAagC,GACxC,IAAIruB,EAASe,KAAKC,SAASyrB,EAAOJ,EAAagC,GAC3C+3D,EAAgB/3D,EAAQ5B,EAAM9G,cAAgB,GAC9CuwP,EAAkBn1Q,KAAKi1Q,oBAAoBvpP,EAAM9G,aACjDmvP,EAAazmP,EAAQ6nP,IAAoB,GACzCuoB,EAAuBvoB,IAAoBzpP,EAAM9G,YAAc,GAAKmvP,EAAWpmP,QAC/EgwQ,EAAyBt4M,EAAcxZ,eAAiB,IAAwB6xN,EACpF,OAAOz+R,GAAU0+R,GAErB1oB,oBAAqB,SAASL,GAC1B,IAAIpoM,EAAiBxsE,KAAKysE,mBAAmBC,oBACzCtrE,EAAQpB,KAAKC,SAAS20Q,GAC1B,MAAOpoM,EAAeprE,IAAUorE,EAAeprE,GAAOyqE,eAAiB,GACnEzqE,IAEJ,OAAOA,IAGf02Q,eAAgB,CACZnE,cAAe,SAASjoP,EAAO4B,EAASgtC,EAAUu1B,GAC9C,IAAI5wF,EAASe,KAAKC,SAASyrB,EAAO4B,EAASgtC,EAAUu1B,GACjD/+E,EAASwc,EAAQ5B,EAAM9G,YAAc,IAAM,GAC3C+4Q,EAAyB7sR,EAAO+6D,eAAiB,GACrD,OAAO5sE,GAAU0+R,IAGzB35O,QAAS,CACL+1N,eAAgB,WACZ,OAAO/5Q,KAAKuwL,gBAAkB,IAElCuO,yBAA0B,SAASnyH,EAAa77D,GAC5C,OAAI9Q,KAAKuwL,gBAAkB,IAAiB,mBAAqB5jH,EAAYx7D,SACzEw7D,EAAY/nD,YAAc5kB,KAAKysE,mBAAmByB,gBAAgBp9D,EAAO1P,OAClEpB,KAAK++L,kBAAkBpyH,IAE3B3sE,KAAKC,SAAS0sE,EAAa77D,IAEtC6gL,eAAgB,SAASt3G,GACrB,IAAIujN,EAAgBvjN,EAAeptD,QAAQ,IAAMgqQ,IAC7CptN,EAAW7pE,KAAKonB,gBAAgB2hF,iBAAiB/oG,KAAKonB,gBAAgB2yQ,uBAAyB,EAC/FntO,EAAWgxO,EAAchkS,OAASgkS,EAAcnkN,QAAQtzE,KAAK,gBAAkB,KAC/Eye,EAAcgoC,GAAYA,EAAS97C,QAAU9Q,KAAKysE,mBAAmByB,gBAAgBthB,EAAS97C,OAAO1P,OACpGpB,KAAKo0L,WAAWvqH,EAAUjlD,IAC3B5kB,KAAKC,SAASo6E,IAGtB69G,mBAAoB,SAASn0F,EAAYl6B,GACrC,IAAK7pE,KAAK69R,oBAAoBhqE,yBAA2B7zN,KAAK69R,oBAAoBzC,mBAAoB,CAClG,IAAI1yQ,EAAQ1oB,KAAKonB,gBAAgBsB,QAC7B3hB,EAAO2hB,EAAMmhD,GACbi0N,EAAoB,OAAcr1Q,cAAczoB,KAAKonB,gBAAgB2yQ,sBAAuBrxQ,GAChG1oB,KAAK+9R,2BAA6B/9R,KAAK69R,oBAAoB1B,+BACvD2B,GAAqB,GACrB/5L,EAAW9gG,KAAK66R,EAAoB,GAExC/5L,EAAW9gG,KAAK4mE,EAAW,GAC3B7pE,KAAKonB,gBAAgB2yQ,oBAAoBhzR,EAAKjM,OAGtD68L,gBAAiB,SAAS78L,GACtBkF,KAAKC,SAASnB,MAAMkB,KAAME,WACtBF,KAAK69R,oBAAoBzC,qBACzBp7R,KAAK69R,oBAAoB5F,8BAA8Bn9R,EAAKkF,KAAKqiM,iBACjEriM,KAAK+9R,2BAA4B,IAGzCC,2BAA4B,WACpBh+R,KAAK+5Q,kBAAoB/5Q,KAAK+9R,4BAC9B/9R,KAAK69R,oBAAoBd,4BACzB/8R,KAAK+9R,2BAA4B,IAGzCE,6BAA8B,WACtBj+R,KAAK69R,oBAAoBzC,oBACzBp7R,KAAKg+R,8BAGb5hG,mBAAoB,WAChBp8L,KAAKC,SAASnB,MAAMkB,KAAME,WAC1B,IAAIw9D,EAAW,IAAI,cAWnB,OAVI19D,KAAK+5Q,kBAAoB/5Q,KAAK69R,oBAAoBzC,mBAClD,kBAAKp7R,KAAKihE,cAAc,cAAcm5I,UAAS,IAAOjtL,KAAK23H,IACnDA,GACA9kJ,KAAKi+R,+BAETvgO,EAASluC,YAGbkuC,EAASluC,UAENkuC,EAASptC,WAEpB4sK,sBAAuB,WACnBl9L,KAAKC,WACLD,KAAKi+R,gCAET1gG,iCAAkC,SAAS1sL,GACvC,IAAIkzF,EAAa/jG,KAAKC,SAASnB,MAAMkB,KAAME,WAI3C,OAHIF,KAAK69R,oBAAoBhB,4BAA4BhsR,EAAI/V,MACzDipG,EAAW9gG,KAAK4N,EAAIM,UAAY6lR,GAAoBnmR,EAAIg5D,SAAW,EAAIh5D,EAAIg5D,SAAW,GAEnFk6B,GAEXi5F,gCAAiC,SAASj5F,GACtC,IAAIm6L,EAAcl+R,KAAKonB,gBAAgB+2Q,qBACvC,GAAID,EAAa,CACb,IAAIr0N,EAAW,OAAcphD,cAAcy1Q,EAAal+R,KAAKonB,gBAAgBsB,SACzEmhD,GAAY,GACZk6B,EAAWvyE,QAAQq4C,KAI/BzY,QAAS,SAASyY,GACV7pE,KAAK69R,oBAAoBhqE,yBACzB7zN,KAAK69R,oBAAoBd,4BAE7B/8R,KAAKC,SAAS4pE,IAElB1Y,UAAW,SAAS0Y,GAChB,IAAI+zH,EAAS59L,KAAKonB,gBAAgByhF,iBAAiBh/B,GAC/C7pE,KAAKuwL,gBAAkB,IAAmBvwL,KAAK69R,oBAAoBhB,4BAA4Bj/F,IAC/F59L,KAAK69R,oBAAoBd,4BAE7B/8R,KAAKC,SAAS4pE,IAElB9J,KAAM,WACF//D,KAAKC,WACLD,KAAK69R,oBAAsB79R,KAAKihE,cAAc,qBAGtDkxD,SAAU,CACNzE,aAAc,WACV,OAAO1tH,KAAKC,cAAgBD,KAAKq9R,2BAA2BX,wBAAwB9iS,QAExFq0H,qBAAsB,SAAS1gG,EAAci/C,GACzC,IAAI4xN,EAAqBp+R,KAAKq9R,2BAC1BgB,EAAmBD,EAAmB3B,mBACtC6B,EAAqBF,EAAmB/B,kBAAkBr8R,KAAKysE,mBAAmBhF,cACtF22N,EAAmBlD,qBAAqB3tQ,EAAci/C,EAAgB8xN,GACtE,IAAIrE,EAAgBmE,EAAmB3B,mBAMvC,OALI2B,EAAmBjC,gCACfkC,EAAiBzkS,SAAWqgS,EAAcrgS,QAC1CwkS,EAAmBlC,WAAWjC,IAEpCA,EAAcrgS,QAAUwkS,EAAmBrB,4BACtC/8R,KAAKC,SAASnB,MAAMkB,KAAME,YAErC+sH,mBAAoB,SAASN,GACzBA,GAAa3sH,KAAKq9R,2BAA2B/C,qBAC7Ct6R,KAAKC,SAAS0sH,IAElBU,aAAc,WACV,IAAI2qK,EAA4Bh4R,KAAKq9R,2BACrC,OAAOr9R,KAAKC,SAASnB,MAAMkB,KAAME,YAAc83R,EAA0B0E,wBAAwB9iS,QAAUo+R,EAA0BoD,oBAEzIr7N,KAAM,WACF//D,KAAKq9R,2BAA6Br9R,KAAKihE,cAAc,mBACrDjhE,KAAKC,YAETwhE,QAAS,WACLzhE,KAAKC,SAASnB,MAAMkB,KAAME,WAC1BupE,aAAazpE,KAAKu+R,8BAG1Bp4R,KAAM,CACF68F,cAAe,SAASt6E,EAAOkoC,GAC3B,IAAIogB,EAAapgB,EAAOogB,WAExB,GADAtoD,EAAQ1oB,KAAKC,SAASnB,MAAMkB,KAAME,WAC9B,eAAiB8wE,IAAe,eAAUhxE,KAAKm+R,sBAC/C,OAAOz1Q,EAEX,IAAI81Q,EAAiB,OAAc/1Q,cAAczoB,KAAKm+R,qBAAsBz1Q,GACxEulN,GAAU,IAAUjuO,KAAK+nB,OAAO,IACpC,GAAIy2Q,GAAkB,EAAG,CACrB,IAAIz3R,EAAO2hB,EAAM81Q,GACjB91Q,EAAM6qD,OAAOirN,EAAiB,EAAG,EAAG,CAChC70O,SAAS,EACTx4C,QAAS6lR,GACTl8R,IAAKiM,EAAKjM,IACVqL,KAAMY,EAAKZ,KACX+xG,KAAMnxG,EAAKmxG,KACX9S,eAAgBr+F,EAAKq+F,eACrBn5E,SAAUllB,EAAKklB,SACf6J,OAAQ/uB,EAAK+uB,aAEV,YAAck7C,GAAgBi9J,GAAWr9K,EAAOtI,qBACvDtoD,KAAKm+R,0BAAuB,GAEhC,OAAOz1Q,GAEXswH,wBAAyB,SAASl+I,GAC9B,IAAIipG,EAAa/jG,KAAKC,SAASnB,MAAMkB,KAAME,WAC3C,GAAIF,KAAKihE,cAAc,mBAAmB47N,4BAA4B/hS,GAAM,CACxE,IAAI2jS,EAAe16L,EAAWA,EAAWnqG,OAAS,GAClDmqG,EAAW9gG,KAAKw7R,EAAe,GAEnC,OAAO16L,GAEXg2L,oBAAqB,SAASl4R,GAC1B,IAAI,eAAUA,GAGV,OAAO7B,KAAKm+R,qBAFZn+R,KAAKm+R,qBAAuBt8R,GAKpCo2R,8BAA+B,SAASn9R,EAAK+gS,GACzC,IAAI6C,EAA0B,OAAcj2Q,cAAczoB,KAAKm+R,qBAAsBn+R,KAAKk7F,QACtFyjM,EAA0B,OAAcl2Q,cAAc3tB,EAAKkF,KAAKk7F,QAChEwjM,GAA2B,GAAKA,IAA4BC,IAA4B9C,IACxF/gS,OAAM,EACN6jS,GAA2B,GAE/B,IAAIC,EAAS5+R,KAAKm+R,qBAClBn+R,KAAKm+R,qBAAuBrjS,EACxB4jS,GAA2B,GAC3BA,IAEAC,GAA2B,GAC3BA,IAEJ,IAAI17L,EAAgBjjG,KAAK+iG,mBACzB/iG,KAAKmhG,YAAY,CACb8C,0BAA0B,EAC1BjzB,WAAY,SACZ+yB,WAAY,CAAC26L,EAA0Bz7L,EAAe07L,EAA0B17L,KAEpF,IAAI+0L,EAA4Bh4R,KAAKihE,cAAc,mBACnD+2N,EAA0BgF,+BAA+BliS,EAAK88R,IAC9DI,EAA0BgF,+BAA+B4B,EAAQjH,KAErE53N,KAAM,WACF//D,KAAKC,WACLD,KAAKm+R,0BAAuB,IAGpChtK,cAAe,CACXs4D,sBAAuB,WACnB,OAAOzpL,KAAKC,WAAa,qEAE7B6jO,qBAAsB,WAClB,OAAO9jO,KAAKC,WAAa,6BAA+BD,KAAK+mB,gBAAgB,MAGrFuG,QAAS,CACL2gE,iBAAkB,SAASn9E,GACvB,OAAO9Q,KAAKC,SAAS6Q,KAAYA,EAAO6rR,iBAGhDx3O,mBAAoB,CAChBm+N,aAAc,SAASp8M,GACnB,OAAOlnE,KAAKC,SAASnB,MAAMkB,KAAME,aAAegnE,EAAMZ,SAAStmE,KAAK+mB,gBAAgBowQ,OAA0BjwN,EAAMZ,SAASgxN,KAEjIvO,+BAAgC,SAASxF,GACrCvjR,KAAKC,SAASsjR,GACd,IAAIsb,EAAoB7+R,KAAKugM,mBAAmB03B,yBAC3Cj4N,KAAK+jR,kBAAkBR,IAAcA,GAAasb,GACnD,OAAax5R,GAAGk+Q,EAAW,SAAS,SAAUub,IAC1C,OAAav+N,IAAIgjN,EAAW,QAASub,GACrC,OAAahyQ,QAAQy2P,EAAW,eAI5CtD,gCAAiC,SAASF,EAAahmN,GACnD,IAAI96D,EAASe,KAAKC,SAAS8/Q,EAAahmN,GACpCmnN,EAAelhR,KAAKs7Q,kBACpB/uM,EAAO20M,GAAgBA,EAAahzP,SACxC,IAAKjvB,GAAUstE,GAAQA,EAAK3yE,OAAQ,CAChC,IAAImlS,EAAalH,GAAoBtrN,GACjCqsJ,EAAc,SAAW7+J,EAAYglO,EAAW73Q,OAAS63Q,EAAWtlN,QACpE5P,EAAW0C,EAAK7uE,IAAI,GAAGmsE,SACvBu0N,EAAqBp+R,KAAK69R,oBAC1B/iS,EAAMkF,KAAKonB,gBAAgByhF,iBAAiB,SAAW9uC,EAAY8P,EAAWA,EAAW,GACzFm1N,EAAuB9d,GAAgBtoD,GAAesoD,EAAaxjR,IAAI,KAAOk7N,EAAYl7N,IAAI,GAClG,OAAO0gS,EAAmBvB,4BAA4B/hS,IAAQkkS,EAElE,OAAO//R,GAEX8gE,KAAM,WACF//D,KAAKC,WACLD,KAAK69R,oBAAsB79R,KAAKihE,cAAc,wBC1hC3D,SAASg+N,GAAkBx5E,EAAMzgN,EAAU6kE,EAAUq1N,EAASrsM,EAAassM,GAC9Et1N,EAAWA,GAAY,EACvBq1N,EAAUA,GAAW,GACrBC,EAAuBA,GAAwB,GAC/CD,EAAQr1N,GAAYq1N,EAAQr1N,IAAa,EACzC,IAGI8rF,EAHA9kJ,EAAM40M,EAAK57I,GACX2sI,EAAa2oF,EAAqBt1N,GAAY,GAAK,EACnDu1N,EAAuB,EAE3B,GAAKvuR,EAAL,CAGA,IAAK8kJ,EAAW6gD,EAAY7gD,EAAW9kJ,EAAIjX,OAAQ+7J,IAAY,CAC3D,IAAItrF,EAAOx5D,EAAI8kJ,GACX9nG,EAAe8nG,EAAWupI,EAAQr1N,GAClC+B,EAAUvB,EAAKuB,SAAW,EAI9B,GAHAqzN,GAAkBx5E,EAAMzgN,EAAU6kE,GAAYQ,EAAKwT,SAAW,GAAIqhN,EAAStzN,EAASuzN,GACpFD,EAAQr1N,IAAa+B,EAAU,EAC/BwzN,GAAwBxzN,EACpBvB,EAAKwT,QACL,IAAK,IAAIpiF,EAAIouE,EAAW,EAAGpuE,EAAIouE,EAAWQ,EAAKwT,QAASpiF,IACpDyjS,EAAQzjS,GAAKyjS,EAAQzjS,IAAM,EAC3ByjS,EAAQzjS,IAAM4uE,EAAKuB,SAAW,EAGtC,IAAI,IAAU5mE,EAASqlE,EAAMxc,EAAcgc,EAAU8rF,GACjD,MAEJ,QAAI,IAAW9iE,GAAeusM,GAAwBvsM,EAClD,MAGRssM,EAAqBt1N,GAAY8rF,GAE9B,SAAS0pI,GAAkB55E,EAAMjP,EAAYC,GAChD,IAAI6oF,EAAU,GACdL,GAAkBx5E,GAAM,SAAU85E,EAAY1xO,EAAcgc,GACxD,IACI+B,EADAvB,EAAOk1N,EAEPC,EAAcn1N,EAAKuB,SAAW,EAC9BzkD,EAAY0mC,EAAe2xO,EAAc,GAAKhpF,GAAc3oJ,EAAe4oJ,EAE/E,GADA6oF,EAAQz1N,GAAYy1N,EAAQz1N,IAAa,GACrC1iD,EACI0mC,EAAe2oJ,GACf5qI,EAAU4zN,GAAehpF,EAAa3oJ,GACtCA,EAAe2oJ,GAEf5qI,EAAU4zN,EAEV3xO,EAAe+d,EAAU6qI,IACzB7qI,EAAU6qI,EAAW5oJ,GAErB+d,IAAY4zN,IACZn1N,EAAO,OAAA5vE,EAAA,WAAO,GAAI4vE,EAAM,CACpBuB,QAASA,KAGjB0zN,EAAQz1N,GAAU5mE,KAAKonE,QACpB,GAAIxc,EAAe4oJ,EACtB,OAAO,KAGf,IAAK,IAAIh7M,EAAI,EAAGA,EAAI6jS,EAAQ1lS,OAAQ6B,IAChC6jS,EAAQ7jS,GAAK6jS,EAAQ7jS,IAAM,GAE/B,OAAO6jS,EChEX,EAAS75N,eAAe,aAAc23N,ICStC,IAAIqC,GAAuB,GACvB,GAAmC,CACnCz8N,YAAa,WACThjE,KAAKC,SAASnB,MAAMkB,KAAME,WAC1BF,KAAKysE,mBAAmB1I,UAE5BypC,cAAe,SAAS5pG,GACpB,IAAID,EAAO3D,KACPksG,EAAalsG,KAAKotG,gBAClBzhF,EAAO/nB,EAAE+pG,aAAahiF,KAC1BhoB,EAAK1D,SAASnB,MAAM6E,EAAMzD,WACtByD,EAAKokB,OAAO,eAAiBmkF,IAC7BvgF,EAAO,eAASugF,EAAWtvB,YAAc,eAASsvB,EAAWlmF,YAAc2F,GAE/EhoB,EAAK8oE,mBAAmBizN,kBAAkB/zQ,KAG9Cg0Q,GAAqB,CACrB58N,YAAa,WACT/iE,KAAKC,SAASnB,MAAMkB,KAAME,WACtBF,KAAKysE,mBAAmBp+C,iBACxBruB,KAAK20E,8BAIbirN,GAA4B,WAC5B,IAAIC,EAAY,SAASvyQ,GACrB,OAAOA,EAAQxxB,IAAIgV,GAAUA,EAAO+6D,cAAgBtI,WAAWzyD,EAAOvJ,QAAUk4R,KAEhFlgM,EAAU,CACVx/B,KAAM,WACF,IAAIp8D,EAAO3D,KACX2D,EAAK1D,SAASnB,MAAMkB,KAAME,WAC1ByD,EAAKm8R,gBAAkB,KACvBn8R,EAAKo8R,cAAgB,KACrBp8R,EAAKomO,UAAY,EACjBpmO,EAAKq8R,uBAAyB,IAElC94M,kBAAmB,WACflnF,KAAKC,WACLD,KAAKggS,uBAAyB,IAElC16D,kBAAmB,SAAS9wK,GAIxB,IAHA,IAAIgY,EAAiBxsE,KAAK0sE,uBAAkB,GAAQ,GAChDkH,EAASisN,EAAUrzN,GACnByzN,EAAkB,EACb7+R,EAAQ,EAAGA,EAAQwyE,EAAOh6E,OAAQwH,IAAS,CAChD,GAAI6+R,GAAmBzrO,EACnB,OAAO7yC,KAAKI,MAAM3gB,EAAQpB,KAAKkgS,qBAEnCD,GAAmBrsN,EAAOxyE,GAE9B,OAAO,GAEX++R,cAAe,WACX,IAAI54R,EAAQvH,KAAK+nB,OAAO,SACxB,MAAI,kBAAoBxgB,EACbA,EAEJvH,KAAKihE,cAAc,YAAYyvD,YAAc,eAAc1wH,KAAK+M,UAAUiZ,aAErFw/M,gBAAiB,SAAShxK,GACtB,IAAIgY,EAAiBxsE,KAAK0sE,uBAAkB,GAAQ,GAChDkH,EAASisN,EAAUrzN,GACnByzN,EAAkB,EACtBzrO,GAAYx0D,KAAKmgS,gBACjB,IAAK,IAAI/+R,EAAQ,EAAGA,EAAQwyE,EAAOh6E,OAAQwH,IAAS,CAChD,GAAI6+R,GAAmBzrO,EACnB,OAAO7yC,KAAKw8E,KAAK/8F,EAAQpB,KAAKkgS,qBAElCD,GAAmBrsN,EAAOxyE,GAE9B,OAAOugB,KAAKw8E,KAAKvqB,EAAOh6E,OAASoG,KAAKkgS,sBAE1CA,kBAAmB,WACf,OAAOlgS,KAAK+nB,OAAO,6BAEvBq4Q,oBAAqB,WACjB,IAAI9mS,EAAO,IAAIS,KACfiG,KAAKu0E,eAAezQ,KAAK,CACrB6P,YAAa,CACT5vC,KAAK,EACLnqC,OAAQ,GAEZy3E,YAAa,CACT/jD,SAAS,EACTq0E,yBAAyB,EACzB/nG,OAAQ,KAGhBoG,KAAK8tO,YAAc,IAAI/zO,KAAOT,GAElCmxO,oBAAqB,WACjB,IAAIkH,EAAqB3xO,KAAK+nB,OAAO,sCACjCsgC,EAAcroD,KAAK+nB,OAAO,yBAC1B2iN,EAAmB,EAIvB,QAHK,eAAUriL,IAAgBroD,KAAK8tO,YAAc6D,GAAsBtpL,KACpEqiL,EAAmB1qO,KAAK+nB,OAAO,sBAE5B2iN,GAEXg1D,kBAAmB,SAASlrO,GACxB,IAAIk2K,EAAmB1qO,KAAKyqO,sBACxBC,EAAmB,GACnBjhK,aAAazpE,KAAKqgS,iBAClBrgS,KAAKqgS,gBAAkBptR,WAAW,KAC9BjT,KAAKsgS,uBAAuB9rO,IAC7Bk2K,IAEH1qO,KAAKsgS,uBAAuB9rO,IAGpCnmC,cAAe,WACX,OAAO,kBAAe,YAAcruB,KAAK+nB,OAAO,kCAEpDg8C,OAAQ,WACJ/jE,KAAKsgS,uBAAuBtgS,KAAK+pO,YAErCu2D,uBAAwB,SAAS9rO,GAC7B,GAAIx0D,KAAKquB,gBAAiB,CACtB,IAAImjH,EAAiBxxI,KAAKslO,kBAAkB9wK,GACxCuzK,EAAe/nO,KAAKwlO,gBAAgBhxK,GACpC+rO,EAAqB/rO,EAAWx0D,KAAK+pO,UAAY/pO,KAAK8/R,gBAAkBtuJ,EAAiBxxI,KAAK+/R,cAAgBh4D,EAClH/nO,KAAK+pO,UAAYv1K,EACb+rO,IACAvgS,KAAK8/R,gBAAkBtuJ,EACvBxxI,KAAK+/R,cAAgBh4D,EACrB/nO,KAAKogS,yBAIjBlzM,gBAAiB,SAASrjB,EAAU0+J,GAChC,IAAIvF,EAAehjO,KAAKC,SAAS4pE,GACjC,GAAI7pE,KAAKquB,kBAAoBk6M,GAAUvF,EAAappO,OAAQ,CACxD,IAAI0zF,EAAyB01I,EAAalnO,IAAI8/B,GAAKA,EAAEjO,SAASrvB,QAAQ,eAEtE,OADA0kO,EAAa11I,GAAwB1hB,QAAU5rE,KAAK0sE,oBAAoB9yE,OAASoG,KAAKC,WAAWrG,OAAS,EACnGopO,EAEX,OAAOA,GAEXh2I,uBAAwB,SAASnjB,EAAU0+J,GACvC,IAAIi4D,EACJ,GAAIj4D,IAAWvoO,KAAKquB,kBAAoBruB,KAAK+sF,8BACzC,OAAO/sF,KAAKC,SAAS4pE,GAErB,QAAU22N,EAAiBxgS,KAAKykF,gBAAa,IAAW+7M,IAAkBA,EAAe5mS,QAAW,eAAUoG,KAAK8/R,kBAAqB,eAAU9/R,KAAK+/R,iBACvJ//R,KAAK8/R,gBAAkB9/R,KAAKslO,kBAAkBtlO,KAAK+pO,WACnD/pO,KAAK+/R,cAAgB//R,KAAKwlO,gBAAgBxlO,KAAK+pO,YAEnD,IAAIv4F,EAAiBxxI,KAAK8/R,gBACtB/3D,EAAe/nO,KAAK+/R,cACpBU,EAAqB52N,EAAW,IAAM2nE,EAAiB,IAAMu2F,EACjE,GAAI/nO,KAAKggS,uBAAuBS,GAC5B,OAAOzgS,KAAKggS,uBAAuBS,GAEvC,IAAIj0N,EAAiBxsE,KAAKC,WACtB69E,EAAW99E,KAAK09E,cAChBliB,EAAWx7D,KAAKkgS,oBAChB1pF,EAAahlE,EAAiBh2E,EAC9Bi7I,EAAWsxB,EAAevsK,EAC1BwnK,EAAehjO,KAAKktF,qBAAgB,GAAQ,GAC5CI,EAAyB01I,EAAalnO,IAAI8/B,GAAKA,EAAEjO,SAASrvB,QAAQ,eAClEoiS,EAAwB19D,EAAappO,OAAS0zF,EAAyB,EACvEqzM,EAAoBn0N,EAAenpD,MAAM,EAAGq9Q,GAC5CE,EAAep0N,EAAenpD,MAAMq9Q,EAAuBlqF,GAC3DqqF,EAAahB,EAAUe,GAAc7pQ,OAAO,CAACh1B,EAAGC,IAAMD,EAAIC,EAAG,GAC5D6+R,IACDrqF,EAAa,GAEjB,IAAIsqF,EAAsB99D,EAAappO,OAASopO,EAAappO,OAAS0zF,EAAyB,EAAI,EAC/FyzM,EAAkBv0N,EAAenpD,MAAMmpD,EAAe5yE,OAASknS,GAC/DE,EAAax0N,EAAenpD,MAAMozL,EAAUjqI,EAAe5yE,OAASknS,GACpEG,EAAWpB,EAAUmB,GAAYjqQ,OAAO,CAACh1B,EAAGC,IAAMD,EAAIC,EAAG,GAI7D,GAHKi/R,IACDxqF,EAAWjqI,EAAe5yE,QAE1BkkF,EAAW,GAAK,kBAAoBjU,EAAU,CAE9C,IADA,IAAIq3N,EAAc,GACTzlS,EAAI,EAAGA,EAAIqiF,EAAUriF,IAC1BylS,EAAYj+R,KAAKjD,KAAKC,SAASxE,IAEnCklS,EAAoBtB,GAAkB6B,EAAa,EAAGP,EAAkB/mS,QAAQiwE,IAAa,GAC7Fk3N,EAAkB1B,GAAkB6B,EAAa10N,EAAe5yE,OAASmnS,EAAgBnnS,OAAQ4yE,EAAe5yE,QAAQiwE,IAAa,GACrI2C,EAAiB6yN,GAAkB6B,EAAa1qF,EAAYC,GAAU5sI,IAAa,QAEnF2C,EAAiBA,EAAenpD,MAAMmzL,EAAYC,GAiBtD,OAfIoqF,IACAr0N,EAAeh7C,QAAQ,CACnB7D,QAAS,UACTpmB,MAAOs5R,IAEXr0N,EAAiBm0N,EAAkB9uR,OAAO26D,IAE1Cy0N,IACAz0N,EAAevpE,KAAK,CAChB0qB,QAAS,UACTpmB,MAAO05R,IAEXz0N,EAAiBA,EAAe36D,OAAOkvR,IAE3C/gS,KAAKggS,uBAAuBS,GAAsBj0N,EAC3CA,GAEXgG,qBAAsB,WAClB,IAAIpnD,EAAS,EACb,GAAIprB,KAAK8/R,gBAAkB,EAAG,CAC1B,IAAI98D,EAAehjO,KAAKktF,kBACpBI,EAAyB01I,EAAalnO,IAAI8/B,GAAKA,EAAEjO,SAASrvB,QAAQ,eAClE6iS,EAAuB7zM,GAA0B,EAAIA,EAAyB,EAClFliE,EAASprB,KAAK8/R,gBAAkB9/R,KAAKkgS,oBAAsBiB,EAAuB,EAEtF,OAAO/1Q,EAAS,EAAIA,EAAS,GAEjCq2C,QAAS,WACLgI,aAAazpE,KAAKqgS,iBAClBrgS,KAAKC,SAASnB,MAAMkB,KAAME,aAGlC,OAAOq/F,EAlMqB,GAoMrB6hM,GAAuB,CAC9BzjS,eAAgB,WACZ,MAAO,CACH+qD,UAAW,CACPqU,oBAAqB,WACrBskO,eAAgB,EAChBC,yBAA0B,OAItCr8N,UAAW,CACPJ,YAAa,CACTv3C,QAASsyQ,IAEb76N,MAAO,CACH+W,kBAAmB6jN,GACnBzzQ,SAAU,MCtPtB,SAASq1Q,GAAa74Q,EAAO84Q,GACzB,IAAIC,EAAgB5/R,GAAUA,GAAQ,EAClCq1I,EAAc,GACd06D,GAAQlpL,EAAM,IAAM,IAAIqO,OAAO,CAACkoC,EAAKl4D,IAASk4D,EAAMwiO,EAAc16R,EAAK6kE,SAAU,GACjFlgE,EAAU,CAACgd,IACX,IAAImhD,EAAW,EACX8I,EAAY,EAChB,MAAO,KACH,IAAI9hE,EAAM6X,EAAMmhD,IAAa,GACzB9iE,EAAO8J,EAAI8hE,KASf,OARIA,GAAa9hE,EAAIjX,SACjBiwE,IACA8I,EAAY,GAEZ5rE,IACAA,EAAK6kE,QAAU61N,EAAc16R,EAAK6kE,SAClC7kE,EAAK82E,QAAU4jN,EAAc16R,EAAK82E,UAE/B92E,IAdD,CAgBX2hB,GACCg5Q,EAAU,CAAC73N,EAAU8I,EAAW5rE,KAChC,IAAI8J,EAAMqmI,EAAYrtE,GAAYqtE,EAAYrtE,IAAa,GAE3D,GADAh5D,EAAI8hE,GAAa5rE,EACbA,EAAK6kE,QAAU,GAAK7kE,EAAK82E,QAAU,EAAG,CAEtC,IADA,IAAI96C,EAAQ,CAACh8B,GAAQ,OAAAtM,EAAA,WAAO,GAAIsM,EAAMy6R,GAA1B,CAAsCz6R,GACzC60B,EAAI,EAAGA,EAAI70B,EAAK6kE,QAAShwC,IAC9B8lQ,EAAQ73N,EAAU8I,EAAY/2C,EAAGmH,GAErC,IAAK,IAAI1H,EAAI,EAAGA,EAAIt0B,EAAK82E,QAASxiD,IAC9B,IAAK,IAAI92B,EAAK,EAAGA,EAAKwC,EAAK6kE,QAASrnE,IAChCm9R,EAAQ73N,EAAWxuC,EAAGs3C,EAAYpuE,EAAIw+B,KAKlDh8B,EAAO2E,IACPm+D,EAAW,EACf,MAAO9iE,EAAM,CACT,IAAK,IAAI4rE,EAAY,EAAGA,EAAYi/H,EAAMj/H,IAAa,CACnD,IAAK5rE,EACD,MAEAmwI,EAAYrtE,IAAaqtE,EAAYrtE,GAAU8I,KAGnD+uN,EAAQ73N,EAAU8I,EAAW5rE,GAC7B4rE,GAAa5rE,EAAK6kE,QAAU,EAC5B7kE,EAAO2E,KAEXm+D,IAEJ,OAAOqtE,ECpDX,EAASzxE,eAAe,iBAAkB27N,ICW1C,IAAI,GAAS,iBACT,GAAY,iBACZO,GAAiB,CACjBC,MAAO,OACPC,IAAK,MACLC,IAAK,MACLC,KAAM,OACNC,IAAK,MACLC,IAAK,MACLC,IAAK,OAEEC,GAAa,CACpBN,IAAK,WACLD,MAAO,oEACPE,IAAK,YACLC,KAAM,aACNC,IAAK,YACLC,IAAK,gBACLC,IAAK,mBAEEE,GAAY,CACnBC,wBAAyB,IACzBC,YAAa,SAASjpS,EAAQ8M,GAC1B,IAAIw/B,EAAW3lC,KAAKuiS,aAAalpS,GACjC,MAAO,QAAQwY,OAAO8zB,EAAU,YAAY9zB,OAAO1L,IAEvDo8R,aAAc,SAASlpS,GACnB,OAAO8oS,GAAW9oS,IAAW,4BAEjCmpS,gBAAiB,SAASr1P,EAAUs1P,GAChC,IAAIC,EAAoB,aAAW3zP,cAAc,KAIjD,OAHA2zP,EAAkBC,SAAWx1P,EAC7Bu1P,EAAkBD,KAAOA,EACzBC,EAAkBp9Q,OAAS,SACpBo9Q,GAEXE,gBAAiB,SAAS7wO,EAAU5kB,EAAU01P,EAAa18R,GACvD,IAAI28R,EAAiB,CACjBhyP,OAAQ,OACRswB,OAAQrP,EACRgxO,QAAS,uBAETC,EAAa,eAAE,UAAUv3Q,IAAI,CAC7BkqD,QAAS,SACV3U,KAAK8hO,GAER,SAASG,EAAcp8Q,EAAS6jD,GAC5B,IAAK,IAAI5vE,KAAO4vE,EACZ7jD,EAAQk6C,aAAajmE,EAAK4vE,EAAW5vE,IAEzC,OAAO+rB,EAEXm8Q,EAAWp5P,OAAOq5P,EAAc,aAAWl0P,cAAc,SAAU,CAC/DtwC,KAAM,SACNmD,KAAM,WACNC,MAAOsrC,KAEX61P,EAAWp5P,OAAOq5P,EAAc,aAAWl0P,cAAc,SAAU,CAC/DtwC,KAAM,SACNmD,KAAM,cACNC,MAAOghS,KAEXG,EAAWp5P,OAAOq5P,EAAc,aAAWl0P,cAAc,SAAU,CAC/DtwC,KAAM,SACNmD,KAAM,OACNC,MAAOsE,KAEX68R,EAAWz7Q,SAAS,QACpB,OAAauF,QAAQk2Q,EAAY,UAC7B,OAAal2Q,QAAQk2Q,EAAY,WACjCA,EAAWl7Q,UAGnBo7Q,aAAc,SAASnxO,EAAU5kB,EAAU9zC,EAAQ8M,GAC/C,IAAI08R,EAAc7iS,KAAKuiS,aAAalpS,GACpC,OAAO2G,KAAK4iS,gBAAgB7wO,EAAU5kB,EAAU01P,EAAa18R,IAEjEg9R,eAAgB,SAAS75P,EAAM6D,EAAU9zC,GACrC,IAAI+pS,EAAa,IAAIC,QAAQC,QAAQC,QAAQC,eAC7CJ,EAAWK,uBAAyBJ,QAAQC,QAAQC,QAAQG,iBAAiBC,iBAC7E,IAAIC,EAAgBjC,GAAetoS,GACnC,GAAIuqS,EAAe,CACf,IAAIj+P,EAAW3lC,KAAKuiS,aAAalpS,GACjC+pS,EAAWS,gBAAgBpsP,OAAO9R,EAAU,CAAC,IAAMi+P,IAEvDR,EAAWU,kBAAoB32P,EAC/Bi2P,EAAWW,oBAAoBzyR,MAAK,SAAUguB,GACtCA,GACAA,EAAK0kQ,UAAUX,QAAQC,QAAQW,eAAeC,WAAW5yR,MAAK,SAAU6yR,GACpE,IAAIC,EAAc96P,EAAK+6P,iBACvBhB,QAAQC,QAAQgB,QAAQC,mBAAmBC,UAAUJ,EAAaD,GAAc7yR,MAAK,WACjF6yR,EAAaM,aAAat3Q,MAAK,WAC3Bi3Q,EAAYxrK,QACZurK,EAAavrK,qBAOrC8rK,OAAQ,SAASC,GACb,IACIA,EAAKC,cAAc,IAAIC,WAAW,QAAS,CACvCC,YAAY,KAElB,MAAOlhS,GACL,IAAI09D,EAAQ,aAAW2N,cAAc81N,YAAY,eACjDzjO,EAAM0jO,eAAe,SAAS,GAAM,EAAM,GAAQ,EAAG,EAAG,EAAG,GAAI,IAAI,GAAO,GAAO,GAAO,EAAO,EAAG,MAClGL,EAAKC,cAActjO,KAG3B2jO,YAAa,SAAS93P,EAAU9zC,EAAQ8M,GAEpC,GADAnG,KAAKklS,YAAa,EACd,eAAU,GAAUC,kBACpB,GAAUA,iBAAiBh/R,EAAMgnC,GACjCntC,KAAKklS,YAAa,OACf,GAAI,eAAU,GAAOE,OACxBplS,KAAKmjS,eAAeh9R,EAAMgnC,EAAU9zC,GACpC2G,KAAKklS,YAAa,MACf,CACH,IAAIG,EAAM,GAAOA,KAAO,GAAOC,WAAa,GAAOC,QAAU,GAAOC,OAAS,GAAOC,KACpF,GAAI,eAAUJ,GAAM,CAChB,IAAIK,EAAYL,EAAIM,gBAAgBx/R,GAChCy/R,EAAe5lS,KAAKwiS,gBAAgBr1P,EAAUu4P,GAClDzyR,WAAW,KACPoyR,EAAIQ,gBAAgBH,GACpB1lS,KAAK8lS,mBAAoB,GAC1B9lS,KAAKqiS,yBACRriS,KAAK0kS,OAAOkB,QAEZ,OAAO3tQ,KAAK,mGAIxBxlB,OAAQ,SAAS06B,EAAU9zC,EAAQ8M,EAAM4/R,EAAUC,GAC/C,IAAIpC,EAAgBjC,GAAetoS,GAOnC,GANIuqS,IACAz2P,GAAY,IAAMy2P,GAElB,eAAUmC,IACV,OAAOjiS,IAAI,QAAS,SAAU,WAAY,OAAQ,qCAElDkiS,EACAhmS,KAAKkjS,aAAa6C,EAAU54P,EAAU9zC,EAAQ8M,QAC3C,GAAI,eAAW,GAAOuM,MACzB1S,KAAKilS,YAAY93P,EAAU9zC,EAAQ8M,QAChC,GAAI,eAAU4/R,KAAc,eAAU,GAAUE,UAAU5zQ,MAAM,UACnEryB,KAAKkjS,aAAa6C,EAAU54P,EAAU9zC,EAAQ8M,OAC3C,CACE,eAAU,GAAU8/R,UAAU5zQ,MAAM,WACrC,OAAOvuB,IAAI,SAEf,IAAI8hS,EAAe5lS,KAAKwiS,gBAAgBr1P,EAAUntC,KAAKsiS,YAAYjpS,EAAQ8M,IAC3EnG,KAAK0kS,OAAOkB,M,qCCxJpBM,I,UAAmB,MACnBC,GAA0B,CAC1BC,UAAW,yBACXC,SAAU,0BACVC,SAAU,2BACVC,UAAW,4BACXhlQ,QAAS,QACTilQ,QAAS,OACTC,WAAY,WACZC,YAAa,WACbzuO,SAAU,KAEV0uO,GAAgB,MAChBC,GAAa,KACbC,GAAY,OACZC,GAA0B,KAC1BC,GAAc,KACdC,GAAa,KACbC,GAAuB,CACvBC,gBAAiB,SAAS7tS,EAAQ6+D,GAC9B,IAAIj5D,EACAxD,EACJ,GAAIy8D,EAAY,EAAG,CAEf,IADAj5D,EAAS,YAAc5F,EAAS,IAAM,GACjCoC,EAAI,EAAGA,EAAIy8D,EAAWz8D,IACvBwD,GAAU,IAEd,OAAOA,EAEX,MAAO,IAEXkoS,iBAAkB,SAAS5qS,GAEvB,IADA,IAAIo0B,EACKl1B,EAAI,EAAGA,EAAIc,EAAK3C,OAAQ6B,IAE7B,GADAk1B,EAAOp0B,EAAKq0B,WAAWn1B,GACnBk1B,GAAQu1Q,IAAoBv1Q,EAAOu1Q,GAAmB,GACtD,OAAO,EAGf,OAAO,GAEXkB,4BAA6B,SAAS/tS,GAClC,OAAOA,EAAOwC,MAAM,KAAKG,KAAK,OAAOH,MAAM,KAAKC,KAAI,SAAUuF,EAAUD,GACpE,OAAIA,EAAQ,IAAM,EACPC,EAASlG,QAAQwrS,GAAe,SAASxrS,QAAQ0rS,GAAW,KAAK1rS,QAAQyrS,GAAY,KAAKzrS,QAAQ2rS,GAAyB,KAAK3rS,QAAQ4rS,GAAa,KAAKlrS,MAAM,KAAKG,KAAK,OAAOH,MAAM,KAAKG,KAAK,OAExMqF,EACOA,EAASlG,QAAQ6rS,GAAY,QAEjC,OACPhrS,KAAK,KAEbqrS,mBAAoB,SAAShuS,GACzB,IAAI06F,GAAkB,QAAiB16F,OAAO,IAAIU,KAAK,KAAM,EAAG,EAAG,EAAG,EAAG,GAAIV,IAAW,IAAIooB,WACxFxiB,EAAS,gBAAU4C,GAAS,QAAiBxI,OAAOwI,EAAOxI,IAK/D,OAJI4F,IACAA,EAASe,KAAKonS,4BAA4BnoS,GAC1CA,EAASe,KAAKsnS,iBAAiBvzM,GAAkB90F,GAE9CA,GAEXqoS,iBAAkB,SAASl2Q,GACvB,IAAIm2Q,EAAa,kBACbC,EAAgBD,EAAaA,EAAW9lR,SAAS,IAAM,GACvDgmR,EAAe,GACnB,GAAIznS,KAAKmnS,iBAAiB/1Q,GAAiB,CACvC,MAAOo2Q,EAAc5tS,OAAS,EAC1B4tS,EAAgB,IAAMA,EAE1BC,EAAe,UAAYD,EAAgB,SACpCA,IACPC,EAAe,MAAQD,EAAgB,KAE3C,OAAOC,GAEXC,qBAAsB,SAASruS,EAAQ6+D,EAAWD,GAC9C,IAAIh5D,EACA0oS,EASJ,OAPIA,EADA,aAAetuS,EACD,QAAgBuuS,yBAAyB3vO,GAEzCkuO,GAAwB9sS,EAAOyE,eAE7C6pS,IACA1oS,EAAS,OAAAiqC,GAAA,MAAay+P,EAAa3nS,KAAKknS,gBAAgB7tS,EAAQ6+D,KAE7Dj5D,GAEX4oS,cAAe,SAASxuS,EAAQ6+D,EAAWz5D,EAAMw5D,GAC7C,GAAI,eAAU5+D,GAAS,CACnB,GAAI,SAAWoF,EACX,OAAOwoS,GAAqBI,mBAAmBhuS,GAC5C,GAAI,eAASA,IAAW8sS,GAAwB9sS,EAAOyE,eAC1D,OAAOmpS,GAAqBS,qBAAqBruS,EAAQ6+D,EAAWD,MAKrE,MC/GX6vO,GAAY,CACZC,MAAO,SAAS/7N,EAAStB,EAAYzB,GACjC,IAAIhqE,EAAS,CAAC,IAAK+sE,GACnB,IAAK,IAAIg8N,KAAiBt9N,EAAY,CAClC,IAAIu9N,EAAiBv9N,EAAWs9N,GAC5B,eAAUC,IACVhpS,EAAOgE,KAAK,IAAK+kS,EAAe,KAAMC,EAAgB,KAQ9D,OALI,eAAUh/N,IAAY,KAAOA,EAC7BhqE,EAAOgE,KAAK,IAAKgmE,EAAS,KAAM+C,EAAS,KAEzC/sE,EAAOgE,KAAK,OAEThE,EAAOjD,KAAK,MAGZ,MChBXksS,GAAsB,CACtBC,aAAc,SAASC,GACnB,IAAInpS,EAAS,KAWb,OAVI,eAAUmpS,KACVnpS,EAAS,CACLopS,SAAUD,EAAUC,SACpBC,SAAUF,EAAUE,SACpBt2R,WAAYo2R,EAAUp2R,YAEtBk2R,GAAoB7gR,QAAQpoB,KAC5BA,EAAS,OAGVA,GAEXspS,KAAM,SAASxpP,GACX,IAAI9/C,EAAS,KAab,OAZI,eAAU8/C,KACV9/C,EAAS,QACL,IAAW8/C,EAAO/sC,aAClB/S,EAAO+S,WAAa+sC,EAAO/sC,iBAE3B,IAAW+sC,EAAOspP,WAClBppS,EAAOopS,SAAWtpP,EAAOspP,eAEzB,IAAWtpP,EAAOupP,WAClBrpS,EAAOqpS,SAAWvpP,EAAOupP,WAG1BrpS,GAEXupS,SAAU,SAASC,EAASC,GACxB,OAAOR,GAAoB7gR,QAAQohR,IAAYP,GAAoB7gR,QAAQqhR,IAAa,eAAUD,IAAY,eAAUC,IAAaD,EAAQJ,WAAaK,EAASL,UAAYI,EAAQH,WAAaI,EAASJ,UAAYG,EAAQz2R,aAAe02R,EAAS12R,YAE7PqV,QAAS,SAASshR,GACd,OAAQ,eAAUA,KAAS,eAAUA,EAAIN,YAAc,eAAUM,EAAIL,YAAc,eAAUK,EAAI32R,aAErG+1R,MAAO,SAASY,GACZ,OAAO,GAAUZ,MAAM,YAAa,CAChCM,SAAUM,EAAIN,SACdC,SAAU,eAAUK,EAAIL,UAAY/jR,OAAOokR,EAAIL,eAAY,EAC3Dt2R,WAAY22R,EAAI32R,eAIb,MC7CX42R,GAAc,CACdC,iBAAkB,SAAS9pP,GACvB,GAAI,kBAAoBA,EACpB,OAAOA,EAEX,IAAI9/C,EACJ,GAAI8/C,EAAOnlD,OAAS,GAAK,MAAQmlD,EAAO,GAAI,CACxC,IAAI+pP,EAAY/pP,EAAOx8B,OAAO,EAAGw8B,EAAOnlD,QAEpCqF,EADA,IAAM6pS,EAAUlvS,OACP,KAAOkvS,EACT,IAAMA,EAAUlvS,OACdkvS,EAAU,GAAKA,EAAU,GAAKA,EAAUvmR,OAAO,EAAG,GAElDumR,OAGb7pS,EAAS8/C,EAEb,OAAO9/C,GAEXkpS,aAAc,SAASC,GACnB,IAAInpS,EAAS,KAgBb,OAfI,eAAUmpS,KAENnpS,EADA,kBAAoBmpS,EACX,CACLW,IAAK/oS,KAAK6oS,iBAAiBT,IAGtB,CACLW,IAAK/oS,KAAK6oS,iBAAiBT,EAAUW,KACrCC,MAAOZ,EAAUY,OAGrBJ,GAAYvhR,QAAQpoB,KACpBA,EAAS,OAGVA,GAEXspS,KAAM,SAASxpP,GACX,IAAI9/C,EAAS,KAcb,OAbI,eAAU8/C,KACN,kBAAoBA,EACpB9/C,EAAS8/C,GAET9/C,EAAS,QACL,IAAW8/C,EAAOgqP,MAClB9pS,EAAO8pS,IAAMhqP,EAAOgqP,UAEpB,IAAWhqP,EAAOiqP,QAClB/pS,EAAO+pS,MAAQjqP,EAAOiqP,SAI3B/pS,GAEXooB,QAAS,SAASshR,GACd,OAAQ,eAAUA,KAAS,eAAUA,EAAII,OAAS,eAAUJ,EAAIK,QAEpER,SAAU,SAASC,EAASC,GACxB,OAAOE,GAAYvhR,QAAQohR,IAAYG,GAAYvhR,QAAQqhR,IAAa,eAAUD,IAAY,eAAUC,IAAaD,EAAQM,MAAQL,EAASK,KAAON,EAAQO,QAAUN,EAASM,OAEpLjB,MAAO,SAAS/7N,EAAS28N,GACrB,OAAO,GAAUZ,MAAM/7N,EAAS,CAC5B+8N,IAAKJ,EAAII,IACTC,MAAOL,EAAIK,UAIR,MCpEXC,GAAoB,CACpBd,aAAc,SAASC,GACnB,IAAInpS,EAAS,KAWb,OAVI,eAAUmpS,KACVnpS,EAAS,CACLiqS,YAAad,EAAUc,YACvBC,gBAAiB,GAAYhB,aAAaC,EAAUe,iBACpDC,gBAAiB,GAAYjB,aAAaC,EAAUgB,kBAEpDH,GAAkB5hR,QAAQpoB,KAC1BA,EAAS,OAGVA,GAEXspS,KAAM,SAASxpP,GACX,IAAI9/C,EAAS,KAab,OAZI,eAAU8/C,KACV9/C,EAAS,QACL,IAAW8/C,EAAOmqP,cAClBjqS,EAAOiqS,YAAcnqP,EAAOmqP,kBAE5B,IAAWnqP,EAAOoqP,kBAClBlqS,EAAOkqS,gBAAkB,GAAYZ,KAAKxpP,EAAOoqP,uBAEjD,IAAWpqP,EAAOqqP,kBAClBnqS,EAAOmqS,gBAAkB,GAAYb,KAAKxpP,EAAOqqP,mBAGlDnqS,GAEXupS,SAAU,SAASC,EAASC,GACxB,OAAOO,GAAkB5hR,QAAQohR,IAAYQ,GAAkB5hR,QAAQqhR,IAAa,eAAUD,IAAY,eAAUC,IAAaD,EAAQS,cAAgBR,EAASQ,aAAe,GAAYV,SAASC,EAAQU,gBAAiBT,EAASS,kBAAoB,GAAYX,SAASC,EAAQW,gBAAiBV,EAASU,kBAEvT/hR,QAAS,SAASshR,GACd,OAAQ,eAAUA,KAAS,eAAUA,EAAIO,cAE7CnB,MAAO,SAASY,GACZ,IAAI1/N,EAAU,CAAC,eAAU0/N,EAAIS,iBAAmB,GAAYrB,MAAM,UAAWY,EAAIS,iBAAmB,GAAI,eAAUT,EAAIQ,iBAAmB,GAAYpB,MAAM,UAAWY,EAAIQ,iBAAmB,IAAIntS,KAAK,IACtM,OAAO,GAAU+rS,MAAM,cAAe,CAClCmB,YAAaP,EAAIO,aAClBjgO,KAGI,MC5CXogO,GAAa,CACblB,aAAc,SAASC,GACnB,IAAInpS,EAAS,KASb,OARI,eAAUmpS,KACVnpS,EAAS,CACLqqS,YAAa,GAAkBnB,aAAaC,EAAUkB,cAEtDD,GAAWhiR,QAAQpoB,KACnBA,EAAS,OAGVA,GAEXsqS,8BAA+B,WAC3B,IACIJ,gBAAiBA,EACjBK,gBAAiBA,EACjBC,iBAAkBA,GAClBvpS,UAAUtG,OAAS,QAAK,IAAWsG,UAAU,GAAKA,UAAU,GAAK,GACrE,OAAI,eAAUipS,IAAsB,eAAUK,IAAoB,eAAUC,GASjE,eAAUD,IAAoB,eAAUC,GACxC,CACHH,YAAa,CACTJ,YAAaM,EACbJ,gBAAiB,CACbL,IAAKU,GAETN,gBAAiB,CACbJ,IAAKI,UARd,EARI,CACHG,YAAa,CACTJ,YAAa,QACbE,gBAAiB,CACbL,IAAKI,MAkBzBO,iBAAkB,SAAS3qP,EAAQz5B,QAC3B,IAAWy5B,EAAOoqP,kBAClB7jR,EAAO6jR,gBAAkBpqP,EAAOoqP,sBAEhC,IAAWpqP,EAAOyqP,kBAClBlkR,EAAOkkR,gBAAkBzqP,EAAOyqP,sBAEhC,IAAWzqP,EAAO0qP,mBAClBnkR,EAAOmkR,iBAAmB1qP,EAAO0qP,mBAGzClB,KAAM,SAASxpP,GACX,IAAI9/C,EAAS,KAOb,OANI,eAAU8/C,KACV9/C,EAAS,QACL,IAAW8/C,EAAOuqP,cAClBrqS,EAAOqqS,YAAc,GAAkBf,KAAKxpP,EAAOuqP,eAGpDrqS,GAEXupS,SAAU,SAASC,EAASC,GACxB,OAAOW,GAAWhiR,QAAQohR,IAAYY,GAAWhiR,QAAQqhR,IAAa,eAAUD,IAAY,eAAUC,IAAa,GAAkBF,SAASC,EAAQa,YAAaZ,EAASY,cAEhLjiR,QAAS,SAASshR,GACd,OAAQ,eAAUA,IAAQ,GAAkBthR,QAAQshR,EAAIW,cAE5DvB,MAAO,SAASY,GACZ,OAAO,GAAUZ,MAAM,OAAQ,GAAI,GAAkBA,MAAMY,EAAIW,gBAGxD,MCzEXK,GAAa,CACbxB,aAAc,SAASC,GACnB,IAAInpS,EAAS,KAgBb,OAfI,eAAUmpS,KACVnpS,EAAS,CACL8S,KAAMq2R,EAAUr2R,KAChBnQ,KAAMwmS,EAAUxmS,KAChBgoS,OAAQxB,EAAUwB,OAClBC,OAAQzB,EAAUyB,OAClBC,KAAM1B,EAAU0B,KAChBz3R,OAAQ+1R,EAAU/1R,OAClB03R,UAAW3B,EAAU2B,UACrB53R,MAAO,GAAYg2R,aAAaC,EAAUj2R,QAE1Cw3R,GAAWtiR,QAAQpoB,KACnBA,EAAS,OAGVA,GAEXspS,KAAM,SAASxpP,GACX,IAAI9/C,EAAS,KA4Bb,OA3BI,eAAU8/C,KACV9/C,EAAS,QACL,IAAW8/C,EAAOhtC,OAClB9S,EAAO8S,KAAOgtC,EAAOhtC,WAErB,IAAWgtC,EAAOn9C,OAClB3C,EAAO2C,KAAOm9C,EAAOn9C,WAErB,IAAWm9C,EAAO6qP,SAClB3qS,EAAO2qS,OAAS7qP,EAAO6qP,aAEvB,IAAW7qP,EAAO8qP,SAClB5qS,EAAO4qS,OAAS9qP,EAAO8qP,aAEvB,IAAW9qP,EAAO+qP,OAClB7qS,EAAO6qS,KAAO/qP,EAAO+qP,WAErB,IAAW/qP,EAAO1sC,SAClBpT,EAAOoT,OAAS0sC,EAAO1sC,aAEvB,IAAW0sC,EAAOgrP,YAClB9qS,EAAO8qS,UAAYhrP,EAAOgrP,gBAE1B,IAAWhrP,EAAO5sC,QAClBlT,EAAOkT,MAAQ,GAAYo2R,KAAKxpP,EAAO5sC,SAGxClT,GAEXupS,SAAU,SAASC,EAASC,GACxB,OAAOiB,GAAWtiR,QAAQohR,IAAYkB,GAAWtiR,QAAQqhR,IAAa,eAAUD,IAAY,eAAUC,IAAaD,EAAQ12R,OAAS22R,EAAS32R,MAAQ02R,EAAQ7mS,OAAS8mS,EAAS9mS,MAAQ6mS,EAAQmB,SAAWlB,EAASkB,QAAUnB,EAAQoB,SAAWnB,EAASmB,SAAWpB,EAAQqB,OAASpB,EAASoB,OAASrB,EAAQqB,QAAUpB,EAASoB,QAAUrB,EAAQp2R,SAAWq2R,EAASr2R,SAAWo2R,EAAQp2R,UAAYq2R,EAASr2R,SAAWo2R,EAAQsB,YAAcrB,EAASqB,WAAa,GAAYvB,SAASC,EAAQt2R,MAAOu2R,EAASv2R,QAExfkV,QAAS,SAASshR,GACd,OAAQ,eAAUA,KAAS,eAAUA,EAAI52R,QAAU,eAAU42R,EAAI/mS,QAAU,eAAU+mS,EAAIiB,UAAY,eAAUjB,EAAIkB,WAAa,eAAUlB,EAAImB,QAAUnB,EAAImB,SAAW,eAAUnB,EAAIt2R,UAAYs2R,EAAIt2R,UAAY,eAAUs2R,EAAIoB,YAAc,GAAY1iR,QAAQshR,EAAIx2R,QAEzQ41R,MAAO,SAASY,GACZ,IAAI1/N,EAAU,CAAC,eAAU0/N,EAAImB,OAASnB,EAAImB,KAAO,GAAU/B,MAAM,IAAK,IAAM,GAAI,eAAUY,EAAI52R,MAAQ,GAAUg2R,MAAM,KAAM,CACxHxmJ,IAAKonJ,EAAI52R,OACR,GAAI,eAAU42R,EAAIx2R,OAAS,GAAY41R,MAAM,QAASY,EAAIx2R,OAAS,GAAI,eAAUw2R,EAAI/mS,MAAQ,GAAUmmS,MAAM,OAAQ,CACtHxmJ,IAAKonJ,EAAI/mS,OACR,GAAI,eAAU+mS,EAAIiB,QAAU,GAAU7B,MAAM,SAAU,CACvDxmJ,IAAKonJ,EAAIiB,SACR,GAAI,eAAUjB,EAAIkB,QAAU,GAAU9B,MAAM,SAAU,CACvDxmJ,IAAKonJ,EAAIkB,SACR,GAAI,eAAUlB,EAAIt2R,SAAWs2R,EAAIt2R,OAAS,GAAU01R,MAAM,IAAK,IAAM,GAAI,eAAUY,EAAIoB,WAAa,GAAUhC,MAAM,IAAK,CAC1HxmJ,IAAKonJ,EAAIoB,YACR,IAAI/tS,KAAK,IACd,OAAO,GAAU+rS,MAAM,OAAQ,GAAI9+N,KAG5B,MCtEX+gO,GAAmB,CACnB7B,aAAc,SAASC,EAAW6B,GAC9B,IAAIhrS,EAAS,KACb,GAAI,eAAUmpS,GAAY,CACtB,IAAI8B,EAEAA,EADA,kBAAoB9B,EAAU+B,aACb/B,EAAU+B,aAEVF,EAAqBG,qBAAqBhC,EAAU+B,cAEzE,IAAIjlQ,EAAOkjQ,EAAUljQ,KAChB,eAAUA,KACXA,EAAO,GAAWqkQ,8BAA8BnB,IAEpDnpS,EAAS,CACLirS,eAAgBA,EAChB/iS,UAAW,GAAoBghS,aAAaC,EAAUjhS,WACtDkjS,OAAQJ,EAAqBK,aAAalC,EAAUt2R,MACpDy4R,OAAQN,EAAqBO,aAAatlQ,IAE1C8kQ,GAAiB3iR,QAAQpoB,KACzBA,EAAS,MAGjB,OAAOA,GAEXspS,KAAM,SAASxpP,GACX,IAAI9/C,EAoBJ,OAnBI,OAAS8/C,EACT9/C,EAAS,KACF,eAAU8/C,KACjB9/C,EAAS,QACL,IAAW8/C,EAAOorP,eAClBlrS,EAAOkrS,aAAeprP,EAAOorP,mBAE7B,IAAWprP,EAAO7Z,KAClBjmC,EAAOimC,KAAO,GAAWqjQ,KAAKxpP,EAAO7Z,MAErC,GAAWwkQ,iBAAiB3qP,EAAQ9/C,QAEpC,IAAW8/C,EAAO53C,YAClBlI,EAAOkI,UAAY,GAAoBohS,KAAKxpP,EAAO53C,iBAEnD,IAAW43C,EAAOjtC,OAClB7S,EAAO6S,KAAO,GAAWy2R,KAAKxpP,EAAOjtC,QAGtC7S,GAEXupS,SAAU,SAASC,EAASC,GACxB,OAAOsB,GAAiB3iR,QAAQohR,IAAYuB,GAAiB3iR,QAAQqhR,IAAa,eAAUD,IAAY,eAAUC,IAAaD,EAAQ4B,SAAW3B,EAAS2B,QAAU5B,EAAQyB,iBAAmBxB,EAASwB,gBAAkBzB,EAAQ8B,SAAW7B,EAAS6B,QAAU,GAAoB/B,SAASC,EAAQthS,UAAWuhS,EAASvhS,YAE9TkgB,QAAS,SAASshR,GACd,OAAQ,eAAUA,KAAS,eAAUA,EAAI0B,UAAY,eAAU1B,EAAIuB,kBAAoB,eAAUvB,EAAI4B,SAAW,GAAoBljR,QAAQshR,EAAIxhS,YAEpJ4gS,MAAO,SAASY,GACZ,IACI8B,EADAC,EAAmB,GAAoBrjR,QAAQshR,EAAIxhS,WAKvD,OAHI,eAAUwhS,EAAIuB,kBACdO,EAAoB9B,EAAIuB,eAAiB,EAAI,EAAI,GAE9C,GAAUnC,MAAM,KAAM,CACzB4C,KAAM,EACNC,eAAgBF,EAAmB,KAAO,EAC1CL,OAAQ1B,EAAI0B,OACZI,kBAAmBA,EACnBF,OAAQ5B,EAAI4B,OACZM,SAAUlC,EAAIuB,gBACfQ,EAAmB,KAAO,GAAoB3C,MAAMY,EAAIxhS,cAGpD,MC1EX2jS,GAAqB,CACrBC,iBAAkB,KAClB5C,aAAc,SAASC,GACnB,IAAInpS,EAAS,KASb,MARI,kBAAoBmpS,IACpBnpS,EAAS,CACL+rS,WAAY5C,GAEZ0C,GAAmBzjR,QAAQpoB,KAC3BA,EAAS,OAGVA,GAEXupS,SAAU,SAASC,EAASC,GACxB,OAAOoC,GAAmBzjR,QAAQohR,IAAYqC,GAAmBzjR,QAAQqhR,IAAa,eAAUD,IAAY,eAAUC,IAAaD,EAAQuC,aAAetC,EAASsC,YAEvK3jR,QAAS,SAASshR,GACd,OAAQ,eAAUA,KAAS,eAAUA,EAAIqC,aAAe,KAAOrC,EAAIqC,YAEvEjD,MAAO,SAASY,GACZ,OAAO,GAAUZ,MAAM,SAAU,CAC7B8C,SAAUlC,EAAImC,GAAmBC,kBACjCC,WAAYrC,EAAIqC,eAIb,MCvBA,MAAM,GACjB,cACIhrS,KAAKirS,gBAAkB,GACvBjrS,KAAKkrS,UAAY,GACjBlrS,KAAKmrS,UAAY,GACjBnrS,KAAKorS,kBAAoB,GACzBprS,KAAKkrS,UAAUjoS,KAAK,GAAWklS,aAAa,CACxCmB,YAAa,CACTJ,YAAa,WAIzB,mBAAmBmC,GACf,IAAIpsS,EACAqsS,EAAgB,GAAiBnD,aAAakD,EAAY,CAC1Db,aAAcxqS,KAAKwqS,aAAahgR,KAAKxqB,MACrCsqS,aAActqS,KAAKsqS,aAAa9/Q,KAAKxqB,MACrCoqS,qBAAsBpqS,KAAKoqS,qBAAqB5/Q,KAAKxqB,QAEzD,GAAI,eAAUsrS,GAAgB,CAC1B,IAAK,IAAI7vS,EAAI,EAAGA,EAAIuE,KAAKirS,gBAAgBrxS,OAAQ6B,IAC7C,GAAI,GAAiB+sS,SAASxoS,KAAKirS,gBAAgBxvS,GAAI6vS,GAAgB,CACnErsS,EAASxD,EACT,WAGJ,IAAWwD,IACXA,EAASe,KAAKirS,gBAAgBhoS,KAAKqoS,GAAiB,GAG5D,OAAOrsS,EAEX,sBAAsB8/C,GAClB,OAAO,GAAiBwpP,KAAKxpP,GAEjC,yBACI,IAAIwsP,EAAkCvrS,KAAKirS,gBAAgBnvS,IAAI6sS,GAAO,GAAiBZ,MAAMY,IAC7F,OAAO,GAAUZ,MAAM,UAAW,CAC9BxmR,MAAOgqR,EAAgC3xS,QACxC2xS,EAAgCvvS,KAAK,KAE5C,aAAakpC,GACT,IAAIjmC,EACAusS,EAAU,GAAWrD,aAAajjQ,GACtC,GAAI,eAAUsmQ,GAAU,CACpB,IAAK,IAAI/vS,EAAI,EAAGA,EAAIuE,KAAKkrS,UAAUtxS,OAAQ6B,IACvC,GAAI,GAAW+sS,SAASxoS,KAAKkrS,UAAUzvS,GAAI+vS,GAAU,CACjDvsS,EAASxD,EACT,WAGJ,IAAWwD,IACPe,KAAKkrS,UAAUtxS,OAAS,GACxBoG,KAAKkrS,UAAUjoS,KAAK,GAAWklS,aAAa,CACxCmB,YAAa,CACTJ,YAAa,cAIzBjqS,EAASe,KAAKkrS,UAAUjoS,KAAKuoS,GAAW,GAGhD,OAAOvsS,EAEX,mBACI,IAAIwsS,EAAwBzrS,KAAKkrS,UAAUpvS,IAAI6sS,GAAO,GAAWZ,MAAMY,IACvE,OAAO,GAAUZ,MAAM,QAAS,CAC5BxmR,MAAOkqR,EAAsB7xS,QAC9B6xS,EAAsBzvS,KAAK,KAElC,aAAa8V,GACT,IAAI7S,EACAysS,EAAU,GAAWvD,aAAar2R,GACtC,GAAI,eAAU45R,GAAU,CACpB,IAAK,IAAIjwS,EAAI,EAAGA,EAAIuE,KAAKmrS,UAAUvxS,OAAQ6B,IACvC,GAAI,GAAW+sS,SAASxoS,KAAKmrS,UAAU1vS,GAAIiwS,GAAU,CACjDzsS,EAASxD,EACT,WAGJ,IAAWwD,IACXA,EAASe,KAAKmrS,UAAUloS,KAAKyoS,GAAW,GAGhD,OAAOzsS,EAEX,mBACI,IAAI0sS,EAAkB3rS,KAAKmrS,UAAUrvS,IAAI6sS,GAAO,GAAWZ,MAAMY,IACjE,OAAO,GAAUZ,MAAM,QAAS,CAC5BxmR,MAAOoqR,EAAgB/xS,QACxB+xS,EAAgB3vS,KAAK,KAE5B,8BAA8BoF,GAC1B,OAAO,IAAMA,EAEjB,qBAAqB+oS,GACjB,IAAIlrS,EACA0pS,EAAM,GAAmBR,aAAagC,GAC1C,GAAI,eAAUxB,GAAM,CAChB,IAAK,IAAIltS,EAAI,EAAGA,EAAIuE,KAAKorS,kBAAkBxxS,OAAQ6B,IAC/C,GAAI,GAAmB+sS,SAASxoS,KAAKorS,kBAAkB3vS,GAAIktS,GAAM,CAC7D1pS,EAASe,KAAKorS,kBAAkB3vS,GAAG,GAAmBsvS,kBACtD,WAGJ,IAAW9rS,IACX0pS,EAAI,GAAmBoC,kBAAoB/qS,KAAK4rS,8BAA8B5rS,KAAKorS,kBAAkBxxS,QACrGqF,EAAS0pS,EAAI,GAAmBoC,kBAChC/qS,KAAKorS,kBAAkBnoS,KAAK0lS,IAGpC,OAAO1pS,EAEX,2BACI,GAAIe,KAAKorS,kBAAkBxxS,OAAS,EAAG,CACnC,IAAI+xS,EAAkB3rS,KAAKorS,kBAAkBtvS,IAAI6sS,GAAO,GAAmBZ,MAAMY,IACjF,OAAO,GAAUZ,MAAM,UAAW,CAC9BxmR,MAAOoqR,EAAgB/xS,QACxB+xS,EAAgB3vS,KAAK,KAExB,MAAO,ICpGnB,IAAI6vS,GAAU,yCACVC,GAAqB,mDACrBC,GAAsB,aACtBC,GAAkB,qVAClBC,GAAsB,oCACtBC,GAAyB,OACzBC,GAAiB,KACjBC,GAAqB,eACrBC,GAAyB,sBACzBC,GAAyB,oBACzBC,GAAkB,aAClBC,GAAoB,aACpBC,GAAsB,aACtBC,GAAuB,2XACvBC,GAAc,CACd/+C,QAAS,IACTt0P,KAAM,IACN+B,OAAQ,IACR6tC,OAAQ,KAER0jQ,GAAmB7yS,KAAKC,IAAI,KAAM,GAAI,IACtC6yS,GAAgC,GAChCC,GAA4B,EAC5BC,GAA6B,CAC7BzqS,QAAS,YACT0qS,eAAgB,YAChBhwS,OAAQ,WACRuF,YAAa,YAEN0qS,GAAe,OAAM5tO,QAAQ,CACpC6tO,WAAY,SAASlhO,EAAStB,EAAYzB,GACtC,IACIxtE,EAEAulE,EAHA/hE,EAAS,IAAM+sE,EAEfpyE,EAAS8wE,EAAW9wE,OAExB,IAAK6B,EAAI,EAAGA,EAAI7B,EAAQ6B,IACpBulE,EAAO0J,EAAWjvE,QACd,IAAWulE,EAAKn/D,QAChB5C,EAASA,EAAS,IAAM+hE,EAAKp/D,KAAO,KAAOo/D,EAAKn/D,MAAQ,KAGhE,OAAO,eAAUonE,GAAWhqE,EAAS,IAAMgqE,EAAU,KAAO+C,EAAU,IAAM/sE,EAAS,OAEzFkuS,uBAAwB,SAASC,EAAmBC,GAChD,IACIC,EACAC,EAFA90G,EAAa,GAGjB,OAAQ80G,EACJD,EAAW,IAAMD,GAAsB,GAAKA,EAAqB,GAAK1rR,KAAKw8E,KAAKkvM,IAChF50G,EAAa9+L,OAAO0lC,aAAaiuQ,GAAY70G,EACzC40G,GAAsB,GACtBA,EAAqB1rR,KAAKI,MAAMsrR,EAAqB,IAAM,EAE3DE,GAAmB,EAG3B,OAAO90G,GAAc20G,EAAoB,IAE7CI,uCAAwC,SAAS3jO,EAAU8I,GAOvD,OANI3yE,KAAKytS,aAAelpR,OAAOslD,KAC3B7pE,KAAKytS,aAAelpR,OAAOslD,IAE3B7pE,KAAK0tS,gBAAkBnpR,OAAOouD,KAC9B3yE,KAAK0tS,gBAAkBnpR,OAAOouD,IAE3B3yE,KAAKmtS,uBAAuBtjO,EAAU8I,IAEjDg7N,aAAc,SAASvpR,GACnB,OAAOuoR,GAAYvoR,IAAauoR,GAAYzjQ,QAEhD0kQ,yBAA0B,SAAS//C,GAC/B,GAAI,eAAUA,GAAS,CACnB,GAAI,kBAAoBA,EACpB,OAAIv5G,SAASu5G,GACF8+C,GAAYtxS,OAEZsxS,GAAYzjQ,OAEpB,GAAI,eAAS2kN,GAChB,OAAO8+C,GAAYzjQ,OAChB,GAAI,eAAO2kN,GACd,OAAO8+C,GAAYtxS,OAChB,GAAI,eAAUwyP,GACjB,OAAO8+C,GAAY/+C,UAI/BigD,uBAAwB,SAASx0S,EAAQ+qB,GACrC,IAAInlB,EAAS,CACT5F,OAAQA,EACR6+D,UAAW7+D,GAAUA,EAAO6+D,UAC5B9zC,SAAUA,GAEd,OAAI,eAAS/qB,GACF,OAAAoB,EAAA,WAAOwE,EAAQ5F,EAAQ,CAC1BA,OAAQA,EAAOwG,WAAaxG,EAAOoF,KACnCw5D,SAAU5+D,EAAO4+D,WAGlBh5D,GAEX6uS,+BAAgC,SAASz0S,EAAQ+qB,GAC7C,IAAI2pR,EAAY/tS,KAAK6tS,uBAAuBx0S,EAAQ+qB,GACpD/qB,EAAS00S,EAAU10S,OACnB,IAAI4+D,EAAW81O,EAAU91O,SAKzB,OAJA7zC,EAAW2pR,EAAU3pR,SACjB,eAAU/qB,IAAW,SAAW+qB,IAChC/qB,EAAS0zS,GAA2B1zS,GAAUA,EAAOoF,MAAQpF,IAAWA,GAErE,GAAqBwuS,cAAcxuS,EAAQ00S,EAAU71O,UAAW9zC,EAAU6zC,IAErF+1O,cAAe,SAASnsS,GACpB,GAAI,eAAUA,KACVA,EAAQlI,OAAOkI,GACXA,EAAMjI,QAMN,OALAiI,EAAQ,gBAAWA,QACf,IAAW7B,KAAKiuS,YAAYpsS,KAC5B7B,KAAKiuS,YAAYpsS,GAAS7B,KAAKkuS,aAAat0S,OAC5CoG,KAAKkuS,aAAajrS,KAAKpB,IAEpB7B,KAAKiuS,YAAYpsS,IAIpCssS,sBAAuB,SAAS70S,GAC5B,IAAI80S,EACAC,EACJ,GAAI,eAAO/0S,GAMP,OALA80S,EAAOzsR,KAAKI,OAAOhoB,KAAKC,IAAIV,EAAKG,cAAeH,EAAKW,WAAYX,EAAKY,WAAa0yS,IAAoB,OACnGwB,EAAOvB,IACPuB,IAEJC,GAAa,KAAO/0S,EAAKa,WAAa,GAAKb,EAAKc,aAAed,EAAKe,cAAgB,MAC7E+zS,EAAOC,GAGtBC,cAAe,SAASzkO,EAAU8I,GAC9B,IAOI47N,EAPAC,EAAexuS,KAAKyuS,eAEpBC,eAAgBA,GAChBF,EAAaG,YAAY9kO,EAAU8I,IAAc,IAEjD9wE,MAAOA,GACP2sS,EAAaG,YAAY9kO,EAAU8I,IAAc,GAEjDl0E,EAAOuB,KAAK2tS,aAAaa,EAAaI,YAAY/kO,EAAU8I,IAIhE,OAHIl0E,IAASkuS,GAAYrzS,MAAS,eAAOuI,KACrCpD,EAAOkuS,GAAYzjQ,QAEfzqC,GACJ,KAAKkuS,GAAYzjQ,OACbqlQ,EAAc1sS,EACdA,EAAQ7B,KAAKguS,cAAcnsS,GAC3B,MACJ,KAAK8qS,GAAYrzS,KACbi1S,EAAc1sS,EACdA,EAAQ7B,KAAKmuS,sBAAsBtsS,GACnCpD,EAAOkuS,GAAYtxS,OAE3B,MAAO,CACHwG,MAAOA,EACPpD,KAAMA,EACN8vS,YAAaA,EACbG,eAAgBA,IAGxBG,wBAAyB,SAAS3hS,GAC9B,IACIshS,aAAcA,EACd3sS,MAAOA,EACPyoE,MAAOA,EACPwkO,WAAYA,GACZ5hS,EACA6hS,EAAY,GAAUC,eAAe1kO,GACrCzrB,EAAO,CACPh9C,MAAOA,EACPsoS,aAAc4E,EAAU5E,aACxB8E,WAAY,WACRjvS,KAAK+hN,oBAAsB,KAC3B/hN,KAAKiiN,kBAAoB,KACzBjiN,KAAKkvS,gBAAkB,KACvBlvS,KAAK8R,KAAO,KACZ9R,KAAKmqS,aAAe,OAGxB,eAAU4E,KACN,eAAUA,EAAU5nS,aACpB03C,EAAKkjK,oBAAsBgtF,EAAU5nS,UAAU6K,WAC/C6sC,EAAKojK,kBAAoB8sF,EAAU5nS,UAAUkhS,SAC7CxpP,EAAKqwP,gBAAkBH,EAAU5nS,UAAUmhS,UAE/CzpP,EAAKsqP,gBAAkB4F,EAAU5F,gBACjCtqP,EAAK2qP,gBAAkBuF,EAAUvF,gBACjC3qP,EAAK4qP,iBAAmBsF,EAAUtF,iBAClC5qP,EAAK/sC,KAAOi9R,EAAUj9R,MAE1B08R,EAAa98O,mBAAmB7S,EAAMiwP,GACtC,IAAIK,EAAWJ,GAAa,GAU5B,OATAI,EAASr9R,KAAO+sC,EAAK/sC,KACrBq9R,EAAShoS,UAAYgoS,EAAShoS,WAAa,GAC3CgoS,EAAShoS,UAAU6K,WAAa6sC,EAAKkjK,oBACrCotF,EAAShoS,UAAUkhS,SAAWxpP,EAAKojK,kBACnCktF,EAAShoS,UAAUmhS,SAAWzpP,EAAKqwP,gBACnCC,EAAShG,gBAAkBtqP,EAAKsqP,gBAChCgG,EAAS3F,gBAAkB3qP,EAAK2qP,gBAChC2F,EAAS1F,iBAAmB5qP,EAAK4qP,iBACjC0F,EAAShF,aAAetrP,EAAKsrP,aACtB,CACHtoS,MAAOg9C,EAAKh9C,MACZyoE,MAAO6kO,IAGfC,cAAe,WACX,IAAIvlO,EACA8I,EACA08N,EACAC,EAKAhkR,EAJArsB,EAAS,GACTuvS,EAAexuS,KAAKyuS,cACpBc,EAAaf,EAAaz3N,eAC1BzpD,EAAUkhR,EAAa/mO,aAE3B,IAAKoC,EAAW,EAAGA,EAAW0lO,EAAY1lO,IAAY,CAGlD,IAFAwlO,EAAa,GACb/jR,EAAcgC,EAAQ1zB,OACjB+4E,EAAY,EAAGA,IAAcrnD,EAAaqnD,IAAa,CACxD28N,EAAWtvS,KAAKsuS,cAAczkO,EAAU8I,GACxC,IAAI68N,EAAkBhB,EAAaiB,WAAW5lO,EAAU8I,GACpD+8N,EAAc1vS,KAAK2vS,iCAAiCH,GACxD,GAAIhB,EAAaoB,uBAAyBpB,EAAaoB,wBAAyB,CAC5E,IAAI/tS,EAAQytS,EAASf,aAAee,EAASztS,MACzCguS,EAAoB7vS,KAAK6uS,wBAAwB,CACjDL,aAAcA,EACd3sS,MAAOA,EACPyoE,MAAOtqE,KAAK8vS,YAAYN,GACxBV,WAAYQ,EAASZ,iBAEzB,GAAImB,EAAkBhuS,QAAUA,EAAO,CACnC,UAAWguS,EAAkBhuS,eAAiBA,GAAS,kBAAoBguS,EAAkBhuS,QAAUyyI,SAASu7J,EAAkBhuS,OAAQ,CACtI,IAAIkuS,EAAe/vS,KAAK4tS,yBAAyBiC,EAAkBhuS,OAC/D,eAAUkuS,KACVT,EAAS7wS,KAAOsxS,GAGxB,OAAQT,EAAS7wS,MACb,KAAKkuS,GAAYzjQ,OACbomQ,EAASztS,MAAQ7B,KAAKguS,cAAc6B,EAAkBhuS,OACtD,MACJ,KAAK8qS,GAAYrzS,KACbg2S,EAASztS,MAAQguS,EAAkBhuS,MACnC,MACJ,KAAK8qS,GAAYtxS,OACb,IAAIi4E,EAAWu8N,EAAkBhuS,MAC7BmuS,EAAiBhwS,KAAKmuS,sBAAsB76N,GAC5C,eAAU08N,KACV18N,EAAW08N,GAEfV,EAASztS,MAAQyxE,EACjB,MACJ,QACIg8N,EAASztS,MAAQguS,EAAkBhuS,OAG/C6tS,EAAc1vS,KAAKiwS,WAAWC,mBAAmBL,EAAkBvlO,OAEvE+kO,EAAWpsS,KAAK,CACZqnE,MAAOolO,EACP7tS,MAAOytS,EAASztS,MAChBpD,KAAM6wS,EAAS7wS,QAGlBuB,KAAKmwS,cAAgB3B,EAAa4B,cAAcvmO,GAAY,IAC7D7pE,KAAKmwS,cAAe,GAExBlxS,EAAOgE,KAAKosS,GAEhB,OAAOpwS,GAEXoxS,gBAAiB,SAASC,GAKtB,OAJAA,EAAc/uS,SAAS+uS,EAAa,MAC/BA,GAAeA,EAAc,KAC9BA,EAAc,KAEX3uR,KAAKC,IAAI,IAAKD,KAAKI,OAAOuuR,EAAc,GAAKxD,GAA4B,IAAM,IAAM,MAEhGyD,kBAAmB,WACf,IAAI5sS,EAAO3D,KACPg2R,EAASryR,EAAK8qS,cAAc+B,YAChC7sS,EAAK8qS,cAAchnO,aAAavmE,SAAQ,SAAU4P,GAC9CnN,EAAK8sS,WAAWxtS,KAAKU,EAAK0sS,gBAAgBv/R,EAAOvJ,WAErD,IAAImpS,EAAQ,CAAC,CACT3+R,KAAM,GACNI,MAAO,CACH62R,MAAO,GAEXpnS,KAAM,UACNgoS,OAAQ,EACRC,OAAQ,QACRC,MAAM,GACP,CACC/3R,KAAM,GACNI,MAAO,CACH62R,MAAO,GAEXpnS,KAAM,UACNgoS,OAAQ,EACRC,OAAQ,QACRC,MAAM,IAEV9pS,KAAKiwS,WAAW3F,aAAaoG,EAAM,IACnC1wS,KAAKiwS,WAAW3F,aAAaoG,EAAM,IACnC1a,EAAO90R,SAAQ,SAAUopE,GACrB,IAAI6/N,EAAexmS,EAAKmqS,+BAA+BxjO,EAAMjxE,OAAQixE,EAAMlmD,UACtE,eAAU+lR,KACXA,EAAe,GAEnBxmS,EAAKmsS,YAAY7sS,KAAK,CAClB6O,KAAM4+R,EAAMnsR,SAAS+lD,EAAMw/N,OAC3BK,aAAcA,EACdhjS,UAAW,CACPkhS,SAAU,MACVC,WAAYh+N,EAAMg+N,SAClBt2R,WAAYs4D,EAAMnjE,WAAa,aAI3CxD,EAAKgsS,iCAAmChsS,EAAKmsS,YAAYh0S,IAAIiL,GAAQ/G,KAAKiwS,WAAWC,mBAAmBnpS,KAE5G4pS,iBAAkB,WACd3wS,KAAK4wS,YAAc5wS,KAAKovS,iBAE5ByB,wBAAyB,SAASC,GAC9B,OAAO9wS,KAAKktS,WAAW,gBAAiB,CAAC,CACrCtrS,KAAM,QACNC,MAAOoqS,GAAsB,gCAC7B6E,IAERC,uBAAwB,SAASjiT,EAAI2P,EAAM6mB,GACvC,OAAOtlB,KAAKktS,WAAW,eAAgB,CAAC,CACpCtrS,KAAM,KACNC,MAAO,MAAQ/S,GAChB,CACC8S,KAAM,OACNC,MAAOoqS,GAAsB,sCAAwCxtS,GACtE,CACCmD,KAAM,SACNC,MAAOyjB,MAGf0rR,oBAAqB,WACjB,OAAOnF,GAAU7rS,KAAKktS,WAAW,WAAY,CAAC,CAC1CtrS,KAAM,UACNC,MAAOoqS,GAAsB,sCAC9B,CACCrqS,KAAM,QACNC,MAAOoqS,GAAsB,6BAC7B,uXAERgF,wBAAyB,WACrB,OAAOpF,GAAU,iBAAmBI,GAAsB,mtBAE9DiF,mBAAoB,WAChB,IAAI1rQ,EAASxlC,KAAKmxS,KAAK3rQ,OAAO2mQ,IAC1BiF,EAAM,GACVA,GAAOpxS,KAAKiwS,WAAWoB,2BACvBD,GAAOpxS,KAAKiwS,WAAWqB,mBACvBF,GAAOpxS,KAAKiwS,WAAWsB,mBACvBH,GAAOpF,GACPoF,GAAOpxS,KAAKiwS,WAAWuB,yBACvBJ,GAAOpxS,KAAKktS,WAAW,aAAc,CAAC,CAClCtrS,KAAM,QACNC,MAAO,IACP7B,KAAKktS,WAAW,YAAa,CAAC,CAC9BtrS,KAAM,OACNC,MAAO,UACR,CACCD,KAAM,OACNC,MAAO,GACR,CACCD,KAAM,YACNC,MAAO,MAEXuvS,EAAMvF,GAAU7rS,KAAKktS,WAAW,aAAc,CAAC,CAC3CtrS,KAAM,QACNC,MAAOoqS,GAAsB,6BAC7BmF,GACJ5rQ,EAAOlG,KAAKitQ,GAAiB6E,GAC7BpxS,KAAK8vS,YAAc,IAEvB2B,oBAAqB,WACjB,IACIC,EADAlsQ,EAASxlC,KAAKmxS,KAAK3rQ,OAAO2mQ,IAE1BwF,EAAgB3xS,KAAKkuS,aAAat0S,OAClCg4S,EAAkB/F,GACtB,IAAK6F,EAAc,EAAGA,EAAcC,EAAeD,IAC/C1xS,KAAKkuS,aAAawD,GAAe1xS,KAAKktS,WAAW,KAAM,GAAIltS,KAAKktS,WAAW,IAAK,GAAIltS,KAAKkuS,aAAawD,KAE1GE,GAAmB5xS,KAAKktS,WAAW,MAAO,CAAC,CACvCtrS,KAAM,QACNC,MAAOoqS,GAAsB,4BAC9B,CACCrqS,KAAM,QACNC,MAAO7B,KAAKkuS,aAAat0S,QAC1B,CACCgI,KAAM,cACNC,MAAO7B,KAAKkuS,aAAat0S,SACzBoG,KAAKkuS,aAAalyS,KAAK,KAC3BwpC,EAAOlG,KAAKgtQ,GAAwBsF,GACpC5xS,KAAKkuS,aAAe,IAExB2D,YAAa,WACT,IAAInnO,EAAa,CAAC,CACd9oE,KAAM,aACNC,MAAO,cACR,CACCD,KAAM,QACNC,MAAO,WAEPiwS,EAAa9xS,KAAKyuS,cAAcsD,gBACpC,OAAMD,EAAW1kS,GAAK0kS,EAAWxwR,GAG7BwwR,EAAW1kS,GACXs9D,EAAWznE,KAAK,CACZrB,KAAM,SACNC,MAAOiwS,EAAW1kS,IAGtB0kS,EAAWxwR,GACXopD,EAAWznE,KAAK,CACZrB,KAAM,SACNC,MAAOiwS,EAAWxwR,IAG1BopD,EAAWznE,KAAK,CACZrB,KAAM,cACNC,MAAO7B,KAAKwtS,uCAAuCsE,EAAWxwR,EAAGwwR,EAAW1kS,KAEzEpN,KAAKktS,WAAW,OAAQxiO,IAlBpB,IAoBfsnO,kBAAmB,SAASC,GACxB,OAAIjyS,KAAKqwK,SAAS3/J,kBACP,qBAAuB1Q,KAAKyuS,cAAcyD,oBAAsB,IAAMD,EAAe,OAEzF,IAEXE,qBAAsB,SAASF,GAC3B,OAAIjyS,KAAKqwK,SAAS+hI,aACP,0CAA4CH,EAAe,8CAE/D,IAEXI,sBAAuB,WACnB,IAAI18I,EACA9rF,EACAylO,EACAgD,EAGAhnR,EAFAinR,EAAU,GACVhD,EAAavvS,KAAK4wS,YAAYh3S,OAE9B44S,EAAaxyS,KAAKywS,WAAW72S,OAC7B64S,EAAS,KAAOD,EAChBE,EAAiB1yS,KAAKyuS,cAAcyD,kBAAoBlyS,KAAKyuS,cAAcyD,oBAAsB,EACjGS,EAAY,CAACjG,IAWjB,IAVAiG,EAAU1vS,KAAKjD,KAAKmwS,aAAerE,GAAqBC,IACxD4G,EAAU1vS,KAAK,4BACf0vS,EAAU1vS,KAAK,2BACf0vS,EAAU1vS,KAAKjD,KAAK4yS,YAAc,mBAAqB,IACvDD,EAAU1vS,KAAK,uCACf0vS,EAAU1vS,KAAKjD,KAAK6xS,eACpBc,EAAU1vS,KAAK,6BACf0vS,EAAU1vS,KAAK,wCACf0vS,EAAU1vS,KAAK,sBAAwBjD,KAAKyuS,cAAc13N,eAAiB,EAAI/2E,KAAKyuS,cAAc2B,cAAc,GAAK,GAAK,KAC1HuC,EAAU1vS,KAAK,6BACV0yJ,EAAW,EAAGA,EAAW68I,EAAY78I,IACtC31J,KAAKywS,WAAW96I,GAAY31J,KAAKktS,WAAW,MAAO,CAAC,CAChDtrS,KAAM,QACNC,MAAO7B,KAAKywS,WAAW96I,IACxB,CACC/zJ,KAAM,MACNC,MAAO0iB,OAAOoxI,GAAY,GAC3B,CACC/zJ,KAAM,MACNC,MAAO0iB,OAAOoxI,GAAY,GAC3B,CACC/zJ,KAAM,cACNC,MAAO,KAIf,IADA8wS,EAAU1vS,KAAKjD,KAAKktS,WAAW,OAAQ,GAAIltS,KAAKywS,WAAWz0S,KAAK,KAAO,eAClE6tE,EAAW,EAAGA,EAAW0lO,EAAY1lO,IAAY,CAGlD,IAFAyoO,EAAW,GACXhnR,EAActrB,KAAK4wS,YAAY/mO,GAAUjwE,OACpC+7J,EAAW,EAAGA,EAAWrqI,EAAaqqI,IACvC9rF,EAAWtlD,OAAOslD,GAClBylO,EAAWtvS,KAAK4wS,YAAY/mO,GAAU8rF,GACtC28I,EAASrvS,KAAKjD,KAAKktS,WAAW,IAAK,CAAC,CAChCtrS,KAAM,IACNC,MAAO7B,KAAKwtS,uCAAuC3jO,EAAU8rF,IAC9D,CACC/zJ,KAAM,IACNC,MAAOytS,EAAShlO,OACjB,CACC1oE,KAAM,IACNC,MAAOytS,EAAS7wS,OAChB,eAAU6wS,EAASztS,OAAS7B,KAAKktS,WAAW,IAAK,GAAIoC,EAASztS,OAAS,OAE/E0wS,EAAQtvS,KAAKjD,KAAKktS,WAAW,MAAO,CAAC,CACjCtrS,KAAM,IACNC,MAAO0iB,OAAOslD,GAAY,GAC3B,CACCjoE,KAAM,QACNC,MAAO4wS,GACR,CACC7wS,KAAM,eACNC,MAAOgoE,GAAY6oO,EAAiB1yS,KAAKyuS,cAAc2B,cAAcvmO,GAAY,GAClF,CACCjoE,KAAM,kBACNC,MAAO,SACPywS,EAASt2S,KAAK,MAClBgE,KAAK4wS,YAAY/mO,GAAY,KACzB0oO,EAAQ34S,OAAS,MACjB+4S,EAAU1vS,KAAKsvS,EAAQv2S,KAAK,KAC5Bu2S,EAAU,IAGlBI,EAAU1vS,KAAKsvS,EAAQv2S,KAAK,KAC5Bu2S,EAAU,GACV,IAAIM,EAAqB7yS,KAAKmtS,uBAAuBntS,KAAKytS,aAAcztS,KAAK0tS,iBAC7EiF,EAAU1vS,KAAK,eAAiBjD,KAAKgyS,kBAAkBa,GAAsB7yS,KAAK8yS,sBAAwB9yS,KAAKmyS,qBAAqBU,GAAsB,gBAC1J7yS,KAAKmxS,KAAK3rQ,OAAO2mQ,IAAgB3mQ,OAAOgnQ,IAAmBltQ,KAAKmtQ,GAAqBkG,EAAU32S,KAAK,KACpGgE,KAAKywS,WAAa,GAClBzwS,KAAK4wS,YAAc,GACnB+B,EAAY,IAEhBG,oBAAqB,WACjB,IAAIlzQ,EACApE,EACAm3C,EACA9I,EAKAkpO,EAJAxD,EAAa,eAAUvvS,KAAKyuS,cAAcyD,mBAAqBlyS,KAAKyuS,cAAcyD,oBAAsBlyS,KAAKyuS,cAAc13N,eAC3Hi8N,EAAgBhzS,KAAKyuS,cAAchnO,aAAa7tE,OAChDq5S,EAAW,GACXC,EAAa,GAEbC,EAAW,GACf,IAAKtpO,EAAW,EAAGA,EAAW0lO,EAAY1lO,IACtC,IAAK8I,EAAY,EAAGA,IAAcqgO,EAAergO,IAC7C,IAAK,eAAUsgO,EAASppO,MAAe,eAAUopO,EAASppO,GAAU8I,IAAa,CAC7E,IAAIygO,EAAYpzS,KAAKyuS,cAAc4E,eAAexpO,EAAU8I,GAC5D,GAAIygO,EAAUxnO,SAAWwnO,EAAUv1N,QAK/B,IAJAq1N,EAAWjwS,KAAK,CACZk3D,MAAOn6D,KAAKwtS,uCAAuC3jO,EAAU8I,GAC7DxwC,IAAKniC,KAAKwtS,uCAAuC3jO,GAAYupO,EAAUv1N,SAAW,GAAIlL,GAAaygO,EAAUxnO,SAAW,MAEvHhsC,EAAIiqC,EAAUjqC,GAAKiqC,EAAWupO,EAAUv1N,QAAcj+C,IACvD,IAAKpE,EAAIm3C,EAAWn3C,GAAKm3C,EAAYygO,EAAUxnO,QAAcpwC,IACpD,eAAUy3Q,EAASrzQ,MACpBqzQ,EAASrzQ,GAAK,IAElBqzQ,EAASrzQ,GAAGpE,IAAK,EAOzC,IAAI83Q,EAAmBJ,EAAWt5S,OAClC,IAAKm5S,EAAa,EAAGA,EAAaO,EAAkBP,IAChDI,GAAYnzS,KAAKktS,WAAW,YAAa,CAAC,CACtCtrS,KAAM,MACNC,MAAOqxS,EAAWH,GAAY54O,MAAQ,IAAM+4O,EAAWH,GAAY5wQ,OAG3E,OAAOgxQ,EAASv5S,OAASoG,KAAKktS,WAAW,aAAc,CAAC,CACpDtrS,KAAM,QACNC,MAAOyxS,IACPH,GAAY,IAEpBI,mBAAoB,WAChB,IAAIC,EAAkB3H,GAAU7rS,KAAK6wS,wBAAwB7wS,KAAK+wS,uBAAuB,EAAG,iBAAkB,MAAQ3E,KAClH5mQ,EAASxlC,KAAKmxS,KAAK3rQ,OAAO2mQ,IAC1BsH,EAAU5H,GACd7rS,KAAKmxS,KAAK3rQ,OAAO,IAAM0mQ,IAAwB5sQ,KAAK,IAAM4sQ,GAAwBsH,GAClF,IAAI1C,EAAmB9wS,KAAK+wS,uBAAuB,EAAG,YAAa,cAAgBtE,IAAuBzsS,KAAK+wS,uBAAuB,EAAG,SAAUxE,IAAmBvsS,KAAK+wS,uBAAuB,EAAG,gBAAiBzE,IACtNmH,GAAWzzS,KAAK6wS,wBAAwBC,GACxCtrQ,EAAOA,OAAO,IAAM0mQ,IAAwB5sQ,KAAK8sQ,GAAqB,QAASqH,GAC/EjuQ,EAAOlG,KAAK8sQ,GAAoBpsS,KAAKgxS,uBACrChxS,KAAKmxS,KAAK7xQ,KAAK+sQ,GAAwBrsS,KAAKixS,4BAEhDyC,iBAAkB,WACd1zS,KAAKuwS,oBACLvwS,KAAK2wS,mBACL3wS,KAAK2zS,mBACL3zS,KAAKuzS,sBAETI,iBAAkB,WACd3zS,KAAKkxS,qBACLlxS,KAAKyxS,sBACLzxS,KAAKqyS,yBAET9yO,KAAM,SAASivO,EAAcx9R,GACzBhR,KAAK4yS,YAAc5hS,KAAaA,EAAQqa,WACxCrrB,KAAKqwK,SAAWr/J,EAChBhR,KAAKytS,aAAe,EACpBztS,KAAK0tS,gBAAkB,EACvB1tS,KAAKkuS,aAAe,GACpBluS,KAAKiuS,YAAc,GACnBjuS,KAAK8vS,YAAc,GACnB9vS,KAAKywS,WAAa,GAClBzwS,KAAK4wS,YAAc,GACnB5wS,KAAKmwS,cAAe,EACpBnwS,KAAKyuS,cAAgBD,EACrBxuS,KAAKiwS,WAAa,IAAI,GAClB,eAAUhD,GAAa2G,OACvB5zS,KAAKmxS,KAAO,IAAIlE,GAAa2G,MAE7B5zS,KAAKmxS,KAAO,MAGpB0C,eAAgB,WACZ,IAAK7zS,KAAKmxS,KACN,MAAM,OAAOz1Q,MAAM,QAAS,UAGpCo4Q,MAAO,WACH,OAAO9zS,KAAKyuS,cAAcqF,SAE9BC,QAAS,SAASC,GACd,IAAIhjS,EAAU,CACVvS,KAAMu1S,EAAS,OAAS,SACxBv3Q,YAAa,UACbkJ,SAAUw8P,GAAWP,OAErBlkO,EAAW,IAAI,cAQnB,OAPA19D,KAAK6zS,iBACL7zS,KAAK0zS,mBACD1zS,KAAKmxS,KAAKtrQ,cACV7lC,KAAKmxS,KAAKtrQ,cAAc70B,GAASM,KAAKosD,EAASluC,SAE/CkuC,EAASluC,QAAQxvB,KAAKmxS,KAAK1rQ,SAASz0B,IAEjC0sD,KAIR,SAAS,GAAQv3D,EAAM6K,GAC1B,IAAIijS,EAAe,IAAIhH,GAAa9mS,EAAM6K,GAE1C,OADAijS,EAAaJ,iBACNI,EAAaH,QAAQxiS,KAAK,IAAM2iS,EAAaF,QAAQ,eAAW,iBAAYrhS,QAJvFu6R,GAAa2G,MAAQ,KClqBrB,IAAIM,GAAqB,CACrBC,UAAW,SACXC,aAAc,SACdC,KAAM,SACNC,WAAY,SACZC,MAAO,SACPC,MAAO,SACPC,OAAQ,SACRC,MAAO,SACPC,eAAgB,SAChBC,KAAM,SACNC,WAAY,SACZC,MAAO,SACPC,UAAW,SACXC,UAAW,SACXC,WAAY,SACZC,UAAW,SACXC,MAAO,SACPC,eAAgB,SAChBC,SAAU,SACVC,QAAS,SACTC,KAAM,SACNC,SAAU,SACVC,SAAU,SACVC,cAAe,SACfC,SAAU,SACVC,UAAW,SACXC,SAAU,SACVC,UAAW,SACXC,YAAa,SACbC,eAAgB,SAChBC,WAAY,SACZC,WAAY,SACZC,QAAS,SACTC,WAAY,SACZC,aAAc,SACdC,cAAe,SACfC,cAAe,SACfC,cAAe,SACfC,cAAe,SACfC,WAAY,SACZC,SAAU,SACVC,YAAa,SACbC,QAAS,SACTC,QAAS,SACTC,WAAY,SACZC,SAAU,SACVC,UAAW,SACXC,YAAa,SACbC,YAAa,SACbC,QAAS,SACTC,UAAW,SACXC,WAAY,SACZC,KAAM,SACNC,UAAW,SACXC,KAAM,SACNC,MAAO,SACPC,YAAa,SACbC,KAAM,SACNC,SAAU,SACVC,QAAS,SACTC,UAAW,SACXC,OAAQ,SACRC,MAAO,SACPC,MAAO,SACPC,SAAU,SACVC,cAAe,SACfC,UAAW,SACXC,aAAc,SACdC,UAAW,SACXC,WAAY,SACZC,UAAW,SACXC,qBAAsB,SACtBC,UAAW,SACXC,WAAY,SACZC,UAAW,SACXC,UAAW,SACXC,YAAa,SACbC,cAAe,SACfC,aAAc,SACdC,eAAgB,SAChBC,eAAgB,SAChBC,eAAgB,SAChBC,eAAgB,SAChBC,YAAa,SACbC,KAAM,SACNC,UAAW,SACXC,MAAO,SACPC,QAAS,SACTC,OAAQ,SACRC,iBAAkB,SAClBC,WAAY,SACZC,aAAc,SACdC,aAAc,SACdC,eAAgB,SAChBC,gBAAiB,SACjBC,kBAAmB,SACnBC,gBAAiB,SACjBC,gBAAiB,SACjBC,aAAc,SACdC,UAAW,SACXC,UAAW,SACXC,SAAU,SACVC,YAAa,SACbC,KAAM,SACNC,QAAS,SACTC,MAAO,SACPC,UAAW,SACXC,OAAQ,SACRC,UAAW,SACXC,OAAQ,SACRC,cAAe,SACfC,UAAW,SACXC,cAAe,SACfC,cAAe,SACfC,WAAY,SACZC,UAAW,SACXC,KAAM,SACNC,KAAM,SACNC,KAAM,SACNC,WAAY,SACZC,OAAQ,SACRC,cAAe,SACfC,IAAK,SACLC,UAAW,SACXC,UAAW,SACXC,YAAa,SACbC,OAAQ,SACRC,WAAY,SACZC,SAAU,SACVC,SAAU,SACVC,OAAQ,SACRC,OAAQ,SACRC,QAAS,SACTC,UAAW,SACXC,UAAW,SACXC,UAAW,SACXC,KAAM,SACNC,YAAa,SACbC,UAAW,SACXC,IAAK,SACLC,KAAM,SACNC,QAAS,SACTC,OAAQ,SACRC,UAAW,SACXC,OAAQ,SACRC,UAAW,SACXC,MAAO,SACPC,MAAO,SACPC,WAAY,SACZC,OAAQ,SACRC,YAAa,UAEbC,GAAqB,CAAC,CACtBC,GAAI,+CACJp/P,QAAS,SAASq/P,GACd,MAAO,CAACr8S,SAASq8S,EAAY,GAAI,IAAKr8S,SAASq8S,EAAY,GAAI,IAAKr8S,SAASq8S,EAAY,GAAI,OAElG,CACCD,GAAI,+DACJp/P,QAAS,SAASq/P,GACd,MAAO,CAACr8S,SAASq8S,EAAY,GAAI,IAAKr8S,SAASq8S,EAAY,GAAI,IAAKr8S,SAASq8S,EAAY,GAAI,IAAKr6O,WAAWq6O,EAAY,OAE9H,CACCD,GAAI,6CACJp/P,QAAS,SAASq/P,GACd,MAAO,CAACr8S,SAASq8S,EAAY,GAAI,IAAKr8S,SAASq8S,EAAY,GAAI,IAAKr8S,SAASq8S,EAAY,GAAI,OAElG,CACCD,GAAI,6CACJp/P,QAAS,SAASq/P,GACd,MAAO,CAACr8S,SAASq8S,EAAY,GAAKA,EAAY,GAAI,IAAKr8S,SAASq8S,EAAY,GAAKA,EAAY,GAAI,IAAKr8S,SAASq8S,EAAY,GAAKA,EAAY,GAAI,OAErJ,CACCD,GAAI,+CACJp/P,QAAS,SAASq/P,GACd,IAAIx7R,EAAI7gB,SAASq8S,EAAY,GAAI,IAC7Bt7R,EAAI/gB,SAASq8S,EAAY,GAAI,IAC7Bj+Q,EAAIp+B,SAASq8S,EAAY,GAAI,IAC7B7U,EAAM8U,GAASz7R,EAAGE,EAAGqd,GACzB,MAAO,CAACopQ,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAI,EAAG,CAAC3mR,EAAGE,EAAGqd,MAE/C,CACCg+Q,GAAI,+CACJp/P,QAAS,SAASq/P,GACd,IAAIx7R,EAAI7gB,SAASq8S,EAAY,GAAI,IAC7Bt7R,EAAI/gB,SAASq8S,EAAY,GAAI,IAC7BpiR,EAAIj6B,SAASq8S,EAAY,GAAI,IAC7B7U,EAAM+U,GAAS17R,EAAGE,EAAGkZ,GACzB,MAAO,CAACutQ,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAI,EAAG,KAAM,CAAC3mR,EAAGE,EAAGkZ,OAGpD8nH,GAAS3hI,KAAKwqF,MAElB,SAAS4xM,GAAMl8S,GAEX,IAAIsQ,EADJnS,KAAKg+S,UAAYn8S,EAEbA,IACAsQ,EAAQxY,OAAOkI,GAAO/D,cAAc3C,QAAQ,KAAM,IAClDgX,EAAQ+hS,GAAmB/hS,GAAS,IAAM+hS,GAAmB/hS,GAASA,EACtEA,EAAQ8rS,GAAW9rS,IAElBA,IACDnS,KAAKk+S,gBAAiB,GAE1B/rS,EAAQA,GAAS,GACjBnS,KAAKq7B,EAAI8iR,GAAUhsS,EAAM,IACzBnS,KAAK0/B,EAAIy+Q,GAAUhsS,EAAM,IACzBnS,KAAKgC,EAAIm8S,GAAUhsS,EAAM,IACzBnS,KAAK+B,EAAIo8S,GAAUhsS,EAAM,GAAI,EAAG,GAC5BA,EAAM,GACNnS,KAAKo+S,IAAM,CACPh8R,EAAGjQ,EAAM,GAAG,GACZmQ,EAAGnQ,EAAM,GAAG,GACZwtB,EAAGxtB,EAAM,GAAG,IAGhBnS,KAAKo+S,IAAMC,GAAar+S,KAAKq7B,EAAGr7B,KAAK0/B,EAAG1/B,KAAKgC,GAE7CmQ,EAAM,GACNnS,KAAKs+S,IAAM,CACPl8R,EAAGjQ,EAAM,GAAG,GACZmQ,EAAGnQ,EAAM,GAAG,GACZqpB,EAAGrpB,EAAM,GAAG,IAGhBnS,KAAKs+S,IAAMC,GAAav+S,KAAKq7B,EAAGr7B,KAAK0/B,EAAG1/B,KAAKgC,GAIrD,SAASi8S,GAAW9rS,GAChB,GAAI,gBAAkBA,EAClB,MAAO,CAAC,EAAG,EAAG,EAAG,GAKrB,IAHA,IAEIjW,EAFAT,EAAI,EACJvI,EAAKwqT,GAAmB9jT,OAErB6B,EAAIvI,IAAMuI,EAEb,GADAS,EAAMwhT,GAAmBjiT,GAAGkiT,GAAGhkR,KAAKxnB,GAChCjW,EACA,OAAOwhT,GAAmBjiT,GAAG8iD,QAAQriD,GAG7C,OAAO,KAGX,SAASiiT,GAAUK,EAAgBC,EAAKzsR,GAGpC,OAFAysR,EAAMA,GAAO,EACbzsR,EAAMA,GAAO,IACNwsR,EAAiB,GAAKh7S,MAAMg7S,GAAkBC,EAAMD,EAAiBxsR,EAAMA,EAAMwsR,EAG5F,SAASE,GAAarjR,EAAGqE,EAAG19B,GACxB,MAAO,KAAO,SAAWq5B,GAAK,GAAKqE,GAAK,EAAI19B,GAAGyf,SAAS,IAAI4B,MAAM,GAGtE,SAASg7R,GAAahjR,EAAGqE,EAAG19B,GACxB,IAGImgB,EACAjX,EAJA8mB,EAAMrQ,KAAKqQ,IAAIqJ,EAAGqE,EAAG19B,GACrB4f,EAAMD,KAAKC,IAAIyZ,EAAGqE,EAAG19B,GACrB4/I,EAAQ5vH,EAAMpQ,EAGdq8B,EAAIjsB,EAER,GADA9mB,EAAI,IAAM8mB,EAAM,EAAI,EAAIpQ,EAAMoQ,EAC1BA,IAAQpQ,EACRO,EAAI,OAEJ,OAAQ6P,GACJ,KAAKqJ,EACDlZ,GAAKud,EAAI19B,GAAK4/I,EAAQ,GAClBliH,EAAI19B,IACJmgB,GAAK,KAET,MACJ,KAAKud,EACDvd,GAAKngB,EAAIq5B,GAAKumH,EAAQ,GAAK,IAC3B,MACJ,KAAK5/I,EACDmgB,GAAKkZ,EAAIqE,GAAKkiH,EAAQ,GAAK,IAKvC,OAFA12I,GAAK,IACL+yC,GAAK,IAAM,IACJ,CACH77B,EAAGT,KAAKwqF,MAAMhqF,GACdG,EAAGX,KAAKwqF,MAAMjhG,GACdy0B,EAAGhe,KAAKwqF,MAAMluD,IAItB,SAAS4/P,GAASz7R,EAAGE,EAAGqd,GACpB,IAKItE,EACAqE,EACA19B,EAPAZ,EAAQugB,KAAKI,MAAMK,EAAI,IAAM,IAC7Bu8R,GAAQ,IAAMr8R,GAAKqd,EAAI,IACvB59B,EAAIqgB,EAAI,GAAK,IAAMud,EAAIg/Q,GACvBC,EAAOD,EAAO58S,EACd88S,EAAOl/Q,EAAI59B,EAIf,OAAQX,GACJ,KAAK,EACDi6B,EAAIsE,EACJD,EAAIk/Q,EACJ58S,EAAI28S,EACJ,MACJ,KAAK,EACDtjR,EAAIwjR,EACJn/Q,EAAIC,EACJ39B,EAAI28S,EACJ,MACJ,KAAK,EACDtjR,EAAIsjR,EACJj/Q,EAAIC,EACJ39B,EAAI48S,EACJ,MACJ,KAAK,EACDvjR,EAAIsjR,EACJj/Q,EAAIm/Q,EACJ78S,EAAI29B,EACJ,MACJ,KAAK,EACDtE,EAAIujR,EACJl/Q,EAAIi/Q,EACJ38S,EAAI29B,EACJ,MACJ,KAAK,EACDtE,EAAIsE,EACJD,EAAIi/Q,EACJ38S,EAAI68S,EAEZ,MAAO,CAACl9R,KAAKwqF,MAAM,KAAO9wE,GAAI1Z,KAAKwqF,MAAM,KAAOzsE,GAAI/d,KAAKwqF,MAAM,KAAOnqG,IAG1E,SAAS88S,GAAazjR,EAAGqE,EAAG19B,EAAG4/I,GAC3B,IAAI5vH,EAAMrQ,KAAKqQ,IAAIqJ,EAAGqE,EAAG19B,GACzB,OAAQgwB,GACJ,KAAKqJ,EACD,OAAQqE,EAAI19B,GAAK4/I,GAASliH,EAAI19B,EAAI,EAAI,GAC1C,KAAK09B,EACD,OAAQ19B,EAAIq5B,GAAKumH,EAAQ,EAC7B,KAAK5/I,EACD,OAAQq5B,EAAIqE,GAAKkiH,EAAQ,GAIrC,SAAS28J,GAAaljR,EAAGqE,EAAG19B,GACxBq5B,EAAI0jR,GAAkB1jR,EAAG,KACzBqE,EAAIq/Q,GAAkBr/Q,EAAG,KACzB19B,EAAI+8S,GAAkB/8S,EAAG,KACzB,IAGIogB,EACAE,EAJA0P,EAAMrQ,KAAKqQ,IAAIqJ,EAAGqE,EAAG19B,GACrB4f,EAAMD,KAAKC,IAAIyZ,EAAGqE,EAAG19B,GACrBg9S,EAAYhtR,EAAMpQ,EAGlB4Z,EAAIwjR,EAAY,EACpB,GAAIhtR,IAAQpQ,EACRQ,EAAIE,EAAI,MACL,CACH,IAAIs/H,EAAQ5vH,EAAMpQ,EAEdU,EADAkZ,EAAI,GACAomH,GAAS,EAAIo9J,GAEbp9J,EAAQo9J,EAEhB58R,EAAI08R,GAAazjR,EAAGqE,EAAG19B,EAAG4/I,GAC1Bx/H,GAAK,EAET,MAAO,CACHA,EAAGkhI,GAAO,IAAMlhI,GAChBE,EAAGghI,GAAO,IAAMhhI,GAChBkZ,EAAG8nH,GAAO,IAAM9nH,IAIxB,SAASyjR,GAAcC,EAAW98R,GAC9B,IAAI+8R,EAAY/8R,EAOhB,MANI,MAAQ88R,IACRC,EAAY/8R,EAAI,EAAI,GAEpB,MAAQ88R,IACRC,EAAY/8R,EAAI,EAAI,GAEjB+8R,EAGX,SAASC,GAAgBD,GAOrB,OANIA,EAAY,IACZA,GAAa,GAEbA,EAAY,IACZA,GAAa,GAEVA,EAGX,SAASE,GAASxjR,EAAGqiB,EAAGihQ,GAEpB,OADAA,EAAYC,GAAgBD,GACxBA,EAAY,EAAI,EACTtjR,EAAI,GAAKqiB,EAAIriB,GAAKsjR,EAEzBA,EAAY,GACLjhQ,EAEPihQ,EAAY,EAAI,EACTtjR,GAAKqiB,EAAIriB,IAAM,EAAI,EAAIsjR,GAAa,EAExCtjR,EAGX,SAASiiR,GAAS17R,EAAGE,EAAGkZ,GACpB,IAAIH,EACAqE,EACA19B,EAIJ,GAHAogB,EAAI28R,GAAkB38R,EAAG,KACzBE,EAAIy8R,GAAkBz8R,EAAG,KACzBkZ,EAAIujR,GAAkBvjR,EAAG,KACrB,IAAMlZ,EACN+Y,EAAIqE,EAAI19B,EAAIw5B,MACT,CACH,IAAI0iB,EAAI1iB,EAAI,GAAKA,GAAK,EAAIlZ,GAAKkZ,EAAIlZ,EAAIkZ,EAAIlZ,EACvCuZ,EAAI,EAAIL,EAAI0iB,EAChB7iB,EAAIgkR,GAASxjR,EAAGqiB,EAAG+gQ,GAAc,IAAK78R,IACtCsd,EAAI2/Q,GAASxjR,EAAGqiB,EAAG+gQ,GAAc,IAAK78R,IACtCpgB,EAAIq9S,GAASxjR,EAAGqiB,EAAG+gQ,GAAc,IAAK78R,IAE1C,MAAO,CAACkhI,GAAO,IAAMjoH,GAAIioH,GAAO,IAAM5jH,GAAI4jH,GAAO,IAAMthJ,IAG3D,SAAS+8S,GAAkBtjR,EAAGzJ,GAE1B,OADAyJ,EAAI9Z,KAAKC,IAAIoQ,EAAKrQ,KAAKqQ,IAAI,EAAGuxC,WAAW9nC,KACrC9Z,KAAKiB,IAAI6Y,EAAIzJ,GAAO,KACb,EAEJyJ,EAAIzJ,EAAMuxC,WAAWvxC,GAGhC,SAASstR,GAA0BjkT,EAAQumB,EAAKoQ,GAG5C,OAFApQ,EAAMA,GAAO,EACboQ,EAAMA,GAAO,MACT32B,EAAS,IAAM,GAAKA,EAASumB,GAAOvmB,EAAS22B,GAAO,kBAAoB32B,GAAUmI,MAAMnI,IAKhG0iT,GAAMphR,UAAY,CACd4T,YAAawtQ,GACbwB,UAAW,SAASh/J,GAEhB,OADAA,EAAOA,GAAQ,GACRvgJ,KAAKw/S,MAAMj/J,GAAMk/J,SAE5BC,OAAQ,SAASn/J,GAEb,OADAA,EAAOA,GAAQ,GACRvgJ,KAAKw/S,OAAOj/J,GAAMk/J,SAE7BD,MAAO,SAASj/J,GACZ,IAAIthJ,EAAS,IAAI8+S,GAIjB,OAHA9+S,EAAOo8B,EAAI8iR,GAAUn+S,KAAKq7B,EAAIklH,GAC9BthJ,EAAOygC,EAAIy+Q,GAAUn+S,KAAK0/B,EAAI6gH,GAC9BthJ,EAAO+C,EAAIm8S,GAAUn+S,KAAKgC,EAAIu+I,GACvBthJ,GAEX0gT,MAAO,SAASC,EAAYlnP,GACxB,IAAImnP,EAAQD,aAAsB7B,GAAQ6B,EAAa,IAAI7B,GAAM6B,GAC7D3gT,EAAS,IAAI8+S,GAIjB,OAHA9+S,EAAOo8B,EAAI8iR,GAAU76J,GAAOtjJ,KAAKq7B,GAAK,EAAIq9B,GAAWmnP,EAAMxkR,EAAIq9B,IAC/Dz5D,EAAOygC,EAAIy+Q,GAAU76J,GAAOtjJ,KAAK0/B,GAAK,EAAIg5B,GAAWmnP,EAAMngR,EAAIg5B,IAC/Dz5D,EAAO+C,EAAIm8S,GAAU76J,GAAOtjJ,KAAKgC,GAAK,EAAI02D,GAAWmnP,EAAM79S,EAAI02D,IACxDz5D,GAEXwgT,MAAO,WACH,OAAOf,GAAa1+S,KAAKq7B,EAAGr7B,KAAK0/B,EAAG1/B,KAAKgC,IAE7C89S,aAAc,WACV,IAAI/W,EAAM8U,GAAS79S,KAAKo+S,IAAIh8R,EAAG,IAAK,KACpC,OAAO,IAAI27R,GAAM,OAAShV,EAAI/sS,KAAK,KAAO,MAE9C+jT,WAAY,SAASC,GACjB,MAAO,qCAAqCptR,KAAKotR,IAErDC,WAAY,SAAS5kR,EAAGqE,EAAG19B,GACvB,SAAKs9S,GAA0BjkR,IAAOikR,GAA0B5/Q,IAAO4/Q,GAA0Bt9S,KAKrGk+S,aAAc,SAASn+S,GACnB,QAAIyB,MAAMzB,IAAMA,EAAI,GAAKA,EAAI,GAAK,kBAAoBA,IAK1Dm8S,gBAAgB,EAChBiC,QAAS,SAAS7B,GACd,IAAInsS,EAAQ,IAAI4rS,GACZhV,EAAM+U,GAASQ,EAAIl8R,EAAGk8R,EAAIh8R,EAAGg8R,EAAI9iR,GAIrC,OAHArpB,EAAMkpB,EAAI0tQ,EAAI,GACd52R,EAAMutB,EAAIqpQ,EAAI,GACd52R,EAAMnQ,EAAI+mS,EAAI,GACP52R,IC7eF,iBCoBA,iBAAb,IAQIiuS,GAAQz+R,KASR0+R,IARKD,GAAME,GACJF,GAAMx+R,IACNw+R,GAAMx9R,IACLw9R,GAAMG,KACPH,GAAM7+N,IACJ6+N,GAAMI,MACRJ,GAAMK,IACNL,GAAMM,IACHn8R,Q,UCrCD,iB,UCCA,iBCsBb,SAASo8R,GAAQx6S,EAAM6K,EAAS+iS,GAC5B,IAAK5tS,EACD,OAAO,IAAK,eAAUqpB,UAE1B,IAAIoxR,EAAkB5vS,EAAQ4vS,gBAC1BC,EAAiB7vS,EAAQ6vS,eACzBC,EAAmB9vS,EAAQ8vS,iBAC3B9mM,EAAY,CACZ7sE,SAAUn8B,EAAQm8B,SAClB9zC,OAAQ2X,EAAQ3X,OAChBu2D,QAAQ,GAMZ,OAJI,eAAU5+C,EAAQ+vS,oBAClB/mM,EAAU+mM,iBAAmB/vS,EAAQ+vS,kBAEzC,eAAYH,IAAoBA,EAAgB5mM,GAC3CA,EAAUpqD,QAaR,IAAK,eAAUpgC,UAZXukR,EAAQ5tS,EAAM6K,GAASM,KAAKg4B,IAM/B,GALA,eAAYu3Q,IAAmBA,IAC3B,eAAYC,KACZ9mM,EAAU7zG,KAAOmjC,EACjBw3Q,EAAiB9mM,KAEhBA,EAAUpqD,OAAQ,CACnB,IAAIv2D,EAAS,SAAW2X,EAAQ3X,OAAS,QAAU2X,EAAQ3X,OAC3D+oS,GAAU3vR,OAAOunG,EAAU7sE,SAAU9zC,EAAQiwC,EAAMt4B,EAAQ+gD,SAAU/gD,EAAQg1R,eAUtF,IAAIgb,GAAQ,CACfC,QAAShU,GACT8G,QAAS,GACTmN,gBAAiB,ICnDjB,GAAqB,iBACrBC,GAA6B,GAAqB,WAClDC,GAA0B,GAAqB,QAC/CC,GAAgC,GAAqB,cACrDC,GAA+B,GAAqB,aACpDC,GAA8BH,GAA0B,aACxDI,GAAuB,oBACvBC,GAAmB,QAAiBpiP,QAAQ,CAC5C,iBACIr/D,KAAKC,WACLD,KAAK82H,iBAAiBC,oBAAoB,CACtChwH,KAAM,IAAI,QAAiB,CAAC+d,EAAY3e,EAAMrB,KAC1C9E,KAAK0hT,mBAAmB58R,GACxB,IAAIqmC,EAAWnrD,KAAK+nB,OAAO,kBAC3B/nB,KAAKooB,iBAAiBtD,EAAY,cAAQ,OAAArqB,EAAA,WAAO,GAAIqK,EAAOqB,EAAMnG,KAAK2hT,yBAA0B,CAC7FC,cAAe5hT,KAAK6hT,mBAAmB12P,GAAYrmD,EAAQ,GAC3DqmD,SAAUrmD,EAAMqmD,UAAYA,MAEjC,CAAC,OAAQ,OAAQ,OAAQ,WAAY,UAAW,QAASnrD,KAAK+nB,OAAO,sCAGhF,yBACI,MAAO,CACH88B,mBAAmB,EACnBqG,QAAS,KACThG,kBAAmBllD,KAAK+nB,OAAO,qBAC/B+6B,mBAAoB9iD,KAAK+nB,OAAO,sBAChC0tJ,YAAaz1K,KAAK+nB,OAAO,iBAGjC6tF,mBAAoB,WAChB,OAAO,OAAAn7G,EAAA,WAAOuF,KAAKC,WAAY,CAC3BguM,qBAAsB,QAG9B,mBAAmB9iJ,GACf,OAAO,eAAWA,IAAanrD,KAAK+nB,OAAO,gCAAgCojC,IAE/E,mBAAmBggD,GACf,IAAIsI,EAAYtI,EAAMhlG,KAAK,eAC3B,IAAMstG,GAAatI,EAAM7jF,SAAS+5R,IAClC,IAAI34R,EAAQ1oB,KAAK+nB,OAAO,SACxBW,GAAS+qF,IAAc/qF,EAAM9uB,OAAS,GAAKuxG,EAAM7jF,SAASg6R,IAC1Dn2M,EAAM7jF,SAASk6R,KAEnB,mBAAmB3iQ,GAEf,OADAA,EAAK12B,UAAY,eAAE02B,EAAK12B,WAAW+F,SAC5BluB,KAAKC,SAAS4+C,IAEzBo1H,yBAA0B,SAASp1H,EAAMq8D,GAErC,OADAr8D,EAAK12B,UAAY,eAAE02B,EAAK12B,UAAUk/C,WAAWoS,SACtCz5E,KAAKC,SAAS4+C,EAAMq8D,IAE/B,eACI,OAAOl7G,KAAKgmB,WAAWkI,UAE3B,8BACI,OAAOluB,KAAKoiH,gBAEhB,kBACIpiH,KAAK8hT,kBACL9hT,KAAKkuG,kBAET+L,WAAY,IAAMmnM,GAClB/0G,mBAAoB,SAASzoM,GACrB,WAAa5D,KAAK+nB,OAAO,kBAAoB/nB,KAAKmkI,eAAevgI,EAAE8lE,gBAGvE1pE,KAAKC,SAAS2D,MAGlBm+S,GAAc,OAAO1iP,QAAQ,CAC7B,qBACI,OAAO,OAAA5kE,EAAA,WAAOuF,KAAKC,WAAY,CAC3BilD,mBAAmB,EACnBL,mBAAmB,EACnBkxE,cAAe,SACf+P,cAAe,GACf9P,iBAAkB,GAClBy/C,YAAa,YACbrwH,QAAS,OACT18B,MAAO,GACP0sG,eAAgB,UAChBntE,mBAAoB,KACpB03B,YAAa,QAGrB,QACI3/E,KAAKC,WACLD,KAAKgiT,0BAET,yBACIhiT,KAAK22H,iBAAmB32H,KAAKuhE,sBAAsB,gBAEvD,cACIvhE,KAAKosB,QAAQ,OAAQ,SACrBpsB,KAAKgmB,WAAWsB,SAAS,IACzBtnB,KAAKuzJ,iBACLvzJ,KAAKiiT,wBACLjiT,KAAKC,YAET68G,0BAA2B,SAASY,EAAYC,GAC5C39G,KAAKuhE,sBAAsB,qBAAsB,CAC7C4S,kBAAmB,CAAC,WAAY,aADpCn0E,CAEG,CACC09G,WAAYA,EACZC,aAAcA,KAGtB,iBACI,IAAIukM,EAAW,eAAE,SAAS56R,SAAS65R,IAA4B55R,SAASvnB,KAAKgmB,YACzE8/G,EAAgB9lI,KAAK+nB,OAAO,iBAC5B/W,EAAU,CACV+kH,cAAe/1H,KAAK+nB,OAAO,iBAC3BW,MAAO1oB,KAAK+nB,OAAO,SACnBq9B,QAASplD,KAAK+nB,OAAO,WACrBqtG,eAAgBp1H,KAAK+nB,OAAO,kBAC5B4vC,kBAAkB,EAClBq+D,iBAAkBh2H,KAAK+nB,OAAO,oBAC9B88B,kBAAmB7kD,KAAK+nB,OAAO,qBAC/Bm9B,kBAAmBllD,KAAK+nB,OAAO,qBAC/B+6B,mBAAoB9iD,KAAK+nB,OAAO,sBAChC0tJ,YAAaz1K,KAAK+nB,OAAO,eACzB86B,UAAW7iD,KAAK+nB,OAAO,aACvByhC,SAAUxpD,KAAK+nB,OAAO,YACtBw9B,WAAY,GACZ++I,mBAAmB,EACnBnuE,eAAgBvyH,IACZ,IAAI2D,EAAQvH,KAAK+nB,OAAO,SACxB,eAAUxgB,IAAU,eAAE3D,EAAEm2G,aAAazyF,SAASi6R,KAElDt5P,mBAAoBrkD,IAChB5D,KAAKiiT,wBACLjiT,KAAK88G,0BAA0Bl5G,EAAE85G,WAAY95G,EAAE+5G,eAEnDh+B,YAAa/7E,IACT5D,KAAK22H,iBAAiB/yH,KAG1B,eAAUkiI,IAAkBA,EAAclsI,SAC1CoX,EAAQ80H,cAAgBA,GAE5B9lI,KAAKmiT,mBAAqBniT,KAAKooB,iBAAiB85R,EAAUT,GAAkBzwS,IAEhF,wBACIhR,KAAKsgE,8BAA8B,gBAAiBtgE,KAAKmiT,mBAAmBp6R,OAAO,kBACnF/nB,KAAKsgE,8BAA8B,mBAAoBtgE,KAAKmiT,mBAAmBp6R,OAAO,sBAE1F,eAAe82B,GACX,OAAQA,EAAKj9C,MACT,IAAK,cACL,IAAK,gBACL,IAAK,UACL,IAAK,iBACL,IAAK,QACL,IAAK,qBACL,IAAK,oBACL,IAAK,oBACL,IAAK,WACD5B,KAAK4iE,cACL,MACJ,IAAK,mBACL,IAAK,gBACD5iE,KAAKmiT,mBAAmBp6R,OAAO82B,EAAKj9C,KAAMi9C,EAAKh9C,OAC/C,MACJ,IAAK,cACD7B,KAAKgiT,yBACL,MACJ,IAAK,qBACD,MACJ,IAAK,QACDhiT,KAAKC,SAAS4+C,GACd7+C,KAAKmiT,mBAAmB76G,eAAezjI,YAAY09O,KAA+B1iQ,EAAKh9C,OACvF,MACJ,QACI7B,KAAKC,SAAS4+C,OAI9B,eAAkB,gBAAiBkjQ,IACpB,UCxJXK,GAAyB,oBACzBC,GAA2B,4BAC3BC,GAAgC,2BAChCC,GAAgC,2BAChCC,GAAmC,8BACnCC,GAAuC,kCACvCC,GAAiC,4BACjCC,GAAuB,iBACvBC,GAAsB,gBACtBC,GAAiB,OAAOxjP,QAAQ,CAChC,qBACI,OAAO,OAAA5kE,EAAA,WAAOuF,KAAKC,WAAY,CAC3B01H,aAAc,OACdvwE,QAAS,OACTp1B,iBAAa,EACbynF,aAAc,KACdkF,gBAAiB,KACjB84D,YAAa,WACbniH,gBAAgB,EAChB/N,WAAY,OAAoBlsD,OAAO,iCACvCypT,eAAe,EACfC,aAAa,EACbC,eAAe,EACfzmT,KAAM,GACN0uD,UAAM,EACN2qE,cAAe,KACf3tE,mBAAoB,KACpB03B,YAAa,KACbm2C,QAAQ,EACRptG,MAAO,KACPa,WAAY,KACZs7B,mBAAmB,EACnBK,mBAAmB,EACnB+9P,gBAAiB,GACjBC,wBAAyB,UACzBC,cAAc,EACdC,oBAAoB,EACpBt2P,SAAS,EACTu2P,cAAe,QACfC,mBAAoB,MAG5B,yBACItjT,KAAKC,WACL,OAAAxF,EAAA,WAAOuF,KAAKigH,oBAAqB,CAC7BxI,cAAc,KAGtB,QACIz3G,KAAKC,WACLD,KAAKgiT,yBACLhiT,KAAKujT,2BACLvjT,KAAKwjT,gCACLxjT,KAAK0iG,kBACL1iG,KAAKyjT,oBACLzjT,KAAK0jT,wBACL1jT,KAAK2jT,mBAAmB3jT,KAAK+nB,OAAO,UACpC/nB,KAAKqwK,SAASuzI,MAAM,qBAAsB5jT,KAAK+nB,OAAO,uBACtD/nB,KAAKqwK,SAASuzI,MAAM,kBAAmB5jT,KAAK+nB,OAAO,qBAEvD,iBACI/nB,KAAK82H,iBAAiBC,oBAAoB,CACtC9tD,QAAS,IAAI,QAAiBj4D,IAC1B,IAAIq5G,EAAgB,eAAEr5G,EAAQmX,WAC1B07R,EAAiB,eAAE,SAASt8R,SAAS8iG,GACzCrqH,KAAKu1H,MAAQv1H,KAAKooB,iBAAiBy7R,EAAgB,QAAM7jT,KAAK+3H,gBAC9D/3H,KAAKu1H,MAAM6xC,mBAAmB,SAAUpnK,KAAK8jT,YAAYt5R,KAAKxqB,OAC9DA,KAAKu1H,MAAM6xC,mBAAmB,MAAOpnK,KAAK8jT,YAAYt5R,KAAKxqB,OAC3DA,KAAKu1H,MAAM6xC,mBAAmB,YAAapnK,KAAK8jT,YAAYt5R,KAAKxqB,OACjEA,KAAKu1H,MAAM6xC,mBAAmB,aAAcpnK,KAAK8jT,YAAYt5R,KAAKxqB,WAG1EA,KAAKC,YAET0jT,mBAAoB,SAAS9hT,GACpB7B,KAAKwpB,cACNxpB,KAAKwpB,YAAc,IAAI,QAAW,CAC9ByG,MAAO,IAAI,QAAW,CAClBn1B,IAAKkF,KAAK+jT,UACV59S,KAAMtE,IAEV25D,SAAU,MAItBuoP,QAAS,WACL,IAAI3xE,EACAhtL,EAAUplD,KAAK+nB,OAAO,WACtBi8R,EAAW,QAAU5xE,EAAoBpyO,KAAKwpB,mBAAgB,IAAW4oN,OAAoB,EAASA,EAAkBt3O,MAC5H,OAAO,eAAUkpT,IAAe,eAAU5+P,IAAY,SAAWA,EAAsBA,EAAX4+P,GAEhF,oBACIhkT,KAAKikT,WAAa,gBAAcjkT,KAAK+jT,YAEzC,wBACI/jT,KAAKkkT,eAAiB,gBAAclkT,KAAK+nB,OAAO,iBAEpD,cACI/nB,KAAKC,WACLD,KAAKgmB,WAAWsB,SAAS86R,IACzBpiT,KAAKmkT,qBACLnkT,KAAKokT,oBACD,eAAUpkT,KAAK+nB,OAAO,qBACtB/nB,KAAKqkT,oBAAoBl3R,KAAKntB,KAAKskT,oBAAoB95R,KAAKxqB,QAGpE63J,mBAAoB,OACpB,UACS73J,KAAK+nB,OAAO,oBAAqB/nB,KAAK+nB,OAAO,WAC9C/nB,KAAKm3H,eAETn3H,KAAKC,YAET,qBAII,OAHID,KAAK01H,QACL11H,KAAKi/K,sBAEFj/K,KAAKC,YAEhB,oBACI,IAAIskT,EACJ,QAAUA,EAAwBvkT,KAAKwkT,2BAAwB,IAAWD,GAAiCA,EAAsB1gR,SACjI,IAAI3hB,EAAI,IAAI,cACZ,GAAIliB,KAAKu1H,YAAS,IAAWv1H,KAAKykT,sBAAuB,CACrD,IAAIC,EAAe1kT,KAAK+nB,OAAO,iBAAmB/nB,KAAKu1H,MAAMxtG,OAAO,gBAAkB/nB,KAAKykT,sBAC3F,OAAOviS,EAAEsN,QAAQk1R,GAErB1kT,KAAKykT,2BAAwB,EAC7B,IAAI9nM,EAAkB38G,KAAK+nB,OAAO,mBAKlC,OAJA/nB,KAAK2kT,YAAY3kT,KAAK+jT,UAAWpnM,GAAiBxvF,KAAKjL,EAAEsN,SAASG,KAAK,KACnEzN,EAAEsN,QAAQ,QAEdxvB,KAAKwkT,oBAAsBtiS,EACpBA,EAAEoO,WAEb,2BACItwB,KAAK4kT,mBAAqB5kT,KAAKuhE,sBAAsB,kBAEzD,gCACIvhE,KAAK6kT,wBAA0B7kT,KAAKuhE,sBAAsB,uBAE9D,yBACIvhE,KAAK22H,iBAAmB32H,KAAKuhE,sBAAsB,gBAEvD,4BAA4Br0D,GACxB,IACIs+E,cAAeA,EACf3pF,MAAOA,GACPqL,EACJlN,KAAK6kT,wBAAwB,CACzB99S,KAAMlF,EACNijT,aAAct5N,KAGtB,qBAAqBkL,GACjB,IACIp1B,MAAOA,EACPy4C,YAAaA,EACbj6B,SAAUA,GACV4W,EACJ,OAAO12F,KAAK22H,iBAAiB,CACzBr1D,MAAOA,EACPy4C,YAAaA,EACbj6B,SAAU9/E,KAAK+kT,aAAejlO,KAGtC,sBACI,MAAO,CACHvjF,KAAMyD,KAAK+nB,OAAO,QAClBkjC,KAAMjrD,KAAK+nB,OAAO,QAClBk8B,YAAa,CACT04M,MAAO2lD,MAInB,uBACI,IAAI55R,EAAQ,GAUZ,OATAA,EAAMzlB,KAAKjD,KAAKglT,uBACZhlT,KAAK+nB,OAAO,gBACZW,EAAMzlB,KAAK,CACPgoD,KAAM,WACNhH,YAAa,CACT04M,MAAO4lD,MAIZ75R,GAEX,sBAAsBy0E,GAClB,IACI77B,MAAOA,EACPwe,SAAUA,GACVqd,EACA8nN,EAAiBnlO,EAAS77B,YAAY04M,QAAU2lD,GAChD4C,EAAiBplO,EAAS77B,YAAY04M,QAAU4lD,GAChD2C,EACAllT,KAAKwuG,SACEy2M,IACPjlT,KAAK4kT,mBAAmB,CACpBtjP,MAAOA,EACPm2C,aAAcz3G,KAAK+nB,OAAO,kBAEzB/nB,KAAK+nB,OAAO,gBACb/nB,KAAKwuG,WAIjB,sBACI,IACIu0M,YAAaA,EACbC,cAAeA,EACfn+P,kBAAmBA,EACnBK,kBAAmBA,EACnBuwH,YAAaA,EACb5yH,UAAWA,EACX2G,SAAUA,GACVxpD,KAAK+nB,SACLqtG,EAAiB2tL,IAAgBC,EAAgB,UAAY,CAAC3lN,EAAO8nN,KACrE,IACI5oT,KAAMA,EACN0uD,KAAMA,GACNoyC,EACA+nN,EAAa,gBAAkBn6P,GAC/Bo6P,EAAiB9oT,EAAO,eAAE,UAAUA,KAAKA,GAAM+qB,SAASq7R,SAAwB,EAChF2C,EAAc,gBAAkB,YAAYh+R,SAASs7R,IACzD,eAAEuC,GAAev7Q,OAAOw7Q,EAAYC,EAAgBC,IAExD,OAAO,OAAA7qT,EAAA,WAAO,CACViuB,MAAO1oB,KAAKulT,uBACZ5lO,YAAa3/E,KAAKwlT,sBAAsBh7R,KAAKxqB,MAC7CuH,MAAO,OACPmK,OAAQ,OACRqkH,cAAe,OACfghD,kBAAmBnzK,GAAK5D,KAAKioJ,iBAAiBrkJ,GAC9CwxH,eAAgBA,EAChBvwE,kBAAmBA,EACnBK,kBAAmBA,EACnBuwH,YAAaA,EACb5yH,UAAWA,EACX2G,SAAUA,GACXxpD,KAAKqwK,SAASuzI,MAAM,wBAE3B,sBACI,IAAIhnO,EAAW58E,KAAK01H,OAAO94C,WACvBzxB,EAAWnrD,KAAK65H,qBAAqB,2BAIzC,OAHAj9C,EAASlb,QACT1hE,KAAKylT,gBAAkB,MAAQ,IAAI,QACnCzlT,KAAKosB,QAAQ,KAAMpsB,KAAKylT,gBAAiB7oO,GAClCzxB,EAAShnD,OAAO,CACnBgkB,UAAW,eAAiBy0D,GAC5B93E,MAAO9E,KAAK+nB,OAAO,UAAY/nB,KAAKwpB,eAG5C,gBACI,IAAIu4L,EAAsB/hN,KAAK+nB,OAAO,cAAgB,QAAU,OAChE,OAAO,OAAAttB,EAAA,WAAO,CACV+4D,aAAa,EACb3O,mBAAmB,EACnByO,eAAgBtzD,KAAK+nB,OAAO,kBAC5B4rC,mBAAoB/vD,IAChB,IAAIoiB,EAAWhmB,KAAKgmB,WAChB0/R,EAAiB,eAAE9hT,EAAE0hB,QAAQ2H,QAAQ,IAAIpb,OAAOuwS,KACpD,OAAQsD,EAAe93T,GAAGo4B,IAE9B6uC,WAAW,EACX3B,UAAW,CACPzI,KAAM,CACFhsD,KAAM,OACNu7D,SAAU,EACVj1B,KAAM,EACNrsC,GAAI,GAER8xD,KAAM,CACF/rD,KAAM,OACNu7D,SAAU,IACVj1B,KAAM,EACNrsC,GAAI,IAGZ0jP,iCAAiC,EACjC70O,MAAO,IAAM,gBAAgBvH,KAAKgmB,YAClCtU,OAAQ,OACRuW,SAAS,EACTusC,SAAU,CACNlsC,GAAItoB,KAAKgmB,WACTwC,UAAW,UACXozC,GAAImmJ,EAAsB,OAC1BrmJ,GAAIqmJ,EAAsB,WAE9B/sJ,YAAa,CACT2nM,MAAO+lD,KAEZ1iT,KAAKqwK,SAASuzI,MAAM,mBAAoB,CACvCj6P,QAAS3pD,KAAK+nB,OAAO,aAG7B,eACI,IAAI40F,EAAkB38G,KAAK+nB,OAAO,mBAC9B+6R,EAAgB9iT,KAAK+nB,OAAO,iBAChC,MAAO,CACHguG,cAAe+sL,EAAgB,SAAW,OAC1CK,aAAcnjT,KAAK+nB,OAAO,gBAC1B88B,kBAAmB7kD,KAAK+nB,OAAO,qBAC/Bm9B,kBAAmBllD,KAAK+nB,OAAO,qBAC/Bq7R,mBAAoBpjT,KAAK+nB,OAAO,sBAChC89B,eAAgB,IAAM7lD,KAAKmsH,0BAC3B6J,iBAAkB,eAAUrZ,IAAoBmmM,EAAgB,CAACnmM,GAAmB,GACpF7vD,QAAS9sD,KAAK+nB,OAAO,WACrBs7R,cAAerjT,KAAK+nB,OAAO,iBAC3Bq9B,QAASplD,KAAK+jT,UACdx+P,WAAYvlD,KAAK+nB,OAAO,cACxBiI,YAAahwB,KAAK+nB,OAAO,eACzB4tG,aAAc31H,KAAK+nB,OAAO,gBAC1BW,MAAO1oB,KAAK+nB,OAAO,SACnBwB,WAAYvpB,KAAKwpB,YACjBm2D,YAAa/7E,IACJ5D,KAAK+nB,OAAO,mBACb/nB,KAAKykT,sBAAwB7gT,EAAEk8E,UAEnC9/E,KAAK+nB,OAAO,kBAAmB/nB,KAAKikT,WAAWrgT,EAAEk8E,WACjD,IAAI6lO,EAAe3lT,KAAK4lT,qBAAqBhiT,IACzC,IAAU+hT,IACV3lT,KAAKwuG,QAAO,GACZxuG,KAAK6lT,aAAa7yS,YAKlC,oBAMI,OALIhT,KAAK01H,QAAU11H,KAAK01H,OAAO3tG,OAAO,YAAc/nB,KAAKu1H,MACrDv1H,KAAKu1H,MAAMviH,QAEXhT,KAAK24H,QAEF,GAEX,cAGI,OAFA34H,KAAK44H,QACL54H,KAAK6lT,aAAa7yS,SACX,GAEX,cAEI,OADAhT,KAAK44H,SACE,GAEX,eACI,IAAInB,EAAS,eAAE,SACfz3H,KAAKgmB,WAAW4jB,OAAO6tF,GACvBz3H,KAAK01H,OAAS11H,KAAKooB,iBAAiBqvG,EAAQ,QAAOz3H,KAAK03H,iBACxD13H,KAAK01H,OAAO94C,WAAWt1D,SAAS+6R,IAChCriT,KAAK01H,OAAOza,WAAW3zF,SAASm7R,IAChCziT,KAAK01H,OAAOrwH,GAAG,SAAUrF,KAAK8lT,oBAAoBt7R,KAAKxqB,OACvDA,KAAK01H,OAAOrwH,GAAG,UAAWrF,KAAKo/K,qBAAqB50J,KAAKxqB,OACzDA,KAAK+lT,wBAAwB/lT,KAAK01H,OAAQ,oBAE9C,sBACI11H,KAAK+nB,OAAO,UAAU,GACtB/nB,KAAKgmT,kBAAiB,IAE1BC,oBAAqB,SAASpnQ,GAC1B,IAAI7tC,EAAU,OAAOk1S,wBAAwBrnQ,GAC7C7+C,KAAK46K,gBAAgB5pK,GACrB,IAAIm1S,EAAc3oT,OAAO84B,KAAKtlB,IACzB,IAAMm1S,EAAY7nT,QAAQ,WAAa,IAAM6nT,EAAY7nT,QAAQ,WAClE0B,KAAK86H,qBAGbA,kBAAmB,WACf,IAAInG,EAAa,gBAAa30H,KAAK+nB,OAAO,+BACtC,IAAW4sG,GACX30H,KAAK46K,gBAAgB,QAAS,IAAM,gBAAgB56K,KAAKgmB,cAGjE40J,gBAAiB,SAASvwH,EAAYxoD,GAClC7B,KAAKomT,iBAAiB,SAAUlmT,YAEpC,uBACIF,KAAK+nB,OAAO,UAAU,GACtB/nB,KAAKgmT,kBAAiB,IAE1B,iBAAiBnkT,GACb7B,KAAKqmT,sBAAsBnlT,QAAQolT,IAC/BtmT,KAAKosB,QAAQ,CACT8qG,SAAUr1H,EACV0kT,KAAM1kT,EAAQ7B,KAAKylT,qBAAkB,GACtC,eAAEa,OAGb,qBACI,IAAIE,EAAexmT,KAAK6lT,cAAgB7lT,KAAK6lT,aAAa7/R,YAAc,eAAE,SACrEhmB,KAAK6lT,cACN7lT,KAAKgmB,WAAW4jB,OAAO48Q,GAE3BxmT,KAAK6lT,aAAe7lT,KAAKooB,iBAAiBo+R,EAAc,GAAaxmT,KAAKymT,uBAC1E,IAAIC,EAAiB1mT,KAAK6lT,aAAa7/R,WAAWiB,KAAK,cAAcw3D,UACrEz+E,KAAKqmT,sBAAwB,IAAIK,EAAgB1mT,KAAKgmB,YACtDhmB,KAAK6lT,aAAaz+I,mBAAmB,YAAapnK,KAAK2mT,kBAAkBn8R,KAAKxqB,OAC9EA,KAAK6lT,aAAaz+I,mBAAmB,MAAOpnK,KAAK4mT,YAAYp8R,KAAKxqB,OAClEA,KAAK6lT,aAAaz+I,mBAAmB,UAAWpnK,KAAK2mT,kBAAkBn8R,KAAKxqB,OAC5EA,KAAK6lT,aAAaz+I,mBAAmB,SAAUpnK,KAAK8jT,YAAYt5R,KAAKxqB,OACrEA,KAAK+lT,wBAAwB/lT,KAAK6lT,aAAc,sBAChD7lT,KAAKgmT,iBAAiBhmT,KAAK+nB,OAAO,YAEtC,oBACI,IAAI8+R,EAAW7mT,KAAK+nB,OAAO,gBAAkB/nB,KAAK+nB,OAAO,iBACzD/nB,KAAKgmB,WAAW69C,YAAY2+O,GAAkCqE,IAElE,OAAOl9P,GAKH,OAJK3pD,KAAK01H,SACN11H,KAAKm3H,eACLn3H,KAAKkuG,kBAEFluG,KAAK01H,OAAOlnB,OAAO7kD,IAE9B,OACI,OAAO3pD,KAAKwuG,QAAO,IAEvB,QACI,OAAOxuG,KAAKwuG,QAAO,IAEvB,eAAe5sG,EAAMC,GACjB7B,KAAKu1H,OAASv1H,KAAKu1H,MAAMxtG,OAAOnmB,EAAMC,IAE1C,iBAAiBkF,GACb,IAAI+/S,GAAmB,eAAc//S,GACjCstF,EAAeyyN,EAAkB//S,EAAO/G,KAAKkkT,eAAen9S,GAChE,OAAQ,eAAcstF,GAA0D,GAA1C16F,OAAO,eAAc06F,EAAc,MAE7E,oBAAoBojB,GACZz3G,KAAK+nB,OAAO,kBACZ/nB,KAAK+nB,OAAO,CACRxrB,KAAMyD,KAAK+mT,iBAAiBtvM,GAC5BxsD,KAAM,eAAcwsD,GAAgBA,EAAaxsD,UAAO,IAGhEjrD,KAAKsgE,8BAA8B,eAAgBm3C,GACnDz3G,KAAKsgE,8BAA8B,kBAAmBtgE,KAAKikT,WAAWxsM,KAE1E,SACIz3G,KAAKu1H,OAASv1H,KAAKu1H,MAAMvvG,WAAW8B,SACpC9nB,KAAK01H,QAAU11H,KAAK01H,OAAO1vG,WAAW8B,UAE1C,wBAAwBjmB,GACpB7B,KAAKgnT,eAAe,mBAAoBhnT,KAAK+nB,OAAO,kBAAoB,eAAUlmB,GAAS,CAACA,GAAS,IACrG,IAAIijT,EAAe9kT,KAAK+nB,OAAO,gBAC/B/nB,KAAKqkT,oBAAoBl3R,KAAKsqF,IAC1Bz3G,KAAKskT,oBAAoB7sM,GACrBz3G,KAAKkkT,eAAeY,KAAkB9kT,KAAKkkT,eAAezsM,IAC1Dz3G,KAAKinT,4BAA4B,CAC7Bz7N,cAAes5N,EACfjjT,MAAO41G,OAKvB,2BAA2Bpc,GACvB,IACIz5F,KAAMA,EACNC,MAAOA,GACPw5F,EACA6rN,EAAY,GAChBA,EAAUtlT,GAAQC,EAClB7B,KAAK6lT,aAAa99R,OAAO,WAAY,OAAAttB,EAAA,WAAO,GAAIuF,KAAKglT,sBAAuBkC,IAC5ElnT,KAAK01H,QAAU11H,KAAK01H,OAAO8G,WAE/B,mBAAmB36H,GACf,GAAIA,EAAO,CACP7B,KAAKgnT,eAAe,gBAAiB,UACrC,IAAIrqM,EAAkB38G,KAAK+nB,OAAO,mBAClC/nB,KAAKgnT,eAAe,mBAAoB,eAAUrqM,GAAmB,CAACA,GAAmB,IACzF38G,KAAKmnT,wBAAwBnnT,KAAK+nB,OAAO,yBAEzC/nB,KAAKgnT,eAAe,gBAAiB,QACrChnT,KAAK+nB,OAAO,CACR40F,qBAAiB,EACjBlF,kBAAc,IAElBz3G,KAAKonT,2BAA2B,CAC5B7qT,KAAMyD,KAAK+nB,OAAO,WAI9B,sBAAsBsiC,GAClB,IAAIsyD,EAAkB38G,KAAK+nB,OAAO,mBAClC/nB,KAAKgnT,eAAe,eAAgB,MACpChnT,KAAKomT,iBAAiB,QAAS,CAAC/7P,IAC5B,eAAUsyD,IACV38G,KAAKqkT,oBAAoBl3R,KAAKsqF,IAC1Bz3G,KAAKgnT,eAAe,mBAAoB,CAACrqM,IACzC38G,KAAKgnT,eAAe,eAAgBvvM,KACrC9nF,KAAKyS,IACJpiC,KAAKgnT,eAAe,mBAAoB,MACzCl1N,OAAO9xF,KAAKskT,oBAAoB95R,KAAKxqB,QAGhDqnT,kBAAmB,WACf,IAAI3+R,EAAQxoB,UAAUtG,OAAS,QAAK,IAAWsG,UAAU,GAAKA,UAAU,GAAKF,KAAKwpB,YAAYd,QAC9F1oB,KAAKwpB,iBAAc,EACnBxpB,KAAK2jT,mBAAmBj7R,GACxB1oB,KAAKsnT,kBAETA,eAAgB,WACZtnT,KAAKyjT,oBACLzjT,KAAKgnT,eAAe,UAAWhnT,KAAK+jT,YAExC/wS,MAAO,WACHhT,KAAK6lT,aAAa7yS,SAEtB,eAAe6rC,GACX,IAAIoiI,GAEAr/K,KAAMA,EACNC,MAAOA,GACPg9C,EACJ,OAAQj9C,GACJ,IAAK,gBACD5B,KAAKunT,mBAAmB1lT,GACxB,MACJ,IAAK,cACD7B,KAAKokT,oBACLpkT,KAAKmkT,qBACL,MACJ,IAAK,cACDnkT,KAAK0jT,wBACL1jT,KAAKgnT,eAAeplT,EAAMC,GAC1B7B,KAAKskT,oBAAoBtkT,KAAK+nB,OAAO,iBACrC,MACJ,IAAK,UACD/nB,KAAKqnT,oBACL,MACJ,IAAK,qBACDrnT,KAAKwnT,0BAA0BxnT,KAAK6lT,aAAchnQ,GAClD,MACJ,IAAK,kBACD,GAAI,4BAA8BA,EAAK4sC,SACnC,WAEA,IAAW5sC,EAAKh9C,MAAM8nD,gBACf9K,EAAKh9C,MAAM8nD,QAEtB3pD,KAAKimT,oBAAoBpnQ,GACzB7+C,KAAKwnT,0BAA0BxnT,KAAK01H,OAAQ72E,GAC5C,MACJ,IAAK,SACD7+C,KAAKwuG,OAAO3sG,GACZ,MACJ,IAAK,oBACL,IAAK,oBACD7B,KAAKgnT,eAAeplT,EAAMC,GAC1B7B,KAAK6lT,aAAa99R,OAAOnmB,EAAMC,GAC/B7B,KAAKC,SAAS4+C,GACd,MACJ,IAAK,QACD7+C,KAAKqnT,kBAAkBrnT,KAAK+nB,OAAO,UACnC/nB,KAAKynT,sBAAsB7lT,GAC3B,MACJ,IAAK,aACG/C,MAAM0nB,QAAQ1kB,GACd7B,KAAKqnT,kBAAkBrnT,KAAK+nB,OAAO,gBAEnC/nB,KAAK0iG,kBACL1iG,KAAKsnT,kBAETtnT,KAAKynT,sBAAsB7lT,GAC3B,MACJ,IAAK,OACL,IAAK,OACD5B,KAAKonT,2BAA2BvoQ,GAChC,MACJ,IAAK,gBACD7+C,KAAKokT,oBACLpkT,KAAKmkT,qBACLnkT,KAAK01H,QAAU11H,KAAK01H,OAAO8G,UAC3B,MACJ,IAAK,QACL,IAAK,SACDx8H,KAAKC,SAAS4+C,GACd,QAAUoiI,EAAejhL,KAAK01H,cAAW,IAAWurD,GAAwBA,EAAazkD,UACzF,MACJ,IAAK,cACDx8H,KAAK6lT,aAAa99R,OAAOnmB,EAAMC,GAC/B,MACJ,IAAK,eACL,IAAK,UACL,IAAK,aACL,IAAK,gBACL,IAAK,eACL,IAAK,qBACD7B,KAAKgnT,eAAeplT,EAAMC,GAC1B,MACJ,IAAK,0BACD7B,KAAKkuG,iBACL,MACJ,IAAK,kBACDluG,KAAKmnT,wBAAwBtlT,GAC7B,MACJ,IAAK,eACD,MACJ,IAAK,cACD7B,KAAKgiT,yBACL,MACJ,IAAK,gBACDhiT,KAAKujT,2BACL,MACJ,IAAK,qBACDvjT,KAAKwjT,gCACL,MACJ,IAAK,iBACDxjT,KAAKwuG,OAAOxuG,KAAK+nB,OAAO,WACxB,MACJ,IAAK,WACD/nB,KAAK6lT,aAAa99R,OAAOnmB,EAAMC,GAC/B,MACJ,QACI7B,KAAKC,SAAS4+C,OAG3BogD,QAAQ,SACX,eAAkB,mBAAoB4jN,IACvB,ICtnBX6E,GAA6B,0BAC7BC,GAA+B,4BAC/BC,GAAsC,eACtCC,GAAuB,SACvBC,GAA6B,WAC7BC,GAAgC,iBAChCC,GAA2B,UACpBC,GAAe,OAAM5oP,QAAQ,CACpCE,KAAM,SAAS4gE,EAAkB+nL,EAAkCnH,GAC/D/gT,KAAKmoT,kBAAoBhoL,EACzBngI,KAAKooT,kCAAoCF,EACzCloT,KAAKqoT,kBAAoBtH,GAE7BuH,eAAgB,SAASvhT,GACrB,IACIjM,IAAKA,EACLqL,KAAMA,EACNgL,QAASA,EACT47C,WAAYA,EACZk5C,aAAcA,GACdl/F,EACA+2D,EAAc99D,KAAKqwK,SAASngF,aAAanjC,GACzClrD,EAAQ,EAAa+nB,gBAAgBk0C,EAAaA,EAAYgnB,iBAAmBhnB,EAAYgnB,iBAAiBhqF,EAAIiyD,IAAejyD,EAAIiyD,GAAa5mD,EAAMgL,GACxJlS,EAAS6+D,EAAY52D,QAAU,KAAO,EAAage,YAAYrjB,EAAOi8D,GAI1E,OAHImoC,GAAgBA,EAAa,IAAMA,EAAa,GAAGrsG,SACnDqF,GAAU,IAAM,EAAagrB,uBAAuBg8E,EAAa,GAAIjmG,KAAKqwK,SAAS1qJ,eAEhF1mB,GAEXspT,kBAAmB,SAAS51O,GACxB,OAAOA,GAEX4jD,aAAc,WACV,IAAI4J,EAAmBngI,KAAKmoT,kBACxBj4N,EAAeiwC,EAAiB1zD,mBAAmB8Y,kBACnD3zB,EAAuBuuE,EAAiBp4G,OAAO,+BACnD/nB,KAAKqwK,SAAW,CACZ/iJ,QAAS6yG,EAAiBqoL,YAAYxoT,KAAKooT,mCAC3Cl4N,aAAcA,EACdxnE,MAAO1oB,KAAKqoT,mBAAqBloL,EAAiBsoL,eAAiBtoL,EAAiBuoL,oBAAsBvoL,EAAiBwoL,eAC3Hz6O,gBAAiBiyD,EAAiB1zD,mBAAmByB,gBAAgB1jD,KAAK21G,EAAiB1zD,oBAC3Fm8O,iBAAkBzoL,EAAiBp4G,OAAO,qBAC1CpC,aAAcw6G,EAAiBp4G,OAAO,iBACtC67B,oBAAqBu8E,EAAiBp4G,OAAO,uBAC7CsD,WAAY80G,EAAiBp4G,OAAO,cACpCmnR,gBAAiB,eAAUt9O,GAAwBA,IAAyBuuE,EAAiBp4G,OAAO,mBACpG2pC,mBAAoByuE,EAAiBp4G,OAAO,+BAGpD6nR,sBAAuB,WACnB,OAAO,eAAU5vS,KAAKqwK,SAAS3+G,qBAEnCA,mBAAoB,SAAS9tD,EAAG8qS,GACxB1uS,KAAKqwK,SAAS3+G,qBACd9tD,EAAEqN,SAAWy9R,EACT,eAAU1uS,KAAKmoT,oBAAsB,eAAUnoT,KAAKmoT,kBAAkBp7S,aACtEnJ,EAAEmJ,UAAY/M,KAAKmoT,kBAAkBp7S,WAEzC/M,KAAKqwK,SAAS3+G,mBAAmB9tD,KAGzCilT,gBAAiB,IAAM,CAAC,CACpB/e,MAAM,EACN3iS,UAAW,SACXmhS,UAAU,GACX,CACCwB,MAAM,EACN3iS,UAAW,OACXmhS,UAAU,GACX,CACCwB,MAAM,EACN3iS,UAAW,QACXmhS,UAAU,IAEd,mBACI,MAAO,CACHwB,MAAM,EACNxB,UAAU,EACVnhS,UAAW,eAAoBnH,KAAKqwK,SAAShlJ,cAGrD,kBACI,IAAI6jR,EAAkBlvS,KAAKqwK,SAAS6+H,gBAChC4Z,EAAe,GASnB,OARA9oT,KAAKynE,aAAavmE,QAAQ4P,IACtBg4S,EAAa7lT,KAAK,CACdkE,UAAW2J,EAAO3J,WAAa,OAC/B9N,OAAQyX,EAAOzX,OACfivS,SAAU4G,EACV9qR,SAAUtT,EAAOsT,aAGlB0kS,GAEXtY,UAAW,WACP,MAAO,IAAIxwS,KAAK6oT,qBAAsB7oT,KAAK+oT,kBAAmB/oT,KAAKgpT,qBAEvEC,qBAAsB,SAASt2O,GAC3B,IAAIu2O,EACA/hT,GAAa,QAAU+hT,EAAwBlpT,KAAKynE,aAAakL,UAAe,IAAWu2O,OAAwB,EAASA,EAAsB/hT,YAAc,QACpK,OAAOnH,KAAK6oT,kBAAkB/sT,IAAIwuE,GAASA,EAAMnjE,WAAW7I,QAAQ6I,IAExEsoS,WAAY,SAAS5lO,EAAU8I,GAC3B,OAAI9I,EAAW7pE,KAAKkyS,oBACT,EACAlyS,KAAKmpT,YAAYt/O,EAAW7pE,KAAKkyS,oBAAqBv/N,GACtD3yE,KAAKipT,qBAAqBt2O,GAC1B3yE,KAAK+sE,WAAWlD,EAAW7pE,KAAKkyS,qBAChClyS,KAAK6oT,kBAAkBjvT,OAASoG,KAAKynE,aAAa7tE,OAElD+4E,EAAY3yE,KAAK6oT,kBAAkBjvT,QAGlD6tE,WAAY,SAAS2hP,GACjB,IACI97R,QAASA,GACTttB,KAAKqwK,SACT,OAAO+4I,EAAsB97R,EAAUA,EAAQA,EAAQ1zB,OAAS,IAEpEyvT,iBAAkB,WACd,IAAI/7R,EAAUttB,KAAKynE,aACnB,OAAO,eAAUn6C,GAAWA,EAAQxxB,IAAI8/B,GAAKA,EAAEr0B,YAAS,GAE5DwvE,aAAc,WACV,OAAO/2E,KAAKqwK,SAAS3nJ,MAAM9uB,OAASoG,KAAKkyS,qBAE7CA,kBAAmB,WACf,OAAIlyS,KAAK4oT,mBACE5oT,KAAKqwK,SAAS/iJ,QAAQ1zB,OAAS,EAEnC,GAEXmzE,WAAY,SAASlD,GACjB,OAAOA,EAAW7pE,KAAKqwK,SAAS3nJ,MAAM9uB,QAAU,UAAYoG,KAAKqwK,SAAS3nJ,MAAMmhD,GAAU14D,SAE9Fi/R,cAAe,SAASvmO,GACpB,IAAI9iE,EAAO/G,KAAKqwK,SAAS3nJ,MAAMmhD,EAAW7pE,KAAKkyS,qBAC3CnlP,EAAahmD,GAAQA,EAAKgmD,WAC9B,OAAIhmD,GAAQ,gBAAkBA,EAAKoK,QACxB,EAEJ,eAAU47C,GAAcA,EAAa/sD,KAAKqwK,SAASngF,aAAat2F,QAE3Eg1S,YAAa,SAAS/kO,EAAU8I,GAC5B,IAAIrlD,EAAUttB,KAAKynE,aACnB,GAAIoC,EAAW7pE,KAAKkyS,oBAChB,MAAO,SAIX,GAFIroO,GAAY7pE,KAAKkyS,oBAEjBv/N,EAAYrlD,EAAQ1zB,OAAQ,CAC5B,IAAImN,EAAO/G,KAAKqwK,SAAS3nJ,MAAM9uB,QAAUoG,KAAKqwK,SAAS3nJ,MAAMmhD,GACzD/4D,EAASwc,EAAQqlD,GACrB,OAAI5rE,GAAQ,SAAWA,EAAKoK,SACpBmjI,SAASvtI,EAAK+uB,OAAO91B,KAAKuoT,kBAAkB51O,OAAiB,eAAU7hE,EAAOyU,eACvE,eAAUzU,EAAOiZ,QAAUjZ,EAAOiZ,OAAO3F,SAAWtT,EAAOsT,SAGnE,WAGf0vR,MAAO,WACH,IAAInwS,EAAO3D,KACX2D,EAAK4yH,eACL,IAAIvlH,EAAUrN,EAAK0sK,SACnB,OAAO,kBAAKr/J,EAAQ0X,OAAOyE,MAAK,SAAUzE,GACtC1X,EAAQ4yC,qBAAuB5yC,EAAQ4yC,oBAAoBjgD,EAAK8jE,WAAW9jE,EAAKuuS,oBAAsB,GAAIxpR,GAC1G1X,EAAQ0X,MAAQA,KAChBiH,MAAK,WACL3e,EAAQ0X,MAAQ,OAGxB4gS,kCAAmC,SAASC,GACxC,GAAI,eAAUA,IAA0BA,EAAsB3vT,OAAS,EACnE,OAAO2vT,EAAsBztT,KAAI,SAAUiL,GACvC,MAAO,CACHlF,MAAOkF,EAAKlF,MACZD,KAAMmF,EAAKnF,UAK3B+sS,YAAa,SAAS9kO,EAAU8I,EAAW62O,GACvC,IAAI3nT,EACAiP,EACA7R,EAAS,CACTyvS,eAAgB,GAChB7sS,MAAOA,GAEPyrB,EAAUttB,KAAKynE,aACfgiP,EAAqBzpT,KAAKuoT,kBAAkB51O,GAChD,GAAI9I,EAAW7pE,KAAKkyS,oBAAqB,CACrC,IAAIwX,EAAa1pT,KAAKynE,YAAW,GAAMoC,GACvC/4D,EAAS44S,EAAW/2O,GACpB1zE,EAAOyvS,eAAev9R,QAAU,SAChClS,EAAOyvS,eAAe59R,OAASA,GAAUA,EAAO64S,WAChD1qT,EAAO4C,MAAQiP,GAAUA,EAAO5J,YAC7B,CACH2iE,GAAY7pE,KAAKkyS,oBACjB,IAAInrS,EAAO/G,KAAKqwK,SAAS3nJ,MAAM9uB,QAAUoG,KAAKqwK,SAAS3nJ,MAAMmhD,GAC7D,GAAI9iE,EAAM,CACN,IAAI6iT,EAAa7iT,EAAK+uB,OAGtB,OAFA72B,EAAOyvS,eAAev9R,QAAUpK,EAAKoK,QACrClS,EAAOyvS,eAAe59R,OAASwc,EAAQqlD,IAAcrlD,EAAQqlD,GAAWg3O,WAChE5iT,EAAKoK,SACT,IAAK,cACL,IAAK,cACGs4S,EAAqBG,EAAWhwT,SAChCiI,EAAQ+nT,EAAWH,GACf,eAAU5nT,IACV5C,EAAOyvS,eAAe7sS,MAAQA,EAAMA,MACpC5C,EAAOyvS,eAAemb,qBAAuBhoT,EAAMD,KACnD3C,EAAO4C,MAAQ,EAAa4jB,eAAe5jB,EAAO7B,KAAKqwK,SAAS1qJ,eAEhE1mB,EAAOyvS,eAAe7sS,WAAQ,GAGtC,MACJ,IAAK,QAED,GADA5C,EAAOyvS,eAAe3hP,WAAahmD,EAAKgmD,WACpC4lB,EAAY,EACZ1zE,EAAOyvS,eAAe59R,OAAS9Q,KAAKqwK,SAASngF,aAAanpF,EAAKgmD,YAC/D9tD,EAAOyvS,eAAe7sS,MAAQkF,EAAKjM,IAAIiM,EAAKgmD,YAC5C9tD,EAAOyvS,eAAe9d,kBAAoB5wR,KAAKspT,kCAAkCviT,EAAKk/F,aAAa,IACnGhnG,EAAO4C,MAAQ7B,KAAKsoT,eAAevhT,OAChC,CACH,IAAImjB,EAAenjB,EAAK+uB,OAAO2zR,GAC/B,GAAI5qT,MAAM0nB,QAAQ2D,GAAe,CAC7BjrB,EAAOyvS,eAAe9d,kBAAoB5wR,KAAKspT,kCAAkCp/R,GACjFroB,EAAQ,GACR,IAAK,IAAIpG,EAAI,EAAGA,EAAIyuB,EAAatwB,OAAQ6B,IACrCoG,IAAUpG,EAAI,EAAI+tT,EAAY,KAAO,OAAS,IAAM,EAAa/jS,eAAeyE,EAAazuB,GAAIuE,KAAKqwK,SAAS1qJ,cAEnH1mB,EAAO4C,MAAQA,OAEf5C,EAAOyvS,eAAe7sS,WAAQ,EAGtC,MACJ,QAEI,GADAiP,EAASwc,EAAQqlD,GACb7hE,EAAQ,CACR,IAAIizJ,EAAS6lJ,EAAWH,GACpBp1N,EAAe,EAAazqE,gBAAgB9Y,EAAQizJ,EAAQh9J,EAAKZ,KAAMY,EAAKoK,UAC3EmjI,SAASjgD,IAAiB,eAAUvjF,EAAOyU,eACxCikS,GAAa,eAAU14S,EAAOyU,gBAAkBzU,EAAOyU,gBAAkBvlB,KAAKmoT,kBAAkB17O,mBAAmBwY,2BAA2B,WAC9IhmF,EAAO4C,MAAQwyF,EAEfp1F,EAAO4C,MAAQ,EAAaqjB,YAAYmvE,EAAcvjF,GAG1D7R,EAAO4C,MAAQwyF,EAEnBp1F,EAAOyvS,eAAe7sS,MAAQkiK,EAElC9kK,EAAOyvS,eAAevoS,KAAOY,EAAKZ,OAIlD,OAAOlH,GAEX2pT,iBAAkB,WACd,OAAO5oT,KAAKqwK,SAASu4I,kBAEzBO,YAAa,SAASt/O,EAAU8I,GAC5B,IAAIjqD,EAAQ1oB,KAAKqwK,SAAS3nJ,MACtB3hB,EAAO2hB,EAAMmhD,GACbigP,EAAmB9pT,KAAKuoT,kBAAkB51O,GAC1Co3O,EAAyBhjT,EAAKk/F,cAAgBl/F,EAAKk/F,aAAa6jN,IAAqB/iT,EAAKk/F,aAAa6jN,GAAkBlwT,OAAS,GAAKmN,EAAKk/F,aAAa6jN,GAAkB,GAAGxwP,cAClL,OAAOvyD,GAAQ,gBAAkBA,EAAKoK,SAAW,gBAAkBpK,EAAKoK,SAAW44S,GAEvF1W,eAAgB,SAASxpO,EAAU8I,GAC/B,IAAIrlD,EAAUttB,KAAKqwK,SAAS/iJ,QACxBxc,EAASwc,EAAQu8C,IAAav8C,EAAQu8C,GAAU8I,GACpD,OAAO7hE,EAAS,CACZ86D,SAAU96D,EAAOk5S,eAAiB,GAAK,EACvCnsO,SAAU/sE,EAAO+sE,SAAW,GAAK,GACjC,CACAjS,QAAS,EACTiS,QAAS,IAGjBk0N,cAAe,WACX,MAAO,CACH3kS,EAAG,EACHkU,EAAGthB,KAAKkyS,wBAIT+X,GAAmB,EAAa/nP,eAAe7C,QAAQ,IAAIA,QAAQ,CAC1E6qP,cAAe,WACX,MAAO,CACHhjT,QAAS,GACT0kE,QAAS,EACTiS,QAAS,IAGjB4/M,mBAAoB,SAAS3sR,EAAQvJ,GACjCuJ,EAAOvJ,MAAQA,GAEnBihT,YAAa,SAASN,GAClB,IACIzsT,EACA6xB,EAFAruB,EAAS,GAGT0nE,EAAoB3mE,KAAKysE,mBACzBqR,EAAWnX,EAAkB+W,cACjC,IAAKjiF,EAAI,EAAGA,GAAKqiF,EAAUriF,IAAK,CAC5B,IAAI0uT,EAAmB,GACvB78R,EAAUq5C,EAAkB+F,kBAAkBjxE,GAAG,GACjD,IAAI2uT,OAA4B,EAChC,GAAI3uT,IAAMqiF,EACN,GAAI99E,KAAKw/D,iBACL4qP,EAA4BlC,MACzB,CACH,IAAIz1M,EAAezyG,KAAKqqT,iBAAiBrqT,KAAKsqT,aAActqT,KAAKypH,WACjE,GAAIhX,GAAgBA,EAAa74G,OAAQ,CACrCwwT,EAA4B,GAC5B,IAAK,IAAIvqD,EAAK,EAAGA,EAAKvyO,EAAQ1zB,OAAQimQ,IAClCuqD,EAA0B98R,EAAQuyO,GAAIz+P,OAASqxG,EAAaotJ,IAK5E,IAAK,IAAIp4P,EAAI,EAAGA,EAAI6lB,EAAQ1zB,OAAQ6N,IAAK,CACrC,IAAIqJ,EAAS,OAAArW,EAAA,WAAO,GAAI6yB,EAAQ7lB,GAAI,CAChC2c,SAAU,aAAekJ,EAAQ7lB,GAAG2c,SAAW,OAASkJ,EAAQ7lB,GAAG2c,SACnEulS,WAAYr8R,EAAQ7lB,KAExB,GAAIzH,KAAKuqT,qBAAqBz5S,GAAS,CACnC,IAAI05S,EAAiBxqT,KAAKyqT,wBAAwB35S,GAC9C,eAAU05S,KACV15S,EAAOk5S,cAAgBQ,GAEvBJ,GACApqT,KAAKy9R,mBAAmB3sR,EAAQs5S,EAA0Bt5S,EAAO1P,QAErE+oT,EAAiBlnT,KAAK6N,IAG9B7R,EAAOgE,KAAKknT,GAKhB,OAHA78R,EAAUruB,EAAO6+E,GACjB7+E,EAASsiS,GAAatiS,EAAOokB,MAAM,GAAI,GAAIrjB,KAAKkqT,iBAChDjrT,EAAOgE,KAAKqqB,GACLruB,GAEXwrT,wBAAyB,SAAS35S,GAC9B,GAAKA,EAAOo8C,OAAZ,CAGA,IAAIw9P,EAAe1qT,KAAKysE,mBAAmBoS,wBAAwB/tE,EAAO1P,OAAO,GACjF,GAAK,eAAUspT,GAGf,OAAOA,EAAa3zR,OAAO,CAAC93B,EAAQ0rT,IAC5B3qT,KAAKuqT,qBAAqBI,GACnB1rT,GAAUe,KAAKyqT,wBAAwBE,IAAgB,GAEvD1rT,EAEZ,KAEPsrT,qBAAsB,SAASz5S,GAC3B,OAAQA,EAAO6c,UAAY7c,EAAO46C,qBAAkB,IAAW56C,EAAO46C,iBAE1Ek/P,uBAAwB,SAAS3kN,EAAc4kN,GAC3C,IAAI5rT,EAAS,GACT6rT,EAAsB,EACtBrvT,EAAI,EACR,EAAG,CAEC,IADA,IAAIq6B,EAAS,GACJruB,EAAI,EAAGA,EAAIw+F,EAAarsG,OAAQ6N,IAAK,CAC1C,IAAIwoR,EAAchqL,EAAax+F,GAC3B+/N,EAAcyoD,EAAYr2R,OAC1BkxT,EAAsBtjF,IACtBsjF,EAAsBtjF,GAE1B1xM,EAAO7yB,KAAKgtR,EAAYx0R,IAE5BwD,EAAOgE,KAAK,CACR6yB,OAAQA,EACR3kB,QAAS05S,EAAU,cAAgB,sBAElCpvT,IAAMqvT,EAAsB,GACrC,OAAO7rT,GAEX8rT,wBAAyB,WACrB,IAAIvsP,EAAax+D,KAAK+nB,OAAO,sBAC7B,GAAI,eAAUy2C,GACV,IAAK,IAAI/iE,EAAI,EAAGA,EAAI+iE,EAAW5kE,OAAQ6B,IACnC,GAAI+iE,EAAW/iE,GAAG+9D,kBACd,OAAO,EAInB,OAAO,GAEXwxP,iCAAkC,SAASC,GAIvC,IAHA,IAAIhsT,EAAS,GACTisT,EAAyB,GACzBC,EAAmB,GACd1vT,EAAI,EAAGA,EAAIwvT,EAAYrxT,OAAQ6B,IAAK,CACzC,IAAIsL,EAAOkkT,EAAYxvT,GACnB,gBAAkBsL,EAAKoK,SACvBg6S,EAAmBnrT,KAAK4qT,uBAAuB7jT,EAAKk/F,cACpDhnG,EAASA,EAAO4S,OAAOq5S,EAAwBC,GAC/CD,EAAyB,IAEzBA,EAAuBjoT,KAAK8D,GAGpC,OAAO9H,EAAOrF,OAASqF,EAASisT,GAEpCE,sCAAuC,SAASH,GAE5C,IADA,IAAII,EAAgB,GACX5vT,EAAI,EAAGA,EAAIwvT,EAAYrxT,OAAQ6B,IAAK,CACzC,IAAIsL,EAAOkkT,EAAYxvT,GACnBwqG,EAAel/F,EAAKk/F,aACxB,GAAI,UAAYl/F,EAAKoK,SAAW80F,GAAgBA,EAAarsG,OAAS,EAAG,CAErE,IADA,IAAI0xT,EAAmBvkT,EAAK+uB,OAAOl8B,OAC1B6N,EAAI,EAAGA,EAAIw+F,EAAarsG,OAAQ6N,IACrC,IAAK,IAAIm4B,EAAI,EAAGA,EAAIqmE,EAAax+F,GAAG7N,OAAQgmC,IAAK,CAC7C,IAAIla,EAAcugF,EAAax+F,GAAGm4B,GAC9Bla,GAAeA,EAAY4zC,gBACtBz6D,MAAM0nB,QAAQ8kS,EAAc5jT,EAAI6jT,MACjCD,EAAc5jT,EAAI6jT,GAAoB,IAE1CD,EAAc5jT,EAAI6jT,GAAkBroT,KAAKyiB,IAIjD2lS,EAAczxT,OAAS,IACvBmN,EAAK+uB,OAAO7yB,QAAQooT,GACpBA,EAAgB,OAKhCE,wBAAyB,SAAS7iS,GAK9B,IAJA,IAEIoN,EACAmwE,EAHA34E,EAAUttB,KAAKysE,mBAAmBC,kBAAkB,MAAM,GAC1DwjB,EAAelwF,KAAKysE,mBAAmB8Y,kBAGlC9pF,EAAI,EAAGA,EAAIitB,EAAM9uB,OAAQ6B,IAAK,CACnC,IAAIsL,EAAO2hB,EAAMjtB,GACb+vT,GAAuB,EAC3B11R,EAAS,GACTmwE,EAAe,GACf,IAAK,IAAIx+F,EAAI,EAAGA,EAAI6lB,EAAQ1zB,OAAQ6N,IAAK,CACrC,IAAIqJ,EAASwc,EAAQ7lB,GAErB,GADA+jT,EAAuBA,GAAwB,iBAAmB16S,EAAOrS,KACrEuB,KAAKuqT,qBAAqBz5S,KACtB/J,EAAK+uB,SACD,UAAY/uB,EAAKoK,SAAY2kB,EAAOl8B,OAGpCk8B,EAAO7yB,KAAK8D,EAAK+uB,OAAOruB,IAFxBquB,EAAO7yB,KAAK8D,EAAKjM,IAAIiM,EAAKgmD,cAK9BhmD,EAAKk/F,cACL,GAAI,UAAYl/F,EAAKoK,SAAY80F,EAAarsG,OAI1CqsG,EAAahjG,KAAK8D,EAAKk/F,aAAax+F,QAJc,CAClD,IAAIrG,EAAQqG,EAAIyoF,EAAat2F,OAASmN,EAAKgmD,WAC3Ck5C,EAAahjG,KAAK8D,EAAKk/F,aAAaulN,EAAuBpqT,EAAQA,EAAQ,KAOvF00B,EAAOl8B,SACPmN,EAAK+uB,OAASA,GAEdmwE,EAAarsG,SACbmN,EAAKk/F,aAAeA,KAIhC0iN,aAAc,SAASxiT,GACnB,IAMI8/F,EANAtiG,EAAO3D,KACPkiB,EAAI,IAAI,cACR+vE,EAAiBjyF,KAAKihE,cAAc,QACpCosN,EAAcp7L,EAAeo7L,cAC7BzuN,EAAYyuN,EAAYzzR,QAAUyzR,EAAY,GAC9CyC,EAAoBnsR,EAAKokB,OAAO,sBAoBpC,OAlBA,kBAAK5hB,GAAMgnB,MAAK,SAAUhnB,GACtB8rF,EAAe2W,QAAQziG,GAAMgnB,MAAK,SAAU89R,EAAa//B,GACrDvnR,EAAKynT,sCAAsCH,GACvCtnT,EAAKonT,4BACLE,EAActnT,EAAKqnT,iCAAiCC,IAExDhlN,EAAernC,GAAaA,EAAUqnC,aAClC,eAAUilL,IAAoB4E,IAC9B7pL,EAAetiG,EAAKksR,iBAAiBC,EAAmB5E,IAE5D,IAAIhhQ,EAAe00C,GAAaj7D,EAAKinT,uBAAuB3kN,GAAc,GACtE/7E,IACA+gS,EAAcA,EAAYp5S,OAAOqY,IAErCvmB,EAAK4nT,wBAAwBN,GAC7B/oS,EAAEsN,QAAQy7R,MACVt7R,KAAKzN,EAAE2hB,WACXlU,KAAKzN,EAAE2hB,QACJ3hB,GAEX2tQ,iBAAkB,SAASC,EAAmB5E,GAC1C,IAAIj5L,EAAiBjyF,KAAKihE,cAAc,QACpC0F,EAAoBsrB,EAAexlB,mBACvC,OAAOwlB,EAAew9L,uBAAuBK,EAAmB5E,EAAiBvkN,EAAkB+F,kBAAkB,MAAM,IAAO,SAAUhnD,EAAa5U,GACrJ,OAAOmhF,EAAem9L,cAAct+Q,GAAUA,EAAO1P,OAAS,MAGtEsnT,kBAAmB,WACf,IAAIxoL,EAAsBlgI,KAAKihE,cAAc,aACzCwqP,EAAkBvrL,EAAoB8G,sBAC1C,OAAOhnI,KAAK2oT,aAAa8C,IAE7BpB,iBAAkB,SAAS3xC,EAAaxsP,GACpC,OAAOwsP,GAAeA,EAAYvxP,YAAcuxP,EAAYljM,kBAAoBtpD,EAASspD,mBAE7FzV,KAAM,WACF//D,KAAKysE,mBAAqBzsE,KAAKihE,cAAc,WAC7CjhE,KAAKypH,UAAYzpH,KAAKmsB,QAAQ,YAC9BnsB,KAAKsqT,aAAetqT,KAAKmsB,QAAQ,qBACjCnsB,KAAKygE,aAAa,cAAe,CAC7B0T,kBAAmB,CAAC,WAAY,cAEpCn0E,KAAKygE,aAAa,aAAc,CAC5B0T,kBAAmB,CAAC,WAAY,cAEpCn0E,KAAKygE,aAAa,eAAgB,CAC9B0T,kBAAmB,CAAC,WAAY,eAGxCxU,cAAe,WACX,MAAO,CAAC,yBAEZ+rP,gBAAiB,SAAS3K,GACtB,IACImH,EADAz1M,EAAezyG,KAAKqqT,iBAAiBrqT,KAAKsqT,aAActqT,KAAKypH,WAEjE,GAAIhX,GAAgBA,EAAa74G,OAAQ,CACrCsuT,EAAmC,GAEnC,IADA,IAAIyD,EAA+B3rT,KAAKysE,mBAAmBC,kBAAkB1sE,KAAKysE,mBAAmBiR,eAAe,GAC3GjiF,EAAI,EAAGA,EAAIkwT,EAA6B/xT,OAAQ6B,IACrDysT,EAAiCyD,EAA6BlwT,GAAG2F,OAASqxG,EAAah3G,GAG/F,OAAO,IAAIwsT,GAAajoT,KAAMkoT,EAAkCnH,IAEpE6K,cAAe,SAAS7K,GACpB/gT,KAAKyoT,eAAiB1H,EACtB,GAAa/gT,KAAK+M,UAAU2+S,kBAAmB,CAC3Cv+Q,SAAUntC,KAAK+nB,OAAO,mBACtBgqC,SAAU/xD,KAAK+nB,OAAO,mBACtB1uB,OAAQ,OACR0nT,mBAAoBA,EACpBrwS,oBAAqB1Q,KAAK+nB,OAAO,6BACjCsD,WAAYrrB,KAAK+nB,OAAO,cACxBqqR,aAAcpyS,KAAK+nB,OAAO,4BAC1B64R,gBAAiB5gT,KAAK2gE,UAAU,eAChCkgP,eAAgB7gT,KAAK2gE,UAAU,cAC/BmgP,iBAAkB9gT,KAAK2gE,UAAU,iBAClCqgP,GAAMjN,UAEb5hP,SAAU,SAAS4uP,EAAkB1nT,GACjC2G,KAAKyoT,eAAiB1H,EACtB,IAAIx6P,EAAcvmD,KAAK2gE,UAAU,eAC7Bq5C,EAAY,CACZ+mM,mBAAoBA,EACpB1nT,OAAQA,EACR8zC,SAAUntC,KAAK+nB,OAAO,mBACtB6nC,QAAQ,GAEZ,eAAWrJ,IAAgBA,EAAYyzD,IAE3Ch6C,cAAe,WACX,MAAO,CAAC,kBAAmB,kBAE/B0gE,cAAe,SAAS7+H,GACpB,IAAI,eAAUA,GAIV,OAAO7B,KAAK6rT,gBAHZ7rT,KAAK6rT,gBAAkBhqT,EACvB7B,KAAKwgI,qBAAqB18D,UAMtC,EAAa2B,eAAe,SAAU,CAClC9nE,eAAgB,WACZ,MAAO,CACHwmD,OAAQ,CACJn8B,SAAS,EACTmlB,SAAU,WACVwkB,oBAAoB,EACpBE,QAAS,CAAC,QACVD,0BAAsB,EACtBG,cAAU,EACVN,yBAAyB,EACzBK,mBAAmB,EACnBhD,MAAO,CACHqD,SAAU,OAAoB94D,OAAO,uBACrC44D,UAAW,OAAoB54D,OAAO,wBACtC64D,mBAAoB,OAAoB74D,OAAO,qCAK/DwrE,YAAa,CACT1gB,OAAQ8lQ,IAEZhlP,UAAW,CACPJ,YAAa,CACT7gB,QAAS,CACL2b,cAAe,WACX,IAAImsP,EAAe9rT,KAAKC,WACxB,OAAO,eAAU6rT,GAAgBA,EAAa7oT,KAAK,kBAAoB,CAAC,mBAE5EotL,mBAAoB,WAChBrwL,KAAKC,WACLD,KAAK4kO,eAAe9gK,KAAK9jE,KAAK8qH,iBAI1C/lD,MAAO,CACHwmC,YAAa,CACTywB,iBAAkB,WACd,IAAItzG,EAAQ1oB,KAAKC,WACb8rT,EAAe/rT,KAAKgsT,0BAKxB,OAJID,IACArjS,EAAMzlB,KAAK8oT,GACX/rT,KAAKisT,sBAAsBvjS,IAExBA,GAEXsjS,wBAAyB,WACrB,IAAItjS,EAAQ1oB,KAAKksT,yBACjB,GAAI,IAAMxjS,EAAM9uB,OACZ,OAAO,KAEX,IAAIuyT,EAAuB,CACvBvqT,KAAMgmT,GACNttP,SAAU,QACVD,aAAc,OACd3M,UAAW,GACX18C,QAAS,CACL0X,MAAOA,IAGf,GAAI,IAAMA,EAAM9uB,OAAQ,CACpB,IAAIirK,EAAgB,eAAS,GAAIn8I,EAAM,GAAI,CACvCu8B,KAAMv8B,EAAM,GAAGnsB,KACf0nD,YAAa,CACT04M,MAAOgrD,MAGfwE,EAAqB1xP,OAAS,WAC9B0xP,EAAqB3xP,SAAW,SAChC2xP,EAAqBn7S,QAAU6zJ,MAC5B,CACH,IAAIunJ,EAAiB,CACjBnhQ,KAAM48P,GACN73R,YAAa,OACbtH,MAAOA,EACPu8B,KAAMjlD,KAAK+nB,OAAO,yBAClBk8B,YAAa,CACT04M,MAAOgrD,IAEX1E,gBAAiB,CACbjuP,YAAa,CACT2nM,MAAO+qD,IAEXngT,MAAO,SAGf4kT,EAAqBn7S,QAAUo7S,EAC/BD,EAAqB1xP,OAAS,mBAC9B0xP,EAAqB5xP,iBAAmB,CAACrsB,EAAOm+Q,EAAQlkS,KACpDnoB,KAAKooB,iBAAiB,eAAED,GAAY,QAAM,CACtCO,MAAOA,KAInB,OAAOyjS,GAEXD,uBAAwB,WACpB,IAAI3xG,EACA+xG,EAAgBtsT,KAAK+nB,OAAO,UAC5B+mC,EAAQ9uD,KAAK+nB,OAAO,gBACpB8pC,EAAU,QAAU0oJ,EAAev6M,KAAK+nB,OAAO,yBAAsB,IAAWwyL,EAAeA,EAAe,GAClH,IAAK+xG,EAActkS,QACf,MAAO,GAEX,IAAIU,EAAQ,GA+BZ,OA9BAmpC,EAAQ3wD,QAAQnB,IACZ,IAAIwsT,EAAe,WACfC,EAAazsT,EAAWslC,cACxBonR,EAAgB5E,GAChB6E,EAAqB3E,GACrB,SAAWhoT,IACXwsT,EAAe,gBACfC,EAAa,QACbC,EAAgB3E,IAEhB,QAAU/nT,IACV0sT,EAAgBzE,IAEpBt/R,EAAMzlB,KAAK,CACP1G,KAAM,gBAAOuyD,EAAMmD,UAAWu6P,GAC9BvhQ,KAAMwhQ,EACNvhQ,QAAS,KACLlrD,KAAKmoT,kBAAkBoE,IAAc,EAAOxsT,MAGhDusT,EAAc76P,yBACd/oC,EAAMzlB,KAAK,CACP1G,KAAM,gBAAOuyD,EAAMoD,mBAAoBs6P,GACvCvhQ,KAAMyhQ,EACNxhQ,QAAS,KACLlrD,KAAKmoT,kBAAkBoE,IAAc,EAAMxsT,QAKpD2oB,GAEXujS,sBAAuB,SAASvjS,GAC5BA,EAAM5mB,MAAK,SAAU2iN,EAAOC,GACxB,OAAOD,EAAM/2J,UAAYg3J,EAAMh3J,cAGvCi/P,uBAAwB,WACpB,OAAO3sT,KAAK+nB,OAAO,mBAEvBy4C,cAAe,SAAS3hB,GACpB7+C,KAAKC,SAAS4+C,GACV,WAAaA,EAAKj9C,OAClBi9C,EAAK6hB,SAAU,EACf1gE,KAAK4iE,gBAGb7C,KAAM,WACF,IAAIp8D,EAAO3D,KACXA,KAAKC,WACLD,KAAKmoT,kBAAoBnoT,KAAKihE,cAAc,UAC5CjhE,KAAKugM,mBAAqBvgM,KAAKihE,cAAc,WAC7CjhE,KAAKugM,mBAAmBqkC,eAAepwJ,KAAI,SAAUs2C,GACjDnnH,EAAKs6H,uBAAuB,eAAgBnT,OAGpD3jG,UAAW,WACP,OAAOnnB,KAAKC,YAAcD,KAAK2sT,+BC7vBnD,IAAIC,GAAoB,iBACpB,GAAuB,WAAaA,GACpCC,GAAsB,QACtB,GAA4B,yBAC5BC,GAAkB,EAAK5qP,eAAe7C,QAAQ,CAC9CU,KAAM,WACF//D,KAAKonB,gBAAkBpnB,KAAKihE,cAAc,QAC1CjhE,KAAK+sT,oBAAsB/sT,KAAKihE,cAAc,sBAC9CjhE,KAAK+M,UAAUkzG,oBAAoBr7D,eAAgB,GAEvD4b,cAAe,SAAS3hB,GACpB,GAAI,oBAAsBA,EAAKj9C,KAAM,CACjC,IAAIgjD,EAAgB5kD,KAAK+nB,OAAO,iBAChC/nB,KAAKgtT,iBAAiBnuQ,EAAKh9C,OAC3B7B,KAAKitT,gCAAgCroQ,EAAe/F,EAAKh9C,OACzDg9C,EAAK6hB,SAAU,OACZ,GAAI,kBAAoB7hB,EAAKj9C,KAAM,CAEtC,GADAi9C,EAAK6hB,SAAU,EACX7hE,MAAM0nB,QAAQs4B,EAAKh9C,QAAU9G,KAAKC,UAAU6jD,EAAKh9C,SAAW9G,KAAKC,UAAU6jD,EAAK2sC,eAChF,OAEJ,IAAI7mC,EAAkB3kD,KAAK+nB,OAAO,mBAClC/nB,KAAKktT,eAAeruQ,EAAKh9C,OACzB7B,KAAKitT,gCAAgCpuQ,EAAKh9C,MAAO8iD,OAC1C,uBAAyB9F,EAAKj9C,MAE9B,sBAAwBi9C,EAAKj9C,MAE7B,6BAA+Bi9C,EAAKj9C,KAH3Ci9C,EAAK6hB,SAAU,EAMf1gE,KAAKC,SAAS4+C,IAGtBouQ,gCAAiC,SAASroQ,EAAeD,GACrD,IAAIwoQ,EAAuBntT,KAAK4oR,wBAAwBhkO,GACxD,GAAID,IAAoBwoQ,EAAsB,CAC1C,IAAItjP,EAAW7pE,KAAKonB,gBAAgB2hF,iBAAiBnkD,GACrD,GAAIilB,GAAY,EAAG,CACf,IAAImI,EAAc,eAAEhyE,KAAKmsB,QAAQ,YAAYwqD,cAAc9M,IAC3D7pE,KAAKihE,cAAc,sBAAsB0nN,uBAAuB32M,EAAartB,MAIzFyoQ,2BAA4B,WACxB,MAAO,aAAeptT,KAAK+nB,OAAO,mBAAqB/nB,KAAK+nB,OAAO,6BAEvEilS,iBAAkB,SAAS5rT,EAAOi0F,GACzBr1F,KAAK+nB,OAAO,uBAGjB3mB,OAAQ,IAAWA,EAAQA,EAAQpB,KAAK+nB,OAAO,mBAC3C3mB,EAAQ,EACJpB,KAAKotT,8BACLptT,KAAKukR,mBAGTvkR,KAAKqtT,qBAAqBjsT,EAAOi0F,KAGzCg4N,qBAAsB,SAASjsT,EAAOi0F,GAClC,IAAIpD,EAAiBjyF,KAAKihE,cAAc,QACpCzF,EAAWy2B,EAAez2B,WAC1B8xP,EAAgB,KAChB,GAAIttT,KAAKutT,wBAAwBnsT,GAAQ,CACrC,IAAIyoE,EAAWzoE,EAAQ6wF,EAAe2U,mBAAkB,GACxD,IAAKvR,GAAkBA,EAAejtC,SAAWitC,EAAex5B,UAAW,CACvE,IAAI63L,EAAgBzhK,EAAeu7N,oBACnC3jP,EAAWloD,KAAKC,IAAIioD,EAAU6pL,GAElC,IAAI9uM,EAAgBqtC,EAAe4W,iBAAiBh/B,GAAU,GAC1D,eAAUjlB,KAAmB5kD,KAAKytT,aAAa7oQ,IAC/C5kD,KAAK+nB,OAAO,gBAAiB68B,KAIzC,GAAI4W,GAAY,EACZ,GAAKx7D,KAAK0tT,iBAAiBtsT,GAMvBksT,QAN+B,CAC/B,IAAI/xP,EAAY55C,KAAKI,MAAM3gB,EAAQ6wF,EAAez2B,YAClD,kBAAKy2B,EAAe12B,UAAUA,GAAY02B,EAAegP,aAAa9zE,KAAK,KACvEmgS,QAOhB,iBAAiBlsT,GACb,IAAI6wF,EAAiBjyF,KAAKihE,cAAc,QACpC0sP,EAAqB3tT,KAAKihE,cAAc,sBAAsBo5M,sBAClE,GAAIszC,EAAoB,CACpB,IAAIpyP,EAAY55C,KAAKI,MAAM3gB,EAAQ6wF,EAAez2B,YAC9CoyP,EAAe37N,EAAeo0I,oBAC9BwnF,EAAoBD,EAAeA,EAAatnF,OAAS,EACzDwnF,EAAmB77N,EAAekV,iBAAiBvtG,OAASq4F,EAAe2U,oBAC3EmnN,EAAoBpsS,KAAKw8E,KAAK2vN,EAAmB77N,EAAez2B,YACpE,OAAOqyP,GAAqBzsT,GAAS2sT,EAAoBxyP,EAE7D,OAAO,GAEXyyP,yBAA0B,SAAS5sT,GAC/B,IAAI6wF,EAAiBjyF,KAAKihE,cAAc,QACxC,GAAIjhE,KAAKutT,wBAAwBnsT,GAAQ,CACrC,IAAIyoE,EAAWloD,KAAKC,IAAIxgB,EAAQ6wF,EAAe2U,oBAAqB3U,EAAevpE,QAAQ9uB,OAAS,GAChGgrD,EAAgBqtC,EAAe4W,iBAAiBh/B,GAChD,eAAUjlB,KAAmB5kD,KAAKytT,aAAa7oQ,IAC/C5kD,KAAK+nB,OAAO,gBAAiB68B,KAIzCsoQ,eAAgB,SAASpyT,GAChB,eAAUA,GAGXkF,KAAKiuT,eAAenzT,GAAK,GAFzBkF,KAAKukR,oBAKbA,iBAAkB,WACd,IAAI3/N,EAAgB5kD,KAAK+nB,OAAO,iBAC5BmmS,EAAyB,eAAUtpQ,GACvC,GAAKspQ,KAA0BluT,KAAK+nB,OAAO,mBAAqB,GAAhE,CAGA,IAAI2yD,EAAqB16E,KAAKihE,cAAc,sBACxCitP,GACAluT,KAAK+nB,OAAO,gBAAiB,MAEjC2yD,EAAmB0pM,oBAAoB,GACvCpkR,KAAK+nB,OAAO,mBAAoB,GAChC/nB,KAAKihE,cAAc,QAAQkgC,YAAY,CACnCnwB,WAAY,mBACZpsB,cAAe,OAEnB81B,EAAmBiuM,4BAAuB,GAAS,KAEvD4kC,wBAAyB,SAAS1jP,GAC9B,IAAIooB,EAAiBjyF,KAAKihE,cAAc,QACpCpwD,EAAMohF,EAAekV,iBAAiBt9B,GAC1C,OAAQh5D,GAAO,SAAWA,EAAIM,SAAW,UAAYN,EAAIM,SAE7D6uD,cAAe,WACX,MAAO,CAAC,gBAAiB,iBAE7By3H,cAAe,SAAS38L,GAIpB,OAHKkF,KAAKotT,8BACNptT,KAAK+nB,OAAO,mBAAoB,GAE7B/nB,KAAKiuT,eAAenzT,IAE/BmzT,eAAgB,SAASnzT,EAAKqzT,GAC1B,IAAIxqT,EAAO3D,KACPiyF,EAAiBtuF,EAAKs9D,cAAc,QACpCmtP,EAAiBzqT,EAAKypT,6BACtBlrS,EAAI,IAAI,cACZ,QAAI,IAAWpnB,IAAQm3F,EAAe1oE,aAClC,OAAOrH,EAAE2hB,SAASvT,UAEtB,IAAI+9R,EAAgB1qT,EAAKilR,wBAAwB9tR,GAwBjD,OAvBKszT,GAAkBD,GAAgBE,GAAiB,EACpD1qT,EAAK2qT,YAAYxzT,EAAKonB,EAAGisS,GAEzBl8N,EAAes8N,kBAAkBzzT,GAAKqyB,MAAK,SAAUouC,GAC7CA,EAAY,EACZr5C,EAAEsN,SAAS,GAGX+rC,IAAc02B,EAAe12B,YAC7B02B,EAAeqD,SAASnoE,MAAK,WACrBxpB,EAAK8pT,aAAa3yT,IAAQm3F,EAAe8W,iBAAiBjuG,IAAQ,EAClEonB,EAAEsN,QAAQ7rB,EAAKilR,wBAAwB9tR,IAEvC6I,EAAK2qT,YAAYxzT,EAAKonB,EAAGisS,MAE7Bx+R,KAAKzN,EAAE2hB,QAEXouD,EAAe12B,UAAUA,GAAWpuC,MAAK,WACrCxpB,EAAK2qT,YAAYxzT,EAAKonB,EAAGisS,MACzBx+R,KAAKzN,EAAE2hB,WAEflU,KAAKzN,EAAE2hB,QAER3hB,EAAEoO,WAEbg+R,YAAa,SAASxzT,EAAK4iE,EAAUywP,GACjC,IAAIlpN,EAAkBjlG,KAAKihE,cAAc,QAAQ8nC,iBAAiBjuG,GAC9D0zT,EAA4B,OAAcrgS,sBAAsBnuB,MAChEouT,EAAiBpuT,KAAKotT,6BACtBgB,GAAkBI,GAA6BvpN,EAAkB,EACjEjlG,KAAKyuT,sBAAsB3zT,EAAK4iE,EAAUywP,GAE1CnuT,KAAK0uT,sBAAsB5zT,EAAK4iE,EAAUywP,IAGlDO,sBAAuB,SAAS5zT,EAAK4iE,EAAUywP,GAC3C,GAAIA,EACAnuT,KAAK2uT,yBAAyB7zT,EAAK4iE,OAChC,CACH,IAAI/Y,EAAkB3kD,KAAK4oR,wBAAwB9tR,GACnDkF,KAAKmsB,QAAQ,YAAYyiS,mBAAmB9zT,EAAK4iE,GAAUvwC,MAAK,WAC5DuwC,EAASluC,QAAQm1B,QAI7B8pQ,sBAAuB,SAAS3zT,EAAK4iE,EAAUywP,GAC3C,IAAIxqT,EAAO3D,KACPiyF,EAAiBjyF,KAAKihE,cAAc,QACpCuxK,EAAuBvgJ,EAAekgJ,sBACtCtoK,EAAW,OAAcphD,cAAc3tB,EAAKm3F,EAAevpE,OAAM,IACjEwjF,EAAavoG,EAAKwoB,QAAQ,YAAYihF,gBAC1C,GAAIolI,GAAwBtmI,GAAcriC,GAAY,EAAG,CACrD,IAAIllB,EAAkBklB,EAAWooB,EAAe2U,mBAAkB,GAC9Dx7E,EAASonN,EAAqB3G,cAAclnL,GAChDhhD,EAAKoJ,UAAU1H,GAAG,gBAAgB,SAAUwpT,IACxClrT,EAAKoJ,UAAUwzD,IAAI,eAAgBsuP,GAC/BV,EACAxqT,EAAKgrT,yBAAyB7zT,EAAK4iE,GAEnCA,EAASluC,QAAQm1B,MAGzB3kD,KAAKmsB,QAAQ,YAAY2iS,kBAAkB1jS,QAE3CsyC,EAASluC,SAAS,IAG1Bm/R,yBAA0B,SAAS7zT,EAAK4iE,GACpC,IAGQx7C,EAHJ+vE,EAAiBjyF,KAAKihE,cAAc,QACpCtc,EAAkB3kD,KAAK4oR,wBAAwB9tR,GAC/CkF,KAAKutT,wBAAwB5oQ,IAEzB3kD,KAAK+nB,OAAO,qBACZkqE,EAAekP,YAAY,CACvBnwB,WAAY,mBACZpsB,cAAe9pD,IAGnBonB,EAAIliB,KAAKmsB,QAAQ,YAAYyiS,mBAAmB9zT,GAEpD,kBAAKonB,GAAGiL,KAAK,KACTntB,KAAKihE,cAAc,sBAAsBmjN,mBAAmBz/N,GAC5D+Y,GAAYA,EAASluC,QAAQm1B,MAGjC+Y,GAAYA,EAASluC,SAAS,IAGtCo5P,wBAAyB,SAAS9tR,GAC9B,IAAIm3F,EAAiBjyF,KAAKihE,cAAc,QACpC+zH,EAAiB/iG,EAAe8W,iBAAiBjuG,GAAK,GAC1D,OAAOk6L,GAAkB,EAAIA,EAAiB/iG,EAAe2U,mBAAkB,IAAS,GAE5FmoN,sBAAuB,WACnB,IAAInqQ,EAAgB5kD,KAAK+nB,OAAO,iBAC5BinS,EAAyBhvT,KAAK+nB,OAAO,mBACrC2yD,EAAqB16E,KAAKihE,cAAc,sBACxCgxB,EAAiBjyF,KAAKihE,cAAc,QACxC,GAAI,eAAUrc,GAAgB,CAC1B,IAAIqgD,EAAkBhT,EAAe8W,iBAAiBnkD,GAClDqgD,GAAmB,GACfvqB,EAAmB2/L,wBACnB20C,EAAyB/pN,EAAkBhT,EAAe2U,qBAE9DlsB,EAAmB0pM,mBAAmB4qC,GACtChvT,KAAK2uT,yBAAyB/pQ,IAE9B5kD,KAAKiuT,eAAerpQ,GAAe,GAAMz3B,KAAKw3B,IACtCqqQ,GAA0B,GAAKrqQ,EAAkB,EACjD3kD,KAAKgtT,mBACEgC,EAAyB,GAAKrqQ,GAAmB,GACxD+1B,EAAmB0pM,mBAAmBz/N,UAI3CqqQ,GAA0B,GACjChvT,KAAKihE,cAAc,SAAS+rP,iBAAiBgC,IAGrDvB,aAAc,SAAS3yT,GACnB,IAAI8pD,EAAgB5kD,KAAK+nB,OAAO,iBAChC,GAAI,eAAU68B,GACV,OAAO,eAAa9pD,EAAKkF,KAAK+nB,OAAO,mBAG7CknS,iBAAkB,SAASr+P,GACvB,IAGIqf,EACAi/O,EAJAvrT,EAAO3D,KACP2kD,EAAkBhhD,EAAKyjB,gBAAgB2hF,iBAAiBn4C,EAAOhM,eAC/D14B,EAAWvoB,EAAKwoB,QAAQ,YAG5B,eAAKD,EAAS8nD,oBAAoB,SAAU5yE,EAAOylB,GAC/C,IAAIsoS,EAAc,IAAM/tT,EACxB6uE,EAAgB,eAAEppD,GAClBljB,EAAKyrT,yBAAyBn/O,EAAetrB,GAC7C,IAAI4nB,EAAO5oE,EAAK0rT,mBAAmB,CAC/BC,YAAa3rT,EAAKyjB,gBAAgB+/E,iBAAiBxiD,GACnDsrB,cAAeA,EACftrB,gBAAiBA,IAEjBwqQ,IACAD,EAAW3iP,MAGnB2iP,GAAYhjS,EAASqjS,0BAA0BL,IAEnDE,yBAA0B,SAASn/O,EAAetrB,GAC9C,IAAI6qQ,EAAyBv/O,EAAchpD,KAAK,IAAsB7oB,OAAO,CAACW,EAAG0wT,KAC7E,IAAIC,EAAmB,eAAED,GAAYxiS,QAAQ,IAAIpb,OAAO7R,KAAK+mB,gBAAgB8lS,MAC7E,OAAO58O,EAAcriF,GAAG8hU,KAI5B,GAFAF,EAAuBhoS,YAAYolS,IAAmBplS,YAAY,IAA2B+lD,WAAW,YACxGiiP,EAAuBnoP,SAAS,MAAMkG,WAAW,YAC7C,IAAM5oB,EAAiB,CACvB,IAAIgrQ,EAAY,eAAE3vT,KAAKmsB,QAAQ,YAAYwqD,cAAc,IACzDg5O,EAAUnoS,YAAY,IAA2B+lD,WAAW,cAGpE8hP,mBAAoB,SAASr+S,GACzB,IAAIu7D,EACA+iP,EAAct+S,EAAQs+S,YAC1B,GAAIA,IAAgB,SAAWA,EAAYn+S,SAAW,UAAYm+S,EAAYn+S,SAAU,CACpF,IAAIwzC,EAAkB3zC,EAAQ2zC,gBAC1BsrB,EAAgBj/D,EAAQi/D,cACxBzmB,EAAWxpD,KAAK+nB,OAAO,aAAe,EACtCmE,EAAWlsB,KAAKmsB,QAAQ,YAC5BogD,EAAO,eAAErgD,EAASiqD,gBAAgBlG,GAAezkD,GAAGm5B,IACpD4nB,EAAKjlD,SAASslS,IAAmB5rP,KAAK,WAAYxX,GAEtD,OAAO+iB,KAGJqjP,GAAc,CACrBjyT,eAAgB,WACZ,MAAO,CACH+mD,mBAAmB,EACnBzB,0BAA0B,EAC1B2B,cAAe,KACfD,iBAAkB,EAClBF,oBAAqB,IAG7BogB,YAAa,CACT7xD,MAAO85S,IAEX7nP,UAAW,CACPJ,YAAa,CACT1f,mBAAoB,CAChB4a,KAAM,WACF,IAAI8J,EAAW7pE,KAAK+nB,OAAO,mBACvBnD,EAAc5kB,KAAK+nB,OAAO,sBAC9B/nB,KAAKygE,aAAa,uBAAwB,CACtC0T,kBAAmB,CAAC,WAAY,cAEpCn0E,KAAKygE,aAAa,sBAAuB,CACrC0T,kBAAmB,CAAC,WAAY,cAEpCn0E,KAAKygE,aAAa,wBAAyB,CACvC0T,kBAAmB,CAAC,WAAY,cAEpCn0E,KAAKygE,aAAa,uBAAwB,CACtC0T,kBAAmB,CAAC,WAAY,cAEpCn0E,KAAKC,WACLD,KAAKk9Q,kBACLl9Q,KAAK06Q,qBAAuB,GACxB,eAAU7wM,KACV7pE,KAAK06Q,qBAAqB7wM,SAAW7pE,KAAK+nB,OAAO,oBAEjD,eAAUnD,KACV5kB,KAAK06Q,qBAAqB91P,YAAc5kB,KAAK+nB,OAAO,wBAG5Dq8P,mBAAoB,SAASv6M,GACzB,IAAIooB,EAAiBjyF,KAAKihE,cAAc,QACxCjhE,KAAKC,SAAS4pE,GACd,IAAIo7B,EAAkBp7B,EAAWooB,EAAe2U,oBAC5CipN,EAAa59N,EAAekV,iBAAiBlC,GAC5C4qN,GAAeA,EAAW5jS,UAC3BjsB,KAAK+nB,OAAO,kBAAmB8hD,IAGvC84M,sBAAuB,SAAS/9P,GAC5B5kB,KAAKC,SAAS2kB,GACd5kB,KAAK+nB,OAAO,qBAAsBnD,IAEtCo5P,kBAAmB,SAAShkK,EAAW7sC,IAC/BA,GAAcntE,KAAK+nB,OAAO,qBAI1B/nB,KAAKi9Q,oBACLj9Q,KAAKk9Q,kBACLl9Q,KAAK0jR,OAAO1jR,KAAKuhR,0BAA0BvnK,EAAUphC,cAActzD,SAAS,IAL5EtlB,KAAKC,SAAS+5G,EAAW7sC,IAQjCs0M,2BAA4B,SAASv6M,EAAOnN,GACxC,IAAIsqN,EAAerkR,KAAK+nB,OAAO,mBAC3BugQ,EAAkBtoR,KAAK+nB,OAAO,sBAC9BysC,EAAWx0D,KAAKC,SAASinE,EAAOnN,GAChCvF,GAAYA,EAAS5vC,aAAe,GACpC5kB,KAAKuoR,wBAAwBrhN,EAAOohN,EAAiBjE,KAIjElzJ,cAAe,CACXs5D,mBAAoB,SAASzkK,EAAUskK,GACnC,IAGIpjH,EAHAwT,EAAqB16E,KAAKihE,cAAc,sBACxCvc,EAAoB1kD,KAAK+nB,OAAO,qBAChC+iF,EAAoB9qG,KAAKihE,cAAc,WAE3C,GAAKvc,GAAuB,OAASg2B,QAAsB,IAAWA,GAAsBA,EAAmBqiM,mBAAqBjyK,EAAkB39B,aAE/I,GAAIzoB,EAAmB,CAC1B,IAAIorQ,EAAe,QAAUp1O,EAAmB+kM,gBAAgBz5P,GAC5D8pS,IAAiB9pS,EAASsgD,SAASsmP,MACnC1lP,EAAQwT,EAAmB0nM,uBAAuBp8P,GAClD00D,EAAmB1nE,MAAMk0D,UAL7BlnE,KAAKC,SAAS+lB,EAAUskK,KAUpCh9J,QAAS,CACLgjE,4BAA6B,SAASvxF,EAAGgxT,GACrC,IAAI9wT,EAASe,KAAKC,SAASnB,MAAMkB,KAAME,WACnC+xF,EAAiBjyF,KAAKihE,cAAc,QACpC13C,EAAa0oE,EAAezoE,YAC5ByG,EAAQgiE,EAAehiE,QACvBn1B,EAAMm1B,GAASA,EAAMn1B,MACrBm0B,EAAmB1F,GAAcA,EAAW0F,oBAAsB,GAClE+qE,EAAoBx8F,OAAO84B,KAAKrH,GAAkBuJ,MAAMyhE,IAAkBhrE,EAAiBgrE,IAC/F,GAAIn/F,IAAQkF,KAAK+nB,OAAO,uBAAwB,IAAU/nB,KAAKihE,cAAc,SAASmsP,8BAAgC2C,GAAY,CAC9Hj1T,EAAM+D,MAAM0nB,QAAQzrB,GAAOA,EAAM,CAACA,GAClC,IAAIk1T,EAAgBl1T,EAAIsD,OAAOtD,IAAQkF,KAAK62E,aAAa/7E,EAAK,cAC1Dk1T,EAAcp2T,SACdqF,EAASA,GAAU,GACf+6F,EACA/6F,EAAOgE,KAAK,CACR0jB,SAAU4C,EAAW8wE,qBACrBvvE,MAAM,IAGVklS,EAAc9uT,QAAQ+uT,GAAgBhxT,EAAOgE,KAAK,CAC9C0jB,SAAUspS,EACVnlS,MAAM,MAKtB,OAAO7rB,IAGfkH,KAAM,CACFu9F,aAAc,SAAS9yC,GACnB,IAAIA,GAAU,qBAAuBA,EAAOogB,WAG5C,OAAOhxE,KAAKC,SAASnB,MAAMkB,KAAME,YAErCsnG,aAAc,SAAS5jG,GAEnB,GADA5D,KAAKC,SAAS2D,GACV5D,KAAK+nB,OAAO,sBAAwB/nB,KAAKwpB,YAAa,CACtD,IAAI0mS,EAAkB,WAAatsT,EAAEotE,YAAcptE,EAAE0kD,mBACjD6nQ,EAA8BD,GAAmBtsT,EAAEytE,aAAeztE,EAAEytE,YAAY/yE,QAAQ,WAAa,EACrG,YAAcsF,EAAEotE,YAAcptE,EAAE8kB,MAAM9uB,QAAUu2T,GAChDnwT,KAAKowT,qBACLpwT,KAAKqwT,wBAAwBzsT,IACtB,WAAaA,EAAEotE,YAAc,YAAcptE,EAAEotE,WACpDhxE,KAAKowT,qBACE,WAAaxsT,EAAEotE,YAAcptE,EAAE0kD,oBACtCtoD,KAAKqwT,wBAAwBzsT,KAIzCwsT,mBAAoB,WAChB,IAAIE,EAAyBtwT,KAAKuwT,yBAA2B,EACzDC,EAAqBxwT,KAAKmyO,sBAAwBnyO,KAAKmyO,sBAAsB52K,YAAc,EAC/Fv7D,KAAKuwT,wBAA0BC,EAC/BxwT,KAAKywT,qBAAuBD,IAAuBF,GAEvDI,oBAAqB,WACjB,OAAO1wT,KAAKywT,sBAEhBJ,wBAAyB,SAASzsT,GAC9B,IAAIyxF,EAAiBzxF,EAAEyxF,gBAAkB,GACrCiiG,EAAkBt3L,KAAKihE,cAAc,UAErCq0B,OAAQA,EACRC,WAAYA,GACZF,EACA3a,EAAqB16E,KAAKihE,cAAc,sBACxC0sP,EAAqBjzO,EAAmB2/L,sBACxCz1N,EAAgB5kD,KAAK+nB,OAAO,iBAC5BqmS,EAAiB92H,EAAgB81H,6BACrC,GAAI93N,IAAWC,GAAc,eAAU3wC,GACnC0yI,EAAgB22H,eAAerpQ,GAAe,GAAMz3B,MAAK,SAAUw3B,GAC3DA,EAAkB,GAClB2yI,EAAgB01H,sBAAiB,EAAQ33N,WAG9C,GAAIA,EAAejtC,SAAWulQ,EACjC,GAAIS,EAAgB,CAChB,IAAIC,EAAgBruT,KAAK+oG,iBAAiBnkD,GACtC+rQ,EAAuBtC,GAAiB,EACxC1pQ,EAAkB3kD,KAAK+nB,OAAO,mBAC9B6oS,EAAsBjsQ,GAAmB,IAAMA,IAAoB0pQ,IAAkBsC,GACrFC,GACAt5H,EAAgB01H,sBAAiB,EAAQ33N,QAEtCr1F,KAAK+oG,iBAAiBnkD,GAAiB,GAC9C5kD,KAAK+nB,OAAO,mBAAoB,QAE7BstE,EAAeE,YACtB+hG,EAAgBy3H,yBAGxBR,kBAAmB,SAASzzT,GACxB,IAAI6I,EAAO3D,KACPkiB,EAAI,IAAI,cAIZ,OAHAve,EAAKktT,uBAAuB/1T,GAAKqyB,MAAK,SAAUqqE,GAC5Ct1E,EAAEsN,QAAQgoE,GAAe,EAAI71E,KAAKI,MAAMy1E,EAAc7zF,EAAK63D,aAAe,MAC1E7rC,KAAKzN,EAAE2hB,QACJ3hB,EAAEoO,WAEbugS,uBAAwB,SAAS/1T,GAC7B,OAAIkF,KAAKwpB,YAAY9C,QACV1mB,KAAK8wT,sCAAsCh2T,GAE/CkF,KAAK+wT,mCAAmCj2T,IAEnDi2T,mCAAoC,SAASj2T,EAAKk2T,EAAaC,GAC3D,IAAIttT,EAAO3D,KACP09D,EAAW,IAAI,cACfn0C,EAAa5lB,EAAK6lB,YACtB,GAAI3qB,MAAM0nB,QAAQzrB,GACd,OAAO4iE,EAASluC,SAAS,GAAGc,UAEhC,IAAIlyB,EAASuF,EAAKutT,qBAAqBp2T,GAoBvC,OAnBAyuB,EAAW+F,KAAK,CACZlxB,OAAQuF,EAAKwtT,0BAA0B/yT,GACvCsxB,KAAM,EACND,KAAM,IACPtC,MAAK,SAAUhnB,GACVA,EAAKvM,OAAS,GACdwE,EAASuF,EAAKytT,8BAA8Bt2T,EAAKqL,EAAK,GAAI8qT,GAC1D1nS,EAAW+F,KAAK,CACZlxB,OAAQuF,EAAKwtT,0BAA0B/yT,EAAQ4yT,GAC/CthS,KAAM,EACND,KAAM,EACNitE,mBAAmB,IACpBvvE,MAAK,SAAUpuB,EAAG47C,GACjB+iB,EAASluC,QAAQmrB,EAAMigD,gBAG3Bl9B,EAASluC,SAAS,MAGnBkuC,EAASptC,WAEpB6gS,0BAA2B,SAAS/yT,EAAQ4yT,GACxC,IAAIlwN,EAAiB9gG,KAAKkyF,oBAC1B,OAAO,OAActpE,eAAe,CAACxqB,EAAQ0iG,EAAgBkwN,KAEjEK,uBAAwB,SAAS1qS,EAAU9kB,EAAOyvT,GAC9C,IAAIryT,EAMJ,OALI,IAAU4C,EACV5C,EAAS,CAAC0nB,EAAU,MAAK2qS,EAASxmS,MAAc,QACzC,IAASjpB,GAASyvT,EAASxmS,KAAOwmS,EAASxmS,QAClD7rB,EAAS,CAAC0nB,EAAU,KAAM9kB,IAEvB5C,GAEXmyT,8BAA+B,SAASt2T,EAAKy6J,EAAS07J,GAClD,IAAIttT,EAAO3D,KACPupB,EAAa5lB,EAAK6lB,YAClBprB,EAASuF,EAAKutT,qBAAqBp2T,EAAK,KACxCgH,EAAO6B,EAAK8oE,mBAAmB6jB,6BAA6B/mE,EAAW0F,mBAAmB4sC,WAAW,GACzG,GAAIo1P,EAAU,CACV,IAAIvqS,EAAQ/iB,EAAK8oE,mBAAmBikB,8BAA8BnnE,EAAW0F,mBAAmB4sC,WAC5Fn1C,IACA5kB,EAAOA,EAAO4kB,EAAM7U,OAAO/P,GAAQ4kB,GA0C3C,OAvCI5kB,GACAA,EAAKuhB,QAAQ+yE,UAAUl1F,SAAQ,SAAUowT,GACrC,IACIp+O,EADAvsD,EAAW2qS,EAAS3qS,SAGpBusD,EADA,oBAAsBvsD,EACbA,EAEAhjB,EAAK8oE,mBAAmBoK,aAAalwD,EAAU,YAE5D,IAAI9kB,EAAQqxE,EAASA,EAAOqiF,GAAWA,EAAQ5uI,GAI/C,GAHAvoB,EAAS,CACL,CAACuoB,EAAU,IAAK9kB,GAAQ,MAAOzD,GAE/B,OAASyD,GAAS,eAAUA,GAAQ,CACpC,IAAI0vT,EAAgB5tT,EAAK0tT,uBAAuB1qS,EAAU9kB,EAAOyvT,GAC7DC,IACAnzT,EAAS,CAACmzT,EAAe,KAAMnzT,QAEhC,CACH,IACIozT,EADAnkE,EAAkBikE,EAASxmS,KAAO,IAAM,IAExCwmS,EAAS5mS,QACT8mS,EAAarrT,GACL,MAAQknP,EACDikE,EAAS5mS,QAAQ7oB,EAAOqxE,EAAO/sE,KAAU,EAEzCmrT,EAAS5mS,QAAQ7oB,EAAOqxE,EAAO/sE,MAAW,GAIzDqrT,EAAa,CAAC7qS,EAAU0mO,EAAiBxrP,GACpCyvT,EAASxmS,OACV0mS,EAAa,CAACA,EAAY,KAAM,CAAC7qS,EAAU,IAAK,SAGxDvoB,EAAS,CAACozT,EAAY,KAAMpzT,OAIjCA,GAEX8yT,qBAAsB,SAASp2T,EAAKguB,GAChC,IAAI2oS,EAAgBzxT,KAAKwpB,YAAY1uB,MACjCsD,EAAS,GAIb,GAHK0qB,IACDA,EAAY,KAEZjqB,MAAM0nB,QAAQkrS,GACd,IAAK,IAAIh2T,EAAI,EAAGA,EAAIg2T,EAAc73T,SAAU6B,EAAG,CAC3C,IAAIi2T,EAAU52T,EAAI22T,EAAch2T,IAC5Bi2T,IACItzT,EAAOxE,OAAS,GAChBwE,EAAO6E,KAAK,OAEhB7E,EAAO6E,KAAK,CAACwuT,EAAch2T,GAAIqtB,EAAW4oS,UAIlDtzT,EAAS,CAACqzT,EAAe3oS,EAAWhuB,GAExC,OAAOsD,GAEXovT,kBAAmB,WACf,OAAOxtT,KAAK0oB,OAAM,GAAM9uB,OAAS,IAGzCoqD,QAAS,CACL22I,eAAgB,SAAS9wH,GACrB,IAAInM,EAAW19D,KAAKC,SAASnB,MAAMkB,KAAME,WACrC+xF,EAAiBjyF,KAAKihE,cAAc,QACpC28H,EAAS3rG,EAAe4W,iBAAiBh/B,GAC7CnM,EAASvwC,KAAK,KACV,IAAI08C,EAAWooB,EAAe8W,iBAAiB60F,GAC3CiyC,EAAc59I,EAAekV,kBAC5B,IAAMt9B,GAAagmK,EAAYj2O,QAChCoG,KAAKihE,cAAc,SAASsjN,wBAMhDx/M,MAAO,CACH74C,SAAU,CACN4/C,WAAY,SAASj7D,GACjB,IAAI07D,EAAOvsE,KAAKC,SAASnB,MAAMkB,KAAME,WAMrC,OALIF,KAAK+nB,OAAO,sBAAwBlX,GAChC7Q,KAAKihE,cAAc,SAASwsP,aAAa58S,EAAI/V,MAC7CyxE,EAAKjlD,SAASslS,IAGfrgP,GAEX6iC,cAAe,SAASp+F,GAEpB,GADAhR,KAAKC,SAASnB,MAAMkB,KAAME,WACtBF,KAAK+nB,OAAO,sBAAwB/nB,KAAK+nB,OAAO,cAAe,CAC/D,IAAIkI,EAAQjwB,KAAKonB,gBAAgB6I,QAC7BA,IAAUA,EAAMn1B,OAChBkF,KAAKonB,gBAAgB86E,UAAU,QAAS,kBAIpDuK,QAAS,SAAS77C,GACV,qBAAuBA,EAAOogB,WAC1BhxE,KAAK+nB,OAAO,sBACZ/nB,KAAKihE,cAAc,SAASguP,iBAAiBr+P,GAGjD5wD,KAAKC,SAAS2wD,IAGtB44N,2BAA4B,SAASp0M,EAAenR,GAChD,IAAI4F,EAAW7pE,KAAKihE,cAAc,sBAAsBq9M,qBACpDztQ,EAAM7Q,KAAKonB,gBAAgB+/E,iBAAiBt9B,IAC5C7pE,KAAK+nB,OAAO,sBAA0B,OAASlX,QAAO,IAAWA,GAAOA,EAAIob,SAG5EjsB,KAAKC,SAASm1E,GAFdp1E,KAAK2xT,8BAA8B1tP,IAK3C0tP,8BAA+B,SAAS1tP,GACpC,IAAIrf,EAAgB5kD,KAAK+nB,OAAO,iBAC5ByhC,EAAWxpD,KAAK+nB,OAAO,aAAe,EACtCkqE,EAAiBjyF,KAAKonB,gBACtBu/C,EAAoB3mE,KAAKysE,mBACzB5C,EAAWooB,EAAe8W,iBAAiBnkD,GAC3ChgC,EAAc5kB,KAAK+nB,OAAO,sBAC1BwkD,EAAOvsE,KAAK4xT,6BAQhB,GAPK,eAAU5xT,KAAK6xT,0BAChB7xT,KAAK6xT,uBAAyB,KAC1B7xT,KAAKuvT,0BAA0BvvT,KAAK4xT,8BACpC5xT,KAAKmjE,gBAAgBr7C,OAAO9nB,KAAK6xT,0BAGzCtlP,EAAKvL,KAAK,WAAYxX,GAClBqgB,GAAY,IAAM5F,IACdr/C,EAAc,IACdA,EAAc,GAElBilD,GAAYooB,EAAe2U,oBAC3BhiF,GAAe+hD,EAAkB6L,uBACjCxyE,KAAKihE,cAAc,sBAAsB0kN,uBAAuB97M,EAAUjlD,GACtE5kB,KAAKihE,cAAc,SAASmsP,8BAA8B,CAC1D,IAAI7jS,EAAa0oE,EAAe1oE,aAC5B8rE,EAAiB9rE,GAAcA,EAAW8rE,kBAC1CA,GAAmBA,EAAejtC,QAAW6pC,EAAey+N,wBAC5D1wT,KAAKmjE,gBAAgBr7C,OAAO9nB,KAAK6xT,wBACjC7xT,KAAKmjE,gBAAgBqR,IAAIx0E,KAAK6xT,2BAK9CD,2BAA4B,WACxB,IAAIhtQ,EAAgB5kD,KAAK+nB,OAAO,iBAC5B8hD,EAAW7pE,KAAKonB,gBAAgB2hF,iBAAiBnkD,GACrD,OAAO,eAAE5kD,KAAK22E,cAAc9M,GAAY,EAAIA,EAAW,KAE3D+kP,mBAAoB,SAAS9zT,GACzB,IAAI+uE,EAAW7pE,KAAKihE,cAAc,QAAQ8nC,iBAAiBjuG,GACvDyxE,EAAO,eAAEvsE,KAAKyR,OAAOo4D,IACzB,OAAO7pE,KAAKuvT,0BAA0BhjP,IAE1CgjP,0BAA2B,SAAShjP,GAChC,IAAI2/B,EAAalsG,KAAKotG,gBACtB,GAAIlB,GAAc3/B,EAAK3yE,OAAQ,CAC3B,IAAI46D,EAAW03C,EAAW4lN,yBAAyBvlP,EAAM,YACzD,OAAOvsE,KAAK8uT,kBAAkBt6P,GAElC,OAAO,IAAK,eAAUhlC,WAE1Bs/R,kBAAmB,SAASr+L,GACxB,IAAIvuG,EAAI,IAAI,cACRgqF,EAAalsG,KAAKotG,gBACtB,GAAIlB,EAAY,CACZ,IAAI6lN,EAAmB7lN,EAAWukB,YAC9B3iB,EAAgB,KAChB5B,EAAW3rC,IAAI,SAAUutC,GACzB5rF,EAAEsN,WAEN,GAAIihG,IAAcshM,EAMd,OALA7lN,EAAW7mG,GAAG,SAAUyoG,GACxB9tG,KAAKonB,gBAAgBugF,sBACrBuE,EAAWr7B,SAAS,CAChBjlD,IAAK6kG,IAEFvuG,EAAEoO,UAGjB,OAAOpO,EAAEsN,eC3vBzB,GAAmBjL,OAAO69D,kBAAoB,iBAClD,EAAS3c,eAAe,QAAS,OAAAhrE,EAAA,YAAO,EAAM,GAAIm1T,GAAa,CAC3D3qP,UAAW,CACPJ,YAAa,CACT1+D,KAAM,CACFmrI,gBAAiB,SAASroD,EAAM+oO,GAC5B,GAAIhyT,KAAK+nB,OAAO,sBAAwBlpB,MAAM0nB,QAAQ0iE,IAASjpF,KAAK2sG,cAAc1jB,GAAO,CACrF,IAAI9jC,EAAqBnlD,KAAKihE,cAAc,sBACtC+wP,GAAe7sQ,EAAmBw1B,sBAAwB36E,KAAKiyT,yBAAyBhpO,IAC1FjpF,KAAK+nB,OAAO,gBAAiBkhE,GAGrC,OAAOjpF,KAAKC,SAASnB,MAAMkB,KAAME,YAErC+xT,yBAA0B,SAAShpO,GAC/B,IAAItiB,EAAoB3mE,KAAKihE,cAAc,WACvCrc,EAAgB5kD,KAAK+nB,OAAO,iBAC5B8hD,EAAW7pE,KAAK+oG,iBAAiBnkD,GACjC6qQ,EAAa5lP,GAAY,GAAK7pE,KAAKmnG,iBAAiBt9B,GACpDojE,EAAStmE,EAAkB+pB,8BAA6B,GAC5D,GAAI++N,EACA,IAAK,IAAIh0T,EAAI,EAAGA,EAAIwtF,EAAKrvF,SAAU6B,EAAG,CAClC,IAAIy3E,EAAS,gBAAc+5D,EAAOxxI,IAAMwxI,EAAOxxI,GAAGkrB,UAClD,GAAIusD,EAAOu8O,EAAWtpT,QAAU8iF,EAAKxtF,GACjC,OAAO,EAInB,OAAO,GAEXy2T,cAAe,SAASvzP,EAAWu2B,GAC/B,IAAIi9N,EAAY,GACZzpS,EAAQ,CAACi2C,GACb,MAAOj2C,GAASA,EAAM,IAAMwsE,EAAY,CACpC,IAAInuF,EAAO2hB,EAAM,QACb,IAAW3hB,EAAKjM,KAChBq3T,EAAUlvT,KAAK8D,EAAKjM,KAExB4tB,EAAQ3hB,EAAK2hB,MACbwsE,IAEJ,OAAOi9N,GAEXC,mBAAoB,SAASzuT,EAAMwuT,EAAWlzR,GAC1C,IAAI/c,EAAI,IAAI,cASZ,OARA+c,IACAt7B,EAAKwzI,UAAUg7K,EAAU9uS,MAAM,EAAG4b,IAAQ9R,MAAK,WACvC8R,IAAUkzR,EAAUv4T,OACpBsoB,EAAEsN,UAEF7rB,EAAKyuT,mBAAmBzuT,EAAMwuT,EAAWlzR,GAAO9R,KAAKjL,EAAEsN,SAASG,KAAKzN,EAAE2hB,WAE3ElU,KAAKzN,EAAE2hB,QACJ3hB,EAAEoO,WAEbwgS,sCAAuC,SAASh2T,GAC5C,IAAI6I,EAAO3D,KACPupB,EAAa5lB,EAAK6lB,YAClBprB,EAASuF,EAAKutT,qBAAqBp2T,GACnC4iE,EAAW,IAAI,cACf20P,EAAaxzT,MAAM0nB,QAAQzrB,GAC3B4rB,EAAQ6C,EAAW7C,QACvB,OAAI2rS,EACO30P,EAASluC,SAAS,GAAGc,UAE3B/G,EAAW0sH,UAAUzB,sBAI1BjrH,EAAW+F,KAAK,CACZlxB,OAAQuF,EAAKwtT,0BAA0B/yT,GACvCsoB,MAAOA,IACRyG,MAAK,SAAUhnB,GACd,IAAKA,GAAQ,IAAMA,EAAKvM,SAAW,eAAUuM,EAAK,GAAGrL,OAAS,IAAMqL,EAAK,GAAGrL,IACxE,OAAO4iE,EAASluC,SAAS,GAAGc,UAEhC,IAAI6hS,EAAYxuT,EAAKuuT,cAAc/rT,EAAK,GAAIugB,EAAM9sB,QAClD+J,EAAKyuT,mBAAmBzuT,EAAMwuT,EAAW,GAAGhlS,MAAK,WAC7CxpB,EAAK2uT,iCAAiC50P,EAAU5iE,EAAKq3T,EAAWzrS,MAChEiJ,KAAK+tC,EAAS75B,WAClBlU,KAAK+tC,EAAS75B,QACX65B,EAASptC,YAfZ3sB,EAAKotT,mCAAmCj2T,EAAK,MAAM,GAAMqyB,KAAKuwC,EAASluC,SAASG,KAAK+tC,EAAS75B,QACvF65B,IAgBf40P,iCAAkC,SAAS50P,EAAU5iE,EAAKq3T,EAAWzrS,GACjE,IAOIkrH,EAPAo/K,EAAcxhL,GAAkB2iL,EAAW,CAC3CzrS,MAAOA,IAEP6C,EAAavpB,KAAKwpB,YAClB44E,EAAgBpiG,KAAK+nB,OAAO,kBAC5B4lS,EAAqB,YAAcvrN,GAAiB,aAAeA,EACnE5mC,EAAWjyC,EAAWiyC,WAE1BjyC,EAAW0sH,UAAUzB,qBAAqB,CACtC9kH,KAAM,EACND,KAAM,KACP,SAAUm/G,EAAWiE,GAChB,eAAajE,EAAU3lD,KAAMkpO,KAC7BvgL,EAAciB,MAGtB7yI,KAAK+wT,mCAAmCj2T,EAAKk2T,GAAa7jS,MAAK,SAAUolS,GACrE,IAAIhxS,EACAixS,EACJ,GAAID,EAAa,EACb70P,EAASluC,SAAS,OADtB,CAIA,IAAIijS,EAAoB7gL,EAAcp2E,GAAYA,EAClDj6C,EAAQkxS,EAAoBF,EAAaJ,EAAUv4T,OAE/C44T,EADA7E,EACyB,EAEAhsS,KAAKI,MAAMR,GAASi6C,EAAW22P,EAAUv4T,SAAWu4T,EAAUv4T,OAE3F2nB,EAAQqwH,EAAc2gL,EAAaC,EACnC90P,EAASluC,QAAQjO,OACjBoO,KAAK+tC,EAAS75B,e,iBC7HlC6uR,GAAuB,kBACvB,GAA4B,yBAC5BC,GAAoB,YACpB,GAAY,WACZC,GAAgC,6BAChCC,GAAsB,CACtB9yP,KAAM,WACF//D,KAAKC,SAASnB,MAAMkB,KAAME,WAC1BF,KAAK8yT,uBAETC,iBAAkB,WACd,IAAIvqQ,EAAcxoD,KAAK+nB,OAAO,eAC9B,SAAUygC,KAAgBA,EAAYuD,iBAAmBvD,EAAYsT,qBAAuBtT,EAAY9hC,SAE5GosS,oBAAqB,WACjB,IAAItqQ,EAAcxoD,KAAK+nB,OAAO,eAC1BgkC,EAAkB/rD,KAAK+yT,mBACvBpsP,EAAoB3mE,KAAKysE,mBACzBumP,EAAwBjnQ,GAAmBvD,EAAYsU,cAC3D6J,GAAqBA,EAAkBwkB,iBAAiB,CACpD1sF,KAAM,OACNkvB,QAAS,OACTkgC,cAAe,EACf1mD,UAAW,SACX6jD,SAAU0nQ,GACVnrT,MAAO,OACPH,aAAcpH,KAAKizT,qBACnBtpQ,QAASqpQ,IAEbrsP,EAAkBkQ,aAAa,YAAa,UAAWm8O,IAE3D9kN,eAAgB,WACZ,IAAI1lD,EAAcxoD,KAAK+nB,OAAO,eAC1BgkC,EAAkB/rD,KAAK+yT,mBACvBn2O,EAAW58E,KAAKC,SAASnB,MAAMkB,KAAME,WACrCozR,EAAwBtzR,KAAKowO,uBAC7B8iF,EAAe,YACfC,EAAoB,iBACpBC,EAAsB9/B,EAAwB6/B,EAAoBD,EAClEG,EAAsB//B,EAAwB4/B,EAAeC,EAC7DG,EAA2B9kN,IAC3B,IAAI+kN,EACJ,QAAUA,EAAwBvzT,KAAKmzT,UAAuB,IAAWI,GAAiCA,EAAsBvtS,WAAWyF,IAAI,gBAAiB+iF,EAAS,OAAS,KAElL86E,EAAc,8FACdlrL,EAAS4B,KAAK+nB,OAAO,mBAAqB,kBAAkBlW,OAAOy3K,GAAe,qBAAqBz3K,OAAOy3K,GA+DlH,OA9DKv9H,GAAmB/rD,KAAKozT,KAAyBx2O,EAAShjF,SAC3DoG,KAAKozT,GAAuBpzT,KAAKooB,iBAAiBw0D,EAAU,QAAU,OAAAniF,EAAA,WAAO,CACzEsS,UAAW/M,KAAK+M,UAChBqmD,gBAAiB,KACjBh1D,OAAQA,EACR49D,aAAchrD,IACV,IAAIswD,EAAQtwD,EAAQswD,MAChBkyP,EAAiB,eAAExzT,KAAK6mB,WAAWuE,SACvC,MAAO,CACHhe,EAAGk0D,EAAMmyP,MAAQD,EAAe7nS,OAGxC+nS,wBAAyB9vT,IACrB,IAAI4kD,EAAY0T,aAAhB,CAGA,IAAIy3P,EAAe,eAAE/vT,EAAEgwT,aACnBC,EAAeF,EAAatsP,SAAS,cAAclhE,KAAKnG,KAAK+M,UAAU80D,MAC3E7hE,KAAK8zT,+BAA+BD,KAExC33P,aAAcl8D,KAAK+zT,2BACnB33P,OAAQ5T,EAAYsU,eAAiB,IAAIjrD,OAAO6gT,IAChDv2P,iBAAkB,YACnB3T,EAAa,CACZiU,YAAa74D,IACT,IAAIm0N,EAAqBi8F,EACzB,QAAUj8F,EAAsB/3N,KAAKihE,cAAc,6BAA0B,IAAW82J,GAA+BA,EAAoBqkD,oBAC3I,IAAIvrQ,EAAMjN,EAAEmJ,UAAUo6F,iBAAiBvjG,EAAEosF,WACzCpsF,EAAEk8E,SAAWjvE,GAAOA,EAAI1K,KACxB,IAAI0mE,EAAYh8D,GAAO,SAAWA,EAAIM,QACtCvN,EAAEgsD,QAAU7D,IAAoB8gB,EAChC,QAAUmnP,EAAwBxrQ,EAAYiU,mBAAgB,IAAWu3P,GAAiCA,EAAsBxuS,KAAKgjC,EAAa5kD,IAEtJqwT,YAAa,KACTX,GAAyB,IAE7BY,YAAa,KACTZ,GAAyB,IAE7B/2P,UAAW34D,IACP,IAAIuwT,EACJb,GAAyB,GACzB,QAAUa,EAAwB3rQ,EAAY+T,iBAAc,IAAW43P,GAAiCA,EAAsB3uS,KAAKgjC,EAAa5kD,IAEpJy4D,MAAOz4D,IACH,IAAIwwT,EACJd,GAAyB,GACzB,QAAUc,EAAqB5rQ,EAAY6T,aAAU,IAAW+3P,GAA8BA,EAAmB5uS,KAAKgjC,EAAa5kD,IAEvIu4D,iBAAkB3T,EAAY2T,iBAC9BnV,gBAAiBpjD,IACb,IAAIywT,EAAmBr0T,KAAKmzT,GACxBkB,IACI,cAAgBzwT,EAAEhC,MAAQ,YAAcgC,EAAEhC,MAC1C5B,KAAKqzT,GAAqBtrS,OAAOnkB,EAAEhC,KAAMgC,EAAE/B,YAK3D+6E,EAAS/Y,YAAY,0BAA2ByvN,GAChD12M,EAAS/Y,YAAY+uP,GAA+B7mQ,IAAoBvD,EAAYsU,gBAEjF8f,GAEX,YAAYh5E,GACR5D,KAAKC,SAASnB,MAAMkB,KAAME,WACtB0D,GAAK,WAAaA,EAAEotE,YAAcptE,EAAE0kD,oBAAsB,OAAcn6B,sBAAsBnuB,OAC9F,eAAY,KACRA,KAAKs0T,qBAIjB,kBACI,IAAIlpS,EAASprB,KAAKonB,gBAAgBw/E,oBAClC,CAAC5mG,KAAKu0T,UAAWv0T,KAAKw0T,gBAAgBtzT,QAAQuzT,IAC1C,OAASA,QAAY,IAAWA,GAAoBA,EAAS1sS,OAAO,SAAUqD,GAC9E,OAASqpS,QAAY,IAAWA,GAAoBA,EAASjhP,YAGrExQ,YAAa,WACThjE,KAAKC,SAASnB,MAAMkB,KAAME,WAC1BF,KAAKs0T,mBAETI,yBAA0B,SAAS1jT,GAC/B,IAAI2jT,EAAc30T,KAAK+nB,SACnBuF,EAAUttB,KAAKynE,aACfuK,EAAc,eAAEhyE,KAAK22E,cAAc3lE,EAAQ64D,WAC/C,MAAO,CACHtgD,WAAY,CAAC,CACTz6B,GAAI,EACJ66I,SAAU,IAEd5gF,aAAa,EACbC,mBAAmB,EACnBN,UAAW,CACP0U,WAAW,EACXD,cAAe,SAEnBhV,MAAO,CACHwB,SAAS,GAEbq1C,eAAgB,KAChB17C,aAAcqxQ,EAAYrxQ,aAC1BF,gBAAiBuxQ,EAAYvxQ,gBAC7B6F,gBAAiB0rQ,EAAY1rQ,gBAC7B37B,QAASA,EAAQxxB,IAAIgV,IAAU,CAC3BvJ,MAAOuJ,EAAOvJ,OAASuJ,EAAO+6D,aAC9Bj+C,MAAO9c,EAAO8c,MACd++B,cAAe77C,EAAO67C,iBAE1BlF,cAAe7jD,IACX,IAAIsoB,EAAWtoB,EAAEmJ,UAAUof,QAAQ,YACnC,eAAEvoB,EAAEmmE,YAAYsI,YAAYL,EAAYxmD,GAAGU,EAASkkN,uBAAyB,EAAI,GAAGrtM,YAIhG+wR,+BAAgC,SAASD,GACrC,IAAI3nN,EAAa,OAAS2nN,QAAgB,IAAWA,OAAe,EAASA,EAAazmN,gBAC1F,OAASlB,QAAc,IAAWA,GAAsBA,EAAWr7B,SAAS,CACxEzjE,EAAGpN,KAAK4wE,eAGhBmjP,yBAA0B,WACtB,OAAO/iT,IACH,IAAIk6F,EAAelrG,KAAK+M,UAAUiZ,WAC9B4uS,EAAqB,eAAE,SAC3B,eAASA,EAAoB,eAAS1pN,IACtC,IAAIxiF,EAAQ1oB,KAAKonB,gBAAgBsB,QAC7B7X,EAAM6X,GAASA,EAAM1X,EAAQg/E,WAC7B2kO,EAAc30T,KAAK00T,yBAAyB7jT,GAGhD,OAFA7Q,KAAKooB,iBAAiBwsS,EAAoB50T,KAAK+M,UAAU80D,KAAM8yP,GAC/DC,EAAmB3tS,KAAK,0BAA0BogD,SAAS,SAASx1D,OAAO7R,KAAK+mB,gBAAgB,IAAY,MAAMyjC,OAC3GoqQ,IAGf3B,mBAAoB,WAChB,MAAO,CAAC9qS,EAAWnX,KACf,GAAI,SAAWA,EAAQG,QAEnB,OADA,eAAEgX,GAAWb,SAAS,IACf,eAAE,UAAUA,SAAStnB,KAAK+mB,gBAAgB4rS,KAEjD,OAAc9tS,aAAa,eAAEsD,MAIzCq4C,cAAe,SAAS3hB,GAChB,gBAAkBA,EAAKj9C,OACvB5B,KAAK8yT,sBACL9yT,KAAK4iE,aAAY,GAAM,GACvB/jB,EAAK6hB,SAAU,GAEnB1gE,KAAKC,SAASnB,MAAMkB,KAAME,aAGvB20T,GAAoB,CAC3Bl3T,eAAgB,WACZ,MAAO,CACH6qD,YAAa,CACTsU,eAAe,EACfX,iBAAkB,WAClBpQ,iBAAiB,EACjB+P,qBAAqB,KAIjCmJ,UAAW,CACPF,MAAO,CACH74C,SAAU2mS,MC9NtB,EAASptP,eAAe,cAAeovP,ICHxB,UCAA,iB,kCCTf,8GAkBIC,EAA0B,sBAC9B,MAAMC,EACF,YAAYhoT,EAAWstE,EAAgBv1D,EAAY9T,GAC/ChR,KAAKg1T,gBAAkB36O,EACvBr6E,KAAK2tM,YAAc7oL,EACnB9kB,KAAK6nB,WAAa9a,EAAUqb,iBAAiB,eAAE,SAASd,SAASwtS,GAAyBvtS,SAASvnB,KAAK2tM,aAAc,OAAW3tM,KAAK2tE,WAAW38D,IAErJ,oBACI,MAAO,CACHkiD,UAAW,KACXjrC,SAAS,EACTvW,OAAQ,GACRnK,MAAO,IACP4gB,UAAWnoB,KAAK2tM,aAGxB,WAAW38L,GAMP,OALI,eAAUA,EAAQzU,MAClByU,EAAQkX,QAAUlX,EAAQzU,KAE1ByU,EAAQkX,QAAU,OAAoB7uB,OAAO,wBAE1C,oBAAO2G,KAAK+kK,oBAAqB/zJ,GAE5C,OACIhR,KAAK6nB,WAAWE,OAAO,WAAY,OAAUorF,2BAA2BnzG,KAAKg1T,kBAC7Eh1T,KAAK6nB,WAAW4iC,OAEpB,UACI,eAAEzqD,KAAK6nB,WAAWhB,WAAWiB,gBACtB9nB,KAAK6nB,c,4JCpBhBq+Q,G,UAAmB,MACnBC,EAA0B,CAC1BC,UAAW,yBACXC,SAAU,0BACVC,SAAU,2BACVC,UAAW,4BACXhlQ,QAAS,QACTilQ,QAAS,OACTC,WAAY,WACZC,YAAa,WACbzuO,SAAU,KAEV0uO,EAAgB,MAChBC,EAAa,KACbC,EAAY,OACZC,EAA0B,KAC1BC,EAAc,KACdC,EAAa,KAEjB,SAASE,EAAgB7tS,EAAQ6+D,GAC7B,IAAIj5D,EACAxD,EACJ,GAAIy8D,EAAY,EAAG,CAEf,IADAj5D,EAAS,YAAc5F,EAAS,IAAM,GACjCoC,EAAI,EAAGA,EAAIy8D,EAAWz8D,IACvBwD,GAAU,IAEd,OAAOA,EAEX,MAAO,GAGX,SAASkoS,EAAiB5qS,GAEtB,IADA,IAAIo0B,EACKl1B,EAAI,EAAGA,EAAIc,EAAK3C,OAAQ6B,IAE7B,GADAk1B,EAAOp0B,EAAKq0B,WAAWn1B,GACnBk1B,GAAQu1Q,GAAoBv1Q,EAAOu1Q,EAAmB,GACtD,OAAO,EAGf,OAAO,EAGX,SAASmB,EAAmBhuS,GACxB,IAAI06F,GAAkBz6F,EAAA,KAAiBD,OAAO,IAAIU,KAAK,KAAM,EAAG,EAAG,EAAG,EAAG,GAAIV,IAAW,IAAIooB,WACxFxiB,EAAS,eAAU4C,GAASvI,EAAA,KAAiBD,OAAOwI,EAAOxI,IAK/D,OAJI4F,IACAA,EAASmoS,EAA4BnoS,GACrCA,EAASqoS,EAAiBvzM,GAAkB90F,GAEzCA,EAGX,SAASqoS,EAAiBl2Q,GACtB,IAAIm2Q,EAAa,iBACbC,EAAgBD,EAAaA,EAAW9lR,SAAS,IAAM,GACvDgmR,EAAe,GACnB,GAAIN,EAAiB/1Q,GAAiB,CAClC,MAAOo2Q,EAAc5tS,OAAS,EAC1B4tS,EAAgB,IAAMA,EAE1BC,EAAe,UAAYD,EAAgB,SACpCA,IACPC,EAAe,MAAQD,EAAgB,KAE3C,OAAOC,EAGX,SAASL,EAA4B/tS,GACjC,OAAOA,EAAOwC,MAAM,KAAKG,KAAK,OAAOH,MAAM,KAAKC,KAAI,SAAUuF,EAAUD,GACpE,OAAIA,EAAQ,IAAM,EACPC,EAASlG,QAAQwrS,EAAe,SAASxrS,QAAQ0rS,EAAW,KAAK1rS,QAAQyrS,EAAY,KAAKzrS,QAAQ2rS,EAAyB,KAAK3rS,QAAQ4rS,EAAa,KAAKlrS,MAAM,KAAKG,KAAK,OAAOH,MAAM,KAAKG,KAAK,OAExMqF,EACOA,EAASlG,QAAQ6rS,EAAY,QAEjC,OACPhrS,KAAK,IAGb,SAAS0rS,EAAqBruS,EAAQ6+D,EAAWD,GAC7C,IAAIh5D,EACA0oS,EASJ,OAPIA,EADA,aAAetuS,EACDgC,EAAA,KAAgBusS,yBAAyB3vO,GAEzCkuO,EAAwB9sS,EAAOyE,eAE7C6pS,IACA1oS,EAAS,OAAAiqC,EAAA,MAAay+P,EAAaT,EAAgB7tS,EAAQ6+D,KAExDj5D,EAEJ,IAAIg2T,EAAe,CACtB,sBAAsB57T,EAAQ+qB,GAC1B,IAAInlB,EAAS,CACT5F,OAAQA,EACR6+D,UAAW7+D,GAAUA,EAAO6+D,UAC5B9zC,SAAUA,GAEd,OAAI,eAAS/qB,GACF,OAAAoB,EAAA,WAAOwE,EAAQ5F,EAAQ,CAC1BA,OAAQA,EAAOwG,WAAaxG,EAAOoF,KACnCw5D,SAAU5+D,EAAO4+D,WAGlBh5D,GAEX,cAAc5F,EAAQ6+D,EAAWz5D,EAAMw5D,GACnC,GAAI,eAAU5+D,GAAS,CACnB,GAAI,SAAWoF,EACX,OAAO4oS,EAAmBhuS,GACvB,GAAI,eAASA,IAAW8sS,EAAwB9sS,EAAOyE,eAC1D,OAAO4pS,EAAqBruS,EAAQ6+D,EAAWD,M,YCpI/D,MAAM,EACF,YAAYu2O,EAAc0mB,EAASC,EAAqBC,GACpDp1T,KAAKq1T,YAAc,GACnBr1T,KAAKs1T,aAAe,GACpBt1T,KAAKwuS,aAAeA,EACpBxuS,KAAKk1T,QAAUA,EACfl1T,KAAKm1T,oBAAsBA,EAC3Bn1T,KAAKo1T,uBAAyBA,EAElC,mBAAmBlkT,EAAW24D,EAAU8I,GACpC,GAAI3yE,KAAKk1T,QAAQK,cAAcv1T,KAAKwuS,aAAc3kO,EAAU8I,KACnD3yE,KAAKw1T,qBAAqB3rP,EAAU8I,GAAY,CACjD,IACIkL,QAASA,EACTjS,QAASA,GACT5rE,KAAKwuS,aAAa6E,eAAexpO,EAAU8I,GAC3C8iP,EAA4B7pP,GAAWiS,EAC3C,GAAI43O,EAA2B,CAC3B,IAAIC,EAAoB11T,KAAKk1T,QAAQS,mBAAmB31T,KAAKwuS,aAAc3kO,EAAU8I,EAAWkL,EAASjS,EAAS5rE,KAAKm1T,oBAAqBn1T,KAAKo1T,wBACjJp1T,KAAK41T,kBAAkB1kT,EAAW24D,EAAU8I,EAAWkL,EAASjS,EAAS8pP,GACrEA,GACA11T,KAAKs1T,aAAaryT,KAAK,eAAS,CAC5B4yT,WAAY3kT,GACb,CACC2sE,QAASA,EACTjS,QAASA,OAOjC,qBAAqB/B,EAAU8I,GAC3B,OAAO3yE,KAAKq1T,YAAYxrP,IAAa7pE,KAAKq1T,YAAYxrP,GAAU8I,GAEpE,mBAAmB9I,EAAU8I,GACzB,GAAI3yE,KAAKk1T,QAAQK,cAAcv1T,KAAKwuS,aAAc3kO,EAAU8I,IACpD3yE,KAAKw1T,qBAAqB3rP,EAAU8I,GACpC,OAAO3yE,KAAKq1T,YAAYxrP,GAAU8I,GAI9C,kBAAkBzhE,EAAW24D,EAAU8I,EAAWkL,EAASjS,EAAS8pP,GAChE,IAAK,IAAIj6T,EAAIouE,EAAUpuE,GAAKouE,EAAWgU,EAASpiF,IAC5C,IAAK,IAAIgM,EAAIkrE,EAAWlrE,GAAKkrE,EAAY/G,EAASnkE,IACzCzH,KAAKq1T,YAAY55T,KAClBuE,KAAKq1T,YAAY55T,GAAK,IAE1BuE,KAAKq1T,YAAY55T,GAAGgM,GAAK,CACrBouT,WAAY3kT,EACZ4kT,UAAWJ,GAK3B,iBAAiBnlT,GACbvQ,KAAKs1T,aAAap0T,QAAQ60T,IACtB,IAAIC,EAAgBD,EAAMF,WAAWI,YAAYplT,IAC7Csa,EAAmB4qS,EAAMF,WAAWI,YAAY5nP,IAChD6nP,EAAcF,EAAgBD,EAAMl4O,QACpC6lJ,EAAiBv4M,EAAmB4qS,EAAMnqP,QAC9Cr7D,EAAUoB,WAAWqkT,EAAe7qS,EAAkB+qS,EAAaxyF,M,4BCxC3EopE,EAA4B,EAC5BqpB,EAAyB,IAClBC,EAAS,CAChB,eAAeplT,GACX,IAAIqlT,EAAc,OAAA57T,EAAA,WAAO,GAAIuW,GAC7B,IAAM,eAAUqlT,EAAY9lT,aAAc,eAAS8lT,EAAY9lT,WAC3D,MAAMmrB,MAAM,iDAEhB,GAAK,eAAU26R,EAAYzlT,cAKpB,GAAI,eAASylT,EAAYzlT,aAAc,CAC1C,IACIC,IAAKA,EACLw9D,IAAKA,GACLgoP,EAAY9lT,UAAUqB,QAAQykT,EAAYzlT,aAC9CylT,EAAYzlT,YAAc,CACtBC,IAAKA,EACLC,OAAQu9D,SAXZgoP,EAAYzlT,YAAc,CACtBC,IAAK,EACLC,OAAQ,GAqBhB,OATK,eAAUulT,EAAYC,oBACvBD,EAAYC,kBAAmB,GAE9B,eAAUD,EAAYhxQ,aACvBgxQ,EAAYhxQ,UAAY,IAEvB,eAAUgxQ,EAAYhxQ,UAAUr9B,WACjCquS,EAAYhxQ,UAAUr9B,SAAU,GAE7BquS,GAEXE,sBAAuBj9T,GAAQ,IAAIS,KAAKA,KAAKC,IAAIV,EAAKG,cAAeH,EAAKW,WAAYX,EAAKY,UAAWZ,EAAKa,WAAYb,EAAKc,aAAcd,EAAKe,aAAcf,EAAKgB,oBAClK,gBAAgB4W,EAAWi5R,GACvBj5R,EAAUslT,OAASrsB,GAEvB,cAAcqE,GACV,IAAIxY,EAASwY,EAAagC,YAQ1B,OAPAxa,EAAO90R,QAAQopE,IACX,IAAI6/N,EAAenqS,KAAKy2T,8BAA8BnsP,EAAMjxE,OAAQixE,EAAMlmD,UACtE,eAAU+lR,KACVA,EAAeA,EAAahvS,QAAQ,UAAW,MAEnDmvE,EAAM6/N,aAAeA,IAElBnU,GAEX,8BAA8B38R,EAAQ+qB,GAClC,IAAI2pR,EAAYknB,EAAayB,sBAAsBr9T,EAAQ+qB,GACvD6zC,EAAW81O,EAAU91O,SAGzB,OAFA5+D,EAAS00S,EAAU10S,OACnB+qB,EAAW2pR,EAAU3pR,SACd6wS,EAAaptB,cAAcxuS,EAAQ00S,EAAU71O,UAAW9zC,EAAU6zC,IAE7E,aAAa/mD,EAAWo3R,EAAUvmF,GAC9B7wM,EAAU/J,UAAY+J,EAAU/J,WAAa,GACzC,eAAUmhS,KACVp3R,EAAU/J,UAAUmhS,SAAWA,GAE/B,eAAUvmF,KACV7wM,EAAU/J,UAAU6K,WAAa+vM,GAErC7wM,EAAU/J,UAAUkhS,SAAW,OAEnC,gBAAgB93R,EAAWqjE,EAAQzoD,GAC/B,GAAK,eAAUyoD,GAGf,IAAK,IAAIn4E,EAAI,EAAGA,EAAIm4E,EAAOh6E,OAAQ6B,IAAK,CACpC,IAAIioD,EAAckwB,EAAOn4E,GACrB,kBAAoBioD,GAAe4wF,SAAS5wF,KAC5CnzC,EAAUomT,UAAUxrS,EAAmB1vB,GAAG8L,MAAQoa,KAAKC,IAAIu0S,EAAwBx0S,KAAKI,MAAM2hC,EAAcopP,EAA4B,KAAO,QAI3J,OAAQ97R,EAASkkT,GACb,IAAI0B,EAkBAC,GAhBA9lT,cAAeA,EACfhE,UAAWA,EACXwD,UAAWA,EACXK,YAAaA,EACbF,kBAAmBA,EACnB4lT,iBAAkBA,EAClBvV,iBAAkBA,EAClB17P,UAAWA,EACX8vQ,oBAAqBA,EACrBC,uBAAwBA,GACxBpkT,EACA8lT,GAAqB,QAAUF,EAAwB7pT,EAAUgqT,4BAAyB,IAAWH,OAAwB,EAASA,EAAsBpxS,KAAKzY,KAAeA,EAChLiqT,EAAgCF,EAAkB/uS,OAAO,cAAgB+uS,EAAkB/uS,OAAO,aAAaC,QAKnH,GAJIgvS,GACAjqT,EAAUgb,OAAO,qBAAqB,GAGtCs9B,EAAUr9B,SAAW,iBAAa,CAClC,IAAIqyD,EAAiB66O,EAAQ+B,2BAA2BlqT,GACpD+X,EAAaowS,EAAQgC,uBAAuBnqT,GAChD8pT,EAAkB,IAAI,OAAgB9pT,EAAWstE,EAAgBv1D,EAAYugC,GAC7EwxQ,EAAgBpsQ,OAEpB,IAAI69O,IAAav7R,EAAUgb,OAAO,mBAClCxX,EAAU60O,WAAW+xE,kBAAoB,CACrCC,cAAc,EACdC,cAAc,GAElB,IAAI9lT,EAAY,CACZwzB,KAAM,CACFl0B,IAAKD,EAAYC,IACjBC,OAAQF,EAAYE,QAExBpY,GAAI,CACAmY,IAAKD,EAAYC,IACjBC,OAAQF,EAAYE,SAGxB09R,EAAezhS,EAAU2+S,gBAAgB3K,GAC7C,OAAO,IAAIlkR,QAAQrN,IACfg/Q,EAAasF,QAAQ3mR,KAAK,KACtB,IAAIG,EAAUkhR,EAAa/mO,aACvB6vP,EAAgB9oB,EAAaz3N,eAC7Bu/O,GACAt2T,KAAKu3T,gBAAgBhnT,EAAWi+R,EAAa6a,mBAAoB93S,EAAUwzB,KAAKj0B,QAIpF,IAFA,IAAI0mT,EAAsB,IAAI,EAAoBhpB,EAAc0mB,EAASC,EAAqBC,GAC1Fp/B,EAASh2R,KAAKy3T,cAAcjpB,GACvB3kO,EAAW,EAAGA,EAAWytP,EAAeztP,IAAY,CACzD,IAAIh5D,EAAMN,EAAUkB,OAAOF,EAAUwzB,KAAKl0B,IAAMg5D,GAChDqrP,EAAQwC,oBAAoBlpB,EAAc39R,EAAKg5D,GAC/C7pE,KAAK23T,UAAUnpB,EAAc0mB,EAASsC,EAAqB3tP,EAAUv8C,EAAQ1zB,OAAQiX,EAAKU,EAAUwzB,KAAKj0B,OAAQC,EAAeu3R,EAAUtS,GACtInsN,GAAY,GACZt4D,EAAU7Y,GAAGmY,MAGrB2mT,EAAoBI,iBAAiBrnT,GACrCgB,EAAU7Y,GAAGoY,QAAUwc,EAAQ1zB,OAAS,EAAI0zB,EAAQ1zB,OAAS,EAAI,EACjE,IAAIi+T,EAAwBtnT,EAAUw0D,MAAM,IAAM,GAC9Ch4D,EAAUgb,OAAO,gBACjB8vS,EAAsBC,aAAc,GAEpC5C,EAAQ6C,cAAcvpB,MACjB,IAAMhxS,OAAO84B,KAAKuhS,GAAuBv5T,QAAQ,UAClD,OAAA7D,EAAA,WAAOo9T,EAAuB3C,EAAQ8C,yBAAyBxpB,EAAcj9R,IAEjF2jT,EAAQ+C,kBAAkBzpB,EAAcj+R,EAAWgB,EAAWb,IAE9DlT,OAAO84B,KAAKuhS,GAAuBj+T,OAAS,IAC5C2W,EAAUw0D,MAAQ,CAAC8yP,IAEvBroS,EAAQje,KACTugF,OAAO,KACFklO,GACAjqT,EAAUgb,OAAO,oBAAqBivS,GAEtC3xQ,EAAUr9B,SAAW,kBACrB6uS,EAAgBp1P,eAKhC,UAAU+sO,EAAc0mB,EAASsC,EAAqB3tP,EAAUquP,EAAWrnT,EAAKsa,EAAkBpa,EAAeu3R,EAAUtS,GACvH,IAAK,IAAIrjN,EAAY,EAAGA,EAAYulP,EAAWvlP,IAAa,CACxD,IAAI28N,EAAWd,EAAaG,YAAY9kO,EAAU8I,GAAW,GACzDzhE,EAAYL,EAAIe,QAAQuZ,EAAmBwnD,GAC/C6kP,EAAoBW,mBAAmBjnT,EAAW24D,EAAU8I,GAC5D,IAAIylP,EAAWZ,EAAoBa,mBAAmBxuP,EAAU8I,GAChE,GAAI,eAAUylP,IAAalnT,IAAcknT,EAASvC,WAC9C3kT,EAAUo5D,MAAQ8tP,EAASvC,WAAWvrP,MACtCp5D,EAAUrP,MAAQu2T,EAASvC,WAAWh0T,WAOtC,GALI,eAAOytS,EAASztS,OAChBqP,EAAUrP,MAAQ7B,KAAKu2T,sBAAsBjnB,EAASztS,OAEtDqP,EAAUrP,MAAQytS,EAASztS,MAE3B,eAAUqP,EAAUrP,OAAQ,CAC5B,IACIioS,KAAMA,EACN3iS,UAAW46M,EACXooF,aAAcA,GACdnU,EAAOwY,EAAaiB,WAAW5lO,EAAU8I,IACzC,eAAUw3N,GACVnqS,KAAKs4T,gBAAgBpnT,EAAWi5R,GACzB,eAASj5R,EAAUrP,QAAU,UAAU+wB,KAAK1hB,EAAUrP,QAC7D7B,KAAKs4T,gBAAgBpnT,EAAW,KAEpCgkT,EAAQqD,YAAYrnT,EAAW44R,GAC/B9pS,KAAKw4T,aAAatnT,EAAWo3R,EAAUvmF,GAG3C,eAAWhxM,IACXA,EAAcmkT,EAAQuD,yBAAyBvnT,EAAWo+R,EAASZ,oB,YC/M/E,EAAU,CACV,kBAAkBF,EAAcj+R,EAAWgB,EAAWb,GAClD,GAAIA,IACK,eAAUH,EAAUmoT,aAAelqB,EAAaz3N,eAAiB,EAAG,CACrE,IAAI4hP,EAAY,CACZ5zR,KAAM,CACFl0B,IAAKU,EAAUwzB,KAAKl0B,IAAM29R,EAAa0D,oBAAsB,EAC7DphS,OAAQS,EAAUwzB,KAAKj0B,QAE3BpY,GAAI6Y,EAAU7Y,IAElB6X,EAAUmoT,WAAaC,IAInC,YAAYznT,EAAW44R,GACf,eAAUA,KACV54R,EAAUY,KAAOZ,EAAUY,MAAQ,GACnCZ,EAAUY,KAAKg4R,KAAOA,IAG9BkuB,yBAA0B,CAACxpB,EAAcj9R,KAAc,CACnDq+B,MAAO,SACPgpR,OAAQrnT,EAAUwzB,KAAKl0B,IAAM29R,EAAauD,gBAAgBzwR,EAAI,IAElE,oBAAoBktR,EAAc39R,EAAKg5D,GAC/BA,GAAY2kO,EAAa0D,sBACzBrhS,EAAIgoT,aAAerqB,EAAa4B,cAAcvmO,KAGtD,yBAAyB34D,EAAWD,GAChC,IAAID,EAAU,CACVE,UAAWA,EACXD,SAAUA,GAQd,OANAzT,OAAOC,eAAeuT,EAAS,OAAQ,CACnC,MAEI,OADAnN,EAAA,KAAOC,IAAI,QAAS,iCAAkC,OAAQ,OAAQ,qCAC/DoN,KAGRF,GAEX+mT,cAAevpB,GAAgBA,EAAa0D,oBAAsB,EAClEqjB,cAAe,CAAC/mB,EAAc3kO,IAAaA,EAAW2kO,EAAa0D,oBACnEyjB,mBAAoB,KAAM,EAC1BsB,2BAA4BlqT,GAAaA,EAAUof,QAAQ,YAAYtF,UACvEqwS,uBAAwBnqT,GAAaA,EAAUof,QAAQ,YAAYtF,UAAUqH,UAGjF,SAASzd,EAAeO,GACpB,OAAOolT,EAAOjyQ,OAAO20Q,EAAgB9nT,GAAU,GAGnD,SAAS8nT,EAAgB9nT,GACrB,IAAM,eAAUA,KAAY,eAASA,GACjC,MAAM0qB,MAAM,gEAEhB,IAAM,eAAU1qB,EAAQjE,aAAc,eAASiE,EAAQjE,YAAc,eAAiBiE,EAAQjE,UAAU80D,KACpG,MAAMnmC,MAAM,2DAQhB,OANK,eAAU1qB,EAAQ+vS,oBACnB/vS,EAAQ+vS,kBAAmB,GAE1B,eAAU/vS,EAAQN,qBACnBM,EAAQN,mBAAoB,GAEzB0lT,EAAO2C,eAAe/nT,G,gBClDV,OACN,OACQ,Q,kCCnCzB,oDAwBIgoT,EAAoB,CAAC,cAAe,SAAU,SAAU,OAAQ,MAAO,OAAQ,QAAS,UAAW,QACnGC,EAAiB,SAASA,EAAep3T,GACzC,OAAQA,GACJ,IAAK,cACD,OAAO,EACX,IAAK,SACD,OAAO,IAAMo3T,EAAe,eAChC,IAAK,SACD,OAAO,GAAKA,EAAe,UAC/B,IAAK,OACD,OAAO,GAAKA,EAAe,UAC/B,IAAK,MACD,OAAO,GAAKA,EAAe,QAC/B,IAAK,OACD,OAAO,EAAIA,EAAe,OAC9B,IAAK,QACD,OAAO,GAAKA,EAAe,OAC/B,IAAK,UACD,OAAO,EAAIA,EAAe,SAC9B,IAAK,OACD,OAAO,IAAMA,EAAe,OAChC,QACI,OAAO,IAGfC,EAAmB,SAAS1/J,EAAWC,EAAS0/J,GAChD,IAAIv3K,EAAQ6X,EAAQ11J,UAAYy1J,EAAUz1J,UACtCq1T,EAAmBH,EAAeE,IAAiB,EACvD,OAAOx3S,KAAKI,MAAM6/H,EAAQw3K,IAE1BC,EAAkB,SAASC,EAAMC,GACjC,IAAIhvS,EAAWsK,EAAoBykS,GACnC,OAAQ/uS,GACJ,IAAK,cACD,MAAO,SACX,IAAK,SACD,MAAO,SACX,IAAK,SACD,MAAO,OACX,IAAK,OACD,MAAO,MACX,IAAK,MACD,OAAOgvS,EAAY,OAAS,QAChC,IAAK,OACD,MAAO,QACX,IAAK,QACD,MAAO,UACX,IAAK,UACL,IAAK,OACD,MAAO,OACX,QACI,OAAO,IAGfC,EAAiC,SAAS33T,GAC1C,IAAIpG,EACAg+T,EACAjlS,EACAwkS,EAAoB,CAAC,cAAe,SAAU,SAAU,OAAQ,MAAO,QAAS,QAChF/5T,EAAS,GACb,IAAKxD,EAAIu9T,EAAkBp/T,OAAS,EAAG6B,GAAK,EAAGA,IAC3C+4B,EAAmBwkS,EAAkBv9T,GACrCg+T,EAAgB93S,KAAKI,MAAMlgB,EAAQo3T,EAAezkS,IAC9CilS,EAAgB,IAChBx6T,EAAOu1B,EAAmB,KAAOilS,EACjC53T,GAAS63T,EAA8BllS,EAAkBilS,IAGjE,OAAOx6T,GAEP06T,EAAqB,SAASplS,GAC9B,IAAI9xB,EAAe,EASnB,OARI,eAAS8xB,IACT,eAAKA,GAAc,SAAUz5B,EAAK+G,GAC9BY,GAAgBi3T,EAA8B5+T,EAAIynB,OAAO,EAAGznB,EAAIlB,OAAS,GAAIiI,MAGjF,eAAS0yB,KACT9xB,EAAei3T,EAA8BnlS,EAAc,IAExD9xB,GAGX,SAASi3T,EAA8BE,EAAUr4S,GAC7C,OAAO03S,EAAeW,GAAYr4S,EAGtC,SAASsT,EAAoBN,GACzB,IACI94B,EADAo+T,GAAe,EAEnB,OAAI,eAAStlS,GACFA,EAEP,eAASA,IACT,eAAKA,GAAc,SAAUz5B,EAAK+G,GAC9B,IAAKpG,EAAI,EAAGA,EAAIu9T,EAAkBp/T,OAAQ6B,IAClCoG,IAAU/G,IAAQk+T,EAAkBv9T,GAAK,KAAOX,IAAQk+T,EAAkBv9T,KAAOo+T,EAAcp+T,IAC/Fo+T,EAAcp+T,MAInBu9T,EAAkBa,IAEtB,GAEX,IAAIC,EAA0B,CAC1Bv3T,YAAa,cACbtF,OAAQ,WACRD,OAAQ,YACRD,KAAM,YACNN,IAAK,MACLq4B,KAAM,MACNj4B,MAAO,QACPyF,QAAS,UACT9I,KAAM,QAGV,SAAS46B,EAA4BG,GACjC,OAAOulS,EAAwBjlS,EAAoBN,KAAkB,GAEzE,IAAIwlS,EAAa,SAASl9T,GACtB,OAAO8kB,KAAKI,MAAMllB,EAAQ,IAE1Bm9T,EAAuB,SAASn9T,GAChC,OAAO,EAAIk9T,EAAWl9T,IAG1B,SAASo9T,EAA6B3gU,EAAMu8B,EAAcqkS,EAAgBviK,GACtEr+J,EAAO,IAAIS,KAAKT,EAAKyK,WACrB,IACIo2T,EACAt9T,EAFAu9T,EAAU,IAAIrgU,KAAKT,EAAKyK,WAGxBywB,EAAmBK,EAAoBgB,GAC3C,OAAQrB,GACJ,IAAK,SACDl7B,EAAO,IAAIS,KAAK,IAAM4nB,KAAKI,MAAMq4S,EAAQr2T,UAAY,MACrD,MACJ,IAAK,SACDzK,EAAO,IAAIS,KAAK,IAAM4nB,KAAKI,MAAMq4S,EAAQr2T,UAAY,MACrD,MACJ,IAAK,OACDzK,EAAO,IAAIS,KAAK,KAAO4nB,KAAKI,MAAMq4S,EAAQr2T,UAAY,OACtD,MACJ,IAAK,OACDzK,EAAK6nF,SAAS,GAClB,IAAK,QACD7nF,EAAKk8B,QAAQ,GACjB,IAAK,MACDl8B,EAAKi+B,SAAS,EAAG,EAAG,EAAG,GACvB,MACJ,IAAK,OACDj+B,EAAO+gU,EAAiB/gU,EAAMq+J,GAAkB,GAChDr+J,EAAKi+B,SAAS,EAAG,EAAG,EAAG,GACvB,MACJ,IAAK,UACD4iS,EAAoBH,EAAqB1gU,EAAKW,YAC9C4C,EAAQvD,EAAKW,WACbX,EAAKk8B,QAAQ,GACbl8B,EAAKi+B,SAAS,EAAG,EAAG,EAAG,GACnB16B,IAAUs9T,GACV7gU,EAAK6nF,SAASg5O,GAM1B,OAHID,GAAkB,SAAW1lS,GAAoB,WAAaA,GAAoB,WAAaA,GAC/F0hI,GAAekkK,EAAS9gU,GAErBA,EAGX,SAASghU,EAAShhU,GACd,OAAO2gU,EAA6B3gU,EAAM,OAE9C,IAAIihU,EAAc,SAASjhU,GACvB,IAAI2F,EAASq7T,EAAShhU,GAEtB,OADA2F,EAAOu2B,QAAQv2B,EAAO/E,UAAY,GAC3B,IAAIH,KAAKkF,EAAO8E,UAAY,IAEnCowB,EAAsB,SAASipI,EAAOC,GACtC,IAAIzhB,EAAU,EACVlnH,EAAc,CACdl7B,KAAM4jK,EAAM3jK,gBAAkB4jK,EAAM5jK,cACpCoD,MAAOugK,EAAMnjK,aAAeojK,EAAMpjK,WAClCwC,IAAK2gK,EAAMljK,YAAcmjK,EAAMnjK,UAC/B6C,KAAMqgK,EAAMjjK,aAAekjK,EAAMljK,WACjC6C,OAAQogK,EAAMhjK,eAAiBijK,EAAMjjK,aACrC6C,OAAQmgK,EAAM/iK,eAAiBgjK,EAAMhjK,aACrCkI,YAAa66J,EAAM9iK,oBAAsB+iK,EAAM/iK,mBAYnD,OAVA,eAAKo6B,GAAa,SAAU55B,EAAK+G,GACzBA,GACA+5I,OAGJ,IAAMA,GAAW,IAAM4+K,GAAuBp9J,EAAOC,KACrD3oI,EAAY33B,MAAO,EACnB6+I,KAEJlnH,EAAYnT,MAAQq6H,EACblnH,GAGX,SAAS+lS,EAAgB54T,EAAO0oB,EAAUoT,GACtC,IAAI1+B,EAAS,IAAIlF,KAAK8H,EAAMkC,WACxB22T,EAAiB,eAASnwS,GAAYowS,EAAwBpwS,EAASzsB,eAAiB,eAAUysB,GAAYivS,EAA+BjvS,GAAYA,EA4B7J,OA3BImwS,EAAeE,OACf37T,EAAO1E,YAAY0E,EAAOxF,cAAgBihU,EAAeE,MAAQj9R,GAEjE+8R,EAAeG,UACf57T,EAAOkiF,SAASliF,EAAOhF,WAAa,EAAIygU,EAAeG,SAAWl9R,GAElE+8R,EAAeI,QACf77T,EAAOkiF,SAASliF,EAAOhF,WAAaygU,EAAeI,OAASn9R,GAE5D+8R,EAAeK,OACf97T,EAAOu2B,QAAQv2B,EAAO/E,UAAY,EAAIwgU,EAAeK,MAAQp9R,GAE7D+8R,EAAetsB,MACfnvS,EAAOu2B,QAAQv2B,EAAO/E,UAAYwgU,EAAetsB,KAAOzwQ,GAExD+8R,EAAen7T,OACfN,EAAO+7T,QAAQ/7T,EAAO8E,UAAY,KAAO22T,EAAen7T,MAAQo+B,GAEhE+8R,EAAe35T,SACf9B,EAAO+7T,QAAQ/7T,EAAO8E,UAAY,IAAM22T,EAAe35T,QAAU48B,GAEjE+8R,EAAe15T,SACf/B,EAAO+7T,QAAQ/7T,EAAO8E,UAAY,IAAM22T,EAAe15T,QAAU28B,GAEjE+8R,EAAej4T,cACfxD,EAAO+7T,QAAQ/7T,EAAO8E,UAAY22T,EAAej4T,aAAek7B,GAE7D1+B,EAEX,IAAIg8T,EAAc,SAASp5T,EAAO0oB,EAAU2wS,GACxC,IAAIv9R,EAAMu9R,GAAc,EAAI,EAC5B,OAAO,eAAOr5T,GAAS44T,EAAgB54T,EAAO0oB,EAAUoT,GAAO,eAAO97B,EAAQ0oB,EAAWoT,EAAKpT,IAE9F4wS,EAAwB,SAASv5S,EAAKoQ,EAAKzH,GAC3C,IACI6wS,EADAC,EAAY,GAEhBA,EAAUp4T,KAAK,eAAO2e,GAAO,IAAI7nB,KAAK6nB,EAAI7d,WAAa6d,GACvDw5S,EAAMx5S,EACN,MAAOw5S,EAAMppS,EACTopS,EAAMH,EAAYG,EAAK7wS,GACvB8wS,EAAUp4T,KAAKm4T,GAEnB,OAAOC,GAEPj/J,EAAuB,SAASk/J,EAAUhiU,GAC1C,MAAI,UAAYgiU,EACLhiK,GAAuBhgK,EAAKG,cAAeH,EAAKW,WAAY,GAEnE,SAAWqhU,EACJhiK,GAAuBhgK,EAAKG,cAAe,EAAGH,EAAKY,WAE1D,WAAaohU,EACNhiK,GAAuBD,EAAqB//J,GAAOA,EAAKW,WAAYX,EAAKY,WAEhF,YAAcohU,EACPhiK,GAAuBS,EAAwBzgK,GAAOA,EAAKW,WAAYX,EAAKY,gBADvF,GAIAoiK,EAAsB,SAASg/J,EAAUhiU,GACzC,MAAI,UAAYgiU,EACLhiK,GAAuBhgK,EAAKG,cAAeH,EAAKW,WAAYshU,EAAgBjiU,IAEnF,SAAWgiU,EACJhiK,GAAuBhgK,EAAKG,cAAe,GAAIH,EAAKY,WAE3D,WAAaohU,EACNhiK,GAAuBD,EAAqB//J,GAAQ,EAAGA,EAAKW,WAAYX,EAAKY,WAEpF,YAAcohU,EACPhiK,GAAuBS,EAAwBzgK,GAAQ,GAAIA,EAAKW,WAAYX,EAAKY,gBAD5F,GAIAwmK,EAAyB,SAAS46J,EAAUhiU,GAC5C,IAAIkiU,EAAaliK,GAAuBhgK,EAAKG,cAAeH,EAAKW,WAAY,GAC7E,MAAI,UAAYqhU,EACLE,GAEXA,EAAWr6O,SAAS,GAChB,SAAWm6O,IAGX,WAAaA,GACbE,EAAWjhU,YAAY8+J,EAAqB//J,IAE5C,YAAcgiU,GACdE,EAAWjhU,YAAYw/J,EAAwBzgK,KANxCkiU,IAUX76J,EAAyB,SAAS26J,EAAUhiU,GAC5C,IAAIkiU,EAAa,IAAIzhU,KAAKT,GAE1B,OADAkiU,EAAWhmS,QAAQ+lS,EAAgBjiU,IAC/B,UAAYgiU,EACLE,GAEXA,EAAWr6O,SAAS,IACpBq6O,EAAWhmS,QAAQ+lS,EAAgBC,IAC/B,SAAWF,IAGX,WAAaA,GACbE,EAAWjhU,YAAY8+J,EAAqB//J,GAAQ,GAEpD,YAAcgiU,GACdE,EAAWjhU,YAAYw/J,EAAwBzgK,GAAQ,KANhDkiU,IAWf,SAASD,EAAgBjiU,GACrB,IAAIkiU,EAAaliK,GAAuBhgK,EAAKG,cAAeH,EAAKW,WAAa,EAAG,GACjF,OAAOuhU,EAAWthU,UAEtB,IAAIunK,EAAY,SAASg6J,GACrB,OAAQA,GACJ,IAAK,QACD,MAAO,OACX,IAAK,OACD,MAAO,SACX,IAAK,SACD,MAAO,YAGfz6J,EAAc,SAASy6J,GACvB,OAAQA,GACJ,IAAK,UACD,MAAO,SACX,IAAK,SACD,MAAO,OACX,IAAK,OACD,MAAO,UAGfj8J,EAAuB,SAASi8J,GAChC,IAAIjuP,EAAa,EAUjB,MATI,SAAWiuP,IACXjuP,EAAa,IAEb,WAAaiuP,IACbjuP,EAAa,KAEb,YAAciuP,IACdjuP,EAAa,MAEVA,GAEPkuP,EAA+B,SAASD,GACxC,IAAIjuP,EAAa,EAOjB,MANI,WAAaiuP,IACbjuP,EAAa,IAEb,YAAciuP,IACdjuP,EAAa,KAEVA,GAGX,SAASmtP,EAAwBgB,GAC7B,IAAI18T,EAAS,GACb,OAAQ08T,GACJ,IAAK,OACD18T,EAAO27T,MAAQ,EACf,MACJ,IAAK,QACD37T,EAAO67T,OAAS,EAChB,MACJ,IAAK,UACD77T,EAAO67T,OAAS,EAChB,MACJ,IAAK,OACD77T,EAAO87T,MAAQ,EACf,MACJ,IAAK,MACD97T,EAAOmvS,KAAO,EACd,MACJ,IAAK,OACDnvS,EAAOM,MAAQ,EACf,MACJ,IAAK,SACDN,EAAO8B,QAAU,EACjB,MACJ,IAAK,SACD9B,EAAO+B,QAAU,EACjB,MACJ,IAAK,cACD/B,EAAOwD,aAAe,EAE9B,OAAOxD,EAGX,SAASw5J,EAAS2E,EAAOC,GACrB,OAAOvE,EAAiBsE,EAAOC,IAAUD,EAAMljK,YAAcmjK,EAAMnjK,UAGvE,SAAS4+J,EAAiBsE,EAAOC,GAC7B,OAAOnE,EAASkE,EAAOC,IAAUD,EAAMnjK,aAAeojK,EAAMpjK,WAGhE,SAASi/J,EAASkE,EAAOC,GACrB,OAAOD,GAASC,GAASD,EAAM3jK,gBAAkB4jK,EAAM5jK,cAG3D,SAAS6tK,EAAoBlK,EAAOC,GAChC,OAAOD,GAASC,GAASD,EAAMjjK,aAAekjK,EAAMljK,YAAcijK,EAAMhjK,eAAiBijK,EAAMjjK,aAEnG,IAAIg/J,EAAa,SAASgE,EAAOC,GAC7B,GAAK,eAAUD,IAAW,eAAUC,GAApC,CAGA,IAAIu+J,EAAmBx+J,EAAM3jK,cAAgB2jK,EAAM3jK,cAAgB,GAC/DoiU,EAAmBx+J,EAAM5jK,cAAgB4jK,EAAM5jK,cAAgB,GACnE,OAAO2jK,GAASC,GAASu+J,IAAqBC,IAE9C/hK,EAAc,SAASsD,EAAOC,GAC9B,GAAK,eAAUD,IAAW,eAAUC,GAApC,CAGA,IAAIy+J,EAAoB1+J,EAAM3jK,cAAgB2jK,EAAM3jK,cAAgB,IAChEsiU,EAAoB1+J,EAAM5jK,cAAgB4jK,EAAM5jK,cAAgB,IACpE,OAAO2jK,GAASC,GAASy+J,IAAsBC,IAGnD,SAAShiK,EAAwBzgK,GAC7B,OAAOA,GAAQA,EAAKG,cAAgBH,EAAKG,cAAgB,IAG7D,SAAS4/J,EAAqB//J,GAC1B,OAAOA,GAAQA,EAAKG,cAAgBH,EAAKG,cAAgB,GAE7D,IAAIu8J,EAAqB,WACrB,MAAO,cAEP4C,EAAoB,SAASt/J,GAC7B,GAAK,eAAUA,GAGf,OAAOggK,GAAuBhgK,EAAKG,cAAeH,EAAKW,WAAY,IAEnE++J,EAAmB,SAAS1/J,GAC5B,GAAK,eAAUA,GAGf,OAAOggK,GAAuBhgK,EAAKG,cAAeH,EAAKW,WAAa,EAAG,IAG3E,SAASogU,EAAiB/gU,EAAMq+J,GAC5B,IAAI/V,GAAStoJ,EAAKs1J,SAAW+I,EAAiB,GAAK,EAC/C14J,EAAS,IAAIlF,KAAKT,GAEtB,OADA2F,EAAOu2B,QAAQl8B,EAAKY,UAAY0nJ,GACzB3iJ,EAEX,IAAI+8T,EAAsB,SAAS1iU,EAAM2H,GACrC,IAAIg7T,EAAmB9rK,GAAU+oK,iBAAiB5/T,EAAM2H,EAAa,OACjEu6T,EAAa,IAAIzhU,KAAKT,GAI1B,OAHI2iU,GAAoB,IACpBT,EAAa,IAAIzhU,KAAKyhU,EAAWhmS,QAAQgmS,EAAWthU,UAAY,KAE7DshU,GAEP9iK,EAAc,SAASp/J,EAAMsoB,EAAKoQ,EAAK34B,GAMvC,MALI,SAAWA,IACXuoB,EAAMA,GAAOuuI,GAAU8pK,6BAA6Br4S,EAAK,OACzDoQ,EAAMA,GAAOm+H,GAAU8pK,6BAA6BjoS,EAAK,OACzD14B,EAAOA,GAAQ62J,GAAU8pK,6BAA6B3gU,EAAM,QAEzD4kK,EAAc5kK,EAAMsoB,EAAKoQ,KAAS14B,GAEzC4iU,EAAmB,SAASlrT,GAC5B,IACImrT,SAAUA,EACVC,SAAUA,EACVC,UAAWA,EACXC,UAAWA,GACXtrT,EACJ,OAAOmrT,GAAYE,GAAaA,GAAaD,GAAYD,EAAWE,GAAaF,EAAWG,GAAaH,EAAWG,GAAaF,EAAWE,GAE5IC,EAAsB,SAASlhU,GAC/B,IAAIkE,EAAQoiB,KAAKI,MAAM1mB,GACnB0F,EAAU1F,EAAS,EAAI,GAC3B,MAAO,CACHkE,MAAOA,EACPwB,QAASA,IAGby7T,EAA0B,SAASljU,EAAMmjU,GACzC,IAAIC,EAAY18T,KAAKu8T,oBAAoBE,GACrCx9T,EAAS,IAAIlF,KAAKT,GAItB,OAHIA,EAAKa,aAAeuiU,EAAUn9T,OAASjG,EAAKc,aAAesiU,EAAU37T,SAAWzH,EAAKa,WAAauiU,EAAUn9T,QAC5GN,EAAOs4B,SAASmlS,EAAUn9T,MAAOm9T,EAAU37T,QAAS,EAAG,GAEpD9B,GAGX,SAASi/J,EAAc5kK,EAAMsoB,EAAKoQ,GAC9B,IAAIusI,EAAiBjlK,EACrB,OAAK,eAAUA,IAGX,eAAUsoB,IAAQtoB,EAAOsoB,IACzB28I,EAAiB38I,GAEjB,eAAUoQ,IAAQ14B,EAAO04B,IACzBusI,EAAiBvsI,GAEdusI,GARIjlK,EAWf,SAAS48J,GAAekkK,EAASl5O,GAC7B,GAAK,eAAUk5O,GAAf,CAGA,IAAIvnS,EAAOquD,EAAQ/mF,WAAaigU,EAAQjgU,WACxC,GAAI,IAAM04B,EAAV,CAGA,IAAI92B,EAAO,IAAM82B,IAAS,KAAOA,GAAQ,EAAI,EACzC8pS,EAAQ,IAAI5iU,KAAKmnF,EAAQn9E,UAAY,KAAOhI,IAC5CA,EAAO,GAAK4gU,EAAMziU,YAAcgnF,EAAQhnF,YACxCgnF,EAAQ85O,QAAQ2B,EAAM54T,aAG9B,IAAI64T,GAAc,SAAStjU,GACvB,IAAI2F,EAAS,IAAIlF,KAAKT,EAAKyK,WAG3B,OAFA9E,EAAOs4B,SAASt4B,EAAO9E,WAAa,GACpC8E,EAAOkiK,WAAW,GACXliK,GAGX,SAASu7T,GAAuB54S,EAAKoQ,GACjC,OAAO,IAAMA,EAAIvP,oBAAsBb,EAAIa,qBAAuB,IAEtE,IAAIo6S,GAAW,SAASvjU,GACpB,OAAO,IAAIS,KAAKT,IAEhBwjU,GAAqB,SAAStjK,EAAWC,EAASlZ,GAClD,IAAIthJ,EAAS,GACTgC,EAAc,IAAIlH,KAAKy/J,EAAUz1J,WACrC,MAAO9C,EAAcw4J,EACjBx6J,EAAOgE,KAAK,IAAIlJ,KAAKkH,EAAY8C,YACjC9C,EAAcjB,KAAKi7T,YAAYh6T,EAAas/I,GAEhD,OAAOthJ,GAEPq6J,GAAyB,SAAS9/J,GAClC,IAAIyF,EAAS,IAAIlF,QAAQmG,WAEzB,OADAjB,EAAO1E,YAAYf,GACZyF,GAEPkxJ,GAAY,CACZ6oK,kBAAmBA,EACnBQ,+BAAgCA,EAChCG,mBAAoBA,EACpBN,gBAAiBA,EACjBK,8BAA+BA,EAC/B7kS,oBAAqBA,EACrBT,4BAA6BA,EAC7BD,oBAAqBA,EACrB8lS,6BAA8BA,EAC9BK,SAAUA,EACVC,YAAaA,EACbiC,wBAAyBA,EACzBD,oBAAqBA,EACrB9B,gBAAiBA,EACjBQ,YAAaA,EACbE,sBAAuBA,EACvBR,wBAAyBA,EACzBrzJ,oBAAqBA,EACrB7O,SAAUA,EACVK,iBAAkBA,EAClBikK,UAAWjkK,EACXI,SAAUA,EACVE,WAAYA,EACZU,YAAaA,EACb0F,qBAAsBA,EACtBk8J,6BAA8BA,EAC9BriK,qBAAsBA,EACtBU,wBAAyBA,EACzB/D,mBAAoBA,EACpBoG,qBAAsBA,EACtBE,oBAAqBA,EACrB0E,YAAaA,EACbS,UAAWA,EACX85J,gBAAiBA,EACjBviK,iBAAkBA,EAClBJ,kBAAmBA,EACnByhK,iBAAkBA,EAClB2B,oBAAqBA,EACrBjC,WAAYA,EACZC,qBAAsBA,EACtBthK,YAAaA,EACbwjK,iBAAkBA,EAClBU,YAAaA,GACb1+J,cAAeA,EACfwC,uBAAwBA,EACxBC,uBAAwBA,EACxBzK,eAAgBA,GAChBskK,uBAAwBA,GACxBqC,SAAUA,GACV3D,iBAAkBA,EAClB4D,mBAAoBA,GACpBxjK,uBAAwBA,GAE5B,SAAqB,SAAS5wC,EAAM00C,EAAOC,GACvC,OAAOlN,GAAU,eAAS,QAAUznC,IAAO00C,EAAOC,KAEvC","file":"js/chunk-43e1accd.990d578e.js","sourcesContent":["/**\r\n * DevExtreme (esm/localization/language_codes.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport localizationCoreUtils from \"./core\";\r\nvar LANGUAGE_CODES = {\r\n ar: 1,\r\n bg: 2,\r\n ca: 3,\r\n \"zh-Hans\": 4,\r\n cs: 5,\r\n da: 6,\r\n de: 7,\r\n el: 8,\r\n en: 9,\r\n es: 10,\r\n fi: 11,\r\n fr: 12,\r\n he: 13,\r\n hu: 14,\r\n is: 15,\r\n it: 16,\r\n ja: 17,\r\n ko: 18,\r\n nl: 19,\r\n no: 20,\r\n pl: 21,\r\n pt: 22,\r\n rm: 23,\r\n ro: 24,\r\n ru: 25,\r\n hr: 26,\r\n sk: 27,\r\n sq: 28,\r\n sv: 29,\r\n th: 30,\r\n tr: 31,\r\n ur: 32,\r\n id: 33,\r\n uk: 34,\r\n be: 35,\r\n sl: 36,\r\n et: 37,\r\n lv: 38,\r\n lt: 39,\r\n tg: 40,\r\n fa: 41,\r\n vi: 42,\r\n hy: 43,\r\n az: 44,\r\n eu: 45,\r\n hsb: 46,\r\n mk: 47,\r\n tn: 50,\r\n xh: 52,\r\n zu: 53,\r\n af: 54,\r\n ka: 55,\r\n fo: 56,\r\n hi: 57,\r\n mt: 58,\r\n se: 59,\r\n ga: 60,\r\n ms: 62,\r\n kk: 63,\r\n ky: 64,\r\n sw: 65,\r\n tk: 66,\r\n uz: 67,\r\n tt: 68,\r\n bn: 69,\r\n pa: 70,\r\n gu: 71,\r\n or: 72,\r\n ta: 73,\r\n te: 74,\r\n kn: 75,\r\n ml: 76,\r\n as: 77,\r\n mr: 78,\r\n sa: 79,\r\n mn: 80,\r\n bo: 81,\r\n cy: 82,\r\n km: 83,\r\n lo: 84,\r\n gl: 86,\r\n kok: 87,\r\n syr: 90,\r\n si: 91,\r\n iu: 93,\r\n am: 94,\r\n tzm: 95,\r\n ne: 97,\r\n fy: 98,\r\n ps: 99,\r\n fil: 100,\r\n dv: 101,\r\n ha: 104,\r\n yo: 106,\r\n quz: 107,\r\n nso: 108,\r\n ba: 109,\r\n lb: 110,\r\n kl: 111,\r\n ig: 112,\r\n ii: 120,\r\n arn: 122,\r\n moh: 124,\r\n br: 126,\r\n ug: 128,\r\n mi: 129,\r\n oc: 130,\r\n co: 131,\r\n gsw: 132,\r\n sah: 133,\r\n qut: 134,\r\n rw: 135,\r\n wo: 136,\r\n prs: 140,\r\n gd: 145,\r\n \"ar-SA\": 1025,\r\n \"bg-BG\": 1026,\r\n \"ca-ES\": 1027,\r\n \"zh-TW\": 1028,\r\n \"cs-CZ\": 1029,\r\n \"da-DK\": 1030,\r\n \"de-DE\": 1031,\r\n \"el-GR\": 1032,\r\n \"en-US\": 1033,\r\n \"fi-FI\": 1035,\r\n \"fr-FR\": 1036,\r\n \"he-IL\": 1037,\r\n \"hu-HU\": 1038,\r\n \"is-IS\": 1039,\r\n \"it-IT\": 1040,\r\n \"ja-JP\": 1041,\r\n \"ko-KR\": 1042,\r\n \"nl-NL\": 1043,\r\n \"nb-NO\": 1044,\r\n \"pl-PL\": 1045,\r\n \"pt-BR\": 1046,\r\n \"rm-CH\": 1047,\r\n \"ro-RO\": 1048,\r\n \"ru-RU\": 1049,\r\n \"hr-HR\": 1050,\r\n \"sk-SK\": 1051,\r\n \"sq-AL\": 1052,\r\n \"sv-SE\": 1053,\r\n \"th-TH\": 1054,\r\n \"tr-TR\": 1055,\r\n \"ur-PK\": 1056,\r\n \"id-ID\": 1057,\r\n \"uk-UA\": 1058,\r\n \"be-BY\": 1059,\r\n \"sl-SI\": 1060,\r\n \"et-EE\": 1061,\r\n \"lv-LV\": 1062,\r\n \"lt-LT\": 1063,\r\n \"tg-Cyrl-TJ\": 1064,\r\n \"fa-IR\": 1065,\r\n \"vi-VN\": 1066,\r\n \"hy-AM\": 1067,\r\n \"az-Latn-AZ\": 1068,\r\n \"eu-ES\": 1069,\r\n \"hsb-DE\": 1070,\r\n \"mk-MK\": 1071,\r\n \"tn-ZA\": 1074,\r\n \"xh-ZA\": 1076,\r\n \"zu-ZA\": 1077,\r\n \"af-ZA\": 1078,\r\n \"ka-GE\": 1079,\r\n \"fo-FO\": 1080,\r\n \"hi-IN\": 1081,\r\n \"mt-MT\": 1082,\r\n \"se-NO\": 1083,\r\n \"ms-MY\": 1086,\r\n \"kk-KZ\": 1087,\r\n \"ky-KG\": 1088,\r\n \"sw-KE\": 1089,\r\n \"tk-TM\": 1090,\r\n \"uz-Latn-UZ\": 1091,\r\n \"tt-RU\": 1092,\r\n \"bn-IN\": 1093,\r\n \"pa-IN\": 1094,\r\n \"gu-IN\": 1095,\r\n \"or-IN\": 1096,\r\n \"ta-IN\": 1097,\r\n \"te-IN\": 1098,\r\n \"kn-IN\": 1099,\r\n \"ml-IN\": 1100,\r\n \"as-IN\": 1101,\r\n \"mr-IN\": 1102,\r\n \"sa-IN\": 1103,\r\n \"mn-MN\": 1104,\r\n \"bo-CN\": 1105,\r\n \"cy-GB\": 1106,\r\n \"km-KH\": 1107,\r\n \"lo-LA\": 1108,\r\n \"gl-ES\": 1110,\r\n \"kok-IN\": 1111,\r\n \"syr-SY\": 1114,\r\n \"si-LK\": 1115,\r\n \"iu-Cans-CA\": 1117,\r\n \"am-ET\": 1118,\r\n \"ne-NP\": 1121,\r\n \"fy-NL\": 1122,\r\n \"ps-AF\": 1123,\r\n \"fil-PH\": 1124,\r\n \"dv-MV\": 1125,\r\n \"ha-Latn-NG\": 1128,\r\n \"yo-NG\": 1130,\r\n \"quz-BO\": 1131,\r\n \"nso-ZA\": 1132,\r\n \"ba-RU\": 1133,\r\n \"lb-LU\": 1134,\r\n \"kl-GL\": 1135,\r\n \"ig-NG\": 1136,\r\n \"ii-CN\": 1144,\r\n \"arn-CL\": 1146,\r\n \"moh-CA\": 1148,\r\n \"br-FR\": 1150,\r\n \"ug-CN\": 1152,\r\n \"mi-NZ\": 1153,\r\n \"oc-FR\": 1154,\r\n \"co-FR\": 1155,\r\n \"gsw-FR\": 1156,\r\n \"sah-RU\": 1157,\r\n \"qut-GT\": 1158,\r\n \"rw-RW\": 1159,\r\n \"wo-SN\": 1160,\r\n \"prs-AF\": 1164,\r\n \"gd-GB\": 1169,\r\n \"ar-IQ\": 2049,\r\n \"zh-CN\": 2052,\r\n \"de-CH\": 2055,\r\n \"en-GB\": 2057,\r\n \"es-MX\": 2058,\r\n \"fr-BE\": 2060,\r\n \"it-CH\": 2064,\r\n \"nl-BE\": 2067,\r\n \"nn-NO\": 2068,\r\n \"pt-PT\": 2070,\r\n \"sr-Latn-CS\": 2074,\r\n \"sv-FI\": 2077,\r\n \"az-Cyrl-AZ\": 2092,\r\n \"dsb-DE\": 2094,\r\n \"se-SE\": 2107,\r\n \"ga-IE\": 2108,\r\n \"ms-BN\": 2110,\r\n \"uz-Cyrl-UZ\": 2115,\r\n \"bn-BD\": 2117,\r\n \"mn-Mong-CN\": 2128,\r\n \"iu-Latn-CA\": 2141,\r\n \"tzm-Latn-DZ\": 2143,\r\n \"quz-EC\": 2155,\r\n \"ar-EG\": 3073,\r\n \"zh-HK\": 3076,\r\n \"de-AT\": 3079,\r\n \"en-AU\": 3081,\r\n \"es-ES\": 3082,\r\n \"fr-CA\": 3084,\r\n \"sr-Cyrl-CS\": 3098,\r\n \"se-FI\": 3131,\r\n \"quz-PE\": 3179,\r\n \"ar-LY\": 4097,\r\n \"zh-SG\": 4100,\r\n \"de-LU\": 4103,\r\n \"en-CA\": 4105,\r\n \"es-GT\": 4106,\r\n \"fr-CH\": 4108,\r\n \"hr-BA\": 4122,\r\n \"smj-NO\": 4155,\r\n \"ar-DZ\": 5121,\r\n \"zh-MO\": 5124,\r\n \"de-LI\": 5127,\r\n \"en-NZ\": 5129,\r\n \"es-CR\": 5130,\r\n \"fr-LU\": 5132,\r\n \"bs-Latn-BA\": 5146,\r\n \"smj-SE\": 5179,\r\n \"ar-MA\": 6145,\r\n \"en-IE\": 6153,\r\n \"es-PA\": 6154,\r\n \"fr-MC\": 6156,\r\n \"sr-Latn-BA\": 6170,\r\n \"sma-NO\": 6203,\r\n \"ar-TN\": 7169,\r\n \"en-ZA\": 7177,\r\n \"es-DO\": 7178,\r\n \"sr-Cyrl-BA\": 7194,\r\n \"sma-SE\": 7227,\r\n \"ar-OM\": 8193,\r\n \"en-JM\": 8201,\r\n \"es-VE\": 8202,\r\n \"bs-Cyrl-BA\": 8218,\r\n \"sms-FI\": 8251,\r\n \"ar-YE\": 9217,\r\n \"en-029\": 9225,\r\n \"es-CO\": 9226,\r\n \"sr-Latn-RS\": 9242,\r\n \"smn-FI\": 9275,\r\n \"ar-SY\": 10241,\r\n \"en-BZ\": 10249,\r\n \"es-PE\": 10250,\r\n \"sr-Cyrl-RS\": 10266,\r\n \"ar-JO\": 11265,\r\n \"en-TT\": 11273,\r\n \"es-AR\": 11274,\r\n \"sr-Latn-ME\": 11290,\r\n \"ar-LB\": 12289,\r\n \"en-ZW\": 12297,\r\n \"es-EC\": 12298,\r\n \"sr-Cyrl-ME\": 12314,\r\n \"ar-KW\": 13313,\r\n \"en-PH\": 13321,\r\n \"es-CL\": 13322,\r\n \"ar-AE\": 14337,\r\n \"es-UY\": 14346,\r\n \"ar-BH\": 15361,\r\n \"es-PY\": 15370,\r\n \"ar-QA\": 16385,\r\n \"en-IN\": 16393,\r\n \"es-BO\": 16394,\r\n \"en-MY\": 17417,\r\n \"es-SV\": 17418,\r\n \"en-SG\": 18441,\r\n \"es-HN\": 18442,\r\n \"es-NI\": 19466,\r\n \"es-PR\": 20490,\r\n \"es-US\": 21514,\r\n \"bs-Cyrl\": 25626,\r\n \"bs-Latn\": 26650,\r\n \"sr-Cyrl\": 27674,\r\n \"sr-Latn\": 28698,\r\n smn: 28731,\r\n \"az-Cyrl\": 29740,\r\n sms: 29755,\r\n zh: 30724,\r\n nn: 30740,\r\n bs: 30746,\r\n \"az-Latn\": 30764,\r\n sma: 30779,\r\n \"uz-Cyrl\": 30787,\r\n \"mn-Cyrl\": 30800,\r\n \"iu-Cans\": 30813,\r\n \"zh-Hant\": 31748,\r\n nb: 31764,\r\n sr: 31770,\r\n \"tg-Cyrl\": 31784,\r\n dsb: 31790,\r\n smj: 31803,\r\n \"uz-Latn\": 31811,\r\n \"mn-Mong\": 31824,\r\n \"iu-Latn\": 31837,\r\n \"tzm-Latn\": 31839,\r\n \"ha-Latn\": 31848\r\n};\r\nexport function getLanguageId() {\r\n return LANGUAGE_CODES[localizationCoreUtils.locale()]\r\n}\r\n","/**\r\n * DevExtreme (esm/localization/cldr-data/first_day_of_week_data.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport default {\r\n \"af-NA\": 1,\r\n agq: 1,\r\n ak: 1,\r\n ar: 6,\r\n \"ar-EH\": 1,\r\n \"ar-ER\": 1,\r\n \"ar-KM\": 1,\r\n \"ar-LB\": 1,\r\n \"ar-MA\": 1,\r\n \"ar-MR\": 1,\r\n \"ar-PS\": 1,\r\n \"ar-SO\": 1,\r\n \"ar-SS\": 1,\r\n \"ar-TD\": 1,\r\n \"ar-TN\": 1,\r\n asa: 1,\r\n ast: 1,\r\n az: 1,\r\n \"az-Cyrl\": 1,\r\n bas: 1,\r\n be: 1,\r\n bem: 1,\r\n bez: 1,\r\n bg: 1,\r\n bm: 1,\r\n br: 1,\r\n bs: 1,\r\n \"bs-Cyrl\": 1,\r\n ca: 1,\r\n ce: 1,\r\n cgg: 1,\r\n ckb: 6,\r\n cs: 1,\r\n cy: 1,\r\n da: 1,\r\n de: 1,\r\n dje: 1,\r\n dsb: 1,\r\n dua: 1,\r\n dyo: 1,\r\n ee: 1,\r\n el: 1,\r\n \"en-001\": 1,\r\n \"en-AE\": 6,\r\n \"en-BI\": 1,\r\n \"en-MP\": 1,\r\n \"en-MV\": 5,\r\n \"en-SD\": 6,\r\n eo: 1,\r\n es: 1,\r\n et: 1,\r\n eu: 1,\r\n ewo: 1,\r\n fa: 6,\r\n ff: 1,\r\n \"ff-Adlm\": 1,\r\n fi: 1,\r\n fo: 1,\r\n fr: 1,\r\n \"fr-DJ\": 6,\r\n \"fr-DZ\": 6,\r\n \"fr-SY\": 6,\r\n fur: 1,\r\n fy: 1,\r\n ga: 1,\r\n gd: 1,\r\n gl: 1,\r\n gsw: 1,\r\n gv: 1,\r\n ha: 1,\r\n hr: 1,\r\n hsb: 1,\r\n hu: 1,\r\n hy: 1,\r\n ia: 1,\r\n ig: 1,\r\n is: 1,\r\n it: 1,\r\n jgo: 1,\r\n jmc: 1,\r\n ka: 1,\r\n kab: 6,\r\n kde: 1,\r\n kea: 1,\r\n khq: 1,\r\n kk: 1,\r\n kkj: 1,\r\n kl: 1,\r\n \"ko-KP\": 1,\r\n ksb: 1,\r\n ksf: 1,\r\n ksh: 1,\r\n ku: 1,\r\n kw: 1,\r\n ky: 1,\r\n lag: 1,\r\n lb: 1,\r\n lg: 1,\r\n ln: 1,\r\n lrc: 6,\r\n lt: 1,\r\n lu: 1,\r\n lv: 1,\r\n \"mas-TZ\": 1,\r\n mfe: 1,\r\n mg: 1,\r\n mgo: 1,\r\n mi: 1,\r\n mk: 1,\r\n mn: 1,\r\n ms: 1,\r\n mua: 1,\r\n mzn: 6,\r\n naq: 1,\r\n nds: 1,\r\n nl: 1,\r\n nmg: 1,\r\n nnh: 1,\r\n no: 1,\r\n nus: 1,\r\n nyn: 1,\r\n os: 1,\r\n pcm: 1,\r\n pl: 1,\r\n ps: 6,\r\n \"pt-AO\": 1,\r\n \"pt-CH\": 1,\r\n \"pt-CV\": 1,\r\n \"pt-GQ\": 1,\r\n \"pt-GW\": 1,\r\n \"pt-LU\": 1,\r\n \"pt-ST\": 1,\r\n \"pt-TL\": 1,\r\n \"qu-BO\": 1,\r\n \"qu-EC\": 1,\r\n rm: 1,\r\n rn: 1,\r\n ro: 1,\r\n rof: 1,\r\n ru: 1,\r\n rw: 1,\r\n rwk: 1,\r\n sah: 1,\r\n sbp: 1,\r\n sc: 1,\r\n se: 1,\r\n ses: 1,\r\n sg: 1,\r\n shi: 1,\r\n \"shi-Latn\": 1,\r\n si: 1,\r\n sk: 1,\r\n sl: 1,\r\n smn: 1,\r\n so: 1,\r\n \"so-DJ\": 6,\r\n sq: 1,\r\n sr: 1,\r\n \"sr-Latn\": 1,\r\n sv: 1,\r\n sw: 1,\r\n \"ta-LK\": 1,\r\n \"ta-MY\": 1,\r\n teo: 1,\r\n tg: 1,\r\n \"ti-ER\": 1,\r\n tk: 1,\r\n to: 1,\r\n tr: 1,\r\n tt: 1,\r\n twq: 1,\r\n tzm: 1,\r\n uk: 1,\r\n uz: 1,\r\n \"uz-Arab\": 6,\r\n \"uz-Cyrl\": 1,\r\n vai: 1,\r\n \"vai-Latn\": 1,\r\n vi: 1,\r\n vun: 1,\r\n wae: 1,\r\n wo: 1,\r\n xog: 1,\r\n yav: 1,\r\n yi: 1,\r\n yo: 1,\r\n zgh: 1\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/intl/date.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport localizationCoreUtils from \"../core\";\r\nvar SYMBOLS_TO_REMOVE_REGEX = /[\\u200E\\u200F]/g;\r\nvar getIntlFormatter = format => date => {\r\n if (!format.timeZoneName) {\r\n var year = date.getFullYear();\r\n var recognizableAsTwentyCentury = String(year).length < 3;\r\n var temporaryYearValue = recognizableAsTwentyCentury ? year + 400 : year;\r\n var utcDate = new Date(Date.UTC(temporaryYearValue, date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\r\n if (recognizableAsTwentyCentury) {\r\n utcDate.setFullYear(year)\r\n }\r\n var utcFormat = extend({\r\n timeZone: \"UTC\"\r\n }, format);\r\n return formatDateTime(utcDate, utcFormat)\r\n }\r\n return formatDateTime(date, format)\r\n};\r\nvar formattersCache = {};\r\nvar getFormatter = format => {\r\n var key = localizationCoreUtils.locale() + \"/\" + JSON.stringify(format);\r\n if (!formattersCache[key]) {\r\n formattersCache[key] = new Intl.DateTimeFormat(localizationCoreUtils.locale(), format).format\r\n }\r\n return formattersCache[key]\r\n};\r\n\r\nfunction formatDateTime(date, format) {\r\n return getFormatter(format)(date).replace(SYMBOLS_TO_REMOVE_REGEX, \"\")\r\n}\r\nvar formatNumber = number => new Intl.NumberFormat(localizationCoreUtils.locale()).format(number);\r\nvar getAlternativeNumeralsMap = (() => {\r\n var numeralsMapCache = {};\r\n return locale => {\r\n if (!(locale in numeralsMapCache)) {\r\n if (\"0\" === formatNumber(0)) {\r\n numeralsMapCache[locale] = false;\r\n return false\r\n }\r\n numeralsMapCache[locale] = {};\r\n for (var i = 0; i < 10; ++i) {\r\n numeralsMapCache[locale][formatNumber(i)] = i\r\n }\r\n }\r\n return numeralsMapCache[locale]\r\n }\r\n})();\r\nvar normalizeNumerals = dateString => {\r\n var alternativeNumeralsMap = getAlternativeNumeralsMap(localizationCoreUtils.locale());\r\n if (!alternativeNumeralsMap) {\r\n return dateString\r\n }\r\n return dateString.split(\"\").map(sign => sign in alternativeNumeralsMap ? String(alternativeNumeralsMap[sign]) : sign).join(\"\")\r\n};\r\nvar removeLeadingZeroes = str => str.replace(/(\\D)0+(\\d)/g, \"$1$2\");\r\nvar dateStringEquals = (actual, expected) => removeLeadingZeroes(actual) === removeLeadingZeroes(expected);\r\nvar normalizeMonth = text => text.replace(\"d\\u2019\", \"de \");\r\nvar intlFormats = {\r\n day: {\r\n day: \"numeric\"\r\n },\r\n dayofweek: {\r\n weekday: \"long\"\r\n },\r\n longdate: {\r\n weekday: \"long\",\r\n year: \"numeric\",\r\n month: \"long\",\r\n day: \"numeric\"\r\n },\r\n longdatelongtime: {\r\n weekday: \"long\",\r\n year: \"numeric\",\r\n month: \"long\",\r\n day: \"numeric\",\r\n hour: \"numeric\",\r\n minute: \"numeric\",\r\n second: \"numeric\"\r\n },\r\n longtime: {\r\n hour: \"numeric\",\r\n minute: \"numeric\",\r\n second: \"numeric\"\r\n },\r\n month: {\r\n month: \"long\"\r\n },\r\n monthandday: {\r\n month: \"long\",\r\n day: \"numeric\"\r\n },\r\n monthandyear: {\r\n year: \"numeric\",\r\n month: \"long\"\r\n },\r\n shortdate: {},\r\n shorttime: {\r\n hour: \"numeric\",\r\n minute: \"numeric\"\r\n },\r\n shortyear: {\r\n year: \"2-digit\"\r\n },\r\n year: {\r\n year: \"numeric\"\r\n }\r\n};\r\nObject.defineProperty(intlFormats, \"shortdateshorttime\", {\r\n get: function() {\r\n var defaultOptions = Intl.DateTimeFormat(localizationCoreUtils.locale()).resolvedOptions();\r\n return {\r\n year: defaultOptions.year,\r\n month: defaultOptions.month,\r\n day: defaultOptions.day,\r\n hour: \"numeric\",\r\n minute: \"numeric\"\r\n }\r\n }\r\n});\r\nvar getIntlFormat = format => \"string\" === typeof format && intlFormats[format.toLowerCase()];\r\nvar monthNameStrategies = {\r\n standalone: function(monthIndex, monthFormat) {\r\n var date = new Date(1999, monthIndex, 13, 1);\r\n var dateString = getIntlFormatter({\r\n month: monthFormat\r\n })(date);\r\n return dateString\r\n },\r\n format: function(monthIndex, monthFormat) {\r\n var date = new Date(0, monthIndex, 13, 1);\r\n var dateString = normalizeMonth(getIntlFormatter({\r\n day: \"numeric\",\r\n month: monthFormat\r\n })(date));\r\n var parts = dateString.split(\" \").filter(part => part.indexOf(\"13\") < 0);\r\n if (1 === parts.length) {\r\n return parts[0]\r\n } else if (2 === parts.length) {\r\n return parts[0].length > parts[1].length ? parts[0] : parts[1]\r\n }\r\n return monthNameStrategies.standalone(monthIndex, monthFormat)\r\n }\r\n};\r\nexport default {\r\n engine: function() {\r\n return \"intl\"\r\n },\r\n getMonthNames: function(format, type) {\r\n var monthFormat = {\r\n wide: \"long\",\r\n abbreviated: \"short\",\r\n narrow: \"narrow\"\r\n } [format || \"wide\"];\r\n type = \"format\" === type ? type : \"standalone\";\r\n return Array.apply(null, new Array(12)).map((_, monthIndex) => monthNameStrategies[type](monthIndex, monthFormat))\r\n },\r\n getDayNames: function(format) {\r\n var result = (format => Array.apply(null, new Array(7)).map((_, dayIndex) => getIntlFormatter({\r\n weekday: format\r\n })(new Date(0, 0, dayIndex))))({\r\n wide: \"long\",\r\n abbreviated: \"short\",\r\n short: \"narrow\",\r\n narrow: \"narrow\"\r\n } [format || \"wide\"]);\r\n return result\r\n },\r\n getPeriodNames: function() {\r\n var hour12Formatter = getIntlFormatter({\r\n hour: \"numeric\",\r\n hour12: true\r\n });\r\n return [1, 13].map(hours => {\r\n var hourNumberText = formatNumber(1);\r\n var timeParts = hour12Formatter(new Date(0, 0, 1, hours)).split(hourNumberText);\r\n if (2 !== timeParts.length) {\r\n return \"\"\r\n }\r\n var biggerPart = timeParts[0].length > timeParts[1].length ? timeParts[0] : timeParts[1];\r\n return biggerPart.trim()\r\n })\r\n },\r\n format: function(date, _format) {\r\n if (!date) {\r\n return\r\n }\r\n if (!_format) {\r\n return date\r\n }\r\n if (\"function\" !== typeof _format && !_format.formatter) {\r\n _format = _format.type || _format\r\n }\r\n var intlFormat = getIntlFormat(_format);\r\n if (intlFormat) {\r\n return getIntlFormatter(intlFormat)(date)\r\n }\r\n var formatType = typeof _format;\r\n if (_format.formatter || \"function\" === formatType || \"string\" === formatType) {\r\n return this.callBase.apply(this, arguments)\r\n }\r\n return getIntlFormatter(_format)(date)\r\n },\r\n parse: function(dateString, format) {\r\n var formatter;\r\n if (format && !format.parser && \"string\" === typeof dateString) {\r\n dateString = normalizeMonth(dateString);\r\n formatter = date => normalizeMonth(this.format(date, format))\r\n }\r\n return this.callBase(dateString, formatter || format)\r\n },\r\n _parseDateBySimpleFormat: function(dateString, format) {\r\n dateString = normalizeNumerals(dateString);\r\n var formatParts = this.getFormatParts(format);\r\n var dateParts = dateString.split(/\\D+/).filter(part => part.length > 0);\r\n if (formatParts.length !== dateParts.length) {\r\n return\r\n }\r\n var dateArgs = this._generateDateArgs(formatParts, dateParts);\r\n var constructValidDate = ampmShift => {\r\n var parsedDate = ((dateArgs, ampmShift) => {\r\n var hoursShift = ampmShift ? 12 : 0;\r\n return new Date(dateArgs.year, dateArgs.month, dateArgs.day, (dateArgs.hours + hoursShift) % 24, dateArgs.minutes, dateArgs.seconds)\r\n })(dateArgs, ampmShift);\r\n if (dateStringEquals(normalizeNumerals(this.format(parsedDate, format)), dateString)) {\r\n return parsedDate\r\n }\r\n };\r\n return constructValidDate(false) || constructValidDate(true)\r\n },\r\n _generateDateArgs: function(formatParts, dateParts) {\r\n var currentDate = new Date;\r\n var dateArgs = {\r\n year: currentDate.getFullYear(),\r\n month: currentDate.getMonth(),\r\n day: currentDate.getDate(),\r\n hours: 0,\r\n minutes: 0,\r\n seconds: 0\r\n };\r\n formatParts.forEach((formatPart, index) => {\r\n var datePart = dateParts[index];\r\n var parsed = parseInt(datePart, 10);\r\n if (\"month\" === formatPart) {\r\n parsed -= 1\r\n }\r\n dateArgs[formatPart] = parsed\r\n });\r\n return dateArgs\r\n },\r\n formatUsesMonthName: function(format) {\r\n if (\"object\" === typeof format && !(format.type || format.format)) {\r\n return \"long\" === format.month\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n formatUsesDayName: function(format) {\r\n if (\"object\" === typeof format && !(format.type || format.format)) {\r\n return \"long\" === format.weekday\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n getTimeSeparator: function() {\r\n return normalizeNumerals(formatDateTime(new Date(2001, 1, 1, 11, 11), {\r\n hour: \"numeric\",\r\n minute: \"numeric\",\r\n hour12: false\r\n })).replace(/\\d/g, \"\")\r\n },\r\n getFormatParts: function(format) {\r\n if (\"string\" === typeof format) {\r\n return this.callBase(format)\r\n }\r\n var intlFormat = extend({}, intlFormats[format.toLowerCase()]);\r\n var date = new Date(2001, 2, 4, 5, 6, 7);\r\n var formattedDate = getIntlFormatter(intlFormat)(date);\r\n formattedDate = normalizeNumerals(formattedDate);\r\n return [{\r\n name: \"year\",\r\n value: 1\r\n }, {\r\n name: \"month\",\r\n value: 3\r\n }, {\r\n name: \"day\",\r\n value: 4\r\n }, {\r\n name: \"hours\",\r\n value: 5\r\n }, {\r\n name: \"minutes\",\r\n value: 6\r\n }, {\r\n name: \"seconds\",\r\n value: 7\r\n }].map(part => ({\r\n name: part.name,\r\n index: formattedDate.indexOf(part.value)\r\n })).filter(part => part.index > -1).sort((a, b) => a.index - b.index).map(part => part.name)\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/date.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dependencyInjector from \"../core/utils/dependency_injector\";\r\nimport {\r\n isString\r\n} from \"../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport errors from \"../core/errors\";\r\nimport {\r\n getFormatter as getLDMLDateFormatter\r\n} from \"./ldml/date.formatter\";\r\nimport {\r\n getFormat as getLDMLDateFormat\r\n} from \"./ldml/date.format\";\r\nimport {\r\n getParser as getLDMLDateParser\r\n} from \"./ldml/date.parser\";\r\nimport defaultDateNames from \"./default_date_names\";\r\nimport firstDayOfWeekData from \"./cldr-data/first_day_of_week_data\";\r\nimport localizationCore from \"./core\";\r\nimport numberLocalization from \"./number\";\r\nimport intlDateLocalization from \"./intl/date\";\r\nvar DEFAULT_DAY_OF_WEEK_INDEX = 0;\r\nvar hasIntl = \"undefined\" !== typeof Intl;\r\nvar FORMATS_TO_PATTERN_MAP = {\r\n shortdate: \"M/d/y\",\r\n shorttime: \"h:mm a\",\r\n longdate: \"EEEE, MMMM d, y\",\r\n longtime: \"h:mm:ss a\",\r\n monthandday: \"MMMM d\",\r\n monthandyear: \"MMMM y\",\r\n quarterandyear: \"QQQ y\",\r\n day: \"d\",\r\n year: \"y\",\r\n shortdateshorttime: \"M/d/y, h:mm a\",\r\n longdatelongtime: \"EEEE, MMMM d, y, h:mm:ss a\",\r\n month: \"LLLL\",\r\n shortyear: \"yy\",\r\n dayofweek: \"EEEE\",\r\n quarter: \"QQQ\",\r\n hour: \"HH\",\r\n minute: \"mm\",\r\n second: \"ss\",\r\n millisecond: \"SSS\",\r\n \"datetime-local\": \"yyyy-MM-ddTHH':'mm':'ss\"\r\n};\r\nvar possiblePartPatterns = {\r\n year: [\"y\", \"yy\", \"yyyy\"],\r\n day: [\"d\", \"dd\"],\r\n month: [\"M\", \"MM\", \"MMM\", \"MMMM\"],\r\n hours: [\"H\", \"HH\", \"h\", \"hh\", \"ah\"],\r\n minutes: [\"m\", \"mm\"],\r\n seconds: [\"s\", \"ss\"],\r\n milliseconds: [\"S\", \"SS\", \"SSS\"]\r\n};\r\nvar dateLocalization = dependencyInjector({\r\n engine: function() {\r\n return \"base\"\r\n },\r\n _getPatternByFormat: function(format) {\r\n return FORMATS_TO_PATTERN_MAP[format.toLowerCase()]\r\n },\r\n _expandPattern: function(pattern) {\r\n return this._getPatternByFormat(pattern) || pattern\r\n },\r\n formatUsesMonthName: function(format) {\r\n return -1 !== this._expandPattern(format).indexOf(\"MMMM\")\r\n },\r\n formatUsesDayName: function(format) {\r\n return -1 !== this._expandPattern(format).indexOf(\"EEEE\")\r\n },\r\n getFormatParts: function(format) {\r\n var pattern = this._getPatternByFormat(format) || format;\r\n var result = [];\r\n each(pattern.split(/\\W+/), (_, formatPart) => {\r\n each(possiblePartPatterns, (partName, possiblePatterns) => {\r\n if (possiblePatterns.includes(formatPart)) {\r\n result.push(partName)\r\n }\r\n })\r\n });\r\n return result\r\n },\r\n getMonthNames: function(format) {\r\n return defaultDateNames.getMonthNames(format)\r\n },\r\n getDayNames: function(format) {\r\n return defaultDateNames.getDayNames(format)\r\n },\r\n getQuarterNames: function(format) {\r\n return defaultDateNames.getQuarterNames(format)\r\n },\r\n getPeriodNames: function(format) {\r\n return defaultDateNames.getPeriodNames(format)\r\n },\r\n getTimeSeparator: function() {\r\n return \":\"\r\n },\r\n is24HourFormat: function(format) {\r\n var amTime = new Date(2017, 0, 20, 11, 0, 0, 0);\r\n var pmTime = new Date(2017, 0, 20, 23, 0, 0, 0);\r\n var amTimeFormatted = this.format(amTime, format);\r\n var pmTimeFormatted = this.format(pmTime, format);\r\n for (var i = 0; i < amTimeFormatted.length; i++) {\r\n if (amTimeFormatted[i] !== pmTimeFormatted[i]) {\r\n return !isNaN(parseInt(amTimeFormatted[i]))\r\n }\r\n }\r\n },\r\n format: function(date, _format) {\r\n if (!date) {\r\n return\r\n }\r\n if (!_format) {\r\n return date\r\n }\r\n var formatter;\r\n if (\"function\" === typeof _format) {\r\n formatter = _format\r\n } else if (_format.formatter) {\r\n formatter = _format.formatter\r\n } else {\r\n _format = _format.type || _format;\r\n if (isString(_format)) {\r\n _format = FORMATS_TO_PATTERN_MAP[_format.toLowerCase()] || _format;\r\n return numberLocalization.convertDigits(getLDMLDateFormatter(_format, this)(date))\r\n }\r\n }\r\n if (!formatter) {\r\n return\r\n }\r\n return formatter(date)\r\n },\r\n parse: function(text, format) {\r\n var that = this;\r\n var ldmlFormat;\r\n var formatter;\r\n if (!text) {\r\n return\r\n }\r\n if (!format) {\r\n return this.parse(text, \"shortdate\")\r\n }\r\n if (format.parser) {\r\n return format.parser(text)\r\n }\r\n if (\"string\" === typeof format && !FORMATS_TO_PATTERN_MAP[format.toLowerCase()]) {\r\n ldmlFormat = format\r\n } else {\r\n formatter = value => {\r\n var text = that.format(value, format);\r\n return numberLocalization.convertDigits(text, true)\r\n };\r\n try {\r\n ldmlFormat = getLDMLDateFormat(formatter)\r\n } catch (e) {}\r\n }\r\n if (ldmlFormat) {\r\n text = numberLocalization.convertDigits(text, true);\r\n return getLDMLDateParser(ldmlFormat, this)(text)\r\n }\r\n errors.log(\"W0012\");\r\n var result = new Date(text);\r\n if (!result || isNaN(result.getTime())) {\r\n return\r\n }\r\n return result\r\n },\r\n firstDayOfWeekIndex: function() {\r\n var index = localizationCore.getValueByClosestLocale(locale => firstDayOfWeekData[locale]);\r\n return void 0 === index ? DEFAULT_DAY_OF_WEEK_INDEX : index\r\n }\r\n});\r\nif (hasIntl) {\r\n dateLocalization.inject(intlDateLocalization)\r\n}\r\nexport default dateLocalization;\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-row',[_c('b-col',{attrs:{\"cols\":\"12\"}},[_c('b-card',{attrs:{\"border-variant\":\"0\",\"title\":\"Danh sách chờ\"}},[_c('b-row',[_c('b-col',{attrs:{\"cols\":\"2\"}},[_c('b-form-group',[_c('date-range-picker',{ref:\"picker\",attrs:{\"single-date-picker\":true,\"opens\":\"right\",\"ranges\":false,\"time-picker\":true,\"time-picker-increment\":1,\"show-dropdowns\":true,\"auto-apply\":true,\"locale-data\":{\n format: 'DD/MM/YYYY',\n daysOfWeek: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n monthNames: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n firstDay: 0\n }},model:{value:(_vm.search.StartTime),callback:function ($$v) {_vm.$set(_vm.search, \"StartTime\", $$v)},expression:\"search.StartTime\"}})],1)],1),_c('b-col',{attrs:{\"cols\":\"2\"}},[_c('b-form-group',[_c('date-range-picker',{ref:\"picker\",attrs:{\"single-date-picker\":true,\"opens\":\"right\",\"ranges\":false,\"time-picker\":true,\"time-picker-increment\":1,\"show-dropdowns\":true,\"auto-apply\":true,\"locale-data\":{\n format: 'DD/MM/YYYY',\n daysOfWeek: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n monthNames: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n firstDay: 0\n }},model:{value:(_vm.search.EndTime),callback:function ($$v) {_vm.$set(_vm.search, \"EndTime\", $$v)},expression:\"search.EndTime\"}})],1)],1),_c('b-col',{attrs:{\"cols\":\"7\"}},[_c('b-row',[_c('b-col',{attrs:{\"cols\":\"6\",\"align\":\"left\"}},[_c('b-form-group',[_c('b-form-input',{ref:\"search\",attrs:{\"placeholder\":_vm.$t('golf_starter_search_by_name_or_bagtag')},model:{value:(_vm.search.KeyWord),callback:function ($$v) {_vm.$set(_vm.search, \"KeyWord\", $$v)},expression:\"search.KeyWord\"}})],1)],1)],1)],1),_c('b-col',{attrs:{\"cols\":\"1\",\"align\":\"right\"}},[_c('b-button',{attrs:{\"variant\":\"primary\"},on:{\"click\":function($event){return _vm.getWatingList_RBKWL1()}}},[_vm._v(\" \"+_vm._s(_vm.$t('golf_common_search'))+\" \")])],1)],1)],1),_c('b-card',{attrs:{\"border-variant\":\"0\"}},[_c('b-row',[_c('b-overlay',{attrs:{\"opacity\":0.3,\"rounded\":\"sm\",\"show\":_vm.isLoading}},[_c('DxDataGrid',{ref:\"tablePackage\",staticClass:\"table-wating-list\",attrs:{\"height\":_vm.heightTable,\"show-borders\":false,\"data-source\":_vm.listWatingList,\"show-column-lines\":true,\"show-row-lines\":true,\"allow-column-reordering\":true,\"allow-column-resizing\":true,\"column-resizing-mode\":\"widget\",\"column-auto-width\":true},on:{\"saving\":_vm.saveWatingList,\"initialized\":_vm.saveGridInstance},scopedSlots:_vm._u([{key:\"Time-Hour\",fn:function(ref){\n var data = ref.data;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(_vm.convertLocalDateToTimeHotel(data.data.Time, 'HH:mm'))+\" \")])]}},{key:\"Day-Time\",fn:function(ref){\n var data = ref.data;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(_vm.dayjs(data.data.OpenDate).tz(_vm.timeZone).format('DD/MM/YYYY'))+\" \")])]}},{key:\"beforeTemplate\",fn:function(){return [_c('div',{staticClass:\"left-side\"},[_c('div',{staticClass:\"d-select-perPage\"},[_c('b-form-group',{staticStyle:{\"width\":\"250px\"},attrs:{\"label\":_vm.$t('golf_starter_result_on_page'),\"label-for\":\"h-first-name\",\"label-cols-md\":\"7\"}},[_c('v-select',{staticStyle:{\"min-width\":\"50px\"},attrs:{\"options\":_vm.optionPerPage,\"clearable\":false},model:{value:(_vm.perPage),callback:function ($$v) {_vm.perPage=$$v},expression:\"perPage\"}})],1)],1)])]},proxy:true},{key:\"afterTemplate\",fn:function(){return [_c('div',[_c('div',[_c('b-dropdown',{staticClass:\"mr-2\",attrs:{\"variant\":\"outline-primary\"},scopedSlots:_vm._u([{key:\"button-content\",fn:function(){return [_c('span',{staticClass:\"align-middle\"},[_vm._v(_vm._s(_vm.$t('golf_common_export')))])]},proxy:true}])},[_c('b-dropdown-item',{on:{\"click\":_vm.exportExcel}},[_vm._v(\" \"+_vm._s(_vm.$t('golf_common_export_to_excel'))+\" \")])],1)],1)])]},proxy:true}])},[_c('DxFilterRow',{attrs:{\"visible\":true}}),_vm._l((_vm.configTable),function(item,i){return ((item.field != 'action') ? item.isShow : true)?_c('DxColumn',{key:i.field,attrs:{\"caption\":item.caption,\"data-field\":item.field,\"data-type\":item.type,\"alignment\":item.alignment,\"cell-template\":(item.cellTemplate) ? item.cellTemplate : false,\"editor-options\":item.editorOptions,\"allow-filtering\":item.allowFiltering,\"width\":item.width,\"cssClass\":(item.field == 'Time') ? 'ez-hide-date' : ''}},_vm._l((item.bands),function(band,j){return (band.isShow && item.bands.length > 0)?_c('DxColumn',{key:band.field,attrs:{\"caption\":band.caption,\"data-field\":band.field,\"data-type\":band.type,\"group-cell-template\":_vm.customText,\"cell-template\":(band.cellTemplate) ? band.cellTemplate : false,\"alignment\":band.alignment,\"width\":item.width,\"cssClass\":(item.field == 'Time') ? 'ez-hide-date' : ''}}):_vm._e()}),1):_vm._e()}),_c('DxEditing',{attrs:{\"allow-updating\":true,\"allow-adding\":true,\"allow-deleting\":true,\"select-text-on-edit-start\":false,\"start-edit-action\":\"dblClick\",\"mode\":\"batch\"}},[_c('DxTexts',{attrs:{\"edit-row\":_vm.$t('golf_common_edit'),\"cancel-row-changes\":_vm.$t('golf_common_cancel'),\"save-row-changes\":_vm.$t('golf_common_save')}})],1),_c('DxToolbar',[_c('DxItem',{attrs:{\"location\":\"before\",\"template\":\"beforeTemplate\"}}),_c('DxItem',{attrs:{\"location\":\"after\",\"template\":\"afterTemplate\"}}),_c('DxItem',{attrs:{\"widget\":\"dxButton\",\"location\":\"after\",\"options\":{width: 70},\"name\":\"revertButton\"}}),_c('DxItem',{attrs:{\"widget\":\"dxButton\",\"location\":\"after\",\"options\":{width: 70},\"name\":\"saveButton\",\"cssClass\":\"border-button\"}}),_c('DxItem',{attrs:{\"widget\":\"dxButton\",\"location\":\"after\",\"options\":{width: 70},\"name\":\"addRowButton\"}})],1),_c('DxColumnFixing',{attrs:{\"enabled\":true}}),_c('DxGroupPanel',{attrs:{\"visible\":false}}),_c('DxPaging',{attrs:{\"page-size\":_vm.perPage}}),_c('DxPager',{attrs:{\"visible\":true,\"display-mode\":\"full\",\"show-info\":true}})],2)],1)],1)],1)],1)],1),_c('ShortKey',{attrs:{\"shortcuts\":_vm.ShortCutKey,\"is-active\":true,\"all-child-component-closed\":_vm.allChildComponentClosed},on:{\"triggered\":_vm.onTriggeredEventHandler}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import {\r\n DxToolbar,\r\n DxItem,\r\n DxTexts,\r\n DxDataGrid,\r\n DxColumn,\r\n DxEditing,\r\n DxFilterRow,\r\n DxHeaderFilter,\r\n DxGroupPanel,\r\n DxGrouping,\r\n DxScrolling,\r\n DxPaging,\r\n DxPager,\r\n DxSummary,\r\n DxLookup,\r\n DxTotalItem,\r\n DxGroupItem,\r\n DxMasterDetail,\r\n DxStringLengthRule,\r\n DxRequiredRule,\r\n DxRangeRule,\r\n DxValueFormat,\r\n DxColumnChooser,\r\n DxColumnFixing,\r\n DxSelection,\r\n DxExport,\r\n DxLoadPanel,\r\n } from 'devextreme-vue/data-grid'\r\n import { Workbook } from 'exceljs'\r\nimport ShortKey from '@/views/modules/ultils/ShortKey'\r\nimport { exportDataGrid } from 'devextreme/excel_exporter'\r\nimport { convertUTC } from '@/@core/utils/utils'\r\nimport { saveAs } from 'file-saver-es'\r\n import 'devextreme/dist/css/dx.light.css'\r\n import { booking } from '@/api/booking'\r\n import { caddyCalendar } from '@/api/caddy-calendar'\r\n import dayjs from 'dayjs'\r\n import {\r\n F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, A, F,S, Z\r\n } from '@/api/constant.js'\r\n const dataGridRef = 'tablePackage'\r\nexport default {\r\n name: 'WatingList',\r\n components: {\r\n DxToolbar,\r\n DxItem,\r\n DxTexts,\r\n DxDataGrid,\r\n DxColumn,\r\n DxEditing,\r\n DxFilterRow,\r\n DxHeaderFilter,\r\n DxGroupPanel,\r\n DxGrouping,\r\n DxScrolling,\r\n DxPaging,\r\n DxPager,\r\n DxSummary,\r\n DxLookup,\r\n DxTotalItem,\r\n DxGroupItem,\r\n DxMasterDetail,\r\n DxStringLengthRule,\r\n DxRequiredRule,\r\n DxRangeRule,\r\n DxValueFormat,\r\n DxColumnChooser,\r\n DxColumnFixing,\r\n DxSelection,\r\n DxExport,\r\n DxLoadPanel,\r\n ShortKey\r\n },\r\n data() {\r\n return {\r\n search: {\r\n KeyWord: null,\r\n StartTime: this.getUTC('start', 'day'),\r\n EndTime: this.getUTC('end', 'day')\r\n },\r\n currentPage: 1,\r\n perPage: 50,\r\n optionPerPage: [10, 50, 100],\r\n ShortCutKey: [F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, A, F, S, Z],\r\n allChildComponentClosed: [\r\n \r\n ],\r\n dataGridInstance: null,\r\n configTable: [\r\n \r\n {\r\n caption: 'Tee time',\r\n field: 'Time',\r\n isShow: true,\r\n cellTemplate: 'Time-Hour',\r\n alignment: 'center',\r\n width: '15%',\r\n type: 'datetime',\r\n editorOptions: {\r\n displayFormat: 'HH:mm',\r\n useMaskBehavior: false,\r\n type: 'datetime',\r\n },\r\n allowFiltering: false\r\n },\r\n {\r\n caption: 'Ngày',\r\n field: 'OpenDate',\r\n isShow: true,\r\n cellTemplate: 'Day-Time',\r\n alignment: 'center',\r\n width: '15%',\r\n type: 'datetime',\r\n editorOptions: {\r\n displayFormat: 'dd/MM/yyyy',\r\n useMaskBehavior: false,\r\n type: 'date',\r\n },\r\n allowFiltering: false\r\n },\r\n {\r\n caption: 'Họ và tên',\r\n field: 'FullName',\r\n isShow: true,\r\n alignment: 'center',\r\n width: '15%',\r\n allowFiltering: true\r\n },\r\n {\r\n caption: 'Số điện thoại',\r\n field: 'PhoneNumber',\r\n isShow: true,\r\n alignment: 'center',\r\n width: '15%',\r\n allowFiltering: true\r\n },\r\n {\r\n caption: 'Caddy',\r\n field: 'CaddyCode',\r\n isShow: true,\r\n alignment: 'center',\r\n width: '15%',\r\n allowFiltering: true\r\n },\r\n {\r\n caption: 'Ghi chú',\r\n field: 'Note',\r\n isShow: true,\r\n alignment: 'center',\r\n width: '40%',\r\n allowFiltering: true\r\n }\r\n ],\r\n listWatingList: null,\r\n windowHeight: 0,\r\n heightTable: 400,\r\n timeZone: localStorage.getItem('timeZone'),\r\n isLoading: false\r\n }\r\n },\r\n mounted() {\r\n this.windowHeight = window.innerHeight\r\n },\r\n computed: {\r\n dataGrid() {\r\n return this.$refs[dataGridRef].instance\r\n },\r\n },\r\n async created() {\r\n this.getWatingList_RBKWL1()\r\n },\r\n watch: {\r\n windowHeight(value) {\r\n if(value > 600 ) {\r\n this.heightTable = value - 300\r\n }\r\n }\r\n },\r\n methods: {\r\n saveGridInstance(e) {\r\n this.dataGridInstance = e.component\r\n },\r\n saveWatingList(data) {\r\n if(data.changes.length == 0) {\r\n return\r\n }\r\n this.isLoading = true\r\n data.changes.forEach(async (x, index) => {\r\n if(x.type === \"insert\") {\r\n if(!x.data.Time || !x.data.FullName) {\r\n this.showToast('error', 'Vui lòng nhập đầy đủ thông tin')\r\n } else {\r\n const hour = this.dayjs(x.data.Time).tz(this.timeZone).get('hour')\r\n const minute = this.dayjs(x.data.Time).tz(this.timeZone).get('minute')\r\n const time = x.data.OpenDate \r\n ? this.dayjs(x.data.OpenDate).tz(this.timeZone).set('hours', hour).set( 'minutes',minute).format() \r\n : this.dayjs(x.data.Time).tz(this.timeZone).format()\r\n const timeUTC = this.dayjs(time).utc().format()\r\n const utctime = this.dayjs(time).utc().format()\r\n const body = {\r\n BookingWaitingList: {\r\n Id: null,\r\n Time: utctime,\r\n FullName: x.data.FullName ? x.data.FullName : null, \r\n PhoneNumber: x.data.PhoneNumber ? x.data.PhoneNumber : null,\r\n CaddyCode: x.data.CaddyCode ? x.data.CaddyCode : null,\r\n Note: x.data.Note ? x.data.Note : null\r\n }\r\n }\r\n await this.AddWatingList(body)\r\n }\r\n } else if (x.type === \"update\") {\r\n if(x.data.Time === null || x.data.FullName === null || x.data.OpenDate === null) {\r\n this.showToast('error', 'Vui lòng nhập đầy đủ thông tin')\r\n } else {\r\n if (x.data.Time && !x.data.OpenDate) {\r\n const hour = this.dayjs(x.data.Time).tz(this.timeZone).get('hour')\r\n const minute = this.dayjs(x.data.Time).tz(this.timeZone).get('minute')\r\n const time = this.dayjs(x.key.OpenDate).tz(this.timeZone).set('hours', hour).set( 'minutes',minute).format()\r\n var utctime = this.dayjs(time).utc().format()\r\n } else if (x.data.OpenDate && !x.data.Time ) {\r\n const hour = this.dayjs(x.key.Time).tz(this.timeZone).get('hour')\r\n const minute = this.dayjs(x.key.Time).tz(this.timeZone).get('minute')\r\n const time = this.dayjs(x.data.OpenDate).tz(this.timeZone).set('hours', hour).set( 'minutes',minute).format()\r\n var utctime = this.dayjs(time).utc().format()\r\n } else if (x.data.OpenDate && x.data.Time) {\r\n const hour = this.dayjs(x.data.Time).tz(this.timeZone).get('hour')\r\n const minute = this.dayjs(x.data.Time).tz(this.timeZone).get('minute')\r\n const time = this.dayjs(x.data.OpenDate).tz(this.timeZone).set('hours', hour).set( 'minutes',minute).format()\r\n var utctime = this.dayjs(time).utc().format()\r\n }\r\n const body = {\r\n BookingWaitingList: {\r\n Id: x.data.Id ? x.data.Id : x.key.Id,\r\n Time: x.data.Time || x.data.OpenDate ? utctime : x.key.Time,\r\n FullName: x.data.FullName ? x.data.FullName : x.key.FullName,\r\n PhoneNumber: x.data.PhoneNumber ? x.data.PhoneNumber : x.key.PhoneNumber ,\r\n CaddyCode: x.data.CaddyCode ? x.data.CaddyCode : x.key.CaddyCode,\r\n Note: x.data.Note ? x.data.Note : x.key.Note \r\n }\r\n }\r\n await this.AddWatingList(body)\r\n }\r\n } else if (x.type === \"remove\") {\r\n await this.DeleteWatingList({BookingWaitingListId: [x.key.Id]})\r\n }\r\n if(index === data.changes.length - 1) {\r\n await this.getWatingList_RBKWL1()\r\n }\r\n })\r\n },\r\n async getWatingList_RBKWL1() {\r\n this.isLoading = false\r\n const response = await booking.api_RBKWL1(this.search)\r\n this.isLoading = false\r\n if(response.Status === '200') {\r\n this.listWatingList = response.Data.BookingWaitingList\r\n } else {\r\n this.showResToast(response)\r\n }\r\n },\r\n async AddWatingList(body) {\r\n const response = await booking.api_UBKWL1(body)\r\n this.showResToast(response)\r\n }, \r\n async DeleteWatingList(body) {\r\n const response = await booking.api_DBKWL1(body)\r\n this.showResToast(response)\r\n },\r\n exportExcel() {\r\n const workbook = new Workbook()\r\n const worksheet = workbook.addWorksheet('Booking')\r\n const timeZone = localStorage.getItem('timeZone')\r\n exportDataGrid({\r\n component: this.dataGrid,\r\n worksheet,\r\n autoFilterEnabled: true,\r\n PrintSelectedRowsOnly: true,\r\n topLeftCell: { row: 4, column: 1 },\r\n customizeCell: function(options) {\r\n const { gridCell, excelCell } = options;\r\n if(gridCell.rowType === 'data') {\r\n if(gridCell.column.dataField == 'OpenDate') {\r\n const date = dayjs(gridCell.value).tz(timeZone).format()\r\n const utctime = dayjs(date).utc().format()\r\n excelCell.value = convertUTC(utctime,'DD/MM/YYYY')\r\n }\r\n if(gridCell.column.dataField == 'Time') {\r\n const date = dayjs(gridCell.value).tz(timeZone).format()\r\n const utctime = dayjs(date).utc().format()\r\n excelCell.value = convertUTC(utctime,'HH:mm')\r\n }\r\n } }\r\n }).then(cellRange => {\r\n // header\r\n const headerRow = worksheet.getRow(2)\r\n headerRow.height = 30\r\n worksheet.mergeCells(2, 1, 2, 8)\r\n \r\n headerRow.getCell(1).value = `DANH SÁCH CHỜ (từ ${this.convertUTC(this.search.StartTime, 'DD/MM/YYYY')} đến ${this.convertUTC(this.search.EndTime, 'DD/MM/YYYY')})`\r\n headerRow.getCell(1).font = { name: 'Segoe UI Light', size: 22 }\r\n headerRow.getCell(1).alignment = { horizontal: 'center' }\r\n \r\n // footer\r\n const footerRowIndex = cellRange.to.row + 2\r\n const footerRow = worksheet.getRow(footerRowIndex)\r\n worksheet.mergeCells(footerRowIndex, 1, footerRowIndex, 8)\r\n footerRow.getCell(1).font = { color: { argb: 'BFBFBF' }, italic: true }\r\n footerRow.getCell(1).alignment = { horizontal: 'right' }\r\n }).then(() => {\r\n workbook.xlsx.writeBuffer().then(buffer => {\r\n saveAs(new Blob([buffer], { type: 'application/octet-stream' }), 'WatingList.xlsx')\r\n })\r\n })\r\n },\r\n onTriggeredEventHandler(payload) {\r\n if(payload.evt.ctrlKey && payload.key === S) {\r\n this.$refs.search.$refs.input.focus()\r\n setTimeout(() => {\r\n this.dataGridInstance.saveEditData() \r\n },500)\r\n }\r\n if(payload.evt.ctrlKey && payload.key === Z) {\r\n this.dataGridInstance.cancelEditData()\r\n }\r\n \r\n },\r\n },\r\n}","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!./WatingList.js?vue&type=script&lang=js&external\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!./WatingList.js?vue&type=script&lang=js&external\"","import { render, staticRenderFns } from \"./WatingList.vue?vue&type=template&id=5524b884\"\nimport script from \"./WatingList.js?vue&type=script&lang=js&external\"\nexport * from \"./WatingList.js?vue&type=script&lang=js&external\"\nimport style0 from \"./WatingList.vue?vue&type=style&index=0&id=5524b884&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import {\r\n ROOT,\r\n GET_LIST_TEE_BOOKING_API,\r\n GET_LIST_NATIONAL_API,\r\n GET_LIST_BOOKING_API,\r\n CREATE_BOOKING_API,\r\n GOLF_CLASSES_API,\r\n RESOURCES_API,\r\n DETAIL_BOOKING_2A_API,\r\n DETAIL_BOOKING_2B_API,\r\n DETAIL_BOOKING_2C_API,\r\n RATE_CODE_API,\r\n DETAIL_TEE_TIME_API,\r\n CHECK_IN,\r\n GET_LIST_GROUP_API,\r\n COMBINE_GROUP_API,\r\n SOURCES_LIST_API,\r\n UPDATE_RATE_CODE_API,\r\n SPLITGROUP_API,\r\n GET_LIST_CADDY,\r\n LIST_SERVICES_API,\r\n LIST_CADDY,\r\n UPDATE_CADDY,\r\n BOOKING_UPDATE_CADDY,\r\n UPDATE_BOOKING_INFO,\r\n ADD_MEMBER_API,\r\n CHECK_OUT,\r\n GET_LIST_PAYMENT,\r\n GET_CONFIG_API,\r\n NO_SHOW,\r\n CREATE_PAYMENT_API,\r\n CREATE_PAYMENT_DETAIL_API,\r\n GET_LIST_PAYMENT_METHOD,\r\n GET_LIST_PAYMENT_DETAIL,\r\n DELETE_PAYMENT,\r\n DELETE_PAYMENT_DETAIL,\r\n GET_LIST_SERVICES, GET_LIST_REASON_DISCOUNT, UPDATE_TEE_TIME_FOR_BOOKING, UPDATE_LOCKER_AND_NOTE_FOR_BOOKING, UPDATE_BOOKING_SERVICE,\r\n API_UBK09,\r\n GET_BOOKING_RETAIL,\r\n API_RBK09,\r\n API_RBK02D,\r\n API_RCS01,\r\n API_RME05,\r\n API_UBK04,\r\n API_UBK07,\r\n API_DBK02,\r\n API_DBK01,\r\n API_UPM02,\r\n API_ICI02,\r\n API_RPM02D,\r\n API_IPM02D,\r\n API_DPM02D,\r\n API_UPM02D,\r\n API_RPF02,\r\n API_RHS01,\r\n RIV01,\r\n API_RIV01,\r\n API_UPM01,\r\n API_UBK12,\r\n API_UBK13,\r\n API_RTE03,\r\n API_RTB02,\r\n API_RBK10,\r\n API_DPM06,\r\n API_RPM02M,\r\n API_IPM02R,\r\n API_IEM01,\r\n API_IEM02,\r\n API_DPM07,\r\n API_UBK11,\r\n API_RME01F,\r\n API_DPM09,\r\n API_RRA05,\r\n API_ICI03,\r\n API_VC_RV03,\r\n API_VC_RV04,\r\n API_VC_RV05,\r\n API_UBK10,\r\n API_UPM06,\r\n API_RRPDF,\r\n API_RBK06,\r\n API_VC_RV06,\r\n API_RRA04A,\r\n API_UBK15,\r\n API_RBK12,\r\n API_RCL03,\r\n API_UPM07,\r\n API_RPM01F,\r\n API_UBKWL1,\r\n API_RBKWL1,\r\n API_DBKWL1,\r\n API_RBK13,\r\n API_IBKR01,\r\n API_DBKR01,\r\n API_RBKR01,\r\n API_UBK16,\r\n API_RBK15,\r\n API_UBK17\r\n} from '@/api/constant'\r\nimport { handleResponse } from '@/api/handle-response'\r\nimport { requestOptions } from '@/api/request-options'\r\nimport { handleResponseFile } from '@/api/response-file'\r\nfunction api_UBK17(data) {\r\n return fetch(ROOT + API_UBK17, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction api_RBK13(data) {\r\n return fetch(ROOT + API_RBK13, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction api_RBK15(data) {\r\n return fetch(ROOT + API_RBK15, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction api_UBK16(data) {\r\n return fetch(ROOT + API_UBK16, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction api_IBKR01(data) {\r\n return fetch(ROOT + API_IBKR01, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_DBKR01(data) {\r\n return fetch(ROOT + API_DBKR01, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_RBKR01(data) {\r\n return fetch(ROOT + API_RBKR01, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction getListTeeTimeBooking(data) {\r\n return fetch(ROOT + GET_LIST_TEE_BOOKING_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction api_UBKWL1(data) {\r\n return fetch(ROOT + API_UBKWL1, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction api_RBKWL1(data) {\r\n return fetch(ROOT + API_RBKWL1, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction api_DBKWL1(data) {\r\n return fetch(ROOT + API_DBKWL1, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction api_RPM01F(data) {\r\n return fetch(ROOT + API_RPM01F, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction api_RCL03(data) {\r\n return fetch(ROOT + API_RCL03, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction getListNational(data) {\r\n return fetch(ROOT + GET_LIST_NATIONAL_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction getListGroup(data) {\r\n return fetch(ROOT + GET_LIST_GROUP_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction getListBooking(data) {\r\n return fetch(ROOT + GET_LIST_BOOKING_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction getGolfClasses(data) {\r\n return fetch(ROOT + GOLF_CLASSES_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction getListResources(data) {\r\n return fetch(ROOT + RESOURCES_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction createBooking(data) {\r\n return fetch(ROOT + CREATE_BOOKING_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction addMember(data) {\r\n return fetch(ROOT + ADD_MEMBER_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction getDetailBooking2A(data) {\r\n return fetch(ROOT + DETAIL_BOOKING_2A_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction getDetailBooking2B(data) {\r\n return fetch(ROOT + DETAIL_BOOKING_2B_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction getDetailBooking2C(data) {\r\n return fetch(ROOT + DETAIL_BOOKING_2C_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction getRateCode(data) {\r\n return fetch(ROOT + RATE_CODE_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction checkIn(data) {\r\n return fetch(ROOT + CHECK_IN, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction combineGroup(data) {\r\n return fetch(ROOT + COMBINE_GROUP_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction getListSources(data) {\r\n return fetch(ROOT + SOURCES_LIST_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction updateRateCode(data) {\r\n return fetch(ROOT + UPDATE_RATE_CODE_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction SplitGroup(data) {\r\n return fetch(ROOT + SPLITGROUP_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction updateCaddy(data) {\r\n return fetch(ROOT + BOOKING_UPDATE_CADDY, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction getListCaddy(data) {\r\n return fetch(ROOT + LIST_CADDY, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction getListServices(data) {\r\n return fetch(ROOT + LIST_SERVICES_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction updateBookingInfo(data) {\r\n return fetch(ROOT + UPDATE_BOOKING_INFO, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction getConfigInfo(data) {\r\n return fetch(ROOT + GET_CONFIG_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction noShow(data) {\r\n return fetch(ROOT + NO_SHOW, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction getRBK02C(data) {\r\n return fetch(ROOT + CHECK_OUT, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_RBK02D(data) {\r\n return fetch(ROOT + API_RBK02D, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction getRPM01(data) {\r\n return fetch(ROOT + GET_LIST_PAYMENT, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction createPayment(data) {\r\n return fetch(ROOT + CREATE_PAYMENT_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction createPaymentDetail(data) {\r\n return fetch(ROOT + CREATE_PAYMENT_DETAIL_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction getListPaymentMethod(data) {\r\n return fetch(ROOT + GET_LIST_PAYMENT_METHOD, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction getListPaymentDetail(data) {\r\n return fetch(ROOT + GET_LIST_PAYMENT_DETAIL, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction updateBookingService(data) {\r\n return fetch(ROOT + UPDATE_BOOKING_SERVICE, requestOptions.postBody(data)).then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction deletePaymentDetail(data) {\r\n return fetch(ROOT + DELETE_PAYMENT_DETAIL, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction deletePayment(data) {\r\n return fetch(ROOT + DELETE_PAYMENT, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction getListServicesFee(data) {\r\n return fetch(ROOT + GET_LIST_SERVICES, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction getListReasonDiscount(data) {\r\n return fetch(ROOT + GET_LIST_REASON_DISCOUNT, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction updateTeeTimeForBooking(data) {\r\n return fetch(ROOT + UPDATE_TEE_TIME_FOR_BOOKING, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction updateNoteAndLockerForBooking(data) {\r\n return fetch(ROOT + UPDATE_LOCKER_AND_NOTE_FOR_BOOKING, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_UBK09(data) {\r\n return fetch(ROOT + API_UBK09, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction getBookingRetail(data) {\r\n return fetch(ROOT + GET_BOOKING_RETAIL, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_RBK09(data) {\r\n return fetch(ROOT + API_RBK09, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_RCS01(data) {\r\n return fetch(ROOT + API_RCS01, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_RME05(data) {\r\n return fetch(ROOT + API_RME05, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_UBK04(data) {\r\n return fetch(ROOT + API_UBK04, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_UBK07(data) {\r\n return fetch(ROOT + API_UBK07, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_DBK01(data) {\r\n return fetch(ROOT + API_DBK01, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction api_DBK02(data) {\r\n return fetch(ROOT + API_DBK02, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction api_UPM02(data) {\r\n return fetch(ROOT + API_UPM02, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction api_ICI02(data) {\r\n return fetch(ROOT + API_ICI02, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_RPM02D(data) {\r\n return fetch(ROOT + API_RPM02D, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_IPM02D(data) {\r\n return fetch(ROOT + API_IPM02D, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_DPM02D(data) {\r\n return fetch(ROOT + API_DPM02D, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_UPM02D(data) {\r\n return fetch(ROOT + API_UPM02D, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_RPF02(data) {\r\n return fetch(ROOT + API_RPF02, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_RHS01(data) {\r\n return fetch(ROOT + API_RHS01, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_RIV01(data) {\r\n return fetch(ROOT + API_RIV01, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_UPM01(data) {\r\n return fetch(ROOT + API_UPM01, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_UBK12(data) {\r\n return fetch(ROOT + API_UBK12, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_UBK13(data) {\r\n return fetch(ROOT + API_UBK13, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_RTE03(data) {\r\n return fetch(ROOT + API_RTE03, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_RTB02(data) {\r\n return fetch(ROOT + API_RTB02, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_RBK10(data) {\r\n return fetch(ROOT + API_RBK10, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction api_DPM06(data) {\r\n return fetch(ROOT + API_DPM06, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_RPM02M(data) {\r\n return fetch(ROOT + API_RPM02M, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_IPM02R(data) {\r\n return fetch(ROOT + API_IPM02R, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_IEM01(data) {\r\n return fetch(ROOT + API_IEM01, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_IEM02(data) {\r\n return fetch(ROOT + API_IEM02, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_DPM07(data) {\r\n return fetch(ROOT + API_DPM07, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_UBK11(data) {\r\n return fetch(ROOT + API_UBK11, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_RME01F(data) {\r\n return fetch(ROOT + API_RME01F, requestOptions.postBody(data)).then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction api_DPM09(data) {\r\n return fetch(ROOT + API_DPM09, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_RRA05(data) {\r\n return fetch(ROOT + API_RRA05, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_ICI03(data) {\r\n return fetch(ROOT + API_ICI03, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_VC_RV03(data) {\r\n return fetch(ROOT + API_VC_RV03, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_VC_RV04(data) {\r\n return fetch(ROOT + API_VC_RV04, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_VC_RV05(data) {\r\n return fetch(ROOT + API_VC_RV05, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_UBK10(data) {\r\n return fetch(ROOT + API_UBK10, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_UPM06(data) {\r\n return fetch(ROOT + API_UPM06, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_RRPDF(data) {\r\n return fetch(API_RRPDF, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction api_RBK06(data) {\r\n return fetch(ROOT + API_RBK06, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction api_VC_RV06(data) {\r\n return fetch(ROOT + API_VC_RV06, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction api_RRA04A(data) {\r\n return fetch(ROOT + API_RRA04A, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_UBK15(data) {\r\n return fetch(ROOT + API_UBK15, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction api_RBK12(data) {\r\n return fetch(ROOT + API_RBK12, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction api_UPM07(data) {\r\n return fetch(ROOT + API_UPM07, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nexport const booking = {\r\n getListTeeTimeBooking,\r\n getListNational,\r\n getListGroup,\r\n getListBooking,\r\n getGolfClasses,\r\n createBooking,\r\n addMember,\r\n getListCaddy,\r\n getListResources,\r\n getDetailBooking2A,\r\n getDetailBooking2B,\r\n getDetailBooking2C,\r\n getRateCode,\r\n SplitGroup,\r\n noShow,\r\n updateCaddy,\r\n checkIn,\r\n combineGroup,\r\n getListSources,\r\n updateRateCode,\r\n getListServices,\r\n updateBookingInfo,\r\n getConfigInfo,\r\n getRBK02C,\r\n getRPM01,\r\n createPayment,\r\n createPaymentDetail,\r\n getListPaymentMethod,\r\n getListPaymentDetail,\r\n deletePaymentDetail,\r\n deletePayment,\r\n getListServicesFee,\r\n getListReasonDiscount,\r\n updateTeeTimeForBooking,\r\n updateNoteAndLockerForBooking,\r\n updateBookingService,\r\n api_UBK09,\r\n getBookingRetail,\r\n api_RBK09,\r\n api_RBK02D,\r\n api_RCS01,\r\n api_RME05,\r\n api_UBK04,\r\n api_UBK07,\r\n api_DBK01,\r\n api_DBK02,\r\n api_UPM02,\r\n api_ICI02,\r\n api_RPM02D,\r\n api_IPM02D,\r\n api_DPM02D,\r\n api_UPM02D,\r\n api_RPF02,\r\n api_RHS01,\r\n api_RIV01,\r\n api_UPM01,\r\n api_UBK12,\r\n api_UBK13,\r\n api_RTE03,\r\n api_RTB02,\r\n api_RBK10,\r\n api_DPM06,\r\n api_RPM02M,\r\n api_IPM02R,\r\n api_IEM01,\r\n api_IEM02,\r\n api_DPM07,\r\n api_UBK11,\r\n api_RME01F,\r\n api_DPM09,\r\n api_RRA05,\r\n api_ICI03,\r\n api_VC_RV03,\r\n api_VC_RV04,\r\n api_VC_RV05,\r\n api_UBK10,\r\n api_UPM06,\r\n api_RRPDF,\r\n api_RBK06,\r\n api_VC_RV06,\r\n api_RRA04A,\r\n api_UBK15,\r\n api_RBK12,\r\n api_RCL03,\r\n api_UPM07,\r\n api_RPM01F,\r\n api_UBKWL1,\r\n api_RBKWL1,\r\n api_DBKWL1,\r\n api_RBK13,\r\n api_IBKR01,\r\n api_DBKR01,\r\n api_RBKR01,\r\n api_UBK16,\r\n api_RBK15,\r\n api_UBK17\r\n}\r\n","/* eslint-disable no-shadow */\r\n/* eslint-disable import/prefer-default-export */\r\nimport {\r\n ROOT,\r\n API_RCAC01,\r\n API_UCAC01,\r\n GET_LIST_CADDY,\r\n API_RCAC02,\r\n API_RCA03,\r\n API_RCA05,\r\n API_ICAC01,\r\n API_DCAC01,\r\n API_RCAC03,\r\n API_UCAC02,\r\n API_UCAC04,\r\n API_RCWS01,\r\n API_UCAC05\r\n} from '@/api/constant'\r\nimport { handleResponse } from '@/api/handle-response'\r\nimport { requestOptions } from '@/api/request-options'\r\n\r\nfunction getListCaddyCalendar(data) {\r\n return fetch(ROOT + API_RCAC01, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction api_UCAC05(data) {\r\n return fetch(ROOT + API_UCAC05, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction api_UCAC04(data) {\r\n return fetch(ROOT + API_UCAC04, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction api_RCWS01(data) {\r\n return fetch(ROOT + API_RCWS01, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction api_RCAC02(data) {\r\n return fetch(ROOT + API_RCAC02, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction api_RCA03(data) {\r\n return fetch(ROOT + API_RCA03, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction api_RCA05(data) {\r\n return fetch(ROOT + API_RCA05, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction api_ICAC01(data) {\r\n return fetch(ROOT + API_ICAC01, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction getListCaddy(data) {\r\n return fetch(ROOT + GET_LIST_CADDY, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction updateCaddyCalendar(data) {\r\n return fetch(ROOT + API_UCAC01, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_DCAC01(data) {\r\n return fetch(ROOT + API_DCAC01, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_UCAC02(data) {\r\n return fetch(ROOT + API_UCAC02, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_RCAC03(data) {\r\n return fetch(ROOT + API_RCAC03, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nexport const caddyCalendar = {\r\n getListCaddyCalendar,\r\n updateCaddyCalendar,\r\n getListCaddy,\r\n api_RCAC02,\r\n api_RCA03,\r\n api_RCA05,\r\n api_ICAC01,\r\n api_DCAC01,\r\n api_UCAC02,\r\n api_RCAC03,\r\n api_UCAC04,\r\n api_RCWS01,\r\n api_UCAC05\r\n}\r\n","/**\r\n * DevExtreme (esm/localization/ldml/date.formatter.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nfunction leftPad(text, length) {\r\n while (text.length < length) {\r\n text = \"0\" + text\r\n }\r\n return text\r\n}\r\nvar FORMAT_TYPES = {\r\n 3: \"abbreviated\",\r\n 4: \"wide\",\r\n 5: \"narrow\"\r\n};\r\nvar LDML_FORMATTERS = {\r\n y: function(date, count, useUtc) {\r\n var year = date[useUtc ? \"getUTCFullYear\" : \"getFullYear\"]();\r\n if (2 === count) {\r\n year %= 100\r\n }\r\n return leftPad(year.toString(), count)\r\n },\r\n M: function(date, count, useUtc, dateParts) {\r\n var month = date[useUtc ? \"getUTCMonth\" : \"getMonth\"]();\r\n var formatType = FORMAT_TYPES[count];\r\n if (formatType) {\r\n return dateParts.getMonthNames(formatType, \"format\")[month]\r\n }\r\n return leftPad((month + 1).toString(), Math.min(count, 2))\r\n },\r\n L: function(date, count, useUtc, dateParts) {\r\n var month = date[useUtc ? \"getUTCMonth\" : \"getMonth\"]();\r\n var formatType = FORMAT_TYPES[count];\r\n if (formatType) {\r\n return dateParts.getMonthNames(formatType, \"standalone\")[month]\r\n }\r\n return leftPad((month + 1).toString(), Math.min(count, 2))\r\n },\r\n Q: function(date, count, useUtc, dateParts) {\r\n var month = date[useUtc ? \"getUTCMonth\" : \"getMonth\"]();\r\n var quarter = Math.floor(month / 3);\r\n var formatType = FORMAT_TYPES[count];\r\n if (formatType) {\r\n return dateParts.getQuarterNames(formatType)[quarter]\r\n }\r\n return leftPad((quarter + 1).toString(), Math.min(count, 2))\r\n },\r\n E: function(date, count, useUtc, dateParts) {\r\n var day = date[useUtc ? \"getUTCDay\" : \"getDay\"]();\r\n var formatType = FORMAT_TYPES[count < 3 ? 3 : count];\r\n return dateParts.getDayNames(formatType)[day]\r\n },\r\n a: function(date, count, useUtc, dateParts) {\r\n var hours = date[useUtc ? \"getUTCHours\" : \"getHours\"]();\r\n var period = hours < 12 ? 0 : 1;\r\n var formatType = FORMAT_TYPES[count];\r\n return dateParts.getPeriodNames(formatType)[period]\r\n },\r\n d: function(date, count, useUtc) {\r\n return leftPad(date[useUtc ? \"getUTCDate\" : \"getDate\"]().toString(), Math.min(count, 2))\r\n },\r\n H: function(date, count, useUtc) {\r\n return leftPad(date[useUtc ? \"getUTCHours\" : \"getHours\"]().toString(), Math.min(count, 2))\r\n },\r\n h: function(date, count, useUtc) {\r\n var hours = date[useUtc ? \"getUTCHours\" : \"getHours\"]();\r\n return leftPad((hours % 12 || 12).toString(), Math.min(count, 2))\r\n },\r\n m: function(date, count, useUtc) {\r\n return leftPad(date[useUtc ? \"getUTCMinutes\" : \"getMinutes\"]().toString(), Math.min(count, 2))\r\n },\r\n s: function(date, count, useUtc) {\r\n return leftPad(date[useUtc ? \"getUTCSeconds\" : \"getSeconds\"]().toString(), Math.min(count, 2))\r\n },\r\n S: function(date, count, useUtc) {\r\n return leftPad(date[useUtc ? \"getUTCMilliseconds\" : \"getMilliseconds\"]().toString(), 3).substr(0, count)\r\n },\r\n x: function(date, count, useUtc) {\r\n var timezoneOffset = useUtc ? 0 : date.getTimezoneOffset();\r\n var signPart = timezoneOffset > 0 ? \"-\" : \"+\";\r\n var timezoneOffsetAbs = Math.abs(timezoneOffset);\r\n var hours = Math.floor(timezoneOffsetAbs / 60);\r\n var minutes = timezoneOffsetAbs % 60;\r\n var hoursPart = leftPad(hours.toString(), 2);\r\n var minutesPart = leftPad(minutes.toString(), 2);\r\n return signPart + hoursPart + (count >= 3 ? \":\" : \"\") + (count > 1 || minutes ? minutesPart : \"\")\r\n },\r\n X: function(date, count, useUtc) {\r\n if (useUtc || !date.getTimezoneOffset()) {\r\n return \"Z\"\r\n }\r\n return LDML_FORMATTERS.x(date, count, useUtc)\r\n },\r\n Z: function(date, count, useUtc) {\r\n return LDML_FORMATTERS.X(date, count >= 5 ? 3 : 2, useUtc)\r\n }\r\n};\r\nexport var getFormatter = function(format, dateParts) {\r\n return function(date) {\r\n var charIndex;\r\n var formatter;\r\n var char;\r\n var charCount = 0;\r\n var isEscaping = false;\r\n var isCurrentCharEqualsNext;\r\n var result = \"\";\r\n if (!date) {\r\n return null\r\n }\r\n if (!format) {\r\n return date\r\n }\r\n var useUtc = \"Z\" === format[format.length - 1] || \"'Z'\" === format.slice(-3);\r\n for (charIndex = 0; charIndex < format.length; charIndex++) {\r\n char = format[charIndex];\r\n formatter = LDML_FORMATTERS[char];\r\n isCurrentCharEqualsNext = char === format[charIndex + 1];\r\n charCount++;\r\n if (!isCurrentCharEqualsNext) {\r\n if (formatter && !isEscaping) {\r\n result += formatter(date, charCount, useUtc, dateParts)\r\n }\r\n charCount = 0\r\n }\r\n if (\"'\" === char && !isCurrentCharEqualsNext) {\r\n isEscaping = !isEscaping\r\n } else if (isEscaping || !formatter) {\r\n result += char\r\n }\r\n if (\"'\" === char && isCurrentCharEqualsNext) {\r\n charIndex++\r\n }\r\n }\r\n return result\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.utils.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport sharedFiltering from \"../shared/filtering\";\r\nimport {\r\n format\r\n} from \"../../core/utils/string\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../core/utils/position\";\r\nimport {\r\n toComparable\r\n} from \"../../core/utils/data\";\r\nimport {\r\n equalByValue\r\n} from \"../../core/utils/common\";\r\nimport LoadPanel from \"../load_panel\";\r\nimport {\r\n normalizeSortingInfo as normalizeSortingInfoUtility\r\n} from \"../../data/utils\";\r\nimport formatHelper from \"../../format_helper\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n DataSource\r\n} from \"../../data/data_source/data_source\";\r\nimport ArrayStore from \"../../data/array_store\";\r\nimport {\r\n normalizeDataSourceOptions\r\n} from \"../../data/data_source/utils\";\r\nimport variableWrapper from \"../../core/utils/variable_wrapper\";\r\nvar DATAGRID_SELECTION_DISABLED_CLASS = \"dx-selection-disabled\";\r\nvar DATAGRID_GROUP_OPENED_CLASS = \"dx-datagrid-group-opened\";\r\nvar DATAGRID_GROUP_CLOSED_CLASS = \"dx-datagrid-group-closed\";\r\nvar DATAGRID_EXPAND_CLASS = \"dx-datagrid-expand\";\r\nvar NO_DATA_CLASS = \"nodata\";\r\nvar SCROLLING_MODE_INFINITE = \"infinite\";\r\nvar SCROLLING_MODE_VIRTUAL = \"virtual\";\r\nvar LEGACY_SCROLLING_MODE = \"scrolling.legacyMode\";\r\nvar SCROLLING_MODE_OPTION = \"scrolling.mode\";\r\nvar ROW_RENDERING_MODE_OPTION = \"scrolling.rowRenderingMode\";\r\nvar DATE_INTERVAL_SELECTORS = {\r\n year: function(value) {\r\n return value && value.getFullYear()\r\n },\r\n month: function(value) {\r\n return value && value.getMonth() + 1\r\n },\r\n day: function(value) {\r\n return value && value.getDate()\r\n },\r\n quarter: function(value) {\r\n return value && Math.floor(value.getMonth() / 3) + 1\r\n },\r\n hour: function(value) {\r\n return value && value.getHours()\r\n },\r\n minute: function(value) {\r\n return value && value.getMinutes()\r\n },\r\n second: function(value) {\r\n return value && value.getSeconds()\r\n }\r\n};\r\nvar getIntervalSelector = function() {\r\n var data = arguments[1];\r\n var value = this.calculateCellValue(data);\r\n if (!isDefined(value)) {\r\n return null\r\n } else if (isDateType(this.dataType)) {\r\n var nameIntervalSelector = arguments[0];\r\n return DATE_INTERVAL_SELECTORS[nameIntervalSelector](value)\r\n } else if (\"number\" === this.dataType) {\r\n var groupInterval = arguments[0];\r\n return Math.floor(Number(value) / groupInterval) * groupInterval\r\n }\r\n};\r\nvar equalSelectors = function(selector1, selector2) {\r\n if (isFunction(selector1) && isFunction(selector2)) {\r\n if (selector1.originalCallback && selector2.originalCallback) {\r\n return selector1.originalCallback === selector2.originalCallback && selector1.columnIndex === selector2.columnIndex\r\n }\r\n }\r\n return selector1 === selector2\r\n};\r\n\r\nfunction isDateType(dataType) {\r\n return \"date\" === dataType || \"datetime\" === dataType\r\n}\r\nvar setEmptyText = function($container) {\r\n $container.get(0).textContent = \"\\xa0\"\r\n};\r\nvar normalizeSortingInfo = function(sort) {\r\n sort = sort || [];\r\n var result = normalizeSortingInfoUtility(sort);\r\n for (var i = 0; i < sort.length; i++) {\r\n if (sort && sort[i] && void 0 !== sort[i].isExpanded) {\r\n result[i].isExpanded = sort[i].isExpanded\r\n }\r\n if (sort && sort[i] && void 0 !== sort[i].groupInterval) {\r\n result[i].groupInterval = sort[i].groupInterval\r\n }\r\n }\r\n return result\r\n};\r\nvar formatValue = function(value, options) {\r\n var valueText = formatHelper.format(value, options.format) || value && value.toString() || \"\";\r\n var formatObject = {\r\n value: value,\r\n valueText: options.getDisplayFormat ? options.getDisplayFormat(valueText) : valueText,\r\n target: options.target || \"row\",\r\n groupInterval: options.groupInterval\r\n };\r\n return options.customizeText ? options.customizeText.call(options, formatObject) : formatObject.valueText\r\n};\r\nvar getSummaryText = function(summaryItem, summaryTexts) {\r\n var displayFormat = summaryItem.displayFormat || summaryItem.columnCaption && summaryTexts[summaryItem.summaryType + \"OtherColumn\"] || summaryTexts[summaryItem.summaryType];\r\n return formatValue(summaryItem.value, {\r\n format: summaryItem.valueFormat,\r\n getDisplayFormat: function(valueText) {\r\n return displayFormat ? format(displayFormat, valueText, summaryItem.columnCaption) : valueText\r\n },\r\n customizeText: summaryItem.customizeText\r\n })\r\n};\r\nvar getWidgetInstance = function($element) {\r\n var editorData = $element.data && $element.data();\r\n var dxComponents = editorData && editorData.dxComponents;\r\n var widgetName = dxComponents && dxComponents[0];\r\n return widgetName && editorData[widgetName]\r\n};\r\nvar equalFilterParameters = function equalFilterParameters(filter1, filter2) {\r\n if (Array.isArray(filter1) && Array.isArray(filter2)) {\r\n if (filter1.length !== filter2.length) {\r\n return false\r\n } else {\r\n for (var i = 0; i < filter1.length; i++) {\r\n if (!equalFilterParameters(filter1[i], filter2[i])) {\r\n return false\r\n }\r\n }\r\n }\r\n return true\r\n } else if (isFunction(filter1) && filter1.columnIndex >= 0 && isFunction(filter2) && filter2.columnIndex >= 0) {\r\n return filter1.columnIndex === filter2.columnIndex && toComparable(filter1.filterValue) === toComparable(filter2.filterValue)\r\n } else {\r\n return toComparable(filter1) == toComparable(filter2)\r\n }\r\n};\r\n\r\nfunction normalizeGroupingLoadOptions(group) {\r\n if (!Array.isArray(group)) {\r\n group = [group]\r\n }\r\n return group.map((item, i) => {\r\n if (isString(item)) {\r\n return {\r\n selector: item,\r\n isExpanded: i < group.length - 1\r\n }\r\n }\r\n return item\r\n })\r\n}\r\nexport default {\r\n renderNoDataText: function($element) {\r\n $element = $element || this.element();\r\n if (!$element) {\r\n return\r\n }\r\n var noDataClass = this.addWidgetPrefix(NO_DATA_CLASS);\r\n var noDataElement = $element.find(\".\" + noDataClass).last();\r\n var isVisible = this._dataController.isEmpty();\r\n var isLoading = this._dataController.isLoading();\r\n if (!noDataElement.length) {\r\n noDataElement = $(\"\").addClass(noDataClass).appendTo($element)\r\n }\r\n if (isVisible && !isLoading) {\r\n noDataElement.removeClass(\"dx-hidden\").text(this._getNoDataText())\r\n } else {\r\n noDataElement.addClass(\"dx-hidden\")\r\n }\r\n },\r\n renderLoadPanel: function($element, $container, isLocalStore) {\r\n var loadPanelOptions;\r\n this._loadPanel && this._loadPanel.$element().remove();\r\n loadPanelOptions = this.option(\"loadPanel\");\r\n if (loadPanelOptions && (\"auto\" === loadPanelOptions.enabled ? !isLocalStore : loadPanelOptions.enabled)) {\r\n loadPanelOptions = extend({\r\n shading: false,\r\n message: loadPanelOptions.text,\r\n container: $container\r\n }, loadPanelOptions);\r\n this._loadPanel = this._createComponent($(\"
\").appendTo($container), LoadPanel, loadPanelOptions)\r\n } else {\r\n this._loadPanel = null\r\n }\r\n },\r\n calculateLoadPanelPosition($element) {\r\n var $window = $(getWindow());\r\n if (getHeight($element) > getHeight($window)) {\r\n return {\r\n of: $window,\r\n boundary: $element,\r\n collision: \"fit\"\r\n }\r\n }\r\n return {\r\n of: $element\r\n }\r\n },\r\n getIndexByKey: function(key, items, keyName) {\r\n var index = -1;\r\n if (void 0 !== key && Array.isArray(items)) {\r\n keyName = arguments.length <= 2 ? \"key\" : keyName;\r\n for (var i = 0; i < items.length; i++) {\r\n var item = isDefined(keyName) ? items[i][keyName] : items[i];\r\n if (equalByValue(key, item)) {\r\n index = i;\r\n break\r\n }\r\n }\r\n }\r\n return index\r\n },\r\n combineFilters: function(filters, operation) {\r\n var resultFilter = [];\r\n operation = operation || \"and\";\r\n for (var i = 0; i < filters.length; i++) {\r\n var _filters$i;\r\n if (!filters[i]) {\r\n continue\r\n }\r\n if (1 === (null === (_filters$i = filters[i]) || void 0 === _filters$i ? void 0 : _filters$i.length) && \"!\" === filters[i][0]) {\r\n if (\"and\" === operation) {\r\n return [\"!\"]\r\n } else if (\"or\" === operation) {\r\n continue\r\n }\r\n }\r\n if (resultFilter.length) {\r\n resultFilter.push(operation)\r\n }\r\n resultFilter.push(filters[i])\r\n }\r\n if (1 === resultFilter.length) {\r\n resultFilter = resultFilter[0]\r\n }\r\n if (resultFilter.length) {\r\n return resultFilter\r\n }\r\n },\r\n checkChanges: function(changes, changeNames) {\r\n var changesWithChangeNamesCount = 0;\r\n for (var i = 0; i < changeNames.length; i++) {\r\n if (changes[changeNames[i]]) {\r\n changesWithChangeNamesCount++\r\n }\r\n }\r\n return changes.length && changes.length === changesWithChangeNamesCount\r\n },\r\n equalFilterParameters: equalFilterParameters,\r\n proxyMethod: function(instance, methodName, defaultResult) {\r\n if (!instance[methodName]) {\r\n instance[methodName] = function() {\r\n var dataSource = this._dataSource;\r\n return dataSource ? dataSource[methodName].apply(dataSource, arguments) : defaultResult\r\n }\r\n }\r\n },\r\n formatValue: formatValue,\r\n getFormatOptionsByColumn: function(column, target) {\r\n return {\r\n format: column.format,\r\n getDisplayFormat: column.getDisplayFormat,\r\n customizeText: column.customizeText,\r\n target: target,\r\n trueText: column.trueText,\r\n falseText: column.falseText\r\n }\r\n },\r\n getDisplayValue: function(column, value, data, rowType) {\r\n if (column.displayValueMap && void 0 !== column.displayValueMap[value]) {\r\n return column.displayValueMap[value]\r\n } else if (column.calculateDisplayValue && data && \"group\" !== rowType) {\r\n return column.calculateDisplayValue(data)\r\n } else if (column.lookup && !(\"group\" === rowType && (column.calculateGroupValue || column.calculateDisplayValue))) {\r\n return column.lookup.calculateCellValue(value)\r\n }\r\n return value\r\n },\r\n getGroupRowSummaryText: function(summaryItems, summaryTexts) {\r\n var result = \"(\";\r\n for (var i = 0; i < summaryItems.length; i++) {\r\n var summaryItem = summaryItems[i];\r\n result += (i > 0 ? \", \" : \"\") + getSummaryText(summaryItem, summaryTexts)\r\n }\r\n return result + \")\"\r\n },\r\n getSummaryText: getSummaryText,\r\n normalizeSortingInfo: normalizeSortingInfo,\r\n getFormatByDataType: function(dataType) {\r\n switch (dataType) {\r\n case \"date\":\r\n return \"shortDate\";\r\n case \"datetime\":\r\n return \"shortDateShortTime\"\r\n }\r\n },\r\n getHeaderFilterGroupParameters: function(column, remoteGrouping) {\r\n var result = [];\r\n var dataField = column.dataField || column.name;\r\n var groupInterval = sharedFiltering.getGroupInterval(column);\r\n if (groupInterval) {\r\n each(groupInterval, (function(index, interval) {\r\n result.push(remoteGrouping ? {\r\n selector: dataField,\r\n groupInterval: interval,\r\n isExpanded: index < groupInterval.length - 1\r\n } : getIntervalSelector.bind(column, interval))\r\n }));\r\n return result\r\n }\r\n if (remoteGrouping) {\r\n result = [{\r\n selector: dataField,\r\n isExpanded: false\r\n }]\r\n } else {\r\n result = function(data) {\r\n var result = column.calculateCellValue(data);\r\n if (void 0 === result || \"\" === result) {\r\n result = null\r\n }\r\n return result\r\n };\r\n if (column.sortingMethod) {\r\n result = [{\r\n selector: result,\r\n compare: column.sortingMethod.bind(column)\r\n }]\r\n }\r\n }\r\n return result\r\n },\r\n equalSortParameters(sortParameters1, sortParameters2, ignoreIsExpanded) {\r\n sortParameters1 = normalizeSortingInfo(sortParameters1);\r\n sortParameters2 = normalizeSortingInfo(sortParameters2);\r\n if (Array.isArray(sortParameters1) && Array.isArray(sortParameters2)) {\r\n if (sortParameters1.length !== sortParameters2.length) {\r\n return false\r\n } else {\r\n for (var i = 0; i < sortParameters1.length; i++) {\r\n if (!equalSelectors(sortParameters1[i].selector, sortParameters2[i].selector) || sortParameters1[i].desc !== sortParameters2[i].desc || sortParameters1[i].groupInterval !== sortParameters2[i].groupInterval || !ignoreIsExpanded && Boolean(sortParameters1[i].isExpanded) !== Boolean(sortParameters2[i].isExpanded)) {\r\n return false\r\n }\r\n }\r\n }\r\n return true\r\n } else {\r\n return (!sortParameters1 || !sortParameters1.length) === (!sortParameters2 || !sortParameters2.length)\r\n }\r\n },\r\n getPointsByColumns: function(items, pointCreated, isVertical, startColumnIndex) {\r\n var cellsLength = items.length;\r\n var notCreatePoint = false;\r\n var item;\r\n var offset;\r\n var columnIndex = startColumnIndex || 0;\r\n var result = [];\r\n var rtlEnabled;\r\n for (var i = 0; i <= cellsLength; i++) {\r\n if (i < cellsLength) {\r\n item = items.eq(i);\r\n offset = item.offset();\r\n rtlEnabled = \"rtl\" === item.css(\"direction\")\r\n }\r\n var point = {\r\n index: columnIndex,\r\n x: offset ? offset.left + (!isVertical && rtlEnabled ^ i === cellsLength ? getBoundingRect(item[0]).width : 0) : 0,\r\n y: offset ? offset.top + (isVertical && i === cellsLength ? getBoundingRect(item[0]).height : 0) : 0,\r\n columnIndex: columnIndex\r\n };\r\n if (!isVertical && i > 0) {\r\n var prevItemOffset = items.eq(i - 1).offset();\r\n if (prevItemOffset.top < point.y) {\r\n point.y = prevItemOffset.top\r\n }\r\n }\r\n if (pointCreated) {\r\n notCreatePoint = pointCreated(point)\r\n }\r\n if (!notCreatePoint) {\r\n result.push(point)\r\n }\r\n columnIndex++\r\n }\r\n return result\r\n },\r\n getExpandCellTemplate: function() {\r\n return {\r\n allowRenderToDetachedContainer: true,\r\n render: function(container, options) {\r\n var $container = $(container);\r\n if (isDefined(options.value) && !(options.data && options.data.isContinuation) && !options.row.isNewRow) {\r\n var rowsView = options.component.getView(\"rowsView\");\r\n $container.addClass(DATAGRID_EXPAND_CLASS).addClass(DATAGRID_SELECTION_DISABLED_CLASS);\r\n $(\"
\").addClass(options.value ? DATAGRID_GROUP_OPENED_CLASS : DATAGRID_GROUP_CLOSED_CLASS).appendTo($container);\r\n rowsView.setAria(\"label\", options.value ? rowsView.localize(\"dxDataGrid-ariaCollapse\") : rowsView.localize(\"dxDataGrid-ariaExpand\"), $container)\r\n } else {\r\n setEmptyText($container)\r\n }\r\n }\r\n }\r\n },\r\n setEmptyText: setEmptyText,\r\n isDateType: isDateType,\r\n getSelectionRange: function(focusedElement) {\r\n try {\r\n if (focusedElement) {\r\n return {\r\n selectionStart: focusedElement.selectionStart,\r\n selectionEnd: focusedElement.selectionEnd\r\n }\r\n }\r\n } catch (e) {}\r\n return {}\r\n },\r\n setSelectionRange: function(focusedElement, selectionRange) {\r\n try {\r\n if (focusedElement && focusedElement.setSelectionRange) {\r\n focusedElement.setSelectionRange(selectionRange.selectionStart, selectionRange.selectionEnd)\r\n }\r\n } catch (e) {}\r\n },\r\n focusAndSelectElement: function(component, $element) {\r\n var isFocused = $element.is(\":focus\");\r\n eventsEngine.trigger($element, \"focus\");\r\n var isSelectTextOnEditingStart = component.option(\"editing.selectTextOnEditStart\");\r\n var element = $element.get(0);\r\n if (!isFocused && isSelectTextOnEditingStart && $element.is(\".dx-texteditor-input\") && !$element.is(\"[readonly]\")) {\r\n var editor = getWidgetInstance($element.closest(\".dx-texteditor\"));\r\n when(editor && editor._loadItemDeferred).done((function() {\r\n element.select()\r\n }))\r\n }\r\n },\r\n getWidgetInstance: getWidgetInstance,\r\n getLastResizableColumnIndex: function(columns, resultWidths) {\r\n var hasResizableColumns = columns.some(column => column && !column.command && !column.fixed && false !== column.allowResizing);\r\n var lastColumnIndex;\r\n for (lastColumnIndex = columns.length - 1; columns[lastColumnIndex]; lastColumnIndex--) {\r\n var column = columns[lastColumnIndex];\r\n var width = resultWidths && resultWidths[lastColumnIndex];\r\n var allowResizing = !hasResizableColumns || false !== column.allowResizing;\r\n if (!column.command && !column.fixed && \"adaptiveHidden\" !== width && allowResizing) {\r\n break\r\n }\r\n }\r\n return lastColumnIndex\r\n },\r\n isElementInCurrentGrid: function(controller, $element) {\r\n if ($element && $element.length) {\r\n var $grid = $element.closest(\".\" + controller.getWidgetContainerClass()).parent();\r\n return $grid.is(controller.component.$element())\r\n }\r\n return false\r\n },\r\n isVirtualRowRendering: function(that) {\r\n var rowRenderingMode = that.option(ROW_RENDERING_MODE_OPTION);\r\n var isVirtualMode = that.option(SCROLLING_MODE_OPTION) === SCROLLING_MODE_VIRTUAL;\r\n var isAppendMode = that.option(SCROLLING_MODE_OPTION) === SCROLLING_MODE_INFINITE;\r\n if (false === that.option(LEGACY_SCROLLING_MODE) && (isVirtualMode || isAppendMode)) {\r\n return true\r\n }\r\n return rowRenderingMode === SCROLLING_MODE_VIRTUAL\r\n },\r\n getPixelRatio: function(window) {\r\n return window.devicePixelRatio || 1\r\n },\r\n getContentHeightLimit(browser) {\r\n if (browser.mozilla) {\r\n return 8e6\r\n }\r\n return 15e6 / this.getPixelRatio(getWindow())\r\n },\r\n normalizeLookupDataSource(lookup) {\r\n var lookupDataSourceOptions;\r\n if (lookup.items) {\r\n lookupDataSourceOptions = lookup.items\r\n } else {\r\n lookupDataSourceOptions = lookup.dataSource;\r\n if (isFunction(lookupDataSourceOptions) && !variableWrapper.isWrapped(lookupDataSourceOptions)) {\r\n lookupDataSourceOptions = lookupDataSourceOptions({})\r\n }\r\n }\r\n return normalizeDataSourceOptions(lookupDataSourceOptions)\r\n },\r\n getWrappedLookupDataSource(column, dataSource, filter) {\r\n var lookupDataSourceOptions = this.normalizeLookupDataSource(column.lookup);\r\n if (column.calculateCellValue !== column.defaultCalculateCellValue) {\r\n return lookupDataSourceOptions\r\n }\r\n var hasGroupPaging = dataSource.remoteOperations().groupPaging;\r\n var hasLookupOptimization = column.displayField && isString(column.displayField);\r\n var cachedUniqueRelevantItems;\r\n var lookupDataSource = _extends({}, lookupDataSourceOptions, {\r\n load: loadOptions => {\r\n var d = new Deferred;\r\n (loadOptions => {\r\n var group = normalizeGroupingLoadOptions(hasLookupOptimization ? [column.dataField, column.displayField] : column.dataField);\r\n var d = new Deferred;\r\n if (!hasGroupPaging && cachedUniqueRelevantItems) {\r\n d.resolve(cachedUniqueRelevantItems)\r\n } else {\r\n dataSource.load({\r\n filter: filter,\r\n group: group,\r\n take: hasGroupPaging ? loadOptions.take : void 0,\r\n skip: hasGroupPaging ? loadOptions.skip : void 0\r\n }).done(items => {\r\n cachedUniqueRelevantItems = items;\r\n d.resolve(items)\r\n }).fail(d.fail)\r\n }\r\n return d\r\n })(loadOptions).done(items => {\r\n if (0 === items.length) {\r\n d.resolve([])\r\n }\r\n var newDataSource;\r\n if (hasLookupOptimization) {\r\n var lookupItems = items.map(item => {\r\n var _column$displayValueM;\r\n return {\r\n [column.lookup.valueExpr]: item.key,\r\n [column.lookup.displayExpr]: null !== (_column$displayValueM = column.displayValueMap[item.key]) && void 0 !== _column$displayValueM ? _column$displayValueM : item.items[0].key\r\n }\r\n });\r\n newDataSource = new DataSource(_extends({}, lookupDataSourceOptions, loadOptions, {\r\n store: new ArrayStore({\r\n data: lookupItems,\r\n key: column.lookup.valueExpr\r\n })\r\n }))\r\n } else {\r\n var _filter = this.combineFilters(items.flatMap(data => data.key).map(key => [column.lookup.valueExpr, key]), \"or\");\r\n newDataSource = new DataSource(_extends({}, lookupDataSourceOptions, loadOptions, {\r\n filter: this.combineFilters([_filter, loadOptions.filter], \"and\")\r\n }))\r\n }\r\n if (!hasGroupPaging) {\r\n newDataSource.on(\"customizeStoreLoadOptions\", e => {\r\n e.storeLoadOptions.take = loadOptions.take;\r\n e.storeLoadOptions.skip = loadOptions.skip\r\n })\r\n }\r\n newDataSource.load().done(d.resolve).fail(d.fail)\r\n }).fail(d.fail);\r\n return d\r\n },\r\n key: column.lookup.valueExpr,\r\n byKey(key) {\r\n var d = Deferred();\r\n this.load({\r\n filter: [column.lookup.valueExpr, \"=\", key]\r\n }).done(arr => {\r\n d.resolve(arr[0])\r\n });\r\n return d.promise()\r\n }\r\n });\r\n return lookupDataSource\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/ldml/date.format.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport numberLocalization from \"../number\";\r\nvar ARABIC_COMMA = \"\\u060c\";\r\nvar FORMAT_SEPARATORS = \" .,:;/\\\\<>()-[]\" + ARABIC_COMMA;\r\nvar AM_PM_PATTERN = \". m.\";\r\nvar checkDigit = function(char) {\r\n var code = char && numberLocalization.convertDigits(char, false).charCodeAt(0);\r\n var zeroCode = numberLocalization.convertDigits(\"0\", false).charCodeAt(0);\r\n return zeroCode <= code && code < zeroCode + 10\r\n};\r\nvar checkPatternContinue = function(text, patterns, index, isDigit) {\r\n var char = text[index];\r\n var nextChar = text[index + 1];\r\n if (!isDigit) {\r\n if (\".\" === char || \" \" === char && text.slice(index - 1, index + 3) === AM_PM_PATTERN) {\r\n return true\r\n }\r\n if (\"-\" === char && !checkDigit(nextChar)) {\r\n return true\r\n }\r\n }\r\n var isDigitChanged = isDigit && patterns.some(pattern => text[index] !== pattern[index]);\r\n return FORMAT_SEPARATORS.indexOf(char) < 0 && isDigit === checkDigit(char) && (!isDigit || isDigitChanged)\r\n};\r\nvar getPatternStartIndex = function(defaultPattern, index) {\r\n if (!checkDigit(defaultPattern[index])) {\r\n while (index > 0 && !checkDigit(defaultPattern[index - 1]) && (\".\" === defaultPattern[index - 1] || FORMAT_SEPARATORS.indexOf(defaultPattern[index - 1]) < 0)) {\r\n index--\r\n }\r\n }\r\n return index\r\n};\r\nvar getDifference = function(defaultPattern, patterns, processedIndexes, isDigit) {\r\n var i = 0;\r\n var result = [];\r\n var patternsFilter = function(pattern) {\r\n return defaultPattern[i] !== pattern[i] && (void 0 === isDigit || checkDigit(defaultPattern[i]) === isDigit)\r\n };\r\n if (!Array.isArray(patterns)) {\r\n patterns = [patterns]\r\n }\r\n for (i = 0; i < defaultPattern.length; i++) {\r\n if (processedIndexes.indexOf(i) < 0 && patterns.filter(patternsFilter).length) {\r\n i = getPatternStartIndex(defaultPattern, i);\r\n do {\r\n isDigit = checkDigit(defaultPattern[i]);\r\n if (!result.length && !isDigit && checkDigit(patterns[0][i])) {\r\n break\r\n }\r\n result.push(i);\r\n processedIndexes.unshift(i);\r\n i++\r\n } while (defaultPattern[i] && checkPatternContinue(defaultPattern, patterns, i, isDigit));\r\n break\r\n }\r\n }\r\n if (1 === result.length && (\"0\" === defaultPattern[processedIndexes[0] - 1] || \"\\u0660\" === defaultPattern[processedIndexes[0] - 1])) {\r\n processedIndexes.unshift(processedIndexes[0] - 1)\r\n }\r\n return result\r\n};\r\nvar replaceCharsCore = function(pattern, indexes, char, patternPositions) {\r\n var baseCharIndex = indexes[0];\r\n var patternIndex = baseCharIndex < patternPositions.length ? patternPositions[baseCharIndex] : baseCharIndex;\r\n indexes.forEach((function(_, index) {\r\n pattern = pattern.substr(0, patternIndex + index) + (char.length > 1 ? char[index] : char) + pattern.substr(patternIndex + index + 1)\r\n }));\r\n if (1 === indexes.length) {\r\n pattern = pattern.replace(\"0\" + char, char + char);\r\n pattern = pattern.replace(\"\\u0660\" + char, char + char)\r\n }\r\n return pattern\r\n};\r\nvar replaceChars = function(pattern, indexes, char, patternPositions) {\r\n var i;\r\n var index;\r\n var patternIndex;\r\n if (!checkDigit(pattern[indexes[0]] || \"0\")) {\r\n var letterCount = Math.max(indexes.length <= 3 ? 3 : 4, char.length);\r\n while (indexes.length > letterCount) {\r\n index = indexes.pop();\r\n patternIndex = patternPositions[index];\r\n patternPositions[index] = -1;\r\n for (i = index + 1; i < patternPositions.length; i++) {\r\n patternPositions[i]--\r\n }\r\n pattern = pattern.substr(0, patternIndex) + pattern.substr(patternIndex + 1)\r\n }\r\n index = indexes[indexes.length - 1] + 1, patternIndex = index < patternPositions.length ? patternPositions[index] : index;\r\n while (indexes.length < letterCount) {\r\n indexes.push(indexes[indexes.length - 1] + 1);\r\n for (i = index; i < patternPositions.length; i++) {\r\n patternPositions[i]++\r\n }\r\n pattern = pattern.substr(0, patternIndex) + \" \" + pattern.substr(patternIndex)\r\n }\r\n }\r\n pattern = replaceCharsCore(pattern, indexes, char, patternPositions);\r\n return pattern\r\n};\r\nvar formatValue = function(value, formatter) {\r\n if (Array.isArray(value)) {\r\n return value.map((function(value) {\r\n return (formatter(value) || \"\").toString()\r\n }))\r\n }\r\n return (formatter(value) || \"\").toString()\r\n};\r\nvar ESCAPE_CHARS_REGEXP = /[a-zA-Z]/g;\r\nvar escapeChars = function(pattern, defaultPattern, processedIndexes, patternPositions) {\r\n var escapeIndexes = defaultPattern.split(\"\").map((function(char, index) {\r\n if (processedIndexes.indexOf(index) < 0 && (char.match(ESCAPE_CHARS_REGEXP) || \"'\" === char)) {\r\n return patternPositions[index]\r\n }\r\n return -1\r\n }));\r\n pattern = pattern.split(\"\").map((function(char, index) {\r\n var result = char;\r\n var isCurrentCharEscaped = escapeIndexes.indexOf(index) >= 0;\r\n var isPrevCharEscaped = index > 0 && escapeIndexes.indexOf(index - 1) >= 0;\r\n var isNextCharEscaped = escapeIndexes.indexOf(index + 1) >= 0;\r\n if (isCurrentCharEscaped) {\r\n if (!isPrevCharEscaped) {\r\n result = \"'\" + result\r\n }\r\n if (!isNextCharEscaped) {\r\n result += \"'\"\r\n }\r\n }\r\n return result\r\n })).join(\"\");\r\n return pattern\r\n};\r\nexport var getFormat = function(formatter) {\r\n var processedIndexes = [];\r\n var defaultPattern = formatValue(new Date(2009, 8, 8, 6, 5, 4), formatter);\r\n var patternPositions = defaultPattern.split(\"\").map((function(_, index) {\r\n return index\r\n }));\r\n var result = defaultPattern;\r\n var replacedPatterns = {};\r\n var datePatterns = [{\r\n date: new Date(2009, 8, 8, 6, 5, 4, 111),\r\n pattern: \"S\"\r\n }, {\r\n date: new Date(2009, 8, 8, 6, 5, 2),\r\n pattern: \"s\"\r\n }, {\r\n date: new Date(2009, 8, 8, 6, 2, 4),\r\n pattern: \"m\"\r\n }, {\r\n date: new Date(2009, 8, 8, 18, 5, 4),\r\n pattern: \"H\",\r\n isDigit: true\r\n }, {\r\n date: new Date(2009, 8, 8, 2, 5, 4),\r\n pattern: \"h\",\r\n isDigit: true\r\n }, {\r\n date: new Date(2009, 8, 8, 18, 5, 4),\r\n pattern: \"a\",\r\n isDigit: false\r\n }, {\r\n date: new Date(2009, 8, 1, 6, 5, 4),\r\n pattern: \"d\"\r\n }, {\r\n date: [new Date(2009, 8, 2, 6, 5, 4), new Date(2009, 8, 3, 6, 5, 4), new Date(2009, 8, 4, 6, 5, 4)],\r\n pattern: \"E\"\r\n }, {\r\n date: new Date(2009, 9, 6, 6, 5, 4),\r\n pattern: \"M\"\r\n }, {\r\n date: new Date(1998, 8, 8, 6, 5, 4),\r\n pattern: \"y\"\r\n }];\r\n if (!result) {\r\n return\r\n }\r\n datePatterns.forEach((function(test) {\r\n var diff = getDifference(defaultPattern, formatValue(test.date, formatter), processedIndexes, test.isDigit);\r\n var pattern = \"M\" === test.pattern && !replacedPatterns.d ? \"L\" : test.pattern;\r\n result = replaceChars(result, diff, pattern, patternPositions);\r\n replacedPatterns[pattern] = diff.length\r\n }));\r\n result = escapeChars(result, defaultPattern, processedIndexes, patternPositions);\r\n if (processedIndexes.length) {\r\n return result\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/default_date_names.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n map\r\n} from \"../core/utils/iterator\";\r\nvar MONTHS = [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"];\r\nvar DAYS = [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"];\r\nvar PERIODS = [\"AM\", \"PM\"];\r\nvar QUARTERS = [\"Q1\", \"Q2\", \"Q3\", \"Q4\"];\r\nvar cutCaptions = (captions, format) => {\r\n var lengthByFormat = {\r\n abbreviated: 3,\r\n short: 2,\r\n narrow: 1\r\n };\r\n return map(captions, caption => caption.substr(0, lengthByFormat[format]))\r\n};\r\nexport default {\r\n getMonthNames: function(format) {\r\n return cutCaptions(MONTHS, format)\r\n },\r\n getDayNames: function(format) {\r\n return cutCaptions(DAYS, format)\r\n },\r\n getQuarterNames: function(format) {\r\n return QUARTERS\r\n },\r\n getPeriodNames: function(format) {\r\n return PERIODS\r\n }\r\n};\r\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WatingList.vue?vue&type=style&index=0&id=5524b884&prod&lang=scss\"","/**\r\n * DevExtreme (esm/format_helper.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isString,\r\n isNumeric,\r\n isFunction,\r\n isDefined,\r\n isDate,\r\n isPlainObject\r\n} from \"./core/utils/type\";\r\nimport dateUtils from \"./core/utils/date\";\r\nimport numberLocalization from \"./localization/number\";\r\nimport dateLocalization from \"./localization/date\";\r\nimport dependencyInjector from \"./core/utils/dependency_injector\";\r\nimport \"./localization/currency\";\r\nexport default dependencyInjector({\r\n format: function(value, _format) {\r\n var formatIsValid = isString(_format) && \"\" !== _format || isPlainObject(_format) || isFunction(_format);\r\n var valueIsValid = isNumeric(value) || isDate(value);\r\n if (!formatIsValid || !valueIsValid) {\r\n return isDefined(value) ? value.toString() : \"\"\r\n }\r\n if (isFunction(_format)) {\r\n return _format(value)\r\n }\r\n if (isString(_format)) {\r\n _format = {\r\n type: _format\r\n }\r\n }\r\n if (isNumeric(value)) {\r\n return numberLocalization.format(value, _format)\r\n }\r\n if (isDate(value)) {\r\n return dateLocalization.format(value, _format)\r\n }\r\n },\r\n getTimeFormat: function(showSecond) {\r\n return showSecond ? \"longtime\" : \"shorttime\"\r\n },\r\n _normalizeFormat: function(format) {\r\n if (!Array.isArray(format)) {\r\n return format\r\n }\r\n if (1 === format.length) {\r\n return format[0]\r\n }\r\n return function(date) {\r\n return format.map((function(formatPart) {\r\n return dateLocalization.format(date, formatPart)\r\n })).join(\" \")\r\n }\r\n },\r\n getDateFormatByDifferences: function(dateDifferences, intervalFormat) {\r\n var resultFormat = [];\r\n var needSpecialSecondFormatter = intervalFormat && dateDifferences.millisecond && !(dateDifferences.year || dateDifferences.month || dateDifferences.day);\r\n if (needSpecialSecondFormatter) {\r\n resultFormat.push((function(date) {\r\n return date.getSeconds() + date.getMilliseconds() / 1e3 + \"s\"\r\n }))\r\n } else if (dateDifferences.millisecond) {\r\n resultFormat.push(\"millisecond\")\r\n }\r\n if (dateDifferences.hour || dateDifferences.minute || !needSpecialSecondFormatter && dateDifferences.second) {\r\n resultFormat.unshift(this.getTimeFormat(dateDifferences.second))\r\n }\r\n if (dateDifferences.year && dateDifferences.month && dateDifferences.day) {\r\n if (intervalFormat && \"month\" === intervalFormat) {\r\n return \"monthandyear\"\r\n } else {\r\n resultFormat.unshift(\"shortdate\");\r\n return this._normalizeFormat(resultFormat)\r\n }\r\n }\r\n if (dateDifferences.year && dateDifferences.month) {\r\n return \"monthandyear\"\r\n }\r\n if (dateDifferences.year && dateDifferences.quarter) {\r\n return \"quarterandyear\"\r\n }\r\n if (dateDifferences.year) {\r\n return \"year\"\r\n }\r\n if (dateDifferences.quarter) {\r\n return \"quarter\"\r\n }\r\n if (dateDifferences.month && dateDifferences.day) {\r\n if (intervalFormat) {\r\n resultFormat.unshift((function(date) {\r\n return dateLocalization.getMonthNames(\"abbreviated\")[date.getMonth()] + \" \" + dateLocalization.format(date, \"day\")\r\n }))\r\n } else {\r\n resultFormat.unshift(\"monthandday\")\r\n }\r\n return this._normalizeFormat(resultFormat)\r\n }\r\n if (dateDifferences.month) {\r\n return \"month\"\r\n }\r\n if (dateDifferences.day) {\r\n if (intervalFormat) {\r\n resultFormat.unshift(\"day\")\r\n } else {\r\n resultFormat.unshift((function(date) {\r\n return dateLocalization.format(date, \"dayofweek\") + \", \" + dateLocalization.format(date, \"day\")\r\n }))\r\n }\r\n return this._normalizeFormat(resultFormat)\r\n }\r\n return this._normalizeFormat(resultFormat)\r\n },\r\n getDateFormatByTicks: function(ticks) {\r\n var maxDiff;\r\n var currentDiff;\r\n var i;\r\n if (ticks.length > 1) {\r\n maxDiff = dateUtils.getDatesDifferences(ticks[0], ticks[1]);\r\n for (i = 1; i < ticks.length - 1; i++) {\r\n currentDiff = dateUtils.getDatesDifferences(ticks[i], ticks[i + 1]);\r\n if (maxDiff.count < currentDiff.count) {\r\n maxDiff = currentDiff\r\n }\r\n }\r\n } else {\r\n maxDiff = {\r\n year: true,\r\n month: true,\r\n day: true,\r\n hour: ticks[0].getHours() > 0,\r\n minute: ticks[0].getMinutes() > 0,\r\n second: ticks[0].getSeconds() > 0,\r\n millisecond: ticks[0].getMilliseconds() > 0\r\n }\r\n }\r\n var resultFormat = this.getDateFormatByDifferences(maxDiff);\r\n return resultFormat\r\n },\r\n getDateFormatByTickInterval: function(startValue, endValue, tickInterval) {\r\n var dateUnitInterval;\r\n var correctDateDifferences = function(dateDifferences, tickInterval, value) {\r\n switch (tickInterval) {\r\n case \"year\":\r\n case \"quarter\":\r\n dateDifferences.month = value;\r\n case \"month\":\r\n dateDifferences.day = value;\r\n case \"week\":\r\n case \"day\":\r\n dateDifferences.hour = value;\r\n case \"hour\":\r\n dateDifferences.minute = value;\r\n case \"minute\":\r\n dateDifferences.second = value;\r\n case \"second\":\r\n dateDifferences.millisecond = value\r\n }\r\n };\r\n tickInterval = isString(tickInterval) ? tickInterval.toLowerCase() : tickInterval;\r\n var dateDifferences = dateUtils.getDatesDifferences(startValue, endValue);\r\n if (startValue !== endValue) {\r\n ! function(differences, minDate, maxDate) {\r\n if (!maxDate.getMilliseconds() && maxDate.getSeconds()) {\r\n if (maxDate.getSeconds() - minDate.getSeconds() === 1) {\r\n differences.millisecond = true;\r\n differences.second = false\r\n }\r\n } else if (!maxDate.getSeconds() && maxDate.getMinutes()) {\r\n if (maxDate.getMinutes() - minDate.getMinutes() === 1) {\r\n differences.second = true;\r\n differences.minute = false\r\n }\r\n } else if (!maxDate.getMinutes() && maxDate.getHours()) {\r\n if (maxDate.getHours() - minDate.getHours() === 1) {\r\n differences.minute = true;\r\n differences.hour = false\r\n }\r\n } else if (!maxDate.getHours() && maxDate.getDate() > 1) {\r\n if (maxDate.getDate() - minDate.getDate() === 1) {\r\n differences.hour = true;\r\n differences.day = false\r\n }\r\n } else if (1 === maxDate.getDate() && maxDate.getMonth()) {\r\n if (maxDate.getMonth() - minDate.getMonth() === 1) {\r\n differences.day = true;\r\n differences.month = false\r\n }\r\n } else if (!maxDate.getMonth() && maxDate.getFullYear()) {\r\n if (maxDate.getFullYear() - minDate.getFullYear() === 1) {\r\n differences.month = true;\r\n differences.year = false\r\n }\r\n }\r\n }(dateDifferences, startValue > endValue ? endValue : startValue, startValue > endValue ? startValue : endValue)\r\n }\r\n dateUnitInterval = dateUtils.getDateUnitInterval(dateDifferences);\r\n correctDateDifferences(dateDifferences, dateUnitInterval, true);\r\n dateUnitInterval = dateUtils.getDateUnitInterval(tickInterval || \"second\");\r\n correctDateDifferences(dateDifferences, dateUnitInterval, false);\r\n dateDifferences[{\r\n week: \"day\"\r\n } [dateUnitInterval] || dateUnitInterval] = true;\r\n var resultFormat = this.getDateFormatByDifferences(dateDifferences);\r\n return resultFormat\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/ui/shared/filtering.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDate,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n map\r\n} from \"../../core/utils/iterator\";\r\nvar DEFAULT_DATE_INTERVAL = [\"year\", \"month\", \"day\"];\r\nvar DEFAULT_DATETIME_INTERVAL = [\"year\", \"month\", \"day\", \"hour\", \"minute\"];\r\nvar isDateType = function(dataType) {\r\n return \"date\" === dataType || \"datetime\" === dataType\r\n};\r\nvar getGroupInterval = function(column) {\r\n var index;\r\n var result = [];\r\n var dateIntervals = [\"year\", \"month\", \"day\", \"hour\", \"minute\", \"second\"];\r\n var groupInterval = column.headerFilter && column.headerFilter.groupInterval;\r\n var interval = \"quarter\" === groupInterval ? \"month\" : groupInterval;\r\n if (isDateType(column.dataType) && null !== groupInterval) {\r\n result = \"datetime\" === column.dataType ? DEFAULT_DATETIME_INTERVAL : DEFAULT_DATE_INTERVAL;\r\n index = dateIntervals.indexOf(interval);\r\n if (index >= 0) {\r\n result = dateIntervals.slice(0, index);\r\n result.push(groupInterval);\r\n return result\r\n }\r\n return result\r\n } else if (isDefined(groupInterval)) {\r\n return Array.isArray(groupInterval) ? groupInterval : [groupInterval]\r\n }\r\n};\r\nexport default (function() {\r\n var getFilterSelector = function(column, target) {\r\n var selector = column.dataField || column.selector;\r\n if (\"search\" === target) {\r\n selector = column.displayField || column.calculateDisplayValue || selector\r\n }\r\n return selector\r\n };\r\n var getFilterExpressionByRange = function(filterValue, target) {\r\n var endFilterValue;\r\n var startFilterExpression;\r\n var endFilterExpression;\r\n var selector = getFilterSelector(this, target);\r\n if (Array.isArray(filterValue) && isDefined(filterValue[0]) && isDefined(filterValue[1])) {\r\n startFilterExpression = [selector, \">=\", filterValue[0]];\r\n endFilterExpression = [selector, \"<=\", filterValue[1]];\r\n if (isDateType(this.dataType) && (date = filterValue[1], date.getHours() + date.getMinutes() + date.getSeconds() + date.getMilliseconds() < 1)) {\r\n endFilterValue = new Date(filterValue[1].getTime());\r\n if (\"date\" === this.dataType) {\r\n endFilterValue.setDate(filterValue[1].getDate() + 1)\r\n }\r\n endFilterExpression = [selector, \"<\", endFilterValue]\r\n }\r\n return [startFilterExpression, \"and\", endFilterExpression]\r\n }\r\n var date\r\n };\r\n var getFilterExpressionForDate = function(filterValue, selectedFilterOperation, target) {\r\n var dateStart;\r\n var dateEnd;\r\n var dateInterval;\r\n var values = function(dateValue) {\r\n if (isDate(dateValue)) {\r\n return [dateValue.getFullYear(), dateValue.getMonth(), dateValue.getDate(), dateValue.getHours(), dateValue.getMinutes(), dateValue.getSeconds()]\r\n }\r\n return map((\"\" + dateValue).split(\"/\"), (function(value, index) {\r\n return 1 === index ? Number(value) - 1 : Number(value)\r\n }))\r\n }(filterValue);\r\n var selector = getFilterSelector(this, target);\r\n if (\"headerFilter\" === target) {\r\n dateInterval = getGroupInterval(this)[values.length - 1]\r\n } else if (\"datetime\" === this.dataType) {\r\n dateInterval = \"minute\"\r\n }\r\n switch (dateInterval) {\r\n case \"year\":\r\n dateStart = new Date(values[0], 0, 1);\r\n dateEnd = new Date(values[0] + 1, 0, 1);\r\n break;\r\n case \"month\":\r\n dateStart = new Date(values[0], values[1], 1);\r\n dateEnd = new Date(values[0], values[1] + 1, 1);\r\n break;\r\n case \"quarter\":\r\n dateStart = new Date(values[0], 3 * values[1], 1);\r\n dateEnd = new Date(values[0], 3 * values[1] + 3, 1);\r\n break;\r\n case \"hour\":\r\n dateStart = new Date(values[0], values[1], values[2], values[3]);\r\n dateEnd = new Date(values[0], values[1], values[2], values[3] + 1);\r\n break;\r\n case \"minute\":\r\n dateStart = new Date(values[0], values[1], values[2], values[3], values[4]);\r\n dateEnd = new Date(values[0], values[1], values[2], values[3], values[4] + 1);\r\n break;\r\n case \"second\":\r\n dateStart = new Date(values[0], values[1], values[2], values[3], values[4], values[5]);\r\n dateEnd = new Date(values[0], values[1], values[2], values[3], values[4], values[5] + 1);\r\n break;\r\n default:\r\n dateStart = new Date(values[0], values[1], values[2]);\r\n dateEnd = new Date(values[0], values[1], values[2] + 1)\r\n }\r\n switch (selectedFilterOperation) {\r\n case \"<\":\r\n return [selector, \"<\", dateStart];\r\n case \"<=\":\r\n return [selector, \"<\", dateEnd];\r\n case \">\":\r\n return [selector, \">=\", dateEnd];\r\n case \">=\":\r\n return [selector, \">=\", dateStart];\r\n case \"<>\":\r\n return [\r\n [selector, \"<\", dateStart], \"or\", [selector, \">=\", dateEnd]\r\n ];\r\n default:\r\n return [\r\n [selector, \">=\", dateStart], \"and\", [selector, \"<\", dateEnd]\r\n ]\r\n }\r\n };\r\n var getFilterExpressionForNumber = function(filterValue, selectedFilterOperation, target) {\r\n var selector = getFilterSelector(this, target);\r\n var groupInterval = getGroupInterval(this);\r\n if (\"headerFilter\" === target && groupInterval && isDefined(filterValue)) {\r\n var values = (\"\" + filterValue).split(\"/\");\r\n var value = Number(values[values.length - 1]);\r\n var interval = groupInterval[values.length - 1];\r\n var startFilterValue = [selector, \">=\", value];\r\n var endFilterValue = [selector, \"<\", value + interval];\r\n var condition = [startFilterValue, \"and\", endFilterValue];\r\n return condition\r\n }\r\n return [selector, selectedFilterOperation || \"=\", filterValue]\r\n };\r\n return {\r\n defaultCalculateFilterExpression: function(filterValue, selectedFilterOperation, target) {\r\n var column = this;\r\n var selector = getFilterSelector(column, target);\r\n var isSearchByDisplayValue = column.calculateDisplayValue && \"search\" === target;\r\n var dataType = isSearchByDisplayValue && column.lookup && column.lookup.dataType || column.dataType;\r\n var filter = null;\r\n if ((\"headerFilter\" === target || \"filterBuilder\" === target) && null === filterValue) {\r\n filter = [selector, selectedFilterOperation || \"=\", null];\r\n if (\"string\" === dataType) {\r\n filter = [filter, \"=\" === selectedFilterOperation ? \"or\" : \"and\", [selector, selectedFilterOperation || \"=\", \"\"]]\r\n }\r\n } else if (\"string\" === dataType && (!column.lookup || isSearchByDisplayValue)) {\r\n filter = [selector, selectedFilterOperation || \"contains\", filterValue]\r\n } else if (\"between\" === selectedFilterOperation) {\r\n return getFilterExpressionByRange.apply(column, [filterValue, target])\r\n } else if (isDateType(dataType) && isDefined(filterValue)) {\r\n return getFilterExpressionForDate.apply(column, arguments)\r\n } else if (\"number\" === dataType) {\r\n return getFilterExpressionForNumber.apply(column, arguments)\r\n } else {\r\n filter = [selector, selectedFilterOperation || \"=\", filterValue]\r\n }\r\n return filter\r\n },\r\n getGroupInterval: getGroupInterval\r\n }\r\n}());\r\n","/**\r\n * DevExtreme (esm/localization/ldml/date.parser.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n escapeRegExp\r\n} from \"../../core/utils/common\";\r\nimport {\r\n logger\r\n} from \"../../core/utils/console\";\r\nvar FORMAT_TYPES = {\r\n 3: \"abbreviated\",\r\n 4: \"wide\",\r\n 5: \"narrow\"\r\n};\r\nvar monthRegExpGenerator = function(count, dateParts) {\r\n if (count > 2) {\r\n return Object.keys(FORMAT_TYPES).map((function(count) {\r\n return [\"format\", \"standalone\"].map((function(type) {\r\n return dateParts.getMonthNames(FORMAT_TYPES[count], type).join(\"|\")\r\n })).join(\"|\")\r\n })).join(\"|\")\r\n }\r\n return 2 === count ? \"1[012]|0?[1-9]\" : \"0??[1-9]|1[012]\"\r\n};\r\nvar PATTERN_REGEXPS = {\r\n \":\": function(count, dateParts) {\r\n var countSuffix = count > 1 ? \"{\".concat(count, \"}\") : \"\";\r\n var timeSeparator = escapeRegExp(dateParts.getTimeSeparator());\r\n \":\" !== timeSeparator && (timeSeparator = \"\".concat(timeSeparator, \"|:\"));\r\n return \"\".concat(timeSeparator).concat(countSuffix)\r\n },\r\n y: function(count) {\r\n return 2 === count ? \"[0-9]{\".concat(count, \"}\") : \"[0-9]+?\"\r\n },\r\n M: monthRegExpGenerator,\r\n L: monthRegExpGenerator,\r\n Q: function(count, dateParts) {\r\n if (count > 2) {\r\n return dateParts.getQuarterNames(FORMAT_TYPES[count], \"format\").join(\"|\")\r\n }\r\n return \"0?[1-4]\"\r\n },\r\n E: function(count, dateParts) {\r\n return \"\\\\D*\"\r\n },\r\n a: function(count, dateParts) {\r\n return dateParts.getPeriodNames(FORMAT_TYPES[count < 3 ? 3 : count], \"format\").join(\"|\")\r\n },\r\n d: function(count) {\r\n return 2 === count ? \"3[01]|[12][0-9]|0?[1-9]\" : \"0??[1-9]|[12][0-9]|3[01]\"\r\n },\r\n H: function(count) {\r\n return 2 === count ? \"2[0-3]|1[0-9]|0?[0-9]\" : \"0??[0-9]|1[0-9]|2[0-3]\"\r\n },\r\n h: function(count) {\r\n return 2 === count ? \"1[012]|0?[1-9]\" : \"0??[1-9]|1[012]\"\r\n },\r\n m: function(count) {\r\n return 2 === count ? \"[1-5][0-9]|0?[0-9]\" : \"0??[0-9]|[1-5][0-9]\"\r\n },\r\n s: function(count) {\r\n return 2 === count ? \"[1-5][0-9]|0?[0-9]\" : \"0??[0-9]|[1-5][0-9]\"\r\n },\r\n S: function(count) {\r\n return \"[0-9]{1,\".concat(count, \"}\")\r\n },\r\n w: function(count) {\r\n return 2 === count ? \"[1-5][0-9]|0?[0-9]\" : \"0??[0-9]|[1-5][0-9]\"\r\n }\r\n};\r\nvar parseNumber = Number;\r\nvar caseInsensitiveIndexOf = function(array, value) {\r\n return array.map(item => item.toLowerCase()).indexOf(value.toLowerCase())\r\n};\r\nvar monthPatternParser = function(text, count, dateParts) {\r\n if (count > 2) {\r\n return [\"format\", \"standalone\"].map((function(type) {\r\n return Object.keys(FORMAT_TYPES).map((function(count) {\r\n var monthNames = dateParts.getMonthNames(FORMAT_TYPES[count], type);\r\n return caseInsensitiveIndexOf(monthNames, text)\r\n }))\r\n })).reduce((function(a, b) {\r\n return a.concat(b)\r\n })).filter((function(index) {\r\n return index >= 0\r\n }))[0]\r\n }\r\n return parseNumber(text) - 1\r\n};\r\nvar PATTERN_PARSERS = {\r\n y: function(text, count) {\r\n var year = parseNumber(text);\r\n if (2 === count) {\r\n return year < 30 ? 2e3 + year : 1900 + year\r\n }\r\n return year\r\n },\r\n M: monthPatternParser,\r\n L: monthPatternParser,\r\n Q: function(text, count, dateParts) {\r\n if (count > 2) {\r\n return dateParts.getQuarterNames(FORMAT_TYPES[count], \"format\").indexOf(text)\r\n }\r\n return parseNumber(text) - 1\r\n },\r\n E: function(text, count, dateParts) {\r\n var dayNames = dateParts.getDayNames(FORMAT_TYPES[count < 3 ? 3 : count], \"format\");\r\n return caseInsensitiveIndexOf(dayNames, text)\r\n },\r\n a: function(text, count, dateParts) {\r\n var periodNames = dateParts.getPeriodNames(FORMAT_TYPES[count < 3 ? 3 : count], \"format\");\r\n return caseInsensitiveIndexOf(periodNames, text)\r\n },\r\n d: parseNumber,\r\n H: parseNumber,\r\n h: parseNumber,\r\n m: parseNumber,\r\n s: parseNumber,\r\n S: function(text, count) {\r\n count = Math.max(count, 3);\r\n text = text.slice(0, 3);\r\n while (count < 3) {\r\n text += \"0\";\r\n count++\r\n }\r\n return parseNumber(text)\r\n }\r\n};\r\nvar ORDERED_PATTERNS = [\"y\", \"M\", \"d\", \"h\", \"m\", \"s\", \"S\"];\r\nvar PATTERN_SETTERS = {\r\n y: \"setFullYear\",\r\n M: \"setMonth\",\r\n L: \"setMonth\",\r\n a: function(date, value, datePartValues) {\r\n var hours = date.getHours();\r\n var hourPartValue = datePartValues.h;\r\n if (void 0 !== hourPartValue && hourPartValue !== hours) {\r\n hours--\r\n }\r\n if (!value && 12 === hours) {\r\n hours = 0\r\n } else if (value && 12 !== hours) {\r\n hours += 12\r\n }\r\n date.setHours(hours)\r\n },\r\n d: \"setDate\",\r\n H: \"setHours\",\r\n h: \"setHours\",\r\n m: \"setMinutes\",\r\n s: \"setSeconds\",\r\n S: \"setMilliseconds\"\r\n};\r\nvar getSameCharCount = function(text, index) {\r\n var char = text[index];\r\n if (!char) {\r\n return 0\r\n }\r\n var count = 0;\r\n do {\r\n index++;\r\n count++\r\n } while (text[index] === char);\r\n return count\r\n};\r\nvar createPattern = function(char, count) {\r\n var result = \"\";\r\n for (var i = 0; i < count; i++) {\r\n result += char\r\n }\r\n return result\r\n};\r\nexport var getRegExpInfo = function(format, dateParts) {\r\n var regexpText = \"\";\r\n var stubText = \"\";\r\n var isEscaping;\r\n var patterns = [];\r\n var addPreviousStub = function() {\r\n if (stubText) {\r\n patterns.push(\"'\".concat(stubText, \"'\"));\r\n regexpText += \"\".concat(escapeRegExp(stubText), \")\");\r\n stubText = \"\"\r\n }\r\n };\r\n for (var i = 0; i < format.length; i++) {\r\n var char = format[i];\r\n var isEscapeChar = \"'\" === char;\r\n var regexpPart = PATTERN_REGEXPS[char];\r\n if (isEscapeChar) {\r\n isEscaping = !isEscaping;\r\n if (\"'\" !== format[i - 1]) {\r\n continue\r\n }\r\n }\r\n if (regexpPart && !isEscaping) {\r\n var count = getSameCharCount(format, i);\r\n var pattern = createPattern(char, count);\r\n addPreviousStub();\r\n patterns.push(pattern);\r\n regexpText += \"(\".concat(regexpPart(count, dateParts), \")\");\r\n i += count - 1\r\n } else {\r\n if (!stubText) {\r\n regexpText += \"(\"\r\n }\r\n stubText += char\r\n }\r\n }\r\n addPreviousStub();\r\n if (!isPossibleForParsingFormat(patterns)) {\r\n logger.warn(\"The following format may be parsed incorrectly: \".concat(format, \".\"))\r\n }\r\n return {\r\n patterns: patterns,\r\n regexp: new RegExp(\"^\".concat(regexpText, \"$\"), \"i\")\r\n }\r\n};\r\nvar digitFieldSymbols = [\"d\", \"H\", \"h\", \"m\", \"s\", \"w\", \"M\", \"L\", \"Q\"];\r\nexport var isPossibleForParsingFormat = function(patterns) {\r\n var isDigitPattern = pattern => {\r\n if (!pattern) {\r\n return false\r\n }\r\n var char = pattern[0];\r\n return [\"y\", \"S\"].includes(char) || digitFieldSymbols.includes(char) && pattern.length < 3\r\n };\r\n var possibleForParsing = true;\r\n var ambiguousDigitPatternsCount = 0;\r\n return patterns.every((pattern, index, patterns) => {\r\n if (isDigitPattern(pattern)) {\r\n if ((pattern => \"S\" !== pattern[0] && 2 !== pattern.length)(pattern)) {\r\n possibleForParsing = ++ambiguousDigitPatternsCount < 2\r\n }\r\n if (!isDigitPattern(patterns[index + 1])) {\r\n ambiguousDigitPatternsCount = 0\r\n }\r\n }\r\n return possibleForParsing\r\n })\r\n};\r\nexport var getPatternSetters = function() {\r\n return PATTERN_SETTERS\r\n};\r\nvar setPatternPart = function(date, pattern, text, dateParts, datePartValues) {\r\n var patternChar = pattern[0];\r\n var partSetter = PATTERN_SETTERS[patternChar];\r\n var partParser = PATTERN_PARSERS[patternChar];\r\n if (partSetter && partParser) {\r\n var value = partParser(text, pattern.length, dateParts);\r\n datePartValues[pattern] = value;\r\n if (date[partSetter]) {\r\n date[partSetter](value)\r\n } else {\r\n partSetter(date, value, datePartValues)\r\n }\r\n }\r\n};\r\nvar setPatternPartFromNow = function(date, pattern, now) {\r\n var setterName = PATTERN_SETTERS[pattern];\r\n var getterName = \"g\" + setterName.substr(1);\r\n var value = now[getterName]();\r\n date[setterName](value)\r\n};\r\nvar getShortPatterns = function(fullPatterns) {\r\n return fullPatterns.map((function(pattern) {\r\n if (\"'\" === pattern[0]) {\r\n return \"\"\r\n } else {\r\n return \"H\" === pattern[0] ? \"h\" : pattern[0]\r\n }\r\n }))\r\n};\r\nvar getMaxOrderedPatternIndex = function(patterns) {\r\n var indexes = patterns.map((function(pattern) {\r\n return ORDERED_PATTERNS.indexOf(pattern)\r\n }));\r\n return Math.max.apply(Math, indexes)\r\n};\r\nvar getOrderedFormatPatterns = function(formatPatterns) {\r\n var otherPatterns = formatPatterns.filter((function(pattern) {\r\n return ORDERED_PATTERNS.indexOf(pattern) < 0\r\n }));\r\n return ORDERED_PATTERNS.concat(otherPatterns)\r\n};\r\nexport var getParser = function(format, dateParts) {\r\n var regExpInfo = getRegExpInfo(format, dateParts);\r\n return function(text) {\r\n var regExpResult = regExpInfo.regexp.exec(text);\r\n if (regExpResult) {\r\n var now = new Date;\r\n var date = new Date(now.getFullYear(), 0, 1);\r\n var formatPatterns = getShortPatterns(regExpInfo.patterns);\r\n var maxPatternIndex = getMaxOrderedPatternIndex(formatPatterns);\r\n var orderedFormatPatterns = getOrderedFormatPatterns(formatPatterns);\r\n var datePartValues = {};\r\n orderedFormatPatterns.forEach((function(pattern, index) {\r\n if (!pattern || index < ORDERED_PATTERNS.length && index > maxPatternIndex) {\r\n return\r\n }\r\n var patternIndex = formatPatterns.indexOf(pattern);\r\n if (patternIndex >= 0) {\r\n var regExpPattern = regExpInfo.patterns[patternIndex];\r\n var regExpText = regExpResult[patternIndex + 1];\r\n setPatternPart(date, regExpPattern, regExpText, dateParts, datePartValues)\r\n } else {\r\n setPatternPartFromNow(date, pattern, now)\r\n }\r\n }));\r\n return date\r\n }\r\n return null\r\n }\r\n};\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\"div\")}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShortKey.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShortKey.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ShortKey.vue?vue&type=template&id=36e57d30\"\nimport script from \"./ShortKey.vue?vue&type=script&lang=js\"\nexport * from \"./ShortKey.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","/*!\n\nJSZip v3.10.1 - A JavaScript class for generating and reading zip files\n\n\n(c) 2009-2016 Stuart Knightley \nDual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown.\n\nJSZip uses the library pako released under the MIT license :\nhttps://github.com/nodeca/pako/blob/main/LICENSE\n*/\n\n!function(e){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=e();else if(\"function\"==typeof define&&define.amd)define([],e);else{(\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this).JSZip=e()}}(function(){return function s(a,o,h){function u(r,e){if(!o[r]){if(!a[r]){var t=\"function\"==typeof require&&require;if(!e&&t)return t(r,!0);if(l)return l(r,!0);var n=new Error(\"Cannot find module '\"+r+\"'\");throw n.code=\"MODULE_NOT_FOUND\",n}var i=o[r]={exports:{}};a[r][0].call(i.exports,function(e){var t=a[r][1][e];return u(t||e)},i,i.exports,s,a,o,h)}return o[r].exports}for(var l=\"function\"==typeof require&&require,e=0;e>2,s=(3&t)<<4|r>>4,a=1>6:64,o=2>4,r=(15&i)<<4|(s=p.indexOf(e.charAt(o++)))>>2,n=(3&s)<<6|(a=p.indexOf(e.charAt(o++))),l[h++]=t,64!==s&&(l[h++]=r),64!==a&&(l[h++]=n);return l}},{\"./support\":30,\"./utils\":32}],2:[function(e,t,r){\"use strict\";var n=e(\"./external\"),i=e(\"./stream/DataWorker\"),s=e(\"./stream/Crc32Probe\"),a=e(\"./stream/DataLengthProbe\");function o(e,t,r,n,i){this.compressedSize=e,this.uncompressedSize=t,this.crc32=r,this.compression=n,this.compressedContent=i}o.prototype={getContentWorker:function(){var e=new i(n.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new a(\"data_length\")),t=this;return e.on(\"end\",function(){if(this.streamInfo.data_length!==t.uncompressedSize)throw new Error(\"Bug : uncompressed data size mismatch\")}),e},getCompressedWorker:function(){return new i(n.Promise.resolve(this.compressedContent)).withStreamInfo(\"compressedSize\",this.compressedSize).withStreamInfo(\"uncompressedSize\",this.uncompressedSize).withStreamInfo(\"crc32\",this.crc32).withStreamInfo(\"compression\",this.compression)}},o.createWorkerFrom=function(e,t,r){return e.pipe(new s).pipe(new a(\"uncompressedSize\")).pipe(t.compressWorker(r)).pipe(new a(\"compressedSize\")).withStreamInfo(\"compression\",t)},t.exports=o},{\"./external\":6,\"./stream/Crc32Probe\":25,\"./stream/DataLengthProbe\":26,\"./stream/DataWorker\":27}],3:[function(e,t,r){\"use strict\";var n=e(\"./stream/GenericWorker\");r.STORE={magic:\"\\0\\0\",compressWorker:function(){return new n(\"STORE compression\")},uncompressWorker:function(){return new n(\"STORE decompression\")}},r.DEFLATE=e(\"./flate\")},{\"./flate\":7,\"./stream/GenericWorker\":28}],4:[function(e,t,r){\"use strict\";var n=e(\"./utils\");var o=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t}();t.exports=function(e,t){return void 0!==e&&e.length?\"string\"!==n.getTypeOf(e)?function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a>>8^i[255&(e^t[a])];return-1^e}(0|t,e,e.length,0):function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a>>8^i[255&(e^t.charCodeAt(a))];return-1^e}(0|t,e,e.length,0):0}},{\"./utils\":32}],5:[function(e,t,r){\"use strict\";r.base64=!1,r.binary=!1,r.dir=!1,r.createFolders=!0,r.date=null,r.compression=null,r.compressionOptions=null,r.comment=null,r.unixPermissions=null,r.dosPermissions=null},{}],6:[function(e,t,r){\"use strict\";var n=null;n=\"undefined\"!=typeof Promise?Promise:e(\"lie\"),t.exports={Promise:n}},{lie:37}],7:[function(e,t,r){\"use strict\";var n=\"undefined\"!=typeof Uint8Array&&\"undefined\"!=typeof Uint16Array&&\"undefined\"!=typeof Uint32Array,i=e(\"pako\"),s=e(\"./utils\"),a=e(\"./stream/GenericWorker\"),o=n?\"uint8array\":\"array\";function h(e,t){a.call(this,\"FlateWorker/\"+e),this._pako=null,this._pakoAction=e,this._pakoOptions=t,this.meta={}}r.magic=\"\\b\\0\",s.inherits(h,a),h.prototype.processChunk=function(e){this.meta=e.meta,null===this._pako&&this._createPako(),this._pako.push(s.transformTo(o,e.data),!1)},h.prototype.flush=function(){a.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},h.prototype.cleanUp=function(){a.prototype.cleanUp.call(this),this._pako=null},h.prototype._createPako=function(){this._pako=new i[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var t=this;this._pako.onData=function(e){t.push({data:e,meta:t.meta})}},r.compressWorker=function(e){return new h(\"Deflate\",e)},r.uncompressWorker=function(){return new h(\"Inflate\",{})}},{\"./stream/GenericWorker\":28,\"./utils\":32,pako:38}],8:[function(e,t,r){\"use strict\";function A(e,t){var r,n=\"\";for(r=0;r>>=8;return n}function n(e,t,r,n,i,s){var a,o,h=e.file,u=e.compression,l=s!==O.utf8encode,f=I.transformTo(\"string\",s(h.name)),c=I.transformTo(\"string\",O.utf8encode(h.name)),d=h.comment,p=I.transformTo(\"string\",s(d)),m=I.transformTo(\"string\",O.utf8encode(d)),_=c.length!==h.name.length,g=m.length!==d.length,b=\"\",v=\"\",y=\"\",w=h.dir,k=h.date,x={crc32:0,compressedSize:0,uncompressedSize:0};t&&!r||(x.crc32=e.crc32,x.compressedSize=e.compressedSize,x.uncompressedSize=e.uncompressedSize);var S=0;t&&(S|=8),l||!_&&!g||(S|=2048);var z=0,C=0;w&&(z|=16),\"UNIX\"===i?(C=798,z|=function(e,t){var r=e;return e||(r=t?16893:33204),(65535&r)<<16}(h.unixPermissions,w)):(C=20,z|=function(e){return 63&(e||0)}(h.dosPermissions)),a=k.getUTCHours(),a<<=6,a|=k.getUTCMinutes(),a<<=5,a|=k.getUTCSeconds()/2,o=k.getUTCFullYear()-1980,o<<=4,o|=k.getUTCMonth()+1,o<<=5,o|=k.getUTCDate(),_&&(v=A(1,1)+A(B(f),4)+c,b+=\"up\"+A(v.length,2)+v),g&&(y=A(1,1)+A(B(p),4)+m,b+=\"uc\"+A(y.length,2)+y);var E=\"\";return E+=\"\\n\\0\",E+=A(S,2),E+=u.magic,E+=A(a,2),E+=A(o,2),E+=A(x.crc32,4),E+=A(x.compressedSize,4),E+=A(x.uncompressedSize,4),E+=A(f.length,2),E+=A(b.length,2),{fileRecord:R.LOCAL_FILE_HEADER+E+f+b,dirRecord:R.CENTRAL_FILE_HEADER+A(C,2)+E+A(p.length,2)+\"\\0\\0\\0\\0\"+A(z,4)+A(n,4)+f+b+p}}var I=e(\"../utils\"),i=e(\"../stream/GenericWorker\"),O=e(\"../utf8\"),B=e(\"../crc32\"),R=e(\"../signature\");function s(e,t,r,n){i.call(this,\"ZipFileWorker\"),this.bytesWritten=0,this.zipComment=t,this.zipPlatform=r,this.encodeFileName=n,this.streamFiles=e,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}I.inherits(s,i),s.prototype.push=function(e){var t=e.meta.percent||0,r=this.entriesCount,n=this._sources.length;this.accumulate?this.contentBuffer.push(e):(this.bytesWritten+=e.data.length,i.prototype.push.call(this,{data:e.data,meta:{currentFile:this.currentFile,percent:r?(t+100*(r-n-1))/r:100}}))},s.prototype.openedSource=function(e){this.currentSourceOffset=this.bytesWritten,this.currentFile=e.file.name;var t=this.streamFiles&&!e.file.dir;if(t){var r=n(e,t,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:r.fileRecord,meta:{percent:0}})}else this.accumulate=!0},s.prototype.closedSource=function(e){this.accumulate=!1;var t=this.streamFiles&&!e.file.dir,r=n(e,t,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(r.dirRecord),t)this.push({data:function(e){return R.DATA_DESCRIPTOR+A(e.crc32,4)+A(e.compressedSize,4)+A(e.uncompressedSize,4)}(e),meta:{percent:100}});else for(this.push({data:r.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},s.prototype.flush=function(){for(var e=this.bytesWritten,t=0;t=this.index;t--)r=(r<<8)+this.byteAt(t);return this.index+=e,r},readString:function(e){return n.transformTo(\"string\",this.readData(e))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var e=this.readInt(4);return new Date(Date.UTC(1980+(e>>25&127),(e>>21&15)-1,e>>16&31,e>>11&31,e>>5&63,(31&e)<<1))}},t.exports=i},{\"../utils\":32}],19:[function(e,t,r){\"use strict\";var n=e(\"./Uint8ArrayReader\");function i(e){n.call(this,e)}e(\"../utils\").inherits(i,n),i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./Uint8ArrayReader\":21}],20:[function(e,t,r){\"use strict\";var n=e(\"./DataReader\");function i(e){n.call(this,e)}e(\"../utils\").inherits(i,n),i.prototype.byteAt=function(e){return this.data.charCodeAt(this.zero+e)},i.prototype.lastIndexOfSignature=function(e){return this.data.lastIndexOf(e)-this.zero},i.prototype.readAndCheckSignature=function(e){return e===this.readData(4)},i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./DataReader\":18}],21:[function(e,t,r){\"use strict\";var n=e(\"./ArrayReader\");function i(e){n.call(this,e)}e(\"../utils\").inherits(i,n),i.prototype.readData=function(e){if(this.checkOffset(e),0===e)return new Uint8Array(0);var t=this.data.subarray(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./ArrayReader\":17}],22:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"../support\"),s=e(\"./ArrayReader\"),a=e(\"./StringReader\"),o=e(\"./NodeBufferReader\"),h=e(\"./Uint8ArrayReader\");t.exports=function(e){var t=n.getTypeOf(e);return n.checkSupport(t),\"string\"!==t||i.uint8array?\"nodebuffer\"===t?new o(e):i.uint8array?new h(n.transformTo(\"uint8array\",e)):new s(n.transformTo(\"array\",e)):new a(e)}},{\"../support\":30,\"../utils\":32,\"./ArrayReader\":17,\"./NodeBufferReader\":19,\"./StringReader\":20,\"./Uint8ArrayReader\":21}],23:[function(e,t,r){\"use strict\";r.LOCAL_FILE_HEADER=\"PK\u0003\u0004\",r.CENTRAL_FILE_HEADER=\"PK\u0001\u0002\",r.CENTRAL_DIRECTORY_END=\"PK\u0005\u0006\",r.ZIP64_CENTRAL_DIRECTORY_LOCATOR=\"PK\u0006\u0007\",r.ZIP64_CENTRAL_DIRECTORY_END=\"PK\u0006\u0006\",r.DATA_DESCRIPTOR=\"PK\u0007\\b\"},{}],24:[function(e,t,r){\"use strict\";var n=e(\"./GenericWorker\"),i=e(\"../utils\");function s(e){n.call(this,\"ConvertWorker to \"+e),this.destType=e}i.inherits(s,n),s.prototype.processChunk=function(e){this.push({data:i.transformTo(this.destType,e.data),meta:e.meta})},t.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],25:[function(e,t,r){\"use strict\";var n=e(\"./GenericWorker\"),i=e(\"../crc32\");function s(){n.call(this,\"Crc32Probe\"),this.withStreamInfo(\"crc32\",0)}e(\"../utils\").inherits(s,n),s.prototype.processChunk=function(e){this.streamInfo.crc32=i(e.data,this.streamInfo.crc32||0),this.push(e)},t.exports=s},{\"../crc32\":4,\"../utils\":32,\"./GenericWorker\":28}],26:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"./GenericWorker\");function s(e){i.call(this,\"DataLengthProbe for \"+e),this.propName=e,this.withStreamInfo(e,0)}n.inherits(s,i),s.prototype.processChunk=function(e){if(e){var t=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=t+e.data.length}i.prototype.processChunk.call(this,e)},t.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],27:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"./GenericWorker\");function s(e){i.call(this,\"DataWorker\");var t=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type=\"\",this._tickScheduled=!1,e.then(function(e){t.dataIsReady=!0,t.data=e,t.max=e&&e.length||0,t.type=n.getTypeOf(e),t.isPaused||t._tickAndRepeat()},function(e){t.error(e)})}n.inherits(s,i),s.prototype.cleanUp=function(){i.prototype.cleanUp.call(this),this.data=null},s.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,n.delay(this._tickAndRepeat,[],this)),!0)},s.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(n.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},s.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var e=null,t=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case\"string\":e=this.data.substring(this.index,t);break;case\"uint8array\":e=this.data.subarray(this.index,t);break;case\"array\":case\"nodebuffer\":e=this.data.slice(this.index,t)}return this.index=t,this.push({data:e,meta:{percent:this.max?this.index/this.max*100:0}})},t.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],28:[function(e,t,r){\"use strict\";function n(e){this.name=e||\"default\",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}n.prototype={push:function(e){this.emit(\"data\",e)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit(\"end\"),this.cleanUp(),this.isFinished=!0}catch(e){this.emit(\"error\",e)}return!0},error:function(e){return!this.isFinished&&(this.isPaused?this.generatedError=e:(this.isFinished=!0,this.emit(\"error\",e),this.previous&&this.previous.error(e),this.cleanUp()),!0)},on:function(e,t){return this._listeners[e].push(t),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(e,t){if(this._listeners[e])for(var r=0;r \"+e:e}},t.exports=n},{}],29:[function(e,t,r){\"use strict\";var h=e(\"../utils\"),i=e(\"./ConvertWorker\"),s=e(\"./GenericWorker\"),u=e(\"../base64\"),n=e(\"../support\"),a=e(\"../external\"),o=null;if(n.nodestream)try{o=e(\"../nodejs/NodejsStreamOutputAdapter\")}catch(e){}function l(e,o){return new a.Promise(function(t,r){var n=[],i=e._internalType,s=e._outputType,a=e._mimeType;e.on(\"data\",function(e,t){n.push(e),o&&o(t)}).on(\"error\",function(e){n=[],r(e)}).on(\"end\",function(){try{var e=function(e,t,r){switch(e){case\"blob\":return h.newBlob(h.transformTo(\"arraybuffer\",t),r);case\"base64\":return u.encode(t);default:return h.transformTo(e,t)}}(s,function(e,t){var r,n=0,i=null,s=0;for(r=0;r>>6:(r<65536?t[s++]=224|r>>>12:(t[s++]=240|r>>>18,t[s++]=128|r>>>12&63),t[s++]=128|r>>>6&63),t[s++]=128|63&r);return t}(e)},s.utf8decode=function(e){return h.nodebuffer?o.transformTo(\"nodebuffer\",e).toString(\"utf-8\"):function(e){var t,r,n,i,s=e.length,a=new Array(2*s);for(t=r=0;t>10&1023,a[r++]=56320|1023&n)}return a.length!==r&&(a.subarray?a=a.subarray(0,r):a.length=r),o.applyFromCharCode(a)}(e=o.transformTo(h.uint8array?\"uint8array\":\"array\",e))},o.inherits(a,n),a.prototype.processChunk=function(e){var t=o.transformTo(h.uint8array?\"uint8array\":\"array\",e.data);if(this.leftOver&&this.leftOver.length){if(h.uint8array){var r=t;(t=new Uint8Array(r.length+this.leftOver.length)).set(this.leftOver,0),t.set(r,this.leftOver.length)}else t=this.leftOver.concat(t);this.leftOver=null}var n=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0?t:0===r?t:r+u[e[r]]>t?r:t}(t),i=t;n!==t.length&&(h.uint8array?(i=t.subarray(0,n),this.leftOver=t.subarray(n,t.length)):(i=t.slice(0,n),this.leftOver=t.slice(n,t.length))),this.push({data:s.utf8decode(i),meta:e.meta})},a.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:s.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},s.Utf8DecodeWorker=a,o.inherits(l,n),l.prototype.processChunk=function(e){this.push({data:s.utf8encode(e.data),meta:e.meta})},s.Utf8EncodeWorker=l},{\"./nodejsUtils\":14,\"./stream/GenericWorker\":28,\"./support\":30,\"./utils\":32}],32:[function(e,t,a){\"use strict\";var o=e(\"./support\"),h=e(\"./base64\"),r=e(\"./nodejsUtils\"),u=e(\"./external\");function n(e){return e}function l(e,t){for(var r=0;r>8;this.dir=!!(16&this.externalFileAttributes),0==e&&(this.dosPermissions=63&this.externalFileAttributes),3==e&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||\"/\"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var e=n(this.extraFields[1].value);this.uncompressedSize===s.MAX_VALUE_32BITS&&(this.uncompressedSize=e.readInt(8)),this.compressedSize===s.MAX_VALUE_32BITS&&(this.compressedSize=e.readInt(8)),this.localHeaderOffset===s.MAX_VALUE_32BITS&&(this.localHeaderOffset=e.readInt(8)),this.diskNumberStart===s.MAX_VALUE_32BITS&&(this.diskNumberStart=e.readInt(4))}},readExtraFields:function(e){var t,r,n,i=e.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});e.index+4>>6:(r<65536?t[s++]=224|r>>>12:(t[s++]=240|r>>>18,t[s++]=128|r>>>12&63),t[s++]=128|r>>>6&63),t[s++]=128|63&r);return t},r.buf2binstring=function(e){return l(e,e.length)},r.binstring2buf=function(e){for(var t=new h.Buf8(e.length),r=0,n=t.length;r>10&1023,o[n++]=56320|1023&i)}return l(o,n)},r.utf8border=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0?t:0===r?t:r+u[e[r]]>t?r:t}},{\"./common\":41}],43:[function(e,t,r){\"use strict\";t.exports=function(e,t,r,n){for(var i=65535&e|0,s=e>>>16&65535|0,a=0;0!==r;){for(r-=a=2e3>>1:e>>>1;t[r]=e}return t}();t.exports=function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a>>8^i[255&(e^t[a])];return-1^e}},{}],46:[function(e,t,r){\"use strict\";var h,c=e(\"../utils/common\"),u=e(\"./trees\"),d=e(\"./adler32\"),p=e(\"./crc32\"),n=e(\"./messages\"),l=0,f=4,m=0,_=-2,g=-1,b=4,i=2,v=8,y=9,s=286,a=30,o=19,w=2*s+1,k=15,x=3,S=258,z=S+x+1,C=42,E=113,A=1,I=2,O=3,B=4;function R(e,t){return e.msg=n[t],t}function T(e){return(e<<1)-(4e.avail_out&&(r=e.avail_out),0!==r&&(c.arraySet(e.output,t.pending_buf,t.pending_out,r,e.next_out),e.next_out+=r,t.pending_out+=r,e.total_out+=r,e.avail_out-=r,t.pending-=r,0===t.pending&&(t.pending_out=0))}function N(e,t){u._tr_flush_block(e,0<=e.block_start?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,F(e.strm)}function U(e,t){e.pending_buf[e.pending++]=t}function P(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t}function L(e,t){var r,n,i=e.max_chain_length,s=e.strstart,a=e.prev_length,o=e.nice_match,h=e.strstart>e.w_size-z?e.strstart-(e.w_size-z):0,u=e.window,l=e.w_mask,f=e.prev,c=e.strstart+S,d=u[s+a-1],p=u[s+a];e.prev_length>=e.good_match&&(i>>=2),o>e.lookahead&&(o=e.lookahead);do{if(u[(r=t)+a]===p&&u[r+a-1]===d&&u[r]===u[s]&&u[++r]===u[s+1]){s+=2,r++;do{}while(u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&sh&&0!=--i);return a<=e.lookahead?a:e.lookahead}function j(e){var t,r,n,i,s,a,o,h,u,l,f=e.w_size;do{if(i=e.window_size-e.lookahead-e.strstart,e.strstart>=f+(f-z)){for(c.arraySet(e.window,e.window,f,f,0),e.match_start-=f,e.strstart-=f,e.block_start-=f,t=r=e.hash_size;n=e.head[--t],e.head[t]=f<=n?n-f:0,--r;);for(t=r=f;n=e.prev[--t],e.prev[t]=f<=n?n-f:0,--r;);i+=f}if(0===e.strm.avail_in)break;if(a=e.strm,o=e.window,h=e.strstart+e.lookahead,u=i,l=void 0,l=a.avail_in,u=x)for(s=e.strstart-e.insert,e.ins_h=e.window[s],e.ins_h=(e.ins_h<=x&&(e.ins_h=(e.ins_h<=x)if(n=u._tr_tally(e,e.strstart-e.match_start,e.match_length-x),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=x){for(e.match_length--;e.strstart++,e.ins_h=(e.ins_h<=x&&(e.ins_h=(e.ins_h<=x&&e.match_length<=e.prev_length){for(i=e.strstart+e.lookahead-x,n=u._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-x),e.lookahead-=e.prev_length-1,e.prev_length-=2;++e.strstart<=i&&(e.ins_h=(e.ins_h<e.pending_buf_size-5&&(r=e.pending_buf_size-5);;){if(e.lookahead<=1){if(j(e),0===e.lookahead&&t===l)return A;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var n=e.block_start+r;if((0===e.strstart||e.strstart>=n)&&(e.lookahead=e.strstart-n,e.strstart=n,N(e,!1),0===e.strm.avail_out))return A;if(e.strstart-e.block_start>=e.w_size-z&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):(e.strstart>e.block_start&&(N(e,!1),e.strm.avail_out),A)}),new M(4,4,8,4,Z),new M(4,5,16,8,Z),new M(4,6,32,32,Z),new M(4,4,16,16,W),new M(8,16,32,32,W),new M(8,16,128,128,W),new M(8,32,128,256,W),new M(32,128,258,1024,W),new M(32,258,258,4096,W)],r.deflateInit=function(e,t){return Y(e,t,v,15,8,0)},r.deflateInit2=Y,r.deflateReset=K,r.deflateResetKeep=G,r.deflateSetHeader=function(e,t){return e&&e.state?2!==e.state.wrap?_:(e.state.gzhead=t,m):_},r.deflate=function(e,t){var r,n,i,s;if(!e||!e.state||5>8&255),U(n,n.gzhead.time>>16&255),U(n,n.gzhead.time>>24&255),U(n,9===n.level?2:2<=n.strategy||n.level<2?4:0),U(n,255&n.gzhead.os),n.gzhead.extra&&n.gzhead.extra.length&&(U(n,255&n.gzhead.extra.length),U(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=p(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=69):(U(n,0),U(n,0),U(n,0),U(n,0),U(n,0),U(n,9===n.level?2:2<=n.strategy||n.level<2?4:0),U(n,3),n.status=E);else{var a=v+(n.w_bits-8<<4)<<8;a|=(2<=n.strategy||n.level<2?0:n.level<6?1:6===n.level?2:3)<<6,0!==n.strstart&&(a|=32),a+=31-a%31,n.status=E,P(n,a),0!==n.strstart&&(P(n,e.adler>>>16),P(n,65535&e.adler)),e.adler=1}if(69===n.status)if(n.gzhead.extra){for(i=n.pending;n.gzindex<(65535&n.gzhead.extra.length)&&(n.pending!==n.pending_buf_size||(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending!==n.pending_buf_size));)U(n,255&n.gzhead.extra[n.gzindex]),n.gzindex++;n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=73)}else n.status=73;if(73===n.status)if(n.gzhead.name){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending===n.pending_buf_size)){s=1;break}s=n.gzindexi&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),0===s&&(n.gzindex=0,n.status=91)}else n.status=91;if(91===n.status)if(n.gzhead.comment){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending===n.pending_buf_size)){s=1;break}s=n.gzindexi&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),0===s&&(n.status=103)}else n.status=103;if(103===n.status&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&F(e),n.pending+2<=n.pending_buf_size&&(U(n,255&e.adler),U(n,e.adler>>8&255),e.adler=0,n.status=E)):n.status=E),0!==n.pending){if(F(e),0===e.avail_out)return n.last_flush=-1,m}else if(0===e.avail_in&&T(t)<=T(r)&&t!==f)return R(e,-5);if(666===n.status&&0!==e.avail_in)return R(e,-5);if(0!==e.avail_in||0!==n.lookahead||t!==l&&666!==n.status){var o=2===n.strategy?function(e,t){for(var r;;){if(0===e.lookahead&&(j(e),0===e.lookahead)){if(t===l)return A;break}if(e.match_length=0,r=u._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,r&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}(n,t):3===n.strategy?function(e,t){for(var r,n,i,s,a=e.window;;){if(e.lookahead<=S){if(j(e),e.lookahead<=S&&t===l)return A;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=x&&0e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=x?(r=u._tr_tally(e,1,e.match_length-x),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(r=u._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),r&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}(n,t):h[n.level].func(n,t);if(o!==O&&o!==B||(n.status=666),o===A||o===O)return 0===e.avail_out&&(n.last_flush=-1),m;if(o===I&&(1===t?u._tr_align(n):5!==t&&(u._tr_stored_block(n,0,0,!1),3===t&&(D(n.head),0===n.lookahead&&(n.strstart=0,n.block_start=0,n.insert=0))),F(e),0===e.avail_out))return n.last_flush=-1,m}return t!==f?m:n.wrap<=0?1:(2===n.wrap?(U(n,255&e.adler),U(n,e.adler>>8&255),U(n,e.adler>>16&255),U(n,e.adler>>24&255),U(n,255&e.total_in),U(n,e.total_in>>8&255),U(n,e.total_in>>16&255),U(n,e.total_in>>24&255)):(P(n,e.adler>>>16),P(n,65535&e.adler)),F(e),0=r.w_size&&(0===s&&(D(r.head),r.strstart=0,r.block_start=0,r.insert=0),u=new c.Buf8(r.w_size),c.arraySet(u,t,l-r.w_size,r.w_size,0),t=u,l=r.w_size),a=e.avail_in,o=e.next_in,h=e.input,e.avail_in=l,e.next_in=0,e.input=t,j(r);r.lookahead>=x;){for(n=r.strstart,i=r.lookahead-(x-1);r.ins_h=(r.ins_h<>>=y=v>>>24,p-=y,0===(y=v>>>16&255))C[s++]=65535&v;else{if(!(16&y)){if(0==(64&y)){v=m[(65535&v)+(d&(1<>>=y,p-=y),p<15&&(d+=z[n++]<>>=y=v>>>24,p-=y,!(16&(y=v>>>16&255))){if(0==(64&y)){v=_[(65535&v)+(d&(1<>>=y,p-=y,(y=s-a)>3,d&=(1<<(p-=w<<3))-1,e.next_in=n,e.next_out=s,e.avail_in=n>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function s(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new I.Buf16(320),this.work=new I.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function a(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg=\"\",t.wrap&&(e.adler=1&t.wrap),t.mode=P,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new I.Buf32(n),t.distcode=t.distdyn=new I.Buf32(i),t.sane=1,t.back=-1,N):U}function o(e){var t;return e&&e.state?((t=e.state).wsize=0,t.whave=0,t.wnext=0,a(e)):U}function h(e,t){var r,n;return e&&e.state?(n=e.state,t<0?(r=0,t=-t):(r=1+(t>>4),t<48&&(t&=15)),t&&(t<8||15=s.wsize?(I.arraySet(s.window,t,r-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):(n<(i=s.wsize-s.wnext)&&(i=n),I.arraySet(s.window,t,r-n,i,s.wnext),(n-=i)?(I.arraySet(s.window,t,r-n,n,0),s.wnext=n,s.whave=s.wsize):(s.wnext+=i,s.wnext===s.wsize&&(s.wnext=0),s.whave>>8&255,r.check=B(r.check,E,2,0),l=u=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&u)<<8)+(u>>8))%31){e.msg=\"incorrect header check\",r.mode=30;break}if(8!=(15&u)){e.msg=\"unknown compression method\",r.mode=30;break}if(l-=4,k=8+(15&(u>>>=4)),0===r.wbits)r.wbits=k;else if(k>r.wbits){e.msg=\"invalid window size\",r.mode=30;break}r.dmax=1<>8&1),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=3;case 3:for(;l<32;){if(0===o)break e;o--,u+=n[s++]<>>8&255,E[2]=u>>>16&255,E[3]=u>>>24&255,r.check=B(r.check,E,4,0)),l=u=0,r.mode=4;case 4:for(;l<16;){if(0===o)break e;o--,u+=n[s++]<>8),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=5;case 5:if(1024&r.flags){for(;l<16;){if(0===o)break e;o--,u+=n[s++]<>>8&255,r.check=B(r.check,E,2,0)),l=u=0}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&(o<(d=r.length)&&(d=o),d&&(r.head&&(k=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),I.arraySet(r.head.extra,n,s,d,k)),512&r.flags&&(r.check=B(r.check,n,d,s)),o-=d,s+=d,r.length-=d),r.length))break e;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===o)break e;for(d=0;k=n[s+d++],r.head&&k&&r.length<65536&&(r.head.name+=String.fromCharCode(k)),k&&d>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=12;break;case 10:for(;l<32;){if(0===o)break e;o--,u+=n[s++]<>>=7&l,l-=7&l,r.mode=27;break}for(;l<3;){if(0===o)break e;o--,u+=n[s++]<>>=1)){case 0:r.mode=14;break;case 1:if(j(r),r.mode=20,6!==t)break;u>>>=2,l-=2;break e;case 2:r.mode=17;break;case 3:e.msg=\"invalid block type\",r.mode=30}u>>>=2,l-=2;break;case 14:for(u>>>=7&l,l-=7&l;l<32;){if(0===o)break e;o--,u+=n[s++]<>>16^65535)){e.msg=\"invalid stored block lengths\",r.mode=30;break}if(r.length=65535&u,l=u=0,r.mode=15,6===t)break e;case 15:r.mode=16;case 16:if(d=r.length){if(o>>=5,l-=5,r.ndist=1+(31&u),u>>>=5,l-=5,r.ncode=4+(15&u),u>>>=4,l-=4,286>>=3,l-=3}for(;r.have<19;)r.lens[A[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,S={bits:r.lenbits},x=T(0,r.lens,0,19,r.lencode,0,r.work,S),r.lenbits=S.bits,x){e.msg=\"invalid code lengths set\",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>>=_,l-=_,r.lens[r.have++]=b;else{if(16===b){for(z=_+2;l>>=_,l-=_,0===r.have){e.msg=\"invalid bit length repeat\",r.mode=30;break}k=r.lens[r.have-1],d=3+(3&u),u>>>=2,l-=2}else if(17===b){for(z=_+3;l>>=_)),u>>>=3,l-=3}else{for(z=_+7;l>>=_)),u>>>=7,l-=7}if(r.have+d>r.nlen+r.ndist){e.msg=\"invalid bit length repeat\",r.mode=30;break}for(;d--;)r.lens[r.have++]=k}}if(30===r.mode)break;if(0===r.lens[256]){e.msg=\"invalid code -- missing end-of-block\",r.mode=30;break}if(r.lenbits=9,S={bits:r.lenbits},x=T(D,r.lens,0,r.nlen,r.lencode,0,r.work,S),r.lenbits=S.bits,x){e.msg=\"invalid literal/lengths set\",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,S={bits:r.distbits},x=T(F,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,S),r.distbits=S.bits,x){e.msg=\"invalid distances set\",r.mode=30;break}if(r.mode=20,6===t)break e;case 20:r.mode=21;case 21:if(6<=o&&258<=h){e.next_out=a,e.avail_out=h,e.next_in=s,e.avail_in=o,r.hold=u,r.bits=l,R(e,c),a=e.next_out,i=e.output,h=e.avail_out,s=e.next_in,n=e.input,o=e.avail_in,u=r.hold,l=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;g=(C=r.lencode[u&(1<>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>>=v,l-=v,r.back+=v}if(u>>>=_,l-=_,r.back+=_,r.length=b,0===g){r.mode=26;break}if(32&g){r.back=-1,r.mode=12;break}if(64&g){e.msg=\"invalid literal/length code\",r.mode=30;break}r.extra=15&g,r.mode=22;case 22:if(r.extra){for(z=r.extra;l>>=r.extra,l-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=23;case 23:for(;g=(C=r.distcode[u&(1<>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>>=v,l-=v,r.back+=v}if(u>>>=_,l-=_,r.back+=_,64&g){e.msg=\"invalid distance code\",r.mode=30;break}r.offset=b,r.extra=15&g,r.mode=24;case 24:if(r.extra){for(z=r.extra;l>>=r.extra,l-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){e.msg=\"invalid distance too far back\",r.mode=30;break}r.mode=25;case 25:if(0===h)break e;if(d=c-h,r.offset>d){if((d=r.offset-d)>r.whave&&r.sane){e.msg=\"invalid distance too far back\",r.mode=30;break}p=d>r.wnext?(d-=r.wnext,r.wsize-d):r.wnext-d,d>r.length&&(d=r.length),m=r.window}else m=i,p=a-r.offset,d=r.length;for(hd?(m=R[T+a[v]],A[I+a[v]]):(m=96,0),h=1<>S)+(u-=h)]=p<<24|m<<16|_|0,0!==u;);for(h=1<>=1;if(0!==h?(E&=h-1,E+=h):E=0,v++,0==--O[b]){if(b===w)break;b=t[r+a[v]]}if(k>>7)]}function U(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255}function P(e,t,r){e.bi_valid>d-r?(e.bi_buf|=t<>d-e.bi_valid,e.bi_valid+=r-d):(e.bi_buf|=t<>>=1,r<<=1,0<--t;);return r>>>1}function Z(e,t,r){var n,i,s=new Array(g+1),a=0;for(n=1;n<=g;n++)s[n]=a=a+r[n-1]<<1;for(i=0;i<=t;i++){var o=e[2*i+1];0!==o&&(e[2*i]=j(s[o]++,o))}}function W(e){var t;for(t=0;t>1;1<=r;r--)G(e,s,r);for(i=h;r=e.heap[1],e.heap[1]=e.heap[e.heap_len--],G(e,s,1),n=e.heap[1],e.heap[--e.heap_max]=r,e.heap[--e.heap_max]=n,s[2*i]=s[2*r]+s[2*n],e.depth[i]=(e.depth[r]>=e.depth[n]?e.depth[r]:e.depth[n])+1,s[2*r+1]=s[2*n+1]=i,e.heap[1]=i++,G(e,s,1),2<=e.heap_len;);e.heap[--e.heap_max]=e.heap[1],function(e,t){var r,n,i,s,a,o,h=t.dyn_tree,u=t.max_code,l=t.stat_desc.static_tree,f=t.stat_desc.has_stree,c=t.stat_desc.extra_bits,d=t.stat_desc.extra_base,p=t.stat_desc.max_length,m=0;for(s=0;s<=g;s++)e.bl_count[s]=0;for(h[2*e.heap[e.heap_max]+1]=0,r=e.heap_max+1;r<_;r++)p<(s=h[2*h[2*(n=e.heap[r])+1]+1]+1)&&(s=p,m++),h[2*n+1]=s,u>=7;n>>=1)if(1&r&&0!==e.dyn_ltree[2*t])return o;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return h;for(t=32;t>>3,(s=e.static_len+3+7>>>3)<=i&&(i=s)):i=s=r+5,r+4<=i&&-1!==t?J(e,t,r,n):4===e.strategy||s===i?(P(e,2+(n?1:0),3),K(e,z,C)):(P(e,4+(n?1:0),3),function(e,t,r,n){var i;for(P(e,t-257,5),P(e,r-1,5),P(e,n-4,4),i=0;i>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&r,e.last_lit++,0===t?e.dyn_ltree[2*r]++:(e.matches++,t--,e.dyn_ltree[2*(A[r]+u+1)]++,e.dyn_dtree[2*N(t)]++),e.last_lit===e.lit_bufsize-1},r._tr_align=function(e){P(e,2,3),L(e,m,z),function(e){16===e.bi_valid?(U(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):8<=e.bi_valid&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)}(e)}},{\"../utils/common\":41}],53:[function(e,t,r){\"use strict\";t.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg=\"\",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(e,t,r){(function(e){!function(r,n){\"use strict\";if(!r.setImmediate){var i,s,t,a,o=1,h={},u=!1,l=r.document,e=Object.getPrototypeOf&&Object.getPrototypeOf(r);e=e&&e.setTimeout?e:r,i=\"[object process]\"==={}.toString.call(r.process)?function(e){process.nextTick(function(){c(e)})}:function(){if(r.postMessage&&!r.importScripts){var e=!0,t=r.onmessage;return r.onmessage=function(){e=!1},r.postMessage(\"\",\"*\"),r.onmessage=t,e}}()?(a=\"setImmediate$\"+Math.random()+\"$\",r.addEventListener?r.addEventListener(\"message\",d,!1):r.attachEvent(\"onmessage\",d),function(e){r.postMessage(a+e,\"*\")}):r.MessageChannel?((t=new MessageChannel).port1.onmessage=function(e){c(e.data)},function(e){t.port2.postMessage(e)}):l&&\"onreadystatechange\"in l.createElement(\"script\")?(s=l.documentElement,function(e){var t=l.createElement(\"script\");t.onreadystatechange=function(){c(e),t.onreadystatechange=null,s.removeChild(t),t=null},s.appendChild(t)}):function(e){setTimeout(c,0,e)},e.setImmediate=function(e){\"function\"!=typeof e&&(e=new Function(\"\"+e));for(var t=new Array(arguments.length-1),r=0;r 0) {\r\n this._updateLockCount--;\r\n if (!this._updateLockCount) {\r\n this._endUpdateCore()\r\n }\r\n }\r\n },\r\n option: function(name) {\r\n var component = this.component;\r\n var optionCache = component._optionCache;\r\n if (1 === arguments.length && optionCache) {\r\n if (!(name in optionCache)) {\r\n optionCache[name] = component.option(name)\r\n }\r\n return optionCache[name]\r\n }\r\n return component.option.apply(component, arguments)\r\n },\r\n _silentOption: function(name, value) {\r\n var component = this.component;\r\n var optionCache = component._optionCache;\r\n if (optionCache) {\r\n optionCache[name] = value\r\n }\r\n return component._setOptionWithoutOptionChange(name, value)\r\n },\r\n localize: function(name) {\r\n var optionCache = this.component._optionCache;\r\n if (optionCache) {\r\n if (!(name in optionCache)) {\r\n optionCache[name] = messageLocalization.format(name)\r\n }\r\n return optionCache[name]\r\n }\r\n return messageLocalization.format(name)\r\n },\r\n on: function() {\r\n return this.component.on.apply(this.component, arguments)\r\n },\r\n off: function() {\r\n return this.component.off.apply(this.component, arguments)\r\n },\r\n optionChanged: function(args) {\r\n if (args.name in this._actions) {\r\n this.createAction(args.name, this._actionConfigs[args.name]);\r\n args.handled = true\r\n }\r\n },\r\n getAction: function(actionName) {\r\n return this._actions[actionName]\r\n },\r\n setAria: function(name, value, $target) {\r\n var target = $target.get(0);\r\n var prefix = \"role\" !== name && \"id\" !== name ? \"aria-\" : \"\";\r\n if (target.setAttribute) {\r\n target.setAttribute(prefix + name, value)\r\n } else {\r\n $target.attr(prefix + name, value)\r\n }\r\n },\r\n _createComponent: function() {\r\n return this.component._createComponent.apply(this.component, arguments)\r\n },\r\n getController: function(name) {\r\n return this.component._controllers[name]\r\n },\r\n createAction: function(actionName, config) {\r\n if (isFunction(actionName)) {\r\n var action = this.component._createAction(actionName.bind(this), config);\r\n return function(e) {\r\n action({\r\n event: e\r\n })\r\n }\r\n } else {\r\n this._actions[actionName] = this.component._createActionByOption(actionName, config);\r\n this._actionConfigs[actionName] = config\r\n }\r\n },\r\n executeAction: function(actionName, options) {\r\n var action = this._actions[actionName];\r\n return action && action(options)\r\n },\r\n dispose: function() {\r\n var that = this;\r\n each(that.callbackNames() || [], (function() {\r\n that[this].empty()\r\n }))\r\n },\r\n addWidgetPrefix: function(className) {\r\n var componentName = this.component.NAME;\r\n return \"dx-\" + componentName.slice(2).toLowerCase() + (className ? \"-\" + className : \"\")\r\n },\r\n getWidgetContainerClass: function() {\r\n var containerName = this.component.NAME === WIDGET_WITH_LEGACY_CONTAINER_NAME ? null : \"container\";\r\n return this.addWidgetPrefix(containerName)\r\n },\r\n elementIsInsideGrid: function($element) {\r\n var $gridElement = $element.closest(\".\" + this.getWidgetContainerClass()).parent();\r\n return $gridElement.is(this.component.$element())\r\n }\r\n});\r\nvar Controller = ModuleItem;\r\nvar ViewController = Controller.inherit({\r\n getView: function(name) {\r\n return this.component._views[name]\r\n },\r\n getViews: function() {\r\n return this.component._views\r\n }\r\n});\r\nvar View = ModuleItem.inherit({\r\n _isReady: function() {\r\n return this.component.isReady()\r\n },\r\n _endUpdateCore: function() {\r\n this.callBase();\r\n if (!this._isReady() && this._requireReady) {\r\n this._requireRender = false;\r\n this.component._requireResize = false\r\n }\r\n if (this._requireRender) {\r\n this._requireRender = false;\r\n this.render(this._$parent)\r\n }\r\n },\r\n _invalidate: function(requireResize, requireReady) {\r\n this._requireRender = true;\r\n this.component._requireResize = hasWindow() && (this.component._requireResize || requireResize);\r\n this._requireReady = this._requireReady || requireReady\r\n },\r\n _renderCore: function() {},\r\n _resizeCore: function() {},\r\n _parentElement: function() {\r\n return this._$parent\r\n },\r\n ctor: function(component) {\r\n this.callBase(component);\r\n this.renderCompleted = Callbacks();\r\n this.resizeCompleted = Callbacks()\r\n },\r\n element: function() {\r\n return this._$element\r\n },\r\n getElementHeight: function() {\r\n var $element = this.element();\r\n if (!$element) {\r\n return 0\r\n }\r\n var marginTop = parseFloat($element.css(\"marginTop\")) || 0;\r\n var marginBottom = parseFloat($element.css(\"marginBottom\")) || 0;\r\n var offsetHeight = $element.get(0).offsetHeight;\r\n return offsetHeight + marginTop + marginBottom\r\n },\r\n isVisible: function() {\r\n return true\r\n },\r\n getTemplate: function(name) {\r\n return this.component._getTemplate(name)\r\n },\r\n render: function($parent, options) {\r\n var $element = this._$element;\r\n var isVisible = this.isVisible();\r\n if (!$element && !$parent) {\r\n return\r\n }\r\n this._requireReady = false;\r\n if (!$element) {\r\n $element = this._$element = $(\"
\").appendTo($parent);\r\n this._$parent = $parent\r\n }\r\n $element.toggleClass(\"dx-hidden\", !isVisible);\r\n if (isVisible) {\r\n this.component._optionCache = {};\r\n this._renderCore(options);\r\n this.component._optionCache = void 0;\r\n this.renderCompleted.fire(options)\r\n }\r\n },\r\n resize: function() {\r\n this.isResizing = true;\r\n this._resizeCore();\r\n this.resizeCompleted.fire();\r\n this.isResizing = false\r\n },\r\n focus: function(preventScroll) {\r\n this.element().get(0).focus({\r\n preventScroll: preventScroll\r\n })\r\n }\r\n});\r\nvar MODULES_ORDER_MAX_INDEX = 1e6;\r\nvar processModules = function(that, componentClass) {\r\n var modules = componentClass.modules;\r\n var modulesOrder = componentClass.modulesOrder;\r\n var controllerTypes = componentClass.controllerTypes || {};\r\n var viewTypes = componentClass.viewTypes || {};\r\n if (!componentClass.controllerTypes) {\r\n if (modulesOrder) {\r\n modules.sort((function(module1, module2) {\r\n var orderIndex1 = modulesOrder.indexOf(module1.name);\r\n var orderIndex2 = modulesOrder.indexOf(module2.name);\r\n if (orderIndex1 < 0) {\r\n orderIndex1 = MODULES_ORDER_MAX_INDEX\r\n }\r\n if (orderIndex2 < 0) {\r\n orderIndex2 = MODULES_ORDER_MAX_INDEX\r\n }\r\n return orderIndex1 - orderIndex2\r\n }))\r\n }\r\n each(modules, (function() {\r\n var controllers = this.controllers;\r\n var moduleName = this.name;\r\n var views = this.views;\r\n controllers && each(controllers, (function(name, type) {\r\n if (controllerTypes[name]) {\r\n throw errors.Error(\"E1001\", moduleName, name)\r\n } else if (!(type && type.subclassOf && type.subclassOf(Controller))) {\r\n type.subclassOf(Controller);\r\n throw errors.Error(\"E1002\", moduleName, name)\r\n }\r\n controllerTypes[name] = type\r\n }));\r\n views && each(views, (function(name, type) {\r\n if (viewTypes[name]) {\r\n throw errors.Error(\"E1003\", moduleName, name)\r\n } else if (!(type && type.subclassOf && type.subclassOf(View))) {\r\n throw errors.Error(\"E1004\", moduleName, name)\r\n }\r\n viewTypes[name] = type\r\n }))\r\n }));\r\n each(modules, (function() {\r\n var extenders = this.extenders;\r\n if (extenders) {\r\n extenders.controllers && each(extenders.controllers, (function(name, extender) {\r\n if (controllerTypes[name]) {\r\n controllerTypes[name] = controllerTypes[name].inherit(extender)\r\n }\r\n }));\r\n extenders.views && each(extenders.views, (function(name, extender) {\r\n if (viewTypes[name]) {\r\n viewTypes[name] = viewTypes[name].inherit(extender)\r\n }\r\n }))\r\n }\r\n }));\r\n componentClass.controllerTypes = controllerTypes;\r\n componentClass.viewTypes = viewTypes\r\n }\r\n var createModuleItems = function(moduleTypes) {\r\n var moduleItems = {};\r\n each(moduleTypes, (function(name, moduleType) {\r\n var moduleItem = new moduleType(that);\r\n moduleItem.name = name;\r\n ! function(that, name, moduleItem) {\r\n var publicMethods = moduleItem.publicMethods();\r\n if (publicMethods) {\r\n each(publicMethods, (function(index, methodName) {\r\n if (moduleItem[methodName]) {\r\n if (!that[methodName]) {\r\n that[methodName] = function() {\r\n return moduleItem[methodName].apply(moduleItem, arguments)\r\n }\r\n } else {\r\n throw errors.Error(\"E1005\", methodName)\r\n }\r\n } else {\r\n throw errors.Error(\"E1006\", name, methodName)\r\n }\r\n }))\r\n }\r\n }(that, name, moduleItem);\r\n moduleItems[name] = moduleItem\r\n }));\r\n return moduleItems\r\n };\r\n that._controllers = createModuleItems(controllerTypes);\r\n that._views = createModuleItems(viewTypes)\r\n};\r\nvar callModuleItemsMethod = function(that, methodName, args) {\r\n args = args || [];\r\n if (that._controllers) {\r\n each(that._controllers, (function() {\r\n this[methodName] && this[methodName].apply(this, args)\r\n }))\r\n }\r\n if (that._views) {\r\n each(that._views, (function() {\r\n this[methodName] && this[methodName].apply(this, args)\r\n }))\r\n }\r\n};\r\nexport default {\r\n modules: [],\r\n View: View,\r\n ViewController: ViewController,\r\n Controller: Controller,\r\n registerModule: function(name, module) {\r\n var modules = this.modules;\r\n for (var i = 0; i < modules.length; i++) {\r\n if (modules[i].name === name) {\r\n return\r\n }\r\n }\r\n module.name = name;\r\n modules.push(module);\r\n delete this.controllerTypes;\r\n delete this.viewTypes\r\n },\r\n registerModulesOrder: function(moduleNames) {\r\n this.modulesOrder = moduleNames\r\n },\r\n unregisterModule: function(name) {\r\n this.modules = grep(this.modules, (function(module) {\r\n return module.name !== name\r\n }));\r\n delete this.controllerTypes;\r\n delete this.viewTypes\r\n },\r\n processModules: processModules,\r\n callModuleItemsMethod: callModuleItemsMethod\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.core.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport gridCoreUtils from \"../grid_core/ui.grid_core.utils\";\r\nimport modules from \"../grid_core/ui.grid_core.modules\";\r\nexport default _extends({}, modules, gridCoreUtils, {\r\n modules: []\r\n});\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.column_state_mixin.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getDefaultAlignment\r\n} from \"../../core/utils/position\";\r\nvar COLUMN_INDICATORS_CLASS = \"dx-column-indicators\";\r\nvar GROUP_PANEL_ITEM_CLASS = \"dx-group-panel-item\";\r\nexport default {\r\n _applyColumnState: function(options) {\r\n var _that$component;\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var columnAlignment = this._getColumnAlignment(options.column.alignment, rtlEnabled);\r\n var parameters = extend(true, {\r\n columnAlignment: columnAlignment\r\n }, options);\r\n var isGroupPanelItem = parameters.rootElement.hasClass(GROUP_PANEL_ITEM_CLASS);\r\n var $indicatorsContainer = this._createIndicatorContainer(parameters, isGroupPanelItem);\r\n var $span = $(\"\").addClass(this._getIndicatorClassName(options.name));\r\n var columnsController = null === (_that$component = this.component) || void 0 === _that$component ? void 0 : _that$component.getController(\"columns\");\r\n var indicatorAlignment = (null === columnsController || void 0 === columnsController ? void 0 : columnsController.getHeaderContentAlignment(columnAlignment)) || columnAlignment;\r\n parameters.container = $indicatorsContainer;\r\n parameters.indicator = $span;\r\n this._renderIndicator(parameters);\r\n $indicatorsContainer[(isGroupPanelItem || !options.showColumnLines) && \"left\" === indicatorAlignment ? \"appendTo\" : \"prependTo\"](options.rootElement);\r\n return $span\r\n },\r\n _getIndicatorClassName: noop,\r\n _getColumnAlignment: function(alignment, rtlEnabled) {\r\n rtlEnabled = rtlEnabled || this.option(\"rtlEnabled\");\r\n return alignment && \"center\" !== alignment ? alignment : getDefaultAlignment(rtlEnabled)\r\n },\r\n _createIndicatorContainer: function(options, ignoreIndicatorAlignment) {\r\n var $indicatorsContainer = this._getIndicatorContainer(options.rootElement);\r\n var indicatorAlignment = \"left\" === options.columnAlignment ? \"right\" : \"left\";\r\n if (!$indicatorsContainer.length) {\r\n $indicatorsContainer = $(\"
\").addClass(COLUMN_INDICATORS_CLASS)\r\n }\r\n this.setAria(\"role\", \"presentation\", $indicatorsContainer);\r\n return $indicatorsContainer.css(\"float\", options.showColumnLines && !ignoreIndicatorAlignment ? indicatorAlignment : null)\r\n },\r\n _getIndicatorContainer: function($cell) {\r\n return $cell && $cell.find(\".\" + COLUMN_INDICATORS_CLASS)\r\n },\r\n _getIndicatorElements: function($cell) {\r\n var $indicatorContainer = this._getIndicatorContainer($cell);\r\n return $indicatorContainer && $indicatorContainer.children()\r\n },\r\n _renderIndicator: function(options) {\r\n var $container = options.container;\r\n var $indicator = options.indicator;\r\n $container && $indicator && $container.append($indicator)\r\n },\r\n _updateIndicators: function(indicatorName) {\r\n var columns = this.getColumns();\r\n var $cells = this.getColumnElements();\r\n var $cell;\r\n if (!$cells || columns.length !== $cells.length) {\r\n return\r\n }\r\n for (var i = 0; i < columns.length; i++) {\r\n $cell = $cells.eq(i);\r\n this._updateIndicator($cell, columns[i], indicatorName);\r\n var rowOptions = $cell.parent().data(\"options\");\r\n if (rowOptions && rowOptions.cells) {\r\n rowOptions.cells[$cell.index()].column = columns[i]\r\n }\r\n }\r\n },\r\n _updateIndicator: function($cell, column, indicatorName) {\r\n if (!column.command) {\r\n return this._applyColumnState({\r\n name: indicatorName,\r\n rootElement: $cell,\r\n column: column,\r\n showColumnLines: this.option(\"showColumnLines\")\r\n })\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.columns_view.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterWidth,\r\n getWidth,\r\n getOuterHeight,\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n data as elementData\r\n} from \"../../core/element_data\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport {\r\n name as dblclickEvent\r\n} from \"../../events/double_click\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n setWidth\r\n} from \"../../core/utils/style\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport {\r\n isRenderer,\r\n isFunction,\r\n isString,\r\n isDefined,\r\n isNumeric\r\n} from \"../../core/utils/type\";\r\nimport {\r\n getBoundingRect,\r\n getDefaultAlignment\r\n} from \"../../core/utils/position\";\r\nimport * as iteratorUtils from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport modules from \"./ui.grid_core.modules\";\r\nimport gridCoreUtils from \"./ui.grid_core.utils\";\r\nimport columnStateMixin from \"./ui.grid_core.column_state_mixin\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n nativeScrolling\r\n} from \"../../core/utils/support\";\r\nvar SCROLL_CONTAINER_CLASS = \"scroll-container\";\r\nvar SCROLLABLE_SIMULATED_CLASS = \"scrollable-simulated\";\r\nvar GROUP_SPACE_CLASS = \"group-space\";\r\nvar CONTENT_CLASS = \"content\";\r\nvar TABLE_CLASS = \"table\";\r\nvar TABLE_FIXED_CLASS = \"table-fixed\";\r\nvar CONTENT_FIXED_CLASS = \"content-fixed\";\r\nvar ROW_CLASS = \"dx-row\";\r\nvar GROUP_ROW_CLASS = \"dx-group-row\";\r\nvar GROUP_CELL_CLASS = \"dx-group-cell\";\r\nvar DETAIL_ROW_CLASS = \"dx-master-detail-row\";\r\nvar FILTER_ROW_CLASS = \"filter-row\";\r\nvar ERROR_ROW_CLASS = \"dx-error-row\";\r\nvar CELL_UPDATED_ANIMATION_CLASS = \"cell-updated-animation\";\r\nvar HIDDEN_COLUMNS_WIDTH = \"0.0001px\";\r\nvar CELL_HINT_VISIBLE = \"dxCellHintVisible\";\r\nvar FORM_FIELD_ITEM_CONTENT_CLASS = \"dx-field-item-content\";\r\nvar appendElementTemplate = {\r\n render: function(options) {\r\n options.container.append(options.content)\r\n }\r\n};\r\nvar subscribeToRowEvents = function(that, $table) {\r\n var touchTarget;\r\n var touchCurrentTarget;\r\n var timeoutId;\r\n\r\n function clearTouchTargets(timeout) {\r\n return setTimeout((function() {\r\n touchTarget = touchCurrentTarget = null\r\n }), timeout)\r\n }\r\n eventsEngine.on($table, \"touchstart touchend\", \".dx-row\", (function(e) {\r\n clearTimeout(timeoutId);\r\n if (\"touchstart\" === e.type) {\r\n touchTarget = e.target;\r\n touchCurrentTarget = e.currentTarget;\r\n timeoutId = clearTouchTargets(1e3)\r\n } else {\r\n timeoutId = clearTouchTargets()\r\n }\r\n }));\r\n eventsEngine.on($table, [clickEventName, dblclickEvent, pointerEvents.down].join(\" \"), \".dx-row\", that.createAction((function(e) {\r\n var event = e.event;\r\n if (touchTarget) {\r\n event.target = touchTarget;\r\n event.currentTarget = touchCurrentTarget\r\n }\r\n if (!$(event.target).closest(\"a\").length) {\r\n e.rowIndex = that.getRowIndex(event.currentTarget);\r\n if (e.rowIndex >= 0) {\r\n e.rowElement = getPublicElement($(event.currentTarget));\r\n e.columns = that.getColumns();\r\n if (event.type === pointerEvents.down) {\r\n that._rowPointerDown(e)\r\n } else if (event.type === clickEventName) {\r\n that._rowClick(e)\r\n } else {\r\n that._rowDblClick(e)\r\n }\r\n }\r\n }\r\n })))\r\n};\r\nvar getWidthStyle = function(width) {\r\n if (\"auto\" === width) {\r\n return \"\"\r\n }\r\n return isNumeric(width) ? width + \"px\" : width\r\n};\r\nvar setCellWidth = function(cell, column, width) {\r\n cell.style.width = cell.style.maxWidth = \"auto\" === column.width ? \"\" : width\r\n};\r\nvar copyAttributes = function(element, newElement) {\r\n if (!element || !newElement) {\r\n return\r\n }\r\n var oldAttributes = element.attributes;\r\n var newAttributes = newElement.attributes;\r\n var i;\r\n for (i = 0; i < oldAttributes.length; i++) {\r\n var name = oldAttributes[i].nodeName;\r\n if (!newElement.hasAttribute(name)) {\r\n element.removeAttribute(name)\r\n }\r\n }\r\n for (i = 0; i < newAttributes.length; i++) {\r\n element.setAttribute(newAttributes[i].nodeName, newAttributes[i].nodeValue)\r\n }\r\n};\r\nexport var ColumnsView = modules.View.inherit(columnStateMixin).inherit({\r\n _createScrollableOptions: function() {\r\n var scrollingOptions = this.option(\"scrolling\");\r\n var useNativeScrolling = this.option(\"scrolling.useNative\");\r\n var options = extend({}, scrollingOptions, {\r\n direction: \"both\",\r\n bounceEnabled: false,\r\n useKeyboard: false\r\n });\r\n if (void 0 === useNativeScrolling) {\r\n useNativeScrolling = true\r\n }\r\n if (\"auto\" === useNativeScrolling) {\r\n delete options.useNative;\r\n delete options.useSimulatedScrollbar\r\n } else {\r\n options.useNative = !!useNativeScrolling;\r\n options.useSimulatedScrollbar = !useNativeScrolling\r\n }\r\n return options\r\n },\r\n _updateCell: function($cell, parameters) {\r\n if (parameters.rowType) {\r\n this._cellPrepared($cell, parameters)\r\n }\r\n },\r\n _createCell: function(options) {\r\n var column = options.column;\r\n var alignment = column.alignment || getDefaultAlignment(this.option(\"rtlEnabled\"));\r\n var cell = domAdapter.createElement(\"td\");\r\n cell.style.textAlign = alignment;\r\n var $cell = $(cell);\r\n if (\"data\" === options.rowType && column.headerId && !column.type) {\r\n if (this.component.option(\"showColumnHeaders\")) {\r\n this.setAria(\"describedby\", column.headerId, $cell)\r\n }\r\n }\r\n if (column.cssClass) {\r\n $cell.addClass(column.cssClass)\r\n }\r\n if (\"expand\" === column.command) {\r\n $cell.addClass(column.cssClass);\r\n $cell.addClass(this.addWidgetPrefix(GROUP_SPACE_CLASS))\r\n }\r\n if (column.colspan > 1) {\r\n $cell.attr(\"colSpan\", column.colspan)\r\n } else if (!column.isBand && \"auto\" !== column.visibleWidth && this.option(\"columnAutoWidth\")) {\r\n if (column.width || column.minWidth) {\r\n cell.style.minWidth = getWidthStyle(column.minWidth || column.width)\r\n }\r\n if (column.width) {\r\n setCellWidth(cell, column, getWidthStyle(column.width))\r\n }\r\n }\r\n return $cell\r\n },\r\n _createRow: function(rowObject, tagName) {\r\n tagName = tagName || \"tr\";\r\n var $element = $(\"<\".concat(tagName, \">\")).addClass(ROW_CLASS);\r\n this.setAria(\"role\", \"row\", $element);\r\n return $element\r\n },\r\n _isAltRow: function(row) {\r\n return row && row.dataIndex % 2 === 1\r\n },\r\n _createTable: function(columns, isAppend) {\r\n var that = this;\r\n var $table = $(\"\").addClass(that.addWidgetPrefix(TABLE_CLASS)).addClass(that.addWidgetPrefix(TABLE_FIXED_CLASS));\r\n if (columns && !isAppend) {\r\n $table.append(that._createColGroup(columns));\r\n if (browser.safari) {\r\n $table.append($(\"\").append(\"\"))\r\n }\r\n that.setAria(\"role\", \"presentation\", $table)\r\n } else {\r\n that.setAria(\"hidden\", true, $table)\r\n }\r\n this.setAria(\"role\", \"presentation\", $(\"\").appendTo($table));\r\n if (isAppend) {\r\n return $table\r\n }\r\n if (browser.mozilla) {\r\n eventsEngine.on($table, \"mousedown\", \"td\", (function(e) {\r\n if (e.ctrlKey) {\r\n e.preventDefault()\r\n }\r\n }))\r\n }\r\n if (that.option(\"cellHintEnabled\")) {\r\n eventsEngine.on($table, \"mousemove\", \".dx-row > td\", this.createAction((function(args) {\r\n var e = args.event;\r\n var $element = $(e.target);\r\n var $cell = $(e.currentTarget);\r\n var $row = $cell.parent();\r\n var visibleColumns = that._columnsController.getVisibleColumns();\r\n var rowOptions = $row.data(\"options\");\r\n var columnIndex = $cell.index();\r\n var cellOptions = rowOptions && rowOptions.cells && rowOptions.cells[columnIndex];\r\n var column = cellOptions ? cellOptions.column : visibleColumns[columnIndex];\r\n var isHeaderRow = $row.hasClass(\"dx-header-row\");\r\n var isDataRow = $row.hasClass(\"dx-data-row\");\r\n var isMasterDetailRow = $row.hasClass(DETAIL_ROW_CLASS);\r\n var isGroupRow = $row.hasClass(GROUP_ROW_CLASS);\r\n var isFilterRow = $row.hasClass(that.addWidgetPrefix(FILTER_ROW_CLASS));\r\n var isDataRowWithTemplate = isDataRow && (!column || column.cellTemplate);\r\n var isEditorShown = isDataRow && cellOptions && (rowOptions.isEditing || cellOptions.isEditing || (null === column || void 0 === column ? void 0 : column.showEditorAlways));\r\n var isHeaderRowWithTemplate = isHeaderRow && (!column || column.headerCellTemplate);\r\n var isGroupCellWithTemplate = isGroupRow && (!column || column.groupIndex && column.groupCellTemplate);\r\n var shouldShowHint = !isMasterDetailRow && !isFilterRow && !isEditorShown && !isDataRowWithTemplate && !isHeaderRowWithTemplate && !isGroupCellWithTemplate;\r\n if (shouldShowHint) {\r\n if ($element.data(CELL_HINT_VISIBLE)) {\r\n $element.removeAttr(\"title\");\r\n $element.data(CELL_HINT_VISIBLE, false)\r\n }\r\n var difference = $element[0].scrollWidth - $element[0].clientWidth;\r\n if (difference > 0 && !isDefined($element.attr(\"title\"))) {\r\n $element.attr(\"title\", $element.text());\r\n $element.data(CELL_HINT_VISIBLE, true)\r\n }\r\n }\r\n })))\r\n }\r\n var getOptions = function(event) {\r\n var $cell = $(event.currentTarget);\r\n var $fieldItemContent = $(event.target).closest(\".\" + FORM_FIELD_ITEM_CONTENT_CLASS);\r\n var $row = $cell.parent();\r\n var rowOptions = $row.data(\"options\");\r\n var options = rowOptions && rowOptions.cells && rowOptions.cells[$cell.index()];\r\n if (!$cell.closest(\"table\").is(event.delegateTarget)) {\r\n return\r\n }\r\n var resultOptions = extend({}, options, {\r\n cellElement: getPublicElement($cell),\r\n event: event,\r\n eventType: event.type\r\n });\r\n resultOptions.rowIndex = that.getRowIndex($row);\r\n if ($fieldItemContent.length) {\r\n var formItemOptions = $fieldItemContent.data(\"dx-form-item\");\r\n if (formItemOptions.column) {\r\n resultOptions.column = formItemOptions.column;\r\n resultOptions.columnIndex = that._columnsController.getVisibleIndex(resultOptions.column.index)\r\n }\r\n }\r\n return resultOptions\r\n };\r\n eventsEngine.on($table, \"mouseover\", \".dx-row > td\", (function(e) {\r\n var options = getOptions(e);\r\n options && that.executeAction(\"onCellHoverChanged\", options)\r\n }));\r\n eventsEngine.on($table, \"mouseout\", \".dx-row > td\", (function(e) {\r\n var options = getOptions(e);\r\n options && that.executeAction(\"onCellHoverChanged\", options)\r\n }));\r\n eventsEngine.on($table, clickEventName, \".dx-row > td\", (function(e) {\r\n var options = getOptions(e);\r\n options && that.executeAction(\"onCellClick\", options)\r\n }));\r\n eventsEngine.on($table, dblclickEvent, \".dx-row > td\", (function(e) {\r\n var options = getOptions(e);\r\n options && that.executeAction(\"onCellDblClick\", options)\r\n }));\r\n subscribeToRowEvents(that, $table);\r\n return $table\r\n },\r\n _rowPointerDown: noop,\r\n _rowClick: noop,\r\n _rowDblClick: noop,\r\n _createColGroup: function(columns) {\r\n var colgroupElement = $(\"\");\r\n for (var i = 0; i < columns.length; i++) {\r\n var colspan = columns[i].colspan || 1;\r\n for (var j = 0; j < colspan; j++) {\r\n colgroupElement.append(this._createCol(columns[i]))\r\n }\r\n }\r\n return colgroupElement\r\n },\r\n _createCol: function(column) {\r\n var width = column.visibleWidth || column.width;\r\n if (\"adaptiveHidden\" === width) {\r\n width = HIDDEN_COLUMNS_WIDTH\r\n }\r\n var col = $(\"\");\r\n setWidth(col, width);\r\n return col\r\n },\r\n renderDelayedTemplates: function(change) {\r\n var delayedTemplates = this._delayedTemplates;\r\n var syncTemplates = delayedTemplates.filter(template => !template.async);\r\n var asyncTemplates = delayedTemplates.filter(template => template.async);\r\n this._delayedTemplates = [];\r\n this._renderDelayedTemplatesCore(syncTemplates, false, change);\r\n this._renderDelayedTemplatesCoreAsync(asyncTemplates)\r\n },\r\n _renderDelayedTemplatesCoreAsync: function(templates) {\r\n var that = this;\r\n if (templates.length) {\r\n getWindow().setTimeout((function() {\r\n that._renderDelayedTemplatesCore(templates, true)\r\n }))\r\n }\r\n },\r\n _renderDelayedTemplatesCore: function(templates, isAsync, change) {\r\n var date = new Date;\r\n while (templates.length) {\r\n var templateParameters = templates.shift();\r\n var options = templateParameters.options;\r\n var doc = domAdapter.getDocument();\r\n if (!isAsync || $(options.container).closest(doc).length) {\r\n if (change) {\r\n options.change = change\r\n }\r\n templateParameters.template.render(options)\r\n }\r\n if (isAsync && new Date - date > 30) {\r\n this._renderDelayedTemplatesCoreAsync(templates);\r\n break\r\n }\r\n }\r\n if (!templates.length && this._delayedTemplates.length) {\r\n this.renderDelayedTemplates()\r\n }\r\n },\r\n _processTemplate: function(template) {\r\n var renderingTemplate;\r\n if (template && template.render && !isRenderer(template)) {\r\n renderingTemplate = {\r\n allowRenderToDetachedContainer: template.allowRenderToDetachedContainer,\r\n render: function(options) {\r\n template.render(options.container, options.model, options.change);\r\n options.deferred && options.deferred.resolve()\r\n }\r\n }\r\n } else if (isFunction(template)) {\r\n renderingTemplate = {\r\n render: function(options) {\r\n var renderedTemplate = template(getPublicElement(options.container), options.model, options.change);\r\n if (renderedTemplate && (renderedTemplate.nodeType || isRenderer(renderedTemplate))) {\r\n options.container.append(renderedTemplate)\r\n }\r\n options.deferred && options.deferred.resolve()\r\n }\r\n }\r\n } else {\r\n var templateID = isString(template) ? template : $(template).attr(\"id\");\r\n if (!templateID) {\r\n renderingTemplate = this.getTemplate(template)\r\n } else {\r\n if (!this._templatesCache[templateID]) {\r\n this._templatesCache[templateID] = this.getTemplate(template)\r\n }\r\n renderingTemplate = this._templatesCache[templateID]\r\n }\r\n }\r\n return renderingTemplate\r\n },\r\n renderTemplate: function(container, template, options, allowRenderToDetachedContainer, change) {\r\n var renderingTemplate = this._processTemplate(template, options);\r\n var column = options.column;\r\n var isDataRow = \"data\" === options.rowType;\r\n var templateDeferred = new Deferred;\r\n var templateOptions = {\r\n container: container,\r\n model: options,\r\n deferred: templateDeferred,\r\n onRendered: () => {\r\n templateDeferred.resolve()\r\n }\r\n };\r\n if (renderingTemplate) {\r\n options.component = this.component;\r\n var async = column && (column.renderAsync && isDataRow || this.option(\"renderAsync\") && (false !== column.renderAsync && (column.command || column.showEditorAlways) && isDataRow || \"filter\" === options.rowType));\r\n if ((renderingTemplate.allowRenderToDetachedContainer || allowRenderToDetachedContainer) && !async) {\r\n renderingTemplate.render(templateOptions)\r\n } else {\r\n this._delayedTemplates.push({\r\n template: renderingTemplate,\r\n options: templateOptions,\r\n async: async\r\n })\r\n }\r\n if (change) {\r\n change.templateDeferreds = change.templateDeferreds || [];\r\n change.templateDeferreds.push(templateDeferred)\r\n }\r\n } else {\r\n templateDeferred.reject()\r\n }\r\n return templateDeferred.promise()\r\n },\r\n _getBodies: function(tableElement) {\r\n return $(tableElement).children(\"tbody\").not(\".dx-header\").not(\".dx-footer\")\r\n },\r\n _needWrapRow: function($tableElement) {\r\n var _this$_getBodies;\r\n var hasRowTemplate = !!this.option().rowTemplate;\r\n return hasRowTemplate && !!(null !== (_this$_getBodies = this._getBodies($tableElement)) && void 0 !== _this$_getBodies && _this$_getBodies.filter(\".\" + ROW_CLASS).length)\r\n },\r\n _wrapRowIfNeed: function($table, $row, isRefreshing) {\r\n var $tableElement = isRefreshing ? $table || this._tableElement : this._tableElement || $table;\r\n var needWrapRow = this._needWrapRow($tableElement);\r\n if (needWrapRow) {\r\n var $tbody = $(\"\").addClass($row.attr(\"class\"));\r\n this.setAria(\"role\", \"presentation\", $tbody);\r\n return $tbody.append($row)\r\n }\r\n return $row\r\n },\r\n _appendRow: function($table, $row, appendTemplate) {\r\n appendTemplate = appendTemplate || appendElementTemplate;\r\n appendTemplate.render({\r\n content: $row,\r\n container: $table\r\n })\r\n },\r\n _resizeCore: function() {\r\n var scrollLeft = this._scrollLeft;\r\n if (scrollLeft >= 0) {\r\n this._scrollLeft = 0;\r\n this.scrollTo({\r\n left: scrollLeft\r\n })\r\n }\r\n },\r\n _renderCore: function(e) {\r\n var $root = this.element().parent();\r\n if (!$root || $root.parent().length) {\r\n this.renderDelayedTemplates(e)\r\n }\r\n },\r\n _renderTable: function(options) {\r\n options = options || {};\r\n options.columns = this._columnsController.getVisibleColumns();\r\n var changeType = options.change && options.change.changeType;\r\n var $table = this._createTable(options.columns, \"append\" === changeType || \"prepend\" === changeType || \"update\" === changeType);\r\n this._renderRows($table, options);\r\n return $table\r\n },\r\n _renderRows: function($table, options) {\r\n var rows = this._getRows(options.change);\r\n var columnIndices = options.change && options.change.columnIndices || [];\r\n var changeTypes = options.change && options.change.changeTypes || [];\r\n for (var i = 0; i < rows.length; i++) {\r\n this._renderRow($table, extend({\r\n row: rows[i],\r\n columnIndices: columnIndices[i],\r\n changeType: changeTypes[i]\r\n }, options))\r\n }\r\n },\r\n _renderRow: function($table, options) {\r\n if (!options.columnIndices) {\r\n options.row.cells = []\r\n }\r\n var $row = this._createRow(options.row);\r\n var $wrappedRow = this._wrapRowIfNeed($table, $row);\r\n if (\"remove\" !== options.changeType) {\r\n this._renderCells($row, options)\r\n }\r\n this._appendRow($table, $wrappedRow);\r\n var rowOptions = extend({\r\n columns: options.columns\r\n }, options.row);\r\n this._addWatchMethod(rowOptions, options.row);\r\n this._rowPrepared($wrappedRow, rowOptions, options.row)\r\n },\r\n _needRenderCell: function(columnIndex, columnIndices) {\r\n return !columnIndices || columnIndices.indexOf(columnIndex) >= 0\r\n },\r\n _renderCells: function($row, options) {\r\n var columnIndex = 0;\r\n var row = options.row;\r\n var columns = options.columns;\r\n for (var i = 0; i < columns.length; i++) {\r\n if (this._needRenderCell(i, options.columnIndices)) {\r\n this._renderCell($row, extend({\r\n column: columns[i],\r\n columnIndex: columnIndex,\r\n value: row.values && row.values[columnIndex],\r\n oldValue: row.oldValues && row.oldValues[columnIndex]\r\n }, options))\r\n }\r\n if (columns[i].colspan > 1) {\r\n columnIndex += columns[i].colspan\r\n } else {\r\n columnIndex++\r\n }\r\n }\r\n },\r\n _updateCells: function($rowElement, $newRowElement, columnIndices) {\r\n var $cells = $rowElement.children();\r\n var $newCells = $newRowElement.children();\r\n var highlightChanges = this.option(\"highlightChanges\");\r\n var cellUpdatedClass = this.addWidgetPrefix(CELL_UPDATED_ANIMATION_CLASS);\r\n columnIndices.forEach((function(columnIndex, index) {\r\n var $cell = $cells.eq(columnIndex);\r\n var $newCell = $newCells.eq(index);\r\n $cell.replaceWith($newCell);\r\n if (highlightChanges && !$newCell.hasClass(\"dx-command-expand\")) {\r\n $newCell.addClass(cellUpdatedClass)\r\n }\r\n }));\r\n copyAttributes($rowElement.get(0), $newRowElement.get(0))\r\n },\r\n _setCellAriaAttributes: function($cell, cellOptions) {\r\n if (\"freeSpace\" !== cellOptions.rowType) {\r\n this.setAria(\"role\", \"gridcell\", $cell);\r\n var columnIndexOffset = this._columnsController.getColumnIndexOffset();\r\n var ariaColIndex = cellOptions.columnIndex + columnIndexOffset + 1;\r\n this.setAria(\"colindex\", ariaColIndex, $cell)\r\n }\r\n },\r\n _renderCell: function($row, options) {\r\n var cellOptions = this._getCellOptions(options);\r\n if (options.columnIndices) {\r\n if (options.row.cells) {\r\n var cellIndex = options.row.cells.findIndex(cell => cell.columnIndex === cellOptions.columnIndex);\r\n options.row.cells[cellIndex] = cellOptions\r\n }\r\n } else {\r\n options.row.cells.push(cellOptions)\r\n }\r\n var $cell = this._createCell(cellOptions);\r\n this._setCellAriaAttributes($cell, cellOptions);\r\n this._renderCellContent($cell, cellOptions, options);\r\n $row.get(0).appendChild($cell.get(0));\r\n return $cell\r\n },\r\n _renderCellContent: function($cell, options, renderOptions) {\r\n var template = this._getCellTemplate(options);\r\n when(!template || this.renderTemplate($cell, template, options, void 0, renderOptions.change)).done(() => {\r\n this._updateCell($cell, options)\r\n })\r\n },\r\n _getCellTemplate: function() {},\r\n _getRows: function() {\r\n return []\r\n },\r\n _getCellOptions: function(options) {\r\n var cellOptions = {\r\n column: options.column,\r\n columnIndex: options.columnIndex,\r\n rowType: options.row.rowType,\r\n isAltRow: this._isAltRow(options.row)\r\n };\r\n this._addWatchMethod(cellOptions);\r\n return cellOptions\r\n },\r\n _addWatchMethod: function(options, source) {\r\n if (!this.option(\"repaintChangesOnly\")) {\r\n return\r\n }\r\n var watchers = [];\r\n source = source || options;\r\n source.watch = source.watch || function(getter, updateValueFunc, updateRowFunc) {\r\n var oldValue = getter(source.data);\r\n var watcher = function(row) {\r\n if (row && updateRowFunc) {\r\n updateRowFunc(row)\r\n }\r\n var newValue = getter(source.data);\r\n if (JSON.stringify(oldValue) !== JSON.stringify(newValue)) {\r\n if (row) {\r\n updateValueFunc(newValue)\r\n }\r\n oldValue = newValue\r\n }\r\n };\r\n watchers.push(watcher);\r\n return function() {\r\n var index = watchers.indexOf(watcher);\r\n if (index >= 0) {\r\n watchers.splice(index, 1)\r\n }\r\n }\r\n };\r\n source.update = source.update || function(row, keepRow) {\r\n if (row) {\r\n this.data = options.data = row.data;\r\n this.rowIndex = options.rowIndex = row.rowIndex;\r\n this.dataIndex = options.dataIndex = row.dataIndex;\r\n this.isExpanded = options.isExpanded = row.isExpanded;\r\n if (options.row && !keepRow) {\r\n options.row = row\r\n }\r\n }\r\n watchers.forEach((function(watcher) {\r\n watcher(row)\r\n }))\r\n };\r\n if (source !== options) {\r\n options.watch = source.watch.bind(source)\r\n }\r\n return options\r\n },\r\n _cellPrepared: function(cell, options) {\r\n options.cellElement = getPublicElement($(cell));\r\n this.executeAction(\"onCellPrepared\", options)\r\n },\r\n _rowPrepared: function($row, options) {\r\n elementData($row.get(0), \"options\", options);\r\n options.rowElement = getPublicElement($row);\r\n this.executeAction(\"onRowPrepared\", options)\r\n },\r\n _columnOptionChanged: function(e) {\r\n var optionNames = e.optionNames;\r\n if (gridCoreUtils.checkChanges(optionNames, [\"width\", \"visibleWidth\"])) {\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n var widths = iteratorUtils.map(visibleColumns, (function(column) {\r\n var width = column.visibleWidth || column.width;\r\n return isDefined(width) ? width : \"auto\"\r\n }));\r\n this.setColumnWidths({\r\n widths: widths,\r\n optionNames: optionNames\r\n });\r\n return\r\n }\r\n if (!this._requireReady) {\r\n this.render()\r\n }\r\n },\r\n getCellIndex: function($cell) {\r\n var cellIndex = $cell.length ? $cell[0].cellIndex : -1;\r\n return cellIndex\r\n },\r\n getTableElements: function() {\r\n return this._tableElement || $()\r\n },\r\n getTableElement: function() {\r\n return this._tableElement\r\n },\r\n setTableElement: function(tableElement) {\r\n this._tableElement = tableElement\r\n },\r\n optionChanged: function(args) {\r\n this.callBase(args);\r\n switch (args.name) {\r\n case \"cellHintEnabled\":\r\n case \"onCellPrepared\":\r\n case \"onRowPrepared\":\r\n case \"onCellHoverChanged\":\r\n this._invalidate(true, true);\r\n args.handled = true\r\n }\r\n },\r\n init: function() {\r\n var that = this;\r\n that._scrollLeft = -1;\r\n that._columnsController = that.getController(\"columns\");\r\n that._dataController = that.getController(\"data\");\r\n that._delayedTemplates = [];\r\n that._templatesCache = {};\r\n that.createAction(\"onCellClick\");\r\n that.createAction(\"onRowClick\");\r\n that.createAction(\"onCellDblClick\");\r\n that.createAction(\"onRowDblClick\");\r\n that.createAction(\"onCellHoverChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n that.createAction(\"onCellPrepared\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"],\r\n category: \"rendering\"\r\n });\r\n that.createAction(\"onRowPrepared\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"],\r\n category: \"rendering\",\r\n afterExecute: function(e) {\r\n that._afterRowPrepared(e)\r\n }\r\n });\r\n that._columnsController.columnsChanged.add(that._columnOptionChanged.bind(that));\r\n that._dataController && that._dataController.changed.add(that._handleDataChanged.bind(that))\r\n },\r\n _afterRowPrepared: noop,\r\n _handleDataChanged: function() {},\r\n callbackNames: function() {\r\n return [\"scrollChanged\"]\r\n },\r\n _updateScrollLeftPosition: function() {\r\n var scrollLeft = this._scrollLeft;\r\n if (scrollLeft >= 0) {\r\n this._scrollLeft = 0;\r\n this.scrollTo({\r\n left: scrollLeft\r\n })\r\n }\r\n },\r\n scrollTo: function(pos) {\r\n var $element = this.element();\r\n var $scrollContainer = $element && $element.children(\".\" + this.addWidgetPrefix(SCROLL_CONTAINER_CLASS)).not(\".\" + this.addWidgetPrefix(CONTENT_FIXED_CLASS));\r\n if (isDefined(pos) && isDefined(pos.left) && this._scrollLeft !== pos.left) {\r\n this._scrollLeft = pos.left;\r\n $scrollContainer && $scrollContainer.scrollLeft(pos.left)\r\n }\r\n },\r\n _wrapTableInScrollContainer: function($table) {\r\n var $scrollContainer = $(\"
\");\r\n var useNative = this.option(\"scrolling.useNative\");\r\n if (false === useNative || \"auto\" === useNative && !nativeScrolling) {\r\n $scrollContainer.addClass(this.addWidgetPrefix(SCROLLABLE_SIMULATED_CLASS))\r\n }\r\n eventsEngine.on($scrollContainer, \"scroll\", () => {\r\n var scrollLeft = $scrollContainer.scrollLeft();\r\n if (scrollLeft !== this._scrollLeft) {\r\n this.scrollChanged.fire({\r\n left: scrollLeft\r\n }, this.name)\r\n }\r\n });\r\n $scrollContainer.addClass(this.addWidgetPrefix(CONTENT_CLASS)).addClass(this.addWidgetPrefix(SCROLL_CONTAINER_CLASS)).append($table).appendTo(this.element());\r\n this.setAria(\"role\", \"presentation\", $scrollContainer);\r\n return $scrollContainer\r\n },\r\n _updateContent: function($newTableElement) {\r\n this.setTableElement($newTableElement);\r\n this._wrapTableInScrollContainer($newTableElement)\r\n },\r\n _findContentElement: noop,\r\n _getWidths: function($cellElements) {\r\n var result = [];\r\n var width;\r\n if ($cellElements) {\r\n iteratorUtils.each($cellElements, (function(index, item) {\r\n width = item.offsetWidth;\r\n if (item.getBoundingClientRect) {\r\n var clientRect = getBoundingRect(item);\r\n if (clientRect.width > width - 1) {\r\n width = clientRect.width\r\n }\r\n }\r\n result.push(width)\r\n }))\r\n }\r\n return result\r\n },\r\n getColumnWidths: function($tableElement) {\r\n var result = [];\r\n var $rows;\r\n var $cells;\r\n (this.option(\"forceApplyBindings\") || noop)();\r\n $tableElement = $tableElement || this.getTableElement();\r\n if ($tableElement) {\r\n $rows = $tableElement.children(\"tbody:not(.dx-header)\").children();\r\n for (var i = 0; i < $rows.length; i++) {\r\n var $row = $rows.eq(i);\r\n var isRowVisible = \"none\" !== $row.get(0).style.display && !$row.hasClass(\"dx-state-invisible\");\r\n if (!$row.is(\".\" + GROUP_ROW_CLASS) && !$row.is(\".\" + DETAIL_ROW_CLASS) && !$row.is(\".\" + ERROR_ROW_CLASS) && isRowVisible) {\r\n $cells = $row.children(\"td\");\r\n break\r\n }\r\n }\r\n result = this._getWidths($cells)\r\n }\r\n return result\r\n },\r\n getVisibleColumnIndex: function(columnIndex, rowIndex) {\r\n return columnIndex\r\n },\r\n setColumnWidths: function(_ref) {\r\n var {\r\n widths: widths,\r\n $tableElement: $tableElement,\r\n columns: columns,\r\n fixed: fixed\r\n } = _ref;\r\n var $cols;\r\n var width;\r\n var minWidth;\r\n var columnIndex;\r\n var columnAutoWidth = this.option(\"columnAutoWidth\");\r\n $tableElement = $tableElement || this.getTableElement();\r\n if ($tableElement && $tableElement.length && widths) {\r\n columnIndex = 0;\r\n $cols = $tableElement.children(\"colgroup\").children(\"col\");\r\n setWidth($cols, \"auto\");\r\n columns = columns || this.getColumns(null, $tableElement);\r\n for (var i = 0; i < columns.length; i++) {\r\n if (columnAutoWidth && !fixed) {\r\n width = columns[i].width;\r\n if (width && !columns[i].command) {\r\n width = columns[i].visibleWidth || width;\r\n width = getWidthStyle(width);\r\n minWidth = getWidthStyle(columns[i].minWidth || width);\r\n var $rows = $rows || $tableElement.children().children(\".dx-row\").not(\".\" + DETAIL_ROW_CLASS);\r\n for (var rowIndex = 0; rowIndex < $rows.length; rowIndex++) {\r\n var row = $rows[rowIndex];\r\n var cell = void 0;\r\n var visibleIndex = this.getVisibleColumnIndex(i, rowIndex);\r\n if (row.classList.contains(GROUP_ROW_CLASS)) {\r\n cell = row.querySelector(\"td[aria-colindex='\".concat(visibleIndex + 1, \"']:not(.\").concat(GROUP_CELL_CLASS, \")\"))\r\n } else {\r\n cell = row.cells[visibleIndex]\r\n }\r\n if (cell) {\r\n setCellWidth(cell, columns[i], width);\r\n cell.style.minWidth = minWidth\r\n }\r\n }\r\n }\r\n }\r\n if (columns[i].colspan) {\r\n columnIndex += columns[i].colspan;\r\n continue\r\n }\r\n width = widths[columnIndex];\r\n if (\"adaptiveHidden\" === width) {\r\n width = HIDDEN_COLUMNS_WIDTH\r\n }\r\n if (\"number\" === typeof width) {\r\n width = width.toFixed(3) + \"px\"\r\n }\r\n setWidth($cols.eq(columnIndex), isDefined(width) ? width : \"auto\");\r\n columnIndex++\r\n }\r\n }\r\n },\r\n getCellElements: function(rowIndex) {\r\n return this._getCellElementsCore(rowIndex)\r\n },\r\n _getCellElementsCore: function(rowIndex) {\r\n var $row = this._getRowElements().eq(rowIndex);\r\n return $row.children()\r\n },\r\n _getCellElement: function(rowIndex, columnIdentifier) {\r\n var $cell;\r\n var $cells = this.getCellElements(rowIndex);\r\n var columnVisibleIndex = this._getVisibleColumnIndex($cells, rowIndex, columnIdentifier);\r\n if ($cells.length && columnVisibleIndex >= 0) {\r\n $cell = $cells.eq(columnVisibleIndex)\r\n }\r\n if ($cell && $cell.length) {\r\n return $cell\r\n }\r\n },\r\n _getRowElement: function(rowIndex) {\r\n var that = this;\r\n var $rowElement = $();\r\n var $tableElements = that.getTableElements();\r\n iteratorUtils.each($tableElements, (function(_, tableElement) {\r\n $rowElement = $rowElement.add(that._getRowElements($(tableElement)).eq(rowIndex))\r\n }));\r\n if ($rowElement.length) {\r\n return $rowElement\r\n }\r\n },\r\n getCellElement: function(rowIndex, columnIdentifier) {\r\n return getPublicElement(this._getCellElement(rowIndex, columnIdentifier))\r\n },\r\n getRowElement: function(rowIndex) {\r\n var $rows = this._getRowElement(rowIndex);\r\n var elements = [];\r\n if ($rows && !getPublicElement($rows).get) {\r\n for (var i = 0; i < $rows.length; i++) {\r\n elements.push($rows[i])\r\n }\r\n } else {\r\n elements = $rows\r\n }\r\n return elements\r\n },\r\n _getVisibleColumnIndex: function($cells, rowIndex, columnIdentifier) {\r\n if (isString(columnIdentifier)) {\r\n var columnIndex = this._columnsController.columnOption(columnIdentifier, \"index\");\r\n return this._columnsController.getVisibleIndex(columnIndex)\r\n }\r\n return columnIdentifier\r\n },\r\n getColumnElements: function() {},\r\n getColumns: function(rowIndex) {\r\n return this._columnsController.getVisibleColumns(rowIndex)\r\n },\r\n getCell: function(cellPosition, rows) {\r\n var $rows = rows || this._getRowElements();\r\n var $cells;\r\n if ($rows.length > 0 && cellPosition.rowIndex >= 0) {\r\n if (\"virtual\" !== this.option(\"scrolling.mode\") && \"virtual\" !== this.option(\"scrolling.rowRenderingMode\")) {\r\n cellPosition.rowIndex = cellPosition.rowIndex < $rows.length ? cellPosition.rowIndex : $rows.length - 1\r\n }\r\n $cells = this.getCellElements(cellPosition.rowIndex);\r\n if ($cells && $cells.length > 0) {\r\n return $cells.eq($cells.length > cellPosition.columnIndex ? cellPosition.columnIndex : $cells.length - 1)\r\n }\r\n }\r\n },\r\n getRowsCount: function() {\r\n var tableElement = this.getTableElement();\r\n if (tableElement && 1 === tableElement.length) {\r\n return tableElement[0].rows.length\r\n }\r\n return 0\r\n },\r\n _getRowElementsCore: function(tableElement) {\r\n tableElement = tableElement || this.getTableElement();\r\n if (tableElement) {\r\n var hasRowTemplate = this.option().rowTemplate || this.option(\"dataRowTemplate\");\r\n var tBodies = hasRowTemplate && tableElement.find(\"> tbody.\" + ROW_CLASS);\r\n return tBodies && tBodies.length ? tBodies : tableElement.find(\"> tbody > .\" + ROW_CLASS + \", > .\" + ROW_CLASS)\r\n }\r\n return $()\r\n },\r\n _getRowElements: function(tableElement) {\r\n return this._getRowElementsCore(tableElement)\r\n },\r\n getRowIndex: function($row) {\r\n return this._getRowElements().index($row)\r\n },\r\n getBoundingRect: function() {},\r\n getName: function() {},\r\n setScrollerSpacing: function(width) {\r\n var $element = this.element();\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n $element && $element.css({\r\n paddingLeft: rtlEnabled ? width : \"\",\r\n paddingRight: !rtlEnabled ? width : \"\"\r\n })\r\n },\r\n isScrollbarVisible: function(isHorizontal) {\r\n var $element = this.element();\r\n var $tableElement = this._tableElement;\r\n if ($element && $tableElement) {\r\n return isHorizontal ? getOuterWidth($tableElement) - getWidth($element) > 0 : getOuterHeight($tableElement) - getHeight($element) > 0\r\n }\r\n return false\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/ui/shared/accessibility.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nvar FOCUS_STATE_CLASS = \"dx-state-focused\";\r\nvar FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar FOCUSED_ROW_SELECTOR = \".dx-row-focused\";\r\nvar GRID_ROW_SELECTOR = \".dx-datagrid-rowsview .dx-row\";\r\nvar GRID_CELL_SELECTOR = \"\".concat(GRID_ROW_SELECTOR, \" > td\");\r\nvar TREELIST_ROW_SELECTOR = \".dx-treelist-rowsview .dx-row\";\r\nvar TREELIST_CELL_SELECTOR = \"\".concat(TREELIST_ROW_SELECTOR, \" > td\");\r\nvar viewItemSelectorMap = {\r\n groupPanel: [\".dx-datagrid-group-panel .dx-group-panel-item[tabindex]\"],\r\n columnHeaders: [\".dx-datagrid-headers .dx-header-row > td.dx-datagrid-action\", \".dx-treelist-headers .dx-header-row > td.dx-treelist-action\"],\r\n filterRow: [\".dx-datagrid-headers .dx-datagrid-filter-row .dx-editor-cell .dx-texteditor-input\", \".dx-treelist-headers .dx-treelist-filter-row .dx-editor-cell .dx-texteditor-input\"],\r\n rowsView: [\"\".concat(FOCUSED_ROW_SELECTOR), \"\".concat(GRID_ROW_SELECTOR, \"[tabindex]\"), \"\".concat(GRID_CELL_SELECTOR, \"[tabindex]\"), \"\".concat(GRID_CELL_SELECTOR), \"\".concat(TREELIST_ROW_SELECTOR, \"[tabindex]\"), \"\".concat(TREELIST_CELL_SELECTOR, \"[tabindex]\"), \"\".concat(TREELIST_CELL_SELECTOR)],\r\n footer: [\".dx-datagrid-total-footer .dx-datagrid-summary-item\", \".dx-treelist-total-footer .dx-treelist-summary-item\"],\r\n filterPanel: [\".dx-datagrid-filter-panel .dx-icon-filter\", \".dx-treelist-filter-panel .dx-icon-filter\"],\r\n pager: [\".dx-datagrid-pager [tabindex]\", \".dx-treelist-pager [tabindex]\"]\r\n};\r\nvar isMouseDown = false;\r\nvar isHiddenFocusing = false;\r\nvar focusedElementInfo = null;\r\n\r\nfunction processKeyDown(viewName, instance, event, action, $mainElement, executeKeyDown) {\r\n var isHandled = fireKeyDownEvent(instance, event.originalEvent, executeKeyDown);\r\n if (isHandled) {\r\n return\r\n }\r\n var keyName = normalizeKeyName(event);\r\n if (\"enter\" === keyName || \"space\" === keyName) {\r\n saveFocusedElementInfo(event.target, instance);\r\n action && action({\r\n event: event\r\n })\r\n } else if (\"tab\" === keyName) {\r\n $mainElement.addClass(FOCUS_STATE_CLASS)\r\n } else {\r\n selectView(viewName, instance, event)\r\n }\r\n}\r\n\r\nfunction saveFocusedElementInfo(target, instance) {\r\n var $target = $(target);\r\n var ariaLabel = $target.attr(\"aria-label\");\r\n var $activeElements = getActiveAccessibleElements(ariaLabel, instance.element());\r\n var targetIndex = $activeElements.index($target);\r\n focusedElementInfo = extend({}, {\r\n ariaLabel: ariaLabel,\r\n index: targetIndex\r\n }, {\r\n viewInstance: instance\r\n })\r\n}\r\n\r\nfunction getActiveAccessibleElements(ariaLabel, viewElement) {\r\n var $viewElement = $(viewElement);\r\n var $activeElements;\r\n if (ariaLabel) {\r\n $activeElements = $viewElement.find('[aria-label=\"'.concat(ariaLabel, '\"][tabindex]'))\r\n } else {\r\n $activeElements = $viewElement.find(\"[tabindex]\")\r\n }\r\n return $activeElements\r\n}\r\n\r\nfunction findFocusedViewElement(viewSelectors) {\r\n for (var index in viewSelectors) {\r\n var selector = viewSelectors[index];\r\n var $focusViewElement = $(selector).first();\r\n if ($focusViewElement.length) {\r\n return $focusViewElement\r\n }\r\n }\r\n}\r\n\r\nfunction fireKeyDownEvent(instance, event, executeAction) {\r\n var args = {\r\n event: event,\r\n handled: false\r\n };\r\n if (executeAction) {\r\n executeAction(args)\r\n } else {\r\n instance._createActionByOption(\"onKeyDown\")(args)\r\n }\r\n return args.handled\r\n}\r\n\r\nfunction onDocumentVisibilityChange() {\r\n isHiddenFocusing = \"visible\" === domAdapter.getDocument().visibilityState\r\n}\r\nexport function subscribeVisibilityChange() {\r\n eventsEngine.on(domAdapter.getDocument(), \"visibilitychange\", onDocumentVisibilityChange)\r\n}\r\nexport function unsubscribeVisibilityChange() {\r\n eventsEngine.off(domAdapter.getDocument(), \"visibilitychange\", onDocumentVisibilityChange)\r\n}\r\nexport function hiddenFocus(element) {\r\n isHiddenFocusing = true;\r\n element.focus();\r\n isHiddenFocusing = false\r\n}\r\nexport function registerKeyboardAction(viewName, instance, $element, selector, action, executeKeyDown) {\r\n if (instance.option(\"useLegacyKeyboardNavigation\")) {\r\n return noop\r\n }\r\n var getMainElement = () => $(instance.element());\r\n var keyDownHandler = e => processKeyDown(viewName, instance, e, action, getMainElement(), executeKeyDown);\r\n var mouseDownHandler = () => {\r\n isMouseDown = true;\r\n getMainElement().removeClass(FOCUS_STATE_CLASS)\r\n };\r\n var focusinHandler = () => {\r\n var needShowOverlay = !isMouseDown && !isHiddenFocusing;\r\n if (needShowOverlay) {\r\n getMainElement().addClass(FOCUS_STATE_CLASS)\r\n }\r\n isMouseDown = false\r\n };\r\n eventsEngine.on($element, \"keydown\", selector, keyDownHandler);\r\n eventsEngine.on($element, \"mousedown\", selector, mouseDownHandler);\r\n eventsEngine.on($element, \"focusin\", selector, focusinHandler);\r\n return () => {\r\n eventsEngine.off($element, \"keydown\", selector, keyDownHandler);\r\n eventsEngine.off($element, \"mousedown\", selector, mouseDownHandler);\r\n eventsEngine.off($element, \"focusin\", selector, focusinHandler)\r\n }\r\n}\r\nexport function restoreFocus(instance) {\r\n if (!instance.option(\"useLegacyKeyboardNavigation\") && focusedElementInfo) {\r\n var viewInstance = focusedElementInfo.viewInstance;\r\n if (viewInstance) {\r\n var $activeElements = getActiveAccessibleElements(focusedElementInfo.ariaLabel, viewInstance.element());\r\n var $targetElement = $activeElements.eq(focusedElementInfo.index);\r\n focusedElementInfo = null;\r\n eventsEngine.trigger($targetElement, \"focus\")\r\n }\r\n }\r\n}\r\nexport function selectView(viewName, instance, event) {\r\n var keyName = normalizeKeyName(event);\r\n if (event.ctrlKey && (\"upArrow\" === keyName || \"downArrow\" === keyName)) {\r\n var viewNames = Object.keys(viewItemSelectorMap);\r\n var viewItemIndex = viewNames.indexOf(viewName);\r\n while (viewItemIndex >= 0 && viewItemIndex < viewNames.length) {\r\n viewItemIndex = \"upArrow\" === keyName ? --viewItemIndex : ++viewItemIndex;\r\n var _viewName = viewNames[viewItemIndex];\r\n var viewSelectors = viewItemSelectorMap[_viewName];\r\n var $focusViewElement = findFocusedViewElement(viewSelectors);\r\n if ($focusViewElement && $focusViewElement.length) {\r\n $focusViewElement.attr(\"tabindex\", instance.option(\"tabindex\") || 0);\r\n eventsEngine.trigger($focusViewElement, \"focus\");\r\n $focusViewElement.removeClass(FOCUS_DISABLED_CLASS);\r\n break\r\n }\r\n }\r\n }\r\n}\r\nexport function setTabIndex(instance, $element) {\r\n if (!instance.option(\"useLegacyKeyboardnavigation\")) {\r\n $element.attr(\"tabindex\", instance.option(\"tabindex\") || 0)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.accessibility.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport * as accessibility from \"../../ui/shared/accessibility\";\r\nexport var registerKeyboardAction = function(viewName, instance, $element, selector, action) {\r\n var keyboardController = instance.getController(\"keyboardNavigation\");\r\n if (instance.option(\"useLegacyKeyboardNavigation\") || keyboardController && !keyboardController.isKeyboardEnabled()) {\r\n return\r\n }\r\n instance.createAction(\"onKeyDown\");\r\n accessibility.registerKeyboardAction(viewName, instance, $element, selector, action, args => {\r\n instance.executeAction(\"onKeyDown\", args)\r\n })\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.column_headers.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n ColumnsView\r\n} from \"./ui.grid_core.columns_view\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n registerKeyboardAction\r\n} from \"./ui.grid_core.accessibility\";\r\nvar CELL_CONTENT_CLASS = \"text-content\";\r\nvar HEADERS_CLASS = \"headers\";\r\nvar NOWRAP_CLASS = \"nowrap\";\r\nvar ROW_CLASS_SELECTOR = \".dx-row\";\r\nvar HEADER_ROW_CLASS = \"dx-header-row\";\r\nvar COLUMN_LINES_CLASS = \"dx-column-lines\";\r\nvar CONTEXT_MENU_SORT_ASC_ICON = \"context-menu-sort-asc\";\r\nvar CONTEXT_MENU_SORT_DESC_ICON = \"context-menu-sort-desc\";\r\nvar CONTEXT_MENU_SORT_NONE_ICON = \"context-menu-sort-none\";\r\nvar CELL_FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar VISIBILITY_HIDDEN_CLASS = \"dx-visibility-hidden\";\r\nvar TEXT_CONTENT_ALIGNMENT_CLASS_PREFIX = \"dx-text-content-alignment-\";\r\nvar SORT_INDICATOR_CLASS = \"dx-sort-indicator\";\r\nvar SORT_INDEX_INDICATOR_CLASS = \"dx-sort-index-indicator\";\r\nvar HEADER_FILTER_CLASS_SELECTOR = \".dx-header-filter\";\r\nvar HEADER_FILTER_INDICATOR_CLASS = \"dx-header-filter-indicator\";\r\nvar MULTI_ROW_HEADER_CLASS = \"dx-header-multi-row\";\r\nexport var columnHeadersModule = {\r\n defaultOptions: function() {\r\n return {\r\n showColumnHeaders: true,\r\n cellHintEnabled: true\r\n }\r\n },\r\n views: {\r\n columnHeadersView: ColumnsView.inherit(function() {\r\n var createCellContent = function(that, $cell, options) {\r\n var $cellContent = $(\"
\").addClass(that.addWidgetPrefix(CELL_CONTENT_CLASS));\r\n that.setAria(\"role\", \"presentation\", $cellContent);\r\n addCssClassesToCellContent(that, $cell, options.column, $cellContent);\r\n var showColumnLines = that.option(\"showColumnLines\");\r\n var contentAlignment = that.getController(\"columns\").getHeaderContentAlignment(options.column.alignment);\r\n return $cellContent[showColumnLines || \"right\" === contentAlignment ? \"appendTo\" : \"prependTo\"]($cell)\r\n };\r\n\r\n function addCssClassesToCellContent(that, $cell, column, $cellContent) {\r\n var $indicatorElements = that._getIndicatorElements($cell, true);\r\n var $visibleIndicatorElements = that._getIndicatorElements($cell);\r\n var indicatorCount = $indicatorElements && $indicatorElements.length;\r\n var columnAlignment = that._getColumnAlignment(column.alignment);\r\n var sortIndicatorClassName = \".\".concat(that._getIndicatorClassName(\"sort\"));\r\n var sortIndexIndicatorClassName = \".\".concat(that._getIndicatorClassName(\"sortIndex\"));\r\n var $sortIndicator = $visibleIndicatorElements.filter(sortIndicatorClassName);\r\n var $sortIndexIndicator = $visibleIndicatorElements.children().filter(sortIndexIndicatorClassName);\r\n $cellContent = $cellContent || $cell.children(\".\" + that.addWidgetPrefix(CELL_CONTENT_CLASS));\r\n $cellContent.toggleClass(TEXT_CONTENT_ALIGNMENT_CLASS_PREFIX + columnAlignment, indicatorCount > 0).toggleClass(TEXT_CONTENT_ALIGNMENT_CLASS_PREFIX + (\"left\" === columnAlignment ? \"right\" : \"left\"), indicatorCount > 0 && \"center\" === column.alignment).toggleClass(SORT_INDICATOR_CLASS, !!$sortIndicator.length).toggleClass(SORT_INDEX_INDICATOR_CLASS, !!$sortIndexIndicator.length).toggleClass(HEADER_FILTER_INDICATOR_CLASS, !!$visibleIndicatorElements.filter(\".\" + that._getIndicatorClassName(\"headerFilter\")).length)\r\n }\r\n return {\r\n _createTable: function() {\r\n var $table = this.callBase.apply(this, arguments);\r\n eventsEngine.on($table, \"mousedown selectstart\", this.createAction((function(e) {\r\n var event = e.event;\r\n if (event.shiftKey) {\r\n event.preventDefault()\r\n }\r\n })));\r\n return $table\r\n },\r\n _isLegacyKeyboardNavigation() {\r\n return this.option(\"useLegacyKeyboardNavigation\")\r\n },\r\n _getDefaultTemplate: function(column) {\r\n var that = this;\r\n return function($container, options) {\r\n var $content = column.command ? $container : createCellContent(that, $container, options);\r\n var caption = \"expand\" !== column.command && column.caption;\r\n if (caption) {\r\n $content.text(caption)\r\n } else if (column.command) {\r\n $container.html(\" \")\r\n }\r\n }\r\n },\r\n _getHeaderTemplate: function(column) {\r\n return column.headerCellTemplate || {\r\n allowRenderToDetachedContainer: true,\r\n render: this._getDefaultTemplate(column)\r\n }\r\n },\r\n _processTemplate: function(template, options) {\r\n var that = this;\r\n var resultTemplate;\r\n var column = options.column;\r\n var renderingTemplate = that.callBase(template);\r\n if (\"header\" === options.rowType && renderingTemplate && column.headerCellTemplate && !column.command) {\r\n resultTemplate = {\r\n render: function(options) {\r\n var $content = createCellContent(that, options.container, options.model);\r\n renderingTemplate.render(extend({}, options, {\r\n container: $content\r\n }))\r\n }\r\n }\r\n } else {\r\n resultTemplate = renderingTemplate\r\n }\r\n return resultTemplate\r\n },\r\n _handleDataChanged: function(e) {\r\n if (\"refresh\" !== e.changeType) {\r\n return\r\n }\r\n if (this._isGroupingChanged || this._requireReady) {\r\n this._isGroupingChanged = false;\r\n this.render()\r\n }\r\n },\r\n _renderCell: function($row, options) {\r\n var $cell = this.callBase($row, options);\r\n if (\"header\" === options.row.rowType) {\r\n $cell.addClass(CELL_FOCUS_DISABLED_CLASS);\r\n if (!this._isLegacyKeyboardNavigation()) {\r\n if (options.column && !options.column.type) {\r\n $cell.attr(\"tabindex\", this.option(\"tabindex\") || 0)\r\n }\r\n }\r\n }\r\n return $cell\r\n },\r\n _setCellAriaAttributes: function($cell, cellOptions) {\r\n this.callBase($cell, cellOptions);\r\n if (\"header\" === cellOptions.rowType) {\r\n this.setAria(\"role\", \"columnheader\", $cell);\r\n if (cellOptions.column && !cellOptions.column.command && !cellOptions.column.isBand) {\r\n $cell.attr(\"id\", cellOptions.column.headerId);\r\n this.setAria(\"label\", messageLocalization.format(\"dxDataGrid-ariaColumn\") + \" \" + cellOptions.column.caption, $cell)\r\n }\r\n }\r\n },\r\n _createRow: function(row) {\r\n var $row = this.callBase.apply(this, arguments);\r\n $row.toggleClass(COLUMN_LINES_CLASS, this.option(\"showColumnLines\"));\r\n if (\"header\" === row.rowType) {\r\n $row.addClass(HEADER_ROW_CLASS);\r\n if (!this._isLegacyKeyboardNavigation()) {\r\n registerKeyboardAction(\"columnHeaders\", this, $row, \"td\", this._handleActionKeyDown.bind(this))\r\n }\r\n }\r\n return $row\r\n },\r\n _handleActionKeyDown: function(args) {\r\n var event = args.event;\r\n var $target = $(event.target);\r\n this._lastActionElement = event.target;\r\n if ($target.is(HEADER_FILTER_CLASS_SELECTOR)) {\r\n var headerFilterController = this.getController(\"headerFilter\");\r\n var $column = $target.closest(\"td\");\r\n var columnIndex = this.getColumnIndexByElement($column);\r\n if (columnIndex >= 0) {\r\n headerFilterController.showHeaderFilterMenu(columnIndex, false)\r\n }\r\n } else {\r\n var $row = $target.closest(ROW_CLASS_SELECTOR);\r\n this._processHeaderAction(event, $row)\r\n }\r\n event.preventDefault()\r\n },\r\n _renderCore: function() {\r\n var that = this;\r\n var $container = that.element();\r\n if (that._tableElement && !that._dataController.isLoaded() && !that._hasRowElements) {\r\n return\r\n }\r\n $container.addClass(that.addWidgetPrefix(HEADERS_CLASS)).toggleClass(that.addWidgetPrefix(NOWRAP_CLASS), !that.option(\"wordWrapEnabled\")).empty();\r\n that.setAria(\"role\", \"presentation\", $container);\r\n that._updateContent(that._renderTable());\r\n if (that.getRowCount() > 1) {\r\n $container.addClass(MULTI_ROW_HEADER_CLASS)\r\n }\r\n that.callBase.apply(that, arguments)\r\n },\r\n _renderRows: function() {\r\n var that = this;\r\n if (that._dataController.isLoaded() || that._hasRowElements) {\r\n that.callBase.apply(that, arguments);\r\n that._hasRowElements = true\r\n }\r\n },\r\n _getRowVisibleColumns: function(rowIndex) {\r\n return this._columnsController.getVisibleColumns(rowIndex)\r\n },\r\n _renderRow: function($table, options) {\r\n options.columns = this._getRowVisibleColumns(options.row.rowIndex);\r\n this.callBase($table, options)\r\n },\r\n _createCell: function(options) {\r\n var column = options.column;\r\n var $cellElement = this.callBase.apply(this, arguments);\r\n column.rowspan > 1 && \"header\" === options.rowType && $cellElement.attr(\"rowSpan\", column.rowspan);\r\n return $cellElement\r\n },\r\n _getRows: function() {\r\n var result = [];\r\n var rowCount = this.getRowCount();\r\n if (this.option(\"showColumnHeaders\")) {\r\n for (var i = 0; i < rowCount; i++) {\r\n result.push({\r\n rowType: \"header\",\r\n rowIndex: i\r\n })\r\n }\r\n }\r\n return result\r\n },\r\n _getCellTemplate: function(options) {\r\n if (\"header\" === options.rowType) {\r\n return this._getHeaderTemplate(options.column)\r\n }\r\n },\r\n _columnOptionChanged: function(e) {\r\n var changeTypes = e.changeTypes;\r\n var optionNames = e.optionNames;\r\n if (changeTypes.grouping || changeTypes.groupExpanding) {\r\n if (changeTypes.grouping) {\r\n this._isGroupingChanged = true\r\n }\r\n return\r\n }\r\n this.callBase(e);\r\n if (optionNames.width || optionNames.visible) {\r\n this.resizeCompleted.fire()\r\n }\r\n },\r\n _isElementVisible: function(elementOptions) {\r\n return elementOptions && elementOptions.visible\r\n },\r\n _alignCaptionByCenter: function($cell) {\r\n var $indicatorsContainer = this._getIndicatorContainer($cell, true);\r\n if ($indicatorsContainer && $indicatorsContainer.length) {\r\n $indicatorsContainer.filter(\".\" + VISIBILITY_HIDDEN_CLASS).remove();\r\n $indicatorsContainer = this._getIndicatorContainer($cell);\r\n $indicatorsContainer.clone().addClass(VISIBILITY_HIDDEN_CLASS).css(\"float\", \"\").insertBefore($cell.children(\".\" + this.addWidgetPrefix(CELL_CONTENT_CLASS)))\r\n }\r\n },\r\n _updateCell: function($cell, options) {\r\n if (\"header\" === options.rowType && \"center\" === options.column.alignment) {\r\n this._alignCaptionByCenter($cell)\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _updateIndicator: function($cell, column, indicatorName) {\r\n var $indicatorElement = this.callBase.apply(this, arguments);\r\n if (\"center\" === column.alignment) {\r\n this._alignCaptionByCenter($cell)\r\n }\r\n addCssClassesToCellContent(this, $cell, column);\r\n return $indicatorElement\r\n },\r\n _getIndicatorContainer: function($cell, returnAll) {\r\n var $indicatorsContainer = this.callBase($cell);\r\n return returnAll ? $indicatorsContainer : $indicatorsContainer.filter(\":not(.\" + VISIBILITY_HIDDEN_CLASS + \")\")\r\n },\r\n _isSortableElement: function() {\r\n return true\r\n },\r\n getHeadersRowHeight: function() {\r\n var $tableElement = this.getTableElement();\r\n var $headerRows = $tableElement && $tableElement.find(\".\" + HEADER_ROW_CLASS);\r\n return $headerRows && $headerRows.toArray().reduce((function(sum, headerRow) {\r\n return sum + getHeight(headerRow)\r\n }), 0) || 0\r\n },\r\n getHeaderElement: function(index) {\r\n var columnElements = this.getColumnElements();\r\n return columnElements && columnElements.eq(index)\r\n },\r\n getColumnElements: function(index, bandColumnIndex) {\r\n var that = this;\r\n var $cellElement;\r\n var columnsController = that._columnsController;\r\n var rowCount = that.getRowCount();\r\n if (that.option(\"showColumnHeaders\")) {\r\n if (rowCount > 1 && (!isDefined(index) || isDefined(bandColumnIndex))) {\r\n var result = [];\r\n var visibleColumns = isDefined(bandColumnIndex) ? columnsController.getChildrenByBandColumn(bandColumnIndex, true) : columnsController.getVisibleColumns();\r\n each(visibleColumns, (function(_, column) {\r\n var rowIndex = isDefined(index) ? index : columnsController.getRowIndex(column.index);\r\n $cellElement = that._getCellElement(rowIndex, columnsController.getVisibleIndex(column.index, rowIndex));\r\n $cellElement && result.push($cellElement.get(0))\r\n }));\r\n return $(result)\r\n } else if (!index || index < rowCount) {\r\n return that.getCellElements(index || 0)\r\n }\r\n }\r\n },\r\n getColumnIndexByElement: function($cell) {\r\n var cellIndex = this.getCellIndex($cell);\r\n var $row = $cell.closest(\".dx-row\");\r\n var rowIndex = $row[0].rowIndex;\r\n var column = this.getColumns(rowIndex)[cellIndex];\r\n return column ? column.index : -1\r\n },\r\n getVisibleColumnIndex: function(columnIndex, rowIndex) {\r\n var column = this.getColumns()[columnIndex];\r\n return column ? this._columnsController.getVisibleIndex(column.index, rowIndex) : -1\r\n },\r\n getColumnWidths: function() {\r\n var $columnElements = this.getColumnElements();\r\n if ($columnElements && $columnElements.length) {\r\n return this._getWidths($columnElements)\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n allowDragging: function(column, sourceLocation, draggingPanels) {\r\n var i;\r\n var draggableColumnCount = 0;\r\n var rowIndex = column && this._columnsController.getRowIndex(column.index);\r\n var columns = this.getColumns(0 === rowIndex ? 0 : null);\r\n var canHideColumn = (null === column || void 0 === column ? void 0 : column.allowHiding) && columns.length > 1;\r\n var allowDrag = function(column) {\r\n return column.allowReordering || column.allowGrouping || column.allowHiding\r\n };\r\n for (i = 0; i < columns.length; i++) {\r\n if (allowDrag(columns[i])) {\r\n draggableColumnCount++\r\n }\r\n }\r\n if (draggableColumnCount <= 1 && !canHideColumn) {\r\n return false\r\n } else if (!draggingPanels) {\r\n return (this.option(\"allowColumnReordering\") || this._columnsController.isColumnOptionUsed(\"allowReordering\")) && column && column.allowReordering\r\n }\r\n for (i = 0; i < draggingPanels.length; i++) {\r\n var draggingPanel = draggingPanels[i];\r\n if (draggingPanel && draggingPanel.allowDragging(column, sourceLocation)) {\r\n return true\r\n }\r\n }\r\n return false\r\n },\r\n getBoundingRect: function() {\r\n var $columnElements = this.getColumnElements();\r\n if ($columnElements && $columnElements.length) {\r\n var offset = this.getTableElement().offset();\r\n return {\r\n top: offset.top\r\n }\r\n }\r\n return null\r\n },\r\n getName: function() {\r\n return \"headers\"\r\n },\r\n getColumnCount: function() {\r\n var $columnElements = this.getColumnElements();\r\n return $columnElements ? $columnElements.length : 0\r\n },\r\n isVisible: function() {\r\n return this.option(\"showColumnHeaders\")\r\n },\r\n optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"showColumnHeaders\":\r\n case \"wordWrapEnabled\":\r\n case \"showColumnLines\":\r\n this._invalidate(true, true);\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n getHeight: function() {\r\n return this.getElementHeight()\r\n },\r\n getContextMenuItems: function(options) {\r\n var that = this;\r\n var column = options.column;\r\n if (options.row && (\"header\" === options.row.rowType || \"detailAdaptive\" === options.row.rowType)) {\r\n var sortingOptions = that.option(\"sorting\");\r\n if (sortingOptions && \"none\" !== sortingOptions.mode && column && column.allowSorting) {\r\n var onItemClick = function(params) {\r\n setTimeout((function() {\r\n that._columnsController.changeSortOrder(column.index, params.itemData.value)\r\n }))\r\n };\r\n return [{\r\n text: sortingOptions.ascendingText,\r\n value: \"asc\",\r\n disabled: \"asc\" === column.sortOrder,\r\n icon: CONTEXT_MENU_SORT_ASC_ICON,\r\n onItemClick: onItemClick\r\n }, {\r\n text: sortingOptions.descendingText,\r\n value: \"desc\",\r\n disabled: \"desc\" === column.sortOrder,\r\n icon: CONTEXT_MENU_SORT_DESC_ICON,\r\n onItemClick: onItemClick\r\n }, {\r\n text: sortingOptions.clearText,\r\n value: \"none\",\r\n disabled: !column.sortOrder,\r\n icon: CONTEXT_MENU_SORT_NONE_ICON,\r\n onItemClick: onItemClick\r\n }]\r\n }\r\n }\r\n },\r\n getRowCount: function() {\r\n return this._columnsController && this._columnsController.getRowCount()\r\n },\r\n setRowsOpacity: function(columnIndex, value, rowIndex) {\r\n var that = this;\r\n var i;\r\n var columnElements;\r\n var rowCount = that.getRowCount();\r\n var columns = that._columnsController.getColumns();\r\n var column = columns && columns[columnIndex];\r\n var columnID = column && column.isBand && column.index;\r\n var setColumnOpacity = function(index, column) {\r\n if (column.ownerBand === columnID) {\r\n columnElements.eq(index).css({\r\n opacity: value\r\n });\r\n if (column.isBand) {\r\n that.setRowsOpacity(column.index, value, i + 1)\r\n }\r\n }\r\n };\r\n if (isDefined(columnID)) {\r\n rowIndex = rowIndex || 0;\r\n for (i = rowIndex; i < rowCount; i++) {\r\n columnElements = that.getCellElements(i);\r\n each(that.getColumns(i), setColumnOpacity)\r\n }\r\n }\r\n }\r\n }\r\n }())\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.column_headers.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n columnHeadersModule\r\n} from \"../grid_core/ui.grid_core.column_headers\";\r\nexport var ColumnHeadersView = columnHeadersModule.views.columnHeadersView;\r\ngridCore.registerModule(\"columnHeaders\", columnHeadersModule);\r\n","/**\r\n * DevExtreme (esm/core/utils/date_serialization.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport config from \"../config\";\r\nimport {\r\n getFormatter as getLDMLFormatter\r\n} from \"../../localization/ldml/date.formatter\";\r\nimport defaultDateNames from \"../../localization/default_date_names\";\r\nimport {\r\n isString,\r\n isDate,\r\n isNumeric as isNumber\r\n} from \"./type\";\r\nvar NUMBER_SERIALIZATION_FORMAT = \"number\";\r\nvar DATE_SERIALIZATION_FORMAT = \"yyyy/MM/dd\";\r\nvar DATETIME_SERIALIZATION_FORMAT = \"yyyy/MM/dd HH:mm:ss\";\r\nvar ISO8601_PATTERN = /^(\\d{4,})(-)?(\\d{2})(-)?(\\d{2})(?:T(\\d{2})(:)?(\\d{2})?(:)?(\\d{2}(?:\\.(\\d{1,3})\\d*)?)?)?(Z|([+-])(\\d{2})(:)?(\\d{2})?)?$/;\r\nvar ISO8601_TIME_PATTERN = /^(\\d{2}):(\\d{2})(:(\\d{2}))?$/;\r\nvar ISO8601_PATTERN_PARTS = [\"\", \"yyyy\", \"\", \"MM\", \"\", \"dd\", \"THH\", \"\", \"mm\", \"\", \"ss\", \".SSS\"];\r\nvar DATE_SERIALIZATION_PATTERN = /^(\\d{4})\\/(\\d{2})\\/(\\d{2})$/;\r\nvar MILLISECOND_LENGHT = 3;\r\nvar dateParser = function(text, skipISO8601Parsing) {\r\n var result;\r\n if (isString(text) && !skipISO8601Parsing) {\r\n result = parseISO8601String(text)\r\n }\r\n return result || parseDate(text)\r\n};\r\n\r\nfunction getTimePart(part) {\r\n return +part || 0\r\n}\r\n\r\nfunction parseDate(text) {\r\n var isDefaultSerializationFormat = getDateSerializationFormat(text) === DATE_SERIALIZATION_FORMAT;\r\n var parsedValue = !isDate(text) && Date.parse(text);\r\n if (!parsedValue && isDefaultSerializationFormat) {\r\n var parts = text.match(DATE_SERIALIZATION_PATTERN);\r\n if (parts) {\r\n var newDate = new Date(getTimePart(parts[1]), getTimePart(parts[2]), getTimePart(parts[3]));\r\n newDate.setFullYear(getTimePart(parts[1]));\r\n newDate.setMonth(getTimePart(parts[2]) - 1);\r\n newDate.setDate(getTimePart(parts[3]));\r\n return newDate\r\n }\r\n }\r\n return isNumber(parsedValue) ? new Date(parsedValue) : text\r\n}\r\n\r\nfunction parseISO8601String(text) {\r\n var parts = text.match(ISO8601_PATTERN);\r\n if (!parts) {\r\n parts = text.match(ISO8601_TIME_PATTERN);\r\n if (parts) {\r\n return new Date(0, 0, 0, getTimePart(parts[1]), getTimePart(parts[2]), getTimePart(parts[4]))\r\n }\r\n return\r\n }\r\n var year = getTimePart(parts[1]);\r\n var month = --parts[3];\r\n var day = parts[5];\r\n var timeZoneHour = 0;\r\n var timeZoneMinute = 0;\r\n var correctYear = d => {\r\n year < 100 && d.setFullYear(year);\r\n return d\r\n };\r\n timeZoneHour = getTimePart(parts[14]);\r\n timeZoneMinute = getTimePart(parts[16]);\r\n if (\"-\" === parts[13]) {\r\n timeZoneHour = -timeZoneHour;\r\n timeZoneMinute = -timeZoneMinute\r\n }\r\n var hour = getTimePart(parts[6]) - timeZoneHour;\r\n var minute = getTimePart(parts[8]) - timeZoneMinute;\r\n var second = getTimePart(parts[10]);\r\n var millisecond = function(part) {\r\n part = part || \"\";\r\n return getTimePart(part) * Math.pow(10, MILLISECOND_LENGHT - part.length)\r\n }(parts[11]);\r\n if (parts[12]) {\r\n return correctYear(new Date(Date.UTC(year, month, day, hour, minute, second, millisecond)))\r\n }\r\n return correctYear(new Date(year, month, day, hour, minute, second, millisecond))\r\n}\r\nvar getIso8601Format = function(text, useUtc) {\r\n var parts = text.match(ISO8601_PATTERN);\r\n var result = \"\";\r\n if (!parts) {\r\n parts = text.match(ISO8601_TIME_PATTERN);\r\n if (parts) {\r\n return parts[3] ? \"HH:mm:ss\" : \"HH:mm\"\r\n }\r\n return\r\n }\r\n for (var i = 1; i < ISO8601_PATTERN_PARTS.length; i++) {\r\n if (parts[i]) {\r\n result += ISO8601_PATTERN_PARTS[i] || parts[i]\r\n }\r\n }\r\n if (\"Z\" === parts[12]) {\r\n result += \"'Z'\"\r\n }\r\n if (parts[14]) {\r\n if (parts[15]) {\r\n result += \"xxx\"\r\n } else if (parts[16]) {\r\n result += \"xx\"\r\n } else {\r\n result += \"x\"\r\n }\r\n }\r\n return result\r\n};\r\nvar deserializeDate = function(value) {\r\n if (\"number\" === typeof value) {\r\n return new Date(value)\r\n }\r\n return dateParser(value, !config().forceIsoDateParsing)\r\n};\r\nvar serializeDate = function(value, serializationFormat) {\r\n if (!serializationFormat) {\r\n return value\r\n }\r\n if (!isDate(value)) {\r\n return null\r\n }\r\n if (serializationFormat === NUMBER_SERIALIZATION_FORMAT) {\r\n return value && value.valueOf ? value.valueOf() : null\r\n }\r\n return getLDMLFormatter(serializationFormat, defaultDateNames)(value)\r\n};\r\nvar getDateSerializationFormat = function(value) {\r\n if (\"number\" === typeof value) {\r\n return NUMBER_SERIALIZATION_FORMAT\r\n } else if (isString(value)) {\r\n var format;\r\n if (config().forceIsoDateParsing) {\r\n format = getIso8601Format(value)\r\n }\r\n if (format) {\r\n return format\r\n } else if (value.indexOf(\":\") >= 0) {\r\n return DATETIME_SERIALIZATION_FORMAT\r\n } else {\r\n return DATE_SERIALIZATION_FORMAT\r\n }\r\n } else if (value) {\r\n return null\r\n }\r\n};\r\nexport default {\r\n dateParser: dateParser,\r\n deserializeDate: deserializeDate,\r\n serializeDate: serializeDate,\r\n getDateSerializationFormat: getDateSerializationFormat\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.columns_controller.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport $ from \"../../core/renderer\";\r\nimport Callbacks from \"../../core/utils/callbacks\";\r\nimport variableWrapper from \"../../core/utils/variable_wrapper\";\r\nimport {\r\n compileGetter,\r\n compileSetter\r\n} from \"../../core/utils/data\";\r\nimport {\r\n isDefined,\r\n isString,\r\n isNumeric,\r\n isFunction,\r\n isObject,\r\n isPlainObject,\r\n type\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each,\r\n map\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n getDefaultAlignment\r\n} from \"../../core/utils/position\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n normalizeIndexes\r\n} from \"../../core/utils/array\";\r\nimport config from \"../../core/config\";\r\nimport {\r\n orderEach,\r\n deepExtendArraySafe\r\n} from \"../../core/utils/object\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport modules from \"./ui.grid_core.modules\";\r\nimport gridCoreUtils from \"./ui.grid_core.utils\";\r\nimport {\r\n captionize\r\n} from \"../../core/utils/inflector\";\r\nimport dateSerialization from \"../../core/utils/date_serialization\";\r\nimport numberLocalization from \"../../localization/number\";\r\nimport dateLocalization from \"../../localization/date\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport Store from \"../../data/abstract_store\";\r\nimport {\r\n DataSource\r\n} from \"../../data/data_source/data_source\";\r\nimport {\r\n normalizeDataSourceOptions\r\n} from \"../../data/data_source/utils\";\r\nimport {\r\n equalByValue\r\n} from \"../../core/utils/common\";\r\nimport filterUtils from \"../shared/filtering\";\r\nvar USER_STATE_FIELD_NAMES_15_1 = [\"filterValues\", \"filterType\", \"fixed\", \"fixedPosition\"];\r\nvar USER_STATE_FIELD_NAMES = [\"visibleIndex\", \"dataField\", \"name\", \"dataType\", \"width\", \"visible\", \"sortOrder\", \"lastSortOrder\", \"sortIndex\", \"groupIndex\", \"filterValue\", \"bufferedFilterValue\", \"selectedFilterOperation\", \"bufferedSelectedFilterOperation\", \"added\"].concat(USER_STATE_FIELD_NAMES_15_1);\r\nvar IGNORE_COLUMN_OPTION_NAMES = {\r\n visibleWidth: true,\r\n bestFitWidth: true,\r\n bufferedFilterValue: true\r\n};\r\nvar COMMAND_EXPAND_CLASS = \"dx-command-expand\";\r\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991;\r\nvar GROUP_COMMAND_COLUMN_NAME = \"groupExpand\";\r\nvar regExp = /columns\\[(\\d+)\\]\\.?/gi;\r\nvar globalColumnId = 1;\r\nexport var columnsControllerModule = {\r\n defaultOptions: function() {\r\n return {\r\n commonColumnSettings: {\r\n allowFiltering: true,\r\n allowHiding: true,\r\n allowSorting: true,\r\n allowEditing: true,\r\n encodeHtml: true,\r\n trueText: messageLocalization.format(\"dxDataGrid-trueText\"),\r\n falseText: messageLocalization.format(\"dxDataGrid-falseText\")\r\n },\r\n allowColumnReordering: false,\r\n allowColumnResizing: false,\r\n columnResizingMode: \"nextColumn\",\r\n columnMinWidth: void 0,\r\n columnWidth: void 0,\r\n adaptColumnWidthByRatio: true,\r\n columns: void 0,\r\n regenerateColumnsByVisibleItems: false,\r\n customizeColumns: null,\r\n dateSerializationFormat: void 0\r\n }\r\n },\r\n controllers: {\r\n columns: modules.Controller.inherit(function() {\r\n var DEFAULT_COLUMN_OPTIONS = {\r\n visible: true,\r\n showInColumnChooser: true\r\n };\r\n var DATATYPE_OPERATIONS = {\r\n number: [\"=\", \"<>\", \"<\", \">\", \"<=\", \">=\", \"between\"],\r\n string: [\"contains\", \"notcontains\", \"startswith\", \"endswith\", \"=\", \"<>\"],\r\n date: [\"=\", \"<>\", \"<\", \">\", \"<=\", \">=\", \"between\"],\r\n datetime: [\"=\", \"<>\", \"<\", \">\", \"<=\", \">=\", \"between\"]\r\n };\r\n var COLUMN_INDEX_OPTIONS = {\r\n visibleIndex: true,\r\n groupIndex: true,\r\n grouped: true,\r\n sortIndex: true,\r\n sortOrder: true\r\n };\r\n var setFilterOperationsAsDefaultValues = function(column) {\r\n column.filterOperations = column.defaultFilterOperations\r\n };\r\n var createColumn = function(that, columnOptions, userStateColumnOptions, bandColumn) {\r\n var commonColumnOptions = {};\r\n if (columnOptions) {\r\n if (isString(columnOptions)) {\r\n columnOptions = {\r\n dataField: columnOptions\r\n }\r\n }\r\n that.setName(columnOptions);\r\n var result = {};\r\n if (columnOptions.command) {\r\n result = deepExtendArraySafe(commonColumnOptions, columnOptions)\r\n } else {\r\n commonColumnOptions = that.getCommonSettings(columnOptions);\r\n if (userStateColumnOptions && userStateColumnOptions.name && userStateColumnOptions.dataField) {\r\n columnOptions = extend({}, columnOptions, {\r\n dataField: userStateColumnOptions.dataField\r\n })\r\n }\r\n var calculatedColumnOptions = that._createCalculatedColumnOptions(columnOptions, bandColumn);\r\n if (!columnOptions.type) {\r\n result = {\r\n headerId: \"dx-col-\".concat(globalColumnId++)\r\n }\r\n }\r\n result = deepExtendArraySafe(result, DEFAULT_COLUMN_OPTIONS);\r\n deepExtendArraySafe(result, commonColumnOptions);\r\n deepExtendArraySafe(result, calculatedColumnOptions);\r\n deepExtendArraySafe(result, columnOptions);\r\n deepExtendArraySafe(result, {\r\n selector: null\r\n })\r\n }\r\n if (columnOptions.filterOperations === columnOptions.defaultFilterOperations) {\r\n setFilterOperationsAsDefaultValues(result)\r\n }\r\n return result\r\n }\r\n };\r\n var createColumnsFromOptions = function createColumnsFromOptions(that, columnsOptions, bandColumn) {\r\n var result = [];\r\n if (columnsOptions) {\r\n each(columnsOptions, (function(index, columnOptions) {\r\n var userStateColumnOptions = that._columnsUserState && checkUserStateColumn(columnOptions, that._columnsUserState[index]) && that._columnsUserState[index];\r\n var column = createColumn(that, columnOptions, userStateColumnOptions, bandColumn);\r\n if (column) {\r\n if (bandColumn) {\r\n column.ownerBand = bandColumn\r\n }\r\n result.push(column);\r\n if (column.columns) {\r\n result = result.concat(createColumnsFromOptions(that, column.columns, column));\r\n delete column.columns;\r\n column.hasColumns = true\r\n }\r\n }\r\n }))\r\n }\r\n return result\r\n };\r\n var getParentBandColumns = function(columnIndex, columnParentByIndex) {\r\n var result = [];\r\n var parent = columnParentByIndex[columnIndex];\r\n while (parent) {\r\n result.unshift(parent);\r\n columnIndex = parent.index;\r\n parent = columnParentByIndex[columnIndex]\r\n }\r\n return result\r\n };\r\n var _getChildrenByBandColumn = function(columnIndex, columnChildrenByIndex, recursive) {\r\n var result = [];\r\n var children = columnChildrenByIndex[columnIndex];\r\n if (children) {\r\n for (var i = 0; i < children.length; i++) {\r\n var column = children[i];\r\n if (!isDefined(column.groupIndex) || column.showWhenGrouped) {\r\n result.push(column);\r\n if (recursive && column.isBand) {\r\n result = result.concat(_getChildrenByBandColumn(column.index, columnChildrenByIndex, recursive))\r\n }\r\n }\r\n }\r\n }\r\n return result\r\n };\r\n var getColumnFullPath = function(that, column) {\r\n var result = [];\r\n var columns;\r\n var bandColumnsCache = that.getBandColumnsCache();\r\n var callbackFilter = function(item) {\r\n return item.ownerBand === column.ownerBand\r\n };\r\n if (bandColumnsCache.isPlain) {\r\n var columnIndex = that._columns.indexOf(column);\r\n if (columnIndex >= 0) {\r\n result = [\"columns[\".concat(columnIndex, \"]\")]\r\n }\r\n } else {\r\n columns = that._columns.filter(callbackFilter);\r\n while (columns.length && -1 !== columns.indexOf(column)) {\r\n result.unshift(\"columns[\".concat(columns.indexOf(column), \"]\"));\r\n column = bandColumnsCache.columnParentByIndex[column.index];\r\n columns = column ? that._columns.filter(callbackFilter) : []\r\n }\r\n }\r\n return result.join(\".\")\r\n };\r\n var calculateColspan = function calculateColspan(that, columnID) {\r\n var colspan = 0;\r\n var columns = that.getChildrenByBandColumn(columnID, true);\r\n each(columns, (function(_, column) {\r\n if (column.isBand) {\r\n column.colspan = column.colspan || calculateColspan(that, column.index);\r\n colspan += column.colspan || 1\r\n } else {\r\n colspan += 1\r\n }\r\n }));\r\n return colspan\r\n };\r\n var getValueDataType = function(value) {\r\n var dataType = type(value);\r\n if (\"string\" !== dataType && \"boolean\" !== dataType && \"number\" !== dataType && \"date\" !== dataType && \"object\" !== dataType) {\r\n dataType = void 0\r\n }\r\n return dataType\r\n };\r\n var getSerializationFormat = function(dataType, value) {\r\n switch (dataType) {\r\n case \"date\":\r\n case \"datetime\":\r\n return dateSerialization.getDateSerializationFormat(value);\r\n case \"number\":\r\n if (isString(value)) {\r\n return \"string\"\r\n }\r\n if (isNumeric(value)) {\r\n return null\r\n }\r\n }\r\n };\r\n var updateSerializers = function(options, dataType) {\r\n if (!options.deserializeValue) {\r\n if (gridCoreUtils.isDateType(dataType)) {\r\n options.deserializeValue = function(value) {\r\n return dateSerialization.deserializeDate(value)\r\n };\r\n options.serializeValue = function(value) {\r\n return isString(value) ? value : dateSerialization.serializeDate(value, this.serializationFormat)\r\n }\r\n }\r\n if (\"number\" === dataType) {\r\n options.deserializeValue = function(value) {\r\n var parsedValue = parseFloat(value);\r\n return isNaN(parsedValue) ? value : parsedValue\r\n };\r\n options.serializeValue = function(value, target) {\r\n if (\"filter\" === target) {\r\n return value\r\n }\r\n return isDefined(value) && \"string\" === this.serializationFormat ? value.toString() : value\r\n }\r\n }\r\n }\r\n };\r\n var customizeTextForBooleanDataType = function(e) {\r\n if (true === e.value) {\r\n return this.trueText || \"true\"\r\n } else if (false === e.value) {\r\n return this.falseText || \"false\"\r\n } else {\r\n return e.valueText || \"\"\r\n }\r\n };\r\n var getCustomizeTextByDataType = function(dataType) {\r\n if (\"boolean\" === dataType) {\r\n return customizeTextForBooleanDataType\r\n }\r\n };\r\n var updateColumnIndexes = function(that) {\r\n each(that._columns, (function(index, column) {\r\n column.index = index\r\n }));\r\n each(that._columns, (function(index, column) {\r\n if (isObject(column.ownerBand)) {\r\n column.ownerBand = column.ownerBand.index\r\n }\r\n }));\r\n each(that._commandColumns, (function(index, column) {\r\n column.index = -(index + 1)\r\n }))\r\n };\r\n var updateColumnGroupIndexes = function(that, currentColumn) {\r\n normalizeIndexes(that._columns, \"groupIndex\", currentColumn, (function(column) {\r\n var grouped = column.grouped;\r\n delete column.grouped;\r\n return grouped\r\n }))\r\n };\r\n var getColumnIndexByVisibleIndex = function(that, visibleIndex, location) {\r\n var rowIndex = isObject(visibleIndex) ? visibleIndex.rowIndex : null;\r\n var columns = \"group\" === location ? that.getGroupColumns() : \"columnChooser\" === location ? that.getChooserColumns() : that.getVisibleColumns(rowIndex);\r\n var column;\r\n visibleIndex = isObject(visibleIndex) ? visibleIndex.columnIndex : visibleIndex;\r\n column = columns[visibleIndex];\r\n if (column && column.type === GROUP_COMMAND_COLUMN_NAME) {\r\n column = that._columns.filter(col => column.type === col.type)[0] || column\r\n }\r\n return column && isDefined(column.index) ? column.index : -1\r\n };\r\n\r\n function checkUserStateColumn(column, userStateColumn) {\r\n return column && userStateColumn && userStateColumn.name === (column.name || column.dataField) && (userStateColumn.dataField === column.dataField || column.name)\r\n }\r\n var applyUserState = function(that) {\r\n var columnsUserState = that._columnsUserState;\r\n var ignoreColumnOptionNames = that._ignoreColumnOptionNames || [];\r\n var columns = that._columns;\r\n var columnCountById = {};\r\n var resultColumns = [];\r\n var allColumnsHaveState = true;\r\n var userStateColumnIndexes = [];\r\n var column;\r\n var userStateColumnIndex;\r\n var i;\r\n\r\n function applyFieldsState(column, userStateColumn) {\r\n if (!userStateColumn) {\r\n return\r\n }\r\n for (var index = 0; index < USER_STATE_FIELD_NAMES.length; index++) {\r\n var fieldName = USER_STATE_FIELD_NAMES[index];\r\n if (ignoreColumnOptionNames.includes(fieldName)) {\r\n continue\r\n }\r\n if (\"dataType\" === fieldName) {\r\n column[fieldName] = column[fieldName] || userStateColumn[fieldName]\r\n } else if (USER_STATE_FIELD_NAMES_15_1.includes(fieldName)) {\r\n if (fieldName in userStateColumn) {\r\n column[fieldName] = userStateColumn[fieldName]\r\n }\r\n } else {\r\n if (\"selectedFilterOperation\" === fieldName && userStateColumn[fieldName]) {\r\n column.defaultSelectedFilterOperation = column[fieldName] || null\r\n }\r\n column[fieldName] = userStateColumn[fieldName]\r\n }\r\n }\r\n }\r\n\r\n function findUserStateColumn(columnsUserState, column) {\r\n var id = column.name || column.dataField;\r\n var count = columnCountById[id] || 0;\r\n for (var j = 0; j < columnsUserState.length; j++) {\r\n if (checkUserStateColumn(column, columnsUserState[j])) {\r\n if (count) {\r\n count--\r\n } else {\r\n columnCountById[id] = columnCountById[id] || 0;\r\n columnCountById[id]++;\r\n return j\r\n }\r\n }\r\n }\r\n return -1\r\n }\r\n if (columnsUserState) {\r\n for (i = 0; i < columns.length; i++) {\r\n userStateColumnIndex = findUserStateColumn(columnsUserState, columns[i]);\r\n allColumnsHaveState = allColumnsHaveState && userStateColumnIndex >= 0;\r\n userStateColumnIndexes.push(userStateColumnIndex)\r\n }\r\n for (i = 0; i < columns.length; i++) {\r\n column = columns[i];\r\n userStateColumnIndex = userStateColumnIndexes[i];\r\n if (that._hasUserState || allColumnsHaveState) {\r\n applyFieldsState(column, columnsUserState[userStateColumnIndex])\r\n }\r\n if (userStateColumnIndex >= 0 && isDefined(columnsUserState[userStateColumnIndex].initialIndex)) {\r\n resultColumns[userStateColumnIndex] = column\r\n } else {\r\n resultColumns.push(column)\r\n }\r\n }\r\n var hasAddedBands = false;\r\n for (i = 0; i < columnsUserState.length; i++) {\r\n var columnUserState = columnsUserState[i];\r\n if (columnUserState.added && findUserStateColumn(columns, columnUserState) < 0) {\r\n column = createColumn(that, columnUserState.added);\r\n applyFieldsState(column, columnUserState);\r\n resultColumns.push(column);\r\n if (columnUserState.added.columns) {\r\n hasAddedBands = true\r\n }\r\n }\r\n }\r\n if (hasAddedBands) {\r\n updateColumnIndexes(that);\r\n resultColumns = createColumnsFromOptions(that, resultColumns)\r\n }\r\n assignColumns(that, resultColumns)\r\n }\r\n };\r\n var updateIndexes = function(that, column) {\r\n updateColumnIndexes(that);\r\n updateColumnGroupIndexes(that, column);\r\n ! function(that, currentColumn) {\r\n each(that._columns, (function(index, column) {\r\n if (isDefined(column.sortIndex) && !isSortOrderValid(column.sortOrder)) {\r\n delete column.sortIndex\r\n }\r\n }));\r\n normalizeIndexes(that._columns, \"sortIndex\", currentColumn, (function(column) {\r\n return !isDefined(column.groupIndex) && isSortOrderValid(column.sortOrder)\r\n }))\r\n }(that, column);\r\n resetBandColumnsCache(that);\r\n ! function(that, currentColumn) {\r\n var column;\r\n var result = [];\r\n var bandColumnsCache = that.getBandColumnsCache();\r\n var bandedColumns = [];\r\n var columns = that._columns.filter(column => !column.command);\r\n for (var i = 0; i < columns.length; i++) {\r\n column = columns[i];\r\n var parentBandColumns = getParentBandColumns(i, bandColumnsCache.columnParentByIndex);\r\n if (parentBandColumns.length) {\r\n bandedColumns.push(column)\r\n } else {\r\n result.push(column)\r\n }\r\n }\r\n normalizeIndexes(bandedColumns, \"visibleIndex\", currentColumn);\r\n normalizeIndexes(result, \"visibleIndex\", currentColumn)\r\n }(that, column)\r\n };\r\n var resetColumnsCache = function(that) {\r\n that.resetColumnsCache()\r\n };\r\n\r\n function assignColumns(that, columns) {\r\n that._columns = columns;\r\n resetColumnsCache(that);\r\n that.updateColumnDataTypes()\r\n }\r\n var updateColumnChanges = function(that, changeType, optionName, columnIndex) {\r\n var columnChanges = that._columnChanges || {\r\n optionNames: {\r\n length: 0\r\n },\r\n changeTypes: {\r\n length: 0\r\n },\r\n columnIndex: columnIndex\r\n };\r\n optionName = optionName || \"all\";\r\n optionName = optionName.split(\".\")[0];\r\n var changeTypes = columnChanges.changeTypes;\r\n if (changeType && !changeTypes[changeType]) {\r\n changeTypes[changeType] = true;\r\n changeTypes.length++\r\n }\r\n var optionNames = columnChanges.optionNames;\r\n if (optionName && !optionNames[optionName]) {\r\n optionNames[optionName] = true;\r\n optionNames.length++\r\n }\r\n if (void 0 === columnIndex || columnIndex !== columnChanges.columnIndex) {\r\n delete columnChanges.columnIndex\r\n }\r\n that._columnChanges = columnChanges;\r\n resetColumnsCache(that)\r\n };\r\n var fireColumnsChanged = function(that) {\r\n var onColumnsChanging = that.option(\"onColumnsChanging\");\r\n var columnChanges = that._columnChanges;\r\n var reinitOptionNames = [\"dataField\", \"lookup\", \"dataType\", \"columns\"];\r\n if (that.isInitialized() && !that._updateLockCount && columnChanges) {\r\n if (onColumnsChanging) {\r\n that._updateLockCount++;\r\n onColumnsChanging(extend({\r\n component: that.component\r\n }, columnChanges));\r\n that._updateLockCount--\r\n }\r\n that._columnChanges = void 0;\r\n if (options = columnChanges.optionNames, options && reinitOptionNames.some(name => options[name])) {\r\n that.reinit()\r\n } else {\r\n that.columnsChanged.fire(columnChanges)\r\n }\r\n }\r\n var options\r\n };\r\n var updateSortOrderWhenGrouping = function(that, column, groupIndex, prevGroupIndex) {\r\n var columnWasGrouped = prevGroupIndex >= 0;\r\n if (groupIndex >= 0) {\r\n if (!columnWasGrouped) {\r\n column.lastSortOrder = column.sortOrder\r\n }\r\n } else {\r\n var sortMode = that.option(\"sorting.mode\");\r\n var sortOrder = column.lastSortOrder;\r\n if (\"single\" === sortMode) {\r\n var sortedByAnotherColumn = that._columns.some(col => col !== column && isDefined(col.sortIndex));\r\n if (sortedByAnotherColumn) {\r\n sortOrder = void 0\r\n }\r\n }\r\n column.sortOrder = sortOrder\r\n }\r\n };\r\n var fireOptionChanged = function(that, options) {\r\n var value = options.value;\r\n var optionName = options.optionName;\r\n var prevValue = options.prevValue;\r\n var fullOptionName = options.fullOptionName;\r\n var fullOptionPath = \"\".concat(fullOptionName, \".\").concat(optionName);\r\n if (!IGNORE_COLUMN_OPTION_NAMES[optionName] && that._skipProcessingColumnsChange !== fullOptionPath) {\r\n that._skipProcessingColumnsChange = fullOptionPath;\r\n that.component._notifyOptionChanged(fullOptionPath, value, prevValue);\r\n that._skipProcessingColumnsChange = false\r\n }\r\n };\r\n var columnOptionCore = function(that, column, optionName, value, notFireEvent) {\r\n var optionGetter = compileGetter(optionName);\r\n var columnIndex = column.index;\r\n var columns;\r\n var changeType;\r\n var initialColumn;\r\n if (3 === arguments.length) {\r\n return optionGetter(column, {\r\n functionsAsIs: true\r\n })\r\n }\r\n var prevValue = optionGetter(column, {\r\n functionsAsIs: true\r\n });\r\n if (!equalByValue(prevValue, value)) {\r\n if (\"groupIndex\" === optionName || \"calculateGroupValue\" === optionName) {\r\n changeType = \"grouping\";\r\n updateSortOrderWhenGrouping(that, column, value, prevValue)\r\n } else if (\"sortIndex\" === optionName || \"sortOrder\" === optionName || \"calculateSortValue\" === optionName) {\r\n changeType = \"sorting\"\r\n } else {\r\n changeType = \"columns\"\r\n }\r\n var optionSetter = compileSetter(optionName);\r\n optionSetter(column, value, {\r\n functionsAsIs: true\r\n });\r\n var fullOptionName = getColumnFullPath(that, column);\r\n if (COLUMN_INDEX_OPTIONS[optionName]) {\r\n updateIndexes(that, column);\r\n value = optionGetter(column)\r\n }\r\n if (\"name\" === optionName || \"allowEditing\" === optionName) {\r\n that._checkColumns()\r\n }\r\n if (!isDefined(prevValue) && !isDefined(value) && 0 !== optionName.indexOf(\"buffer\")) {\r\n notFireEvent = true\r\n }\r\n if (!notFireEvent) {\r\n if (!USER_STATE_FIELD_NAMES.includes(optionName) && \"visibleWidth\" !== optionName) {\r\n columns = that.option(\"columns\");\r\n initialColumn = that.getColumnByPath(fullOptionName, columns);\r\n if (isString(initialColumn)) {\r\n initialColumn = columns[columnIndex] = {\r\n dataField: initialColumn\r\n }\r\n }\r\n if (initialColumn && checkUserStateColumn(initialColumn, column)) {\r\n optionSetter(initialColumn, value, {\r\n functionsAsIs: true\r\n })\r\n }\r\n }\r\n updateColumnChanges(that, changeType, optionName, columnIndex)\r\n } else {\r\n resetColumnsCache(that)\r\n }\r\n fullOptionName && fireOptionChanged(that, {\r\n fullOptionName: fullOptionName,\r\n optionName: optionName,\r\n value: value,\r\n prevValue: prevValue\r\n })\r\n }\r\n };\r\n\r\n function isSortOrderValid(sortOrder) {\r\n return \"asc\" === sortOrder || \"desc\" === sortOrder\r\n }\r\n var defaultSetCellValue = function(data, value) {\r\n var path = this.dataField.split(\".\");\r\n var dotCount = path.length - 1;\r\n if (this.serializeValue) {\r\n value = this.serializeValue(value)\r\n }\r\n for (var i = 0; i < dotCount; i++) {\r\n var name = path[i];\r\n data = data[name] = data[name] || {}\r\n }\r\n data[path[dotCount]] = value\r\n };\r\n var isCustomCommandColumn = (that, commandColumn) => !!that._columns.filter(column => column.type === commandColumn.type).length;\r\n var getFixedPosition = function(that, column) {\r\n var rtlEnabled = that.option(\"rtlEnabled\");\r\n if (column.command && !isCustomCommandColumn(that, column) || !column.fixedPosition) {\r\n return rtlEnabled ? \"right\" : \"left\"\r\n }\r\n return column.fixedPosition\r\n };\r\n var processExpandColumns = function(columns, expandColumns, type, columnIndex) {\r\n var customColumnIndex;\r\n var rowCount = this.getRowCount();\r\n var rowspan = columns[columnIndex] && columns[columnIndex].rowspan;\r\n var expandColumnsByType = expandColumns.filter(column => column.type === type);\r\n columns.forEach((column, index) => {\r\n if (column.type === type) {\r\n customColumnIndex = index;\r\n rowspan = columns[index + 1] ? columns[index + 1].rowspan : rowCount\r\n }\r\n });\r\n if (rowspan > 1) {\r\n expandColumnsByType = map(expandColumnsByType, (function(expandColumn) {\r\n return extend({}, expandColumn, {\r\n rowspan: rowspan\r\n })\r\n }))\r\n }\r\n expandColumnsByType.unshift.apply(expandColumnsByType, isDefined(customColumnIndex) ? [customColumnIndex, 1] : [columnIndex, 0]);\r\n columns.splice.apply(columns, expandColumnsByType);\r\n return rowspan || 1\r\n };\r\n var numberToString = function(number, digitsCount) {\r\n var str = number ? number.toString() : \"0\";\r\n while (str.length < digitsCount) {\r\n str = \"0\" + str\r\n }\r\n return str\r\n };\r\n var mergeColumns = (that, columns, commandColumns, needToExtend) => {\r\n var column;\r\n var commandColumnIndex;\r\n var result = columns.slice().map(column => extend({}, column));\r\n var isColumnFixing = that._isColumnFixing();\r\n var defaultCommandColumns = commandColumns.slice().map(column => extend({\r\n fixed: isColumnFixing\r\n }, column));\r\n var getCommandColumnIndex = column => commandColumns.reduce((result, commandColumn, index) => {\r\n var columnType = needToExtend && column.type === GROUP_COMMAND_COLUMN_NAME ? \"expand\" : column.type;\r\n return commandColumn.type === columnType || commandColumn.command === column.command ? index : result\r\n }, -1);\r\n var callbackFilter = commandColumn => commandColumn.command !== commandColumns[commandColumnIndex].command;\r\n for (var i = 0; i < columns.length; i++) {\r\n column = columns[i];\r\n commandColumnIndex = column && (column.type || column.command) ? getCommandColumnIndex(column) : -1;\r\n if (commandColumnIndex >= 0) {\r\n if (needToExtend) {\r\n result[i] = extend({\r\n fixed: isColumnFixing\r\n }, commandColumns[commandColumnIndex], column);\r\n if (column.type !== GROUP_COMMAND_COLUMN_NAME) {\r\n defaultCommandColumns = defaultCommandColumns.filter(callbackFilter)\r\n }\r\n } else {\r\n var columnOptions = {\r\n visibleIndex: column.visibleIndex,\r\n index: column.index,\r\n headerId: column.headerId,\r\n allowFixing: 0 === column.groupIndex,\r\n allowReordering: 0 === column.groupIndex,\r\n groupIndex: column.groupIndex\r\n };\r\n result[i] = extend({}, column, commandColumns[commandColumnIndex], column.type === GROUP_COMMAND_COLUMN_NAME && columnOptions)\r\n }\r\n }\r\n }\r\n if (columns.length && needToExtend && defaultCommandColumns.length) {\r\n result = result.concat(defaultCommandColumns)\r\n }\r\n return result\r\n };\r\n var isColumnFixed = (that, column) => isDefined(column.fixed) || !column.type ? column.fixed : that._isColumnFixing();\r\n var resetBandColumnsCache = that => {\r\n that._bandColumnsCache = void 0\r\n };\r\n var findColumn = (columns, identifier) => {\r\n var identifierOptionName = isString(identifier) && identifier.substr(0, identifier.indexOf(\":\"));\r\n var column;\r\n if (void 0 === identifier) {\r\n return\r\n }\r\n if (identifierOptionName) {\r\n identifier = identifier.substr(identifierOptionName.length + 1)\r\n }\r\n if (identifierOptionName) {\r\n column = columns.filter(column => \"\" + column[identifierOptionName] === identifier)[0]\r\n } else {\r\n [\"index\", \"name\", \"dataField\", \"caption\"].some(optionName => {\r\n column = columns.filter(column => column[optionName] === identifier)[0];\r\n return !!column\r\n })\r\n }\r\n return column\r\n };\r\n return {\r\n _getExpandColumnOptions: function() {\r\n return {\r\n type: \"expand\",\r\n command: \"expand\",\r\n width: \"auto\",\r\n cssClass: COMMAND_EXPAND_CLASS,\r\n allowEditing: false,\r\n allowGrouping: false,\r\n allowSorting: false,\r\n allowResizing: false,\r\n allowReordering: false,\r\n allowHiding: false\r\n }\r\n },\r\n _getFirstItems: function(dataSource) {\r\n var groupsCount;\r\n var items = [];\r\n if (dataSource && dataSource.items().length > 0) {\r\n groupsCount = gridCoreUtils.normalizeSortingInfo(dataSource.group()).length;\r\n items = function getFirstItemsCore(items, groupsCount) {\r\n if (!items || !groupsCount) {\r\n return items\r\n }\r\n for (var i = 0; i < items.length; i++) {\r\n var childItems = getFirstItemsCore(items[i].items || items[i].collapsedItems, groupsCount - 1);\r\n if (childItems && childItems.length) {\r\n return childItems\r\n }\r\n }\r\n }(dataSource.items(), groupsCount) || []\r\n }\r\n return items\r\n },\r\n _endUpdateCore: function() {\r\n !this._skipProcessingColumnsChange && fireColumnsChanged(this)\r\n },\r\n init: function(isApplyingUserState) {\r\n var columns = this.option(\"columns\");\r\n this._commandColumns = this._commandColumns || [];\r\n this._columns = this._columns || [];\r\n this._isColumnsFromOptions = !!columns;\r\n if (this._isColumnsFromOptions) {\r\n assignColumns(this, columns ? createColumnsFromOptions(this, columns) : []);\r\n applyUserState(this)\r\n } else {\r\n assignColumns(this, this._columnsUserState ? createColumnsFromOptions(this, this._columnsUserState) : this._columns)\r\n }! function(that) {\r\n var options = that._getExpandColumnOptions();\r\n that.addCommandColumn(options)\r\n }(this);\r\n if (this._dataSourceApplied) {\r\n this.applyDataSource(this._dataSource, true, isApplyingUserState)\r\n } else {\r\n updateIndexes(this)\r\n }\r\n this._checkColumns()\r\n },\r\n callbackNames: function() {\r\n return [\"columnsChanged\"]\r\n },\r\n getColumnByPath: function(path, columns) {\r\n var column;\r\n var columnIndexes = [];\r\n path.replace(regExp, (function(_, columnIndex) {\r\n columnIndexes.push(parseInt(columnIndex));\r\n return \"\"\r\n }));\r\n if (columnIndexes.length) {\r\n if (columns) {\r\n column = columnIndexes.reduce((function(column, index) {\r\n return column && column.columns && column.columns[index]\r\n }), {\r\n columns: columns\r\n })\r\n } else {\r\n column = function(that, columnIndexes) {\r\n var result;\r\n var columns;\r\n var bandColumnsCache = that.getBandColumnsCache();\r\n var callbackFilter = function(column) {\r\n var ownerBand = result ? result.index : void 0;\r\n return column.ownerBand === ownerBand\r\n };\r\n if (bandColumnsCache.isPlain) {\r\n result = that._columns[columnIndexes[0]]\r\n } else {\r\n columns = that._columns.filter(callbackFilter);\r\n for (var i = 0; i < columnIndexes.length; i++) {\r\n result = columns[columnIndexes[i]];\r\n if (result) {\r\n columns = that._columns.filter(callbackFilter)\r\n }\r\n }\r\n }\r\n return result\r\n }(this, columnIndexes)\r\n }\r\n }\r\n return column\r\n },\r\n optionChanged: function(args) {\r\n var needUpdateRequireResize;\r\n switch (args.name) {\r\n case \"adaptColumnWidthByRatio\":\r\n args.handled = true;\r\n break;\r\n case \"dataSource\":\r\n if (args.value !== args.previousValue && !this.option(\"columns\") && (!Array.isArray(args.value) || !Array.isArray(args.previousValue))) {\r\n this._columns = []\r\n }\r\n break;\r\n case \"columns\":\r\n needUpdateRequireResize = this._skipProcessingColumnsChange;\r\n args.handled = true;\r\n if (!this._skipProcessingColumnsChange) {\r\n if (args.name === args.fullName) {\r\n this._columnsUserState = null;\r\n this._ignoreColumnOptionNames = null;\r\n this.init()\r\n } else {\r\n this._columnOptionChanged(args);\r\n needUpdateRequireResize = true\r\n }\r\n }\r\n if (needUpdateRequireResize) {\r\n this._updateRequireResize(args)\r\n }\r\n break;\r\n case \"commonColumnSettings\":\r\n case \"columnAutoWidth\":\r\n case \"allowColumnResizing\":\r\n case \"allowColumnReordering\":\r\n case \"columnFixing\":\r\n case \"grouping\":\r\n case \"groupPanel\":\r\n case \"regenerateColumnsByVisibleItems\":\r\n case \"customizeColumns\":\r\n case \"columnHidingEnabled\":\r\n case \"dateSerializationFormat\":\r\n case \"columnResizingMode\":\r\n case \"columnMinWidth\":\r\n case \"columnWidth\":\r\n args.handled = true;\r\n var ignoreColumnOptionNames = \"columnWidth\" === args.fullName && [\"width\"];\r\n this.reinit(ignoreColumnOptionNames);\r\n break;\r\n case \"rtlEnabled\":\r\n this.reinit();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _columnOptionChanged: function(args) {\r\n var columnOptionValue = {};\r\n var column = this.getColumnByPath(args.fullName);\r\n var columnOptionName = args.fullName.replace(regExp, \"\");\r\n if (column) {\r\n if (columnOptionName) {\r\n columnOptionValue[columnOptionName] = args.value\r\n } else {\r\n columnOptionValue = args.value\r\n }\r\n this._skipProcessingColumnsChange = args.fullName;\r\n this.columnOption(column.index, columnOptionValue);\r\n this._skipProcessingColumnsChange = false\r\n }\r\n },\r\n _updateRequireResize: function(args) {\r\n var component = this.component;\r\n if (\"width\" === args.fullName.replace(regExp, \"\") && component._updateLockCount) {\r\n component._requireResize = true\r\n }\r\n },\r\n publicMethods: function() {\r\n return [\"addColumn\", \"deleteColumn\", \"columnOption\", \"columnCount\", \"clearSorting\", \"clearGrouping\", \"getVisibleColumns\", \"getVisibleColumnIndex\"]\r\n },\r\n applyDataSource: function(dataSource, forceApplying, isApplyingUserState) {\r\n var isDataSourceLoaded = dataSource && dataSource.isLoaded();\r\n this._dataSource = dataSource;\r\n if (!this._dataSourceApplied || 0 === this._dataSourceColumnsCount || forceApplying || this.option(\"regenerateColumnsByVisibleItems\")) {\r\n if (isDataSourceLoaded) {\r\n if (!this._isColumnsFromOptions) {\r\n var columnsFromDataSource = function(that, dataSource) {\r\n var firstItems = that._getFirstItems(dataSource);\r\n var fieldName;\r\n var processedFields = {};\r\n var result = [];\r\n for (var i = 0; i < firstItems.length; i++) {\r\n if (firstItems[i]) {\r\n for (fieldName in firstItems[i]) {\r\n if (!isFunction(firstItems[i][fieldName]) || variableWrapper.isWrapped(firstItems[i][fieldName])) {\r\n processedFields[fieldName] = true\r\n }\r\n }\r\n }\r\n }\r\n for (fieldName in processedFields) {\r\n if (0 !== fieldName.indexOf(\"__\")) {\r\n var column = createColumn(that, fieldName);\r\n result.push(column)\r\n }\r\n }\r\n return result\r\n }(this, dataSource);\r\n if (columnsFromDataSource.length) {\r\n assignColumns(this, columnsFromDataSource);\r\n this._dataSourceColumnsCount = this._columns.length;\r\n applyUserState(this)\r\n }\r\n }\r\n return this.updateColumns(dataSource, forceApplying, isApplyingUserState)\r\n } else {\r\n this._dataSourceApplied = false;\r\n updateIndexes(this)\r\n }\r\n } else if (isDataSourceLoaded && !this.isAllDataTypesDefined(true) && this.updateColumnDataTypes(dataSource)) {\r\n updateColumnChanges(this, \"columns\");\r\n fireColumnsChanged(this);\r\n return (new Deferred).reject().promise()\r\n }\r\n },\r\n reset: function() {\r\n this._dataSource = null;\r\n this._dataSourceApplied = false;\r\n this._dataSourceColumnsCount = void 0;\r\n this.reinit()\r\n },\r\n resetColumnsCache: function() {\r\n this._visibleColumns = void 0;\r\n this._fixedColumns = void 0;\r\n this._rowCount = void 0;\r\n resetBandColumnsCache(this)\r\n },\r\n reinit: function(ignoreColumnOptionNames) {\r\n this._columnsUserState = this.getUserState();\r\n this._ignoreColumnOptionNames = ignoreColumnOptionNames || null;\r\n this.init();\r\n if (ignoreColumnOptionNames) {\r\n this._ignoreColumnOptionNames = null\r\n }\r\n },\r\n isInitialized: function() {\r\n return !!this._columns.length || !!this.option(\"columns\")\r\n },\r\n isDataSourceApplied: function() {\r\n return this._dataSourceApplied\r\n },\r\n getCommonSettings: function(column) {\r\n var commonColumnSettings = (!column || !column.type) && this.option(\"commonColumnSettings\") || {};\r\n var groupingOptions = this.option(\"grouping\") || {};\r\n var groupPanelOptions = this.option(\"groupPanel\") || {};\r\n return extend({\r\n allowFixing: this.option(\"columnFixing.enabled\"),\r\n allowResizing: this.option(\"allowColumnResizing\") || void 0,\r\n allowReordering: this.option(\"allowColumnReordering\"),\r\n minWidth: this.option(\"columnMinWidth\"),\r\n width: this.option(\"columnWidth\"),\r\n autoExpandGroup: groupingOptions.autoExpandAll,\r\n allowCollapsing: groupingOptions.allowCollapsing,\r\n allowGrouping: groupPanelOptions.allowColumnDragging && groupPanelOptions.visible || groupingOptions.contextMenuEnabled\r\n }, commonColumnSettings)\r\n },\r\n isColumnOptionUsed: function(optionName) {\r\n for (var i = 0; i < this._columns.length; i++) {\r\n if (this._columns[i][optionName]) {\r\n return true\r\n }\r\n }\r\n },\r\n isAllDataTypesDefined: function(checkSerializers) {\r\n var columns = this._columns;\r\n if (!columns.length) {\r\n return false\r\n }\r\n for (var i = 0; i < columns.length; i++) {\r\n if (!columns[i].dataField && columns[i].calculateCellValue === columns[i].defaultCalculateCellValue) {\r\n continue\r\n }\r\n if (!columns[i].dataType || checkSerializers && columns[i].deserializeValue && void 0 === columns[i].serializationFormat) {\r\n return false\r\n }\r\n }\r\n return true\r\n },\r\n getColumns: function() {\r\n return this._columns\r\n },\r\n isBandColumnsUsed: function() {\r\n return this.getColumns().some((function(column) {\r\n return column.isBand\r\n }))\r\n },\r\n getGroupColumns: function() {\r\n var result = [];\r\n each(this._columns, (function() {\r\n if (isDefined(this.groupIndex)) {\r\n result[this.groupIndex] = this\r\n }\r\n }));\r\n return result\r\n },\r\n _shouldReturnVisibleColumns: function() {\r\n return true\r\n },\r\n _compileVisibleColumns: function(rowIndex) {\r\n this._visibleColumns = this._visibleColumns || this._compileVisibleColumnsCore();\r\n rowIndex = isDefined(rowIndex) ? rowIndex : this._visibleColumns.length - 1;\r\n return this._visibleColumns[rowIndex] || []\r\n },\r\n getVisibleColumns: function(rowIndex) {\r\n if (!this._shouldReturnVisibleColumns()) {\r\n return []\r\n }\r\n return this._compileVisibleColumns.apply(this, arguments)\r\n },\r\n getFixedColumns: function(rowIndex) {\r\n this._fixedColumns = this._fixedColumns || this._getFixedColumnsCore();\r\n rowIndex = isDefined(rowIndex) ? rowIndex : this._fixedColumns.length - 1;\r\n return this._fixedColumns[rowIndex] || []\r\n },\r\n getFilteringColumns: function() {\r\n return this.getColumns().filter(item => (item.dataField || item.name) && (item.allowFiltering || item.allowHeaderFiltering)).map(item => {\r\n var field = extend(true, {}, item);\r\n if (!isDefined(field.dataField)) {\r\n field.dataField = field.name\r\n }\r\n field.filterOperations = item.filterOperations !== item.defaultFilterOperations ? field.filterOperations : null;\r\n return field\r\n })\r\n },\r\n getColumnIndexOffset: function() {\r\n return 0\r\n },\r\n _getFixedColumnsCore: function() {\r\n var result = [];\r\n var rowCount = this.getRowCount();\r\n var isColumnFixing = this._isColumnFixing();\r\n var transparentColumn = {\r\n command: \"transparent\"\r\n };\r\n var transparentColspan = 0;\r\n var notFixedColumnCount;\r\n var transparentColumnIndex;\r\n var lastFixedPosition;\r\n if (isColumnFixing) {\r\n for (var i = 0; i <= rowCount; i++) {\r\n notFixedColumnCount = 0;\r\n lastFixedPosition = null;\r\n transparentColumnIndex = null;\r\n var visibleColumns = this.getVisibleColumns(i, true);\r\n for (var j = 0; j < visibleColumns.length; j++) {\r\n var prevColumn = visibleColumns[j - 1];\r\n var column = visibleColumns[j];\r\n if (!column.fixed) {\r\n if (0 === i) {\r\n if (column.isBand && column.colspan) {\r\n transparentColspan += column.colspan\r\n } else {\r\n transparentColspan++\r\n }\r\n }\r\n notFixedColumnCount++;\r\n if (!isDefined(transparentColumnIndex)) {\r\n transparentColumnIndex = j\r\n }\r\n } else if (prevColumn && prevColumn.fixed && getFixedPosition(this, prevColumn) !== getFixedPosition(this, column)) {\r\n if (!isDefined(transparentColumnIndex)) {\r\n transparentColumnIndex = j\r\n }\r\n } else {\r\n lastFixedPosition = column.fixedPosition\r\n }\r\n }\r\n if (0 === i && (0 === notFixedColumnCount || notFixedColumnCount >= visibleColumns.length)) {\r\n return []\r\n }\r\n if (!isDefined(transparentColumnIndex)) {\r\n transparentColumnIndex = \"right\" === lastFixedPosition ? 0 : visibleColumns.length\r\n }\r\n result[i] = visibleColumns.slice(0);\r\n if (!transparentColumn.colspan) {\r\n transparentColumn.colspan = transparentColspan\r\n }\r\n result[i].splice(transparentColumnIndex, notFixedColumnCount, transparentColumn)\r\n }\r\n }\r\n return result.map(columns => columns.map(column => {\r\n var newColumn = _extends({}, column);\r\n if (newColumn.headerId) {\r\n newColumn.headerId += \"-fixed\"\r\n }\r\n return newColumn\r\n }))\r\n },\r\n _isColumnFixing: function() {\r\n var isColumnFixing = this.option(\"columnFixing.enabled\");\r\n !isColumnFixing && each(this._columns, (function(_, column) {\r\n if (column.fixed) {\r\n isColumnFixing = true;\r\n return false\r\n }\r\n }));\r\n return isColumnFixing\r\n },\r\n _getExpandColumnsCore: function() {\r\n return this.getGroupColumns()\r\n },\r\n getExpandColumns: function() {\r\n var expandColumns = this._getExpandColumnsCore();\r\n var expandColumn;\r\n var firstGroupColumn = expandColumns.filter(column => 0 === column.groupIndex)[0];\r\n var isFixedFirstGroupColumn = firstGroupColumn && firstGroupColumn.fixed;\r\n var isColumnFixing = this._isColumnFixing();\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n if (expandColumns.length) {\r\n expandColumn = this.columnOption(\"command:expand\")\r\n }\r\n expandColumns = map(expandColumns, column => extend({}, column, {\r\n visibleWidth: null,\r\n minWidth: null,\r\n cellTemplate: !isDefined(column.groupIndex) ? column.cellTemplate : null,\r\n headerCellTemplate: null,\r\n fixed: !isDefined(column.groupIndex) || !isFixedFirstGroupColumn ? isColumnFixing : true,\r\n fixedPosition: rtlEnabled ? \"right\" : \"left\"\r\n }, expandColumn, {\r\n index: column.index,\r\n type: column.type || GROUP_COMMAND_COLUMN_NAME\r\n }));\r\n return expandColumns\r\n },\r\n getBandColumnsCache: function() {\r\n if (!this._bandColumnsCache) {\r\n var columns = this._columns;\r\n var columnChildrenByIndex = {};\r\n var columnParentByIndex = {};\r\n var isPlain = true;\r\n columns.forEach((function(column) {\r\n var ownerBand = column.ownerBand;\r\n var parentIndex = isObject(ownerBand) ? ownerBand.index : ownerBand;\r\n var parent = columns[parentIndex];\r\n if (column.hasColumns) {\r\n isPlain = false\r\n }\r\n if (column.colspan) {\r\n column.colspan = void 0\r\n }\r\n if (column.rowspan) {\r\n column.rowspan = void 0\r\n }\r\n if (parent) {\r\n columnParentByIndex[column.index] = parent\r\n } else {\r\n parentIndex = -1\r\n }\r\n columnChildrenByIndex[parentIndex] = columnChildrenByIndex[parentIndex] || [];\r\n columnChildrenByIndex[parentIndex].push(column)\r\n }));\r\n this._bandColumnsCache = {\r\n isPlain: isPlain,\r\n columnChildrenByIndex: columnChildrenByIndex,\r\n columnParentByIndex: columnParentByIndex\r\n }\r\n }\r\n return this._bandColumnsCache\r\n },\r\n _isColumnVisible: function(column) {\r\n return column.visible && this.isParentColumnVisible(column.index)\r\n },\r\n _compileVisibleColumnsCore: function() {\r\n var that = this;\r\n var i;\r\n var result = [];\r\n var rowspanGroupColumns = 0;\r\n var rowspanExpandColumns = 0;\r\n var rowCount = that.getRowCount();\r\n var positiveIndexedColumns = [];\r\n var negativeIndexedColumns = [];\r\n var notGroupedColumnsCount = 0;\r\n var isFixedToEnd;\r\n var rtlEnabled = that.option(\"rtlEnabled\");\r\n var bandColumnsCache = that.getBandColumnsCache();\r\n var expandColumns = mergeColumns(that, that.getExpandColumns(), that._columns);\r\n var columns = mergeColumns(that, that._columns, that._commandColumns, true);\r\n var columnDigitsCount = function(number) {\r\n var i;\r\n for (i = 0; number > 1; i++) {\r\n number /= 10\r\n }\r\n return i\r\n }(columns.length);\r\n ! function(that, columns, bandColumnsCache) {\r\n var rowspan;\r\n for (var i = 0; i < columns.length; i++) {\r\n var column = columns[i];\r\n if (column.visible || column.command) {\r\n if (column.isBand) {\r\n column.colspan = column.colspan || calculateColspan(that, column.index)\r\n }\r\n if (!column.isBand || !column.colspan) {\r\n rowspan = that.getRowCount();\r\n if (!column.command && (!isDefined(column.groupIndex) || column.showWhenGrouped)) {\r\n rowspan -= getParentBandColumns(column.index, bandColumnsCache.columnParentByIndex).length\r\n }\r\n if (rowspan > 1) {\r\n column.rowspan = rowspan\r\n }\r\n }\r\n }\r\n }\r\n }(that, columns, bandColumnsCache);\r\n for (i = 0; i < rowCount; i++) {\r\n result[i] = [];\r\n negativeIndexedColumns[i] = [{}];\r\n positiveIndexedColumns[i] = [{}, {}, {}]\r\n }\r\n each(columns, (function() {\r\n var visibleIndex = this.visibleIndex;\r\n var indexedColumns;\r\n var parentBandColumns = getParentBandColumns(this.index, bandColumnsCache.columnParentByIndex);\r\n var visible = that._isColumnVisible(this);\r\n if (visible && (!isDefined(this.groupIndex) || this.showWhenGrouped)) {\r\n var rowIndex = parentBandColumns.length;\r\n if (visibleIndex < 0) {\r\n visibleIndex = -visibleIndex;\r\n indexedColumns = negativeIndexedColumns[rowIndex]\r\n } else {\r\n this.fixed = parentBandColumns.length ? parentBandColumns[0].fixed : this.fixed;\r\n this.fixedPosition = parentBandColumns.length ? parentBandColumns[0].fixedPosition : this.fixedPosition;\r\n if (this.fixed) {\r\n isFixedToEnd = \"right\" === this.fixedPosition;\r\n if (rtlEnabled && (!this.command || isCustomCommandColumn(that, this))) {\r\n isFixedToEnd = !isFixedToEnd\r\n }\r\n if (isFixedToEnd) {\r\n indexedColumns = positiveIndexedColumns[rowIndex][2]\r\n } else {\r\n indexedColumns = positiveIndexedColumns[rowIndex][0]\r\n }\r\n } else {\r\n indexedColumns = positiveIndexedColumns[rowIndex][1]\r\n }\r\n }\r\n if (parentBandColumns.length) {\r\n visibleIndex = numberToString(visibleIndex, columnDigitsCount);\r\n for (i = parentBandColumns.length - 1; i >= 0; i--) {\r\n visibleIndex = numberToString(parentBandColumns[i].visibleIndex, columnDigitsCount) + visibleIndex\r\n }\r\n }\r\n indexedColumns[visibleIndex] = indexedColumns[visibleIndex] || [];\r\n indexedColumns[visibleIndex].push(this);\r\n notGroupedColumnsCount++\r\n }\r\n }));\r\n each(result, (function(rowIndex) {\r\n orderEach(negativeIndexedColumns[rowIndex], (function(_, columns) {\r\n result[rowIndex].unshift.apply(result[rowIndex], columns)\r\n }));\r\n var firstPositiveIndexColumn = result[rowIndex].length;\r\n each(positiveIndexedColumns[rowIndex], (function(index, columnsByFixing) {\r\n orderEach(columnsByFixing, (function(_, columnsByVisibleIndex) {\r\n result[rowIndex].push.apply(result[rowIndex], columnsByVisibleIndex)\r\n }))\r\n }));\r\n if (rowspanExpandColumns < rowIndex + 1) {\r\n rowspanExpandColumns += processExpandColumns.call(that, result[rowIndex], expandColumns, \"detailExpand\", firstPositiveIndexColumn)\r\n }\r\n if (rowspanGroupColumns < rowIndex + 1) {\r\n rowspanGroupColumns += processExpandColumns.call(that, result[rowIndex], expandColumns, GROUP_COMMAND_COLUMN_NAME, firstPositiveIndexColumn)\r\n }\r\n }));\r\n result.push(function getDataColumns(columns, rowIndex, bandColumnID) {\r\n var result = [];\r\n rowIndex = rowIndex || 0;\r\n columns[rowIndex] && each(columns[rowIndex], (function(_, column) {\r\n if (column.ownerBand === bandColumnID || column.type === GROUP_COMMAND_COLUMN_NAME) {\r\n if (!column.isBand || !column.colspan) {\r\n if (!column.command || rowIndex < 1) {\r\n result.push(column)\r\n }\r\n } else {\r\n result.push.apply(result, getDataColumns(columns, rowIndex + 1, column.index))\r\n }\r\n }\r\n }));\r\n return result\r\n }(result));\r\n if (!notGroupedColumnsCount && that._columns.length) {\r\n result[rowCount].push({\r\n command: \"empty\"\r\n })\r\n }\r\n return result\r\n },\r\n getInvisibleColumns: function(columns, bandColumnIndex) {\r\n var that = this;\r\n var result = [];\r\n var hiddenColumnsByBand;\r\n columns = columns || that._columns;\r\n each(columns, (function(_, column) {\r\n if (column.ownerBand !== bandColumnIndex) {\r\n return\r\n }\r\n if (column.isBand) {\r\n if (!column.visible) {\r\n hiddenColumnsByBand = that.getChildrenByBandColumn(column.index)\r\n } else {\r\n hiddenColumnsByBand = that.getInvisibleColumns(that.getChildrenByBandColumn(column.index), column.index)\r\n }\r\n if (hiddenColumnsByBand.length) {\r\n result.push(column);\r\n result = result.concat(hiddenColumnsByBand)\r\n }\r\n return\r\n }\r\n if (!column.visible) {\r\n result.push(column)\r\n }\r\n }));\r\n return result\r\n },\r\n getChooserColumns: function(getAllColumns) {\r\n var columns = getAllColumns ? this.getColumns() : this.getInvisibleColumns();\r\n var columnChooserColumns = columns.filter(column => column.showInColumnChooser);\r\n var sortOrder = this.option(\"columnChooser.sortOrder\");\r\n return ((columns, sortOrder) => {\r\n if (\"asc\" !== sortOrder && \"desc\" !== sortOrder) {\r\n return columns\r\n }\r\n var sign = \"asc\" === sortOrder ? 1 : -1;\r\n columns.sort((function(column1, column2) {\r\n var caption1 = column1.caption || \"\";\r\n var caption2 = column2.caption || \"\";\r\n return sign * caption1.localeCompare(caption2)\r\n }));\r\n return columns\r\n })(columnChooserColumns, sortOrder)\r\n },\r\n allowMoveColumn: function(fromVisibleIndex, toVisibleIndex, sourceLocation, targetLocation) {\r\n var columnIndex = getColumnIndexByVisibleIndex(this, fromVisibleIndex, sourceLocation);\r\n var sourceColumn = this._columns[columnIndex];\r\n if (sourceColumn && (sourceColumn.allowReordering || sourceColumn.allowGrouping || sourceColumn.allowHiding)) {\r\n if (sourceLocation === targetLocation) {\r\n if (\"columnChooser\" === sourceLocation) {\r\n return false\r\n }\r\n fromVisibleIndex = isObject(fromVisibleIndex) ? fromVisibleIndex.columnIndex : fromVisibleIndex;\r\n toVisibleIndex = isObject(toVisibleIndex) ? toVisibleIndex.columnIndex : toVisibleIndex;\r\n return fromVisibleIndex !== toVisibleIndex && fromVisibleIndex + 1 !== toVisibleIndex\r\n } else if (\"group\" === sourceLocation && \"columnChooser\" !== targetLocation || \"group\" === targetLocation) {\r\n return sourceColumn && sourceColumn.allowGrouping\r\n } else if (\"columnChooser\" === sourceLocation || \"columnChooser\" === targetLocation) {\r\n return sourceColumn && sourceColumn.allowHiding\r\n }\r\n return true\r\n }\r\n return false\r\n },\r\n moveColumn: function(fromVisibleIndex, toVisibleIndex, sourceLocation, targetLocation) {\r\n var options = {};\r\n var prevGroupIndex;\r\n var fromIndex = getColumnIndexByVisibleIndex(this, fromVisibleIndex, sourceLocation);\r\n var toIndex = getColumnIndexByVisibleIndex(this, toVisibleIndex, targetLocation);\r\n var targetGroupIndex;\r\n if (fromIndex >= 0) {\r\n var column = this._columns[fromIndex];\r\n toVisibleIndex = isObject(toVisibleIndex) ? toVisibleIndex.columnIndex : toVisibleIndex;\r\n targetGroupIndex = toIndex >= 0 ? this._columns[toIndex].groupIndex : -1;\r\n if (isDefined(column.groupIndex) && \"group\" === sourceLocation) {\r\n if (targetGroupIndex > column.groupIndex) {\r\n targetGroupIndex--\r\n }\r\n if (\"group\" !== targetLocation) {\r\n options.groupIndex = void 0\r\n } else {\r\n prevGroupIndex = column.groupIndex;\r\n delete column.groupIndex;\r\n updateColumnGroupIndexes(this)\r\n }\r\n }\r\n if (\"group\" === targetLocation) {\r\n options.groupIndex = function(that, column, groupIndex) {\r\n var groupColumns = that.getGroupColumns();\r\n var i;\r\n if (groupIndex >= 0) {\r\n for (i = 0; i < groupColumns.length; i++) {\r\n if (groupColumns[i].groupIndex >= groupIndex) {\r\n groupColumns[i].groupIndex++\r\n }\r\n }\r\n } else {\r\n groupIndex = 0;\r\n for (i = 0; i < groupColumns.length; i++) {\r\n groupIndex = Math.max(groupIndex, groupColumns[i].groupIndex + 1)\r\n }\r\n }\r\n return groupIndex\r\n }(this, 0, targetGroupIndex);\r\n column.groupIndex = prevGroupIndex\r\n } else if (toVisibleIndex >= 0) {\r\n var targetColumn = this._columns[toIndex];\r\n if (!targetColumn || column.ownerBand !== targetColumn.ownerBand) {\r\n options.visibleIndex = MAX_SAFE_INTEGER\r\n } else if (isColumnFixed(this, column) ^ isColumnFixed(this, targetColumn)) {\r\n options.visibleIndex = MAX_SAFE_INTEGER\r\n } else {\r\n options.visibleIndex = targetColumn.visibleIndex\r\n }\r\n }\r\n var isVisible = \"columnChooser\" !== targetLocation;\r\n if (column.visible !== isVisible) {\r\n options.visible = isVisible\r\n }\r\n this.columnOption(column.index, options)\r\n }\r\n },\r\n changeSortOrder: function(columnIndex, sortOrder) {\r\n var options = {};\r\n var sortingOptions = this.option(\"sorting\");\r\n var sortingMode = sortingOptions && sortingOptions.mode;\r\n var needResetSorting = \"single\" === sortingMode || !sortOrder;\r\n var allowSorting = \"single\" === sortingMode || \"multiple\" === sortingMode;\r\n var column = this._columns[columnIndex];\r\n if (allowSorting && column && column.allowSorting) {\r\n if (needResetSorting && !isDefined(column.groupIndex)) {\r\n each(this._columns, (function(index) {\r\n if (index !== columnIndex && this.sortOrder) {\r\n if (!isDefined(this.groupIndex)) {\r\n delete this.sortOrder\r\n }\r\n delete this.sortIndex\r\n }\r\n }))\r\n }\r\n if (isSortOrderValid(sortOrder)) {\r\n if (column.sortOrder !== sortOrder) {\r\n options.sortOrder = sortOrder\r\n }\r\n } else if (\"none\" === sortOrder) {\r\n if (column.sortOrder) {\r\n options.sortIndex = void 0;\r\n options.sortOrder = void 0\r\n }\r\n } else {\r\n ! function(column) {\r\n if (\"ctrl\" === sortOrder) {\r\n if (!(\"sortOrder\" in column && \"sortIndex\" in column)) {\r\n return false\r\n }\r\n options.sortOrder = void 0;\r\n options.sortIndex = void 0\r\n } else if (isDefined(column.groupIndex) || isDefined(column.sortIndex)) {\r\n options.sortOrder = \"desc\" === column.sortOrder ? \"asc\" : \"desc\"\r\n } else {\r\n options.sortOrder = \"asc\"\r\n }\r\n return true\r\n }(column)\r\n }\r\n }\r\n this.columnOption(column.index, options)\r\n },\r\n getSortDataSourceParameters: function(useLocalSelector) {\r\n var sortColumns = [];\r\n var sort = [];\r\n each(this._columns, (function() {\r\n if ((this.dataField || this.selector || this.calculateCellValue) && isDefined(this.sortIndex) && !isDefined(this.groupIndex)) {\r\n sortColumns[this.sortIndex] = this\r\n }\r\n }));\r\n each(sortColumns, (function() {\r\n var sortOrder = this && this.sortOrder;\r\n if (isSortOrderValid(sortOrder)) {\r\n var sortItem = {\r\n selector: this.calculateSortValue || this.displayField || this.calculateDisplayValue || useLocalSelector && this.selector || this.dataField || this.calculateCellValue,\r\n desc: \"desc\" === this.sortOrder\r\n };\r\n if (this.sortingMethod) {\r\n sortItem.compare = this.sortingMethod.bind(this)\r\n }\r\n sort.push(sortItem)\r\n }\r\n }));\r\n return sort.length > 0 ? sort : null\r\n },\r\n getGroupDataSourceParameters: function(useLocalSelector) {\r\n var group = [];\r\n each(this.getGroupColumns(), (function() {\r\n var selector = this.calculateGroupValue || this.displayField || this.calculateDisplayValue || useLocalSelector && this.selector || this.dataField || this.calculateCellValue;\r\n if (selector) {\r\n var groupItem = {\r\n selector: selector,\r\n desc: \"desc\" === this.sortOrder,\r\n isExpanded: !!this.autoExpandGroup\r\n };\r\n if (this.sortingMethod) {\r\n groupItem.compare = this.sortingMethod.bind(this)\r\n }\r\n group.push(groupItem)\r\n }\r\n }));\r\n return group.length > 0 ? group : null\r\n },\r\n refresh: function(updateNewLookupsOnly) {\r\n var deferreds = [];\r\n each(this._columns, (function() {\r\n var lookup = this.lookup;\r\n if (lookup && !this.calculateDisplayValue) {\r\n if (updateNewLookupsOnly && lookup.valueMap) {\r\n return\r\n }\r\n if (lookup.update) {\r\n deferreds.push(lookup.update())\r\n }\r\n }\r\n }));\r\n return when.apply($, deferreds).done(resetColumnsCache.bind(null, this))\r\n },\r\n _updateColumnOptions: function(column, columnIndex) {\r\n column.selector = column.selector || function(data) {\r\n return column.calculateCellValue(data)\r\n };\r\n each([\"calculateSortValue\", \"calculateGroupValue\", \"calculateDisplayValue\"], (function(_, calculateCallbackName) {\r\n var calculateCallback = column[calculateCallbackName];\r\n if (isFunction(calculateCallback)) {\r\n if (!calculateCallback.originalCallback) {\r\n var context = {\r\n column: column\r\n };\r\n column[calculateCallbackName] = function(data) {\r\n return calculateCallback.call(context.column, data)\r\n };\r\n column[calculateCallbackName].originalCallback = calculateCallback;\r\n column[calculateCallbackName].columnIndex = columnIndex;\r\n column[calculateCallbackName].context = context\r\n } else {\r\n column[calculateCallbackName].context.column = column\r\n }\r\n }\r\n }));\r\n if (isString(column.calculateDisplayValue)) {\r\n column.displayField = column.calculateDisplayValue;\r\n column.calculateDisplayValue = compileGetter(column.displayField)\r\n }\r\n if (column.calculateDisplayValue) {\r\n column.displayValueMap = column.displayValueMap || {}\r\n }\r\n updateSerializers(column, column.dataType);\r\n var lookup = column.lookup;\r\n if (lookup) {\r\n updateSerializers(lookup, lookup.dataType)\r\n }\r\n var dataType = lookup ? lookup.dataType : column.dataType;\r\n if (dataType) {\r\n column.alignment = column.alignment || function(dataType, isRTL) {\r\n switch (dataType) {\r\n case \"number\":\r\n return \"right\";\r\n case \"boolean\":\r\n return \"center\";\r\n default:\r\n return getDefaultAlignment(isRTL)\r\n }\r\n }(dataType, this.option(\"rtlEnabled\"));\r\n column.format = column.format || gridCoreUtils.getFormatByDataType(dataType);\r\n column.customizeText = column.customizeText || getCustomizeTextByDataType(dataType);\r\n column.defaultFilterOperations = column.defaultFilterOperations || !lookup && DATATYPE_OPERATIONS[dataType] || [];\r\n if (!isDefined(column.filterOperations)) {\r\n setFilterOperationsAsDefaultValues(column)\r\n }\r\n column.defaultFilterOperation = column.filterOperations && column.filterOperations[0] || \"=\";\r\n column.showEditorAlways = isDefined(column.showEditorAlways) ? column.showEditorAlways : \"boolean\" === dataType && !column.cellTemplate && !column.lookup\r\n }\r\n },\r\n updateColumnDataTypes: function(dataSource) {\r\n var that = this;\r\n var dateSerializationFormat = that.option(\"dateSerializationFormat\");\r\n var firstItems = that._getFirstItems(dataSource);\r\n var isColumnDataTypesUpdated = false;\r\n each(that._columns, (function(index, column) {\r\n var i;\r\n var value;\r\n var dataType;\r\n var lookupDataType;\r\n var valueDataType;\r\n var lookup = column.lookup;\r\n if (gridCoreUtils.isDateType(column.dataType) && void 0 === column.serializationFormat) {\r\n column.serializationFormat = dateSerializationFormat\r\n }\r\n if (lookup && gridCoreUtils.isDateType(lookup.dataType) && void 0 === column.serializationFormat) {\r\n lookup.serializationFormat = dateSerializationFormat\r\n }\r\n if (column.calculateCellValue && firstItems.length) {\r\n if (!column.dataType || lookup && !lookup.dataType) {\r\n for (i = 0; i < firstItems.length; i++) {\r\n value = column.calculateCellValue(firstItems[i]);\r\n if (!column.dataType) {\r\n valueDataType = getValueDataType(value);\r\n dataType = dataType || valueDataType;\r\n if (dataType && valueDataType && dataType !== valueDataType) {\r\n dataType = \"string\"\r\n }\r\n }\r\n if (lookup && !lookup.dataType) {\r\n valueDataType = getValueDataType(gridCoreUtils.getDisplayValue(column, value, firstItems[i]));\r\n lookupDataType = lookupDataType || valueDataType;\r\n if (lookupDataType && valueDataType && lookupDataType !== valueDataType) {\r\n lookupDataType = \"string\"\r\n }\r\n }\r\n }\r\n if (dataType || lookupDataType) {\r\n if (dataType) {\r\n column.dataType = dataType\r\n }\r\n if (lookup && lookupDataType) {\r\n lookup.dataType = lookupDataType\r\n }\r\n isColumnDataTypesUpdated = true\r\n }\r\n }\r\n if (void 0 === column.serializationFormat || lookup && void 0 === lookup.serializationFormat) {\r\n for (i = 0; i < firstItems.length; i++) {\r\n value = column.calculateCellValue(firstItems[i], true);\r\n if (void 0 === column.serializationFormat) {\r\n column.serializationFormat = getSerializationFormat(column.dataType, value)\r\n }\r\n if (lookup && void 0 === lookup.serializationFormat) {\r\n lookup.serializationFormat = getSerializationFormat(lookup.dataType, lookup.calculateCellValue(value, true))\r\n }\r\n }\r\n }\r\n }\r\n that._updateColumnOptions(column, index)\r\n }));\r\n return isColumnDataTypesUpdated\r\n },\r\n _customizeColumns: function(columns) {\r\n var customizeColumns = this.option(\"customizeColumns\");\r\n if (customizeColumns) {\r\n var hasOwnerBand = columns.some((function(column) {\r\n return isObject(column.ownerBand)\r\n }));\r\n if (hasOwnerBand) {\r\n updateIndexes(this)\r\n }\r\n customizeColumns(columns);\r\n assignColumns(this, createColumnsFromOptions(this, columns))\r\n }\r\n },\r\n updateColumns: function(dataSource, forceApplying, isApplyingUserState) {\r\n if (!forceApplying) {\r\n this.updateSortingGrouping(dataSource)\r\n }\r\n if (!dataSource || dataSource.isLoaded()) {\r\n var sortParameters = dataSource ? dataSource.sort() || [] : this.getSortDataSourceParameters();\r\n var groupParameters = dataSource ? dataSource.group() || [] : this.getGroupDataSourceParameters();\r\n var filterParameters = null === dataSource || void 0 === dataSource ? void 0 : dataSource.lastLoadOptions().filter;\r\n if (!isApplyingUserState) {\r\n this._customizeColumns(this._columns)\r\n }\r\n updateIndexes(this);\r\n var columns = this._columns;\r\n return when(this.refresh(true)).always(() => {\r\n if (this._columns !== columns) {\r\n return\r\n }\r\n this._updateChanges(dataSource, {\r\n sorting: sortParameters,\r\n grouping: groupParameters,\r\n filtering: filterParameters\r\n });\r\n fireColumnsChanged(this)\r\n })\r\n }\r\n },\r\n _updateChanges: function(dataSource, parameters) {\r\n if (dataSource) {\r\n this.updateColumnDataTypes(dataSource);\r\n this._dataSourceApplied = true\r\n }\r\n if (!gridCoreUtils.equalSortParameters(parameters.sorting, this.getSortDataSourceParameters())) {\r\n updateColumnChanges(this, \"sorting\")\r\n }\r\n if (!gridCoreUtils.equalSortParameters(parameters.grouping, this.getGroupDataSourceParameters())) {\r\n updateColumnChanges(this, \"grouping\")\r\n }\r\n var dataController = this.getController(\"data\");\r\n if (dataController && !gridCoreUtils.equalFilterParameters(parameters.filtering, dataController.getCombinedFilter())) {\r\n updateColumnChanges(this, \"filtering\")\r\n }\r\n updateColumnChanges(this, \"columns\")\r\n },\r\n updateSortingGrouping: function(dataSource, fromDataSource) {\r\n var that = this;\r\n var sortParameters;\r\n var isColumnsChanged;\r\n var updateSortGroupParameterIndexes = function(columns, sortParameters, indexParameterName) {\r\n each(columns, (function(index, column) {\r\n delete column[indexParameterName];\r\n if (sortParameters) {\r\n for (var i = 0; i < sortParameters.length; i++) {\r\n var selector = sortParameters[i].selector;\r\n var isExpanded = sortParameters[i].isExpanded;\r\n if (selector === column.dataField || selector === column.name || selector === column.selector || selector === column.calculateCellValue || selector === column.calculateGroupValue || selector === column.calculateDisplayValue) {\r\n if (fromDataSource) {\r\n column.sortOrder = \"sortOrder\" in column ? column.sortOrder : sortParameters[i].desc ? \"desc\" : \"asc\"\r\n } else {\r\n column.sortOrder = column.sortOrder || (sortParameters[i].desc ? \"desc\" : \"asc\")\r\n }\r\n if (void 0 !== isExpanded) {\r\n column.autoExpandGroup = isExpanded\r\n }\r\n column[indexParameterName] = i;\r\n break\r\n }\r\n }\r\n }\r\n }))\r\n };\r\n if (dataSource) {\r\n sortParameters = gridCoreUtils.normalizeSortingInfo(dataSource.sort());\r\n var groupParameters = gridCoreUtils.normalizeSortingInfo(dataSource.group());\r\n var columnsGroupParameters = that.getGroupDataSourceParameters();\r\n var columnsSortParameters = that.getSortDataSourceParameters();\r\n var groupingChanged = !gridCoreUtils.equalSortParameters(groupParameters, columnsGroupParameters, true);\r\n var groupExpandingChanged = !groupingChanged && !gridCoreUtils.equalSortParameters(groupParameters, columnsGroupParameters);\r\n if (!that._columns.length) {\r\n each(groupParameters, (function(index, group) {\r\n that._columns.push(group.selector)\r\n }));\r\n each(sortParameters, (function(index, sort) {\r\n if (!isFunction(sort.selector)) {\r\n that._columns.push(sort.selector)\r\n }\r\n }));\r\n assignColumns(that, createColumnsFromOptions(that, that._columns))\r\n }\r\n if ((fromDataSource || !columnsGroupParameters && !that._hasUserState) && (groupingChanged || groupExpandingChanged)) {\r\n updateSortGroupParameterIndexes(that._columns, groupParameters, \"groupIndex\");\r\n if (fromDataSource) {\r\n groupingChanged && updateColumnChanges(that, \"grouping\");\r\n groupExpandingChanged && updateColumnChanges(that, \"groupExpanding\");\r\n isColumnsChanged = true\r\n }\r\n }\r\n if ((fromDataSource || !columnsSortParameters && !that._hasUserState) && !gridCoreUtils.equalSortParameters(sortParameters, columnsSortParameters)) {\r\n updateSortGroupParameterIndexes(that._columns, sortParameters, \"sortIndex\");\r\n if (fromDataSource) {\r\n updateColumnChanges(that, \"sorting\");\r\n isColumnsChanged = true\r\n }\r\n }\r\n if (isColumnsChanged) {\r\n fireColumnsChanged(that)\r\n }\r\n }\r\n },\r\n updateFilter: function(filter, remoteFiltering, columnIndex, filterValue) {\r\n if (!Array.isArray(filter)) {\r\n return filter\r\n }\r\n filter = extend([], filter);\r\n columnIndex = void 0 !== filter.columnIndex ? filter.columnIndex : columnIndex;\r\n filterValue = void 0 !== filter.filterValue ? filter.filterValue : filterValue;\r\n if (isString(filter[0]) && \"!\" !== filter[0]) {\r\n var column = this.columnOption(filter[0]);\r\n if (remoteFiltering) {\r\n if (config().forceIsoDateParsing && column && column.serializeValue && filter.length > 1) {\r\n filter[filter.length - 1] = column.serializeValue(filter[filter.length - 1], \"filter\")\r\n }\r\n } else if (column && column.selector) {\r\n filter[0] = column.selector;\r\n filter[0].columnIndex = column.index\r\n }\r\n } else if (isFunction(filter[0])) {\r\n filter[0].columnIndex = columnIndex;\r\n filter[0].filterValue = filterValue\r\n }\r\n for (var i = 0; i < filter.length; i++) {\r\n filter[i] = this.updateFilter(filter[i], remoteFiltering, columnIndex, filterValue)\r\n }\r\n return filter\r\n },\r\n columnCount: function() {\r\n return this._columns ? this._columns.length : 0\r\n },\r\n columnOption: function(identifier, option, value, notFireEvent) {\r\n var that = this;\r\n var columns = that._columns.concat(that._commandColumns);\r\n var column = findColumn(columns, identifier);\r\n if (column) {\r\n if (1 === arguments.length) {\r\n return extend({}, column)\r\n }\r\n if (isString(option)) {\r\n if (2 === arguments.length) {\r\n return columnOptionCore(that, column, option)\r\n } else {\r\n columnOptionCore(that, column, option, value, notFireEvent)\r\n }\r\n } else if (isObject(option)) {\r\n each(option, (function(optionName, value) {\r\n columnOptionCore(that, column, optionName, value, notFireEvent)\r\n }))\r\n }\r\n fireColumnsChanged(that)\r\n }\r\n },\r\n clearSorting: function() {\r\n var columnCount = this.columnCount();\r\n this.beginUpdate();\r\n for (var i = 0; i < columnCount; i++) {\r\n this.columnOption(i, \"sortOrder\", void 0)\r\n }\r\n this.endUpdate()\r\n },\r\n clearGrouping: function() {\r\n var columnCount = this.columnCount();\r\n this.beginUpdate();\r\n for (var i = 0; i < columnCount; i++) {\r\n this.columnOption(i, \"groupIndex\", void 0)\r\n }\r\n this.endUpdate()\r\n },\r\n getVisibleIndex: function(index, rowIndex) {\r\n var columns = this.getVisibleColumns(rowIndex);\r\n for (var i = columns.length - 1; i >= 0; i--) {\r\n if (columns[i].index === index) {\r\n return i\r\n }\r\n }\r\n return -1\r\n },\r\n getVisibleIndexByColumn: function(column, rowIndex) {\r\n var visibleColumns = this.getVisibleColumns(rowIndex);\r\n var visibleColumn = visibleColumns.filter(col => col.index === column.index && col.command === column.command)[0];\r\n return visibleColumns.indexOf(visibleColumn)\r\n },\r\n getVisibleColumnIndex: function(id, rowIndex) {\r\n var index = this.columnOption(id, \"index\");\r\n return this.getVisibleIndex(index, rowIndex)\r\n },\r\n addColumn: function(options) {\r\n var column = createColumn(this, options);\r\n var index = this._columns.length;\r\n this._columns.push(column);\r\n if (column.isBand) {\r\n this._columns = createColumnsFromOptions(this, this._columns);\r\n column = this._columns[index]\r\n }\r\n column.added = options;\r\n updateIndexes(this, column);\r\n this.updateColumns(this._dataSource);\r\n this._checkColumns()\r\n },\r\n deleteColumn: function(id) {\r\n var column = this.columnOption(id);\r\n if (column && column.index >= 0) {\r\n columns = this._columns, void columns.forEach(column => {\r\n if (isDefined(column.ownerBand)) {\r\n column.ownerBand = columns[column.ownerBand]\r\n }\r\n });\r\n this._columns.splice(column.index, 1);\r\n if (column.isBand) {\r\n var childIndexes = this.getChildrenByBandColumn(column.index).map(column => column.index);\r\n this._columns = this._columns.filter(column => childIndexes.indexOf(column.index) < 0)\r\n }\r\n updateIndexes(this);\r\n this.updateColumns(this._dataSource)\r\n }\r\n var columns\r\n },\r\n addCommandColumn: function(options) {\r\n var commandColumn = this._commandColumns.filter(column => column.command === options.command)[0];\r\n if (!commandColumn) {\r\n commandColumn = options;\r\n this._commandColumns.push(commandColumn)\r\n }\r\n },\r\n getUserState: function() {\r\n var columns = this._columns;\r\n var result = [];\r\n var i;\r\n\r\n function handleStateField(index, value) {\r\n if (void 0 !== columns[i][value]) {\r\n result[i][value] = columns[i][value]\r\n }\r\n }\r\n for (i = 0; i < columns.length; i++) {\r\n result[i] = {};\r\n each(USER_STATE_FIELD_NAMES, handleStateField)\r\n }\r\n return result\r\n },\r\n setName: function(column) {\r\n column.name = column.name || column.dataField || column.type\r\n },\r\n setUserState: function(state) {\r\n var dataSource = this._dataSource;\r\n var ignoreColumnOptionNames = this.option(\"stateStoring.ignoreColumnOptionNames\");\r\n null === state || void 0 === state ? void 0 : state.forEach(this.setName);\r\n if (!ignoreColumnOptionNames) {\r\n ignoreColumnOptionNames = [];\r\n var commonColumnSettings = this.getCommonSettings();\r\n if (!this.option(\"columnChooser.enabled\")) {\r\n ignoreColumnOptionNames.push(\"visible\")\r\n }\r\n if (\"none\" === this.option(\"sorting.mode\")) {\r\n ignoreColumnOptionNames.push(\"sortIndex\", \"sortOrder\")\r\n }\r\n if (!commonColumnSettings.allowGrouping) {\r\n ignoreColumnOptionNames.push(\"groupIndex\")\r\n }\r\n if (!commonColumnSettings.allowFixing) {\r\n ignoreColumnOptionNames.push(\"fixed\", \"fixedPosition\")\r\n }\r\n if (!commonColumnSettings.allowResizing) {\r\n ignoreColumnOptionNames.push(\"width\", \"visibleWidth\")\r\n }\r\n var isFilterPanelHidden = !this.option(\"filterPanel.visible\");\r\n if (!this.option(\"filterRow.visible\") && isFilterPanelHidden) {\r\n ignoreColumnOptionNames.push(\"filterValue\", \"selectedFilterOperation\")\r\n }\r\n if (!this.option(\"headerFilter.visible\") && isFilterPanelHidden) {\r\n ignoreColumnOptionNames.push(\"filterValues\", \"filterType\")\r\n }\r\n }\r\n this._columnsUserState = state;\r\n this._ignoreColumnOptionNames = ignoreColumnOptionNames;\r\n this._hasUserState = !!state;\r\n updateColumnChanges(this, \"filtering\");\r\n this.init(true);\r\n if (dataSource) {\r\n dataSource.sort(this.getSortDataSourceParameters());\r\n dataSource.group(this.getGroupDataSourceParameters())\r\n }\r\n },\r\n _checkColumns: function() {\r\n var usedNames = {};\r\n var hasEditableColumnWithoutName = false;\r\n var duplicatedNames = [];\r\n this._columns.forEach(column => {\r\n var _column$columns;\r\n var name = column.name;\r\n var isBand = null === (_column$columns = column.columns) || void 0 === _column$columns ? void 0 : _column$columns.length;\r\n var isEditable = column.allowEditing && (column.dataField || column.setCellValue) && !isBand;\r\n if (name) {\r\n if (usedNames[name]) {\r\n duplicatedNames.push('\"'.concat(name, '\"'))\r\n }\r\n usedNames[name] = true\r\n } else if (isEditable) {\r\n hasEditableColumnWithoutName = true\r\n }\r\n });\r\n if (duplicatedNames.length) {\r\n errors.log(\"E1059\", duplicatedNames.join(\", \"))\r\n }\r\n if (hasEditableColumnWithoutName) {\r\n errors.log(\"E1060\")\r\n }\r\n },\r\n _createCalculatedColumnOptions: function(columnOptions, bandColumn) {\r\n var calculatedColumnOptions = {};\r\n var dataField = columnOptions.dataField;\r\n if (Array.isArray(columnOptions.columns) && columnOptions.columns.length || columnOptions.isBand) {\r\n calculatedColumnOptions.isBand = true;\r\n dataField = null\r\n }\r\n if (dataField) {\r\n if (isString(dataField)) {\r\n var getter = compileGetter(dataField);\r\n calculatedColumnOptions = {\r\n caption: captionize(dataField),\r\n calculateCellValue: function(data, skipDeserialization) {\r\n var value = getter(data);\r\n return this.deserializeValue && !skipDeserialization ? this.deserializeValue(value) : value\r\n },\r\n setCellValue: defaultSetCellValue,\r\n parseValue: function(text) {\r\n var result;\r\n var parsedValue;\r\n if (\"number\" === this.dataType) {\r\n if (isString(text) && this.format) {\r\n result = function(text, format) {\r\n var parsedValue = numberLocalization.parse(text);\r\n if (isNumeric(parsedValue)) {\r\n var formattedValue = numberLocalization.format(parsedValue, format);\r\n var formattedValueWithDefaultFormat = numberLocalization.format(parsedValue, \"decimal\");\r\n if (formattedValue === text || formattedValueWithDefaultFormat === text) {\r\n return parsedValue\r\n }\r\n }\r\n }(text.trim(), this.format)\r\n } else if (isDefined(text) && isNumeric(text)) {\r\n result = Number(text)\r\n }\r\n } else if (\"boolean\" === this.dataType) {\r\n if (text === this.trueText) {\r\n result = true\r\n } else if (text === this.falseText) {\r\n result = false\r\n }\r\n } else if (gridCoreUtils.isDateType(this.dataType)) {\r\n parsedValue = dateLocalization.parse(text, this.format);\r\n if (parsedValue) {\r\n result = parsedValue\r\n }\r\n } else {\r\n result = text\r\n }\r\n return result\r\n }\r\n }\r\n }\r\n calculatedColumnOptions.allowFiltering = true\r\n } else {\r\n calculatedColumnOptions.allowFiltering = !!columnOptions.calculateFilterExpression\r\n }\r\n calculatedColumnOptions.calculateFilterExpression = function() {\r\n return filterUtils.defaultCalculateFilterExpression.apply(this, arguments)\r\n };\r\n calculatedColumnOptions.createFilterExpression = function(filterValue) {\r\n var result;\r\n if (this.calculateFilterExpression) {\r\n result = this.calculateFilterExpression.apply(this, arguments)\r\n }\r\n if (isFunction(result)) {\r\n result = [result, \"=\", true]\r\n }\r\n if (result) {\r\n result.columnIndex = this.index;\r\n result.filterValue = filterValue\r\n }\r\n return result\r\n };\r\n if (!dataField || !isString(dataField)) {\r\n extend(true, calculatedColumnOptions, {\r\n allowSorting: false,\r\n allowGrouping: false,\r\n calculateCellValue: function() {\r\n return null\r\n }\r\n })\r\n }\r\n if (bandColumn) {\r\n calculatedColumnOptions.allowFixing = false\r\n }\r\n if (columnOptions.dataType) {\r\n calculatedColumnOptions.userDataType = columnOptions.dataType\r\n }\r\n if (columnOptions.selectedFilterOperation && !(\"defaultSelectedFilterOperation\" in calculatedColumnOptions)) {\r\n calculatedColumnOptions.defaultSelectedFilterOperation = columnOptions.selectedFilterOperation\r\n }\r\n if (columnOptions.lookup) {\r\n calculatedColumnOptions.lookup = {\r\n calculateCellValue: function(value, skipDeserialization) {\r\n if (this.valueExpr) {\r\n value = this.valueMap && this.valueMap[value]\r\n }\r\n return this.deserializeValue && !skipDeserialization ? this.deserializeValue(value) : value\r\n },\r\n updateValueMap: function() {\r\n this.valueMap = {};\r\n if (this.items) {\r\n var calculateValue = compileGetter(this.valueExpr);\r\n var calculateDisplayValue = compileGetter(this.displayExpr);\r\n for (var i = 0; i < this.items.length; i++) {\r\n var item = this.items[i];\r\n var displayValue = calculateDisplayValue(item);\r\n this.valueMap[calculateValue(item)] = displayValue;\r\n this.dataType = this.dataType || getValueDataType(displayValue)\r\n }\r\n }\r\n },\r\n update: function() {\r\n var that = this;\r\n var dataSource = that.dataSource;\r\n if (dataSource) {\r\n if (isFunction(dataSource) && !variableWrapper.isWrapped(dataSource)) {\r\n dataSource = dataSource({})\r\n }\r\n if (isPlainObject(dataSource) || dataSource instanceof Store || Array.isArray(dataSource)) {\r\n if (that.valueExpr) {\r\n var dataSourceOptions = normalizeDataSourceOptions(dataSource);\r\n dataSourceOptions.paginate = false;\r\n dataSource = new DataSource(dataSourceOptions);\r\n return dataSource.load().done((function(data) {\r\n that.items = data;\r\n that.updateValueMap && that.updateValueMap()\r\n }))\r\n }\r\n } else {\r\n errors.log(\"E1016\")\r\n }\r\n } else {\r\n that.updateValueMap && that.updateValueMap()\r\n }\r\n }\r\n }\r\n }\r\n calculatedColumnOptions.resizedCallbacks = Callbacks();\r\n if (columnOptions.resized) {\r\n calculatedColumnOptions.resizedCallbacks.add(columnOptions.resized.bind(columnOptions))\r\n }\r\n each(calculatedColumnOptions, (function(optionName) {\r\n if (isFunction(calculatedColumnOptions[optionName]) && 0 !== optionName.indexOf(\"default\")) {\r\n var defaultOptionName = \"default\" + optionName.charAt(0).toUpperCase() + optionName.substr(1);\r\n calculatedColumnOptions[defaultOptionName] = calculatedColumnOptions[optionName]\r\n }\r\n }));\r\n return calculatedColumnOptions\r\n },\r\n getRowCount: function() {\r\n this._rowCount = this._rowCount || function(that) {\r\n var rowCount = 1;\r\n var bandColumnsCache = that.getBandColumnsCache();\r\n var columnParentByIndex = bandColumnsCache.columnParentByIndex;\r\n that._columns.forEach((function(column) {\r\n var parents = getParentBandColumns(column.index, columnParentByIndex);\r\n var invisibleParents = parents.filter((function(column) {\r\n return !column.visible\r\n }));\r\n if (column.visible && !invisibleParents.length) {\r\n rowCount = Math.max(rowCount, parents.length + 1)\r\n }\r\n }));\r\n return rowCount\r\n }(this);\r\n return this._rowCount\r\n },\r\n getRowIndex: function(columnIndex, alwaysGetRowIndex) {\r\n var column = this._columns[columnIndex];\r\n var bandColumnsCache = this.getBandColumnsCache();\r\n return column && (alwaysGetRowIndex || column.visible && !(column.command || isDefined(column.groupIndex))) ? getParentBandColumns(columnIndex, bandColumnsCache.columnParentByIndex).length : 0\r\n },\r\n getChildrenByBandColumn: function(bandColumnIndex, onlyVisibleDirectChildren) {\r\n var bandColumnsCache = this.getBandColumnsCache();\r\n var result = _getChildrenByBandColumn(bandColumnIndex, bandColumnsCache.columnChildrenByIndex, !onlyVisibleDirectChildren);\r\n if (onlyVisibleDirectChildren) {\r\n return result.filter((function(column) {\r\n return column.visible && !column.command\r\n })).sort((function(column1, column2) {\r\n return column1.visibleIndex - column2.visibleIndex\r\n }))\r\n }\r\n return result\r\n },\r\n isParentBandColumn: function(columnIndex, bandColumnIndex) {\r\n var result = false;\r\n var column = this._columns[columnIndex];\r\n var bandColumnsCache = this.getBandColumnsCache();\r\n var parentBandColumns = column && getParentBandColumns(columnIndex, bandColumnsCache.columnParentByIndex);\r\n if (parentBandColumns) {\r\n each(parentBandColumns, (function(_, bandColumn) {\r\n if (bandColumn.index === bandColumnIndex) {\r\n result = true;\r\n return false\r\n }\r\n }))\r\n }\r\n return result\r\n },\r\n isParentColumnVisible: function(columnIndex) {\r\n var result = true;\r\n var bandColumnsCache = this.getBandColumnsCache();\r\n var bandColumns = columnIndex >= 0 && getParentBandColumns(columnIndex, bandColumnsCache.columnParentByIndex);\r\n bandColumns && each(bandColumns, (function(_, bandColumn) {\r\n result = result && bandColumn.visible;\r\n return result\r\n }));\r\n return result\r\n },\r\n getColumnId: function(column) {\r\n if (column.command && column.type === GROUP_COMMAND_COLUMN_NAME) {\r\n if (isCustomCommandColumn(this, column)) {\r\n return \"type:\" + column.type\r\n }\r\n return \"command:\" + column.command\r\n }\r\n return column.index\r\n },\r\n getCustomizeTextByDataType: getCustomizeTextByDataType,\r\n getHeaderContentAlignment: function(columnAlignment) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n if (rtlEnabled) {\r\n return \"left\" === columnAlignment ? \"right\" : \"left\"\r\n }\r\n return columnAlignment\r\n }\r\n }\r\n }())\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.columns_controller.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n columnsControllerModule\r\n} from \"../grid_core/ui.grid_core.columns_controller\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\ngridCore.registerModule(\"columns\", {\r\n defaultOptions: function() {\r\n return extend(true, {}, columnsControllerModule.defaultOptions(), {\r\n commonColumnSettings: {\r\n allowExporting: true\r\n }\r\n })\r\n },\r\n controllers: columnsControllerModule.controllers\r\n});\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.data_source_adapter.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport Callbacks from \"../../core/utils/callbacks\";\r\nimport gridCore from \"../data_grid/ui.data_grid.core\";\r\nimport {\r\n executeAsync,\r\n getKeyHash\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined,\r\n isPlainObject,\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport ArrayStore from \"../../data/array_store\";\r\nimport {\r\n applyBatch\r\n} from \"../../data/array_utils\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nexport default gridCore.Controller.inherit(function() {\r\n function cloneItems(items, groupCount) {\r\n if (items) {\r\n items = items.slice(0);\r\n if (groupCount) {\r\n for (var i = 0; i < items.length; i++) {\r\n items[i] = extend({\r\n key: items[i].key\r\n }, items[i]);\r\n items[i].items = cloneItems(items[i].items, groupCount - 1)\r\n }\r\n }\r\n }\r\n return items\r\n }\r\n\r\n function calculateOperationTypes(loadOptions, lastLoadOptions, isFullReload) {\r\n var operationTypes = {\r\n reload: true,\r\n fullReload: true\r\n };\r\n if (lastLoadOptions) {\r\n operationTypes = {\r\n sorting: !gridCore.equalSortParameters(loadOptions.sort, lastLoadOptions.sort),\r\n grouping: !gridCore.equalSortParameters(loadOptions.group, lastLoadOptions.group, true),\r\n groupExpanding: !gridCore.equalSortParameters(loadOptions.group, lastLoadOptions.group) || lastLoadOptions.groupExpand,\r\n filtering: !gridCore.equalFilterParameters(loadOptions.filter, lastLoadOptions.filter),\r\n pageIndex: loadOptions.pageIndex !== lastLoadOptions.pageIndex,\r\n skip: loadOptions.skip !== lastLoadOptions.skip,\r\n take: loadOptions.take !== lastLoadOptions.take,\r\n pageSize: loadOptions.pageSize !== lastLoadOptions.pageSize,\r\n fullReload: isFullReload\r\n };\r\n operationTypes.reload = isFullReload || operationTypes.sorting || operationTypes.grouping || operationTypes.filtering;\r\n operationTypes.paging = operationTypes.pageIndex || operationTypes.pageSize || operationTypes.take\r\n }\r\n return operationTypes\r\n }\r\n\r\n function getPageDataFromCache(options, updatePaging) {\r\n var groupCount = gridCore.normalizeSortingInfo(options.group || options.storeLoadOptions.group || options.loadOptions.group).length;\r\n var items = [];\r\n if (fillItemsFromCache(items, options, groupCount)) {\r\n return items\r\n } else if (updatePaging) {\r\n ! function(cacheItemsFromBegin, options, groupCount) {\r\n var cacheItemBeginCount = cacheItemsFromBegin.length;\r\n var {\r\n storeLoadOptions: storeLoadOptions\r\n } = options;\r\n if (void 0 !== storeLoadOptions.skip && storeLoadOptions.take && !groupCount) {\r\n var cacheItemsFromEnd = [];\r\n fillItemsFromCache(cacheItemsFromEnd, options, groupCount, true);\r\n var cacheItemEndCount = cacheItemsFromEnd.length;\r\n if (cacheItemBeginCount || cacheItemEndCount) {\r\n var _options$skip2, _options$take2;\r\n options.skip = null !== (_options$skip2 = options.skip) && void 0 !== _options$skip2 ? _options$skip2 : storeLoadOptions.skip;\r\n options.take = null !== (_options$take2 = options.take) && void 0 !== _options$take2 ? _options$take2 : storeLoadOptions.take\r\n }\r\n if (cacheItemBeginCount) {\r\n storeLoadOptions.skip += cacheItemBeginCount;\r\n storeLoadOptions.take -= cacheItemBeginCount;\r\n options.cachedDataPartBegin = cacheItemsFromBegin\r\n }\r\n if (cacheItemEndCount) {\r\n storeLoadOptions.take -= cacheItemEndCount;\r\n options.cachedDataPartEnd = cacheItemsFromEnd.reverse()\r\n }\r\n }\r\n }(items, options, groupCount)\r\n }\r\n }\r\n\r\n function fillItemsFromCache(items, options, groupCount, fromEnd) {\r\n var _ref, _options$take, _options$cachedData;\r\n var {\r\n storeLoadOptions: storeLoadOptions\r\n } = options;\r\n var take = null !== (_ref = null !== (_options$take = options.take) && void 0 !== _options$take ? _options$take : storeLoadOptions.take) && void 0 !== _ref ? _ref : 0;\r\n var cachedItems = null === (_options$cachedData = options.cachedData) || void 0 === _options$cachedData ? void 0 : _options$cachedData.items;\r\n if (take && cachedItems) {\r\n var _ref2, _options$skip;\r\n var skip = null !== (_ref2 = null !== (_options$skip = options.skip) && void 0 !== _options$skip ? _options$skip : storeLoadOptions.skip) && void 0 !== _ref2 ? _ref2 : 0;\r\n for (var i = 0; i < take; i++) {\r\n var localIndex = fromEnd ? take - 1 - i : i;\r\n var cacheItemIndex = localIndex + skip;\r\n var cacheItem = cachedItems[cacheItemIndex];\r\n if (void 0 === cacheItem && cacheItemIndex in cachedItems) {\r\n return true\r\n }\r\n var item = getItemFromCache(options, cacheItem, groupCount, localIndex, take);\r\n if (item) {\r\n items.push(item)\r\n } else {\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n return false\r\n }\r\n\r\n function getItemFromCache(options, cacheItem, groupCount, index, take) {\r\n if (groupCount && cacheItem) {\r\n var skips = 0 === index && options.skips || [];\r\n var takes = index === take - 1 && options.takes || [];\r\n return function getGroupItemFromCache(cacheItem, groupCount, skips, takes) {\r\n if (groupCount && cacheItem) {\r\n var result = _extends({}, cacheItem);\r\n var skip = skips[0] || 0;\r\n var take = takes[0];\r\n var items = cacheItem.items;\r\n if (items) {\r\n if (void 0 === take && !items[skip]) {\r\n return\r\n }\r\n result.items = [];\r\n if (skips.length) {\r\n result.isContinuation = true\r\n }\r\n if (takes.length) {\r\n result.isContinuationOnNextPage = true\r\n }\r\n for (var i = 0; void 0 === take ? items[i + skip] : i < take; i++) {\r\n var childCacheItem = items[i + skip];\r\n var isLast = i + 1 === take;\r\n var item = getGroupItemFromCache(childCacheItem, groupCount - 1, 0 === i ? skips.slice(1) : [], isLast ? takes.slice(1) : []);\r\n if (void 0 !== item) {\r\n result.items.push(item)\r\n } else {\r\n return\r\n }\r\n }\r\n }\r\n return result\r\n }\r\n return cacheItem\r\n }(cacheItem, groupCount, skips, takes)\r\n } else {\r\n return cacheItem\r\n }\r\n }\r\n\r\n function getCacheItem(cacheItem, loadedItem, groupCount, skips) {\r\n if (groupCount && loadedItem) {\r\n var result = _extends({}, loadedItem);\r\n delete result.isContinuation;\r\n delete result.isContinuationOnNextPage;\r\n var skip = skips[0] || 0;\r\n if (loadedItem.items) {\r\n result.items = (null === cacheItem || void 0 === cacheItem ? void 0 : cacheItem.items) || {};\r\n loadedItem.items.forEach((item, index) => {\r\n var globalIndex = index + skip;\r\n var childSkips = 0 === index ? skips.slice(1) : [];\r\n result.items[globalIndex] = getCacheItem(result.items[globalIndex], item, groupCount - 1, childSkips)\r\n })\r\n }\r\n return result\r\n }\r\n return loadedItem\r\n }\r\n return {\r\n init: function(dataSource, remoteOperations) {\r\n var that = this;\r\n that._dataSource = dataSource;\r\n that._remoteOperations = remoteOperations || {};\r\n that._isLastPage = !dataSource.isLastPage();\r\n that._hasLastPage = false;\r\n that._currentTotalCount = 0;\r\n that._cachedData = {\r\n items: {}\r\n };\r\n that._lastOperationTypes = {};\r\n that._eventsStrategy = dataSource._eventsStrategy;\r\n that._totalCountCorrection = 0;\r\n that._isLoadingAll = false;\r\n that.changed = Callbacks();\r\n that.loadingChanged = Callbacks();\r\n that.loadError = Callbacks();\r\n that.customizeStoreLoadOptions = Callbacks();\r\n that.changing = Callbacks();\r\n that.pushed = Callbacks();\r\n that._dataChangedHandler = that._handleDataChanged.bind(that);\r\n that._customizeStoreLoadOptionsHandler = that._handleCustomizeStoreLoadOptions.bind(that);\r\n that._dataLoadedHandler = that._handleDataLoaded.bind(that);\r\n that._loadingChangedHandler = that._handleLoadingChanged.bind(that);\r\n that._loadErrorHandler = that._handleLoadError.bind(that);\r\n that._pushHandler = that._handlePush.bind(that);\r\n that._changingHandler = that._handleChanging.bind(that);\r\n dataSource.on(\"changed\", that._dataChangedHandler);\r\n dataSource.on(\"customizeStoreLoadOptions\", that._customizeStoreLoadOptionsHandler);\r\n dataSource.on(\"customizeLoadResult\", that._dataLoadedHandler);\r\n dataSource.on(\"loadingChanged\", that._loadingChangedHandler);\r\n dataSource.on(\"loadError\", that._loadErrorHandler);\r\n dataSource.on(\"changing\", that._changingHandler);\r\n dataSource.store().on(\"beforePush\", that._pushHandler);\r\n each(dataSource, (function(memberName, member) {\r\n if (!that[memberName] && isFunction(member)) {\r\n that[memberName] = function() {\r\n return this._dataSource[memberName].apply(this._dataSource, arguments)\r\n }\r\n }\r\n }))\r\n },\r\n remoteOperations: function() {\r\n return this._remoteOperations\r\n },\r\n dispose: function(isSharedDataSource) {\r\n var dataSource = this._dataSource;\r\n var store = dataSource.store();\r\n dataSource.off(\"changed\", this._dataChangedHandler);\r\n dataSource.off(\"customizeStoreLoadOptions\", this._customizeStoreLoadOptionsHandler);\r\n dataSource.off(\"customizeLoadResult\", this._dataLoadedHandler);\r\n dataSource.off(\"loadingChanged\", this._loadingChangedHandler);\r\n dataSource.off(\"loadError\", this._loadErrorHandler);\r\n dataSource.off(\"changing\", this._changingHandler);\r\n store && store.off(\"beforePush\", this._pushHandler);\r\n if (!isSharedDataSource) {\r\n dataSource.dispose()\r\n }\r\n },\r\n refresh: function(options, operationTypes) {\r\n var dataSource = this._dataSource;\r\n if (operationTypes.reload) {\r\n this.resetCurrentTotalCount();\r\n this._isLastPage = !dataSource.paginate();\r\n this._hasLastPage = this._isLastPage\r\n }\r\n },\r\n resetCurrentTotalCount: function() {\r\n this._currentTotalCount = 0;\r\n this._totalCountCorrection = 0\r\n },\r\n resetCache: function() {\r\n this._cachedStoreData = void 0;\r\n this._cachedPagingData = void 0\r\n },\r\n resetPagesCache: function() {\r\n this._cachedData = {\r\n items: {}\r\n }\r\n },\r\n _needClearStoreDataCache: function() {\r\n var remoteOperations = this.remoteOperations();\r\n var operationTypes = calculateOperationTypes(this._lastLoadOptions || {}, {});\r\n var isLocalOperations = Object.keys(remoteOperations).every(operationName => !operationTypes[operationName] || !remoteOperations[operationName]);\r\n return !isLocalOperations\r\n },\r\n push: function(changes, fromStore) {\r\n var store = this.store();\r\n if (this._needClearStoreDataCache()) {\r\n this._cachedStoreData = void 0\r\n }\r\n this._cachedPagingData = void 0;\r\n this.resetPagesCache(true);\r\n if (this._cachedStoreData) {\r\n applyBatch({\r\n keyInfo: store,\r\n data: this._cachedStoreData,\r\n changes: changes\r\n })\r\n }\r\n if (!fromStore) {\r\n this._applyBatch(changes)\r\n }\r\n this.pushed.fire(changes)\r\n },\r\n getDataIndexGetter: function() {\r\n if (!this._dataIndexGetter) {\r\n var indexByKey;\r\n var storeData;\r\n var store = this.store();\r\n this._dataIndexGetter = data => {\r\n var isCacheUpdated = storeData && storeData !== this._cachedStoreData;\r\n if (!indexByKey || isCacheUpdated) {\r\n storeData = this._cachedStoreData || [];\r\n indexByKey = {};\r\n for (var i = 0; i < storeData.length; i++) {\r\n indexByKey[getKeyHash(store.keyOf(storeData[i]))] = i\r\n }\r\n }\r\n return indexByKey[getKeyHash(store.keyOf(data))]\r\n }\r\n }\r\n return this._dataIndexGetter\r\n },\r\n _getKeyInfo: function() {\r\n return this.store()\r\n },\r\n _applyBatch: function(changes) {\r\n var keyInfo = this._getKeyInfo();\r\n var dataSource = this._dataSource;\r\n var groupCount = gridCore.normalizeSortingInfo(this.group()).length;\r\n var totalCount = this.totalCount();\r\n var isReshapeMode = \"reshape\" === this.option(\"editing.refreshMode\");\r\n var isVirtualMode = \"virtual\" === this.option(\"scrolling.mode\");\r\n var isLegacyMode = this.option(\"scrolling.legacyMode\");\r\n changes = changes.filter((function(change) {\r\n return !dataSource.paginate() || \"insert\" !== change.type || void 0 !== change.index\r\n }));\r\n var getItemCount = () => groupCount ? this.itemsCount() : this.items().length;\r\n var oldItemCount = getItemCount();\r\n applyBatch({\r\n keyInfo: keyInfo,\r\n data: this._items,\r\n changes: changes,\r\n groupCount: groupCount,\r\n useInsertIndex: true\r\n });\r\n applyBatch({\r\n keyInfo: keyInfo,\r\n data: dataSource.items(),\r\n changes: changes,\r\n groupCount: groupCount,\r\n useInsertIndex: true\r\n });\r\n var needUpdateTotalCountCorrection = this._currentTotalCount > 0 || !isReshapeMode && isVirtualMode && (!isLegacyMode || totalCount === oldItemCount);\r\n if (needUpdateTotalCountCorrection) {\r\n this._totalCountCorrection += getItemCount() - oldItemCount\r\n }\r\n changes.splice(0, changes.length)\r\n },\r\n _handlePush: function(_ref5) {\r\n var {\r\n changes: changes\r\n } = _ref5;\r\n this.push(changes, true)\r\n },\r\n _handleChanging: function(e) {\r\n this.changing.fire(e);\r\n this._applyBatch(e.changes)\r\n },\r\n _needCleanCacheByOperation: function(operationType, remoteOperations) {\r\n var operationTypesByOrder = [\"filtering\", \"sorting\", \"paging\"];\r\n var operationTypeIndex = operationTypesByOrder.indexOf(operationType);\r\n var currentOperationTypes = operationTypeIndex >= 0 ? operationTypesByOrder.slice(operationTypeIndex) : [operationType];\r\n return currentOperationTypes.some(operationType => remoteOperations[operationType])\r\n },\r\n _customizeRemoteOperations: function(options, operationTypes) {\r\n var cachedStoreData = this._cachedStoreData;\r\n var cachedPagingData = this._cachedPagingData;\r\n var cachedData = this._cachedData;\r\n if (options.storeLoadOptions.filter && !options.remoteOperations.filtering || options.storeLoadOptions.sort && !options.remoteOperations.sorting) {\r\n options.remoteOperations = {\r\n filtering: options.remoteOperations.filtering,\r\n summary: options.remoteOperations.summary\r\n }\r\n }\r\n if (operationTypes.fullReload) {\r\n cachedStoreData = void 0;\r\n cachedPagingData = void 0;\r\n cachedData = {\r\n items: {}\r\n }\r\n } else {\r\n if (operationTypes.reload) {\r\n cachedPagingData = void 0;\r\n cachedData = {\r\n items: {}\r\n }\r\n } else if (operationTypes.groupExpanding) {\r\n cachedData = {\r\n items: {}\r\n }\r\n }\r\n each(operationTypes, (operationType, value) => {\r\n if (value && this._needCleanCacheByOperation(operationType, options.remoteOperations)) {\r\n cachedStoreData = void 0;\r\n cachedPagingData = void 0\r\n }\r\n })\r\n }\r\n if (cachedPagingData) {\r\n options.remoteOperations.paging = false\r\n }\r\n options.cachedStoreData = cachedStoreData;\r\n options.cachedPagingData = cachedPagingData;\r\n options.cachedData = cachedData;\r\n if (!options.isCustomLoading) {\r\n this._cachedStoreData = cachedStoreData;\r\n this._cachedPagingData = cachedPagingData;\r\n this._cachedData = cachedData\r\n }\r\n },\r\n _handleCustomizeStoreLoadOptions(options) {\r\n var _options$data;\r\n this._handleDataLoading(options);\r\n if (!(0 === (null === (_options$data = options.data) || void 0 === _options$data ? void 0 : _options$data.length))) {\r\n options.data = getPageDataFromCache(options, true) || options.cachedStoreData\r\n }\r\n },\r\n _handleDataLoading: function(options) {\r\n var dataSource = this._dataSource;\r\n var lastLoadOptions = this._lastLoadOptions;\r\n this.customizeStoreLoadOptions.fire(options);\r\n options.delay = this.option(\"loadingTimeout\");\r\n options.originalStoreLoadOptions = options.storeLoadOptions;\r\n options.remoteOperations = extend({}, this.remoteOperations());\r\n var isFullReload = !this.isLoaded() && !this._isRefreshing;\r\n if (this.option(\"integrationOptions.renderedOnServer\") && !this.isLoaded()) {\r\n options.delay = void 0\r\n }\r\n var loadOptions = extend({\r\n pageIndex: this.pageIndex(),\r\n pageSize: this.pageSize()\r\n }, options.storeLoadOptions);\r\n var operationTypes = calculateOperationTypes(loadOptions, lastLoadOptions, isFullReload);\r\n this._customizeRemoteOperations(options, operationTypes);\r\n if (!options.isCustomLoading) {\r\n var isRefreshing = this._isRefreshing;\r\n options.pageIndex = dataSource.pageIndex();\r\n options.lastLoadOptions = loadOptions;\r\n options.operationTypes = operationTypes;\r\n this._loadingOperationTypes = operationTypes;\r\n this._isRefreshing = true;\r\n when(isRefreshing || this._isRefreshed || this.refresh(options, operationTypes)).done(() => {\r\n if (this._lastOperationId === options.operationId) {\r\n this._isRefreshed = true;\r\n this.load().always(() => {\r\n this._isRefreshed = false\r\n })\r\n }\r\n }).fail(() => {\r\n dataSource.cancel(options.operationId)\r\n }).always(() => {\r\n this._isRefreshing = false\r\n });\r\n dataSource.cancel(this._lastOperationId);\r\n this._lastOperationId = options.operationId;\r\n if (this._isRefreshing) {\r\n dataSource.cancel(this._lastOperationId)\r\n }\r\n }\r\n this._handleDataLoadingCore(options)\r\n },\r\n _handleDataLoadingCore: function(options) {\r\n var remoteOperations = options.remoteOperations;\r\n options.loadOptions = {};\r\n var cachedExtra = options.cachedData.extra;\r\n var localLoadOptionNames = {\r\n filter: !remoteOperations.filtering,\r\n sort: !remoteOperations.sorting,\r\n group: !remoteOperations.grouping,\r\n summary: !remoteOperations.summary,\r\n skip: !remoteOperations.paging,\r\n take: !remoteOperations.paging,\r\n requireTotalCount: cachedExtra && \"totalCount\" in cachedExtra || !remoteOperations.paging\r\n };\r\n each(options.storeLoadOptions, (function(optionName, optionValue) {\r\n if (localLoadOptionNames[optionName]) {\r\n options.loadOptions[optionName] = optionValue;\r\n delete options.storeLoadOptions[optionName]\r\n }\r\n }));\r\n if (cachedExtra) {\r\n options.extra = cachedExtra\r\n }\r\n },\r\n _handleDataLoaded: function(options) {\r\n var loadOptions = options.loadOptions;\r\n var localPaging = options.remoteOperations && !options.remoteOperations.paging;\r\n var cachedData = options.cachedData;\r\n var storeLoadOptions = options.storeLoadOptions;\r\n var needCache = false !== this.option(\"cacheEnabled\") && storeLoadOptions;\r\n var needPageCache = needCache && !options.isCustomLoading && cachedData && (!localPaging || storeLoadOptions.group);\r\n var needPagingCache = needCache && localPaging;\r\n var needStoreCache = needPagingCache && !options.isCustomLoading;\r\n if (!loadOptions) {\r\n this._dataSource.cancel(options.operationId);\r\n return\r\n }\r\n if (localPaging) {\r\n options.skip = loadOptions.skip;\r\n options.take = loadOptions.take;\r\n delete loadOptions.skip;\r\n delete loadOptions.take\r\n }\r\n if (loadOptions.group) {\r\n loadOptions.group = options.group || loadOptions.group\r\n }\r\n var groupCount = gridCore.normalizeSortingInfo(options.group || storeLoadOptions.group || loadOptions.group).length;\r\n if (options.cachedDataPartBegin) {\r\n options.data = options.cachedDataPartBegin.concat(options.data)\r\n }\r\n if (options.cachedDataPartEnd) {\r\n options.data = options.data.concat(options.cachedDataPartEnd)\r\n }\r\n if (!needPageCache || !getPageDataFromCache(options)) {\r\n if (needPagingCache && options.cachedPagingData) {\r\n options.data = cloneItems(options.cachedPagingData, groupCount)\r\n } else {\r\n if (needStoreCache) {\r\n if (!this._cachedStoreData) {\r\n this._cachedStoreData = cloneItems(options.data, gridCore.normalizeSortingInfo(storeLoadOptions.group).length)\r\n } else if (options.mergeStoreLoadData) {\r\n options.data = this._cachedStoreData = this._cachedStoreData.concat(options.data)\r\n }\r\n }\r\n new ArrayStore(options.data).load(loadOptions).done(data => {\r\n options.data = data;\r\n if (needStoreCache) {\r\n this._cachedPagingData = cloneItems(options.data, groupCount)\r\n }\r\n }).fail(error => {\r\n options.data = (new Deferred).reject(error)\r\n })\r\n }\r\n if (loadOptions.requireTotalCount && localPaging) {\r\n options.extra = isPlainObject(options.extra) ? options.extra : {};\r\n options.extra.totalCount = options.data.length\r\n }\r\n if (options.extra && options.extra.totalCount >= 0 && (false === storeLoadOptions.requireTotalCount || false === loadOptions.requireTotalCount)) {\r\n options.extra.totalCount = -1\r\n }\r\n this._handleDataLoadedCore(options);\r\n if (needPageCache) {\r\n cachedData.extra = cachedData.extra || extend({}, options.extra);\r\n when(options.data).done(data => {\r\n ! function(options, data, groupCount) {\r\n var _ref3, _options$skip3, _ref4, _options$take3;\r\n var {\r\n storeLoadOptions: storeLoadOptions\r\n } = options;\r\n var skip = null !== (_ref3 = null !== (_options$skip3 = options.skip) && void 0 !== _options$skip3 ? _options$skip3 : storeLoadOptions.skip) && void 0 !== _ref3 ? _ref3 : 0;\r\n var take = null !== (_ref4 = null !== (_options$take3 = options.take) && void 0 !== _options$take3 ? _options$take3 : storeLoadOptions.take) && void 0 !== _ref4 ? _ref4 : 0;\r\n for (var i = 0; i < take; i++) {\r\n var globalIndex = i + skip;\r\n var cacheItems = options.cachedData.items;\r\n var skips = 0 === i && options.skips || [];\r\n cacheItems[globalIndex] = getCacheItem(cacheItems[globalIndex], data[i], groupCount, skips)\r\n }\r\n }(options, data, groupCount)\r\n })\r\n }\r\n }\r\n when(options.data).done(() => {\r\n if (options.lastLoadOptions) {\r\n this._lastLoadOptions = options.lastLoadOptions;\r\n Object.keys(options.operationTypes).forEach(operationType => {\r\n this._lastOperationTypes[operationType] = this._lastOperationTypes[operationType] || options.operationTypes[operationType]\r\n })\r\n }\r\n });\r\n options.storeLoadOptions = options.originalStoreLoadOptions\r\n },\r\n _handleDataLoadedCore: function(options) {\r\n if (options.remoteOperations && !options.remoteOperations.paging && Array.isArray(options.data)) {\r\n if (void 0 !== options.skip) {\r\n options.data = options.data.slice(options.skip)\r\n }\r\n if (void 0 !== options.take) {\r\n options.data = options.data.slice(0, options.take)\r\n }\r\n }\r\n },\r\n _handleLoadingChanged: function(isLoading) {\r\n this.loadingChanged.fire(isLoading)\r\n },\r\n _handleLoadError: function(error) {\r\n this.loadError.fire(error);\r\n this.changed.fire({\r\n changeType: \"loadError\",\r\n error: error\r\n })\r\n },\r\n _loadPageSize: function() {\r\n return this.pageSize()\r\n },\r\n _handleDataChanged: function(args) {\r\n var currentTotalCount;\r\n var dataSource = this._dataSource;\r\n var isLoading = false;\r\n var isDataLoading = !args || isDefined(args.changeType);\r\n var itemsCount = this.itemsCount();\r\n if (isDataLoading) {\r\n this._isLastPage = !itemsCount || !this._loadPageSize() || itemsCount < this._loadPageSize();\r\n if (this._isLastPage) {\r\n this._hasLastPage = true\r\n }\r\n }\r\n if (dataSource.totalCount() >= 0) {\r\n if (dataSource.pageIndex() >= this.pageCount()) {\r\n dataSource.pageIndex(this.pageCount() - 1);\r\n this.pageIndex(dataSource.pageIndex());\r\n this.resetPagesCache();\r\n dataSource.load();\r\n isLoading = true\r\n }\r\n } else if (isDataLoading) {\r\n currentTotalCount = dataSource.pageIndex() * this.pageSize() + itemsCount;\r\n if (currentTotalCount > this._currentTotalCount) {\r\n this._currentTotalCount = currentTotalCount;\r\n if (0 === dataSource.pageIndex() || !this.option(\"scrolling.legacyMode\")) {\r\n this._totalCountCorrection = 0\r\n }\r\n }\r\n if (0 === itemsCount && dataSource.pageIndex() >= this.pageCount()) {\r\n dataSource.pageIndex(this.pageCount() - 1);\r\n if (\"infinite\" !== this.option(\"scrolling.mode\")) {\r\n dataSource.load();\r\n isLoading = true\r\n }\r\n }\r\n }\r\n if (!isLoading) {\r\n this._operationTypes = this._lastOperationTypes;\r\n this._lastOperationTypes = {};\r\n this.component._optionCache = {};\r\n this.changed.fire(args);\r\n this.component._optionCache = void 0\r\n }\r\n },\r\n _scheduleCustomLoadCallbacks: function(deferred) {\r\n var that = this;\r\n that._isCustomLoading = true;\r\n deferred.always((function() {\r\n that._isCustomLoading = false\r\n }))\r\n },\r\n loadingOperationTypes: function() {\r\n return this._loadingOperationTypes\r\n },\r\n operationTypes: function() {\r\n return this._operationTypes\r\n },\r\n lastLoadOptions: function() {\r\n return this._lastLoadOptions || {}\r\n },\r\n isLastPage: function() {\r\n return this._isLastPage\r\n },\r\n _dataSourceTotalCount: function() {\r\n return this._dataSource.totalCount()\r\n },\r\n totalCount: function() {\r\n return parseInt((this._currentTotalCount || this._dataSourceTotalCount()) + this._totalCountCorrection)\r\n },\r\n totalCountCorrection: function() {\r\n return this._totalCountCorrection\r\n },\r\n itemsCount: function() {\r\n return this._dataSource.items().length\r\n },\r\n totalItemsCount: function() {\r\n return this.totalCount()\r\n },\r\n pageSize: function() {\r\n var dataSource = this._dataSource;\r\n if (!arguments.length && !dataSource.paginate()) {\r\n return 0\r\n }\r\n return dataSource.pageSize.apply(dataSource, arguments)\r\n },\r\n pageCount: function() {\r\n var count = this.totalItemsCount() - this._totalCountCorrection;\r\n var pageSize = this.pageSize();\r\n if (pageSize && count > 0) {\r\n return Math.max(1, Math.ceil(count / pageSize))\r\n }\r\n return 1\r\n },\r\n hasKnownLastPage: function() {\r\n return this._hasLastPage || this._dataSource.totalCount() >= 0\r\n },\r\n loadFromStore: function(loadOptions, store) {\r\n var dataSource = this._dataSource;\r\n var d = new Deferred;\r\n if (!dataSource) {\r\n return\r\n }\r\n store = store || dataSource.store();\r\n store.load(loadOptions).done((function(data, extra) {\r\n if (data && !Array.isArray(data) && Array.isArray(data.data)) {\r\n extra = data;\r\n data = data.data\r\n }\r\n d.resolve(data, extra)\r\n })).fail(d.reject);\r\n return d\r\n },\r\n isCustomLoading: function() {\r\n return !!this._isCustomLoading\r\n },\r\n load: function(options) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var d = new Deferred;\r\n if (options) {\r\n var store = dataSource.store();\r\n var dataSourceLoadOptions = dataSource.loadOptions();\r\n var loadResult = {\r\n storeLoadOptions: options,\r\n isCustomLoading: true\r\n };\r\n each(store._customLoadOptions() || [], (function(_, optionName) {\r\n if (!(optionName in loadResult.storeLoadOptions)) {\r\n loadResult.storeLoadOptions[optionName] = dataSourceLoadOptions[optionName]\r\n }\r\n }));\r\n this._isLoadingAll = options.isLoadingAll;\r\n that._scheduleCustomLoadCallbacks(d);\r\n dataSource._scheduleLoadCallbacks(d);\r\n that._handleCustomizeStoreLoadOptions(loadResult);\r\n ! function(action, timeout) {\r\n if (isDefined(timeout)) {\r\n executeAsync(action, timeout)\r\n } else {\r\n action()\r\n }\r\n }((function() {\r\n if (!dataSource.store()) {\r\n return d.reject(\"canceled\")\r\n }\r\n when(loadResult.data || that.loadFromStore(loadResult.storeLoadOptions)).done((function(data, extra) {\r\n loadResult.data = data;\r\n loadResult.extra = extra || {};\r\n that._handleDataLoaded(loadResult);\r\n if (options.requireTotalCount && void 0 === loadResult.extra.totalCount) {\r\n loadResult.extra.totalCount = store.totalCount(loadResult.storeLoadOptions)\r\n }\r\n when(loadResult.data, loadResult.extra.totalCount).done((function(data, totalCount) {\r\n loadResult.extra.totalCount = totalCount;\r\n d.resolve(data, loadResult.extra)\r\n })).fail(d.reject)\r\n })).fail(d.reject)\r\n }), that.option(\"loadingTimeout\"));\r\n return d.fail((function() {\r\n that._eventsStrategy.fireEvent(\"loadError\", arguments)\r\n })).always(() => {\r\n this._isLoadingAll = false\r\n }).promise()\r\n } else {\r\n return dataSource.load()\r\n }\r\n },\r\n reload: function(full) {\r\n return full ? this._dataSource.reload() : this._dataSource.load()\r\n },\r\n getCachedStoreData: function() {\r\n return this._cachedStoreData\r\n }\r\n }\r\n}());\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.data_source_adapter.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport DataSourceAdapter from \"../grid_core/ui.grid_core.data_source_adapter\";\r\nvar dataSourceAdapterType = DataSourceAdapter;\r\nexport default {\r\n extend: function(extender) {\r\n dataSourceAdapterType = dataSourceAdapterType.inherit(extender)\r\n },\r\n create: function(component) {\r\n return new dataSourceAdapterType(component)\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.data_controller.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport modules from \"./ui.grid_core.modules\";\r\nimport gridCoreUtils from \"./ui.grid_core.utils\";\r\nimport ArrayStore from \"../../data/array_store\";\r\nimport CustomStore from \"../../data/custom_store\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport {\r\n noop,\r\n deferRender,\r\n equalByValue\r\n} from \"../../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport DataHelperMixin from \"../../data_helper\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n findChanges\r\n} from \"../../core/utils/array_compare\";\r\nexport var dataControllerModule = {\r\n defaultOptions: function() {\r\n return {\r\n loadingTimeout: 0,\r\n dataSource: null,\r\n cacheEnabled: true,\r\n repaintChangesOnly: false,\r\n highlightChanges: false,\r\n onDataErrorOccurred: null,\r\n remoteOperations: \"auto\",\r\n paging: {\r\n enabled: true,\r\n pageSize: void 0,\r\n pageIndex: void 0\r\n }\r\n }\r\n },\r\n controllers: {\r\n data: modules.Controller.inherit({}).include(DataHelperMixin).inherit(function() {\r\n var changePaging = function(that, optionName, value) {\r\n var dataSource = that._dataSource;\r\n if (dataSource) {\r\n if (void 0 !== value) {\r\n var oldValue = that._getPagingOptionValue(optionName);\r\n if (oldValue !== value) {\r\n if (\"pageSize\" === optionName) {\r\n dataSource.pageIndex(0)\r\n }\r\n dataSource[optionName](value);\r\n that._skipProcessingPagingChange = true;\r\n that.option(\"paging.\" + optionName, value);\r\n that._skipProcessingPagingChange = false;\r\n var pageIndex = dataSource.pageIndex();\r\n that._isPaging = \"pageIndex\" === optionName;\r\n return dataSource[\"pageIndex\" === optionName ? \"load\" : \"reload\"]().done(() => {\r\n that._isPaging = false;\r\n that.pageChanged.fire(pageIndex)\r\n })\r\n }\r\n return Deferred().resolve().promise()\r\n }\r\n return dataSource[optionName]()\r\n }\r\n return 0\r\n };\r\n var members = {\r\n init: function() {\r\n var that = this;\r\n that._items = [];\r\n that._cachedProcessedItems = null;\r\n that._columnsController = that.getController(\"columns\");\r\n that._isPaging = false;\r\n that._currentOperationTypes = null;\r\n that._dataChangedHandler = e => {\r\n that._currentOperationTypes = this._dataSource.operationTypes();\r\n that._handleDataChanged(e);\r\n that._currentOperationTypes = null\r\n };\r\n that._columnsChangedHandler = that._handleColumnsChanged.bind(that);\r\n that._loadingChangedHandler = that._handleLoadingChanged.bind(that);\r\n that._loadErrorHandler = that._handleLoadError.bind(that);\r\n that._customizeStoreLoadOptionsHandler = that._handleCustomizeStoreLoadOptions.bind(that);\r\n that._changingHandler = that._handleChanging.bind(that);\r\n that._dataPushedHandler = that._handleDataPushed.bind(that);\r\n that._columnsController.columnsChanged.add(that._columnsChangedHandler);\r\n that._isLoading = false;\r\n that._isCustomLoading = false;\r\n that._repaintChangesOnly = void 0;\r\n that._changes = [];\r\n that.createAction(\"onDataErrorOccurred\");\r\n that.dataErrorOccurred.add((function(error) {\r\n return that.executeAction(\"onDataErrorOccurred\", {\r\n error: error\r\n })\r\n }));\r\n that._refreshDataSource()\r\n },\r\n _getPagingOptionValue: function(optionName) {\r\n return this._dataSource[optionName]()\r\n },\r\n callbackNames: function() {\r\n return [\"changed\", \"loadingChanged\", \"dataErrorOccurred\", \"pageChanged\", \"dataSourceChanged\", \"pushed\"]\r\n },\r\n callbackFlags: function(name) {\r\n if (\"dataErrorOccurred\" === name) {\r\n return {\r\n stopOnFalse: true\r\n }\r\n }\r\n },\r\n publicMethods: function() {\r\n return [\"beginCustomLoading\", \"endCustomLoading\", \"refresh\", \"filter\", \"clearFilter\", \"getCombinedFilter\", \"keyOf\", \"byKey\", \"getDataByKeys\", \"pageIndex\", \"pageSize\", \"pageCount\", \"totalCount\", \"_disposeDataSource\", \"getKeyByRowIndex\", \"getRowIndexByKey\", \"getDataSource\", \"getVisibleRows\", \"repaintRows\"]\r\n },\r\n reset: function() {\r\n this._columnsController.reset();\r\n this._items = [];\r\n this._refreshDataSource()\r\n },\r\n _handleDataSourceChange(args) {\r\n if (args.value === args.previousValue || this.option(\"columns\") && Array.isArray(args.value) && Array.isArray(args.previousValue)) {\r\n var isValueChanged = args.value !== args.previousValue;\r\n if (isValueChanged) {\r\n var store = this.store();\r\n if (store) {\r\n store._array = args.value\r\n }\r\n }\r\n if (this.needToRefreshOnDataSourceChange(args)) {\r\n this.refresh(this.option(\"repaintChangesOnly\"))\r\n }\r\n return true\r\n }\r\n return false\r\n },\r\n needToRefreshOnDataSourceChange: function(args) {\r\n return true\r\n },\r\n optionChanged: function(args) {\r\n var that = this;\r\n var dataSource;\r\n var changedPagingOptions;\r\n\r\n function handled() {\r\n args.handled = true\r\n }\r\n if (\"dataSource\" === args.name && args.name === args.fullName && this._handleDataSourceChange(args)) {\r\n handled();\r\n return\r\n }\r\n switch (args.name) {\r\n case \"cacheEnabled\":\r\n case \"repaintChangesOnly\":\r\n case \"highlightChanges\":\r\n case \"loadingTimeout\":\r\n handled();\r\n break;\r\n case \"remoteOperations\":\r\n case \"keyExpr\":\r\n case \"dataSource\":\r\n case \"scrolling\":\r\n handled();\r\n that.reset();\r\n break;\r\n case \"paging\":\r\n dataSource = that.dataSource();\r\n if (dataSource) {\r\n changedPagingOptions = that._setPagingOptions(dataSource);\r\n if (changedPagingOptions) {\r\n var pageIndex = dataSource.pageIndex();\r\n this._isPaging = changedPagingOptions.isPageIndexChanged;\r\n dataSource.load().done(() => {\r\n this._isPaging = false;\r\n that.pageChanged.fire(pageIndex)\r\n })\r\n }\r\n }\r\n handled();\r\n break;\r\n case \"rtlEnabled\":\r\n that.reset();\r\n break;\r\n case \"columns\":\r\n dataSource = that.dataSource();\r\n if (dataSource && dataSource.isLoading() && args.name === args.fullName) {\r\n this._useSortingGroupingFromColumns = true;\r\n dataSource.load()\r\n }\r\n break;\r\n default:\r\n that.callBase(args)\r\n }\r\n },\r\n isReady: function() {\r\n return !this._isLoading\r\n },\r\n getDataSource: function() {\r\n return this._dataSource && this._dataSource._dataSource\r\n },\r\n getCombinedFilter: function(returnDataField) {\r\n return this.combinedFilter(void 0, returnDataField)\r\n },\r\n combinedFilter: function(filter, returnDataField) {\r\n var dataSource = this._dataSource;\r\n var columnsController = this._columnsController;\r\n if (dataSource) {\r\n if (void 0 === filter) {\r\n filter = dataSource.filter()\r\n }\r\n var additionalFilter = this._calculateAdditionalFilter();\r\n if (additionalFilter) {\r\n if (columnsController.isDataSourceApplied() || columnsController.isAllDataTypesDefined()) {\r\n filter = gridCoreUtils.combineFilters([additionalFilter, filter])\r\n }\r\n }\r\n filter = columnsController.updateFilter(filter, returnDataField || dataSource.remoteOperations().filtering)\r\n }\r\n return filter\r\n },\r\n waitReady: function() {\r\n if (this._updateLockCount) {\r\n this._readyDeferred = new Deferred;\r\n return this._readyDeferred\r\n }\r\n return when()\r\n },\r\n _endUpdateCore: function() {\r\n var changes = this._changes;\r\n if (changes.length) {\r\n this._changes = [];\r\n var repaintChangesOnly = changes.every(change => change.repaintChangesOnly);\r\n this.updateItems(1 === changes.length ? changes[0] : {\r\n repaintChangesOnly: repaintChangesOnly\r\n })\r\n }\r\n if (this._readyDeferred) {\r\n this._readyDeferred.resolve();\r\n this._readyDeferred = null\r\n }\r\n },\r\n _handleCustomizeStoreLoadOptions: function(e) {\r\n var _storeLoadOptions$fil;\r\n var columnsController = this._columnsController;\r\n var dataSource = this._dataSource;\r\n var storeLoadOptions = e.storeLoadOptions;\r\n if (e.isCustomLoading && !storeLoadOptions.isLoadingAll) {\r\n return\r\n }\r\n storeLoadOptions.filter = this.combinedFilter(storeLoadOptions.filter);\r\n if (1 === (null === (_storeLoadOptions$fil = storeLoadOptions.filter) || void 0 === _storeLoadOptions$fil ? void 0 : _storeLoadOptions$fil.length) && \"!\" === storeLoadOptions.filter[0]) {\r\n e.data = [];\r\n e.extra = e.extra || {};\r\n e.extra.totalCount = 0\r\n }\r\n if (!columnsController.isDataSourceApplied()) {\r\n columnsController.updateColumnDataTypes(dataSource)\r\n }\r\n this._columnsUpdating = true;\r\n columnsController.updateSortingGrouping(dataSource, !this._useSortingGroupingFromColumns);\r\n this._columnsUpdating = false;\r\n storeLoadOptions.sort = columnsController.getSortDataSourceParameters();\r\n storeLoadOptions.group = columnsController.getGroupDataSourceParameters();\r\n dataSource.sort(storeLoadOptions.sort);\r\n dataSource.group(storeLoadOptions.group);\r\n storeLoadOptions.sort = columnsController.getSortDataSourceParameters(!dataSource.remoteOperations().sorting);\r\n e.group = columnsController.getGroupDataSourceParameters(!dataSource.remoteOperations().grouping)\r\n },\r\n _handleColumnsChanged: function(e) {\r\n var that = this;\r\n var changeTypes = e.changeTypes;\r\n var optionNames = e.optionNames;\r\n var filterValue;\r\n var filterValues;\r\n var filterApplied;\r\n if (changeTypes.sorting || changeTypes.grouping) {\r\n if (that._dataSource && !that._columnsUpdating) {\r\n that._dataSource.group(that._columnsController.getGroupDataSourceParameters());\r\n that._dataSource.sort(that._columnsController.getSortDataSourceParameters());\r\n that.reload()\r\n }\r\n } else if (changeTypes.columns) {\r\n filterValues = that._columnsController.columnOption(e.columnIndex, \"filterValues\");\r\n if (optionNames.filterValues || optionNames.filterType && Array.isArray(filterValues) || optionNames.filterValue || optionNames.selectedFilterOperation || optionNames.allowFiltering) {\r\n filterValue = that._columnsController.columnOption(e.columnIndex, \"filterValue\");\r\n if (Array.isArray(filterValues) || void 0 === e.columnIndex || isDefined(filterValue) || !optionNames.selectedFilterOperation || optionNames.filterValue) {\r\n that._applyFilter();\r\n filterApplied = true\r\n }\r\n }\r\n if (!that._needApplyFilter && !gridCoreUtils.checkChanges(optionNames, [\"width\", \"visibleWidth\", \"filterValue\", \"bufferedFilterValue\", \"selectedFilterOperation\", \"filterValues\", \"filterType\"])) {\r\n that._columnsController.columnsChanged.add((function updateItemsHandler(change) {\r\n var _change$changeTypes;\r\n that._columnsController.columnsChanged.remove(updateItemsHandler);\r\n that.updateItems({\r\n repaintChangesOnly: false,\r\n virtualColumnsScrolling: null === change || void 0 === change ? void 0 : null === (_change$changeTypes = change.changeTypes) || void 0 === _change$changeTypes ? void 0 : _change$changeTypes.virtualColumnsScrolling\r\n })\r\n }))\r\n }\r\n if (isDefined(optionNames.visible)) {\r\n var column = that._columnsController.columnOption(e.columnIndex);\r\n if (column && (isDefined(column.filterValue) || isDefined(column.filterValues))) {\r\n that._applyFilter();\r\n filterApplied = true\r\n }\r\n }\r\n }\r\n if (!filterApplied && changeTypes.filtering) {\r\n that.reload()\r\n }\r\n },\r\n _handleDataChanged: function(e) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var columnsController = that._columnsController;\r\n var isAsyncDataSourceApplying = false;\r\n this._useSortingGroupingFromColumns = false;\r\n if (dataSource && !that._isDataSourceApplying) {\r\n that._isDataSourceApplying = true;\r\n when(that._columnsController.applyDataSource(dataSource)).done((function() {\r\n if (that._isLoading) {\r\n that._handleLoadingChanged(false)\r\n }\r\n if (isAsyncDataSourceApplying && e && e.isDelayed) {\r\n e.isDelayed = false\r\n }\r\n that._isDataSourceApplying = false;\r\n var needApplyFilter = that._needApplyFilter;\r\n that._needApplyFilter = false;\r\n if (needApplyFilter && !that._isAllDataTypesDefined && (additionalFilter = that._calculateAdditionalFilter(), additionalFilter && additionalFilter.length)) {\r\n errors.log(\"W1005\", that.component.NAME);\r\n that._applyFilter()\r\n } else {\r\n that.updateItems(e, true)\r\n }\r\n var additionalFilter\r\n })).fail((function() {\r\n that._isDataSourceApplying = false\r\n }));\r\n if (that._isDataSourceApplying) {\r\n isAsyncDataSourceApplying = true;\r\n that._handleLoadingChanged(true)\r\n }\r\n that._needApplyFilter = !that._columnsController.isDataSourceApplied();\r\n that._isAllDataTypesDefined = columnsController.isAllDataTypesDefined()\r\n }\r\n },\r\n _handleLoadingChanged: function(isLoading) {\r\n this._isLoading = isLoading;\r\n this._fireLoadingChanged()\r\n },\r\n _handleLoadError: function(e) {\r\n this.dataErrorOccurred.fire(e)\r\n },\r\n _handleDataPushed: function(changes) {\r\n this.pushed.fire(changes)\r\n },\r\n fireError: function() {\r\n this.dataErrorOccurred.fire(errors.Error.apply(errors, arguments))\r\n },\r\n _setPagingOptions: function(dataSource) {\r\n var pageIndex = this.option(\"paging.pageIndex\");\r\n var pageSize = this.option(\"paging.pageSize\");\r\n var pagingEnabled = this.option(\"paging.enabled\");\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n var appendMode = \"infinite\" === scrollingMode;\r\n var virtualMode = \"virtual\" === scrollingMode;\r\n var paginate = pagingEnabled || virtualMode || appendMode;\r\n var isPaginateChanged = false;\r\n var isPageSizeChanged = false;\r\n var isPageIndexChanged = false;\r\n dataSource.requireTotalCount(!appendMode);\r\n if (void 0 !== pagingEnabled && dataSource.paginate() !== paginate) {\r\n dataSource.paginate(paginate);\r\n isPaginateChanged = true\r\n }\r\n if (void 0 !== pageSize && dataSource.pageSize() !== pageSize) {\r\n dataSource.pageSize(pageSize);\r\n isPageSizeChanged = true\r\n }\r\n if (void 0 !== pageIndex && dataSource.pageIndex() !== pageIndex) {\r\n dataSource.pageIndex(pageIndex);\r\n isPageIndexChanged = true\r\n }\r\n if (isPaginateChanged || isPageSizeChanged || isPageIndexChanged) {\r\n return {\r\n isPaginateChanged: isPaginateChanged,\r\n isPageSizeChanged: isPageSizeChanged,\r\n isPageIndexChanged: isPageIndexChanged\r\n }\r\n }\r\n return false\r\n },\r\n _getSpecificDataSourceOption: function() {\r\n var dataSource = this.option(\"dataSource\");\r\n if (Array.isArray(dataSource)) {\r\n return {\r\n store: {\r\n type: \"array\",\r\n data: dataSource,\r\n key: this.option(\"keyExpr\")\r\n }\r\n }\r\n }\r\n return dataSource\r\n },\r\n _initDataSource: function() {\r\n var oldDataSource = this._dataSource;\r\n this.callBase();\r\n var dataSource = this._dataSource;\r\n this._useSortingGroupingFromColumns = true;\r\n this._cachedProcessedItems = null;\r\n if (dataSource) {\r\n var changedPagingOptions = this._setPagingOptions(dataSource);\r\n this._isPaging = null === changedPagingOptions || void 0 === changedPagingOptions ? void 0 : changedPagingOptions.isPageIndexChanged;\r\n this.setDataSource(dataSource)\r\n } else if (oldDataSource) {\r\n this.updateItems()\r\n }\r\n },\r\n _loadDataSource: function() {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var result = new Deferred;\r\n when(this._columnsController.refresh(true)).always((function() {\r\n if (dataSource) {\r\n dataSource.load().done((function() {\r\n that._isPaging = false;\r\n result.resolve.apply(result, arguments)\r\n })).fail(result.reject)\r\n } else {\r\n result.resolve()\r\n }\r\n }));\r\n return result.promise()\r\n },\r\n _beforeProcessItems: function(items) {\r\n return items.slice(0)\r\n },\r\n getRowIndexDelta: function() {\r\n return 0\r\n },\r\n _processItems: function(items, change) {\r\n var that = this;\r\n var rowIndexDelta = that.getRowIndexDelta();\r\n var changeType = change.changeType;\r\n var visibleColumns = that._columnsController.getVisibleColumns(null, \"loadingAll\" === changeType);\r\n var visibleItems = that._items;\r\n var lastVisibleItem = \"append\" === changeType && visibleItems.length > 0 ? visibleItems[visibleItems.length - 1] : null;\r\n var dataIndex = isDefined(null === lastVisibleItem || void 0 === lastVisibleItem ? void 0 : lastVisibleItem.dataIndex) ? lastVisibleItem.dataIndex + 1 : 0;\r\n var options = {\r\n visibleColumns: visibleColumns,\r\n dataIndex: dataIndex\r\n };\r\n var result = [];\r\n each(items, (function(index, item) {\r\n if (isDefined(item)) {\r\n options.rowIndex = index - rowIndexDelta;\r\n item = that._processItem(item, options);\r\n result.push(item)\r\n }\r\n }));\r\n return result\r\n },\r\n _processItem: function(item, options) {\r\n item = this._generateDataItem(item, options);\r\n item = this._processDataItem(item, options);\r\n item.dataIndex = options.dataIndex++;\r\n return item\r\n },\r\n _generateDataItem: function(data) {\r\n return {\r\n rowType: \"data\",\r\n data: data,\r\n key: this.keyOf(data)\r\n }\r\n },\r\n _processDataItem: function(dataItem, options) {\r\n dataItem.values = this.generateDataValues(dataItem.data, options.visibleColumns);\r\n return dataItem\r\n },\r\n generateDataValues: function(data, columns, isModified) {\r\n var values = [];\r\n var value;\r\n for (var i = 0; i < columns.length; i++) {\r\n var column = columns[i];\r\n value = isModified ? void 0 : null;\r\n if (!column.command) {\r\n if (column.calculateCellValue) {\r\n value = column.calculateCellValue(data)\r\n } else if (column.dataField) {\r\n value = data[column.dataField]\r\n }\r\n }\r\n values.push(value)\r\n }\r\n return values\r\n },\r\n _applyChange: function(change) {\r\n if (\"update\" === change.changeType) {\r\n this._applyChangeUpdate(change)\r\n } else if (this.items().length && change.repaintChangesOnly && \"refresh\" === change.changeType) {\r\n this._applyChangesOnly(change)\r\n } else if (\"refresh\" === change.changeType) {\r\n this._applyChangeFull(change)\r\n }\r\n },\r\n _applyChangeFull: function(change) {\r\n this._items = change.items.slice(0)\r\n },\r\n _getRowIndices: function(change) {\r\n var rowIndices = change.rowIndices.slice(0);\r\n var rowIndexDelta = this.getRowIndexDelta();\r\n rowIndices.sort((function(a, b) {\r\n return a - b\r\n }));\r\n for (var i = 0; i < rowIndices.length; i++) {\r\n var correctedRowIndex = rowIndices[i];\r\n if (change.allowInvisibleRowIndices) {\r\n correctedRowIndex += rowIndexDelta\r\n }\r\n if (correctedRowIndex < 0) {\r\n rowIndices.splice(i, 1);\r\n i--\r\n }\r\n }\r\n return rowIndices\r\n },\r\n _applyChangeUpdate: function(change) {\r\n var that = this;\r\n var items = change.items;\r\n var rowIndices = that._getRowIndices(change);\r\n var rowIndexDelta = that.getRowIndexDelta();\r\n var repaintChangesOnly = that.option(\"repaintChangesOnly\");\r\n var prevIndex = -1;\r\n var rowIndexCorrection = 0;\r\n var changeType;\r\n change.items = [];\r\n change.rowIndices = [];\r\n change.columnIndices = [];\r\n change.changeTypes = [];\r\n var equalItems = function(item1, item2, strict) {\r\n var result = item1 && item2 && equalByValue(item1.key, item2.key);\r\n if (result && strict) {\r\n result = item1.rowType === item2.rowType && (\"detail\" !== item2.rowType || item1.isEditing === item2.isEditing)\r\n }\r\n return result\r\n };\r\n each(rowIndices, (function(index, rowIndex) {\r\n var columnIndices;\r\n rowIndex += rowIndexCorrection + rowIndexDelta;\r\n if (prevIndex === rowIndex) {\r\n return\r\n }\r\n prevIndex = rowIndex;\r\n var oldItem = that._items[rowIndex];\r\n var oldNextItem = that._items[rowIndex + 1];\r\n var newItem = items[rowIndex];\r\n var newNextItem = items[rowIndex + 1];\r\n var strict = equalItems(oldItem, oldNextItem) || equalItems(newItem, newNextItem);\r\n if (newItem) {\r\n newItem.rowIndex = rowIndex;\r\n change.items.push(newItem)\r\n }\r\n if (oldItem && newItem && equalItems(oldItem, newItem, strict)) {\r\n changeType = \"update\";\r\n that._items[rowIndex] = newItem;\r\n if (oldItem.visible !== newItem.visible) {\r\n change.items.splice(-1, 1, {\r\n visible: newItem.visible\r\n })\r\n } else if (repaintChangesOnly && !change.isFullUpdate) {\r\n columnIndices = that._partialUpdateRow(oldItem, newItem, rowIndex - rowIndexDelta)\r\n }\r\n } else if (newItem && !oldItem || newNextItem && equalItems(oldItem, newNextItem, strict)) {\r\n changeType = \"insert\";\r\n that._items.splice(rowIndex, 0, newItem);\r\n rowIndexCorrection++\r\n } else if (oldItem && !newItem || oldNextItem && equalItems(newItem, oldNextItem, strict)) {\r\n changeType = \"remove\";\r\n that._items.splice(rowIndex, 1);\r\n rowIndexCorrection--;\r\n prevIndex = -1\r\n } else if (newItem) {\r\n changeType = \"update\";\r\n that._items[rowIndex] = newItem\r\n } else {\r\n return\r\n }\r\n change.rowIndices.push(rowIndex - rowIndexDelta);\r\n change.changeTypes.push(changeType);\r\n change.columnIndices.push(columnIndices)\r\n }))\r\n },\r\n _isCellChanged: function(oldRow, newRow, visibleRowIndex, columnIndex, isLiveUpdate) {\r\n if (JSON.stringify(oldRow.values[columnIndex]) !== JSON.stringify(newRow.values[columnIndex])) {\r\n return true\r\n }\r\n\r\n function isCellModified(row, columnIndex) {\r\n return row.modifiedValues ? void 0 !== row.modifiedValues[columnIndex] : false\r\n }\r\n if (isCellModified(oldRow, columnIndex) !== isCellModified(newRow, columnIndex)) {\r\n return true\r\n }\r\n return false\r\n },\r\n _getChangedColumnIndices: function(oldItem, newItem, visibleRowIndex, isLiveUpdate) {\r\n var columnIndices;\r\n if (oldItem.rowType === newItem.rowType) {\r\n if (\"group\" !== newItem.rowType && \"groupFooter\" !== newItem.rowType) {\r\n columnIndices = [];\r\n if (\"detail\" !== newItem.rowType) {\r\n for (var columnIndex = 0; columnIndex < oldItem.values.length; columnIndex++) {\r\n if (this._isCellChanged(oldItem, newItem, visibleRowIndex, columnIndex, isLiveUpdate)) {\r\n columnIndices.push(columnIndex)\r\n }\r\n }\r\n }\r\n }\r\n if (\"group\" === newItem.rowType && newItem.isExpanded === oldItem.isExpanded && oldItem.cells) {\r\n columnIndices = oldItem.cells.map((cell, index) => {\r\n var _cell$column;\r\n return \"groupExpand\" !== (null === (_cell$column = cell.column) || void 0 === _cell$column ? void 0 : _cell$column.type) ? index : -1\r\n }).filter(index => index >= 0)\r\n }\r\n }\r\n return columnIndices\r\n },\r\n _partialUpdateRow: function(oldItem, newItem, visibleRowIndex, isLiveUpdate) {\r\n var _changedColumnIndices;\r\n var changedColumnIndices = this._getChangedColumnIndices(oldItem, newItem, visibleRowIndex, isLiveUpdate);\r\n if (null !== (_changedColumnIndices = changedColumnIndices) && void 0 !== _changedColumnIndices && _changedColumnIndices.length && this.option(\"dataRowTemplate\")) {\r\n changedColumnIndices = void 0\r\n }\r\n if (changedColumnIndices) {\r\n oldItem.cells && oldItem.cells.forEach((function(cell, columnIndex) {\r\n var isCellChanged = changedColumnIndices.indexOf(columnIndex) >= 0;\r\n if (!isCellChanged && cell && cell.update) {\r\n cell.update(newItem)\r\n }\r\n }));\r\n newItem.update = oldItem.update;\r\n newItem.watch = oldItem.watch;\r\n newItem.cells = oldItem.cells;\r\n if (isLiveUpdate) {\r\n newItem.oldValues = oldItem.values\r\n }\r\n oldItem.update && oldItem.update(newItem)\r\n }\r\n return changedColumnIndices\r\n },\r\n _isItemEquals: function(item1, item2) {\r\n if (JSON.stringify(item1.values) !== JSON.stringify(item2.values)) {\r\n return false\r\n }\r\n if ([\"modified\", \"isNewRow\", \"removed\", \"isEditing\"].some(field => item1[field] !== item2[field])) {\r\n return false\r\n }\r\n if (\"group\" === item1.rowType || \"groupFooter\" === item1.rowType) {\r\n var _item1$data, _item2$data, _item1$data2, _item2$data2;\r\n var expandedMatch = item1.isExpanded === item2.isExpanded;\r\n var summaryCellsMatch = JSON.stringify(item1.summaryCells) === JSON.stringify(item2.summaryCells);\r\n var continuationMatch = (null === (_item1$data = item1.data) || void 0 === _item1$data ? void 0 : _item1$data.isContinuation) === (null === (_item2$data = item2.data) || void 0 === _item2$data ? void 0 : _item2$data.isContinuation) && (null === (_item1$data2 = item1.data) || void 0 === _item1$data2 ? void 0 : _item1$data2.isContinuationOnNextPage) === (null === (_item2$data2 = item2.data) || void 0 === _item2$data2 ? void 0 : _item2$data2.isContinuationOnNextPage);\r\n if (!expandedMatch || !summaryCellsMatch || !continuationMatch) {\r\n return false\r\n }\r\n }\r\n return true\r\n },\r\n _applyChangesOnly: function(change) {\r\n var _change$isLiveUpdate;\r\n var rowIndices = [];\r\n var columnIndices = [];\r\n var changeTypes = [];\r\n var items = [];\r\n var newIndexByKey = {};\r\n var isLiveUpdate = null !== (_change$isLiveUpdate = null === change || void 0 === change ? void 0 : change.isLiveUpdate) && void 0 !== _change$isLiveUpdate ? _change$isLiveUpdate : true;\r\n\r\n function getRowKey(row) {\r\n if (row) {\r\n return row.rowType + \",\" + JSON.stringify(row.key)\r\n }\r\n }\r\n var currentItems = this._items;\r\n var oldItems = currentItems.slice();\r\n change.items.forEach((function(item, index) {\r\n var key = getRowKey(item);\r\n newIndexByKey[key] = index;\r\n item.rowIndex = index\r\n }));\r\n var result = findChanges(oldItems, change.items, getRowKey, (item1, item2) => {\r\n if (!this._isItemEquals(item1, item2)) {\r\n return false\r\n }\r\n if (item1.cells) {\r\n item1.update && item1.update(item2);\r\n item1.cells.forEach((function(cell) {\r\n if (cell && cell.update) {\r\n cell.update(item2, true)\r\n }\r\n }))\r\n }\r\n return true\r\n });\r\n if (!result) {\r\n this._applyChangeFull(change);\r\n return\r\n }\r\n result.forEach(change => {\r\n switch (change.type) {\r\n case \"update\":\r\n var index = change.index;\r\n var newItem = change.data;\r\n var oldItem = change.oldItem;\r\n var changedColumnIndices = this._partialUpdateRow(oldItem, newItem, index, isLiveUpdate);\r\n rowIndices.push(index);\r\n changeTypes.push(\"update\");\r\n items.push(newItem);\r\n currentItems[index] = newItem;\r\n columnIndices.push(changedColumnIndices);\r\n break;\r\n case \"insert\":\r\n rowIndices.push(change.index);\r\n changeTypes.push(\"insert\");\r\n items.push(change.data);\r\n columnIndices.push(void 0);\r\n currentItems.splice(change.index, 0, change.data);\r\n break;\r\n case \"remove\":\r\n rowIndices.push(change.index);\r\n changeTypes.push(\"remove\");\r\n currentItems.splice(change.index, 1);\r\n items.push(change.oldItem);\r\n columnIndices.push(void 0)\r\n }\r\n });\r\n change.repaintChangesOnly = true;\r\n change.changeType = \"update\";\r\n change.rowIndices = rowIndices;\r\n change.columnIndices = columnIndices;\r\n change.changeTypes = changeTypes;\r\n change.items = items;\r\n if (oldItems.length) {\r\n change.isLiveUpdate = true\r\n }\r\n this._correctRowIndices(rowIndex => {\r\n var oldRowIndexOffset = this._rowIndexOffset || 0;\r\n var rowIndexOffset = this.getRowIndexOffset();\r\n var oldItem = oldItems[rowIndex - oldRowIndexOffset];\r\n var key = getRowKey(oldItem);\r\n var newVisibleRowIndex = newIndexByKey[key];\r\n return newVisibleRowIndex >= 0 ? newVisibleRowIndex + rowIndexOffset - rowIndex : 0\r\n })\r\n },\r\n _correctRowIndices: noop,\r\n _afterProcessItems: function(items) {\r\n return items\r\n },\r\n _updateItemsCore: function(change) {\r\n var items;\r\n var dataSource = this._dataSource;\r\n var changeType = change.changeType || \"refresh\";\r\n change.changeType = changeType;\r\n if (dataSource) {\r\n var cachedProcessedItems = this._cachedProcessedItems;\r\n if (change.useProcessedItemsCache && cachedProcessedItems) {\r\n items = cachedProcessedItems\r\n } else {\r\n items = change.items || dataSource.items();\r\n items = this._beforeProcessItems(items);\r\n items = this._processItems(items, change);\r\n this._cachedProcessedItems = items\r\n }\r\n items = this._afterProcessItems(items, change);\r\n change.items = items;\r\n var oldItems = this._items.length === items.length && this._items;\r\n this._applyChange(change);\r\n var rowIndexDelta = this.getRowIndexDelta();\r\n each(this._items, (index, item) => {\r\n item.rowIndex = index - rowIndexDelta;\r\n if (oldItems) {\r\n item.cells = oldItems[index].cells || []\r\n }\r\n var newItem = items[index];\r\n if (newItem) {\r\n item.loadIndex = newItem.loadIndex\r\n }\r\n });\r\n this._rowIndexOffset = this.getRowIndexOffset()\r\n } else {\r\n this._items = []\r\n }\r\n },\r\n _handleChanging: function(e) {\r\n var rows = this.getVisibleRows();\r\n var dataSource = this.dataSource();\r\n if (dataSource) {\r\n e.changes.forEach((function(change) {\r\n if (\"insert\" === change.type && change.index >= 0) {\r\n var dataIndex = 0;\r\n for (var i = 0; i < change.index; i++) {\r\n var row = rows[i];\r\n if (row && (\"data\" === row.rowType || \"group\" === row.rowType)) {\r\n dataIndex++\r\n }\r\n }\r\n change.index = dataIndex\r\n }\r\n }))\r\n }\r\n },\r\n updateItems: function(change, isDataChanged) {\r\n change = change || {};\r\n if (void 0 !== this._repaintChangesOnly) {\r\n var _change$repaintChange;\r\n change.repaintChangesOnly = null !== (_change$repaintChange = change.repaintChangesOnly) && void 0 !== _change$repaintChange ? _change$repaintChange : this._repaintChangesOnly;\r\n change.needUpdateDimensions = change.needUpdateDimensions || this._needUpdateDimensions\r\n } else if (change.changes) {\r\n change.repaintChangesOnly = this.option(\"repaintChangesOnly\")\r\n } else if (isDataChanged) {\r\n var operationTypes = this.dataSource().operationTypes();\r\n change.repaintChangesOnly = operationTypes && !operationTypes.grouping && !operationTypes.filtering && this.option(\"repaintChangesOnly\");\r\n change.isDataChanged = true;\r\n if (operationTypes && (operationTypes.reload || operationTypes.paging || operationTypes.groupExpanding)) {\r\n change.needUpdateDimensions = true\r\n }\r\n }\r\n if (this._updateLockCount && !change.cancel) {\r\n this._changes.push(change);\r\n return\r\n }\r\n this._updateItemsCore(change);\r\n if (change.cancel) {\r\n return\r\n }\r\n this._fireChanged(change)\r\n },\r\n loadingOperationTypes: function() {\r\n var dataSource = this.dataSource();\r\n return dataSource && dataSource.loadingOperationTypes() || {}\r\n },\r\n _fireChanged: function(change) {\r\n if (this._currentOperationTypes) {\r\n change.operationTypes = this._currentOperationTypes;\r\n this._currentOperationTypes = null\r\n }\r\n deferRender(() => {\r\n this.changed.fire(change)\r\n })\r\n },\r\n isLoading: function() {\r\n return this._isLoading || this._isCustomLoading\r\n },\r\n _fireLoadingChanged: function() {\r\n this.loadingChanged.fire(this.isLoading(), this._loadingText)\r\n },\r\n _calculateAdditionalFilter: function() {\r\n return null\r\n },\r\n _applyFilter: function() {\r\n var dataSource = this._dataSource;\r\n if (dataSource) {\r\n dataSource.pageIndex(0);\r\n this._isFilterApplying = true;\r\n return this.reload().done(() => {\r\n if (this._isFilterApplying) {\r\n this.pageChanged.fire()\r\n }\r\n })\r\n }\r\n },\r\n resetFilterApplying: function() {\r\n this._isFilterApplying = false\r\n },\r\n filter: function(filterExpr) {\r\n var dataSource = this._dataSource;\r\n var filter = dataSource && dataSource.filter();\r\n if (0 === arguments.length) {\r\n return filter\r\n }\r\n filterExpr = arguments.length > 1 ? Array.prototype.slice.call(arguments, 0) : filterExpr;\r\n if (gridCoreUtils.equalFilterParameters(filter, filterExpr)) {\r\n return\r\n }\r\n if (dataSource) {\r\n dataSource.filter(filterExpr)\r\n }\r\n this._applyFilter()\r\n },\r\n clearFilter: function(filterName) {\r\n var that = this;\r\n var columnsController = that._columnsController;\r\n var clearColumnOption = function(optionName) {\r\n var columnCount = columnsController.columnCount();\r\n for (var index = 0; index < columnCount; index++) {\r\n columnsController.columnOption(index, optionName, void 0)\r\n }\r\n };\r\n that.component.beginUpdate();\r\n if (arguments.length > 0) {\r\n switch (filterName) {\r\n case \"dataSource\":\r\n that.filter(null);\r\n break;\r\n case \"search\":\r\n that.searchByText(\"\");\r\n break;\r\n case \"header\":\r\n clearColumnOption(\"filterValues\");\r\n break;\r\n case \"row\":\r\n clearColumnOption(\"filterValue\")\r\n }\r\n } else {\r\n that.filter(null);\r\n that.searchByText(\"\");\r\n clearColumnOption(\"filterValue\");\r\n clearColumnOption(\"bufferedFilterValue\");\r\n clearColumnOption(\"filterValues\")\r\n }\r\n that.component.endUpdate()\r\n },\r\n _fireDataSourceChanged: function() {\r\n var that = this;\r\n that.changed.add((function changedHandler() {\r\n that.changed.remove(changedHandler);\r\n that.dataSourceChanged.fire()\r\n }))\r\n },\r\n _getDataSourceAdapter: noop,\r\n _createDataSourceAdapterCore: function(dataSource, remoteOperations) {\r\n var dataSourceAdapterProvider = this._getDataSourceAdapter();\r\n var dataSourceAdapter = dataSourceAdapterProvider.create(this.component);\r\n dataSourceAdapter.init(dataSource, remoteOperations);\r\n return dataSourceAdapter\r\n },\r\n isLocalStore: function(store) {\r\n store = store || this.store();\r\n return store instanceof ArrayStore\r\n },\r\n isCustomStore: function(store) {\r\n store = store || this.store();\r\n return store instanceof CustomStore\r\n },\r\n _createDataSourceAdapter: function(dataSource) {\r\n var remoteOperations = this.option(\"remoteOperations\");\r\n var store = dataSource.store();\r\n var enabledRemoteOperations = {\r\n filtering: true,\r\n sorting: true,\r\n paging: true,\r\n grouping: true,\r\n summary: true\r\n };\r\n if (remoteOperations && remoteOperations.groupPaging) {\r\n remoteOperations = extend({}, enabledRemoteOperations, remoteOperations)\r\n }\r\n if (\"auto\" === remoteOperations) {\r\n remoteOperations = this.isLocalStore(store) || this.isCustomStore(store) ? {} : {\r\n filtering: true,\r\n sorting: true,\r\n paging: true\r\n }\r\n }\r\n if (true === remoteOperations) {\r\n remoteOperations = enabledRemoteOperations\r\n }\r\n return this._createDataSourceAdapterCore(dataSource, remoteOperations)\r\n },\r\n setDataSource: function(dataSource) {\r\n var oldDataSource = this._dataSource;\r\n if (!dataSource && oldDataSource) {\r\n oldDataSource.cancelAll();\r\n oldDataSource.changed.remove(this._dataChangedHandler);\r\n oldDataSource.loadingChanged.remove(this._loadingChangedHandler);\r\n oldDataSource.loadError.remove(this._loadErrorHandler);\r\n oldDataSource.customizeStoreLoadOptions.remove(this._customizeStoreLoadOptionsHandler);\r\n oldDataSource.changing.remove(this._changingHandler);\r\n oldDataSource.pushed.remove(this._dataPushedHandler);\r\n oldDataSource.dispose(this._isSharedDataSource)\r\n }\r\n if (dataSource) {\r\n dataSource = this._createDataSourceAdapter(dataSource)\r\n }\r\n this._dataSource = dataSource;\r\n if (dataSource) {\r\n this._fireDataSourceChanged();\r\n this._isLoading = !dataSource.isLoaded();\r\n this._needApplyFilter = true;\r\n this._isAllDataTypesDefined = this._columnsController.isAllDataTypesDefined();\r\n dataSource.changed.add(this._dataChangedHandler);\r\n dataSource.loadingChanged.add(this._loadingChangedHandler);\r\n dataSource.loadError.add(this._loadErrorHandler);\r\n dataSource.customizeStoreLoadOptions.add(this._customizeStoreLoadOptionsHandler);\r\n dataSource.changing.add(this._changingHandler);\r\n dataSource.pushed.add(this._dataPushedHandler)\r\n }\r\n },\r\n items: function() {\r\n return this._items\r\n },\r\n isEmpty: function() {\r\n return !this.items().length\r\n },\r\n pageCount: function() {\r\n return this._dataSource ? this._dataSource.pageCount() : 1\r\n },\r\n dataSource: function() {\r\n return this._dataSource\r\n },\r\n store: function() {\r\n var dataSource = this._dataSource;\r\n return dataSource && dataSource.store()\r\n },\r\n loadAll: function(data) {\r\n var that = this;\r\n var d = new Deferred;\r\n var dataSource = that._dataSource;\r\n if (dataSource) {\r\n if (data) {\r\n var options = {\r\n data: data,\r\n isCustomLoading: true,\r\n storeLoadOptions: {\r\n isLoadingAll: true\r\n },\r\n loadOptions: {\r\n filter: that.getCombinedFilter(),\r\n group: dataSource.group(),\r\n sort: dataSource.sort()\r\n }\r\n };\r\n dataSource._handleDataLoaded(options);\r\n when(options.data).done((function(data) {\r\n data = that._beforeProcessItems(data);\r\n d.resolve(that._processItems(data, {\r\n changeType: \"loadingAll\"\r\n }), options.extra && options.extra.summary)\r\n })).fail(d.reject)\r\n } else if (!dataSource.isLoading()) {\r\n var loadOptions = extend({}, dataSource.loadOptions(), {\r\n isLoadingAll: true,\r\n requireTotalCount: false\r\n });\r\n dataSource.load(loadOptions).done((function(items, extra) {\r\n items = that._beforeProcessItems(items);\r\n items = that._processItems(items, {\r\n changeType: \"loadingAll\"\r\n });\r\n d.resolve(items, extra && extra.summary)\r\n })).fail(d.reject)\r\n } else {\r\n d.reject()\r\n }\r\n } else {\r\n d.resolve([])\r\n }\r\n return d\r\n },\r\n getKeyByRowIndex: function(rowIndex, byLoaded) {\r\n var item = this.items(byLoaded)[rowIndex];\r\n if (item) {\r\n return item.key\r\n }\r\n },\r\n getRowIndexByKey: function(key, byLoaded) {\r\n return gridCoreUtils.getIndexByKey(key, this.items(byLoaded))\r\n },\r\n keyOf: function(data) {\r\n var store = this.store();\r\n if (store) {\r\n return store.keyOf(data)\r\n }\r\n },\r\n byKey: function(key) {\r\n var store = this.store();\r\n var rowIndex = this.getRowIndexByKey(key);\r\n var result;\r\n if (!store) {\r\n return\r\n }\r\n if (rowIndex >= 0) {\r\n result = (new Deferred).resolve(this.items()[rowIndex].data)\r\n }\r\n return result || store.byKey(key)\r\n },\r\n key: function() {\r\n var store = this.store();\r\n if (store) {\r\n return store.key()\r\n }\r\n },\r\n getRowIndexOffset: function() {\r\n return 0\r\n },\r\n getDataByKeys: function(rowKeys) {\r\n var that = this;\r\n var result = new Deferred;\r\n var deferreds = [];\r\n var data = [];\r\n each(rowKeys, (function(index, key) {\r\n deferreds.push(that.byKey(key).done((function(keyData) {\r\n data[index] = keyData\r\n })))\r\n }));\r\n when.apply($, deferreds).always((function() {\r\n result.resolve(data)\r\n }));\r\n return result\r\n },\r\n pageIndex: function(value) {\r\n return changePaging(this, \"pageIndex\", value)\r\n },\r\n pageSize: function(value) {\r\n return changePaging(this, \"pageSize\", value)\r\n },\r\n beginCustomLoading: function(messageText) {\r\n this._isCustomLoading = true;\r\n this._loadingText = messageText || \"\";\r\n this._fireLoadingChanged()\r\n },\r\n endCustomLoading: function() {\r\n this._isCustomLoading = false;\r\n this._loadingText = void 0;\r\n this._fireLoadingChanged()\r\n },\r\n refresh: function(options) {\r\n if (true === options) {\r\n options = {\r\n reload: true,\r\n changesOnly: true\r\n }\r\n } else if (!options) {\r\n options = {\r\n lookup: true,\r\n selection: true,\r\n reload: true\r\n }\r\n }\r\n var that = this;\r\n var dataSource = that.getDataSource();\r\n var changesOnly = options.changesOnly;\r\n var d = new Deferred;\r\n var customizeLoadResult = function() {\r\n that._repaintChangesOnly = !!changesOnly\r\n };\r\n when(!options.lookup || that._columnsController.refresh()).always((function() {\r\n if (options.load || options.reload) {\r\n dataSource && dataSource.on(\"customizeLoadResult\", customizeLoadResult);\r\n when(that.reload(options.reload, changesOnly)).always((function() {\r\n dataSource && dataSource.off(\"customizeLoadResult\", customizeLoadResult);\r\n that._repaintChangesOnly = void 0\r\n })).done(d.resolve).fail(d.reject)\r\n } else {\r\n that.updateItems({\r\n repaintChangesOnly: options.changesOnly\r\n });\r\n d.resolve()\r\n }\r\n }));\r\n return d.promise()\r\n },\r\n getVisibleRows: function() {\r\n return this.items()\r\n },\r\n _disposeDataSource: function() {\r\n this.setDataSource(null)\r\n },\r\n dispose: function() {\r\n this._disposeDataSource();\r\n this.callBase.apply(this, arguments)\r\n },\r\n repaintRows: function(rowIndexes, changesOnly) {\r\n rowIndexes = Array.isArray(rowIndexes) ? rowIndexes : [rowIndexes];\r\n if (rowIndexes.length > 1 || isDefined(rowIndexes[0])) {\r\n this.updateItems({\r\n changeType: \"update\",\r\n rowIndices: rowIndexes,\r\n isFullUpdate: !changesOnly\r\n })\r\n }\r\n },\r\n skipProcessingPagingChange: function(fullName) {\r\n return this._skipProcessingPagingChange && (\"paging.pageIndex\" === fullName || \"paging.pageSize\" === fullName)\r\n },\r\n getUserState: function() {\r\n return {\r\n searchText: this.option(\"searchPanel.text\"),\r\n pageIndex: this.pageIndex(),\r\n pageSize: this.pageSize()\r\n }\r\n },\r\n getCachedStoreData: function() {\r\n return this._dataSource && this._dataSource.getCachedStoreData()\r\n },\r\n isLastPageLoaded: function() {\r\n var pageIndex = this.pageIndex();\r\n var pageCount = this.pageCount();\r\n return pageIndex === pageCount - 1\r\n }\r\n };\r\n gridCoreUtils.proxyMethod(members, \"load\");\r\n gridCoreUtils.proxyMethod(members, \"reload\");\r\n gridCoreUtils.proxyMethod(members, \"push\");\r\n gridCoreUtils.proxyMethod(members, \"itemsCount\", 0);\r\n gridCoreUtils.proxyMethod(members, \"totalItemsCount\", 0);\r\n gridCoreUtils.proxyMethod(members, \"hasKnownLastPage\", true);\r\n gridCoreUtils.proxyMethod(members, \"isLoaded\", true);\r\n gridCoreUtils.proxyMethod(members, \"totalCount\", 0);\r\n return members\r\n }())\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.data_controller.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport dataSourceAdapterProvider from \"./ui.data_grid.data_source_adapter\";\r\nimport {\r\n dataControllerModule\r\n} from \"../grid_core/ui.grid_core.data_controller\";\r\nexport var DataController = dataControllerModule.controllers.data.inherit({\r\n _getDataSourceAdapter: function() {\r\n return dataSourceAdapterProvider\r\n },\r\n _getSpecificDataSourceOption: function() {\r\n var dataSource = this.option(\"dataSource\");\r\n if (dataSource && !Array.isArray(dataSource) && this.option(\"keyExpr\")) {\r\n errors.log(\"W1011\")\r\n }\r\n return this.callBase()\r\n }\r\n});\r\ngridCore.registerModule(\"data\", {\r\n defaultOptions: dataControllerModule.defaultOptions,\r\n controllers: {\r\n data: DataController\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.sorting_mixin.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport $ from \"../../core/renderer\";\r\nvar SORT_CLASS = \"dx-sort\";\r\nvar SORT_NONE_CLASS = \"dx-sort-none\";\r\nvar SORTUP_CLASS = \"dx-sort-up\";\r\nvar SORTDOWN_CLASS = \"dx-sort-down\";\r\nvar SORT_INDEX_CLASS = \"dx-sort-index\";\r\nvar SORT_INDEX_ICON_CLASS = \"dx-sort-index-icon\";\r\nvar HEADERS_ACTION_CLASS = \"action\";\r\nexport default {\r\n _applyColumnState: function(options) {\r\n var ariaSortState;\r\n var $sortIndicator;\r\n var sortingMode = this.option(\"sorting.mode\");\r\n var rootElement = options.rootElement;\r\n var column = options.column;\r\n var $indicatorsContainer = this._getIndicatorContainer(rootElement);\r\n if (\"sort\" === options.name) {\r\n rootElement.find(\".\" + SORT_CLASS).remove();\r\n !$indicatorsContainer.children().length && $indicatorsContainer.remove();\r\n var isSortingAllowed = \"none\" !== sortingMode && column.allowSorting;\r\n if (!isDefined(column.groupIndex) && (isSortingAllowed || isDefined(column.sortOrder))) {\r\n ariaSortState = \"asc\" === column.sortOrder ? \"ascending\" : \"descending\";\r\n $sortIndicator = this.callBase(options).toggleClass(SORTUP_CLASS, \"asc\" === column.sortOrder).toggleClass(SORTDOWN_CLASS, \"desc\" === column.sortOrder);\r\n var hasSeveralSortIndexes = this.getController && !!this.getController(\"columns\").columnOption(\"sortIndex:1\");\r\n if (hasSeveralSortIndexes && this.option(\"sorting.showSortIndexes\") && column.sortIndex >= 0) {\r\n $(\"\").addClass(SORT_INDEX_ICON_CLASS).text(column.sortIndex + 1).appendTo($sortIndicator);\r\n $sortIndicator.addClass(SORT_INDEX_CLASS)\r\n }\r\n if (isSortingAllowed) {\r\n options.rootElement.addClass(this.addWidgetPrefix(HEADERS_ACTION_CLASS))\r\n }\r\n }\r\n if (!isDefined(column.sortOrder)) {\r\n this.setAria(\"sort\", \"none\", rootElement)\r\n } else {\r\n this.setAria(\"sort\", ariaSortState, rootElement)\r\n }\r\n return $sortIndicator\r\n } else {\r\n return this.callBase(options)\r\n }\r\n },\r\n _getIndicatorClassName: function(name) {\r\n if (\"sort\" === name) {\r\n return SORT_CLASS\r\n } else if (\"sortIndex\" === name) {\r\n return SORT_INDEX_ICON_CLASS\r\n }\r\n return this.callBase(name)\r\n },\r\n _renderIndicator: function(options) {\r\n var column = options.column;\r\n var $container = options.container;\r\n var $indicator = options.indicator;\r\n if (\"sort\" === options.name) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n if (!isDefined(column.sortOrder)) {\r\n $indicator && $indicator.addClass(SORT_NONE_CLASS)\r\n }\r\n if ($container.children().length && (!rtlEnabled && \"left\" === options.columnAlignment || rtlEnabled && \"right\" === options.columnAlignment)) {\r\n $container.prepend($indicator);\r\n return\r\n }\r\n }\r\n this.callBase(options)\r\n },\r\n _updateIndicator: function($cell, column, indicatorName) {\r\n if (\"sort\" === indicatorName && isDefined(column.groupIndex)) {\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _getIndicatorElements: function($cell, returnAll) {\r\n var $indicatorElements = this.callBase($cell);\r\n return returnAll ? $indicatorElements : $indicatorElements && $indicatorElements.not(\".\" + SORT_NONE_CLASS)\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.sorting.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport sortingMixin from \"../grid_core/ui.grid_core.sorting_mixin\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n addNamespace,\r\n isCommandKeyPressed\r\n} from \"../../events/utils/index\";\r\nvar COLUMN_HEADERS_VIEW_NAMESPACE = \"dxDataGridColumnHeadersView\";\r\nvar ColumnHeadersViewSortingExtender = extend({}, sortingMixin, {\r\n _createRow(row) {\r\n var $row = this.callBase(row);\r\n if (\"header\" === row.rowType) {\r\n eventsEngine.on($row, addNamespace(clickEventName, COLUMN_HEADERS_VIEW_NAMESPACE), \"td\", this.createAction(e => {\r\n this._processHeaderAction(e.event, $row)\r\n }))\r\n }\r\n return $row\r\n },\r\n _processHeaderAction: function(event, $row) {\r\n if ($(event.currentTarget).parent().get(0) !== $row.get(0)) {\r\n return\r\n }\r\n var that = this;\r\n var keyName = null;\r\n var $cellElementFromEvent = $(event.currentTarget);\r\n var rowIndex = $cellElementFromEvent.parent().index();\r\n var columnIndex = -1;\r\n [].slice.call(that.getCellElements(rowIndex)).some(($cellElement, index) => {\r\n if ($cellElement === $cellElementFromEvent.get(0)) {\r\n columnIndex = index;\r\n return true\r\n }\r\n });\r\n var visibleColumns = that._columnsController.getVisibleColumns(rowIndex);\r\n var column = visibleColumns[columnIndex];\r\n var editingController = that.getController(\"editing\");\r\n var editingMode = that.option(\"editing.mode\");\r\n var isCellEditing = editingController && editingController.isEditing() && (\"batch\" === editingMode || \"cell\" === editingMode);\r\n if (isCellEditing || !that._isSortableElement($(event.target))) {\r\n return\r\n }\r\n if (column && !isDefined(column.groupIndex) && !column.command) {\r\n if (event.shiftKey) {\r\n keyName = \"shift\"\r\n } else if (isCommandKeyPressed(event)) {\r\n keyName = \"ctrl\"\r\n }\r\n setTimeout(() => {\r\n that._columnsController.changeSortOrder(column.index, keyName)\r\n })\r\n }\r\n },\r\n _renderCellContent($cell, options) {\r\n var column = options.column;\r\n if (!column.command && \"header\" === options.rowType) {\r\n this._applyColumnState({\r\n name: \"sort\",\r\n rootElement: $cell,\r\n column: column,\r\n showColumnLines: this.option(\"showColumnLines\")\r\n })\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _columnOptionChanged(e) {\r\n var changeTypes = e.changeTypes;\r\n if (1 === changeTypes.length && changeTypes.sorting) {\r\n this._updateIndicators(\"sort\");\r\n return\r\n }\r\n this.callBase(e)\r\n },\r\n optionChanged(args) {\r\n switch (args.name) {\r\n case \"sorting\":\r\n this._invalidate();\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nvar HeaderPanelSortingExtender = extend({}, sortingMixin, {\r\n _createGroupPanelItem($rootElement, groupColumn) {\r\n var that = this;\r\n var $item = that.callBase(...arguments);\r\n eventsEngine.on($item, addNamespace(clickEventName, \"dxDataGridHeaderPanel\"), that.createAction(() => {\r\n that._processGroupItemAction(groupColumn.index)\r\n }));\r\n that._applyColumnState({\r\n name: \"sort\",\r\n rootElement: $item,\r\n column: {\r\n alignment: that.option(\"rtlEnabled\") ? \"right\" : \"left\",\r\n allowSorting: groupColumn.allowSorting,\r\n sortOrder: \"desc\" === groupColumn.sortOrder ? \"desc\" : \"asc\"\r\n },\r\n showColumnLines: true\r\n });\r\n return $item\r\n },\r\n _processGroupItemAction(groupColumnIndex) {\r\n setTimeout(() => this.getController(\"columns\").changeSortOrder(groupColumnIndex))\r\n },\r\n optionChanged(args) {\r\n switch (args.name) {\r\n case \"sorting\":\r\n this._invalidate();\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport var sortingModule = {\r\n defaultOptions: () => ({\r\n sorting: {\r\n mode: \"single\",\r\n ascendingText: messageLocalization.format(\"dxDataGrid-sortingAscendingText\"),\r\n descendingText: messageLocalization.format(\"dxDataGrid-sortingDescendingText\"),\r\n clearText: messageLocalization.format(\"dxDataGrid-sortingClearText\"),\r\n showSortIndexes: true\r\n }\r\n }),\r\n extenders: {\r\n views: {\r\n columnHeadersView: ColumnHeadersViewSortingExtender,\r\n headerPanel: HeaderPanelSortingExtender\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.sorting.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n sortingModule\r\n} from \"../grid_core/ui.grid_core.sorting\";\r\ngridCore.registerModule(\"sorting\", sortingModule);\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.rows.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n getHeight,\r\n getOuterHeight,\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n deferRender,\r\n deferUpdate\r\n} from \"../../core/utils/common\";\r\nimport {\r\n setHeight\r\n} from \"../../core/utils/style\";\r\nimport {\r\n isDefined,\r\n isNumeric,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getBoundingRect,\r\n getDefaultAlignment\r\n} from \"../../core/utils/position\";\r\nimport {\r\n isEmpty\r\n} from \"../../core/utils/string\";\r\nimport {\r\n compileGetter\r\n} from \"../../core/utils/data\";\r\nimport gridCoreUtils from \"./ui.grid_core.utils\";\r\nimport {\r\n ColumnsView\r\n} from \"./ui.grid_core.columns_view\";\r\nimport Scrollable from \"../scroll_view/ui.scrollable\";\r\nimport {\r\n removeEvent\r\n} from \"../../events/remove\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport browser from \"../../core/utils/browser\";\r\nvar ROWS_VIEW_CLASS = \"rowsview\";\r\nvar CONTENT_CLASS = \"content\";\r\nvar NOWRAP_CLASS = \"nowrap\";\r\nvar GROUP_ROW_CLASS = \"dx-group-row\";\r\nvar GROUP_CELL_CLASS = \"dx-group-cell\";\r\nvar DATA_ROW_CLASS = \"dx-data-row\";\r\nvar FREE_SPACE_CLASS = \"dx-freespace-row\";\r\nvar ROW_LINES_CLASS = \"dx-row-lines\";\r\nvar COLUMN_LINES_CLASS = \"dx-column-lines\";\r\nvar ROW_ALTERNATION_CLASS = \"dx-row-alt\";\r\nvar LAST_ROW_BORDER = \"dx-last-row-border\";\r\nvar EMPTY_CLASS = \"dx-empty\";\r\nvar ROW_INSERTED_ANIMATION_CLASS = \"row-inserted-animation\";\r\nvar LOADPANEL_HIDE_TIMEOUT = 200;\r\n\r\nfunction getMaxHorizontalScrollOffset(scrollable) {\r\n return scrollable ? Math.round(scrollable.scrollWidth() - scrollable.clientWidth()) : 0\r\n}\r\nexport var rowsModule = {\r\n defaultOptions: function() {\r\n return {\r\n hoverStateEnabled: false,\r\n scrolling: {\r\n useNative: \"auto\"\r\n },\r\n loadPanel: {\r\n enabled: \"auto\",\r\n text: messageLocalization.format(\"Loading\"),\r\n width: 200,\r\n height: 90,\r\n showIndicator: true,\r\n indicatorSrc: \"\",\r\n showPane: true\r\n },\r\n dataRowTemplate: null,\r\n columnAutoWidth: false,\r\n noDataText: messageLocalization.format(\"dxDataGrid-noDataText\"),\r\n wordWrapEnabled: false,\r\n showColumnLines: true,\r\n showRowLines: false,\r\n rowAlternationEnabled: false,\r\n activeStateEnabled: false,\r\n twoWayBindingEnabled: true\r\n }\r\n },\r\n views: {\r\n rowsView: ColumnsView.inherit(function() {\r\n var defaultCellTemplate = function($container, options) {\r\n var isDataTextEmpty = isEmpty(options.text) && \"data\" === options.rowType;\r\n var text = options.text;\r\n var container = $container.get(0);\r\n if (isDataTextEmpty) {\r\n gridCoreUtils.setEmptyText($container)\r\n } else if (options.column.encodeHtml) {\r\n container.textContent = text\r\n } else {\r\n container.innerHTML = text\r\n }\r\n };\r\n return {\r\n _getDefaultTemplate: function(column) {\r\n switch (column.command) {\r\n case \"empty\":\r\n return function(container) {\r\n container.html(\" \")\r\n };\r\n default:\r\n return defaultCellTemplate\r\n }\r\n },\r\n _getDefaultGroupTemplate: function(column) {\r\n var summaryTexts = this.option(\"summary.texts\");\r\n return function($container, options) {\r\n var data = options.data;\r\n var text = options.column.caption + \": \" + options.text;\r\n var container = $container.get(0);\r\n if (options.summaryItems && options.summaryItems.length) {\r\n text += \" \" + gridCoreUtils.getGroupRowSummaryText(options.summaryItems, summaryTexts)\r\n }\r\n if (data) {\r\n if (options.groupContinuedMessage && options.groupContinuesMessage) {\r\n text += \" (\" + options.groupContinuedMessage + \". \" + options.groupContinuesMessage + \")\"\r\n } else if (options.groupContinuesMessage) {\r\n text += \" (\" + options.groupContinuesMessage + \")\"\r\n } else if (options.groupContinuedMessage) {\r\n text += \" (\" + options.groupContinuedMessage + \")\"\r\n }\r\n }\r\n $container.addClass(GROUP_CELL_CLASS);\r\n if (column.encodeHtml) {\r\n container.textContent = text\r\n } else {\r\n container.innerHTML = text\r\n }\r\n }\r\n },\r\n _update: function() {},\r\n _getCellTemplate: function(options) {\r\n var column = options.column;\r\n var template;\r\n if (\"group\" === options.rowType && isDefined(column.groupIndex) && !column.showWhenGrouped && !column.command) {\r\n template = column.groupCellTemplate || {\r\n allowRenderToDetachedContainer: true,\r\n render: this._getDefaultGroupTemplate(column)\r\n }\r\n } else if ((\"data\" === options.rowType || column.command) && column.cellTemplate) {\r\n template = column.cellTemplate\r\n } else {\r\n template = {\r\n allowRenderToDetachedContainer: true,\r\n render: this._getDefaultTemplate(column)\r\n }\r\n }\r\n return template\r\n },\r\n _createRow: function(row) {\r\n var $row = this.callBase.apply(this, arguments);\r\n if (row) {\r\n var isGroup = \"group\" === row.rowType;\r\n var isDataRow = \"data\" === row.rowType;\r\n isDataRow && $row.addClass(DATA_ROW_CLASS);\r\n isDataRow && this.option(\"showRowLines\") && $row.addClass(ROW_LINES_CLASS);\r\n this.option(\"showColumnLines\") && $row.addClass(COLUMN_LINES_CLASS);\r\n if (false === row.visible) {\r\n $row.hide()\r\n }\r\n if (isGroup) {\r\n $row.addClass(GROUP_ROW_CLASS);\r\n var isRowExpanded = row.isExpanded;\r\n this.setAria(\"role\", \"row\", $row);\r\n this.setAria(\"expanded\", isDefined(isRowExpanded) && isRowExpanded.toString(), $row)\r\n }\r\n }\r\n return $row\r\n },\r\n _rowPrepared: function($row, rowOptions, row) {\r\n if (\"data\" === rowOptions.rowType) {\r\n if (this.option(\"rowAlternationEnabled\")) {\r\n this._isAltRow(row) && $row.addClass(ROW_ALTERNATION_CLASS);\r\n rowOptions.watch && rowOptions.watch(() => this._isAltRow(row), value => {\r\n $row.toggleClass(ROW_ALTERNATION_CLASS, value)\r\n })\r\n }\r\n this._setAriaRowIndex(rowOptions, $row);\r\n rowOptions.watch && rowOptions.watch(() => rowOptions.rowIndex, () => this._setAriaRowIndex(rowOptions, $row))\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _setAriaRowIndex: function(row, $row) {\r\n var component = this.component;\r\n var isPagerMode = \"standard\" === component.option(\"scrolling.mode\") && !gridCoreUtils.isVirtualRowRendering(component);\r\n var rowIndex = row.rowIndex + 1;\r\n if (isPagerMode) {\r\n rowIndex = component.pageIndex() * component.pageSize() + rowIndex\r\n } else {\r\n rowIndex += this._dataController.getRowIndexOffset()\r\n }\r\n this.setAria(\"rowindex\", rowIndex, $row)\r\n },\r\n _afterRowPrepared: function(e) {\r\n var arg = e.args[0];\r\n var dataController = this._dataController;\r\n var row = dataController.getVisibleRows()[arg.rowIndex];\r\n var watch = this.option(\"integrationOptions.watchMethod\");\r\n if (!arg.data || \"data\" !== arg.rowType || arg.isNewRow || !this.option(\"twoWayBindingEnabled\") || !watch || !row) {\r\n return\r\n }\r\n var dispose = watch(() => dataController.generateDataValues(arg.data, arg.columns), () => {\r\n dataController.repaintRows([row.rowIndex], this.option(\"repaintChangesOnly\"))\r\n }, {\r\n deep: true,\r\n skipImmediate: true\r\n });\r\n eventsEngine.on(arg.rowElement, removeEvent, dispose)\r\n },\r\n _renderScrollable: function(force) {\r\n var $element = this.element();\r\n if (!$element.children().length) {\r\n $element.append(\"
\")\r\n }\r\n if (force || !this._loadPanel) {\r\n this._renderLoadPanel($element, $element.parent(), this._dataController.isLocalStore())\r\n }\r\n if ((force || !this.getScrollable()) && this._dataController.isLoaded()) {\r\n var columns = this.getColumns();\r\n var allColumnsHasWidth = true;\r\n for (var i = 0; i < columns.length; i++) {\r\n if (!columns[i].width && !columns[i].minWidth) {\r\n allColumnsHasWidth = false;\r\n break\r\n }\r\n }\r\n if (this.option(\"columnAutoWidth\") || this._hasHeight || allColumnsHasWidth || this._columnsController._isColumnFixing()) {\r\n this._renderScrollableCore($element)\r\n }\r\n }\r\n },\r\n _handleScroll: function(e) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var isNativeScrolling = e.component.option(\"useNative\");\r\n this._scrollTop = e.scrollOffset.top;\r\n this._scrollLeft = e.scrollOffset.left;\r\n var scrollLeft = e.scrollOffset.left;\r\n if (rtlEnabled) {\r\n this._scrollRight = getMaxHorizontalScrollOffset(e.component) - this._scrollLeft;\r\n if (isNativeScrolling) {\r\n scrollLeft = -this._scrollRight\r\n }\r\n if (!this.isScrollbarVisible(true)) {\r\n this._scrollLeft = -1\r\n }\r\n }\r\n this.scrollChanged.fire(_extends({}, e.scrollOffset, {\r\n left: scrollLeft\r\n }), this.name)\r\n },\r\n _renderScrollableCore: function($element) {\r\n var dxScrollableOptions = this._createScrollableOptions();\r\n var scrollHandler = this._handleScroll.bind(this);\r\n dxScrollableOptions.onScroll = scrollHandler;\r\n this._scrollable = this._createComponent($element, Scrollable, dxScrollableOptions);\r\n this._scrollableContainer = this._scrollable && $(this._scrollable.container())\r\n },\r\n _renderLoadPanel: gridCoreUtils.renderLoadPanel,\r\n _renderContent: function(contentElement, tableElement) {\r\n contentElement.empty().append(tableElement);\r\n return this._findContentElement()\r\n },\r\n _updateContent: function(newTableElement, change) {\r\n var that = this;\r\n var tableElement = that.getTableElement();\r\n var contentElement = that._findContentElement();\r\n var changeType = change && change.changeType;\r\n var executors = [];\r\n var highlightChanges = this.option(\"highlightChanges\");\r\n var rowInsertedClass = this.addWidgetPrefix(ROW_INSERTED_ANIMATION_CLASS);\r\n switch (changeType) {\r\n case \"update\":\r\n each(change.rowIndices, (function(index, rowIndex) {\r\n var $newRowElement = that._getRowElements(newTableElement).eq(index);\r\n var changeType = change.changeTypes && change.changeTypes[index];\r\n var item = change.items && change.items[index];\r\n executors.push((function() {\r\n var $rowsElement = that._getRowElements();\r\n var $rowElement = $rowsElement.eq(rowIndex);\r\n switch (changeType) {\r\n case \"update\":\r\n if (item) {\r\n var columnIndices = change.columnIndices && change.columnIndices[index];\r\n if (isDefined(item.visible) && item.visible !== $rowElement.is(\":visible\")) {\r\n $rowElement.toggle(item.visible)\r\n } else if (columnIndices) {\r\n that._updateCells($rowElement, $newRowElement, columnIndices)\r\n } else {\r\n $rowElement.replaceWith($newRowElement)\r\n }\r\n }\r\n break;\r\n case \"insert\":\r\n if (!$rowsElement.length) {\r\n if (tableElement) {\r\n var target = $newRowElement.is(\"tbody\") ? tableElement : tableElement.children(\"tbody\");\r\n $newRowElement.prependTo(target)\r\n }\r\n } else if ($rowElement.length) {\r\n $newRowElement.insertBefore($rowElement)\r\n } else {\r\n $newRowElement.insertAfter($rowsElement.last())\r\n }\r\n if (highlightChanges && change.isLiveUpdate) {\r\n $newRowElement.addClass(rowInsertedClass)\r\n }\r\n break;\r\n case \"remove\":\r\n $rowElement.remove()\r\n }\r\n }))\r\n }));\r\n each(executors, (function() {\r\n this()\r\n }));\r\n newTableElement.remove();\r\n break;\r\n default:\r\n that.setTableElement(newTableElement);\r\n contentElement.addClass(that.addWidgetPrefix(CONTENT_CLASS));\r\n that._renderContent(contentElement, newTableElement)\r\n }\r\n },\r\n _createEmptyRow: function(className, isFixed, height) {\r\n var $cell;\r\n var $row = this._createRow();\r\n var columns = isFixed ? this.getFixedColumns() : this.getColumns();\r\n $row.addClass(className).toggleClass(COLUMN_LINES_CLASS, this.option(\"showColumnLines\"));\r\n for (var i = 0; i < columns.length; i++) {\r\n $cell = this._createCell({\r\n column: columns[i],\r\n rowType: \"freeSpace\",\r\n columnIndex: i,\r\n columns: columns\r\n });\r\n isNumeric(height) && $cell.css(\"height\", height);\r\n $row.append($cell)\r\n }\r\n this.setAria(\"role\", \"presentation\", $row);\r\n return $row\r\n },\r\n _appendEmptyRow: function($table, $emptyRow, location) {\r\n var $tBodies = this._getBodies($table);\r\n var isTableContainer = !$tBodies.length || $emptyRow.is(\"tbody\");\r\n var $container = isTableContainer ? $table : $tBodies;\r\n if (\"top\" === location) {\r\n $container.first().prepend($emptyRow);\r\n if (isTableContainer) {\r\n var $colgroup = $container.children(\"colgroup\");\r\n $container.prepend($colgroup)\r\n }\r\n } else {\r\n $container.last().append($emptyRow)\r\n }\r\n },\r\n _renderFreeSpaceRow: function($tableElement, change) {\r\n var $freeSpaceRowElement = this._createEmptyRow(FREE_SPACE_CLASS);\r\n $freeSpaceRowElement = this._wrapRowIfNeed($tableElement, $freeSpaceRowElement, \"refresh\" === (null === change || void 0 === change ? void 0 : change.changeType));\r\n this._appendEmptyRow($tableElement, $freeSpaceRowElement)\r\n },\r\n _checkRowKeys: function(options) {\r\n var that = this;\r\n var rows = that._getRows(options);\r\n var keyExpr = that._dataController.store() && that._dataController.store().key();\r\n keyExpr && rows.some((function(row) {\r\n if (\"data\" === row.rowType && void 0 === row.key) {\r\n that._dataController.fireError(\"E1046\", keyExpr);\r\n return true\r\n }\r\n }))\r\n },\r\n _needUpdateRowHeight: function(itemsCount) {\r\n return itemsCount > 0 && !this._rowHeight\r\n },\r\n _getRowsHeight: function($tableElement) {\r\n $tableElement = $tableElement || this._tableElement;\r\n var $rowElements = $tableElement.children(\"tbody\").children().not(\".dx-virtual-row\").not(\".\" + FREE_SPACE_CLASS);\r\n return $rowElements.toArray().reduce((function(sum, row) {\r\n return sum + getBoundingRect(row).height\r\n }), 0)\r\n },\r\n _updateRowHeight: function() {\r\n var $tableElement = this.getTableElement();\r\n var itemsCount = this._dataController.items().length;\r\n if ($tableElement && this._needUpdateRowHeight(itemsCount)) {\r\n var rowsHeight = this._getRowsHeight($tableElement);\r\n this._rowHeight = rowsHeight / itemsCount\r\n }\r\n },\r\n _findContentElement: function() {\r\n var $content = this.element();\r\n var scrollable = this.getScrollable();\r\n if ($content) {\r\n if (scrollable) {\r\n $content = $(scrollable.content())\r\n }\r\n return $content.children().first()\r\n }\r\n },\r\n _getRowElements: function(tableElement) {\r\n var $rows = this.callBase(tableElement);\r\n return $rows && $rows.not(\".\" + FREE_SPACE_CLASS)\r\n },\r\n _getFreeSpaceRowElements: function($table) {\r\n var tableElements = $table || this.getTableElements();\r\n return tableElements && tableElements.children(\"tbody\").children(\".\" + FREE_SPACE_CLASS)\r\n },\r\n _getNoDataText: function() {\r\n return this.option(\"noDataText\")\r\n },\r\n _rowClick: function(e) {\r\n var item = this._dataController.items()[e.rowIndex] || {};\r\n this.executeAction(\"onRowClick\", extend({\r\n evaluate: function(expr) {\r\n var getter = compileGetter(expr);\r\n return getter(item.data)\r\n }\r\n }, e, item))\r\n },\r\n _rowDblClick: function(e) {\r\n var item = this._dataController.items()[e.rowIndex] || {};\r\n this.executeAction(\"onRowDblClick\", extend({}, e, item))\r\n },\r\n _getColumnsCountBeforeGroups: function(columns) {\r\n for (var i = 0; i < columns.length; i++) {\r\n if (\"groupExpand\" === columns[i].type) {\r\n return i\r\n }\r\n }\r\n return 0\r\n },\r\n _getGroupCellOptions: function(options) {\r\n var columnsCountBeforeGroups = this._getColumnsCountBeforeGroups(options.columns);\r\n var columnIndex = (options.row.groupIndex || 0) + columnsCountBeforeGroups;\r\n return {\r\n columnIndex: columnIndex,\r\n colspan: options.columns.length - columnIndex - 1\r\n }\r\n },\r\n _needWrapRow: function() {\r\n return this.callBase.apply(this, arguments) || !!this.option(\"dataRowTemplate\")\r\n },\r\n _renderCells: function($row, options) {\r\n if (\"group\" === options.row.rowType) {\r\n this._renderGroupedCells($row, options)\r\n } else if (options.row.values) {\r\n this.callBase($row, options)\r\n }\r\n },\r\n _renderGroupedCells: function($row, options) {\r\n var row = options.row;\r\n var expandColumn;\r\n var columns = options.columns;\r\n var rowIndex = row.rowIndex;\r\n var isExpanded;\r\n var groupCellOptions = this._getGroupCellOptions(options);\r\n for (var i = 0; i <= groupCellOptions.columnIndex; i++) {\r\n if (i === groupCellOptions.columnIndex && columns[i].allowCollapsing && \"infinite\" !== options.scrollingMode) {\r\n isExpanded = !!row.isExpanded;\r\n expandColumn = columns[i]\r\n } else {\r\n isExpanded = null;\r\n expandColumn = {\r\n command: \"expand\",\r\n cssClass: columns[i].cssClass\r\n }\r\n }\r\n if (this._needRenderCell(i, options.columnIndices)) {\r\n this._renderCell($row, {\r\n value: isExpanded,\r\n row: row,\r\n rowIndex: rowIndex,\r\n column: expandColumn,\r\n columnIndex: i,\r\n columnIndices: options.columnIndices\r\n })\r\n }\r\n }\r\n var groupColumnAlignment = getDefaultAlignment(this.option(\"rtlEnabled\"));\r\n var groupColumn = extend({}, columns[groupCellOptions.columnIndex], {\r\n command: null,\r\n type: null,\r\n cssClass: null,\r\n width: null,\r\n showWhenGrouped: false,\r\n alignment: groupColumnAlignment\r\n });\r\n if (groupCellOptions.colspan > 1) {\r\n groupColumn.colspan = groupCellOptions.colspan\r\n }\r\n if (this._needRenderCell(groupCellOptions.columnIndex + 1, options.columnIndices)) {\r\n this._renderCell($row, {\r\n value: row.values[row.groupIndex],\r\n row: row,\r\n rowIndex: rowIndex,\r\n column: groupColumn,\r\n columnIndex: groupCellOptions.columnIndex + 1,\r\n columnIndices: options.columnIndices\r\n })\r\n }\r\n },\r\n _renderRows: function($table, options) {\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n this.callBase($table, extend({\r\n scrollingMode: scrollingMode\r\n }, options));\r\n this._checkRowKeys(options.change);\r\n this._renderFreeSpaceRow($table, options.change);\r\n if (!this._hasHeight) {\r\n this.updateFreeSpaceRowHeight($table)\r\n }\r\n },\r\n _renderDataRowByTemplate($table, options, dataRowTemplate) {\r\n var row = options.row;\r\n var rowOptions = extend({\r\n columns: options.columns\r\n }, row);\r\n var $tbody = this._createRow(row, \"tbody\");\r\n $tbody.appendTo($table);\r\n this.renderTemplate($tbody, dataRowTemplate, rowOptions, true, options.change);\r\n this._rowPrepared($tbody, rowOptions, options.row)\r\n },\r\n _renderRow: function($table, options) {\r\n var row = options.row;\r\n var rowTemplate = this.option().rowTemplate;\r\n var dataRowTemplate = this.option(\"dataRowTemplate\");\r\n if (\"data\" === row.rowType && dataRowTemplate) {\r\n this._renderDataRowByTemplate($table, options, dataRowTemplate)\r\n } else if ((\"data\" === row.rowType || \"group\" === row.rowType) && !isDefined(row.groupIndex) && rowTemplate) {\r\n this.renderTemplate($table, rowTemplate, extend({\r\n columns: options.columns\r\n }, row), true)\r\n } else {\r\n this.callBase($table, options)\r\n }\r\n },\r\n _renderTable: function(options) {\r\n var that = this;\r\n var $table = that.callBase(options);\r\n if (!isDefined(that.getTableElement())) {\r\n that.setTableElement($table);\r\n that._renderScrollable(true);\r\n that.resizeCompleted.add((function resizeCompletedHandler() {\r\n var scrollableInstance = that.getScrollable();\r\n if (scrollableInstance && that.element().closest(getWindow().document).length) {\r\n that.resizeCompleted.remove(resizeCompletedHandler);\r\n scrollableInstance._visibilityChanged(true)\r\n }\r\n }))\r\n } else {\r\n that._renderScrollable()\r\n }\r\n return $table\r\n },\r\n _createTable: function() {\r\n var $table = this.callBase.apply(this, arguments);\r\n if (this.option().rowTemplate || this.option().dataRowTemplate) {\r\n $table.appendTo(this.component.$element())\r\n }\r\n return $table\r\n },\r\n _renderCore: function(change) {\r\n var $element = this.element();\r\n $element.addClass(this.addWidgetPrefix(ROWS_VIEW_CLASS)).toggleClass(this.addWidgetPrefix(NOWRAP_CLASS), !this.option(\"wordWrapEnabled\"));\r\n $element.toggleClass(EMPTY_CLASS, this._dataController.isEmpty());\r\n this.setAria(\"role\", \"presentation\", $element);\r\n var $table = this._renderTable({\r\n change: change\r\n });\r\n this._updateContent($table, change);\r\n this.callBase(change);\r\n this._lastColumnWidths = null\r\n },\r\n _getRows: function(change) {\r\n return change && change.items || this._dataController.items()\r\n },\r\n _getCellOptions: function(options) {\r\n var column = options.column;\r\n var row = options.row;\r\n var data = row.data;\r\n var summaryCells = row && row.summaryCells;\r\n var value = options.value;\r\n var displayValue = gridCoreUtils.getDisplayValue(column, value, data, row.rowType);\r\n var parameters = this.callBase(options);\r\n parameters.value = value;\r\n parameters.oldValue = options.oldValue;\r\n parameters.displayValue = displayValue;\r\n parameters.row = row;\r\n parameters.key = row.key;\r\n parameters.data = data;\r\n parameters.rowType = row.rowType;\r\n parameters.values = row.values;\r\n parameters.text = !column.command ? gridCoreUtils.formatValue(displayValue, column) : \"\";\r\n parameters.rowIndex = row.rowIndex;\r\n parameters.summaryItems = summaryCells && summaryCells[options.columnIndex];\r\n parameters.resized = column.resizedCallbacks;\r\n if (isDefined(column.groupIndex) && !column.command) {\r\n var groupingTextsOptions = this.option(\"grouping.texts\");\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n if (\"virtual\" !== scrollingMode && \"infinite\" !== scrollingMode) {\r\n parameters.groupContinuesMessage = data && data.isContinuationOnNextPage && groupingTextsOptions && groupingTextsOptions.groupContinuesMessage;\r\n parameters.groupContinuedMessage = data && data.isContinuation && groupingTextsOptions && groupingTextsOptions.groupContinuedMessage\r\n }\r\n }\r\n return parameters\r\n },\r\n _setRowsOpacityCore: function($rows, visibleColumns, columnIndex, value) {\r\n var columnsController = this._columnsController;\r\n var columns = columnsController.getColumns();\r\n var column = columns && columns[columnIndex];\r\n var columnID = column && column.isBand && column.index;\r\n each($rows, (function(rowIndex, row) {\r\n if (!$(row).hasClass(GROUP_ROW_CLASS)) {\r\n for (var i = 0; i < visibleColumns.length; i++) {\r\n if (isNumeric(columnID) && columnsController.isParentBandColumn(visibleColumns[i].index, columnID) || visibleColumns[i].index === columnIndex) {\r\n $rows.eq(rowIndex).children().eq(i).css({\r\n opacity: value\r\n });\r\n if (!isNumeric(columnID)) {\r\n break\r\n }\r\n }\r\n }\r\n }\r\n }))\r\n },\r\n _getDevicePixelRatio: function() {\r\n return getWindow().devicePixelRatio\r\n },\r\n renderNoDataText: gridCoreUtils.renderNoDataText,\r\n getCellOptions: function(rowIndex, columnIdentifier) {\r\n var rowOptions = this._dataController.items()[rowIndex];\r\n var cellOptions;\r\n var column;\r\n if (rowOptions) {\r\n if (isString(columnIdentifier)) {\r\n column = this._columnsController.columnOption(columnIdentifier)\r\n } else {\r\n column = this._columnsController.getVisibleColumns()[columnIdentifier]\r\n }\r\n if (column) {\r\n cellOptions = this._getCellOptions({\r\n value: column.calculateCellValue(rowOptions.data),\r\n rowIndex: rowOptions.rowIndex,\r\n row: rowOptions,\r\n column: column\r\n })\r\n }\r\n }\r\n return cellOptions\r\n },\r\n getRow: function(index) {\r\n if (index >= 0) {\r\n var rows = this._getRowElements();\r\n if (rows.length > index) {\r\n return $(rows[index])\r\n }\r\n }\r\n },\r\n updateFreeSpaceRowHeight: function($table) {\r\n var dataController = this._dataController;\r\n var itemCount = dataController.items(true).length;\r\n var contentElement = this._findContentElement();\r\n var freeSpaceRowElements = this._getFreeSpaceRowElements($table);\r\n if (freeSpaceRowElements && contentElement && dataController.totalCount() >= 0) {\r\n var isFreeSpaceRowVisible = false;\r\n if (itemCount > 0) {\r\n if (!this._hasHeight) {\r\n var freeSpaceRowCount = dataController.pageSize() - itemCount;\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n if (freeSpaceRowCount > 0 && dataController.pageCount() > 1 && \"virtual\" !== scrollingMode && \"infinite\" !== scrollingMode) {\r\n setHeight(freeSpaceRowElements, freeSpaceRowCount * this._rowHeight);\r\n isFreeSpaceRowVisible = true\r\n }\r\n if (!isFreeSpaceRowVisible && $table) {\r\n setHeight(freeSpaceRowElements, 0)\r\n } else {\r\n freeSpaceRowElements.toggle(isFreeSpaceRowVisible)\r\n }\r\n this._updateLastRowBorder(isFreeSpaceRowVisible)\r\n } else {\r\n freeSpaceRowElements.hide();\r\n deferUpdate(() => {\r\n var scrollbarWidth = this.getScrollbarWidth(true);\r\n var elementHeightWithoutScrollbar = getHeight(this.element()) - scrollbarWidth;\r\n var contentHeight = getOuterHeight(contentElement);\r\n var showFreeSpaceRow = elementHeightWithoutScrollbar - contentHeight > 0;\r\n var rowsHeight = this._getRowsHeight(contentElement.children().first());\r\n var $tableElement = $table || this.getTableElements();\r\n var borderTopWidth = Math.ceil(parseFloat($tableElement.css(\"borderTopWidth\")));\r\n var heightCorrection = this._getHeightCorrection();\r\n var resultHeight = elementHeightWithoutScrollbar - rowsHeight - borderTopWidth - heightCorrection;\r\n if (showFreeSpaceRow) {\r\n deferRender(() => {\r\n freeSpaceRowElements.css(\"height\", resultHeight);\r\n isFreeSpaceRowVisible = true;\r\n freeSpaceRowElements.show()\r\n })\r\n }\r\n deferRender(() => this._updateLastRowBorder(isFreeSpaceRowVisible))\r\n })\r\n }\r\n } else {\r\n freeSpaceRowElements.css(\"height\", 0);\r\n freeSpaceRowElements.show();\r\n this._updateLastRowBorder(true)\r\n }\r\n }\r\n },\r\n _getHeightCorrection: function() {\r\n var isZoomedWebkit = browser.webkit && this._getDevicePixelRatio() >= 2;\r\n var isChromeLatest = browser.chrome && browser.version >= 91;\r\n var hasExtraBorderTop = browser.mozilla && browser.version >= 70 && !this.option(\"showRowLines\");\r\n return isZoomedWebkit || hasExtraBorderTop || isChromeLatest ? 1 : 0\r\n },\r\n _columnOptionChanged: function(e) {\r\n var optionNames = e.optionNames;\r\n if (e.changeTypes.grouping) {\r\n return\r\n }\r\n if (optionNames.width || optionNames.visibleWidth) {\r\n this.callBase(e);\r\n this._fireColumnResizedCallbacks()\r\n }\r\n },\r\n getScrollable: function() {\r\n return this._scrollable\r\n },\r\n init: function() {\r\n var that = this;\r\n var dataController = that.getController(\"data\");\r\n that.callBase();\r\n that._editorFactoryController = that.getController(\"editorFactory\");\r\n that._rowHeight = 0;\r\n that._scrollTop = 0;\r\n that._scrollLeft = -1;\r\n that._scrollRight = 0;\r\n that._hasHeight = false;\r\n dataController.loadingChanged.add((function(isLoading, messageText) {\r\n that.setLoading(isLoading, messageText)\r\n }));\r\n dataController.dataSourceChanged.add((function() {\r\n if (that._scrollLeft >= 0) {\r\n that._handleScroll({\r\n component: that.getScrollable(),\r\n scrollOffset: {\r\n top: that._scrollTop,\r\n left: that._scrollLeft\r\n }\r\n })\r\n }\r\n }))\r\n },\r\n _handleDataChanged: function(change) {\r\n switch (change.changeType) {\r\n case \"refresh\":\r\n case \"prepend\":\r\n case \"append\":\r\n case \"update\":\r\n this.render(null, change);\r\n break;\r\n default:\r\n this._update(change)\r\n }\r\n },\r\n publicMethods: function() {\r\n return [\"isScrollbarVisible\", \"getTopVisibleRowData\", \"getScrollbarWidth\", \"getCellElement\", \"getRowElement\", \"getScrollable\"]\r\n },\r\n contentWidth: function() {\r\n return getWidth(this.element()) - this.getScrollbarWidth()\r\n },\r\n getScrollbarWidth: function(isHorizontal) {\r\n var scrollableContainer = this._scrollableContainer && this._scrollableContainer.get(0);\r\n var scrollbarWidth = 0;\r\n if (scrollableContainer) {\r\n if (!isHorizontal) {\r\n scrollbarWidth = scrollableContainer.clientWidth ? scrollableContainer.offsetWidth - scrollableContainer.clientWidth : 0\r\n } else {\r\n scrollbarWidth = scrollableContainer.clientHeight ? scrollableContainer.offsetHeight - scrollableContainer.clientHeight : 0;\r\n scrollbarWidth += (that = this, scrollable = that.getScrollable(), scrollable ? Math.ceil(parseFloat($(scrollable.content()).css(\"paddingBottom\"))) : 0)\r\n }\r\n }\r\n var that, scrollable;\r\n return scrollbarWidth > 0 ? scrollbarWidth : 0\r\n },\r\n _fireColumnResizedCallbacks: function() {\r\n var lastColumnWidths = this._lastColumnWidths || [];\r\n var columnWidths = [];\r\n var columns = this.getColumns();\r\n for (var i = 0; i < columns.length; i++) {\r\n columnWidths[i] = columns[i].visibleWidth;\r\n if (columns[i].resizedCallbacks && !isDefined(columns[i].groupIndex) && lastColumnWidths[i] !== columnWidths[i]) {\r\n columns[i].resizedCallbacks.fire(columnWidths[i])\r\n }\r\n }\r\n this._lastColumnWidths = columnWidths\r\n },\r\n _updateLastRowBorder: function(isFreeSpaceRowVisible) {\r\n if (this.option(\"showBorders\") && this.option(\"showRowLines\") && !isFreeSpaceRowVisible) {\r\n this.element().addClass(LAST_ROW_BORDER)\r\n } else {\r\n this.element().removeClass(LAST_ROW_BORDER)\r\n }\r\n },\r\n _updateScrollable: function() {\r\n var dxScrollable = Scrollable.getInstance(this.element());\r\n if (dxScrollable) {\r\n dxScrollable.update();\r\n this._updateHorizontalScrollPosition()\r\n }\r\n },\r\n _updateHorizontalScrollPosition: function() {\r\n var scrollable = this.getScrollable();\r\n var scrollLeft = scrollable && scrollable.scrollOffset().left;\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n if (rtlEnabled) {\r\n var maxHorizontalScrollOffset = getMaxHorizontalScrollOffset(scrollable);\r\n var scrollRight = maxHorizontalScrollOffset - scrollLeft;\r\n if (scrollRight !== this._scrollRight) {\r\n this._scrollLeft = maxHorizontalScrollOffset - this._scrollRight\r\n }\r\n }\r\n if (this._scrollLeft >= 0 && scrollLeft !== this._scrollLeft) {\r\n scrollable.scrollTo({\r\n x: this._scrollLeft\r\n })\r\n }\r\n },\r\n _resizeCore: function() {\r\n var that = this;\r\n that._fireColumnResizedCallbacks();\r\n that._updateRowHeight();\r\n deferRender((function() {\r\n that._renderScrollable();\r\n that.renderNoDataText();\r\n that.updateFreeSpaceRowHeight();\r\n deferUpdate((function() {\r\n that._updateScrollable()\r\n }))\r\n }))\r\n },\r\n scrollTo: function(location) {\r\n var $element = this.element();\r\n var dxScrollable = $element && Scrollable.getInstance($element);\r\n if (dxScrollable) {\r\n dxScrollable.scrollTo(location)\r\n }\r\n },\r\n height: function(_height, hasHeight) {\r\n var that = this;\r\n var $element = this.element();\r\n if (0 === arguments.length) {\r\n return $element ? getOuterHeight($element, true) : 0\r\n }\r\n that._hasHeight = void 0 === hasHeight ? \"auto\" !== _height : hasHeight;\r\n if (isDefined(_height) && $element) {\r\n setHeight($element, _height)\r\n }\r\n },\r\n setLoading: function(isLoading, messageText) {\r\n var loadPanel = this._loadPanel;\r\n var dataController = this._dataController;\r\n var loadPanelOptions = this.option(\"loadPanel\") || {};\r\n var animation = dataController.isLoaded() ? loadPanelOptions.animation : null;\r\n var $element = this.element();\r\n if (!hasWindow()) {\r\n return\r\n }\r\n if (!loadPanel && void 0 !== messageText && dataController.isLocalStore() && \"auto\" === loadPanelOptions.enabled && $element) {\r\n this._renderLoadPanel($element, $element.parent());\r\n loadPanel = this._loadPanel\r\n }\r\n if (loadPanel) {\r\n var visibilityOptions = {\r\n message: messageText || loadPanelOptions.text,\r\n animation: animation,\r\n visible: isLoading\r\n };\r\n if (isLoading) {\r\n visibilityOptions.position = gridCoreUtils.calculateLoadPanelPosition($element)\r\n }\r\n clearTimeout(this._hideLoadingTimeoutID);\r\n if (loadPanel.option(\"visible\") && !isLoading) {\r\n this._hideLoadingTimeoutID = setTimeout((function() {\r\n loadPanel.option(visibilityOptions)\r\n }), LOADPANEL_HIDE_TIMEOUT)\r\n } else {\r\n loadPanel.option(visibilityOptions)\r\n }\r\n }\r\n },\r\n setRowsOpacity: function(columnIndex, value) {\r\n var $rows = this._getRowElements().not(\".\" + GROUP_ROW_CLASS) || [];\r\n this._setRowsOpacityCore($rows, this.getColumns(), columnIndex, value)\r\n },\r\n _getCellElementsCore: function(rowIndex) {\r\n var $cells = this.callBase.apply(this, arguments);\r\n if ($cells) {\r\n var groupCellIndex = $cells.filter(\".\" + GROUP_CELL_CLASS).index();\r\n if (groupCellIndex >= 0 && $cells.length > groupCellIndex + 1) {\r\n return $cells.slice(0, groupCellIndex + 1)\r\n }\r\n }\r\n return $cells\r\n },\r\n _getBoundaryVisibleItemIndex: function(isTop, isFloor) {\r\n var itemIndex = 0;\r\n var prevOffset = 0;\r\n var offset = 0;\r\n var viewportBoundary = this._scrollTop;\r\n var $contentElement = this._findContentElement();\r\n var contentElementOffsetTop = $contentElement && $contentElement.offset().top;\r\n var dataController = this.getController(\"data\");\r\n var items = dataController.items();\r\n var tableElement = this.getTableElement();\r\n if (items.length && tableElement) {\r\n var rowElements = this._getRowElements(tableElement).filter(\":visible\");\r\n if (!isTop) {\r\n var height = getOuterHeight(this._hasHeight ? this.element() : getWindow());\r\n viewportBoundary += height\r\n }\r\n for (itemIndex = 0; itemIndex < items.length; itemIndex++) {\r\n prevOffset = offset;\r\n var $rowElement = $(rowElements).eq(itemIndex);\r\n if ($rowElement.length) {\r\n offset = $rowElement.offset();\r\n offset = (isTop ? offset.top : offset.top + getOuterHeight($rowElement)) - contentElementOffsetTop;\r\n if (offset > viewportBoundary) {\r\n if (itemIndex) {\r\n if (isFloor || 2 * viewportBoundary < Math.round(offset + prevOffset)) {\r\n itemIndex--\r\n }\r\n }\r\n break\r\n }\r\n }\r\n }\r\n if (itemIndex && itemIndex === items.length) {\r\n itemIndex--\r\n }\r\n }\r\n return itemIndex\r\n },\r\n getTopVisibleItemIndex: function(isFloor) {\r\n return this._getBoundaryVisibleItemIndex(true, isFloor)\r\n },\r\n getBottomVisibleItemIndex: function(isFloor) {\r\n return this._getBoundaryVisibleItemIndex(false, isFloor)\r\n },\r\n getTopVisibleRowData: function() {\r\n var itemIndex = this.getTopVisibleItemIndex();\r\n var items = this._dataController.items();\r\n if (items[itemIndex]) {\r\n return items[itemIndex].data\r\n }\r\n },\r\n _scrollToElement: function($element, offset) {\r\n var scrollable = this.getScrollable();\r\n scrollable && scrollable.scrollToElement($element, offset)\r\n },\r\n optionChanged: function(args) {\r\n this.callBase(args);\r\n switch (args.name) {\r\n case \"wordWrapEnabled\":\r\n case \"showColumnLines\":\r\n case \"showRowLines\":\r\n case \"rowAlternationEnabled\":\r\n case \"rowTemplate\":\r\n case \"dataRowTemplate\":\r\n case \"twoWayBindingEnabled\":\r\n this._invalidate(true, true);\r\n args.handled = true;\r\n break;\r\n case \"scrolling\":\r\n this._rowHeight = null;\r\n this._tableElement = null;\r\n args.handled = true;\r\n break;\r\n case \"rtlEnabled\":\r\n this._rowHeight = null;\r\n this._tableElement = null;\r\n break;\r\n case \"loadPanel\":\r\n this._tableElement = null;\r\n this._invalidate(true, \"loadPanel.enabled\" !== args.fullName);\r\n args.handled = true;\r\n break;\r\n case \"noDataText\":\r\n this.renderNoDataText();\r\n args.handled = true\r\n }\r\n },\r\n dispose: function() {\r\n clearTimeout(this._hideLoadingTimeoutID);\r\n this._scrollable && this._scrollable.dispose()\r\n },\r\n setScrollerSpacing: function() {},\r\n _restoreErrorRow: function() {}\r\n }\r\n }())\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.rows.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n rowsModule\r\n} from \"../grid_core/ui.grid_core.rows\";\r\nexport var RowsView = rowsModule.views.rowsView;\r\ngridCore.registerModule(\"rows\", rowsModule);\r\n","/**\r\n * DevExtreme (esm/ui/context_menu/ui.menu_base.edit.strategy.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n map\r\n} from \"../../core/utils/iterator\";\r\nimport PlainEditStrategy from \"../collection/ui.collection_widget.edit.strategy.plain\";\r\nclass MenuBaseEditStrategy extends PlainEditStrategy {\r\n _getPlainItems() {\r\n return map(this._collectionWidget.option(\"items\"), (function getMenuItems(item) {\r\n return item.items ? [item].concat(map(item.items, getMenuItems)) : item\r\n }))\r\n }\r\n _stringifyItem(item) {\r\n return JSON.stringify(item, (key, value) => {\r\n if (\"template\" === key) {\r\n return this._getTemplateString(value)\r\n }\r\n return value\r\n })\r\n }\r\n _getTemplateString(template) {\r\n var result;\r\n if (\"object\" === typeof template) {\r\n result = $(template).text()\r\n } else {\r\n result = template.toString()\r\n }\r\n return result\r\n }\r\n}\r\nexport default MenuBaseEditStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/context_menu/ui.menu_base.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n noop,\r\n asyncNoop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isPlainObject,\r\n isObject,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n render\r\n} from \"../widget/utils.ink_ripple\";\r\nimport HierarchicalCollectionWidget from \"../hierarchical_collection/ui.hierarchical_collection_widget\";\r\nimport MenuBaseEditStrategy from \"./ui.menu_base.edit.strategy\";\r\nimport devices from \"../../core/devices\";\r\nimport MenuItem from \"../collection/item\";\r\nvar DX_MENU_CLASS = \"dx-menu\";\r\nvar DX_MENU_NO_ICONS_CLASS = DX_MENU_CLASS + \"-no-icons\";\r\nvar DX_MENU_BASE_CLASS = \"dx-menu-base\";\r\nvar ITEM_CLASS = DX_MENU_CLASS + \"-item\";\r\nvar DX_ITEM_CONTENT_CLASS = ITEM_CLASS + \"-content\";\r\nvar DX_MENU_SELECTED_ITEM_CLASS = ITEM_CLASS + \"-selected\";\r\nvar DX_MENU_ITEM_WRAPPER_CLASS = ITEM_CLASS + \"-wrapper\";\r\nvar DX_MENU_ITEMS_CONTAINER_CLASS = DX_MENU_CLASS + \"-items-container\";\r\nvar DX_MENU_ITEM_EXPANDED_CLASS = ITEM_CLASS + \"-expanded\";\r\nvar DX_MENU_SEPARATOR_CLASS = DX_MENU_CLASS + \"-separator\";\r\nvar DX_MENU_ITEM_LAST_GROUP_ITEM = DX_MENU_CLASS + \"-last-group-item\";\r\nvar DX_ITEM_HAS_TEXT = ITEM_CLASS + \"-has-text\";\r\nvar DX_ITEM_HAS_ICON = ITEM_CLASS + \"-has-icon\";\r\nvar DX_ITEM_HAS_SUBMENU = ITEM_CLASS + \"-has-submenu\";\r\nvar DX_MENU_ITEM_POPOUT_CLASS = ITEM_CLASS + \"-popout\";\r\nvar DX_MENU_ITEM_POPOUT_CONTAINER_CLASS = DX_MENU_ITEM_POPOUT_CLASS + \"-container\";\r\nvar DX_MENU_ITEM_CAPTION_CLASS = ITEM_CLASS + \"-text\";\r\nvar SINGLE_SELECTION_MODE = \"single\";\r\nvar DEFAULT_DELAY = {\r\n show: 50,\r\n hide: 300\r\n};\r\nclass MenuBase extends HierarchicalCollectionWidget {\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n items: [],\r\n cssClass: \"\",\r\n activeStateEnabled: true,\r\n showSubmenuMode: {\r\n name: \"onHover\",\r\n delay: {\r\n show: 50,\r\n hide: 300\r\n }\r\n },\r\n animation: {\r\n show: {\r\n type: \"fade\",\r\n from: 0,\r\n to: 1,\r\n duration: 100\r\n },\r\n hide: {\r\n type: \"fade\",\r\n from: 1,\r\n to: 0,\r\n duration: 100\r\n }\r\n },\r\n selectByClick: false,\r\n focusOnSelectedItem: false,\r\n keyExpr: null,\r\n _itemAttributes: {\r\n role: \"menuitem\"\r\n },\r\n useInkRipple: false\r\n })\r\n }\r\n _itemDataKey() {\r\n return \"dxMenuItemDataKey\"\r\n }\r\n _itemClass() {\r\n return ITEM_CLASS\r\n }\r\n _setAriaSelected() {}\r\n _selectedItemClass() {\r\n return DX_MENU_SELECTED_ITEM_CLASS\r\n }\r\n _widgetClass() {\r\n return DX_MENU_BASE_CLASS\r\n }\r\n _focusTarget() {\r\n return this._itemContainer()\r\n }\r\n _clean() {\r\n this.option(\"focusedElement\", null);\r\n super._clean()\r\n }\r\n _supportedKeys() {\r\n return extend(super._supportedKeys(), {\r\n space: () => {\r\n var $item = $(this.option(\"focusedElement\"));\r\n if (!$item.length || !this._isSelectionEnabled()) {\r\n return\r\n }\r\n this.selectItem($item[0])\r\n },\r\n pageUp: noop,\r\n pageDown: noop\r\n })\r\n }\r\n _isSelectionEnabled() {\r\n return this.option(\"selectionMode\") === SINGLE_SELECTION_MODE\r\n }\r\n _init() {\r\n this._activeStateUnit = \".\".concat(ITEM_CLASS);\r\n super._init();\r\n this._renderSelectedItem();\r\n this._initActions()\r\n }\r\n _getTextContainer(itemData) {\r\n var itemText = itemData.text;\r\n var $itemContainer = $(\"\").addClass(DX_MENU_ITEM_CAPTION_CLASS);\r\n var itemContent = isPlainObject(itemData) ? itemText : String(itemData);\r\n return itemText && $itemContainer.text(itemContent)\r\n }\r\n _getPopoutContainer(itemData) {\r\n var items = itemData.items;\r\n var $popOutContainer;\r\n if (items && items.length) {\r\n var $popOutImage = $(\"
\").addClass(DX_MENU_ITEM_POPOUT_CLASS);\r\n $popOutContainer = $(\"\").addClass(DX_MENU_ITEM_POPOUT_CONTAINER_CLASS).append($popOutImage)\r\n }\r\n return $popOutContainer\r\n }\r\n _getDataAdapterOptions() {\r\n return {\r\n rootValue: 0,\r\n multipleSelection: false,\r\n recursiveSelection: false,\r\n recursiveExpansion: false,\r\n searchValue: \"\"\r\n }\r\n }\r\n _selectByItem(selectedItem) {\r\n if (!selectedItem) {\r\n return\r\n }\r\n var nodeToSelect = this._dataAdapter.getNodeByItem(selectedItem);\r\n this._dataAdapter.toggleSelection(nodeToSelect.internalFields.key, true)\r\n }\r\n _renderSelectedItem() {\r\n var selectedKeys = this._dataAdapter.getSelectedNodesKeys();\r\n var selectedKey = selectedKeys.length && selectedKeys[0];\r\n var selectedItem = this.option(\"selectedItem\");\r\n if (!selectedKey) {\r\n this._selectByItem(selectedItem);\r\n return\r\n }\r\n var node = this._dataAdapter.getNodeByKey(selectedKey);\r\n if (false === node.selectable) {\r\n return\r\n }\r\n if (!selectedItem) {\r\n this.option(\"selectedItem\", node.internalFields.item);\r\n return\r\n }\r\n if (selectedItem !== node.internalFields.item) {\r\n this._dataAdapter.toggleSelection(selectedKey, false);\r\n this._selectByItem(selectedItem)\r\n }\r\n }\r\n _initActions() {}\r\n _initMarkup() {\r\n super._initMarkup();\r\n this.option(\"useInkRipple\") && this._renderInkRipple()\r\n }\r\n _renderInkRipple() {\r\n this._inkRipple = render()\r\n }\r\n _toggleActiveState($element, value, e) {\r\n super._toggleActiveState.apply(this, arguments);\r\n if (!this._inkRipple) {\r\n return\r\n }\r\n var config = {\r\n element: $element,\r\n event: e\r\n };\r\n if (value) {\r\n this._inkRipple.showWave(config)\r\n } else {\r\n this._inkRipple.hideWave(config)\r\n }\r\n }\r\n _getShowSubmenuMode() {\r\n var optionValue = this.option(\"showSubmenuMode\");\r\n optionValue = isObject(optionValue) ? optionValue.name : optionValue;\r\n return this._isDesktopDevice() ? optionValue : \"onClick\"\r\n }\r\n _initSelectedItems() {}\r\n _isDesktopDevice() {\r\n return \"desktop\" === devices.real().deviceType\r\n }\r\n _initEditStrategy() {\r\n var Strategy = MenuBaseEditStrategy;\r\n this._editStrategy = new Strategy(this)\r\n }\r\n _addCustomCssClass($element) {\r\n $element.addClass(this.option(\"cssClass\"))\r\n }\r\n _itemWrapperSelector() {\r\n return \".\".concat(DX_MENU_ITEM_WRAPPER_CLASS)\r\n }\r\n _hoverStartHandler(e) {\r\n var $itemElement = this._getItemElementByEventArgs(e);\r\n if (!$itemElement || this._isItemDisabled($itemElement)) {\r\n return\r\n }\r\n e.stopPropagation();\r\n if (\"onHover\" === this._getShowSubmenuMode()) {\r\n clearTimeout(this._showSubmenusTimeout);\r\n this._showSubmenusTimeout = setTimeout(this._showSubmenu.bind(this, $itemElement), this._getSubmenuDelay(\"show\"))\r\n }\r\n }\r\n _getAvailableItems($itemElements) {\r\n return super._getAvailableItems($itemElements).filter((function() {\r\n return \"hidden\" !== $(this).css(\"visibility\")\r\n }))\r\n }\r\n _isItemDisabled($item) {\r\n return this._disabledGetter($item.data(this._itemDataKey()))\r\n }\r\n _showSubmenu($itemElement) {\r\n this._addExpandedClass($itemElement)\r\n }\r\n _addExpandedClass(itemElement) {\r\n $(itemElement).addClass(DX_MENU_ITEM_EXPANDED_CLASS)\r\n }\r\n _getSubmenuDelay(action) {\r\n var {\r\n delay: delay\r\n } = this.option(\"showSubmenuMode\");\r\n if (!isDefined(delay)) {\r\n return DEFAULT_DELAY[action]\r\n }\r\n return isObject(delay) ? delay[action] : delay\r\n }\r\n _getItemElementByEventArgs(eventArgs) {\r\n var $target = $(eventArgs.target);\r\n if ($target.hasClass(this._itemClass()) || $target.get(0) === eventArgs.currentTarget) {\r\n return $target\r\n }\r\n while (!$target.hasClass(this._itemClass())) {\r\n $target = $target.parent();\r\n if ($target.hasClass(\"dx-submenu\")) {\r\n return null\r\n }\r\n }\r\n return $target\r\n }\r\n _hoverEndHandler() {\r\n clearTimeout(this._showSubmenusTimeout)\r\n }\r\n _hasSubmenu(node) {\r\n return node && node.internalFields.childrenKeys.length\r\n }\r\n _renderContentImpl() {\r\n this._renderItems(this._dataAdapter.getRootNodes())\r\n }\r\n _renderItems(nodes, submenuContainer) {\r\n if (nodes.length) {\r\n this.hasIcons = false;\r\n var $nodeContainer = this._renderContainer(this.$element(), submenuContainer);\r\n var firstVisibleIndex = -1;\r\n var nextGroupFirstIndex = -1;\r\n each(nodes, (index, node) => {\r\n var isVisibleNode = false !== node.visible;\r\n if (isVisibleNode && firstVisibleIndex < 0) {\r\n firstVisibleIndex = index\r\n }\r\n var isBeginGroup = firstVisibleIndex < index && (node.beginGroup || index === nextGroupFirstIndex);\r\n if (isBeginGroup) {\r\n nextGroupFirstIndex = isVisibleNode ? index : index + 1\r\n }\r\n if (index === nextGroupFirstIndex && firstVisibleIndex < index) {\r\n this._renderSeparator($nodeContainer)\r\n }\r\n this._renderItem(index, node, $nodeContainer)\r\n });\r\n if (!this.hasIcons) {\r\n $nodeContainer.addClass(DX_MENU_NO_ICONS_CLASS)\r\n }\r\n }\r\n }\r\n _renderContainer($wrapper) {\r\n var $container = $(\"
    \");\r\n this.setAria(\"role\", \"none\", $container);\r\n return $container.appendTo($wrapper).addClass(DX_MENU_ITEMS_CONTAINER_CLASS)\r\n }\r\n _createDOMElement($nodeContainer) {\r\n var $node = $(\"
  • \");\r\n this.setAria(\"role\", \"none\", $node);\r\n return $node.appendTo($nodeContainer).addClass(DX_MENU_ITEM_WRAPPER_CLASS)\r\n }\r\n _renderItem(index, node, $nodeContainer, $nodeElement) {\r\n var items = this.option(\"items\");\r\n var $node = $nodeElement || this._createDOMElement($nodeContainer);\r\n if (items[index + 1] && items[index + 1].beginGroup) {\r\n $node.addClass(DX_MENU_ITEM_LAST_GROUP_ITEM)\r\n }\r\n var $itemFrame = super._renderItem(index, node.internalFields.item, $node);\r\n if (node.internalFields.item === this.option(\"selectedItem\")) {\r\n $itemFrame.addClass(DX_MENU_SELECTED_ITEM_CLASS)\r\n }\r\n $itemFrame.attr(\"tabIndex\", -1);\r\n if (this._hasSubmenu(node)) {\r\n this.setAria(\"haspopup\", \"true\", $itemFrame)\r\n }\r\n }\r\n _renderItemFrame(index, itemData, $itemContainer) {\r\n var $itemFrame = $itemContainer.children(\".\".concat(ITEM_CLASS));\r\n return $itemFrame.length ? $itemFrame : super._renderItemFrame.apply(this, arguments)\r\n }\r\n _refreshItem($item, item) {\r\n var node = this._dataAdapter.getNodeByItem(item);\r\n var index = $item.data(this._itemIndexKey());\r\n var $nodeContainer = $item.closest(\"ul\");\r\n var $nodeElement = $item.closest(\"li\");\r\n this._renderItem(index, node, $nodeContainer, $nodeElement)\r\n }\r\n _addContentClasses(itemData, $itemFrame) {\r\n var hasText = itemData.text ? !!itemData.text.length : false;\r\n var hasIcon = !!itemData.icon;\r\n var hasSubmenu = itemData.items ? !!itemData.items.length : false;\r\n $itemFrame.toggleClass(DX_ITEM_HAS_TEXT, hasText);\r\n $itemFrame.toggleClass(DX_ITEM_HAS_ICON, hasIcon);\r\n if (!this.hasIcons) {\r\n this.hasIcons = hasIcon\r\n }\r\n $itemFrame.toggleClass(DX_ITEM_HAS_SUBMENU, hasSubmenu)\r\n }\r\n _getItemContent($itemFrame) {\r\n var $itemContent = super._getItemContent($itemFrame);\r\n if (!$itemContent.length) {\r\n $itemContent = $itemFrame.children(\".\".concat(DX_ITEM_CONTENT_CLASS))\r\n }\r\n return $itemContent\r\n }\r\n _postprocessRenderItem(args) {\r\n var $itemElement = $(args.itemElement);\r\n var selectedIndex = this._dataAdapter.getSelectedNodesKeys();\r\n if (!selectedIndex.length || !this._selectedGetter(args.itemData) || !this._isItemSelectable(args.itemData)) {\r\n this._setAriaSelected($itemElement, \"false\");\r\n return\r\n }\r\n var node = this._dataAdapter.getNodeByItem(args.itemData);\r\n if (node.internalFields.key === selectedIndex[0]) {\r\n $itemElement.addClass(this._selectedItemClass());\r\n this._setAriaSelected($itemElement, \"true\")\r\n } else {\r\n this._setAriaSelected($itemElement, \"false\")\r\n }\r\n }\r\n _isItemSelectable(item) {\r\n return false !== item.selectable\r\n }\r\n _renderSeparator($itemsContainer) {\r\n $(\"
  • \").appendTo($itemsContainer).addClass(DX_MENU_SEPARATOR_CLASS)\r\n }\r\n _itemClickHandler(e) {\r\n if (e._skipHandling) {\r\n return\r\n }\r\n var itemClickActionHandler = this._createAction(this._updateSubmenuVisibilityOnClick.bind(this));\r\n this._itemDXEventHandler(e, \"onItemClick\", {}, {\r\n afterExecute: itemClickActionHandler.bind(this)\r\n });\r\n e._skipHandling = true\r\n }\r\n _updateSubmenuVisibilityOnClick(actionArgs) {\r\n this._updateSelectedItemOnClick(actionArgs);\r\n if (\"onClick\" === this._getShowSubmenuMode()) {\r\n this._addExpandedClass(actionArgs.args[0].itemElement)\r\n }\r\n }\r\n _updateSelectedItemOnClick(actionArgs) {\r\n var args = actionArgs.args ? actionArgs.args[0] : actionArgs;\r\n if (!this._isItemSelectionAllowed(args.itemData)) {\r\n return\r\n }\r\n var selectedItemKey = this._dataAdapter.getSelectedNodesKeys();\r\n var selectedNode = selectedItemKey.length && this._dataAdapter.getNodeByKey(selectedItemKey[0]);\r\n if (selectedNode) {\r\n this._toggleItemSelection(selectedNode, false)\r\n }\r\n if (!selectedNode || selectedNode.internalFields.item !== args.itemData) {\r\n this.selectItem(args.itemData)\r\n } else {\r\n this._fireSelectionChangeEvent(null, this.option(\"selectedItem\"));\r\n this._setOptionWithoutOptionChange(\"selectedItem\", null)\r\n }\r\n }\r\n _isItemSelectionAllowed(item) {\r\n var isSelectionByClickEnabled = this._isSelectionEnabled() && this.option(\"selectByClick\");\r\n return !this._isContainerEmpty() && isSelectionByClickEnabled && this._isItemSelectable(item) && !this._itemsGetter(item)\r\n }\r\n _isContainerEmpty() {\r\n return this._itemContainer().is(\":empty\")\r\n }\r\n _syncSelectionOptions() {\r\n return asyncNoop()\r\n }\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"showSubmenuMode\":\r\n break;\r\n case \"selectedItem\":\r\n var node = this._dataAdapter.getNodeByItem(args.value);\r\n var selectedKey = this._dataAdapter.getSelectedNodesKeys()[0];\r\n if (node && node.internalFields.key !== selectedKey) {\r\n if (false === node.selectable) {\r\n break\r\n }\r\n if (selectedKey) {\r\n this._toggleItemSelection(this._dataAdapter.getNodeByKey(selectedKey), false)\r\n }\r\n this._toggleItemSelection(node, true);\r\n this._updateSelectedItems()\r\n }\r\n break;\r\n case \"cssClass\":\r\n case \"position\":\r\n case \"selectByClick\":\r\n case \"animation\":\r\n case \"useInkRipple\":\r\n this._invalidate();\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _toggleItemSelection(node, value) {\r\n var itemElement = this._getElementByItem(node.internalFields.item);\r\n itemElement && $(itemElement).toggleClass(DX_MENU_SELECTED_ITEM_CLASS);\r\n this._dataAdapter.toggleSelection(node.internalFields.key, value)\r\n }\r\n _getElementByItem(itemData) {\r\n var result;\r\n each(this._itemElements(), (_, itemElement) => {\r\n if ($(itemElement).data(this._itemDataKey()) !== itemData) {\r\n return true\r\n }\r\n result = itemElement;\r\n return false\r\n });\r\n return result\r\n }\r\n _updateSelectedItems(oldSelection, newSelection) {\r\n if (oldSelection || newSelection) {\r\n this._fireSelectionChangeEvent(newSelection, oldSelection)\r\n }\r\n }\r\n _fireSelectionChangeEvent(addedSelection, removedSelection) {\r\n this._createActionByOption(\"onSelectionChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })({\r\n addedItems: [addedSelection],\r\n removedItems: [removedSelection]\r\n })\r\n }\r\n selectItem(itemElement) {\r\n var itemData = itemElement.nodeType ? this._getItemData(itemElement) : itemElement;\r\n var selectedKey = this._dataAdapter.getSelectedNodesKeys()[0];\r\n var selectedItem = this.option(\"selectedItem\");\r\n var node = this._dataAdapter.getNodeByItem(itemData);\r\n if (node.internalFields.key !== selectedKey) {\r\n if (selectedKey) {\r\n this._toggleItemSelection(this._dataAdapter.getNodeByKey(selectedKey), false)\r\n }\r\n this._toggleItemSelection(node, true);\r\n this._updateSelectedItems(selectedItem, itemData);\r\n this._setOptionWithoutOptionChange(\"selectedItem\", itemData)\r\n }\r\n }\r\n unselectItem(itemElement) {\r\n var itemData = itemElement.nodeType ? this._getItemData(itemElement) : itemElement;\r\n var node = this._dataAdapter.getNodeByItem(itemData);\r\n var selectedItem = this.option(\"selectedItem\");\r\n if (node.internalFields.selected) {\r\n this._toggleItemSelection(node, false);\r\n this._updateSelectedItems(selectedItem, null);\r\n this._setOptionWithoutOptionChange(\"selectedItem\", null)\r\n }\r\n }\r\n}\r\nMenuBase.ItemClass = MenuItem;\r\nexport default MenuBase;\r\n","/**\r\n * DevExtreme (esm/ui/context_menu/ui.context_menu.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport Guid from \"../../core/guid\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isObject,\r\n isRenderer,\r\n isWindow,\r\n isFunction,\r\n isPlainObject,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n contains\r\n} from \"../../core/utils/dom\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n hasWindow,\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nimport fx from \"../../animation/fx\";\r\nimport animationPosition from \"../../animation/position\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport Overlay from \"../overlay/ui.overlay\";\r\nimport MenuBase from \"./ui.menu_base\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n name as contextMenuEventName\r\n} from \"../../events/contextmenu\";\r\nimport holdEvent from \"../../events/hold\";\r\nvar DX_MENU_CLASS = \"dx-menu\";\r\nvar DX_MENU_ITEM_CLASS = DX_MENU_CLASS + \"-item\";\r\nvar DX_MENU_ITEM_EXPANDED_CLASS = DX_MENU_ITEM_CLASS + \"-expanded\";\r\nvar DX_MENU_PHONE_CLASS = \"dx-menu-phone-overlay\";\r\nvar DX_MENU_ITEMS_CONTAINER_CLASS = DX_MENU_CLASS + \"-items-container\";\r\nvar DX_MENU_ITEM_WRAPPER_CLASS = DX_MENU_ITEM_CLASS + \"-wrapper\";\r\nvar DX_SUBMENU_CLASS = \"dx-submenu\";\r\nvar DX_CONTEXT_MENU_CLASS = \"dx-context-menu\";\r\nvar DX_HAS_CONTEXT_MENU_CLASS = \"dx-has-context-menu\";\r\nvar DX_STATE_DISABLED_CLASS = \"dx-state-disabled\";\r\nvar DX_STATE_FOCUSED_CLASS = \"dx-state-focused\";\r\nvar DX_STATE_HOVER_CLASS = \"dx-state-hover\";\r\nvar OVERLAY_CONTENT_CLASS = \"dx-overlay-content\";\r\nvar FOCUS_UP = \"up\";\r\nvar FOCUS_DOWN = \"down\";\r\nvar FOCUS_LEFT = \"left\";\r\nvar FOCUS_RIGHT = \"right\";\r\nvar FOCUS_FIRST = \"first\";\r\nvar FOCUS_LAST = \"last\";\r\nvar ACTIONS = [\"onShowing\", \"onShown\", \"onSubmenuCreated\", \"onHiding\", \"onHidden\", \"onPositioning\", \"onLeftFirstItem\", \"onLeftLastItem\", \"onCloseRootSubmenu\", \"onExpandLastSubmenu\"];\r\nvar LOCAL_SUBMENU_DIRECTIONS = [FOCUS_UP, FOCUS_DOWN, FOCUS_FIRST, FOCUS_LAST];\r\nvar DEFAULT_SHOW_EVENT = \"dxcontextmenu\";\r\nvar window = getWindow();\r\nclass ContextMenu extends MenuBase {\r\n getShowEvent(showEventOption) {\r\n var result = null;\r\n if (isObject(showEventOption)) {\r\n if (null !== showEventOption.name) {\r\n result = showEventOption.name || DEFAULT_SHOW_EVENT\r\n }\r\n } else {\r\n result = showEventOption\r\n }\r\n return result\r\n }\r\n getShowDelay(showEventOption) {\r\n return isObject(showEventOption) && showEventOption.delay\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n showEvent: DEFAULT_SHOW_EVENT,\r\n hideOnOutsideClick: true,\r\n position: {\r\n at: \"top left\",\r\n my: \"top left\"\r\n },\r\n onShowing: null,\r\n onShown: null,\r\n onSubmenuCreated: null,\r\n onHiding: null,\r\n onHidden: null,\r\n onPositioning: null,\r\n submenuDirection: \"auto\",\r\n visible: false,\r\n target: void 0,\r\n onLeftFirstItem: null,\r\n onLeftLastItem: null,\r\n onCloseRootSubmenu: null,\r\n onExpandLastSubmenu: null\r\n })\r\n }\r\n _defaultOptionsRules() {\r\n return super._defaultOptionsRules().concat([{\r\n device: () => !hasWindow(),\r\n options: {\r\n animation: null\r\n }\r\n }])\r\n }\r\n _setDeprecatedOptions() {\r\n super._setDeprecatedOptions();\r\n extend(this._deprecatedOptions, {\r\n closeOnOutsideClick: {\r\n since: \"22.2\",\r\n alias: \"hideOnOutsideClick\"\r\n }\r\n })\r\n }\r\n _initActions() {\r\n this._actions = {};\r\n each(ACTIONS, (index, action) => {\r\n this._actions[action] = this._createActionByOption(action) || noop\r\n })\r\n }\r\n _setOptionsByReference() {\r\n super._setOptionsByReference();\r\n extend(this._optionsByReference, {\r\n animation: true,\r\n selectedItem: true\r\n })\r\n }\r\n _focusInHandler() {}\r\n _itemContainer() {\r\n return this._overlay ? this._overlay.$content() : $()\r\n }\r\n _eventBindingTarget() {\r\n return this._itemContainer()\r\n }\r\n itemsContainer() {\r\n return this._overlay ? this._overlay.$content() : void 0\r\n }\r\n _supportedKeys() {\r\n return extend(super._supportedKeys(), {\r\n space: () => {\r\n var $item = $(this.option(\"focusedElement\"));\r\n this.hide();\r\n if (!$item.length || !this._isSelectionEnabled()) {\r\n return\r\n }\r\n this.selectItem($item[0])\r\n },\r\n escape: this.hide\r\n })\r\n }\r\n _getActiveItem() {\r\n var $availableItems = this._getAvailableItems();\r\n var $focusedItem = $availableItems.filter(\".\".concat(DX_STATE_FOCUSED_CLASS));\r\n var $hoveredItem = $availableItems.filter(\".\".concat(DX_STATE_HOVER_CLASS));\r\n var $hoveredItemContainer = $hoveredItem.closest(\".\".concat(DX_MENU_ITEMS_CONTAINER_CLASS));\r\n if ($hoveredItemContainer.find(\".\".concat(DX_MENU_ITEM_CLASS)).index($focusedItem) >= 0) {\r\n return $focusedItem\r\n }\r\n if ($hoveredItem.length) {\r\n return $hoveredItem\r\n }\r\n return super._getActiveItem()\r\n }\r\n _moveFocus(location) {\r\n var $items = this._getItemsByLocation(location);\r\n var $oldTarget = this._getActiveItem(true);\r\n var $hoveredItem = this.itemsContainer().find(\".\".concat(DX_STATE_HOVER_CLASS));\r\n var $focusedItem = $(this.option(\"focusedElement\"));\r\n var $activeItemHighlighted = !!($focusedItem.length || $hoveredItem.length);\r\n var $newTarget;\r\n switch (location) {\r\n case FOCUS_UP:\r\n $newTarget = $activeItemHighlighted ? this._prevItem($items) : $oldTarget;\r\n this._setFocusedElement($newTarget);\r\n if ($oldTarget.is($items.first())) {\r\n this._actions.onLeftFirstItem($oldTarget)\r\n }\r\n break;\r\n case FOCUS_DOWN:\r\n $newTarget = $activeItemHighlighted ? this._nextItem($items) : $oldTarget;\r\n this._setFocusedElement($newTarget);\r\n if ($oldTarget.is($items.last())) {\r\n this._actions.onLeftLastItem($oldTarget)\r\n }\r\n break;\r\n case FOCUS_RIGHT:\r\n $newTarget = this.option(\"rtlEnabled\") ? this._hideSubmenuHandler() : this._expandSubmenuHandler($items, location);\r\n this._setFocusedElement($newTarget);\r\n break;\r\n case FOCUS_LEFT:\r\n $newTarget = this.option(\"rtlEnabled\") ? this._expandSubmenuHandler($items, location) : this._hideSubmenuHandler();\r\n this._setFocusedElement($newTarget);\r\n break;\r\n case FOCUS_FIRST:\r\n $newTarget = $items.first();\r\n this._setFocusedElement($newTarget);\r\n break;\r\n case FOCUS_LAST:\r\n $newTarget = $items.last();\r\n this._setFocusedElement($newTarget);\r\n break;\r\n default:\r\n return super._moveFocus(location)\r\n }\r\n }\r\n _setFocusedElement($element) {\r\n if ($element && 0 !== $element.length) {\r\n this.option(\"focusedElement\", getPublicElement($element))\r\n }\r\n }\r\n _getItemsByLocation(location) {\r\n var $activeItem = this._getActiveItem(true);\r\n var $items;\r\n if (LOCAL_SUBMENU_DIRECTIONS.includes(location)) {\r\n $items = $activeItem.closest(\".\".concat(DX_MENU_ITEMS_CONTAINER_CLASS)).children().children()\r\n }\r\n $items = this._getAvailableItems($items);\r\n return $items\r\n }\r\n _getAriaTarget() {\r\n return this.$element()\r\n }\r\n _refreshActiveDescendant() {\r\n if (isDefined(this._overlay)) {\r\n var $target = this._overlay.$content();\r\n super._refreshActiveDescendant($target)\r\n }\r\n }\r\n _hideSubmenuHandler() {\r\n var $curItem = this._getActiveItem(true);\r\n var $parentItem = $curItem.parents(\".\".concat(DX_MENU_ITEM_EXPANDED_CLASS)).first();\r\n if ($parentItem.length) {\r\n this._hideSubmenusOnSameLevel($parentItem);\r\n this._hideSubmenu($curItem.closest(\".\".concat(DX_SUBMENU_CLASS)));\r\n return $parentItem\r\n }\r\n this._actions.onCloseRootSubmenu($curItem);\r\n return $curItem\r\n }\r\n _expandSubmenuHandler($items, location) {\r\n var $curItem = this._getActiveItem(true);\r\n var itemData = this._getItemData($curItem);\r\n var node = this._dataAdapter.getNodeByItem(itemData);\r\n var isItemHasSubmenu = this._hasSubmenu(node);\r\n var $submenu = $curItem.children(\".\".concat(DX_SUBMENU_CLASS));\r\n if (isItemHasSubmenu && !$curItem.hasClass(DX_STATE_DISABLED_CLASS)) {\r\n if (!$submenu.length || \"hidden\" === $submenu.css(\"visibility\")) {\r\n this._showSubmenu($curItem)\r\n }\r\n return this._nextItem(this._getItemsByLocation(location))\r\n }\r\n this._actions.onExpandLastSubmenu($curItem);\r\n return\r\n }\r\n _clean() {\r\n if (this._overlay) {\r\n this._overlay.$element().remove();\r\n this._overlay = null\r\n }\r\n this._detachShowContextMenuEvents(this._getTarget());\r\n super._clean()\r\n }\r\n _initMarkup() {\r\n this.$element().addClass(DX_HAS_CONTEXT_MENU_CLASS);\r\n super._initMarkup()\r\n }\r\n _render() {\r\n super._render();\r\n this._renderVisibility(this.option(\"visible\"));\r\n this._addWidgetClass()\r\n }\r\n _renderContentImpl() {\r\n this._detachShowContextMenuEvents(this._getTarget());\r\n this._attachShowContextMenuEvents()\r\n }\r\n _attachKeyboardEvents() {\r\n !this._keyboardListenerId && this._focusTarget().length && super._attachKeyboardEvents()\r\n }\r\n _renderContextMenuOverlay() {\r\n if (this._overlay) {\r\n return\r\n }\r\n var overlayOptions = this._getOverlayOptions();\r\n this._overlay = this._createComponent($(\"
    \").appendTo(this._$element), Overlay, overlayOptions);\r\n var $overlayContent = this._overlay.$content();\r\n $overlayContent.addClass(DX_CONTEXT_MENU_CLASS);\r\n this._addCustomCssClass($overlayContent);\r\n this._addPlatformDependentClass($overlayContent);\r\n this._attachContextMenuEvent()\r\n }\r\n preventShowingDefaultContextMenuAboveOverlay() {\r\n var $itemContainer = this._itemContainer();\r\n var eventName = addNamespace(contextMenuEventName, this.NAME);\r\n eventsEngine.off($itemContainer, eventName, \".\".concat(DX_SUBMENU_CLASS));\r\n eventsEngine.on($itemContainer, eventName, \".\".concat(DX_SUBMENU_CLASS), (e => {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n eventsEngine.off($itemContainer, eventName, \".\".concat(DX_SUBMENU_CLASS))\r\n }).bind(this))\r\n }\r\n _itemContextMenuHandler(e) {\r\n super._itemContextMenuHandler(e);\r\n e.stopPropagation()\r\n }\r\n _addPlatformDependentClass($element) {\r\n if (devices.current().phone) {\r\n $element.addClass(DX_MENU_PHONE_CLASS)\r\n }\r\n }\r\n _detachShowContextMenuEvents(target) {\r\n var showEvent = this.getShowEvent(this.option(\"showEvent\"));\r\n if (!showEvent) {\r\n return\r\n }\r\n var eventName = addNamespace(showEvent, this.NAME);\r\n if (this._showContextMenuEventHandler) {\r\n eventsEngine.off(domAdapter.getDocument(), eventName, target, this._showContextMenuEventHandler)\r\n } else {\r\n eventsEngine.off($(target), eventName)\r\n }\r\n }\r\n _attachShowContextMenuEvents() {\r\n var target = this._getTarget();\r\n var showEvent = this.getShowEvent(this.option(\"showEvent\"));\r\n if (!showEvent) {\r\n return\r\n }\r\n var eventName = addNamespace(showEvent, this.NAME);\r\n var contextMenuAction = this._createAction(e => {\r\n var delay = this.getShowDelay(this.option(\"showEvent\"));\r\n if (delay) {\r\n setTimeout(() => this._show(e.event), delay)\r\n } else {\r\n this._show(e.event)\r\n }\r\n }, {\r\n validatingTargetName: \"target\"\r\n });\r\n var handler = e => contextMenuAction({\r\n event: e,\r\n target: $(e.currentTarget)\r\n });\r\n contextMenuAction = this._createAction(contextMenuAction);\r\n if (isRenderer(target) || target.nodeType || isWindow(target)) {\r\n this._showContextMenuEventHandler = void 0;\r\n eventsEngine.on(target, eventName, handler)\r\n } else {\r\n this._showContextMenuEventHandler = handler;\r\n eventsEngine.on(domAdapter.getDocument(), eventName, target, this._showContextMenuEventHandler)\r\n }\r\n }\r\n _hoverEndHandler(e) {\r\n super._hoverEndHandler(e);\r\n e.stopPropagation()\r\n }\r\n _renderDimensions() {}\r\n _renderContainer($wrapper, submenuContainer) {\r\n var $holder = submenuContainer || this._itemContainer();\r\n $wrapper = $(\"
    \");\r\n $wrapper.appendTo($holder).addClass(DX_SUBMENU_CLASS).css(\"visibility\", submenuContainer ? \"hidden\" : \"visible\");\r\n if (!$wrapper.parent().hasClass(OVERLAY_CONTENT_CLASS)) {\r\n this._addCustomCssClass($wrapper)\r\n }\r\n var $itemsContainer = super._renderContainer($wrapper);\r\n if (submenuContainer) {\r\n return $itemsContainer\r\n }\r\n if (this.option(\"width\")) {\r\n return $itemsContainer.css(\"minWidth\", this.option(\"width\"))\r\n }\r\n if (this.option(\"height\")) {\r\n return $itemsContainer.css(\"minHeight\", this.option(\"height\"))\r\n }\r\n return $itemsContainer\r\n }\r\n _renderSubmenuItems(node, $itemFrame) {\r\n this._renderItems(this._getChildNodes(node), $itemFrame);\r\n this._actions.onSubmenuCreated({\r\n itemElement: getPublicElement($itemFrame),\r\n itemData: node.internalFields.item,\r\n submenuElement: getPublicElement($itemFrame.children(\".\".concat(DX_SUBMENU_CLASS)))\r\n })\r\n }\r\n _getOverlayOptions() {\r\n var position = this.option(\"position\");\r\n var overlayOptions = {\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n animation: this.option(\"animation\"),\r\n innerOverlay: true,\r\n hideOnOutsideClick: e => this._hideOnOutsideClickHandler(e),\r\n propagateOutsideClick: true,\r\n hideOnParentScroll: true,\r\n deferRendering: false,\r\n position: {\r\n at: position.at,\r\n my: position.my,\r\n of: this._getTarget(),\r\n collision: \"flipfit\"\r\n },\r\n shading: false,\r\n showTitle: false,\r\n height: \"auto\",\r\n width: \"auto\",\r\n onShown: this._overlayShownActionHandler.bind(this),\r\n onHiding: this._overlayHidingActionHandler.bind(this),\r\n onHidden: this._overlayHiddenActionHandler.bind(this),\r\n visualContainer: window\r\n };\r\n return overlayOptions\r\n }\r\n _overlayShownActionHandler(arg) {\r\n this._actions.onShown(arg)\r\n }\r\n _overlayHidingActionHandler(arg) {\r\n this._actions.onHiding(arg);\r\n if (!arg.cancel) {\r\n this._hideAllShownSubmenus();\r\n this._setOptionWithoutOptionChange(\"visible\", false)\r\n }\r\n }\r\n _overlayHiddenActionHandler(arg) {\r\n this._actions.onHidden(arg)\r\n }\r\n _shouldHideOnOutsideClick(e) {\r\n var {\r\n closeOnOutsideClick: closeOnOutsideClick,\r\n hideOnOutsideClick: hideOnOutsideClick\r\n } = this.option();\r\n if (isFunction(hideOnOutsideClick)) {\r\n return hideOnOutsideClick(e)\r\n } else if (isFunction(closeOnOutsideClick)) {\r\n return closeOnOutsideClick(e)\r\n } else {\r\n return hideOnOutsideClick || closeOnOutsideClick\r\n }\r\n }\r\n _hideOnOutsideClickHandler(e) {\r\n if (!this._shouldHideOnOutsideClick(e)) {\r\n return false\r\n }\r\n if (domAdapter.isDocument(e.target)) {\r\n return true\r\n }\r\n var $activeItemContainer = this._getActiveItemsContainer(e.target);\r\n var $itemContainers = this._getItemsContainers();\r\n var $clickedItem = this._searchActiveItem(e.target);\r\n var $rootItem = this.$element().parents(\".\".concat(DX_MENU_ITEM_CLASS));\r\n var isRootItemClicked = $clickedItem[0] === $rootItem[0] && $clickedItem.length && $rootItem.length;\r\n var isInnerOverlayClicked = this._isIncludeOverlay($activeItemContainer, $itemContainers) && $clickedItem.length;\r\n if (isInnerOverlayClicked || isRootItemClicked) {\r\n if (\"onClick\" === this._getShowSubmenuMode()) {\r\n this._hideAllShownChildSubmenus($clickedItem)\r\n }\r\n return false\r\n }\r\n return true\r\n }\r\n _getActiveItemsContainer(target) {\r\n return $(target).closest(\".\".concat(DX_MENU_ITEMS_CONTAINER_CLASS))\r\n }\r\n _getItemsContainers() {\r\n return this._overlay.$content().find(\".\".concat(DX_MENU_ITEMS_CONTAINER_CLASS))\r\n }\r\n _searchActiveItem(target) {\r\n return $(target).closest(\".\".concat(DX_MENU_ITEM_CLASS)).eq(0)\r\n }\r\n _isIncludeOverlay($activeOverlay, $allOverlays) {\r\n var isSame = false;\r\n each($allOverlays, (index, $overlay) => {\r\n if ($activeOverlay.is($overlay) && !isSame) {\r\n isSame = true\r\n }\r\n });\r\n return isSame\r\n }\r\n _hideAllShownChildSubmenus($clickedItem) {\r\n var $submenuElements = $clickedItem.find(\".\".concat(DX_SUBMENU_CLASS));\r\n var shownSubmenus = extend([], this._shownSubmenus);\r\n if ($submenuElements.length > 0) {\r\n each(shownSubmenus, (index, $submenu) => {\r\n var $context = this._searchActiveItem($submenu.context).parent();\r\n if ($context.parent().is($clickedItem.parent().parent()) && !$context.is($clickedItem.parent())) {\r\n this._hideSubmenu($submenu)\r\n }\r\n })\r\n }\r\n }\r\n _showSubmenu($item) {\r\n var node = this._dataAdapter.getNodeByItem(this._getItemData($item));\r\n this._hideSubmenusOnSameLevel($item);\r\n if (!this._hasSubmenu(node)) {\r\n return\r\n }\r\n var $submenu = $item.children(\".\".concat(DX_SUBMENU_CLASS));\r\n var isSubmenuRendered = $submenu.length;\r\n super._showSubmenu($item);\r\n if (!isSubmenuRendered) {\r\n this._renderSubmenuItems(node, $item)\r\n }\r\n if (!this._isSubmenuVisible($submenu)) {\r\n this._drawSubmenu($item)\r\n }\r\n }\r\n _hideSubmenusOnSameLevel($item) {\r\n var $expandedItems = $item.parent(\".\".concat(DX_MENU_ITEM_WRAPPER_CLASS)).siblings().find(\".\".concat(DX_MENU_ITEM_EXPANDED_CLASS));\r\n if ($expandedItems.length) {\r\n $expandedItems.removeClass(DX_MENU_ITEM_EXPANDED_CLASS);\r\n this._hideSubmenu($expandedItems.find(\".\".concat(DX_SUBMENU_CLASS)))\r\n }\r\n }\r\n _hideSubmenuGroup($submenu) {\r\n if (this._isSubmenuVisible($submenu)) {\r\n this._hideSubmenuCore($submenu)\r\n }\r\n }\r\n _isSubmenuVisible($submenu) {\r\n return \"visible\" === $submenu.css(\"visibility\")\r\n }\r\n _drawSubmenu($itemElement) {\r\n var animation = this.option(\"animation\") ? this.option(\"animation\").show : {};\r\n var $submenu = $itemElement.children(\".\".concat(DX_SUBMENU_CLASS));\r\n var submenuPosition = this._getSubmenuPosition($itemElement);\r\n if (this._overlay && this._overlay.option(\"visible\")) {\r\n if (!isDefined(this._shownSubmenus)) {\r\n this._shownSubmenus = []\r\n }\r\n if (!this._shownSubmenus.includes($submenu)) {\r\n this._shownSubmenus.push($submenu)\r\n }\r\n if (animation) {\r\n fx.stop($submenu)\r\n }\r\n animationPosition.setup($submenu, submenuPosition);\r\n if (animation) {\r\n if (isPlainObject(animation.to)) {\r\n animation.to.position = submenuPosition\r\n }\r\n this._animate($submenu, animation)\r\n }\r\n $submenu.css(\"visibility\", \"visible\")\r\n }\r\n }\r\n _animate($container, options) {\r\n fx.animate($container, options)\r\n }\r\n _getSubmenuPosition($rootItem) {\r\n var submenuDirection = this.option(\"submenuDirection\").toLowerCase();\r\n var $rootItemWrapper = $rootItem.parent(\".\".concat(DX_MENU_ITEM_WRAPPER_CLASS));\r\n var position = {\r\n collision: \"flip\",\r\n of: $rootItemWrapper,\r\n offset: {\r\n h: 0,\r\n v: -1\r\n }\r\n };\r\n switch (submenuDirection) {\r\n case \"left\":\r\n position.at = \"left top\";\r\n position.my = \"right top\";\r\n break;\r\n case \"right\":\r\n position.at = \"right top\";\r\n position.my = \"left top\";\r\n break;\r\n default:\r\n if (this.option(\"rtlEnabled\")) {\r\n position.at = \"left top\";\r\n position.my = \"right top\"\r\n } else {\r\n position.at = \"right top\";\r\n position.my = \"left top\"\r\n }\r\n }\r\n return position\r\n }\r\n _updateSubmenuVisibilityOnClick(actionArgs) {\r\n if (!actionArgs.args.length) {\r\n return\r\n }\r\n var itemData = actionArgs.args[0].itemData;\r\n var node = this._dataAdapter.getNodeByItem(itemData);\r\n if (!node) {\r\n return\r\n }\r\n var $itemElement = $(actionArgs.args[0].itemElement);\r\n var $submenu = $itemElement.find(\".\".concat(DX_SUBMENU_CLASS));\r\n var shouldRenderSubmenu = this._hasSubmenu(node) && !$submenu.length;\r\n if (shouldRenderSubmenu) {\r\n this._renderSubmenuItems(node, $itemElement);\r\n $submenu = $itemElement.find(\".\".concat(DX_SUBMENU_CLASS))\r\n }\r\n if ($itemElement.context === $submenu.context && \"visible\" === $submenu.css(\"visibility\")) {\r\n return\r\n }\r\n this._updateSelectedItemOnClick(actionArgs);\r\n var notCloseMenuOnItemClick = itemData && false === itemData.closeMenuOnClick;\r\n if (!itemData || itemData.disabled || notCloseMenuOnItemClick) {\r\n return\r\n }\r\n if (0 === $submenu.length) {\r\n var $prevSubmenu = $($itemElement.parents(\".\".concat(DX_SUBMENU_CLASS))[0]);\r\n this._hideSubmenu($prevSubmenu);\r\n if (!actionArgs.canceled && this._overlay && this._overlay.option(\"visible\")) {\r\n this.option(\"visible\", false)\r\n }\r\n } else {\r\n if (this._shownSubmenus && this._shownSubmenus.length > 0) {\r\n if (this._shownSubmenus[0].is($submenu)) {\r\n this._hideSubmenu($submenu)\r\n }\r\n }\r\n this._showSubmenu($itemElement)\r\n }\r\n }\r\n _hideSubmenu($curSubmenu) {\r\n var shownSubmenus = extend([], this._shownSubmenus);\r\n each(shownSubmenus, (index, $submenu) => {\r\n if ($curSubmenu.is($submenu) || contains($curSubmenu[0], $submenu[0])) {\r\n $submenu.parent().removeClass(DX_MENU_ITEM_EXPANDED_CLASS);\r\n this._hideSubmenuCore($submenu)\r\n }\r\n })\r\n }\r\n _hideSubmenuCore($submenu) {\r\n var index = this._shownSubmenus.indexOf($submenu);\r\n var animation = this.option(\"animation\") ? this.option(\"animation\").hide : null;\r\n if (index >= 0) {\r\n this._shownSubmenus.splice(index, 1)\r\n }\r\n this._stopAnimate($submenu);\r\n animation && this._animate($submenu, animation);\r\n $submenu.css(\"visibility\", \"hidden\")\r\n }\r\n _stopAnimate($container) {\r\n fx.stop($container, true)\r\n }\r\n _hideAllShownSubmenus() {\r\n var shownSubmenus = extend([], this._shownSubmenus);\r\n var $expandedItems = this._overlay.$content().find(\".\".concat(DX_MENU_ITEM_EXPANDED_CLASS));\r\n $expandedItems.removeClass(DX_MENU_ITEM_EXPANDED_CLASS);\r\n each(shownSubmenus, (_, $submenu) => {\r\n this._hideSubmenu($submenu)\r\n })\r\n }\r\n _visibilityChanged(visible) {\r\n if (visible) {\r\n this._renderContentImpl()\r\n }\r\n }\r\n _optionChanged(args) {\r\n if (ACTIONS.includes(args.name)) {\r\n this._initActions();\r\n return\r\n }\r\n switch (args.name) {\r\n case \"visible\":\r\n this._renderVisibility(args.value);\r\n break;\r\n case \"showEvent\":\r\n case \"position\":\r\n case \"submenuDirection\":\r\n this._invalidate();\r\n break;\r\n case \"target\":\r\n args.previousValue && this._detachShowContextMenuEvents(args.previousValue);\r\n this._invalidate();\r\n break;\r\n case \"closeOnOutsideClick\":\r\n case \"hideOnOutsideClick\":\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _renderVisibility(showing) {\r\n return showing ? this._show() : this._hide()\r\n }\r\n _toggleVisibility() {}\r\n _show(event) {\r\n var args = {\r\n jQEvent: event\r\n };\r\n var promise = (new Deferred).reject().promise();\r\n this._actions.onShowing(args);\r\n if (args.cancel) {\r\n return promise\r\n }\r\n var position = this._positionContextMenu(event);\r\n if (position) {\r\n var _event$originalEvent;\r\n if (!this._overlay) {\r\n this._renderContextMenuOverlay();\r\n this._overlay.$content().addClass(this._widgetClass());\r\n this._renderFocusState();\r\n this._attachHoverEvents();\r\n this._attachClickEvent();\r\n this._renderItems(this._dataAdapter.getRootNodes())\r\n }\r\n this._setOptionWithoutOptionChange(\"visible\", true);\r\n this._overlay.option(\"position\", position);\r\n promise = this._overlay.show();\r\n event && event.stopPropagation();\r\n this._setAriaAttributes();\r\n if ((null === event || void 0 === event ? void 0 : null === (_event$originalEvent = event.originalEvent) || void 0 === _event$originalEvent ? void 0 : _event$originalEvent.type) === holdEvent.name) {\r\n this.preventShowingDefaultContextMenuAboveOverlay()\r\n }\r\n }\r\n return promise\r\n }\r\n _setAriaAttributes() {\r\n this._overlayContentId = \"dx-\".concat(new Guid);\r\n this.setAria(\"owns\", this._overlayContentId);\r\n this.setAria({\r\n id: this._overlayContentId,\r\n role: \"menu\"\r\n }, this._overlay.$content())\r\n }\r\n _cleanAriaAttributes() {\r\n this._overlay && this.setAria(\"id\", null, this._overlay.$content());\r\n this.setAria(\"owns\", void 0)\r\n }\r\n _getTarget() {\r\n return this.option(\"target\") || this.option(\"position\").of || $(domAdapter.getDocument())\r\n }\r\n _getContextMenuPosition() {\r\n return extend({}, this.option(\"position\"), {\r\n of: this._getTarget()\r\n })\r\n }\r\n _positionContextMenu(jQEvent) {\r\n var position = this._getContextMenuPosition();\r\n var isInitialPosition = this._isInitialOptionValue(\"position\");\r\n var positioningAction = this._createActionByOption(\"onPositioning\", actionArgs);\r\n if (jQEvent && jQEvent.preventDefault && isInitialPosition) {\r\n position.of = jQEvent\r\n }\r\n var actionArgs = {\r\n position: position,\r\n event: jQEvent\r\n };\r\n positioningAction(actionArgs);\r\n if (actionArgs.cancel) {\r\n position = null\r\n } else if (actionArgs.event) {\r\n actionArgs.event.cancel = true;\r\n jQEvent.preventDefault()\r\n }\r\n return position\r\n }\r\n _refresh() {\r\n if (!hasWindow()) {\r\n super._refresh()\r\n } else if (this._overlay) {\r\n var lastPosition = this._overlay.option(\"position\");\r\n super._refresh();\r\n this._overlay && this._overlay.option(\"position\", lastPosition)\r\n } else {\r\n super._refresh()\r\n }\r\n }\r\n _hide() {\r\n var promise;\r\n if (this._overlay) {\r\n promise = this._overlay.hide();\r\n this._setOptionWithoutOptionChange(\"visible\", false)\r\n }\r\n this._cleanAriaAttributes();\r\n this.option(\"focusedElement\", null);\r\n return promise || (new Deferred).reject().promise()\r\n }\r\n toggle(showing) {\r\n var visible = this.option(\"visible\");\r\n showing = void 0 === showing ? !visible : showing;\r\n return this._renderVisibility(showing)\r\n }\r\n show() {\r\n return this.toggle(true)\r\n }\r\n hide() {\r\n return this.toggle(false)\r\n }\r\n}\r\nregisterComponent(\"dxContextMenu\", ContextMenu);\r\nexport default ContextMenu;\r\n","/**\r\n * DevExtreme (esm/ui/context_menu.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport ContextMenu from \"./context_menu/ui.context_menu\";\r\nexport default ContextMenu;\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.context_menu.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport modules from \"./ui.grid_core.modules\";\r\nimport ContextMenu from \"../context_menu\";\r\nvar CONTEXT_MENU = \"dx-context-menu\";\r\nvar viewName = {\r\n columnHeadersView: \"header\",\r\n rowsView: \"content\",\r\n footerView: \"footer\",\r\n headerPanel: \"headerPanel\"\r\n};\r\nvar VIEW_NAMES = [\"columnHeadersView\", \"rowsView\", \"footerView\", \"headerPanel\"];\r\nvar ContextMenuController = modules.ViewController.inherit({\r\n init: function() {\r\n this.createAction(\"onContextMenuPreparing\")\r\n },\r\n getContextMenuItems: function(dxEvent) {\r\n if (!dxEvent) {\r\n return false\r\n }\r\n var that = this;\r\n var $targetElement = $(dxEvent.target);\r\n var $element;\r\n var $targetRowElement;\r\n var $targetCellElement;\r\n var menuItems;\r\n each(VIEW_NAMES, (function() {\r\n var view = that.getView(this);\r\n $element = view && view.element();\r\n if ($element && ($element.is($targetElement) || $element.find($targetElement).length)) {\r\n var _rowOptions$cells, _rowOptions$cells$col;\r\n $targetCellElement = $targetElement.closest(\".dx-row > td, .dx-row > tr\");\r\n $targetRowElement = $targetCellElement.parent();\r\n var rowIndex = view.getRowIndex($targetRowElement);\r\n var columnIndex = $targetCellElement[0] && $targetCellElement[0].cellIndex;\r\n var rowOptions = $targetRowElement.data(\"options\");\r\n var options = {\r\n event: dxEvent,\r\n targetElement: getPublicElement($targetElement),\r\n target: viewName[this],\r\n rowIndex: rowIndex,\r\n row: view._getRows()[rowIndex],\r\n columnIndex: columnIndex,\r\n column: null === rowOptions || void 0 === rowOptions ? void 0 : null === (_rowOptions$cells = rowOptions.cells) || void 0 === _rowOptions$cells ? void 0 : null === (_rowOptions$cells$col = _rowOptions$cells[columnIndex]) || void 0 === _rowOptions$cells$col ? void 0 : _rowOptions$cells$col.column\r\n };\r\n options.items = view.getContextMenuItems && view.getContextMenuItems(options);\r\n that.executeAction(\"onContextMenuPreparing\", options);\r\n that._contextMenuPrepared(options);\r\n menuItems = options.items;\r\n if (menuItems) {\r\n return false\r\n }\r\n }\r\n }));\r\n return menuItems\r\n },\r\n _contextMenuPrepared: noop\r\n});\r\nvar ContextMenuView = modules.View.inherit({\r\n _renderCore: function() {\r\n var that = this;\r\n var $element = that.element().addClass(CONTEXT_MENU);\r\n this.setAria(\"role\", \"presentation\", $element);\r\n this._createComponent($element, ContextMenu, {\r\n onPositioning: function(actionArgs) {\r\n var event = actionArgs.event;\r\n var contextMenuInstance = actionArgs.component;\r\n var items = that.getController(\"contextMenu\").getContextMenuItems(event);\r\n if (items) {\r\n contextMenuInstance.option(\"items\", items);\r\n event.stopPropagation()\r\n } else {\r\n actionArgs.cancel = true\r\n }\r\n },\r\n onItemClick: function(params) {\r\n params.itemData.onItemClick && params.itemData.onItemClick(params)\r\n },\r\n cssClass: that.getWidgetContainerClass(),\r\n target: that.component.$element()\r\n })\r\n }\r\n});\r\nexport var contextMenuModule = {\r\n defaultOptions: function() {\r\n return {\r\n onContextMenuPreparing: null\r\n }\r\n },\r\n controllers: {\r\n contextMenu: ContextMenuController\r\n },\r\n views: {\r\n contextMenuView: ContextMenuView\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.context_menu.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport treeListCore from \"./ui.data_grid.core\";\r\nimport {\r\n contextMenuModule\r\n} from \"../grid_core/ui.grid_core.context_menu\";\r\ntreeListCore.registerModule(\"contextMenu\", contextMenuModule);\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.error_handling.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport modules from \"./ui.grid_core.modules\";\r\nvar ERROR_ROW_CLASS = \"dx-error-row\";\r\nvar ERROR_MESSAGE_CLASS = \"dx-error-message\";\r\nvar ERROR_CLOSEBUTTON_CLASS = \"dx-closebutton\";\r\nvar ACTION_CLASS = \"action\";\r\nvar ErrorHandlingController = modules.ViewController.inherit({\r\n init: function() {\r\n this._columnHeadersView = this.getView(\"columnHeadersView\");\r\n this._rowsView = this.getView(\"rowsView\")\r\n },\r\n _createErrorRow: function(error, $tableElements) {\r\n var that = this;\r\n var $errorRow;\r\n var $closeButton;\r\n var $errorMessage = this._renderErrorMessage(error);\r\n if ($tableElements) {\r\n $errorRow = $(\"
\").addClass(ERROR_ROW_CLASS);\r\n $closeButton = $(\"
\").addClass(ERROR_CLOSEBUTTON_CLASS).addClass(that.addWidgetPrefix(ACTION_CLASS));\r\n eventsEngine.on($closeButton, clickEventName, that.createAction((function(args) {\r\n var e = args.event;\r\n var $errorRow;\r\n var errorRowIndex = $(e.currentTarget).closest(\".\" + ERROR_ROW_CLASS).index();\r\n e.stopPropagation();\r\n each($tableElements, (function(_, tableElement) {\r\n $errorRow = $(tableElement).children(\"tbody\").children(\"tr\").eq(errorRowIndex);\r\n that.removeErrorRow($errorRow)\r\n }));\r\n that.getController(\"resizing\") && that.getController(\"resizing\").fireContentReadyAction()\r\n })));\r\n $(\"
\").attr({\r\n colSpan: that.getController(\"columns\").getVisibleColumns().length,\r\n role: \"presentation\"\r\n }).prepend($closeButton).append($errorMessage).appendTo($errorRow);\r\n return $errorRow\r\n }\r\n return $errorMessage\r\n },\r\n _renderErrorMessage: function(error) {\r\n var message = error.url ? error.message.replace(error.url, \"\") : error.message || error;\r\n var $message = $(\"
\").addClass(ERROR_MESSAGE_CLASS).text(message);\r\n if (error.url) {\r\n $(\"\").attr(\"href\", error.url).text(error.url).appendTo($message)\r\n }\r\n return $message\r\n },\r\n renderErrorRow: function(error, rowIndex, $popupContent) {\r\n var that = this;\r\n var $errorMessageElement;\r\n var $firstErrorRow;\r\n if ($popupContent) {\r\n $popupContent.find(\".\" + ERROR_MESSAGE_CLASS).remove();\r\n $errorMessageElement = that._createErrorRow(error);\r\n $popupContent.prepend($errorMessageElement);\r\n return $errorMessageElement\r\n }\r\n var viewElement = rowIndex >= 0 || !that._columnHeadersView.isVisible() ? that._rowsView : that._columnHeadersView;\r\n var $tableElements = viewElement.getTableElements();\r\n each($tableElements, (function(_, tableElement) {\r\n $errorMessageElement = that._createErrorRow(error, $tableElements);\r\n $firstErrorRow = $firstErrorRow || $errorMessageElement;\r\n if (rowIndex >= 0) {\r\n var $row = viewElement._getRowElements($(tableElement)).eq(rowIndex);\r\n that.removeErrorRow($row.next());\r\n $errorMessageElement.insertAfter($row)\r\n } else {\r\n var $tbody = $(tableElement).children(\"tbody\");\r\n var rowElements = $tbody.children(\"tr\");\r\n if (that._columnHeadersView.isVisible()) {\r\n that.removeErrorRow(rowElements.last());\r\n $(tableElement).append($errorMessageElement)\r\n } else {\r\n that.removeErrorRow(rowElements.first());\r\n $tbody.first().prepend($errorMessageElement)\r\n }\r\n }\r\n }));\r\n var resizingController = that.getController(\"resizing\");\r\n resizingController && resizingController.fireContentReadyAction();\r\n return $firstErrorRow\r\n },\r\n removeErrorRow: function($row) {\r\n if (!$row) {\r\n var $columnHeaders = this._columnHeadersView && this._columnHeadersView.element();\r\n $row = $columnHeaders && $columnHeaders.find(\".\" + ERROR_ROW_CLASS);\r\n if (!$row || !$row.length) {\r\n var $rowsViewElement = this._rowsView.element();\r\n $row = $rowsViewElement && $rowsViewElement.find(\".\" + ERROR_ROW_CLASS)\r\n }\r\n }\r\n $row && $row.hasClass(ERROR_ROW_CLASS) && $row.remove()\r\n },\r\n optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"errorRowEnabled\":\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport var errorHandlingModule = {\r\n defaultOptions: function() {\r\n return {\r\n errorRowEnabled: true\r\n }\r\n },\r\n controllers: {\r\n errorHandling: ErrorHandlingController\r\n },\r\n extenders: {\r\n controllers: {\r\n data: {\r\n init: function() {\r\n var that = this;\r\n var errorHandlingController = that.getController(\"errorHandling\");\r\n that.callBase();\r\n that.dataErrorOccurred.add((function(error, $popupContent) {\r\n if (that.option(\"errorRowEnabled\")) {\r\n errorHandlingController.renderErrorRow(error, void 0, $popupContent)\r\n }\r\n }));\r\n that.changed.add((function(e) {\r\n if (e && \"loadError\" === e.changeType) {\r\n return\r\n }\r\n var errorHandlingController = that.getController(\"errorHandling\");\r\n var editingController = that.getController(\"editing\");\r\n if (editingController && !editingController.hasChanges()) {\r\n errorHandlingController && errorHandlingController.removeErrorRow()\r\n }\r\n }))\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.error_handling.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n errorHandlingModule\r\n} from \"../grid_core/ui.grid_core.error_handling\";\r\ngridCore.registerModule(\"errorHandling\", errorHandlingModule);\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.grid_view.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterWidth,\r\n getInnerWidth,\r\n getWidth,\r\n getHeight,\r\n setHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport modules from \"./ui.grid_core.modules\";\r\nimport {\r\n deferRender,\r\n deferUpdate\r\n} from \"../../core/utils/common\";\r\nimport {\r\n hasWindow,\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n isString,\r\n isDefined,\r\n isNumeric\r\n} from \"../../core/utils/type\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../core/utils/position\";\r\nimport gridCoreUtils from \"./ui.grid_core.utils\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport * as accessibility from \"../shared/accessibility\";\r\nimport browser from \"../../core/utils/browser\";\r\nvar BORDERS_CLASS = \"borders\";\r\nvar TABLE_FIXED_CLASS = \"table-fixed\";\r\nvar IMPORTANT_MARGIN_CLASS = \"important-margin\";\r\nvar GRIDBASE_CONTAINER_CLASS = \"dx-gridbase-container\";\r\nvar HIDDEN_COLUMNS_WIDTH = \"adaptiveHidden\";\r\nvar VIEW_NAMES = [\"columnsSeparatorView\", \"blockSeparatorView\", \"trackerView\", \"headerPanel\", \"columnHeadersView\", \"rowsView\", \"footerView\", \"columnChooserView\", \"filterPanelView\", \"pagerView\", \"draggingHeaderView\", \"contextMenuView\", \"errorView\", \"headerFilterView\", \"filterBuilderView\"];\r\nvar isPercentWidth = function(width) {\r\n return isString(width) && \"%\" === width.slice(-1)\r\n};\r\nvar isPixelWidth = function(width) {\r\n return isString(width) && \"px\" === width.slice(-2)\r\n};\r\nvar getContainerHeight = function($container) {\r\n var clientHeight = $container.get(0).clientHeight;\r\n var paddingTop = parseFloat($container.css(\"paddingTop\"));\r\n var paddingBottom = parseFloat($container.css(\"paddingBottom\"));\r\n return clientHeight - paddingTop - paddingBottom\r\n};\r\nvar calculateFreeWidth = function(that, widths) {\r\n var contentWidth = that._rowsView.contentWidth();\r\n var totalWidth = that._getTotalWidth(widths, contentWidth);\r\n return contentWidth - totalWidth\r\n};\r\nvar calculateFreeWidthWithCurrentMinWidth = function(that, columnIndex, currentMinWidth, widths) {\r\n return calculateFreeWidth(that, widths.map((function(width, index) {\r\n return index === columnIndex ? currentMinWidth : width\r\n })))\r\n};\r\nvar restoreFocus = function(focusedElement, selectionRange) {\r\n accessibility.hiddenFocus(focusedElement);\r\n gridCoreUtils.setSelectionRange(focusedElement, selectionRange)\r\n};\r\nvar ResizingController = modules.ViewController.inherit({\r\n _initPostRenderHandlers: function() {\r\n var dataController = this._dataController;\r\n if (!this._refreshSizesHandler) {\r\n this._refreshSizesHandler = e => {\r\n dataController.changed.remove(this._refreshSizesHandler);\r\n var templateDeferreds = e && e.templateDeferreds || [];\r\n when.apply(this, templateDeferreds).done(() => {\r\n this._refreshSizes(e)\r\n })\r\n };\r\n dataController.changed.add(() => {\r\n dataController.changed.add(this._refreshSizesHandler)\r\n })\r\n }\r\n },\r\n _refreshSizes: function(e) {\r\n var resizeDeferred;\r\n var that = this;\r\n var changeType = e && e.changeType;\r\n var isDelayed = e && e.isDelayed;\r\n var items = that._dataController.items();\r\n if (!e || \"refresh\" === changeType || \"prepend\" === changeType || \"append\" === changeType) {\r\n if (!isDelayed) {\r\n resizeDeferred = that.resize()\r\n }\r\n } else if (\"update\" === changeType) {\r\n var _e$changeTypes;\r\n if (0 === (null === (_e$changeTypes = e.changeTypes) || void 0 === _e$changeTypes ? void 0 : _e$changeTypes.length)) {\r\n return\r\n }\r\n if ((items.length > 1 || \"insert\" !== e.changeTypes[0]) && !(0 === items.length && \"remove\" === e.changeTypes[0]) && !e.needUpdateDimensions) {\r\n deferUpdate(() => deferRender(() => deferUpdate(() => {\r\n that._setScrollerSpacing(that._hasHeight);\r\n that._rowsView.resize()\r\n })))\r\n } else {\r\n resizeDeferred = that.resize()\r\n }\r\n }\r\n if (changeType && \"updateSelection\" !== changeType && \"updateFocusedRow\" !== changeType && \"pageIndex\" !== changeType && !isDelayed) {\r\n when(resizeDeferred).done((function() {\r\n that._setAriaRowColCount();\r\n that.fireContentReadyAction()\r\n }))\r\n }\r\n },\r\n fireContentReadyAction: function() {\r\n this.component._fireContentReadyAction()\r\n },\r\n _setAriaRowColCount: function() {\r\n var component = this.component;\r\n component.setAria({\r\n rowCount: this._dataController.totalItemsCount(),\r\n colCount: component.columnCount()\r\n }, component.$element().children(\".\" + GRIDBASE_CONTAINER_CLASS))\r\n },\r\n _getBestFitWidths: function() {\r\n var _widths;\r\n var rowsView = this._rowsView;\r\n var columnHeadersView = this._columnHeadersView;\r\n var widths = rowsView.getColumnWidths();\r\n if (!(null !== (_widths = widths) && void 0 !== _widths && _widths.length)) {\r\n var _rowsView$getTableEle;\r\n var headersTableElement = columnHeadersView.getTableElement();\r\n columnHeadersView.setTableElement(null === (_rowsView$getTableEle = rowsView.getTableElement()) || void 0 === _rowsView$getTableEle ? void 0 : _rowsView$getTableEle.children(\".dx-header\"));\r\n widths = columnHeadersView.getColumnWidths();\r\n columnHeadersView.setTableElement(headersTableElement)\r\n }\r\n return widths\r\n },\r\n _setVisibleWidths: function(visibleColumns, widths) {\r\n var columnsController = this._columnsController;\r\n columnsController.beginUpdate();\r\n each(visibleColumns, (function(index, column) {\r\n var columnId = columnsController.getColumnId(column);\r\n columnsController.columnOption(columnId, \"visibleWidth\", widths[index])\r\n }));\r\n columnsController.endUpdate()\r\n },\r\n _toggleBestFitModeForView: function(view, className, isBestFit) {\r\n if (!view || !view.isVisible()) {\r\n return\r\n }\r\n var $rowsTables = this._rowsView.getTableElements();\r\n var $viewTables = view.getTableElements();\r\n each($rowsTables, (index, tableElement) => {\r\n var $tableBody;\r\n var $rowsTable = $(tableElement);\r\n var $viewTable = $viewTables.eq(index);\r\n if ($viewTable && $viewTable.length) {\r\n if (isBestFit) {\r\n $tableBody = $viewTable.children(\"tbody\").appendTo($rowsTable)\r\n } else {\r\n $tableBody = $rowsTable.children(\".\" + className).appendTo($viewTable)\r\n }\r\n $tableBody.toggleClass(className, isBestFit);\r\n $tableBody.toggleClass(this.addWidgetPrefix(\"best-fit\"), isBestFit)\r\n }\r\n })\r\n },\r\n _toggleBestFitMode: function(isBestFit) {\r\n var $rowsTable = this._rowsView.getTableElement();\r\n var $rowsFixedTable = this._rowsView.getTableElements().eq(1);\r\n if (!$rowsTable) {\r\n return\r\n }\r\n $rowsTable.css(\"tableLayout\", isBestFit ? \"auto\" : \"fixed\");\r\n $rowsTable.children(\"colgroup\").css(\"display\", isBestFit ? \"none\" : \"\");\r\n $rowsFixedTable.toggleClass(this.addWidgetPrefix(TABLE_FIXED_CLASS), !isBestFit);\r\n this._toggleBestFitModeForView(this._columnHeadersView, \"dx-header\", isBestFit);\r\n this._toggleBestFitModeForView(this._footerView, \"dx-footer\", isBestFit);\r\n this._toggleContentMinHeight(isBestFit);\r\n if (this._needStretch()) {\r\n $rowsTable.get(0).style.width = isBestFit ? \"auto\" : \"\"\r\n }\r\n },\r\n _toggleContentMinHeight: function(isBestFit) {\r\n if (this.option(\"wordWrapEnabled\")) {\r\n var scrollable = this._rowsView.getScrollable();\r\n var $contentElement = this._rowsView._findContentElement();\r\n if (false === (null === scrollable || void 0 === scrollable ? void 0 : scrollable.option(\"useNative\"))) {\r\n $contentElement.css({\r\n minHeight: isBestFit ? gridCoreUtils.getContentHeightLimit(browser) : \"\"\r\n })\r\n }\r\n }\r\n },\r\n _synchronizeColumns: function() {\r\n var columnsController = this._columnsController;\r\n var visibleColumns = columnsController.getVisibleColumns();\r\n var columnAutoWidth = this.option(\"columnAutoWidth\");\r\n var needBestFit = this._needBestFit();\r\n var hasMinWidth = false;\r\n var resetBestFitMode;\r\n var isColumnWidthsCorrected = false;\r\n var resultWidths = [];\r\n var focusedElement;\r\n var selectionRange;\r\n !needBestFit && each(visibleColumns, (function(index, column) {\r\n if (\"auto\" === column.width) {\r\n needBestFit = true;\r\n return false\r\n }\r\n }));\r\n each(visibleColumns, (function(index, column) {\r\n if (column.minWidth) {\r\n hasMinWidth = true;\r\n return false\r\n }\r\n }));\r\n this._setVisibleWidths(visibleColumns, []);\r\n if (needBestFit) {\r\n focusedElement = domAdapter.getActiveElement();\r\n selectionRange = gridCoreUtils.getSelectionRange(focusedElement);\r\n this._toggleBestFitMode(true);\r\n resetBestFitMode = true\r\n }\r\n var $element = this.component.$element();\r\n if ($element && $element[0] && this._maxWidth) {\r\n delete this._maxWidth;\r\n $element[0].style.maxWidth = \"\"\r\n }\r\n deferUpdate(() => {\r\n if (needBestFit) {\r\n resultWidths = this._getBestFitWidths();\r\n each(visibleColumns, (function(index, column) {\r\n var columnId = columnsController.getColumnId(column);\r\n columnsController.columnOption(columnId, \"bestFitWidth\", resultWidths[index], true)\r\n }))\r\n } else if (hasMinWidth) {\r\n resultWidths = this._getBestFitWidths()\r\n }\r\n each(visibleColumns, (function(index) {\r\n var width = this.width;\r\n if (\"auto\" !== width) {\r\n if (isDefined(width)) {\r\n resultWidths[index] = isNumeric(width) || isPixelWidth(width) ? parseFloat(width) : width\r\n } else if (!columnAutoWidth) {\r\n resultWidths[index] = void 0\r\n }\r\n }\r\n }));\r\n if (resetBestFitMode) {\r\n this._toggleBestFitMode(false);\r\n resetBestFitMode = false;\r\n if (focusedElement && focusedElement !== domAdapter.getActiveElement()) {\r\n var isFocusOutsideWindow = getBoundingRect(focusedElement).bottom < 0;\r\n if (!isFocusOutsideWindow) {\r\n restoreFocus(focusedElement, selectionRange)\r\n }\r\n }\r\n }\r\n isColumnWidthsCorrected = this._correctColumnWidths(resultWidths, visibleColumns);\r\n if (columnAutoWidth) {\r\n ! function() {\r\n var expandColumnWidth;\r\n each(visibleColumns, (function(index, column) {\r\n if (\"groupExpand\" === column.type) {\r\n expandColumnWidth = resultWidths[index]\r\n }\r\n }));\r\n each(visibleColumns, (function(index, column) {\r\n if (\"groupExpand\" === column.type && expandColumnWidth) {\r\n resultWidths[index] = expandColumnWidth\r\n }\r\n }))\r\n }();\r\n if (this._needStretch()) {\r\n this._processStretch(resultWidths, visibleColumns)\r\n }\r\n }\r\n deferRender(() => {\r\n if (needBestFit || isColumnWidthsCorrected) {\r\n this._setVisibleWidths(visibleColumns, resultWidths)\r\n }\r\n })\r\n })\r\n },\r\n _needBestFit: function() {\r\n return this.option(\"columnAutoWidth\")\r\n },\r\n _needStretch: function() {\r\n return this._columnsController.getVisibleColumns().some(c => \"auto\" === c.width && !c.command)\r\n },\r\n _getAverageColumnsWidth: function(resultWidths) {\r\n var freeWidth = calculateFreeWidth(this, resultWidths);\r\n var columnCountWithoutWidth = resultWidths.filter((function(width) {\r\n return void 0 === width\r\n })).length;\r\n return freeWidth / columnCountWithoutWidth\r\n },\r\n _correctColumnWidths: function(resultWidths, visibleColumns) {\r\n var that = this;\r\n var i;\r\n var hasPercentWidth = false;\r\n var hasAutoWidth = false;\r\n var isColumnWidthsCorrected = false;\r\n var $element = that.component.$element();\r\n var hasWidth = that._hasWidth;\r\n var _loop = function() {\r\n var index = i;\r\n var column = visibleColumns[index];\r\n var isHiddenColumn = resultWidths[index] === HIDDEN_COLUMNS_WIDTH;\r\n var width = resultWidths[index];\r\n var minWidth = column.minWidth;\r\n if (minWidth) {\r\n if (void 0 === width) {\r\n var averageColumnsWidth = that._getAverageColumnsWidth(resultWidths);\r\n width = averageColumnsWidth\r\n } else if (isPercentWidth(width)) {\r\n var freeWidth = calculateFreeWidthWithCurrentMinWidth(that, index, minWidth, resultWidths);\r\n if (freeWidth < 0) {\r\n width = -1\r\n }\r\n }\r\n }\r\n var realColumnWidth = that._getRealColumnWidth(index, resultWidths.map((function(columnWidth, columnIndex) {\r\n return index === columnIndex ? width : columnWidth\r\n })));\r\n if (minWidth && !isHiddenColumn && realColumnWidth < minWidth) {\r\n resultWidths[index] = minWidth;\r\n isColumnWidthsCorrected = true;\r\n i = -1\r\n }\r\n if (!isDefined(column.width)) {\r\n hasAutoWidth = true\r\n }\r\n if (isPercentWidth(column.width)) {\r\n hasPercentWidth = true\r\n }\r\n };\r\n for (i = 0; i < visibleColumns.length; i++) {\r\n _loop()\r\n }\r\n if (!hasAutoWidth && resultWidths.length) {\r\n var $rowsViewElement = that._rowsView.element();\r\n var contentWidth = that._rowsView.contentWidth();\r\n var scrollbarWidth = that._rowsView.getScrollbarWidth();\r\n var totalWidth = that._getTotalWidth(resultWidths, contentWidth);\r\n if (totalWidth < contentWidth) {\r\n var lastColumnIndex = gridCoreUtils.getLastResizableColumnIndex(visibleColumns, resultWidths);\r\n if (lastColumnIndex >= 0) {\r\n resultWidths[lastColumnIndex] = \"auto\";\r\n isColumnWidthsCorrected = true;\r\n if (false === hasWidth && !hasPercentWidth) {\r\n var borderWidth = that.option(\"showBorders\") ? Math.ceil(getOuterWidth($rowsViewElement) - getInnerWidth($rowsViewElement)) : 0;\r\n that._maxWidth = totalWidth + scrollbarWidth + borderWidth;\r\n $element.css(\"maxWidth\", that._maxWidth)\r\n }\r\n }\r\n }\r\n }\r\n return isColumnWidthsCorrected\r\n },\r\n _processStretch: function(resultSizes, visibleColumns) {\r\n var groupSize = this._rowsView.contentWidth();\r\n var tableSize = this._getTotalWidth(resultSizes, groupSize);\r\n var unusedIndexes = {\r\n length: 0\r\n };\r\n if (!resultSizes.length) {\r\n return\r\n }\r\n each(visibleColumns, (function(index) {\r\n if (this.width || resultSizes[index] === HIDDEN_COLUMNS_WIDTH) {\r\n unusedIndexes[index] = true;\r\n unusedIndexes.length++\r\n }\r\n }));\r\n var diff = groupSize - tableSize;\r\n var diffElement = Math.floor(diff / (resultSizes.length - unusedIndexes.length));\r\n var onePixelElementsCount = diff - diffElement * (resultSizes.length - unusedIndexes.length);\r\n if (diff >= 0) {\r\n for (var i = 0; i < resultSizes.length; i++) {\r\n if (unusedIndexes[i]) {\r\n continue\r\n }\r\n resultSizes[i] += diffElement;\r\n if (onePixelElementsCount > 0) {\r\n if (onePixelElementsCount < 1) {\r\n resultSizes[i] += onePixelElementsCount;\r\n onePixelElementsCount = 0\r\n } else {\r\n resultSizes[i]++;\r\n onePixelElementsCount--\r\n }\r\n }\r\n }\r\n }\r\n },\r\n _getRealColumnWidth: function(columnIndex, columnWidths, groupWidth) {\r\n var ratio = 1;\r\n var width = columnWidths[columnIndex];\r\n if (!isPercentWidth(width)) {\r\n return parseFloat(width)\r\n }\r\n var percentTotalWidth = columnWidths.reduce((sum, width, index) => {\r\n if (!isPercentWidth(width)) {\r\n return sum\r\n }\r\n return sum + parseFloat(width)\r\n }, 0);\r\n var pixelTotalWidth = columnWidths.reduce((sum, width) => {\r\n if (!width || width === HIDDEN_COLUMNS_WIDTH || isPercentWidth(width)) {\r\n return sum\r\n }\r\n return sum + parseFloat(width)\r\n }, 0);\r\n groupWidth = groupWidth || this._rowsView.contentWidth();\r\n var freeSpace = groupWidth - pixelTotalWidth;\r\n var percentTotalWidthInPixel = percentTotalWidth * groupWidth / 100;\r\n if (pixelTotalWidth > 0 && percentTotalWidthInPixel + pixelTotalWidth >= groupWidth) {\r\n ratio = percentTotalWidthInPixel > freeSpace ? freeSpace / percentTotalWidthInPixel : 1\r\n }\r\n return parseFloat(width) * groupWidth * ratio / 100\r\n },\r\n _getTotalWidth: function(widths, groupWidth) {\r\n var result = 0;\r\n for (var i = 0; i < widths.length; i++) {\r\n var width = widths[i];\r\n if (width && width !== HIDDEN_COLUMNS_WIDTH) {\r\n result += this._getRealColumnWidth(i, widths, groupWidth)\r\n }\r\n }\r\n return Math.ceil(result)\r\n },\r\n updateSize: function(rootElement) {\r\n var $groupElement;\r\n var width;\r\n var $rootElement = $(rootElement);\r\n var importantMarginClass = this.addWidgetPrefix(IMPORTANT_MARGIN_CLASS);\r\n if (void 0 === this._hasHeight && $rootElement && $rootElement.is(\":visible\") && getWidth($rootElement)) {\r\n $groupElement = $rootElement.children(\".\" + this.getWidgetContainerClass());\r\n if ($groupElement.length) {\r\n $groupElement.detach()\r\n }\r\n this._hasHeight = !!getContainerHeight($rootElement);\r\n width = getWidth($rootElement);\r\n $rootElement.addClass(importantMarginClass);\r\n this._hasWidth = getWidth($rootElement) === width;\r\n $rootElement.removeClass(importantMarginClass);\r\n if ($groupElement.length) {\r\n $groupElement.appendTo($rootElement)\r\n }\r\n }\r\n },\r\n publicMethods: function() {\r\n return [\"resize\", \"updateDimensions\"]\r\n },\r\n resize: function() {\r\n return !this.component._requireResize && this.updateDimensions()\r\n },\r\n updateDimensions: function(checkSize) {\r\n var that = this;\r\n that._initPostRenderHandlers();\r\n if (!that._checkSize(checkSize)) {\r\n return\r\n }\r\n var prevResult = that._resizeDeferred;\r\n var result = that._resizeDeferred = new Deferred;\r\n when(prevResult).always((function() {\r\n deferRender((function() {\r\n if (that._dataController.isLoaded()) {\r\n that._synchronizeColumns()\r\n }\r\n that._resetGroupElementHeight();\r\n deferUpdate((function() {\r\n deferRender((function() {\r\n deferUpdate((function() {\r\n that._updateDimensionsCore()\r\n }))\r\n }))\r\n }))\r\n })).done(result.resolve).fail(result.reject)\r\n }));\r\n return result.promise()\r\n },\r\n _resetGroupElementHeight: function() {\r\n var groupElement = this.component.$element().children().get(0);\r\n var scrollable = this._rowsView.getScrollable();\r\n if (groupElement && groupElement.style.height && (!scrollable || !scrollable.scrollTop())) {\r\n groupElement.style.height = \"\"\r\n }\r\n },\r\n _checkSize: function(checkSize) {\r\n var $rootElement = this.component.$element();\r\n if (checkSize && (this._lastWidth === getWidth($rootElement) && this._lastHeight === getHeight($rootElement) && this._devicePixelRatio === getWindow().devicePixelRatio || !$rootElement.is(\":visible\"))) {\r\n return false\r\n }\r\n return true\r\n },\r\n _setScrollerSpacingCore: function(hasHeight) {\r\n var that = this;\r\n var vScrollbarWidth = hasHeight ? that._rowsView.getScrollbarWidth() : 0;\r\n var hScrollbarWidth = that._rowsView.getScrollbarWidth(true);\r\n deferRender((function() {\r\n that._columnHeadersView && that._columnHeadersView.setScrollerSpacing(vScrollbarWidth);\r\n that._footerView && that._footerView.setScrollerSpacing(vScrollbarWidth);\r\n that._rowsView.setScrollerSpacing(vScrollbarWidth, hScrollbarWidth)\r\n }))\r\n },\r\n _setScrollerSpacing: function(hasHeight) {\r\n if (true === this.option(\"scrolling.useNative\")) {\r\n deferRender(() => {\r\n deferUpdate(() => {\r\n this._setScrollerSpacingCore(hasHeight)\r\n })\r\n })\r\n } else {\r\n this._setScrollerSpacingCore(hasHeight)\r\n }\r\n },\r\n _updateDimensionsCore: function() {\r\n var that = this;\r\n var dataController = that._dataController;\r\n var rowsView = that._rowsView;\r\n var $rootElement = that.component.$element();\r\n var groupElement = $rootElement.children().get(0);\r\n var rootElementHeight = $rootElement && ($rootElement.get(0).clientHeight || getHeight($rootElement));\r\n var maxHeight = parseInt($rootElement.css(\"maxHeight\"));\r\n var maxHeightHappened = maxHeight && rootElementHeight >= maxHeight;\r\n var height = that.option(\"height\") || $rootElement.get(0).style.height;\r\n var editorFactory = that.getController(\"editorFactory\");\r\n var isMaxHeightApplied = maxHeightHappened && groupElement.scrollHeight === groupElement.offsetHeight;\r\n var $testDiv;\r\n that.updateSize($rootElement);\r\n var hasHeight = that._hasHeight || maxHeightHappened;\r\n if (height && that._hasHeight ^ \"auto\" !== height) {\r\n $testDiv = $(\"
\");\r\n setHeight($testDiv, height);\r\n $testDiv.appendTo($rootElement);\r\n that._hasHeight = !!getHeight($testDiv);\r\n $testDiv.remove()\r\n }\r\n deferRender((function() {\r\n rowsView.height(null, hasHeight);\r\n if (maxHeightHappened && !isMaxHeightApplied) {\r\n $(groupElement).css(\"height\", maxHeight)\r\n }\r\n if (!dataController.isLoaded()) {\r\n rowsView.setLoading(dataController.isLoading());\r\n return\r\n }\r\n deferUpdate((function() {\r\n that._updateLastSizes($rootElement);\r\n that._setScrollerSpacing(hasHeight);\r\n each(VIEW_NAMES, (function(index, viewName) {\r\n var view = that.getView(viewName);\r\n if (view) {\r\n view.resize()\r\n }\r\n }));\r\n editorFactory && editorFactory.resize()\r\n }))\r\n }))\r\n },\r\n _updateLastSizes: function($rootElement) {\r\n this._lastWidth = getWidth($rootElement);\r\n this._lastHeight = getHeight($rootElement);\r\n this._devicePixelRatio = getWindow().devicePixelRatio\r\n },\r\n optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"width\":\r\n case \"height\":\r\n this.component._renderDimensions();\r\n this.resize();\r\n case \"renderAsync\":\r\n args.handled = true;\r\n return;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n init: function() {\r\n this._dataController = this.getController(\"data\");\r\n this._columnsController = this.getController(\"columns\");\r\n this._columnHeadersView = this.getView(\"columnHeadersView\");\r\n this._footerView = this.getView(\"footerView\");\r\n this._rowsView = this.getView(\"rowsView\")\r\n }\r\n});\r\nvar SynchronizeScrollingController = modules.ViewController.inherit({\r\n _scrollChangedHandler: function(views, pos, viewName) {\r\n for (var j = 0; j < views.length; j++) {\r\n if (views[j] && views[j].name !== viewName) {\r\n views[j].scrollTo({\r\n left: pos.left,\r\n top: pos.top\r\n })\r\n }\r\n }\r\n },\r\n init: function() {\r\n var views = [this.getView(\"columnHeadersView\"), this.getView(\"footerView\"), this.getView(\"rowsView\")];\r\n for (var i = 0; i < views.length; i++) {\r\n var view = views[i];\r\n if (view) {\r\n view.scrollChanged.add(this._scrollChangedHandler.bind(this, views))\r\n }\r\n }\r\n }\r\n});\r\nvar GridView = modules.View.inherit({\r\n _endUpdateCore: function() {\r\n if (this.component._requireResize) {\r\n this.component._requireResize = false;\r\n this._resizingController.resize()\r\n }\r\n },\r\n _getWidgetAriaLabel: function() {\r\n return \"dxDataGrid-ariaDataGrid\"\r\n },\r\n init: function() {\r\n this._resizingController = this.getController(\"resizing\");\r\n this._dataController = this.getController(\"data\")\r\n },\r\n getView: function(name) {\r\n return this.component._views[name]\r\n },\r\n element: function() {\r\n return this._groupElement\r\n },\r\n optionChanged: function(args) {\r\n if (isDefined(this._groupElement) && \"showBorders\" === args.name) {\r\n this._groupElement.toggleClass(this.addWidgetPrefix(BORDERS_CLASS), !!args.value);\r\n args.handled = true\r\n } else {\r\n this.callBase(args)\r\n }\r\n },\r\n _renderViews: function($groupElement) {\r\n var that = this;\r\n each(VIEW_NAMES, (function(index, viewName) {\r\n var view = that.getView(viewName);\r\n if (view) {\r\n view.render($groupElement)\r\n }\r\n }))\r\n },\r\n _getTableRoleName: function() {\r\n return \"grid\"\r\n },\r\n render: function($rootElement) {\r\n var isFirstRender = !this._groupElement;\r\n var $groupElement = this._groupElement || $(\"
\").addClass(this.getWidgetContainerClass());\r\n $groupElement.addClass(GRIDBASE_CONTAINER_CLASS);\r\n $groupElement.toggleClass(this.addWidgetPrefix(BORDERS_CLASS), !!this.option(\"showBorders\"));\r\n this.setAria(\"role\", \"presentation\", $rootElement);\r\n this.component.setAria({\r\n role: this._getTableRoleName(),\r\n label: messageLocalization.format(this._getWidgetAriaLabel())\r\n }, $groupElement);\r\n this._rootElement = $rootElement || this._rootElement;\r\n if (isFirstRender) {\r\n this._groupElement = $groupElement;\r\n hasWindow() && this.getController(\"resizing\").updateSize($rootElement);\r\n $groupElement.appendTo($rootElement)\r\n }\r\n this._renderViews($groupElement)\r\n },\r\n update: function() {\r\n var $rootElement = this._rootElement;\r\n var $groupElement = this._groupElement;\r\n var resizingController = this.getController(\"resizing\");\r\n if ($rootElement && $groupElement) {\r\n resizingController.resize();\r\n if (this._dataController.isLoaded()) {\r\n this._resizingController.fireContentReadyAction()\r\n }\r\n }\r\n }\r\n});\r\nexport var gridViewModule = {\r\n defaultOptions: function() {\r\n return {\r\n showBorders: false,\r\n renderAsync: false\r\n }\r\n },\r\n controllers: {\r\n resizing: ResizingController,\r\n synchronizeScrolling: SynchronizeScrollingController\r\n },\r\n views: {\r\n gridView: GridView\r\n },\r\n VIEW_NAMES: VIEW_NAMES\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.grid_view.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n gridViewModule\r\n} from \"../grid_core/ui.grid_core.grid_view\";\r\ngridCore.registerModule(\"gridView\", gridViewModule);\r\n","/**\r\n * DevExtreme (esm/ui/toolbar/ui.toolbar.menu.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n ListBase\r\n} from \"../list/ui.list.base\";\r\nvar TOOLBAR_MENU_ACTION_CLASS = \"dx-toolbar-menu-action\";\r\nvar TOOLBAR_HIDDEN_BUTTON_CLASS = \"dx-toolbar-hidden-button\";\r\nvar TOOLBAR_HIDDEN_BUTTON_GROUP_CLASS = \"dx-toolbar-hidden-button-group\";\r\nvar TOOLBAR_MENU_SECTION_CLASS = \"dx-toolbar-menu-section\";\r\nvar TOOLBAR_MENU_LAST_SECTION_CLASS = \"dx-toolbar-menu-last-section\";\r\nvar ToolbarMenu = ListBase.inherit({\r\n _activeStateUnit: \".\" + TOOLBAR_MENU_ACTION_CLASS,\r\n _initMarkup: function() {\r\n this._renderSections();\r\n this.callBase()\r\n },\r\n _getSections: function() {\r\n return this._itemContainer().children()\r\n },\r\n _itemElements: function() {\r\n return this._getSections().children(this._itemSelector())\r\n },\r\n _renderSections: function() {\r\n var that = this;\r\n var $container = this._itemContainer();\r\n each([\"before\", \"center\", \"after\", \"menu\"], (function() {\r\n var sectionName = \"_$\" + this + \"Section\";\r\n var $section = that[sectionName];\r\n if (!$section) {\r\n that[sectionName] = $section = $(\"
\").addClass(TOOLBAR_MENU_SECTION_CLASS)\r\n }\r\n $section.appendTo($container)\r\n }))\r\n },\r\n _renderItems: function() {\r\n this.callBase.apply(this, arguments);\r\n this._updateSections()\r\n },\r\n _updateSections: function() {\r\n var $sections = this.$element().find(\".\" + TOOLBAR_MENU_SECTION_CLASS);\r\n $sections.removeClass(TOOLBAR_MENU_LAST_SECTION_CLASS);\r\n $sections.not(\":empty\").eq(-1).addClass(TOOLBAR_MENU_LAST_SECTION_CLASS)\r\n },\r\n _renderItem: function(index, item, itemContainer, $after) {\r\n var location = item.location || \"menu\";\r\n var $container = this[\"_$\" + location + \"Section\"];\r\n var itemElement = this.callBase(index, item, $container, $after);\r\n if (this._getItemTemplateName({\r\n itemData: item\r\n })) {\r\n itemElement.addClass(\"dx-toolbar-menu-custom\")\r\n }\r\n if (\"menu\" === location || \"dxButton\" === item.widget || \"dxButtonGroup\" === item.widget || item.isAction) {\r\n itemElement.addClass(TOOLBAR_MENU_ACTION_CLASS)\r\n }\r\n if (\"dxButton\" === item.widget) {\r\n itemElement.addClass(TOOLBAR_HIDDEN_BUTTON_CLASS)\r\n }\r\n if (\"dxButtonGroup\" === item.widget) {\r\n itemElement.addClass(TOOLBAR_HIDDEN_BUTTON_GROUP_CLASS)\r\n }\r\n itemElement.addClass(item.cssClass);\r\n return itemElement\r\n },\r\n _getItemTemplateName: function(args) {\r\n var template = this.callBase(args);\r\n var data = args.itemData;\r\n var menuTemplate = data && data.menuItemTemplate;\r\n return menuTemplate || template\r\n },\r\n _itemClickHandler: function(e, args, config) {\r\n if ($(e.target).closest(\".\" + TOOLBAR_MENU_ACTION_CLASS).length) {\r\n this.callBase(e, args, config)\r\n }\r\n },\r\n _clean: function() {\r\n this._getSections().empty();\r\n this.callBase()\r\n }\r\n});\r\nregisterComponent(\"dxToolbarMenu\", ToolbarMenu);\r\nexport default ToolbarMenu;\r\n","/**\r\n * DevExtreme (esm/ui/toolbar/ui.toolbar.utils.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nvar BUTTON_GROUP_CLASS = \"dx-buttongroup\";\r\nvar TOOLBAR_ITEMS = [\"dxAutocomplete\", \"dxButton\", \"dxCheckBox\", \"dxDateBox\", \"dxMenu\", \"dxSelectBox\", \"dxTabs\", \"dxTextBox\", \"dxButtonGroup\", \"dxDropDownButton\"];\r\nvar getItemInstance = function($element) {\r\n var itemData = $element.data && $element.data();\r\n var dxComponents = itemData && itemData.dxComponents;\r\n var widgetName = dxComponents && dxComponents[0];\r\n return widgetName && itemData[widgetName]\r\n};\r\nexport function toggleItemFocusableElementTabIndex(context, item) {\r\n var _itemData$options;\r\n if (!context) {\r\n return\r\n }\r\n var $item = context._findItemElementByItem(item);\r\n if (!$item.length) {\r\n return\r\n }\r\n var itemData = context._getItemData($item);\r\n var isItemNotFocusable = !!(null !== (_itemData$options = itemData.options) && void 0 !== _itemData$options && _itemData$options.disabled || itemData.disabled || context.option(\"disabled\"));\r\n var {\r\n widget: widget\r\n } = itemData;\r\n if (widget && -1 !== TOOLBAR_ITEMS.indexOf(widget)) {\r\n var $widget = $item.find(widget.toLowerCase().replace(\"dx\", \".dx-\"));\r\n if ($widget.length) {\r\n var _itemInstance$_focusT, _itemData$options2;\r\n var itemInstance = getItemInstance($widget);\r\n var $focusTarget = \"dxDropDownButton\" === widget ? itemInstance._focusTarget().find(\".\".concat(BUTTON_GROUP_CLASS)) : (null === itemInstance || void 0 === itemInstance ? void 0 : null === (_itemInstance$_focusT = itemInstance._focusTarget) || void 0 === _itemInstance$_focusT ? void 0 : _itemInstance$_focusT.call(itemInstance)) || $(itemInstance.element());\r\n var tabIndex = null === (_itemData$options2 = itemData.options) || void 0 === _itemData$options2 ? void 0 : _itemData$options2.tabIndex;\r\n if (isItemNotFocusable) {\r\n $focusTarget.attr(\"tabIndex\", -1)\r\n } else {\r\n $focusTarget.attr(\"tabIndex\", tabIndex ? tabIndex : 0)\r\n }\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/drop_down_menu.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight,\r\n setHeight\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nvar window = getWindow();\r\nimport devices from \"../core/devices\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport Widget from \"./widget/ui.widget\";\r\nimport Button from \"./button\";\r\nimport Popover from \"./popover\";\r\nimport DataHelperMixin from \"../data_helper\";\r\nimport List from \"./list_light\";\r\nimport {\r\n isMaterial\r\n} from \"./themes\";\r\nimport {\r\n ChildDefaultTemplate\r\n} from \"../core/templates/child_default_template\";\r\nimport {\r\n toggleItemFocusableElementTabIndex\r\n} from \"./toolbar/ui.toolbar.utils\";\r\nvar DROP_DOWN_MENU_CLASS = \"dx-dropdownmenu\";\r\nvar DROP_DOWN_MENU_POPUP_CLASS = \"dx-dropdownmenu-popup\";\r\nvar DROP_DOWN_MENU_POPUP_WRAPPER_CLASS = \"dx-dropdownmenu-popup-wrapper\";\r\nvar DROP_DOWN_MENU_LIST_CLASS = \"dx-dropdownmenu-list\";\r\nvar DROP_DOWN_MENU_BUTTON_CLASS = \"dx-dropdownmenu-button\";\r\nvar POPUP_OPTION_MAP = {\r\n popupWidth: \"width\",\r\n popupHeight: \"height\",\r\n popupMaxHeight: \"maxHeight\",\r\n popupAutoResizeEnabled: \"autoResizeEnabled\"\r\n};\r\nvar BUTTON_OPTION_MAP = {\r\n buttonIcon: \"icon\",\r\n buttonText: \"text\",\r\n buttonWidth: \"width\",\r\n buttonHeight: \"height\",\r\n buttonTemplate: \"template\"\r\n};\r\nvar DropDownMenu = Widget.inherit({\r\n _supportedKeys: function() {\r\n var extension = {};\r\n if (!this.option(\"opened\") || !this._list.option(\"focusedElement\")) {\r\n extension = this._button._supportedKeys()\r\n }\r\n return extend(this.callBase(), extension, {\r\n tab: function() {\r\n this._popup && this._popup.hide()\r\n }\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n items: [],\r\n onItemClick: null,\r\n dataSource: null,\r\n itemTemplate: \"item\",\r\n buttonText: \"\",\r\n buttonIcon: \"overflow\",\r\n buttonWidth: void 0,\r\n buttonHeight: void 0,\r\n buttonTemplate: \"content\",\r\n onButtonClick: null,\r\n usePopover: false,\r\n popupWidth: \"auto\",\r\n popupHeight: \"auto\",\r\n activeStateEnabled: true,\r\n hoverStateEnabled: true,\r\n opened: false,\r\n selectionMode: \"none\",\r\n selectedItemKeys: [],\r\n deferRendering: false,\r\n popupPosition: {\r\n my: \"top center\",\r\n at: \"bottom center\",\r\n collision: \"fit flip\",\r\n offset: {\r\n v: 1\r\n }\r\n },\r\n popupAnimation: void 0,\r\n onItemRendered: null,\r\n menuWidget: List,\r\n popupMaxHeight: void 0,\r\n closeOnClick: true,\r\n useInkRipple: false,\r\n container: void 0,\r\n popupAutoResizeEnabled: false\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"ios\"\r\n },\r\n options: {\r\n usePopover: true\r\n }\r\n }, {\r\n device: {\r\n platform: \"generic\"\r\n },\r\n options: {\r\n popupPosition: {\r\n offset: {\r\n v: 4\r\n }\r\n }\r\n }\r\n }, {\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }, {\r\n device: {\r\n platform: \"android\"\r\n },\r\n options: {\r\n popupPosition: {\r\n my: \"top \" + (this.option(\"rtlEnabled\") ? \"left\" : \"right\"),\r\n at: \"top \" + (this.option(\"rtlEnabled\") ? \"left\" : \"right\"),\r\n collision: \"flipfit\"\r\n },\r\n popupAnimation: {\r\n show: {\r\n type: \"pop\",\r\n duration: 200,\r\n from: {\r\n scale: 0\r\n },\r\n to: {\r\n scale: 1\r\n }\r\n },\r\n hide: {\r\n type: \"pop\",\r\n duration: 200,\r\n from: {\r\n scale: 1\r\n },\r\n to: {\r\n scale: 0\r\n }\r\n }\r\n }\r\n }\r\n }, {\r\n device: function() {\r\n return isMaterial()\r\n },\r\n options: {\r\n useInkRipple: true\r\n }\r\n }])\r\n },\r\n _initOptions: function(options) {\r\n if (\"android\" === devices.current().platform) {\r\n if (!options.popupPosition) {\r\n options.popupPosition = {\r\n at: (options.usePopover ? \"bottom \" : \"top \") + (options.rtlEnabled ? \"left\" : \"right\")\r\n }\r\n }\r\n }\r\n this.callBase(options)\r\n },\r\n _dataSourceOptions: function() {\r\n return {\r\n paginate: false\r\n }\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this.$element().addClass(DROP_DOWN_MENU_CLASS);\r\n this._initDataSource();\r\n this._initItemClickAction();\r\n this._initButtonClickAction()\r\n },\r\n _initItemClickAction: function() {\r\n this._itemClickAction = this._createActionByOption(\"onItemClick\")\r\n },\r\n _initButtonClickAction: function() {\r\n this._buttonClickAction = this._createActionByOption(\"onButtonClick\")\r\n },\r\n _initTemplates: function() {\r\n this._templateManager.addDefaultTemplates({\r\n content: new ChildDefaultTemplate(\"content\")\r\n });\r\n this.callBase()\r\n },\r\n _initMarkup: function() {\r\n this._renderButton();\r\n this.callBase()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this.setAria({\r\n role: \"menubar\",\r\n haspopup: true,\r\n expanded: this.option(\"opened\")\r\n })\r\n },\r\n _renderContentImpl: function() {\r\n if (this.option(\"opened\")) {\r\n this._renderPopup()\r\n }\r\n },\r\n _clean: function() {\r\n this._cleanFocusState();\r\n if (this._popup) {\r\n this._popup.$element().remove();\r\n delete this._$popup\r\n }\r\n },\r\n _renderButton: function() {\r\n var $button = this.$element().addClass(DROP_DOWN_MENU_BUTTON_CLASS);\r\n var config = this._buttonOptions();\r\n this._button = this._createComponent($button, Button, config)\r\n },\r\n _toggleActiveState: function($element, value, e) {\r\n this._button._toggleActiveState($element, value, e)\r\n },\r\n _buttonOptions: function() {\r\n return {\r\n text: this.option(\"buttonText\"),\r\n icon: this.option(\"buttonIcon\"),\r\n width: this.option(\"buttonWidth\"),\r\n height: this.option(\"buttonHeight\"),\r\n useInkRipple: this.option(\"useInkRipple\"),\r\n template: this.option(\"buttonTemplate\"),\r\n hoverStateEnabled: false,\r\n focusStateEnabled: false,\r\n onClick: function(e) {\r\n this.option(\"opened\", !this.option(\"opened\"));\r\n this._buttonClickAction(e)\r\n }.bind(this)\r\n }\r\n },\r\n _toggleMenuVisibility: function(opened) {\r\n var state = void 0 === opened ? !this._popup.option(\"visible\") : opened;\r\n if (opened) {\r\n this._renderPopup()\r\n }\r\n this._popup.toggle(state);\r\n this.setAria(\"expanded\", state)\r\n },\r\n _renderPopup: function() {\r\n if (this._$popup) {\r\n return\r\n }\r\n var $popup = this._$popup = $(\"
\").appendTo(this.$element());\r\n var config = this._popupOptions();\r\n this._popup = this._createComponent($popup, Popover, config)\r\n },\r\n _popupOptions: function() {\r\n var usePopup = !this.option(\"usePopover\");\r\n return {\r\n onInitialized: function(args) {\r\n args.component.$wrapper().addClass(DROP_DOWN_MENU_POPUP_WRAPPER_CLASS).toggleClass(DROP_DOWN_MENU_POPUP_CLASS, usePopup)\r\n },\r\n deferRendering: false,\r\n contentTemplate: function(contentElement) {\r\n this._renderList(contentElement)\r\n }.bind(this),\r\n position: this.option(\"popupPosition\"),\r\n animation: this.option(\"popupAnimation\"),\r\n onOptionChanged: function(args) {\r\n if (\"visible\" === args.name) {\r\n this.option(\"opened\", args.value)\r\n }\r\n }.bind(this),\r\n target: this.$element(),\r\n height: this.option(\"popupHeight\"),\r\n width: this.option(\"popupWidth\"),\r\n maxHeight: this.option(\"popupMaxHeight\"),\r\n container: this.option(\"container\"),\r\n autoResizeEnabled: this.option(\"popupAutoResizeEnabled\")\r\n }\r\n },\r\n _renderList: function(contentElement) {\r\n var $content = $(contentElement);\r\n var listConfig = this._listOptions();\r\n $content.addClass(DROP_DOWN_MENU_LIST_CLASS);\r\n this._list = this._createComponent($content, this.option(\"menuWidget\"), listConfig);\r\n this._list._getAriaTarget = function() {\r\n return this.$element()\r\n }.bind(this);\r\n this._setListDataSource();\r\n var listMaxHeight = .5 * getHeight(window);\r\n if (getHeight($content) > listMaxHeight) {\r\n setHeight($content, listMaxHeight)\r\n }\r\n },\r\n _itemOptionChanged: function(item, property, value) {\r\n var _this$_list;\r\n null === (_this$_list = this._list) || void 0 === _this$_list ? void 0 : _this$_list._itemOptionChanged(item, property, value);\r\n toggleItemFocusableElementTabIndex(this._list, item)\r\n },\r\n _listOptions: function() {\r\n return {\r\n pageLoadMode: \"scrollBottom\",\r\n indicateLoading: false,\r\n noDataText: \"\",\r\n selectionMode: this.option(\"selectionMode\"),\r\n selectedItemKeys: this.option(\"selectedItemKeys\"),\r\n itemTemplate: this.option(\"itemTemplate\"),\r\n onItemClick: function(e) {\r\n if (this.option(\"closeOnClick\")) {\r\n this.option(\"opened\", false)\r\n }\r\n this._itemClickAction(e)\r\n }.bind(this),\r\n tabIndex: -1,\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n activeStateEnabled: this.option(\"activeStateEnabled\"),\r\n onItemRendered: this.option(\"onItemRendered\"),\r\n _itemAttributes: {\r\n role: \"menuitem\"\r\n }\r\n }\r\n },\r\n _setListDataSource: function() {\r\n if (this._list) {\r\n this._list.option(\"dataSource\", this._dataSource || this.option(\"items\"))\r\n }\r\n delete this._deferRendering\r\n },\r\n _getKeyboardListeners() {\r\n return this.callBase().concat([this._list])\r\n },\r\n _toggleVisibility: function(visible) {\r\n this.callBase(visible);\r\n this._button.option(\"visible\", visible)\r\n },\r\n _optionChanged: function(args) {\r\n var name = args.name;\r\n var value = args.value;\r\n switch (name) {\r\n case \"items\":\r\n case \"dataSource\":\r\n if (this.option(\"deferRendering\") && !this.option(\"opened\")) {\r\n this._deferRendering = true\r\n } else {\r\n this._refreshDataSource();\r\n this._setListDataSource()\r\n }\r\n break;\r\n case \"itemTemplate\":\r\n if (this._list) {\r\n this._list.option(name, this._getTemplate(value))\r\n }\r\n break;\r\n case \"onItemClick\":\r\n this._initItemClickAction();\r\n break;\r\n case \"onButtonClick\":\r\n this._buttonClickAction();\r\n break;\r\n case \"buttonIcon\":\r\n case \"buttonText\":\r\n case \"buttonWidth\":\r\n case \"buttonHeight\":\r\n case \"buttonTemplate\":\r\n this._button.option(BUTTON_OPTION_MAP[name], value);\r\n this._renderPopup();\r\n break;\r\n case \"popupWidth\":\r\n case \"popupHeight\":\r\n case \"popupMaxHeight\":\r\n case \"popupAutoResizeEnabled\":\r\n this._popup.option(POPUP_OPTION_MAP[name], value);\r\n break;\r\n case \"usePopover\":\r\n case \"menuWidget\":\r\n case \"useInkRipple\":\r\n this._invalidate();\r\n break;\r\n case \"focusStateEnabled\":\r\n case \"activeStateEnabled\":\r\n if (this._list) {\r\n this._list.option(name, value)\r\n }\r\n this.callBase(args);\r\n break;\r\n case \"selectionMode\":\r\n case \"selectedItemKeys\":\r\n case \"onItemRendered\":\r\n if (this._list) {\r\n this._list.option(name, value)\r\n }\r\n break;\r\n case \"opened\":\r\n if (this._deferRendering) {\r\n this._refreshDataSource();\r\n this._setListDataSource()\r\n }\r\n this._toggleMenuVisibility(value);\r\n this._updateFocusableItemsTabIndex();\r\n break;\r\n case \"deferRendering\":\r\n case \"popupPosition\":\r\n case \"closeOnClick\":\r\n break;\r\n case \"container\":\r\n this._popup && this._popup.option(args.name, args.value);\r\n break;\r\n case \"disabled\":\r\n if (this._list) {\r\n this._updateFocusableItemsTabIndex()\r\n }\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _updateFocusableItemsTabIndex() {\r\n this.option(\"items\").forEach(item => toggleItemFocusableElementTabIndex(this._list, item))\r\n },\r\n open: function() {\r\n this.option(\"opened\", true)\r\n },\r\n close: function() {\r\n this.option(\"opened\", false)\r\n }\r\n}).include(DataHelperMixin);\r\nregisterComponent(\"dxDropDownMenu\", DropDownMenu);\r\nexport default DropDownMenu;\r\n","/**\r\n * DevExtreme (esm/ui/toolbar/ui.toolbar.drop_down_menu.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport ToolbarMenu from \"./ui.toolbar.menu\";\r\nimport DropDownMenu from \"../drop_down_menu\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n compileGetter\r\n} from \"../../core/utils/data\";\r\nvar MENU_INVISIBLE_CLASS = \"dx-state-invisible\";\r\nvar TOOLBAR_DROP_DOWN_MENU_CONTAINER_CLASS = \"dx-toolbar-menu-container\";\r\nvar POPOVER_BOUNDARY_OFFSET = 10;\r\nclass ToolbarDropDownMenu {\r\n constructor(toolbar) {\r\n this._toolbar = toolbar\r\n }\r\n render() {\r\n if (!this._hasVisibleMenuItems()) {\r\n return\r\n }\r\n this._renderMenuButtonContainer();\r\n var $menu = $(\"
\").appendTo(this._dropDownMenuContainer());\r\n this._dropDownMenu = this._toolbar._createComponent($menu, DropDownMenu, this._dropDownMenuOptions());\r\n this.renderMenuItems()\r\n }\r\n renderMenuItems() {\r\n if (!this._dropDownMenu) {\r\n this.render()\r\n }\r\n this._dropDownMenu && this._dropDownMenu.option(\"items\", this._getMenuItems());\r\n if (this._dropDownMenu && !this._dropDownMenu.option(\"items\").length) {\r\n this._dropDownMenu.close()\r\n }\r\n }\r\n _renderMenuButtonContainer() {\r\n var $afterSection = this._toolbar._$afterSection;\r\n this._$menuButtonContainer = $(\"
\").appendTo($afterSection).addClass(this._toolbar._buttonClass()).addClass(TOOLBAR_DROP_DOWN_MENU_CONTAINER_CLASS)\r\n }\r\n _getMenuItemTemplate() {\r\n return this._toolbar._getTemplateByOption(\"menuItemTemplate\")\r\n }\r\n _dropDownMenuOptions() {\r\n var itemClickAction = this._toolbar._createActionByOption(\"onItemClick\");\r\n var topAndBottomOffset = 2 * POPOVER_BOUNDARY_OFFSET;\r\n return {\r\n disabled: this._toolbar.option(\"disabled\"),\r\n itemTemplate: this._getMenuItemTemplate.bind(this),\r\n onItemClick: function(e) {\r\n itemClickAction(e)\r\n }.bind(this),\r\n deferRendering: true,\r\n container: this._toolbar.option(\"menuContainer\"),\r\n popupMaxHeight: \"android\" === devices.current().platform ? domAdapter.getDocumentElement().clientHeight - topAndBottomOffset : void 0,\r\n menuWidget: ToolbarMenu,\r\n onOptionChanged: _ref => {\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref;\r\n if (\"opened\" === name) {\r\n this._toolbar.option(\"overflowMenuVisible\", value)\r\n }\r\n if (\"items\" === name) {\r\n this._updateMenuVisibility(value)\r\n }\r\n },\r\n popupPosition: {\r\n at: \"bottom right\",\r\n my: \"top right\"\r\n }\r\n }\r\n }\r\n _updateMenuVisibility(menuItems) {\r\n var items = menuItems || this._getMenuItems();\r\n var isMenuVisible = items.length && this._hasVisibleMenuItems(items);\r\n this._toggleMenuVisibility(isMenuVisible)\r\n }\r\n _getMenuItems() {\r\n return this._toolbar._getMenuItems()\r\n }\r\n _hasVisibleMenuItems(items) {\r\n var menuItems = items || this._toolbar.option(\"items\");\r\n var result = false;\r\n var optionGetter = compileGetter(\"visible\");\r\n var overflowGetter = compileGetter(\"locateInMenu\");\r\n each(menuItems, (function(index, item) {\r\n var itemVisible = optionGetter(item, {\r\n functionsAsIs: true\r\n });\r\n var itemOverflow = overflowGetter(item, {\r\n functionsAsIs: true\r\n });\r\n if (false !== itemVisible && (\"auto\" === itemOverflow || \"always\" === itemOverflow) || \"menu\" === item.location) {\r\n result = true\r\n }\r\n }));\r\n return result\r\n }\r\n _toggleMenuVisibility(value) {\r\n if (!this._dropDownMenuContainer()) {\r\n return\r\n }\r\n this._dropDownMenuContainer().toggleClass(MENU_INVISIBLE_CLASS, !value)\r\n }\r\n _dropDownMenuContainer() {\r\n return this._$menuButtonContainer\r\n }\r\n widgetOption(name, value) {\r\n this._dropDownMenu && this._dropDownMenu.option(name, value)\r\n }\r\n itemOption(item, property, value) {\r\n if (\"disabled\" === property || \"options.disabled\" === property) {\r\n var _this$_dropDownMenu;\r\n null === (_this$_dropDownMenu = this._dropDownMenu) || void 0 === _this$_dropDownMenu ? void 0 : _this$_dropDownMenu._itemOptionChanged(item, property, value)\r\n } else {\r\n this.renderMenuItems()\r\n }\r\n }\r\n}\r\nexport default ToolbarDropDownMenu;\r\n","/**\r\n * DevExtreme (esm/ui/toolbar.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth,\r\n getOuterWidth\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport {\r\n grep,\r\n deferRender\r\n} from \"../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport ToolbarDropDownMenu from \"./toolbar/ui.toolbar.drop_down_menu\";\r\nimport ToolbarBase from \"./toolbar/ui.toolbar.base\";\r\nimport {\r\n ChildDefaultTemplate\r\n} from \"../core/templates/child_default_template\";\r\nimport {\r\n toggleItemFocusableElementTabIndex\r\n} from \"./toolbar/ui.toolbar.utils\";\r\nvar TOOLBAR_AUTO_HIDE_ITEM_CLASS = \"dx-toolbar-item-auto-hide\";\r\nvar TOOLBAR_AUTO_HIDE_TEXT_CLASS = \"dx-toolbar-text-auto-hide\";\r\nvar TOOLBAR_HIDDEN_ITEM = \"dx-toolbar-item-invisible\";\r\nvar Toolbar = ToolbarBase.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n menuItemTemplate: \"menuItem\",\r\n menuContainer: void 0,\r\n overflowMenuVisible: false\r\n })\r\n },\r\n updateDimensions: function() {\r\n this._dimensionChanged()\r\n },\r\n _dimensionChanged: function(dimension) {\r\n if (\"height\" === dimension) {\r\n return\r\n }\r\n this.callBase();\r\n this._menu.renderMenuItems()\r\n },\r\n _initTemplates: function() {\r\n this.callBase();\r\n this._templateManager.addDefaultTemplates({\r\n actionSheetItem: new ChildDefaultTemplate(\"item\")\r\n })\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this._updateFocusableItemsTabIndex();\r\n this._renderMenu()\r\n },\r\n _postProcessRenderItems: function() {\r\n this._hideOverflowItems();\r\n this._menu._updateMenuVisibility();\r\n this.callBase();\r\n deferRender(() => {\r\n this._menu.renderMenuItems()\r\n })\r\n },\r\n _renderItem: function(index, item, itemContainer, $after) {\r\n var itemElement = this.callBase(index, item, itemContainer, $after);\r\n if (\"auto\" === item.locateInMenu) {\r\n itemElement.addClass(TOOLBAR_AUTO_HIDE_ITEM_CLASS)\r\n }\r\n if (\"dxButton\" === item.widget && \"inMenu\" === item.showText) {\r\n itemElement.toggleClass(TOOLBAR_AUTO_HIDE_TEXT_CLASS)\r\n }\r\n return itemElement\r\n },\r\n _getItemsWidth: function() {\r\n return this._getSummaryItemsWidth([this._$beforeSection, this._$centerSection, this._$afterSection])\r\n },\r\n _hideOverflowItems: function(elementWidth) {\r\n var overflowItems = this.$element().find(\".\" + TOOLBAR_AUTO_HIDE_ITEM_CLASS);\r\n if (!overflowItems.length) {\r\n return\r\n }\r\n elementWidth = elementWidth || getWidth(this.$element());\r\n $(overflowItems).removeClass(TOOLBAR_HIDDEN_ITEM);\r\n var itemsWidth = this._getItemsWidth();\r\n while (overflowItems.length && elementWidth < itemsWidth) {\r\n var $item = overflowItems.eq(-1);\r\n itemsWidth -= getOuterWidth($item);\r\n $item.addClass(TOOLBAR_HIDDEN_ITEM);\r\n overflowItems.splice(-1, 1)\r\n }\r\n },\r\n _getMenuItems: function() {\r\n var that = this;\r\n var menuItems = grep(this.option(\"items\") || [], (function(item) {\r\n return that._isMenuItem(item)\r\n }));\r\n var $hiddenItems = this._itemContainer().children(\".\" + TOOLBAR_AUTO_HIDE_ITEM_CLASS + \".\" + TOOLBAR_HIDDEN_ITEM).not(\".dx-state-invisible\");\r\n this._restoreItems = this._restoreItems || [];\r\n var overflowItems = [].slice.call($hiddenItems).map(item => {\r\n var itemData = that._getItemData(item);\r\n var $itemContainer = $(item);\r\n var $itemMarkup = $itemContainer.children();\r\n return extend({\r\n menuItemTemplate: function() {\r\n that._restoreItems.push({\r\n container: $itemContainer,\r\n item: $itemMarkup\r\n });\r\n var $container = $(\"
\").addClass(TOOLBAR_AUTO_HIDE_ITEM_CLASS);\r\n return $container.append($itemMarkup)\r\n }\r\n }, itemData)\r\n });\r\n return [...overflowItems, ...menuItems]\r\n },\r\n _getToolbarItems: function() {\r\n var that = this;\r\n return grep(this.option(\"items\") || [], (function(item) {\r\n return !that._isMenuItem(item)\r\n }))\r\n },\r\n _renderMenu: function() {\r\n this._renderMenuStrategy();\r\n deferRender(() => {\r\n this._menu.render()\r\n })\r\n },\r\n _renderMenuStrategy: function() {\r\n if (!this._menu) {\r\n this._menu = new ToolbarDropDownMenu(this)\r\n }\r\n },\r\n _arrangeItems: function() {\r\n if (this.$element().is(\":hidden\")) {\r\n return\r\n }\r\n this._$centerSection.css({\r\n margin: \"0 auto\",\r\n float: \"none\"\r\n });\r\n each(this._restoreItems || [], (function(_, obj) {\r\n $(obj.container).append(obj.item)\r\n }));\r\n this._restoreItems = [];\r\n var elementWidth = getWidth(this.$element());\r\n this._hideOverflowItems(elementWidth);\r\n this.callBase(elementWidth)\r\n },\r\n _itemOptionChanged: function(item, property, value) {\r\n if (this._isMenuItem(item)) {\r\n this._menu.itemOption(item, property, value)\r\n } else if (this._isToolbarItem(item)) {\r\n this.callBase(item, property, value)\r\n } else {\r\n this.callBase(item, property, value);\r\n this._menu.renderMenuItems()\r\n }\r\n if (\"disabled\" === property || \"options.disabled\" === property) {\r\n toggleItemFocusableElementTabIndex(this, item)\r\n }\r\n if (\"location\" === property) {\r\n this.repaint()\r\n }\r\n },\r\n _updateFocusableItemsTabIndex() {\r\n this._getToolbarItems().forEach(item => toggleItemFocusableElementTabIndex(this, item))\r\n },\r\n _isMenuItem: function(itemData) {\r\n return \"menu\" === itemData.location || \"always\" === itemData.locateInMenu\r\n },\r\n _isToolbarItem: function(itemData) {\r\n return void 0 === itemData.location || \"never\" === itemData.locateInMenu\r\n },\r\n _optionChanged: function(args) {\r\n var {\r\n name: name,\r\n value: value\r\n } = args;\r\n switch (name) {\r\n case \"menuItemTemplate\":\r\n this._changeMenuOption(\"itemTemplate\", this._getTemplate(value));\r\n break;\r\n case \"onItemClick\":\r\n this._changeMenuOption(name, value);\r\n this.callBase.apply(this, arguments);\r\n break;\r\n case \"menuContainer\":\r\n this._changeMenuOption(\"container\", value);\r\n break;\r\n case \"overflowMenuVisible\":\r\n this._changeMenuOption(\"opened\", value);\r\n break;\r\n case \"disabled\":\r\n this._changeMenuOption(\"disabled\", value);\r\n this.callBase.apply(this, arguments);\r\n this._updateFocusableItemsTabIndex();\r\n break;\r\n default:\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _changeMenuOption: function(name, value) {\r\n this._menu.widgetOption(name, value)\r\n }\r\n});\r\nregisterComponent(\"dxToolbar\", Toolbar);\r\nexport default Toolbar;\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.header_panel.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport $ from \"../../core/renderer\";\r\nimport Toolbar from \"../toolbar\";\r\nimport {\r\n ColumnsView\r\n} from \"./ui.grid_core.columns_view\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport \"../drop_down_menu\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getPathParts\r\n} from \"../../core/utils/data\";\r\nvar HEADER_PANEL_CLASS = \"header-panel\";\r\nvar TOOLBAR_BUTTON_CLASS = \"toolbar-button\";\r\nvar TOOLBAR_ARIA_LABEL = \"-ariaToolbar\";\r\nvar DEFAULT_TOOLBAR_ITEM_NAMES = [\"addRowButton\", \"applyFilterButton\", \"columnChooserButton\", \"exportButton\", \"groupPanel\", \"revertButton\", \"saveButton\", \"searchPanel\"];\r\nvar HeaderPanel = ColumnsView.inherit({\r\n _getToolbarItems: function() {\r\n return []\r\n },\r\n _getButtonContainer: function() {\r\n return $(\"
\").addClass(this.addWidgetPrefix(TOOLBAR_BUTTON_CLASS))\r\n },\r\n _getToolbarButtonClass: function(specificClass) {\r\n var secondClass = specificClass ? \" \" + specificClass : \"\";\r\n return this.addWidgetPrefix(TOOLBAR_BUTTON_CLASS) + secondClass\r\n },\r\n _getToolbarOptions: function() {\r\n var userToolbarOptions = this.option(\"toolbar\");\r\n var options = {\r\n toolbarOptions: {\r\n items: this._getToolbarItems(),\r\n visible: null === userToolbarOptions || void 0 === userToolbarOptions ? void 0 : userToolbarOptions.visible,\r\n disabled: null === userToolbarOptions || void 0 === userToolbarOptions ? void 0 : userToolbarOptions.disabled,\r\n onItemRendered: function(e) {\r\n var itemRenderedCallback = e.itemData.onItemRendered;\r\n if (itemRenderedCallback) {\r\n itemRenderedCallback(e)\r\n }\r\n }\r\n }\r\n };\r\n var userItems = null === userToolbarOptions || void 0 === userToolbarOptions ? void 0 : userToolbarOptions.items;\r\n options.toolbarOptions.items = this._normalizeToolbarItems(options.toolbarOptions.items, userItems);\r\n this.executeAction(\"onToolbarPreparing\", options);\r\n if (options.toolbarOptions && !isDefined(options.toolbarOptions.visible)) {\r\n var toolbarItems = options.toolbarOptions.items;\r\n options.toolbarOptions.visible = !!(null !== toolbarItems && void 0 !== toolbarItems && toolbarItems.length)\r\n }\r\n return options.toolbarOptions\r\n },\r\n _normalizeToolbarItems(defaultItems, userItems) {\r\n defaultItems.forEach(button => {\r\n if (!DEFAULT_TOOLBAR_ITEM_NAMES.includes(button.name)) {\r\n throw new Error(\"Default toolbar item '\".concat(button.name, \"' is not added to DEFAULT_TOOLBAR_ITEM_NAMES\"))\r\n }\r\n });\r\n var defaultProps = {\r\n location: \"after\"\r\n };\r\n var isArray = Array.isArray(userItems);\r\n if (!isDefined(userItems)) {\r\n return defaultItems\r\n }\r\n if (!isArray) {\r\n userItems = [userItems]\r\n }\r\n var defaultButtonsByNames = {};\r\n defaultItems.forEach(button => {\r\n defaultButtonsByNames[button.name] = button\r\n });\r\n var normalizedItems = userItems.map(button => {\r\n if (isString(button)) {\r\n button = {\r\n name: button\r\n }\r\n }\r\n if (isDefined(button.name)) {\r\n if (isDefined(defaultButtonsByNames[button.name])) {\r\n button = extend(true, {}, defaultButtonsByNames[button.name], button)\r\n } else if (DEFAULT_TOOLBAR_ITEM_NAMES.includes(button.name)) {\r\n button = _extends({}, button, {\r\n visible: false\r\n })\r\n }\r\n }\r\n return extend(true, {}, defaultProps, button)\r\n });\r\n return isArray ? normalizedItems : normalizedItems[0]\r\n },\r\n _renderCore: function() {\r\n if (!this._toolbar) {\r\n var $headerPanel = this.element();\r\n $headerPanel.addClass(this.addWidgetPrefix(HEADER_PANEL_CLASS));\r\n var label = messageLocalization.format(this.component.NAME + TOOLBAR_ARIA_LABEL);\r\n var $toolbar = $(\"
\").attr(\"aria-label\", label).appendTo($headerPanel);\r\n this._toolbar = this._createComponent($toolbar, Toolbar, this._toolbarOptions)\r\n } else {\r\n this._toolbar.option(this._toolbarOptions)\r\n }\r\n },\r\n _columnOptionChanged: noop,\r\n _handleDataChanged: function() {\r\n if (this._requireReady) {\r\n this.render()\r\n }\r\n },\r\n init: function() {\r\n this.callBase();\r\n this.createAction(\"onToolbarPreparing\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n render: function() {\r\n this._toolbarOptions = this._getToolbarOptions();\r\n this.callBase.apply(this, arguments)\r\n },\r\n setToolbarItemDisabled: function(name, optionValue) {\r\n var toolbarInstance = this._toolbar;\r\n if (toolbarInstance) {\r\n var items = toolbarInstance.option(\"items\") || [];\r\n var itemIndex = items.indexOf(items.filter((function(item) {\r\n return item.name === name\r\n }))[0]);\r\n if (itemIndex >= 0) {\r\n var itemOptionPrefix = \"items[\" + itemIndex + \"]\";\r\n if (toolbarInstance.option(itemOptionPrefix + \".options\")) {\r\n toolbarInstance.option(itemOptionPrefix + \".options.disabled\", optionValue)\r\n } else {\r\n toolbarInstance.option(itemOptionPrefix + \".disabled\", optionValue)\r\n }\r\n }\r\n }\r\n },\r\n updateToolbarDimensions: function() {\r\n var _this$_toolbar;\r\n null === (_this$_toolbar = this._toolbar) || void 0 === _this$_toolbar ? void 0 : _this$_toolbar.updateDimensions()\r\n },\r\n getHeaderPanel: function() {\r\n return this.element()\r\n },\r\n getHeight: function() {\r\n return this.getElementHeight()\r\n },\r\n optionChanged: function(args) {\r\n if (\"onToolbarPreparing\" === args.name) {\r\n this._invalidate();\r\n args.handled = true\r\n }\r\n if (\"toolbar\" === args.name) {\r\n args.handled = true;\r\n if (this._toolbar) {\r\n var parts = getPathParts(args.fullName);\r\n var optionName = args.fullName.replace(/^toolbar\\./, \"\");\r\n if (1 === parts.length) {\r\n var toolbarOptions = this._getToolbarOptions();\r\n this._toolbar.option(toolbarOptions)\r\n } else if (\"items\" === parts[1]) {\r\n if (2 === parts.length) {\r\n var _toolbarOptions = this._getToolbarOptions();\r\n this._toolbar.option(\"items\", _toolbarOptions.items)\r\n } else if (3 === parts.length) {\r\n var normalizedItem = this._normalizeToolbarItems(this._getToolbarItems(), args.value);\r\n this._toolbar.option(optionName, normalizedItem)\r\n } else if (parts.length >= 4) {\r\n this._toolbar.option(optionName, args.value)\r\n }\r\n } else {\r\n this._toolbar.option(optionName, args.value)\r\n }\r\n }\r\n }\r\n this.callBase(args)\r\n },\r\n isVisible: function() {\r\n return this._toolbarOptions && this._toolbarOptions.visible\r\n },\r\n allowDragging: noop\r\n});\r\nexport var headerPanelModule = {\r\n defaultOptions: function() {\r\n return {}\r\n },\r\n views: {\r\n headerPanel: HeaderPanel\r\n },\r\n extenders: {\r\n controllers: {\r\n resizing: {\r\n _updateDimensionsCore: function() {\r\n this.callBase.apply(this, arguments);\r\n this.getView(\"headerPanel\").updateToolbarDimensions()\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.header_panel.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n headerPanelModule\r\n} from \"../grid_core/ui.grid_core.header_panel\";\r\nexport var HeaderPanel = headerPanelModule.views.headerPanel;\r\ngridCore.registerModule(\"headerPanel\", headerPanelModule);\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.base.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n deferRender,\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isFunction,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n logger\r\n} from \"../../core/utils/console\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n isMaterial\r\n} from \"../themes\";\r\nvar DATAGRID_ROW_SELECTOR = \".dx-row\";\r\nvar DATAGRID_DEPRECATED_TEMPLATE_WARNING = \"Specifying grid templates with the jQuery selector name is now deprecated. Use the DOM Node or the jQuery object that references this selector instead.\";\r\nimport \"./ui.data_grid.column_headers\";\r\nimport \"./ui.data_grid.columns_controller\";\r\nimport \"./ui.data_grid.data_controller\";\r\nimport \"./ui.data_grid.sorting\";\r\nimport \"./ui.data_grid.rows\";\r\nimport \"./ui.data_grid.context_menu\";\r\nimport \"./ui.data_grid.error_handling\";\r\nimport \"./ui.data_grid.grid_view\";\r\nimport \"./ui.data_grid.header_panel\";\r\ngridCore.registerModulesOrder([\"stateStoring\", \"columns\", \"selection\", \"editorFactory\", \"columnChooser\", \"grouping\", \"editing\", \"editingRowBased\", \"editingFormBased\", \"editingCellBased\", \"masterDetail\", \"validating\", \"adaptivity\", \"data\", \"virtualScrolling\", \"columnHeaders\", \"filterRow\", \"headerPanel\", \"headerFilter\", \"sorting\", \"search\", \"rows\", \"pager\", \"columnsResizingReordering\", \"contextMenu\", \"keyboardNavigation\", \"errorHandling\", \"summary\", \"columnFixing\", \"export\", \"gridView\"]);\r\nvar DataGrid = Widget.inherit({\r\n _activeStateUnit: DATAGRID_ROW_SELECTOR,\r\n _getDefaultOptions: function() {\r\n var result = this.callBase();\r\n each(gridCore.modules, (function() {\r\n if (isFunction(this.defaultOptions)) {\r\n extend(true, result, this.defaultOptions())\r\n }\r\n }));\r\n return result\r\n },\r\n _setDeprecatedOptions: function() {\r\n this.callBase();\r\n extend(this._deprecatedOptions, {\r\n useKeyboard: {\r\n since: \"19.2\",\r\n alias: \"keyboardNavigation.enabled\"\r\n },\r\n rowTemplate: {\r\n since: \"21.2\",\r\n message: 'Use the \"dataRowTemplate\" option instead'\r\n }\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"ios\"\r\n },\r\n options: {\r\n showRowLines: true\r\n }\r\n }, {\r\n device: function() {\r\n return isMaterial()\r\n },\r\n options: {\r\n showRowLines: true,\r\n showColumnLines: false,\r\n headerFilter: {\r\n height: 315\r\n },\r\n editing: {\r\n useIcons: true\r\n },\r\n selection: {\r\n showCheckBoxesMode: \"always\"\r\n }\r\n }\r\n }, {\r\n device: function() {\r\n return browser.webkit\r\n },\r\n options: {\r\n loadingTimeout: 30,\r\n loadPanel: {\r\n animation: {\r\n show: {\r\n easing: \"cubic-bezier(1, 0, 1, 0)\",\r\n duration: 500,\r\n from: {\r\n opacity: 0\r\n },\r\n to: {\r\n opacity: 1\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }, {\r\n device: function(_device) {\r\n return \"desktop\" !== _device.deviceType\r\n },\r\n options: {\r\n grouping: {\r\n expandMode: \"rowClick\"\r\n }\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n this.callBase();\r\n gridCore.processModules(this, gridCore);\r\n gridCore.callModuleItemsMethod(this, \"init\")\r\n },\r\n _clean: noop,\r\n _optionChanged: function(args) {\r\n gridCore.callModuleItemsMethod(this, \"optionChanged\", [args]);\r\n if (!args.handled) {\r\n this.callBase(args)\r\n }\r\n },\r\n _dimensionChanged: function() {\r\n this.updateDimensions(true)\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this.updateDimensions()\r\n }\r\n },\r\n _initMarkup: function() {\r\n this.callBase.apply(this, arguments);\r\n this.getView(\"gridView\").render(this.$element())\r\n },\r\n _renderContentImpl: function() {\r\n this.getView(\"gridView\").update()\r\n },\r\n _renderContent: function() {\r\n var that = this;\r\n deferRender((function() {\r\n that._renderContentImpl()\r\n }))\r\n },\r\n _getTemplate: function(templateName) {\r\n var template = templateName;\r\n if (isString(template) && \"#\" === template[0]) {\r\n template = $(templateName);\r\n logger.warn(DATAGRID_DEPRECATED_TEMPLATE_WARNING)\r\n }\r\n return this.callBase(template)\r\n },\r\n _dispose: function() {\r\n this.callBase();\r\n gridCore.callModuleItemsMethod(this, \"dispose\")\r\n },\r\n isReady: function() {\r\n return this.getController(\"data\").isReady()\r\n },\r\n beginUpdate: function() {\r\n this.callBase();\r\n gridCore.callModuleItemsMethod(this, \"beginUpdate\")\r\n },\r\n endUpdate: function() {\r\n gridCore.callModuleItemsMethod(this, \"endUpdate\");\r\n this.callBase()\r\n },\r\n getController: function(name) {\r\n return this._controllers[name]\r\n },\r\n getView: function(name) {\r\n return this._views[name]\r\n },\r\n focus: function(element) {\r\n this.getController(\"keyboardNavigation\").focus(element)\r\n }\r\n});\r\nDataGrid.registerModule = gridCore.registerModule.bind(gridCore);\r\nregisterComponent(\"dxDataGrid\", DataGrid);\r\nexport default DataGrid;\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.state_storing_core.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nimport modules from \"./ui.grid_core.modules\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport {\r\n sessionStorage\r\n} from \"../../core/utils/storage\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n isDefined,\r\n isPlainObject,\r\n isEmptyObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n fromPromise\r\n} from \"../../core/utils/deferred\";\r\nvar DATE_REGEX = /^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}(?:\\.\\d*)?)Z$/;\r\nvar parseDates = function parseDates(state) {\r\n if (!state) {\r\n return\r\n }\r\n each(state, (function(key, value) {\r\n if (isPlainObject(value) || Array.isArray(value)) {\r\n parseDates(value)\r\n } else if (\"string\" === typeof value) {\r\n var date = DATE_REGEX.exec(value);\r\n if (date) {\r\n state[key] = new Date(Date.UTC(+date[1], +date[2] - 1, +date[3], +date[4], +date[5], +date[6]))\r\n }\r\n }\r\n }))\r\n};\r\nexport var StateStoringController = modules.ViewController.inherit(function() {\r\n var getStorage = function(options) {\r\n var storage = \"sessionStorage\" === options.type ? sessionStorage() : getWindow().localStorage;\r\n if (!storage) {\r\n throw new Error(\"E1007\")\r\n }\r\n return storage\r\n };\r\n var getUniqueStorageKey = function(options) {\r\n return isDefined(options.storageKey) ? options.storageKey : \"storage\"\r\n };\r\n return {\r\n _loadState: function() {\r\n var options = this.option(\"stateStoring\");\r\n if (\"custom\" === options.type) {\r\n return options.customLoad && options.customLoad()\r\n }\r\n try {\r\n return JSON.parse(getStorage(options).getItem(getUniqueStorageKey(options)))\r\n } catch (e) {\r\n errors.log(e.message)\r\n }\r\n },\r\n _saveState: function(state) {\r\n var options = this.option(\"stateStoring\");\r\n if (\"custom\" === options.type) {\r\n options.customSave && options.customSave(state);\r\n return\r\n }\r\n try {\r\n getStorage(options).setItem(getUniqueStorageKey(options), JSON.stringify(state))\r\n } catch (e) {\r\n errors.log(e.message)\r\n }\r\n },\r\n publicMethods: function() {\r\n return [\"state\"]\r\n },\r\n isEnabled: function() {\r\n return this.option(\"stateStoring.enabled\")\r\n },\r\n init: function() {\r\n var that = this;\r\n that._state = {};\r\n that._isLoaded = false;\r\n that._isLoading = false;\r\n that._windowUnloadHandler = function() {\r\n if (void 0 !== that._savingTimeoutID) {\r\n that._saveState(that.state())\r\n }\r\n };\r\n eventsEngine.on(getWindow(), \"unload\", that._windowUnloadHandler);\r\n return that\r\n },\r\n isLoaded: function() {\r\n return this._isLoaded\r\n },\r\n isLoading: function() {\r\n return this._isLoading\r\n },\r\n load: function() {\r\n this._isLoading = true;\r\n var loadResult = fromPromise(this._loadState());\r\n loadResult.always(() => {\r\n this._isLoaded = true;\r\n this._isLoading = false\r\n }).done(state => {\r\n if (null !== state && !isEmptyObject(state)) {\r\n this.state(state)\r\n }\r\n });\r\n return loadResult\r\n },\r\n state: function(_state) {\r\n var that = this;\r\n if (!arguments.length) {\r\n return extend(true, {}, that._state)\r\n } else {\r\n that._state = extend({}, _state);\r\n parseDates(that._state)\r\n }\r\n },\r\n save: function() {\r\n var that = this;\r\n clearTimeout(that._savingTimeoutID);\r\n that._savingTimeoutID = setTimeout((function() {\r\n that._saveState(that.state());\r\n that._savingTimeoutID = void 0\r\n }), that.option(\"stateStoring.savingTimeout\"))\r\n },\r\n optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"stateStoring\":\r\n if (this.isEnabled() && !this.isLoading()) {\r\n this.load()\r\n }\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n dispose: function() {\r\n clearTimeout(this._savingTimeoutID);\r\n eventsEngine.off(getWindow(), \"unload\", this._windowUnloadHandler)\r\n }\r\n }\r\n}());\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.state_storing.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getKeyHash,\r\n equalByValue\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n StateStoringController\r\n} from \"./ui.grid_core.state_storing_core\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nvar getDataState = that => {\r\n var pagerView = that.getView(\"pagerView\");\r\n var dataController = that.getController(\"data\");\r\n var state = {\r\n allowedPageSizes: pagerView ? pagerView.getPageSizes() : void 0,\r\n filterPanel: {\r\n filterEnabled: that.option(\"filterPanel.filterEnabled\")\r\n },\r\n filterValue: that.option(\"filterValue\"),\r\n focusedRowKey: that.option(\"focusedRowEnabled\") ? that.option(\"focusedRowKey\") : void 0\r\n };\r\n return extend(state, dataController.getUserState())\r\n};\r\nvar processLoadState = that => {\r\n var columnsController = that.getController(\"columns\");\r\n var selectionController = that.getController(\"selection\");\r\n var exportController = that.getController(\"export\");\r\n var dataController = that.getController(\"data\");\r\n if (columnsController) {\r\n columnsController.columnsChanged.add((function() {\r\n that.updateState({\r\n columns: columnsController.getUserState()\r\n })\r\n }))\r\n }\r\n if (selectionController) {\r\n selectionController.selectionChanged.add((function(e) {\r\n that.updateState({\r\n selectedRowKeys: e.selectedRowKeys,\r\n selectionFilter: e.selectionFilter\r\n })\r\n }))\r\n }\r\n if (dataController) {\r\n that._initialPageSize = that.option(\"paging.pageSize\");\r\n that._initialFilterValue = that.option(\"filterValue\");\r\n dataController.changed.add((function() {\r\n var state = getDataState(that);\r\n that.updateState(state)\r\n }))\r\n }\r\n if (exportController) {\r\n exportController.selectionOnlyChanged.add((function() {\r\n that.updateState({\r\n exportSelectionOnly: exportController.selectionOnly()\r\n })\r\n }))\r\n }\r\n};\r\nvar DEFAULT_FILTER_VALUE = null;\r\nvar getFilterValue = (that, state) => {\r\n var filterSyncController = that.getController(\"filterSync\");\r\n var columnsController = that.getController(\"columns\");\r\n var hasFilterState = state.columns || void 0 !== state.filterValue;\r\n if (filterSyncController) {\r\n if (hasFilterState) {\r\n return state.filterValue || filterSyncController.getFilterValueFromColumns(state.columns)\r\n } else {\r\n return that._initialFilterValue || filterSyncController.getFilterValueFromColumns(columnsController.getColumns())\r\n }\r\n }\r\n return DEFAULT_FILTER_VALUE\r\n};\r\nexport var stateStoringModule = {\r\n defaultOptions: function() {\r\n return {\r\n stateStoring: {\r\n enabled: false,\r\n storageKey: null,\r\n type: \"localStorage\",\r\n customLoad: null,\r\n customSave: null,\r\n savingTimeout: 2e3\r\n }\r\n }\r\n },\r\n controllers: {\r\n stateStoring: StateStoringController\r\n },\r\n extenders: {\r\n views: {\r\n rowsView: {\r\n init: function() {\r\n var that = this;\r\n var dataController = that.getController(\"data\");\r\n that.callBase();\r\n dataController.stateLoaded.add((function() {\r\n if (dataController.isLoaded() && !dataController.getDataSource()) {\r\n that.setLoading(false);\r\n that.renderNoDataText();\r\n var columnHeadersView = that.component.getView(\"columnHeadersView\");\r\n columnHeadersView && columnHeadersView.render();\r\n that.component._fireContentReadyAction()\r\n }\r\n }))\r\n }\r\n }\r\n },\r\n controllers: {\r\n stateStoring: {\r\n init: function() {\r\n this.callBase.apply(this, arguments);\r\n processLoadState(this)\r\n },\r\n isLoading: function() {\r\n return this.callBase() || this.getController(\"data\").isStateLoading()\r\n },\r\n state: function(_state) {\r\n var result = this.callBase.apply(this, arguments);\r\n if (void 0 !== _state) {\r\n this.applyState(extend(true, {}, _state))\r\n }\r\n return result\r\n },\r\n updateState: function(state) {\r\n if (this.isEnabled()) {\r\n var oldState = this.state();\r\n var newState = extend({}, oldState, state);\r\n var oldStateHash = getKeyHash(oldState);\r\n var newStateHash = getKeyHash(newState);\r\n if (!equalByValue(oldStateHash, newStateHash)) {\r\n state = extend(true, {}, state);\r\n extend(this._state, state);\r\n this.save()\r\n }\r\n } else {\r\n extend(this._state, state)\r\n }\r\n },\r\n applyState: function(state) {\r\n var allowedPageSizes = state.allowedPageSizes;\r\n var searchText = state.searchText;\r\n var selectedRowKeys = state.selectedRowKeys;\r\n var selectionFilter = state.selectionFilter;\r\n var exportController = this.getController(\"export\");\r\n var columnsController = this.getController(\"columns\");\r\n var dataController = this.getController(\"data\");\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n var isVirtualScrollingMode = \"virtual\" === scrollingMode || \"infinite\" === scrollingMode;\r\n var showPageSizeSelector = true === this.option(\"pager.visible\") && this.option(\"pager.showPageSizeSelector\");\r\n this.component.beginUpdate();\r\n if (columnsController) {\r\n columnsController.setUserState(state.columns)\r\n }\r\n if (exportController) {\r\n exportController.selectionOnly(state.exportSelectionOnly)\r\n }\r\n if (!this.option(\"selection.deferred\")) {\r\n this.option(\"selectedRowKeys\", selectedRowKeys || [])\r\n }\r\n this.option(\"selectionFilter\", selectionFilter);\r\n if (allowedPageSizes && \"auto\" === this.option(\"pager.allowedPageSizes\")) {\r\n this.option(\"pager\").allowedPageSizes = allowedPageSizes\r\n }\r\n if (this.option(\"focusedRowEnabled\")) {\r\n this.option(\"focusedRowIndex\", -1);\r\n this.option(\"focusedRowKey\", state.focusedRowKey || null)\r\n }\r\n this.component.endUpdate();\r\n this.option(\"searchPanel.text\", searchText || \"\");\r\n this.option(\"filterValue\", getFilterValue(this, state));\r\n this.option(\"filterPanel.filterEnabled\", state.filterPanel ? state.filterPanel.filterEnabled : true);\r\n this.option(\"paging.pageIndex\", state.pageIndex || 0);\r\n this.option(\"paging.pageSize\", (!isVirtualScrollingMode || showPageSizeSelector) && isDefined(state.pageSize) ? state.pageSize : this._initialPageSize);\r\n dataController && dataController.reset()\r\n }\r\n },\r\n columns: {\r\n _shouldReturnVisibleColumns: function() {\r\n var result = this.callBase.apply(this, arguments);\r\n var stateStoringController = this.getController(\"stateStoring\");\r\n return result && (!stateStoringController.isEnabled() || stateStoringController.isLoaded())\r\n }\r\n },\r\n data: {\r\n callbackNames: function() {\r\n return this.callBase().concat([\"stateLoaded\"])\r\n },\r\n _refreshDataSource: function() {\r\n var callBase = this.callBase;\r\n var stateStoringController = this.getController(\"stateStoring\");\r\n if (stateStoringController.isEnabled() && !stateStoringController.isLoaded()) {\r\n clearTimeout(this._restoreStateTimeoutID);\r\n var deferred = new Deferred;\r\n this._restoreStateTimeoutID = setTimeout(() => {\r\n stateStoringController.load().always(() => {\r\n this._restoreStateTimeoutID = null\r\n }).done(() => {\r\n callBase.call(this);\r\n this.stateLoaded.fire();\r\n deferred.resolve()\r\n }).fail(error => {\r\n this.stateLoaded.fire();\r\n this._handleLoadError(error || \"Unknown error\");\r\n deferred.reject()\r\n })\r\n });\r\n return deferred.promise()\r\n } else if (!this.isStateLoading()) {\r\n callBase.call(this)\r\n }\r\n },\r\n isLoading: function() {\r\n var stateStoringController = this.getController(\"stateStoring\");\r\n return this.callBase() || stateStoringController.isLoading()\r\n },\r\n isStateLoading: function() {\r\n return isDefined(this._restoreStateTimeoutID)\r\n },\r\n isLoaded: function() {\r\n return this.callBase() && !this.isStateLoading()\r\n },\r\n dispose: function() {\r\n clearTimeout(this._restoreStateTimeoutID);\r\n this.callBase()\r\n }\r\n },\r\n selection: {\r\n _fireSelectionChanged: function(options) {\r\n var stateStoringController = this.getController(\"stateStoring\");\r\n var isDeferredSelection = this.option(\"selection.deferred\");\r\n if (stateStoringController.isLoading() && isDeferredSelection) {\r\n return\r\n }\r\n this.callBase.apply(this, arguments)\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.state_storing.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n stateStoringModule\r\n} from \"../grid_core/ui.grid_core.state_storing\";\r\ngridCore.registerModule(\"stateStoring\", stateStoringModule);\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.selection.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport gridCore from \"../data_grid/ui.data_grid.core\";\r\nimport gridCoreUtils from \"./ui.grid_core.utils\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n touch\r\n} from \"../../core/utils/support\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n addNamespace,\r\n isCommandKeyPressed\r\n} from \"../../events/utils/index\";\r\nimport holdEvent from \"../../events/hold\";\r\nimport Selection from \"../selection/selection\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport errors from \"../widget/ui.errors\";\r\nvar EDITOR_CELL_CLASS = \"dx-editor-cell\";\r\nvar ROW_CLASS = \"dx-row\";\r\nvar ROW_SELECTION_CLASS = \"dx-selection\";\r\nvar SELECT_CHECKBOX_CLASS = \"dx-select-checkbox\";\r\nvar CHECKBOXES_HIDDEN_CLASS = \"dx-select-checkboxes-hidden\";\r\nvar COMMAND_SELECT_CLASS = \"dx-command-select\";\r\nvar SELECTION_DISABLED_CLASS = \"dx-selection-disabled\";\r\nvar DATA_ROW_CLASS = \"dx-data-row\";\r\nvar SHOW_CHECKBOXES_MODE = \"selection.showCheckBoxesMode\";\r\nvar SELECTION_MODE = \"selection.mode\";\r\nvar processLongTap = function(that, dxEvent) {\r\n var selectionController = that.getController(\"selection\");\r\n var rowsView = that.getView(\"rowsView\");\r\n var $row = $(dxEvent.target).closest(\".\" + DATA_ROW_CLASS);\r\n var rowIndex = rowsView.getRowIndex($row);\r\n if (rowIndex < 0) {\r\n return\r\n }\r\n if (\"onLongTap\" === that.option(SHOW_CHECKBOXES_MODE)) {\r\n if (selectionController.isSelectionWithCheckboxes()) {\r\n selectionController.stopSelectionWithCheckboxes()\r\n } else {\r\n selectionController.startSelectionWithCheckboxes()\r\n }\r\n } else {\r\n if (\"onClick\" === that.option(SHOW_CHECKBOXES_MODE)) {\r\n selectionController.startSelectionWithCheckboxes()\r\n }\r\n if (\"always\" !== that.option(SHOW_CHECKBOXES_MODE)) {\r\n selectionController.changeItemSelection(rowIndex, {\r\n control: true\r\n })\r\n }\r\n }\r\n};\r\nvar SelectionController = gridCore.Controller.inherit(function() {\r\n var selectionCellTemplate = (container, options) => {\r\n var component = options.component;\r\n var rowsView = component.getView(\"rowsView\");\r\n if (component.option(\"renderAsync\") && !component.option(\"selection.deferred\")) {\r\n options.value = component.isRowSelected(options.row.key)\r\n }\r\n rowsView.renderSelectCheckBoxContainer($(container), options)\r\n };\r\n var selectionHeaderTemplate = (container, options) => {\r\n var column = options.column;\r\n var $cellElement = $(container);\r\n var columnHeadersView = options.component.getView(\"columnHeadersView\");\r\n $cellElement.addClass(EDITOR_CELL_CLASS);\r\n columnHeadersView._renderSelectAllCheckBox($cellElement, column);\r\n columnHeadersView._attachSelectAllCheckBoxClickEvent($cellElement)\r\n };\r\n return {\r\n init: function() {\r\n var {\r\n deferred: deferred,\r\n selectAllMode: selectAllMode,\r\n mode: mode\r\n } = this.option(\"selection\") || {};\r\n if (\"infinite\" === this.option(\"scrolling.mode\") && !deferred && \"multiple\" === mode && \"allPages\" === selectAllMode) {\r\n errors.log(\"W1018\")\r\n }\r\n this._dataController = this.getController(\"data\");\r\n this._selectionMode = mode;\r\n this._isSelectionWithCheckboxes = false;\r\n this._selection = this._createSelection();\r\n this._updateSelectColumn();\r\n this.createAction(\"onSelectionChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this._dataController && this._dataController.pushed.add(this._handleDataPushed.bind(this))\r\n },\r\n _handleDataPushed: function(changes) {\r\n var removedKeys = changes.filter(change => \"remove\" === change.type).map(change => change.key);\r\n removedKeys.length && this.deselectRows(removedKeys)\r\n },\r\n _getSelectionConfig: function() {\r\n var dataController = this._dataController;\r\n var columnsController = this.getController(\"columns\");\r\n var selectionOptions = this.option(\"selection\") || {};\r\n var deferred = selectionOptions.deferred;\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n var virtualPaging = \"virtual\" === scrollingMode || \"infinite\" === scrollingMode;\r\n var allowSelectAll = this.option(\"selection.allowSelectAll\");\r\n var legacyScrollingMode = this.option(\"scrolling.legacyMode\");\r\n return {\r\n selectedKeys: this.option(\"selectedRowKeys\"),\r\n mode: this._selectionMode,\r\n deferred: deferred,\r\n maxFilterLengthInRequest: selectionOptions.maxFilterLengthInRequest,\r\n selectionFilter: this.option(\"selectionFilter\"),\r\n ignoreDisabledItems: true,\r\n allowLoadByRange: function() {\r\n var hasGroupColumns = columnsController.getGroupColumns().length > 0;\r\n return virtualPaging && !legacyScrollingMode && !hasGroupColumns && allowSelectAll && !deferred\r\n },\r\n key: function() {\r\n return null === dataController || void 0 === dataController ? void 0 : dataController.key()\r\n },\r\n keyOf: function(item) {\r\n return null === dataController || void 0 === dataController ? void 0 : dataController.keyOf(item)\r\n },\r\n dataFields: function() {\r\n var _dataController$dataS;\r\n return null === (_dataController$dataS = dataController.dataSource()) || void 0 === _dataController$dataS ? void 0 : _dataController$dataS.select()\r\n },\r\n load: function(options) {\r\n var _dataController$dataS2;\r\n return (null === (_dataController$dataS2 = dataController.dataSource()) || void 0 === _dataController$dataS2 ? void 0 : _dataController$dataS2.load(options)) || (new Deferred).resolve([])\r\n },\r\n plainItems: function() {\r\n return dataController.items(true)\r\n },\r\n isItemSelected: function(item) {\r\n return item.selected\r\n },\r\n isSelectableItem: function(item) {\r\n return \"data\" === (null === item || void 0 === item ? void 0 : item.rowType) && !item.isNewRow\r\n },\r\n getItemData: function(item) {\r\n return (null === item || void 0 === item ? void 0 : item.oldData) || (null === item || void 0 === item ? void 0 : item.data) || item\r\n },\r\n filter: function() {\r\n return dataController.getCombinedFilter(deferred)\r\n },\r\n totalCount: () => dataController.totalCount(),\r\n getLoadOptions: function(loadItemIndex, focusedItemIndex, shiftItemIndex) {\r\n var _dataController$dataS3, _dataController$dataS4;\r\n var {\r\n sort: sort,\r\n filter: filter\r\n } = null !== (_dataController$dataS3 = null === (_dataController$dataS4 = dataController.dataSource()) || void 0 === _dataController$dataS4 ? void 0 : _dataController$dataS4.lastLoadOptions()) && void 0 !== _dataController$dataS3 ? _dataController$dataS3 : {};\r\n var minIndex = Math.min(loadItemIndex, focusedItemIndex);\r\n var maxIndex = Math.max(loadItemIndex, focusedItemIndex);\r\n if (isDefined(shiftItemIndex)) {\r\n minIndex = Math.min(shiftItemIndex, minIndex);\r\n maxIndex = Math.max(shiftItemIndex, maxIndex)\r\n }\r\n var take = maxIndex - minIndex + 1;\r\n return {\r\n skip: minIndex,\r\n take: take,\r\n filter: filter,\r\n sort: sort\r\n }\r\n },\r\n onSelectionChanged: this._updateSelectedItems.bind(this)\r\n }\r\n },\r\n _updateSelectColumn: function() {\r\n var columnsController = this.getController(\"columns\");\r\n var isSelectColumnVisible = this.isSelectColumnVisible();\r\n columnsController.addCommandColumn({\r\n type: \"selection\",\r\n command: \"select\",\r\n visible: isSelectColumnVisible,\r\n visibleIndex: -1,\r\n dataType: \"boolean\",\r\n alignment: \"center\",\r\n cssClass: COMMAND_SELECT_CLASS,\r\n width: \"auto\",\r\n cellTemplate: selectionCellTemplate,\r\n headerCellTemplate: selectionHeaderTemplate\r\n });\r\n columnsController.columnOption(\"command:select\", \"visible\", isSelectColumnVisible)\r\n },\r\n _createSelection: function() {\r\n var options = this._getSelectionConfig();\r\n return new Selection(options)\r\n },\r\n _fireSelectionChanged: function(options) {\r\n var argument = this.option(\"selection.deferred\") ? {\r\n selectionFilter: this.option(\"selectionFilter\")\r\n } : {\r\n selectedRowKeys: this.option(\"selectedRowKeys\")\r\n };\r\n this.selectionChanged.fire(argument);\r\n if (options) {\r\n this.executeAction(\"onSelectionChanged\", options)\r\n }\r\n },\r\n _updateCheckboxesState: function(options) {\r\n var isDeferredMode = options.isDeferredMode;\r\n var selectionFilter = options.selectionFilter;\r\n var selectedItemKeys = options.selectedItemKeys;\r\n var removedItemKeys = options.removedItemKeys;\r\n if (\"onClick\" === this.option(SHOW_CHECKBOXES_MODE)) {\r\n if (isDeferredMode ? selectionFilter && function(that, selectionFilter) {\r\n var keyIndex = 0;\r\n var store = that._dataController.store();\r\n var key = store && store.key();\r\n var isComplexKey = Array.isArray(key);\r\n if (!selectionFilter.length) {\r\n return false\r\n }\r\n if (isComplexKey && Array.isArray(selectionFilter[0]) && \"and\" === selectionFilter[1]) {\r\n for (var i = 0; i < selectionFilter.length; i++) {\r\n if (Array.isArray(selectionFilter[i])) {\r\n if (selectionFilter[i][0] !== key[keyIndex] || \"=\" !== selectionFilter[i][1]) {\r\n return true\r\n }\r\n keyIndex++\r\n }\r\n }\r\n return false\r\n }\r\n return key !== selectionFilter[0]\r\n }(this, selectionFilter) : selectedItemKeys.length > 1) {\r\n this.startSelectionWithCheckboxes()\r\n } else if (isDeferredMode ? selectionFilter && !selectionFilter.length : 0 === selectedItemKeys.length && removedItemKeys.length) {\r\n this.stopSelectionWithCheckboxes()\r\n }\r\n }\r\n },\r\n _updateSelectedItems: function(args) {\r\n var selectionChangedOptions;\r\n var isDeferredMode = this.option(\"selection.deferred\");\r\n var selectionFilter = this._selection.selectionFilter();\r\n var dataController = this._dataController;\r\n var items = dataController.items(true);\r\n var visibleItems = dataController.items();\r\n if (!items) {\r\n return\r\n }\r\n var isSelectionWithCheckboxes = this.isSelectionWithCheckboxes();\r\n var changedItemIndexes = this.getChangedItemIndexes(items);\r\n var visibleChangedItemIndexes = this.getChangedItemIndexes(visibleItems);\r\n this._updateCheckboxesState({\r\n selectedItemKeys: args.selectedItemKeys,\r\n removedItemKeys: args.removedItemKeys,\r\n selectionFilter: selectionFilter,\r\n isDeferredMode: isDeferredMode\r\n });\r\n if (changedItemIndexes.length || isSelectionWithCheckboxes !== this.isSelectionWithCheckboxes()) {\r\n dataController.updateItems({\r\n changeType: \"updateSelection\",\r\n itemIndexes: visibleChangedItemIndexes\r\n })\r\n }\r\n if (isDeferredMode) {\r\n this.option(\"selectionFilter\", selectionFilter);\r\n selectionChangedOptions = {}\r\n } else if (args.addedItemKeys.length || args.removedItemKeys.length) {\r\n this._selectedItemsInternalChange = true;\r\n this.option(\"selectedRowKeys\", args.selectedItemKeys.slice(0));\r\n this._selectedItemsInternalChange = false;\r\n selectionChangedOptions = {\r\n selectedRowsData: args.selectedItems.slice(0),\r\n selectedRowKeys: args.selectedItemKeys.slice(0),\r\n currentSelectedRowKeys: args.addedItemKeys.slice(0),\r\n currentDeselectedRowKeys: args.removedItemKeys.slice(0)\r\n }\r\n }\r\n this._fireSelectionChanged(selectionChangedOptions)\r\n },\r\n getChangedItemIndexes: function(items) {\r\n var itemIndexes = [];\r\n var isDeferredSelection = this.option(\"selection.deferred\");\r\n for (var i = 0, length = items.length; i < length; i++) {\r\n var row = items[i];\r\n var isItemSelected = this.isRowSelected(isDeferredSelection ? row.data : row.key);\r\n if (this._selection.isDataItem(row) && row.isSelected !== isItemSelected) {\r\n itemIndexes.push(i)\r\n }\r\n }\r\n return itemIndexes\r\n },\r\n callbackNames: function() {\r\n return [\"selectionChanged\"]\r\n },\r\n optionChanged: function(args) {\r\n this.callBase(args);\r\n switch (args.name) {\r\n case \"selection\":\r\n var oldSelectionMode = this._selectionMode;\r\n this.init();\r\n if (\"selection.showCheckBoxesMode\" !== args.fullName) {\r\n var selectionMode = this._selectionMode;\r\n var selectedRowKeys = this.option(\"selectedRowKeys\");\r\n if (oldSelectionMode !== selectionMode) {\r\n if (\"single\" === selectionMode) {\r\n if (selectedRowKeys.length > 1) {\r\n selectedRowKeys = [selectedRowKeys[0]]\r\n }\r\n } else if (\"multiple\" !== selectionMode) {\r\n selectedRowKeys = []\r\n }\r\n }\r\n this.selectRows(selectedRowKeys).always(() => {\r\n this._fireSelectionChanged()\r\n })\r\n }\r\n this.getController(\"columns\").updateColumns();\r\n args.handled = true;\r\n break;\r\n case \"selectionFilter\":\r\n this._selection.selectionFilter(args.value);\r\n args.handled = true;\r\n break;\r\n case \"selectedRowKeys\":\r\n var value = args.value || [];\r\n if (Array.isArray(value) && !this._selectedItemsInternalChange && (this.component.getDataSource() || !value.length)) {\r\n this.selectRows(value)\r\n }\r\n args.handled = true\r\n }\r\n },\r\n publicMethods: function() {\r\n return [\"selectRows\", \"deselectRows\", \"selectRowsByIndexes\", \"getSelectedRowKeys\", \"getSelectedRowsData\", \"clearSelection\", \"selectAll\", \"deselectAll\", \"startSelectionWithCheckboxes\", \"stopSelectionWithCheckboxes\", \"isRowSelected\"]\r\n },\r\n isRowSelected: function(arg) {\r\n return this._selection.isItemSelected(arg)\r\n },\r\n isSelectColumnVisible: function() {\r\n return \"multiple\" === this.option(SELECTION_MODE) && (\"always\" === this.option(SHOW_CHECKBOXES_MODE) || \"onClick\" === this.option(SHOW_CHECKBOXES_MODE) || this._isSelectionWithCheckboxes)\r\n },\r\n _isOnePageSelectAll: function() {\r\n return \"page\" === this.option(\"selection.selectAllMode\")\r\n },\r\n isSelectAll: function() {\r\n return this._selection.getSelectAllState(this._isOnePageSelectAll())\r\n },\r\n selectAll: function() {\r\n if (\"onClick\" === this.option(SHOW_CHECKBOXES_MODE)) {\r\n this.startSelectionWithCheckboxes()\r\n }\r\n return this._selection.selectAll(this._isOnePageSelectAll())\r\n },\r\n deselectAll: function() {\r\n return this._selection.deselectAll(this._isOnePageSelectAll())\r\n },\r\n clearSelection: function() {\r\n return this.selectedItemKeys([])\r\n },\r\n refresh: function() {\r\n var selectedRowKeys = this.option(\"selectedRowKeys\") || [];\r\n if (!this.option(\"selection.deferred\") && selectedRowKeys.length) {\r\n return this.selectedItemKeys(selectedRowKeys)\r\n }\r\n return (new Deferred).resolve().promise()\r\n },\r\n selectedItemKeys: function(value, preserve, isDeselect, isSelectAll) {\r\n return this._selection.selectedItemKeys(value, preserve, isDeselect, isSelectAll)\r\n },\r\n getSelectedRowKeys: function() {\r\n return this._selection.getSelectedItemKeys()\r\n },\r\n selectRows: function(keys, preserve) {\r\n return this.selectedItemKeys(keys, preserve)\r\n },\r\n deselectRows: function(keys) {\r\n return this.selectedItemKeys(keys, true, true)\r\n },\r\n selectRowsByIndexes: function(indexes) {\r\n var items = this._dataController.items();\r\n var keys = [];\r\n if (!Array.isArray(indexes)) {\r\n indexes = Array.prototype.slice.call(arguments, 0)\r\n }\r\n each(indexes, (function() {\r\n var item = items[this];\r\n if (item && \"data\" === item.rowType) {\r\n keys.push(item.key)\r\n }\r\n }));\r\n return this.selectRows(keys)\r\n },\r\n getSelectedRowsData: function() {\r\n return this._selection.getSelectedItems()\r\n },\r\n changeItemSelection: function(visibleItemIndex, keys, setFocusOnly) {\r\n keys = keys || {};\r\n if (this.isSelectionWithCheckboxes()) {\r\n keys.control = true\r\n }\r\n var loadedItemIndex = visibleItemIndex + this._dataController.getRowIndexOffset() - this._dataController.getRowIndexOffset(true);\r\n return this._selection.changeItemSelection(loadedItemIndex, keys, setFocusOnly)\r\n },\r\n focusedItemIndex: function(itemIndex) {\r\n if (isDefined(itemIndex)) {\r\n this._selection._focusedItemIndex = itemIndex\r\n } else {\r\n return this._selection._focusedItemIndex\r\n }\r\n },\r\n isSelectionWithCheckboxes: function() {\r\n return \"multiple\" === this.option(SELECTION_MODE) && (\"always\" === this.option(SHOW_CHECKBOXES_MODE) || this._isSelectionWithCheckboxes)\r\n },\r\n startSelectionWithCheckboxes: function() {\r\n if (\"multiple\" === this.option(SELECTION_MODE) && !this.isSelectionWithCheckboxes()) {\r\n this._isSelectionWithCheckboxes = true;\r\n this._updateSelectColumn();\r\n return true\r\n }\r\n return false\r\n },\r\n stopSelectionWithCheckboxes: function() {\r\n if (this._isSelectionWithCheckboxes) {\r\n this._isSelectionWithCheckboxes = false;\r\n this._updateSelectColumn();\r\n return true\r\n }\r\n return false\r\n }\r\n }\r\n}());\r\nexport var selectionModule = {\r\n defaultOptions: function() {\r\n return {\r\n selection: {\r\n mode: \"none\",\r\n showCheckBoxesMode: \"onClick\",\r\n allowSelectAll: true,\r\n selectAllMode: \"allPages\",\r\n maxFilterLengthInRequest: 1500,\r\n deferred: false\r\n },\r\n selectionFilter: [],\r\n selectedRowKeys: []\r\n }\r\n },\r\n controllers: {\r\n selection: SelectionController\r\n },\r\n extenders: {\r\n controllers: {\r\n data: {\r\n init: function() {\r\n var selectionController = this.getController(\"selection\");\r\n var isDeferredMode = this.option(\"selection.deferred\");\r\n this.callBase.apply(this, arguments);\r\n if (isDeferredMode) {\r\n selectionController._updateCheckboxesState({\r\n isDeferredMode: true,\r\n selectionFilter: this.option(\"selectionFilter\")\r\n })\r\n }\r\n },\r\n _loadDataSource: function() {\r\n var that = this;\r\n return that.callBase().done((function() {\r\n that.getController(\"selection\").refresh()\r\n }))\r\n },\r\n _processDataItem: function(item, options) {\r\n var that = this;\r\n var selectionController = that.getController(\"selection\");\r\n var hasSelectColumn = selectionController.isSelectColumnVisible();\r\n var isDeferredSelection = options.isDeferredSelection = void 0 === options.isDeferredSelection ? this.option(\"selection.deferred\") : options.isDeferredSelection;\r\n var dataItem = this.callBase.apply(this, arguments);\r\n dataItem.isSelected = selectionController.isRowSelected(isDeferredSelection ? dataItem.data : dataItem.key);\r\n if (hasSelectColumn && dataItem.values) {\r\n for (var i = 0; i < options.visibleColumns.length; i++) {\r\n if (\"select\" === options.visibleColumns[i].command) {\r\n dataItem.values[i] = dataItem.isSelected;\r\n break\r\n }\r\n }\r\n }\r\n return dataItem\r\n },\r\n refresh: function(options) {\r\n var that = this;\r\n var d = new Deferred;\r\n this.callBase.apply(this, arguments).done((function() {\r\n if (!options || options.selection) {\r\n that.getController(\"selection\").refresh().done(d.resolve).fail(d.reject)\r\n } else {\r\n d.resolve()\r\n }\r\n })).fail(d.reject);\r\n return d.promise()\r\n },\r\n _handleDataChanged: function(e) {\r\n this.callBase.apply(this, arguments);\r\n if ((!e || \"refresh\" === e.changeType) && !this._repaintChangesOnly) {\r\n this.getController(\"selection\").focusedItemIndex(-1)\r\n }\r\n },\r\n _applyChange: function(change) {\r\n if (change && \"updateSelection\" === change.changeType) {\r\n change.items.forEach((item, index) => {\r\n var currentItem = this._items[index];\r\n if (currentItem) {\r\n currentItem.isSelected = item.isSelected;\r\n currentItem.values = item.values\r\n }\r\n });\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _endUpdateCore: function() {\r\n var changes = this._changes;\r\n var isUpdateSelection = changes.length > 1 && changes.every(change => \"updateSelection\" === change.changeType);\r\n if (isUpdateSelection) {\r\n var itemIndexes = changes.map(change => change.itemIndexes || []).reduce((a, b) => a.concat(b));\r\n this._changes = [{\r\n changeType: \"updateSelection\",\r\n itemIndexes: itemIndexes\r\n }]\r\n }\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n contextMenu: {\r\n _contextMenuPrepared: function(options) {\r\n var dxEvent = options.event;\r\n if (dxEvent.originalEvent && \"dxhold\" !== dxEvent.originalEvent.type || options.items && options.items.length > 0) {\r\n return\r\n }\r\n processLongTap(this, dxEvent)\r\n }\r\n }\r\n },\r\n views: {\r\n columnHeadersView: {\r\n init: function() {\r\n this.callBase();\r\n this.getController(\"selection\").selectionChanged.add(this._updateSelectAllValue.bind(this))\r\n },\r\n _updateSelectAllValue: function() {\r\n var $element = this.element();\r\n var $editor = $element && $element.find(\".\" + SELECT_CHECKBOX_CLASS);\r\n if ($element && $editor.length && \"multiple\" === this.option(\"selection.mode\")) {\r\n var selectAllValue = this.getController(\"selection\").isSelectAll();\r\n var hasSelection = false !== selectAllValue;\r\n var isVisible = this.option(\"selection.allowSelectAll\") ? !this.getController(\"data\").isEmpty() : hasSelection;\r\n $editor.dxCheckBox(\"instance\").option({\r\n visible: isVisible,\r\n value: selectAllValue\r\n })\r\n }\r\n },\r\n _handleDataChanged: function(e) {\r\n this.callBase(e);\r\n if (!e || \"refresh\" === e.changeType || e.repaintChangesOnly && \"update\" === e.changeType) {\r\n this._updateSelectAllValue()\r\n }\r\n },\r\n _renderSelectAllCheckBox: function($container, column) {\r\n var that = this;\r\n var selectionController = that.getController(\"selection\");\r\n var isEmptyData = that.getController(\"data\").isEmpty();\r\n var groupElement = $(\"
\").appendTo($container).addClass(SELECT_CHECKBOX_CLASS);\r\n that.setAria(\"label\", messageLocalization.format(\"dxDataGrid-ariaSelectAll\"), groupElement);\r\n that.getController(\"editorFactory\").createEditor(groupElement, extend({}, column, {\r\n parentType: \"headerRow\",\r\n dataType: \"boolean\",\r\n value: selectionController.isSelectAll(),\r\n editorOptions: {\r\n visible: !isEmptyData && (that.option(\"selection.allowSelectAll\") || false !== selectionController.isSelectAll())\r\n },\r\n tabIndex: that.option(\"useLegacyKeyboardNavigation\") ? -1 : that.option(\"tabIndex\") || 0,\r\n setValue: function(value, e) {\r\n var allowSelectAll = that.option(\"selection.allowSelectAll\");\r\n e.component.option(\"visible\", allowSelectAll || false !== e.component.option(\"value\"));\r\n if (!e.event || selectionController.isSelectAll() === value) {\r\n return\r\n }\r\n if (e.value && !allowSelectAll) {\r\n e.component.option(\"value\", false)\r\n } else {\r\n e.value ? selectionController.selectAll() : selectionController.deselectAll()\r\n }\r\n e.event.preventDefault()\r\n }\r\n }));\r\n return groupElement\r\n },\r\n _attachSelectAllCheckBoxClickEvent: function($element) {\r\n eventsEngine.on($element, clickEventName, this.createAction((function(e) {\r\n var event = e.event;\r\n if (!$(event.target).closest(\".\" + SELECT_CHECKBOX_CLASS).length) {\r\n eventsEngine.trigger($(event.currentTarget).children(\".\" + SELECT_CHECKBOX_CLASS), clickEventName)\r\n }\r\n event.preventDefault()\r\n })))\r\n }\r\n },\r\n rowsView: {\r\n renderSelectCheckBoxContainer: function($container, options) {\r\n if (\"data\" === options.rowType && !options.row.isNewRow) {\r\n $container.addClass(EDITOR_CELL_CLASS);\r\n this._attachCheckBoxClickEvent($container);\r\n this._renderSelectCheckBox($container, options)\r\n } else {\r\n gridCoreUtils.setEmptyText($container)\r\n }\r\n },\r\n _renderSelectCheckBox: function(container, options) {\r\n var groupElement = $(\"
\").addClass(SELECT_CHECKBOX_CLASS).appendTo(container);\r\n this.setAria(\"label\", messageLocalization.format(\"dxDataGrid-ariaSelectRow\"), groupElement);\r\n this.getController(\"editorFactory\").createEditor(groupElement, extend({}, options.column, {\r\n parentType: \"dataRow\",\r\n dataType: \"boolean\",\r\n lookup: null,\r\n value: options.value,\r\n setValue: function(value, e) {\r\n var _e$event;\r\n if (\"keydown\" === (null === e || void 0 === e ? void 0 : null === (_e$event = e.event) || void 0 === _e$event ? void 0 : _e$event.type)) {\r\n eventsEngine.trigger(e.element, clickEventName, e)\r\n }\r\n },\r\n row: options.row\r\n }));\r\n return groupElement\r\n },\r\n _attachCheckBoxClickEvent: function($element) {\r\n eventsEngine.on($element, clickEventName, this.createAction((function(e) {\r\n var selectionController = this.getController(\"selection\");\r\n var event = e.event;\r\n var rowIndex = this.getRowIndex($(event.currentTarget).closest(\".\" + ROW_CLASS));\r\n if (rowIndex >= 0) {\r\n selectionController.startSelectionWithCheckboxes();\r\n selectionController.changeItemSelection(rowIndex, {\r\n shift: event.shiftKey\r\n });\r\n if ($(event.target).closest(\".\" + SELECT_CHECKBOX_CLASS).length) {\r\n this.getController(\"data\").updateItems({\r\n changeType: \"updateSelection\",\r\n itemIndexes: [rowIndex]\r\n })\r\n }\r\n }\r\n })))\r\n },\r\n _update: function(change) {\r\n var that = this;\r\n var tableElements = that.getTableElements();\r\n if (\"updateSelection\" === change.changeType) {\r\n if (tableElements.length > 0) {\r\n each(tableElements, (function(_, tableElement) {\r\n each(change.itemIndexes || [], (function(_, index) {\r\n var $row;\r\n if (change.items[index]) {\r\n $row = that._getRowElements($(tableElement)).eq(index);\r\n if ($row.length) {\r\n var isSelected = change.items[index].isSelected;\r\n $row.toggleClass(ROW_SELECTION_CLASS, void 0 === isSelected ? false : isSelected).find(\".\" + SELECT_CHECKBOX_CLASS).dxCheckBox(\"option\", \"value\", isSelected);\r\n that.setAria(\"selected\", isSelected, $row)\r\n }\r\n }\r\n }))\r\n }));\r\n that._updateCheckboxesClass()\r\n }\r\n } else {\r\n that.callBase(change)\r\n }\r\n },\r\n _createTable: function() {\r\n var that = this;\r\n var selectionMode = that.option(\"selection.mode\");\r\n var $table = that.callBase.apply(that, arguments);\r\n if (\"none\" !== selectionMode) {\r\n if (\"onLongTap\" === that.option(SHOW_CHECKBOXES_MODE) || !touch) {\r\n eventsEngine.on($table, addNamespace(holdEvent.name, \"dxDataGridRowsView\"), \".\" + DATA_ROW_CLASS, that.createAction((function(e) {\r\n processLongTap(that.component, e.event);\r\n e.event.stopPropagation()\r\n })))\r\n }\r\n eventsEngine.on($table, \"mousedown selectstart\", that.createAction((function(e) {\r\n var event = e.event;\r\n if (event.shiftKey) {\r\n event.preventDefault()\r\n }\r\n })))\r\n }\r\n return $table\r\n },\r\n _createRow: function(row) {\r\n var $row = this.callBase.apply(this, arguments);\r\n if (row) {\r\n var isSelected = row.isSelected;\r\n if (isSelected) {\r\n $row.addClass(ROW_SELECTION_CLASS)\r\n }\r\n var selectionMode = this.option(SELECTION_MODE);\r\n if (\"none\" !== selectionMode) {\r\n this.setAria(\"selected\", isSelected, $row)\r\n }\r\n }\r\n return $row\r\n },\r\n _rowClick: function(e) {\r\n var dxEvent = e.event;\r\n var isSelectionDisabled = $(dxEvent.target).closest(\".\" + SELECTION_DISABLED_CLASS).length;\r\n if (!this.isClickableElement($(dxEvent.target))) {\r\n if (!isSelectionDisabled && (\"multiple\" !== this.option(SELECTION_MODE) || \"always\" !== this.option(SHOW_CHECKBOXES_MODE))) {\r\n if (this.getController(\"selection\").changeItemSelection(e.rowIndex, {\r\n control: isCommandKeyPressed(dxEvent),\r\n shift: dxEvent.shiftKey\r\n })) {\r\n dxEvent.preventDefault();\r\n e.handled = true\r\n }\r\n }\r\n this.callBase(e)\r\n }\r\n },\r\n isClickableElement: function($target) {\r\n var isCommandSelect = $target.closest(\".\" + COMMAND_SELECT_CLASS).length;\r\n return !!isCommandSelect\r\n },\r\n _renderCore: function(change) {\r\n this.callBase(change);\r\n this._updateCheckboxesClass()\r\n },\r\n _updateCheckboxesClass: function() {\r\n var tableElements = this.getTableElements();\r\n var selectionController = this.getController(\"selection\");\r\n var isCheckBoxesHidden = selectionController.isSelectColumnVisible() && !selectionController.isSelectionWithCheckboxes();\r\n each(tableElements, (function(_, tableElement) {\r\n $(tableElement).toggleClass(CHECKBOXES_HIDDEN_CLASS, isCheckBoxesHidden)\r\n }))\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.selection.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n selectionModule\r\n} from \"../grid_core/ui.grid_core.selection\";\r\ngridCore.registerModule(\"selection\", selectionModule);\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.column_chooser.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterWidth,\r\n getOuterHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n deferUpdate,\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport modules from \"./ui.grid_core.modules\";\r\nimport {\r\n ColumnsView\r\n} from \"./ui.grid_core.columns_view\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n isMaterial as isMaterialTheme,\r\n isGeneric,\r\n current\r\n} from \"../themes\";\r\nimport TreeView from \"../tree_view\";\r\nimport devices from \"../../core/devices\";\r\nimport Popup from \"../popup\";\r\nimport Button from \"../button\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nvar COLUMN_CHOOSER_CLASS = \"column-chooser\";\r\nvar COLUMN_CHOOSER_BUTTON_CLASS = \"column-chooser-button\";\r\nvar NOTOUCH_ACTION_CLASS = \"notouch-action\";\r\nvar COLUMN_CHOOSER_LIST_CLASS = \"column-chooser-list\";\r\nvar COLUMN_CHOOSER_PLAIN_CLASS = \"column-chooser-plain\";\r\nvar COLUMN_CHOOSER_DRAG_CLASS = \"column-chooser-mode-drag\";\r\nvar COLUMN_CHOOSER_SELECT_CLASS = \"column-chooser-mode-select\";\r\nvar COLUMN_CHOOSER_ICON_NAME = \"column-chooser\";\r\nvar COLUMN_CHOOSER_ITEM_CLASS = \"dx-column-chooser-item\";\r\nvar TREEVIEW_NODE_SELECTOR = \".dx-treeview-node\";\r\nvar CHECKBOX_SELECTOR = \".dx-checkbox\";\r\nvar CLICK_TIMEOUT = 300;\r\nvar processItems = function(that, chooserColumns) {\r\n var items = [];\r\n var isSelectMode = \"select\" === that.option(\"columnChooser.mode\");\r\n if (chooserColumns.length) {\r\n each(chooserColumns, (function(index, column) {\r\n var item = {\r\n text: column.caption,\r\n cssClass: column.cssClass,\r\n allowHiding: column.allowHiding,\r\n expanded: true,\r\n id: column.index,\r\n disabled: false,\r\n disableCheckBox: false === column.allowHiding,\r\n parentId: isDefined(column.ownerBand) ? column.ownerBand : null\r\n };\r\n if (isSelectMode) {\r\n item.selected = column.visible\r\n }\r\n items.push(item)\r\n }))\r\n }\r\n return items\r\n};\r\nvar ColumnChooserController = modules.ViewController.inherit({\r\n renderShowColumnChooserButton: function($element) {\r\n var that = this;\r\n var columnChooserButtonClass = that.addWidgetPrefix(COLUMN_CHOOSER_BUTTON_CLASS);\r\n var columnChooserEnabled = that.option(\"columnChooser.enabled\");\r\n var $showColumnChooserButton = $element.find(\".\" + columnChooserButtonClass);\r\n var $columnChooserButton;\r\n if (columnChooserEnabled) {\r\n if (!$showColumnChooserButton.length) {\r\n $columnChooserButton = $(\"
\").addClass(columnChooserButtonClass).appendTo($element);\r\n that._createComponent($columnChooserButton, Button, {\r\n icon: COLUMN_CHOOSER_ICON_NAME,\r\n onClick: function() {\r\n that.getView(\"columnChooserView\").showColumnChooser()\r\n },\r\n hint: that.option(\"columnChooser.title\"),\r\n integrationOptions: {}\r\n })\r\n } else {\r\n $showColumnChooserButton.show()\r\n }\r\n } else {\r\n $showColumnChooserButton.hide()\r\n }\r\n },\r\n getPosition: function() {\r\n var rowsView = this.getView(\"rowsView\");\r\n return {\r\n my: \"right bottom\",\r\n at: \"right bottom\",\r\n of: rowsView && rowsView.element(),\r\n collision: \"fit\",\r\n offset: \"-2 -2\",\r\n boundaryOffset: \"2 2\"\r\n }\r\n }\r\n});\r\nvar ColumnChooserView = ColumnsView.inherit({\r\n _resizeCore: noop,\r\n _isWinDevice: function() {\r\n return !!devices.real().win\r\n },\r\n _updateList: function(change) {\r\n var items;\r\n var $popupContent = this._popupContainer.$content();\r\n var isSelectMode = \"select\" === this.option(\"columnChooser.mode\");\r\n var columnChooserList = this._columnChooserList;\r\n var chooserColumns = this._columnsController.getChooserColumns(isSelectMode);\r\n this._popupContainer.setAria({\r\n role: \"dialog\",\r\n label: messageLocalization.format(\"dxDataGrid-columnChooserTitle\")\r\n });\r\n if (isSelectMode && columnChooserList && change && \"selection\" === change.changeType) {\r\n items = processItems(this, chooserColumns);\r\n for (var i = 0; i < items.length; i++) {\r\n var selected = items[i].selected;\r\n var id = items[i].id;\r\n if (id === change.columnIndex) {\r\n if (selected) {\r\n columnChooserList.selectItem(id, selected)\r\n } else {\r\n columnChooserList.unselectItem(id, selected)\r\n }\r\n }\r\n }\r\n } else if (!isSelectMode || !columnChooserList || \"full\" === change) {\r\n this._popupContainer.$wrapper().toggleClass(this.addWidgetPrefix(COLUMN_CHOOSER_DRAG_CLASS), !isSelectMode).toggleClass(this.addWidgetPrefix(COLUMN_CHOOSER_SELECT_CLASS), isSelectMode);\r\n items = processItems(this, chooserColumns);\r\n this._renderTreeView($popupContent, items)\r\n }\r\n },\r\n _initializePopupContainer: function() {\r\n var that = this;\r\n var $element = that.element().addClass(that.addWidgetPrefix(COLUMN_CHOOSER_CLASS));\r\n var columnChooserOptions = that.option(\"columnChooser\");\r\n var themeName = current();\r\n var isGenericTheme = isGeneric(themeName);\r\n var isMaterial = isMaterialTheme(themeName);\r\n var dxPopupOptions = {\r\n visible: false,\r\n shading: false,\r\n showCloseButton: false,\r\n dragEnabled: true,\r\n resizeEnabled: true,\r\n copyRootClassesToWrapper: true,\r\n _ignoreCopyRootClassesToWrapperDeprecation: true,\r\n toolbarItems: [{\r\n text: columnChooserOptions.title,\r\n toolbar: \"top\",\r\n location: isGenericTheme || isMaterial ? \"before\" : \"center\"\r\n }],\r\n position: that.getController(\"columnChooser\").getPosition(),\r\n width: columnChooserOptions.width,\r\n height: columnChooserOptions.height,\r\n rtlEnabled: that.option(\"rtlEnabled\"),\r\n onHidden: function() {\r\n if (that._isWinDevice()) {\r\n $(\"body\").removeClass(that.addWidgetPrefix(NOTOUCH_ACTION_CLASS))\r\n }\r\n },\r\n container: columnChooserOptions.container\r\n };\r\n if (isGenericTheme || isMaterial) {\r\n extend(dxPopupOptions, {\r\n showCloseButton: true\r\n })\r\n } else {\r\n dxPopupOptions.toolbarItems[dxPopupOptions.toolbarItems.length] = {\r\n shortcut: \"cancel\"\r\n }\r\n }\r\n if (!isDefined(this._popupContainer)) {\r\n that._popupContainer = that._createComponent($element, Popup, dxPopupOptions);\r\n that._popupContainer.on(\"optionChanged\", (function(args) {\r\n if (\"visible\" === args.name) {\r\n that.renderCompleted.fire()\r\n }\r\n }))\r\n } else {\r\n this._popupContainer.option(dxPopupOptions)\r\n }\r\n },\r\n _renderCore: function(change) {\r\n if (this._popupContainer) {\r\n this._updateList(change)\r\n }\r\n },\r\n _renderTreeView: function($container, items) {\r\n var that = this;\r\n var columnChooser = this.option(\"columnChooser\");\r\n var isSelectMode = \"select\" === columnChooser.mode;\r\n var treeViewConfig = {\r\n items: items,\r\n dataStructure: \"plain\",\r\n activeStateEnabled: true,\r\n focusStateEnabled: true,\r\n hoverStateEnabled: true,\r\n itemTemplate: \"item\",\r\n showCheckBoxesMode: \"none\",\r\n rootValue: null,\r\n searchEnabled: columnChooser.allowSearch,\r\n searchTimeout: columnChooser.searchTimeout,\r\n onItemRendered: function(e) {\r\n if (e.itemData.disableCheckBox) {\r\n var $treeViewNode = $(e.itemElement).closest(TREEVIEW_NODE_SELECTOR);\r\n var $checkBox;\r\n if ($treeViewNode.length) {\r\n $checkBox = $treeViewNode.find(CHECKBOX_SELECTOR);\r\n if ($checkBox.length) {\r\n var checkBoxInstance = $checkBox.data(\"dxCheckBox\");\r\n checkBoxInstance && checkBoxInstance.option(\"disabled\", true)\r\n }\r\n }\r\n }\r\n }\r\n };\r\n var scrollableInstance = $container.find(\".dx-scrollable\").data(\"dxScrollable\");\r\n var scrollTop = scrollableInstance && scrollableInstance.scrollTop();\r\n if (isSelectMode && !this._columnsController.isBandColumnsUsed()) {\r\n $container.addClass(this.addWidgetPrefix(COLUMN_CHOOSER_PLAIN_CLASS))\r\n }\r\n treeViewConfig.onContentReady = function(e) {\r\n deferUpdate((function() {\r\n if (scrollTop) {\r\n var scrollable = $(e.element).find(\".dx-scrollable\").data(\"dxScrollable\");\r\n scrollable && scrollable.scrollTo({\r\n y: scrollTop\r\n })\r\n }\r\n that.renderCompleted.fire()\r\n }))\r\n };\r\n if (this._isWinDevice()) {\r\n treeViewConfig.useNativeScrolling = false\r\n }\r\n extend(treeViewConfig, isSelectMode ? this._prepareSelectModeConfig() : this._prepareDragModeConfig());\r\n if (this._columnChooserList) {\r\n if (!treeViewConfig.searchEnabled) {\r\n treeViewConfig.searchValue = \"\"\r\n }\r\n this._columnChooserList.option(treeViewConfig)\r\n } else {\r\n this._columnChooserList = this._createComponent($container, TreeView, treeViewConfig);\r\n $container.addClass(this.addWidgetPrefix(COLUMN_CHOOSER_LIST_CLASS))\r\n }\r\n },\r\n _prepareDragModeConfig: function() {\r\n var columnChooserOptions = this.option(\"columnChooser\");\r\n return {\r\n noDataText: columnChooserOptions.emptyPanelText,\r\n activeStateEnabled: false,\r\n focusStateEnabled: false,\r\n hoverStateEnabled: false,\r\n itemTemplate: function(data, index, item) {\r\n $(item).text(data.text).parent().addClass(data.cssClass).addClass(COLUMN_CHOOSER_ITEM_CLASS)\r\n }\r\n }\r\n },\r\n _prepareSelectModeConfig: function() {\r\n var that = this;\r\n return {\r\n selectNodesRecursive: false,\r\n showCheckBoxesMode: \"normal\",\r\n onItemSelectionChanged: function(e) {\r\n var visibleColumns = that._columnsController.getVisibleColumns().filter((function(item) {\r\n return !item.command\r\n }));\r\n var isLastColumnUnselected = 1 === visibleColumns.length && !e.itemData.selected;\r\n if (isLastColumnUnselected) {\r\n e.component.selectItem(e.itemElement)\r\n } else {\r\n setTimeout((function() {\r\n that._columnsController.columnOption(e.itemData.id, \"visible\", e.itemData.selected)\r\n }), CLICK_TIMEOUT)\r\n }\r\n }\r\n }\r\n },\r\n _columnOptionChanged: function(e) {\r\n var changeTypes = e.changeTypes;\r\n var optionNames = e.optionNames;\r\n var isSelectMode = \"select\" === this.option(\"columnChooser.mode\");\r\n this.callBase(e);\r\n if (isSelectMode) {\r\n var needPartialRender = optionNames.visible && 1 === optionNames.length && void 0 !== e.columnIndex;\r\n var needFullRender = optionNames.showInColumnChooser || optionNames.caption || optionNames.visible || changeTypes.columns && optionNames.all;\r\n if (needPartialRender) {\r\n this.render(null, {\r\n changeType: \"selection\",\r\n columnIndex: e.columnIndex\r\n })\r\n } else if (needFullRender) {\r\n this.render(null, \"full\")\r\n }\r\n }\r\n },\r\n optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"columnChooser\":\r\n this._initializePopupContainer();\r\n this.render(null, \"full\");\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n getColumnElements: function() {\r\n var result = [];\r\n var $node;\r\n var isSelectMode = \"select\" === this.option(\"columnChooser.mode\");\r\n var chooserColumns = this._columnsController.getChooserColumns(isSelectMode);\r\n var $content = this._popupContainer && this._popupContainer.$content();\r\n var $nodes = $content && $content.find(\".dx-treeview-node\");\r\n if ($nodes) {\r\n chooserColumns.forEach((function(column) {\r\n $node = $nodes.filter(\"[data-item-id = '\" + column.index + \"']\");\r\n var item = $node.length ? $node.children(\".\" + COLUMN_CHOOSER_ITEM_CLASS).get(0) : null;\r\n result.push(item)\r\n }))\r\n }\r\n return $(result)\r\n },\r\n getName: function() {\r\n return \"columnChooser\"\r\n },\r\n getColumns: function() {\r\n return this._columnsController.getChooserColumns()\r\n },\r\n allowDragging: function(column, sourceLocation) {\r\n var columnVisible = column && column.allowHiding && (\"columnChooser\" !== sourceLocation || !column.visible && this._columnsController.isParentColumnVisible(column.index));\r\n return this.isColumnChooserVisible() && columnVisible\r\n },\r\n getBoundingRect: function() {\r\n var container = this._popupContainer && this._popupContainer.$overlayContent();\r\n if (container && container.is(\":visible\")) {\r\n var offset = container.offset();\r\n return {\r\n left: offset.left,\r\n top: offset.top,\r\n right: offset.left + getOuterWidth(container),\r\n bottom: offset.top + getOuterHeight(container)\r\n }\r\n }\r\n return null\r\n },\r\n showColumnChooser: function() {\r\n if (!this._popupContainer) {\r\n this._initializePopupContainer();\r\n this.render()\r\n }\r\n this._popupContainer.show();\r\n if (this._isWinDevice()) {\r\n $(\"body\").addClass(this.addWidgetPrefix(NOTOUCH_ACTION_CLASS))\r\n }\r\n },\r\n hideColumnChooser: function() {\r\n if (this._popupContainer) {\r\n this._popupContainer.hide()\r\n }\r\n },\r\n isColumnChooserVisible: function() {\r\n var popupContainer = this._popupContainer;\r\n return popupContainer && popupContainer.option(\"visible\")\r\n },\r\n publicMethods: function() {\r\n return [\"showColumnChooser\", \"hideColumnChooser\"]\r\n }\r\n});\r\nexport var columnChooserModule = {\r\n defaultOptions: function() {\r\n return {\r\n columnChooser: {\r\n enabled: false,\r\n allowSearch: false,\r\n searchTimeout: 500,\r\n mode: \"dragAndDrop\",\r\n width: 250,\r\n height: 260,\r\n title: messageLocalization.format(\"dxDataGrid-columnChooserTitle\"),\r\n emptyPanelText: messageLocalization.format(\"dxDataGrid-columnChooserEmptyText\"),\r\n container: void 0\r\n }\r\n }\r\n },\r\n controllers: {\r\n columnChooser: ColumnChooserController\r\n },\r\n views: {\r\n columnChooserView: ColumnChooserView\r\n },\r\n extenders: {\r\n views: {\r\n headerPanel: {\r\n _getToolbarItems: function() {\r\n var items = this.callBase();\r\n return this._appendColumnChooserItem(items)\r\n },\r\n _appendColumnChooserItem: function(items) {\r\n var that = this;\r\n var columnChooserEnabled = that.option(\"columnChooser.enabled\");\r\n if (columnChooserEnabled) {\r\n var hintText = that.option(\"columnChooser.title\");\r\n var toolbarItem = {\r\n widget: \"dxButton\",\r\n options: {\r\n icon: COLUMN_CHOOSER_ICON_NAME,\r\n onClick: function() {\r\n that.component.getView(\"columnChooserView\").showColumnChooser()\r\n },\r\n hint: hintText,\r\n text: hintText,\r\n onInitialized: function(e) {\r\n $(e.element).addClass(that._getToolbarButtonClass(that.addWidgetPrefix(COLUMN_CHOOSER_BUTTON_CLASS)))\r\n },\r\n elementAttr: {\r\n \"aria-haspopup\": \"dialog\"\r\n }\r\n },\r\n showText: \"inMenu\",\r\n location: \"after\",\r\n name: \"columnChooserButton\",\r\n locateInMenu: \"auto\",\r\n sortIndex: 40\r\n };\r\n items.push(toolbarItem)\r\n }\r\n return items\r\n },\r\n optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"columnChooser\":\r\n this._invalidate();\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n isVisible: function() {\r\n var columnChooserEnabled = this.option(\"columnChooser.enabled\");\r\n return this.callBase() || columnChooserEnabled\r\n }\r\n }\r\n },\r\n controllers: {\r\n columns: {\r\n allowMoveColumn: function(fromVisibleIndex, toVisibleIndex, sourceLocation, targetLocation) {\r\n var columnChooserMode = this.option(\"columnChooser.mode\");\r\n var isMoveColumnDisallowed = \"select\" === columnChooserMode && \"columnChooser\" === targetLocation;\r\n return isMoveColumnDisallowed ? false : this.callBase(fromVisibleIndex, toVisibleIndex, sourceLocation, targetLocation)\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.column_chooser.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n columnChooserModule\r\n} from \"../grid_core/ui.grid_core.column_chooser\";\r\nexport var ColumnChooserController = columnChooserModule.controllers.columnChooser;\r\nexport var ColumnChooserView = columnChooserModule.views.columnChooserView;\r\ngridCore.registerModule(\"columnChooser\", columnChooserModule);\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.grouping.core.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport Class from \"../../core/class\";\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n normalizeSortingInfo\r\n} from \"../../data/utils\";\r\nimport {\r\n when\r\n} from \"../../core/utils/deferred\";\r\nexport function createOffsetFilter(path, storeLoadOptions, lastLevelOnly) {\r\n var groups = normalizeSortingInfo(storeLoadOptions.group);\r\n var filter = [];\r\n for (var i = lastLevelOnly ? path.length - 1 : 0; i < path.length; i++) {\r\n var filterElement = [];\r\n for (var j = 0; j <= i; j++) {\r\n var selector = groups[j].selector;\r\n if (i === j && (null === path[j] || false === path[j] || true === path[j])) {\r\n if (false === path[j]) {\r\n filterElement.push([selector, \"=\", groups[j].desc ? true : null])\r\n } else if (path[j] ? !groups[j].desc : groups[j].desc) {\r\n filterElement.push([selector, \"<>\", path[j]])\r\n } else {\r\n filterElement.push([selector, \"<>\", null]);\r\n filterElement.push([selector, \"=\", null])\r\n }\r\n } else {\r\n var currentFilter = [selector, i === j ? groups[j].desc ? \">\" : \"<\" : \"=\", path[j]];\r\n if (\"<\" === currentFilter[1]) {\r\n filterElement.push([currentFilter, \"or\", [selector, \"=\", null]])\r\n } else {\r\n filterElement.push(currentFilter)\r\n }\r\n }\r\n }\r\n filter.push(gridCore.combineFilters(filterElement))\r\n }\r\n filter = gridCore.combineFilters(filter, \"or\");\r\n return gridCore.combineFilters([filter, storeLoadOptions.filter])\r\n}\r\nexport var GroupingHelper = Class.inherit(function() {\r\n var findGroupInfoByKey = function(groupsInfo, key) {\r\n var hash = groupsInfo.hash;\r\n return hash && hash[JSON.stringify(key)]\r\n };\r\n var getGroupInfoIndexByOffset = function(groupsInfo, offset) {\r\n var leftIndex = 0;\r\n var rightIndex = groupsInfo.length - 1;\r\n if (!groupsInfo.length) {\r\n return 0\r\n }\r\n do {\r\n var middleIndex = rightIndex + leftIndex >> 1;\r\n if (groupsInfo[middleIndex].offset > offset) {\r\n rightIndex = middleIndex\r\n } else {\r\n leftIndex = middleIndex\r\n }\r\n } while (rightIndex - leftIndex > 1);\r\n var index;\r\n for (index = leftIndex; index <= rightIndex; index++) {\r\n if (groupsInfo[index].offset > offset) {\r\n break\r\n }\r\n }\r\n return index\r\n };\r\n return {\r\n ctor: function(dataSourceAdapter) {\r\n this._dataSource = dataSourceAdapter;\r\n this.reset()\r\n },\r\n reset: function() {\r\n this._groupsInfo = [];\r\n this._totalCountCorrection = 0\r\n },\r\n totalCountCorrection: function() {\r\n return this._totalCountCorrection\r\n },\r\n updateTotalItemsCount: function(totalCountCorrection) {\r\n this._totalCountCorrection = totalCountCorrection || 0\r\n },\r\n isGroupItemCountable: function(item) {\r\n return !this._isVirtualPaging() || !item.isContinuation\r\n },\r\n _isVirtualPaging: function() {\r\n var scrollingMode = this._dataSource.option(\"scrolling.mode\");\r\n return \"virtual\" === scrollingMode || \"infinite\" === scrollingMode\r\n },\r\n itemsCount: function() {\r\n var dataSourceAdapter = this._dataSource;\r\n var dataSource = dataSourceAdapter._dataSource;\r\n var groupCount = gridCore.normalizeSortingInfo(dataSource.group() || []).length;\r\n var itemsCount = function calculateItemsCount(that, items, groupsCount) {\r\n var result = 0;\r\n if (items) {\r\n if (!groupsCount) {\r\n result = items.length\r\n } else {\r\n for (var i = 0; i < items.length; i++) {\r\n if (that.isGroupItemCountable(items[i])) {\r\n result++\r\n }\r\n result += calculateItemsCount(that, items[i].items, groupsCount - 1)\r\n }\r\n }\r\n }\r\n return result\r\n }(this, dataSource.items(), groupCount);\r\n return itemsCount\r\n },\r\n foreachGroups: function(callback, childrenAtFirst, foreachCollapsedGroups, updateOffsets, updateParentOffsets) {\r\n var that = this;\r\n return function foreachGroupsCore(groupsInfo, callback, childrenAtFirst, parents) {\r\n var callbackResults = [];\r\n\r\n function executeCallback(callback, data, parents, callbackResults) {\r\n var callbackResult = data && callback(data, parents);\r\n callbackResult && callbackResults.push(callbackResult);\r\n return callbackResult\r\n }\r\n for (var i = 0; i < groupsInfo.length; i++) {\r\n parents.push(groupsInfo[i].data);\r\n if (!childrenAtFirst && false === executeCallback(callback, groupsInfo[i].data, parents, callbackResults)) {\r\n return false\r\n }\r\n if (!groupsInfo[i].data || groupsInfo[i].data.isExpanded || foreachCollapsedGroups) {\r\n var children = groupsInfo[i].children;\r\n var callbackResult = children.length && foreachGroupsCore(children, callback, childrenAtFirst, parents);\r\n callbackResult && callbackResults.push(callbackResult);\r\n if (false === callbackResult) {\r\n return false\r\n }\r\n }\r\n if (childrenAtFirst && false === executeCallback(callback, groupsInfo[i].data, parents, callbackResults)) {\r\n return false\r\n }\r\n if (!groupsInfo[i].data || groupsInfo[i].data.offset !== groupsInfo[i].offset) {\r\n updateOffsets = true\r\n }\r\n parents.pop()\r\n }\r\n var currentParents = updateParentOffsets && parents.slice(0);\r\n return updateOffsets && when.apply($, callbackResults).always((function() {\r\n that._updateGroupInfoOffsets(groupsInfo, currentParents)\r\n }))\r\n }(that._groupsInfo, callback, childrenAtFirst, [])\r\n },\r\n _updateGroupInfoOffsets: function(groupsInfo, parents) {\r\n parents = parents || [];\r\n for (var index = 0; index < groupsInfo.length; index++) {\r\n var groupInfo = groupsInfo[index];\r\n if (groupInfo.data && groupInfo.data.offset !== groupInfo.offset) {\r\n groupInfo.offset = groupInfo.data.offset;\r\n for (var parentIndex = 0; parentIndex < parents.length; parentIndex++) {\r\n parents[parentIndex].offset = groupInfo.offset\r\n }\r\n }\r\n }\r\n groupsInfo.sort((function(a, b) {\r\n return a.offset - b.offset\r\n }))\r\n },\r\n findGroupInfo: function(path) {\r\n var groupInfo;\r\n var groupsInfo = this._groupsInfo;\r\n for (var pathIndex = 0; groupsInfo && pathIndex < path.length; pathIndex++) {\r\n groupInfo = findGroupInfoByKey(groupsInfo, path[pathIndex]);\r\n groupsInfo = groupInfo && groupInfo.children\r\n }\r\n return groupInfo && groupInfo.data\r\n },\r\n addGroupInfo: function(groupInfoData) {\r\n var groupInfo;\r\n var path = groupInfoData.path;\r\n var groupsInfo = this._groupsInfo;\r\n for (var pathIndex = 0; pathIndex < path.length; pathIndex++) {\r\n groupInfo = findGroupInfoByKey(groupsInfo, path[pathIndex]);\r\n if (!groupInfo) {\r\n groupInfo = {\r\n key: path[pathIndex],\r\n offset: groupInfoData.offset,\r\n data: {\r\n offset: groupInfoData.offset,\r\n isExpanded: true,\r\n path: path.slice(0, pathIndex + 1)\r\n },\r\n children: []\r\n };\r\n var index = getGroupInfoIndexByOffset(groupsInfo, groupInfoData.offset);\r\n groupsInfo.splice(index, 0, groupInfo);\r\n groupsInfo.hash = groupsInfo.hash || {};\r\n groupsInfo.hash[JSON.stringify(groupInfo.key)] = groupInfo\r\n }\r\n if (pathIndex === path.length - 1) {\r\n groupInfo.data = groupInfoData;\r\n if (groupInfo.offset !== groupInfoData.offset) {\r\n this._updateGroupInfoOffsets(groupsInfo)\r\n }\r\n }\r\n groupsInfo = groupInfo.children\r\n }\r\n },\r\n allowCollapseAll: function() {\r\n return true\r\n },\r\n refresh: function(options) {\r\n var storeLoadOptions = options.storeLoadOptions;\r\n var groups = normalizeSortingInfo(storeLoadOptions.group || []);\r\n var oldGroups = \"_group\" in this ? normalizeSortingInfo(this._group || []) : groups;\r\n var groupsCount = Math.min(oldGroups.length, groups.length);\r\n this._group = storeLoadOptions.group;\r\n for (var groupIndex = 0; groupIndex < groupsCount; groupIndex++) {\r\n if (oldGroups[groupIndex].selector !== groups[groupIndex].selector) {\r\n groupsCount = groupIndex;\r\n break\r\n }\r\n }\r\n if (!groupsCount) {\r\n this.reset()\r\n } else {\r\n ! function cleanGroupsInfo(groupsInfo, groupIndex, groupsCount) {\r\n for (var i = 0; i < groupsInfo.length; i++) {\r\n if (groupIndex + 1 >= groupsCount) {\r\n groupsInfo[i].children = []\r\n } else {\r\n cleanGroupsInfo(groupsInfo[i].children, groupIndex + 1, groupsCount)\r\n }\r\n }\r\n }(this._groupsInfo, 0, groupsCount)\r\n }\r\n },\r\n handleDataLoading: function() {},\r\n handleDataLoaded: function(options, callBase) {\r\n callBase(options)\r\n },\r\n handleDataLoadedCore: function(options, callBase) {\r\n callBase(options)\r\n }\r\n }\r\n}());\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.utils.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCoreUtils from \"../grid_core/ui.grid_core.utils\";\r\nimport {\r\n normalizeSortingInfo\r\n} from \"../../data/utils\";\r\nexport function createGroupFilter(path, storeLoadOptions) {\r\n var groups = normalizeSortingInfo(storeLoadOptions.group);\r\n var filter = [];\r\n for (var i = 0; i < path.length; i++) {\r\n filter.push([groups[i].selector, \"=\", path[i]])\r\n }\r\n if (storeLoadOptions.filter) {\r\n filter.push(storeLoadOptions.filter)\r\n }\r\n return gridCoreUtils.combineFilters(filter)\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.grouping.expanded.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n toComparable\r\n} from \"../../core/utils/data\";\r\nimport {\r\n keysEqual\r\n} from \"../../data/utils\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport storeHelper from \"../../data/store_helper\";\r\nimport dataGridCore from \"./ui.data_grid.core\";\r\nimport {\r\n GroupingHelper as GroupingHelperCore,\r\n createOffsetFilter\r\n} from \"./ui.data_grid.grouping.core\";\r\nimport {\r\n createGroupFilter\r\n} from \"./ui.data_grid.utils\";\r\nimport dataQuery from \"../../data/query\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nvar loadTotalCount = function(dataSource, options) {\r\n var d = new Deferred;\r\n var loadOptions = extend({\r\n skip: 0,\r\n take: 1,\r\n requireTotalCount: true\r\n }, options);\r\n dataSource.load(loadOptions).done((function(data, extra) {\r\n d.resolve(extra && extra.totalCount)\r\n })).fail(d.reject.bind(d));\r\n return d\r\n};\r\nexport var GroupingHelper = GroupingHelperCore.inherit(function() {\r\n var foreachCollapsedGroups = function(that, callback, updateOffsets) {\r\n return that.foreachGroups((function(groupInfo) {\r\n if (!groupInfo.isExpanded) {\r\n return callback(groupInfo)\r\n }\r\n }), false, false, updateOffsets, true)\r\n };\r\n var correctSkipLoadOption = function(that, skip) {\r\n var skipCorrection = 0;\r\n var resultSkip = skip || 0;\r\n if (skip) {\r\n foreachCollapsedGroups(that, (function(groupInfo) {\r\n if (groupInfo.offset - skipCorrection >= skip) {\r\n return false\r\n }\r\n skipCorrection += groupInfo.count - 1\r\n }));\r\n resultSkip += skipCorrection\r\n }\r\n return resultSkip\r\n };\r\n var pathEquals = function(path1, path2) {\r\n if (path1.length !== path2.length) {\r\n return false\r\n }\r\n for (var i = 0; i < path1.length; i++) {\r\n if (!keysEqual(null, path1[i], path2[i])) {\r\n return false\r\n }\r\n }\r\n return true\r\n };\r\n var updateGroupOffsets = function updateGroupOffsets(that, items, path, offset, additionalGroupInfo) {\r\n if (!items) {\r\n return\r\n }\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (\"key\" in item && void 0 !== item.items) {\r\n path.push(item.key);\r\n if (additionalGroupInfo && pathEquals(additionalGroupInfo.path, path) && !item.isContinuation) {\r\n additionalGroupInfo.offset = offset\r\n }\r\n var groupInfo = that.findGroupInfo(path);\r\n if (groupInfo && !item.isContinuation) {\r\n groupInfo.offset = offset\r\n }\r\n if (groupInfo && !groupInfo.isExpanded) {\r\n offset += groupInfo.count\r\n } else {\r\n offset = updateGroupOffsets(that, item.items, path, offset, additionalGroupInfo)\r\n }\r\n path.pop()\r\n } else {\r\n offset++\r\n }\r\n }\r\n return offset\r\n };\r\n var getGroupCount = function getGroupCount(item, groupCount) {\r\n var count = item.count || item.items.length;\r\n if (!item.count && groupCount > 1) {\r\n count = 0;\r\n for (var i = 0; i < item.items.length; i++) {\r\n count += getGroupCount(item.items[i], groupCount - 1)\r\n }\r\n }\r\n return count\r\n };\r\n return {\r\n handleDataLoading: function(options) {\r\n var storeLoadOptions = options.storeLoadOptions;\r\n var collapsedGroups = [];\r\n var collapsedItemsCount = 0;\r\n var skipFirstItem = false;\r\n var take;\r\n var group = options.loadOptions.group;\r\n var skipCorrection = 0;\r\n ! function(storeLoadOptions, loadOptions) {\r\n if (loadOptions.group) {\r\n var groups = dataGridCore.normalizeSortingInfo(loadOptions.group);\r\n var sorts = dataGridCore.normalizeSortingInfo(storeLoadOptions.sort);\r\n storeLoadOptions.sort = storeHelper.arrangeSortingInfo(groups, sorts);\r\n delete loadOptions.group\r\n }\r\n }(storeLoadOptions, options.loadOptions);\r\n options.group = options.group || group;\r\n if (options.isCustomLoading) {\r\n return\r\n }\r\n var loadOptions = extend({}, storeLoadOptions);\r\n loadOptions.skip = correctSkipLoadOption(this, storeLoadOptions.skip);\r\n if (loadOptions.skip && loadOptions.take && group) {\r\n loadOptions.skip--;\r\n loadOptions.take++;\r\n skipFirstItem = true\r\n }\r\n if (loadOptions.take && group) {\r\n take = loadOptions.take;\r\n loadOptions.take++\r\n }\r\n foreachCollapsedGroups(this, (function(groupInfo) {\r\n if (groupInfo.offset >= loadOptions.skip + loadOptions.take + skipCorrection) {\r\n return false\r\n } else if (groupInfo.offset >= loadOptions.skip + skipCorrection && groupInfo.count) {\r\n skipCorrection += groupInfo.count - 1;\r\n collapsedGroups.push(groupInfo);\r\n collapsedItemsCount += groupInfo.count\r\n }\r\n }));\r\n each(collapsedGroups, (function() {\r\n loadOptions.filter = function(path, storeLoadOptions, group) {\r\n var groups = dataGridCore.normalizeSortingInfo(group || storeLoadOptions.group);\r\n var filter = [];\r\n for (var i = 0; i < path.length; i++) {\r\n var filterElement = [];\r\n for (var j = 0; j <= i; j++) {\r\n filterElement.push([groups[j].selector, i === j ? \"<>\" : \"=\", path[j]])\r\n }\r\n filter.push(dataGridCore.combineFilters(filterElement))\r\n }\r\n filter = dataGridCore.combineFilters(filter, \"or\");\r\n return dataGridCore.combineFilters([filter, storeLoadOptions.filter])\r\n }(this.path, loadOptions, group)\r\n }));\r\n options.storeLoadOptions = loadOptions;\r\n options.collapsedGroups = collapsedGroups;\r\n options.collapsedItemsCount = collapsedItemsCount;\r\n options.skip = loadOptions.skip || 0;\r\n options.skipFirstItem = skipFirstItem;\r\n options.take = take\r\n },\r\n handleDataLoaded: function(options, callBase) {\r\n var collapsedGroups = options.collapsedGroups;\r\n var groups = dataGridCore.normalizeSortingInfo(options.group);\r\n var groupCount = groups.length;\r\n\r\n function appendCollapsedPath(data, path, groups, collapsedGroup, offset) {\r\n if (!data || !path.length || !groups.length) {\r\n return\r\n }\r\n var keyValue;\r\n var i;\r\n var pathValue = toComparable(path[0], true);\r\n for (i = 0; i < data.length; i++) {\r\n keyValue = toComparable(data[i].key, true);\r\n if (offset >= collapsedGroup.offset || pathValue === keyValue) {\r\n break\r\n } else {\r\n offset += getGroupCount(data[i], groups.length)\r\n }\r\n }\r\n if (!data.length || pathValue !== keyValue) {\r\n data.splice(i, 0, {\r\n key: path[0],\r\n items: [],\r\n count: 1 === path.length ? collapsedGroup.count : void 0\r\n })\r\n }\r\n appendCollapsedPath(data[i].items, path.slice(1), groups.slice(1), collapsedGroup, offset)\r\n }\r\n if (options.collapsedItemsCount && options.extra && options.extra.totalCount >= 0) {\r\n if (!options.extra._totalCountWasIncreasedByCollapsedItems) {\r\n options.extra.totalCount += options.collapsedItemsCount;\r\n options.extra._totalCountWasIncreasedByCollapsedItems = true\r\n }\r\n }\r\n callBase(options);\r\n if (groupCount) {\r\n var data = options.data;\r\n var query = dataQuery(data);\r\n storeHelper.multiLevelGroup(query, groups).enumerate().done((function(groupedData) {\r\n data = groupedData\r\n }));\r\n if (collapsedGroups) {\r\n for (var pathIndex = 0; pathIndex < collapsedGroups.length; pathIndex++) {\r\n appendCollapsedPath(data, collapsedGroups[pathIndex].path, groups, collapsedGroups[pathIndex], options.skip)\r\n }\r\n }\r\n if (!options.isCustomLoading) {\r\n ! function processGroupItems(that, items, path, offset, skipFirstItem, take) {\r\n var removeLastItemsCount = 0;\r\n var needRemoveFirstItem = false;\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (void 0 !== item.items) {\r\n path.push(item.key);\r\n var groupInfo = that.findGroupInfo(path);\r\n if (groupInfo && !groupInfo.isExpanded) {\r\n item.collapsedItems = item.items;\r\n item.items = null;\r\n offset += groupInfo.count;\r\n take--;\r\n if (take < 0) {\r\n removeLastItemsCount++\r\n }\r\n if (skipFirstItem) {\r\n needRemoveFirstItem = true\r\n }\r\n } else if (item.items) {\r\n var offsetInfo = processGroupItems(that, item.items, path, offset, skipFirstItem, take);\r\n if (skipFirstItem) {\r\n if (offsetInfo.offset - offset > 1) {\r\n item.isContinuation = true\r\n } else {\r\n needRemoveFirstItem = true\r\n }\r\n }\r\n offset = offsetInfo.offset;\r\n take = offsetInfo.take;\r\n if (take < 0) {\r\n if (item.items.length) {\r\n item.isContinuationOnNextPage = true\r\n } else {\r\n removeLastItemsCount++\r\n }\r\n }\r\n }\r\n path.pop()\r\n } else {\r\n if (skipFirstItem) {\r\n needRemoveFirstItem = true\r\n }\r\n offset++;\r\n take--;\r\n if (take < 0) {\r\n removeLastItemsCount++\r\n }\r\n }\r\n skipFirstItem = false\r\n }\r\n if (needRemoveFirstItem) {\r\n items.splice(0, 1)\r\n }\r\n if (removeLastItemsCount) {\r\n items.splice(-removeLastItemsCount, removeLastItemsCount)\r\n }\r\n return {\r\n offset: offset,\r\n take: take\r\n }\r\n }(this, data, [], options.skip, options.skipFirstItem, options.take)\r\n }\r\n options.data = data\r\n }\r\n },\r\n isGroupItemCountable: function(item) {\r\n return null === item.items\r\n },\r\n updateTotalItemsCount: function() {\r\n var itemsCountCorrection = 0;\r\n foreachCollapsedGroups(this, (function(groupInfo) {\r\n if (groupInfo.count) {\r\n itemsCountCorrection -= groupInfo.count - 1\r\n }\r\n }));\r\n this.callBase(itemsCountCorrection)\r\n },\r\n changeRowExpand: function(path) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var beginPageIndex = dataSource.beginPageIndex ? dataSource.beginPageIndex() : dataSource.pageIndex();\r\n var dataSourceItems = dataSource.items();\r\n var offset = correctSkipLoadOption(that, beginPageIndex * dataSource.pageSize());\r\n var groupInfo = that.findGroupInfo(path);\r\n var groupCountQuery;\r\n if (groupInfo && !groupInfo.isExpanded) {\r\n groupCountQuery = (new Deferred).resolve(groupInfo.count)\r\n } else {\r\n groupCountQuery = loadTotalCount(dataSource, {\r\n filter: createGroupFilter(path, {\r\n filter: dataSource.filter(),\r\n group: dataSource.group()\r\n })\r\n })\r\n }\r\n return when(groupCountQuery).done((function(count) {\r\n count = parseInt(count.length ? count[0] : count);\r\n if (groupInfo) {\r\n updateGroupOffsets(that, dataSourceItems, [], offset);\r\n groupInfo.isExpanded = !groupInfo.isExpanded;\r\n groupInfo.count = count\r\n } else {\r\n groupInfo = {\r\n offset: -1,\r\n count: count,\r\n path: path,\r\n isExpanded: false\r\n };\r\n updateGroupOffsets(that, dataSourceItems, [], offset, groupInfo);\r\n if (groupInfo.offset >= 0) {\r\n that.addGroupInfo(groupInfo)\r\n }\r\n }\r\n that.updateTotalItemsCount()\r\n })).fail((function() {\r\n dataSource._eventsStrategy.fireEvent(\"loadError\", arguments)\r\n }))\r\n },\r\n allowCollapseAll: function() {\r\n return false\r\n },\r\n refresh: function(options, operationTypes) {\r\n var that = this;\r\n var storeLoadOptions = options.storeLoadOptions;\r\n var dataSource = that._dataSource;\r\n this.callBase.apply(this, arguments);\r\n if (operationTypes.reload) {\r\n return foreachCollapsedGroups(that, (function(groupInfo) {\r\n var groupCountQuery = loadTotalCount(dataSource, {\r\n filter: createGroupFilter(groupInfo.path, storeLoadOptions)\r\n });\r\n var groupOffsetQuery = loadTotalCount(dataSource, {\r\n filter: createOffsetFilter(groupInfo.path, storeLoadOptions)\r\n });\r\n return when(groupOffsetQuery, groupCountQuery).done((function(offset, count) {\r\n offset = parseInt(offset.length ? offset[0] : offset);\r\n count = parseInt(count.length ? count[0] : count);\r\n groupInfo.offset = offset;\r\n if (groupInfo.count !== count) {\r\n groupInfo.count = count;\r\n that.updateTotalItemsCount()\r\n }\r\n }))\r\n }), true)\r\n }\r\n }\r\n }\r\n}());\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.grouping.collapsed.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport dataGridCore from \"./ui.data_grid.core\";\r\nimport {\r\n GroupingHelper as GroupingHelperCore,\r\n createOffsetFilter\r\n} from \"./ui.data_grid.grouping.core\";\r\nimport {\r\n createGroupFilter\r\n} from \"./ui.data_grid.utils\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport {\r\n errors as dataErrors\r\n} from \"../../data/errors\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\n\r\nfunction getContinuationGroupCount(groupOffset, pageSize, groupSize, groupIndex) {\r\n groupIndex = groupIndex || 0;\r\n if (pageSize > 1 && groupSize > 0) {\r\n var pageOffset = groupOffset - Math.floor(groupOffset / pageSize) * pageSize || pageSize;\r\n pageOffset += groupSize - groupIndex - 2;\r\n if (pageOffset < 0) {\r\n pageOffset += pageSize\r\n }\r\n return Math.floor(pageOffset / (pageSize - groupIndex - 1))\r\n }\r\n return 0\r\n}\r\nexport var GroupingHelper = GroupingHelperCore.inherit(function() {\r\n var foreachExpandedGroups = function(that, callback, updateGroups) {\r\n return that.foreachGroups((function(groupInfo, parents) {\r\n if (groupInfo.isExpanded) {\r\n return callback(groupInfo, parents)\r\n }\r\n }), true, false, updateGroups, updateGroups)\r\n };\r\n var processGroupItems = function processGroupItems(that, items, groupsCount, expandedInfo, path, isCustomLoading, isLastGroupExpanded) {\r\n var isExpanded;\r\n expandedInfo.items = expandedInfo.items || [];\r\n expandedInfo.paths = expandedInfo.paths || [];\r\n expandedInfo.count = expandedInfo.count || 0;\r\n expandedInfo.lastCount = expandedInfo.lastCount || 0;\r\n if (!groupsCount) {\r\n return\r\n }\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (void 0 !== item.items) {\r\n path.push(item.key);\r\n if (isCustomLoading) {\r\n isExpanded = true\r\n } else {\r\n var groupInfo = that.findGroupInfo(path);\r\n isExpanded = groupInfo && groupInfo.isExpanded\r\n }\r\n if (!isExpanded) {\r\n item.collapsedItems = item.items;\r\n item.items = null\r\n } else if (item.items) {\r\n processGroupItems(that, item.items, groupsCount - 1, expandedInfo, path, isCustomLoading, isLastGroupExpanded)\r\n } else if (1 === groupsCount && item.count && (!isCustomLoading || isLastGroupExpanded)) {\r\n expandedInfo.items.push(item);\r\n expandedInfo.paths.push(path.slice(0));\r\n expandedInfo.count += expandedInfo.lastCount;\r\n expandedInfo.lastCount = item.count\r\n }\r\n path.pop()\r\n }\r\n }\r\n };\r\n var updateGroupInfoItem = function(that, item, isLastGroupLevel, path, offset) {\r\n var groupInfo = that.findGroupInfo(path);\r\n var count;\r\n if (!groupInfo) {\r\n if (isLastGroupLevel) {\r\n count = item.count > 0 ? item.count : item.items.length\r\n }\r\n that.addGroupInfo({\r\n isExpanded: that._isGroupExpanded(path.length - 1),\r\n path: path.slice(0),\r\n offset: offset,\r\n count: count || 0\r\n })\r\n } else {\r\n if (isLastGroupLevel) {\r\n groupInfo.count = item.count > 0 ? item.count : item.items && item.items.length || 0\r\n } else {\r\n item.count = groupInfo.count || item.count\r\n }\r\n groupInfo.offset = offset\r\n }\r\n };\r\n var updateGroupInfos = function updateGroupInfos(that, options, items, loadedGroupCount, groupIndex, path, parentIndex) {\r\n var groupCount = options.group ? options.group.length : 0;\r\n var isLastGroupLevel = groupCount === loadedGroupCount;\r\n var remotePaging = options.remoteOperations.paging;\r\n var offset = 0;\r\n var totalCount = 0;\r\n var count;\r\n groupIndex = groupIndex || 0;\r\n path = path || [];\r\n if (remotePaging && !parentIndex) {\r\n offset = 0 === groupIndex ? options.skip || 0 : options.skips[groupIndex - 1] || 0\r\n }\r\n if (groupIndex >= loadedGroupCount) {\r\n return items.length\r\n }\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (item) {\r\n path.push(item.key);\r\n if (!item.count && !item.items || void 0 === item.items) {\r\n return -1\r\n }\r\n updateGroupInfoItem(that, item, isLastGroupLevel, path, offset + i);\r\n count = item.items ? updateGroupInfos(that, options, item.items, loadedGroupCount, groupIndex + 1, path, i) : item.count || -1;\r\n if (count < 0) {\r\n return -1\r\n }\r\n totalCount += count;\r\n path.pop()\r\n }\r\n }\r\n return totalCount\r\n };\r\n var isGroupExpanded = function(groups, groupIndex) {\r\n return groups && groups.length && groups[groupIndex] && !!groups[groupIndex].isExpanded\r\n };\r\n var getTotalOffset = function(groupInfos, pageSize, offset) {\r\n var groupSize;\r\n var totalOffset = offset;\r\n for (var groupIndex = 0; groupIndex < groupInfos.length; groupIndex++) {\r\n groupSize = groupInfos[groupIndex].offset + 1;\r\n if (groupIndex > 0) {\r\n groupSize += groupInfos[groupIndex - 1].childrenTotalCount;\r\n if (pageSize) {\r\n groupSize += getContinuationGroupCount(totalOffset, pageSize, groupSize, groupIndex - 1) * groupIndex\r\n }\r\n }\r\n totalOffset += groupSize\r\n }\r\n return totalOffset\r\n };\r\n\r\n function applyContinuationToGroupItem(options, expandedInfo, groupLevel, expandedItemIndex) {\r\n var item = expandedInfo.items[expandedItemIndex];\r\n var skip = options.skips && options.skips[groupLevel];\r\n var take = options.takes && options.takes[groupLevel];\r\n var isLastExpandedItem = expandedItemIndex === expandedInfo.items.length - 1;\r\n var isFirstExpandedItem = 0 === expandedItemIndex;\r\n var lastExpandedItemSkip = isFirstExpandedItem && skip || 0;\r\n var isItemsTruncatedByTake = item.count > take + lastExpandedItemSkip;\r\n if (isFirstExpandedItem && void 0 !== skip) {\r\n item.isContinuation = true\r\n }\r\n if (isLastExpandedItem && void 0 !== take && isItemsTruncatedByTake) {\r\n item.isContinuationOnNextPage = true\r\n }\r\n }\r\n\r\n function isDataDeferred(data) {\r\n return !Array.isArray(data)\r\n }\r\n\r\n function makeDataDeferred(options) {\r\n if (!isDataDeferred(options.data)) {\r\n options.data = new Deferred\r\n }\r\n }\r\n\r\n function loadGroupItems(that, options, loadedGroupCount, expandedInfo, groupLevel, data) {\r\n if (!options.isCustomLoading) {\r\n expandedInfo = {};\r\n processGroupItems(that, data, loadedGroupCount, expandedInfo, []);\r\n ! function(options, expandedInfo, currentGroupCount) {\r\n var currentGroupIndex = currentGroupCount - 1;\r\n var groupCount = options.group ? options.group.length : 0;\r\n expandedInfo.skip = options.skips && options.skips[currentGroupIndex];\r\n if (options.takes && void 0 !== options.takes[currentGroupIndex]) {\r\n if (groupCount === currentGroupCount) {\r\n expandedInfo.take = expandedInfo.count ? expandedInfo.count - (expandedInfo.skip || 0) : 0\r\n } else {\r\n expandedInfo.take = 0\r\n }\r\n expandedInfo.take += options.takes[currentGroupIndex]\r\n }\r\n }(options, expandedInfo, loadedGroupCount)\r\n }\r\n var groupCount = options.group ? options.group.length : 0;\r\n if (expandedInfo.paths.length && groupCount - loadedGroupCount > 0) {\r\n makeDataDeferred(options);\r\n ! function(that, options, expandedInfo, loadedGroupCount, groupLevel, data) {\r\n var groups = options.group || [];\r\n var currentGroup = groups[groupLevel + 1];\r\n var deferreds = [];\r\n each(expandedInfo.paths, (function(expandedItemIndex) {\r\n var loadOptions = {\r\n requireTotalCount: false,\r\n requireGroupCount: true,\r\n group: [currentGroup],\r\n groupSummary: options.storeLoadOptions.groupSummary,\r\n filter: createGroupFilter(expandedInfo.paths[expandedItemIndex], {\r\n filter: options.storeLoadOptions.filter,\r\n group: groups\r\n }),\r\n select: options.storeLoadOptions.select\r\n };\r\n if (0 === expandedItemIndex) {\r\n loadOptions.skip = expandedInfo.skip || 0\r\n }\r\n if (expandedItemIndex === expandedInfo.paths.length - 1) {\r\n loadOptions.take = expandedInfo.take\r\n }\r\n var loadResult = 0 === loadOptions.take ? [] : that._dataSource.loadFromStore(loadOptions);\r\n when(loadResult).done((function(data) {\r\n var item = expandedInfo.items[expandedItemIndex];\r\n applyContinuationToGroupItem(options, expandedInfo, groupLevel, expandedItemIndex);\r\n item.items = data\r\n }));\r\n deferreds.push(loadResult)\r\n }));\r\n when.apply(null, deferreds).done((function() {\r\n updateGroupInfos(that, options, data, loadedGroupCount + 1);\r\n loadGroupItems(that, options, loadedGroupCount + 1, expandedInfo, groupLevel + 1, data)\r\n }))\r\n }(that, options, expandedInfo, loadedGroupCount, groupLevel, data)\r\n } else if (expandedInfo.paths.length && options.storeLoadOptions.group) {\r\n makeDataDeferred(options);\r\n ! function(that, options, expandedInfo, data) {\r\n var expandedFilters = [];\r\n var groups = options.group || [];\r\n each(expandedInfo.paths, (function(_, expandedPath) {\r\n expandedFilters.push(createGroupFilter(expandedPath, {\r\n group: options.isCustomLoading ? options.storeLoadOptions.group : groups\r\n }))\r\n }));\r\n var filter = options.storeLoadOptions.filter;\r\n if (!options.storeLoadOptions.isLoadingAll) {\r\n filter = dataGridCore.combineFilters([filter, dataGridCore.combineFilters(expandedFilters, \"or\")])\r\n }\r\n var loadOptions = extend({}, options.storeLoadOptions, {\r\n requireTotalCount: false,\r\n requireGroupCount: false,\r\n group: null,\r\n sort: groups.concat(dataGridCore.normalizeSortingInfo(options.storeLoadOptions.sort || [])),\r\n filter: filter\r\n });\r\n var isPagingLocal = that._dataSource.isLastLevelGroupItemsPagingLocal();\r\n if (!isPagingLocal) {\r\n loadOptions.skip = expandedInfo.skip;\r\n loadOptions.take = expandedInfo.take\r\n }\r\n when(0 === expandedInfo.take ? [] : that._dataSource.loadFromStore(loadOptions)).done((function(items, extra) {\r\n if (isPagingLocal) {\r\n items = that._dataSource.sortLastLevelGroupItems(items, groups, expandedInfo.paths);\r\n items = expandedInfo.skip ? items.slice(expandedInfo.skip) : items;\r\n items = expandedInfo.take ? items.slice(0, expandedInfo.take) : items\r\n }\r\n each(expandedInfo.items, (function(index, item) {\r\n var itemCount = item.count - (0 === index && expandedInfo.skip || 0);\r\n var expandedItems = items.splice(0, itemCount);\r\n applyContinuationToGroupItem(options, expandedInfo, groups.length - 1, index);\r\n item.items = expandedItems\r\n }));\r\n options.data.resolve(data)\r\n })).fail(options.data.reject)\r\n }(that, options, expandedInfo, data)\r\n } else if (isDataDeferred(options.data)) {\r\n options.data.resolve(data)\r\n }\r\n }\r\n var loadGroupTotalCount = function(dataSource, options) {\r\n var d = new Deferred;\r\n var isGrouping = !!(options.group && options.group.length);\r\n var loadOptions = extend({\r\n skip: 0,\r\n take: 1,\r\n requireGroupCount: isGrouping,\r\n requireTotalCount: !isGrouping\r\n }, options, {\r\n group: isGrouping ? options.group : null\r\n });\r\n dataSource.load(loadOptions).done((function(data, extra) {\r\n var count = extra && (isGrouping ? extra.groupCount : extra.totalCount);\r\n if (!isFinite(count)) {\r\n d.reject(dataErrors.Error(isGrouping ? \"E4022\" : \"E4021\"));\r\n return\r\n }\r\n d.resolve(count)\r\n })).fail(d.reject.bind(d));\r\n return d\r\n };\r\n return {\r\n updateTotalItemsCount: function(options) {\r\n var totalItemsCount = 0;\r\n var totalCount = options.extra && options.extra.totalCount || 0;\r\n var groupCount = options.extra && options.extra.groupCount || 0;\r\n var pageSize = this._dataSource.pageSize();\r\n var isVirtualPaging = this._isVirtualPaging();\r\n foreachExpandedGroups(this, (function(groupInfo) {\r\n groupInfo.childrenTotalCount = 0\r\n }));\r\n foreachExpandedGroups(this, (function(groupInfo, parents) {\r\n var totalOffset = getTotalOffset(parents, isVirtualPaging ? 0 : pageSize, totalItemsCount);\r\n var count = groupInfo.count + groupInfo.childrenTotalCount;\r\n if (!isVirtualPaging) {\r\n count += getContinuationGroupCount(totalOffset, pageSize, count, parents.length - 1)\r\n }\r\n if (parents[parents.length - 2]) {\r\n parents[parents.length - 2].childrenTotalCount += count\r\n } else {\r\n totalItemsCount += count\r\n }\r\n }));\r\n this.callBase(totalItemsCount - totalCount + groupCount)\r\n },\r\n _isGroupExpanded: function(groupIndex) {\r\n var groups = this._dataSource.group();\r\n return isGroupExpanded(groups, groupIndex)\r\n },\r\n _updatePagingOptions: function(options, callback) {\r\n var isVirtualPaging = this._isVirtualPaging();\r\n var pageSize = this._dataSource.pageSize();\r\n var skips = [];\r\n var takes = [];\r\n var skipChildrenTotalCount = 0;\r\n var childrenTotalCount = 0;\r\n if (options.take) {\r\n foreachExpandedGroups(this, (function(groupInfo) {\r\n groupInfo.childrenTotalCount = 0;\r\n groupInfo.skipChildrenTotalCount = 0\r\n }));\r\n foreachExpandedGroups(this, (function(groupInfo, parents) {\r\n var take;\r\n var takeCorrection = 0;\r\n var parentTakeCorrection = 0;\r\n var totalOffset = getTotalOffset(parents, isVirtualPaging ? 0 : pageSize, childrenTotalCount);\r\n var continuationGroupCount = 0;\r\n var skipContinuationGroupCount = 0;\r\n var groupInfoCount = groupInfo.count + groupInfo.childrenTotalCount;\r\n var childrenGroupInfoCount = groupInfoCount;\r\n callback && callback(groupInfo, totalOffset);\r\n var skip = options.skip - totalOffset;\r\n if (totalOffset <= options.skip + options.take && groupInfoCount) {\r\n take = options.take;\r\n if (!isVirtualPaging) {\r\n continuationGroupCount = getContinuationGroupCount(totalOffset, pageSize, groupInfoCount, parents.length - 1);\r\n groupInfoCount += continuationGroupCount * parents.length;\r\n childrenGroupInfoCount += continuationGroupCount;\r\n if (pageSize && skip >= 0) {\r\n takeCorrection = parents.length;\r\n parentTakeCorrection = parents.length - 1;\r\n skipContinuationGroupCount = Math.floor(skip / pageSize)\r\n }\r\n }\r\n if (skip >= 0) {\r\n if (totalOffset + groupInfoCount > options.skip) {\r\n skips.unshift(skip - skipContinuationGroupCount * takeCorrection - groupInfo.skipChildrenTotalCount)\r\n }\r\n if (totalOffset + groupInfoCount >= options.skip + take) {\r\n takes.unshift(take - takeCorrection - groupInfo.childrenTotalCount + groupInfo.skipChildrenTotalCount)\r\n }\r\n } else if (totalOffset + groupInfoCount >= options.skip + take) {\r\n takes.unshift(take + skip - groupInfo.childrenTotalCount)\r\n }\r\n }\r\n if (totalOffset <= options.skip) {\r\n if (parents[parents.length - 2]) {\r\n parents[parents.length - 2].skipChildrenTotalCount += Math.min(childrenGroupInfoCount, skip + 1 - skipContinuationGroupCount * parentTakeCorrection)\r\n } else {\r\n skipChildrenTotalCount += Math.min(childrenGroupInfoCount, skip + 1)\r\n }\r\n }\r\n if (totalOffset <= options.skip + take) {\r\n groupInfoCount = Math.min(childrenGroupInfoCount, skip + take - (skipContinuationGroupCount + 1) * parentTakeCorrection);\r\n if (parents[parents.length - 2]) {\r\n parents[parents.length - 2].childrenTotalCount += groupInfoCount\r\n } else {\r\n childrenTotalCount += groupInfoCount\r\n }\r\n }\r\n }));\r\n options.skip -= skipChildrenTotalCount;\r\n options.take -= childrenTotalCount - skipChildrenTotalCount\r\n }\r\n options.skips = skips;\r\n options.takes = takes\r\n },\r\n changeRowExpand: function(path) {\r\n var groupInfo = this.findGroupInfo(path);\r\n var dataSource = this._dataSource;\r\n var remoteGroupPaging = dataSource.remoteOperations().groupPaging;\r\n var groups = dataGridCore.normalizeSortingInfo(dataSource.group());\r\n if (groupInfo) {\r\n groupInfo.isExpanded = !groupInfo.isExpanded;\r\n if (remoteGroupPaging && groupInfo.isExpanded && path.length < groups.length) {\r\n return loadGroupTotalCount(dataSource, {\r\n filter: createGroupFilter(path, {\r\n filter: dataSource.lastLoadOptions().filter,\r\n group: dataSource.group()\r\n }),\r\n group: [groups[path.length]],\r\n select: dataSource.select()\r\n }).done((function(groupCount) {\r\n groupInfo.count = groupCount\r\n }))\r\n }\r\n return (new Deferred).resolve()\r\n }\r\n return (new Deferred).reject()\r\n },\r\n handleDataLoading: function(options) {\r\n var storeLoadOptions = options.storeLoadOptions;\r\n var groups = dataGridCore.normalizeSortingInfo(storeLoadOptions.group || options.loadOptions.group);\r\n if (options.isCustomLoading || !groups.length) {\r\n return\r\n }\r\n if (options.remoteOperations.grouping) {\r\n var remotePaging = this._dataSource.remoteOperations().paging;\r\n storeLoadOptions.group = dataGridCore.normalizeSortingInfo(storeLoadOptions.group);\r\n storeLoadOptions.group.forEach((function(group, index) {\r\n var isLastGroup = index === storeLoadOptions.group.length - 1;\r\n group.isExpanded = !remotePaging || !isLastGroup\r\n }))\r\n }\r\n options.group = options.group || groups;\r\n if (options.remoteOperations.paging) {\r\n options.skip = storeLoadOptions.skip;\r\n options.take = storeLoadOptions.take;\r\n storeLoadOptions.requireGroupCount = true;\r\n storeLoadOptions.group = groups.slice(0, 1);\r\n this._updatePagingOptions(options);\r\n storeLoadOptions.skip = options.skip;\r\n storeLoadOptions.take = options.take\r\n } else {\r\n options.skip = options.loadOptions.skip;\r\n options.take = options.loadOptions.take;\r\n this._updatePagingOptions(options)\r\n }\r\n },\r\n handleDataLoadedCore: function(options, callBase) {\r\n var loadedGroupCount = dataGridCore.normalizeSortingInfo(options.storeLoadOptions.group || options.loadOptions.group).length;\r\n var groupCount = options.group ? options.group.length : 0;\r\n var totalCount;\r\n var expandedInfo = {};\r\n if (options.isCustomLoading) {\r\n callBase(options);\r\n processGroupItems(this, options.data, loadedGroupCount, expandedInfo, [], options.isCustomLoading, options.storeLoadOptions.isLoadingAll)\r\n } else {\r\n if (!options.remoteOperations.paging) {\r\n this.foreachGroups((function(groupInfo) {\r\n groupInfo.count = 0\r\n }))\r\n }\r\n totalCount = updateGroupInfos(this, options, options.data, loadedGroupCount);\r\n if (totalCount < 0) {\r\n options.data = (new Deferred).reject(errors.Error(\"E1037\"));\r\n return\r\n }\r\n if (!options.remoteOperations.paging) {\r\n if (loadedGroupCount && options.extra && options.loadOptions.requireTotalCount) {\r\n options.extra.totalCount = totalCount;\r\n options.extra.groupCount = options.data.length\r\n }\r\n }\r\n if (groupCount && options.storeLoadOptions.requireGroupCount && !isFinite(options.extra.groupCount)) {\r\n options.data = (new Deferred).reject(dataErrors.Error(\"E4022\"));\r\n return\r\n }\r\n this.updateTotalItemsCount(options);\r\n if (!options.remoteOperations.paging) {\r\n this._updatePagingOptions(options)\r\n }\r\n callBase(options);\r\n if (!options.remoteOperations.paging) {\r\n this._processPaging(options, loadedGroupCount)\r\n }\r\n }\r\n loadGroupItems(this, options, loadedGroupCount, expandedInfo, 0, options.data)\r\n },\r\n _processSkips: function(items, skips, groupCount) {\r\n if (!groupCount) {\r\n return\r\n }\r\n var firstItem = items[0];\r\n var skip = skips[0];\r\n var children = firstItem && firstItem.items;\r\n if (void 0 !== skip) {\r\n firstItem.isContinuation = true;\r\n if (children) {\r\n firstItem.items = children.slice(skip);\r\n this._processSkips(firstItem.items, skips.slice(1), groupCount - 1)\r\n }\r\n }\r\n },\r\n _processTakes: function(items, skips, takes, groupCount, parents) {\r\n if (!groupCount || !items) {\r\n return\r\n }\r\n parents = parents || [];\r\n var lastItem = items[items.length - 1];\r\n var children = lastItem && lastItem.items;\r\n var take = takes[0];\r\n var skip = skips[0];\r\n if (lastItem) {\r\n var maxTakeCount = lastItem.count - (lastItem.isContinuation && skip || 0) || children.length;\r\n if (void 0 !== take && maxTakeCount > take) {\r\n lastItem.isContinuationOnNextPage = true;\r\n parents.forEach((function(parent) {\r\n parent.isContinuationOnNextPage = true\r\n }));\r\n if (children) {\r\n children = children.slice(0, take);\r\n lastItem.items = children\r\n }\r\n }\r\n parents.push(lastItem);\r\n this._processTakes(children, skips.slice(1), takes.slice(1), groupCount - 1, parents)\r\n }\r\n },\r\n _processPaging: function(options, groupCount) {\r\n this._processSkips(options.data, options.skips, groupCount);\r\n this._processTakes(options.data, options.skips, options.takes, groupCount)\r\n },\r\n isLastLevelGroupItemsPagingLocal: function() {\r\n return false\r\n },\r\n sortLastLevelGroupItems: function(items) {\r\n return items\r\n },\r\n refresh: function(options, operationTypes) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var storeLoadOptions = options.storeLoadOptions;\r\n var group = options.group || options.storeLoadOptions.group;\r\n var oldGroups = dataGridCore.normalizeSortingInfo(that._group);\r\n var isExpanded;\r\n var groupIndex;\r\n\r\n function handleGroup(groupInfo, parents) {\r\n if (parents.length === groupIndex + 1) {\r\n groupInfo.isExpanded = isExpanded\r\n }\r\n }\r\n for (groupIndex = 0; groupIndex < oldGroups.length; groupIndex++) {\r\n isExpanded = isGroupExpanded(group, groupIndex);\r\n if (isGroupExpanded(that._group, groupIndex) !== isExpanded) {\r\n that.foreachGroups(handleGroup)\r\n }\r\n }\r\n that.callBase.apply(this, arguments);\r\n if (group && options.remoteOperations.paging && operationTypes.reload) {\r\n return foreachExpandedGroups(that, (function(groupInfo) {\r\n var groupCountQuery = loadGroupTotalCount(dataSource, {\r\n filter: createGroupFilter(groupInfo.path, {\r\n filter: storeLoadOptions.filter,\r\n group: group\r\n }),\r\n group: group.slice(groupInfo.path.length),\r\n select: storeLoadOptions.select\r\n });\r\n var groupOffsetQuery = loadGroupTotalCount(dataSource, {\r\n filter: createOffsetFilter(groupInfo.path, {\r\n filter: storeLoadOptions.filter,\r\n group: group\r\n }, true),\r\n group: group.slice(groupInfo.path.length - 1, groupInfo.path.length),\r\n select: storeLoadOptions.select\r\n });\r\n return when(groupOffsetQuery, groupCountQuery).done((function(offset, count) {\r\n offset = parseInt(offset.length ? offset[0] : offset);\r\n count = parseInt(count.length ? count[0] : count);\r\n groupInfo.offset = offset;\r\n if (groupInfo.count !== count) {\r\n groupInfo.count = count;\r\n that.updateTotalItemsCount(options)\r\n }\r\n }))\r\n }), true)\r\n }\r\n }\r\n }\r\n}());\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.grouping.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n GroupingHelper as ExpandedGroupingHelper\r\n} from \"./ui.data_grid.grouping.expanded\";\r\nimport {\r\n GroupingHelper as CollapsedGroupingHelper\r\n} from \"./ui.data_grid.grouping.collapsed\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport dataSourceAdapter from \"./ui.data_grid.data_source_adapter\";\r\nimport {\r\n isDefined,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n registerKeyboardAction\r\n} from \"../grid_core/ui.grid_core.accessibility\";\r\nimport {\r\n setTabIndex,\r\n restoreFocus\r\n} from \"../shared/accessibility\";\r\nvar DATAGRID_GROUP_PANEL_CLASS = \"dx-datagrid-group-panel\";\r\nvar DATAGRID_GROUP_PANEL_MESSAGE_CLASS = \"dx-group-panel-message\";\r\nvar DATAGRID_GROUP_PANEL_ITEM_CLASS = \"dx-group-panel-item\";\r\nvar DATAGRID_GROUP_PANEL_LABEL_CLASS = \"dx-toolbar-label\";\r\nvar DATAGRID_GROUP_PANEL_CONTAINER_CLASS = \"dx-toolbar-item\";\r\nvar DATAGRID_EXPAND_CLASS = \"dx-datagrid-expand\";\r\nvar DATAGRID_GROUP_ROW_CLASS = \"dx-group-row\";\r\nvar HEADER_FILTER_CLASS_SELECTOR = \".dx-header-filter\";\r\nvar GroupingDataSourceAdapterExtender = {\r\n init: function() {\r\n this.callBase.apply(this, arguments);\r\n this._initGroupingHelper()\r\n },\r\n _initGroupingHelper: function(options) {\r\n var grouping = this._grouping;\r\n var isAutoExpandAll = this.option(\"grouping.autoExpandAll\");\r\n var isFocusedRowEnabled = this.option(\"focusedRowEnabled\");\r\n var remoteOperations = options ? options.remoteOperations : this.remoteOperations();\r\n var isODataRemoteOperations = remoteOperations.filtering && remoteOperations.sorting && remoteOperations.paging;\r\n if (isODataRemoteOperations && !remoteOperations.grouping && (isAutoExpandAll || !isFocusedRowEnabled)) {\r\n if (!grouping || grouping instanceof CollapsedGroupingHelper) {\r\n this._grouping = new ExpandedGroupingHelper(this)\r\n }\r\n } else if (!grouping || grouping instanceof ExpandedGroupingHelper) {\r\n this._grouping = new CollapsedGroupingHelper(this)\r\n }\r\n },\r\n totalItemsCount: function() {\r\n var totalCount = this.callBase();\r\n return totalCount > 0 && this._dataSource.group() && this._dataSource.requireTotalCount() ? totalCount + this._grouping.totalCountCorrection() : totalCount\r\n },\r\n itemsCount: function() {\r\n return this._dataSource.group() ? this._grouping.itemsCount() || 0 : this.callBase.apply(this, arguments)\r\n },\r\n allowCollapseAll: function() {\r\n return this._grouping.allowCollapseAll()\r\n },\r\n isGroupItemCountable: function(item) {\r\n return this._grouping.isGroupItemCountable(item)\r\n },\r\n isRowExpanded: function(key) {\r\n var groupInfo = this._grouping.findGroupInfo(key);\r\n return groupInfo ? groupInfo.isExpanded : !this._grouping.allowCollapseAll()\r\n },\r\n collapseAll: function(groupIndex) {\r\n return this._collapseExpandAll(groupIndex, false)\r\n },\r\n expandAll: function(groupIndex) {\r\n return this._collapseExpandAll(groupIndex, true)\r\n },\r\n _collapseExpandAll: function(groupIndex, isExpand) {\r\n var dataSource = this._dataSource;\r\n var group = dataSource.group();\r\n var groups = gridCore.normalizeSortingInfo(group || []);\r\n if (groups.length) {\r\n for (var i = 0; i < groups.length; i++) {\r\n if (void 0 === groupIndex || groupIndex === i) {\r\n groups[i].isExpanded = isExpand\r\n } else if (group && group[i]) {\r\n groups[i].isExpanded = group[i].isExpanded\r\n }\r\n }\r\n dataSource.group(groups);\r\n this._grouping.foreachGroups((function(groupInfo, parents) {\r\n if (void 0 === groupIndex || groupIndex === parents.length - 1) {\r\n groupInfo.isExpanded = isExpand\r\n }\r\n }), false, true);\r\n this.resetPagesCache()\r\n }\r\n return true\r\n },\r\n refresh: function() {\r\n this.callBase.apply(this, arguments);\r\n return this._grouping.refresh.apply(this._grouping, arguments)\r\n },\r\n changeRowExpand: function(path) {\r\n var dataSource = this._dataSource;\r\n if (dataSource.group()) {\r\n dataSource.beginLoading();\r\n if (this._lastLoadOptions) {\r\n this._lastLoadOptions.groupExpand = true\r\n }\r\n return this._changeRowExpandCore(path).always((function() {\r\n dataSource.endLoading()\r\n }))\r\n }\r\n },\r\n _changeRowExpandCore: function(path) {\r\n return this._grouping.changeRowExpand(path)\r\n },\r\n _hasGroupLevelsExpandState: function(group, isExpanded) {\r\n if (group && Array.isArray(group)) {\r\n for (var i = 0; i < group.length; i++) {\r\n if (group[i].isExpanded === isExpanded) {\r\n return true\r\n }\r\n }\r\n }\r\n },\r\n _customizeRemoteOperations: function(options, operationTypes) {\r\n var remoteOperations = options.remoteOperations;\r\n if (options.storeLoadOptions.group) {\r\n if (remoteOperations.grouping && !options.isCustomLoading) {\r\n if (!remoteOperations.groupPaging || this._hasGroupLevelsExpandState(options.storeLoadOptions.group, true)) {\r\n remoteOperations.paging = false\r\n }\r\n }\r\n if (!remoteOperations.grouping && (!remoteOperations.sorting || !remoteOperations.filtering || options.isCustomLoading || this._hasGroupLevelsExpandState(options.storeLoadOptions.group, false))) {\r\n remoteOperations.paging = false\r\n }\r\n } else if (!options.isCustomLoading && remoteOperations.paging && operationTypes.grouping) {\r\n this.resetCache()\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _handleDataLoading: function(options) {\r\n this.callBase(options);\r\n this._initGroupingHelper(options);\r\n return this._grouping.handleDataLoading(options)\r\n },\r\n _handleDataLoaded: function(options) {\r\n return this._grouping.handleDataLoaded(options, this.callBase.bind(this))\r\n },\r\n _handleDataLoadedCore: function(options) {\r\n return this._grouping.handleDataLoadedCore(options, this.callBase.bind(this))\r\n }\r\n};\r\ndataSourceAdapter.extend(GroupingDataSourceAdapterExtender);\r\nvar GroupingDataControllerExtender = {\r\n init: function() {\r\n this.callBase();\r\n this.createAction(\"onRowExpanding\");\r\n this.createAction(\"onRowExpanded\");\r\n this.createAction(\"onRowCollapsing\");\r\n this.createAction(\"onRowCollapsed\")\r\n },\r\n _beforeProcessItems: function(items) {\r\n var groupColumns = this._columnsController.getGroupColumns();\r\n items = this.callBase(items);\r\n if (items.length && groupColumns.length) {\r\n items = this._processGroupItems(items, groupColumns.length)\r\n }\r\n return items\r\n },\r\n _processItem: function(item, options) {\r\n if (isDefined(item.groupIndex) && isString(item.rowType) && 0 === item.rowType.indexOf(\"group\")) {\r\n item = this._processGroupItem(item, options);\r\n options.dataIndex = 0\r\n } else {\r\n item = this.callBase.apply(this, arguments)\r\n }\r\n return item\r\n },\r\n _processGroupItem: function(item) {\r\n return item\r\n },\r\n _processGroupItems: function(items, groupsCount, options) {\r\n var groupedColumns = this._columnsController.getGroupColumns();\r\n var column = groupedColumns[groupedColumns.length - groupsCount];\r\n if (!options) {\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n options = {\r\n collectContinuationItems: \"virtual\" !== scrollingMode && \"infinite\" !== scrollingMode,\r\n resultItems: [],\r\n path: [],\r\n values: []\r\n }\r\n }\r\n var resultItems = options.resultItems;\r\n if (options.data) {\r\n if (options.collectContinuationItems || !options.data.isContinuation) {\r\n resultItems.push({\r\n rowType: \"group\",\r\n data: options.data,\r\n groupIndex: options.path.length - 1,\r\n isExpanded: !!options.data.items,\r\n key: options.path.slice(0),\r\n values: options.values.slice(0)\r\n })\r\n }\r\n }\r\n if (items) {\r\n if (0 === groupsCount) {\r\n resultItems.push.apply(resultItems, items)\r\n } else {\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (item && \"items\" in item) {\r\n options.data = item;\r\n options.path.push(item.key);\r\n options.values.push(column && column.deserializeValue && !column.calculateDisplayValue ? column.deserializeValue(item.key) : item.key);\r\n this._processGroupItems(item.items, groupsCount - 1, options);\r\n options.data = void 0;\r\n options.path.pop();\r\n options.values.pop()\r\n } else {\r\n resultItems.push(item)\r\n }\r\n }\r\n }\r\n }\r\n return resultItems\r\n },\r\n publicMethods: function() {\r\n return this.callBase().concat([\"collapseAll\", \"expandAll\", \"isRowExpanded\", \"expandRow\", \"collapseRow\"])\r\n },\r\n collapseAll: function(groupIndex) {\r\n var dataSource = this._dataSource;\r\n if (dataSource && dataSource.collapseAll(groupIndex)) {\r\n dataSource.pageIndex(0);\r\n dataSource.reload()\r\n }\r\n },\r\n expandAll: function(groupIndex) {\r\n var dataSource = this._dataSource;\r\n if (dataSource && dataSource.expandAll(groupIndex)) {\r\n dataSource.pageIndex(0);\r\n dataSource.reload()\r\n }\r\n },\r\n changeRowExpand: function(key) {\r\n var that = this;\r\n var expanded = that.isRowExpanded(key);\r\n var args = {\r\n key: key,\r\n expanded: expanded\r\n };\r\n that.executeAction(expanded ? \"onRowCollapsing\" : \"onRowExpanding\", args);\r\n if (!args.cancel) {\r\n return when(that._changeRowExpandCore(key)).done((function() {\r\n args.expanded = !expanded;\r\n that.executeAction(expanded ? \"onRowCollapsed\" : \"onRowExpanded\", args)\r\n }))\r\n }\r\n return (new Deferred).resolve()\r\n },\r\n _changeRowExpandCore: function(key) {\r\n var that = this;\r\n var dataSource = this._dataSource;\r\n var d = new Deferred;\r\n if (!dataSource) {\r\n d.resolve()\r\n } else {\r\n when(dataSource.changeRowExpand(key)).done((function() {\r\n that.load().done(d.resolve).fail(d.reject)\r\n })).fail(d.reject)\r\n }\r\n return d\r\n },\r\n isRowExpanded: function(key) {\r\n var dataSource = this._dataSource;\r\n return dataSource && dataSource.isRowExpanded(key)\r\n },\r\n expandRow: function(key) {\r\n if (!this.isRowExpanded(key)) {\r\n return this.changeRowExpand(key)\r\n }\r\n return (new Deferred).resolve()\r\n },\r\n collapseRow: function(key) {\r\n if (this.isRowExpanded(key)) {\r\n return this.changeRowExpand(key)\r\n }\r\n return (new Deferred).resolve()\r\n },\r\n optionChanged: function(args) {\r\n if (\"grouping\" === args.name) {\r\n args.name = \"dataSource\"\r\n }\r\n this.callBase(args)\r\n }\r\n};\r\nvar onGroupingMenuItemClick = function(column, params) {\r\n var columnsController = this._columnsController;\r\n switch (params.itemData.value) {\r\n case \"group\":\r\n var groups = columnsController._dataSource.group() || [];\r\n columnsController.columnOption(column.dataField, \"groupIndex\", groups.length);\r\n break;\r\n case \"ungroup\":\r\n columnsController.columnOption(column.dataField, \"groupIndex\", -1);\r\n break;\r\n case \"ungroupAll\":\r\n this.component.clearGrouping()\r\n }\r\n};\r\nexport var GroupingHeaderPanelExtender = {\r\n _getToolbarItems: function() {\r\n var items = this.callBase();\r\n return this._appendGroupingItem(items)\r\n },\r\n _appendGroupingItem: function(items) {\r\n if (this._isGroupPanelVisible()) {\r\n var isRendered = false;\r\n var toolbarItem = {\r\n template: () => {\r\n var $groupPanel = $(\"
\").addClass(DATAGRID_GROUP_PANEL_CLASS);\r\n this._updateGroupPanelContent($groupPanel);\r\n registerKeyboardAction(\"groupPanel\", this, $groupPanel, void 0, this._handleActionKeyDown.bind(this));\r\n return $groupPanel\r\n },\r\n name: \"groupPanel\",\r\n onItemRendered: () => {\r\n isRendered && this.renderCompleted.fire();\r\n isRendered = true\r\n },\r\n location: \"before\",\r\n locateInMenu: \"never\",\r\n sortIndex: 1\r\n };\r\n items.push(toolbarItem)\r\n }\r\n return items\r\n },\r\n _handleActionKeyDown: function(args) {\r\n var event = args.event;\r\n var $target = $(event.target);\r\n var groupColumnIndex = $target.closest(\".\".concat(DATAGRID_GROUP_PANEL_ITEM_CLASS)).index();\r\n var column = this._columnsController.getGroupColumns()[groupColumnIndex];\r\n var columnIndex = column && column.index;\r\n if ($target.is(HEADER_FILTER_CLASS_SELECTOR)) {\r\n this.getController(\"headerFilter\").showHeaderFilterMenu(columnIndex, true)\r\n } else {\r\n this._processGroupItemAction(columnIndex)\r\n }\r\n event.preventDefault()\r\n },\r\n _isGroupPanelVisible: function() {\r\n var groupPanelOptions = this.option(\"groupPanel\");\r\n var isVisible;\r\n if (groupPanelOptions) {\r\n isVisible = groupPanelOptions.visible;\r\n if (\"auto\" === isVisible) {\r\n isVisible = \"desktop\" === devices.current().deviceType ? true : false\r\n }\r\n }\r\n return isVisible\r\n },\r\n _renderGroupPanelItems: function($groupPanel, groupColumns) {\r\n var that = this;\r\n $groupPanel.empty();\r\n each(groupColumns, (function(index, groupColumn) {\r\n that._createGroupPanelItem($groupPanel, groupColumn)\r\n }));\r\n restoreFocus(this)\r\n },\r\n _createGroupPanelItem: function($rootElement, groupColumn) {\r\n var $groupPanelItem = $(\"
\").addClass(groupColumn.cssClass).addClass(DATAGRID_GROUP_PANEL_ITEM_CLASS).data(\"columnData\", groupColumn).appendTo($rootElement).text(groupColumn.caption);\r\n setTabIndex(this, $groupPanelItem);\r\n return $groupPanelItem\r\n },\r\n _columnOptionChanged: function(e) {\r\n if (!this._requireReady && !gridCore.checkChanges(e.optionNames, [\"width\", \"visibleWidth\"])) {\r\n var $toolbarElement = this.element();\r\n var $groupPanel = $toolbarElement && $toolbarElement.find(\".\" + DATAGRID_GROUP_PANEL_CLASS);\r\n if ($groupPanel && $groupPanel.length) {\r\n this._updateGroupPanelContent($groupPanel);\r\n this.renderCompleted.fire()\r\n }\r\n }\r\n this.callBase()\r\n },\r\n _updateGroupPanelContent: function($groupPanel) {\r\n var groupColumns = this.getController(\"columns\").getGroupColumns();\r\n var groupPanelOptions = this.option(\"groupPanel\");\r\n this._renderGroupPanelItems($groupPanel, groupColumns);\r\n if (groupPanelOptions.allowColumnDragging && !groupColumns.length) {\r\n $(\"
\").addClass(DATAGRID_GROUP_PANEL_MESSAGE_CLASS).text(groupPanelOptions.emptyPanelText).appendTo($groupPanel);\r\n $groupPanel.closest(\".\" + DATAGRID_GROUP_PANEL_CONTAINER_CLASS).addClass(DATAGRID_GROUP_PANEL_LABEL_CLASS);\r\n $groupPanel.closest(\".\" + DATAGRID_GROUP_PANEL_LABEL_CLASS).css(\"maxWidth\", \"none\");\r\n this.updateToolbarDimensions()\r\n }\r\n },\r\n allowDragging: function(column) {\r\n var groupPanelOptions = this.option(\"groupPanel\");\r\n return this._isGroupPanelVisible() && groupPanelOptions.allowColumnDragging && column && column.allowGrouping\r\n },\r\n getColumnElements: function() {\r\n var $element = this.element();\r\n return $element && $element.find(\".\" + DATAGRID_GROUP_PANEL_ITEM_CLASS)\r\n },\r\n getColumns: function() {\r\n return this.getController(\"columns\").getGroupColumns()\r\n },\r\n getBoundingRect: function() {\r\n var $element = this.element();\r\n if ($element && $element.find(\".\" + DATAGRID_GROUP_PANEL_CLASS).length) {\r\n var offset = $element.offset();\r\n return {\r\n top: offset.top,\r\n bottom: offset.top + getHeight($element)\r\n }\r\n }\r\n return null\r\n },\r\n getName: function() {\r\n return \"group\"\r\n },\r\n getContextMenuItems: function(options) {\r\n var contextMenuEnabled = this.option(\"grouping.contextMenuEnabled\");\r\n var $groupedColumnElement = $(options.targetElement).closest(\".\" + DATAGRID_GROUP_PANEL_ITEM_CLASS);\r\n var items;\r\n if ($groupedColumnElement.length) {\r\n options.column = $groupedColumnElement.data(\"columnData\")\r\n }\r\n if (contextMenuEnabled && options.column) {\r\n var column = options.column;\r\n var isGroupingAllowed = isDefined(column.allowGrouping) ? column.allowGrouping : true;\r\n if (isGroupingAllowed) {\r\n var isColumnGrouped = isDefined(column.groupIndex) && column.groupIndex > -1;\r\n var groupingTexts = this.option(\"grouping.texts\");\r\n var onItemClick = onGroupingMenuItemClick.bind(this, column);\r\n items = [{\r\n text: groupingTexts.ungroup,\r\n value: \"ungroup\",\r\n disabled: !isColumnGrouped,\r\n onItemClick: onItemClick\r\n }, {\r\n text: groupingTexts.ungroupAll,\r\n value: \"ungroupAll\",\r\n onItemClick: onItemClick\r\n }]\r\n }\r\n }\r\n return items\r\n },\r\n isVisible: function() {\r\n return this.callBase() || this._isGroupPanelVisible()\r\n },\r\n optionChanged: function(args) {\r\n if (\"groupPanel\" === args.name) {\r\n this._invalidate();\r\n args.handled = true\r\n } else {\r\n this.callBase(args)\r\n }\r\n }\r\n};\r\nvar GroupingRowsViewExtender = {\r\n getContextMenuItems: function(options) {\r\n var contextMenuEnabled = this.option(\"grouping.contextMenuEnabled\");\r\n var items;\r\n if (contextMenuEnabled && options.row && \"group\" === options.row.rowType) {\r\n var columnsController = this._columnsController;\r\n var column = columnsController.columnOption(\"groupIndex:\" + options.row.groupIndex);\r\n if (column && column.allowGrouping) {\r\n var groupingTexts = this.option(\"grouping.texts\");\r\n var onItemClick = onGroupingMenuItemClick.bind(this, column);\r\n items = [];\r\n items.push({\r\n text: groupingTexts.ungroup,\r\n value: \"ungroup\",\r\n onItemClick: onItemClick\r\n }, {\r\n text: groupingTexts.ungroupAll,\r\n value: \"ungroupAll\",\r\n onItemClick: onItemClick\r\n })\r\n }\r\n }\r\n return items\r\n },\r\n _rowClick: function(e) {\r\n var expandMode = this.option(\"grouping.expandMode\");\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n var isGroupRowStateChanged = \"infinite\" !== scrollingMode && \"rowClick\" === expandMode && $(e.event.target).closest(\".\" + DATAGRID_GROUP_ROW_CLASS).length;\r\n var isExpandButtonClicked = $(e.event.target).closest(\".\" + DATAGRID_EXPAND_CLASS).length;\r\n if (isGroupRowStateChanged || isExpandButtonClicked) {\r\n this._changeGroupRowState(e)\r\n }\r\n this.callBase(e)\r\n },\r\n _changeGroupRowState: function(e) {\r\n var dataController = this.getController(\"data\");\r\n var row = dataController.items()[e.rowIndex];\r\n var allowCollapsing = this._columnsController.columnOption(\"groupIndex:\" + row.groupIndex, \"allowCollapsing\");\r\n if (\"data\" === row.rowType || \"group\" === row.rowType && false !== allowCollapsing) {\r\n dataController.changeRowExpand(row.key, true);\r\n e.event.preventDefault();\r\n e.handled = true\r\n }\r\n }\r\n};\r\nvar columnHeadersViewExtender = {\r\n getContextMenuItems: function(options) {\r\n var contextMenuEnabled = this.option(\"grouping.contextMenuEnabled\");\r\n var items = this.callBase(options);\r\n if (contextMenuEnabled && options.row && (\"header\" === options.row.rowType || \"detailAdaptive\" === options.row.rowType)) {\r\n var column = options.column;\r\n if (!column.command && (!isDefined(column.allowGrouping) || column.allowGrouping)) {\r\n var groupingTexts = this.option(\"grouping.texts\");\r\n var isColumnGrouped = isDefined(column.groupIndex) && column.groupIndex > -1;\r\n var onItemClick = onGroupingMenuItemClick.bind(this, column);\r\n items = items || [];\r\n items.push({\r\n text: groupingTexts.groupByThisColumn,\r\n value: \"group\",\r\n beginGroup: true,\r\n disabled: isColumnGrouped,\r\n onItemClick: onItemClick\r\n });\r\n if (column.showWhenGrouped) {\r\n items.push({\r\n text: groupingTexts.ungroup,\r\n value: \"ungroup\",\r\n disabled: !isColumnGrouped,\r\n onItemClick: onItemClick\r\n })\r\n }\r\n items.push({\r\n text: groupingTexts.ungroupAll,\r\n value: \"ungroupAll\",\r\n onItemClick: onItemClick\r\n })\r\n }\r\n }\r\n return items\r\n }\r\n};\r\ngridCore.registerModule(\"grouping\", {\r\n defaultOptions: function() {\r\n return {\r\n grouping: {\r\n autoExpandAll: true,\r\n allowCollapsing: true,\r\n contextMenuEnabled: false,\r\n expandMode: \"buttonClick\",\r\n texts: {\r\n groupContinuesMessage: messageLocalization.format(\"dxDataGrid-groupContinuesMessage\"),\r\n groupContinuedMessage: messageLocalization.format(\"dxDataGrid-groupContinuedMessage\"),\r\n groupByThisColumn: messageLocalization.format(\"dxDataGrid-groupHeaderText\"),\r\n ungroup: messageLocalization.format(\"dxDataGrid-ungroupHeaderText\"),\r\n ungroupAll: messageLocalization.format(\"dxDataGrid-ungroupAllText\")\r\n }\r\n },\r\n groupPanel: {\r\n visible: false,\r\n emptyPanelText: messageLocalization.format(\"dxDataGrid-groupPanelEmptyText\"),\r\n allowColumnDragging: true\r\n }\r\n }\r\n },\r\n extenders: {\r\n controllers: {\r\n data: GroupingDataControllerExtender,\r\n columns: {\r\n _getExpandColumnOptions: function() {\r\n var options = this.callBase.apply(this, arguments);\r\n options.cellTemplate = gridCore.getExpandCellTemplate();\r\n return options\r\n }\r\n },\r\n editing: {\r\n _isProcessedItem: function(item) {\r\n return isDefined(item.groupIndex) && isString(item.rowType) && 0 === item.rowType.indexOf(\"group\")\r\n }\r\n }\r\n },\r\n views: {\r\n headerPanel: GroupingHeaderPanelExtender,\r\n rowsView: GroupingRowsViewExtender,\r\n columnHeadersView: columnHeadersViewExtender\r\n }\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.master_detail.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight,\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport gridCoreUtils from \"./ui.grid_core.utils\";\r\nimport {\r\n grep\r\n} from \"../../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nvar MASTER_DETAIL_CELL_CLASS = \"dx-master-detail-cell\";\r\nvar MASTER_DETAIL_ROW_CLASS = \"dx-master-detail-row\";\r\nvar CELL_FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar ROW_LINES_CLASS = \"dx-row-lines\";\r\nexport var masterDetailModule = {\r\n defaultOptions: function() {\r\n return {\r\n masterDetail: {\r\n enabled: false,\r\n autoExpandAll: false,\r\n template: null\r\n }\r\n }\r\n },\r\n extenders: {\r\n controllers: {\r\n columns: {\r\n _getExpandColumnsCore: function() {\r\n var expandColumns = this.callBase();\r\n if (this.option(\"masterDetail.enabled\")) {\r\n expandColumns.push({\r\n type: \"detailExpand\",\r\n cellTemplate: gridCoreUtils.getExpandCellTemplate()\r\n })\r\n }\r\n return expandColumns\r\n }\r\n },\r\n data: function() {\r\n var initMasterDetail = function(that) {\r\n that._expandedItems = [];\r\n that._isExpandAll = that.option(\"masterDetail.autoExpandAll\")\r\n };\r\n return {\r\n init: function() {\r\n initMasterDetail(this);\r\n this.callBase()\r\n },\r\n expandAll: function(groupIndex) {\r\n var that = this;\r\n if (groupIndex < 0) {\r\n that._isExpandAll = true;\r\n that._expandedItems = [];\r\n that.updateItems()\r\n } else {\r\n that.callBase.apply(that, arguments)\r\n }\r\n },\r\n collapseAll: function(groupIndex) {\r\n var that = this;\r\n if (groupIndex < 0) {\r\n that._isExpandAll = false;\r\n that._expandedItems = [];\r\n that.updateItems()\r\n } else {\r\n that.callBase.apply(that, arguments)\r\n }\r\n },\r\n isRowExpanded: function(key) {\r\n var that = this;\r\n var expandIndex = gridCoreUtils.getIndexByKey(key, that._expandedItems);\r\n if (Array.isArray(key)) {\r\n return that.callBase.apply(that, arguments)\r\n } else {\r\n return !!(that._isExpandAll ^ (expandIndex >= 0 && that._expandedItems[expandIndex].visible))\r\n }\r\n },\r\n _getRowIndicesForExpand: function(key) {\r\n var rowIndex = this.getRowIndexByKey(key);\r\n return [rowIndex, rowIndex + 1]\r\n },\r\n _changeRowExpandCore: function(key) {\r\n var that = this;\r\n var result;\r\n if (Array.isArray(key)) {\r\n result = that.callBase.apply(that, arguments)\r\n } else {\r\n var expandIndex = gridCoreUtils.getIndexByKey(key, that._expandedItems);\r\n if (expandIndex >= 0) {\r\n var visible = that._expandedItems[expandIndex].visible;\r\n that._expandedItems[expandIndex].visible = !visible\r\n } else {\r\n that._expandedItems.push({\r\n key: key,\r\n visible: true\r\n })\r\n }\r\n that.updateItems({\r\n changeType: \"update\",\r\n rowIndices: that._getRowIndicesForExpand(key)\r\n });\r\n result = (new Deferred).resolve()\r\n }\r\n return result\r\n },\r\n _processDataItem: function(data, options) {\r\n var that = this;\r\n var dataItem = that.callBase.apply(that, arguments);\r\n dataItem.isExpanded = that.isRowExpanded(dataItem.key);\r\n if (void 0 === options.detailColumnIndex) {\r\n options.detailColumnIndex = -1;\r\n each(options.visibleColumns, (function(index, column) {\r\n if (\"expand\" === column.command && !isDefined(column.groupIndex)) {\r\n options.detailColumnIndex = index;\r\n return false\r\n }\r\n }))\r\n }\r\n if (options.detailColumnIndex >= 0) {\r\n dataItem.values[options.detailColumnIndex] = dataItem.isExpanded\r\n }\r\n return dataItem\r\n },\r\n _processItems: function(items, change) {\r\n var that = this;\r\n var changeType = change.changeType;\r\n var result = [];\r\n items = that.callBase.apply(that, arguments);\r\n if (\"loadingAll\" === changeType) {\r\n return items\r\n }\r\n if (\"refresh\" === changeType) {\r\n that._expandedItems = grep(that._expandedItems, (function(item) {\r\n return item.visible\r\n }))\r\n }\r\n each(items, (function(index, item) {\r\n result.push(item);\r\n var expandIndex = gridCoreUtils.getIndexByKey(item.key, that._expandedItems);\r\n if (\"data\" === item.rowType && (item.isExpanded || expandIndex >= 0) && !item.isNewRow) {\r\n result.push({\r\n visible: item.isExpanded,\r\n rowType: \"detail\",\r\n key: item.key,\r\n data: item.data,\r\n values: []\r\n })\r\n }\r\n }));\r\n return result\r\n },\r\n optionChanged: function(args) {\r\n var isEnabledChanged;\r\n var isAutoExpandAllChanged;\r\n if (\"masterDetail\" === args.name) {\r\n args.name = \"dataSource\";\r\n switch (args.fullName) {\r\n case \"masterDetail\":\r\n var value = args.value || {};\r\n var previousValue = args.previousValue || {};\r\n isEnabledChanged = value.enabled !== previousValue.enabled;\r\n isAutoExpandAllChanged = value.autoExpandAll !== previousValue.autoExpandAll;\r\n break;\r\n case \"masterDetail.template\":\r\n initMasterDetail(this);\r\n break;\r\n case \"masterDetail.enabled\":\r\n isEnabledChanged = true;\r\n break;\r\n case \"masterDetail.autoExpandAll\":\r\n isAutoExpandAllChanged = true\r\n }\r\n if (isEnabledChanged || isAutoExpandAllChanged) {\r\n initMasterDetail(this)\r\n }\r\n }\r\n this.callBase(args)\r\n }\r\n }\r\n }(),\r\n resizing: {\r\n fireContentReadyAction: function() {\r\n this.callBase.apply(this, arguments);\r\n this._updateParentDataGrids(this.component.$element())\r\n },\r\n _updateParentDataGrids: function($element) {\r\n var $masterDetailRow = $element.closest(\".\" + MASTER_DETAIL_ROW_CLASS);\r\n if ($masterDetailRow.length) {\r\n when(this._updateMasterDataGrid($masterDetailRow, $element)).done(() => {\r\n this._updateParentDataGrids($masterDetailRow.parent())\r\n })\r\n }\r\n },\r\n _updateMasterDataGrid: function($masterDetailRow, $detailElement) {\r\n var masterRowOptions = $($masterDetailRow).data(\"options\");\r\n var masterDataGrid = $($masterDetailRow).closest(\".\" + this.getWidgetContainerClass()).parent().data(\"dxDataGrid\");\r\n if (masterRowOptions && masterDataGrid) {\r\n return this._updateMasterDataGridCore(masterDataGrid, masterRowOptions)\r\n }\r\n },\r\n _updateMasterDataGridCore: function(masterDataGrid, masterRowOptions) {\r\n var d = Deferred();\r\n if (masterDataGrid.getView(\"rowsView\").isFixedColumns()) {\r\n this._updateFixedMasterDetailGrids(masterDataGrid, masterRowOptions.rowIndex, $(masterRowOptions.rowElement)).done(d.resolve)\r\n } else {\r\n if (true === masterDataGrid.option(\"scrolling.useNative\")) {\r\n masterDataGrid.updateDimensions().done(() => d.resolve(true));\r\n return\r\n }\r\n var scrollable = masterDataGrid.getScrollable();\r\n if (scrollable) {\r\n null === scrollable || void 0 === scrollable ? void 0 : scrollable.update().done(() => d.resolve())\r\n } else {\r\n d.resolve()\r\n }\r\n }\r\n return d.promise()\r\n },\r\n _updateFixedMasterDetailGrids: function(masterDataGrid, masterRowIndex, $detailElement) {\r\n var d = Deferred();\r\n var $rows = $(masterDataGrid.getRowElement(masterRowIndex));\r\n var $tables = $(masterDataGrid.getView(\"rowsView\").getTableElements());\r\n var rowsNotEqual = 2 === (null === $rows || void 0 === $rows ? void 0 : $rows.length) && getHeight($rows.eq(0)) !== getHeight($rows.eq(1));\r\n var tablesNotEqual = 2 === (null === $tables || void 0 === $tables ? void 0 : $tables.length) && getHeight($tables.eq(0)) !== getHeight($tables.eq(1));\r\n if (rowsNotEqual || tablesNotEqual) {\r\n var detailElementWidth = getWidth($detailElement);\r\n masterDataGrid.updateDimensions().done(() => {\r\n var isDetailHorizontalScrollCanBeShown = this.option(\"columnAutoWidth\") && true === masterDataGrid.option(\"scrolling.useNative\");\r\n var isDetailGridWidthChanged = isDetailHorizontalScrollCanBeShown && detailElementWidth !== getWidth($detailElement);\r\n if (isDetailHorizontalScrollCanBeShown && isDetailGridWidthChanged) {\r\n this.updateDimensions().done(() => d.resolve(true))\r\n } else {\r\n d.resolve(true)\r\n }\r\n });\r\n return d.promise()\r\n }\r\n return Deferred().resolve()\r\n },\r\n _toggleBestFitMode: function(isBestFit) {\r\n this.callBase.apply(this, arguments);\r\n if (this.option(\"masterDetail.template\")) {\r\n var $rowsTable = this._rowsView.getTableElement();\r\n if ($rowsTable) {\r\n $rowsTable.find(\".dx-master-detail-cell\").css(\"maxWidth\", isBestFit ? 0 : \"\")\r\n }\r\n }\r\n }\r\n }\r\n },\r\n views: {\r\n rowsView: {\r\n _getCellTemplate: function(options) {\r\n var that = this;\r\n var column = options.column;\r\n var editingController = that.getController(\"editing\");\r\n var isEditRow = editingController && editingController.isEditRow(options.rowIndex);\r\n var template;\r\n if (\"detail\" === column.command && !isEditRow) {\r\n template = that.option(\"masterDetail.template\") || {\r\n allowRenderToDetachedContainer: false,\r\n render: that._getDefaultTemplate(column)\r\n }\r\n } else {\r\n template = that.callBase.apply(that, arguments)\r\n }\r\n return template\r\n },\r\n _isDetailRow: function(row) {\r\n return row && row.rowType && 0 === row.rowType.indexOf(\"detail\")\r\n },\r\n _createRow: function(row) {\r\n var $row = this.callBase.apply(this, arguments);\r\n if (row && this._isDetailRow(row)) {\r\n this.option(\"showRowLines\") && $row.addClass(ROW_LINES_CLASS);\r\n $row.addClass(MASTER_DETAIL_ROW_CLASS);\r\n if (isDefined(row.visible)) {\r\n $row.toggle(row.visible)\r\n }\r\n }\r\n return $row\r\n },\r\n _renderCells: function($row, options) {\r\n var row = options.row;\r\n var $detailCell;\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n if (row.rowType && this._isDetailRow(row)) {\r\n if (this._needRenderCell(0, options.columnIndices)) {\r\n $detailCell = this._renderCell($row, {\r\n value: null,\r\n row: row,\r\n rowIndex: row.rowIndex,\r\n column: {\r\n command: \"detail\"\r\n },\r\n columnIndex: 0,\r\n change: options.change\r\n });\r\n $detailCell.addClass(CELL_FOCUS_DISABLED_CLASS).addClass(MASTER_DETAIL_CELL_CLASS).attr(\"colSpan\", visibleColumns.length)\r\n }\r\n } else {\r\n this.callBase.apply(this, arguments)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.master_detail.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n masterDetailModule\r\n} from \"../grid_core/ui.grid_core.master_detail\";\r\ngridCore.registerModule(\"masterDetail\", masterDetailModule);\r\n","/**\r\n * DevExtreme (esm/ui/number_box/utils.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n adjust\r\n} from \"../../core/utils/math\";\r\nvar getRealSeparatorIndex = function(str) {\r\n var quoteBalance = 0;\r\n var separatorCount = 0;\r\n for (var i = 0; i < str.length; ++i) {\r\n if (\"'\" === str[i]) {\r\n quoteBalance++\r\n }\r\n if (\".\" === str[i]) {\r\n ++separatorCount;\r\n if (quoteBalance % 2 === 0) {\r\n return {\r\n occurrence: separatorCount,\r\n index: i\r\n }\r\n }\r\n }\r\n }\r\n return {\r\n occurrence: 1,\r\n index: -1\r\n }\r\n};\r\nvar getNthOccurrence = function(str, c, n) {\r\n var i = -1;\r\n while (n-- && i++ < str.length) {\r\n i = str.indexOf(c, i)\r\n }\r\n return i\r\n};\r\nvar splitByIndex = function(str, index) {\r\n if (-1 === index) {\r\n return [str]\r\n }\r\n return [str.slice(0, index), str.slice(index + 1)]\r\n};\r\nvar adjustPercentValue = function(rawValue, precision) {\r\n return rawValue && adjust(rawValue / 100, precision)\r\n};\r\nexport {\r\n getRealSeparatorIndex,\r\n getNthOccurrence,\r\n splitByIndex,\r\n adjustPercentValue\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/number_box/number_box.caret.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n fitIntoRange\r\n} from \"../../core/utils/math\";\r\nimport {\r\n escapeRegExp\r\n} from \"../../core/utils/common\";\r\nimport number from \"../../localization/number\";\r\nimport {\r\n getRealSeparatorIndex,\r\n getNthOccurrence,\r\n splitByIndex\r\n} from \"./utils\";\r\nexport var getCaretBoundaries = function(text, format) {\r\n if (\"string\" === typeof format) {\r\n var signParts = format.split(\";\");\r\n var sign = number.getSign(text, format);\r\n signParts[1] = signParts[1] || \"-\" + signParts[0];\r\n format = signParts[sign < 0 ? 1 : 0];\r\n format = (str = format, str.replace(/'([^']*)'/g, str => str.split(\"\").map(() => \" \").join(\"\").substr(2)));\r\n var prefixStubLength = /^[^#0.,]*/.exec(format)[0].length;\r\n var postfixStubLength = /[^#0.,]*$/.exec(format)[0].length;\r\n return {\r\n start: prefixStubLength,\r\n end: text.length - postfixStubLength\r\n }\r\n } else {\r\n return {\r\n start: 0,\r\n end: text.length\r\n }\r\n }\r\n var str\r\n};\r\nvar _getDigitCountBeforeIndex = function(index, text) {\r\n var decimalSeparator = number.getDecimalSeparator();\r\n var regExp = new RegExp(\"[^0-9\" + escapeRegExp(decimalSeparator) + \"]\", \"g\");\r\n var textBeforePosition = text.slice(0, index);\r\n return textBeforePosition.replace(regExp, \"\").length\r\n};\r\nvar _reverseText = function(text) {\r\n return text.split(\"\").reverse().join(\"\")\r\n};\r\nvar _getDigitPositionByIndex = function(digitIndex, text) {\r\n if (!digitIndex) {\r\n return -1\r\n }\r\n var regExp = /[0-9]/g;\r\n var counter = 1;\r\n var index = null;\r\n var result = regExp.exec(text);\r\n while (result) {\r\n index = result.index;\r\n if (counter >= digitIndex) {\r\n return index\r\n }\r\n counter++;\r\n result = regExp.exec(text)\r\n }\r\n return null === index ? text.length : index\r\n};\r\nvar _trimNonNumericCharsFromEnd = function(text) {\r\n return text.replace(/[^0-9e]+$/, \"\")\r\n};\r\nexport var getCaretWithOffset = function(caret, offset) {\r\n if (void 0 === caret.start) {\r\n caret = {\r\n start: caret,\r\n end: caret\r\n }\r\n }\r\n return {\r\n start: caret.start + offset,\r\n end: caret.end + offset\r\n }\r\n};\r\nexport var getCaretAfterFormat = function(text, formatted, caret, format) {\r\n caret = getCaretWithOffset(caret, 0);\r\n var point = number.getDecimalSeparator();\r\n var isSeparatorBasedText = isSeparatorBasedString(text);\r\n var realSeparatorOccurrenceIndex = getRealSeparatorIndex(format).occurrence;\r\n var pointPosition = isSeparatorBasedText ? 0 : getNthOccurrence(text, point, realSeparatorOccurrenceIndex);\r\n var newPointPosition = getNthOccurrence(formatted, point, realSeparatorOccurrenceIndex);\r\n var textParts = splitByIndex(text, pointPosition);\r\n var formattedParts = splitByIndex(formatted, newPointPosition);\r\n var isCaretOnFloat = -1 !== pointPosition && caret.start > pointPosition;\r\n if (isCaretOnFloat) {\r\n var relativeIndex = caret.start - pointPosition - 1;\r\n var digitsBefore = _getDigitCountBeforeIndex(relativeIndex, textParts[1]);\r\n var newPosition = formattedParts[1] ? newPointPosition + 1 + _getDigitPositionByIndex(digitsBefore, formattedParts[1]) + 1 : formatted.length;\r\n return getCaretInBoundaries(newPosition, formatted, format)\r\n } else {\r\n var formattedIntPart = _trimNonNumericCharsFromEnd(formattedParts[0]);\r\n var positionFromEnd = textParts[0].length - caret.start;\r\n var digitsFromEnd = _getDigitCountBeforeIndex(positionFromEnd, _reverseText(textParts[0]));\r\n var newPositionFromEnd = _getDigitPositionByIndex(digitsFromEnd, _reverseText(formattedIntPart));\r\n var newPositionFromBegin = formattedIntPart.length - (newPositionFromEnd + 1);\r\n return getCaretInBoundaries(newPositionFromBegin, formatted, format)\r\n }\r\n};\r\n\r\nfunction isSeparatorBasedString(text) {\r\n return 1 === text.length && !!text.match(/^[,.][0-9]*$/g)\r\n}\r\nexport var isCaretInBoundaries = function(caret, text, format) {\r\n caret = getCaretWithOffset(caret, 0);\r\n var boundaries = getCaretInBoundaries(caret, text, format);\r\n return caret.start >= boundaries.start && caret.end <= boundaries.end\r\n};\r\nexport function getCaretInBoundaries(caret, text, format) {\r\n caret = getCaretWithOffset(caret, 0);\r\n var boundaries = getCaretBoundaries(text, format);\r\n var adjustedCaret = {\r\n start: fitIntoRange(caret.start, boundaries.start, boundaries.end),\r\n end: fitIntoRange(caret.end, boundaries.start, boundaries.end)\r\n };\r\n return adjustedCaret\r\n}\r\nexport var getCaretOffset = function(previousText, newText, format) {\r\n var previousBoundaries = getCaretBoundaries(previousText, format);\r\n var newBoundaries = getCaretBoundaries(newText, format);\r\n return newBoundaries.start - previousBoundaries.start\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/number_box/number_box.spin.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport {\r\n lock\r\n} from \"../../events/core/emitter.feedback\";\r\nimport holdEvent from \"../../events/hold\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nvar SPIN_CLASS = \"dx-numberbox-spin\";\r\nvar SPIN_BUTTON_CLASS = \"dx-numberbox-spin-button\";\r\nvar SPIN_HOLD_DELAY = 100;\r\nvar NUMBER_BOX = \"dxNumberBox\";\r\nvar POINTERUP_EVENT_NAME = addNamespace(pointerEvents.up, NUMBER_BOX);\r\nvar POINTERCANCEL_EVENT_NAME = addNamespace(pointerEvents.cancel, NUMBER_BOX);\r\nvar SpinButton = Widget.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n direction: \"up\",\r\n onChange: null,\r\n activeStateEnabled: true,\r\n hoverStateEnabled: true\r\n })\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n var direction = SPIN_CLASS + \"-\" + this.option(\"direction\");\r\n this.$element().addClass(SPIN_BUTTON_CLASS).addClass(direction);\r\n this._spinIcon = $(\"
\").addClass(direction + \"-icon\").appendTo(this.$element())\r\n },\r\n _render: function() {\r\n this.callBase();\r\n var eventName = addNamespace(pointerEvents.down, this.NAME);\r\n var $element = this.$element();\r\n eventsEngine.off($element, eventName);\r\n eventsEngine.on($element, eventName, this._spinDownHandler.bind(this));\r\n this._spinChangeHandler = this._createActionByOption(\"onChange\")\r\n },\r\n _spinDownHandler: function(e) {\r\n e.preventDefault();\r\n this._clearTimer();\r\n eventsEngine.on(this.$element(), holdEvent.name, function() {\r\n this._feedBackDeferred = new Deferred;\r\n lock(this._feedBackDeferred);\r\n this._spinChangeHandler({\r\n event: e\r\n });\r\n this._holdTimer = setInterval(this._spinChangeHandler, SPIN_HOLD_DELAY, {\r\n event: e\r\n })\r\n }.bind(this));\r\n var document = domAdapter.getDocument();\r\n eventsEngine.on(document, POINTERUP_EVENT_NAME, this._clearTimer.bind(this));\r\n eventsEngine.on(document, POINTERCANCEL_EVENT_NAME, this._clearTimer.bind(this));\r\n this._spinChangeHandler({\r\n event: e\r\n })\r\n },\r\n _dispose: function() {\r\n this._clearTimer();\r\n this.callBase()\r\n },\r\n _clearTimer: function() {\r\n eventsEngine.off(this.$element(), holdEvent.name);\r\n var document = domAdapter.getDocument();\r\n eventsEngine.off(document, POINTERUP_EVENT_NAME);\r\n eventsEngine.off(document, POINTERCANCEL_EVENT_NAME);\r\n if (this._feedBackDeferred) {\r\n this._feedBackDeferred.resolve()\r\n }\r\n if (this._holdTimer) {\r\n clearInterval(this._holdTimer)\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"onChange\":\r\n case \"direction\":\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport default SpinButton;\r\n","/**\r\n * DevExtreme (esm/ui/number_box/number_box.spins.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport TextEditorButton from \"../text_box/texteditor_button_collection/button\";\r\nimport SpinButton from \"./number_box.spin\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport pointer from \"../../events/pointer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nvar SPIN_CLASS = \"dx-numberbox-spin\";\r\nvar SPIN_CONTAINER_CLASS = \"dx-numberbox-spin-container\";\r\nvar SPIN_TOUCH_FRIENDLY_CLASS = \"dx-numberbox-spin-touch-friendly\";\r\nexport default class SpinButtons extends TextEditorButton {\r\n _attachEvents(instance, $spinContainer) {\r\n var {\r\n editor: editor\r\n } = this;\r\n var eventName = addNamespace(pointer.down, editor.NAME);\r\n var $spinContainerChildren = $spinContainer.children();\r\n var pointerDownAction = editor._createAction(e => editor._spinButtonsPointerDownHandler(e));\r\n eventsEngine.off($spinContainer, eventName);\r\n eventsEngine.on($spinContainer, eventName, e => pointerDownAction({\r\n event: e\r\n }));\r\n SpinButton.getInstance($spinContainerChildren.eq(0)).option(\"onChange\", e => editor._spinUpChangeHandler(e));\r\n SpinButton.getInstance($spinContainerChildren.eq(1)).option(\"onChange\", e => editor._spinDownChangeHandler(e))\r\n }\r\n _create() {\r\n var {\r\n editor: editor\r\n } = this;\r\n var $spinContainer = $(\"
\").addClass(SPIN_CONTAINER_CLASS);\r\n var $spinUp = $(\"
\").appendTo($spinContainer);\r\n var $spinDown = $(\"
\").appendTo($spinContainer);\r\n var options = this._getOptions();\r\n this._addToContainer($spinContainer);\r\n editor._createComponent($spinUp, SpinButton, extend({\r\n direction: \"up\"\r\n }, options));\r\n editor._createComponent($spinDown, SpinButton, extend({\r\n direction: \"down\"\r\n }, options));\r\n this._legacyRender(editor.$element(), this._isTouchFriendly(), options.visible);\r\n return {\r\n instance: $spinContainer,\r\n $element: $spinContainer\r\n }\r\n }\r\n _getOptions() {\r\n var {\r\n editor: editor\r\n } = this;\r\n var visible = this._isVisible();\r\n var disabled = editor.option(\"disabled\");\r\n return {\r\n visible: visible,\r\n disabled: disabled\r\n }\r\n }\r\n _isVisible() {\r\n var {\r\n editor: editor\r\n } = this;\r\n return super._isVisible() && editor.option(\"showSpinButtons\")\r\n }\r\n _isTouchFriendly() {\r\n var {\r\n editor: editor\r\n } = this;\r\n return editor.option(\"showSpinButtons\") && editor.option(\"useLargeSpinButtons\")\r\n }\r\n _legacyRender($editor, isTouchFriendly, isVisible) {\r\n $editor.toggleClass(SPIN_TOUCH_FRIENDLY_CLASS, isTouchFriendly);\r\n $editor.toggleClass(SPIN_CLASS, isVisible)\r\n }\r\n update() {\r\n var shouldUpdate = super.update();\r\n if (shouldUpdate) {\r\n var {\r\n editor: editor,\r\n instance: instance\r\n } = this;\r\n var $editor = editor.$element();\r\n var isVisible = this._isVisible();\r\n var isTouchFriendly = this._isTouchFriendly();\r\n var $spinButtons = instance.children();\r\n var spinUp = SpinButton.getInstance($spinButtons.eq(0));\r\n var spinDown = SpinButton.getInstance($spinButtons.eq(1));\r\n var options = this._getOptions();\r\n spinUp.option(options);\r\n spinDown.option(options);\r\n this._legacyRender($editor, isTouchFriendly, isVisible)\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/number_box/number_box.base.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n applyServerDecimalSeparator,\r\n ensureDefined\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n fitIntoRange,\r\n inRange\r\n} from \"../../core/utils/math\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport devices from \"../../core/devices\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport TextEditor from \"../text_box/ui.text_editor\";\r\nimport {\r\n addNamespace,\r\n getChar,\r\n isCommandKeyPressed,\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport SpinButtons from \"./number_box.spins\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nvar math = Math;\r\nvar WIDGET_CLASS = \"dx-numberbox\";\r\nvar FIREFOX_CONTROL_KEYS = [\"tab\", \"del\", \"backspace\", \"leftArrow\", \"rightArrow\", \"home\", \"end\", \"enter\"];\r\nvar FORCE_VALUECHANGE_EVENT_NAMESPACE = \"NumberBoxForceValueChange\";\r\nvar NumberBoxBase = TextEditor.inherit({\r\n _supportedKeys: function() {\r\n return extend(this.callBase(), {\r\n upArrow: function(e) {\r\n if (!isCommandKeyPressed(e)) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this._spinUpChangeHandler(e)\r\n }\r\n },\r\n downArrow: function(e) {\r\n if (!isCommandKeyPressed(e)) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this._spinDownChangeHandler(e)\r\n }\r\n },\r\n enter: function() {}\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n value: 0,\r\n min: void 0,\r\n max: void 0,\r\n step: 1,\r\n showSpinButtons: false,\r\n useLargeSpinButtons: true,\r\n mode: \"text\",\r\n invalidValueMessage: messageLocalization.format(\"dxNumberBox-invalidValueMessage\"),\r\n buttons: void 0\r\n })\r\n },\r\n _useTemplates: function() {\r\n return false\r\n },\r\n _getDefaultButtons: function() {\r\n return this.callBase().concat([{\r\n name: \"spins\",\r\n Ctor: SpinButtons\r\n }])\r\n },\r\n _isSupportInputMode: function() {\r\n var version = parseFloat(browser.version);\r\n return browser.chrome && version >= 66 || browser.safari && version >= 12\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return devices.real().generic && !devices.isSimulator()\r\n },\r\n options: {\r\n useLargeSpinButtons: false\r\n }\r\n }, {\r\n device: function() {\r\n return \"desktop\" !== devices.real().deviceType && !this._isSupportInputMode()\r\n }.bind(this),\r\n options: {\r\n mode: \"number\"\r\n }\r\n }])\r\n },\r\n _initMarkup: function() {\r\n this._renderSubmitElement();\r\n this.$element().addClass(WIDGET_CLASS);\r\n this.callBase()\r\n },\r\n _getDefaultAttributes: function() {\r\n var attributes = this.callBase();\r\n attributes.inputmode = \"decimal\";\r\n return attributes\r\n },\r\n _renderContentImpl: function() {\r\n this.option(\"isValid\") && this._validateValue(this.option(\"value\"));\r\n this.setAria(\"role\", \"spinbutton\")\r\n },\r\n _renderSubmitElement: function() {\r\n this._$submitElement = $(\"\").attr(\"type\", \"hidden\").appendTo(this.$element());\r\n this._setSubmitValue(this.option(\"value\"))\r\n },\r\n _setSubmitValue: function(value) {\r\n this._getSubmitElement().val(applyServerDecimalSeparator(value))\r\n },\r\n _getSubmitElement: function() {\r\n return this._$submitElement\r\n },\r\n _keyPressHandler: function(e) {\r\n this.callBase(e);\r\n var char = getChar(e);\r\n var isInputCharValid = /[\\d.,eE\\-+]/.test(char);\r\n if (!isInputCharValid) {\r\n var keyName = normalizeKeyName(e);\r\n if (isCommandKeyPressed(e) || keyName && FIREFOX_CONTROL_KEYS.includes(keyName)) {\r\n return\r\n }\r\n e.preventDefault();\r\n return false\r\n }\r\n this._keyPressed = true\r\n },\r\n _onMouseWheel: function(dxEvent) {\r\n dxEvent.delta > 0 ? this._spinValueChange(1, dxEvent) : this._spinValueChange(-1, dxEvent)\r\n },\r\n _renderValue: function() {\r\n var inputValue = this._input().val();\r\n var value = this.option(\"value\");\r\n if (!inputValue.length || Number(inputValue) !== value) {\r\n this._forceValueRender();\r\n this._toggleEmptinessEventHandler()\r\n }\r\n var valueText = isDefined(value) ? null : messageLocalization.format(\"dxNumberBox-noDataText\");\r\n this.setAria({\r\n valuenow: ensureDefined(value, \"\"),\r\n valuetext: valueText\r\n });\r\n this.option(\"text\", this._input().val());\r\n this._updateButtons();\r\n return (new Deferred).resolve()\r\n },\r\n _forceValueRender: function() {\r\n var value = this.option(\"value\");\r\n var number = Number(value);\r\n var formattedValue = isNaN(number) ? \"\" : this._applyDisplayValueFormatter(value);\r\n this._renderDisplayText(formattedValue)\r\n },\r\n _applyDisplayValueFormatter: function(value) {\r\n return this.option(\"displayValueFormatter\")(value)\r\n },\r\n _renderProps: function() {\r\n this._input().prop({\r\n min: this.option(\"min\"),\r\n max: this.option(\"max\"),\r\n step: this.option(\"step\")\r\n });\r\n this.setAria({\r\n valuemin: ensureDefined(this.option(\"min\"), \"\"),\r\n valuemax: ensureDefined(this.option(\"max\"), \"\")\r\n })\r\n },\r\n _spinButtonsPointerDownHandler: function() {\r\n var $input = this._input();\r\n if (!this.option(\"useLargeSpinButtons\") && domAdapter.getActiveElement() !== $input[0]) {\r\n eventsEngine.trigger($input, \"focus\")\r\n }\r\n },\r\n _spinUpChangeHandler: function(e) {\r\n if (!this.option(\"readOnly\")) {\r\n this._spinValueChange(1, e.event || e)\r\n }\r\n },\r\n _spinDownChangeHandler: function(e) {\r\n if (!this.option(\"readOnly\")) {\r\n this._spinValueChange(-1, e.event || e)\r\n }\r\n },\r\n _spinValueChange: function(sign, dxEvent) {\r\n var step = parseFloat(this.option(\"step\"));\r\n if (0 === step) {\r\n return\r\n }\r\n var value = parseFloat(this._normalizeInputValue()) || 0;\r\n value = this._correctRounding(value, step * sign);\r\n var min = this.option(\"min\");\r\n var max = this.option(\"max\");\r\n if (isDefined(min)) {\r\n value = Math.max(min, value)\r\n }\r\n if (isDefined(max)) {\r\n value = Math.min(max, value)\r\n }\r\n this._saveValueChangeEvent(dxEvent);\r\n this.option(\"value\", value)\r\n },\r\n _correctRounding: function(value, step) {\r\n var regex = /[,.](.*)/;\r\n var isFloatValue = regex.test(value);\r\n var isFloatStep = regex.test(step);\r\n if (isFloatValue || isFloatStep) {\r\n var valueAccuracy = isFloatValue ? regex.exec(value)[0].length : 0;\r\n var stepAccuracy = isFloatStep ? regex.exec(step)[0].length : 0;\r\n var accuracy = math.max(valueAccuracy, stepAccuracy);\r\n value = this._round(value + step, accuracy);\r\n return value\r\n }\r\n return value + step\r\n },\r\n _round: function(value, precision) {\r\n precision = precision || 0;\r\n var multiplier = Math.pow(10, precision);\r\n value *= multiplier;\r\n value = Math.round(value) / multiplier;\r\n return value\r\n },\r\n _renderValueChangeEvent: function() {\r\n this.callBase();\r\n var forceValueChangeEvent = addNamespace(\"focusout\", FORCE_VALUECHANGE_EVENT_NAMESPACE);\r\n eventsEngine.off(this.element(), forceValueChangeEvent);\r\n eventsEngine.on(this.element(), forceValueChangeEvent, this._forceRefreshInputValue.bind(this))\r\n },\r\n _forceRefreshInputValue: function() {\r\n if (\"number\" === this.option(\"mode\")) {\r\n return\r\n }\r\n var $input = this._input();\r\n var formattedValue = this._applyDisplayValueFormatter(this.option(\"value\"));\r\n $input.val(null);\r\n $input.val(formattedValue)\r\n },\r\n _valueChangeEventHandler: function(e) {\r\n var $input = this._input();\r\n var inputValue = this._normalizeText();\r\n var value = this._parseValue(inputValue);\r\n var valueHasDigits = \".\" !== inputValue && \"-\" !== inputValue;\r\n if (this._isValueValid() && !this._validateValue(value)) {\r\n $input.val(this._applyDisplayValueFormatter(value));\r\n return\r\n }\r\n if (valueHasDigits) {\r\n this.callBase(e, isNaN(value) ? null : value)\r\n }\r\n this._applyValueBoundaries(inputValue, value);\r\n this.validationRequest.fire({\r\n value: value,\r\n editor: this\r\n })\r\n },\r\n _applyValueBoundaries: function(inputValue, parsedValue) {\r\n var isValueIncomplete = this._isValueIncomplete(inputValue);\r\n var isValueCorrect = this._isValueInRange(inputValue);\r\n if (!isValueIncomplete && !isValueCorrect && null !== parsedValue) {\r\n if (Number(inputValue) !== parsedValue) {\r\n this._input().val(this._applyDisplayValueFormatter(parsedValue))\r\n }\r\n }\r\n },\r\n _replaceCommaWithPoint: function(value) {\r\n return value.replace(\",\", \".\")\r\n },\r\n _inputIsInvalid: function() {\r\n var isNumberMode = \"number\" === this.option(\"mode\");\r\n var validityState = this._input().get(0).validity;\r\n return isNumberMode && validityState && validityState.badInput\r\n },\r\n _renderDisplayText: function(text) {\r\n if (this._inputIsInvalid()) {\r\n return\r\n }\r\n this.callBase(text)\r\n },\r\n _isValueIncomplete: function(value) {\r\n return /(^-$)|(^-?\\d*\\.$)|(\\d+e-?$)/i.test(value)\r\n },\r\n _isValueInRange: function(value) {\r\n return inRange(value, this.option(\"min\"), this.option(\"max\"))\r\n },\r\n _isNumber: function(value) {\r\n return null !== this._parseValue(value)\r\n },\r\n _validateValue: function(value) {\r\n var inputValue = this._normalizeText();\r\n var isValueValid = this._isValueValid();\r\n var isValid = true;\r\n var isNumber = this._isNumber(inputValue);\r\n if (isNaN(Number(value))) {\r\n isValid = false\r\n }\r\n if (!value && isValueValid) {\r\n isValid = true\r\n } else if (!isNumber && !isValueValid) {\r\n isValid = false\r\n }\r\n this.option({\r\n isValid: isValid,\r\n validationError: isValid ? null : {\r\n editorSpecific: true,\r\n message: this.option(\"invalidValueMessage\")\r\n }\r\n });\r\n return isValid\r\n },\r\n _normalizeInputValue: function() {\r\n return this._parseValue(this._normalizeText())\r\n },\r\n _normalizeText: function() {\r\n var value = this._input().val().trim();\r\n return this._replaceCommaWithPoint(value)\r\n },\r\n _parseValue: function(value) {\r\n var number = parseFloat(value);\r\n if (isNaN(number)) {\r\n return null\r\n }\r\n return fitIntoRange(number, this.option(\"min\"), this.option(\"max\"))\r\n },\r\n _clearValue: function() {\r\n if (this._inputIsInvalid()) {\r\n this._input().val(\"\");\r\n this._validateValue()\r\n }\r\n this.callBase()\r\n },\r\n reset: function() {\r\n if (null === this.option(\"value\")) {\r\n this.option(\"text\", \"\");\r\n this._renderValue()\r\n } else {\r\n this.option(\"value\", null)\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"value\":\r\n this._validateValue(args.value);\r\n this._setSubmitValue(args.value);\r\n this.callBase(args);\r\n this._resumeValueChangeAction();\r\n break;\r\n case \"step\":\r\n this._renderProps();\r\n break;\r\n case \"min\":\r\n case \"max\":\r\n this._renderProps();\r\n this.option(\"value\", this._parseValue(this.option(\"value\")));\r\n break;\r\n case \"showSpinButtons\":\r\n case \"useLargeSpinButtons\":\r\n this._updateButtons([\"spins\"]);\r\n break;\r\n case \"invalidValueMessage\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport default NumberBoxBase;\r\n","/**\r\n * DevExtreme (esm/ui/number_box/number_box.mask.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isNumeric,\r\n isDefined,\r\n isFunction,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n fitIntoRange,\r\n inRange\r\n} from \"../../core/utils/math\";\r\nimport number from \"../../localization/number\";\r\nimport {\r\n getCaretWithOffset,\r\n isCaretInBoundaries,\r\n getCaretInBoundaries,\r\n getCaretBoundaries,\r\n getCaretAfterFormat,\r\n getCaretOffset\r\n} from \"./number_box.caret\";\r\nimport {\r\n getFormat as getLDMLFormat\r\n} from \"../../localization/ldml/number\";\r\nimport NumberBoxBase from \"./number_box.base\";\r\nimport {\r\n addNamespace,\r\n getChar,\r\n normalizeKeyName,\r\n isCommandKeyPressed\r\n} from \"../../events/utils/index\";\r\nimport {\r\n ensureDefined,\r\n escapeRegExp\r\n} from \"../../core/utils/common\";\r\nimport {\r\n getRealSeparatorIndex,\r\n getNthOccurrence,\r\n splitByIndex,\r\n adjustPercentValue\r\n} from \"./utils\";\r\nvar NUMBER_FORMATTER_NAMESPACE = \"dxNumberFormatter\";\r\nvar MOVE_FORWARD = 1;\r\nvar MOVE_BACKWARD = -1;\r\nvar MINUS = \"-\";\r\nvar MINUS_KEY = \"minus\";\r\nvar INPUT_EVENT = \"input\";\r\nvar CARET_TIMEOUT_DURATION = 0;\r\nvar NumberBoxMask = NumberBoxBase.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n useMaskBehavior: true,\r\n format: null\r\n })\r\n },\r\n _isDeleteKey: function(key) {\r\n return \"del\" === key\r\n },\r\n _supportedKeys: function() {\r\n if (!this._useMaskBehavior()) {\r\n return this.callBase()\r\n }\r\n return extend(this.callBase(), {\r\n minus: this._revertSign.bind(this),\r\n del: this._removeHandler.bind(this),\r\n backspace: this._removeHandler.bind(this),\r\n leftArrow: this._arrowHandler.bind(this, MOVE_BACKWARD),\r\n rightArrow: this._arrowHandler.bind(this, MOVE_FORWARD),\r\n home: this._moveCaretToBoundaryEventHandler.bind(this, MOVE_FORWARD),\r\n enter: this._updateFormattedValue.bind(this),\r\n end: this._moveCaretToBoundaryEventHandler.bind(this, MOVE_BACKWARD)\r\n })\r\n },\r\n _getTextSeparatorIndex: function(text) {\r\n var decimalSeparator = number.getDecimalSeparator();\r\n var realSeparatorOccurrenceIndex = getRealSeparatorIndex(this.option(\"format\")).occurrence;\r\n return getNthOccurrence(text, decimalSeparator, realSeparatorOccurrenceIndex)\r\n },\r\n _focusInHandler: function(e) {\r\n if (!this._preventNestedFocusEvent(e)) {\r\n this.clearCaretTimeout();\r\n this._caretTimeout = setTimeout(function() {\r\n this._caretTimeout = void 0;\r\n var caret = this._caret();\r\n if (caret.start === caret.end && this._useMaskBehavior()) {\r\n var text = this._getInputVal();\r\n var decimalSeparatorIndex = this._getTextSeparatorIndex(text);\r\n if (decimalSeparatorIndex >= 0) {\r\n this._caret({\r\n start: decimalSeparatorIndex,\r\n end: decimalSeparatorIndex\r\n })\r\n } else {\r\n this._moveCaretToBoundaryEventHandler(MOVE_BACKWARD, e)\r\n }\r\n }\r\n }.bind(this), CARET_TIMEOUT_DURATION)\r\n }\r\n this.callBase(e)\r\n },\r\n _focusOutHandler: function(e) {\r\n var shouldHandleEvent = !this._preventNestedFocusEvent(e);\r\n if (shouldHandleEvent) {\r\n this._focusOutOccurs = true;\r\n if (this._useMaskBehavior()) {\r\n this._updateFormattedValue()\r\n }\r\n }\r\n this.callBase(e);\r\n if (shouldHandleEvent) {\r\n this._focusOutOccurs = false\r\n }\r\n },\r\n _hasValueBeenChanged(inputValue) {\r\n var format = this._getFormatPattern();\r\n var value = this.option(\"value\");\r\n var formatted = this._format(value, format) || \"\";\r\n return formatted !== inputValue\r\n },\r\n _updateFormattedValue: function() {\r\n var inputValue = this._getInputVal();\r\n if (this._hasValueBeenChanged(inputValue)) {\r\n this._updateParsedValue();\r\n this._adjustParsedValue();\r\n this._setTextByParsedValue();\r\n if (this._parsedValue !== this.option(\"value\")) {\r\n eventsEngine.trigger(this._input(), \"change\")\r\n }\r\n }\r\n },\r\n _arrowHandler: function(step, e) {\r\n if (!this._useMaskBehavior()) {\r\n return\r\n }\r\n var text = this._getInputVal();\r\n var format = this._getFormatPattern();\r\n var nextCaret = getCaretWithOffset(this._caret(), step);\r\n if (!isCaretInBoundaries(nextCaret, text, format)) {\r\n nextCaret = step === MOVE_FORWARD ? nextCaret.end : nextCaret.start;\r\n e.preventDefault();\r\n this._caret(getCaretInBoundaries(nextCaret, text, format))\r\n }\r\n },\r\n _moveCaretToBoundary: function(direction) {\r\n var boundaries = getCaretBoundaries(this._getInputVal(), this._getFormatPattern());\r\n var newCaret = getCaretWithOffset(direction === MOVE_FORWARD ? boundaries.start : boundaries.end, 0);\r\n this._caret(newCaret)\r\n },\r\n _moveCaretToBoundaryEventHandler: function(direction, e) {\r\n if (!this._useMaskBehavior() || e && e.shiftKey) {\r\n return\r\n }\r\n this._moveCaretToBoundary(direction);\r\n e && e.preventDefault()\r\n },\r\n _shouldMoveCaret: function(text, caret) {\r\n var decimalSeparator = number.getDecimalSeparator();\r\n var isDecimalSeparatorNext = text.charAt(caret.end) === decimalSeparator;\r\n var moveToFloat = (this._lastKey === decimalSeparator || \".\" === this._lastKey || \",\" === this._lastKey) && isDecimalSeparatorNext;\r\n return moveToFloat\r\n },\r\n _getInputVal: function() {\r\n return number.convertDigits(this._input().val(), true)\r\n },\r\n _keyboardHandler: function(e) {\r\n this.clearCaretTimeout();\r\n this._lastKey = number.convertDigits(getChar(e), true);\r\n this._lastKeyName = normalizeKeyName(e);\r\n if (!this._shouldHandleKey(e.originalEvent)) {\r\n return this.callBase(e)\r\n }\r\n var normalizedText = this._getInputVal();\r\n var caret = this._caret();\r\n var enteredChar = this._lastKeyName === MINUS_KEY ? \"\" : this._lastKey;\r\n var newValue = this._tryParse(normalizedText, caret, enteredChar);\r\n if (this._shouldMoveCaret(normalizedText, caret)) {\r\n this._moveCaret(1);\r\n e.originalEvent.preventDefault()\r\n }\r\n if (void 0 === newValue) {\r\n if (this._lastKeyName !== MINUS_KEY) {\r\n e.originalEvent.preventDefault()\r\n }\r\n } else {\r\n this._parsedValue = newValue\r\n }\r\n return this.callBase(e)\r\n },\r\n _keyPressHandler: function(e) {\r\n if (!this._useMaskBehavior()) {\r\n this.callBase(e)\r\n }\r\n },\r\n _removeHandler: function(e) {\r\n var caret = this._caret();\r\n var text = this._getInputVal();\r\n var start = caret.start;\r\n var end = caret.end;\r\n this._lastKey = getChar(e);\r\n this._lastKeyName = normalizeKeyName(e);\r\n var isDeleteKey = this._isDeleteKey(this._lastKeyName);\r\n var isBackspaceKey = !isDeleteKey;\r\n if (start === end) {\r\n var caretPosition = start;\r\n var canDelete = isBackspaceKey && caretPosition > 0 || isDeleteKey && caretPosition < text.length;\r\n if (canDelete) {\r\n isDeleteKey && end++;\r\n isBackspaceKey && start--\r\n } else {\r\n e.preventDefault();\r\n return\r\n }\r\n }\r\n var char = text.slice(start, end);\r\n if (this._isStub(char)) {\r\n this._moveCaret(isDeleteKey ? 1 : -1);\r\n if (this._parsedValue < 0 || 1 / this._parsedValue === -1 / 0) {\r\n this._revertSign(e);\r\n this._setTextByParsedValue()\r\n }\r\n e.preventDefault();\r\n return\r\n }\r\n var decimalSeparator = number.getDecimalSeparator();\r\n if (char === decimalSeparator) {\r\n var decimalSeparatorIndex = text.indexOf(decimalSeparator);\r\n if (this._isNonStubAfter(decimalSeparatorIndex + 1)) {\r\n this._moveCaret(isDeleteKey ? 1 : -1);\r\n e.preventDefault()\r\n }\r\n return\r\n }\r\n if (end - start < text.length) {\r\n var editedText = this._replaceSelectedText(text, {\r\n start: start,\r\n end: end\r\n }, \"\");\r\n var noDigits = editedText.search(/[0-9]/) < 0;\r\n if (noDigits && this._isValueInRange(0)) {\r\n this._parsedValue = this._parsedValue < 0 || 1 / this._parsedValue === -1 / 0 ? -0 : 0;\r\n return\r\n }\r\n }\r\n var valueAfterRemoving = this._tryParse(text, {\r\n start: start,\r\n end: end\r\n }, \"\");\r\n if (void 0 === valueAfterRemoving) {\r\n e.preventDefault()\r\n } else {\r\n this._parsedValue = valueAfterRemoving\r\n }\r\n },\r\n _isPercentFormat: function() {\r\n var format = this._getFormatPattern();\r\n var noEscapedFormat = format.replace(/'[^']+'/g, \"\");\r\n return -1 !== noEscapedFormat.indexOf(\"%\")\r\n },\r\n _parse: function(text, format) {\r\n var formatOption = this.option(\"format\");\r\n var isCustomParser = isFunction(formatOption.parser);\r\n var parser = isCustomParser ? formatOption.parser : number.parse;\r\n var integerPartStartIndex = 0;\r\n if (!isCustomParser) {\r\n var formatPointIndex = getRealSeparatorIndex(format).index;\r\n var textPointIndex = this._getTextSeparatorIndex(text);\r\n var formatIntegerPartLength = -1 !== formatPointIndex ? formatPointIndex : format.length;\r\n var textIntegerPartLength = -1 !== textPointIndex ? textPointIndex : text.length;\r\n if (textIntegerPartLength > formatIntegerPartLength && -1 === format.indexOf(\"#\")) {\r\n integerPartStartIndex = textIntegerPartLength - formatIntegerPartLength\r\n }\r\n }\r\n text = text.substr(integerPartStartIndex);\r\n return parser(text, format)\r\n },\r\n _format: function(value, format) {\r\n var formatOption = this.option(\"format\");\r\n var customFormatter = (null === formatOption || void 0 === formatOption ? void 0 : formatOption.formatter) || formatOption;\r\n var formatter = isFunction(customFormatter) ? customFormatter : number.format;\r\n var formattedValue = null === value ? \"\" : formatter(value, format);\r\n return formattedValue\r\n },\r\n _getFormatPattern: function() {\r\n if (!this._currentFormat) {\r\n this._updateFormat()\r\n }\r\n return this._currentFormat\r\n },\r\n _updateFormat: function() {\r\n var format = this.option(\"format\");\r\n var isCustomParser = isFunction(null === format || void 0 === format ? void 0 : format.parser);\r\n var isLDMLPattern = isString(format) && (format.indexOf(\"0\") >= 0 || format.indexOf(\"#\") >= 0);\r\n var isExponentialFormat = \"exponential\" === format || \"exponential\" === (null === format || void 0 === format ? void 0 : format.type);\r\n var shouldUseFormatAsIs = isCustomParser || isLDMLPattern || isExponentialFormat;\r\n this._currentFormat = shouldUseFormatAsIs ? format : getLDMLFormat(value => {\r\n var text = this._format(value, format);\r\n return number.convertDigits(text, true)\r\n })\r\n },\r\n _getFormatForSign: function(text) {\r\n var format = this._getFormatPattern();\r\n if (isString(format)) {\r\n var signParts = format.split(\";\");\r\n var sign = number.getSign(text, format);\r\n signParts[1] = signParts[1] || \"-\" + signParts[0];\r\n return sign < 0 ? signParts[1] : signParts[0]\r\n } else {\r\n var _sign = number.getSign(text);\r\n return _sign < 0 ? \"-\" : \"\"\r\n }\r\n },\r\n _removeStubs: function(text, excludeComma) {\r\n var format = this._getFormatForSign(text);\r\n var thousandsSeparator = number.getThousandsSeparator();\r\n var stubs = this._getStubs(format);\r\n var result = text;\r\n if (stubs.length) {\r\n var prefixStubs = stubs[0];\r\n var postfixRegex = new RegExp(\"(\" + escapeRegExp(stubs[1] || \"\") + \")$\", \"g\");\r\n var decoratorsRegex = new RegExp(\"[-\" + escapeRegExp(excludeComma ? \"\" : thousandsSeparator) + \"]\", \"g\");\r\n result = result.replace(prefixStubs, \"\").replace(postfixRegex, \"\").replace(decoratorsRegex, \"\")\r\n }\r\n return result\r\n },\r\n _getStubs: function(format) {\r\n var regExpResult = /[^']([#0.,]+)/g.exec(format);\r\n var pattern = regExpResult && regExpResult[0].trim();\r\n return format.split(pattern).map((function(stub) {\r\n return stub.replace(/'/g, \"\")\r\n }))\r\n },\r\n _truncateToPrecision: function(value, maxPrecision) {\r\n if (isDefined(value)) {\r\n var strValue = value.toString();\r\n var decimalSeparatorIndex = strValue.indexOf(\".\");\r\n if (strValue && decimalSeparatorIndex > -1) {\r\n var parsedValue = parseFloat(strValue.substr(0, decimalSeparatorIndex + maxPrecision + 1));\r\n return isNaN(parsedValue) ? value : parsedValue\r\n }\r\n }\r\n return value\r\n },\r\n _tryParse: function(text, selection, char) {\r\n var editedText = this._replaceSelectedText(text, selection, char);\r\n var format = this._getFormatPattern();\r\n var isTextSelected = selection.start !== selection.end;\r\n var parsedValue = this._getParsedValue(editedText, format);\r\n var maxPrecision = !format.parser && this._getPrecisionLimits(editedText).max;\r\n var isValueChanged = parsedValue !== this._parsedValue;\r\n var decimalSeparator = number.getDecimalSeparator();\r\n var isDecimalPointRestricted = char === decimalSeparator && 0 === maxPrecision;\r\n var isUselessCharRestricted = !isTextSelected && !isValueChanged && char !== MINUS && !this._isValueIncomplete(editedText) && this._isStub(char);\r\n if (isDecimalPointRestricted || isUselessCharRestricted) {\r\n return\r\n }\r\n if (\"\" === this._removeStubs(editedText)) {\r\n parsedValue = Math.abs(0 * this._parsedValue)\r\n }\r\n if (isNaN(parsedValue)) {\r\n return\r\n }\r\n var value = null === parsedValue ? this._parsedValue : parsedValue;\r\n parsedValue = maxPrecision ? this._truncateToPrecision(value, maxPrecision) : parsedValue;\r\n return !format.parser && this._isPercentFormat() ? adjustPercentValue(parsedValue, maxPrecision) : parsedValue\r\n },\r\n _getParsedValue: function(text, format) {\r\n var sign = number.getSign(text, (null === format || void 0 === format ? void 0 : format.formatter) || format);\r\n var textWithoutStubs = this._removeStubs(text, true);\r\n var parsedValue = this._parse(textWithoutStubs, format);\r\n var parsedValueSign = parsedValue < 0 ? -1 : 1;\r\n var parsedValueWithSign = isNumeric(parsedValue) && sign !== parsedValueSign ? sign * parsedValue : parsedValue;\r\n return parsedValueWithSign\r\n },\r\n _isValueIncomplete: function(text) {\r\n if (!this._useMaskBehavior()) {\r\n return this.callBase(text)\r\n }\r\n var caret = this._caret();\r\n var point = number.getDecimalSeparator();\r\n var pointIndex = this._getTextSeparatorIndex(text);\r\n var isCaretOnFloat = pointIndex >= 0 && pointIndex < caret.start;\r\n var textParts = this._removeStubs(text, true).split(point);\r\n if (!isCaretOnFloat || 2 !== textParts.length) {\r\n return false\r\n }\r\n var floatLength = textParts[1].length;\r\n var format = this._getFormatPattern();\r\n var isCustomParser = !!format.parser;\r\n var precision = !isCustomParser && this._getPrecisionLimits(this._getFormatPattern(), text);\r\n var isPrecisionInRange = isCustomParser ? true : inRange(floatLength, precision.min, precision.max);\r\n var endsWithZero = \"0\" === textParts[1].charAt(floatLength - 1);\r\n return isPrecisionInRange && (endsWithZero || !floatLength)\r\n },\r\n _isValueInRange: function(value) {\r\n var min = ensureDefined(this.option(\"min\"), -1 / 0);\r\n var max = ensureDefined(this.option(\"max\"), 1 / 0);\r\n return inRange(value, min, max)\r\n },\r\n _setInputText: function(text) {\r\n var normalizedText = number.convertDigits(text, true);\r\n var newCaret = getCaretAfterFormat(this._getInputVal(), normalizedText, this._caret(), this._getFormatPattern());\r\n this._input().val(text);\r\n this._toggleEmptinessEventHandler();\r\n this._formattedValue = text;\r\n if (!this._focusOutOccurs) {\r\n this._caret(newCaret)\r\n }\r\n },\r\n _useMaskBehavior: function() {\r\n return !!this.option(\"format\") && this.option(\"useMaskBehavior\")\r\n },\r\n _renderInputType: function() {\r\n var isNumberType = \"number\" === this.option(\"mode\");\r\n var isDesktop = \"desktop\" === devices.real().deviceType;\r\n if (this._useMaskBehavior() && isNumberType) {\r\n this._setInputType(isDesktop || this._isSupportInputMode() ? \"text\" : \"tel\")\r\n } else {\r\n this.callBase()\r\n }\r\n },\r\n _isChar: function(str) {\r\n return isString(str) && 1 === str.length\r\n },\r\n _moveCaret: function(offset) {\r\n if (!offset) {\r\n return\r\n }\r\n var newCaret = getCaretWithOffset(this._caret(), offset);\r\n var adjustedCaret = getCaretInBoundaries(newCaret, this._getInputVal(), this._getFormatPattern());\r\n this._caret(adjustedCaret)\r\n },\r\n _shouldHandleKey: function(e) {\r\n var keyName = normalizeKeyName(e);\r\n var isSpecialChar = isCommandKeyPressed(e) || e.altKey || e.shiftKey || !this._isChar(keyName);\r\n var isMinusKey = keyName === MINUS_KEY;\r\n var useMaskBehavior = this._useMaskBehavior();\r\n return useMaskBehavior && !isSpecialChar && !isMinusKey\r\n },\r\n _renderInput: function() {\r\n this.callBase();\r\n this._renderFormatter()\r\n },\r\n _renderFormatter: function() {\r\n this._clearCache();\r\n this._detachFormatterEvents();\r\n if (this._useMaskBehavior()) {\r\n this._attachFormatterEvents()\r\n }\r\n },\r\n _detachFormatterEvents: function() {\r\n eventsEngine.off(this._input(), \".\" + NUMBER_FORMATTER_NAMESPACE)\r\n },\r\n _isInputFromPaste: function(e) {\r\n var inputType = e.originalEvent && e.originalEvent.inputType;\r\n if (isDefined(inputType)) {\r\n return \"insertFromPaste\" === inputType\r\n } else {\r\n return this._isValuePasted\r\n }\r\n },\r\n _attachFormatterEvents: function() {\r\n var $input = this._input();\r\n eventsEngine.on($input, addNamespace(INPUT_EVENT, NUMBER_FORMATTER_NAMESPACE), function(e) {\r\n this._formatValue(e);\r\n this._isValuePasted = false\r\n }.bind(this));\r\n eventsEngine.on($input, addNamespace(\"dxclick\", NUMBER_FORMATTER_NAMESPACE), function() {\r\n if (!this._caretTimeout) {\r\n this._caretTimeout = setTimeout(function() {\r\n this._caretTimeout = void 0;\r\n this._caret(getCaretInBoundaries(this._caret(), this._getInputVal(), this._getFormatPattern()))\r\n }.bind(this), CARET_TIMEOUT_DURATION)\r\n }\r\n }.bind(this));\r\n eventsEngine.on($input, \"dxdblclick\", function() {\r\n this.clearCaretTimeout()\r\n }.bind(this))\r\n },\r\n clearCaretTimeout: function() {\r\n clearTimeout(this._caretTimeout);\r\n this._caretTimeout = void 0\r\n },\r\n _forceRefreshInputValue: function() {\r\n if (!this._useMaskBehavior()) {\r\n return this.callBase()\r\n }\r\n },\r\n _isNonStubAfter: function(index) {\r\n var text = this._getInputVal().slice(index);\r\n return text && !this._isStub(text, true)\r\n },\r\n _isStub: function(str, isString) {\r\n var escapedDecimalSeparator = escapeRegExp(number.getDecimalSeparator());\r\n var regExpString = \"^[^0-9\" + escapedDecimalSeparator + \"]+$\";\r\n var stubRegExp = new RegExp(regExpString, \"g\");\r\n return stubRegExp.test(str) && (isString || this._isChar(str))\r\n },\r\n _parseValue: function(text) {\r\n if (!this._useMaskBehavior()) {\r\n return this.callBase(text)\r\n }\r\n return this._parsedValue\r\n },\r\n _getPrecisionLimits: function(text) {\r\n var currentFormat = this._getFormatForSign(text);\r\n var realSeparatorIndex = getRealSeparatorIndex(currentFormat).index;\r\n var floatPart = (splitByIndex(currentFormat, realSeparatorIndex)[1] || \"\").replace(/[^#0]/g, \"\");\r\n var minPrecision = floatPart.replace(/^(0*)#*/, \"$1\").length;\r\n var maxPrecision = floatPart.length;\r\n return {\r\n min: minPrecision,\r\n max: maxPrecision\r\n }\r\n },\r\n _revertSign: function(e) {\r\n if (!this._useMaskBehavior()) {\r\n return\r\n }\r\n var caret = this._caret();\r\n if (caret.start !== caret.end) {\r\n if (normalizeKeyName(e) === MINUS_KEY) {\r\n this._applyRevertedSign(e, caret, true);\r\n return\r\n } else {\r\n this._caret(getCaretInBoundaries(0, this._getInputVal(), this._getFormatPattern()))\r\n }\r\n }\r\n this._applyRevertedSign(e, caret)\r\n },\r\n _applyRevertedSign: function(e, caret, preserveSelectedText) {\r\n var newValue = -1 * ensureDefined(this._parsedValue, null);\r\n if (this._isValueInRange(newValue)) {\r\n this._parsedValue = newValue;\r\n if (preserveSelectedText) {\r\n var format = this._getFormatPattern();\r\n var previousText = this._getInputVal();\r\n this._setTextByParsedValue();\r\n e.preventDefault();\r\n var currentText = this._getInputVal();\r\n var offset = getCaretOffset(previousText, currentText, format);\r\n caret = getCaretWithOffset(caret, offset);\r\n var caretInBoundaries = getCaretInBoundaries(caret, currentText, format);\r\n this._caret(caretInBoundaries)\r\n }\r\n }\r\n },\r\n _removeMinusFromText: function(text, caret) {\r\n var isMinusPressed = this._lastKeyName === MINUS_KEY && text.charAt(caret.start - 1) === MINUS;\r\n return isMinusPressed ? this._replaceSelectedText(text, {\r\n start: caret.start - 1,\r\n end: caret.start\r\n }, \"\") : text\r\n },\r\n _setTextByParsedValue: function() {\r\n var format = this._getFormatPattern();\r\n var parsed = this._parseValue();\r\n var formatted = this._format(parsed, format) || \"\";\r\n this._setInputText(formatted)\r\n },\r\n _formatValue: function(e) {\r\n var normalizedText = this._getInputVal();\r\n var caret = this._caret();\r\n var textWithoutMinus = this._removeMinusFromText(normalizedText, caret);\r\n var wasMinusRemoved = textWithoutMinus !== normalizedText;\r\n normalizedText = textWithoutMinus;\r\n if (!this._isInputFromPaste(e) && this._isValueIncomplete(textWithoutMinus)) {\r\n this._formattedValue = normalizedText;\r\n if (wasMinusRemoved) {\r\n this._setTextByParsedValue()\r\n }\r\n return\r\n }\r\n var textWasChanged = number.convertDigits(this._formattedValue, true) !== normalizedText;\r\n if (textWasChanged) {\r\n var value = this._tryParse(normalizedText, caret, \"\");\r\n if (isDefined(value)) {\r\n this._parsedValue = value\r\n }\r\n }\r\n this._setTextByParsedValue()\r\n },\r\n _renderDisplayText: function() {\r\n if (this._useMaskBehavior()) {\r\n this._toggleEmptinessEventHandler()\r\n } else {\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _renderValue: function() {\r\n if (this._useMaskBehavior()) {\r\n this._parsedValue = this.option(\"value\");\r\n this._setTextByParsedValue()\r\n }\r\n return this.callBase()\r\n },\r\n _updateParsedValue: function() {\r\n var inputValue = this._getInputVal();\r\n this._parsedValue = this._tryParse(inputValue, this._caret())\r\n },\r\n _adjustParsedValue: function() {\r\n if (!this._useMaskBehavior()) {\r\n return\r\n }\r\n var clearedText = this._removeStubs(this._getInputVal());\r\n var parsedValue = clearedText ? this._parseValue() : null;\r\n if (!isNumeric(parsedValue)) {\r\n this._parsedValue = parsedValue;\r\n return\r\n }\r\n this._parsedValue = fitIntoRange(parsedValue, this.option(\"min\"), this.option(\"max\"))\r\n },\r\n _valueChangeEventHandler: function(e) {\r\n if (!this._useMaskBehavior()) {\r\n return this.callBase(e)\r\n }\r\n var caret = this._caret();\r\n this._saveValueChangeEvent(e);\r\n this._lastKey = null;\r\n this._lastKeyName = null;\r\n this._updateParsedValue();\r\n this._adjustParsedValue();\r\n this.option(\"value\", this._parsedValue);\r\n if (caret) {\r\n this._caret(caret)\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"format\":\r\n case \"useMaskBehavior\":\r\n this._renderInputType();\r\n this._updateFormat();\r\n this._renderFormatter();\r\n this._renderValue();\r\n this._refreshValueChangeEvent();\r\n this._refreshEvents();\r\n break;\r\n case \"min\":\r\n case \"max\":\r\n this._adjustParsedValue();\r\n this.callBase(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _clearCache: function() {\r\n delete this._formattedValue;\r\n delete this._lastKey;\r\n delete this._lastKeyName;\r\n delete this._parsedValue;\r\n delete this._focusOutOccurs;\r\n clearTimeout(this._caretTimeout);\r\n delete this._caretTimeout\r\n },\r\n _clean: function() {\r\n this._clearCache();\r\n this.callBase()\r\n }\r\n});\r\nexport default NumberBoxMask;\r\n","/**\r\n * DevExtreme (esm/ui/number_box/number_box.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport NumberBoxMask from \"./number_box.mask\";\r\nregisterComponent(\"dxNumberBox\", NumberBoxMask);\r\nexport default NumberBoxMask;\r\n","/**\r\n * DevExtreme (esm/ui/number_box.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport NumberBox from \"./number_box/number_box\";\r\nexport default NumberBox;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.mask.parts.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getPatternSetters\r\n} from \"../../localization/ldml/date.parser\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n fitIntoRange\r\n} from \"../../core/utils/math\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nvar monthGetter = date => date.getMonth() + 1;\r\nvar monthSetter = (date, value) => {\r\n var day = date.getDate();\r\n var monthLimits = getLimits(\"M\", date);\r\n var newValue = fitIntoRange(parseInt(value), monthLimits.min, monthLimits.max);\r\n date.setMonth(newValue - 1, 1);\r\n var {\r\n min: min,\r\n max: max\r\n } = getLimits(\"dM\", date);\r\n var newDay = fitIntoRange(day, min, max);\r\n date.setDate(newDay)\r\n};\r\nvar PATTERN_GETTERS = {\r\n a: date => date.getHours() < 12 ? 0 : 1,\r\n E: \"getDay\",\r\n y: \"getFullYear\",\r\n M: monthGetter,\r\n L: monthGetter,\r\n d: \"getDate\",\r\n H: \"getHours\",\r\n h: \"getHours\",\r\n m: \"getMinutes\",\r\n s: \"getSeconds\",\r\n S: \"getMilliseconds\"\r\n};\r\nvar PATTERN_SETTERS = extend({}, getPatternSetters(), {\r\n a: (date, value) => {\r\n var hours = date.getHours();\r\n var current = hours >= 12;\r\n if (current === !!parseInt(value)) {\r\n return\r\n }\r\n date.setHours((hours + 12) % 24)\r\n },\r\n d: (date, value) => {\r\n var lastDayInMonth = getLimits(\"dM\", date).max;\r\n if (value > lastDayInMonth) {\r\n date.setMonth(date.getMonth() + 1)\r\n }\r\n date.setDate(value)\r\n },\r\n h: (date, value) => {\r\n var isPM = date.getHours() >= 12;\r\n date.setHours(+value % 12 + (isPM ? 12 : 0))\r\n },\r\n M: monthSetter,\r\n L: monthSetter,\r\n E: (date, value) => {\r\n if (value < 0) {\r\n return\r\n }\r\n date.setDate(date.getDate() - date.getDay() + parseInt(value))\r\n },\r\n y: (date, value) => {\r\n var currentYear = date.getFullYear();\r\n var valueLength = String(value).length;\r\n var maxLimitLength = String(getLimits(\"y\", date).max).length;\r\n var newValue = parseInt(String(currentYear).substr(0, maxLimitLength - valueLength) + value);\r\n date.setFullYear(newValue)\r\n }\r\n});\r\nvar getPatternGetter = patternChar => PATTERN_GETTERS[patternChar] || (() => patternChar);\r\nexport var renderDateParts = (text, regExpInfo) => {\r\n var result = regExpInfo.regexp.exec(text);\r\n var start = 0;\r\n var end = 0;\r\n var sections = [];\r\n var _loop = function(i) {\r\n start = end;\r\n end = start + result[i].length;\r\n var pattern = regExpInfo.patterns[i - 1].replace(/^'|'$/g, \"\");\r\n var getter = getPatternGetter(pattern[0]);\r\n sections.push({\r\n index: i - 1,\r\n isStub: pattern === result[i],\r\n caret: {\r\n start: start,\r\n end: end\r\n },\r\n pattern: pattern,\r\n text: result[i],\r\n limits: function() {\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n return getLimits(pattern[0], ...args)\r\n },\r\n setter: PATTERN_SETTERS[pattern[0]] || noop,\r\n getter: getter\r\n })\r\n };\r\n for (var i = 1; i < result.length; i++) {\r\n _loop(i)\r\n }\r\n return sections\r\n};\r\nvar getLimits = (pattern, date, forcedPattern) => {\r\n var limits = {\r\n y: {\r\n min: 0,\r\n max: 9999\r\n },\r\n M: {\r\n min: 1,\r\n max: 12\r\n },\r\n L: {\r\n min: 1,\r\n max: 12\r\n },\r\n d: {\r\n min: 1,\r\n max: 31\r\n },\r\n dM: {\r\n min: 1,\r\n max: new Date(date.getFullYear(), date.getMonth() + 1, 0).getDate()\r\n },\r\n E: {\r\n min: 0,\r\n max: 6\r\n },\r\n H: {\r\n min: 0,\r\n max: 23\r\n },\r\n h: {\r\n min: 0,\r\n max: 23\r\n },\r\n m: {\r\n min: 0,\r\n max: 59\r\n },\r\n s: {\r\n min: 0,\r\n max: 59\r\n },\r\n S: {\r\n min: 0,\r\n max: 999\r\n },\r\n a: {\r\n min: 0,\r\n max: 1\r\n }\r\n };\r\n return limits[forcedPattern || pattern] || limits.getAmPm\r\n};\r\nexport var getDatePartIndexByPosition = (dateParts, position) => {\r\n for (var i = 0; i < dateParts.length; i++) {\r\n var caretInGroup = dateParts[i].caret.end >= position;\r\n if (!dateParts[i].isStub && caretInGroup) {\r\n return i\r\n }\r\n }\r\n return null\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_utils.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport dateSerialization from \"../../core/utils/date_serialization\";\r\nimport {\r\n isDate\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport dateLocalization from \"../../localization/date\";\r\nvar DATE_COMPONENTS = [\"year\", \"day\", \"month\", \"day\"];\r\nvar TIME_COMPONENTS = [\"hours\", \"minutes\", \"seconds\", \"milliseconds\"];\r\nvar ONE_MINUTE = 6e4;\r\nvar ONE_DAY = 60 * ONE_MINUTE * 24;\r\nvar ONE_YEAR = 365 * ONE_DAY;\r\nvar getStringFormat = function(format) {\r\n var formatType = typeof format;\r\n if (\"string\" === formatType) {\r\n return \"format\"\r\n }\r\n if (\"object\" === formatType && void 0 !== format.type) {\r\n return format.type\r\n }\r\n return null\r\n};\r\nvar dateUtils = {\r\n SUPPORTED_FORMATS: [\"date\", \"time\", \"datetime\"],\r\n ONE_MINUTE: ONE_MINUTE,\r\n ONE_DAY: ONE_DAY,\r\n ONE_YEAR: ONE_YEAR,\r\n MIN_DATEVIEW_DEFAULT_DATE: new Date(1900, 0, 1),\r\n MAX_DATEVIEW_DEFAULT_DATE: function() {\r\n var newDate = new Date;\r\n return new Date(newDate.getFullYear() + 50, newDate.getMonth(), newDate.getDate(), 23, 59, 59)\r\n }(),\r\n FORMATS_INFO: {\r\n date: {\r\n getStandardPattern: function() {\r\n return \"yyyy-MM-dd\"\r\n },\r\n components: DATE_COMPONENTS\r\n },\r\n time: {\r\n getStandardPattern: function() {\r\n return \"HH:mm\"\r\n },\r\n components: TIME_COMPONENTS\r\n },\r\n datetime: {\r\n getStandardPattern: function() {\r\n var standardPattern;\r\n ! function() {\r\n var $input = $(\"\").attr(\"type\", \"datetime\");\r\n $input.val(\"2000-01-01T01:01Z\");\r\n if ($input.val()) {\r\n standardPattern = \"yyyy-MM-ddTHH:mmZ\"\r\n }\r\n }();\r\n if (!standardPattern) {\r\n standardPattern = \"yyyy-MM-ddTHH:mm:ssZ\"\r\n }\r\n dateUtils.FORMATS_INFO.datetime.getStandardPattern = function() {\r\n return standardPattern\r\n };\r\n return standardPattern\r\n },\r\n components: [...DATE_COMPONENTS, ...TIME_COMPONENTS]\r\n },\r\n \"datetime-local\": {\r\n getStandardPattern: function() {\r\n return \"yyyy-MM-ddTHH:mm:ss\"\r\n },\r\n components: [...DATE_COMPONENTS, \"hours\", \"minutes\", \"seconds\"]\r\n }\r\n },\r\n FORMATS_MAP: {\r\n date: \"shortdate\",\r\n time: \"shorttime\",\r\n datetime: \"shortdateshorttime\"\r\n },\r\n SUBMIT_FORMATS_MAP: {\r\n date: \"date\",\r\n time: \"time\",\r\n datetime: \"datetime-local\"\r\n },\r\n toStandardDateFormat: function(date, type) {\r\n var pattern = dateUtils.FORMATS_INFO[type].getStandardPattern();\r\n return dateSerialization.serializeDate(date, pattern)\r\n },\r\n fromStandardDateFormat: function(text) {\r\n var date = dateSerialization.dateParser(text);\r\n return isDate(date) ? date : void 0\r\n },\r\n getMaxMonthDay: function(year, month) {\r\n return new Date(year, month + 1, 0).getDate()\r\n },\r\n mergeDates: function(oldValue, newValue, format) {\r\n if (!newValue) {\r\n return newValue || null\r\n }\r\n if (!oldValue || isNaN(oldValue.getTime())) {\r\n var now = new Date(null);\r\n oldValue = new Date(now.getFullYear(), now.getMonth(), now.getDate())\r\n }\r\n var result = new Date(oldValue.valueOf());\r\n var formatInfo = dateUtils.FORMATS_INFO[format];\r\n each(formatInfo.components, (function() {\r\n var componentInfo = dateUtils.DATE_COMPONENTS_INFO[this];\r\n result[componentInfo.setter](newValue[componentInfo.getter]())\r\n }));\r\n return result\r\n },\r\n getLongestCaptionIndex: function(captionArray) {\r\n var longestIndex = 0;\r\n var longestCaptionLength = 0;\r\n var i;\r\n for (i = 0; i < captionArray.length; ++i) {\r\n if (captionArray[i].length > longestCaptionLength) {\r\n longestIndex = i;\r\n longestCaptionLength = captionArray[i].length\r\n }\r\n }\r\n return longestIndex\r\n },\r\n formatUsesMonthName: function(format) {\r\n return dateLocalization.formatUsesMonthName(format)\r\n },\r\n formatUsesDayName: function(format) {\r\n return dateLocalization.formatUsesDayName(format)\r\n },\r\n getLongestDate: function(format, monthNames, dayNames) {\r\n var stringFormat = getStringFormat(format);\r\n var month = 9;\r\n if (!stringFormat || dateUtils.formatUsesMonthName(stringFormat)) {\r\n month = dateUtils.getLongestCaptionIndex(monthNames)\r\n }\r\n var longestDate = new Date(1888, month, 21, 23, 59, 59, 999);\r\n if (!stringFormat || dateUtils.formatUsesDayName(stringFormat)) {\r\n var date = longestDate.getDate() - longestDate.getDay() + dateUtils.getLongestCaptionIndex(dayNames);\r\n longestDate.setDate(date)\r\n }\r\n return longestDate\r\n },\r\n normalizeTime: function(date) {\r\n date.setSeconds(0);\r\n date.setMilliseconds(0)\r\n }\r\n};\r\ndateUtils.DATE_COMPONENTS_INFO = {\r\n year: {\r\n getter: \"getFullYear\",\r\n setter: \"setFullYear\",\r\n formatter: function(value, date) {\r\n var formatDate = new Date(date.getTime());\r\n formatDate.setFullYear(value);\r\n return dateLocalization.format(formatDate, \"yyyy\")\r\n },\r\n startValue: void 0,\r\n endValue: void 0\r\n },\r\n day: {\r\n getter: \"getDate\",\r\n setter: \"setDate\",\r\n formatter: function(value, date) {\r\n var formatDate = new Date(date.getTime());\r\n formatDate.setDate(value);\r\n return dateLocalization.format(formatDate, \"d\")\r\n },\r\n startValue: 1,\r\n endValue: void 0\r\n },\r\n month: {\r\n getter: \"getMonth\",\r\n setter: \"setMonth\",\r\n formatter: function(value) {\r\n return dateLocalization.getMonthNames()[value]\r\n },\r\n startValue: 0,\r\n endValue: 11\r\n },\r\n hours: {\r\n getter: \"getHours\",\r\n setter: \"setHours\",\r\n formatter: function(value) {\r\n return dateLocalization.format(new Date(0, 0, 0, value), \"hour\")\r\n },\r\n startValue: 0,\r\n endValue: 23\r\n },\r\n minutes: {\r\n getter: \"getMinutes\",\r\n setter: \"setMinutes\",\r\n formatter: function(value) {\r\n return dateLocalization.format(new Date(0, 0, 0, 0, value), \"minute\")\r\n },\r\n startValue: 0,\r\n endValue: 59\r\n },\r\n seconds: {\r\n getter: \"getSeconds\",\r\n setter: \"setSeconds\",\r\n formatter: function(value) {\r\n return dateLocalization.format(new Date(0, 0, 0, 0, 0, value), \"second\")\r\n },\r\n startValue: 0,\r\n endValue: 59\r\n },\r\n milliseconds: {\r\n getter: \"getMilliseconds\",\r\n setter: \"setMilliseconds\",\r\n formatter: function(value) {\r\n return dateLocalization.format(new Date(0, 0, 0, 0, 0, 0, value), \"millisecond\")\r\n },\r\n startValue: 0,\r\n endValue: 999\r\n }\r\n};\r\nexport default dateUtils;\r\n","/**\r\n * DevExtreme (esm/events/gesture/swipeable.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n start as swipeEventStart,\r\n swipe as swipeEventSwipe,\r\n end as swipeEventEnd\r\n} from \"../swipe\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport DOMComponent from \"../../core/dom_component\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n addNamespace\r\n} from \"../utils/index\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n name\r\n} from \"../../core/utils/public_component\";\r\nvar DX_SWIPEABLE = \"dxSwipeable\";\r\nvar SWIPEABLE_CLASS = \"dx-swipeable\";\r\nvar ACTION_TO_EVENT_MAP = {\r\n onStart: swipeEventStart,\r\n onUpdated: swipeEventSwipe,\r\n onEnd: swipeEventEnd,\r\n onCancel: \"dxswipecancel\"\r\n};\r\nvar Swipeable = DOMComponent.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n elastic: true,\r\n immediate: false,\r\n direction: \"horizontal\",\r\n itemSizeFunc: null,\r\n onStart: null,\r\n onUpdated: null,\r\n onEnd: null,\r\n onCancel: null\r\n })\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this.$element().addClass(SWIPEABLE_CLASS);\r\n this._attachEventHandlers()\r\n },\r\n _attachEventHandlers: function() {\r\n this._detachEventHandlers();\r\n if (this.option(\"disabled\")) {\r\n return\r\n }\r\n var NAME = this.NAME;\r\n this._createEventData();\r\n each(ACTION_TO_EVENT_MAP, function(actionName, eventName) {\r\n var action = this._createActionByOption(actionName, {\r\n context: this\r\n });\r\n eventName = addNamespace(eventName, NAME);\r\n eventsEngine.on(this.$element(), eventName, this._eventData, (function(e) {\r\n return action({\r\n event: e\r\n })\r\n }))\r\n }.bind(this))\r\n },\r\n _createEventData: function() {\r\n this._eventData = {\r\n elastic: this.option(\"elastic\"),\r\n itemSizeFunc: this.option(\"itemSizeFunc\"),\r\n direction: this.option(\"direction\"),\r\n immediate: this.option(\"immediate\")\r\n }\r\n },\r\n _detachEventHandlers: function() {\r\n eventsEngine.off(this.$element(), \".\" + DX_SWIPEABLE)\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"disabled\":\r\n case \"onStart\":\r\n case \"onUpdated\":\r\n case \"onEnd\":\r\n case \"onCancel\":\r\n case \"elastic\":\r\n case \"immediate\":\r\n case \"itemSizeFunc\":\r\n case \"direction\":\r\n this._detachEventHandlers();\r\n this._attachEventHandlers();\r\n break;\r\n case \"rtlEnabled\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _useTemplates: function() {\r\n return false\r\n }\r\n});\r\nname(Swipeable, DX_SWIPEABLE);\r\nexport default Swipeable;\r\n","/**\r\n * DevExtreme (esm/ui/calendar/ui.calendar.navigator.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport Button from \"../button\";\r\nvar CALENDAR_NAVIGATOR_CLASS = \"dx-calendar-navigator\";\r\nvar CALENDAR_NAVIGATOR_PREVIOUS_MONTH_CLASS = \"dx-calendar-navigator-previous-month\";\r\nvar CALENDAR_NAVIGATOR_NEXT_MONTH_CLASS = \"dx-calendar-navigator-next-month\";\r\nvar CALENDAR_NAVIGATOR_PREVIOUS_VIEW_CLASS = \"dx-calendar-navigator-previous-view\";\r\nvar CALENDAR_NAVIGATOR_NEXT_VIEW_CLASS = \"dx-calendar-navigator-next-view\";\r\nvar CALENDAR_NAVIGATOR_DISABLED_LINK_CLASS = \"dx-calendar-disabled-navigator-link\";\r\nvar CALENDAR_NAVIGATOR_CAPTION_BUTTON_CLASS = \"dx-calendar-caption-button\";\r\nvar Navigator = Widget.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n onClick: null,\r\n onCaptionClick: null,\r\n text: \"\"\r\n })\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._initActions()\r\n },\r\n _initActions: function() {\r\n this._clickAction = this._createActionByOption(\"onClick\");\r\n this._captionClickAction = this._createActionByOption(\"onCaptionClick\")\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this.$element().addClass(CALENDAR_NAVIGATOR_CLASS);\r\n this._renderButtons();\r\n this._renderCaption()\r\n },\r\n _renderButtons: function() {\r\n var that = this;\r\n var direction = this.option(\"rtlEnabled\") ? -1 : 1;\r\n this._prevButton = this._createComponent($(\"\"), Button, {\r\n focusStateEnabled: false,\r\n icon: \"chevronleft\",\r\n onClick: function(e) {\r\n that._clickAction({\r\n direction: -direction,\r\n event: e\r\n })\r\n },\r\n integrationOptions: {}\r\n });\r\n var $prevButton = this._prevButton.$element().addClass(CALENDAR_NAVIGATOR_PREVIOUS_VIEW_CLASS).addClass(CALENDAR_NAVIGATOR_PREVIOUS_MONTH_CLASS);\r\n this._nextButton = this._createComponent($(\"\"), Button, {\r\n focusStateEnabled: false,\r\n icon: \"chevronright\",\r\n onClick: function(e) {\r\n that._clickAction({\r\n direction: direction,\r\n event: e\r\n })\r\n },\r\n integrationOptions: {}\r\n });\r\n var $nextButton = this._nextButton.$element().addClass(CALENDAR_NAVIGATOR_NEXT_VIEW_CLASS).addClass(CALENDAR_NAVIGATOR_NEXT_MONTH_CLASS);\r\n this._caption = this._createComponent($(\"\").addClass(CALENDAR_NAVIGATOR_CAPTION_BUTTON_CLASS), Button, {\r\n focusStateEnabled: false,\r\n onClick: function(e) {\r\n that._captionClickAction({\r\n event: e\r\n })\r\n },\r\n integrationOptions: {}\r\n });\r\n var $caption = this._caption.$element();\r\n this.$element().append($prevButton, $caption, $nextButton)\r\n },\r\n _renderCaption: function() {\r\n this._caption.option(\"text\", this.option(\"text\"))\r\n },\r\n toggleButton: function(buttonPrefix, value) {\r\n var buttonName = \"_\" + buttonPrefix + \"Button\";\r\n var button = this[buttonName];\r\n if (button) {\r\n button.option(\"disabled\", value);\r\n button.$element().toggleClass(CALENDAR_NAVIGATOR_DISABLED_LINK_CLASS, value)\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"text\":\r\n this._renderCaption();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport default Navigator;\r\n","/**\r\n * DevExtreme (esm/ui/calendar/ui.calendar.base_view.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n data as elementData\r\n} from \"../../core/element_data\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport coreDateUtils from \"../../core/utils/date\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport dateSerialization from \"../../core/utils/date_serialization\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nvar {\r\n abstract: abstract\r\n} = Widget;\r\nvar CALENDAR_OTHER_VIEW_CLASS = \"dx-calendar-other-view\";\r\nvar CALENDAR_CELL_CLASS = \"dx-calendar-cell\";\r\nvar CALENDAR_EMPTY_CELL_CLASS = \"dx-calendar-empty-cell\";\r\nvar CALENDAR_TODAY_CLASS = \"dx-calendar-today\";\r\nvar CALENDAR_SELECTED_DATE_CLASS = \"dx-calendar-selected-date\";\r\nvar CALENDAR_CONTOURED_DATE_CLASS = \"dx-calendar-contoured-date\";\r\nvar CALENDAR_DXCLICK_EVENT_NAME = addNamespace(clickEventName, \"dxCalendar\");\r\nvar CALENDAR_DATE_VALUE_KEY = \"dxDateValueKey\";\r\nvar BaseView = Widget.inherit({\r\n _getViewName: function() {\r\n return \"base\"\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n date: new Date,\r\n focusStateEnabled: false,\r\n cellTemplate: null,\r\n disabledDates: null,\r\n onCellClick: null,\r\n rowCount: 3,\r\n colCount: 4,\r\n allowValueSelection: true,\r\n _todayDate: () => new Date\r\n })\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this._renderImpl()\r\n },\r\n _renderImpl: function() {\r\n this.$element().append(this._createTable());\r\n this._createDisabledDatesHandler();\r\n this._renderBody();\r\n this._renderContouredDate();\r\n this._renderValue();\r\n this._renderEvents()\r\n },\r\n _createTable: function() {\r\n this._$table = $(\"\");\r\n this.setAria({\r\n label: messageLocalization.format(\"dxCalendar-ariaWidgetName\"),\r\n role: \"grid\"\r\n }, this._$table);\r\n return this._$table\r\n },\r\n _renderBody: function() {\r\n this.$body = $(\"\").appendTo(this._$table);\r\n var rowData = {\r\n cellDate: this._getFirstCellData(),\r\n prevCellDate: null\r\n };\r\n for (var rowIndex = 0, rowCount = this.option(\"rowCount\"); rowIndex < rowCount; rowIndex++) {\r\n rowData.row = this._createRow();\r\n for (var colIndex = 0, colCount = this.option(\"colCount\"); colIndex < colCount; colIndex++) {\r\n this._renderCell(rowData, colIndex)\r\n }\r\n }\r\n },\r\n _createRow: function() {\r\n var row = domAdapter.createElement(\"tr\");\r\n this.setAria(\"role\", \"row\", $(row));\r\n this.$body.get(0).appendChild(row);\r\n return row\r\n },\r\n _appendCell: function(row, cell) {\r\n if (!this._appendMethodName) {\r\n this._cacheAppendMethodName()\r\n }\r\n $(row)[this._appendMethodName](cell)\r\n },\r\n _cacheAppendMethodName: function(rtlEnabled) {\r\n this._appendMethodName = (null !== rtlEnabled && void 0 !== rtlEnabled ? rtlEnabled : this.option(\"rtlEnabled\")) ? \"prepend\" : \"append\"\r\n },\r\n _createCell: function(cellDate) {\r\n var cell = domAdapter.createElement(\"td\");\r\n var $cell = $(cell);\r\n cell.className = this._getClassNameByDate(cellDate);\r\n cell.setAttribute(\"data-value\", dateSerialization.serializeDate(cellDate, coreDateUtils.getShortDateFormat()));\r\n elementData(cell, CALENDAR_DATE_VALUE_KEY, cellDate);\r\n this.setAria({\r\n role: \"gridcell\",\r\n label: this.getCellAriaLabel(cellDate)\r\n }, $cell);\r\n return {\r\n cell: cell,\r\n $cell: $cell\r\n }\r\n },\r\n _renderCell: function(params, cellIndex) {\r\n var {\r\n cellDate: cellDate,\r\n prevCellDate: prevCellDate,\r\n row: row\r\n } = params;\r\n if (prevCellDate) {\r\n coreDateUtils.fixTimezoneGap(prevCellDate, cellDate)\r\n }\r\n params.prevCellDate = cellDate;\r\n var {\r\n cell: cell,\r\n $cell: $cell\r\n } = this._createCell(cellDate);\r\n var cellTemplate = this.option(\"cellTemplate\");\r\n this._appendCell(row, cell);\r\n if (cellTemplate) {\r\n cellTemplate.render(this._prepareCellTemplateData(cellDate, cellIndex, $cell))\r\n } else {\r\n cell.innerHTML = this._getCellText(cellDate)\r\n }\r\n params.cellDate = this._getNextCellData(cellDate)\r\n },\r\n _getClassNameByDate: function(cellDate) {\r\n var className = CALENDAR_CELL_CLASS;\r\n if (this._isTodayCell(cellDate)) {\r\n className += \" \".concat(CALENDAR_TODAY_CLASS)\r\n }\r\n if (this._isDateOutOfRange(cellDate) || this.isDateDisabled(cellDate)) {\r\n className += \" \".concat(CALENDAR_EMPTY_CELL_CLASS)\r\n }\r\n if (this._isOtherView(cellDate)) {\r\n className += \" \".concat(CALENDAR_OTHER_VIEW_CLASS)\r\n }\r\n return className\r\n },\r\n _prepareCellTemplateData: function(cellDate, cellIndex, $cell) {\r\n return {\r\n model: {\r\n text: this._getCellText(cellDate),\r\n date: cellDate,\r\n view: this._getViewName()\r\n },\r\n container: getPublicElement($cell),\r\n index: cellIndex\r\n }\r\n },\r\n _renderEvents: function() {\r\n this._createCellClickAction();\r\n eventsEngine.off(this._$table, CALENDAR_DXCLICK_EVENT_NAME);\r\n eventsEngine.on(this._$table, CALENDAR_DXCLICK_EVENT_NAME, \"td\", e => {\r\n if (!$(e.currentTarget).hasClass(CALENDAR_EMPTY_CELL_CLASS)) {\r\n this._cellClickAction({\r\n event: e,\r\n value: $(e.currentTarget).data(CALENDAR_DATE_VALUE_KEY)\r\n })\r\n }\r\n })\r\n },\r\n _createCellClickAction: function() {\r\n this._cellClickAction = this._createActionByOption(\"onCellClick\")\r\n },\r\n _createDisabledDatesHandler: function() {\r\n var disabledDates = this.option(\"disabledDates\");\r\n this._disabledDatesHandler = Array.isArray(disabledDates) ? this._getDefaultDisabledDatesHandler(disabledDates) : disabledDates || noop\r\n },\r\n _getDefaultDisabledDatesHandler: function(disabledDates) {\r\n return noop\r\n },\r\n _isTodayCell: abstract,\r\n _isDateOutOfRange: abstract,\r\n isDateDisabled: function(cellDate) {\r\n var dateParts = {\r\n date: cellDate,\r\n view: this._getViewName()\r\n };\r\n return this._disabledDatesHandler(dateParts)\r\n },\r\n _isOtherView: abstract,\r\n _getCellText: abstract,\r\n _getFirstCellData: abstract,\r\n _getNextCellData: abstract,\r\n _renderContouredDate: function(contouredDate) {\r\n if (!this.option(\"focusStateEnabled\")) {\r\n return\r\n }\r\n contouredDate = contouredDate || this.option(\"contouredDate\");\r\n var $oldContouredCell = this._getContouredCell();\r\n var $newContouredCell = this._getCellByDate(contouredDate);\r\n $oldContouredCell.removeClass(CALENDAR_CONTOURED_DATE_CLASS);\r\n $newContouredCell.addClass(CALENDAR_CONTOURED_DATE_CLASS)\r\n },\r\n _getContouredCell: function() {\r\n return this._$table.find(\".\".concat(CALENDAR_CONTOURED_DATE_CLASS))\r\n },\r\n _changeValue: function(cellDate) {\r\n if (cellDate) {\r\n var value = this.option(\"value\");\r\n var newValue = value ? new Date(value) : new Date;\r\n newValue.setDate(cellDate.getDate());\r\n newValue.setMonth(cellDate.getMonth());\r\n newValue.setFullYear(cellDate.getFullYear());\r\n newValue.setDate(cellDate.getDate());\r\n this.option(\"value\", newValue)\r\n } else {\r\n this.option(\"value\", null)\r\n }\r\n },\r\n _renderValue: function() {\r\n if (!this.option(\"allowValueSelection\")) {\r\n return\r\n }\r\n var value = this.option(\"value\");\r\n var selectedCell = this._getCellByDate(value);\r\n if (this._selectedCell) {\r\n this._selectedCell.removeClass(CALENDAR_SELECTED_DATE_CLASS)\r\n }\r\n selectedCell.addClass(CALENDAR_SELECTED_DATE_CLASS);\r\n this._selectedCell = selectedCell\r\n },\r\n getCellAriaLabel: function(date) {\r\n return this._getCellText(date)\r\n },\r\n _getFirstAvailableDate: function() {\r\n var date = this.option(\"date\");\r\n var min = this.option(\"min\");\r\n date = coreDateUtils.getFirstDateView(this._getViewName(), date);\r\n return new Date(min && date < min ? min : date)\r\n },\r\n _getCellByDate: abstract,\r\n isBoundary: abstract,\r\n _optionChanged: function(args) {\r\n var {\r\n name: name,\r\n value: value\r\n } = args;\r\n switch (name) {\r\n case \"value\":\r\n this._renderValue();\r\n break;\r\n case \"contouredDate\":\r\n this._renderContouredDate(value);\r\n break;\r\n case \"onCellClick\":\r\n this._createCellClickAction();\r\n break;\r\n case \"disabledDates\":\r\n case \"cellTemplate\":\r\n this._invalidate();\r\n break;\r\n case \"rtlEnabled\":\r\n this._cacheAppendMethodName(value);\r\n this.callBase(args);\r\n break;\r\n case \"_todayDate\":\r\n this._renderBody();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport default BaseView;\r\n","/**\r\n * DevExtreme (esm/ui/calendar/ui.calendar.views.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport BaseView from \"./ui.calendar.base_view\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport dateLocalization from \"../../localization/date\";\r\nimport dateSerialization from \"../../core/utils/date_serialization\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nvar CALENDAR_OTHER_MONTH_CLASS = \"dx-calendar-other-month\";\r\nvar CALENDAR_OTHER_VIEW_CLASS = \"dx-calendar-other-view\";\r\nvar Views = {\r\n month: BaseView.inherit({\r\n _getViewName: function() {\r\n return \"month\"\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n firstDayOfWeek: void 0,\r\n rowCount: 6,\r\n colCount: 7\r\n })\r\n },\r\n _renderImpl: function() {\r\n this.callBase();\r\n this._renderHeader()\r\n },\r\n _renderBody: function() {\r\n this.callBase();\r\n this._$table.find(\".\".concat(CALENDAR_OTHER_VIEW_CLASS)).addClass(CALENDAR_OTHER_MONTH_CLASS)\r\n },\r\n _renderFocusTarget: noop,\r\n getCellAriaLabel: function(date) {\r\n return dateLocalization.format(date, \"longdate\")\r\n },\r\n _renderHeader: function() {\r\n var $headerRow = $(\"\");\r\n var $header = $(\"\").append($headerRow);\r\n this._$table.prepend($header);\r\n for (var colIndex = 0, colCount = this.option(\"colCount\"); colIndex < colCount; colIndex++) {\r\n this._renderHeaderCell(colIndex, $headerRow)\r\n }\r\n },\r\n _renderHeaderCell: function(cellIndex, $headerRow) {\r\n var {\r\n full: fullCaption,\r\n abbreviated: abbrCaption\r\n } = this._getDayCaption(this._getFirstDayOfWeek() + cellIndex);\r\n var $cell = $(\"
\").attr({\r\n scope: \"col\",\r\n abbr: fullCaption\r\n }).text(abbrCaption);\r\n this._appendCell($headerRow, $cell)\r\n },\r\n getNavigatorCaption: function() {\r\n return dateLocalization.format(this.option(\"date\"), \"monthandyear\")\r\n },\r\n _isTodayCell: function(cellDate) {\r\n var today = this.option(\"_todayDate\")();\r\n return dateUtils.sameDate(cellDate, today)\r\n },\r\n _isDateOutOfRange: function(cellDate) {\r\n var minDate = this.option(\"min\");\r\n var maxDate = this.option(\"max\");\r\n return !dateUtils.dateInRange(cellDate, minDate, maxDate, \"date\")\r\n },\r\n _isOtherView: function(cellDate) {\r\n return cellDate.getMonth() !== this.option(\"date\").getMonth()\r\n },\r\n _getCellText: function(cellDate) {\r\n return dateLocalization.format(cellDate, \"d\")\r\n },\r\n _getDayCaption: function(day) {\r\n var daysInWeek = this.option(\"colCount\");\r\n var dayIndex = day % daysInWeek;\r\n return {\r\n full: dateLocalization.getDayNames()[dayIndex],\r\n abbreviated: dateLocalization.getDayNames(\"abbreviated\")[dayIndex]\r\n }\r\n },\r\n _getFirstCellData: function() {\r\n var firstDay = dateUtils.getFirstMonthDate(this.option(\"date\"));\r\n var firstMonthDayOffset = this._getFirstDayOfWeek() - firstDay.getDay();\r\n var daysInWeek = this.option(\"colCount\");\r\n if (firstMonthDayOffset >= 0) {\r\n firstMonthDayOffset -= daysInWeek\r\n }\r\n firstDay.setDate(firstDay.getDate() + firstMonthDayOffset);\r\n return firstDay\r\n },\r\n _getNextCellData: function(date) {\r\n date = new Date(date);\r\n date.setDate(date.getDate() + 1);\r\n return date\r\n },\r\n _getFirstDayOfWeek: function() {\r\n return isDefined(this.option(\"firstDayOfWeek\")) ? this.option(\"firstDayOfWeek\") : dateLocalization.firstDayOfWeekIndex()\r\n },\r\n _getCellByDate: function(date) {\r\n return this._$table.find(\"td[data-value='\".concat(dateSerialization.serializeDate(date, dateUtils.getShortDateFormat()), \"']\"))\r\n },\r\n isBoundary: function(date) {\r\n return dateUtils.sameMonthAndYear(date, this.option(\"min\")) || dateUtils.sameMonthAndYear(date, this.option(\"max\"))\r\n },\r\n _getDefaultDisabledDatesHandler: function(disabledDates) {\r\n return function(args) {\r\n var isDisabledDate = disabledDates.some((function(item) {\r\n return dateUtils.sameDate(item, args.date)\r\n }));\r\n if (isDisabledDate) {\r\n return true\r\n }\r\n }\r\n }\r\n }),\r\n year: BaseView.inherit({\r\n _getViewName: function() {\r\n return \"year\"\r\n },\r\n _isTodayCell: function(cellDate) {\r\n var today = this.option(\"_todayDate\")();\r\n return dateUtils.sameMonthAndYear(cellDate, today)\r\n },\r\n _isDateOutOfRange: function(cellDate) {\r\n return !dateUtils.dateInRange(cellDate, dateUtils.getFirstMonthDate(this.option(\"min\")), dateUtils.getLastMonthDate(this.option(\"max\")))\r\n },\r\n _isOtherView: function() {\r\n return false\r\n },\r\n _getCellText: function(cellDate) {\r\n return dateLocalization.getMonthNames(\"abbreviated\")[cellDate.getMonth()]\r\n },\r\n _getFirstCellData: function() {\r\n var currentDate = this.option(\"date\");\r\n var data = new Date(currentDate);\r\n data.setDate(1);\r\n data.setMonth(0);\r\n return data\r\n },\r\n _getNextCellData: function(date) {\r\n date = new Date(date);\r\n date.setMonth(date.getMonth() + 1);\r\n return date\r\n },\r\n _getCellByDate: function(date) {\r\n var foundDate = new Date(date);\r\n foundDate.setDate(1);\r\n return this._$table.find(\"td[data-value='\".concat(dateSerialization.serializeDate(foundDate, dateUtils.getShortDateFormat()), \"']\"))\r\n },\r\n getCellAriaLabel: function(date) {\r\n return dateLocalization.format(date, \"monthandyear\")\r\n },\r\n getNavigatorCaption: function() {\r\n return dateLocalization.format(this.option(\"date\"), \"yyyy\")\r\n },\r\n isBoundary: function(date) {\r\n return dateUtils.sameYear(date, this.option(\"min\")) || dateUtils.sameYear(date, this.option(\"max\"))\r\n }\r\n }),\r\n decade: BaseView.inherit({\r\n _getViewName: function() {\r\n return \"decade\"\r\n },\r\n _isTodayCell: function(cellDate) {\r\n var today = this.option(\"_todayDate\")();\r\n return dateUtils.sameYear(cellDate, today)\r\n },\r\n _isDateOutOfRange: function(cellDate) {\r\n var min = this.option(\"min\");\r\n var max = this.option(\"max\");\r\n return !dateUtils.dateInRange(cellDate.getFullYear(), min && min.getFullYear(), max && max.getFullYear())\r\n },\r\n _isOtherView: function(cellDate) {\r\n var date = new Date(cellDate);\r\n date.setMonth(1);\r\n return !dateUtils.sameDecade(date, this.option(\"date\"))\r\n },\r\n _getCellText: function(cellDate) {\r\n return dateLocalization.format(cellDate, \"yyyy\")\r\n },\r\n _getFirstCellData: function() {\r\n var year = dateUtils.getFirstYearInDecade(this.option(\"date\")) - 1;\r\n return dateUtils.createDateWithFullYear(year, 0, 1)\r\n },\r\n _getNextCellData: function(date) {\r\n date = new Date(date);\r\n date.setFullYear(date.getFullYear() + 1);\r\n return date\r\n },\r\n getNavigatorCaption: function() {\r\n var currentDate = this.option(\"date\");\r\n var firstYearInDecade = dateUtils.getFirstYearInDecade(currentDate);\r\n var startDate = new Date(currentDate);\r\n var endDate = new Date(currentDate);\r\n startDate.setFullYear(firstYearInDecade);\r\n endDate.setFullYear(firstYearInDecade + 9);\r\n return dateLocalization.format(startDate, \"yyyy\") + \"-\" + dateLocalization.format(endDate, \"yyyy\")\r\n },\r\n _isValueOnCurrentView: function(currentDate, value) {\r\n return dateUtils.sameDecade(currentDate, value)\r\n },\r\n _getCellByDate: function(date) {\r\n var foundDate = new Date(date);\r\n foundDate.setDate(1);\r\n foundDate.setMonth(0);\r\n return this._$table.find(\"td[data-value='\".concat(dateSerialization.serializeDate(foundDate, dateUtils.getShortDateFormat()), \"']\"))\r\n },\r\n isBoundary: function(date) {\r\n return dateUtils.sameDecade(date, this.option(\"min\")) || dateUtils.sameDecade(date, this.option(\"max\"))\r\n }\r\n }),\r\n century: BaseView.inherit({\r\n _getViewName: function() {\r\n return \"century\"\r\n },\r\n _isTodayCell: function(cellDate) {\r\n var today = this.option(\"_todayDate\")();\r\n return dateUtils.sameDecade(cellDate, today)\r\n },\r\n _isDateOutOfRange: function(cellDate) {\r\n var decade = dateUtils.getFirstYearInDecade(cellDate);\r\n var minDecade = dateUtils.getFirstYearInDecade(this.option(\"min\"));\r\n var maxDecade = dateUtils.getFirstYearInDecade(this.option(\"max\"));\r\n return !dateUtils.dateInRange(decade, minDecade, maxDecade)\r\n },\r\n _isOtherView: function(cellDate) {\r\n var date = new Date(cellDate);\r\n date.setMonth(1);\r\n return !dateUtils.sameCentury(date, this.option(\"date\"))\r\n },\r\n _getCellText: function(cellDate) {\r\n var startDate = dateLocalization.format(cellDate, \"yyyy\");\r\n var endDate = new Date(cellDate);\r\n endDate.setFullYear(endDate.getFullYear() + 9);\r\n return startDate + \" - \" + dateLocalization.format(endDate, \"yyyy\")\r\n },\r\n _getFirstCellData: function() {\r\n var decade = dateUtils.getFirstDecadeInCentury(this.option(\"date\")) - 10;\r\n return dateUtils.createDateWithFullYear(decade, 0, 1)\r\n },\r\n _getNextCellData: function(date) {\r\n date = new Date(date);\r\n date.setFullYear(date.getFullYear() + 10);\r\n return date\r\n },\r\n _getCellByDate: function(date) {\r\n var foundDate = new Date(date);\r\n foundDate.setDate(1);\r\n foundDate.setMonth(0);\r\n foundDate.setFullYear(dateUtils.getFirstYearInDecade(foundDate));\r\n return this._$table.find(\"td[data-value='\".concat(dateSerialization.serializeDate(foundDate, dateUtils.getShortDateFormat()), \"']\"))\r\n },\r\n getNavigatorCaption: function() {\r\n var currentDate = this.option(\"date\");\r\n var firstDecadeInCentury = dateUtils.getFirstDecadeInCentury(currentDate);\r\n var startDate = new Date(currentDate);\r\n var endDate = new Date(currentDate);\r\n startDate.setFullYear(firstDecadeInCentury);\r\n endDate.setFullYear(firstDecadeInCentury + 99);\r\n return dateLocalization.format(startDate, \"yyyy\") + \"-\" + dateLocalization.format(endDate, \"yyyy\")\r\n },\r\n isBoundary: function(date) {\r\n return dateUtils.sameCentury(date, this.option(\"min\")) || dateUtils.sameCentury(date, this.option(\"max\"))\r\n }\r\n })\r\n};\r\nexport default Views;\r\n","/**\r\n * DevExtreme (esm/ui/calendar/ui.calendar.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport Guid from \"../../core/guid\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isNumeric,\r\n isString,\r\n isFunction,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n inRange\r\n} from \"../../core/utils/math\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport Button from \"../button\";\r\nimport Editor from \"../editor/editor\";\r\nimport Swipeable from \"../../events/gesture/swipeable\";\r\nimport Navigator from \"./ui.calendar.navigator\";\r\nimport Views from \"./ui.calendar.views\";\r\nimport {\r\n move\r\n} from \"../../animation/translator\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport dateSerialization from \"../../core/utils/date_serialization\";\r\nimport devices from \"../../core/devices\";\r\nimport fx from \"../../animation/fx\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n FunctionTemplate\r\n} from \"../../core/templates/function_template\";\r\nimport {\r\n isCommandKeyPressed\r\n} from \"../../events/utils/index\";\r\nvar CALENDAR_CLASS = \"dx-calendar\";\r\nvar CALENDAR_BODY_CLASS = \"dx-calendar-body\";\r\nvar CALENDAR_CELL_CLASS = \"dx-calendar-cell\";\r\nvar CALENDAR_FOOTER_CLASS = \"dx-calendar-footer\";\r\nvar CALENDAR_TODAY_BUTTON_CLASS = \"dx-calendar-today-button\";\r\nvar CALENDAR_HAS_FOOTER_CLASS = \"dx-calendar-with-footer\";\r\nvar CALENDAR_VIEWS_WRAPPER_CLASS = \"dx-calendar-views-wrapper\";\r\nvar CALENDAR_VIEW_CLASS = \"dx-calendar-view\";\r\nvar FOCUSED_STATE_CLASS = \"dx-state-focused\";\r\nvar ANIMATION_DURATION_SHOW_VIEW = 250;\r\nvar POP_ANIMATION_FROM = .6;\r\nvar POP_ANIMATION_TO = 1;\r\nvar CALENDAR_INPUT_STANDARD_PATTERN = \"yyyy-MM-dd\";\r\nvar CALENDAR_DATE_VALUE_KEY = \"dxDateValueKey\";\r\nvar LEVEL_COMPARE_MAP = {\r\n month: 3,\r\n year: 2,\r\n decade: 1,\r\n century: 0\r\n};\r\nvar ZOOM_LEVEL = {\r\n MONTH: \"month\",\r\n YEAR: \"year\",\r\n DECADE: \"decade\",\r\n CENTURY: \"century\"\r\n};\r\n\r\nfunction elementHasFocus(element) {\r\n return element.hasClass(FOCUSED_STATE_CLASS)\r\n}\r\nvar Calendar = Editor.inherit({\r\n _activeStateUnit: \".\" + CALENDAR_CELL_CLASS,\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n hoverStateEnabled: true,\r\n activeStateEnabled: true,\r\n currentDate: new Date,\r\n value: null,\r\n dateSerializationFormat: void 0,\r\n min: new Date(1e3, 0),\r\n max: new Date(3e3, 0),\r\n firstDayOfWeek: void 0,\r\n zoomLevel: ZOOM_LEVEL.MONTH,\r\n maxZoomLevel: ZOOM_LEVEL.MONTH,\r\n minZoomLevel: ZOOM_LEVEL.CENTURY,\r\n showTodayButton: false,\r\n cellTemplate: \"cell\",\r\n disabledDates: null,\r\n onCellClick: null,\r\n onContouredChanged: null,\r\n skipFocusCheck: false,\r\n _todayDate: () => new Date\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }])\r\n },\r\n _supportedKeys: function() {\r\n return extend(this.callBase(), {\r\n rightArrow: function(e) {\r\n e.preventDefault();\r\n if (isCommandKeyPressed(e)) {\r\n this._waitRenderView(1)\r\n } else {\r\n this._moveCurrentDateByOffset(1 * this._getRtlCorrection())\r\n }\r\n },\r\n leftArrow: function(e) {\r\n e.preventDefault();\r\n if (isCommandKeyPressed(e)) {\r\n this._waitRenderView(-1)\r\n } else {\r\n this._moveCurrentDateByOffset(-1 * this._getRtlCorrection())\r\n }\r\n },\r\n upArrow: function(e) {\r\n e.preventDefault();\r\n if (isCommandKeyPressed(e)) {\r\n this._navigateUp()\r\n } else {\r\n if (fx.isAnimating(this._view.$element())) {\r\n return\r\n }\r\n this._moveCurrentDateByOffset(-1 * this._view.option(\"colCount\"))\r\n }\r\n },\r\n downArrow: function(e) {\r\n e.preventDefault();\r\n if (isCommandKeyPressed(e)) {\r\n this._navigateDown()\r\n } else {\r\n if (fx.isAnimating(this._view.$element())) {\r\n return\r\n }\r\n this._moveCurrentDateByOffset(1 * this._view.option(\"colCount\"))\r\n }\r\n },\r\n home: function(e) {\r\n e.preventDefault();\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var currentDate = this.option(\"currentDate\");\r\n var min = this._dateOption(\"min\");\r\n if (this._view.isDateDisabled(currentDate)) {\r\n return\r\n }\r\n var date = dateUtils.sameView(zoomLevel, currentDate, min) ? min : dateUtils.getViewFirstCellDate(zoomLevel, currentDate);\r\n this._moveToClosestAvailableDate(date)\r\n },\r\n end: function(e) {\r\n e.preventDefault();\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var currentDate = this.option(\"currentDate\");\r\n var max = this._dateOption(\"max\");\r\n if (this._view.isDateDisabled(currentDate)) {\r\n return\r\n }\r\n var date = dateUtils.sameView(zoomLevel, currentDate, max) ? max : dateUtils.getViewLastCellDate(zoomLevel, currentDate);\r\n this._moveToClosestAvailableDate(date)\r\n },\r\n pageUp: function(e) {\r\n e.preventDefault();\r\n this._waitRenderView(-1 * this._getRtlCorrection())\r\n },\r\n pageDown: function(e) {\r\n e.preventDefault();\r\n this._waitRenderView(1 * this._getRtlCorrection())\r\n },\r\n tab: noop,\r\n enter: function(e) {\r\n if (!this._isMaxZoomLevel()) {\r\n this._navigateDown()\r\n } else if (!this._view.isDateDisabled(this.option(\"currentDate\"))) {\r\n var value = this._updateTimeComponent(this.option(\"currentDate\"));\r\n this._dateValue(value, e)\r\n }\r\n }\r\n })\r\n },\r\n _getSerializationFormat: function(optionName) {\r\n var value = this.option(optionName || \"value\");\r\n if (this.option(\"dateSerializationFormat\")) {\r\n return this.option(\"dateSerializationFormat\")\r\n }\r\n if (isNumeric(value)) {\r\n return \"number\"\r\n }\r\n if (!isString(value)) {\r\n return\r\n }\r\n return dateSerialization.getDateSerializationFormat(value)\r\n },\r\n _convertToDate: function(value, optionName) {\r\n return dateSerialization.deserializeDate(value)\r\n },\r\n _dateValue: function(value, event) {\r\n if (event) {\r\n if (\"keydown\" === event.type) {\r\n var cellElement = this._view._getContouredCell().get(0);\r\n event.target = cellElement\r\n }\r\n this._saveValueChangeEvent(event)\r\n }\r\n this._dateOption(\"value\", value)\r\n },\r\n _dateOption: function(optionName, optionValue) {\r\n if (1 === arguments.length) {\r\n return this._convertToDate(this.option(optionName), optionName)\r\n }\r\n var serializationFormat = this._getSerializationFormat(optionName);\r\n this.option(optionName, dateSerialization.serializeDate(optionValue, serializationFormat))\r\n },\r\n _shiftDate: function(zoomLevel, date, offset, reverse) {\r\n switch (zoomLevel) {\r\n case ZOOM_LEVEL.MONTH:\r\n date.setDate(date.getDate() + offset * reverse);\r\n break;\r\n case ZOOM_LEVEL.YEAR:\r\n date.setMonth(date.getMonth() + offset * reverse);\r\n break;\r\n case ZOOM_LEVEL.DECADE:\r\n date.setFullYear(date.getFullYear() + offset * reverse);\r\n break;\r\n case ZOOM_LEVEL.CENTURY:\r\n date.setFullYear(date.getFullYear() + 10 * offset * reverse)\r\n }\r\n },\r\n _moveCurrentDateByOffset: function(offset) {\r\n var baseDate = this.option(\"currentDate\");\r\n var currentDate = new Date(baseDate);\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n this._shiftDate(zoomLevel, currentDate, offset, 1);\r\n var maxDate = this._getMaxDate();\r\n var minDate = this._getMinDate();\r\n var isDateForwardInNeighborView = this._areDatesInNeighborView(zoomLevel, currentDate, baseDate);\r\n var isDateForwardInRange = inRange(currentDate, minDate, maxDate) && isDateForwardInNeighborView;\r\n var dateForward = new Date(currentDate);\r\n while (isDateForwardInRange) {\r\n if (!this._view.isDateDisabled(dateForward)) {\r\n currentDate = dateForward;\r\n break\r\n }\r\n this._shiftDate(zoomLevel, dateForward, offset, 1);\r\n isDateForwardInNeighborView = this._areDatesInNeighborView(zoomLevel, dateForward, baseDate);\r\n isDateForwardInRange = inRange(dateForward, minDate, maxDate) && isDateForwardInNeighborView\r\n }\r\n if (this._view.isDateDisabled(baseDate) || this._view.isDateDisabled(currentDate)) {\r\n this._waitRenderView(offset > 0 ? 1 : -1)\r\n } else {\r\n this.option(\"currentDate\", currentDate)\r\n }\r\n },\r\n _areDatesInSameView(zoomLevel, date1, date2) {\r\n switch (zoomLevel) {\r\n case ZOOM_LEVEL.MONTH:\r\n return date1.getMonth() === date2.getMonth();\r\n case ZOOM_LEVEL.YEAR:\r\n return date1.getYear() === date2.getYear();\r\n case ZOOM_LEVEL.DECADE:\r\n return parseInt(date1.getYear() / 10) === parseInt(date2.getYear() / 10);\r\n case ZOOM_LEVEL.CENTURY:\r\n return parseInt(date1.getYear() / 100) === parseInt(date2.getYear() / 100)\r\n }\r\n },\r\n _areDatesInNeighborView(zoomLevel, date1, date2) {\r\n switch (zoomLevel) {\r\n case ZOOM_LEVEL.MONTH:\r\n return (a = date1.getMonth(), b = date2.getMonth(), abs = Math.abs(a - b), Math.min(abs, 12 - abs)) <= 1;\r\n case ZOOM_LEVEL.YEAR:\r\n return Math.abs(date1.getYear() - date2.getYear()) <= 1;\r\n case ZOOM_LEVEL.DECADE:\r\n return Math.abs(date1.getYear() - date2.getYear()) <= 10;\r\n case ZOOM_LEVEL.CENTURY:\r\n return Math.abs(date1.getYear() - date2.getYear()) <= 100\r\n }\r\n var a, b, abs\r\n },\r\n _moveToClosestAvailableDate: function() {\r\n var baseDate = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.option(\"currentDate\");\r\n var currentDate = new Date(baseDate);\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var isCurrentDateAvailable = !this._isDateNotAvailable(currentDate);\r\n var isDateForwardAvailable = isCurrentDateAvailable;\r\n var isDateBackwardAvailable = isCurrentDateAvailable;\r\n var isDateForwardInStartView;\r\n var isDateBackwardInStartView;\r\n var dateForward = new Date(currentDate);\r\n var dateBackward = new Date(currentDate);\r\n do {\r\n if (isDateForwardAvailable) {\r\n currentDate = dateForward;\r\n break\r\n }\r\n if (isDateBackwardAvailable) {\r\n currentDate = dateBackward;\r\n break\r\n }\r\n this._shiftDate(zoomLevel, dateForward, 1, 1);\r\n this._shiftDate(zoomLevel, dateBackward, 1, -1);\r\n isDateForwardInStartView = this._areDatesInSameView(zoomLevel, dateForward, baseDate);\r\n isDateBackwardInStartView = this._areDatesInSameView(zoomLevel, dateBackward, baseDate);\r\n isDateForwardAvailable = isDateForwardInStartView && !this._isDateNotAvailable(dateForward);\r\n isDateBackwardAvailable = isDateBackwardInStartView && !this._isDateNotAvailable(dateBackward)\r\n } while (isDateForwardInStartView || isDateBackwardInStartView);\r\n this.option(\"currentDate\", currentDate)\r\n },\r\n _isDateNotAvailable: function(date) {\r\n var maxDate = this._getMaxDate();\r\n var minDate = this._getMinDate();\r\n return !inRange(date, minDate, maxDate) || this._view.isDateDisabled(date)\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._correctZoomLevel();\r\n this._initCurrentDate();\r\n this._initActions()\r\n },\r\n _correctZoomLevel: function() {\r\n var minZoomLevel = this.option(\"minZoomLevel\");\r\n var maxZoomLevel = this.option(\"maxZoomLevel\");\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n if (LEVEL_COMPARE_MAP[maxZoomLevel] < LEVEL_COMPARE_MAP[minZoomLevel]) {\r\n return\r\n }\r\n if (LEVEL_COMPARE_MAP[zoomLevel] > LEVEL_COMPARE_MAP[maxZoomLevel]) {\r\n this.option(\"zoomLevel\", maxZoomLevel)\r\n } else if (LEVEL_COMPARE_MAP[zoomLevel] < LEVEL_COMPARE_MAP[minZoomLevel]) {\r\n this.option(\"zoomLevel\", minZoomLevel)\r\n }\r\n },\r\n _initCurrentDate: function() {\r\n var currentDate = this._getNormalizedDate(this._dateOption(\"value\")) || this._getNormalizedDate(this.option(\"currentDate\"));\r\n this.option(\"currentDate\", currentDate)\r\n },\r\n _getNormalizedDate: function(date) {\r\n date = dateUtils.normalizeDate(date, this._getMinDate(), this._getMaxDate());\r\n return isDefined(date) ? this._getDate(date) : date\r\n },\r\n _initActions: function() {\r\n this._cellClickAction = this._createActionByOption(\"onCellClick\");\r\n this._onContouredChanged = this._createActionByOption(\"onContouredChanged\")\r\n },\r\n _initTemplates: function() {\r\n this._templateManager.addDefaultTemplates({\r\n cell: new FunctionTemplate((function(options) {\r\n var data = options.model;\r\n $(options.container).append($(\"\").text(data && data.text || String(data)))\r\n }))\r\n });\r\n this.callBase()\r\n },\r\n _updateCurrentDate: function(date) {\r\n if (fx.isAnimating(this._$viewsWrapper)) {\r\n fx.stop(this._$viewsWrapper, true)\r\n }\r\n var min = this._getMinDate();\r\n var max = this._getMaxDate();\r\n if (min > max) {\r\n this.option(\"currentDate\", new Date);\r\n return\r\n }\r\n var normalizedDate = this._getNormalizedDate(date);\r\n if (date.getTime() !== normalizedDate.getTime()) {\r\n this.option(\"currentDate\", new Date(normalizedDate));\r\n return\r\n }\r\n var offset = this._getViewsOffset(this._view.option(\"date\"), normalizedDate);\r\n if (0 !== offset && !this._isMaxZoomLevel() && this._isOtherViewCellClicked) {\r\n offset = 0\r\n }\r\n if (this._view && 0 !== offset && !this._suppressNavigation) {\r\n this._navigate(offset, normalizedDate)\r\n } else {\r\n this._renderNavigator();\r\n this._setViewContoured(normalizedDate);\r\n this._updateAriaId(normalizedDate)\r\n }\r\n },\r\n _setViewContoured: function(date) {\r\n if (this.option(\"skipFocusCheck\") || elementHasFocus(this._focusTarget())) {\r\n this._view.option(\"contouredDate\", date)\r\n }\r\n },\r\n _getMinDate: function() {\r\n if (this.min) {\r\n return this.min\r\n }\r\n this.min = this._dateOption(\"min\") || new Date(1e3, 0);\r\n return this.min\r\n },\r\n _getMaxDate: function() {\r\n if (this.max) {\r\n return this.max\r\n }\r\n this.max = this._dateOption(\"max\") || new Date(3e3, 0);\r\n return this.max\r\n },\r\n _getViewsOffset: function(startDate, endDate) {\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n if (zoomLevel === ZOOM_LEVEL.MONTH) {\r\n return this._getMonthsOffset(startDate, endDate)\r\n }\r\n var zoomCorrection;\r\n switch (zoomLevel) {\r\n case ZOOM_LEVEL.CENTURY:\r\n zoomCorrection = 100;\r\n break;\r\n case ZOOM_LEVEL.DECADE:\r\n zoomCorrection = 10;\r\n break;\r\n default:\r\n zoomCorrection = 1\r\n }\r\n return parseInt(endDate.getFullYear() / zoomCorrection) - parseInt(startDate.getFullYear() / zoomCorrection)\r\n },\r\n _getMonthsOffset: function(startDate, endDate) {\r\n var yearOffset = endDate.getFullYear() - startDate.getFullYear();\r\n var monthOffset = endDate.getMonth() - startDate.getMonth();\r\n return 12 * yearOffset + monthOffset\r\n },\r\n _waitRenderView: function(offset) {\r\n if (this._alreadyViewRender) {\r\n return\r\n }\r\n this._alreadyViewRender = true;\r\n var date = this._getDateByOffset(offset * this._getRtlCorrection());\r\n this._moveToClosestAvailableDate(date);\r\n this._waitRenderViewTimeout = setTimeout(() => {\r\n this._alreadyViewRender = false\r\n })\r\n },\r\n _getRtlCorrection: function() {\r\n return this.option(\"rtlEnabled\") ? -1 : 1\r\n },\r\n _getDateByOffset: function(offset, date) {\r\n var _date;\r\n date = this._getDate(null !== (_date = date) && void 0 !== _date ? _date : this.option(\"currentDate\"));\r\n var currentDay = date.getDate();\r\n var difference = dateUtils.getDifferenceInMonth(this.option(\"zoomLevel\")) * offset;\r\n date.setDate(1);\r\n date.setMonth(date.getMonth() + difference);\r\n var lastDay = dateUtils.getLastMonthDate(date).getDate();\r\n date.setDate(currentDay > lastDay ? lastDay : currentDay);\r\n return date\r\n },\r\n _focusTarget: function() {\r\n return this.$element()\r\n },\r\n _initMarkup: function() {\r\n this._renderSubmitElement();\r\n this.callBase();\r\n var $element = this.$element();\r\n $element.addClass(CALENDAR_CLASS);\r\n this._renderBody();\r\n $element.append(this.$body);\r\n this._renderViews();\r\n this._renderNavigator();\r\n $element.append(this._navigator.$element());\r\n this._renderSwipeable();\r\n this._renderFooter();\r\n this._updateAriaSelected();\r\n this._updateAriaId();\r\n this._moveToClosestAvailableDate()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._setViewContoured(this.option(\"currentDate\"))\r\n },\r\n _renderBody: function() {\r\n if (!this._$viewsWrapper) {\r\n this.$body = $(\"
\").addClass(CALENDAR_BODY_CLASS);\r\n this._$viewsWrapper = $(\"
\").addClass(CALENDAR_VIEWS_WRAPPER_CLASS);\r\n this.$body.append(this._$viewsWrapper)\r\n }\r\n },\r\n _getKeyboardListeners() {\r\n return this.callBase().concat([this._view])\r\n },\r\n _renderViews: function() {\r\n this.$element().addClass(CALENDAR_VIEW_CLASS + \"-\" + this.option(\"zoomLevel\"));\r\n var currentDate = this.option(\"currentDate\");\r\n this._view = this._renderSpecificView(currentDate);\r\n if (hasWindow()) {\r\n var beforeDate = this._getDateByOffset(-1, currentDate);\r\n this._beforeView = this._isViewAvailable(beforeDate) ? this._renderSpecificView(beforeDate) : null;\r\n var afterDate = this._getDateByOffset(1, currentDate);\r\n afterDate.setDate(1);\r\n this._afterView = this._isViewAvailable(afterDate) ? this._renderSpecificView(afterDate) : null\r\n }\r\n this._translateViews()\r\n },\r\n _renderSpecificView: function(date) {\r\n var specificView = Views[this.option(\"zoomLevel\")];\r\n var $view = $(\"
\").appendTo(this._$viewsWrapper);\r\n var config = this._viewConfig(date);\r\n return this._createComponent($view, specificView, config)\r\n },\r\n _viewConfig: function(date) {\r\n var disabledDates = this.option(\"disabledDates\");\r\n disabledDates = isFunction(disabledDates) ? this._injectComponent(disabledDates.bind(this)) : disabledDates;\r\n return {\r\n date: date,\r\n min: this._getMinDate(),\r\n max: this._getMaxDate(),\r\n firstDayOfWeek: this.option(\"firstDayOfWeek\"),\r\n value: this._dateOption(\"value\"),\r\n tabIndex: void 0,\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n hoverStateEnabled: this.option(\"hoverStateEnabled\"),\r\n disabledDates: disabledDates,\r\n onCellClick: this._cellClickHandler.bind(this),\r\n cellTemplate: this._getTemplateByOption(\"cellTemplate\"),\r\n allowValueSelection: this._isMaxZoomLevel(),\r\n _todayDate: this.option(\"_todayDate\")\r\n }\r\n },\r\n _injectComponent: function(func) {\r\n var that = this;\r\n return function(params) {\r\n extend(params, {\r\n component: that\r\n });\r\n return func(params)\r\n }\r\n },\r\n _isViewAvailable: function(date) {\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var min = dateUtils.getViewMinBoundaryDate(zoomLevel, this._getMinDate());\r\n var max = dateUtils.getViewMaxBoundaryDate(zoomLevel, this._getMaxDate());\r\n return dateUtils.dateInRange(date, min, max)\r\n },\r\n _translateViews: function() {\r\n move(this._view.$element(), {\r\n left: 0,\r\n top: 0\r\n });\r\n this._beforeView && move(this._beforeView.$element(), {\r\n left: this._getViewPosition(-1),\r\n top: 0\r\n });\r\n this._afterView && move(this._afterView.$element(), {\r\n left: this._getViewPosition(1),\r\n top: 0\r\n })\r\n },\r\n _getViewPosition: function(coefficient) {\r\n var rtlCorrection = this.option(\"rtlEnabled\") ? -1 : 1;\r\n return 100 * coefficient * rtlCorrection + \"%\"\r\n },\r\n _cellClickHandler: function(e) {\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var nextView = dateUtils.getViewDown(zoomLevel);\r\n var isMaxZoomLevel = this._isMaxZoomLevel();\r\n if (nextView && !isMaxZoomLevel) {\r\n this._navigateDown(e.event.currentTarget)\r\n } else {\r\n var newValue = this._updateTimeComponent(e.value);\r\n this._dateValue(newValue, e.event);\r\n this._cellClickAction(e)\r\n }\r\n },\r\n _updateTimeComponent: function(date) {\r\n var result = new Date(date);\r\n var currentValue = this._dateOption(\"value\");\r\n if (currentValue) {\r\n result.setHours(currentValue.getHours());\r\n result.setMinutes(currentValue.getMinutes());\r\n result.setSeconds(currentValue.getSeconds());\r\n result.setMilliseconds(currentValue.getMilliseconds())\r\n }\r\n return result\r\n },\r\n _isMaxZoomLevel: function() {\r\n return this.option(\"zoomLevel\") === this.option(\"maxZoomLevel\")\r\n },\r\n _navigateDown: function(cell) {\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n if (this._isMaxZoomLevel()) {\r\n return\r\n }\r\n var nextView = dateUtils.getViewDown(zoomLevel);\r\n if (!nextView) {\r\n return\r\n }\r\n var newCurrentDate = this._view.option(\"contouredDate\") || this._view.option(\"date\");\r\n if (cell) {\r\n newCurrentDate = $(cell).data(CALENDAR_DATE_VALUE_KEY)\r\n }\r\n this._isOtherViewCellClicked = true;\r\n this.option(\"currentDate\", newCurrentDate);\r\n this.option(\"zoomLevel\", nextView);\r\n this._isOtherViewCellClicked = false;\r\n this._renderNavigator();\r\n this._animateShowView();\r\n this._moveToClosestAvailableDate();\r\n this._setViewContoured(this._getNormalizedDate(this.option(\"currentDate\")))\r\n },\r\n _renderNavigator: function() {\r\n if (!this._navigator) {\r\n this._navigator = new Navigator($(\"
\"), this._navigatorConfig())\r\n }\r\n this._navigator.option(\"text\", this._view.getNavigatorCaption());\r\n this._updateButtonsVisibility()\r\n },\r\n _navigatorConfig: function() {\r\n return {\r\n text: this._view.getNavigatorCaption(),\r\n onClick: this._navigatorClickHandler.bind(this),\r\n onCaptionClick: this._navigateUp.bind(this),\r\n rtlEnabled: this.option(\"rtlEnabled\")\r\n }\r\n },\r\n _navigatorClickHandler: function(e) {\r\n var currentDate = this._getDateByOffset(e.direction, this.option(\"currentDate\"));\r\n this._moveToClosestAvailableDate(currentDate)\r\n },\r\n _navigateUp: function() {\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var nextView = dateUtils.getViewUp(zoomLevel);\r\n if (!nextView || this._isMinZoomLevel(zoomLevel)) {\r\n return\r\n }\r\n this.option(\"zoomLevel\", nextView);\r\n this._renderNavigator();\r\n this._animateShowView();\r\n this._moveToClosestAvailableDate();\r\n this._setViewContoured(this._getNormalizedDate(this.option(\"currentDate\")))\r\n },\r\n _isMinZoomLevel: function(zoomLevel) {\r\n var min = this._getMinDate();\r\n var max = this._getMaxDate();\r\n return dateUtils.sameView(zoomLevel, min, max) || this.option(\"minZoomLevel\") === zoomLevel\r\n },\r\n _updateButtonsVisibility: function() {\r\n this._navigator.toggleButton(\"next\", !isDefined(this._getRequiredView(\"next\")));\r\n this._navigator.toggleButton(\"prev\", !isDefined(this._getRequiredView(\"prev\")))\r\n },\r\n _renderSwipeable: function() {\r\n if (!this._swipeable) {\r\n this._swipeable = this._createComponent(this.$element(), Swipeable, {\r\n onStart: this._swipeStartHandler.bind(this),\r\n onUpdated: this._swipeUpdateHandler.bind(this),\r\n onEnd: this._swipeEndHandler.bind(this),\r\n itemSizeFunc: this._viewWidth.bind(this)\r\n })\r\n }\r\n },\r\n _swipeStartHandler: function(e) {\r\n fx.stop(this._$viewsWrapper, true);\r\n e.event.maxLeftOffset = this._getRequiredView(\"next\") ? 1 : 0;\r\n e.event.maxRightOffset = this._getRequiredView(\"prev\") ? 1 : 0\r\n },\r\n _getRequiredView: function(name) {\r\n var view;\r\n var isRtl = this.option(\"rtlEnabled\");\r\n if (\"next\" === name) {\r\n view = isRtl ? this._beforeView : this._afterView\r\n } else if (\"prev\" === name) {\r\n view = isRtl ? this._afterView : this._beforeView\r\n }\r\n return view\r\n },\r\n _swipeUpdateHandler: function(e) {\r\n var offset = e.event.offset;\r\n move(this._$viewsWrapper, {\r\n left: offset * this._viewWidth(),\r\n top: 0\r\n });\r\n this._updateNavigatorCaption(offset)\r\n },\r\n _swipeEndHandler: function(e) {\r\n var targetOffset = e.event.targetOffset;\r\n var moveOffset = !targetOffset ? 0 : targetOffset / Math.abs(targetOffset);\r\n if (0 === moveOffset) {\r\n this._animateWrapper(0, ANIMATION_DURATION_SHOW_VIEW);\r\n return\r\n }\r\n var date = this._getDateByOffset(-moveOffset * this._getRtlCorrection());\r\n if (this._isDateInInvalidRange(date)) {\r\n if (moveOffset >= 0) {\r\n date = new Date(this._getMinDate())\r\n } else {\r\n date = new Date(this._getMaxDate())\r\n }\r\n }\r\n this.option(\"currentDate\", date)\r\n },\r\n _viewWidth: function() {\r\n if (!this._viewWidthValue) {\r\n this._viewWidthValue = getWidth(this.$element())\r\n }\r\n return this._viewWidthValue\r\n },\r\n _updateNavigatorCaption: function(offset) {\r\n offset *= this._getRtlCorrection();\r\n var view = this._view;\r\n if (offset > .5 && this._beforeView) {\r\n view = this._beforeView\r\n } else if (offset < -.5 && this._afterView) {\r\n view = this._afterView\r\n }\r\n this._navigator.option(\"text\", view.getNavigatorCaption())\r\n },\r\n _isDateInInvalidRange: function(date) {\r\n if (this._view.isBoundary(date)) {\r\n return\r\n }\r\n var min = this._getMinDate();\r\n var max = this._getMaxDate();\r\n var normalizedDate = dateUtils.normalizeDate(date, min, max);\r\n return normalizedDate === min || normalizedDate === max\r\n },\r\n _renderFooter: function() {\r\n var showTodayButton = this.option(\"showTodayButton\");\r\n if (showTodayButton) {\r\n var $todayButton = this._createComponent($(\"\"), Button, {\r\n focusStateEnabled: false,\r\n text: messageLocalization.format(\"dxCalendar-todayButtonText\"),\r\n onClick: function(args) {\r\n this._toTodayView(args)\r\n }.bind(this),\r\n integrationOptions: {}\r\n }).$element().addClass(CALENDAR_TODAY_BUTTON_CLASS);\r\n this._$footer = $(\"
\").addClass(CALENDAR_FOOTER_CLASS).append($todayButton);\r\n this.$element().append(this._$footer)\r\n }\r\n this.$element().toggleClass(CALENDAR_HAS_FOOTER_CLASS, showTodayButton)\r\n },\r\n _renderSubmitElement: function() {\r\n this._$submitElement = $(\"\").attr(\"type\", \"hidden\").appendTo(this.$element());\r\n this._setSubmitValue(this.option(\"value\"))\r\n },\r\n _setSubmitValue: function(value) {\r\n var dateValue = this._convertToDate(value);\r\n this._getSubmitElement().val(dateSerialization.serializeDate(dateValue, CALENDAR_INPUT_STANDARD_PATTERN))\r\n },\r\n _getSubmitElement: function() {\r\n return this._$submitElement\r\n },\r\n _animateShowView: function() {\r\n fx.stop(this._view.$element(), true);\r\n return this._popAnimationView(this._view, POP_ANIMATION_FROM, POP_ANIMATION_TO, ANIMATION_DURATION_SHOW_VIEW).promise()\r\n },\r\n _popAnimationView: function(view, from, to, duration) {\r\n return fx.animate(view.$element(), {\r\n type: \"pop\",\r\n from: {\r\n scale: from,\r\n opacity: from\r\n },\r\n to: {\r\n scale: to,\r\n opacity: to\r\n },\r\n duration: duration\r\n })\r\n },\r\n _navigate: function(offset, value) {\r\n if (0 !== offset && 1 !== Math.abs(offset) && this._isViewAvailable(value)) {\r\n var newView = this._renderSpecificView(value);\r\n if (offset > 0) {\r\n this._afterView && this._afterView.$element().remove();\r\n this._afterView = newView\r\n } else {\r\n this._beforeView && this._beforeView.$element().remove();\r\n this._beforeView = newView\r\n }\r\n this._translateViews()\r\n }\r\n var rtlCorrection = this._getRtlCorrection();\r\n var offsetSign = offset > 0 ? 1 : offset < 0 ? -1 : 0;\r\n var endPosition = -rtlCorrection * offsetSign * this._viewWidth();\r\n var viewsWrapperPosition = this._$viewsWrapper.position().left;\r\n if (viewsWrapperPosition !== endPosition) {\r\n if (this._preventViewChangeAnimation) {\r\n this._wrapperAnimationEndHandler(offset, value)\r\n } else {\r\n this._animateWrapper(endPosition, ANIMATION_DURATION_SHOW_VIEW).done(this._wrapperAnimationEndHandler.bind(this, offset, value))\r\n }\r\n }\r\n },\r\n _animateWrapper: function(to, duration) {\r\n return fx.animate(this._$viewsWrapper, {\r\n type: \"slide\",\r\n from: {\r\n left: this._$viewsWrapper.position().left\r\n },\r\n to: {\r\n left: to\r\n },\r\n duration: duration\r\n })\r\n },\r\n _getDate: value => new Date(value),\r\n _toTodayView: function(args) {\r\n this._saveValueChangeEvent(args.event);\r\n var today = new Date;\r\n if (this._isMaxZoomLevel()) {\r\n this._dateOption(\"value\", today);\r\n return\r\n }\r\n this._preventViewChangeAnimation = true;\r\n this.option(\"zoomLevel\", this.option(\"maxZoomLevel\"));\r\n this._dateOption(\"value\", today);\r\n this._animateShowView();\r\n this._preventViewChangeAnimation = false\r\n },\r\n _wrapperAnimationEndHandler: function(offset, newDate) {\r\n this._rearrangeViews(offset);\r\n this._translateViews();\r\n this._resetLocation();\r\n this._renderNavigator();\r\n this._setViewContoured(newDate);\r\n this._updateAriaId(newDate)\r\n },\r\n _rearrangeViews: function(offset) {\r\n if (0 === offset) {\r\n return\r\n }\r\n var viewOffset;\r\n var viewToCreateKey;\r\n var viewToRemoveKey;\r\n if (offset < 0) {\r\n viewOffset = 1;\r\n viewToCreateKey = \"_beforeView\";\r\n viewToRemoveKey = \"_afterView\"\r\n } else {\r\n viewOffset = -1;\r\n viewToCreateKey = \"_afterView\";\r\n viewToRemoveKey = \"_beforeView\"\r\n }\r\n if (!this[viewToCreateKey]) {\r\n return\r\n }\r\n var destinationDate = this[viewToCreateKey].option(\"date\");\r\n if (this[viewToRemoveKey]) {\r\n this[viewToRemoveKey].$element().remove()\r\n }\r\n if (offset === viewOffset) {\r\n this[viewToRemoveKey] = this._view\r\n } else {\r\n this[viewToRemoveKey] = this._renderSpecificView(this._getDateByOffset(viewOffset, destinationDate));\r\n this._view.$element().remove()\r\n }\r\n this._view = this[viewToCreateKey];\r\n var dateByOffset = this._getDateByOffset(-viewOffset, destinationDate);\r\n this[viewToCreateKey] = this._isViewAvailable(dateByOffset) ? this._renderSpecificView(dateByOffset) : null\r\n },\r\n _resetLocation: function() {\r\n move(this._$viewsWrapper, {\r\n left: 0,\r\n top: 0\r\n })\r\n },\r\n _clean: function() {\r\n this.callBase();\r\n this._clearViewWidthCache();\r\n delete this._$viewsWrapper;\r\n delete this._navigator;\r\n delete this._$footer\r\n },\r\n _clearViewWidthCache: function() {\r\n delete this._viewWidthValue\r\n },\r\n _disposeViews: function() {\r\n this._view.$element().remove();\r\n this._beforeView && this._beforeView.$element().remove();\r\n this._afterView && this._afterView.$element().remove();\r\n delete this._view;\r\n delete this._beforeView;\r\n delete this._afterView\r\n },\r\n _dispose: function() {\r\n clearTimeout(this._waitRenderViewTimeout);\r\n this.callBase()\r\n },\r\n _refreshViews: function() {\r\n this._disposeViews();\r\n this._renderViews()\r\n },\r\n _visibilityChanged: function() {\r\n this._translateViews()\r\n },\r\n _focusInHandler: function() {\r\n this.callBase.apply(this, arguments);\r\n this._view.option(\"contouredDate\", this.option(\"currentDate\"))\r\n },\r\n _focusOutHandler: function() {\r\n this.callBase.apply(this, arguments);\r\n this._view.option(\"contouredDate\", null)\r\n },\r\n _updateViewsValue: function(value) {\r\n var newValue = value ? new Date(value) : null;\r\n this._view.option(\"value\", newValue);\r\n this._beforeView && this._beforeView.option(\"value\", newValue);\r\n this._afterView && this._afterView.option(\"value\", newValue)\r\n },\r\n _updateAriaSelected: function(value, previousValue) {\r\n var _value;\r\n value = null !== (_value = value) && void 0 !== _value ? _value : this._dateOption(\"value\");\r\n var $prevSelectedCell = this._view._getCellByDate(previousValue);\r\n var $selectedCell = this._view._getCellByDate(value);\r\n this.setAria(\"selected\", void 0, $prevSelectedCell);\r\n this.setAria(\"selected\", true, $selectedCell);\r\n if (value && this.option(\"currentDate\").getTime() === value.getTime()) {\r\n this._updateAriaId(value)\r\n }\r\n },\r\n _updateAriaId: function(value) {\r\n var _value2;\r\n value = null !== (_value2 = value) && void 0 !== _value2 ? _value2 : this.option(\"currentDate\");\r\n var ariaId = \"dx-\" + new Guid;\r\n var $newCell = this._view._getCellByDate(value);\r\n this.setAria(\"id\", ariaId, $newCell);\r\n this.setAria(\"activedescendant\", ariaId);\r\n this._onContouredChanged(ariaId)\r\n },\r\n _suppressingNavigation: function(callback, args) {\r\n this._suppressNavigation = true;\r\n callback.apply(this, args);\r\n delete this._suppressNavigation\r\n },\r\n _optionChanged: function(args) {\r\n var value = args.value;\r\n var previousValue = args.previousValue;\r\n switch (args.name) {\r\n case \"width\":\r\n this.callBase(args);\r\n this._clearViewWidthCache();\r\n break;\r\n case \"min\":\r\n case \"max\":\r\n this.min = void 0;\r\n this.max = void 0;\r\n this._suppressingNavigation(this._updateCurrentDate, [this.option(\"currentDate\")]);\r\n this._refreshViews();\r\n this._renderNavigator();\r\n break;\r\n case \"firstDayOfWeek\":\r\n this._refreshViews();\r\n this._updateButtonsVisibility();\r\n break;\r\n case \"currentDate\":\r\n this.setAria(\"id\", void 0, this._view._getCellByDate(previousValue));\r\n this._updateCurrentDate(value);\r\n break;\r\n case \"zoomLevel\":\r\n this.$element().removeClass(CALENDAR_VIEW_CLASS + \"-\" + previousValue);\r\n this._correctZoomLevel();\r\n this._refreshViews();\r\n this._renderNavigator();\r\n this._updateAriaId();\r\n break;\r\n case \"minZoomLevel\":\r\n case \"maxZoomLevel\":\r\n this._correctZoomLevel();\r\n this._updateButtonsVisibility();\r\n break;\r\n case \"value\":\r\n value = this._convertToDate(value);\r\n previousValue = this._convertToDate(previousValue);\r\n this._updateAriaSelected(value, previousValue);\r\n this.option(\"currentDate\", isDefined(value) ? new Date(value) : new Date);\r\n this._updateViewsValue(value);\r\n this._setSubmitValue(value);\r\n this.callBase(args);\r\n break;\r\n case \"onCellClick\":\r\n this._view.option(\"onCellClick\", value);\r\n break;\r\n case \"onContouredChanged\":\r\n this._onContouredChanged = this._createActionByOption(\"onContouredChanged\");\r\n break;\r\n case \"disabledDates\":\r\n case \"dateSerializationFormat\":\r\n case \"cellTemplate\":\r\n case \"showTodayButton\":\r\n this._invalidate();\r\n break;\r\n case \"skipFocusCheck\":\r\n break;\r\n case \"_todayDate\":\r\n this._refreshViews();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n getContouredDate: function() {\r\n return this._view.option(\"contouredDate\")\r\n }\r\n});\r\nregisterComponent(\"dxCalendar\", Calendar);\r\nexport default Calendar;\r\n","/**\r\n * DevExtreme (esm/ui/calendar.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Calendar from \"./calendar/ui.calendar\";\r\nexport default Calendar;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.strategy.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport Class from \"../../core/class\";\r\nimport dateLocalization from \"../../localization/date\";\r\nvar abstract = Class.abstract;\r\nvar DateBoxStrategy = Class.inherit({\r\n ctor: function(dateBox) {\r\n this.dateBox = dateBox\r\n },\r\n widgetOption: function() {\r\n return this._widget && this._widget.option.apply(this._widget, arguments)\r\n },\r\n _renderWidget: function(element) {\r\n element = element || $(\"
\");\r\n this._widget = this._createWidget(element);\r\n this._widget.$element().appendTo(this._getWidgetContainer())\r\n },\r\n _createWidget: function(element) {\r\n var widgetName = this._getWidgetName();\r\n var widgetOptions = this._getWidgetOptions();\r\n return this.dateBox._createComponent(element, widgetName, widgetOptions)\r\n },\r\n _getWidgetOptions: abstract,\r\n _getWidgetName: abstract,\r\n getDefaultOptions: function() {\r\n return {\r\n mode: \"text\"\r\n }\r\n },\r\n getDisplayFormat: abstract,\r\n supportedKeys: noop,\r\n getKeyboardListener: noop,\r\n customizeButtons: noop,\r\n getParsedText: function(text, format) {\r\n var value = dateLocalization.parse(text, format);\r\n return value ? value : dateLocalization.parse(text)\r\n },\r\n renderInputMinMax: noop,\r\n renderOpenedState: function() {\r\n this._updateValue()\r\n },\r\n popupConfig: abstract,\r\n _dimensionChanged: function() {\r\n var _this$_getPopup;\r\n null === (_this$_getPopup = this._getPopup()) || void 0 === _this$_getPopup ? void 0 : _this$_getPopup.repaint()\r\n },\r\n renderPopupContent: function() {\r\n var popup = this._getPopup();\r\n this._renderWidget();\r\n var $popupContent = popup.$content().parent();\r\n eventsEngine.off($popupContent, \"mousedown\");\r\n eventsEngine.on($popupContent, \"mousedown\", this._preventFocusOnPopup.bind(this))\r\n },\r\n getFirstPopupElement: noop,\r\n getLastPopupElement: noop,\r\n _preventFocusOnPopup: function(e) {\r\n e.preventDefault()\r\n },\r\n _getWidgetContainer: function() {\r\n return this._getPopup().$content()\r\n },\r\n _getPopup: function() {\r\n return this.dateBox._popup\r\n },\r\n popupShowingHandler: noop,\r\n popupHiddenHandler: noop,\r\n _updateValue: function() {\r\n this._widget && this._widget.option(\"value\", this.dateBoxValue())\r\n },\r\n useCurrentDateByDefault: noop,\r\n getDefaultDate: function() {\r\n return new Date\r\n },\r\n textChangedHandler: noop,\r\n renderValue: function() {\r\n if (this.dateBox.option(\"opened\")) {\r\n this._updateValue()\r\n }\r\n },\r\n getValue: function() {\r\n return this._widget.option(\"value\")\r\n },\r\n isAdaptivityChanged: function() {\r\n return false\r\n },\r\n dispose: function() {\r\n var popup = this._getPopup();\r\n if (popup) {\r\n popup.$content().empty()\r\n }\r\n },\r\n dateBoxValue: function() {\r\n if (arguments.length) {\r\n return this.dateBox.dateValue.apply(this.dateBox, arguments)\r\n } else {\r\n return this.dateBox.dateOption.apply(this.dateBox, [\"value\"])\r\n }\r\n }\r\n});\r\nexport default DateBoxStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.strategy.calendar.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Calendar from \"../calendar\";\r\nimport DateBoxStrategy from \"./ui.date_box.strategy\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport {\r\n splitPair\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isFunction,\r\n isEmptyObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport messageLocalization from \"../../localization/message\";\r\nvar CalendarStrategy = DateBoxStrategy.inherit({\r\n NAME: \"Calendar\",\r\n supportedKeys: function() {\r\n var homeEndHandler = function(e) {\r\n if (this.option(\"opened\")) {\r\n e.preventDefault();\r\n return true\r\n }\r\n return false\r\n };\r\n return {\r\n rightArrow: function() {\r\n if (this.option(\"opened\")) {\r\n return true\r\n }\r\n },\r\n leftArrow: function() {\r\n if (this.option(\"opened\")) {\r\n return true\r\n }\r\n },\r\n enter: function(e) {\r\n if (this.dateBox.option(\"opened\")) {\r\n e.preventDefault();\r\n if (this._widget.option(\"zoomLevel\") === this._widget.option(\"maxZoomLevel\")) {\r\n var viewValue = this._getContouredValue();\r\n var lastActionElement = this._lastActionElement;\r\n var shouldCloseDropDown = this._closeDropDownByEnter();\r\n if (shouldCloseDropDown && viewValue && \"calendar\" === lastActionElement) {\r\n this.dateBoxValue(viewValue, e)\r\n }\r\n shouldCloseDropDown && this.dateBox.close();\r\n this.dateBox._valueChangeEventHandler(e);\r\n return !shouldCloseDropDown\r\n } else {\r\n return true\r\n }\r\n } else {\r\n this.dateBox._valueChangeEventHandler(e)\r\n }\r\n }.bind(this),\r\n home: homeEndHandler,\r\n end: homeEndHandler\r\n }\r\n },\r\n getDisplayFormat: function(displayFormat) {\r\n return displayFormat || \"shortdate\"\r\n },\r\n _closeDropDownByEnter: () => true,\r\n _getWidgetName: function() {\r\n return Calendar\r\n },\r\n _getContouredValue: function() {\r\n return this._widget._view.option(\"contouredDate\")\r\n },\r\n getKeyboardListener() {\r\n return this._widget\r\n },\r\n _getWidgetOptions: function() {\r\n var disabledDates = this.dateBox.option(\"disabledDates\");\r\n return extend(this.dateBox.option(\"calendarOptions\"), {\r\n value: this.dateBoxValue() || null,\r\n dateSerializationFormat: null,\r\n min: this.dateBox.dateOption(\"min\"),\r\n max: this.dateBox.dateOption(\"max\"),\r\n onValueChanged: this._valueChangedHandler.bind(this),\r\n onCellClick: this._cellClickHandler.bind(this),\r\n tabIndex: null,\r\n disabledDates: isFunction(disabledDates) ? this._injectComponent(disabledDates.bind(this.dateBox)) : disabledDates,\r\n onContouredChanged: this._refreshActiveDescendant.bind(this),\r\n skipFocusCheck: true\r\n })\r\n },\r\n _injectComponent: function(func) {\r\n var that = this;\r\n return function(params) {\r\n extend(params, {\r\n component: that.dateBox\r\n });\r\n return func(params)\r\n }\r\n },\r\n _refreshActiveDescendant: function(e) {\r\n this._lastActionElement = \"calendar\";\r\n this.dateBox.setAria(\"activedescendant\", e.actionValue)\r\n },\r\n popupConfig: function(_popupConfig) {\r\n var toolbarItems = _popupConfig.toolbarItems;\r\n var buttonsLocation = this.dateBox.option(\"buttonsLocation\");\r\n var position = [];\r\n if (\"default\" !== buttonsLocation) {\r\n position = splitPair(buttonsLocation)\r\n } else {\r\n position = [\"bottom\", \"center\"]\r\n }\r\n if (\"useButtons\" === this.dateBox.option(\"applyValueMode\") && this._isCalendarVisible()) {\r\n toolbarItems.unshift({\r\n widget: \"dxButton\",\r\n toolbar: position[0],\r\n location: \"after\" === position[1] ? \"before\" : position[1],\r\n options: {\r\n onInitialized: function(e) {\r\n e.component.registerKeyHandler(\"escape\", this._escapeHandler.bind(this))\r\n }.bind(this),\r\n onClick: args => {\r\n this._widget._toTodayView(args)\r\n },\r\n text: messageLocalization.format(\"dxCalendar-todayButtonText\"),\r\n type: \"today\"\r\n }\r\n })\r\n }\r\n return extend(true, _popupConfig, {\r\n toolbarItems: toolbarItems,\r\n position: {\r\n collision: \"flipfit flip\"\r\n },\r\n width: \"auto\"\r\n })\r\n },\r\n _isCalendarVisible: function() {\r\n return isEmptyObject(this.dateBox.option(\"calendarOptions\")) || false !== this.dateBox.option(\"calendarOptions.visible\")\r\n },\r\n _escapeHandler: function() {\r\n this.dateBox.close();\r\n this.dateBox.focus()\r\n },\r\n _valueChangedHandler: function(e) {\r\n var value = e.value;\r\n var prevValue = e.previousValue;\r\n if (dateUtils.sameDate(value, prevValue) && dateUtils.sameHoursAndMinutes(value, prevValue)) {\r\n return\r\n }\r\n if (\"instantly\" === this.dateBox.option(\"applyValueMode\")) {\r\n this.dateBoxValue(this.getValue(), e.event)\r\n }\r\n },\r\n _updateValue: function() {\r\n if (!this._widget) {\r\n return\r\n }\r\n this._widget.option(\"value\", this.dateBoxValue())\r\n },\r\n textChangedHandler: function() {\r\n this._lastActionElement = \"input\";\r\n if (this.dateBox.option(\"opened\") && this._widget) {\r\n this._updateValue(true)\r\n }\r\n },\r\n _cellClickHandler: function(e) {\r\n var dateBox = this.dateBox;\r\n if (\"instantly\" === dateBox.option(\"applyValueMode\")) {\r\n dateBox.option(\"opened\", false);\r\n this.dateBoxValue(this.getValue(), e.event)\r\n }\r\n }\r\n});\r\nexport default CalendarStrategy;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scroll_view/utils/scroll_direction.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n DIRECTION_VERTICAL,\r\n DIRECTION_HORIZONTAL,\r\n DIRECTION_BOTH\r\n} from \"../common/consts\";\r\nexport class ScrollDirection {\r\n constructor(direction) {\r\n this.DIRECTION_HORIZONTAL = \"horizontal\";\r\n this.DIRECTION_VERTICAL = \"vertical\";\r\n this.DIRECTION_BOTH = \"both\";\r\n this.direction = null !== direction && void 0 !== direction ? direction : DIRECTION_VERTICAL\r\n }\r\n get isHorizontal() {\r\n return this.direction === DIRECTION_HORIZONTAL || this.direction === DIRECTION_BOTH\r\n }\r\n get isVertical() {\r\n return this.direction === DIRECTION_VERTICAL || this.direction === DIRECTION_BOTH\r\n }\r\n get isBoth() {\r\n return this.direction === DIRECTION_BOTH\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scroll_view/utils/convert_location.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined,\r\n isPlainObject\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n ensureDefined\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n ScrollDirection\r\n} from \"./scroll_direction\";\r\nexport function convertToLocation(location, direction) {\r\n if (isPlainObject(location)) {\r\n var left = ensureDefined(location.left, location.x);\r\n var top = ensureDefined(location.top, location.y);\r\n return {\r\n left: isDefined(left) ? left : void 0,\r\n top: isDefined(top) ? top : void 0\r\n }\r\n }\r\n var {\r\n isHorizontal: isHorizontal,\r\n isVertical: isVertical\r\n } = new ScrollDirection(direction);\r\n return {\r\n left: isHorizontal && isDefined(location) ? location : void 0,\r\n top: isVertical && isDefined(location) ? location : void 0\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_view_roller.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport Scrollable from \"../scroll_view/ui.scrollable.old\";\r\nimport devices from \"../../core/devices\";\r\nimport fx from \"../../animation/fx\";\r\nimport {\r\n resetPosition\r\n} from \"../../animation/translator\";\r\nimport {\r\n convertToLocation\r\n} from \"../../renovation/ui/scroll_view/utils/convert_location\";\r\nvar DATEVIEW_ROLLER_CLASS = \"dx-dateviewroller\";\r\nvar DATEVIEW_ROLLER_ACTIVE_CLASS = \"dx-state-active\";\r\nvar DATEVIEW_ROLLER_CURRENT_CLASS = \"dx-dateviewroller-current\";\r\nvar DATEVIEW_ROLLER_ITEM_CLASS = \"dx-dateview-item\";\r\nvar DATEVIEW_ROLLER_ITEM_SELECTED_CLASS = \"dx-dateview-item-selected\";\r\nvar DATEVIEW_ROLLER_ITEM_SELECTED_FRAME_CLASS = \"dx-dateview-item-selected-frame\";\r\nvar DATEVIEW_ROLLER_ITEM_SELECTED_BORDER_CLASS = \"dx-dateview-item-selected-border\";\r\nclass DateViewRoller extends Scrollable {\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n showScrollbar: \"never\",\r\n useNative: false,\r\n selectedIndex: 0,\r\n bounceEnabled: false,\r\n items: [],\r\n showOnClick: false,\r\n onClick: null,\r\n onSelectedIndexChanged: null,\r\n scrollByContent: true\r\n })\r\n }\r\n _init() {\r\n super._init();\r\n this.option(\"onVisibilityChange\", this._visibilityChangedHandler.bind(this));\r\n this.option(\"onEnd\", this._endActionHandler.bind(this))\r\n }\r\n _render() {\r\n super._render();\r\n this._renderSelectedItemFrame();\r\n this.$element().addClass(DATEVIEW_ROLLER_CLASS);\r\n this._renderContainerClick();\r\n this._renderItems();\r\n this._renderSelectedValue();\r\n this._renderItemsClick();\r\n this._renderWheelEvent();\r\n this._renderSelectedIndexChanged()\r\n }\r\n _renderSelectedIndexChanged() {\r\n this._selectedIndexChanged = this._createActionByOption(\"onSelectedIndexChanged\")\r\n }\r\n _renderWheelEvent() {\r\n eventsEngine.on($(this.container()), \"dxmousewheel\", e => {\r\n this._isWheelScrolled = true\r\n })\r\n }\r\n _renderContainerClick() {\r\n if (!this.option(\"showOnClick\")) {\r\n return\r\n }\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n var clickAction = this._createActionByOption(\"onClick\");\r\n eventsEngine.off($(this.container()), eventName);\r\n eventsEngine.on($(this.container()), eventName, (function(e) {\r\n clickAction({\r\n event: e\r\n })\r\n }))\r\n }\r\n _renderItems() {\r\n var items = this.option(\"items\") || [];\r\n var $items = $();\r\n $(this.content()).empty();\r\n items.forEach((function(item) {\r\n $items = $items.add($(\"
\").addClass(DATEVIEW_ROLLER_ITEM_CLASS).append(item))\r\n }));\r\n $(this.content()).append($items);\r\n this._$items = $items;\r\n this.update()\r\n }\r\n _renderSelectedItemFrame() {\r\n $(\"
\").addClass(DATEVIEW_ROLLER_ITEM_SELECTED_FRAME_CLASS).append($(\"
\").addClass(DATEVIEW_ROLLER_ITEM_SELECTED_BORDER_CLASS)).appendTo($(this.container()))\r\n }\r\n _renderSelectedValue(selectedIndex) {\r\n var index = this._fitIndex(null !== selectedIndex && void 0 !== selectedIndex ? selectedIndex : this.option(\"selectedIndex\"));\r\n this._moveTo({\r\n top: this._getItemPosition(index)\r\n });\r\n this._renderActiveStateItem()\r\n }\r\n _fitIndex(index) {\r\n var items = this.option(\"items\") || [];\r\n var itemCount = items.length;\r\n if (index >= itemCount) {\r\n return itemCount - 1\r\n }\r\n if (index < 0) {\r\n return 0\r\n }\r\n return index\r\n }\r\n _getItemPosition(index) {\r\n return Math.round(this._itemHeight() * index)\r\n }\r\n _renderItemsClick() {\r\n var itemSelector = this._getItemSelector();\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n eventsEngine.off(this.$element(), eventName, itemSelector);\r\n eventsEngine.on(this.$element(), eventName, itemSelector, this._itemClickHandler.bind(this))\r\n }\r\n _getItemSelector() {\r\n return \".\" + DATEVIEW_ROLLER_ITEM_CLASS\r\n }\r\n _itemClickHandler(e) {\r\n this.option(\"selectedIndex\", this._itemElementIndex(e.currentTarget))\r\n }\r\n _itemElementIndex(itemElement) {\r\n return this._itemElements().index(itemElement)\r\n }\r\n _itemElements() {\r\n return this.$element().find(this._getItemSelector())\r\n }\r\n _renderActiveStateItem() {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n each(this._$items, (function(index) {\r\n $(this).toggleClass(DATEVIEW_ROLLER_ITEM_SELECTED_CLASS, selectedIndex === index)\r\n }))\r\n }\r\n _shouldScrollToNeighborItem() {\r\n return \"desktop\" === devices.real().deviceType && this._isWheelScrolled\r\n }\r\n _moveTo(targetLocation) {\r\n var {\r\n top: top,\r\n left: left\r\n } = convertToLocation(targetLocation);\r\n var location = this.scrollOffset();\r\n var delta = {\r\n x: location.left - left,\r\n y: location.top - top\r\n };\r\n if (this._isVisible() && (delta.x || delta.y)) {\r\n this._prepareDirections(true);\r\n if (this._animation && !this._shouldScrollToNeighborItem()) {\r\n var that = this;\r\n fx.stop($(this.content()));\r\n fx.animate($(this.content()), {\r\n duration: 200,\r\n type: \"slide\",\r\n to: {\r\n top: Math.floor(delta.y)\r\n },\r\n complete() {\r\n resetPosition($(that.content()));\r\n that.handleMove({\r\n delta: delta\r\n })\r\n }\r\n });\r\n delete this._animation\r\n } else {\r\n this.handleMove({\r\n delta: delta\r\n })\r\n }\r\n }\r\n }\r\n _validate(e) {\r\n return this._moveIsAllowed(e)\r\n }\r\n _fitSelectedIndexInRange(index) {\r\n var itemsCount = this.option(\"items\").length;\r\n return Math.max(Math.min(index, itemsCount - 1), 0)\r\n }\r\n _isInNullNeighborhood(x) {\r\n return -.1 <= x && x <= .1\r\n }\r\n _getSelectedIndexAfterScroll(currentSelectedIndex) {\r\n var locationTop = this.scrollOffset().top;\r\n var currentSelectedIndexPosition = currentSelectedIndex * this._itemHeight();\r\n var dy = locationTop - currentSelectedIndexPosition;\r\n if (this._isInNullNeighborhood(dy)) {\r\n return currentSelectedIndex\r\n }\r\n var direction = dy > 0 ? 1 : -1;\r\n var newSelectedIndex = this._fitSelectedIndexInRange(currentSelectedIndex + direction);\r\n return newSelectedIndex\r\n }\r\n _getNewSelectedIndex(currentSelectedIndex) {\r\n if (this._shouldScrollToNeighborItem()) {\r\n return this._getSelectedIndexAfterScroll(currentSelectedIndex)\r\n }\r\n this._animation = true;\r\n var ratio = this.scrollOffset().top / this._itemHeight();\r\n return Math.round(ratio)\r\n }\r\n _endActionHandler() {\r\n var currentSelectedIndex = this.option(\"selectedIndex\");\r\n var newSelectedIndex = this._getNewSelectedIndex(currentSelectedIndex);\r\n if (newSelectedIndex === currentSelectedIndex) {\r\n this._renderSelectedValue(newSelectedIndex)\r\n } else {\r\n this.option(\"selectedIndex\", newSelectedIndex)\r\n }\r\n this._isWheelScrolled = false\r\n }\r\n _itemHeight() {\r\n var $item = this._$items.first();\r\n return getHeight($item)\r\n }\r\n _toggleActive(state) {\r\n this.$element().toggleClass(DATEVIEW_ROLLER_ACTIVE_CLASS, state)\r\n }\r\n _isVisible() {\r\n return $(this.container()).is(\":visible\")\r\n }\r\n _fireSelectedIndexChanged(value, previousValue) {\r\n this._selectedIndexChanged({\r\n value: value,\r\n previousValue: previousValue,\r\n event: void 0\r\n })\r\n }\r\n _visibilityChanged(visible) {\r\n super._visibilityChanged(visible);\r\n this._visibilityChangedHandler(visible)\r\n }\r\n _visibilityChangedHandler(visible) {\r\n if (visible) {\r\n this._visibilityTimer = setTimeout(() => {\r\n this._renderSelectedValue(this.option(\"selectedIndex\"))\r\n })\r\n }\r\n this.toggleActiveState(false)\r\n }\r\n toggleActiveState(state) {\r\n this.$element().toggleClass(DATEVIEW_ROLLER_CURRENT_CLASS, state)\r\n }\r\n _refreshSelectedIndex() {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n var fitIndex = this._fitIndex(selectedIndex);\r\n if (fitIndex === selectedIndex) {\r\n this._renderActiveStateItem()\r\n } else {\r\n this.option(\"selectedIndex\", fitIndex)\r\n }\r\n }\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"selectedIndex\":\r\n this._fireSelectedIndexChanged(args.value, args.previousValue);\r\n this._renderSelectedValue(args.value);\r\n break;\r\n case \"items\":\r\n this._renderItems();\r\n this._refreshSelectedIndex();\r\n break;\r\n case \"onClick\":\r\n case \"showOnClick\":\r\n this._renderContainerClick();\r\n break;\r\n case \"onSelectedIndexChanged\":\r\n this._renderSelectedIndexChanged();\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _dispose() {\r\n clearTimeout(this._visibilityTimer);\r\n super._dispose()\r\n }\r\n}\r\nregisterComponent(\"dxDateViewRoller\", DateViewRoller);\r\nexport default DateViewRoller;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_view.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport Editor from \"../editor/editor\";\r\nimport DateViewRoller from \"./ui.date_view_roller\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport uiDateUtils from \"./ui.date_utils\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport dateLocalization from \"../../localization/date\";\r\nvar DATEVIEW_CLASS = \"dx-dateview\";\r\nvar DATEVIEW_COMPACT_CLASS = \"dx-dateview-compact\";\r\nvar DATEVIEW_WRAPPER_CLASS = \"dx-dateview-wrapper\";\r\nvar DATEVIEW_ROLLER_CONTAINER_CLASS = \"dx-dateview-rollers\";\r\nvar DATEVIEW_ROLLER_CLASS = \"dx-dateviewroller\";\r\nvar TYPE = {\r\n date: \"date\",\r\n datetime: \"datetime\",\r\n time: \"time\"\r\n};\r\nvar ROLLER_TYPE = {\r\n year: \"year\",\r\n month: \"month\",\r\n day: \"day\",\r\n hours: \"hours\"\r\n};\r\nvar DateView = Editor.inherit({\r\n _valueOption: function() {\r\n var value = this.option(\"value\");\r\n var date = new Date(value);\r\n return !value || isNaN(date) ? this._getDefaultDate() : date\r\n },\r\n _getDefaultDate: function() {\r\n var date = new Date;\r\n if (this.option(\"type\") === TYPE.date) {\r\n return new Date(date.getFullYear(), date.getMonth(), date.getDate())\r\n }\r\n return date\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n minDate: uiDateUtils.MIN_DATEVIEW_DEFAULT_DATE,\r\n maxDate: uiDateUtils.MAX_DATEVIEW_DEFAULT_DATE,\r\n type: TYPE.date,\r\n value: new Date,\r\n applyCompactClass: false\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function(_device) {\r\n return \"desktop\" !== _device.deviceType\r\n },\r\n options: {\r\n applyCompactClass: true\r\n }\r\n }])\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this.$element().addClass(DATEVIEW_CLASS);\r\n this._toggleFormatClasses(this.option(\"type\"));\r\n this._toggleCompactClass()\r\n },\r\n _toggleFormatClasses: function(currentFormat, previousFormat) {\r\n this.$element().addClass(DATEVIEW_CLASS + \"-\" + currentFormat);\r\n previousFormat && this.$element().removeClass(DATEVIEW_CLASS + \"-\" + previousFormat)\r\n },\r\n _toggleCompactClass: function() {\r\n this.$element().toggleClass(DATEVIEW_COMPACT_CLASS, this.option(\"applyCompactClass\"))\r\n },\r\n _wrapper: function() {\r\n return this._$wrapper\r\n },\r\n _renderContentImpl: function() {\r\n this._$wrapper = $(\"
\").addClass(DATEVIEW_WRAPPER_CLASS);\r\n this._renderRollers();\r\n this._$wrapper.appendTo(this.$element())\r\n },\r\n _renderRollers: function() {\r\n if (!this._$rollersContainer) {\r\n this._$rollersContainer = $(\"
\").addClass(DATEVIEW_ROLLER_CONTAINER_CLASS)\r\n }\r\n this._$rollersContainer.empty();\r\n this._createRollerConfigs();\r\n this._rollers = {};\r\n var that = this;\r\n each(that._rollerConfigs, (function(name) {\r\n var $roller = $(\"
\").appendTo(that._$rollersContainer).addClass(DATEVIEW_ROLLER_CLASS + \"-\" + that._rollerConfigs[name].type);\r\n that._rollers[that._rollerConfigs[name].type] = that._createComponent($roller, DateViewRoller, {\r\n items: that._rollerConfigs[name].displayItems,\r\n selectedIndex: that._rollerConfigs[name].selectedIndex,\r\n showScrollbar: \"never\",\r\n scrollByContent: true,\r\n onStart: function(e) {\r\n var roller = e.component;\r\n roller._toggleActive(true);\r\n that._setActiveRoller(that._rollerConfigs[name], roller.option(\"selectedIndex\"))\r\n },\r\n onEnd: function(e) {\r\n var roller = e.component;\r\n roller._toggleActive(false)\r\n },\r\n onClick: function(e) {\r\n var roller = e.component;\r\n roller._toggleActive(true);\r\n that._setActiveRoller(that._rollerConfigs[name], roller.option(\"selectedIndex\"));\r\n that._setRollerState(that._rollerConfigs[name], roller.option(\"selectedIndex\"));\r\n roller._toggleActive(false)\r\n },\r\n onSelectedIndexChanged: function(e) {\r\n var roller = e.component;\r\n that._setRollerState(that._rollerConfigs[name], roller.option(\"selectedIndex\"))\r\n }\r\n })\r\n }));\r\n that._$rollersContainer.appendTo(that._wrapper())\r\n },\r\n _createRollerConfigs: function(type) {\r\n var that = this;\r\n type = type || that.option(\"type\");\r\n that._rollerConfigs = {};\r\n dateLocalization.getFormatParts(uiDateUtils.FORMATS_MAP[type]).forEach((function(partName) {\r\n that._createRollerConfig(partName)\r\n }))\r\n },\r\n _createRollerConfig: function(componentName) {\r\n var componentInfo = uiDateUtils.DATE_COMPONENTS_INFO[componentName];\r\n var valueRange = this._calculateRollerConfigValueRange(componentName);\r\n var startValue = valueRange.startValue;\r\n var endValue = valueRange.endValue;\r\n var formatter = componentInfo.formatter;\r\n var curDate = this._getCurrentDate();\r\n var config = {\r\n type: componentName,\r\n setValue: componentInfo.setter,\r\n valueItems: [],\r\n displayItems: [],\r\n getIndex: function(value) {\r\n return value[componentInfo.getter]() - startValue\r\n }\r\n };\r\n for (var i = startValue; i <= endValue; i++) {\r\n config.valueItems.push(i);\r\n config.displayItems.push(formatter(i, curDate))\r\n }\r\n config.selectedIndex = config.getIndex(curDate);\r\n this._rollerConfigs[componentName] = config\r\n },\r\n _setActiveRoller: function(currentRoller) {\r\n var activeRoller = currentRoller && this._rollers[currentRoller.type];\r\n each(this._rollers, (function() {\r\n this.toggleActiveState(this === activeRoller)\r\n }))\r\n },\r\n _updateRollersPosition: function() {\r\n var that = this;\r\n each(this._rollers, (function(type) {\r\n var correctIndex = that._rollerConfigs[type].getIndex(that._getCurrentDate());\r\n this.option(\"selectedIndex\", correctIndex)\r\n }))\r\n },\r\n _setRollerState: function(roller, selectedIndex) {\r\n if (selectedIndex !== roller.selectedIndex) {\r\n var rollerValue = roller.valueItems[selectedIndex];\r\n var setValue = roller.setValue;\r\n var currentValue = new Date(this._getCurrentDate());\r\n var currentDate = currentValue.getDate();\r\n var minDate = this.option(\"minDate\");\r\n var maxDate = this.option(\"maxDate\");\r\n if (roller.type === ROLLER_TYPE.month) {\r\n currentDate = Math.min(currentDate, uiDateUtils.getMaxMonthDay(currentValue.getFullYear(), rollerValue))\r\n } else if (roller.type === ROLLER_TYPE.year) {\r\n currentDate = Math.min(currentDate, uiDateUtils.getMaxMonthDay(rollerValue, currentValue.getMonth()))\r\n }\r\n currentValue.setDate(currentDate);\r\n currentValue[setValue](rollerValue);\r\n var normalizedDate = dateUtils.normalizeDate(currentValue, minDate, maxDate);\r\n currentValue = uiDateUtils.mergeDates(normalizedDate, currentValue, \"time\");\r\n currentValue = dateUtils.normalizeDate(currentValue, minDate, maxDate);\r\n this.option(\"value\", currentValue);\r\n roller.selectedIndex = selectedIndex\r\n }\r\n if (roller.type === ROLLER_TYPE.year) {\r\n this._refreshRollers()\r\n }\r\n if (roller.type === ROLLER_TYPE.month) {\r\n this._refreshRoller(ROLLER_TYPE.day);\r\n this._refreshRoller(ROLLER_TYPE.hours)\r\n }\r\n },\r\n _refreshRoller: function(rollerType) {\r\n var roller = this._rollers[rollerType];\r\n if (roller) {\r\n this._createRollerConfig(rollerType);\r\n var rollerConfig = this._rollerConfigs[rollerType];\r\n if (rollerType === ROLLER_TYPE.day || rollerConfig.displayItems.toString() !== roller.option(\"items\").toString()) {\r\n roller.option({\r\n items: rollerConfig.displayItems,\r\n selectedIndex: rollerConfig.selectedIndex\r\n })\r\n }\r\n }\r\n },\r\n _getCurrentDate: function() {\r\n var curDate = this._valueOption();\r\n var minDate = this.option(\"minDate\");\r\n var maxDate = this.option(\"maxDate\");\r\n return dateUtils.normalizeDate(curDate, minDate, maxDate)\r\n },\r\n _calculateRollerConfigValueRange: function(componentName) {\r\n var curDate = this._getCurrentDate();\r\n var minDate = this.option(\"minDate\");\r\n var maxDate = this.option(\"maxDate\");\r\n var minYear = dateUtils.sameYear(curDate, minDate);\r\n var minMonth = minYear && curDate.getMonth() === minDate.getMonth();\r\n var maxYear = dateUtils.sameYear(curDate, maxDate);\r\n var maxMonth = maxYear && curDate.getMonth() === maxDate.getMonth();\r\n var minHour = minMonth && curDate.getDate() === minDate.getDate();\r\n var maxHour = maxMonth && curDate.getDate() === maxDate.getDate();\r\n var componentInfo = uiDateUtils.DATE_COMPONENTS_INFO[componentName];\r\n var startValue = componentInfo.startValue;\r\n var endValue = componentInfo.endValue;\r\n if (componentName === ROLLER_TYPE.year) {\r\n startValue = minDate.getFullYear();\r\n endValue = maxDate.getFullYear()\r\n }\r\n if (componentName === ROLLER_TYPE.month) {\r\n if (minYear) {\r\n startValue = minDate.getMonth()\r\n }\r\n if (maxYear) {\r\n endValue = maxDate.getMonth()\r\n }\r\n }\r\n if (componentName === ROLLER_TYPE.day) {\r\n endValue = uiDateUtils.getMaxMonthDay(curDate.getFullYear(), curDate.getMonth());\r\n if (minYear && minMonth) {\r\n startValue = minDate.getDate()\r\n }\r\n if (maxYear && maxMonth) {\r\n endValue = maxDate.getDate()\r\n }\r\n }\r\n if (componentName === ROLLER_TYPE.hours) {\r\n startValue = minHour ? minDate.getHours() : startValue;\r\n endValue = maxHour ? maxDate.getHours() : endValue\r\n }\r\n return {\r\n startValue: startValue,\r\n endValue: endValue\r\n }\r\n },\r\n _refreshRollers: function() {\r\n this._refreshRoller(ROLLER_TYPE.month);\r\n this._refreshRoller(ROLLER_TYPE.day);\r\n this._refreshRoller(ROLLER_TYPE.hours)\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"minDate\":\r\n case \"maxDate\":\r\n case \"type\":\r\n this._renderRollers();\r\n this._toggleFormatClasses(args.value, args.previousValue);\r\n break;\r\n case \"visible\":\r\n this.callBase(args);\r\n if (args.value) {\r\n this._renderRollers()\r\n }\r\n break;\r\n case \"value\":\r\n this.option(\"value\", this._valueOption());\r\n this._refreshRollers();\r\n this._updateRollersPosition();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _clean: function() {\r\n this.callBase();\r\n delete this._$rollersContainer\r\n }\r\n});\r\nregisterComponent(\"dxDateView\", DateView);\r\nexport default DateView;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.strategy.date_view.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nimport DateView from \"./ui.date_view\";\r\nimport DateBoxStrategy from \"./ui.date_box.strategy\";\r\nimport {\r\n inputType\r\n} from \"../../core/utils/support\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport dateUtils from \"./ui.date_utils\";\r\nimport messageLocalization from \"../../localization/message\";\r\nvar DateViewStrategy = DateBoxStrategy.inherit({\r\n NAME: \"DateView\",\r\n getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n openOnFieldClick: true,\r\n applyButtonText: messageLocalization.format(\"OK\"),\r\n \"dropDownOptions.showTitle\": true\r\n })\r\n },\r\n getDisplayFormat: function(displayFormat) {\r\n return displayFormat || dateUtils.FORMATS_MAP[this.dateBox.option(\"type\")]\r\n },\r\n popupConfig: function(config) {\r\n return {\r\n toolbarItems: this.dateBox._popupToolbarItemsConfig(),\r\n onInitialized: config.onInitialized,\r\n defaultOptionsRules: [{\r\n device: {\r\n platform: \"android\"\r\n },\r\n options: {\r\n width: 333,\r\n height: 331\r\n }\r\n }, {\r\n device: function(_device) {\r\n var platform = _device.platform;\r\n return \"generic\" === platform || \"ios\" === platform\r\n },\r\n options: {\r\n width: \"auto\",\r\n height: \"auto\"\r\n }\r\n }, {\r\n device: function(_device2) {\r\n var platform = _device2.platform;\r\n var phone = _device2.phone;\r\n return \"generic\" === platform && phone\r\n },\r\n options: {\r\n width: 333,\r\n maxWidth: \"100%\",\r\n maxHeight: \"100%\",\r\n height: \"auto\",\r\n position: {\r\n collision: \"flipfit flip\"\r\n }\r\n }\r\n }, {\r\n device: {\r\n platform: \"ios\",\r\n phone: true\r\n },\r\n options: {\r\n width: \"100%\",\r\n position: {\r\n my: \"bottom\",\r\n at: \"bottom\",\r\n of: window\r\n }\r\n }\r\n }]\r\n }\r\n },\r\n _renderWidget: function() {\r\n if (inputType(this.dateBox.option(\"mode\")) && this.dateBox._isNativeType() || this.dateBox.option(\"readOnly\")) {\r\n if (this._widget) {\r\n this._widget.$element().remove();\r\n this._widget = null\r\n }\r\n return\r\n }\r\n var popup = this._getPopup();\r\n if (this._widget) {\r\n this._widget.option(this._getWidgetOptions())\r\n } else {\r\n var element = $(\"
\").appendTo(popup.$content());\r\n this._widget = this._createWidget(element)\r\n }\r\n this._widget.$element().appendTo(this._getWidgetContainer())\r\n },\r\n _getWidgetName: function() {\r\n return DateView\r\n },\r\n renderOpenedState: function() {\r\n this.callBase();\r\n if (this._widget) {\r\n this._widget.option(\"value\", this._widget._getCurrentDate())\r\n }\r\n },\r\n _getWidgetOptions: function() {\r\n return {\r\n value: this.dateBoxValue() || new Date,\r\n type: this.dateBox.option(\"type\"),\r\n minDate: this.dateBox.dateOption(\"min\") || new Date(1900, 0, 1),\r\n maxDate: this.dateBox.dateOption(\"max\") || new Date(Date.now() + 50 * dateUtils.ONE_YEAR),\r\n onDisposing: function() {\r\n this._widget = null\r\n }.bind(this)\r\n }\r\n }\r\n});\r\nexport default DateViewStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.strategy.native.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport DateBoxStrategy from \"./ui.date_box.strategy\";\r\nimport {\r\n inputType\r\n} from \"../../core/utils/support\";\r\nimport dateUtils from \"./ui.date_utils\";\r\nimport dateSerialization from \"../../core/utils/date_serialization\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport devices from \"../../core/devices\";\r\nvar NativeStrategy = DateBoxStrategy.inherit({\r\n NAME: \"Native\",\r\n popupConfig: function(_popupConfig) {\r\n return extend({}, _popupConfig, {\r\n width: \"auto\"\r\n })\r\n },\r\n getParsedText: function(text) {\r\n if (!text) {\r\n return null\r\n }\r\n if (\"datetime\" === this.dateBox.option(\"type\")) {\r\n return new Date(text.replace(/-/g, \"/\").replace(\"T\", \" \").split(\".\")[0])\r\n }\r\n return dateUtils.fromStandardDateFormat(text)\r\n },\r\n renderPopupContent: noop,\r\n _getWidgetName: noop,\r\n _getWidgetOptions: noop,\r\n _getDateBoxType: function() {\r\n var type = this.dateBox.option(\"type\");\r\n if (!dateUtils.SUPPORTED_FORMATS.includes(type)) {\r\n type = \"date\"\r\n } else if (\"datetime\" === type && !inputType(type)) {\r\n type = \"datetime-local\"\r\n }\r\n return type\r\n },\r\n customizeButtons: function() {\r\n var dropDownButton = this.dateBox.getButton(\"dropDown\");\r\n if (devices.real().android && dropDownButton) {\r\n dropDownButton.on(\"click\", function() {\r\n this.dateBox._input().get(0).click()\r\n }.bind(this))\r\n }\r\n },\r\n getDefaultOptions: function() {\r\n return {\r\n mode: this._getDateBoxType()\r\n }\r\n },\r\n getDisplayFormat: function(displayFormat) {\r\n var type = this._getDateBoxType();\r\n return displayFormat || dateUtils.FORMATS_MAP[type]\r\n },\r\n renderInputMinMax: function($input) {\r\n $input.attr({\r\n min: dateSerialization.serializeDate(this.dateBox.dateOption(\"min\"), \"yyyy-MM-dd\"),\r\n max: dateSerialization.serializeDate(this.dateBox.dateOption(\"max\"), \"yyyy-MM-dd\")\r\n })\r\n }\r\n});\r\nexport default NativeStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/box.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n noop\r\n} from \"../core/utils/common\";\r\nimport {\r\n hasWindow\r\n} from \"../core/utils/window\";\r\nimport {\r\n dasherize\r\n} from \"../core/utils/inflector\";\r\nimport {\r\n isDefined\r\n} from \"../core/utils/type\";\r\nimport {\r\n normalizeStyleProp,\r\n styleProp,\r\n stylePropPrefix\r\n} from \"../core/utils/style\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n getWidth,\r\n setWidth,\r\n getHeight,\r\n setHeight\r\n} from \"../core/utils/size\";\r\nimport CollectionWidgetItem from \"./collection/item\";\r\nimport CollectionWidget from \"./collection/ui.collection_widget.edit\";\r\nvar BOX_CLASS = \"dx-box\";\r\nvar BOX_SELECTOR = \".dx-box\";\r\nvar BOX_ITEM_CLASS = \"dx-box-item\";\r\nvar BOX_ITEM_DATA_KEY = \"dxBoxItemData\";\r\nvar MINSIZE_MAP = {\r\n row: \"minWidth\",\r\n col: \"minHeight\"\r\n};\r\nvar MAXSIZE_MAP = {\r\n row: \"maxWidth\",\r\n col: \"maxHeight\"\r\n};\r\nvar SHRINK = 1;\r\nvar FLEX_JUSTIFY_CONTENT_MAP = {\r\n start: \"flex-start\",\r\n end: \"flex-end\",\r\n center: \"center\",\r\n \"space-between\": \"space-between\",\r\n \"space-around\": \"space-around\"\r\n};\r\nvar FLEX_ALIGN_ITEMS_MAP = {\r\n start: \"flex-start\",\r\n end: \"flex-end\",\r\n center: \"center\",\r\n stretch: \"stretch\"\r\n};\r\nvar FLEX_DIRECTION_MAP = {\r\n row: \"row\",\r\n col: \"column\"\r\n};\r\nvar setFlexProp = (element, prop, value) => {\r\n value = normalizeStyleProp(prop, value);\r\n element.style[styleProp(prop)] = value;\r\n if (!hasWindow()) {\r\n if (\"\" === value || !isDefined(value)) {\r\n return\r\n }\r\n var cssName = dasherize(prop);\r\n var styleExpr = cssName + \": \" + value + \";\";\r\n if (!element.attributes.style) {\r\n element.setAttribute(\"style\", styleExpr)\r\n } else if (element.attributes.style.value.indexOf(styleExpr) < 0) {\r\n element.attributes.style.value += \" \" + styleExpr\r\n }\r\n }\r\n};\r\nvar BOX_EVENTNAMESPACE = \"dxBox\";\r\nvar UPDATE_EVENT = \"dxupdate.\" + BOX_EVENTNAMESPACE;\r\nvar FALLBACK_BOX_ITEM = \"dx-box-fallback-item\";\r\nvar FALLBACK_WRAP_MAP = {\r\n row: \"nowrap\",\r\n col: \"normal\"\r\n};\r\nvar FALLBACK_MAIN_SIZE_MAP = {\r\n row: {\r\n name: \"width\",\r\n getter: getWidth,\r\n setter: setWidth\r\n },\r\n col: {\r\n name: \"height\",\r\n getter: getHeight,\r\n setter: setHeight\r\n }\r\n};\r\nvar FALLBACK_CROSS_SIZE_MAP = {\r\n row: FALLBACK_MAIN_SIZE_MAP.col,\r\n col: FALLBACK_MAIN_SIZE_MAP.row\r\n};\r\nvar FALLBACK_PRE_MARGIN_MAP = {\r\n row: \"marginLeft\",\r\n col: \"marginTop\"\r\n};\r\nvar FALLBACK_POST_MARGIN_MAP = {\r\n row: \"marginRight\",\r\n col: \"marginBottom\"\r\n};\r\nvar FALLBACK_CROSS_PRE_MARGIN_MAP = {\r\n row: \"marginTop\",\r\n col: \"marginLeft\"\r\n};\r\nvar FALLBACK_CROSS_POST_MARGIN_MAP = {\r\n row: \"marginBottom\",\r\n col: \"marginRight\"\r\n};\r\nvar MARGINS_RTL_FLIP_MAP = {\r\n marginLeft: \"marginRight\",\r\n marginRight: \"marginLeft\"\r\n};\r\nclass BoxItem extends CollectionWidgetItem {\r\n _renderVisible(value, oldValue) {\r\n super._renderVisible(value);\r\n if (isDefined(oldValue)) {\r\n this._options.fireItemStateChangedAction({\r\n name: \"visible\",\r\n state: value,\r\n oldState: oldValue\r\n })\r\n }\r\n }\r\n}\r\nclass FlexLayoutStrategy {\r\n constructor($element, option) {\r\n this._$element = $element;\r\n this._option = option;\r\n this.initSize = noop;\r\n this.update = noop\r\n }\r\n renderBox() {\r\n this._$element.css({\r\n display: stylePropPrefix(\"flexDirection\") + \"flex\"\r\n });\r\n setFlexProp(this._$element.get(0), \"flexDirection\", FLEX_DIRECTION_MAP[this._option(\"direction\")])\r\n }\r\n renderAlign() {\r\n this._$element.css({\r\n justifyContent: this._normalizedAlign()\r\n })\r\n }\r\n _normalizedAlign() {\r\n var align = this._option(\"align\");\r\n return align in FLEX_JUSTIFY_CONTENT_MAP ? FLEX_JUSTIFY_CONTENT_MAP[align] : align\r\n }\r\n renderCrossAlign() {\r\n this._$element.css({\r\n alignItems: this._normalizedCrossAlign()\r\n })\r\n }\r\n _normalizedCrossAlign() {\r\n var crossAlign = this._option(\"crossAlign\");\r\n return crossAlign in FLEX_ALIGN_ITEMS_MAP ? FLEX_ALIGN_ITEMS_MAP[crossAlign] : crossAlign\r\n }\r\n renderItems($items) {\r\n var flexPropPrefix = stylePropPrefix(\"flexDirection\");\r\n var direction = this._option(\"direction\");\r\n each($items, (function() {\r\n var $item = $(this);\r\n var item = $item.data(BOX_ITEM_DATA_KEY);\r\n $item.css({\r\n display: flexPropPrefix + \"flex\"\r\n }).css(MAXSIZE_MAP[direction], item.maxSize || \"none\").css(MINSIZE_MAP[direction], item.minSize || \"0\");\r\n setFlexProp($item.get(0), \"flexBasis\", item.baseSize || 0);\r\n setFlexProp($item.get(0), \"flexGrow\", item.ratio);\r\n setFlexProp($item.get(0), \"flexShrink\", isDefined(item.shrink) ? item.shrink : SHRINK);\r\n $item.children().each((_, itemContent) => {\r\n $(itemContent).css({\r\n width: \"auto\",\r\n height: \"auto\",\r\n display: stylePropPrefix(\"flexDirection\") + \"flex\",\r\n flexBasis: 0\r\n });\r\n setFlexProp(itemContent, \"flexGrow\", 1);\r\n setFlexProp(itemContent, \"flexDirection\", $(itemContent)[0].style.flexDirection || \"column\")\r\n })\r\n }))\r\n }\r\n}\r\nclass FallbackLayoutStrategy {\r\n constructor($element, option) {\r\n this._$element = $element;\r\n this._option = option\r\n }\r\n renderBox() {\r\n this._$element.css({\r\n fontSize: 0,\r\n whiteSpace: FALLBACK_WRAP_MAP[this._option(\"direction\")],\r\n verticalAlign: \"top\"\r\n });\r\n eventsEngine.off(this._$element, UPDATE_EVENT);\r\n eventsEngine.on(this._$element, UPDATE_EVENT, this.update.bind(this))\r\n }\r\n renderAlign() {\r\n var $items = this._$items;\r\n if (!$items) {\r\n return\r\n }\r\n var align = this._option(\"align\");\r\n var totalItemSize = this.totalItemSize;\r\n var direction = this._option(\"direction\");\r\n var boxSize = FALLBACK_MAIN_SIZE_MAP[direction].getter(this._$element);\r\n var freeSpace = boxSize - totalItemSize;\r\n var shift = 0;\r\n this._setItemsMargins($items, direction, 0);\r\n switch (align) {\r\n case \"start\":\r\n break;\r\n case \"end\":\r\n shift = freeSpace;\r\n $items.first().css(this._chooseMarginSide(FALLBACK_PRE_MARGIN_MAP[direction]), shift);\r\n break;\r\n case \"center\":\r\n shift = .5 * freeSpace;\r\n $items.first().css(this._chooseMarginSide(FALLBACK_PRE_MARGIN_MAP[direction]), shift);\r\n $items.last().css(this._chooseMarginSide(FALLBACK_POST_MARGIN_MAP[direction]), shift);\r\n break;\r\n case \"space-between\":\r\n shift = .5 * freeSpace / ($items.length - 1);\r\n this._setItemsMargins($items, direction, shift);\r\n $items.first().css(this._chooseMarginSide(FALLBACK_PRE_MARGIN_MAP[direction]), 0);\r\n $items.last().css(this._chooseMarginSide(FALLBACK_POST_MARGIN_MAP[direction]), 0);\r\n break;\r\n case \"space-around\":\r\n shift = .5 * freeSpace / $items.length;\r\n this._setItemsMargins($items, direction, shift)\r\n }\r\n }\r\n _setItemsMargins($items, direction, shift) {\r\n $items.css(this._chooseMarginSide(FALLBACK_PRE_MARGIN_MAP[direction]), shift).css(this._chooseMarginSide(FALLBACK_POST_MARGIN_MAP[direction]), shift)\r\n }\r\n renderCrossAlign() {\r\n var $items = this._$items;\r\n if (!$items) {\r\n return\r\n }\r\n var crossAlign = this._option(\"crossAlign\");\r\n var direction = this._option(\"direction\");\r\n var size = FALLBACK_CROSS_SIZE_MAP[direction].getter(this._$element);\r\n var that = this;\r\n switch (crossAlign) {\r\n case \"start\":\r\n break;\r\n case \"end\":\r\n each($items, (function() {\r\n var $item = $(this);\r\n var itemSize = FALLBACK_CROSS_SIZE_MAP[direction].getter($item);\r\n var shift = size - itemSize;\r\n $item.css(that._chooseMarginSide(FALLBACK_CROSS_PRE_MARGIN_MAP[direction]), shift)\r\n }));\r\n break;\r\n case \"center\":\r\n each($items, (function() {\r\n var $item = $(this);\r\n var itemSize = FALLBACK_CROSS_SIZE_MAP[direction].getter($item);\r\n var shift = .5 * (size - itemSize);\r\n $item.css(that._chooseMarginSide(FALLBACK_CROSS_PRE_MARGIN_MAP[direction]), shift).css(that._chooseMarginSide(FALLBACK_CROSS_POST_MARGIN_MAP[direction]), shift)\r\n }));\r\n break;\r\n case \"stretch\":\r\n $items.css(that._chooseMarginSide(FALLBACK_CROSS_PRE_MARGIN_MAP[direction]), 0).css(that._chooseMarginSide(FALLBACK_CROSS_POST_MARGIN_MAP[direction]), 0).css(FALLBACK_CROSS_SIZE_MAP[direction].name, \"100%\")\r\n }\r\n }\r\n _chooseMarginSide(value) {\r\n if (!this._option(\"rtlEnabled\")) {\r\n return value\r\n }\r\n return MARGINS_RTL_FLIP_MAP[value] || value\r\n }\r\n renderItems($items) {\r\n this._$items = $items;\r\n var direction = this._option(\"direction\");\r\n var totalRatio = 0;\r\n var totalWeightedShrink = 0;\r\n var totalBaseSize = 0;\r\n each($items, (_, item) => {\r\n var $item = $(item);\r\n $item.css({\r\n display: \"inline-block\",\r\n verticalAlign: \"top\"\r\n });\r\n FALLBACK_MAIN_SIZE_MAP[direction].setter($item, \"auto\");\r\n $item.removeClass(FALLBACK_BOX_ITEM);\r\n var itemData = $item.data(BOX_ITEM_DATA_KEY);\r\n var ratio = itemData.ratio || 0;\r\n var size = this._baseSize($item);\r\n var shrink = isDefined(itemData.shrink) ? itemData.shrink : SHRINK;\r\n totalRatio += ratio;\r\n totalWeightedShrink += shrink * size;\r\n totalBaseSize += size\r\n });\r\n var freeSpaceSize = this._boxSize() - totalBaseSize;\r\n var itemSize = $item => {\r\n var itemData = $item.data(BOX_ITEM_DATA_KEY);\r\n var size = this._baseSize($item);\r\n var factor = freeSpaceSize >= 0 ? itemData.ratio || 0 : (isDefined(itemData.shrink) ? itemData.shrink : SHRINK) * size;\r\n var totalFactor = freeSpaceSize >= 0 ? totalRatio : totalWeightedShrink;\r\n var shift = totalFactor ? Math.round(freeSpaceSize * factor / totalFactor) : 0;\r\n return size + shift\r\n };\r\n var totalItemSize = 0;\r\n each($items, (_, item) => {\r\n var $item = $(item);\r\n var itemData = $(item).data(BOX_ITEM_DATA_KEY);\r\n var size = itemSize($item);\r\n totalItemSize += size;\r\n $item.css(MAXSIZE_MAP[direction], itemData.maxSize || \"none\").css(MINSIZE_MAP[direction], itemData.minSize || \"0\").css(FALLBACK_MAIN_SIZE_MAP[direction].name, size);\r\n $item.addClass(FALLBACK_BOX_ITEM)\r\n });\r\n this.totalItemSize = totalItemSize\r\n }\r\n _baseSize(item) {\r\n var itemData = $(item).data(BOX_ITEM_DATA_KEY);\r\n return null == itemData.baseSize ? 0 : \"auto\" === itemData.baseSize ? this._contentSize(item) : this._parseSize(itemData.baseSize)\r\n }\r\n _contentSize(item) {\r\n return FALLBACK_MAIN_SIZE_MAP[this._option(\"direction\")].getter($(item))\r\n }\r\n _parseSize(size) {\r\n return String(size).match(/.+%$/) ? .01 * parseFloat(size) * this._boxSizeValue : size\r\n }\r\n _boxSize(value) {\r\n if (!arguments.length) {\r\n this._boxSizeValue = this._boxSizeValue || this._totalBaseSize();\r\n return this._boxSizeValue\r\n }\r\n this._boxSizeValue = value\r\n }\r\n _totalBaseSize() {\r\n var result = 0;\r\n each(this._$items, (_, item) => {\r\n result += this._baseSize(item)\r\n });\r\n return result\r\n }\r\n initSize() {\r\n this._boxSize(FALLBACK_MAIN_SIZE_MAP[this._option(\"direction\")].getter(this._$element))\r\n }\r\n update() {\r\n if (!this._$items || this._$element.is(\":hidden\")) {\r\n return\r\n }\r\n this._$items.detach();\r\n this.initSize();\r\n this._$element.append(this._$items);\r\n this.renderItems(this._$items);\r\n this.renderAlign();\r\n this.renderCrossAlign();\r\n var element = this._$element.get(0);\r\n this._$items.find(BOX_SELECTOR).each((function() {\r\n if (element === $(this).parent().closest(BOX_SELECTOR).get(0)) {\r\n eventsEngine.triggerHandler(this, UPDATE_EVENT)\r\n }\r\n }))\r\n }\r\n}\r\nclass Box extends CollectionWidget {\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n direction: \"row\",\r\n align: \"start\",\r\n crossAlign: \"stretch\",\r\n activeStateEnabled: false,\r\n focusStateEnabled: false,\r\n onItemStateChanged: void 0,\r\n _layoutStrategy: \"flex\",\r\n _queue: void 0\r\n })\r\n }\r\n _itemClass() {\r\n return BOX_ITEM_CLASS\r\n }\r\n _itemDataKey() {\r\n return BOX_ITEM_DATA_KEY\r\n }\r\n _itemElements() {\r\n return this._itemContainer().children(this._itemSelector())\r\n }\r\n _init() {\r\n super._init();\r\n this.$element().addClass(\"\".concat(BOX_CLASS, \"-\").concat(this.option(\"_layoutStrategy\")));\r\n this._initLayout();\r\n this._initBoxQueue()\r\n }\r\n _initLayout() {\r\n this._layout = \"fallback\" === this.option(\"_layoutStrategy\") ? new FallbackLayoutStrategy(this.$element(), this.option.bind(this)) : new FlexLayoutStrategy(this.$element(), this.option.bind(this))\r\n }\r\n _initBoxQueue() {\r\n this._queue = this.option(\"_queue\") || []\r\n }\r\n _queueIsNotEmpty() {\r\n return this.option(\"_queue\") ? false : !!this._queue.length\r\n }\r\n _pushItemToQueue($item, config) {\r\n this._queue.push({\r\n $item: $item,\r\n config: config\r\n })\r\n }\r\n _shiftItemFromQueue() {\r\n return this._queue.shift()\r\n }\r\n _initMarkup() {\r\n this.$element().addClass(BOX_CLASS);\r\n this._layout.renderBox();\r\n super._initMarkup();\r\n this._renderAlign();\r\n this._renderActions()\r\n }\r\n _renderActions() {\r\n this._onItemStateChanged = this._createActionByOption(\"onItemStateChanged\")\r\n }\r\n _renderAlign() {\r\n this._layout.renderAlign();\r\n this._layout.renderCrossAlign()\r\n }\r\n _renderItems(items) {\r\n this._layout.initSize();\r\n super._renderItems(items);\r\n while (this._queueIsNotEmpty()) {\r\n var item = this._shiftItemFromQueue();\r\n this._createComponent(item.$item, Box, extend({\r\n _layoutStrategy: this.option(\"_layoutStrategy\"),\r\n itemTemplate: this.option(\"itemTemplate\"),\r\n itemHoldTimeout: this.option(\"itemHoldTimeout\"),\r\n onItemHold: this.option(\"onItemHold\"),\r\n onItemClick: this.option(\"onItemClick\"),\r\n onItemContextMenu: this.option(\"onItemContextMenu\"),\r\n onItemRendered: this.option(\"onItemRendered\"),\r\n _queue: this._queue\r\n }, item.config))\r\n }\r\n this._layout.renderItems(this._itemElements());\r\n clearTimeout(this._updateTimer);\r\n this._updateTimer = setTimeout(() => {\r\n if (!this._isUpdated) {\r\n this._layout.update()\r\n }\r\n this._isUpdated = false;\r\n this._updateTimer = null\r\n })\r\n }\r\n _renderItemContent(args) {\r\n var $itemNode = args.itemData && args.itemData.node;\r\n if ($itemNode) {\r\n return this._renderItemContentByNode(args, $itemNode)\r\n }\r\n return super._renderItemContent(args)\r\n }\r\n _postprocessRenderItem(args) {\r\n var boxConfig = args.itemData.box;\r\n if (!boxConfig) {\r\n return\r\n }\r\n this._pushItemToQueue(args.itemContent, boxConfig)\r\n }\r\n _createItemByTemplate(itemTemplate, args) {\r\n if (args.itemData.box) {\r\n return itemTemplate.source ? itemTemplate.source() : $()\r\n }\r\n return super._createItemByTemplate(itemTemplate, args)\r\n }\r\n _visibilityChanged(visible) {\r\n if (visible) {\r\n this._dimensionChanged()\r\n }\r\n }\r\n _dimensionChanged() {\r\n if (this._updateTimer) {\r\n return\r\n }\r\n this._isUpdated = true;\r\n this._layout.update()\r\n }\r\n _dispose() {\r\n clearTimeout(this._updateTimer);\r\n super._dispose.apply(this, arguments)\r\n }\r\n _itemOptionChanged(item, property, value, oldValue) {\r\n if (\"visible\" === property) {\r\n this._onItemStateChanged({\r\n name: property,\r\n state: value,\r\n oldState: false !== oldValue\r\n })\r\n }\r\n super._itemOptionChanged(item, property, value)\r\n }\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"_layoutStrategy\":\r\n case \"_queue\":\r\n case \"direction\":\r\n this._invalidate();\r\n break;\r\n case \"align\":\r\n this._layout.renderAlign();\r\n break;\r\n case \"crossAlign\":\r\n this._layout.renderCrossAlign();\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _itemOptions() {\r\n var options = super._itemOptions();\r\n options.fireItemStateChangedAction = e => {\r\n this._onItemStateChanged(e)\r\n };\r\n return options\r\n }\r\n repaint() {\r\n this._dimensionChanged()\r\n }\r\n}\r\nBox.ItemClass = BoxItem;\r\nregisterComponent(\"dxBox\", Box);\r\nexport default Box;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.time_view.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport Editor from \"../editor/editor\";\r\nimport NumberBox from \"../number_box\";\r\nimport SelectBox from \"../select_box\";\r\nimport Box from \"../box\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport dateLocalization from \"../../localization/date\";\r\nimport dateUtils from \"./ui.date_utils\";\r\nvar TIMEVIEW_CLASS = \"dx-timeview\";\r\nvar TIMEVIEW_CLOCK_CLASS = \"dx-timeview-clock\";\r\nvar TIMEVIEW_FIELD_CLASS = \"dx-timeview-field\";\r\nvar TIMEVIEW_HOURARROW_CLASS = \"dx-timeview-hourarrow\";\r\nvar TIMEVIEW_TIME_SEPARATOR_CLASS = \"dx-timeview-time-separator\";\r\nvar TIMEVIEW_FORMAT12_CLASS = \"dx-timeview-format12\";\r\nvar TIMEVIEW_FORMAT12_AM = -1;\r\nvar TIMEVIEW_FORMAT12_PM = 1;\r\nvar TIMEVIEW_MINUTEARROW_CLASS = \"dx-timeview-minutearrow\";\r\nvar rotateArrow = function($arrow, angle, offset) {\r\n cssRotate($arrow, angle, offset)\r\n};\r\nvar cssRotate = function($arrow, angle, offset) {\r\n $arrow.css(\"transform\", \"rotate(\" + angle + \"deg) translate(0,\" + offset + \"px)\")\r\n};\r\nvar TimeView = Editor.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n value: new Date(Date.now()),\r\n use24HourFormat: true,\r\n _showClock: true,\r\n _arrowOffset: 5,\r\n stylingMode: void 0\r\n })\r\n },\r\n _getValue: function() {\r\n return this.option(\"value\") || new Date\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this.$element().addClass(TIMEVIEW_CLASS)\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._renderBox();\r\n this._updateTime()\r\n },\r\n _renderBox: function() {\r\n var $box = $(\"
\").appendTo(this.$element());\r\n var items = [];\r\n if (this.option(\"_showClock\")) {\r\n items.push({\r\n ratio: 1,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n template: this._renderClock.bind(this)\r\n })\r\n }\r\n items.push({\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n template: this._renderField.bind(this)\r\n });\r\n this._createComponent($box, Box, {\r\n height: \"100%\",\r\n width: \"100%\",\r\n direction: \"col\",\r\n items: items\r\n })\r\n },\r\n _renderClock: function(_, __, container) {\r\n this._$hourArrow = $(\"
\").addClass(TIMEVIEW_HOURARROW_CLASS);\r\n this._$minuteArrow = $(\"
\").addClass(TIMEVIEW_MINUTEARROW_CLASS);\r\n var $container = $(container);\r\n $container.addClass(TIMEVIEW_CLOCK_CLASS).append(this._$hourArrow).append(this._$minuteArrow);\r\n this.setAria(\"role\", \"presentation\", $container)\r\n },\r\n _updateClock: function() {\r\n var time = this._getValue();\r\n var hourArrowAngle = time.getHours() / 12 * 360 + time.getMinutes() / 60 * 30;\r\n var minuteArrowAngle = time.getMinutes() / 60 * 360;\r\n rotateArrow(this._$hourArrow, hourArrowAngle, this.option(\"_arrowOffset\"));\r\n rotateArrow(this._$minuteArrow, minuteArrowAngle, this.option(\"_arrowOffset\"))\r\n },\r\n _getBoxItems: function(is12HourFormat) {\r\n var items = [{\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n template: () => this._hourBox.$element()\r\n }, {\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n template: $(\"
\").addClass(TIMEVIEW_TIME_SEPARATOR_CLASS).text(dateLocalization.getTimeSeparator())\r\n }, {\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n template: () => this._minuteBox.$element()\r\n }];\r\n if (is12HourFormat) {\r\n items.push({\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n template: () => this._format12.$element()\r\n })\r\n }\r\n return items\r\n },\r\n _renderField: function() {\r\n var is12HourFormat = !this.option(\"use24HourFormat\");\r\n this._createHourBox(is12HourFormat);\r\n this._createMinuteBox();\r\n if (is12HourFormat) {\r\n this._createFormat12Box()\r\n }\r\n return this._createComponent($(\"
\").addClass(TIMEVIEW_FIELD_CLASS), Box, {\r\n direction: \"row\",\r\n align: \"center\",\r\n crossAlign: \"center\",\r\n items: this._getBoxItems(is12HourFormat)\r\n }).$element()\r\n },\r\n _createHourBox: function(is12HourFormat) {\r\n var editor = this._hourBox = this._createComponent($(\"
\"), NumberBox, extend({\r\n min: -1,\r\n max: is12HourFormat ? 13 : 24,\r\n value: this._getValue().getHours(),\r\n onValueChanged: this._onHourBoxValueChanged.bind(this),\r\n onKeyboardHandled: opts => this._keyboardHandler(opts)\r\n }, this._getNumberBoxConfig()));\r\n editor.setAria(\"label\", \"hours\")\r\n },\r\n _isPM: function() {\r\n return !this.option(\"use24HourFormat\") && 1 === this._format12.option(\"value\")\r\n },\r\n _onHourBoxValueChanged: function(_ref) {\r\n var {\r\n value: value,\r\n component: component\r\n } = _ref;\r\n var currentValue = this._getValue();\r\n var newValue = new Date(currentValue);\r\n var newHours = this._convertMaxHourToMin(value);\r\n component.option(\"value\", newHours);\r\n if (this._isPM()) {\r\n newHours += 12\r\n }\r\n newValue.setHours(newHours);\r\n dateUtils.normalizeTime(newValue);\r\n this.option(\"value\", newValue)\r\n },\r\n _convertMaxHourToMin: function(hours) {\r\n var maxHoursValue = this.option(\"use24HourFormat\") ? 24 : 12;\r\n return (maxHoursValue + hours) % maxHoursValue\r\n },\r\n _createMinuteBox: function() {\r\n var editor = this._minuteBox = this._createComponent($(\"
\"), NumberBox, extend({\r\n min: -1,\r\n max: 60,\r\n value: this._getValue().getMinutes(),\r\n onKeyboardHandled: opts => this._keyboardHandler(opts),\r\n onValueChanged: _ref2 => {\r\n var {\r\n value: value,\r\n component: component\r\n } = _ref2;\r\n var newMinutes = (60 + value) % 60;\r\n component.option(\"value\", newMinutes);\r\n var time = new Date(this._getValue());\r\n time.setMinutes(newMinutes);\r\n dateUtils.normalizeTime(time);\r\n this.option(\"value\", time)\r\n }\r\n }, this._getNumberBoxConfig()));\r\n editor.setAria(\"label\", \"minutes\")\r\n },\r\n _createFormat12Box: function() {\r\n var periodNames = dateLocalization.getPeriodNames();\r\n var editor = this._format12 = this._createComponent($(\"
\").addClass(TIMEVIEW_FORMAT12_CLASS), SelectBox, {\r\n items: [{\r\n value: TIMEVIEW_FORMAT12_AM,\r\n text: periodNames[0]\r\n }, {\r\n value: TIMEVIEW_FORMAT12_PM,\r\n text: periodNames[1]\r\n }],\r\n valueExpr: \"value\",\r\n displayExpr: \"text\",\r\n onKeyboardHandled: opts => this._keyboardHandler(opts),\r\n onValueChanged: _ref3 => {\r\n var {\r\n value: value\r\n } = _ref3;\r\n var hours = this._getValue().getHours();\r\n var time = new Date(this._getValue());\r\n var newHours = (hours + 12 * value) % 24;\r\n time.setHours(newHours);\r\n this.option(\"value\", time)\r\n },\r\n value: this._getValue().getHours() >= 12 ? TIMEVIEW_FORMAT12_PM : TIMEVIEW_FORMAT12_AM,\r\n stylingMode: this.option(\"stylingMode\")\r\n });\r\n editor.setAria(\"label\", \"type\")\r\n },\r\n _refreshFormat12: function() {\r\n if (this.option(\"use24HourFormat\")) {\r\n return\r\n }\r\n var value = this._getValue();\r\n var hours = value.getHours();\r\n var isPM = hours >= 12;\r\n var newValue = isPM ? TIMEVIEW_FORMAT12_PM : TIMEVIEW_FORMAT12_AM;\r\n this._silentEditorValueUpdate(this._format12, newValue)\r\n },\r\n _silentEditorValueUpdate: function(editor, value) {\r\n if (editor) {\r\n editor._suppressValueChangeAction();\r\n editor.option(\"value\", value);\r\n editor._resumeValueChangeAction()\r\n }\r\n },\r\n _getNumberBoxConfig: function() {\r\n return {\r\n showSpinButtons: true,\r\n displayValueFormatter: function(value) {\r\n return (value < 10 ? \"0\" : \"\") + value\r\n },\r\n stylingMode: this.option(\"stylingMode\")\r\n }\r\n },\r\n _normalizeHours: function(hours) {\r\n return this.option(\"use24HourFormat\") ? hours : hours % 12 || 12\r\n },\r\n _updateField: function() {\r\n var hours = this._normalizeHours(this._getValue().getHours());\r\n this._silentEditorValueUpdate(this._hourBox, hours);\r\n this._silentEditorValueUpdate(this._minuteBox, this._getValue().getMinutes());\r\n this._refreshFormat12()\r\n },\r\n _updateTime: function() {\r\n if (this.option(\"_showClock\")) {\r\n this._updateClock()\r\n }\r\n this._updateField()\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this._updateTime()\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"value\":\r\n this._updateTime();\r\n this.callBase(args);\r\n break;\r\n case \"_arrowOffset\":\r\n break;\r\n case \"use24HourFormat\":\r\n case \"_showClock\":\r\n case \"stylingMode\":\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxTimeView\", TimeView);\r\nexport default TimeView;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.strategy.calendar_with_time.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nimport CalendarStrategy from \"./ui.date_box.strategy.calendar\";\r\nimport TimeView from \"./ui.time_view\";\r\nimport dateLocalization from \"../../localization/date\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport Box from \"../box\";\r\nimport uiDateUtils from \"./ui.date_utils\";\r\nvar SHRINK_VIEW_SCREEN_WIDTH = 573;\r\nvar DATEBOX_ADAPTIVITY_MODE_CLASS = \"dx-datebox-adaptivity-mode\";\r\nvar DATEBOX_TIMEVIEW_SIDE_CLASS = \"dx-datebox-datetime-time-side\";\r\nvar CalendarWithTimeStrategy = CalendarStrategy.inherit({\r\n NAME: \"CalendarWithTime\",\r\n getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n applyValueMode: \"useButtons\",\r\n buttonsLocation: \"bottom after\",\r\n \"dropDownOptions.showTitle\": false\r\n })\r\n },\r\n _closeDropDownByEnter: function() {\r\n return dateUtils.sameDate(this._getContouredValue(), this.widgetOption(\"value\"))\r\n },\r\n getDisplayFormat: function(displayFormat) {\r\n return displayFormat || \"shortdateshorttime\"\r\n },\r\n _is24HourFormat: function() {\r\n return dateLocalization.is24HourFormat(this.getDisplayFormat(this.dateBox.option(\"displayFormat\")))\r\n },\r\n _getContouredValue: function() {\r\n var viewDate = this.callBase();\r\n return this._updateDateTime(viewDate)\r\n },\r\n _renderWidget: function() {\r\n this.callBase();\r\n this._timeView = this.dateBox._createComponent($(\"
\"), TimeView, {\r\n value: this.dateBoxValue(),\r\n _showClock: !this._isShrinkView(),\r\n use24HourFormat: this._is24HourFormat(),\r\n onValueChanged: this._valueChangedHandler.bind(this),\r\n stylingMode: this.dateBox.option(\"stylingMode\")\r\n });\r\n this._timeView.registerKeyHandler(\"escape\", this._escapeHandler.bind(this))\r\n },\r\n renderOpenedState: function() {\r\n this.callBase();\r\n var popup = this._getPopup();\r\n if (popup) {\r\n popup.$wrapper().toggleClass(DATEBOX_ADAPTIVITY_MODE_CLASS, this._isSmallScreen())\r\n }\r\n clearTimeout(this._repaintTimer);\r\n this._repaintTimer = setTimeout(function() {\r\n this._getPopup() && this._getPopup().repaint()\r\n }.bind(this), 0)\r\n },\r\n isAdaptivityChanged: function() {\r\n var isAdaptiveMode = this._isShrinkView();\r\n var currentAdaptiveMode = this._currentAdaptiveMode;\r\n if (isAdaptiveMode !== currentAdaptiveMode) {\r\n this._currentAdaptiveMode = isAdaptiveMode;\r\n return void 0 !== currentAdaptiveMode\r\n }\r\n return this.callBase()\r\n },\r\n _updateValue: function(preventDefaultValue) {\r\n var date = this.dateBoxValue();\r\n if (!date && !preventDefaultValue) {\r\n date = new Date;\r\n uiDateUtils.normalizeTime(date)\r\n }\r\n this.callBase();\r\n if (this._timeView) {\r\n date && this._timeView.option(\"value\", date);\r\n this._timeView.option(\"use24HourFormat\", this._is24HourFormat())\r\n }\r\n },\r\n _isSmallScreen: function() {\r\n return getWidth(window) <= SHRINK_VIEW_SCREEN_WIDTH\r\n },\r\n _isShrinkView: function() {\r\n return !this.dateBox.option(\"showAnalogClock\") || this.dateBox.option(\"adaptivityEnabled\") && this._isSmallScreen()\r\n },\r\n _getBoxItems: function() {\r\n var items = [{\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n name: \"calendar\"\r\n }];\r\n if (!this._isShrinkView()) {\r\n items.push({\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n name: \"time\"\r\n })\r\n }\r\n return items\r\n },\r\n renderPopupContent: function() {\r\n this.callBase();\r\n this._currentAdaptiveMode = this._isShrinkView();\r\n var $popupContent = this._getPopup().$content();\r\n this._box = this.dateBox._createComponent($(\"
\").appendTo($popupContent), Box, {\r\n direction: \"row\",\r\n crossAlign: \"stretch\",\r\n items: this._getBoxItems(),\r\n itemTemplate: function(data, i, element) {\r\n var $container = $(\"
\");\r\n switch (data.name) {\r\n case \"calendar\":\r\n $container.append(this._widget.$element());\r\n if (this._isShrinkView()) {\r\n this._timeView.$element().addClass(DATEBOX_TIMEVIEW_SIDE_CLASS);\r\n $container.append(this._timeView.$element())\r\n }\r\n break;\r\n case \"time\":\r\n $container.append(this._timeView.$element());\r\n $(element).addClass(DATEBOX_TIMEVIEW_SIDE_CLASS)\r\n }\r\n return $container\r\n }.bind(this)\r\n });\r\n this._attachTabHandler()\r\n },\r\n popupConfig: function(_popupConfig) {\r\n var calendarPopupConfig = this.callBase(_popupConfig);\r\n var result = extend(calendarPopupConfig, {\r\n width: \"auto\",\r\n onShowing: function() {\r\n if (\"fallback\" === this._box.option(\"_layoutStrategy\")) {\r\n var clockMinWidth = this._getPopup().$content().find(\".dx-timeview-clock\").css(\"minWidth\");\r\n this._timeView.$element().css(\"maxWidth\", clockMinWidth)\r\n }\r\n }.bind(this)\r\n });\r\n return result\r\n },\r\n getFirstPopupElement: function() {\r\n return this._timeView._hourBox.$element().find(\"input\")\r\n },\r\n _attachTabHandler: function() {\r\n var dateBox = this.dateBox;\r\n this._timeView._hourBox.registerKeyHandler(\"tab\", (function(e) {\r\n if (e.shiftKey) {\r\n e.preventDefault();\r\n dateBox.focus()\r\n }\r\n }))\r\n },\r\n _preventFocusOnPopup: function(e) {\r\n if (!$(e.target).hasClass(\"dx-texteditor-input\")) {\r\n this.callBase.apply(this, arguments);\r\n if (!this.dateBox._hasFocusClass()) {\r\n this.dateBox.focus()\r\n }\r\n }\r\n },\r\n _updateDateTime: function(date) {\r\n var time = this._timeView.option(\"value\");\r\n date.setHours(time.getHours(), time.getMinutes(), time.getSeconds(), time.getMilliseconds());\r\n return date\r\n },\r\n getValue: function() {\r\n var _this$_widget$option;\r\n var date = null !== (_this$_widget$option = this._widget.option(\"value\")) && void 0 !== _this$_widget$option ? _this$_widget$option : this._widget.getContouredDate();\r\n date = date ? new Date(date) : new Date;\r\n return this._updateDateTime(date)\r\n },\r\n dispose: function() {\r\n clearTimeout(this._removeMinWidthTimer);\r\n clearTimeout(this._repaintTimer);\r\n this.callBase()\r\n }\r\n});\r\nexport default CalendarWithTimeStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.strategy.list.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterHeight,\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nimport List from \"../list_light\";\r\nimport \"../list/modules/selection\";\r\nimport DateBoxStrategy from \"./ui.date_box.strategy\";\r\nimport {\r\n noop,\r\n ensureDefined\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDate\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport dateUtils from \"./ui.date_utils\";\r\nimport dateLocalization from \"../../localization/date\";\r\nimport dateSerialization from \"../../core/utils/date_serialization\";\r\nimport {\r\n getSizeValue\r\n} from \"../drop_down_editor/utils\";\r\nvar DATE_FORMAT = \"date\";\r\nvar BOUNDARY_VALUES = {\r\n min: new Date(0, 0, 0, 0, 0),\r\n max: new Date(0, 0, 0, 23, 59)\r\n};\r\nvar ListStrategy = DateBoxStrategy.inherit({\r\n NAME: \"List\",\r\n supportedKeys: function() {\r\n return {\r\n tab: function() {\r\n var {\r\n opened: opened,\r\n applyValueMode: applyValueMode\r\n } = this.option();\r\n if (opened && \"instantly\" === applyValueMode) {\r\n this.close()\r\n }\r\n },\r\n space: noop,\r\n home: noop,\r\n end: noop\r\n }\r\n },\r\n getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n applyValueMode: \"instantly\"\r\n })\r\n },\r\n getDisplayFormat: function(displayFormat) {\r\n return displayFormat || \"shorttime\"\r\n },\r\n popupConfig: function(_popupConfig) {\r\n return _popupConfig\r\n },\r\n getValue: function() {\r\n var selectedIndex = this._widget.option(\"selectedIndex\");\r\n if (-1 === selectedIndex) {\r\n return this.dateBox.option(\"value\")\r\n }\r\n var itemData = this._widgetItems[selectedIndex];\r\n return this._getDateByItemData(itemData)\r\n },\r\n useCurrentDateByDefault: function() {\r\n return true\r\n },\r\n getDefaultDate: function() {\r\n return new Date(null)\r\n },\r\n popupShowingHandler: function() {\r\n this.dateBox._dimensionChanged()\r\n },\r\n _renderWidget: function() {\r\n this.callBase();\r\n this._refreshItems()\r\n },\r\n _getWidgetName: function() {\r\n return List\r\n },\r\n _getWidgetOptions: function() {\r\n return {\r\n itemTemplate: this._timeListItemTemplate.bind(this),\r\n onItemClick: this._listItemClickHandler.bind(this),\r\n tabIndex: -1,\r\n onFocusedItemChanged: this._refreshActiveDescendant.bind(this),\r\n selectionMode: \"single\"\r\n }\r\n },\r\n _refreshActiveDescendant: function(e) {\r\n this.dateBox.setAria(\"activedescendant\", \"\");\r\n this.dateBox.setAria(\"activedescendant\", e.actionValue)\r\n },\r\n _refreshItems: function() {\r\n this._widgetItems = this._getTimeListItems();\r\n this._widget.option(\"items\", this._widgetItems)\r\n },\r\n renderOpenedState: function() {\r\n if (!this._widget) {\r\n return\r\n }\r\n this._widget.option(\"focusedElement\", null);\r\n this._setSelectedItemsByValue();\r\n if (this._widget.option(\"templatesRenderAsynchronously\")) {\r\n this._asyncScrollTimeout = setTimeout(this._scrollToSelectedItem.bind(this))\r\n } else {\r\n this._scrollToSelectedItem()\r\n }\r\n },\r\n dispose: function() {\r\n this.callBase();\r\n clearTimeout(this._asyncScrollTimeout)\r\n },\r\n _updateValue: function() {\r\n if (!this._widget) {\r\n return\r\n }\r\n this._refreshItems();\r\n this._setSelectedItemsByValue();\r\n this._scrollToSelectedItem()\r\n },\r\n _setSelectedItemsByValue: function() {\r\n var value = this.dateBoxValue();\r\n var dateIndex = this._getDateIndex(value);\r\n if (-1 === dateIndex) {\r\n this._widget.option(\"selectedItems\", [])\r\n } else {\r\n this._widget.option(\"selectedIndex\", dateIndex)\r\n }\r\n },\r\n _scrollToSelectedItem: function() {\r\n this._widget.scrollToItem(this._widget.option(\"selectedIndex\"))\r\n },\r\n _getDateIndex: function(date) {\r\n var result = -1;\r\n for (var i = 0, n = this._widgetItems.length; i < n; i++) {\r\n if (this._areDatesEqual(date, this._widgetItems[i])) {\r\n result = i;\r\n break\r\n }\r\n }\r\n return result\r\n },\r\n _areDatesEqual: function(first, second) {\r\n return isDate(first) && isDate(second) && first.getHours() === second.getHours() && first.getMinutes() === second.getMinutes()\r\n },\r\n _getTimeListItems: function() {\r\n var min = this.dateBox.dateOption(\"min\") || this._getBoundaryDate(\"min\");\r\n var max = this.dateBox.dateOption(\"max\") || this._getBoundaryDate(\"max\");\r\n var value = this.dateBox.dateOption(\"value\") || null;\r\n var delta = max - min;\r\n var minutes = min.getMinutes() % this.dateBox.option(\"interval\");\r\n if (delta < 0) {\r\n return []\r\n }\r\n if (delta > dateUtils.ONE_DAY) {\r\n delta = dateUtils.ONE_DAY\r\n }\r\n if (value - min < dateUtils.ONE_DAY) {\r\n return this._getRangeItems(min, new Date(min), delta)\r\n }\r\n min = this._getBoundaryDate(\"min\");\r\n min.setMinutes(minutes);\r\n if (value && Math.abs(value - max) < dateUtils.ONE_DAY) {\r\n delta = (60 * max.getHours() + Math.abs(max.getMinutes() - minutes)) * dateUtils.ONE_MINUTE\r\n }\r\n return this._getRangeItems(min, new Date(min), delta)\r\n },\r\n _getRangeItems: function(startValue, currentValue, rangeDuration) {\r\n var rangeItems = [];\r\n var interval = this.dateBox.option(\"interval\");\r\n while (currentValue - startValue <= rangeDuration) {\r\n rangeItems.push(new Date(currentValue));\r\n currentValue.setMinutes(currentValue.getMinutes() + interval)\r\n }\r\n return rangeItems\r\n },\r\n _getBoundaryDate: function(boundary) {\r\n var boundaryValue = BOUNDARY_VALUES[boundary];\r\n var currentValue = new Date(ensureDefined(this.dateBox.dateOption(\"value\"), 0));\r\n return new Date(currentValue.getFullYear(), currentValue.getMonth(), currentValue.getDate(), boundaryValue.getHours(), boundaryValue.getMinutes())\r\n },\r\n _timeListItemTemplate: function(itemData) {\r\n var displayFormat = this.dateBox.option(\"displayFormat\");\r\n return dateLocalization.format(itemData, this.getDisplayFormat(displayFormat))\r\n },\r\n _listItemClickHandler: function(e) {\r\n if (\"useButtons\" === this.dateBox.option(\"applyValueMode\")) {\r\n return\r\n }\r\n var date = this._getDateByItemData(e.itemData);\r\n this.dateBox.option(\"opened\", false);\r\n this.dateBoxValue(date, e.event)\r\n },\r\n _getDateByItemData: function(itemData) {\r\n var date = this.dateBox.option(\"value\");\r\n var hours = itemData.getHours();\r\n var minutes = itemData.getMinutes();\r\n var seconds = itemData.getSeconds();\r\n var year = itemData.getFullYear();\r\n var month = itemData.getMonth();\r\n var day = itemData.getDate();\r\n if (date) {\r\n if (this.dateBox.option(\"dateSerializationFormat\")) {\r\n date = dateSerialization.deserializeDate(date)\r\n } else {\r\n date = new Date(date)\r\n }\r\n date.setHours(hours);\r\n date.setMinutes(minutes);\r\n date.setSeconds(seconds);\r\n date.setFullYear(year);\r\n date.setMonth(month);\r\n date.setDate(day)\r\n } else {\r\n date = new Date(year, month, day, hours, minutes, 0, 0)\r\n }\r\n return date\r\n },\r\n getKeyboardListener: function() {\r\n return this._widget\r\n },\r\n _updatePopupHeight: function() {\r\n var dropDownOptionsHeight = getSizeValue(this.dateBox.option(\"dropDownOptions.height\"));\r\n if (void 0 === dropDownOptionsHeight || \"auto\" === dropDownOptionsHeight) {\r\n this.dateBox._setPopupOption(\"height\", \"auto\");\r\n var popupHeight = getOuterHeight(this._widget.$element());\r\n var maxHeight = .45 * getHeight(window);\r\n this.dateBox._setPopupOption(\"height\", Math.min(popupHeight, maxHeight))\r\n }\r\n this.dateBox._timeList && this.dateBox._timeList.updateDimensions()\r\n },\r\n getParsedText: function(text, format) {\r\n var value = this.callBase(text, format);\r\n if (value) {\r\n value = dateUtils.mergeDates(value, new Date(null), DATE_FORMAT)\r\n }\r\n return value\r\n }\r\n});\r\nexport default ListStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.base.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nimport {\r\n isDate as isDateType,\r\n isString,\r\n isNumeric\r\n} from \"../../core/utils/type\";\r\nimport {\r\n createTextElementHiddenCopy\r\n} from \"../../core/utils/dom\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n inputType\r\n} from \"../../core/utils/support\";\r\nimport devices from \"../../core/devices\";\r\nimport config from \"../../core/config\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport uiDateUtils from \"./ui.date_utils\";\r\nimport dateSerialization from \"../../core/utils/date_serialization\";\r\nimport DropDownEditor from \"../drop_down_editor/ui.drop_down_editor\";\r\nimport dateLocalization from \"../../localization/date\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport Calendar from \"./ui.date_box.strategy.calendar\";\r\nimport DateView from \"./ui.date_box.strategy.date_view\";\r\nimport Native from \"./ui.date_box.strategy.native\";\r\nimport CalendarWithTime from \"./ui.date_box.strategy.calendar_with_time\";\r\nimport List from \"./ui.date_box.strategy.list\";\r\nvar DATEBOX_CLASS = \"dx-datebox\";\r\nvar DX_AUTO_WIDTH_CLASS = \"dx-auto-width\";\r\nvar DX_INVALID_BADGE_CLASS = \"dx-show-invalid-badge\";\r\nvar DX_CLEAR_BUTTON_CLASS = \"dx-clear-button-area\";\r\nvar DATEBOX_WRAPPER_CLASS = \"dx-datebox-wrapper\";\r\nvar DROPDOWNEDITOR_OVERLAY_CLASS = \"dx-dropdowneditor-overlay\";\r\nvar PICKER_TYPE = {\r\n calendar: \"calendar\",\r\n rollers: \"rollers\",\r\n list: \"list\",\r\n native: \"native\"\r\n};\r\nvar TYPE = {\r\n date: \"date\",\r\n datetime: \"datetime\",\r\n time: \"time\"\r\n};\r\nvar STRATEGY_NAME = {\r\n calendar: \"Calendar\",\r\n dateView: \"DateView\",\r\n native: \"Native\",\r\n calendarWithTime: \"CalendarWithTime\",\r\n list: \"List\"\r\n};\r\nvar STRATEGY_CLASSES = {\r\n Calendar: Calendar,\r\n DateView: DateView,\r\n Native: Native,\r\n CalendarWithTime: CalendarWithTime,\r\n List: List\r\n};\r\nvar DateBox = DropDownEditor.inherit({\r\n _supportedKeys: function() {\r\n return extend(this.callBase(), this._strategy.supportedKeys())\r\n },\r\n _renderButtonContainers: function() {\r\n this.callBase.apply(this, arguments);\r\n this._strategy.customizeButtons()\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n type: \"date\",\r\n showAnalogClock: true,\r\n value: null,\r\n dateSerializationFormat: void 0,\r\n min: void 0,\r\n max: void 0,\r\n displayFormat: null,\r\n interval: 30,\r\n disabledDates: null,\r\n pickerType: PICKER_TYPE.calendar,\r\n invalidDateMessage: messageLocalization.format(\"dxDateBox-validation-datetime\"),\r\n dateOutOfRangeMessage: messageLocalization.format(\"validation-range\"),\r\n applyButtonText: messageLocalization.format(\"OK\"),\r\n adaptivityEnabled: false,\r\n calendarOptions: {},\r\n useHiddenSubmitElement: true\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"ios\"\r\n },\r\n options: {\r\n \"dropDownOptions.showTitle\": true\r\n }\r\n }, {\r\n device: {\r\n platform: \"android\"\r\n },\r\n options: {\r\n buttonsLocation: \"bottom after\"\r\n }\r\n }, {\r\n device: function() {\r\n var realDevice = devices.real();\r\n var platform = realDevice.platform;\r\n return \"ios\" === platform || \"android\" === platform\r\n },\r\n options: {\r\n pickerType: PICKER_TYPE.native\r\n }\r\n }, {\r\n device: {\r\n platform: \"generic\",\r\n deviceType: \"desktop\"\r\n },\r\n options: {\r\n buttonsLocation: \"bottom after\"\r\n }\r\n }])\r\n },\r\n _initOptions: function(options) {\r\n this._userOptions = extend({}, options);\r\n this.callBase(options);\r\n this._updatePickerOptions()\r\n },\r\n _updatePickerOptions: function() {\r\n var pickerType = this.option(\"pickerType\");\r\n var type = this.option(\"type\");\r\n if (pickerType === PICKER_TYPE.list && (type === TYPE.datetime || type === TYPE.date)) {\r\n pickerType = PICKER_TYPE.calendar\r\n }\r\n if (type === TYPE.time && pickerType === PICKER_TYPE.calendar) {\r\n pickerType = PICKER_TYPE.list\r\n }\r\n this.option(\"showDropDownButton\", \"generic\" !== devices.real().platform || pickerType !== PICKER_TYPE.native);\r\n this._pickerType = pickerType\r\n },\r\n _init: function() {\r\n this._initStrategy();\r\n this.option(extend({}, this._strategy.getDefaultOptions(), this._userOptions));\r\n delete this._userOptions;\r\n this.callBase()\r\n },\r\n _toLowerCaseFirstLetter: function(string) {\r\n return string.charAt(0).toLowerCase() + string.substr(1)\r\n },\r\n _initStrategy: function() {\r\n var strategyName = this._getStrategyName(this._getFormatType());\r\n var strategy = STRATEGY_CLASSES[strategyName];\r\n if (!(this._strategy && this._strategy.NAME === strategyName)) {\r\n this._strategy = new strategy(this)\r\n }\r\n },\r\n _getFormatType: function() {\r\n var currentType = this.option(\"type\");\r\n var isTime = /h|m|s/g.test(currentType);\r\n var isDate = /d|M|Y/g.test(currentType);\r\n var type = \"\";\r\n if (isDate) {\r\n type += TYPE.date\r\n }\r\n if (isTime) {\r\n type += TYPE.time\r\n }\r\n return type\r\n },\r\n _getStrategyName: function(type) {\r\n var pickerType = this._pickerType;\r\n if (pickerType === PICKER_TYPE.rollers) {\r\n return STRATEGY_NAME.dateView\r\n } else if (pickerType === PICKER_TYPE.native) {\r\n return STRATEGY_NAME.native\r\n }\r\n if (type === TYPE.date) {\r\n return STRATEGY_NAME.calendar\r\n }\r\n if (type === TYPE.datetime) {\r\n return STRATEGY_NAME.calendarWithTime\r\n }\r\n return STRATEGY_NAME.list\r\n },\r\n _initMarkup: function() {\r\n this.$element().addClass(DATEBOX_CLASS);\r\n this.callBase();\r\n this._refreshFormatClass();\r\n this._refreshPickerTypeClass();\r\n this._strategy.renderInputMinMax(this._input())\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._formatValidationIcon()\r\n },\r\n _renderDimensions: function() {\r\n this.callBase();\r\n this.$element().toggleClass(DX_AUTO_WIDTH_CLASS, !this.option(\"width\"));\r\n this._dimensionChanged()\r\n },\r\n _dimensionChanged: function() {\r\n this.callBase(arguments);\r\n if (this._popup) {\r\n var _this$_strategy$_upda, _this$_strategy;\r\n null === (_this$_strategy$_upda = (_this$_strategy = this._strategy)._updatePopupHeight) || void 0 === _this$_strategy$_upda ? void 0 : _this$_strategy$_upda.call(_this$_strategy)\r\n }\r\n },\r\n _refreshFormatClass: function() {\r\n var $element = this.$element();\r\n each(TYPE, (function(_, item) {\r\n $element.removeClass(DATEBOX_CLASS + \"-\" + item)\r\n }));\r\n $element.addClass(DATEBOX_CLASS + \"-\" + this.option(\"type\"))\r\n },\r\n _refreshPickerTypeClass: function() {\r\n var $element = this.$element();\r\n each(PICKER_TYPE, (function(_, item) {\r\n $element.removeClass(DATEBOX_CLASS + \"-\" + item)\r\n }));\r\n $element.addClass(DATEBOX_CLASS + \"-\" + this._pickerType)\r\n },\r\n _formatValidationIcon: function() {\r\n if (!hasWindow()) {\r\n return\r\n }\r\n var inputElement = this._input().get(0);\r\n var isRtlEnabled = this.option(\"rtlEnabled\");\r\n var clearButtonWidth = this._getClearButtonWidth();\r\n var longestElementDimensions = this._getLongestElementDimensions();\r\n var curWidth = parseFloat(window.getComputedStyle(inputElement).width) - clearButtonWidth;\r\n var shouldHideValidationIcon = longestElementDimensions.width > curWidth;\r\n var style = inputElement.style;\r\n this.$element().toggleClass(DX_INVALID_BADGE_CLASS, !shouldHideValidationIcon);\r\n if (shouldHideValidationIcon) {\r\n if (void 0 === this._storedPadding) {\r\n this._storedPadding = isRtlEnabled ? longestElementDimensions.leftPadding : longestElementDimensions.rightPadding\r\n }\r\n isRtlEnabled ? style.paddingLeft = 0 : style.paddingRight = 0\r\n } else {\r\n isRtlEnabled ? style.paddingLeft = this._storedPadding + \"px\" : style.paddingRight = this._storedPadding + \"px\"\r\n }\r\n },\r\n _getClearButtonWidth: function() {\r\n var clearButtonWidth = 0;\r\n if (this._isClearButtonVisible() && \"\" === this._input().val()) {\r\n var clearButtonElement = this.$element().find(\".\" + DX_CLEAR_BUTTON_CLASS).get(0);\r\n clearButtonWidth = parseFloat(window.getComputedStyle(clearButtonElement).width)\r\n }\r\n return clearButtonWidth\r\n },\r\n _getLongestElementDimensions: function() {\r\n var format = this._strategy.getDisplayFormat(this.option(\"displayFormat\"));\r\n var longestValue = dateLocalization.format(uiDateUtils.getLongestDate(format, dateLocalization.getMonthNames(), dateLocalization.getDayNames()), format);\r\n var $input = this._input();\r\n var inputElement = $input.get(0);\r\n var $longestValueElement = createTextElementHiddenCopy($input, longestValue);\r\n var isPaddingStored = void 0 !== this._storedPadding;\r\n var storedPadding = !isPaddingStored ? 0 : this._storedPadding;\r\n $longestValueElement.appendTo(this.$element());\r\n var elementWidth = parseFloat(window.getComputedStyle($longestValueElement.get(0)).width);\r\n var rightPadding = parseFloat(window.getComputedStyle(inputElement).paddingRight);\r\n var leftPadding = parseFloat(window.getComputedStyle(inputElement).paddingLeft);\r\n var necessaryWidth = elementWidth + leftPadding + rightPadding + storedPadding;\r\n $longestValueElement.remove();\r\n return {\r\n width: necessaryWidth,\r\n leftPadding: leftPadding,\r\n rightPadding: rightPadding\r\n }\r\n },\r\n _getKeyboardListeners() {\r\n return this.callBase().concat([this._strategy && this._strategy.getKeyboardListener()])\r\n },\r\n _renderPopup: function() {\r\n this.callBase();\r\n this._popup.$wrapper().addClass(DATEBOX_WRAPPER_CLASS);\r\n this._renderPopupWrapper()\r\n },\r\n _popupConfig: function() {\r\n var popupConfig = this.callBase();\r\n return extend(this._strategy.popupConfig(popupConfig), {\r\n title: this._getPopupTitle(),\r\n dragEnabled: false\r\n })\r\n },\r\n _renderPopupWrapper: function() {\r\n if (!this._popup) {\r\n return\r\n }\r\n var $element = this.$element();\r\n var classPostfixes = extend({}, TYPE, PICKER_TYPE);\r\n each(classPostfixes, function(_, item) {\r\n $element.removeClass(DATEBOX_WRAPPER_CLASS + \"-\" + item)\r\n }.bind(this));\r\n this._popup.$wrapper().addClass(DATEBOX_WRAPPER_CLASS + \"-\" + this.option(\"type\")).addClass(DATEBOX_WRAPPER_CLASS + \"-\" + this._pickerType).addClass(DROPDOWNEDITOR_OVERLAY_CLASS)\r\n },\r\n _renderPopupContent: function() {\r\n this.callBase();\r\n this._strategy.renderPopupContent()\r\n },\r\n _getFirstPopupElement: function() {\r\n return this._strategy.getFirstPopupElement() || this.callBase()\r\n },\r\n _getLastPopupElement: function() {\r\n return this._strategy.getLastPopupElement() || this.callBase()\r\n },\r\n _popupShowingHandler: function() {\r\n this.callBase();\r\n this._strategy.popupShowingHandler()\r\n },\r\n _popupShownHandler: function() {\r\n this.callBase();\r\n this._strategy.renderOpenedState()\r\n },\r\n _popupHiddenHandler: function() {\r\n this.callBase();\r\n this._strategy.renderOpenedState();\r\n this._strategy.popupHiddenHandler()\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this._formatValidationIcon()\r\n }\r\n },\r\n _clearValueHandler: function(e) {\r\n this.option(\"text\", \"\");\r\n this.callBase(e)\r\n },\r\n _readOnlyPropValue: function() {\r\n if (this._pickerType === PICKER_TYPE.rollers) {\r\n return true\r\n }\r\n var platform = devices.real().platform;\r\n var isCustomValueDisabled = this._isNativeType() && (\"ios\" === platform || \"android\" === platform);\r\n if (isCustomValueDisabled) {\r\n return this.option(\"readOnly\")\r\n }\r\n return this.callBase()\r\n },\r\n _isClearButtonVisible: function() {\r\n return this.callBase() && !this._isNativeType()\r\n },\r\n _renderValue: function() {\r\n var value = this.dateOption(\"value\");\r\n this.option(\"text\", this._getDisplayedText(value));\r\n this._strategy.renderValue();\r\n return this.callBase()\r\n },\r\n _setSubmitValue: function() {\r\n var value = this.dateOption(\"value\");\r\n var dateSerializationFormat = this.option(\"dateSerializationFormat\");\r\n var submitFormat = uiDateUtils.SUBMIT_FORMATS_MAP[this.option(\"type\")];\r\n var submitValue = dateSerializationFormat ? dateSerialization.serializeDate(value, dateSerializationFormat) : uiDateUtils.toStandardDateFormat(value, submitFormat);\r\n this._getSubmitElement().val(submitValue)\r\n },\r\n _getDisplayedText: function(value) {\r\n var mode = this.option(\"mode\");\r\n var displayedText;\r\n if (\"text\" === mode) {\r\n var displayFormat = this._strategy.getDisplayFormat(this.option(\"displayFormat\"));\r\n displayedText = dateLocalization.format(value, displayFormat)\r\n } else {\r\n var format = this._getFormatByMode(mode);\r\n if (format) {\r\n displayedText = dateLocalization.format(value, format)\r\n } else {\r\n displayedText = uiDateUtils.toStandardDateFormat(value, mode)\r\n }\r\n }\r\n return displayedText\r\n },\r\n _getFormatByMode: function(mode) {\r\n return inputType(mode) ? null : uiDateUtils.FORMATS_MAP[mode]\r\n },\r\n _valueChangeEventHandler: function(e) {\r\n var {\r\n text: text,\r\n type: type,\r\n validationError: validationError\r\n } = this.option();\r\n var currentValue = this.dateOption(\"value\");\r\n if (text === this._getDisplayedText(currentValue)) {\r\n if (!validationError || validationError.editorSpecific) {\r\n this._applyInternalValidation(currentValue);\r\n this._applyCustomValidation(currentValue)\r\n }\r\n return\r\n }\r\n var parsedDate = this._getParsedDate(text);\r\n var value = null !== currentValue && void 0 !== currentValue ? currentValue : this._getDateByDefault();\r\n var newValue = uiDateUtils.mergeDates(value, parsedDate, type);\r\n var date = parsedDate && \"time\" === type ? newValue : parsedDate;\r\n if (this._applyInternalValidation(date).isValid) {\r\n var displayedText = this._getDisplayedText(newValue);\r\n if (value && newValue && value.getTime() === newValue.getTime() && displayedText !== text) {\r\n this._renderValue()\r\n } else {\r\n this.dateValue(newValue, e)\r\n }\r\n }\r\n },\r\n _getDateByDefault: function() {\r\n return this._strategy.useCurrentDateByDefault() && this._strategy.getDefaultDate()\r\n },\r\n _getParsedDate: function(text) {\r\n var displayFormat = this._strategy.getDisplayFormat(this.option(\"displayFormat\"));\r\n var parsedText = this._strategy.getParsedText(text, displayFormat);\r\n return null !== parsedText && void 0 !== parsedText ? parsedText : void 0\r\n },\r\n _applyInternalValidation(value) {\r\n var text = this.option(\"text\");\r\n var hasText = !!text && null !== value;\r\n var isDate = !!value && isDateType(value) && !isNaN(value.getTime());\r\n var isDateInRange = isDate && dateUtils.dateInRange(value, this.dateOption(\"min\"), this.dateOption(\"max\"), this.option(\"type\"));\r\n var isValid = !hasText && !value || isDateInRange;\r\n var validationMessage = \"\";\r\n if (!isDate) {\r\n validationMessage = this.option(\"invalidDateMessage\")\r\n } else if (!isDateInRange) {\r\n validationMessage = this.option(\"dateOutOfRangeMessage\")\r\n }\r\n this.option({\r\n isValid: isValid,\r\n validationError: isValid ? null : {\r\n editorSpecific: true,\r\n message: validationMessage\r\n }\r\n });\r\n return {\r\n isValid: isValid,\r\n isDate: isDate\r\n }\r\n },\r\n _applyCustomValidation: function(value) {\r\n this.validationRequest.fire({\r\n editor: this,\r\n value: this._serializeDate(value)\r\n })\r\n },\r\n _isValueChanged: function(newValue) {\r\n var oldValue = this.dateOption(\"value\");\r\n var oldTime = oldValue && oldValue.getTime();\r\n var newTime = newValue && newValue.getTime();\r\n return oldTime !== newTime\r\n },\r\n _isTextChanged: function(newValue) {\r\n var oldText = this.option(\"text\");\r\n var newText = newValue && this._getDisplayedText(newValue) || \"\";\r\n return oldText !== newText\r\n },\r\n _renderProps: function() {\r\n this.callBase();\r\n this._input().attr(\"autocomplete\", \"off\")\r\n },\r\n _renderOpenedState: function() {\r\n if (!this._isNativeType()) {\r\n this.callBase()\r\n }\r\n if (this._strategy.isAdaptivityChanged()) {\r\n this._refreshStrategy()\r\n }\r\n },\r\n _getPopupTitle: function() {\r\n var placeholder = this.option(\"placeholder\");\r\n if (placeholder) {\r\n return placeholder\r\n }\r\n var type = this.option(\"type\");\r\n if (type === TYPE.time) {\r\n return messageLocalization.format(\"dxDateBox-simulatedDataPickerTitleTime\")\r\n }\r\n if (type === TYPE.date || type === TYPE.datetime) {\r\n return messageLocalization.format(\"dxDateBox-simulatedDataPickerTitleDate\")\r\n }\r\n return \"\"\r\n },\r\n _refreshStrategy: function() {\r\n this._strategy.dispose();\r\n this._initStrategy();\r\n this.option(this._strategy.getDefaultOptions());\r\n this._refresh()\r\n },\r\n _applyButtonHandler: function(e) {\r\n var value = this._strategy.getValue();\r\n this.dateValue(value, e.event);\r\n this.callBase()\r\n },\r\n _dispose: function() {\r\n var _this$_strategy2;\r\n this.callBase();\r\n null === (_this$_strategy2 = this._strategy) || void 0 === _this$_strategy2 ? void 0 : _this$_strategy2.dispose()\r\n },\r\n _isNativeType: function() {\r\n return this._pickerType === PICKER_TYPE.native\r\n },\r\n _updatePopupTitle: function() {\r\n var _this$_popup;\r\n null === (_this$_popup = this._popup) || void 0 === _this$_popup ? void 0 : _this$_popup.option(\"title\", this._getPopupTitle())\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"showClearButton\":\r\n case \"buttons\":\r\n this.callBase.apply(this, arguments);\r\n this._formatValidationIcon();\r\n break;\r\n case \"pickerType\":\r\n this._updatePickerOptions({\r\n pickerType: args.value\r\n });\r\n this._refreshStrategy();\r\n this._refreshPickerTypeClass();\r\n this._invalidate();\r\n break;\r\n case \"type\":\r\n this._updatePickerOptions({\r\n format: args.value\r\n });\r\n this._refreshStrategy();\r\n this._refreshFormatClass();\r\n this._renderPopupWrapper();\r\n this._formatValidationIcon();\r\n this._updateValue();\r\n break;\r\n case \"placeholder\":\r\n this.callBase.apply(this, arguments);\r\n this._updatePopupTitle();\r\n break;\r\n case \"min\":\r\n case \"max\":\r\n var isValid = this.option(\"isValid\");\r\n this._applyInternalValidation(this.dateOption(\"value\"));\r\n if (!isValid) {\r\n this._applyCustomValidation(this.dateOption(\"value\"))\r\n }\r\n this._invalidate();\r\n break;\r\n case \"dateSerializationFormat\":\r\n case \"interval\":\r\n case \"disabledDates\":\r\n case \"calendarOptions\":\r\n this._invalidate();\r\n break;\r\n case \"displayFormat\":\r\n this.option(\"text\", this._getDisplayedText(this.dateOption(\"value\")));\r\n this._renderInputValue();\r\n break;\r\n case \"text\":\r\n this._strategy.textChangedHandler(args.value);\r\n this.callBase.apply(this, arguments);\r\n break;\r\n case \"isValid\":\r\n this.callBase.apply(this, arguments);\r\n this._formatValidationIcon();\r\n break;\r\n case \"showDropDownButton\":\r\n this._formatValidationIcon();\r\n this.callBase.apply(this, arguments);\r\n break;\r\n case \"readOnly\":\r\n this.callBase.apply(this, arguments);\r\n this._formatValidationIcon();\r\n break;\r\n case \"invalidDateMessage\":\r\n case \"dateOutOfRangeMessage\":\r\n case \"adaptivityEnabled\":\r\n case \"showAnalogClock\":\r\n break;\r\n default:\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _getSerializationFormat: function() {\r\n var value = this.option(\"value\");\r\n if (this.option(\"dateSerializationFormat\") && config().forceIsoDateParsing) {\r\n return this.option(\"dateSerializationFormat\")\r\n }\r\n if (isNumeric(value)) {\r\n return \"number\"\r\n }\r\n if (!isString(value)) {\r\n return\r\n }\r\n return dateSerialization.getDateSerializationFormat(value)\r\n },\r\n _updateValue: function(value) {\r\n this.callBase();\r\n this._applyInternalValidation(null !== value && void 0 !== value ? value : this.dateOption(\"value\"))\r\n },\r\n dateValue: function(value, dxEvent) {\r\n var isValueChanged = this._isValueChanged(value);\r\n if (isValueChanged && dxEvent) {\r\n this._saveValueChangeEvent(dxEvent)\r\n }\r\n if (!isValueChanged) {\r\n if (this._isTextChanged(value)) {\r\n this._updateValue(value)\r\n } else if (\"\" === this.option(\"text\")) {\r\n this._applyCustomValidation(value)\r\n }\r\n }\r\n return this.dateOption(\"value\", value)\r\n },\r\n dateOption: function(optionName, value) {\r\n if (1 === arguments.length) {\r\n return dateSerialization.deserializeDate(this.option(optionName))\r\n }\r\n this.option(optionName, this._serializeDate(value))\r\n },\r\n _serializeDate: function(date) {\r\n var serializationFormat = this._getSerializationFormat();\r\n return dateSerialization.serializeDate(date, serializationFormat)\r\n },\r\n _clearValue: function() {\r\n var value = this.option(\"value\");\r\n this.callBase();\r\n if (null === value) {\r\n this._applyCustomValidation(null)\r\n }\r\n },\r\n reset: function() {\r\n var value = this.option(\"value\");\r\n this.callBase();\r\n if (null === value) {\r\n this._applyInternalValidation(null)\r\n }\r\n }\r\n});\r\nexport default DateBox;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.mask.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n addNamespace,\r\n normalizeKeyName,\r\n isCommandKeyPressed\r\n} from \"../../events/utils/index\";\r\nimport {\r\n isFunction,\r\n isString,\r\n isDate,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n clipboardText\r\n} from \"../../core/utils/dom\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n fitIntoRange,\r\n inRange,\r\n sign\r\n} from \"../../core/utils/math\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n getDatePartIndexByPosition,\r\n renderDateParts\r\n} from \"./ui.date_box.mask.parts\";\r\nimport dateLocalization from \"../../localization/date\";\r\nimport {\r\n getRegExpInfo\r\n} from \"../../localization/ldml/date.parser\";\r\nimport {\r\n getFormat\r\n} from \"../../localization/ldml/date.format\";\r\nimport DateBoxBase from \"./ui.date_box.base\";\r\nimport numberLocalization from \"../../localization/number\";\r\nimport devices from \"../../core/devices\";\r\nimport browser from \"../../core/utils/browser\";\r\nvar MASK_EVENT_NAMESPACE = \"dateBoxMask\";\r\nvar FORWARD = 1;\r\nvar BACKWARD = -1;\r\nvar DateBoxMask = DateBoxBase.inherit({\r\n _supportedKeys(e) {\r\n var originalHandlers = this.callBase(e);\r\n var callOriginalHandler = e => {\r\n var originalHandler = originalHandlers[normalizeKeyName(e)];\r\n return originalHandler && originalHandler.apply(this, [e])\r\n };\r\n var applyHandler = (e, maskHandler) => {\r\n if (this._shouldUseOriginalHandler(e)) {\r\n return callOriginalHandler.apply(this, [e])\r\n } else {\r\n return maskHandler.apply(this, [e])\r\n }\r\n };\r\n return extend({}, originalHandlers, {\r\n del: e => applyHandler(e, event => {\r\n this._revertPart(FORWARD);\r\n this._isAllSelected() || event.preventDefault()\r\n }),\r\n backspace: e => applyHandler(e, event => {\r\n this._revertPart(BACKWARD);\r\n this._isAllSelected() || event.preventDefault()\r\n }),\r\n home: e => applyHandler(e, event => {\r\n this._selectFirstPart();\r\n event.preventDefault()\r\n }),\r\n end: e => applyHandler(e, event => {\r\n this._selectLastPart();\r\n event.preventDefault()\r\n }),\r\n escape: e => applyHandler(e, event => {\r\n this._revertChanges(event)\r\n }),\r\n enter: e => applyHandler(e, event => {\r\n this._enterHandler(event)\r\n }),\r\n leftArrow: e => applyHandler(e, event => {\r\n this._selectNextPart(BACKWARD);\r\n event.preventDefault()\r\n }),\r\n rightArrow: e => applyHandler(e, event => {\r\n this._selectNextPart(FORWARD);\r\n event.preventDefault()\r\n }),\r\n upArrow: e => applyHandler(e, event => {\r\n this._upDownArrowHandler(FORWARD);\r\n event.preventDefault()\r\n }),\r\n downArrow: e => applyHandler(e, event => {\r\n this._upDownArrowHandler(BACKWARD);\r\n event.preventDefault()\r\n })\r\n })\r\n },\r\n _shouldUseOriginalHandler(e) {\r\n var isNotDeletingInCalendar = this.option(\"opened\") && e && -1 === [\"backspace\", \"del\"].indexOf(normalizeKeyName(e));\r\n return !this._useMaskBehavior() || isNotDeletingInCalendar || e && e.altKey\r\n },\r\n _upDownArrowHandler(step) {\r\n this._setNewDateIfEmpty();\r\n var originalValue = this._getActivePartValue(this._initialMaskValue);\r\n var currentValue = this._getActivePartValue();\r\n var delta = currentValue - originalValue;\r\n this._loadMaskValue(this._initialMaskValue);\r\n this._partIncrease(delta + step, true)\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n useMaskBehavior: false,\r\n emptyDateValue: new Date(2e3, 0, 1, 0, 0, 0)\r\n })\r\n },\r\n _isSingleCharKey(_ref) {\r\n var {\r\n originalEvent: originalEvent,\r\n alt: alt\r\n } = _ref;\r\n var key = originalEvent.data || originalEvent.key;\r\n return \"string\" === typeof key && 1 === key.length && !alt && !isCommandKeyPressed(originalEvent)\r\n },\r\n _isSingleDigitKey(e) {\r\n var _e$originalEvent;\r\n var data = null === (_e$originalEvent = e.originalEvent) || void 0 === _e$originalEvent ? void 0 : _e$originalEvent.data;\r\n return 1 === (null === data || void 0 === data ? void 0 : data.length) && parseInt(data, 10)\r\n },\r\n _useBeforeInputEvent: function() {\r\n return devices.real().android\r\n },\r\n _keyInputHandler(e, key) {\r\n var oldInputValue = this._input().val();\r\n this._processInputKey(key);\r\n e.preventDefault();\r\n var isValueChanged = oldInputValue !== this._input().val();\r\n isValueChanged && eventsEngine.trigger(this._input(), \"input\")\r\n },\r\n _keyboardHandler(e) {\r\n var key = e.originalEvent.key;\r\n var result = this.callBase(e);\r\n if (!this._useMaskBehavior() || this._useBeforeInputEvent()) {\r\n return result\r\n }\r\n if (browser.chrome && \"Process\" === e.key && 0 === e.code.indexOf(\"Digit\")) {\r\n key = e.code.replace(\"Digit\", \"\");\r\n this._processInputKey(key);\r\n this._maskInputHandler = () => {\r\n this._renderSelectedPart()\r\n }\r\n } else if (this._isSingleCharKey(e)) {\r\n this._keyInputHandler(e.originalEvent, key)\r\n }\r\n return result\r\n },\r\n _maskBeforeInputHandler(e) {\r\n this._maskInputHandler = null;\r\n var {\r\n inputType: inputType\r\n } = e.originalEvent;\r\n if (\"insertCompositionText\" === inputType) {\r\n this._maskInputHandler = () => {\r\n this._renderSelectedPart()\r\n }\r\n }\r\n var isBackwardDeletion = \"deleteContentBackward\" === inputType;\r\n var isForwardDeletion = \"deleteContentForward\" === inputType;\r\n if (isBackwardDeletion || isForwardDeletion) {\r\n var direction = isBackwardDeletion ? BACKWARD : FORWARD;\r\n this._maskInputHandler = () => {\r\n this._revertPart();\r\n this._selectNextPart(direction)\r\n }\r\n }\r\n if (!this._useMaskBehavior() || !this._isSingleCharKey(e)) {\r\n return\r\n }\r\n var key = e.originalEvent.data;\r\n this._keyInputHandler(e, key);\r\n return true\r\n },\r\n _keyPressHandler(e) {\r\n var {\r\n originalEvent: event\r\n } = e;\r\n if (\"insertCompositionText\" === (null === event || void 0 === event ? void 0 : event.inputType) && this._isSingleDigitKey(e)) {\r\n this._processInputKey(event.data);\r\n this._renderDisplayText(this._getDisplayedText(this._maskValue));\r\n this._selectNextPart()\r\n }\r\n this.callBase(e);\r\n if (this._maskInputHandler) {\r\n this._maskInputHandler();\r\n this._maskInputHandler = null\r\n }\r\n },\r\n _processInputKey(key) {\r\n if (this._isAllSelected()) {\r\n this._activePartIndex = 0\r\n }\r\n this._setNewDateIfEmpty();\r\n if (isNaN(parseInt(key))) {\r\n this._searchString(key)\r\n } else {\r\n this._searchNumber(key)\r\n }\r\n },\r\n _isAllSelected() {\r\n var caret = this._caret();\r\n return caret.end - caret.start === this.option(\"text\").length\r\n },\r\n _getFormatPattern() {\r\n if (this._formatPattern) {\r\n return this._formatPattern\r\n }\r\n var format = this._strategy.getDisplayFormat(this.option(\"displayFormat\"));\r\n var isLDMLPattern = isString(format) && !dateLocalization._getPatternByFormat(format);\r\n if (isLDMLPattern) {\r\n this._formatPattern = format\r\n } else {\r\n this._formatPattern = getFormat((function(value) {\r\n return dateLocalization.format(value, format)\r\n }))\r\n }\r\n return this._formatPattern\r\n },\r\n _setNewDateIfEmpty() {\r\n if (!this._maskValue) {\r\n var value = \"time\" === this.option(\"type\") ? new Date(null) : new Date;\r\n this._maskValue = value;\r\n this._initialMaskValue = value;\r\n this._renderDateParts()\r\n }\r\n },\r\n _partLimitsReached(max) {\r\n var maxLimitLength = String(max).length;\r\n var formatLength = this._getActivePartProp(\"pattern\").length;\r\n var isShortFormat = 1 === formatLength;\r\n var maxSearchLength = isShortFormat ? maxLimitLength : Math.min(formatLength, maxLimitLength);\r\n var isLengthExceeded = this._searchValue.length === maxSearchLength;\r\n var isValueOverflowed = parseInt(this._searchValue + \"0\") > max;\r\n return isLengthExceeded || isValueOverflowed\r\n },\r\n _searchNumber(char) {\r\n var {\r\n max: max\r\n } = this._getActivePartLimits();\r\n var maxLimitLength = String(max).length;\r\n this._searchValue = (this._searchValue + char).substr(-maxLimitLength);\r\n if (isNaN(this._searchValue)) {\r\n this._searchValue = char\r\n }\r\n this._setActivePartValue(this._searchValue);\r\n if (this._partLimitsReached(max)) {\r\n this._selectNextPart(FORWARD)\r\n }\r\n },\r\n _searchString(char) {\r\n if (!isNaN(parseInt(this._getActivePartProp(\"text\")))) {\r\n return\r\n }\r\n var limits = this._getActivePartProp(\"limits\")(this._maskValue);\r\n var startString = this._searchValue + char.toLowerCase();\r\n var endLimit = limits.max - limits.min;\r\n for (var i = 0; i <= endLimit; i++) {\r\n this._loadMaskValue(this._initialMaskValue);\r\n this._partIncrease(i + 1);\r\n if (0 === this._getActivePartProp(\"text\").toLowerCase().indexOf(startString)) {\r\n this._searchValue = startString;\r\n return\r\n }\r\n }\r\n this._setNewDateIfEmpty();\r\n if (this._searchValue) {\r\n this._clearSearchValue();\r\n this._searchString(char)\r\n }\r\n },\r\n _clearSearchValue() {\r\n this._searchValue = \"\"\r\n },\r\n _revertPart: function(direction) {\r\n if (!this._isAllSelected()) {\r\n var actual = this._getActivePartValue(this.option(\"emptyDateValue\"));\r\n this._setActivePartValue(actual);\r\n this._selectNextPart(direction)\r\n }\r\n this._clearSearchValue()\r\n },\r\n _useMaskBehavior() {\r\n return this.option(\"useMaskBehavior\") && \"text\" === this.option(\"mode\")\r\n },\r\n _prepareRegExpInfo() {\r\n this._regExpInfo = getRegExpInfo(this._getFormatPattern(), dateLocalization);\r\n var regexp = this._regExpInfo.regexp;\r\n var source = regexp.source;\r\n var flags = regexp.flags;\r\n var quantifierRegexp = new RegExp(/(\\{[0-9]+,?[0-9]*\\})/);\r\n var convertedSource = source.split(quantifierRegexp).map(sourcePart => quantifierRegexp.test(sourcePart) ? sourcePart : numberLocalization.convertDigits(sourcePart, false)).join(\"\");\r\n this._regExpInfo.regexp = new RegExp(convertedSource, flags)\r\n },\r\n _initMaskState() {\r\n this._activePartIndex = 0;\r\n this._formatPattern = null;\r\n this._prepareRegExpInfo();\r\n this._loadMaskValue()\r\n },\r\n _renderMask() {\r\n this.callBase();\r\n this._detachMaskEvents();\r\n this._clearMaskState();\r\n if (this._useMaskBehavior()) {\r\n this._attachMaskEvents();\r\n this._initMaskState();\r\n this._renderDateParts()\r\n }\r\n },\r\n _renderDateParts() {\r\n if (!this._useMaskBehavior()) {\r\n return\r\n }\r\n var text = this.option(\"text\") || this._getDisplayedText(this._maskValue);\r\n if (text) {\r\n this._dateParts = renderDateParts(text, this._regExpInfo);\r\n if (!this._input().is(\":hidden\")) {\r\n this._selectNextPart()\r\n }\r\n }\r\n },\r\n _detachMaskEvents() {\r\n eventsEngine.off(this._input(), \".\" + MASK_EVENT_NAMESPACE)\r\n },\r\n _attachMaskEvents() {\r\n eventsEngine.on(this._input(), addNamespace(\"dxclick\", MASK_EVENT_NAMESPACE), this._maskClickHandler.bind(this));\r\n eventsEngine.on(this._input(), addNamespace(\"paste\", MASK_EVENT_NAMESPACE), this._maskPasteHandler.bind(this));\r\n eventsEngine.on(this._input(), addNamespace(\"drop\", MASK_EVENT_NAMESPACE), () => {\r\n this._renderSelectedPart()\r\n });\r\n eventsEngine.on(this._input(), addNamespace(\"compositionend\", MASK_EVENT_NAMESPACE), this._maskCompositionEndHandler.bind(this));\r\n if (this._useBeforeInputEvent()) {\r\n eventsEngine.on(this._input(), addNamespace(\"beforeinput\", MASK_EVENT_NAMESPACE), this._maskBeforeInputHandler.bind(this))\r\n }\r\n },\r\n _renderSelectedPart() {\r\n this._renderDisplayText(this._getDisplayedText(this._maskValue));\r\n this._selectNextPart()\r\n },\r\n _selectLastPart() {\r\n if (this.option(\"text\")) {\r\n this._activePartIndex = this._dateParts.length;\r\n this._selectNextPart(BACKWARD)\r\n }\r\n },\r\n _selectFirstPart() {\r\n if (this.option(\"text\")) {\r\n this._activePartIndex = -1;\r\n this._selectNextPart(FORWARD)\r\n }\r\n },\r\n _onMouseWheel(e) {\r\n if (this._useMaskBehavior()) {\r\n this._partIncrease(e.delta > 0 ? FORWARD : BACKWARD, e)\r\n }\r\n },\r\n _selectNextPart() {\r\n var step = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0;\r\n if (!this.option(\"text\") || this._disposed) {\r\n return\r\n }\r\n if (step) {\r\n this._initialMaskValue = new Date(this._maskValue)\r\n }\r\n var index = fitIntoRange(this._activePartIndex + step, 0, this._dateParts.length - 1);\r\n if (this._dateParts[index].isStub) {\r\n var isBoundaryIndex = 0 === index && step < 0 || index === this._dateParts.length - 1 && step > 0;\r\n if (!isBoundaryIndex) {\r\n this._selectNextPart(step >= 0 ? step + 1 : step - 1);\r\n return\r\n } else {\r\n index = this._activePartIndex\r\n }\r\n }\r\n if (this._activePartIndex !== index) {\r\n this._clearSearchValue()\r\n }\r\n this._activePartIndex = index;\r\n this._caret(this._getActivePartProp(\"caret\"))\r\n },\r\n _getRealLimitsPattern() {\r\n if (\"d\" === this._getActivePartProp(\"pattern\")[0]) {\r\n return \"dM\"\r\n }\r\n },\r\n _getActivePartLimits(lockOtherParts) {\r\n var limitFunction = this._getActivePartProp(\"limits\");\r\n return limitFunction(this._maskValue, lockOtherParts && this._getRealLimitsPattern())\r\n },\r\n _getActivePartValue(dateValue) {\r\n dateValue = dateValue || this._maskValue;\r\n var getter = this._getActivePartProp(\"getter\");\r\n return isFunction(getter) ? getter(dateValue) : dateValue[getter]()\r\n },\r\n _addLeadingZeroes(value) {\r\n var zeroes = this._searchValue.match(/^0+/);\r\n var limits = this._getActivePartLimits();\r\n var maxLimitLength = String(limits.max).length;\r\n return ((zeroes && zeroes[0] || \"\") + String(value)).substr(-maxLimitLength)\r\n },\r\n _setActivePartValue(value, dateValue) {\r\n dateValue = dateValue || this._maskValue;\r\n var setter = this._getActivePartProp(\"setter\");\r\n var limits = this._getActivePartLimits();\r\n value = inRange(value, limits.min, limits.max) ? value : value % 10;\r\n value = this._addLeadingZeroes(fitIntoRange(value, limits.min, limits.max));\r\n isFunction(setter) ? setter(dateValue, value) : dateValue[setter](value);\r\n this._renderDisplayText(this._getDisplayedText(dateValue));\r\n this._renderDateParts()\r\n },\r\n _getActivePartProp(property) {\r\n if (!this._dateParts || !this._dateParts[this._activePartIndex]) {\r\n return\r\n }\r\n return this._dateParts[this._activePartIndex][property]\r\n },\r\n _loadMaskValue() {\r\n var value = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.dateOption(\"value\");\r\n this._maskValue = value && new Date(value);\r\n this._initialMaskValue = value && new Date(value)\r\n },\r\n _saveMaskValue() {\r\n var value = this._maskValue && new Date(this._maskValue);\r\n if (value && \"date\" === this.option(\"type\")) {\r\n value.setHours(0, 0, 0, 0)\r\n }\r\n this._initialMaskValue = new Date(value);\r\n this.dateOption(\"value\", value)\r\n },\r\n _revertChanges() {\r\n this._loadMaskValue();\r\n this._renderDisplayText(this._getDisplayedText(this._maskValue));\r\n this._renderDateParts()\r\n },\r\n _renderDisplayText(text) {\r\n this.callBase(text);\r\n if (this._useMaskBehavior()) {\r\n this.option(\"text\", text)\r\n }\r\n },\r\n _partIncrease(step, lockOtherParts) {\r\n this._setNewDateIfEmpty();\r\n var {\r\n max: max,\r\n min: min\r\n } = this._getActivePartLimits(lockOtherParts);\r\n var limitDelta = max - min;\r\n if (1 === limitDelta) {\r\n limitDelta++\r\n }\r\n var newValue = step + this._getActivePartValue();\r\n if (newValue > max) {\r\n newValue = this._applyLimits(newValue, {\r\n limitBase: min,\r\n limitClosest: max,\r\n limitDelta: limitDelta\r\n })\r\n } else if (newValue < min) {\r\n newValue = this._applyLimits(newValue, {\r\n limitBase: max,\r\n limitClosest: min,\r\n limitDelta: limitDelta\r\n })\r\n }\r\n this._setActivePartValue(newValue)\r\n },\r\n _applyLimits(newValue, _ref2) {\r\n var {\r\n limitBase: limitBase,\r\n limitClosest: limitClosest,\r\n limitDelta: limitDelta\r\n } = _ref2;\r\n var delta = (newValue - limitClosest) % limitDelta;\r\n return delta ? limitBase + delta - 1 * sign(delta) : limitClosest\r\n },\r\n _maskClickHandler() {\r\n this._loadMaskValue(this._maskValue);\r\n if (this.option(\"text\")) {\r\n this._activePartIndex = getDatePartIndexByPosition(this._dateParts, this._caret().start);\r\n if (!this._isAllSelected()) {\r\n if (isDefined(this._activePartIndex)) {\r\n this._caret(this._getActivePartProp(\"caret\"))\r\n } else {\r\n this._selectLastPart()\r\n }\r\n }\r\n }\r\n },\r\n _maskCompositionEndHandler(e) {\r\n this._input().val(this._getDisplayedText(this._maskValue));\r\n this._selectNextPart();\r\n this._maskInputHandler = () => {\r\n this._renderSelectedPart()\r\n }\r\n },\r\n _maskPasteHandler(e) {\r\n var newText = this._replaceSelectedText(this.option(\"text\"), this._caret(), clipboardText(e));\r\n var date = dateLocalization.parse(newText, this._getFormatPattern());\r\n if (date && this._isDateValid(date)) {\r\n this._maskValue = date;\r\n this._renderDisplayText(this._getDisplayedText(this._maskValue));\r\n this._renderDateParts();\r\n this._selectNextPart()\r\n }\r\n e.preventDefault()\r\n },\r\n _isDateValid: date => isDate(date) && !isNaN(date),\r\n _isValueDirty() {\r\n var value = this.dateOption(\"value\");\r\n return (this._maskValue && this._maskValue.getTime()) !== (value && value.getTime())\r\n },\r\n _fireChangeEvent() {\r\n this._clearSearchValue();\r\n if (this._isValueDirty()) {\r\n eventsEngine.trigger(this._input(), \"change\")\r\n }\r\n },\r\n _enterHandler(e) {\r\n this._fireChangeEvent();\r\n this._selectNextPart(FORWARD);\r\n e.preventDefault()\r\n },\r\n _focusOutHandler(e) {\r\n var shouldFireChangeEvent = this._useMaskBehavior() && !e.isDefaultPrevented();\r\n if (shouldFireChangeEvent) {\r\n this._fireChangeEvent();\r\n this.callBase(e);\r\n this._selectFirstPart(e)\r\n } else {\r\n this.callBase(e)\r\n }\r\n },\r\n _valueChangeEventHandler(e) {\r\n var text = this.option(\"text\");\r\n if (this._useMaskBehavior()) {\r\n this._saveValueChangeEvent(e);\r\n if (!text) {\r\n this._maskValue = null\r\n } else if (null === this._maskValue) {\r\n this._loadMaskValue(text)\r\n }\r\n this._saveMaskValue()\r\n } else {\r\n this.callBase(e)\r\n }\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"useMaskBehavior\":\r\n this._renderMask();\r\n break;\r\n case \"displayFormat\":\r\n case \"mode\":\r\n this.callBase(args);\r\n this._renderMask();\r\n break;\r\n case \"value\":\r\n this._loadMaskValue();\r\n this.callBase(args);\r\n this._renderDateParts();\r\n break;\r\n case \"emptyDateValue\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _clearMaskState() {\r\n this._clearSearchValue();\r\n delete this._dateParts;\r\n delete this._activePartIndex;\r\n delete this._maskValue\r\n },\r\n reset() {\r\n this._clearMaskState();\r\n this._activePartIndex = 0;\r\n this.callBase()\r\n },\r\n _clean() {\r\n this.callBase();\r\n this._detachMaskEvents();\r\n this._clearMaskState()\r\n }\r\n});\r\nexport default DateBoxMask;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport DateBoxMask from \"./ui.date_box.mask\";\r\nregisterComponent(\"dxDateBox\", DateBoxMask);\r\nexport default DateBoxMask;\r\n","/**\r\n * DevExtreme (esm/ui/shared/ui.editor_factory_mixin.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n isDefined,\r\n isObject,\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nimport variableWrapper from \"../../core/utils/variable_wrapper\";\r\nimport {\r\n compileGetter\r\n} from \"../../core/utils/data\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport {\r\n normalizeDataSourceOptions\r\n} from \"../../data/data_source/utils\";\r\nimport {\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nvar {\r\n isWrapped: isWrapped\r\n} = variableWrapper;\r\nimport \"../text_box\";\r\nimport \"../number_box\";\r\nimport \"../check_box\";\r\nimport \"../select_box\";\r\nimport \"../date_box\";\r\nvar CHECKBOX_SIZE_CLASS = \"checkbox-size\";\r\nvar EDITOR_INLINE_BLOCK = \"dx-editor-inline-block\";\r\nvar EditorFactoryMixin = function() {\r\n var getResultConfig = function(config, options) {\r\n return extend(config, {\r\n readOnly: options.readOnly,\r\n placeholder: options.placeholder,\r\n inputAttr: {\r\n id: options.id\r\n },\r\n tabIndex: options.tabIndex\r\n }, options.editorOptions)\r\n };\r\n var checkEnterBug = function() {\r\n return browser.mozilla || devices.real().ios\r\n };\r\n var getTextEditorConfig = function(options) {\r\n var data = {};\r\n var isEnterBug = checkEnterBug();\r\n var sharedData = options.sharedData || data;\r\n return getResultConfig({\r\n placeholder: options.placeholder,\r\n width: options.width,\r\n value: options.value,\r\n onValueChanged: function(e) {\r\n var needDelayedUpdate = \"filterRow\" === options.parentType || \"searchPanel\" === options.parentType;\r\n var isInputOrKeyUpEvent = e.event && (\"input\" === e.event.type || \"keyup\" === e.event.type);\r\n var updateValue = function(e, notFireEvent) {\r\n options && options.setValue(e.value, notFireEvent)\r\n };\r\n clearTimeout(data.valueChangeTimeout);\r\n if (isInputOrKeyUpEvent && needDelayedUpdate) {\r\n sharedData.valueChangeTimeout = data.valueChangeTimeout = setTimeout((function() {\r\n updateValue(e, data.valueChangeTimeout !== sharedData.valueChangeTimeout)\r\n }), isDefined(options.updateValueTimeout) ? options.updateValueTimeout : 0)\r\n } else {\r\n updateValue(e)\r\n }\r\n },\r\n onKeyDown: function(e) {\r\n if (isEnterBug && \"enter\" === normalizeKeyName(e.event)) {\r\n eventsEngine.trigger($(e.component._input()), \"change\")\r\n }\r\n },\r\n valueChangeEvent: \"change\" + (\"filterRow\" === options.parentType ? \" keyup input\" : \"\")\r\n }, options)\r\n };\r\n var prepareBooleanEditor = function(options) {\r\n if (\"filterRow\" === options.parentType || \"filterBuilder\" === options.parentType) {\r\n prepareSelectBox(extend(options, {\r\n lookup: {\r\n displayExpr: function(data) {\r\n if (true === data) {\r\n return options.trueText || \"true\"\r\n } else if (false === data) {\r\n return options.falseText || \"false\"\r\n }\r\n },\r\n dataSource: [true, false]\r\n }\r\n }))\r\n } else {\r\n ! function(options) {\r\n options.editorName = \"dxCheckBox\";\r\n options.editorOptions = getResultConfig({\r\n elementAttr: {\r\n id: options.id\r\n },\r\n value: isDefined(options.value) ? options.value : void 0,\r\n hoverStateEnabled: !options.readOnly,\r\n focusStateEnabled: !options.readOnly,\r\n activeStateEnabled: false,\r\n onValueChanged: function(e) {\r\n options.setValue && options.setValue(e.value, e)\r\n }\r\n }, options)\r\n }(options)\r\n }\r\n };\r\n\r\n function prepareSelectBox(options) {\r\n var lookup = options.lookup;\r\n var displayGetter;\r\n var dataSource;\r\n var postProcess;\r\n var isFilterRow = \"filterRow\" === options.parentType;\r\n if (lookup) {\r\n displayGetter = compileGetter(lookup.displayExpr);\r\n dataSource = lookup.dataSource;\r\n if (isFunction(dataSource) && !isWrapped(dataSource)) {\r\n dataSource = dataSource(options.row || {});\r\n ! function(options) {\r\n if (options.row && options.row.watch && \"dataRow\" === options.parentType) {\r\n var editorOptions = options.editorOptions || {};\r\n options.editorOptions = editorOptions;\r\n var selectBox;\r\n var onInitialized = editorOptions.onInitialized;\r\n editorOptions.onInitialized = function(e) {\r\n onInitialized && onInitialized.apply(this, arguments);\r\n selectBox = e.component;\r\n selectBox.on(\"disposing\", stopWatch)\r\n };\r\n var dataSource;\r\n var stopWatch = options.row.watch(() => {\r\n dataSource = options.lookup.dataSource(options.row);\r\n return dataSource && dataSource.filter\r\n }, () => {\r\n selectBox.option(\"dataSource\", dataSource)\r\n }, row => {\r\n options.row = row\r\n })\r\n }\r\n }(options)\r\n }\r\n if (isObject(dataSource) || Array.isArray(dataSource)) {\r\n dataSource = normalizeDataSourceOptions(dataSource);\r\n if (isFilterRow) {\r\n postProcess = dataSource.postProcess;\r\n dataSource.postProcess = function(items) {\r\n if (0 === this.pageIndex()) {\r\n items = items.slice(0);\r\n items.unshift(null)\r\n }\r\n if (postProcess) {\r\n return postProcess.call(this, items)\r\n }\r\n return items\r\n }\r\n }\r\n }\r\n var allowClearing = Boolean(lookup.allowClearing && !isFilterRow);\r\n options.editorName = \"dxSelectBox\";\r\n options.editorOptions = getResultConfig({\r\n searchEnabled: true,\r\n value: options.value,\r\n valueExpr: options.lookup.valueExpr,\r\n searchExpr: options.lookup.searchExpr || options.lookup.displayExpr,\r\n allowClearing: allowClearing,\r\n showClearButton: allowClearing,\r\n displayExpr: function(data) {\r\n if (null === data) {\r\n return options.showAllText\r\n }\r\n return displayGetter(data)\r\n },\r\n dataSource: dataSource,\r\n onValueChanged: function(e) {\r\n var params = [e.value];\r\n !isFilterRow && params.push(e.component.option(\"text\"));\r\n options.setValue.apply(this, params)\r\n }\r\n }, options)\r\n }\r\n }\r\n return {\r\n createEditor: function($container, options) {\r\n options.cancel = false;\r\n options.editorElement = getPublicElement($container);\r\n if (!isDefined(options.tabIndex)) {\r\n options.tabIndex = this.option(\"tabIndex\")\r\n }\r\n if (options.lookup) {\r\n prepareSelectBox(options)\r\n } else {\r\n switch (options.dataType) {\r\n case \"date\":\r\n case \"datetime\":\r\n ! function(options) {\r\n options.editorName = \"dxDateBox\";\r\n options.editorOptions = getResultConfig({\r\n value: options.value,\r\n onValueChanged: function(args) {\r\n options.setValue(args.value)\r\n },\r\n onKeyDown: function(_ref) {\r\n var {\r\n component: component,\r\n event: event\r\n } = _ref;\r\n var useMaskBehavior = component.option(\"useMaskBehavior\");\r\n if ((checkEnterBug() || useMaskBehavior) && \"enter\" === normalizeKeyName(event)) {\r\n component.blur();\r\n component.focus()\r\n }\r\n },\r\n displayFormat: options.format,\r\n type: options.dataType,\r\n dateSerializationFormat: null,\r\n width: \"filterBuilder\" === options.parentType ? void 0 : \"auto\"\r\n }, options)\r\n }(options);\r\n break;\r\n case \"boolean\":\r\n prepareBooleanEditor(options);\r\n break;\r\n case \"number\":\r\n ! function(options) {\r\n var config = getTextEditorConfig(options);\r\n config.value = isDefined(options.value) ? options.value : null;\r\n options.editorName = \"dxNumberBox\";\r\n options.editorOptions = config\r\n }(options);\r\n break;\r\n default:\r\n ! function(options) {\r\n var config = getTextEditorConfig(options);\r\n var isSearching = \"searchPanel\" === options.parentType;\r\n if (options.editorType && \"dxTextBox\" !== options.editorType) {\r\n config.value = options.value\r\n } else {\r\n config.value = (value = options.value, isDefined(value) ? value.toString() : \"\")\r\n }\r\n var value;\r\n config.valueChangeEvent += isSearching ? \" keyup input search\" : \"\";\r\n config.mode = config.mode || (isSearching ? \"search\" : \"text\");\r\n options.editorName = \"dxTextBox\";\r\n options.editorOptions = config\r\n }(options)\r\n }\r\n }\r\n if (\"dataRow\" === options.parentType && options.editorType) {\r\n options.editorName = options.editorType\r\n }\r\n this.executeAction(\"onEditorPreparing\", options);\r\n if (options.cancel) {\r\n return\r\n }\r\n if (\"dataRow\" === options.parentType && !options.isOnForm && !isDefined(options.editorOptions.showValidationMark)) {\r\n options.editorOptions.showValidationMark = false\r\n }! function(that, options) {\r\n var $editorElement = $(options.editorElement);\r\n if (options.editorName && options.editorOptions && $editorElement[options.editorName]) {\r\n if (\"dxCheckBox\" === options.editorName || \"dxSwitch\" === options.editorName) {\r\n if (!options.isOnForm) {\r\n $editorElement.addClass(that.addWidgetPrefix(CHECKBOX_SIZE_CLASS));\r\n $editorElement.parent().addClass(EDITOR_INLINE_BLOCK)\r\n }\r\n }\r\n that._createComponent($editorElement, options.editorName, options.editorOptions);\r\n if (\"dxDateBox\" === options.editorName) {\r\n var dateBox = $editorElement.dxDateBox(\"instance\");\r\n var defaultEnterKeyHandler = dateBox._supportedKeys().enter;\r\n dateBox.registerKeyHandler(\"enter\", e => {\r\n if (dateBox.option(\"opened\")) {\r\n defaultEnterKeyHandler(e)\r\n }\r\n return true\r\n })\r\n }\r\n if (\"dxTextArea\" === options.editorName) {\r\n $editorElement.dxTextArea(\"instance\").registerKeyHandler(\"enter\", (function(event) {\r\n if (\"enter\" === normalizeKeyName(event) && !event.ctrlKey && !event.shiftKey) {\r\n event.stopPropagation()\r\n }\r\n }))\r\n }\r\n }\r\n }(this, options);\r\n this.executeAction(\"onEditorPrepared\", options)\r\n }\r\n }\r\n}();\r\nexport default EditorFactoryMixin;\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.editor_factory.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n setOuterWidth,\r\n getOuterWidth,\r\n setOuterHeight,\r\n getOuterHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport modules from \"./ui.grid_core.modules\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport positionUtils from \"../../animation/position\";\r\nimport {\r\n addNamespace,\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../core/utils/position\";\r\nimport EditorFactoryMixin from \"../shared/ui.editor_factory_mixin\";\r\nimport gridCoreUtils from \"./ui.grid_core.utils\";\r\nvar EDITOR_INLINE_BLOCK = \"dx-editor-inline-block\";\r\nvar CELL_FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar FOCUS_OVERLAY_CLASS = \"focus-overlay\";\r\nvar CONTENT_CLASS = \"content\";\r\nvar FOCUSED_ELEMENT_CLASS = \"dx-focused\";\r\nvar ROW_CLASS = \"dx-row\";\r\nvar MODULE_NAMESPACE = \"dxDataGridEditorFactory\";\r\nvar UPDATE_FOCUS_EVENTS = addNamespace([pointerEvents.down, \"focusin\", clickEventName].join(\" \"), MODULE_NAMESPACE);\r\nvar DX_HIDDEN = \"dx-hidden\";\r\nvar EditorFactory = modules.ViewController.inherit({\r\n _getFocusedElement: function($dataGridElement) {\r\n var rowSelector = this.option(\"focusedRowEnabled\") ? \"tr[tabindex]:focus\" : \"tr[tabindex]:not(.dx-data-row):focus\";\r\n var focusedElementSelector = \"td[tabindex]:focus, \".concat(rowSelector, \", input:focus, textarea:focus, .dx-lookup-field:focus, .dx-checkbox:focus, .dx-switch:focus, .dx-dropdownbutton .dx-buttongroup:focus\");\r\n var $focusedElement = $dataGridElement.find(focusedElementSelector);\r\n return this.elementIsInsideGrid($focusedElement) && $focusedElement\r\n },\r\n _getFocusCellSelector: function() {\r\n return \".dx-row > td\"\r\n },\r\n _updateFocusCore: function() {\r\n var $dataGridElement = this.component && this.component.$element();\r\n var $focusCell;\r\n var hideBorders;\r\n if ($dataGridElement) {\r\n var $focus = this._getFocusedElement($dataGridElement);\r\n if ($focus && $focus.length) {\r\n if (!$focus.hasClass(CELL_FOCUS_DISABLED_CLASS) && !$focus.hasClass(ROW_CLASS)) {\r\n $focusCell = $focus.closest(this._getFocusCellSelector() + \", .\" + CELL_FOCUS_DISABLED_CLASS);\r\n hideBorders = $focusCell.get(0) !== $focus.get(0) && $focusCell.hasClass(EDITOR_INLINE_BLOCK);\r\n $focus = $focusCell\r\n }\r\n if ($focus.length && !$focus.hasClass(CELL_FOCUS_DISABLED_CLASS)) {\r\n this.focus($focus, hideBorders);\r\n return\r\n }\r\n }\r\n }\r\n this.loseFocus()\r\n },\r\n _updateFocus: function(e) {\r\n var that = this;\r\n var isFocusOverlay = e && e.event && $(e.event.target).hasClass(that.addWidgetPrefix(FOCUS_OVERLAY_CLASS));\r\n that._isFocusOverlay = that._isFocusOverlay || isFocusOverlay;\r\n clearTimeout(that._updateFocusTimeoutID);\r\n that._updateFocusTimeoutID = setTimeout((function() {\r\n delete that._updateFocusTimeoutID;\r\n if (!that._isFocusOverlay) {\r\n that._updateFocusCore()\r\n }\r\n that._isFocusOverlay = false\r\n }))\r\n },\r\n _updateFocusOverlaySize: function($element, position) {\r\n $element.hide();\r\n var location = positionUtils.calculate($element, extend({\r\n collision: \"fit\"\r\n }, position));\r\n if (location.h.oversize > 0) {\r\n setOuterWidth($element, getOuterWidth($element) - location.h.oversize)\r\n }\r\n if (location.v.oversize > 0) {\r\n setOuterHeight($element, getOuterHeight($element) - location.v.oversize)\r\n }\r\n $element.show()\r\n },\r\n callbackNames: function() {\r\n return [\"focused\"]\r\n },\r\n focus: function($element, hideBorder) {\r\n var that = this;\r\n if (void 0 === $element) {\r\n return that._$focusedElement\r\n } else if ($element) {\r\n if (!$element.is(that._$focusedElement)) {\r\n that._$focusedElement && that._$focusedElement.removeClass(FOCUSED_ELEMENT_CLASS)\r\n }\r\n that._$focusedElement = $element;\r\n clearTimeout(that._focusTimeoutID);\r\n that._focusTimeoutID = setTimeout((function() {\r\n delete that._focusTimeoutID;\r\n that.renderFocusOverlay($element, hideBorder);\r\n $element.addClass(FOCUSED_ELEMENT_CLASS);\r\n that.focused.fire($element)\r\n }))\r\n }\r\n },\r\n refocus: function() {\r\n var $focus = this.focus();\r\n this.focus($focus)\r\n },\r\n renderFocusOverlay: function($element, hideBorder) {\r\n if (!gridCoreUtils.isElementInCurrentGrid(this, $element)) {\r\n return\r\n }\r\n if (!this._$focusOverlay) {\r\n this._$focusOverlay = $(\"
\").addClass(this.addWidgetPrefix(FOCUS_OVERLAY_CLASS))\r\n }\r\n if (hideBorder) {\r\n this._$focusOverlay.addClass(DX_HIDDEN)\r\n } else if ($element.length) {\r\n var align = browser.mozilla ? \"right bottom\" : \"left top\";\r\n var $content = $element.closest(\".\" + this.addWidgetPrefix(CONTENT_CLASS));\r\n var elemCoord = getBoundingRect($element.get(0));\r\n this._$focusOverlay.removeClass(DX_HIDDEN).appendTo($content);\r\n setOuterHeight(this._$focusOverlay, elemCoord.bottom - elemCoord.top + 1);\r\n setOuterWidth(this._$focusOverlay, elemCoord.right - elemCoord.left + 1);\r\n var focusOverlayPosition = {\r\n precise: true,\r\n my: align,\r\n at: align,\r\n of: $element,\r\n boundary: $content.length && $content\r\n };\r\n this._updateFocusOverlaySize(this._$focusOverlay, focusOverlayPosition);\r\n positionUtils.setup(this._$focusOverlay, focusOverlayPosition);\r\n this._$focusOverlay.css(\"visibility\", \"visible\")\r\n }\r\n },\r\n resize: function() {\r\n var $focusedElement = this._$focusedElement;\r\n if ($focusedElement) {\r\n this.focus($focusedElement)\r\n }\r\n },\r\n loseFocus: function() {\r\n this._$focusedElement && this._$focusedElement.removeClass(FOCUSED_ELEMENT_CLASS);\r\n this._$focusedElement = null;\r\n this._$focusOverlay && this._$focusOverlay.addClass(DX_HIDDEN)\r\n },\r\n init: function() {\r\n this.createAction(\"onEditorPreparing\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"],\r\n category: \"rendering\"\r\n });\r\n this.createAction(\"onEditorPrepared\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"],\r\n category: \"rendering\"\r\n });\r\n this._updateFocusHandler = this._updateFocusHandler || this.createAction(this._updateFocus.bind(this));\r\n eventsEngine.on(domAdapter.getDocument(), UPDATE_FOCUS_EVENTS, this._updateFocusHandler);\r\n this._attachContainerEventHandlers()\r\n },\r\n _attachContainerEventHandlers: function() {\r\n var that = this;\r\n var $container = that.component && that.component.$element();\r\n if ($container) {\r\n eventsEngine.on($container, addNamespace(\"keydown\", MODULE_NAMESPACE), (function(e) {\r\n if (\"tab\" === normalizeKeyName(e)) {\r\n that._updateFocusHandler(e)\r\n }\r\n }))\r\n }\r\n },\r\n dispose: function() {\r\n clearTimeout(this._focusTimeoutID);\r\n clearTimeout(this._updateFocusTimeoutID);\r\n eventsEngine.off(domAdapter.getDocument(), UPDATE_FOCUS_EVENTS, this._updateFocusHandler)\r\n }\r\n}).include(EditorFactoryMixin);\r\nexport var editorFactoryModule = {\r\n defaultOptions: function() {\r\n return {}\r\n },\r\n controllers: {\r\n editorFactory: EditorFactory\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.editor_factory.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n editorFactoryModule\r\n} from \"../grid_core/ui.grid_core.editor_factory\";\r\ngridCore.registerModule(\"editorFactory\", editorFactoryModule);\r\n","/**\r\n * DevExtreme (esm/ui/dialog.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight,\r\n getWidth\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n Component\r\n} from \"../core/component\";\r\nimport Action from \"../core/action\";\r\nimport devices from \"../core/devices\";\r\nimport config from \"../core/config\";\r\nimport {\r\n resetActiveElement\r\n} from \"../core/utils/dom\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n isPlainObject\r\n} from \"../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport {\r\n value as getViewport\r\n} from \"../core/utils/view_port\";\r\nimport messageLocalization from \"../localization/message\";\r\nimport errors from \"./widget/ui.errors\";\r\nimport Popup from \"./popup\";\r\nimport {\r\n ensureDefined\r\n} from \"../core/utils/common\";\r\nvar window = getWindow();\r\nvar DEFAULT_BUTTON = {\r\n text: \"OK\",\r\n onClick: function() {\r\n return true\r\n }\r\n};\r\nvar DX_DIALOG_CLASSNAME = \"dx-dialog\";\r\nvar DX_DIALOG_WRAPPER_CLASSNAME = \"\".concat(DX_DIALOG_CLASSNAME, \"-wrapper\");\r\nvar DX_DIALOG_ROOT_CLASSNAME = \"\".concat(DX_DIALOG_CLASSNAME, \"-root\");\r\nvar DX_DIALOG_CONTENT_CLASSNAME = \"\".concat(DX_DIALOG_CLASSNAME, \"-content\");\r\nvar DX_DIALOG_MESSAGE_CLASSNAME = \"\".concat(DX_DIALOG_CLASSNAME, \"-message\");\r\nvar DX_DIALOG_BUTTONS_CLASSNAME = \"\".concat(DX_DIALOG_CLASSNAME, \"-buttons\");\r\nvar DX_DIALOG_BUTTON_CLASSNAME = \"\".concat(DX_DIALOG_CLASSNAME, \"-button\");\r\nvar DX_BUTTON_CLASSNAME = \"dx-button\";\r\nexport var FakeDialogComponent = Component.inherit({\r\n ctor: function(element, options) {\r\n this.callBase(options)\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"ios\"\r\n },\r\n options: {\r\n width: 276\r\n }\r\n }])\r\n }\r\n});\r\nexport var custom = function(options) {\r\n var _options$title;\r\n var deferred = new Deferred;\r\n var defaultOptions = (new FakeDialogComponent).option();\r\n options = extend(defaultOptions, options);\r\n var $element = $(\"
\").addClass(DX_DIALOG_CLASSNAME).appendTo(getViewport());\r\n var isMessageDefined = \"message\" in options;\r\n var isMessageHtmlDefined = \"messageHtml\" in options;\r\n if (isMessageDefined) {\r\n errors.log(\"W1013\")\r\n }\r\n var messageHtml = String(isMessageHtmlDefined ? options.messageHtml : options.message);\r\n var $message = $(\"
\").addClass(DX_DIALOG_MESSAGE_CLASSNAME).html(messageHtml);\r\n var popupToolbarItems = [];\r\n each(options.buttons || [DEFAULT_BUTTON], (function() {\r\n var action = new Action(this.onClick, {\r\n context: popupInstance\r\n });\r\n popupToolbarItems.push({\r\n toolbar: \"bottom\",\r\n location: devices.current().android ? \"after\" : \"center\",\r\n widget: \"dxButton\",\r\n options: extend({}, this, {\r\n onClick: function() {\r\n var result = action.execute(...arguments);\r\n hide(result)\r\n }\r\n })\r\n })\r\n }));\r\n var popupInstance = new Popup($element, extend({\r\n title: null !== (_options$title = options.title) && void 0 !== _options$title ? _options$title : \"\",\r\n showTitle: ensureDefined(options.showTitle, true),\r\n dragEnabled: ensureDefined(options.dragEnabled, true),\r\n height: \"auto\",\r\n width: options.width,\r\n showCloseButton: options.showCloseButton || false,\r\n ignoreChildEvents: false,\r\n container: $element,\r\n visualContainer: window,\r\n onContentReady: function(args) {\r\n args.component.$content().addClass(DX_DIALOG_CONTENT_CLASSNAME).append($message)\r\n },\r\n onShowing: function(e) {\r\n e.component.bottomToolbar().addClass(DX_DIALOG_BUTTONS_CLASSNAME).find(\".\".concat(DX_BUTTON_CLASSNAME)).addClass(DX_DIALOG_BUTTON_CLASSNAME);\r\n resetActiveElement()\r\n },\r\n onShown: function(e) {\r\n var $firstButton = e.component.bottomToolbar().find(\".\".concat(DX_BUTTON_CLASSNAME)).first();\r\n eventsEngine.trigger($firstButton, \"focus\")\r\n },\r\n onHiding: function() {\r\n deferred.reject()\r\n },\r\n toolbarItems: popupToolbarItems,\r\n animation: {\r\n show: {\r\n type: \"pop\",\r\n duration: 400\r\n },\r\n hide: {\r\n type: \"pop\",\r\n duration: 400,\r\n to: {\r\n opacity: 0,\r\n scale: 0\r\n },\r\n from: {\r\n opacity: 1,\r\n scale: 1\r\n }\r\n }\r\n },\r\n rtlEnabled: config().rtlEnabled,\r\n position: {\r\n boundaryOffset: {\r\n h: 10,\r\n v: 0\r\n }\r\n }\r\n }, options.popupOptions));\r\n popupInstance.$wrapper().addClass(DX_DIALOG_WRAPPER_CLASSNAME);\r\n if (options.position) {\r\n popupInstance.option(\"position\", options.position)\r\n }\r\n popupInstance.$wrapper().addClass(DX_DIALOG_ROOT_CLASSNAME);\r\n\r\n function hide(value) {\r\n deferred.resolve(value);\r\n popupInstance.hide().done((function() {\r\n popupInstance.$element().remove()\r\n }))\r\n }\r\n return {\r\n show: function() {\r\n if (\"android\" === devices.real().platform) {\r\n var isPortrait = getHeight(window) > getWidth(window);\r\n var width = isPortrait ? \"80%\" : \"60%\";\r\n popupInstance.option({\r\n width: width\r\n })\r\n }\r\n popupInstance.show();\r\n return deferred.promise()\r\n },\r\n hide: hide\r\n }\r\n};\r\nexport var alert = function(messageHtml) {\r\n var title = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : \"\";\r\n var showTitle = arguments.length > 2 ? arguments[2] : void 0;\r\n var options = isPlainObject(messageHtml) ? messageHtml : {\r\n title: title,\r\n messageHtml: messageHtml,\r\n showTitle: showTitle,\r\n dragEnabled: showTitle\r\n };\r\n return custom(options).show()\r\n};\r\nexport var confirm = function(messageHtml) {\r\n var title = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : \"\";\r\n var showTitle = arguments.length > 2 ? arguments[2] : void 0;\r\n var options = isPlainObject(messageHtml) ? messageHtml : {\r\n title: title,\r\n messageHtml: messageHtml,\r\n showTitle: showTitle,\r\n buttons: [{\r\n text: messageLocalization.format(\"Yes\"),\r\n onClick: function() {\r\n return true\r\n }\r\n }, {\r\n text: messageLocalization.format(\"No\"),\r\n onClick: function() {\r\n return false\r\n }\r\n }],\r\n dragEnabled: showTitle\r\n };\r\n return custom(options).show()\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.editing_constants.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var EDITOR_CELL_CLASS = \"dx-editor-cell\";\r\nexport var ROW_CLASS = \"dx-row\";\r\nexport var CELL_MODIFIED_CLASS = \"dx-cell-modified\";\r\nexport var ROW_SELECTED_CLASS = \"dx-selection\";\r\nexport var EDIT_FORM_CLASS = \"edit-form\";\r\nexport var DATA_EDIT_DATA_INSERT_TYPE = \"insert\";\r\nexport var DATA_EDIT_DATA_REMOVE_TYPE = \"remove\";\r\nexport var EDITING_POPUP_OPTION_NAME = \"editing.popup\";\r\nexport var EDITING_FORM_OPTION_NAME = \"editing.form\";\r\nexport var EDITING_EDITROWKEY_OPTION_NAME = \"editing.editRowKey\";\r\nexport var EDITING_EDITCOLUMNNAME_OPTION_NAME = \"editing.editColumnName\";\r\nexport var TARGET_COMPONENT_NAME = \"targetComponent\";\r\nexport var EDITORS_INPUT_SELECTOR = \"input:not([type='hidden'])\";\r\nexport var FOCUSABLE_ELEMENT_SELECTOR = \"[tabindex], \" + EDITORS_INPUT_SELECTOR;\r\nexport var EDIT_MODE_BATCH = \"batch\";\r\nexport var EDIT_MODE_ROW = \"row\";\r\nexport var EDIT_MODE_CELL = \"cell\";\r\nexport var EDIT_MODE_FORM = \"form\";\r\nexport var EDIT_MODE_POPUP = \"popup\";\r\nexport var FIRST_NEW_ROW_POSITION = \"first\";\r\nexport var LAST_NEW_ROW_POSITION = \"last\";\r\nexport var PAGE_BOTTOM_NEW_ROW_POSITION = \"pageBottom\";\r\nexport var PAGE_TOP_NEW_ROW_POSITION = \"pageTop\";\r\nexport var VIEWPORT_BOTTOM_NEW_ROW_POSITION = \"viewportBottom\";\r\nexport var VIEWPORT_TOP_NEW_ROW_POSITION = \"viewportTop\";\r\nexport var EDIT_MODES = [EDIT_MODE_BATCH, EDIT_MODE_ROW, EDIT_MODE_CELL, EDIT_MODE_FORM, EDIT_MODE_POPUP];\r\nexport var ROW_BASED_MODES = [EDIT_MODE_ROW, EDIT_MODE_FORM, EDIT_MODE_POPUP];\r\nexport var MODES_WITH_DELAYED_FOCUS = [EDIT_MODE_ROW, EDIT_MODE_FORM];\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.editing.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport Guid from \"../../core/guid\";\r\nimport {\r\n resetActiveElement\r\n} from \"../../core/utils/dom\";\r\nimport {\r\n isDefined,\r\n isObject,\r\n isFunction,\r\n isEmptyObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport modules from \"./ui.grid_core.modules\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport gridCoreUtils from \"./ui.grid_core.utils\";\r\nimport {\r\n createObjectWithChanges\r\n} from \"../../data/array_utils\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport {\r\n confirm\r\n} from \"../dialog\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n when,\r\n Deferred,\r\n fromPromise\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n equalByValue,\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport * as iconUtils from \"../../core/utils/icon\";\r\nimport {\r\n EDITOR_CELL_CLASS,\r\n ROW_CLASS,\r\n EDIT_FORM_CLASS,\r\n DATA_EDIT_DATA_INSERT_TYPE,\r\n DATA_EDIT_DATA_REMOVE_TYPE,\r\n EDITING_POPUP_OPTION_NAME,\r\n EDITING_EDITROWKEY_OPTION_NAME,\r\n EDITING_EDITCOLUMNNAME_OPTION_NAME,\r\n TARGET_COMPONENT_NAME,\r\n EDITORS_INPUT_SELECTOR,\r\n FOCUSABLE_ELEMENT_SELECTOR,\r\n EDIT_MODE_ROW,\r\n EDIT_MODES,\r\n ROW_BASED_MODES,\r\n FIRST_NEW_ROW_POSITION,\r\n LAST_NEW_ROW_POSITION,\r\n PAGE_BOTTOM_NEW_ROW_POSITION,\r\n PAGE_TOP_NEW_ROW_POSITION,\r\n VIEWPORT_BOTTOM_NEW_ROW_POSITION,\r\n VIEWPORT_TOP_NEW_ROW_POSITION\r\n} from \"./ui.grid_core.editing_constants\";\r\nvar READONLY_CLASS = \"readonly\";\r\nvar LINK_CLASS = \"dx-link\";\r\nvar ROW_SELECTED = \"dx-selection\";\r\nvar EDIT_BUTTON_CLASS = \"dx-edit-button\";\r\nvar COMMAND_EDIT_CLASS = \"dx-command-edit\";\r\nvar COMMAND_EDIT_WITH_ICONS_CLASS = COMMAND_EDIT_CLASS + \"-with-icons\";\r\nvar INSERT_INDEX = \"__DX_INSERT_INDEX__\";\r\nvar ROW_INSERTED = \"dx-row-inserted\";\r\nvar ROW_MODIFIED = \"dx-row-modified\";\r\nvar CELL_MODIFIED = \"dx-cell-modified\";\r\nvar EDITING_NAMESPACE = \"dxDataGridEditing\";\r\nvar CELL_FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar DATA_EDIT_DATA_UPDATE_TYPE = \"update\";\r\nvar DEFAULT_START_EDIT_ACTION = \"click\";\r\nvar EDIT_LINK_CLASS = {\r\n save: \"dx-link-save\",\r\n cancel: \"dx-link-cancel\",\r\n edit: \"dx-link-edit\",\r\n undelete: \"dx-link-undelete\",\r\n delete: \"dx-link-delete\",\r\n add: \"dx-link-add\"\r\n};\r\nvar EDIT_ICON_CLASS = {\r\n save: \"save\",\r\n cancel: \"revert\",\r\n edit: \"edit\",\r\n undelete: \"revert\",\r\n delete: \"trash\",\r\n add: \"add\"\r\n};\r\nvar METHOD_NAMES = {\r\n edit: \"editRow\",\r\n delete: \"deleteRow\",\r\n undelete: \"undeleteRow\",\r\n save: \"saveEditData\",\r\n cancel: \"cancelEditData\",\r\n add: \"addRowByRowIndex\"\r\n};\r\nvar ACTION_OPTION_NAMES = {\r\n add: \"allowAdding\",\r\n edit: \"allowUpdating\",\r\n delete: \"allowDeleting\"\r\n};\r\nvar BUTTON_NAMES = [\"edit\", \"save\", \"cancel\", \"delete\", \"undelete\"];\r\nvar EDITING_CHANGES_OPTION_NAME = \"editing.changes\";\r\nvar createFailureHandler = function(deferred) {\r\n return function(arg) {\r\n var error = arg instanceof Error ? arg : new Error(arg && String(arg) || \"Unknown error\");\r\n deferred.reject(error)\r\n }\r\n};\r\nvar isEditingCell = function(isEditRow, cellOptions) {\r\n return cellOptions.isEditing || isEditRow && cellOptions.column.allowEditing\r\n};\r\nvar isEditingOrShowEditorAlwaysDataCell = function(isEditRow, cellOptions) {\r\n var isCommandCell = !!cellOptions.column.command;\r\n var isEditing = isEditingCell(isEditRow, cellOptions);\r\n var isEditorCell = !isCommandCell && (isEditing || cellOptions.column.showEditorAlways);\r\n return \"data\" === cellOptions.rowType && isEditorCell\r\n};\r\nvar EditingController = modules.ViewController.inherit(function() {\r\n var getButtonIndex = (buttons, name) => {\r\n var result = -1;\r\n buttons.some((button, index) => {\r\n if (getButtonName(button) === name) {\r\n result = index;\r\n return true\r\n }\r\n });\r\n return result\r\n };\r\n\r\n function getButtonName(button) {\r\n return isObject(button) ? button.name : button\r\n }\r\n return {\r\n init: function() {\r\n this._columnsController = this.getController(\"columns\");\r\n this._dataController = this.getController(\"data\");\r\n this._rowsView = this.getView(\"rowsView\");\r\n this._lastOperation = null;\r\n if (this._deferreds) {\r\n this._deferreds.forEach(d => d.reject(\"cancel\"))\r\n }\r\n this._deferreds = [];\r\n if (!this._dataChangedHandler) {\r\n this._dataChangedHandler = this._handleDataChanged.bind(this);\r\n this._dataController.changed.add(this._dataChangedHandler)\r\n }\r\n if (!this._saveEditorHandler) {\r\n this.createAction(\"onInitNewRow\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onRowInserting\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onRowInserted\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onEditingStart\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onRowUpdating\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onRowUpdated\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onRowRemoving\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onRowRemoved\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onSaved\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onSaving\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onEditCanceling\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onEditCanceled\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n }\r\n this._updateEditColumn();\r\n this._updateEditButtons();\r\n if (!this._internalState) {\r\n this._internalState = []\r\n }\r\n this.component._optionsByReference[EDITING_EDITROWKEY_OPTION_NAME] = true;\r\n this.component._optionsByReference[EDITING_CHANGES_OPTION_NAME] = true\r\n },\r\n getEditMode: function() {\r\n var editMode = this.option(\"editing.mode\");\r\n if (-1 !== EDIT_MODES.indexOf(editMode)) {\r\n return editMode\r\n }\r\n return EDIT_MODE_ROW\r\n },\r\n _getDefaultEditorTemplate: function() {\r\n return (container, options) => {\r\n var $editor = $(\"
\").appendTo(container);\r\n this.getController(\"editorFactory\").createEditor($editor, extend({}, options.column, {\r\n value: options.value,\r\n setValue: options.setValue,\r\n row: options.row,\r\n parentType: \"dataRow\",\r\n width: null,\r\n readOnly: !options.setValue,\r\n isOnForm: options.isOnForm,\r\n id: options.id\r\n }))\r\n }\r\n },\r\n _getNewRowPosition: function() {\r\n var newRowPosition = this.option(\"editing.newRowPosition\");\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n if (\"virtual\" === scrollingMode) {\r\n switch (newRowPosition) {\r\n case PAGE_TOP_NEW_ROW_POSITION:\r\n return VIEWPORT_TOP_NEW_ROW_POSITION;\r\n case PAGE_BOTTOM_NEW_ROW_POSITION:\r\n return VIEWPORT_BOTTOM_NEW_ROW_POSITION;\r\n default:\r\n return newRowPosition\r\n }\r\n }\r\n return newRowPosition\r\n },\r\n getChanges: function() {\r\n return this.option(EDITING_CHANGES_OPTION_NAME)\r\n },\r\n getInsertRowCount: function() {\r\n var changes = this.option(EDITING_CHANGES_OPTION_NAME);\r\n return changes.filter(change => \"insert\" === change.type).length\r\n },\r\n resetChanges: function() {\r\n var changes = this.getChanges();\r\n var needReset = null === changes || void 0 === changes ? void 0 : changes.length;\r\n if (needReset) {\r\n this._silentOption(EDITING_CHANGES_OPTION_NAME, [])\r\n }\r\n },\r\n _getInternalData: function(key) {\r\n return this._internalState.filter(item => equalByValue(item.key, key))[0]\r\n },\r\n _addInternalData: function(params) {\r\n var internalData = this._getInternalData(params.key);\r\n if (internalData) {\r\n return extend(internalData, params)\r\n }\r\n this._internalState.push(params);\r\n return params\r\n },\r\n _getOldData: function(key) {\r\n var _this$_getInternalDat;\r\n return null === (_this$_getInternalDat = this._getInternalData(key)) || void 0 === _this$_getInternalDat ? void 0 : _this$_getInternalDat.oldData\r\n },\r\n getUpdatedData: function(data) {\r\n var key = this._dataController.keyOf(data);\r\n var changes = this.getChanges();\r\n var editIndex = gridCoreUtils.getIndexByKey(key, changes);\r\n if (changes[editIndex]) {\r\n return createObjectWithChanges(data, changes[editIndex].data)\r\n }\r\n return data\r\n },\r\n getInsertedData: function() {\r\n return this.getChanges().filter(change => change.data && change.type === DATA_EDIT_DATA_INSERT_TYPE).map(change => change.data)\r\n },\r\n getRemovedData: function() {\r\n return this.getChanges().filter(change => this._getOldData(change.key) && change.type === DATA_EDIT_DATA_REMOVE_TYPE).map(change => this._getOldData(change.key))\r\n },\r\n _fireDataErrorOccurred: function(arg) {\r\n if (\"cancel\" === arg) {\r\n return\r\n }\r\n var $popupContent = this.getPopupContent();\r\n this._dataController.dataErrorOccurred.fire(arg, $popupContent)\r\n },\r\n _needToCloseEditableCell: noop,\r\n _closeEditItem: noop,\r\n _handleDataChanged: noop,\r\n _isDefaultButtonVisible: function(button, options) {\r\n var result = true;\r\n switch (button.name) {\r\n case \"delete\":\r\n result = this.allowDeleting(options);\r\n break;\r\n case \"undelete\":\r\n result = false\r\n }\r\n return result\r\n },\r\n _isButtonVisible: function(button, options) {\r\n var visible = button.visible;\r\n if (!isDefined(visible)) {\r\n return this._isDefaultButtonVisible(button, options)\r\n }\r\n return isFunction(visible) ? visible.call(button, {\r\n component: options.component,\r\n row: options.row,\r\n column: options.column\r\n }) : visible\r\n },\r\n _isButtonDisabled: function(button, options) {\r\n var disabled = button.disabled;\r\n return isFunction(disabled) ? disabled.call(button, {\r\n component: options.component,\r\n row: options.row,\r\n column: options.column\r\n }) : !!disabled\r\n },\r\n _getButtonConfig: function(button, options) {\r\n var config = isObject(button) ? button : {};\r\n var buttonName = getButtonName(button);\r\n var editingTexts = (options => {\r\n var editingTexts = options.component.option(\"editing.texts\") || {};\r\n return {\r\n save: editingTexts.saveRowChanges,\r\n cancel: editingTexts.cancelRowChanges,\r\n edit: editingTexts.editRow,\r\n undelete: editingTexts.undeleteRow,\r\n delete: editingTexts.deleteRow,\r\n add: editingTexts.addRowToNode\r\n }\r\n })(options);\r\n var methodName = METHOD_NAMES[buttonName];\r\n var editingOptions = this.option(\"editing\");\r\n var actionName = ACTION_OPTION_NAMES[buttonName];\r\n var allowAction = actionName ? editingOptions[actionName] : true;\r\n return extend({\r\n name: buttonName,\r\n text: editingTexts[buttonName],\r\n cssClass: EDIT_LINK_CLASS[buttonName]\r\n }, {\r\n onClick: methodName && (e => {\r\n var event = e.event;\r\n event.stopPropagation();\r\n event.preventDefault();\r\n setTimeout(() => {\r\n options.row && allowAction && this[methodName] && this[methodName](options.row.rowIndex)\r\n })\r\n })\r\n }, config)\r\n },\r\n _getEditingButtons: function(options) {\r\n var buttonIndex;\r\n var haveCustomButtons = !!options.column.buttons;\r\n var buttons = (options.column.buttons || []).slice();\r\n if (haveCustomButtons) {\r\n buttonIndex = getButtonIndex(buttons, \"edit\");\r\n if (buttonIndex >= 0) {\r\n if (getButtonIndex(buttons, \"save\") < 0) {\r\n buttons.splice(buttonIndex + 1, 0, \"save\")\r\n }\r\n if (getButtonIndex(buttons, \"cancel\") < 0) {\r\n buttons.splice(getButtonIndex(buttons, \"save\") + 1, 0, \"cancel\")\r\n }\r\n }\r\n buttonIndex = getButtonIndex(buttons, \"delete\");\r\n if (buttonIndex >= 0 && getButtonIndex(buttons, \"undelete\") < 0) {\r\n buttons.splice(buttonIndex + 1, 0, \"undelete\")\r\n }\r\n } else {\r\n buttons = BUTTON_NAMES.slice()\r\n }\r\n return buttons.map(button => this._getButtonConfig(button, options))\r\n },\r\n _renderEditingButtons: function($container, buttons, options, change) {\r\n buttons.forEach(button => {\r\n if (this._isButtonVisible(button, options)) {\r\n this._createButton($container, button, options, change)\r\n }\r\n })\r\n },\r\n _getEditCommandCellTemplate: function() {\r\n return (container, options, change) => {\r\n var $container = $(container);\r\n if (\"data\" === options.rowType) {\r\n var buttons = this._getEditingButtons(options);\r\n this._renderEditingButtons($container, buttons, options, change);\r\n options.watch && options.watch(() => buttons.map(button => this._isButtonVisible(button, options)), () => {\r\n $container.empty();\r\n this._renderEditingButtons($container, buttons, options)\r\n })\r\n } else {\r\n gridCoreUtils.setEmptyText($container)\r\n }\r\n }\r\n },\r\n isRowBasedEditMode: function() {\r\n var editMode = this.getEditMode();\r\n return -1 !== ROW_BASED_MODES.indexOf(editMode)\r\n },\r\n getFirstEditableColumnIndex: function() {\r\n var columnsController = this.getController(\"columns\");\r\n var columnIndex;\r\n var visibleColumns = columnsController.getVisibleColumns();\r\n each(visibleColumns, (function(index, column) {\r\n if (column.allowEditing) {\r\n columnIndex = index;\r\n return false\r\n }\r\n }));\r\n return columnIndex\r\n },\r\n getFirstEditableCellInRow: function(rowIndex) {\r\n var rowsView = this.getView(\"rowsView\");\r\n return rowsView && rowsView._getCellElement(rowIndex ? rowIndex : 0, this.getFirstEditableColumnIndex())\r\n },\r\n getFocusedCellInRow: function(rowIndex) {\r\n return this.getFirstEditableCellInRow(rowIndex)\r\n },\r\n getIndexByKey: function(key, items) {\r\n return gridCoreUtils.getIndexByKey(key, items)\r\n },\r\n hasChanges: function(rowIndex) {\r\n var changes = this.getChanges();\r\n var result = false;\r\n for (var i = 0; i < (null === changes || void 0 === changes ? void 0 : changes.length); i++) {\r\n if (changes[i].type && (!isDefined(rowIndex) || this._dataController.getRowIndexByKey(changes[i].key) === rowIndex)) {\r\n result = true;\r\n break\r\n }\r\n }\r\n return result\r\n },\r\n dispose: function() {\r\n this.callBase();\r\n clearTimeout(this._inputFocusTimeoutID);\r\n eventsEngine.off(domAdapter.getDocument(), pointerEvents.up, this._pointerUpEditorHandler);\r\n eventsEngine.off(domAdapter.getDocument(), pointerEvents.down, this._pointerDownEditorHandler);\r\n eventsEngine.off(domAdapter.getDocument(), clickEventName, this._saveEditorHandler)\r\n },\r\n optionChanged: function(args) {\r\n if (\"editing\" === args.name) {\r\n var fullName = args.fullName;\r\n if (fullName === EDITING_EDITROWKEY_OPTION_NAME) {\r\n this._handleEditRowKeyChange(args)\r\n } else if (fullName === EDITING_CHANGES_OPTION_NAME) {\r\n this._handleChangesChange(args)\r\n } else if (!args.handled) {\r\n this._columnsController.reinit();\r\n this.init();\r\n this.resetChanges();\r\n this._resetEditColumnName();\r\n this._resetEditRowKey()\r\n }\r\n args.handled = true\r\n } else {\r\n this.callBase(args)\r\n }\r\n },\r\n _handleEditRowKeyChange: function(args) {\r\n var rowIndex = this._dataController.getRowIndexByKey(args.value);\r\n var oldRowIndexCorrection = this._getEditRowIndexCorrection();\r\n var oldRowIndex = this._dataController.getRowIndexByKey(args.previousValue) + oldRowIndexCorrection;\r\n if (isDefined(args.value)) {\r\n if (args.value !== args.previousValue) {\r\n this._editRowFromOptionChanged(rowIndex, oldRowIndex)\r\n }\r\n } else {\r\n this.cancelEditData()\r\n }\r\n },\r\n _handleChangesChange: function(args) {\r\n var dataController = this._dataController;\r\n var changes = args.value;\r\n if (!args.value.length && !args.previousValue.length) {\r\n return\r\n }\r\n changes.forEach(change => {\r\n if (\"insert\" === change.type) {\r\n this._addInsertInfo(change)\r\n } else {\r\n var _items$rowIndex;\r\n var items = dataController.items();\r\n var rowIndex = dataController.getRowIndexByKey(change.key);\r\n this._addInternalData({\r\n key: change.key,\r\n oldData: null === (_items$rowIndex = items[rowIndex]) || void 0 === _items$rowIndex ? void 0 : _items$rowIndex.data\r\n })\r\n }\r\n });\r\n dataController.updateItems({\r\n repaintChangesOnly: true,\r\n isLiveUpdate: false\r\n })\r\n },\r\n publicMethods: function() {\r\n return [\"addRow\", \"deleteRow\", \"undeleteRow\", \"editRow\", \"saveEditData\", \"cancelEditData\", \"hasEditData\"]\r\n },\r\n refresh: function() {\r\n if (!isDefined(this._pageIndex)) {\r\n return\r\n }\r\n this._refreshCore.apply(this, arguments)\r\n },\r\n _refreshCore: noop,\r\n isEditing: function() {\r\n var isEditRowKeyDefined = isDefined(this.option(EDITING_EDITROWKEY_OPTION_NAME));\r\n return isEditRowKeyDefined\r\n },\r\n isEditRow: function() {\r\n return false\r\n },\r\n _setEditRowKey: function(value, silent) {\r\n if (silent) {\r\n this._silentOption(EDITING_EDITROWKEY_OPTION_NAME, value)\r\n } else {\r\n this.option(EDITING_EDITROWKEY_OPTION_NAME, value)\r\n }\r\n },\r\n _setEditRowKeyByIndex: function(rowIndex, silent) {\r\n var key = this._dataController.getKeyByRowIndex(rowIndex);\r\n if (void 0 === key) {\r\n this._dataController.fireError(\"E1043\");\r\n return\r\n }\r\n this._setEditRowKey(key, silent)\r\n },\r\n getEditRowIndex: function() {\r\n return this._getVisibleEditRowIndex()\r\n },\r\n getEditFormRowIndex: function() {\r\n return -1\r\n },\r\n isEditRowByIndex(rowIndex) {\r\n var key = this._dataController.getKeyByRowIndex(rowIndex);\r\n var isKeyEqual = isDefined(key) && equalByValue(this.option(EDITING_EDITROWKEY_OPTION_NAME), key);\r\n if (isKeyEqual) {\r\n return this._getVisibleEditRowIndex() === rowIndex\r\n }\r\n return isKeyEqual\r\n },\r\n isEditCell: function(visibleRowIndex, columnIndex) {\r\n return this.isEditRowByIndex(visibleRowIndex) && this._getVisibleEditColumnIndex() === columnIndex\r\n },\r\n getPopupContent: noop,\r\n _isProcessedItem: function(item) {\r\n return false\r\n },\r\n _getInsertRowIndex: function(items, change, isProcessedItems) {\r\n var result = -1;\r\n var dataController = this._dataController;\r\n var key = this._getInsertAfterOrBeforeKey(change);\r\n if (!isDefined(key) && 0 === items.length) {\r\n result = 0\r\n } else if (isDefined(key)) {\r\n items.some((item, index) => {\r\n var isProcessedItem = isProcessedItems || this._isProcessedItem(item);\r\n if (isObject(item)) {\r\n if (isProcessedItem || isDefined(item[INSERT_INDEX])) {\r\n if (equalByValue(item.key, key)) {\r\n result = index\r\n }\r\n } else if (equalByValue(dataController.keyOf(item), key)) {\r\n result = index\r\n }\r\n }\r\n if (result >= 0) {\r\n var nextItem = items[result + 1];\r\n if (nextItem && (\"detail\" === nextItem.rowType || \"detailAdaptive\" === nextItem.rowType) && isDefined(change.insertAfterKey)) {\r\n return\r\n }\r\n if (isDefined(change.insertAfterKey)) {\r\n result += 1\r\n }\r\n return true\r\n }\r\n })\r\n }\r\n return result\r\n },\r\n _generateNewItem: function(key) {\r\n var _this$_getInternalDat2;\r\n var item = {\r\n key: key\r\n };\r\n var insertInfo = null === (_this$_getInternalDat2 = this._getInternalData(key)) || void 0 === _this$_getInternalDat2 ? void 0 : _this$_getInternalDat2.insertInfo;\r\n if (null !== insertInfo && void 0 !== insertInfo && insertInfo[INSERT_INDEX]) {\r\n item[INSERT_INDEX] = insertInfo[INSERT_INDEX]\r\n }\r\n return item\r\n },\r\n _getLoadedRowIndex: function(items, change, isProcessedItems) {\r\n var loadedRowIndex = this._getInsertRowIndex(items, change, isProcessedItems);\r\n var dataController = this._dataController;\r\n if (loadedRowIndex < 0) {\r\n var newRowPosition = this._getNewRowPosition();\r\n var pageIndex = dataController.pageIndex();\r\n var insertAfterOrBeforeKey = this._getInsertAfterOrBeforeKey(change);\r\n if (newRowPosition !== LAST_NEW_ROW_POSITION && 0 === pageIndex && !isDefined(insertAfterOrBeforeKey)) {\r\n loadedRowIndex = 0\r\n } else if (newRowPosition === LAST_NEW_ROW_POSITION && dataController.isLastPageLoaded()) {\r\n loadedRowIndex = items.length\r\n }\r\n }\r\n return loadedRowIndex\r\n },\r\n processItems: function(items, e) {\r\n var changeType = e.changeType;\r\n this.update(changeType);\r\n var changes = this.getChanges();\r\n changes.forEach(change => {\r\n var _this$_getInternalDat3;\r\n var isInsert = change.type === DATA_EDIT_DATA_INSERT_TYPE;\r\n if (!isInsert) {\r\n return\r\n }\r\n var key = change.key;\r\n var insertInfo = null === (_this$_getInternalDat3 = this._getInternalData(key)) || void 0 === _this$_getInternalDat3 ? void 0 : _this$_getInternalDat3.insertInfo;\r\n if (!isDefined(key) || !isDefined(insertInfo)) {\r\n insertInfo = this._addInsertInfo(change);\r\n key = insertInfo.key\r\n }\r\n var loadedRowIndex = this._getLoadedRowIndex(items, change);\r\n var item = this._generateNewItem(key);\r\n if (loadedRowIndex >= 0) {\r\n items.splice(loadedRowIndex, 0, item)\r\n }\r\n });\r\n return items\r\n },\r\n processDataItem: function(item, options, generateDataValues) {\r\n var columns = options.visibleColumns;\r\n var key = item.data[INSERT_INDEX] ? item.data.key : item.key;\r\n var changes = this.getChanges();\r\n var editIndex = gridCoreUtils.getIndexByKey(key, changes);\r\n item.isEditing = false;\r\n if (editIndex >= 0) {\r\n this._processDataItemCore(item, changes[editIndex], key, columns, generateDataValues)\r\n }\r\n },\r\n _processDataItemCore: function(item, change, key, columns, generateDataValues) {\r\n var {\r\n data: data,\r\n type: type\r\n } = change;\r\n switch (type) {\r\n case DATA_EDIT_DATA_INSERT_TYPE:\r\n item.isNewRow = true;\r\n item.key = key;\r\n item.data = data;\r\n break;\r\n case DATA_EDIT_DATA_UPDATE_TYPE:\r\n item.modified = true;\r\n item.oldData = item.data;\r\n item.data = createObjectWithChanges(item.data, data);\r\n item.modifiedValues = generateDataValues(data, columns, true);\r\n break;\r\n case DATA_EDIT_DATA_REMOVE_TYPE:\r\n item.removed = true\r\n }\r\n },\r\n _initNewRow: function(options) {\r\n this.executeAction(\"onInitNewRow\", options);\r\n if (options.promise) {\r\n var deferred = new Deferred;\r\n when(fromPromise(options.promise)).done(deferred.resolve).fail(createFailureHandler(deferred)).fail(arg => this._fireDataErrorOccurred(arg));\r\n return deferred\r\n }\r\n },\r\n _createInsertInfo: function() {\r\n var insertInfo = {};\r\n insertInfo[INSERT_INDEX] = this._getInsertIndex();\r\n return insertInfo\r\n },\r\n _addInsertInfo: function(change, parentKey) {\r\n var _this$_getInternalDat4;\r\n var insertInfo;\r\n var {\r\n key: key\r\n } = change;\r\n if (!isDefined(key)) {\r\n key = String(new Guid);\r\n change.key = key\r\n }\r\n insertInfo = null === (_this$_getInternalDat4 = this._getInternalData(key)) || void 0 === _this$_getInternalDat4 ? void 0 : _this$_getInternalDat4.insertInfo;\r\n if (!isDefined(insertInfo)) {\r\n var insertAfterOrBeforeKey = this._getInsertAfterOrBeforeKey(change);\r\n insertInfo = this._createInsertInfo();\r\n if (!isDefined(insertAfterOrBeforeKey)) {\r\n this._setInsertAfterOrBeforeKey(change, parentKey)\r\n }\r\n }\r\n this._addInternalData({\r\n insertInfo: insertInfo,\r\n key: key\r\n });\r\n return {\r\n insertInfo: insertInfo,\r\n key: key\r\n }\r\n },\r\n _setInsertAfterOrBeforeKey: function(change, parentKey) {\r\n var dataController = this._dataController;\r\n var allItems = dataController.items(true);\r\n var rowsView = this.getView(\"rowsView\");\r\n var newRowPosition = this._getNewRowPosition();\r\n switch (newRowPosition) {\r\n case FIRST_NEW_ROW_POSITION:\r\n case LAST_NEW_ROW_POSITION:\r\n break;\r\n case PAGE_TOP_NEW_ROW_POSITION:\r\n case PAGE_BOTTOM_NEW_ROW_POSITION:\r\n if (allItems.length) {\r\n var itemIndex = newRowPosition === PAGE_TOP_NEW_ROW_POSITION ? 0 : allItems.length - 1;\r\n change[0 === itemIndex ? \"insertBeforeKey\" : \"insertAfterKey\"] = allItems[itemIndex].key\r\n }\r\n break;\r\n default:\r\n var isViewportBottom = newRowPosition === VIEWPORT_BOTTOM_NEW_ROW_POSITION;\r\n var visibleItemIndex = isViewportBottom ? null === rowsView || void 0 === rowsView ? void 0 : rowsView.getBottomVisibleItemIndex() : null === rowsView || void 0 === rowsView ? void 0 : rowsView.getTopVisibleItemIndex();\r\n var row = dataController.getVisibleRows()[visibleItemIndex];\r\n if (row && (!row.isEditing && \"detail\" === row.rowType || \"detailAdaptive\" === row.rowType)) {\r\n visibleItemIndex++\r\n }\r\n var insertKey = dataController.getKeyByRowIndex(visibleItemIndex);\r\n if (isDefined(insertKey)) {\r\n change.insertBeforeKey = insertKey\r\n }\r\n }\r\n },\r\n _getInsertIndex: function() {\r\n var maxInsertIndex = 0;\r\n this.getChanges().forEach(editItem => {\r\n var _this$_getInternalDat5;\r\n var insertInfo = null === (_this$_getInternalDat5 = this._getInternalData(editItem.key)) || void 0 === _this$_getInternalDat5 ? void 0 : _this$_getInternalDat5.insertInfo;\r\n if (isDefined(insertInfo) && editItem.type === DATA_EDIT_DATA_INSERT_TYPE && insertInfo[INSERT_INDEX] > maxInsertIndex) {\r\n maxInsertIndex = insertInfo[INSERT_INDEX]\r\n }\r\n });\r\n return maxInsertIndex + 1\r\n },\r\n _getInsertAfterOrBeforeKey: function(insertChange) {\r\n var _insertChange$insertA;\r\n return null !== (_insertChange$insertA = insertChange.insertAfterKey) && void 0 !== _insertChange$insertA ? _insertChange$insertA : insertChange.insertBeforeKey\r\n },\r\n _getPageIndexToInsertRow: function() {\r\n var newRowPosition = this._getNewRowPosition();\r\n var dataController = this._dataController;\r\n var pageIndex = dataController.pageIndex();\r\n var lastPageIndex = dataController.pageCount() - 1;\r\n if (newRowPosition === FIRST_NEW_ROW_POSITION && 0 !== pageIndex) {\r\n return 0\r\n } else if (newRowPosition === LAST_NEW_ROW_POSITION && pageIndex !== lastPageIndex) {\r\n return lastPageIndex\r\n }\r\n return -1\r\n },\r\n addRow: function(parentKey) {\r\n var dataController = this._dataController;\r\n var store = dataController.store();\r\n if (!store) {\r\n dataController.fireError(\"E1052\", this.component.NAME);\r\n return (new Deferred).reject()\r\n }\r\n return this._addRow(parentKey)\r\n },\r\n _addRow: function(parentKey) {\r\n var dataController = this._dataController;\r\n var store = dataController.store();\r\n var key = store && store.key();\r\n var param = {\r\n data: {}\r\n };\r\n var oldEditRowIndex = this._getVisibleEditRowIndex();\r\n var deferred = new Deferred;\r\n this.refresh({\r\n allowCancelEditing: true\r\n });\r\n if (!this._allowRowAdding()) {\r\n when(this._navigateToNewRow(oldEditRowIndex)).done(deferred.resolve).fail(deferred.reject);\r\n return deferred.promise()\r\n }\r\n if (!key) {\r\n param.data.__KEY__ = String(new Guid)\r\n }\r\n when(this._initNewRow(param, parentKey)).done(() => {\r\n if (this._allowRowAdding()) {\r\n when(this._addRowCore(param.data, parentKey, oldEditRowIndex)).done(deferred.resolve).fail(deferred.reject)\r\n } else {\r\n deferred.reject(\"cancel\")\r\n }\r\n }).fail(deferred.reject);\r\n return deferred.promise()\r\n },\r\n _allowRowAdding: function() {\r\n var insertIndex = this._getInsertIndex();\r\n if (insertIndex > 1) {\r\n return false\r\n }\r\n return true\r\n },\r\n _addRowCore: function(data, parentKey, initialOldEditRowIndex) {\r\n var change = {\r\n data: data,\r\n type: DATA_EDIT_DATA_INSERT_TYPE\r\n };\r\n var editRowIndex = this._getVisibleEditRowIndex();\r\n var insertInfo = this._addInsertInfo(change, parentKey);\r\n var key = insertInfo.key;\r\n this._setEditRowKey(key, true);\r\n this._addChange(change);\r\n return this._navigateToNewRow(initialOldEditRowIndex, change, editRowIndex)\r\n },\r\n _navigateToNewRow: function(oldEditRowIndex, change, editRowIndex) {\r\n var _editRowIndex, _change;\r\n var d = new Deferred;\r\n var dataController = this._dataController;\r\n var focusController = this.getController(\"focus\");\r\n editRowIndex = null !== (_editRowIndex = editRowIndex) && void 0 !== _editRowIndex ? _editRowIndex : -1;\r\n change = null !== (_change = change) && void 0 !== _change ? _change : this.getChanges().filter(c => c.type === DATA_EDIT_DATA_INSERT_TYPE)[0];\r\n if (!change) {\r\n return d.reject(\"cancel\").promise()\r\n }\r\n var pageIndexToInsertRow = this._getPageIndexToInsertRow();\r\n var rowIndex = this._getLoadedRowIndex(dataController.items(), change, true);\r\n var navigateToRowByKey = key => {\r\n when(null === focusController || void 0 === focusController ? void 0 : focusController.navigateToRow(key)).done(() => {\r\n rowIndex = dataController.getRowIndexByKey(change.key);\r\n d.resolve()\r\n })\r\n };\r\n var insertAfterOrBeforeKey = this._getInsertAfterOrBeforeKey(change);\r\n if (pageIndexToInsertRow >= 0) {\r\n dataController.pageIndex(pageIndexToInsertRow).done(() => {\r\n navigateToRowByKey(change.key)\r\n }).fail(d.reject)\r\n } else if (rowIndex < 0 && isDefined(insertAfterOrBeforeKey)) {\r\n navigateToRowByKey(insertAfterOrBeforeKey)\r\n } else {\r\n dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: [oldEditRowIndex, editRowIndex, rowIndex]\r\n });\r\n rowIndex = dataController.getRowIndexByKey(change.key);\r\n if (rowIndex < 0) {\r\n navigateToRowByKey(change.key)\r\n } else {\r\n d.resolve()\r\n }\r\n }\r\n d.done(() => {\r\n this._showAddedRow(rowIndex);\r\n this._afterInsertRow(change.key)\r\n });\r\n return d.promise()\r\n },\r\n _showAddedRow: function(rowIndex) {\r\n this._focusFirstEditableCellInRow(rowIndex)\r\n },\r\n _beforeFocusElementInRow: noop,\r\n _focusFirstEditableCellInRow: function(rowIndex) {\r\n var dataController = this._dataController;\r\n var key = dataController.getKeyByRowIndex(rowIndex);\r\n var $firstCell = this.getFirstEditableCellInRow(rowIndex);\r\n this._editCellInProgress = true;\r\n this._delayedInputFocus($firstCell, () => {\r\n rowIndex = dataController.getRowIndexByKey(key);\r\n this._editCellInProgress = false;\r\n this._beforeFocusElementInRow(rowIndex)\r\n })\r\n },\r\n _isEditingStart: function(options) {\r\n this.executeAction(\"onEditingStart\", options);\r\n return options.cancel\r\n },\r\n _beforeUpdateItems: noop,\r\n _getVisibleEditColumnIndex: function() {\r\n var editColumnName = this.option(EDITING_EDITCOLUMNNAME_OPTION_NAME);\r\n if (!isDefined(editColumnName)) {\r\n return -1\r\n }\r\n return this._columnsController.getVisibleColumnIndex(editColumnName)\r\n },\r\n _setEditColumnNameByIndex: function(index, silent) {\r\n var _visibleColumns$index;\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n this._setEditColumnName(null === (_visibleColumns$index = visibleColumns[index]) || void 0 === _visibleColumns$index ? void 0 : _visibleColumns$index.name, silent)\r\n },\r\n _setEditColumnName: function(name, silent) {\r\n if (silent) {\r\n this._silentOption(EDITING_EDITCOLUMNNAME_OPTION_NAME, name)\r\n } else {\r\n this.option(EDITING_EDITCOLUMNNAME_OPTION_NAME, name)\r\n }\r\n },\r\n _resetEditColumnName: function() {\r\n this._setEditColumnName(null, true)\r\n },\r\n _getEditColumn: function() {\r\n var editColumnName = this.option(EDITING_EDITCOLUMNNAME_OPTION_NAME);\r\n return this._getColumnByName(editColumnName)\r\n },\r\n _getColumnByName: function(name) {\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n var editColumn;\r\n isDefined(name) && visibleColumns.some(column => {\r\n if (column.name === name) {\r\n editColumn = column;\r\n return true\r\n }\r\n });\r\n return editColumn\r\n },\r\n _getVisibleEditRowIndex: function(columnName) {\r\n var dataController = this._dataController;\r\n var editRowKey = this.option(EDITING_EDITROWKEY_OPTION_NAME);\r\n var rowIndex = dataController.getRowIndexByKey(editRowKey);\r\n if (-1 === rowIndex) {\r\n return rowIndex\r\n }\r\n return rowIndex + this._getEditRowIndexCorrection(columnName)\r\n },\r\n _getEditRowIndexCorrection: function(columnName) {\r\n var editColumn = columnName ? this._getColumnByName(columnName) : this._getEditColumn();\r\n var isColumnHidden = \"adaptiveHidden\" === (null === editColumn || void 0 === editColumn ? void 0 : editColumn.visibleWidth);\r\n return isColumnHidden ? 1 : 0\r\n },\r\n _resetEditRowKey: function() {\r\n this._setEditRowKey(null, true)\r\n },\r\n _resetEditIndices: function() {\r\n this._resetEditColumnName();\r\n this._resetEditRowKey()\r\n },\r\n editRow: function(rowIndex) {\r\n var _item$oldData;\r\n var dataController = this._dataController;\r\n var items = dataController.items();\r\n var item = items[rowIndex];\r\n var params = {\r\n data: item && item.data,\r\n cancel: false\r\n };\r\n var oldRowIndex = this._getVisibleEditRowIndex();\r\n if (!item) {\r\n return\r\n }\r\n if (rowIndex === oldRowIndex) {\r\n return true\r\n }\r\n if (void 0 === item.key) {\r\n this._dataController.fireError(\"E1043\");\r\n return\r\n }\r\n if (!item.isNewRow) {\r\n params.key = item.key\r\n }\r\n if (this._isEditingStart(params)) {\r\n return\r\n }\r\n this.resetChanges();\r\n this.init();\r\n this._resetEditColumnName();\r\n this._pageIndex = dataController.pageIndex();\r\n this._addInternalData({\r\n key: item.key,\r\n oldData: null !== (_item$oldData = item.oldData) && void 0 !== _item$oldData ? _item$oldData : item.data\r\n });\r\n this._setEditRowKey(item.key)\r\n },\r\n _editRowFromOptionChanged: function(rowIndex, oldRowIndex) {\r\n var rowIndices = [oldRowIndex, rowIndex];\r\n this._beforeUpdateItems(rowIndices, rowIndex, oldRowIndex);\r\n this._editRowFromOptionChangedCore(rowIndices, rowIndex)\r\n },\r\n _editRowFromOptionChangedCore: function(rowIndices, rowIndex, preventRendering) {\r\n this._needFocusEditor = true;\r\n this._dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: rowIndices,\r\n cancel: preventRendering\r\n })\r\n },\r\n _focusEditorIfNeed: noop,\r\n _showEditPopup: noop,\r\n _repaintEditPopup: noop,\r\n _getEditPopupHiddenHandler: function() {\r\n return e => {\r\n if (this.isEditing()) {\r\n this.cancelEditData()\r\n }\r\n }\r\n },\r\n _getPopupEditFormTemplate: noop,\r\n _getSaveButtonConfig: function() {\r\n return {\r\n text: this.option(\"editing.texts.saveRowChanges\"),\r\n onClick: this.saveEditData.bind(this)\r\n }\r\n },\r\n _getCancelButtonConfig: function() {\r\n return {\r\n text: this.option(\"editing.texts.cancelRowChanges\"),\r\n onClick: this.cancelEditData.bind(this)\r\n }\r\n },\r\n _removeInternalData: function(key) {\r\n var internalData = this._getInternalData(key);\r\n var index = this._internalState.indexOf(internalData);\r\n if (index > -1) {\r\n this._internalState.splice(index, 1)\r\n }\r\n },\r\n _updateInsertAfterOrBeforeKeys: function(changes, index) {\r\n var removeChange = changes[index];\r\n changes.forEach(change => {\r\n var insertAfterOrBeforeKey = this._getInsertAfterOrBeforeKey(change);\r\n if (equalByValue(insertAfterOrBeforeKey, removeChange.key)) {\r\n change[isDefined(change.insertAfterKey) ? \"insertAfterKey\" : \"insertBeforeKey\"] = this._getInsertAfterOrBeforeKey(removeChange)\r\n }\r\n })\r\n },\r\n _removeChange: function(index) {\r\n if (index >= 0) {\r\n var changes = [...this.getChanges()];\r\n var key = changes[index].key;\r\n this._removeInternalData(key);\r\n this._updateInsertAfterOrBeforeKeys(changes, index);\r\n changes.splice(index, 1);\r\n this._silentOption(EDITING_CHANGES_OPTION_NAME, changes);\r\n if (equalByValue(this.option(EDITING_EDITROWKEY_OPTION_NAME), key)) {\r\n this._resetEditIndices()\r\n }\r\n }\r\n },\r\n executeOperation: function(deferred, func) {\r\n this._lastOperation && this._lastOperation.reject();\r\n this._lastOperation = deferred;\r\n this.waitForDeferredOperations().done(() => {\r\n if (\"rejected\" === deferred.state()) {\r\n return\r\n }\r\n func();\r\n this._lastOperation = null\r\n }).fail(() => {\r\n deferred.reject();\r\n this._lastOperation = null\r\n })\r\n },\r\n waitForDeferredOperations: function() {\r\n return when(...this._deferreds)\r\n },\r\n _processCanceledEditingCell: noop,\r\n _repaintEditCell: function(column, oldColumn, oldEditRowIndex) {\r\n this._needFocusEditor = true;\r\n if (!column || !column.showEditorAlways || oldColumn && !oldColumn.showEditorAlways) {\r\n this._editCellInProgress = true;\r\n this.getController(\"editorFactory\").loseFocus();\r\n this._dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: [oldEditRowIndex, this._getVisibleEditRowIndex()]\r\n })\r\n } else if (column !== oldColumn) {\r\n this._dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: []\r\n })\r\n }\r\n },\r\n _delayedInputFocus: function($cell, beforeFocusCallback, callBeforeFocusCallbackAlways) {\r\n var inputFocus = () => {\r\n if (beforeFocusCallback) {\r\n beforeFocusCallback()\r\n }\r\n if ($cell) {\r\n var $focusableElement = $cell.find(FOCUSABLE_ELEMENT_SELECTOR).first();\r\n gridCoreUtils.focusAndSelectElement(this, $focusableElement)\r\n }\r\n this._beforeFocusCallback = null\r\n };\r\n if (devices.real().ios || devices.real().android) {\r\n inputFocus()\r\n } else {\r\n if (this._beforeFocusCallback) {\r\n this._beforeFocusCallback()\r\n }\r\n clearTimeout(this._inputFocusTimeoutID);\r\n if (callBeforeFocusCallbackAlways) {\r\n this._beforeFocusCallback = beforeFocusCallback\r\n }\r\n this._inputFocusTimeoutID = setTimeout(inputFocus)\r\n }\r\n },\r\n _focusEditingCell: function(beforeFocusCallback, $editCell, callBeforeFocusCallbackAlways) {\r\n var rowsView = this.getView(\"rowsView\");\r\n var editColumnIndex = this._getVisibleEditColumnIndex();\r\n $editCell = $editCell || rowsView && rowsView._getCellElement(this._getVisibleEditRowIndex(), editColumnIndex);\r\n if ($editCell) {\r\n this._delayedInputFocus($editCell, beforeFocusCallback, callBeforeFocusCallbackAlways)\r\n }\r\n },\r\n deleteRow: function(rowIndex) {\r\n this._checkAndDeleteRow(rowIndex)\r\n },\r\n _checkAndDeleteRow: function(rowIndex) {\r\n var editingOptions = this.option(\"editing\");\r\n var editingTexts = null === editingOptions || void 0 === editingOptions ? void 0 : editingOptions.texts;\r\n var confirmDelete = null === editingOptions || void 0 === editingOptions ? void 0 : editingOptions.confirmDelete;\r\n var confirmDeleteMessage = null === editingTexts || void 0 === editingTexts ? void 0 : editingTexts.confirmDeleteMessage;\r\n var item = this._dataController.items()[rowIndex];\r\n var allowDeleting = !this.isEditing() || item.isNewRow;\r\n if (item && allowDeleting) {\r\n if (!confirmDelete || !confirmDeleteMessage) {\r\n this._deleteRowCore(rowIndex)\r\n } else {\r\n var confirmDeleteTitle = editingTexts && editingTexts.confirmDeleteTitle;\r\n var showDialogTitle = isDefined(confirmDeleteTitle) && confirmDeleteTitle.length > 0;\r\n confirm(confirmDeleteMessage, confirmDeleteTitle, showDialogTitle).done(confirmResult => {\r\n if (confirmResult) {\r\n this._deleteRowCore(rowIndex)\r\n }\r\n })\r\n }\r\n }\r\n },\r\n _deleteRowCore: function(rowIndex) {\r\n var dataController = this._dataController;\r\n var item = dataController.items()[rowIndex];\r\n var key = item && item.key;\r\n var oldEditRowIndex = this._getVisibleEditRowIndex();\r\n this.refresh();\r\n var changes = this.getChanges();\r\n var editIndex = gridCoreUtils.getIndexByKey(key, changes);\r\n if (editIndex >= 0) {\r\n if (changes[editIndex].type === DATA_EDIT_DATA_INSERT_TYPE) {\r\n this._removeChange(editIndex)\r\n } else {\r\n this._addChange({\r\n key: key,\r\n type: DATA_EDIT_DATA_REMOVE_TYPE\r\n })\r\n }\r\n } else {\r\n this._addChange({\r\n key: key,\r\n oldData: item.data,\r\n type: DATA_EDIT_DATA_REMOVE_TYPE\r\n })\r\n }\r\n return this._afterDeleteRow(rowIndex, oldEditRowIndex)\r\n },\r\n _afterDeleteRow: function(rowIndex, oldEditRowIndex) {\r\n return this.saveEditData()\r\n },\r\n undeleteRow: function(rowIndex) {\r\n var dataController = this._dataController;\r\n var item = dataController.items()[rowIndex];\r\n var oldEditRowIndex = this._getVisibleEditRowIndex();\r\n var key = item && item.key;\r\n var changes = this.getChanges();\r\n if (item) {\r\n var editIndex = gridCoreUtils.getIndexByKey(key, changes);\r\n if (editIndex >= 0) {\r\n var {\r\n data: data\r\n } = changes[editIndex];\r\n if (isEmptyObject(data)) {\r\n this._removeChange(editIndex)\r\n } else {\r\n this._addChange({\r\n key: key,\r\n type: DATA_EDIT_DATA_UPDATE_TYPE\r\n })\r\n }\r\n dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: [oldEditRowIndex, rowIndex]\r\n })\r\n }\r\n }\r\n },\r\n _fireOnSaving: function() {\r\n var onSavingParams = {\r\n cancel: false,\r\n promise: null,\r\n changes: [...this.getChanges()]\r\n };\r\n this.executeAction(\"onSaving\", onSavingParams);\r\n var d = new Deferred;\r\n when(fromPromise(onSavingParams.promise)).done(() => {\r\n d.resolve(onSavingParams)\r\n }).fail(arg => {\r\n createFailureHandler(d);\r\n this._fireDataErrorOccurred(arg);\r\n d.resolve({\r\n cancel: true\r\n })\r\n });\r\n return d\r\n },\r\n _executeEditingAction: function(actionName, params, func) {\r\n if (this.component._disposed) {\r\n return null\r\n }\r\n var deferred = new Deferred;\r\n this.executeAction(actionName, params);\r\n when(fromPromise(params.cancel)).done((function(cancel) {\r\n if (cancel) {\r\n setTimeout((function() {\r\n deferred.resolve(\"cancel\")\r\n }))\r\n } else {\r\n func(params).done(deferred.resolve).fail(createFailureHandler(deferred))\r\n }\r\n })).fail(createFailureHandler(deferred));\r\n return deferred\r\n },\r\n _processChanges: function(deferreds, results, dataChanges, changes) {\r\n var store = this._dataController.store();\r\n each(changes, (index, change) => {\r\n var oldData = this._getOldData(change.key);\r\n var {\r\n data: data,\r\n type: type\r\n } = change;\r\n var changeCopy = _extends({}, change);\r\n var deferred;\r\n var params;\r\n if (this._beforeSaveEditData(change, index)) {\r\n return\r\n }\r\n switch (type) {\r\n case DATA_EDIT_DATA_REMOVE_TYPE:\r\n params = {\r\n data: oldData,\r\n key: change.key,\r\n cancel: false\r\n };\r\n deferred = this._executeEditingAction(\"onRowRemoving\", params, (function() {\r\n return store.remove(change.key).done((function(key) {\r\n dataChanges.push({\r\n type: \"remove\",\r\n key: key\r\n })\r\n }))\r\n }));\r\n break;\r\n case DATA_EDIT_DATA_INSERT_TYPE:\r\n params = {\r\n data: data,\r\n cancel: false\r\n };\r\n deferred = this._executeEditingAction(\"onRowInserting\", params, (function() {\r\n return store.insert(params.data).done((function(data, key) {\r\n if (isDefined(key)) {\r\n changeCopy.key = key\r\n }\r\n if (data && isObject(data) && data !== params.data) {\r\n changeCopy.data = data\r\n }\r\n dataChanges.push({\r\n type: \"insert\",\r\n data: data,\r\n index: 0\r\n })\r\n }))\r\n }));\r\n break;\r\n case DATA_EDIT_DATA_UPDATE_TYPE:\r\n params = {\r\n newData: data,\r\n oldData: oldData,\r\n key: change.key,\r\n cancel: false\r\n };\r\n deferred = this._executeEditingAction(\"onRowUpdating\", params, (function() {\r\n return store.update(change.key, params.newData).done((function(data, key) {\r\n if (data && isObject(data) && data !== params.newData) {\r\n changeCopy.data = data\r\n }\r\n dataChanges.push({\r\n type: \"update\",\r\n key: key,\r\n data: data\r\n })\r\n }))\r\n }))\r\n }\r\n changes[index] = changeCopy;\r\n if (deferred) {\r\n var doneDeferred = new Deferred;\r\n deferred.always((function(data) {\r\n results.push({\r\n key: change.key,\r\n result: data\r\n })\r\n })).always(doneDeferred.resolve);\r\n deferreds.push(doneDeferred.promise())\r\n }\r\n })\r\n },\r\n _processRemoveIfError: function(changes, editIndex) {\r\n var change = changes[editIndex];\r\n if ((null === change || void 0 === change ? void 0 : change.type) === DATA_EDIT_DATA_REMOVE_TYPE) {\r\n if (editIndex >= 0) {\r\n changes.splice(editIndex, 1)\r\n }\r\n }\r\n return true\r\n },\r\n _processRemove: function(changes, editIndex, cancel) {\r\n var change = changes[editIndex];\r\n if (!cancel || !change || change.type === DATA_EDIT_DATA_REMOVE_TYPE) {\r\n return this._processRemoveCore(changes, editIndex, !cancel || !change)\r\n }\r\n },\r\n _processRemoveCore: function(changes, editIndex) {\r\n if (editIndex >= 0) {\r\n changes.splice(editIndex, 1)\r\n }\r\n return true\r\n },\r\n _processSaveEditDataResult: function(results) {\r\n var hasSavedData = false;\r\n var changes = [...this.getChanges()];\r\n var changesLength = changes.length;\r\n for (var i = 0; i < results.length; i++) {\r\n var arg = results[i].result;\r\n var cancel = \"cancel\" === arg;\r\n var editIndex = gridCoreUtils.getIndexByKey(results[i].key, changes);\r\n var change = changes[editIndex];\r\n var isError = arg && arg instanceof Error;\r\n if (isError) {\r\n if (change) {\r\n this._addInternalData({\r\n key: change.key,\r\n error: arg\r\n })\r\n }\r\n this._fireDataErrorOccurred(arg);\r\n if (this._processRemoveIfError(changes, editIndex)) {\r\n break\r\n }\r\n } else if (this._processRemove(changes, editIndex, cancel)) {\r\n hasSavedData = !cancel\r\n }\r\n }\r\n if (changes.length < changesLength) {\r\n this._silentOption(EDITING_CHANGES_OPTION_NAME, changes)\r\n }\r\n return hasSavedData\r\n },\r\n _fireSaveEditDataEvents: function(changes) {\r\n each(changes, (_, _ref) => {\r\n var {\r\n data: data,\r\n key: key,\r\n type: type\r\n } = _ref;\r\n var internalData = this._addInternalData({\r\n key: key\r\n });\r\n var params = {\r\n key: key,\r\n data: data\r\n };\r\n if (internalData.error) {\r\n params.error = internalData.error\r\n }\r\n switch (type) {\r\n case DATA_EDIT_DATA_REMOVE_TYPE:\r\n this.executeAction(\"onRowRemoved\", extend({}, params, {\r\n data: internalData.oldData\r\n }));\r\n break;\r\n case DATA_EDIT_DATA_INSERT_TYPE:\r\n this.executeAction(\"onRowInserted\", params);\r\n break;\r\n case DATA_EDIT_DATA_UPDATE_TYPE:\r\n this.executeAction(\"onRowUpdated\", params)\r\n }\r\n });\r\n this.executeAction(\"onSaved\", {\r\n changes: changes\r\n })\r\n },\r\n saveEditData: function() {\r\n var deferred = new Deferred;\r\n this.waitForDeferredOperations().done(() => {\r\n if (this.isSaving()) {\r\n this._resolveAfterSave(deferred);\r\n return\r\n }\r\n when(this._beforeSaveEditData()).done(cancel => {\r\n if (cancel) {\r\n this._resolveAfterSave(deferred, {\r\n cancel: cancel\r\n });\r\n return\r\n }\r\n this._saving = true;\r\n var options = {};\r\n this._saveEditDataInner(options).always(() => {\r\n this._saving = false;\r\n options.needFocusEditCell && this._focusEditingCell()\r\n }).done(deferred.resolve).fail(deferred.reject)\r\n }).fail(deferred.reject)\r\n }).fail(deferred.reject);\r\n return deferred.promise()\r\n },\r\n _resolveAfterSave: function(deferred) {\r\n var {\r\n cancel: cancel,\r\n error: error\r\n } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n when(this._afterSaveEditData(cancel)).done((function() {\r\n deferred.resolve(error)\r\n })).fail(deferred.reject)\r\n },\r\n _saveEditDataInner: function(options) {\r\n var results = [];\r\n var deferreds = [];\r\n var dataChanges = [];\r\n var dataController = this._dataController;\r\n var dataSource = dataController.dataSource();\r\n var result = new Deferred;\r\n when(this._fireOnSaving()).done(_ref2 => {\r\n var {\r\n cancel: cancel,\r\n changes: changes\r\n } = _ref2;\r\n if (cancel) {\r\n return result.resolve().promise()\r\n }\r\n this._processChanges(deferreds, results, dataChanges, changes);\r\n if (deferreds.length) {\r\n null === dataSource || void 0 === dataSource ? void 0 : dataSource.beginLoading();\r\n when(...deferreds).done(() => {\r\n if (this._processSaveEditDataResult(results)) {\r\n this._endSaving(dataChanges, changes, result)\r\n } else {\r\n null === dataSource || void 0 === dataSource ? void 0 : dataSource.endLoading();\r\n result.resolve()\r\n }\r\n }).fail(error => {\r\n null === dataSource || void 0 === dataSource ? void 0 : dataSource.endLoading();\r\n result.resolve(error)\r\n });\r\n return result.always(() => {\r\n options.needFocusEditCell = true\r\n }).promise()\r\n }\r\n this._cancelSaving(result)\r\n }).fail(result.reject);\r\n return result.promise()\r\n },\r\n _beforeEndSaving: function(changes) {\r\n this._resetEditIndices()\r\n },\r\n _endSaving: function(dataChanges, changes, deferred) {\r\n var dataSource = this._dataController.dataSource();\r\n this._beforeEndSaving(changes);\r\n null === dataSource || void 0 === dataSource ? void 0 : dataSource.endLoading();\r\n this._refreshDataAfterSave(dataChanges, changes, deferred)\r\n },\r\n _cancelSaving: function(result) {\r\n this.executeAction(\"onSaved\", {\r\n changes: []\r\n });\r\n this._resolveAfterSave(result)\r\n },\r\n _refreshDataAfterSave: function(dataChanges, changes, deferred) {\r\n var dataController = this._dataController;\r\n var refreshMode = this.option(\"editing.refreshMode\");\r\n var isFullRefresh = \"reshape\" !== refreshMode && \"repaint\" !== refreshMode;\r\n if (!isFullRefresh) {\r\n dataController.push(dataChanges)\r\n }\r\n when(dataController.refresh({\r\n selection: isFullRefresh,\r\n reload: isFullRefresh,\r\n load: \"reshape\" === refreshMode,\r\n changesOnly: this.option(\"repaintChangesOnly\")\r\n })).always(() => {\r\n this._fireSaveEditDataEvents(changes)\r\n }).done(() => {\r\n this._resolveAfterSave(deferred)\r\n }).fail(error => {\r\n this._resolveAfterSave(deferred, {\r\n error: error\r\n })\r\n })\r\n },\r\n isSaving: function() {\r\n return this._saving\r\n },\r\n _updateEditColumn: function() {\r\n var isEditColumnVisible = this._isEditColumnVisible();\r\n var useIcons = this.option(\"editing.useIcons\");\r\n var cssClass = COMMAND_EDIT_CLASS + (useIcons ? \" \" + COMMAND_EDIT_WITH_ICONS_CLASS : \"\");\r\n this._columnsController.addCommandColumn({\r\n type: \"buttons\",\r\n command: \"edit\",\r\n visible: isEditColumnVisible,\r\n cssClass: cssClass,\r\n width: \"auto\",\r\n alignment: \"center\",\r\n cellTemplate: this._getEditCommandCellTemplate(),\r\n fixedPosition: \"right\"\r\n });\r\n this._columnsController.columnOption(\"command:edit\", {\r\n visible: isEditColumnVisible,\r\n cssClass: cssClass\r\n })\r\n },\r\n _isEditColumnVisible: function() {\r\n var editingOptions = this.option(\"editing\");\r\n return editingOptions.allowDeleting\r\n },\r\n _isEditButtonDisabled: function() {\r\n var hasChanges = this.hasChanges();\r\n var isEditRowDefined = isDefined(this.option(\"editing.editRowKey\"));\r\n return !(isEditRowDefined || hasChanges)\r\n },\r\n _updateEditButtons: function() {\r\n var headerPanel = this.getView(\"headerPanel\");\r\n var isButtonDisabled = this._isEditButtonDisabled();\r\n if (headerPanel) {\r\n headerPanel.setToolbarItemDisabled(\"saveButton\", isButtonDisabled);\r\n headerPanel.setToolbarItemDisabled(\"revertButton\", isButtonDisabled)\r\n }\r\n },\r\n _applyModified: function($element) {\r\n $element && $element.addClass(CELL_MODIFIED)\r\n },\r\n _beforeCloseEditCellInBatchMode: noop,\r\n cancelEditData: function() {\r\n var changes = this.getChanges();\r\n var params = {\r\n cancel: false,\r\n changes: changes\r\n };\r\n this.executeAction(\"onEditCanceling\", params);\r\n if (!params.cancel) {\r\n this._cancelEditDataCore();\r\n this.executeAction(\"onEditCanceled\", {\r\n changes: changes\r\n })\r\n }\r\n },\r\n _cancelEditDataCore: function() {\r\n var rowIndex = this._getVisibleEditRowIndex();\r\n this._beforeCancelEditData();\r\n this.init();\r\n this.resetChanges();\r\n this._resetEditColumnName();\r\n this._resetEditRowKey();\r\n this._afterCancelEditData(rowIndex)\r\n },\r\n _afterCancelEditData: function(rowIndex) {\r\n var dataController = this._dataController;\r\n dataController.updateItems({\r\n repaintChangesOnly: this.option(\"repaintChangesOnly\")\r\n })\r\n },\r\n _hideEditPopup: noop,\r\n hasEditData: function() {\r\n return this.hasChanges()\r\n },\r\n update: function(changeType) {\r\n var dataController = this._dataController;\r\n if (dataController && this._pageIndex !== dataController.pageIndex()) {\r\n if (\"refresh\" === changeType) {\r\n this.refresh({\r\n isPageChanged: true\r\n })\r\n }\r\n this._pageIndex = dataController.pageIndex()\r\n }\r\n this._updateEditButtons()\r\n },\r\n _getRowIndicesForCascadeUpdating: function(row, skipCurrentRow) {\r\n return skipCurrentRow ? [] : [row.rowIndex]\r\n },\r\n addDeferred: function(deferred) {\r\n if (this._deferreds.indexOf(deferred) < 0) {\r\n this._deferreds.push(deferred);\r\n deferred.always(() => {\r\n var index = this._deferreds.indexOf(deferred);\r\n if (index >= 0) {\r\n this._deferreds.splice(index, 1)\r\n }\r\n })\r\n }\r\n },\r\n _prepareChange: function(options, value, text) {\r\n var _options$row;\r\n var newData = {};\r\n var oldData = null === (_options$row = options.row) || void 0 === _options$row ? void 0 : _options$row.data;\r\n var rowKey = options.key;\r\n var deferred = new Deferred;\r\n if (void 0 !== rowKey) {\r\n options.value = value;\r\n var setCellValueResult = fromPromise(options.column.setCellValue(newData, value, extend(true, {}, oldData), text));\r\n setCellValueResult.done((function() {\r\n deferred.resolve({\r\n data: newData,\r\n key: rowKey,\r\n oldData: oldData,\r\n type: DATA_EDIT_DATA_UPDATE_TYPE\r\n })\r\n })).fail(createFailureHandler(deferred)).fail(arg => this._fireDataErrorOccurred(arg));\r\n if (isDefined(text) && options.column.displayValueMap) {\r\n options.column.displayValueMap[value] = text\r\n }\r\n this._updateRowValues(options);\r\n this.addDeferred(deferred)\r\n }\r\n return deferred\r\n },\r\n _updateRowValues: function(options) {\r\n if (options.values) {\r\n var dataController = this._dataController;\r\n var rowIndex = dataController.getRowIndexByKey(options.key);\r\n var row = dataController.getVisibleRows()[rowIndex];\r\n if (row) {\r\n options.values = row.values\r\n }\r\n options.values[options.columnIndex] = options.value\r\n }\r\n },\r\n updateFieldValue: function(options, value, text, forceUpdateRow) {\r\n var rowKey = options.key;\r\n var deferred = new Deferred;\r\n if (void 0 === rowKey) {\r\n this._dataController.fireError(\"E1043\")\r\n }\r\n if (options.column.setCellValue) {\r\n this._prepareChange(options, value, text).done(params => {\r\n when(this._applyChange(options, params, forceUpdateRow)).always(() => {\r\n deferred.resolve()\r\n })\r\n })\r\n } else {\r\n deferred.resolve()\r\n }\r\n return deferred.promise()\r\n },\r\n _focusPreviousEditingCellIfNeed: function(options) {\r\n if (this.hasEditData() && !this.isEditCell(options.rowIndex, options.columnIndex)) {\r\n this._focusEditingCell();\r\n this._updateEditRow(options.row, true);\r\n return true\r\n }\r\n },\r\n _needUpdateRow: function(column) {\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n if (!column) {\r\n column = this._getEditColumn()\r\n }\r\n var isCustomSetCellValue = column && column.setCellValue !== column.defaultSetCellValue;\r\n var isCustomCalculateCellValue = visibleColumns.some(visibleColumn => visibleColumn.calculateCellValue !== visibleColumn.defaultCalculateCellValue);\r\n return isCustomSetCellValue || isCustomCalculateCellValue\r\n },\r\n _applyChange: function(options, params, forceUpdateRow) {\r\n var changeOptions = _extends({}, options, {\r\n forceUpdateRow: forceUpdateRow\r\n });\r\n this._addChange(params, changeOptions);\r\n this._updateEditButtons();\r\n return this._applyChangeCore(options, changeOptions.forceUpdateRow)\r\n },\r\n _applyChangeCore: function(options, forceUpdateRow) {\r\n var isCustomSetCellValue = options.column.setCellValue !== options.column.defaultSetCellValue;\r\n var row = options.row;\r\n if (row) {\r\n if (forceUpdateRow || isCustomSetCellValue) {\r\n this._updateEditRow(row, forceUpdateRow, isCustomSetCellValue)\r\n } else if (row.update) {\r\n row.update()\r\n }\r\n }\r\n },\r\n _updateEditRowCore: function(row, skipCurrentRow, isCustomSetCellValue) {\r\n this._dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: this._getRowIndicesForCascadeUpdating(row, skipCurrentRow)\r\n })\r\n },\r\n _updateEditRow: function(row, forceUpdateRow, isCustomSetCellValue) {\r\n if (forceUpdateRow) {\r\n this._updateRowImmediately(row, forceUpdateRow, isCustomSetCellValue)\r\n } else {\r\n this._updateRowWithDelay(row, isCustomSetCellValue)\r\n }\r\n },\r\n _updateRowImmediately: function(row, forceUpdateRow, isCustomSetCellValue) {\r\n this._updateEditRowCore(row, !forceUpdateRow, isCustomSetCellValue);\r\n this._validateEditFormAfterUpdate(row, isCustomSetCellValue);\r\n if (!forceUpdateRow) {\r\n this._focusEditingCell()\r\n }\r\n },\r\n _updateRowWithDelay: function(row, isCustomSetCellValue) {\r\n var deferred = new Deferred;\r\n this.addDeferred(deferred);\r\n setTimeout(() => {\r\n var $focusedElement = $(domAdapter.getActiveElement());\r\n var columnIndex = this._rowsView.getCellIndex($focusedElement, row.rowIndex);\r\n var focusedElement = $focusedElement.get(0);\r\n var selectionRange = gridCoreUtils.getSelectionRange(focusedElement);\r\n this._updateEditRowCore(row, false, isCustomSetCellValue);\r\n this._validateEditFormAfterUpdate(row, isCustomSetCellValue);\r\n if (columnIndex >= 0) {\r\n var $focusedItem = this._rowsView._getCellElement(row.rowIndex, columnIndex);\r\n this._delayedInputFocus($focusedItem, () => {\r\n setTimeout(() => {\r\n focusedElement = domAdapter.getActiveElement();\r\n if (selectionRange.selectionStart >= 0) {\r\n gridCoreUtils.setSelectionRange(focusedElement, selectionRange)\r\n }\r\n })\r\n })\r\n }\r\n deferred.resolve()\r\n })\r\n },\r\n _validateEditFormAfterUpdate: noop,\r\n _addChange: function(changeParams, options) {\r\n var _this$getChanges;\r\n var row = null === options || void 0 === options ? void 0 : options.row;\r\n var changes = [...this.getChanges()];\r\n var index = gridCoreUtils.getIndexByKey(changeParams.key, changes);\r\n if (index < 0) {\r\n index = changes.length;\r\n this._addInternalData({\r\n key: changeParams.key,\r\n oldData: changeParams.oldData\r\n });\r\n delete changeParams.oldData;\r\n changes.push(changeParams)\r\n }\r\n var change = _extends({}, changes[index]);\r\n if (change) {\r\n if (changeParams.data) {\r\n change.data = createObjectWithChanges(change.data, changeParams.data)\r\n }\r\n if ((!change.type || !changeParams.data) && changeParams.type) {\r\n change.type = changeParams.type\r\n }\r\n if (row) {\r\n row.oldData = this._getOldData(row.key);\r\n row.data = createObjectWithChanges(row.data, changeParams.data)\r\n }\r\n }\r\n changes[index] = change;\r\n this._silentOption(EDITING_CHANGES_OPTION_NAME, changes);\r\n if (options && change !== (null === (_this$getChanges = this.getChanges()) || void 0 === _this$getChanges ? void 0 : _this$getChanges[index])) {\r\n options.forceUpdateRow = true\r\n }\r\n return change\r\n },\r\n _getFormEditItemTemplate: function(cellOptions, column) {\r\n return column.editCellTemplate || this._getDefaultEditorTemplate()\r\n },\r\n getColumnTemplate: function(options) {\r\n var column = options.column;\r\n var rowIndex = options.row && options.row.rowIndex;\r\n var template;\r\n var isRowMode = this.isRowBasedEditMode();\r\n var isRowEditing = this.isEditRow(rowIndex);\r\n var isCellEditing = this.isEditCell(rowIndex, options.columnIndex);\r\n var editingStartOptions;\r\n if ((column.showEditorAlways || column.setCellValue && (isRowEditing && column.allowEditing || isCellEditing)) && (\"data\" === options.rowType || \"detailAdaptive\" === options.rowType) && !column.command) {\r\n var allowUpdating = this.allowUpdating(options);\r\n if (((allowUpdating || isRowEditing) && column.allowEditing || isCellEditing) && (isRowEditing || !isRowMode)) {\r\n if (column.showEditorAlways && !isRowMode) {\r\n editingStartOptions = {\r\n cancel: false,\r\n key: options.row.isNewRow ? void 0 : options.row.key,\r\n data: options.row.data,\r\n column: column\r\n };\r\n this._isEditingStart(editingStartOptions)\r\n }\r\n if (!editingStartOptions || !editingStartOptions.cancel) {\r\n options.setValue = (value, text) => {\r\n this.updateFieldValue(options, value, text)\r\n }\r\n }\r\n }\r\n template = column.editCellTemplate || this._getDefaultEditorTemplate()\r\n } else if (\"detail\" === column.command && \"detail\" === options.rowType && isRowEditing) {\r\n template = null === this || void 0 === this ? void 0 : this.getEditFormTemplate(options)\r\n }\r\n return template\r\n },\r\n _createButton: function($container, button, options, change) {\r\n var icon = EDIT_ICON_CLASS[button.name];\r\n var useIcons = this.option(\"editing.useIcons\");\r\n var useLegacyColumnButtonTemplate = this.option(\"useLegacyColumnButtonTemplate\");\r\n var $button = $(\"\").attr(\"href\", \"#\").addClass(LINK_CLASS).addClass(button.cssClass);\r\n if (button.template && useLegacyColumnButtonTemplate) {\r\n this._rowsView.renderTemplate($container, button.template, options, true)\r\n } else {\r\n if (button.template) {\r\n $button = $(\"\").addClass(button.cssClass)\r\n } else if (useIcons && icon || button.icon) {\r\n icon = button.icon || icon;\r\n var iconType = iconUtils.getImageSourceType(icon);\r\n if (\"image\" === iconType || \"svg\" === iconType) {\r\n $button = iconUtils.getImageContainer(icon).addClass(button.cssClass)\r\n } else {\r\n $button.addClass(\"dx-icon\" + (\"dxIcon\" === iconType ? \"-\" : \" \") + icon).attr(\"title\", button.text)\r\n }\r\n $button.addClass(\"dx-link-icon\");\r\n $container.addClass(COMMAND_EDIT_WITH_ICONS_CLASS);\r\n var localizationName = this.getButtonLocalizationNames()[button.name];\r\n localizationName && $button.attr(\"aria-label\", messageLocalization.format(localizationName))\r\n } else {\r\n $button.text(button.text)\r\n }\r\n if (isDefined(button.hint)) {\r\n $button.attr(\"title\", button.hint)\r\n }\r\n if (this._isButtonDisabled(button, options)) {\r\n $button.addClass(\"dx-state-disabled\")\r\n } else if (!button.template || button.onClick) {\r\n eventsEngine.on($button, addNamespace(\"click\", EDITING_NAMESPACE), this.createAction((function(e) {\r\n var _button$onClick;\r\n null === (_button$onClick = button.onClick) || void 0 === _button$onClick ? void 0 : _button$onClick.call(button, extend({}, e, {\r\n row: options.row,\r\n column: options.column\r\n }));\r\n e.event.preventDefault();\r\n e.event.stopPropagation()\r\n })))\r\n }\r\n $container.append($button, \" \");\r\n if (button.template) {\r\n this._rowsView.renderTemplate($button, button.template, options, true, change)\r\n }\r\n }\r\n },\r\n getButtonLocalizationNames: () => ({\r\n edit: \"dxDataGrid-editingEditRow\",\r\n save: \"dxDataGrid-editingSaveRowChanges\",\r\n delete: \"dxDataGrid-editingDeleteRow\",\r\n undelete: \"dxDataGrid-editingUndeleteRow\",\r\n cancel: \"dxDataGrid-editingCancelRowChanges\"\r\n }),\r\n prepareButtonItem: function(headerPanel, name, methodName, sortIndex) {\r\n var editingTexts = this.option(\"editing.texts\") || {};\r\n var titleButtonTextByClassNames = {\r\n revert: editingTexts.cancelAllChanges,\r\n save: editingTexts.saveAllChanges,\r\n addRow: editingTexts.addRow\r\n };\r\n var className = {\r\n revert: \"cancel\",\r\n save: \"save\",\r\n addRow: \"addrow\"\r\n } [name];\r\n var hintText = titleButtonTextByClassNames[name];\r\n var isButtonDisabled = (\"save\" === className || \"cancel\" === className) && this._isEditButtonDisabled();\r\n return {\r\n widget: \"dxButton\",\r\n options: {\r\n onInitialized: e => {\r\n $(e.element).addClass(headerPanel._getToolbarButtonClass(EDIT_BUTTON_CLASS + \" \" + this.addWidgetPrefix(className) + \"-button\"))\r\n },\r\n icon: \"edit-button-\" + className,\r\n disabled: isButtonDisabled,\r\n onClick: () => {\r\n setTimeout(() => {\r\n this[methodName]()\r\n })\r\n },\r\n text: hintText,\r\n hint: hintText\r\n },\r\n showText: \"inMenu\",\r\n name: name + \"Button\",\r\n location: \"after\",\r\n locateInMenu: \"auto\",\r\n sortIndex: sortIndex\r\n }\r\n },\r\n prepareEditButtons: function(headerPanel) {\r\n var editingOptions = this.option(\"editing\") || {};\r\n var buttonItems = [];\r\n if (editingOptions.allowAdding) {\r\n buttonItems.push(this.prepareButtonItem(headerPanel, \"addRow\", \"addRow\", 20))\r\n }\r\n return buttonItems\r\n },\r\n highlightDataCell: function($cell, params) {\r\n this.shouldHighlightCell(params) && $cell.addClass(CELL_MODIFIED)\r\n },\r\n _afterInsertRow: noop,\r\n _beforeSaveEditData: function(change) {\r\n if (change && !isDefined(change.key) && isDefined(change.type)) {\r\n return true\r\n }\r\n },\r\n _afterSaveEditData: noop,\r\n _beforeCancelEditData: noop,\r\n _allowEditAction: function(actionName, options) {\r\n var allowEditAction = this.option(\"editing.\" + actionName);\r\n if (isFunction(allowEditAction)) {\r\n allowEditAction = allowEditAction({\r\n component: this.component,\r\n row: options.row\r\n })\r\n }\r\n return allowEditAction\r\n },\r\n allowUpdating: function(options, eventName) {\r\n var startEditAction = this.option(\"editing.startEditAction\") || DEFAULT_START_EDIT_ACTION;\r\n var needCallback = arguments.length > 1 ? startEditAction === eventName || \"down\" === eventName : true;\r\n return needCallback && this._allowEditAction(\"allowUpdating\", options)\r\n },\r\n allowDeleting: function(options) {\r\n return this._allowEditAction(\"allowDeleting\", options)\r\n },\r\n isCellModified: function(parameters) {\r\n var columnIndex = parameters.columnIndex;\r\n var modifiedValues = parameters.row && (parameters.row.isNewRow ? parameters.row.values : parameters.row.modifiedValues);\r\n return !!modifiedValues && void 0 !== modifiedValues[columnIndex]\r\n },\r\n isNewRowInEditMode: function() {\r\n var visibleEditRowIndex = this._getVisibleEditRowIndex();\r\n var rows = this._dataController.items();\r\n return visibleEditRowIndex >= 0 ? rows[visibleEditRowIndex].isNewRow : false\r\n },\r\n shouldHighlightCell: function(parameters) {\r\n var cellModified = this.isCellModified(parameters);\r\n return cellModified && parameters.column.setCellValue && (this.getEditMode() !== EDIT_MODE_ROW || !parameters.row.isEditing)\r\n }\r\n }\r\n}());\r\nexport var editingModule = {\r\n defaultOptions: function() {\r\n return {\r\n editing: {\r\n mode: \"row\",\r\n refreshMode: \"full\",\r\n newRowPosition: VIEWPORT_TOP_NEW_ROW_POSITION,\r\n allowAdding: false,\r\n allowUpdating: false,\r\n allowDeleting: false,\r\n useIcons: false,\r\n selectTextOnEditStart: false,\r\n confirmDelete: true,\r\n texts: {\r\n editRow: messageLocalization.format(\"dxDataGrid-editingEditRow\"),\r\n saveAllChanges: messageLocalization.format(\"dxDataGrid-editingSaveAllChanges\"),\r\n saveRowChanges: messageLocalization.format(\"dxDataGrid-editingSaveRowChanges\"),\r\n cancelAllChanges: messageLocalization.format(\"dxDataGrid-editingCancelAllChanges\"),\r\n cancelRowChanges: messageLocalization.format(\"dxDataGrid-editingCancelRowChanges\"),\r\n addRow: messageLocalization.format(\"dxDataGrid-editingAddRow\"),\r\n deleteRow: messageLocalization.format(\"dxDataGrid-editingDeleteRow\"),\r\n undeleteRow: messageLocalization.format(\"dxDataGrid-editingUndeleteRow\"),\r\n confirmDeleteMessage: messageLocalization.format(\"dxDataGrid-editingConfirmDeleteMessage\"),\r\n confirmDeleteTitle: \"\"\r\n },\r\n form: {\r\n colCount: 2\r\n },\r\n popup: {},\r\n startEditAction: \"click\",\r\n editRowKey: null,\r\n editColumnName: null,\r\n changes: []\r\n },\r\n useLegacyColumnButtonTemplate: false\r\n }\r\n },\r\n controllers: {\r\n editing: EditingController\r\n },\r\n extenders: {\r\n controllers: {\r\n data: {\r\n init: function() {\r\n this._editingController = this.getController(\"editing\");\r\n this.callBase()\r\n },\r\n reload: function(full, repaintChangesOnly) {\r\n !repaintChangesOnly && this._editingController.refresh();\r\n return this.callBase.apply(this, arguments)\r\n },\r\n repaintRows: function() {\r\n if (this.getController(\"editing\").isSaving()) {\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _updateEditRow: function(items) {\r\n var editRowKey = this.option(EDITING_EDITROWKEY_OPTION_NAME);\r\n var editRowIndex = gridCoreUtils.getIndexByKey(editRowKey, items);\r\n var editItem = items[editRowIndex];\r\n if (editItem) {\r\n var _this$_updateEditItem;\r\n editItem.isEditing = true;\r\n null === (_this$_updateEditItem = this._updateEditItem) || void 0 === _this$_updateEditItem ? void 0 : _this$_updateEditItem.call(this, editItem)\r\n }\r\n },\r\n _updateItemsCore: function(change) {\r\n this.callBase(change);\r\n this._updateEditRow(this.items(true))\r\n },\r\n _applyChangeUpdate: function(change) {\r\n this._updateEditRow(change.items);\r\n this.callBase(change)\r\n },\r\n _applyChangesOnly: function(change) {\r\n this._updateEditRow(change.items);\r\n this.callBase(change)\r\n },\r\n _processItems: function(items, change) {\r\n items = this._editingController.processItems(items, change);\r\n return this.callBase(items, change)\r\n },\r\n _processDataItem: function(dataItem, options) {\r\n this._editingController.processDataItem(dataItem, options, this.generateDataValues);\r\n return this.callBase(dataItem, options)\r\n },\r\n _processItem: function(item, options) {\r\n item = this.callBase(item, options);\r\n if (item.isNewRow) {\r\n options.dataIndex--;\r\n delete item.dataIndex\r\n }\r\n return item\r\n },\r\n _getChangedColumnIndices: function(oldItem, newItem, rowIndex, isLiveUpdate) {\r\n if (oldItem.isNewRow !== newItem.isNewRow || oldItem.removed !== newItem.removed) {\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _isCellChanged: function(oldRow, newRow, visibleRowIndex, columnIndex, isLiveUpdate) {\r\n var editingController = this.getController(\"editing\");\r\n var cell = oldRow.cells && oldRow.cells[columnIndex];\r\n var isEditing = editingController && editingController.isEditCell(visibleRowIndex, columnIndex);\r\n if (isLiveUpdate && isEditing) {\r\n return false\r\n }\r\n if (cell && cell.column && !cell.column.showEditorAlways && cell.isEditing !== isEditing) {\r\n return true\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n needToRefreshOnDataSourceChange: function(args) {\r\n var editingController = this.getController(\"editing\");\r\n var isParasiteChange = Array.isArray(args.value) && args.value === args.previousValue && editingController.isSaving();\r\n return !isParasiteChange\r\n },\r\n _handleDataSourceChange(args) {\r\n var result = this.callBase(args);\r\n var changes = this.option(\"editing.changes\");\r\n var dataSource = args.value;\r\n if (Array.isArray(dataSource) && changes.length) {\r\n var dataSourceKeys = dataSource.map(item => this.keyOf(item));\r\n var newChanges = changes.filter(change => \"insert\" === change.type || dataSourceKeys.some(key => equalByValue(change.key, key)));\r\n if (newChanges.length !== changes.length) {\r\n this.option(\"editing.changes\", newChanges)\r\n }\r\n var editRowKey = this.option(\"editing.editRowKey\");\r\n var isEditNewItem = newChanges.some(change => \"insert\" === change.type && equalByValue(editRowKey, change.key));\r\n if (!isEditNewItem && dataSourceKeys.every(key => !equalByValue(editRowKey, key))) {\r\n this.option(\"editing.editRowKey\", null)\r\n }\r\n }\r\n return result\r\n }\r\n }\r\n },\r\n views: {\r\n rowsView: {\r\n init: function() {\r\n this.callBase();\r\n this._editingController = this.getController(\"editing\")\r\n },\r\n getCellIndex: function($cell, rowIndex) {\r\n if (!$cell.is(\"td\") && rowIndex >= 0) {\r\n var $cellElements = this.getCellElements(rowIndex);\r\n var cellIndex = -1;\r\n each($cellElements, (function(index, cellElement) {\r\n if ($(cellElement).find($cell).length) {\r\n cellIndex = index\r\n }\r\n }));\r\n return cellIndex\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n publicMethods: function() {\r\n return this.callBase().concat([\"cellValue\"])\r\n },\r\n _getCellTemplate: function(options) {\r\n var template = this._editingController.getColumnTemplate(options);\r\n return template || this.callBase(options)\r\n },\r\n _createRow: function(row) {\r\n var $row = this.callBase.apply(this, arguments);\r\n if (row) {\r\n var isRowRemoved = !!row.removed;\r\n var isRowInserted = !!row.isNewRow;\r\n var isRowModified = !!row.modified;\r\n isRowInserted && $row.addClass(ROW_INSERTED);\r\n isRowModified && $row.addClass(ROW_MODIFIED);\r\n if (isRowInserted || isRowRemoved) {\r\n $row.removeClass(ROW_SELECTED)\r\n }\r\n }\r\n return $row\r\n },\r\n _getColumnIndexByElement: function($element) {\r\n var $tableElement = $element.closest(\"table\");\r\n var $tableElements = this.getTableElements();\r\n while ($tableElement.length && !$tableElements.filter($tableElement).length) {\r\n $element = $tableElement.closest(\"td\");\r\n $tableElement = $element.closest(\"table\")\r\n }\r\n return this._getColumnIndexByElementCore($element)\r\n },\r\n _getColumnIndexByElementCore: function($element) {\r\n var $targetElement = $element.closest(\".\" + ROW_CLASS + \"> td:not(.dx-master-detail-cell)\");\r\n return this.getCellIndex($targetElement)\r\n },\r\n _editCellByClick: function(e, eventName) {\r\n var editingController = this._editingController;\r\n var $targetElement = $(e.event.target);\r\n var columnIndex = this._getColumnIndexByElement($targetElement);\r\n var row = this._dataController.items()[e.rowIndex];\r\n var allowUpdating = editingController.allowUpdating({\r\n row: row\r\n }, eventName) || row && row.isNewRow;\r\n var column = this._columnsController.getVisibleColumns()[columnIndex];\r\n var isEditedCell = editingController.isEditCell(e.rowIndex, columnIndex);\r\n var allowEditing = allowUpdating && column && (column.allowEditing || isEditedCell);\r\n var startEditAction = this.option(\"editing.startEditAction\") || \"click\";\r\n if (\"down\" === eventName) {\r\n if ((devices.real().ios || devices.real().android) && !isEditedCell) {\r\n resetActiveElement()\r\n }\r\n return column && column.showEditorAlways && allowEditing && editingController.editCell(e.rowIndex, columnIndex)\r\n }\r\n if (\"click\" === eventName && \"dblClick\" === startEditAction && !isEditedCell) {\r\n var withoutSaveEditData = null === row || void 0 === row ? void 0 : row.isNewRow;\r\n editingController.closeEditCell(false, withoutSaveEditData)\r\n }\r\n if (allowEditing && eventName === startEditAction) {\r\n return editingController.editCell(e.rowIndex, columnIndex) || editingController.isEditRow(e.rowIndex)\r\n }\r\n },\r\n _rowPointerDown: function(e) {\r\n this._pointerDownTimeout = setTimeout(() => {\r\n this._editCellByClick(e, \"down\")\r\n })\r\n },\r\n _rowClick: function(e) {\r\n var isEditForm = $(e.rowElement).hasClass(this.addWidgetPrefix(EDIT_FORM_CLASS));\r\n e.event[TARGET_COMPONENT_NAME] = this.component;\r\n if (!this._editCellByClick(e, \"click\") && !isEditForm) {\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _rowDblClick: function(e) {\r\n if (!this._editCellByClick(e, \"dblClick\")) {\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _cellPrepared: function($cell, parameters) {\r\n var _parameters$column;\r\n var editingController = this._editingController;\r\n var isCommandCell = !!parameters.column.command;\r\n var isEditableCell = parameters.setValue;\r\n var isEditRow = editingController.isEditRow(parameters.rowIndex);\r\n var isEditing = isEditingCell(isEditRow, parameters);\r\n if (isEditingOrShowEditorAlwaysDataCell(isEditRow, parameters)) {\r\n var alignment = parameters.column.alignment;\r\n $cell.toggleClass(this.addWidgetPrefix(READONLY_CLASS), !isEditableCell).toggleClass(CELL_FOCUS_DISABLED_CLASS, !isEditableCell);\r\n if (alignment) {\r\n $cell.find(EDITORS_INPUT_SELECTOR).first().css(\"textAlign\", alignment)\r\n }\r\n }\r\n if (isEditing) {\r\n this._editCellPrepared($cell)\r\n }\r\n var hasTemplate = !!(null !== (_parameters$column = parameters.column) && void 0 !== _parameters$column && _parameters$column.cellTemplate);\r\n if (parameters.column && !isCommandCell && (!hasTemplate || editingController.shouldHighlightCell(parameters))) {\r\n editingController.highlightDataCell($cell, parameters)\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _editCellPrepared: noop,\r\n _formItemPrepared: noop,\r\n _getCellOptions: function(options) {\r\n var cellOptions = this.callBase(options);\r\n cellOptions.isEditing = this._editingController.isEditCell(cellOptions.rowIndex, cellOptions.columnIndex);\r\n return cellOptions\r\n },\r\n _createCell: function(options) {\r\n var $cell = this.callBase(options);\r\n var isEditRow = this._editingController.isEditRow(options.rowIndex);\r\n isEditingOrShowEditorAlwaysDataCell(isEditRow, options) && $cell.addClass(EDITOR_CELL_CLASS);\r\n return $cell\r\n },\r\n cellValue: function(rowIndex, columnIdentifier, value, text) {\r\n var cellOptions = this.getCellOptions(rowIndex, columnIdentifier);\r\n if (cellOptions) {\r\n if (void 0 === value) {\r\n return cellOptions.value\r\n } else {\r\n this._editingController.updateFieldValue(cellOptions, value, text, true)\r\n }\r\n }\r\n },\r\n dispose: function() {\r\n this.callBase.apply(this, arguments);\r\n clearTimeout(this._pointerDownTimeout)\r\n },\r\n _renderCore: function() {\r\n this.callBase.apply(this, arguments);\r\n this._editingController._focusEditorIfNeed()\r\n }\r\n },\r\n headerPanel: {\r\n _getToolbarItems: function() {\r\n var items = this.callBase();\r\n var editButtonItems = this.getController(\"editing\").prepareEditButtons(this);\r\n return editButtonItems.concat(items)\r\n },\r\n optionChanged: function(args) {\r\n var fullName = args.fullName;\r\n switch (args.name) {\r\n case \"editing\":\r\n var excludedOptions = [EDITING_POPUP_OPTION_NAME, EDITING_CHANGES_OPTION_NAME, EDITING_EDITCOLUMNNAME_OPTION_NAME, EDITING_EDITROWKEY_OPTION_NAME];\r\n var shouldInvalidate = fullName && !excludedOptions.some(optionName => optionName === fullName);\r\n shouldInvalidate && this._invalidate();\r\n this.callBase(args);\r\n break;\r\n case \"useLegacyColumnButtonTemplate\":\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n isVisible: function() {\r\n var editingOptions = this.getController(\"editing\").option(\"editing\");\r\n return this.callBase() || (null === editingOptions || void 0 === editingOptions ? void 0 : editingOptions.allowAdding)\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.editing.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport \"./ui.data_grid.editor_factory\";\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n editingModule\r\n} from \"../grid_core/ui.grid_core.editing\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\ngridCore.registerModule(\"editing\", extend(true, {}, editingModule, {\r\n extenders: {\r\n controllers: {\r\n data: {\r\n _changeRowExpandCore: function(key) {\r\n var editingController = this._editingController;\r\n if (Array.isArray(key)) {\r\n editingController && editingController.refresh()\r\n }\r\n return this.callBase.apply(this, arguments)\r\n }\r\n }\r\n }\r\n }\r\n}));\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.editing_row_based.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n EDIT_MODE_ROW,\r\n MODES_WITH_DELAYED_FOCUS,\r\n ROW_SELECTED_CLASS,\r\n EDIT_FORM_CLASS\r\n} from \"./ui.grid_core.editing_constants\";\r\nvar EDIT_ROW = \"dx-edit-row\";\r\nexport var editingRowBasedModule = {\r\n extenders: {\r\n controllers: {\r\n editing: {\r\n isRowEditMode: function() {\r\n return this.getEditMode() === EDIT_MODE_ROW\r\n },\r\n _afterCancelEditData: function(rowIndex) {\r\n var dataController = this._dataController;\r\n if (this.isRowBasedEditMode() && rowIndex >= 0) {\r\n dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: [rowIndex, rowIndex + 1]\r\n })\r\n } else {\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _isDefaultButtonVisible: function(button, options) {\r\n var isRowMode = this.isRowBasedEditMode();\r\n var isEditRow = options.row && options.row.rowIndex === this._getVisibleEditRowIndex();\r\n if (isRowMode) {\r\n switch (button.name) {\r\n case \"edit\":\r\n return !isEditRow && this.allowUpdating(options);\r\n case \"delete\":\r\n return this.callBase.apply(this, arguments) && !isEditRow;\r\n case \"save\":\r\n case \"cancel\":\r\n return isEditRow;\r\n default:\r\n return this.callBase.apply(this, arguments)\r\n }\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n isEditRow: function(rowIndex) {\r\n return this.isRowBasedEditMode() && this.isEditRowByIndex(rowIndex)\r\n },\r\n _cancelSaving: function() {\r\n if (this.isRowBasedEditMode()) {\r\n if (!this.hasChanges()) {\r\n this._cancelEditDataCore()\r\n }\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _refreshCore: function(params) {\r\n var {\r\n allowCancelEditing: allowCancelEditing\r\n } = null !== params && void 0 !== params ? params : {};\r\n if (this.isRowBasedEditMode()) {\r\n var hasUpdateChanges = this.getChanges().filter(it => \"update\" === it.type).length > 0;\r\n this.init();\r\n allowCancelEditing && hasUpdateChanges && this._cancelEditDataCore()\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _isEditColumnVisible: function() {\r\n var result = this.callBase.apply(this, arguments);\r\n var editingOptions = this.option(\"editing\");\r\n var isRowEditMode = this.isRowEditMode();\r\n var isVisibleInRowEditMode = editingOptions.allowUpdating || editingOptions.allowAdding;\r\n return result || isRowEditMode && isVisibleInRowEditMode\r\n },\r\n _focusEditorIfNeed: function() {\r\n var editMode = this.getEditMode();\r\n if (this._needFocusEditor) {\r\n if (-1 !== MODES_WITH_DELAYED_FOCUS.indexOf(editMode)) {\r\n var $editingCell = this.getFocusedCellInRow(this._getVisibleEditRowIndex());\r\n this._delayedInputFocus($editingCell, () => {\r\n $editingCell && this.component.focus($editingCell)\r\n })\r\n }\r\n this._needFocusEditor = false\r\n }\r\n }\r\n },\r\n data: {\r\n _getChangedColumnIndices: function(oldItem, newItem, rowIndex, isLiveUpdate) {\r\n var editingController = this.getController(\"editing\");\r\n if (editingController.isRowBasedEditMode() && oldItem.isEditing !== newItem.isEditing) {\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n }\r\n }\r\n },\r\n views: {\r\n rowsView: {\r\n _createRow: function(row) {\r\n var $row = this.callBase.apply(this, arguments);\r\n if (row) {\r\n var editingController = this._editingController;\r\n var isEditRow = editingController.isEditRow(row.rowIndex);\r\n if (isEditRow) {\r\n $row.addClass(EDIT_ROW);\r\n $row.removeClass(ROW_SELECTED_CLASS);\r\n if (\"detail\" === row.rowType) {\r\n $row.addClass(this.addWidgetPrefix(EDIT_FORM_CLASS))\r\n }\r\n }\r\n }\r\n return $row\r\n },\r\n _update: function(change) {\r\n this.callBase(change);\r\n if (\"updateSelection\" === change.changeType) {\r\n this.getTableElements().children(\"tbody\").children(\".\" + EDIT_ROW).removeClass(ROW_SELECTED_CLASS)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.editing_row_based.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n editingRowBasedModule\r\n} from \"../grid_core/ui.grid_core.editing_row_based\";\r\ngridCore.registerModule(\"editingRowBased\", editingRowBasedModule);\r\n","/**\r\n * DevExtreme (esm/ui/form/ui.form.items_runtime_info.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Guid from \"../../core/guid\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isString\r\n} from \"../../core/utils/type\";\r\nexport default class FormItemsRunTimeInfo {\r\n constructor() {\r\n this._map = {}\r\n }\r\n _findWidgetInstance(condition) {\r\n var result;\r\n each(this._map, (function(guid, _ref) {\r\n var {\r\n widgetInstance: widgetInstance,\r\n item: item\r\n } = _ref;\r\n if (condition(item)) {\r\n result = widgetInstance;\r\n return false\r\n }\r\n }));\r\n return result\r\n }\r\n _findFieldByCondition(callback, valueExpr) {\r\n var result;\r\n each(this._map, (function(key, value) {\r\n if (callback(value)) {\r\n result = \"guid\" === valueExpr ? key : value[valueExpr];\r\n return false\r\n }\r\n }));\r\n return result\r\n }\r\n clear() {\r\n this._map = {}\r\n }\r\n removeItemsByItems(itemsRunTimeInfo) {\r\n each(itemsRunTimeInfo.getItems(), guid => this.removeItemByKey(guid))\r\n }\r\n removeItemByKey(key) {\r\n delete this._map[key]\r\n }\r\n add(options) {\r\n var key = options.guid || new Guid;\r\n this._map[key] = options;\r\n return key\r\n }\r\n addItemsOrExtendFrom(itemsRunTimeInfo) {\r\n itemsRunTimeInfo.each((key, itemRunTimeInfo) => {\r\n if (this._map[key]) {\r\n if (itemRunTimeInfo.widgetInstance) {\r\n this._map[key].widgetInstance = itemRunTimeInfo.widgetInstance\r\n }\r\n this._map[key].$itemContainer = itemRunTimeInfo.$itemContainer\r\n } else {\r\n this.add({\r\n item: itemRunTimeInfo.item,\r\n widgetInstance: itemRunTimeInfo.widgetInstance,\r\n guid: key,\r\n $itemContainer: itemRunTimeInfo.$itemContainer\r\n })\r\n }\r\n })\r\n }\r\n extendRunTimeItemInfoByKey(key, options) {\r\n if (this._map[key]) {\r\n this._map[key] = extend(this._map[key], options)\r\n }\r\n }\r\n findWidgetInstanceByItem(item) {\r\n return this._findWidgetInstance(storedItem => storedItem === item)\r\n }\r\n findGroupOrTabLayoutManagerByPath(targetPath) {\r\n return this._findFieldByCondition(_ref2 => {\r\n var {\r\n path: path\r\n } = _ref2;\r\n return path === targetPath\r\n }, \"layoutManager\")\r\n }\r\n findKeyByPath(targetPath) {\r\n return this._findFieldByCondition(_ref3 => {\r\n var {\r\n path: path\r\n } = _ref3;\r\n return path === targetPath\r\n }, \"guid\")\r\n }\r\n findWidgetInstanceByName(name) {\r\n return this._findWidgetInstance(item => name === item.name)\r\n }\r\n findWidgetInstanceByDataField(dataField) {\r\n return this._findWidgetInstance(item => dataField === (isString(item) ? item : item.dataField))\r\n }\r\n findItemContainerByItem(item) {\r\n for (var key in this._map) {\r\n if (this._map[key].item === item) {\r\n return this._map[key].$itemContainer\r\n }\r\n }\r\n return null\r\n }\r\n findItemIndexByItem(targetItem) {\r\n return this._findFieldByCondition(_ref4 => {\r\n var {\r\n item: item\r\n } = _ref4;\r\n return item === targetItem\r\n }, \"itemIndex\")\r\n }\r\n findPreparedItemByItem(item) {\r\n return this._findFieldByCondition(_ref5 => {\r\n var {\r\n item: currentItem\r\n } = _ref5;\r\n return currentItem === item\r\n }, \"preparedItem\")\r\n }\r\n getItems() {\r\n return this._map\r\n }\r\n each(handler) {\r\n each(this._map, (function(key, itemRunTimeInfo) {\r\n handler(key, itemRunTimeInfo)\r\n }))\r\n }\r\n removeItemsByPathStartWith(path) {\r\n var keys = Object.keys(this._map);\r\n var filteredKeys = keys.filter(key => {\r\n if (this._map[key].path) {\r\n return this._map[key].path.indexOf(path, 0) > -1\r\n }\r\n return false\r\n });\r\n filteredKeys.forEach(key => this.removeItemByKey(key))\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/multi_view/ui.multi_view.animation.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport fx from \"../../animation/fx\";\r\nimport {\r\n move\r\n} from \"../../animation/translator\";\r\nexport var _translator = {\r\n move($element, position) {\r\n move($element, {\r\n left: position\r\n })\r\n }\r\n};\r\nexport var animation = {\r\n moveTo($element, position, duration, completeAction) {\r\n fx.animate($element, {\r\n type: \"slide\",\r\n to: {\r\n left: position\r\n },\r\n duration: duration,\r\n complete: completeAction\r\n })\r\n },\r\n complete($element) {\r\n fx.stop($element, true)\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/multi_view.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n locate\r\n} from \"../animation/translator\";\r\nimport {\r\n _translator,\r\n animation\r\n} from \"./multi_view/ui.multi_view.animation\";\r\nimport {\r\n sign\r\n} from \"../core/utils/math\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n noop,\r\n deferRender\r\n} from \"../core/utils/common\";\r\nimport {\r\n triggerResizeEvent\r\n} from \"../events/visibility_change\";\r\nimport {\r\n getPublicElement\r\n} from \"../core/element\";\r\nimport {\r\n isDefined\r\n} from \"../core/utils/type\";\r\nimport devices from \"../core/devices\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport CollectionWidget from \"./collection/ui.collection_widget.live_update\";\r\nimport Swipeable from \"../events/gesture/swipeable\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nvar MULTIVIEW_CLASS = \"dx-multiview\";\r\nvar MULTIVIEW_WRAPPER_CLASS = \"dx-multiview-wrapper\";\r\nvar MULTIVIEW_ITEM_CONTAINER_CLASS = \"dx-multiview-item-container\";\r\nvar MULTIVIEW_ITEM_CLASS = \"dx-multiview-item\";\r\nvar MULTIVIEW_ITEM_HIDDEN_CLASS = \"dx-multiview-item-hidden\";\r\nvar MULTIVIEW_ITEM_DATA_KEY = \"dxMultiViewItemData\";\r\nvar MULTIVIEW_ANIMATION_DURATION = 200;\r\nvar toNumber = value => +value;\r\nvar position = $element => locate($element).left;\r\nvar MultiView = CollectionWidget.inherit({\r\n _activeStateUnit: \".\" + MULTIVIEW_ITEM_CLASS,\r\n _supportedKeys: function() {\r\n return extend(this.callBase(), {\r\n pageUp: noop,\r\n pageDown: noop\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n selectedIndex: 0,\r\n swipeEnabled: true,\r\n animationEnabled: true,\r\n loop: false,\r\n deferRendering: true,\r\n _itemAttributes: {\r\n role: \"tabpanel\"\r\n },\r\n loopItemFocus: false,\r\n selectOnFocus: true,\r\n selectionMode: \"single\",\r\n selectionRequired: true,\r\n selectionByClick: false\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }])\r\n },\r\n _itemClass: function() {\r\n return MULTIVIEW_ITEM_CLASS\r\n },\r\n _itemDataKey: function() {\r\n return MULTIVIEW_ITEM_DATA_KEY\r\n },\r\n _itemContainer: function() {\r\n return this._$itemContainer\r\n },\r\n _itemElements: function() {\r\n return this._itemContainer().children(this._itemSelector())\r\n },\r\n _itemWidth: function() {\r\n if (!this._itemWidthValue) {\r\n this._itemWidthValue = getWidth(this._$wrapper)\r\n }\r\n return this._itemWidthValue\r\n },\r\n _clearItemWidthCache: function() {\r\n delete this._itemWidthValue\r\n },\r\n _itemsCount: function() {\r\n return this.option(\"items\").length\r\n },\r\n _normalizeIndex: function(index) {\r\n var count = this._itemsCount();\r\n if (index < 0) {\r\n index += count\r\n }\r\n if (index >= count) {\r\n index -= count\r\n }\r\n return index\r\n },\r\n _getRTLSignCorrection: function() {\r\n return this.option(\"rtlEnabled\") ? -1 : 1\r\n },\r\n _init: function() {\r\n this.callBase.apply(this, arguments);\r\n var $element = this.$element();\r\n $element.addClass(MULTIVIEW_CLASS);\r\n this._$wrapper = $(\"
\").addClass(MULTIVIEW_WRAPPER_CLASS);\r\n this._$wrapper.appendTo($element);\r\n this._$itemContainer = $(\"
\").addClass(MULTIVIEW_ITEM_CONTAINER_CLASS);\r\n this._$itemContainer.appendTo(this._$wrapper);\r\n this.option(\"loopItemFocus\", this.option(\"loop\"));\r\n this._initSwipeable()\r\n },\r\n _initMarkup: function() {\r\n this._deferredItems = [];\r\n this.callBase();\r\n var selectedItemIndices = this._getSelectedItemIndices();\r\n this._updateItemsVisibility(selectedItemIndices[0])\r\n },\r\n _afterItemElementDeleted: function($item, deletedActionArgs) {\r\n this.callBase($item, deletedActionArgs);\r\n if (this._deferredItems) {\r\n this._deferredItems.splice(deletedActionArgs.itemIndex, 1)\r\n }\r\n },\r\n _beforeItemElementInserted: function(change) {\r\n this.callBase.apply(this, arguments);\r\n if (this._deferredItems) {\r\n this._deferredItems.splice(change.index, 0, null)\r\n }\r\n },\r\n _executeItemRenderAction: function(index, itemData, itemElement) {\r\n index = (this.option(\"items\") || []).indexOf(itemData);\r\n this.callBase(index, itemData, itemElement)\r\n },\r\n _renderItemContent: function(args) {\r\n var renderContentDeferred = new Deferred;\r\n var that = this;\r\n var callBase = this.callBase;\r\n var deferred = new Deferred;\r\n deferred.done((function() {\r\n var $itemContent = callBase.call(that, args);\r\n renderContentDeferred.resolve($itemContent)\r\n }));\r\n this._deferredItems[args.index] = deferred;\r\n this.option(\"deferRendering\") || deferred.resolve();\r\n return renderContentDeferred.promise()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n deferRender(() => {\r\n var selectedItemIndices = this._getSelectedItemIndices();\r\n this._updateItems(selectedItemIndices[0])\r\n })\r\n },\r\n _updateItems: function(selectedIndex, newIndex) {\r\n this._updateItemsPosition(selectedIndex, newIndex);\r\n this._updateItemsVisibility(selectedIndex, newIndex)\r\n },\r\n _modifyByChanges: function() {\r\n this.callBase.apply(this, arguments);\r\n var selectedItemIndices = this._getSelectedItemIndices();\r\n this._updateItemsVisibility(selectedItemIndices[0])\r\n },\r\n _updateItemsPosition: function(selectedIndex, newIndex) {\r\n var $itemElements = this._itemElements();\r\n var positionSign = isDefined(newIndex) ? -this._animationDirection(newIndex, selectedIndex) : void 0;\r\n var $selectedItem = $itemElements.eq(selectedIndex);\r\n _translator.move($selectedItem, 0);\r\n if (isDefined(newIndex)) {\r\n _translator.move($itemElements.eq(newIndex), 100 * positionSign + \"%\")\r\n }\r\n },\r\n _updateItemsVisibility: function(selectedIndex, newIndex) {\r\n var $itemElements = this._itemElements();\r\n $itemElements.each(function(itemIndex, item) {\r\n var $item = $(item);\r\n var isHidden = itemIndex !== selectedIndex && itemIndex !== newIndex;\r\n if (!isHidden) {\r\n this._renderSpecificItem(itemIndex)\r\n }\r\n $item.toggleClass(MULTIVIEW_ITEM_HIDDEN_CLASS, isHidden);\r\n this.setAria(\"hidden\", isHidden || void 0, $item)\r\n }.bind(this))\r\n },\r\n _renderSpecificItem: function(index) {\r\n var $item = this._itemElements().eq(index);\r\n var hasItemContent = $item.find(this._itemContentClass()).length > 0;\r\n if (isDefined(index) && !hasItemContent) {\r\n this._deferredItems[index].resolve();\r\n triggerResizeEvent($item)\r\n }\r\n },\r\n _refreshItem: function($item, item) {\r\n this.callBase($item, item);\r\n this._updateItemsVisibility(this.option(\"selectedIndex\"))\r\n },\r\n _setAriaSelected: noop,\r\n _updateSelection: function(addedSelection, removedSelection) {\r\n var newIndex = addedSelection[0];\r\n var prevIndex = removedSelection[0];\r\n animation.complete(this._$itemContainer);\r\n this._updateItems(prevIndex, newIndex);\r\n var animationDirection = this._animationDirection(newIndex, prevIndex);\r\n this._animateItemContainer(animationDirection * this._itemWidth(), function() {\r\n _translator.move(this._$itemContainer, 0);\r\n this._updateItems(newIndex);\r\n getWidth(this._$itemContainer)\r\n }.bind(this))\r\n },\r\n _animateItemContainer: function(position, completeCallback) {\r\n var duration = this.option(\"animationEnabled\") ? MULTIVIEW_ANIMATION_DURATION : 0;\r\n animation.moveTo(this._$itemContainer, position, duration, completeCallback)\r\n },\r\n _animationDirection: function(newIndex, prevIndex) {\r\n var containerPosition = position(this._$itemContainer);\r\n var indexDifference = (prevIndex - newIndex) * this._getRTLSignCorrection() * this._getItemFocusLoopSignCorrection();\r\n var isSwipePresent = 0 !== containerPosition;\r\n var directionSignVariable = isSwipePresent ? containerPosition : indexDifference;\r\n return sign(directionSignVariable)\r\n },\r\n _getSwipeDisabledState() {\r\n return !this.option(\"swipeEnabled\") || this._itemsCount() <= 1\r\n },\r\n _initSwipeable() {\r\n this._createComponent(this.$element(), Swipeable, {\r\n disabled: this._getSwipeDisabledState(),\r\n elastic: false,\r\n itemSizeFunc: this._itemWidth.bind(this),\r\n onStart: args => this._swipeStartHandler(args.event),\r\n onUpdated: args => this._swipeUpdateHandler(args.event),\r\n onEnd: args => this._swipeEndHandler(args.event)\r\n })\r\n },\r\n _swipeStartHandler: function(e) {\r\n animation.complete(this._$itemContainer);\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n var loop = this.option(\"loop\");\r\n var lastIndex = this._itemsCount() - 1;\r\n var rtl = this.option(\"rtlEnabled\");\r\n e.maxLeftOffset = toNumber(loop || (rtl ? selectedIndex > 0 : selectedIndex < lastIndex));\r\n e.maxRightOffset = toNumber(loop || (rtl ? selectedIndex < lastIndex : selectedIndex > 0));\r\n this._swipeDirection = null\r\n },\r\n _swipeUpdateHandler: function(e) {\r\n var offset = e.offset;\r\n var swipeDirection = sign(offset) * this._getRTLSignCorrection();\r\n _translator.move(this._$itemContainer, offset * this._itemWidth());\r\n if (swipeDirection !== this._swipeDirection) {\r\n this._swipeDirection = swipeDirection;\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n var newIndex = this._normalizeIndex(selectedIndex - swipeDirection);\r\n this._updateItems(selectedIndex, newIndex)\r\n }\r\n },\r\n _swipeEndHandler: function(e) {\r\n var targetOffset = e.targetOffset * this._getRTLSignCorrection();\r\n if (targetOffset) {\r\n this.option(\"selectedIndex\", this._normalizeIndex(this.option(\"selectedIndex\") - targetOffset));\r\n var $selectedElement = this.itemElements().filter(\".dx-item-selected\");\r\n this.option(\"focusStateEnabled\") && this.option(\"focusedElement\", getPublicElement($selectedElement))\r\n } else {\r\n this._animateItemContainer(0, noop)\r\n }\r\n },\r\n _getItemFocusLoopSignCorrection: function() {\r\n return this._itemFocusLooped ? -1 : 1\r\n },\r\n _moveFocus: function() {\r\n this.callBase.apply(this, arguments);\r\n this._itemFocusLooped = false\r\n },\r\n _prevItem: function($items) {\r\n var $result = this.callBase.apply(this, arguments);\r\n this._itemFocusLooped = $result.is($items.last());\r\n return $result\r\n },\r\n _nextItem: function($items) {\r\n var $result = this.callBase.apply(this, arguments);\r\n this._itemFocusLooped = $result.is($items.first());\r\n return $result\r\n },\r\n _dimensionChanged: function() {\r\n this._clearItemWidthCache()\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this._dimensionChanged()\r\n }\r\n },\r\n _updateSwipeDisabledState() {\r\n var disabled = this._getSwipeDisabledState();\r\n Swipeable.getInstance(this.$element()).option(\"disabled\", disabled)\r\n },\r\n _optionChanged: function(args) {\r\n var value = args.value;\r\n switch (args.name) {\r\n case \"loop\":\r\n this.option(\"loopItemFocus\", value);\r\n break;\r\n case \"animationEnabled\":\r\n break;\r\n case \"swipeEnabled\":\r\n this._updateSwipeDisabledState();\r\n break;\r\n case \"deferRendering\":\r\n this._invalidate();\r\n break;\r\n case \"items\":\r\n this._updateSwipeDisabledState();\r\n this.callBase(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxMultiView\", MultiView);\r\nexport default MultiView;\r\n","/**\r\n * DevExtreme (esm/ui/tabs/item.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport CollectionWidgetItem from \"../collection/item\";\r\nvar TABS_ITEM_BADGE_CLASS = \"dx-tabs-item-badge\";\r\nvar BADGE_CLASS = \"dx-badge\";\r\nvar TabsItem = CollectionWidgetItem.inherit({\r\n _renderWatchers: function() {\r\n this.callBase();\r\n this._startWatcher(\"badge\", this._renderBadge.bind(this))\r\n },\r\n _renderBadge: function(badge) {\r\n this._$element.children(\".\" + BADGE_CLASS).remove();\r\n if (!badge) {\r\n return\r\n }\r\n var $badge = $(\"
\").addClass(TABS_ITEM_BADGE_CLASS).addClass(BADGE_CLASS).text(badge);\r\n this._$element.append($badge)\r\n }\r\n});\r\nexport default TabsItem;\r\n","/**\r\n * DevExtreme (esm/ui/tabs/constants.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var TABS_EXPANDED_CLASS = \"dx-tabs-expanded\";\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scroll_view/utils/get_scroll_left_max.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport function getScrollLeftMax(element) {\r\n return element.scrollWidth - element.clientWidth\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scroll_view/utils/get_boundary_props.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getScrollLeftMax\r\n} from \"./get_scroll_left_max\";\r\nimport {\r\n getScrollTopMax\r\n} from \"./get_scroll_top_max\";\r\nimport {\r\n ScrollDirection\r\n} from \"./scroll_direction\";\r\nexport function isReachedLeft(scrollOffsetLeft, epsilon) {\r\n return Math.round(scrollOffsetLeft) <= epsilon\r\n}\r\nexport function isReachedRight(element, scrollOffsetLeft, epsilon) {\r\n return Math.round(getScrollLeftMax(element) - scrollOffsetLeft) <= epsilon\r\n}\r\nexport function isReachedTop(scrollOffsetTop, epsilon) {\r\n return Math.round(scrollOffsetTop) <= epsilon\r\n}\r\nexport function isReachedBottom(element, scrollOffsetTop, pocketHeight, epsilon) {\r\n return Math.round(getScrollTopMax(element) - scrollOffsetTop - pocketHeight) <= epsilon\r\n}\r\nexport function getBoundaryProps(direction, scrollOffset, element) {\r\n var pocketHeight = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 0;\r\n var {\r\n left: left,\r\n top: top\r\n } = scrollOffset;\r\n var boundaryProps = {};\r\n var {\r\n isHorizontal: isHorizontal,\r\n isVertical: isVertical\r\n } = new ScrollDirection(direction);\r\n if (isHorizontal) {\r\n boundaryProps.reachedLeft = isReachedLeft(left, 0);\r\n boundaryProps.reachedRight = isReachedRight(element, left, 0)\r\n }\r\n if (isVertical) {\r\n boundaryProps.reachedTop = isReachedTop(top, 0);\r\n boundaryProps.reachedBottom = isReachedBottom(element, top, pocketHeight, 0)\r\n }\r\n return boundaryProps\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/tabs.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth,\r\n getOuterWidth\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport devices from \"../core/devices\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport Button from \"./button\";\r\nimport {\r\n render\r\n} from \"./widget/utils.ink_ripple\";\r\nimport {\r\n addNamespace\r\n} from \"../events/utils/index\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n isPlainObject\r\n} from \"../core/utils/type\";\r\nimport pointerEvents from \"../events/pointer\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport TabsItem from \"./tabs/item\";\r\nimport {\r\n TABS_EXPANDED_CLASS\r\n} from \"./tabs/constants\";\r\nimport {\r\n isMaterial,\r\n current as currentTheme\r\n} from \"./themes\";\r\nimport holdEvent from \"../events/hold\";\r\nimport Scrollable from \"./scroll_view/ui.scrollable\";\r\nimport {\r\n default as CollectionWidget\r\n} from \"./collection/ui.collection_widget.live_update\";\r\nimport {\r\n getImageContainer\r\n} from \"../core/utils/icon\";\r\nimport {\r\n BindableTemplate\r\n} from \"../core/templates/bindable_template\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n isReachedLeft,\r\n isReachedRight\r\n} from \"../renovation/ui/scroll_view/utils/get_boundary_props\";\r\nimport {\r\n getScrollLeftMax\r\n} from \"../renovation/ui/scroll_view/utils/get_scroll_left_max\";\r\nvar TABS_CLASS = \"dx-tabs\";\r\nvar TABS_WRAPPER_CLASS = \"dx-tabs-wrapper\";\r\nvar TABS_STRETCHED_CLASS = \"dx-tabs-stretched\";\r\nvar TABS_SCROLLABLE_CLASS = \"dx-tabs-scrollable\";\r\nvar TABS_NAV_BUTTONS_CLASS = \"dx-tabs-nav-buttons\";\r\nvar OVERFLOW_HIDDEN_CLASS = \"dx-overflow-hidden\";\r\nvar TABS_ITEM_CLASS = \"dx-tab\";\r\nvar TABS_ITEM_SELECTED_CLASS = \"dx-tab-selected\";\r\nvar TABS_NAV_BUTTON_CLASS = \"dx-tabs-nav-button\";\r\nvar TABS_LEFT_NAV_BUTTON_CLASS = \"dx-tabs-nav-button-left\";\r\nvar TABS_RIGHT_NAV_BUTTON_CLASS = \"dx-tabs-nav-button-right\";\r\nvar TABS_ITEM_TEXT_CLASS = \"dx-tab-text\";\r\nvar TABS_ITEM_DATA_KEY = \"dxTabData\";\r\nvar BUTTON_NEXT_ICON = \"chevronnext\";\r\nvar BUTTON_PREV_ICON = \"chevronprev\";\r\nvar FEEDBACK_HIDE_TIMEOUT = 100;\r\nvar FEEDBACK_DURATION_INTERVAL = 5;\r\nvar FEEDBACK_SCROLL_TIMEOUT = 300;\r\nvar TAB_OFFSET = 30;\r\nvar Tabs = CollectionWidget.inherit({\r\n _activeStateUnit: \".\" + TABS_ITEM_CLASS,\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n hoverStateEnabled: true,\r\n showNavButtons: true,\r\n scrollByContent: true,\r\n scrollingEnabled: true,\r\n selectionMode: \"single\",\r\n activeStateEnabled: true,\r\n selectionRequired: false,\r\n selectOnFocus: true,\r\n loopItemFocus: false,\r\n useInkRipple: false,\r\n badgeExpr: function(data) {\r\n return data ? data.badge : void 0\r\n },\r\n _itemAttributes: {\r\n role: \"tab\"\r\n }\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n var themeName = currentTheme();\r\n return this.callBase().concat([{\r\n device: function() {\r\n return \"desktop\" !== devices.real().deviceType\r\n },\r\n options: {\r\n showNavButtons: false\r\n }\r\n }, {\r\n device: {\r\n deviceType: \"desktop\"\r\n },\r\n options: {\r\n scrollByContent: false\r\n }\r\n }, {\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }, {\r\n device: function() {\r\n return isMaterial(themeName)\r\n },\r\n options: {\r\n useInkRipple: true,\r\n selectOnFocus: false\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this.setAria(\"role\", \"tablist\");\r\n this.$element().addClass(TABS_CLASS);\r\n this._renderWrapper();\r\n this._renderMultiple();\r\n this._feedbackHideTimeout = FEEDBACK_HIDE_TIMEOUT\r\n },\r\n _initTemplates: function() {\r\n this.callBase();\r\n this._templateManager.addDefaultTemplates({\r\n item: new BindableTemplate(function($container, data) {\r\n if (isPlainObject(data)) {\r\n this._prepareDefaultItemTemplate(data, $container)\r\n } else {\r\n $container.text(String(data))\r\n }\r\n var $iconElement = getImageContainer(data.icon);\r\n $iconElement && $iconElement.prependTo($container);\r\n $container.wrapInner($(\"\").addClass(TABS_ITEM_TEXT_CLASS))\r\n }.bind(this), [\"text\", \"html\", \"icon\"], this.option(\"integrationOptions.watchMethod\"))\r\n })\r\n },\r\n _createItemByTemplate: function(itemTemplate, renderArgs) {\r\n var {\r\n itemData: itemData,\r\n container: container,\r\n index: index\r\n } = renderArgs;\r\n this._deferredTemplates[index] = new Deferred;\r\n return itemTemplate.render({\r\n model: itemData,\r\n container: container,\r\n index: index,\r\n onRendered: () => this._deferredTemplates[index].resolve()\r\n })\r\n },\r\n _itemClass: function() {\r\n return TABS_ITEM_CLASS\r\n },\r\n _selectedItemClass: function() {\r\n return TABS_ITEM_SELECTED_CLASS\r\n },\r\n _itemDataKey: function() {\r\n return TABS_ITEM_DATA_KEY\r\n },\r\n _initMarkup: function() {\r\n this._deferredTemplates = [];\r\n this.callBase();\r\n this.option(\"useInkRipple\") && this._renderInkRipple();\r\n this.$element().addClass(OVERFLOW_HIDDEN_CLASS)\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._deferRenderScrolling()\r\n },\r\n _deferRenderScrolling() {\r\n when.apply(this, this._deferredTemplates).done(() => this._renderScrolling())\r\n },\r\n _renderScrolling: function() {\r\n var removeClasses = [TABS_STRETCHED_CLASS, TABS_EXPANDED_CLASS, OVERFLOW_HIDDEN_CLASS];\r\n this.$element().removeClass(removeClasses.join(\" \"));\r\n if (this.option(\"scrollingEnabled\") && this._isItemsWidthExceeded()) {\r\n if (!this._scrollable) {\r\n this._renderScrollable();\r\n this._renderNavButtons()\r\n }\r\n var scrollable = this.getScrollable();\r\n scrollable.update();\r\n if (this.option(\"rtlEnabled\")) {\r\n var maxLeftOffset = getScrollLeftMax($(this.getScrollable().container()).get(0));\r\n scrollable.scrollTo({\r\n left: maxLeftOffset\r\n })\r\n }\r\n this._updateNavButtonsVisibility();\r\n this._scrollToItem(this.option(\"selectedItem\"))\r\n }\r\n if (!(this.option(\"scrollingEnabled\") && this._isItemsWidthExceeded())) {\r\n this._cleanScrolling();\r\n if (this._needStretchItems() && !this._isItemsWidthExceeded()) {\r\n this.$element().addClass(TABS_STRETCHED_CLASS)\r\n }\r\n this.$element().removeClass(TABS_NAV_BUTTONS_CLASS).addClass(TABS_EXPANDED_CLASS)\r\n }\r\n },\r\n _isItemsWidthExceeded: function() {\r\n var tabItemsWidth = this._getSummaryItemsWidth(this._getVisibleItems(), true);\r\n return tabItemsWidth - 1 > getWidth(this.$element())\r\n },\r\n _needStretchItems: function() {\r\n var $visibleItems = this._getVisibleItems();\r\n var elementWidth = getWidth(this.$element());\r\n var itemsWidth = [];\r\n each($visibleItems, (_, item) => {\r\n itemsWidth.push(getOuterWidth(item, true))\r\n });\r\n var maxTabWidth = Math.max.apply(null, itemsWidth);\r\n return maxTabWidth > elementWidth / $visibleItems.length\r\n },\r\n _cleanNavButtons: function() {\r\n if (!this._leftButton || !this._rightButton) {\r\n return\r\n }\r\n this._leftButton.$element().remove();\r\n this._rightButton.$element().remove();\r\n this._leftButton = null;\r\n this._rightButton = null\r\n },\r\n _cleanScrolling: function() {\r\n if (!this._scrollable) {\r\n return\r\n }\r\n this._$wrapper.appendTo(this.$element());\r\n this._scrollable.$element().remove();\r\n this._scrollable = null;\r\n this._cleanNavButtons()\r\n },\r\n _renderInkRipple: function() {\r\n this._inkRipple = render()\r\n },\r\n _toggleActiveState: function($element, value, e) {\r\n this.callBase.apply(this, arguments);\r\n if (!this._inkRipple) {\r\n return\r\n }\r\n var config = {\r\n element: $element,\r\n event: e\r\n };\r\n if (value) {\r\n this._inkRipple.showWave(config)\r\n } else {\r\n this._inkRipple.hideWave(config)\r\n }\r\n },\r\n _renderMultiple: function() {\r\n if (\"multiple\" === this.option(\"selectionMode\")) {\r\n this.option(\"selectOnFocus\", false)\r\n }\r\n },\r\n _renderWrapper: function() {\r\n this._$wrapper = $(\"
\").addClass(TABS_WRAPPER_CLASS);\r\n this.$element().append(this._$wrapper)\r\n },\r\n _itemContainer: function() {\r\n return this._$wrapper\r\n },\r\n _renderScrollable: function() {\r\n var $itemContainer = this.$element().wrapInner($(\"
\").addClass(TABS_SCROLLABLE_CLASS)).children();\r\n this._scrollable = this._createComponent($itemContainer, Scrollable, {\r\n direction: \"horizontal\",\r\n showScrollbar: \"never\",\r\n useKeyboard: false,\r\n useNative: false,\r\n scrollByContent: this.option(\"scrollByContent\"),\r\n onScroll: () => {\r\n this._updateNavButtonsVisibility()\r\n }\r\n });\r\n this.$element().append(this._scrollable.$element())\r\n },\r\n _scrollToItem: function(itemData) {\r\n if (!this._scrollable) {\r\n return\r\n }\r\n var $item = this._editStrategy.getItemElement(itemData);\r\n this._scrollable.scrollToElement($item)\r\n },\r\n _renderNavButtons: function() {\r\n this.$element().toggleClass(TABS_NAV_BUTTONS_CLASS, this.option(\"showNavButtons\"));\r\n if (!this.option(\"showNavButtons\")) {\r\n return\r\n }\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n this._leftButton = this._createNavButton(-TAB_OFFSET, rtlEnabled ? BUTTON_NEXT_ICON : BUTTON_PREV_ICON);\r\n var $leftButton = this._leftButton.$element();\r\n $leftButton.addClass(TABS_LEFT_NAV_BUTTON_CLASS);\r\n this.$element().prepend($leftButton);\r\n this._rightButton = this._createNavButton(TAB_OFFSET, rtlEnabled ? BUTTON_PREV_ICON : BUTTON_NEXT_ICON);\r\n var $rightButton = this._rightButton.$element();\r\n $rightButton.addClass(TABS_RIGHT_NAV_BUTTON_CLASS);\r\n this.$element().append($rightButton)\r\n },\r\n _updateNavButtonsVisibility: function() {\r\n var scrollable = this.getScrollable();\r\n this._leftButton && this._leftButton.option(\"disabled\", isReachedLeft(scrollable.scrollLeft(), 1));\r\n this._rightButton && this._rightButton.option(\"disabled\", isReachedRight($(scrollable.container()).get(0), scrollable.scrollLeft(), 1))\r\n },\r\n _updateScrollPosition: function(offset, duration) {\r\n this._scrollable.update();\r\n this._scrollable.scrollBy(offset / duration)\r\n },\r\n _createNavButton: function(offset, icon) {\r\n var that = this;\r\n var holdAction = that._createAction((function() {\r\n that._holdInterval = setInterval((function() {\r\n that._updateScrollPosition(offset, FEEDBACK_DURATION_INTERVAL)\r\n }), FEEDBACK_DURATION_INTERVAL)\r\n }));\r\n var holdEventName = addNamespace(holdEvent.name, \"dxNavButton\");\r\n var pointerUpEventName = addNamespace(pointerEvents.up, \"dxNavButton\");\r\n var pointerOutEventName = addNamespace(pointerEvents.out, \"dxNavButton\");\r\n var navButton = this._createComponent($(\"
\").addClass(TABS_NAV_BUTTON_CLASS), Button, {\r\n focusStateEnabled: false,\r\n icon: icon,\r\n onClick: function() {\r\n that._updateScrollPosition(offset, 1)\r\n },\r\n integrationOptions: {}\r\n });\r\n var $navButton = navButton.$element();\r\n eventsEngine.on($navButton, holdEventName, {\r\n timeout: FEEDBACK_SCROLL_TIMEOUT\r\n }, function(e) {\r\n holdAction({\r\n event: e\r\n })\r\n }.bind(this));\r\n eventsEngine.on($navButton, pointerUpEventName, (function() {\r\n that._clearInterval()\r\n }));\r\n eventsEngine.on($navButton, pointerOutEventName, (function() {\r\n that._clearInterval()\r\n }));\r\n return navButton\r\n },\r\n _clearInterval: function() {\r\n if (this._holdInterval) {\r\n clearInterval(this._holdInterval)\r\n }\r\n },\r\n _updateSelection: function(addedSelection) {\r\n this._scrollable && this._scrollable.scrollToElement(this.itemElements().eq(addedSelection[0]), {\r\n left: 1,\r\n right: 1\r\n })\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this._dimensionChanged()\r\n }\r\n },\r\n _dimensionChanged: function() {\r\n this._renderScrolling()\r\n },\r\n _itemSelectHandler: function(e) {\r\n if (\"single\" === this.option(\"selectionMode\") && this.isItemSelected(e.currentTarget)) {\r\n return\r\n }\r\n this.callBase(e)\r\n },\r\n _clean: function() {\r\n this._deferredTemplates = [];\r\n this._cleanScrolling();\r\n this.callBase()\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"useInkRipple\":\r\n case \"scrollingEnabled\":\r\n case \"showNavButtons\":\r\n this._invalidate();\r\n break;\r\n case \"scrollByContent\":\r\n this._scrollable && this._scrollable.option(args.name, args.value);\r\n break;\r\n case \"width\":\r\n this.callBase(args);\r\n this._dimensionChanged();\r\n break;\r\n case \"selectionMode\":\r\n this._renderMultiple();\r\n this.callBase(args);\r\n break;\r\n case \"badgeExpr\":\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _afterItemElementInserted() {\r\n this.callBase();\r\n this._deferRenderScrolling()\r\n },\r\n _afterItemElementDeleted($item, deletedActionArgs) {\r\n this.callBase($item, deletedActionArgs);\r\n this._renderScrolling()\r\n },\r\n getScrollable() {\r\n return this._scrollable\r\n }\r\n});\r\nTabs.ItemClass = TabsItem;\r\nregisterComponent(\"dxTabs\", Tabs);\r\nexport default Tabs;\r\n","/**\r\n * DevExtreme (esm/ui/tab_panel/item.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport CollectionWidgetItem from \"../collection/item\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nexport default class TabPanelItem extends CollectionWidgetItem {\r\n _renderWatchers() {\r\n this._startWatcher(\"badge\", noop);\r\n return super._renderWatchers()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/tab_panel.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterHeight\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n touch\r\n} from \"../core/utils/support\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport devices from \"../core/devices\";\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport MultiView from \"./multi_view\";\r\nimport Tabs from \"./tabs\";\r\nimport {\r\n default as TabPanelItem\r\n} from \"./tab_panel/item\";\r\nimport {\r\n getImageContainer\r\n} from \"../core/utils/icon\";\r\nimport {\r\n getPublicElement\r\n} from \"../core/element\";\r\nimport {\r\n isPlainObject,\r\n isDefined\r\n} from \"../core/utils/type\";\r\nimport {\r\n BindableTemplate\r\n} from \"../core/templates/bindable_template\";\r\nimport {\r\n hasWindow\r\n} from \"../core/utils/window\";\r\nvar TABPANEL_CLASS = \"dx-tabpanel\";\r\nvar TABPANEL_TABS_CLASS = \"dx-tabpanel-tabs\";\r\nvar TABPANEL_CONTAINER_CLASS = \"dx-tabpanel-container\";\r\nvar TABS_ITEM_TEXT_CLASS = \"dx-tab-text\";\r\nvar TabPanel = MultiView.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n itemTitleTemplate: \"title\",\r\n hoverStateEnabled: true,\r\n showNavButtons: false,\r\n scrollByContent: true,\r\n scrollingEnabled: true,\r\n onTitleClick: null,\r\n onTitleHold: null,\r\n onTitleRendered: null,\r\n badgeExpr: function(data) {\r\n return data ? data.badge : void 0\r\n }\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }, {\r\n device: function() {\r\n return !touch\r\n },\r\n options: {\r\n swipeEnabled: false\r\n }\r\n }, {\r\n device: {\r\n platform: \"generic\"\r\n },\r\n options: {\r\n animationEnabled: false\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this.$element().addClass(TABPANEL_CLASS);\r\n this.setAria(\"role\", \"tabpanel\")\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this._createTitleActions();\r\n this._renderLayout()\r\n },\r\n _initTemplates: function() {\r\n this.callBase();\r\n this._templateManager.addDefaultTemplates({\r\n title: new BindableTemplate((function($container, data) {\r\n if (isPlainObject(data)) {\r\n var $iconElement = getImageContainer(data.icon);\r\n if ($iconElement) {\r\n $container.append($iconElement)\r\n }\r\n if (isDefined(data.title) && !isPlainObject(data.title)) {\r\n $container.append(domAdapter.createTextNode(data.title))\r\n }\r\n } else if (isDefined(data)) {\r\n $container.text(String(data))\r\n }\r\n $container.wrapInner($(\"\").addClass(TABS_ITEM_TEXT_CLASS))\r\n }), [\"title\", \"icon\"], this.option(\"integrationOptions.watchMethod\"))\r\n })\r\n },\r\n _createTitleActions: function() {\r\n this._createTitleClickAction();\r\n this._createTitleHoldAction();\r\n this._createTitleRenderedAction()\r\n },\r\n _createTitleClickAction: function() {\r\n this._titleClickAction = this._createActionByOption(\"onTitleClick\")\r\n },\r\n _createTitleHoldAction: function() {\r\n this._titleHoldAction = this._createActionByOption(\"onTitleHold\")\r\n },\r\n _createTitleRenderedAction: function() {\r\n this._titleRenderedAction = this._createActionByOption(\"onTitleRendered\")\r\n },\r\n _renderContent: function() {\r\n var that = this;\r\n this.callBase();\r\n if (this.option(\"templatesRenderAsynchronously\")) {\r\n this._resizeEventTimer = setTimeout((function() {\r\n that._updateLayout()\r\n }), 0)\r\n }\r\n },\r\n _renderLayout: function() {\r\n if (this._tabs) {\r\n this._updateLayout();\r\n return\r\n }\r\n var $element = this.$element();\r\n this._$tabContainer = $(\"
\").addClass(TABPANEL_TABS_CLASS).appendTo($element);\r\n var $tabs = $(\"
\").appendTo(this._$tabContainer);\r\n this._tabs = this._createComponent($tabs, Tabs, this._tabConfig());\r\n this._$container = $(\"
\").addClass(TABPANEL_CONTAINER_CLASS).appendTo($element);\r\n this._$container.append(this._$wrapper);\r\n this._updateLayout()\r\n },\r\n _updateLayout: function() {\r\n if (hasWindow()) {\r\n var tabsHeight = getOuterHeight(this._$tabContainer);\r\n this._$container.css({\r\n marginTop: -tabsHeight,\r\n paddingTop: tabsHeight\r\n })\r\n }\r\n },\r\n _refreshActiveDescendant: function() {\r\n if (!this._tabs) {\r\n return\r\n }\r\n var tabs = this._tabs;\r\n var tabItems = tabs.itemElements();\r\n var $activeTab = $(tabItems[tabs.option(\"selectedIndex\")]);\r\n var id = this.getFocusedItemId();\r\n this.setAria(\"controls\", void 0, $(tabItems));\r\n this.setAria(\"controls\", id, $activeTab)\r\n },\r\n _tabConfig: function() {\r\n return {\r\n selectOnFocus: true,\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n hoverStateEnabled: this.option(\"hoverStateEnabled\"),\r\n repaintChangesOnly: this.option(\"repaintChangesOnly\"),\r\n tabIndex: this.option(\"tabIndex\"),\r\n selectedIndex: this.option(\"selectedIndex\"),\r\n badgeExpr: this.option(\"badgeExpr\"),\r\n onItemClick: this._titleClickAction.bind(this),\r\n onItemHold: this._titleHoldAction.bind(this),\r\n itemHoldTimeout: this.option(\"itemHoldTimeout\"),\r\n onSelectionChanged: function(e) {\r\n this.option(\"selectedIndex\", e.component.option(\"selectedIndex\"));\r\n this._refreshActiveDescendant()\r\n }.bind(this),\r\n onItemRendered: this._titleRenderedAction.bind(this),\r\n itemTemplate: this._getTemplateByOption(\"itemTitleTemplate\"),\r\n items: this.option(\"items\"),\r\n noDataText: null,\r\n scrollingEnabled: this.option(\"scrollingEnabled\"),\r\n scrollByContent: this.option(\"scrollByContent\"),\r\n showNavButtons: this.option(\"showNavButtons\"),\r\n itemTemplateProperty: \"tabTemplate\",\r\n loopItemFocus: this.option(\"loop\"),\r\n selectionRequired: true,\r\n onOptionChanged: function(args) {\r\n if (\"focusedElement\" === args.name) {\r\n if (args.value) {\r\n var $value = $(args.value);\r\n var $newItem = this._itemElements().eq($value.index());\r\n this.option(\"focusedElement\", getPublicElement($newItem))\r\n } else {\r\n this.option(\"focusedElement\", args.value)\r\n }\r\n }\r\n }.bind(this),\r\n onFocusIn: function(args) {\r\n this._focusInHandler(args.event)\r\n }.bind(this),\r\n onFocusOut: function(args) {\r\n if (!this._isFocusOutHandlerExecuting) {\r\n this._focusOutHandler(args.event)\r\n }\r\n }.bind(this)\r\n }\r\n },\r\n _renderFocusTarget: function() {\r\n this._focusTarget().attr(\"tabIndex\", -1)\r\n },\r\n _updateFocusState: function(e, isFocused) {\r\n this.callBase(e, isFocused);\r\n if (e.target === this._tabs._focusTarget().get(0)) {\r\n this._toggleFocusClass(isFocused, this._focusTarget())\r\n }\r\n },\r\n _focusOutHandler: function(e) {\r\n this._isFocusOutHandlerExecuting = true;\r\n this.callBase.apply(this, arguments);\r\n this._tabs._focusOutHandler(e);\r\n this._isFocusOutHandlerExecuting = false\r\n },\r\n _setTabsOption: function(name, value) {\r\n if (this._tabs) {\r\n this._tabs.option(name, value)\r\n }\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this._tabs._dimensionChanged();\r\n this._updateLayout()\r\n }\r\n },\r\n registerKeyHandler: function(key, handler) {\r\n this.callBase(key, handler);\r\n if (this._tabs) {\r\n this._tabs.registerKeyHandler(key, handler)\r\n }\r\n },\r\n repaint: function() {\r\n this.callBase();\r\n this._tabs.repaint()\r\n },\r\n _optionChanged: function(args) {\r\n var name = args.name;\r\n var value = args.value;\r\n var fullName = args.fullName;\r\n switch (name) {\r\n case \"dataSource\":\r\n this.callBase(args);\r\n break;\r\n case \"items\":\r\n this._setTabsOption(name, this.option(name));\r\n this._updateLayout();\r\n if (!this.option(\"repaintChangesOnly\")) {\r\n this._tabs.repaint()\r\n }\r\n this.callBase(args);\r\n break;\r\n case \"width\":\r\n this.callBase(args);\r\n this._tabs.repaint();\r\n break;\r\n case \"selectedIndex\":\r\n case \"selectedItem\":\r\n this._setTabsOption(fullName, value);\r\n this.callBase(args);\r\n if (true === this.option(\"focusStateEnabled\")) {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n var selectedTabContent = this._itemElements().eq(selectedIndex);\r\n this.option(\"focusedElement\", getPublicElement(selectedTabContent))\r\n }\r\n break;\r\n case \"itemHoldTimeout\":\r\n case \"focusStateEnabled\":\r\n case \"hoverStateEnabled\":\r\n this._setTabsOption(fullName, value);\r\n this.callBase(args);\r\n break;\r\n case \"scrollingEnabled\":\r\n case \"scrollByContent\":\r\n case \"showNavButtons\":\r\n this._setTabsOption(fullName, value);\r\n break;\r\n case \"focusedElement\":\r\n var id = value ? $(value).index() : value;\r\n var newItem = value ? this._tabs._itemElements().eq(id) : value;\r\n this._setTabsOption(\"focusedElement\", getPublicElement(newItem));\r\n this.callBase(args);\r\n break;\r\n case \"itemTitleTemplate\":\r\n this._setTabsOption(\"itemTemplate\", this._getTemplateByOption(\"itemTitleTemplate\"));\r\n break;\r\n case \"onTitleClick\":\r\n this._createTitleClickAction();\r\n this._setTabsOption(\"onItemClick\", this._titleClickAction.bind(this));\r\n break;\r\n case \"onTitleHold\":\r\n this._createTitleHoldAction();\r\n this._setTabsOption(\"onItemHold\", this._titleHoldAction.bind(this));\r\n break;\r\n case \"onTitleRendered\":\r\n this._createTitleRenderedAction();\r\n this._setTabsOption(\"onItemRendered\", this._titleRenderedAction.bind(this));\r\n break;\r\n case \"loop\":\r\n this._setTabsOption(\"loopItemFocus\", value);\r\n break;\r\n case \"badgeExpr\":\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _clean: function() {\r\n clearTimeout(this._resizeEventTimer);\r\n this.callBase()\r\n }\r\n});\r\nTabPanel.ItemClass = TabPanelItem;\r\nregisterComponent(\"dxTabPanel\", TabPanel);\r\nexport default TabPanel;\r\n","/**\r\n * DevExtreme (esm/ui/form/ui.form.item_option_action.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../core/class\";\r\nexport default class ItemOptionAction {\r\n constructor(options) {\r\n this._options = options;\r\n this._itemsRunTimeInfo = this._options.itemsRunTimeInfo\r\n }\r\n findInstance() {\r\n return this._itemsRunTimeInfo.findWidgetInstanceByItem(this._options.item)\r\n }\r\n findItemContainer() {\r\n return this._itemsRunTimeInfo.findItemContainerByItem(this._options.item)\r\n }\r\n findPreparedItem() {\r\n return this._itemsRunTimeInfo.findPreparedItemByItem(this._options.item)\r\n }\r\n tryExecute() {\r\n Class.abstract()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/form/ui.form.utils.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nexport var createItemPathByIndex = (index, isTabs) => \"\".concat(isTabs ? \"tabs\" : \"items\", \"[\").concat(index, \"]\");\r\nexport var concatPaths = (path1, path2) => {\r\n if (isDefined(path1) && isDefined(path2)) {\r\n return \"\".concat(path1, \".\").concat(path2)\r\n }\r\n return path1 || path2\r\n};\r\nexport var getTextWithoutSpaces = text => text ? text.replace(/\\s/g, \"\") : void 0;\r\nexport var isEqualToDataFieldOrNameOrTitleOrCaption = (item, fieldName) => {\r\n if (item) {\r\n return item.dataField === fieldName || item.name === fieldName || getTextWithoutSpaces(item.title) === fieldName || \"group\" === item.itemType && getTextWithoutSpaces(item.caption) === fieldName\r\n }\r\n return false\r\n};\r\nexport var getFullOptionName = (path, optionName) => \"\".concat(path, \".\").concat(optionName);\r\nexport var getOptionNameFromFullName = fullName => {\r\n var parts = fullName.split(\".\");\r\n return parts[parts.length - 1].replace(/\\[\\d+]/, \"\")\r\n};\r\nexport var tryGetTabPath = fullPath => {\r\n var pathParts = fullPath.split(\".\");\r\n var resultPathParts = [...pathParts];\r\n for (var i = pathParts.length - 1; i >= 0; i--) {\r\n if (isFullPathContainsTabs(pathParts[i])) {\r\n return resultPathParts.join(\".\")\r\n }\r\n resultPathParts.splice(i, 1)\r\n }\r\n return \"\"\r\n};\r\nexport var isFullPathContainsTabs = fullPath => fullPath.indexOf(\"tabs\") > -1;\r\nexport var getItemPath = (items, item, isTabs) => {\r\n var index = items.indexOf(item);\r\n if (index > -1) {\r\n return createItemPathByIndex(index, isTabs)\r\n }\r\n for (var i = 0; i < items.length; i++) {\r\n var targetItem = items[i];\r\n var tabOrGroupItems = targetItem.tabs || targetItem.items;\r\n if (tabOrGroupItems) {\r\n var itemPath = getItemPath(tabOrGroupItems, item, targetItem.tabs);\r\n if (itemPath) {\r\n return concatPaths(createItemPathByIndex(i, isTabs), itemPath)\r\n }\r\n }\r\n }\r\n};\r\nexport function convertToLayoutManagerOptions(_ref) {\r\n var {\r\n form: form,\r\n $formElement: $formElement,\r\n formOptions: formOptions,\r\n items: items,\r\n validationGroup: validationGroup,\r\n extendedLayoutManagerOptions: extendedLayoutManagerOptions,\r\n onFieldDataChanged: onFieldDataChanged,\r\n onContentReady: onContentReady,\r\n onDisposing: onDisposing,\r\n onFieldItemRendered: onFieldItemRendered\r\n } = _ref;\r\n var baseOptions = {\r\n form: form,\r\n items: items,\r\n $formElement: $formElement,\r\n validationGroup: validationGroup,\r\n onFieldDataChanged: onFieldDataChanged,\r\n onContentReady: onContentReady,\r\n onDisposing: onDisposing,\r\n onFieldItemRendered: onFieldItemRendered,\r\n validationBoundary: formOptions.scrollingEnabled ? $formElement : void 0,\r\n scrollingEnabled: formOptions.scrollingEnabled,\r\n showRequiredMark: formOptions.showRequiredMark,\r\n showOptionalMark: formOptions.showOptionalMark,\r\n requiredMark: formOptions.requiredMark,\r\n optionalMark: formOptions.optionalMark,\r\n requiredMessage: formOptions.requiredMessage,\r\n screenByWidth: formOptions.screenByWidth,\r\n layoutData: formOptions.formData,\r\n labelLocation: formOptions.labelLocation,\r\n customizeItem: formOptions.customizeItem,\r\n minColWidth: formOptions.minColWidth,\r\n showColonAfterLabel: formOptions.showColonAfterLabel,\r\n onEditorEnterKey: formOptions.onEditorEnterKey,\r\n labelMode: formOptions.labelMode\r\n };\r\n var result = extend(baseOptions, {\r\n isRoot: extendedLayoutManagerOptions.isRoot,\r\n colCount: extendedLayoutManagerOptions.colCount,\r\n alignItemLabels: extendedLayoutManagerOptions.alignItemLabels,\r\n cssItemClass: extendedLayoutManagerOptions.cssItemClass,\r\n colCountByScreen: extendedLayoutManagerOptions.colCountByScreen,\r\n onLayoutChanged: extendedLayoutManagerOptions.onLayoutChanged,\r\n width: extendedLayoutManagerOptions.width\r\n });\r\n return result\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/form/ui.form.item_options_actions.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport ItemOptionAction from \"./ui.form.item_option_action\";\r\nimport {\r\n data\r\n} from \"../../core/element_data\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getFullOptionName\r\n} from \"./ui.form.utils\";\r\nclass WidgetOptionItemOptionAction extends ItemOptionAction {\r\n tryExecute() {\r\n var {\r\n value: value\r\n } = this._options;\r\n var instance = this.findInstance();\r\n if (instance) {\r\n instance.option(value);\r\n return true\r\n }\r\n return false\r\n }\r\n}\r\nclass TabOptionItemOptionAction extends ItemOptionAction {\r\n tryExecute() {\r\n var tabPanel = this.findInstance();\r\n if (tabPanel) {\r\n var {\r\n optionName: optionName,\r\n item: item,\r\n value: value\r\n } = this._options;\r\n var itemIndex = this._itemsRunTimeInfo.findItemIndexByItem(item);\r\n if (itemIndex >= 0) {\r\n tabPanel.option(getFullOptionName(\"items[\".concat(itemIndex, \"]\"), optionName), value);\r\n return true\r\n }\r\n }\r\n return false\r\n }\r\n}\r\nclass SimpleItemTemplateChangedAction extends ItemOptionAction {\r\n tryExecute() {\r\n return false\r\n }\r\n}\r\nclass GroupItemTemplateChangedAction extends ItemOptionAction {\r\n tryExecute() {\r\n var preparedItem = this.findPreparedItem();\r\n if (null != preparedItem && preparedItem._prepareGroupItemTemplate && preparedItem._renderGroupContentTemplate) {\r\n preparedItem._prepareGroupItemTemplate(this._options.item.template);\r\n preparedItem._renderGroupContentTemplate();\r\n return true\r\n }\r\n return false\r\n }\r\n}\r\nclass TabsOptionItemOptionAction extends ItemOptionAction {\r\n tryExecute() {\r\n var tabPanel = this.findInstance();\r\n if (tabPanel) {\r\n var {\r\n value: value\r\n } = this._options;\r\n tabPanel.option(\"dataSource\", value);\r\n return true\r\n }\r\n return false\r\n }\r\n}\r\nclass ValidationRulesItemOptionAction extends ItemOptionAction {\r\n tryExecute() {\r\n var {\r\n item: item\r\n } = this._options;\r\n var instance = this.findInstance();\r\n var validator = instance && data(instance.$element()[0], \"dxValidator\");\r\n if (validator && item) {\r\n var filterRequired = item => \"required\" === item.type;\r\n var oldContainsRequired = (validator.option(\"validationRules\") || []).some(filterRequired);\r\n var newContainsRequired = (item.validationRules || []).some(filterRequired);\r\n if (!oldContainsRequired && !newContainsRequired || oldContainsRequired && newContainsRequired) {\r\n validator.option(\"validationRules\", item.validationRules);\r\n return true\r\n }\r\n }\r\n return false\r\n }\r\n}\r\nclass CssClassItemOptionAction extends ItemOptionAction {\r\n tryExecute() {\r\n var $itemContainer = this.findItemContainer();\r\n var {\r\n previousValue: previousValue,\r\n value: value\r\n } = this._options;\r\n if ($itemContainer) {\r\n $itemContainer.removeClass(previousValue).addClass(value);\r\n return true\r\n }\r\n return false\r\n }\r\n}\r\nvar tryCreateItemOptionAction = (optionName, itemActionOptions) => {\r\n switch (optionName) {\r\n case \"editorOptions\":\r\n case \"buttonOptions\":\r\n return new WidgetOptionItemOptionAction(itemActionOptions);\r\n case \"validationRules\":\r\n return new ValidationRulesItemOptionAction(itemActionOptions);\r\n case \"cssClass\":\r\n return new CssClassItemOptionAction(itemActionOptions);\r\n case \"badge\":\r\n case \"disabled\":\r\n case \"icon\":\r\n case \"tabTemplate\":\r\n case \"title\":\r\n return new TabOptionItemOptionAction(extend(itemActionOptions, {\r\n optionName: optionName\r\n }));\r\n case \"tabs\":\r\n return new TabsOptionItemOptionAction(itemActionOptions);\r\n case \"template\":\r\n var _itemActionOptions$it, _itemActionOptions$it2, _itemActionOptions$it3;\r\n var itemType = null !== (_itemActionOptions$it = null === itemActionOptions || void 0 === itemActionOptions ? void 0 : null === (_itemActionOptions$it2 = itemActionOptions.item) || void 0 === _itemActionOptions$it2 ? void 0 : _itemActionOptions$it2.itemType) && void 0 !== _itemActionOptions$it ? _itemActionOptions$it : null === (_itemActionOptions$it3 = itemActionOptions.itemsRunTimeInfo.findPreparedItemByItem(null === itemActionOptions || void 0 === itemActionOptions ? void 0 : itemActionOptions.item)) || void 0 === _itemActionOptions$it3 ? void 0 : _itemActionOptions$it3.itemType;\r\n if (\"simple\" === itemType) {\r\n return new SimpleItemTemplateChangedAction(itemActionOptions)\r\n } else if (\"group\" === itemType) {\r\n return new GroupItemTemplateChangedAction(itemActionOptions)\r\n }\r\n return new TabOptionItemOptionAction(extend(itemActionOptions, {\r\n optionName: optionName\r\n }));\r\n default:\r\n return null\r\n }\r\n};\r\nexport default tryCreateItemOptionAction;\r\n","/**\r\n * DevExtreme (esm/ui/responsive_box.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport {\r\n grep,\r\n noop\r\n} from \"../core/utils/common\";\r\nimport {\r\n isDefined,\r\n isPlainObject,\r\n isEmptyObject\r\n} from \"../core/utils/type\";\r\nimport errors from \"./widget/ui.errors\";\r\nimport {\r\n getWindow,\r\n defaultScreenFactorFunc,\r\n hasWindow\r\n} from \"../core/utils/window\";\r\nvar window = getWindow();\r\nimport {\r\n each,\r\n map\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport Box from \"./box\";\r\nimport CollectionWidget from \"./collection/ui.collection_widget.edit\";\r\nvar RESPONSIVE_BOX_CLASS = \"dx-responsivebox\";\r\nvar SCREEN_SIZE_CLASS_PREFIX = RESPONSIVE_BOX_CLASS + \"-screen-\";\r\nvar BOX_ITEM_CLASS = \"dx-box-item\";\r\nvar BOX_ITEM_DATA_KEY = \"dxBoxItemData\";\r\nvar HD_SCREEN_WIDTH = 1920;\r\nvar ResponsiveBox = CollectionWidget.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n rows: [],\r\n cols: [],\r\n screenByWidth: null,\r\n singleColumnScreen: \"\",\r\n height: \"100%\",\r\n width: \"100%\",\r\n activeStateEnabled: false,\r\n focusStateEnabled: false,\r\n onItemStateChanged: void 0,\r\n onLayoutChanged: null,\r\n currentScreenFactor: void 0,\r\n _layoutStrategy: void 0\r\n })\r\n },\r\n _init: function() {\r\n if (!this.option(\"screenByWidth\")) {\r\n this._options.silent(\"screenByWidth\", defaultScreenFactorFunc)\r\n }\r\n this.callBase();\r\n this._initLayoutChangedAction()\r\n },\r\n _initLayoutChangedAction: function() {\r\n this._layoutChangedAction = this._createActionByOption(\"onLayoutChanged\", {\r\n excludeValidators: [\"disabled\", \"readonly\"]\r\n })\r\n },\r\n _itemClass: function() {\r\n return BOX_ITEM_CLASS\r\n },\r\n _itemDataKey: function() {\r\n return BOX_ITEM_DATA_KEY\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this.$element().addClass(RESPONSIVE_BOX_CLASS);\r\n this._updateRootBox()\r\n },\r\n _updateRootBox: function() {\r\n clearTimeout(this._updateTimer);\r\n this._updateTimer = setTimeout(function() {\r\n if (this._$root) {\r\n eventsEngine.triggerHandler(this._$root, \"dxupdate\")\r\n }\r\n }.bind(this))\r\n },\r\n _renderItems: function() {\r\n this._setScreenSize();\r\n this._screenItems = this._itemsByScreen();\r\n this._prepareGrid();\r\n this._spreadItems();\r\n this._layoutItems();\r\n this._linkNodeToItem()\r\n },\r\n _itemOptionChanged: function(item) {\r\n var $item = this._findItemElementByItem(item);\r\n if (!$item.length) {\r\n return\r\n }\r\n this._refreshItem($item, item);\r\n this._clearItemNodeTemplates();\r\n this._update(true)\r\n },\r\n _setScreenSize: function() {\r\n var currentScreen = this._getCurrentScreen();\r\n this._removeScreenSizeClass();\r\n this.$element().addClass(SCREEN_SIZE_CLASS_PREFIX + currentScreen);\r\n this.option(\"currentScreenFactor\", currentScreen)\r\n },\r\n _removeScreenSizeClass: function() {\r\n var currentScreenFactor = this.option(\"currentScreenFactor\");\r\n currentScreenFactor && this.$element().removeClass(SCREEN_SIZE_CLASS_PREFIX + currentScreenFactor)\r\n },\r\n _prepareGrid: function() {\r\n var grid = this._grid = [];\r\n this._prepareRowsAndCols();\r\n each(this._rows, function() {\r\n var row = [];\r\n grid.push(row);\r\n each(this._cols, function() {\r\n row.push(this._createEmptyCell())\r\n }.bind(this))\r\n }.bind(this))\r\n },\r\n getSingleColumnRows: function() {\r\n var rows = this.option(\"rows\");\r\n var screenItemsLength = this._screenItems.length;\r\n if (rows.length) {\r\n var filteredRows = this._filterByScreen(rows);\r\n var result = [];\r\n for (var i = 0; i < screenItemsLength; i++) {\r\n var sizeConfig = this._defaultSizeConfig();\r\n if (i < filteredRows.length && isDefined(filteredRows[i].shrink)) {\r\n sizeConfig.shrink = filteredRows[i].shrink\r\n }\r\n result.push(sizeConfig)\r\n }\r\n return result\r\n } else {\r\n return this._defaultSizeConfig(screenItemsLength)\r\n }\r\n },\r\n _prepareRowsAndCols: function() {\r\n if (this._isSingleColumnScreen()) {\r\n this._prepareSingleColumnScreenItems();\r\n this._rows = this.getSingleColumnRows();\r\n this._cols = this._defaultSizeConfig(1)\r\n } else {\r\n this._rows = this._sizesByScreen(this.option(\"rows\"));\r\n this._cols = this._sizesByScreen(this.option(\"cols\"))\r\n }\r\n },\r\n _isSingleColumnScreen: function() {\r\n return this._screenRegExp().test(this.option(\"singleColumnScreen\")) || !this.option(\"rows\").length || !this.option(\"cols\").length\r\n },\r\n _prepareSingleColumnScreenItems: function() {\r\n this._screenItems.sort((function(item1, item2) {\r\n return item1.location.row - item2.location.row || item1.location.col - item2.location.col\r\n }));\r\n each(this._screenItems, (function(index, item) {\r\n extend(item.location, {\r\n row: index,\r\n col: 0,\r\n rowspan: 1,\r\n colspan: 1\r\n })\r\n }))\r\n },\r\n _sizesByScreen: function(sizeConfigs) {\r\n return map(this._filterByScreen(sizeConfigs), function(sizeConfig) {\r\n return extend(this._defaultSizeConfig(), sizeConfig)\r\n }.bind(this))\r\n },\r\n _createDefaultSizeConfig: function() {\r\n return {\r\n ratio: 1,\r\n baseSize: 0,\r\n minSize: 0,\r\n maxSize: 0\r\n }\r\n },\r\n _defaultSizeConfig: function(size) {\r\n var defaultSizeConfig = this._createDefaultSizeConfig();\r\n if (!arguments.length) {\r\n return defaultSizeConfig\r\n }\r\n var result = [];\r\n for (var i = 0; i < size; i++) {\r\n result.push(defaultSizeConfig)\r\n }\r\n return result\r\n },\r\n _filterByScreen: function(items) {\r\n var screenRegExp = this._screenRegExp();\r\n return grep(items, (function(item) {\r\n return !item.screen || screenRegExp.test(item.screen)\r\n }))\r\n },\r\n _screenRegExp: function() {\r\n var screen = this._getCurrentScreen();\r\n return new RegExp(\"(^|\\\\s)\" + screen + \"($|\\\\s)\", \"i\")\r\n },\r\n _getCurrentScreen: function() {\r\n var width = this._screenWidth();\r\n return this.option(\"screenByWidth\")(width)\r\n },\r\n _screenWidth: function() {\r\n return hasWindow() ? getWidth(window) : HD_SCREEN_WIDTH\r\n },\r\n _createEmptyCell: function() {\r\n return {\r\n item: {},\r\n location: {\r\n colspan: 1,\r\n rowspan: 1\r\n }\r\n }\r\n },\r\n _spreadItems: function() {\r\n each(this._screenItems, function(_, itemInfo) {\r\n var location = itemInfo.location || {};\r\n var itemCol = location.col;\r\n var itemRow = location.row;\r\n var row = this._grid[itemRow];\r\n var itemCell = row && row[itemCol];\r\n this._occupyCells(itemCell, itemInfo)\r\n }.bind(this))\r\n },\r\n _itemsByScreen: function() {\r\n return this.option(\"items\").reduce((result, item) => {\r\n var locations = item.location || {};\r\n locations = isPlainObject(locations) ? [locations] : locations;\r\n this._filterByScreen(locations).forEach(location => {\r\n result.push({\r\n item: item,\r\n location: extend({\r\n rowspan: 1,\r\n colspan: 1\r\n }, location)\r\n })\r\n });\r\n return result\r\n }, [])\r\n },\r\n _occupyCells: function(itemCell, itemInfo) {\r\n if (!itemCell || this._isItemCellOccupied(itemCell, itemInfo)) {\r\n return\r\n }\r\n extend(itemCell, itemInfo);\r\n this._markSpanningCell(itemCell)\r\n },\r\n _isItemCellOccupied: function(itemCell, itemInfo) {\r\n if (!isEmptyObject(itemCell.item)) {\r\n return true\r\n }\r\n var result = false;\r\n this._loopOverSpanning(itemInfo.location, (function(cell) {\r\n result = result || !isEmptyObject(cell.item)\r\n }));\r\n return result\r\n },\r\n _loopOverSpanning: function(location, callback) {\r\n var rowEnd = location.row + location.rowspan - 1;\r\n var colEnd = location.col + location.colspan - 1;\r\n var boundRowEnd = Math.min(rowEnd, this._rows.length - 1);\r\n var boundColEnd = Math.min(colEnd, this._cols.length - 1);\r\n location.rowspan -= rowEnd - boundRowEnd;\r\n location.colspan -= colEnd - boundColEnd;\r\n for (var rowIndex = location.row; rowIndex <= boundRowEnd; rowIndex++) {\r\n for (var colIndex = location.col; colIndex <= boundColEnd; colIndex++) {\r\n if (rowIndex !== location.row || colIndex !== location.col) {\r\n callback(this._grid[rowIndex][colIndex])\r\n }\r\n }\r\n }\r\n },\r\n _markSpanningCell: function(itemCell) {\r\n this._loopOverSpanning(itemCell.location, (function(cell) {\r\n extend(cell, {\r\n item: itemCell.item,\r\n spanningCell: itemCell\r\n })\r\n }))\r\n },\r\n _linkNodeToItem: function() {\r\n each(this._itemElements(), (function(_, itemNode) {\r\n var $item = $(itemNode);\r\n var item = $item.data(BOX_ITEM_DATA_KEY);\r\n if (!item.box) {\r\n item.node = $item.children()\r\n }\r\n }))\r\n },\r\n _layoutItems: function() {\r\n var rowsCount = this._grid.length;\r\n var colsCount = rowsCount && this._grid[0].length;\r\n if (!rowsCount && !colsCount) {\r\n return\r\n }\r\n var result = this._layoutBlock({\r\n direction: \"col\",\r\n row: {\r\n start: 0,\r\n end: rowsCount - 1\r\n },\r\n col: {\r\n start: 0,\r\n end: colsCount - 1\r\n }\r\n });\r\n var rootBox = this._prepareBoxConfig(result.box || {\r\n direction: \"row\",\r\n items: [extend(result, {\r\n ratio: 1\r\n })]\r\n });\r\n extend(rootBox, this._rootBoxConfig(rootBox.items));\r\n this._$root = $(\"
\").appendTo(this._itemContainer());\r\n this._createComponent(this._$root, Box, rootBox)\r\n },\r\n _rootBoxConfig: function(items) {\r\n var rootItems = each(items, function(index, item) {\r\n this._needApplyAutoBaseSize(item) && extend(item, {\r\n baseSize: \"auto\"\r\n })\r\n }.bind(this));\r\n return extend({\r\n width: \"100%\",\r\n height: \"100%\",\r\n items: rootItems,\r\n itemTemplate: this._getTemplateByOption(\"itemTemplate\"),\r\n itemHoldTimeout: this.option(\"itemHoldTimeout\"),\r\n onItemHold: this._createActionByOption(\"onItemHold\"),\r\n onItemClick: this._createActionByOption(\"onItemClick\"),\r\n onItemContextMenu: this._createActionByOption(\"onItemContextMenu\"),\r\n onItemRendered: this._createActionByOption(\"onItemRendered\")\r\n }, {\r\n _layoutStrategy: this.option(\"_layoutStrategy\")\r\n })\r\n },\r\n _needApplyAutoBaseSize: function(item) {\r\n return !item.baseSize && (!item.minSize || \"auto\" === item.minSize) && (!item.maxSize || \"auto\" === item.maxSize)\r\n },\r\n _prepareBoxConfig: function(config) {\r\n return extend(config || {}, {\r\n crossAlign: \"stretch\",\r\n onItemStateChanged: this.option(\"onItemStateChanged\")\r\n })\r\n },\r\n _layoutBlock: function(options) {\r\n if (this._isSingleItem(options)) {\r\n return this._itemByCell(options.row.start, options.col.start)\r\n }\r\n return this._layoutDirection(options)\r\n },\r\n _isSingleItem: function(options) {\r\n var firstCellLocation = this._grid[options.row.start][options.col.start].location;\r\n var isItemRowSpanned = options.row.end - options.row.start === firstCellLocation.rowspan - 1;\r\n var isItemColSpanned = options.col.end - options.col.start === firstCellLocation.colspan - 1;\r\n return isItemRowSpanned && isItemColSpanned\r\n },\r\n _itemByCell: function(rowIndex, colIndex) {\r\n var itemCell = this._grid[rowIndex][colIndex];\r\n return itemCell.spanningCell ? null : itemCell.item\r\n },\r\n _layoutDirection: function(options) {\r\n var items = [];\r\n var direction = options.direction;\r\n var crossDirection = this._crossDirection(direction);\r\n var block;\r\n while (block = this._nextBlock(options)) {\r\n if (this._isBlockIndivisible(options.prevBlockOptions, block)) {\r\n throw errors.Error(\"E1025\")\r\n }\r\n var item = this._layoutBlock({\r\n direction: crossDirection,\r\n row: block.row,\r\n col: block.col,\r\n prevBlockOptions: options\r\n });\r\n if (item) {\r\n extend(item, this._blockSize(block, crossDirection));\r\n items.push(item)\r\n }\r\n options[crossDirection].start = block[crossDirection].end + 1\r\n }\r\n return {\r\n box: this._prepareBoxConfig({\r\n direction: direction,\r\n items: items\r\n })\r\n }\r\n },\r\n _isBlockIndivisible: function(options, block) {\r\n return options && options.col.start === block.col.start && options.col.end === block.col.end && options.row.start === block.row.start && options.row.end === block.row.end\r\n },\r\n _crossDirection: function(direction) {\r\n return \"col\" === direction ? \"row\" : \"col\"\r\n },\r\n _nextBlock: function(options) {\r\n var direction = options.direction;\r\n var crossDirection = this._crossDirection(direction);\r\n var startIndex = options[direction].start;\r\n var endIndex = options[direction].end;\r\n var crossStartIndex = options[crossDirection].start;\r\n if (crossStartIndex > options[crossDirection].end) {\r\n return null\r\n }\r\n var crossSpan = 1;\r\n for (var crossIndex = crossStartIndex; crossIndex < crossStartIndex + crossSpan; crossIndex++) {\r\n var lineCrossSpan = 1;\r\n for (var index = startIndex; index <= endIndex; index++) {\r\n var cell = this._cellByDirection(direction, index, crossIndex);\r\n lineCrossSpan = Math.max(lineCrossSpan, cell.location[crossDirection + \"span\"])\r\n }\r\n var lineCrossEndIndex = crossIndex + lineCrossSpan;\r\n var crossEndIndex = crossStartIndex + crossSpan;\r\n if (lineCrossEndIndex > crossEndIndex) {\r\n crossSpan += lineCrossEndIndex - crossEndIndex\r\n }\r\n }\r\n var result = {};\r\n result[direction] = {\r\n start: startIndex,\r\n end: endIndex\r\n };\r\n result[crossDirection] = {\r\n start: crossStartIndex,\r\n end: crossStartIndex + crossSpan - 1\r\n };\r\n return result\r\n },\r\n _cellByDirection: function(direction, index, crossIndex) {\r\n return \"col\" === direction ? this._grid[crossIndex][index] : this._grid[index][crossIndex]\r\n },\r\n _blockSize: function(block, direction) {\r\n var defaultMinSize = \"row\" === direction ? \"auto\" : 0;\r\n var sizeConfigs = \"row\" === direction ? this._rows : this._cols;\r\n var result = extend(this._createDefaultSizeConfig(), {\r\n ratio: 0\r\n });\r\n for (var index = block[direction].start; index <= block[direction].end; index++) {\r\n var sizeConfig = sizeConfigs[index];\r\n result.ratio += sizeConfig.ratio;\r\n result.baseSize += sizeConfig.baseSize;\r\n result.minSize += sizeConfig.minSize;\r\n result.maxSize += sizeConfig.maxSize;\r\n if (isDefined(sizeConfig.shrink)) {\r\n result.shrink = sizeConfig.shrink\r\n }\r\n }\r\n result.minSize = result.minSize ? result.minSize : defaultMinSize;\r\n result.maxSize = result.maxSize ? result.maxSize : \"auto\";\r\n this._isSingleColumnScreen() && (result.baseSize = \"auto\");\r\n return result\r\n },\r\n _update: function(forceRemoveRoot) {\r\n var $existingRoot = this._$root;\r\n this._renderItems();\r\n if ($existingRoot) {\r\n if (forceRemoveRoot) {\r\n $existingRoot.remove()\r\n } else {\r\n $existingRoot.detach();\r\n this._saveAssistantRoot($existingRoot)\r\n }\r\n }\r\n this._layoutChangedAction();\r\n this._updateRootBox()\r\n },\r\n _saveAssistantRoot: function($root) {\r\n this._assistantRoots = this._assistantRoots || [];\r\n this._assistantRoots.push($root)\r\n },\r\n _dispose: function() {\r\n clearTimeout(this._updateTimer);\r\n this._clearItemNodeTemplates();\r\n this._cleanUnusedRoots();\r\n this.callBase.apply(this, arguments)\r\n },\r\n _cleanUnusedRoots: function() {\r\n if (!this._assistantRoots) {\r\n return\r\n }\r\n each(this._assistantRoots, (function(_, item) {\r\n $(item).remove()\r\n }))\r\n },\r\n _clearItemNodeTemplates: function() {\r\n each(this.option(\"items\"), (function() {\r\n delete this.node\r\n }))\r\n },\r\n _toggleVisibility: function(visible) {\r\n this.callBase(visible);\r\n if (visible) {\r\n this._updateRootBox()\r\n }\r\n },\r\n _attachClickEvent: noop,\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"rows\":\r\n case \"cols\":\r\n case \"screenByWidth\":\r\n case \"_layoutStrategy\":\r\n case \"singleColumnScreen\":\r\n this._clearItemNodeTemplates();\r\n this._invalidate();\r\n break;\r\n case \"width\":\r\n case \"height\":\r\n this.callBase(args);\r\n this._update();\r\n break;\r\n case \"onLayoutChanged\":\r\n this._initLayoutChangedAction();\r\n break;\r\n case \"itemTemplate\":\r\n this._clearItemNodeTemplates();\r\n this.callBase(args);\r\n break;\r\n case \"currentScreenFactor\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _dimensionChanged: function() {\r\n if (this._getCurrentScreen() !== this.option(\"currentScreenFactor\")) {\r\n this._update()\r\n }\r\n },\r\n repaint: function() {\r\n this._update()\r\n }\r\n});\r\nregisterComponent(\"dxResponsiveBox\", ResponsiveBox);\r\nexport default ResponsiveBox;\r\n","/**\r\n * DevExtreme (esm/ui/form/constants.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var WIDGET_CLASS = \"dx-widget\";\r\nexport var FORM_CLASS = \"dx-form\";\r\nexport var FORM_GROUP_CLASS = \"dx-form-group\";\r\nexport var FORM_GROUP_CAPTION_CLASS = \"dx-form-group-caption\";\r\nexport var FORM_FIELD_ITEM_COL_CLASS = \"dx-col-\";\r\nexport var FIELD_ITEM_CLASS = \"dx-field-item\";\r\nexport var LAYOUT_MANAGER_ONE_COLUMN = \"dx-layout-manager-one-col\";\r\nexport var FIELD_ITEM_LABEL_CONTENT_CLASS = \"dx-field-item-label-content\";\r\nexport var FORM_LAYOUT_MANAGER_CLASS = \"dx-layout-manager\";\r\nexport var FIELD_ITEM_LABEL_CLASS = \"dx-field-item-label\";\r\nexport var FIELD_ITEM_CONTENT_CLASS = \"dx-field-item-content\";\r\nexport var SINGLE_COLUMN_ITEM_CONTENT = \"dx-single-column-item-content\";\r\nexport var ROOT_SIMPLE_ITEM_CLASS = \"dx-root-simple-item\";\r\nexport var FORM_GROUP_CONTENT_CLASS = \"dx-form-group-content\";\r\nexport var FIELD_ITEM_CONTENT_HAS_GROUP_CLASS = \"dx-field-item-has-group\";\r\nexport var FIELD_ITEM_CONTENT_HAS_TABS_CLASS = \"dx-field-item-has-tabs\";\r\nexport var FORM_GROUP_WITH_CAPTION_CLASS = \"dx-form-group-with-caption\";\r\nexport var FIELD_ITEM_TAB_CLASS = \"dx-field-item-tab\";\r\nexport var GROUP_COL_COUNT_CLASS = \"dx-group-colcount-\";\r\nexport var GROUP_COL_COUNT_ATTR = \"group-col-count\";\r\nexport var FORM_VALIDATION_SUMMARY = \"dx-form-validation-summary\";\r\nexport var FORM_UNDERLINED_CLASS = \"dx-form-styling-mode-underlined\";\r\nexport var SIMPLE_ITEM_TYPE = \"simple\";\r\n","/**\r\n * DevExtreme (esm/ui/validation/default_adapter.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../core/class\";\r\nvar DefaultAdapter = Class.inherit({\r\n ctor(editor, validator) {\r\n this.editor = editor;\r\n this.validator = validator;\r\n this.validationRequestsCallbacks = [];\r\n var handler = args => {\r\n this.validationRequestsCallbacks.forEach(item => item(args))\r\n };\r\n editor.validationRequest.add(handler);\r\n editor.on(\"disposing\", (function() {\r\n editor.validationRequest.remove(handler)\r\n }))\r\n },\r\n getValue() {\r\n return this.editor.option(\"value\")\r\n },\r\n getCurrentValidationError() {\r\n return this.editor.option(\"validationError\")\r\n },\r\n bypass() {\r\n return this.editor.option(\"disabled\")\r\n },\r\n applyValidationResults(params) {\r\n this.editor.option({\r\n validationErrors: params.brokenRules,\r\n validationStatus: params.status\r\n })\r\n },\r\n reset() {\r\n this.editor.reset()\r\n },\r\n focus() {\r\n this.editor.focus()\r\n }\r\n});\r\nexport default DefaultAdapter;\r\n","/**\r\n * DevExtreme (esm/ui/validator.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n data as elementData\r\n} from \"../core/element_data\";\r\nimport Callbacks from \"../core/utils/callbacks\";\r\nimport errors from \"./widget/ui.errors\";\r\nimport DOMComponent from \"../core/dom_component\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n map\r\n} from \"../core/utils/iterator\";\r\nimport ValidationEngine from \"./validation_engine\";\r\nimport DefaultAdapter from \"./validation/default_adapter\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport Guid from \"../core/guid\";\r\nvar VALIDATOR_CLASS = \"dx-validator\";\r\nvar VALIDATION_STATUS_VALID = \"valid\";\r\nvar VALIDATION_STATUS_INVALID = \"invalid\";\r\nvar VALIDATION_STATUS_PENDING = \"pending\";\r\nvar Validator = DOMComponent.inherit({\r\n _initOptions: function(options) {\r\n this.callBase.apply(this, arguments);\r\n this.option(ValidationEngine.initValidationOptions(options))\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n validationRules: []\r\n })\r\n },\r\n _init() {\r\n this.callBase();\r\n this._initGroupRegistration();\r\n this.focused = Callbacks();\r\n this._initAdapter();\r\n this._validationInfo = {\r\n result: null,\r\n deferred: null,\r\n skipValidation: false\r\n }\r\n },\r\n _initGroupRegistration() {\r\n var group = this._findGroup();\r\n if (!this._groupWasInit) {\r\n this.on(\"disposing\", (function(args) {\r\n ValidationEngine.removeRegisteredValidator(args.component._validationGroup, args.component)\r\n }))\r\n }\r\n if (!this._groupWasInit || this._validationGroup !== group) {\r\n ValidationEngine.removeRegisteredValidator(this._validationGroup, this);\r\n this._groupWasInit = true;\r\n this._validationGroup = group;\r\n ValidationEngine.registerValidatorInGroup(group, this)\r\n }\r\n },\r\n _setOptionsByReference() {\r\n this.callBase();\r\n extend(this._optionsByReference, {\r\n validationGroup: true\r\n })\r\n },\r\n _getEditor() {\r\n var element = this.$element()[0];\r\n return elementData(element, \"dx-validation-target\")\r\n },\r\n _initAdapter() {\r\n var dxStandardEditor = this._getEditor();\r\n var adapter = this.option(\"adapter\");\r\n if (!adapter) {\r\n if (dxStandardEditor) {\r\n adapter = new DefaultAdapter(dxStandardEditor, this);\r\n adapter.validationRequestsCallbacks.push(args => {\r\n if (this._validationInfo.skipValidation) {\r\n return\r\n }\r\n this.validate(args)\r\n });\r\n this.option(\"adapter\", adapter);\r\n return\r\n }\r\n throw errors.Error(\"E0120\")\r\n }\r\n var callbacks = adapter.validationRequestsCallbacks;\r\n if (callbacks) {\r\n callbacks.push(args => {\r\n this.validate(args)\r\n })\r\n }\r\n },\r\n _toggleRTLDirection(isRtl) {\r\n var _this$option$editor$o, _this$option, _this$option$editor;\r\n var rtlEnabled = null !== (_this$option$editor$o = null === (_this$option = this.option(\"adapter\")) || void 0 === _this$option ? void 0 : null === (_this$option$editor = _this$option.editor) || void 0 === _this$option$editor ? void 0 : _this$option$editor.option(\"rtlEnabled\")) && void 0 !== _this$option$editor$o ? _this$option$editor$o : isRtl;\r\n this.callBase(rtlEnabled)\r\n },\r\n _initMarkup() {\r\n this.$element().addClass(VALIDATOR_CLASS);\r\n this.callBase()\r\n },\r\n _render() {\r\n this.callBase();\r\n this._toggleAccessibilityAttributes()\r\n },\r\n _toggleAccessibilityAttributes() {\r\n var dxStandardEditor = this._getEditor();\r\n if (dxStandardEditor) {\r\n var rules = this.option(\"validationRules\") || [];\r\n var isRequired = rules.some(_ref => {\r\n var {\r\n type: type\r\n } = _ref;\r\n return \"required\" === type\r\n }) || null;\r\n if (dxStandardEditor.isInitialized()) {\r\n dxStandardEditor.setAria(\"required\", isRequired)\r\n }\r\n dxStandardEditor.option(\"_onMarkupRendered\", () => {\r\n dxStandardEditor.setAria(\"required\", isRequired)\r\n })\r\n }\r\n },\r\n _visibilityChanged(visible) {\r\n if (visible) {\r\n this._initGroupRegistration()\r\n }\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"validationGroup\":\r\n this._initGroupRegistration();\r\n return;\r\n case \"validationRules\":\r\n this._resetValidationRules();\r\n this._toggleAccessibilityAttributes();\r\n void 0 !== this.option(\"isValid\") && this.validate();\r\n return;\r\n case \"adapter\":\r\n this._initAdapter();\r\n break;\r\n case \"isValid\":\r\n case \"validationStatus\":\r\n this.option(ValidationEngine.synchronizeValidationOptions(args, this.option()));\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _getValidationRules() {\r\n if (!this._validationRules) {\r\n this._validationRules = map(this.option(\"validationRules\"), (rule, index) => extend({}, rule, {\r\n validator: this,\r\n index: index\r\n }))\r\n }\r\n return this._validationRules\r\n },\r\n _findGroup() {\r\n var $element = this.$element();\r\n return this.option(\"validationGroup\") || ValidationEngine.findGroup($element, this._modelByElement($element))\r\n },\r\n _resetValidationRules() {\r\n delete this._validationRules\r\n },\r\n validate(args) {\r\n var adapter = this.option(\"adapter\");\r\n var name = this.option(\"name\");\r\n var bypass = adapter.bypass && adapter.bypass();\r\n var value = args && void 0 !== args.value ? args.value : adapter.getValue();\r\n var currentError = adapter.getCurrentValidationError && adapter.getCurrentValidationError();\r\n var rules = this._getValidationRules();\r\n var currentResult = this._validationInfo && this._validationInfo.result;\r\n if (currentResult && currentResult.status === VALIDATION_STATUS_PENDING && currentResult.value === value) {\r\n return extend({}, currentResult)\r\n }\r\n var result;\r\n if (bypass) {\r\n result = {\r\n isValid: true,\r\n status: VALIDATION_STATUS_VALID\r\n }\r\n } else if (currentError && currentError.editorSpecific) {\r\n currentError.validator = this;\r\n result = {\r\n isValid: false,\r\n status: VALIDATION_STATUS_INVALID,\r\n brokenRule: currentError,\r\n brokenRules: [currentError]\r\n }\r\n } else {\r\n result = ValidationEngine.validate(value, rules, name)\r\n }\r\n result.id = (new Guid).toString();\r\n this._applyValidationResult(result, adapter);\r\n result.complete && result.complete.then(res => {\r\n if (res.id === this._validationInfo.result.id) {\r\n this._applyValidationResult(res, adapter)\r\n }\r\n });\r\n return extend({}, this._validationInfo.result)\r\n },\r\n reset() {\r\n var adapter = this.option(\"adapter\");\r\n var result = {\r\n id: null,\r\n isValid: true,\r\n brokenRule: null,\r\n brokenRules: null,\r\n pendingRules: null,\r\n status: VALIDATION_STATUS_VALID,\r\n complete: null\r\n };\r\n this._validationInfo.skipValidation = true;\r\n adapter.reset();\r\n this._validationInfo.skipValidation = false;\r\n this._resetValidationRules();\r\n this._applyValidationResult(result, adapter)\r\n },\r\n _updateValidationResult(result) {\r\n if (!this._validationInfo.result || this._validationInfo.result.id !== result.id) {\r\n var complete = this._validationInfo.deferred && this._validationInfo.result.complete;\r\n this._validationInfo.result = extend({}, result, {\r\n complete: complete\r\n })\r\n } else {\r\n for (var prop in result) {\r\n if (\"id\" !== prop && \"complete\" !== prop) {\r\n this._validationInfo.result[prop] = result[prop]\r\n }\r\n }\r\n }\r\n },\r\n _applyValidationResult(result, adapter) {\r\n var validatedAction = this._createActionByOption(\"onValidated\", {\r\n excludeValidators: [\"readOnly\"]\r\n });\r\n result.validator = this;\r\n this._updateValidationResult(result);\r\n adapter.applyValidationResults && adapter.applyValidationResults(this._validationInfo.result);\r\n this.option({\r\n validationStatus: this._validationInfo.result.status\r\n });\r\n if (this._validationInfo.result.status === VALIDATION_STATUS_PENDING) {\r\n if (!this._validationInfo.deferred) {\r\n this._validationInfo.deferred = new Deferred;\r\n this._validationInfo.result.complete = this._validationInfo.deferred.promise()\r\n }\r\n this._eventsStrategy.fireEvent(\"validating\", [this._validationInfo.result]);\r\n return\r\n }\r\n if (this._validationInfo.result.status !== VALIDATION_STATUS_PENDING) {\r\n validatedAction(result);\r\n if (this._validationInfo.deferred) {\r\n this._validationInfo.deferred.resolve(result);\r\n this._validationInfo.deferred = null\r\n }\r\n }\r\n },\r\n focus() {\r\n var adapter = this.option(\"adapter\");\r\n adapter && adapter.focus && adapter.focus()\r\n },\r\n _useTemplates: function() {\r\n return false\r\n }\r\n});\r\nregisterComponent(\"dxValidator\", Validator);\r\nexport default Validator;\r\n","/**\r\n * DevExtreme (esm/ui/form/ui.form.layout_manager.utils.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n captionize\r\n} from \"../../core/utils/inflector\";\r\nimport Guid from \"../../core/guid\";\r\nimport {\r\n SIMPLE_ITEM_TYPE\r\n} from \"./constants\";\r\nvar EDITORS_WITH_ARRAY_VALUE = [\"dxTagBox\", \"dxRangeSlider\"];\r\nexport var EDITORS_WITHOUT_LABELS = [\"dxCalendar\", \"dxCheckBox\", \"dxHtmlEditor\", \"dxRadioGroup\", \"dxRangeSlider\", \"dxSlider\", \"dxSwitch\"];\r\nexport function convertToRenderFieldItemOptions(_ref) {\r\n var {\r\n $parent: $parent,\r\n rootElementCssClassList: rootElementCssClassList,\r\n formOrLayoutManager: formOrLayoutManager,\r\n createComponentCallback: createComponentCallback,\r\n useFlexLayout: useFlexLayout,\r\n item: item,\r\n template: template,\r\n name: name,\r\n formLabelLocation: formLabelLocation,\r\n requiredMessageTemplate: requiredMessageTemplate,\r\n validationGroup: validationGroup,\r\n editorValue: editorValue,\r\n canAssignUndefinedValueToEditor: canAssignUndefinedValueToEditor,\r\n editorValidationBoundary: editorValidationBoundary,\r\n editorStylingMode: editorStylingMode,\r\n showColonAfterLabel: showColonAfterLabel,\r\n managerLabelLocation: managerLabelLocation,\r\n itemId: itemId,\r\n managerMarkOptions: managerMarkOptions,\r\n labelMode: labelMode\r\n } = _ref;\r\n var isRequired = isDefined(item.isRequired) ? item.isRequired : !!_hasRequiredRuleInSet(item.validationRules);\r\n var isSimpleItem = item.itemType === SIMPLE_ITEM_TYPE;\r\n var helpID = item.helpText ? \"dx-\" + new Guid : null;\r\n var labelOptions = _convertToLabelOptions({\r\n item: item,\r\n id: itemId,\r\n isRequired: isRequired,\r\n managerMarkOptions: managerMarkOptions,\r\n showColonAfterLabel: showColonAfterLabel,\r\n labelLocation: managerLabelLocation,\r\n formLabelMode: labelMode\r\n });\r\n var needRenderLabel = labelOptions.visible && labelOptions.text;\r\n var {\r\n location: labelLocation,\r\n labelID: labelID\r\n } = labelOptions;\r\n var labelNeedBaselineAlign = \"top\" !== labelLocation && (!!item.helpText && !useFlexLayout || [\"dxTextArea\", \"dxRadioGroup\", \"dxCalendar\", \"dxHtmlEditor\"].includes(item.editorType));\r\n var editorOptions = _convertToEditorOptions({\r\n editorType: item.editorType,\r\n editorValue: editorValue,\r\n defaultEditorName: item.dataField,\r\n canAssignUndefinedValueToEditor: canAssignUndefinedValueToEditor,\r\n externalEditorOptions: item.editorOptions,\r\n editorInputId: itemId,\r\n editorValidationBoundary: editorValidationBoundary,\r\n editorStylingMode: editorStylingMode,\r\n formLabelMode: labelMode,\r\n labelText: labelOptions.textWithoutColon,\r\n labelMark: labelOptions.markOptions.showRequiredMark ? String.fromCharCode(160) + labelOptions.markOptions.requiredMark : \"\"\r\n });\r\n var needRenderOptionalMarkAsHelpText = labelOptions.markOptions.showOptionalMark && !labelOptions.visible && \"hidden\" !== editorOptions.labelMode && !isDefined(item.helpText);\r\n var helpText = needRenderOptionalMarkAsHelpText ? labelOptions.markOptions.optionalMark : item.helpText;\r\n return {\r\n $parent: $parent,\r\n rootElementCssClassList: rootElementCssClassList,\r\n formOrLayoutManager: formOrLayoutManager,\r\n createComponentCallback: createComponentCallback,\r\n useFlexLayout: useFlexLayout,\r\n labelOptions: labelOptions,\r\n labelNeedBaselineAlign: labelNeedBaselineAlign,\r\n labelLocation: labelLocation,\r\n needRenderLabel: needRenderLabel,\r\n item: item,\r\n isSimpleItem: isSimpleItem,\r\n isRequired: isRequired,\r\n template: template,\r\n helpID: helpID,\r\n labelID: labelID,\r\n name: name,\r\n helpText: helpText,\r\n formLabelLocation: formLabelLocation,\r\n requiredMessageTemplate: requiredMessageTemplate,\r\n validationGroup: validationGroup,\r\n editorOptions: editorOptions\r\n }\r\n}\r\nexport function getLabelMarkText(_ref2) {\r\n var {\r\n showRequiredMark: showRequiredMark,\r\n requiredMark: requiredMark,\r\n showOptionalMark: showOptionalMark,\r\n optionalMark: optionalMark\r\n } = _ref2;\r\n if (!showRequiredMark && !showOptionalMark) {\r\n return \"\"\r\n }\r\n return String.fromCharCode(160) + (showRequiredMark ? requiredMark : optionalMark)\r\n}\r\nexport function convertToLabelMarkOptions(_ref3, isRequired) {\r\n var {\r\n showRequiredMark: showRequiredMark,\r\n requiredMark: requiredMark,\r\n showOptionalMark: showOptionalMark,\r\n optionalMark: optionalMark\r\n } = _ref3;\r\n return {\r\n showRequiredMark: showRequiredMark && isRequired,\r\n requiredMark: requiredMark,\r\n showOptionalMark: showOptionalMark && !isRequired,\r\n optionalMark: optionalMark\r\n }\r\n}\r\n\r\nfunction _convertToEditorOptions(_ref4) {\r\n var {\r\n editorType: editorType,\r\n defaultEditorName: defaultEditorName,\r\n editorValue: editorValue,\r\n canAssignUndefinedValueToEditor: canAssignUndefinedValueToEditor,\r\n externalEditorOptions: externalEditorOptions,\r\n editorInputId: editorInputId,\r\n editorValidationBoundary: editorValidationBoundary,\r\n editorStylingMode: editorStylingMode,\r\n formLabelMode: formLabelMode,\r\n labelText: labelText,\r\n labelMark: labelMark\r\n } = _ref4;\r\n var editorOptionsWithValue = {};\r\n if (void 0 !== editorValue || canAssignUndefinedValueToEditor) {\r\n editorOptionsWithValue.value = editorValue\r\n }\r\n if (-1 !== EDITORS_WITH_ARRAY_VALUE.indexOf(editorType)) {\r\n editorOptionsWithValue.value = editorOptionsWithValue.value || []\r\n }\r\n var labelMode = null === externalEditorOptions || void 0 === externalEditorOptions ? void 0 : externalEditorOptions.labelMode;\r\n if (!isDefined(labelMode)) {\r\n labelMode = \"outside\" === formLabelMode ? \"hidden\" : formLabelMode\r\n }\r\n var stylingMode = (null === externalEditorOptions || void 0 === externalEditorOptions ? void 0 : externalEditorOptions.stylingMode) || editorStylingMode;\r\n var result = extend(true, editorOptionsWithValue, externalEditorOptions, {\r\n inputAttr: {\r\n id: editorInputId\r\n },\r\n validationBoundary: editorValidationBoundary,\r\n stylingMode: stylingMode,\r\n label: labelText,\r\n labelMode: labelMode,\r\n labelMark: labelMark\r\n });\r\n if (externalEditorOptions) {\r\n if (result.dataSource) {\r\n result.dataSource = externalEditorOptions.dataSource\r\n }\r\n if (result.items) {\r\n result.items = externalEditorOptions.items\r\n }\r\n }\r\n if (defaultEditorName && !result.name) {\r\n result.name = defaultEditorName\r\n }\r\n return result\r\n}\r\n\r\nfunction _hasRequiredRuleInSet(rules) {\r\n var hasRequiredRule;\r\n if (rules && rules.length) {\r\n each(rules, (function(index, rule) {\r\n if (\"required\" === rule.type) {\r\n hasRequiredRule = true;\r\n return false\r\n }\r\n }))\r\n }\r\n return hasRequiredRule\r\n}\r\n\r\nfunction _convertToLabelOptions(_ref5) {\r\n var {\r\n item: item,\r\n id: id,\r\n isRequired: isRequired,\r\n managerMarkOptions: managerMarkOptions,\r\n showColonAfterLabel: showColonAfterLabel,\r\n labelLocation: labelLocation,\r\n formLabelMode: formLabelMode\r\n } = _ref5;\r\n var isEditorWithoutLabels = EDITORS_WITHOUT_LABELS.includes(item.editorType);\r\n var labelOptions = extend({\r\n showColon: showColonAfterLabel,\r\n location: labelLocation,\r\n id: id,\r\n visible: \"outside\" === formLabelMode || isEditorWithoutLabels && \"hidden\" !== formLabelMode,\r\n isRequired: isRequired\r\n }, item ? item.label : {}, {\r\n markOptions: convertToLabelMarkOptions(managerMarkOptions, isRequired)\r\n });\r\n if ([\"dxRadioGroup\", \"dxCheckBox\", \"dxLookup\", \"dxSlider\", \"dxRangeSlider\", \"dxSwitch\", \"dxHtmlEditor\"].includes(item.editorType)) {\r\n labelOptions.labelID = \"dx-label-\".concat(new Guid)\r\n }\r\n if (!labelOptions.text && item.dataField) {\r\n labelOptions.text = captionize(item.dataField)\r\n }\r\n if (labelOptions.text) {\r\n labelOptions.textWithoutColon = labelOptions.text;\r\n labelOptions.text += labelOptions.showColon ? \":\" : \"\"\r\n }\r\n return labelOptions\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/form/components/label.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"$FIELD_ITEM_LABEL_CONTENT_CLASS\"];\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n isEmpty\r\n} from \"../../../core/utils/string\";\r\nimport {\r\n getLabelMarkText\r\n} from \"../ui.form.layout_manager.utils\";\r\nimport {\r\n WIDGET_CLASS,\r\n FIELD_ITEM_LABEL_CONTENT_CLASS,\r\n FIELD_ITEM_LABEL_CLASS\r\n} from \"../constants\";\r\nexport var GET_LABEL_WIDTH_BY_TEXT_CLASS = \"dx-layout-manager-hidden-label\";\r\nexport var FIELD_ITEM_REQUIRED_MARK_CLASS = \"dx-field-item-required-mark\";\r\nexport var FIELD_ITEM_LABEL_LOCATION_CLASS = \"dx-field-item-label-location-\";\r\nexport var FIELD_ITEM_OPTIONAL_MARK_CLASS = \"dx-field-item-optional-mark\";\r\nexport var FIELD_ITEM_LABEL_TEXT_CLASS = \"dx-field-item-label-text\";\r\nexport function renderLabel(_ref) {\r\n var {\r\n text: text,\r\n id: id,\r\n location: location,\r\n alignment: alignment,\r\n labelID: labelID = null,\r\n markOptions: markOptions = {}\r\n } = _ref;\r\n if (!isDefined(text) || text.length <= 0) {\r\n return null\r\n }\r\n return $(\"