').addClass('terminal-output').attr('role', 'log')\n .appendTo(wrapper);\n self.addClass('terminal');\n // before login event\n if (settings.login && is_function(settings.onBeforeLogin)) {\n try {\n if (settings.onBeforeLogin.call(self, self) === false) {\n autologin = false;\n }\n } catch (e) {\n settings.onBeforeLogin = $.noop;\n display_exception(e, 'onBeforeLogin');\n }\n }\n // create json-rpc authentication function\n var base_interpreter;\n if (typeof init_interpreter === 'string') {\n base_interpreter = init_interpreter;\n } else if (init_interpreter instanceof Array) {\n // first JSON-RPC\n for (var i = 0, len = init_interpreter.length; i < len; ++i) {\n if (typeof init_interpreter[i] === 'string') {\n base_interpreter = init_interpreter[i];\n break;\n }\n }\n }\n var global_login_fn;\n if (is_function(settings.login)) {\n global_login_fn = settings.login;\n } else if (base_interpreter &&\n (typeof settings.login === 'string' || settings.login === true)) {\n global_login_fn = make_json_rpc_login(base_interpreter, settings.login);\n }\n terminals.append(self);\n function focus_terminal() {\n if (old_enabled) {\n self.focus();\n }\n }\n function blur_terminal() {\n old_enabled = enabled;\n self.disable().find('.cmd textarea').trigger('blur', [true]);\n }\n // paste event is not testable in node\n // istanbul ignore next\n function paste_event(e) {\n e = e.originalEvent;\n // we don't care about browser that don't support clipboard data\n // those browser simple will not have this feature normal paste\n // is cross-browser and it's handled by cmd plugin\n function is_type(item, type) {\n return item.type.indexOf(type) !== -1;\n }\n if (e.clipboardData) {\n if (self.enabled()) {\n var items = e.clipboardData.items;\n if (items) {\n for (var i = 0; i < items.length; i++) {\n if (is_type(items[i], 'image') && settings.pasteImage) {\n var blob = items[i].getAsFile();\n var URL = window.URL || window.webkitURL;\n var source = URL.createObjectURL(blob);\n self.echo('
', {raw: true});\n } else if (is_type(items[i], 'text/plain')) {\n items[i].getAsString(self.insert);\n }\n }\n } else if (e.clipboardData.getData) {\n var text = e.clipboardData.getData('text/plain');\n self.insert(text);\n }\n return false;\n }\n }\n }\n $(document).on('paste.terminal_' + self.id(), paste_event);\n var new_keymap = $.extend(\n {},\n keymap,\n $.omap(settings.keymap || {}, function(key, fn) {\n if (!keymap[key]) {\n return fn.bind(self);\n }\n return function(e, original) {\n // new keymap function will get default as 2nd argument\n return fn.call(self, e, function() {\n return keymap[key](e, original);\n });\n };\n })\n );\n make_interpreter(init_interpreter, settings.login, function(itrp) {\n if (settings.completion && typeof settings.completion !== 'boolean' ||\n !settings.completion) {\n // overwrite interpreter completion by global setting #224\n // we use string to indicate that it need to be taken from settings\n // so we are able to change it using option API method\n itrp.completion = 'settings';\n }\n interpreters = new Stack($.extend({}, settings.extra, {\n name: settings.name,\n prompt: settings.prompt,\n keypress: settings.keypress,\n keydown: settings.keydown,\n resize: settings.onResize,\n greetings: settings.greetings,\n mousewheel: settings.mousewheel,\n history: settings.history,\n keymap: new_keymap\n }, itrp));\n // CREATE COMMAND LINE\n command_line = $('
').appendTo(wrapper).cmd({\n prompt: settings.prompt,\n history: settings.memory ? 'memory' : settings.history,\n historyFilter: settings.historyFilter,\n historySize: settings.historySize,\n caseSensitiveSearch: settings.caseSensitiveSearch,\n width: '100%',\n enabled: false,\n char_width: char_size.width,\n keydown: key_down,\n keymap: new_keymap,\n clickTimeout: settings.clickTimeout,\n holdTimeout: settings.holdTimeout,\n holdRepeatTimeout: settings.holdRepeatTimeout,\n keypress: key_press,\n tabs: settings.tabs,\n onCommandChange: function(command) {\n if (is_function(settings.onCommandChange)) {\n try {\n settings.onCommandChange.call(self, command, self);\n } catch (e) {\n settings.onCommandChange = $.noop;\n display_exception(e, 'onCommandChange');\n }\n }\n self.scroll_to_bottom();\n },\n commands: commands\n });\n function disable(e) {\n e = e.originalEvent;\n if (e) {\n // e.terget is body when click outside of context menu to close it\n // even if you click on terminal\n var node = document.elementFromPoint(e.clientX, e.clientY);\n if (!$(node).closest('.terminal').length && self.enabled()) {\n // we only need to disable when click outside of terminal\n // click on other terminal is handled by focus event\n self.disable();\n }\n }\n }\n self.oneTime(100, function() {\n $(document).bind('click.terminal_' + self.id(), disable).\n bind('contextmenu.terminal_' + self.id(), disable);\n });\n var $win = $(window);\n // cordova application, if keyboard was open and we resume it will be\n // closed so we need to disable terminal so you can enable it with tap\n document.addEventListener(\"resume\", function() {\n self.disable();\n });\n // istanbul ignore next\n if (is_mobile) {\n self.click(function() {\n if (!frozen) {\n if (!self.enabled()) {\n self.focus();\n command_line.enable();\n } else {\n self.disable();\n }\n }\n });\n } else {\n // work weird on mobile\n $win.on('focus.terminal_' + self.id(), focus_terminal).\n on('blur.terminal_' + self.id(), blur_terminal);\n // detect mouse drag\n (function() {\n var count = 0;\n var $target;\n var name = 'click_' + self.id();\n var textarea = self.find('.cmd textarea');\n function click() {\n if ($target.is('.terminal') ||\n $target.is('.terminal-wrapper')) {\n var len = self.get_command().length;\n self.set_position(len);\n } else if ($target.closest('.prompt').length) {\n self.set_position(0);\n }\n if (!textarea.is(':focus')) {\n textarea.focus();\n }\n reset();\n }\n function reset() {\n count = 0;\n $target = null;\n }\n // hack for weird jumping on Chrome/windows #402\n var scroll_top;\n self.find('.cmd textarea').on('focus', function() {\n if (typeof scroll_top !== 'undefined') {\n scroll_object.scrollTop(scroll_top);\n }\n }).on('blur', function() {\n scroll_top = scroll_object.scrollTop();\n });\n self.mousedown(function(e) {\n if (!scrollbar_event(e, fill)) {\n $target = $(e.target);\n }\n }).mouseup(function() {\n if (get_selected_text() === '' && $target) {\n if (++count === 1) {\n if (!frozen) {\n if (!enabled) {\n self.focus();\n } else {\n var timeout = settings.clickTimeout;\n self.oneTime(timeout, name, click);\n return;\n }\n }\n } else {\n self.stopTime(name);\n }\n }\n reset();\n }).dblclick(function() {\n reset();\n self.stopTime(name);\n });\n })();\n (function() {\n var clip = self.find('.cmd textarea');\n self.on('contextmenu.terminal', function(e) {\n if (get_selected_text() === '') {\n if (!$(e.target).is('img,value,audio,object,canvas,a')) {\n if (!self.enabled()) {\n self.enable();\n }\n var offset = command_line.offset();\n clip.css({\n left: e.pageX - offset.left - 20,\n top: e.pageY - offset.top - 20,\n width: '5em',\n height: '4em'\n });\n if (!clip.is(':focus')) {\n clip.focus();\n }\n self.stopTime('textarea');\n self.oneTime(100, 'textarea', function() {\n clip.css({\n left: '',\n top: '',\n width: '',\n height: ''\n });\n });\n self.stopTime('selection');\n self.everyTime(20, 'selection', function() {\n if (clip[0].selection !== clip[0].value) {\n if (get_textarea_selection(clip[0])) {\n clear_textarea_selection(clip[0]);\n select(\n self.find('.terminal-output')[0],\n self.find('.cmd div:last-of-type')[0]\n );\n self.stopTime('selection');\n }\n }\n });\n }\n }\n });\n })();\n }\n self.on('click', 'a', function(e) {\n var $this = $(this);\n if ($this.closest('.exception').length) {\n var href = $this.attr('href');\n if (href.match(/:[0-9]+$/)) { // display line if specified\n e.preventDefault();\n print_line(href);\n }\n }\n // refocus because links have tabindex in case where user want\n // tab change urls, we can ignore this function on click\n if (enabled) {\n self.find('.cmd textarea').focus();\n }\n });\n function calculate_char_size() {\n var width = char_size.width;\n char_size = get_char_size(self);\n if (width !== char_size.width) {\n command_line.option('char_width', char_size.width).refresh();\n }\n }\n resize();\n function resize() {\n if (self.is(':visible')) {\n var width = fill.width();\n var height = fill.height();\n // prevent too many calculations in IE\n if (old_height !== height || old_width !== width) {\n self.resize();\n }\n old_height = height;\n old_width = width;\n }\n }\n function create_resizers() {\n self.resizer('unbind').resizer(resize);\n font_resizer.resizer('unbind').resizer(function() {\n calculate_char_size();\n self.resize();\n });\n }\n if (self.is(':visible')) {\n create_resizers();\n }\n function observe_visibility() {\n if (visibility_observer) {\n if (visibility_observer.unobserve) {\n visibility_observer.unobserve(self[0]);\n } else {\n clearInterval(visibility_observer);\n }\n }\n var was_enabled = self.enabled();\n var visible = self.is(':visible');\n if (visible) {\n create_resizers();\n }\n function visibility_checker() {\n if (self.is(':visible') && !visible) {\n visible = true;\n create_resizers();\n calculate_char_size();\n resize();\n if (was_enabled) {\n self.enable();\n }\n } else if (visible && !self.is(':visible')) {\n visible = false;\n was_enabled = $.terminal.active() === self && self.enabled();\n self.disable();\n }\n }\n if (window.IntersectionObserver) {\n visibility_observer = new IntersectionObserver(visibility_checker, {\n root: document.body\n });\n visibility_observer.observe(self[0]);\n } else {\n visibility_observer = setInterval(visibility_checker, 400);\n }\n }\n var in_dom = !!self.closest('body').length;\n var MutationObsrv = window.MutationObserver || window.WebKitMutationObserver;\n if (MutationObsrv) {\n mutation_observer = new MutationObsrv(function() {\n if (self.closest('body').length) {\n if (!in_dom) {\n self.scroll_to_bottom();\n if (window.IntersectionObserver) {\n observe_visibility();\n }\n resize();\n }\n in_dom = true;\n } else if (in_dom) {\n in_dom = false;\n }\n });\n mutation_observer.observe(document.body, {childList: true});\n }\n if (in_dom) {\n // check if element is in the DOM if not running IntersectionObserver\n // don't make sense\n observe_visibility();\n }\n command_queue.resolve();\n // touch devices need touch event to get virtual keyboard\n if (enabled && self.is(':visible') && !is_mobile) {\n self.focus(undefined, true);\n } else {\n self.disable();\n }\n // -------------------------------------------------------------\n // Run Login\n if (is_function(global_login_fn)) {\n self.login(global_login_fn, true, initialize);\n } else {\n initialize();\n }\n // -------------------------------------------------------------\n // :: helper\n function exec_spec(spec) {\n var terminal = terminals.get()[spec[0]];\n // execute if belong to this terminal\n if (terminal && terminal_id === terminal.id()) {\n if (!spec[2]) {\n defer.resolve();\n return defer.promise();\n } else if (paused) {\n var defer = $.Deferred();\n resume_callbacks.push(function() {\n return terminal.exec(spec[2]).done(function() {\n terminal.save_state(spec[2], true, spec[1]);\n defer.resolve();\n });\n });\n return defer.promise();\n } else {\n return terminal.exec(spec[2]).done(function() {\n terminal.save_state(spec[2], true, spec[1]);\n });\n }\n }\n }\n // exec from hash called in each terminal instance\n if (settings.execHash) {\n if (location.hash) {\n // wait until login is initialized\n setTimeout(function() {\n try {\n var hash = location.hash.replace(/^#/, '');\n // yes no var - local inside terminal\n hash_commands = JSON.parse(decodeURIComponent(hash));\n var i = 0;\n (function recur() {\n var spec = hash_commands[i++];\n if (spec) {\n exec_spec(spec).done(recur);\n } else {\n change_hash = true;\n }\n })();// */\n } catch (e) {\n // invalid json - ignore\n }\n });\n } else {\n change_hash = true;\n }\n } else {\n change_hash = true; // if enabled later\n }\n // change_hash = true; // exec can now change hash\n // -------------------------------------------------------------\n /* istanbul ignore next */\n (function() {\n var shift = false;\n $(document).bind('keydown.terminal_' + self.id(), function(e) {\n if (e.shiftKey) {\n shift = true;\n }\n }).bind('keyup.terminal_' + self.id(), function(e) {\n // in Google Chromium/Linux shiftKey is false\n if (e.shiftKey || e.which === 16) {\n shift = false;\n }\n });\n // this could work without calling scroll on wheel event but we\n // need it for cases where you have mouse wheel work differently\n // like with less command that scroll text\n function mousewheel(event, delta) {\n if (!shift) {\n var interpreter = interpreters.top();\n var ret;\n if (is_function(interpreter.mousewheel)) {\n ret = interpreter.mousewheel(event, delta, self);\n } else if (is_function(settings.mousewheel)) {\n ret = settings.mousewheel(event, delta, self);\n }\n if (have_scrollbar() || ret === false) {\n event.stopPropagation();\n event.preventDefault();\n }\n if (ret === false) {\n return false;\n } else if (ret === true) {\n return;\n }\n if (delta > 0) {\n self.scroll(-40);\n } else {\n self.scroll(40);\n }\n }\n }\n if ($.event.special.mousewheel) {\n // we keep mousewheel plugin just in case\n self.on('mousewheel', mousewheel);\n } else {\n // detection take from:\n // https://developer.mozilla.org/en-US/docs/Web/Events/wheel\n var event;\n var div = document.createElement(\"div\");\n if (\"onwheel\" in div) {\n event = \"wheel\"; // Modern browsers support \"wheel\"\n } else if (document.onmousewheel !== undefined) {\n // Webkit and IE support at least \"mousewheel\"\n event = \"mousewheel\";\n } else {\n // let's assume that remaining browsers are older Firefox\n event = \"DOMMouseScroll\";\n }\n div = null;\n self.on(event, function(e) {\n var delta;\n if (event === 'mousewheel') {\n delta = - 1 / 40 * e.originalEvent.wheelDelta;\n } else {\n delta = e.originalEvent.deltaY || e.originalEvent.detail;\n }\n mousewheel(e, -delta);\n });\n }\n })();\n }); // make_interpreter\n self.data('terminal', self);\n return self;\n }; // terminal plugin\n});\n"]}
\ No newline at end of file
+{"version":3,"sources":["js/jquery.terminal.js"],"names":["ctx","sprintf","cache","hasOwnProperty","arguments","parse","format","call","parse_tree","argv","cursor","tree_length","length","node_type","arg","output","i","k","match","pad","pad_character","pad_length","get_type","push","test","toString","String","fromCharCode","parseInt","toExponential","parseFloat","toFixed","substring","toUpperCase","charAt","str_repeat","join","fmt","_fmt","arg_names","exec","field_list","replacement_field","field_match","vsprintf","_argv","slice","splice","apply","variable","Object","prototype","toLowerCase","input","multiplier","global","window","factory","undefined","root","define","amd","module","exports","jQuery","wcwidth","require","$","debug","str","console","log","DelayQueue","callbacks","Callbacks","resolved","this","resolve","fire","add","fn","omap","o","result","each","v","text_length","map","text","get","reduce","a","b","Clone","clone_object","object","tmp","isArray","clone_array","key","array","is_function","Array","Error","item","bind","clone","localStorage","hasLS","testKey","storage","setItem","removeItem","error","hasCookies","document","cookie","split","e","isLS","wls","n","c","wc","dt","Date","setTime","getTime","toGMTString","rls","rc","nn","ca","indexOf","dls","dc","extend","Storage","set","remove","everyTime","interval","label","times","belay","timer","oneTime","stopTime","guid","regex","powers","ms","cs","ds","s","das","hs","ks","timeParse","value","trim","num","mult","element","counter","isFunction","isNaN","constructor","Number","$timers","$timerID","handler","inProgress","setInterval","timers","ret","lab","clearInterval","_fn","navigator","userAgent","one","els","undef","nativeSplit","compliantExecNpcg","self","separator","limit","flags","ignoreCase","multiline","extended","sticky","lastLastIndex","separator2","lastIndex","lastLength","RegExp","source","index","replace","caret","pos","target","isContentEditable","contentEditable","getSelection","focus","range1","getRangeAt","range2","cloneRange","selectNodeContents","setEnd","endContainer","endOffset","selectionStart","selection","createRange","body","createTextRange","moveToElementText","setEndPoint","range","duplicate","bookmark","getBookmark","moveToBookmark","moveStart","collapse","firstChild","setSelectionRange","select","is","resizer","callback","unbind","$this","iframe","resize_handler","data","has","removeData","ResizeObserver","observer","unobserve","find","contentWindow","off","first","observe","on","addClass","appendTo","a11y_hide","attr","role","aria-hidden","excepctions","alert_exception","message","exception_message","alert","stack","scrollbar_event","node","left","offset","outerWidth","clientX","fileName","Cycle","rotate","skip","defined","filter","append","front","restart","Boolean","forEach","Stack","init","size","pop","concat","top","History","name","memory","enabled","storage_key","JSON","stringify","new_data","reset","last","end","position","current","next","old","previous","clear","purge","enable","disable","toggle","cmd_index","cmd","defaults","mask","caseSensitiveSearch","historySize","prompt","history","onPositionChange","noop","onCommandChange","clickTimeout","holdTimeout","holdRepeatTimeout","tabs","options","settings","maybe_data","id","clip","autocapitalize","spellcheck","tabindex","val","width","num_chars","last_rendered_prompt","prompt_last_line","prompt_len","prompt_node","reverse_search","rev_search_str","reverse_search_position","backup_prompt","command","last_command","kill_text","formatted_position","animation","restart_animation","paste_count","get_char_pos","closest","parent","prevAll","prevUntil","nextUntil","key_mapping","SPACEBAR","UP","DOWN","LEFT","RIGHT","DEL","MULTIPLY","DIVIDE","SUBTRACT","ADD","get_key","combo","ctrlKey","metaKey","shiftKey","altKey","keymap","default_keymap","ALT+D","delete_word","HOLD+DELETE","HOLD+SHIFT+DELETE","ENTER","historyFilter","prev_command","no_keydown","commands","draw_prompt","SHIFT+ENTER","insert","BACKSPACE","backspace_key","SHIFT+BACKSPACE","TAB","CTRL+D","DELETE","ARROWUP","prev_history","CTRL+P","ARROWDOWN","next_history","CTRL+N","ARROWLEFT","HOLD+ARROWLEFT","CTRL+B","CTRL+ARROWLEFT","len","CTRL+R","reverse_history_search","draw_reverse_prompt","redraw","CTRL+G","ARROWRIGHT","right","HOLD+ARROWRIGHT","CTRL+F","CTRL+ARROWRIGHT","re","F12","return_true","END","CTRL+E","HOME","home","CTRL+A","SHIFT+INSERT","paste_event","CTRL+SHIFT+T","CTRL+W","delete_word_backward","HOLD+BACKSPACE","HOLD+SHIFT+BACKSPACE","CTRL+H","CTRL+X","CTRL+C","CTRL+T","CTRL+Y","CTRL+V","META+V","CTRL+K","text_to_clipboard","CTRL+U","CTRL+TAB","META+`","META+R","META+L","clipboard","m","isenabled","trigger","paste","first_up_history","mobile_focus","is_mobile","fix_cursor","animation_supported","style","getComputedStyle","animationName","getPropertyValue","_class","className","fix_textarea","position_only","is_android","removeClass","new_cursor","insertBefore","animating","blink","toggleClass","clear_reverse_state","history_data","save_string","j","terminal","escape_regex","change_num_chars","$prompt","html","W","w","getBoundingClientRect","Math","floor","get_splitted_command_line","string","split_equal","skip_empty","line","strip","escape_brackets","first_len","strlen","splitted","formatting","skip_formatted_position","escape_formatting","unixFormattingEscapeBrackets","formatted","apply_formatters","normalize","max","before","encoded","encode","wrap","char_width","is_formatting","start","prev","after","cursor_line","draw_cursor_line","before_str","c_before","noselect","div","lines_after","lines","last_ins","insertAfter","lines_before","original_string","from_last","last_len","new_pos","line_index","current_len","msg","strings","redrawError","find_position","cmp","search_pos","opts","guess","codepoint_len","binary_search","chars","split_characters","crlf","encoded_last_line","last_line","fire_change_command","option","delete","stay","removed","silent","new_keymap","original","destroy","doc","keypress_event","keydown_event","input_event","user_prompt","relative","refresh","display_position","command_len","new_formatted_pos","visible","show","resize","silient","new_mask","prevent_keypress","dead_key","single_key","no_keypress","no_key","backspace","process","hold","hold_pause","skip_insert","is_backspace","which","is_single","clear_reverse_search_key","fake","exception","keydown","clear_hold","documentElement","keypress","is_key_native","normalized","inArray","keyCode","event","type","chr","Event","keycode","charCodeAt","abs","was_down","count","$target","down","button","originalEvent","get_selected_text","KeyboardEvent","setTimeout","combine_chr_re","astral_symbols_re","emoji_re","mobile_re","tablet_re","format_split_re","format_parts_re","format_re","format_exist_re","format_full_re","color_hex_re","url_re","url_nf_re","email_re","command_re","extended_command_re","format_begin_re","format_start_re","format_end_re","format_exec_re","float_re","re_re","string_re","unclosed_strings_re","domPrefixes","elm","createElement","is_ch_unit_supported","agent","is_css_variables_supported","CSS","supports","is_safari","proto","getOwnPropertyDescriptor","check","substr","vendor","opera","bare_text","safe","get_next_character","match_emoji","match_combo","normalize_position","acc","char_width_prop","extra_css","bare","wide_characters","specs","arr","spec","sum","compare_fn","mid","container","$div","select_all","execCommand","get_textarea_selection","textarea","selectionEnd","clear_textarea_selection","common_string","matchCase","string_case","candidate","candidateLower","currentLower","trigger_terminal_change","terminals","term","onTerminalChange","setBaseAndExtent","setStart","childNodes","removeAllRanges","addRange","process_command","shift","args","quotes","rest","args_quotes","version","date","color_names","valid_color","color","unclosed_strings","special","have_formatting","format_split","tracking_replace","rex","replacement","correct_index","next_len","new_string","rep_string","new_position","last_index","c0","iterate_formatting","is_space","entity_re","match_entity","is_open_formatting","is_escape_bracket","is_text","not_formatting","opening","in_text","space","prev_space","braket","char","start_index","end_index","start_formatting","end_formatting","prev_index","_","semicolons","keep_words","prev_format","first_index","line_length","last_char","last_iteraction","can_break","stripped","text_len","new_index","closed_formatting","matched","amp","sp","nested_formatting","test_lengths","formatter","__no_warn__","warn","formatters","apply_function_formatter","__meta__","found_position","partials","this_len","length_before","loop","position_partial","partial","Exception","safe_text","slashes","linksNoReferrer","linksNoFollow","anyLinks","background","data_text","style_str","text_decoration","extra","rel","unshift","unescape_brackets","columns","cols","no_formatting","lengths","column_limit","whole","bracket","active","last_id","parse_argument","strict","parse_string","quote","parse_arguments","split_arguments","parse_command","split_command","parse_options","boolean","token","single","extended_command","invokeMethods","change_hash","obj","eval","done","iterator","Symbol","replacer","search","new_formatter","Terminal_Exception","css","hidden","warnings","ids","jrpc","url","method","params","success","deferred","Deferred","isPlainObject","validJSONRPC","response","isNumeric","request","jsonrpc","ajax","beforeSend","jxhr","status","jqXHR","content_type","getResponseHeader","json","reject","contentType","dataType","async","promise","get_char_size","temp","rect","height","get_num_chars","char_size","get_num_rows","all","same","same_case","version_set","copyright","version_string","reg","name_ver","signatures","exit","maskChar","checkArity","raw","exceptionHandler","pauseEvents","softPause","cancelableAjax","processArguments","processRPCResponse","completionEscape","convertLinks","scrollObject","historyState","importHistory","echoCommand","scrollOnEcho","login","outputLimit","onAjaxError","pasteImage","scrollBottomOffset","wordAutocomplete","caseSensitiveAutocomplete","describe","onRPCError","doubleTab","completion","onInit","onClear","onBlur","onFocus","onExit","onPush","onPop","onAfterRedraw","onEchoCommand","onFlush","comletionParameters","wrongPasswordTryAgain","wrongPassword","ajaxAbortError","wrongArity","commandNotFound","oneRPCWithIgnore","oneInterpreterFunction","loginFunctionMissing","noTokenError","serverResponse","wrongGreetings","notWhileLogin","loginIsNotAFunction","canExitError","invalidCompletion","invalidSelector","invalidTerminalId","password","recursiveCall","notAString","invalidStrings","defunctTerminal","requests","save_state","hash_commands","fire_hash_change","first_instance","init_interpreter","StorageHelper","get_processed_command","display_object","echo","print_line","url_spec","pause","file","code","resume","display_json_rpc_error","at","make_basic_json_rpc","auth","interpreter","display_exception","ajax_error","make_object_interpreter","arity","fallback","user_command","keys","onCommandNotFound","xhr","responseText","make_json_rpc_object","jrpc_success","jrpc_request","jrpc_response","procs","field","interpreter_object","proc","args_len","help","names","found","make_interpreter","user_intrp","finalize","rpc_count","fn_interpreter","recur","interpreters","new_obj","ignoreSystemDescribe","make_json_rpc_login","user","passwd","output_buffer","NEW_LINE","buffer_line","format_options","words","keepWords","process_line","line_settings","is_fn","parseObject","parts","prev_cmd","update","scroll","command_line","detached_output","empty","detach","lines_to_show","rows","flush","limit_lines","$lines","for_remove","parents","$self","show_greetings","greetings","signature","echo_command","get_command","then","have_scrollbar","innerWidth","clientWidth","fill","restore_state","command_idx","import_view","export_view","maybe_update_hash","location","hash","first_command","resume_callbacks","init_state","execHash","after_exec","saved_change_hash","onAfterCommand","invoke","when","paused","onBeforeCommand","ghost","level","logout","in_login","get_token","set_token","global_logout","onBeforeLogout","clear_loging_storage","onAfterLogout","global_login_fn","initialize","prefix_name","maybe_append_name","interpreter_name","prepare_top_interpreter","login_name","fun","init_queue","onStart","hashchange","decodeURIComponent","was_paused","onPause","user_key_down","get_position","set_command","CTRL+L","orignal","caseSensitive","complete","word","escape","before_cursor","scroll_to_bottom","PAGEDOWN","PAGEUP","key_down","tab_count","r","readyState","abort","key_press","ready","queue","selector","scroll_object","terminal_id","num_rows","logins","command_queue","when_ready","cmd_ready","old_width","old_height","delayed_commands","defunct","frozen","autologin","old_enabled","visibility_observer","mutation_observer","scrollTop","user_export","onExport","get_prompt","view","onImport","set_prompt","ignore_hash","state","d","infinite","login_callback","set_mask","pass","cmd_strings","double_quotes","single_quote","prev_string","sensitive","slash","matched_strings","pre","post","to_insert","set_position","reverse","common","set_interpreter","overwrite_interpreter","onResume","numChars","numRows","history_state","run","setImmediate","clear_history_state","x","animate","freeze","lenghts","bottom","is_bottom","get_output","new_num_chars","new_num_rows","onResize","setProperty","wrapper","replaceWith","remove_line","locals","lineNumber","trace","amount","round","prop","local","local_name","intrp","read","cancel","defer","infiniteLogin","push_settings","object_or_name","invoke_key","shortcut","ctrl","alt","meta","reversed_keycodes","prefix","blur_terminal","focus_terminal","disconnect","font_resizer","scrollHeight","scroll_height","scroll_top","innerHeight","outerHeight","keycodes","3","6","8","9","12","13","16","17","18","19","20","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","43","44","45","46","48","49","50","51","52","53","54","55","56","57","91","93","144","145","181","182","183","186","187","188","189","190","191","192","219","220","221","222","224","225","246","247","248","249","250","251","letter","onBeforeLogin","base_interpreter","is_type","clipboardData","items","blob","getAsFile","URL","webkitURL","createObjectURL","getAsString","getData","itrp","mousewheel","elementFromPoint","clientY","$win","addEventListener","click","mousedown","mouseup","timeout","dblclick","pageX","pageY","href","preventDefault","calculate_char_size","create_resizers","observe_visibility","was_enabled","visibility_checker","IntersectionObserver","in_dom","MutationObsrv","MutationObserver","WebKitMutationObserver","childList","exec_spec","delta","stopPropagation","onmousewheel","wheelDelta","deltaY","detail"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuDA,SAAUA,GACN,IAAIC,EAAU,WACV,IAAKA,EAAQC,MAAMC,eAAeC,UAAU,IAAK,CAC7CH,EAAQC,MAAME,UAAU,IAAMH,EAAQI,MAAMD,UAAU,IAE1D,OAAOH,EAAQK,OAAOC,KAAK,KAAMN,EAAQC,MAAME,UAAU,IAAKA,YAElEH,EAAQK,OAAS,SAASE,EAAYC,GAClC,IAAIC,EAAS,EAAGC,EAAcH,EAAWI,OAAQC,EAAY,GAAIC,EAAKC,EAAS,GAAIC,EAAGC,EAAGC,EAAOC,EAAKC,EAAeC,EACpH,IAAKL,EAAI,EAAGA,EAAIL,EAAaK,IAAK,CAC9BH,EAAYS,EAASd,EAAWQ,IAChC,GAAIH,IAAc,SAAU,CACxBE,EAAOQ,KAAKf,EAAWQ,SAEtB,GAAIH,IAAc,QAAS,CAC5BK,EAAQV,EAAWQ,GACnB,GAAIE,EAAM,GAAI,CACVJ,EAAML,EAAKC,GACX,IAAKO,EAAI,EAAGA,EAAIC,EAAM,GAAGN,OAAQK,IAAK,CAClC,IAAKH,EAAIX,eAAee,EAAM,GAAGD,IAAK,CAClC,MAAMhB,EAAQ,yCAA0CiB,EAAM,GAAGD,IAErEH,EAAMA,EAAII,EAAM,GAAGD,UAGtB,GAAIC,EAAM,GAAI,CACfJ,EAAML,EAAKS,EAAM,QAEhB,CACDJ,EAAML,EAAKC,KAGf,GAAI,OAAOc,KAAKN,EAAM,KAAQI,EAASR,KAAS,SAAW,CACvD,MAAMb,EAAQ,0CAA2CqB,EAASR,IAEtE,OAAQI,EAAM,IACV,IAAK,IAAKJ,EAAMA,EAAIW,SAAS,GAAI,MACjC,IAAK,IAAKX,EAAMY,OAAOC,aAAab,GAAM,MAC1C,IAAK,IAAKA,EAAMc,SAASd,EAAK,IAAK,MACnC,IAAK,IAAKA,EAAMI,EAAM,GAAKJ,EAAIe,cAAcX,EAAM,IAAMJ,EAAIe,gBAAiB,MAC9E,IAAK,IAAKf,EAAMI,EAAM,GAAKY,WAAWhB,GAAKiB,QAAQb,EAAM,IAAMY,WAAWhB,GAAM,MAChF,IAAK,IAAKA,EAAMA,EAAIW,SAAS,GAAI,MACjC,IAAK,IAAKX,GAAQA,EAAMY,OAAOZ,KAASI,EAAM,GAAKJ,EAAIkB,UAAU,EAAGd,EAAM,IAAMJ,EAAM,MACtF,IAAK,IAAKA,EAAMA,IAAQ,EAAG,MAC3B,IAAK,IAAKA,EAAMA,EAAIW,SAAS,IAAK,MAClC,IAAK,IAAKX,EAAMA,EAAIW,SAAS,IAAIQ,cAAe,MAEpDnB,EAAO,QAAQU,KAAKN,EAAM,KAAOA,EAAM,IAAMJ,GAAO,EAAI,KAAOA,EAAMA,EACrEM,EAAgBF,EAAM,GAAKA,EAAM,KAAO,IAAM,IAAMA,EAAM,GAAGgB,OAAO,GAAK,IACzEb,EAAaH,EAAM,GAAKQ,OAAOZ,GAAKF,OACpCO,EAAMD,EAAM,GAAKiB,EAAWf,EAAeC,GAAc,GACzDN,EAAOQ,KAAKL,EAAM,GAAKJ,EAAMK,EAAMA,EAAML,IAGjD,OAAOC,EAAOqB,KAAK,KAGvBnC,EAAQC,MAAQ,GAEhBD,EAAQI,MAAQ,SAASgC,GACrB,IAAIC,EAAOD,EAAKnB,EAAQ,GAAIV,EAAa,GAAI+B,EAAY,EACzD,MAAOD,EAAM,CACT,IAAKpB,EAAQ,YAAYsB,KAAKF,MAAW,KAAM,CAC3C9B,EAAWe,KAAKL,EAAM,SAErB,IAAKA,EAAQ,WAAWsB,KAAKF,MAAW,KAAM,CAC/C9B,EAAWe,KAAK,UAEf,IAAKL,EAAQ,uFAAuFsB,KAAKF,MAAW,KAAM,CAC3H,GAAIpB,EAAM,GAAI,CACVqB,GAAa,EACb,IAAIE,EAAa,GAAIC,EAAoBxB,EAAM,GAAIyB,EAAc,GACjE,IAAKA,EAAc,sBAAsBH,KAAKE,MAAwB,KAAM,CACxED,EAAWlB,KAAKoB,EAAY,IAC5B,OAAQD,EAAoBA,EAAkBV,UAAUW,EAAY,GAAG/B,WAAa,GAAI,CACpF,IAAK+B,EAAc,wBAAwBH,KAAKE,MAAwB,KAAM,CAC1ED,EAAWlB,KAAKoB,EAAY,SAE3B,IAAKA,EAAc,aAAaH,KAAKE,MAAwB,KAAM,CACpED,EAAWlB,KAAKoB,EAAY,QAE3B,CACD,KAAK,uBAIZ,CACD,KAAK,iBAETzB,EAAM,GAAKuB,MAEV,CACDF,GAAa,EAEjB,GAAIA,IAAc,EAAG,CACjB,KAAK,4EAET/B,EAAWe,KAAKL,OAEf,CACD,KAAK,iBAEToB,EAAOA,EAAKN,UAAUd,EAAM,GAAGN,QAEnC,OAAOJ,GAGX,IAAIoC,EAAW,SAASP,EAAK5B,EAAMoC,GAC/BA,EAAQpC,EAAKqC,MAAM,GACnBD,EAAME,OAAO,EAAG,EAAGV,GACnB,OAAOpC,EAAQ+C,MAAM,KAAMH,IAM/B,SAASvB,EAAS2B,GACd,OAAOC,OAAOC,UAAU1B,SAASlB,KAAK0C,GAAUH,MAAM,GAAI,GAAGM,cAGjE,SAASjB,EAAWkB,EAAOC,GACvB,IAAK,IAAIvC,EAAS,GAAIuC,EAAa,EAAGvC,IAASuC,GAAcD,EAAO,EACpE,OAAOtC,EAAOqB,KAAK,IAMvBpC,EAAIC,QAAUA,EACdD,EAAI4C,SAAWA,GAjInB,QAkIUW,SAAW,YAAcA,OAASC,SAG5C,SAAUC,EAASC,GACf,IAAIC,SAAcH,SAAW,YAAcA,OAASD,OACpD,UAAWK,SAAW,YAAcA,OAAOC,IAAK,CAG5CD,OAAO,CAAC,SAAU,WAAYH,QAC3B,UAAWK,SAAW,UAAYA,OAAOC,QAAS,CAErDD,OAAOC,QAAU,SAASJ,EAAMK,EAAQC,GACpC,GAAID,IAAWN,EAAW,CAKtB,GAAIF,SAAWE,EAAW,CACtBM,EAASE,QAAQ,cACd,CACHF,EAASE,QAAQ,SAARA,CAAkBP,IAGnC,GAAIM,IAAYP,EAAW,CACvBO,EAAUC,QAAQ,WAEtBT,EAAQO,EAAQC,GAChB,OAAOD,OAER,CAGHP,EAAQE,EAAKK,OAAQL,EAAKM,WA7BlC,CA+BG,SAASE,EAAGF,QAASP,WACpB,aAKA,SAASU,MAAMC,GACX,GAAI,MAAO,CACPC,QAAQC,IAAIF,IAQpB,SAASG,aACL,IAAIC,EAAYN,EAAEO,YAClB,IAAIC,EAAW,MACfC,KAAKC,QAAU,WACXJ,EAAUK,OACVH,EAAW,MAEfC,KAAKG,IAAM,SAASC,GAChB,GAAIL,EAAU,CACVK,QACG,CACHP,EAAUM,IAAIC,KAO1Bb,EAAEc,KAAO,SAASC,EAAGF,GACjB,IAAIG,EAAS,GACbhB,EAAEiB,KAAKF,EAAG,SAASjE,EAAGoE,GAClBF,EAAOlE,GAAK+D,EAAGzE,KAAK2E,EAAGjE,EAAGoE,KAE9B,OAAOF,GAEXhB,EAAEa,GAAGM,YAAc,WACf,OAAOV,KAAKW,IAAI,WACZ,OAAOpB,EAAES,MAAMY,OAAO5E,SACvB6E,MAAMC,OAAO,SAASC,EAAGC,GACxB,OAAOD,EAAIC,GACZ,IAKP,IAAIC,MAAQ,CACRC,aAAc,SAASC,GACnB,IAAIC,EAAM,GACV,UAAWD,IAAW,SAAU,CAC5B,GAAI5B,EAAE8B,QAAQF,GAAS,CACnB,OAAOnB,KAAKsB,YAAYH,QACrB,GAAIA,IAAW,KAAM,CACxB,OAAOA,MACJ,CACH,IAAK,IAAII,KAAOJ,EAAQ,CACpB,GAAI5B,EAAE8B,QAAQF,EAAOI,IAAO,CACxBH,EAAIG,GAAOvB,KAAKsB,YAAYH,EAAOI,SAChC,UAAWJ,EAAOI,KAAS,SAAU,CACxCH,EAAIG,GAAOvB,KAAKkB,aAAaC,EAAOI,QACjC,CACHH,EAAIG,GAAOJ,EAAOI,MAKlC,OAAOH,GAEXE,YAAa,SAASE,GAClB,IAAKC,YAAYC,MAAMnD,UAAUoC,KAAM,CACnC,MAAM,IAAIgB,MAAM,4CACA,gBAEpB,OAAOH,EAAMtD,MAAM,GAAGyC,IAAI,SAASiB,GAC/B,UAAWA,IAAS,SAAU,CAC1B,OAAO5B,KAAKkB,aAAaU,OACtB,CACH,OAAOA,IAEbC,KAAK7B,SAGf,IAAI8B,MAAQ,SAASX,GACjB,OAAOF,MAAMC,aAAaC,IAO9B,IAAIY,cAEJ,WACI,IAAIC,EAAQ,WACR,IACI,IAAIC,EAAU,OAAQC,EAAUtD,OAAOmD,aACvCG,EAAQC,QAAQF,EAAS,KACzBC,EAAQE,WAAWH,GACnB,OAAO,KACT,MAAOI,GACL,OAAO,QAGf,IAAIC,EAAa,WACb,IACIC,SAASC,OAAOC,MAAM,KACtB,OAAO,KACT,MAAOC,GACL,OAAO,QAIf,IAAIC,EAAOX,IAEX,SAASY,EAAIC,EAAGpC,GACZ,IAAIqC,EACJ,UAAWD,IAAM,iBAAmBpC,IAAM,SAAU,CAChDsB,aAAac,GAAKpC,EAClB,OAAO,UACJ,UAAWoC,IAAM,iBAAmBpC,IAAM,YAAa,CAC1D,IAAKqC,KAAKD,EAAG,CACT,GAAIA,EAAEtH,eAAeuH,GAAI,CACrBf,aAAae,GAAKD,EAAEC,IAG5B,OAAO,KAEX,OAAO,MAEX,SAASC,EAAGF,EAAGpC,GACX,IAAIuC,EAAIN,EAAGI,EACXE,EAAK,IAAIC,KACTD,EAAGE,QAAQF,EAAGG,UAAY,SAC1BT,EAAI,aAAeM,EAAGI,cACtB,UAAWP,IAAM,iBAAmBpC,IAAM,SAAU,CAChD8B,SAASC,OAASK,EAAI,IAAMpC,EAAIiC,EAAI,WACpC,OAAO,UACJ,UAAWG,IAAM,iBAAmBpC,IAAM,YAAa,CAC1D,IAAKqC,KAAKD,EAAG,CACT,GAAIA,EAAEtH,eAAeuH,GAAI,CACrBP,SAASC,OAASM,EAAI,IAAMD,EAAEC,GAAKJ,EAAI,YAG/C,OAAO,KAEX,OAAO,MAEX,SAASW,EAAIR,GACT,OAAOd,aAAac,GAExB,SAASS,EAAGT,GACR,IAAIU,EAAIC,EAAIpH,EAAG0G,EACfS,EAAKV,EAAI,IACTW,EAAKjB,SAASC,OAAOC,MAAM,KAC3B,IAAKrG,EAAI,EAAGA,EAAIoH,EAAGxH,OAAQI,IAAK,CAC5B0G,EAAIU,EAAGpH,GACP,MAAO0G,EAAExF,OAAO,KAAO,IAAK,CACxBwF,EAAIA,EAAE1F,UAAU,EAAG0F,EAAE9G,QAEzB,GAAI8G,EAAEW,QAAQF,KAAQ,EAAG,CACrB,OAAOT,EAAE1F,UAAUmG,EAAGvH,OAAQ8G,EAAE9G,SAGxC,OAAO,KAEX,SAAS0H,EAAIb,GACT,cAAcd,aAAac,GAE/B,SAASc,EAAGd,GACR,OAAOE,EAAGF,EAAG,IAAK,GAStB,IAAKP,MAAiBK,EAAM,CACxBZ,aAAe,GACfxC,EAAEqE,OAAO,CACLC,QAAS,CACLC,IAAKlB,EACL/B,IAAKwC,EACLU,OAAQL,SAGb,CACH,GAAIf,EAAM,CACNZ,aAAenD,OAAOmD,aAE1BxC,EAAEqE,OAAO,CACLC,QAAS,CACLC,IAAKnB,EAAOC,EAAMG,EAClBlC,IAAK8B,EAAOU,EAAMC,EAClBS,OAAQpB,EAAOe,EAAMC,OAvGrC,GA+GA,IAAIvE,OAASG,GAEb,SAAUA,GACNH,OAAOgB,GAAGwD,OAAO,CACbI,UAAW,SAASC,EAAUC,EAAO9D,EAAI+D,EAAOC,GAC5C,OAAOpE,KAAKQ,KAAK,WACbpB,OAAOiF,MAAMlE,IAAIH,KAAMiE,EAAUC,EAAO9D,EAAI+D,EAAOC,MAG3DE,QAAS,SAASL,EAAUC,EAAO9D,GAC/B,OAAOJ,KAAKQ,KAAK,WACbpB,OAAOiF,MAAMlE,IAAIH,KAAMiE,EAAUC,EAAO9D,EAAI,MAGpDmE,SAAU,SAASL,EAAO9D,GACtB,OAAOJ,KAAKQ,KAAK,WACbpB,OAAOiF,MAAMN,OAAO/D,KAAMkE,EAAO9D,QAK7ChB,OAAOwE,OAAO,CACVS,MAAO,CACHG,KAAM,EACN7F,OAAQ,GACR8F,MAAO,sBACPC,OAAQ,CAEJC,GAAM,EACNC,GAAM,GACNC,GAAM,IACNC,EAAK,IACLC,IAAO,IACPC,GAAM,IACNC,GAAM,KAEVC,UAAW,SAASC,GAChB,GAAIA,IAAUrG,WAAaqG,IAAU,KAAM,CACvC,OAAO,KAEX,IAAI5E,EAASP,KAAKyE,MAAM7G,KAAKwB,OAAOgG,KAAKD,EAAMtI,aAC/C,GAAI0D,EAAO,GAAI,CACX,IAAI8E,EAAMrI,SAASuD,EAAO,GAAI,IAC9B,IAAI+E,EAAOtF,KAAK0E,OAAOnE,EAAO,KAAO,EACrC,OAAO8E,EAAMC,MACV,CACH,OAAOH,IAGfhF,IAAK,SAASoF,EAAStB,EAAUC,EAAO9D,EAAI+D,EAAOC,GAC/C,IAAIoB,EAAU,EAEd,GAAIpG,OAAOqG,WAAWvB,GAAQ,CAC1B,IAAKC,EAAO,CACRA,EAAQ/D,EAEZA,EAAK8D,EACLA,EAAQD,EAGZA,EAAW7E,OAAOiF,MAAMa,UAAUjB,GAElC,UAAWA,IAAa,UACpByB,MAAMzB,IACNA,GAAY,EAAG,CACf,OAEJ,GAAIE,GAASA,EAAMwB,cAAgBC,OAAQ,CACvCxB,IAAUD,EACVA,EAAQ,EAGZA,EAAQA,GAAS,EACjBC,EAAQA,GAAS,MAEjB,IAAKmB,EAAQM,QAAS,CAClBN,EAAQM,QAAU,GAEtB,IAAKN,EAAQM,QAAQ3B,GAAQ,CACzBqB,EAAQM,QAAQ3B,GAAS,GAE7B9D,EAAG0F,SAAW1F,EAAG0F,UAAY9F,KAAKwE,OAElC,IAAIuB,EAAU,WACV,GAAI3B,GAAS2B,EAAQC,WAAY,CAC7B,OAEJD,EAAQC,WAAa,KACrB,KAAOR,EAAUrB,GAASA,IAAU,GAChC/D,EAAGzE,KAAK4J,EAASC,KAAa,MAAO,CACrCpG,OAAOiF,MAAMN,OAAOwB,EAASrB,EAAO9D,GAExC2F,EAAQC,WAAa,OAGzBD,EAAQD,SAAW1F,EAAG0F,SAEtB,IAAKP,EAAQM,QAAQ3B,GAAO9D,EAAG0F,UAAW,CACtCP,EAAQM,QAAQ3B,GAAO9D,EAAG0F,UAAYlH,OAAOqH,YAAYF,EAAS9B,GAGtE,IAAKjE,KAAKrB,OAAOuF,GAAQ,CACrBlE,KAAKrB,OAAOuF,GAAS,GAEzBlE,KAAKrB,OAAOuF,GAAOvH,KAAK4I,IAG5BxB,OAAQ,SAASwB,EAASrB,EAAO9D,GAC7B,IAAI8F,EAASX,EAAQM,QAASM,EAE9B,GAAID,EAAQ,CAER,IAAKhC,EAAO,CACR,IAAK,IAAIkC,KAAOF,EAAQ,CACpB,GAAIA,EAAO3K,eAAe6K,GAAM,CAC5BpG,KAAK+D,OAAOwB,EAASa,EAAKhG,UAG/B,GAAI8F,EAAOhC,GAAQ,CACtB,GAAI9D,EAAI,CACJ,GAAIA,EAAG0F,SAAU,CACblH,OAAOyH,cAAcH,EAAOhC,GAAO9D,EAAG0F,kBAC/BI,EAAOhC,GAAO9D,EAAG0F,eAEzB,CACH,IAAK,IAAIQ,KAAOJ,EAAOhC,GAAQ,CAC3B,GAAIgC,EAAOhC,GAAO3I,eAAe+K,GAAM,CACnC1H,OAAOyH,cAAcH,EAAOhC,GAAOoC,WAC5BJ,EAAOhC,GAAOoC,KAKjC,IAAKH,KAAOD,EAAOhC,GAAQ,CACvB,GAAIgC,EAAOhC,GAAO3I,eAAe4K,GAAM,CACnC,OAGR,IAAKA,EAAK,CACNA,EAAM,YACCD,EAAOhC,IAItB,IAAKiC,KAAOD,EAAQ,CAChB,GAAIA,EAAO3K,eAAe4K,GAAM,CAC5B,OAGR,IAAKA,EAAK,CACNZ,EAAQM,QAAU,WAMtC,GAAI,kBAAkBjI,KAAK2I,UAAUC,UAAUhI,eAAgB,CAC3De,EAAEX,QAAQ6H,IAAI,SAAU,WACpB,IAAI9H,EAASS,OAAOiF,MAAM1F,OAC1B,IAAK,IAAIuF,KAASvF,EAAQ,CACtB,GAAIA,EAAOpD,eAAe2I,GAAQ,CAC9B,IAAIwC,EAAM/H,EAAOuF,GAAQ9H,EAAIsK,EAAI1K,OACjC,QAASI,EAAG,CACRgD,OAAOiF,MAAMN,OAAO2C,EAAItK,GAAI8H,UAjKpD,CAuKG9E,SAKH,SAAUuH,GAIN,IAAK7J,OAAOyB,UAAUkE,MAAM5F,WAAWP,MAAM,YAAa,CACtD,OAGJ,IAAIsK,EAAc9J,OAAOyB,UAAUkE,MACnCoE,EAAoB,OAAOjJ,KAAK,IAAI,KAAO+I,EAC3CG,EAEAA,EAAO,SAASrH,EAAKsH,EAAWC,GAE5B,GAAI1I,OAAOC,UAAU1B,SAASlB,KAAKoL,KAAe,kBAAmB,CACjE,OAAOH,EAAYjL,KAAK8D,EAAKsH,EAAWC,GAE5C,IAAI7K,EAAS,GACb8K,GAASF,EAAUG,WAAa,IAAM,KACjCH,EAAUI,UAAa,IAAM,KAC7BJ,EAAUK,SAAa,IAAM,KAC7BL,EAAUM,OAAa,IAAM,IAC9BC,EAAgB,EAEpBC,EAAYjL,EAAOkL,EAAWC,EAC9BV,EAAY,IAAIW,OAAOX,EAAUY,OAAQV,EAAQ,KACjDxH,GAAO,GACP,IAAKoH,EAAmB,CAEpBU,EAAa,IAAIG,OAAO,IAAMX,EAAUY,OAAS,WAAYV,GAUjED,EAAQA,IAAUL,GAAS,IAAM,EAAIK,IAAU,EAC/C,MAAO1K,EAAQyK,EAAUnJ,KAAK6B,GAAM,CAE5B+H,EAAYlL,EAAMsL,MAAQtL,EAAM,GAAGN,OACnC,GAAIwL,EAAYF,EAAe,CAC3BnL,EAAOQ,KAAK8C,EAAIvB,MAAMoJ,EAAehL,EAAMsL,QAG3C,IAAKf,GAAqBvK,EAAMN,OAAS,EAAG,CACxCM,EAAM,GAAGuL,QAAQN,EAAY,WACzB,IAAK,IAAInL,EAAI,EAAGA,EAAIZ,UAAUQ,OAAS,EAAGI,IAAK,CAC3C,GAAIZ,UAAUY,KAAOuK,EAAO,CACxBrK,EAAMF,GAAKuK,MAK3B,GAAIrK,EAAMN,OAAS,GAAKM,EAAMsL,MAAQnI,EAAIzD,OAAQ,CAC9C0F,MAAMnD,UAAU5B,KAAKyB,MAAMjC,EAAQG,EAAM4B,MAAM,IAEnDuJ,EAAanL,EAAM,GAAGN,OACtBsL,EAAgBE,EAChB,GAAIrL,EAAOH,QAAUgL,EAAO,CACxB,OAGR,GAAID,EAAUS,YAAclL,EAAMsL,MAAO,CACrCb,EAAUS,aAGtB,GAAIF,IAAkB7H,EAAIzD,OAAQ,CAC9B,GAAIyL,IAAeV,EAAUnK,KAAK,IAAK,CACnCT,EAAOQ,KAAK,SAEb,CACHR,EAAOQ,KAAK8C,EAAIvB,MAAMoJ,IAE1B,OAAOnL,EAAOH,OAASgL,EAAQ7K,EAAO+B,MAAM,EAAG8I,GAAS7K,GAI5DW,OAAOyB,UAAUkE,MAAQ,SAASsE,EAAWC,GACzC,OAAOF,EAAK9G,KAAM+G,EAAWC,IAGjC,OAAOF,GApFX,GA2FAvH,EAAEa,GAAG0H,MAAQ,SAASC,GAClB,IAAIC,EAAShI,KAAK,GAClB,IAAIiI,EAAoBD,EAAOE,kBAAoB,OAEnD,GAAI1M,UAAUQ,SAAW,EAAG,CAExB,GAAI4C,OAAOuJ,aAAc,CAErB,GAAIF,EAAmB,CACnBD,EAAOI,QACP,IAAIC,EAASzJ,OAAOuJ,eAAeG,WAAW,GAC9CC,EAASF,EAAOG,aAChBD,EAAOE,mBAAmBT,GAC1BO,EAAOG,OAAOL,EAAOM,aAAcN,EAAOO,WAC1C,OAAOL,EAAO1L,WAAWb,OAG7B,OAAOgM,EAAOa,eAGlB,GAAItG,SAASuG,UAAW,CACpBd,EAAOI,QAEP,GAAIH,EAAmB,CACnB,IAAII,EAAS9F,SAASuG,UAAUC,cAChCR,EAAShG,SAASyG,KAAKC,kBACvBV,EAAOW,kBAAkBlB,GACzBO,EAAOY,YAAY,WAAYd,GAC/B,OAAOE,EAAO3H,KAAK5E,OAGvB,IAAI+L,EAAM,EACVqB,EAAQpB,EAAOiB,kBACfV,EAAShG,SAASuG,UAAUC,cAAcM,YAC1CC,EAAWf,EAAOgB,cAClBH,EAAMI,eAAeF,GACrB,MAAOF,EAAMK,UAAU,aAAc,KAAO,EAAG1B,IAC/C,OAAOA,EAGX,OAAO,EAGX,GAAIA,KAAS,EACTA,EAAM/H,KAAKiI,EAAmB,OAAS,SAASjM,OAEpD,GAAI4C,OAAOuJ,aAAc,CAErB,GAAIF,EAAmB,CACnBD,EAAOI,QACPxJ,OAAOuJ,eAAeuB,SAAS1B,EAAO2B,WAAY5B,QAIlDC,EAAO4B,kBAAkB7B,EAAKA,QAGjC,GAAIxF,SAASyG,KAAKC,gBAAiB,CACpC,IAAIG,EAAQ7G,SAASyG,KAAKC,kBAC1BG,EAAMF,kBAAkBlB,GACxBoB,EAAMK,UAAU,YAAa1B,GAC7BqB,EAAMM,SAAS,MACfN,EAAMS,SAEV,IAAK5B,IAAsBjI,KAAK8J,GAAG,UAAW,CAC1C9B,EAAOI,QAEX,OAAOL,GAOXxI,EAAEa,GAAG2J,QAAU,SAASC,GACpB,IAAIC,EAASzO,UAAU,KAAO,SAC9B,IAAKyO,IAAWxI,YAAYuI,GAAW,CACnC,MAAM,IAAIrI,MACN,+DAGR,GAAIsI,EAAQ,CACRD,EAAWvI,YAAYjG,UAAU,IAAMA,UAAU,GAAK,KAE1D,OAAOwE,KAAKQ,KAAK,WACb,IAAI0J,EAAQ3K,EAAES,MACd,IAAImK,EACJ,IAAItK,EACJ,SAASuK,IACLvK,EAAUK,OAEd,GAAI+J,EAAQ,CACRpK,EAAYqK,EAAMG,KAAK,aACvB,GAAIL,GAAYnK,EAAW,CACvBA,EAAUkE,OAAOiG,GACjB,IAAKnK,EAAUyK,MAAO,CAClBzK,EAAY,UAEb,CACHA,EAAY,KAEhB,IAAKA,EAAW,CACZqK,EAAMK,WAAW,aACjB,GAAI3L,OAAO4L,eAAgB,CACvB,IAAIC,EAAWP,EAAMG,KAAK,YAC1B,GAAII,EAAU,CACVA,EAASC,UAAU1K,MACnBkK,EAAMK,WAAW,iBAElB,CACHJ,EAASD,EAAMS,KAAK,YACpB,GAAIR,EAAOnO,OAAQ,CAEfuD,EAAE4K,EAAO,GAAGS,eAAeC,IAAI,UAAU9G,SACzCoG,EAAOpG,cACJ,GAAImG,EAAMJ,GAAG,QAAS,CACzBvK,EAAEX,QAAQiM,IAAI,0BAIvB,GAAIX,EAAMG,KAAK,aAAc,CAChC9K,EAAES,MAAMqK,KAAK,aAAalK,IAAI6J,OAC3B,CACHnK,EAAYN,EAAEO,YACdD,EAAUM,IAAI6J,GACdE,EAAMG,KAAK,YAAaxK,GACxB,IAAIkK,EACJ,IAAIe,EAAQ,KACZ,GAAIlM,OAAO4L,eAAgB,CACvBT,EAAU,IAAIS,eAAe,WACzB,IAAKM,EAAO,CACRV,IAEJU,EAAQ,QAEZf,EAAQgB,QAAQ/K,MAChBkK,EAAMG,KAAK,WAAYN,QACpB,GAAIG,EAAMJ,GAAG,QAAS,CACzBvK,EAAEX,QAAQoM,GAAG,iBAAkBZ,OAC5B,CACHD,EAAS5K,EAAE,aAAa0L,SAAS,WAAWC,SAASlL,MAAM,GAE3DT,EAAE4K,EAAOS,eAAeI,GAAG,SAAUZ,QAQrD,SAASe,UAAU5F,GACfA,EAAQ6F,KAAK,CACTC,KAAM,eACNC,cAAe,SAMvB,IAAIC,YAAc,GAClB,SAASC,gBAAgBtH,EAAOxB,GAC5B,IAAI+I,GAAWvH,EAAQA,EAAQ,KAAO,IAAMwH,kBAAkBhJ,GAC9D,GAAI6I,YAAY9H,QAAQgI,MAAc,EAAG,CACrCF,YAAY5O,KAAK8O,GACjBE,MAAMF,GAAW/I,EAAEkJ,MAAQ,KAAOlJ,EAAEkJ,MAAQ,MAMpD,SAASC,gBAAgBnJ,EAAGoJ,GACxB,IAAIC,EAAOD,EAAKE,SAASD,KACzB,OAAOD,EAAKG,cAAgBvJ,EAAEwJ,QAAUH,EAK5C,SAASL,kBAAkBhJ,GACvB,UAAWA,IAAM,SAAU,CACvB,OAAOA,OACJ,UAAWA,EAAEyJ,WAAa,SAAU,CACvC,OAAOzJ,EAAEyJ,SAAW,KAAOzJ,EAAE+I,YAC1B,CACH,OAAO/I,EAAE+I,SAMjB,SAASW,QACL,IAAI/B,EAAO,GAAGnM,MAAMvC,KAAKH,WACzB,IAAIuM,EAAM,EACVxI,EAAEqE,OAAO5D,KAAM,CACXa,IAAK,WACD,OAAOwJ,GAEXzC,MAAO,WACH,OAAOG,GAEXsE,OAAQ,SAASC,GACb,IAAKA,EAAM,CACP,IAAIC,EAAUlC,EAAKmC,OAAO,SAAS5K,GAC/B,cAAcA,IAAS,cAE3B,IAAK2K,EAAQvQ,OAAQ,CACjB,QAGR,IAAKqO,EAAKrO,OAAQ,CACd,OAEJ,GAAIqO,EAAKrO,SAAW,EAAG,CACnB,OAAOqO,EAAK,OACT,CACH,GAAItC,IAAQsC,EAAKrO,OAAS,EAAG,CACzB+L,EAAM,MACH,GACDA,EAEN,UAAWsC,EAAKtC,KAAS,YAAa,CAClC,OAAOsC,EAAKtC,OACT,CACH,OAAO/H,KAAKqM,OAAO,SAI/BrQ,OAAQ,WACJ,OAAOqO,EAAKrO,QAEhB+H,OAAQ,SAAS6D,UACNyC,EAAKzC,IAEhB9D,IAAK,SAASlC,GACV,IAAK,IAAIxF,EAAIiO,EAAKrO,OAAQI,KAAM,CAC5B,GAAIiO,EAAKjO,KAAOwF,EAAM,CAClBmG,EAAM3L,EACN,QAGR4D,KAAKyM,OAAO7K,GACZmG,EAAMsC,EAAKrO,OAAS,GAExB0Q,MAAO,WACH,GAAIrC,EAAKrO,OAAQ,CACb,IAAI4L,EAAQG,EACZ,IAAI4E,EAAU,MACd,OAAQtC,EAAKzC,GAAQ,CACjBA,IACA,GAAIA,EAAQyC,EAAKrO,OAAQ,CACrB,GAAI2Q,EAAS,CACT,MAEJ/E,EAAQ,EACR+E,EAAU,MAGlB,OAAOtC,EAAKzC,KAGpBjH,IAAK,SAASP,GACV,OAAOiK,EAAK1J,IAAI,SAASiB,EAAMxF,GAC3B,UAAWwF,IAAS,YAAa,CAC7B,OAAOxB,EAAGwB,EAAMxF,GAEpB,OAAO,OACRoQ,OAAOI,UAEdC,QAAS,SAASzM,GACd,OAAOiK,EAAKwC,QAAQ,SAASjL,EAAMxF,GAC/B,UAAWwF,IAAS,YAAa,CAC7BxB,EAAGwB,EAAMxF,OAIrBqQ,OAAQ,SAAS7K,GACbyI,EAAK1N,KAAKiF,MAOtB,SAASkL,MAAMC,GACX,IAAI1C,EAAO0C,aAAgBrL,MAAQqL,EAAOA,EAAO,CAACA,GAAQ,GAC1DxN,EAAEqE,OAAO5D,KAAM,CACXqK,KAAM,WACF,OAAOA,GAEX1J,IAAK,SAASP,GACV,OAAOb,EAAEoB,IAAI0J,EAAMjK,IAEvB4M,KAAM,WACF,OAAO3C,EAAKrO,QAEhBiR,IAAK,WACD,GAAI5C,EAAKrO,SAAW,EAAG,CACnB,OAAO,SACJ,CACH,IAAImJ,EAAQkF,EAAKA,EAAKrO,OAAS,GAC/BqO,EAAOA,EAAKnM,MAAM,EAAGmM,EAAKrO,OAAS,GACnC,OAAOmJ,IAGfxI,KAAM,SAASwI,GACXkF,EAAOA,EAAK6C,OAAO,CAAC/H,IACpB,OAAOA,GAEXgI,IAAK,WACD,OAAO9C,EAAKrO,OAAS,EAAIqO,EAAKA,EAAKrO,OAAS,GAAK,MAErD8F,MAAO,WACH,OAAO,IAAIgL,MAAMzC,EAAKnM,MAAM,OAOxC,SAASkP,QAAQC,EAAML,EAAMM,GACzB,IAAIC,EAAU,KACd,IAAIC,EAAc,GAClB,UAAWH,IAAS,UAAYA,IAAS,GAAI,CACzCG,EAAcH,EAAO,IAEzBG,GAAe,WACf,IAAInD,EACJ,GAAIiD,EAAQ,CACRjD,EAAO,OACJ,CACHA,EAAO9K,EAAEsE,QAAQhD,IAAI2M,GACrBnD,EAAOA,EAAOoD,KAAKhS,MAAM4O,GAAQ,GAErC,IAAItC,EAAMsC,EAAKrO,OAAS,EACxBuD,EAAEqE,OAAO5D,KAAM,CACXyM,OAAQ,SAAS7K,GACb,GAAI2L,EAAS,CACT,GAAIlD,EAAKA,EAAKrO,OAAS,KAAO4F,EAAM,CAChCyI,EAAK1N,KAAKiF,GACV,GAAIoL,GAAQ3C,EAAKrO,OAASgR,EAAM,CAC5B3C,EAAOA,EAAKnM,OAAO8O,GAEvBjF,EAAMsC,EAAKrO,OAAS,EACpB,IAAKsR,EAAQ,CACT/N,EAAEsE,QAAQC,IAAI0J,EAAaC,KAAKC,UAAUrD,QAK1DvG,IAAK,SAAS6J,GACV,GAAIA,aAAoBjM,MAAO,CAC3B2I,EAAOsD,EACP,IAAKL,EAAQ,CACT/N,EAAEsE,QAAQC,IAAI0J,EAAaC,KAAKC,UAAUrD,OAItDA,KAAM,WACF,OAAOA,GAEXuD,MAAO,WACH7F,EAAMsC,EAAKrO,OAAS,GAExB6R,KAAM,WACF,OAAOxD,EAAKA,EAAKrO,OAAS,IAE9B8R,IAAK,WACD,OAAO/F,IAAQsC,EAAKrO,OAAS,GAEjC+R,SAAU,WACN,OAAOhG,GAEXiG,QAAS,WACL,OAAO3D,EAAKtC,IAEhBkG,KAAM,WACF,IAAIC,EAAMnG,EACV,GAAIA,EAAMsC,EAAKrO,OAAS,EAAG,GACrB+L,EAEN,GAAImG,IAAQnG,EAAK,CACb,OAAOsC,EAAKtC,KAGpBoG,SAAU,WACN,IAAID,EAAMnG,EACV,GAAIA,EAAM,EAAG,GACPA,EAEN,GAAImG,IAAQnG,EAAK,CACb,OAAOsC,EAAKtC,KAGpBqG,MAAO,WACH/D,EAAO,GACPrK,KAAKqO,SAETd,QAAS,WACL,OAAOA,GAEXe,OAAQ,WACJf,EAAU,MAEdc,MAAO,WACH,IAAKf,EAAQ,CACT/N,EAAEsE,QAAQE,OAAOyJ,KAGzBe,QAAS,WACLhB,EAAU,OAEdiB,OAAQ,SAASrJ,GACb,UAAWA,IAAU,YAAa,CAC9BoI,GAAWA,MACR,CACHA,EAAUpI,MAQ1B,IAAIsJ,UAAY,EAChBlP,EAAEmP,IAAM,CACJC,SAAU,CACNC,KAAM,MACNC,oBAAqB,KACrBC,YAAa,GACbC,OAAQ,KACRxB,QAAS,KACTyB,QAAS,KACTC,iBAAkB1P,EAAE2P,KACpBC,gBAAiB5P,EAAE2P,KACnBE,aAAc,IACdC,YAAa,IACbC,kBAAmB,IACnBC,KAAM,IAGdhQ,EAAEa,GAAGsO,IAAM,SAASc,GAChB,IAAIC,EAAWlQ,EAAEqE,OAAO,GAAIrE,EAAEmP,IAAIC,SAAUa,GAC5C,IAAI1I,EAAO9G,KACX,IAAI0P,EAAa5I,EAAKuD,KAAK,OAC3B,GAAIqF,EAAY,CACZ,OAAOA,EAEX,IAAIC,EAAKlB,YACT3H,EAAKmE,SAAS,OACdnE,EAAK2F,OAAO,gCACZ3F,EAAK2F,OAAO,4BACA,gBACA,qCACA,gBACA,UAEZtB,UAAUrE,EAAK6D,KAAK,iBAIpB,IAAIiF,EAAOrQ,EAAE,cAAc6L,KAAK,CAC5ByE,eAAgB,MAChBC,WAAY,QACZC,SAAU,IACX9E,SAAS,aAAaC,SAASpE,GAAMkJ,IAAI,KAC5C,GAAIP,EAASQ,MAAO,CAChBnJ,EAAKmJ,MAAMR,EAASQ,OAExB,IAAIC,EACJ,IAAIC,EACJ,IAAIC,EACJ,IAAIC,EACJ,IAAIC,EAAcxJ,EAAK6D,KAAK,WAC5B,IAAI4F,EAAiB,MACrB,IAAIC,EAAiB,GACrB,IAAIC,EAA0B,KAC9B,IAAIC,EACJ,IAAIC,EAAU,GACd,IAAIC,EAEJ,IAAIC,EAAY,GAChB,IAAI9C,EAAW,EACf,IAAIgB,EACJ,IAAIxB,EACJ,IAAIuD,EAAqB,EACzB,IAAIzD,EAAM2B,EACV,IAAIlT,EAASgL,EAAK6D,KAAK,WACvB,IAAIoG,EACJ,IAAIC,EACJ,IAAIC,EAAc,EAClB,SAASC,EAAaxO,GAClB,IAAIoJ,EAAOvM,EAAEmD,EAAEsF,QACf,GAAI8D,EAAKhC,GAAG,QAAS,CACjBgC,EAAOA,EAAKqF,QAAQ,eACpB,OAAOrF,EAAKlE,QACRkE,EAAKsF,OAAO,QAAQC,UAAU1G,KAAK,eAAe3O,OAClD8P,EAAKqF,QAAQ,yBACRG,UAAU,WAAW3G,KAAK,eAAe3O,YAC/C,GAAI8P,EAAKhC,GAAG,4BAA6B,CAC5C,IAAI+D,GAAQ/B,EAAKyF,UAAU,YAAYvV,OACvC,OAAO8P,EAAKnB,KAAK,mBAAmB3O,OAChC8P,EAAKwF,UAAU,WAAW3G,KAAK,mBAAmB3O,QACjD6R,EAAO,EAAI,IAIxB,IAAI2D,EAAc,CACdC,SAAY,IACZC,GAAM,UACNC,KAAQ,YACRC,KAAQ,YACRC,MAAS,aACTC,IAAO,SACPC,SAAY,IACZC,OAAU,IACVC,SAAY,IACZC,IAAO,KAEX,SAASC,EAAQzP,GACb,GAAIA,EAAEnB,IAAK,CACP,IAAIA,EAAMmB,EAAEnB,IAAIlE,cAChB,GAAImU,EAAYjQ,GAAM,CAClBA,EAAMiQ,EAAYjQ,GAEtB,GAAIA,IAAQ,UAAW,CACnB,MAAO,WACJ,CACH,IAAI6Q,EAAQ,GACZ,GAAI1P,EAAE2P,QAAS,CACXD,EAAMzV,KAAK,QAEf,GAAI+F,EAAE4P,SAAW/Q,IAAQ,OAAQ,CAC7B6Q,EAAMzV,KAAK,QAEf,GAAI+F,EAAE6P,UAAYhR,IAAQ,QAAS,CAC/B6Q,EAAMzV,KAAK,SAEf,GAAI+F,EAAE8P,QAAUjR,IAAQ,MAAO,CAC3B6Q,EAAMzV,KAAK,OAEf,GAAIyV,EAAMpW,QAAUuF,IAAQ,IAAK,CAC7BA,EAAM,WAEV,GAAImB,EAAEnB,IAAK,CACP6Q,EAAMzV,KAAK4E,GAEf,OAAO6Q,EAAM5U,KAAK,OAI9B,IAAIiV,EACJ,IAAIC,EAAiB,CACjBC,QAASC,EAAY,MACrBC,cAAeD,EAAY,OAC3BE,oBAAqBF,EAAY,OACjCG,MAAS,WACL,GAAI/D,GAAW2B,IAAYlB,EAASb,OAC/BnN,YAAYgO,EAASuD,gBACrBvD,EAASuD,cAAcrC,KACvBlB,EAASuD,yBAAyBtL,QAClCiJ,EAAQrU,MAAMmT,EAASuD,iBACvBvD,EAASuD,cAAe,CACzBhE,EAAQvC,OAAOkE,GAEnB,IAAIvP,EAAMuP,EACV3B,EAAQpB,QAGRqF,GAAe,GACfC,GAAa,KAEbpM,EAAKhD,IAAI,IACT,GAAI2L,EAAS0D,SAAU,CACnB1D,EAAS0D,SAASxX,KAAKmL,EAAM1F,GAEjC,GAAIK,YAAYsN,GAAS,CACrBqE,KAEJxD,EAAKI,IAAI,IACT,OAAO,OAEXqD,cAAe,WACXvM,EAAKwM,OAAO,MACZ,OAAO,MAEXC,UAAaC,EACbC,kBAAmBD,EACnBE,IAAO,WACH5M,EAAKwM,OAAO,OAEhBK,SAAU,WACN7M,EAAK,UAAU,GACf,OAAO,OAEX8M,OAAU,WACN9M,EAAK,UAAU,GACf,OAAO,MAEX+M,QAAWC,EACXC,SAAUD,EACVE,UAAaC,EACbC,SAAUD,EACVE,UAAapI,EACbqI,iBAAkBrI,EAClBsI,SAAUtI,EACVuI,iBAAkB,WAEd,IAAIC,EAAMxG,EAAW,EACrB,IAAIhG,EAAM,EACV,GAAI4I,EAAQ4D,KAAS,IAAK,GACpBA,EAEN,IAAK,IAAInY,EAAImY,EAAKnY,EAAI,IAAKA,EAAG,CAC1B,GAAIuU,EAAQvU,KAAO,KAAOuU,EAAQvU,EAAI,KAAO,IAAK,CAC9C2L,EAAM3L,EAAI,EACV,WACG,GAAIuU,EAAQvU,KAAO,MACfuU,EAAQvU,EAAI,KAAO,KAAM,CAChC2L,EAAM3L,EACN,OAGR0K,EAAKiH,SAAShG,IAElByM,SAAU,WACN,GAAIjE,EAAgB,CAChBkE,EAAuB,UACpB,CACH/D,EAAgB3B,EAChB2F,IACA9D,EAAeD,EACf7J,EAAKhD,IAAI,IACT6Q,KACApE,EAAiB,KAErB,OAAO,OAEXqE,SAAU,WACN,GAAIrE,EAAgB,CAChBxB,EAAS2B,EACT0C,KACAtM,EAAKhD,IAAI8M,GACT+D,KACApE,EAAiB,MACjBC,EAAiB,GACjB,OAAO,QAGfqE,WAAcC,EACdC,kBAAmBD,EACnBE,SAAUF,EACVG,kBAAmB,WAEf,GAAItE,EAAQ5C,KAAc,IAAK,GACzBA,EAEN,IAAImH,EAAK,0BACT,IAAI5Y,EAAQqU,EAAQzS,MAAM6P,GAAUzR,MAAM4Y,GAC1C,IAAK5Y,GAASA,EAAM,GAAGA,MAAM,SAAU,CACnCwK,EAAKiH,SAAS4C,EAAQ3U,aACnB,GAAIM,EAAM,GAAG,KAAO,IAAK,CAC5ByR,GAAYzR,EAAMsL,MAAQ,MACvB,CACHmG,GAAYzR,EAAMsL,MAAQtL,EAAM,GAAGN,OAAS,EAC5C,GAAIM,EAAM,GAAGA,EAAM,GAAGN,OAAS,KAAO,IAAK,GACrC+R,GAGV4G,MAEJQ,IAAOC,EACPC,IAAOvH,EACPwH,SAAUxH,EACVyH,KAAQC,EACRC,SAAUD,EACVE,eAAgBC,EAChBC,eAAgBR,EAChBS,SAAUC,EAAqB,MAC/BC,iBAAkBD,EAAqB,OACvCE,uBAAwBF,EAAqB,OAC7CG,SAAU,WACN,GAAItF,IAAY,IAAM5C,EAAW,EAAG,CAChCjH,EAAK,WAAW,GAEpB,OAAO,OAEXoP,SAAUd,EACVe,SAAUf,EACVgB,SAAUhB,EACViB,SAAU,WACN,GAAIxF,IAAc,GAAI,CAClB/J,EAAKwM,OAAOzC,KAGpByF,SAAUX,EACVY,SAAUZ,EACVa,SAAU,WACN,GAAI7F,EAAQ3U,OAAS+R,EAAU,CAC3B8C,EAAY/J,EAAK,UAAU6J,EAAQ3U,OAAS+R,GAC5C0I,kBAAkB3P,EAAM+J,GAE5B,OAAO,OAEX6F,SAAU,WACN,GAAI/F,IAAY,IAAM5C,IAAa,EAAG,CAClC8C,EAAY/J,EAAK,WAAWiH,GAC5B0I,kBAAkB3P,EAAM+J,GAE5B,OAAO,OAEX8F,WAAY,WACR,OAAO,OAEXC,SAAUxB,EACVyB,SAAUzB,EACV0B,SAAU1B,GAGd,SAASxC,EAAYmE,GACjB,OAAO,SAASnE,IACZ,IAAIsC,EAAK,wBACT,IAAI9X,EAAYuT,EAAQzS,MAAM6P,GAC9B,IAAIiJ,EAAI5Z,EAAUd,MAAM4Y,GACxB,GAAI8B,EAAG,CACHnG,EAAYmG,EAAE,GACd,GAAID,EAAW,CACXN,kBAAkB3P,EAAM+J,IAGhC/J,EAAKhD,IACD6M,EAAQzS,MAAM,EAAG6P,GACb4C,EAAQzS,MAAM6P,GAAUlG,QAAQqN,EAAI,IACxC,MAGJ,OAAO,OAIf,SAASY,EAAqBiB,GAC1B,OAAO,SAASjB,IAEZ,GAAInF,IAAY,IAAM5C,IAAa,EAAG,CAClC,IAAIiJ,EAAIrG,EAAQzS,MAAM,EAAG6P,GAAUzR,MAAM,cACzC,GAAI0a,EAAE,GAAGhb,OAAQ,CACb6U,EAAY/J,EAAK,WAAWkQ,EAAE,GAAGhb,QACjC,GAAI+a,EAAW,CACXN,kBAAkB3P,EAAM+J,KAIpC,OAAO,OAIf,SAASuE,IACL,OAAO,KAGX,SAASO,IACL/F,EAAKI,IAAI,IACTiB,EAAc,EACd,GAAInK,EAAKmQ,cAAgBrH,EAAK9F,GAAG,UAAW,CACxC8F,EAAKsH,QAAQ,QAAS,CAAC,OAE3BtH,EAAKnJ,IAAI,QAAS0Q,IAClB,OAAO,KAGX,SAASrD,IACL,GAAIsD,GAAkB,CAClBxG,EAAeD,EACf7J,EAAKhD,IAAIkL,EAAQhB,eACd,CACHlH,EAAKhD,IAAIkL,EAAQb,YAErBiJ,GAAmB,MACnB,OAAO,MAGX,SAASnD,IACLnN,EAAKhD,IAAIkL,EAAQlB,MAAQ8C,EAAe5B,EAAQf,QAChD,OAAO,MAGX,SAASuF,IACL,GAAIjD,EAAgB,CAChBC,EAAiBA,EAAetS,MAAM,GAAI,GAC1CwW,SACG,GAAI/D,IAAY,IAAM5C,EAAW,EAAG,CACvCjH,EAAK,WAAW,GAKpBA,EAAKxC,QAAQ,EAAG,WACZ4O,GAAa,OAIrB,SAASnH,IACL,GAAIgC,EAAW,EAAG,CACdjH,EAAKiH,UAAU,EAAG,MAClB4G,MAIR,SAASG,IACL,GAAI/G,EAAW4C,EAAQ3U,OAAQ,CAC3B8K,EAAKiH,SAAS,EAAG,MAErB,OAAO,MAGX,SAASyH,IACL1O,EAAKiH,SAAS,GAGlB,SAASD,IACLhH,EAAKiH,SAAS4C,EAAQ3U,QAG1B,SAASqb,IAEL,IAAIjP,EAAQwH,EAAK9F,GAAG,UACpB,GAAIyD,EAAS,CACT,IAAKnF,EAAO,EAGZtB,EAAKxC,QAAQ,GAAI,WACb,IAAKsL,EAAK9F,GAAG,WAAayD,EAAS,CAC/BqC,EAAKsH,QAAQ,QAAS,CAAC,eAG5B,GAAI9O,IAAUkP,YAAc/J,GAAU,CACzCqC,EAAKsH,QAAQ,OAAQ,CAAC,QAO9B,SAASK,IACL,GAAIC,oBAAqB,CACrB,IAAIC,EAAQ7Y,OAAO8Y,iBAAiB5b,EAAO,IAC3C,IAAI6b,EAAgBF,EAAMG,iBAAiB,eAC3CD,EAAgBA,EAAc9P,QAAQ,aAAc,IACpD,IAAIgQ,EAAS/Q,EAAKsE,KAAK,SACvB,GAAIyM,EAAOvb,MAAM,cAAe,CAC5Bub,EAASA,EAAOhQ,QAAQ,oBAAqB,IAEjD,GAAI8P,IAAkBA,EAAcrb,MAAM,SAAU,CAChD,IAAIwb,EAAYH,EAAc9P,QAAQ,YAAa,IAAM,aACzD,IAAKgQ,EAAOvb,MAAMwb,GAAY,CAC1BD,GAAU,IAAMC,GAGxB,GAAID,IAAW/Q,EAAKsE,KAAK,SAAU,CAC/BtE,EAAKsE,KAAK,QAASyM,KAS/B,SAASE,EAAaC,GAClB,IAAKlR,EAAKmQ,YAAa,CACnB,OAGJnQ,EAAKxC,QAAQ,GAAI,WAGb,GAAIsL,EAAKI,QAAUW,IAAYqH,EAAe,CAC1CpI,EAAKI,IAAI,IAAMW,GAEnB,GAAIpD,EAAS,CACTzG,EAAKxC,QAAQ,GAAI,WACb,IAEI,GAAIsL,EAAK9H,UAAYiG,EAAW,EAAG,CAC/B6B,EAAK9H,MAAMiG,EAAW,IAE5B,MAAOrL,UAWzB,GAAI8U,sBAAwBS,WAAY,CACpClH,EAAY,SAASvC,GACjB,GAAIA,EAAQ,CACR1S,EAAOmP,SAAS,aACb,CACHnP,EAAOoc,YAAY,WAG3BlH,EAAoB,WAChB,IAAImH,EAAarc,EAAOgG,QACxBqW,EAAWC,aAAatc,GACxBA,EAAOiI,SACPjI,EAASqc,OAEV,CACH,IAAIE,EAAY,MAChBtH,EAAY,SAASvC,GACjB,GAAIA,IAAW6J,EAAW,CACtBA,EAAY,KACZvc,EAAOmP,SAAS,kBAChBnE,EAAK9C,UAAU,IAAK,QAASsU,QAC1B,GAAID,IAAc7J,EAAQ,CAC7B6J,EAAY,MACZvR,EAAKvC,SAAS,QAAS+T,GACvBxc,EAAOoc,YAAY,oBAG3BlH,EAAoB,WAChBD,EAAU,OACVA,EAAU,OAMlB,SAASuH,IACLxc,EAAOyc,YAAY,YAKvB,SAAS7D,IACL3F,EAAS,sBAAwByB,EAAiB,MAClD4C,KAKJ,SAASoF,IACLzJ,EAAS2B,EACTH,EAAiB,MACjBE,EAA0B,KAC1BD,EAAiB,GAOrB,SAASiE,EAAuBxG,GAC5B,IAAIwK,EAAezJ,EAAQ3E,OAC3B,IAAI5F,EAAOiU,EACX,IAAInE,EAAMkE,EAAazc,OACvB,GAAIiS,GAAQwC,EAA0B,EAAG,CACrC8D,GAAO9D,EAEX,GAAID,EAAexU,OAAS,EAAG,CAC3B,IAAK,IAAI2c,EAAInI,EAAexU,OAAQ2c,EAAI,EAAGA,IAAK,CAC5CD,EAAcnZ,EAAEqZ,SAASC,aAAarI,EAAepT,UAAU,EAAGub,IAClE,GAAIlJ,EAASZ,oBAAqB,CAC9BpK,EAAQ,IAAIiD,OAAOgR,OAChB,CACHjU,EAAQ,IAAIiD,OAAOgR,EAAa,KAEpC,IAAK,IAAItc,EAAImY,EAAKnY,KAAM,CACpB,GAAIqI,EAAM7H,KAAK6b,EAAarc,IAAK,CAC7BqU,EAA0BgI,EAAazc,OAASI,EAChD0K,EAAKiH,SAAS0K,EAAarc,GAAGqH,QAAQiV,IACtC5R,EAAKhD,IAAI2U,EAAarc,GAAI,MAC1BuY,KACA,GAAInE,EAAexU,SAAW2c,EAAG,CAC7BnI,EAAiBA,EAAepT,UAAU,EAAGub,GAC7CjE,IAEJ,UAKhBlE,EAAiB,GAKrB,SAASsI,IACL,IAAIC,EAAUjS,EAAK6D,KAAK,WAAWqO,KAAK,uBACxC,IAAIC,EAAInS,EAAKmJ,QACb,IAAIiJ,EAAIH,EAAQpO,KAAK,QAAQ,GAAGwO,wBAAwBlJ,MACxDC,EAAYkJ,KAAKC,MAAMJ,EAAIC,GAM/B,SAASI,GAA0BC,GAC/B,SAAS9W,EAAM8W,GACX,OAAOha,EAAEqZ,SAASY,YAAYD,EAAQrJ,GAE1C,SAASuJ,EAAWjY,GAEhB,OAAOA,EAAMgL,OAAO,SAASkN,GACzB,OAAQna,EAAEqZ,SAASe,MAAMD,GAAMpd,MAAM,SAG7C,IAAIod,EAAOpJ,EAAY3F,KAAK,SAC5B,IAAIoE,EACJ,GAAI2K,EAAK1d,OAAQ,CACb+S,EAAS2K,EAAKnI,UAAU,SAAS3Q,WAC9B,CACHmO,EAASuB,EAAY1P,OAEzBmO,EAASxP,EAAEqZ,SAASgB,gBAAgB7K,GACpC,IAAImG,EAAK,IAAIxN,OAAO,IAAMnI,EAAEqZ,SAASC,aAAa9J,IAClD,IAAIvN,EACJ,GAAI+X,EAAOjd,MAAM,MAAO,CACpB,IAAI8E,EAAMmY,EAAO9W,MAAM,MACvB,IAAIoX,EAAY3J,EAAYG,EAAa,EACzC,IAAK,IAAIjU,EAAI,EAAGA,EAAIgF,EAAIpF,OAAS,IAAKI,EAAG,CACrCgF,EAAIhF,IAAM,IAGd,GAAI0d,OAAO1Y,EAAI,IAAMyY,EAAW,CAC5BrY,EAAQiB,EAAMsM,EAAS3N,EAAI,IAC3BI,EAAM,GAAKA,EAAM,GAAGqG,QAAQqN,EAAI,IAChC1T,EAAQiY,EAAWjY,OAChB,CACHA,EAAQ,CAACJ,EAAI,IAGjB,IAAKhF,EAAI,EAAGA,EAAIgF,EAAIpF,SAAUI,EAAG,CAC7B,GAAI0d,OAAO1Y,EAAIhF,IAAM8T,EAAW,CAC5B,IAAI6J,EAAWtX,EAAMrB,EAAIhF,IACzB,GAAIA,EAAIgF,EAAIpF,OAAS,EAAG,CACpB+d,EAAWN,EAAWM,GAE1BvY,EAAQA,EAAM0L,OAAO6M,OAClB,CACHvY,EAAM7E,KAAKyE,EAAIhF,UAGpB,CACHoF,EAAQiB,EAAMsM,EAASwK,EAAQrJ,GAC/B1O,EAAM,GAAKA,EAAM,GAAGqG,QAAQqN,EAAI,IAGpC,GAAI1T,EAAMxF,OAAS,GAAKwF,EAAMA,EAAMxF,OAAS,GAAGA,SAAWkU,EAAW,CAClE1O,EAAM7E,KAAK,IAEf,OAAO6E,EAKX,SAASwY,GAAWT,EAAQU,GAExB,IACIV,EAASha,EAAEqZ,SAASsB,kBAAkBX,GACtC,IAAI/J,EAAUjQ,EAAEqE,OAAO,GAAI6L,EAAU,CACjC0K,6BAA8B,KAC9BpM,SAAUA,IAEd,IAAIqM,EAAY7a,EAAEqZ,SAASyB,iBAAiBd,EAAQ/J,GACpD+J,EAASa,EAAU,GACnB,IAAKH,EAAyB,CAC1BnJ,EAAqBsJ,EAAU,GAEnCb,EAASha,EAAEqZ,SAAS0B,UAAUf,GAC9B,IAAIgB,EAAMhb,EAAEqZ,SAAS5c,OAAOud,GAG5B,GAAIzI,EAAqByJ,EAAK,CAC1BzJ,EAAqByJ,EAEzB,OAAOhB,EACT,MAAO7W,GACL8I,gBAAgB,eAAgB9I,EAAEkJ,OAClC,OAAO2N,GAMf,SAAS7d,GAAO6d,EAAQiB,GACpB,IAAIC,EAAUlb,EAAEqZ,SAAS8B,OAAOC,GAAKpB,GAAS,CAC1ChK,KAAME,EAASF,KACfiL,OAAQA,IAEZjB,EAASha,EAAEqZ,SAASld,OAAO+e,EAAS,CAChCG,WAAYnL,EAASmL,aAEzB,IAAI1F,EAAK,8CACT,OAAOqE,EAAO1R,QAAQqN,EAAI,uBAO9B,SAASyF,GAAKpB,GACV,SAASS,EAAWT,GAChB,GAAIha,EAAEqZ,SAASiC,cAActB,GAAS,CAClC,GAAIA,EAAOjd,MAAM,UAAW,CACxBid,EAASA,EAAO1R,QAAQ,UAAW,eAEpC,CACH,GAAI0R,EAAOjd,MAAM,OAAQ,CACrBid,GAAU,KAEdA,EAAS,QAAUA,EAAS,IAEhC,OAAOA,EAEX,IAAIhF,EAAMvY,GAAOud,GACjB,GAAIhF,IAAQ,EAAG,CACX,OAAOyF,EAAWT,GAEtB,IAAIhZ,EAAS,GAGb,IAAK,IAAInE,EAAI,EAAGA,EAAImY,IAAOnY,EAAG,CAC1B,IAAIwE,EAAOrB,EAAEqZ,SAASxb,UAAUmc,EAAQnd,EAAGA,EAAI,GAC/CmE,EAAO5D,KAAKqd,EAAWpZ,IAE3B,OAAOL,EAAO/C,KAAK,IAKvB,SAASxB,GAAOyD,GACZ,OAAOF,EAAEqZ,SAAS5c,OAAOyD,GAE7B,SAASrC,GAAUqC,EAAKqb,EAAOhN,GAC3B,OAAOvO,EAAEqZ,SAASxb,UAAUqC,EAAKqb,EAAOhN,GAM5C,IAAI6G,GAAS,WACT,IAAI6F,EAAS1e,EAAOif,OACpB,IAAIC,EAAQlf,EAAOmS,OACnB,IAAIgN,EAAcnf,EAAOsV,SAIzB,SAAS8J,EAAiB3B,EAAQ/J,GAC9B,IAAIC,EAAWlQ,EAAEqE,OAAO,CACpBmL,OAAQ,GACRlB,KAAM,OACP2B,GACH,IAAIzB,EAAW0B,EAAS1B,SACxB,IAAIwG,EAAMvY,GAAOud,GACjB,IAAIxK,EAASU,EAASV,OACtB,IAAIjM,EACJ,GAAIiL,IAAawG,EAAK,CAClBiG,EAAOxB,KAAKtd,GAAO6d,IACnBzd,EAAOkd,KAAK,oCACZgC,EAAMhC,KAAK,SACR,GAAIjL,IAAa,EAAG,CACvByM,EAAOxB,KAAK,IACZlW,EAAI1F,GAAUmc,EAAQ,EAAG,GACzBzd,EAAOkd,KAAKtd,GAAOoH,IACnBkY,EAAMhC,KAAKtd,GAAO0B,GAAUmc,EAAQ,GAAIxK,EAASjM,QAC9C,CACH,IAAIqY,EAAa5b,EAAEqZ,SAASxb,UAAUmc,EAAQ,EAAGxL,GACjDyM,EAAOxB,KAAKtd,GAAOyf,EAAYpM,IAC/BjM,EAAI1F,GAAUmc,EAAQxL,EAAUA,EAAW,GAC3C,IAAIqN,GAAYrM,EAASoM,GAAYtT,QAAQ,QAAS,IACtD/L,EAAOkd,KAAKtd,GAAOoH,EAAGsY,IACtB,GAAIrN,IAAawG,EAAM,EAAG,CACtByG,EAAMhC,KAAK,QACR,CACH,GAAIlW,EAAExG,MAAM,MAAO,CACf8e,EAAW,OACR,CACHA,GAAYtY,EAEhBkY,EAAMhC,KAAKtd,GAAO0B,GAAUmc,EAAQxL,EAAW,GAAIqN,KAI3D,IAAIC,EAAW5L,EAAS1B,YAAc0B,EAAS5B,KAAO0G,EAAMA,EAAM,GAClEzY,EAAOyc,YAAY,WAAY8C,GAE/B9D,IAIAvG,IAEJ,SAASsK,EAAI/B,EAAQiB,GACjB,MAAO,+CACH9e,GAAO6d,EAAQiB,GAAU,IACzB,SAKR,SAASe,EAAYC,GACjB,IAAIC,EAAWR,EACf1b,EAAEiB,KAAKgb,EAAO,SAASpf,EAAGsd,GACtB+B,EAAWlc,EAAE+b,EAAI5B,IAAOgC,YAAYD,KAM5C,SAASE,EAAaH,GAClBjc,EAAEiB,KAAKgb,EAAO,SAASpf,EAAGsd,GACtBuB,EAAYT,OAAOc,EAAI5B,EAAMtd,IAAM,EAAIgU,EAAmB,OAMlE,OAAO,WACH,IAAImJ,EACJ,cAAe9J,EAASb,MACpB,IAAK,UACD2K,EAAS9J,EAASb,KAAO+B,EAAQ9I,QAAQ,KAAM,KAAO8I,EACtD,MACJ,IAAK,SACD4I,EAAS5I,EAAQ9I,QAAQ,KAAM4H,EAASb,MACxC,MAER2K,EAASS,GAAWT,GACpB,IAAIxR,EAAM+I,EACV,IAAI1U,EACJ0K,EAAK6D,KAAK,4CAA4C5G,SACtDyW,EAAOxB,KAAK,IAEZ,GAAIc,OAAOlZ,KAAK2Y,IAAWrJ,EAAYG,EAAa,GAChDkJ,EAAOjd,MAAM,MAAO,CACpB,IAAIiT,EAAOgK,EAAOjd,MAAM,OACxB,IAAIsf,EAAkBrC,EAEtB,GAAIhK,EAAM,CACNgK,EAASA,EAAO1R,QAAQ,MAAO,YAEnC,IAAIrG,EAAQ8X,GAA0BC,GACtC,GAAIhK,EAAM,CACN/N,EAAQjC,EAAEoB,IAAIa,EAAO,SAASkY,GAC1B,OAAOA,EAAK7R,QAAQ,oBAAqB,QAGjD,IAAIgS,EAAY7d,GAAOwF,EAAM,IAE7B,GAAIqY,IAAc,GAAKrY,EAAMxF,SAAW,EAAG,OAEpC,GAAI+L,EAAM8R,EAAW,CACxBqB,EAAiB1Z,EAAM,GAAI,CACvBuM,SAAUhG,EACVgH,OAAQqB,IAEZmL,EAAY/Z,EAAMtD,MAAM,SACrB,GAAI6J,IAAQ8R,EAAW,CAE1BoB,EAAYT,OAAOc,EAAI9Z,EAAM,GAAI4O,IACjC8K,EAAiB1Z,EAAM,IAAM,GAAI,CAACuM,SAAU,IAC5C,GAAIvM,EAAMxF,OAAS,EAAG,CAClBuf,EAAY/Z,EAAMtD,MAAM,SAEzB,CACH,IAAI2P,EAAOrM,EAAMtD,OAAO,GAAG,GAC3B,IAAIqW,EAAMvY,GAAO4f,GACjB,IAAIC,EAAYtH,EAAMxM,EACtB,IAAI+T,EAAW9f,GAAO6R,GACtB,IAAIkO,EAAU,EACd,GAAIF,KAAe,EAAG,CAClBA,EAAY,EAEhB,GAAIA,GAAaC,EAAU,CACvBH,EAAana,EAAMtD,MAAM,GAAI,IAC7B,GAAI4d,IAAaD,EAAW,CACxBE,EAAU,MACP,CACHA,EAAUD,EAAWD,EAEzBX,EAAiBrN,EAAM,CACnBE,SAAUgO,EACVlO,KAAM,WAEP,CAEH,IAAImO,EACJ,IAAIhO,EACJ+N,EAAUhU,EACV,IAAK3L,EAAI,EAAGA,EAAIoF,EAAMxF,SAAUI,EAAG,CAC/B,IAAI6f,EAAc1c,EAAEqZ,SAAS5c,OAAOwF,EAAMpF,IAC1C,GAAI2f,EAAUE,EAAa,CACvBF,GAAWE,MACR,CACH,OAGRjO,EAAUxM,EAAMpF,GAChB4f,EAAa5f,EAEb,GAAI2f,IAAY/f,GAAOgS,GAAU,CAC7B+N,EAAU,EACV/N,EAAUxM,IAAQwa,GAClB,GAAIhO,IAAYlP,UAAW,CAEvB,IAAIod,EAAM3c,EAAEqZ,SAASjK,SAASwN,QAAQC,YACtC,MAAM,IAAIza,MAAMua,IAGxBhB,EAAiBlN,EAAS,CACtBD,SAAUgO,IAEdJ,EAAana,EAAMtD,MAAM,EAAG8d,IAC5BT,EAAY/Z,EAAMtD,MAAM8d,EAAa,KAG7ClV,EAAK6D,KAAK,mCAAmC8B,OAAO,sBACjD,GAAI8M,IAAW,GAAI,CACtBiB,EAAOxB,KAAK,IACZld,EAAOkd,KAAK,oCACZgC,EAAMhC,KAAK,QACR,CACHkC,EAAiB3B,EAAQ,CAACxL,SAAUhG,MAtLnC,GA8Lb,IAAIsU,GAAgB,WAChB,SAASC,EAAIC,EAAYxU,GACrB,IAAIyU,EAAOjd,EAAEqE,OAAO,GAAI6L,EAAU,CAC9B1B,SAAUhG,IAEd,IAAI0U,EAAQld,EAAEqZ,SAASyB,iBAAiB1J,EAAS6L,GAAM,GACvD,GAAIC,IAAUF,EAAY,CACtB,OAAO,OACJ,GAAIE,EAAQF,EAAY,CAC3B,OAAO,MACJ,CACH,OAAQ,GAGhB,OAAO,SAAShD,EAAQzI,GACpB,GAAIA,IAAuB,EAAG,CAC1B,OAAO,EAEXyI,EAAS3Y,KAAK2Y,GACd,IAAImD,EAAgBnD,EAAOvd,OAC3B,IAAI+L,EAAM4U,cAAc,EAAGD,EAAe5L,EAAoBwL,GAC9D,IAAIM,EAAQrd,EAAEqZ,SAASiE,iBAAiBtD,GACxC,GAAImD,EAAgBE,EAAM5gB,OAAQ,CAC9B,IAAIuY,EAAM,EACV,IAAK,IAAInY,EAAI,EAAGA,EAAIwgB,EAAM5gB,SAAUI,EAAG,CACnCmY,GAAOqI,EAAMxgB,GAAGJ,OAChB,GAAIuY,GAAOxM,EAAK,CACZ,OAAOwM,IAInB,OAAOxM,GA/BK,GAqCpB,IAAIqL,GAAc,WACd,SAAStP,EAAIiL,GACTA,EAASxP,EAAEqZ,SAASyB,iBAAiBtL,EAAQ,IAC7CA,EAASxP,EAAEqZ,SAAS0B,UAAUvL,GAC9BA,EAAS+N,KAAK/N,GACdoB,EAAuBpB,EACvB,IAAIyM,EAAQjc,EAAEqZ,SAASY,YAAYzK,EAAQmB,GAC3C,IAAIV,EAAU,CACVoL,WAAYnL,EAASmL,YAEzBxK,EAAmBoL,EAAMA,EAAMxf,OAAS,GACxC,IAAI+gB,EAAoBxd,EAAEqZ,SAAS8B,OAAOc,EAAMA,EAAMxf,OAAS,GAAI,CAC/DuT,KAAME,EAASF,OAEnB,IAAIyN,EAAYzd,EAAEqZ,SAASld,OAAOqhB,EAAmBvN,GACrD,IAAI4K,EAAYoB,EAAMtd,MAAM,GAAI,GAAGyC,IAAI,SAAS+Y,GAC5CA,EAAOna,EAAEqZ,SAAS8B,OAAOhB,EAAM,CAC3BnK,KAAME,EAASF,OAEnB,MAAO,sBACHhQ,EAAEqZ,SAASld,OAAOge,EAAMlK,GACxB,YACLtC,OAAO,CAAC8P,IAAYxf,KAAK,MAE5B,GAAI8S,EAAY0I,SAAWoB,EAAW,CAClC9J,EAAY0I,KAAKoB,GACjB/J,EAAayJ,OAAOlZ,KAAKmc,KAGjC,OAAO,WACH,cAAehO,GACX,IAAK,SACDjL,EAAIiL,GACJ,MACJ,IAAK,WACDA,EAAOpT,KAAKmL,EAAMhD,GAClB,QApCE,GA2ClB,SAASqT,KACL,GAAIlG,IAAgB,EAAG,CACnB,OAEJ,GAAInK,EAAKmQ,YAAa,CAElBnQ,EAAKxC,QAAQ,IAAK,WACdwC,EAAKwM,OAAO1D,EAAKI,OACjBJ,EAAKI,IAAIW,GACToH,OAIZ,SAASkF,KACL,GAAIxb,YAAYgO,EAASN,iBAAkB,CACvCM,EAASN,gBAAgBxT,KAAKmL,EAAM6J,IAM5CpR,EAAEqE,OAAOkD,EAAM,CACXoW,OAAQ,SAAS7P,EAAMlI,GACnB,UAAWA,IAAU,YAAa,CAC9B,OAAOsK,EAASpC,OACb,CACHoC,EAASpC,GAAQlI,EAErB,OAAO2B,GAEXuG,KAAM,SAASkM,GACX,GAAIA,IAAWza,UAAW,CACtBuO,EAAOkM,EACP,IAAIhM,EAAUyB,GAAWA,EAAQzB,YAAcyB,EAC/CA,EAAU,IAAI5B,QACVC,EACAoC,EAASX,YACTW,EAAST,UAAY,UAGzB,IAAKzB,EAAS,CACVyB,EAAQT,UAEZ,OAAOzH,MACJ,CACH,OAAOuG,IAGfgB,MAAO,WACHW,EAAQZ,QACR,OAAOtH,GAEXkI,QAAS,WACL,OAAOA,GAEXmO,OAAU,SAASta,EAAGua,GAClB,IAAIC,EACJ,GAAIxa,IAAM,EAAG,CACT,MAAO,QACJ,GAAIA,EAAI,EAAG,CACd,GAAIkL,EAAW,EAAG,CAGdsP,EAAU1M,EAAQzS,MAAM,EAAG6P,GAAU7P,MAAM2E,GAC3C8N,EAAUA,EAAQzS,MAAM,EAAG6P,EAAWlL,GAClC8N,EAAQzS,MAAM6P,EAAU4C,EAAQ3U,QACpC,IAAKohB,EAAM,CACPtW,EAAKiH,SAASA,EAAWlL,GAE7Boa,WAED,GAAItM,IAAY,IAAM5C,EAAW4C,EAAQ3U,OAAQ,CACpDqhB,EAAU1M,EAAQzS,MAAM6P,GAAU7P,MAAM,EAAG2E,GAC3C8N,EAAUA,EAAQzS,MAAM,EAAG6P,GACvB4C,EAAQzS,MAAM6P,EAAWlL,EAAG8N,EAAQ3U,QACxCihB,KAEJtI,KACAoD,IACA,OAAOsF,GAEXvZ,IAAK,SAASyV,EAAQ6D,EAAME,GACxB,GAAI/D,IAAWza,UAAW,CACtB6R,EAAU4I,EACV,IAAK6D,EAAM,CACPtW,EAAKiH,SAAS4C,EAAQ3U,QAE1B2Y,KACAoD,IACA,IAAKuF,EAAQ,CACTL,MAGR,OAAOnW,GAEX2L,OAAQ,SAAS8K,EAAYpY,GACzB,SAASwV,EAAKpZ,EAAKnB,GACf,IAAIod,EAAW9K,EAAenR,GAC9B,GAAIE,YAAY+b,GAAW,CACvBA,EAAWA,EAAS3b,KAAKiF,GAE7B,OAAO,SAASpE,GAEZ,OAAOtC,EAAGzE,KAAKmL,EAAMpE,EAAG8a,IAGhC,UAAWD,IAAe,YAAa,CACnC,OAAO9K,OACJ,UAAW8K,IAAe,SAAU,CACvC,UAAWpY,IAAU,YAAa,CAC9B,GAAIsN,EAAO8K,GAAa,CACpB,OAAO9K,EAAO8K,QACX,GAAI7K,EAAe6K,GAAa,CACnC,OAAO7K,EAAe6K,QAEvB,CACH9K,EAAO8K,GAAc5C,EAAK4C,EAAYpY,QAEvC,CACHsN,EAASlT,EAAEqE,OACP,GACA6O,EAASA,EAASC,EAClBnT,EAAEc,KAAKkd,GAAc,GAAI5C,IAE7B,OAAO7T,IAGfwM,OAAQ,SAASiG,EAAQ6D,GACrB,GAAIrP,IAAa4C,EAAQ3U,OAAQ,CAC7B2U,GAAW4I,OACR,GAAIxL,IAAa,EAAG,CACvB4C,EAAU4I,EAAS5I,MAChB,CACHA,EAAUA,EAAQzS,MAAM,EAAG6P,GACvBwL,EAAS5I,EAAQzS,MAAM6P,GAE/B,IAAKqP,EAAM,CACPtW,EAAKiH,SAASwL,EAAOvd,OAAQ,KAAM,UAChC,CACH+b,IAEJpD,KACAsI,KACAlF,IACA,OAAOjR,GAEXjG,IAAK,WACD,OAAO8P,GAEXwC,SAAU,SAASA,GACf,GAAIA,EAAU,CACV1D,EAAS0D,SAAWA,EACpB,OAAOrM,MACJ,CACH,OAAOqM,IAGfsK,QAAS,WACLC,GAAIzT,OAAO,eAAgB0T,IAC3BD,GAAIzT,OAAO,cAAe2T,IAC1BF,GAAIzT,OAAO,YAAa4T,IACxB/W,EAAKvC,SAAS,QAAS+T,GACvBxR,EAAK6D,KAAK,WAAWsD,OAAOlK,SAAS+J,MAAMiN,OAAOhX,SAC9C+J,MAAM/J,SACV+C,EAAK6D,KAAK,uBAAuB5G,SACjC+C,EAAKoR,YAAY,OAAO3N,WAAW,OAAOM,IAAI,QAC9C,OAAO/D,GAEXiI,OAAQ,SAAS+O,GACb,GAAIA,IAAgB,KAAM,CACtB,OAAO3N,OACJ,GAAI2N,IAAgBhf,UAAW,CAClC,OAAOiQ,MACJ,CACH,UAAW+O,IAAgB,iBAChBA,IAAgB,WAAY,CACnC/O,EAAS+O,MACN,CACH,MAAM,IAAInc,MAAM,uCAEpByR,KAGAuB,KACA,OAAO7N,IAGf+J,UAAW,WACP,OAAOA,GAEX9C,SAAU,SAASlL,EAAGkb,EAAUT,GAC5B,UAAWza,IAAM,SAAU,CACvB,IAAIkF,EAAMgG,EACV,GAAIgQ,EAAU,CACVhQ,GAAYlL,OACT,GAAIA,EAAI,EAAG,CACdkL,EAAW,OACR,GAAIlL,EAAI8N,EAAQ3U,OAAQ,CAC3B+R,EAAW4C,EAAQ3U,WAChB,CACH+R,EAAWlL,EAEf,GAAIkF,IAAQgG,IAAauP,EAAQ,CAC7B3I,KACA,GAAIlT,YAAYgO,EAASR,kBAAmB,CACxCQ,EAASR,iBAAiBlB,EAAU+C,GAExCiH,EAAa,MAEjB,OAAOjR,MACJ,CACH,OAAOiH,IAGfiQ,QAAS,WACL5K,KACAuB,KACA,OAAO7N,GAIXmX,iBAAkB,SAASpb,EAAGkb,GAC1B,GAAIlb,IAAM/D,UAAW,CACjB,OAAOgS,MACJ,CACH,IAAIyI,EAASS,GAAWrJ,EAAS,MACjC,IAAI4D,EAAMhV,EAAEqZ,SAAS5c,OAAOud,GAC5B,IAAI2E,EAActd,KAAK+P,GAAS3U,OAChC,IAAImiB,EACJ,GAAIJ,EAAU,CACVI,EAAoBrN,EAAqBjO,OACtC,GAAIA,EAAI0R,EAAK,CAChB4J,EAAoB5J,MACjB,CACH4J,EAAoBtb,EAExB,GAAI0R,IAAQ4J,EAAmB,CAC3BrN,EAAqBqN,EACrB,OAAOrX,EAAKiH,SAASmQ,GAEzB,IAAInW,EAAMsU,GAAc1L,EAASwN,GACjC,GAAIpW,KAAS,EAAG,CACZ+I,EAAqBqN,EACrBrX,EAAKiH,SAAShG,GAElB,OAAOjB,IAGfsX,QAAS,WACL,IAAIA,EAAUtX,EAAKsX,QACnB,OAAO,WACHA,EAAQhgB,MAAM0I,EAAM,IACpB6N,KACAvB,KACA,OAAOtM,GANN,GASTuX,KAAM,WACF,IAAIA,EAAOvX,EAAKuX,KAChB,OAAO,WACHA,EAAKjgB,MAAM0I,EAAM,IACjB6N,KACAvB,KACA,OAAOtM,GANT,GASNwX,OAAQ,SAASjZ,GACb,GAAIA,EAAK,CACL6K,EAAY7K,MACT,CACHyT,IAEJnE,KACAvB,KACA,OAAOtM,GAEXwH,OAAQ,SAASiQ,GACb,IAAKhR,EAAS,CACVA,EAAU,KACVzG,EAAKmE,SAAS,WACd,IACI2E,EAAK9H,MAAMiG,GACb,MAAOrL,IAGTqO,EAAU,MACV,IAAKwN,EAAS,CACVnL,KAEJmE,IACAQ,IAEJV,IACA,OAAOvQ,GAEXmQ,UAAW,WACP,OAAO1J,GAEXgB,QAAS,SAASnG,GACdmF,EAAU,MACVzG,EAAKoR,YAAY,WACjBnH,EAAU,OACV,IAAK3I,EAAO,CACRiP,IAEJ,OAAOvQ,GAEX8H,KAAM,SAAS4P,GACX,UAAWA,IAAa,YAAa,CACjC,OAAO/O,EAASb,SACb,CACHa,EAASb,KAAO4P,EAChB7J,KACA,OAAO7N,MAQnBA,EAAKuG,KAAKoC,EAASpC,MAAQoC,EAASV,QAAU,IAC9C,UAAWU,EAASV,SAAW,SAAU,CACrCA,EAASU,EAASV,WACf,CACHA,EAAS,KAEbqE,KACA,GAAI3D,EAASlC,UAAY,KAAM,CAC3BzG,EAAKwH,SAET,IAAKmB,EAAST,QAAS,CACnBA,EAAQT,UAEZ,IAAI6I,GAAmB,KAGvB,IAAIqH,GAAmB,MACvB,IAAIC,GAAW,MACf,IAAIC,GAAa,MACjB,IAAIC,GAAc,MAClB,IAAIC,GAAS,MACb,IAAI3L,GAAa,KACjB,IAAI4L,GAAY,MAChB,IAAIC,GAAU,MACd,IAAIC,GAAO,MACX,IAAIC,GAAa,MACjB,IAAIC,GAGJ,IAAIjM,GAAe,GAInB,SAASkM,GAAazc,GAClB,OAAOA,EAAEnB,IAAIlE,gBAAkB,aAAeqF,EAAE0c,QAAU,EAG9D,SAASC,GAAU3c,GACf,OAAOA,EAAEnB,KAAOmB,EAAEnB,IAAIvF,SAAW,IAAM0G,EAAE2P,QAG7C,SAASiN,GAAyB5c,GAE9B,OAAOA,EAAE0c,QAAU,IAAM1c,EAAE0c,QAAU,IACjC1c,EAAE0c,QAAU,IAAM1c,EAAE0c,QAAU,IAC9B1c,EAAE0c,QAAU,IAAM1c,EAAE0c,QAAU,IAC9B1c,EAAE0c,QAAU,IAAM1c,EAAE0c,QAAU,GAGtC,SAASxB,GAAclb,GACnBlD,MAAM,YAAckD,EAAEnB,IAAM,KAAOmB,EAAE6c,KAAO,IAAM7c,EAAE0c,OACpDL,IAAWrc,EAAEnB,KAAO,IAAI/C,gBAAkB,WAAakE,EAAE0c,QAAU,EACnE,IAAI7e,EACJme,GAAWE,IAAeD,KAAeQ,GAAazc,GAEtD,IACI,IAAKA,EAAE6c,KAAM,CACTZ,GAAaU,GAAU3c,GAEvBmc,GAAS/hB,OAAO4F,EAAEnB,KAAK/C,gBAAkB,eACzCsgB,GAAYK,GAAazc,IAE/B,MAAO8c,IAGT,GAAI9c,EAAEnB,MAAQ,eAAgB,CAC1B2R,GAAa,KAGb,OAEJ,IAAKxQ,EAAE6c,KAAM,CACTX,GAAc,KACd1L,GAAa,MAIjBtD,EAAK/E,IAAI,QAASsM,IAClB,IAAI5V,EAAM4Q,EAAQzP,GAClB,GAAIjB,YAAYgO,EAASgQ,SAAU,CAC/Blf,EAASkP,EAASgQ,QAAQ9jB,KAAKmL,EAAMpE,GACrC,GAAInC,IAAWzB,UAAW,CAEtB,IAAKyB,EAAQ,CACT2e,GAAc,KAElB,OAAO3e,GAGf,GAAIgN,EAAS,CACTzG,EAAKxC,QAAQmL,EAASJ,YAAa,OAAQ,WACvC2P,GAAO,OAEX,GAAIA,GAAM,CACNzd,EAAM,QAAUA,EAChB,GAAI0d,GAAY,CACZ,OAEJ,GAAIxP,EAASH,kBAAoB,EAAG,CAChC2P,GAAa,KACbnY,EAAKxC,QAAQmL,EAASH,kBAAmB,QAAS,WAC9C2P,GAAa,SAIzBjO,IAEAkO,GAAc,CAAC,SAAU,UAAUzb,QAAQlC,MAAU,EACrD,GAAImB,EAAE0c,QAAU,MAAQ1c,EAAE0c,QAAU,IAAM1c,EAAE2P,SAAU,CAClD+E,GAAmB,KAEvB,GAAI7G,GAAkB+O,GAAyB5c,GAAI,CAC/C8V,IACApF,KACA,GAAI1Q,EAAE0c,QAAU,GAAI,CAChBtY,EAAKhD,IAAI,IAEb6Q,KACA,GAAIjS,EAAE0c,QAAU,GAAI,CAChBxB,GAAcjiB,KAAKqE,KAAM0C,SAE1B,GAAIjB,YAAYgR,EAAOlR,IAAO,CACjChB,EAASkS,EAAOlR,GAAKmB,GACrB,GAAInC,IAAW,KAAM,CACjB,OAEJ,GAAIA,IAAWzB,UAAW,CACtB,OAAOyB,QAER,GAAImC,EAAE8P,OAAQ,CACjB,WACG,CACHiM,GAAmB,MACnB,SAOZ,SAASiB,KACL5Y,EAAKvC,SAAS,QACd0a,GAAaD,GAAO,MAExB,IAAItB,GAAMne,EAAEgD,SAASod,iBAAmB/gB,QACxCkI,EAAK2L,OAAOhD,EAASgD,QAAU,IAC/B,SAASkL,GAAejb,GACpBlD,MAAM,aAAekD,EAAEnB,IAAM,KAAOmB,EAAE6c,MACtCG,KACA,IAAInf,EACJ,IAAKmC,EAAE6c,KAAM,CACTX,GAAc,MAElB,IAAKlc,EAAE2P,SAAW3P,EAAE4P,WAAa5P,EAAE8P,OAAQ,CACvC,OAEJ,GAAIiM,GAAkB,CAClB,OAEJ,GAAIhd,YAAYgO,EAASmQ,UAAW,CAChCrf,EAASkP,EAASmQ,SAASjkB,KAAKmL,EAAMpE,GACtC,GAAInC,IAAWzB,UAAW,CACtB,IAAKyB,EAAQ,CACT2e,GAAc,KAElB,OAAO3e,GAGf,GAAIgN,EAAS,CACT,GAAI7K,EAAE6c,KAAM,CAGR,OAIJ,IAAIhe,EACJ,GAAIse,eAAiBnd,EAAE6c,KAAM,CACzBhe,EAAMmB,EAAEnB,IAER,IAAIue,EAAave,EAAIlE,cACrB,GAAImU,EAAYsO,GAAa,CACzBve,EAAMiQ,EAAYsO,IAG1B,IAAKve,GAAOsd,GAAQ,CAChBtd,EAAMzE,OAAOC,aAAa2F,EAAE0c,OAEhC,GAAI7f,EAAEwgB,QAAQrd,EAAE0c,MAAO,CAAC,GAAI,EAAG,KAAO,EAAG,CACrC,GAAI1c,EAAEsd,UAAY,IAAK,CACnB,OAEJ,OAAO,WAEJ,GAAIze,KAASmB,EAAE2P,SAAY3P,EAAE2P,SAAW3P,EAAE2P,aACnC3P,EAAE8P,QAAU9P,EAAE0c,QAAU,MAAQ1c,EAAE8P,UACpCkM,GAAU,CAElB,GAAInO,EAAgB,CAChBC,GAAkBjP,EAClBkT,IACAC,SACG,GAAInT,EAAIvF,SAAW,EAAG,CACzB8K,EAAKwM,OAAO/R,MAK5B,SAAS0e,GAAMC,EAAMC,EAAKf,GACtB,IAAIa,EAAQ1gB,EAAE6gB,MAAMF,GACpBD,EAAMb,MAAQA,EACda,EAAM1e,IAAM4e,EACZF,EAAMV,KAAO,KACb7B,GAAIxG,QAAQ+I,GAEhB,SAASpC,KACLre,MAAM,SAAW0T,GAAa,OAAS6L,GAAU,MAAQH,GACnD,OAASF,GAAW,SAAWQ,GAAc,QAAUP,GACvD,OAASE,GAAS,SAAWC,GAAY,KAE/C,IAAI9O,EAAMJ,EAAKI,MAAMnI,QAAQ,KAAM,IAInC,IAAKqL,IAAc6L,KAAaH,IAAeF,MAAcQ,KAC9BP,IAAcE,MAAYC,KACrD9O,IAAQW,EAAS,CACjB,IAAI5I,EAAMgG,EAEV,GAAImF,GAAY,CACZ,IAAIxE,EAAMuE,GACV6L,GAAYpQ,EAAItR,UAAU,EAAGsR,EAAI1S,OAAS,GAAGA,SAAWgU,EAAIhU,OAEhE,GAAIuU,EAAgB,CAChBC,EAAiBR,EACjByE,IACAC,QACG,CACH,IAAIyL,EAAMnQ,EAAI5S,UAAU2Q,GACxB,GAAIoS,EAAInkB,SAAW,GAAK8iB,GAAW,CAE/B,GAAI5L,GAAY,CACZ,IAAImN,EACJ,GAAIvB,GAAW,CACXuB,EAAU,MACP,CACHA,EAAUF,EAAI9iB,cAAcijB,WAAW,GAE3CL,GAAM,UAAWnB,GAAY,YAAcqB,EAAKE,GAEpD,GAAIzB,KAAgBE,GAAW,CAC3BmB,GAAM,WAAYE,EAAKA,EAAIG,WAAW,KAG9C,GAAIxB,GAAW,CACX7L,GAAetC,EACf,OAGJ,GAAIuO,GAAa,CACbA,GAAc,MACd,OAEJpY,EAAKhD,IAAIkM,GAEb,GAAI8O,GAAW,CACXhY,EAAKiH,SAAShG,EAAM,OACjB,CAGHjB,EAAKiH,SAAShG,EAAMqR,KAAKmH,IAAIvQ,EAAIhU,OAASiX,GAAajX,UAG/DiX,GAAetC,EACfuO,GAAc,MACdhM,GAAa,KAEjBwK,GAAI7b,KAAK,eAAgB8b,IAAgB9b,KAAK,cAAe+b,IACxD/b,KAAK,YAAa6d,IAAY7d,KAAK,YAAagc,KACrD,WACI,IAAI2C,EAAW,MACf,IAAIC,EAAQ,EACZ3Z,EAAKkE,GAAG,gBAAiB,WACrBwV,EAAW,OACZxV,GAAG,cAAe,SAAStI,GAC1B,SAASwU,IACL,IAAIwJ,EAAUnhB,EAAEmD,EAAEsF,QAClB,IAAK0Y,EAAQ5W,GAAG,YAAc6W,EAAM,CAChC,GAAIpT,EAAS,CACT,GAAImT,EAAQ5W,GAAG,QAAS,CACpBhD,EAAKiH,SAAS4C,EAAQ3U,YACnB,CACH8K,EAAKmX,iBAAiB/M,EAAaxO,MAI/C+d,EAAQ,EAGZ,IAAIG,EACJ,GAAIle,EAAEme,gBAAkB/hB,UAAW,CAC/B8hB,EAASle,EAAEke,WACR,CACHA,EAASle,EAAEme,cAAcD,OAE7B,GAAIA,IAAW,GAAKE,sBAAwB,GAAI,CAC5C,IAAIzT,EAAO,SAAWsC,EACtB,KAAM8Q,IAAU,EAAG,CACf,IAAIE,EAAOH,EACX,GAAIjT,EAAS,CACT,GAAIkC,EAASL,eAAiB,EAAG,CAC7B8H,QACG,CACHpQ,EAAKxC,QAAQmL,EAASL,aAAc/B,EAAM6J,QAE3C,CACHuJ,EAAQ,OAET,CACH3Z,EAAKvC,SAAS8I,GACdoT,EAAQ,GAGhBD,EAAW,SA5CnB,GA+CA1Z,EAAKuD,KAAK,MAAOvD,GACjB,KAAM,kBAAmBlI,QAAU,QAASA,OAAOmiB,cAAcxiB,WAAY,CACzEyiB,WAAW,WACP,MAAM,IAAIrf,MAAM,uDACA,wDACjB,GAEP,OAAOmF,GAMX,IAAIma,eAAiB,2GAErB,IAAIC,kBAAoB,kCAExB,IAAIC,SAAW,2oOAEf,IAAIC,UAAY,sVAChB,IAAIC,UAAY,0kDAChB,IAAIC,gBAAkB,2FACtB,IAAIC,gBAAkB,wGACtB,IAAIC,UAAY,uGAChB,IAAIC,gBAAkB,sGACtB,IAAIC,eAAiB,wGACrB,IAAIC,aAAe,gCACnB,IAAIC,OAAS,+DACb,IAAIC,UAAY,6EAChB,IAAIC,SAAW,2JACf,IAAIC,WAAa,8IACjB,IAAIC,oBAAsB,mDAC1B,IAAIC,gBAAkB,mCACtB,IAAIC,gBAAkB,oCACtB,IAAIC,cAAgB,mCACpB,IAAIC,eAAiB,6BACrB,IAAIC,SAAW,2CACf,IAAIC,MAAQ,uDACZ,IAAIC,UAAY,oEAChB,IAAIC,oBAAsB,8EAO1B,IAAIhL,oBAAsB,WACtB,IAAIzG,EAAY,MACZ0R,EAAc,wBAAwBhgB,MAAM,KAC5CigB,EAAMngB,SAASogB,cAAc,OACjC,GAAID,EAAIjL,MAAME,cAAe,CACzB5G,EAAY,KAEhB,GAAIA,IAAc,MAAO,CACrB,IAAK,IAAI3U,EAAI,EAAGA,EAAIqmB,EAAYzmB,OAAQI,IAAK,CACzC,IAAIiR,EAAOoV,EAAYrmB,GAAK,gBAC5B,GAAIsmB,EAAIjL,MAAMpK,KAAUvO,UAAW,CAC/BiS,EAAY,KACZ,QAIZ2R,EAAM,KACN,OAAO3R,EAjBe,GAoB1B,IAAI6R,qBAAuB,WACvB,IAAIC,EAAQjkB,OAAO2H,UAAUC,UAC7B,GAAIqc,EAAMvmB,MAAM,kBAAoBumB,EAAMvmB,MAAM,YAAa,CACzD,OAAO,MAEX,IAAIgf,EAAM/Y,SAASogB,cAAc,OACjCrH,EAAI7D,MAAMxH,MAAQ,MAClB,OAAOqL,EAAI7D,MAAMxH,QAAU,MAPJ,GAU3B,IAAI6S,2BAA6BlkB,OAAOmkB,KAAOnkB,OAAOmkB,IAAIC,UAClDpkB,OAAOmkB,IAAIC,SAAS,aAAc,GAE1C,IAAI/K,WAAa1R,UAAUC,UAAUhI,cAAciF,QAAQ,cAAgB,EAE3E,IAAIwf,UAAY,iCAAiCrmB,KAAK2J,UAAUC,WAEhE,IAAIqZ,cAAgB,SAAUA,IAC1B,KAAM,kBAAmBjhB,QAAU,QAASA,OAAOmiB,cAAcxiB,WAAY,CACzE,OAAO,MAEX,IAAI2kB,EAAQtkB,OAAOmiB,cAAcxiB,UACjC,IAAIsC,EAAMvC,OAAO6kB,yBAAyBD,EAAO,OAAOriB,IACxD,OAAOA,EAAIhE,WAAWP,MAAM,mBANZ,GASpB,IAAIgb,UAAY,SAAUvW,GACtB,IAAIqiB,EAAQ,MACZ,GAAIhC,UAAUxkB,KAAKmE,IAAMsgB,UAAUzkB,KAAKmE,EAAEsiB,OAAO,EAAG,IAAK,CACrDD,EAAQ,KAEZ,OAAOA,EALK,CAMb7c,UAAUC,WAAaD,UAAU+c,QAAU1kB,OAAO2kB,OAErD,IAAIzJ,OAAS,WACT,UAAWza,UAAY,YAAa,CAChC,OAAO,SAASka,GACZ,OAAOha,EAAEqZ,SAAS5c,OAAOud,QAE1B,CACH,OAAOla,SANF,GAUb,SAASmkB,UAAUjK,GACf,IAAKA,EAAOjd,MAAM,KAAM,CACpB,OAAOid,EAEX,OAAOha,EAAE,SAAWkkB,KAAKlK,GAAU,WAAW3Y,OAGlD,SAASA,KAAK2Y,GACV,OAAOiK,UAAUjkB,EAAEqZ,SAASe,MAAMJ,IAGtC,SAASkK,KAAKlK,GACV,IAAKA,EAAOjd,MAAM,SAAU,CACxB,OAAOid,EAEX,OAAOA,EAAO1R,QAAQ,eAAgB,SACjCA,QAAQ,KAAM,QAAQA,QAAQ,KAAM,QAG7C,SAASiV,KAAKvD,GACV,OAAOA,EAAO1R,QAAQ,MAAO,IAMjC,SAAS6b,mBAAmBnK,GACxB,IAAIoK,EAAcpK,EAAOjd,MAAM6kB,UAC/B,GAAIwC,EAAa,CACb,OAAOA,EAAY,QAChB,GAAIpK,EAAOnc,UAAU,EAAG,GAAGyK,QAAQqZ,kBAAmB,OAAS,EAAG,CACrE,GAAI3H,EAAOnc,UAAU,GAAGd,MAAM2kB,gBAAiB,CAC3C,OAAO1H,EAAOnc,UAAU,EAAG,GAE/B,OAAOmc,EAAOnc,UAAU,EAAG,OACxB,CACH,IAAIwmB,EAAcrK,EAAOjd,MAAM2kB,gBAC/B,GAAI2C,EAAa,CACb,OAAOA,EAAY,GAEvB,OAAOrK,EAAO,IAMtB,SAASsK,mBAAmBtK,EAAQxL,GAChC,GAAIA,IAAa,EAAG,CAChB,OAAOA,EAEXwL,EAASha,EAAEqZ,SAASe,MAAMJ,GAC1B,IAAIhZ,EAAShB,EAAEqZ,SAASiE,iBAAiBtD,GAAQzY,OAAO,SAASgjB,EAAK3D,GAClE,UAAW2D,IAAQ,SAAU,CACzB,OAAOA,EAEX,IAAI9nB,EAAS8nB,EAAI9nB,OAASmkB,EAAInkB,OAC9B,GAAIA,GAAU+R,EAAU,CACpB,OAAO+V,EAAI/V,SAAW,EAE1B,MAAO,CACHA,SAAU+V,EAAI/V,SAAW,EACzB/R,OAAQA,IAEb,CAAC+R,SAAU,EAAG/R,OAAQ,IACzB,UAAWuE,IAAW,SAAU,CAC5B,OAAOA,MACJ,CACH,OAAOA,EAAOwN,UAItB,SAASgW,gBAAgBxP,EAAK/E,GAC1B,GAAIoT,qBAAsB,CACtB,MAAO,UAAYrO,EAAM,UACtB,IAAKuO,2BAA4B,CACpC,GAAItT,EAAQoL,WAAY,CACpB,MAAO,UAAapL,EAAQoL,WAAarG,EAAO,UAEjD,CACH,MAAO,aAAeA,EAE1B,MAAO,GAGX,SAASyP,UAAUpjB,EAAM4O,GACrB,UAAWnQ,UAAY,YAAa,CAChC,IAAI4kB,EAAOT,UAAU5iB,GACrB,IAAI2T,EAAMuF,OAAOmK,GACjB,GAAI1P,IAAQhV,EAAEqZ,SAAS5c,OAAOioB,GAAO,CACjC,OAAOF,gBAAgBxP,EAAK/E,IAGpC,MAAO,GAGX,SAAS0U,gBAAgBtjB,EAAM4O,GAC3B,UAAWnQ,UAAY,YAAa,CAChC,IAAI4kB,EAAOT,UAAU5iB,GACrB,IAAIgc,EAAQrd,EAAEqZ,SAASiE,iBAAiBoH,GACxC,GAAIrH,EAAM5gB,SAAW,EAAG,CACpB,OAAO4E,EAEX,IAAIujB,EAAQvH,EAAMjc,IAAI,SAASwf,GAC3B,MAAO,CAAC5L,IAAKuF,OAAOqG,GAAMA,IAAKA,KAChCrf,OAAO,SAASsjB,EAAKC,GACpB,IAAIxW,EAAOuW,EAAIA,EAAIpoB,OAAS,GAC5B,GAAI6R,EAAM,CACN,GAAIA,EAAK0G,MAAQ8P,EAAK9P,IAAK,CACvB,OAAO6P,EAAIlX,OAAO,CAAC,CACfoX,IAAKD,EAAK9P,IACVA,IAAK8P,EAAK9P,IACV9U,IAAK4kB,EAAKlE,WAEX,CACHiE,EAAInX,MACJ,OAAOmX,EAAIlX,OAAO,CAAC,CACfoX,IAAKzW,EAAKyW,IAAMD,EAAK9P,IACrBA,IAAK1G,EAAK0G,IACV9U,IAAKoO,EAAKpO,IAAM4kB,EAAKlE,QAIjC,MAAO,CAAC,CACJmE,IAAKD,EAAK9P,IACV9U,IAAK4kB,EAAKlE,IACV5L,IAAK8P,EAAK9P,OAEf,IACH,OAAO4P,EAAMxjB,IAAI,SAAS0jB,GACtB,GAAIA,EAAK9P,MAAQ,EAAG,CAChB,OAAO8P,EAAK5kB,IAEhB,IAAIgY,EAAQsM,gBAAgBM,EAAKC,IAAK9U,GACtC,GAAI6U,EAAKC,MAAQ1H,EAAM5gB,SAAWyb,EAAMzb,OAAQ,CAC5C,MAAO,SAAWqoB,EAAK5kB,IAAM,cAC1B,CACH,MAAO,gBAAkBgY,EAAQ,KAAO4M,EAAK5kB,IAAM,aAExDjC,KAAK,IAEZ,OAAOoD,EAKX,SAAS+b,cAAc7B,EAAOhN,EAAKyO,EAAYgI,GAC3C,IAAIhQ,EAAMzG,EAAMgN,EAChB,IAAI0J,EAAM1J,EAAQ1B,KAAKC,MAAM9E,EAAM,GACnC,IAAI+H,EAAMiI,EAAWhI,EAAYiI,GACjC,GAAIlI,IAAQ,EAAG,CACX,OAAOkI,OACJ,GAAIlI,EAAM,GAAK/H,EAAM,EAAG,CAC3B,OAAOoI,cACH6H,EACA1W,EACAyO,EACAgI,QAED,GAAIjI,EAAM,GAAK/H,EAAM,EAAG,CAC3B,OAAOoI,cACH7B,EACA0J,EACAjI,EACAgI,OAED,CACH,OAAQ,GAMhB,IAAIzD,kBAAoB,WACpB,GAAIliB,OAAOuJ,cAAgB5F,SAAS4F,aAAc,CAC9C,OAAO,WACH,IAAIW,GAAalK,OAAOuJ,cAAgB5F,SAAS4F,gBACjD,GAAIW,EAAUlI,KAAM,CAChB,OAAOkI,EAAUlI,SACd,CACH,OAAOkI,EAAUjM,kBAGtB,GAAI0F,SAASuG,WAAavG,SAASuG,UAAUoX,OAAS,UAAW,CACpE,OAAO,WACH,OAAO3d,SAASuG,UAAUC,cAAcnI,MAGhD,OAAO,WACH,MAAO,IAhBS,GAsBxB,SAAS6V,kBAAkBgO,EAAW7jB,GAClC,IAAI8jB,EAAOnlB,EAAE,QAAUqB,EAAKiH,QAAQ,KAAM,SAAW,SACrD6c,EAAKxZ,SAAS,QACdyZ,WAAWD,EAAK,IAChB,IACIniB,SAASqiB,YAAY,QACvB,MAAOliB,IACTgiB,EAAK3gB,SAGT,IAAI8gB,uBAAyB,WACzB,IAAIC,EAAWviB,SAASogB,cAAc,YACtC,IAAI9Z,EAAiB,mBAAoBic,EACzCA,EAAW,KACX,GAAIjc,EAAgB,CAChB,OAAO,SAASic,GACZ,IAAI9oB,EAAS8oB,EAASC,aAAeD,EAASjc,eAC9C,OAAOic,EAAS3f,MAAMke,OAAOyB,EAASjc,eAAgB7M,SAEvD,GAAIuG,SAASuG,UAAW,CAC3B,OAAO,WACH,IAAIM,EAAQ7G,SAASuG,UAAUC,cAC/B,OAAOK,EAAMxI,YAEd,CACH,OAAO,WACH,MAAO,KAhBU,GAqB7B,SAASokB,yBAAyBF,GAC9BA,EAASjc,eAAiBic,EAASC,aAAe,EAKtD,SAASE,cAAc1L,EAAQ/X,EAAO0jB,GAClC,IAAK1jB,EAAMxF,OAAQ,CACf,MAAO,GAEX,IAAIkkB,EAAOiF,YAAY5L,GACvB,IAAIhZ,EAAS,GACb,IAAK,IAAIoY,EAAIY,EAAOvd,OAAQ2c,EAAInX,EAAM,GAAGxF,SAAU2c,EAAG,CAClD,IAAIhc,EAAO,MACX,IAAIyoB,EAAY5jB,EAAM,GAAGlE,OAAOqb,GAC5B0M,EAAiBD,EAAU5mB,cAC/B,IAAK,IAAIpC,EAAI,EAAGA,EAAIoF,EAAMxF,SAAUI,EAAG,CACnCO,EAAO,KACP,IAAIqR,EAAUxM,EAAMpF,GAAGkB,OAAOqb,GAC1B2M,EAAetX,EAAQxP,cAC3B,GAAI4mB,IAAcpX,EAAS,CACvB,GAAIkX,GAAahF,IAAS,QAAS,CAC/BvjB,EAAO,MACP,WACG,GAAI0oB,IAAmBC,EAAc,CACxC,GAAIpF,IAAS,QAAS,CAClBkF,EAAYA,EAAU5mB,mBACnB,GAAI0hB,IAAS,QAAS,CACzBkF,EAAYA,EAAU/nB,kBACnB,CACHV,EAAO,MACP,WAED,CACHA,EAAO,MACP,QAIZ,GAAIA,EAAM,CACN4D,EAAO5D,KAAKyoB,OACT,CACH,OAGR,OAAO7L,EAAShZ,EAAO/C,KAAK,IAGhC,SAAS+nB,wBAAwBtX,GAC7BuX,UAAU3Y,QAAQ,SAAS4Y,GACvBA,EAAKhW,WAAWiW,iBAAiB/pB,KAAK8pB,EAAMxX,KAIpD,IAAIpE,OAAS,WACT,GAAIjL,OAAOuJ,aAAc,CACrB,IAAIW,EAAYlK,OAAOuJ,eACvB,GAAIW,EAAU6c,iBAAkB,CAC5B,OAAO,SAAS7K,EAAOhN,GACnB,IAAIhF,EAAYlK,OAAOuJ,eACvBW,EAAU6c,iBAAiB7K,EAAO,EAAGhN,EAAK,QAE3C,CACH,OAAO,SAASgN,EAAOhN,GACnB,IAAIhF,EAAYlK,OAAOuJ,eACvB,IAAIiB,EAAQ7G,SAASwG,cACrBK,EAAMwc,SAAS9K,EAAO,GACtB1R,EAAMV,OAAOoF,EAAKA,EAAI+X,WAAW7pB,QACjC8M,EAAUgd,kBACVhd,EAAUid,SAAS3c,SAGxB,CACH,OAAO7J,EAAE2P,MAnBJ,GAuBb,SAASyV,WAAWpf,GAChB,GAAI3G,OAAOuJ,aAAc,CACrB,IAAIW,EAAYlK,OAAOuJ,eACvB,GAAIW,EAAU6c,iBAAkB,CAC5B7c,EAAU6c,iBAAiBpgB,EAAS,EAAGA,EAAS,QAC7C,GAAIhD,SAASwG,YAAa,CAC7B,IAAIK,EAAQ7G,SAASwG,cACrBK,EAAMX,mBAAmBlD,GACzBuD,EAAUgd,kBACVhd,EAAUid,SAAS3c,KAK/B,SAAS4c,gBAAgBzM,EAAQnZ,GAC7B,IAAIoB,EAAQ+X,EAAOjd,MAAMylB,aAAe,GACxC,GAAIvgB,EAAMxF,OAAQ,CACd,IAAIqR,EAAO7L,EAAMykB,QACjB,IAAIC,EAAO3mB,EAAEoB,IAAIa,EAAO,SAAStF,GAC7B,GAAIA,EAAII,MAAM,SAAU,CACpBJ,EAAMA,EAAI2L,QAAQ,MAAO,gCACzB3L,EAAMkE,EAAGlE,GACT,OAAOA,EAAI2L,QAAQ,oBAAqB,MAE5C,OAAOzH,EAAGlE,KAEd,IAAIiqB,EAAS5mB,EAAEoB,IAAIa,EAAO,SAAStF,GAC/B,IAAI8a,EAAI9a,EAAII,MAAM,gBAClB,OAAO0a,GAAKA,EAAE,IAAM,KAExB,IAAIoP,EAAO7M,EAAOnc,UAAUiQ,EAAKrR,QAAQoJ,OACzC,MAAO,CACHuL,QAAS4I,EACTlM,KAAMA,EACN6Y,KAAMA,EACNG,YAAaF,EACbC,KAAMA,OAEP,CACH,MAAO,CACHzV,QAAS4I,EACTlM,KAAM,GACN6Y,KAAM,GACNG,YAAaF,EACbC,KAAM,KAKlB7mB,EAAEqZ,SAAW,CACT0N,QAAS,SACTC,KAAM,kCAENC,YAAa,CACT,cAAe,eAAgB,QAAS,SAAU,OAAQ,QAC1D,SAAU,MAAO,SAAU,UAAW,QAAS,OAAQ,QACvD,SAAU,OAAQ,OAAQ,OAAQ,OAAQ,YAC1C,eAAgB,OAAQ,aAAc,QAAS,QAAS,SACxD,QAAS,iBAAkB,OAAQ,aAAc,QACjD,YAAa,YAAa,aAAc,YAAa,QACrD,iBAAkB,WAAY,UAAW,OAAQ,WACjD,WAAY,gBAAiB,WAAY,YAAa,WACtD,YAAa,cAAe,iBAAkB,aAC9C,aAAc,UAAW,aAAc,eACvC,gBAAiB,gBAAiB,gBAAiB,gBACnD,aAAc,WAAY,cAAe,UAAW,UACpD,aAAc,YAAa,cAAe,cAAe,UACzD,YAAa,aAAc,OAAQ,YAAa,OAAQ,QACxD,cAAe,OAAQ,WAAY,UAAW,YAAa,SAC3D,QAAS,QAAS,WAAY,gBAAiB,YAC/C,eAAgB,YAAa,aAAc,YAC3C,uBAAwB,YAAa,aAAc,YACnD,YAAa,cAAe,gBAAiB,eAC7C,iBAAkB,iBAAkB,iBAAkB,cACtD,OAAQ,YAAa,QAAS,UAAW,SACzC,mBAAoB,aAAc,eAAgB,eAClD,iBAAkB,kBAAmB,oBACrC,kBAAmB,kBAAmB,eAAgB,YACtD,YAAa,WAAY,cAAe,OAAQ,UAAW,QAC3D,YAAa,SAAU,YAAa,SAAU,gBAC9C,YAAa,gBAAiB,gBAAiB,aAC/C,YAAa,OAAQ,OAAQ,OAAQ,aAAc,SAAU,MAC7D,YAAa,YAAa,cAAe,SAAU,aACnD,WAAY,WAAY,SAAU,SAAU,UAAW,YACvD,YAAa,YAAa,OAAQ,cAAe,YAAa,MAC9D,OAAQ,UAAW,SAAU,YAAa,SAAU,QACpD,QAAS,aAAc,SAAU,eAErCpa,MAAOA,MACPgB,QAASA,QACTN,MAAOA,MAIP2Z,YAAa,SAASA,EAAYC,GAC9B,GAAIA,EAAMpqB,MAAMqlB,cAAe,CAC3B,OAAO,SACJ,CACH,OAAOpiB,EAAEwgB,QAAQ2G,EAAMloB,cAAee,EAAEqZ,SAAS4N,gBAAkB,IAM3EG,iBAAkB,SAASA,EAAiBpN,GACxC,QAASA,EAAOjd,MAAMkmB,sBAM1B3J,aAAc,SAASA,EAAapZ,GAChC,UAAWA,IAAQ,SAAU,CACzB,IAAImnB,EAAU,yBACd,OAAOnnB,EAAIoI,QAAQ+e,EAAS,UAMpCC,gBAAiB,SAASA,EAAgBpnB,GACtC,cAAcA,IAAQ,YAAcA,EAAInD,MAAMmlB,kBAElD5G,cAAe,SAASA,EAAcpb,GAClC,cAAcA,IAAQ,YAAcA,EAAInD,MAAMolB,iBAKlDoF,aAAc,SAASA,EAAarnB,GAChC,OAAOA,EAAIgD,MAAM6e,iBAAiB9U,OAAOI,UAO7Cma,iBAAkB,SAASA,EAAiBxN,EAAQyN,EAAKC,EAAalZ,GAClE,SAAS3Q,EAAUmc,EAAQuB,EAAOhN,GAC9B,OAAOyL,EAAOnc,UAAU0d,EAAOhN,GAEnC,SAAS9R,EAAOud,GACZ,OAAOha,EAAEqZ,SAASe,MAAMJ,GAAQvd,OAKpC,SAASkrB,EAActf,GACnB,IAAI2M,EAAMvY,EAAOud,EAAOnc,UAAU,EAAGwK,IACrC,IAAK,IAAIxL,EAAIwL,EAAOxL,EAAImd,EAAOvd,SAAUI,EAAG,CACxC,IAAI+qB,EAAWnrB,EAAOud,EAAOnc,UAAU,EAAGhB,IAC1C,GAAI+qB,IAAa5S,EAAM,EAAG,CACtB,OAAOA,EAEXA,EAAM4S,EAEV,OAAO5S,EAEX,IAAI6S,EAAa,GACjB,IAAI9qB,EACJ,IAAIsL,EAAQ,EACZ,IAAIyf,EACJ,IAAIC,EAAeJ,EAAcnZ,GACjC,IAAI+M,EACJkM,EAAIxf,UAAY,EAChB,MAAQlL,EAAQ0qB,EAAIppB,KAAK2b,GAAU,CAE/B,GAAIyN,EAAIroB,OAAQ,CAGZ,IAAIvC,EAAI8qB,EAAcF,EAAIxf,WAE1B,IAAI+f,EAAavrB,EAAOoB,EAAUmc,EAAQ,EAAGnd,IAC7C0e,EAAQyM,EAAavrB,EAAOM,EAAM,QAC/B,CACHwe,EAAQoM,EAAc5qB,EAAMsL,OAC5B2f,EAAazM,EAAQ9e,EAAOM,EAAM,IAEtC,GAAIsL,EAAQkT,EAAO,CACfsM,GAAchqB,EAAUmc,EAAQ3R,EAAOkT,GAE3ClT,EAAQ2f,EAGR,UAAWN,IAAgB,WAAY,CACnCI,EAAaJ,EAAY7oB,MAAM,KAAM9B,OAClC,CACH+qB,EAAaJ,EAAYpf,QAAQ,aAAc,SAASmP,EAAGwQ,GACvD,GAAIA,IAAO,IAAK,CACZ,MAAO,IAEX,OAAOlrB,EAAMkrB,KAIrBJ,GAAcC,EAEd,GAAIvM,EAAQ/M,EAAU,CAElB,GAAIwZ,EAAaxZ,EAAU,CAEvBuZ,EAAelO,KAAKmB,IAChB,EACA+M,EACAtrB,EAAOqrB,GACPrrB,EAAOM,EAAM,SAEd,CAEHgrB,GAAgBtrB,EAAOqrB,IAAetZ,EAAW+M,IAKzD,IAAKkM,EAAIroB,OAAQ,CACb,OAIR,GAAIiJ,EAAQ5L,EAAOud,GAAS,CACxB6N,GAAchqB,EAAUmc,EAAQ3R,GAGpC,GAAI2R,IAAW6N,EAAY,CACvB,MAAO,CAAC7N,EAAQxL,GAEpB,MAAO,CAACqZ,EAAYE,IAMxBG,mBAAoB,SAASA,EAAmBlO,EAAQvP,GACpD,SAAS0d,EAAStrB,GACd,OAAOmd,EAAOnc,UAAUhB,EAAI,EAAGA,KAAO,UAClCmd,EAAOnc,UAAUhB,EAAI,EAAGA,GAAGE,MAAM,MAGzC,IAAIqrB,EAAY,qCAChB,SAASC,EAAahgB,GAClB,OAAO2R,EAAOnc,UAAUwK,GAAOtL,MAAMqrB,GAGzC,SAASE,EAAmBzrB,GACxB,OAAOmd,EAAOnd,KAAO,KAAOmd,EAAOnd,EAAI,KAAO,IAGlD,SAAS0rB,EAAkB1rB,GACvB,OAAOmd,EAAOnd,KAAO,KAAOmd,EAAOnd,EAAI,KAAO,KAGlD,SAAS2rB,EAAQ3rB,GACb,OAAO4rB,IAAmBzO,EAAOnd,KAAO,MAAQyqB,KACxCoB,EAGZ,IAAIpB,EAAkBtnB,EAAEqZ,SAASiO,gBAAgBtN,GACjD,IAAIS,EAAa,GACjB,IAAIkO,EAAU,MACd,IAAIzH,EAAQ,EACZ,IAAInkB,EACJ,IAAI6rB,GAAS,EACb,IAAIC,EACJ,IAAIpsB,EAAS,EACb,IAAK,IAAII,EAAI,EAAGA,EAAImd,EAAOvd,OAAQI,IAAK,CACpC,IAAIgB,EAAYmc,EAAOnc,UAAUhB,GACjCE,EAAQc,EAAUd,MAAM4lB,iBACxB,GAAI5lB,EAAO,CACP0d,EAAa1d,EAAM,GACnB4rB,EAAU,WACP,GAAIlO,EAAY,CACnB,GAAIT,EAAOnd,KAAO,IAAK,CACnB,GAAI8rB,EAAS,CACTlO,EAAa,GACbkO,EAAU,UACP,CACHA,EAAU,WAGf,CACHA,EAAU,KAEd,IAAIF,EAAkBhO,GAAckO,IAAalO,EACjD,IAAIiO,EAAUJ,EAAmBzrB,GACjC,GAAIsrB,EAAStrB,KAAO4rB,GAAkBC,GAAU,CAC5C,GAAIE,KAAW,GAAKC,IAAehsB,GAAK+rB,KAAW,EAAG,CAClDA,EAAQ/rB,GAGhB,IAAIisB,EAAS9O,EAAOnd,GAAGE,MAAM,SAC7B,GAAI0rB,EAAgB,CAEhB,GAAIzO,EAAOnd,KAAO,IAAK,CACnBE,EAAQsrB,EAAaxrB,GACrB,GAAIE,EAAO,CACPF,GAAKE,EAAM,GAAGN,OAAS,EACvB,WAEFykB,IACAzkB,OACC,GAAI8rB,EAAkB1rB,GAAI,GAE3BqkB,IACAzkB,OACC,IAAKqsB,IAAWxB,EAAiB,GAClCpG,IACAzkB,GAGV,GAAI+rB,EAAQ3rB,GAAI,CACZ,GAAI0d,OAAOP,EAAOnd,MAAQ,EAAG,CACzBJ,IAEJ,IAAIqO,EAAO,CACPoW,MAAOA,EACP7Y,MAAOxL,EACP4d,WAAYA,EACZhe,OAAQA,EACR4E,KAAMsnB,EACNC,MAAOA,GAEX,IAAIhiB,EAAM6D,EAASK,GACnB,GAAIlE,IAAQ,MAAO,CACf,WACG,GAAIA,EAAK,CACZ,GAAIA,EAAIsa,QAAU3hB,UAAW,CACzB2hB,EAAQta,EAAIsa,MAEhB,GAAIta,EAAInK,SAAW8C,UAAW,CAC1B9C,EAASmK,EAAInK,OAEjB,GAAImK,EAAIgiB,QAAUrpB,UAAW,CACzBspB,EAAaD,EACbA,EAAQhiB,EAAIgiB,MAEhB,GAAIhiB,EAAIyB,QAAU9I,UAAW,CACzB1C,EAAI+J,EAAIyB,MACR,gBAGL,GAAIxL,IAAMmd,EAAOvd,OAAS,EAAG,CAChCgO,EAAS,CACLyW,MAAOA,EAAQ,EACf7Y,MAAOxL,EACP4d,WAAYA,EACZhe,OAAQ,EACR4E,KAAMsnB,EACNC,MAAOA,IAIf,IAAIG,EAAO5E,mBAAmBtmB,GAC9B,GAAIkrB,EAAKtsB,OAAS,EAAG,CACjBI,GAAKksB,EAAKtsB,OAAS,KAO/BoB,UAAW,SAASA,EAAUmc,EAAQgP,EAAaC,GAC/C,IAAI5L,EAAQrd,EAAEqZ,SAASiE,iBAAiBjc,KAAK2Y,IAC7C,IAAKqD,EAAM1e,MAAMqqB,EAAaC,GAAWxsB,OAAQ,CAC7C,MAAO,GAEX,IAAI8e,EAAQ,EACZ,IAAIhN,EACJ,IAAI2a,EAAmB,GACvB,IAAIC,EAAiB,GACrB,IAAIC,EACJ,IAAIzT,EAAK,aACT3V,EAAEqZ,SAAS6O,mBAAmBlO,EAAQ,SAASlP,GAC3C,IAAI2M,EACJ,GAAIuR,GAAele,EAAKoW,QAAU8H,EAAc,EAAG,CAC/CzN,EAAQzQ,EAAKzC,MAEboP,EAAIuC,EAAOnc,UAAU,EAAG0d,EAAQ,GAAGxe,MAAM4Y,GACzC,GAAI8B,EAAG,CACH8D,GAAS9D,EAAE,GAAGhb,OAElB,GAAIqO,EAAK2P,WAAY,CACjByO,EAAmBpe,EAAK2P,YAGhC,GAAIwO,GAAane,EAAKoW,QAAU+H,EAAW,CACvCE,EAAiBre,EAAK2P,WACtB2O,EAAate,EAAKzC,MAEtB,GAAIyC,EAAKoW,QAAU+H,EAAY,EAAG,CAC9B1a,EAAMzD,EAAKzC,MACXoP,EAAIuC,EAAOnc,UAAU,EAAG0Q,EAAM,GAAGxR,MAAM4Y,GACvC,GAAI8B,EAAG,CACHlJ,GAAOkJ,EAAE,GAAGhb,OAEhB,GAAIqO,EAAK2P,WAAY,CACjBlM,EAAM6a,EAAa,MAI/B,GAAIJ,IAAgBzN,EAAO,CACvB,MAAO,GAEX,GAAIhN,IAAQhP,UAAW,CACnBgP,EAAMyL,EAAOvd,OAEjBud,EAASkP,EAAmBlP,EAAOnc,UAAU0d,EAAOhN,GACpD,GAAI4a,EAAgB,CAChBnP,EAASA,EAAO1R,QAAQ,kBAAmB,IAC3C0R,GAAU,IAEd,OAAOA,GAMXe,UAAW,SAASA,EAAUf,GAC1B,OAAOA,EAAO1R,QAAQ2Z,UAAW,SAASoH,EAAGltB,EAAQkF,GACjD,GAAIA,IAAS,GAAI,CACb,MAAO,GAEX,SAAS6iB,EAAKlK,GACV,OAAOA,EAAO1R,QAAQ,QAAS,SAASA,QAAQ,MAAO,OAClDA,QAAQ,UAAW,KAE5BnM,EAAS+nB,EAAK/nB,GACd,IAAImtB,EAAantB,EAAOY,MAAM,MAAMN,OAEpC,GAAI6sB,GAAc,EAAG,CACjB,IAAI3C,EAAOxqB,EAAO+G,MAAM,KACxB,IAAIqY,EAAQoL,EAAKhoB,MAAM,EAAG,GAAGV,KAAK,KAClC,IAAItB,EAAMgqB,EAAKhoB,MAAM,GAAGV,KAAK,KAC7B,MAAO,KAAOsd,EAAQ,KAAO5e,GAAO0E,GAAQ,IAAMA,EAAO,SACtD,GAAIioB,IAAe,EAAG,CACzBA,EAAa,UACV,GAAIA,IAAe,EAAG,CACzBA,EAAa,QACV,CACHA,EAAa,GAKjB,MAAO,KAAOntB,EAASmtB,EAAapF,EAAK7iB,GAAQ,IAAMA,EAAO,OAOtE4Y,YAAa,SAASA,EAAY/Z,EAAKzD,EAAQ8sB,GAC3C,IAAIC,EAAc,GAClB,IAAIxoB,EAAS,GACb,IAAIiB,EAAQjC,EAAEqZ,SAAS0B,UAAU7a,GAAKgD,MAAM,OAC5C,IAAK,IAAIrG,EAAI,EAAGmY,EAAM/S,EAAMxF,OAAQI,EAAImY,IAAOnY,EAAG,CAC9C,GAAIoF,EAAMpF,KAAO,GAAI,CACjBmE,EAAO5D,KAAK,IACZ,SAEJ,IAAI+c,EAAOlY,EAAMpF,GACjB,IAAI4sB,EAAc,EAClB,IAAI7sB,EACJ,IAAI8sB,EAAcvP,EAAK1d,OACvB,IAAI4gB,EAAQrd,EAAEqZ,SAASiE,iBAAiBjc,KAAK8Y,IAC7C,IAAIwP,EAAYtM,EAAMA,EAAM5gB,OAAS,GACrCuD,EAAEqZ,SAAS6O,mBAAmB/N,EAAM,SAASrP,GACzC,IAAI8e,EAAkB9e,EAAKzC,QAAUqhB,EAAcC,EAAUltB,OAC7D,IAAImkB,EAAK/iB,EACT,GAAIiN,EAAKrO,QAAUA,GAAUmtB,GACxB9e,EAAKrO,SAAWA,EAAS,GACzB8d,OAAOJ,EAAKrP,EAAKzC,MAAQ,MAAQ,EAAI,CACtC,IAAIwhB,EAAY,MAChB,GAAIN,GAAcze,EAAK8d,SAAW,EAAG,CAEjC,IAAIkB,EAAWzoB,KAAK8Y,EAAKtc,UAAUiN,EAAK8d,QAExC,IAAImB,EAAWD,EAASrtB,OACxB,IAAIgL,EAAQqD,EAAKzC,MAAQ5L,EAAS,EAClCqtB,EAAWA,EAASjsB,UAAU,EAAG4J,GACjC,GAAIqiB,EAAS/sB,MAAM,cAAgB0K,EAAQsiB,EAAU,CACjDF,EAAY,MAKpB,IAAIG,EACJ,GAAIT,GAAcze,EAAK8d,SAAW,GAC9B9d,EAAKzC,QAAUqhB,EAAc,GAAKG,EAAW,CAC7CjtB,EAASud,EAAKtc,UAAU4rB,EAAa3e,EAAK8d,OAC1CoB,EAAYlf,EAAK8d,MAAQ,MACtB,CACH/qB,EAAYsc,EAAKtc,UAAUiN,EAAKzC,OAChCuY,EAAMuD,mBAAmBtmB,GACzBjB,EAASud,EAAKtc,UAAU4rB,EAAa3e,EAAKzC,OAASuY,EACnDoJ,EAAYlf,EAAKzC,MAAQuY,EAAInkB,OAAS,EAE1C,GAAI8sB,EAAY,CACZ3sB,EAASA,EAAO0L,QAAQ,+BAAgC,IAE5DmhB,GAAeO,GAAalf,EAAKzC,OAAS,EAC1C,GAAImhB,EAAa,CACb,IAAIS,EAAoBrtB,EAAOG,MAAM,aACrCH,EAAS4sB,EAAc5sB,EACvB,GAAIqtB,EAAmB,CACnBT,EAAc,IAGtB,IAAIU,EAAUttB,EAAOG,MAAMklB,WAC3B,GAAIiI,EAAS,CACT,IAAI5b,EAAO4b,EAAQA,EAAQztB,OAAS,GACpC,GAAI6R,EAAKA,EAAK7R,OAAS,KAAO,IAAK,CAC/B+sB,EAAclb,EAAKvR,MAAM2lB,iBAAiB,GAC1C9lB,GAAU,SACP,GAAIA,EAAOG,MAAM6lB,eAAgB,CACpChmB,EAASA,EAAO0L,QAAQsa,cAAe,IACvC4G,EAAclb,EAAKvR,MAAM2lB,iBAAiB,IAGlD1hB,EAAO5D,KAAKR,GAEZ,MAAO,CAACyL,MAAO2hB,EAAWvtB,OAAQ,EAAGmsB,OAAQ,MAIzD,OAAO5nB,GAKXmpB,IAAK,SAASA,EAAIjqB,GACd,OAAOA,EAAIoI,QAAQ,4BAA6B,UAKpD6S,OAAQ,SAASA,EAAOjb,EAAK+P,GACzB,IAAIC,EAAWlQ,EAAEqE,OAAO,CACpB2L,KAAM,EACNiL,OAAQ,IACThL,GACH,OAAOjQ,EAAEqZ,SAAS8Q,IAAIjqB,GAAKoI,QAAQ,KAAM,QAAQA,QAAQ,KAAM,QAC1DA,QAAQ,KAAM,UAAUpF,MAAM,MAAM9B,IAAI,SAAS+Y,GAC9C,IAAIK,EAAWL,EAAKjX,MAAM,gCAC1BsX,EAAWA,EAASvN,OAAOI,SAC3B,OAAOmN,EAASpZ,IAAI,SAASlB,EAAKrD,GAC9B,GAAIqD,EAAInD,MAAM,MAAO,CACjB,OAAOmD,EAAIoI,QAAQ,cAAe,SAAS+gB,EAAG9a,GAC1C,GAAI1R,IAAM,GAAK2d,EAAS3d,EAAI,GAAGE,MAAM,UAAW,CAC5C,IAAIqtB,EAAK,IAAIjoB,MAAM+N,EAASF,KAAO,GAAG/R,KAAK,UAC3C,OAAOmsB,EAAK7b,MACT,CACH,IAAI0M,EAAST,EAAS7b,MAAM9B,EAAI,EAAGA,GAAGoB,KAAK,IAC3C,GAAIiS,EAAS+K,QAAUpe,GAAK,EAAG,CAC3Boe,EAAS/K,EAAS+K,OAASA,EAE/B,IAAIjG,EAAMhV,EAAEqZ,SAAS5c,OAAOwe,GAC5B,IAAIoC,EAAQnN,EAASF,KAAQgF,EAAM9E,EAASF,KAC5C,GAAIqN,IAAU,EAAG,CACbA,EAAQ,EAEZ,OAAO,IAAIlb,MAAMkb,EAAQ,GAAGpf,KAAK,UAAYsQ,KAIzD,OAAOrO,IACRjC,KAAK,MACTA,KAAK,OAMhBosB,kBAAmB,SAASA,EAAkBrQ,GAC1C,IAAKha,EAAEqZ,SAASiO,gBAAgBtN,GAAS,CACrC,OAAOA,EAEX,IAAI3N,EAAQ,GACZ,IAAIsJ,EAAK,mDACT,IAAIsM,EAAY,kCAChB,OAAOjI,EAAO9W,MAAMyS,GAAI1I,OAAOI,SAASjM,IAAI,SAAS4Y,GACjD,GAAIA,EAAOjd,MAAM,SAAU,CACvB,IAAKiD,EAAEqZ,SAASiC,cAActB,GAAS,CACnCA,GAAU,IACV3N,EAAMjP,KAAK4c,EAAO1R,QAAQ2Z,EAAW,YAEtC,CACH,IAAIvU,EAAM,MACV,GAAIsM,EAAOjd,MAAM,MAAO,CACpB2Q,EAAM,KAEV,GAAIrB,EAAM5P,OAAQ,CACdud,EAAS3N,EAAMA,EAAM5P,OAAS,GAAKud,EAEvC,GAAItM,EAAK,CACLrB,EAAMqB,WACH,GAAIrB,EAAM5P,OAAQ,CACrBud,GAAU,KAGlB,OAAOA,IACR/b,KAAK,KAKZ0c,kBAAmB,SAASA,EAAkBX,GAC1C,OAAOha,EAAEqZ,SAASgB,gBAAgBL,IAKtCc,iBAAkB,SAASA,EAAiBd,EAAQ9J,GAChD,GAAI8J,IAAW,GAAI,CACf,UAAW9J,EAAS1B,WAAa,SAAU,CACvC,MAAO,CAAC,GAAI0B,EAAS1B,cAClB,CACH,MAAO,IAGf,SAAS8b,EAAaC,EAAWliB,EAAOzB,EAAKoT,GACzC,IAAKuQ,EAAUC,aACXxqB,EAAEqZ,SAAS5c,OAAOmK,KAAS5G,EAAEqZ,SAAS5c,OAAOud,GAAS,CACtDyQ,KAAK,kBAAoBpiB,EAAQ,kCAC5B,6DACA,iDAGb,IAAIqiB,EAAa1qB,EAAEqZ,SAASjK,SAASsb,WACrCxa,EAAWA,GAAY,GACvB,IAAIrT,EAAI,EACR,SAAS8tB,EAAyBJ,EAAWrrB,GACzC,IAAI+Q,EAAUjQ,EAAEqE,OAAO,GAAI6L,EAAU,CACjC1B,SAAUtP,EAAM,KAEpB,IAAI0H,EAAM2jB,EAAUrrB,EAAM,GAAI+Q,GAC9B,UAAWrJ,IAAQ,SAAU,CACzB0jB,EAAaC,EAAW1tB,EAAI,EAAG+J,EAAK1H,EAAM,IAC1C,UAAW0H,IAAQ,SAAU,CACzB,MAAO,CAACA,EAAKqJ,EAAQzB,UAEzB,OAAOtP,OACJ,GAAI0H,aAAezE,OAASyE,EAAInK,SAAW,EAAG,CACjD,OAAOmK,MACJ,CACH,OAAO1H,GAGf,IAAIA,EACJ,UAAWgR,EAAS1B,WAAa,SAAU,CACvCtP,EAAQ,CAAC8a,EAAQ9J,EAAS1B,cACvB,CACHtP,EAAQ,CAAC8a,EAAQ,GAErB,IACI,IAAIhZ,EAAS0pB,EAAWnpB,OAAO,SAASrC,EAAOqrB,GAC3C1tB,IAKA,UAAW0tB,IAAc,YAAcA,EAAUK,SAAU,CACvD,OAAOD,EAAyBJ,EAAWrrB,OACxC,CACH,IAAIzC,EAAS,EACb,IAAIouB,EAAiB,MACrB,IAAIrQ,EAAWxa,EAAEqZ,SAASkO,aAAaroB,EAAM,IAC7C,IAAI4rB,EAAWtQ,EAASpZ,IAAI,SAAS4Y,GACjC,IAAIxL,EACJ,IAAIuc,EAAW1pB,KAAK2Y,GAAQvd,OAE5B,GAAIyC,EAAM,IAAMzC,EAASsuB,IAAaF,EAAgB,CAClDrc,EAAWtP,EAAM,GAAKzC,EACtBouB,EAAiB,SACd,CAGHrc,GAAY,EAGhB,IAAIwc,EAAgBvuB,EACpB,IAAIuE,EACJvE,GAAUsuB,EACV,GAAI/qB,EAAEqZ,SAASiC,cAActB,GAAS,CAClC,MAAO,CAACA,GAAS,OACd,CACH,GAAIuQ,aAAqBpoB,MAAO,CAC5B,IAAI8N,EAAUsa,EAAU,IAAM,GAC9BvpB,EAAS,CAACgZ,EAAQxL,EAAW,EAAI,EAAIA,GACrC,GAAIxN,EAAO,GAAGjE,MAAMwtB,EAAU,IAAK,CAC/B,GAAIta,EAAQgb,KAAM,CACd,MAAOjqB,EAAO,GAAGjE,MAAMwtB,EAAU,IAAK,CAClCvpB,EAAShB,EAAEqZ,SAASmO,iBAChBxmB,EAAO,GACPupB,EAAU,GACVA,EAAU,GACVvpB,EAAO,SAGZ,CACHA,EAAShB,EAAEqZ,SAASmO,iBAChBxmB,EAAO,GACPupB,EAAU,GACVA,EAAU,GACVvpB,EAAO,KAInB,GAAIwN,EAAW,EAAG,CACd,MAAO,CAACxN,EAAO,IAAK,SAErB,UAAWupB,IAAc,WAAY,CACxCvpB,EAAS2pB,EAAyBJ,EAAW,CACzCvQ,EAAQxL,IAGhB,UAAWxN,IAAW,YAAa,CAG/B,GAAIA,EAAO,MAAQ,EAAG,CAClBA,EAAO,IAAMgqB,EAEjB,OAAOhqB,EAEX,MAAO,CAACgZ,GAAS,MAGzB,IAAIkR,EAAmBJ,EAAS7d,OAAO,SAASke,GAC5C,OAAOA,EAAQ,MAAQ,IACxB,GACH,IAAInR,EAAS8Q,EAAS1pB,IAAI,SAAS+pB,GAC/B,OAAOA,EAAQ,KAChBltB,KAAK,IACR,IAAIuQ,EACJ,UAAW0c,IAAqB,YAAa,CACzC1c,EAAWtP,EAAM,OACd,CACHsP,EAAW0c,EAAiB,GAGhC,IAAIlQ,EAAM3Z,KAAK2Y,GAAQvd,OACvB,GAAI+R,EAAWwM,EAAK,CAChBxM,EAAWwM,EAEf,GAAIhB,IAAW9a,EAAM,GAAI,CACrB,OAAOA,EAEX,MAAO,CAAC8a,EAAQxL,KAErBtP,GACH,UAAWgR,EAAS1B,WAAa,SAAU,CACvC,IAAI2O,EAAgBnd,EAAEqZ,SAASe,MAAMpZ,EAAO,IAAIvE,OAChD,GAAIuD,EAAEqZ,SAAS5c,OAAOuE,EAAO,IAAMmc,EAAe,CAC9C,IAAI3O,EAAWxN,EAAO,GACtBwN,EAAW8V,mBAAmBtjB,EAAO,GAAIwN,GACzC,IAAIwM,EAAMhb,EAAEqZ,SAAS5c,OAAOuE,EAAO,IACnC,GAAIwN,EAAWwM,EAAK,CAChBxM,EAAWwM,EAEfha,EAAO,GAAKwN,EAEhB,OAAOxN,MACJ,CACH,OAAOA,EAAO,IAEpB,MAAOmC,GACL,IAAIwZ,EAAM,wBAA0B9f,EAAI,GAAK,IAC7C6tB,EAAW9rB,OAAO/B,EAAI,GACtB,MAAM,IAAImD,EAAEqZ,SAAS+R,UAAU,aAAczO,EAAKxZ,EAAEkJ,SAM5DlQ,OAAQ,SAASA,EAAO+D,EAAK+P,GACzB,SAASob,EAAUrR,GACf,GAAIA,EAAOjd,MAAM,OAAQ,CACrBid,EAASA,EAAO1R,QAAQ,UAAW,SAAS+gB,EAAGiC,GAC3C,GAAIA,EAAQ7uB,OAAS,IAAM,EAAG,CAC1B,MAAO,QACJ,CACH,OAAO6uB,EAAQhjB,QAAQ,KAAM,SAIzC,OAAO4b,KAAKlK,GAEhB,IAAI9J,EAAWlQ,EAAEqE,OAAO,GAAI,CACxBknB,gBAAiB,MACjBC,cAAe,MACfC,SAAU,OACXxb,GAAW,IACd,UAAW/P,IAAQ,SAAU,CAEzB,IAAIsa,EAAWxa,EAAEqZ,SAASkO,aAAarnB,GACvCA,EAAMF,EAAEoB,IAAIoZ,EAAU,SAASnZ,GAC3B,GAAIA,IAAS,GAAI,CACb,OAAOA,OACJ,GAAIrB,EAAEqZ,SAASiC,cAAcja,GAAO,CAGvCA,EAAOA,EAAKiH,QAAQ,eAAgB,SAASjH,GACzC,OAAOA,EAAKiH,QAAQ,UAAW,OAEnC,OAAOjH,EAAKiH,QAAQ0Z,gBAAiB,SACjCzc,EACA2S,EACAiP,EACAuE,EACApT,EACAqT,EACAtqB,GAEA,GAAIA,IAAS,GAAI,CACb,MAAO,GAEXA,EAAOgqB,EAAUhqB,GACjB,IAAIuqB,EAAY,GAChB,GAAI1T,EAAMhU,QAAQ,QAAU,EAAG,CAC3B0nB,GAAa,oBAEjB,IAAIC,EAAkB,GACtB,GAAI3T,EAAMhU,QAAQ,QAAU,EAAG,CAC3B2nB,EAAgBzuB,KAAK,aAEzB,GAAI8a,EAAMhU,QAAQ,QAAU,EAAG,CAC3B2nB,EAAgBzuB,KAAK,gBAEzB,GAAI8a,EAAMhU,QAAQ,QAAU,EAAG,CAC3B2nB,EAAgBzuB,KAAK,YAEzB,GAAIyuB,EAAgBpvB,OAAQ,CACxBmvB,GAAa,mBACTC,EAAgB5tB,KAAK,KAAO,IAEpC,GAAIia,EAAMhU,QAAQ,QAAU,EAAG,CAC3B0nB,GAAa,qBAEjB,GAAI5rB,EAAEqZ,SAAS6N,YAAYC,GAAQ,CAC/ByE,GAAa,SAAWzE,EAAQ,IAC5B,WAAaA,EAAQ,IACzB,GAAIjP,EAAMhU,QAAQ,QAAU,EAAG,CAC3B0nB,GAAa,uBAAyBzE,EAAQ,KAGtD,GAAInnB,EAAEqZ,SAAS6N,YAAYwE,GAAa,CACpCE,GAAa,oBAAsBF,EAEvC,IAAI5gB,EACJ,GAAI6gB,IAAc,GAAI,CAClB7gB,EAAOzJ,MACJ,CACHyJ,EAAO6gB,EAAUrjB,QAAQ,SAAU,KAC9BA,QAAQ,KAAM,QAAQA,QAAQ,KAAM,QAE7C,IAAIwjB,EAAQrH,UAAUpjB,EAAM4O,GAC5B,GAAI6b,EAAO,CACPzqB,EAAOsjB,gBAAgBtjB,EAAM4O,GAC7B2b,GAAaE,EAEjB,IAAI9qB,EACJ,GAAIkX,EAAMhU,QAAQ,QAAU,EAAG,CAC3B,GAAI4G,EAAK/N,MAAMwlB,UAAW,CACtBvhB,EAAS,mBAAqB8J,EAAO,QAClC,CACH,IAAKoF,EAASub,WACT3gB,EAAK/N,MAAM,sBAAuB,CACnC+N,EAAO,GAEX9J,EAAS,4BAA8B8J,EAAO,IAC9C,IAAIihB,EAAM,CAAC,YACX,GAAI7b,EAASqb,gBAAiB,CAC1BQ,EAAIC,QAAQ,cAEhB,GAAI9b,EAASsb,cAAe,CACxBO,EAAIC,QAAQ,YAEhBhrB,GAAU,SAAW+qB,EAAI9tB,KAAK,KAAO,IAIzC+C,GAAU,uBACP,CACHA,EAAS,QAEb,GAAI4qB,IAAc,GAAI,CAClB5qB,GAAU,WAAa4qB,EAAY,IAEvC,GAAItT,IAAW,GAAI,CACftX,GAAU,WAAasX,EAAS,IAEpC,GAAIJ,EAAMhU,QAAQ,QAAU,EAAG,CAC3BlD,GAAU,IAAMK,EAAO,WACpB,CACHL,GAAU,eACN8J,EAAKxC,QAAQ,KAAM,WAAa,KAChCjH,EAAO,UAEf,OAAOL,QAER,CACHK,EAAOgqB,EAAUhqB,GACjB,IAAIyqB,EAAQrH,UAAUpjB,EAAM4O,GAC5B,GAAI6b,EAAMrvB,OAAQ,CACd4E,EAAOsjB,gBAAgBtjB,EAAM4O,GAC7B,MAAO,gBAAkB6b,EAAQ,KAAOzqB,EAAO,cAC5C,CACH,MAAO,SAAWA,EAAO,cAGlCpD,KAAK,IACR,OAAOiC,EAAIoI,QAAQ,6BAA8B,aAC9C,CACH,MAAO,KAMf+R,gBAAiB,SAASA,EAAgBL,GACtC,OAAOA,EAAO1R,QAAQ,MAAO,SAASA,QAAQ,MAAO,UAKzD2jB,kBAAmB,SAASA,EAAkBjS,GAC1C,OAAOA,EAAO1R,QAAQ,SAAU,KAAKA,QAAQ,SAAU,MAK3D7L,OAAQ,SAASud,GACb,OAAOha,EAAEqZ,SAASiE,iBAAiBjc,KAAK2Y,IAASvd,QAKrD6gB,iBAAkB,SAASA,EAAiBtD,GACxC,IAAIhZ,EAAS,GACb,MAAOgZ,EAAOvd,OAAQ,CAClB,IAAImkB,EAAMuD,mBAAmBnK,GAC7BA,EAASA,EAAOnc,UAAU+iB,EAAInkB,QAC9BuE,EAAO5D,KAAKwjB,GAEhB,OAAO5f,GAKXkrB,QAAS,SAASjqB,EAAOkqB,EAAMvD,GAC3B,IAAIwD,EAAgBnqB,EAAMb,IAAI,SAAS4Y,GACnC,OAAOha,EAAEqZ,SAASe,MAAMJ,KAE5B,IAAIqS,EAAUD,EAAchrB,IAAI,SAAS4Y,GACrC,OAAOO,OAAOP,KAElB,UAAW4O,IAAU,YAAa,CAC9BA,EAAQ,EAEZ,IAAInsB,EAASod,KAAKmB,IAAInc,MAAM,KAAMwtB,GAAWzD,EAE7C,IAAI0D,EAAezS,KAAKC,MAAMqS,EAAO1vB,GAAU,EAC/C,GAAI6vB,EAAe,EAAG,CAClB,OAAOrqB,EAAMhE,KAAK,MAEtB,IAAIge,EAAQ,GACZ,IAAK,IAAIpf,EAAI,EAAGmY,EAAM/S,EAAMxF,OAAQI,EAAImY,EAAKnY,GAAKyvB,EAAc,CAC5D,IAAInS,EAAOlY,EAAMtD,MAAM9B,EAAGA,EAAIyvB,GAC9B,IAAIhe,EAAO6L,EAAKzM,MAChBuO,EAAM7e,KAAK+c,EAAK5Y,OAAO,SAASgjB,EAAKvK,GACjC,IAAI8P,EAAW9pB,EAAEqZ,SAASe,MAAMJ,GAChC,IAAIhd,EAAM,IAAImF,MAAM1F,EAASqtB,EAASrtB,OAAS,GAAGwB,KAAK,KACvDsmB,EAAInnB,KAAK4c,EAAShd,GAClB,OAAOunB,GACR,IAAItmB,KAAK,IAAMqQ,GAEtB,OAAO2N,EAAMhe,KAAK,OAKtBmc,MAAO,SAASA,EAAMla,GAClBA,EAAMA,EAAIoI,QAAQ0Z,gBAAiB,MACnC,OAAO9hB,EAAIoI,QAAQ,aAAc,SAASikB,EAAOC,GAC7C,OAAOA,KAMfC,OAAQ,SAASA,IACb,OAAOxG,UAAU9Y,SAKrBuf,QAAS,SAASA,IACd,IAAI1X,EAAMiR,UAAUxpB,SACpB,OAAOuY,EAAM,GASjB2X,eAAgB,SAASA,EAAehwB,EAAKiwB,GACzC,SAASC,EAAa7S,GAElB,OAAOA,EAAO9W,MAAM8f,WAAW5hB,IAAI,SAAS4Y,GAGxC,GAAIA,EAAOjd,MAAM,SAAU,CAEvB,GAAIid,IAAW,MAAQA,IAAW,KAAM,CACpC,MAAO,GAEX,IAAI8S,EAAQ9S,EAAO,GACnB,IAAIrE,EAAK,IAAIxN,OAAO,yBAA2B2kB,EAAO,KACtD9S,EAASA,EAAO1R,QAAQqN,EAAI,MAEhCqE,EAAS,IAAMA,EAAS,IAExB,OAAO9L,KAAKhS,MAAM8d,KACnB/b,KAAK,IAEZ,GAAI2uB,IAAW,MAAO,CAClB,GAAIjwB,EAAI,KAAO,KAAOA,EAAIA,EAAIF,OAAS,KAAO,IAAK,CAC/C,OAAOE,EAAI2L,QAAQ,SAAU,SAC1B,GAAI3L,EAAI,KAAO,KAAOA,EAAIA,EAAIF,OAAS,KAAO,IAAK,CACtD,OAAOE,EAAI2L,QAAQ,SAAU,IAAIA,QAAQ,YAAa,WACnD,GAAI3L,EAAII,MAAM,kBAAmB,CACpC,OAAOJ,OACJ,GAAIA,EAAII,MAAM,SAAU,CAE3B,OAAO8vB,EAAalwB,OACjB,CACH,OAAOA,EAAI2L,QAAQ,OAAQ,MAGnC,IAAIpD,EAAQvI,EAAII,MAAMgmB,OACtB,GAAI7d,EAAO,CACP,OAAO,IAAIiD,OAAOjD,EAAM,GAAIA,EAAM,SAC/B,GAAIvI,EAAII,MAAM,QAAS,CAC1B,OAAO8vB,EAAalwB,QACjB,GAAIA,EAAII,MAAM,cAAe,CAChC,OAAOU,SAASd,EAAK,SAClB,GAAIA,EAAII,MAAM+lB,UAAW,CAC5B,OAAOnlB,WAAWhB,OACf,CACH,OAAOA,EAAI2L,QAAQ,eAAgB,QAM3CykB,gBAAiB,SAASA,EAAgB/S,GACtC,OAAOha,EAAEoB,IAAI4Y,EAAOjd,MAAMylB,aAAe,GAAIxiB,EAAEqZ,SAASsT,iBAM5DK,gBAAiB,SAASA,EAAgBhT,GACtC,OAAOha,EAAEoB,IAAI4Y,EAAOjd,MAAMylB,aAAe,GAAI,SAAS7lB,GAClD,OAAOqD,EAAEqZ,SAASsT,eAAehwB,EAAK,UAO9CswB,cAAe,SAASA,EAAcjT,GAClC,OAAOyM,gBAAgBzM,EAAQha,EAAEqZ,SAASsT,iBAK9CO,cAAe,SAASA,EAAclT,GAClC,OAAOyM,gBAAgBzM,EAAQ,SAASrd,GACpC,OAAOqD,EAAEqZ,SAASsT,eAAehwB,EAAK,UAM9CwwB,cAAe,SAASA,EAAcxwB,EAAKsT,GACvC,IAAIC,EAAWlQ,EAAEqE,OAAO,GAAI,CACxB+oB,QAAS,IACVnd,GACH,UAAWtT,IAAQ,SAAU,CACzB,OAAOwwB,EAAcntB,EAAEqZ,SAAS2T,gBAAgBrwB,GAAMsT,GAE1D,IAAIjP,EAAS,CACTqoB,EAAG,IAEP,SAASgE,EAAMznB,GACXnF,KAAKmF,MAAQA,EAEjB,IAAIihB,EAAOlqB,EAAI4E,OAAO,SAASgjB,EAAK5nB,GAChC,UAAWA,IAAQ,SAAU,CACzBA,EAAMY,OAAOZ,GAEjB,GAAIA,EAAII,MAAM,OAASwnB,aAAe8I,EAAO,CACzCrsB,EAAOujB,EAAI3e,OAAS,KAExB,GAAIjJ,EAAII,MAAM,OAAQ,CAClB,IAAI+Q,EAAOnR,EAAI2L,QAAQ,MAAO,IAC9B,GAAI4H,EAASkd,QAAQlpB,QAAQ4J,MAAW,EAAG,CACvC,OAAO,IAAIuf,EAAMvf,OACd,CACH9M,EAAO8M,GAAQ,WAEhB,GAAInR,EAAII,MAAM,MAAO,CACxB,IAAIuwB,EAAS3wB,EAAI2L,QAAQ,KAAM,IAAIpF,MAAM,IACzC,GAAIgN,EAASkd,QAAQlpB,QAAQopB,EAAO3uB,OAAO,GAAG,OAAS,EAAG,CACtD,IAAI2P,EAAOgf,EAAO5f,MAEtB4f,EAAOhgB,QAAQ,SAASggB,GACpBtsB,EAAOssB,GAAU,OAErB,GAAIhf,EAAM,CACN,OAAO,IAAI+e,EAAM/e,SAElB,GAAIiW,aAAe8I,EAAO,CAC7BrsB,EAAOujB,EAAI3e,OAASjJ,OACjB,GAAIA,EAAK,CACZqE,EAAOqoB,EAAEjsB,KAAKT,GAElB,OAAO,MACR,MACH,GAAIkqB,aAAgBwG,EAAO,CACvBrsB,EAAO6lB,EAAKjhB,OAAS,KAEzB,OAAO5E,GAKXusB,iBAAkB,SAASA,iBAAiBrH,KAAMlM,OAAQ/J,SACtD,IAAIC,SAAWlQ,EAAEqE,OAAO,CACpBmpB,cAAe,OAChBvd,SACH,IACIwd,YAAc,MACd,IAAIhW,EAAIuC,OAAOjd,MAAM0lB,qBACrB,GAAIhL,EAAG,CACH,IAAKvH,SAASsd,cAAe,CACzB/C,KAAK,wDACA,wBACL,OAEJzQ,OAASvC,EAAE,GACX,IAAIiW,IAAMjW,EAAE,KAAO,WAAayO,KAAOA,KAAK/W,MAC5C,IAAItO,GAAK4W,EAAE,GACX,IACI,IAAIkP,KAAOgH,KAAK,IAAMlW,EAAE,GAAK,KAC7B,IAAKiW,IAAI7sB,IAAK,CACVqlB,KAAKpjB,MAAM,mBAAqBjC,QAC7B,CACH6sB,IAAI7sB,IAAIhC,MAAMqnB,KAAMS,OAE1B,MAAOxjB,GACL+iB,KAAKpjB,MAAM,yBACA9C,EAAEqZ,SAASgB,gBAAgBL,cAEvC,CACHkM,KAAK7nB,KAAK2b,OAAQ,MAAM4T,KAAK,WACzBH,YAAc,QAGxB,MAAOtqB,MAOb0qB,SAAU,SAAS7T,GACf,SAASS,EAAWT,GAChB,GAAIha,EAAEqZ,SAASiC,cAActB,GAAS,CAClC,GAAIA,EAAOjd,MAAM,UAAW,CACxBid,EAASA,EAAO1R,QAAQ,UAAW,WAG3C,OAAO0R,EAEX,UAAW8T,SAAW,mBAAqBA,OAAOD,WAAa,SAAU,CACrE,IAAI7Y,EAAMhV,EAAEqZ,SAAS5c,OAAOud,GAC5B,IAAInd,EAAI,EACR,IAAI6wB,EAAM,GACVA,EAAII,OAAOD,UAAY,WACnB,MAAO,CACHnf,KAAM,WACF,GAAI7R,EAAImY,EAAK,CACT,IAAI3T,EAAOrB,EAAEqZ,SAASxb,UAAUmc,EAAQnd,EAAGA,EAAI,GAC/CA,IACA,MAAO,CACH+I,MAAO6U,EAAWpZ,QAEnB,CACH,MAAO,CACHusB,KAAM,UAM1B,OAAOF,IAIfnD,UAAW,IAAI,WACX,IACI9pB,KAAKqtB,OAAO5qB,OAAS,SAAS8W,GAC1B,OAAOha,EAAEqZ,SAASkO,aAAavN,IAEnCvZ,KAAKqtB,OAAO/wB,OAAS,SAASid,GAC1B,OAAOA,EAAOjd,MAAMklB,YAExBxhB,KAAKqtB,OAAOxlB,SAAW,SAAS0R,EAAQ+T,GACpC,OAAO/T,EAAO1R,QAAQ0Z,gBAAiB+L,IAE3CttB,KAAKqtB,OAAOE,QAAU,SAAShU,GAC3B,OAAOA,EAAOgU,OAAO/L,YAE3B,MAAO9e,MAMb8qB,cAAe,SAAS1D,GACpB,IAAIG,EAAa1qB,EAAEqZ,SAASjK,SAASsb,WACrC,IAAK,IAAI7tB,EAAI,EAAGA,EAAI6tB,EAAWjuB,SAAUI,EAAG,CACxC,GAAI6tB,EAAW7tB,KAAOmD,EAAEqZ,SAASgR,kBAAmB,CAChDK,EAAW9rB,OAAO/B,EAAG,EAAG0tB,GACxB,QAGRG,EAAWttB,KAAKmtB,KAIxBvqB,EAAEqZ,SAAS+R,UAAY,SAAS8C,EAAmBvN,EAAMzU,EAASG,GAC9D,GAAIpQ,UAAUQ,SAAW,EAAG,CACxBgE,KAAKyL,QAAUjQ,UAAU,GACzBwE,KAAKkgB,KAAO,eACT,CACHlgB,KAAKkgB,KAAOA,EACZlgB,KAAKyL,QAAUA,EACf,GAAIG,EAAO,CACP5L,KAAK4L,MAAQA,KAIzBrM,EAAEqZ,SAAS+R,UAAUpsB,UAAY,IAAIoD,MACrCpC,EAAEqZ,SAAS+R,UAAUpsB,UAAU1B,SAAW,WACtC,OAAOmD,KAAKyL,QAAU,KAAOzL,KAAK4L,OAKtCrM,EAAEa,GAAGge,QAAU,WACX,OAAOpe,KAAK0tB,IAAI,aAAc,YAElCnuB,EAAEa,GAAGutB,OAAS,WACV,OAAO3tB,KAAK0tB,IAAI,aAAc,WAGlC,IAAIE,SAAW,GACf,SAAS5D,KAAK9N,GACVA,EAAM,qBAAuBA,EAC7B,GAAI0R,SAASnqB,QAAQyY,MAAU,EAAG,CAC9B0R,SAASjxB,KAAKuf,GAEd,GAAIxc,QAAS,CACT,GAAIA,QAAQsqB,KAAM,CACdtqB,QAAQsqB,KAAK9N,QACV,GAAIxc,QAAQC,IAAK,CACpBD,QAAQC,IAAIuc,QAGb,CAEH8E,WAAW,WACP,MAAM,IAAIrf,MAAM,SAAWua,IAC5B,KAOf,IAAI2R,IAAM,GACVtuB,EAAEuuB,KAAO,SAASC,EAAKC,EAAQC,EAAQC,EAAS7rB,GAC5C,IAAI8rB,EAAW,IAAI5uB,EAAE6uB,SACrB,IAAI5e,EACJ,GAAIjQ,EAAE8uB,cAAcN,GAAM,CACtBve,EAAUue,MACP,CACHve,EAAU,CACNue,IAAKA,EACLC,OAAQA,EACRC,OAAQA,EACRC,QAASA,EACT7rB,MAAOA,GAGf,SAASisB,EAAaC,GAClB,OAAOhvB,EAAEivB,UAAUD,EAAS5e,aAChB4e,EAAShuB,SAAW,oBACpBguB,EAASlsB,QAAU,aAEnCwrB,IAAIre,EAAQue,KAAOF,IAAIre,EAAQue,MAAQ,EACvC,IAAIU,EAAU,CACVC,QAAW,MACXV,OAAUxe,EAAQwe,OAClBC,OAAUze,EAAQye,OAClBte,KAAQke,IAAIre,EAAQue,MAExBxuB,EAAEovB,KAAK,CACHZ,IAAKve,EAAQue,IACba,WAAY,SAASA,EAAWC,EAAMpf,GAClC,GAAIhO,YAAY+N,EAAQif,SAAU,CAC9Bjf,EAAQif,QAAQI,EAAMJ,GAE1Bhf,EAASpF,KAAOoD,KAAKC,UAAU+gB,IAEnCP,QAAS,SAASA,EAAQK,EAAUO,EAAQC,GACxC,IAAIC,EAAeD,EAAME,kBAAkB,gBAC3C,IAAKD,EAAa1yB,MAAM,4BAA6B,CACjD0tB,KAAK,oDACA,kBAET,IAAIkF,EACJ,IACIA,EAAOzhB,KAAKhS,MAAM8yB,GACpB,MAAO7rB,GACL,GAAI8M,EAAQnN,MAAO,CACfmN,EAAQnN,MAAM0sB,EAAO,eAAgBrsB,OAClC,CACH,MAAM,IAAInD,EAAEqZ,SAAS+R,UAAU,OAAQ,eAAgBjoB,EAAEkJ,OAE7DuiB,EAASgB,OAAO,CAAC1jB,QAAS,eAAgB8iB,SAAUA,IACpD,OAEJ,GAAI9sB,YAAY+N,EAAQ+e,UAAW,CAC/B/e,EAAQ+e,SAASQ,EAAOG,GAE5B,GAAIZ,EAAaY,IAAS1f,EAAQwe,SAAW,kBAAmB,CAE5D,GAAIxe,EAAQ0e,QAAS,CACjB1e,EAAQ0e,QAAQgB,EAAMJ,EAAQC,GAElCZ,EAASluB,QAAQivB,OACd,CACH,GAAI1f,EAAQnN,MAAO,CACfmN,EAAQnN,MAAM0sB,EAAO,oBAEzBZ,EAASgB,OAAO,CAAC1jB,QAAS,mBAAoB8iB,SAAUA,MAGhElsB,MAAOmN,EAAQnN,MACf+sB,YAAa,mBACbC,SAAU,OACVC,MAAO,KACPh0B,MAAO,MAEP4kB,KAAM,SAEV,OAAOiO,EAASoB,WAqBpB,SAASC,cAAclU,GACnB,IAAImU,EAAOlwB,EAAE,2DACA,iEACA,4BAA4B2L,SAAS,QAClDukB,EAAKxkB,SAASqQ,EAAIlQ,KAAK,UACvB,GAAIkQ,EAAK,CACL,IAAI7D,EAAQ6D,EAAIlQ,KAAK,SACrB,GAAIqM,EAAO,CACPA,EAAQA,EAAMhV,MAAM,WAAW+J,OAAO,SAAS1H,GAC3C,OAAQA,EAAExI,MAAM,yBACjBkB,KAAK,KACRiyB,EAAKrkB,KAAK,QAASqM,IAG3B,IAAIiY,EAAOD,EAAK9kB,KAAK,SAAS,GAAGwO,wBACjC,IAAI5Y,EAAS,CACT0P,MAAOyf,EAAKzf,MACZ0f,OAAQD,EAAKC,QAEjBF,EAAK1rB,SACL,OAAOxD,EAKX,SAASqvB,cAAchX,EAAUiX,GAC7B,IAAI5f,EAAQ2I,EAASjO,KAAK,kBAAkBsF,QAC5C,IAAI1P,EAAS6Y,KAAKC,MAAMpJ,EAAQ4f,EAAU5f,OAG1C,OAAO1P,GAAU,IAKrB,SAASuvB,aAAalX,EAAUiX,GAC5B,OAAOzW,KAAKC,MAAMT,EAASjO,KAAK,kBAAkBglB,SAAWE,EAAUF,QAG3E,SAASI,IAAIvuB,EAAOpB,GAChB,IAAI4vB,EAAOxuB,EAAMgL,OAAO,SAAS5K,GAC7B,OAAOA,EAAKxB,OAAUwB,IAE1B,OAAOouB,EAAKh0B,SAAWwF,EAAMxF,OAGjC,SAASmpB,YAAY5L,GACjB,IAAI/X,EAAQ+X,EAAO9W,MAAM,IACzB,GAAIstB,IAAIvuB,EAAO,eAAgB,CAC3B,MAAO,aACJ,GAAIuuB,IAAIvuB,EAAO,eAAgB,CAClC,MAAO,YACJ,CACH,MAAO,SAIf,SAASyuB,UAAU1W,GACf,OAAO4L,YAAY5L,KAAY,QAInC,SAAS9X,YAAYN,GACjB,OAAOzE,SAASyE,KAAY,WAGhC,SAASzE,SAASyE,GACd,cAAcA,IAAW,WAAa,WAAa5B,EAAE2gB,KAAK/e,GAK9D,IAAI+uB,aAAe3wB,EAAEqZ,SAAS0N,QAAQhqB,MAAM,SAC5C,IAAI6zB,UAAY,0DACZ,UACJ,IAAIC,eAAiBF,YAAc,OAAS3wB,EAAEqZ,SAAS0N,QAAU,IAEjE,IAAI+J,IAAM,IAAI3oB,OAAO,KAAO0oB,eAAep0B,OAAS,MACpD,IAAIs0B,SAAW,4BACVJ,YAAcE,eAAiB,IAIpC,IAAIG,WAAa,CACb,CAAC,kBAAmB,wBACpB,CAACD,SAAUH,UAAUtoB,QAAQ,sBAAuB,KACpD,CAACyoB,SAAUH,UAAUtoB,QAAQ,cAAe,KAC5C,CACI,mEACA,mEACA,oEACA,oEACA,2EACA,kEACKA,QAAQwoB,IAAK,KAAOD,eACzBD,WAEJ,CACI,0EACI,OACJ,0EACI,OACJ,0EACI,QACJ,0EACI,QACJ,0EACI,eACH,yEACA,SAAStoB,QAAQwoB,IAAK,IAAMD,eAC7BD,YAMR5wB,EAAEqZ,SAASgR,kBAAkBO,SAAW,KAExC5qB,EAAEqZ,SAASgR,kBAAkBG,YAAc,KAC3CxqB,EAAEqZ,SAASjK,SAAW,CAClBI,OAAQ,KACRC,QAAS,KACTwhB,KAAM,KACNpiB,MAAO,KACPb,QAAS,KACTkjB,SAAU,IACV9V,KAAM,KACN+V,WAAY,KACZC,IAAK,MACL5D,cAAe,MACf6D,iBAAkB,KAClBC,YAAa,KACbC,UAAW,MACXxjB,OAAQ,MACRyjB,eAAgB,KAChBC,iBAAkB,KAClBlG,gBAAiB,MACjBE,SAAU,MACVD,cAAe,MACfkG,mBAAoB,KACpBC,iBAAkB,KAClB/hB,gBAAiB,KACjBgiB,aAAc,KACd9F,MAAO,GACP9b,KAAM,EACNT,YAAa,GACbsiB,aAAc,KACdC,aAAc,MACdC,cAAe,MACfte,cAAe,KACfue,YAAa,KACbC,aAAc,KACdC,MAAO,KACPC,aAAc,EACdzH,WAAY,CAAC1qB,EAAEqZ,SAASgR,mBACxB+H,YAAa,KACbC,WAAY,KACZC,mBAAoB,GACpBC,iBAAkB,KAClBC,0BAA2B,KAC3BljB,oBAAqB,KACrBO,aAAc,IACdC,YAAa,IACbC,kBAAmB,IACnBmf,QAASlvB,EAAE2P,KACXqf,SAAUhvB,EAAE2P,KACZ8iB,SAAU,QACVC,WAAY,KACZC,UAAW,KACXC,WAAY,MACZC,OAAQ7yB,EAAE2P,KACVmjB,QAAS9yB,EAAE2P,KACXojB,OAAQ/yB,EAAE2P,KACVqjB,QAAShzB,EAAE2P,KACXwW,iBAAkBnmB,EAAE2P,KACpBsjB,OAAQjzB,EAAE2P,KACVujB,OAAQlzB,EAAE2P,KACVwjB,MAAOnzB,EAAE2P,KACT0Q,SAAUrgB,EAAE2P,KACZuQ,QAASlgB,EAAE2P,KACXyjB,cAAepzB,EAAE2P,KACjB0jB,cAAerzB,EAAE2P,KACjB2jB,QAAStzB,EAAE2P,KACXiN,QAAS,CACL2W,oBAAqB,iDACjB,sBACJC,sBAAuB,4BACvBC,cAAe,kBACfC,eAAgB,kCAChBC,WAAY,0DACR,OACJC,gBAAiB,0BACjBC,iBAAkB,mDACd,iCACJC,uBAAwB,6CACpB,iEACC,YACLC,qBAAsB,sCACtBC,aAAc,2BACdC,eAAgB,mBAChBC,eAAgB,qCAChBC,cAAe,8CACfC,oBAAqB,kCACrBC,aAAc,uCACdC,kBAAmB,qBACnBC,gBAAiB,iDACb,YACJC,kBAAmB,sBACnBtC,MAAO,QACPuC,SAAU,WACVC,cAAe,gCACfC,WAAY,wCACZ9X,YAAa,+CACb+X,eAAgB,mCAChBC,gBAAiB,yDAMzB,IAAIC,SAAW,GACf,IAAI7O,UAAY,IAAIpZ,MAGpB,IAAIkoB,WAAa,GACjB,IAAIC,cACJ,IAAIvH,YAAc,MAClB,IAAIwH,iBAAmB,KACvB,IAAIC,eAAiB,KACrBl1B,EAAEa,GAAGwY,SAAW,SAAS8b,EAAkBllB,GACvC,SAASmlB,EAAcrnB,GACnB,GAAIA,EAAQ,CACRtN,KAAKkC,QAAU,GAEnBlC,KAAK8D,IAAM,SAASvC,EAAK4D,GACrB,GAAImI,EAAQ,CACRtN,KAAKkC,QAAQX,GAAO4D,MACjB,CACH5F,EAAEsE,QAAQC,IAAIvC,EAAK4D,KAG3BnF,KAAKa,IAAM,SAASU,GAChB,GAAI+L,EAAQ,CACR,OAAOtN,KAAKkC,QAAQX,OACjB,CACH,OAAOhC,EAAEsE,QAAQhD,IAAIU,KAG7BvB,KAAK+D,OAAS,SAASxC,GACnB,GAAI+L,EAAQ,QACDtN,KAAKkC,QAAQX,OACjB,CACHhC,EAAEsE,QAAQE,OAAOxC,KAO7B,SAASqzB,EAAsBjkB,GAC3B,GAAIpR,EAAEqZ,SAAS+N,iBAAiBhW,GAAU,CACtC,IAAI4I,EAASha,EAAEqZ,SAASgB,gBAAgBjJ,GACxC,IAAIlF,EAAUpQ,QAAQ8gB,IAAUgY,eAAgB,IAAM5a,EAAS,KAC/D,MAAM,IAAIha,EAAEqZ,SAAS+R,UAAUlf,QAC5B,GAAIhK,YAAYgO,GAASuhB,kBAAmB,CAC/C,OAAOhL,gBAAgBrV,EAASlB,GAASuhB,uBACtC,GAAIvhB,GAASuhB,iBAAkB,CAClC,OAAOzxB,EAAEqZ,SAAS4T,cAAc7b,OAC7B,CACH,OAAOpR,EAAEqZ,SAAS6T,cAAc9b,IAMxC,SAASkkB,EAAe1zB,GACpB,UAAWA,IAAW,SAAU,CAC5B2F,EAAKguB,KAAK3zB,QACP,GAAIA,aAAkBO,MAAO,CAChCoF,EAAKguB,KAAKv1B,EAAEoB,IAAIQ,EAAQ,SAASA,GAC7B,OAAOsM,KAAKC,UAAUvM,KACvB3D,KAAK,WACL,UAAW2D,IAAW,SAAU,CACnC2F,EAAKguB,KAAKrnB,KAAKC,UAAUvM,QACtB,CACH2F,EAAKguB,KAAK3zB,IAIlB,SAAS4zB,EAAWC,GAChB,IAAI9f,EAAK,0BAET,IAAI8B,EAAIge,EAAS14B,MAAM4Y,GACvB,GAAI8B,EAAG,CAEHlQ,EAAKmuB,MAAMxlB,GAASqhB,WACpBvxB,EAAEsB,IAAImW,EAAE,GAAI,SAASuX,GACjB,IAAI2G,EAAOle,EAAE,GACblQ,EAAKguB,KAAK,cAAgBI,EAAO,KACjC,IAAIC,EAAO5G,EAAS9rB,MAAM,MAC1B,IAAII,GAAKmU,EAAE,GAAK,EAChBlQ,EAAKguB,KAAKK,EAAKj3B,MAAM2E,EAAI,EAAGA,EAAI,GAAGlC,IAAI,SAAS+Y,EAAMtd,GAClD,GAAIA,IAAM,EAAG,CACTsd,EAAO,YACHna,EAAEqZ,SAASgB,gBAAgBF,GAAQ,IAE3C,MAAO,KAAO7W,EAAIzG,EAAI,GAAK,MAAQsd,IACpClc,KAAK,OAAO43B,UAChB,SAMX,SAASC,EAAuBhzB,GAC5B,GAAIZ,YAAYgO,GAASwiB,YAAa,CAClCxiB,GAASwiB,WAAWt2B,KAAKmL,EAAMzE,OAC5B,CACHyE,EAAKzE,MAAM,iBAAmBA,EAAMoJ,SACpC,GAAIpJ,EAAMA,OAASA,EAAMA,MAAMoJ,QAAS,CACpCpJ,EAAQA,EAAMA,MAEd,IAAI6Z,EAAM,KAAO7Z,EAAMoJ,QACvB,GAAIpJ,EAAM6yB,KAAM,CACZhZ,GAAO,aAAe7Z,EAAM6yB,KAAKrtB,QAAQ,OAAQ,IAAM,IAE3D,GAAIxF,EAAMizB,GAAI,CACVpZ,GAAO,YAAc7Z,EAAMizB,GAE/BxuB,EAAKzE,MAAM6Z,KAOvB,SAASqZ,EAAoBxH,EAAKyH,GAC9B,IAAIC,EAAc,SAASzH,EAAQC,GAC/BnnB,EAAKmuB,MAAMxlB,GAASqhB,WACpBvxB,EAAEuuB,KAAK,CACHC,IAAKA,EACLC,OAAQA,EACRC,OAAQA,EACRQ,QAAS,SAASI,EAAMJ,GACpB,IACIhf,GAASgf,QAAQ9yB,KAAKmL,EAAM+nB,EAAMJ,EAAS3nB,GAC7C,MAAOpE,GACLgzB,EAAkBhzB,EAAG,UAG7B6rB,SAAU,SAASM,EAAMN,GACrB,IACI9e,GAAS8e,SAAS5yB,KAAKmL,EAAM+nB,EAAMN,EAAUznB,GAC/C,MAAOpE,GACLgzB,EAAkBhzB,EAAG,UAG7BwrB,QAAS,SAASA,EAAQgB,GACtB,GAAIA,EAAK7sB,MAAO,CACZgzB,EAAuBnG,EAAK7sB,YACzB,GAAIZ,YAAYgO,GAASwhB,oBAAqB,CACjDxhB,GAASwhB,mBAAmBt1B,KAAKmL,EAAMooB,EAAK3uB,OAAQuG,OACjD,CACH+tB,EAAe3F,EAAK3uB,QAExBuG,EAAKsuB,UAET/yB,MAAOszB,KAIf,OAAO,SAAShlB,EAASiI,GACrB,GAAIjI,IAAY,GAAI,CAChB,OAEJ,IACIA,EAAUikB,EAAsBjkB,GAClC,MAAOjO,GAELgzB,EAAkBhzB,EAAG,oCACrB,OAGJ,IAAK8yB,GAAQ7kB,EAAQtD,OAAS,OAAQ,CAElCooB,EAAY9kB,EAAQtD,KAAMsD,EAAQuV,UAC/B,CACH,IAAI0G,EAAQhU,EAASgU,QACrB,GAAIA,EAAO,CACP6I,EAAY9kB,EAAQtD,KAAM,CAACuf,GAAO1f,OAAOyD,EAAQuV,WAC9C,CAEHtN,EAASvW,MAAM,kBAAoB8Z,IAAUoX,iBAS7D,SAASqC,EAAwBz0B,EAAQ00B,EAAOpE,EAAOqE,GAGnD,OAAO,SAASC,EAAcnd,GAC1B,GAAImd,IAAiB,GAAI,CACrB,OAGJ,IAAIplB,EACJ,IACIA,EAAUikB,EAAsBmB,GAClC,MAAOrzB,GAEL,GAAIjB,YAAYgO,GAAS+P,WAAY,CACjC/P,GAAS+P,UAAU9c,EAAGoE,OACnB,CACHA,EAAKzE,MAAM,WAAaK,EAAE+I,SAAW/I,IAEzC,OAaJ,IAAIsN,EAAM7O,EAAOwP,EAAQtD,MACzB,IAAI6S,EAAOxjB,SAASsT,GACpB,GAAIkQ,IAAS,WAAY,CACrB,GAAI2V,GAAS7lB,EAAIhU,SAAW2U,EAAQuV,KAAKlqB,OAAQ,CAC7C8K,EAAKzE,MACD,mBACIhH,QACI8gB,IAAU+W,WACVviB,EAAQtD,KACR2C,EAAIhU,OACJ2U,EAAQuV,KAAKlqB,aAGtB,CACH,OAAOgU,EAAI5R,MAAM0I,EAAM6J,EAAQuV,YAEhC,GAAIhG,IAAS,UAAYA,IAAS,SAAU,CAC/C,IAAI/M,EAAW,GACf,GAAI+M,IAAS,SAAU,CACnB/M,EAAW7U,OAAO03B,KAAKhmB,GACvBA,EAAM4lB,EACF5lB,EACA6lB,EACApE,GAGR7Y,EAASjc,KAAKqT,EAAK,CACfjB,OAAQ4B,EAAQtD,KAAO,KACvBA,KAAMsD,EAAQtD,KACd8kB,WAAYjS,IAAS,SAAW/M,EAAWrU,iBAE5C,GAAI2C,YAAYq0B,GAAW,CAC9BA,EAASC,EAAcjvB,QACpB,GAAIrF,YAAYgO,GAASwmB,mBAAoB,CAChDxmB,GAASwmB,kBAAkBt6B,KAAKmL,EAAMivB,EAAcjvB,OACjD,CACH8R,EAASvW,MAAMhH,QAAQ8gB,IAAUgX,gBAAiBxiB,EAAQtD,SAKtE,SAASsoB,EAAWO,EAAKpH,EAAQzsB,GAC7ByE,EAAKsuB,SACL,GAAI3zB,YAAYgO,GAASkiB,aAAc,CACnCliB,GAASkiB,YAAYh2B,KAAKmL,EAAMovB,EAAKpH,EAAQzsB,QAC1C,GAAIysB,IAAW,QAAS,CAC3BhoB,EAAKzE,MAAM,kBAAoBysB,EAAS,MAC7B3S,IAAUqX,eAAiB,MAC3Bj0B,EAAEqZ,SAASgB,gBAAgBsc,EAAIC,gBAIlD,SAASC,EAAqBrI,EAAKyH,EAAMtH,GACrC,SAASmI,EAAanH,GAClB,GAAIA,EAAK7sB,MAAO,CACZgzB,EAAuBnG,EAAK7sB,YACzB,GAAIZ,YAAYgO,GAASwhB,oBAAqB,CACjDxhB,GAASwhB,mBAAmBt1B,KAAKmL,EAAMooB,EAAK3uB,OAAQuG,OACjD,CACH+tB,EAAe3F,EAAK3uB,QAExBuG,EAAKsuB,SAET,SAASkB,EAAazH,EAAMJ,GACxB,IACIhf,GAASgf,QAAQ9yB,KAAKmL,EAAM+nB,EAAMJ,EAAS3nB,GAC7C,MAAOpE,GACLgzB,EAAkBhzB,EAAG,SAG7B,SAAS6zB,EAAc1H,EAAMN,GACzB,IACI9e,GAAS8e,SAAS5yB,KAAKmL,EAAM+nB,EAAMN,EAAUznB,GAC/C,MAAOpE,GACLgzB,EAAkBhzB,EAAG,SAG7B,SAAS6rB,EAASA,GACd,IAAIiI,EAAQjI,EAGZ,GAAI9e,GAASuiB,WAAa,GAAI,CAC1BviB,GAASuiB,SAASvvB,MAAM,KAAKoK,QAAQ,SAAS4pB,GAC1CD,EAAQA,EAAMC,KAGtB,GAAID,GAASA,EAAMx6B,OAAQ,CACvB,IAAI06B,EAAqB,GACzBn3B,EAAEiB,KAAKg2B,EAAO,SAAS5N,EAAG+N,GACtB,GAAIp3B,EAAE8uB,cAAcsI,WAAgBA,EAAKtpB,OAAS,SAAU,CACxDqpB,EAAmBC,EAAKtpB,MAAQ,WAC5B,IAAIZ,EAAS+oB,GAAQmB,EAAKtpB,OAAS,OACnC,IAAI6Y,EAAOxkB,MAAMnD,UAAUL,MAAMvC,KAAKH,WACtC,IAAIo7B,EAAW1Q,EAAKlqB,QAAUyQ,EAAS,EAAI,GAC3C,GAAIgD,GAASihB,YAAciG,EAAK1I,QAC5B0I,EAAK1I,OAAOjyB,SAAW46B,EAAU,CACjC9vB,EAAKzE,MACD,mBACIhH,QACI8gB,IAAU+W,WACVyD,EAAKtpB,KACLspB,EAAK1I,OAAOjyB,OACZ46B,QAGT,CACH9vB,EAAKmuB,MAAMxlB,GAASqhB,WACpB,GAAIrkB,EAAQ,CACR,IAAImgB,EAAQ9lB,EAAK8lB,MAAM,MACvB,GAAIA,EAAO,CACP1G,EAAO,CAAC0G,GAAO1f,OAAOgZ,OACnB,CACHpf,EAAKzE,MAAM,kBACA8Z,IAAUoX,eAG7Bh0B,EAAEuuB,KAAK,CACHC,IAAKA,EACLC,OAAQ2I,EAAKtpB,KACb4gB,OAAQ/H,EACRuI,QAAS6H,EACT/H,SAAUgI,EACVrI,QAASmI,EACTh0B,MAAOszB,SAM3B,IAAIlE,SAAe+D,IAAS,SAAWA,EAAO,QAC9CkB,EAAmBG,KAAOH,EAAmBG,MAAQ,SAASz2B,GAC1D,UAAWA,IAAO,YAAa,CAC3B,IAAI02B,EAAQvI,EAASiI,MAAM71B,IAAI,SAASg2B,GACpC,OAAOA,EAAKtpB,OACb7P,KAAK,MAAQ,SAChBsJ,EAAKguB,KAAK,uBAAyBgC,OAChC,CACH,IAAIC,EAAQ,MACZx3B,EAAEiB,KAAKg2B,EAAO,SAAS5N,EAAG+N,GACtB,GAAIA,EAAKtpB,OAASjN,EAAI,CAClB22B,EAAQ,KACR,IAAI7a,EAAM,GACVA,GAAO,UAAYya,EAAKtpB,KAAO,IAC/B,GAAIspB,EAAK1I,OAAQ,CACb,IAAIA,EAAS0I,EAAK1I,OAClB,GAAIuH,GAAQmB,EAAKtpB,OAASokB,EAAO,CAC7BxD,EAASA,EAAO/vB,MAAM,GAE1Bge,GAAO,IAAM+R,EAAOzwB,KAAK,KAE7B,GAAIm5B,EAAKE,KAAM,CACX3a,GAAO,KAAOya,EAAKE,KAEvB/vB,EAAKguB,KAAK5Y,GACV,OAAO,SAGf,IAAK6a,EAAO,CACR,GAAI32B,IAAO,OAAQ,CACf0G,EAAKguB,KAAK,uCACA,2CACA,kBACP,CACH,IAAI5Y,EAAM,WAAa9b,EAAK,eAC5B0G,EAAKzE,MAAM6Z,OAK3BgS,EAAQwI,OACL,CACHxI,EAAQ,OAGhB,OAAO3uB,EAAEuuB,KAAK,CACVC,IAAKA,EACLC,OAAQ,kBACRC,OAAQ,GACRC,QAASK,EACTE,QAAS6H,EACT/H,SAAUgI,EACVl0B,MAAO,SAASA,IACZ6rB,EAAQ,SAKpB,SAAS8I,EAAiBC,EAAYxF,EAAOyF,GACzCA,EAAWA,GAAY33B,EAAE2P,KACzB,IAAIgR,EAAOxjB,SAASu6B,GACpB,IAAI91B,EACJ,IAAIZ,EAAS,GACb,IAAI42B,EAAY,EAChB,IAAIC,EACJ,GAAIlX,IAAS,QAAS,CAClB/e,EAAS,IAET,SAAUk2B,EAAMC,EAAcpJ,GAC1B,GAAIoJ,EAAat7B,OAAQ,CACrB,IAAI8O,EAAQwsB,EAAa,GACzB,IAAIlR,EAAOkR,EAAap5B,MAAM,GAC9B,IAAIgiB,EAAOxjB,SAASoO,GACpB,GAAIoV,IAAS,SAAU,CACnBpZ,EAAKmuB,MAAMxlB,GAASqhB,WACpB,GAAIrhB,GAASuiB,WAAa,MAAO,CAC7B,KAAMmF,IAAc,EAAG,CACnBC,EAAiB7B,EAAoBzqB,EAAO2mB,OACzC,CACH3qB,EAAKzE,MAAM8Z,IAAUiX,kBAEzBiE,EAAMjR,EAAM8H,OACT,CACHkI,EAAqBtrB,EAAO2mB,EAAO,SAAS8F,GACxC,GAAIA,EAAS,CACTh4B,EAAEqE,OAAOzC,EAAQo2B,QACd,KAAMJ,IAAc,EAAG,CAC1BC,EAAiB7B,EACbzqB,EACA2mB,OAED,CACH3qB,EAAKzE,MAAM8Z,IAAUiX,kBAEzBtsB,EAAKsuB,SACLiC,EAAMjR,EAAM8H,WAGjB,GAAIhO,IAAS,WAAY,CAC5B,GAAIkX,EAAgB,CAChBtwB,EAAKzE,MAAM8Z,IAAUkX,4BAClB,CACH+D,EAAiBtsB,EAErBusB,EAAMjR,EAAM8H,QACT,GAAIhO,IAAS,SAAU,CAC1B3gB,EAAEqE,OAAOzC,EAAQ2J,GACjBusB,EAAMjR,EAAM8H,QAEb,CACHA,MA1CR,CA4CG+I,EAAY,WACXC,EAAS,CACLzB,YAAaG,EACTz0B,EACA,MACAswB,EACA2F,EAAev1B,KAAKiF,IAExBqrB,WAAY7zB,OAAO03B,KAAK70B,YAG7B,GAAI+e,IAAS,SAAU,CAC1B,GAAIzQ,GAAS+nB,qBAAsB,CAC/Br2B,EAAS,CACLs0B,YAAaF,EAAoB0B,EAAYxF,IAEjD,GAAIlyB,EAAE8B,QAAQoO,GAAS0iB,YAAa,CAChChxB,EAAOgxB,WAAa1iB,GAAS0iB,WAEjC+E,EAAS/1B,OACN,CACH2F,EAAKmuB,MAAMxlB,GAASqhB,WACpBsF,EAAqBa,EAAYxF,EAAO,SAAStwB,GAC7C,GAAIA,EAAQ,CACRZ,EAAOk1B,YAAcG,EACjBz0B,EACA,MACAswB,GAEJlxB,EAAO4xB,WAAa7zB,OAAO03B,KAAK70B,OAC7B,CAEHZ,EAAOk1B,YAAcF,EAAoB0B,EAAYxF,GAEzDyF,EAAS32B,GACTuG,EAAKsuB,iBAGV,GAAIlV,IAAS,SAAU,CAC1BgX,EAAS,CACLzB,YAAaG,EACTqB,EACAxnB,GAASihB,WACTe,GAEJU,WAAY7zB,OAAO03B,KAAKiB,SAEzB,CAEH,GAAI/W,IAAS,YAAa,CACtB+W,EAAa13B,EAAE2P,UACZ,GAAIgR,IAAS,WAAY,CAC5B,IAAIhE,EAAMgE,EAAO,gCACjB,MAAM,IAAI3gB,EAAEqZ,SAAS+R,UAAUzO,GAGnCgb,EAAS,CACLzB,YAAawB,EACb9E,WAAY1iB,GAAS0iB,cAOjC,SAASsF,EAAoB1J,EAAK0D,GAC9B,IAAIzD,EAAStxB,SAAS+0B,KAAW,UAAY,QAAUA,EACvD,OAAO,SAASiG,EAAMC,EAAQ3tB,GAC1BlD,EAAKmuB,MAAMxlB,GAASqhB,WACpBvxB,EAAEuuB,KAAK,CACHC,IAAKA,EACLC,OAAQA,EACRC,OAAQ,CAACyJ,EAAMC,GACflJ,QAAS,SAASI,EAAMJ,GACpB,IACIhf,GAASgf,QAAQ9yB,KAAKmL,EAAM+nB,EAAMJ,EAAS3nB,GAC7C,MAAOpE,GACLgzB,EAAkBhzB,EAAG,UAG7B6rB,SAAU,SAASM,EAAMN,GACrB,IACI9e,GAAS8e,SAAS5yB,KAAKmL,EAAM+nB,EAAMN,EAAUznB,GAC/C,MAAOpE,GACLgzB,EAAkBhzB,EAAG,UAG7BwrB,QAAS,SAASA,EAAQK,GACtB,IAAKA,EAASlsB,OAASksB,EAAShuB,OAAQ,CACpCyJ,EAASukB,EAAShuB,YACf,CAEHyJ,EAAS,MAEblD,EAAKsuB,UAET/yB,MAAOszB,KAQnB,SAASD,EAAkBhzB,EAAGwB,EAAOoZ,GACjC,GAAI7b,YAAYgO,GAASmhB,kBAAmB,CACxCnhB,GAASmhB,iBAAiBj1B,KAAKmL,EAAMpE,EAAGwB,OACrC,CACH4C,EAAK0Y,UAAU9c,EAAGwB,GAClB,IAAKoZ,EAAQ,CACT0D,WAAW,WACP,MAAMte,GACP,KAYf,IAAIk1B,EAAgB,GACpB,IAAIC,EAAW,EACf,SAASC,EAAYve,EAAQ3R,EAAO4H,GAEhC,IAAIpT,EAAGmY,EACPqjB,EAAcj7B,KAAKk7B,GACnB,GAAIte,IAAW,GAAI,OAIZ,IAAK/J,EAAQmhB,IAAK,CACrB,IAAIoH,EAAiB,CACjBjN,gBAAiBrb,GAASqb,gBAC1BC,cAAetb,GAASsb,cACxBC,SAAUvb,GAASub,SACnBpQ,WAAYiV,GAAU5f,OAE1B,IAAIyb,EAAO5kB,EAAK4kB,OAChB,IAAK5R,OAAOP,GAAUmS,GACjBnS,EAAOjd,MAAM,SACZmT,GAASkL,OAAS,MAAQnL,EAAQmL,OAAS7b,WAC5C2Q,GAASkL,OAAS,OAASnL,EAAQmL,OAAS,MAAO,CACpD,IAAIqd,EAAQxoB,EAAQyoB,UACpB,IAAIz2B,EAAQjC,EAAEqZ,SAASY,YAAYD,EAAQmS,EAAMsM,GACjD,IAAK57B,EAAI,EAAGmY,EAAM/S,EAAMxF,OAAQI,EAAImY,IAAOnY,EAAG,CAC1C,GAAIoF,EAAMpF,KAAO,IAAMoF,EAAMpF,KAAO,KAAM,CACtCw7B,EAAcj7B,KAAK,qBAChB,CACHi7B,EAAcj7B,KAAK4C,EAAEqZ,SAASld,OAC1B8F,EAAMpF,GACN27B,UAIT,CACHxe,EAASha,EAAEqZ,SAAS0B,UAAUf,GAC9BA,EAASha,EAAEqZ,SAASld,OAAO6d,EAAQwe,GACnCxe,EAAO9W,MAAM,MAAMoK,QAAQ,SAAS0M,GAChCqe,EAAcj7B,KAAK4c,UAGxB,CACHqe,EAAcj7B,KAAK4c,GAEvBqe,EAAcj7B,KAAK,CACfu6B,SAAU1nB,EAAQ0nB,SAClBtvB,MAAOA,IAIf,SAASswB,EAAaxe,GAElB,IACI,IAAIye,EAAgB54B,EAAEqE,OAAO,CACzBhG,KAAM,KACN+yB,IAAK,MACLuG,SAAU33B,EAAE2P,MACbwK,EAAKlK,SAAW,IACnB,IAAI+J,EACJ,IAAIrd,EAAMwd,EAAKH,OACf,IAAI6e,EAAQ32B,YAAYvF,GACxB,GAAIk8B,EAAO,CACPl8B,EAAMA,IAEV,GAAIQ,SAASR,KAAS,SAAU,CAC5B,GAAIuF,YAAYgO,GAAS4oB,aAAc,CACnC,IAAIlyB,EAAMsJ,GAAS4oB,YAAYn8B,GAC/B,GAAIQ,SAASyJ,KAAS,SAAU,CAC5BoT,EAASpT,QAEV,GAAIjK,aAAewF,MAAO,CAC7B6X,EAASha,EAAEqZ,SAAS6S,QAAQvvB,EAAK4K,EAAK4kB,OAAQjc,GAASF,UACpD,CACHgK,EAASzc,OAAOZ,QAEjB,CACHqd,EAASrd,EAEb,GAAIqd,IAAW,GAAI,CAEf,GAAIA,IAAW,GAAI,CACf,IAAK4e,EAAcxH,IAAK,CACpB,GAAIlhB,GAAS0hB,aAAc,CACvB5X,EAASA,EAAO1R,QAAQia,SAAU,aAC9Bja,QAAQga,UAAW,aAE3B,GAAIsW,EAAclO,WAAY,CAC1B,IACI1Q,EAASha,EAAEqZ,SAASyB,iBAChBd,EACA9J,IAEN,MAAO/M,GACLgzB,EAAkBhzB,EAAG,eAG7B,IAAI41B,EAAQ/e,EAAO9W,MAAM2f,gBACzB7I,EAASha,EAAEoB,IAAI23B,EAAO,SAAS/e,GAC3B,GAAIA,GAAUA,EAAOjd,MAAM8lB,kBACtB7iB,EAAEqZ,SAASiC,cAActB,GAAS,CAGnCA,EAASA,EAAO1R,QAAQ,eAAgB,IACxC,GAAIswB,EAAcv6B,KAAM,CACpB,IAAI26B,EACJ,GAAItlB,EAAc,CACdA,EAAeA,EAAatC,QAAQvL,OAExC,GAAImzB,IAAahf,EAAOnU,OAAQ,CAC5B0B,EAAKzE,MAAM8Z,IAAU8X,mBAClB,CACH10B,EAAEqZ,SAASkU,iBAAiBhmB,EAAMyS,EAAQ,CACtCwT,cAAetd,GAASsd,iBAIpC,MAAO,OACJ,CACH,OAAOxT,KAEZ/b,KAAK,IACR,GAAI+b,IAAW,GAAI,CACfA,EAASuD,KAAKvd,EAAEqZ,SAAS0B,UAAUf,IACnCA,EAASha,EAAEqZ,SAAS8B,OAAOnB,EAAQ,CAC/BhK,KAAME,GAASF,QAI3B,GAAIgK,IAAW,GAAI,CACfue,EAAYve,EAAQG,EAAK9R,MAAOuwB,KAI5C,GAAI5e,IAAW,IAAM6e,EAAO,CACxBN,EAAYve,EAAQG,EAAK9R,MAAOuwB,IAEtC,MAAOz1B,GACLk1B,EAAgB,GAEhB,GAAIn2B,YAAYgO,GAASmhB,kBAAmB,CACxCnhB,GAASmhB,iBAAiBj1B,KAAKmL,EAAMpE,EAAG,gBACrC,CACH8I,gBAAgB,qCAAsC9I,KAOlE,SAASiS,EAAOnF,GACZA,EAAUjQ,EAAEqE,OAAO,GAAI,CAEnB40B,OAAQ,MAERC,OAAQ,MACTjpB,GAAW,IACd,IAAKA,EAAQgpB,OAAQ,CACjBE,GAAapa,OAAOpO,GAEpB,IAAIyoB,EAAkBx8B,EAAOy8B,QAAQC,SAEzC,IAAIC,EAAgB,GAEpB,GAAIrpB,GAASiiB,aAAe,EAAG,CAI3B,IAAI1qB,EACJ,GAAIyI,GAASiiB,cAAgB,EAAG,CAC5B1qB,EAAQF,EAAKiyB,WACV,CACH/xB,EAAQyI,GAASiiB,YAErBlW,GAAM3O,QAAQ,SAAS6M,EAAM9R,GACzB,IAAI2R,EAASG,EAAK,GAClB,IAAIlK,EAAUkK,EAAK,GACnB,GAAIhd,SAAS6c,KAAY,WAAY,CACjCA,EAASA,IAEb,GAAI7c,SAAS6c,KAAY,SAAU,CAC/BA,EAASzc,OAAOyc,GAEpBuf,EAAcn8B,KAAK,CACf4c,OAAQA,EACR3R,MAAOA,EACP4H,QAASA,MAGjBspB,EAAgBA,EAAc56B,MAAM46B,EAAc98B,OAASgL,EAAQ,OAChE,CACH8xB,EAAgBtd,GAAM7a,IAAI,SAAS+Y,EAAM9R,GACrC,MAAO,CACH2R,OAAQG,EAAK,GACb9R,MAAOA,EACP4H,QAASkK,EAAK,MAI1B,IACIke,EAAgB,GAChBr4B,EAAEiB,KAAKs4B,EAAe,SAAS18B,EAAGsd,GAC9Bwe,EAAaxe,KAEjB,IAAKlK,EAAQgpB,OAAQ,CACjBE,GAAale,OAAOme,GAExB7xB,EAAKkyB,MAAMxpB,GACX,IACIC,GAASkjB,cAAch3B,KAAKmL,EAAMA,GACpC,MAAOpE,GACL+M,GAASkjB,cAAgBpzB,EAAE2P,KAC3BwmB,EAAkBhzB,EAAG,kBAE3B,MAAOA,GACL,GAAIjB,YAAYgO,GAASmhB,kBAAmB,CACxCnhB,GAASmhB,iBAAiBj1B,KAAKmL,EAAMpE,EAAG,yBACrC,CACH8I,gBAAgB,WAAY9I,KAOxC,SAASu2B,IACL,GAAIxpB,GAASiiB,aAAe,EAAG,CAC3B,IAAI1qB,EACJ,GAAIyI,GAASiiB,cAAgB,EAAG,CAC5B1qB,EAAQF,EAAKiyB,WACV,CACH/xB,EAAQyI,GAASiiB,YAErB,IAAIwH,EAAS/8B,EAAOwO,KAAK,eACzB,GAAIuuB,EAAOl9B,OAAS,EAAIgL,EAAO,CAC3B,IAAIuT,EAAM2e,EAAOl9B,OAASgL,EAAQ,EAClC,IAAImyB,EAAaD,EAAOh7B,MAAM,EAAGqc,GAGjC,IAAI6e,EAAUD,EAAW/nB,SACzB+nB,EAAWp1B,SACXq1B,EAAQ54B,KAAK,WACT,IAAI64B,EAAQ95B,EAAES,MACd,GAAIq5B,EAAMvvB,GAAG,UAAW,CAGpBuvB,EAAMt1B,cAS1B,SAASu1B,IACL,GAAI7pB,GAAS8pB,YAAcz6B,UAAW,CAElCgI,EAAKguB,KAAKhuB,EAAK0yB,UAAW,CAACtC,SAAU/rB,UAAW8e,WAAY,aACzD,GAAIxa,GAAS8pB,UAAW,CAC3B,IAAIrZ,SAAczQ,GAAS8pB,UAC3B,GAAIrZ,IAAS,SAAU,CACnBpZ,EAAKguB,KAAKrlB,GAAS8pB,gBAChB,GAAIrZ,IAAS,WAAY,CAC5B,IACIzQ,GAAS8pB,UAAU59B,KAAKmL,EAAMA,EAAKguB,MACrC,MAAOpyB,GACL+M,GAAS8pB,UAAY,KACrB7D,EAAkBhzB,EAAG,kBAEtB,CACHoE,EAAKzE,MAAM8Z,IAAUsX,kBAOjC,SAASgG,EAAa9oB,GAClB,UAAWA,IAAY,YAAa,CAChCA,EAAU7J,EAAK4yB,cAEnB,IAAI3qB,EAAS2pB,GAAa3pB,OAAO,MACjC,IAAIH,EAAO8pB,GAAa9pB,OACxB,cAAeA,GACX,IAAK,SACD+B,EAAUA,EAAQ9I,QAAQ,KAAM+G,GAChC,MACJ,IAAK,UACD,GAAIA,EAAM,CACN+B,EAAUA,EAAQ9I,QAAQ,KAAM4H,GAASghB,cACtC,CACH9f,EAAUpR,EAAEqZ,SAASsB,kBAAkBvJ,GAE3C,MAER,IAAInB,EAAU,CACV0nB,SAAU,SAASA,EAAS5b,GACxBnQ,UAAUmQ,EAAIrQ,SAAS,YACvB,IACIwE,GAASmjB,cAAcj3B,KAAKmL,EAAMwU,EAAK3K,GACzC,MAAOjO,GACL+M,GAASmjB,cAAgBrzB,EAAE2P,KAC3BpI,EAAK0Y,UAAU9c,MAI3B,GAAIjB,YAAYsN,GAAS,CACrB,IAAI5I,EAAM4I,EAAO,SAASwK,GACtBzS,EAAKguB,KAAKvb,EAAS5I,EAASnB,KAEhC,GAAIrJ,GAAO1E,YAAY0E,EAAIwzB,MAAO,CAC9BxzB,EAAIwzB,KAAK,SAASpgB,GACd,UAAWA,IAAW,SAAU,CAC5BzS,EAAKguB,KAAKvb,EAAS5I,EAASnB,WAIrC,CACH1I,EAAKguB,KAAK/lB,EAAS4B,EAASnB,IAIpC,SAASoqB,IACL,GAAI9yB,EAAKgD,GAAG,QAAS,CAGjB,OAAOlL,OAAOi7B,WAAat3B,SAASod,gBAAgBma,YAAc,EAEtE,OAAOC,GAAK9tB,eAAiBnF,EAAKmF,aAKtC,SAAS+tB,EAAc3V,GAEnB,IAAIzL,EAAW4M,UAAU3kB,MAAMwjB,EAAK,IACpC,IAAKzL,EAAU,CACX,MAAM,IAAIrZ,EAAEqZ,SAAS+R,UAAUxO,IAAU4X,mBAE7C,IAAIkG,EAAc5V,EAAK,GACvB,GAAIiQ,WAAW2F,GAAc,CACzBrhB,EAASshB,YAAY5F,WAAW2F,QAC7B,CAEHjN,YAAc,MACd,IAAIrc,EAAU0T,EAAK,GACnB,GAAI1T,EAAS,CACTiI,EAAShb,KAAK+S,GAASwc,KAAK,WACxBH,YAAc,KACdsH,WAAW2F,GAAerhB,EAASuhB,kBAWnD,SAASC,IACL,GAAIpN,YAAa,CACbwH,iBAAmB,MACnB6F,SAASC,KAAO,IAAM7sB,KAAKC,UAAU6mB,eACrCvT,WAAW,WACPwT,iBAAmB,MACpB,MAOX,IAAI+F,EAAgB,KACpB,IAAIC,EAAmB,GACvB,SAASrnB,EAASxC,EAAS2M,EAAQ1f,GAC/B,SAAS68B,IAEL,GAAIhrB,GAAS4hB,cAAgB5hB,GAASirB,UAAY98B,EAAM,CACpD,IAAK02B,WAAWt4B,OAAQ,CAEpB8K,EAAKwtB,iBACF,CACHxtB,EAAKwtB,WAAW,QAK5B,SAASqG,IAEL,IAAK/8B,EAAM,CACPovB,YAAc,KACd,GAAIvd,GAAS4hB,aAAc,CACvBvqB,EAAKwtB,WAAW3jB,EAAS,OAE7Bqc,YAAc4N,EAElBzM,EAASluB,UACT,GAAIwB,YAAYgO,GAASorB,gBAAiB,CACtCprB,GAASorB,eAAel/B,KAAKmL,EAAMA,EAAM6J,IAIjD,SAAS0N,EAAK9d,GACV,UAAWA,IAAW,YAAa,CAC/Bs0B,EAAet0B,GAEnBo6B,IACA7zB,EAAKsuB,SAGT,SAAS0F,IAEL,IAAIv6B,EAASk1B,EAAYA,YAAY95B,KAAKmL,EAAM6J,EAAS7J,GACzD,GAAIvG,EAAQ,CAERuG,EAAKmuB,MAAMxlB,GAASqhB,WAEpB,GAAIrvB,YAAYlB,EAAO4sB,MAAQ5sB,EAAOo5B,MAAO,EACxCp5B,EAAO4sB,MAAQ5sB,EAAOo5B,MAAMh+B,KAAK4E,EAAQ8d,OACvC,CACH,OAAO9e,EAAEw7B,KAAKx6B,GAAQ4sB,KAAK9O,SAE5B,GAAI2c,GAAQ,CACfR,EAAiB79B,KAAK,WAElBg+B,UAED,CACHA,KAMR,GAAIJ,EAAe,CACfA,EAAgB,MAChBE,IAEJ,IAEI,GAAIh5B,YAAYgO,GAASwrB,iBAAkB,CACvC,GAAIxrB,GAASwrB,gBAAgBt/B,KAAKmL,EAAMA,EAAM6J,KAAa,MAAO,CAC9D,QAGR,IAAK/S,EAAM,CACPqV,EAAe1T,EAAEqZ,SAAS6T,cAAc9b,GAE5C,IAAKuqB,IAAS,CAGV,GAAIt9B,IAAS6D,YAAYgO,GAASuD,gBACrBvD,GAASuD,cAAcrC,IACvBA,EAAQrU,MAAMmT,GAASuD,gBAAiB,CACjD0lB,GAAa1pB,UAAUvC,OAAOkE,IAGtC,IAAI8kB,EAAc6B,GAAanqB,MAC/B,IAAKmQ,GAAU7N,GAAS8hB,YAAa,CACjCkI,EAAa9oB,GAIjB,IAAIwd,EAAW,IAAI5uB,EAAE6uB,SAIrB,IAAIwM,EAAoB5N,YACxB,GAAIrc,EAAQrU,MAAM,kBAAoBwK,EAAK8lB,MAAM,MAAO,CACpD,GAAI9lB,EAAKq0B,QAAU,EAAG,CAClBr0B,EAAKs0B,OAAO,UACT,CACHt0B,EAAKs0B,SAETT,SACG,GAAIlrB,GAAS+gB,MAAQ7f,EAAQrU,MAAM,kBAC9B++B,GAAU,CAClB,IAAIF,EAAQr0B,EAAKq0B,QACjB,GAAIA,IAAU,GAAKr0B,EAAKw0B,aAAeH,EAAQ,EAAG,CAC9C,GAAIr0B,EAAKw0B,UAAU,MAAO,CACtBx0B,EAAKy0B,UAAUz8B,UAAW,MAE9BgI,EAAKmG,MAET0tB,SACG,GAAIlrB,GAASrB,OAASuC,EAAQrU,MAAM,mBAC/B++B,GAAU,CAClBv0B,EAAKsH,QACLusB,QACG,CACH,IAAIx0B,EAAM20B,IACV,GAAI30B,EAAK,CACL,OAAOA,GAGf,OAAOgoB,EAASoB,UAClB,MAAO7sB,GACLgzB,EAAkBhzB,EAAG,OAAQ9E,GAC7BkJ,EAAKsuB,SACL,GAAIx3B,EAAM,CACN,MAAM8E,IASlB,SAAS84B,IACL,GAAI/5B,YAAYgO,GAASgsB,gBAAiB,CACtC,IACI,GAAIhsB,GAASgsB,eAAe9/B,KAAKmL,EAAMA,KAAU,MAAO,CACpD,QAEN,MAAOpE,GACL+M,GAASgsB,eAAiBl8B,EAAE2P,KAC5BwmB,EAAkBhzB,EAAG,mBAG7Bg5B,IACA,GAAIj6B,YAAYgO,GAASksB,eAAgB,CACrC,IACIlsB,GAASksB,cAAchgC,KAAKmL,EAAMA,GACpC,MAAOpE,GACL+M,GAASksB,cAAgBp8B,EAAE2P,KAC3BwmB,EAAkBhzB,EAAG,kBAG7BoE,EAAK2qB,MAAMmK,GAAiB,KAAMC,GAGtC,SAASH,IACL,IAAIruB,EAAOvG,EAAKg1B,YAAY,MAAQ,IACpC55B,GAAQ6B,OAAOsJ,EAAO,SACtBnL,GAAQ6B,OAAOsJ,EAAO,SAK1B,SAAS0uB,EAAkBC,GACvB,IAAIxuB,EAAc1G,EAAKg1B,cAAgB,gBACvC,IAAIhF,EAAQ50B,GAAQrB,IAAI2M,GACxB,GAAIspB,EAAO,CACPA,EAAQrpB,KAAKhS,MAAMq7B,OAChB,CACHA,EAAQ,GAEZ,GAAIv3B,EAAEwgB,QAAQic,EAAkBlF,MAAY,EAAG,CAC3CA,EAAMn6B,KAAKq/B,GACX95B,GAAQ4B,IAAI0J,EAAaC,KAAKC,UAAUopB,KAMhD,SAASmF,EAAwB3e,GAC7B,IAAImY,EAAc6B,GAAanqB,MAC/B,IAAIE,EAAOvG,EAAKg1B,YAAY,MAC5B,IAAKZ,IAAS,CACVa,EAAkB1uB,GAEtB,IAAIokB,EAAQ3qB,EAAKo1B,WAAW,MAC5BxD,GAAarrB,KAAKA,GAAQokB,EAAQ,IAAMA,EAAQ,KAChD,GAAIgE,EAAY1mB,SAAW2pB,GAAa3pB,SAAU,CAC9C,GAAItN,YAAYg0B,EAAY1mB,QAAS,CACjC2pB,GAAa3pB,OAAO,SAAS/E,GACzB,IAAI7D,EAAMsvB,EAAY1mB,OAAOpT,KAAKmL,EAAMkD,EAAUlD,GAClD,GAAIX,GAAO1E,YAAY0E,EAAIwzB,MAAO,CAC9BxzB,EAAIwzB,KAAK,SAASpgB,GACd,UAAWA,IAAW,SAAU,CAC5BvP,EAASuP,aAKtB,CACHmf,GAAa3pB,OAAO0mB,EAAY1mB,SAGxC,UAAW0mB,EAAYzmB,UAAY,YAAa,CAC5ClI,EAAKkI,UAAUR,OAAOinB,EAAYzmB,SAEtC,GAAIzP,EAAE8uB,cAAcoH,EAAYhjB,QAAS,CACrCimB,GAAajmB,OAAOlT,EAAEc,KAAKo1B,EAAYhjB,OAAQ,SAASpF,EAAM8uB,GAC1D,OAAO,WACH,IAAIjW,EAAO,GAAGhoB,MAAMvC,KAAKH,WACzB,IACI,OAAO2gC,EAAI/9B,MAAM0I,EAAMof,GACzB,MAAOxjB,GACLgzB,EAAkBhzB,EAAG,oBAKrCg2B,GAAa50B,IAAI,IACjBs4B,GAAWn8B,UACX,IAAKqd,GAAU7b,YAAYg0B,EAAY4G,SAAU,CAC7C5G,EAAY4G,QAAQ1gC,KAAKmL,EAAMA,IAIvC,SAASw1B,IACL,GAAI9H,kBAAoB/kB,GAASirB,SAAU,CACvC,IACI,GAAIL,SAASC,KAAM,CACf,IAAIA,EAAOD,SAASC,KAAKzyB,QAAQ,KAAM,IACvC0sB,cAAgB9mB,KAAKhS,MAAM8gC,mBAAmBjC,QAC3C,CACH/F,cAAgB,GAEpB,GAAIA,cAAcv4B,OAAQ,CACtBg+B,EAAczF,cAAcA,cAAcv4B,OAAS,SAChD,GAAIs4B,WAAW,GAAI,CACtBxtB,EAAKozB,YAAY5F,WAAW,KAElC,MAAO5xB,GACLgzB,EAAkBhzB,EAAG,cAKjC,SAASm5B,IACLI,IACA3C,IACA,GAAI9d,GAAMxf,OAAQ,CACd8K,EAAKkX,UAKT,IAAIwe,EAAa,MACjB,GAAI/6B,YAAYgO,GAAS2iB,QAAS,CAC9BqK,GAAU,WACND,EAAa,MAEjB,IACI/sB,GAAS2iB,OAAOz2B,KAAKmL,EAAMA,GAC7B,MAAOpE,GACLgzB,EAAkBhzB,EAAG,UAEvB,QACE+5B,GAAUl9B,EAAE2P,KACZ,IAAKstB,GAAc11B,EAAKyG,UAAW,CAI/BzG,EAAKsuB,WAIjB,GAAIX,eAAgB,CAChBA,eAAiB,MACjBl1B,EAAEX,QAAQoM,GAAG,aAAcsxB,IAMnC,SAASpB,IACL,OAAOG,IAAY3C,GAAa9pB,SAAW,MAK/C,SAAS8tB,EAAch6B,GACnB,IAAInC,EAAQ4M,EAAMmqB,GAAanqB,MAC/B,GAAI1L,YAAY0L,EAAIsS,SAAU,CAC1Blf,EAAS4M,EAAIsS,QAAQ9jB,KAAKmL,EAAMpE,EAAGoE,GACnC,GAAIvG,IAAWzB,UAAW,CACtB,OAAOyB,QAER,GAAIkB,YAAYgO,GAASgQ,SAAU,CACtClf,EAASkP,GAASgQ,QAAQ9jB,KAAKmL,EAAMpE,EAAGoE,GACxC,GAAIvG,IAAWzB,UAAW,CACtB,OAAOyB,IAInB,IAAIkS,EAAS,CACTkB,SAAU,SAASjR,EAAG8a,GAClB,IAAK6d,GAAU,CACX,GAAI3C,GAAa73B,QAAU,GAAI,CAC3B,GAAIy2B,GAAatqB,OAAS,GACtBvL,YAAYm6B,IAAkB,CAC9B90B,EAAKmG,IAAI,QACN,CACHnG,EAAKsuB,SACLtuB,EAAKguB,KAAK,SAEX,CACHtX,KAGR,OAAO,OAEXrH,SAAU,WACN,GAAI2K,sBAAwB,GAAI,CAC5B,IAAInQ,EAAU7J,EAAK4yB,cACnB,IAAI3rB,EAAWjH,EAAK61B,eACpBhsB,EAAUA,EAAQvT,UAAU,EAAG2Q,GAAY,KACvC4C,EAAQvT,UAAU2Q,EAAW,GACjC0rB,EAAa9oB,GACb7J,EAAK81B,YAAY,MAGzBC,SAAU,WACN/1B,EAAKsH,SAETsF,IAAO,SAAShR,EAAGo6B,GAIf,IAAI3vB,EAAMmqB,GAAanqB,MAAOglB,EAAY4K,EAC1C,UAAW5vB,EAAI4kB,4BAA8B,YAAa,CACtDgL,EAAgB5vB,EAAI4kB,8BACjB,CACHgL,EAAgBttB,GAASsiB,0BAE7B,GAAItiB,GAAS0iB,YACTz1B,SAAS+S,GAAS0iB,cAAgB,WAClChlB,EAAIglB,aAAerzB,UAAW,CAC9BqzB,EAAa1iB,GAAS0iB,eACnB,CACHA,EAAahlB,EAAIglB,WAErB,GAAIA,IAAe,WAAY,CAC3BA,EAAa1iB,GAAS0iB,WAE1B,SAASlyB,EAAQkT,GACbrM,EAAKk2B,SAAS7pB,EAAU,CACpB2hB,KAAM,KACNmI,KAAMxtB,GAASqiB,iBACfoL,OAAQztB,GAASyhB,iBACjB6L,cAAeA,EACf7K,UAAWziB,GAASyiB,YAG5B,GAAIC,EAAY,CACZ,OAAQz1B,SAASy1B,IACb,IAAK,WACD,IAAI5Y,EAASzS,EAAKq2B,cAAc1tB,GAASqiB,kBACzC,GAAIK,EAAWn2B,SAAW,EAAG,CACzB,IAAIqG,EAAQ,IAAIV,MAAMwa,IAAU2W,qBAChC4C,EAAkBrzB,EAAO,QACzB,OAAO,MAEX,IAAI9B,EAAS4xB,EAAWx2B,KAAKmL,EAAMyS,EAAQtZ,GAC3C,GAAIM,GAAUkB,YAAYlB,EAAOo5B,MAAO,CACpCp5B,EAAOo5B,KAAK15B,GAEhB,MACJ,IAAK,QACDA,EAAQkyB,GACR,MACJ,QACI,MAAM,IAAI5yB,EAAEqZ,SAAS+R,UAAUxO,IAAU0X,wBAE9C,CACHiJ,IAEJ,OAAO,OAEXxmB,SAAU,SAAS5T,EAAG8a,GAClBA,EAAS9a,GACToE,EAAKxC,QAAQ,IAAK,WACdwC,EAAKs2B,qBAET,OAAO,MAEXzmB,WAAY,WACR,GAAI6O,UAAUxpB,SAAW,EAAG,CACxB8K,EAAKsB,MAAM,OACX,OAAO,QAGfi1B,SAAY,WACRv2B,EAAK2xB,OAAO3xB,EAAK6oB,WAErB2N,OAAU,WACNx2B,EAAK2xB,QAAQ3xB,EAAK6oB,YAG1B,SAAS4N,EAAS76B,GAGd,IAAInC,EAAQnE,EACZ,GAAI0K,EAAKyG,UAAW,CAChB,IAAKzG,EAAKk0B,SAAU,CAChBz6B,EAASm8B,EAAch6B,GACvB,GAAInC,IAAWzB,UAAW,CACtB,OAAOyB,EAEX,GAAImC,EAAE0c,QAAU,EAAG,CACfoe,EAAY,OAEb,CACH,IAAK/tB,GAASohB,YAAa,CACvBtwB,EAASm8B,EAAch6B,GACvB,GAAInC,IAAWzB,UAAW,CACtB,OAAOyB,GAGf,GAAImC,EAAE0c,QAAU,IAAM1c,EAAE2P,QAAS,CAC7B,GAAI5C,GAASohB,YAAa,CACtBtwB,EAASm8B,EAAch6B,GACvB,GAAInC,IAAWzB,UAAW,CACtB,OAAOyB,GAGf,GAAI8zB,SAASr4B,OAAQ,CACjB,IAAKI,EAAIi4B,SAASr4B,OAAQI,KAAM,CAC5B,IAAIqhC,EAAIpJ,SAASj4B,GACjB,GAAIqhC,EAAEC,aAAe,EAAG,CACpB,IACID,EAAEE,QACJ,MAAOt7B,GACL,GAAIZ,YAAYgO,GAASmhB,kBAAmB,CACxCnhB,GAASmhB,iBAAiBj1B,KACtBmL,EACApE,EACA,kBAED,CACHoE,EAAKzE,MAAM8Z,IAAU8W,mBAKrCoB,SAAW,GAEfvtB,EAAKsuB,SAET,OAAO,QAKnB,SAASwI,EAAUl7B,GACf,IAAIyK,EAAMmqB,GAAanqB,MACvB,GAAII,MAAaytB,KAAWvrB,GAASohB,aAAc,CAC/C,GAAIpvB,YAAY0L,EAAIyS,UAAW,CAC3B,OAAOzS,EAAIyS,SAASjkB,KAAKmL,EAAMpE,EAAGoE,QAC/B,GAAIrF,YAAYgO,GAASmQ,UAAW,CACvC,OAAOnQ,GAASmQ,SAASjkB,KAAKmL,EAAMpE,EAAGoE,KAKnD,SAAS+2B,EAAMC,GACX,OAAO,SAAS3B,GACZ2B,EAAM39B,IAAIg8B,IAIlB,SAAShgB,IACL,OAAO5c,EAAEqE,OACL,GACArE,EAAEqZ,SAASjK,SAASwN,QACpB1M,IAAYA,GAAS0M,SAAW,IAIxC,IAAIrV,EAAO9G,KACX,GAAIA,KAAKhE,OAAS,EAAG,CACjB,OAAOgE,KAAKQ,KAAK,WACbjB,EAAEa,GAAGwY,SAASjd,KACV4D,EAAES,MACF00B,EACAn1B,EAAEqE,OAAO,CAACyJ,KAAMvG,EAAKi3B,UAAWvuB,MAK5C,GAAI1I,EAAKuD,KAAK,YAAa,CACvB,OAAOvD,EAAKuD,KAAK,YAErB,GAAIvD,EAAK9K,SAAW,EAAG,CACnB,IAAIkgB,EAAM7gB,QAAQ8gB,IAAU2X,iBAC5B,MAAM,IAAIv0B,EAAEqZ,SAAS+R,UAAUzO,GAGnC,IAAI8hB,EACJ,IAAI/qB,EACJ,IAAIuqB,EAAY,EAChB,IAAIrhC,EACJ,IAAI8hC,EAAczY,UAAUxpB,SAC5B,IAAIkU,EACJ,IAAIguB,EACJ,IAAIvtB,EACJ,IAAIwtB,EAAS,IAAIrxB,MACjB,IAAIsxB,EAAgB,IAAIx+B,WACxB,IAAIw8B,GAAa,IAAIx8B,WACrB,IAAIy+B,GAAaR,EAAMzB,IACvB,IAAIvM,GAAYL,cAAc1oB,GAC9B,IAAIw3B,GAAYT,EAAMO,GACtB,IAAI/C,GAAW,MAEf,IAAIoB,GAAUl9B,EAAE2P,KAChB,IAAIqvB,GAAWC,GACf,IAAIC,GAAmB,GACvB,IAAIhvB,GAAWlQ,EAAEqE,OACb,GACArE,EAAEqZ,SAASjK,SACX,CACItB,KAAMvG,EAAKi3B,SACXvN,QAAShhB,GAAWA,EAAQiiB,QAAUjiB,IAE1CA,GAAW,WAGRC,GAASwa,WAEhB,IAAIyU,GAAU,MACd,IAAIljB,GAAQ,GACZ,IAAItZ,GAAU,IAAIyyB,EAAcllB,GAASnC,QACzC,IAAIC,GAAUkC,GAASlC,QACvB,IAAIoxB,GAAS,MACb,IAAI3D,GAAS,MACb,IAAI4D,GAAY,KAChB,IAAItH,GACJ,IAAIoB,GACJ,IAAImG,GACJ,IAAIC,GACJ,IAAIC,GAIJx/B,EAAEqE,OAAOkD,EAAMvH,EAAEc,KAAK,CAClBsP,GAAI,WACA,OAAOsuB,GAKX7vB,MAAO,WACHjS,EAAO6c,KAAK,IACZwC,GAAQ,GACR,IACI/L,GAAS4iB,QAAQ12B,KAAKmL,EAAMA,GAC9B,MAAOpE,GACLgzB,EAAkBhzB,EAAG,WAEzBoE,EAAKsE,KAAK,CAAC4zB,UAAW,IACtB,OAAOl4B,GAMXqzB,YAAa,WACT,IAAI8E,EAAc,GAClB,GAAIx9B,YAAYgO,GAASyvB,UAAW,CAChC,IACID,EAAcxvB,GAASyvB,SAASvjC,KAAKmL,GACvC,MAAOpE,GACLgzB,EAAkBhzB,EAAG,aAG7B,OAAOnD,EAAEqE,OAAO,GAAI,CAChBwE,MAAOmF,GACPqB,KAAM8pB,GAAa9pB,OACnBG,OAAQjI,EAAKq4B,aACbxuB,QAAS7J,EAAK4yB,cACd3rB,SAAU2qB,GAAa3qB,WACvByN,MAAO1Z,MAAM0Z,IACb8b,aAAcA,GAAax1B,QAC3BkN,QAAS0pB,GAAa1pB,UAAU3E,MACjC40B,IAKP/E,YAAa,SAASkF,GAClB,GAAI/D,GAAU,CACV,MAAM,IAAI15B,MAAMtG,QAAQ8gB,IAAUuX,cAAe,gBAErD,GAAIjyB,YAAYgO,GAAS4vB,UAAW,CAChC,IACI5vB,GAAS4vB,SAAS1jC,KAAKmL,EAAMs4B,GAC/B,MAAO18B,GACL+M,GAAS4vB,SAAW9/B,EAAE2P,KACtBwmB,EAAkBhzB,EAAG,aAG7B27B,GAAW,SAASR,IAChB/2B,EAAKw4B,WAAWF,EAAKrwB,QACrBjI,EAAK81B,YAAYwC,EAAKzuB,SACtB+nB,GAAa3qB,SAASqxB,EAAKrxB,UAC3B2qB,GAAa9pB,KAAKwwB,EAAKxwB,MACvB,GAAIwwB,EAAKh3B,MAAO,CACZtB,EAAKsB,QAEToT,GAAQ1Z,MAAMs9B,EAAK5jB,OAAOhP,OAAO,SAASkN,GACtC,OAAOA,EAAK,KAEhB,GAAI0lB,EAAK9H,wBAAwBxqB,MAAO,CACpCwqB,GAAe8H,EAAK9H,aAExB,GAAI7nB,GAAS6hB,cAAe,CACxBoH,GAAa1pB,UAAUlL,IAAIs7B,EAAKpwB,SAEpC2F,MAEJ,OAAO7N,GAKXwtB,WAAY,SAAS3jB,EAAS4uB,EAAa33B,GAEvC,UAAWA,IAAU,YAAa,CAC9B0sB,WAAW1sB,GAASd,EAAKqzB,kBACtB,CACH7F,WAAW33B,KAAKmK,EAAKqzB,eAEzB,IAAK56B,EAAE8B,QAAQkzB,eAAgB,CAC3BA,cAAgB,GAEpB,GAAI5jB,IAAY7R,YAAcygC,EAAa,CACvC,IAAIC,EAAQ,CACRvB,EACA3J,WAAWt4B,OAAS,EACpB2U,GAEJ4jB,cAAc53B,KAAK6iC,GACnBpF,IAEJ,OAAOtzB,GAOXlJ,KAAM,SAAS+S,EAAS2M,EAAQ6Q,GAC5B,IAAIsR,EAAItR,GAAY,IAAI5uB,EAAE6uB,SAC1BkQ,GAAU,SAAST,IACf,GAAIt+B,EAAE8B,QAAQsP,GAAU,EACpB,SAAU0mB,IACN,IAAI3oB,EAAMiC,EAAQsV,QAClB,GAAIvX,EAAK,CACL5H,EAAKlJ,KAAK8Q,EAAK4O,GAAQ6P,KAAKkK,OACzB,CACHoI,EAAEx/B,YALV,QAQG,GAAI+6B,GAAQ,CAGfyD,GAAiB9hC,KAAK,CAACgU,EAAS2M,EAAQmiB,QACrC,CAIH,IAAIt5B,EAAMgN,EAASxC,EAAS2M,EAAQ,MACpC,GAAInX,IAAQA,EAAIgnB,MAAQhnB,EAAIwzB,MAAO,EAC9BxzB,EAAIgnB,MAAQhnB,EAAIwzB,MAAMh+B,KAAKwK,EAAK,WAC7Bs5B,EAAEx/B,QAAQ6G,SAO1B,OAAO24B,EAAElQ,WAMbqP,UAAW,SAASlH,EAAM9K,EAAOtP,GAC7BxW,EAAKoQ,QAAQ,qBAAsB,CAACwgB,EAAM9K,EAAOtP,IACjD,OAAOxW,GAQX2qB,MAAO,SAAS+D,EAAMkK,EAAUxR,EAAS7rB,GACrC87B,EAAOxhC,KAAK,GAAGuB,MAAMvC,KAAKH,YAC1B,GAAI6/B,GAAU,CACV,MAAM,IAAI15B,MAAMtG,QAAQ8gB,IAAUuX,cAAe,UAErD,IAAKjyB,YAAY+zB,GAAO,CACpB,MAAM,IAAI7zB,MAAMwa,IAAUwX,qBAE9B0H,GAAW,KACX,GAAIv0B,EAAK8lB,SAAW9lB,EAAKq0B,UAAY,IAAMyD,GAAW,CAClDvD,GAAW,MACXv0B,EAAKs0B,OAAO,WACT,GAAIt0B,EAAK8lB,MAAM,OAAS9lB,EAAKo1B,WAAW,MAAO,CAClDb,GAAW,MACX,GAAI55B,YAAYysB,GAAU,CACtBA,IAEJ,OAAOpnB,EAGX,GAAI2I,GAAST,QAAS,CAClB0pB,GAAa1pB,UAAUT,UAG3B,IAAI4sB,EAAQr0B,EAAKq0B,QACjB,SAASwE,EAAejI,EAAM9K,EAAOtP,GACjC,GAAIsP,EAAO,CACP,MAAO9lB,EAAKq0B,QAAUA,EAAO,CACzBr0B,EAAKmG,IAAInO,UAAW,MAExB,GAAI2Q,GAAST,QAAS,CAClB0pB,GAAa1pB,UAAUV,SAE3B,IAAIjB,EAAOvG,EAAKg1B,YAAY,MAAQ,IACpC55B,GAAQ4B,IAAIuJ,EAAO,QAASuf,GAC5B1qB,GAAQ4B,IAAIuJ,EAAO,QAASqqB,GAC5B2D,GAAW,MACX,GAAI55B,YAAYysB,GAAU,CAKtBA,SAED,CACH,GAAIwR,EAAU,CACV,IAAKpiB,EAAQ,CACTxW,EAAKzE,MAAM8Z,IAAU4W,uBAEzBjsB,EAAKmG,IAAInO,UAAW,MAAM8gC,SAAS,WAChC,CACHvE,GAAW,MACX,IAAK/d,EAAQ,CACTxW,EAAKzE,MAAM8Z,IAAU6W,eAEzBlsB,EAAKmG,IAAInO,UAAW,MAAMmO,IAAInO,UAAW,MAG7C,GAAI2C,YAAYY,GAAQ,CACpBA,KAGRyE,EAAK+D,IAAI,sBAEb/D,EAAKkE,GAAG,qBAAsB,SAASiV,EAAOyX,EAAM9K,EAAOtP,GACvDqiB,EAAejI,EAAM9K,EAAOtP,KAEhCxW,EAAKnK,KAAK,SAAS+6B,GACf5wB,EAAK84B,SAASnwB,GAASghB,UAAU9zB,KAAK,SAASkjC,GAC3C,IACI,IAAI15B,EAAMqvB,EAAK75B,KAAKmL,EAAM4wB,EAAMmI,EAAM,SAClCjT,EACAtP,GACAqiB,EAAejI,EAAM9K,EAAOtP,KAEhC,GAAInX,GAAO1E,YAAY0E,EAAIwzB,MAAO,CAC9B7yB,EAAKmuB,QACL9uB,EAAIwzB,KAAK,SAAS/M,GACd+S,EAAejI,EAAM9K,GACrB9lB,EAAKsuB,YAGf,MAAO1yB,GACLgzB,EAAkBhzB,EAAG,UAE1B,CACCqM,OAAQoN,IAAU6X,SAAW,KAC7B3mB,KAAM,cAEX,CACC0B,OAAQoN,IAAUsV,MAAQ,KAC1BpkB,KAAM,UAEV,OAAOvG,GAKX2I,SAAU,WACN,OAAOA,IAKX0tB,cAAe,SAASF,GACpB,IAAIl1B,EAAM2wB,GAAa3qB,WACvB,IAAI4C,EAAU+nB,GAAa73B,MAAMzD,UAAU,EAAG2K,GAC9C,IAAI+3B,EAAcnvB,EAAQlO,MAAM,KAChC,IAAI8W,EACJ,GAAI0jB,EAAM,CACN,GAAI6C,EAAY9jC,SAAW,EAAG,CAC1Bud,EAASumB,EAAY,OAClB,CACH,IAAI9oB,EAAIrG,EAAQrU,MAAM,WACtB,IAAIyjC,EAAgB/oB,EAAIA,EAAExK,OAAO,SAAS2T,GACtC,OAAQA,EAAI7jB,MAAM,SACnBN,OAAS,EACZgb,EAAIrG,EAAQrU,MAAM,MAClB,IAAI0jC,EAAehpB,EAAIA,EAAEhb,OAAS,EAClC,GAAIgkC,EAAe,IAAM,EAAG,CACxBzmB,EAAS5I,EAAQrU,MAAM,aAAa,QACjC,GAAIyjC,EAAgB,IAAM,EAAG,CAChCxmB,EAAS5I,EAAQrU,MAAM,qBAAqB,OACzC,CACHid,EAASumB,EAAYA,EAAY9jC,OAAS,GAC1C,IAAKI,GAAI0jC,EAAY9jC,OAAS,EAAGI,GAAI,EAAGA,KAAK,CAEzC,IAAI6jC,EAAcH,EAAY1jC,GAAI,GAClC,GAAI6jC,EAAYA,EAAYjkC,OAAS,KAAO,KAAM,CAC9Cud,EAASumB,EAAY1jC,GAAI,GAAK,IAAMmd,MACjC,CACH,cAKb,CACHA,EAAS5I,EAEb,OAAO4I,GAKXyjB,SAAU,SAAS7pB,EAAU3D,GACzBA,EAAUjQ,EAAEqE,OAAO,CACfq5B,KAAM,KACNnI,KAAM,MACNoI,OAAQ,KACRH,cAAe,KACf7K,UAAW,MACZ1iB,GAAW,IACd,IAAI0wB,EAAY1wB,EAAQutB,cAGxB,IAAIxjB,EAASzS,EAAKq2B,cAAc3tB,EAAQytB,MAAMp1B,QAAQ,OAAQ,KAC9D,IAAIwkB,EAAQ,MACZ,GAAI7c,EAAQytB,KAAM,CACd,GAAI1jB,EAAOjd,MAAM,MAAO,CACpB+vB,EAAQ,SACL,GAAI9S,EAAOjd,MAAM,MAAO,CAC3B+vB,EAAQ,IAEZ,GAAIA,EAAO,CACP9S,EAASA,EAAO1R,QAAQ,QAAS,KAIzCsL,EAAWA,EAASjV,QACpB,GAAIuR,GAASrB,OAAS7O,EAAEwgB,QAAQ,QAAS5M,MAAe,EAAG,CACvDA,EAASxW,KAAK,SAElB,GAAI8S,GAAS+gB,MAAQjxB,EAAEwgB,QAAQ,OAAQ5M,MAAe,EAAG,CACrDA,EAASxW,KAAK,QAElB,GAAI6gC,EAAY,IAAM,EAAG,CACrB7sB,EAAU7J,EAAKq2B,cAAc3tB,EAAQytB,UAClC,CACH,IAAIrgC,EAAOkK,EAAKq2B,cAAc3tB,EAAQytB,MACtC,GAAIrgC,IAAS+T,EAAS,CAElB,QAGR,IAAI8S,EAAOlkB,EAAEqZ,SAASC,aAAaU,GACnC,GAAI/J,EAAQ0tB,OAAQ,CAChBzZ,EAAOA,EAAK5b,QAAQ,kBAAmB,SAAS+gB,EAAGuX,EAAOhgB,GACtD,GAAIA,EAAI7jB,MAAM,QAAS,CACnB,OAAO6jC,EAAQ,QAAUhgB,MACtB,CACH,OAAOggB,EAAQ,IAAMhgB,KAIjC,SAASigB,IACL,IAAI3W,EAAU,GACd,IAAK,IAAIrtB,EAAI+W,EAASnX,OAAQI,KAAM,CAChC,GAAIqI,EAAM7H,KAAKuW,EAAS/W,IAAK,CACzB,IAAIE,EAAQ6W,EAAS/W,GACrB,GAAIiwB,IAAU,IAAK,CACf/vB,EAAQA,EAAMuL,QAAQ,KAAM,OAEhC,IAAKwkB,GAAS7c,EAAQ0tB,OAAQ,CAC1B5gC,EAAQA,EAAMuL,QAAQ,aAAc,QAExC,IAAKq4B,GAAajQ,UAAU3zB,GAAQ,CAChC,GAAIid,EAAO/a,gBAAkB+a,EAAQ,CACjCjd,EAAQA,EAAMkC,mBACX,GAAI+a,EAAOlc,gBAAkBkc,EAAQ,CACxCjd,EAAQA,EAAMe,eAGtBosB,EAAQ9sB,KAAKL,IAGrB,OAAOmtB,EAEX,IAAIxiB,EAAQi5B,EAAY,GAAK,IAC7B,IAAIz7B,EAAQ,IAAIiD,OAAO,IAAM+b,EAAMxc,GACnC,IAAIwiB,EAAU2W,IACd,SAASv4B,EAAQpJ,EAAOwoB,GACpB,IAAIrmB,EAAOkG,EAAK4yB,cAChB,IAAI3xB,EAAMjB,EAAK61B,eACf,IAAIznB,EAAK,IAAIxN,OAAO,IAAMjJ,EAAO,KACjC,IAAI4hC,EAAMz/B,EAAKxD,UAAU,EAAG2K,GAC5B,IAAIu4B,EAAO1/B,EAAKxD,UAAU2K,GAC1B,IAAIw4B,EAAYtZ,EAAYpf,QAAQqN,EAAI,KAAOmX,GAAS,IACxDvlB,EAAK81B,YAAYyD,EAAME,EAAYD,GACnCx5B,EAAK05B,cAAcH,EAAME,GAAWvkC,QAExC,GAAIytB,EAAQztB,SAAW,EAAG,CACtB,GAAIwT,EAAQ0tB,OAAQ,CAChBr1B,EAAQ4b,EAAMgG,EAAQ,QACnB,CACH3iB,EAAKwM,OAAOmW,EAAQ,GAAG5hB,QAAQpD,EAAO,KAAO4nB,GAAS,KAE1D1b,EAAU7J,EAAKq2B,cAAc3tB,EAAQytB,MACrC,OAAO,UACJ,GAAIxT,EAAQztB,OAAS,EAAG,CAC3B,KAAMwhC,GAAa,EAAG,CAClBA,EAAY,EACZ,GAAIhuB,EAAQslB,KAAM,CACd,GAAIrzB,YAAY+N,EAAQ0iB,WAAY,CAChC,IAAI/rB,EAAMqJ,EAAQ0iB,UAAUv2B,KACxBmL,EACAyS,EACAkQ,EACAgQ,GAEJ,UAAWtzB,IAAQ,YAAa,CAC5B,OAAO,SACJ,CACH,OAAOA,QAER,GAAIqJ,EAAQ0iB,YAAc,MAAO,CACpCuH,IACA,IAAI74B,EAAO6oB,EAAQgX,UAAUjjC,KAAK,MAClCsJ,EAAKguB,KAAKv1B,EAAEqZ,SAASgB,gBAAgBhZ,GAAO,CACxCq3B,UAAW,KACXhO,WAAY,QAGpB,OAAO,UAER,CACH,IAAIyW,EAASzb,cAAc1L,EAAQkQ,EAASyW,GAC5C,GAAIQ,EAAQ,CACR74B,EAAQ0R,EAAQmnB,GAChB/vB,EAAU7J,EAAKq2B,cAAc3tB,EAAQytB,MACrC,OAAO,SAQvB9pB,SAAU,WACN,OAAOmkB,GAAanqB,MAAMsoB,aAK9BkL,gBAAiB,SAAS1J,EAAYxF,GAClC,SAASmP,IACL95B,EAAKmuB,MAAMxlB,GAASqhB,WACpBkG,EAAiBC,EAAYxF,EAAO,SAASlxB,GACzCuG,EAAKsuB,SACL,IAAIjoB,EAAMmqB,GAAanqB,MACvB5N,EAAEqE,OAAOuJ,EAAK5M,GACd07B,EAAwB,QAGhC,GAAIx6B,YAAYgwB,GAAQ,CACpB3qB,EAAK2qB,MAAMA,EAAO,KAAMmP,QACrB,GAAIlkC,SAASu6B,KAAgB,UAAYxF,EAAO,CACnD3qB,EAAK2qB,MACDgG,EAAoBR,EAAYxF,GAChC,KACAmP,OAED,CACHA,IAEJ,OAAO95B,GAKXyyB,UAAW,WACPD,IACA,OAAOxyB,GAKXk0B,OAAQ,WACJ,OAAOA,IAKX/F,MAAO,SAAS7W,GACZkgB,GAAU,SAAST,IACfpB,KACAzB,GAAS,KACTtC,GAAanqB,QAAQ6P,GAAWnG,YAChC,IAAKmG,EAAS,CACVsa,GAAa/tB,KAAK,WAAWgjB,SAEjC,GAAIlsB,YAAYgO,GAASgtB,SAAU,CAC/BhtB,GAASgtB,QAAQ9gC,KAAKmL,MAG9B,OAAOA,GAKXsuB,OAAQ,WACJkJ,GAAU,SAAST,IACf7C,GAAS,MACT,GAAIztB,IAAWiY,UAAU9Y,UAAY5F,EAAM,CACvC4xB,GAAapqB,OAAO,MAExBoqB,GAAa/tB,KAAK,WAAWyT,UAC7B,IAAIZ,EAAWihB,GACfA,GAAmB,GACnB,IAAK,IAAIriC,EAAI,EAAGA,EAAIohB,EAASxhB,SAAUI,EAAG,CACtC0K,EAAKlJ,KAAKQ,MAAM0I,EAAM0W,EAASphB,IAEnC0K,EAAKoQ,QAAQ,UACb,IAAI9W,EAAKo6B,EAAiBvU,QAC1B,GAAI7lB,EAAI,CACJA,IAEJ0G,EAAKs2B,mBACL,GAAI37B,YAAYgO,GAASoxB,UAAW,CAChCpxB,GAASoxB,SAASllC,KAAKmL,MAG/B,OAAOA,GAMX4kB,KAAM,WACF,GAAIjc,GAASqxB,SAAU,CACnB,OAAOrxB,GAASqxB,SAEpB,UAAW5wB,IAAc,aAAeA,IAAc,IAAM,CACxDA,EAAY0f,cAAc9oB,EAAM+oB,IAEpC,OAAO3f,GAMX6oB,KAAM,WACF,GAAItpB,GAASsxB,QAAS,CAClB,OAAOtxB,GAASsxB,QAEpB,UAAW7C,IAAa,YAAa,CACjCA,EAAWpO,aAAahpB,EAAM+oB,IAElC,OAAOqO,GAKXlvB,QAAS,WACL,OAAO0pB,GAAa1pB,WAKxBgyB,cAAe,SAASxyB,GACpB,SAASyyB,IACLxxB,GAAS4hB,aAAe,KACxB,IAAKiD,WAAWt4B,OAAQ,CACpB8K,EAAKwtB,kBACF,GAAI9O,UAAUxpB,SAAW,EAAG,CAC/B8K,EAAKwtB,WAAW,OAGxB,GAAI9lB,EAAQ,CAGR,UAAW5P,OAAOsiC,eAAiB,YAAa,CAC5ClgB,WAAWigB,EAAK,OACb,CACHC,aAAaD,QAEd,CACHxxB,GAAS4hB,aAAe,MAE5B,OAAOvqB,GAKXq6B,oBAAqB,WACjB5M,cAAgB,GAChBD,WAAa,GACb,OAAOxtB,GAKXmH,KAAM,WACF,GAAIuX,UAAUxpB,WAAa,EAAG,CAC1B,OAAO8K,MACJ,CACH0e,UAAU9Y,QAAQ6B,UAClB,IAAIN,EAAOuX,UAAUnZ,SAASiC,SAE9B,IAAI8yB,EAAInzB,EAAKjC,SAASmB,IAAM,GAC5B5N,EAAE,aAAa8hC,QAAQ,CAACrC,UAAWoC,GAAI,KACvC,IACI7b,wBAAwBtX,GAC1B,MAAOvL,GACLgzB,EAAkBhzB,EAAG,oBAEzB,OAAOuL,IASf7F,MAAO,SAASoG,EAAQ8O,GACpBghB,GAAU,SAAST,IACf,GAAIrY,UAAUxpB,WAAa,EAAG,CAC1B,GAAIwS,IAAW,MAAO,CAClB1H,EAAKyH,QAAQ+O,OACV,CACHxW,EAAKwH,OAAOgP,SAEb,GAAI9O,IAAW,MAAO,CACzB1H,EAAKmH,WACF,CACH,IAAIvB,EAAQ8Y,UAAU9Y,QACtB,GAAIA,IAAU5F,EAAM,CAIhB0e,UAAU3Y,QAAQ,SAAS+L,GACvB,GAAIA,IAAa9R,GAAQ8R,EAASrL,UAAW,CACzCqL,EAASrK,QAAQ+O,MAGzB,IAAKA,EAAQ,CACT,IACIiI,wBAAwBze,GAC1B,MAAOpE,GACLgzB,EAAkBhzB,EAAG,sBAIjC8iB,UAAU1hB,IAAIgD,GACdA,EAAKwH,OAAOgP,MAGpB,OAAOxW,GAKXw6B,OAAQ,SAASA,GACbjD,GAAW,SAASR,IAChB,GAAIyD,EAAQ,CACRx6B,EAAKyH,UACLowB,GAAS,SACN,CACHA,GAAS,MACT73B,EAAKwH,YAGb,OAAOxH,GAKX63B,OAAQ,WACJ,OAAOA,IAKXrwB,OAAQ,SAASgP,GACb,IAAK/P,KAAYoxB,GAAQ,CACrB,GAAIzuB,IAAcpR,UAAW,CAEzBgI,EAAKwX,SAETggB,GAAU,SAAST,IACf,IAAI13B,EACJ,IAAKmX,IAAW/P,GAAS,CACrB,IACIpH,EAAMsJ,GAAS8iB,QAAQ52B,KAAKmL,EAAMA,GACpC,MAAOpE,GACL+M,GAAS8iB,QAAUhzB,EAAE2P,KACrBwmB,EAAkBhzB,EAAG,YAG7B,IAAK4a,GAAUnX,IAAQrH,WAAawe,EAAQ,CACxC/P,GAAU,KACV,IAAKzG,EAAKk0B,SAAU,CAChBtC,GAAapqB,OAAO,UAKpC,OAAOxH,GAKXyH,QAAS,SAAS+O,GACdghB,GAAU,SAAST,IACf,IAAI13B,EACJ,IAAKmX,GAAU/P,GAAS,CACpB,IACIpH,EAAMsJ,GAAS6iB,OAAO32B,KAAKmL,EAAMA,GACnC,MAAOpE,GACL+M,GAAS6iB,OAAS/yB,EAAE2P,KACpBwmB,EAAkBhzB,EAAG,WAG7B,IAAK4a,GAAUnX,IAAQrH,WAAawe,EAAQ,CACxC/P,GAAU,MACVmrB,GAAanqB,aAGrB,OAAOzH,GAKXyG,QAAS,WACL,OAAOA,IAKXisB,UAAW,WACP,IAAI9N,EAAO5kB,EAAK4kB,OAChB,IAAK,IAAItvB,EAAIm0B,WAAWv0B,OAAQI,KAAM,CAClC,IAAImlC,EAAUhR,WAAWn0B,GAAGuE,IAAI,SAAS+Y,GACrC,OAAOA,EAAK1d,SAEhB,GAAIod,KAAKmB,IAAInc,MAAM,KAAMmjC,IAAY7V,EAAM,CACvC,OAAO6E,WAAWn0B,GAAGoB,KAAK,MAAQ,MAG1C,MAAO,IAKX8oB,QAAS,WACL,OAAO/mB,EAAEqZ,SAAS0N,SAMtB5X,IAAK,WACD,OAAOgqB,IAKXgB,YAAa,WACT,OAAOhB,GAAa73B,OAKxB+7B,YAAa,SAASjsB,EAAS2M,GAC3B+gB,GAAW,SAASR,IAEhB,UAAWltB,IAAY,SAAU,CAC7BA,EAAUlD,KAAKC,UAAUiD,GAE7B+nB,GAAa50B,IAAI6M,EAAS7R,UAAWwe,KAEzC,OAAOxW,GAKX05B,aAAc,SAASzyB,EAAUgQ,GAC7BsgB,GAAW,SAASR,IAChBnF,GAAa3qB,SAASA,EAAUgQ,KAEpC,OAAOjX,GAKX61B,aAAc,WACV,OAAOjE,GAAa3qB,YAKxBuF,OAAQ,SAASiG,EAAQ6D,GACrB,UAAW7D,IAAW,SAAU,CAC5B8kB,GAAW,SAASR,IAChB,IAAI2D,EAAS16B,EAAK26B,YAClB/I,GAAaplB,OAAOiG,EAAQ6D,GAC5B,GAAI3N,GAAS+hB,cAAgBgQ,EAAQ,CACjC16B,EAAKs2B,sBAGb,OAAOt2B,MACJ,CACH,MAAM,IAAInF,MAAMtG,QAAQ8gB,IAAU+X,WAAY,aAMtDoL,WAAY,SAASvwB,GACjBsvB,GAAW,SAASR,IAChB,GAAIp8B,YAAYsN,GAAS,CACrB2pB,GAAa3pB,OAAO,SAAS/E,GACzB+E,EAAOpT,KAAKmL,EAAMkD,EAAUlD,SAE7B,CACH4xB,GAAa3pB,OAAOA,GAExBuoB,GAAanqB,MAAM4B,OAASA,IAEhC,OAAOjI,GAKXq4B,WAAY,WACR,OAAO7H,GAAanqB,MAAM4B,QAS9B6wB,SAAU,SAAShxB,GACfyvB,GAAW,SAASR,IAChBnF,GAAa9pB,KAAKA,IAAS,KAAOa,GAASghB,SAAW7hB,KAE1D,OAAO9H,GAKX46B,WAAY,SAAS/Q,GACjB,GAAIA,EAAK,CACL,OAAOnV,OACJ,CACH,OAAOjc,EAAEoB,IAAI6a,GAAO,SAAS5Z,GACzB,OAAOH,YAAYG,EAAK,IAAMA,EAAK,KAAOA,EAAK,KAChDpE,KAAK,QAMhB8gB,OAAQ,SAASrO,EAAO0f,GACpB,IAAK7oB,EAAKgD,GAAG,YAAa,CAEtBhD,EAAKvC,SAAS,UACduC,EAAKxC,QAAQ,IAAK,SAAU,WACxBwC,EAAKwX,OAAOrO,EAAO0f,SAEpB,CACH,GAAI1f,GAAS0f,EAAQ,CACjB7oB,EAAKmJ,MAAMA,GACXnJ,EAAK6oB,OAAOA,GAEhB1f,EAAQnJ,EAAKmJ,QACb0f,EAAS7oB,EAAK6oB,SACd,UAAWlgB,GAASqxB,WAAa,oBACtBrxB,GAASsxB,UAAY,YAAa,CACzCrI,GAAapa,OAAO7O,GAASqxB,UAC7Bh6B,EAAKkX,UACL,OAEJ,IAAI2jB,EAAgB/R,cAAc9oB,EAAM+oB,IACxC,IAAI+R,EAAe9R,aAAahpB,EAAM+oB,IAEtC,GAAI8R,IAAkBzxB,GAClB0xB,IAAiB1D,EAAU,CAC3BhuB,EAAYyxB,EACZzD,EAAW0D,EACXlJ,GAAapa,OAAOpO,GACpBpJ,EAAKkX,UACL,IAAI7Q,EAAMmqB,GAAanqB,MACvB,GAAI1L,YAAY0L,EAAImR,QAAS,CACzBnR,EAAImR,OAAO3iB,KAAKmL,EAAMA,QACnB,GAAIrF,YAAYgO,GAASoyB,UAAW,CACvCpyB,GAASoyB,SAASlmC,KAAKmL,EAAMA,KAIzC,OAAOA,GAKXkX,QAAS,WACL,GAAI6R,GAAU5f,QAAU,EAAG,CACvBnJ,EAAK,GAAG2Q,MAAMqqB,YAAY,eAAgBjS,GAAU5f,OAExD0E,EAAO,CACH8jB,OAAQ,MACRD,OAAQ,OAEZ,OAAO1xB,GAKXkyB,MAAO,SAASxpB,GACZA,EAAUjQ,EAAEqE,OAAO,GAAI,CACnB40B,OAAQ,MACRC,OAAQ,MACTjpB,GAAW,IACd,IACI,IAAIgyB,EAAS16B,EAAK26B,YAClB,IAAIM,EAGJxiC,EAAEiB,KAAKo3B,EAAe,SAASx7B,EAAGsd,GAC9B,GAAIA,IAASme,EAAU,CACnBkK,EAAUxiC,EAAE,oBACT,GAAIA,EAAE8uB,cAAc3U,IAASjY,YAAYiY,EAAKwd,UAAW,CAE5D,GAAI1nB,EAAQgpB,OAAQ,CAChB,IAAIuF,EAAW,oBAAsBrkB,EAAK9R,MAAQ,IAClD,IAAIkE,EAAO3P,EAAOwO,KAAKozB,GACvB,GAAIjyB,EAAKkN,SAAW+oB,EAAQ/oB,OAAQ,CAChClN,EAAKk2B,YAAYD,QAElB,CACHA,EAAQ72B,SAAS/O,GAErBud,EAAKwd,SAAS6K,EAAQ32B,KAAK,aAAcsO,EAAK9R,YAC3C,CACHrI,EAAE,UAAUyZ,KAAKU,GACZxO,SAAS62B,GAAS9xB,MAAM,WAGrCgpB,IACA,IACIxpB,GAASojB,QAAQl3B,KAAKmL,EAAMA,GAC9B,MAAOpE,GACL+M,GAASojB,QAAUtzB,EAAE2P,KACrBwmB,EAAkBhzB,EAAG,WAGzB,GAAK+M,GAAS+hB,cAAgBhiB,EAAQipB,QAAW+I,EAAQ,CACrD16B,EAAKs2B,mBAETxF,EAAgB,GAClB,MAAOl1B,GACL,GAAIjB,YAAYgO,GAASmhB,kBAAmB,CACxCnhB,GAASmhB,iBAAiBj1B,KAAKmL,EAAMpE,EAAG,wBACrC,CACH8I,gBAAgB,UAAW9I,IAGnC,OAAOoE,GAKX0xB,OAAQ,SAAS9e,EAAMH,EAAQ/J,GAC3B6uB,GAAW,SAASR,IAChB,GAAInkB,EAAO,EAAG,CACVA,EAAO8B,GAAMxf,OAAS0d,EAE1B,IAAK8B,GAAM9B,GAAO,CACd5S,EAAKzE,MAAM,uBAAyBqX,QACjC,GAAIH,IAAW,KAAM,CACxBiC,GAAMrd,OAAOub,EAAM,GACnBvd,EAAOwO,KAAK,eAAiB+O,EAAO,KAAK3V,aACtC,CACHyX,GAAM9B,GAAM,GAAKH,EACjB,GAAI/J,EAAS,CACTgM,GAAM9B,GAAM,GAAKlK,EAErB0oB,EAAa,CACT3e,OAAQA,EACR3R,MAAO8R,EACPlK,QAASA,IAEb1I,EAAKkyB,MAAM,CACPP,OAAQ,MACRD,OAAQ,UAIpB,OAAO1xB,GAKXm7B,YAAa,SAASvoB,GAClB,OAAO5S,EAAK0xB,OAAO9e,EAAM,OAM7B6N,WAAY,WACR,OAAO/L,GAAMxf,OAAS,GAW1B84B,KAAM,SAAS54B,EAAKsT,GAChB,SAASslB,EAAK54B,GACV,IACI,IAAIgmC,EAAS3iC,EAAEqE,OAAO,CAClBo1B,MAAO,KACPrI,IAAKlhB,GAASkhB,IACduG,SAAU33B,EAAE2P,KACZ+oB,UAAW,MACXhO,WAAY,MACbza,GAAW,KACd,SAAU0nB,GACNgL,EAAOhL,SAAW,SAAS5b,GACvB,GAAI4mB,EAAOvR,IAAK,CACZrV,EAAIrQ,SAAS,OAEjB,IACI,GAAIxJ,YAAYy1B,GAAW,CACvBA,EAAS5b,IAEf,MAAO5Y,GACLgzB,EAAkBhzB,EAAG,uBACrBw0B,EAAW,QAXvB,CAcGgL,EAAOhL,UACV,GAAIgL,EAAOlJ,MAAO,CAEd,GAAIpB,EAAc57B,OAAQ,CACtB8K,EAAKkyB,QAETpB,EAAgB,GAEpB,UAAW17B,IAAQ,WAAY,CAC3BA,EAAMA,EAAI2F,KAAKiF,GAEnBoxB,EAAa,CACT3e,OAAQrd,EACRsT,QAAS0yB,EACTt6B,MAAO4T,GAAMxf,SAIjBwf,GAAM7e,KAAK,CAACT,EAAKqD,EAAEqE,OAAOs+B,EAAQ,CAC9BtkC,KAAM,UAEV,GAAIskC,EAAOlJ,MAAO,CACdlyB,EAAKkyB,SAEX,MAAOt2B,GAGL,GAAIjB,YAAYgO,GAASmhB,kBAAmB,CACxCnhB,GAASmhB,iBAAiBj1B,KAAKmL,EAAMpE,EAAG,uBACrC,CACH8I,gBAAgB,kBAAmB9I,KAI/C,GAAIxG,IAAQ4C,WAAa2C,YAAYvF,EAAIy9B,MAAO,CAC5Cp6B,EAAEw7B,KAAK7+B,GAAKixB,KAAK2H,OACd,CACHA,EAAK54B,GAET,OAAO4K,GAKXzE,MAAO,SAASoJ,EAAS+D,GACrBA,EAAUjQ,EAAEqE,OAAO,GAAI4L,EAAS,CAACmhB,IAAK,MAAO1G,WAAY,QACzD,SAASvuB,EAAO6d,GACZ,UAAWA,IAAW,SAAU,CAC5BA,EAASzc,OAAOyc,GAGpB,IAAI9Z,EAAMF,EAAEqZ,SAASgB,gBAAgBL,GACjC1R,QAAQ,MAAO,SACfA,QAAQ+Z,OAAQ,kBACpB,MAAO,cAAgBniB,EAAM,IAEjC,UAAWgM,IAAY,WAAY,CAC/B,OAAO3E,EAAKguB,KAAK,WACb,OAAOp5B,EAAO+P,EAAQ9P,KAAKmL,KAC5B0I,GAEP,GAAI/D,GAAWA,EAAQkuB,KAAM,CACzBluB,EAAQkuB,KAAK,SAASpgB,GAClBzS,EAAKguB,KAAKp5B,EAAO6d,MAErB,OAAOzS,EAEX,OAAOA,EAAKguB,KAAKp5B,EAAO+P,GAAU+D,IAKtCgQ,UAAW,SAAS9c,EAAGwB,GACnB,IAAIuH,EAAUC,kBAAkBhJ,GAChC,GAAIwB,EAAO,CACPuH,EAAU,QAAUvH,EAAQ,UAAYuH,EAE5C,GAAIA,EAAS,CACT3E,EAAKzE,MAAMoJ,EAAS,CAChByrB,SAAU,SAAS5b,GACfA,EAAIrQ,SAAS,sBAEjBgtB,UAAW,OAGnB,UAAWv1B,EAAEyJ,WAAa,SAAU,CAEhCrF,EAAKmuB,MAAMxlB,GAASqhB,WACpBvxB,EAAEsB,IAAI6B,EAAEyJ,SAAU,SAAS+oB,GACvB,IAAI7vB,EAAM3C,EAAEy/B,WAAa,EACzB,IAAIzoB,EAAOwb,EAAKzyB,MAAM,MAAM4C,GAC5B,GAAIqU,EAAM,CACN5S,EAAKzE,MAAM,IAAMK,EAAEy/B,WAAa,MAAQzoB,GAE5C5S,EAAKsuB,UACN,QAEP,GAAI1yB,EAAEkJ,MAAO,CACT,IAAIA,EAAQrM,EAAEqZ,SAASgB,gBAAgBlX,EAAEkJ,OACzC9E,EAAKguB,KAAKlpB,EAAMnJ,MAAM,OAAO9B,IAAI,SAASyhC,GACtC,MAAO,cAAgBA,EAAMv6B,QAAQ+Z,OAAQ,SAASmM,GAClD,MAAO,IAAMA,EAAM,gBAClB,MACNvwB,KAAK,MAAO,CACX05B,SAAU,SAAS5b,GACfA,EAAIrQ,SAAS,0BAEjBgf,WAAY,QAGpB,OAAOnjB,GAKX2xB,OAAQ,SAAS4J,GACb,IAAIt6B,EACJs6B,EAASjpB,KAAKkpB,MAAMD,GACpB,GAAIrE,EAAcuE,KAAM,CACpB,GAAIF,EAASrE,EAAcuE,KAAK,cAAgBF,EAAS,EAAG,CACxDrE,EAAcuE,KAAK,YAAa,GAEpCx6B,EAAMi2B,EAAcuE,KAAK,aACzBvE,EAAcgB,UAAUj3B,EAAMs6B,OAC3B,CACH,GAAIA,EAASrE,EAAc5yB,KAAK,cAAgBi3B,EAAS,EAAG,CACxDrE,EAAc5yB,KAAK,YAAa,GAEpCrD,EAAMi2B,EAAc5yB,KAAK,aACzB4yB,EAAcgB,UAAUj3B,EAAMs6B,GAElC,OAAOv7B,GAMXs0B,OAAQ,SAASoH,GACb,GAAInH,GAAU,CACV,MAAM,IAAI15B,MAAMtG,QAAQ8gB,IAAUuX,cAAe,WAErD2K,GAAW,SAASR,IAChB,GAAI2E,EAAO,CACP,IAAI/Q,EAAQ0M,EAAOlxB,MACnBnG,EAAKy0B,UAAUz8B,UAAW,MAC1BgI,EAAK2qB,MAAMrzB,MAAM0I,EAAM2qB,QACpB,GAAI6F,GAAatqB,SAAW,GAAKlG,EAAK8lB,QAAS,CAClD9lB,EAAKs0B,OAAO,UACT,CACH,MAAO9D,GAAatqB,OAAS,EAAG,CAG5B,GAAIlG,EAAK8lB,QAAS,CACd9lB,EAAKs0B,OAAO,MAAMnuB,MAAMA,UACrB,CACHnG,EAAKmG,WAKrB,OAAOnG,GAOX8lB,MAAO,SAAS4V,GACZ,OAAOtgC,GAAQrB,IAAIiG,EAAKg1B,YAAY0G,GAAS,WAMjDjH,UAAW,SAAS3O,EAAO4V,GACvB,IAAIn1B,EAAOvG,EAAKg1B,YAAY0G,GAAS,SACrC,UAAW5V,IAAU,YAAa,CAC9B1qB,GAAQ6B,OAAOsJ,OACZ,CACHnL,GAAQ4B,IAAIuJ,EAAMuf,GAEtB,OAAO9lB,GAMXw0B,UAAW,SAASkH,GAChB,OAAO17B,EAAK8lB,MAAM4V,IAKtBtG,WAAY,SAASsG,GACjB,OAAOtgC,GAAQrB,IAAIiG,EAAKg1B,YAAY0G,GAAS,WAKjDn1B,KAAM,WACF,OAAOiqB,GAAanqB,MAAME,MAK9ByuB,YAAa,SAAS0G,GAClB,IAAIn1B,GAAQoC,GAASpC,KAAOoC,GAASpC,KAAO,IAAM,IAC9C4wB,EACJ,GAAIuE,GAASlL,GAAatqB,OAAS,EAAG,CAClC,IAAIy1B,EAAanL,GAAa32B,IAAI,SAAS+hC,GACvC,OAAOA,EAAMr1B,MAAQ,KACtBnP,MAAM,GAAGV,KAAK,KACjB,GAAIilC,EAAY,CACZp1B,GAAQ,IAAMo1B,GAGtB,OAAOp1B,GAKXs1B,KAAM,SAASl3B,EAASyiB,EAAS0U,GAC7B,IAAIC,EAAQzjC,OAAOgvB,WACnB,IAAIuU,EAAO,MACX77B,EAAKnK,KAAK,SAAS4c,GACfopB,EAAO,KACPE,EAAM5iC,QAAQsZ,GACd,GAAI9X,YAAYysB,GAAU,CACtBA,EAAQ3U,GAEZzS,EAAKmG,MACL,GAAIwC,GAAST,QAAS,CAClB0pB,GAAa1pB,UAAUV,WAE5B,CACCjB,KAAM,OACN2B,QAAS,MACTD,OAAQtD,GAAW,GACnB+mB,OAAQ,WACJ,IAAKmQ,EAAM,CACPE,EAAM1T,SACN,GAAI1tB,YAAYmhC,GAAS,CACrBA,SAKhB,GAAInzB,GAAST,QAAS,CAClB0pB,GAAa1pB,UAAUT,UAE3B,OAAOs0B,EAAMtT,WAKjB5yB,KAAM,SAAS84B,EAAajmB,GACxB8uB,GAAU,SAAST,IACfruB,EAAUA,GAAW,GACrB,IAAIb,EAAW,CACXm0B,cAAe,OAEnB,IAAIC,EAAgBxjC,EAAEqE,OAAO,GAAI+K,EAAUa,GAC3C,IAAKuzB,EAAc11B,MAAQ4F,EAAc,CAErC8vB,EAAc11B,KAAO4F,EAAa5F,KAEtC,GAAI01B,EAAch0B,SAAWjQ,UAAW,CACpCikC,EAAch0B,QAAUg0B,EAAc11B,MAAQ,KAAO,IAGzD,IAAIF,EAAMmqB,GAAanqB,MACvB,GAAIA,EAAK,CACLA,EAAIyB,KAAO8pB,GAAa9pB,OAE5B,IAAI4tB,EAAaxB,GACjB,SAASjuB,IACL0C,GAASgjB,OAAO92B,KAAKmL,EAAMqG,EAAKmqB,GAAanqB,MAAOrG,GACpDm1B,IAGJjF,EAAiBvB,EAAajmB,EAAQiiB,MAAO,SAAStrB,GAElDmxB,GAAa36B,KAAK4C,EAAEqE,OAAO,GAAIuC,EAAK48B,IACpC,GAAIA,EAAc5Q,aAAe,KAAM,CACnC,GAAI5yB,EAAE8B,QAAQ8E,EAAIgsB,YAAa,CAC3BmF,GAAanqB,MAAMglB,WAAahsB,EAAIgsB,gBACjC,IAAKhsB,EAAIgsB,WAAY,CACxBmF,GAAanqB,MAAMglB,WAAa,OAGxC,GAAI4Q,EAActR,MAAO,CACrB,IAAIpvB,EACJ,IAAI6d,EAAOxjB,SAASqmC,EAActR,OAClC,GAAIvR,IAAS,WAAY,CACrB7d,EAAQ0gC,EAAcD,cAAgBvjC,EAAE2P,KAAOpI,EAAKmG,IACpDnG,EAAK2qB,MACDsR,EAActR,MACdsR,EAAcD,cACd/1B,EACA1K,QAED,GAAI3F,SAAS+4B,KAAiB,UAC1BvV,IAAS,UAAYA,IAAS,UAAW,CAChD7d,EAAQ0gC,EAAcD,cAAgBvjC,EAAE2P,KAAOpI,EAAKmG,IACpDnG,EAAK2qB,MACDgG,EACIhC,EACAsN,EAActR,OAElBsR,EAAcD,cACd/1B,EACA1K,QAGL,CACH0K,IAEJ,IAAKyvB,GAAc11B,EAAKyG,UAAW,CAC/BzG,EAAKsuB,cAIjB,OAAOtuB,GAKXmG,IAAK,SAASsM,EAAQ+D,GAClB,GAAI/D,IAAWza,UAAW,CACtB26B,EAAalgB,GAEjB,IAAIqT,EAAQ9lB,EAAK8lB,MAAM,MACvB,IAAIzf,EACJ,GAAImqB,GAAatqB,SAAW,EAAG,CAC3BG,EAAMmqB,GAAanqB,MACnB,GAAIsC,GAASgiB,MAAO,CAChB,IAAKnU,EAAQ,CACT7N,GAASijB,MAAM/2B,KAAKmL,EAAMqG,EAAK,KAAMrG,GAEzC00B,IACA,GAAI/5B,YAAYgO,GAAS+iB,QAAS,CAC9B,IACI/iB,GAAS+iB,OAAO72B,KAAKmL,EAAMA,GAC7B,MAAOpE,GACL+M,GAAS+iB,OAASjzB,EAAE2P,KACpBwmB,EAAkBhzB,EAAG,gBAG1B,CACHoE,EAAKzE,MAAM8Z,IAAUyX,mBAEtB,CACH,GAAIhH,EAAO,CACP8O,IAEJ,IAAI1tB,EAAUspB,GAAarqB,MAC3BE,EAAMmqB,GAAanqB,MACnB8uB,IACA,IAAK3e,EAAQ,CACT7N,GAASijB,MAAM/2B,KAAKmL,EAAMkH,EAASb,GAGvC,GAAIkuB,IAAYv0B,EAAKq4B,eAAiBhjB,IAAUsV,MAAQ,KAAM,CAC1D4J,GAAW,MAEf,GAAI55B,YAAYuM,EAAQwkB,QAAS,CAC7B,IACIxkB,EAAQwkB,OAAO72B,KAAKmL,EAAMA,GAC5B,MAAOpE,GACLsL,EAAQwkB,OAASjzB,EAAE2P,KACnBwmB,EAAkBhzB,EAAG,WAI7BoE,EAAK84B,SAASzyB,EAAIyB,MAEtB,OAAO9H,GAKXoW,OAAQ,SAAS8lB,EAAgB79B,GAC7B,UAAWA,IAAU,YAAa,CAC9B,UAAW69B,IAAmB,SAAU,CACpC,OAAOvzB,GAASuzB,QACb,UAAWA,IAAmB,SAAU,CAC3CzjC,EAAEiB,KAAKwiC,EAAgB,SAASzhC,EAAK4D,GACjCsK,GAASlO,GAAO4D,SAGrB,CACHsK,GAASuzB,GAAkB79B,EAC3B,GAAI69B,EAAe1mC,MAAM,qBAAsB,CAC3CqY,KAGR,OAAO7N,GAKXm8B,WAAY,SAASC,GACjB,IAAIlN,EAAOkN,EAAS7lC,cAAcoF,MAAM,KACxC,IAAIlB,EAAMy0B,EAAK/oB,MACf,IAAIk2B,EAAOnN,EAAKvyB,QAAQ,WAAa,EACrC,IAAIwiB,EAAQ+P,EAAKvyB,QAAQ,YAAc,EACvC,IAAI2/B,EAAMpN,EAAKvyB,QAAQ,UAAY,EACnC,IAAI4/B,EAAOrN,EAAKvyB,QAAQ,WAAa,EACrC,IAAIf,EAAInD,EAAE6gB,MAAM,UAAW,CACvB/N,QAAS8wB,EACT5wB,SAAU0T,EACVzT,OAAQ4wB,EACR9wB,QAAS+wB,EACTjkB,MAAOkkB,GAAkB/hC,GACzBA,IAAKA,IAET,IAAImc,EAAMne,EAAEgD,SAASod,iBAAmB/gB,QACxC8e,EAAIxG,QAAQxU,GACZA,EAAInD,EAAE6gB,MAAM,YACZ1d,EAAEnB,IAAMA,EACRmB,EAAE0c,MAAQ1c,EAAEsd,QAAU,EACtBtC,EAAIxG,QAAQxU,GACZ,OAAOoE,GAKX2L,OAAQ,SAASA,EAAQrS,GACrB,GAAI5E,UAAUQ,SAAW,EAAG,CACxB,OAAO08B,GAAajmB,SAExB,UAAWrS,IAAO,YAAa,CAC3B,UAAWqS,IAAW,SAAU,CAC5B,OAAOimB,GAAajmB,OAAOA,QACxB,GAAIlT,EAAE8uB,cAAc5b,GAAS,CAEhCA,EAASlT,EAAEc,KAAKoS,GAAU,GAAI,SAASlR,EAAKnB,GACxC,IAAKmd,GAAWhc,GAAM,CAClB,OAAOnB,EAAGyB,KAAKiF,GAEnB,OAAO,SAASpE,EAAG8a,GAEf,OAAOpd,EAAGzE,KAAKmL,EAAMpE,EAAG,WACpB,OAAO6a,GAAWhc,GAAKmB,EAAG8a,QAItCkb,GAAajmB,OAAOA,SAErB,UAAWrS,IAAO,WAAY,CACjC,IAAImB,EAAMkR,EACV,IAAK8K,GAAWhc,GAAM,CAClBm3B,GAAajmB,OAAOlR,EAAKnB,EAAGyB,KAAKiF,QAC9B,CACH4xB,GAAajmB,OAAOlR,EAAK,SAASmB,EAAG8a,GACjC,OAAOpd,EAAGzE,KAAKmL,EAAMpE,EAAG,WACpB,OAAO6a,GAAWhc,GAAKmB,EAAG8a,UAS9C2d,MAAO,WACH,OAAO7D,GAAatqB,QAKxBY,MAAO,WACHywB,GAAW,SAASR,IAChB/2B,EAAKsH,QACL,MAAOkpB,GAAatqB,OAAS,EAAG,CAC5BsqB,GAAarqB,MAEjB4uB,MAEJ,OAAO/0B,GAMXuH,MAAO,WACHgwB,GAAW,SAASR,IAChB,IAAI0F,EAASz8B,EAAKg1B,cAAgB,IAClC,IAAIhF,EAAQ50B,GAAQrB,IAAI0iC,EAAS,gBACjC,GAAIzM,EAAO,CACPv3B,EAAEiB,KAAKiN,KAAKhS,MAAMq7B,GAAQ,SAASlO,EAAGvb,GAClCnL,GAAQ6B,OAAOsJ,EAAO,aACtBnL,GAAQ6B,OAAOsJ,EAAO,UACtBnL,GAAQ6B,OAAOsJ,EAAO,YAG9BqrB,GAAarqB,QACbnM,GAAQ6B,OAAOw/B,EAAS,kBAE5B,OAAOz8B,GAOX2W,QAAS,WACL4gB,GAAW,SAASR,IAChBnF,GAAajb,UAAU1Z,SACvB5H,EAAO4H,SACPg+B,GAAQh+B,SACRxE,EAAEgD,UAAU0H,OAAO,aAAenD,EAAK6I,MACvCpQ,EAAEX,QAAQqL,OAAO,aAAenD,EAAK6I,MACrC7I,EAAKmD,OAAO,4CACZnD,EAAKyD,WAAW,YAAY2N,YAAY,YACpCjO,OAAO,aACX,GAAIwF,GAASQ,MAAO,CAChBnJ,EAAK4mB,IAAI,QAAS,IAEtB,GAAIje,GAASkgB,OAAQ,CACjB7oB,EAAK4mB,IAAI,SAAU,IAEvBnuB,EAAEX,QAAQiM,IAAI,OAAQ24B,IAClB34B,IAAI,QAAS44B,IACjB38B,EAAK6D,KAAK,kBAAkB5G,SAC5B+C,EAAKvC,WACLihB,UAAUzhB,OAAOk6B,GACjB,GAAIa,GAAqB,CACrB,GAAIA,GAAoBp0B,UAAW,CAC/Bo0B,GAAoBp0B,UAAU5D,EAAK,QAChC,CACHT,cAAcy4B,KAGtB,GAAIC,GAAmB,CACnBA,GAAkB2E,aAEtB58B,EAAKiD,QAAQ,UACb45B,GAAa55B,QAAQ,UAAUhG,SAC/B,IAAKyhB,UAAUxpB,SAAU,CACrBuD,EAAEX,QAAQiM,IAAI,cAElB6zB,GAAU,OAEd,OAAO53B,GAGXs2B,iBAAkB,WACd,IAAIwG,EACJ,GAAI5F,EAAcuE,KAAM,CACpBqB,EAAe5F,EAAcuE,KAAK,oBAC/B,CACHqB,EAAe5F,EAAc5yB,KAAK,gBAEtC4yB,EAAcgB,UAAU4E,GACxB,OAAO98B,GAMX26B,UAAW,WACP,GAAIhyB,GAASoiB,sBAAwB,EAAG,CACpC,OAAO,UACJ,CACH,IAAIgS,EAAeC,EAAYnU,EAC/B,GAAI7oB,EAAKgD,GAAG,QAAS,CACjB+5B,EAAgBtkC,EAAEgD,UAAUotB,SAC5BmU,EAAavkC,EAAEX,QAAQogC,YACvBrP,EAAS/wB,OAAOmlC,gBACb,CACHF,EAAgB7F,EAAc,GAAG4F,aACjCE,EAAa9F,EAAcgB,YAC3BrP,EAASqO,EAAcgG,cAE3B,IAAIh9B,EAAQ68B,EAAgBp0B,GAASoiB,mBACrC,OAAOiS,EAAanU,EAAS3oB,KAGtC,SAASqG,EAAM8uB,GAEd,OAAO,WACH,GAAIuC,GAAS,CACT,IAAKjvB,GAASmhB,iBAAkB,CAC5B,MAAM,IAAIrxB,EAAEqZ,SAAS+R,UAAUxO,IAAUiY,kBAGjD,IACI,OAAO+H,EAAI/9B,MAAM0I,EAAM,GAAG5I,MAAME,MAAM5C,YACxC,MAAOkH,GAEL,GAAI2K,IAAS,QAAUA,IAAS,SAAU,CACtCqoB,EAAkBhzB,EAAGA,EAAEwd,MAAQ,WAAY,MAE/C,IAAKzQ,GAASmhB,iBAAkB,CAC5B,MAAMluB,QAOtB,IAAIuhC,GAAW,CACXC,EAAG,SACHC,EAAG,OACHC,EAAG,YACHC,EAAG,MACHC,GAAI,QACJC,GAAI,QACJC,GAAI,QACJC,GAAI,UACJC,GAAI,MACJC,GAAI,QACJC,GAAI,WACJC,GAAI,SACJC,GAAI,UACJC,GAAI,aACJC,GAAI,SACJC,GAAI,aACJC,GAAI,IACJC,GAAI,SACJC,GAAI,WACJC,GAAI,MACJC,GAAI,OACJC,GAAI,YACJC,GAAI,UACJC,GAAI,aACJC,GAAI,YACJC,GAAI,SACJC,GAAI,QACJC,GAAI,UACJC,GAAI,cACJC,GAAI,SACJC,GAAI,SACJC,GAAI,CAAC,IAAK,KACVC,GAAI,CAAC,IAAK,KACVC,GAAI,CAAC,IAAK,KACVC,GAAI,CAAC,IAAK,KACVC,GAAI,CAAC,IAAK,KACVC,GAAI,CAAC,IAAK,KACVC,GAAI,CAAC,IAAK,KACVC,GAAI,CAAC,IAAK,KACVC,GAAI,CAAC,IAAK,KACVC,GAAI,CAAC,IAAK,KACVC,GAAI,KACJC,GAAI,cACJC,IAAK,UACLC,IAAK,aACLC,IAAK,aACLC,IAAK,aACLC,IAAK,WACLC,IAAK,CAAC,IAAK,KACXC,IAAK,CAAC,IAAK,KACXC,IAAK,CAAC,IAAK,KACXC,IAAK,CAAC,IAAK,KACXC,IAAK,CAAC,IAAK,KACXC,IAAK,CAAC,IAAK,KACXC,IAAK,CAAC,IAAK,KACXC,IAAK,CAAC,IAAK,KACXC,IAAK,CAAC,KAAM,KACZC,IAAK,CAAC,IAAK,KACXC,IAAK,CAAC,IAAK,KACXC,IAAK,OACLC,IAAK,WACLC,IAAK,OACLC,IAAK,QACLC,IAAK,QACLC,IAAK,WACLC,IAAK,OACLC,IAAK,WAGT,IAAKhsC,GAAI,EAAGA,GAAI,GAAIA,KAAK,CACrB6nC,GAAS,IAAM7nC,IAAK,IAAMA,GAG9B,IAAIisC,GAAS,GACb,IAAKjsC,GAAI,GAAIA,GAAI,GAAIA,KAAK,CACtBisC,GAASvrC,OAAOC,aAAaX,IAC7B6nC,GAAS7nC,IAAK,CAACisC,GAAO7pC,cAAe6pC,GAAOhrC,eAEhD,IAAIimC,GAAoB,GACxBhlC,OAAO03B,KAAKiO,IAAUp3B,QAAQ,SAASuS,GACnC,GAAI6kB,GAAS7kB,aAAkB1d,MAAO,CAClCuiC,GAAS7kB,GAAOvS,QAAQ,SAAStL,GAC7B+hC,GAAkB/hC,EAAIlE,eAAiB+hB,QAExC,CACHkkB,GAAkBW,GAAS7kB,GAAO/hB,eAAiB+hB,KAQ3D,GAAI3P,GAAS+nB,uBAAyB,KAAM,CACxC/nB,GAASuiB,SAAW,MAExB,GAAIviB,GAASQ,MAAO,CAChBnJ,EAAKmJ,MAAMR,GAASQ,OAExB,GAAIR,GAASkgB,OAAQ,CACjB7oB,EAAK6oB,OAAOlgB,GAASkgB,QAIzB,GAAIlgB,GAAS2hB,eAAiB,KAAM,CAChC4M,EAAgBz+B,EAAEkQ,GAAS2hB,kBACxB,CACH4M,EAAgBl3B,EAEpB,GAAIk3B,EAAcl0B,GAAG,UAAYmZ,UAAW,CACxC+a,EAAgBz+B,EAAE,aAGtBA,EAAEgD,UAAUV,KAAK,qBAAuBiF,EAAK6I,KAAM,SAASjN,EAAGwzB,GAC3D7B,SAAS13B,KAAKu5B,KAElB,IAAI6L,GAAUxiC,EAAE,mCAAmC2L,SAASpE,GAC5D,IAAI68B,GAAepkC,EAAE,kCAAkC2L,SAASpE,GAChE,IAAIizB,GAAOx6B,EAAE,gCAAgC2L,SAASpE,GACtD3K,EAASoD,EAAE,SAAS0L,SAAS,mBAAmBG,KAAK,OAAQ,OACxDF,SAAS62B,IACdj7B,EAAKmE,SAAS,YAEd,GAAIwE,GAASgiB,OAAShwB,YAAYgO,GAAS64B,eAAgB,CACvD,IACI,GAAI74B,GAAS64B,cAAc3sC,KAAKmL,EAAMA,KAAU,MAAO,CACnD83B,GAAY,OAElB,MAAOl8B,GACL+M,GAAS64B,cAAgB/oC,EAAE2P,KAC3BwmB,EAAkBhzB,EAAG,kBAI7B,IAAI6lC,GACJ,UAAW7T,IAAqB,SAAU,CACtC6T,GAAmB7T,OAChB,GAAIA,aAA4BhzB,MAAO,CAE1C,IAAK,IAAItF,GAAI,EAAGmY,GAAMmgB,EAAiB14B,OAAQI,GAAImY,KAAOnY,GAAG,CACzD,UAAWs4B,EAAiBt4B,MAAO,SAAU,CACzCmsC,GAAmB7T,EAAiBt4B,IACpC,QAIZ,IAAIw/B,GACJ,GAAIn6B,YAAYgO,GAASgiB,OAAQ,CAC7BmK,GAAkBnsB,GAASgiB,WACxB,GAAI8W,YACC94B,GAASgiB,QAAU,UAAYhiB,GAASgiB,QAAU,MAAO,CACjEmK,GAAkBnE,EAAoB8Q,GAAkB94B,GAASgiB,OAErEjM,UAAU/Y,OAAO3F,GACjB,SAAS28B,KACL,GAAI5E,GAAa,CACb/3B,EAAKsB,SAGb,SAASo7B,KACL3E,GAActxB,GACdzG,EAAKyH,UAAU5D,KAAK,iBAAiBuM,QAAQ,OAAQ,CAAC,OAI1D,SAASvB,GAAYjT,GACjBA,EAAIA,EAAEme,cAIN,SAAS2nB,EAAQ5mC,EAAMse,GACnB,OAAOte,EAAKse,KAAKzc,QAAQyc,MAAW,EAExC,GAAIxd,EAAE+lC,cAAe,CACjB,GAAI3hC,EAAKyG,UAAW,CAChB,IAAIm7B,EAAQhmC,EAAE+lC,cAAcC,MAC5B,GAAIA,EAAO,CACP,IAAK,IAAItsC,EAAI,EAAGA,EAAIssC,EAAM1sC,OAAQI,IAAK,CACnC,GAAIosC,EAAQE,EAAMtsC,GAAI,UAAYqT,GAASmiB,WAAY,CACnD,IAAI+W,EAAOD,EAAMtsC,GAAGwsC,YACpB,IAAIC,EAAMjqC,OAAOiqC,KAAOjqC,OAAOkqC,UAC/B,IAAInhC,EAASkhC,EAAIE,gBAAgBJ,GACjC7hC,EAAKguB,KAAK,aAAentB,EAAS,MAAO,CAACgpB,IAAK,YAC5C,GAAI6X,EAAQE,EAAMtsC,GAAI,cAAe,CACxCssC,EAAMtsC,GAAG4sC,YAAYliC,EAAKwM,eAG/B,GAAI5Q,EAAE+lC,cAAcQ,QAAS,CAChC,IAAIroC,EAAO8B,EAAE+lC,cAAcQ,QAAQ,cACnCniC,EAAKwM,OAAO1S,GAEhB,OAAO,QAInBrB,EAAEgD,UAAUyI,GAAG,kBAAoBlE,EAAK6I,KAAMgG,IAC9C,IAAI4H,GAAahe,EAAEqE,OACf,GACA6O,EACAlT,EAAEc,KAAKoP,GAASgD,QAAU,GAAI,SAASlR,EAAKnB,GACxC,IAAKqS,EAAOlR,GAAM,CACd,OAAOnB,EAAGyB,KAAKiF,GAEnB,OAAO,SAASpE,EAAG8a,GAEf,OAAOpd,EAAGzE,KAAKmL,EAAMpE,EAAG,WACpB,OAAO+P,EAAOlR,GAAKmB,EAAG8a,SAKtCwZ,EAAiBtC,EAAkBjlB,GAASgiB,MAAO,SAASyX,GACxD,GAAIz5B,GAAS0iB,mBAAqB1iB,GAAS0iB,aAAe,YACrD1iB,GAAS0iB,WAAY,CAItB+W,EAAK/W,WAAa,WAEtBmF,GAAe,IAAIxqB,MAAMvN,EAAEqE,OAAO,GAAI6L,GAAS4b,MAAO,CAClDhe,KAAMoC,GAASpC,KACf0B,OAAQU,GAASV,OACjB6Q,SAAUnQ,GAASmQ,SACnBH,QAAShQ,GAASgQ,QAClBnB,OAAQ7O,GAASoyB,SACjBtI,UAAW9pB,GAAS8pB,UACpB4P,WAAY15B,GAAS05B,WACrBn6B,QAASS,GAAST,QAClByD,OAAQ8K,IACT2rB,IAEHxQ,GAAen5B,EAAE,UAAU2L,SAAS62B,IAASrzB,IAAI,CAC7CK,OAAQU,GAASV,OACjBC,QAASS,GAASnC,OAAS,SAAWmC,GAAST,QAC/CgE,cAAevD,GAASuD,cACxBlE,YAAaW,GAASX,YACtBD,oBAAqBY,GAASZ,oBAC9BoB,MAAO,OACP1C,QAAS,MACTqN,WAAYiV,GAAU5f,MACtBwP,QAAS8d,EACT9qB,OAAQ8K,GACRnO,aAAcK,GAASL,aACvBC,YAAaI,GAASJ,YACtBC,kBAAmBG,GAASH,kBAC5BsQ,SAAUge,EACVruB,KAAME,GAASF,KACfJ,gBAAiB,SAASwB,GACtB,GAAIlP,YAAYgO,GAASN,iBAAkB,CACvC,IACIM,GAASN,gBAAgBxT,KAAKmL,EAAM6J,EAAS7J,GAC/C,MAAOpE,GACL+M,GAASN,gBAAkB5P,EAAE2P,KAC7BwmB,EAAkBhzB,EAAG,oBAG7BoE,EAAKs2B,oBAETjqB,SAAUA,IAEd,SAAS5E,EAAQ7L,GACbA,EAAIA,EAAEme,cACN,GAAIne,EAAG,CAGH,IAAIoJ,EAAOvJ,SAAS6mC,iBAAiB1mC,EAAEwJ,QAASxJ,EAAE2mC,SAClD,IAAK9pC,EAAEuM,GAAMqF,QAAQ,aAAanV,QAAU8K,EAAKyG,UAAW,CAGxDzG,EAAKyH,YAIjBzH,EAAKxC,QAAQ,IAAK,WACd/E,EAAEgD,UAAUV,KAAK,kBAAoBiF,EAAK6I,KAAMpB,GAC5C1M,KAAK,wBAA0BiF,EAAK6I,KAAMpB,KAElD,IAAI+6B,EAAO/pC,EAAEX,QAGb2D,SAASgnC,iBAAiB,SAAU,WAChCziC,EAAKyH,YAGT,GAAI+I,UAAW,CACXxQ,EAAK0iC,MAAM,WACP,IAAK7K,GAAQ,CACT,IAAK73B,EAAKyG,UAAW,CACjBzG,EAAKsB,QACLswB,GAAapqB,aACV,CACHxH,EAAKyH,kBAId,CAEH+6B,EAAKt+B,GAAG,kBAAoBlE,EAAK6I,KAAM8zB,IACnCz4B,GAAG,iBAAmBlE,EAAK6I,KAAM6zB,KAErC,WACI,IAAI/iB,EAAQ,EACZ,IAAIC,EACJ,IAAIrT,EAAO,SAAWvG,EAAK6I,KAC3B,IAAImV,EAAWhe,EAAK6D,KAAK,iBACzB,SAAS6+B,IACL,GAAI9oB,EAAQ5W,GAAG,cACX4W,EAAQ5W,GAAG,qBAAsB,CACjC,IAAIyK,EAAMzN,EAAK4yB,cAAc19B,OAC7B8K,EAAK05B,aAAajsB,QACf,GAAImM,EAAQvP,QAAQ,WAAWnV,OAAQ,CAC1C8K,EAAK05B,aAAa,GAEtB,IAAK1b,EAAShb,GAAG,UAAW,CACxBgb,EAAS1c,QAEbwF,IAEJ,SAASA,IACL6S,EAAQ,EACRC,EAAU,KAGd,IAAIojB,EACJh9B,EAAK6D,KAAK,iBAAiBK,GAAG,QAAS,WACnC,UAAW84B,IAAe,YAAa,CACnC9F,EAAcgB,UAAU8E,MAE7B94B,GAAG,OAAQ,WACV84B,EAAa9F,EAAcgB,cAE/Bl4B,EAAK2iC,UAAU,SAAS/mC,GACpB,IAAKmJ,gBAAgBnJ,EAAGq3B,IAAO,CAC3BrZ,EAAUnhB,EAAEmD,EAAEsF,WAEnB0hC,QAAQ,WACP,GAAI5oB,sBAAwB,IAAMJ,EAAS,CACvC,KAAMD,IAAU,EAAG,CACf,IAAKke,GAAQ,CACT,IAAKpxB,GAAS,CACVzG,EAAKsB,YACF,CACH,IAAIuhC,EAAUl6B,GAASL,aACvBtI,EAAKxC,QAAQqlC,EAASt8B,EAAMm8B,GAC5B,aAGL,CACH1iC,EAAKvC,SAAS8I,IAGtBO,MACDg8B,SAAS,WACRh8B,IACA9G,EAAKvC,SAAS8I,MAtDtB,IAyDA,WACI,IAAIuC,EAAO9I,EAAK6D,KAAK,iBACrB7D,EAAKkE,GAAG,uBAAwB,SAAStI,GACrC,GAAIoe,sBAAwB,GAAI,CAC5B,IAAKvhB,EAAEmD,EAAEsF,QAAQ8B,GAAG,mCAAoC,CACpD,IAAKhD,EAAKyG,UAAW,CACjBzG,EAAKwH,SAET,IAAItC,EAAS0sB,GAAa1sB,SAC1B4D,EAAK8d,IAAI,CACL3hB,KAAMrJ,EAAEmnC,MAAQ79B,EAAOD,KAAO,GAC9BoB,IAAKzK,EAAEonC,MAAQ99B,EAAOmB,IAAM,GAC5B8C,MAAO,MACP0f,OAAQ,QAEZ,IAAK/f,EAAK9F,GAAG,UAAW,CACpB8F,EAAKxH,QAETtB,EAAKvC,SAAS,YACduC,EAAKxC,QAAQ,IAAK,WAAY,WAC1BsL,EAAK8d,IAAI,CACL3hB,KAAM,GACNoB,IAAK,GACL8C,MAAO,GACP0f,OAAQ,OAGhB7oB,EAAKvC,SAAS,aACduC,EAAK9C,UAAU,GAAI,YAAa,WAC5B,GAAI4L,EAAK,GAAG9G,YAAc8G,EAAK,GAAGzK,MAAO,CACrC,GAAI0f,uBAAuBjV,EAAK,IAAK,CACjCoV,yBAAyBpV,EAAK,IAC9B/F,OACI/C,EAAK6D,KAAK,oBAAoB,GAC9B7D,EAAK6D,KAAK,yBAAyB,IAEvC7D,EAAKvC,SAAS,sBApC1C,GA6CJuC,EAAKkE,GAAG,QAAS,IAAK,SAAStI,GAC3B,IAAIwH,EAAQ3K,EAAES,MACd,GAAIkK,EAAMiH,QAAQ,cAAcnV,OAAQ,CACpC,IAAI+tC,EAAO7/B,EAAMkB,KAAK,QACtB,GAAI2+B,EAAKztC,MAAM,YAAa,CACxBoG,EAAEsnC,iBACFjV,EAAWgV,IAKnB,GAAIx8B,GAAS,CACTzG,EAAK6D,KAAK,iBAAiBvC,WAGnC,SAAS6hC,IACL,IAAIh6B,EAAQ4f,GAAU5f,MACtB4f,GAAYL,cAAc1oB,GAC1B,GAAImJ,IAAU4f,GAAU5f,MAAO,CAC3ByoB,GAAaxb,OAAO,aAAc2S,GAAU5f,OAAO+N,WAG3DM,IACA,SAASA,IACL,GAAIxX,EAAKgD,GAAG,YAAa,CACrB,IAAImG,EAAQ8pB,GAAK9pB,QACjB,IAAI0f,EAASoK,GAAKpK,SAElB,GAAI6O,KAAe7O,GAAU4O,KAActuB,EAAO,CAC9CnJ,EAAKwX,SAETkgB,GAAa7O,EACb4O,GAAYtuB,GAGpB,SAASi6B,IACLpjC,EAAKiD,QAAQ,UAAUA,QAAQuU,GAC/BqlB,GAAa55B,QAAQ,UAAUA,QAAQ,WACnCkgC,IACAnjC,EAAKwX,WAGb,GAAIxX,EAAKgD,GAAG,YAAa,CACrBogC,IAEJ,SAASC,IACL,GAAIrL,GAAqB,CACrB,GAAIA,GAAoBp0B,UAAW,CAC/Bo0B,GAAoBp0B,UAAU5D,EAAK,QAChC,CACHT,cAAcy4B,KAGtB,IAAIsL,EAActjC,EAAKyG,UACvB,IAAI6Q,EAAUtX,EAAKgD,GAAG,YACtB,GAAIsU,EAAS,CACT8rB,IAEJ,SAASG,IACL,GAAIvjC,EAAKgD,GAAG,cAAgBsU,EAAS,CACjCA,EAAU,KACV8rB,IACAD,IACA3rB,IACA,GAAI8rB,EAAa,CACbtjC,EAAKwH,eAEN,GAAI8P,IAAYtX,EAAKgD,GAAG,YAAa,CACxCsU,EAAU,MACVgsB,EAAc7qC,EAAEqZ,SAASoT,WAAallB,GAAQA,EAAKyG,UACnDzG,EAAKyH,WAGb,GAAI3P,OAAO0rC,qBAAsB,CAC7BxL,GAAsB,IAAIwL,qBAAqBD,EAAoB,CAC/DtrC,KAAMwD,SAASyG,OAEnB81B,GAAoB/zB,QAAQjE,EAAK,QAC9B,CACHg4B,GAAsB74B,YAAYokC,EAAoB,MAG9D,IAAIE,IAAWzjC,EAAKqK,QAAQ,QAAQnV,OACpC,IAAIwuC,EAAgB5rC,OAAO6rC,kBAAoB7rC,OAAO8rC,uBACtD,GAAIF,EAAe,CACfzL,GAAoB,IAAIyL,EAAc,WAClC,GAAI1jC,EAAKqK,QAAQ,QAAQnV,OAAQ,CAC7B,IAAKuuC,EAAQ,CACTzjC,EAAKs2B,mBACL,GAAIx+B,OAAO0rC,qBAAsB,CAC7BH,IAEJ7rB,IAEJisB,EAAS,UACN,GAAIA,EAAQ,CACfA,EAAS,SAGjBxL,GAAkBh0B,QAAQxI,SAASyG,KAAM,CAAC2hC,UAAW,OAEzD,GAAIJ,EAAQ,CAGRJ,IAEJ/L,EAAcn+B,UAEd,GAAIsN,IAAWzG,EAAKgD,GAAG,cAAgBwN,UAAW,CAC9CxQ,EAAKsB,MAAMtJ,UAAW,UACnB,CACHgI,EAAKyH,UAIT,GAAI9M,YAAYm6B,IAAkB,CAC9B90B,EAAK2qB,MAAMmK,GAAiB,KAAMC,OAC/B,CACHA,IAIJ,SAAS+O,EAAUvmB,GACf,IAAIzL,EAAW4M,UAAU3kB,MAAMwjB,EAAK,IAEpC,GAAIzL,GAAYqlB,IAAgBrlB,EAASjJ,KAAM,CAC3C,IAAK0U,EAAK,GAAI,CACVwe,EAAM5iC,UACN,OAAO4iC,EAAMtT,eACV,GAAIyL,GAAQ,CACf,IAAI6H,EAAQtjC,EAAE6uB,WACdoM,EAAiB79B,KAAK,WAClB,OAAOic,EAAShb,KAAKymB,EAAK,IAAI8I,KAAK,WAC/BvU,EAAS0b,WAAWjQ,EAAK,GAAI,KAAMA,EAAK,IACxCwe,EAAM5iC,cAGd,OAAO4iC,EAAMtT,cACV,CACH,OAAO3W,EAAShb,KAAKymB,EAAK,IAAI8I,KAAK,WAC/BvU,EAAS0b,WAAWjQ,EAAK,GAAI,KAAMA,EAAK,QAMxD,GAAI5U,GAASirB,SAAU,CACnB,GAAIL,SAASC,KAAM,CAEftZ,WAAW,WACP,IACI,IAAIsZ,EAAOD,SAASC,KAAKzyB,QAAQ,KAAM,IAEvC0sB,cAAgB9mB,KAAKhS,MAAM8gC,mBAAmBjC,IAC9C,IAAIl+B,EAAI,GACR,SAAUi7B,IACN,IAAIhT,EAAOkQ,cAAcn4B,KACzB,GAAIioB,EAAM,CACNumB,EAAUvmB,GAAM8I,KAAKkK,OAClB,CACHrK,YAAc,OALtB,GAQF,MAAOtqB,WAIV,CACHsqB,YAAc,UAEf,CACHA,YAAc,MAKlB,WACI,IAAI/G,EAAQ,MACZ1mB,EAAEgD,UAAUV,KAAK,oBAAsBiF,EAAK6I,KAAM,SAASjN,GACvD,GAAIA,EAAE6P,SAAU,CACZ0T,EAAQ,QAEbpkB,KAAK,kBAAoBiF,EAAK6I,KAAM,SAASjN,GAE5C,GAAIA,EAAE6P,UAAY7P,EAAE0c,QAAU,GAAI,CAC9B6G,EAAQ,SAMhB,SAASkjB,EAAWlpB,EAAO4qB,GACvB,IAAK5kB,EAAO,CACR,IAAIwP,EAAc6B,GAAanqB,MAC/B,IAAIhH,EACJ,GAAI1E,YAAYg0B,EAAY0T,YAAa,CACrChjC,EAAMsvB,EAAY0T,WAAWlpB,EAAO4qB,EAAO/jC,QACxC,GAAIrF,YAAYgO,GAAS05B,YAAa,CACzChjC,EAAMsJ,GAAS05B,WAAWlpB,EAAO4qB,EAAO/jC,GAE5C,GAAI8yB,KAAoBzzB,IAAQ,MAAO,CACnC8Z,EAAM6qB,kBACN7qB,EAAM+pB,iBAEV,GAAI7jC,IAAQ,MAAO,CACf,OAAO,WACJ,GAAIA,IAAQ,KAAM,CACrB,OAEJ,GAAI0kC,EAAQ,EAAG,CACX/jC,EAAK2xB,QAAQ,QACV,CACH3xB,EAAK2xB,OAAO,MAIxB,GAAIl5B,EAAE0gB,MAAM2G,QAAQuiB,WAAY,CAE5BriC,EAAKkE,GAAG,aAAcm+B,OACnB,CAGH,IAAIlpB,EACJ,IAAI3E,EAAM/Y,SAASogB,cAAc,OACjC,GAAI,YAAarH,EAAK,CAClB2E,EAAQ,aACL,GAAI1d,SAASwoC,eAAiBjsC,UAAW,CAE5CmhB,EAAQ,iBACL,CAEHA,EAAQ,iBAEZ3E,EAAM,KACNxU,EAAKkE,GAAGiV,EAAO,SAASvd,GACpB,IAAImoC,EACJ,GAAI5qB,IAAU,aAAc,CACxB4qB,GAAU,EAAI,GAAKnoC,EAAEme,cAAcmqB,eAChC,CACHH,EAAQnoC,EAAEme,cAAcoqB,QAAUvoC,EAAEme,cAAcqqB,OAEtD/B,EAAWzmC,GAAImoC,OAjE3B,KAsEJ/jC,EAAKuD,KAAK,WAAYvD,GACtB,OAAOA","sourcesContent":["/**@license\n * __ _____ ________ __\n * / // _ /__ __ _____ ___ __ _/__ ___/__ ___ ______ __ __ __ ___ / /\n * __ / // // // // // _ // _// // / / // _ // _// // // \\/ // _ \\/ /\n * / / // // // // // ___// / / // / / // ___// / / / / // // /\\ // // / /__\n * \\___//____ \\\\___//____//_/ _\\_ / /_//____//_/ /_/ /_//_//_/ /_/ \\__\\_\\___/\n * \\/ /____/ version 1.23.1\n *\n * This file is part of jQuery Terminal. http://terminal.jcubic.pl\n *\n * Copyright (c) 2010-2018 Jakub Jankiewicz
\n * Released under the MIT license\n *\n * Contains:\n *\n * Storage plugin Distributed under the MIT License\n * modified to work from Data URIs that block storage and cookies in Chrome\n * Copyright (c) 2010 Dave Schindler\n *\n * jQuery Timers licenced with the WTFPL\n * \n *\n * Cross-Browser Split 1.1.1\n * Copyright 2007-2012 Steven Levithan \n * Available under the MIT License\n *\n * jQuery Caret\n * Copyright (c) 2009, Gideon Sireling\n * 3 clause BSD License\n *\n * sprintf.js\n * Copyright (c) 2007-2013 Alexandru Marasteanu \n * licensed under 3 clause BSD license\n *\n * emoji regex v7.0.1 by Mathias Bynens\n * MIT license\n *\n * Date: Mon, 17 Sep 2018 22:01:48 +0000\n */\n\n/* TODO:\n *\n * Debug interpreters names in LocalStorage\n *\n * TEST: login + promises/exec\n * json-rpc/object + promises\n *\n * NOTE: json-rpc don't need promises and delegate resume/pause because only\n * exec can call it and exec call interpreter that work with resume/pause\n */\n/* global location, jQuery, setTimeout, window, global, localStorage, sprintf,\n setImmediate, IntersectionObserver, MutationObserver, ResizeObserver,\n module, require, define, setInterval, clearInterval */\n/* eslint-disable */\n/* istanbul ignore next */\n(function(ctx) {\n var sprintf = function() {\n if (!sprintf.cache.hasOwnProperty(arguments[0])) {\n sprintf.cache[arguments[0]] = sprintf.parse(arguments[0]);\n }\n return sprintf.format.call(null, sprintf.cache[arguments[0]], arguments);\n };\n sprintf.format = function(parse_tree, argv) {\n var cursor = 1, tree_length = parse_tree.length, node_type = '', arg, output = [], i, k, match, pad, pad_character, pad_length;\n for (i = 0; i < tree_length; i++) {\n node_type = get_type(parse_tree[i]);\n if (node_type === 'string') {\n output.push(parse_tree[i]);\n }\n else if (node_type === 'array') {\n match = parse_tree[i]; // convenience purposes only\n if (match[2]) { // keyword argument\n arg = argv[cursor];\n for (k = 0; k < match[2].length; k++) {\n if (!arg.hasOwnProperty(match[2][k])) {\n throw(sprintf('[sprintf] property \"%s\" does not exist', match[2][k]));\n }\n arg = arg[match[2][k]];\n }\n }\n else if (match[1]) { // positional argument (explicit)\n arg = argv[match[1]];\n }\n else { // positional argument (implicit)\n arg = argv[cursor++];\n }\n\n if (/[^s]/.test(match[8]) && (get_type(arg) !== 'number')) {\n throw(sprintf('[sprintf] expecting number but found %s', get_type(arg)));\n }\n switch (match[8]) {\n case 'b': arg = arg.toString(2); break;\n case 'c': arg = String.fromCharCode(arg); break;\n case 'd': arg = parseInt(arg, 10); break;\n case 'e': arg = match[7] ? arg.toExponential(match[7]) : arg.toExponential(); break;\n case 'f': arg = match[7] ? parseFloat(arg).toFixed(match[7]) : parseFloat(arg); break;\n case 'o': arg = arg.toString(8); break;\n case 's': arg = ((arg = String(arg)) && match[7] ? arg.substring(0, match[7]) : arg); break;\n case 'u': arg = arg >>> 0; break;\n case 'x': arg = arg.toString(16); break;\n case 'X': arg = arg.toString(16).toUpperCase(); break;\n }\n arg = (/[def]/.test(match[8]) && match[3] && arg >= 0 ? ' +' + arg : arg);\n pad_character = match[4] ? match[4] === '0' ? '0' : match[4].charAt(1) : ' ';\n pad_length = match[6] - String(arg).length;\n pad = match[6] ? str_repeat(pad_character, pad_length) : '';\n output.push(match[5] ? arg + pad : pad + arg);\n }\n }\n return output.join('');\n };\n\n sprintf.cache = {};\n\n sprintf.parse = function(fmt) {\n var _fmt = fmt, match = [], parse_tree = [], arg_names = 0;\n while (_fmt) {\n if ((match = /^[^\\x25]+/.exec(_fmt)) !== null) {\n parse_tree.push(match[0]);\n }\n else if ((match = /^\\x25{2}/.exec(_fmt)) !== null) {\n parse_tree.push('%');\n }\n else if ((match = /^\\x25(?:([1-9]\\d*)\\$|\\(([^\\)]+)\\))?(\\+)?(0|'[^$])?(-)?(\\d+)?(?:\\.(\\d+))?([b-fosuxX])/.exec(_fmt)) !== null) {\n if (match[2]) {\n arg_names |= 1;\n var field_list = [], replacement_field = match[2], field_match = [];\n if ((field_match = /^([a-z_][a-z_\\d]*)/i.exec(replacement_field)) !== null) {\n field_list.push(field_match[1]);\n while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') {\n if ((field_match = /^\\.([a-z_][a-z_\\d]*)/i.exec(replacement_field)) !== null) {\n field_list.push(field_match[1]);\n }\n else if ((field_match = /^\\[(\\d+)\\]/.exec(replacement_field)) !== null) {\n field_list.push(field_match[1]);\n }\n else {\n throw('[sprintf] huh?');\n }\n }\n }\n else {\n throw('[sprintf] huh?');\n }\n match[2] = field_list;\n }\n else {\n arg_names |= 2;\n }\n if (arg_names === 3) {\n throw('[sprintf] mixing positional and named placeholders is not (yet) supported');\n }\n parse_tree.push(match);\n }\n else {\n throw('[sprintf] huh?');\n }\n _fmt = _fmt.substring(match[0].length);\n }\n return parse_tree;\n };\n\n var vsprintf = function(fmt, argv, _argv) {\n _argv = argv.slice(0);\n _argv.splice(0, 0, fmt);\n return sprintf.apply(null, _argv);\n };\n\n /**\n * helpers\n */\n function get_type(variable) {\n return Object.prototype.toString.call(variable).slice(8, -1).toLowerCase();\n }\n\n function str_repeat(input, multiplier) {\n for (var output = []; multiplier > 0; output[--multiplier] = input) {/* do nothing */}\n return output.join('');\n }\n\n /**\n * export to either browser or node.js\n */\n ctx.sprintf = sprintf;\n ctx.vsprintf = vsprintf;\n})(typeof global !== \"undefined\" ? global : window);\n/* eslint-enable */\n// UMD taken from https://github.com/umdjs/umd\n(function(factory, undefined) {\n var root = typeof window !== 'undefined' ? window : global;\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n // istanbul ignore next\n define(['jquery', 'wcwidth'], factory);\n } else if (typeof module === 'object' && module.exports) {\n // Node/CommonJS\n module.exports = function(root, jQuery, wcwidth) {\n if (jQuery === undefined) {\n // require('jQuery') returns a factory that requires window to\n // build a jQuery instance, we normalize how we use modules\n // that require this pattern but the window provided is a noop\n // if it's defined (how jquery works)\n if (window !== undefined) {\n jQuery = require('jquery');\n } else {\n jQuery = require('jquery')(root);\n }\n }\n if (wcwidth === undefined) {\n wcwidth = require('wcwidth');\n }\n factory(jQuery, wcwidth);\n return jQuery;\n };\n } else {\n // Browser\n // istanbul ignore next\n factory(root.jQuery, root.wcwidth);\n }\n})(function($, wcwidth, undefined) {\n 'use strict';\n // -----------------------------------------------------------------------\n // :: debug functions\n // -----------------------------------------------------------------------\n /* eslint-disable */\n function debug(str) {\n if (false) {\n console.log(str);\n //$.terminal.active().echo(str);\n }\n }\n /* eslint-enable */\n // -----------------------------------------------------------------------\n // :: Replacemenet for jQuery 2 deferred objects\n // -----------------------------------------------------------------------\n function DelayQueue() {\n var callbacks = $.Callbacks();\n var resolved = false;\n this.resolve = function() {\n callbacks.fire();\n resolved = true;\n };\n this.add = function(fn) {\n if (resolved) {\n fn();\n } else {\n callbacks.add(fn);\n }\n };\n }\n // -----------------------------------------------------------------------\n // :: map object to object\n // -----------------------------------------------------------------------\n $.omap = function(o, fn) {\n var result = {};\n $.each(o, function(k, v) {\n result[k] = fn.call(o, k, v);\n });\n return result;\n };\n $.fn.text_length = function() {\n return this.map(function() {\n return $(this).text().length;\n }).get().reduce(function(a, b) {\n return a + b;\n }, 0);\n };\n // -----------------------------------------------------------------------\n // :: Deep clone of objects and arrays\n // -----------------------------------------------------------------------\n var Clone = {\n clone_object: function(object) {\n var tmp = {};\n if (typeof object === 'object') {\n if ($.isArray(object)) {\n return this.clone_array(object);\n } else if (object === null) {\n return object;\n } else {\n for (var key in object) {\n if ($.isArray(object[key])) {\n tmp[key] = this.clone_array(object[key]);\n } else if (typeof object[key] === 'object') {\n tmp[key] = this.clone_object(object[key]);\n } else {\n tmp[key] = object[key];\n }\n }\n }\n }\n return tmp;\n },\n clone_array: function(array) {\n if (!is_function(Array.prototype.map)) {\n throw new Error(\"Your browser don't support ES5 array map \" +\n 'use es5-shim');\n }\n return array.slice(0).map(function(item) {\n if (typeof item === 'object') {\n return this.clone_object(item);\n } else {\n return item;\n }\n }.bind(this));\n }\n };\n var clone = function(object) {\n return Clone.clone_object(object);\n };\n\n /* eslint-disable */\n // -----------------------------------------------------------------------\n // :: Storage plugin\n // -----------------------------------------------------------------------\n var localStorage;\n /* istanbul ignore next */\n (function() {\n var hasLS = function() {\n try {\n var testKey = 'test', storage = window.localStorage;\n storage.setItem(testKey, '1');\n storage.removeItem(testKey);\n return true;\n } catch (error) {\n return false;\n }\n };\n var hasCookies = function() {\n try {\n document.cookie.split(';');\n return true;\n } catch (e) {\n return false;\n }\n };\n // Private data\n var isLS = hasLS();\n // Private functions\n function wls(n, v) {\n var c;\n if (typeof n === 'string' && typeof v === 'string') {\n localStorage[n] = v;\n return true;\n } else if (typeof n === 'object' && typeof v === 'undefined') {\n for (c in n) {\n if (n.hasOwnProperty(c)) {\n localStorage[c] = n[c];\n }\n }\n return true;\n }\n return false;\n }\n function wc(n, v) {\n var dt, e, c;\n dt = new Date();\n dt.setTime(dt.getTime() + 31536000000);\n e = '; expires=' + dt.toGMTString();\n if (typeof n === 'string' && typeof v === 'string') {\n document.cookie = n + '=' + v + e + '; path=/';\n return true;\n } else if (typeof n === 'object' && typeof v === 'undefined') {\n for (c in n) {\n if (n.hasOwnProperty(c)) {\n document.cookie = c + '=' + n[c] + e + '; path=/';\n }\n }\n return true;\n }\n return false;\n }\n function rls(n) {\n return localStorage[n];\n }\n function rc(n) {\n var nn, ca, i, c;\n nn = n + '=';\n ca = document.cookie.split(';');\n for (i = 0; i < ca.length; i++) {\n c = ca[i];\n while (c.charAt(0) === ' ') {\n c = c.substring(1, c.length);\n }\n if (c.indexOf(nn) === 0) {\n return c.substring(nn.length, c.length);\n }\n }\n return null;\n }\n function dls(n) {\n return delete localStorage[n];\n }\n function dc(n) {\n return wc(n, '', -1);\n }\n /**\n * Public API\n * $.Storage.set(\"name\", \"value\")\n * $.Storage.set({\"name1\":\"value1\", \"name2\":\"value2\", etc})\n * $.Storage.get(\"name\")\n * $.Storage.remove(\"name\")\n */\n if (!hasCookies() && !isLS) {\n localStorage = {};\n $.extend({\n Storage: {\n set: wls,\n get: rls,\n remove: dls\n }\n });\n } else {\n if (isLS) {\n localStorage = window.localStorage;\n }\n $.extend({\n Storage: {\n set: isLS ? wls : wc,\n get: isLS ? rls : rc,\n remove: isLS ? dls : dc\n }\n });\n }\n })();\n // -----------------------------------------------------------------------\n // :: jQuery Timers\n // -----------------------------------------------------------------------\n var jQuery = $;\n /* istanbul ignore next */\n (function($) {\n jQuery.fn.extend({\n everyTime: function(interval, label, fn, times, belay) {\n return this.each(function() {\n jQuery.timer.add(this, interval, label, fn, times, belay);\n });\n },\n oneTime: function(interval, label, fn) {\n return this.each(function() {\n jQuery.timer.add(this, interval, label, fn, 1);\n });\n },\n stopTime: function(label, fn) {\n return this.each(function() {\n jQuery.timer.remove(this, label, fn);\n });\n }\n });\n\n jQuery.extend({\n timer: {\n guid: 1,\n global: {},\n regex: /^([0-9]+)\\s*(.*s)?$/,\n powers: {\n // Yeah this is major overkill...\n 'ms': 1,\n 'cs': 10,\n 'ds': 100,\n 's': 1000,\n 'das': 10000,\n 'hs': 100000,\n 'ks': 1000000\n },\n timeParse: function(value) {\n if (value === undefined || value === null) {\n return null;\n }\n var result = this.regex.exec(jQuery.trim(value.toString()));\n if (result[2]) {\n var num = parseInt(result[1], 10);\n var mult = this.powers[result[2]] || 1;\n return num * mult;\n } else {\n return value;\n }\n },\n add: function(element, interval, label, fn, times, belay) {\n var counter = 0;\n\n if (jQuery.isFunction(label)) {\n if (!times) {\n times = fn;\n }\n fn = label;\n label = interval;\n }\n\n interval = jQuery.timer.timeParse(interval);\n\n if (typeof interval !== 'number' ||\n isNaN(interval) ||\n interval <= 0) {\n return;\n }\n if (times && times.constructor !== Number) {\n belay = !!times;\n times = 0;\n }\n\n times = times || 0;\n belay = belay || false;\n\n if (!element.$timers) {\n element.$timers = {};\n }\n if (!element.$timers[label]) {\n element.$timers[label] = {};\n }\n fn.$timerID = fn.$timerID || this.guid++;\n\n var handler = function() {\n if (belay && handler.inProgress) {\n return;\n }\n handler.inProgress = true;\n if ((++counter > times && times !== 0) ||\n fn.call(element, counter) === false) {\n jQuery.timer.remove(element, label, fn);\n }\n handler.inProgress = false;\n };\n\n handler.$timerID = fn.$timerID;\n\n if (!element.$timers[label][fn.$timerID]) {\n element.$timers[label][fn.$timerID] = window.setInterval(handler, interval);\n }\n\n if (!this.global[label]) {\n this.global[label] = [];\n }\n this.global[label].push(element);\n\n },\n remove: function(element, label, fn) {\n var timers = element.$timers, ret;\n\n if (timers) {\n\n if (!label) {\n for (var lab in timers) {\n if (timers.hasOwnProperty(lab)) {\n this.remove(element, lab, fn);\n }\n }\n } else if (timers[label]) {\n if (fn) {\n if (fn.$timerID) {\n window.clearInterval(timers[label][fn.$timerID]);\n delete timers[label][fn.$timerID];\n }\n } else {\n for (var _fn in timers[label]) {\n if (timers[label].hasOwnProperty(_fn)) {\n window.clearInterval(timers[label][_fn]);\n delete timers[label][_fn];\n }\n }\n }\n\n for (ret in timers[label]) {\n if (timers[label].hasOwnProperty(ret)) {\n break;\n }\n }\n if (!ret) {\n ret = null;\n delete timers[label];\n }\n }\n\n for (ret in timers) {\n if (timers.hasOwnProperty(ret)) {\n break;\n }\n }\n if (!ret) {\n element.$timers = null;\n }\n }\n }\n }\n });\n if (/(msie) ([\\w.]+)/.exec(navigator.userAgent.toLowerCase())) {\n $(window).one('unload', function() {\n var global = jQuery.timer.global;\n for (var label in global) {\n if (global.hasOwnProperty(label)) {\n var els = global[label], i = els.length;\n while (--i) {\n jQuery.timer.remove(els[i], label);\n }\n }\n }\n });\n }\n })(jQuery);\n // -----------------------------------------------------------------------\n // :: CROSS BROWSER SPLIT\n // -----------------------------------------------------------------------\n /* istanbul ignore next */\n (function(undef) {\n\n // prevent double include\n\n if (!String.prototype.split.toString().match(/\\[native/)) {\n return;\n }\n\n var nativeSplit = String.prototype.split,\n compliantExecNpcg = /()??/.exec(\"\")[1] === undef, // NPCG: nonparticipating capturing group\n self;\n\n self = function(str, separator, limit) {\n // If `separator` is not a regex, use `nativeSplit`\n if (Object.prototype.toString.call(separator) !== \"[object RegExp]\") {\n return nativeSplit.call(str, separator, limit);\n }\n var output = [],\n flags = (separator.ignoreCase ? \"i\" : \"\") +\n (separator.multiline ? \"m\" : \"\") +\n (separator.extended ? \"x\" : \"\") + // Proposed for ES6\n (separator.sticky ? \"y\" : \"\"), // Firefox 3+\n lastLastIndex = 0,\n // Make `global` and avoid `lastIndex` issues by working with a copy\n separator2, match, lastIndex, lastLength;\n separator = new RegExp(separator.source, flags + \"g\");\n str += \"\"; // Type-convert\n if (!compliantExecNpcg) {\n // Doesn't need flags gy, but they don't hurt\n separator2 = new RegExp(\"^\" + separator.source + \"$(?!\\\\s)\", flags);\n }\n /* Values for `limit`, per the spec:\n * If undefined: 4294967295 // Math.pow(2, 32) - 1\n * If 0, Infinity, or NaN: 0\n * If positive number: limit = Math.floor(limit); if (limit > 4294967295) limit -= 4294967296;\n * If negative number: 4294967296 - Math.floor(Math.abs(limit))\n * If other: Type-convert, then use the above rules\n */\n // ? Math.pow(2, 32) - 1 : ToUint32(limit)\n limit = limit === undef ? -1 >>> 0 : limit >>> 0;\n while (match = separator.exec(str)) {\n // `separator.lastIndex` is not reliable cross-browser\n lastIndex = match.index + match[0].length;\n if (lastIndex > lastLastIndex) {\n output.push(str.slice(lastLastIndex, match.index));\n // Fix browsers whose `exec` methods don't consistently return `undefined` for\n // nonparticipating capturing groups\n if (!compliantExecNpcg && match.length > 1) {\n match[0].replace(separator2, function() {\n for (var i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undef) {\n match[i] = undef;\n }\n }\n });\n }\n if (match.length > 1 && match.index < str.length) {\n Array.prototype.push.apply(output, match.slice(1));\n }\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= limit) {\n break;\n }\n }\n if (separator.lastIndex === match.index) {\n separator.lastIndex++; // Avoid an infinite loop\n }\n }\n if (lastLastIndex === str.length) {\n if (lastLength || !separator.test(\"\")) {\n output.push(\"\");\n }\n } else {\n output.push(str.slice(lastLastIndex));\n }\n return output.length > limit ? output.slice(0, limit) : output;\n };\n\n // For convenience\n String.prototype.split = function(separator, limit) {\n return self(this, separator, limit);\n };\n\n return self;\n\n })();\n // -----------------------------------------------------------------------\n // :: jQuery Caret\n // -----------------------------------------------------------------------\n /* istanbul ignore next */\n $.fn.caret = function(pos) {\n var target = this[0];\n var isContentEditable = target.contentEditable === 'true';\n //get\n if (arguments.length === 0) {\n //HTML5\n if (window.getSelection) {\n //contenteditable\n if (isContentEditable) {\n target.focus();\n var range1 = window.getSelection().getRangeAt(0),\n range2 = range1.cloneRange();\n range2.selectNodeContents(target);\n range2.setEnd(range1.endContainer, range1.endOffset);\n return range2.toString().length;\n }\n //textarea\n return target.selectionStart;\n }\n //IE<9\n if (document.selection) {\n target.focus();\n //contenteditable\n if (isContentEditable) {\n var range1 = document.selection.createRange(),\n range2 = document.body.createTextRange();\n range2.moveToElementText(target);\n range2.setEndPoint('EndToEnd', range1);\n return range2.text.length;\n }\n //textarea\n var pos = 0,\n range = target.createTextRange(),\n range2 = document.selection.createRange().duplicate(),\n bookmark = range2.getBookmark();\n range.moveToBookmark(bookmark);\n while (range.moveStart('character', -1) !== 0) pos++;\n return pos;\n }\n //not supported\n return 0;\n }\n //set\n if (pos === -1)\n pos = this[isContentEditable? 'text' : 'val']().length;\n //HTML5\n if (window.getSelection) {\n //contenteditable\n if (isContentEditable) {\n target.focus();\n window.getSelection().collapse(target.firstChild, pos);\n }\n //textarea\n else\n target.setSelectionRange(pos, pos);\n }\n //IE<9\n else if (document.body.createTextRange) {\n var range = document.body.createTextRange();\n range.moveToElementText(target);\n range.moveStart('character', pos);\n range.collapse(true);\n range.select();\n }\n if (!isContentEditable && !this.is(':focus')) {\n target.focus();\n }\n return pos;\n };\n /* eslint-enable */\n // -----------------------------------------------------------------------\n // :: Cross-browser resize element plugin using sentinel iframe or\n // :: resizeObserver\n // -----------------------------------------------------------------------\n $.fn.resizer = function(callback) {\n var unbind = arguments[0] === \"unbind\";\n if (!unbind && !is_function(callback)) {\n throw new Error(\n 'Invalid argument, it need to a function or string \"unbind\".'\n );\n }\n if (unbind) {\n callback = is_function(arguments[1]) ? arguments[1] : null;\n }\n return this.each(function() {\n var $this = $(this);\n var iframe;\n var callbacks;\n function resize_handler() {\n callbacks.fire();\n }\n if (unbind) {\n callbacks = $this.data('callbacks');\n if (callback && callbacks) {\n callbacks.remove(callback);\n if (!callbacks.has()) {\n callbacks = null;\n }\n } else {\n callbacks = null;\n }\n if (!callbacks) {\n $this.removeData('callbacks');\n if (window.ResizeObserver) {\n var observer = $this.data('observer');\n if (observer) {\n observer.unobserve(this);\n $this.removeData('observer');\n }\n } else {\n iframe = $this.find('> iframe');\n if (iframe.length) {\n // just in case of memory leaks in IE\n $(iframe[0].contentWindow).off('resize').remove();\n iframe.remove();\n } else if ($this.is('body')) {\n $(window).off('resize.resizer');\n }\n }\n }\n } else if ($this.data('callbacks')) {\n $(this).data('callbacks').add(callback);\n } else {\n callbacks = $.Callbacks();\n callbacks.add(callback);\n $this.data('callbacks', callbacks);\n var resizer;\n var first = true;\n if (window.ResizeObserver) {\n resizer = new ResizeObserver(function() {\n if (!first) {\n resize_handler();\n }\n first = false;\n });\n resizer.observe(this);\n $this.data('observer', resizer);\n } else if ($this.is('body')) {\n $(window).on('resize.resizer', resize_handler);\n } else {\n iframe = $('').addClass('resizer').appendTo(this)[0];\n\n $(iframe.contentWindow).on('resize', resize_handler);\n }\n }\n });\n };\n // -----------------------------------------------------------------------\n // :: hide elements from screen readers\n // -----------------------------------------------------------------------\n function a11y_hide(element) {\n element.attr({\n role: 'presentation',\n 'aria-hidden': 'true'\n });\n }\n // ---------------------------------------------------------------------\n // :: alert only first exception of type\n // ---------------------------------------------------------------------\n var excepctions = [];\n function alert_exception(label, e) {\n var message = (label ? label + ': ' : '') + exception_message(e);\n if (excepctions.indexOf(message) === -1) {\n excepctions.push(message);\n alert(message + (e.stack ? '\\n' + e.stack : ''));\n }\n }\n // ---------------------------------------------------------------------\n // :; detect if mouse event happen on scrollbar\n // ---------------------------------------------------------------------\n function scrollbar_event(e, node) {\n var left = node.offset().left;\n return node.outerWidth() <= e.clientX - left;\n }\n // ---------------------------------------------------------------------\n // :: Return exception message as string\n // ---------------------------------------------------------------------\n function exception_message(e) {\n if (typeof e === 'string') {\n return e;\n } else if (typeof e.fileName === 'string') {\n return e.fileName + ': ' + e.message;\n } else {\n return e.message;\n }\n }\n // -----------------------------------------------------------------------\n // :: CYCLE DATA STRUCTURE\n // -----------------------------------------------------------------------\n function Cycle() {\n var data = [].slice.call(arguments);\n var pos = 0;\n $.extend(this, {\n get: function() {\n return data;\n },\n index: function() {\n return pos;\n },\n rotate: function(skip) {\n if (!skip) {\n var defined = data.filter(function(item) {\n return typeof item !== 'undefined';\n });\n if (!defined.length) {\n return;\n }\n }\n if (!data.length) {\n return;\n }\n if (data.length === 1) {\n return data[0];\n } else {\n if (pos === data.length - 1) {\n pos = 0;\n } else {\n ++pos;\n }\n if (typeof data[pos] !== 'undefined') {\n return data[pos];\n } else {\n return this.rotate(true);\n }\n }\n },\n length: function() {\n return data.length;\n },\n remove: function(index) {\n delete data[index];\n },\n set: function(item) {\n for (var i = data.length; i--;) {\n if (data[i] === item) {\n pos = i;\n return;\n }\n }\n this.append(item);\n pos = data.length - 1;\n },\n front: function() {\n if (data.length) {\n var index = pos;\n var restart = false;\n while (!data[index]) {\n index++;\n if (index > data.length) {\n if (restart) {\n break;\n }\n index = 0;\n restart = true;\n }\n }\n return data[index];\n }\n },\n map: function(fn) {\n return data.map(function(item, i) {\n if (typeof item !== 'undefined') {\n return fn(item, i);\n }\n return null;\n }).filter(Boolean);\n },\n forEach: function(fn) {\n return data.forEach(function(item, i) {\n if (typeof item !== 'undefined') {\n fn(item, i);\n }\n });\n },\n append: function(item) {\n data.push(item);\n }\n });\n }\n // -----------------------------------------------------------------------\n // :: STACK DATA STRUCTURE\n // -----------------------------------------------------------------------\n function Stack(init) {\n var data = init instanceof Array ? init : init ? [init] : [];\n $.extend(this, {\n data: function() {\n return data;\n },\n map: function(fn) {\n return $.map(data, fn);\n },\n size: function() {\n return data.length;\n },\n pop: function() {\n if (data.length === 0) {\n return null;\n } else {\n var value = data[data.length - 1];\n data = data.slice(0, data.length - 1);\n return value;\n }\n },\n push: function(value) {\n data = data.concat([value]);\n return value;\n },\n top: function() {\n return data.length > 0 ? data[data.length - 1] : null;\n },\n clone: function() {\n return new Stack(data.slice(0));\n }\n });\n }\n // -------------------------------------------------------------------------\n // :: HISTORY CLASS\n // -------------------------------------------------------------------------\n function History(name, size, memory) {\n var enabled = true;\n var storage_key = '';\n if (typeof name === 'string' && name !== '') {\n storage_key = name + '_';\n }\n storage_key += 'commands';\n var data;\n if (memory) {\n data = [];\n } else {\n data = $.Storage.get(storage_key);\n data = data ? JSON.parse(data) : [];\n }\n var pos = data.length - 1;\n $.extend(this, {\n append: function(item) {\n if (enabled) {\n if (data[data.length - 1] !== item) {\n data.push(item);\n if (size && data.length > size) {\n data = data.slice(-size);\n }\n pos = data.length - 1;\n if (!memory) {\n $.Storage.set(storage_key, JSON.stringify(data));\n }\n }\n }\n },\n set: function(new_data) {\n if (new_data instanceof Array) {\n data = new_data;\n if (!memory) {\n $.Storage.set(storage_key, JSON.stringify(data));\n }\n }\n },\n data: function() {\n return data;\n },\n reset: function() {\n pos = data.length - 1;\n },\n last: function() {\n return data[data.length - 1];\n },\n end: function() {\n return pos === data.length - 1;\n },\n position: function() {\n return pos;\n },\n current: function() {\n return data[pos];\n },\n next: function() {\n var old = pos;\n if (pos < data.length - 1) {\n ++pos;\n }\n if (old !== pos) {\n return data[pos];\n }\n },\n previous: function() {\n var old = pos;\n if (pos > 0) {\n --pos;\n }\n if (old !== pos) {\n return data[pos];\n }\n },\n clear: function() {\n data = [];\n this.purge();\n },\n enabled: function() {\n return enabled;\n },\n enable: function() {\n enabled = true;\n },\n purge: function() {\n if (!memory) {\n $.Storage.remove(storage_key);\n }\n },\n disable: function() {\n enabled = false;\n },\n toggle: function(value) {\n if (typeof value === 'undefined') {\n enabled = !enabled;\n } else {\n enabled = value;\n }\n }\n });\n }\n // -------------------------------------------------------------------------\n // :: COMMAND LINE PLUGIN\n // -------------------------------------------------------------------------\n var cmd_index = 0;\n $.cmd = {\n defaults: {\n mask: false,\n caseSensitiveSearch: true,\n historySize: 60,\n prompt: '> ',\n enabled: true,\n history: true,\n onPositionChange: $.noop,\n onCommandChange: $.noop,\n clickTimeout: 200,\n holdTimeout: 400,\n holdRepeatTimeout: 200,\n tabs: 4\n }\n };\n $.fn.cmd = function(options) {\n var settings = $.extend({}, $.cmd.defaults, options);\n var self = this;\n var maybe_data = self.data('cmd');\n if (maybe_data) {\n return maybe_data;\n }\n var id = cmd_index++;\n self.addClass('cmd');\n self.append('');\n self.append('' +\n '' +\n ' ' +\n '' +\n '
');\n // a11y: don't read command it's in textarea that's in focus\n a11y_hide(self.find('.cursor-line'));\n // on mobile the only way to hide textarea on desktop it's needed because\n // textarea show up after focus\n //self.append('');\n var clip = $('