{"version":3,"sources":["kendo.editor.js"],"names":["f","define","kendo","UndoRedoStack","Observable","extend","init","options","fn","call","this","clear","events","push","command","stack","slice","currentCommandIndex","undo","canUndo","trigger","redo","canRedo","length","deepExtend","util","amd","a1","a2","a3","$","undefined","Tool","emptyElementContent","emptyTableCellContent","window","Class","Widget","ui","os","support","mobileOS","browser","proxy","keys","SELECT","SELECT_OVERLAY_SELECTOR","PLACEHOLDER_CLASS","PLACEHOLDER_TAG_ID","REFRESH_INTERVAL","DEFAULT_LANGUAGE","ToolTemplate","getHtml","template","useWithBlock","EditorUtils","editorWrapperTemplate","buttonTemplate","iconTextButtonTemplate","tableWizardButtonTemplate","colorPickerTemplate","comboBoxTemplate","dropDownListTemplate","separatorTemplate","overflowAnchorTemplate","formatByName","name","format","i","inArray","tags","getToolCssClass","toolCssClassNames","superscript","subscript","justifyLeft","justifyCenter","justifyRight","justifyFull","insertUnorderedList","insertOrderedList","insertUpperRomanList","insertLowerRomanList","import","indent","outdent","createLink","unlink","insertImage","insertFile","viewHtml","foreColor","backColor","createTable","addColumnLeft","addColumnRight","addRowAbove","addRowBelow","deleteRow","deleteColumn","mergeCellsHorizontally","mergeCellsVertically","splitCellHorizontally","splitCellVertically","tableWizard","tableWizardInsert","tableAlignLeft","tableAlignCenter","tableAlignRight","cleanFormatting","copyFormat","applyFormat","cssClass","registerTool","toolName","tool","toolOptions","toLowerCase","Editor","defaultTools","registerFormat","formatName","formats","cacheComments","content","comments","index","replace","retrieveComments","messages","bold","italic","underline","strikethrough","insertHtml","fontName","fontNameInherit","fontSize","fontSizeInherit","formatBlock","formatting","style","emptyFolder","editAreaTitle","uploadFile","overflowAnchor","orderBy","orderBySize","orderByName","invalidFileType","deleteFile","overwriteFile","directoryNotFound","imageWebAddress","imageAltText","imageWidth","imageHeight","fileWebAddress","fileTitle","fileText","linkWebAddress","linkText","linkToolTip","linkOpenInNewWindow","dialogUpdate","dialogInsert","dialogOk","dialogCancel","createTableHint","tableTab","cellTab","accessibilityTab","caption","summary","width","height","units","cellSpacing","cellPadding","cellMargin","alignment","background","id","border","borderStyle","collapseBorders","wrapText","associateCellsWithHeaders","alignLeft","alignCenter","alignRight","alignLeftTop","alignCenterTop","alignRightTop","alignLeftMiddle","alignCenterMiddle","alignRightMiddle","alignLeftBottom","alignCenterBottom","alignRightBottom","alignRemove","columns","rows","selectAllCells","exportAs","print","headerRows","headerColumns","tableSummaryPlaceholder","associateNone","associateScope","associateIds","borderNone","supportedBrowser","ios","flatVersion","document","documentElement","contentEditable","toolGroups","basic","lists","indenting","formatPainter","links","tables","element","value","toolbarContainer","toolbarOptions","type","domElement","deserializedRoot","that","editorNS","editor","dom","Dom","tools","_registerHandler","closest","update","_wrapTextarea","wrapper","find","attr","addClass","popup","insertBefore","toolbar","Toolbar","bindTo","setTimeout","heightStyle","expectedHeight","parseInt","actualHeight","indexOf","isNaN","_resizable","_initializeContentElement","keyboard","Keyboard","BackspaceHandler","TypingHandler","SystemHandler","SelectAllHandler","clipboard","Clipboard","undoRedoStack","textarea","encoded","defaultValue","trim","Serializer","htmlToDom","deserialization","getAllComments","innerHTML","mousedown","_endTyping","mouseup","e","_mouseup","_initializeImmutables","resize","notify","setOptions","_initializePlaceholder","_togglePlaceholder","show","body","$body","placeholder","toggleClass","isTypingInProgress","endTyping","saveSelection","_selectionChange","_selectionStarted","draggableElement","resizableWidget","resizable","isResizable","isPlainObject","insertAfter","kendoResizable","start","currentTarget","initialSize","last","append","delta","y","initialDelta","newSize","min","max","Infinity","Math","resizeend","remove","getKendoResizable","draggable","ignore","_initializeElementResizing","ElementResizingFactory","current","create","_showElementResizeHandlesProxy","_showElementResizeHandles","bind","_destroyElementResizing","elementResizing","destroy","unbind","parentNode","showResizeHandles","_initializeColumnResizing","ColumnResizing","_destroyColumnResizing","columnResizing","_initializeRowResizing","RowResizing","_destroyRowResizing","rowResizing","w","h","editorWrap","editArea","appendTo","css","_createContentElement","stylesheets","iframe","wnd","doc","specifiedDomain","domain","domainScript","src","lang","hide","title","frameBorder","tabIndex","location","hostname","contentWindow","contentDocument","one","decorateFrom","getElementsByTagName","getAttribute","open","write","isRtl","map","href","join","close","_blur","old","val","_oldValue","encodedValue","_spellCorrect","beforeCorrection","falseTrigger","contextmenu","_spellCorrectTimeout","RestorePoint","getRange","input","mozilla","_finishUpdate","handler","eventNames","t","NS","_handlers","hasOwnProperty","applyEventMap","split","on","_deregisterHandlers","handlers","off","blurTrigger","mousedownTrigger","interval","createElement","setAttribute","appendChild","setInterval","clearInterval","_mousedown","execCommand","touch","keydown","_activeElement","focus","mouseover dragenter","htmlHeight","parentElement","target","nodeName","_cachedHeight","mouseout dragleave drop contextmenu","restoreHeight","range","left","container","offset","direction","next","nextChar","keyCode","BACKSPACE","DELETE","F10","preventPopupHide","preventDefault","LEFT","RIGHT","nodeType","nodeValue","setStart","collapse","selectRange","toolFromShortcut","keyPressCommand","test","exec","_runPostContentKeyCommands","clearTimeout","keypress","keyup","selectionCodes","TAB","PAGEUP","PAGEDOWN","END","HOME","UP","DOWN","INSERT","ctrlKey","altKey","shiftKey","_refreshInterval","click","createRange","selectNode","cut copy paste drop dragover","focusin","hasAttribute","focusout","toolbarContainerElement","active","get","contains","focused","removeClass","$head","head","immutables","Immutables","parents","stopPropagation","gecko","which","is","tagName","o","cmd","toolsFromShortcut","changesContent","refresh","_destroyResizings","custom","serialization","entities","semantic","scripts","pasteCleanup","all","keepNewLines","msAllFormatting","msConvertLists","msTags","none","span","dialogOptions","modal","animation","imageBrowser","fileBrowser","text","concat","_focusOutside","_destroyUploadWidget","dispose","msie","tempInput","_uploadWidget","state","textNodes","finder","RangeUtils","collapsed","startContainer","getFormat","isFormatted","html","currentHtml","domToXhtml","selectionRestorePoint","refreshTools","commonAncestorContainer","_focusBody","scrollTop","activeElement","scrollHeight","clientHeight","restoreSelection","toRange","encode","getSelection","SelectionUtils","selectionFromDocument","selection","removeAllRanges","addRange","rangeCount","getRangeAt","endContainer","startOffset","endOffset","_containsRange","isAncestorOrSelf","_deleteSavedRange","_range","selectedHtml","cloneContents","paste","InsertHtmlCommand","params","prevented","Error","toolById","async","change","managesUndoRedo","key","ctrl","plugin","initialize","unselectable","aria-label","commandArguments","noop","edge","PDFMixin","prototype","_drawPDF","drawing","drawDOM","pdf","saveAsPDF","progress","Deferred","promise","args","then","root","exportPDF","done","dataURI","saveAs","fileName","proxyURL","proxyTarget","forceProxy","resolve","fail","err","reject","jQuery","makeMap","items","len","obj","whitespace","emptyspace","rgb","bom","whitespaceOrBom","persistedScrollTop","cssAttributes","htmlRe","entityRe","entityTable","STYLE","FLOAT","CSSFLOAT","STYLEFLOAT","CLASS","KMARKER","empty","nonListBlockElements","blockElements","block","selfClosing","inlineElements","inline","fillAttrs","normalize","node","version","parent","firstChild","prev","nextSibling","34","38","39","60","62","160","161","162","163","164","165","166","167","168","169","170","171","172","173","174","175","176","177","178","179","180","181","182","183","184","185","186","187","188","189","190","191","192","193","194","195","196","197","198","199","200","201","202","203","204","205","206","207","208","209","210","211","212","213","214","215","216","217","218","219","220","221","222","223","224","225","226","227","228","229","230","231","232","233","234","235","236","237","238","239","240","241","242","243","244","245","246","247","248","249","250","251","252","253","254","255","402","913","914","915","916","917","918","919","920","921","922","923","924","925","926","927","928","929","931","932","933","934","935","936","937","945","946","947","948","949","950","951","952","953","954","955","956","957","958","959","960","961","962","963","964","965","966","967","968","969","977","978","982","8226","8230","8242","8243","8254","8260","8472","8465","8476","8482","8501","8592","8593","8594","8595","8596","8629","8656","8657","8658","8659","8660","8704","8706","8707","8709","8711","8712","8713","8715","8719","8721","8722","8727","8730","8733","8734","8736","8743","8744","8745","8746","8747","8756","8764","8773","8776","8800","8801","8804","8805","8834","8835","8836","8838","8839","8853","8855","8869","8901","8968","8969","8970","8971","9001","9002","9674","9824","9827","9829","9830","338","339","352","353","376","710","732","8194","8195","8201","8204","8205","8206","8207","8211","8212","8216","8217","8218","8220","8221","8222","8224","8225","8240","8249","8250","8364","findNodeIndex","skipText","previousSibling","isDataNode","data","isAncestorOf","findClosestAncestor","rootElem","iterator","createNodeIterator","NodeFilter","SHOW_COMMENT","FILTER_ACCEPT","curNode","nextNode","getNodeLength","childNodes","splitDataNode","temp","newNode","cloneNode","denormalizedText","deleteData","attrEquals","attributes","cssFloat","blockParentOrBody","parentOfType","ownerDocument","blockParents","nodes","blocks","windowFromDocument","defaultView","parentWindow","nodeTypes","ELEMENT_NODE","ATTRIBUTE_NODE","TEXT_NODE","CDATA_SECTION_NODE","ENTITY_REFERENCE_NODE","ENTITY_NODE","PROCESSING_INSTRUCTION_NODE","COMMENT_NODE","DOCUMENT_NODE","DOCUMENT_TYPE_NODE","DOCUMENT_FRAGMENT_NODE","NOTATION_NODE","toHex","color","matches","x","toString","encodableChars","c","charCode","charCodeAt","entity","isBom","stripBom","stripBomNode","removeChild","insignificant","className","_moz_dirty","_moz_editor_bogus_node","tableCell","significantNodes","grep","child","emptyTextNode","emptyNode","significantChildNodes","isWhitespace","lastTextNode","result","lastChild","isMarker","allWhitespaceContent","isEmptyspace","htmlIndentSpace","sibling","isPrevBlock","isNextBlock","el","isBlock","isSelfClosing","isEmpty","isInline","isBr","list","scrollContainer","compatMode","scrollingElement","scrollTo","toStart","elementTop","elementHeight","marker","windowHeight","innerHeight","top","offsetHeight","ceil","persistScrollTop","offsetParent","offsetTop","offsetLeft","restoreScrollTop","insertAt","newElement","position","referenceElement","removeChildren","removeTextSiblings","closestBy","condition","rootCondition","ofType","changeTag","skipAttributes","attribute","specified","cssText","editableParent","wrap","unwrap","createEmptyNode","removeAttribute","mergeAttributes","origin","traverseCss","each","unstyle","inlineStyle","getEffectiveBackground","backgroundStyle","innerText","classNames","classes","commonAncestor","ancestors","first","j","count","arguments","paths","minPathLength","output","reverse","closestSplittableParent","editableParents","editableAncestor","apply","closestEditable","types","editable","closestEditableOfType","filter","invert","filterFn","filterBy","match","ensureTrailingBreaks","elements","ensureTrailingBreak","removeTrailingBreak","br","reMapTableColumns","table","colAttr","_mapColIndices","clearTableMappings","removeAttr","rowIndex","cells","colIndex","cellIndex","cell","registeredColumns","rowSpan","_mapColspan","colSpan","ci","ri","associateWithIds","theadRows","numberOfTheadRows","tableRows","numberOfTableRows","theadMatrix","tbodyMatrix","tHead","_getNumberOfHeaderRows","_generateIdsForColumns","_generateIdsForRows","_assignIds","row","col","colspan","rowspan","k","l","timestamp","Date","getTime","headers","pushHeaderId","forEach","_onlyUnique","_getNumberOfColumns","currentIndex","numberOfCols","_getNumberOfHeaderColumns","numberOfHeaderRows","thead","number","self","supportsLeadingWhitespace","isFunction","TD","fontSizeMappings","quoteRe","brRe","pixelRe","emptyPRe","cssDeclaration","sizzleAttr","scriptAttr","onerrorRe","bomSpan","div","toEditableHtml","_toEditableImmutables","immutable","prependTo","_fillEmptyElements","p","children","_removeSystemElements","_resetOrderedLists","ol","originalStart","ols","_preventScriptExecution","attributesToRemove","deserialize","semanticFilter","mapStart","tag","cssProperties","property","properties","lastIndex","styleAttr","specifiedAttributes","$node","htmlEncode","skip","skipEncoding","childNode","isEmptyBomNode","mapper","previous","jqNode","serialize","hasClass","tagMap","end","textOnly","childrenCount","textChild","runCustom","k:script","font","size","semanticAttributes","textDecoration","fontFamily","strong","em","b","u","styleObj","item","splice","face","script","DropDownList","SelectBox","_initSelectOverlay","autoSize","listWidth","whiteSpace","_listWidth","scrollbar","select","selectBox","view","dataSource","decorate","compareBoundaries","startAncestor","endAncestor","fixIvalidRange","isInvalidRange","ex","updateRangeProperties","textRangeContainer","textRange","duplicate","right","adoptContainer","cursorNode","textOffset","isData","anchorNode","anchorParent","cursor","createTextRange","moveToElementText","setEndPoint","adoptEndPoint","comparison","appended","compareEndPoints","RangeIterator","W3CSelection","RangeEnumerator","ImmutablesRangeIterator","ImmutablesRangeEnumerator","Marker","boundary","selectionFromWindow","selectionFromRange","rangeDocument","documentFromRange","W3CRange","setEnd","setStartBefore","setStartAfter","setEndBefore","setEndAfter","selectNodeContents","deleteContents","cloneRange","deleteSubtree","hasPartialSubtree","getSubtreeIterator","cloneSubtree","frag","createDocumentFragment","extractContents","extractSubtree","originalRange","insertNode","startNodeName","endNodeName","fromNode","_current","_next","_end","hasNext","traverse","callback","nodeIndex","inStartContainer","inEndContainer","getSubRange","subRange","movedStart","movedEnd","enumerate","visit","rootNode","getEditable","nodeToPath","serializedImmutables","removeImmutables","restoreImmutables","lastType","restoreHtml","path","toRangePoint","denormalizedOffset","caret","addCaret","removeCaret","containerIndex","textNode","add","expand","rangeBoundary","isExpandable","_removeDeadMarkers","createTextNode","_normalizedIndex","pointer","shouldNormalizeStart","shouldNormalizeEnd","shouldNormalize","isBomSelected","collapsedToStart","startParent","endParent","startIndex","endIndex","charAt","editableTextNodes","immutableParent","image","stringify","partition","contents","partitionRange","mapAll","mapped","getAll","predicate","selector","getMarkers","isStartOf","isEndOf","wrapSelectedElements","isEnd","startEditable","endEditable","beforeCaret","afterCaret","search","substring","complexBlocks","toolsToBeUpdated","IMMUTABALE","IMMUTABALE_MARKER_SELECTOR","IMMUTABLE_SELECTOR","expandImmutablesIn","startImmutableParent","endImmutableParent","immutablesContext","editableNodes","randomId","chars","round","random","serialized","replaceWith","deletingKey","updateToolOptions","_initOptions","_toHtml","serializationType","isDeleting","shouldCancelEvent","_cancelDeleting","_cancelTyping","typingInProgress","isTypingKey","cancelDeleting","closestSelectionLi","closestImmutableLi","backspace","del","nextImmutable","_removeImmutable","forwards","commonContainer","_nextNode","startRestorePoint","finishUpdate","endRestorePoint","GenericCommand","Command","restorePoint","formatter","lockRange","releaseRange","point","createDialog","kendoWindow","toggle","outerWidth","_outerWidth","outerHeight","_outerHeight","OVERFLOWANCHOR","focusable","toolNamesByCssClass","k-i-sup-script","k-i-sub-script","k-i-align-left","k-i-align-center","k-i-align-right","k-i-align-justify","k-i-list-unordered","k-i-list-ordered","k-i-list-roman-upper","k-i-list-roman-lower","k-i-import","k-i-indent-increase","k-i-indent-decrease","k-i-link-horizontal","k-i-unlink-horizontal","k-i-image","k-i-file-add","k-i-html","k-i-foreground-color","k-i-paint","k-i-table-insert","k-i-table-column-insert-left","k-i-table-column-insert-right","k-i-table-row-insert-above","k-i-table-row-insert-below","k-i-table-row-delete","k-i-table-column-delete","k-i-table-properties","k-i-table-wizard","k-i-table-position-left","k-i-table-position-center","k-i-table-position-right","k-i-clear-css","k-i-cells-merge-horizontally","k-i-cells-merge-vertically","k-i-cell-split-horizontally","k-i-cell-split-vertically","k-i-copy-format","k-i-apply-format","OverflowAnchorTool","overflowPopup","_initPopup","_resizeHandler","onResize","groups","tablesInsert","tablesAddDelete","tablesMerge","tablesPosition","advanced","fonts","colors","overflowFlaseTools","prepend","dragHandle","effects","minHeight","visible","autoFocus","actions","dragend","_moved","_toggleOverflowStyles","_initOverflowPopup","popupTemplate","kendoPopup","anchor","copyAnchorStyles","activate","focusOverflowPopup","toolGroupFor","isCustomTool","_editor","expandTools","render","combobox","dropDown","isOpened","stopImmediatePropagation","_attachEvents","inheritText","_toolName","description","tooltip","_appendShortcutSequence","editorElement","editorOffset","editorOptions","_getWindowWidth","_overlaps","box","toolbarWrapper","toolbarWrapperOffset","toolbarWrapperLeft","toolbarWrapperTop","boxOffset","boxOffsetLeft","boxOffsetTop","TABINDEX","localizedText","res","shift","alt","_nativeTools","currentTool","nativeTools","endGroup","group","groupPosition","startGroup","toolElement","groupName","newGroupName","toolConfig","not","updateGroups","angular","unbindResize","popupElement","attachToolsEvents","buttons","enabledButtons","disabledButtons","dropdown","colorpicker","editorTools","move","constrain","focusableItems","focusElement","currentContainer","ESC","ENTER","SPACEBAR","_executeToolCommand","button","toolname","toCamelCase","lastIndexOf","_immutablesContext","_updateImmutablesState","display","uiData","widget","groupUi","uiElement","trackImmutables","_resize","containerWidth","toolbarWindow","_refreshWidths","_shrink","_stretch","idx","visibleGroups","_groupsWidth","_visibleGroups","eq","_hideGroup","hiddenGroups","_hiddenGroups","_showGroup","sort","a","detach","groupWidth","ViewHtmlCommand","dialog","center","FormatCommand","FormatTool","MOUSEDOWN_NS","KEYDOWN_NS","InlineFormatFinder","numberOfSiblings","referenceNode","textNodesCount","elementNodesCount","markerCount","findSuitable","sourceNode","findFormat","InlineFormatter","values","formatNode","formatNodes","consolidate","outerMostInline","pop","GreedyInlineFormatFinder","greedyProperty","fontAttr","getInlineCssValue","attributeValue","pair","cssIndex","propertyAndValue","getFormatInner","parentsUntil","addBack","toArray","GreedyInlineFormatter","action","InlineFormatTool","DelayedExecutionTool","FontTool","cssAttr","domAttr","initOptions","dataTextField","dataValueField","highlightFirst","newRange","ColorTool","palette","_widget","ColorPicker","closeOnSelect","views","preview","toolIcon","storedRange","_inputFocused","picker","sender","_popup","_value","toCssRgba","fontWeight","fontStyle","lastIndexOfRegExp","str","indexOfRegExp","r","HTTP_PROTOCOL","protocolRegExp","endLinkCharsRegExp","LinkFormatFinder","LinkFormatter","markers","ref","UnlinkCommand","LinkCommand","url","_dialogTemplate","img","_initialText","_close","_apply","_keydown","linkUrl","_dialog","textInput","AutoLinkCommand","linkMarker","linkRange","detectedLink","detectLink","_ensureWebProtocol","traverser","detection","startNode","LeftDomTextTraverser","cancelAtNode","DomTextLinkDetection","hasProtocol","_hasProtocolPrefix","_prefixWithWebProtocol","UnlinkTool","DomPos","puntuationOptions","puntuationTraverser","_detectEnd","blank","clone","_detectStart","_isLinkDetected","extendOptions","RightDomTextTraverser","_skipStartPuntuation","ii","DomTextTraverser","cancel","_traverse","edgeNode","subText","splitIndex","listElements","BlockFormatFinder","candidate","suitable","_resolveListsItems","until","ImmutablesNS","BlockFormatter","ancestor","images","imageFormat","imageAttributes","nonImages","_handleImmutables","applyFormatting","immutableFormat","namedFormat","GreedyBlockFormatter","immutalbeParent","blockFormatter","formatTag","ListFormatter","BlockFormatTool","textAlign","float","marginLeft","marginRight","listStylePosition","ListFormatFinder","altAttr","matchesType","isList","unwrapTag","li","isImmutable","containsAny","_parentLists","merge","breakable","findSuitableNode","applyOnSection","section","pushAncestor","listStyleType","addLastSection","lastSection","sections","lastNodes","ul","fragment","ListCommand","ListTool","unwrapListItem","listFormatter","FormattingTool","toFormattingItem","dot","context","kendoSelectBox","dataItem","toJSON","dataBound","getFormattingValue","n","_ancestor","field","operator","CleanFormatCommand","tagsToClean","clean","KEDITORIMAGEURL","KEDITORIMAGETITLE","KEDITORIMAGEWIDTH","KEDITORIMAGEHEIGHT","ImageCommand","removeIEAttributes","onload","onerror","showBrowser","applied","keyDown","dialogHeight","isIE","ImageBrowser","transport","read","_imageBrowser","ev","selected","loadingOverlay","ImportCommand","_initializeUploadWidget","importOptions","upload","kendoUpload","success","_onUploadSuccess","_onUploadProgress","_onUploadSelect","error","_onUploadError","complete","_onUploadComplete","showFileList","multiple","saveUrl","autoUpload","saveField","validation","allowedExtensions","maxFileSize","getKendoUpload","_trigger","clearAllFiles","_removeLoadingOverlay","response","files","validationErrors","_initLoadingOverlay","eventType","uploadEvent","_iframeWrapper","_container","genericCommand","postProcess","InsertHtmlTool","_selectBox","selectbox","initialValue","defaultExportAsItems","ExportAsCommand","exportType","postToProxy","generateForm","submit","exportAsOptions","form","method","valueInput","exportTypeInput","fileNameInput","ExportAsTool","changeHandler","displayName","unshift","valueTemplate","_exec","indentDirection","IndentFormatter","targets","parentList","siblingList","nestedList","targetIndex","mapImmutables","getListTypeAttr","styleType","targetNode","listParent","siblings","nextAll","IndentCommand","indentFormatter","OutdentCommand","OutdentTool","isOutdentable","listParentsCount","suitableNodes","ParagraphCommand","_insertMarker","_moveFocus","focusNode","shouldTrim","startInBlock","endInBlock","_blankAfter","paragraph","heading","tableNode","rng","parentChildrenLength","emptyParagraphContent","_insertParagraphAfter","NewLineCommand","filler","oldIE","kbrParent","KEDITORFILEURL","KEDITORFILETEXT","KEDITORFILETITLE","FileCommand","file","FileBrowser","_fileBrowser","ACTIVESTATE","SELECTEDSTATE","SCOPE","ROW","COL","ROWGROUP","COLGROUP","COLSPAN","ROWSPAN","TABLE","THEAD","TBODY","TR","TH","getTouches","columnTemplate","tableFormatFinder","TableCommand","skipCleaners","_tableHtml","columnHtml","rowHeight","Array","insertedTable","PopupTool","twTool","_open","_activate","_toggle","TableWizardTool","TableWizardCommand","insertNewTable","InsertTableTool","cols","tableFromLocation","floor","clientY","cellHeight","clientX","scrollLeft","cellWidth","firstCell","lastCell","getOffset","offsetWidth","autoApplyNS","_setTableSize","_valid","status","selectedRows","selectedColumns","changed","tableSize","TableModificationCommand","_clearColIndexAttr","_findRowSpanCell","_resetElementResizing","_findNextTdInRow","td","lastTd","prop","_adjustColgroups","colgroup","colElements","colgroupElements","numberOfCells","_associateHeaderIds","InsertRowCommand","cellCount","newRow","rowSpanIndex","createdCell","_appendCell","newCell","InsertColumnCommand","columnIndex","_processForColSpan","_resizeCells","selectedCell","colSpanEffect","parsedWidth","unit","calculatedWidth","parseFloat","DeleteRowCommand","rowParent","_focusElement","_handleRowSpanCells","adjacentCell","nextRow","firstRow","before","_reduceRowSpan","rowSpanValue","DeleteColumnCommand","columnCount","_handleColSpanCells","after","_reduceColSpan","colSpanValue","MergeCellsHorizontallyCommand","nextTd","_getColspan","MergeCellsVerticallyCommand","tr","targetRow","bottomTd","_getRowspan","SplitCellCommand","emptyTd","_splitCellHorizontally","_splitCellVertically","_getRowspanValue","_getColspanValue","tdToAdd","colSpanResult","rowSpanResult","TableModificationTool","commandsMap","insert","delete","column","TableFormatCommand","_showResizeHandles","TableFormatTool","isTable","align","cleaners","ScriptCleaner","TabCleaner","MSWordFormatCleaner","WebkitFormatCleaner","HtmlTagsCleaner","HtmlAttrCleaner","HtmlContentCleaner","CustomCleaner","htmlToFragment","_startModification","_inProgress","_endModification","modificationInfo","_contentModification","_removeBomNodes","_onBeforeCopy","oncopy","oncut","_fileToDataURL","blob","deferred","reader","FileReader","File","getAsFile","readAsDataURL","_triggerPaste","_handleImagePaste","clipboardData","originalEvent","_insertImages","when","results","onpaste","clipboardRange","clipboardNode","_decoreateClipboardNode","webkit","_moveToCaretPosition","containers","ondragover","ondrop","dataTransfer","borderWidth","overflow","margin","padding","fontVariant","lineSpacing","lineHeight","nodeOffset","caretOffset","_caretOffset","translateX","translateY","translate","-webkit-transform","transform","rangeChanged","isStartTextNode","prevLength","bomNode","splittableParent","splittable","fragmentsHtml","rangeEnd","focusedTable","siblingNodes","lastSiblingIndex","lastSibling","applicable","elm","Cleaner","replacements","customReplacements","replacement","junkReplacements","convertFontMatch","$0","$1","closing","faceRe","family","stripEmptyAnchors","listType","listData","startingSymbol","matchSymbol","symbol","isNumber","trimStartText","_guessUnorderedListStyle","_guessOrderedListStyle","_convertToLi","_checkForBullet","_getHtmlNoBullet","bulletRgx","extractListLevels","msoListRegExp","level","_createList","rootMargin","rootIndex","lastRootLi","isLastRootLi","rootList","listIndex","levelType","blockChildren","lastMargin","levels","acceptedNameTags","isParentTable","removeAttributes","removeAttributeNode","createColGroup","convertHeaders","boldedCells","removeParagraphs","paragraphs","removeDefaultColors","spans","removeTextNodes","trs","currentNode","longestRow","titles","removeFormatting","filters","DomCleaner","cleanDom","collectTags","collectAttr","TextContainer","HtmlTextLines","separators","line","lines","inlineBlockText","resetLine","appendText","textContainer","appendInlineBlockText","flashInlineBlockText","endLine","il","il1","jl","jl1","DomEnumerator","preventDown","hasText","enumerator","buildText","getDefaultSeparators","htmlLines","tbody","cleaner","tdCleaner","cellText","getSibling","PREVIOUS_SIBLING","tableCells","tableCellsWrappers","tableElements","inTable","RemoveTableContent","cellsTypes","startCell","endCell","_removeContent","getNext","removeTableContent","backspaceHandler","evt","Event","isDefaultPrevented","deleteSelection","startTyping","_removeBomSpan","textContent","_addCaret","chrome","_restoreCaret","_handleDelete","caretPlaceholder","_merge","_cleanBomBefore","_handleBackspace","startAtLi","liIndex","startAtNonFirstLi","rangeStartNode","previousNode","isEndOfLink","_handleSelection","parentElementOrNode","_surroundFullyContent","_surroundFullySelectedAnchor","toLocaleLowerCase","_join","startImmutable","endImmutable","_moveMarker","_root","dest","_mergeWithTextNode","appendedNode","_isCaret","systemCommandIsInProgress","createUndoCommand","isModifierKey","isSystem","_toSelectableImmutables","_selectEditorBody","isCharacter","String","fromCharCode","modifier","_getShortcutModifier","navigator","platform","mac","toUpperCase","metaKey","matchesKey","found","matchKey","toolKey","isArray","onEndTyping","stopTyping","force","timeout","what","ExportPdfCommand","PrintCommand","CopyFormatCommand","inlineStyles","blockStyles","collectStyles","rangeNodes","populateStyles","destination","styleValue","styleKey","attributeKey","styles","nodeStyles","ApplyFormatCommand","removeEmptyElementsFromRange","cleanInlineParents","applyBlockStyles","applyInlineStyles","isEmptyInline","emptyElements","blockParent","outerWrapper","previousNodes","nextNodes","prevWrapper","nextWrapper","listItems","currentStyle","createdNode","topNode","CopyFormatTool","ApplyFormatTool","lowerBound","upperBound","getScrollBarWidth","calculatePercentageRatio","total","inPercentages","STRING","REGEX_NUMBER_IN_PERCENTAGES","inPixels","REGEX_NUMBER_IN_PIXELS","toPercentages","PERCENTAGE","toPixels","PIXEL","global","math","ResizingUtils","KEY_DOWN","MOUSE_DOWN","MOUSE_ENTER","MOUSE_LEAVE","MOUSE_MOVE","MOUSE_UP","COMMA","DOT","LAST_CHILD","TableElementResizing","_attachEventHandlers","eventNamespace","rootElement","_destroyResizeHandle","rtl","handle","dataAttribute","detectElementBorderHovering","resizingInProgress","resizing","handleOptions","tableElement","resizeHandle","elementBorderHovered","showResizeHandle","_initResizeHandle","setResizeHandlePosition","setResizeHandleDimensions","setResizeHandleDataAttributes","_attachResizeHandleEventHandlers","_initResizable","_hideResizeMarker","markerClass","_destroyResizable","Resizable","onResizeStart","onResizeEnd","_disableKeyboard","setResizeHandleDragPosition","_enableKeyboard","_forceResizing","userEvents","ResizingFactory","resizingName","_destroyResizing","_initResizing","parentTable","resizingType","abs","RESIZE_HANDLE_CLASS","RESIZE_MARKER_CLASS","BODY","COLATTR","WIDTH","handleWidth","borderOffset","mousePosition","tableInnerElement","tBodies","scrollTopOffset","scrollLeftOffset","columnWidthOffset","scrollBarWidth","columnOffsetLeft","innerElementOffsetTop","tableHead","tableBody","fullHeight","handleOffset","columnWidth","columnLeftOffset","adjacentColumnWidth","resizeHandleOffsetLeft","newWidth","initialAdjacentColumnWidth","initialColumnWidth","nextColumn","rtlModifier","initialDeltaX","_setTableComputedWidth","_setColumnsComputedWidth","_resizeColumn","_resizeTopAndBottomColumns","_resizeAdjacentColumns","innerElementWidth","currentColumnsWidths","topAndBottomColumns","innerTableElement","deltaWidth","adjacentColumns","_resizeAdjacentColumn","adjacentColumn","RESIZE_HANDLE_MARKER_WRAPPER_CLASS","HEIGHT","handleHeight","rowOffsetLeft","rowOffsetTop","topInnerTableElement","$row","tableTopOffset","resizeHandleOffsetTop","currentRowHeight","initialTableHeight","tableHeadHeight","tableBodyHeight","initialStyleHeight","newRowHeight","_setRowsHeightInPixels","_setTableHeight","_setRowsHeightInPercentages","currentRowsHeights","newHeight","HandlePositioningStrategy","EastPositioningStrategy","NorthPositioningStrategy","NortheastPositioningStrategy","NorthwestPositioningStrategy","SouthPositioningStrategy","SoutheastPositioningStrategy","SouthwestPositioningStrategy","WestPositioningStrategy","DraggingStrategyFactory","HandleDraggingStrategy","HorizontalDraggingStrategy","EastDraggingStrategy","WestDraggingStrategy","VerticalDraggingStrategy","NorthDraggingStrategy","SouthDraggingStrategy","HorizontalAndVerticalDraggingStrategy","NorthEastDraggingStrategy","NorthWestDraggingStrategy","SouthEastDraggingStrategy","SouthWestDraggingStrategy","Draggable","DRAG_START","DRAG","DRAG_END","HALF_INSIDE","MOUSE_OVER","MOUSE_OUT","EAST","NORTH","NORTHEAST","NORTHWEST","SOUTH","SOUTHEAST","SOUTHWEST","WEST","ElementResizeHandle","_addStyles","_initDraggable","_initPositioningStrategy","_initDraggingStrategy","resizableElement","_destroyDraggable","_setPosition","_positioningStrategy","getPosition","_onMouseOver","_onMouseOut","_draggable","dragstart","_onDragStart","drag","_onDrag","_onDragEnd","_draggingStrategy","adjustDragDelta","deltaX","deltaY","initialDeltaY","StrategyFactory","_items","register","itemsLength","PositioningStrategyFactory","calculatePosition","handleOffsetPosition","applyHandleOffset","scrollOffsetPosition","applyScrollOffset","rootLeft","adjustment","deltas","xAxisAdjustment","yAxisAdjustment","isUndefined","RESIZE_HANDLE_WRAPPER_CLASS","TABLE_CLASS","ELEMENT_RESIZING_CLASS","DROP","COLUMN","IMG","ELEMENT_TYPES","ElementResizing","handles","_destroyResizeHandles","appendHandlesTo","minWidth","_resizeWidth","_resizeHeight","_getMaxDimensionValue","dimension","dimensionLowercase","parentDimension","parentScrollOffset","_initResizeHandles","_bindToResizeHandlesEvents","_onResizeHandleDragStart","_initialElementHeight","_initialElementWidth","_onResizeHandleDrag","_onResizeHandleDragEnd","TableResizing","_onResizeHandleMouseOver","_onResizeHandleMouseOut","_hasRowsInPixels","ratioValue","ratioTotalValue","constrainedWidth","styleWidth","currentWidth","parentWidth","maxWidth","_setColumnsWidth","constrainedHeight","styleHeight","currentHeight","parentHeight","maxHeight","hasRowsInPixels","isWidthInPercentages","parentColumn","columnsLength","ImageResizing","_onResizeHandleDragVertical","_onResizeHandleDragHorizontal","_onResizeHandleDragLocked","_getDeltas","initialWidth","initialHeight","Number","MAX_SAFE_INTEGER","factory","hasImg","eventTarget","eventCurrentTarget","isResizeHandleOrChild","tableResizing","cellsFormatFinder","reUnit","COL_INDEX","HEADERS","selectedTable","_sourceTable","_selectedTable","selectedCells","_selectedTableCells","_selectedCells","closeCallback","onDialogClose","parseTable","TableWizardDialog","insertTable","createNewTable","updateTable","_ensureFocusableAfterTable","lastSelectedRow","cellProp","tableProp","tableProperties","_lastInCollection","_deleteTableRows","_addRows","_updateColumns","_updateTableProperties","cellProperties","_updateCellProperties","_updateCaption","_updateHeadersWithThead","_updateHeadersNoThead","_updateHeaderAssociates","_isHeadingRow","_isHeadingCell","cellsWithHeadersAssociated","associatedCells","headingIds","checkHeader","header","headersArray","headersAttr","some","_insertCells","insertCell","createTHead","_createTableRows","createTBody","cellsWithHeaders","_addScopes","initialIndex","cellPropToAll","insertRow","cellsLength","newRowsCount","firstRowLastCell","numberOfColumns","lastCurrentCell","rowColumns","deleteCell","_getStylesData","captionContent","deleteCaption","createCaption","_getAlignmentData","captionAlignment","verticalAlign","_swapToHeaderCells","deleteTHead","_removeScopes","_removeAssociates","headerCols","tds","swapCell","widthUnit","heightUnit","backgroundColor","bgColor","borderColor","borderCollapse","tStyle","captionClone","tableAlignment","numberOfHeaderColumns","tableJson","_getAlignment","_getUnit","parseTableRows","rowData","cellData","parseCell","cStyle","horizontalOnly","vAlign","hAlign","collection","TableWizardEditTool","numericTextBoxSettings","borderStyles","DEFAULT_NUMBER_OF_COLS_AND_ROWS","tableAlignmentDropDownSettings","cellAlignmentDropDownSettings","accessibilityAlignmentDropDownSettings","dialogTemplate","okHandler","collectDialogValues","tableData","closeHandler","_initTabStripComponent","_initTableViewComponents","_initCellViewComponents","_initAccessibilityViewComponents","components","tabStrip","kendoTabStrip","_collectTableViewValues","_collectCellViewValues","_collectAccessibilityViewValues","tableView","checked","cellView","accessibilityView","_addUnit","onColumnsNumberChange","onRowsNumberChange","headerColumnsNumeric","currentNumberOfColumnsHeaders","headerRowsNumeric","currentNumberOfRowHeaders","numberOfRows","_initNumericTextbox","_initDropDownList","_initTableAlignmentDropDown","_initColorPicker","_initInput","_initBorderStyleDropDown","_initCheckbox","_initCellAlignmentDropDown","_initAccessibilityAlignmentDropDown","_initAssociationDropDown","valuePrimitive","storage","settings","component","kendoNumericTextBox","kendoDropDownList","_setComponentValue","optionLabel","_initAlignmentDropDown","kendoColorPicker","clearButton","_destroyComponents"],"mappings":"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I,KACJC,IAAK,OACLC,IAAK,QACLC,IAAK,OACLC,IAAK,QACLC,IAAK,SACLC,IAAK,MACLC,IAAK,SACLC,IAAK,OACLC,IAAK,MACLC,IAAK,OACLC,IAAK,OACLC,IAAK,QACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,OACLC,IAAK,MACLC,IAAK,SACLC,IAAK,OACLC,IAAK,OACLC,IAAK,QACLC,IAAK,QACLC,IAAK,OACLC,IAAK,SACLC,IAAK,QACLC,IAAK,OACLC,IAAK,OACLC,IAAK,QACLC,IAAK,SACLC,IAAK,SACLC,IAAK,SACLC,IAAK,SACLC,IAAK,SACLC,IAAK,SACLC,IAAK,QACLC,IAAK,SACLC,IAAK,OACLC,IAAK,QACLC,IAAK,QACLC,IAAK,SACLC,IAAK,SACLC,IAAK,SACLC,IAAK,QACLC,IAAK,OACLC,IAAK,SACLC,IAAK,SACLC,IAAK,QACLC,IAAK,OACLC,IAAK,MACLC,IAAK,SACLC,IAAK,SACLC,IAAK,SACLC,IAAK,QACLC,IAAK,SACLC,IAAK,OACLC,IAAK,QACLC,IAAK,SACLC,IAAK,SACLC,IAAK,SACLC,IAAK,QACLC,IAAK,OACLC,IAAK,SACLC,IAAK,QACLC,IAAK,QACLC,IAAK,SACLC,IAAK,SACLC,IAAK,QACLC,IAAK,SACLC,IAAK,OACLC,IAAK,QACLC,IAAK,QACLC,IAAK,SACLC,IAAK,SACLC,IAAK,SACLC,IAAK,QACLC,IAAK,OACLC,IAAK,SACLC,IAAK,SACLC,IAAK,QACLC,IAAK,OACLC,IAAK,MACLC,IAAK,SACLC,IAAK,SACLC,IAAK,SACLC,IAAK,QACLC,IAAK,SACLC,IAAK,OACLC,IAAK,SACLC,IAAK,SACLC,IAAK,SACLC,IAAK,SACLC,IAAK,QACLC,IAAK,OACLC,IAAK,SACLC,IAAK,QACLC,IAAK,OACLC,IAAK,OACLC,IAAK,QACLC,IAAK,OACLC,IAAK,QACLC,IAAK,QACLC,IAAK,UACLC,IAAK,OACLC,IAAK,MACLC,IAAK,QACLC,IAAK,OACLC,IAAK,QACLC,IAAK,SACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,UACLC,IAAK,KACLC,IAAK,MACLC,IAAK,QACLC,IAAK,MACLC,IAAK,UACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,QACLC,IAAK,QACLC,IAAK,OACLC,IAAK,QACLC,IAAK,QACLC,IAAK,UACLC,IAAK,OACLC,IAAK,MACLC,IAAK,QACLC,IAAK,OACLC,IAAK,QACLC,IAAK,SACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,UACLC,IAAK,KACLC,IAAK,MACLC,IAAK,SACLC,IAAK,QACLC,IAAK,MACLC,IAAK,UACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,QACLC,IAAK,WACLC,IAAK,QACLC,IAAK,MACLC,KAAM,OACNC,KAAM,SACNC,KAAM,QACNC,KAAM,QACNC,KAAM,QACNC,KAAM,QACNC,KAAM,SACNC,KAAM,QACNC,KAAM,OACNC,KAAM,QACNC,KAAM,UACNC,KAAM,OACNC,KAAM,OACNC,KAAM,OACNC,KAAM,OACNC,KAAM,OACNC,KAAM,QACNC,KAAM,OACNC,KAAM,OACNC,KAAM,OACNC,KAAM,OACNC,KAAM,OACNC,KAAM,SACNC,KAAM,OACNC,KAAM,QACNC,KAAM,QACNC,KAAM,QACNC,KAAM,OACNC,KAAM,QACNC,KAAM,KACNC,KAAM,OACNC,KAAM,MACNC,KAAM,QACNC,KAAM,SACNC,KAAM,QACNC,KAAM,OACNC,KAAM,QACNC,KAAM,MACNC,KAAM,MACNC,KAAM,KACNC,KAAM,MACNC,KAAM,MACNC,KAAM,MACNC,KAAM,SACNC,KAAM,MACNC,KAAM,OACNC,KAAM,QACNC,KAAM,KACNC,KAAM,QACNC,KAAM,KACNC,KAAM,KACNC,KAAM,MACNC,KAAM,MACNC,KAAM,OACNC,KAAM,OACNC,KAAM,OACNC,KAAM,QACNC,KAAM,SACNC,KAAM,OACNC,KAAM,OACNC,KAAM,QACNC,KAAM,QACNC,KAAM,SACNC,KAAM,SACNC,KAAM,OACNC,KAAM,OACNC,KAAM,MACNC,KAAM,SACNC,KAAM,QACNC,KAAM,SACNC,KAAM,QACNC,IAAK,QACLC,IAAK,QACLC,IAAK,SACLC,IAAK,SACLC,IAAK,OACLC,IAAK,OACLC,IAAK,QACLC,KAAM,OACNC,KAAM,OACNC,KAAM,SACNC,KAAM,OACNC,KAAM,MACNC,KAAM,MACNC,KAAM,MACNC,KAAM,QACNC,KAAM,QACNC,KAAM,QACNC,KAAM,QACNC,KAAM,QACNC,KAAM,QACNC,KAAM,QACNC,KAAM,QACNC,KAAM,SACNC,KAAM,SACNC,KAAM,SACNC,KAAM,SACNC,KAAM,SACNC,KAAM,QAEVnpB,GACA2Y,MAAOA,EACPG,OAAQA,EACRsQ,cAAe,SAAUnQ,EAAMoQ,GAC3B,GAAI9zB,GAAI,CACR,KAAK0jB,EACD,QAEJ,QAAa,CAET,GADAA,EAAOA,EAAKqQ,iBACPrQ,EACD,KAEEoQ,IAA6B,GAAjBpQ,EAAKjM,UACnBzX,IAGR,MAAOA,IAEXg0B,WAAY,SAAUtQ,GAClB,MAAOA,IAA2B,OAAnBA,EAAKhM,WAAoC,OAAdgM,EAAKuQ,MAEnDC,aAAc,SAAUtQ,EAAQF,GAC5B,IACI,OAAQjZ,EAAIupB,WAAWpQ,KAAYlmB,EAAEmc,SAAS+J,EAAQnZ,EAAIupB,WAAWtQ,GAAQA,EAAK9S,WAAa8S,IAASA,EAAK9S,YAAcgT,GAC7H,MAAOtW,GACL,OAAO,IAGfsR,iBAAkB,SAAUmC,EAAM2C,GAC9B,MAAOjZ,GAAIypB,aAAanT,EAAM2C,IAAS3C,GAAQ2C,GAEnDyQ,oBAAqB,SAAUpT,EAAM2C,GACjC,GAAIjZ,EAAIypB,aAAanT,EAAM2C,GACvB,KAAOA,GAAQA,EAAK9S,YAAcmQ,GAC9B2C,EAAOA,EAAK9S,UAGpB,OAAO8S,IAEXzW,eAAgB,SAAUmnB,GAMtB,IANY,GACR3wB,MACA4wB,EAAWjrB,SAASkrB,mBAAmBF,EAAUG,WAAWC,aAAc,WAC1E,MAAOD,YAAWE,gBACnB,GACCC,EAAUL,EAASM,WAChBD,GACHjxB,EAAShH,KAAKi4B,EAAQhd,WACtBgd,EAAUL,EAASM,UAEvB,OAAOlxB,IAEXmxB,cAAe,SAAUlR,GACrB,MAAOjZ,GAAIupB,WAAWtQ,GAAQA,EAAKvmB,OAASumB,EAAKmR,WAAW13B,QAEhE23B,cAAe,SAAUpR,EAAM7M,GAK3B,IALW,GAIPke,GAHAC,EAAUtR,EAAKuR,WAAU,GACzBC,EAAmB,GACnBb,EAAW3Q,EAAKK,YAEbsQ,GAAiC,GAArBA,EAAS5c,UAAiB4c,EAAS3c,WAClDwd,GAAoBb,EAAS3c,UAC7Bqd,EAAOV,EACPA,EAAWA,EAAStQ,YACpBtZ,EAAIoF,OAAOklB,EAEfrR,GAAKyR,WAAWte,EAAQ6M,EAAKvmB,QAC7B63B,EAAQG,WAAW,EAAGte,GACtBme,EAAQtd,WAAawd,EACrBzqB,EAAIoE,YAAYmmB,EAAStR,IAE7B0R,WAAY,SAAU1R,EAAM2R,GAAhB,GACC3V,GACD3V,CADR,KAAS2V,IAAO2V,GAKZ,GAJItrB,EAAQ2Z,EAAKhE,GACbA,GAAOkD,IACP7Y,EAAQ2Z,EAAK5nB,EAAMsC,QAAQk3B,SAAWzS,EAAWC,IAEjC,gBAAT/Y,IACP,IAAKU,EAAI2qB,WAAWrrB,EAAOsrB,EAAW3V,IAClC,OAAO,MAER,IAAI3V,GAASsrB,EAAW3V,GAC3B,OAAO,CAGf,QAAO,GAEX6V,kBAAmB,SAAU7R,GACzB,MAAOjZ,GAAI+qB,aAAa9R,EAAMP,IAAkBO,EAAK+R,cAAc1nB,MAEvE2nB,aAAc,SAAUC,GAAV,GACO31B,GAAG+hB,EAEZqB,EAFJwS,IACJ,KAAK51B,EAAI,EAAG+hB,EAAM4T,EAAMx4B,OAAQ6C,EAAI+hB,EAAK/hB,IACjCojB,EAAQ3Y,EAAI+qB,aAAaG,EAAM31B,GAAIyK,EAAI0Y,eACvCC,GAAS1lB,EAAEuC,QAAQmjB,EAAOwS,GAAU,GACpCA,EAAOn5B,KAAK2mB,EAGpB,OAAOwS,IAEXC,mBAAoB,SAAUzsB,GAC1B,MAAOA,GAAS0sB,aAAe1sB,EAAS2sB,cAE5CtS,UAAWA,EACXN,cAAeA,EACfD,qBAAsBA,EACtBI,eAAgBA,EAChBL,MAAOA,EACPO,UAAWA,EACXwS,WACIC,aAAc,EACdC,eAAgB,EAChBC,UAAW,EACXC,mBAAoB,EACpBC,sBAAuB,EACvBC,YAAa,EACbC,4BAA6B,EAC7BC,aAAc,EACdC,cAAe,EACfC,mBAAoB,GACpBC,uBAAwB,GACxBC,cAAe,IAEnBC,MAAO,SAAUC,GACb,GAAIC,GAAU5U,EAAIlK,KAAK6e,EACvB,OAAKC,GAGE,IAAM1jB,EAAI0jB,EAAQn6B,MAAM,GAAI,SAAUo6B,GAEzC,MADAA,GAAIrrB,SAASqrB,EAAG,IAAIC,SAAS,IACtBD,EAAE75B,OAAS,EAAI65B,EAAI,IAAMA,IACjCzjB,KAAK,IALGujB,GAOf/Y,OAAQ,SAAUhU,EAAO5N,GACrB,GAAI+6B,IAAkB/6B,GAAWA,EAAQ+e,SAAWuH,EAAWD,CAC/D,OAAOzY,GAAMpG,QAAQuzB,EAAgB,SAAUC,GAAV,GAC7BC,GAAWD,EAAEE,WAAW,GACxBC,EAAS5U,EAAY0U,EACzB,OAAOE,GAAS,IAAMA,EAAS,IAAMH,KAG7CI,MAAO,SAAU7T,GACb,MAAOA,IAA0B,IAAlBA,EAAKjM,UAAkB,cAAcO,KAAK0L,EAAKhM,YAElE8f,SAAU,SAAUtb,GAChB,OAAQA,GAAQ,IAAIvY,QAAQye,EAAK,KAErCqV,aAAc,SAAU/T,GAChBjZ,EAAI8sB,MAAM7T,IACVA,EAAK9S,WAAW8mB,YAAYhU,IAGpCiU,cAAe,SAAUjU,GACrB,GAAIzY,GAAOyY,EAAK2R,UAChB,OAAyB,YAAlB3R,EAAKkU,WAA2BntB,EAAI+P,GAAGkJ,EAAM,QAA4B,QAAlBA,EAAKkU,WAAuB3sB,EAAK4sB,YAAc5sB,EAAK6sB,yBAA2BrtB,EAAI+P,GAAGkJ,EAAM,SAA6B,QAAlBA,EAAKkU,WAE9KG,UAAW,SAAUrU,GACjB,MAAOjZ,GAAI+P,GAAGkJ,EAAM,OAASjZ,EAAI+P,GAAGkJ,EAAM,OAE9CsU,iBAAkB,SAAUrC,GACxB,MAAOj4B,GAAEu6B,KAAKtC,EAAO,SAAUuC,GAC3B,GAAIp4B,GAAO2K,EAAI3K,KAAKo4B,EACpB,OAAY,MAARp4B,KAEO2K,EAAIktB,cAAcO,MAElBztB,EAAI0tB,cAAcD,MAEA,GAAlBA,EAAMzgB,WAAkBwL,EAAMnjB,IAAS2K,EAAI2tB,UAAUF,SAMxEC,cAAe,SAAUzU,GACrB,MAAOA,IAAyB,GAAjBA,EAAKjM,UAAiB4K,EAAgBrK,KAAK0L,EAAKhM,YAEnE0gB,UAAW,SAAU1U,GACjB,MAAwB,IAAjBA,EAAKjM,WAAkBhN,EAAIutB,iBAAiBtU,EAAKmR,YAAY13B,QAExE2C,KAAM,SAAU4jB,GACZ,MAAOA,GAAKpN,SAASrT,eAEzBo1B,sBAAuB,SAAU3U,GAC7B,MAAOhmB,GAAEu6B,KAAKvU,EAAKmR,WAAY,SAAUqD,GACrC,MAAyB,IAAlBA,EAAMzgB,WAAkBhN,EAAI6tB,aAAaJ,MAGxDK,aAAc,SAAU7U,GAAV,GAKDwU,GAJLM,EAAS,IACb,IAAqB,GAAjB9U,EAAKjM,SACL,MAAOiM,EAEX,KAASwU,EAAQxU,EAAK+U,UAAWP,EAAOA,EAAQA,EAAMnE,gBAElD,GADAyE,EAAS/tB,EAAI8tB,aAAaL,GAEtB,MAAOM,EAGf,OAAOA,IAEXhe,GAAI,SAAUkJ,EAAMpN,GAChB,MAAOoN,IAAQjZ,EAAI3K,KAAK4jB,IAASpN,GAErCoiB,SAAU,SAAUhV,GAChB,MAAOA,GAAKkU,WAAa5U,GAE7BsV,aAAc,SAAU5U,GACpB,MAAOzB,GAAWjK,KAAK0L,EAAKhM,YAEhCihB,qBAAsB,SAAUjV,GAE5B,IADA,GAAIwU,GAAQxU,EAAKG,WACVqU,GAASztB,EAAI6tB,aAAaJ,IAC7BA,EAAQA,EAAMnU,WAElB,QAAQmU,GAEZU,aAAc,SAAUlV,GACpB,MAAOxB,GAAWlK,KAAK0L,EAAKhM,YAEhCmhB,gBAAiB,SAAUnV,GAAV,GAOToV,GAQAlV,EACAE,EACA/M,EAQIgiB,EACAC,CAzBR,UAAMvuB,EAAIupB,WAAWtQ,KAASjZ,EAAI6tB,aAAa5U,QAG3CxB,EAAWlK,KAAK0L,EAAKhM,aAGrBohB,EAAU,SAAUG,EAAIniB,GACxB,KAAOmiB,EAAGniB,IAEN,GADAmiB,EAAKA,EAAGniB,GACJrM,EAAIutB,kBAAkBiB,IAAK97B,OAAS,EACpC,MAAO87B,IAIfrV,EAASF,EAAK9S,WACdkT,EAAOgV,EAAQpV,EAAM,mBACrB3M,EAAO+hB,EAAQpV,EAAM,eACrBtB,EAAIpK,KAAK0L,EAAKhM,cACJoM,IAAQ/M,KAElBrZ,EAAEkmB,GAAQpJ,GAAG,yCAGb/P,EAAIyuB,QAAQtV,IAAWnZ,EAAI+P,GAAGoJ,EAAQ,WAClCmV,EAAcjV,GAAQrZ,EAAIyuB,QAAQpV,GAClCkV,EAAcjiB,GAAQtM,EAAIyuB,QAAQniB,IACjCA,GAAQgiB,IAAgBjV,GAAQkV,GAAeD,GAAeC,OAM3EE,QAAS,SAAUxV,GACf,MAAON,GAAM3Y,EAAI3K,KAAK4jB,KAE1ByV,cAAe,SAAUzV,GACrB,MAAOL,GAAY5Y,EAAI3K,KAAK4jB,KAEhC0V,QAAS,SAAU1V,GACf,MAAOT,GAAMxY,EAAI3K,KAAK4jB,KAE1B2V,SAAU,SAAU3V,GAChB,MAAOH,GAAO9Y,EAAI3K,KAAK4jB,KAE3B4V,KAAM,SAAU5V,GACZ,MAAyB,MAAlBjZ,EAAI3K,KAAK4jB,IAEpB6V,KAAM,SAAU7V,GACZ,GAAI5jB,GAAO4jB,EAAOjZ,EAAI3K,KAAK4jB,GAAQ,EACnC,OAAe,MAAR5jB,GAAwB,MAARA,GAAwB,MAARA,GAE3C05B,gBAAiB,SAAUxnB,GACvB,GAAID,GAAMtH,EAAIorB,mBAAmB7jB,GAAMwnB,GAAmBznB,EAAIa,eAAiBb,GAAK3I,UAAY2I,EAAI0jB,eAAiB1jB,CAMrH,OAJIynB,GAD8B,cAA9BA,EAAgBC,WACED,EAAgBzrB,KAEhByrB,EAAgBE,kBAAoBF,EAAgBnwB,iBAI9EswB,SAAU,SAAUjW,EAAMkW,GAAhB,GAKF9vB,GAAS+vB,EAAYC,EAAeC,EAJpC/nB,EAAM0R,EAAK+R,cACX1jB,EAAMtH,EAAIorB,mBAAmB7jB,GAC7BgoB,EAAejoB,EAAIkoB,YACnBT,EAAkB/uB,EAAI+uB,gBAAgBxnB,EAEtCvH,GAAIupB,WAAWtQ,GACXkW,GACAG,EAAStvB,EAAI2F,OAAO4B,EAAK,QAAU9E,UAAa,aAChDzC,EAAIW,aAAa2uB,EAAQrW,GACzB5Z,EAAUpM,EAAEq8B,IAEZjwB,EAAUpM,EAAEgmB,EAAK9S,YAGrB9G,EAAUpM,EAAEgmB,GAEhBmW,EAAa/vB,EAAQ+M,SAASqjB,IAC9BJ,EAAgBhwB,EAAQ,GAAGqwB,cACvBP,GAAYE,IACZA,EAAgBnuB,SAAS7B,EAAQ6H,IAAI,eAAgB,KAAOhC,KAAKyqB,KAAK,IAAMzuB,SAAS7B,EAAQ6H,IAAI,aAAc,MAAQ,IAEvHooB,GACAtvB,EAAIoF,OAAOkqB,GAEXD,EAAgBD,EAAaL,EAAgB/b,UAAYuc,IACzDR,EAAgB/b,UAAYqc,EAAgBD,EAAaG,IAGjEK,iBAAkB,SAAUroB,GACxBsQ,EAAqB7X,EAAI+uB,gBAAgBxnB,GAAKyL,WAElD5G,OAAQ,SAAUR,EAAQikB,GAMtB,IANI,GACA9B,IACA0B,IAAK7jB,EAAOkkB,UACZ5jB,KAAMN,EAAOmkB,YAEb5W,EAASvN,EAAOikB,aACb1W,KAAY0W,GAAgB7vB,EAAIypB,aAAaoG,EAAc1W,KAC9D4U,EAAO0B,KAAOtW,EAAO2W,UACrB/B,EAAO7hB,MAAQiN,EAAO4W,WACtB5W,EAASA,EAAO0W,YAEpB,OAAO9B,IAEXiC,iBAAkB,SAAUzoB,GACS,gBAAtBsQ,KACP7X,EAAI+uB,gBAAgBxnB,GAAKyL,UAAY6E,EACrCA,EAAqB3kB,SAG7B+8B,SAAU,SAAU9W,EAAQ+W,EAAYC,GACpChX,EAAOxY,aAAauvB,EAAY/W,EAAOiR,WAAW+F,IAAa,OAEnExvB,aAAc,SAAUuvB,EAAYE,GAChC,MAAIA,GAAiBjqB,WACViqB,EAAiBjqB,WAAWxF,aAAauvB,EAAYE,GAErDA,GAGfhsB,YAAa,SAAU8rB,EAAYE,GAC/B,MAAOA,GAAiBjqB,WAAWxF,aAAauvB,EAAYE,EAAiB9W,cAEjFlU,OAAQ,SAAU6T,GACVA,EAAK9S,YACL8S,EAAK9S,WAAW8mB,YAAYhU,IAGpCoX,eAAgB,SAAUpX,GACtB,KAAOA,EAAKG,YACRH,EAAKgU,YAAYhU,EAAKG,aAG9BkX,mBAAoB,SAAUrX,GAE1B,IADA,GAAI9S,GAAa8S,EAAK9S,WACf8S,EAAKK,aAA4C,GAA7BL,EAAKK,YAAYtM,UACxC7G,EAAW8mB,YAAYhU,EAAKK,YAEhC,MAAOL,EAAKqQ,iBAAoD,GAAjCrQ,EAAKqQ,gBAAgBtc,UAChD7G,EAAW8mB,YAAYhU,EAAKqQ,kBAGpClnB,KAAM,SAAU+W,GAAV,GACO5jB,GACD0jB,CADR,KAAS1jB,EAAI4jB,EAAOiR,WAAW13B,OAAS,EAAG6C,GAAK,EAAGA,IAC3C0jB,EAAOE,EAAOiR,WAAW70B,GACzByK,EAAIupB,WAAWtQ,GACVjZ,EAAI+sB,SAAS9T,EAAKhM,WAAWva,QAC9BsN,EAAIoF,OAAO6T,GAERA,EAAKkU,WAAa5U,IACzBvY,EAAIoC,KAAK6W,KACJjZ,EAAI2uB,QAAQ1V,IAAoC,IAA3BA,EAAKmR,WAAW13B,QAAgBsN,EAAIyuB,QAAQxV,IAASjZ,EAAIkuB,qBAAqBjV,KACpGjZ,EAAIoF,OAAO6T,GAIvB,OAAOE,IAEXhZ,QAAS,SAAU8Y,EAAMxjB,GAIrB,IAHoB,gBAATA,KACPA,GAAQA,IAELwjB,GAAQxjB,EAAK2L,QAAQpB,EAAI3K,KAAK4jB,IAAS,GAC1CA,EAAOA,EAAK9S,UAEhB,OAAO8S,IAEXsX,UAAW,SAAUtX,EAAMuX,EAAWC,GAClC,KAAOxX,IAASuX,EAAUvX,IAAO,CAC7B,GAAIwX,GAAiBA,EAAcxX,GAC/B,MAAO,KAEXA,GAAOA,EAAK9S,WAEhB,MAAO8S,IAEXoV,QAAS,SAAUpV,EAAM5M,GACrB,EACI4M,GAAOA,EAAK5M,SACP4M,GAAyB,GAAjBA,EAAKjM,SACtB,OAAOiM,IAEX3M,KAAM,SAAU2M,GACZ,MAAOjZ,GAAIquB,QAAQpV,EAAM,gBAE7BI,KAAM,SAAUJ,GACZ,MAAOjZ,GAAIquB,QAAQpV,EAAM,oBAE7B8R,aAAc,SAAU9R,EAAMxjB,GAC1B,EACIwjB,GAAOA,EAAK9S,iBACP8S,IAASjZ,EAAI0wB,OAAOzX,EAAMxjB,GACnC,OAAOwjB,IAEXyX,OAAQ,SAAUzX,EAAMxjB,GACpB,MAAOxC,GAAEuC,QAAQwK,EAAI3K,KAAK4jB,GAAOxjB,IAAS,GAE9Ck7B,UAAW,SAAUP,EAAkBpgB,EAAS4gB,GAC5C,GAAgHr7B,GAAG+hB,EAAKjiB,EAAMiK,EAAOuxB,EAAjIX,EAAalwB,EAAI2F,OAAOyqB,EAAiBpF,cAAehb,GAAU4a,EAAawF,EAAiBxF,UACpG,KAAKgG,EACD,IAAKr7B,EAAI,EAAG+hB,EAAMsT,EAAWl4B,OAAQ6C,EAAI+hB,EAAK/hB,IAC1Cs7B,EAAYjG,EAAWr1B,GACnBs7B,EAAUC,YACVz7B,EAAOw7B,EAAUhlB,SACjBvM,EAAQuxB,EAAU5jB,UACd5X,GAAQijB,EACR4X,EAAW/C,UAAY7tB,EAChBjK,GAAQ6iB,EACfgY,EAAWl2B,MAAM+2B,QAAUX,EAAiBp2B,MAAM+2B,QAElDb,EAAWnlB,aAAa1V,EAAMiK,GAK9C,MAAO8wB,EAAiBhX,YACpB8W,EAAWllB,YAAYolB,EAAiBhX,WAI5C,OAFApZ,GAAIW,aAAauvB,EAAYE,GAC7BpwB,EAAIoF,OAAOgrB,GACJF,GAEXc,eAAgB,SAAU/X,GACtB,KAAOA,IAA0B,GAAjBA,EAAKjM,UAA0C,SAAzBiM,EAAKpa,kBACvCoa,EAAOA,EAAK9S,UAEhB,OAAO8S,IAEXgY,KAAM,SAAUhY,EAAM3Y,GAGlB,MAFAN,GAAIW,aAAaL,EAAS2Y,GAC1B3Y,EAAQ0K,YAAYiO,GACb3Y,GAEX4wB,OAAQ,SAAUjY,GAEd,IADA,GAAIE,GAASF,EAAK9S,WACX8S,EAAKG,YACRD,EAAOxY,aAAasY,EAAKG,WAAYH,EAEzCE,GAAO8T,YAAYhU,IAEvB3Y,QAAS,SAAU2Y,GACf,GAAI3Y,GAAUN,EAAIuwB,UAAUtX,EAAM,SAAUuV,GACxC,MAAOA,GAAGroB,YAAcnG,EAAIutB,iBAAiBiB,EAAGroB,WAAWikB,YAAY13B,OAAS,GAEpF,OAAOO,GAAEqN,GAASyP,GAAG,kBAAoB7c,OAAYoN,GAEzDqF,OAAQ,SAAUhH,EAAUqR,EAAS4a,GACjC,MAAO5qB,GAAIQ,KAAK7B,EAASmM,cAAckF,GAAU4a,IAErDuG,gBAAiB,SAAUxyB,EAAUqR,EAAS4a,GAC1C,GAAI3R,GAAOjZ,EAAIQ,KAAK7B,EAASmM,cAAckF,GAAU4a,EAErD,OADA3R,GAAKxW,UAAY,SACVwW,GAEXzY,KAAM,SAAUnB,EAASurB,GACrBA,EAAap5B,KAAWo5B,GACpBA,GAAc1S,IAAS0S,KACvB5qB,EAAIhG,MAAMqF,EAASurB,EAAW5wB,aACvB4wB,GAAW5wB,MAEtB,KAAK,GAAIwG,KAAQoqB,GACY,OAArBA,EAAWpqB,IACXnB,EAAQ+xB,gBAAgB5wB,SACjBoqB,GAAWpqB,IACH,aAARA,IACPnB,EAAQmB,GAAQoqB,EAAWpqB,GAGnC,OAAOhP,GAAO6N,EAASurB,IAE3ByG,gBAAiB,SAAUC,EAAQ1lB,EAAQ2lB,GAClCD,EAAO1G,WAAWl4B,QAGvBO,EAAEu+B,KAAKF,EAAO1G,WAAY,WACJ,oBAAd/4B,KAAKwD,MAAgCk8B,GAAe1/B,KAAKwD,OAAS6iB,GAClEjlB,EAAE2Y,GAAQpL,KAAK3O,KAAKwD,KAAMxD,KAAKyN,OAE/BiyB,GAAe1/B,KAAKwD,OAAS6iB,GAC7BjlB,EAAEu+B,KAAKF,EAAOt3B,MAAO,WACjB4R,EAAO5R,MAAMnI,MAAQy/B,EAAOt3B,MAAMnI,WAKlDmI,MAAO,SAAUif,EAAM3Z,GACnBrM,EAAEgmB,GAAM/R,IAAI5H,QAEhBmyB,QAAS,SAAUxY,EAAM3Z,GACrB,IAAK,GAAI2V,KAAO3V,GACR2V,GAAOkD,IACPlD,EAAM5jB,EAAMsC,QAAQk3B,SAAWzS,EAAWC,GAE9CY,EAAKjf,MAAMib,GAAO,EAEK,MAAvBgE,EAAKjf,MAAM+2B,SACX9X,EAAKmY,gBAAgBlZ,IAG7BwZ,YAAa,SAAUpuB,EAAMjO,EAAMu1B,GAC/B,GAAgE5wB,GAA5DmX,EAAOle,EAAE+M,EAAI2F,OAAOrC,EAAK0nB,cAAe31B,EAAMu1B,GAUlD,OATAtnB,GAAK0H,YAAYmG,EAAK,IACtBnX,EAAQ4O,EAAIkP,EAAe,SAAUxY,GACjC,MAAIzL,GAAQie,MAAiB,eAATxS,GAA6C,OAAnB6R,EAAKjK,IAAI5H,GAC5C,kBAEAA,EAAQ,IAAM6R,EAAKjK,IAAI5H,KAEnCwJ,KAAK,KACRqI,EAAK/L,SACEpL,GAEX23B,uBAAwB,SAAUtyB,GAC9B,GAAIuyB,GAAkBvyB,EAAQ6H,IAAI,qBAAuB,EACzD,OAAI0qB,GAAgBxwB,QAAQ,mBAAqB,GAAyB,gBAApBwwB,EAC3CA,EACqC,SAArCvyB,EAAQ,GAAG2Q,QAAQxX,cACnB,SAEAwH,EAAI2xB,uBAAuBtyB,EAAQ8Z,WAGlD0Y,UAAW,SAAU5Y,GACjB,GAAIxH,GAAOwH,EAAKxW,SAGhB,OAFAgP,GAAOA,EAAKvY,QAAQ,oBAAqB,IACzCuY,EAAOA,EAAKvY,QAAQ,mBAAoB,KAG5CoW,YAAa,SAAU2J,EAAM6Y,GACzB,GAA6Ev8B,GAAG+hB,EAA5E6V,EAAY,IAAMlU,EAAKkU,UAAY,IAAK4E,EAAUD,EAAWxnB,MAAM,IACvE,KAAK/U,EAAI,EAAG+hB,EAAMya,EAAQr/B,OAAQ6C,EAAI+hB,EAAK/hB,IACvC43B,EAAYA,EAAUj0B,QAAQ,IAAM64B,EAAQx8B,GAAK,IAAK,IAE1D43B,GAAY97B,EAAM+Q,KAAK+qB,GACnBA,EAAUz6B,OACVumB,EAAKkU,UAAYA,EAEjBlU,EAAKmY,gBAAgB9Y,IAG7B0Z,eAAgB,WACZ,GAAmFz8B,GAAG08B,EAAWhZ,EAAMiZ,EAAOC,EAA1GC,EAAQC,UAAU3/B,OAAQ4/B,KAAYC,EAAgBttB,EAAAA,EAAUutB,EAAS,IAC7E,KAAKJ,EACD,MAAO,KAEX,IAAa,GAATA,EACA,MAAOC,WAAU,EAErB,KAAK98B,EAAI,EAAGA,EAAI68B,EAAO78B,IAAK,CAGxB,IAFA08B,KACAhZ,EAAOoZ,UAAU98B,GACV0jB,GACHgZ,EAAUjgC,KAAKinB,GACfA,EAAOA,EAAK9S,UAEhBmsB,GAAMtgC,KAAKigC,EAAUQ,WACrBF,EAAgBrtB,KAAKH,IAAIwtB,EAAeN,EAAUv/B,QAEtD,GAAa,GAAT0/B,EACA,MAAOE,GAAM,GAAG,EAEpB,KAAK/8B,EAAI,EAAGA,EAAIg9B,EAAeh9B,IAAK,CAEhC,IADA28B,EAAQI,EAAM,GAAG/8B,GACZ48B,EAAI,EAAGA,EAAIC,EAAOD,IACnB,GAAID,GAASI,EAAMH,GAAG58B,GAClB,MAAOi9B,EAGfA,GAASN,EAEb,MAAOM,IAEXE,wBAAyB,SAAUxH,GAAV,GACjB6C,GAkBA4E,EACAC,CAIJ,OArBI7E,GADgB,GAAhB7C,EAAMx4B,OACGsN,EAAI+qB,aAAaG,EAAM,IAC5B,KACA,OAGKlrB,EAAIgyB,eAAea,MAAM,KAAM3H,GAEvC6C,IACDA,EAAS/tB,EAAI+qB,aAAaG,EAAM,IAC5B,IACA,QACEA,EAAM,GAAGF,cAAc1nB,MAE7BtD,EAAI4uB,SAASb,KACbA,EAAS/tB,EAAI8qB,kBAAkBiD,IAE/B4E,EAAkB/pB,EAAIsiB,EAAOlrB,EAAIgxB,gBACjC4B,EAAmB5yB,EAAIgyB,eAAeW,GAAiB,GACvD1/B,EAAEmc,SAAS2e,EAAQ6E,KACnB7E,EAAS6E,GAEN7E,GAEX+E,gBAAiB,SAAU7Z,EAAM8Z,GAAhB,GACT5yB,GACA6yB,EAAWhzB,EAAIgxB,eAAe/X,EAWlC,OATI9Y,GADAH,EAAI0wB,OAAOzX,EAAM8Z,GACP9Z,EAEAjZ,EAAI+qB,aAAa9R,EAAM8Z,GAEjC5yB,GAAW6yB,GAAY//B,EAAEmc,SAASjP,EAAS6yB,GAC3C7yB,EAAU6yB,GACF7yB,GAAW6yB,IACnB7yB,EAAU6yB,GAEP7yB,GAEX8yB,sBAAuB,SAAUha,EAAM8Z,GACnC,GAAIC,GAAWhzB,EAAI8yB,gBAAgB7Z,EAAM8Z,EACzC,IAAIC,GAAYhzB,EAAI0wB,OAAOsC,EAAUD,KAAW9/B,EAAE+/B,GAAUjjB,GAAG,aAC3D,MAAOijB,IAGfE,OAAQ,SAAUljB,EAASkb,EAAOiI,GAC9B,GAAIC,GAAW,SAAUna,GACrB,MAAOjZ,GAAI3K,KAAK4jB,IAASjJ,EAE7B,OAAOhQ,GAAIqzB,SAASnI,EAAOkI,EAAUD,IAEzCE,SAAU,SAAUnI,EAAOsF,EAAW2C,GAKlC,IALM,GAIFG,GAHA/9B,EAAI,EACJ+hB,EAAM4T,EAAMx4B,OACZq7B,KAEGx4B,EAAI+hB,EAAK/hB,IACZ+9B,EAAQ9C,EAAUtF,EAAM31B,KACpB+9B,IAAUH,IAAWG,GAASH,IAC9BpF,EAAO/7B,KAAKk5B,EAAM31B,GAG1B,OAAOw4B,IAEXwF,qBAAsB,SAAUta,GAAV,GACdua,GAAWvgC,EAAEgmB,GAAM1Y,KAAK,WACxB7N,EAAS8gC,EAAS9gC,OAClB6C,EAAI,CACR,IAAI7C,EACA,KAAO6C,EAAI7C,EAAQ6C,IACfyK,EAAIyzB,oBAAoBD,EAASj+B,QAGrCyK,GAAIyzB,oBAAoBxa,IAGhCya,oBAAqB,SAAUza,GAC3BhmB,EAAEgmB,GAAM1Y,KAAK,uBAAuB6E,UAExCquB,oBAAqB,SAAUxa,GAAV,GAEb+U,GACA34B,EACAs+B,CAHJ3zB,GAAI0zB,oBAAoBza,GACpB+U,EAAY/U,EAAK+U,UACjB34B,EAAO24B,GAAahuB,EAAI3K,KAAK24B,KAE5B34B,GAAgB,MAARA,GAAwB,OAARA,GAAyB,MAARA,GAAuC,QAAvB24B,EAAUb,aACpEwG,EAAK1a,EAAK+R,cAAclgB,cAAc,MACtC6oB,EAAGxG,UAAY,OACflU,EAAKjO,YAAY2oB,KAGzBC,kBAAmB,SAAUC,EAAOC,GAChC9zB,EAAI+zB,eAAeF,EAAOC,IAE9BE,mBAAoB,SAAUH,EAAOC,GACjC7gC,EAAE4gC,GAAOtzB,KAAK,IAAMuzB,EAAU,KAAKG,WAAWH,IAElDC,eAAgB,SAAUF,EAAOC,GAAjB,GAEHI,GACDC,EACAC,EACKC,EACDC,EALRC,IACJ,KAASL,EAAW,EAAGA,EAAWL,EAAMh2B,KAAKnL,OAAQwhC,IAGjD,IAFIC,EAAQN,EAAMh2B,KAAKq2B,GAAUC,MAC7BC,EAAW,EACNC,EAAY,EAAGA,EAAYF,EAAMzhC,OAAQ2hC,IAAaD,IAAY,CAKvE,GAJIE,EAAOH,EAAME,GACbC,EAAKE,QAAU,GACf3iC,KAAK4iC,YAAYH,EAAMJ,EAAUE,EAAUG,GAE3CA,EAAkBL,GAClB,KAAOK,EAAkBL,GAAUE,IAC/BA,GAGRE,GAAKvpB,aAAa+oB,EAASM,GACvBE,EAAKI,QAAU,IACfN,EAAWA,EAAWE,EAAKI,QAAU,KAKrDD,YAAa,SAAUH,EAAMJ,EAAUE,EAAUG,GAApC,GAC2Ct7B,GAC3C07B,EAEIC,EAHTJ,EAAUF,EAAKE,QAASE,EAAUJ,EAAKI,OAC3C,KAASC,EAAK,EAAGA,EAAKD,EAASC,IAE3B,IADA17B,EAAQm7B,EAAWO,EACVC,EAAKV,EAAW,EAAGU,EAAKV,EAAWM,EAASI,IAAM,CAKvD,GAJKL,EAAkBK,KACnBL,EAAkBK,MAClBL,EAAkBK,GAAIliC,OAAS,GAE/B6hC,EAAkBL,GAClB,KAAOK,EAAkBL,GAAUj7B,IAC/BA,GAGRs7B,GAAkBK,GAAI37B,IAAS,EAC/Bs7B,EAAkBK,GAAIliC,WAIlCmiC,iBAAkB,SAAUhB,GAAV,GAOViB,GAAWv/B,EANXqK,EAAO/N,KACPkjC,EAAoB,EACpBC,EAAYnB,EAAMh2B,KAClBo3B,EAAoBD,EAAUtiC,OAC9BwiC,KACAC,IAEJ,IAAItB,EAAMuB,MACNN,EAAYjB,EAAMuB,MAAMv3B,KACxBk3B,EAAoBD,EAAUpiC,WAI9B,KAFAqiC,EAAoBn1B,EAAKy1B,uBAAuBxB,GAChDiB,KACKv/B,EAAI,EAAGA,EAAIw/B,EAAmBx/B,IAC/Bu/B,EAAU9iC,KAAKgjC,EAAUz/B,GAGjC,KAAKA,EAAI,EAAGA,EAAIw/B,EAAmBx/B,IAC/B2/B,EAAYljC,QAEhB,KAAKuD,EAAI,EAAGA,EAAI0/B,EAAmB1/B,IAC/B4/B,EAAYnjC,QAEhB4N,GAAK01B,uBAAuBJ,EAAaJ,GACzCl1B,EAAK21B,oBAAoBL,EAAaC,EAAaJ,EAAmBC,GACtEp1B,EAAK41B,WAAWN,EAAaC,EAAaJ,EAAmBC,IAEjEM,uBAAwB,SAAUJ,EAAaJ,GAAvB,GAGhBW,GAAKtB,EAAOG,EAAMoB,EAAKj5B,EAAIk5B,EAASC,EAASrgC,EAAG48B,EAAG0D,EAAGC,EAFtDC,GAAY,GAAIC,OAAOC,UACvBlB,EAAoBD,EAAYA,EAAUpiC,OAAS,CAEvD,KAAK6C,EAAI,EAAGA,EAAIw/B,EAAmBx/B,IAI/B,IAHAkgC,EAAMX,EAAUv/B,GAChB4+B,EAAQsB,EAAItB,MACZuB,EAAM,EACDvD,EAAI,EAAGA,EAAIgC,EAAMzhC,OAAQy/B,IAAK,CAM/B,IALAmC,EAAOH,EAAMhC,GACb11B,EAAK,QAAUlH,EAAI48B,KAAM4D,EACzBzB,EAAKvpB,aAAa,KAAMtO,GACxBk5B,EAAUrB,EAAK9rB,aAAa,YAAc,EAC1CotB,EAAUtB,EAAK9rB,aAAa,YAAc,EACnC0sB,EAAY3/B,GAAG48B,EAAIuD,IACtBA,GAAO,CAEX,KAAKG,EAAI,EAAGA,EAAID,EAASC,IACrB,IAAKC,EAAI,EAAGA,EAAIH,EAASG,IACrBZ,EAAY3/B,EAAIsgC,GAAG1D,EAAIuD,EAAMI,GAAKr5B,IAMtD84B,oBAAqB,SAAUL,EAAaC,EAAaJ,EAAmBC,GAAvD,GAIbS,GAAKtB,EAAOG,EAAMoB,EAAKj5B,EAAIk5B,EAASC,EAASrgC,EAAG48B,EAAG0D,EAAGC,EAAG1B,EAAU8B,EAHnEt2B,EAAO/N,KACPkkC,GAAY,GAAIC,OAAOC,UACvBhB,EAAoBD,EAAUtiC,OAE9ByjC,EAAe,SAAUV,GACzBS,EAAQlkC,KAAKyjC,EAAIrB,IAErB,KAAK7+B,EAAIw/B,EAAmBx/B,EAAI0/B,EAAmB1/B,IAI/C,IAHAkgC,EAAMT,EAAUz/B,GAChB4+B,EAAQlhC,EAAEwiC,EAAItB,OAAOjB,OAAO,MAC5BwC,EAAM,EACDvD,EAAI,EAAGA,EAAIgC,EAAMzhC,OAAQy/B,IAAK,CAM/B,IALAmC,EAAOH,EAAMhC,GACb11B,EAAK,QAAUlH,EAAI48B,KAAM4D,EACzBzB,EAAKvpB,aAAa,KAAMtO,GACxBk5B,EAAUrB,EAAK9rB,aAAa,YAAc,EAC1CotB,EAAUtB,EAAK9rB,aAAa,YAAc,EACnC2sB,EAAY5/B,GAAG48B,EAAIuD,IACtBA,GAAO,CAEX,KAAKG,EAAI,EAAGA,EAAID,EAASC,IACrB,IAAKC,EAAI,EAAGA,EAAIH,EAASG,IACrBX,EAAY5/B,EAAIsgC,GAAG1D,EAAIuD,EAAMI,GAAKr5B,CAG1C23B,GAAWE,EAAK9rB,aAAa,aAC7B0tB,KACAhB,EAAYkB,QAAQD,GACpBD,EAAUA,EAAQhD,OAAOtzB,EAAKy2B,aAC9B/B,EAAKvpB,aAAa,UAAWmrB,EAAQptB,KAAK,KAAK1G,UAI3DozB,WAAY,SAAUN,EAAaC,EAAaJ,EAAmBC,GAAvD,GAGJS,GAAKtB,EAAOG,EAAM/+B,EAAG48B,EAAGiC,EAAU8B,EAFlCt2B,EAAO/N,KACPojC,EAAoBD,EAAUtiC,OAE9ByjC,EAAe,SAAUV,GACzBS,EAAQlkC,KAAKyjC,EAAIrB,IAErB,KAAK7+B,EAAIw/B,EAAmBx/B,EAAI0/B,EAAmB1/B,IAG/C,IAFAkgC,EAAMT,EAAUz/B,GAChB4+B,EAAQlhC,EAAEwiC,EAAItB,OAAOjB,OAAO,MACvBf,EAAI,EAAGA,EAAIgC,EAAMzhC,OAAQy/B,IAC1BmC,EAAOH,EAAMhC,GACbiC,EAAWE,EAAK9rB,aAAa,aAC7B0tB,EAAUf,EAAY5/B,GAAGpD,QACzB+iC,EAAYkB,QAAQD,GACpBD,EAAUA,EAAQhD,OAAOtzB,EAAKy2B,aAC9B/B,EAAKvpB,aAAa,UAAWmrB,EAAQptB,KAAK,KAAK1G,SAI3Dk0B,oBAAqB,SAAUzC,GAAV,GAGbS,GAAM/+B,EAAGghC,EAFTpC,EAAQlhC,EAAE4gC,GAAOtzB,KAAK,UACtBi2B,EAAe,CAEnB,KAAKjhC,EAAI,EAAGA,EAAI4+B,EAAMzhC,OAAQ6C,IAC1B++B,EAAOH,EAAM5+B,GACbghC,GAAsBjC,EAAK9rB,aAAa,aAAgB,EACpD+tB,EAAeC,IACfA,EAAeD,EAGvB,OAAOC,IAEXC,0BAA2B,SAAU5C,EAAO6C,GAAjB,GAGnBH,GAAcd,EAAKlgC,EAAG48B,EAAGmC,EAFzBz2B,EAAOg2B,EAAMh2B,KACb24B,EAAe,CAEnB,KAAKjhC,EAAImhC,EAAoBnhC,EAAIsI,EAAKnL,OAAQ6C,IAE1C,IADAkgC,EAAM53B,EAAKtI,GACN48B,EAAI,EAAGA,EAAIsD,EAAItB,MAAMzhC,OAAQy/B,IAC9BmC,EAAOmB,EAAItB,MAAMhC,GACbtgC,KAAKke,GAAGukB,EAAM,QACdiC,GAAsBjC,EAAK9rB,aAAa,aAAgB,EACpD+tB,EAAeC,IACfA,EAAeD,GAK/B,OAAOC,IAEXnB,uBAAwB,SAAUxB,GAAV,GAIhB1B,GAAGsD,EAAKnB,EAAM5hC,EAHdmL,EAAOg2B,EAAMh2B,KACb84B,EAAQ9C,EAAMuB,MACdwB,EAASD,GAAS9C,EAAMuB,MAAMv3B,KAAOg2B,EAAMuB,MAAMv3B,KAAKnL,OAAS,CAEnE,IAAe,IAAXkkC,EAGA,IAFAnB,EAAM53B,EAAK,GACXnL,EAAS+iC,EAAItB,OAASsB,EAAItB,MAAMzhC,OACzB+iC,GAAO/iC,GAAUb,KAAKke,GAAG0lB,EAAItB,MAAM,GAAI,OAAO,CACjD,IAAKhC,EAAI,EAAGA,EAAIz/B,EAAQy/B,IACpBmC,EAAOmB,EAAMA,EAAItB,MAAMhC,GAAK,KACvBtgC,KAAKke,GAAGukB,EAAM,QACfmB,EAAM,KAGVA,KACAmB,GAAU,EACVnB,EAAM5jC,KAAKya,KAAKmpB,GAChB/iC,EAAS+iC,GAAOA,EAAItB,OAASsB,EAAItB,MAAMzhC,QAInD,MAAOkkC,IAEXP,YAAa,SAAU/2B,EAAOrG,EAAO49B,GACjC,MAAOA,GAAKz1B,QAAQ9B,KAAWrG,IAGvC5H,EAAMoC,GAAGqM,OAAOE,IAAMA,GACxB1M,OAAOjC,MAAM8lB,SACC,kBAAV/lB,SAAwBA,OAAOyB,IAAMzB,OAAS,SAAU0B,EAAIC,EAAIC,IACrEA,GAAMD,OAEV,SAAU5B,EAAGC,QACVA,OAAO,qBAAsB,cAAeD,IAC9C,YACG,SAAU8B,EAAGC,GAAb,GAkBO4jC,GAEAC,EACAC,EACA30B,EArBAhR,EAAQiC,OAAOjC,MACfoH,EAASpH,EAAMoC,GAAGqM,OAClBC,EAAMtH,EAAOuH,IACbxO,EAASyB,EAAEzB,OACXylC,EAAmB,uDAAuD3sB,MAAM,KAChF4sB,EAAU,KACVC,EAAO,aACPC,EAAU,sBACVC,EAAW,uBACXC,EAAiB,qGACjBC,EAAa,eACbC,EAAa,cACbC,EAAY,gDACZ9D,EAAK,oBACL+D,EAAU,mCACVC,EAAMh5B,SAASmM,cAAc,MACjC6sB,GAAIl1B,UAAY,QACZq0B,EAAwD,IAA5Ba,EAAIve,WAAWpM,SAC/C2qB,EAAM,KACFZ,EAAa1lC,EAAM0lC,WACnBC,EAAK,KACL30B,GACAu1B,eAAgB,SAAUnlB,GACtB,OAAQA,GAAQ,IAAIvZ,QAAQ,yBAA0B,sBAAsBA,QAAQ,yBAA0B,kBAAkBA,QAAQ,iBAAkB,SAAUo6B,GAChK,MAAOA,GAAMp6B,QAAQu+B,EAAW,MACjCv+B,QAAQ,kCAAmC,MAAMA,QAAQ,wBAAyBy6B,EAAK,OAAOz6B,QAAQ,yBAA0B,MAAMA,QAAQ,2BAA4B,QAAUy6B,IAE3LkE,sBAAuB,SAAUv0B,GAE7B,IADA,GAAIw0B,GAAYr/B,EAAOiX,WAAWooB,UAAWpK,EAAgB3tB,EAAI2tB,cAAewE,EAAQ5uB,EAAK8V,WAAY3U,EAAOnB,EAAK0qB,UAC9GN,EAAcwE,IACjBA,EAAQA,EAAM5Y,WAElB,MAAOoU,EAAcjpB,IACjBA,EAAOA,EAAK6kB,eAEZ4I,IAAS4F,EAAU5F,IACnBj/B,EAAEykC,GAASK,UAAUz0B,GAErBmB,GAAQqzB,EAAUrzB,IAClBxR,EAAEykC,GAASzwB,SAAS3D,IAG5B00B,mBAAoB,SAAU10B,GAC1BrQ,EAAEqQ,GAAM/C,KAAK,QAAQixB,KAAK,WAAA,GAGdvY,GAFJgf,EAAIhlC,EAAEpB,KACV,IAAI,SAAS0b,KAAK0qB,EAAExmB,UAAYwmB,EAAE13B,KAAK,aAAa7N,OAAQ,CAExD,IADIumB,EAAOpnB,KACJonB,EAAKif,SAAS,IAAmC,GAA7Bjf,EAAKif,SAAS,GAAGlrB,UACxCiM,EAAOA,EAAKif,SAAS,EAEJ,IAAjBjf,EAAKjM,UAAkBjN,EAAIyY,MAAMzY,EAAI1K,KAAK4jB,MAEtCA,EAAKxW,UADL1C,EAAIgQ,GAAGkJ,EAAM,MACI5nB,EAAMoC,GAAGqM,OAAOzM,sBAEhBhC,EAAMoC,GAAGqM,OAAO1M,yBAMrD+kC,sBAAuB,SAAU70B,GAC7BrQ,EAAE,qBAAsBqQ,GAAM8B,UAElCgzB,mBAAoB,SAAU9hB,GAC1B,GAA2C/gB,GAAG8iC,EAAIC,EAA9CC,EAAMjiB,EAAK/N,qBAAqB,KACpC,KAAKhT,EAAI,EAAGA,EAAIgjC,EAAI7lC,OAAQ6C,IACxB8iC,EAAKE,EAAIhjC,GACT+iC,EAAgBD,EAAG7vB,aAAa,SAChC6vB,EAAGttB,aAAa,QAAS,GACrButB,EACAD,EAAGttB,aAAa,QAASutB,GAEzBD,EAAGjH,gBAAgBkH,IAI/BE,wBAAyB,SAAUliB,GAC/BrjB,EAAEqjB,GAAM/V,KAAK,KAAKixB,KAAK,WAAA,GAEfX,GAAWt7B,EAAGugC,EAAGzgC,EADjBu1B,EAAa/4B,KAAK+4B,WAElB6N,IACJ,KAAKljC,EAAI,EAAGugC,EAAIlL,EAAWl4B,OAAQ6C,EAAIugC,EAAGvgC,IACtCs7B,EAAYjG,EAAWr1B,GACvBF,EAAOw7B,EAAUhlB,SACbglB,EAAUC,WAAa,OAAOvjB,KAAKlY,KACnCxD,KAAKkZ,aAAa,YAAc1V,EAAMw7B,EAAUvxB,OAChDm5B,EAAmBzmC,KAAKqD,GAGhC,KAAKE,EAAI,EAAGugC,EAAI2C,EAAmB/lC,OAAQ6C,EAAIugC,EAAGvgC,IAC9C1D,KAAKu/B,gBAAgBqH,EAAmBljC,OAIpD+M,UAAW,SAAUmQ,EAAM6D,EAAM5kB,GAAtB,GACHmC,GAAUxC,EAAMsC,QAAQE,QACxBie,EAAOje,EAAQie,KACf7B,EAAIve,MACJ+d,EAAaQ,EAAER,UAkBnB,OAjBAgD,GAAOpQ,EAAWu1B,eAAenlB,GAC7BskB,EAAW9mB,EAAEM,UACbkC,EAAOxC,EAAEM,OAAOkC,IAASA,GAE7B6D,EAAK7T,UAAYgQ,EACbhD,GACAA,EAAWipB,YAAYpiB,GAEvBxE,IACA/R,EAAIiZ,UAAU1C,GACdjU,EAAW+1B,mBAAmB9hB,IAElCjU,EAAWm2B,wBAAwBliB,GACnCjU,EAAW21B,mBAAmB1hB,GAC9BjU,EAAW81B,sBAAsB7hB,GACjCjU,EAAWw1B,sBAAsBvhB,GACjCrjB,EAAE,QAASqjB,GAAM7V,SAAS,WACnB6V,GAEX3D,WAAY,SAAU2D,EAAM5kB,GAGxB,QAASinC,GAAe/N,GACpB,MAAO33B,GAAEu6B,KAAK5C,EAAY,SAAUpqB,GAChC,MAAoB,SAAbA,EAAKnL,OAGpB,QAASujC,GAAS3f,EAAM4f,GACpB9K,EAAO/7B,KAAK,IAAM6mC,GAClBr4B,EAAKyY,GACL8U,EAAO/7B,KAAK,KA+JhB,QAAS8mC,GAAc/H,GAAvB,GAGQuC,GACAyF,EAAUz5B,EAHV8C,EAAO/Q,EAAM+Q,KACb8E,EAAM9E,EAAK2uB,GAGXiI,IAEJ,KADA1B,EAAe2B,UAAY,IACd,CAET,GADA3F,EAAQgE,EAAe9pB,KAAKtG,IACvBosB,EACD,KAEJyF,GAAW32B,EAAKkxB,EAAM,GAAG96B,eACzB8G,EAAQ8C,EAAKkxB,EAAM,IACH,oBAAZyF,GAA8C,gBAAZA,IAGlCA,EAAS33B,QAAQ,UAAY,EAC7B9B,EAAQS,EAAIqsB,MAAM9sB,GACXy5B,EAAS33B,QAAQ,SAAW,EACnC9B,EAAQA,EAAMpG,QAAQg+B,EAAS,KACxB,WAAW3pB,KAAKjO,KACvBA,EAAQA,EAAMpG,QAAQg+B,EAAS,KAEnC8B,EAAWhnC,MACP+mC,SAAUA,EACVz5B,MAAOA,KAGf,MAAO05B,GAEX,QAASE,GAAUnI,GAAnB,GAEQx7B,GADAyjC,EAAaF,EAAc/H,EAE/B,KAAKx7B,EAAI,EAAGA,EAAIyjC,EAAWtmC,OAAQ6C,IAC/Bw4B,EAAO/7B,KAAKgnC,EAAWzjC,GAAGwjC,UAC1BhL,EAAO/7B,KAAK,KACZ+7B,EAAO/7B,KAAKgnC,EAAWzjC,GAAG+J,OAC1ByuB,EAAO/7B,KAAK,KAGpB,QAASmnC,GAAoBlgB,GAA7B,GAGQ4X,GAAWt7B,EAAGugC,EACdzgC,EAAMiK,EAAOwxB,EAHb/C,KACAnD,EAAa3R,EAAK2R,UAGtB,KAAKr1B,EAAI,EAAGugC,EAAIlL,EAAWl4B,OAAQ6C,EAAIugC,EAAGvgC,IACtCs7B,EAAYjG,EAAWr1B,GACvBF,EAAOw7B,EAAUhlB,SACjBvM,EAAQuxB,EAAUvxB,MAClBwxB,EAAYD,EAAUC,UACV,SAARz7B,GAAmB,SAAW4jB,IAAQA,EAAK3Z,MAC3CwxB,GAAY,EACG,QAARz7B,GAA2B,QAATiK,EACzBwxB,GAAY,EACG,SAARz7B,GAAoBiK,EAEpBi4B,EAAWhqB,KAAKlY,GACvBy7B,GAAY,EACG,YAARz7B,EACPy7B,GAAY,EACG,WAARz7B,EACPy7B,GAAY,EACG,SAARz7B,GAAmB0K,EAAIgQ,GAAGkJ,EAAM,MACvC6X,GAAY,EACG,SAARz7B,GAAmB0K,EAAIgQ,GAAGkJ,EAAM,OAAkB,KAAT3Z,EAChDwxB,GAAY,EACLz7B,EAAK+L,QAAQ,SAAW,EAC/B0vB,GAAY,EACL0G,EAAWjqB,KAAKlY,GACvBy7B,IAAcp/B,EAAQif,QACP,aAARtb,GAAgC,aAATiK,IAAyBS,EAAIgQ,GAAGkJ,EAAM,OAASlZ,EAAIgQ,GAAGkJ,EAAM,SAC1F6X,GAAY,GAhBZA,GAAY,EAkBZA,GACA/C,EAAO/7B,KAAK6+B,EAGpB,OAAO9C,GAEX,QAASvtB,GAAKyY,EAAM2R,GAApB,GACQr1B,GAAGugC,EAAGjF,EAAWx7B,EAAMiK,EAGnBrD,EAA0BC,EAA4Bk9B,CAU9D,IAZAxO,EAAaA,GAAcuO,EAAoBlgB,GAC3ClZ,EAAIgQ,GAAGkJ,EAAM,SACThd,EAAQgd,EAAKjf,MAAMiC,MAAOC,EAAS+c,EAAKjf,MAAMkC,OAAQk9B,EAAQnmC,EAAEgmB,GAChEhd,GAASm7B,EAAQ7pB,KAAKtR,KACtBm9B,EAAM54B,KAAK,QAASU,SAASjF,EAAO,KACpC8D,EAAI0xB,QAAQxY,GAAQhd,MAAO/I,KAE3BgJ,GAAUk7B,EAAQ7pB,KAAKrR,KACvBk9B,EAAM54B,KAAK,SAAUU,SAAShF,EAAQ,KACtC6D,EAAI0xB,QAAQxY,GAAQ/c,OAAQhJ,MAG/B03B,EAAWl4B,OAGhB,IAAK6C,EAAI,EAAGugC,EAAIlL,EAAWl4B,OAAQ6C,EAAIugC,EAAGvgC,IACtCs7B,EAAYjG,EAAWr1B,GACvBF,EAAOw7B,EAAUhlB,SACjBvM,EAAQuxB,EAAUvxB,MACN,SAARjK,GAA4B,WAATiK,IAGvBjK,EAAOA,EAAK6D,QAAQs+B,EAAY,IAChCzJ,EAAO/7B,KAAK,KACZ+7B,EAAO/7B,KAAKqD,GACZ04B,EAAO/7B,KAAK,MACA,SAARqD,EACA6jC,EAAU55B,GAAS2Z,EAAKjf,MAAM+2B,SAE9BhD,EAAO/7B,KADQ,OAARqD,GAAyB,QAARA,EACZhE,EAAMgoC,WAAWpgB,EAAKzQ,aAAanT,EAAM,IAEzC0K,EAAIgZ,UAAU1jB,GAAQA,EAAOiK,GAE7CyuB,EAAO/7B,KAAK,MAGpB,QAASkmC,GAASjf,EAAMqgB,EAAMC,GAC1B,IAAK,GAAIC,GAAYvgB,EAAKG,WAAYogB,EAAWA,EAAYA,EAAUlgB,YACnEmU,EAAM+L,EAAWF,EAAMC,GAG/B,QAAS9nB,GAAKwH,GACV,MAAOA,GAAKhM,UAAU/T,QAAQ,UAAW,IAE7C,QAASugC,GAAexgB,GACpB,GAAIlZ,EAAI+sB,MAAM7T,GAAO,CACjB,EAAG,CAEC,GADAA,EAAOA,EAAK9S,WACRpG,EAAIgQ,GAAGkJ,EAAM+d,IAAkC,IAA3B/d,EAAKmR,WAAW13B,OACpC,OAAO,CAEX,IAA+B,IAA3BumB,EAAKmR,WAAW13B,OAChB,OAAO,SAELqN,EAAI0uB,QAAQxV,GACtB,QAAO,EAEX,OAAO,EAEX,QAASwU,GAAMxU,EAAMqgB,EAAMC,GACvB,GAA8BvpB,GAAS0pB,EAAQvgB,EAAQ7Z,EAAOq6B,EAAUC,EAApE5sB,EAAWiM,EAAKjM,QACpB,IAAIyC,GAAchX,EAAOiX,WAAWooB,UAAU7e,GAC1C8U,EAAO/7B,KAAKyd,EAAWoqB,UAAU5gB,QAC9B,IAAgB,GAAZjM,EAAe,CAGtB,GAFAgD,EAAUjQ,EAAI1K,KAAK4jB,GACnB2gB,EAAS3mC,EAAEgmB,GACP2gB,EAAOE,SAAS,oCAAsCF,EAAOE,SAAS,mCAAqCF,EAAOE,SAAS,+BAC3H,MAEJ,KAAK9pB,GAAWjQ,EAAImtB,cAAcjU,GAC9B,MAEJ,KAAKvnB,EAAQif,UAAuB,UAAXX,GAAkC,YAAXA,GAC5C,MAGJ,IADA0pB,EAASK,EAAO/pB,GACZ0pB,IAC8B,IAAnBA,EAAOhpB,UAA2Bhf,EAAQgf,SAAWgpB,EAAOhpB,UAInE,MAHAgpB,GAAOp1B,MAAM2U,GACbif,EAASjf,GAAM,EAAOygB,EAAOH,cAC7BG,EAAOM,IAAI/gB,GACX,CAGR8U,GAAO/7B,KAAK,KACZ+7B,EAAO/7B,KAAKge,GACZxP,EAAKyY,GACDlZ,EAAIyY,MAAMxI,GACV+d,EAAO/7B,KAAK,QAEZ+7B,EAAO/7B,KAAK,KACZkmC,EAASjf,EAAMqgB,GAAQv5B,EAAIgQ,GAAGkJ,EAAM,QACpC8U,EAAO/7B,KAAK,MACZ+7B,EAAO/7B,KAAKge,GACZ+d,EAAO/7B,KAAK,UAEb,IAAgB,GAAZgb,EAAe,CACtB,GAAIysB,EAAexgB,GAEf,MADA8U,GAAO/7B,KAAK,UACZ,CAEJsN,GAAQmS,EAAKwH,IACRqgB,GAAQxC,IACT3d,EAASF,EAAK9S,WACdwzB,EAAW1gB,EAAKqQ,gBACXqQ,IACDA,GAAY55B,EAAI6uB,SAASzV,GAAUA,EAASF,GAAMqQ,iBAEjDqQ,GAAmC,KAAvBA,EAASl3B,YAAoB1C,EAAI0uB,QAAQkL,KACtDr6B,EAAQA,EAAMpG,QAAQ,kBAAmB,KAE7CoG,EAAQA,EAAMpG,QAAQ,KAAM,MAEhC60B,EAAO/7B,KAAKunC,EAAej6B,EAAQS,EAAIuT,OAAOhU,EAAO5N,QAClC,IAAZsb,GACP+gB,EAAO/7B,KAAK,aACZ+7B,EAAO/7B,KAAKinB,EAAKuQ,MACjBuE,EAAO/7B,KAAK,QACO,GAAZgb,IACHiM,EAAKuQ,KAAKpoB,QAAQ,WAAa,GAC/B2sB,EAAO/7B,KAAK,QACZ+7B,EAAO/7B,KAAKinB,EAAKuQ,MACjBuE,EAAO/7B,KAAK,SAEZ+7B,EAAO/7B,KAAK,MACZ+7B,EAAO/7B,KAAKinB,EAAKuQ,MACjBuE,EAAO/7B,KAAK,OAIxB,QAASioC,GAAS3jB,GAAlB,GACQ4jB,GAAgB5jB,EAAK8T,WAAW13B,OAChCynC,EAAYD,GAA6C,GAA5B5jB,EAAK8C,WAAWpM,QACjD,OAAOmtB,KAA+B,GAAjBD,GAAuC,GAAjBA,GAAsBn6B,EAAImtB,cAAc5W,EAAK0X,YAE5F,QAASoM,KACD/oC,EAAM0lC,WAAWrlC,EAAQ6e,UACzBwd,EAASr8B,EAAQ6e,OAAOwd,IAAWA,GArYnC,GACJA,MACAte,EAAa/d,GAAWA,EAAQ+d,WAWhCsqB,GACA1yB,QACI/C,MAAO,SAAU2U,GACb2f,EAAS3f,EAAM,WAEnB+gB,IAAK,WACDjM,EAAO/7B,KAAK,eAGpBqoC,YACI/1B,MAAO,SAAU2U,GACb2f,EAAS3f,EAAM,WAEnB+gB,IAAK,WACDjM,EAAO/7B,KAAK,cAEhBunC,cAAc,GAElBpoB,MACIT,UAAU,EACVpM,MAAO,SAAU2U,GAAV,GAYCqhB,GAQIC,EAnBJvgC,EAAQif,EAAKjf,MACb4wB,EAAauO,EAAoBlgB,GACjCuhB,EAAqB7B,EAAe/N,EACpC4P,GAAmB9nC,SACnBq7B,EAAO/7B,KAAK,SACZwO,EAAKyY,EAAMuhB,GACXzM,EAAO/7B,KAAK,MAEY,aAAxBgI,EAAMygC,gBACN1M,EAAO/7B,KAAK,OAEZsoC,KACAtgC,EAAMqyB,OACNiO,EAAKtoC,KAAK,UAAY+N,EAAIqsB,MAAMpyB,EAAMqyB,OAAS,KAE/CryB,EAAM0gC,YACNJ,EAAKtoC,KAAK,SAAWgI,EAAM0gC,WAAa,KAExC1gC,EAAMJ,WACF2gC,EAAOtnC,EAAEuC,QAAQwE,EAAMJ,SAAUq9B,GACrCqD,EAAKtoC,KAAK,SAAWuoC,EAAO,MAE5BD,EAAK5nC,QACLq7B,EAAO/7B,KAAK,SAAWsoC,EAAKxxB,KAAK,KAAO,MAGhDkxB,IAAK,SAAU/gB,GACX,GAAIjf,GAAQif,EAAKjf,OACbA,EAAMqyB,OAASryB,EAAM0gC,YAAc1gC,EAAMJ,WACzCm0B,EAAO/7B,KAAK,WAEY,aAAxBgI,EAAMygC,gBACN1M,EAAO/7B,KAAK,QAEZ2mC,EAAeQ,EAAoBlgB,IAAOvmB,QAC1Cq7B,EAAO/7B,KAAK,aAIxB2oC,QACIjqB,UAAU,EACVpM,MAAO,SAAU2U,GACb2f,EAAS3f,EAAM,MAEnB+gB,IAAK,WACDjM,EAAO/7B,KAAK,UAGpB4oC,IACIlqB,UAAU,EACVpM,MAAO,SAAU2U,GACb2f,EAAS3f,EAAM,MAEnB+gB,IAAK,WACDjM,EAAO/7B,KAAK,UAGpB6oC,GACInqB,UAAU,EACVpM,MAAO,SAAU2U,GACb2f,EAAS3f,EAAM,WAEnB+gB,IAAK,WACDjM,EAAO/7B,KAAK,eAGpBuD,GACImb,UAAU,EACVpM,MAAO,SAAU2U,GACb2f,EAAS3f,EAAM,OAEnB+gB,IAAK,WACDjM,EAAO/7B,KAAK,WAGpB8oC,GACIpqB,UAAU,EACVpM,MAAO,SAAU2U,GAAV,GAEC2R,GACA5wB,EAGA+gC,CALJhN,GAAO/7B,KAAK,SACR44B,EAAauO,EAAoBlgB,GACjCjf,EAAQ/G,EAAE23B,GAAYsI,OAAO,SAAU39B,EAAGylC,GAC1C,MAAoB,SAAbA,EAAK3lC,OACb,GACC0lC,GACAlvB,SAAU,QACVvM,MAAO,8BAEPtF,IACA+gC,EAASz7B,MAAQtF,EAAMsF,MAClB,mBAAmBiO,KAAKwtB,EAASz7B,SAClCy7B,EAASz7B,MAAQ,6BAA+By7B,EAASz7B,OAE7DsrB,EAAWqQ,OAAOhoC,EAAEuC,QAAQwE,EAAO4wB,GAAa,IAEpDA,EAAW54B,KAAK+oC,GAChBv6B,EAAKyY,EAAM2R,GACXmD,EAAO/7B,KAAK,MAEhBgoC,IAAK,WACDjM,EAAO/7B,KAAK,aAGpBsoC,MACI5pB,UAAU,EACVpM,MAAO,SAAU2U,GAAV,GAECoT,GACAkO,EACAW,CAHJnN,GAAO/7B,KAAK,iBACRq6B,EAAQpT,EAAKzQ,aAAa,SAC1B+xB,EAAOtD,EAAiBhe,EAAKzQ,aAAa,SAC1C0yB,EAAOjiB,EAAKzQ,aAAa,QACzB6jB,IACA0B,EAAO/7B,KAAK,UACZ+7B,EAAO/7B,KAAK+N,EAAIqsB,MAAMC,IACtB0B,EAAO/7B,KAAK,MAEZkpC,IACAnN,EAAO/7B,KAAK,gBACZ+7B,EAAO/7B,KAAKkpC,GACZnN,EAAO/7B,KAAK,MAEZuoC,IACAxM,EAAO/7B,KAAK,cACZ+7B,EAAO/7B,KAAKuoC,GACZxM,EAAO/7B,KAAK,MAEhB+7B,EAAO/7B,KAAK,OAEhBgoC,IAAK,WACDjM,EAAO/7B,KAAK,aAuOxB,OAnOA+nC,GAAOoB,OAASpB,EAAO,YACvBroC,EAAUA,MACqB,IAApBA,EAAQgf,WACfhf,EAAQgf,UAAW,GAgOnBupB,EAAS3jB,IACTyX,EAAShuB,EAAIuT,OAAO7B,EAAK6E,EAAK8C,YAAYlgB,QAAQ,iBAAkB,KAAMxH,GAC1E0oC,IACOrM,IAEXmK,EAAS5hB,GACTyX,EAASA,EAAOjlB,KAAK,IACrBsxB,IACuD,KAAnDrM,EAAO70B,QAAQi+B,EAAM,IAAIj+B,QAAQm+B,EAAU,IACpC,GAEJtJ,KAGfv8B,EAAOiH,GAAU4J,WAAYA,KAC/B/O,OAAOjC,MAAM8lB,SACC,kBAAV/lB,SAAwBA,OAAOyB,IAAMzB,OAAS,SAAU0B,EAAIC,EAAIC,IACrEA,GAAMD,OAEV,SAAU5B,EAAGC,QACVA,OAAO,qBAAsB,qBAAsBD,IACrD,YACG,SAAU8B,EAAGC,GAAb,GACO7B,GAAQiC,OAAOjC,MAAO+pC,EAAe/pC,EAAMoC,GAAG2nC,aAAcr7B,EAAM1O,EAAMoC,GAAGqM,OAAOE,IAClFq7B,EAAYD,EAAa5pC,QACzBC,KAAM,SAAU4N,EAAS3N,GACrB,GAAIkO,GAAO/N,IACXupC,GAAazpC,GAAGF,KAAKG,KAAKgO,EAAMP,EAAS3N,GACrCL,EAAMsC,QAAQC,SAAS6K,MACvB5M,KAAKypC,qBACLzpC,KAAKiU,KAAK,YAAa7S,EAAEa,MAAMjC,KAAKypC,mBAAoBzpC,QAE5D+N,EAAK6R,KAAK7R,EAAKlO,QAAQoW,OACvBlI,EAAKP,QAAQmB,KAAK,QAASZ,EAAKlO,QAAQoW,OACxClI,EAAKU,QAAQE,KAAK,QAASZ,EAAKlO,QAAQoW,OACxClI,EAAKkG,KAAK,OAAQ,WACd,GAAIlG,EAAKlO,QAAQ6pC,SAAU,CACvB,GAAsBC,GAAlB1M,EAAOlvB,EAAKkvB,IAChBA,GAAK5nB,KACDu0B,WAAY,SACZx/B,MAAO,SAEXu/B,EAAY1M,EAAK7yB,QACbu/B,EAAY,EACZA,GAAa,GAEbA,EAAY57B,EAAK87B,WAErB5M,EAAK5nB,IAAI,QAASs0B,EAAYnqC,EAAMsC,QAAQgoC,aAC5C/7B,EAAK87B,WAAaF,MAI9B9pC,SACI2D,KAAM,YACN4D,UAEJqiC,mBAAoB,WAAA,GAIZN,GAGKzlC,EAQLqmC,EACAt7B,EAfAu7B,EAAYhqC,KACZyN,EAAQu8B,EAAUv8B,QAClBw8B,EAAOjqC,KAAKkqC,WAAWD,OAEvBrpB,EAAO,GACPa,EAASjiB,EAAMgoC,UACnB,KAAS9jC,EAAI,EAAGA,EAAIumC,EAAKppC,OAAQ6C,IAC7BylC,EAAOc,EAAKvmC,GACZkd,GAAQ,kBAAqBa,EAAO0nB,EAAK17B,OAAS,IAC9C07B,EAAK17B,OAASA,IACdmT,GAAQ,aAEZA,GAAQ,IAAMa,EAAO0nB,EAAKvpB,MAAQ,WAElCmqB,GAAS3oC,EAAE,oCAAwCwf,EAAO,aAC1DnS,EAAUrN,EAAEpB,KAAKwN,SAASc,QAAQ,aACtCG,EAAQgM,KAAK,qBAAqBlH,SAClCw2B,EAAOx3B,YAAY9D,GACnBs7B,EAAOrxB,GAAG,SAAU,WAChBsxB,EAAUv8B,MAAMzN,KAAKyN,OACrBu8B,EAAUtpC,QAAQ,aAG1B+M,MAAO,SAAUA,GACb,GAAIM,GAAO/N,KAAMk8B,EAASqN,EAAazpC,GAAG2N,MAAM1N,KAAKgO,EAAMN,EAC3D,OAAIA,KAAUpM,EACH66B,GAENqN,EAAazpC,GAAG2N,MAAM1N,KAAKgO,IAC5BA,EAAK6R,KAAK7R,EAAKlO,QAAQoW,OAD3B,IAIJk0B,SAAU,SAAU14B,GAChB,GAA0E/N,GAAGsjC,EAAK1L,EAAWnzB,EAAzF4F,EAAO/N,KAAMkqC,EAAan8B,EAAKm8B,WAAY1kB,EAAQ0kB,EAAWvS,MAIlE,KAHIlmB,GACA1D,EAAKkvB,KAAK5nB,IAAI,mBAAoBnH,EAAI4xB,uBAAuB1+B,EAAEqQ,KAE9D/N,EAAI,EAAGA,EAAI8hB,EAAM3kB,OAAQ6C,IAC1BsjC,EAAMxhB,EAAM9hB,GAAGsjC,KAAO,OACtB1L,EAAY9V,EAAM9hB,GAAG43B,UACrBnzB,EAAQ+F,EAAI2xB,YAAYpuB,EAAMu1B,GAAO1L,UAAWA,IAChDnzB,EAAQA,EAAMd,QAAQ,KAAM,KAC5Bme,EAAM9hB,GAAGyE,MAAQA,EAAQ,uBAE7B+hC,GAAWxpC,QAAQ,YAG3BlB,GAAMoC,GAAG0hB,OAAOkmB,GAChBhqC,EAAMoC,GAAGqM,OAAOu7B,UAAYA,GAC9B/nC,OAAOjC,MAAM8lB,SACC,kBAAV/lB,SAAwBA,OAAOyB,IAAMzB,OAAS,SAAU0B,EAAIC,EAAIC,IACrEA,GAAMD,OAEV,SAAU5B,EAAGC,QACVA,OAAO,gBAAiB,qBAAsBD,IAChD,YACG,SAAU8B,GAmKP,QAASgpC,GAAkB33B,EAAO01B,EAAKhmB,EAAaC,GAApD,GAIQ9H,GAcAmK,EACA4lB,EAOAC,CAzBJ,IAAI73B,GAAS01B,EACT,MAAO/lB,GAAYD,CAGvB,KADI7H,EAAY6tB,EACT7tB,GAAaA,EAAUhG,YAAc7B,GACxC6H,EAAYA,EAAUhG,UAE1B,IAAIgG,EACA,MAAOid,GAAcjd,GAAa6H,CAGtC,KADA7H,EAAY7H,EACL6H,GAAaA,EAAUhG,YAAc6zB,GACxC7tB,EAAYA,EAAUhG,UAE1B,IAAIgG,EACA,MAAO8H,GAAYmV,EAAcjd,GAAa,CAIlD,KAFImK,EAAOvW,EAAIiyB,eAAe1tB,EAAO01B,GACjCkC,EAAgB53B,EACb43B,GAAiBA,EAAc/1B,YAAcmQ,GAChD4lB,EAAgBA,EAAc/1B,UAMlC,KAJK+1B,IACDA,EAAgB5lB,GAEhB6lB,EAAcnC,EACXmC,GAAeA,EAAYh2B,YAAcmQ,GAC5C6lB,EAAcA,EAAYh2B,UAK9B,OAHKg2B,KACDA,EAAc7lB,GAEd4lB,GAAiBC,EACV,EAEJ/S,EAAc+S,GAAe/S,EAAc8S,GAEtD,QAASE,GAAenwB,EAAOkjB,GAC3B,QAASkN,GAAepwB,GACpB,IACI,MAAOgwB,GAAkBhwB,EAAMqG,eAAgBrG,EAAM8H,aAAc9H,EAAM+H,YAAa/H,EAAMgI,WAAa,EAC3G,MAAOqoB,GACL,OAAO,GAGXD,EAAepwB,KACXkjB,GACAljB,EAAM6G,wBAA0B7G,EAAM8H,aAAe9H,EAAMqG,eAC3DrG,EAAMgI,UAAYhI,EAAM+H,cAExB/H,EAAM6G,wBAA0B7G,EAAMqG,eAAiBrG,EAAM8H,aAC7D9H,EAAM+H,YAAc/H,EAAMgI,WAE9BhI,EAAMoG,WAAY,GAG1B,QAASkqB,GAAsBtwB,GAC3BA,EAAMoG,UAAYpG,EAAMqG,gBAAkBrG,EAAM8H,cAAgB9H,EAAM+H,aAAe/H,EAAMgI,SAE3F,KADA,GAAIgF,GAAOhN,EAAMqG,eACV2G,GAAQA,GAAQhN,EAAM8H,eAAiBhU,EAAI0pB,aAAaxQ,EAAMhN,EAAM8H,eACvEkF,EAAOA,EAAK9S,UAEhB8F,GAAM6G,wBAA0BmG,EAiKpC,QAASujB,GAAmBC,GACxB,GAAIvwB,GAAOuwB,EAAUC,YAAaC,EAAQF,EAAUC,WAGpD,OAFAxwB,GAAKiB,UAAS,GACdwvB,EAAMxvB,UAAS,GACRpN,EAAIiyB,eAAeyK,EAAU9wB,gBAAiBO,EAAKP,gBAAiBgxB,EAAMhxB,iBAErF,QAASixB,GAAeH,EAAWxwB,EAAO3H,GACtC,GAAyWu4B,GAArW1wB,EAAYF,EAAM3H,EAAQ,iBAAmB,gBAAiB8H,EAASH,EAAM3H,EAAQ,cAAgB,aAAcw4B,EAAa,EAAGC,EAASxT,EAAWpd,GAAY6wB,EAAaD,EAAS5wB,EAAYA,EAAUie,WAAWhe,IAAW,KAAM6wB,EAAeF,EAAS5wB,EAAUhG,WAAagG,EAAW5E,EAAM0E,EAAM+e,cAAekS,EAAS31B,EAAIjE,KAAK65B,iBAC5T,IAAtBhxB,EAAUa,UAAuC,GAAtBb,EAAUa,WACrC8vB,EAAa1wB,GAEZ6wB,IACDA,EAAe11B,EAAIjE,MAEoB,OAAvC25B,EAAapxB,SAASrT,eACtB0kC,EAAOE,kBAAkBH,GACzBC,EAAO/vB,UAAS,GAChBsvB,EAAUY,YAAY/4B,EAAQ,eAAiB,aAAc44B,KAE7DL,EAAaI,EAAat8B,aAAaZ,EAAI4F,OAAO4B,EAAK,KAAMy1B,GAC7DE,EAAOE,kBAAkBP,GACzB98B,EAAIqF,OAAOy3B,GACXK,EAAO54B,EAAQ,YAAc,WAAW,YAAaw4B,GACrDI,EAAO/vB,UAAS,GAChBsvB,EAAUY,YAAY/4B,EAAQ,eAAiB,aAAc44B,IAGrE,QAASI,GAAcb,EAAWxwB,EAAO+lB,EAAgB1tB,GACrD,GAA2IypB,GAAQ5U,EAAQvN,EAAQ+tB,EAAUrtB,EAAM8J,EAAMnd,EAArL4jC,EAAa98B,EAAI4F,OAAOsG,EAAM+e,cAAe,KAAMkS,EAAST,EAAUC,YAAaa,EAAaj5B,EAAQ,eAAiB,aAAmEk5B,GAAW,CAC3MX,GAAWp6B,UAAY,SACvBy6B,EAAO/vB,SAAS7I,GAChB6U,EAAS+jB,EAAOvxB,gBACX5L,EAAIoU,iBAAiB6d,EAAgB7Y,KACtCA,EAAS6Y,EAEb,GACQwL,GACArkB,EAAOxY,aAAak8B,EAAYA,EAAWvT,kBAE3CnQ,EAAOnO,YAAY6xB,GACnBW,GAAW,GAEfN,EAAOE,kBAAkBP,UACnB9O,EAASmP,EAAOO,iBAAiBF,EAAYd,IAAc,GAAKI,EAAWvT,gBACrF1d,GAASixB,EAAWvjB,YAChByU,OAAgBxE,EAAW3d,IAC3BsxB,EAAOG,YAAY/4B,EAAQ,aAAe,WAAYm4B,GACtD18B,EAAIqF,OAAOy3B,GACXzmB,GACIxK,EACAsxB,EAAOzrB,KAAK/e,UAGhBinC,GAAYr1B,GAASu4B,EAAWvT,gBAChChd,EAAOhI,GAASu4B,EAAWvjB,YACvBiQ,EAAWjd,GACX8J,GACI9J,EACA,GAEGid,EAAWoQ,GAClBvjB,GACIujB,EACAA,EAASjnC,SAGbuG,EAAQmwB,EAAcyT,GAElBzmB,EADA+C,EAAOG,aAAergB,GAASkgB,EAAOiR,WAAW13B,OAAS,GAEtDymB,EAAOG,YACP,IAIAH,EACAlgB,IAIZ8G,EAAIqF,OAAOy3B,IAEf5wB,EAAM3H,EAAQ,WAAa,UAAUuuB,MAAM5mB,EAAOmK,GApdzD,GAoOOsnB,GAgGAC,EAkJAC,EAoBAC,EASAC,EAuBAp0B,EAoFAq0B,EAwKAC,EACA5rB,EAtwBA/gB,EAAQiC,OAAOjC,MAAOkC,EAAQlC,EAAMkC,MAAO/B,EAASyB,EAAEzB,OAAQiH,EAASpH,EAAMoC,GAAGqM,OAAQjM,EAAUxC,EAAMsC,QAAQE,QAASkM,EAAMtH,EAAOuH,IAAKopB,EAAgBrpB,EAAIqpB,cAAeG,EAAaxpB,EAAIwpB,WAAYG,EAAsB3pB,EAAI2pB,oBAAqBS,EAAgBpqB,EAAIoqB,cAAenR,EAAYjZ,EAAIiZ,UAC7SxF,GACAyqB,oBAAqB,SAAU3qC,GAC3B,GAAKA,EAGL,MAAM,gBAAkBA,GAGjBA,EAAOigB,eAFH,GAAIoqB,GAAarqC,EAAOqL,WAIvCu/B,mBAAoB,SAAUjyB,GAC1B,GAAIkyB,GAAgB/rB,EAAWgsB,kBAAkBnyB,EACjD,OAAOuH,GAAeC,sBAAsB0qB,IAEhD1qB,sBAAuB,SAAU9U,GAC7B,MAAO6U,GAAeyqB,oBAAoBl+B,EAAIqrB,mBAAmBzsB,MAGrE0/B,EAAW9qC,EAAM/B,QACjBC,KAAM,SAAU8V,GACZtU,EAAEzB,OAAOK,MACLm5B,cAAezjB,EACf+K,eAAgB/K,EAChBwM,aAAcxM,EACduL,wBAAyBvL,EACzByM,YAAa,EACbC,UAAW,EACX5B,WAAW,KAGnBnF,SAAU,SAAU+L,EAAM7M,GACtBva,KAAKygB,eAAiB2G,EACtBpnB,KAAKmiB,YAAc5H,EACnBmwB,EAAsB1qC,MACtBuqC,EAAevqC,MAAM,IAEzBysC,OAAQ,SAAUrlB,EAAM7M,GACpBva,KAAKkiB,aAAekF,EACpBpnB,KAAKoiB,UAAY7H,EACjBmwB,EAAsB1qC,MACtBuqC,EAAevqC,MAAM,IAEzB0sC,eAAgB,SAAUtlB,GACtBpnB,KAAKqb,SAAS+L,EAAK9S,WAAYijB,EAAcnQ,KAEjDulB,cAAe,SAAUvlB,GACrBpnB,KAAKqb,SAAS+L,EAAK9S,WAAYijB,EAAcnQ,GAAQ,IAEzDwlB,aAAc,SAAUxlB,GACpBpnB,KAAKysC,OAAOrlB,EAAK9S,WAAYijB,EAAcnQ,KAE/CylB,YAAa,SAAUzlB,GACnBpnB,KAAKysC,OAAOrlB,EAAK9S,WAAYijB,EAAcnQ,GAAQ,IAEvDrK,WAAY,SAAUqK,GAClBpnB,KAAK0sC,eAAetlB,GACpBpnB,KAAK6sC,YAAYzlB,IAErB0lB,mBAAoB,SAAU1lB,GAC1BpnB,KAAKqb,SAAS+L,EAAM,GACpBpnB,KAAKysC,OAAOrlB,EAAMA,EAAuB,IAAlBA,EAAKjM,SAAiB,aAAe,aAAata,SAE7Eya,SAAU,SAAUgiB,GAChB,GAAIvvB,GAAO/N,IACPs9B,GACAvvB,EAAK0+B,OAAO1+B,EAAK0S,eAAgB1S,EAAKoU,aAEtCpU,EAAKsN,SAAStN,EAAKmU,aAAcnU,EAAKqU,YAG9C2qB,eAAgB,WACZ,GAAIh/B,GAAO/N,KAAMoa,EAAQrM,EAAKi/B,YAC1Bj/B,GAAK0S,gBAAkB1S,EAAKkT,yBAC5BlT,EAAK4+B,cAAc9U,EAAoB9pB,EAAKkT,wBAAyBlT,EAAK0S,iBAE9E1S,EAAKuN,UAAS,GACb,QAAS2xB,GAAclV,GACpB,KAAOA,EAAStd,QACRsd,EAASmV,oBACTD,EAAclV,EAASoV,sBAEvBpV,EAASxkB,UAGnB,GAAIs4B,GAAczxB,KAExBsI,cAAe,WACX,GAAI5V,GAAWyT,EAAWgsB,kBAAkBvsC,KAC5C,OAAO,SAASotC,GAAarV,GAEzB,IADA,GAAI3Q,GAAMimB,EAAOvgC,EAASwgC,yBACnBlmB,EAAO2Q,EAAStd,QACnB2M,EAAOA,EAAKuR,WAAWZ,EAASmV,qBAC5BnV,EAASmV,qBACT9lB,EAAKjO,YAAYi0B,EAAarV,EAASoV,uBAE3CE,EAAKl0B,YAAYiO,EAErB,OAAOimB,IACT,GAAIxB,GAAc7rC,QAExButC,gBAAiB,WAAA,GAMTzgC,GALAiB,EAAO/N,KAAMoa,EAAQrM,EAAKi/B,YAM9B,OALIj/B,GAAK0S,gBAAkB1S,EAAKkT,yBAC5BlT,EAAK4+B,cAAc9U,EAAoB9pB,EAAKkT,wBAAyBlT,EAAK0S,iBAE9E1S,EAAKuN,UAAS,GACVxO,EAAWyT,EAAWgsB,kBAAkBx+B,GACrC,QAASy/B,GAAezV,GAE3B,IADA,GAAI3Q,GAAMimB,EAAOvgC,EAASwgC,yBACnBlmB,EAAO2Q,EAAStd,QACfsd,EAASmV,qBACT9lB,EAAOA,EAAKuR,WAAU,GACtBvR,EAAKjO,YAAYq0B,EAAezV,EAASoV,wBAEzCpV,EAASxkB,OAAOxF,EAAK0/B,eAEzBJ,EAAKl0B,YAAYiO,EAErB,OAAOimB,IACT,GAAIxB,GAAczxB,KAExBszB,WAAY,SAAUtmB,GAClB,GAAIrZ,GAAO/N,IACP03B,GAAW3pB,EAAK0S,iBACZ1S,EAAKoU,aAAepU,EAAK0S,eAAerF,UAAUva,QAClDqN,EAAIsqB,cAAczqB,EAAK0S,eAAgB1S,EAAKoU,aAEhDjU,EAAIqE,YAAY6U,EAAMrZ,EAAK0S,iBAE3BvS,EAAIkwB,SAASrwB,EAAK0S,eAAgB2G,EAAMrZ,EAAKoU,aAEjDpU,EAAKsN,SAAStN,EAAK0S,eAAgB1S,EAAKoU,cAE5C6qB,WAAY,WACR,MAAO5rC,GAAEzB,OAAO,GAAI6sC,GAASxsC,KAAKm5B,gBAC9B1Y,eAAgBzgB,KAAKygB,eACrByB,aAAcliB,KAAKkiB,aACnBjB,wBAAyBjhB,KAAKihB,wBAC9BkB,YAAaniB,KAAKmiB,YAClBC,UAAWpiB,KAAKoiB,UAChB5B,UAAWxgB,KAAKwgB,UAChBitB,cAAeztC,QAGvB26B,SAAU,WACN,GAAIgT,GAAgB3tC,KAAKygB,eAAezG,SAAU4zB,EAAc5tC,KAAKkiB,aAAalI,QAClF,QACqB,SAAjB2zB,EAA2B3tC,KAAKygB,eAAerF,UAAYuyB,GAC3D,IACA3tC,KAAKmiB,YACL,QACe,SAAfyrB,EAAyB5tC,KAAKkiB,aAAa9G,UAAYwyB,GACvD,IACA5tC,KAAKoiB,UACL,MAIZoqB,GAASqB,SAAW,SAAUzmB,GAC1B,MAAO,IAAIolB,GAASplB,EAAK+R,gBAmEzB0S,EAAgBnqC,EAAM/B,QACtBC,KAAM,SAAUwa,GAOZ,GANAhZ,EAAEzB,OAAOK,MACLoa,MAAOA,EACP0zB,SAAU,KACVC,MAAO,KACPC,KAAM,QAEN5zB,EAAMoG,UAAV,CAGA,GAAIiE,GAAOrK,EAAM6G,uBACjBjhB,MAAK+tC,MAAQ3zB,EAAMqG,gBAAkBgE,GAASiT,EAAWtd,EAAMqG,gBAAuEoX,EAAoBpT,EAAMrK,EAAMqG,gBAArFrG,EAAMqG,eAAe8X,WAAWne,EAAM+H,aACvHniB,KAAKguC,KAAO5zB,EAAM8H,cAAgBuC,GAASiT,EAAWtd,EAAM8H,cAAiE2V,EAAoBpT,EAAMrK,EAAM8H,cAAcuF,YAA/FrN,EAAM8H,aAAaqW,WAAWne,EAAMgI,aAEpH6rB,QAAS,WACL,QAASjuC,KAAK+tC,OAElBtzB,KAAM,WACF,GAAI1M,GAAO/N,KAAM6T,EAAU9F,EAAK+/B,SAAW//B,EAAKggC,KAYhD,OAXAhgC,GAAKggC,MAAQhgC,EAAK+/B,UAAY//B,EAAK+/B,SAASrmB,aAAe1Z,EAAKigC,KAAOjgC,EAAK+/B,SAASrmB,YAAc,KAC/FiQ,EAAW3pB,EAAK+/B,YACZ//B,EAAKqM,MAAM8H,cAAgBnU,EAAK+/B,WAChCj6B,EAAUA,EAAQ8kB,WAAU,GAC5B9kB,EAAQglB,WAAW9qB,EAAKqM,MAAMgI,UAAWvO,EAAQhT,OAASkN,EAAKqM,MAAMgI,YAErErU,EAAKqM,MAAMqG,gBAAkB1S,EAAK+/B,WAClCj6B,EAAUA,EAAQ8kB,WAAU,GAC5B9kB,EAAQglB,WAAW,EAAG9qB,EAAKqM,MAAM+H,eAGlCtO,GAEXq6B,SAAU,SAAUC,GAEhB,QAAS1zB,KAGL,MAFA1M,GAAK+/B,SAAW//B,EAAKggC,MACrBhgC,EAAKggC,MAAQhgC,EAAK+/B,UAAY//B,EAAK+/B,SAASrmB,aAAe1Z,EAAKigC,KAAOjgC,EAAK+/B,SAASrmB,YAAc;AAC5F1Z,EAAK+/B,SAEhB,IANA,GAAiBj6B,GAAb9F,EAAO/N,KAMJ6T,EAAU4G,KACT1M,EAAKm/B,oBACLn/B,EAAKo/B,qBAAqBe,SAASC,GAEnCA,EAASt6B,EAGjB,OAAOA,IAEXN,OAAQ,SAAUk6B,GAAV,GACuIh7B,GAAO01B,EAAKr1B,EAe/IwU,EAEI8mB,EAjBRrgC,EAAO/N,KAAMquC,EAAmBtgC,EAAKqM,MAAMqG,gBAAkB1S,EAAK+/B,SAAUQ,EAAiBvgC,EAAKqM,MAAM8H,cAAgBnU,EAAK+/B,QAC7HpW,GAAW3pB,EAAK+/B,YAAcO,GAAoBC,IAClD77B,EAAQ47B,EAAmBtgC,EAAKqM,MAAM+H,YAAc,EACpDgmB,EAAMmG,EAAiBvgC,EAAKqM,MAAMgI,UAAYrU,EAAK+/B,SAASjtC,OAC5DiS,EAAQq1B,EAAM11B,EACVg7B,IAAkBY,GAAoBC,KAClCvgC,EAAK+/B,UAAYL,EAAchtB,gBAAkBhO,GAASg7B,EAActrB,cACxEsrB,EAActrB,aAAerP,GAE7B/E,EAAK+/B,UAAYL,EAAcvrB,cAAgBimB,GAAOsF,EAAcrrB,YACpEqrB,EAAcrrB,WAAatP,IAGnC/E,EAAK+/B,SAASjV,WAAWpmB,EAAOK,KAE5BwU,EAASvZ,EAAK+/B,SAASx5B,YACvBm5B,GAAkB1/B,EAAKqM,MAAMqG,gBAAkB6G,GAAUvZ,EAAKqM,MAAM8H,cAAgBoF,IAChF8mB,EAAY7W,EAAcxpB,EAAK+/B,UAC/BxmB,GAAUmmB,EAAchtB,gBAAkB2tB,GAAaX,EAActrB,cACrEsrB,EAActrB,aAAe,GAE7BmF,GAAUmmB,EAAcvrB,cAAgBksB,EAAYX,EAAcrrB,YAClEqrB,EAAcrrB,WAAa,IAGnClU,EAAIqF,OAAOxF,EAAK+/B,YAGxBZ,kBAAmB,WACf,OAAQxV,EAAW13B,KAAK8tC,YAAc5/B,EAAIoU,iBAAiBtiB,KAAK8tC,SAAU9tC,KAAKoa,MAAMqG,iBAAmBvS,EAAIoU,iBAAiBtiB,KAAK8tC,SAAU9tC,KAAKoa,MAAM8H,gBAE3JirB,mBAAoB,WAChB,MAAO,IAAItB,GAAc7rC,KAAKuuC,gBAElCA,YAAa,WACT,GAAIxgC,GAAO/N,KAAMwuC,EAAWzgC,EAAKqM,MAAM4yB,YAQvC,OAPAwB,GAAS1B,mBAAmB/+B,EAAK+/B,UAC7B5/B,EAAIoU,iBAAiBvU,EAAK+/B,SAAU//B,EAAKqM,MAAMqG,iBAC/C+tB,EAASnzB,SAAStN,EAAKqM,MAAMqG,eAAgB1S,EAAKqM,MAAM+H,aAExDjU,EAAIoU,iBAAiBvU,EAAK+/B,SAAU//B,EAAKqM,MAAM8H,eAC/CssB,EAAS/B,OAAO1+B,EAAKqM,MAAM8H,aAAcnU,EAAKqM,MAAMgI,WAEjDosB,KAGX1C,EAAepqC,EAAM/B,QACrBC,KAAM,SAAU8V,GACZ1V,KAAKm5B,cAAgBzjB,EACrB1V,KAAKgiB,WAAa,GAEtBD,SAAU,SAAU3H,GAChB,GAAIwwB,GAAY5qC,KAAKm5B,cAAc1nB,KAAK65B,iBACxCP,GAAeH,EAAWxwB,GAAO,GACjC2wB,EAAeH,EAAWxwB,GAAO,GACjCwwB,EAAUb,UAEdjoB,gBAAiB,WACb,GAAID,GAAY7hB,KAAKm5B,cAActX,SACb,SAAlBA,EAAUjU,MACViU,EAAU8E,SAGlB1E,WAAY,WAAA,GACJ2oB,GAA+Fp9B,EAAS2yB,EAyBpG1f,EAAuCyB,EAAmCzQ,EAEtEg9B,EAAoBC,EA3BjBt0B,EAAQ,GAAIoyB,GAASxsC,KAAKm5B,eAAgBtX,EAAY7hB,KAAKm5B,cAActX,SACxF,KAGI,GAFA+oB,EAAY/oB,EAAU/E,cACtBtP,EAAUo9B,EAAUzB,KAAOyB,EAAUzB,KAAK,GAAKyB,EAAU9wB,gBACrDtM,EAAQ2rB,eAAiBn5B,KAAKm5B,cAC9B,MAAO/e,GAEb,MAAOqwB,GACL,MAAOrwB,GAEX,GAAsB,WAAlByH,EAAUjU,KACVwM,EAAM2C,WAAW6tB,EAAUzB,KAAK,QAehC,IAbAhJ,EAAiBwK,EAAmBC,GACpCa,EAAcb,EAAWxwB,EAAO+lB,GAAgB,GAChDsL,EAAcb,EAAWxwB,EAAO+lB,GAAgB,GACX,GAAjC/lB,EAAMqG,eAAetF,UACrBf,EAAMiB,SAASjB,EAAM8H,aAAc9H,EAAM+H,aAEV,GAA/B/H,EAAM8H,aAAa/G,UACnBf,EAAMqyB,OAAOryB,EAAMqG,eAAgBrG,EAAMgI,WAEe,IAAxDwoB,EAAUgB,iBAAiB,aAAchB,IACzCxwB,EAAMkB,UAAS,GAEfmF,EAAiBrG,EAAMqG,eAAgByB,EAAe9H,EAAM8H,aAAczQ,EAAOzR,KAAKm5B,cAAc1nB,OACnG2I,EAAMoG,WAAmC,IAAtBpG,EAAM+H,aAAqB/H,EAAMgI,WAAakW,EAAcle,EAAM8H,eAAmBzB,GAAkByB,GAAgBwV,EAAWjX,IAAmBA,EAAenM,YAAc7C,GAAO,CAE7M,IADIg9B,GAAa,EAAOC,GAAW,EACM,IAAlCnX,EAAc9W,IAAyBA,GAAkBA,EAAenM,WAAWiT,YAAc9G,GAAkBhP,GACtHgP,EAAiBA,EAAenM,WAChCm6B,GAAa,CAEjB,MAAOlX,EAAcrV,IAAiBoW,EAAcpW,EAAa5N,YAAc,GAAK4N,GAAgBA,EAAa5N,WAAW6nB,WAAaja,GAAgBzQ,GACrJyQ,EAAeA,EAAa5N,WAC5Bo6B,GAAW,CAEXjuB,IAAkBhP,GAAQyQ,GAAgBzQ,GAAQg9B,GAAcC,IAChEt0B,EAAMiB,SAASoF,EAAgB,GAC/BrG,EAAMqyB,OAAOvqB,EAAcoW,EAAc7mB,KAIrD,MAAO2I,MAsFX2xB,EAAkBrqC,EAAM/B,QACxBC,KAAM,SAAUwa,GACZpa,KAAK2uC,UAAY,WAEb,QAASC,GAAMxnB,GACX,GAAIlZ,EAAIgQ,GAAGkJ,EAAM,QAA2B,GAAjBA,EAAKjM,YAAmBjN,EAAIouB,aAAalV,IAA2B,UAAlBA,EAAKhM,WAC9Eie,EAAMl5B,KAAKinB,OAGX,KADAA,EAAOA,EAAKG,WACLH,GACHwnB,EAAMxnB,GACNA,EAAOA,EAAKK,YARxB,GAAI4R,KAaJ,OADA,IAAIwS,GAAczxB,GAAO8zB,SAASU,GAC3BvV,MAIf2S,EAA0BH,EAAclsC,QACxCutC,kBAAmB,WACf,GAAIjH,GAAYr/B,EAAOiX,YAAcjX,EAAOiX,WAAWooB,SACvD,OAAOA,KAAcA,EAAUjmC,KAAK8tC,WAAajC,EAAc/rC,GAAGotC,kBAAkBntC,KAAKC,OAE7FmtC,mBAAoB,WAChB,MAAO,IAAInB,GAAwBhsC,KAAKuuC,kBAG5CtC,EAA4BvqC,EAAM/B,QAClCC,KAAM,SAAUwa,GACZpa,KAAK2uC,UAAY,WAGb,QAASC,GAAMxnB,GACX,GAAI6e,IAAcA,EAAU7e,GACxB,GAAIlZ,EAAIgQ,GAAGkJ,EAAM,QAA2B,GAAjBA,EAAKjM,YAAmBjN,EAAIouB,aAAalV,IAA2B,UAAlBA,EAAKhM,WAC9Eie,EAAMl5B,KAAKinB,OAGX,KADAA,EAAOA,EAAKG,WACLH,GACHwnB,EAAMxnB,GACNA,EAAOA,EAAKK,YAXf,GACT4R,MACA4M,EAAYr/B,EAAOiX,YAAcjX,EAAOiX,WAAWooB,SAevD,OADA,IAAI+F,GAAwB5xB,GAAO8zB,SAASU,GACrCvV,MAIfxhB,EAAenW,EAAM/B,QACrBC,KAAM,SAAUwa,EAAO3I,EAAM5R,GACzB,GAAIkO,GAAO/N,IACX+N,GAAKqM,MAAQA,EACbrM,EAAK8gC,SAAWtuB,EAAWgsB,kBAAkBnyB,GAC7CrM,EAAK0D,KAAOA,GAAQ1D,EAAK+gC,YAAY10B,GACV,QAAvBlM,EAAI1K,KAAKuK,EAAK0D,QACd1D,EAAK8gC,SAAW9gC,EAAK0D,MAEzB1D,EAAK0S,eAAiB1S,EAAKghC,WAAW30B,EAAMqG,gBAC5C1S,EAAKmU,aAAenU,EAAKghC,WAAW30B,EAAM8H,cAC1CnU,EAAKoU,YAAcpU,EAAKwM,OAAOH,EAAMqG,eAAgBrG,EAAM+H,aAC3DpU,EAAKqU,UAAYrU,EAAKwM,OAAOH,EAAM8H,aAAc9H,EAAMgI,WACvDrU,EAAK6P,WAAa/d,GAAWA,EAAQ+d,WACjC7P,EAAK6P,aACL7P,EAAKihC,qBAAuBpoC,EAAOiX,WAAWoxB,iBAAiBlhC,EAAK0D,OAExE1D,EAAK6S,KAAO7S,EAAK0D,KAAKb,UAClB7C,EAAK6P,aAAe7P,EAAKihC,qBAAqBroB,OAC9C/f,EAAOiX,WAAWqxB,kBAAkBnhC,EAAK0D,KAAM1D,EAAKihC,uBAG5D5nC,MAAO,SAAUggB,GAEb,IAFG,GAGKjM,GAFJ+gB,EAAS,EAAGiT,EAAW/nB,EAAKjM,SACzBiM,EAAOA,EAAKqQ,iBACXtc,EAAWiM,EAAKjM,SACJ,GAAZA,GAAiBg0B,GAAYh0B,GAC7B+gB,IAEJiT,EAAWh0B,CAEf,OAAO+gB,IAEX4S,YAAa,SAAU10B,GAEnB,IADA,GAAIqK,GAAOrK,EAAM6G,wBACVwD,IAA0B,GAAjBA,EAAKtJ,UAAiBsJ,EAAKsU,cAAgBtU,EAAKsU,WAAW/rB,iBAA8E,SAA3DyX,EAAKsU,WAAW/rB,gBAAgBoO,UAAUzU,iBACpI8d,EAAOA,EAAKnQ,UAEhB,OAAOmQ,IAEX2qB,YAAa,WACT,GAAIrhC,GAAO/N,IACXkO,GAAIswB,eAAezwB,EAAK0D,MACxB1D,EAAK0D,KAAKb,UAAY7C,EAAK6S,KACvB7S,EAAK6P,aAAe7P,EAAKihC,qBAAqBroB,OAC9C/f,EAAOiX,WAAWqxB,kBAAkBnhC,EAAK0D,KAAM1D,EAAKihC,uBAG5Dz0B,OAAQ,SAAU6M,EAAM3Z,GACpB,GAAqB,GAAjB2Z,EAAKjM,SACL,MAAQiM,EAAOA,EAAKqQ,kBAAqC,GAAjBrQ,EAAKjM,UACzC1N,GAAS2Z,EAAKhM,UAAUva,MAGhC,OAAO4M,IAEXshC,WAAY,SAAU3nB,GAElB,IADA,GAAIioB,MACGjoB,GAAQpnB,KAAK6uC,UAChBQ,EAAKlvC,KAAKH,KAAKoH,MAAMggB,IACrBA,EAAOA,EAAK9S,UAEhB,OAAO+6B,IAEXC,aAAc,SAAUl1B,EAAO3H,EAAO48B,EAAME,GAExC,IADA,GAAInoB,GAAOpnB,KAAK6uC,SAAUhuC,EAASwuC,EAAKxuC,OAAQ0Z,EAASg1B,EAClD1uC,KAAYumB,GACfA,EAAOA,EAAKmR,WAAW8W,EAAKxuC,GAEhC,MAAOumB,GAAyB,GAAjBA,EAAKjM,UAAiBiM,EAAKhM,UAAUva,OAAS0Z,GACzDA,GAAU6M,EAAKhM,UAAUva,OACzBumB,EAAOA,EAAKK,WAEZL,IAAQ7M,GAAU,GAClBH,EAAM3H,EAAQ,WAAa,UAAU2U,EAAM7M,IAGnDiH,QAAS,WACL,GAAIzT,GAAO/N,KAAMk8B,EAASnuB,EAAKqM,MAAM4yB,YAGrC,OAFAj/B,GAAKuhC,aAAapT,GAAQ,EAAMnuB,EAAK0S,eAAgB1S,EAAKoU,aAC1DpU,EAAKuhC,aAAapT,GAAQ,EAAOnuB,EAAKmU,aAAcnU,EAAKqU,WAClD8Z,KAGXgQ,EAASxqC,EAAM/B,QACfC,KAAM,WACFI,KAAKwvC,MAAQ,MAEjBC,SAAU,SAAUr1B,GAAV,GACFrM,GAAO/N,KACPwvC,EAAQzhC,EAAKyhC,MAAQthC,EAAI4F,OAAOyM,EAAWgsB,kBAAkBnyB,GAAQ,QAAUkhB,UAAW,YAK9F,OAJAlhB,GAAMszB,WAAW8B,GACjBthC,EAAIitB,aAAaqU,EAAM/X,iBACvBvpB,EAAIitB,aAAaqU,EAAM/nB,aACvBrN,EAAM2C,WAAWyyB,GACVA,GAEXE,YAAa,SAAUt1B,GAAV,GAKLE,GACAq1B,EAGAvoB,EAIIwoB,EAZJ7hC,EAAO/N,KAAM8nC,EAAW/5B,EAAKyhC,MAAM/X,gBAAiBtV,EAAc,CAClE2lB,KACA3lB,EAAcuV,EAAWoQ,GAAYA,EAAS1sB,UAAUva,OAAS02B,EAAcuQ,IAE/ExtB,EAAYvM,EAAKyhC,MAAMl7B,WACvBq7B,EAAiB7H,EAAWvQ,EAAcuQ,GAAY,EAC1D55B,EAAIqF,OAAOxF,EAAKyhC,OAChBroB,EAAU7M,GACN8M,EAAO9M,EAAUie,WAAWoX,GAC5BjY,EAAWtQ,GACXhN,EAAMiB,SAAS+L,EAAMjF,GACdiF,GACHwoB,EAAW1hC,EAAI+tB,aAAa7U,GAC5BwoB,EACAx1B,EAAMiB,SAASu0B,EAAUA,EAASx0B,UAAUva,QAE5CuZ,EAAM0tB,EAAW,gBAAkB,kBAAkB1gB,KAGpDplB,EAAQie,MAAS3F,EAAU1J,YAC5B0J,EAAU1J,UAAY,wBAE1BwJ,EAAM0yB,mBAAmBxyB,IAE7BF,EAAMkB,UAAS,IAEnBu0B,IAAK,SAAUz1B,EAAO01B,GAAjB,GAQGC,GAUIjqB,EAjBJ/X,EAAO/N,KACPwgB,EAAYpG,EAAMoG,YAAcD,EAAWyvB,aAAa51B,GACxD1E,EAAM6K,EAAWgsB,kBAAkBnyB,EAsBvC,OArBI01B,IAAU11B,EAAMoG,YAChBzS,EAAK0hC,SAASr1B,GACdA,EAAQmG,EAAWuvB,OAAO11B,IAE1B21B,EAAgB31B,EAAM4yB,aAC1B+C,EAAcz0B,UAAS,GACvBvN,EAAKo6B,IAAMj6B,EAAI4F,OAAO4B,EAAK,QAAU4lB,UAAW,aAChDyU,EAAcrC,WAAW3/B,EAAKo6B,KAC9B4H,EAAgB31B,EAAM4yB,aACtB+C,EAAcz0B,UAAS,GACvBvN,EAAK0E,MAAQ1E,EAAKo6B,IAAIxP,WAAU,GAChCoX,EAAcrC,WAAW3/B,EAAK0E,OAC9B1E,EAAKkiC,mBAAmBliC,EAAK0E,MAAO1E,EAAKo6B,KACrC3nB,IACIsF,EAAMpQ,EAAIw6B,eAAe,UAC7BhiC,EAAIqE,YAAYuT,EAAI6S,YAAa5qB,EAAK0E,OACtCvE,EAAIY,aAAagX,EAAK/X,EAAKo6B,MAE/BhhB,EAAU/M,EAAM6G,yBAChB7G,EAAMsyB,eAAe3+B,EAAK0E,OAC1B2H,EAAMyyB,YAAY9+B,EAAKo6B,KAChB/tB,GAEX61B,mBAAoB,SAAUx9B,EAAO01B,GAC7B11B,EAAMglB,iBAAsD,UAAnChlB,EAAMglB,gBAAgBrc,WAC/ClN,EAAIqF,OAAOd,EAAMglB,iBAEjB0Q,EAAI1gB,aAA4C,UAA7B0gB,EAAI1gB,YAAYrM,WACnClN,EAAIqF,OAAO40B,EAAI1gB,cAGvB0oB,iBAAkB,SAAU/oB,GAGxB,IAHc,GACVhgB,GAAQmwB,EAAcnQ,GACtBgpB,EAAUhpB,EACPgpB,EAAQ3Y,iBACa,GAApB2Y,EAAQj1B,UAAqD,GAApCi1B,EAAQ3Y,gBAAgBtc,UACjD/T,IAEJgpC,EAAUA,EAAQ3Y,eAEtB,OAAOrwB,IAEXmM,OAAQ,SAAU6G,GAAV,GACiDi2B,GAAsBC,EAAoBC,EAa3FC,EAIAhwB,EACAiwB,EAaAtuB,EACAC,EAaAsuB,EACAC,EACAC,EACAC,EAhDA9iC,EAAO/N,KAAMyS,EAAQ1E,EAAK0E,MAAO01B,EAAMp6B,EAAKo6B,GAEhD,KADAhhB,EAAU/M,EAAM6G,0BACRxO,EAAMgV,aAAehV,EAAM6B,YAC/B7B,EAAQA,EAAM6B,UAElB,OAAQ6zB,EAAI1Q,iBAAmB0Q,EAAI7zB,YAC/B6zB,EAAMA,EAAI7zB,UAoBd,IAlBA+7B,EAAuB59B,EAAMglB,iBAAqD,GAAlChlB,EAAMglB,gBAAgBtc,UAAkB1I,EAAMgV,aAA6C,GAA9BhV,EAAMgV,YAAYtM,SAC/Hm1B,EAAqBnI,EAAI1Q,iBAAmD,GAAhC0Q,EAAI1Q,gBAAgBtc,UAAkBgtB,EAAI1gB,aAA2C,GAA5B0gB,EAAI1gB,YAAYtM,SACrHo1B,EAAkBF,GAAwBC,EAC1C79B,EAAQA,EAAMgV,YACd0gB,EAAMA,EAAI1Q,gBACN+Y,EAAgB/9B,IAAU01B,GAAOj6B,EAAI+sB,MAAMxoB,GAC3C+9B,GAAiB/9B,EAAM5R,OAAS,IAChC4R,EAAM2I,UAAY3I,EAAM2I,UAAU01B,OAAO,IAEzCtwB,EAAYgwB,EACZC,GAAmB,EACnBh+B,GAAS1E,EAAKo6B,MACdsI,IAAqB1iC,EAAK0E,MAAMglB,gBAChChlB,EAAQ01B,EAAMp6B,EAAK0E,MAAMglB,iBAAmB1pB,EAAKo6B,IAAI1gB,YACrDjH,GAAY,GAEhBtS,EAAIqF,OAAOxF,EAAK0E,OAChBvE,EAAIqF,OAAOxF,EAAKo6B,MACX11B,IAAU01B,EAGX,MAFA/tB,GAAM0yB,mBAAmB1yB,EAAM6G,6BAC/B7G,GAAMkB,UAAS,EAKnB,IAFI6G,EAAc3B,EAAYkX,EAAWjlB,GAASA,EAAM2I,UAAUva,OAAS4R,EAAM8lB,WAAW13B,OAAS,EACjGuhB,EAAYsV,EAAWyQ,GAAOA,EAAI/sB,UAAUva,OAASsnC,EAAI5P,WAAW13B,OAClD,GAAlB4R,EAAM0I,SACN,KAAO1I,EAAMglB,iBAAqD,GAAlChlB,EAAMglB,gBAAgBtc,UAClD1I,EAAQA,EAAMglB,gBACdtV,GAAe1P,EAAM2I,UAAUva,MAGvC,IAAoB,GAAhBsnC,EAAIhtB,SACJ,KAAOgtB,EAAI1Q,iBAAmD,GAAhC0Q,EAAI1Q,gBAAgBtc,UAC9CgtB,EAAMA,EAAI1Q,gBACVrV,GAAa+lB,EAAI/sB,UAAUva,MAG/B6vC,GAAcj+B,EAAM6B,WACpBq8B,EAAYxI,EAAI7zB,WAChBs8B,EAAa5wC,KAAKmwC,iBAAiB19B,GACnCo+B,EAAW7wC,KAAKmwC,iBAAiBhI,GACrChhB,EAAUupB,GACY,GAAlBj+B,EAAM0I,WACN1I,EAAQi+B,EAAYnY,WAAWqY,IAEnCzpB,EAAUwpB,GACU,GAAhBxI,EAAIhtB,WACJgtB,EAAMwI,EAAUpY,WAAWsY,IAE3BrwB,GACsB,GAAlB/N,EAAM0I,SACNf,EAAMiB,SAAS5I,EAAO0P,GAEtB/H,EAAMq2B,EAAmB,gBAAkB,kBAAkBh+B,GAEjE2H,EAAMkB,UAAS,KAEO,GAAlB7I,EAAM0I,SACNf,EAAMiB,SAAS5I,EAAO0P,GAEtB/H,EAAMsyB,eAAej6B,GAEL,GAAhB01B,EAAIhtB,SACJf,EAAMqyB,OAAOtE,EAAK/lB,GAElBhI,EAAMyyB,YAAY1E,IAGtBp6B,EAAKyhC,OACLzhC,EAAK2hC,YAAYt1B,MAIzB+xB,EAAW,2DACX5rB,GACA8Y,MAAO,SAAUjf,GACb,GAAIif,GAAQ9Y,EAAWF,UAAUjG,EAQjC,OAPKif,GAAMx4B,SACPuZ,EAAM0yB,mBAAmB1yB,EAAM6G,yBAC/BoY,EAAQ9Y,EAAWF,UAAUjG,GACxBif,EAAMx4B,SACPw4B,EAAQnrB,EAAI6tB,sBAAsB3hB,EAAM6G,2BAGzCoY,GAEXhZ,UAAW,SAAUjG,GACjB,MAAO,IAAI2xB,GAAgB3xB,GAAOu0B,aAEtCoC,kBAAmB,SAAU32B,GACzB,GAAIif,MAAY2X,EAAkBpqC,EAAOiX,YAAcjX,EAAOiX,WAAWmzB,eAIzE,OAHIA,KAAoBA,EAAgB52B,EAAM6G,2BAC1CoY,EAAQ,GAAI4S,GAA0B7xB,GAAOu0B,aAE1CtV,GAEXkT,kBAAmB,SAAUnyB,GACzB,GAAIqG,GAAiBrG,EAAMqG,cAC3B,OAAkC,IAA3BA,EAAetF,SAAgBsF,EAAiBA,EAAe0Y,eAE1Erc,YAAa,SAAUhQ,GACnB,MAAOA,GAASgQ,eAEpBvB,YAAa,SAAUnB,GAAV,GAMLyH,GALAovB,EAAQ1wB,EAAW0wB,MAAM72B,EACzB62B,KACA72B,EAAMuyB,cAAcsE,GACpB72B,EAAMyyB,YAAYoE,IAElBpvB,EAAYF,EAAe0qB,mBAAmBjyB,GAClDyH,EAAUC,kBACVD,EAAUE,SAAS3H,IAEvB82B,UAAW,SAAU92B,GACjB,MAAO5a,GAAMiE,OAAO,oBAAqByK,EAAI1K,KAAK4W,EAAMqG,gBAAiBrG,EAAM+H,YAAajU,EAAI1K,KAAK4W,EAAM8H,cAAe9H,EAAMgI,YAEpI3J,MAAO,SAAU2B,EAAOgN,EAAM7W,GAC1B,QAAS4gC,GAAU1+B,GAAnB,GAIQ2+B,GAHAC,EAAiBj3B,EAAM4yB,YAC3BqE,GAAe/1B,SAAS7I,GACxB4+B,EAAe5+B,EAAQ,iBAAmB,eAAe2U,GACrDgqB,EAAWC,EAAe9D,kBAC1Bh9B,IACA6gC,EAAWljC,EAAIqC,KAAK6gC,IAExBljC,EAAIuE,EAAQ,eAAiB,eAAe2+B,EAAUhqB,GAE1D+pB,GAAU,GACVA,GAAU,IAEdG,OAAQ,SAAUl3B,EAAOrD,GACrB,GAAIsiB,KAOJ,OANA,IAAIwS,GAAczxB,GAAO8zB,SAAS,SAAU9mB,GACxC,GAAImqB,GAASx6B,EAAIqQ,EACbmqB,IAAUnwC,EAAEuC,QAAQ4tC,EAAQlY,GAAS,GACrCA,EAAMl5B,KAAKoxC,KAGZlY,GAEXmY,OAAQ,SAAUp3B,EAAOq3B,GACrB,GAAIC,GAAWD,CAMf,OALwB,gBAAbA,KACPA,EAAY,SAAUrqB,GAClB,MAAOlZ,GAAIgQ,GAAGkJ,EAAMsqB,KAGrBnxB,EAAW+wB,OAAOl3B,EAAO,SAAUgN,GACtC,GAAIqqB,EAAUrqB,GACV,MAAOA,MAInBuqB,WAAY,SAAUv3B,GAClB,MAAOmG,GAAWixB,OAAOp3B,EAAO,SAAUgN,GACtC,MAAyB,YAAlBA,EAAKkU,aAGpB2V,MAAO,SAAU72B,GACb,GAAIif,GAAQ9Y,EAAWixB,OAAOp3B,EAAO,MACrC,IAAoB,GAAhBif,EAAMx4B,OACN,MAAOw4B,GAAM,IAGrBuY,UAAW,SAAUnE,EAAermB,GAAzB,GAIHhN,GAEIhT,EACAkgB,CANR,IAAkC,IAA9BmmB,EAActrB,YACd,OAAO,CAGX,KADI/H,EAAQqzB,EAAcT,aACG,IAAtB5yB,EAAM+H,aAAqB/H,EAAMqG,gBAAkB2G,GAAM,CAG5D,IAFIhgB,EAAQ8G,EAAIqpB,cAAcnd,EAAMqG,gBAChC6G,EAASlN,EAAMqG,eAAenM,WAC3BlN,EAAQ,GAAKkgB,EAAOlgB,EAAQ,IAAM8G,EAAImtB,cAAc/T,EAAOlgB,EAAQ,KACtEA,GAEJgT,GAAMiB,SAASiM,EAAQlgB,GAE3B,MAA6B,KAAtBgT,EAAM+H,aAAqB/H,EAAMqG,gBAAkB2G,GAE9DyqB,QAAS,SAAUpE,EAAermB,GAU9B,QAASwnB,GAAMxnB,GACNlZ,EAAImtB,cAAcjU,IAAWlZ,EAAIwpB,WAAWtQ,IAAS,cAAc1L,KAAK0L,EAAKhM,YAC9Eie,EAAMl5B,KAAKinB,GAZd,GAGD3U,GAMA4mB,EARAjf,EAAQqzB,EAAcT,YAe1B,OAdA5yB,GAAMkB,UAAS,GACX7I,EAAQ2H,EAAMqG,eACdvS,EAAIwpB,WAAWjlB,IAAU2H,EAAM+H,aAAejU,EAAIoqB,cAAc7lB,KAChE2H,EAAMiB,SAAS5I,EAAM6B,WAAYpG,EAAIqpB,cAAc9kB,GAAS,GAC5D2H,EAAMkB,UAAS,IAEnBlB,EAAMqyB,OAAOrlB,EAAMlZ,EAAIoqB,cAAclR,IACjCiS,KAMJ,GAAIwS,GAAczxB,GAAO8zB,SAASU,IAC1BvV,EAAMx4B,QAElBixC,qBAAsB,SAAU13B,GAM5B,QAAS23B,GAAMx3B,EAAQD,GAAvB,GAKa5W,GAJL7C,EAASqN,EAAIoqB,cAAche,EAC/B,IAAIC,GAAU1Z,EACV,OAAO,CAEX,KAAS6C,EAAI6W,EAAQ7W,EAAI7C,EAAQ6C,IAC7B,IAAKwK,EAAImtB,cAAc/gB,EAAUie,WAAW70B,IACxC,OAAO,CAGf,QAAO,EAbX,IAHkB,GACdsuC,GAAgB9jC,EAAIixB,eAAe/kB,EAAMqG,gBACzCwxB,EAAc/jC,EAAIixB,eAAe/kB,EAAM8H,cACd,IAAtB9H,EAAM+H,aAAqB/H,EAAMqG,gBAAkBuxB,GACtD53B,EAAMiB,SAASjB,EAAMqG,eAAenM,WAAYpG,EAAIqpB,cAAcnd,EAAMqG,gBAc5E,MAAOsxB,EAAM33B,EAAMgI,UAAWhI,EAAM8H,eAAiB9H,EAAM8H,cAAgB+vB,GACvE73B,EAAMqyB,OAAOryB,EAAM8H,aAAa5N,WAAYpG,EAAIqpB,cAAcnd,EAAM8H,cAAgB,EAExF,OAAO9H,IAEX01B,OAAQ,SAAU11B,GAAV,GAOA83B,GACAC,EAIAhwB,EACAC,EAZA8Z,EAAS9hB,EAAM4yB,aACfvsB,EAAiByb,EAAOzb,eAAe8X,WAAkC,IAAvB2D,EAAO/Z,YAAoB,EAAI+Z,EAAO/Z,YAAc,GACtGD,EAAega,EAAOha,aAAaqW,WAAW2D,EAAO9Z,UACzD,OAAKsV,GAAWjX,IAAoBiX,EAAWxV,IAG3CgwB,EAAczxB,EAAerF,UAC7B+2B,EAAajwB,EAAa9G,UACzB82B,GAAgBC,GAGjBhwB,EAAc+vB,EAAYz5B,MAAM,IAAImoB,UAAU3pB,KAAK,IAAIm7B,OAAOjG,GAC9D/pB,EAAY+vB,EAAWC,OAAOjG,GAC7BhqB,GAAgBC,GAGrBA,EAAYA,MAAkB+vB,EAAWtxC,OAASuhB,EAClDD,EAAcA,MAAoB,EAAI+vB,EAAYrxC,OAASshB,EAC3D+Z,EAAO7gB,SAASoF,EAAgB0B,GAChC+Z,EAAOuQ,OAAOvqB,EAAcE,GACrB8Z,GANIA,GALAA,GALAA,GAkBf8T,aAAc,SAAU51B,GAAV,GAMN8hB,GACAzuB,EAIAykC,EACAC,EACAhwB,EAAiBC,EAZjBgF,EAAOhN,EAAMqG,eACb6rB,EAAgB/rB,EAAWgsB,kBAAkBnyB,EACjD,OAAIgN,IAAQklB,GAAiBllB,GAAQklB,EAAc76B,OAG/CyqB,EAAS9hB,EAAM4yB,gBACfv/B,EAAQ2Z,EAAKhM,aAIb82B,EAAczkC,EAAM4kC,UAAU,EAAGnW,EAAO/Z,aACxCgwB,EAAa1kC,EAAM4kC,UAAUnW,EAAO/Z,aACpCA,EAAc,EAAGC,EAAY,EAC7B8vB,IACA/vB,EAAc+vB,EAAYz5B,MAAM,IAAImoB,UAAU3pB,KAAK,IAAIm7B,OAAOjG,IAE9DgG,IACA/vB,EAAY+vB,EAAWC,OAAOjG,IAE3BhqB,GAAeC,MAG9BziB,EAAOiH,GACH+a,eAAgBA,EAChB6qB,SAAUA,EACVX,cAAeA,EACfC,aAAcA,EACdC,gBAAiBA,EACjBl0B,aAAcA,EACdq0B,OAAQA,EACR3rB,WAAYA,KAElB9e,OAAOjC,MAAM8lB,SACC,kBAAV/lB,SAAwBA,OAAOyB,IAAMzB,OAAS,SAAU0B,EAAIC,EAAIC,IACrEA,GAAMD,OAEV,SAAU5B,EAAGC,QACVA,OAAO,qBAAsB,gBAAiBD,IAChD,YACG,SAAU8B,EAAGC,GAAb,GACO7B,GAAQiC,OAAOjC,MAAOkC,EAAQlC,EAAMkC,MAAOkF,EAASpH,EAAMoC,GAAGqM,OAAQC,EAAMtH,EAAOuH,IAAKxL,EAAWnD,EAAMmD,SAAU4d,EAAa3Z,EAAO2Z,WAAY+xB,GAC9I,KACA,KACA,QACA,QACA,SACDC,GACC,OACA,SACA,YACA,gBACA,cACA,YACA,YACA,YACA,WACA,WACA,aACA,SACA,WACA,gBACA,iBACA,cACA,cACA,YACA,eACA,aACA,aACA,mBACDC,EAAa,cAAeC,EAA6B,IAAMD,EAAa,IAAKE,EAAqB,4BACzG9T,EAAgB,SAAUxX,GAC1B,MAAOhmB,GAAEgmB,GAAMlJ,GAAG,mBAElB+nB,EAAY,SAAU7e,GACtB,MAAOA,GAAKzQ,cAAwD,SAAxCyQ,EAAKzQ,aAAa,oBAE9Cq6B,EAAkB,SAAU5pB,GAC5B,MAAOlZ,GAAIwwB,UAAUtX,EAAM6e,EAAWrH,IAEtC+T,EAAqB,SAAUv4B,GAAV,GACjBw4B,GAAuB5B,EAAgB52B,EAAMqG,gBAC7CoyB,EAAqB7B,EAAgB52B,EAAM8H,eAC3C0wB,GAAwBC,KACpBD,GACAx4B,EAAMsyB,eAAekG,GAErBC,GACAz4B,EAAMyyB,YAAYgG,KAI1BC,EAAoB,SAAU14B,GAC9B,GAAI42B,EAAgB52B,EAAM6G,yBACtB,OAAO,CACJ,IAAI+vB,EAAgB52B,EAAMqG,iBAAmBuwB,EAAgB52B,EAAM8H,cAAe,CACrF,GAAI6wB,GAAgBxyB,EAAWwwB,kBAAkB32B,EACjD,IAA6B,IAAzB24B,EAAclyC,OACd,OAAO,EAGf,OAAO,GAEPmyC,EAAW,SAAUnyC,GAAV,GAGF6C,GAFLw4B,EAAS,GACT+W,EAAQ,gEACZ,KAASvvC,EAAI7C,GAAU,GAAI6C,EAAI,IAAKA,EAChCw4B,GAAU+W,EAAMnC,OAAOz9B,KAAK6/B,MAAM7/B,KAAK8/B,UAAYF,EAAMpyC,OAAS,IAEtE,OAAOq7B,IAEP+S,EAAmB,SAAUxqB,GAC7B,GAA4CzK,GAAUpP,EAAIwoC,EAAtDpE,GAAyBroB,OAAO,EAYpC,OAXAvlB,GAAEqjB,GAAM/V,KAAKgkC,GAAoB/S,KAAK,SAAUj8B,EAAG0jB,GAC/CpN,EAAW9L,EAAI1K,KAAK4jB,GACpBxc,EAAKooC,IACLI,EAAa,IAAMp5B,EAAW,IAAMw4B,EAAa,KAAQ5nC,EAAK,OAAUoP,EAAW,IACnFg1B,EAAqBpkC,IACjBwc,KAAMA,EACNjf,MAAO/G,EAAEgmB,GAAMzY,KAAK,UAExBqgC,EAAqBroB,OAAQ,EAC7BvlB,EAAEgmB,GAAMisB,YAAYD,KAEjBpE,GAEPE,EAAoB,SAAUzqB,EAAMuqB,GACpC,GAAIpkC,GAAIq7B,CACR7kC,GAAEqjB,GAAM/V,KAAK+jC,GAA4B9S,KAAK,SAAUj8B,EAAG0jB,GACvDxc,EAAKwc,EAAKzQ,aAAa67B,GACvBvM,EAAY+I,EAAqBpkC,GACjCxJ,EAAEgmB,GAAMisB,YAAYpN,EAAU7e,MAC1B6e,EAAU99B,OAAS/G,EAAE6kC,EAAU7e,MAAMzY,KAAK,UAC1CvN,EAAE6kC,EAAU7e,MAAMgb,WAAW,SAASzzB,KAAK,QAASs3B,EAAU99B,UAItEmrC,EAAc,SAAU34B,GACxB,GAAIzY,GAAO1C,EAAM0C,IACjB,OAAOyY,KAAYzY,EAAK0Y,WAAaD,GAAWzY,EAAK2Y,QAErD04B,EAAoB,SAAU9sC,GAC9B,GAAI5G,GAAU4G,EAAOA,EAAK5G,QAAUwB,CAChCxB,IAAWA,EAAQygB,QACnBzgB,EAAQygB,OAAOkzB,cAAe51B,YAAY,KAG9CC,EAAanc,EAAM/B,QACnBC,KAAM,SAAUqO,GACZjO,KAAKiO,OAASA,EACdjO,KAAKgvC,wBACLhvC,KAAKH,QAAUuB,EAAEzB,UAAWsO,GAAUA,EAAOpO,SAAWoO,EAAOpO,QAAQ+d,WACvE,IAAIxP,GAAQH,EAAOc,QAAQX,KAC3BmlC,GAAkBnlC,EAAMnK,aACxBsvC,EAAkBnlC,EAAMlK,eACxBqvC,EAAkBnlC,EAAMjK,cACxBovC,EAAkBnlC,EAAMhK,cAE5B4jC,UAAW,SAAU5gB,GACjB,GAAiCxc,GAA7BsxB,EAASl8B,KAAKyzC,QAAQrsB,EAQ1B,OAPI8U,GAAO3sB,QAAQijC,SACf5nC,EAAK5K,KAAKgzC,WACV9W,EAASA,EAAO70B,QAAQ,IAAK,IAAMmrC,EAAa,KAAO5nC,EAAK,OAE5DA,EAAKsxB,EAAOuF,MAAM,kCAAkC,GAExDzhC,KAAKgvC,qBAAqBpkC,GAAMwc,EACzB8U,GAEXuX,QAAS,SAAUrsB,GAAV,GAGDpN,GAFA2E,EAAgB3e,KAAKH,QAAQ8e,cAC7B+0B,QAA2B/0B,EAE/B,QAAQ+0B,GACR,IAAK,SACD,MAAO/wC,GAASgc,GAAeyI,EACnC,KAAK,WACD,MAAOzI,GAAcyI,EACzB,SAEI,MADApN,GAAW9L,EAAI1K,KAAK4jB,GACb,IAAMpN,EAAW,MAAQA,EAAW,MAGnD6sB,YAAa,SAAUzf,GAAV,GACLrZ,GAAO/N,KACP0Q,EAAkB1Q,KAAKH,QAAQ6Q,eACnCtP,GAAEqxC,EAA4BrrB,GAAMuY,KAAK,WAAA,GACjC/0B,GAAK5K,KAAK2W,aAAa67B,GACvBvM,EAAYl4B,EAAKihC,qBAAqBpkC,EACtCpL,GAAM0lC,WAAWx0B,IACjBA,EAAgB1Q,KAAMimC,GAE1B7kC,EAAEpB,MAAMqzC,YAAYpN,KAExBl4B,EAAKihC,yBAETgE,SAAU,SAAUnyC,GAChB,MAAOmyC,GAASnyC,IAEpB4Y,QAAS,SAAUzI,EAAGoJ,GAAb,GACDu5B,GAAaL,EAAYtiC,EAAE2J,SAC3Bi5B,EAAoBD,GAAc3zC,KAAK6zC,gBAAgB7iC,EAAGoJ,KAAWu5B,GAAc3zC,KAAK8zC,cAAc9iC,EAAGoJ,EAC7G,IAAIw5B,EAEA,MADA5iC,GAAEgK,kBACK,GAGf84B,cAAe,SAAU9iC,EAAGoJ,GAAb,GACPnM,GAASjO,KAAKiO,OACd0B,EAAW1B,EAAO0B,QACtB,OAAOyK,GAAMoG,YAAc7Q,EAASokC,kBAAoBpkC,EAASqkC,YAAYhjC,IAAM8hC,EAAkB14B,IAEzGy5B,gBAAiB,SAAU7iC,EAAGoJ,GAAb,GAOT65B,GAKIhO,EAEIiO,EAEIC,EAfZjyC,EAAO1C,EAAM0C,KACbkyC,EAAYpjC,EAAE2J,UAAYzY,EAAK0Y,UAC/By5B,EAAMrjC,EAAE2J,SAAWzY,EAAK2Y,MAC5B,KAAKu5B,IAAcC,EACf,OAAO,CAGX,IADIJ,GAAiB,EACjB75B,EAAMoG,UAAW,CACjB,GAAIsyB,EAAkB14B,GAClB,OAAO,CAGX,IADI6rB,EAAYjmC,KAAKs0C,cAAcl6B,EAAOi6B,GACtCpO,GAAamO,IACTF,EAAqBhmC,EAAII,QAAQ8L,EAAM6G,wBAAyB,MAChEizB,IACIC,EAAqBjmC,EAAII,QAAQ23B,EAAW,MAC5CkO,GAAsBA,IAAuBD,IAC7C,MAAOD,EAInB,IAAIhO,IAAc/3B,EAAIutB,UAAUwK,GAAY,CACxC,GAAI/3B,EAAIgrB,aAAa+M,EAAWqM,KAAmBpkC,EAAIgrB,aAAa9e,EAAM6G,wBAAyBqxB,GAAgB,CAC/G,KAAOrM,GAAuD,GAA1CA,EAAU3xB,WAAWikB,WAAW13B,QAChDolC,EAAYA,EAAU3xB,UAE1B,IAAIpG,EAAIutB,UAAUwK,GACd,MAAOgO,EAEXj0C,MAAKu0C,iBAAiBtO,EAAW7rB,GAErC65B,GAAiB,GAGzB,MAAOA,IAEXK,cAAe,SAAUl6B,EAAOo6B,GAAjB,GAGH/5B,GAFJg6B,EAAkBr6B,EAAM6G,uBAC5B,IAAI/S,EAAI+sB,MAAMwZ,IAAqBD,GAAYj0B,EAAWsxB,QAAQz3B,EAAOq6B,KAAqBD,GAAYj0B,EAAWqxB,UAAUx3B,EAAOq6B,GAAmB,CAErJ,GADIh6B,EAAOza,KAAK00C,UAAUD,EAAiBD,GACvC/5B,GAAQvM,EAAI0uB,QAAQniB,KAAUu2B,EAAgBv2B,GAC9C,KAAOA,GAAQA,EAAK4rB,UAAY5rB,EAAK4rB,SAASmO,EAAW,EAAI/5B,EAAK4rB,SAASxlC,OAAS,IAChF4Z,EAAOA,EAAK4rB,SAASmO,EAAW,EAAI/5B,EAAK4rB,SAASxlC,OAAS,EAGnE,OAAOmwC,GAAgBv2B,KAG/B85B,iBAAkB,SAAUtO,EAAW7rB,GAArB,GACVnM,GAASjO,KAAKiO,OACd0mC,EAAoB,GAAI/tC,GAAOiR,aAAauC,EAAOnM,EAAOwD,KAC9DvD,GAAIqF,OAAO0yB,GACXr/B,EAAOqR,cAAchK,EAAQ0mC,IAEjCD,UAAW,SAAUttB,EAAMotB,GAGvB,IAHO,GAEa/5B,GADhB+hB,EAAUgY,EAAW,cAAgB,kBACrC3gC,EAAUuT,EACPvT,IAAY4G,GACfA,EAAO5G,EAAQ2oB,GACX/hB,GAAQvM,EAAIwpB,WAAWjd,IAAS,gBAAgBiB,KAAKjB,EAAKW,aAC1DvH,EAAU4G,EACVA,EAAO5G,EAAQ2oB,IAEd/hB,IACD5G,EAAUA,EAAQS,WAG1B,OAAOmG,KAGfoD,GAAWooB,UAAYA,EACvBpoB,EAAWmzB,gBAAkBA,EAC7BnzB,EAAW80B,mBAAqBA,EAChC90B,EAAWi1B,kBAAoBA,EAC/Bj1B,EAAW00B,iBAAmBA,EAC9B10B,EAAWoxB,iBAAmBA,EAC9BpxB,EAAWqxB,kBAAoBA,EAC/BtoC,EAAOiX,WAAaA,GACtBpc,OAAOjC,MAAM8lB,SACC,kBAAV/lB,SAAwBA,OAAOyB,IAAMzB,OAAS,SAAU0B,EAAIC,EAAIC,IACrEA,GAAMD,OAEV,SAAU5B,EAAGC,QACVA,OAAO,kBAAmB,qBAAsBD,IAClD,YACG,SAAU8B,GAEP,QAASwzC,GAAa3mC,EAAQ0mC,GAA9B,GACQE,GAAkB5mC,EAAO8S,sBAAwB,GAAIlJ,GAAa5J,EAAO6J,WAAY7J,EAAOwD,MAC5FrR,EAAU,GAAI00C,GAAeH,EAAmBE,EAGpD,OAFAz0C,GAAQ6N,OAASA,EACjBA,EAAOkC,cAAchQ,KAAKC,GACnBy0C,EAPd,GACOr1C,GAAQiC,OAAOjC,MAAOkC,EAAQlC,EAAMkC,MAAOsM,EAAWxO,EAAMoC,GAAGqM,OAAQC,EAAMF,EAASG,IAAK0J,EAAe7J,EAAS6J,aAAcq0B,EAASl+B,EAASk+B,OAAQvsC,EAASyB,EAAEzB,OAQtKo1C,EAAUrzC,EAAM/B,QAChBC,KAAM,SAAUC,GACZG,KAAKH,QAAUA,EACfG,KAAKg1C,aAAe,GAAIn9B,GAAahY,EAAQua,MAAOva,EAAQ4R,MAAQmM,WAAY/d,EAAQ+d,aACxF5d,KAAKy9B,OAAS,GAAIyO,GAClBlsC,KAAKi1C,UAAYp1C,EAAQo1C,WAE7Bn9B,SAAU,WACN,MAAO9X,MAAKg1C,aAAaxzB,WAE7B0zB,UAAW,SAAUpF,GACjB,MAAO9vC,MAAKy9B,OAAOoS,IAAI7vC,KAAK8X,WAAYg4B,IAE5CqF,aAAc,SAAU/6B,GACpBpa,KAAKy9B,OAAOlqB,OAAO6G,GACnBpa,KAAKiO,OAAOsN,YAAYnB,IAE5B5Z,KAAM,WACF,GAAI40C,GAAQp1C,KAAKg1C,YACjBI,GAAMhG,cACNpvC,KAAKiO,OAAOsN,YAAY65B,EAAM5zB,YAElC7gB,KAAM,WACFX,KAAK2b,QAET05B,aAAc,SAAUnuC,EAASrH,GAC7B,GAAIoO,GAASjO,KAAKiO,MAClB,OAAO7M,GAAE8F,GAASkO,SAAStI,SAAS2E,MAAM6jC,YAAY31C,KAAWsO,EAAOpO,QAAQ0f,cAAe1f,IAAUyO,QAAQ,aAAasD,YAAY,QAASpS,EAAMsC,QAAQgV,MAAM7I,EAAOQ,UAAU05B,OAE5LxsB,KAAM,WACF,GAAIvB,GAAQpa,KAAKk1C,WAAU,EAC3Bl1C,MAAKi1C,UAAUhnC,OAASjO,KAAKiO,OAC7BjO,KAAKi1C,UAAUM,OAAOn7B,GACtBpa,KAAKm1C,aAAa/6B,IAEtBwD,WAAY,WACR,MAAO5d,MAAKiO,QAAUjO,KAAKiO,OAAOpO,QAAQ+d,YAE9C+0B,mBAAoB,SAAUv4B,GACtBpa,KAAK4d,eACLpe,EAAMoC,GAAGqM,OAAO4P,WAAW80B,mBAAmBv4B,GAC9Cpa,KAAKg1C,aAAe,GAAIn9B,GAAauC,EAAOpa,KAAKiO,OAAOwD,UAIhEqjC,EAAiBpzC,EAAM/B,QACvBC,KAAM,SAAU+0C,EAAmBE,GAC/B70C,KAAKyR,KAAOkjC,EAAkBljC,KAC9BzR,KAAK20C,kBAAoBA,EACzB30C,KAAK60C,gBAAkBA,GAE3Bl0C,KAAM,WACFuN,EAAIswB,eAAex+B,KAAKyR,MACxBzR,KAAKyR,KAAKb,UAAY5Q,KAAK60C,gBAAgBj0B,KAC3C5gB,KAAKiO,OAAOsN,YAAYvb,KAAK60C,gBAAgBrzB,YAEjDhhB,KAAM,WACF0N,EAAIswB,eAAex+B,KAAKyR,MACxBzR,KAAKyR,KAAKb,UAAY5Q,KAAK20C,kBAAkB/zB,KAC7C5gB,KAAKiO,OAAOsN,YAAYvb,KAAK20C,kBAAkBnzB,aAGvD7hB,GAAOqO,GACHiK,cAAe28B,EACfG,QAASA,EACTD,eAAgBA,KAEtBrzC,OAAOjC,MAAM8lB,SACC,kBAAV/lB,SAAwBA,OAAOyB,IAAMzB,OAAS,SAAU0B,EAAIC,EAAIC,IACrEA,GAAMD,OAEV,SAAU5B,EAAGC,QACVA,OAAO,kBAAmB,gBAAiBD,IAC7C,YACG,SAAU8B,EAAGC,GAAb,GA0EO2N,GAzEAxP,EAAQiC,OAAOjC,MACfoC,EAAKpC,EAAMoC,GACXoM,EAAWpM,EAAGqM,OACdtM,EAASC,EAAGD,OACZhC,EAASyB,EAAEzB,OACXsC,EAAQb,EAAEa,MACVC,EAAO1C,EAAM0C,KACbmW,EAAK,eACLxV,EAAcmL,EAASnL,YACvBJ,EAAeuL,EAASvL,aACxBnB,EAAO0M,EAAS1M,KAChBk0C,EAAah2C,EAAMi2C,YACnBC,EAAcl2C,EAAMm2C,aACpBC,EAAiB,iBACjBC,EAAY,yPACZC,GACAC,iBAAkB,cAClBC,iBAAkB,YAClBC,iBAAkB,cAClBC,mBAAoB,gBACpBC,kBAAmB,eACnBC,oBAAqB,cACrBC,qBAAsB,sBACtBC,mBAAoB,oBACpBC,uBAAwB,uBACxBC,uBAAwB,uBACxBC,aAAc,SACdC,sBAAuB,SACvBC,sBAAuB,UACvBC,sBAAuB,aACvBC,wBAAyB,SACzBC,YAAa,cACbC,eAAgB,aAChBC,WAAY,WACZC,uBAAwB,YACxBC,YAAa,YACbC,mBAAoB,cACpBC,+BAAgC,gBAChCC,gCAAiC,iBACjCC,6BAA8B,cAC9BC,6BAA8B,cAC9BC,uBAAwB,YACxBC,0BAA2B,eAC3BC,uBAAwB,cACxBC,mBAAoB,oBACpBC,0BAA2B,iBAC3BC,4BAA6B,mBAC7BC,2BAA4B,kBAC5BC,gBAAiB,kBACjBC,+BAAgC,yBAChCC,6BAA8B,uBAC9BC,8BAA+B,wBAC/BC,4BAA6B,sBAC7BC,kBAAmB,aACnBC,mBAAoB,eAEpBC,EAAqBh3C,EAAK3B,QAC1B4jB,WAAY,SAAU3hB,EAAI/B,GACtB,GAAIkP,GAAUlP,EAAQoO,OAAOc,OAC7BnN,GAAG+M,KAAK,gBAAiB9O,EAAQoO,OAAOT,QAAQmB,KAAK,OAAO+J,GAAG,QAAStX,EAAEa,MAAM,WAC5EjC,KAAKu4C,cAAchD,UACpBxmC,KAEPlP,SAAW2D,KAAMoyC,GACjBx1C,QAASgB,EAAEuiB,KACXpV,OAAQnN,EAAEuiB,KACVvP,QAAShT,EAAEuiB,MAEf9gB,GAAY0D,aAAaqvC,EAAgB,GAAI0C,IACzCl1B,IAAK,GACLC,MAAM,EACN1gB,SAAU,GAAIF,IAAeE,SAAUE,EAAYS,4BAEnD0L,EAAUrN,EAAOhC,QACjBC,KAAM,SAAU4N,EAAS3N,GACrB,GAAIkO,GAAO/N,IACXH,GAAUF,KAAWE,GAAW2D,KAAM,kBACtC7B,EAAO7B,GAAGF,KAAKG,KAAKgO,EAAMP,EAAS3N,GAC/BA,EAAQgP,OACRd,EAAKyqC,aAEL34C,EAAQuS,WAAavS,EAAQuS,UAAUrD,UACvChB,EAAK0qC,eAAiBj5C,EAAMk5C,SAAS,WACjC3qC,EAAKoD,QAAO,KAEhBpD,EAAKP,QAAQoB,SAAS,yBAG9B1O,QAAS,WACTy4C,QACIzrC,OACI,OACA,SACA,YACA,iBAEJ4R,SACI,YACA,eAEJpU,WACI,cACA,gBACA,eACA,eAEJ4C,OACI,cACA,aACA,aACA,UAEJH,OACI,sBACA,oBACA,uBACA,uBACA,SACA,WAEJyrC,cAAe,eACfC,iBACI,gBACA,iBACA,cACA,cACA,YACA,gBAEJC,aACI,yBACA,uBACA,wBACA,uBAEJC,gBACI,iBACA,mBACA,mBAEJC,UACI,WACA,kBACA,QACA,MACA,WACA,UAEJC,OACI,WACA,YAEJC,QACI,YACA,aAEJ7rC,eACI,aACA,gBAGR8rC,oBACI,aACA,WACA,WACA,YACA,YACA,cAEJX,WAAY,WACR,GAAIzqC,GAAO/N,IACXA,MAAKyB,OAASL,EAAEpB,KAAKwN,SAAS4xB,KAAK,uCAAyC9X,SAAS8xB,QAAQ,iGAAqG9D,aAC9Lr/B,OAAO,EACP7D,WAAW,EACXqB,WAAa4lC,WAAY,+BACzB55B,WACI7I,MAAQ0iC,QAAS,WACjBpiC,OAASoiC,QAAS,aAEtBC,UAAW,GACXC,SAAS,EACTC,WAAW,EACXC,WACAC,QAAS,WACL35C,KAAK45C,QAAS,KAEnBlhC,GAAG,YAAa,SAAU1H,GACpB5P,EAAE4P,EAAE+I,QAAQmE,GAAG,aAChBnQ,EAAKgN,kBAAmB,KAE7BrC,GAAG,WAAY,WACd3K,EAAKlO,QAAQoO,OAAOT,QAAQ2P,aAC7Bwa,KAAK,gBAEZkiB,sBAAuB,SAAUrsC,EAASgE,GACtChE,EAAQkB,KAAK,QAAQkD,YAAY,SAAUJ,GAAM9C,KAAK,sDAAsDkD,YAAY,oBAAqBJ,IAEjJsoC,mBAAoB,SAAUl4C,GAAV,GACZmM,GAAO/N,KACP+5C,EAAgB,iFACpBhsC,GAAKwqC,cAAgBn3C,EAAE24C,GAAe3kC,SAAS,QAAQ4kC,YACnDC,OAAQr4C,EACR69B,OAAQjgC,EAAMsC,QAAQgV,MAAM/I,EAAKP,SAAW,cAAgB,eAC5D8wB,SAAU9+B,EAAMsC,QAAQgV,MAAM/I,EAAKP,SAAW,WAAa,YAC3D0sC,kBAAkB,EAClBtjC,KAAM,SAAU5F,GACRhR,KAAKwN,QAAQ0Q,GAAG,WAChBlN,EAAEgK,iBAENjN,EAAK8rC,sBAAsB75C,KAAKwN,SAAS,GACzC5L,EAAG+M,KAAK,iBAAiB,IAE7BuI,MAAO,WACHtV,EAAG+M,KAAK,iBAAiB,IAE7BwrC,SAAUl4C,EAAM8L,EAAKqsC,mBAAoBrsC,KAC1C4pB,KAAK,eAEZnS,MAAO,WACH,GAA4E3W,GAAOqtB,EAA/E7pB,EAAcrS,KAAKH,QAAQuS,WAAapS,KAAKH,QAAQuS,UAAUrD,OAMnE,OALAmtB,GAASl8B,KAAKwN,QAAQ64B,WAAW33B,KAAK,eAClC2D,IACAxD,EAAQ7O,KAAKu4C,cACbrc,EAASA,EAAO2T,IAAIhhC,EAAMrB,QAAQ64B,WAAW33B,KAAK,SAE/CwtB,GAEX1e,QAAS,WACL,GAAIH,GAAS7d,EAAMka,iBAAkB7K,EAAQ7O,KAAKyB,OAAQ82C,EAAgBv4C,KAAKu4C,aAC/E,OAAO1pC,IAASzN,EAAEic,GAAQ/O,QAAQO,EAAMJ,SAAS5N,QAAU03C,GAAiBA,EAAciB,WAE9Fx2B,SAAU,SAAUxf,GAChB,GAAIoH,GAAIwD,EAAQpO,KAAKoO,KACrB,KAAKxD,IAAMwD,GACP,GAAIxD,EAAGjE,eAAiBnD,EACpB,MAAO4K,GAAMxD,IAIzByvC,aAAc,SAAU7zC,GACpB,GAAI9C,GAAGi1C,EAAS34C,KAAK24C,MACrB,IAAI34C,KAAKs6C,aAAa9zC,GAClB,MAAO,QAEX,KAAK9C,IAAKi1C,GACN,GAAIv3C,EAAEuC,QAAQ6C,EAAUmyC,EAAOj1C,KAAO,EAClC,MAAOA,IAInBuL,OAAQ,SAAUhB,GACd,GAAIF,GAAO/N,KAAMyB,EAASsM,EAAKtM,MAC3BsM,GAAKwsC,SACLxsC,EAAKwsC,QAAQlmC,OAAO,SAAUpS,EAAM8L,EAAKoD,OAAQpD,IAErDA,EAAKwsC,QAAUtsC,EACXF,EAAKlO,QAAQuS,WAAarE,EAAKlO,QAAQuS,UAAUrD,SACjDd,EAAOpO,QAAQuO,MAAMjO,KAAKy1C,GAE9B7nC,EAAKK,MAAQL,EAAKysC,YAAYvsC,EAAOpO,QAAQuO,OAC7CL,EAAK0sC,SACL1sC,EAAKP,QAAQkB,KAAK,wBAAwBgK,GAAG,UAAW,SAAU1H,GAC9D,GAAI0pC,GAAWt5C,EAAEpB,MAAMsO,QAAQ,eAAeqpB,KAAK,iBAAkBvU,EAAMpS,EAAE2J,OACzEyI,IAAOlhB,EAAKgZ,OAASkI,GAAOlhB,EAAK+Y,KACjCy/B,EAASxjC,QACFkM,GAAOlhB,EAAKqa,OACdm+B,EAASC,SAASC,aACnB5pC,EAAE6pC,2BACFH,EAAS9jC,WAIrB7I,EAAK+sC,gBACL/sC,EAAKyX,QAAQma,KAAK,WAAA,GAMNob,GALJv0C,EAAWuH,EAAKitC,UAAUh7C,MAAOyG,EAAoB,iBAAbD,EAA8BuH,EAAKK,MAAM5H,GAAYuH,EAAKK,MAAM7F,eAAgB1I,EAAU4G,GAAQA,EAAK5G,QAAS0H,EAAW0G,EAAOpO,QAAQ0H,SAAU0zC,EAAcp7C,GAAWA,EAAQq7C,SAAW3zC,EAASf,GAAW5E,EAAKR,EAAEpB,KAClQyG,IAASA,EAAK8c,aAGH,YAAZ/c,GAAsC,YAAZA,IACtBu0C,EAAcxzC,EAASf,EAAW,WACtC5E,EAAG8M,KAAK,SAAS2I,IAAI0jC,GAAa5S,MAAMz5B,KAAK,gBAAgBkR,KAAKm7B,GAAa5S,OAEnF1hC,EAAK8c,WAAW3hB,GACZqU,MAAOlI,EAAKotC,wBAAwBF,EAAax0C,GACjDwH,OAAQF,EAAKwsC,UAEjB34C,EAAG0M,QAAQ,YAAaP,EAAKP,SAASoB,SAAS,mBAC/ChN,EAAG0M,QAAQ,iBAAkBP,EAAKP,SAASiN,KAAK,kBAAkB7L,SAAS,sBAE/EX,EAAOgG,KAAK,SAAUhS,EAAM8L,EAAKoD,OAAQpD,IACzCA,EAAKQ,SACD9M,GACAA,EAAOgN,QAAQ4G,KACXuoB,IAAK,GACLvjB,KAAM,GACNjQ,MAAO,MAInBoH,KAAM,WACF,GAA4E/C,GAAS2sC,EAAeC,EAAhGttC,EAAO/N,KAAMyB,EAASsM,EAAKtM,OAAQ65C,EAAgBvtC,EAAKlO,QAAQoO,OAA8CjM,EAAUxC,EAAMsC,QAAQE,OACtIP,KACAgN,EAAUhN,EAAOgN,QACjB2sC,EAAgBE,EAAc9tC,QACzBiB,EAAQyP,GAAG,aAAgBnQ,EAAKtM,OAAO5B,QAAQ25C,UAC3C/qC,EAAQ,GAAGtG,MAAMiC,OAClBqE,EAAQrE,MAAMpK,KAAKu7C,mBAElB95C,EAAOm4C,SACRyB,EAAeD,EAAc7gC,SAC7B9L,EAAQ4G,KACJuoB,IAAKvqB,KAAKF,IAAI,EAAG9D,SAASgsC,EAAazd,IAAK,IAAM8X,EAAYjnC,GAAWY,SAAStB,EAAKtM,OAAO+L,QAAQ6H,IAAI,kBAAmB,KAC7HgF,KAAMhH,KAAKF,IAAI,EAAG9D,SAASgsC,EAAahhC,KAAM,SAGjDrY,EAAQie,MAAQje,EAAQ4hB,OAAS7V,EAAKytC,UAAUJ,GACjDlsC,WAAW,WACPzN,EAAOmV,QACR,GAEHnV,EAAOmV,UAKvB2kC,gBAAiB,WACb,GAAIxtC,GAAO/N,KAAMyO,EAAUV,EAAKtM,OAAOgN,QAAS2sC,EAAgBrtC,EAAKlO,QAAQoO,OAAOT,OACpF,OAAOgoC,GAAW4F,GAAiB/rC,SAASZ,EAAQ4G,IAAI,qBAAsB,IAAMhG,SAASZ,EAAQ4G,IAAI,sBAAuB,KAEpImmC,UAAW,SAAUC,GACjB,GAAIC,GAAiB17C,KAAKyB,OAAOgN,QAASktC,EAAuBD,EAAenhC,SAAUqhC,EAAqBD,EAAqBthC,KAAMwhC,EAAoBF,EAAqB/d,IAAKke,EAAYL,EAAIlhC,SAAUwhC,EAAgBD,EAAUzhC,KAAM2hC,EAAeF,EAAUle,GAC3Q,SAASme,EAAgBN,EAAIrxC,QAAUwxC,GAAsBG,EAAgBH,EAAqBF,EAAetxC,SAAW4xC,EAAeP,EAAIpxC,SAAWwxC,GAAqBG,EAAeH,EAAoBH,EAAerxC,WAErO2L,KAAM,WACEhW,KAAKyB,QACLzB,KAAKyB,OAAOyV,SAGpByC,MAAO,WAAA,GACCsiC,GAAW,WACXzuC,EAAUxN,KAAKwN,QACf2I,EAAWnW,KAAKu6C,QAAQ/sC,QAAQmB,KAAKstC,EACzCzuC,GAAQmB,KAAKstC,EAAU9lC,GAAY,GAAGzV,QAAQ,SAASgO,KAAKmnC,GAAWxV,QAAQ3/B,QAAQ,SAClFyV,GAAyB,IAAbA,GACb3I,EAAQ40B,WAAW6Z,IAG3B7B,mBAAoB,WAAA,GACZ6B,GAAW,WACXzuC,EAAUxN,KAAKu4C,cAAc/qC,QAC7B2I,EAAWnW,KAAKu6C,QAAQ/sC,QAAQmB,KAAKstC,EACzCzuC,GAAQc,QAAQ,0BAA0BM,SAAS,sBACnDpB,EAAQmB,KAAKstC,EAAU9lC,GAAY,GAAGzH,KAAKmnC,GAAWxV,QAAQ3/B,QAAQ,SACjEyV,GAAyB,IAAbA,GACb3I,EAAQ40B,WAAW6Z,IAG3Bd,wBAAyB,SAAUe,EAAez1C,GAC9C,IAAKA,EAAK2c,IACN,MAAO84B,EAEX,IAAIC,GAAMD,EAAgB,IAW1B,OAVIz1C,GAAK4c,OACL84B,GAAO,WAEP11C,EAAK21C,QACLD,GAAO,YAEP11C,EAAK41C,MACLF,GAAO,UAEXA,GAAO11C,EAAK2c,IAAM,KAGtBk5B,cACI,kBACA,kBACA,OACA,OACA,YAEJluC,SACAksC,aAAc,SAAU9zC,GACpB,QAASA,IAAYhH,GAAMoC,GAAGgF,OAAOC,eAEzC2zC,YAAa,SAAUpsC,GACnB,GAAImuC,GAAa74C,EAAoC7D,EAAyF2D,EAA1Hg5C,EAAcx8C,KAAKs8C,aAAuBz1C,EAAerH,EAAMsB,cAAetB,EAAMoC,GAAGgF,OAAOC,cAAeq1B,IACjI,KAAKx4B,EAAI,EAAGA,EAAI0K,EAAMvN,OAAQ6C,IAC1B64C,EAAcnuC,EAAM1K,GACpBF,EAAO+4C,EAAY/4C,KACfpC,EAAEkR,cAAciqC,GACZ/4C,GAAQqD,EAAarD,IACrB04B,EAAO14B,GAAQ7D,KAAWkH,EAAarD,IACvC7D,EAAOu8B,EAAO14B,GAAM3D,QAAS08C,KAE7B18C,EAAUF,GACN2G,SAAU,WACVsH,KAAM,SACNqI,MAAO,IACRsmC,GACE18C,EAAQ2D,OACT3D,EAAQ2D,KAAO,UAEnB3D,EAAQyG,SAAW,KAAOzG,EAAQ2D,KAC7B3D,EAAQ8C,UAA4B,UAAhB9C,EAAQ+N,OAC7B/N,EAAQ8C,SAAWqL,EAASnL,YAAYE,eACxClD,EAAQoW,MAAQpW,EAAQoW,OAASpW,EAAQq7C,SAE7Chf,EAAO14B,IAAU3D,QAASA,IAEvBgH,EAAa01C,KACpBrgB,EAAOqgB,GAAe11C,EAAa01C,GAG3C,KAAK74C,EAAI,EAAGA,EAAI84C,EAAY37C,OAAQ6C,IAC3Bw4B,EAAOsgB,EAAY94C,MACpBw4B,EAAOsgB,EAAY94C,IAAMmD,EAAa21C,EAAY94C,IAG1D,OAAOw4B,IAEXue,OAAQ,WAEJ,QAASvJ,GAAUvuC,GACf,GAAIu5B,GAAS,EASb,OARIv5B,GAASD,QACTw5B,EAASv5B,EAASD,WAEblD,EAAM0lC,WAAWviC,KAClBA,EAAWnD,EAAMmD,SAASA,IAE9Bu5B,EAASv5B,EAAS9C,IAEfL,EAAM+Q,KAAK2rB,GAEtB,QAASugB,KACDC,EAAMrW,WAAWxlC,SACbuR,IACAsqC,EAAM/kB,KAAK,WAAYglB,GACvBA,KAEJD,EAAMtnC,SAAS5H,IAGvB,QAASovC,GAAWp2C,GACZA,IAAaovC,GACb8G,EAAQt7C,EAAE,mDACVs7C,EAAM/kB,KAAK,WAAYv2B,EAAEuC,QAAQ6C,EAAU2yC,UAE3CuD,EAAQt7C,EAAE,mCA3BlB,GAAqCvB,GAAS8C,EAAUk6C,EAAar2C,EAAgFs2C,EAAWC,EAAuDL,EAAOh5C,EAA1NqK,EAAO/N,KAAMoO,EAAQL,EAAKK,MAAiDgtC,EAAgBrtC,EAAKwsC,QAAQ/sC,QAASA,EAAUO,EAAKP,QAAQmZ,QAAkCq2B,EAAajvC,EAAKwsC,QAAQ16C,QAAQuO,MAAiBuuC,EAAgB,EAAGvqC,EAAYrE,EAAKlO,QAAQuS,WAAarE,EAAKlO,QAAQuS,UAAUrD,QAASoqC,EAAqBn5C,KAAKm5C,kBAmCpV,KALA3rC,EAAQmZ,QACJq2B,EAAWn8C,SACX2F,EAAWw2C,EAAW,GAAGx5C,MAAQw5C,EAAW,IAEhDJ,EAAWp2C,EAAU2yC,GAChBz1C,EAAI,EAAGA,EAAIs5C,EAAWn8C,OAAQ6C,IAC/B8C,EAAWw2C,EAAWt5C,GAAGF,MAAQw5C,EAAWt5C,GAC5C7D,EAAUuO,EAAM5H,IAAa4H,EAAM5H,GAAU3G,SACxCA,GAAWuB,EAAEkR,cAAc9L,KAC5B3G,EAAU2G,GAEd7D,EAAW9C,GAAWA,EAAQ8C,SACd,SAAZ6D,IACAi2C,IACAr7C,EAAE,kDAAsDgU,SAASrH,EAAKP,SACtEovC,EAAWp2C,EAAU2yC,IAEpBx2C,IAGLo6C,EAAehvC,EAAKssC,aAAa7zC,GAC7Bs2C,GAAaC,GAAgBv2C,GAAYovC,IACzC6G,IACAG,EAAWp2C,EAAU2yC,GACrB2D,EAAYC,GAEZv2C,GAAYovC,IACZjzC,EAAS9C,QAAQoW,MAAQlI,EAAKlO,QAAQ0H,SAASgB,gBAEnD5F,EAAWuuC,EAAUvuC,GACrBk6C,EAAcz7C,EAAEuB,GAAUyS,SAASsnC,GACf,UAAhBK,IACAN,IACAG,EAAWp2C,EAAU2yC,IAErBt5C,EAAQ8b,MAAQkhC,EAAY5U,SAAS,WACrC4U,EAAYnkC,GAAG,QAASzW,EAAMpC,EAAQ8b,KAAMy/B,EAAc,KAGlEqB,KACAr7C,EAAE2M,EAAKP,SAAS64B,SAAS,mBAAmB4W,IAAI,qBAAqBruC,SAAS,kBAC9Eb,EAAKmvC,eACD9qC,GACArE,EAAK+rC,mBAAmB/rC,EAAKP,QAAQkB,KAAK,uBAE9CX,EAAKovC,QAAQ,UAAW,WACpB,OAASxb,SAAU5zB,EAAKP,YAGhC0vC,aAAc,WACV97C,EAAEpB,KAAKwN,SAAS64B,WAAW4W,IAAI,qBAAqBtd,KAAK,WACrDv+B,EAAEpB,MAAMqmC,WAAW5oB,YAAY,6BAA6B4iB,QAAQzxB,SAAS,iBAAiBu5B,MAAMv1B,OAAOhE,SAAS,eAAeu5B,SAG3I1xB,aAAc,SAAUhF,GACpBzR,KAAKwlB,QAAQ6b,OAAO,gBAAgB1B,KAAK,WACrC,GAAIqK,GAAY5oC,EAAEpB,MAAM23B,KAAK,iBACzBqS,IACAA,EAAUG,SAAS14B,MAI/B2C,QAAS,WACLzS,EAAO7B,GAAGsU,QAAQrU,KAAKC,KACvB,IAAI4K,GAAIwD,EAAQpO,KAAKoO,KACrB,KAAKxD,IAAMwD,GACHA,EAAMxD,GAAIwJ,SACVhG,EAAMxD,GAAIwJ,SAGdpU,MAAKyB,QACLzB,KAAKyB,OAAO2S,UAEZpU,KAAKy4C,gBACLj5C,EAAM49C,aAAap9C,KAAKy4C,gBAExBz4C,KAAKu4C,eACLv4C,KAAKu4C,cAAcnkC,WAG3B0mC,cAAe,WACX,GAAI/sC,GAAO/N,KAAMq9C,EAAetvC,EAAKwqC,cAAgBxqC,EAAKwqC,cAAc/qC,QAAUpM,KAClF2M,GAAKuvC,kBAAkBvvC,EAAKP,QAAQqiC,IAAIwN,KAE5CC,kBAAmB,SAAU9vC,GACzB,GAAIO,GAAO/N,KAAMu9C,EAAU,uBAAwBC,EAAiBD,EAAU,2EAAiFE,EAAkBF,EAAU,oBAAqBG,EAAW,cAAeC,EAAc,iBAAkBC,GAClQL,EACAG,EACAC,GACF1mC,KAAK,IACXzJ,GAAQqL,IAAIR,GAAIK,GAAG,aAAeL,EAAImlC,EAAgB,WAClDp8C,EAAEpB,MAAM4O,SAAS,mBAClB8J,GAAG,aAAeL,EAAImlC,EAAgB,WACrCp8C,EAAEpB,MAAMyd,YAAY,mBACrB/E,GAAG,YAAcL,EAAIulC,EAAa,SAAU5sC,GAC3CA,EAAEgK,mBACHtC,GAAG,UAAYL,EAAIw9B,EAAW,SAAU7kC,GAMvC,QAAS6sC,GAAKrjC,EAAWF,EAAWwjC,GAApC,GACQ1vC,GAAQkM,EAAU5L,KAAKmnC,GACvBzuC,EAAQgH,EAAMhH,MAAMyM,GAAW2G,CAInC,OAHIsjC,KACA12C,EAAQiM,KAAKF,IAAI,EAAGE,KAAKH,IAAI9E,EAAMvN,OAAS,EAAGuG,KAE5CgH,EAAMhH,GAZY,GAIzB22C,GACAC,EAAcC,EAJdpqC,EAAU7T,KACVoS,EAAYrE,EAAKlO,QAAQuS,WAAarE,EAAKlO,QAAQuS,UAAUrD,QAC7DyL,EAAYhb,EAAMsC,QAAQgV,MAAM/I,EAAKP,YAAgB,EAErBmN,EAAU3J,EAAE2J,OAS5CA,IAAWzY,EAAKgZ,OAASP,GAAWzY,EAAK+Y,KAIrC+iC,EAHC58C,EAAEyS,GAASqK,GAAG,eAGA9c,EAAEyS,GAFFgqC,EAAKljC,GAAWzY,EAAKgZ,MAAQ,EAAIV,KAAiBA,EAAWzM,EAAKP,SAAS,IAIvF4E,GAAcuI,GAAWzY,EAAKoa,IAAM3B,GAAWzY,EAAKqa,KAEpD5B,GAAWzY,EAAKma,MACvB2hC,EAAejwC,EAAKP,QAAQkB,KAAKmnC,GAAW,GAC5C7kC,EAAEgK,kBACKL,GAAWzY,EAAKka,KACvB2hC,EAAiBhwC,EAAKP,QAAQkB,KAAKmnC,GAAWxU,OAAO,WACjD,MAAqC,WAA9BjgC,EAAEpB,MAAMqV,IAAI,gBAEvB2oC,EAAeD,EAAeA,EAAel9C,OAAS,GACtDmQ,EAAEgK,kBACKL,GAAWzY,EAAKg8C,KACnBnwC,EAAKwqC,eAAiBxqC,EAAKwqC,cAAciB,WACzCzrC,EAAKwqC,cAAcrhC,QAEvB8mC,EAAejwC,EAAKwsC,SACb5/B,GAAWzY,EAAK+Z,KAASjL,EAAEyL,SAAWzL,EAAE0L,SAE3CuhC,EADA7rC,GACmBhR,EAAEyS,EAAQiG,eAAemuB,SAAS,yBAA2Bl6B,EAAKwqC,cAAc/qC,QAEhFO,EAAKP,QAExBwD,EAAE2L,SACFqhC,EAAeH,KAASI,IAExBD,EAAeH,EAAK,EAAGI,GAClBD,GAAmF,WAAnE58C,EAAE48C,GAAc1vC,QAAQ,qBAAqB+G,IAAI,gBAClE2oC,EAAejwC,EAAKwsC,WA1B5ByD,EAAeH,EAAKljC,GAAWzY,EAAKqa,KAAO,KAAQxO,EAAKwqC,cAAc/qC,SAAS,GA8B/EwwC,IACAhtC,EAAEgK,iBACFgjC,EAAarkC,SAEZgB,IAAYzY,EAAKi8C,OAASxjC,IAAYzY,EAAKk8C,WAAch9C,EAAEyS,GAASqK,GAAG,YAAa9c,EAAEyS,GAASqK,GAAG,MAAU9c,EAAEyS,GAASlF,KAAK,SAC7HZ,EAAKswC,oBAAoBxqC,EAAS7C,KAEvC0H,GAAG,QAAUL,EAAImlC,EAAgB,SAAUxsC,GAC1CjD,EAAKswC,oBAAoBr+C,KAAMgR,KAChC0H,GAAG,QAAUL,EAAIolC,EAAiB,SAAUzsC,GAC3CA,EAAEgK,oBAGVqjC,oBAAqB,SAAUxB,EAAa7rC,GAAvB,GACbjD,GAAO/N,KACPs+C,EAASl9C,EAAEy7C,EACf7rC,GAAEgK,iBACFhK,EAAE+M,kBACFugC,EAAO7gC,YAAY,iBACd6gC,EAAOpgC,GAAG,iBACXnQ,EAAKwsC,QAAQ5+B,KAAK5N,EAAKitC,UAAU6B,KAGzC7B,UAAW,SAAUxtC,GAAV,GAIH8tB,GAIA70B,EAII83C,CAXR,IAAK/wC,EAUL,MAPI8tB,GAAY9tB,EAAQ8tB,UACpB,YAAY5f,KAAK4f,KACjBA,EAAY9tB,EAAQ+Z,WAAW+T,WAE/B70B,EAAOrF,EAAEu6B,KAAKL,EAAU7iB,MAAM,KAAM,SAAUiiB,GAC9C,OAAQ,+FAA+Fhf,KAAKgf,KAE5Gj0B,EAAK,IACD83C,EAAW93C,EAAK,GAChBqvC,EAAoByI,KACpBA,EAAWzI,EAAoByI,IAE/BA,EAAShvC,QAAQ,SAAW,EACrB/P,EAAMg/C,YAAYD,EAASlM,UAAUkM,EAAShvC,QAAQ,QAAU,IAEhEgvC,EAASlM,UAAUkM,EAASE,YAAY,KAAO,IAGvD,UAEXz9B,aAAc,WACV,GAAIjT,GAAO/N,KAAMiO,EAASF,EAAKwsC,QAASngC,EAAQnM,EAAO6J,WAAYuhB,EAAQrrB,EAASuS,WAAWF,UAAUjG,GAAQwD,EAAa3P,EAAOpO,QAAQ+d,WAAYk1B,EAAoB/kC,EAAK2wC,mBAAmBtkC,EACrMif,GAAQrrB,EAASG,IAAIqzB,SAASnI,EAAOrrB,EAASG,IAAIouB,iBAAiB,GAC9DlD,EAAMx4B,SACPw4B,GAASjf,EAAMqG,iBAEnB1S,EAAKyX,QAAQma,KAAK,WAAA,GAGN/9B,GAFJ6E,EAAOsH,EAAKK,MAAML,EAAKitC,UAAUh7C,MACjCyG,KACI7E,EAAKR,EAAEpB,MACPyG,EAAK8H,QACL9H,EAAK8H,OAAO3M,EAAIy3B,GAEhBzb,GACA7P,EAAK4wC,uBAAuBl4C,EAAM7E,EAAIkxC,MAIlD9yC,KAAKuO,UAETmwC,mBAAoB,SAAUtkC,GAC1B,GAAIpa,KAAKu6C,QAAQ16C,QAAQ+d,WACrB,MAAIxD,GAAMoG,UACCxS,EAAS6P,WAAWi1B,kBAAkB14B,GAEkB,IAAxDpM,EAASuS,WAAWwwB,kBAAkB32B,GAAOvZ,QAIhE89C,uBAAwB,SAAUl4C,EAAM7E,EAAIkxC,GAApB,GAQZ8L,GAEIC,EACKz7B,EAEG07B,EAOZC,EAnBJv7C,EAAOiD,EAAKjD,KACZw7C,EAAYp9C,EACZq9C,EAAkBx4C,EAAK5G,QAAQo/C,eAInC,IAHIA,IAAoB59C,IACpB49C,EAAkB79C,EAAEuC,QAAQH,EAAMwK,EAAS6P,WAAW00B,sBAEtD0M,EAAiB,CAEjB,GADIL,EAAU9L,EAAoB,OAAS,IACtClxC,EAAGsc,GAAG,WAAY,CACf2gC,EAASj9C,EAAG+1B,MAChB,KAASvU,IAAOy7B,GACZ,GAAIz7B,EAAIqe,MAAM,wBAAyB,CAC/Bqd,EAASD,EAAOz7B,GACpB47B,EAAYF,EAAOrwC,OACnB,QAIZuwC,EAAU3pC,IAAI,UAAWupC,GACrBG,EAAUC,EAAU1wC,QAAQ,MACY,IAAxCywC,EAAQ1Y,SAAS,YAAYxlC,QAC7Bk+C,EAAQ1pC,IAAI,UAAWupC,KAInCrwC,OAAQ,WACJvO,KAAKk9C,gBAETgC,QAAS,SAAUluC,GAAV,GACDmuC,GAAiBnuC,EAAE5G,MACnBgI,EAAYpS,KAAKH,QAAQuS,WAAapS,KAAKH,QAAQuS,UAAUrD,QAC7DF,EAAQ7O,KAAKu4C,cACb6C,EAAgBp7C,KAAKH,QAAQoO,OAAOT,QACpC4xC,EAAgBp/C,KAAKyB,MACzBzB,MAAKghB,eACA5O,IAGDgtC,IACAA,EAAc3wC,QAAQrE,MAAMpK,KAAKu7C,mBAC5B6D,EAAcxF,QACfwF,EAAc3wC,QAAQ4G,KAAMgF,KAAMhH,KAAKF,IAAI,EAAG9D,SAAS+rC,EAAc7gC,SAASF,KAAM,QAGxFxL,EAAM2qC,WACN3qC,EAAMqI,OAAM,GAEhBlX,KAAKq/C,iBACLr/C,KAAKs/C,QAAQH,GACbn/C,KAAKu/C,SAASJ,GACdn/C,KAAK65C,sBAAsB75C,KAAKwN,SAAS,GACzCxN,KAAK65C,sBAAsB75C,KAAKu4C,cAAc/qC,SAAS,GACvDxN,KAAKwN,QAAQ64B,SAAS,uBAAuBhxB,IAAI,aAAcxG,EAAMrB,QAAQ0Q,GAAG,UAAY,SAAW,aAE3GmhC,eAAgB,WACZr/C,KAAKwN,QAAQ64B,SAAS,MAAM1G,KAAK,SAAU6f,EAAKhyC,GAC5C,GAAIkvC,GAAQt7C,EAAEoM,EACdkvC,GAAM/kB,KAAK,aAAc6d,EAAWkH,GAAO,OAGnD4C,QAAS,SAAUl1C,GAAV,GACDsyC,GAAO+C,EAGE/7C,CAFb,IAAI0G,EAAQpK,KAAK0/C,eAEb,IADAD,EAAgBz/C,KAAK2/C,iBAAiBte,OAAO,2BACpC39B,EAAI+7C,EAAc5+C,OAAS,EAAG6C,GAAK,IACxCg5C,EAAQ+C,EAAcG,GAAGl8C,KACrB0G,EAAQpK,KAAK0/C,iBAF0Bh8C,IAKvC1D,KAAK6/C,WAAWnD;EAKhC6C,SAAU,SAAUn1C,GAAV,GACFsyC,GAAOoD,EAGEp8C,CAFb,IAAI0G,EAAQpK,KAAK0/C,eAEb,IADAI,EAAe9/C,KAAK+/C,gBACXr8C,EAAI,EAAGA,EAAIo8C,EAAaj/C,SAC7B67C,EAAQoD,EAAaF,GAAGl8C,KACpB0G,EAAQpK,KAAK0/C,iBAAmB1/C,KAAKggD,WAAWtD,EAAOtyC,IAFtB1G,OAQjDq8C,cAAe,WAAA,GACPlxC,GAAQ7O,KAAKu4C,cACbuH,EAAe9/C,KAAKwN,QAAQ64B,SAAS,mBAAmBhF,OAAO,UAKnE,OAJAye,GAAeA,EAAajQ,IAAIhhC,EAAMrB,QAAQ64B,SAAS,OACvDyZ,EAAaG,KAAK,SAAUC,EAAGlX,GAC3B,MAAO5nC,GAAE8+C,GAAGvoB,KAAK,YAAcv2B,EAAE4nC,GAAGrR,KAAK,YAAc,OAEpDmoB,GAEXH,eAAgB,WACZ,MAAO3/C,MAAKwN,QAAQ64B,SAAS,wCAAwChF,OAAO,aAEhFqe,aAAc,WACV,GAAIt1C,GAAQ,CAIZ,OAHApK,MAAK2/C,iBAAiBhgB,KAAK,WACvBv1B,GAAShJ,EAAEpB,MAAM23B,KAAK,gBAEnBtkB,KAAKyqB,KAAK1zB,IAErBy1C,WAAY,SAAUnD,GAClB,GAAIA,EAAM/kB,KAAK,YAAa,CACxB,GAAI9oB,GAAQ7O,KAAKu4C,aACjBmE,GAAMyD,SAASja,UAAUr3B,EAAMrB,SAASoB,SAAS,6BAEjD8tC,GAAM9tC,SAAS,aAGvBoxC,WAAY,SAAUtD,EAAOtyC,GACzB,GAAIk0B,GAAUwJ,EAAUsY,CACxB,SAAI1D,EAAMzU,SAAS,sBAGfyU,EAAMzU,SAAS,yBACfmY,EAAa1D,EAAM/kB,KAAK,eAExB+kB,EAAMj/B,YAAY,YAClB2iC,EAAa5K,EAAWkH,GAAO,GAC/BA,EAAM9tC,SAAS,gBAEf8tC,EAAM77C,QAAUuJ,EAAQpK,KAAK0/C,eAAiBU,KAC1C1D,EAAMzU,SAAS,0BACf3J,EAAWoe,EAAM/kB,KAAK,YACL,IAAb2G,EACAoe,EAAMyD,SAASja,UAAUlmC,KAAKwN,UAE9Bs6B,EAAW9nC,KAAKwN,QAAQ64B,WAAWhF,OAAO,SAAUme,EAAKhyC,GACrD,MAAOpM,GAAEoM,GAASmqB,KAAK,cAAgB2G,EAAW,IAEtDoe,EAAMyD,SAAS5tC,YAAYu1B,IAE/B4U,EAAMj/B,YAAY,0BAElBi/B,EAAMj/B,YAAY,aAEf,OAKnBrc,EAAEzB,OAAOqO,GAAYgB,QAASA,KAChCvN,OAAOjC,MAAM8lB,SACC,kBAAV/lB,SAAwBA,OAAOyB,IAAMzB,OAAS,SAAU0B,EAAIC,EAAIC,IACrEA,GAAMD,OAEV,SAAU5B,EAAGC,QACVA,OAAO,2BAA4B,kBAAmBD,IACxD,YACG,SAAU8B,EAAGC,GAAb,GACO7B,GAAQiC,OAAOjC,MAAOG,EAASyB,EAAEzB,OAAQiH,EAASpH,EAAMoC,GAAGqM,OAAQpL,EAAc+D,EAAO/D,YAAakyC,EAAUnuC,EAAOmuC,QAASzzC,EAAOsF,EAAOtF,KAAMmB,EAAemE,EAAOnE,aAAcyL,EAAMtH,EAAOuH,IACpMkyC,EAAkBtL,EAAQp1C,QAC1BC,KAAM,SAAUC,GACZ,GAAIwe,GAAMre,IACVqe,GAAIxe,QAAUA,EACdk1C,EAAQj1C,GAAGF,KAAKG,KAAKse,EAAKxe,GAC1Bwe,EAAI0a,WAAa,KACjB1a,EAAI4E,OAAQ,GAEhBtH,KAAM,WAQF,QAASqlB,GAAMhwB,GACXnR,EAAQ6Q,gBAAgBkN,WAAa3P,EAAO2P,WAC5C3P,EAAOR,MAAM6yC,EAAO5xC,KAAK0B,GAAUiH,OACnCxX,EAAQ6Q,gBAAgBkN,WAAavc,EACrC6V,EAAMlG,GACFjD,EAAKmV,QACLnV,EAAKmV,SAETjV,EAAOvN,QAAQ,UAEnB,QAASwW,GAAMlG,GACXA,EAAEgK,iBACFslC,EAAO3oB,KAAK,eAAevjB,UACvBnG,EAAO2P,aACP3P,EAAO2P,WAAWoxB,yBAEtB/gC,EAAO0L,QAvBX,GAA8NzS,GAASC,EAAnO4G,EAAO/N,KAAMiO,EAASF,EAAKE,OAAQpO,EAAUoO,EAAOpO,QAAS0H,EAAW0G,EAAOpO,QAAQ0H,SAAU+4C,EAASl/C,EAAE5B,EAAMmD,SAAS09C,EAAgB19C,UAAU4E,IAAW6N,SAAStI,SAAS2E,MAAOrB,EAAW,oBACxMvQ,GAAQ8e,cAAcf,WAAa3P,EAAO2P,WAC1CzW,EAAW+G,EAAIyC,eAAe1C,EAAOwD,MACrCvK,EAAUrE,EAAYoE,cAAcgH,EAAOR,QAAStG,GACpDD,EAAUm5C,EAAgB37C,OAAOwC,GACjCA,EAAUrE,EAAYyE,iBAAiBJ,EAASC,GAChDtH,EAAQ8e,cAAcf,WAAavc,EAmBnCrB,KAAKq1C,aAAaiL,GACdrqC,MAAO1O,EAASvC,SAChBoF,MAAO,IACPC,OAAQ,IACR+H,WAAW,EACX8E,MAAOA,EACPsiC,SAAS,IACV9qC,KAAK0B,GAAUiH,IAAInQ,GAASihC,MAAMz5B,KAAK,oBAAoBgK,GAAG,QAASsoB,GAAOmH,MAAMz5B,KAAK,mBAAmBgK,GAAG,QAASxB,GAAOixB,MAAMxQ,KAAK,eAAe4oB,SAAS3pC,OACrK0pC,EAAO5xC,KAAK0B,GAAU1P,QAAQ,WAGtCf,GAAO0gD,GACH19C,SAAU,qUACV+B,OAAQ,SAAUwC,GACd,MAAOA,GAAQG,QAAQ,2CAA4C,WAAWA,QAAQ,wBAAyB,eAAeA,QAAQ,YAAa,YAAYA,QAAQ,MAAO,OAGtL7H,EAAMoC,GAAGqM,OAAOoyC,gBAAkBA,EAClCz5C,EAAO/D,YAAY0D,aAAa,WAAY,GAAIjF,IAC5ClB,QAASigD,EACT19C,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBkT,MAAO,kBAGjBxU,OAAOjC,MAAM8lB,SACC,kBAAV/lB,SAAwBA,OAAOyB,IAAMzB,OAAS,SAAU0B,EAAIC,EAAIC,IACrEA,GAAMD,OAEV,SAAU5B,EAAGC,QACVA,OAAO,yBAA0B,kBAAmBD,IACtD,YACG,SAAU8B,GAAV,GACO5B,GAAQiC,OAAOjC,MAAOG,EAASyB,EAAEzB,OAAQiH,EAASpH,EAAMoC,GAAGqM,OAAQ3M,EAAOsF,EAAOtF,KAAMyzC,EAAUnuC,EAAOmuC,QAASlyC,EAAc+D,EAAO/D,YACtI29C,EAAgBzL,EAAQp1C,QACxBC,KAAM,SAAUC,GACZA,EAAQo1C,UAAYp1C,EAAQo1C,WAC5B,IAAI30B,GAASzgB,EAAQo1C,UAAU30B,MAC3BA,IAAUzd,EAAYU,aAAa,YAAa+c,EAAO7c,SACvD6c,EAAOkzB,cAAe51B,WAAY/d,EAAQ+d,aAE9Cm3B,EAAQj1C,GAAGF,KAAKG,KAAKC,KAAMH,MAG/B4gD,EAAan/C,EAAK3B,QAClBC,KAAM,SAAUC,GACZyB,EAAKxB,GAAGF,KAAKG,KAAKC,KAAMH,IAE5BO,QAAS,SAAUsjB,GACf,GAAI3V,GAAO/N,IACX,OAAO,IAAIwgD,GAAc7gD,EAAO+jB,GAAoBuxB,UAAWlnC,EAAKlO,QAAQo1C,cAEhF1mC,OAAQ,SAAU3M,EAAIy3B,GAClB,GAAI1Y,GAAc3gB,KAAKH,QAAQygB,OAAOK,YAAY0Y,EAClDz3B,GAAGgQ,YAAY,mBAAoB+O,GACnC/e,EAAG+M,KAAK,eAAgBgS,KAGhCvf,GAAEzB,OAAOiH,GACL45C,cAAeA,EACfC,WAAYA,KAElBh/C,OAAOjC,MAAM8lB,SACC,kBAAV/lB,SAAwBA,OAAOyB,IAAMzB,OAAS,SAAU0B,EAAIC,EAAIC,IACrEA,GAAMD,OAEV,SAAU5B,EAAGC,QACVA,OAAO,+BAAgC,yBAA0BD,IACnE,YACG,SAAU8B,GAAV,GACO5B,GAAQiC,OAAOjC,MAAOkC,EAAQlC,EAAMkC,MAAOkF,EAASpH,EAAMoC,GAAGqM,OAAQjH,EAAUxH,EAAMoC,GAAGgF,OAAO9G,GAAGD,QAAQmH,QAASnE,EAAc+D,EAAO/D,YAAavB,EAAOsF,EAAOtF,KAAMmB,EAAemE,EAAOnE,aAAcg+C,EAAa75C,EAAO65C,WAAYvyC,EAAMtH,EAAOuH,IAAKoS,EAAa3Z,EAAO2Z,WAAY5gB,EAASyB,EAAEzB,OAAQ4G,EAAeK,EAAO/D,YAAY0D,aAAcO,EAAiBF,EAAO/D,YAAYiE,eAAgB45C,EAAe,wBAAyBC,EAAa,sBAAuBj6B,EAAU,WAC5ek6B,EAAqBl/C,EAAM/B,QAC3BC,KAAM,SAAU6D,GACZzD,KAAKyD,OAASA,GAElBo9C,iBAAkB,SAAUC,GACxB,GAAuG15B,GAAnG25B,EAAiB,EAAGC,EAAoB,EAAGC,EAAc,EAAG3sC,EAAawsC,EAAcxsC,UAC3F,KAAK8S,EAAO9S,EAAWiT,WAAYH,EAAMA,EAAOA,EAAKK,YAC7CL,GAAQ05B,IACJ15B,EAAKkU,WAAa5U,EAClBu6B,IACwB,GAAjB75B,EAAKjM,SACZ4lC,IAEAC,IAIZ,OAAIC,GAAc,GAAK3sC,EAAWiT,WAAW+T,WAAa5U,GAAWpS,EAAW6nB,UAAUb,WAAa5U,EAC5F,EAEAs6B,EAAoBD,GAGnCG,aAAc,SAAUC,EAAY1Z,GAAtB,GAINrgB,GACAxjB,CAJJ,KAAK6jC,GAAQznC,KAAK6gD,iBAAiBM,GAAc,EAC7C,MAAO,KAIX,KAFI/5B,EAAO+5B,EAAW7sC,WAClB1Q,EAAO5D,KAAKyD,OAAO,GAAGG,MAClBsK,EAAI2wB,OAAOzX,EAAMxjB,IAAO,CAC5B,GAAI5D,KAAK6gD,iBAAiBz5B,GAAQ,EAC9B,MAAO,KAEXA,GAAOA,EAAK9S,WAEhB,MAAO8S,IAEXg6B,WAAY,SAAUD,GAClB,GAAuDz9C,GAAG+hB,EAAK2B,EAAMxjB,EAAMm1B,EAAvEt1B,EAASzD,KAAKyD,OAAQq1B,EAAa5qB,EAAI4qB,UAC3C,KAAKp1B,EAAI,EAAG+hB,EAAMhiB,EAAO5C,OAAQ6C,EAAI+hB,EAAK/hB,IAAK,CAI3C,GAHA0jB,EAAO+5B,EACPv9C,EAAOH,EAAOC,GAAGE,KACjBm1B,EAAat1B,EAAOC,GAAGiL,KACnByY,GAAQlZ,EAAI2wB,OAAOzX,EAAMxjB,IAASk1B,EAAW1R,EAAM2R,GACnD,MAAO3R,EAEX,MAAOA,GAEH,GADAA,EAAOlZ,EAAIgrB,aAAa9R,EAAMxjB,GAC1BwjB,GAAQ0R,EAAW1R,EAAM2R,GACzB,MAAO3R,GAInB,MAAO,OAEXzG,YAAa,SAAU0Y,GACnB,GAAI31B,GAAG+hB,CACP,KAAK/hB,EAAI,EAAG+hB,EAAM4T,EAAMx4B,OAAQ6C,EAAI+hB,EAAK/hB,IACrC,GAAI1D,KAAKohD,WAAW/nB,EAAM31B,IACtB,OAAO,CAGf,QAAO,KAGX29C,EAAkB3/C,EAAM/B,QACxBC,KAAM,SAAU6D,EAAQ69C,GACpBthD,KAAKsgB,OAAS,GAAIsgC,GAAmBn9C,GACrCzD,KAAK+4B,WAAap5B,KAAW8D,EAAO,GAAGkL,KAAM2yC,GAC7CthD,KAAKgnC,IAAMvjC,EAAO,GAAGG,KAAK,IAE9Bw7B,KAAM,SAAUhY,GACZ,MAAOlZ,GAAIkxB,KAAKhY,EAAMlZ,EAAI4F,OAAOsT,EAAK+R,cAAen5B,KAAKgnC,IAAKhnC,KAAK+4B,cAExEohB,SAAU,SAAU//B,EAAOif,GACnBr5B,KAAKsgB,OAAOK,YAAY0Y,IACxBr5B,KAAKyY,MAAM2B,GACXpa,KAAKuT,OAAO8lB,IAEZr5B,KAAKghC,MAAM3H,IAGnBkc,OAAQ,SAAUn7B,GAAV,GACAiG,GAAYrgB,KAAK4d,aAAe2C,EAAWwwB,kBAAoBxwB,EAAWF,UAC1EgZ,EAAQhZ,EAAUjG,EAClBif,GAAMx4B,OAAS,GACfb,KAAKm6C,SAAS//B,EAAOif,IAG7Bzb,WAAY,WACR,MAAO5d,MAAKiO,QAAUjO,KAAKiO,OAAOpO,QAAQ+d,YAE9CojB,MAAO,SAAU3H,GAAV,GAEC31B,GAAGugC,EAAG7c,EAAMm6B,EADZC,IAEJ,IAAInoB,EAAMx4B,OAAS,EACf,IAAK6C,EAAI,EAAGugC,EAAI5K,EAAMx4B,OAAQ6C,EAAIugC,EAAGvgC,IACjC0jB,EAAOiS,EAAM31B,GACb69C,EAAavhD,KAAKyD,OAAO2jB,GAAM,GAC/Bo6B,EAAYrhD,KAAKohD,OAGrBn6B,GAAOiS,EAAM,GACbkoB,EAAavhD,KAAKyD,OAAO2jB,GAAM,EAEnCpnB,MAAKyhD,YAAYD,IAErB/9C,OAAQ,SAAU2jB,EAAMs6B,GAAhB,GACAH,GAAavhD,KAAKsgB,OAAO4gC,aAAa95B,GACtC2R,EAAa/4B,KAAK+4B,WAClBsO,EAAYtO,EAAaA,EAAW5wB,YACxC,IAAIo5C,EACIrzC,EAAIgQ,GAAGqjC,EAAY,UACfla,EAAU7M,OACV+mB,EAAWhiB,gBAAgB,SAE3B8H,EAAUx/B,UACV05C,EAAWhiB,gBAAgB,QAE3B8H,EAAUt/B,UACVw5C,EAAWhiB,gBAAgB,SAGnCrxB,EAAIS,KAAK4yC,EAAYxoB,OAClB,CACH,MAAQ7qB,EAAI0uB,QAAQxV,EAAK9S,aAAoD,GAArC8S,EAAK9S,WAAWikB,WAAW13B,QAAmD,SAApCumB,EAAK9S,WAAWtH,iBAA8B00C,GAC5Ht6B,EAAOA,EAAK9S,UAEhBitC,GAAavhD,KAAKo/B,KAAKhY,GAE3B,MAAOm6B,IAEXhuC,OAAQ,SAAU8lB,GACd,GAAI31B,GAAGugC,EAAGsd,CACV,KAAK79C,EAAI,EAAGugC,EAAI5K,EAAMx4B,OAAQ6C,EAAIugC,EAAGvgC,IACjC69C,EAAavhD,KAAKsgB,OAAO8gC,WAAW/nB,EAAM31B,IACtC69C,IACIvhD,KAAK+4B,YAAc/4B,KAAK+4B,WAAW5wB,OACnC+F,EAAI0xB,QAAQ2hB,EAAYvhD,KAAK+4B,WAAW5wB,OACnCo5C,EAAWp5C,MAAM+2B,SAAYqiB,EAAWxoB,WAAW,UACpD7qB,EAAImxB,OAAOkiB,IAGfrzC,EAAImxB,OAAOkiB,KAK3B9oC,MAAO,SAAU2B,GAAV,GAGC1W,GAAG69C,EAFHloB,EAAQ9Y,EAAWF,UAAUjG,GAC7B6pB,EAAI5K,EAAMx4B,MAEd,IAAIojC,EAAI,EACJ,IAAKvgC,EAAI,EAAGA,EAAIugC,EAAGvgC,IACf69C,EAAavhD,KAAKsgB,OAAO8gC,WAAW/nB,EAAM31B,IACtC69C,GACAhhC,EAAW9H,MAAM2B,EAAOmnC,GAAY,IAKpDE,YAAa,SAAUpoB,GAEnB,IADA,GAAIjS,GAAMxU,EACHymB,EAAMx4B,OAAS,GAMlB,GALAumB,EAAOiS,EAAMsoB,MACb/uC,EAAOymB,EAAMA,EAAMx4B,OAAS,GACxBumB,EAAKqQ,iBAAmBrQ,EAAKqQ,gBAAgB6D,WAAa5U,GAC1D9T,EAAKuG,YAAYiO,EAAKqQ,iBAEtBrQ,EAAKjJ,SAAWvL,EAAKuL,SAAWiJ,EAAKqQ,iBAAmB7kB,GAAQwU,EAAKjf,MAAM+2B,SAAWtsB,EAAKzK,MAAM+2B,SAAW9X,EAAKkU,YAAc1oB,EAAK0oB,UAAW,CAC/I,KAAOlU,EAAKG,YACR3U,EAAKuG,YAAYiO,EAAKG,WAE1BrZ,GAAIqF,OAAO6T,OAKvBw6B,EAA2BhB,EAAmBjhD,QAC9CC,KAAM,SAAU6D,EAAQo+C,EAAgBC,GACpC9hD,KAAKyD,OAASA,EACdzD,KAAK6hD,eAAiBA,EACtB7hD,KAAK8hD,SAAWA,EAChBlB,EAAmB9gD,GAAGF,KAAKG,KAAKC,KAAMyD,IAE1Cs+C,kBAAmB,SAAU36B,GAAV,GAGX1jB,GAAGugC,EAAGjF,EAAWx7B,EAAMw+C,EAAgB3sC,EAAK4sC,EAAMC,EAAUz8B,EAC5D08B,EAAkBjb,EAAUz5B,EAH5BsrB,EAAa3R,EAAK2R,WAClBxoB,EAAO/Q,EAAM+Q,IAGjB,IAAKwoB,EAGL,IAAKr1B,EAAI,EAAGugC,EAAIlL,EAAWl4B,OAAQ6C,EAAIugC,EAAGvgC,IAAK,CAI3C,GAHAs7B,EAAYjG,EAAWr1B,GACvBF,EAAOw7B,EAAUhlB,SACjBgoC,EAAiBhjB,EAAU5jB,UACvB4jB,EAAUC,WAAqB,SAARz7B,EAEvB,IADA6R,EAAM9E,EAAKyxC,GAAkB56B,EAAKjf,MAAM+2B,SAASzmB,MAAM,KAClDypC,EAAW,EAAGz8B,EAAMpQ,EAAIxU,OAAQqhD,EAAWz8B,EAAKy8B,IAEjD,GADAD,EAAO5sC,EAAI6sC,GACPD,EAAKphD,OAAQ,CAIb,GAHAshD,EAAmBF,EAAKxpC,MAAM,KAC9ByuB,EAAW32B,EAAK4xC,EAAiB,GAAGx7C,eACpC8G,EAAQ8C,EAAK4xC,EAAiB,IAC1Bjb,GAAYlnC,KAAK6hD,eACjB,QAEJ,OAAO3a,GAAS33B,QAAQ,UAAY,EAAIrB,EAAIqsB,MAAM9sB,GAASA,EAIvE,GAAIzN,KAAK8hD,UAAY9iB,EAAUC,WAAaz7B,GAAQxD,KAAK8hD,SAGrD,MAFA5a,GAAWlI,EAAU5jB,UACrB3N,EAAQuxB,EAAU5jB,UACX8rB,EAAS33B,QAAQ,UAAY,EAAIrB,EAAIqsB,MAAM9sB,GAASA,IAIvE20C,eAAgB,SAAUh7B,GAAV,GAGR1jB,GAAG+hB,EAAKhY,EAFR85B,EAAQnmC,EAAE8M,EAAIwpB,WAAWtQ,GAAQA,EAAK9S,WAAa8S,GACnDtJ,EAAUypB,EAAM8a,aAAa,qBAAqBC,UAAUC,UAAU3hB,SAE1E,KAAKl9B,EAAI,EAAG+hB,EAAM3H,EAAQjd,OAAQ6C,EAAI+hB,EAAK/hB,IAEvC,GADA+J,EAA+B,aAAvBzN,KAAK6hD,eAAgC/jC,EAAQpa,GAAG43B,UAAYt7B,KAAK+hD,kBAAkBjkC,EAAQpa,IAE/F,MAAO+J,EAGf,OAAO,WAEXiT,UAAW,SAAU2Y,GACjB,GAA4C31B,GAAG+hB,EAA3CyW,EAASl8B,KAAKoiD,eAAe/oB,EAAM,GACvC,KAAK31B,EAAI,EAAG+hB,EAAM4T,EAAMx4B,OAAQ6C,EAAI+hB,EAAK/hB,IACrC,GAAIw4B,GAAUl8B,KAAKoiD,eAAe/oB,EAAM31B,IACpC,MAAO,EAGf,OAAOw4B,IAEXvb,YAAa,SAAU0Y,GACnB,MAAiC,KAA1Br5B,KAAK0gB,UAAU2Y,MAG1BmpB,EAAwBnB,EAAgB1hD,QACxCC,KAAM,SAAU6D,EAAQ69C,EAAQO,GAC5BR,EAAgBvhD,GAAGF,KAAKG,KAAKC,KAAMyD,EAAQ69C,GAC3CthD,KAAKshD,OAASA,EACdthD,KAAKsgB,OAAS,GAAIshC,GAAyBn+C,EAAQo+C,GAC/CA,IACA7hD,KAAK6hD,eAAiBriD,EAAMg/C,YAAYqD,KAGhD1H,SAAU,SAAU//B,EAAOif,GAAjB,GACFwoB,GAAiB7hD,KAAK6hD,eACtBY,EAAS,OACbziD,MAAKyY,MAAM2B,GACPynC,GAAuD,WAArC7hD,KAAKshD,OAAOn5C,MAAM05C,KACpCY,EAAS,UAEbziD,KAAKyiD,GAAQppB,MAGjBqpB,EAAmBjC,EAAW9gD,QAC9BC,KAAM,SAAUC,GACZ4gD,EAAW3gD,GAAGF,KAAKG,KAAKC,KAAML,EAAOE,GACjCygB,OAAQ,GAAIsgC,GAAmB/gD,EAAQ4D,QACvCwxC,UAAW,WACP,MAAO,IAAIoM,GAAgBxhD,EAAQ4D,eAK/Ck/C,EAAuBrhD,EAAK3B,QAC5B4O,OAAQ,SAAU3M,EAAIy3B,GAClB,GAAI4D,GAAOr7B,EAAG+1B,KAAK33B,KAAK4N,KACxBqvB,GAAK/lB,QACL+lB,EAAKxvB,MAAMzN,KAAKsgB,OAAOI,UAAU2Y,OAGrCupB,EAAWD,EAAqBhjD,QAChCC,KAAM,SAAUC,GACZyB,EAAKxB,GAAGF,KAAKG,KAAKC,KAAMH,GACxBG,KAAK4N,KAAOpO,EAAMsC,QAAQE,QAAQie,MAAQzgB,EAAMsC,QAAQ0X,MAAQ,oBAAsB,gBACtFxZ,KAAKyD,SACGG,MACI,OACA,UAGZ5D,KAAKsgB,OAAS,GAAIshC,GAAyB5hD,KAAKyD,OAAQ5D,EAAQgjD,QAAShjD,EAAQiiD,WAErF1hD,QAAS,SAAUsjB,GACf,GAAI7jB,GAAUG,KAAKH,QAAS4D,EAASzD,KAAKyD,OAAQ0E,IAClD,OAAO,IAAIvB,GAAO45C,cAAc7gD,EAAO+jB,GACnCuxB,UAAW,WAEP,MADA9sC,GAAMtI,EAAQijD,SAAWp/B,EAAiBjW,MACnC,GAAI+0C,GAAsB/+C,GAAU0E,MAAOA,GAAStI,EAAQgjD,cAI/Et/B,WAAY,SAAU3hB,EAAImhD,GAAd,GAC0E7Y,GAAY9vB,EAyB1F0kC,EAzBA7wC,EAAS80C,EAAY90C,OAAQpO,EAAUG,KAAKH,QAAS2G,EAAW3G,EAAQ2D,KAAyB8M,IACjGzQ,GAAQyQ,eACRA,IACQsP,KAAM3R,EAAOpO,QAAQ0H,SAAS1H,EAAQyQ,aAAa,GAAGsP,MACtDnS,MAAO5N,EAAQyQ,aAAa,GAAG7C,SAG3Cy8B,EAAa55B,EAAauP,OAAOhgB,EAAQ2lB,MAAQ3lB,EAAQ2lB,MAAQvX,EAAOpO,QAAQ2G,QAChF5E,EAAG+M,MAAOsH,MAAO8sC,EAAY9sC,QAC7BrU,EAAG5B,KAAK4N,OACJo1C,cAAe,OACfC,eAAgB,QAChB/Y,WAAYA,EACZhnB,OAAQ,WACJjV,EAAOuU,OAASpI,EAChB9Y,EAAKqa,KAAK1N,EAAQzH,EAAUxG,KAAKyN,UAErCyJ,MAAO,WACHhI,WAAW,WACPjB,EAAOsU,qBACR,IAEP2gC,gBAAgB,IAEpBthD,EAAG0M,QAAQ,aAAamP,YAAY,KAAOjX,GAAUkI,KAAK,KAAK4zC,UAAU3zC,KAAK,eAAgB,MAC1FmwC,EAASl9C,EAAG+1B,KAAK33B,KAAK4N,MAC1BkxC,EAAOrxC,MAAM,WACbqxC,EAAOrwC,QAAQiK,GAAGgoC,EAAc,qBAAsB,WAClD,GAAIyC,GAAWl1C,EAAO6J,UACtBsC,GAAQnM,EAAOoU,eAAe8gC,GAAYA,EAAW/oC,IACtD1B,GAAGioC,EAAY,SAAU3vC,GACpBA,EAAE2J,UAAYnb,EAAM0C,KAAKi8C,QACzBlwC,EAAOsU,oBACPvR,EAAEgK,uBAKdooC,EAAY9hD,EAAK3B,QACjBC,KAAM,SAAUC,GACZyB,EAAKxB,GAAGF,KAAKG,KAAKC,KAAMH,GACxBG,KAAKyD,SACGG,MACI,OACA,UAGZ5D,KAAKsgB,OAAS,GAAIshC,GAAyB5hD,KAAKyD,OAAQ5D,EAAQgjD,UAEpEhjD,SACIwjD,QAAS,UACTt3C,QAAS,IAEbwC,OAAQ,WACJvO,KAAKsjD,QAAQpsC,SAEjB9W,QAAS,SAAUsjB,GACf,GAAI7jB,GAAUG,KAAKH,QAAS4D,EAASzD,KAAKyD,OAAQ0E,IAClD,OAAO,IAAIvB,GAAO45C,cAAc7gD,EAAO+jB,GACnCuxB,UAAW,WAEP,MADA9sC,GAAMtI,EAAQijD,SAAWp/B,EAAiBjW,MACnC,GAAI+0C,GAAsB/+C,GAAU0E,MAAOA,GAAStI,EAAQgjD,cAI/Et/B,WAAY,SAAU3hB,EAAImhD,GACtB,GAAIh1C,GAAO/N,KAAMiO,EAAS80C,EAAY90C,OAAQzH,EAAWxG,KAAKwD,KAAM3D,EAAUF,KAAWyjD,EAAUtjD,GAAGD,QAASG,KAAKH,SAAUwjD,EAAUxjD,EAAQwjD,QAASt3C,EAAUlM,EAAQkM,OAC3KnK,GAAK5B,KAAKsjD,QAAU,GAAI9jD,GAAMoC,GAAG2hD,YAAY3hD,GACzC4hD,eAAe,EACfC,OAAQ,WACRC,SAAS,EACT3rC,OAAO,EACPwlC,SAAS,EACToG,SAAU,cAAgB9gD,EAAYgB,gBAAgBhE,EAAQ2D,MAC9D6/C,QAASA,EACTt3C,QAASA,EACTmX,OAAQ,WACJ,GAAIsX,GAAQ54B,EAAG6L,OACXjO,GAAMsC,QAAQE,QAAQie,MAAQlS,EAAK61C,aAAe71C,EAAK81C,eACvD51C,EAAOsN,YAAYxN,EAAK61C,aAExBppB,GACAl5B,EAAKqa,KAAK1N,EAAQzH,EAAUg0B,SAEzBzsB,GAAK61C,kBACL71C,GAAK81C,cACZ51C,EAAO0L,SAEX/C,KAAM,SAAU5F,GACZ,GAAI8yC,GAAS9yC,EAAE+yC,MACfh2C,GAAK61C,YAAc31C,EAAO6J,WAC1BgsC,EAAOE,OAAOx2C,QAAQkL,GAAGgoC,EAAc,SAAU1vC,GACxC5P,EAAE4P,EAAE+I,QAAQmE,GAAG,wBAChBlN,EAAEgK,mBAGL8oC,EAAOE,OAAOx2C,QAAQ0Q,GAAG,wBAC1B4lC,EAAOE,OAAOx2C,QAAQmB,MAAO6U,aAAc,OAAQ9U,KAAK,gBAAgBC,KAAK,eAAgB,MAAMw5B,MAAMz5B,KAAK,SAASgK,GAAG,QAAS,WAC/H3K,EAAK81C,eAAgB,KAIjC3sC,MAAO,SAAUlG,GACbA,EAAE+yC,OAAOC,OAAOx2C,QAAQqL,IAAI6nC,GACxBlhD,EAAMsC,QAAQE,QAAQie,MAAQlS,EAAK61C,aAAe71C,EAAK81C,eACvD51C,EAAOsN,YAAYxN,EAAK61C,cAGhCzJ,SAAU,SAAUnpC,GAChBA,EAAEgK,iBACkC,2BAAhChK,EAAE+yC,OAAOE,OAAOC,aAGpBtiD,EAAGlB,QAAQ,aAGnBkB,EAAG6M,QAAQE,MACPsH,MAAO8sC,EAAY9sC,MACnBuN,aAAc,OACf9U,KAAK,gBAAgBC,KAAK,eAAgB,MAC7C/M,EAAG6L,MAAM,iBAGjB9N,GAAOiH,GACHg6C,mBAAoBA,EACpBS,gBAAiBA,EACjBsB,qBAAsBA,EACtBf,yBAA0BA,EAC1BY,sBAAuBA,EACvBE,iBAAkBA,EAClBE,SAAUA,EACVQ,UAAWA,IAEft8C,EAAe,SAEPlD,MACI,SACA,OAIJA,MAAO,QACP+K,MAAQxG,OAASg8C,WAAY,YAGrC59C,EAAa,OAAQ,GAAIm8C,IACrBt/B,IAAK,IACLC,MAAM,EACN5f,OAAQuD,EAAQQ,KAChB7E,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBkT,MAAO,YAGfnP,EAAe,WAEPlD,MACI,KACA,OAIJA,MAAO,QACP+K,MAAQxG,OAASi8C,UAAW,cAGpC79C,EAAa,SAAU,GAAIm8C,IACvBt/B,IAAK,IACLC,MAAM,EACN5f,OAAQuD,EAAQS,OAChB9E,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBkT,MAAO,cAGfnP,EAAe,cAEPlD,MAAO,QACP+K,MAAQxG,OAASygC,eAAgB,gBAEnChlC,MAAO,QAEb2C,EAAa,YAAa,GAAIm8C,IAC1Bt/B,IAAK,IACLC,MAAM,EACN5f,OAAQuD,EAAQU,UAChB/E,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBkT,MAAO,iBAGfnP,EAAe,kBAEPlD,MACI,MACA,YAIJA,MAAO,QACP+K,MAAQxG,OAASygC,eAAgB,oBAGzCriC,EAAa,gBAAiB,GAAIm8C,IAC9Bj/C,OAAQuD,EAAQW,cAChBhF,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBkT,MAAO,qBAGfnP,EAAe,gBAAkBlD,MAAO,UACxC2C,EAAa,cAAe,GAAIm8C,IAC5Bj/C,OAAQuD,EAAQjD,YAChBpB,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBkT,MAAO,mBAGfnP,EAAe,cAAgBlD,MAAO,UACtC2C,EAAa,YAAa,GAAIm8C,IAC1Bj/C,OAAQuD,EAAQhD,UAChBrB,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBkT,MAAO,iBAGf1P,EAAa,YAAa,GAAI68C,IAC1BP,QAAS,QACTf,SAAU,QACVgB,QAAS,QACTt/C,KAAM,YACNb,SAAU,GAAIF,IACVE,SAAUE,EAAYK,oBACtB+S,MAAO,aAGf1P,EAAa,YAAa,GAAI68C,IAC1BP,QAAS,mBACTC,QAAS,kBACTt/C,KAAM,YACNb,SAAU,GAAIF,IACVE,SAAUE,EAAYK,oBACtB+S,MAAO,wBAGf1P,EAAa,WAAY,GAAIq8C,IACzBC,QAAS,cACTf,SAAU,OACVgB,QAAS,aACTt/C,KAAM,WACN8M,eACQsP,KAAM,kBACNnS,MAAO,YAEf9K,SAAU,GAAIF,IACVE,SAAUE,EAAYM,iBACtB8S,MAAO,iBAGf1P,EAAa,WAAY,GAAIq8C,IACzBC,QAAS,YACTf,SAAU,OACVgB,QAAS,WACTt/C,KAAM,WACN8M,eACQsP,KAAM,kBACNnS,MAAO,YAEf9K,SAAU,GAAIF,IACVE,SAAUE,EAAYM,iBACtB8S,MAAO,kBAGjBxU,OAAOjC,MAAM8lB,SACC,kBAAV/lB,SAAwBA,OAAOyB,IAAMzB,OAAS,SAAU0B,EAAIC,EAAIC,IACrEA,GAAMD,OAEV,SAAU5B,EAAGC,QACVA,OAAO,uBAAwB,+BAAgCD,IACjE,YACG,SAAU8B,EAAGC,GA8TV,QAASgjD,GAAkBC,EAAKlS,GAE5B,IADA,GAAI1uC,GAAI4gD,EAAIzjD,OACL6C,MAAQ0uC,EAAO12B,KAAK4oC,EAAI5gD,MAE/B,MAAOA,GAEX,QAAS6gD,GAAcD,EAAKlS,GACxB,GAAIoS,GAAIpS,EAAOz2B,KAAK2oC,EACpB,OAAOE,GAAIA,EAAEp9C,SAtUpB,GACO5H,GAAQiC,OAAOjC,MAAOkC,EAAQlC,EAAMkC,MAAO/B,EAASyB,EAAEzB,OAAQsC,EAAQb,EAAEa,MAAO2E,EAASpH,EAAMoC,GAAGqM,OAAQC,EAAMtH,EAAOuH,IAAKoS,EAAa3Z,EAAO2Z,WAAY1d,EAAc+D,EAAO/D,YAAakyC,EAAUnuC,EAAOmuC,QAASzzC,EAAOsF,EAAOtF,KAAMmB,EAAemE,EAAOnE,aAAc4+C,EAAkBz6C,EAAOy6C,gBAAiBT,EAAqBh6C,EAAOg6C,mBAAoBvgC,EAAYE,EAAWF,UAAW0wB,EAAoBxwB,EAAWwwB,kBAAmBxqC,EAAeK,EAAO/D,YAAY0D,aAAcrE,EAAO1C,EAAM0C,KAC1fuiD,EAAgB,UAChBC,EAAiB,YACjBC,EAAqB,mBACrBC,EAAmBljD,EAAM/B,QACzBuhD,aAAc,SAAUC,GACpB,MAAOjzC,GAAIgrB,aAAaioB,GAAa,SAGzC0D,EAAgBnjD,EAAM/B,QACtBC,KAAM,WACFI,KAAKsgB,OAAS,GAAIskC,IAEtB5jB,MAAO,SAAU5mB,EAAO2e,GAAjB,GAEC+rB,GAASpvC,EAAKu/B,EAAWiL,EAAG54B,EAcxBy9B,EACKrhD,EAhBT21B,EAAQr5B,KAAK4d,WAAamzB,EAAkB32B,GAASiG,EAAUjG,EAEnE,IAAI2e,EAAWiH,UAAW,CActB,IAbAtqB,EAAM6K,EAAWgsB,kBAAkBnyB,GACnC0qC,EAAUvkC,EAAWoxB,WAAWv3B,GAChCA,EAAM2yB,iBACNmT,EAAIhyC,EAAI4F,OAAO4B,EAAK,IAAKqjB,GACzB3e,EAAMszB,WAAWwS,GACjB54B,EAAS44B,EAAE5rC,WACa,KAApBpG,EAAI1K,KAAK8jB,IACTpZ,EAAIqE,YAAY2tC,EAAG54B,GAEnBpZ,EAAI4tB,UAAUxU,IACdpZ,EAAIqF,OAAO+T,GAEXy9B,EAAM7E,EACDx8C,EAAI,EAAGA,EAAIohD,EAAQjkD,OAAQ6C,IAChCwK,EAAIqE,YAAYuyC,EAAQphD,GAAIqhD,GAC5BA,EAAMD,EAAQphD,EAEdohD,GAAQjkD,SACRqN,EAAIY,aAAa4G,EAAIw6B,eAAe,UAAW4U,EAAQ,IAAMA,EAAQ,IACrE52C,EAAIqE,YAAYmD,EAAIw6B,eAAe,UAAW4U,EAAQ,IAAMA,EAAQ,IACpE1qC,EAAMsyB,eAAeoY,EAAQ,IAC7B1qC,EAAMyyB,YAAYiY,EAAQA,EAAQjkD,OAAS,SAG/Co0C,GAAY,GAAIoM,KAAmBz9C,MAAO,OAASm1B,GACnDkc,EAAU30B,OAAStgB,KAAKsgB,OACxB20B,EAAUjU,MAAM3H,MAIxB2rB,EAAgBjQ,EAAQp1C,QACxBC,KAAM,SAAUC,GACZ,GAAIkO,GAAO/N,IACXH,GAAQo1C,WACJM,OAAQ,SAAUn7B,GACd,GAAIif,GAAQtrB,EAAK6P,aAAemzB,EAAkB32B,GAASiG,EAAUjG,EACrE,IAAIinC,KAAmBz9C,MAAO,QAAS2P,OAAO8lB,KAGtDr5B,KAAKH,QAAUA,EACfk1C,EAAQj1C,GAAGF,KAAKG,KAAKC,KAAMH,MAG/BolD,EAAclQ,EAAQp1C,QACtBC,KAAM,SAAUC,GACZ,GAAIkO,EACJ/N,MAAKH,QAAUA,EACfk1C,EAAQj1C,GAAGF,KAAKG,KAAKC,KAAMH,GAC3BG,KAAKi1C,UAAY,GAAI4P,GAChBhlD,EAAQqlD,IAITllD,KAAK2b,KAAO,WACR3b,KAAKi1C,UAAUr3B,WAAa7P,GAAQA,EAAK6P,aACzC5d,KAAKi1C,UAAUjU,MAAMnhC,EAAQua,OACzBpD,KAAMnX,EAAQqlD,IACdllB,UAAWngC,EAAQ+f,MAAQ/f,EAAQqlD,IACnCnrC,OAAQla,EAAQka,WARxB/Z,KAAK+4B,WAAa,KAClB/4B,KAAKijB,OAAQ,IAYrBkiC,gBAAiB,WACb,MAAO3lD,GAAMmD,SAAS,8oCAAi1C4E,SAAUvH,KAAKiO,OAAOpO,QAAQ0H,YAEz4CoU,KAAM,WAAA,GAKE0d,GACA6mB,EACAkF,EACA9E,EAPA/4C,EAAWvH,KAAKiO,OAAOpO,QAAQ0H,QACnCvH,MAAKqlD,aAAe,GACpBrlD,KAAKwiB,OAASxiB,KAAKk1C,WAAU,GAC7Bl1C,KAAKi1C,UAAUr3B,WAAa5d,KAAK4d,aAC7Byb,EAAQhZ,EAAUrgB,KAAKwiB,QACvB09B,EAAI7mB,EAAMx4B,OAASb,KAAKi1C,UAAU30B,OAAO4gC,aAAa7nB,EAAM,IAAM,KAClE+rB,EAAM/rB,EAAMx4B,QAAgC,OAAtBqN,EAAI1K,KAAK61B,EAAM,IACrCinB,EAAStgD,KAAKq1C,aAAar1C,KAAKmlD,mBAChClvC,MAAO1O,EAAS3C,WAChBsS,MAAOjV,EAAMjC,KAAKslD,OAAQtlD,MAC1Bw5C,SAAS,IAET0G,IACAlgD,KAAKwiB,OAAOsqB,mBAAmBoT,GAC/B7mB,EAAQhZ,EAAUrgB,KAAKwiB,SAE3BxiB,KAAKqlD,aAAerlD,KAAKuJ,SAAS8vB,GAClCinB,EAAO5xC,KAAK,oBAAoBgK,GAAG,QAASzW,EAAMjC,KAAKulD,OAAQvlD,OAAOmoC,MAAMz5B,KAAK,mBAAmBgK,GAAG,QAASzW,EAAMjC,KAAKslD,OAAQtlD,OAAOmoC,MAAMz5B,KAAK,uBAAuBgK,GAAG,UAAWzW,EAAMjC,KAAKwlD,SAAUxlD,OAAOmoC,MAAMz5B,KAAK,sBAAsB2I,IAAIrX,KAAKylD,QAAQvF,IAAI/X,MAAMz5B,KAAK,uBAAuB2I,IAAIrX,KAAKqlD,cAAcld,MAAMz5B,KAAK,wBAAwB2I,IAAI6oC,EAAIA,EAAEjqC,MAAQ,IAAIkyB,MAAMz5B,KAAK,yBAAyBC,KAAK,YAAWuxC,GAAgB,UAAZA,EAAEnmC,QAA4BouB,MAAMz5B,KAAK,2BAA2B6mC,QAAQ6P,GAClgBplD,KAAK0lD,QAAUpF,EAAO3oB,KAAK,eAAe4oB,SAAS3pC,OACnDxV,EAAE,qBAAsBk/C,GAAQ5/C,QAAQ,SAASqpC,UAErDyb,SAAU,SAAUx0C,GAChB,GAAI9O,GAAO1C,EAAM0C,IACb8O,GAAE2J,SAAWzY,EAAKi8C,MAClBn+C,KAAKulD,OAAOv0C,GACLA,EAAE2J,SAAWzY,EAAKg8C,KACzBl+C,KAAKslD,OAAOt0C,IAGpBu0C,OAAQ,SAAUv0C,GAAV,GAGAiF,GAAO2J,EAAM7F,EAFbvM,EAAUxN,KAAK0lD,QAAQl4C,QACvBwJ,EAAO5V,EAAE,qBAAsBoM,GAAS6J,MAExCsuC,EAAYvkD,EAAE,sBAAuBoM,EACrCwJ,IAAQA,GAAQytC,IACZztC,EAAKzH,QAAQ,KAAO,IAAM,kBAAkBmM,KAAK1E,KACjDA,EAAO,UAAYA,GAEvBhX,KAAK+4B,YAAe/hB,KAAMA,GAC1Bf,EAAQ7U,EAAE,uBAAwBoM,GAAS6J,MACvCpB,IACAjW,KAAK+4B,WAAW9iB,MAAQA,GAExB0vC,EAAUznC,GAAG,cACb0B,EAAOpgB,EAAM+Q,KAAKo1C,EAAUtuC,OACvBuI,GAAS5f,KAAKqlD,aAERzlC,GAAQA,IAAS5f,KAAKqlD,eAC7BrlD,KAAK+4B,WAAWiH,UAAY9xB,EAAIgtB,SAAStb,IAFzC5f,KAAK+4B,WAAWiH,UAAYhpB,GAKpC+C,EAAS3Y,EAAE,wBAAyBoM,GAAS0Q,GAAG,YAChDle,KAAK+4B,WAAWhf,OAASA,EAAS,SAAW,KAC7C/Z,KAAKi1C,UAAUjU,MAAMhhC,KAAKwiB,OAAQxiB,KAAK+4B,aAE3C/4B,KAAKslD,OAAOt0C,GACRhR,KAAKkjB,QACLljB,KAAKkjB,UAGboiC,OAAQ,SAAUt0C,GACdA,EAAEgK,iBACFhb,KAAK0lD,QAAQtxC,UACblG,EAAIqrB,mBAAmBhZ,EAAWgsB,kBAAkBvsC,KAAKwiB,SAAS7I,QAClE3Z,KAAKm1C,aAAan1C,KAAKwiB,SAE3BijC,QAAS,SAAUxL,GACf,MAAIA,GACOA,EAAOtjC,aAAa,OAAQ,GAEhC8tC,GAEXl7C,SAAU,SAAU8vB,GAAV,GAEF31B,GADAkc,EAAO,EAEX,KAAKlc,EAAI,EAAGA,EAAI21B,EAAMx4B,OAAQ6C,IAC1Bkc,GAAQyZ,EAAM31B,GAAG0X,SAErB,OAAOlN,GAAIgtB,SAAStb,GAAQ,KAEhCjf,KAAM,WACF,GAAIyZ,GAAQpa,KAAKk1C,WAAU,EAC3Bl1C,MAAKi1C,UAAUjU,MAAM5mB,EAAOpa,KAAK+4B,YACjC/4B,KAAKm1C,aAAa/6B,MAGtBwrC,EAAkB7Q,EAAQp1C,QAC1BC,KAAM,SAAUC,GACZk1C,EAAQj1C,GAAGF,KAAKG,KAAKC,KAAMH,GAC3BG,KAAKi1C,UAAY,GAAI4P,IAEzBlpC,KAAM,WAAA,GAKEvB,GACAyrC,EACAC,EANAC,EAAe/lD,KAAKgmD,YACnBD,KAGD3rC,EAAQpa,KAAK8X,WACb+tC,EAAa,GAAIrmD,GAAMoC,GAAGqM,OAAOi+B,OACjC4Z,EAAY1rC,EAAM4yB,aACtB8Y,EAAUzqC,SAAS0qC,EAAatzC,MAAM2U,KAAM2+B,EAAatzC,MAAM8H,QAC/DurC,EAAUrZ,OAAOsZ,EAAa5d,IAAI/gB,KAAM2+B,EAAa5d,IAAI5tB,QACzDH,EAAQpa,KAAKk1C,YACb2Q,EAAWhW,IAAIiW,GACf9lD,KAAKi1C,UAAUjU,MAAM8kB,GAAa9uC,KAAMhX,KAAKimD,mBAAmBF,EAAanmC,QAC7EimC,EAAWtyC,OAAOuyC,GAClB9lD,KAAKm1C,aAAa/6B,KAEtB4rC,WAAY,WAAA,GASJE,GAOAC,EAfA/rC,EAAQpa,KAAK8X,WACbsuC,EAAYhsC,EAAMqG,eAClB0B,EAAc/H,EAAM+H,YACpBqF,EAAO4+B,EAAU3uB,eAarB,QAZKjQ,IAAStZ,EAAI+sB,MAAMmrB,KAAeA,EAAU3+B,cAAgBtF,GAAejU,EAAIwpB,WAAW0uB,MAC3FA,EAAYA,EAAU9xC,WACtB6N,EAAc,GAEd+jC,EAAY,GAAIG,IAChBj/B,KAAMg/B,EACN7rC,OAAQ4H,EACRmkC,aAAc,SAAUl/B,GACpB,MAAOA,IAA2B,MAAnBlZ,EAAI1K,KAAK4jB,MAG5B++B,EAAY,GAAII,GAAqBL,GAClCC,EAAUH,cAErBznC,eAAgB,WACZ,QAASve,KAAKgmD,cAElBC,mBAAoB,SAAU18C,GAC1B,GAAIi9C,GAAcxmD,KAAKymD,mBAAmBl9C,EAC1C,OAAOi9C,GAAcj9C,EAAWvJ,KAAK0mD,uBAAuBn9C,IAEhEk9C,mBAAoB,SAAUl9C,GAC1B,MAAOm7C,GAAehpC,KAAKnS,IAE/Bm9C,uBAAwB,SAAUn9C,GAC9B,MAAOk7C,GAAgBl7C,KAG3Bo9C,EAAarlD,EAAK3B,QAClBC,KAAM,SAAUC,GACZG,KAAKH,QAAUA,EACfG,KAAKsgB,OAAS,GAAIsgC,KAAsBh9C,MAAO,QAC/CtC,EAAKxB,GAAGF,KAAKG,KAAKC,KAAMoB,EAAEzB,OAAOE,GAAWO,QAAS4kD,MAEzDzhC,WAAY,SAAU3hB,EAAI/B,GACtByB,EAAKxB,GAAGyjB,WAAWxjB,KAAKC,KAAM4B,EAAI/B,GAClC+B,EAAGgN,SAAS,qBAEhBL,OAAQ,SAAU3M,EAAIy3B,GAClBz3B,EAAGgQ,YAAY,oBAAqB5R,KAAKsgB,OAAOK,YAAY0Y,IAAQ5b,YAAY,oBAGpF8oC,EAAuB7kD,EAAM/B,QAC7BC,KAAM,SAAUsmD,GACZlmD,KAAKkmD,UAAYA,EACjBlmD,KAAKyS,MAAQm0C,IACb5mD,KAAKmoC,IAAMye,IACX5mD,KAAK4f,KAAO,IAEhBomC,WAAY,WAAA,GAIApmC,GAKAwmB,EAUIygB,EACAC,EAnBR1/B,EAAOpnB,KAAKkmD,UAAU9+B,KACtB7M,EAASva,KAAKkmD,UAAU3rC,MAC5B,IAAIrM,EAAIwpB,WAAWtQ,IAEf,GADIxH,EAAOwH,EAAKuQ,KAAK0a,UAAU,EAAG93B,GAC9B,SAASmB,KAAKxN,EAAIgtB,SAAStb,IAC3B,WAEc,KAAXrF,IACH6rB,EAAIl4B,EAAIkzB,sBAAsBha,EAAMlZ,EAAI2Y,eACxCuf,GAAKA,EAAE3O,iBACPz3B,KAAKkmD,UAAUtmD,MAAOwnB,KAAMgf,EAAE3O,kBAgBtC,OAbAz3B,MAAKkmD,UAAUhY,SAAS9sC,EAAEa,MAAMjC,KAAK+mD,WAAY/mD,OAC5CA,KAAKmoC,IAAI6e,UACVhnD,KAAKkmD,UAAYlmD,KAAKkmD,UAAUe,MAAMjnD,KAAKmoC,KAC3CnoC,KAAKkmD,UAAUhY,SAAS9sC,EAAEa,MAAMjC,KAAKknD,aAAclnD,OAC9CA,KAAKmnD,oBACFN,EAAoB7mD,KAAKkmD,UAAUkB,cAAcpnD,KAAKyS,OACtDq0C,EAAsB,GAAIO,GAAsBR,GACpDC,EAAoB5Y,SAAS9sC,EAAEa,MAAMjC,KAAKsnD,qBAAsBtnD,OAC3DA,KAAKmnD,oBACNnnD,KAAKyS,MAAQm0C,OAIrB5mD,KAAKyS,MAAMu0C,QACJ,MAGHv0C,MAAOzS,KAAKyS,MACZ01B,IAAKnoC,KAAKmoC,IACVvoB,KAAM5f,KAAK4f,OAIvBunC,gBAAiB,WACb,MAAOzC,GAAehpC,KAAK1b,KAAK4f,OAAS,WAAWlE,KAAK1b,KAAK4f,OAElEmnC,WAAY,SAAUnnC,EAAMwH,GACxB,GAAI1jB,GAAI2gD,EAAkBzkC,EAAM+kC,EAChC,IAAIjhD,KAGA,MAFA1D,MAAKmoC,IAAI/gB,KAAOA,EAChBpnB,KAAKmoC,IAAI5tB,OAAS7W,EAAI,GACf,GAGfwjD,aAAc,SAAUtnC,EAAMwH,GAAhB,GACN1jB,GAAI2gD,EAAkBzkC,EAAM,MAC5B2nC,EAAK7jD,EAAI,CAIb,IAHA1D,KAAK4f,KAAOA,EAAKyyB,UAAUkV,GAAMvnD,KAAK4f,KACtC5f,KAAKyS,MAAM2U,KAAOA,EAClBpnB,KAAKyS,MAAM8H,OAASgtC,EAChB7jD,KACA,OAAO,GAGf4jD,qBAAsB,SAAU1nC,EAAMwH,EAAM7M,GAAtB,GACd7W,GAAI6gD,EAAc3kC,EAAM,MACxB2nC,EAAK7jD,CAOT,IANIA,SACA6jD,EAAK3nC,EAAK/e,QAEdb,KAAK4f,KAAO5f,KAAK4f,KAAKyyB,UAAUkV,GAChCvnD,KAAKyS,MAAM2U,KAAOA,EAClBpnB,KAAKyS,MAAM8H,OAASgtC,GAAe,EAAThtC,GACtB7W,KACA,OAAO,KAcfkjD,EAAS,WACT,OACIx/B,KAAM,KACN7M,OAAQ,KACRysC,MAAO,WACH,MAAqB,QAAdhnD,KAAKonB,MAAiC,OAAhBpnB,KAAKua,UAI1CitC,EAAmB9lD,EAAM/B,QACzBC,KAAM,SAAUC,GACZG,KAAKonB,KAAOvnB,EAAQunB,KACpBpnB,KAAKua,OAAS1a,EAAQ0a,SAAWlZ,EAAY6M,EAAIwpB,WAAW13B,KAAKonB,OAASpnB,KAAKonB,KAAKvmB,QAAU,EAAIhB,EAAQ0a,OAC1Gva,KAAKsmD,aAAezmD,EAAQymD,cAAgBtmD,KAAKsmD,cAAgBllD,EAAEuiB,MAEvEuqB,SAAU,SAAUC,GACXA,IAGLnuC,KAAKynD,QAAS,EACdznD,KAAK0nD,UAAUvZ,EAAUnuC,KAAKonB,KAAMpnB,KAAKua,UAE7CmtC,UAAW,SAAUvZ,EAAU/mB,EAAM7M,GAA1B,GAKCqF,GAMA+nC,EAIJltC,EAEI6M,CAhBR,IAAKF,IAAQpnB,KAAKynD,OAAlB,CAGA,GAAsB,IAAlBrgC,EAAKjM,SASL,MAFIwsC,GAAW3nD,KAAK2nD,SAASvgC,GAC7BpnB,KAAKynD,OAASznD,KAAKynD,QAAUznD,KAAKsmD,aAAaqB,GACxC3nD,KAAK0nD,UAAUvZ,EAAUwZ,EAGpC,IAXQ/nC,EAAOwH,EAAKuQ,KACZpd,IAAWlZ,IACXue,EAAO5f,KAAK4nD,QAAQhoC,EAAMrF,IAE9Bva,KAAKynD,OAAStZ,EAASvuB,EAAMwH,EAAM7M,MAAY,EAM/CE,EAAOza,KAAKya,KAAK2M,IAChB3M,EAED,IADI6M,EAASF,EAAK9S,YACVmG,GAAQvM,EAAI6uB,SAASzV,IACzB7M,EAAOza,KAAKya,KAAK6M,GACjBA,EAASA,EAAOhT,UAGxBtU,MAAKynD,OAASznD,KAAKynD,QAAUznD,KAAKsmD,aAAa7rC,GAC/Cza,KAAK0nD,UAAUvZ,EAAU1zB,KAE7B2sC,cAAe,SAAUhpC,GACrB,MAAOhd,GAAEzB,QACLynB,KAAMpnB,KAAKonB,KACX7M,OAAQva,KAAKua,OACb+rC,aAActmD,KAAKsmD,cACpBloC,QAEPupC,SAAU,SAAUvgC,KAEpB3M,KAAM,SAAU2M,KAEhBwgC,QAAS,SAAUhoC,EAAMrF,OAGzB8rC,EAAuBmB,EAAiB7nD,QACxCioD,QAAS,SAAUhoC,EAAMioC,GACrB,MAAOjoC,GAAKyyB,UAAU,EAAGwV,IAE7BptC,KAAM,SAAU2M,GACZ,MAAOA,GAAKqQ,iBAEhBkwB,SAAU,SAAUvgC,GAChB,MAAOA,GAAK+U,WAEhB8qB,MAAO,SAAUpnD,GACb,GAAIue,GAAIpe,KAAKonD,cAAcvnD,EAC3B,OAAO,IAAIwmD,GAAqBjoC,MAGpCipC,EAAwBG,EAAiB7nD,QACzCioD,QAAS,SAAUhoC,EAAMioC,GACrB,MAAOjoC,GAAKyyB,UAAUwV,IAE1BptC,KAAM,SAAU2M,GACZ,MAAOA,GAAKK,aAEhBkgC,SAAU,SAAUvgC,GAChB,MAAOA,GAAKG,YAEhB0/B,MAAO,SAAUpnD,GACb,GAAIue,GAAIpe,KAAKonD,cAAcvnD,EAC3B,OAAO,IAAIwnD,GAAsBjpC,KAGzCze,GAAOH,EAAMoC,GAAGqM,QACZ22C,iBAAkBA,EAClBC,cAAeA,EACfG,cAAeA,EACfC,YAAaA,EACbW,gBAAiBA,EACjBe,WAAYA,EACZJ,qBAAsBA,EACtBF,qBAAsBA,EACtBgB,sBAAuBA,IAE3B9gD,EAAa,aAAc,GAAIjF,IAC3B8hB,IAAK,IACLC,MAAM,EACNjjB,QAAS6kD,EACTtiD,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBkT,MAAO,mBAGf1P,EAAa,SAAU,GAAIogD,IACvBvjC,IAAK,IACLC,MAAM,EACN+4B,OAAO,EACPz5C,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBkT,MAAO,mBAGf1P,EAAa,WAAY,GAAIjF,IACzB8hB,KACIlhB,EAAKi8C,MACLj8C,EAAKk8C,UAET3iC,iBAAiB,EACjBrb,QAASwlD,MAEfnkD,OAAOjC,MAAM8lB,SACC,kBAAV/lB,SAAwBA,OAAOyB,IAAMzB,OAAS,SAAU0B,EAAIC,EAAIC,IACrEA,GAAMD,OAEV,SAAU5B,EAAGC,QACVA,OAAO,8BAA+B,yBAA0BD,IAClE,YACG,SAAU8B,GAAV,GA4RO0mD,GA3RAtoD,EAAQiC,OAAOjC,MAAOkC,EAAQlC,EAAMkC,MAAO/B,EAASyB,EAAEzB,OAAQiH,EAASpH,EAAMoC,GAAGqM,OAAQjH,EAAUxH,EAAMoC,GAAGgF,OAAO9G,GAAGD,QAAQmH,QAASkH,EAAMtH,EAAOuH,IAAK1L,EAAemE,EAAOnE,aAAcg+C,EAAa75C,EAAO65C,WAAY59C,EAAc+D,EAAO/D,YAAa0D,EAAe1D,EAAY0D,aAAcO,EAAiBjE,EAAYiE,eAAgByZ,EAAa3Z,EAAO2Z,WACxWwnC,EAAoBrmD,EAAM/B,QAC1BC,KAAM,SAAU6D,GACZzD,KAAKyD,OAASA,GAElB8Z,SAAU,SAAU6J,EAAMif,GACtB,GAAI3iC,GAAG+hB,EAAKmW,CACZ,KAAKl4B,EAAI,EAAG+hB,EAAM4gB,EAASxlC,OAAQ6C,EAAI+hB,EAAK/hB,IAExC,GADAk4B,EAAQyK,EAAS3iC,IACZk4B,IAAU1tB,EAAIoU,iBAAiB8E,EAAMwU,GACtC,OAAO,CAGf,QAAO,GAEXslB,aAAc,SAAU7nB,GAAV,GAC+B31B,GAAG+hB,EAAKuiC,EAEpC1oD,EAFTmE,EAASzD,KAAKyD,OAAQwkD,IAC1B,KAAKvkD,EAAI,EAAG+hB,EAAM4T,EAAMx4B,OAAQ6C,EAAI+hB,EAAK/hB,IAAK,CAC1C,IAASpE,EAAImE,EAAO5C,OAAS,EAAGvB,GAAK,KACjC0oD,EAAY95C,EAAI2wB,OAAOxF,EAAM31B,GAAID,EAAOnE,GAAGsE,MAAQy1B,EAAM31B,GAAKwK,EAAIkzB,sBAAsB/H,EAAM31B,GAAID,EAAOnE,GAAGsE,OADxEtE,KAMxC,IAAK0oD,GAA2C,SAA9BA,EAAUh7C,gBACxB,QAEA5L,GAAEuC,QAAQqkD,EAAWC,GAAY,GACjCA,EAAS9nD,KAAK6nD,GAItB,IADAhoD,KAAKkoD,mBAAmBD,GACnBvkD,EAAI,EAAG+hB,EAAMwiC,EAASpnD,OAAQ6C,EAAI+hB,EAAK/hB,IACxC,GAAI1D,KAAKud,SAAS0qC,EAASvkD,GAAIukD,GAC3B,OAAQA,EAASvkD,GAGzB,OAAOukD,IAEXC,mBAAoB,SAAU7uB,GAC1B,GAAI31B,GAAG0jB,EAAM3Y,CACb,KAAK/K,EAAI,EAAGA,EAAI21B,EAAMx4B,OAAQ6C,IAC1B0jB,EAAOiS,EAAM31B,GACb+K,EAAUP,EAAIgQ,GAAGkJ,EAAM,MAAQA,EAAOlZ,EAAIO,QAAQ2Y,GAClD3Y,EAAUA,GAAWP,EAAI+uB,KAAKxuB,GAAWA,EAAQ43B,SAAS,GAAK53B,EAC3DP,EAAIgQ,GAAGzP,EAAS,QAChB2Y,EAAOiS,EAAM31B,GAAK+K,IAI9B2yC,WAAY,SAAUD,EAAYgH,GAAtB,GACkBzkD,GAAG+hB,EAAK2B,EAAMxjB,EAAMm1B,EASlCkN,EATRxiC,EAASzD,KAAKyD,OACd07B,EAAiBjxB,EAAIixB,eAAegiB,GACpCvjC,EAAa5d,KAAKH,SAAWG,KAAKH,QAAQ+d,WAC1CwqC,EAAexhD,EAAOiX,UAC1B,KAAKna,EAAI,EAAG+hB,EAAMhiB,EAAO5C,OAAQ6C,EAAI+hB,EAAK/hB,IAAK,CAI3C,GAHA0jB,EAAO+5B,EACPv9C,EAAOH,EAAOC,GAAGE,KACjBm1B,EAAat1B,EAAOC,GAAGiL,KACnBiP,GAAcha,GAAmB,aAAXA,EAAK,KACvBqiC,EAAYmiB,EAAapX,gBAAgB5pB,GACzC6e,GAAa/3B,EAAI4qB,WAAWmN,EAAWlN,IACvC,MAAO3R,EAGf,MAAOA,GAAQlZ,EAAI0pB,aAAauH,EAAgB/X,IAAO,CACnD,GAAIlZ,EAAI2wB,OAAOzX,EAAMxjB,IAASsK,EAAI4qB,WAAW1R,EAAM2R,GAC/C,MAAO3R,EAEX,IAAI+gC,GAASA,EAAM/gC,GACf,KAEJA,GAAOA,EAAK9S,YAGpB,MAAO,OAEXoM,UAAW,SAAU2Y,GACjB,GAEsC31B,GAAG+hB,EAFrC1X,EAAO/N,KAAMohD,EAAa,SAAUh6B,GAChC,MAAOrZ,GAAKqzC,WAAWlzC,EAAIwpB,WAAWtQ,GAAQA,EAAK9S,WAAa8S,IACjE8U,EAASklB,EAAW/nB,EAAM,GACjC,KAAK6C,EACD,MAAO,EAEX,KAAKx4B,EAAI,EAAG+hB,EAAM4T,EAAMx4B,OAAQ6C,EAAI+hB,EAAK/hB,IACrC,GAAIw4B,GAAUklB,EAAW/nB,EAAM31B,IAC3B,MAAO,EAGf,OAAOw4B,GAAOliB,SAASrT,eAE3Bga,YAAa,SAAU0Y,EAAO8uB,GAC1B,IAAK,GAAIzkD,GAAI,EAAG+hB,EAAM4T,EAAMx4B,OAAQ6C,EAAI+hB,EAAK/hB,IACzC,IAAK1D,KAAKohD,WAAW/nB,EAAM31B,GAAIykD,GAC3B,OAAO,CAGf,QAAO,KAGXE,EAAiB3mD,EAAM/B,QACvBC,KAAM,SAAU6D,EAAQ69C,GACpBthD,KAAKyD,OAASA,EACdzD,KAAKshD,OAASA,EACdthD,KAAKsgB,OAAS,GAAIynC,GAAkBtkD,IAExC27B,KAAM,SAAU4H,EAAKjO,EAAYM,GAA3B,GAKE+G,GAAuD9B,EAA4C7vB,EAAqE/K,EAAG4kD,EAJ3KnoB,EAAiC,GAAhB9G,EAAMx4B,OAAcqN,EAAI+qB,kBAAkBI,EAAM,IAAMnrB,EAAIiyB,eAAea,MAAM,KAAM3H,EAK1G,KAJInrB,EAAI6uB,SAASoD,KACbA,EAAiBjyB,EAAI+qB,kBAAkBkH,IAEvCC,EAAYlyB,EAAI6tB,sBAAsBoE,GAAiB7B,EAAWpwB,EAAIqpB,cAAc6I,EAAU,IAAK3xB,EAAUP,EAAI4F,OAAOqsB,EAAehH,cAAe6N,EAAKjO,GAC1Jr1B,EAAI,EAAGA,EAAI08B,EAAUv/B,OAAQ6C,IAC9B4kD,EAAWloB,EAAU18B,GACjBwK,EAAI0uB,QAAQ0rB,IACZp6C,EAAIS,KAAK25C,EAAUvvB,GACftqB,EAAQ8pB,WAAW13B,SACnBqN,EAAIY,aAAaL,EAAS65C,GAC1B75C,EAAUA,EAAQkqB,WAAU,IAEhC2F,EAAWpwB,EAAIqpB,cAAc+wB,GAAY,GAG7C75C,EAAQ0K,YAAYmvC,EAEpB75C,GAAQ8Y,YACRrZ,EAAIkwB,SAAS+B,EAAgB1xB,EAAS6vB,IAG9C0C,MAAO,SAAU3H,GAEb,QAASN,GAAWt1B,GAChB,MAAO9D,MAAW8D,GAAUA,EAAOkL,KAAM2yC,GAH1C,GACC79C,GAKA8kD,EACAC,EACAC,EAOAC,EACAlH,EAES99C,EAAO+hB,EAjBR67B,EAASthD,KAAKshD,MAW1B,IAPAthD,KAAK2oD,kBAAkBtvB,GAAO,GAC1BkvB,EAASr6C,EAAImzB,OAAO,MAAOhI,GAC3BmvB,EAAc3lD,EAAYU,aAAa,MAAOvD,KAAKyD,QACnDglD,EAAkB1vB,EAAWyvB,GACjCpnD,EAAEu+B,KAAK4oB,EAAQ,WACXr6C,EAAIS,KAAK3O,KAAMyoD,KAEfF,EAAO1nD,QAAUw4B,EAAMx4B,OAK3B,GAFI6nD,EAAYx6C,EAAImzB,OAAO,MAAOhI,GAAO,GACrCmoB,EAAcxhD,KAAKsgB,OAAO4gC,aAAawH,GACvClH,EAAY3gD,OACZ,IAAS6C,EAAI,EAAG+hB,EAAM+7B,EAAY3gD,OAAQ6C,EAAI+hB,EAAK/hB,IAC/CD,EAASZ,EAAYU,aAAa2K,EAAI1K,KAAKg+C,EAAY99C,IAAK1D,KAAKyD,QACjEyK,EAAIS,KAAK6yC,EAAY99C,GAAIq1B,EAAWt1B,QAGxCA,GAASzD,KAAKyD,OAAO,GACrBzD,KAAKo/B,KAAK37B,EAAOG,KAAK,GAAIm1B,EAAWt1B,GAASilD,IAGtDC,kBAAmB,SAAUtvB,EAAOuvB,GAAjB,GAIXC,GAIAT,EACAnkB,EACKvgC,EACDstC,CAVR,IAAKhxC,KAAK4d,eAGNirC,EAAkBhmD,EAAYU,aAAa,YAAavD,KAAKyD,SAMjE,IAFI2kD,EAAexhD,EAAOiX,WACtBomB,EAAI5K,EAAMx4B,OAAS,EACd6C,EAAIugC,EAAGvgC,GAAK,EAAGA,IAChBstC,EAAkBoX,EAAapX,gBAAgB3X,EAAM31B,IACpDstC,IAGDA,IAAoB3X,EAAM31B,EAAI,KAC1BklD,EACA16C,EAAIS,KAAKqiC,EAAiB6X,EAAgBl6C,MAE1CT,EAAI0xB,QAAQoR,EAAiB6X,EAAgBl6C,KAAKxG,QAG1DkxB,EAAM+P,OAAO1lC,EAAG,KAGxBka,WAAY,WACR,MAAO5d,MAAKiO,QAAUjO,KAAKiO,OAAOpO,QAAQ+d,YAE9CrK,OAAQ,SAAU8lB,GACd,GAAI31B,GAAGugC,EAAGsd,EAAYuH,EAAatlD,CAEnC,KADAxD,KAAK2oD,kBAAkBtvB,GAAO,GACzB31B,EAAI,EAAGugC,EAAI5K,EAAMx4B,OAAQ6C,EAAIugC,EAAGvgC,IACjC69C,EAAavhD,KAAKsgB,OAAO8gC,WAAW/nB,EAAM31B,IACtC69C,IACA/9C,EAAO0K,EAAI1K,KAAK+9C,GAChBuH,EAAcjmD,EAAYU,aAAaC,EAAMxD,KAAKyD,QAC9CqlD,EAAYn6C,KAAKxG,OACjB+F,EAAI0xB,QAAQ2hB,EAAYuH,EAAYn6C,KAAKxG,OAEzC2gD,EAAYn6C,KAAK2sB,WACjBptB,EAAIuP,YAAY8jC,EAAYuH,EAAYn6C,KAAK2sB,aAK7Dia,OAAQ,SAAUn7B,GACd,GAAIrM,GAAO/N,KAAMq5B,EAAQnrB,EAAIszB,SAASjhB,EAAW8Y,MAAMjf,GAAQlM,EAAIquB,iBAAiB,EAChFxuB,GAAKuS,OAAOK,YAAY0Y,GACxBtrB,EAAKwF,OAAO8lB,GAEZtrB,EAAKizB,MAAM3H,MAInB0vB,EAAuBrnD,EAAM/B,QAC7BC,KAAM,SAAU6D,EAAQ69C,GACpB,GAAIvzC,GAAO/N,IACX+N,GAAKtK,OAASA,EACdsK,EAAKuzC,OAASA,EACdvzC,EAAKuS,OAAS,GAAIynC,GAAkBtkD,IAExCu9B,MAAO,SAAU3H,GAAV,GAIC31B,GAAG+hB,EAAKwX,EAAMgY,EAAW76B,EACzB5M,EACA2Q,EACA2I,EACAkiC,EAsBIC,EA7BJxlD,EAASzD,KAAKyD,OACd61B,EAASprB,EAAIkrB,aAAaC,GAC1B6vB,EAAYzlD,EAAO,GAAGG,KAAK,EAM/B,IAAI01B,EAAOz4B,OACP,IAAK6C,EAAI,EAAG+hB,EAAM6T,EAAOz4B,OAAQ6C,EAAI+hB,EAAK/hB,IACtCojB,EAAQwS,EAAO51B,GACfslD,EAAkBhpD,KAAK4d,cAAgBhX,EAAOiX,WAAWmzB,gBAAgBlqB,GACpEkiC,IACD7qC,EAAUjQ,EAAI1K,KAAKsjB,GACJ,MAAX3I,GACA8e,EAAOnW,EAAMxS,WACb2gC,EAAY,GAAIruC,GAAOuiD,cAAclsB,EAAKjjB,SAASrT,cAAeuiD,GAClE9uC,EAAQpa,KAAKiO,OAAO6O,cACpB1C,EAAM2C,WAAWuc,EAAO51B,IACxBuxC,EAAUM,OAAOn7B,IACV8uC,IAAyB,MAAX/qC,GAAmB2I,EAAMiS,WAAW/rB,iBACzD,GAAIq7C,GAAe5kD,EAAQzD,KAAKshD,QAAQtgB,MAAMla,EAAMyR,aAEpD/qB,EAAUU,EAAI4wB,UAAUhY,EAAOoiC,GAC/Bh7C,EAAIS,KAAKnB,EAAS/J,EAAO,GAAGkL,YAKpCs6C,GAAiB,GAAIZ,GAAe5kD,EAAQzD,KAAKshD,QACrD2H,EAAeh7C,OAASjO,KAAKiO,OAC7Bg7C,EAAejoB,MAAM3H,IAG7Bkc,OAAQ,SAAUn7B,GACd,GAAIif,GAAQ9Y,EAAWF,UAAUjG,EAC5Bif,GAAMx4B,SACPuZ,EAAM0yB,mBAAmB1yB,EAAM6G,yBAC/BoY,EAAQ9Y,EAAWF,UAAUjG,GACxBif,EAAMx4B,SACPw4B,EAAQnrB,EAAI6tB,sBAAsB3hB,EAAM6G,2BAGhDjhB,KAAKghC,MAAM3H,IAEfzb,WAAY,WACR,MAAO5d,MAAKiO,QAAUjO,KAAKiO,OAAOpO,QAAQ+d,cAG9CwrC,EAAkB3I,EAAW9gD,QAC7BC,KAAM,SAAUC,GACZ4gD,EAAW3gD,GAAGF,KAAKG,KAAKC,KAAML,EAAOE,GACjCygB,OAAQ,GAAIynC,GAAkBloD,EAAQ4D,QACtCwxC,UAAW,WACP,MAAO,IAAIoT,GAAexoD,EAAQ4D,cAKlD9D,GAAOiH,GACHmhD,kBAAmBA,EACnBM,eAAgBA,EAChBU,qBAAsBA,EACtBK,gBAAiBA,IAEjBtB,GACA,KACA,KACA,MAEJhhD,EAAe,gBAEPlD,KAAMsK,EAAI0Y,qBACVjY,MAAQxG,OAASkhD,UAAW,WAG5BzlD,MAAO,OACP+K,MACIxG,OACImhD,QAAS,OACT1K,QAAS,GACT2K,WAAY,GACZC,YAAa,OAKrB5lD,MAAO,aACP+K,MACIxG,OACImhD,QAAS,OACT1K,QAAS,GACT2K,WAAY,GACZC,YAAa,OAKrB5lD,KAAMkkD,EACNn5C,MACIxG,OACIkhD,UAAW,OACXI,kBAAmB,QAKnCljD,EAAa,cAAe,GAAI6iD,IAC5B3lD,OAAQuD,EAAQ/C,YAChBtB,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBkT,MAAO,oBAGfnP,EAAe,kBAEPlD,KAAMsK,EAAI0Y,qBACVjY,MAAQxG,OAASkhD,UAAW,aAG5BzlD,MAAO,OACP+K,MACIxG,OACIy2C,QAAS,QACT2K,WAAY,OACZC,YAAa,OACbF,QAAS,OAKjB1lD,MAAO,aACP+K,MACIxG,OACIy2C,QAAS,QACT2K,WAAY,OACZC,YAAa,OACbF,QAAS,OAKjB1lD,KAAMkkD,EACNn5C,MACIxG,OACIkhD,UAAW,SACXI,kBAAmB,cAKnCljD,EAAa,gBAAiB,GAAI6iD,IAC9B3lD,OAAQuD,EAAQ9C,cAChBvB,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBkT,MAAO,sBAGfnP,EAAe,iBAEPlD,KAAMsK,EAAI0Y,qBACVjY,MAAQxG,OAASkhD,UAAW,YAG5BzlD,MAAO,OACP+K,MACIxG,OACImhD,QAAS,QACT1K,QAAS,GACT2K,WAAY,GACZC,YAAa,OAKrB5lD,MAAO,aACP+K,MACIxG,OACImhD,QAAS,QACT1K,QAAS,GACT2K,WAAY,GACZC,YAAa,OAKrB5lD,KAAMkkD,EACNn5C,MACIxG,OACIkhD,UAAW,QACXI,kBAAmB,cAKnCljD,EAAa,eAAgB,GAAI6iD,IAC7B3lD,OAAQuD,EAAQ7C,aAChBxB,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBkT,MAAO,qBAGfnP,EAAe,gBAEPlD,KAAMsK,EAAI0Y,qBACVjY,MAAQxG,OAASkhD,UAAW,cAG5BzlD,MAAO,OACP+K,MACIxG,OACIy2C,QAAS,QACT2K,WAAY,OACZC,YAAa,OACbF,QAAS,OAKjB1lD,MAAO,aACP+K,MACIxG,OACIy2C,QAAS,QACT2K,WAAY,OACZC,YAAa,OACbF,QAAS,OAKjB1lD,KAAMkkD,EACNn5C,MACIxG,OACIkhD,UAAW,UACXI,kBAAmB,QAKnCljD,EAAa,cAAe,GAAI6iD,IAC5B3lD,OAAQuD,EAAQ5C,YAChBzB,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBkT,MAAO,qBAGjBxU,OAAOjC,MAAM8lB,SACC,kBAAV/lB,SAAwBA,OAAOyB,IAAMzB,OAAS,SAAU0B,EAAIC,EAAIC,IACrEA,GAAMD,OAEV,SAAU5B,EAAGC,QACVA,OAAO,wBAAyB,8BAA+BD,IACjE,YACG,SAAU8B,GAAV,GACO5B,GAAQiC,OAAOjC,MAAOkC,EAAQlC,EAAMkC,MAAO/B,EAASyB,EAAEzB,OAAQiH,EAASpH,EAAMoC,GAAGqM,OAAQC,EAAMtH,EAAOuH,IAAKoS,EAAa3Z,EAAO2Z,WAAY1d,EAAc+D,EAAO/D,YAAakyC,EAAUnuC,EAAOmuC,QAAStyC,EAAemE,EAAOnE,aAAcg+C,EAAa75C,EAAO65C,WAAYsH,EAAoBnhD,EAAOmhD,kBAAmB1nC,EAAYE,EAAWF,UAAW9Z,EAAeK,EAAO/D,YAAY0D,aAC5XmjD,EAAmB3B,EAAkBpoD,QACrCC,KAAM,SAAUC,GAAV,GAIE+D,GAIAH,CAPJzD,MAAKgnC,IAAMnnC,EAAQmnC,IACnBhnC,KAAK2O,KAAO9O,EAAQ8O,KACpB3O,KAAK2pD,QAAU9pD,EAAQ8pD,QACnB/lD,EAAO5D,KAAK4D,MACA,MAAZ5D,KAAKgnC,IAAc,KAAO,KAC1BhnC,KAAKgnC,KAELvjC,IACIG,KAAMA,EACN+K,KAAM3O,KAAK2O,OAEf3O,KAAK2pD,SACLlmD,EAAOtD,MACHyD,KAAMA,EACN+K,KAAM3O,KAAK2pD,UAGnB5B,EAAkBjoD,GAAGF,KAAKG,KAAKC,KAAMyD,IAEzCmmD,YAAa,SAAUxiC,GACnB,MAAOlZ,GAAI4qB,WAAW1R,EAAMpnB,KAAK2O,OAAS3O,KAAK2pD,SAAWz7C,EAAI4qB,WAAW1R,EAAMpnB,KAAK2pD,UAExFE,OAAQ,SAAUziC,GACd,MAAOlZ,GAAI+uB,KAAK7V,IAEpBzG,YAAa,SAAU0Y,GAAV,GAELkoB,GAAY79C,EADZ89C,IAEJ,KAAK99C,EAAI,EAAGA,EAAI21B,EAAMx4B,OAAQ6C,IAC1B69C,EAAavhD,KAAKohD,WAAW/nB,EAAM31B,GAAI1D,KAAK6pD,QACxCtI,GAAcrzC,EAAI1K,KAAK+9C,IAAevhD,KAAKgnC,KAAOhnC,KAAK4pD,YAAYrI,IACnEC,EAAYrhD,KAAKohD,EAGzB,IAAIC,EAAY3gD,OAAS,EACrB,OAAO,CAEX,IAAI2gD,EAAY3gD,QAAUw4B,EAAMx4B,OAC5B,OAAO,CAEX,KAAK6C,EAAI,EAAGA,EAAI89C,EAAY3gD,QACpB2gD,EAAY99C,GAAG4Q,YAAcitC,EAAWjtC,WADZ5Q,IAIhC,GAAI89C,EAAY99C,IAAM69C,EAClB,OAAO,CAGf,QAAO,GAEXL,aAAc,SAAU7nB,GACpB,GAAI2uB,GAAYhoD,KAAKohD,WAAW/nB,EAAM,GAAIr5B,KAAK6pD,OAC/C,OAAI7B,IAAa95C,EAAI1K,KAAKwkD,IAAchoD,KAAKgnC,IAClCghB,EAEJ,QAGXmB,EAAgBznD,EAAM/B,QACtBC,KAAM,SAAUC,EAASiqD,GACrB,GAAI/7C,GAAO/N,IACXH,GAAUuB,EAAEkR,cAAczS,GAAWA,GACjCmnC,IAAKnnC,EACL8O,KAAM,MAEVZ,EAAKi5B,IAAMnnC,EAAQmnC,IACnBj5B,EAAKY,KAAO9O,EAAQ8O,KACpBZ,EAAKuS,OAAS,GAAIopC,GAAiB7pD,GACnCkO,EAAK+7C,UAAYA,GAErBD,OAAQ,SAAUziC,GACd,MAAOlZ,GAAI+uB,KAAK7V,IAEpBxJ,WAAY,WACR,MAAO5d,MAAKiO,UAAYjO,KAAKiO,OAAOpO,QAAQ+d,YAEhDwhB,KAAM,SAAUnC,EAAM5D,GAClB,GAA+C31B,GAAG0jB,EAA9C2iC,EAAK77C,EAAI4F,OAAOmpB,EAAK9D,cAAe,MAAgB6wB,EAAchqD,KAAK4d,aAAehX,EAAOiX,WAAWooB,UAAY7kC,EAAEuiB,IAC1H,KAAKjgB,EAAI,EAAGA,EAAI21B,EAAMx4B,OAAQ6C,IAE1B,GADA0jB,EAAOiS,EAAM31B,GACTwK,EAAIgQ,GAAGkJ,EAAM,MACb6V,EAAK9jB,YAAYiO,OAGrB,IAAIpnB,KAAK6pD,OAAOziC,GACZ,KAAOA,EAAKG,YACR0V,EAAK9jB,YAAYiO,EAAKG,gBAI9B,IAAIrZ,EAAIgQ,GAAGkJ,EAAM,MAAjB,CACI,KAAOA,EAAKG,YACRwiC,EAAG5wC,YAAYiO,EAAKG,WAExB0V,GAAK9jB,YAAY4wC,GACjB3iC,EAAKjO,YAAY8jB,GACjBA,EAAOA,EAAKtE,WAAU,GACtBoxB,EAAKA,EAAGpxB,WAAU,OAGtBoxB,GAAG5wC,YAAYiO,GACXlZ,EAAI0uB,QAAQxV,KACZ6V,EAAK9jB,YAAY4wC,GACZC,EAAY5iC,IACblZ,EAAImxB,OAAOjY,GAEf2iC,EAAKA,EAAGpxB,WAAU,GAGtBoxB,GAAGxiC,YACH0V,EAAK9jB,YAAY4wC,IAGzBE,YAAa,SAAU3iC,EAAQ+R,GAC3B,IAAK,GAAI31B,GAAI,EAAGA,EAAI21B,EAAMx4B,OAAQ6C,IAC9B,GAAIwK,EAAIoU,iBAAiBgF,EAAQ+R,EAAM31B,IACnC,OAAO,CAGf,QAAO,GAEXukD,SAAU,SAAUD,EAAW3uB,GAC3B,GAA2B,YAAvB2uB,EAAU1sB,UAAyB,CACnC,GAAIkB,GAAUwrB,EAAUvgC,WACxB,IAAI+U,GAAWtuB,EAAI0uB,QAAQJ,GACvB,OAAO,CAGX,IADAA,EAAUwrB,EAAUvwB,gBAChB+E,GAAWtuB,EAAI0uB,QAAQJ,GACvB,OAAO,EAGf,MAAOx8B,MAAKiqD,YAAYjC,EAAW3uB,IAAUnrB,EAAI6uB,SAASirB,IAAoC,GAAtBA,EAAU7sC,UAEtF+uC,aAAc,SAAU9iC,GACpB,GAAI+Z,GAAWjzB,EAAI+yB,gBAAgB7Z,EACnC,OAAOhmB,GAAEgmB,GAAMi7B,aAAalhB,EAAU,UAE1C1oB,MAAO,SAAU2B,GAAV,GAEC3H,GAAO01B,EAAKrqB,EAMHpa,EAAOugC,EACRsd,EARRloB,EAAQhZ,EAAUjG,EAEtB,IAAIif,EAAMx4B,OAKN,IAJA4R,EAAQvE,EAAIgrB,aAAaG,EAAM,IAAK,OACpC8O,EAAMj6B,EAAIgrB,aAAaG,EAAMA,EAAMx4B,OAAS,IAAK,OACjDuZ,EAAMsyB,eAAej6B,GACrB2H,EAAMyyB,YAAY1E,GACTzkC,EAAI,EAAGugC,EAAI5K,EAAMx4B,OAAQ6C,EAAIugC,EAAGvgC,IACjC69C,EAAavhD,KAAKsgB,OAAO8gC,WAAW/nB,EAAM31B,IAC1C69C,IACAzjC,EAAU9d,KAAKkqD,aAAa3I,GACxBzjC,EAAQjd,OACR0f,EAAW9H,MAAM2B,EAAO0D,EAAQlL,OAAO,IAAI,GAE3C2N,EAAW9H,MAAM2B,EAAOmnC,GAAY;EAMxD4I,MAAO,SAAUnjB,EAAKua,GAElB,IADA,GAAuC9mC,GAAnC+M,EAAO+5B,EAAW9pB,gBACfjQ,IAA2B,YAAlBA,EAAK8T,WAA4C,GAAjB9T,EAAKrM,UAAiBjN,EAAI8tB,aAAaxU,KACnFA,EAAOA,EAAKiQ,eAEhB,IAAIjQ,GAAQtZ,EAAI1K,KAAKgkB,IAASwf,GAAOhnC,KAAKsgB,OAAOspC,YAAYpiC,GAAO,CAChE,KAAO+5B,EAAWh6B,YACdC,EAAKrO,YAAYooC,EAAWh6B,WAEhCrZ,GAAIqF,OAAOguC,GACXA,EAAa/5B,EAGjB,IADA/M,EAAO8mC,EAAW95B,YACXhN,IAA2B,YAAlBA,EAAK6gB,WAA4C,GAAjB7gB,EAAKU,UAAiBjN,EAAI8tB,aAAavhB,KACnFA,EAAOA,EAAKgN,WAEhB,IAAIhN,GAAQvM,EAAI1K,KAAKiX,IAASusB,GAAOhnC,KAAKsgB,OAAOspC,YAAYnvC,GAAO,CAChE,KAAO8mC,EAAWplB,WACd1hB,EAAK3L,aAAayyC,EAAWplB,UAAW1hB,EAAK8M,WAEjDrZ,GAAIqF,OAAOguC,KAGnB6I,UAAW,SAAUhjC,GACjB,MAAOA,IAAQA,EAAK+R,cAAc1nB,OAAS,0BAA0BiK,KAAKxN,EAAI1K,KAAK4jB,MAAWA,EAAK2R,WAAW/rB,iBAElHq9C,iBAAkB,SAAUhxB,GACxB,GAAuDkoB,GAAnDxzC,EAAO/N,KAAMsgB,EAASvS,EAAKuS,OAAQ0mB,EAAMj5B,EAAKi5B,GAWlD,OAVAua,GAAajhC,EAAO4gC,aAAa7nB,GAC5BkoB,IACDjhC,EAAS,GAAIopC,IAAmB1iB,IAAY,MAAPA,EAAc,KAAO,OAC1Dua,EAAajhC,EAAO4gC,aAAa7nB,IAEhCkoB,IACDjhC,EAAS,GAAIopC,IAAmB1iB,IAAKA,IACrCua,EAAajhC,EAAO4gC,aAAa7nB,GACjCkoB,EAAaA,GAAcxzC,EAAKuS,OAAOspC,YAAYrI,GAAc,KAAOA,GAErEA,GAEX+I,eAAgB,SAAUC,EAASlxB,GAsB/B,QAASmxB,KACLpqB,EAAUjgC,KAAKH,MAvBP,GAMRu4B,GAmBK70B,EACDk4B,EACAqsB,EA1BJjhB,EAAMhnC,KAAKgnC,IACXr4B,EAAO3O,KAAK2O,KACZwxB,EAAiBjyB,EAAI2yB,wBAAwBxH,GAC7C+G,KACAmhB,EAAavhD,KAAKqqD,iBAAiBhxB,EAoBvC,KAlBI,oBAAoB3d,KAAKxN,EAAI1K,KAAK28B,IAClC5H,EAAan3B,EAAE2V,IAAIsiB,EAAO,SAAUjS,GAChC,MAAOlZ,GAAIgrB,aAAa9R,GAAO,UAGnCmR,EAAarqB,EAAI6tB,sBAAsBoE,GACnC/+B,EAAEu6B,KAAKpD,EAAYrqB,EAAI0uB,SAAS/7B,SAChC03B,EAAan3B,EAAEu6B,KAAKpD,EAAYn3B,EAAEa,MAAM,SAAUmlB,GAC9C,MAAOpnB,MAAKiqD,YAAY7iC,EAAMiS,IAC/Br5B,QAEFu4B,EAAW13B,SACZ03B,EAAac,IAMZ31B,EAAI,EAAGA,EAAI60B,EAAW13B,OAAQ6C,IAC/Bk4B,EAAQrD,EAAW70B,GACnBukD,IAAa1G,IAAerzC,EAAIoU,iBAAiBi/B,EAAY3lB,KAAW57B,KAAKioD,SAASrsB,EAAOvC,GAC5F4uB,IAGD1G,GAAcvhD,KAAK6pD,OAAOjuB,IAC1Bx6B,EAAEu+B,KAAK/D,EAAMyK,SAAUmkB,GACvBt8C,EAAIqF,OAAOqoB,IAEXwE,EAAUjgC,KAAKy7B,GAcvB,KAXIwE,EAAUv/B,QAAU03B,EAAW13B,QAAUb,KAAKoqD,UAAUjqB,KACxDC,GAAaD,IAEZohB,IACDA,EAAarzC,EAAI4F,OAAOqsB,EAAehH,cAAe6N,EAAKr4B,GACvDT,EAAI0uB,QAAQwD,EAAU,KACtBlyB,EAAIsxB,gBAAgBY,EAAU,GAAImhB,GAEtCrzC,EAAIY,aAAayyC,EAAYnhB,EAAU,KAE3CpgC,KAAKo/B,KAAKmiB,EAAYnhB,GACflyB,EAAI+sB,MAAMsmB,EAAW95B,cACxBvZ,EAAIqF,OAAOguC,EAAW95B,YAErBznB,MAAKsgB,OAAOspC,YAAYrI,KACzBA,EAAWhiB,gBAAgB,QAC3BgiB,EAAWp5C,MAAMsiD,cAAgB,GACjCv8C,EAAIsxB,gBAAgBtxB,EAAI4F,OAAOqsB,EAAehH,cAAe6N,EAAKr4B,GAAO4yC,GAAY,IAErFA,GAAkD,KAApCA,EAAW5qC,aAAa,SACtC4qC,EAAWhiB,gBAAgB,QAE1BrxB,EAAIgQ,GAAGqjC,EAAYva,IACpB94B,EAAI4wB,UAAUyiB,EAAYva,GAE9BhnC,KAAKmqD,MAAMnjB,EAAKua,IAEpBvgB,MAAO,SAAU3H,GAEb,QAASqxB,KACDC,GACAC,EAASzqD,MACLoqD,QAASI,EACTtxB,MAAOwxB,IALnB,GAA0BF,GAAaE,EAAWN,EAASnjC,EAAvD1jB,EAAI,EAAGknD,KAAsD3mB,EAAI5K,EAAMx4B,OAAQmwC,EAAkBhxC,KAAK4d,aAAehX,EAAOiX,WAAWmzB,gBAAkB5vC,EAAEuiB,IAS/J,KAAKjgB,EAAI,EAAGA,EAAIugC,EAAGvgC,IACf0jB,EAAO4pB,EAAgB3X,EAAM31B,KAAO21B,EAAM31B,GAC1C6mD,EAAUr8C,EAAI+yB,gBAAgB7Z,GAC1B,KACA,KACA,SAECujC,GAAeJ,GAAWI,EAK3BE,EAAU1qD,KAAKinB,IAJfsjC,IACAG,GAAazjC,GACbujC,EAAcJ,EAMtB,KADAG,IACKhnD,EAAI,EAAGA,EAAIknD,EAAS/pD,OAAQ6C,IAC7B1D,KAAKsqD,eAAeM,EAASlnD,GAAG6mD,QAASK,EAASlnD,GAAG21B,QAG7DgG,OAAQ,SAAUyrB,GACd,GAAsFhtC,GAASisC,EAAI3jB,EAAGxK,EAAlGmvB,EAAWD,EAAG3xB,cAAcmU,yBAA0Bwc,EAAY9pD,KAAK8pD,SAC3E,KAAKC,EAAKe,EAAGvjC,WAAYwiC,EAAIA,EAAKA,EAAGtiC,YAAa,CAE9C,IADA2e,EAAIl4B,EAAI4F,OAAOg3C,EAAG3xB,cAAe2wB,GAAa,KACvCC,EAAGxiC,YACNqU,EAAQmuB,EAAGxiC,WACPrZ,EAAI0uB,QAAQhB,IACRwK,EAAE7e,aACFwjC,EAAS5xC,YAAYitB,GACrBA,EAAIl4B,EAAI4F,OAAOg3C,EAAG3xB,cAAe2wB,GAAa,MAElDiB,EAAS5xC,YAAYyiB,IAErBwK,EAAEjtB,YAAYyiB,EAGlBwK,GAAE7e,YACFwjC,EAAS5xC,YAAYitB,GAG7BtoB,EAAU9d,KAAKkqD,aAAaY,GACxBhtC,EAAQ,IACR5P,EAAIqE,YAAYw4C,EAAUjtC,EAAQlL,OAAO,IACzCkL,EAAQlL,OAAOW,UAEfrF,EAAIqE,YAAYw4C,EAAUD,GAE9B58C,EAAIqF,OAAOu3C,IAEfv3C,OAAQ,SAAU8lB,GAAV,GACAkoB,GACK79C,EAAOugC,CAAhB,KAASvgC,EAAI,EAAGugC,EAAI5K,EAAMx4B,OAAQ6C,EAAIugC,EAAGvgC,IACrC69C,EAAavhD,KAAKsgB,OAAO8gC,WAAW/nB,EAAM31B,IACtC69C,GACAvhD,KAAKq/B,OAAOkiB,IAIxBhM,OAAQ,SAAUn7B,GAAV,GAMQwF,GALR7R,EAAO/N,KAAMq5B,EAAQhZ,EAAUjG,GAAQkuC,EAAWluC,EAAM6G,uBACvDoY,GAAMx4B,SACPuZ,EAAM0yB,mBAAmBwb,GACzBjvB,EAAQhZ,EAAUjG,GACbif,EAAMx4B,SACH+e,EAAO0oC,EAASnvB,cAAc+W,eAAe,IACjD91B,EAAMqG,eAAetH,YAAYyG,GACjCyZ,GAASzZ,GACTxF,EAAM2C,WAAW6C,EAAKtL,cAG9B+kB,EAAQnrB,EAAIszB,SAASnI,EAAOnrB,EAAIquB,iBAAiB,GAC7CxuB,EAAKuS,OAAOK,YAAY0Y,IACxBtrB,EAAK0K,MAAM2B,GACXrM,EAAKwF,OAAO8lB,IAEZtrB,EAAKizB,MAAM3H,MAInB2xB,EAAcjW,EAAQp1C,QACtBC,KAAM,SAAUC,GACZA,EAAQo1C,UAAY,GAAIkU,IACpBniB,IAAKnnC,EAAQmnC,IACbr4B,KAAM9O,EAAQ8O,OAElBomC,EAAQj1C,GAAGF,KAAKG,KAAKC,KAAMH,MAG/BorD,EAAWxK,EAAW9gD,QACtBC,KAAM,SAAUC,GACZG,KAAKH,QAAUA,EACf4gD,EAAW3gD,GAAGF,KAAKG,KAAKC,KAAML,EAAOE,GAAWygB,OAAQ,GAAIopC,GAAiB7pD,OAEjFO,QAAS,SAAUsjB,GACf,MAAO,IAAIsnC,GAAYrrD,EAAO+jB,GAC1BsjB,IAAKhnC,KAAKH,QAAQmnC,IAClBr4B,KAAM3O,KAAKH,QAAQ8O,UAI/BhP,GAAOiH,GACH8iD,iBAAkBA,EAClBP,cAAeA,EACf6B,YAAaA,EACbC,SAAUA,IAEd1kD,EAAa,sBAAuB,GAAI0kD,IACpCjkB,IAAK,KACLr4B,MACIxG,OAASsiD,cAAe,IACxB78C,KAAM,IAEVjL,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBkT,MAAO,6BAGf1P,EAAa,oBAAqB,GAAI0kD,IAClCjkB,IAAK,KACLr4B,MACIxG,OAASsiD,cAAe,IACxB78C,KAAM,IAEVjL,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBkT,MAAO,2BAGf1P,EAAa,uBAAwB,GAAI0kD,IACrCjkB,IAAK,KACLr4B,MAAQxG,OAASsiD,cAAe,gBAChCd,SAAW/7C,KAAM,KACjBjL,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBkT,MAAO,+BAGf1P,EAAa,uBAAwB,GAAI0kD,IACrCjkB,IAAK,KACLr4B,MAAQxG,OAASsiD,cAAe,gBAChCd,SAAW/7C,KAAM,KACjBjL,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBkT,MAAO,gCAGjBxU,OAAOjC,MAAM8lB,SACC,kBAAV/lB,SAAwBA,OAAOyB,IAAMzB,OAAS,SAAU0B,EAAIC,EAAIC,IACrEA,GAAMD,OAEV,SAAU5B,EAAGC,QACVA,OAAO,6BAA8B,+BAAgCD,IACvE,YACG,SAAU8B,GA8NP,QAAS8pD,GAAe9jC,GAAxB,GAGY+jC,GACA/wC,EAHJ2vC,EAAK77C,EAAIkzB,sBAAsBha,GAAO,MACtC2iC,KACIoB,EAAgB,GAAIvkD,GAAOuiD,cAAcj7C,EAAI1K,KAAKumD,EAAGz1C,aACrD8F,EAAQ5a,EAAMoC,GAAGqM,OAAOu+B,SAASqB,SAASzmB,GAC9ChN,EAAM2C,WAAWgtC,GACjBoB,EAAc5V,OAAOn7B,IApOhC,GACO5a,GAAQiC,OAAOjC,MAAOoH,EAASpH,EAAMoC,GAAGqM,OAAQ3M,EAAOsF,EAAOtF,KAAMmB,EAAemE,EAAOnE,aAAckgD,EAAuB/7C,EAAO+7C,qBAAsB5N,EAAUnuC,EAAOmuC,QAAS7mC,EAAMtH,EAAOuH,IAAKtL,EAAc+D,EAAO/D,YAAa0d,EAAa3Z,EAAO2Z,WAAYha,EAAe1D,EAAY0D,aACrS6kD,EAAiBzI,EAAqBhjD,QACtCC,KAAM,SAAUC,GACZ,GAAIkO,GAAO/N,IACXsB,GAAKxB,GAAGF,KAAKG,KAAKgO,EAAMvO,EAAMsB,cAAeiN,EAAKlO,QAASA,IAC3DkO,EAAKH,KAAO,iBACZG,EAAKuS,QACDI,UAAW,WACP,MAAO,MAInB7gB,SACI2lB,QAEQ5F,KAAM,YACNnS,MAAO,MAGPmS,KAAM,YACNnS,MAAO,eAGPmS,KAAM,YACNnS,MAAO,OAGPmS,KAAM,YACNnS,MAAO,OAGPmS,KAAM,YACNnS,MAAO,OAGPmS,KAAM,YACNnS,MAAO,OAGPmS,KAAM,YACNnS,MAAO,OAGPmS,KAAM,YACNnS,MAAO,OAGfrD,MAAO,KAEXihD,iBAAkB,SAAUliB,GAAV,GAQVmiB,GAPA79C,EAAQ07B,EAAK17B,KACjB,OAAKA,GAGD07B,EAAKnC,KAAOmC,EAAK7N,UACV6N,GAEPmiB,EAAM79C,EAAM8B,QAAQ,KACZ,IAAR+7C,EACAniB,EAAK7N,UAAY7tB,EAAM4kC,UAAU,GAC1BiZ,MACPniB,EAAKnC,IAAMv5B,GAEX07B,EAAKnC,IAAMv5B,EAAM4kC,UAAU,EAAGiZ,GAC9BniB,EAAK7N,UAAY7tB,EAAM4kC,UAAUiZ,EAAM,IAEpCniB,GAdIA,GAgBf/oC,QAAS,SAAUmkB,GAAV,GACDxW,GAAO/N,KACPmpC,EAAO5kB,EAAK9W,KAEhB,OADA07B,GAAOnpC,KAAKqrD,iBAAiBliB,GACtB,GAAIviC,GAAO45C,eACdpmC,MAAOmK,EAAKnK,MACZ66B,UAAW,WACP,GAAIA,GAAWrxC,GAAQulC,EAAKnC,KAAOmC,EAAKoiB,SAAW,QAAQ9yC,MAAM,KAAMhV,IAC3DG,KAAMA,EACN+K,MAAQ2sB,UAAW6N,EAAK7N,WAAa,KAQjD,OALI2Z,GADA7zC,EAAEuC,QAAQC,EAAK,GAAIsK,EAAI8Y,iBAAmB,EAC9B,GAAIpgB,GAAO47C,sBAAsB/+C,GAEjC,GAAImD,GAAOmiD,qBAAqBtlD,GAEhDwxC,EAAUhnC,OAASF,EAAKE,OACjBgnC,MAInB1xB,WAAY,SAAU3hB,EAAImhD,GAAd,GAKJ/Y,GAJA/7B,EAAS80C,EAAY90C,OACrBpO,EAAUG,KAAKH,QACf2G,EAAW3G,EAAQ2D,KACnBuK,EAAO/N,IAEX+N,GAAKE,OAASA,EACdrM,EAAGwI,MAAMvK,EAAQuK,OACjB4/B,EAAYpoC,EAAG4pD,gBACXxI,cAAe,OACfC,eAAgB,QAChB/Y,WAAYrqC,EAAQ2lB,OAASvX,EAAOpO,QAAQ2G,GAC5CyP,MAAOhI,EAAOpO,QAAQ0H,SAASf,GAC/BkjC,UAAU,EACVxmB,OAAQ,WACJ,GAAIuoC,GAAWzrD,KAAKyrD,UAChBA,IACAnqD,EAAKqa,KAAK1N,EAAQzH,EAAUilD,EAASC,WAG7CC,UAAW,WACP,GAAIjoD,GAAG8hB,EAAQxlB,KAAKkqC,WAAWvS,MAC/B,KAAKj0B,EAAI,EAAGA,EAAI8hB,EAAM3kB,OAAQ6C,IAC1B8hB,EAAM9hB,GAAKqK,EAAKs9C,iBAAiB7lC,EAAM9hB,KAG/Cw/C,gBAAgB,EAChBvgD,SAAUnD,EAAMmD,SAAS,2FAC1Bg1B,KAAK,kBACR/1B,EAAG+M,KAAK,QAASo0C,EAAY9sC,OAC7B+zB,EAAUv7B,QAAQE,KAAK,QAASo0C,EAAY9sC,OAC5CrU,EAAGgN,SAAS,eAAeN,QAAQ,aAAamP,YAAY,KAAOjX,GAAUkI,KAAK,KAAK4zC,UAAU3zC,KAAK,eAAgB,OAE1Hi9C,mBAAoB,SAAUpmC,EAAO6T,GAAjB,GACP31B,GACDylC,EACAnC,EACA1L,EACAoW,EACAlkC,EAOKq+C,CAZb,KAASnoD,EAAI,EAAGA,EAAI8hB,EAAM3kB,OAAQ6C,IAM9B,GALIylC,EAAO3jB,EAAM9hB,GACbsjC,EAAMmC,EAAKnC,KAAOmC,EAAKoiB,SAAW,GAClCjwB,EAAY6N,EAAK7N,UAAY,IAAM6N,EAAK7N,UAAY,GACpDoW,EAAW1K,EAAM1L,EACjB9tB,EAAUpM,EAAEi4B,EAAM,IAAI/qB,QAAQojC,GAAU,GAC5C,CAGA,GAAoB,GAAhBrY,EAAMx4B,OACN,MAAOsoC,GAAK17B,KAEhB,KAASo+C,EAAI,EAAGA,EAAIxyB,EAAMx4B,QACjBO,EAAEi4B,EAAMwyB,IAAIv9C,QAAQojC,GAAU,GADLma,IAGvB,GAAIA,GAAKxyB,EAAMx4B,OAAS,EAC3B,MAAOsoC,GAAK17B,MAIxB,MAAO,IAEXc,OAAQ,SAAU3M,EAAIy3B,GAAd,GAKA6Q,GAAmC1kB,EAA2B9hB,EAAG6nD,EAASjD,EAJ1Ete,EAAY5oC,EAAEQ,GAAI+1B,KAAK33B,KAAK4N,KAChC,IAAKo8B,IAGDE,EAAaF,EAAUE,WAAY1kB,EAAQ0kB,EAAWvS,OAAoB2wB,EAAWp6C,EAAIiyB,eAAea,MAAM,KAAM3H,GACpHivB,GAAYp6C,EAAI+yB,gBAAgBqnB,IAAatoD,KAAK8rD,WAAaxD,GAAnE,CAKA,IAFItoD,KAAK8rD,UAAYxD,EAEhB5kD,EAAI,EAAGA,EAAI8hB,EAAM3kB,OAAQ6C,IAC1B6nD,EAAU/lC,EAAM9hB,GAAG6nD,QACnB/lC,EAAM9hB,GAAG81C,SAAW+R,KAAanqD,EAAEknD,GAAUh6C,QAAQi9C,GAAS1qD,MAElEqpC,GAAW7I,SACH0qB,MAAO,UACPC,SAAU,KACVv+C,OAAO,KAEfk1C,EAAqB7iD,GAAGyO,OAAOxO,KAAKC,KAAM4B,EAAIy3B,GAC9C2Q,EAAUv8B,MAAMzN,KAAK4rD,mBAAmB1hB,EAAWD,OAAQ5Q,IAC3D2Q,EAAUv7B,QAAQmD,YAAY,oBAAqBs4B,EAAWD,OAAOppC,UAEzEuT,QAAS,WACLpU,KAAK8rD,UAAY,QAGrBG,EAAqBlX,EAAQp1C,QAC7Bgc,KAAM,WAAA,GAIE0d,GAGKwB,EACDzT,EAPJhN,EAAQpa,KAAKk1C,WAAU,EAM3B,KALAl1C,KAAKksD,YAAclsD,KAAKH,QAAQ0T,QAAU,wCAAwCkF,MAAM,KACxF8H,EAAWuxB,qBAAqB13B,GAC5Bif,EAAQ9Y,EAAW+wB,OAAOl3B,EAAO,SAAUgN,GAC3C,MAAOA,KAEFyT,EAAIxB,EAAMx4B,OAAS,EAAGg6B,GAAK,EAAGA,IAC/BzT,EAAOiS,EAAMwB,GACZ76B,KAAKgxC,gBAAgB5pB,IACtBpnB,KAAKmsD,MAAM/kC,EAGnBpnB,MAAKm1C,aAAa/6B,IAEtB+xC,MAAO,SAAU/kC,GAAV,GAIC5jB,GAEI2nD,EACA3jC,EACA/M,EAQK/W,CAfb,IAAK0jB,IAAQlZ,EAAIkuB,SAAShV,GAA1B,CAIA,GADI5jB,EAAO0K,EAAI1K,KAAK4jB,GACR,MAAR5jB,GAAwB,MAARA,EAKhB,IAJI2nD,EAAgB,GAAIvkD,GAAOuiD,cAAc3lD,GACzCgkB,EAAOJ,EAAKqQ,gBACZhd,EAAO2M,EAAKK,YAChB0jC,EAAc9rB,OAAOjY,GACdI,GAAQA,GAAQ/M,EAAM+M,EAAOA,EAAKC,YACrCznB,KAAKmsD,MAAM3kC,OAEZ,IAAY,cAARhkB,EACP0K,EAAI4wB,UAAU1X,EAAM,SACjB,IAAqB,GAAjBA,EAAKjM,UAAkBjN,EAAImtB,cAAcjU,GAOhD8jC,EAAe9jC,OAPwC,CACvD,IAAS1jB,EAAI0jB,EAAKmR,WAAW13B,OAAS,EAAG6C,GAAK,EAAGA,IAC7C1D,KAAKmsD,MAAM/kC,EAAKmR,WAAW70B,GAE/B0jB,GAAKmY,gBAAgB,SACrBnY,EAAKmY,gBAAgB,SAIrBn+B,EAAEuC,QAAQH,EAAMxD,KAAKksD,iBACrBh+C,EAAImxB,OAAOjY,KAGnB4pB,gBAAiB,SAAU5pB,GACvB,MAAOpnB,MAAK4d,cAAgBhX,EAAOiX,WAAWmzB,gBAAgB5pB,KAYtEhmB,GAAEzB,OAAOiH,GACLwkD,eAAgBA,EAChBa,mBAAoBA,IAExB1lD,EAAa,aAAc,GAAI6kD,IAC3BzoD,SAAU,GAAIF,IACVE,SAAUE,EAAYO,qBACtB6S,MAAO,cAGf1P,EAAa,kBAAmB,GAAIjF,IAChClB,QAAS6rD,EACTtpD,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBkT,MAAO,yBAGjBxU,OAAOjC,MAAM8lB,SACC,kBAAV/lB,SAAwBA,OAAOyB,IAAMzB,OAAS,SAAU0B,EAAIC,EAAIC,IACrEA,GAAMD,OAEV,SAAU5B,EAAGC,QACVA,OAAO,wBACH,qBACA,kBACDD,IACL,YACG,SAAU8B,EAAGC,GAAb,GACO7B,GAAQiC,OAAOjC,MAAOG,EAASyB,EAAEzB,OAAQiH,EAASpH,EAAMoC,GAAGqM,OAAQpL,EAAc+D,EAAO/D,YAAaqL,EAAMtH,EAAOuH,IAAK5H,EAAe1D,EAAY0D,aAAc9D,EAAemE,EAAOnE,aAAc8d,EAAa3Z,EAAO2Z,WAAYw0B,EAAUnuC,EAAOmuC,QAAS7yC,EAAO1C,EAAM0C,KAAMkqD,EAAkB,sBAAuBC,EAAoB,wBAAyBC,EAAoB,wBAAyBC,EAAqB,yBACzaC,EAAezX,EAAQp1C,QACvBC,KAAM,SAAUC,GACZ,GAAIkO,GAAO/N,IACX+0C,GAAQj1C,GAAGF,KAAKG,KAAKgO,EAAMlO,GAC3BkO,EAAKkV,OAAQ,EACblV,EAAKgrB,eAETj0B,YAAa,SAAUsgD,EAAKhrC,GAAf,GAIDqyC,GAHJ1zB,EAAa/4B,KAAK+4B,WAClBrjB,EAAM6K,EAAWgsB,kBAAkBnyB,EACvC,IAAI2e,EAAWjjB,KAAyB,WAAlBijB,EAAWjjB,IAAkB,CAY/C,GAXI22C,EAAqB,WACrBv9C,WAAW,WACF6pB,EAAW3uB,OACZg7C,EAAI7lB,gBAAgB,SAEnBxG,EAAW1uB,QACZ+6C,EAAI7lB,gBAAgB,UAExB6lB,EAAI7lB,gBAAgB,gBAGvB6lB,EAYD,MAXAA,GAAMl3C,EAAI4F,OAAO4B,EAAK,MAAOqjB,GAC7BqsB,EAAIsH,OAAStH,EAAIuH,QAAUF,EAC3BryC,EAAM2yB,iBACN3yB,EAAMszB,WAAW0X,GACZA,EAAI39B,aACLvZ,EAAIqE,YAAYmD,EAAIw6B,eAAe,UAAWkV,GAElDqH,IACAryC,EAAMuyB,cAAcyY,GACpBhrC,EAAMyyB,YAAYuY,GAClB7kC,EAAWhF,YAAYnB,IAChB,CAEPgrC,GAAIsH,OAAStH,EAAIuH,QAAUF,EAC3Bv+C,EAAIS,KAAKy2C,EAAKrsB,GACd0zB,IAGR,OAAO,GAEXtH,gBAAiB,SAAUyH,GACvB,MAAOptD,GAAMmD,SAAS,ksCAClB4E,SAAUvH,KAAKiO,OAAOpO,QAAQ0H,SAC9BqlD,YAAaA,KAGrBjsD,KAAM,WACF,GAAIoN,GAAO/N,KAAMoa,EAAQrM,EAAKmnC,WACzBnnC,GAAKjJ,YAAYyb,EAAW0wB,MAAM72B,GAAQA,IAC3CrM,EAAKonC,aAAa/6B,IAG1BuB,KAAM,WAOF,QAASqlB,GAAMhwB,GACX,GAAIxD,GAAU8yC,EAAO9yC,QAASwH,EAAI3F,SAAS7B,EAAQkB,KAAK49C,GAAmBj1C,MAAO,IAAKpC,EAAI5F,SAAS7B,EAAQkB,KAAK69C,GAAoBl1C,MAAO,GAC5ItJ,GAAKgrB,YACDjjB,IAAKtI,EAAQkB,KAAK09C,GAAiB/0C,MAAMhQ,QAAQ,KAAM,OACvDg1C,IAAK7uC,EAAQkB,KAAK29C,GAAmBh1C,OAEzCtJ,EAAKgrB,WAAW3uB,MAAQ,KACxB2D,EAAKgrB,WAAW1uB,OAAS,MACpBmF,MAAMwF,IAAMA,EAAI,IACjBjH,EAAKgrB,WAAW3uB,MAAQ4K,IAEvBxF,MAAMyF,IAAMA,EAAI,IACjBlH,EAAKgrB,WAAW1uB,OAAS4K,GAE7B43C,EAAU9+C,EAAKjJ,YAAYsgD,EAAKhrC,GAChClD,EAAMlG,GACFjD,EAAKmV,QACLnV,EAAKmV,SAGb,QAAShM,GAAMlG,GACXA,EAAEgK,iBACFslC,EAAOlsC,UACPlG,EAAIqrB,mBAAmBhZ,EAAWgsB,kBAAkBnyB,IAAQT,QACvDkzC,GACD9+C,EAAKonC,aAAa/6B,GAG1B,QAAS0yC,GAAQ97C,GACTA,EAAE2J,SAAWzY,EAAKi8C,MAClBnd,EAAMhwB,GACCA,EAAE2J,SAAWzY,EAAKg8C,KACzBhnC,EAAMlG,GAvCZ,GACqMsvC,GA8CnM9yC,EAWIu/C,EAzDJh/C,EAAO/N,KAAMoa,EAAQrM,EAAKmnC,YAAa2X,GAAU,EAAOzH,EAAM7kC,EAAW0wB,MAAM72B,GAAQnR,EAAam8C,GAAOA,EAAIzuC,aAAa,UAAY,GAAIzN,EAAck8C,GAAOA,EAAIzuC,aAAa,WAAa,GAAYq2C,EAAOxtD,EAAMsC,QAAQE,QAAQie,KAAMpgB,EAAUkO,EAAKE,OAAOpO,QAAS0H,EAAW1H,EAAQ0H,SAAUmY,EAAe7f,EAAQ6f,aAAcktC,KAAiBptD,EAAMoC,GAAGqrD,cAAgBvtC,GAAgBA,EAAawtC,WAAaxtC,EAAawtC,UAAUC,OAAS9rD,GAAYke,GAC3ctJ,MAAO1O,EAASzC,YAChB00C,SAAS,EACTpnC,UAAWw6C,EAEnB5sD,MAAK2yC,mBAAmBv4B,GAoCxBmF,EAAcrI,MAAQA,EAClB01C,IACArtC,EAAcnV,MAAQ,KAE1Bk2C,EAAStgD,KAAKq1C,aAAatnC,EAAKo3C,gBAAgByH,GAAcrtC,GAAe3N,YAAY,uBAAwBg7C,GAAal+C,KAAK,oBAAoBgK,GAAG,QAASsoB,GAAOmH,MAAMz5B,KAAK,mBAAmBgK,GAAG,QAASxB,GAAOixB,MAAMz5B,KAAK,uBAAuBgK,GAAG,UAAWo0C,GAAS3kB,MAAMz5B,KAAK09C,GAAiB/0C,IAAI+tC,EAAMA,EAAIzuC,aAAa,MAAO,GAAK,WAAWwxB,MAAMz5B,KAAK29C,GAAmBh1C,IAAI+tC,EAAMA,EAAI/I,IAAM,IAAIlU,MAAMz5B,KAAK49C,GAAmBj1C,IAAIpO,GAAYk/B,MAAMz5B,KAAK69C,GAAoBl1C,IAAInO,GAAai/B,MAAMxQ,KAAK,eAC7fnqB,EAAU8yC,EAAO9yC,QACjBo/C,IACA5sD,KAAKotD,cAAgB,GAAI5tD,GAAMoC,GAAGqrD,aAAaz/C,EAAQkB,KAAK,mBAAoB/O,KAAW+f,IAC3F1f,KAAKotD,cAAcn5C,KAAK,SAAU,SAAUo5C,GACR,MAA5BA,EAAGC,SAAShwC,IAAI,SAChB9P,EAAQkB,KAAK09C,GAAiB/0C,IAAIrX,KAAKyN,WAG/CzN,KAAKotD,cAAcn5C,KAAK,QAAS+sB,IAEjCgsB,IACID,EAAev/C,EAAQc,QAAQ,aAAajE,SAChDmD,EAAQ6H,IAAI,aAAc03C,IAE9BzM,EAAOC,SAAS3pC,OAChBpJ,EAAQkB,KAAK09C,GAAiB1rD,QAAQ,SAASqpC,WAGvDvqC,GAAMoC,GAAGqM,OAAOu+C,aAAeA,EAC/BjmD,EAAa,cAAe,GAAIK,GAAOtF,MACnClB,QAASosD,EACT7pD,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBkT,MAAO,qBAGjBxU,OAAOjC,MAAM8lB,SACC,kBAAV/lB,SAAwBA,OAAOyB,IAAMzB,OAAS,SAAU0B,EAAIC,EAAIC,IACrEA,GAAMD,OAEV,SAAU5B,EAAGC,QACVA,OAAO,yBAA0B,eAAgBD,IACnD,YACG,SAAU8B,EAAGC,GAAb,GACO7B,GAAQiC,OAAOjC,MAAOG,EAASyB,EAAEzB,OAAQsC,EAAQb,EAAEa,MAAO2E,EAASpH,EAAMoC,GAAGqM,OAAQpL,EAAc+D,EAAO/D,YAAakyC,EAAUnuC,EAAOmuC,QAASzzC,EAAOsF,EAAOtF,KAAMiF,EAAe1D,EAAY0D,aAAc9D,EAAemE,EAAOnE,aAAc8qD,EAAiB,+MAClQC,EAAgBzY,EAAQp1C,QACxBgc,KAAM,YACD3b,KAAKiO,OAAOkS,eAAiBngB,KAAKytD,2BAA2BjgD,QAAQqP,SAE1E4wC,wBAAyB,WAAA,GACjBpvC,GAAMre,KACNiO,EAASoQ,EAAIpQ,OACby/C,EAAgBz/C,EAAOpO,QAAQ,UAC/B8tD,EAASvsD,EAAE,wDAAwDwsD,aACnEC,QAAS5rD,EAAMoc,EAAIyvC,iBAAkBzvC,GACrC+F,SAAUniB,EAAMoc,EAAI0vC,kBAAmB1vC,GACvC0rB,OAAQ9nC,EAAMoc,EAAI2vC,gBAAiB3vC,GACnC4vC,MAAOhsD,EAAMoc,EAAI6vC,eAAgB7vC,GACjC8vC,SAAUlsD,EAAMoc,EAAI+vC,kBAAmB/vC,GACvCgwC,cAAc,EACdC,UAAU,EACVrrC,OACIsrC,QAASb,EAAc3oC,SACvBypC,YAAY,EACZC,UAAW,QAEfC,YACIC,kBAAmBjB,EAAciB,kBACjCC,YAAalB,EAAckB,eAEhCC,gBAEH,OADA5gD,GAAOkS,cAAgBwtC,EAChBA,GAEXS,kBAAmB,SAAUf,GACzBrtD,KAAK8uD,SAAS,WAAYzB,GAC1BA,EAAGtJ,OAAOgL,gBACV/uD,KAAKgvD,yBAETlB,iBAAkB,SAAUT,GACxBrtD,KAAKiO,OAAOR,MAAM4/C,EAAG4B,SAASruC,KAAKvZ,QAAQ,cAAe,KAC1DrH,KAAK8uD,SAAS,UAAWzB,IAE7BU,kBAAmB,SAAUV,GACzBrtD,KAAK8uD,SAAS,WAAYzB,IAE9BW,gBAAiB,SAAUX,GACvBrtD,KAAK8uD,SAAS,SAAUzB,GACnBA,EAAG6B,MAAM,GAAGC,kBACbnvD,KAAKovD,uBAGblB,eAAgB,SAAUb,GACtBrtD,KAAK8uD,SAAS,QAASzB,IAE3ByB,SAAU,SAAUO,EAAWC,GAArB,GACFrhD,GAASjO,KAAKiO,OACdy/C,EAAgBz/C,EAAOpO,QAAQ,SACK,mBAA7B6tD,GAAc2B,IACrB3B,EAAc2B,GAAWtvD,KAAKkO,EAAQqhD,IAG9CF,oBAAqB,WACjB,GAAIjuB,GAAWnhC,KAAKiO,OAAOwD,IACvB7K,GAAOuH,IAAI+P,GAAGijB,EAAU,QACxBnhC,KAAKuvD,eAAiBvvD,KAAKwvD,WAAaxvD,KAAKiO,OAAOQ,QAAQC,KAAK,UAAU4Y,SAASjS,KAAMipB,SAAU,aAAczrB,OAAO06C,GAEzHvtD,KAAKwvD,WAAapuD,EAAE+/B,GAAUtuB,OAAO06C,GAEzC/tD,EAAMoC,GAAGwiB,SAASpkB,KAAKwvD,YAAY,IAEvCR,sBAAuB,WACnBxvD,EAAMoC,GAAGwiB,SAASpkB,KAAKwvD,YAAY,GACnCpuD,EAAEpB,KAAKuvD,gBAAgBl6C,KAAMipB,SAAU,WAChCt+B,MAAKwvD,iBACLxvD,MAAKuvD,iBAGpB5vD,GAAOiH,GAAU4mD,cAAeA,IAChCjnD,EAAa,SAAU,GAAIjF,IACvBlB,QAASotD,EACT7qD,SAAU,GAAIF,IACVE,SAAUE,EAAYG,uBACtBiT,MAAO,eAGjBxU,OAAOjC,MAAM8lB,SACC,kBAAV/lB,SAAwBA,OAAOyB,IAAMzB,OAAS,SAAU0B,EAAIC,EAAIC,IACrEA,GAAMD,OAEV,SAAU5B,EAAGC,QACVA,OAAO,yBAA0B,kBAAmBD,IACtD,YACG,SAAU8B,GAAV,GACO5B,GAAQiC,OAAOjC,MAAOwO,EAAWxO,EAAMoC,GAAGqM,OAAQ8mC,EAAU/mC,EAAS+mC,QAASD,EAAiB9mC,EAAS8mC,eAAgBjyC,EAAcmL,EAASnL,YAAa0D,EAAe1D,EAAY0D,aAAcjF,EAAO0M,EAAS1M,KAAMmB,EAAeuL,EAASvL,aAAcoV,EAAe7J,EAAS6J,aAAclY,EAASyB,EAAEzB,OAClTijB,EAAoBmyB,EAAQp1C,QAC5BC,KAAM,SAAUC,GACZk1C,EAAQj1C,GAAGF,KAAKG,KAAKC,KAAMH,GAC3BG,KAAKmjB,iBAAkB,GAE3BxH,KAAM,WAAA,GAYE8zC,GAXAxhD,EAASjO,KAAKiO,OACdpO,EAAUG,KAAKH,QACfua,EAAQva,EAAQua,MAChB3I,EAAOxD,EAAOwD,KACdkjC,EAAoB,GAAI98B,GAAauC,EAAO3I,GAC5CmP,EAAO/gB,EAAQ+gB,MAAQ/gB,EAAQ4N,OAAS,EAC5CQ,GAAOsN,YAAYnB,GACnBnM,EAAOgC,UAAU0S,MAAM/B,EAAM/gB,GACzBA,EAAQ6vD,aACR7vD,EAAQ6vD,YAAYzhD,EAAQA,EAAO6J,YAEnC23C,EAAiB,GAAI3a,GAAeH,EAAmB,GAAI98B,GAAa5J,EAAO6J,WAAYrG,IAC/Fg+C,EAAexhD,OAASA,EACxBA,EAAOkC,cAAchQ,KAAKsvD,GAC1BxhD,EAAO0L,WAGXg2C,EAAiBruD,EAAK3B,QACtB4jB,WAAY,SAAU3hB,EAAImhD,GACtB,GAAI90C,GAAS80C,EAAY90C,OAAQpO,EAAUG,KAAKH,QAASqqC,EAAarqC,EAAQ2lB,MAAQ3lB,EAAQ2lB,MAAQvX,EAAOpO,QAAQ+H,UACrH5H,MAAK4vD,WAAa,GAAI5hD,GAASw7B,UAAU5nC,GACrCsoC,WAAYA,EACZ8Y,cAAe,OACfC,eAAgB,QAChB//B,OAAQ,WACJ5hB,EAAKqa,KAAK1N,EAAQ,aAAcjO,KAAKyN,UAEzCwI,MAAOhI,EAAOpO,QAAQ0H,SAASK,WAC/Bs7C,gBAAgB,IAEpBthD,EAAG+M,KAAK,QAASo0C,EAAY9sC,OAC7BjW,KAAK4vD,WAAWnhD,QAAQE,KAAK,QAASo0C,EAAY9sC,QAEtD7V,QAAS,SAAUsjB,GACf,MAAO,IAAId,GAAkBc,IAEjCnV,OAAQ,SAAU3M,GACd,GAAIiuD,GAAYjuD,EAAG+1B,KAAK,mBAAqB/1B,EAAG8M,KAAK,UAAUipB,KAAK,iBACpEk4B,GAAU34C,QACV24C,EAAUpiD,MAAMoiD,EAAUhwD,QAAQoW,SAG1CtW,GAAOqO,GACH4U,kBAAmBA,EACnB+sC,eAAgBA,IAEpBppD,EAAa,aAAc,GAAIopD,IAC3BhtD,SAAU,GAAIF,IACVE,SAAUE,EAAYO,qBACtB6S,MAAO,cACP65C,aAAc,oBAGxBruD,OAAOjC,MAAM8lB,SACC,kBAAV/lB,SAAwBA,OAAOyB,IAAMzB,OAAS,SAAU0B,EAAIC,EAAIC,IACrEA,GAAMD,OAEV,SAAU5B,EAAGC,QACVA,OAAO,yBAA0B,eAAgBD,IACnD,YACG,SAAU8B,EAAGC,GAAb,GACO7B,GAAQiC,OAAOjC,MAAOG,EAASyB,EAAEzB,OAAQsC,EAAQb,EAAEa,MAAO2E,EAASpH,EAAMoC,GAAGqM,OAAQpL,EAAc+D,EAAO/D,YAAakyC,EAAUnuC,EAAOmuC,QAASzzC,EAAOsF,EAAOtF,KAAMiF,EAAe1D,EAAY0D,aAAc9D,EAAemE,EAAOnE,aAAcstD,IAEzOnwC,KAAM,OACNnS,MAAO,SAGPmS,KAAM,MACNnS,MAAO,QAGPmS,KAAM,MACNnS,MAAO,QAGPmS,KAAM,OACNnS,MAAO,SAGPmS,KAAM,aACNnS,MAAO,QAGfuiD,EAAkBjb,EAAQp1C,QAC1BC,KAAM,SAAUC,GACZ,GAAIwe,GAAMre,IACVqe,GAAIxe,QAAUA,EACdk1C,EAAQj1C,GAAGF,KAAKG,KAAKse,EAAKxe,GAC1Bwe,EAAI0a,WAAa,KACjB1a,EAAI4xC,WAAapwD,EAAQowD,YAE7Bt0C,KAAM,WAAA,GACE0C,GAAMre,KACNoa,EAAQpa,KAAKk1C,WAAU,EAC3B72B,GAAI6xC,cACJ7xC,EAAI82B,aAAa/6B,IAErB81C,YAAa,WACTlwD,KAAKmwD,eAAe/6C,SAAS,QAAQg7C,SAAS78C,UAElD48C,aAAc,WAAA,GACN9xC,GAAMre,KACNqwD,EAAkBhyC,EAAIpQ,OAAOpO,QAAQqM,SACrCokD,EAAOlvD,EAAE,UAAUuN,MACnB8zC,OAAQ4N,GAAmBA,EAAgBtrC,UAAY,GACvDwrC,OAAQ,QAOZ,OALAD,GAAKz9C,QACDwL,EAAImyC,aACJnyC,EAAIoyC,kBACJpyC,EAAIqyC,kBAEDJ,GAEXE,WAAY,WACR,GAAIviD,GAASjO,KAAKiO,MAClB,OAAO7M,GAAE,WAAWuN,MAChBlB,MAAOQ,EAAOsJ,eACd/T,KAAM,QACNoK,KAAM,YAGd6iD,gBAAiB,WACb,GAAIpyC,GAAMre,IACV,OAAOoB,GAAE,WAAWuN,MAChBlB,MAAO4Q,EAAI4xC,WACXzsD,KAAM,aACNoK,KAAM,YAGd8iD,cAAe,WAAA,GACPziD,GAASjO,KAAKiO,OACdoiD,EAAkBpiD,EAAOpO,QAAQqM,SACjC4Y,EAAWurC,GAAmBA,EAAgBvrC,UAAY7W,EAAOT,QAAQmB,KAAK,OAAS,QAC3F,OAAOvN,GAAE,WAAWuN,MAChBlB,MAAOqX,EACPthB,KAAM,WACNoK,KAAM,cAId+iD,EAAervD,EAAK3B,QACpBC,KAAM,SAAUC,GACZ,GAAI4G,GAAOzG,IACXsB,GAAKxB,GAAGF,KAAKG,KAAK0G,EAAMjH,EAAMsB,cAAe2F,EAAK5G,QAASA,IAC3D4G,EAAKmH,KAAO,kBAEhB/N,SACI2lB,MAAOuqC,EACP3lD,MAAO,KAEXhK,QAAS,SAAUmkB,GACf,GAAI9W,GAAQ8W,EAAK9W,KACjB,OAAO,IAAI7G,GAAOopD,iBACd51C,MAAOmK,EAAKnK,MACZ61C,WAAYxiD,EAAMwiD,cAG1B1sC,WAAY,SAAU3hB,EAAImhD,GAAd,GAQJ/Y,GAPAvjC,EAAOzG,KACPiO,EAAS80C,EAAY90C,OACrBpO,EAAU4G,EAAK5G,QACf2G,EAAW3G,EAAQ2D,KACnBotD,EAAgB3uD,EAAMwE,EAAKmqD,cAAenqD,GAC1CyjC,EAAarqC,EAAQ2lB,OAASvX,EAAOpO,QAAQ2G,GAC7CqqD,EAAc5iD,EAAOpO,QAAQ0H,SAASf,EAE1C0jC,GAAW4mB,SACPlxC,KAAMixC,EACNpjD,MAAO,KAEXhH,EAAKwH,OAASA,EACdrM,EAAGwI,MAAMvK,EAAQuK,OACjB4/B,EAAYpoC,EAAG4pD,gBACXxI,cAAe,OACfC,eAAgB,QAChB/Y,WAAYA,EACZR,UAAU,EACVxmB,OAAQ0tC,EACRh6C,KAAM,SAAU5F,GACZ,GAAI+yC,GAAS/yC,EAAE+yC,MACfA,GAAOv+B,QAAQ,GAAGrd,MAAMy2C,QAAU,OAClCmF,EAAO1vC,OAAO,SAElB6uC,gBAAgB,EAChBvgD,SAAUnD,EAAMmD,SAAS,yFACzBouD,cAAe,yGAA2GF,EAAc,mBACzIl5B,KAAK,kBACR/1B,EAAG+M,KAAK,QAASo0C,EAAY9sC,OAC7B+zB,EAAUv7B,QAAQE,KAAK,QAASo0C,EAAY9sC,OAC5CrU,EAAGgN,SAAS,eAAeN,QAAQ,aAAamP,YAAY,KAAOjX,GAAUkI,KAAK,KAAK4zC,UAAU3zC,KAAK,eAAgB,OAE1HiiD,cAAe,SAAU5/C,GAAV,GACP+yC,GAAS/yC,EAAE+yC,OACX0H,EAAW1H,EAAO0H,WAClBh+C,EAAQg+C,GAAYA,EAASh+C,KACjCzN,MAAKgxD,MAAMvjD,GACXs2C,EAAOt2C,MAAM,KAEjBujD,MAAO,SAAUvjD,GACTA,GACAnM,EAAKqa,KAAK3b,KAAKiO,OAAQjO,KAAKH,QAAQ2D,MAAQysD,WAAYxiD,KAGhE2G,QAAS,WACLpU,KAAK8rD,UAAY,OAGzBnsD,GAAOiH,GACH+pD,aAAcA,EACdX,gBAAiBA,IAErBzpD,EAAa,WAAY,GAAIoqD,IACzBhuD,SAAU,GAAIF,IACVE,SAAUE,EAAYO,qBACtB6S,MAAO,kBAGjBxU,OAAOjC,MAAM8lB,SACC,kBAAV/lB,SAAwBA,OAAOyB,IAAMzB,OAAS,SAAU0B,EAAIC,EAAIC,IACrEA,GAAMD,OAEV,SAAU5B,EAAGC,QACVA,OAAO,yBAA0B,8BAA+BD,IAClE,YACG,SAAU8B,EAAGC,GAEV,QAASqD,GAAO0iB,EAAM3Z,GAClB,GAAIqJ,GAAoC,OAA5B1V,EAAEgmB,GAAM/R,IAAI,aAAuB47C,EAAkBn6C,EAAQ,QAAU,OAAQowB,EAA6B,MAAlBh5B,EAAI1K,KAAK4jB,GAAgB,SAAW6pC,EAAkB,UAAYA,CACxK,OAAIxjD,KAAUpM,EACH+lB,EAAKjf,MAAM++B,IAAa,GAE3Bz5B,EAAQ,EACR2Z,EAAKjf,MAAM++B,GAAYz5B,EAAQ,MAE/B2Z,EAAKjf,MAAM++B,GAAY,GAClB9f,EAAKjf,MAAM+2B,SACZ9X,EAAKmY,gBAAgB,UAL7B,GAPX,GACO//B,GAAQiC,OAAOjC,MAAOkC,EAAQlC,EAAMkC,MAAO/B,EAASyB,EAAEzB,OAAQiH,EAASpH,EAAMoC,GAAGqM,OAAQC,EAAMtH,EAAOuH,IAAKtL,EAAc+D,EAAO/D,YAAa0D,EAAe1D,EAAY0D,aAAcwuC,EAAUnuC,EAAOmuC,QAASzzC,EAAOsF,EAAOtF,KAAMmB,EAAemE,EAAOnE,aAAc8d,EAAa3Z,EAAO2Z,WAAYsG,EAAgB3Y,EAAI2Y,cAAekhC,EAAoBnhD,EAAOmhD,kBAAmBM,EAAiBzhD,EAAOyhD,eAgBhZ6I,EAAkBxvD,EAAM/B,QACxBC,KAAM,WACFI,KAAKsgB,OAAS,GAAIynC,KAAqBnkD,KAAMsK,EAAI2Y,kBAErDma,MAAO,SAAU3H,GAAV,GAECmoB,GAA+C2P,EAAcztD,EAAG+hB,EAAK87B,EAAY6P,EAAY50B,EAmBjF60B,EACAC,EAsBA/H,EAEKgI,EAQbtc,CAlDR,IAHA5b,EAAQnrB,EAAIszB,SAASnI,EAAOnrB,EAAIquB,iBAAiB,GAC7CilB,EAAcxhD,KAAKsgB,OAAO4gC,aAAa7nB,GAAQ83B,KACnD3P,EAAcxhD,KAAKwxD,cAAchQ,GAC7BA,EAAY3gD,OAAQ,CACpB,IAAK6C,EAAI,EAAG+hB,EAAM+7B,EAAY3gD,OAAQ6C,EAAI+hB,EAAK/hB,IACvCwK,EAAIgQ,GAAGsjC,EAAY99C,GAAI,MAClBtC,EAAEogD,EAAY99C,IAAI0D,QAEZhG,EAAEuC,QAAQ69C,EAAY99C,GAAG4Q,WAAY68C,GAAW,GACvDA,EAAQhxD,KAAKqhD,EAAY99C,IAFzBytD,EAAQhxD,KAAKqhD,EAAY99C,GAAG4Q,YAKhC68C,EAAQhxD,KAAKqhD,EAAY99C,GAGjC,MAAOytD,EAAQtwD,QAEX,GADA0gD,EAAa4P,EAAQ/U,QACjBluC,EAAIgQ,GAAGqjC,EAAY,MAKnB,GAJA6P,EAAa7P,EAAWjtC,WACxBkoB,EAAUp7B,EAAEmgD,GAAY/5B,KAAK,MACzB6pC,EAAc70B,EAAQ9tB,KAAK,SAASkE,OACpC0+C,EAAalwD,EAAEmgD,GAAYlb,SAAS,SAAS,GAC7CirB,GAAc90B,EAAQ,GAClB60B,EAAY,IACZA,EAAYx+C,OAAO0uC,GACnB8P,EAAYx+C,OAAOzR,EAAEkwD,GAAYjrB,YACjCn4B,EAAIqF,OAAO+9C,KAEX90B,EAAQ3pB,OAAOy+C,GACfA,EAAWxiD,aAAayyC,EAAY+P,EAAW/pC,iBAQnD,KALA+pC,EAAa90B,EAAQ6J,SAAS,SAAS,GAClCirB,IACDA,EAAapjD,EAAI4F,OAAOytC,EAAWpoB,cAAejrB,EAAI1K,KAAK4tD,GAAapxD,KAAKyxD,gBAAgBL,IAC7F50B,EAAQ3pB,OAAOy+C,IAEZ/P,GAAcA,EAAWjtC,YAAc88C,GAC1CE,EAAWn4C,YAAYooC,GACvBA,EAAa4P,EAAQ/U,YAM7B,KAFImN,EAAal6C,SAAS3K,EAAO68C,GAAa,IAAM,GACpD78C,EAAO68C,EAAYgI,GACVgI,EAAc,EAAGA,EAAcJ,EAAQtwD,OAAQ0wD,IAChDnwD,EAAEmc,SAASgkC,EAAY4P,EAAQI,KAC/BJ,EAAQ/nB,OAAOmoB,EAAa,OAMxCtc,GAAY,GAAIoT,KAAkBzkD,MAAO,QAAWuE,OAASohD,WAAY,MAC7EtU,EAAUjU,MAAM3H,IAGxBo4B,gBAAiB,SAAUx0B,GAAV,GACTrvB,GAAOqvB,EAAKtmB,aAAa,QACzB+6C,EAAYz0B,EAAK90B,MAAMsiD,aAC3B,OAAO78C,IAASA,KAAMA,IAAWzF,OAASsiD,cAAeiH,KAE7DF,cAAe,SAAUn4B,GACrB,GAAKr5B,KAAK4d,WAEH,CACH,GAAIA,KACJ,OAAOxc,GAAE2V,IAAIsiB,EAAO,SAAUjS,GAC1B,GAAI6e,GAAYr/B,EAAOiX,WAAWmzB,gBAAgB5pB,EAClD,IAAI6e,EAAW,CACX,GAAI7kC,EAAEuC,QAAQsiC,EAAWroB,QAGrB,MAAO,KAFPA,GAAWzd,KAAK8lC,GAKxB,MAAOA,IAAa7e,IAZxB,MAAOiS,IAgBf9lB,OAAQ,SAAU8lB,GACdA,EAAQnrB,EAAIszB,SAASnI,EAAOnrB,EAAIquB,iBAAiB,EACjD,IAAmDo1B,GAAYjuD,EAAG+hB,EAAKwX,EAAM20B,EAAYC,EAAUtQ,EAAYgI,EAA3G/H,EAAcxhD,KAAKsgB,OAAO4gC,aAAa7nB,EAE3C,KADAmoB,EAAcxhD,KAAKwxD,cAAchQ,GAC5B99C,EAAI,EAAG+hB,EAAM+7B,EAAY3gD,OAAQ6C,EAAI+hB,EAAK/hB,IAAK,CAEhD,GADA69C,EAAangD,EAAEogD,EAAY99C,IACvB69C,EAAWrjC,GAAG,MAAO,CAGrB,GAFA+e,EAAOskB,EAAWj6B,SAClBsqC,EAAa30B,EAAK3V,SACdsqC,EAAW1zC,GAAG,cAAgBxZ,EAAOu4B,EAAK,IAAK,CAC/C,GAAI00B,GAAcvwD,EAAEmc,SAASo0C,EAAYC,EAAW,IAChD,QAEJC,GAAWtQ,EAAWuQ,QAAQ,MAC1BD,EAAShxD,QACTO,EAAE67B,EAAK,GAAGtE,WAAU,IAAQvjB,SAASmsC,GAAY1uC,OAAOg/C,GAExDD,EAAW1zC,GAAG,MACdqjC,EAAWhvC,YAAYq/C,GAEvBrQ,EAAWnsC,SAASw8C,GAEnB30B,EAAKoJ,SAAS,MAAMxlC,QACrBo8B,EAAK1pB,QAET,UAEA,GAAIo+C,GAAc10B,EAAK,GACnB,QAEJ00B,GAAa10B,EAAK,OAGtB00B,GAAanQ,EAAY99C,EAE7B6lD,GAAal6C,SAAS3K,EAAOitD,GAAa,IAAM,GAChDjtD,EAAOitD,EAAYpI,OAI3BwI,EAAgBhd,EAAQp1C,QACxBC,KAAM,SAAUC,GACZ,GAAIkO,GAAO/N,IACXH,GAAQo1C,WACJM,OAAQn0C,EAAEa,MAAM,SAAUmY,GACtB,GAAI43C,GAAkB,GAAId,EAC1Bc,GAAgBp0C,WAAa5d,KAAKiO,QAAUjO,KAAKiO,OAAOpO,QAAQ+d,WAChEo0C,EAAgBhxB,MAAMzgB,EAAW8Y,MAAMjf,KACxCrM,IAEPgnC,EAAQj1C,GAAGF,KAAKG,KAAKC,KAAMH,MAG/BoyD,EAAiBld,EAAQp1C,QACzBC,KAAM,SAAUC,GACZ,GAAIkO,GAAO/N,IACXH,GAAQo1C,WACJM,OAAQn0C,EAAEa,MAAM,SAAUmY,GACtB,GAAI43C,GAAkB,GAAId,EAC1Bc,GAAgBp0C,WAAa5d,KAAKiO,QAAUjO,KAAKiO,OAAOpO,QAAQ+d,WAChEo0C,EAAgBz+C,OAAOgN,EAAW8Y,MAAMjf,KACzCrM,IAEPgnC,EAAQj1C,GAAGF,KAAKG,KAAKC,KAAMH,MAG/BqyD,EAAc5wD,EAAK3B,QACnBC,KAAM,SAAUC,GACZyB,EAAKxB,GAAGF,KAAKG,KAAKC,KAAMH,GACxBG,KAAKsgB,OAAS,GAAIynC,KAAqBnkD,KAAMijB,MAEjDtD,WAAY,SAAU3hB,EAAI/B,GACtByB,EAAKxB,GAAGyjB,WAAWxjB,KAAKC,KAAM4B,EAAI/B,GAClCuB,EAAEzB,OAAOK,KAAKH,SAAW+d,WAAY/d,EAAQoO,QAAUpO,EAAQoO,OAAOpO,QAAQ+d,aAC9Ehc,EAAGgN,SAAS,qBAEhBL,OAAQ,SAAU3M,EAAIy3B,GAClB,GAAqD84B,GAAeC,EAAkB1uD,EAAG+hB,EAAKwiC,EAAUjX,EAApGqhB,EAAgBryD,KAAKsgB,OAAO4gC,aAAa7nB,EAC7C,KAAK31B,EAAI,EAAG+hB,EAAM4sC,EAAcxxD,OAAQ6C,EAAI+hB,EAAK/hB,IAgB7C,GAfAukD,EAAWoK,EAAc3uD,GACrB1D,KAAKH,QAAQ+d,aACbozB,EAAkBpqC,EAAOiX,WAAWmzB,gBAAgBiX,GAChDjX,IACAiX,EAAWjX,IAGnBmhB,EAAgBztD,EAAOujD,GAClBkK,IACDC,EAAmBhxD,EAAE6mD,GAAUnqC,QAAQ,SAASjd,OAChDsxD,EAAgBjkD,EAAIgQ,GAAG+pC,EAAU,QAAUmK,EAAmB,GAAK1tD,EAAOujD,EAAS3zC,cAAgBpG,EAAI2wB,OAAOopB,GAC1G,KACA,QACEmK,EAAmB,GAEzBD,EAEA,MADAvwD,GAAG6b,YAAY,oBACf,CAGR7b,GAAGgN,SAAS,oBAAoB6O,YAAY,mBAGpD9d,GAAOiH,GACHsqD,gBAAiBA,EACjBa,cAAeA,EACfE,eAAgBA,EAChBC,YAAaA,IAEjB3rD,EAAa,SAAU,GAAIjF,IACvBlB,QAAS2xD,EACTpvD,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBkT,MAAO,cAGf1P,EAAa,UAAW,GAAI2rD,IACxB9xD,QAAS6xD,EACTtvD,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBkT,MAAO,gBAGjBxU,OAAOjC,MAAM8lB,SACC,kBAAV/lB,SAAwBA,OAAOyB,IAAMzB,OAAS,SAAU0B,EAAIC,EAAIC,IACrEA,GAAMD,OAEV,SAAU5B,EAAGC,QACVA,OAAO,4BAA6B,8BAA+BD,IACrE,YACG,SAAU8B,GAAV,GACO5B,GAAQiC,OAAOjC,MAAOG,EAASyB,EAAEzB,OAAQqO,EAAWxO,EAAMoC,GAAGqM,OAAQC,EAAMF,EAASG,IAAK4mC,EAAU/mC,EAAS+mC,QAASzzC,EAAO0M,EAAS1M,KAAM+mD,EAAiBr6C,EAASq6C,eAAgBlhC,EAAYjZ,EAAIiZ,UAAW5G,EAAavS,EAASuS,WAAYha,EAAeyH,EAASnL,YAAY0D,aACtR+rD,EAAmBvd,EAAQp1C,QAC3BC,KAAM,SAAUC,GACZG,KAAKH,QAAUA,EACfk1C,EAAQj1C,GAAGF,KAAKG,KAAKC,KAAMH,IAE/B0yD,cAAe,SAAU78C,EAAK0E,GAC1B,GAAmCE,GAA/BmjB,EAASvvB,EAAI4F,OAAO4B,EAAK,IAS7B,OARA+nB,GAAOnC,UAAY,WACnBlhB,EAAMszB,WAAWjQ,GACZA,EAAOnpB,aACRgG,EAAYF,EAAM6G,wBAClB3G,EAAU1J,UAAY,GACtB0J,EAAUnB,YAAYskB,IAE1BtW,EAAUsW,EAAOnpB,YACVmpB,GAEX+0B,WAAY,SAAUp4C,EAAO4tC,GAAjB,GAKAyK,GAaIrM,CAjBZ,IAAIl4C,EAAI4uB,QAAQkrB,GACZ5tC,EAAMsyB,eAAesb,OAClB,CAGH,GAFA5tC,EAAM0yB,mBAAmBkb,GACrByK,EAAYlyC,EAAWF,UAAUjG,GAAO,IACvCq4C,EAAW,CACZ,KAAOzK,EAAUzvB,WAAW13B,SAAWqN,EAAIgQ,GAAG8pC,EAAUzgC,WAAY,OAChEygC,EAAYA,EAAUzgC,UAE1BkrC,GAAYzK,EAEZ95C,EAAI4uB,QAAQ21B,GACZr4C,EAAMsyB,eAAe+lB,IAEjBvkD,EAAI4tB,UAAU22B,KACdA,EAAU7hD,UAAY,UAEtBw1C,EAAYqM,EAAUlrC,YAAckrC,EACpCvkD,EAAIwpB,WAAW0uB,GACfhsC,EAAMiB,SAAS+qC,EAAW,GAE1BhsC,EAAMsyB,eAAe0Z,MAKrCsM,WAAY,SAAUt4C,GAClB,GAAIkf,GAAS,sBAAsB7gB,MAAM,KAAMk6C,EAAezkD,EAAIgrB,aAAa9e,EAAMqG,eAAgB6Y,GAASs5B,EAAa1kD,EAAIgrB,aAAa9e,EAAM8H,aAAcoX,EAChK,OAAOq5B,KAAiBC,IAAeD,GAAgBC,GAE3DC,YAAa,SAAUzrC,GACnB,KAAOA,IAASlZ,EAAIkuB,SAAShV,IAA0C,KAAjClZ,EAAIgtB,SAAS9T,EAAKhM,aACpDgM,EAAOA,EAAKK,WAEhB,QAAQL,GAEZzL,KAAM,WAAA,GACsE2L,GAAQwgB,EAAUrtB,EAA4Dq4C,EAAWr1B,EAAQssB,EAAIgJ,EAASC,EAAWC,EAAKP,EAkB1L5wB,EAIAxtB,EACA4+C,EACA3rC,EAxBRnN,EAAQpa,KAAK8X,WAAYpC,EAAM6K,EAAWgsB,kBAAkBnyB,GAAgC+4C,EAAwBnlD,EAASzM,mBACjIvB,MAAK2yC,mBAAmBv4B,GACxBs4C,EAAa1yD,KAAK0yD,WAAWt4C,GAC7BA,EAAM2yB,iBACNtP,EAASz9B,KAAKuyD,cAAc78C,EAAK0E,GACjClM,EAAIitB,aAAasC,EAAOhG,iBACxBvpB,EAAIitB,aAAasC,EAAOhW,aACxBsiC,EAAK77C,EAAIkzB,sBAAsB3D,GAAS,OACxCs1B,EAAU7kD,EAAIkzB,sBAAsB3D,EAAQ,oBAAoBhlB,MAAM,MACtEu6C,EAAY9kD,EAAIgQ,GAAGuf,EAAOnpB,WAAY,UAAYmpB,EAAOnpB,WACrDy1C,EACI77C,EAAI4tB,UAAUiuB,KACd+I,EAAY5kD,EAAI4F,OAAO4B,EAAK,KACxBxH,EAAIuM,KAAKsvC,KACTkJ,EAAM74C,EAAM4yB,aACZimB,EAAIl2C,WAAWgtC,GACfxpC,EAAW9H,MAAMw6C,EAAKlJ,EAAGz1C,aAEzBwtB,EAAK1gC,EAAE,KAAM2oD,GACA,GAAbjoB,EAAGjhC,QACHihC,EAAGvuB,SAEHe,EAAay1C,EAAGz1C,WAChB4+C,EAAuBnJ,EAAGz1C,WAAW+xB,SAASxlC,OAC9C0mB,EAAa2rC,EAAuB,GAA6B,GAAxBnJ,EAAGxxB,WAAW13B,QAAekpD,EAAG1jB,SAAS,GACtFn4B,EAAIqE,YAAYugD,EAAWx+C,GAC3BpG,EAAIqF,OAA+B,GAAxB2/C,EAA4BnJ,EAAGz1C,WAAay1C,GACnDxiC,GAAcA,IAAekW,GAC7Bq1B,EAAU35C,YAAYoO,GACtBurC,EAAU35C,YAAYskB,IAEtBq1B,EAAUliD,UAAYuiD,EAE1B14C,EAAOq4C,GAEJC,GAAW/yD,KAAK6yD,YAAYp1B,IACnCq1B,EAAY9yD,KAAKozD,sBAAsBL,GACvC7kD,EAAIqF,OAAOkqB,GACXhjB,EAAOq4C,GACAE,IACPF,EAAY9yD,KAAKozD,sBAAsBJ,GACvC9kD,EAAIqF,OAAOkqB,GACXhjB,EAAOq4C,GAENr4C,IACKsvC,GAAMgJ,GACR,GAAI1K,KAAkBzkD,MAAO,QAASo9B,OAAOvD,IAEjDrjB,EAAM2C,WAAW0gB,GACjBnW,EAASpZ,EAAIgrB,aAAauE,GAASssB,EAAK,KAAOgJ,EAAU7kD,EAAI1K,KAAKuvD,GAAW,MAC7ExyC,EAAW9H,MAAM2B,EAAOkN,EAAQorC,GAChC5qB,EAAWxgB,EAAOmQ,gBACdvpB,EAAIgQ,GAAG4pB,EAAU,OAASA,EAASvgB,aAAerZ,EAAIgQ,GAAG4pB,EAASvgB,WAAY,QAC9EugB,EAAWA,EAASvgB,YAExB9M,EAAO6M,EAAOG,YACdznB,KAAKmsD,MAAMrkB,GAAYx6B,OAAO,IAC9BtN,KAAKmsD,MAAM1xC,GAAQnN,OAAO,IACtBY,EAAIgQ,GAAGzD,EAAM,OAASA,EAAK8M,aAAerZ,EAAIgQ,GAAGzD,EAAK8M,WAAY,QAClE9M,EAAOA,EAAK8M,YAEhBrZ,EAAIqF,OAAO+T,GACXH,EAAU2gB,IAEd3gB,EAAU1M,GACVza,KAAKwyD,WAAWp4C,EAAOK,GACvBL,EAAMkB,UAAS,GACfpN,EAAImvB,SAAS5iB,GAAM,GACnB8F,EAAWhF,YAAYnB,IAE3Bg5C,sBAAuB,SAAUhsC,GAAV,GACfhN,GAAQpa,KAAK8X,WACbpC,EAAM6K,EAAWgsB,kBAAkBnyB,GACnC7Y,EAAsByM,EAASzM,oBAC/BuxD,EAAY5kD,EAAI4F,OAAO4B,EAAK,IAGhC,OAFAxH,GAAIqE,YAAYugD,EAAW1rC,GAC3B0rC,EAAUliD,UAAYrP,EACfuxD,GAEX3G,MAAO,SAAU/kC,EAAMvnB,GAAhB,GASKgyD,GARJptC,EAAO2C,CAOX,IANIA,EAAKG,YAAcrZ,EAAIgQ,GAAGkJ,EAAKG,WAAY,OAC3CrZ,EAAIqF,OAAO6T,EAAKG,YAEhBrZ,EAAIwpB,WAAWtQ,KAAUA,EAAKhM,YAC9BgM,EAAOA,EAAK9S,YAEZ8S,EAAM,CAEN,IADIyqC,GAAW,EACRzqC,EAAKG,YAA0C,GAA5BH,EAAKG,WAAWpM,UACtC02C,EAAWA,GAAY3jD,EAAIwtB,iBAAiBtU,EAAKmR,YAAY13B,OAAS,EACtEumB,EAAOA,EAAKG,UAMhB,IAJKrZ,EAAI4uB,QAAQ1V,IAA2B,QAAlBA,EAAKkU,YAAuB,QAAQ5f,KAAK0L,EAAKxW,YAAeihD,IACnFzwD,EAAEqjB,GAAM/V,KAAK,SAAS6E,SACtB6T,EAAKxW,UAAY5C,EAASzM,qBAE1B1B,GAAWA,EAAQyN,MACnB,KAAO8Z,GAAQ3C,GAAM,CACjB,GAAIvW,EAAIgQ,GAAGkJ,EAAM,MAAQlZ,EAAI4tB,UAAU1U,GAAO,CAC1ClZ,EAAImxB,OAAOjY,EACX,OAEJA,EAAOA,EAAK9S,gBAM5B++C,EAAiBte,EAAQp1C,QACzBC,KAAM,SAAUC,GACZG,KAAKH,QAAUA,EACfk1C,EAAQj1C,GAAGF,KAAKG,KAAKC,KAAMH,IAE/B8b,KAAM,WAAA,GAGEmmB,GACA1a,EACAksC,EACAtxD,EACAuxD,EACAP,EACAQ,EARAp5C,EAAQpa,KAAK8X,UACjB9X,MAAK2yC,mBAAmBv4B,GACpB0nB,EAAK5zB,EAAI4F,OAAOyM,EAAWgsB,kBAAkBnyB,GAAQ,MACrDgN,EAAOhN,EAAMqG,eAEbze,EAAUxC,EAAMsC,QAAQE,QACxBuxD,EAAQvxD,EAAQie,MAAQje,EAAQqlB,QAAU,GAC1C2rC,EAAY9kD,EAAIgQ,GAAGkJ,EAAM,UAAYA,EAEzChN,EAAM2yB,iBACFimB,EACA9kD,EAAIqE,YAAYuvB,EAAIkxB,IAEpBQ,EAAYpyD,EAAEgmB,GAAM9Y,QAAQ,SAC5B8L,EAAMszB,WAAW5L,GACb0xB,EAAU3yD,QACVqN,EAAImxB,OAAOm0B,EAAU,KAG7BrsC,EAAU2a,EAAGxtB,YACRi/C,GAAWzxB,EAAGra,cAAevZ,EAAI8tB,aAAa8F,EAAGra,eAC5Cqa,EAAGra,aAAevZ,EAAI8tB,aAAa8F,EAAGra,cACxCrmB,EAAE0gC,EAAGra,aAAalU,SAEtB+/C,EAASxxB,EAAGnJ,WAAU,GACtB26B,EAAOh4B,UAAY,OACnBptB,EAAIqE,YAAY+gD,EAAQxxB,IAE5B1nB,EAAMuyB,cAAc7K,GACpB1nB,EAAMkB,UAAS,GACfpN,EAAImvB,SAASyE,EAAGra,aAAeqa,GAAI,GACnCvhB,EAAWhF,YAAYnB,KAG/Bza,GAAOqO,GACHskD,iBAAkBA,EAClBe,eAAgBA,IAEpB9sD,EAAa,kBAAmB,GAAIjF,IAChC8hB,IAAK,GACLg5B,OAAO,EACPh8C,QAASizD,KAEb9sD,EAAa,kBAAmB,GAAIjF,IAChC8hB,IAAK,GACLhjB,QAASkyD,MAEf7wD,OAAOjC,MAAM8lB,SACC,kBAAV/lB,SAAwBA,OAAOyB,IAAMzB,OAAS,SAAU0B,EAAIC,EAAIC,IACrEA,GAAMD,OAEV,SAAU5B,EAAGC,QACVA,OAAO,uBACH,oBACA,uBACDD,IACL,YACG,SAAU8B,EAAGC,GAAb,GACO7B,GAAQiC,OAAOjC,MAAOG,EAASyB,EAAEzB,OAAQiH,EAASpH,EAAMoC,GAAGqM,OAAQpL,EAAc+D,EAAO/D,YAAaqL,EAAMtH,EAAOuH,IAAK5H,EAAe1D,EAAY0D,aAAc9D,EAAemE,EAAOnE,aAAc8d,EAAa3Z,EAAO2Z,WAAYw0B,EAAUnuC,EAAOmuC,QAAS8P,EAAgBj+C,EAAOi+C,cAAexkC,EAAYE,EAAWF,UAAWne,EAAO1C,EAAM0C,KAAMuxD,EAAiB,qBAAsBC,EAAkB,sBAAuBC,EAAmB,uBAC5bC,EAAc7e,EAAQp1C,QACtBC,KAAM,SAAUC,GACZ,GAAIkO,GAAO/N,IACX+0C,GAAQj1C,GAAGF,KAAKG,KAAKgO,EAAMlO,GAC3BkO,EAAKknC,UAAY,GAAI4P,GACrB92C,EAAKkV,OAAQ,EACblV,EAAKgrB,eAETh0B,WAAY,SAAU8uD,EAAMz5C,GAAhB,GACJ2e,GAAa/4B,KAAK+4B,WAClBrjB,EAAM6K,EAAWgsB,kBAAkBnyB,EACvC,IAAI2e,EAAW/hB,MAA2B,WAAnB+hB,EAAW/hB,KAAmB,CACjD,IAAK68C,EAYD,MAXAA,GAAO3lD,EAAI4F,OAAO4B,EAAK,KAAOsB,KAAM+hB,EAAW/hB,OAC/C68C,EAAKjjD,UAAYmoB,EAAWnoB,UAC5BijD,EAAK59C,MAAQ8iB,EAAW9iB,MACxBmE,EAAM2yB,iBACN3yB,EAAMszB,WAAWmmB,GACZA,EAAKpsC,aACNvZ,EAAIqE,YAAYmD,EAAIw6B,eAAe,UAAW2jB,GAElDz5C,EAAMuyB,cAAcknB,GACpBz5C,EAAMyyB,YAAYgnB,GAClBtzC,EAAWhF,YAAYnB,IAChB,CAEPlM,GAAIS,KAAKklD,EAAM96B,GAGvB,OAAO,GAEXosB,gBAAiB,SAAUyH,GACvB,MAAOptD,GAAMmD,SAAS,69BAClB4E,SAAUvH,KAAKiO,OAAOpO,QAAQ0H,SAC9BqlD,YAAaA,KAGrBjsD,KAAM,WACF,GAAIoN,GAAO/N,KAAMoa,EAAQrM,EAAKmnC,WAC9Bl1C,MAAKi1C,UAAUjU,MAAM5mB,EAAOpa,KAAK+4B,YACjChrB,EAAKonC,aAAa/6B,IAEtBuB,KAAM,WAOF,QAASqlB,GAAMhwB,GACX,GAAIxD,GAAU8yC,EAAO9yC,QAASwJ,EAAOxJ,EAAQkB,KAAK+kD,GAAgBp8C,MAAMhQ,QAAQ,KAAM,OAAQuJ,EAAYpD,EAAQkB,KAAKglD,GAAiBr8C,MAAOpB,EAAQzI,EAAQkB,KAAKilD,GAAkBt8C,KACtLtJ,GAAKgrB,YACD/hB,KAAMA,EACNpG,UAAyB,KAAdA,EAAmBA,EAAYoG,EAC1Cf,MAAOA,GAEX42C,EAAU9+C,EAAKhJ,WAAW8uD,EAAMz5C,GAChClD,EAAMlG,GACFjD,EAAKmV,QACLnV,EAAKmV,SAGb,QAAShM,GAAMlG,GACXA,EAAEgK,iBACFslC,EAAOlsC,UACPlG,EAAIqrB,mBAAmBhZ,EAAWgsB,kBAAkBnyB,IAAQT,QACvDkzC,GACD9+C,EAAKonC,aAAa/6B,GAG1B,QAAS0yC,GAAQ97C,GACTA,EAAE2J,SAAWzY,EAAKi8C,MAClBnd,EAAMhwB,GACCA,EAAE2J,SAAWzY,EAAKg8C,KACzBhnC,EAAMlG,GAhCZ,GAC+JsvC,GAuC7J9yC,EAWIu/C,EAlDJh/C,EAAO/N,KAAMoa,EAAQrM,EAAKmnC,YAAa7b,EAAQhZ,EAAUjG,GAAQyyC,GAAU,EAAOgH,EAAOx6B,EAAMx4B,OAASb,KAAKi1C,UAAU30B,OAAO4gC,aAAa7nB,EAAM,IAAM,KAAc2zB,EAAOxtD,EAAMsC,QAAQE,QAAQie,KAAMpgB,EAAUkO,EAAKE,OAAOpO,QAAS0H,EAAW1H,EAAQ0H,SAAUoY,EAAc9f,EAAQ8f,YAAaitC,KAAiBptD,EAAMoC,GAAGkyD,aAAen0C,GAAeA,EAAYutC,WAAavtC,EAAYutC,UAAUC,OAAS9rD,GAAYke,GAC/ZtJ,MAAO1O,EAASxC,WAChBy0C,SAAS,EACTpnC,UAAWw6C,EAEnB5sD,MAAK2yC,mBAAmBv4B,GA6BxBmF,EAAcrI,MAAQA,EAClB01C,IACArtC,EAAcnV,MAAQ,KAE1Bk2C,EAAStgD,KAAKq1C,aAAatnC,EAAKo3C,gBAAgByH,GAAcrtC,GAAe3N,YAAY,uBAAwBg7C,GAAal+C,KAAK,oBAAoBgK,GAAG,QAASsoB,GAAOmH,MAAMz5B,KAAK,mBAAmBgK,GAAG,QAASxB,GAAOixB,MAAMz5B,KAAK,uBAAuBgK,GAAG,UAAWo0C,GAAS3kB,MAAMz5B,KAAK+kD,GAAgBp8C,IAAIw8C,EAAOA,EAAKl9C,aAAa,OAAQ,GAAK,WAAWwxB,MAAMz5B,KAAKglD,GAAiBr8C,IAAIw8C,EAAOA,EAAK7zB,UAAY,IAAImI,MAAMz5B,KAAKilD,GAAkBt8C,IAAIw8C,EAAOA,EAAK59C,MAAQ,IAAIkyB,MAAMxQ,KAAK,eAChenqB,EAAU8yC,EAAO9yC,QACjBo/C,IACA7+C,EAAKgmD,aAAe,GAAIv0D,GAAMoC,GAAGkyD,YAAYtmD,EAAQkB,KAAK,kBAAmB/O,KAAWggB,IACxF5R,EAAKgmD,aAAa9/C,KAAK,SAAU,SAAUo5C,GACP,MAA5BA,EAAGC,SAAShwC,IAAI,SAChB9P,EAAQkB,KAAK+kD,GAAgBp8C,IAAIrX,KAAKyN,WAG9CM,EAAKgmD,aAAa9/C,KAAK,QAAS+sB,IAEhCgsB,IACID,EAAev/C,EAAQc,QAAQ,aAAajE,SAChDmD,EAAQ6H,IAAI,aAAc03C,IAE9BzM,EAAOC,SAAS3pC,OAChBpJ,EAAQkB,KAAK+kD,GAAgB/yD,QAAQ,SAASqpC,WAGtDvqC,GAAMoC,GAAGqM,OAAO2lD,YAAcA,EAC9BrtD,EAAa,aAAc,GAAIK,GAAOtF,MAClClB,QAASwzD,EACTjxD,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBkT,MAAO,oBAGjBxU,OAAOjC,MAAM8lB,SACC,kBAAV/lB,SAAwBA,OAAOyB,IAAMzB,OAAS,SAAU0B,EAAIC,EAAIC,IACrEA,GAAMD,OAEV,SAAU5B,EAAGC,QACVA,OAAO,yBACH,6BACA,yBACDD,IACL,YACG,SAAU8B,EAAGC,GAAb,GACO7B,GAAQiC,OAAOjC,MAAOG,EAASyB,EAAEzB,OAAQsC,EAAQb,EAAEa,MAAO2E,EAASpH,EAAMoC,GAAGqM,OAAQC,EAAMtH,EAAOuH,IAAKtL,EAAc+D,EAAO/D,YAAa0d,EAAa3Z,EAAO2Z,WAAYw0B,EAAUnuC,EAAOmuC,QAAS18B,EAAK,cAAe27C,EAAc,iBAAkBC,EAAgB,mBAAoBC,EAAQ,QAASC,EAAM,MAAOC,EAAM,MAAOC,EAAW,WAAYC,EAAW,WAAYC,EAAU,UAAWC,EAAU,UAAWC,EAAQ,QAASC,EAAQ,QAASC,EAAQ,QAASC,EAAK,KAAMzvB,EAAK,KAAM0vB,EAAK,KAAMvzD,EAAOsF,EAAOtF,KAAMmB,EAAemE,EAAOnE,aAAcmgB,EAAoBhc,EAAOgc,kBAAmBmlC,EAAoBnhD,EAAOmhD,kBAAmBqB,EAAkBxiD,EAAOwiD,gBAAiB5I,EAAgB55C,EAAO45C,cAAej6C,EAAeK,EAAO/D,YAAY0D,aAAcO,EAAiBF,EAAO/D,YAAYiE,eAAgBE,EAAUxH,EAAMoC,GAAGgF,OAAO9G,GAAGD,QAAQmH,QAAS8tD,EAAat1D,EAAMs1D,WAC13BnyD,EAAWnD,EAAMmD,SACjBoyD,EAAiB,+CACjBC,EAAoB,GAAIjN,KAAqBnkD,MAAO6wD,MACpDQ,EAAeryC,EAAkBjjB,QACjCC,KAAM,SAAUC,GACZ,GAAIue,GAAIhd,EAAEzB,QACN+vD,YAAa1vD,KAAK0vD,YAClBwF,cAAc,GACfr1D,MACH+iB,GAAkB9iB,GAAGF,KAAKG,KAAKC,KAAMoe,IAEzC+2C,WAAY,SAAUnpD,EAAMD,GAAhB,GAGJqpD,GAIAC,CACJ,OAPArpD,GAAOA,GAAQ,EACfD,EAAUA,GAAW,EACjBqpD,EAAazyD,EAASoyD,IACtB3qD,MAAO,IAAM2B,EACb7E,QAASN,EAAOpF,wBAEhB6zD,EAAY,IAAMrpD,EACf,oCAA4CspD,MAAMtpD,EAAO,GAAGiL,KAAK,qBAAwBo+C,EAAY,OAAcC,MAAMvpD,EAAU,GAAGkL,KAAKm+C,GAAc,SAAW,YAE/K1F,YAAa,SAAUzhD,EAAQmM,GAC3B,GAAIm7C,GAAgBn0D,EAAE,mBAAoB6M,EAAOnB,UAAUs1B,WAAW,YACtEhoB,GAAMiB,SAASk6C,EAAc7mD,KAAKy2B,GAAI,GAAI,GAC1C/qB,EAAMkB,UAAS,GACfrN,EAAOsN,YAAYnB,IAEvBuB,KAAM,WACF,GAAI9b,GAAUG,KAAKH,OACnBA,GAAQ+gB,KAAO5gB,KAAKm1D,WAAWt1D,EAAQmM,KAAMnM,EAAQkM,SACrD6W,EAAkB9iB,GAAG6b,KAAK5b,KAAKC,SAGnCw1D,EAAYl0D,EAAK3B,QACjB4jB,WAAY,SAAU3hB,EAAI/B,GAAd,GAEJgP,GAQAZ,EAEAnI,EASA2vD,CApBJn0D,GAAKxB,GAAGyjB,WAAWxjB,KAAKC,KAAM4B,EAAI/B,GAC9BgP,EAAQzN,EAAEpB,KAAKH,QAAQk6C,eAAe3kC,SAAS,QAAQ4kC,YACvDC,OAAQr4C,EACRs4C,kBAAkB,EAClBtjC,KAAM3U,EAAMjC,KAAK01D,MAAO11D,MACxBm6C,SAAUl4C,EAAMjC,KAAK21D,UAAW31D,MAChCkX,MAAOjV,EAAMjC,KAAKslD,OAAQtlD,QAC3B23B,KAAK,cACR/1B,EAAG8W,GAAG,QAASzW,EAAMjC,KAAK41D,QAAS51D,OAAO0Y,GAAG,UAAWzW,EAAMjC,KAAKwlD,SAAUxlD,OACzEiO,EAASjO,KAAKu6C,QAAU16C,EAAQoO,OACpCjO,KAAKgkD,OAASn1C,EACV/I,EAAc,GAAIc,GAAOivD;AACzBlzD,SAAU,GAAIF,IACVE,SAAUE,EAAYI,0BACtBgT,MAAOhI,EAAOpO,QAAQ0H,SAASzB,cAEnC1F,QAASwG,EAAOkvD,mBAChBC,gBAAgB,IAEpBxvD,EAAa,oBAAqBT,GAC9B2vD,EAASr0D,EAAE,QAAU0E,EAAYjG,QAAQ8C,SAASD,UAAY,UAClE+yD,EAAOrgD,SAASvG,EAAMrB,SAClBS,EAAOc,SACPd,EAAOc,QAAQuuC,kBAAkBmY,IAGzC5mD,MAAO,WACH,MAAO7O,MAAKgkD,QAEhB2R,UAAWv0D,EAAEuiB,KACb+xC,MAAO,WACH11D,KAAKgkD,OAAOnkD,QAAQo6C,OAAOrrC,SAASolD,IAExC1O,OAAQ,WACJtlD,KAAKgkD,OAAOnkD,QAAQo6C,OAAOx8B,YAAYu2C,IAE3CxO,SAAU,SAAUx0C,GAAV,GACF9O,GAAO1C,EAAM0C,KACbkhB,EAAMpS,EAAE2J,OACRyI,IAAOlhB,EAAKqa,MAAQvL,EAAE0L,OACtB1c,KAAKgkD,OAAOptC,OACLwM,GAAOlhB,EAAKg8C,KACnBl+C,KAAKgkD,OAAO9sC,SAGpB0+C,QAAS,SAAU5kD,GACf,GAAIstC,GAASl9C,EAAE4P,EAAE+I,QAAQzL,QAAQ,UAC5BgwC,GAAOrW,SAAS,qBACjBjoC,KAAK6O,QAAQ0mC,UAGrBhnC,OAAQ,SAAU3M,GACd,GAAIiN,GAAQ7O,KAAK6O,OACbA,GAAMJ,SAA2C,SAAhCI,EAAMJ,QAAQ4G,IAAI,YACnCxG,EAAMqI,QAEVtV,EAAG6b,YAAY,kBAEnBrJ,QAAS,WACLpU,KAAKgkD,OAAO5vC,aAGhB4hD,EAAkBR,EAAU71D,QAC5BC,KAAM,SAAUC,GACZG,KAAKi2D,KAAO,EACZj2D,KAAKgM,KAAO,EACZwpD,EAAU11D,GAAGF,KAAKG,KAAKC,KAAMoB,EAAEzB,OAAOE,GAClCO,QAAS60D,EACTlb,cAAe,gCAA6Cub,MAAMt1D,KAAKi2D,KAAOj2D,KAAKgM,KAAO,GAAGiL,KAAK,oDAAwD,+CAGlK0+C,UAAW,WAOP,QAASO,GAAkBllD,GACvB,GAAIgE,GAAI5T,EAAEK,OACV,QACImiC,IAAKvwB,KAAK8iD,OAAOnlD,EAAEolD,QAAUphD,EAAEmM,YAAc1O,EAAMmrB,KAAOy4B,GAAc,EACxExyB,IAAKxwB,KAAK8iD,OAAOnlD,EAAEslD,QAAUthD,EAAEuhD,aAAe9jD,EAAM4H,MAAQm8C,GAAa,GAVjF,GAA6PA,GAAWH,EAApQtoD,EAAO/N,KAAMwN,EAAUO,EAAKi2C,OAAOx2C,QAAS80B,EAAQ90B,EAAQkB,KAAK,cAAe+nD,EAAYn0B,EAAMsd,GAAG,GAAI8W,EAAWp0B,EAAMsd,GAAGtd,EAAMzhC,OAAS,GAAI4R,EAAQjT,EAAMm3D,UAAUF,GAAYtuB,EAAM3oC,EAAMm3D,UAAUD,GAAWT,EAAOloD,EAAKkoD,KAAMjqD,EAAO+B,EAAK/B,IACvPwB,GAAQkB,KAAK,KAAK4zC,UAAU3zC,KAAK,eAAgB,MACjDw5B,EAAI9tB,MAAQq8C,EAAS,GAAGE,YACxBzuB,EAAIvK,KAAO84B,EAAS,GAAG74B,aACvB24B,GAAaruB,EAAI9tB,KAAO5H,EAAM4H,MAAQ47C,EACtCI,GAAcluB,EAAIvK,IAAMnrB,EAAMmrB,KAAO5xB,EAQrCwB,EAAQqpD,YAAYx+C,GAAIK,GAAG,YAAa,aAAc,SAAU1H,GAC5DjD,EAAK+oD,cAAcZ,EAAkBllD,MACtC0H,GAAG,aAAc,aAAc,WAC9B3K,EAAK+oD,kBACNp+C,GAAG,OAAQ,aAAc,SAAU1H,GAClCA,EAAEgK,gBACF,IAAIxB,GAAQs7C,EAAW9jD,GAAG,EAC1BjD,GAAKijD,MAAMkF,EAAkB18C,EAAMpD,cAG3C2gD,OAAQ,SAAUruB,GACd,MAAOA,IAAQA,EAAK9E,IAAM,GAAK8E,EAAK7E,IAAM,GAAK6E,EAAK9E,KAAO5jC,KAAKgM,MAAQ08B,EAAK7E,KAAO7jC,KAAKi2D,MAE7FjF,MAAO,SAAUtoB,GACT1oC,KAAK+2D,OAAOruB,KACZ1oC,KAAKu6C,QAAQ5+B,KAAK,eACd3P,KAAM08B,EAAK9E,IACX73B,QAAS28B,EAAK7E,MAElB7jC,KAAKgkD,OAAO9sC,UAGpB4/C,cAAe,SAAUpuB,GAAV,GACPl7B,GAAUxN,KAAKgkD,OAAOx2C,QACtBwpD,EAASxpD,EAAQkB,KAAK,aACtB4zB,EAAQ90B,EAAQkB,KAAK,cACrBunD,EAAOj2D,KAAKi2D,KACZ1uD,EAAWvH,KAAKu6C,QAAQ16C,QAAQ0H,QAChCvH,MAAK+2D,OAAOruB,IACZsuB,EAAOp3C,KAAKpgB,EAAMiE,OAAO8D,EAASuC,gBAAiB4+B,EAAK9E,IAAK8E,EAAK7E,MAClEvB,EAAM3C,KAAK,SAAUj8B,GACjBtC,EAAEpB,MAAM4R,YAAYqiD,EAAevwD,EAAIuyD,EAAOvtB,EAAK7E,KAAOngC,EAAIuyD,EAAOvtB,EAAK9E,SAG9EozB,EAAOp3C,KAAKrY,EAASpC,aACrBm9B,EAAM7kB,YAAYw2C,KAG1BzO,SAAU,SAAUx0C,GAAV,GAKF9O,GACAkhB,EACAkf,EACA3oB,EACAs9C,EACAC,EACAC,EAcAC,CAxBJ5B,GAAU11D,GAAG0lD,SAASzlD,KAAKC,KAAMgR,GAC5BhR,KAAKgkD,OAAOxK,YAGbt3C,EAAO1C,EAAM0C,KACbkhB,EAAMpS,EAAE2J,QACR2nB,EAAQtiC,KAAKgkD,OAAOx2C,QAAQkB,KAAK,cACjCiL,EAAQtG,KAAKF,IAAImvB,EAAMjB,OAAO,qBAAqBzuB,OAAOxL,QAAS,GACnE6vD,EAAe5jD,KAAK8iD,MAAMx8C,EAAQ3Z,KAAKi2D,MACvCiB,EAAkBv9C,EAAQ3Z,KAAKi2D,KAC/BkB,GAAU,EACV/zC,GAAOlhB,EAAKqa,MAASvL,EAAE0L,OAGhB0G,GAAOlhB,EAAKoa,IACnB66C,GAAU,EACVF,KACO7zC,GAAOlhB,EAAKgZ,OACnBi8C,GAAU,EACVD,KACO9zC,GAAOlhB,EAAK+Y,OACnBk8C,GAAU,EACVD,MAVAC,GAAU,EACVF,KAWAG,GACAxzB,IAAKvwB,KAAKF,IAAI,EAAGE,KAAKH,IAAIlT,KAAKgM,KAAMirD,EAAe,IACpDpzB,IAAKxwB,KAAKF,IAAI,EAAGE,KAAKH,IAAIlT,KAAKi2D,KAAMiB,EAAkB,KAEvD9zC,GAAOlhB,EAAKi8C,MACZn+C,KAAKgxD,MAAMoG,GAEXp3D,KAAK82D,cAAcM,GAEnBD,IACAnmD,EAAEgK,iBACFhK,EAAE6pC,8BAGV6a,MAAO,WACH,GAAInuD,GAAWvH,KAAKu6C,QAAQ16C,QAAQ0H,QACpCiuD,GAAU11D,GAAG41D,MAAM31D,KAAKC,MACxBA,KAAK6O,QAAQrB,QAAQkB,KAAK,aAAakR,KAAKrY,EAASpC,aAAagjC,MAAMz5B,KAAK,cAAc+O,YAAYw2C,IAE3G3O,OAAQ,WACJkQ,EAAU11D,GAAGwlD,OAAOvlD,KAAKC,MACzBA,KAAK6O,QAAQrB,QAAQqL,IAAI,IAAMR,MAGnCg/C,EAA2BtiB,EAAQp1C,QACnCa,KAAM,WACF,GAAI40C,GAAQp1C,KAAKg1C,YACjBI,GAAMhG,cACNhuC,EAAEpB,KAAKiO,OAAOwD,MAAM/C,KAAK,oCAAoCixB,KAAK,SAAUv4B,EAAOu1B,GAC/EA,EAAGppB,WAEPvT,KAAKiO,OAAOsN,YAAY65B,EAAM5zB,YAElC81C,mBAAoB,SAAUt1B,GAC1B9zB,EAAIi0B,mBAAmBH,EAAO,cAElCE,eAAgB,SAAUF,GACtB9zB,EAAI6zB,kBAAkBC,EAAO,cAEjCu1B,iBAAkB,SAAUjwC,EAAQ+a,EAAUE,GAA5B,GACVqB,GAAKnB,EACA/+B,CAAT,KAASA,EAAI2+B,EAAU3+B,GAAK,EAAGA,IAG3B,GAFAkgC,EAAMtc,EAAOtb,KAAKtI,GAClB++B,EAAOrhC,EAAEwiC,GAAKl1B,KAAK,cAAgB6zB,EAAW,KAC1CE,EAAK5hC,OACL,MAAO4hC,IAInB+0B,sBAAuB,SAAUvpD,GAC7BA,EAAOwQ,oBACPxQ,EAAOuG,4BACPvG,EAAO2G,yBACP3G,EAAO0F,8BAEX8jD,iBAAkB,SAAU7zB,EAAKrB,GAAf,GAC2Gm1B,GAChHh0D,EADLi0D,EAAS/zB,EAAIl1B,KAAK,iBAAkB04B,EAAY/3B,SAASsoD,EAAOhpD,KAAK,aAAc,IAAMgpD,EAAOC,KAAK,WAAa,CACtH,KAASl0D,EAAI6+B,EAAU7+B,GAAK0jC,EAAW1jC,IAEnC,GADAg0D,EAAK9zB,EAAIl1B,KAAK,cAAgBhL,EAAI,KAC9Bg0D,EAAG72D,OACH,MAAO62D,IAInBG,iBAAkB,SAAUj0B,EAAK5B,GAE7B,IADA,GAA6Jt+B,GAAGo0D,EAAUr1B,EAAtKs1B,EAAc/1B,EAAMtrB,qBAAqB09C,GAAM4D,EAAmBh2B,EAAMtrB,qBAAqB49C,GAAWhyB,EAAQsB,EAAItB,MAAO21B,EAAgB31B,EAAMzhC,OAC9Ik3D,EAAYl3D,OAAS,GACxBk3D,EAAY,GAAGxkD,QAEnB,MAAOykD,EAAiBn3D,OAAS,GAC7Bm3D,EAAiB,GAAGzkD,QAExB,KAAK7P,EAAIu0D,EAAgB,EAAGv0D,GAAK,EAAGA,IAChC++B,EAAOH,EAAM5+B,GACT++B,EAAK9rB,aAAau9C,KAAWI,GAC7BwD,EAAW5pD,EAAIoxB,gBAAgBt/B,KAAKiO,OAAOnB,SAAUwnD,GACrDwD,EAAS5+C,aAAa,OAAQupB,EAAK9rB,aAAa49C,IAChDvyB,EAAMoX,QAAQ0e,IAEd91B,EAAMoX,QAAQlrC,EAAIoxB,gBAAgBt/B,KAAKiO,OAAOnB,SAAUsnD,KAIpE8D,oBAAqB,SAAUl2B,GAC3B9zB,EAAIi0B,mBAAmBH,EAAO,aAC9B9zB,EAAI6zB,kBAAkBC,EAAO,aAC7B5gC,EAAE4gC,GAAOtzB,KAAK,UAAU0zB,WAAW,cACnCl0B,EAAI80B,iBAAiBhB,IAEzByC,oBAAqB,SAAUzC,GAC3B,MAAO9zB,GAAIu2B,oBAAoBzC,EAAO,aAG1Cm2B,EAAmBd,EAAyB13D,QAC5Cgc,KAAM,WAAA,GAImFy8C,GAAWx0B,EAAKnB,EAAM41B,EAAQh2B,EAAUi2B,EAAcC,EAclI70D,EAjBL0W,EAAQpa,KAAKk1C,WAAU,GAAOwiB,EAAKxpD,EAAII,QAAQ8L,EAAM8H,cACjDijB,EACA0vB,IACA7yB,EAAQ9zB,EAAII,QAAQopD,EAAIjD,GAAQn2B,EAAWt+B,KAAKH,QAAQy+B,UAAY,OAC5E,KAAK0D,GAAShiC,KAAK4d,cAAgBhX,EAAOiX,WAAWmzB,gBAAgB0mB,GAEjE,MADA13D,MAAKm1C,aAAa/6B,GAClB,CAWJ,KATApa,KAAKkiC,eAAeF,GACpB4B,EAAM8zB,EAAGpjD,WACT+tB,EAAWn0B,EAAIqpB,cAAcqM,GAAK,GAC9B8zB,EAAG/0B,QAAU,GAAkB,UAAbrE,IAClBsF,EAAM5B,EAAMh2B,KAAKq2B,EAAWq1B,EAAG/0B,QAAU,IAE7Cy1B,EAAYp4D,KAAKykC,oBAAoBzC,GACrCq2B,EAASz0B,EAAIjL,WAAU,GACvBv3B,EAAEi3D,GAAQ1xC,QACDjjB,EAAI,EAAGA,EAAI00D,EAAW10D,GAAQ++B,EAAKm1B,KAAK,WAC7Cn1B,EAAOrhC,EAAEwiC,GAAKl1B,KAAK,cAAgBhL,EAAI,KACnC++B,EAAK5hC,OACD4hC,EAAKm1B,KAAK,WAAa,GAAkB,UAAbt5B,GAAwBmE,EACpDA,EAAK9zB,KAAK6lD,EAAS/xB,EAAKm1B,KAAK,WAAa,GAE1C53D,KAAKw4D,YAAYH,EAAQ51B,IAG7BJ,EAAWn0B,EAAIqpB,cAAcqM,GAAK,GAClCnB,EAAOziC,KAAKu3D,iBAAiB3zB,EAAI9pB,cAAeuoB,EAAU3+B,GAC1D40D,EAAe71B,EAAKn0B,QAAQsmD,GAAIxtD,QAC5BkxD,EAAe71B,EAAKm1B,KAAK,WAAa,IAAMv1B,GAAyB,UAAb/D,EACxDt+B,KAAKw4D,YAAYH,EAAQ51B,GAEzBA,EAAK9zB,KAAK6lD,EAAS/xB,EAAKm1B,KAAK,WAAa,IAGlDW,EAAcn3D,EAAEi3D,GAAQ3pD,KAAK,cAAgBhL,EAAI,KAC7C60D,EAAY5pD,KAAKulD,KAAWG,GAAakE,EAAY5pD,KAAK6lD,IAC1D+D,EAAY5pD,KAAKulD,EAAOC,EAGhB,WAAZ71B,EACApwB,EAAIY,aAAaupD,EAAQz0B,GAEzB11B,EAAIqE,YAAY8lD,EAAQz0B,GAExBxiC,EAAE4gC,GAAOtzB,KAAK,aAAa7N,OAAS,GACpCb,KAAKk4D,oBAAoBl2B,GAE7BhiC,KAAKs3D,mBAAmBt1B,GACxBhiC,KAAKm1C,aAAa/6B,GAClBpa,KAAKw3D,sBAAsBx3D,KAAKiO,SAEpCuqD,YAAa,SAAU50B,EAAKnB,GACxB,GAAIg2B,EACJA,GAAUh2B,EAAKwkB,QACfwR,EAAQ73C,KAAKha,EAAOpF,uBACpBi3D,EAAQr2B,WAAWoyB,GACnBiE,EAAQrjD,SAASwuB,MAGrB80B,EAAsBrB,EAAyB13D,QAC/Cgc,KAAM,WACF,GAGgJg9C,GAAaj1D,EAA+B++B,EAAMg2B,EAH9Lr+C,EAAQpa,KAAKk1C,WAAU,GAAOwiB,EAAKxpD,EAAII,QAAQ8L,EAAM8H,cACjDijB,EACA0vB,IACA7yB,EAAQ9zB,EAAII,QAAQopD,EAAIjD,GAAQsD,EAAc/1B,EAAMtrB,qBAAqB09C,GAAM4D,EAAmBh2B,EAAMtrB,qBAAqB49C,GAA2BtoD,EAAOg2B,GAASA,EAAMh2B,KAAqBsyB,EAAWt+B,KAAKH,QAAQy+B,UAAY,OAC/O,KAAKo5B,GAAM13D,KAAK4d,cAAgBhX,EAAOiX,WAAWmzB,gBAAgB0mB,GAE9D,MADA13D,MAAKm1C,aAAa/6B,GAClB,CAQJ,KANApa,KAAKkiC,eAAeF,GACpB22B,EAActpD,SAASqoD,EAAG/gD,aAAa,aAAc,IACjD+gD,EAAG70B,QAAU,GAAkB,UAAbvE,IAClBo5B,EAAGx+C,aAAa,YAAay/C,EAAcjB,EAAG70B,QAAU,GACxD81B,EAAcA,EAAcjB,EAAG70B,QAAU,GAExCn/B,EAAI,EAAGA,EAAIsI,EAAKnL,OAAQ6C,IACzB++B,EAAOziC,KAAK44D,mBAAmB5sD,EAAKtI,GAAIi1D,EAAar6B,EAAUo5B,GAC1Dj1B,IAGLg2B,EAAUh2B,EAAK9J,YACf8/B,EAAQ7nD,UAAYhK,EAAOpF,sBAC3Bi3D,EAAQl5B,gBAAgBg1B,GACpBkE,EAAQ9hD,aAAau9C,IAAUuE,EAAQ9hD,aAAau9C,KAAWI,GAC/DmE,EAAQv/C,aAAag7C,EAAOE,GAEhB,UAAZ91B,EACApwB,EAAIY,aAAa2pD,EAASh2B,GAE1Bv0B,EAAIqE,YAAYkmD,EAASh2B,GAE7BziC,KAAK64D,aAAaJ,EAASh2B,KAE3Bs1B,EAAYl3D,OAAS,GAAKm3D,EAAiBn3D,OAAS,IACpDb,KAAK63D,iBAAiB7rD,EAAK,GAAIg2B,GAE/B5gC,EAAE4gC,GAAOtzB,KAAK,aAAa7N,OAAS,GACpCb,KAAKk4D,oBAAoBl2B,GAE7BhiC,KAAKs3D,mBAAmBt1B,GACxBhiC,KAAKm1C,aAAa/6B,GAClBpa,KAAKw3D,sBAAsBx3D,KAAKiO,SAEpC2qD,mBAAoB,SAAUh1B,EAAK+0B,EAAar6B,EAAUw6B,GACtD,GAAIr2B,GAAMs2B,EAAe3xD,EAAQuxD,EAAc,CAE/C,IADAl2B,EAAOrhC,EAAEwiC,GAAKl1B,KAAK,cAAgBiqD,EAAc,KAAK,GAClDl2B,GAAQA,EAAKI,QAAU,GAAkB,UAAbvE,GAAwBmE,IAASq2B,EAE7D,MADAr2B,GAAKI,SAAW,EAChB,CAEJ,IAAIJ,EACA,MAAOA,EAEX,KAAKr7B,EAAOA,GAAS,IACjBq7B,EAAOrhC,EAAEwiC,GAAKl1B,KAAK,cAAgBtH,EAAQ,KAAK,KAC5Cq7B,GAAQA,EAAKI,QAAU,IAFPz7B,KAMxB,MAAKq7B,IAGLs2B,EAAgB1pD,SAASozB,EAAK9rB,aAAa,aAAc,IAAM8rB,EAAKI,QAAU,EAC1Ek2B,IAAkBJ,GAA4B,UAAbr6B,EAC1BmE,GACAk2B,GAAeI,GACtBt2B,EAAKvpB,aAAaq7C,EAAS9xB,EAAKI,QAAU,GADvC,IANP,GAUJg2B,aAAc,SAAUJ,EAASh2B,GAC7B,GAAiCu2B,GAAaC,EAAMC,EAAhD9uD,EAAQquD,EAAQtwD,MAAMiC,KACrBA,KAGL4uD,EAAcG,WAAW/uD,GACzB6uD,EAAO7uD,EAAM9J,OAAM04D,GAAAA,GAAuBn4D,QAC1Cq4D,EAAkBF,EAAc,EAAIC,EACpCR,EAAQtwD,MAAMiC,MAAQ8uD,EACtBz2B,EAAKt6B,MAAMiC,MAAQ8uD,MAGvBE,EAAmB/B,EAAyB13D,QAC5Cgc,KAAM,WAAA,GAcEqiC,GAKKtjB,EAuBIh3B,EAzCT0W,EAAQpa,KAAKk1C,YACblpC,EAAOuU,EAAW+wB,OAAOl3B,EAAO,SAAUgN,GAC1C,MAAOhmB,GAAEgmB,GAAM9Y,QAAQsmD,GAAI,KAE3B8C,EAAKxpD,EAAII,QAAQ8L,EAAM8H,cACvBijB,EACA0vB,IAEAjxB,EAAM53B,EAAK,GACX22B,EAAU+0B,EAAKA,EAAG/0B,QAAU,EAC5BN,EAAWjhC,EAAE4K,EAAK,IAAI5E,QACtB46B,EAAQ9zB,EAAII,QAAQs1B,EAAK6wB,GACzB4E,EAAYz1B,EAAI9pB,aAEpB,KAAKkoB,GAAShiC,KAAK4d,cAAgBhX,EAAOiX,WAAWmzB,gBAAgBpN,GAEjE,MADA5jC,MAAKm1C,aAAa/6B,GAClB,CAEJ,KAASsgB,EAAI,EAAGA,EAAIiI,EAASjI,IACrB1uB,EAAKuD,QAAQ8pD,EAAUrtD,KAAKq2B,EAAW3H,IAAM,GAC7C1uB,EAAK7L,KAAKk5D,EAAUrtD,KAAKq2B,EAAW3H,GAG5C,IAAIsH,EAAMh2B,KAAKnL,QAAUmL,EAAKnL,OAC1Bm9C,EAAe9vC,EAAIuM,KAAKunB,GACnBgc,IAAgB9vC,EAAImtB,cAAc2iB,KACnCA,EAAe9vC,EAAIsZ,KAAKwa,IAExBgc,GAAgBA,EAAahyC,OAC7BgyC,EAAeA,EAAahyC,KAAK,GAAGs2B,MAAM,IAE9Cp0B,EAAIqF,OAAOyuB,GACXhiC,KAAKw3D,sBAAsBx3D,KAAKiO,YAC7B,IAAIorD,EAAUrtD,KAAKnL,QAAUmL,EAAKnL,OACrCm9C,EAAeqb,EAAU5xC,YACpBu2B,IACDA,EAAeqb,EAAU5hC,iBAE7BvpB,EAAIqF,OAAO8lD,OACR,CAEH,IADAr5D,KAAKkiC,eAAeF,GACXt+B,EAAI,EAAGA,EAAIsI,EAAKnL,OAAQ6C,IAC7BkgC,EAAM53B,EAAKtI,GACXwK,EAAIuwB,mBAAmBmF,GACvBoa,EAAe9vC,EAAIuM,KAAKmpB,IAAQ11B,EAAIsZ,KAAKoc,GACzCoa,EAAeA,EAAa1b,MAAM,GAClCtiC,KAAKs5D,cAAcl/C,EAAO4jC,GAC1BA,EAAe,KACfh+C,KAAKu5D,oBAAoBv3B,EAAO4B,GAChC11B,EAAIqF,OAAOqwB,EAEf5jC,MAAKs3D,mBAAmBt1B,GAExB5gC,EAAE4gC,GAAOtzB,KAAK,aAAa7N,OAAS,EACpCb,KAAKk4D,oBAAoBl2B,GAClB9zB,EAAIgQ,GAAGm7C,EAAW3E,IAAUtzD,EAAE4gC,GAAOtzB,KAAK,WAAW7N,OAAS,GACrEb,KAAK63D,iBAAiBwB,EAAUrtD,KAAK,GAAIg2B,GAEzCgc,GACAh+C,KAAKs5D,cAAcl/C,EAAO4jC,GAE9Bh+C,KAAKw3D,sBAAsBx3D,KAAKiO,SAEpCqrD,cAAe,SAAUl/C,EAAOgN,GAC5BhN,EAAMiB,SAAS+L,EAAM,GACrBhN,EAAMkB,UAAS,GACftb,KAAKiO,OAAOsN,YAAYnB,IAE5Bm/C,oBAAqB,SAAUv3B,EAAO4B,GAClC,GAAIx8B,GAAOq7B,EAAM+2B,EAAcC,EAASp3B,EAAWn0B,EAAIqpB,cAAcqM,GAAK,GAAO81B,EAAW13B,EAAMh2B,KAAK,GAAI0qD,EAAWgD,EAASp3B,MAAMo3B,EAASp3B,MAAMzhC,OAAS,GAAIumC,EAAY/3B,SAASqnD,EAAS//C,aAAa,aAAc,IAAM+/C,EAAS7zB,QAAU,CACnP,KAAKz7B,EAAQ,EAAGA,GAASggC,EAAWhgC,GAAgBq7B,EAAKm1B,KAAK,WAC1Dn1B,EAAOrhC,EAAEwiC,GAAKl1B,KAAK,cAAgBtH,EAAQ,KACvCq7B,EAAK5hC,QAAU4hC,EAAKm1B,KAAK,WAAa,IACtC6B,EAAUz3B,EAAMh2B,KAAKq2B,EAAW,GAChCm3B,EAAep4D,EAAEq4D,GAAS/qD,KAAK,eAAiBtH,EAAQ,GAAK,KACzDoyD,EAAa34D,OACb24D,EAAaG,OAAOl3B,GAEpBrhC,EAAEq4D,GAAS5mD,OAAO4vB,GAEtBziC,KAAK45D,eAAen3B,IAEnBA,EAAK5hC,SACN4hC,EAAOziC,KAAKu3D,iBAAiB3zB,EAAI9pB,cAAeuoB,EAAUj7B,GAC1DpH,KAAK45D,eAAen3B,KAIhCm3B,eAAgB,SAAUlC,GACtB,GAAImC,GAAenC,EAAGE,KAAK,WAAa,CACpCiC,IAAgB,GAChBnC,EAAGt1B,WAAWoyB,GACVkD,EAAG/oD,KAAKulD,KAAWG,GACnBqD,EAAG/oD,KAAKulD,EAAOC,IAGnBuD,EAAG/oD,KAAK6lD,EAASqF,MAIzBC,EAAsBzC,EAAyB13D,QAC/Cgc,KAAM,WACF,GAGmQqiC,GAAct6C,EAAG++B,EAAM/H,EAHtRtgB,EAAQpa,KAAKk1C,YAAawiB,EAAKxpD,EAAII,QAAQ8L,EAAM8H,cAC7CijB,EACA0vB,IACA7yB,EAAQ9zB,EAAII,QAAQopD,EAAIjD,GAAQzoD,EAAOg2B,GAASA,EAAMh2B,KAAM2sD,EAAczqD,EAAIqpB,cAAcmgC,GAAI,GAAOqC,EAAc/tD,GAAQA,EAAK,GAAGs2B,MAAMzhC,OAAQk3D,EAAc/1B,EAAMtrB,qBAAqB09C,GAAM4D,EAAmBh2B,EAAMtrB,qBAAqB49C,EACxP,KAAKoD,GAAM13D,KAAK4d,cAAgBhX,EAAOiX,WAAWmzB,gBAAgB0mB,GAE9D,MADA13D,MAAKm1C,aAAa/6B,GAClB,CAEJ,IAAmB,GAAf2/C,GAAoBrC,EAAG70B,SAAWk3B,EAClC/b,EAAe9vC,EAAIuM,KAAKunB,GACnBgc,IAAgB9vC,EAAImtB,cAAc2iB,KACnCA,EAAe9vC,EAAIsZ,KAAKwa,IAExBgc,GAAgBA,EAAahyC,OAC7BgyC,EAAeA,EAAahyC,KAAK,GAAGs2B,MAAM,IAE9Cp0B,EAAIqF,OAAOyuB,GACXhiC,KAAKw3D,sBAAsBx3D,KAAKiO,YAC7B,CAKH,IAJAC,EAAIuwB,mBAAmBi5B,GACvB1Z,EAAe9vC,EAAIuM,KAAKi9C,IAAOxpD,EAAIsZ,KAAKkwC,GACxC13D,KAAKkiC,eAAeF,GACpB22B,EAActpD,SAASqoD,EAAG/gD,aAAa,aAAc,IAChD+jB,EAAI,EAAGA,EAAIg9B,EAAG70B,QAASnI,IACxB,IAAKh3B,EAAI,EAAGA,EAAIsI,EAAKnL,OAAQ6C,GAAS++B,EAAKm1B,KAAK,YAAc,EAC1Dn1B,EAAOrhC,EAAE4K,EAAKtI,IAAIgL,KAAK,eAAiBiqD,EAAcj+B,GAAK,KACvD+H,EAAK5hC,QAAU4hC,EAAKm1B,KAAK,YAAc,EACvCn1B,EAAKlvB,SAELvT,KAAKg6D,oBAAoBhuD,EAAKtI,GAAIi1D,EAAcj+B,EAI5D16B,MAAKs3D,mBAAmBt1B,IAExB+1B,EAAYl3D,OAAS,GAAKm3D,EAAiBn3D,OAAS,IACpDb,KAAK63D,iBAAiB7rD,EAAK,GAAIg2B,GAE/B5gC,EAAE4gC,GAAOtzB,KAAK,aAAa7N,OAAS,GACpCb,KAAKk4D,oBAAoBl2B,GAEzBgc,IACA5jC,EAAMiB,SAAS2iC,EAAc,GAC7B5jC,EAAMkB,UAAS,GACftb,KAAKiO,OAAOsN,YAAYnB,IAE5Bpa,KAAKw3D,sBAAsBx3D,KAAKiO,SAEpC+rD,oBAAqB,SAAUp2B,EAAKrB,GAAf,GAGT0kB,GAOCvjD,EATL++B,EAAOrhC,EAAEwiC,GAAKl1B,KAAK,cAAgB6zB,EAAW,IAClD,IAAIE,EAAK5hC,QAAU4hC,EAAKm1B,KAAK,WAAa,EAMtC,MALI3Q,GAAQxkB,EAAKwkB,OAAM,GACvBxkB,EAAKw3B,MAAMhT,GACXjnD,KAAKk6D,eAAejT,GACpBA,EAAMt4C,KAAK,YAAaU,SAASozB,EAAK9zB,KAAK,aAAc,IAAM,GAC/D8zB,EAAKlvB,SACL,CAEJ,KAAS7P,EAAI6+B,EAAU7+B,GAAK,EAAGA,IAE3B,GADA++B,EAAOrhC,EAAEwiC,GAAKl1B,KAAK,cAAgBhL,EAAI,KACnC++B,EAAK5hC,OAGL,MAFAb,MAAKk6D,eAAez3B,GACpBA,EAAK9zB,KAAK,YAAaU,SAASozB,EAAK9zB,KAAK,aAAc,IAAM,GAC9D,GAIZurD,eAAgB,SAAUxC,GACtB,GAAIyC,GAAezC,EAAGE,KAAK,WAAa,CACpCuC,IAAgB,GAChBzC,EAAGt1B,WAAWmyB,GACVmD,EAAG/oD,KAAKulD,KAAWI,GACnBoD,EAAG/oD,KAAKulD,EAAOE,IAGnBsD,EAAG/oD,KAAK4lD,EAAS4F,MAIzBC,EAAgC/C,EAAyB13D,QACzDgc,KAAM,WACF,GAGQqmB,GAAO4B,EAAK+0B,EAAa0B,EAAQv2B,EAHrC1pB,EAAQpa,KAAKk1C,YAAawiB,EAAKxpD,EAAII,QAAQ8L,EAAM8H,cAC7CijB,EACA0vB,GAER,OAAK6C,IAIL11B,EAAQ9zB,EAAII,QAAQopD,EAAIjD,GACxB7wB,EAAM8zB,EAAGpjD,WACTqkD,EAAczqD,EAAIqpB,cAAcmgC,GAAI,GACpC2C,EAASz2B,EAAIyC,SAASsyB,EAAc,GAChC34D,KAAK4d,cAAgBhX,EAAOiX,WAAWmzB,gBAAgB0mB,IACvD13D,KAAKm1C,aAAa/6B,GAClB,IAEJpa,KAAKkiC,eAAeF,GACpB22B,EAActpD,SAASjO,EAAEs2D,GAAI/oD,KAAK,aAAc,IAChD0rD,EAASj5D,EAAEwiC,GAAKl1B,KAAK,eAAiBiqD,EAAc,EAAI34D,KAAKs6D,YAAY5C,GAAM,GAAK,KAAKp6C,IAAI,GACxF+8C,GAAUA,EAAO13B,UAAY+0B,EAAG/0B,SAAW+0B,EAAGv5C,UAAYk8C,EAAOl8C,SAKtE2lB,EAAU9jC,KAAKs6D,YAAY5C,GAAM13D,KAAKs6D,YAAYD,GAClDj5D,EAAEs2D,GAAIE,KAAKrD,EAASzwB,GAASjxB,OAAO3E,EAAI4tB,UAAUu+B,GAAU,GAAK,QAAUA,EAAOzpD,WAClFxP,EAAEs2D,GAAIttD,MAAMstD,EAAGd,aACfx1D,EAAEi5D,GAAQ9mD,SACNmkD,EAAG/gD,aAAau9C,KAAWE,GAC3BsD,EAAGx+C,aAAag7C,EAAOI,GAEvBoD,EAAG/gD,aAAau9C,KAAWI,GAC3Bt0D,KAAK63D,iBAAiBj0B,EAAK5B,GAE3B5gC,EAAE4gC,GAAOtzB,KAAK,aAAa7N,OAAS,GACpCb,KAAKk4D,oBAAoBl2B,GAE7BhiC,KAAKs3D,mBAAmBt1B,GACxBhiC,KAAKm1C,aAAa/6B,GAClBpa,KAAKw3D,sBAAsBx3D,KAAKiO,QAfhC61B,IAJI9jC,KAAKs3D,mBAAmBt1B,GACxBhiC,KAAKm1C,aAAa/6B,GAClB,MAjBApa,KAAKm1C,aAAa/6B,GAClB,IAmCRkgD,YAAa,SAAU5C,GACnB,MAAOroD,UAASqoD,EAAG/gD,aAAa49C,GAAU,KAAO,KAGrDgG,EAA8BlD,EAAyB13D,QACvDgc,KAAM,WACF,GAGQ6+C,GAAIlzC,EAAQ0a,EAAO22B,EAAat2B,EAAUo4B,EAAWC,EAHzDtgD,EAAQpa,KAAKk1C,YAAawiB,EAAKxpD,EAAII,QAAQ8L,EAAM8H,cAC7CijB,EACA0vB,GAER,OAAK6C,IAIL8C,EAAKtsD,EAAII,QAAQopD,EAAI9C,GACrBttC,EAASpZ,EAAII,QAAQopD,GACjBhD,EACAC,IAEJ3yB,EAAQ9zB,EAAII,QAAQopD,EAAIjD,GACxBkE,EAAczqD,EAAIqpB,cAAcmgC,GAAI,GACpCr1B,EAAWn0B,EAAIqpB,cAAcijC,GAAI,GAC7Bn4B,EAAW,IAAM/a,EAAOtb,KAAKnL,QAC7Bb,KAAKm1C,aAAa/6B,GAClB,IAEJqgD,EAAYnzC,EAAOtb,KAAKq2B,EAAWriC,KAAK26D,YAAYjD,IACpDgD,EAAWD,GAAaA,EAAUp0B,SAASsyB,GACvC34D,KAAK4d,cAAgBhX,EAAOiX,WAAWmzB,gBAAgB0mB,IACvD13D,KAAKm1C,aAAa/6B,GAClB,IAEJpa,KAAKkiC,eAAeF,GACpB22B,EAAcv3D,EAAEs2D,GAAI/oD,KAAK,aACzB+rD,EAAWt5D,EAAEq5D,GAAW/rD,KAAK,cAAgBiqD,EAAc,KAAKr7C,IAAI,GAC/Do9C,GAAYA,EAAS73B,UAAY60B,EAAG70B,SAAW60B,EAAGv5C,UAAYu8C,EAASv8C,SAK5E/c,EAAEs2D,GAAIE,KAAKpD,EAASx0D,KAAK26D,YAAYjD,GAAM13D,KAAK26D,YAAYD,IAAW7nD,OAAO3E,EAAI4tB,UAAU4+B,GAAY,GAAK,QAAUA,EAAS9pD,WAC5H8mD,EAAG/gD,aAAau9C,KAAWC,GAC3BuD,EAAGx+C,aAAag7C,EAAOG,GAE3BjzD,EAAEs5D,GAAUnnD,SACRnS,EAAE4gC,GAAOtzB,KAAK,aAAa7N,OAAS,GACpCb,KAAKk4D,oBAAoBl2B,GAE7BhiC,KAAKs3D,mBAAmBt1B,GACxBhiC,KAAKm1C,aAAa/6B,GATlBhZ,IAJIpB,KAAKs3D,mBAAmBt1B,GACxBhiC,KAAKm1C,aAAa/6B,GAClB,OA3BApa,KAAKm1C,aAAa/6B,GAClB,IAuCRugD,YAAa,SAAUjD,GACnB,MAAOroD,UAASqoD,EAAG/gD,aAAa69C,GAAU,KAAO,KAGrDoG,EAAmBvD,EAAyB13D,QAC5Cgc,KAAM,WACF,GAAIvB,GAAQpa,KAAKk1C,YAAatnC,EAAO5N,KAAKH,QAAQ+N,KAAMe,EAAgB,QAATf,EAAiB2mD,EAAUC,EAASkD,EAAKxpD,EAAII,QAAQ8L,EAAM8H,cAClHijB,EACA0vB,IACAvtC,EAASpZ,EAAII,QAAQopD,GACrBhD,EACAC,IACA3yB,EAAQ9zB,EAAII,QAAQopD,EAAIjD,GAAQoG,EAAU3sD,EAAIoxB,gBAAgBt/B,KAAKiO,OAAOnB,SAAU4qD,EAAG19C,SAASrT,cACxG,QAAK+wD,GAAM13D,KAAK4d,cAAgBhX,EAAOiX,WAAWmzB,gBAAgB0mB,IAC9D13D,KAAKm1C,aAAa/6B,GAClB,IAEJpa,KAAKkiC,eAAeF,GACP,QAATp0B,GAAkBxM,EAAEs2D,GAAIx5C,GAAG,IAAMvP,EAAO,KACxC3O,KAAK86D,uBAAuBpD,EAAIpwC,EAAQ3Y,EAAMksD,GAC9B,WAATjtD,GAAqBxM,EAAEs2D,GAAIx5C,GAAG,IAAMvP,EAAO,MAClD3O,KAAK+6D,qBAAqBrD,EAAIpwC,EAAQ3Y,EAAMksD,GAE5Cz5D,EAAEs2D,GAAIE,KAAKjpD,EAAKhI,gBAAkB,GAClCvF,EAAEs2D,GAAIt1B,WAAWzzB,GAEjBvN,EAAE4gC,GAAOtzB,KAAK,aAAa7N,OAAS,GACpCb,KAAKk4D,oBAAoBl2B,GAE7BhiC,KAAKs3D,mBAAmBt1B,GACxBhiC,KAAKm1C,aAAa/6B,GAblBpa,IAeJg7D,iBAAkB,SAAUtD,GACxB,MAAOroD,UAASqoD,EAAG/gD,aAAa69C,GAAU,KAE9CyG,iBAAkB,SAAUvD,GACxB,MAAOroD,UAASqoD,EAAG/gD,aAAa49C,GAAU,KAE9CuG,uBAAwB,SAAUpD,EAAIpwC,EAAQ3Y,EAAMksD,GAChD,GAAIl4B,GAAU+0B,EAAG/0B,QAASE,EAAU60B,EAAG70B,QAASq4B,EAAU95D,EAAEy5D,GAAUM,EAAgB9nD,KAAK8iD,MAAMtzB,EAAU,EACvGs4B,GAAgB,GAChBD,EAAQvsD,KAAK4lD,EAAS4G,GAEtBx4B,EAAU,GACVu4B,EAAQvsD,KAAK6lD,EAAS7xB,GAE1BvhC,EAAEs2D,GAAIE,KAAKjpD,EAAMk0B,EAAUs4B,GAAelB,MAAMiB,GAChD95D,EAAEs2D,GAAIttD,MAAMstD,EAAGd,aACfsE,EAAQ9wD,MAAM8wD,EAAQ,GAAGtE,aACrBc,EAAGx6C,aAAag3C,KACZwD,EAAG/gD,aAAau9C,KAAWI,GAC3B4G,EAAQvsD,KAAKulD,EAAOE,GACfsD,EAAG/gD,aAAa49C,IAAyC,MAA7BmD,EAAG/gD,aAAa49C,IAC7CmD,EAAGx+C,aAAag7C,EAAOE,GAE3Bp0D,KAAK63D,iBAAiBH,EAAGpjD,WAAYgT,EAAOhT,aAE5C4mD,EAAQvsD,KAAKulD,EAAOwD,EAAG/gD,aAAau9C,MAIhD6G,qBAAsB,SAAUrD,EAAIpwC,EAAQ3Y,EAAMksD,GAC9C,GAAIL,GAAKtsD,EAAII,QAAQopD,EAAI9C,GAAK+D,EAActpD,SAASjO,EAAEs2D,GAAI/oD,KAAK,aAAc,IAAK0zB,EAAWn0B,EAAIqpB,cAAcijC,GAAI,GAAO73B,EAAU+0B,EAAG/0B,QAASE,EAAU60B,EAAG70B,QAASu4B,EAAgB/nD,KAAK8iD,MAAMxzB,EAAU,GAAI83B,EAAYr5D,EAAEkmB,GAAQ5Y,KAAKkmD,GAAIhV,GAAGvd,EAAWM,EAAUy4B,GAAgBf,EAASr6D,KAAKy3D,iBAAiBgD,EAAW9B,EAAc91B,GAAUq4B,EAAU95D,EAAEy5D,EACjWO,GAAgB,GAChBF,EAAQvsD,KAAK6lD,EAAS4G,GAEtBv4B,EAAU,GACVq4B,EAAQvsD,KAAK4lD,EAAS1xB,GAEtBw3B,GAAUA,EAAOx5D,OACjBw5D,EAAOV,OAAOuB,GAEdT,EAAU5nD,OAAOqoD,GAErB95D,EAAEs2D,GAAIE,KAAKjpD,EAAMg0B,EAAUy4B,GACvB1D,EAAGx6C,aAAag3C,KACZwD,EAAG/gD,aAAau9C,KAAWG,GAC3B6G,EAAQvsD,KAAKulD,EAAOC,GACfuD,EAAG/gD,aAAa69C,IAAyC,MAA7BkD,EAAG/gD,aAAa69C,IAC7CkD,EAAGx+C,aAAag7C,EAAOC,IAG3B+G,EAAQvsD,KAAKulD,EAAOwD,EAAG/gD,aAAau9C,QAKhDmH,EAAwB/5D,EAAK3B,QAC7BS,QAAS,SAAUP,GACf,GAAIy7D,IACA13B,KACI23B,OAAQpD,EACRqD,SAAUpC,EACVjP,MAAOiQ,EACP3hD,MAAOmiD,GAEXa,QACIF,OAAQ7C,EACR8C,SAAU1B,EACV3P,MAAOoQ,EACP9hD,MAAOmiD,GAKf,OAFA/6D,GAAUF,EAAOE,EAASG,KAAKH,SAC/BA,EAAQ4iD,OAAS5iD,EAAQ4iD,QAAU,SAC5B,GAAI6Y,GAAYz7D,EAAQ+N,MAAM/N,EAAQ4iD,QAAQ5iD,IAEzD0jB,WAAY,SAAU3hB,EAAI/B,GACtByB,EAAKxB,GAAGyjB,WAAWxjB,KAAKC,KAAM4B,EAAI/B,GAClC+B,EAAGgN,SAAS,oBACZhN,EAAG+M,KAAK,WAAY,aAExBJ,OAAQ,SAAU3M,EAAIy3B,GAClB,GAAI1Y,IAAeq0C,EAAkBr0C,YAAY0Y,EAC7C1Y,MAAgB,GAChB/e,EAAG0lB,SAAS1Y,SAAS,6BACrBhN,EAAG+M,KAAK,WAAY,YACpB/M,EAAGgN,SAAS,sBAEZhN,EAAG0lB,SAAS7J,YAAY,6BACxB7b,EAAGg2D,KAAK,YAAY,GACpBh2D,EAAG6b,YAAY,wBAIvBi+C,EAAqBlb,EAAc7gD,QACnCgc,KAAM,WAAA,GACE5N,GAAO/N,KACPiO,EAASF,EAAKE,MAClBuyC,GAAc1gD,GAAG6b,KAAK5b,KAAKC,MACvBiO,EAAOkG,iBACPlG,EAAOkG,gBAAgBwnD,wBAI/BC,EAAkBxS,EAAgBzpD,QAClC4jB,WAAY,SAAU3hB,EAAI/B,GACtBupD,EAAgBtpD,GAAGyjB,WAAWxjB,KAAKC,KAAM4B,EAAI/B,GAC7C+B,EAAGgN,SAAS,oBACZhN,EAAG+M,KAAK,WAAY,aAExBJ,OAAQ,SAAU3M,EAAIy3B,GAAd,GACAwiC,IAAW7G,EAAkBr0C,YAAY0Y,GACzC1Y,EAAc3gB,KAAKH,QAAQygB,OAAOK,YAAY0Y,EAAOr5B,KAAK67D,QAC1DA,MAAY,GACZj6D,EAAG0lB,SAAS1Y,SAAS,6BACrBhN,EAAG+M,KAAK,WAAY,YACpB/M,EAAGgN,SAAS,sBAEZhN,EAAG0lB,SAAS7J,YAAY,6BACxB7b,EAAGg2D,KAAK,YAAY,GACpBh2D,EAAG6b,YAAY,qBAEnB7b,EAAGgQ,YAAY,mBAAoB+O,GACnC/e,EAAG+M,KAAK,eAAgBgS,IAE5BvgB,QAAS,SAAUsjB,GACf,GAAI3V,GAAO/N,IACX,OAAO,IAAI07D,GAAmB/7D,EAAO+jB,GAAoBuxB,UAAWlnC,EAAKlO,QAAQo1C,cAErF4mB,QAAS,SAAUz0C,GACf,MAAOlZ,GAAIgQ,GAAGkJ,EAAM,WAG5BznB,GAAOH,EAAMoC,GAAGqM,QACZunD,UAAWA,EACXP,aAAcA,EACde,gBAAiBA,EACjB4F,gBAAiBA,EACjBF,mBAAoBA,EACpBL,sBAAuBA,EACvBlD,iBAAkBA,EAClBO,oBAAqBA,EACrBU,iBAAkBA,EAClBU,oBAAqBA,EACrBM,8BAA+BA,EAC/BG,4BAA6BA,EAC7BK,iBAAkBA,IAEtBr0D,EAAa,cAAe,GAAIyvD,IAC5BrzD,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtB8L,OAAO,EACPoH,MAAO,oBAGf1P,EAAa,gBAAiB,GAAI80D,IAC9BztD,KAAM,SACN0wB,SAAU,SACV37B,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBkT,MAAO,8BAGf1P,EAAa,iBAAkB,GAAI80D,IAC/BztD,KAAM,SACNjL,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBkT,MAAO,+BAGf1P,EAAa,cAAe,GAAI80D,IAC5BztD,KAAM,MACN0wB,SAAU,SACV37B,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBkT,MAAO,qBAGf1P,EAAa,cAAe,GAAI80D,IAC5BztD,KAAM,MACNjL,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBkT,MAAO,qBAGf1P,EAAa,YAAa,GAAI80D,IAC1BztD,KAAM,MACN60C,OAAQ,SACR9/C,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBkT,MAAO,kBAGf1P,EAAa,eAAgB,GAAI80D,IAC7BztD,KAAM,SACN60C,OAAQ,SACR9/C,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBkT,MAAO,qBAGf1P,EAAa,yBAA0B,GAAI80D,IACvCztD,KAAM,MACN60C,OAAQ,QACR9/C,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBkT,MAAO,wBAGf1P,EAAa,uBAAwB,GAAI80D,IACrCztD,KAAM,SACN60C,OAAQ,QACR9/C,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBkT,MAAO,uBAGf1P,EAAa,wBAAyB,GAAI80D,IACtCztD,KAAM,MACN60C,OAAQ,QACR9/C,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBkT,MAAO,kBAGf1P,EAAa,sBAAuB,GAAI80D,IACpCztD,KAAM,SACN60C,OAAQ,QACR9/C,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBkT,MAAO,kBAGfnP,EAAe,mBAEPlD,MAAO,SACP+K,MACIxG,OACIohD,WAAY,GACZC,YAAa,WAKrB5lD,MAAO,SACP+K,MAAQmtD,MAAO,WAGvBv1D,EAAa,iBAAkB,GAAIq1D,IAC/Bn4D,OAAQuD,EAAQhB,eAChBrD,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBkT,MAAO,wBAGfnP,EAAe,qBAEPlD,MAAO,SACP+K,MACIxG,OACIohD,WAAY,OACZC,YAAa,WAKrB5lD,MAAO,SACP+K,MAAQmtD,MAAO,aAGvBv1D,EAAa,mBAAoB,GAAIq1D,IACjCn4D,OAAQuD,EAAQf,iBAChBtD,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBkT,MAAO,0BAGfnP,EAAe,oBAEPlD,MAAO,SACP+K,MACIxG,OACIohD,WAAY,OACZC,YAAa,OAKrB5lD,MAAO,SACP+K,MAAQmtD,MAAO,YAGvBv1D,EAAa,kBAAmB,GAAIq1D,IAChCn4D,OAAQuD,EAAQd,gBAChBvD,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBkT,MAAO,yBAGjBxU,OAAOjC,MAAM8lB,SACC,kBAAV/lB,SAAwBA,OAAOyB,IAAMzB,OAAS,SAAU0B,EAAIC,EAAIC,IACrEA,GAAMD,OAEV,SAAU5B,EAAGC,QACVA,OAAO,4BAA6B,kBAAmBD,IACzD,YACG,SAAU8B,GAAV,GACO5B,GAAQiC,OAAOjC,MAAOkC,EAAQlC,EAAMkC,MAAOsM,EAAWxO,EAAMoC,GAAGqM,OAAQsS,EAAavS,EAASuS,WAAYrS,EAAMF,EAASG,IAAK0J,EAAe7J,EAAS6J,aAAcq0B,EAASl+B,EAASk+B,OAAQlqC,EAAUxC,EAAMsC,QAAQE,QAASrC,EAASyB,EAAEzB,OACzOuQ,EAAYxO,EAAM/B,QAClBC,KAAM,SAAUqO,GACZjO,KAAKiO,OAASA,CACd,IAAI8Q,GAAe9Q,EAAOpO,QAAQkf,YAClC/e,MAAK+7D,UACD,GAAIC,GAAcj9C,GAClB,GAAIk9C,GAAWl9C,GACf,GAAIm9C,GAAoBn9C,GACxB,GAAIo9C,GAAoBp9C,GACxB,GAAIq9C,GAAgBr9C,GACpB,GAAIs9C,GAAgBt9C,GACpB,GAAIu9C,GAAmBv9C,GACvB,GAAIw9C,GAAcx9C,KAG1By9C,eAAgB,SAAU57C,GACtB,GAAI3S,GAASjO,KAAKiO,OAAQyH,EAAMzH,EAAOnB,SAAUwN,EAAYpM,EAAI4F,OAAO4B,EAAK,OAAQq1C,EAAWr1C,EAAI43B,wBAEpG,KADAhzB,EAAU1J,UAAYgQ,EACftG,EAAUiN,YACbwjC,EAAS5xC,YAAYmB,EAAUiN,WAEnC,OAAOwjC,IAEXnuB,QAAS,SAAUhc,GACf,MAAO,+BAA+BlF,KAAKkF,IAE/C67C,mBAAoB,WAAA,GACZriD,GACA46B,EACA/mC,EAASjO,KAAKiO,MAClB,KAAIjO,KAAK08D,YAOT,MAJA18D,MAAK08D,aAAc,EACnBtiD,EAAQnM,EAAO6J,WACfk9B,EAAe,GAAIn9B,GAAauC,EAAOnM,EAAOwD,MAC9CvD,EAAI6vB,iBAAiB9vB,EAAOnB,WAExBsN,MAAOA,EACP46B,aAAcA,IAGtB2nB,iBAAkB,SAAUC,GACxB5uD,EAASiK,cAAcjY,KAAKiO,OAAQ2uD,EAAiB5nB,cACrDh1C,KAAKiO,OAAO+D,mBACZhS,KAAK08D,aAAc,GAEvBG,qBAAsB,SAAUlD,EAAQM,GAAlB,GACdlsD,GAAO/N,KACPiO,EAASF,EAAKE,OACd2uD,EAAmB7uD,EAAK0uD,oBACvBG,KAGLjD,EAAO55D,KAAKgO,EAAME,EAAQ2uD,EAAiBxiD,OAC3ClL,WAAW,WACP+qD,EAAMl6D,KAAKgO,EAAME,EAAQ2uD,EAAiBxiD,OAC1CrM,EAAK4uD,iBAAiBC,OAG9BE,gBAAiB,SAAU1iD,GAAV,GAEJ1W,GADL21B,EAAQ9Y,EAAWF,UAAUjG,EACjC,KAAS1W,EAAI,EAAGA,EAAI21B,EAAMx4B,OAAQ6C,IAC9B21B,EAAM31B,GAAG0X,UAAYlN,EAAIgtB,SAAS7B,EAAM31B,GAAG0X,YAAcie,EAAM31B,GAAG0X,WAG1E2hD,cAAe,SAAU3iD,GACrB,GAAIqjB,GAAS,GAAIyO,EACjBzO,GAAOoS,IAAIz1B,GACXpa,KAAK88D,gBAAgB1iD,GACrBqjB,EAAOlqB,OAAO6G,GACdpa,KAAKiO,OAAOsN,YAAYnB,IAE5B4iD,OAAQ,WACJh9D,KAAK+8D,cAAc/8D,KAAKiO,OAAO6J,aAEnCmlD,MAAO,WACHj9D,KAAK+8D,cAAc/8D,KAAKiO,OAAO6J,YAC/B9X,KAAK68D,qBAAqBz7D,EAAEuiB,KAAMviB,EAAEuiB,OAExCu5C,eAAgB,SAAUC,GAAV,GACRC,GAAWh8D,EAAEijB,WACbg5C,EAAS,GAAIC,WAMjB,OALMH,aAAgB17D,QAAO87D,OAASJ,EAAKK,YACvCL,EAAOA,EAAKK,aAEhBH,EAAO3Q,OAAStrD,EAAEa,MAAMm7D,EAASl4C,QAASk4C,GAC1CC,EAAOI,cAAcN,GACdC,EAAS94C,WAEpBo5C,cAAe,SAAU98C,EAAM/gB,GAC3B,GAAI0kB,IAAS3D,KAAMA,GAAQ,GAC3B2D,GAAK3D,KAAO2D,EAAK3D,KAAKvZ,QAAQ,UAAW,IACzCrH,KAAKiO,OAAOvN,QAAQ,QAAS6jB,GAC7BvkB,KAAK2iB,MAAM4B,EAAK3D,KAAM/gB,QAE1B89D,kBAAmB,SAAU3sD,GAAV,GAIX4sD,GACAp4C,CAJJ,IAAM,cAAgB/jB,WAAWO,EAAQie,MAAQje,EAAQqlB,QAAU,IAKnE,MAFIu2C,GAAgB5sD,EAAE4sD,eAAiB5sD,EAAE6sD,cAAcD,eAAiBn8D,OAAOm8D,kBAC3Ep4C,EAAQo4C,EAAcp4C,OAASo4C,EAAc1O,MAC1ClvD,KAAK89D,cAAct4C,IAE9Bs4C,cAAe,SAAUt4C,GAAV,GAIP+iC,GAGA3nC,EAMAg8C,CAZJ,IAAKp3C,IAGD+iC,EAASnnD,EAAEu6B,KAAKnW,EAAO,SAAU2jB,GACjC,MAAO,YAAYztB,KAAKytB,EAAKv7B,QAE7BgT,EAAOxf,EAAEu6B,KAAKnW,EAAO,SAAU2jB,GAC/B,MAAO,eAAeztB,KAAKytB,EAAKv7B,SAEhCgT,EAAK/f,QAAW0nD,EAAO1nD,SAGvB+7D,EAAmB58D,KAAKy8D,uBAY5B,MARAr7D,GAAE28D,KAAK/8B,MAAM5/B,EAAGA,EAAE2V,IAAIwxC,EAAQvoD,KAAKk9D,iBAAiBv4C,KAAKvjB,EAAEa,MAAM,WAAA,GACzD+7D,GAAU1I,MAAMxxC,UAAUxjB,MAAMP,KAAKygC,WACrC5f,EAAOxf,EAAE2V,IAAIinD,EAAS,SAAUhtD,GAChC,MAAO,aAAeA,EAAE+I,OAAOmiB,OAAS,SACzCjlB,KAAK,GACRjX,MAAK09D,cAAc98C,GACnB5gB,KAAK28D,iBAAiBC,IACvB58D,QACI,GAEXi+D,QAAS,SAAUjtD,GACf,GAAyC,UAArChR,KAAKiO,OAAOwD,KAAKzE,gBAArB,CAGA,GAAIhN,KAAK29D,kBAAkB3sD,GAEvB,WADAA,GAAEgK,gBAGNhb,MAAK2yC,qBACL3yC,KAAK68D,qBAAqB,SAAqB5uD,EAAQmM,GAA7B,GAcdoqC,GAGA5Z,EAMAszB,EAtBJC,EAAgBjwD,EAAI4F,OAAO7F,EAAOnB,SAAU,OAC5CwuB,UAAW,oBACX1qB,UAAW,WAEX5O,EAAUxC,EAAMsC,QAAQE,QACxByP,EAAOxD,EAAOwD,IAClBzR,MAAKo+D,wBAAwBD,EAAe1sD,GAC5CA,EAAK0H,YAAYglD,GACbn8D,EAAQq8D,QACRr+D,KAAKs+D,qBAAqBH,EAAe/jD,GAEzCpY,EAAQie,MAAQje,EAAQqlB,QAAU,IAClCrW,EAAEgK,iBACEwpC,EAAIv2C,EAAO6O,cACf0nC,EAAE1X,mBAAmBqxB,GACrBlwD,EAAOsN,YAAYipC,GACf5Z,EAAY38B,EAAOnB,SAAS2E,KAAK65B,kBACrCV,EAAUW,kBAAkB4yB,GAC5B/8D,EAAEqQ,GAAMoH,IAAI,SACZ+xB,EAAUrxB,YAAY,SACtBnY,EAAEqQ,GAAMiH,GAAG,QAAStX,EAAEa,MAAMjC,KAAKi+D,QAASj+D,SAEtCk+D,EAAiBjwD,EAAO6O,cAC5BohD,EAAepxB,mBAAmBqxB,GAClClwD,EAAOsN,YAAY2iD,IAEvB9jD,EAAM2yB,kBACP,SAAoB9+B,EAAQmM,GAC3B,GAAemkD,GAAX39C,EAAO,EACX3S,GAAOsN,YAAYnB,GACnBmkD,EAAan9D,EAAE6M,EAAOwD,MAAM40B,SAAS,sBACrCk4B,EAAW5+B,KAAK,WACZ,GAAIxD,GAAYn8B,KAAKm8B,SACjBA,IAAajuB,EAAIgQ,GAAGie,EAAW,OAC/BjuB,EAAIqF,OAAO4oB,GAEfvb,GAAQ5gB,KAAK4Q,YAEjB2tD,EAAWhrD,SACXvT,KAAK09D,cAAc98C,GAAQurC,OAAO,QAG1CqS,WAAY,SAAUxtD,IACdhP,EAAQie,MAAQje,EAAQ4hB,QACxB5S,EAAE+M,kBACF/M,EAAEgK,mBAGVyjD,OAAQ,SAAUztD,GAAV,GAIA0tD,GACAl5C,CAJE,eAAgB/jB,UAGlBi9D,GAAgB1tD,EAAE6sD,eAAiB7sD,GAAG0tD,iBACtCl5C,EAAQk5C,EAAal5C,OAASk5C,EAAaxP,MAC3ClvD,KAAK89D,cAAct4C,IACnBxU,EAAEgK,mBAGVojD,wBAAyB,SAAUh3C,EAAM3V,GAAhB,GAcb1E,GAQAytB,EAIAqO,EAIA9gC,GA7BH/F,EAAQie,MAASje,EAAQq8D,UAG9Bj3C,EAAOhmB,EAAEgmB,GACTA,EAAK/R,KACDspD,YAAa,MACbv0D,MAAO,MACPC,OAAQ,MACRu0D,SAAU,SACVC,OAAQ,IACRC,QAAS,MAET98D,EAAQie,OACJlT,EAAkB3L,EAAEqQ,EAAK0nB,cAAcpsB,iBAC3Cqa,EAAK/R,KACD0pD,YAAa,SACb5a,WAAY,SACZ6a,YAAa,SACbC,WAAY,SACZr2B,eAAgB,SAEhBpO,EAAQztB,EAAgBsI,IAAI,SAC5BmlB,GACApT,EAAK/R,IAAI,QAASmlB,GAElBqO,EAAa97B,EAAgBsI,IAAI,cACjCwzB,GACAzhB,EAAK/R,IAAI,aAAcwzB,GAEvB9gC,EAAWgF,EAAgBsI,IAAI,YAC/BtN,GACAqf,EAAK/R,IAAI,WAAYtN,MAIjCu2D,qBAAsB,SAAUl3C,EAAMhN,GAAhB,GACdrM,GAAO/N,KACPyR,EAAO1D,EAAKE,OAAOwD,KACnBytD,EAAahxD,EAAIqM,OAAO6M,EAAM3V,GAC9B0tD,EAAcpxD,EAAKqxD,aAAahlD,EAAO3I,GACvC4tD,EAAaF,EAAY9kD,KAAO6kD,EAAW7kD,KAC3CilD,EAAaH,EAAYvhC,IAAMshC,EAAWthC,IAC1C2hC,EAAY,aAAeF,EAAa,MAAQC,EAAa,KACjEl+D,GAAEgmB,GAAM/R,KACJmqD,oBAAqBD,EACrBE,UAAaF,KAGrBH,aAAc,SAAUhlD,EAAO3I,GAAjB,GAINiuD,GAEIC,EAaJplD,EACAiN,EACA/M,EAGImlD,EAvBJ3xD,EAASjO,KAAKiO,OACduhC,EAAQthC,EAAI4F,OAAO7F,EAAOnB,SAAU,QAAU8D,UAAW,WACzD6P,EAAiBrG,EAAMqG,cA4B3B,OA1BIrG,GAAMoG,WACFm/C,EAAkBzxD,EAAIwpB,WAAWjX,GACjCk/C,IAAoBzxD,EAAI+sB,MAAMxa,IAAyC,IAAtBrG,EAAM+H,aACvDjU,EAAIY,aAAa0gC,EAAO/uB,GACjBk/C,GAAmBvlD,EAAM+H,cAAgB1B,EAAe5f,OAC/DqN,EAAIqE,YAAYi9B,EAAO/uB,IAEvBrG,EAAMszB,WAAW8B,GACjBkwB,GAAe,KAGnBj/C,EAAiBA,IAAmBhP,EAAOgP,EAAe8X,WAAWne,EAAM+H,aAAe1B,EAC1FvS,EAAIY,aAAa0gC,EAAO/uB,IAExBlG,EAASrM,EAAIqM,OAAOi1B,EAAO/9B,GAC3B+V,EAAOgoB,EAAM/X,gBACbhd,EAAO+0B,EAAM/nB,YACjBvZ,EAAIqF,OAAOi8B,GACPkwB,GAAgBxxD,EAAIwpB,WAAWlQ,IAAStZ,EAAIwpB,WAAWjd,KAAUvM,EAAI+sB,MAAMzT,KAAUtZ,EAAI+sB,MAAMxgB,KAC3FmlD,EAAap4C,EAAK3mB,OACtB4Z,EAAKkd,KAAOnQ,EAAKmQ,KAAOld,EAAKkd,KAC7Bvd,EAAMiB,SAASZ,EAAMmlD,GACrB1xD,EAAIqF,OAAOiU,GACXpN,EAAMkB,UAAS,GACfrN,EAAOsN,YAAYnB,IAEhBG,GAEXo4B,mBAAoB,SAAUv4B,GAAV,GAGR3I,GAIIiE,EACAmqD,EAPR5xD,EAASjO,KAAKiO,MACdA,IAAUA,EAAOpO,QAAQ+d,aACrBnM,EAAOxD,EAAOwD,KAClB2I,EAAQA,GAASnM,EAAO6J,WACxBtY,EAAMoC,GAAGqM,OAAO4P,WAAW80B,mBAAmBv4B,GAC1CA,EAAMqG,iBAAmBhP,GAA8B,IAAtB2I,EAAM+H,cACnCzM,EAAMjE,EAAK0nB,cACX0mC,EAAUnqD,EAAIw6B,eAAe,UACjCz+B,EAAK3C,aAAa+wD,EAASpuD,EAAK8mB,WAAW,IAC3Cne,EAAMsyB,eAAemzB,IAEzB5xD,EAAOsN,YAAYnB,KAG3B0lD,iBAAkB,SAAUh5C,EAAOM,GAC/B,GAAI9S,GAAY7C,CAChB,IAAIqV,EACA,MAAO5Y,GAAIkzB,sBAAsBha,GAC7B,IACA,KACA,QACEA,EAAK9S,UAIf,IAFAA,EAAa8S,EAAK9S,WAClB7C,EAAO2V,EAAK+R,cAAc1nB,KACtBvD,EAAI6uB,SAASzoB,GACb,KAAOA,EAAWA,YAAc7C,IAASvD,EAAI0uB,QAAQtoB,EAAWA,aAC5DA,EAAaA,EAAWA,UAGhC,OAAOA,IAEXqO,MAAO,SAAU/B,EAAM/gB,GAAhB,GACuB6D,GAAGugC,EAAG1L,EAmB5BzR,EAEA1M,EAKAqjB,EACA+R,EACAloB,EACA+X,EACA0gC,EAMAhV,EAEIiV,EA0BJC,EAKAC,EAEIC,EACAC,EACAC,EAzEJpyD,EAASjO,KAAKiO,MAMlB,IALAjO,KAAK2yC,qBACL9yC,EAAUF,GACNwsD,OAAO,EACP1zC,OAAO,GACR5Y,IACEA,EAAQq1D,aACT,IAAKxxD,EAAI,EAAGugC,EAAIjkC,KAAK+7D,SAASl7D,OAAQ6C,EAAIugC,EAAGvgC,IACrC1D,KAAK+7D,SAASr4D,GAAG48D,WAAW1/C,KAC5BA,EAAO5gB,KAAK+7D,SAASr4D,GAAGyoD,MAAMvrC,GA4B1C,IAxBI/gB,EAAQssD,QACRvrC,EAAOA,EAAKvZ,QAAQ,8CAA+C,MACnEuZ,EAAOA,EAAKvZ,QAAQ,0BAA2B,KAEnDuZ,EAAOA,EAAKvZ,QAAQ,kCAAmC,qBACvDuZ,EAAOA,EAAKvZ,QAAQ,QAAS,WAAWA,QAAQ,QAAS,YACrDyf,EAAQ9mB,KAAK48B,QAAQhc,GACzB3S,EAAO0L,QACHS,EAAQnM,EAAO6J,WACnBsC,EAAM2yB,iBACF3yB,EAAMqG,gBAAkBxS,EAAOnB,UAC/BsN,EAAM0yB,mBAAmB7+B,EAAOwD,MAEhCgsB,EAAS,GAAIyO,GACbsD,EAAQ/R,EAAOgS,SAASr1B,GACxBkN,EAAStnB,KAAK8/D,iBAAiBh5C,EAAO0oB,GACtCnQ,GAAS,EACT0gC,EAAaz4C,GAAUrZ,EAAOwD,OAASvD,EAAIgQ,GAAGoJ,EAAQ,MACtDznB,EAAQ4Y,OAASsnD,IAAej5C,GAAS5Y,EAAI6uB,SAASzV,MACtDlN,EAAM2C,WAAWyyB,GACjBjvB,EAAW9H,MAAM2B,EAAOkN,GAAQ,GAChC+X,GAAS,GAET0rB,EAAW/qD,KAAKw8D,eAAe57C,GAC/BmqC,EAASxjC,YAAgD,sBAAlCwjC,EAASxjC,WAAW+T,UAAmC,CAE9E,IADI0kC,KACCt8D,EAAI,EAAGugC,EAAI8mB,EAASxyB,WAAW13B,OAAQ6C,EAAIugC,EAAGvgC,IAC/Cs8D,EAAc7/D,KAAK4qD,EAASxyB,WAAW70B,GAAGkN,UAE9Cm6C,GAAW/qD,KAAKw8D,eAAewD,EAAc/oD,KAAK,WAWtD,GATAshB,EAAawyB,EAASxyB,WACtBn3B,EAAEm3B,GAAY8I,OAAO,SAASzyB,SAAS,WAAWu5B,MAAMz5B,KAAK,SAASE,SAAS,WAC/ExN,EAAEm3B,GAAYoH,KAAK,SAAUv4B,EAAOm5D,GAC5BryD,EAAI0uB,QAAQ2jC,KAASryD,EAAI2uB,cAAc0jC,IAA0B,KAAlBA,EAAI3vD,WACnD2vD,EAAIpnD,YAAYlL,EAAOnB,SAASojC,eAAe,aAGvD91B,EAAMszB,WAAWqd,GACjBzjC,EAAStnB,KAAK8/D,iBAAiBh5C,EAAO0oB,GAClCnQ,EAAQ,CACR,KAAOmQ,EAAMl7B,YAAcgT,GACvBpZ,EAAImxB,OAAOmQ,EAAMl7B,WAErBpG,GAAImxB,OAAOmQ,EAAMl7B,YAarB,GAXApG,EAAIiZ,UAAU/M,EAAM6G,yBACpBuuB,EAAMrnC,MAAMy2C,QAAU,SACtB1wC,EAAIiwB,iBAAiBlwB,EAAOnB,UAC5BoB,EAAImvB,SAASmS,GACb/R,EAAOiS,YAAYt1B,GACf6lD,EAAW7lD,EAAM6G,wBAAwB3M,YACzC8F,EAAMoG,WAAmC,SAAtBtS,EAAI1K,KAAKy8D,IAAwB7lD,EAAMoG,WAAmC,SAAtBtS,EAAI1K,KAAKy8D,MAChF7lD,EAAMuyB,cAAcvrC,EAAE6+D,GAAU3xD,QAAQ,SAAS,IACjD8L,EAAMkB,UAAS,IAEf4kD,EAAe9+D,EAAEgZ,EAAM6G,wBAAwB3M,YAAYhG,QAAQ,SACnE4xD,EAAa5iD,IAAI,GAAI,CAIrB,IAHI6iD,EAAeD,EAAa54C,SAAS8pB,WACrCgvB,EAAmBD,EAAat/D,OAAS,EACzCw/D,EAAcF,EAAa7iD,IAAI8iD,GACF,OAA1BC,EAAYjlD,YAAiD,MAA1BilD,EAAYjlD,WAA+C,KAA1BilD,EAAYjlD,YACnFglD,GAAoB,EACpBC,EAAcF,EAAa7iD,IAAI8iD,EAE/BC,KAAgBH,EAAa5iD,IAAI,IAAO4iD,EAAapiD,QAAQ,SAASjd,QACtEqN,EAAIqE,YAAYrE,EAAIoxB,gBAAgBrxB,EAAOnB,SAAU,KAAMozD,EAAa,IAGhFjyD,EAAOsN,YAAYnB,MAGvBomD,EAAU9+D,EAAM/B,QAChBC,KAAM,SAAUC,GACZG,KAAKH,QAAUA,MACfG,KAAKygE,iBAETtU,MAAO,SAAUvrC,EAAM8/C,GACnB,GAAyEh9D,GAAGugC,EAAxEl2B,EAAO/N,KAAMygE,EAAeC,GAAsB3yD,EAAK0yD,YAC3D,KAAK/8D,EAAI,EAAGugC,EAAIw8B,EAAa5/D,OAAQ6C,EAAIugC,EAAGvgC,GAAK,EAC7Ckd,EAAOA,EAAKvZ,QAAQo5D,EAAa/8D,GAAI+8D,EAAa/8D,EAAI,GAE1D,OAAOkd,MAGXo7C,EAAgBwE,EAAQ7gE,QACxBC,KAAM,SAAUC,GACZ2gE,EAAQ1gE,GAAGF,KAAKG,KAAKC,KAAMH,GAC3BG,KAAKygE,cACD,wBACA,yBAGRH,WAAY,SAAU1/C,GAClB,OAAQ5gB,KAAKH,QAAQwf,MAAQ,iBAAiB3D,KAAKkF,MAGvDq7C,EAAauE,EAAQ7gE,QACrBC,KAAM,SAAUC,GACZ2gE,EAAQ1gE,GAAGF,KAAKG,KAAKC,KAAMH,EAC3B,IAAI8gE,GAAc,GAClB3gE,MAAKygE,cACD,oDACAE,EACA,OACAA,EACA,wBACAA,IAGRL,WAAY,SAAU1/C,GAClB,MAAO,8CAA8ClF,KAAKkF,MAG9Ds7C,EAAsBsE,EAAQ7gE,QAC9BC,KAAM,SAAUC,GACZ2gE,EAAQ1gE,GAAGF,KAAKG,KAAKC,KAAMH,GAC3BG,KAAK4gE,kBACD,iBACA,GACA,mBACA,GACA,UACA,IACA,uBACA,SACA,yFACA,GACA,SACA,IAEJ5gE,KAAKygE,aAAezgE,KAAK4gE,iBAAiB/gD,QACtC,+LACA,KACA,YACA,WACA,cACA,IACA,iCACA,cACA,gCACA,GACA,sCACA,GACA,sCACA,GACA,YACA,OACA,kBACA,GACA,4BACA,GACA,iBACA,GACA,uBACA,eACA,0BACA7f,KAAK6gE,iBACL,uBACA,WACA,sBACA,GACA,kBACA,SAAUC,EAAIC,GACV,MAAOA,GAAKD,EAAK,QAI7BD,iBAAkB,SAAUp/B,EAAOu/B,EAASz8C,GAA1B,GACV08C,GAAS,yBACT53B,EAAO43B,EAAOtlD,KAAK4I,GACnB28C,EAAS38C,GAAQ8kB,GAAQA,EAAK,EAClC,OAAI23B,GACO,UACAE,EACA,4BAA8BA,EAAS,KAEvC,UAGfZ,WAAY,SAAU1/C,GAClB,MAAO,eAAelF,KAAKkF,IAAS,oBAAoBlF,KAAKkF,IAAS,mCAAmClF,KAAKkF,IAElHugD,kBAAmB,SAAUvgD,GACzB,MAAOA,GAAKvZ,QAAQ,uBAAwB,SAAU64C,EAAGnnB,GACrD,OAAKA,GAAcA,EAAWxpB,QAAQ,QAAU,EACrC,GAEJ2wC,KAGfkhB,SAAU,SAAUh7B,EAAGi7B,GAAb,GAGFC,GAFA1gD,EAAOwlB,EAAEx1B,UACTgP,EAAO1R,EAAI8xB,UAAUoG,GAErBm7B,EAAc3gD,EAAK6gB,MAAM,+EACzB+/B,EAASD,GAAeA,EAAY,GACpCE,EAAW,YAAY/lD,KAAK8lD,GAC5BE,EAAgB,SAAU9hD,GAC1B,MAAOA,GAAKvY,QAAQ,8BAA+B,IAMvD,OAJIk6D,KACAD,GAAiB,GAErB1gD,EAAOA,EAAKvZ,QAAQ,iBAAkB,IAAIA,QAAQ,UAAW,MACxDi6D,GAAkB,sCAAsC5lD,KAAKkF,IAAS0gD,GAAkB,YAAY5lD,KAAKkF,IAAS4gD,IAAWC,GAAYJ,GAEtIr6B,IAAK,KACL7+B,MAAOnI,KAAK2hE,yBAAyBD,EAAc9hD,KAGvD,6BAA6BlE,KAAKkF,IAE9BomB,IAAK,KACL7+B,MAAOnI,KAAK4hE,uBAAuBF,EAAc9hD,KAHzD,QAOJiiD,aAAc,SAAUz7B,GACpB,GAAIl/B,EAQJ,OAP2B,IAAvBk/B,EAAE7N,WAAW13B,QACbqG,EAAUk/B,EAAE7e,WAAWpM,WAAajN,EAAIwrB,UAAUG,UAAY3rB,EAAI8xB,UAAUoG,GAAKA,EAAE7e,WAAW3W,UAAUvJ,QAAQ,uBAAwB,IACxIH,EAAUlH,KAAK8hE,gBAAgB56D,IAE/BA,EAAUlH,KAAK+hE,iBAAiB37B,GAEpCl4B,EAAIqF,OAAO6yB,GACJl4B,EAAI4F,OAAOhH,SAAU,MAAQ8D,UAAW1J,KAEnD46D,gBAAiB,SAAUlhD,GAAV,GACTwlB,GAAIl4B,EAAI4F,OAAOhH,SAAU,KAAO8D,UAAWgQ,IAC3CohD,EAAY,kBAChB,OAAIA,GAAUtmD,KAAK0qB,EAAEpG,WACVhgC,KAAK+hE,iBAAiB37B,GAE1BxlB,GAEXmhD,iBAAkB,SAAUv0D,GACxB,GAAItG,GAAS1D,EAAO0K,EAAI1K,KAAKgK,EAe7B,OAdAU,GAAIqF,OAAO/F,EAAQ+Z,YACgB,GAA/B/Z,EAAQ+Z,WAAWpM,UACf,kBAAkBO,KAAKlO,EAAQ+Z,WAAWnM,YAC1ClN,EAAIqF,OAAO/F,EAAQ+Z,YAGvB,kBAAkB7L,KAAKlO,EAAQ+Z,WAAW3W,YAC1C1C,EAAIqF,OAAO/F,EAAQ+Z,YAGnBrgB,EADQ,KAAR1D,EACU,IAAMA,EAAO,IAAMgK,EAAQoD,UAAY,KAAOpN,EAAO,IAErDgK,EAAQoD,WAI1B+wD,yBAA0B,SAAUH,GAChC,MAAI,sCAAsC9lD,KAAK8lD,GACpC,KACA,KAAK9lD,KAAK8lD,GACV,SAEA,UAGfI,uBAAwB,SAAUJ,GAC9B,GAAIJ,GAAW,IAIf,OAHK,MAAM1lD,KAAK8lD,KACZJ,GAAY,SAAS1lD,KAAK8lD,GAAU,SAAW,WAAa,cAAc9lD,KAAK8lD,GAAU,QAAU,UAEhGJ,GAEXa,kBAAmB,SAAUrhD,GACzB,GAAIshD,GAAgB,uEAIpB,OAHAthD,GAAOA,EAAKvZ,QAAQ66D,EAAe,SAAUzgC,EAAOxE,EAAMklC,GACtD,MAAO3iE,GAAMiE,OAAO,uCAAwCw5B,EAAMklC,EAAO1gC,MAIjF2gC,YAAa,SAAUx0D,EAAM8jD,GACzB,MAAOxjD,GAAI4F,OAAOhH,SAAUc,GAAQzF,OAASsiD,cAAeiH,MAEhEvkD,MAAO,SAAUwE,GAAV,GACoFnO,GAAmBumD,EAAIsY,EAAYC,EAAWC,EAAYC,EAAcC,EAAU/+D,EAAG0iC,EAAGx4B,EAAMixD,EAAQ5hC,EAAMokC,EAY3LqB,EAMAtB,EAcAuB,EAhCJC,EAAgBxhE,EAAEuQ,GAAajD,KAAKR,EAAI2Y,cAAc5P,KAAK,MAAO4rD,KAAuBC,KAAgHC,GACrM,IACA,KACA,KACA,KACA,KACA,KACA,MACDC,GAAgB,CACvB,KAAKt/D,EAAI,EAAGA,EAAIk/D,EAAc/hE,OAAQ6C,IAClC0iC,EAAIw8B,EAAcl/D,GAClB29D,EAAWjgE,EAAEglC,GAAGzO,OACZ+qC,EAAYrB,EAASpkC,KACzBz5B,EAAO0K,EAAI1K,KAAK4iC,GAChB48B,IAAkB5hE,EAAEglC,GAAGtoB,QAAQ,SAASjd,OACpCmiE,IAGA5B,EAAWphE,KAAKohE,SAASh7B,EAAGi7B,GAChCzzD,EAAOwzD,GAAYA,EAASp6B,KACvBp5B,GAAQm1D,EAAiBxzD,QAAQ/L,GAAQ,EACrC4iC,EAAEx1B,UAEIm5C,IAAOyY,GACdzY,EAAG5wC,YAAYitB,GAFfl4B,EAAIqF,OAAO6yB,GAMfpkC,EAAQie,OAGZ4+C,EAASwC,EAASc,OAAShJ,WAAW/yB,EAAEj+B,MAAMohD,YAAc,GACxDoZ,EAAY/0D,EAAO80D,EAClBI,EAAOjE,KACRiE,EAAOjE,SAENwD,GAAcA,EAAa,KAC5BA,EAAaxD,EACbyD,EAAYI,EACZH,EAAanhE,EAAEuQ,GAAajD,KAAK,eAAkB4zD,EAAY,MAAO1vD,OAAO,GAC7E6vD,EAAWziE,KAAKoiE,YAAYx0D,EAAMwzD,EAASj5D,OAC3C+F,EAAIY,aAAa2zD,EAAUr8B,GAC3By8B,EAAahE,EACbiE,EAAOjE,GAAQ8D,GAAaF,GAEhCD,EAAeD,IAAen8B,EAC9BnJ,EAAO6lC,EAAOjE,GAAQ8D,IAClB9D,EAASgE,IAAe5lC,KACxBA,EAAOj9B,KAAKoiE,YAAYx0D,EAAMwzD,EAASj5D,OACvC26D,EAAOjE,GAAQ8D,GAAa1lC,EAC5B8sB,EAAG5wC,YAAY8jB,IAEnB8sB,EAAK/pD,KAAK6hE,aAAaz7B,GACvBnJ,EAAK9jB,YAAY4wC,GACbyY,EACAH,EAAaQ,KAEbA,EAAahE,KAIzBoE,iBAAkB,SAAUz1D,GAExB,IADA,GAAIurB,GAAavrB,EAAQurB,WAAYr1B,EAAIq1B,EAAWl4B,OAC7C6C,KAC4B,WAA3BwK,EAAI1K,KAAKu1B,EAAWr1B,KACpB8J,EAAQ01D,oBAAoBnqC,EAAWr1B,KAInDy/D,eAAgB,SAAUv/B,GAAV,GACRtB,GAAQsB,EAAItB,MACZN,EAAQ5gC,EAAEwiC,GAAKt1B,QAAQ,SACvBwpD,EAAW91B,EAAMqE,SAAS,WAC1B/D,GAAMzhC,OAAS,IAERi3D,EAASj3D,SAChByhC,EAAQw1B,EAASzxB,WACjByxB,EAAS,GAAGxjD,WAAW8mB,YAAY08B,EAAS,KAEhDA,EAAW12D,EAAEA,EAAE2V,IAAIurB,EAAO,SAAUG,GAChC,GAAIr4B,GAAQq4B,EAAKr4B,KACjB,OAAIA,IAAiC,IAAxBiF,SAASjF,EAAO,IAClB5K,EAAMiE,OAAO,8BAA+B2G,GAEhD,YACR6M,KAAK,KACH6gD,EAAS55C,GAAG,cACb45C,EAAW12D,EAAE,eAAeyR,OAAOilD,IAEvCA,EAAS5xB,UAAUlE,KAEvBohC,eAAgB,SAAUx/B,GACtB,GAAuBlgC,GAAnB4+B,EAAQsB,EAAItB,MAAU+gC,EAAcjiE,EAAE2V,IAAIurB,EAAO,SAAUG,GACvD,GAAI7G,GAAQx6B,EAAEqhC,GAAM4D,SAAS,KAAKA,SAAS,UAAU,EACrD,IAAIzK,GAA4B,UAAnB1tB,EAAI1K,KAAKo4B,GAClB,MAAOA,IAGnB,IAAIynC,EAAYxiE,QAAUyhC,EAAMzhC,OAAQ,CACpC,IAAK6C,EAAI,EAAGA,EAAI2/D,EAAYxiE,OAAQ6C,IAChCwK,EAAImxB,OAAOgkC,EAAY3/D,GAG3B,KADAtC,EAAEwiC,GAAKt1B,QAAQ,SAASI,KAAK,YAAYurD,MAAM,mBAAmB9xB,MAAMz5B,KAAK,SAASmE,OAAO+wB,GACxFlgC,EAAI,EAAGA,EAAI4+B,EAAMzhC,OAAQ6C,IAC1BwK,EAAI4wB,UAAUwD,EAAM5+B,GAAI,QAIpC4/D,iBAAkB,SAAUhhC,GACxB,GAAI5+B,GAAG48B,EAAG7a,EAAKgd,EAAM8gC,CACrB,KAAK7/D,EAAI,EAAGA,EAAI4+B,EAAMzhC,OAAQ6C,IAI1B,IAHA1D,KAAKijE,iBAAiB3gC,EAAM5+B,IAC5B++B,EAAOrhC,EAAEkhC,EAAM5+B,IACf6/D,EAAa9gC,EAAK4D,SAAS,KACtB/F,EAAI,EAAG7a,EAAM89C,EAAW1iE,OAAQy/B,EAAI7a,EAAK6a,IACtCA,EAAI7a,EAAM,GACVvX,EAAIqE,YAAYrE,EAAI4F,OAAOhH,SAAU,MAAOy2D,EAAWjjC,IAE3DpyB,EAAImxB,OAAOkkC,EAAWjjC,KAIlCkjC,oBAAqB,SAAUC,GAC3B,IAAK,GAAI//D,GAAI,EAAGA,EAAI+/D,EAAM5iE,OAAQ6C,IAC1B,yBAAyBgY,KAAK+nD,EAAM//D,GAAGyE,MAAM+2B,UAC7ChxB,EAAImxB,OAAOokC,EAAM//D,KAI7BggE,gBAAiB,SAAUC,GACvB,GAAIjgE,GAAG48B,EAAG/H,EAAYqrC,EAAahgC,CACnC,KAAKlgC,EAAI,EAAGA,EAAIigE,EAAI9iE,OAAQ6C,IAGxB,IAFAkgC,EAAM+/B,EAAIjgE,GACV60B,EAAaqL,EAAIrL,WACZ+H,EAAI,EAAGA,EAAI/H,EAAW13B,OAAQy/B,IAC/BsjC,EAAcrrC,EAAW+H,GACrBsjC,EAAYzoD,WAAajN,EAAIwrB,UAAUG,WACvC+J,EAAIxI,YAAYwoC,IAKhCr2D,OAAQ,SAAUoE,GACd,GAAwD3F,GAAM0tD,EAAUmK,EAAYngE,EAAG48B,EAAnF/yB,EAASnM,EAAEuQ,GAAajD,KAAK,SAAUX,EAAO/N,IAClD,KAAK0D,EAAI,EAAGA,EAAI6J,EAAO1M,OAAQ6C,IAAK,CAGhC,IAFAsI,EAAOuB,EAAO7J,GAAGsI,KACjB63D,EAAanK,EAAW1tD,EAAK,GACxBs0B,EAAI,EAAGA,EAAIt0B,EAAKnL,OAAQy/B,IACrBt0B,EAAKs0B,GAAGgC,MAAMzhC,OAASgjE,EAAWvhC,MAAMzhC,SACxCgjE,EAAa73D,EAAKs0B,GAG1BvyB,GAAKo1D,eAAeU,GACpB91D,EAAKq1D,eAAe1J,GACpB3rD,EAAKk1D,iBAAiB11D,EAAO7J,IAC7BqK,EAAKu1D,iBAAiB/1D,EAAOqyC,GAAGl8C,GAAGgL,KAAK,UACxCX,EAAKy1D,oBAAoBj2D,EAAOqyC,GAAGl8C,GAAGgL,KAAK,SAC3CX,EAAK21D,gBAAgBn2D,EAAOqyC,GAAGl8C,GAAGgL,KAAK,SAG/C21B,QAAS,SAAU1yB,GAAV,GAEIjO,GADLogE,EAAS1iE,EAAEuQ,GAAajD,KAAK,aACjC,KAAShL,EAAI,EAAGA,EAAIogE,EAAOjjE,OAAQ6C,IAC/BwK,EAAI4wB,UAAUglC,EAAOpgE,GAAI,OAGjCqgE,iBAAkB,SAAUpyD,GACxBvQ,EAAEuQ,GAAajD,KAAK,KAAKixB,KAAK,WAC1Bv+B,EAAEpB,MAAMqV,KACJtN,SAAU,GACV8gC,WAAY,KAEX7oC,KAAK2W,aAAa,UAAa3W,KAAKmI,MAAM+2B,SAC3Cl/B,KAAKu/B,gBAAgB,YAIjC4sB,MAAO,SAAUvrC,GAAV,GACcjP,GAAb5D,EAAO/N,KACPgkE,EAAUhkE,KAAKH,OAmBnB,OAlBImkE,GAAQ3kD,MACRuB,EAAO4/C,EAAQ1gE,GAAGqsD,MAAMpsD,KAAKgO,EAAM6S,EAAM5gB,KAAK4gE,kBAC9ChgD,EAAO7S,EAAKozD,kBAAkBvgD,KAE9BA,EAAOojD,EAAQ7kD,eAAiBnf,KAAKiiE,kBAAkBrhD,GAAQA,EAC/DA,EAAO4/C,EAAQ1gE,GAAGqsD,MAAMpsD,KAAKgO,EAAM6S,GACnCA,EAAO7S,EAAKozD,kBAAkBvgD,GAC9BjP,EAAczD,EAAI4F,OAAOhH,SAAU;AAAS8D,UAAWgQ,IACvD7S,EAAKs2B,QAAQ1yB,GACTqyD,EAAQ7kD,gBACRpR,EAAKZ,MAAMwE,GAEf5D,EAAKR,OAAOoE,GACRqyD,EAAQ9kD,iBACRnR,EAAKg2D,iBAAiBpyD,GAE1BiP,EAAOjP,EAAYf,UAAUvJ,QAAQ,kCAAmC,OAErEuZ,KAGXu7C,EAAsBqE,EAAQ7gE,QAC9BC,KAAM,SAAUC,GACZ2gE,EAAQ1gE,GAAGF,KAAKG,KAAKC,KAAMH,GAC3BG,KAAKygE,cACD,qCACA,GACA,oCACA,MACA,qBACA,OAGRH,WAAY,SAAU1/C,GAClB,MAAO,0DAA0DlF,KAAKkF,MAG1EqjD,EAAazD,EAAQ7gE,QACrBwsD,MAAO,SAAUvrC,GACb,GAAItG,GAAYpM,EAAI4F,OAAOhH,SAAU,OAAS8D,UAAWgQ,GAEzD,OADAtG,GAAYta,KAAKkkE,SAAS5pD,GACnBA,EAAU1J,WAErBszD,SAAU,SAAU5pD,GAChB,MAAOA,MAGX8hD,EAAkB6H,EAAWtkE,QAC7BukE,SAAU,SAAU5pD,GAChB,GAAI1W,GAAO5D,KAAKmkE,aAIhB,OAHA/iE,GAAEkZ,GAAW5L,KAAK9K,GAAM+7B,KAAK,WACzBzxB,EAAImxB,OAAOr/B,QAERsa,GAEX6pD,YAAa,WACT,GAAInkE,KAAKH,QAAQyf,KACb,MAAO,QAGfghD,WAAY,WACR,MAAOtgE,MAAKH,QAAQyf,QAGxB+8C,EAAkB4H,EAAWtkE,QAC7BukE,SAAU,SAAU5pD,GAAV,GACFye,GAAa/4B,KAAKokE,cAClB/qC,EAAQj4B,EAAEkZ,GAAW5L,KAAK,IAAMqqB,EAAW9hB,KAAK,OAAS,IAE7D,OADAoiB,GAAM+I,WAAWrJ,EAAW9hB,KAAK,MAC1BqD,GAEX8pD,YAAa,WACT,MAAIpkE,MAAKH,QAAQwV,KAET,QACA,aAKZirD,WAAY,WACR,MAAOtgE,MAAKH,QAAQwV,OAGxBgvD,EAAgB,WAChBrkE,KAAK4f,KAAO,GACZ5f,KAAK6vC,IAAM,SAAUjwB,GACjB5f,KAAK4f,MAAQA,IAGjB0kD,EAAgB5iE,EAAM/B,QACtBC,KAAM,SAAU2kE,GACZvkE,KAAKukE,WAAaA,IACd3kD,KAAM,IACN4kD,KAAM,SAEVxkE,KAAKykE,SACLzkE,KAAK0kE,mBACL1kE,KAAK2kE,aAETC,WAAY,SAAUhlD,GACI,IAAlBA,EAAKzE,WACLyE,EAAOA,EAAKxE,WAEhBpb,KAAK6kE,cAAch1B,IAAIjwB,IAE3BklD,sBAAuB,SAAUllD,GAC7B5f,KAAK0kE,gBAAgBvkE,KAAKyf,IAE9BmlD,qBAAsB,WACd/kE,KAAK0kE,gBAAgB7jE,SACrBb,KAAK4kE,WAAW5kE,KAAK0kE,gBAAgBztD,KAAK,MAC1CjX,KAAK0kE,qBAGbM,QAAS,WACLhlE,KAAK+kE,uBACL/kE,KAAK2kE,aAET/jD,KAAM,WAAA,GAKOld,GAAOuhE,EAAmBC,EAC3BV,EACKlkC,EAAO6kC,EAAkBC,EAC1BxlD,EAPR2kD,EAAavkE,KAAKukE,WAClBroC,EAAS,GACTuoC,EAAQzkE,KAAKykE,KAEjB,KADAzkE,KAAK+kE,uBACIrhE,EAAI,EAAGuhE,EAAKR,EAAM5jE,OAAQqkE,EAAMD,EAAK,EAAGvhE,EAAIuhE,EAAIvhE,IAAK,CAE1D,IADI8gE,EAAOC,EAAM/gE,GACR48B,EAAI,EAAG6kC,EAAKX,EAAK3jE,OAAQukE,EAAMD,EAAK,EAAG7kC,EAAI6kC,EAAI7kC,IAChD1gB,EAAO4kD,EAAKlkC,GAAG1gB,KACnBsc,GAAUtc,EACN0gB,IAAM8kC,IACNlpC,GAAUqoC,EAAW3kD,KAGzBlc,KAAMwhE,IACNhpC,GAAUqoC,EAAWC,MAG7B,MAAOtoC,IAEXyoC,UAAW,WACP3kE,KAAK6kE,cAAgB,GAAIR,GACzBrkE,KAAKwkE,QACLxkE,KAAKwkE,KAAKrkE,KAAKH,KAAK6kE,eACpB7kE,KAAKykE,MAAMtkE,KAAKH,KAAKwkE,SAGzBa,EAAgB3jE,EAAM/B,QACtBC,KAAM,SAAUuuC,GACZnuC,KAAKmuC,SAAWA,GAEpBQ,UAAW,SAAUvnB,GAAV,GAIHk+C,GACA1pC,CAJCxU,KAGDk+C,EAActlE,KAAKmuC,SAAS/mB,GAC5BwU,EAAQxU,EAAKG,YACZ+9C,GAAe1pC,GAChB57B,KAAK2uC,UAAU/S,GAEnB57B,KAAK2uC,UAAUvnB,EAAKK,iBAGxB60C,EAAqBkE,EAAQ7gE,QAC7BC,KAAM,SAAUC,GACZ2gE,EAAQ1gE,GAAGF,KAAKG,KAAKC,KAAMH,GAC3BG,KAAKulE,SAAU,EACfvlE,KAAKwlE,WAAa,GAAIH,GAAcjkE,EAAEa,MAAMjC,KAAKylE,UAAWzlE,QAEhEmsD,MAAO,SAAUvrC,GACb,GAAItG,GAAYpM,EAAI4F,OAAOhH,SAAU,OAAS8D,UAAWgQ,GACzD,OAAO5gB,MAAKkkE,SAAS5pD,IAEzB4pD,SAAU,SAAU5pD,GAKhB,MAJAta,MAAKukE,WAAavkE,KAAK0lE,uBACvB1lE,KAAK2lE,UAAY,GAAIrB,GAActkE,KAAKukE,YACxCvkE,KAAKwlE,WAAW72B,UAAUr0B,EAAUiN,YACpCvnB,KAAKulE,SAAU,EACRvlE,KAAK2lE,UAAU/kD,QAE1B6kD,UAAW,SAAUr+C,GACjB,GAAIlZ,EAAIwpB,WAAWtQ,GAAO,CACtB,GAAIlZ,EAAIouB,aAAalV,GACjB,MAEJpnB,MAAK2lE,UAAUf,WAAWx9C,EAAKhM,UAAU/T,QAAQ,KAAMrH,KAAKukE,WAAWC,OACvExkE,KAAKulE,SAAU,MACZ,CAAA,GAAIr3D,EAAI0uB,QAAQxV,IAASpnB,KAAKulE,QAAS,CAC1C,GAAI9iB,GAASziD,KAAK05C,QAAQxrC,EAAI1K,KAAK4jB,KAAUpnB,KAAK05C,QAAQ5yB,KAC1D,OAAO27B,GAAOziD,KAAMonB,GACblZ,EAAI8uB,KAAK5V,IAChBpnB,KAAK2lE,UAAUf,WAAW5kE,KAAKukE,WAAWC,QAGlDlE,WAAY,WACR,GAAIliD,GAAIpe,KAAKH,OACb,OAAOue,GAAEY,KAAOZ,EAAEa,cAEtBymD,qBAAsB,WAClB,MAAI1lE,MAAKH,QAAQmf,KAETY,KAAM,IACN4kD,KAAM,MAIN5kD,KAAM,IACN4kD,KAAM,UAIlB9qB,SACIoR,GAAI1pD,EAAEuiB,KACN6iB,GAAIplC,EAAEuiB,KACNqe,MAAO5gC,EAAEuiB,KACTmhB,MAAO1jC,EAAEuiB,KACTiiD,MAAOxkE,EAAEuiB,KACT+zC,GAAI,SAAUmO,EAASz+C,GAAnB,GACI0+C,GAAY,GAAIxJ,IAAqBt9C,KAAK,IAC1C+mD,EAAWD,EAAU5B,SAAS98C,EAElC,OADAy+C,GAAQF,UAAUb,sBAAsBiB,IACjC,GAEXj/C,MAAO,SAAU++C,GACbA,EAAQF,UAAUX,cAI1BzI,EAAgBiE,EAAQ7gE,QACxBwsD,MAAO,SAAUvrC,GACb,MAAO5gB,MAAKH,QAAQ6e,OAAOkC,IAE/B0/C,WAAY,WACR,MAAsC,kBAAxBtgE,MAAKH,QAAQ6e,SAGnC/e,GAAOqO,GACHkC,UAAWA,EACXswD,QAASA,EACTxE,cAAeA,EACfC,WAAYA,EACZC,oBAAqBA,EACrBC,oBAAqBA,EACrBC,gBAAiBA,EACjBC,gBAAiBA,EACjBC,mBAAoBA,EACpBgI,cAAeA,EACf/H,cAAeA,KAErB96D,OAAOjC,MAAM8lB,SACC,kBAAV/lB,SAAwBA,OAAOyB,IAAMzB,OAAS,SAAU0B,EAAIC,EAAIC,IACrEA,GAAMD,OAEV,SAAU5B,EAAGC,QACVA,OAAO,2BAA4B,kBAAmBD,IACxD,YACG,SAAU8B,GAIP,QAASksD,GAASlmC,EAAMhN,GACpB,MAAOA,GAAMqG,iBAAmB2G,GAAQhN,EAAM8H,eAAiBkF,GAA8B,IAAtBhN,EAAM+H,aAAqB/H,EAAMgI,WAAagF,EAAKmR,WAAW13B,OAEzI,QAASmlE,GAAW5+C,EAAM5M,EAAWmkB,GAEjC,IADA,GAAInC,GAAUpV,EAAOA,EAAK5M,GAAa,KAChCgiB,IAAYmC,EAAUnC,IACzBA,EAAUA,EAAQhiB,EAEtB,OAAOgiB,GAZd,GACOh9B,GAAQiC,OAAOjC,MAAOkC,EAAQlC,EAAMkC,MAAOsM,EAAWxO,EAAMoC,GAAGqM,OAAQsS,EAAavS,EAASuS,WAAYrS,EAAMF,EAASG,IAAK0J,EAAe7J,EAAS6J,aAAcq0B,EAASl+B,EAASk+B,OAAQlqC,EAAUxC,EAAMsC,QAAQE,QAAS6jC,EAAU,oCAAuClmC,EAASyB,EAAEzB,OAC1R+5B,EAAYxrB,EAAIwrB,UAChBusC,EAAmB,kBAWnBC,EAAa,gBACbC,EAAqB,6BACrBC,EAAgBD,EAAqB,IAAMD,EAC3CG,EAAU,SAAUjsD,GACpB,OAAQA,EAAMoG,WAAapf,EAAEgZ,EAAM6G,yBAAyB/C,GAAGioD,IAE/DG,EAAqB5kE,EAAM/B,QAC3B4T,OAAQ,SAAU6G,GAAV,GAIAif,GAGA3jB,EACAjD,EACA01B,EACAo+B,EACAC,EACAC,EAXA14D,EAAO/N,KACPy9B,EAAS,GAAIyO,EACjBzO,GAAOoS,IAAIz1B,GAAO,GACdif,EAAQ9Y,EAAWixB,OAAOp3B,EAAO,SAAUgN,GAC3C,MAAOhmB,GAAEgmB,GAAMlJ,GAAGkoD,KAElB1wD,EAAM6K,EAAWgsB,kBAAkBnyB,GACnC3H,EAAQgrB,EAAOhrB,MACf01B,EAAM1K,EAAO0K,IACbo+B,EAAaL,EAAWztD,MAAM,KAC9B+tD,EAAYt4D,EAAIgrB,aAAazmB,EAAO8zD,GACpCE,EAAUv4D,EAAIgrB,aAAaiP,EAAKo+B,GACpCx4D,EAAK24D,eAAej0D,EAAO+zD,GAAW,GACtCz4D,EAAK24D,eAAev+B,EAAKs+B,GAAS,GAClCrlE,EAAEi4B,GAAOsG,KAAK,SAAUj8B,EAAG0jB,GACvBA,EAAOhmB,EAAEgmB,IACRA,EAAKlJ,GAAGgoD,GAAc9+C,EAAOA,EAAK1Y,KAAKw3D,IAAavmC,KAAK,SAAUW,EAAGmC,GACnEA,EAAK7xB,UAAY,eAGrB41D,IAAc/zD,EAAMglB,iBACpBvpB,EAAIY,aAAa4G,EAAIw6B,eAAe,UAAWz9B,GAE/Cg0D,IAAYt+B,EAAI1gB,aAChBvZ,EAAIqE,YAAYmD,EAAIw6B,eAAe,UAAW/H,GAE9Cq+B,EACApsD,EAAMsyB,eAAej6B,GACd4mB,EAAM,KACbmtC,EAAYplE,EAAEi4B,EAAM,IACpBmtC,EAAYA,EAAUtoD,GAAGgoD,GAAcM,EAAYA,EAAU93D,KAAKw3D,GAAY7lC,QAC1EmmC,EAAU3lE,QACVuZ,EAAMiB,SAASmrD,EAAUlpD,IAAI,GAAI,IAGzClD,EAAMkB,UAAS,GACfpN,EAAIqF,OAAOd,GACXvE,EAAIqF,OAAO40B,IAEfu+B,eAAgB,SAAUj0D,EAAOmrB,EAAK4W,GAClC,GAAI5W,EAAK,CACL,GAA4DnjB,GAAxD+hB,EAAUgY,EAAW,cAAgB,kBAAyBmyB,EAAU,SAAUv/C,GAC9E,KAAOA,IAASA,EAAKoV,IACjBpV,EAAOA,EAAK9S,UAEhB,OAAO8S,IAAQhmB,EAAEmc,SAASqgB,EAAKxW,GAAQA,EAAKoV,GAAW,KAG/D,KADA/pB,EAAQk0D,EAAQl0D,GACTA,GACHgI,EAAOksD,EAAQl0D,GACfvE,EAAIqF,OAAOd,GACXA,EAAQgI,MAKpB3K,EAAgBpO,EAAM/B,QACtBC,KAAM,SAAUqO,GACZjO,KAAKiO,OAASA,GAElBwL,QAAS,SAAUzI,GAAV,GAQGoJ,GACA3I,EAGIm1D,EAQAC,EAnBR94D,EAAO/N,KAAMiO,EAASF,EAAKE,OAAQ0B,EAAW1B,EAAO0B,SAAUqkC,EAAcrkC,EAASqkC,YAAYhjC,GAAI81D,EAAMnnE,EAAOyB,EAAE2lE,QAAS/1D,EAElI,OADAjD,GAAKE,OAAOvN,QAAQ,UAAWomE,GAC3BA,EAAIE,sBACJh2D,EAAEgK,kBACK,KAEN8rD,EAAIE,uBAAwBhzB,GAAgBrkC,EAASkC,wBAClDuI,EAAQnM,EAAO6J,WACfrG,EAAOxD,EAAOwD,KAClB1D,EAAK4mC,kBAAoB,GAAI98B,GAAauC,EAAO3I,GAC7C40D,EAAQjsD,KACJwsD,EAAqB,GAAIN,GAAmBr4D,GAChD24D,EAAmBrzD,OAAO6G,GAC1BnM,EAAOsN,YAAYnB,IAEnBpY,EAAQq8D,SAAWjkD,EAAMoG,WAAa8sC,EAAS77C,EAAM2I,KACrD3I,EAAKb,UAAY,IAEjB3C,EAAO2P,YAAc5P,EAAS6P,WAAWi1B,kBAAkB14B,KACvDysD,EAAmB,GAAI74D,GAAS6B,iBAAiB5B,GACrD44D,EAAiBI,gBAAgB7sD,IAErCzK,EAASu3D,YAAY,WACjBn5D,EAAKo5D,iBACLp5D,EAAK8mC,gBAAkB7mC,EAASiK,cAAchK,EAAQF,EAAK4mC,sBAExD,IAIf54B,MAAO,SAAU/K,GACb,GAAIrB,GAAW3P,KAAKiO,OAAO0B,QAE3B,OADA3P,MAAKiO,OAAOvN,QAAQ,QAASsQ,KACzBrB,EAASkC,uBACTlC,EAASmC,aACF,IAIfq1D,eAAgB,WACZ,GAAI//C,GAAOpnB,KAAKiO,OAAO6J,WAAWmJ,uBAC7B/S,GAAI4tB,UAAU1U,KACO,IAAlBA,EAAKjM,WACLiM,EAAOA,EAAK9S,YAEZpG,EAAImtB,cAAcjU,KAClBA,EAAKggD,YAAcl5D,EAAIgtB,SAAS9T,EAAKggD,aACrCl5D,EAAImxB,OAAOjY,QAKvBvX,EAAmBnO,EAAM/B,QACzBC,KAAM,SAAUqO,GACZjO,KAAKiO,OAASA,GAElBo5D,UAAW,SAAU/sD,GACjB,GAAIk1B,GAAQthC,EAAI4F,OAAO9T,KAAKiO,OAAOnB,SAAU,IAO7C,QANKtN,EAAMsC,QAAQE,QAAQslE,QAAUhtD,EAAUiN,YAAcjN,EAAUiN,WAAWpM,WAAaue,EAAUC,eACrGrf,EAAYA,EAAUiN,YAE1BrZ,EAAIkwB,SAAS9jB,EAAWk1B,EAAO,GAC/BthC,EAAIitB,aAAaqU,EAAM/X,iBACvBvpB,EAAIitB,aAAaqU,EAAM/nB,aAChB+nB,GAEX+3B,cAAe,SAAU/3B,GACrB,GAAIp1B,GAAQpa,KAAKiO,OAAO6O,eACnB0yB,EAAM/nB,aAAevZ,EAAIwpB,WAAW8X,EAAM/X,iBAC3Crd,EAAMiB,SAASm0B,EAAM/X,gBAAiB+X,EAAM/X,gBAAgB52B,QAE5DuZ,EAAMuyB,cAAc6C,GAExBp1B,EAAMkB,UAAS,GACftb,KAAKiO,OAAOsN,YAAYnB,GACxBlM,EAAIqF,OAAOi8B,IAEfg4B,cAAe,SAAUptD,GAAV,GAIHK,GAIAgtD,EAEAj4B,EATJpoB,EAAOhN,EAAM8H,aACb4E,EAAQ5Y,EAAIkzB,sBAAsBha,EAAMlZ,EAAI2Y,cAChD,UAAIC,IAAS9Y,EAASuS,WAAWsxB,QAAQz3B,EAAO0M,MACxCrM,EAAOvM,EAAIuM,KAAKqM,MACfrM,GAA0B,KAAlBvM,EAAI1K,KAAKiX,MAGlBgtD,EAAmBv5D,EAAI6tB,sBAAsBthB,GAAM,GACvDgtD,EAAmBA,GAAoBv5D,EAAI6uB,SAAS0qC,GAAoBA,EAAmBhtD,EACvF+0B,EAAQxvC,KAAKqnE,UAAUI,GAC3BznE,KAAK0nE,OAAO5gD,EAAOrM,GACnBza,KAAKunE,cAAc/3B,IACZ,KAIfm4B,gBAAiB,SAAUvtD,GAKvB,IALa,GACTG,GAASH,EAAM+H,YACfiF,EAAOhN,EAAMqG,eACbb,EAAOwH,EAAKhM,UACZmlB,EAAQ,EACLhmB,EAASgmB,GAAS,GAAiC,UAA5B3gB,EAAKrF,EAASgmB,EAAQ,IAChDA,GAEAA,GAAQ,IACRnZ,EAAKyR,WAAWte,EAASgmB,EAAOA,GAChCnmB,EAAMiB,SAAS+L,EAAM/T,KAAKF,IAAI,EAAGoH,EAASgmB,IAC1CnmB,EAAMkB,UAAS,GACftb,KAAKiO,OAAOsN,YAAYnB,KAGhCwtD,iBAAkB,SAAUxtD,GAAV,GAKVqd,GAkBAowC,EACAC,EACAC,EAgBIN,EAEAj4B,EAMA5T,EAKAqZ,EAWJ+yB,EACAliB,EACA7L,EACAguB,EAUAC,EAEI9nE,EA/EJgnB,EAAOhN,EAAMqG,eACbspC,EAAK77C,EAAIkzB,sBAAsBha,GAAO,OACtCN,EAAQ5Y,EAAIkzB,sBAAsBha,EAAM,sBAAsB3O,MAAM,MACpExK,EAASjO,KAAKiO,MAElB,IAAIC,EAAIwpB,WAAWtQ,GAAO,CACtB,GAAIhN,EAAMoG,WAAa,gBAAgB9E,KAAK0L,EAAKhM,WAI7C,MAHAhB,GAAMiB,SAAS+L,EAAM,GACrBhN,EAAMqyB,OAAOrlB,EAAMA,EAAKvmB,QACxBoN,EAAOsN,YAAYnB,IACZ,CAEXpa,MAAK2nE,gBAAgBvtD,GAiBzB,MAfAqd,GAAkBuuC,EAAWl/C,EAAOm/C,EAAkB,SAAUzpC,GAC5D,OAAQtuB,EAAIquB,gBAAgBC,KAE5BpiB,EAAMoG,WAAapG,EAAM+H,cAAgB/H,EAAMgI,WAAahI,EAAM+H,YAAc,IAChF/H,EAAM+H,YAAc,EACpB/H,EAAMgI,UAAY,EAClBnU,EAAOsN,YAAYnB,IAEnBytD,EAAY9d,GAAM/7C,EAASuS,WAAWqxB,UAAUx3B,EAAO2vC,GACvD+d,EAAU/d,GAAM3oD,EAAE2oD,GAAI3iD,QACtB2gE,EAAoBF,GAAaC,EAAU,EAC3CC,IACAjhD,EAAQijC,EACRtyB,EAAkBvpB,EAAIsZ,KAAKuiC,IAE3BjjC,GAAS2Q,GAAmBvpB,EAAIgQ,GAAGuZ,EAAiB,UAAYzpB,EAASuS,WAAWqxB,UAAUx3B,EAAO0M,IAC7E,KAApBA,EAAMkZ,YACNlZ,EAAMlW,UAAY,WAEf,GAEP5C,EAASuS,WAAWqxB,UAAUx3B,EAAO0M,IAAUzX,SAASyX,EAAM3e,MAAMohD,WAAY,IAAM,GACtFt7C,EAAO0N,KAAK,YACL,GAEPmL,GAAS2Q,GAAmBzpB,EAASuS,WAAWqxB,UAAUx3B,EAAO0M,IAAUihD,GACvEN,EAAmBv5D,EAAI6tB,sBAAsBjV,GAAO,GACxD2gD,EAAmBA,GAAoBv5D,EAAI6uB,SAAS0qC,GAAoBA,EAAmB3gD,EACvF0oB,EAAQxvC,KAAKqnE,UAAUI,GAC3BznE,KAAK0nE,OAAOjwC,EAAiB3Q,GAC7B9mB,KAAKunE,cAAc/3B,IACZ,GAEPq4B,GAAyB,IAAZC,GACTlsC,EAAQmuB,EAAGxiC,WACVqU,IACDmuB,EAAGn5C,UAAY5C,EAASzM,oBACxBq6B,EAAQmuB,EAAGxiC,YAEX0tB,EAAY,GAAIjnC,GAASm7C,cAAcj7C,EAAI1K,KAAKumD,EAAGz1C,YAAa,KACpE8F,EAAM0yB,mBAAmBid,GACzB9U,EAAUM,OAAOn7B,GACblM,EAAImtB,cAAcO,GAClBxhB,EAAMsyB,eAAe9Q,GAErBxhB,EAAMiB,SAASugB,EAAO,GAE1B3tB,EAAOsN,YAAYnB,IACZ,IAEP4tD,EAAiB5gD,EAAKmR,WAAWne,EAAM+H,YAAc,GACrD2jC,EAAY1rC,EACZ6/B,EAAS+tB,GAAkB95D,EAAIkzB,sBAAsB4mC,GAAiB,MACtEC,EAAejC,EAAWgC,GAAkB5gD,EAAM6+C,EAAkB,SAAUzpC,GAC9E,OAAQtuB,EAAIwpB,WAAW8E,KAAatuB,EAAI+sB,MAAMuB,IAAYA,EAAQ37B,OAAS,KAE3Eo5C,IAAiC,IAAtB7/B,EAAM+H,aAAqB6lD,IAAmB95D,EAAIgQ,GAAG+pD,EAAc,QAC9EhuB,EAASA,GAAUguB,EACnBniB,EAAY73C,EAAO6O,cACnBgpC,EAAUzqC,SAAS4+B,EAAQA,EAAO1hB,WAAW13B,QAC7CilD,EAAUxqC,UAAS,IAEvB2+B,EAASA,GAAU/rC,EAAIkzB,sBAAsB4mC,GAAkBliB,EAAUrlC,gBAAiB,MACtFynD,EAAcjuB,GAAUjsC,EAASuS,WAAWsxB,QAAQiU,EAAW7L,GAC/DiuB,IACI9nE,EAAU,GAAI4N,GAASg3C,eACvB5qC,MAAO0rC,EACPr0C,KAAMxD,EAAOwD,KACbmM,aAAc3P,EAAO2P,aAEzB3P,EAAOsL,YAAYnZ,GACnB6N,EAAO+D,qBAEJ,IAEXm2D,iBAAkB,SAAU/tD,GAAV,GAKVguD,GAEIxB,EAKJnpC,EAWAhrB,EACA01B,EAvBAmgB,EAAWluC,EAAM6G,wBACjB+gB,EAAQ9zB,EAAII,QAAQg6C,EAAU,SAC9B6K,EAAwBnlD,EAASzM,oBACjC0M,EAASjO,KAAKiO,MAElB,OAAIo4D,GAAQjsD,IACJwsD,EAAqB,GAAIN,GAAmBr4D,GAChD24D,EAAmBrzD,OAAO6G,GAC1BnM,EAAOsN,YAAYnB,IACZ,IAEPqjB,EAAS,GAAIyO,GACjBzO,EAAOoS,IAAIz1B,GAAO,GACdA,EAAM6G,0BAA4BhT,EAAOwD,MACzCzR,KAAKqoE,sBAAsB5qC,EAAQrjB,GAEnCnM,EAAO2P,YACP5d,KAAK2oD,kBAAkBlrB,GAE3Bz9B,KAAKsoE,6BAA6B7qC,EAAQrjB,GAC1CA,EAAMuyB,cAAclP,EAAOhrB,OAC3B2H,EAAMwyB,aAAanP,EAAO0K,KACtB11B,EAAQ2H,EAAMqG,eACd0nB,EAAM/tB,EAAM8H,aAChB9H,EAAM2yB,iBACkC,OAApC5E,EAAIhqB,QAAQoqD,qBAAgCr6D,EAAI4tB,UAAUqM,KAC1D/tB,EAAM2C,WAAWorB,GACjB/tB,EAAM2yB,kBAEN/K,GAA6B,KAApB5gC,EAAE4gC,GAAOpiB,SAClBxF,EAAM2C,WAAWilB,GACjB5nB,EAAM2yB,kBAEVub,EAAWluC,EAAM6G,wBACU,MAAvB/S,EAAI1K,KAAK8kD,IAA4C,KAAvBA,EAAS13C,YACvC03C,EAAS13C,UAAYuiD,EACrB/4C,EAAMiB,SAASitC,EAAU,IAE7BtoD,KAAKwoE,MAAM/1D,EAAO01B,GAClBj6B,EAAIqE,YAAYtE,EAAOnB,SAASojC,eAAe,UAAWzS,EAAOhrB,OACjEgrB,EAAOlqB,OAAO6G,GACd3H,EAAQ2H,EAAMqG,eACS,MAAnBvS,EAAI1K,KAAKiP,KACTA,EAAQA,EAAM8lB,WAAWllB,KAAKF,IAAI,EAAGiH,EAAM+H,YAAc,IACzD/H,EAAMiB,SAAS5I,EAAOvE,EAAIoqB,cAAc7lB,KAE5C2H,EAAMkB,UAAS,GACfrN,EAAOsN,YAAYnB,GACnBguD,EAAsB31D,EAAMqH,eAAiBrH,EAAM6B,WAC/CpG,EAAIwpB,WAAWjlB,KAAWvE,EAAI4tB,UAAUssC,IACxCpoE,KAAK2nE,gBAAgBvtD,IAElB,IAEXuuC,kBAAmB,SAAUlrB,GAAV,GACXuT,GAAkBhjC,EAAS6P,WAAWmzB,gBACtCy3B,EAAiBz3B,EAAgBvT,EAAOhrB,OACxCi2D,EAAe13B,EAAgBvT,EAAOhrB,MACtCg2D,IACAv6D,EAAIY,aAAa2uB,EAAOhrB,MAAOg2D,GAE/BC,GACAx6D,EAAIqE,YAAYkrB,EAAO0K,IAAKugC,GAE5BD,GACAv6D,EAAIqF,OAAOk1D,GAEXC,GAAgBA,EAAap0D,YAC7BpG,EAAIqF,OAAOm1D,IAGnBL,sBAAuB,SAAU5qC,EAAQrjB,GACrC,GAAIisB,GAAWjsB,EAAM6G,wBAAwBolB,SAAUqK,EAAcrK,EAAS,GAAIsK,EAAYtK,EAASA,EAASxlC,OAAS,EACzHb,MAAK2oE,YAAYlrC,EAAQrjB,EAAOs2B,EAAaC,IAEjD23B,6BAA8B,SAAU7qC,EAAQrjB,GAC5C,GAAI3H,GAAQgrB,EAAOhrB,MAAOi+B,EAActvC,EAAEqR,GAAOnE,QAAQ,KAAKgP,IAAI,GAAI6qB,EAAM1K,EAAO0K,IAAKwI,EAAYvvC,EAAE+mC,GAAK75B,QAAQ,KAAKgP,IAAI,EAC5Htd,MAAK2oE,YAAYlrC,EAAQrjB,EAAOs2B,EAAaC,IAEjDg4B,YAAa,SAAUlrC,EAAQrjB,EAAOs2B,EAAaC,GAC/C,GAAIl+B,GAAQgrB,EAAOhrB,MAAO01B,EAAM1K,EAAO0K,GACnCuI,IAAenwB,EAAWqxB,UAAUx3B,EAAOs2B,IAC3CxiC,EAAIY,aAAa2D,EAAOi+B,GAExBC,GAAapwB,EAAWsxB,QAAQz3B,EAAOu2B,IACvCziC,EAAIqE,YAAY41B,EAAKwI,IAG7Bi4B,MAAO,SAAUxhD,GACb,KAAOA,GAA0B,QAAlBlZ,EAAI1K,KAAK4jB,IAAmBA,EAAK9S,YAA2C,QAA7BpG,EAAI1K,KAAK4jB,EAAK9S,aACxE8S,EAAOA,EAAK9S,UAEhB,OAAO8S,IAEXohD,MAAO,SAAU/1D,EAAO01B,GACpB11B,EAAQzS,KAAK4oE,MAAMn2D,GACnB01B,EAAMnoC,KAAK4oE,MAAMzgC,GACb11B,GAAS01B,GAAOj6B,EAAIgQ,GAAGiqB,EAAK,MAC5BnoC,KAAK0nE,OAAOj1D,EAAO01B,IAG3Bu/B,OAAQ,SAAUmB,EAAM/yD,GAEpB,IADA5H,EAAI2zB,oBAAoBgnC,GACjBA,GAAQ/yD,EAAIyR,YACM,GAAjBshD,EAAK1tD,UACL0tD,EAAO36D,EAAI+uB,KAAK4rC,GAAQA,EAAKxiC,SAASwiC,EAAKxiC,SAASxlC,OAAS,GAAKgoE,EAC9DA,GACAA,EAAK1vD,YAAYrD,EAAIyR,aAElBshD,EAAK1tD,WAAaue,EAAUG,UACnC75B,KAAK8oE,mBAAmBD,EAAM/yD,EAAIyR,YAElCshD,EAAKv0D,WAAW6E,YAAYrD,EAAIyR,WAGxCrZ,GAAIqF,OAAOuC,IAEfgzD,mBAAoB,SAAUl5B,EAAUm5B,GAChCn5B,GAAYA,EAASz0B,WAAaue,EAAUG,YACxC+V,EAASnoB,aAAeznB,KAAKgpE,SAASp5B,EAASnoB,aAC/CvZ,EAAIqE,YAAYw2D,EAAcn5B,EAASnoB,aAEvCvZ,EAAIqE,YAAYw2D,EAAcn5B,KAI1Co5B,SAAU,SAAUx7D,GAChB,MAAOpM,GAAEoM,GAAS0Q,GAAG,MAEzBzE,QAAS,SAAUzI,GAAV,GACDu/C,GAAQ5b,EACR1mC,EAASjO,KAAKiO,OACdmM,EAAQnM,EAAO6J,WACf6C,EAAU3J,EAAE2J,QACZzY,EAAO1C,EAAM0C,KACbkyC,EAAYz5B,IAAYzY,EAAK0Y,UAC7By5B,EAAM15B,GAAWzY,EAAK2Y,MACtB5M,GAAO2P,YAAc3P,EAAO2P,WAAWnE,QAAQzI,EAAGoJ,MAGjDg6B,IAAaC,GAASj6B,EAAMoG,UAEtB4zB,EACPmc,EAAS,mBACFlc,IACPkc,EAAS,iBAJTA,EAAS,mBAMRA,IAGL5b,EAAoB,GAAI98B,GAAauC,EAAOnM,EAAOwD,MAC/CzR,KAAKuwD,GAAQn2C,KACbpJ,EAAEgK,iBACFhN,EAASiK,cAAchK,EAAQ0mC,OAGvCsyB,gBAAiB,SAAU7sD,GACvBpa,KAAKmoE,iBAAiB/tD,IAE1B2B,MAAO3a,EAAEuiB,OAET5T,EAAgBrO,EAAM/B,QACtBC,KAAM,SAAUqO,GACZjO,KAAKiO,OAASA,EACdjO,KAAKipE,2BAA4B,GAErCC,kBAAmB,WACflpE,KAAK20C,kBAAoB30C,KAAK60C,gBAAkB7mC,EAASiK,cAAcjY,KAAKiO,OAAQjO,KAAK20C,oBAE7FwiB,QAAS,WACL,QAAIn3D,KAAK20C,mBACE30C,KAAK20C,kBAAkB/zB,MAAQ5gB,KAAKiO,OAAOwD,KAAKb,WAI/D6I,QAAS,SAAUzI,GACf,GAAIjD,GAAO/N,KAAMiO,EAASF,EAAKE,OAAQ0B,EAAW1B,EAAO0B,QACzD,OAAIA,GAASw5D,cAAcn4D,IACnBrB,EAASkC,sBACTlC,EAASmC,WAAU,GAEvB/D,EAAK4mC,kBAAoB,GAAI98B,GAAa5J,EAAO6J,WAAY7J,EAAOwD,OAC7D,KAEP9B,EAASy5D,SAASp4D,KAClBjD,EAAKk7D,2BAA4B,EAC7Bl7D,EAAKopD,YACLppD,EAAKk7D,2BAA4B,EACjCl7D,EAAKm7D,sBAEF,IAIfntD,MAAO,WACH,GAAIhO,GAAO/N,IACX,UAAI+N,EAAKk7D,4BAA6Bl7D,EAAKopD,aACvCppD,EAAKk7D,2BAA4B,EACjCl7D,EAAKm7D,qBACE,MAKfl5D,EAAmBtO,EAAM/B,QACzBC,KAAM,SAAUqO,GACZjO,KAAKiO,OAASA,GAElBwL,QAAS,SAAUzI,IACVhP,EAAQq8D,QAAUrtD,EAAEg2D,uBAA0Bh2D,EAAEyL,SAAwB,IAAbzL,EAAE2J,SAAkB3J,EAAE0L,QAAW1L,EAAE2L,WAG/F3c,KAAKiO,OAAOpO,QAAQ+d,YACpB5d,KAAKqpE,0BAETrpE,KAAKspE,sBAETA,kBAAmB,WAAA,GACXr7D,GAASjO,KAAKiO,OACdmM,EAAQnM,EAAO6J,UACnBsC,GAAM0yB,mBAAmB7+B,EAAOwD,MAChCvC,WAAW,WACPjB,EAAOsN,YAAYnB,MAG3BivD,wBAAyB,WAErB,IADA,GAAIp7D,GAASjO,KAAKiO,OAAQwD,EAAOxD,EAAOwD,KAAMw0B,EAAYj4B,EAAS6P,WAAWooB,UAAWpK,EAAgB3tB,EAAI2tB,cAAewE,EAAQ5uB,EAAK8V,WAAY3U,EAAOnB,EAAK0qB,UAC1JN,EAAcwE,IACjBA,EAAQA,EAAM5Y,WAElB,MAAOoU,EAAcjpB,IACjBA,EAAOA,EAAK6kB,eAEZ4I,IAAS4F,EAAU5F,IACnBj/B,EAAEykC,GAASK,UAAUz0B,GAErBmB,GAAQqzB,EAAUrzB,IAClBxR,EAAEykC,GAASzwB,SAAS3D,IAG5BsK,MAAO3a,EAAEuiB,OAET/T,EAAWlO,EAAM/B,QACjBC,KAAM,SAAUgZ,GACZ5Y,KAAK4Y,SAAWA,EAChB5Y,KAAK+zC,kBAAmB,GAE5Bw1B,YAAa,SAAU5uD,GACnB,MAAOA,IAAW,IAAMA,GAAW,IAAMA,GAAW,IAAMA,GAAW,KAAOA,GAAW,KAAOA,GAAW,KAAOA,GAAW,KAAOA,GAAW,KAAkB,KAAXA,GAExJa,iBAAkB,SAAUpN,EAAO4C,GAC/B,GAA0CxK,GAAUE,EAAhD0c,EAAMomD,OAAOC,aAAaz4D,EAAE2J,SAAiC+uD,EAAW1pE,KAAK2pE,qBAAqB34D,EAAG44D,UAAUC,SACnH,KAAKrjE,IAAY4H,GAMb,GALA1H,EAActF,EAAEzB,QACZ0jB,MAAM,EACNg5B,KAAK,EACLD,OAAO,GACRhuC,EAAM5H,GAAU3G,UACd6G,EAAY0c,KAAOA,GAAO1c,EAAY0c,KAAOpS,EAAE2J,UAAYjU,EAAY2c,MAAQqmD,GAAYhjE,EAAY21C,KAAOrrC,EAAE0L,QAAUhW,EAAY01C,OAASprC,EAAE2L,SAClJ,MAAOnW,IAInBmjE,qBAAsB,SAAU34D,EAAG64D,GAC/B,GAAIC,GAAMD,EAASE,cAAcx6D,QAAQ,QAAU,CACnD,OAAOu6D,GAAM94D,EAAEg5D,QAAUh5D,EAAEyL,SAE/B6B,kBAAmB,SAAUlQ,EAAO4C,GAAjB,GAC2BxK,GAAU4X,EAAG6rD,EAAnD7mD,EAAMomD,OAAOC,aAAaz4D,EAAE2J,SAAmCuvD,KAC/DC,EAAW,SAAUC,GACrB,MAAOA,IAAWhnD,GAAOgnD,GAAWp5D,EAAE2J,SAAWyvD,GAAWp5D,EAAE8pB,SAElE,KAAKt0B,IAAY4H,GACbgQ,EAAIhd,EAAEzB,QACF0jB,MAAM,EACNg5B,KAAK,EACLD,OAAO,GACRhuC,EAAM5H,GAAU3G,SACnBoqE,EAAa3U,MAAM+U,QAAQjsD,EAAEgF,KAAOhiB,EAAEu6B,KAAKvd,EAAEgF,IAAK+mD,GAAUtpE,OAAS,EAAIspE,EAAS/rD,EAAEgF,KAChF6mD,GAAc7rD,EAAEiF,MAAQrS,EAAEyL,SAAW2B,EAAEi+B,KAAOrrC,EAAE0L,QAAU0B,EAAEg+B,OAASprC,EAAE2L,UACvEutD,EAAM/pE,KAAKiO,EAAM5H,GAGzB,OAAO0jE,IAEXl2B,YAAa,SAAUhjC,GACnB,GAAI2J,GAAU3J,EAAE2J,OAChB,OAAO3a,MAAKupE,YAAY5uD,KAAa3J,EAAEyL,UAAYzL,EAAE0L,QAAqB,IAAX/B,GAA4B,IAAXA,GAA4B,GAAXA,GAA2B,IAAXA,IAAkB3J,EAAE2L,WAAa3L,EAAEyL,UAAYzL,EAAE0L,QAEtKysD,cAAe,SAAUn4D,GACrB,GAAI2J,GAAU3J,EAAE2J,OAChB,OAAkB,KAAXA,IAAkB3J,EAAE2L,WAAa3L,EAAE0L,QAAqB,IAAX/B,IAAkB3J,EAAEyL,UAAYzL,EAAE0L,QAAqB,IAAX/B,IAAkB3J,EAAEyL,UAAYzL,EAAE2L,UAEtIysD,SAAU,SAAUp4D,GAChB,MAAoB,KAAbA,EAAE2J,SAAiB3J,EAAEyL,UAAYzL,EAAE0L,SAAW1L,EAAE2L,UAE3DuqD,YAAa,SAAU/4B,GACnBnuC,KAAKsqE,YAAcn8B,EACnBnuC,KAAK+zC,kBAAmB,GAE5Bw2B,WAAY,WACJvqE,KAAK+zC,kBAAoB/zC,KAAKsqE,aAC9BtqE,KAAKsqE,cAETtqE,KAAK+zC,kBAAmB,GAE5BjiC,UAAW,SAAU04D,GACjB,GAAIz8D,GAAO/N,IACX+N,GAAK8N,eACD2uD,EACAz8D,EAAKw8D,aAELx8D,EAAK08D,QAAUhpE,OAAOyN,WAAW9N,EAAEa,MAAM8L,EAAKw8D,WAAYx8D,GAAO,MAGzE8D,mBAAoB,WAChB,MAAO7R,MAAK+zC,kBAEhBl4B,aAAc,WACVpa,OAAOoa,aAAa7b,KAAKyqE,UAE7Br5D,OAAQ,SAAUJ,EAAG05D,GACjB,GAAIhnE,GAAGkV,EAAW5Y,KAAK4Y,QACvB,KAAKlV,EAAI,EAAGA,EAAIkV,EAAS/X,SACjB+X,EAASlV,GAAGgnE,GAAM15D,GADOtN,OAMrC+V,QAAS,SAAUzI,GACfhR,KAAKoR,OAAOJ,EAAG,YAEnB+K,MAAO,SAAU/K,GACbhR,KAAKoR,OAAOJ,EAAG,WAGvBrR,GAAOqO,GACH8B,cAAeA,EACfC,cAAeA,EACfF,iBAAkBA,EAClBG,iBAAkBA,EAClBJ,SAAUA,KAEhBnO,OAAOjC,MAAM8lB,SACC,kBAAV/lB,SAAwBA,OAAOyB,IAAMzB,OAAS,SAAU0B,EAAIC,EAAIC,IACrEA,GAAMD,OAEV,SAAU5B,EAAGC,QACVA,OAAO,4BAA6B,kBAAmBD,IACzD,YACG,SAAU8B,GAAV,GACO5B,GAAQiC,OAAOjC,MAAOwO,EAAWxO,EAAMoC,GAAGqM,OAAQ8mC,EAAU/mC,EAAS+mC,QAASlyC,EAAcmL,EAASnL,YAAa0D,EAAe1D,EAAY0D,aAAcjF,EAAO0M,EAAS1M,KAAMmB,EAAeuL,EAASvL,aAAc9C,EAASyB,EAAEzB,OAClOgrE,EAAmB51B,EAAQp1C,QAC3BC,KAAM,SAAUC,GACZG,KAAKijB,OAAQ,EACb8xB,EAAQj1C,GAAGF,KAAKG,KAAKC,KAAMH,IAE/B8b,KAAM,WAAA,GACE5N,GAAO/N,KACPoa,EAAQrM,EAAKmnC,WAAU,GACvBjnC,EAASF,EAAKE,MAClBA,GAAOwQ,oBACPxQ,EAAOkW,YAAYK,KAAK,WACpBzW,EAAKonC,aAAa/6B,GAClBnM,EAAOuG,4BACPvG,EAAO2G,yBACP3G,EAAO0F,iCAInBhU,GAAOqO,GAAY28D,iBAAkBA,IACrCpkE,EAAa,MAAO,GAAIjF,IACpBlB,QAASuqE,EACThoE,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBkT,MAAO,mBAGjBxU,OAAOjC,MAAM8lB,SACC,kBAAV/lB,SAAwBA,OAAOyB,IAAMzB,OAAS,SAAU0B,EAAIC,EAAIC,IACrEA,GAAMD,OAEV,SAAU5B,EAAGC,QACVA,OAAO,wBAAyB,kBAAmBD,IACrD,YACG,SAAU8B,GAAV,GACO5B,GAAQiC,OAAOjC,MAAOwO,EAAWxO,EAAMoC,GAAGqM,OAAQ8mC,EAAU/mC,EAAS+mC,QAASlyC,EAAcmL,EAASnL,YAAa0D,EAAe1D,EAAY0D,aAAcjF,EAAO0M,EAAS1M,KAAMmB,EAAeuL,EAASvL,aAAc9C,EAASyB,EAAEzB,OAClOirE,EAAe71B,EAAQp1C,QACvBC,KAAM,SAAUC,GACZk1C,EAAQj1C,GAAGF,KAAKG,KAAKC,KAAMH,GAC3BG,KAAKmjB,iBAAkB,GAE3BxH,KAAM,WACF,GAAI1N,GAASjO,KAAKiO,MACdzO,GAAMsC,QAAQE,QAAQie,KACtBhS,EAAOnB,SAASyM,YAAY,SAAS,EAAO,MACrCtL,EAAOxM,OAAO0K,OACrB8B,EAAOxM,OAAO0K,UAI1BxM,GAAOqO,GAAY48D,aAAcA,IACjCrkE,EAAa,QAAS,GAAIjF,IACtBlB,QAASwqE,EACTjoE,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBkT,MAAO,cAGjBxU,OAAOjC,MAAM8lB,SACC,kBAAV/lB,SAAwBA,OAAOyB,IAAMzB,OAAS,SAAU0B,EAAIC,EAAIC,IACrEA,GAAMD,OAEV,SAAU5B,EAAGC,QACVA,OAAO,gCAAiC,kBAAmBD,IAC7D,YACG,SAAU8B,GAAV,GACO5B,GAAQiC,OAAOjC,MAAOoH,EAASpH,EAAMoC,GAAGqM,OAAQ3M,EAAOsF,EAAOtF,KAAMyzC,EAAUnuC,EAAOmuC,QAAStyC,EAAemE,EAAOnE,aAAcI,EAAc+D,EAAO/D,YAAaqL,EAAMtH,EAAOuH,IAAKoS,EAAa3Z,EAAO2Z,WAAYha,EAAe1D,EAAY0D,aACjPskE,EAAoB91B,EAAQp1C,QAC5BC,KAAM,SAAUC,GACZk1C,EAAQj1C,GAAGF,KAAKG,KAAKC,KAAMH,IAE/B8b,KAAM,WACF,GAAIvB,GAAQpa,KAAKk1C,WAAU,EAC3Bl1C,MAAK8qE,gBACL9qE,KAAK+qE,eACL/qE,KAAKgrE,cAAc5wD,GACnBpa,KAAKiO,OAAO68D,aAAe9qE,KAAK8qE,aAChC9qE,KAAKiO,OAAO88D,YAAc/qE,KAAK+qE,YAC/B/qE,KAAKm1C,aAAa/6B,IAEtB4wD,cAAe,SAAU5wD,GAAV,GAEPgN,GADA6jD,EAAa1qD,EAAW8Y,MAAMjf,EAOlC,KAJIgN,EADsB,IAAtB6jD,EAAWpqE,OACJoqE,EAAW,GAAG32D,WAEd8F,EAAMqG,eAEV2G,IAASlZ,EAAIgQ,GAAGkJ,EAAM,SAA8C,WAAnCA,EAAKzQ,aAAa,cAClDzI,EAAI0uB,QAAQxV,IACZpnB,KAAKkrE,eAAe9jD,EAAM,eAEtBA,EADAlZ,EAAIgQ,GAAGkJ,EAAM,MACNA,EAAK9S,WAEL,OAGXtU,KAAKkrE,eAAe9jD,EAAM,gBAC1BA,EAAOA,EAAK9S,aAIxB42D,eAAgB,SAAU9jD,EAAM+jD,GAAhB,GAORC,GAAYC,EAAUC,EAActpB,EAAgBt+C,EANpD6nE,EAASnkD,EAAKjf,MACd4wB,EAAa3R,EAAK2R,WAClByyC,GACA5nE,MAAOwjB,EAAKjJ,SACZxP,MAAQxG,UAGZ,KAAKzE,EAAI,EAAG6nE,GAAU7nE,EAAI6nE,EAAO1qE,OAAQ6C,IACrC2nE,EAAWE,EAAO7nE,GAClB0nE,EAAaG,EAAOF,GACpBG,EAAW78D,KAAKxG,MAAMkjE,GAAYD,CAEtC,KAAK1nE,EAAI,EAAGq1B,GAAcr1B,EAAIq1B,EAAWl4B,OAAQ6C,IAC7C4nE,EAAevyC,EAAWr1B,GAAGsW,SAC7BgoC,EAAiBjpB,EAAWr1B,GAAG0X,UACV,UAAjBkwD,IAEwB,UAAjBA,EACPE,EAAW78D,KAAK2sB,UAAY0mB,EAE5BwpB,EAAW78D,KAAK28D,GAAgBtpB,EAGxChiD,MAAKmrE,GAAahrE,KAAKqrE,MAG3BC,EAAqB12B,EAAQp1C,QAC7BC,KAAM,SAAUC,GACZk1C,EAAQj1C,GAAGF,KAAKG,KAAKC,KAAMH,IAE/B8b,KAAM,WAAA,GAME0d,GALAjf,EAAQpa,KAAKk1C,WAAU,GACvB4P,EAAUvkC,EAAWoxB,WAAWv3B,GAChCnM,EAASjO,KAAKiO,OACd68D,EAAe78D,EAAO68D,aACtBC,EAAc98D,EAAO88D,aAEnBD,GAAwC,IAAxBA,EAAajqE,QAAmBkqE,GAAsC,IAAvBA,EAAYlqE,UAG1D,IAAnBikD,EAAQjkD,SACRb,KAAKy9B,OAAOiS,YAAYt1B,GACxBpa,KAAKy9B,OAAO+R,MAAQ,MAExBxvC,KAAK0rE,6BAA6BtxD,GAClCif,EAAQ9Y,EAAW8Y,MAAMjf,GACzBpa,KAAK2rE,mBAAmBtyC,GACxBnrB,EAAIiZ,UAAU/M,EAAM6G,yBACG,IAAnB6jC,EAAQjkD,QACRuZ,EAAMuyB,cAAcmY,EAAQ,IAC5B1qC,EAAMwyB,aAAakY,EAAQ,MAE3B1qC,EAAMsyB,eAAerT,EAAM,IAC3Bjf,EAAMyyB,YAAYxT,EAAM,KAE5BA,EAAQ9Y,EAAW8Y,MAAMjf,GACrBif,GAAS0xC,GAAeA,EAAYlqE,QACpCb,KAAK4rE,iBAAiBvyC,EAAO0xC,GAE7B1xC,GAASyxC,GAAgBA,EAAajqE,QACtCb,KAAK6rE,kBAAkBxyC,EAAOyxC,GAElC9qE,KAAKm1C,aAAa/6B,KAEtBsxD,6BAA8B,SAAUtxD,GAAV,GAIP1W,GAHfooE,EAAgB,SAAU1kD,GAC1B,MAAOlZ,GAAI6uB,SAAS3V,KAAUA,EAAKG,aAAerZ,EAAIkuB,SAAShV,IAE/D2kD,EACYxrD,EAAWixB,OAAOp3B,EAAO0xD,EACzC,IAAIC,GAAiBA,EAAclrE,OAAS,EACxC,IAAK6C,EAAI,EAAGA,EAAIqoE,EAAclrE,OAAQ6C,IAClCqoE,EAAcroE,GAAG4Q,WAAW8mB,YAAY2wC,EAAcroE,KAIlEioE,mBAAoB,SAAUtyC,GAC1B,GAAI31B,GAAG0jB,EAAME,EAAQ+e,EAAU/F,EAAG1E,EAAOlD,CACzC,KAAKh1B,EAAI,EAAGA,EAAI21B,EAAMx4B,OAAQ6C,IAG1B,GAFA0jB,EAAOiS,EAAM31B,GACb4jB,EAASF,EAAK9S,YACVtU,KAAKgxC,gBAAgB5pB,GAGzB,KAAOE,GAAUpZ,EAAI6uB,SAASzV,IAAS,CAEnC,IADA+e,EAAW/e,EAAOiR,WACb+H,EAAI,EAAGA,EAAI+F,EAASxlC,OAAQy/B,IAC7B1E,EAAQyK,EAAS/F,GACZpyB,EAAIkuB,SAASR,IAAUA,IAAUxU,IAClCsR,EAAUpR,EAAOqR,WAAU,GAC3BD,EAAQ9nB,UAAY,GACpB1C,EAAIkxB,KAAKxD,EAAOlD,GAGxBxqB,GAAImxB,OAAO/X,GACXA,EAASF,EAAK9S,aAI1Bs3D,iBAAkB,SAAUvyC,EAAO0xC,GAAjB,GAIVrnE,GAAG+hB,EAAK2B,EAAM3Y,EAASu9D,EAAaC,EACpCC,EAAeC,EAAWrkC,EAAUrtB,EAAM2xD,EAAaC,EAAazwC,EAAO0E,EAAGgsC,EAJ9EpjB,EAAY6hB,EAAY,GAAGnnE,KAAK,GAChC+K,EAAOo8D,EAAY,GAAGp8D,KACtB7B,EAAW9M,KAAKiO,OAAOnB,QAG3B,KAAKpJ,EAAI,EAAG+hB,EAAM4T,EAAMx4B,OAAQ6C,EAAI+hB,EAAK/hB,IAErC,GADA0jB,EAAOiS,EAAM31B,IACTwK,EAAI8tB,aAAa5U,KAASpnB,KAAKgxC,gBAAgB5pB,GAInD,GADA4kD,EAAc99D,EAAI+qB,kBAAkB7R,GACR,SAAxB4kD,EAAY7tD,SAAsB6tD,EAAY7tD,UAAY+qC,EAAW,CACrE,GAA4B,OAAxB8iB,EAAY7tD,SAA4C,OAAxB6tD,EAAY7tD,SAA4C,OAAxB6tD,EAAY7tD,QAAkB,CAK9F,IAJA+tD,KACAC,KACArkC,EAAW1gB,EAAKqQ,gBAChBhd,EAAO2M,EAAKK,YACLqgB,GACE55B,EAAIkuB,SAAS0L,IACdokC,EAAc/rE,KAAK2nC,GAEvBA,EAAWA,EAASrQ,eAExB,IAAIy0C,EAAcrrE,OAId,IAHAurE,EAAcJ,EAAYrzC,WAAU,GACpCyzC,EAAYx7D,UAAY,GACxB1C,EAAIY,aAAas9D,EAAaF,EAAc,IACvC5rC,EAAI,EAAGA,EAAI4rC,EAAcrrE,OAAQy/B,IAClC1E,EAAQswC,EAAc5rC,GACtBpyB,EAAIkwB,SAASguC,EAAaxwC,EAAO,EAGzC,MAAOnhB,GACEvM,EAAIkuB,SAAS3hB,IACd0xD,EAAUhsE,KAAKsa,GAEnBA,EAAOA,EAAKgN,WAEhB,IAAI0kD,EAAUtrE,OAIV,IAHAwrE,EAAcL,EAAYrzC,WAAU,GACpC0zC,EAAYz7D,UAAY,GACxB1C,EAAIY,aAAau9D,EAAaF,EAAU,IACnC7rC,EAAI,EAAGA,EAAI6rC,EAAUtrE,OAAQy/B,IAC9B1E,EAAQuwC,EAAU7rC,GAClB+rC,EAAYlzD,YAAYyiB,EAGhC1tB,GAAImxB,OAAO2sC,GAEfv9D,EAAUP,EAAI4F,OAAOhH,EAAUo8C,EAAWv6C,GAC1CT,EAAIkxB,KAAKhY,EAAM3Y,OACRu9D,GAAY7tD,UAAY+qC,GAC/Bh7C,EAAIS,KAAKq9D,EAAar9D,EAG9B,IAAIq9D,GAAsC,IAAvBjB,EAAYlqE,QAAwC,OAAxBmrE,EAAY7tD,SAAkC,OAAd+qC,EAAoB,CAE/F,IADAojB,KACOp+D,EAAIgQ,GAAGzP,EAAS,OACnB69D,EAAUnsE,KAAKsO,GACfA,EAAUP,EAAIsZ,KAAK/Y,EAKvB,KAHAw9D,EAAe/9D,EAAI4F,OAAOhH,EAAUi+D,EAAY,GAAGnnE,KAAK,GAAImnE,EAAY,GAAGp8D,MAC3ET,EAAIY,aAAam9D,EAAcK,EAAUA,EAAUzrE,OAAS,IAC5DorE,EAAa9yD,YAAYmzD,EAAU,IAC9B5oE,EAAI,EAAG+hB,EAAM6mD,EAAUzrE,OAAQ6C,EAAI+hB,EAAK/hB,IACzCwK,EAAIY,aAAaw9D,EAAU5oE,GAAIuoE,EAAa1kD,gBAEzCykD,IAAsC,IAAvBjB,EAAYlqE,QAAwC,OAAxBmrE,EAAY7tD,UAC9D8tD,EAAe/9D,EAAI4F,OAAOhH,EAAUi+D,EAAY,GAAGnnE,KAAK,GAAImnE,EAAY,GAAGp8D,MAC3ET,EAAIkxB,KAAK3wB,EAASw9D,KAG1BJ,kBAAmB,SAAUxyC,EAAOyxC,GAAjB,GAEXyB,GAAcC,EAAaC,EAAS/oE,EAAGg1B,EAAStR,EADhDta,EAAW9M,KAAKiO,OAAOnB,QAE3B,KAAKpJ,EAAI,EAAGA,EAAIonE,EAAajqE,OAAQ6C,IACjC6oE,EAAezB,EAAapnE,GAC5B8oE,EAAct+D,EAAI4F,OAAOhH,EAAUy/D,EAAa3oE,KAAK,GAAI2oE,EAAa59D,MAClE89D,GACAD,EAAYrzD,YAAYszD,GAE5BA,EAAUD,CAEd,IAAIC,EACA,IAAK/oE,EAAI,EAAGA,EAAI21B,EAAMx4B,OAAQ6C,IAE1B,GADA0jB,EAAOiS,EAAM31B,IACTwK,EAAI8tB,aAAa5U,KAASpnB,KAAKgxC,gBAAgB5pB,GAAnD,CAKA,IAFAsR,EAAU+zC,EAAQ9zC,WAAU,GAC5BzqB,EAAIY,aAAa4pB,EAAStR,GACnBsR,EAAQ2N,UAAY3N,EAAQ2N,SAASxlC,QACxC63B,EAAUA,EAAQ2N,SAAS,EAE/B3N,GAAQvf,YAAYiO,KAIhCxJ,WAAY,WACR,MAAO5d,MAAKiO,QAAUjO,KAAKiO,OAAOpO,QAAQ+d,YAE9CozB,gBAAiB,SAAU5pB,GACvB,MAAOpnB,MAAK4d,cAAgBhX,EAAOiX,WAAWmzB,gBAAgB5pB,MAGlEslD,EAAiBprE,EAAK3B,QACtBC,KAAM,SAAUC,GACZyB,EAAKxB,GAAGF,KAAKG,KAAKC,KAAMH,IAE5BO,QAAS,SAAUsjB,GACf,MAAO,IAAImnD,GAAkBnnD,MAGjCipD,EAAkBrrE,EAAK3B,QACvBC,KAAM,SAAUC,GACZyB,EAAKxB,GAAGF,KAAKG,KAAKC,KAAMH,IAE5BO,QAAS,SAAUsjB,GACf,MAAO,IAAI+nD,GAAmB/nD,KAGtCtiB,GAAEzB,OAAOiH,GACLikE,kBAAmBA,EACnBY,mBAAoBA,EACpBiB,eAAgBA,EAChBC,gBAAiBA,IAErBpmE,EAAa,aAAc,GAAImmE,IAC3B/pE,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBkT,MAAO,mBAGf1P,EAAa,cAAe,GAAIomE,IAC5BhqE,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBkT,MAAO,qBAGjBxU,OAAOjC,MAAM8lB,SACC,kBAAV/lB,SAAwBA,OAAOyB,IAAMzB,OAAS,SAAU0B,EAAIC,EAAIC,IACrEA,GAAMD,OAEV,SAAU5B,EAAGC,QACVA,OAAO,kCAAmC,eAAgBD,IAC5D,YACG,SAAUE,EAAO6B,GAcd,QAASy8C,GAAUj+C,GAAnB,GACQ4N,GAAQ5N,EAAQ4N,MAChBm/D,EAAa/sE,EAAQqT,IACrB25D,EAAahtE,EAAQsT,GACzB,OAAOA,GAAID,EAAIimD,EAAW1rD,GAAQ0rD,EAAW0T,IAAc1T,EAAWyT,IAE1E,QAASE,GAAkBt/D,GACvB,MAAIA,KAAYpM,EAAEoM,GAAS0Q,GAAG,SAAW1Q,EAAQ6T,aAAe7T,EAAQ8T,aAC7D9hB,EAAMsC,QAAQgoC,YAElB,EAEX,QAASijC,GAAyBt/D,EAAOu/D,GACrC,MAAIC,GAAcx/D,GACP0rD,EAAW1rD,GAEX0rD,EAAW1rD,GAASu/D,EAAQ,IAG3C,QAASC,GAAcx/D,GACnB,aAAcA,KAAUy/D,GAAUC,EAA4BzxD,KAAKjO,GAEvE,QAAS2/D,GAAS3/D,GACd,aAAcA,KAAUy/D,GAAUG,EAAuB3xD,KAAKjO,GAElE,QAAS6/D,GAAc7/D,GACnB,MAAO0rD,GAAW1rD,GAAS8/D,EAE/B,QAASC,GAAS//D,GACd,MAAO0rD,GAAW1rD,GAASggE,EA3ClC,GACOC,GAASjsE,OACTksE,EAAOD,EAAOr6D,KACdH,EAAMy6D,EAAKz6D,IACXC,EAAMw6D,EAAKx6D,IACXgmD,EAAauU,EAAOvU,WACpB/3D,EAAI5B,EAAM8lB,OACV3lB,EAASyB,EAAEzB,OACXiH,EAASpH,EAAMoC,GAAGqM,OAClBs/D,EAAa,IACbE,EAAQ,KACRN,EAA8B,mBAC9BE,EAAyB,oBACzBH,EAAS,SAgCTU,GACA9vB,UAAWA,EACXgvB,kBAAmBA,EACnBC,yBAA0BA,EAC1BE,cAAeA,EACfG,SAAUA,EACVE,cAAeA,EACfE,SAAUA,EAEd7tE,GAAOiH,GAAUgnE,cAAeA,KAClCnsE,OAAOjC,QACO,kBAAVD,SAAwBA,OAAOyB,IAAMzB,OAAS,SAAU0B,EAAIC,EAAIC,IACrEA,GAAMD,OAEV,SAAU5B,EAAGC,QACVA,OAAO,0CACH,cACA,kBACA,kCACDD,IACL,YACG,SAAUE,EAAO6B,GAAjB,GACOD,GAAI5B,EAAM8lB,OACV3lB,EAASyB,EAAEzB,OACXgkB,EAAOviB,EAAEuiB,KACT1hB,EAAQb,EAAEa,MACV2E,EAASpH,EAAMoC,GAAGqM,OAClBvM,EAAQlC,EAAMkC,MACdmsE,EAAW,UACXC,EAAa,YACbC,EAAc,aACdC,EAAc,aACdC,EAAa,YACbC,EAAW,UACXC,EAAQ,IACRC,EAAM,IACNC,EAAa,cACb5Z,EAAQ,QACR6Z,EAAuB5sE,EAAM/B,QAC7BC,KAAM,SAAU4N,EAAS3N,GACrB,GAAIkO,GAAO/N,IACX+N,GAAKlO,QAAUF,KAAWoO,EAAKlO,QAASA,GACxCkO,EAAKlO,QAAQ+D,KAAO0xD,MAAM+U,QAAQt8D,EAAKlO,QAAQ+D,MAAQmK,EAAKlO,QAAQ+D,MAAQmK,EAAKlO,QAAQ+D,MACrFxC,EAAEoM,GAAS0Q,GAAGu2C,KACd1mD,EAAKP,QAAUA,EACfO,EAAKwgE,yBAGbn6D,QAAS,WAAA,GACDrG,GAAO/N,KACPwuE,EAAiBzgE,EAAKlO,QAAQ2uE,cAC9BzgE,GAAKP,UACLpM,EAAE2M,EAAKP,SAASqL,IAAI21D,GACpBzgE,EAAKP,QAAU,MAEnBpM,EAAE2M,EAAKlO,QAAQ4uE,aAAa51D,IAAIg1D,EAAWW,GAC3CzgE,EAAK2gE,wBAET7uE,SACI+D,QACAsP,IAAK,EACLu7D,YAAa,KACbD,eAAgB,GAChBG,KAAK,EACLC,QACIC,cAAe,GACfxkE,OAAQ,EACRD,MAAO,EACP61B,cACAt9B,SAAU,KAGlB4rE,qBAAsB,WAAA,GACdxgE,GAAO/N,KACPH,EAAUkO,EAAKlO,OACnBuB,GAAE2M,EAAKP,SAASkL,GAAGu1D,EAAapuE,EAAQ2uE,eAAgB3uE,EAAQ+D,KAAKqT,KAAKk3D,GAAQlsE,EAAM8L,EAAK+gE,4BAA6B/gE,KAE9HghE,mBAAoB,WAAA,GACZhhE,GAAO/N,KACPoS,EAAYrE,EAAK0B,UACrB,SAAI2C,KACSA,EAAU48D,UAI3B79D,OAAQwS,EACRmrD,4BAA6B,SAAU99D,GAAV,GACrBjD,GAAO/N,KACPH,EAAUkO,EAAKlO,QACfovE,EAAgBpvE,EAAQ+uE,OACxBM,EAAe9tE,EAAE4P,EAAE0B,eACnBy8D,EAAephE,EAAKohE,aACpBN,EAAgBI,EAAcJ,aAC7B9gE,GAAKghE,wBACDG,EAAahxD,GAAGmwD,IAAetgE,EAAKqhE,qBAAqBF,EAAcl+D,GACpEm+D,EACIA,EAAax3C,KAAKk3C,IAAkBM,EAAax3C,KAAKk3C,KAAmBK,EAAa,IACtFnhE,EAAKshE,iBAAiBH,EAAcl+D,GAGxCjD,EAAKshE,iBAAiBH,EAAcl+D,GAGpCm+D,GACAphE,EAAK2gE,yBAKrBU,qBAAsBzrD,EACtB0rD,iBAAkB,SAAUH,EAAcl+D,GACtC,GAAIjD,GAAO/N,IACO,KAAdgR,EAAEusC,UAGNxvC,EAAKuhE,oBACLvhE,EAAKwhE,wBAAwBL,GAC7BnhE,EAAKyhE,4BACLzhE,EAAK0hE,8BAA8BP,EAAa,IAChDnhE,EAAK2hE,mCACL3hE,EAAK4hE,eAAeT,GACpBnhE,EAAK6hE,oBACL7hE,EAAKohE,aAAa39D,SAEtB89D,kBAAmB,WAAA,GACXvhE,GAAO/N,KACPH,EAAUkO,EAAKlO,OACnBkO,GAAK2gE,uBACL3gE,EAAKohE,aAAe/tE,EAAEvB,EAAQ+uE,OAAOjsE,UAAUyS,SAASvV,EAAQ4uE,cAEpEc,wBAAyB5rD,EACzB6rD,0BAA2B7rD,EAC3B8rD,8BAA+B,SAAUP,GACrC,GAAInhE,GAAO/N,IACX+N,GAAKohE,aAAax3C,KAAK5pB,EAAKlO,QAAQ+uE,OAAOC,cAAeK,IAE9DQ,iCAAkC,WAAA,GAC1B3hE,GAAO/N,KACPH,EAAUkO,EAAKlO,QACf2uE,EAAiB3uE,EAAQ2uE,eACzBqB,EAAchwE,EAAQ+uE,OAAO3uC,WAAWxC,OACxC0xC,EAAephE,EAAKohE,YACxBphE,GAAKohE,aAAaz2D,GAAGo1D,EAAaU,EAAgB,WAC9CW,EAAazgE,KAAK0/D,EAAMyB,GAAar+D,SACtCkH,GAAGw1D,EAAWM,EAAgB,WAC7BW,EAAazgE,KAAK0/D,EAAMyB,GAAa75D,UAG7C45D,kBAAmB,WACf,GAAI7hE,GAAO/N,IACX+N,GAAKohE,aAAazgE,KAAK0/D,EAAMrgE,EAAKlO,QAAQ+uE,OAAO3uC,WAAWxC,QAAQznB,QAExE04D,qBAAsB,WAClB,GAAI3gE,GAAO/N,IACP+N,GAAKohE,eACLphE,EAAK+hE,oBACL/hE,EAAKohE,aAAat2D,IAAI9K,EAAKlO,QAAQ2uE,gBAAgBj7D,SACnDxF,EAAKohE,aAAe,OAG5BQ,eAAgB,SAAUT,GACtB,GAAInhE,GAAO/N,IACN+N,GAAKohE,eAGVphE,EAAK+hE,oBACL/hE,EAAK0B,WAAa,GAAIjQ,GAAMoC,GAAGmuE,UAAUb,GACrCh9D,iBAAkBnE,EAAKohE,aAAa,GACpC18D,MAAOxQ,EAAM8L,EAAKiiE,cAAejiE,GACjCoD,OAAQlP,EAAM8L,EAAK2qC,SAAU3qC,GAC7BuF,UAAWrR,EAAM8L,EAAKkiE,YAAaliE,OAG3C+hE,kBAAmB,WACf,GAAI/hE,GAAO/N,IACP+N,GAAK0B,aACL1B,EAAK0B,WAAW2E,UAChBrG,EAAK0B,WAAa,OAG1BugE,cAAe,WACXhwE,KAAKkwE,oBAETx3B,SAAU,SAAU1nC,GAChBhR,KAAKmwE,4BAA4Bn/D,IAErCm/D,4BAA6BxsD,EAC7BssD,YAAa,SAAUj/D,GACnB,GAAIjD,GAAO/N,IACX+N,GAAKoD,OAAOH,GACZjD,EAAK2gE,uBACL3gE,EAAKqiE,mBAETA,gBAAiB,WACb,GAAIvwE,GAAUG,KAAKH,OACnBuB,GAAEvB,EAAQ4uE,aAAa51D,IAAIg1D,EAAWhuE,EAAQ2uE,iBAElD0B,iBAAkB,WACd,GAAIrwE,GAAUG,KAAKH,OACnBuB,GAAEvB,EAAQ4uE,aAAa/1D,GAAGm1D,EAAWhuE,EAAQ2uE,eAAgB,SAAUx9D,GACnEA,EAAEgK,oBAGVq1D,eAAgB,SAAUr/D,GACtB,GAAIoB,GAAYpS,KAAKyP,UACjB2C,IAAaA,EAAUk+D,YACvBl+D,EAAUk+D,WAAWtiC,KAAKh9B,MAIlCu/D,EAAkB7uE,EAAM/B,QACxBmU,OAAQ,SAAU7F,EAAQpO,GAAlB,GACAkO,GAAO/N,KACPwwE,EAAe3wE,EAAQ2D,KACvB6U,EAAKxY,EAAQ2uE,cACjBptE,GAAE6M,EAAOwD,MAAMiH,GAAGq1D,EAAc11D,EAAIo8C,EAAO,SAAUzjD,GAAV,GACnCgxB,GAAQhxB,EAAE0B,cACVs8D,EAAW/gE,EAAOuiE,EACtBx/D,GAAE+M,kBACEixD,EACIA,EAASxhE,UAAYw0B,GAAUgtC,EAASD,uBACxChhE,EAAK0iE,iBAAiBxiE,EAAQpO,GAC9BkO,EAAK2iE,cAAcziE,EAAQ+zB,EAAOniC,IAGtCkO,EAAK2iE,cAAcziE,EAAQ+zB,EAAOniC,KAEvC6Y,GAAGs1D,EAAc31D,EAAIo8C,EAAO,SAAUzjD,GAAV,GACvB2/D,GACA3B,EAAW/gE,EAAOuiE,EACtBx/D,GAAE+M,mBACEixD,GAAaA,EAASD,sBAAyBC,EAASG,eACxDwB,EAAcvvE,EAAE4tE,EAASxhE,SAASsQ,QAAQ22C,GAAO,GAC7Ckc,IACA5iE,EAAK0iE,iBAAiBxiE,EAAQpO,GAC9BkO,EAAK2iE,cAAcziE,EAAQ0iE,EAAa9wE,OAGjD6Y,GAAGs1D,EAAc31D,EAAI,WACpB,GAAI22D,GAAW/gE,EAAOuiE,EAClBxB,KAAaA,EAASD,sBACtBhhE,EAAK0iE,iBAAiBxiE,EAAQpO,KAEnC6Y,GAAGw1D,EAAW71D,EAAI,SAAUrH,GAAV,GAEb2/D,GADA3B,EAAW/gE,EAAOuiE,EAElBxB,IAAYA,EAASD,uBACrB4B,EAAcvvE,EAAE4P,EAAE+I,QAAQ+D,QAAQ22C,GAAO,GACrCkc,IACA3B,EAASqB,eAAer/D,GACxBjD,EAAK0iE,iBAAiBxiE,EAAQpO,GAC9BkO,EAAK2iE,cAAcziE,EAAQ0iE,EAAa9wE,QAKxDmgB,QAAS,SAAU/R,EAAQpO,GACvBuB,EAAE6M,EAAOwD,MAAMoH,IAAIhZ,EAAQ2uE,iBAE/BkC,cAAe,SAAUziE,EAAQihE,EAAcrvE,GAAhC,GACP2wE,GAAe3wE,EAAQ2D,KACvBotE,EAAe/wE,EAAQ+N,IAC3BK,GAAOuiE,GAAgB,GAAII,GAAa1B,GACpCP,IAAKnvE,EAAMsC,QAAQgV,MAAM7I,EAAOT,SAChCihE,YAAaxgE,EAAOwD,QAG5Bg/D,iBAAkB,SAAUxiE,EAAQpO,GAChC,GAAI2wE,GAAe3wE,EAAQ2D,IACvByK,GAAOuiE,KACPviE,EAAOuiE,GAAcp8D,UACrBnG,EAAOuiE,GAAgB,QAInCD,GAAgB18D,QAAU,GAAI08D,GAC9BjC,EAAqBx6D,OAAS,SAAU7F,EAAQpO,GAC5C0wE,EAAgB18D,QAAQC,OAAO7F,EAAQpO,IAE3CyuE,EAAqBtuD,QAAU,SAAU/R,EAAQpO,GAC7C0wE,EAAgB18D,QAAQmM,QAAQ/R,EAAQpO,IAE5CF,EAAOiH,GAAU0nE,qBAAsBA,KACzC7sE,OAAOjC,QACO,kBAAVD,SAAwBA,OAAOyB,IAAMzB,OAAS,SAAU0B,EAAIC,EAAIC,IACrEA,GAAMD,OAEV,SAAU5B,EAAGC,QACVA,OAAO,mCACH,cACA,iCACA,yCACA,cACDD,IACL,YACG,SAAUE,EAAO6B,GAAjB,GACOqsE,GAASjsE,OACTksE,EAAOD,EAAOr6D,KACdw9D,EAAMlD,EAAKkD,IACXzvE,EAAI5B,EAAM8lB,OACV3lB,EAASyB,EAAEzB,OACXiH,EAASpH,EAAMoC,GAAGqM,OAClBC,EAAMtH,EAAOuH,IACbmgE,EAAuB1nE,EAAO0nE,qBAC9BV,EAAgBhnE,EAAOgnE,cACvB9vB,EAAY8vB,EAAc9vB,UAC1BivB,EAA2Ba,EAAcb,yBACzCD,EAAoBc,EAAcd,kBAClCG,EAAgBW,EAAcX,cAC9BK,EAAgBM,EAAcN,cAC9BE,EAAWI,EAAcJ,SACzBh4B,EAAah2C,EAAMi2C,YACnBp9B,EAAK,6BACLy4D,EAAsB,yBACtBC,EAAsB,yBACtBC,EAAO,OACPrc,EAAQ,QACRD,EAAQ,QACRvvB,EAAK,KACL0vB,EAAK,KACLD,EAAK,KACLqc,EAAU,YACV9C,EAAQ,IACR+C,EAAQ,QACRz8D,EAAiB65D,EAAqB3uE,QACtCE,SACI+D,MACIuhC,EACA0vB,GAEJ3hD,IAAK,GACLu7D,YAAa,KACbD,eAAgBn2D,EAChBs2D,KAAK,EACLC,QACIC,cAAe,SACfzkE,MAAO,GACPC,OAAQ,EACR41B,YACI2uC,OAAQkC,EACRrzC,OAAQszC,GAEZpuE,SAAU,qGAA4GmuE,EAAsB,iBAAwBC,EAAsB,yBAGlM3B,qBAAsB,SAAU3T,EAAQzqD,GAAlB,GACdjD,GAAO/N,KACPH,EAAUkO,EAAKlO,QACfsxE,EAActxE,EAAQ+uE,OAAOxkE,MAC7BgnE,EAAe3V,EAAOlhD,SAASF,MAAQxa,EAAQ8uE,IAAM,EAAIn5B,EAAWimB,IACpE4V,EAAgBrgE,EAAEslD,QAAUl1D,EAAEq6D,EAAO,GAAGtiC,eAAeo9B,YAC3D,OAAI8a,GAAgBD,EAAeD,GAAeE,EAAgBD,EAAeD,GAMrF5B,wBAAyB,SAAU9T,GAAV,GACjB1tD,GAAO/N,KACPsxE,EAAoBlwE,EAAE2M,EAAKP,QAAQ+1B,OAASx1B,EAAKP,QAAQ+jE,QAAQ,IACjE1xE,EAAUkO,EAAKlO,QACf8uE,EAAM9uE,EAAQ8uE,IACdwC,EAActxE,EAAQ+uE,OAAOxkE,MAC7BqkE,EAAcrtE,EAAEvB,EAAQ4uE,aACxB+C,EAAkB/C,EAAYvwD,GAAG8yD,GAAQ,EAAIvC,EAAYttD,YACzDswD,EAAmBhD,EAAYvwD,GAAG8yD,GAAQ,EAAIxxE,EAAM+2D,WAAWkY,GAC/DiD,EAAoB/C,EAAM,EAAIn5B,EAAWimB,GACzCkW,EAAiBhD,EAAM7B,EAAkB2B,EAAY,IAAM,EAC3DmD,EAAmBnW,EAAOlhD,SAASF,MAAQo0D,EAAYl0D,SAASF,KAAO8+C,WAAWsV,EAAYp5D,IAAI,qBAAuB8jD,WAAWsC,EAAOpmD,IAAI,eAC/Iw8D,EAAwBP,EAAkB/2D,SAASqjB,KAAO6wC,EAAYl0D,SAASqjB,IAAMu7B,WAAWsV,EAAYp5D,IAAI,oBAAsB8jD,WAAWmY,EAAkBj8D,IAAI,cACvKrT,EAAUxC,EAAMsC,QAAQE,OACxB2sE,KAAQ3sE,EAAQgW,SAAWhW,EAAQq8D,QAAUr8D,EAAQqlB,SAAW,MAChEoqD,OAEJ1jE,EAAKohE,aAAa95D,KACduoB,IAAKi0C,EAAwBL,EAC7Bn3D,KAAMu3D,EAAmBF,GAAqBD,EAAmBE,GAAkBR,EAAc,EACjG7yC,SAAU,cAGlBkxC,0BAA2B,WAAA,GACnBzhE,GAAO/N,KACP8xE,EAAY1wE,EAAE2M,EAAKP,SAAS64B,SAASquB,GACrCqd,EAAY3wE,EAAE2M,EAAKP,SAAS64B,SAASsuB,GACrCqd,EAAaF,EAAUjxE,OAAS,EAAIixE,EAAUznE,SAAW0nE,EAAU1nE,SAAW0nE,EAAU1nE,QAC5F0D,GAAKohE,aAAa95D,KACdjL,MAAO2D,EAAKlO,QAAQ+uE,OAAOxkE,MAC3BC,OAAQ2nE,KAGhB7B,4BAA6B,SAAUn/D,GAAV,GAmBrBihE,GAlBAlkE,EAAO/N,KACPy7D,EAASr6D,EAAEA,EAAE4P,EAAE0B,eAAeilB,KAAK5pB,EAAKlO,QAAQ+uE,OAAOC,gBACvDhvE,EAAUkO,EAAKlO,QACf4uE,EAAcrtE,EAAEvB,EAAQ4uE,aACxB0C,EAActxE,EAAQ+uE,OAAS/uE,EAAQ+uE,OAAOxkE,MAAQ,EACtD8I,EAAMrT,EAAQqT,IACdy7D,EAAM9uE,EAAQ8uE,IACduD,EAAc18B,EAAWimB,GACzB0W,EAAmB1W,EAAOlhD,SAASF,MAAQo0D,EAAYl0D,SAASF,KAAO8+C,WAAWsV,EAAYp5D,IAAI,qBAAuB8jD,WAAWsC,EAAOpmD,IAAI,eAC/I+8D,EAAsB58B,EAAWimB,EAAOhhD,QACxC00D,EAAe/tE,EAAE2M,EAAKohE,cACtBsC,EAAmBhD,EAAYvwD,GAAG8yD,GAAQ,EAAIxxE,EAAM+2D,WAAWkY,GAC/DkD,EAAiBhD,EAAM7B,EAAkB2B,EAAY,IAAM,EAC3D4D,EAAyBlD,EAAa50D,SAASF,MAAQo0D,EAAYl0D,SAASF,KAAO8+C,WAAWsV,EAAYp5D,IAAI,qBAAuB8jD,WAAWgW,EAAa95D,IAAI,eACjKrT,EAAUxC,EAAMsC,QAAQE,OACxB2sE,KAAQ3sE,EAAQgW,SAAWhW,EAAQq8D,QAAUr8D,EAAQqlB,SAAW,MAChEoqD,OAEAQ,EAAen0B,GACfrwC,MAAO4kE,GAA0BZ,EAAmBE,GAAkB3gE,EAAE0pB,EAAE5nB,MAC1EI,IAAKi/D,GAAoBV,EAAmBE,IAAmBhD,EAAMyD,EAAsB,GAAKl/D,EAChGC,IAAKg/D,EAAmBD,GAAeT,EAAmBE,IAAmBhD,EAAM,EAAIyD,GAAuBjB,EAAcj+D,IAEhIi8D,EAAa95D,KAAMgF,KAAM43D,KAE7B9gE,OAAQ,SAAUH,GAAV,GAOAshE,GACAC,EACAC,EACAjwC,EACAkwC,EAVA1kE,EAAO/N,KACPy7D,EAASr6D,EAAEA,EAAE4P,EAAE0B,eAAeilB,KAAK5pB,EAAKlO,QAAQ+uE,OAAOC,gBACvDhvE,EAAUkO,EAAKlO,QACf6yE,EAAc7yE,EAAQ8uE,OAAW,EACjCz7D,EAAMrT,EAAQqT,IACdy/D,EAAgBD,EAAc1hE,EAAE0pB,EAAE1nB,YAMtC9E,GAAI6zB,kBAAkBh0B,EAAKP,QAASyjE,GACpC1uC,EAAWlzB,SAASosD,EAAO9sD,KAAKsiE,GAAU,IACtCxV,EAAO7D,KAAK,WAAa,IACzB6D,EAASr6D,EAAE2M,EAAKP,SAASkB,KAAK,IAAMuiE,EAAU,KAAO1uC,EAAWk5B,EAAO7D,KAAK,WAAa,GAAK,KAAKhY,GAAG,GACtGrd,EAAWlzB,SAASosD,EAAO9sD,KAAKsiE,GAAU,KAE9CwB,EAAarxE,EAAE2M,EAAKP,SAASkB,KAAK,IAAMuiE,EAAU,KAAO1uC,EAAW,GAAK,oBACzEx0B,EAAK6kE,yBACL7kE,EAAK8kE,2BACLL,EAAqBh9B,EAAWimB,GAChC8W,EAA6B/8B,EAAWi9B,GACxCH,EAAWx0B,GACPrwC,MAAO+kE,EAAqBG,EAC5Bz/D,IAAKA,EACLC,IAAKq/D,EAAqBD,EAA6Br/D,IAE3DnF,EAAK+kE,cAAcrX,EAAO,GAAI6W,GAC9BvkE,EAAKglE,2BAA2BtX,EAAO,GAAI6W,GAC3CvkE,EAAKilE,uBAAuB3jE,SAASosD,EAAO9sD,KAAKsiE,GAAU,IAAKsB,EAA4BC,EAAoBA,EAAqBF,GACrIpkE,EAAIi0B,mBAAmBp0B,EAAKP,QAASyjE,IAEzC2B,uBAAwB,WACpB,GAAIplE,GAAUxN,KAAKwN,OACU,MAAzBA,EAAQrF,MAAM+oE,KACd1jE,EAAQrF,MAAM+oE,GAAS1D,EAASh4B,EAAWp0C,EAAEoM,OAGrDqlE,yBAA0B,WAAA,GASlBnvE,GARAqK,EAAO/N,KACPsxE,EAAoBlwE,EAAE2M,EAAKP,QAAQ+1B,OAASx1B,EAAKP,QAAQ+jE,QAAQ,IACjE0B,EAAoBz9B,EAAW87B,GAC/BvlE,EAAUulE,EAAkBjrC,SAASuuB,GAAIvuB,SAASlB,GAClDtkC,EAASkL,EAAQlL,OACjBqyE,EAAuBnnE,EAAQgL,IAAI,WACnC,MAAOy+B,GAAWp0C,EAAEpB,QAGxB,KAAK0D,EAAI,EAAGA,EAAI7C,EAAQ6C,IAEhBqI,EAAQrI,GAAGyE,MAAM+oE,GADjBjE,EAAclhE,EAAQrI,GAAGyE,MAAM+oE,IACL5D,EAAcP,EAAyBmG,EAAqBxvE,GAAIuvE,IAEhEzF,EAAS0F,EAAqBxvE,KAIpEqvE,2BAA4B,SAAUtX,EAAQ6W,GAAlB,GAQpB5uE,GAPAqK,EAAO/N,KACP24D,EAAcv3D,EAAEq6D,GAAQ9sD,KAAKsiE,GAC7BkC,EAAsB/xE,EAAE2M,EAAKP,SAAS64B,SAASsuB,EAAQwZ,EAAQzZ,GAAOruB,SAASuuB,GAAIvuB,SAASt4B,EAAKlO,QAAQ+D,KAAKqT,KAAKk3D,IAAQ9sC,OAAO,WAClI,GAAIoB,GAAOziC,IACX,OAAOoB,GAAEqhC,GAAM9zB,KAAKsiE,KAAatY,GAAel2B,IAASg5B,IAEzD56D,EAASsyE,EAAoBtyE,MAEjC,KAAK6C,EAAI,EAAGA,EAAI7C,EAAQ6C,IACpBqK,EAAK+kE,cAAcK,EAAoBzvE,GAAI4uE,IAGnDQ,cAAe,SAAUrX,EAAQ6W,GAC7B,GAAIc,GAAoBhyE,EAAEpB,KAAKwN,QAAQ+1B,OAASvjC,KAAKwN,QAAQ+jE,QAAQ,GAEjE9V,GAAOtzD,MAAM+oE,GADbjE,EAAcxR,EAAOtzD,MAAM+oE,IACL5D,EAAcP,EAAyBuF,EAAU98B,EAAW49B,KAE5D5F,EAAS8E,IAGvCU,uBAAwB,SAAUra,EAAa4Z,EAA4BC,EAAoBa,GAAvE,GAMhB3vE,GALAqK,EAAO/N,KACPszE,EAAkBlyE,EAAE2M,EAAKP,SAAS64B,SAASsuB,EAAQwZ,EAAQzZ,GAAOruB,SAASuuB,GAAIvuB,SAASt4B,EAAKlO,QAAQ+D,KAAKqT,KAAKk3D,IAAQ9sC,OAAO,WAC9H,MAAOhyB,UAASjO,EAAEpB,MAAM2O,KAAKsiE,GAAU,MAAQtY,EAAc,IAE7D93D,EAASyyE,EAAgBzyE,MAE7B,KAAK6C,EAAI,EAAGA,EAAI7C,EAAQ6C,IACpBqK,EAAKwlE,sBAAsBD,EAAgB5vE,GAAI6uE,EAA4BC,EAAoBa,IAGvGE,sBAAuB,SAAUC,EAAgBjB,EAA4BC,EAAoBa,GAA1E,GACftlE,GAAO/N,KACPkT,EAAMnF,EAAKlO,QAAQqT,IACnBo/D,EACOx0B,GACPrwC,MAAO8kE,EAA6Bc,EACpCngE,IAAKA,EACLC,IAAK09D,EAAI2B,EAAqBD,EAA6Br/D,IAE/DnF,GAAK+kE,cAAcU,EAAgBlB,KAG3C79D,GAAeX,OAAS,SAAU7F,GAC9BqgE,EAAqBx6D,OAAO7F,GACxBzK,KAAM,iBACNoK,KAAM6G,EACN+5D,eAAgBn2D,KAGxB5D,EAAeuL,QAAU,SAAU/R,GAC/BqgE,EAAqBtuD,QAAQ/R,GAAUugE,eAAgBn2D,KAE3D1Y,EAAOiH,GAAU6N,eAAgBA,KACnChT,OAAOjC,QACO,kBAAVD,SAAwBA,OAAOyB,IAAMzB,OAAS,SAAU0B,EAAIC,EAAIC,IACrEA,GAAMD,OAEV,SAAU5B,EAAGC,QACVA,OAAO,gCACH,cACA,iCACA,0CACDD,IACL,YACG,SAAUE,EAAO6B,GAAjB,GACOssE,GAAOlsE,OAAO4R,KACdw9D,EAAMlD,EAAKkD,IACXzvE,EAAI5B,EAAM8lB,OACV3lB,EAASyB,EAAEzB,OACXiH,EAASpH,EAAMoC,GAAGqM,OAClBqgE,EAAuB1nE,EAAO0nE,qBAC9BV,EAAgBhnE,EAAOgnE,cACvBd,EAAoBc,EAAcd,kBAClChvB,EAAY8vB,EAAc9vB,UAC1BivB,EAA2Ba,EAAcb,yBACzCE,EAAgBW,EAAcX,cAC9BK,EAAgBM,EAAcN,cAC9BE,EAAWI,EAAcJ,SACzB93B,EAAcl2C,EAAMm2C,aACpBt9B,EAAK,0BACLy4D,EAAsB,sBACtB2C,EAAqC,8BACrC1C,EAAsB,sBACtBC,EAAO,OACPpc,EAAK,KACLD,EAAQ,QACRD,EAAQ,QACRyZ,EAAQ,IACRuF,EAAS,SACT7+D,EAAcy5D,EAAqB3uE,QACnCE,SACI+D,MAAOgxD,GACP1hD,IAAK,GACLu7D,YAAa,KACbD,eAAgBn2D,EAChBs2D,KAAK,EACLC,QACIC,cAAe,MACfzkE,MAAO,EACPC,OAAQ,GACR41B,YACI2uC,OAAQkC,EACRrzC,OAAQszC,GAEZpuE,SAAU,kGAAyGmuE,EAAsB,iBAAwB2C,EAAqC,iBAAwB1C,EAAsB,+BAG5P3B,qBAAsB,SAAUF,EAAcl+D,GAAxB,GACdjD,GAAO/N,KACP2zE,EAAe5lE,EAAKlO,QAAQ+uE,OAAO8E,GACnCtC,EAAelC,EAAa30D,SAASqjB,IAAM8X,EAAYw5B,GACvDmC,EAAgBrgE,EAAEolD,QAAUh1D,EAAE8tE,EAAa,GAAG/1C,eAAehY,WACjE,OAAIkwD,GAAgBD,EAAeuC,GAAgBtC,EAAgBD,EAAeuC,GAMtFpE,wBAAyB,SAAU3rC,GAAV,GACjB71B,GAAO/N,KACPH,EAAUkO,EAAKlO,QACf8zE,EAAe9zE,EAAQ+uE,OAAO8E,GAC9BjF,EAAcrtE,EAAEvB,EAAQ4uE,aACxB+C,EAAkB/C,EAAYvwD,GAAG8yD,GAAQ,EAAIvC,EAAYttD,YACzDswD,EAAmBhD,EAAYvwD,GAAG8yD,GAAQ,EAAIxxE,EAAM+2D,WAAWkY,GAC/DkD,EAAiB9xE,EAAQ8uE,IAAM7B,EAAkB2B,EAAY,IAAM,EACnEmF,EAAgBhwC,EAAIrpB,SAASF,MAAQo0D,EAAYl0D,SAASF,KAAO8+C,WAAWsV,EAAYp5D,IAAI,qBAAuB8jD,WAAWv1B,EAAIvuB,IAAI,eACtIw+D,EAAejwC,EAAIrpB,SAASqjB,KAAO6wC,EAAYl0D,SAASqjB,IAAMu7B,WAAWsV,EAAYp5D,IAAI,oBAAsB8jD,WAAWv1B,EAAIvuB,IAAI,cAClIrT,EAAUxC,EAAMsC,QAAQE,OACxBnC,GAAQ8uE,MAAQ3sE,EAAQgW,SAAWhW,EAAQq8D,QAAUr8D,EAAQqlB,SAAW,MACxEoqD,OAEJ1jE,EAAKohE,aAAa95D;AACduoB,IAAKi2C,EAAen+B,EAAY9R,GAAO4tC,EAAkBmC,EAAe,EACxEt5D,KAAMu5D,GAAiBnC,EAAmBE,GAC1CrzC,SAAU,cAGlBkxC,0BAA2B,WAAA,GACnBzhE,GAAO/N,KACPozE,EAAoBhyE,EAAE2M,EAAKP,QAAQ+1B,OAASx1B,EAAKP,QAAQ+jE,QAAQ,GACrExjE,GAAKohE,aAAa95D,KACdjL,MAAOgpE,EAAkBhpE,QACzBC,OAAQ0D,EAAKlO,QAAQ+uE,OAAO8E,MAGpCvD,4BAA6B,SAAUn/D,GAAV,GACrBjD,GAAO/N,KACPH,EAAUkO,EAAKlO,QACfqT,EAAMrT,EAAQqT,IACd4+D,EAAY1wE,EAAE2M,EAAKP,SAAS64B,SAASquB,GACrCqd,EAAY3wE,EAAE2M,EAAKP,SAAS64B,SAASsuB,GACrCmf,EAAuBhC,EAAUjxE,OAAS,EAAIixE,EAAYC,EAC1D5C,EAAe/tE,EAAE2M,EAAKohE,cACtBvrC,EAAMxiC,EAAE4P,EAAE0B,eAAeilB,KAAK93B,EAAQ+uE,OAAOC,eAC7CkF,EAAO3yE,EAAEwiC,GACT6qC,EAAcrtE,EAAEvB,EAAQ4uE,aACxB+C,EAAkB/C,EAAYvwD,GAAG8yD,GAAQ,EAAIvC,EAAYttD,YACzD6yD,EAAiBF,EAAqBv5D,SAASqjB,KAAO6wC,EAAYl0D,SAASqjB,IAAMu7B,WAAWsV,EAAYp5D,IAAI,oBAAsB8jD,WAAW2a,EAAqBz+D,IAAI,cACtKw+D,EAAeE,EAAKx5D,SAASqjB,KAAO6wC,EAAYl0D,SAASqjB,IAAMu7B,WAAWsV,EAAYp5D,IAAI,oBAAsB8jD,WAAW4a,EAAK1+D,IAAI,cACpI4+D,EAAwB9E,EAAa50D,SAASqjB,KAAOvqB,KAAKF,IAAI,EAAGs7D,EAAYl0D,SAASqjB,KAAOu7B,WAAWsV,EAAYp5D,IAAI,oBAAsB8jD,WAAWgW,EAAa95D,IAAI,cAC1K48D,EAAen0B,GACfrwC,MAAOwmE,EAAwBzC,EAAkBxgE,EAAE+B,EAAED,MACrDI,IAAK2gE,EAAerC,EAAkBt+D,EACtCC,IAAK6gE,EAAiBt+B,EAAYo8B,GAAap8B,EAAYq8B,GAAaP,EAAkB3xE,EAAQ+uE,OAAO8E,GAAUxgE,GAEvHi8D,GAAa95D,KAAMuoB,IAAKq0C,KAE5B9gE,OAAQ,SAAUH,GAAV,GACAjD,GAAO/N,KACPH,EAAUkO,EAAKlO,QACf+jC,EAAMxiC,EAAE4P,EAAE0B,eAAeilB,KAAK93B,EAAQ+uE,OAAOC,eAC7CqF,EAAmBx+B,EAAYt0C,EAAEwiC,IACjCp2B,EAAUpM,EAAE2M,EAAKP,SACjB2mE,EAAqBz+B,EAAYloC,GACjCskE,EAAYtkE,EAAQ64B,SAASquB,GAC7B0f,EAAkBtC,EAAUjxE,OAAS,EAAIixE,EAAUznE,SAAW,EAC9D0nE,EAAYvkE,EAAQ64B,SAASsuB,GAC7B0f,EAAkBtC,EAAU1nE,SAC5BiqE,EAAqB1wC,EAAIz7B,MAAMurE,GAC/Ba,EAAez2B,GACfrwC,MAAOymE,EAAmBljE,EAAE+B,EAAEC,aAC9BE,IAAKrT,EAAQqT,IACbC,IAAK09D,EAAIuD,EAAkBC,EAAkBx0E,EAAQqT,MAEzDnF,GAAKymE,yBACL5wC,EAAIz7B,MAAMurE,GAAUlG,EAAS+G,GAC7BxmE,EAAK0mE,gBAAgBN,GAAsBI,EAAeL,IACtDjH,EAAcqH,IACdvmE,EAAK2mE,+BAGbF,uBAAwB,WAAA,GAOhB9wE,GANAqK,EAAO/N,KACPgM,EAAO5K,EAAE2M,EAAKP,SAAS64B,SAASsuB,EAAQwZ,EAAQzZ,GAAOruB,SAASuuB,GAChE/zD,EAASmL,EAAKnL,OACd8zE,EAAqB3oE,EAAK+K,IAAI,WAC9B,MAAO2+B,GAAYt0C,EAAEpB,QAGzB,KAAK0D,EAAI,EAAGA,EAAI7C,EAAQ6C,IACpBsI,EAAKtI,GAAGyE,MAAMurE,GAAUlG,EAASmH,EAAmBjxE,KAG5DgxE,4BAA6B,WAAA,GAWrBhxE,GAVAqK,EAAO/N,KACP8xE,EAAY1wE,EAAE2M,EAAKP,SAAS64B,SAASquB,GACrC0f,EAAkBtC,EAAUjxE,OAAS,EAAIixE,EAAUznE,SAAW,EAC9D0nE,EAAY3wE,EAAE2M,EAAKP,SAAS64B,SAASsuB,GACrC0f,EAAkBtC,EAAU1nE,SAC5B2B,EAAO5K,EAAE2M,EAAKP,SAAS64B,SAASquB,EAAQyZ,EAAQxZ,GAAOtuB,SAASuuB,GAChE/zD,EAASmL,EAAKnL,OACd8zE,EAAqB3oE,EAAK+K,IAAI,WAC9B,MAAO2+B,GAAYt0C,EAAEpB,QAGzB,KAAK0D,EAAI,EAAGA,EAAI7C,EAAQ6C,IACpBsI,EAAKtI,GAAGyE,MAAMurE,GAAUpG,EAAcP,EAAyB4H,EAAmBjxE,GAAI0wE,EAAkBC,KAGhHI,gBAAiB,SAAUG,GACvB,GAAIpnE,GAAUxN,KAAKwN,OAEfA,GAAQrF,MAAMurE,GADdzG,EAAcz/D,EAAQrF,MAAMurE,IACJpG,EAAcP,EAAyB6H,EAAWxzE,EAAEoM,GAAS8Z,SAASjd,WAEtEmjE,EAASoH,KAI7C//D,GAAYf,OAAS,SAAU7F,GAC3BqgE,EAAqBx6D,OAAO7F,GACxBzK,KAAM,cACNoK,KAAMiH,EACN25D,eAAgBn2D,KAGxBxD,EAAYmL,QAAU,SAAU/R,GAC5BqgE,EAAqBtuD,QAAQ/R,GAAUugE,eAAgBn2D,KAE3D1Y,EAAOiH,GAAUiO,YAAaA,KAChCpT,OAAOjC,QACO,kBAAVD,SAAwBA,OAAOyB,IAAMzB,OAAS,SAAU0B,EAAIC,EAAIC,IACrEA,GAAMD,OAEV,SAAU5B,EAAGC,QACVA,OAAO,yCACH,cACA,oBACA,kCACDD,IACL,YACG,SAAUE,EAAO6B,GAAjB,GA4KOwzE,GAqDAC,EAYAC,EAYAC,EAYAC,EAYAC,EAYAC,EAYAC,EAYAC,EAYAC,EAEAC,EA8BAC,EAYAC,EAEAC,EAEAC,EAYAC,EAEAC,EAEAC,EAYAC,EAOAC,EAOAC,EAOAC,EAjaA90E,EAAI5B,EAAM8lB,OACV3lB,EAASyB,EAAEzB,OACXgkB,EAAOviB,EAAEuiB,KACT1hB,EAAQb,EAAEa,MACV2E,EAASpH,EAAMoC,GAAGqM,OAClBvM,EAAQlC,EAAMkC,MACdy0E,EAAY32E,EAAMoC,GAAGu0E,UACrBz2E,EAAaF,EAAME,WACnBotE,EAAoBlmE,EAAOgnE,cAAcd,kBACzCt3B,EAAah2C,EAAMi2C,YACnBC,EAAcl2C,EAAMm2C,aACpBt9B,EAAK,kCACLy4D,EAAsB,0BACtBsF,EAAa,YACbC,EAAO,OACPC,EAAW,UACXC,EAAc,aACdC,EAAa,YACbC,EAAY,WACZzF,EAAO,OACPvc,EAAQ,QACRiiB,EAAO,OACPC,EAAQ,QACRC,EAAY,YACZC,EAAY,YACZC,EAAQ,QACRC,EAAY,YACZC,EAAY,YACZC,EAAO,OACP7I,EAAM,IACN8I,GAAsBx3E,EAAWC,QACjCC,KAAM,SAAUC,GACZ,GAAIkO,GAAO/N,IACXN,GAAWI,GAAGF,KAAKG,KAAKgO,GACxBA,EAAKlO,QAAUF,KAAWoO,EAAKlO,QAASA,GACxCkO,EAAKP,QAAUpM,EAAE2M,EAAKlO,QAAQ8C,UAAUyS,SAASrH,EAAKlO,QAAQuV,UAAU,GACxErH,EAAKwgE,uBACLxgE,EAAKopE,aACLppE,EAAKqpE,iBACLrpE,EAAKspE,2BACLtpE,EAAKupE,wBACLl2E,EAAE2M,EAAKP,SAASmqB,KAAK88B,EAAO1mD,EAAKlO,QAAQ03E,mBAE7CnjE,QAAS,WACL,GAAIrG,GAAO/N,IACXoB,GAAE2M,EAAKP,SAASqL,IAAIR,GAAI9E,SACxBxF,EAAKP,QAAU,KACfO,EAAKypE,oBACLzpE,EAAKsG,UAETxU,SACIuV,SAAU,KACVoF,UAAWu8D,EACXQ,iBAAkB,KAClB5I,KAAK,EACLhsE,SAAU,sGAAoHmuE,EAAsB,kBAExJ5wE,QACIk2E,EACAC,EACAC,EACAE,EACAC,GAEJjlE,KAAM,WACFxR,KAAKy3E,gBAETA,aAAc,WAAA,GACN1pE,GAAO/N,KACPs+B,EAAWvwB,EAAK2pE,qBAAqBC,aACzCv2E,GAAE2M,EAAKP,SAAS6H,KACZuoB,IAAKU,EAASV,IACdvjB,KAAMikB,EAASjkB,KACfikB,SAAU,cAGlBiwC,qBAAsB,WAClB,GAAIxgE,GAAO/N,IACXoB,GAAE2M,EAAKP,SAASkL,GAAG89D,EAAan+D,EAAIpW,EAAM8L,EAAK6pE,aAAc7pE,IAAO2K,GAAG+9D,EAAYp+D,EAAIpW,EAAM8L,EAAK8pE,YAAa9pE,KAEnH6pE,aAAc,WACV53E,KAAKU,QAAQ81E,IAEjBqB,YAAa,WACT73E,KAAKU,QAAQ+1E,IAEjBU,WAAY,WACR,GAAIppE,GAAO/N,IACXoB,GAAE2M,EAAKP,SAAS64B,SAAS+nC,EAAM0C,GAAqBliE,SAAS,YAAcb,EAAKlO,QAAQ2a,YAE5F68D,yBAA0B,WAAA,GAClBtpE,GAAO/N,KACPH,EAAUkO,EAAKlO,OACnBkO,GAAK2pE,qBAAuB7C,EAA0B/gE,QAClDtQ,KAAM3D,EAAQ2a,UACdo0D,OAAQ7gE,EAAKP,QACb+pE,iBAAkB13E,EAAQ03E,iBAC1B9I,YAAa5uE,EAAQ4uE,YACrBE,IAAK9uE,EAAQ8uE,OAGrByI,eAAgB,WAAA,GACRrpE,GAAO/N,KACPwN,EAAUO,EAAKP,SACfO,EAAK+pE,YAAetqE,IAGxBO,EAAK+pE,WAAa,GAAI3B,GAAU3oE,GAC5BuqE,UAAW91E,EAAM8L,EAAKiqE,aAAcjqE,GACpCkqE,KAAMh2E,EAAM8L,EAAKmqE,QAASnqE,GAC1B4rC,QAAS13C,EAAM8L,EAAKoqE,WAAYpqE,OAGxCiqE,aAAc,WACVh4E,KAAKU,QAAQ01E,IAEjB8B,QAAS,SAAUlnE,GACf,GAAIjD,GAAO/N,IACX+N,GAAKrN,QAAQ21E,EAAMtoE,EAAKqqE,kBAAkBC,iBACtCC,OAAQtnE,EAAE0pB,EAAE5nB,MACZylE,OAAQvnE,EAAE+B,EAAED,MACZ6/D,cAAe3hE,EAAE0pB,EAAE1nB,aACnBwlE,cAAexnE,EAAE+B,EAAEC,iBAG3BmlE,WAAY,WACRn4E,KAAKU,QAAQ41E,IAEjBkB,kBAAmB,WACf,GAAIzpE,GAAO/N,IACP+N,GAAK+pE,aACL/pE,EAAK+pE,WAAW1jE,UAChBrG,EAAK+pE,WAAa,OAG1BR,sBAAuB,WACnB,GAAIvpE,GAAO/N,IACX+N,GAAKqqE,kBAAoB7C,EAAuBzhE,QAAStQ,KAAMuK,EAAKlO,QAAQ2a,eAGhFi+D,GAAkB/2E,EAAM/B,QACxBC,KAAM,WACFI,KAAK04E,WAETC,SAAU,SAAUn1E,EAAMoK,GACtB5N,KAAK04E,OAAOv4E,MACRqD,KAAMA,EACNoK,KAAMA,KAGdkG,OAAQ,SAAUjU,GAAV,GAIA4hC,GACA0H,EACAzlC,EALA8hB,EAAQxlB,KAAK04E,OACbE,EAAcpzD,EAAM3kB,OACpB2C,EAAO3D,EAAQ2D,KAAO3D,EAAQ2D,KAAKmD,cAAgB,EAIvD,KAAKjD,EAAI,EAAGA,EAAIk1E,EAAal1E,IAEzB,GADAylC,EAAO3jB,EAAM9hB,GACTylC,EAAK3lC,KAAKmD,gBAAkBnD,EAAM,CAClCi+B,EAAQ0H,CACR,OAGR,GAAI1H,EACA,MAAO,IAAIA,GAAM7zB,KAAK/N,MAI9Bg5E,GAA6BJ,GAAgB94E,UACjDk5E,IAA2BhlE,QAAU,GAAIglE,IACrChE,EAA4BnzE,EAAM/B,QAClCC,KAAM,SAAUC,GACZ,GAAIkO,GAAO/N,IACX+N,GAAKlO,QAAUF,KAAWoO,EAAKlO,QAASA,IAE5CA,SACI+uE,OAAQ,KACRr0D,OAAQg8D,EACRgB,iBAAkB,KAClB9I,YAAa,KACbE,KAAK,GAETgJ,YAAa,WAAA,GACL5pE,GAAO/N,KACPs+B,EAAWvwB,EAAK+qE,oBAChBC,EAAuBhrE,EAAKirE,kBAAkB16C,GAC9C26C,EAAuBlrE,EAAKmrE,kBAAkBH,EAClD,OAAOE,IAEXH,kBAAmBn1D,EACnBq1D,kBAAmB,SAAU16C,GAAV,GACXz+B,GAAUG,KAAKH,QACf+uE,EAASxtE,EAAEvB,EAAQ+uE,OACvB,OAAI/uE,GAAQ0a,SAAWg8D,GAEf34C,IAAKU,EAASV,IAAM8X,EAAYk5B,GAAU,EAC1Cv0D,KAAMikB,EAASjkB,KAAOm7B,EAAWo5B,GAAU,GAG5CtwC,GAEX46C,kBAAmB,SAAU56C,GAAV,GAKX66C,GAJAt5E,EAAUG,KAAKH,QACf4uE,EAAcrtE,EAAEvB,EAAQ4uE,aACxBkD,EAAiB9xE,EAAQ8uE,IAAM7B,EAAkB2B,EAAY,IAAM,EACnEzsE,EAAUxC,EAAMsC,QAAQE,OAE5B,OAAKysE,GAAYvwD,GAAG8yD,GAUb1yC,GATH66C,EAAW35E,EAAM+2D,WAAWkY,IAAgB,EACxC5uE,EAAQ8uE,MAAQ3sE,EAAQgW,SAAWhW,EAAQq8D,QAAUr8D,EAAQqlB,SAAW,MACxE8xD,QAGAv7C,IAAKU,EAASV,KAAO6wC,EAAYttD,aAAe,GAChD9G,KAAMikB,EAASjkB,KAAO8+D,EAAWxH,OAMjDkD,EAA0B/gE,OAAS,SAAUjU,GACzC,MAAOg5E,IAA2BhlE,QAAQC,OAAOjU,IAEjDi1E,EAA0BD,EAA0Bl1E,QACpDm5E,kBAAmB,WAAA,GACXvB,GAAmBn2E,EAAEpB,KAAKH,QAAQ03E,kBAClCh9D,EAASg9D,EAAiBj5C,WAC1BirB,EAAal6C,SAASkoE,EAAiBliE,IAAI,cAAe,GAC9D,QACIuoB,IAAKrjB,EAAOqjB,IAAM8X,EAAY6hC,GAAoB,EAClDl9D,KAAME,EAAOF,KAAOm7B,EAAW+hC,GAAoBhuB,MAI/DsvB,GAA2BhlE,QAAQ8kE,SAASjC,EAAM5B,GAC9CC,EAA2BF,EAA0Bl1E,QACrDm5E,kBAAmB,WAAA,GACXvB,GAAmBn2E,EAAEpB,KAAKH,QAAQ03E,kBAClCh9D,EAASg9D,EAAiBj5C,WAC1BirB,EAAal6C,SAASkoE,EAAiBliE,IAAI,cAAe,GAC9D,QACIuoB,IAAKrjB,EAAOqjB,IACZvjB,KAAME,EAAOF,KAAOm7B,EAAW+hC,GAAoB,EAAIhuB,MAInEsvB,GAA2BhlE,QAAQ8kE,SAAShC,EAAO5B,GAC/CC,EAA+BH,EAA0Bl1E,QACzDm5E,kBAAmB,WAAA,GACXvB,GAAmBn2E,EAAEpB,KAAKH,QAAQ03E,kBAClCh9D,EAASg9D,EAAiBj5C,WAC1BirB,EAAal6C,SAASkoE,EAAiBliE,IAAI,cAAe,GAC9D,QACIuoB,IAAKrjB,EAAOqjB,IACZvjB,KAAME,EAAOF,KAAOm7B,EAAW+hC,GAAoBhuB,MAI/DsvB,GAA2BhlE,QAAQ8kE,SAAS/B,EAAW5B,GACnDC,EAA+BJ,EAA0Bl1E,QACzDm5E,kBAAmB,WAAA,GACXvB,GAAmBn2E,EAAEpB,KAAKH,QAAQ03E,kBAClCh9D,EAASg9D,EAAiBj5C,WAC1BirB,EAAal6C,SAASkoE,EAAiBliE,IAAI,cAAe,GAC9D,QACIuoB,IAAKrjB,EAAOqjB,IACZvjB,KAAME,EAAOF,KAAOkvC,MAIhCsvB,GAA2BhlE,QAAQ8kE,SAAS9B,EAAW5B,GACnDC,EAA2BL,EAA0Bl1E,QACrDm5E,kBAAmB,WAAA,GACXvB,GAAmBn2E,EAAEpB,KAAKH,QAAQ03E,kBAClCh9D,EAASg9D,EAAiBj5C,WAC1BirB,EAAal6C,SAASkoE,EAAiBliE,IAAI,cAAe,GAC9D,QACIuoB,IAAKrjB,EAAOqjB,IAAM8X,EAAY6hC,GAC9Bl9D,KAAME,EAAOF,KAAOm7B,EAAW+hC,GAAoB,EAAIhuB,MAInEsvB,GAA2BhlE,QAAQ8kE,SAAS7B,EAAO5B,GAC/CC,EAA+BN,EAA0Bl1E,QACzDm5E,kBAAmB,WAAA,GACXvB,GAAmBn2E,EAAEpB,KAAKH,QAAQ03E,kBAClCh9D,EAASg9D,EAAiBj5C,WAC1BirB,EAAal6C,SAASkoE,EAAiBliE,IAAI,cAAe,GAC9D,QACIuoB,IAAKrjB,EAAOqjB,IAAM8X,EAAY6hC,GAC9Bl9D,KAAME,EAAOF,KAAOm7B,EAAW+hC,GAAoBhuB,MAI/DsvB,GAA2BhlE,QAAQ8kE,SAAS5B,EAAW5B,GACnDC,EAA+BP,EAA0Bl1E,QACzDm5E,kBAAmB,WAAA,GACXvB,GAAmBn2E,EAAEpB,KAAKH,QAAQ03E,kBAClCh9D,EAASg9D,EAAiBj5C,WAC1BirB,EAAal6C,SAASkoE,EAAiBliE,IAAI,cAAe,GAC9D,QACIuoB,IAAKrjB,EAAOqjB,IAAM8X,EAAY6hC,GAC9Bl9D,KAAME,EAAOF,KAAOkvC,MAIhCsvB,GAA2BhlE,QAAQ8kE,SAAS3B,EAAW5B,GACnDC,EAA0BR,EAA0Bl1E,QACpDm5E,kBAAmB,WAAA,GACXvB,GAAmBn2E,EAAEpB,KAAKH,QAAQ03E,kBAClCh9D,EAASg9D,EAAiBj5C,WAC1BirB,EAAal6C,SAASkoE,EAAiBliE,IAAI,cAAe,GAC9D,QACIuoB,IAAKrjB,EAAOqjB,IAAM8X,EAAY6hC,GAAoB,EAClDl9D,KAAME,EAAOF,KAAOkvC,MAIhCsvB,GAA2BhlE,QAAQ8kE,SAAS1B,EAAM5B,GAC9CC,EAA0BmD,GAAgB94E,WAC9C21E,EAAwBzhE,QAAU,GAAIyhE,GAClCC,EAAyB7zE,EAAM/B,QAC/BC,KAAM,SAAUC,GACZ,GAAIkO,GAAO/N,IACX+N,GAAKlO,QAAUF,KAAWoO,EAAKlO,QAASA,IAE5CA,SACIy4E,QACIc,WAAY,KACZ1P,SAAU,MAEd6O,QACIa,WAAY,KACZ1P,SAAU,OAGlB2O,gBAAiB,SAAUgB,GAAV,GACTx5E,GAAUG,KAAKH,QACfy5E,EAAkBz5E,EAAQy4E,OAAOc,WAAav5E,EAAQy4E,OAAO5O,SAC7D6P,EAAkB15E,EAAQ04E,OAAOa,WAAav5E,EAAQ04E,OAAO7O,QACjE,QACI4O,OAAQe,EAAOf,OAASgB,EACxBf,OAAQc,EAAOd,OAASgB,EACxB5G,cAAe0G,EAAO1G,cAAgB2G,EACtCd,cAAea,EAAOb,cAAgBe,MAIlDhE,EAAuBzhE,OAAS,SAAUjU,GACtC,MAAOy1E,GAAwBzhE,QAAQC,OAAOjU,IAE9C21E,EAA6BD,EAAuB51E,QACpDE,SACIy4E,QACIc,WAAY,EACZ1P,SAAU,GAEd6O,QACIa,WAAY,EACZ1P,SAAU,MAIlB+L,EAAuBD,EAA2B71E,QAASE,SAAWy4E,QAAU5O,SAAU,MAC9F4L,EAAwBzhE,QAAQ8kE,SAASjC,EAAMjB,GAC3CC,EAAuBF,EAA2B71E,QAASE,SAAWy4E,QAAU5O,gBACpF4L,EAAwBzhE,QAAQ8kE,SAAS1B,EAAMvB,GAC3CC,EAA2BJ,EAAuB51E,QAClDE,SACIy4E,QACIc,WAAY,EACZ1P,SAAU,GAEd6O,QACIa,WAAY,EACZ1P,SAAU,MAIlBkM,EAAwBD,EAAyBh2E,QAASE,SAAW04E,QAAU7O,gBACnF4L,EAAwBzhE,QAAQ8kE,SAAShC,EAAOf,GAC5CC,EAAwBF,EAAyBh2E,QAASE,SAAW04E,QAAU7O,SAAU,MAC7F4L,EAAwBzhE,QAAQ8kE,SAAS7B,EAAOjB,GAC5CC,EAAwCP,EAAuB51E,QAC/DE,SACIy4E,QACIc,WAAY,EACZ1P,SAAU,GAEd6O,QACIa,WAAY,EACZ1P,SAAU,MAIlBqM,EAA4BD,EAAsCn2E,QAClEE,SACIy4E,QAAU5O,SAAU,GACpB6O,QAAU7O,gBAGlB4L,EAAwBzhE,QAAQ8kE,SAAS/B,EAAWb,GAChDC,EAA4BF,EAAsCn2E,QAClEE,SACIy4E,QAAU5O,aACV6O,QAAU7O,gBAGlB4L,EAAwBzhE,QAAQ8kE,SAAS9B,EAAWb,GAChDC,EAA4BH,EAAsCn2E,QAClEE,SACIy4E,QAAU5O,SAAU,GACpB6O,QAAU7O,SAAU,MAG5B4L,EAAwBzhE,QAAQ8kE,SAAS5B,EAAWd,GAChDC,EAA4BJ,EAAsCn2E,QAClEE,SACIy4E,QAAU5O,aACV6O,QAAU7O,SAAU,MAG5B4L,EAAwBzhE,QAAQ8kE,SAAS3B,EAAWd,GACpDv2E,EAAOiH,GAAUswE,oBAAqBA,MACxCz1E,OAAOjC,QACO,kBAAVD,SAAwBA,OAAOyB,IAAMzB,OAAS,SAAU0B,EAAIC,EAAIC,IACrEA,GAAMD,OAEV,SAAU5B,EAAGC,QACVA,OAAO,oCACH,cACA,wCACA,kCACDD,IACL,YACG,SAAUE,EAAO6B,GA0Dd,QAASm4E,GAAY/rE,GACjB,MAAwB,KAAVA,EA3DrB,GACOigE,GAASjsE,OACTksE,EAAOD,EAAOr6D,KACdH,EAAMy6D,EAAKz6D,IACXC,EAAMw6D,EAAKx6D,IACX/R,EAAI5B,EAAM8lB,OACV/H,EAAWnc,EAAEmc,SACb5d,EAASyB,EAAEzB,OACXsC,EAAQb,EAAEa,MACVD,EAAUxC,EAAMsC,QAAQE,QACxB4E,EAASpH,EAAMoC,GAAGqM,OAClBvM,EAAQlC,EAAMkC,MACdw1E,EAAsBtwE,EAAOswE,oBAC7BtJ,EAAgBhnE,EAAOgnE,cACvBb,EAA2Ba,EAAcb,yBACzCjvB,EAAY8vB,EAAc9vB,UAC1BmvB,EAAgBW,EAAcX,cAC9BG,EAAWQ,EAAcR,SACzBE,EAAgBM,EAAcN,cAC9BE,EAAWI,EAAcJ,SACzBh4B,EAAah2C,EAAMi2C,YACnBC,EAAcl2C,EAAMm2C,aACpBp1B,EAAa3Z,EAAO2Z,WACpBlI,EAAK,8BACLohE,EAA8B,kCAC9BC,EAAc,UACdC,EAAyB,qBACzBvD,EAAa,YACbC,EAAO,OACPC,EAAW,UACXzI,EAAW,UACXC,EAAa,YACb0I,EAAa,YACbC,EAAY,WACZt0E,EAAS,SACTy3E,EAAO,OACPC,EAAS,KACT1lB,EAAM,KACNQ,EAAQ,QACRD,EAAQ,QACRD,EAAQ,QACRqlB,EAAM,MACNC,GACA,QACA,OAEA5L,EAAQ,IACR+C,EAAQ,QACRwC,EAAS,SACTgD,EAAO,OACPC,EAAQ,QACRC,EAAY,YACZC,EAAY,YACZC,EAAQ,QACRC,EAAY,YACZC,GAAY,YACZC,GAAO,OACP7I,GAAM,IAIN4L,GAAkBt4E,EAAM/B,QACxBC,KAAM,SAAU4N,EAAS3N,GACrB,GAAIkO,GAAO/N,IACX+N,GAAKlO,QAAUF,KAAWoO,EAAKlO,QAASA,GACxCkO,EAAKksE,WACDF,EAAcxqE,QAAQ/B,EAAQwM,WAAa,IAC3CjM,EAAKP,QAAUA,IAGvB4G,QAAS,WACL,GAAIrG,GAAO/N,IACXoB,GAAE2M,EAAKP,SAASqL,IAAIR,GACpBtK,EAAKP,QAAU,KACfpM,EAAE2M,EAAKlO,QAAQ4uE,aAAa51D,IAAIg1D,EAAWx1D,GAC3CtK,EAAKmsE,yBAETr6E,SACIs6E,gBAAiB,KACjBxL,KAAK,EACLF,YAAa,KACb2L,SAAU,GACV7gC,UAAW,GACX0gC,UACMz/D,UAAWq8D,IACXr8D,UAAWm8D,IACXn8D,UAAWo8D,IACXp8D,UAAWk8D,IACXl8D,UAAWu8D,IACXv8D,UAAWs8D,IACXt8D,UAAWw8D,KACXx8D,UAAWy8D,MAGrB9lE,OAAQ,SAAUoT,GAAV,GACAxW,GAAO/N,KACPq5E,EAAS15E,MACT24E,OAAQ,EACRC,OAAQ,EACR5F,cAAe,EACf6F,cAAe,GAChBj0D,EACHxW,GAAKssE,aAAahB,EAAOf,OAAQe,EAAO1G,eACxC5kE,EAAKusE,cAAcjB,EAAOd,OAAQc,EAAOb,eACzCzqE,EAAKwG,qBAET8lE,aAAc,WACV,OAAO,GAEXC,cAAe,WACX,OAAO,GAEXC,sBAAuB,SAAUC,GAAV,GACfzsE,GAAO/N,KACPwN,EAAUpM,EAAE2M,EAAKP,SACjBitE,EAAqBD,EAAU7zE,cAC/B+rE,EAAc3kE,EAAKlO,QAAQ8uE,OAAW,EACtCrnD,EAASlmB,EAAE2M,EAAKP,SAAS8Z,SACzBxN,EAAgBwN,EAAO,GACvBozD,EAAkBpzD,EAAOmzD,KACzBE,EAAqBjI,GAAe8H,IAActJ,EAAQ1xE,EAAM+2D,WAAWjvC,GAAUA,EAAOnG,YAChG,OAAIrH,IAAiBA,IAAkBtM,EAAQc,QAAQurE,GAAQ,GACX,KAA5C//D,EAAc3R,MAAMsyE,IAA+BxN,EAAcl/D,EAAKP,QAAQrF,MAAMsyE,IAG7EC,EAAkBC,EAFlBvnE,EAAAA,EAKJsnE,EAAkBC,GAGjCpmE,kBAAmB,WACf,GAAIxG,GAAO/N,IACX+N,GAAK6sE,qBACL7sE,EAAK4tD,sBAETif,mBAAoB,WAAA,GAMZl3E,GALAqK,EAAO/N,KACPi6E,EAAUlsE,EAAKksE,QACfp6E,EAAUkO,EAAKlO,QACfovE,EAAgBlhE,EAAKlO,QAAQo6E,QAC7Bp5E,EAASouE,EAAcpuE,MAE3B,MAAIo5E,GAAWA,EAAQp5E,OAAS,GAAhC,CAGA,IAAK6C,EAAI,EAAGA,EAAI7C,EAAQ6C,IACpBqK,EAAKksE,QAAQ95E,KAAK,GAAI+2E,GAAoBv3E,GACtCyV,SAAUvV,EAAQs6E,gBAClB5C,iBAAkBxpE,EAAKP,QACvBihE,YAAa5uE,EAAQ4uE,YACrBE,IAAK9uE,EAAQ8uE,KACdM,EAAcvrE,KAErBqK,GAAK8sE,+BAETX,sBAAuB,WAAA,GAGVx2E,GAFLqK,EAAO/N,KACPa,EAASkN,EAAKksE,QAAUlsE,EAAKksE,QAAQp5E,OAAS,CAClD,KAAS6C,EAAI,EAAGA,EAAI7C,EAAQ6C,IACxBqK,EAAKksE,QAAQv2E,GAAG0Q,SAEpBrG,GAAKksE,YAETte,mBAAoB,WAAA,GAIZj4D,GAHAqK,EAAO/N,KACPi6E,EAAUlsE,EAAKksE,YACfp5E,EAASo5E,EAAQp5E,MAErB,KAAK6C,EAAI,EAAGA,EAAI7C,EAAQ6C,IACpBqK,EAAKksE,QAAQv2E,GAAG8N,QAGxBqpE,2BAA4B,WACxB,OAAO,GAEXC,yBAA0B,WAAA,GAClB/sE,GAAO/N,KACPwN,EAAUpM,EAAE2M,EAAKP,QACrBA,GAAQoB,SAAS+qE,GACjB5rE,EAAKgtE,sBAAwBrlC,EAAYloC,GACzCO,EAAKitE,qBAAuBxlC,EAAWhoC,GACvCO,EAAKmiE,oBAET+K,oBAAqB,SAAUjqE,GAC3BhR,KAAKmR,OAAOH,IAEhBkqE,uBAAwB,WACpB,GAAIntE,GAAO/N,IACXoB,GAAE2M,EAAKP,SAASiQ,YAAYk8D,GAC5B5rE,EAAKqiE,mBAETA,gBAAiB,WACbhvE,EAAEpB,KAAKH,QAAQ4uE,aAAa51D,IAAIg1D,EAAWx1D,IAE/C63D,iBAAkB,WACd9uE,EAAEpB,KAAKH,QAAQ4uE,aAAa/1D,GAAGm1D,EAAWx1D,EAAI,SAAUrH,GACpDA,EAAEgK,sBAIVmgE,GAAgBnB,GAAgBr6E,QAChCk7E,2BAA4B,WAAA,GAIpBn3E,GACAkrE,EAJA7gE,EAAO/N,KACPi6E,EAAUlsE,EAAKksE,YACfp5E,EAASo5E,EAAQp5E,MAGrB,KAAK6C,EAAI,EAAGA,EAAI7C,EAAQ6C,IACpBkrE,EAASqL,EAAQv2E,GACjBkrE,EAAO36D,KAAKmiE,EAAYn0E,EAAM8L,EAAK+sE,yBAA0B/sE,IAC7D6gE,EAAO36D,KAAKoiE,EAAMp0E,EAAM8L,EAAKktE,oBAAqBltE,IAClD6gE,EAAO36D,KAAKqiE,EAAUr0E,EAAM8L,EAAKmtE,uBAAwBntE,IACzD6gE,EAAO36D,KAAKuiE,EAAYv0E,EAAM8L,EAAKqtE,yBAA0BrtE,IAC7D6gE,EAAO36D,KAAKwiE,EAAWx0E,EAAM8L,EAAKstE,wBAAyBttE,KAGnEutE,iBAAkB,WAAA,GAGL53E,GAFLqK,EAAO/N,KACPgM,EAAO5K,EAAE2M,EAAKP,SAAS64B,SAASquB,EAAQyZ,EAAQxZ,GAAOtuB,SAAS8tB,EACpE,KAASzwD,EAAI,EAAGA,EAAIsI,EAAKnL,OAAQ6C,IAC7B,GAA6B,KAAzBsI,EAAKtI,GAAGyE,MAAMkC,QAAiB+iE,EAASphE,EAAKtI,GAAGyE,MAAMkC,QACtD,OAAO,CAGf,QAAO,GAEXgwE,aAAc,SAAUvnE,EAAOE,GAAjB,GAONs/D,GACAiJ,EACAC,EACAC,EATA1tE,EAAO/N,KACPwN,EAAUpM,EAAE2M,EAAKP,SACjBkuE,EAAaluE,EAAQ,GAAGrF,MAAM+oE,GAC9ByK,EAAenmC,EAAWhoC,GAC1BouE,EAAcpuE,EAAQ8Z,SAASld,QAC/ByxE,EAAW9tE,EAAKwsE,sBAAsBrJ,EAK5B,KAAVp+D,IAGA0mE,EAAYzrE,EAAKitE,wBACjBjtE,EAAKitE,qBAAuBW,GAEhCF,EAAmB39B,GACfrwC,MAAOM,EAAKitE,qBAAuBhoE,EACnCE,IAAKnF,EAAKlO,QAAQu6E,SAClBjnE,IAAK0oE,IAEL5O,EAAcyO,IACVC,EAAe7oE,EAAQ8oE,GACvBL,EAAapoE,EAAIsoE,EAAkBG,GACnCJ,EAAkBtoE,EAAIuoE,EAAkBG,KAExCL,EAAaroE,EAAIuoE,EAAkBG,GACnCJ,EAAkBroE,EAAIsoE,EAAkBG,IAE5CtJ,EAAWhF,EAAcP,EAAyBwO,EAAYC,KAE9DlJ,EAAW9E,EAASiO,GAExB1tE,EAAK+tE,mBACLtuE,EAAQ,GAAGrF,MAAM+oE,GAASoB,IAE9BgI,cAAe,SAAUxnE,EAAOE,GAAjB,GAQP4hE,GACA2G,EACAC,EACAO,EAVAhuE,EAAO/N,KACPwN,EAAUpM,EAAE2M,EAAKP,SACjBwuE,EAAcxuE,EAAQ,GAAGrF,MAAMurE,GAC/BuI,EAAgBvmC,EAAYloC,GAC5B8Z,EAAS9Z,EAAQ8Z,SACjB40D,EAAe50D,EAAOjd,SACtB8xE,EAAYpuE,EAAKwsE,sBAAsB7G,GAKvCn6B,EAAYxrC,EAAKlO,QAAQ05C,UACzB6iC,EAAkBruE,EAAKutE,kBACb,KAAVxoE,IAGA0mE,EAAYzrE,EAAKgtE,yBACjBhtE,EAAKgtE,sBAAwBkB,GAEjCF,EAAoBj+B,GAChBrwC,MAAOM,EAAKgtE,sBAAwB/nE,EACpCE,IAAKqmC,EACLpmC,IAAKgpE,IAELC,GAAmBtpE,EAAQ,GAC3B/E,EAAK2mE,8BAELzH,EAAc+O,IACVC,EAAgBnpE,EAAQopE,GACxBX,EAAapoE,EAAI4oE,EAAmBG,GACpCV,EAAkBtoE,EAAI6oE,EAAmBG,KAEzCX,EAAaroE,EAAI6oE,EAAmBG,GACpCV,EAAkBroE,EAAI4oE,EAAmBG,IAE7CtH,EAAYtH,EAAcP,EAAyBwO,EAAYC,KAE/D5G,EAAYpH,EAASuO,GAEzBvuE,EAAQ,GAAGrF,MAAMurE,GAAUkB,EACvBwH,GAAmBtpE,EAAQ,GAC3B/E,EAAKymE,2BAGbsH,iBAAkB,WAQd,QAASO,GAAqB7uE,GAC1B,GAAIkuE,GAAaluE,EAAQrF,MAAMiC,KAC/B,OAAmB,KAAfsxE,IACOzO,EAAcyO,KAEdt6E,EAAEoM,GAASy6B,SAASyxC,GAbrB,GAOVh2E,GANAqK,EAAO/N,KACPwN,EAAUpM,EAAE2M,EAAKP,SACjBsM,EAAgBtM,EAAQ8Z,SAAS,GACjCg1D,EAAe9uE,EAAQc,QAAQurE,GAC/B9tE,EAAUuwE,EAAahuE,QAAQ6lD,GAAK9tB,WACpCk2C,EAAgBxwE,EAAQlL,MAU5B,IAAIw7E,EAAqB7uE,EAAQ,KAAOsM,IAAkBwiE,EAAa,IAAqC,KAA/BxiE,EAAc3R,MAAM+oE,GAC7F,IAAKxtE,EAAI,EAAGA,EAAI64E,EAAe74E,IAC3BqI,EAAQrI,GAAGyE,MAAM+oE,GAAS1D,EAASpsE,EAAE2K,EAAQrI,IAAI0G,UAI7DsqE,4BAA6B,WAAA,GAWrBhxE,GAVAqK,EAAO/N,KACP8xE,EAAY1wE,EAAE2M,EAAKP,SAAS64B,SAASquB,GACrC0f,EAAkBtC,EAAUjxE,OAAS,EAAIixE,EAAUznE,SAAW,EAC9D0nE,EAAY3wE,EAAE2M,EAAKP,SAAS64B,SAASsuB,GACrC0f,EAAkBtC,EAAU1nE,SAC5B2B,EAAO5K,EAAE2M,EAAKP,SAAS64B,SAASquB,EAAQyZ,EAAQxZ,GAAOtuB,SAAS8tB,GAChEtzD,EAASmL,EAAKnL,OACd8zE,EAAqB3oE,EAAK+K,IAAI,WAC9B,MAAO2+B,GAAYt0C,EAAEpB,QAGzB,KAAK0D,EAAI,EAAGA,EAAI7C,EAAQ6C,IACpBsI,EAAKtI,GAAGyE,MAAMurE,GAAUpG,EAAcP,EAAyB4H,EAAmBjxE,GAAI0wE,EAAkBC,KAGhHG,uBAAwB,WAAA,GAOhB9wE,GANAqK,EAAO/N,KACPgM,EAAO5K,EAAE2M,EAAKP,SAAS64B,SAASquB,EAAQyZ,EAAQxZ,GAAOtuB,SAAS8tB,GAChEtzD,EAASmL,EAAKnL,OACd8zE,EAAqB3oE,EAAK+K,IAAI,WAC9B,MAAO2+B,GAAYt0C,EAAEpB,QAGzB,KAAK0D,EAAI,EAAGA,EAAI7C,EAAQ6C,IACpBsI,EAAKtI,GAAGyE,MAAMurE,GAAUlG,EAASmH,EAAmBjxE,OAI5D84E,GAAgBxC,GAAgBr6E,QAChCk7E,2BAA4B,WAAA,GAIpBn3E,GACAkrE,EAJA7gE,EAAO/N,KACPi6E,EAAUlsE,EAAKksE,YACfp5E,EAASo5E,EAAQp5E,MAGrB,KAAK6C,EAAI,EAAGA,EAAI7C,EAAQ6C,IACpBkrE,EAASqL,EAAQv2E,GACjBkrE,EAAO36D,KAAKmiE,EAAYn0E,EAAM8L,EAAK+sE,yBAA0B/sE,IAC5B,UAA7B6gE,EAAO/uE,QAAQ2a,WAAsD,UAA7Bo0D,EAAO/uE,QAAQ2a,UACvDo0D,EAAO36D,KAAKoiE,EAAMp0E,EAAM8L,EAAK0uE,4BAA6B1uE,IACtB,SAA7B6gE,EAAO/uE,QAAQ2a,WAAqD,SAA7Bo0D,EAAO/uE,QAAQ2a,UAC7Do0D,EAAO36D,KAAKoiE,EAAMp0E,EAAM8L,EAAK2uE,8BAA+B3uE,IAE5D6gE,EAAO36D,KAAKoiE,EAAMp0E,EAAM8L,EAAK4uE,0BAA2B5uE,IAE5D6gE,EAAO36D,KAAKqiE,EAAUr0E,EAAM8L,EAAKmtE,uBAAwBntE,IACzD6gE,EAAO36D,KAAKuiE,EAAYv0E,EAAM8L,EAAKqtE,yBAA0BrtE,IAC7D6gE,EAAO36D,KAAKwiE,EAAWx0E,EAAM8L,EAAKstE,wBAAyBttE,KAGnE6uE,WAAY,SAAUr4D,GAClB,MAAO5kB,OACH24E,OAAQ,EACRC,OAAQ,EACR5F,cAAe,EACf6F,cAAe,GAChBj0D,IAEPk4D,4BAA6B,SAAUl4D,GACnC,GAAI80D,GAASr5E,KAAK48E,WAAWr4D,EAC7BvkB,MAAKs6E,cAAcjB,EAAOd,OAAQc,EAAOb,eACzCx4E,KAAKuU,qBAETmoE,8BAA+B,SAAUn4D,GACrC,GAAI80D,GAASr5E,KAAK48E,WAAWr4D,EAC7BvkB,MAAKq6E,aAAahB,EAAOf,OAAQe,EAAO1G,eACxC3yE,KAAKuU,qBAETooE,0BAA2B,SAAUp4D,GACjC,GAAsK80D,GAAlKnmE,EAAMG,KAAKH,IAAIG,KAAKw9D,IAAItsD,EAAKouD,eAAgBt/D,KAAKw9D,IAAItsD,EAAKi0D,gBAAiBqE,EAAe78E,KAAKg7E,qBAAsB8B,EAAgB98E,KAAK+6E,qBAC3I7nE,KAAQqR,EAAKouD,eAAiBz/D,IAAQqR,EAAKouD,kBAC3CpuD,EAAKi0D,cAAgBj0D,EAAKouD,cAAgBmK,EAAgBD,EAC1Dt4D,EAAKg0D,OAASh0D,EAAK+zD,QACZplE,IAAQqR,EAAKi0D,eAAiBtlE,IAAQqR,EAAKi0D,mBAClDj0D,EAAKouD,cAAgBpuD,EAAKi0D,cAAgBqE,EAAeC,EACzDv4D,EAAK+zD,OAAS/zD,EAAKg0D,QAEvBc,EAASr5E,KAAK48E,WAAWr4D,GACzBvkB,KAAKq6E,aAAahB,EAAOf,OAAQe,EAAO1G,eACxC3yE,KAAKs6E,cAAcjB,EAAOd,OAAQc,EAAOb,eACzCx4E,KAAKuU,qBAET8lE,aAAc,SAAUvnE,EAAOE,GAAjB,GAINs/D,GACAmJ,EAJA1tE,EAAO/N,KACPwN,EAAUpM,EAAE2M,EAAKP,SACjBmuE,EAAenmC,EAAWhoC,EAGhB,KAAVsF,IAGA0mE,EAAYzrE,EAAKitE,wBACjBjtE,EAAKitE,qBAAuBW,GAEhCF,EAAmB39B,GACfrwC,MAAOM,EAAKitE,qBAAuBhoE,EACnCE,IAAKnF,EAAKlO,QAAQu6E,SAClBjnE,IAAKpF,EAAKwsE,sBAAsBrJ,KAEpCoB,EAAW9E,EAASiO,GACpBjuE,EAAQ,GAAGrF,MAAM+oE,GAASoB,EAC1B9kE,EAAQmB,KAAKuiE,EAAO79D,KAAK8iD,MAAMslB,MAEnCnB,cAAe,SAAUxnE,EAAOE,GAAjB,GAIP4hE,GACAmH,EAJAhuE,EAAO/N,KACPwN,EAAUpM,EAAE2M,EAAKP,SACjByuE,EAAgBvmC,EAAYloC,EAGlB,KAAVsF,IAGA0mE,EAAYzrE,EAAKgtE,yBACjBhtE,EAAKgtE,sBAAwBkB,GAEjCF,EAAoBj+B,GAChBrwC,MAAOM,EAAKgtE,sBAAwB/nE,EACpCE,IAAKnF,EAAKlO,QAAQ05C,UAClBpmC,IAAK4pE,OAAOC,mBAEhBpI,EAAYpH,EAASuO,GACrBvuE,EAAQ,GAAGrF,MAAMurE,GAAUkB,EAC3BpnE,EAAQmB,KAAK+kE,EAAQrgE,KAAK8iD,MAAM4lB,QAGpCnoE,GAAyBlS,EAAM/B,QAC/BmU,OAAQ,SAAU7F,GACd,GAAIgvE,GAAUj9E,IACdoB,GAAE6M,EAAOwD,MAAMiH,GAAG,YAAcL,EAAI,WAChC,GAAIghB,GAAQ9Y,EAAW8Y,MAAMprB,EAAO6J,YAAaolE,GAAS,CAC1D7jD,GAAMkL,QAAQ,SAAUnd,GACE,QAAlBA,EAAKpN,WACLkjE,GAAS,KAGbA,GAAU7jD,EAAMx4B,OAAS,GACzBoN,EAAOkG,gBAAgB+lE,0BAE5BxhE,GAAGkhE,EAAOvhE,EAAI,WACbnJ,WAAW,WACP,GAAI+hC,GAAQ1wB,EAAW0wB,MAAMhjC,EAAO6J,WAChCm5B,KACAhjC,EAAOkG,gBAAgB+lE,wBACvBjsE,EAAOkG,gBAAgB3G,QAAUyjC,EACjChjC,EAAOkG,gBAAgBI,yBAGhCmE,GAAGo1D,EAAaz1D,EAAIo8C,EAAQ0Z,EAAQ2L,EAAK,SAAU9oE,GAAV,GACpCmsE,GAAcnsE,EAAE+I,OAChBqjE,EAAqBpsE,EAAE0B,cACvByB,EAAkBlG,EAAOkG,gBACzB3G,EAAU2G,EAAkBA,EAAgB3G,QAAU,IAC1D,IAAI2G,GACA,GAAI3G,GAAW4vE,IAAuB5vE,EAAS,CAC3C,GAAI+P,EAAS6/D,EAAoB5vE,IAAYA,IAAY2vE,GAAe5/D,EAAS/P,EAAS2vE,GACtF,MAEI3vE,KAAY2vE,IACZlvE,EAAOiG,0BACP+oE,EAAQvM,cAAcziE,EAAQmvE,SAK1CH,GAAQvM,cAAcziE,EAAQmvE,EAElCnvE,GAAO+F,8BACR0E,GAAGo1D,EAAaz1D,EAAI,SAAUrH,GAAV,GACfmD,GAAkBlG,EAAOkG,gBACzB3G,EAAU2G,EAAkBA,EAAgB3G,QAAU,KACtDuM,EAAS/I,EAAE+I,OACXsjE,EAAwBj8E,EAAE2Y,GAAQkuB,SAASwxC,IAAgCr4E,EAAE2Y,GAAQ+D,QAAQswD,GAAMqL,GAA6B54E,OAAS,GACzIsT,GAAmB3G,IAAYuM,GAAWwD,EAAS/P,EAASuM,IAAYsjE,GACxEpvE,EAAOiG,6BAInB8L,QAAS,SAAU/R,GACf7M,EAAE6M,EAAOwD,MAAMoH,IAAIR,IAEvBq4D,cAAe,SAAUziE,EAAQT,GACxBxL,EAAQie,OACL7e,EAAEoM,GAAS0Q,GAAGu2C,GACdxmD,EAAOkG,gBAAkBlG,EAAOqvE,cAAgB,GAAInC,IAAc3tE,GAC9D2sE,gBAAiBlsE,EAAOwD,KACxBk9D,IAAKnvE,EAAMsC,QAAQgV,MAAM7I,EAAOT,SAChCihE,YAAaxgE,EAAOwD,OAEjBrQ,EAAEoM,GAAS0Q,GAAG47D,KACrB7rE,EAAOkG,gBAAkB,GAAIqoE,IAAchvE,GACvC2sE,gBAAiBlsE,EAAOwD,KACxBk9D,IAAKnvE,EAAMsC,QAAQgV,MAAM7I,EAAOT,SAChCihE,YAAaxgE,EAAOwD,QAGxBxD,EAAO8F,iCACP9F,EAAOoG,OAAOlS,EAAQ8L,EAAO8F,gCAC7B9F,EAAOgG,KAAK9R,EAAQ8L,EAAO8F,oCAK3CH,IAAuBC,QAAU,GAAID,IACrCjU,EAAOiH,GACHu0E,cAAeA,GACfqB,cAAeA,GACfxC,gBAAiBA,GACjBpmE,uBAAwBA,MAE9BnS,OAAOjC,QACO,kBAAVD,SAAwBA,OAAOyB,IAAMzB,OAAS,SAAU0B,EAAIC,EAAIC,IACrEA,GAAMD,OAEV,SAAU5B,EAAGC,QACVA,OAAO,4CAA6C,yBAA0BD,IAChF,YACG,SAAU8B,EAAGC,GAAb,GACO7B,GAAQiC,OAAOjC,MAAOoH,EAASpH,EAAMoC,GAAGqM,OAAQpL,EAAc+D,EAAO/D,YAAa0d,EAAa3Z,EAAO2Z,WAAYrS,EAAMtH,EAAOuH,IAAK5H,EAAe1D,EAAY0D,aAAc9D,EAAemE,EAAOnE,aAAcsyC,EAAUnuC,EAAOmuC,QAClOigB,EAAoB,GAAIpuD,GAAOmhD,oBAAqBnkD,MAAO,YAC3D25E,EAAoB,GAAI32E,GAAOmhD,oBAC3BnkD,MACI,KACA,SAGR45E,EAAS,eACTppB,EAAM,MACND,EAAM,MACNG,EAAW,WACXJ,EAAQ,QACRupB,EAAY,YACZ5oB,EAAK,KACL1vB,EAAK,KACLuvB,EAAQ,QACRgpB,EAAU,UACVjpB,EAAQ,QACRqB,EAAqB/gB,EAAQp1C,QAC7Bgc,KAAM,WAAA,GACE0C,GAAMre,KACNiO,EAASoQ,EAAIpQ,OACbmM,EAAQiE,EAAIjE,MAAQiE,EAAI62B,YACxByoC,EAAgBt/D,EAAIu/D,aAAgBv/D,EAAIxe,QAAQk2D,eAA6C10D,EAA5Bgd,EAAIw/D,eAAezjE,GACpF0jE,EAAgBz/D,EAAI0/D,oBAAsBJ,EAAgBt/D,EAAI2/D,eAAe5jE,GAAS/Y,EACtFxB,GACA25C,SAAS,EACTjyC,SAAU0G,EAAOpO,QAAQ0H,SACzB02E,cAAe78E,EAAEa,MAAMoc,EAAI6/D,cAAe7/D,GAC1C2jB,MAAO3jB,EAAI8/D,WAAWR,EAAeG,GACrCv+D,cAAetR,EAAOpO,QAAQ0f,cAC9BzI,MAAOtX,EAAMsC,QAAQgV,MAAM7I,EAAOQ,UAElC6xC,EAAS,GAAI15C,GAAOw3E,kBAAkBv+E,EAC1CygD,GAAO1pC,QAEXsnE,cAAe,SAAUvmD,GACrB,GAAItZ,GAAMre,IACVqe,GAAI82B,aAAa92B,EAAIjE,OACjBud,IACItZ,EAAIxe,QAAQk2D,eACZ13C,EAAIggE,YAAYhgE,EAAIigE,eAAe3mD,IAEnCtZ,EAAIkgE,YAAY5mD,EAAMtZ,EAAIu/D,aAAcv/D,EAAI0/D,uBAIxD5oC,aAAc,SAAU/6B,GAAV,GACNiE,GAAMre,KACN0V,EAAM2I,EAAIpQ,OAAOnB,QACrBoB,GAAIqrB,mBAAmB7jB,GAAKiE,QAC5Bo7B,EAAQj1C,GAAGq1C,aAAap1C,KAAKse,EAAKjE,IAEtCikE,YAAa,SAAUr8C,GACnB,GAAI5nB,GAAQpa,KAAKoa,KACjBA,GAAMszB,WAAW1L,GACjB5nB,EAAMkB,UAAS,GACftb,KAAKiO,OAAOsN,YAAYnB,GACxBpa,KAAKw+E,2BAA2Bx8C,IAEpCw8C,2BAA4B,SAAUx8C,GAIlC,IAJwB,GACpBm+B,GAAe/+D,EAAE4gC,GAAO1a,SAAS8pB,WACjCgvB,EAAmBD,EAAat/D,OAAS,EACzCw/D,EAAcF,EAAa7iD,IAAI8iD,GACF,OAA1BC,EAAYjlD,YAAiD,MAA1BilD,EAAYjlD,WAA+C,KAA1BilD,EAAYjlD,YACnFglD,GAAoB,EACpBC,EAAcF,EAAa7iD,IAAI8iD,EAE/BC,KAAgBr+B,GAChB9zB,EAAIqE,YAAYrE,EAAIoxB,gBAAgBt/B,KAAKiO,OAAOnB,SAAU,KAAMk1B,IAGxEu8C,YAAa,SAAU5mD,EAAMqK,EAAO87C,GAQhC,IARS,GAOLW,GAAiBC,EANjBrgE,EAAMre,KACNmjC,EAAY/hC,EAAE4gC,EAAMh2B,MAAMu2C,UAC1Bo8B,EAAYhnD,EAAKinD,gBACjB5yE,EAAO2yE,EAAU3yE,KACjBu3B,EAAQvB,EAAMuB,MACd3wB,EAAOyL,EAAIwgE,kBAERf,EAAcj9E,OAAS,GAC1Bi9E,EAAcn8B,KAElB88B,GAAkBX,EAAcj9E,OAAS+R,EAAKkrE,GAAexpE,WAAa1B,EAAKuwB,GAC/E9kB,EAAIygE,iBAAiB37C,EAAWA,EAAUtiC,OAASmL,GAC/Cm3B,EAAUtiC,OAASmL,GACnBqS,EAAI0gE,SAASN,EAAiBzyE,EAAMm3B,GAExCj1B,EAAI6zB,kBAAkBC,EAAOy7C,GAC7Bp/D,EAAI2gE,eAAe77C,EAAWw7C,EAAU5yE,QAAS+xE,EAAeW,GAChEpgE,EAAI4gE,uBAAuBj9C,EAAO28C,GAClCD,EAAW/mD,EAAKunD,eACZpB,EAAc,IACd5vE,EAAIS,KAAKmvE,EAAc,IAAMlzE,GAAI8zE,EAAS9zE,IAAM,QAEnD8zE,EAASzyE,eAAiB7K,EAAE+hC,GAAWkD,WAAajlC,EAAE08E,IAAgBn+C,KAAK,SAAUj8B,EAAG++B,GACrFpkB,EAAI8gE,sBAAsB18C,EAAMi8C,KAEpCrgE,EAAI+gE,eAAep9C,EAAO28C,GACtBp7C,EACAllB,EAAIghE,wBAAwBr9C,EAAOrK,GAEnCtZ,EAAIihE,sBAAsBt9C,EAAOrK,GAErCtZ,EAAIkhE,wBAAwBv9C,EAAO28C,GACnCzwE,EAAIi0B,mBAAmBH,EAAOy7C,IAElC+B,cAAe,SAAU57C,GACrB,MAAO11B,GAAIgQ,GAAG0lB,EAAItB,MAAM,GAAIuyB,IAAO3mD,EAAIgQ,GAAG0lB,EAAItvB,WAAYogD,IAE9D+qB,eAAgB,SAAUh9C,GACtB,MAAOv0B,GAAIgQ,GAAGukB,EAAMoyB,IAExB6qB,2BAA4B,SAAU19C,GAAV,GAWpB29C,GAVAr9C,EAAQlhC,EAAE4gC,EAAMh2B,MAAMq6B,WACtBu5C,KACAC,EAAc,SAAUC,GACxB,MAAOF,GAAWrwE,QAAQuwE,MAkB9B,OAhBAx9C,GAAM3C,KAAK,SAAU9E,EAAG4H,GAChBA,EAAK73B,IAAMsD,EAAIgQ,GAAGukB,EAAMoyB,IACxB+qB,EAAWz/E,KAAKsiC,EAAK73B,MAGzB+0E,EAAkBr9C,EAAMjB,OAAO,SAAUxG,EAAG4H,GAAb,GAE3Bs9C,GADAC,EAAcv9C,EAAK9rB,aAAa+mE,EAEpC,UAAIsC,IAAgB9xE,EAAIgQ,GAAGukB,EAAMoyB,KAC7BkrB,EAAeC,EAAYvnE,MAAM,KAC7BsnE,GAAgBA,EAAal/E,OAAS,KAC/Bk/E,EAAaE,KAAKJ,OAK5BF,EAAgB9+E,QAE7Bq/E,aAAc,SAAU3/C,EAAOqD,EAAKx8B,GAChCA,EAAQoI,MAAMpI,MAAcA,CAC5B,KAAK,GAAWq7B,GAAP/+B,EAAI,EAASA,EAAI68B,EAAO78B,IAC7B++B,EAAOmB,EAAIu8C,WAAW/4E,GACtBq7B,EAAK7xB,UAAY,UAGzBkuE,iBAAkB,SAAU9yE,EAAMu0B,GAC9B,IAAK,GAAWqD,GAAKy1B,EAAZ31D,EAAI,EAAmBA,EAAI68B,EAAO78B,IACvCkgC,EAAM53B,EAAK21C,MACX0X,EAAYz1B,EAAItvB,WAChB+kD,EAAUj+B,YAAYwI,GACjBy1B,EAAUrtD,KAAKnL,QAChBqN,EAAIqF,OAAO8lD,IAIvBilB,eAAgB,SAAU3mD,GAAV,GAMRmN,GAQA8gC,EAbAvnD,EAAMre,KACN0V,EAAM2I,EAAIpQ,OAAOnB,SACjB6xE,EAAYhnD,EAAKinD,gBACjB58C,EAAQ9zB,EAAI4F,OAAO4B,EAAK++C,GACxBpyB,EAAW,CAkBf,OAhBAhkB,GAAI4gE,uBAAuBj9C,EAAO28C,GAClCtgE,EAAI+gE,eAAep9C,EAAO28C,GACtBA,EAAUvyE,YAAcuyE,EAAUvyE,WAAa,IAC/C04B,EAAQ9C,EAAMo+C,cACd/hE,EAAIgiE,iBAAiB1oD,EAAMmN,EAAOzC,GAAU,GAC5CA,GAAYs8C,EAAUvyE,YAEtBw5D,EAAQ5jC,EAAMs+C,cAClBjiE,EAAIgiE,iBAAiB1oD,EAAMiuC,EAAOvjC,GAAU,GAC5Cn0B,EAAI6zB,kBAAkBC,EAAOy7C,GACM,QAA/BkB,EAAU4B,iBACVryE,EAAI80B,iBAAiBhB,GACiB,UAA/B28C,EAAU4B,kBACjBliE,EAAImiE,WAAWx+C,EAAO28C,EAAUvyE,WAAYuyE,EAAUtyE,eAE1D6B,EAAIi0B,mBAAmBH,EAAOy7C,GACvBz7C,GAEXq+C,iBAAkB,SAAU1oD,EAAMrd,EAAWmmE,EAAcr0E,GAAzC,GAQLo4C,GAAkB5gB,EAEd/I,EAAO4H,EAThBpkB,EAAMre,KACN2+E,EAAYhnD,EAAKinD,gBACjBF,EAAW/mD,EAAKunD,eAChBnzE,EAAU4yE,EAAU5yE,QACpBC,EAAOI,EAAauyE,EAAUvyE,WAAauyE,EAAU3yE,KACrD00E,EAAgBhC,EAASzyE,eACzBI,EAAgBsyE,EAAUtyE,aAC9B,KAASm4C,EAAIi8B,EAAmBj8B,EAAIx4C,EAAMw4C,IAEtC,IADA5gB,EAAMtpB,EAAUqmE,YACP9lD,EAAI,EAASA,EAAI9uB,EAAS8uB,IAE3B4H,EADAr2B,GAAcC,EAAgBwuB,EACvB/tB,SAASmM,cAAc47C,GAEvB/nD,SAASmM,cAAcksB,GAElCvB,EAAIzqB,YAAYspB,GAChBA,EAAK7xB,UAAY,SACP,IAAN4zC,GAAiB,IAAN3pB,GAAW6jD,EAAS9zE,KAC/B63B,EAAK73B,GAAK8zE,EAAS9zE,IAEvByT,EAAI8gE,sBAAsB18C,EAAMi+C,GAAuB,IAANl8B,GAAiB,IAAN3pB,EAAU6jD,OAIlFK,SAAU,SAAUN,EAAiBzyE,EAAMm3B,GAOvC,IAPM,GAMFS,GALAvlB,EAAMre,KACNqiC,EAAWjhC,EAAEq9E,GAAiBr3E,QAC9Bw5E,EAAcnC,EAAgBn8C,MAAMzhC,OACpCggF,EAAe70E,EAAOm3B,EAAUtiC,OAChCymB,EAASm3D,EAAgBnqE,WAEtBusE,GACHj9C,EAAMtc,EAAOq5D,UAAUt+C,EAAW,GAClChkB,EAAI6hE,aAAaU,EAAch9C,EAAItB,MAAMzhC,OAAQ+iC,GACjDi9C,KAGR7B,eAAgB,SAAU77C,EAAWp3B,EAAS+xE,EAAeW,GAA7C,GAqBJj8C,GApBJnkB,EAAMre,KACN4S,EAAOyL,EAAIwgE,kBACXiC,EAAmBluE,EAAKuwB,EAAU,GAAGb,OACrCy+C,GAAyBD,EAAiBnqE,aAAa8mE,GAAcqD,EAAiBj+C,OACtFk+C,GAAkBh1E,GAClB3K,EAAE+hC,GAAWxD,KAAK,SAAUj8B,EAAGkgC,GAG3B,IAHc,GACVo9C,GAAkBpuE,EAAKgxB,EAAItB,OAC3B2+C,GAAoBD,EAAgBrqE,aAAa8mE,GAAcuD,EAAgBn+C,QAC5Eo+C,EAAal1E,GACZi1E,EAAgBn+C,SAAWm+C,EAAgBn+C,QAAU,EACrDm+C,EAAgBn+C,SAAW,EAE3Be,EAAIs9C,eAERF,EAAkBpuE,EAAKgxB,EAAItB,OAC3B2+C,GAAoBD,EAAgBrqE,aAAa8mE,GAAcuD,EAAgBn+C,UAIvFk+C,EAAkBh1E,IACdy2B,EAAYphC,EAAEwR,EAAKkrE,IAAkBlrE,EAAK6rE,EAAgBn8C,QAAQl7B,QACtEhG,EAAE+hC,GAAWxD,KAAK,SAAUj8B,EAAGkgC,GAC3B,GAAIo9C,GAAkBpuE,EAAKgxB,EAAItB,MAC/BjkB,GAAI6hE,aAAan0E,GAAiBi1E,EAAgBrqE,aAAa8mE,GAAcuD,EAAgBn+C,QAASe,EAAKpB,EAAY,OAInIy8C,uBAAwB,SAAUj9C,EAAOrK,GACrC,GAAIxvB,GAAQnI,KAAKmhF,eAAexpD,EAChCzpB,GAAIS,KAAKqzB,GACLz3B,YAAaotB,EAAKptB,aAAe,KACjCC,YAAamtB,EAAKntB,aAAe,KACjC8wB,UAAW3D,EAAK2D,WAAa,KAC7B1wB,GAAI+sB,EAAK/sB,IAAM,KACfT,QAASwtB,EAAKxtB,SAAW,KACzBhC,MAAOA,GAAS,OAEpB/G,EAAE4gC,GAAOpzB,SAAS,YAEtBuwE,sBAAuB,SAAU18C,EAAM9K,GACnC,GAAIxvB,GAAQnI,KAAKmhF,eAAexpD,EAChCxvB,GAAM22D,QAAUnnC,EAAKntB,aAAe,KACpCrC,EAAM02D,OAASlnC,EAAKltB,YAAc,KAClCyD,EAAIS,KAAK8zB,GACLt6B,MAAOA,GAAS,KAChBmzB,UAAW3D,EAAK2D,WAAa,QAGrC8jD,eAAgB,SAAUp9C,EAAOrK,GAAjB,GAIJztB,GAEAQ,CALJs3B,GAAM93B,UAAYytB,EAAKypD,eACvBp/C,EAAMq/C,gBACC1pD,EAAKypD,iBACRl3E,EAAU83B,EAAMs/C,gBACpBp3E,EAAQ0G,UAAY+mB,EAAKypD,eACrB12E,EAAY1K,KAAKuhF,kBAAkB5pD,EAAK6pD,kBAC5CtzE,EAAIS,KAAKzE,GACL/B,OACIkhD,UAAW3+C,EAAU2+C,UACrBo4B,cAAe/2E,EAAU+2E,mBAKzCnC,sBAAuB,SAAUt9C,EAAOrK,GAAjB,GAIfiM,GAAKtB,EAAOG,EAAM/+B,EAAG48B,EAHrBjiB,EAAMre,KACN2+E,EAAYhnD,EAAKinD,gBACjB5yE,EAAOg2B,EAAMh2B,IAEjB,KAAKtI,EAAI,EAAGA,EAAIsI,EAAKnL,OAAQ6C,IAGzB,IAFAkgC,EAAM53B,EAAKtI,GACX4+B,EAAQsB,EAAItB,MACPhC,EAAI,EAAGA,EAAIgC,EAAMzhC,OAAQy/B,IAC1BmC,EAAOH,EAAMhC,IACRjiB,EAAIohE,eAAeh9C,KAAU/+B,EAAIi7E,EAAUvyE,YAAcuyE,EAAUtyE,cAAgBo2B,EAAK9rB,aAAa8mE,IACtGvvE,EAAI4wB,UAAU2D,EAAMoyB,GAAI,GACjBx2C,EAAIohE,eAAeh9C,IAAS/+B,GAAKi7E,EAAUvyE,YAAcuyE,EAAUtyE,eAAiBo2B,EAAK9rB,aAAa8mE,IAC7GvvE,EAAI4wB,UAAU2D,EAAM0C,GAAI,IAKxCk6C,wBAAyB,SAAUr9C,EAAOrK,GAAjB,GAMjBiM,GAAKnB,EAAM/+B,EALX2a,EAAMre,KACN2+E,EAAYhnD,EAAKinD,gBACjB95C,EAAQ9C,EAAMuB,MACdlB,EAAW,EACXujC,EAAQ5jC,EAAMuvC,QAAQ,EAK1B,IAHK3L,IACDA,EAAQ5jC,EAAMs+C,eAEd3B,EAAUvyE,YAAcuyE,EAAUvyE,WAAa,EAAG,CAIlD,IAHK04B,IACDA,EAAQ9C,EAAMo+C,eAEXt7C,EAAM94B,KAAKnL,OAAS89E,EAAUvyE,YACjC04B,EAAM3rB,YAAYysD,EAAM55D,KAAK,GAEjC,MAAO84B,EAAM94B,KAAKnL,OAAS89E,EAAUvyE,YACjCw5D,EAAMzsD,YAAY2rB,EAAM94B,KAAK,GAEjCqS,GAAIqjE,mBAAmB58C,OACpB,IAAIA,EAAO,CACd,KAAOA,EAAM94B,KAAKnL,OAAS,GACvB+kE,EAAMzsD,YAAY2rB,EAAM94B,KAAK84B,EAAM94B,KAAKnL,OAAS,GAErDmhC,GAAM2/C,cAEV,KAAO/b,EAAM55D,KAAKnL,OAASwhC,GAAU,CAEjC,IADAuB,EAAMgiC,EAAM55D,KAAKq2B,GACZ3+B,EAAI,EAAGA,EAAIkgC,EAAItB,MAAMzhC,OAAQ6C,IAC9B++B,EAAOmB,EAAItB,MAAM5+B,GACb2a,EAAIohE,eAAeh9C,IAASk8C,EAAUtyE,eAAiBo2B,EAAK9rB,aAAa8mE,GACzEvvE,EAAI4wB,UAAU2D,EAAM0C,GAAI,IAChB9mB,EAAIohE,eAAeh9C,IAASk8C,EAAUtyE,cAAgBo2B,EAAK9rB,aAAa8mE,IAChFvvE,EAAI4wB,UAAU2D,EAAMoyB,GAAI,EAGhCxyB,IAAY,IAGpBk9C,wBAAyB,SAAUv9C,EAAO28C,GACtC,GAAItgE,GAAMre,IACyB,SAA/B2+E,EAAU4B,kBACLliE,EAAIqhE,2BAA2B19C,IAChC3jB,EAAIujE,cAAc5/C,GAEtB9zB,EAAI80B,iBAAiBhB,IACiB,UAA/B28C,EAAU4B,kBACbliE,EAAIqhE,2BAA2B19C,IAC/B3jB,EAAIwjE,kBAAkB7/C,GAE1B3jB,EAAImiE,WAAWx+C,EAAO28C,EAAUvyE,WAAYuyE,EAAUtyE,gBAElDgS,EAAIqhE,2BAA2B19C,GAC/B3jB,EAAIwjE,kBAAkB7/C,GAEtB3jB,EAAIujE,cAAc5/C,IAI9Bw+C,WAAY,SAAUx+C,EAAO51B,EAAY01E,GAA7B,GAEJp+E,GAAG48B,EAAGsD,EAAKnB,EADXz2B,EAAOg2B,EAAMh2B,IAEjB,KAAKtI,EAAI,EAAGA,EAAIsI,EAAKnL,OAAQ6C,IAEzB,IADAkgC,EAAM53B,EAAKtI,GACN48B,EAAI,EAAGA,EAAIsD,EAAItB,MAAMzhC,OAAQy/B,IAC9BmC,EAAOmB,EAAItB,MAAMhC,GACb58B,EAAI0I,EACJq2B,EAAKvpB,aAAag7C,EAAOE,GAClB3xB,EAAK9rB,aAAa8mE,GAAaqE,GACtCr/C,EAAKvpB,aAAag7C,EAAOC,IAKzCytB,cAAe,SAAU5/C,GACrB5gC,EAAE4gC,GAAOtzB,KAAKmmD,GAAIzyB,WAAW8xB,GAC7B9yD,EAAE4gC,GAAOtzB,KAAK0lD,GAAK7gD,SACnBnS,EAAE4gC,GAAOtzB,KAAK4lD,GAAU/gD,UAE5BsuE,kBAAmB,SAAU7/C,GACzB5gC,EAAE4gC,GAAOtzB,KAAK,UAAU0zB,WAAW,eAEvCs/C,mBAAoB,SAAU58C,GAAV,GACZi9C,GAAM3gF,EAAE0jC,GAAOp2B,KAAK,MACpBszE,EAAW,SAAU56E,EAAOq7B,GAC5Bv0B,EAAI4wB,UAAU2D,EAAMoyB,GAAI,GAE5BktB,GAAIpiD,KAAKqiD,IAEbb,eAAgB,SAAUxpD,GAAV,GACRjtB,GAAY1K,KAAKuhF,kBAAkB5pD,EAAKjtB,WACxCk/B,EAAa,YAAcjS,GAAOA,EAAK3sB,SAAW,GAAK,SAAW,IACtE,QACIZ,MAAOutB,EAAKvtB,MAAQutB,EAAKvtB,MAAQutB,EAAKsqD,UAAY,KAClD53E,OAAQstB,EAAKttB,OAASstB,EAAKttB,OAASstB,EAAKuqD,WAAa,KACtD74B,UAAW3+C,EAAU2+C,UACrBo4B,cAAe/2E,EAAU+2E,cACzBU,gBAAiBxqD,EAAKyqD,SAAW,GACjCzjB,YAAahnC,EAAKgnC,YAClB7zD,YAAa6sB,EAAK7sB,YAClBu3E,YAAa1qD,EAAK0qD,aAAe,GACjCC,eAAgB3qD,EAAK5sB,gBAAkB,WAAa,KACpD6+B,WAAYA,IAGpB23C,kBAAmB,SAAU72E,GAAV,GAKHoxD,GAJRzS,EAAY,GACZo4B,EAAgBp4B,CAUpB,OATI3+C,KACIA,EAAU6E,QAAQ,UACdusD,EAAQpxD,EAAU+N,MAAM,KAC5B4wC,EAAYyS,EAAM,GAClB2lB,EAAgB3lB,EAAM,IAEtBzS,EAAY3+C,IAIhB2+C,UAAWA,EACXo4B,cAAeA,IAGvBtD,WAAY,SAAUn8C,EAAO87C,GAAjB,GAOJz/D,GACAkkE,EACAv2E,EACA9B,EACAs4E,EAEAl8E,EAIAm8E,EACAjB,EACA38C,EACA07C,EASAQ,EACA2B,EAEAC,CA/BJ,OAAK3gD,IAMD3jB,EAAMre,KACNuiF,EAASvgD,EAAM75B,MACf6D,EAAOg2B,EAAMh2B,KACb9B,EAAU83B,EAAM93B,QAChBs4E,EAAephF,EAAE8I,EAAUA,EAAQyuB,WAAU,GAAQt3B,GACzDmhF,EAAa9zE,KAAK,aAAa6E,SAC3BjN,EAAW07B,EAAM1G,UACrBh1B,EAAWA,EAASe,QAAQ,wBAAyB,IACrDf,EAAWA,EAASe,QAAQ,cAAe,KAC3Cf,EAAWA,EAASe,QAAQ,YAAa,IACrCo7E,EAAiBpkE,EAAIukE,cAAc5gD,GAAO,GAC1Cw/C,EAAmBt3E,EAAUmU,EAAIukE,cAAc14E,GAAW7I,EAC1DwjC,EAAqB32B,EAAIs1B,uBAAuBxB,GAGhDu+C,EADAliE,EAAIqhE,2BAA2B19C,GACZ,MACZ5gC,EAAE4gC,GAAOtzB,KAAK,aAAa7N,OAAS,EACxB,QAEA,OAEvBqN,EAAI6zB,kBAAkBC,EAAOy7C,GACzBsD,EAAkB7yE,EAAIu2B,oBAAoBzC,GAC1C0gD,EAAwBx0E,EAAI02B,0BAA0B5C,EAAO6C,GACjE32B,EAAIi0B,mBAAmBH,EAAOy7C,GAC1BkF,GACA/D,iBACIx0E,MAAOm4E,EAAOn4E,OAAS43B,EAAM53B,MAAQ+uD,WAAWopB,EAAOn4E,OAAS43B,EAAM53B,OAAS,KAC/EC,OAAQk4E,EAAOl4E,QAAU23B,EAAM33B,OAAS8uD,WAAWopB,EAAOl4E,QAAU23B,EAAM33B,QAAU,KACpF0B,QAASg1E,EACT/0E,KAAMA,EAAKnL,OACXohF,UAAW5jE,EAAIwkE,SAASN,EAAOn4E,OAC/B83E,WAAY7jE,EAAIwkE,SAASN,EAAOl4E,QAChCE,YAAay3B,EAAMz3B,YACnBC,YAAaw3B,EAAMx3B,YACnBE,UAAW+3E,EAAep5B,UAC1B+4B,QAASG,EAAOJ,iBAAmBngD,EAAMogD,QACzC9mD,UAAWh1B,EACXsE,GAAIo3B,EAAMp3B,GACV+zD,YAAa4jB,EAAO5jB,aAAe38B,EAAMn3B,OACzCw3E,YAAaE,EAAOF,YACpBv3E,YAAay3E,EAAOz3E,aAAe,GACnCC,kBAAmBw3E,EAAOD,eAC1Bn4E,QAAS63B,EAAM73B,QACfi3E,eAAgBl3E,EAAUs4E,EAAa5hE,OAAS,GAChD4gE,iBAAkBt3E,GAAWs3E,EAAiBn4B,UAAYm4B,EAAiBn4B,UAAY,IAAMm4B,EAAiBC,cAAgB,GAC9Hr1E,WAAYy4B,EACZx4B,cAAeq2E,EACfnC,iBAAkBA,GAEtBzC,kBAEJ6E,EAAU32E,KAAOqS,EAAIykE,eAAe92E,EAAM8xE,EAAe6E,GAClDA,IAzDC/D,mBACAd,mBA0DZgF,eAAgB,SAAU92E,EAAM8xE,EAAe6E,GAA/B,GAEG/+C,GAAKm/C,EAASzgD,EAAOG,EAAMugD,EACjCt/E,EAKI48B,EAPTjiB,EAAMre,KACN23B,IACJ,KAASj0B,EAAI,EAAGA,EAAIsI,EAAKnL,OAAQ6C,IAK7B,IAJAkgC,EAAM53B,EAAKtI,GACXq/E,GAAYzgD,UACZA,EAAQsB,EAAItB,MACZ3K,EAAKx3B,KAAK4iF,GACDziD,EAAI,EAAGA,EAAIgC,EAAMzhC,OAAQy/B,IAC9BmC,EAAOH,EAAMhC,GACb0iD,EAAW3kE,EAAI4kE,UAAUxgD,GACrBrhC,EAAEuC,QAAQ8+B,EAAMq7C,QAChB6E,EAAU7E,cAAc39E,KAAK6iF,GAEjCD,EAAQzgD,MAAMniC,KAAK6iF,EAG3B,OAAOrrD,IAEXsrD,UAAW,SAAUxgD,GAAV,GAKH9K,GAJAtZ,EAAMre,KACNkjF,EAASzgD,EAAKt6B,MACduC,EAAY2T,EAAIukE,cAAcngD,EAkBlC,OAjBA/3B,GAAYA,EAAU2+C,UAAY3+C,EAAU2+C,UAAY,IAAM3+C,EAAU+2E,cAAgB,GACpF9pD,GACAvtB,MAAO84E,EAAO94E,OAASq4B,EAAKr4B,MAAQ+uD,WAAW+pB,EAAO94E,OAASq4B,EAAKr4B,OAAS,KAC7EC,OAAQ64E,EAAO74E,QAAUo4B,EAAKp4B,OAAS8uD,WAAW+pB,EAAO74E,QAAUo4B,EAAKp4B,QAAU,KAClF43E,UAAW5jE,EAAIwkE,SAASK,EAAO94E,OAC/B83E,WAAY7jE,EAAIwkE,SAASK,EAAO74E,QAChCI,WAAYy4E,EAAOrkB,OACnBr0D,YAAa04E,EAAOpkB,QACpBp0D,UAAWA,EACX03E,QAASc,EAAOf,iBAAmB1/C,EAAK2/C,QACxC9mD,UAAWmH,EAAKnH,UAChB1wB,GAAI63B,EAAK73B,GACT+zD,YAAaukB,EAAOvkB,aAAel8B,EAAK53B,OACxCw3E,YAAaa,EAAOb,YACpBv3E,YAAao4E,EAAOp4E,YACpBE,SAA+B,UAArBk4E,EAAOt5C,aAIzBg5C,cAAe,SAAUp1E,EAAS21E,GAAnB,GAMPC,GALAj7E,EAAQqF,EAAQrF,MAChBk7E,EAASl7E,EAAMkhD,WAAa77C,EAAQsuD,OAAS,EACjD,OAAIqnB,IACS95B,UAAWg6B,IAEpBD,EAASj7E,EAAMs5E,eAAiBj0E,EAAQ41E,QAAU,GAClDC,GAAUD,GAEN/5B,UAAWg6B,EACX5B,cAAe2B,IAGlBC,GAAUD,GAEP/5B,UAAW,OACXo4B,cAAe2B,GAGnBC,IAAWD,GAEP/5B,UAAWg6B,EACX5B,cAAe,QAInBp4B,UAAW,GACXo4B,cAAe,MAGvBoB,SAAU,SAAUp1E,GAChB,GAAIwrD,IAAQxrD,GAAS,IAAIg0B,MAAM+7C,EAC/B,OAAOvkB,GAAOA,EAAK,GAAK,MAE5B4kB,eAAgB,SAAUzjE,GACtB,GAAIif,GAAQnrB,EAAIszB,SAASjhB,EAAW8Y,MAAMjf,GAAQlM,EAAIquB,iBAAiB,EACvE,OAAOy4B,GAAkB9T,aAAa7nB,GAAO,IAEjD2kD,eAAgB,SAAU5jE,GACtB,GAAIif,GAAQnrB,EAAIszB,SAASjhB,EAAW8Y,MAAMjf,GAAQlM,EAAIquB,iBAAiB,EACvE,OAAOghD,GAAkBr8B,aAAa7nB,IAE1CwlD,kBAAmB,SAAUyE,GACzB,MAAOA,GAAWA,EAAWziF,OAAS,MAG1Cg1D,EAAkBjvD,EAAOtF,KAAK3B,QAC9BS,QAAS,SAAUP,GAEf,MADAA,GAAQk2D,eAAiB/1D,KAAKH,QAAQk2D,eAC/B,GAAID,GAAmBj2D,MAGlC0jF,EAAsB1tB,EAAgBl2D,QACtC4O,OAAQ,SAAU3M,EAAIy3B,GAClB,GAAI1Y,IAAeq0C,EAAkBr0C,YAAY0Y,EAC7C1Y,MAAgB,GAChB/e,EAAG0lB,SAAS1Y,SAAS,6BACrBhN,EAAG+M,KAAK,WAAY,YACpB/M,EAAGgN,SAAS,sBAEZhN,EAAG0lB,SAAS7J,YAAY,6BACxB7b,EAAGg2D,KAAK,YAAY,GACpBh2D,EAAG6b,YAAY,uBAI3Bje,GAAMoC,GAAGqM,OAAO4nD,gBAAkBA,EAClCr2D,EAAMoC,GAAGqM,OAAO6nD,mBAAqBA,EACrCvvD,EAAa,cAAe,GAAIg9E,IAC5BnjF,QAAS01D,EACTC,gBAAgB,EAChBpzD,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBkT,MAAO,qBAGjBxU,OAAOjC,MAAM8lB,SACC,kBAAV/lB,SAAwBA,OAAOyB,IAAMzB,OAAS,SAAU0B,EAAIC,EAAIC,IACrEA,GAAMD,OAEV,SAAU5B,EAAGC,QACVA,OAAO,2CACH,2CACA,kBACDD,IACL,YACG,SAAU8B,EAAGC,GAAb,GACO7B,GAAQiC,OAAOjC,MAAOgkF,GAClB//E,OAAQ,IACRyP,IAAK,GACN5I,GACC,KACA,MACDm5E,GACC,QACA,SACA,SACA,SACA,SACA,QACA,QACA,SACA,UACA,UACA,OACA,UAEJC,EAAkC,EAClCC,GACAz5C,aAEQ5O,UAAW,qCACX7tB,MAAO,SAGP6tB,UAAW,uCACX7tB,MAAO,WAGP6tB,UAAW,sCACX7tB,MAAO,UAGP6tB,UAAW,0BACX7tB,MAAO,KAGfu1C,cAAe,YACfC,eAAgB,QAChBtgD,SAAU,4DACVouD,cAAe,2EAEf6yB,GACA15C,aAEQ5O,UAAW,kCACX7tB,MAAO,aAGP6tB,UAAW,oCACX7tB,MAAO,eAGP6tB,UAAW,mCACX7tB,MAAO,cAGP6tB,UAAW,qCACX7tB,MAAO,gBAGP6tB,UAAW,uCACX7tB,MAAO,kBAGP6tB,UAAW,sCACX7tB,MAAO,iBAGP6tB,UAAW,qCACX7tB,MAAO,gBAGP6tB,UAAW,uCACX7tB,MAAO,kBAGP6tB,UAAW,sCACX7tB,MAAO,iBAGP6tB,UAAW,0BACX7tB,MAAO,KAGfu1C,cAAe,YACfC,eAAgB,QAChBtgD,SAAU,4DACVouD,cAAe,2EAEf8yB,GACA35C,aAEQ5O,UAAW,kCACX7tB,MAAO,aAGP6tB,UAAW,oCACX7tB,MAAO,eAGP6tB,UAAW,mCACX7tB,MAAO,cAGP6tB,UAAW,qCACX7tB,MAAO,gBAGP6tB,UAAW,uCACX7tB,MAAO,kBAGP6tB,UAAW,sCACX7tB,MAAO,iBAGP6tB,UAAW,0BACX7tB,MAAO,KAGfu1C,cAAe,YACfC,eAAgB,QAChBtgD,SAAU,4DACVouD,cAAe,2EAEf+yB,EAAiB,+8NACjB1F,EAAoB5+E,EAAMkC,MAAM/B;AAChCC,KAAM,SAAUC,GACZG,KAAKH,QAAUA,GAEnB+W,KAAM,WAEF,QAASM,GAAMlG,GACXA,EAAEgK,iBACFjN,EAAKqG,UACLksC,EAAOlsC,UAEX,QAAS2vE,GAAU/yE,GACfjD,EAAKi2E,oBAAoBC,GACzB/sE,EAAMlG,GACFjD,EAAKmV,QACLnV,EAAKmV,SAETrjB,EAAQo+E,cAAcgG,GAE1B,QAASC,GAAalzE,GAClBkG,EAAMlG,GACNnR,EAAQo+E,gBAjBV,GACyG39B,GAsBvG9yC,EAQIu/C,EA9BJh/C,EAAO/N,KAAMH,EAAUkO,EAAKlO,QAAS0f,EAAgB1f,EAAQ0f,cAAe0kE,EAAYpkF,EAAQmiC,MAAez6B,EAAW1H,EAAQ0H,SAAUylD,EAAOxtD,EAAMsC,QAAQE,QAAQie,IAkB7KV,GAAcrI,MAAQgtE,EACtB3kE,EAActJ,MAAQ1O,EAASzB,YAC/ByZ,EAAci6B,QAAU35C,EAAQ25C,QAChC8G,EAASl/C,EAAE2M,EAAKo3C,gBAAgB59C,IAAW6N,SAAStI,SAAS2E,MAAM6jC,YAAY/1B,GAAejR,QAAQ,aAAasD,YAAY,QAAS/R,EAAQiX,OAAOqxB,MAAMz5B,KAAK,gBAAgBgK,GAAG,QAASqrE,GAAW57C,MAAMz5B,KAAK,mBAAmBgK,GAAG,QAASwrE,GAAc/7C,MAAMxQ,KAAK,eACxQnqB,EAAU8yC,EAAO9yC,QACrBO,EAAKo2E,uBAAuB32E,GAC5BO,EAAKq2E,yBAAyB52E,EAASy2E,GACvCl2E,EAAKs2E,wBAAwB72E,EAASy2E,GACtCl2E,EAAKu2E,iCAAiC92E,EAASy2E,GAC/C3jC,EAAOC,SACPD,EAAO1pC,OACHo2C,IACID,EAAev/C,EAAQc,QAAQ,aAAajE,SAChDmD,EAAQ6H,IAAI,aAAc03C,KAGlCo3B,uBAAwB,SAAU32E,GAC9B,GAAI+2E,GAAavkF,KAAKukF,aACtBA,GAAWC,SAAWh3E,EAAQkB,KAAK,wBAAwB+1E,eAAgBhlE,WAAW,IAASkY,KAAK,kBAExGqsD,oBAAqB,WAAA,GACbj2E,GAAO/N,KACP23B,EAAO5pB,EAAKlO,QAAQmiC,KACxBj0B,GAAK22E,wBAAwB/sD,GAC7B5pB,EAAK42E,uBAAuBhtD,GAC5B5pB,EAAK62E,gCAAgCjtD,IAEzC+sD,wBAAyB,SAAUT,GAAV,GACjBY,GAAY7kF,KAAKukF,WAAWM,UAC5BjG,EAAkBqF,EAAUrF,eAChCA,GAAgBx0E,MAAQy6E,EAAUz6E,MAAMqD,QACxCmxE,EAAgBqD,UAAY4C,EAAU5C,UAAUx0E,QAChDmxE,EAAgBv0E,OAASw6E,EAAUx6E,OAAOoD,QAC1CmxE,EAAgB7yE,QAAU84E,EAAU94E,QAAQ0B,QAC5CmxE,EAAgB5yE,KAAO64E,EAAU74E,KAAKyB,QACtCmxE,EAAgBsD,WAAa2C,EAAU3C,WAAWz0E,QAClDmxE,EAAgBr0E,YAAcs6E,EAAUt6E,YAAYkD,QACpDmxE,EAAgBp0E,YAAcq6E,EAAUr6E,YAAYiD,QACpDmxE,EAAgBl0E,UAAYm6E,EAAUn6E,UAAU+C,QAChDmxE,EAAgBwD,QAAUyC,EAAUzC,QAAQ30E,QAC5CmxE,EAAgBtjD,UAAYupD,EAAUvpD,UAAU7tB,MAChDmxE,EAAgBh0E,GAAKi6E,EAAUj6E,GAAG6C,MAClCmxE,EAAgBjgB,YAAckmB,EAAUlmB,YAAYlxD,QACpDmxE,EAAgByD,YAAcwC,EAAUxC,YAAY50E,QACpDmxE,EAAgB9zE,YAAc+5E,EAAU/5E,YAAY2C,QACpDmxE,EAAgB7zE,gBAAkB85E,EAAU95E,gBAAgB+5E,SAEhEH,uBAAwB,SAAU3iD,GAAV,GAChBghD,GAAWhhD,EAAMk9C,kBACjB6F,EAAW/kF,KAAKukF,WAAWQ,QAC/B/B,GAAS/2E,eAAiB84E,EAAS94E,eAAe64E,QAClD9B,EAAS54E,MAAQ26E,EAAS36E,MAAMqD,QAChCu1E,EAASf,UAAY8C,EAAS9C,UAAUx0E,QACxCu1E,EAAS34E,OAAS06E,EAAS16E,OAAOoD,QAClCu1E,EAASd,WAAa6C,EAAS7C,WAAWz0E,QAC1Cu1E,EAASv4E,WAAas6E,EAASt6E,WAAWgD,QAC1Cu1E,EAASx4E,YAAcu6E,EAASv6E,YAAYiD,QAC5Cu1E,EAASt4E,UAAYq6E,EAASr6E,UAAU+C,QACxCu1E,EAASZ,QAAU2C,EAAS3C,QAAQ30E,QACpCu1E,EAAS1nD,UAAYypD,EAASzpD,UAAU7tB,MACxCu1E,EAASp4E,GAAKm6E,EAASn6E,GAAG6C,MAC1Bu1E,EAASrkB,YAAcomB,EAASpmB,YAAYlxD,QAC5Cu1E,EAASX,YAAc0C,EAAS1C,YAAY50E,QAC5Cu1E,EAASl4E,YAAci6E,EAASj6E,YAAY2C,QAC5Cu1E,EAASh4E,SAAW+5E,EAAS/5E,SAAS85E,QACjC9B,EAAS54E,QACV44E,EAAS/2E,gBAAiB,EAC1B+2E,EAAS54E,MAAQ,IAAM43B,EAAM48C,gBAAgB7yE,QAC7Ci3E,EAASf,UAAY,MAG7B2C,gCAAiC,SAAU5iD,GAAV,GACzB48C,GAAkB58C,EAAM48C,gBACxBoG,EAAoBhlF,KAAKukF,WAAWS,iBACxCpG,GAAgBwC,eAAiB4D,EAAkB5D,eAAe3zE,MAClEmxE,EAAgB4C,iBAAmBwD,EAAkBxD,iBAAiB/zE,QACtEmxE,EAAgBz0E,QAAU66E,EAAkB76E,QAAQsD,MACpDmxE,EAAgB2B,iBAAmByE,EAAkBzE,iBAAiB9yE,QACtEmxE,EAAgBxyE,WAAa44E,EAAkB54E,WAAWqB,QAC1DmxE,EAAgBvyE,cAAgB24E,EAAkB34E,cAAcoB,SAEpEw3E,SAAU,SAAU36E,EAAOmD,GACnBA,GAASrM,EAAEuC,QAAQ8J,EAAOnD,QAC1BA,EAAMnK,KAAKsN,IAGnB22E,yBAA0B,SAAU52E,EAASw0B,GAAnB,GAMlBkjD,GAUAC,EAfAp3E,EAAO/N,KACPukF,EAAax2E,EAAKw2E,WAClBM,EAAYN,EAAWM,aACvBjG,EAAkB58C,EAAM48C,gBAAkB58C,EAAM48C,mBACpDA,GAAgB9zE,YAAc8zE,EAAgB9zE,aAAe,GACzDo6E,EAAwB,SAAU3gE,GAAV,GACpBygE,GAAoBj3E,EAAKw2E,WAAWS,kBACpCI,EAAuBJ,EAAkB34E,cACzCg5E,EAAgCD,EAAqB33E,QACrDszE,EAAkBx8D,EAAKw/B,OAAOt2C,OAC9BszE,GAAkBsE,GAClBD,EAAqB33E,MAAMszE,GAE/BqE,EAAqBjyE,IAAI4tE,IAEzBoE,EAAqB,SAAU5gE,GAAV,GACjBygE,GAAoBj3E,EAAKw2E,WAAWS,kBACpCM,EAAoBN,EAAkB54E,WACtCm5E,EAA4BD,EAAkB73E,QAC9C+3E,EAAejhE,EAAKw/B,OAAOt2C,OAC3B+3E,GAAeD,GACfD,EAAkB73E,MAAM+3E,GAE5BF,EAAkBnyE,IAAIqyE,IAE1Bz3E,EAAKk3E,SAAS36E,EAAOs0E,EAAgBqD,WACrCl0E,EAAKk3E,SAAS36E,EAAOs0E,EAAgBsD,YACrCn0E,EAAK03E,oBAAoBj4E,EAAQkB,KAAK,yBAA0B,QAASkwE,EAAiBiG,GAC1F92E,EAAK03E,oBAAoBj4E,EAAQkB,KAAK,0BAA2B,SAAUkwE,EAAiBiG,GAC5F92E,EAAK03E,oBAAoBj4E,EAAQkB,KAAK,2BAA4B,UAAWkwE,EAAiBiG,GAC1F3xE,IAAK,EACLzF,MAAOi2E,EACPxgE,OAAQgiE,IAEZn3E,EAAK03E,oBAAoBj4E,EAAQkB,KAAK,wBAAyB,OAAQkwE,EAAiBiG,GACpF3xE,IAAK,EACLzF,MAAOi2E,EACPxgE,OAAQiiE,IAEZp3E,EAAK23E,kBAAkBl4E,EAAQkB,KAAK,8BAA+B,YAAakwE,EAAiBiG,EAAWv6E,GAC5GyD,EAAK23E,kBAAkBl4E,EAAQkB,KAAK,+BAAgC,aAAckwE,EAAiBiG,EAAWv6E,GAC9GyD,EAAK03E,oBAAoBj4E,EAAQkB,KAAK,gCAAiC,cAAekwE,EAAiBiG,GACvG92E,EAAK03E,oBAAoBj4E,EAAQkB,KAAK,gCAAiC,cAAekwE,EAAiBiG,GACvG92E,EAAK43E,4BAA4Bn4E,EAAQkB,KAAK,6BAA8BkwE,GAC5E7wE,EAAK63E,iBAAiBp4E,EAAQkB,KAAK,sBAAuB,UAAWkwE,EAAiBiG,GACtF92E,EAAK83E,WAAWr4E,EAAQkB,KAAK,uBAAwB,YAAakwE,EAAiBiG,GACnF92E,EAAK83E,WAAWr4E,EAAQkB,KAAK,gBAAiB,KAAMkwE,EAAiBiG,GACrE92E,EAAK03E,oBAAoBj4E,EAAQkB,KAAK,0BAA2B,cAAekwE,EAAiBiG,GACjG92E,EAAK63E,iBAAiBp4E,EAAQkB,KAAK,0BAA2B,cAAekwE,EAAiBiG,GAC9F92E,EAAK+3E,yBAAyBt4E,EAAQkB,KAAK,0BAA2B,cAAekwE,EAAiBiG,EAAWpB,GACjH11E,EAAKg4E,cAAcv4E,EAAQkB,KAAK,8BAA+B,kBAAmBkwE,EAAiBiG,IAEvGR,wBAAyB,SAAU72E,EAASw0B,GAAnB,GAIjBk9C,GAHAqF,EAAavkF,KAAKukF,WAClBQ,EAAWR,EAAWQ,WAC1B/iD,GAAM87C,cAAgB97C,EAAM87C,cAAgB97C,EAAM87C,kBAC9CoB,EAAiBl9C,EAAM87C,cAAc,KACrChzE,YAAa,GACbE,UAAU,GAEdhL,KAAKilF,SAAS36E,EAAO40E,EAAe+C,WACpCjiF,KAAKilF,SAAS36E,EAAO40E,EAAegD,YACpCliF,KAAK+lF,cAAcv4E,EAAQkB,KAAK,4BAA6B,iBAAkBszB,EAAM48C,gBAAiBmG,GACtG/kF,KAAKylF,oBAAoBj4E,EAAQkB,KAAK,wBAAyB,QAASwwE,EAAgB6F,GACxF/kF,KAAKylF,oBAAoBj4E,EAAQkB,KAAK,yBAA0B,SAAUwwE,EAAgB6F,GAC1F/kF,KAAK0lF,kBAAkBl4E,EAAQkB,KAAK,6BAA8B,YAAawwE,EAAgB6F,EAAUz6E,GACzGtK,KAAK0lF,kBAAkBl4E,EAAQkB,KAAK,8BAA+B,aAAcwwE,EAAgB6F,EAAUz6E,GAC3GtK,KAAKylF,oBAAoBj4E,EAAQkB,KAAK,+BAAgC,aAAcwwE,EAAgB6F,GACpG/kF,KAAKylF,oBAAoBj4E,EAAQkB,KAAK,iCAAkC,cAAewwE,EAAgB6F,GACvG/kF,KAAKgmF,2BAA2Bx4E,EAAQkB,KAAK,4BAA6BwwE,GAC1El/E,KAAK4lF,iBAAiBp4E,EAAQkB,KAAK,qBAAsB,UAAWwwE,EAAgB6F,GACpF/kF,KAAK6lF,WAAWr4E,EAAQkB,KAAK,4BAA6B,YAAawwE,EAAgB6F,GACvF/kF,KAAK6lF,WAAWr4E,EAAQkB,KAAK,qBAAsB,KAAMwwE,EAAgB6F,GACzE/kF,KAAKylF,oBAAoBj4E,EAAQkB,KAAK,+BAAgC,cAAewwE,EAAgB6F,GACrG/kF,KAAK4lF,iBAAiBp4E,EAAQkB,KAAK,+BAAgC,cAAewwE,EAAgB6F,GAClG/kF,KAAK8lF,yBAAyBt4E,EAAQkB,KAAK,+BAAgC,cAAewwE,EAAgB6F,EAAUtB,GACpHzjF,KAAK+lF,cAAcv4E,EAAQkB,KAAK,uBAAwB,WAAYwwE,EAAgB6F,IAExFT,iCAAkC,SAAU92E,EAASw0B,GAAnB,GAC1BuiD,GAAavkF,KAAKukF,WAClBS,EAAoBT,EAAWS,qBAC/BpG,EAAkB58C,EAAM48C,eAC5B5+E,MAAK6lF,WAAWr4E,EAAQkB,KAAK,2BAA4B,iBAAkBkwE,EAAiBoG,GAC5FhlF,KAAKimF,oCAAoCz4E,EAAQkB,KAAK,qCAAsCkwE,GAC5F5+E,KAAK6lF,WAAWr4E,EAAQkB,KAAK,mCAAoC,UAAWkwE,EAAiBoG,GAC7FhlF,KAAKkmF,yBAAyB14E,EAAQkB,KAAK,2BAA4B,oBAAsBy3E,gBAAgB,GAAQvH,EAAiBoG,GACtIhlF,KAAKylF,oBAAoBj4E,EAAQkB,KAAK,+BAAgC,aAAckwE,EAAiBoG,GAAqB7xE,IAAKyrE,EAAgB5yE,MAAQ03E,IACvJ1jF,KAAKylF,oBAAoBj4E,EAAQkB,KAAK,kCAAmC,gBAAiBkwE,EAAiBoG,GAAqB7xE,IAAKyrE,EAAgB7yE,SAAW23E,KAEpK+B,oBAAqB,SAAUj4E,EAAS05B,EAAUvP,EAAMyuD,EAASC,GAC7D,GAAIC,GAAYF,EAAQl/C,GAAY15B,EAAQ+4E,oBAAoBF,EAAWjlF,EAAEzB,UAAW6jF,EAAwB6C,GAAY7C,GAAwB7rD,KAAK,sBACrJuP,KAAYvP,IACZ2uD,EAAU74E,MAAM4B,SAASsoB,EAAKuP,GAAW,MAGjDw+C,kBAAmB,SAAUl4E,EAAS05B,EAAUvP,EAAMyuD,EAASl8C,GAC3D,GAAIo8C,GAAYF,EAAQl/C,GAAY15B,EAAQg5E,mBAAoBt8C,WAAYA,IAAcvS,KAAK,oBAC/F33B,MAAKymF,mBAAmBH,EAAW3uD,EAAMuP,IAE7C4+C,yBAA0B,SAAUt4E,EAAS05B,EAAUvP,EAAMyuD,EAASl8C,GAClE,GAAIo8C,GAAYF,EAAQl/C,GAAY15B,EAAQg5E,mBACxCt8C,WAAYA,EACZw8C,YAAa1mF,KAAKH,QAAQ0H,SAASmF,aACpCirB,KAAK,oBACR33B,MAAKymF,mBAAmBH,EAAW3uD,EAAMuP,IAE7Cy+C,4BAA6B,SAAUn4E,EAASmqB,GAAnB,GACrBpwB,GAAWvH,KAAKH,QAAQ0H,SACxBs9E,EAAY7kF,KAAKukF,WAAWM,UAC5B36C,EAAay5C,EAA+Bz5C,UAChDA,GAAW,GAAGgR,QAAU3zC,EAAS2D,UACjCg/B,EAAW,GAAGgR,QAAU3zC,EAAS4D,YACjC++B,EAAW,GAAGgR,QAAU3zC,EAAS6D,WACjC8+B,EAAW,GAAGgR,QAAU3zC,EAASuE,YACjC9L,KAAK2mF,uBAAuBn5E,EAASm2E,EAAgC,YAAahsD,EAAMktD,IAE5FmB,2BAA4B,SAAUx4E,EAASmqB,GAAnB,GACpBpwB,GAAWvH,KAAKH,QAAQ0H,SACxBw9E,EAAW/kF,KAAKukF,WAAWQ,SAC3B76C,EAAa05C,EAA8B15C,UAC/CA,GAAW,GAAGgR,QAAU3zC,EAAS8D,aACjC6+B,EAAW,GAAGgR,QAAU3zC,EAAS+D,eACjC4+B,EAAW,GAAGgR,QAAU3zC,EAASgE,cACjC2+B,EAAW,GAAGgR,QAAU3zC,EAASiE,gBACjC0+B,EAAW,GAAGgR,QAAU3zC,EAASkE,kBACjCy+B,EAAW,GAAGgR,QAAU3zC,EAASmE,iBACjCw+B,EAAW,GAAGgR,QAAU3zC,EAASoE,gBACjCu+B,EAAW,GAAGgR,QAAU3zC,EAASqE,kBACjCs+B,EAAW,GAAGgR,QAAU3zC,EAASsE,iBACjCq+B,EAAW,GAAGgR,QAAU3zC,EAASuE,YACjC9L,KAAK2mF,uBAAuBn5E,EAASo2E,EAA+B,YAAajsD,EAAMotD,IAE3FkB,oCAAqC,SAAUz4E,EAASmqB,GAAnB,GAC7BpwB,GAAWvH,KAAKH,QAAQ0H,SACxBy9E,EAAoBhlF,KAAKukF,WAAWS,kBACpC96C,EAAa25C,EAAuC35C,UACxDA,GAAW,GAAGgR,QAAU3zC,EAAS8D,aACjC6+B,EAAW,GAAGgR,QAAU3zC,EAAS+D,eACjC4+B,EAAW,GAAGgR,QAAU3zC,EAASgE,cACjC2+B,EAAW,GAAGgR,QAAU3zC,EAASoE,gBACjCu+B,EAAW,GAAGgR,QAAU3zC,EAASqE,kBACjCs+B,EAAW,GAAGgR,QAAU3zC,EAASsE,iBACjCq+B,EAAW,GAAGgR,QAAU3zC,EAASuE,YACjC9L,KAAK2mF,uBAAuBn5E,EAASq2E,EAAwC,mBAAoBlsD,EAAMqtD,IAE3G2B,uBAAwB,SAAUn5E,EAAS64E,EAAU7iF,EAAMm0B,EAAMyuD,GAC7D,GAAIE,GAAYF,EAAQ5iF,GAAQgK,EAAQg5E,kBAAkBH,GAAU1uD,KAAK,oBACzE2uD,GAAUrpD,KAAKruB,SAAS,WAAWyG,IAAI,QAAS,SAChDrV,KAAKymF,mBAAmBH,EAAW3uD,EAAMn0B,IAE7C0iF,yBAA0B,SAAU14E,EAAShK,EAAM6iF,EAAU1uD,EAAMyuD,GAC/D,GAAIE,GAAYF,EAAQ5iF,GAAQgK,EAAQg5E,kBAAkBH,GAAU1uD,KAAK,oBACzE33B,MAAKymF,mBAAmBH,EAAW3uD,EAAMn0B,IAE7CijF,mBAAoB,SAAUH,EAAW3uD,EAAMuP,GACvCA,IAAYvP,IACZ2uD,EAAU74E,MAAMkqB,EAAKuP,KAG7B0+C,iBAAkB,SAAUp4E,EAAS05B,EAAUvP,EAAMyuD,GACjD,GAAIE,GAAYF,EAAQl/C,GAAY15B,EAAQo5E,kBACxCrpC,SAAS,EACTspC,aAAa,IACdlvD,KAAK,mBACJA,GAAKuP,IACLo/C,EAAU74E,MAAMkqB,EAAKuP,KAG7B2+C,WAAY,SAAUr4E,EAAS05B,EAAUvP,EAAMyuD,GAC3C,GAAIE,GAAYF,EAAQl/C,GAAY15B,EAAQ8P,IAAI,EAC5C4pB,KAAYvP,KACZ2uD,EAAU74E,MAAQkqB,EAAKuP,KAG/B6+C,cAAe,SAAUv4E,EAAS05B,EAAUvP,EAAMyuD,GAC9C,GAAIE,GAAYF,EAAQl/C,GAAY15B,EAAQ8P,IAAI,EAC5C4pB,KAAYvP,KACZ2uD,EAAUxB,QAAUntD,EAAKuP,KAGjC9yB,QAAS,WACLpU,KAAK8mF,mBAAmB9mF,KAAKukF,WAAWM,WACxC7kF,KAAK8mF,mBAAmB9mF,KAAKukF,WAAWQ,UACxC/kF,KAAK8mF,mBAAmB9mF,KAAKukF,WAAWS,mBACxChlF,KAAK8mF,mBAAmB9mF,KAAKukF,kBACtBvkF,MAAKukF,YAEhBuC,mBAAoB,SAAUvC,GAC1B,IAAK,GAAIzlC,KAAUylC,GACXA,EAAWzlC,GAAQ1qC,SACnBmwE,EAAWzlC,GAAQ1qC,gBAEhBmwE,GAAWzlC,IAG1BqG,gBAAiB,SAAU59C,GACvB,MAAO/H,GAAMmD,SAASmhF,IAAkBv8E,SAAUA,MAG1D/H,GAAMoC,GAAGqM,OAAOmwE,kBAAoBA,GACtC38E,OAAOjC,MAAM8lB,SACC,kBAAV/lB,SAAwBA,OAAOyB,IAAMzB,OAAS,SAAU0B,EAAIC,EAAIC,IACrEA,GAAMD,OAEV,SAAU5B,EAAGC,QACVA,OAAO,gBACH,iBACA,qBACA,kBACA,eACA,oBACA,qBACA,uBACA,qBACA,cACA,aACA,oBACA,eACA,iBACA,oBACA,iBACA,oBACA,0BACA,sBACA,uBACA,4BACA,uBACA,wBACA,wBACA,wBACA,wBACA,2BACA,wBACA,8BACA,6BACA,sBACA,wBACA,2BACA,0BACA,2BACA,uBACA,+BACA,kCACA,+BACA,mCACA,wCACA,2CACA,2CACDD,IACL,WA8CE,MAAOmC,QAAOjC,OACE,kBAAVD,SAAwBA,OAAOyB,IAAMzB,OAAS,SAAU0B,EAAIC,EAAIC,IACrEA,GAAMD","file":"kendo.editor.min.js","sourcesContent":["/*!\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n*/\n(function (f, define) {\n define('util/undoredostack', ['kendo.core'], f);\n}(function () {\n (function (kendo) {\n var UndoRedoStack = kendo.Observable.extend({\n init: function (options) {\n kendo.Observable.fn.init.call(this, options);\n this.clear();\n },\n events: [\n 'undo',\n 'redo'\n ],\n push: function (command) {\n this.stack = this.stack.slice(0, this.currentCommandIndex + 1);\n this.currentCommandIndex = this.stack.push(command) - 1;\n },\n undo: function () {\n if (this.canUndo()) {\n var command = this.stack[this.currentCommandIndex--];\n command.undo();\n this.trigger('undo', { command: command });\n }\n },\n redo: function () {\n if (this.canRedo()) {\n var command = this.stack[++this.currentCommandIndex];\n command.redo();\n this.trigger('redo', { command: command });\n }\n },\n clear: function () {\n this.stack = [];\n this.currentCommandIndex = -1;\n },\n canUndo: function () {\n return this.currentCommandIndex >= 0;\n },\n canRedo: function () {\n return this.currentCommandIndex != this.stack.length - 1;\n }\n });\n kendo.deepExtend(kendo, { util: { UndoRedoStack: UndoRedoStack } });\n }(kendo));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/main', [\n 'util/undoredostack',\n 'kendo.combobox',\n 'kendo.dropdownlist',\n 'kendo.window',\n 'kendo.colorpicker'\n ], f);\n}(function () {\n (function ($, undefined) {\n var kendo = window.kendo, Class = kendo.Class, Widget = kendo.ui.Widget, os = kendo.support.mobileOS, browser = kendo.support.browser, extend = $.extend, proxy = $.proxy, deepExtend = kendo.deepExtend, keys = kendo.keys;\n var SELECT = 'select';\n var SELECT_OVERLAY_SELECTOR = 'select.k-select-overlay';\n var PLACEHOLDER_CLASS = 'k-placeholder';\n var PLACEHOLDER_TAG_ID = 'placeholder';\n var REFRESH_INTERVAL = 200;\n var DEFAULT_LANGUAGE = 'en';\n var ToolTemplate = Class.extend({\n init: function (options) {\n this.options = options;\n },\n getHtml: function () {\n var options = this.options;\n return kendo.template(options.template, { useWithBlock: false })(options);\n }\n });\n var EditorUtils = {\n editorWrapperTemplate: '' + '' + '' + '' + '' + '
    ',\n buttonTemplate: '# var iconCssClass = \"k-icon k-i-\" + kendo.toHyphens(data.cssClass.replace(\"k-\", \"\"));#' + '# var dataPopup = data.popup ? \"data-popup\" : \"\";#' + '',\n iconTextButtonTemplate: '# var iconCssClass = \"k-icon k-i-\" + kendo.toHyphens(data.cssClass.replace(\"k-\", \"\"));#' + '# var dataPopup = data.popup ? \"data-popup\" : \"\";#' + '',\n tableWizardButtonTemplate: '# var iconCssClass = \"k-icon k-i-\" + kendo.toHyphens(data.cssClass.replace(\"k-\", \"\"));#' + '# var dataPopup = data.popup ? \"data-popup\" : \"\";#' + '',\n colorPickerTemplate: '',\n comboBoxTemplate: '',\n dropDownListTemplate: '',\n separatorTemplate: '',\n overflowAnchorTemplate: '',\n formatByName: function (name, format) {\n for (var i = 0; i < format.length; i++) {\n if ($.inArray(name, format[i].tags) >= 0) {\n return format[i];\n }\n }\n },\n getToolCssClass: function (name) {\n var toolCssClassNames = {\n superscript: 'sup-script',\n subscript: 'sub-script',\n justifyLeft: 'align-left',\n justifyCenter: 'align-center',\n justifyRight: 'align-right',\n justifyFull: 'align-justify',\n insertUnorderedList: 'list-unordered',\n insertOrderedList: 'list-ordered',\n insertUpperRomanList: 'list-roman-upper',\n insertLowerRomanList: 'list-roman-lower',\n 'import': 'import',\n indent: 'indent-increase',\n outdent: 'indent-decrease',\n createLink: 'link-horizontal',\n unlink: 'unlink-horizontal',\n insertImage: 'image',\n insertFile: 'file-add',\n viewHtml: 'html',\n foreColor: 'foreground-color',\n backColor: 'paint',\n createTable: 'table-insert',\n addColumnLeft: 'table-column-insert-left',\n addColumnRight: 'table-column-insert-right',\n addRowAbove: 'table-row-insert-above',\n addRowBelow: 'table-row-insert-below',\n deleteRow: 'table-row-delete',\n deleteColumn: 'table-column-delete',\n mergeCellsHorizontally: 'cells-merge-horizontally',\n mergeCellsVertically: 'cells-merge-vertically',\n splitCellHorizontally: 'cell-split-horizontally',\n splitCellVertically: 'cell-split-vertically',\n tableWizard: 'table-properties',\n tableWizardInsert: 'table-wizard',\n tableAlignLeft: 'table-position-left',\n tableAlignCenter: 'table-position-center',\n tableAlignRight: 'table-position-right',\n cleanFormatting: 'clear-css',\n copyFormat: 'copy-format',\n applyFormat: 'apply-format'\n };\n var cssClass = toolCssClassNames[name];\n if (cssClass) {\n return cssClass;\n }\n return name;\n },\n registerTool: function (toolName, tool) {\n var toolOptions = tool.options;\n if (toolOptions && toolOptions.template) {\n toolOptions.template.options.cssClass = 'k-' + EditorUtils.getToolCssClass(toolName);\n }\n if (!tool.name) {\n tool.options.name = toolName;\n tool.name = toolName.toLowerCase();\n }\n Editor.defaultTools[toolName] = tool;\n },\n registerFormat: function (formatName, format) {\n Editor.fn.options.formats[formatName] = format;\n },\n cacheComments: function (content, comments) {\n for (var index in comments) {\n content = content.replace(comments[index], '{' + index + '}');\n }\n return content;\n },\n retrieveComments: function (content, comments) {\n for (var index in comments) {\n content = content.replace('{' + index + '}', comments[index]);\n }\n return content;\n }\n };\n var messages = {\n bold: 'Bold',\n italic: 'Italic',\n underline: 'Underline',\n strikethrough: 'Strikethrough',\n superscript: 'Superscript',\n subscript: 'Subscript',\n justifyCenter: 'Center text',\n justifyLeft: 'Align text left',\n justifyRight: 'Align text right',\n justifyFull: 'Justify',\n insertUnorderedList: 'Insert unordered list',\n insertOrderedList: 'Insert ordered list',\n indent: 'Indent',\n outdent: 'Outdent',\n createLink: 'Insert hyperlink',\n unlink: 'Remove hyperlink',\n insertImage: 'Insert image',\n insertFile: 'Insert file',\n insertHtml: 'Insert HTML',\n viewHtml: 'View HTML',\n fontName: 'Select font family',\n fontNameInherit: '(inherited font)',\n fontSize: 'Select font size',\n fontSizeInherit: '(inherited size)',\n formatBlock: 'Format',\n formatting: 'Format',\n foreColor: 'Color',\n backColor: 'Background color',\n style: 'Styles',\n emptyFolder: 'Empty Folder',\n editAreaTitle: 'Editable area. Press F10 for toolbar.',\n uploadFile: 'Upload',\n overflowAnchor: 'More tools',\n orderBy: 'Arrange by:',\n orderBySize: 'Size',\n orderByName: 'Name',\n invalidFileType: 'The selected file \"{0}\" is not valid. Supported file types are {1}.',\n deleteFile: 'Are you sure you want to delete \"{0}\"?',\n overwriteFile: 'A file with name \"{0}\" already exists in the current directory. Do you want to overwrite it?',\n directoryNotFound: 'A directory with this name was not found.',\n imageWebAddress: 'Web address',\n imageAltText: 'Alternate text',\n imageWidth: 'Width (px)',\n imageHeight: 'Height (px)',\n fileWebAddress: 'Web address',\n fileTitle: 'Title',\n fileText: 'Text',\n linkWebAddress: 'Web address',\n linkText: 'Text',\n linkToolTip: 'ToolTip',\n linkOpenInNewWindow: 'Open link in new window',\n dialogUpdate: 'Update',\n dialogInsert: 'Insert',\n dialogOk: 'Ok',\n dialogCancel: 'Cancel',\n cleanFormatting: 'Clean formatting',\n createTable: 'Create a table',\n createTableHint: 'Create a {0} x {1} table',\n addColumnLeft: 'Add column on the left',\n addColumnRight: 'Add column on the right',\n addRowAbove: 'Add row above',\n addRowBelow: 'Add row below',\n deleteRow: 'Delete row',\n deleteColumn: 'Delete column',\n mergeCellsHorizontally: 'Merge cells horizontally',\n mergeCellsVertically: 'Merge cells vertically',\n splitCellHorizontally: 'Split cells horizontally',\n splitCellVertically: 'Split cells vertically',\n tableAlignLeft: 'Table Align Left',\n tableAlignCenter: 'Table Align Center',\n tableAlignRight: 'Table Align Right',\n tableWizard: 'Table Wizard',\n tableTab: 'Table',\n cellTab: 'Cell',\n accessibilityTab: 'Accessibility',\n caption: 'Caption',\n summary: 'Summary',\n width: 'Width',\n height: 'Height',\n units: 'Units',\n cellSpacing: 'Cell Spacing',\n cellPadding: 'Cell Padding',\n cellMargin: 'Cell Margin',\n alignment: 'Alignment',\n background: 'Background',\n cssClass: 'CSS Class',\n id: 'ID',\n border: 'Border',\n borderStyle: 'Border Style',\n collapseBorders: 'Collapse borders',\n wrapText: 'Wrap text',\n associateCellsWithHeaders: 'Associate headers',\n alignLeft: 'Align Left',\n alignCenter: 'Align Center',\n alignRight: 'Align Right',\n alignLeftTop: 'Align Left Top',\n alignCenterTop: 'Align Center Top',\n alignRightTop: 'Align Right Top',\n alignLeftMiddle: 'Align Left Middle',\n alignCenterMiddle: 'Align Center Middle',\n alignRightMiddle: 'Align Right Middle',\n alignLeftBottom: 'Align Left Bottom',\n alignCenterBottom: 'Align Center Bottom',\n alignRightBottom: 'Align Right Bottom',\n alignRemove: 'Remove Alignment',\n columns: 'Columns',\n rows: 'Rows',\n selectAllCells: 'Select All Cells',\n exportAs: 'Export As',\n 'import': 'Import',\n print: 'Print',\n headerRows: 'Header Rows',\n headerColumns: 'Header Cols',\n tableSummaryPlaceholder: 'Summary attribute is not HTML5 compatible.',\n associateNone: 'None',\n associateScope: 'Associate using \\'scope\\' attribute',\n associateIds: 'Associate using Ids',\n copyFormat: 'Copy format',\n applyFormat: 'Apply format',\n borderNone: 'None'\n };\n var supportedBrowser = !os || os.ios && os.flatVersion >= 500 || !os.ios && typeof document.documentElement.contentEditable != 'undefined';\n var toolGroups = {\n basic: [\n 'bold',\n 'italic',\n 'underline'\n ],\n alignment: [\n 'justifyLeft',\n 'justifyCenter',\n 'justifyRight'\n ],\n lists: [\n 'insertUnorderedList',\n 'insertOrderedList'\n ],\n indenting: [\n 'indent',\n 'outdent'\n ],\n formatPainter: [\n 'copyFormat',\n 'applyFormat'\n ],\n links: [\n 'createLink',\n 'unlink'\n ],\n tables: [\n 'tableWizard',\n 'createTable',\n 'addColumnLeft',\n 'addColumnRight',\n 'addRowAbove',\n 'addRowBelow',\n 'deleteRow',\n 'deleteColumn',\n 'mergeCellsHorizontally',\n 'mergeCellsVertically',\n 'splitCellHorizontally',\n 'splitCellVertically',\n 'tableAlignLeft',\n 'tableAlignCenter',\n 'tableAlignRight'\n ]\n };\n var Editor = Widget.extend({\n init: function (element, options) {\n var that = this, value, editorNS = kendo.ui.editor, toolbarContainer, toolbarOptions, type, comments;\n var domElement;\n var dom = editorNS.Dom;\n if (!supportedBrowser) {\n return;\n }\n Widget.fn.init.call(that, element, options);\n that.options = deepExtend({}, that.options, options);\n that.options.tools = that.options.tools.slice();\n element = that.element;\n domElement = element[0];\n type = dom.name(domElement);\n this._registerHandler(element.closest('form'), 'submit', proxy(that.update, that, undefined));\n toolbarOptions = extend({}, that.options);\n toolbarOptions.editor = that;\n if (type == 'textarea') {\n that._wrapTextarea();\n toolbarContainer = that.wrapper.find('.k-editor-toolbar');\n if (domElement.id) {\n toolbarContainer.attr('aria-controls', domElement.id);\n }\n } else {\n that.element.attr('contenteditable', true).addClass('k-widget k-editor k-editor-inline');\n toolbarOptions.popup = true;\n toolbarContainer = $('');\n var block = this.isBlock(html);\n editor.focus();\n var range = editor.getRange();\n range.deleteContents();\n if (range.startContainer == editor.document) {\n range.selectNodeContents(editor.body);\n }\n var marker = new Marker();\n var caret = marker.addCaret(range);\n var parent = this.splittableParent(block, caret);\n var unwrap = false;\n var splittable = parent != editor.body && !dom.is(parent, 'td');\n if (options.split && splittable && (block || dom.isInline(parent))) {\n range.selectNode(caret);\n RangeUtils.split(range, parent, true);\n unwrap = true;\n }\n var fragment = this.htmlToFragment(html);\n if (fragment.firstChild && fragment.firstChild.className === 'k-paste-container') {\n var fragmentsHtml = [];\n for (i = 0, l = fragment.childNodes.length; i < l; i++) {\n fragmentsHtml.push(fragment.childNodes[i].innerHTML);\n }\n fragment = this.htmlToFragment(fragmentsHtml.join('
    '));\n }\n childNodes = fragment.childNodes;\n $(childNodes).filter('table').addClass('k-table').end().find('table').addClass('k-table');\n $(childNodes).each(function (index, elm) {\n if (dom.isBlock(elm) && !dom.isSelfClosing(elm) && elm.innerHTML === '') {\n elm.appendChild(editor.document.createTextNode('\\uFEFF'));\n }\n });\n range.insertNode(fragment);\n parent = this.splittableParent(block, caret);\n if (unwrap) {\n while (caret.parentNode != parent) {\n dom.unwrap(caret.parentNode);\n }\n dom.unwrap(caret.parentNode);\n }\n dom.normalize(range.commonAncestorContainer);\n caret.style.display = 'inline';\n dom.restoreScrollTop(editor.document);\n dom.scrollTo(caret);\n marker.removeCaret(range);\n var rangeEnd = range.commonAncestorContainer.parentNode;\n if (range.collapsed && dom.name(rangeEnd) == 'tbody' || range.collapsed && dom.name(rangeEnd) == 'thead') {\n range.setStartAfter($(rangeEnd).closest('table')[0]);\n range.collapse(true);\n }\n var focusedTable = $(range.commonAncestorContainer.parentNode).closest('table');\n if (focusedTable.get(0)) {\n var siblingNodes = focusedTable.parent().contents();\n var lastSiblingIndex = siblingNodes.length - 1;\n var lastSibling = siblingNodes.get(lastSiblingIndex);\n while (lastSibling.nodeValue !== null && (lastSibling.nodeValue === ' ' || lastSibling.nodeValue === '')) {\n lastSiblingIndex -= 1;\n lastSibling = siblingNodes.get(lastSiblingIndex);\n }\n if (lastSibling === focusedTable.get(0) && !focusedTable.parents('table').length) {\n dom.insertAfter(dom.createEmptyNode(editor.document, 'p'), focusedTable[0]);\n }\n }\n editor.selectRange(range);\n }\n });\n var Cleaner = Class.extend({\n init: function (options) {\n this.options = options || {};\n this.replacements = [];\n },\n clean: function (html, customReplacements) {\n var that = this, replacements = customReplacements || that.replacements, i, l;\n for (i = 0, l = replacements.length; i < l; i += 2) {\n html = html.replace(replacements[i], replacements[i + 1]);\n }\n return html;\n }\n });\n var ScriptCleaner = Cleaner.extend({\n init: function (options) {\n Cleaner.fn.init.call(this, options);\n this.replacements = [\n /<(\\/?)script([^>]*)>/i,\n '<$1telerik:script$2>'\n ];\n },\n applicable: function (html) {\n return !this.options.none && /]*>/i.test(html);\n }\n });\n var TabCleaner = Cleaner.extend({\n init: function (options) {\n Cleaner.fn.init.call(this, options);\n var replacement = ' ';\n this.replacements = [\n /]*>\\s*<\\/span>/gi,\n replacement,\n /\\t/gi,\n replacement,\n /    /gi,\n replacement\n ];\n },\n applicable: function (html) {\n return /    |class=\"?Apple-tab-span/i.test(html);\n }\n });\n var MSWordFormatCleaner = Cleaner.extend({\n init: function (options) {\n Cleaner.fn.init.call(this, options);\n this.junkReplacements = [\n /<\\?xml[^>]*>/gi,\n '',\n //g,\n '',\n /"/g,\n '\\'',\n / <\\/o:p>/gi,\n ' ',\n /<\\/?(meta|link|style|o:|v:|x:)[^>]*>((?:.|\\n)*?<\\/(meta|link|style|o:|v:|x:)[^>]*>)?/gi,\n '',\n /<\\/o>/g,\n ''\n ];\n this.replacements = this.junkReplacements.concat([\n /(?:
     [\\s\\r\\n]+|
    )*(<\\/?(h[1-6]|hr|p|div|table|tbody|thead|tfoot|th|tr|td|li|ol|ul|caption|address|pre|form|blockquote|dl|dt|dd|dir|fieldset)[^>]*>)(?:
     [\\s\\r\\n]+|
    )*/g,\n '$1',\n /

    /g,\n '

    ',\n /
    (?!\\n)/g,\n ' ',\n /]*)>(\\s| )+]*>(\\s| )*<\\/tr>/gi,\n '',\n /]*>(\\s| )*<\\/tbody>/gi,\n '',\n /]*>(\\s| )*<\\/table>/gi,\n '',\n /

    /g,\n '
    ',\n /^\\s*( )+/gi,\n '',\n /( |]*>)+\\s*$/gi,\n '',\n /mso-[^;\"]*;?/gi,\n '',\n /<(\\/?)b(\\s[^>]*)?>/gi,\n '<$1strong$2>',\n /<(\\/?)font(\\s[^>]*)?>/gi,\n this.convertFontMatch,\n /<(\\/?)i(\\s[^>]*)?>/gi,\n '<$1em$2>',\n /style=([\"|'])\\s*\\1/g,\n '',\n /(]*>)?\\n/g,\n function ($0, $1) {\n return $1 ? $0 : ' ';\n }\n ]);\n },\n convertFontMatch: function (match, closing, args) {\n var faceRe = /face=['\"]([^'\"]+)['\"]/i;\n var face = faceRe.exec(args);\n var family = args && face && face[1];\n if (closing) {\n return '';\n } else if (family) {\n return '';\n } else {\n return '';\n }\n },\n applicable: function (html) {\n return /class=\"?Mso/i.test(html) || /style=\"[^\"]*mso-/i.test(html) || /urn:schemas-microsoft-com:office/.test(html);\n },\n stripEmptyAnchors: function (html) {\n return html.replace(/]*)>\\s*<\\/a>/gi, function (a, attributes) {\n if (!attributes || attributes.indexOf('href') < 0) {\n return '';\n }\n return a;\n });\n },\n listType: function (p, listData) {\n var html = p.innerHTML;\n var text = dom.innerText(p);\n var startingSymbol;\n var matchSymbol = html.match(/^(?:]*texhtml[^>]*>)?]*(?:Symbol|Wingdings)[^>]*>([^<]+)/i);\n var symbol = matchSymbol && matchSymbol[1];\n var isNumber = /^[a-z\\d]/i.test(symbol);\n var trimStartText = function (text) {\n return text.replace(/^(?: |[\\u00a0\\n\\r\\s])+/, '');\n };\n if (matchSymbol) {\n startingSymbol = true;\n }\n html = html.replace(/<\\/?\\w+[^>]*>/g, '').replace(/ /g, '\\xA0');\n if (!startingSymbol && /^[\\u2022\\u00b7\\u00a7\\u00d8o]\\u00a0+/.test(html) || startingSymbol && /^.\\u00a0+/.test(html) || symbol && !isNumber && listData) {\n return {\n tag: 'ul',\n style: this._guessUnorderedListStyle(trimStartText(text))\n };\n }\n if (/^\\s*\\w+[\\.\\)][\\u00a0 ]{2,}/.test(html)) {\n return {\n tag: 'ol',\n style: this._guessOrderedListStyle(trimStartText(text))\n };\n }\n },\n _convertToLi: function (p) {\n var content;\n if (p.childNodes.length == 1) {\n content = p.firstChild.nodeType === dom.nodeTypes.TEXT_NODE ? dom.innerText(p) : p.firstChild.innerHTML.replace(/^\\w+[\\.\\)]( )+ /, '');\n content = this._checkForBullet(content);\n } else {\n content = this._getHtmlNoBullet(p);\n }\n dom.remove(p);\n return dom.create(document, 'li', { innerHTML: content });\n },\n _checkForBullet: function (html) {\n var p = dom.create(document, 'p', { innerHTML: html });\n var bulletRgx = /^\\s*\\w+[\\.\\)]\\s+/;\n if (bulletRgx.test(p.innerText)) {\n return this._getHtmlNoBullet(p);\n }\n return html;\n },\n _getHtmlNoBullet: function (element) {\n var content, name = dom.name(element);\n dom.remove(element.firstChild);\n if (element.firstChild.nodeType == 3) {\n if (/^[ivxlcdm]+\\.$/i.test(element.firstChild.nodeValue)) {\n dom.remove(element.firstChild);\n }\n }\n if (/^( |\\s)+$/i.test(element.firstChild.innerHTML)) {\n dom.remove(element.firstChild);\n }\n if (name != 'p') {\n content = '<' + name + '>' + element.innerHTML + '';\n } else {\n content = element.innerHTML;\n }\n return content;\n },\n _guessUnorderedListStyle: function (symbol) {\n if (/^[\\u2022\\u00b7\\u00FC\\u00D8\\u002dv-]/.test(symbol)) {\n return null;\n } else if (/^o/.test(symbol)) {\n return 'circle';\n } else {\n return 'square';\n }\n },\n _guessOrderedListStyle: function (symbol) {\n var listType = null;\n if (!/^\\d/.test(symbol)) {\n listType = (/^[a-z]/.test(symbol) ? 'lower-' : 'upper-') + (/^[ivxlcdm]/i.test(symbol) ? 'roman' : 'alpha');\n }\n return listType;\n },\n extractListLevels: function (html) {\n var msoListRegExp = /style=['\"]?[^'\"]*?mso-list:\\s?[a-zA-Z]+(\\d+)\\s[a-zA-Z]+(\\d+)\\s(\\w+)/gi;\n html = html.replace(msoListRegExp, function (match, list, level) {\n return kendo.format('data-list=\"{0}\" data-level=\"{1}\" {2}', list, level, match);\n });\n return html;\n },\n _createList: function (type, styleType) {\n return dom.create(document, type, { style: { listStyleType: styleType } });\n },\n lists: function (placeholder) {\n var blockChildren = $(placeholder).find(dom.blockElements.join(',')), lastMargin = -1, name, levels = {}, li, rootMargin, rootIndex, lastRootLi, isLastRootLi, rootList, i, p, type, margin, list, listData, acceptedNameTags = [\n 'p',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6'\n ], isParentTable = false;\n for (i = 0; i < blockChildren.length; i++) {\n p = blockChildren[i];\n listData = $(p).data();\n var listIndex = listData.list;\n name = dom.name(p);\n isParentTable = !!$(p).parents('table').length;\n if (isParentTable) {\n continue;\n }\n var listType = this.listType(p, listData);\n type = listType && listType.tag;\n if (!type || acceptedNameTags.indexOf(name) < 0) {\n if (!p.innerHTML) {\n dom.remove(p);\n } else if (li && !isLastRootLi) {\n li.appendChild(p);\n }\n continue;\n }\n if (browser.msie) {\n continue;\n }\n margin = listData.level || parseFloat(p.style.marginLeft || 0);\n var levelType = type + listIndex;\n if (!levels[margin]) {\n levels[margin] = {};\n }\n if (!rootMargin || rootMargin < 0) {\n rootMargin = margin;\n rootIndex = listIndex;\n lastRootLi = $(placeholder).find('[data-list=\\'' + rootIndex + '\\']').last()[0];\n rootList = this._createList(type, listType.style);\n dom.insertBefore(rootList, p);\n lastMargin = margin;\n levels[margin][levelType] = rootList;\n }\n isLastRootLi = lastRootLi === p;\n list = levels[margin][levelType];\n if (margin > lastMargin || !list) {\n list = this._createList(type, listType.style);\n levels[margin][levelType] = list;\n li.appendChild(list);\n }\n li = this._convertToLi(p);\n list.appendChild(li);\n if (isLastRootLi) {\n rootMargin = lastMargin = -1;\n } else {\n lastMargin = margin;\n }\n }\n },\n removeAttributes: function (element) {\n var attributes = element.attributes, i = attributes.length;\n while (i--) {\n if (dom.name(attributes[i]) != 'colspan') {\n element.removeAttributeNode(attributes[i]);\n }\n }\n },\n createColGroup: function (row) {\n var cells = row.cells;\n var table = $(row).closest('table');\n var colgroup = table.children('colgroup');\n if (cells.length < 2) {\n return;\n } else if (colgroup.length) {\n cells = colgroup.children();\n colgroup[0].parentNode.removeChild(colgroup[0]);\n }\n colgroup = $($.map(cells, function (cell) {\n var width = cell.width;\n if (width && parseInt(width, 10) !== 0) {\n return kendo.format('', width);\n }\n return '';\n }).join(''));\n if (!colgroup.is('colgroup')) {\n colgroup = $('').append(colgroup);\n }\n colgroup.prependTo(table);\n },\n convertHeaders: function (row) {\n var cells = row.cells, i, boldedCells = $.map(cells, function (cell) {\n var child = $(cell).children('p').children('strong')[0];\n if (child && dom.name(child) == 'strong') {\n return child;\n }\n });\n if (boldedCells.length == cells.length) {\n for (i = 0; i < boldedCells.length; i++) {\n dom.unwrap(boldedCells[i]);\n }\n $(row).closest('table').find('colgroup').after('').end().find('thead').append(row);\n for (i = 0; i < cells.length; i++) {\n dom.changeTag(cells[i], 'th');\n }\n }\n },\n removeParagraphs: function (cells) {\n var i, j, len, cell, paragraphs;\n for (i = 0; i < cells.length; i++) {\n this.removeAttributes(cells[i]);\n cell = $(cells[i]);\n paragraphs = cell.children('p');\n for (j = 0, len = paragraphs.length; j < len; j++) {\n if (j < len - 1) {\n dom.insertAfter(dom.create(document, 'br'), paragraphs[j]);\n }\n dom.unwrap(paragraphs[j]);\n }\n }\n },\n removeDefaultColors: function (spans) {\n for (var i = 0; i < spans.length; i++) {\n if (/^\\s*color:\\s*[^;]*;?$/i.test(spans[i].style.cssText)) {\n dom.unwrap(spans[i]);\n }\n }\n },\n removeTextNodes: function (trs) {\n var i, j, childNodes, currentNode, row;\n for (i = 0; i < trs.length; i++) {\n row = trs[i];\n childNodes = row.childNodes;\n for (j = 0; j < childNodes.length; j++) {\n currentNode = childNodes[j];\n if (currentNode.nodeType === dom.nodeTypes.TEXT_NODE) {\n row.removeChild(currentNode);\n }\n }\n }\n },\n tables: function (placeholder) {\n var tables = $(placeholder).find('table'), that = this, rows, firstRow, longestRow, i, j;\n for (i = 0; i < tables.length; i++) {\n rows = tables[i].rows;\n longestRow = firstRow = rows[0];\n for (j = 1; j < rows.length; j++) {\n if (rows[j].cells.length > longestRow.cells.length) {\n longestRow = rows[j];\n }\n }\n that.createColGroup(longestRow);\n that.convertHeaders(firstRow);\n that.removeAttributes(tables[i]);\n that.removeParagraphs(tables.eq(i).find('td,th'));\n that.removeDefaultColors(tables.eq(i).find('span'));\n that.removeTextNodes(tables.eq(i).find('tr'));\n }\n },\n headers: function (placeholder) {\n var titles = $(placeholder).find('p.MsoTitle');\n for (var i = 0; i < titles.length; i++) {\n dom.changeTag(titles[i], 'h1');\n }\n },\n removeFormatting: function (placeholder) {\n $(placeholder).find('*').each(function () {\n $(this).css({\n fontSize: '',\n fontFamily: ''\n });\n if (!this.getAttribute('style') && !this.style.cssText) {\n this.removeAttribute('style');\n }\n });\n },\n clean: function (html) {\n var that = this, placeholder;\n var filters = this.options;\n if (filters.none) {\n html = Cleaner.fn.clean.call(that, html, this.junkReplacements);\n html = that.stripEmptyAnchors(html);\n } else {\n html = filters.msConvertLists ? this.extractListLevels(html) : html;\n html = Cleaner.fn.clean.call(that, html);\n html = that.stripEmptyAnchors(html);\n placeholder = dom.create(document, 'div', { innerHTML: html });\n that.headers(placeholder);\n if (filters.msConvertLists) {\n that.lists(placeholder);\n }\n that.tables(placeholder);\n if (filters.msAllFormatting) {\n that.removeFormatting(placeholder);\n }\n html = placeholder.innerHTML.replace(/(<[^>]*)\\s+class=\"?[^\"\\s>]*\"?/gi, '$1');\n }\n return html;\n }\n });\n var WebkitFormatCleaner = Cleaner.extend({\n init: function (options) {\n Cleaner.fn.init.call(this, options);\n this.replacements = [\n /\\s+class=\"Apple-style-span[^\"]*\"/gi,\n '',\n /<(div|p|h[1-6])\\s+style=\"[^\"]*\"/gi,\n '<$1',\n /^
    (.*)<\\/div>$/,\n '$1'\n ];\n },\n applicable: function (html) {\n return /class=\"?Apple-style-span|style=\"[^\"]*-webkit-nbsp-mode/i.test(html);\n }\n });\n var DomCleaner = Cleaner.extend({\n clean: function (html) {\n var container = dom.create(document, 'div', { innerHTML: html });\n container = this.cleanDom(container);\n return container.innerHTML;\n },\n cleanDom: function (container) {\n return container;\n }\n });\n var HtmlTagsCleaner = DomCleaner.extend({\n cleanDom: function (container) {\n var tags = this.collectTags();\n $(container).find(tags).each(function () {\n dom.unwrap(this);\n });\n return container;\n },\n collectTags: function () {\n if (this.options.span) {\n return 'span';\n }\n },\n applicable: function () {\n return this.options.span;\n }\n });\n var HtmlAttrCleaner = DomCleaner.extend({\n cleanDom: function (container) {\n var attributes = this.collectAttr();\n var nodes = $(container).find('[' + attributes.join('],[') + ']');\n nodes.removeAttr(attributes.join(' '));\n return container;\n },\n collectAttr: function () {\n if (this.options.css) {\n return [\n 'class',\n 'style'\n ];\n }\n return [];\n },\n applicable: function () {\n return this.options.css;\n }\n });\n var TextContainer = function () {\n this.text = '';\n this.add = function (text) {\n this.text += text;\n };\n };\n var HtmlTextLines = Class.extend({\n init: function (separators) {\n this.separators = separators || {\n text: ' ',\n line: '
    '\n };\n this.lines = [];\n this.inlineBlockText = [];\n this.resetLine();\n },\n appendText: function (text) {\n if (text.nodeType === 3) {\n text = text.nodeValue;\n }\n this.textContainer.add(text);\n },\n appendInlineBlockText: function (text) {\n this.inlineBlockText.push(text);\n },\n flashInlineBlockText: function () {\n if (this.inlineBlockText.length) {\n this.appendText(this.inlineBlockText.join(' '));\n this.inlineBlockText = [];\n }\n },\n endLine: function () {\n this.flashInlineBlockText();\n this.resetLine();\n },\n html: function () {\n var separators = this.separators;\n var result = '';\n var lines = this.lines;\n this.flashInlineBlockText();\n for (var i = 0, il = lines.length, il1 = il - 1; i < il; i++) {\n var line = lines[i];\n for (var j = 0, jl = line.length, jl1 = jl - 1; j < jl; j++) {\n var text = line[j].text;\n result += text;\n if (j !== jl1) {\n result += separators.text;\n }\n }\n if (i !== il1) {\n result += separators.line;\n }\n }\n return result;\n },\n resetLine: function () {\n this.textContainer = new TextContainer();\n this.line = [];\n this.line.push(this.textContainer);\n this.lines.push(this.line);\n }\n });\n var DomEnumerator = Class.extend({\n init: function (callback) {\n this.callback = callback;\n },\n enumerate: function (node) {\n if (!node) {\n return;\n }\n var preventDown = this.callback(node);\n var child = node.firstChild;\n if (!preventDown && child) {\n this.enumerate(child);\n }\n this.enumerate(node.nextSibling);\n }\n });\n var HtmlContentCleaner = Cleaner.extend({\n init: function (options) {\n Cleaner.fn.init.call(this, options);\n this.hasText = false;\n this.enumerator = new DomEnumerator($.proxy(this.buildText, this));\n },\n clean: function (html) {\n var container = dom.create(document, 'div', { innerHTML: html });\n return this.cleanDom(container);\n },\n cleanDom: function (container) {\n this.separators = this.getDefaultSeparators();\n this.htmlLines = new HtmlTextLines(this.separators);\n this.enumerator.enumerate(container.firstChild);\n this.hasText = false;\n return this.htmlLines.html();\n },\n buildText: function (node) {\n if (dom.isDataNode(node)) {\n if (dom.isEmptyspace(node)) {\n return;\n }\n this.htmlLines.appendText(node.nodeValue.replace('\\n', this.separators.line));\n this.hasText = true;\n } else if (dom.isBlock(node) && this.hasText) {\n var action = this.actions[dom.name(node)] || this.actions.block;\n return action(this, node);\n } else if (dom.isBr(node)) {\n this.htmlLines.appendText(this.separators.line);\n }\n },\n applicable: function () {\n var o = this.options;\n return o.all || o.keepNewLines;\n },\n getDefaultSeparators: function () {\n if (this.options.all) {\n return {\n text: ' ',\n line: ' '\n };\n } else {\n return {\n text: ' ',\n line: '
    '\n };\n }\n },\n actions: {\n ul: $.noop,\n ol: $.noop,\n table: $.noop,\n thead: $.noop,\n tbody: $.noop,\n td: function (cleaner, node) {\n var tdCleaner = new HtmlContentCleaner({ all: true });\n var cellText = tdCleaner.cleanDom(node);\n cleaner.htmlLines.appendInlineBlockText(cellText);\n return true;\n },\n block: function (cleaner) {\n cleaner.htmlLines.endLine();\n }\n }\n });\n var CustomCleaner = Cleaner.extend({\n clean: function (html) {\n return this.options.custom(html);\n },\n applicable: function () {\n return typeof this.options.custom === 'function';\n }\n });\n extend(editorNS, {\n Clipboard: Clipboard,\n Cleaner: Cleaner,\n ScriptCleaner: ScriptCleaner,\n TabCleaner: TabCleaner,\n MSWordFormatCleaner: MSWordFormatCleaner,\n WebkitFormatCleaner: WebkitFormatCleaner,\n HtmlTagsCleaner: HtmlTagsCleaner,\n HtmlAttrCleaner: HtmlAttrCleaner,\n HtmlContentCleaner: HtmlContentCleaner,\n HtmlTextLines: HtmlTextLines,\n CustomCleaner: CustomCleaner\n });\n }(window.kendo.jQuery));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/plugins/keyboard', ['editor/command'], f);\n}(function () {\n (function ($) {\n var kendo = window.kendo, Class = kendo.Class, editorNS = kendo.ui.editor, RangeUtils = editorNS.RangeUtils, dom = editorNS.Dom, RestorePoint = editorNS.RestorePoint, Marker = editorNS.Marker, browser = kendo.support.browser, bomSpan = '\\uFEFF', extend = $.extend;\n var nodeTypes = dom.nodeTypes;\n var PREVIOUS_SIBLING = 'previousSibling';\n function selected(node, range) {\n return range.startContainer === node && range.endContainer === node && range.startOffset === 0 && range.endOffset == node.childNodes.length;\n }\n function getSibling(node, direction, condition) {\n var sibling = node ? node[direction] : null;\n while (sibling && !condition(sibling)) {\n sibling = sibling[direction];\n }\n return sibling;\n }\n var tableCells = 'td,th,caption';\n var tableCellsWrappers = 'table,tbody,thead,tfoot,tr';\n var tableElements = tableCellsWrappers + ',' + tableCells;\n var inTable = function (range) {\n return !range.collapsed && $(range.commonAncestorContainer).is(tableCellsWrappers);\n };\n var RemoveTableContent = Class.extend({\n remove: function (range) {\n var that = this;\n var marker = new Marker();\n marker.add(range, false);\n var nodes = RangeUtils.getAll(range, function (node) {\n return $(node).is(tableElements);\n });\n var doc = RangeUtils.documentFromRange(range);\n var start = marker.start;\n var end = marker.end;\n var cellsTypes = tableCells.split(',');\n var startCell = dom.parentOfType(start, cellsTypes);\n var endCell = dom.parentOfType(end, cellsTypes);\n that._removeContent(start, startCell, true);\n that._removeContent(end, endCell, false);\n $(nodes).each(function (i, node) {\n node = $(node);\n (node.is(tableCells) ? node : node.find(tableCells)).each(function (j, cell) {\n cell.innerHTML = '';\n });\n });\n if (startCell && !start.previousSibling) {\n dom.insertBefore(doc.createTextNode('\\uFEFF'), start);\n }\n if (endCell && !end.nextSibling) {\n dom.insertAfter(doc.createTextNode('\\uFEFF'), end);\n }\n if (startCell) {\n range.setStartBefore(start);\n } else if (nodes[0]) {\n startCell = $(nodes[0]);\n startCell = startCell.is(tableCells) ? startCell : startCell.find(tableCells).first();\n if (startCell.length) {\n range.setStart(startCell.get(0), 0);\n }\n }\n range.collapse(true);\n dom.remove(start);\n dom.remove(end);\n },\n _removeContent: function (start, top, forwards) {\n if (top) {\n var sibling = forwards ? 'nextSibling' : 'previousSibling', next, getNext = function (node) {\n while (node && !node[sibling]) {\n node = node.parentNode;\n }\n return node && $.contains(top, node) ? node[sibling] : null;\n };\n start = getNext(start);\n while (start) {\n next = getNext(start);\n dom.remove(start);\n start = next;\n }\n }\n }\n });\n var TypingHandler = Class.extend({\n init: function (editor) {\n this.editor = editor;\n },\n keydown: function (e) {\n var that = this, editor = that.editor, keyboard = editor.keyboard, isTypingKey = keyboard.isTypingKey(e), evt = extend($.Event(), e);\n that.editor.trigger('keydown', evt);\n if (evt.isDefaultPrevented()) {\n e.preventDefault();\n return true;\n }\n if (!evt.isDefaultPrevented() && isTypingKey && !keyboard.isTypingInProgress()) {\n var range = editor.getRange();\n var body = editor.body;\n that.startRestorePoint = new RestorePoint(range, body);\n if (inTable(range)) {\n var removeTableContent = new RemoveTableContent(editor);\n removeTableContent.remove(range);\n editor.selectRange(range);\n }\n if (browser.webkit && !range.collapsed && selected(body, range)) {\n body.innerHTML = '';\n }\n if (editor.immutables && editorNS.Immutables.immutablesContext(range)) {\n var backspaceHandler = new editorNS.BackspaceHandler(editor);\n backspaceHandler.deleteSelection(range);\n }\n keyboard.startTyping(function () {\n that._removeBomSpan();\n that.endRestorePoint = editorNS._finishUpdate(editor, that.startRestorePoint);\n });\n return true;\n }\n return false;\n },\n keyup: function (e) {\n var keyboard = this.editor.keyboard;\n this.editor.trigger('keyup', e);\n if (keyboard.isTypingInProgress()) {\n keyboard.endTyping();\n return true;\n }\n return false;\n },\n _removeBomSpan: function () {\n var node = this.editor.getRange().commonAncestorContainer;\n if (!dom.emptyNode(node)) {\n if (node.nodeType === 3) {\n node = node.parentNode;\n }\n if (dom.insignificant(node)) {\n node.textContent = dom.stripBom(node.textContent);\n dom.unwrap(node);\n }\n }\n }\n });\n var BackspaceHandler = Class.extend({\n init: function (editor) {\n this.editor = editor;\n },\n _addCaret: function (container) {\n var caret = dom.create(this.editor.document, 'a');\n if (!kendo.support.browser.chrome && container.firstChild && container.firstChild.nodeType === nodeTypes.ELEMENT_NODE) {\n container = container.firstChild;\n }\n dom.insertAt(container, caret, 0);\n dom.stripBomNode(caret.previousSibling);\n dom.stripBomNode(caret.nextSibling);\n return caret;\n },\n _restoreCaret: function (caret) {\n var range = this.editor.createRange();\n if (!caret.nextSibling && dom.isDataNode(caret.previousSibling)) {\n range.setStart(caret.previousSibling, caret.previousSibling.length);\n } else {\n range.setStartAfter(caret);\n }\n range.collapse(true);\n this.editor.selectRange(range);\n dom.remove(caret);\n },\n _handleDelete: function (range) {\n var node = range.endContainer;\n var block = dom.closestEditableOfType(node, dom.blockElements);\n if (block && editorNS.RangeUtils.isEndOf(range, block)) {\n var next = dom.next(block);\n if (!next || dom.name(next) != 'p') {\n return false;\n }\n var caretPlaceholder = dom.significantChildNodes(next)[0];\n caretPlaceholder = caretPlaceholder && dom.isInline(caretPlaceholder) ? caretPlaceholder : next;\n var caret = this._addCaret(caretPlaceholder);\n this._merge(block, next);\n this._restoreCaret(caret);\n return true;\n }\n return false;\n },\n _cleanBomBefore: function (range) {\n var offset = range.startOffset;\n var node = range.startContainer;\n var text = node.nodeValue;\n var count = 0;\n while (offset - count >= 0 && text[offset - count - 1] == '\\uFEFF') {\n count++;\n }\n if (count > 0) {\n node.deleteData(offset - count, count);\n range.setStart(node, Math.max(0, offset - count));\n range.collapse(true);\n this.editor.selectRange(range);\n }\n },\n _handleBackspace: function (range) {\n var node = range.startContainer;\n var li = dom.closestEditableOfType(node, ['li']);\n var block = dom.closestEditableOfType(node, 'p,h1,h2,h3,h4,h5,h6'.split(','));\n var editor = this.editor;\n var previousSibling;\n if (dom.isDataNode(node)) {\n if (range.collapsed && /^\\s[\\ufeff]+$/.test(node.nodeValue)) {\n range.setStart(node, 0);\n range.setEnd(node, node.length);\n editor.selectRange(range);\n return false;\n }\n this._cleanBomBefore(range);\n }\n previousSibling = getSibling(block, PREVIOUS_SIBLING, function (sibling) {\n return !dom.htmlIndentSpace(sibling);\n });\n if (range.collapsed && range.startOffset !== range.endOffset && range.startOffset < 0) {\n range.startOffset = 0;\n range.endOffset = 0;\n editor.selectRange(range);\n }\n var startAtLi = li && editorNS.RangeUtils.isStartOf(range, li);\n var liIndex = li && $(li).index();\n var startAtNonFirstLi = startAtLi && liIndex > 0;\n if (startAtNonFirstLi) {\n block = li;\n previousSibling = dom.prev(li);\n }\n if (block && previousSibling && dom.is(previousSibling, 'table') && editorNS.RangeUtils.isStartOf(range, block)) {\n if (block.innerText === '') {\n block.innerHTML = '\\uFEFF';\n }\n return true;\n }\n if (editorNS.RangeUtils.isStartOf(range, block) && parseInt(block.style.marginLeft, 10) > 0) {\n editor.exec('outdent');\n return true;\n }\n if (block && previousSibling && editorNS.RangeUtils.isStartOf(range, block) || startAtNonFirstLi) {\n var caretPlaceholder = dom.significantChildNodes(block)[0];\n caretPlaceholder = caretPlaceholder && dom.isInline(caretPlaceholder) ? caretPlaceholder : block;\n var caret = this._addCaret(caretPlaceholder);\n this._merge(previousSibling, block);\n this._restoreCaret(caret);\n return true;\n }\n if (startAtLi && liIndex === 0) {\n var child = li.firstChild;\n if (!child) {\n li.innerHTML = editorNS.emptyElementContent;\n child = li.firstChild;\n }\n var formatter = new editorNS.ListFormatter(dom.name(li.parentNode), 'p');\n range.selectNodeContents(li);\n formatter.toggle(range);\n if (dom.insignificant(child)) {\n range.setStartBefore(child);\n } else {\n range.setStart(child, 0);\n }\n editor.selectRange(range);\n return true;\n }\n var rangeStartNode = node.childNodes[range.startOffset - 1];\n var linkRange = range;\n var anchor = rangeStartNode && dom.closestEditableOfType(rangeStartNode, ['a']);\n var previousNode = getSibling(rangeStartNode || node, PREVIOUS_SIBLING, function (sibling) {\n return !dom.isDataNode(sibling) || !dom.isBom(sibling) && sibling.length > 0;\n });\n if (anchor || (range.startOffset === 0 || rangeStartNode) && dom.is(previousNode, 'a')) {\n anchor = anchor || previousNode;\n linkRange = editor.createRange();\n linkRange.setStart(anchor, anchor.childNodes.length);\n linkRange.collapse(true);\n }\n anchor = anchor || dom.closestEditableOfType(rangeStartNode || linkRange.startContainer, ['a']);\n var isEndOfLink = anchor && editorNS.RangeUtils.isEndOf(linkRange, anchor);\n if (isEndOfLink) {\n var command = new editorNS.UnlinkCommand({\n range: linkRange,\n body: editor.body,\n immutables: !!editor.immutables\n });\n editor.execCommand(command);\n editor._selectionChange();\n }\n return false;\n },\n _handleSelection: function (range) {\n var ancestor = range.commonAncestorContainer;\n var table = dom.closest(ancestor, 'table');\n var emptyParagraphContent = editorNS.emptyElementContent;\n var editor = this.editor;\n var parentElementOrNode;\n if (inTable(range)) {\n var removeTableContent = new RemoveTableContent(editor);\n removeTableContent.remove(range);\n editor.selectRange(range);\n return true;\n }\n var marker = new Marker();\n marker.add(range, false);\n if (range.commonAncestorContainer === editor.body) {\n this._surroundFullyContent(marker, range);\n }\n if (editor.immutables) {\n this._handleImmutables(marker);\n }\n this._surroundFullySelectedAnchor(marker, range);\n range.setStartAfter(marker.start);\n range.setEndBefore(marker.end);\n var start = range.startContainer;\n var end = range.endContainer;\n range.deleteContents();\n if (end.tagName.toLocaleLowerCase() === 'li' && dom.emptyNode(end)) {\n range.selectNode(end);\n range.deleteContents();\n }\n if (table && $(table).text() === '') {\n range.selectNode(table);\n range.deleteContents();\n }\n ancestor = range.commonAncestorContainer;\n if (dom.name(ancestor) === 'p' && ancestor.innerHTML === '') {\n ancestor.innerHTML = emptyParagraphContent;\n range.setStart(ancestor, 0);\n }\n this._join(start, end);\n dom.insertAfter(editor.document.createTextNode('\\uFEFF'), marker.start);\n marker.remove(range);\n start = range.startContainer;\n if (dom.name(start) == 'tr') {\n start = start.childNodes[Math.max(0, range.startOffset - 1)];\n range.setStart(start, dom.getNodeLength(start));\n }\n range.collapse(true);\n editor.selectRange(range);\n parentElementOrNode = start.parentElement || start.parentNode;\n if (dom.isDataNode(start) && !dom.emptyNode(parentElementOrNode)) {\n this._cleanBomBefore(range);\n }\n return true;\n },\n _handleImmutables: function (marker) {\n var immutableParent = editorNS.Immutables.immutableParent;\n var startImmutable = immutableParent(marker.start);\n var endImmutable = immutableParent(marker.start);\n if (startImmutable) {\n dom.insertBefore(marker.start, startImmutable);\n }\n if (endImmutable) {\n dom.insertAfter(marker.end, endImmutable);\n }\n if (startImmutable) {\n dom.remove(startImmutable);\n }\n if (endImmutable && endImmutable.parentNode) {\n dom.remove(endImmutable);\n }\n },\n _surroundFullyContent: function (marker, range) {\n var children = range.commonAncestorContainer.children, startParent = children[0], endParent = children[children.length - 1];\n this._moveMarker(marker, range, startParent, endParent);\n },\n _surroundFullySelectedAnchor: function (marker, range) {\n var start = marker.start, startParent = $(start).closest('a').get(0), end = marker.end, endParent = $(end).closest('a').get(0);\n this._moveMarker(marker, range, startParent, endParent);\n },\n _moveMarker: function (marker, range, startParent, endParent) {\n var start = marker.start, end = marker.end;\n if (startParent && RangeUtils.isStartOf(range, startParent)) {\n dom.insertBefore(start, startParent);\n }\n if (endParent && RangeUtils.isEndOf(range, endParent)) {\n dom.insertAfter(end, endParent);\n }\n },\n _root: function (node) {\n while (node && dom.name(node) != 'body' && node.parentNode && dom.name(node.parentNode) != 'body') {\n node = node.parentNode;\n }\n return node;\n },\n _join: function (start, end) {\n start = this._root(start);\n end = this._root(end);\n if (start != end && dom.is(end, 'p')) {\n this._merge(start, end);\n }\n },\n _merge: function (dest, src) {\n dom.removeTrailingBreak(dest);\n while (dest && src.firstChild) {\n if (dest.nodeType == 1) {\n dest = dom.list(dest) ? dest.children[dest.children.length - 1] : dest;\n if (dest) {\n dest.appendChild(src.firstChild);\n }\n } else if (dest.nodeType === nodeTypes.TEXT_NODE) {\n this._mergeWithTextNode(dest, src.firstChild);\n } else {\n dest.parentNode.appendChild(src.firstChild);\n }\n }\n dom.remove(src);\n },\n _mergeWithTextNode: function (textNode, appendedNode) {\n if (textNode && textNode.nodeType === nodeTypes.TEXT_NODE) {\n if (textNode.nextSibling && this._isCaret(textNode.nextSibling)) {\n dom.insertAfter(appendedNode, textNode.nextSibling);\n } else {\n dom.insertAfter(appendedNode, textNode);\n }\n }\n },\n _isCaret: function (element) {\n return $(element).is('a');\n },\n keydown: function (e) {\n var method, startRestorePoint;\n var editor = this.editor;\n var range = editor.getRange();\n var keyCode = e.keyCode;\n var keys = kendo.keys;\n var backspace = keyCode === keys.BACKSPACE;\n var del = keyCode == keys.DELETE;\n if (editor.immutables && editor.immutables.keydown(e, range)) {\n return;\n }\n if ((backspace || del) && !range.collapsed) {\n method = '_handleSelection';\n } else if (backspace) {\n method = '_handleBackspace';\n } else if (del) {\n method = '_handleDelete';\n }\n if (!method) {\n return;\n }\n startRestorePoint = new RestorePoint(range, editor.body);\n if (this[method](range)) {\n e.preventDefault();\n editorNS._finishUpdate(editor, startRestorePoint);\n }\n },\n deleteSelection: function (range) {\n this._handleSelection(range);\n },\n keyup: $.noop\n });\n var SystemHandler = Class.extend({\n init: function (editor) {\n this.editor = editor;\n this.systemCommandIsInProgress = false;\n },\n createUndoCommand: function () {\n this.startRestorePoint = this.endRestorePoint = editorNS._finishUpdate(this.editor, this.startRestorePoint);\n },\n changed: function () {\n if (this.startRestorePoint) {\n return this.startRestorePoint.html != this.editor.body.innerHTML;\n }\n return false;\n },\n keydown: function (e) {\n var that = this, editor = that.editor, keyboard = editor.keyboard;\n if (keyboard.isModifierKey(e)) {\n if (keyboard.isTypingInProgress()) {\n keyboard.endTyping(true);\n }\n that.startRestorePoint = new RestorePoint(editor.getRange(), editor.body);\n return true;\n }\n if (keyboard.isSystem(e)) {\n that.systemCommandIsInProgress = true;\n if (that.changed()) {\n that.systemCommandIsInProgress = false;\n that.createUndoCommand();\n }\n return true;\n }\n return false;\n },\n keyup: function () {\n var that = this;\n if (that.systemCommandIsInProgress && that.changed()) {\n that.systemCommandIsInProgress = false;\n that.createUndoCommand();\n return true;\n }\n return false;\n }\n });\n var SelectAllHandler = Class.extend({\n init: function (editor) {\n this.editor = editor;\n },\n keydown: function (e) {\n if (!browser.webkit || e.isDefaultPrevented() || !(e.ctrlKey && e.keyCode == 65 && !e.altKey && !e.shiftKey)) {\n return;\n }\n if (this.editor.options.immutables) {\n this._toSelectableImmutables();\n }\n this._selectEditorBody();\n },\n _selectEditorBody: function () {\n var editor = this.editor;\n var range = editor.getRange();\n range.selectNodeContents(editor.body);\n setTimeout(function () {\n editor.selectRange(range);\n });\n },\n _toSelectableImmutables: function () {\n var editor = this.editor, body = editor.body, immutable = editorNS.Immutables.immutable, emptyTextNode = dom.emptyTextNode, first = body.firstChild, last = body.lastChild;\n while (emptyTextNode(first)) {\n first = first.nextSibling;\n }\n while (emptyTextNode(last)) {\n last = last.previousSibling;\n }\n if (first && immutable(first)) {\n $(bomSpan).prependTo(body);\n }\n if (last && immutable(last)) {\n $(bomSpan).appendTo(body);\n }\n },\n keyup: $.noop\n });\n var Keyboard = Class.extend({\n init: function (handlers) {\n this.handlers = handlers;\n this.typingInProgress = false;\n },\n isCharacter: function (keyCode) {\n return keyCode >= 48 && keyCode <= 90 || keyCode >= 96 && keyCode <= 111 || keyCode >= 186 && keyCode <= 192 || keyCode >= 219 && keyCode <= 222 || keyCode == 229;\n },\n toolFromShortcut: function (tools, e) {\n var key = String.fromCharCode(e.keyCode), toolName, toolOptions, modifier = this._getShortcutModifier(e, navigator.platform);\n for (toolName in tools) {\n toolOptions = $.extend({\n ctrl: false,\n alt: false,\n shift: false\n }, tools[toolName].options);\n if ((toolOptions.key == key || toolOptions.key == e.keyCode) && toolOptions.ctrl == modifier && toolOptions.alt == e.altKey && toolOptions.shift == e.shiftKey) {\n return toolName;\n }\n }\n },\n _getShortcutModifier: function (e, platform) {\n var mac = platform.toUpperCase().indexOf('MAC') >= 0;\n return mac ? e.metaKey : e.ctrlKey;\n },\n toolsFromShortcut: function (tools, e) {\n var key = String.fromCharCode(e.keyCode), toolName, o, matchesKey, found = [];\n var matchKey = function (toolKey) {\n return toolKey == key || toolKey == e.keyCode || toolKey == e.charCode;\n };\n for (toolName in tools) {\n o = $.extend({\n ctrl: false,\n alt: false,\n shift: false\n }, tools[toolName].options);\n matchesKey = Array.isArray(o.key) ? $.grep(o.key, matchKey).length > 0 : matchKey(o.key);\n if (matchesKey && o.ctrl == e.ctrlKey && o.alt == e.altKey && o.shift == e.shiftKey) {\n found.push(tools[toolName]);\n }\n }\n return found;\n },\n isTypingKey: function (e) {\n var keyCode = e.keyCode;\n return this.isCharacter(keyCode) && !e.ctrlKey && !e.altKey || keyCode == 32 || keyCode == 13 || keyCode == 8 || keyCode == 46 && !e.shiftKey && !e.ctrlKey && !e.altKey;\n },\n isModifierKey: function (e) {\n var keyCode = e.keyCode;\n return keyCode == 17 && !e.shiftKey && !e.altKey || keyCode == 16 && !e.ctrlKey && !e.altKey || keyCode == 18 && !e.ctrlKey && !e.shiftKey;\n },\n isSystem: function (e) {\n return e.keyCode == 46 && e.ctrlKey && !e.altKey && !e.shiftKey;\n },\n startTyping: function (callback) {\n this.onEndTyping = callback;\n this.typingInProgress = true;\n },\n stopTyping: function () {\n if (this.typingInProgress && this.onEndTyping) {\n this.onEndTyping();\n }\n this.typingInProgress = false;\n },\n endTyping: function (force) {\n var that = this;\n that.clearTimeout();\n if (force) {\n that.stopTyping();\n } else {\n that.timeout = window.setTimeout($.proxy(that.stopTyping, that), 1000);\n }\n },\n isTypingInProgress: function () {\n return this.typingInProgress;\n },\n clearTimeout: function () {\n window.clearTimeout(this.timeout);\n },\n notify: function (e, what) {\n var i, handlers = this.handlers;\n for (i = 0; i < handlers.length; i++) {\n if (handlers[i][what](e)) {\n break;\n }\n }\n },\n keydown: function (e) {\n this.notify(e, 'keydown');\n },\n keyup: function (e) {\n this.notify(e, 'keyup');\n }\n });\n extend(editorNS, {\n TypingHandler: TypingHandler,\n SystemHandler: SystemHandler,\n BackspaceHandler: BackspaceHandler,\n SelectAllHandler: SelectAllHandler,\n Keyboard: Keyboard\n });\n }(window.kendo.jQuery));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/plugins/exportpdf', ['editor/command'], f);\n}(function () {\n (function ($) {\n var kendo = window.kendo, editorNS = kendo.ui.editor, Command = editorNS.Command, EditorUtils = editorNS.EditorUtils, registerTool = EditorUtils.registerTool, Tool = editorNS.Tool, ToolTemplate = editorNS.ToolTemplate, extend = $.extend;\n var ExportPdfCommand = Command.extend({\n init: function (options) {\n this.async = true;\n Command.fn.init.call(this, options);\n },\n exec: function () {\n var that = this;\n var range = that.lockRange(true);\n var editor = that.editor;\n editor._destroyResizings();\n editor.saveAsPDF().then(function () {\n that.releaseRange(range);\n editor._initializeColumnResizing();\n editor._initializeRowResizing();\n editor._initializeElementResizing();\n });\n }\n });\n extend(editorNS, { ExportPdfCommand: ExportPdfCommand });\n registerTool('pdf', new Tool({\n command: ExportPdfCommand,\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Export PDF'\n })\n }));\n }(window.kendo.jQuery));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/plugins/print', ['editor/command'], f);\n}(function () {\n (function ($) {\n var kendo = window.kendo, editorNS = kendo.ui.editor, Command = editorNS.Command, EditorUtils = editorNS.EditorUtils, registerTool = EditorUtils.registerTool, Tool = editorNS.Tool, ToolTemplate = editorNS.ToolTemplate, extend = $.extend;\n var PrintCommand = Command.extend({\n init: function (options) {\n Command.fn.init.call(this, options);\n this.managesUndoRedo = true;\n },\n exec: function () {\n var editor = this.editor;\n if (kendo.support.browser.msie) {\n editor.document.execCommand('print', false, null);\n } else if (editor.window.print) {\n editor.window.print();\n }\n }\n });\n extend(editorNS, { PrintCommand: PrintCommand });\n registerTool('print', new Tool({\n command: PrintCommand,\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Print'\n })\n }));\n }(window.kendo.jQuery));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/plugins/formatpainter', ['editor/command'], f);\n}(function () {\n (function ($) {\n var kendo = window.kendo, Editor = kendo.ui.editor, Tool = Editor.Tool, Command = Editor.Command, ToolTemplate = Editor.ToolTemplate, EditorUtils = Editor.EditorUtils, dom = Editor.Dom, RangeUtils = Editor.RangeUtils, registerTool = EditorUtils.registerTool;\n var CopyFormatCommand = Command.extend({\n init: function (options) {\n Command.fn.init.call(this, options);\n },\n exec: function () {\n var range = this.lockRange(true);\n this.inlineStyles = [];\n this.blockStyles = [];\n this.collectStyles(range);\n this.editor.inlineStyles = this.inlineStyles;\n this.editor.blockStyles = this.blockStyles;\n this.releaseRange(range);\n },\n collectStyles: function (range) {\n var rangeNodes = RangeUtils.nodes(range);\n var node;\n if (rangeNodes.length === 1) {\n node = rangeNodes[0].parentNode;\n } else {\n node = range.startContainer;\n }\n while (node && !dom.is(node, 'body') && node.getAttribute('data-role') !== 'editor') {\n if (dom.isBlock(node)) {\n this.populateStyles(node, 'blockStyles');\n if (dom.is(node, 'li')) {\n node = node.parentNode;\n } else {\n node = null;\n }\n } else {\n this.populateStyles(node, 'inlineStyles');\n node = node.parentNode;\n }\n }\n },\n populateStyles: function (node, destination) {\n var styles = node.style;\n var attributes = node.attributes;\n var nodeStyles = {\n tags: [node.tagName],\n attr: { style: {} }\n };\n var styleValue, styleKey, attributeKey, attributeValue, i;\n for (i = 0; styles && i < styles.length; i++) {\n styleKey = styles[i];\n styleValue = styles[styleKey];\n nodeStyles.attr.style[styleKey] = styleValue;\n }\n for (i = 0; attributes && i < attributes.length; i++) {\n attributeKey = attributes[i].nodeName;\n attributeValue = attributes[i].nodeValue;\n if (attributeKey === 'style') {\n continue;\n } else if (attributeKey === 'class') {\n nodeStyles.attr.className = attributeValue;\n } else {\n nodeStyles.attr[attributeKey] = attributeValue;\n }\n }\n this[destination].push(nodeStyles);\n }\n });\n var ApplyFormatCommand = Command.extend({\n init: function (options) {\n Command.fn.init.call(this, options);\n },\n exec: function () {\n var range = this.lockRange(true);\n var markers = RangeUtils.getMarkers(range);\n var editor = this.editor;\n var inlineStyles = editor.inlineStyles;\n var blockStyles = editor.blockStyles;\n var nodes;\n if ((!inlineStyles || inlineStyles.length === 0) && (!blockStyles || blockStyles.length === 0)) {\n return;\n }\n if (markers.length === 3) {\n this.marker.removeCaret(range);\n this.marker.caret = null;\n }\n this.removeEmptyElementsFromRange(range);\n nodes = RangeUtils.nodes(range);\n this.cleanInlineParents(nodes);\n dom.normalize(range.commonAncestorContainer);\n if (markers.length === 2) {\n range.setStartAfter(markers[0]);\n range.setEndBefore(markers[1]);\n } else {\n range.setStartBefore(nodes[0]);\n range.setEndAfter(nodes[0]);\n }\n nodes = RangeUtils.nodes(range);\n if (nodes && blockStyles && blockStyles.length) {\n this.applyBlockStyles(nodes, blockStyles);\n }\n if (nodes && inlineStyles && inlineStyles.length) {\n this.applyInlineStyles(nodes, inlineStyles);\n }\n this.releaseRange(range);\n },\n removeEmptyElementsFromRange: function (range) {\n var isEmptyInline = function (node) {\n return dom.isInline(node) && !node.firstChild && !dom.isMarker(node);\n };\n var emptyElements, i;\n emptyElements = RangeUtils.getAll(range, isEmptyInline);\n if (emptyElements && emptyElements.length > 0) {\n for (i = 0; i < emptyElements.length; i++) {\n emptyElements[i].parentNode.removeChild(emptyElements[i]);\n }\n }\n },\n cleanInlineParents: function (nodes) {\n var i, node, parent, children, j, child, newNode;\n for (i = 0; i < nodes.length; i++) {\n node = nodes[i];\n parent = node.parentNode;\n if (this.immutableParent(node)) {\n continue;\n }\n while (parent && dom.isInline(parent)) {\n children = parent.childNodes;\n for (j = 0; j < children.length; j++) {\n child = children[j];\n if (!dom.isMarker(child) && child !== node) {\n newNode = parent.cloneNode(true);\n newNode.innerHTML = '';\n dom.wrap(child, newNode);\n }\n }\n dom.unwrap(parent);\n parent = node.parentNode;\n }\n }\n },\n applyBlockStyles: function (nodes, blockStyles) {\n var formatTag = blockStyles[0].tags[0];\n var attr = blockStyles[0].attr;\n var document = this.editor.document;\n var i, len, node, wrapper, blockParent, outerWrapper;\n var previousNodes, nextNodes, previous, next, prevWrapper, nextWrapper, child, j, listItems;\n for (i = 0, len = nodes.length; i < len; i++) {\n node = nodes[i];\n if (dom.isWhitespace(node) || this.immutableParent(node)) {\n continue;\n }\n blockParent = dom.blockParentOrBody(node);\n if (blockParent.tagName !== 'BODY' && blockParent.tagName !== formatTag) {\n if (blockParent.tagName !== 'LI' && blockParent.tagName !== 'TD' && blockParent.tagName !== 'TH') {\n previousNodes = [];\n nextNodes = [];\n previous = node.previousSibling;\n next = node.nextSibling;\n while (previous) {\n if (!dom.isMarker(previous)) {\n previousNodes.push(previous);\n }\n previous = previous.previousSibling;\n }\n if (previousNodes.length) {\n prevWrapper = blockParent.cloneNode(true);\n prevWrapper.innerHTML = '';\n dom.insertBefore(prevWrapper, previousNodes[0]);\n for (j = 0; j < previousNodes.length; j++) {\n child = previousNodes[j];\n dom.insertAt(prevWrapper, child, 0);\n }\n }\n while (next) {\n if (!dom.isMarker(next)) {\n nextNodes.push(next);\n }\n next = next.nextSibling;\n }\n if (nextNodes.length) {\n nextWrapper = blockParent.cloneNode(true);\n nextWrapper.innerHTML = '';\n dom.insertBefore(nextWrapper, nextNodes[0]);\n for (j = 0; j < nextNodes.length; j++) {\n child = nextNodes[j];\n nextWrapper.appendChild(child);\n }\n }\n dom.unwrap(blockParent);\n }\n wrapper = dom.create(document, formatTag, attr);\n dom.wrap(node, wrapper);\n } else if (blockParent.tagName === formatTag) {\n dom.attr(blockParent, attr);\n }\n }\n if (blockParent && blockStyles.length === 2 && blockParent.tagName !== 'LI' && formatTag === 'LI') {\n listItems = [];\n while (dom.is(wrapper, 'li')) {\n listItems.push(wrapper);\n wrapper = dom.prev(wrapper);\n }\n outerWrapper = dom.create(document, blockStyles[1].tags[0], blockStyles[1].attr);\n dom.insertBefore(outerWrapper, listItems[listItems.length - 1]);\n outerWrapper.appendChild(listItems[0]);\n for (i = 1, len = listItems.length; i < len; i++) {\n dom.insertBefore(listItems[i], outerWrapper.firstChild);\n }\n } else if (blockParent && blockStyles.length === 2 && blockParent.tagName !== 'LI') {\n outerWrapper = dom.create(document, blockStyles[1].tags[0], blockStyles[1].attr);\n dom.wrap(wrapper, outerWrapper);\n }\n },\n applyInlineStyles: function (nodes, inlineStyles) {\n var document = this.editor.document;\n var currentStyle, createdNode, topNode, i, newNode, node;\n for (i = 0; i < inlineStyles.length; i++) {\n currentStyle = inlineStyles[i];\n createdNode = dom.create(document, currentStyle.tags[0], currentStyle.attr);\n if (topNode) {\n createdNode.appendChild(topNode);\n }\n topNode = createdNode;\n }\n if (topNode) {\n for (i = 0; i < nodes.length; i++) {\n node = nodes[i];\n if (dom.isWhitespace(node) || this.immutableParent(node)) {\n continue;\n }\n newNode = topNode.cloneNode(true);\n dom.insertBefore(newNode, node);\n while (newNode.children && newNode.children.length) {\n newNode = newNode.children[0];\n }\n newNode.appendChild(node);\n }\n }\n },\n immutables: function () {\n return this.editor && this.editor.options.immutables;\n },\n immutableParent: function (node) {\n return this.immutables() && Editor.Immutables.immutableParent(node);\n }\n });\n var CopyFormatTool = Tool.extend({\n init: function (options) {\n Tool.fn.init.call(this, options);\n },\n command: function (commandArguments) {\n return new CopyFormatCommand(commandArguments);\n }\n });\n var ApplyFormatTool = Tool.extend({\n init: function (options) {\n Tool.fn.init.call(this, options);\n },\n command: function (commandArguments) {\n return new ApplyFormatCommand(commandArguments);\n }\n });\n $.extend(Editor, {\n CopyFormatCommand: CopyFormatCommand,\n ApplyFormatCommand: ApplyFormatCommand,\n CopyFormatTool: CopyFormatTool,\n ApplyFormatTool: ApplyFormatTool\n });\n registerTool('copyFormat', new CopyFormatTool({\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Copy format'\n })\n }));\n registerTool('applyFormat', new ApplyFormatTool({\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Apply format'\n })\n }));\n }(window.kendo.jQuery));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/resizing/resizing-utils', ['editor/main'], f);\n}(function () {\n (function (kendo, undefined) {\n var global = window;\n var math = global.Math;\n var min = math.min;\n var max = math.max;\n var parseFloat = global.parseFloat;\n var $ = kendo.jQuery;\n var extend = $.extend;\n var Editor = kendo.ui.editor;\n var PERCENTAGE = '%';\n var PIXEL = 'px';\n var REGEX_NUMBER_IN_PERCENTAGES = /(\\d+)(\\.?)(\\d*)%/;\n var REGEX_NUMBER_IN_PIXELS = /(\\d+)(\\.?)(\\d*)px/;\n var STRING = 'string';\n function constrain(options) {\n var value = options.value;\n var lowerBound = options.min;\n var upperBound = options.max;\n return max(min(parseFloat(value), parseFloat(upperBound)), parseFloat(lowerBound));\n }\n function getScrollBarWidth(element) {\n if (element && !$(element).is('body') && element.scrollHeight > element.clientHeight) {\n return kendo.support.scrollbar();\n }\n return 0;\n }\n function calculatePercentageRatio(value, total) {\n if (inPercentages(value)) {\n return parseFloat(value);\n } else {\n return parseFloat(value) / total * 100;\n }\n }\n function inPercentages(value) {\n return typeof value === STRING && REGEX_NUMBER_IN_PERCENTAGES.test(value);\n }\n function inPixels(value) {\n return typeof value === STRING && REGEX_NUMBER_IN_PIXELS.test(value);\n }\n function toPercentages(value) {\n return parseFloat(value) + PERCENTAGE;\n }\n function toPixels(value) {\n return parseFloat(value) + PIXEL;\n }\n var ResizingUtils = {\n constrain: constrain,\n getScrollBarWidth: getScrollBarWidth,\n calculatePercentageRatio: calculatePercentageRatio,\n inPercentages: inPercentages,\n inPixels: inPixels,\n toPercentages: toPercentages,\n toPixels: toPixels\n };\n extend(Editor, { ResizingUtils: ResizingUtils });\n }(window.kendo));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/resizing/table-element-resizing', [\n 'editor/main',\n 'kendo.resizable',\n 'editor/resizing/resizing-utils'\n ], f);\n}(function () {\n (function (kendo, undefined) {\n var $ = kendo.jQuery;\n var extend = $.extend;\n var noop = $.noop;\n var proxy = $.proxy;\n var Editor = kendo.ui.editor;\n var Class = kendo.Class;\n var KEY_DOWN = 'keydown';\n var MOUSE_DOWN = 'mousedown';\n var MOUSE_ENTER = 'mouseenter';\n var MOUSE_LEAVE = 'mouseleave';\n var MOUSE_MOVE = 'mousemove';\n var MOUSE_UP = 'mouseup';\n var COMMA = ',';\n var DOT = '.';\n var LAST_CHILD = ':last-child';\n var TABLE = 'table';\n var TableElementResizing = Class.extend({\n init: function (element, options) {\n var that = this;\n that.options = extend({}, that.options, options);\n that.options.tags = Array.isArray(that.options.tags) ? that.options.tags : [that.options.tags];\n if ($(element).is(TABLE)) {\n that.element = element;\n that._attachEventHandlers();\n }\n },\n destroy: function () {\n var that = this;\n var eventNamespace = that.options.eventNamespace;\n if (that.element) {\n $(that.element).off(eventNamespace);\n that.element = null;\n }\n $(that.options.rootElement).off(KEY_DOWN + eventNamespace);\n that._destroyResizeHandle();\n },\n options: {\n tags: [],\n min: 0,\n rootElement: null,\n eventNamespace: '',\n rtl: false,\n handle: {\n dataAttribute: '',\n height: 0,\n width: 0,\n classNames: {},\n template: ''\n }\n },\n _attachEventHandlers: function () {\n var that = this;\n var options = that.options;\n $(that.element).on(MOUSE_MOVE + options.eventNamespace, options.tags.join(COMMA), proxy(that.detectElementBorderHovering, that));\n },\n resizingInProgress: function () {\n var that = this;\n var resizable = that._resizable;\n if (resizable) {\n return !!resizable.resizing;\n }\n return false;\n },\n resize: noop,\n detectElementBorderHovering: function (e) {\n var that = this;\n var options = that.options;\n var handleOptions = options.handle;\n var tableElement = $(e.currentTarget);\n var resizeHandle = that.resizeHandle;\n var dataAttribute = handleOptions.dataAttribute;\n if (!that.resizingInProgress()) {\n if (!tableElement.is(LAST_CHILD) && that.elementBorderHovered(tableElement, e)) {\n if (resizeHandle) {\n if (resizeHandle.data(dataAttribute) && resizeHandle.data(dataAttribute) !== tableElement[0]) {\n that.showResizeHandle(tableElement, e);\n }\n } else {\n that.showResizeHandle(tableElement, e);\n }\n } else {\n if (resizeHandle) {\n that._destroyResizeHandle();\n }\n }\n }\n },\n elementBorderHovered: noop,\n showResizeHandle: function (tableElement, e) {\n var that = this;\n if (e.buttons !== 0) {\n return;\n }\n that._initResizeHandle();\n that.setResizeHandlePosition(tableElement);\n that.setResizeHandleDimensions();\n that.setResizeHandleDataAttributes(tableElement[0]);\n that._attachResizeHandleEventHandlers();\n that._initResizable(tableElement);\n that._hideResizeMarker();\n that.resizeHandle.show();\n },\n _initResizeHandle: function () {\n var that = this;\n var options = that.options;\n that._destroyResizeHandle();\n that.resizeHandle = $(options.handle.template).appendTo(options.rootElement);\n },\n setResizeHandlePosition: noop,\n setResizeHandleDimensions: noop,\n setResizeHandleDataAttributes: function (tableElement) {\n var that = this;\n that.resizeHandle.data(that.options.handle.dataAttribute, tableElement);\n },\n _attachResizeHandleEventHandlers: function () {\n var that = this;\n var options = that.options;\n var eventNamespace = options.eventNamespace;\n var markerClass = options.handle.classNames.marker;\n var resizeHandle = that.resizeHandle;\n that.resizeHandle.on(MOUSE_DOWN + eventNamespace, function () {\n resizeHandle.find(DOT + markerClass).show();\n }).on(MOUSE_UP + eventNamespace, function () {\n resizeHandle.find(DOT + markerClass).hide();\n });\n },\n _hideResizeMarker: function () {\n var that = this;\n that.resizeHandle.find(DOT + that.options.handle.classNames.marker).hide();\n },\n _destroyResizeHandle: function () {\n var that = this;\n if (that.resizeHandle) {\n that._destroyResizable();\n that.resizeHandle.off(that.options.eventNamespace).remove();\n that.resizeHandle = null;\n }\n },\n _initResizable: function (tableElement) {\n var that = this;\n if (!that.resizeHandle) {\n return;\n }\n that._destroyResizable();\n that._resizable = new kendo.ui.Resizable(tableElement, {\n draggableElement: that.resizeHandle[0],\n start: proxy(that.onResizeStart, that),\n resize: proxy(that.onResize, that),\n resizeend: proxy(that.onResizeEnd, that)\n });\n },\n _destroyResizable: function () {\n var that = this;\n if (that._resizable) {\n that._resizable.destroy();\n that._resizable = null;\n }\n },\n onResizeStart: function () {\n this._disableKeyboard();\n },\n onResize: function (e) {\n this.setResizeHandleDragPosition(e);\n },\n setResizeHandleDragPosition: noop,\n onResizeEnd: function (e) {\n var that = this;\n that.resize(e);\n that._destroyResizeHandle();\n that._enableKeyboard();\n },\n _enableKeyboard: function () {\n var options = this.options;\n $(options.rootElement).off(KEY_DOWN + options.eventNamespace);\n },\n _disableKeyboard: function () {\n var options = this.options;\n $(options.rootElement).on(KEY_DOWN + options.eventNamespace, function (e) {\n e.preventDefault();\n });\n },\n _forceResizing: function (e) {\n var resizable = this._resizable;\n if (resizable && resizable.userEvents) {\n resizable.userEvents._end(e);\n }\n }\n });\n var ResizingFactory = Class.extend({\n create: function (editor, options) {\n var that = this;\n var resizingName = options.name;\n var NS = options.eventNamespace;\n $(editor.body).on(MOUSE_ENTER + NS, TABLE, function (e) {\n var table = e.currentTarget;\n var resizing = editor[resizingName];\n e.stopPropagation();\n if (resizing) {\n if (resizing.element !== table && !resizing.resizingInProgress()) {\n that._destroyResizing(editor, options);\n that._initResizing(editor, table, options);\n }\n } else {\n that._initResizing(editor, table, options);\n }\n }).on(MOUSE_LEAVE + NS, TABLE, function (e) {\n var parentTable;\n var resizing = editor[resizingName];\n e.stopPropagation();\n if (resizing && !resizing.resizingInProgress() && !resizing.resizeHandle) {\n parentTable = $(resizing.element).parents(TABLE)[0];\n if (parentTable) {\n that._destroyResizing(editor, options);\n that._initResizing(editor, parentTable, options);\n }\n }\n }).on(MOUSE_LEAVE + NS, function () {\n var resizing = editor[resizingName];\n if (resizing && !resizing.resizingInProgress()) {\n that._destroyResizing(editor, options);\n }\n }).on(MOUSE_UP + NS, function (e) {\n var resizing = editor[resizingName];\n var parentTable;\n if (resizing && resizing.resizingInProgress()) {\n parentTable = $(e.target).parents(TABLE)[0];\n if (parentTable) {\n resizing._forceResizing(e);\n that._destroyResizing(editor, options);\n that._initResizing(editor, parentTable, options);\n }\n }\n });\n },\n dispose: function (editor, options) {\n $(editor.body).off(options.eventNamespace);\n },\n _initResizing: function (editor, tableElement, options) {\n var resizingName = options.name;\n var resizingType = options.type;\n editor[resizingName] = new resizingType(tableElement, {\n rtl: kendo.support.isRtl(editor.element),\n rootElement: editor.body\n });\n },\n _destroyResizing: function (editor, options) {\n var resizingName = options.name;\n if (editor[resizingName]) {\n editor[resizingName].destroy();\n editor[resizingName] = null;\n }\n }\n });\n ResizingFactory.current = new ResizingFactory();\n TableElementResizing.create = function (editor, options) {\n ResizingFactory.current.create(editor, options);\n };\n TableElementResizing.dispose = function (editor, options) {\n ResizingFactory.current.dispose(editor, options);\n };\n extend(Editor, { TableElementResizing: TableElementResizing });\n }(window.kendo));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/resizing/column-resizing', [\n 'editor/main',\n 'editor/resizing/resizing-utils',\n 'editor/resizing/table-element-resizing',\n 'editor/dom'\n ], f);\n}(function () {\n (function (kendo, undefined) {\n var global = window;\n var math = global.Math;\n var abs = math.abs;\n var $ = kendo.jQuery;\n var extend = $.extend;\n var Editor = kendo.ui.editor;\n var dom = Editor.Dom;\n var TableElementResizing = Editor.TableElementResizing;\n var ResizingUtils = Editor.ResizingUtils;\n var constrain = ResizingUtils.constrain;\n var calculatePercentageRatio = ResizingUtils.calculatePercentageRatio;\n var getScrollBarWidth = ResizingUtils.getScrollBarWidth;\n var inPercentages = ResizingUtils.inPercentages;\n var toPercentages = ResizingUtils.toPercentages;\n var toPixels = ResizingUtils.toPixels;\n var outerWidth = kendo._outerWidth;\n var NS = '.kendoEditorColumnResizing';\n var RESIZE_HANDLE_CLASS = 'k-column-resize-handle';\n var RESIZE_MARKER_CLASS = 'k-column-resize-marker';\n var BODY = 'body';\n var TBODY = 'tbody';\n var THEAD = 'thead';\n var TD = 'td';\n var TH = 'th';\n var TR = 'tr';\n var COLATTR = 'col-index';\n var COMMA = ',';\n var WIDTH = 'width';\n var ColumnResizing = TableElementResizing.extend({\n options: {\n tags: [\n TD,\n TH\n ],\n min: 20,\n rootElement: null,\n eventNamespace: NS,\n rtl: false,\n handle: {\n dataAttribute: 'column',\n width: 10,\n height: 0,\n classNames: {\n handle: RESIZE_HANDLE_CLASS,\n marker: RESIZE_MARKER_CLASS\n },\n template: '
    ' + '
    ' + '
    ' + '
    ' + '
    '\n }\n },\n elementBorderHovered: function (column, e) {\n var that = this;\n var options = that.options;\n var handleWidth = options.handle.width;\n var borderOffset = column.offset().left + (options.rtl ? 0 : outerWidth(column));\n var mousePosition = e.clientX + $(column[0].ownerDocument).scrollLeft();\n if (mousePosition > borderOffset - handleWidth && mousePosition < borderOffset + handleWidth) {\n return true;\n } else {\n return false;\n }\n },\n setResizeHandlePosition: function (column) {\n var that = this;\n var tableInnerElement = $(that.element.tHead || that.element.tBodies[0]);\n var options = that.options;\n var rtl = options.rtl;\n var handleWidth = options.handle.width;\n var rootElement = $(options.rootElement);\n var scrollTopOffset = rootElement.is(BODY) ? 0 : rootElement.scrollTop();\n var scrollLeftOffset = rootElement.is(BODY) ? 0 : kendo.scrollLeft(rootElement);\n var columnWidthOffset = rtl ? 0 : outerWidth(column);\n var scrollBarWidth = rtl ? getScrollBarWidth(rootElement[0]) : 0;\n var columnOffsetLeft = column.offset().left - (rootElement.offset().left + parseFloat(rootElement.css('borderLeftWidth'))) - parseFloat(column.css('marginLeft'));\n var innerElementOffsetTop = tableInnerElement.offset().top - (rootElement.offset().top + parseFloat(rootElement.css('borderTopWidth'))) - parseFloat(tableInnerElement.css('marginTop'));\n var browser = kendo.support.browser;\n if (rtl && (browser.mozilla || browser.webkit && browser.version >= 85)) {\n scrollLeftOffset = scrollLeftOffset * -1;\n }\n that.resizeHandle.css({\n top: innerElementOffsetTop + scrollTopOffset,\n left: columnOffsetLeft + columnWidthOffset + (scrollLeftOffset - scrollBarWidth) - handleWidth / 2,\n position: 'absolute'\n });\n },\n setResizeHandleDimensions: function () {\n var that = this;\n var tableHead = $(that.element).children(THEAD);\n var tableBody = $(that.element).children(TBODY);\n var fullHeight = tableHead.length > 0 ? tableHead.height() + tableBody.height() : tableBody.height();\n that.resizeHandle.css({\n width: that.options.handle.width,\n height: fullHeight\n });\n },\n setResizeHandleDragPosition: function (e) {\n var that = this;\n var column = $($(e.currentTarget).data(that.options.handle.dataAttribute));\n var options = that.options;\n var rootElement = $(options.rootElement);\n var handleWidth = options.handle ? options.handle.width : 0;\n var min = options.min;\n var rtl = options.rtl;\n var columnWidth = outerWidth(column);\n var columnLeftOffset = column.offset().left - (rootElement.offset().left + parseFloat(rootElement.css('borderLeftWidth'))) - parseFloat(column.css('marginLeft'));\n var adjacentColumnWidth = outerWidth(column.next());\n var resizeHandle = $(that.resizeHandle);\n var scrollLeftOffset = rootElement.is(BODY) ? 0 : kendo.scrollLeft(rootElement);\n var scrollBarWidth = rtl ? getScrollBarWidth(rootElement[0]) : 0;\n var resizeHandleOffsetLeft = resizeHandle.offset().left - (rootElement.offset().left + parseFloat(rootElement.css('borderLeftWidth'))) - parseFloat(resizeHandle.css('marginLeft'));\n var browser = kendo.support.browser;\n if (rtl && (browser.mozilla || browser.webkit && browser.version >= 85)) {\n scrollLeftOffset = scrollLeftOffset * -1;\n }\n var handleOffset = constrain({\n value: resizeHandleOffsetLeft + (scrollLeftOffset - scrollBarWidth) + e.x.delta,\n min: columnLeftOffset + (scrollLeftOffset - scrollBarWidth) - (rtl ? adjacentColumnWidth : 0) + min,\n max: columnLeftOffset + columnWidth + (scrollLeftOffset - scrollBarWidth) + (rtl ? 0 : adjacentColumnWidth) - handleWidth - min\n });\n resizeHandle.css({ left: handleOffset });\n },\n resize: function (e) {\n var that = this;\n var column = $($(e.currentTarget).data(that.options.handle.dataAttribute));\n var options = that.options;\n var rtlModifier = options.rtl ? -1 : 1;\n var min = options.min;\n var initialDeltaX = rtlModifier * e.x.initialDelta;\n var newWidth;\n var initialAdjacentColumnWidth;\n var initialColumnWidth;\n var colIndex;\n var nextColumn;\n dom.reMapTableColumns(that.element, COLATTR);\n colIndex = parseInt(column.attr(COLATTR), 10);\n if (column.prop('colSpan') > 1) {\n column = $(that.element).find('[' + COLATTR + '=' + (colIndex + column.prop('colSpan') - 1) + ']').eq(0);\n colIndex = parseInt(column.attr(COLATTR), 10);\n }\n nextColumn = $(that.element).find('[' + COLATTR + '=' + (colIndex + 1) + ']:not([colspan])');\n that._setTableComputedWidth();\n that._setColumnsComputedWidth();\n initialColumnWidth = outerWidth(column);\n initialAdjacentColumnWidth = outerWidth(nextColumn);\n newWidth = constrain({\n value: initialColumnWidth + initialDeltaX,\n min: min,\n max: initialColumnWidth + initialAdjacentColumnWidth - min\n });\n that._resizeColumn(column[0], newWidth);\n that._resizeTopAndBottomColumns(column[0], newWidth);\n that._resizeAdjacentColumns(parseInt(column.attr(COLATTR), 10), initialAdjacentColumnWidth, initialColumnWidth, initialColumnWidth - newWidth);\n dom.clearTableMappings(that.element, COLATTR);\n },\n _setTableComputedWidth: function () {\n var element = this.element;\n if (element.style[WIDTH] === '') {\n element.style[WIDTH] = toPixels(outerWidth($(element)));\n }\n },\n _setColumnsComputedWidth: function () {\n var that = this;\n var tableInnerElement = $(that.element.tHead || that.element.tBodies[0]);\n var innerElementWidth = outerWidth(tableInnerElement);\n var columns = tableInnerElement.children(TR).children(TD);\n var length = columns.length;\n var currentColumnsWidths = columns.map(function () {\n return outerWidth($(this));\n });\n var i;\n for (i = 0; i < length; i++) {\n if (inPercentages(columns[i].style[WIDTH])) {\n columns[i].style[WIDTH] = toPercentages(calculatePercentageRatio(currentColumnsWidths[i], innerElementWidth));\n } else {\n columns[i].style[WIDTH] = toPixels(currentColumnsWidths[i]);\n }\n }\n },\n _resizeTopAndBottomColumns: function (column, newWidth) {\n var that = this;\n var columnIndex = $(column).attr(COLATTR);\n var topAndBottomColumns = $(that.element).children(TBODY + COMMA + THEAD).children(TR).children(that.options.tags.join(COMMA)).filter(function () {\n var cell = this;\n return $(cell).attr(COLATTR) === columnIndex && cell !== column;\n });\n var length = topAndBottomColumns.length;\n var i;\n for (i = 0; i < length; i++) {\n that._resizeColumn(topAndBottomColumns[i], newWidth);\n }\n },\n _resizeColumn: function (column, newWidth) {\n var innerTableElement = $(this.element.tHead || this.element.tBodies[0]);\n if (inPercentages(column.style[WIDTH])) {\n column.style[WIDTH] = toPercentages(calculatePercentageRatio(newWidth, outerWidth(innerTableElement)));\n } else {\n column.style[WIDTH] = toPixels(newWidth);\n }\n },\n _resizeAdjacentColumns: function (columnIndex, initialAdjacentColumnWidth, initialColumnWidth, deltaWidth) {\n var that = this;\n var adjacentColumns = $(that.element).children(TBODY + COMMA + THEAD).children(TR).children(that.options.tags.join(COMMA)).filter(function () {\n return parseInt($(this).attr(COLATTR), 10) === columnIndex + 1;\n });\n var length = adjacentColumns.length;\n var i;\n for (i = 0; i < length; i++) {\n that._resizeAdjacentColumn(adjacentColumns[i], initialAdjacentColumnWidth, initialColumnWidth, deltaWidth);\n }\n },\n _resizeAdjacentColumn: function (adjacentColumn, initialAdjacentColumnWidth, initialColumnWidth, deltaWidth) {\n var that = this;\n var min = that.options.min;\n var newWidth;\n newWidth = constrain({\n value: initialAdjacentColumnWidth + deltaWidth,\n min: min,\n max: abs(initialColumnWidth + initialAdjacentColumnWidth - min)\n });\n that._resizeColumn(adjacentColumn, newWidth);\n }\n });\n ColumnResizing.create = function (editor) {\n TableElementResizing.create(editor, {\n name: 'columnResizing',\n type: ColumnResizing,\n eventNamespace: NS\n });\n };\n ColumnResizing.dispose = function (editor) {\n TableElementResizing.dispose(editor, { eventNamespace: NS });\n };\n extend(Editor, { ColumnResizing: ColumnResizing });\n }(window.kendo));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/resizing/row-resizing', [\n 'editor/main',\n 'editor/resizing/resizing-utils',\n 'editor/resizing/table-element-resizing'\n ], f);\n}(function () {\n (function (kendo, undefined) {\n var math = window.Math;\n var abs = math.abs;\n var $ = kendo.jQuery;\n var extend = $.extend;\n var Editor = kendo.ui.editor;\n var TableElementResizing = Editor.TableElementResizing;\n var ResizingUtils = Editor.ResizingUtils;\n var getScrollBarWidth = ResizingUtils.getScrollBarWidth;\n var constrain = ResizingUtils.constrain;\n var calculatePercentageRatio = ResizingUtils.calculatePercentageRatio;\n var inPercentages = ResizingUtils.inPercentages;\n var toPercentages = ResizingUtils.toPercentages;\n var toPixels = ResizingUtils.toPixels;\n var outerHeight = kendo._outerHeight;\n var NS = '.kendoEditorRowResizing';\n var RESIZE_HANDLE_CLASS = 'k-row-resize-handle';\n var RESIZE_HANDLE_MARKER_WRAPPER_CLASS = 'k-row-resize-marker-wrapper';\n var RESIZE_MARKER_CLASS = 'k-row-resize-marker';\n var BODY = 'body';\n var TR = 'tr';\n var TBODY = 'tbody';\n var THEAD = 'thead';\n var COMMA = ',';\n var HEIGHT = 'height';\n var RowResizing = TableElementResizing.extend({\n options: {\n tags: [TR],\n min: 20,\n rootElement: null,\n eventNamespace: NS,\n rtl: false,\n handle: {\n dataAttribute: 'row',\n width: 0,\n height: 10,\n classNames: {\n handle: RESIZE_HANDLE_CLASS,\n marker: RESIZE_MARKER_CLASS\n },\n template: '
    ' + '
    ' + '
    ' + '
    ' + '
    ' + '
    ' + '
    '\n }\n },\n elementBorderHovered: function (tableElement, e) {\n var that = this;\n var handleHeight = that.options.handle[HEIGHT];\n var borderOffset = tableElement.offset().top + outerHeight(tableElement);\n var mousePosition = e.clientY + $(tableElement[0].ownerDocument).scrollTop();\n if (mousePosition > borderOffset - handleHeight && mousePosition < borderOffset + handleHeight) {\n return true;\n } else {\n return false;\n }\n },\n setResizeHandlePosition: function (row) {\n var that = this;\n var options = that.options;\n var handleHeight = options.handle[HEIGHT];\n var rootElement = $(options.rootElement);\n var scrollTopOffset = rootElement.is(BODY) ? 0 : rootElement.scrollTop();\n var scrollLeftOffset = rootElement.is(BODY) ? 0 : kendo.scrollLeft(rootElement);\n var scrollBarWidth = options.rtl ? getScrollBarWidth(rootElement[0]) : 0;\n var rowOffsetLeft = row.offset().left - (rootElement.offset().left + parseFloat(rootElement.css('borderLeftWidth'))) - parseFloat(row.css('marginLeft'));\n var rowOffsetTop = row.offset().top - (rootElement.offset().top + parseFloat(rootElement.css('borderTopWidth'))) - parseFloat(row.css('marginTop'));\n var browser = kendo.support.browser;\n if (options.rtl && (browser.mozilla || browser.webkit && browser.version >= 85)) {\n scrollLeftOffset = scrollLeftOffset * -1;\n }\n that.resizeHandle.css({\n top: rowOffsetTop + outerHeight(row) + scrollTopOffset - handleHeight / 2,\n left: rowOffsetLeft + (scrollLeftOffset - scrollBarWidth),\n position: 'absolute'\n });\n },\n setResizeHandleDimensions: function () {\n var that = this;\n var innerTableElement = $(that.element.tHead || that.element.tBodies[0]);\n that.resizeHandle.css({\n width: innerTableElement.width(),\n height: that.options.handle[HEIGHT]\n });\n },\n setResizeHandleDragPosition: function (e) {\n var that = this;\n var options = that.options;\n var min = options.min;\n var tableHead = $(that.element).children(THEAD);\n var tableBody = $(that.element).children(TBODY);\n var topInnerTableElement = tableHead.length > 0 ? tableHead : tableBody;\n var resizeHandle = $(that.resizeHandle);\n var row = $(e.currentTarget).data(options.handle.dataAttribute);\n var $row = $(row);\n var rootElement = $(options.rootElement);\n var scrollTopOffset = rootElement.is(BODY) ? 0 : rootElement.scrollTop();\n var tableTopOffset = topInnerTableElement.offset().top - (rootElement.offset().top + parseFloat(rootElement.css('borderTopWidth'))) - parseFloat(topInnerTableElement.css('marginTop'));\n var rowOffsetTop = $row.offset().top - (rootElement.offset().top + parseFloat(rootElement.css('borderTopWidth'))) - parseFloat($row.css('marginTop'));\n var resizeHandleOffsetTop = resizeHandle.offset().top - (Math.max(0, rootElement.offset().top) + parseFloat(rootElement.css('borderTopWidth'))) - parseFloat(resizeHandle.css('marginTop'));\n var handleOffset = constrain({\n value: resizeHandleOffsetTop + scrollTopOffset + e.y.delta,\n min: rowOffsetTop + scrollTopOffset + min,\n max: tableTopOffset + outerHeight(tableHead) + outerHeight(tableBody) + scrollTopOffset - options.handle[HEIGHT] - min\n });\n resizeHandle.css({ top: handleOffset });\n },\n resize: function (e) {\n var that = this;\n var options = that.options;\n var row = $(e.currentTarget).data(options.handle.dataAttribute);\n var currentRowHeight = outerHeight($(row));\n var element = $(that.element);\n var initialTableHeight = outerHeight(element);\n var tableHead = element.children(THEAD);\n var tableHeadHeight = tableHead.length > 0 ? tableHead.height() : 0;\n var tableBody = element.children(TBODY);\n var tableBodyHeight = tableBody.height();\n var initialStyleHeight = row.style[HEIGHT];\n var newRowHeight = constrain({\n value: currentRowHeight + e.y.initialDelta,\n min: options.min,\n max: abs(tableHeadHeight + tableBodyHeight - options.min)\n });\n that._setRowsHeightInPixels();\n row.style[HEIGHT] = toPixels(newRowHeight);\n that._setTableHeight(initialTableHeight + (newRowHeight - currentRowHeight));\n if (inPercentages(initialStyleHeight)) {\n that._setRowsHeightInPercentages();\n }\n },\n _setRowsHeightInPixels: function () {\n var that = this;\n var rows = $(that.element).children(TBODY + COMMA + THEAD).children(TR);\n var length = rows.length;\n var currentRowsHeights = rows.map(function () {\n return outerHeight($(this));\n });\n var i;\n for (i = 0; i < length; i++) {\n rows[i].style[HEIGHT] = toPixels(currentRowsHeights[i]);\n }\n },\n _setRowsHeightInPercentages: function () {\n var that = this;\n var tableHead = $(that.element).children(THEAD);\n var tableHeadHeight = tableHead.length > 0 ? tableHead.height() : 0;\n var tableBody = $(that.element).children(TBODY);\n var tableBodyHeight = tableBody.height();\n var rows = $(that.element).children(THEAD + COMMA + TBODY).children(TR);\n var length = rows.length;\n var currentRowsHeights = rows.map(function () {\n return outerHeight($(this));\n });\n var i;\n for (i = 0; i < length; i++) {\n rows[i].style[HEIGHT] = toPercentages(calculatePercentageRatio(currentRowsHeights[i], tableHeadHeight + tableBodyHeight));\n }\n },\n _setTableHeight: function (newHeight) {\n var element = this.element;\n if (inPercentages(element.style[HEIGHT])) {\n element.style[HEIGHT] = toPercentages(calculatePercentageRatio(newHeight, $(element).parent().height()));\n } else {\n element.style[HEIGHT] = toPixels(newHeight);\n }\n }\n });\n RowResizing.create = function (editor) {\n TableElementResizing.create(editor, {\n name: 'rowResizing',\n type: RowResizing,\n eventNamespace: NS\n });\n };\n RowResizing.dispose = function (editor) {\n TableElementResizing.dispose(editor, { eventNamespace: NS });\n };\n extend(Editor, { RowResizing: RowResizing });\n }(window.kendo));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/resizing/element-resize-handle', [\n 'editor/main',\n 'kendo.draganddrop',\n 'editor/resizing/resizing-utils'\n ], f);\n}(function () {\n (function (kendo, undefined) {\n var $ = kendo.jQuery;\n var extend = $.extend;\n var noop = $.noop;\n var proxy = $.proxy;\n var Editor = kendo.ui.editor;\n var Class = kendo.Class;\n var Draggable = kendo.ui.Draggable;\n var Observable = kendo.Observable;\n var getScrollBarWidth = Editor.ResizingUtils.getScrollBarWidth;\n var outerWidth = kendo._outerWidth;\n var outerHeight = kendo._outerHeight;\n var NS = '.kendoEditorElementResizeHandle';\n var RESIZE_HANDLE_CLASS = 'k-element-resize-handle';\n var DRAG_START = 'dragStart';\n var DRAG = 'drag';\n var DRAG_END = 'dragEnd';\n var HALF_INSIDE = 'halfInside';\n var MOUSE_OVER = 'mouseover';\n var MOUSE_OUT = 'mouseout';\n var BODY = 'body';\n var TABLE = 'table';\n var EAST = 'east';\n var NORTH = 'north';\n var NORTHEAST = 'northeast';\n var NORTHWEST = 'northwest';\n var SOUTH = 'south';\n var SOUTHEAST = 'southeast';\n var SOUTHWEST = 'southwest';\n var WEST = 'west';\n var DOT = '.';\n var ElementResizeHandle = Observable.extend({\n init: function (options) {\n var that = this;\n Observable.fn.init.call(that);\n that.options = extend({}, that.options, options);\n that.element = $(that.options.template).appendTo(that.options.appendTo)[0];\n that._attachEventHandlers();\n that._addStyles();\n that._initDraggable();\n that._initPositioningStrategy();\n that._initDraggingStrategy();\n $(that.element).data(TABLE, that.options.resizableElement);\n },\n destroy: function () {\n var that = this;\n $(that.element).off(NS).remove();\n that.element = null;\n that._destroyDraggable();\n that.unbind();\n },\n options: {\n appendTo: null,\n direction: SOUTHEAST,\n resizableElement: null,\n rtl: false,\n template: '
    ' + '
    ' + '
    '\n },\n events: [\n DRAG_START,\n DRAG,\n DRAG_END,\n MOUSE_OVER,\n MOUSE_OUT\n ],\n show: function () {\n this._setPosition();\n },\n _setPosition: function () {\n var that = this;\n var position = that._positioningStrategy.getPosition();\n $(that.element).css({\n top: position.top,\n left: position.left,\n position: 'absolute'\n });\n },\n _attachEventHandlers: function () {\n var that = this;\n $(that.element).on(MOUSE_OVER + NS, proxy(that._onMouseOver, that)).on(MOUSE_OUT + NS, proxy(that._onMouseOut, that));\n },\n _onMouseOver: function () {\n this.trigger(MOUSE_OVER);\n },\n _onMouseOut: function () {\n this.trigger(MOUSE_OUT);\n },\n _addStyles: function () {\n var that = this;\n $(that.element).children(DOT + RESIZE_HANDLE_CLASS).addClass('k-resize-' + that.options.direction);\n },\n _initPositioningStrategy: function () {\n var that = this;\n var options = that.options;\n that._positioningStrategy = HandlePositioningStrategy.create({\n name: options.direction,\n handle: that.element,\n resizableElement: options.resizableElement,\n rootElement: options.rootElement,\n rtl: options.rtl\n });\n },\n _initDraggable: function () {\n var that = this;\n var element = that.element;\n if (that._draggable || !element) {\n return;\n }\n that._draggable = new Draggable(element, {\n dragstart: proxy(that._onDragStart, that),\n drag: proxy(that._onDrag, that),\n dragend: proxy(that._onDragEnd, that)\n });\n },\n _onDragStart: function () {\n this.trigger(DRAG_START);\n },\n _onDrag: function (e) {\n var that = this;\n that.trigger(DRAG, that._draggingStrategy.adjustDragDelta({\n deltaX: e.x.delta,\n deltaY: e.y.delta,\n initialDeltaX: e.x.initialDelta,\n initialDeltaY: e.y.initialDelta\n }));\n },\n _onDragEnd: function () {\n this.trigger(DRAG_END);\n },\n _destroyDraggable: function () {\n var that = this;\n if (that._draggable) {\n that._draggable.destroy();\n that._draggable = null;\n }\n },\n _initDraggingStrategy: function () {\n var that = this;\n that._draggingStrategy = HandleDraggingStrategy.create({ name: that.options.direction });\n }\n });\n var StrategyFactory = Class.extend({\n init: function () {\n this._items = [];\n },\n register: function (name, type) {\n this._items.push({\n name: name,\n type: type\n });\n },\n create: function (options) {\n var items = this._items;\n var itemsLength = items.length;\n var name = options.name ? options.name.toLowerCase() : '';\n var match;\n var item;\n var i;\n for (i = 0; i < itemsLength; i++) {\n item = items[i];\n if (item.name.toLowerCase() === name) {\n match = item;\n break;\n }\n }\n if (match) {\n return new match.type(options);\n }\n }\n });\n var PositioningStrategyFactory = StrategyFactory.extend({});\n PositioningStrategyFactory.current = new PositioningStrategyFactory();\n var HandlePositioningStrategy = Class.extend({\n init: function (options) {\n var that = this;\n that.options = extend({}, that.options, options);\n },\n options: {\n handle: null,\n offset: HALF_INSIDE,\n resizableElement: null,\n rootElement: null,\n rtl: false\n },\n getPosition: function () {\n var that = this;\n var position = that.calculatePosition();\n var handleOffsetPosition = that.applyHandleOffset(position);\n var scrollOffsetPosition = that.applyScrollOffset(handleOffsetPosition);\n return scrollOffsetPosition;\n },\n calculatePosition: noop,\n applyHandleOffset: function (position) {\n var options = this.options;\n var handle = $(options.handle);\n if (options.offset === HALF_INSIDE) {\n return {\n top: position.top - outerHeight(handle) / 2,\n left: position.left - outerWidth(handle) / 2\n };\n }\n return position;\n },\n applyScrollOffset: function (position) {\n var options = this.options;\n var rootElement = $(options.rootElement);\n var scrollBarWidth = options.rtl ? getScrollBarWidth(rootElement[0]) : 0;\n var browser = kendo.support.browser;\n var rootLeft;\n if (!rootElement.is(BODY)) {\n rootLeft = kendo.scrollLeft(rootElement) || 0;\n if (options.rtl && (browser.mozilla || browser.webkit && browser.version >= 85)) {\n rootLeft = rootLeft * -1;\n }\n return {\n top: position.top + (rootElement.scrollTop() || 0),\n left: position.left + rootLeft - scrollBarWidth\n };\n }\n return position;\n }\n });\n HandlePositioningStrategy.create = function (options) {\n return PositioningStrategyFactory.current.create(options);\n };\n var EastPositioningStrategy = HandlePositioningStrategy.extend({\n calculatePosition: function () {\n var resizableElement = $(this.options.resizableElement);\n var offset = resizableElement.position();\n var marginLeft = parseInt(resizableElement.css('marginLeft'), 10);\n return {\n top: offset.top + outerHeight(resizableElement) / 2,\n left: offset.left + outerWidth(resizableElement) + marginLeft\n };\n }\n });\n PositioningStrategyFactory.current.register(EAST, EastPositioningStrategy);\n var NorthPositioningStrategy = HandlePositioningStrategy.extend({\n calculatePosition: function () {\n var resizableElement = $(this.options.resizableElement);\n var offset = resizableElement.position();\n var marginLeft = parseInt(resizableElement.css('marginLeft'), 10);\n return {\n top: offset.top,\n left: offset.left + outerWidth(resizableElement) / 2 + marginLeft\n };\n }\n });\n PositioningStrategyFactory.current.register(NORTH, NorthPositioningStrategy);\n var NortheastPositioningStrategy = HandlePositioningStrategy.extend({\n calculatePosition: function () {\n var resizableElement = $(this.options.resizableElement);\n var offset = resizableElement.position();\n var marginLeft = parseInt(resizableElement.css('marginLeft'), 10);\n return {\n top: offset.top,\n left: offset.left + outerWidth(resizableElement) + marginLeft\n };\n }\n });\n PositioningStrategyFactory.current.register(NORTHEAST, NortheastPositioningStrategy);\n var NorthwestPositioningStrategy = HandlePositioningStrategy.extend({\n calculatePosition: function () {\n var resizableElement = $(this.options.resizableElement);\n var offset = resizableElement.position();\n var marginLeft = parseInt(resizableElement.css('marginLeft'), 10);\n return {\n top: offset.top,\n left: offset.left + marginLeft\n };\n }\n });\n PositioningStrategyFactory.current.register(NORTHWEST, NorthwestPositioningStrategy);\n var SouthPositioningStrategy = HandlePositioningStrategy.extend({\n calculatePosition: function () {\n var resizableElement = $(this.options.resizableElement);\n var offset = resizableElement.position();\n var marginLeft = parseInt(resizableElement.css('marginLeft'), 10);\n return {\n top: offset.top + outerHeight(resizableElement),\n left: offset.left + outerWidth(resizableElement) / 2 + marginLeft\n };\n }\n });\n PositioningStrategyFactory.current.register(SOUTH, SouthPositioningStrategy);\n var SoutheastPositioningStrategy = HandlePositioningStrategy.extend({\n calculatePosition: function () {\n var resizableElement = $(this.options.resizableElement);\n var offset = resizableElement.position();\n var marginLeft = parseInt(resizableElement.css('marginLeft'), 10);\n return {\n top: offset.top + outerHeight(resizableElement),\n left: offset.left + outerWidth(resizableElement) + marginLeft\n };\n }\n });\n PositioningStrategyFactory.current.register(SOUTHEAST, SoutheastPositioningStrategy);\n var SouthwestPositioningStrategy = HandlePositioningStrategy.extend({\n calculatePosition: function () {\n var resizableElement = $(this.options.resizableElement);\n var offset = resizableElement.position();\n var marginLeft = parseInt(resizableElement.css('marginLeft'), 10);\n return {\n top: offset.top + outerHeight(resizableElement),\n left: offset.left + marginLeft\n };\n }\n });\n PositioningStrategyFactory.current.register(SOUTHWEST, SouthwestPositioningStrategy);\n var WestPositioningStrategy = HandlePositioningStrategy.extend({\n calculatePosition: function () {\n var resizableElement = $(this.options.resizableElement);\n var offset = resizableElement.position();\n var marginLeft = parseInt(resizableElement.css('marginLeft'), 10);\n return {\n top: offset.top + outerHeight(resizableElement) / 2,\n left: offset.left + marginLeft\n };\n }\n });\n PositioningStrategyFactory.current.register(WEST, WestPositioningStrategy);\n var DraggingStrategyFactory = StrategyFactory.extend({});\n DraggingStrategyFactory.current = new DraggingStrategyFactory();\n var HandleDraggingStrategy = Class.extend({\n init: function (options) {\n var that = this;\n that.options = extend({}, that.options, options);\n },\n options: {\n deltaX: {\n adjustment: null,\n modifier: null\n },\n deltaY: {\n adjustment: null,\n modifier: null\n }\n },\n adjustDragDelta: function (deltas) {\n var options = this.options;\n var xAxisAdjustment = options.deltaX.adjustment * options.deltaX.modifier;\n var yAxisAdjustment = options.deltaY.adjustment * options.deltaY.modifier;\n return {\n deltaX: deltas.deltaX * xAxisAdjustment,\n deltaY: deltas.deltaY * yAxisAdjustment,\n initialDeltaX: deltas.initialDeltaX * xAxisAdjustment,\n initialDeltaY: deltas.initialDeltaY * yAxisAdjustment\n };\n }\n });\n HandleDraggingStrategy.create = function (options) {\n return DraggingStrategyFactory.current.create(options);\n };\n var HorizontalDraggingStrategy = HandleDraggingStrategy.extend({\n options: {\n deltaX: {\n adjustment: 1,\n modifier: 1\n },\n deltaY: {\n adjustment: 0,\n modifier: 0\n }\n }\n });\n var EastDraggingStrategy = HorizontalDraggingStrategy.extend({ options: { deltaX: { modifier: 1 } } });\n DraggingStrategyFactory.current.register(EAST, EastDraggingStrategy);\n var WestDraggingStrategy = HorizontalDraggingStrategy.extend({ options: { deltaX: { modifier: -1 } } });\n DraggingStrategyFactory.current.register(WEST, WestDraggingStrategy);\n var VerticalDraggingStrategy = HandleDraggingStrategy.extend({\n options: {\n deltaX: {\n adjustment: 0,\n modifier: 0\n },\n deltaY: {\n adjustment: 1,\n modifier: 1\n }\n }\n });\n var NorthDraggingStrategy = VerticalDraggingStrategy.extend({ options: { deltaY: { modifier: -1 } } });\n DraggingStrategyFactory.current.register(NORTH, NorthDraggingStrategy);\n var SouthDraggingStrategy = VerticalDraggingStrategy.extend({ options: { deltaY: { modifier: 1 } } });\n DraggingStrategyFactory.current.register(SOUTH, SouthDraggingStrategy);\n var HorizontalAndVerticalDraggingStrategy = HandleDraggingStrategy.extend({\n options: {\n deltaX: {\n adjustment: 1,\n modifier: 1\n },\n deltaY: {\n adjustment: 1,\n modifier: 1\n }\n }\n });\n var NorthEastDraggingStrategy = HorizontalAndVerticalDraggingStrategy.extend({\n options: {\n deltaX: { modifier: 1 },\n deltaY: { modifier: -1 }\n }\n });\n DraggingStrategyFactory.current.register(NORTHEAST, NorthEastDraggingStrategy);\n var NorthWestDraggingStrategy = HorizontalAndVerticalDraggingStrategy.extend({\n options: {\n deltaX: { modifier: -1 },\n deltaY: { modifier: -1 }\n }\n });\n DraggingStrategyFactory.current.register(NORTHWEST, NorthWestDraggingStrategy);\n var SouthEastDraggingStrategy = HorizontalAndVerticalDraggingStrategy.extend({\n options: {\n deltaX: { modifier: 1 },\n deltaY: { modifier: 1 }\n }\n });\n DraggingStrategyFactory.current.register(SOUTHEAST, SouthEastDraggingStrategy);\n var SouthWestDraggingStrategy = HorizontalAndVerticalDraggingStrategy.extend({\n options: {\n deltaX: { modifier: -1 },\n deltaY: { modifier: 1 }\n }\n });\n DraggingStrategyFactory.current.register(SOUTHWEST, SouthWestDraggingStrategy);\n extend(Editor, { ElementResizeHandle: ElementResizeHandle });\n }(window.kendo));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/resizing/element-resizing', [\n 'editor/main',\n 'editor/resizing/element-resize-handle',\n 'editor/resizing/resizing-utils'\n ], f);\n}(function () {\n (function (kendo, undefined) {\n var global = window;\n var math = global.Math;\n var min = math.min;\n var max = math.max;\n var $ = kendo.jQuery;\n var contains = $.contains;\n var extend = $.extend;\n var proxy = $.proxy;\n var browser = kendo.support.browser;\n var Editor = kendo.ui.editor;\n var Class = kendo.Class;\n var ElementResizeHandle = Editor.ElementResizeHandle;\n var ResizingUtils = Editor.ResizingUtils;\n var calculatePercentageRatio = ResizingUtils.calculatePercentageRatio;\n var constrain = ResizingUtils.constrain;\n var inPercentages = ResizingUtils.inPercentages;\n var inPixels = ResizingUtils.inPixels;\n var toPercentages = ResizingUtils.toPercentages;\n var toPixels = ResizingUtils.toPixels;\n var outerWidth = kendo._outerWidth;\n var outerHeight = kendo._outerHeight;\n var RangeUtils = Editor.RangeUtils;\n var NS = '.kendoEditorElementResizing';\n var RESIZE_HANDLE_WRAPPER_CLASS = 'k-element-resize-handle-wrapper';\n var TABLE_CLASS = 'k-table';\n var ELEMENT_RESIZING_CLASS = 'k-element-resizing';\n var DRAG_START = 'dragStart';\n var DRAG = 'drag';\n var DRAG_END = 'dragEnd';\n var KEY_DOWN = 'keydown';\n var MOUSE_DOWN = 'mousedown';\n var MOUSE_OVER = 'mouseover';\n var MOUSE_OUT = 'mouseout';\n var SELECT = 'select';\n var DROP = 'drop';\n var COLUMN = 'td';\n var ROW = 'tr';\n var TBODY = 'tbody';\n var THEAD = 'thead';\n var TABLE = 'table';\n var IMG = 'img';\n var ELEMENT_TYPES = [\n 'TABLE',\n 'IMG'\n ];\n var COMMA = ',';\n var WIDTH = 'width';\n var HEIGHT = 'height';\n var EAST = 'east';\n var NORTH = 'north';\n var NORTHEAST = 'northeast';\n var NORTHWEST = 'northwest';\n var SOUTH = 'south';\n var SOUTHEAST = 'southeast';\n var SOUTHWEST = 'southwest';\n var WEST = 'west';\n var DOT = '.';\n function isUndefined(value) {\n return typeof value === 'undefined';\n }\n var ElementResizing = Class.extend({\n init: function (element, options) {\n var that = this;\n that.options = extend({}, that.options, options);\n that.handles = [];\n if (ELEMENT_TYPES.indexOf(element.nodeName) >= 0) {\n that.element = element;\n }\n },\n destroy: function () {\n var that = this;\n $(that.element).off(NS);\n that.element = null;\n $(that.options.rootElement).off(KEY_DOWN + NS);\n that._destroyResizeHandles();\n },\n options: {\n appendHandlesTo: null,\n rtl: false,\n rootElement: null,\n minWidth: 10,\n minHeight: 10,\n handles: [\n { direction: NORTHWEST },\n { direction: NORTH },\n { direction: NORTHEAST },\n { direction: EAST },\n { direction: SOUTHEAST },\n { direction: SOUTH },\n { direction: SOUTHWEST },\n { direction: WEST }\n ]\n },\n resize: function (args) {\n var that = this;\n var deltas = extend({}, {\n deltaX: 0,\n deltaY: 0,\n initialDeltaX: 0,\n initialDeltaY: 0\n }, args);\n that._resizeWidth(deltas.deltaX, deltas.initialDeltaX);\n that._resizeHeight(deltas.deltaY, deltas.initialDeltaY);\n that.showResizeHandles();\n },\n _resizeWidth: function () {\n return false;\n },\n _resizeHeight: function () {\n return false;\n },\n _getMaxDimensionValue: function (dimension) {\n var that = this;\n var element = $(that.element);\n var dimensionLowercase = dimension.toLowerCase();\n var rtlModifier = that.options.rtl ? -1 : 1;\n var parent = $(that.element).parent();\n var parentElement = parent[0];\n var parentDimension = parent[dimensionLowercase]();\n var parentScrollOffset = rtlModifier * (dimension === WIDTH ? kendo.scrollLeft(parent) : parent.scrollTop());\n if (parentElement && parentElement === element.closest(COLUMN)[0]) {\n if (parentElement.style[dimensionLowercase] === '' && !inPercentages(that.element.style[dimensionLowercase])) {\n return Infinity;\n } else {\n return parentDimension + parentScrollOffset;\n }\n } else {\n return parentDimension + parentScrollOffset;\n }\n },\n showResizeHandles: function () {\n var that = this;\n that._initResizeHandles();\n that._showResizeHandles();\n },\n _initResizeHandles: function () {\n var that = this;\n var handles = that.handles;\n var options = that.options;\n var handleOptions = that.options.handles;\n var length = handleOptions.length;\n var i;\n if (handles && handles.length > 0) {\n return;\n }\n for (i = 0; i < length; i++) {\n that.handles.push(new ElementResizeHandle(extend({\n appendTo: options.appendHandlesTo,\n resizableElement: that.element,\n rootElement: options.rootElement,\n rtl: options.rtl\n }, handleOptions[i])));\n }\n that._bindToResizeHandlesEvents();\n },\n _destroyResizeHandles: function () {\n var that = this;\n var length = that.handles ? that.handles.length : 0;\n for (var i = 0; i < length; i++) {\n that.handles[i].destroy();\n }\n that.handles = [];\n },\n _showResizeHandles: function () {\n var that = this;\n var handles = that.handles || [];\n var length = handles.length;\n var i;\n for (i = 0; i < length; i++) {\n that.handles[i].show();\n }\n },\n _bindToResizeHandlesEvents: function () {\n return false;\n },\n _onResizeHandleDragStart: function () {\n var that = this;\n var element = $(that.element);\n element.addClass(ELEMENT_RESIZING_CLASS);\n that._initialElementHeight = outerHeight(element);\n that._initialElementWidth = outerWidth(element);\n that._disableKeyboard();\n },\n _onResizeHandleDrag: function (e) {\n this.resize(e);\n },\n _onResizeHandleDragEnd: function () {\n var that = this;\n $(that.element).removeClass(ELEMENT_RESIZING_CLASS);\n that._enableKeyboard();\n },\n _enableKeyboard: function () {\n $(this.options.rootElement).off(KEY_DOWN + NS);\n },\n _disableKeyboard: function () {\n $(this.options.rootElement).on(KEY_DOWN + NS, function (e) {\n e.preventDefault();\n });\n }\n });\n var TableResizing = ElementResizing.extend({\n _bindToResizeHandlesEvents: function () {\n var that = this;\n var handles = that.handles || [];\n var length = handles.length;\n var i;\n var handle;\n for (i = 0; i < length; i++) {\n handle = handles[i];\n handle.bind(DRAG_START, proxy(that._onResizeHandleDragStart, that));\n handle.bind(DRAG, proxy(that._onResizeHandleDrag, that));\n handle.bind(DRAG_END, proxy(that._onResizeHandleDragEnd, that));\n handle.bind(MOUSE_OVER, proxy(that._onResizeHandleMouseOver, that));\n handle.bind(MOUSE_OUT, proxy(that._onResizeHandleMouseOut, that));\n }\n },\n _hasRowsInPixels: function () {\n var that = this;\n var rows = $(that.element).children(THEAD + COMMA + TBODY).children(ROW);\n for (var i = 0; i < rows.length; i++) {\n if (rows[i].style.height === '' || inPixels(rows[i].style.height)) {\n return true;\n }\n }\n return false;\n },\n _resizeWidth: function (delta, initialDelta) {\n var that = this;\n var element = $(that.element);\n var styleWidth = element[0].style[WIDTH];\n var currentWidth = outerWidth(element);\n var parentWidth = element.parent().width();\n var maxWidth = that._getMaxDimensionValue(WIDTH);\n var newWidth;\n var ratioValue;\n var ratioTotalValue;\n var constrainedWidth;\n if (delta === 0) {\n return;\n }\n if (isUndefined(that._initialElementWidth)) {\n that._initialElementWidth = currentWidth;\n }\n constrainedWidth = constrain({\n value: that._initialElementWidth + initialDelta,\n min: that.options.minWidth,\n max: maxWidth\n });\n if (inPercentages(styleWidth)) {\n if (currentWidth + delta > parentWidth) {\n ratioValue = max(constrainedWidth, parentWidth);\n ratioTotalValue = min(constrainedWidth, parentWidth);\n } else {\n ratioValue = min(constrainedWidth, parentWidth);\n ratioTotalValue = max(constrainedWidth, parentWidth);\n }\n newWidth = toPercentages(calculatePercentageRatio(ratioValue, ratioTotalValue));\n } else {\n newWidth = toPixels(constrainedWidth);\n }\n that._setColumnsWidth();\n element[0].style[WIDTH] = newWidth;\n },\n _resizeHeight: function (delta, initialDelta) {\n var that = this;\n var element = $(that.element);\n var styleHeight = element[0].style[HEIGHT];\n var currentHeight = outerHeight(element);\n var parent = element.parent();\n var parentHeight = parent.height();\n var maxHeight = that._getMaxDimensionValue(HEIGHT);\n var newHeight;\n var ratioValue;\n var ratioTotalValue;\n var constrainedHeight;\n var minHeight = that.options.minHeight;\n var hasRowsInPixels = that._hasRowsInPixels();\n if (delta === 0) {\n return;\n }\n if (isUndefined(that._initialElementHeight)) {\n that._initialElementHeight = currentHeight;\n }\n constrainedHeight = constrain({\n value: that._initialElementHeight + initialDelta,\n min: minHeight,\n max: maxHeight\n });\n if (hasRowsInPixels && delta < 0) {\n that._setRowsHeightInPercentages();\n }\n if (inPercentages(styleHeight)) {\n if (currentHeight + delta > parentHeight) {\n ratioValue = max(constrainedHeight, parentHeight);\n ratioTotalValue = min(constrainedHeight, parentHeight);\n } else {\n ratioValue = min(constrainedHeight, parentHeight);\n ratioTotalValue = max(constrainedHeight, parentHeight);\n }\n newHeight = toPercentages(calculatePercentageRatio(ratioValue, ratioTotalValue));\n } else {\n newHeight = toPixels(constrainedHeight);\n }\n element[0].style[HEIGHT] = newHeight;\n if (hasRowsInPixels && delta < 0) {\n that._setRowsHeightInPixels();\n }\n },\n _setColumnsWidth: function () {\n var that = this;\n var element = $(that.element);\n var parentElement = element.parent()[0];\n var parentColumn = element.closest(COLUMN);\n var columns = parentColumn.closest(ROW).children();\n var columnsLength = columns.length;\n var i;\n function isWidthInPercentages(element) {\n var styleWidth = element.style.width;\n if (styleWidth !== '') {\n return inPercentages(styleWidth) ? true : false;\n } else {\n return $(element).hasClass(TABLE_CLASS) ? true : false;\n }\n }\n if (isWidthInPercentages(element[0]) && parentElement === parentColumn[0] && parentElement.style[WIDTH] === '') {\n for (i = 0; i < columnsLength; i++) {\n columns[i].style[WIDTH] = toPixels($(columns[i]).width());\n }\n }\n },\n _setRowsHeightInPercentages: function () {\n var that = this;\n var tableHead = $(that.element).children(THEAD);\n var tableHeadHeight = tableHead.length > 0 ? tableHead.height() : 0;\n var tableBody = $(that.element).children(TBODY);\n var tableBodyHeight = tableBody.height();\n var rows = $(that.element).children(THEAD + COMMA + TBODY).children(ROW);\n var length = rows.length;\n var currentRowsHeights = rows.map(function () {\n return outerHeight($(this));\n });\n var i;\n for (i = 0; i < length; i++) {\n rows[i].style[HEIGHT] = toPercentages(calculatePercentageRatio(currentRowsHeights[i], tableHeadHeight + tableBodyHeight));\n }\n },\n _setRowsHeightInPixels: function () {\n var that = this;\n var rows = $(that.element).children(THEAD + COMMA + TBODY).children(ROW);\n var length = rows.length;\n var currentRowsHeights = rows.map(function () {\n return outerHeight($(this));\n });\n var i;\n for (i = 0; i < length; i++) {\n rows[i].style[HEIGHT] = toPixels(currentRowsHeights[i]);\n }\n }\n });\n var ImageResizing = ElementResizing.extend({\n _bindToResizeHandlesEvents: function () {\n var that = this;\n var handles = that.handles || [];\n var length = handles.length;\n var i;\n var handle;\n for (i = 0; i < length; i++) {\n handle = handles[i];\n handle.bind(DRAG_START, proxy(that._onResizeHandleDragStart, that));\n if (handle.options.direction === 'north' || handle.options.direction === 'south') {\n handle.bind(DRAG, proxy(that._onResizeHandleDragVertical, that));\n } else if (handle.options.direction === 'east' || handle.options.direction === 'west') {\n handle.bind(DRAG, proxy(that._onResizeHandleDragHorizontal, that));\n } else {\n handle.bind(DRAG, proxy(that._onResizeHandleDragLocked, that));\n }\n handle.bind(DRAG_END, proxy(that._onResizeHandleDragEnd, that));\n handle.bind(MOUSE_OVER, proxy(that._onResizeHandleMouseOver, that));\n handle.bind(MOUSE_OUT, proxy(that._onResizeHandleMouseOut, that));\n }\n },\n _getDeltas: function (args) {\n return extend({}, {\n deltaX: 0,\n deltaY: 0,\n initialDeltaX: 0,\n initialDeltaY: 0\n }, args);\n },\n _onResizeHandleDragVertical: function (args) {\n var deltas = this._getDeltas(args);\n this._resizeHeight(deltas.deltaY, deltas.initialDeltaY);\n this.showResizeHandles();\n },\n _onResizeHandleDragHorizontal: function (args) {\n var deltas = this._getDeltas(args);\n this._resizeWidth(deltas.deltaX, deltas.initialDeltaX);\n this.showResizeHandles();\n },\n _onResizeHandleDragLocked: function (args) {\n var min = Math.min(Math.abs(args.initialDeltaX), Math.abs(args.initialDeltaY)), initialWidth = this._initialElementWidth, initialHeight = this._initialElementHeight, deltas;\n if (min === args.initialDeltaX || min === args.initialDeltaX * -1) {\n args.initialDeltaY = args.initialDeltaX * initialHeight / initialWidth;\n args.deltaY = args.deltaX;\n } else if (min === args.initialDeltaY || min === args.initialDeltaY * -1) {\n args.initialDeltaX = args.initialDeltaY * initialWidth / initialHeight;\n args.deltaX = args.deltaY;\n }\n deltas = this._getDeltas(args);\n this._resizeWidth(deltas.deltaX, deltas.initialDeltaX);\n this._resizeHeight(deltas.deltaY, deltas.initialDeltaY);\n this.showResizeHandles();\n },\n _resizeWidth: function (delta, initialDelta) {\n var that = this;\n var element = $(that.element);\n var currentWidth = outerWidth(element);\n var newWidth;\n var constrainedWidth;\n if (delta === 0) {\n return;\n }\n if (isUndefined(that._initialElementWidth)) {\n that._initialElementWidth = currentWidth;\n }\n constrainedWidth = constrain({\n value: that._initialElementWidth + initialDelta,\n min: that.options.minWidth,\n max: that._getMaxDimensionValue(WIDTH)\n });\n newWidth = toPixels(constrainedWidth);\n element[0].style[WIDTH] = newWidth;\n element.attr(WIDTH, Math.floor(constrainedWidth));\n },\n _resizeHeight: function (delta, initialDelta) {\n var that = this;\n var element = $(that.element);\n var currentHeight = outerHeight(element);\n var newHeight;\n var constrainedHeight;\n if (delta === 0) {\n return;\n }\n if (isUndefined(that._initialElementHeight)) {\n that._initialElementHeight = currentHeight;\n }\n constrainedHeight = constrain({\n value: that._initialElementHeight + initialDelta,\n min: that.options.minHeight,\n max: Number.MAX_SAFE_INTEGER\n });\n newHeight = toPixels(constrainedHeight);\n element[0].style[HEIGHT] = newHeight;\n element.attr(HEIGHT, Math.floor(constrainedHeight));\n }\n });\n var ElementResizingFactory = Class.extend({\n create: function (editor) {\n var factory = this;\n $(editor.body).on('dragstart' + NS, function () {\n var nodes = RangeUtils.nodes(editor.getRange()), hasImg = false;\n nodes.forEach(function (node) {\n if (node.nodeName === 'IMG') {\n hasImg = true;\n }\n });\n if (hasImg && nodes.length > 1) {\n editor.elementResizing._destroyResizeHandles();\n }\n }).on(DROP + NS, function () {\n setTimeout(function () {\n var image = RangeUtils.image(editor.getRange());\n if (image) {\n editor.elementResizing._destroyResizeHandles();\n editor.elementResizing.element = image;\n editor.elementResizing.showResizeHandles();\n }\n });\n }).on(MOUSE_DOWN + NS, TABLE + COMMA + IMG, function (e) {\n var eventTarget = e.target;\n var eventCurrentTarget = e.currentTarget;\n var elementResizing = editor.elementResizing;\n var element = elementResizing ? elementResizing.element : null;\n if (elementResizing) {\n if (element && eventCurrentTarget !== element) {\n if (contains(eventCurrentTarget, element) && element !== eventTarget && contains(element, eventTarget)) {\n return;\n } else {\n if (element !== eventTarget) {\n editor._destroyElementResizing();\n factory._initResizing(editor, eventCurrentTarget);\n }\n }\n }\n } else {\n factory._initResizing(editor, eventCurrentTarget);\n }\n editor._showElementResizeHandles();\n }).on(MOUSE_DOWN + NS, function (e) {\n var elementResizing = editor.elementResizing;\n var element = elementResizing ? elementResizing.element : null;\n var target = e.target;\n var isResizeHandleOrChild = $(target).hasClass(RESIZE_HANDLE_WRAPPER_CLASS) || $(target).parents(DOT + RESIZE_HANDLE_WRAPPER_CLASS).length > 0;\n if (elementResizing && element !== target && !contains(element, target) && !isResizeHandleOrChild) {\n editor._destroyElementResizing();\n }\n });\n },\n dispose: function (editor) {\n $(editor.body).off(NS);\n },\n _initResizing: function (editor, element) {\n if (!browser.msie) {\n if ($(element).is(TABLE)) {\n editor.elementResizing = editor.tableResizing = new TableResizing(element, {\n appendHandlesTo: editor.body,\n rtl: kendo.support.isRtl(editor.element),\n rootElement: editor.body\n });\n } else if ($(element).is(IMG)) {\n editor.elementResizing = new ImageResizing(element, {\n appendHandlesTo: editor.body,\n rtl: kendo.support.isRtl(editor.element),\n rootElement: editor.body\n });\n }\n if (editor._showElementResizeHandlesProxy) {\n editor.unbind(SELECT, editor._showElementResizeHandlesProxy);\n editor.bind(SELECT, editor._showElementResizeHandlesProxy);\n }\n }\n }\n });\n ElementResizingFactory.current = new ElementResizingFactory();\n extend(Editor, {\n TableResizing: TableResizing,\n ImageResizing: ImageResizing,\n ElementResizing: ElementResizing,\n ElementResizingFactory: ElementResizingFactory\n });\n }(window.kendo));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/table-wizard/table-wizard-command', ['editor/plugins/tables'], f);\n}(function () {\n (function ($, undefined) {\n var kendo = window.kendo, Editor = kendo.ui.editor, EditorUtils = Editor.EditorUtils, RangeUtils = Editor.RangeUtils, dom = Editor.Dom, registerTool = EditorUtils.registerTool, ToolTemplate = Editor.ToolTemplate, Command = Editor.Command;\n var tableFormatFinder = new Editor.BlockFormatFinder([{ tags: ['table'] }]);\n var cellsFormatFinder = new Editor.BlockFormatFinder([{\n tags: [\n 'td',\n 'th'\n ]\n }]);\n var reUnit = /([a-z]+|%)$/i;\n var COL = 'col';\n var ROW = 'row';\n var COLGROUP = 'colgroup';\n var SCOPE = 'scope';\n var COL_INDEX = 'col-index';\n var TH = 'th';\n var TD = 'td';\n var THEAD = 'thead';\n var HEADERS = 'headers';\n var TABLE = 'table';\n var TableWizardCommand = Command.extend({\n exec: function () {\n var cmd = this;\n var editor = cmd.editor;\n var range = cmd.range = cmd.lockRange();\n var selectedTable = cmd._sourceTable = !cmd.options.insertNewTable ? cmd._selectedTable(range) : undefined;\n var selectedCells = cmd._selectedTableCells = selectedTable ? cmd._selectedCells(range) : undefined;\n var options = {\n visible: false,\n messages: editor.options.messages,\n closeCallback: $.proxy(cmd.onDialogClose, cmd),\n table: cmd.parseTable(selectedTable, selectedCells),\n dialogOptions: editor.options.dialogOptions,\n isRtl: kendo.support.isRtl(editor.wrapper)\n };\n var dialog = new Editor.TableWizardDialog(options);\n dialog.open();\n },\n onDialogClose: function (data) {\n var cmd = this;\n cmd.releaseRange(cmd.range);\n if (data) {\n if (cmd.options.insertNewTable) {\n cmd.insertTable(cmd.createNewTable(data));\n } else {\n cmd.updateTable(data, cmd._sourceTable, cmd._selectedTableCells);\n }\n }\n },\n releaseRange: function (range) {\n var cmd = this;\n var doc = cmd.editor.document;\n dom.windowFromDocument(doc).focus();\n Command.fn.releaseRange.call(cmd, range);\n },\n insertTable: function (table) {\n var range = this.range;\n range.insertNode(table);\n range.collapse(true);\n this.editor.selectRange(range);\n this._ensureFocusableAfterTable(table);\n },\n _ensureFocusableAfterTable: function (table) {\n var siblingNodes = $(table).parent().contents();\n var lastSiblingIndex = siblingNodes.length - 1;\n var lastSibling = siblingNodes.get(lastSiblingIndex);\n while (lastSibling.nodeValue !== null && (lastSibling.nodeValue === ' ' || lastSibling.nodeValue === '')) {\n lastSiblingIndex -= 1;\n lastSibling = siblingNodes.get(lastSiblingIndex);\n }\n if (lastSibling === table) {\n dom.insertAfter(dom.createEmptyNode(this.editor.document, 'p'), table);\n }\n },\n updateTable: function (data, table, selectedCells) {\n var cmd = this;\n var tableRows = $(table.rows).toArray();\n var tableProp = data.tableProperties;\n var rows = tableProp.rows;\n var tHead = table.tHead;\n var last = cmd._lastInCollection;\n var lastSelectedRow, cellProp;\n while (selectedCells.length > 1) {\n selectedCells.pop();\n }\n lastSelectedRow = selectedCells.length ? last(selectedCells).parentNode : last(tableRows);\n cmd._deleteTableRows(tableRows, tableRows.length - rows);\n if (tableRows.length < rows) {\n cmd._addRows(lastSelectedRow, rows, tableRows);\n }\n dom.reMapTableColumns(table, COL_INDEX);\n cmd._updateColumns(tableRows, tableProp.columns, selectedCells, lastSelectedRow);\n cmd._updateTableProperties(table, tableProp);\n cellProp = data.cellProperties;\n if (selectedCells[0]) {\n dom.attr(selectedCells[0], { id: cellProp.id || null });\n }\n (cellProp.selectAllCells ? $(tableRows).children() : $(selectedCells)).each(function (i, cell) {\n cmd._updateCellProperties(cell, cellProp);\n });\n cmd._updateCaption(table, tableProp);\n if (tHead) {\n cmd._updateHeadersWithThead(table, data);\n } else {\n cmd._updateHeadersNoThead(table, data);\n }\n cmd._updateHeaderAssociates(table, tableProp);\n dom.clearTableMappings(table, COL_INDEX);\n },\n _isHeadingRow: function (row) {\n return dom.is(row.cells[0], TH) && dom.is(row.parentNode, THEAD);\n },\n _isHeadingCell: function (cell) {\n return dom.is(cell, TH);\n },\n cellsWithHeadersAssociated: function (table) {\n var cells = $(table.rows).children();\n var headingIds = [];\n var checkHeader = function (header) {\n return headingIds.indexOf(header) > -1;\n };\n cells.each(function (c, cell) {\n if (cell.id && dom.is(cell, TH)) {\n headingIds.push(cell.id);\n }\n });\n var associatedCells = cells.filter(function (c, cell) {\n var headersAttr = cell.getAttribute(HEADERS);\n var headersArray;\n if (headersAttr && !dom.is(cell, TH)) {\n headersArray = headersAttr.split(' ');\n if (headersArray && headersArray.length > 0) {\n return headersArray.some(checkHeader);\n }\n }\n return false;\n });\n return !!associatedCells.length;\n },\n _insertCells: function (count, row, index) {\n index = isNaN(index) ? -1 : index;\n for (var i = 0, cell; i < count; i++) {\n cell = row.insertCell(index);\n cell.innerHTML = ' ';\n }\n },\n _deleteTableRows: function (rows, count) {\n for (var i = 0, row, rowParent; i < count; i++) {\n row = rows.pop();\n rowParent = row.parentNode;\n rowParent.removeChild(row);\n if (!rowParent.rows.length) {\n dom.remove(rowParent);\n }\n }\n },\n createNewTable: function (data) {\n var cmd = this;\n var doc = cmd.editor.document;\n var tableProp = data.tableProperties;\n var table = dom.create(doc, TABLE);\n var rowIndex = 0;\n var thead;\n cmd._updateTableProperties(table, tableProp);\n cmd._updateCaption(table, tableProp);\n if (tableProp.headerRows && tableProp.headerRows > 0) {\n thead = table.createTHead();\n cmd._createTableRows(data, thead, rowIndex, true);\n rowIndex += tableProp.headerRows;\n }\n var tbody = table.createTBody();\n cmd._createTableRows(data, tbody, rowIndex, false);\n dom.reMapTableColumns(table, COL_INDEX);\n if (tableProp.cellsWithHeaders === 'ids') {\n dom.associateWithIds(table);\n } else if (tableProp.cellsWithHeaders === 'scope') {\n cmd._addScopes(table, tableProp.headerRows, tableProp.headerColumns);\n }\n dom.clearTableMappings(table, COL_INDEX);\n return table;\n },\n _createTableRows: function (data, container, initialIndex, headerRows) {\n var cmd = this;\n var tableProp = data.tableProperties;\n var cellProp = data.cellProperties;\n var columns = tableProp.columns;\n var rows = headerRows ? tableProp.headerRows : tableProp.rows;\n var cellPropToAll = cellProp.selectAllCells;\n var headerColumns = tableProp.headerColumns;\n for (var r = initialIndex, row; r < rows; r++) {\n row = container.insertRow();\n for (var c = 0, cell; c < columns; c++) {\n if (headerRows || headerColumns > c) {\n cell = document.createElement(TH);\n } else {\n cell = document.createElement(TD);\n }\n row.appendChild(cell);\n cell.innerHTML = ' ';\n if (r === 0 && c === 0 && cellProp.id) {\n cell.id = cellProp.id;\n }\n cmd._updateCellProperties(cell, cellPropToAll || r === 0 && c === 0 ? cellProp : {});\n }\n }\n },\n _addRows: function (lastSelectedRow, rows, tableRows) {\n var cmd = this;\n var rowIndex = $(lastSelectedRow).index();\n var cellsLength = lastSelectedRow.cells.length;\n var newRowsCount = rows - tableRows.length;\n var parent = lastSelectedRow.parentNode;\n var row;\n while (newRowsCount) {\n row = parent.insertRow(rowIndex + 1);\n cmd._insertCells(cellsLength - row.cells.length, row);\n newRowsCount--;\n }\n },\n _updateColumns: function (tableRows, columns, selectedCells, lastSelectedRow) {\n var cmd = this;\n var last = cmd._lastInCollection;\n var firstRowLastCell = last(tableRows[0].cells);\n var numberOfColumns = Number(firstRowLastCell.getAttribute(COL_INDEX)) + firstRowLastCell.colSpan;\n if (numberOfColumns > columns) {\n $(tableRows).each(function (i, row) {\n var lastCurrentCell = last(row.cells);\n var rowColumns = Number(lastCurrentCell.getAttribute(COL_INDEX)) + lastCurrentCell.colSpan;\n while (rowColumns > columns) {\n if (lastCurrentCell.colSpan && lastCurrentCell.colSpan > 1) {\n lastCurrentCell.colSpan -= 1;\n } else {\n row.deleteCell(-1);\n }\n lastCurrentCell = last(row.cells);\n rowColumns = Number(lastCurrentCell.getAttribute(COL_INDEX)) + lastCurrentCell.colSpan;\n }\n });\n }\n if (numberOfColumns < columns) {\n var cellIndex = $(last(selectedCells) || last(lastSelectedRow.cells)).index();\n $(tableRows).each(function (i, row) {\n var lastCurrentCell = last(row.cells);\n cmd._insertCells(columns - Number(lastCurrentCell.getAttribute(COL_INDEX)) - lastCurrentCell.colSpan, row, cellIndex + 1);\n });\n }\n },\n _updateTableProperties: function (table, data) {\n var style = this._getStylesData(data);\n dom.attr(table, {\n cellSpacing: data.cellSpacing || null,\n cellPadding: data.cellPadding || null,\n className: data.className || null,\n id: data.id || null,\n summary: data.summary || null,\n style: style || null\n });\n $(table).addClass('k-table');\n },\n _updateCellProperties: function (cell, data) {\n var style = this._getStylesData(data);\n style.padding = data.cellPadding || null;\n style.margin = data.cellMargin || null;\n dom.attr(cell, {\n style: style || null,\n className: data.className || null\n });\n },\n _updateCaption: function (table, data) {\n if (table.caption && !data.captionContent) {\n table.deleteCaption();\n } else if (data.captionContent) {\n var caption = table.createCaption();\n caption.innerHTML = data.captionContent;\n var alignment = this._getAlignmentData(data.captionAlignment);\n dom.attr(caption, {\n style: {\n textAlign: alignment.textAlign,\n verticalAlign: alignment.verticalAlign\n }\n });\n }\n },\n _updateHeadersNoThead: function (table, data) {\n var cmd = this;\n var tableProp = data.tableProperties;\n var rows = table.rows;\n var row, cells, cell, i, j;\n for (i = 0; i < rows.length; i++) {\n row = rows[i];\n cells = row.cells;\n for (j = 0; j < cells.length; j++) {\n cell = cells[j];\n if (!cmd._isHeadingCell(cell) && (i < tableProp.headerRows || tableProp.headerColumns > cell.getAttribute(COL_INDEX))) {\n dom.changeTag(cell, TH, false);\n } else if (cmd._isHeadingCell(cell) && i >= tableProp.headerRows && tableProp.headerColumns <= cell.getAttribute(COL_INDEX)) {\n dom.changeTag(cell, TD, false);\n }\n }\n }\n },\n _updateHeadersWithThead: function (table, data) {\n var cmd = this;\n var tableProp = data.tableProperties;\n var thead = table.tHead;\n var rowIndex = 0;\n var tbody = table.tBodies[0];\n var row, cell, i;\n if (!tbody) {\n tbody = table.createTBody();\n }\n if (tableProp.headerRows && tableProp.headerRows > 0) {\n if (!thead) {\n thead = table.createTHead();\n }\n while (thead.rows.length < tableProp.headerRows) {\n thead.appendChild(tbody.rows[0]);\n }\n while (thead.rows.length > tableProp.headerRows) {\n tbody.appendChild(thead.rows[0]);\n }\n cmd._swapToHeaderCells(thead);\n } else if (thead) {\n while (thead.rows.length > 0) {\n tbody.appendChild(thead.rows[thead.rows.length - 1]);\n }\n table.deleteTHead();\n }\n while (tbody.rows.length > rowIndex) {\n row = tbody.rows[rowIndex];\n for (i = 0; i < row.cells.length; i++) {\n cell = row.cells[i];\n if (cmd._isHeadingCell(cell) && tableProp.headerColumns <= cell.getAttribute(COL_INDEX)) {\n dom.changeTag(cell, TD, false);\n } else if (!cmd._isHeadingCell(cell) && tableProp.headerColumns > cell.getAttribute(COL_INDEX)) {\n dom.changeTag(cell, TH, false);\n }\n }\n rowIndex += 1;\n }\n },\n _updateHeaderAssociates: function (table, tableProp) {\n var cmd = this;\n if (tableProp.cellsWithHeaders === 'ids') {\n if (!cmd.cellsWithHeadersAssociated(table)) {\n cmd._removeScopes(table);\n }\n dom.associateWithIds(table);\n } else if (tableProp.cellsWithHeaders === 'scope') {\n if (cmd.cellsWithHeadersAssociated(table)) {\n cmd._removeAssociates(table);\n }\n cmd._addScopes(table, tableProp.headerRows, tableProp.headerColumns);\n } else {\n if (cmd.cellsWithHeadersAssociated(table)) {\n cmd._removeAssociates(table);\n } else {\n cmd._removeScopes(table);\n }\n }\n },\n _addScopes: function (table, headerRows, headerCols) {\n var rows = table.rows;\n var i, j, row, cell;\n for (i = 0; i < rows.length; i++) {\n row = rows[i];\n for (j = 0; j < row.cells.length; j++) {\n cell = row.cells[j];\n if (i < headerRows) {\n cell.setAttribute(SCOPE, COL);\n } else if (cell.getAttribute(COL_INDEX) < headerCols) {\n cell.setAttribute(SCOPE, ROW);\n }\n }\n }\n },\n _removeScopes: function (table) {\n $(table).find(TH).removeAttr(SCOPE);\n $(table).find(COL).remove();\n $(table).find(COLGROUP).remove();\n },\n _removeAssociates: function (table) {\n $(table).find('th, td').removeAttr('id headers');\n },\n _swapToHeaderCells: function (thead) {\n var tds = $(thead).find('td');\n var swapCell = function (index, cell) {\n dom.changeTag(cell, TH, false);\n };\n tds.each(swapCell);\n },\n _getStylesData: function (data) {\n var alignment = this._getAlignmentData(data.alignment);\n var whiteSpace = 'wrapText' in data ? data.wrapText ? '' : 'nowrap' : null;\n return {\n width: data.width ? data.width + data.widthUnit : null,\n height: data.height ? data.height + data.heightUnit : null,\n textAlign: alignment.textAlign,\n verticalAlign: alignment.verticalAlign,\n backgroundColor: data.bgColor || '',\n borderWidth: data.borderWidth,\n borderStyle: data.borderStyle,\n borderColor: data.borderColor || '',\n borderCollapse: data.collapseBorders ? 'collapse' : null,\n whiteSpace: whiteSpace\n };\n },\n _getAlignmentData: function (alignment) {\n var textAlign = '';\n var verticalAlign = textAlign;\n if (alignment) {\n if (alignment.indexOf(' ') != -1) {\n var align = alignment.split(' ');\n textAlign = align[0];\n verticalAlign = align[1];\n } else {\n textAlign = alignment;\n }\n }\n return {\n textAlign: textAlign,\n verticalAlign: verticalAlign\n };\n },\n parseTable: function (table, selectedCells) {\n if (!table) {\n return {\n tableProperties: {},\n selectedCells: []\n };\n }\n var cmd = this;\n var tStyle = table.style;\n var rows = table.rows;\n var caption = table.caption;\n var captionClone = $(caption ? caption.cloneNode(true) : undefined);\n captionClone.find('.k-marker').remove();\n var cssClass = table.className;\n cssClass = cssClass.replace(/^k-table\\s|\\sk-table$/, '');\n cssClass = cssClass.replace(/\\sk-table\\s/, ' ');\n cssClass = cssClass.replace(/^k-table$/, '');\n var tableAlignment = cmd._getAlignment(table, true);\n var captionAlignment = caption ? cmd._getAlignment(caption) : undefined;\n var numberOfHeaderRows = dom._getNumberOfHeaderRows(table);\n var cellsWithHeaders;\n if (cmd.cellsWithHeadersAssociated(table)) {\n cellsWithHeaders = 'ids';\n } else if ($(table).find('th[scope]').length > 0) {\n cellsWithHeaders = 'scope';\n } else {\n cellsWithHeaders = 'none';\n }\n dom.reMapTableColumns(table, COL_INDEX);\n var numberOfColumns = dom._getNumberOfColumns(table);\n var numberOfHeaderColumns = dom._getNumberOfHeaderColumns(table, numberOfHeaderRows);\n dom.clearTableMappings(table, COL_INDEX);\n var tableJson = {\n tableProperties: {\n width: tStyle.width || table.width ? parseFloat(tStyle.width || table.width) : null,\n height: tStyle.height || table.height ? parseFloat(tStyle.height || table.height) : null,\n columns: numberOfColumns,\n rows: rows.length,\n widthUnit: cmd._getUnit(tStyle.width),\n heightUnit: cmd._getUnit(tStyle.height),\n cellSpacing: table.cellSpacing,\n cellPadding: table.cellPadding,\n alignment: tableAlignment.textAlign,\n bgColor: tStyle.backgroundColor || table.bgColor,\n className: cssClass,\n id: table.id,\n borderWidth: tStyle.borderWidth || table.border,\n borderColor: tStyle.borderColor,\n borderStyle: tStyle.borderStyle || '',\n collapseBorders: !!tStyle.borderCollapse,\n summary: table.summary,\n captionContent: caption ? captionClone.html() : '',\n captionAlignment: caption && captionAlignment.textAlign ? captionAlignment.textAlign + ' ' + captionAlignment.verticalAlign : '',\n headerRows: numberOfHeaderRows,\n headerColumns: numberOfHeaderColumns,\n cellsWithHeaders: cellsWithHeaders\n },\n selectedCells: []\n };\n tableJson.rows = cmd.parseTableRows(rows, selectedCells, tableJson);\n return tableJson;\n },\n parseTableRows: function (rows, selectedCells, tableJson) {\n var cmd = this;\n var data = [], row, rowData, cells, cell, cellData;\n for (var i = 0; i < rows.length; i++) {\n row = rows[i];\n rowData = { cells: [] };\n cells = row.cells;\n data.push(rowData);\n for (var j = 0; j < cells.length; j++) {\n cell = cells[j];\n cellData = cmd.parseCell(cell);\n if ($.inArray(cell, selectedCells) != -1) {\n tableJson.selectedCells.push(cellData);\n }\n rowData.cells.push(cellData);\n }\n }\n return data;\n },\n parseCell: function (cell) {\n var cmd = this;\n var cStyle = cell.style;\n var alignment = cmd._getAlignment(cell);\n alignment = alignment.textAlign ? alignment.textAlign + ' ' + alignment.verticalAlign : '';\n var data = {\n width: cStyle.width || cell.width ? parseFloat(cStyle.width || cell.width) : null,\n height: cStyle.height || cell.height ? parseFloat(cStyle.height || cell.height) : null,\n widthUnit: cmd._getUnit(cStyle.width),\n heightUnit: cmd._getUnit(cStyle.height),\n cellMargin: cStyle.margin,\n cellPadding: cStyle.padding,\n alignment: alignment,\n bgColor: cStyle.backgroundColor || cell.bgColor,\n className: cell.className,\n id: cell.id,\n borderWidth: cStyle.borderWidth || cell.border,\n borderColor: cStyle.borderColor,\n borderStyle: cStyle.borderStyle,\n wrapText: cStyle.whiteSpace != 'nowrap'\n };\n return data;\n },\n _getAlignment: function (element, horizontalOnly) {\n var style = element.style;\n var hAlign = style.textAlign || element.align || '';\n if (horizontalOnly) {\n return { textAlign: hAlign };\n }\n var vAlign = style.verticalAlign || element.vAlign || '';\n if (hAlign && vAlign) {\n return {\n textAlign: hAlign,\n verticalAlign: vAlign\n };\n }\n if (!hAlign && vAlign) {\n return {\n textAlign: 'left',\n verticalAlign: vAlign\n };\n }\n if (hAlign && !vAlign) {\n return {\n textAlign: hAlign,\n verticalAlign: 'top'\n };\n }\n return {\n textAlign: '',\n verticalAlign: ''\n };\n },\n _getUnit: function (value) {\n var unit = (value || '').match(reUnit);\n return unit ? unit[0] : 'px';\n },\n _selectedTable: function (range) {\n var nodes = dom.filterBy(RangeUtils.nodes(range), dom.htmlIndentSpace, true);\n return tableFormatFinder.findSuitable(nodes)[0];\n },\n _selectedCells: function (range) {\n var nodes = dom.filterBy(RangeUtils.nodes(range), dom.htmlIndentSpace, true);\n return cellsFormatFinder.findSuitable(nodes);\n },\n _lastInCollection: function (collection) {\n return collection[collection.length - 1];\n }\n });\n var TableWizardTool = Editor.Tool.extend({\n command: function (options) {\n options.insertNewTable = this.options.insertNewTable;\n return new TableWizardCommand(options);\n }\n });\n var TableWizardEditTool = TableWizardTool.extend({\n update: function (ui, nodes) {\n var isFormatted = !tableFormatFinder.isFormatted(nodes);\n if (isFormatted === true) {\n ui.parent().addClass('k-hidden k-state-disabled');\n ui.attr('disabled', 'disabled');\n ui.addClass('k-state-disabled');\n } else {\n ui.parent().removeClass('k-hidden k-state-disabled');\n ui.prop('disabled', false);\n ui.removeClass('k-state-disabled');\n }\n }\n });\n kendo.ui.editor.TableWizardTool = TableWizardTool;\n kendo.ui.editor.TableWizardCommand = TableWizardCommand;\n registerTool('tableWizard', new TableWizardEditTool({\n command: TableWizardCommand,\n insertNewTable: false,\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Table Wizard'\n })\n }));\n }(window.kendo.jQuery));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/table-wizard/table-wizard-dialog', [\n 'editor/table-wizard/table-wizard-command',\n 'kendo.tabstrip'\n ], f);\n}(function () {\n (function ($, undefined) {\n var kendo = window.kendo, numericTextBoxSettings = {\n format: '0',\n min: 0\n }, units = [\n 'px',\n 'em'\n ], borderStyles = [\n 'solid',\n 'dotted',\n 'dashed',\n 'double',\n 'groove',\n 'ridge',\n 'inset',\n 'outset',\n 'initial',\n 'inherit',\n 'none',\n 'hidden'\n ];\n var DEFAULT_NUMBER_OF_COLS_AND_ROWS = 4;\n var tableAlignmentDropDownSettings = {\n dataSource: [\n {\n className: 'k-icon k-i-table-align-middle-left',\n value: 'left'\n },\n {\n className: 'k-icon k-i-table-align-middle-center',\n value: 'center'\n },\n {\n className: 'k-icon k-i-table-align-middle-right',\n value: 'right'\n },\n {\n className: 'k-icon k-i-align-remove',\n value: ''\n }\n ],\n dataTextField: 'className',\n dataValueField: 'value',\n template: '',\n valueTemplate: ''\n };\n var cellAlignmentDropDownSettings = {\n dataSource: [\n {\n className: 'k-icon k-i-table-align-top-left',\n value: 'left top'\n },\n {\n className: 'k-icon k-i-table-align-top-center',\n value: 'center top'\n },\n {\n className: 'k-icon k-i-table-align-top-right',\n value: 'right top'\n },\n {\n className: 'k-icon k-i-table-align-middle-left',\n value: 'left middle'\n },\n {\n className: 'k-icon k-i-table-align-middle-center',\n value: 'center middle'\n },\n {\n className: 'k-icon k-i-table-align-middle-right',\n value: 'right middle'\n },\n {\n className: 'k-icon k-i-table-align-bottom-left',\n value: 'left bottom'\n },\n {\n className: 'k-icon k-i-table-align-bottom-center',\n value: 'center bottom'\n },\n {\n className: 'k-icon k-i-table-align-bottom-right',\n value: 'right bottom'\n },\n {\n className: 'k-icon k-i-align-remove',\n value: ''\n }\n ],\n dataTextField: 'className',\n dataValueField: 'value',\n template: '',\n valueTemplate: ''\n };\n var accessibilityAlignmentDropDownSettings = {\n dataSource: [\n {\n className: 'k-icon k-i-table-align-top-left',\n value: 'left top'\n },\n {\n className: 'k-icon k-i-table-align-top-center',\n value: 'center top'\n },\n {\n className: 'k-icon k-i-table-align-top-right',\n value: 'right top'\n },\n {\n className: 'k-icon k-i-table-align-bottom-left',\n value: 'left bottom'\n },\n {\n className: 'k-icon k-i-table-align-bottom-center',\n value: 'center bottom'\n },\n {\n className: 'k-icon k-i-table-align-bottom-right',\n value: 'right bottom'\n },\n {\n className: 'k-icon k-i-align-remove',\n value: ''\n }\n ],\n dataTextField: 'className',\n dataValueField: 'value',\n template: '',\n valueTemplate: ''\n };\n var dialogTemplate = '
    ' + '
    ' + '
    ' + '
      ' + '
    • #= messages.tableTab #
    • ' + '
    • #= messages.cellTab #
    • ' + '
    • #= messages.accessibilityTab #
    • ' + '
    ' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
     
    ' + '
    ' + '' + '' + '
    ' + '
    ' + '
    ' + '
    ' + '' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
     
    ' + '
    ' + '' + '' + '
    ' + '
    ' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '
    ' + '
    ' + '' + '' + '
    ' + '
    ' + '
    ';\n var TableWizardDialog = kendo.Class.extend({\n init: function (options) {\n this.options = options;\n },\n open: function () {\n var that = this, options = that.options, dialogOptions = options.dialogOptions, tableData = options.table, dialog, messages = options.messages, isIE = kendo.support.browser.msie;\n function close(e) {\n e.preventDefault();\n that.destroy();\n dialog.destroy();\n }\n function okHandler(e) {\n that.collectDialogValues(tableData);\n close(e);\n if (that.change) {\n that.change();\n }\n options.closeCallback(tableData);\n }\n function closeHandler(e) {\n close(e);\n options.closeCallback();\n }\n dialogOptions.close = closeHandler;\n dialogOptions.title = messages.tableWizard;\n dialogOptions.visible = options.visible;\n dialog = $(that._dialogTemplate(messages)).appendTo(document.body).kendoWindow(dialogOptions).closest('.k-window').toggleClass('k-rtl', options.isRtl).end().find('.k-dialog-ok').on('click', okHandler).end().find('.k-dialog-close').on('click', closeHandler).end().data('kendoWindow');\n var element = dialog.element;\n that._initTabStripComponent(element);\n that._initTableViewComponents(element, tableData);\n that._initCellViewComponents(element, tableData);\n that._initAccessibilityViewComponents(element, tableData);\n dialog.center();\n dialog.open();\n if (isIE) {\n var dialogHeight = element.closest('.k-window').height();\n element.css('max-height', dialogHeight);\n }\n },\n _initTabStripComponent: function (element) {\n var components = this.components = {};\n components.tabStrip = element.find('#k-table-wizard-tabs').kendoTabStrip({ animation: false }).data('kendoTabStrip');\n },\n collectDialogValues: function () {\n var that = this;\n var data = that.options.table;\n that._collectTableViewValues(data);\n that._collectCellViewValues(data);\n that._collectAccessibilityViewValues(data);\n },\n _collectTableViewValues: function (tableData) {\n var tableView = this.components.tableView;\n var tableProperties = tableData.tableProperties;\n tableProperties.width = tableView.width.value();\n tableProperties.widthUnit = tableView.widthUnit.value();\n tableProperties.height = tableView.height.value();\n tableProperties.columns = tableView.columns.value();\n tableProperties.rows = tableView.rows.value();\n tableProperties.heightUnit = tableView.heightUnit.value();\n tableProperties.cellSpacing = tableView.cellSpacing.value();\n tableProperties.cellPadding = tableView.cellPadding.value();\n tableProperties.alignment = tableView.alignment.value();\n tableProperties.bgColor = tableView.bgColor.value();\n tableProperties.className = tableView.className.value;\n tableProperties.id = tableView.id.value;\n tableProperties.borderWidth = tableView.borderWidth.value();\n tableProperties.borderColor = tableView.borderColor.value();\n tableProperties.borderStyle = tableView.borderStyle.value();\n tableProperties.collapseBorders = tableView.collapseBorders.checked;\n },\n _collectCellViewValues: function (table) {\n var cellData = table.cellProperties = {};\n var cellView = this.components.cellView;\n cellData.selectAllCells = cellView.selectAllCells.checked;\n cellData.width = cellView.width.value();\n cellData.widthUnit = cellView.widthUnit.value();\n cellData.height = cellView.height.value();\n cellData.heightUnit = cellView.heightUnit.value();\n cellData.cellMargin = cellView.cellMargin.value();\n cellData.cellPadding = cellView.cellPadding.value();\n cellData.alignment = cellView.alignment.value();\n cellData.bgColor = cellView.bgColor.value();\n cellData.className = cellView.className.value;\n cellData.id = cellView.id.value;\n cellData.borderWidth = cellView.borderWidth.value();\n cellData.borderColor = cellView.borderColor.value();\n cellData.borderStyle = cellView.borderStyle.value();\n cellData.wrapText = cellView.wrapText.checked;\n if (!cellData.width) {\n cellData.selectAllCells = true;\n cellData.width = 100 / table.tableProperties.columns;\n cellData.widthUnit = '%';\n }\n },\n _collectAccessibilityViewValues: function (table) {\n var tableProperties = table.tableProperties;\n var accessibilityView = this.components.accessibilityView;\n tableProperties.captionContent = accessibilityView.captionContent.value;\n tableProperties.captionAlignment = accessibilityView.captionAlignment.value();\n tableProperties.summary = accessibilityView.summary.value;\n tableProperties.cellsWithHeaders = accessibilityView.cellsWithHeaders.value();\n tableProperties.headerRows = accessibilityView.headerRows.value();\n tableProperties.headerColumns = accessibilityView.headerColumns.value();\n },\n _addUnit: function (units, value) {\n if (value && $.inArray(value, units) == -1) {\n units.push(value);\n }\n },\n _initTableViewComponents: function (element, table) {\n var that = this;\n var components = that.components;\n var tableView = components.tableView = {};\n var tableProperties = table.tableProperties = table.tableProperties || {};\n tableProperties.borderStyle = tableProperties.borderStyle || '';\n var onColumnsNumberChange = function (args) {\n var accessibilityView = that.components.accessibilityView;\n var headerColumnsNumeric = accessibilityView.headerColumns;\n var currentNumberOfColumnsHeaders = headerColumnsNumeric.value();\n var numberOfColumns = args.sender.value();\n if (numberOfColumns < currentNumberOfColumnsHeaders) {\n headerColumnsNumeric.value(numberOfColumns);\n }\n headerColumnsNumeric.max(numberOfColumns);\n };\n var onRowsNumberChange = function (args) {\n var accessibilityView = that.components.accessibilityView;\n var headerRowsNumeric = accessibilityView.headerRows;\n var currentNumberOfRowHeaders = headerRowsNumeric.value();\n var numberOfRows = args.sender.value();\n if (numberOfRows < currentNumberOfRowHeaders) {\n headerRowsNumeric.value(numberOfRows);\n }\n headerRowsNumeric.max(numberOfRows);\n };\n that._addUnit(units, tableProperties.widthUnit);\n that._addUnit(units, tableProperties.heightUnit);\n that._initNumericTextbox(element.find('#k-editor-table-width'), 'width', tableProperties, tableView);\n that._initNumericTextbox(element.find('#k-editor-table-height'), 'height', tableProperties, tableView);\n that._initNumericTextbox(element.find('#k-editor-table-columns'), 'columns', tableProperties, tableView, {\n min: 1,\n value: DEFAULT_NUMBER_OF_COLS_AND_ROWS,\n change: onColumnsNumberChange\n });\n that._initNumericTextbox(element.find('#k-editor-table-rows'), 'rows', tableProperties, tableView, {\n min: 1,\n value: DEFAULT_NUMBER_OF_COLS_AND_ROWS,\n change: onRowsNumberChange\n });\n that._initDropDownList(element.find('#k-editor-table-width-type'), 'widthUnit', tableProperties, tableView, units);\n that._initDropDownList(element.find('#k-editor-table-height-type'), 'heightUnit', tableProperties, tableView, units);\n that._initNumericTextbox(element.find('#k-editor-table-cell-spacing'), 'cellSpacing', tableProperties, tableView);\n that._initNumericTextbox(element.find('#k-editor-table-cell-padding'), 'cellPadding', tableProperties, tableView);\n that._initTableAlignmentDropDown(element.find('#k-editor-table-alignment'), tableProperties);\n that._initColorPicker(element.find('#k-editor-table-bg'), 'bgColor', tableProperties, tableView);\n that._initInput(element.find('#k-editor-css-class'), 'className', tableProperties, tableView);\n that._initInput(element.find('#k-editor-id'), 'id', tableProperties, tableView);\n that._initNumericTextbox(element.find('#k-editor-border-width'), 'borderWidth', tableProperties, tableView);\n that._initColorPicker(element.find('#k-editor-border-color'), 'borderColor', tableProperties, tableView);\n that._initBorderStyleDropDown(element.find('#k-editor-border-style'), 'borderStyle', tableProperties, tableView, borderStyles);\n that._initCheckbox(element.find('#k-editor-collapse-borders'), 'collapseBorders', tableProperties, tableView);\n },\n _initCellViewComponents: function (element, table) {\n var components = this.components;\n var cellView = components.cellView = {};\n table.selectedCells = table.selectedCells = table.selectedCells || [];\n var cellProperties = table.selectedCells[0] || {\n borderStyle: '',\n wrapText: true\n };\n this._addUnit(units, cellProperties.widthUnit);\n this._addUnit(units, cellProperties.heightUnit);\n this._initCheckbox(element.find('#k-editor-selectAllCells'), 'selectAllCells', table.tableProperties, cellView);\n this._initNumericTextbox(element.find('#k-editor-cell-width'), 'width', cellProperties, cellView);\n this._initNumericTextbox(element.find('#k-editor-cell-height'), 'height', cellProperties, cellView);\n this._initDropDownList(element.find('#k-editor-cell-width-type'), 'widthUnit', cellProperties, cellView, units);\n this._initDropDownList(element.find('#k-editor-cell-height-type'), 'heightUnit', cellProperties, cellView, units);\n this._initNumericTextbox(element.find('#k-editor-table-cell-margin'), 'cellMargin', cellProperties, cellView);\n this._initNumericTextbox(element.find('#k-editor-table-cells-padding'), 'cellPadding', cellProperties, cellView);\n this._initCellAlignmentDropDown(element.find('#k-editor-cell-alignment'), cellProperties);\n this._initColorPicker(element.find('#k-editor-cell-bg'), 'bgColor', cellProperties, cellView);\n this._initInput(element.find('#k-editor-cell-css-class'), 'className', cellProperties, cellView);\n this._initInput(element.find('#k-editor-cell-id'), 'id', cellProperties, cellView);\n this._initNumericTextbox(element.find('#k-editor-cell-border-width'), 'borderWidth', cellProperties, cellView);\n this._initColorPicker(element.find('#k-editor-cell-border-color'), 'borderColor', cellProperties, cellView);\n this._initBorderStyleDropDown(element.find('#k-editor-cell-border-style'), 'borderStyle', cellProperties, cellView, borderStyles);\n this._initCheckbox(element.find('#k-editor-wrap-text'), 'wrapText', cellProperties, cellView);\n },\n _initAccessibilityViewComponents: function (element, table) {\n var components = this.components;\n var accessibilityView = components.accessibilityView = {};\n var tableProperties = table.tableProperties;\n this._initInput(element.find('#k-editor-table-caption'), 'captionContent', tableProperties, accessibilityView);\n this._initAccessibilityAlignmentDropDown(element.find('#k-editor-accessibility-alignment'), tableProperties);\n this._initInput(element.find('#k-editor-accessibility-summary'), 'summary', tableProperties, accessibilityView);\n this._initAssociationDropDown(element.find('#k-editor-cells-headers'), 'cellsWithHeaders', { valuePrimitive: true }, tableProperties, accessibilityView);\n this._initNumericTextbox(element.find('#k-editor-table-header-rows'), 'headerRows', tableProperties, accessibilityView, { max: tableProperties.rows || DEFAULT_NUMBER_OF_COLS_AND_ROWS });\n this._initNumericTextbox(element.find('#k-editor-table-header-columns'), 'headerColumns', tableProperties, accessibilityView, { max: tableProperties.columns || DEFAULT_NUMBER_OF_COLS_AND_ROWS });\n },\n _initNumericTextbox: function (element, property, data, storage, settings) {\n var component = storage[property] = element.kendoNumericTextBox(settings ? $.extend({}, numericTextBoxSettings, settings) : numericTextBoxSettings).data('kendoNumericTextBox');\n if (property in data) {\n component.value(parseInt(data[property], 10));\n }\n },\n _initDropDownList: function (element, property, data, storage, dataSource) {\n var component = storage[property] = element.kendoDropDownList({ dataSource: dataSource }).data('kendoDropDownList');\n this._setComponentValue(component, data, property);\n },\n _initBorderStyleDropDown: function (element, property, data, storage, dataSource) {\n var component = storage[property] = element.kendoDropDownList({\n dataSource: dataSource,\n optionLabel: this.options.messages.borderNone\n }).data('kendoDropDownList');\n this._setComponentValue(component, data, property);\n },\n _initTableAlignmentDropDown: function (element, data) {\n var messages = this.options.messages;\n var tableView = this.components.tableView;\n var dataSource = tableAlignmentDropDownSettings.dataSource;\n dataSource[0].tooltip = messages.alignLeft;\n dataSource[1].tooltip = messages.alignCenter;\n dataSource[2].tooltip = messages.alignRight;\n dataSource[3].tooltip = messages.alignRemove;\n this._initAlignmentDropDown(element, tableAlignmentDropDownSettings, 'alignment', data, tableView);\n },\n _initCellAlignmentDropDown: function (element, data) {\n var messages = this.options.messages;\n var cellView = this.components.cellView;\n var dataSource = cellAlignmentDropDownSettings.dataSource;\n dataSource[0].tooltip = messages.alignLeftTop;\n dataSource[1].tooltip = messages.alignCenterTop;\n dataSource[2].tooltip = messages.alignRightTop;\n dataSource[3].tooltip = messages.alignLeftMiddle;\n dataSource[4].tooltip = messages.alignCenterMiddle;\n dataSource[5].tooltip = messages.alignRightMiddle;\n dataSource[6].tooltip = messages.alignLeftBottom;\n dataSource[7].tooltip = messages.alignCenterBottom;\n dataSource[8].tooltip = messages.alignRightBottom;\n dataSource[9].tooltip = messages.alignRemove;\n this._initAlignmentDropDown(element, cellAlignmentDropDownSettings, 'alignment', data, cellView);\n },\n _initAccessibilityAlignmentDropDown: function (element, data) {\n var messages = this.options.messages;\n var accessibilityView = this.components.accessibilityView;\n var dataSource = accessibilityAlignmentDropDownSettings.dataSource;\n dataSource[0].tooltip = messages.alignLeftTop;\n dataSource[1].tooltip = messages.alignCenterTop;\n dataSource[2].tooltip = messages.alignRightTop;\n dataSource[3].tooltip = messages.alignLeftBottom;\n dataSource[4].tooltip = messages.alignCenterBottom;\n dataSource[5].tooltip = messages.alignRightBottom;\n dataSource[6].tooltip = messages.alignRemove;\n this._initAlignmentDropDown(element, accessibilityAlignmentDropDownSettings, 'captionAlignment', data, accessibilityView);\n },\n _initAlignmentDropDown: function (element, settings, name, data, storage) {\n var component = storage[name] = element.kendoDropDownList(settings).data('kendoDropDownList');\n component.list.addClass('k-align').css('width', '110px');\n this._setComponentValue(component, data, name);\n },\n _initAssociationDropDown: function (element, name, settings, data, storage) {\n var component = storage[name] = element.kendoDropDownList(settings).data('kendoDropDownList');\n this._setComponentValue(component, data, name);\n },\n _setComponentValue: function (component, data, property) {\n if (property in data) {\n component.value(data[property]);\n }\n },\n _initColorPicker: function (element, property, data, storage) {\n var component = storage[property] = element.kendoColorPicker({\n buttons: false,\n clearButton: true\n }).data('kendoColorPicker');\n if (data[property]) {\n component.value(data[property]);\n }\n },\n _initInput: function (element, property, data, storage) {\n var component = storage[property] = element.get(0);\n if (property in data) {\n component.value = data[property];\n }\n },\n _initCheckbox: function (element, property, data, storage) {\n var component = storage[property] = element.get(0);\n if (property in data) {\n component.checked = data[property];\n }\n },\n destroy: function () {\n this._destroyComponents(this.components.tableView);\n this._destroyComponents(this.components.cellView);\n this._destroyComponents(this.components.accessibilityView);\n this._destroyComponents(this.components);\n delete this.components;\n },\n _destroyComponents: function (components) {\n for (var widget in components) {\n if (components[widget].destroy) {\n components[widget].destroy();\n }\n delete components[widget];\n }\n },\n _dialogTemplate: function (messages) {\n return kendo.template(dialogTemplate)({ messages: messages });\n }\n });\n kendo.ui.editor.TableWizardDialog = TableWizardDialog;\n }(window.kendo.jQuery));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('kendo.editor', [\n 'kendo.combobox',\n 'kendo.dropdownlist',\n 'kendo.resizable',\n 'kendo.window',\n 'kendo.colorpicker',\n 'kendo.imagebrowser',\n 'kendo.numerictextbox',\n 'util/undoredostack',\n 'editor/main',\n 'editor/dom',\n 'editor/serializer',\n 'editor/range',\n 'editor/command',\n 'editor/components',\n 'editor/toolbar',\n 'editor/immutables',\n 'editor/plugins/viewhtml',\n 'editor/plugins/link',\n 'editor/plugins/lists',\n 'editor/plugins/formatting',\n 'editor/plugins/image',\n 'editor/plugins/import',\n 'editor/plugins/insert',\n 'editor/plugins/export',\n 'editor/plugins/indent',\n 'editor/plugins/linebreak',\n 'editor/plugins/format',\n 'editor/plugins/inlineformat',\n 'editor/plugins/formatblock',\n 'editor/plugins/file',\n 'editor/plugins/tables',\n 'editor/plugins/clipboard',\n 'editor/plugins/keyboard',\n 'editor/plugins/exportpdf',\n 'editor/plugins/print',\n 'editor/plugins/formatpainter',\n 'editor/resizing/column-resizing',\n 'editor/resizing/row-resizing',\n 'editor/resizing/element-resizing',\n 'editor/resizing/element-resize-handle',\n 'editor/table-wizard/table-wizard-command',\n 'editor/table-wizard/table-wizard-dialog'\n ], f);\n}(function () {\n var __meta__ = {\n id: 'editor',\n name: 'Editor',\n category: 'web',\n description: 'Rich text editor component',\n depends: [\n 'combobox',\n 'dropdownlist',\n 'window',\n 'colorpicker'\n ],\n features: [\n {\n id: 'editor-imagebrowser',\n name: 'Image Browser',\n description: 'Support for uploading and inserting images',\n depends: ['imagebrowser']\n },\n {\n id: 'editor-resizable',\n name: 'Resize handle',\n description: 'Support for resizing the content area via a resize handle',\n depends: ['resizable']\n },\n {\n id: 'editor-tablewizard',\n name: 'Table wizard dialog',\n description: 'Support for table properties configuration',\n depends: [\n 'tabstrip',\n 'button',\n 'numerictextbox'\n ]\n },\n {\n id: 'editor-pdf-export',\n name: 'PDF export',\n description: 'Export Editor content as PDF',\n depends: [\n 'pdf',\n 'drawing'\n ]\n }\n ]\n };\n return window.kendo;\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));"]}