{"version":3,"sources":["webpack:///./node_modules/relation-graph/dist/relation-graph.min.js","webpack:///./src/assets/ksmb.png","webpack:///./src/assets/kq.png","webpack:///./src/components/AfterClassSource.vue?5a66","webpack:///./src/assets/gj.png","webpack:///./src/components/LessonDesignAction.vue?656b","webpack:///src/components/LessonDesignAction.vue","webpack:///./src/components/LessonDesignAction.vue?eff9","webpack:///./src/components/LessonDesignAction.vue","webpack:///./src/components/AfterClassSource.vue?0cf1","webpack:///src/components/AfterClassSource.vue","webpack:///./src/components/AfterClassSource.vue?5b3f","webpack:///./src/components/AfterClassSource.vue","webpack:///./src/components/IdeaMap.vue?4a3d","webpack:///src/components/IdeaMap.vue","webpack:///./src/components/IdeaMap.vue?63ae","webpack:///./src/components/IdeaMap.vue","webpack:///./src/assets/ideamap.png","webpack:///./node_modules/screenfull/dist/screenfull.js","webpack:///./src/components/LessonDesignAction.vue?7b69","webpack:///./node_modules/sortablejs/modular/sortable.esm.js","webpack:///./src/assets/after-flag.png","webpack:///./node_modules/vuedraggable/dist/vuedraggable.umd.js","webpack:///./node_modules/html2canvas/dist/html2canvas.js","webpack:///./src/components/IdeaMap.vue?46ec","webpack:///./src/assets/big-add.png","webpack:///./src/assets/add.png","webpack:///./src/assets/kz.png","webpack:///./src/assets/bssl.png","webpack:///./src/components/FileSmall.vue?0f01","webpack:///./src/assets/kh.png","webpack:///./src/assets/delete.png","webpack:///./src/components/FileSmall.vue?a8a1","webpack:///src/components/FileSmall.vue","webpack:///./src/components/FileSmall.vue?03aa","webpack:///./src/components/FileSmall.vue"],"names":["root","factory","module","exports","self","__WEBPACK_EXTERNAL_MODULE_9__","__WEBPACK_EXTERNAL_MODULE_10__","__WEBPACK_EXTERNAL_MODULE_11__","modules","installedModules","__webpack_require__","moduleId","i","l","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","cssWithMappingToString","item","useSourceMap","content","cssMapping","btoa","sourceMapping","toComment","sourceURLs","sources","map","source","sourceRoot","concat","join","sourceMap","base64","unescape","encodeURIComponent","JSON","stringify","data","list","toString","this","mediaQuery","alreadyImportedModules","length","id","push","hasDocument","document","DEBUG","Error","listToStyles","stylesInDom","head","getElementsByTagName","singletonElement","singletonCounter","isProduction","noop","options","ssrIdKey","isOldIE","navigator","test","userAgent","toLowerCase","addStylesToDom","styles","domStyle","refs","j","parts","addStyle","createStyleElement","styleElement","createElement","type","appendChild","obj","update","remove","querySelector","parentNode","removeChild","styleIndex","applyToSingletonTag","bind","applyToTag","newObj","css","media","parentId","_isProduction","_options","newList","mayRemove","replaceText","textStore","index","replacement","filter","Boolean","styleSheet","cssText","cssNode","createTextNode","childNodes","insertBefore","setAttribute","ssrId","firstChild","rawScriptExports","compiledTemplate","functionalTemplate","injectStyles","scopeId","moduleIdentifier","esModule","scriptExports","default","hook","render","staticRenderFns","_compiled","functional","_scopeId","context","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","existing","beforeCreate","_injectStyles","h","__webpack_exports__","value","external___root___Vue___commonjs___vue___commonjs2___vue___amd___vue__","external___root___Vue___commonjs___vue___commonjs2___vue___amd___vue___default","external___root___screenfull___commonjs___screenfull___commonjs2___screenfull___amd___screenfull__","external___root___screenfull___commonjs___screenfull___commonjs2___screenfull___amd___screenfull___default","external___root___html2canvas___commonjs___html2canvas___commonjs2___html2canvas___amd___html2canvas__","external___root___html2canvas___commonjs___html2canvas___commonjs2___html2canvas___amd___html2canvas___default","STAITC_MAP_ANGLE","SeeksGraphMath","getRectPoint","x1","y1","x2","y2","n1w","n1h","n2w","n2h","fx","fy","tx","ty","_ar_x","_ar_y","x","y","__tan","Math","abs","rectAngle","__w","__h","getRectPointBasic","__tanA","_case","getRectJoinPoint","_from_c_x","_from_c_y","_to_c_x","_to_c_y","_atan2","parseInt","atan2","getRectHJoinPoint","_hH","getRectVJoinPoint","_hW","getBorderPoint","n1style","getCirclePoint","getBorderPoint4MultiLine","isReserve","allSize","indexOfAll","getCirclePoint4MultiLine","buff_h","buff_v","k","__x","sqrt","pow","__y","to_x","to_y","from_x","from_y","distance","b","__wow","getCirclePointBasic","radius","v","t","getCirclePointPlus","getOvalPoint","c_x","c_y","c_r","c_i","c_n","sin","PI","cos","getAngleType","buffer_x","buffer_y","getTextAngle","tan","atan","getTreePointFromTop","c_height","sizehelper","canvas_width","node_width","canvas_height","node_height","sssss","max","getTreePointFromRight","getTreePointFromBottom","getTreePointFromLeft","analysisNodes","willLayoutNodes","thisLevelNodes","thisDeep","analyticResult","config","max_length","max_deep","__thisLOT_subling","level","all_size","all_strength","newLevelNodes","forEach","thisNode","lot","eached","subling","__thisLevel_index","__thisNode_child_size","targetNodes","__thisTargetIndex","thisTarget","isAllowShowNode","index_of_parent","childs","strength","strength_plus","index_of_level","childs_size","max_strength","strengthWithChilds","conductStrengthToParents","analysisDataTree","analysisNodes4Didirectional","levelDirect","targetFrom","targetTo","node","undefined","currentLevelStrengthWidthChilds","strengthWithChilds_from","_r","isShow","isHide","core4vue_SeeksGraphMath","SeeksBidirectionalTreeLayouter","layoutSetting","graphSetting","console","log","from","levelDistance","levelDistanceArr","split","thisNum","rootNode","allNodes","__origin_nodes","refresh","placeNodes","notLeafNode","prevNode","nextNode","placed","placeNodesPosition","error","__mapWidth","viewSize","width","__mapHeight","height","__offsetX","offset_x","__offsetY","offset_y","fixed","_center_offset_x","centerOffset_x","_center_offset_y","centerOffset_y","el","offsetWidth","offsetHeight","text","canvasSize","canvasOffset","origin_x","origin_y","dynamicSizeConfig","placeRelativePosition","__min_per_height","min_per_height","__max_per_height","max_per_height","__min_per_width","min_per_width","__max_per_width","max_per_width","__per_width","__per_height","getLevelDistance","perSize","_distance","_thisLevelDistance","layouters_SeeksBidirectionalTreeLayouter","SeeksCenterLayouter","window","SeeksGraphDebug","distance_coefficient","__leve1_min_r","__level1_r","_point","__level_r","__area_start","__area_end","__buff","layoutTimes","autoLayout","forceLayout","autoLayouting","Fx","Fy","__by_node","__by_line","__node1","__node2","addGravityByNode","addElasticByLine","applyToNodePosition","setTimeout","stop","node1","node2","Kf","Kf_1","Kf_2","_buff_x","_buff_y","addFtoNode","zero_length","getNodeFWeight","isNaN","__buff_x","__buff_y","layouters_SeeksCenterLayouter","SeeksCircleLayouter_SeeksCenterLayouter","setting","__max_deep","__max_length","checkMaxDeepAndLength","__prev_node","index_of_p_childs","level_index","heightByContent","resetViewSize","__center","__all_size","__circle_r","_index","adjustLevel2Y","thisLevel2Node","__y_diff","n1","n2","SeeksCircleLayouter","SeeksAutoLayouter","layouters_SeeksAutoLayouter","SeeksFixedLayouter","__ondraged","layouters_SeeksFixedLayouter","SeeksRGLayouters","_graphSetting","canvasZoom","layoutClassName","layoutLabel","label","layoutName","layoutDirection","useLayoutStyleOptions","defaultExpandHolderPosition","defaultJunctionPoint","defaultNodeColor","defaultNodeFontColor","defaultNodeBorderColor","defaultNodeBorderWidth","defaultLineColor","defaultLineWidth","defaultLineShape","defaultNodeShape","defaultNodeWidth","defaultNodeHeight","defaultLineMarker","defaultShowLineLabel","_layout","isNeedShowAutoLayoutButton","allowAutoLayoutIfSupport","layoutLabelOrSetting","layouter","__rootNode","thisLayoutSetting","layouts","createLayout","core4vue_SeeksRGLayouters","__tmp_basePosition","__tmp_positionModel","__start_info","SeeksRGUtils","e","positionModel","ondraged","clientX","clientY","body","addEventListener","onNodeMove","onNodeDragend","removeEventListener","_thisLevel","_thisLevelCharsArr","result","circle_node_text_set","color","replace","originData","jsonData","expanded","selected","styleClass","nodeShape","borderWidth","borderColor","fontColor","opacity","expandHolderPosition","innerHTML","html","disableDefaultClickEffect","disableDrag","to","lineWidth","lineShape","arrow","isHideArrow","hidden","lineDirection","reverseText","parentElement","getPosition","offsetTop","_ignore_node_keys","transNodeToJson","nodes","_node_json","keys","thisKey","indexOf","_ignore_link_keys","transLineToJson","line","links","relations","thisRelation","_link_json","core4vue_SeeksRGUtils","SeeksStoreManager","userGraphSetting","instanceId","debug","allowShowSettingPanel","backgrounImage","disableZoom","disableDragNode","moveToCenterWhenResize","defaultFocusRootNode","allowShowZoomMenu","backgrounImageNoRepeat","allowShowMiniToolBar","allowShowMiniView","allowShowMiniNameFilter","fullscreen","allowSwitchLineShape","allowSwitchJunctionPoint","isMoveByParentNode","checkedNodeId","checkedLineId","showSingleNode","showNodeLabel","showNodeShortLabel","hideNodeContentByZoom","viewELSize","left","top","viewNVInfo","canvasNVInfo","markerWidth","markerHeight","refX","refY","zoom_buff_x","zoom_buff_y","_debug","key","_thisUserValue","_objectValue","Array","isArray","l2Key","_new_arr","thisItem","parse","thisLayout","appendDefaultOptions4Layout","createDefaultConfig","SeeksRGStore","getOptions","_ignore","core4vue_SeeksRGStore","SeeksRGNode","components","props","mustUseProp","nodeProps","onNodeClick","Function","hovering","dragging","computed","watch","refreshNodeProperties","elx","$refs","seeksRGNode","methods","_w","_h","_num_l","_num_c","_length","_text_arr","_current_length","_thisChar","_charCode","charCodeAt","_charLength","$parent","onNodeExpandEvent","onNodeCollapseEvent","startDrag","onNodeDraged","thisCnode","col","_s","substring","_rgb_arr","_st","_rgb_string","_rgb_number","_vm","$createElement","_c","_self","directives","rawName","expression","ref","staticClass","style","on","mousedown","$event","_k","keyCode","button","stopPropagation","onDragStart","mouseover","onMouseHover","mouseout","onMouseOut","click","onclick","class","expandButtonClass","expandOrCollapseNode","_e","_v","domProps","border","_t","getNodeName","_withStripped","esExports","core4vue_SeeksRGNode","disposed","injectStyle","normalizeComponent","__vue_template_functional__","__vue_styles__","__vue_scopeId__","__vue_module_identifier__","Component","__file","src_core4vue_SeeksRGNode","JUNCTION_POINT_STYLE","ltrb","tb","lr","SeeksRGLink","lineProps","onLineClick","is_flashing","rotate","__lineShape","_arrow","getLineArrow","ri","relationData","__lineDirection","textPositon","f_W","w","f_H","t_W","t_H","isReverse","__start","__end","__params4start","__params4end","_junctionPointStyle","__buff_type","__path","distanceRate","__buff_type_y","_base","_angle_type","_xxx","_x","_y","seeks_id","fromNode","toNode","SeeksRGLink_render","attrs","transform","_l","createLinePath","stroke","getArrow","fill","onClick","getTextTransform","SeeksRGLink_staticRenderFns","SeeksRGLink_esExports","core4vue_SeeksRGLink","SeeksRGLink_disposed","SeeksRGLink_injectStyle","SeeksRGLink_normalizeComponent","SeeksRGLink___vue_template_functional__","SeeksRGLink___vue_styles__","SeeksRGLink___vue_scopeId__","SeeksRGLink___vue_module_identifier__","SeeksRGLink_Component","src_core4vue_SeeksRGLink","GraphSettingPanel","search_text","showSettingPanel","currentLayoutName","switchLayout","GraphSettingPanel_render","isNeedFixedTools","toggleSettingPanel","GraphSettingPanel_staticRenderFns","GraphSettingPanel_esExports","selectortype_template_index_0_src_GraphSettingPanel","GraphSettingPanel_disposed","GraphSettingPanel_injectStyle","GraphSettingPanel_normalizeComponent","GraphSettingPanel___vue_template_functional__","GraphSettingPanel___vue_styles__","GraphSettingPanel___vue_scopeId__","GraphSettingPanel___vue_module_identifier__","GraphSettingPanel_Component","src_GraphSettingPanel","GraphMiniView","zoom","_c_width","_width","_height","_view_x","_view_y","nodeData","GraphMiniView_render","nodeViewList","getPositionData","GraphMiniView_staticRenderFns","GraphMiniView_esExports","selectortype_template_index_0_src_GraphMiniView","GraphMiniView_disposed","GraphMiniView_injectStyle","GraphMiniView_normalizeComponent","GraphMiniView___vue_template_functional__","GraphMiniView___vue_styles__","GraphMiniView___vue_scopeId__","GraphMiniView___vue_module_identifier__","GraphMiniView_Component","src_GraphMiniView","GraphMiniToolBar","hits","downloadPanelWidth","onDownloadExcel","layoutConfig","printGraphJsonData","GraphMiniToolBar_render","staticStyle","float","title","toggleAutoLayout","downloadAsImage","GraphMiniToolBar_staticRenderFns","GraphMiniToolBar_esExports","selectortype_template_index_0_src_GraphMiniToolBar","GraphMiniToolBar_disposed","GraphMiniToolBar_injectStyle","GraphMiniToolBar_normalizeComponent","GraphMiniToolBar___vue_template_functional__","GraphMiniToolBar___vue_styles__","GraphMiniToolBar___vue_scopeId__","GraphMiniToolBar___vue_module_identifier__","GraphMiniToolBar_Component","src_GraphMiniToolBar","GraphMiniNameFilter","GraphMiniNameFilter_render","GraphMiniNameFilter_staticRenderFns","GraphMiniNameFilter_esExports","selectortype_template_index_0_src_GraphMiniNameFilter","GraphMiniNameFilter_disposed","GraphMiniNameFilter_injectStyle","GraphMiniNameFilter_normalizeComponent","GraphMiniNameFilter___vue_template_functional__","GraphMiniNameFilter___vue_styles__","GraphMiniNameFilter___vue_scopeId__","GraphMiniNameFilter___vue_module_identifier__","GraphMiniNameFilter_Component","src_GraphMiniNameFilter","GraphBottomPanel","$nextTick","$slots","elm","GraphBottomPanel_render","GraphBottomPanel_staticRenderFns","GraphBottomPanel_esExports","selectortype_template_index_0_src_GraphBottomPanel","GraphBottomPanel_disposed","GraphBottomPanel_injectStyle","GraphBottomPanel_normalizeComponent","GraphBottomPanel___vue_template_functional__","GraphBottomPanel___vue_styles__","GraphBottomPanel___vue_scopeId__","GraphBottomPanel___vue_module_identifier__","GraphBottomPanel_Component","src_GraphBottomPanel","selectortype_script_index_0_src","onNodeExpand","onNodeCollapse","beforeDownloadImage","wheelEvent","version","offsetLeft","canvasBackgroundColor","isNeedFixedTools4Bottom","seeksNodeIdIndex","graphData","lines","nodes_map","lines_map","lineViewList","allLineColors","viewOffset","windowHeight","positionTop","viewSizeIsInited","isShowZoomCenter","debugPanelPosition","zoomCenter_of_newSize","currentZoomSet","newZoomSet","alive","newV","oldV","a","toggle","seeksRelationGraph","createNewStore","random","init","syncToolsPosition","refreshNVAnalysisInfo","rgCanvas","setProperty","cycleTask","_box","getBoundingClientRect","wow","_min_x","_min_y","_max_x","_max_y","_stuff_width","_stuff_height","_final_x","_final_y","animateGoto","callback","_defaultLayoutSetting","doLayout","cancelBubble","preventDefault","userZoomCenter","_isMac","_deltaY","deltaY","wheelDelta","_zoomDirection","offsetX","offsetY","currentNode","target","classList","contains","tagName","className","buff","__new_zoom_value","zoomCenter","showZoomCenter","buff_x","buff_y","zoomBuff","_current_zoom","_new_zoom","analysisByZoom","f","NMViewBuff","NMCanvasCenter","old_x","NMCanvasStart","old_y","new_x","new_y","NMCanvasEnd","NMCanvasOffsetBuff","_view_info","_NM_canvas_width","_NM_canvas_height","NMViewPosition","NMViewCenter","NMZoomCenter","NMCanvasSize","windowWidth","getWindowWidth","getWindowHeight","_NM_buff_x","_NM_buff_y","_box_info","__top","innerWidth","documentElement","clientWidth","screen","innerHeight","clientHeight","getNodePositionTop","getNodePositionLeft","_nodes","thisNodeJson","json2Node","__isNew","appended","_links","thisLinkJson","__from","__to","lineId1","lineId2","thisLine","thisLink","json2Link","thisLinkIsReserve","isDuplicate","_color","thisColorId","getColorId","thisColorObj","orign_nodes","nodes_collect","links_collect","thisOrignNode","flated","_childs","children","flatNodeData","_orign_nodes","loadNodes","loadLinks","__root_id","loadGraphJsonData","applyNewDataToCanvas","isRelayout","arguments","onDragEnd","lineData","nodeId","__removed_lines","splice","__removed_nodes","thisTNode","t_i","d_i","findIndex","dataurl","arr","mime","match","bstr","atob","u8arr","Uint8Array","Blob","format","exportDom","seeksRGCanvas","orign_width","orign_height","_padding","_origin_offset_x","_origin_offset_y","_image_width","_image_height","pixelRatio","devicePixelRatio","relationGraphPosition","canvas_offsetLeft","canvas_offsetTop","canvas_left","canvas_top","scrollTo","fileName","toFixed","canvas","getContext","scale","opts","backgroundColor","logging","useCORS","then","dom","display","blob","dataURLToBlob","toDataURL","msSaveOrOpenBlob","URL","createObjectURL","revokeObjectURL","queryString","trim","rst","handleSelect","animateToZoom","_n_width","_n_height","time","_distance_x","_distance_y","_allTime","_allStepNum","_speed_x","_speed_y","_perDelay","animateStepAction","finalZoom","_zoom_distance","_speed","stepIndex","delay","allStepNum","stepCallback","finalCallback","rootId","getGraphJsonOptions","getGraphJsonData","selectortype_template_index_0_src_render","resize","scopedSlots","_u","fn","graph","mousewheel","mouseListener","canvasSizeAndPosition","onRGNodeClick","overflow","xmlns","offset","orient","viewBox","markerUnits","thisColor","onRGLineClick","$scopedSlots","bottomPanel","slot","clear","position","right","padding","moveDebugPanel","selectortype_template_index_0_src_staticRenderFns","selectortype_template_index_0_src_esExports","selectortype_template_index_0_src","src_disposed","src_injectStyle","src_normalizeComponent","src___vue_template_functional__","src___vue_styles__","src___vue_scopeId__","src___vue_module_identifier__","src_Component","src","install","Vue","component","locals","newStyles","part","getAttribute","__iconfont__svg__cssinject__","write","readyState","attachEvent","doScroll","onreadystatechange","modal","actionName","saveActionName","bgColor","background","selectColor","confirmDeleteAction","AppendixId","deleteTool","previewSource","appendix","fileList","removeFile","beforeFileUpload","uploadHandleChange","saveFile","model","$$v","link","linkname","saveLink","recoveryAction","permanentlyDelete","previewMissApx","missingAppendix","actionTarget","targetBlur","beforeUpload","handleChange","actionFrontCover","loading","getBase64","img","reader","readAsDataURL","actionId","actionSort","Number","canEdit","ModalText","visible","confirmLoading","colors","currentTabKey","filename","visibleToolUpload","showModal","handleOk","handleCancel","isLt2M","$message","info","file","status","success","response","url","params","pindex","$emit","originFileObj","imageUrl","isJpgOrPng","newValue","filed","purpose","linkUrl","cancelUpload","edit","String","canUpload","afterFlag","slice","graphOptions","SeeksRelationGraph","needRefresh","reset","mounted","setdata","ideaMapRelationGraph","secionNode","_center","nodeWidth","json","courseTargetNode","sectionTarget","targetNode","targetNodeOffset","targetNodeWidth","targetLink","lessonTimeInfo","before","actions","actionList","after","spacing","beforeNode","courseTargetToBeforeNodeLink","addToolNodeAndLinks","mainNodeLength","prev","afterNode","midNode","midToSecondNodeLink","midToSecondToLastNodeLink","setJsonData","tools","toolItem","ApxFileAnthorName","ApxFileName","toolNode","exec","ApxUrl","toLocaleLowerCase","showLineLabel","toolLink","isCommonjs","keyboardAllowed","Element","val","fnMap","ret","eventNameMap","change","fullscreenchange","fullscreenerror","screenfull","request","elem","Promise","resolve","reject","promise","requestFullscreen","onFullScreenEntered","off","ALLOW_KEYBOARD_INPUT","catch","exit","isFullscreen","onFullScreenExit","exitFullscreen","onchange","onerror","event","eventName","raw","defineProperties","fullscreenElement","element","enabled","fullscreenEnabled","_typeof","Symbol","iterator","constructor","_defineProperty","writable","_extends","assign","apply","_objectSpread","ownKeys","getOwnPropertySymbols","sym","getOwnPropertyDescriptor","_objectWithoutPropertiesLoose","excluded","sourceKeys","_objectWithoutProperties","sourceSymbolKeys","propertyIsEnumerable","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","arr2","iter","TypeError","pattern","IE11OrLess","Edge","FireFox","Safari","IOS","ChromeForAndroid","captureMode","capture","passive","matches","selector","msMatchesSelector","webkitMatchesSelector","_","getParentOrHost","host","nodeType","closest","ctx","includeCTX","_throttleTimeout","R_SPACE","toggleClass","state","prop","defaultView","getComputedStyle","currentStyle","matrix","selfOnly","appliedTransforms","matrixFn","DOMMatrix","WebKitCSSMatrix","CSSMatrix","MSCSSMatrix","find","getWindowScrollingElement","scrollingElement","getRect","relativeToContainingBlock","relativeToNonStaticParent","undoScale","container","elRect","bottom","containerRect","elMatrix","scaleX","scaleY","isScrolledPast","elSide","parentSide","getParentAutoScrollElement","elSideVal","parentSideVal","getChild","childNum","currentChild","Sortable","ghost","dragged","draggable","lastChild","last","lastElementChild","previousElementSibling","nodeName","toUpperCase","clone","getRelativeScrollOffset","winScroller","scrollLeft","scrollTop","indexOfObject","includeSelf","gotSelf","scrollWidth","scrollHeight","elemCSS","overflowX","overflowY","extend","dst","isRectEqual","rect1","rect2","round","throttle","ms","args","_this","cancelThrottle","clearTimeout","scrollBy","Polymer","$","jQuery","Zepto","cloneNode","setRect","rect","unsetRect","expando","Date","getTime","AnimationStateManager","animationCallbackId","animationStates","captureAnimationState","animation","child","fromRect","thisAnimationDuration","childMatrix","addAnimationState","removeAnimationState","animateAll","animating","animationTime","toRect","prevFromRect","prevToRect","animatingRect","targetMatrix","calculateRealTime","animate","animationResetTimer","currentRect","duration","translateX","translateY","animatingX","animatingY","repaint","easing","animated","plugins","defaults","initializeByDefault","PluginManager","mount","plugin","option","pluginEvent","sortable","evt","eventCanceled","cancel","eventNameGlobal","pluginName","initializePlugins","initialized","modified","modifyOption","getEventProperties","eventProperties","modifiedValue","optionListeners","dispatchEvent","_ref","rootEl","targetEl","cloneEl","toEl","fromEl","oldIndex","newIndex","oldDraggableIndex","newDraggableIndex","originalEvent","putSortable","extraEventProperties","onName","charAt","substr","CustomEvent","createEvent","initEvent","bubbles","cancelable","pullMode","lastPutMode","allEventProperties","dragEl","parentEl","ghostEl","nextEl","lastDownEl","cloneHidden","dragStarted","moved","activeSortable","active","hideGhostForTarget","_hideGhostForTarget","unhideGhostForTarget","_unhideGhostForTarget","cloneNowHidden","cloneNowShown","dispatchSortableEvent","_dispatchEvent","activeGroup","tapEvt","touchEvt","lastDx","lastDy","tapDistanceLeft","tapDistanceTop","lastTarget","lastDirection","targetMoveDistance","ghostRelativeParent","awaitingDragStarted","ignoreNextClick","sortables","pastFirstInvertThresh","isCircumstantialInvert","ghostRelativeParentInitialScroll","_silent","savedInputChecked","documentExists","PositionGhostAbsolutely","CSSFloatProperty","supportDraggable","supportCssPointerEvents","pointerEvents","_detectDirection","elCSS","elWidth","paddingLeft","paddingRight","borderLeftWidth","borderRightWidth","child1","child2","firstChildCSS","secondChildCSS","firstChildWidth","marginLeft","marginRight","secondChildWidth","flexDirection","gridTemplateColumns","touchingSideChild2","_dragElInRowColumn","dragRect","targetRect","vertical","dragElS1Opp","dragElS2Opp","dragElOppLength","targetS1Opp","targetS2Opp","targetOppLength","_detectNearestEmptySortable","some","threshold","emptyInsertThreshold","insideHorizontally","insideVertically","_prepareGroup","toFn","pull","sameGroup","group","otherGroup","originalGroup","checkPull","checkPut","put","revertClone","stopImmediatePropagation","nearestEmptyInsertDetectEvent","touches","nearest","_onDragOver","_checkOutsideTargetEl","_isOutsideThisEl","sort","disabled","store","handle","swapThreshold","invertSwap","invertedSwapThreshold","removeCloneOnHide","direction","ghostClass","chosenClass","dragClass","ignore","preventOnFilter","setData","dataTransfer","textContent","dropBubble","dragoverBubble","dataIdAttr","delayOnTouchOnly","touchStartThreshold","forceFallback","fallbackClass","fallbackOnBody","fallbackTolerance","fallbackOffset","supportPointer","nativeDraggable","_onTapStart","_globalDragOver","dropEffect","_onMove","willInsertAfter","retVal","onMoveFn","onMove","draggedRect","related","relatedRect","_disableDraggable","_unsilent","_ghostIsLast","spacer","_getSwapDirection","isLastTarget","mouseOnAxis","targetLength","targetS1","targetS2","invert","_getInsertDirection","_generateId","str","href","sum","_saveInputCheckedState","inputs","idx","checked","_nextTick","_cancelNextTick","_getDirection","touch","pointerType","originalTarget","shadowRoot","path","composedPath","isContentEditable","criteria","_prepareDragStart","dragStartFn","ownerDocument","nextSibling","_lastX","_lastY","_onDrop","_disableDelayedDragEvents","_triggerDragStart","_disableDelayedDrag","_delayedDragTouchMoveHandler","_dragStartTimer","floor","_onTouchMove","_onDragStart","selection","empty","getSelection","removeAllRanges","err","_dragStarted","fallback","_appendGhost","_nulling","_emulateDragOver","elementFromPoint","inserted","ghostMatrix","relativeScrollOffset","dx","dy","cssMatrix","_hideClone","cloneId","_loopId","setInterval","effectAllowed","_dragStartId","revert","isOwner","canSort","fromSortable","completedFired","dragOverEvent","_ignoreWhileAnimating","completed","elLastChild","changed","targetBeforeFirstSwap","sibling","differentLevel","differentRowCol","side1","scrolledPastTop","scrollBefore","dragIndex","nextElementSibling","moveVector","extra","axis","insertion","_showClone","_offMoveEvents","_offUpEvents","clearInterval","save","handleEvent","toArray","order","items","set","destroy","querySelectorAll","removeAttribute","utils","is","nextTick","cancelNextTick","detectDirection","_len","_key","create","scrollEl","scrollRootEl","lastAutoScrollX","lastAutoScrollY","touchEvt$1","pointerElemChangedInterval","autoScrolls","scrolling","AutoScrollPlugin","AutoScroll","scroll","scrollSensitivity","scrollSpeed","bubbleScroll","_handleAutoScroll","_handleFallbackAutoScroll","dragOverCompleted","_ref2","dragOverBubble","drop","clearPointerElemChangedInterval","clearAutoScrolls","nulling","autoScroll","ogElemScroller","newElem","pid","lastSwapEl","isFallback","scrollCustomFn","sens","speed","scrollThisInstance","scrollFn","layersOut","currentParent","canScrollX","canScrollY","scrollPosX","scrollPosY","vx","vy","layer","scrollOffsetY","scrollOffsetX","toSortable","changedTouches","onSpill","Revert","Remove","SwapPlugin","Swap","swapClass","dragStart","dragOverValid","swap","prevSwapEl","_ref3","swapNodes","swapItem","i1","i2","p1","p2","isEqualNode","startIndex","_ref4","parentSortable","lastMultiDragSelect","multiDragSortable","dragEl$1","clonesFromRect","clonesHidden","multiDragElements","multiDragClones","initialFolding","folding","MultiDragPlugin","MultiDrag","_deselectMultiDrag","_checkKeyDown","_checkKeyUp","selectedClass","multiDragKey","multiDragElement","multiDragKeyDown","isMultiDrag","delayStartGlobal","delayEnded","setupClone","sortableIndex","insertMultiDragClones","showClone","hideClone","_ref5","dragStartGlobal","_ref6","multiDrag","_ref7","_this2","removeMultiDragElements","dragOver","_ref8","_ref9","insertMultiDragElements","_ref10","dragRectAbsolute","clonesHiddenBefore","dragOverAnimationCapture","_ref11","dragMatrix","dragOverAnimationComplete","_ref12","originalEvt","shiftKey","lastIndex","currentIndex","multiDragIndex","nullingGlobal","destroyGlobal","shift","select","deselect","_this3","oldIndicies","newIndicies","clones","clonesInserted","elementsInserted","__WEBPACK_EXTERNAL_MODULE_a352__","r","toStringTag","mode","ns","LIBRARY","$export","redefine","hide","Iterators","$iterCreate","setToStringTag","getPrototypeOf","ITERATOR","BUGGY","FF_ITERATOR","KEYS","VALUES","returnThis","Base","NAME","Constructor","next","DEFAULT","IS_SET","FORCED","IteratorPrototype","getMethod","kind","proto","TAG","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","entries","values","P","F","toInteger","defined","TO_STRING","that","pos","at","S","unicode","anObject","global","ignoreCase","multiline","sticky","$keys","enumBugKeys","O","dP","getKeys","Properties","fails","wks","regexpExec","SPECIES","REPLACE_SUPPORTS_NAMED_GROUPS","re","groups","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","KEY","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","fns","nativeMethod","regexp","arg2","forceStringMethod","done","strfn","rxfn","RegExp","string","arg","isObject","it","cof","ARG","tryGet","T","B","callee","has","SRC","$toString","TPL","inspectSource","safe","isFunction","dPs","IE_PROTO","Empty","PROTOTYPE","createDict","iframeDocument","iframe","lt","gt","contentWindow","open","close","uid","USE_SYMBOL","$exports","INCLUDES","includes","searchString","createDesc","toObject","ObjectProto","descriptor","ceil","bitmap","MATCH","regexpFlags","nativeExec","nativeReplace","patchedExec","LAST_INDEX","UPDATES_LAST_INDEX_WRONG","re1","re2","NPCG_INCLUDED","PATCH","reCopy","core","SHARED","copyright","own","out","exp","IS_FORCED","IS_GLOBAL","G","IS_STATIC","IS_PROTO","IS_BIND","expProto","U","W","R","classof","builtinExec","shared","$includes","IObject","valueOf","gOPS","pIE","$assign","A","K","aLen","getSymbols","isEnum","__g","min","def","tag","stat","__e","IE8_DOM_DEFINE","toPrimitive","Attributes","aFunction","UNSCOPABLES","ArrayProto","toLength","advanceStringIndex","regExpExec","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","maybeToString","REPLACE","$replace","maybeCallNative","searchValue","replaceValue","res","rx","functionalReplace","fullUnicode","results","matchStr","accumulatedResult","nextSourcePosition","matched","captures","namedCaptures","replacerArgs","getSubstitution","tailPos","symbols","ch","isRegExp","$iterators","TO_STRING_TAG","ArrayValues","DOMIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","collections","explicit","Collection","forced","toIObject","toAbsoluteIndex","IS_INCLUDES","$this","fromIndex","insertNodeAt","camelize","removeNode","getConsole","cached","cache","hit","regex","fatherNode","refNode","g","px","addToUnscopables","step","iterated","_i","Arguments","arrayIndexOf","names","STARTS_WITH","$startsWith","startsWith","search","currentScript","scripts","stack","setPublicPath_i","_arrayWithHoles","_iterableToArrayLimit","_arr","_n","_d","_arrayLikeToArray","len","_unsupportedIterableToArray","minLen","_nonIterableRest","_slicedToArray","external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_","external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_default","helper","buildAttribute","propName","computeVmIndex","vnodes","elt","_computeIndexes","slots","isTransition","footerOffset","elmFromNodes","footerIndex","rawIndexes","ind","emit","evtName","evtData","delegateAndEmit","realList","isTransitionName","vuedraggable_isTransition","_slots","componentOptions","getSlot","scopedSlot","computeChildrenAndOffsets","headerOffset","header","footer","getComponentAttributes","$attrs","componentData","attributes","reduce","componentDataAttrs","eventsListened","eventsToEmit","readonlyProperties","draggingElement","required","noTransitionOnDrag","original","move","draggableComponent","inheritAttrs","transitionMode","noneFunctionalComponentMode","_computeChildrenAndOf","getTag","created","warn","$el","getIsFunctional","optionsAdded","onDragMove","_sortable","rootContainer","computeIndexes","beforeDestroy","handler","newOptionValue","updateOptions","deep","fnOptions","_vnode","getChildrenNodes","$children","rawNodes","_this4","visibleIndexes","getUnderlyingVm","htmlElt","getUnderlyingPotencialDraggableComponent","vue","__vue__","$options","_componentTag","emitChanges","_this5","alterList","onList","spliceList","_arguments","updatePosition","getRelatedContextFromMoveEvent","destination","getVmIndex","domIndex","indexes","numberIndexes","getComponent","componentInstance","resetTransitionData","transitionContainer","kept","_underlying_vm_","onDragAdd","added","onDragRemove","removed","onDragUpdate","updateProperty","propertyName","computeFutureIndex","relatedContext","domChildren","currentDOMIndex","draggedInList","draggedContext","futureIndex","sendEvt","vuedraggable","extendStatics","setPrototypeOf","__proto__","__extends","__","__assign","__awaiter","thisArg","generator","fulfilled","rejected","__generator","sent","trys","ops","verb","op","pop","Bounds","fromClientRect","clientRect","parseBounds","parseDocumentSize","toCodePoints","codePoints","fromCodePoint","codeUnits","codePoint","fromCharCode","chars","lookup","TokenType","decode","encoded1","encoded2","encoded3","encoded4","bufferLength","buffer","ArrayBuffer","bytes","polyUint16Array","polyUint32Array","UTRIE2_SHIFT_2","UTRIE2_SHIFT_1","UTRIE2_INDEX_SHIFT","UTRIE2_SHIFT_1_2","UTRIE2_LSCP_INDEX_2_OFFSET","UTRIE2_DATA_BLOCK_LENGTH","UTRIE2_DATA_MASK","UTRIE2_LSCP_INDEX_2_LENGTH","UTRIE2_INDEX_2_BMP_LENGTH","UTRIE2_UTF8_2B_INDEX_2_OFFSET","UTRIE2_UTF8_2B_INDEX_2_LENGTH","UTRIE2_INDEX_1_OFFSET","UTRIE2_OMITTED_BMP_INDEX_1_LENGTH","UTRIE2_INDEX_2_BLOCK_LENGTH","UTRIE2_INDEX_2_MASK","slice16","view","start","end","Uint16Array","slice32","Uint32Array","createTrieFromBase64","view32","view16","headerLength","Trie","initialValue","errorValue","highStart","highValueIndex","ix","LETTER_NUMBER_MODIFIER","BK","CR","LF","CM","NL","WJ","ZW","GL","SP","ZWJ","B2","BA","BB","HY","CB","CL","CP","EX","IN","NS","OP","QU","IS","NU","PO","PR","SY","AI","AL","CJ","EB","EM","H2","H3","HL","ID","JL","JV","JT","RI","SA","XX","BREAK_MANDATORY","BREAK_NOT_ALLOWED","BREAK_ALLOWED","UnicodeTrie","ALPHABETICS","HARD_LINE_BREAKS","SPACE","PREFIX_POSTFIX","LINE_BREAKS","KOREAN_SYLLABLE_BLOCK","HYPHEN","codePointsToCharacterClasses","lineBreak","types","indicies","categories","classType","isAdjacentWithSpaceIgnored","classTypes","current","previousNonSpaceClassType","_lineBreakAtIndex","forbiddenBreaks","beforeIndex","afterIndex","prevIndex","count","cssFormattedClasses","wordBreak","_a","isLetterNumber","forbiddenBreakpoints","letterNumber","Break","LineBreaker","lastEnd","nextIndex","FLAG_UNRESTRICTED","FLAG_ID","FLAG_INTEGER","FLAG_NUMBER","LINE_FEED","SOLIDUS","REVERSE_SOLIDUS","CHARACTER_TABULATION","SPACE$1","QUOTATION_MARK","EQUALS_SIGN","NUMBER_SIGN","DOLLAR_SIGN","PERCENTAGE_SIGN","APOSTROPHE","LEFT_PARENTHESIS","RIGHT_PARENTHESIS","LOW_LINE","HYPHEN_MINUS","EXCLAMATION_MARK","LESS_THAN_SIGN","GREATER_THAN_SIGN","COMMERCIAL_AT","LEFT_SQUARE_BRACKET","RIGHT_SQUARE_BRACKET","CIRCUMFLEX_ACCENT","LEFT_CURLY_BRACKET","QUESTION_MARK","RIGHT_CURLY_BRACKET","VERTICAL_LINE","TILDE","CONTROL","REPLACEMENT_CHARACTER","ASTERISK","PLUS_SIGN","COMMA","COLON","SEMICOLON","FULL_STOP","NULL","BACKSPACE","LINE_TABULATION","SHIFT_OUT","INFORMATION_SEPARATOR_ONE","DELETE","EOF","ZERO","u","z","E","Z","isDigit","isSurrogateCodePoint","isHex","isLowerCaseLetter","isUpperCaseLetter","isLetter","isNonASCIICodePoint","isWhiteSpace","isNameStartCodePoint","isNameCodePoint","isNonPrintableCodePoint","isValidEscape","c1","c2","isIdentifierStart","c3","isNumberStart","stringToNumber","sign","integers","int","fraction","fracd","frac","expsign","exponent","LEFT_PARENTHESIS_TOKEN","RIGHT_PARENTHESIS_TOKEN","COMMA_TOKEN","SUFFIX_MATCH_TOKEN","PREFIX_MATCH_TOKEN","COLUMN_TOKEN","DASH_MATCH_TOKEN","INCLUDE_MATCH_TOKEN","LEFT_CURLY_BRACKET_TOKEN","RIGHT_CURLY_BRACKET_TOKEN","SUBSTRING_MATCH_TOKEN","BAD_URL_TOKEN","BAD_STRING_TOKEN","CDO_TOKEN","CDC_TOKEN","COLON_TOKEN","SEMICOLON_TOKEN","LEFT_SQUARE_BRACKET_TOKEN","RIGHT_SQUARE_BRACKET_TOKEN","WHITESPACE_TOKEN","EOF_TOKEN","Tokenizer","_value","chunk","read","tokens","token","consumeToken","consumeCodePoint","consumeStringToken","peekCodePoint","flags","consumeName","HASH_TOKEN","reconsumeCodePoint","consumeNumericToken","e1","e2","e3","consumeIdentLikeToken","a1","a2","a3","AT_KEYWORD_TOKEN","u1","u2","consumeUnicodeRangeToken","consumeWhiteSpace","DELIM_TOKEN","unshift","delta","digits","questionMarks","start_1","digit","UNICODE_RANGE_TOKEN","endDigits","consumeUrlToken","FUNCTION_TOKEN","IDENT_TOKEN","URL_TOKEN","stringToken","STRING_TOKEN","consumeBadUrlRemnants","consumeEscapedCodePoint","consumeStringSlice","SLICE_STACK_SIZE","amount","endingCodePoint","consumeNumber","repr","number","unit","DIMENSION_TOKEN","PERCENTAGE_TOKEN","NUMBER_TOKEN","hex","hexCodePoint","Parser","_tokens","tokenizer","parseValue","parseComponentValue","parseValues","parseComponentValues","SyntaxError","reconsumeToken","consumeComponentValue","consumeSimpleBlock","consumeFunction","block","isEndingTokenFor","functionToken","cssFunction","FUNCTION","isDimensionToken","isNumberToken","isIdentToken","isStringToken","isIdentWithValue","nonWhiteSpace","nonFunctionArgSeparator","parseFunctionArgs","isLength","isLengthPercentage","parseLengthPercentageTuple","ZERO_LENGTH","FIFTY_PERCENT","HUNDRED_PERCENT","getAbsoluteValueForTuple","tuple","getAbsoluteValue","DEG","GRAD","RAD","TURN","angle","isAngle","parseNamedSide","sideOrCorner","ident","deg","colorFunction","SUPPORTED_COLOR_FUNCTIONS","pack","namedColor","COLORS","TRANSPARENT","isTransparent","asString","alpha","blue","green","red","getTokenColorValue","rgb","_b","hue2rgb","t1","t2","hue","PropertyDescriptorParsingType","BACKGROUND_CLIP","hsl","saturation","lightness","hsla","rgba","ALICEBLUE","ANTIQUEWHITE","AQUA","AQUAMARINE","AZURE","BEIGE","BISQUE","BLACK","BLANCHEDALMOND","BLUE","BLUEVIOLET","BROWN","BURLYWOOD","CADETBLUE","CHARTREUSE","CHOCOLATE","CORAL","CORNFLOWERBLUE","CORNSILK","CRIMSON","CYAN","DARKBLUE","DARKCYAN","DARKGOLDENROD","DARKGRAY","DARKGREEN","DARKGREY","DARKKHAKI","DARKMAGENTA","DARKOLIVEGREEN","DARKORANGE","DARKORCHID","DARKRED","DARKSALMON","DARKSEAGREEN","DARKSLATEBLUE","DARKSLATEGRAY","DARKSLATEGREY","DARKTURQUOISE","DARKVIOLET","DEEPPINK","DEEPSKYBLUE","DIMGRAY","DIMGREY","DODGERBLUE","FIREBRICK","FLORALWHITE","FORESTGREEN","FUCHSIA","GAINSBORO","GHOSTWHITE","GOLD","GOLDENROD","GRAY","GREEN","GREENYELLOW","GREY","HONEYDEW","HOTPINK","INDIANRED","INDIGO","IVORY","KHAKI","LAVENDER","LAVENDERBLUSH","LAWNGREEN","LEMONCHIFFON","LIGHTBLUE","LIGHTCORAL","LIGHTCYAN","LIGHTGOLDENRODYELLOW","LIGHTGRAY","LIGHTGREEN","LIGHTGREY","LIGHTPINK","LIGHTSALMON","LIGHTSEAGREEN","LIGHTSKYBLUE","LIGHTSLATEGRAY","LIGHTSLATEGREY","LIGHTSTEELBLUE","LIGHTYELLOW","LIME","LIMEGREEN","LINEN","MAGENTA","MAROON","MEDIUMAQUAMARINE","MEDIUMBLUE","MEDIUMORCHID","MEDIUMPURPLE","MEDIUMSEAGREEN","MEDIUMSLATEBLUE","MEDIUMSPRINGGREEN","MEDIUMTURQUOISE","MEDIUMVIOLETRED","MIDNIGHTBLUE","MINTCREAM","MISTYROSE","MOCCASIN","NAVAJOWHITE","NAVY","OLDLACE","OLIVE","OLIVEDRAB","ORANGE","ORANGERED","ORCHID","PALEGOLDENROD","PALEGREEN","PALETURQUOISE","PALEVIOLETRED","PAPAYAWHIP","PEACHPUFF","PERU","PINK","PLUM","POWDERBLUE","PURPLE","REBECCAPURPLE","RED","ROSYBROWN","ROYALBLUE","SADDLEBROWN","SALMON","SANDYBROWN","SEAGREEN","SEASHELL","SIENNA","SILVER","SKYBLUE","SLATEBLUE","SLATEGRAY","SLATEGREY","SNOW","SPRINGGREEN","STEELBLUE","TAN","TEAL","THISTLE","TOMATO","TURQUOISE","VIOLET","WHEAT","WHITE","WHITESMOKE","YELLOW","YELLOWGREEN","CSSImageType","backgroundClip","prefix","LIST","PADDING_BOX","CONTENT_BOX","BORDER_BOX","TYPE_VALUE","parseColorStop","color$1","processColorStops","stops","lineLength","first","processStops","previous","stop_1","absoluteValue","gapBegin","stop_2","gapLength","beforeGap","gapValue","getAngleFromCorner","corner","centerX","centerY","calculateGradientDirection","radian","halfWidth","halfHeight","halfLineLength","yDiff","xDiff","findCorner","corners","cx","cy","optimumDistance","optimumCorner","Infinity","calculateRadius","gradient","ry","size","CSSRadialExtent","CLOSEST_SIDE","shape","CSSRadialShape","CIRCLE","ELLIPSE","CLOSEST_CORNER","FARTHEST_SIDE","FARTHEST_CORNER","linearGradient","angle$1","firstToken","colorStop","LINEAR_GRADIENT","prefixLinearGradient","testRangeBounds","TEST_HEIGHT","createRange","range","testElement","selectNode","rangeBounds","rangeHeight","testCORS","Image","crossOrigin","testResponseType","XMLHttpRequest","responseType","testSVG","drawImage","isGreenPixel","testForeignObject","fillStyle","fillRect","greenImageSrc","svg","createForeignObjectSVG","loadSerializedSVG","getImageData","backgroundImage","createElementNS","foreignObject","setAttributeNS","onload","XMLSerializer","serializeToString","FEATURES","fetch","Logger","now","instances","getInstance","instance","CacheStorage","_caches","Cache","getOrigin","_link","protocol","hostname","port","isSameOrigin","_origin","setContext","location","_current","attachInstance","detachInstance","_cache","addImage","isBlobImage","isRenderable","loadImage","useProxy","isInlineImage","SUPPORT_CORS_IMAGES","proxy","SUPPORT_CORS_XHR","allowTaint","isInlineBase64Image","complete","imageTimeout","SUPPORT_RESPONSE_TYPE","xhr","reader_1","FileReader","timeout_1","timeout","ontimeout","send","INLINE_SVG","INLINE_BASE64","INLINE_IMG","SUPPORT_SVG_DRAWING","isSVG","webkitGradient","RADIAL_GRADIENT","COVER","CONTAIN","radialGradient","isColorStop","isAtPosition_1","acc","prefixRadialGradient","isLinearGradient","isRadialGradient","image","image_1","imageFunction","SUPPORTED_IMAGE_FUNCTIONS","isSupportedImage","BACKGROUND_REPEAT","backgroundOrigin","backgroundPosition","BACKGROUND_SIZE","backgroundRepeat","parseBackgroundRepeat","NO_REPEAT","REPEAT_X","REPEAT_Y","REPEAT","BORDER_STYLE","backgroundSize","isBackgroundSizeInfoToken","borderColorForSide","side","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","borderRadiusForSide","borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius","FLOAT","borderStyleForSide","IDENT_VALUE","NONE","SOLID","borderTopStyle","borderRightStyle","borderBottomStyle","borderLeftStyle","borderWidthForSide","VALUE","borderTopWidth","borderBottomWidth","bit","parseDisplayValue","LINE_BREAK","LEFT","RIGHT","INLINE_START","INLINE_END","letterSpacing","LIST_STYLE_POSITION","STRICT","NORMAL","lineHeight","TOKEN_VALUE","computeLineHeight","fontSize","listStyleImage","LIST_STYLE_TYPE","listStylePosition","INSIDE","OUTSIDE","OVERFLOW","listStyleType","DISC","SQUARE","DECIMAL","CJK_DECIMAL","DECIMAL_LEADING_ZERO","LOWER_ROMAN","UPPER_ROMAN","LOWER_GREEK","LOWER_ALPHA","UPPER_ALPHA","ARABIC_INDIC","ARMENIAN","BENGALI","CAMBODIAN","CJK_EARTHLY_BRANCH","CJK_HEAVENLY_STEM","CJK_IDEOGRAPHIC","DEVANAGARI","ETHIOPIC_NUMERIC","GEORGIAN","GUJARATI","GURMUKHI","HEBREW","HIRAGANA","HIRAGANA_IROHA","JAPANESE_FORMAL","JAPANESE_INFORMAL","KANNADA","KATAKANA","KATAKANA_IROHA","KHMER","KOREAN_HANGUL_FORMAL","KOREAN_HANJA_FORMAL","KOREAN_HANJA_INFORMAL","LAO","LOWER_ARMENIAN","MALAYALAM","MONGOLIAN","MYANMAR","ORIYA","PERSIAN","SIMP_CHINESE_FORMAL","SIMP_CHINESE_INFORMAL","TAMIL","TELUGU","THAI","TIBETAN","TRAD_CHINESE_FORMAL","TRAD_CHINESE_INFORMAL","UPPER_ARMENIAN","DISCLOSURE_OPEN","DISCLOSURE_CLOSED","marginForSide","marginTop","marginBottom","OVERFLOW_WRAP","HIDDEN","SCROLL","AUTO","VISIBLE","TEXT_ALIGN","overflowWrap","BREAK_WORD","paddingForSide","paddingTop","paddingBottom","POSITION","textAlign","CENTER","TEXT_TRANSFORM","RELATIVE","ABSOLUTE","FIXED","STICKY","STATIC","textShadow","shadow","blur","VISIBILITY","textTransform","UPPERCASE","LOWERCASE","CAPITALIZE","transformFunction","SUPPORTED_TRANSFORM_FUNCTIONS","matrix3d","b1","b2","a4","b4","DEFAULT_VALUE","transformOrigin","origins","WORD_BREAK","visibility","COLLAPSE","FONT_STYLE","BREAK_ALL","KEEP_ALL","zIndex","auto","textDecorationColor","textDecorationLine","fontFamily","accumulator","fontWeight","fontVariant","PseudoElementType","fontStyle","OBLIQUE","ITALIC","counterIncrement","increments","filtered","counter","increment","counterReset","resets","quotes","open_1","close_1","getQuote","depth","quote","boxShadow","spread","inset","CSSParsedDeclaration","declaration","cssFloat","overflowTuple","isVisible","isTransformed","isPositioned","isPositionedWithZIndex","isFloating","isInlineLevel","CSSParsedPseudoDeclaration","CSSParsedCounterDeclaration","parser","length_1","value_1","ElementContainer","textNodes","elements","isHTMLElementNode","bounds","TextBounds","parseTextBounds","textList","breakText","textBounds","SUPPORT_RANGE_BOUNDS","getRangeBounds","replacementNode","splitText","getWrapperBounds","wrapper","replaceChild","setStart","setEnd","breakWords","bk","breaker","words","TextContainer","transform$1","capitalize","ImageElementContainer","_super","currentSrc","intrinsicWidth","naturalWidth","intrinsicHeight","naturalHeight","CanvasElementContainer","SVGElementContainer","baseVal","LIElementContainer","OLElementContainer","reversed","CHECKBOX_BORDER_RADIUS","RADIO_BORDER_RADIUS","reformatInputBounds","getInputValue","PASSWORD","placeholder","CHECKBOX","RADIO","INPUT_COLOR","InputElementContainer","input","SelectElementContainer","selectedIndex","TextareaElementContainer","parseColor","IFrameElementContainer","tree","parseTree","documentBackgroundColor","bodyBackgroundColor","LIST_OWNERS","parseNodeTree","childNode","isTextNode","isElementNode","createContainer","createsRealStackingContext","createsStackingContext","isTextareaElement","isSVGElement","isSelectElement","isImageElement","isCanvasElement","isLIElement","isOLElement","isInputElement","isIFrameElement","isBodyElement","Node","TEXT_NODE","ELEMENT_NODE","isSVGElementNode","isHTMLElement","isStyleElement","isScriptElement","CounterState","counters","getCounterValue","getCounterValues","canReset","entry","counterNames","ROMAN_UPPER","createAdditiveCounter","suffix","createCounterText","integer","createCounterStyleWithSymbolResolver","codePointRangeLength","isNumeric","resolver","createCounterStyleFromRange","codePointRangeStart","codePointRangeEnd","createCounterStyleFromSymbols","CJK_ZEROS","CJK_TEN_COEFFICIENTS","CJK_TEN_HIGH_COEFFICIENTS","CJK_HUNDRED_COEFFICIENTS","createCJKCounter","numbers","multipliers","negativeSign","tmp","coefficient","CHINESE_INFORMAL_MULTIPLIERS","CHINESE_FORMAL_MULTIPLIERS","JAPANESE_NEGATIVE","KOREAN_NEGATIVE","appendSuffix","defaultSuffix","cjkSuffix","koreanSuffix","spaceSuffix","IGNORE_ATTRIBUTE","DocumentCloner","scrolledElements","referenceElement","quoteDepth","toIFrame","windowSize","createIFrameContainer","scrollX","pageXOffset","scrollY","pageYOffset","cloneWindow","documentClone","iframeLoad","iframeLoader","onclone","restoreNodeScroll","clonedReferenceElement","fonts","ready","serializeDoctype","doctype","restoreOwnerScroll","adoptNode","createElementClone","createCanvasClone","createStyleClone","sheet","cssRules","rule","inlineImages","clonedCanvas","clonedCtx","putImageData","styleBefore","styleAfter","createPseudoHideStyles","resolvePseudoContent","BEFORE","hasAttribute","ignoreElements","copyStyles","AFTER","copyCSSStyles","pseudoElt","anonymousReplacedElement","attr","counterStyle","counterState","counterType","delim","counterStates","counterType_1","separator","PSEUDO_HIDE_ELEMENT_CLASS_BEFORE","PSEUDO_HIDE_ELEMENT_CLASS_AFTER","newClassName","baseValue","PathType","cloneIframeContainer","interval","getPropertyValue","internalSubset","publicId","systemId","PSEUDO_BEFORE","PSEUDO_AFTER","PSEUDO_HIDE_ELEMENT_STYLE","createStyles","CORNER","equalPath","transformPath","deltaX","deltaW","deltaH","point","Vector","VECTOR","lerp","BezierCurve","startControl","endControl","BEZIER_CURVE","subdivide","firstHalf","ab","bc","cd","abbc","bccd","dest","reverse","isBezierCurve","BoundCurves","tlh","tlv","trh","trv","brh","brv","blh","blv","factors","maxFactor","topWidth","rightHeight","bottomWidth","leftHeight","topLeftBorderBox","getCurvePoints","TOP_LEFT","topRightBorderBox","TOP_RIGHT","bottomRightBorderBox","BOTTOM_RIGHT","bottomLeftBorderBox","BOTTOM_LEFT","topLeftPaddingBox","topRightPaddingBox","bottomRightPaddingBox","bottomLeftPaddingBox","topLeftContentBox","topRightContentBox","bottomRightContentBox","bottomLeftContentBox","r1","r2","kappa","ox","oy","xm","ym","calculateBorderBoxPath","curves","calculateContentBoxPath","calculatePaddingBoxPath","TransformEffect","ClipEffect","isTransformEffect","effect","isClipEffect","StackingContext","inlineLevel","nonInlineLevel","negativeZIndex","zeroOrAutoZIndexOrTransformedOrOpacity","positiveZIndex","nonPositionedFloats","nonPositionedInlineLevel","ElementPaint","parentStack","effects","borderBox","paddingBox","getParentEffects","parseStackTree","stackingContext","realStackingContext","listItems","treatAsRealStackingContext","paintContainer","listOwnerItems","order_1","index_1","index_2","processListItems","owner","numbering","listValue","parseStackingContexts","parsePathForBorder","borderSide","createPathFromCurves","outer1","inner1","outer2","inner2","contentBox","calculateBackgroundPositioningArea","calculateBackgroundPaintingArea","calculateBackgroundRendering","intrinsicSize","backgroundPositioningArea","getBackgroundValueForIndex","backgroundPaintingArea","backgroundImageSize","calculateBackgroundSize","sizeWidth","sizeHeight","calculateBackgroundRepeatPath","isAuto","hasIntrinsicValue","intrinsicProportion","second","hasIntrinsicProportion","targetRatio","hasIntrinsicWidth","hasIntrinsicHeight","hasIntrinsicDimensions","width_1","height_1","width_2","height_2","width_3","height_3","repeat","SMALL_IMAGE","SAMPLE_TEXT","FontMetrics","_data","_document","parseMetrics","span","margin","verticalAlign","baseline","middle","getMetrics","MASK_OFFSET","CanvasRenderer","_activeEffects","fontMetrics","translate","textBaseline","applyEffects","popEffect","applyEffect","clip","restore","renderStack","globalAlpha","renderStackContent","renderNode","paint","renderNodeBackgroundAndBorders","renderNodeContent","renderTextWithLetterSpacing","fillText","letters","letter","measureText","createFontStyle","variant","renderTextNode","font","textShadows","shadowColor","shadowOffsetX","shadowOffsetY","shadowBlur","renderReplacedElement","box","iframeRenderer","beginPath","arc","isTextInputElement","canvasTextAlign","_f","_g","_j","_m","_o","_p","mask","paths","moveTo","lineTo","formatPath","closePath","bezierCurveTo","renderRepeat","resizeImage","renderBackgroundImage","_loop_1","this_1","x0","y0","gradient_1","top_1","radialGradient_1","midX","midY","invF","createPattern","createLinearGradient","addColorStop","createRadialGradient","renderBorder","curvePoints","hasBackground","borders","borders_1","calculateBackgroundCurvedPaintingArea","borderBoxArea","maskOffset","shadowPaintingArea","ForeignObjectRenderer","loadSerializedSVG$1","parseColor$1","html2canvas","renderElement","instanceName","defaultResourceOptions","resourceOptions","defaultOptions","windowBounds","documentCloner","clonedElement","defaultBackgroundColor","renderOptions","renderer","removeContainer","foreignObjectRendering","download","fileType","confirmDelete"],"mappings":"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,EACA,EACA,EACA,EACA,EACA,GAEJ9kB,OAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAGJ2mC,GAAS,CACT7hB,SAAU,CACN,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEJ9kB,OAAQ,CACJ,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAGJwmC,GAAW,CACX1hB,SAAU,CACN,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEJ9kB,OAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAGJ+zC,GAAwB,SAAU5/F,EAAO+zD,EAAK9tD,EAAKkwD,EAAS1Y,EAAUoiD,GACtE,OAAI7/F,EAAQ+zD,GAAO/zD,EAAQiG,EAChB65F,GAAkB9/F,EAAOy9C,EAAUoiD,EAAO5lG,OAAS,GAEtDk8D,EAAQwa,SAAShT,QAAO,SAAUhP,EAAQoxC,EAASxiG,GACvD,MAAOyC,GAAS+/F,EACZ//F,GAAS+/F,EACTpxC,GAAUwH,EAAQtK,OAAOtuD,GAE7B,OAAOoxD,IACR,IAAMkxC,GAETG,GAAuC,SAAUhgG,EAAOigG,EAAsBC,EAAWC,GACzF,IAAIxxC,EAAS,GACb,GACSuxC,GACDlgG,IAEJ2uD,EAASwxC,EAASngG,GAAS2uD,EAC3B3uD,GAASigG,QACJjgG,EAAQigG,GAAwBA,GACzC,OAAOtxC,GAEPyxC,GAA8B,SAAUpgG,EAAOqgG,EAAqBC,EAAmBJ,EAAWL,GAClG,IAAII,EAAuBK,EAAoBD,EAAsB,EACrE,OAASrgG,EAAQ,EAAI,IAAM,KACtBggG,GAAqCr+F,KAAKC,IAAI5B,GAAQigG,EAAsBC,GAAW,SAAU77B,GAC9F,OAAOF,EAAcxiE,KAAKq7C,MAAMqnB,EAAY47B,GAAwBI,MAEpER,IAERU,GAAgC,SAAUvgG,EAAOm2D,EAAS0pC,QAC3C,IAAXA,IAAqBA,EAAS,MAClC,IAAII,EAAuB9pC,EAAQl8D,OACnC,OAAQ+lG,GAAqCr+F,KAAKC,IAAI5B,GAAQigG,GAAsB,GAAO,SAAU57B,GAAa,OAAOlO,EAAQx0D,KAAKq7C,MAAMqnB,EAAY47B,OAA6BJ,GAErLW,GAAY,EACZC,GAAuB,EACvBC,GAA4B,EAC5BC,GAA2B,EAC3BC,GAAmB,SAAU5gG,EAAO6gG,EAASC,EAAaC,EAAclB,EAAQ5sB,GAChF,GAAIjzE,GAAS,MAAQA,EAAQ,KACzB,OAAO8/F,GAAkB9/F,EAAO4wF,GAAgBS,YAAawO,EAAO5lG,OAAS,GAEjF,IAAI+mG,EAAMr/F,KAAKC,IAAI5B,GACf2uD,EAASkxC,EACb,GAAY,IAARmB,EACA,OAAOH,EAAQ,GAAKlyC,EAExB,IAAK,IAAI6lB,EAAQ,EAAGwsB,EAAM,GAAKxsB,GAAS,EAAGA,IAAS,CAChD,IAAIysB,EAAcD,EAAM,GACJ,IAAhBC,GAAqBtzE,GAASslD,EAAOutB,KAAyB,KAAX7xC,EACnDA,EAASkyC,EAAQI,GAAetyC,EAE3BsyC,EAAc,GACF,IAAhBA,GAA+B,IAAVzsB,GACL,IAAhBysB,GAA+B,IAAVzsB,GAAe7mD,GAASslD,EAAOwtB,KACpC,IAAhBQ,GAA+B,IAAVzsB,GAAe7mD,GAASslD,EAAOytB,KAA8B1gG,EAAQ,KAC1E,IAAhBihG,GAAqBzsB,EAAQ,GAAK7mD,GAASslD,EAAO0tB,IACnDhyC,EAASkyC,EAAQI,IAAgBzsB,EAAQ,EAAIssB,EAAYtsB,EAAQ,GAAK,IAAM7lB,EAEvD,IAAhBsyC,GAAqBzsB,EAAQ,IAClC7lB,EAASmyC,EAAYtsB,EAAQ,GAAK7lB,GAEtCqyC,EAAMr/F,KAAKq7C,MAAMgkD,EAAM,IAE3B,OAAQhhG,EAAQ,EAAI+gG,EAAe,IAAMpyC,GAEzCuyC,GAA+B,OAC/BC,GAA6B,OAC7BC,GAAoB,OACpBC,GAAkB,OAClBvB,GAAoB,SAAU9/F,EAAO/D,EAAMqlG,GAC3C,IAAIC,EAAgBD,EAAe,KAAO,GACtCE,EAAYF,EAAe,IAAM,GACjCG,EAAeH,EAAe,KAAO,GACrCI,EAAcJ,EAAe,IAAM,GACvC,OAAQrlG,GACJ,KAAK20F,GAAgBM,KACjB,MAAO,IAAMwQ,EACjB,KAAK9Q,GAAgBjK,OACjB,MAAO,IAAM+a,EACjB,KAAK9Q,GAAgBO,OACjB,MAAO,IAAMuQ,EACjB,KAAK9Q,GAAgBU,qBACjB,IAAI3iC,EAASyxC,GAA4BpgG,EAAO,GAAI,IAAI,EAAMuhG,GAC9D,OAAO5yC,EAAO10D,OAAS,EAAI,IAAM00D,EAASA,EAC9C,KAAKiiC,GAAgBS,YACjB,OAAOkP,GAA8BvgG,EAAO,aAAcwhG,GAC9D,KAAK5Q,GAAgBW,YACjB,OAAOqO,GAAsB5/F,EAAO,EAAG,KAAM2/F,GAAa/O,GAAgBQ,QAASmQ,GAAejmG,cACtG,KAAKs1F,GAAgBY,YACjB,OAAOoO,GAAsB5/F,EAAO,EAAG,KAAM2/F,GAAa/O,GAAgBQ,QAASmQ,GACvF,KAAK3Q,GAAgBa,YACjB,OAAO2O,GAA4BpgG,EAAO,IAAK,KAAK,EAAOuhG,GAC/D,KAAK3Q,GAAgBc,YACjB,OAAO0O,GAA4BpgG,EAAO,GAAI,KAAK,EAAOuhG,GAC9D,KAAK3Q,GAAgBe,YACjB,OAAOyO,GAA4BpgG,EAAO,GAAI,IAAI,EAAOuhG,GAC7D,KAAK3Q,GAAgBgB,aACjB,OAAOwO,GAA4BpgG,EAAO,KAAM,MAAM,EAAMuhG,GAChE,KAAK3Q,GAAgBiB,SACrB,KAAKjB,GAAgBuD,eACjB,OAAOyL,GAAsB5/F,EAAO,EAAG,KAAM6xF,GAAUjB,GAAgBQ,QAASmQ,GACpF,KAAK3Q,GAAgByC,eACjB,OAAOuM,GAAsB5/F,EAAO,EAAG,KAAM6xF,GAAUjB,GAAgBQ,QAASmQ,GAAejmG,cACnG,KAAKs1F,GAAgBkB,QACjB,OAAOsO,GAA4BpgG,EAAO,KAAM,MAAM,EAAMuhG,GAChE,KAAK3Q,GAAgBmB,UACrB,KAAKnB,GAAgBoC,MACjB,OAAOoN,GAA4BpgG,EAAO,KAAM,MAAM,EAAMuhG,GAChE,KAAK3Q,GAAgBoB,mBACjB,OAAOuO,GAA8BvgG,EAAO,eAAgBwhG,GAChE,KAAK5Q,GAAgBqB,kBACjB,OAAOsO,GAA8BvgG,EAAO,aAAcwhG,GAC9D,KAAK5Q,GAAgBsB,gBACrB,KAAKtB,GAAgBsD,sBACjB,OAAO0M,GAAiB5gG,EAAO,aAAckhG,GAA8B,IAAKM,EAAWf,GAAuBC,GAA4BC,IAClJ,KAAK/P,GAAgBqD,oBACjB,OAAO2M,GAAiB5gG,EAAO,aAAcmhG,GAA4B,IAAKK,EAAWhB,GAAYC,GAAuBC,GAA4BC,IAC5J,KAAK/P,GAAgBgD,sBACjB,OAAOgN,GAAiB5gG,EAAO,aAAckhG,GAA8B,IAAKM,EAAWf,GAAuBC,GAA4BC,IAClJ,KAAK/P,GAAgB+C,oBACjB,OAAOiN,GAAiB5gG,EAAO,aAAcmhG,GAA4B,IAAKK,EAAWhB,GAAYC,GAAuBC,GAA4BC,IAC5J,KAAK/P,GAAgBgC,kBACjB,OAAOgO,GAAiB5gG,EAAO,aAAc,OAAQohG,GAAmBI,EAAW,GACvF,KAAK5Q,GAAgB+B,gBACjB,OAAOiO,GAAiB5gG,EAAO,aAAc,OAAQohG,GAAmBI,EAAWhB,GAAYC,GAAuBC,IAC1H,KAAK9P,GAAgBqC,qBACjB,OAAO2N,GAAiB5gG,EAAO,aAAc,OAAQqhG,GAAiBI,EAAcjB,GAAYC,GAAuBC,IAC3H,KAAK9P,GAAgBuC,sBACjB,OAAOyN,GAAiB5gG,EAAO,aAAc,OAAQqhG,GAAiBI,EAAc,GACxF,KAAK7Q,GAAgBsC,oBACjB,OAAO0N,GAAiB5gG,EAAO,aAAc,MAAOqhG,GAAiBI,EAAcjB,GAAYC,GAAuBC,IAC1H,KAAK9P,GAAgBuB,WACjB,OAAOiO,GAA4BpgG,EAAO,KAAO,MAAO,EAAMuhG,GAClE,KAAK3Q,GAAgByB,SACjB,OAAOuN,GAAsB5/F,EAAO,EAAG,MAAOqyF,GAAUzB,GAAgBQ,QAASmQ,GACrF,KAAK3Q,GAAgB0B,SACjB,OAAO8N,GAA4BpgG,EAAO,KAAO,MAAO,EAAMuhG,GAClE,KAAK3Q,GAAgB2B,SACjB,OAAO6N,GAA4BpgG,EAAO,KAAO,MAAO,EAAMuhG,GAClE,KAAK3Q,GAAgB4B,OACjB,OAAOoN,GAAsB5/F,EAAO,EAAG,MAAOwyF,GAAQ5B,GAAgBQ,QAASmQ,GACnF,KAAK3Q,GAAgB6B,SACjB,OAAO8N,GAA8BvgG,EAAO,oDAChD,KAAK4wF,GAAgB8B,eACjB,OAAO6N,GAA8BvgG,EAAO,mDAChD,KAAK4wF,GAAgBiC,QACjB,OAAOuN,GAA4BpgG,EAAO,KAAO,MAAO,EAAMuhG,GAClE,KAAK3Q,GAAgBkC,SACjB,OAAOyN,GAA8BvgG,EAAO,mDAAoDwhG,GACpG,KAAK5Q,GAAgBmC,eACjB,OAAOwN,GAA8BvgG,EAAO,kDAAmDwhG,GACnG,KAAK5Q,GAAgBwC,IACjB,OAAOgN,GAA4BpgG,EAAO,KAAO,MAAO,EAAMuhG,GAClE,KAAK3Q,GAAgB2C,UACjB,OAAO6M,GAA4BpgG,EAAO,KAAQ,MAAQ,EAAMuhG,GACpE,KAAK3Q,GAAgB4C,QACjB,OAAO4M,GAA4BpgG,EAAO,KAAQ,MAAQ,EAAMuhG,GACpE,KAAK3Q,GAAgB6C,MACjB,OAAO2M,GAA4BpgG,EAAO,KAAO,MAAO,EAAMuhG,GAClE,KAAK3Q,GAAgB8C,QACjB,OAAO0M,GAA4BpgG,EAAO,KAAO,MAAO,EAAMuhG,GAClE,KAAK3Q,GAAgBiD,MACjB,OAAOuM,GAA4BpgG,EAAO,KAAO,MAAO,EAAMuhG,GAClE,KAAK3Q,GAAgBkD,OACjB,OAAOsM,GAA4BpgG,EAAO,KAAO,MAAO,EAAMuhG,GAClE,KAAK3Q,GAAgBmD,KACjB,OAAOqM,GAA4BpgG,EAAO,KAAO,MAAO,EAAMuhG,GAClE,KAAK3Q,GAAgBoD,QACjB,OAAOoM,GAA4BpgG,EAAO,KAAO,MAAO,EAAMuhG,GAClE,KAAK3Q,GAAgBQ,QACrB,QACI,OAAOgP,GAA4BpgG,EAAO,GAAI,IAAI,EAAMuhG,KAIhEI,GAAmB,0BACnBC,GAAgC,WAChC,SAASA,EAAer9D,EAASvpC,GAM7B,GALAlB,KAAKkB,QAAUA,EACflB,KAAK+nG,iBAAmB,GACxB/nG,KAAKgoG,iBAAmBv9D,EACxBzqC,KAAKulG,SAAW,IAAID,GACpBtlG,KAAKioG,WAAa,GACbx9D,EAAQ+X,cACT,MAAM,IAAI/hD,MAAM,kDAEpBT,KAAKm2B,gBAAkBn2B,KAAK2yC,UAAUlI,EAAQ+X,cAAcrsB,iBA+UhE,OA7UA2xE,EAAe1pG,UAAU8pG,SAAW,SAAU1lD,EAAe2lD,GACzD,IAAIh2D,EAAQnyC,KACRo2D,EAASgyC,GAAsB5lD,EAAe2lD,GAClD,IAAK/xC,EAAOG,cACR,OAAOltB,QAAQE,OAAO,gCAE1B,IAAI8+D,EAAU7lD,EAAcvU,YAAYq6D,YACpCC,EAAU/lD,EAAcvU,YAAYu6D,YACpCC,EAAcryC,EAAOG,cACrBmyC,EAAgBD,EAAYloG,SAI5BooG,EAAaC,GAAaxyC,GAAQx6B,MAAK,WAAc,OAAOstC,EAAU/2B,OAAO,OAAQ,GAAQ,WAC7F,IAAI02D,EACJ,OAAOt/B,EAAYvpE,MAAM,SAAU+xE,GAC/B,OAAQA,EAAGx6D,OACP,KAAK,EAYD,OAXAvX,KAAK+nG,iBAAiB36F,QAAQ07F,IAC1BL,IACAA,EAAYvtE,SAASitE,EAAWzpF,KAAMypF,EAAWxpF,MAC7C,sBAAsBrd,KAAKD,UAAUE,YACpCknG,EAAYF,UAAYJ,EAAWxpF,KAAO8pF,EAAYJ,UAAYF,EAAWzpF,OAC9EgqF,EAAcvyE,gBAAgB7S,MAAM3E,KAAOwpF,EAAWxpF,IAAM,KAC5D+pF,EAAcvyE,gBAAgB7S,MAAM5E,MAAQypF,EAAWzpF,KAAO,KAC9DgqF,EAAcvyE,gBAAgB7S,MAAMic,SAAW,aAGvDspE,EAAU7oG,KAAKkB,QAAQ2nG,QACoB,qBAAhC7oG,KAAK+oG,uBACL,CAAC,EAAc1/D,QAAQE,OAAO,qBAAuBvpC,KAAKgoG,iBAAiBr3D,SAAW,4BAE3F+3D,EAAcM,OAASN,EAAcM,MAAMC,MAC1C,CAAC,EAAaP,EAAcM,MAAMC,OADuB,CAAC,EAAa,GAElF,KAAK,EACDl3B,EAAGvI,OACHuI,EAAGx6D,MAAQ,EACf,KAAK,EACD,MAAuB,oBAAZsxF,EACA,CAAC,EAAcx/D,QAAQC,UACrB1N,MAAK,WAAc,OAAOitE,EAAQH,MAClC9sE,MAAK,WAAc,OAAOw6B,MAEhC,CAAC,EAAcA,aAUtC,OANAsyC,EAAclyC,OACdkyC,EAAc3nE,MAAMmoE,GAAiB3oG,SAAS4oG,SAAW,iBAEzDC,GAAmBppG,KAAKgoG,iBAAiBxlD,cAAe6lD,EAASE,GACjEG,EAAcxH,aAAawH,EAAcW,UAAUrpG,KAAKm2B,iBAAkBuyE,EAAcvyE,iBACxFuyE,EAAcjyC,QACPkyC,GAEXb,EAAe1pG,UAAUkrG,mBAAqB,SAAUz6F,GACpD,GAAI41F,GAAgB51F,GAChB,OAAO7O,KAAKupG,kBAAkB16F,GAOlC,GAAIu2F,GAAev2F,GACf,OAAO7O,KAAKwpG,iBAAiB36F,GAEjC,IAAIgiC,EAAQhiC,EAAK8jC,WAAU,GAM3B,OAJI6xD,GAAe3zD,IAA4B,SAAlBA,EAAM3N,UAE/B2N,EAAM3N,QAAU,SAEb2N,GAEXi3D,EAAe1pG,UAAUorG,iBAAmB,SAAU36F,GAClD,IACI,IAAI46F,EAAQ56F,EAAK46F,MACjB,GAAIA,GAASA,EAAMC,SAAU,CACzB,IAAI1mG,EAAM,GAAG4iC,MAAMxoC,KAAKqsG,EAAMC,SAAU,GAAG7lC,QAAO,SAAU7gE,EAAK2mG,GAC7D,OAAIA,GAAgC,kBAAjBA,EAAK7lG,QACbd,EAAM2mG,EAAK7lG,QAEfd,IACR,IACCsgB,EAAQzU,EAAK8jC,WAAU,GAE3B,OADArvB,EAAMy7B,YAAc/7C,EACbsgB,GAGf,MAAO/J,IAGH,GADAm2E,GAAOG,YAAY7vF,KAAKkB,QAAQd,IAAIqQ,MAAM,qCAAsC8I,IACjE,kBAAXA,GAAE/b,KACF,MAAM+b,GAGd,OAAO1K,EAAK8jC,WAAU,IAE1Bm1D,EAAe1pG,UAAUmrG,kBAAoB,SAAUluE,GACnD,GAAIr7B,KAAKkB,QAAQ0oG,cAAgBvuE,EAAOmnB,cAAe,CACnD,IAAIpf,EAAM/H,EAAOmnB,cAActgD,cAAc,OAC7C,IAEI,OADAkhC,EAAI9C,IAAMjF,EAAOY,YACVmH,EAEX,MAAO7pB,IACHm2E,GAAOG,YAAY7vF,KAAKkB,QAAQd,IAAImkC,KAAK,uDAGjD,IAAIslE,EAAexuE,EAAOsX,WAAU,GACpC,IACIk3D,EAAaj5F,MAAQyqB,EAAOzqB,MAC5Bi5F,EAAa/4F,OAASuqB,EAAOvqB,OAC7B,IAAI48B,EAAMrS,EAAOC,WAAW,MACxBwuE,EAAYD,EAAavuE,WAAW,MASxC,OARIwuE,IACIp8D,EACAo8D,EAAUC,aAAar8D,EAAIshD,aAAa,EAAG,EAAG3zD,EAAOzqB,MAAOyqB,EAAOvqB,QAAS,EAAG,GAG/Eg5F,EAAUvb,UAAUlzD,EAAQ,EAAG,IAGhCwuE,EAEX,MAAOtwF,KACP,OAAOswF,GA+DX/B,EAAe1pG,UAAUu0C,UAAY,SAAU9jC,GAC3C,GAAIm1F,GAAWn1F,GACX,OAAOtO,SAASyD,eAAe6K,EAAKhP,MAExC,IAAKgP,EAAK2zC,cACN,OAAO3zC,EAAK8jC,WAAU,GAE1B,IAAIz/B,EAASrE,EAAK2zC,cAAcvU,YAChC,GAAI/6B,GAAU+wF,GAAcp1F,KAAUwxF,GAAkBxxF,IAASq2F,GAAiBr2F,IAAQ,CACtF,IAAIgiC,EAAQ7wC,KAAKspG,mBAAmBz6F,GAChCyU,EAAQpQ,EAAOg7B,iBAAiBr/B,GAChCm7F,EAAc92F,EAAOg7B,iBAAiBr/B,EAAM,WAC5Co7F,EAAa/2F,EAAOg7B,iBAAiBr/B,EAAM,UAC3C7O,KAAKgoG,mBAAqBn5F,GAAQwxF,GAAkBxvD,KACpD7wC,KAAK+oG,uBAAyBl4D,GAE9Bi0D,GAAcj0D,IACdq5D,GAAuBr5D,GAI3B,IAFA,IAAI00D,EAAWvlG,KAAKulG,SAAS1lF,MAAM,IAAIigF,GAA4Bx8E,IAC/DyjB,EAAS/mC,KAAKmqG,qBAAqBt7F,EAAMgiC,EAAOm5D,EAAajM,GAAkBqM,QAC1E72D,EAAQ1kC,EAAKxK,WAAYkvC,EAAOA,EAAQA,EAAMkP,YAC9CwhD,GAAc1wD,KACb8xD,GAAgB9xD,IACbA,EAAM82D,aAAaxC,KACoB,oBAAhC7nG,KAAKkB,QAAQopG,gBAAkCtqG,KAAKkB,QAAQopG,eAAe/2D,KAClFvzC,KAAKkB,QAAQqpG,YAAetG,GAAc1wD,IAAW6xD,GAAe7xD,IACrE1C,EAAMzuC,YAAYpC,KAAK2yC,UAAUY,IAIzCxM,GACA8J,EAAM3sC,aAAa6iC,EAAQ8J,EAAMxsC,YAErC,IAAI6iC,EAAQlnC,KAAKmqG,qBAAqBt7F,EAAMgiC,EAAOo5D,EAAYlM,GAAkByM,OAgBjF,OAfItjE,GACA2J,EAAMzuC,YAAY8kC,GAEtBlnC,KAAKulG,SAAS17B,IAAI07B,GACdjiF,IAAUtjB,KAAKkB,QAAQqpG,YAAcrF,GAAiBr2F,MAAWg2F,GAAgBh2F,IACjF47F,GAAcnnF,EAAOutB,GAGF,IAAnBhiC,EAAKoiC,WAAuC,IAApBpiC,EAAKmiC,YAC7BhxC,KAAK+nG,iBAAiB1nG,KAAK,CAACwwC,EAAOhiC,EAAKmiC,WAAYniC,EAAKoiC,aAExDozD,GAAkBx1F,IAAS01F,GAAgB11F,MAC3Cw1F,GAAkBxzD,IAAU0zD,GAAgB1zD,MAC7CA,EAAM3qC,MAAQ2I,EAAK3I,OAEhB2qC,EAEX,OAAOhiC,EAAK8jC,WAAU,IAE1Bm1D,EAAe1pG,UAAU+rG,qBAAuB,SAAUt7F,EAAMgiC,EAAOvtB,EAAOonF,GAC1E,IAAIv4D,EAAQnyC,KACZ,GAAKsjB,EAAL,CAGA,IAAIpd,EAAQod,EAAM3kB,QACd4B,EAAWswC,EAAM2R,cACrB,GAAKjiD,GAAa2F,GAAmB,SAAVA,GAA8B,qBAAVA,GAAkD,SAAlBod,EAAMwY,QAArF,CAGA97B,KAAKulG,SAAS1lF,MAAM,IAAIigF,GAA4Bx8E,IACpD,IAAI87E,EAAc,IAAIS,GAA2Bv8E,GAC7CqnF,EAA2BpqG,EAAS2B,cAAc,4BACtDuoG,GAAcnnF,EAAOqnF,GACrBvL,EAAYzgG,QAAQyO,SAAQ,SAAU0rE,GAClC,GAAIA,EAAM32E,OAASwoE,EAAUuQ,aACzByvB,EAAyBvoG,YAAY7B,EAASyD,eAAe80E,EAAM5yE,aAElE,GAAI4yE,EAAM32E,OAASwoE,EAAUqQ,UAAW,CACzC,IAAI53C,EAAM7iC,EAAS2B,cAAc,OACjCkhC,EAAI9C,IAAMw4C,EAAM5yE,MAChBk9B,EAAI9f,MAAMtI,QAAU,IACpB2vF,EAAyBvoG,YAAYghC,QAEpC,GAAI01C,EAAM32E,OAASwoE,EAAUuS,UAC9B,GAAmB,SAAfpE,EAAMt7E,KAAiB,CACvB,IAAIotG,EAAO9xB,EAAM/mB,OAAOpuD,OAAO05E,IAC3ButB,EAAKzqG,QACLwqG,EAAyBvoG,YAAY7B,EAASyD,eAAe6K,EAAKgyB,aAAa+pE,EAAK,GAAG1kG,QAAU,UAGpG,GAAmB,YAAf4yE,EAAMt7E,KAAoB,CAC/B,IAAIu0E,EAAK+G,EAAM/mB,OAAOpuD,OAAO85E,IAA0B6gB,EAAUvsB,EAAG,GAAI84B,EAAe94B,EAAG,GAC1F,GAAIusB,GAAWjhB,GAAaihB,GAAU,CAClC,IAAIwM,EAAe34D,EAAMozD,SAASC,gBAAgBlH,EAAQp4F,OACtD6kG,EAAcF,GAAgBxtB,GAAawtB,GACzC1T,GAAct3E,MAAMgrF,EAAa3kG,OACjC4wF,GAAgBQ,QACtBqT,EAAyBvoG,YAAY7B,EAASyD,eAAegiG,GAAkB8E,EAAcC,GAAa,WAG7G,GAAmB,aAAfjyB,EAAMt7E,KAAqB,CAChC,IAAIoiF,EAAK9G,EAAM/mB,OAAOpuD,OAAO85E,IAA2CutB,GAAjB1M,EAAU1e,EAAG,GAAYA,EAAG,IAAIirB,EAAejrB,EAAG,GACzG,GAAI0e,GAAWjhB,GAAaihB,GAAU,CAClC,IAAI2M,EAAgB94D,EAAMozD,SAASE,iBAAiBnH,EAAQp4F,OACxDglG,EAAgBL,GAAgBxtB,GAAawtB,GAC3C1T,GAAct3E,MAAMgrF,EAAa3kG,OACjC4wF,GAAgBQ,QAClB6T,EAAYH,GAASA,EAAM7oG,OAASwoE,EAAUuQ,aAAe8vB,EAAM9kG,MAAQ,GAC3EyL,EAAOs5F,EACN/rG,KAAI,SAAUgH,GAAS,OAAO8/F,GAAkB9/F,EAAOglG,GAAe,MACtE5rG,KAAK6rG,GACVR,EAAyBvoG,YAAY7B,EAASyD,eAAe2N,WAIpE,GAAImnE,EAAM32E,OAASwoE,EAAUoQ,YAC9B,OAAQjC,EAAM5yE,OACV,IAAK,aACDykG,EAAyBvoG,YAAY7B,EAASyD,eAAe66F,GAASO,EAAYV,OAAQvsD,EAAM81D,cAAc,KAC9G,MACJ,IAAK,cACD0C,EAAyBvoG,YAAY7B,EAASyD,eAAe66F,GAASO,EAAYV,SAAUvsD,EAAM81D,YAAY,KAC9G,MACJ,QAEI0C,EAAyBvoG,YAAY7B,EAASyD,eAAe80E,EAAM5yE,YAInFykG,EAAyB52E,UAAYq3E,GAAmC,IAAMC,GAC9E,IAAIC,EAAeZ,IAAc3M,GAAkBqM,OAC7C,IAAMgB,GACN,IAAMC,GAOZ,OANInG,GAAiBr0D,GACjBA,EAAM9c,UAAUw3E,WAAaD,EAG7Bz6D,EAAM9c,WAAau3E,EAEhBX,KAEX7C,EAAejhD,QAAU,SAAU1X,GAC/B,QAAIA,EAAU1sC,aACV0sC,EAAU1sC,WAAWC,YAAYysC,IAC1B,IAIR24D,EAzVwB,IA4VnC,SAAW/J,GACPA,EAAkBA,EAAkB,UAAY,GAAK,SACrDA,EAAkBA,EAAkB,SAAW,GAAK,SAFxD,CAGGA,KAAsBA,GAAoB,KAC7C,IA6FIyN,GA7FApD,GAAwB,SAAU5lD,EAAe89C,GACjD,IAAImL,EAAuBjpD,EAActgD,cAAc,UAYvD,OAXAupG,EAAqB13E,UAAY,wBACjC03E,EAAqBnoF,MAAM45E,WAAa,SACxCuO,EAAqBnoF,MAAMic,SAAW,QACtCksE,EAAqBnoF,MAAM5E,KAAO,WAClC+sF,EAAqBnoF,MAAM3E,IAAM,MACjC8sF,EAAqBnoF,MAAMqB,OAAS,IACpC8mF,EAAqB76F,MAAQ0vF,EAAO1vF,MAAM7Q,WAC1C0rG,EAAqB36F,OAASwvF,EAAOxvF,OAAO/Q,WAC5C0rG,EAAqB1jD,UAAY,KACjC0jD,EAAqBtnG,aAAa0jG,GAAkB,QACpDrlD,EAAc5oC,KAAKxX,YAAYqpG,GACxBA,GAEP7C,GAAe,SAAUxyC,GACzB,OAAO,IAAI/sB,SAAQ,SAAUC,EAASC,GAClC,IAAIk/D,EAAcryC,EAAOG,cACzB,IAAKkyC,EACD,OAAOl/D,EAAO,iCAElB,IAAIm/D,EAAgBD,EAAYloG,SAChCkoG,EAAYpZ,OAASj5B,EAAOi5B,OAASqZ,EAAcvnE,mBAAqB,WACpEsnE,EAAYpZ,OAASj5B,EAAOi5B,OAASqZ,EAAcvnE,mBAAqB,KACxE,IAAIuqE,EAAWjnD,aAAY,WACnBikD,EAAc9uF,KAAK3V,WAAW9D,OAAS,GAAkC,aAA7BuoG,EAAc1nE,aAC1DslB,cAAcolD,GACdpiE,EAAQ8sB,MAEb,SAIXq0C,GAAgB,SAAUnnF,EAAOqQ,GAEjC,IAAK,IAAIz2B,EAAIomB,EAAMnjB,OAAS,EAAGjD,GAAK,EAAGA,IAAK,CACxC,IAAIiB,EAAWmlB,EAAM7kB,KAAKvB,GAET,YAAbiB,GACAw1B,EAAOrQ,MAAMyO,YAAY5zB,EAAUmlB,EAAMqoF,iBAAiBxtG,IAGlE,OAAOw1B,GAEPu1E,GAAmB,SAAUC,GAC7B,IAAI/nD,EAAM,GAiBV,OAhBI+nD,IACA/nD,GAAO,aACH+nD,EAAQ3rG,OACR4jD,GAAO+nD,EAAQ3rG,MAEf2rG,EAAQyC,iBACRxqD,GAAO+nD,EAAQyC,gBAEfzC,EAAQ0C,WACRzqD,GAAO,IAAO+nD,EAAQ0C,SAAW,KAEjC1C,EAAQ2C,WACR1qD,GAAO,IAAO+nD,EAAQ2C,SAAW,KAErC1qD,GAAO,KAEJA,GAEPgoD,GAAqB,SAAU5mD,EAAe96C,EAAGC,GAC7C66C,GACAA,EAAcvU,cACbvmC,IAAM86C,EAAcvU,YAAYq6D,aAAe3gG,IAAM66C,EAAcvU,YAAYu6D,cAChFhmD,EAAcvU,YAAY/S,SAASxzB,EAAGC,IAG1CmhG,GAAoB,SAAU/2B,GAC9B,IAAItnC,EAAUsnC,EAAG,GAAIrqE,EAAIqqE,EAAG,GAAIpqE,EAAIoqE,EAAG,GACvCtnC,EAAQuG,WAAatpC,EACrB+iC,EAAQwG,UAAYtpC,GAEpBokG,GAAgB,UAChBC,GAAe,SACfZ,GAAmC,wCACnCC,GAAkC,uCAClCY,GAA4B,mEAC5B/B,GAAyB,SAAUtwF,GACnCsyF,GAAatyF,EAAM,IAAMwxF,GAAmCW,GAAgBE,GAA4B,eAAiBZ,GAAkCW,GAAeC,KAE1KC,GAAe,SAAUtyF,EAAMlY,GAC/B,IAAInB,EAAWqZ,EAAK4oC,cACpB,GAAIjiD,EAAU,CACV,IAAI+iB,EAAQ/iB,EAAS2B,cAAc,SACnCohB,EAAMy7B,YAAcr9C,EACpBkY,EAAKxX,YAAYkhB,MAKzB,SAAWkoF,GACPA,EAASA,EAAS,UAAY,GAAK,SACnCA,EAASA,EAAS,gBAAkB,GAAK,gBAF7C,CAGGA,KAAaA,GAAW,KAC3B,IAuJIW,GAvJAC,GAAY,SAAU96E,EAAGjnB,GACzB,OAAIinB,EAAEnxB,SAAWkK,EAAElK,QACRmxB,EAAEkrB,MAAK,SAAU/xC,EAAGvN,GAAK,OAAOuN,IAAMJ,EAAEnN,OAInDmvG,GAAgB,SAAUnqD,EAAMoqD,EAAQj5E,EAAQk5E,EAAQC,GACxD,OAAOtqD,EAAKhjD,KAAI,SAAUutG,EAAOhpG,GAC7B,OAAQA,GACJ,KAAK,EACD,OAAOgpG,EAAM9mG,IAAI2mG,EAAQj5E,GAC7B,KAAK,EACD,OAAOo5E,EAAM9mG,IAAI2mG,EAASC,EAAQl5E,GACtC,KAAK,EACD,OAAOo5E,EAAM9mG,IAAI2mG,EAASC,EAAQl5E,EAASm5E,GAC/C,KAAK,EACD,OAAOC,EAAM9mG,IAAI2mG,EAAQj5E,EAASm5E,GAE1C,OAAOC,MAIXC,GAAwB,WACxB,SAASA,EAAOhlG,EAAGC,GACf3H,KAAKmC,KAAOqpG,GAASmB,OACrB3sG,KAAK0H,EAAIA,EACT1H,KAAK2H,EAAIA,EAKb,OAHA+kG,EAAOtuG,UAAUuH,IAAM,SAAU2mG,EAAQj5E,GACrC,OAAO,IAAIq5E,EAAO1sG,KAAK0H,EAAI4kG,EAAQtsG,KAAK2H,EAAI0rB,IAEzCq5E,EATgB,GAYvBE,GAAO,SAAUt7E,EAAGjnB,EAAGK,GACvB,OAAO,IAAIgiG,GAAOp7E,EAAE5pB,GAAK2C,EAAE3C,EAAI4pB,EAAE5pB,GAAKgD,EAAG4mB,EAAE3pB,GAAK0C,EAAE1C,EAAI2pB,EAAE3pB,GAAK+C,IAE7DmiG,GAA6B,WAC7B,SAASA,EAAYrgC,EAAOsgC,EAAcC,EAAYtgC,GAClDzsE,KAAKmC,KAAOqpG,GAASwB,aACrBhtG,KAAKwsE,MAAQA,EACbxsE,KAAK8sG,aAAeA,EACpB9sG,KAAK+sG,WAAaA,EAClB/sG,KAAKysE,IAAMA,EAiBf,OAfAogC,EAAYzuG,UAAU6uG,UAAY,SAAUviG,EAAGwiG,GAC3C,IAAIC,EAAKP,GAAK5sG,KAAKwsE,MAAOxsE,KAAK8sG,aAAcpiG,GACzC0iG,EAAKR,GAAK5sG,KAAK8sG,aAAc9sG,KAAK+sG,WAAYriG,GAC9C2iG,EAAKT,GAAK5sG,KAAK+sG,WAAY/sG,KAAKysE,IAAK/hE,GACrC4iG,EAAOV,GAAKO,EAAIC,EAAI1iG,GACpB6iG,EAAOX,GAAKQ,EAAIC,EAAI3iG,GACpB8iG,EAAOZ,GAAKU,EAAMC,EAAM7iG,GAC5B,OAAOwiG,EAAY,IAAIL,EAAY7sG,KAAKwsE,MAAO2gC,EAAIG,EAAME,GAAQ,IAAIX,EAAYW,EAAMD,EAAMF,EAAIrtG,KAAKysE,MAE1GogC,EAAYzuG,UAAUuH,IAAM,SAAU2mG,EAAQj5E,GAC1C,OAAO,IAAIw5E,EAAY7sG,KAAKwsE,MAAM7mE,IAAI2mG,EAAQj5E,GAASrzB,KAAK8sG,aAAannG,IAAI2mG,EAAQj5E,GAASrzB,KAAK+sG,WAAWpnG,IAAI2mG,EAAQj5E,GAASrzB,KAAKysE,IAAI9mE,IAAI2mG,EAAQj5E,KAE5Jw5E,EAAYzuG,UAAUqvG,QAAU,WAC5B,OAAO,IAAIZ,EAAY7sG,KAAKysE,IAAKzsE,KAAK+sG,WAAY/sG,KAAK8sG,aAAc9sG,KAAKwsE,QAEvEqgC,EAvBqB,GAyB5Ba,GAAgB,SAAUxrD,GAAQ,OAAOA,EAAK//C,OAASqpG,GAASwB,cAEhEW,GAA6B,WAC7B,SAASA,EAAYljE,GACjB,IAAI/oC,EAAS+oC,EAAQ/oC,OACjB4+F,EAAS71D,EAAQ61D,OACjBvuB,EAAKkM,GAAyBv8E,EAAOmzF,oBAAqByL,EAAO1vF,MAAO0vF,EAAOxvF,QAAS88F,EAAM77B,EAAG,GAAI87B,EAAM97B,EAAG,GAC9G6N,EAAK3B,GAAyBv8E,EAAOozF,qBAAsBwL,EAAO1vF,MAAO0vF,EAAOxvF,QAASg9F,EAAMluB,EAAG,GAAImuB,EAAMnuB,EAAG,GAC/G78D,EAAKk7D,GAAyBv8E,EAAOqzF,wBAAyBuL,EAAO1vF,MAAO0vF,EAAOxvF,QAASk9F,EAAMjrF,EAAG,GAAIkrF,EAAMlrF,EAAG,GAClHo+C,EAAK8c,GAAyBv8E,EAAOszF,uBAAwBsL,EAAO1vF,MAAO0vF,EAAOxvF,QAASo9F,EAAM/sC,EAAG,GAAIgtC,EAAMhtC,EAAG,GACjHitC,EAAU,GACdA,EAAQ/tG,MAAMutG,EAAME,GAAOxN,EAAO1vF,OAClCw9F,EAAQ/tG,MAAM6tG,EAAMF,GAAO1N,EAAO1vF,OAClCw9F,EAAQ/tG,MAAMwtG,EAAMM,GAAO7N,EAAOxvF,QAClCs9F,EAAQ/tG,MAAM0tG,EAAME,GAAO3N,EAAOxvF,QAClC,IAAIu9F,EAAYxmG,KAAKsE,IAAIi/B,MAAMvjC,KAAMumG,GACjCC,EAAY,IACZT,GAAOS,EACPR,GAAOQ,EACPP,GAAOO,EACPN,GAAOM,EACPL,GAAOK,EACPJ,GAAOI,EACPH,GAAOG,EACPF,GAAOE,GAEX,IAAIC,EAAWhO,EAAO1vF,MAAQk9F,EAC1BS,EAAcjO,EAAOxvF,OAASm9F,EAC9BO,EAAclO,EAAO1vF,MAAQo9F,EAC7BS,EAAanO,EAAOxvF,OAASq9F,EAC7BvY,EAAiBl0F,EAAOk0F,eACxB36C,EAAmBv5C,EAAOu5C,iBAC1B46C,EAAoBn0F,EAAOm0F,kBAC3B76C,EAAkBt5C,EAAOs5C,gBACzBogD,EAAajd,GAAiBz8E,EAAO05F,WAAY3wD,EAAQ61D,OAAO1vF,OAChEmqC,EAAeojC,GAAiBz8E,EAAOq5C,aAActQ,EAAQ61D,OAAO1vF,OACpEyqF,EAAgBld,GAAiBz8E,EAAO25F,cAAe5wD,EAAQ61D,OAAO1vF,OACtEkqC,EAAcqjC,GAAiBz8E,EAAOo5C,YAAarQ,EAAQ61D,OAAO1vF,OACtE5Q,KAAK0uG,iBACDd,EAAM,GAAKC,EAAM,EACXc,GAAerO,EAAO5hF,KAAM4hF,EAAO3hF,IAAKivF,EAAKC,EAAK1B,GAAOyC,UACzD,IAAIlC,GAAOpM,EAAO5hF,KAAM4hF,EAAO3hF,KACzC3e,KAAK6uG,kBACDf,EAAM,GAAKC,EAAM,EACXY,GAAerO,EAAO5hF,KAAO4vF,EAAUhO,EAAO3hF,IAAKmvF,EAAKC,EAAK5B,GAAO2C,WACpE,IAAIpC,GAAOpM,EAAO5hF,KAAO4hF,EAAO1vF,MAAO0vF,EAAO3hF,KACxD3e,KAAK+uG,qBACDf,EAAM,GAAKC,EAAM,EACXU,GAAerO,EAAO5hF,KAAO8vF,EAAalO,EAAO3hF,IAAM4vF,EAAaP,EAAKC,EAAK9B,GAAO6C,cACrF,IAAItC,GAAOpM,EAAO5hF,KAAO4hF,EAAO1vF,MAAO0vF,EAAO3hF,IAAM2hF,EAAOxvF,QACrE9Q,KAAKivG,oBACDf,EAAM,GAAKC,EAAM,EACXQ,GAAerO,EAAO5hF,KAAM4hF,EAAO3hF,IAAM8vF,EAAYP,EAAKC,EAAKhC,GAAO+C,aACtE,IAAIxC,GAAOpM,EAAO5hF,KAAM4hF,EAAO3hF,IAAM2hF,EAAOxvF,QACtD9Q,KAAKmvG,kBACDvB,EAAM,GAAKC,EAAM,EACXc,GAAerO,EAAO5hF,KAAOs8B,EAAiBslD,EAAO3hF,IAAMi3E,EAAgB/tF,KAAKsE,IAAI,EAAGyhG,EAAM5yD,GAAkBnzC,KAAKsE,IAAI,EAAG0hG,EAAMjY,GAAiBuW,GAAOyC,UACzJ,IAAIlC,GAAOpM,EAAO5hF,KAAOs8B,EAAiBslD,EAAO3hF,IAAMi3E,GACjE51F,KAAKovG,mBACDtB,EAAM,GAAKC,EAAM,EACXY,GAAerO,EAAO5hF,KAAO7W,KAAKoyD,IAAIq0C,EAAUhO,EAAO1vF,MAAQoqC,GAAkBslD,EAAO3hF,IAAMi3E,EAAgB0Y,EAAWhO,EAAO1vF,MAAQoqC,EAAkB,EAAI8yD,EAAM9yD,EAAiB+yD,EAAMnY,EAAgBuW,GAAO2C,WAClN,IAAIpC,GAAOpM,EAAO5hF,KAAO4hF,EAAO1vF,MAAQqqC,EAAkBqlD,EAAO3hF,IAAMi3E,GACjF51F,KAAKqvG,sBACDrB,EAAM,GAAKC,EAAM,EACXU,GAAerO,EAAO5hF,KAAO7W,KAAKoyD,IAAIu0C,EAAalO,EAAO1vF,MAAQoqC,GAAkBslD,EAAO3hF,IAAM9W,KAAKoyD,IAAIs0C,EAAajO,EAAOxvF,OAAS8kF,GAAiB/tF,KAAKsE,IAAI,EAAG6hG,EAAM/yD,GAAmBgzD,EAAMpY,EAAmBsW,GAAO6C,cAC7N,IAAItC,GAAOpM,EAAO5hF,KAAO4hF,EAAO1vF,MAAQqqC,EAAkBqlD,EAAO3hF,IAAM2hF,EAAOxvF,OAAS+kF,GACjG71F,KAAKsvG,qBACDpB,EAAM,GAAKC,EAAM,EACXQ,GAAerO,EAAO5hF,KAAOs8B,EAAiBslD,EAAO3hF,IAAM8vF,EAAY5mG,KAAKsE,IAAI,EAAG+hG,EAAMlzD,GAAkBmzD,EAAMtY,EAAmBsW,GAAO+C,aAC3I,IAAIxC,GAAOpM,EAAO5hF,KAAOs8B,EAAiBslD,EAAO3hF,IAAM2hF,EAAOxvF,OAAS+kF,GACjF71F,KAAKuvG,kBACD3B,EAAM,GAAKC,EAAM,EACXc,GAAerO,EAAO5hF,KAAOs8B,EAAkBF,EAAawlD,EAAO3hF,IAAMi3E,EAAiBwF,EAAYvzF,KAAKsE,IAAI,EAAGyhG,GAAO5yD,EAAkBF,IAAejzC,KAAKsE,IAAI,EAAG0hG,GAAOjY,EAAiBwF,IAAc+Q,GAAOyC,UACnN,IAAIlC,GAAOpM,EAAO5hF,KAAOs8B,EAAkBF,EAAawlD,EAAO3hF,IAAMi3E,EAAiBwF,GAChGp7F,KAAKwvG,mBACD1B,EAAM,GAAKC,EAAM,EACXY,GAAerO,EAAO5hF,KAAO7W,KAAKoyD,IAAIq0C,EAAUhO,EAAO1vF,MAAQoqC,EAAkBF,GAAcwlD,EAAO3hF,IAAMi3E,EAAiBwF,EAAYkT,EAAWhO,EAAO1vF,MAAQoqC,EAAkBF,EAAc,EAAIgzD,EAAM9yD,EAAkBF,EAAaizD,GAAOnY,EAAiBwF,GAAa+Q,GAAO2C,WACxR,IAAIpC,GAAOpM,EAAO5hF,KAAO4hF,EAAO1vF,OAASqqC,EAAmBF,GAAeulD,EAAO3hF,IAAMi3E,EAAiBwF,GACnHp7F,KAAKyvG,sBACDzB,EAAM,GAAKC,EAAM,EACXU,GAAerO,EAAO5hF,KAAO7W,KAAKoyD,IAAIu0C,EAAalO,EAAO1vF,OAASoqC,EAAkBF,IAAewlD,EAAO3hF,IAAM9W,KAAKoyD,IAAIs0C,EAAajO,EAAOxvF,OAAS8kF,EAAiBwF,GAAavzF,KAAKsE,IAAI,EAAG6hG,GAAO/yD,EAAmBF,IAAgBkzD,GAAOpY,EAAoBwF,GAAgB8Q,GAAO6C,cAC7R,IAAItC,GAAOpM,EAAO5hF,KAAO4hF,EAAO1vF,OAASqqC,EAAmBF,GAAeulD,EAAO3hF,IAAM2hF,EAAOxvF,QAAU+kF,EAAoBwF,IACvIr7F,KAAK0vG,qBACDxB,EAAM,GAAKC,EAAM,EACXQ,GAAerO,EAAO5hF,KAAOs8B,EAAkBF,EAAawlD,EAAO3hF,IAAM8vF,EAAY5mG,KAAKsE,IAAI,EAAG+hG,GAAOlzD,EAAkBF,IAAeqzD,GAAOtY,EAAoBwF,GAAgB8Q,GAAO+C,aAC3L,IAAIxC,GAAOpM,EAAO5hF,KAAOs8B,EAAkBF,EAAawlD,EAAO3hF,IAAM2hF,EAAOxvF,QAAU+kF,EAAoBwF,IAExH,OAAOsS,EArFqB,IAwFhC,SAAWxB,GACPA,EAAOA,EAAO,YAAc,GAAK,WACjCA,EAAOA,EAAO,aAAe,GAAK,YAClCA,EAAOA,EAAO,gBAAkB,GAAK,eACrCA,EAAOA,EAAO,eAAiB,GAAK,eAJxC,CAKGA,KAAWA,GAAS,KACvB,IAAIwC,GAAiB,SAAUjnG,EAAGC,EAAGgoG,EAAIC,EAAIrwE,GACzC,IAAIswE,GAAchoG,KAAKgC,KAAK,GAAK,GAAK,EAA1B,EACRimG,EAAKH,EAAKE,EACVE,EAAKH,EAAKC,EACVG,EAAKtoG,EAAIioG,EACTM,EAAKtoG,EAAIioG,EACb,OAAQrwE,GACJ,KAAK4sE,GAAOyC,SACR,OAAO,IAAI/B,GAAY,IAAIH,GAAOhlG,EAAGuoG,GAAK,IAAIvD,GAAOhlG,EAAGuoG,EAAKF,GAAK,IAAIrD,GAAOsD,EAAKF,EAAInoG,GAAI,IAAI+kG,GAAOsD,EAAIroG,IAC7G,KAAKwkG,GAAO2C,UACR,OAAO,IAAIjC,GAAY,IAAIH,GAAOhlG,EAAGC,GAAI,IAAI+kG,GAAOhlG,EAAIooG,EAAInoG,GAAI,IAAI+kG,GAAOsD,EAAIC,EAAKF,GAAK,IAAIrD,GAAOsD,EAAIC,IAC5G,KAAK9D,GAAO6C,aACR,OAAO,IAAInC,GAAY,IAAIH,GAAOsD,EAAIroG,GAAI,IAAI+kG,GAAOsD,EAAIroG,EAAIooG,GAAK,IAAIrD,GAAOhlG,EAAIooG,EAAIG,GAAK,IAAIvD,GAAOhlG,EAAGuoG,IAC5G,KAAK9D,GAAO+C,YACZ,QACI,OAAO,IAAIrC,GAAY,IAAIH,GAAOsD,EAAIC,GAAK,IAAIvD,GAAOsD,EAAKF,EAAIG,GAAK,IAAIvD,GAAOhlG,EAAGC,EAAIooG,GAAK,IAAIrD,GAAOhlG,EAAGC,MAGjHuoG,GAAyB,SAAUC,GACnC,MAAO,CAACA,EAAOzB,iBAAkByB,EAAOtB,kBAAmBsB,EAAOpB,qBAAsBoB,EAAOlB,sBAE/FmB,GAA0B,SAAUD,GACpC,MAAO,CACHA,EAAOZ,kBACPY,EAAOX,mBACPW,EAAOV,sBACPU,EAAOT,uBAGXW,GAA0B,SAAUF,GACpC,MAAO,CACHA,EAAOhB,kBACPgB,EAAOf,mBACPe,EAAOd,sBACPc,EAAOb,uBAIXgB,GAAiC,WACjC,SAASA,EAAgB98E,EAASC,EAAS2a,GACvCpuC,KAAKmC,KAAO,EACZnC,KAAKwzB,QAAUA,EACfxzB,KAAKyzB,QAAUA,EACfzzB,KAAKouC,OAASA,EACdpuC,KAAK2zB,OAAS,EAElB,OAAO28E,EARyB,GAUhCC,GAA4B,WAC5B,SAASA,EAAWruD,EAAMvuB,GACtB3zB,KAAKmC,KAAO,EACZnC,KAAK2zB,OAASA,EACd3zB,KAAKkiD,KAAOA,EAEhB,OAAOquD,EANoB,GAQ3BC,GAAoB,SAAUC,GAC9B,OAAuB,IAAhBA,EAAOtuG,MAEduuG,GAAe,SAAUD,GAAU,OAAuB,IAAhBA,EAAOtuG,MAEjDwuG,GAAiC,WACjC,SAASA,EAAgBxhE,GACrBnvC,KAAKyqC,QAAU0E,EACfnvC,KAAK4wG,YAAc,GACnB5wG,KAAK6wG,eAAiB,GACtB7wG,KAAK8wG,eAAiB,GACtB9wG,KAAK+wG,uCAAyC,GAC9C/wG,KAAKgxG,eAAiB,GACtBhxG,KAAKixG,oBAAsB,GAC3BjxG,KAAKkxG,yBAA2B,GAEpC,OAAOP,EAXyB,GAahCQ,GAA8B,WAC9B,SAASA,EAAa1mE,EAAS2mE,GAI3B,GAHApxG,KAAKmvC,UAAY1E,EACjBzqC,KAAKqxG,QAAUD,EAAYxrE,MAAM,GACjC5lC,KAAKmwG,OAAS,IAAIxC,GAAYljE,GACG,OAA7BA,EAAQ/oC,OAAO0mB,UAAoB,CACnC,IAAIoL,EAAUiX,EAAQ61D,OAAO5hF,KAAO+rB,EAAQ/oC,OAAOq7F,gBAAgB,GAAGphB,OAClEloD,EAAUgX,EAAQ61D,OAAO3hF,IAAM8rB,EAAQ/oC,OAAOq7F,gBAAgB,GAAGphB,OACjEvtC,EAAS3D,EAAQ/oC,OAAO0mB,UAC5BpoB,KAAKqxG,QAAQhxG,KAAK,IAAIiwG,GAAgB98E,EAASC,EAAS2a,IAE5D,GAAI3D,EAAQ/oC,OAAO8vC,YAAc0lD,GAAS6D,QAAS,CAC/C,IAAIuW,EAAYpB,GAAuBlwG,KAAKmwG,QACxCoB,EAAalB,GAAwBrwG,KAAKmwG,QAC1C/D,GAAUkF,EAAWC,GACrBvxG,KAAKqxG,QAAQhxG,KAAK,IAAIkwG,GAAWe,EAAW,KAG5CtxG,KAAKqxG,QAAQhxG,KAAK,IAAIkwG,GAAWe,EAAW,IAC5CtxG,KAAKqxG,QAAQhxG,KAAK,IAAIkwG,GAAWgB,EAAY,MAezD,OAXAJ,EAAa/yG,UAAUozG,iBAAmB,WACtC,IAAIH,EAAUrxG,KAAKqxG,QAAQzrE,MAAM,GACjC,GAAI5lC,KAAKmvC,UAAUztC,OAAO8vC,YAAc0lD,GAAS6D,QAAS,CACtD,IAAIuW,EAAYpB,GAAuBlwG,KAAKmwG,QACxCoB,EAAalB,GAAwBrwG,KAAKmwG,QACzC/D,GAAUkF,EAAWC,IACtBF,EAAQhxG,KAAK,IAAIkwG,GAAWgB,EAAY,IAGhD,OAAOF,GAEJF,EAlCsB,GAoC7BM,GAAiB,SAAUjsG,EAAQksG,EAAiBC,EAAqBC,GACzEpsG,EAAO2pC,UAAUixD,SAAShzF,SAAQ,SAAUmmC,GACxC,IAAIs+D,EAA6Bh+E,GAAS0f,EAAM4lC,MAAO,GACnDirB,EAAyBvwE,GAAS0f,EAAM4lC,MAAO,GAC/C24B,EAAiB,IAAIX,GAAa59D,EAAO/tC,EAAOgsG,oBAChD39E,GAAS0f,EAAM7xC,OAAOo6B,QAAS,OAC/B81E,EAAUvxG,KAAKyxG,GAEnB,IAAIC,EAAiBl+E,GAAS0f,EAAM4lC,MAAO,GAAyB,GAAKy4B,EACzE,GAAIC,GAA8BzN,EAAwB,CACtD,IAAIgN,EAAcS,GAA8Bt+D,EAAM7xC,OAAO+9F,eAAiBkS,EAAsBD,EAChG7wC,EAAQ,IAAI8vC,GAAgBmB,GAChC,GAAIv+D,EAAM7xC,OAAO+9F,gBAAkBlsD,EAAM7xC,OAAOsZ,QAAU,GAAKu4B,EAAM7xC,OAAO89F,gBAAiB,CACzF,IAAIwS,EAAUz+D,EAAM7xC,OAAO67F,OAAO72C,MAClC,GAAIsrD,EAAU,EAAG,CACb,IAAIC,EAAU,EACdb,EAAYN,eAAet0D,MAAK,SAAU60B,EAASn0E,GAC/C,OAAI80G,EAAU3gC,EAAQ5mC,QAAQ0E,UAAUztC,OAAO67F,OAAO72C,OAClDurD,EAAU/0G,GACH,GAEF+0G,EAAU,KAKvBb,EAAYN,eAAe53E,OAAO+4E,EAAS,EAAGpxC,QAE7C,GAAImxC,EAAU,EAAG,CAClB,IAAIE,EAAU,EACdd,EAAYJ,eAAex0D,MAAK,SAAU60B,EAASn0E,GAC/C,OAAI80G,GAAW3gC,EAAQ5mC,QAAQ0E,UAAUztC,OAAO67F,OAAO72C,OACnDwrD,EAAUh1G,EAAI,GACP,GAEFg1G,EAAU,KAKvBd,EAAYJ,eAAe93E,OAAOg5E,EAAS,EAAGrxC,QAG9CuwC,EAAYL,uCAAuC1wG,KAAKwgE,QAIxDttB,EAAM7xC,OAAOi+F,aACbyR,EAAYH,oBAAoB5wG,KAAKwgE,GAGrCuwC,EAAYF,yBAAyB7wG,KAAKwgE,GAGlD4wC,GAAeK,EAAgBjxC,EAAOgxC,EAA6BhxC,EAAQ8wC,EAAqBI,QAG5Fx+D,EAAM7xC,OAAOk+F,gBACb8R,EAAgBd,YAAYvwG,KAAKyxG,GAGjCJ,EAAgBb,eAAexwG,KAAKyxG,GAExCL,GAAeK,EAAgBJ,EAAiBC,EAAqBI,GAErEl+E,GAAS0f,EAAM4lC,MAAO,IACtBg5B,GAAiB5+D,EAAOw+D,OAIhCI,GAAmB,SAAUC,EAAOhS,GAGpC,IAFA,IAAIiS,EAAYD,aAAiB7P,GAAqB6P,EAAM5lC,MAAQ,EAChEg2B,EAAW4P,aAAiB7P,IAAqB6P,EAAM5P,SAClDtlG,EAAI,EAAGA,EAAIkjG,EAASjgG,OAAQjD,IAAK,CACtC,IAAIuB,EAAO2hG,EAASljG,GAChBuB,EAAK0wC,qBAAqBmzD,IACM,kBAAzB7jG,EAAK0wC,UAAUjpC,OACG,IAAzBzH,EAAK0wC,UAAUjpC,QACfmsG,EAAY5zG,EAAK0wC,UAAUjpC,OAE/BzH,EAAK6zG,UAAYtM,GAAkBqM,EAAW5zG,EAAK0wC,UAAUztC,OAAOy1F,eAAe,GACnFkb,GAAa7P,GAAY,EAAI,IAGjC+P,GAAwB,SAAUpjE,GAClC,IAAI2iE,EAAiB,IAAIX,GAAahiE,EAAW,IAC7C7yC,EAAO,IAAIq0G,GAAgBmB,GAC3BF,EAAY,GAGhB,OAFAH,GAAeK,EAAgBx1G,EAAMA,EAAMs1G,GAC3CO,GAAiBL,EAAe3iE,UAAWyiE,GACpCt1G,GAGPk2G,GAAqB,SAAUrC,EAAQsC,GACvC,OAAQA,GACJ,KAAK,EACD,OAAOC,GAAqBvC,EAAOzB,iBAAkByB,EAAOhB,kBAAmBgB,EAAOtB,kBAAmBsB,EAAOf,oBACpH,KAAK,EACD,OAAOsD,GAAqBvC,EAAOtB,kBAAmBsB,EAAOf,mBAAoBe,EAAOpB,qBAAsBoB,EAAOd,uBACzH,KAAK,EACD,OAAOqD,GAAqBvC,EAAOpB,qBAAsBoB,EAAOd,sBAAuBc,EAAOlB,oBAAqBkB,EAAOb,sBAC9H,KAAK,EACL,QACI,OAAOoD,GAAqBvC,EAAOlB,oBAAqBkB,EAAOb,qBAAsBa,EAAOzB,iBAAkByB,EAAOhB,qBAG7HuD,GAAuB,SAAUC,EAAQC,EAAQC,EAAQC,GACzD,IAAI5wD,EAAO,GAyBX,OAxBIwrD,GAAciF,GACdzwD,EAAK7hD,KAAKsyG,EAAO1F,UAAU,IAAK,IAGhC/qD,EAAK7hD,KAAKsyG,GAEVjF,GAAcmF,GACd3wD,EAAK7hD,KAAKwyG,EAAO5F,UAAU,IAAK,IAGhC/qD,EAAK7hD,KAAKwyG,GAEVnF,GAAcoF,GACd5wD,EAAK7hD,KAAKyyG,EAAO7F,UAAU,IAAK,GAAMQ,WAGtCvrD,EAAK7hD,KAAKyyG,GAEVpF,GAAckF,GACd1wD,EAAK7hD,KAAKuyG,EAAO3F,UAAU,IAAK,GAAOQ,WAGvCvrD,EAAK7hD,KAAKuyG,GAEP1wD,GAGPqvD,GAAa,SAAU9mE,GACvB,IAAI61D,EAAS71D,EAAQ61D,OACjB5+F,EAAS+oC,EAAQ/oC,OACrB,OAAO4+F,EAAO36F,IAAIjE,EAAOs5C,gBAAiBt5C,EAAOk0F,iBAAkBl0F,EAAOu5C,iBAAmBv5C,EAAOs5C,mBAAoBt5C,EAAOk0F,eAAiBl0F,EAAOm0F,qBAEvJkd,GAAa,SAAUtoE,GACvB,IAAI/oC,EAAS+oC,EAAQ/oC,OACjB4+F,EAAS71D,EAAQ61D,OACjBxlD,EAAcqjC,GAAiBz8E,EAAOo5C,YAAawlD,EAAO1vF,OAC1DmqC,EAAeojC,GAAiBz8E,EAAOq5C,aAAculD,EAAO1vF,OAC5DwqF,EAAajd,GAAiBz8E,EAAO05F,WAAYkF,EAAO1vF,OACxDyqF,EAAgBld,GAAiBz8E,EAAO25F,cAAeiF,EAAO1vF,OAClE,OAAO0vF,EAAO36F,IAAIm1C,EAAcp5C,EAAOs5C,gBAAiBogD,EAAa15F,EAAOk0F,iBAAkBl0F,EAAOu5C,iBAAmBv5C,EAAOs5C,gBAAkBF,EAAcC,KAAiBr5C,EAAOk0F,eAAiBl0F,EAAOm0F,kBAAoBuF,EAAaC,KAGhP2X,GAAqC,SAAUtf,EAAkBjpD,GACjE,OAAyB,IAArBipD,EACOjpD,EAAQ61D,OAEM,IAArB5M,EACOqf,GAAWtoE,GAEf8mE,GAAW9mE,IAElBwoE,GAAkC,SAAUppB,EAAgBp/C,GAC5D,OAAIo/C,IAAmB3J,GAAgBgK,WAC5Bz/C,EAAQ61D,OAEfzW,IAAmB3J,GAAgB+J,YAC5B8oB,GAAWtoE,GAEf8mE,GAAW9mE,IAElByoE,GAA+B,SAAU/jE,EAAW1rC,EAAO0vG,GAC3D,IAAIC,EAA4BJ,GAAmCK,GAA2BlkE,EAAUztC,OAAOgyF,iBAAkBjwF,GAAQ0rC,GACrImkE,EAAyBL,GAAgCI,GAA2BlkE,EAAUztC,OAAOmoF,eAAgBpmF,GAAQ0rC,GAC7HokE,EAAsBC,GAAwBH,GAA2BlkE,EAAUztC,OAAO0yF,eAAgB3wF,GAAQ0vG,EAAeC,GACjIK,EAAYF,EAAoB,GAAIG,EAAaH,EAAoB,GACrEh0E,EAAW0+C,GAAyBo1B,GAA2BlkE,EAAUztC,OAAOiyF,mBAAoBlwF,GAAQ2vG,EAA0BxiG,MAAQ6iG,EAAWL,EAA0BtiG,OAAS4iG,GAC5LxxD,EAAOyxD,GAA8BN,GAA2BlkE,EAAUztC,OAAOmyF,iBAAkBpwF,GAAQ87B,EAAUg0E,EAAqBH,EAA2BE,GACrK9/E,EAAU3rB,KAAKkqC,MAAMqhE,EAA0B10F,KAAO6gB,EAAS,IAC/D9L,EAAU5rB,KAAKkqC,MAAMqhE,EAA0Bz0F,IAAM4gB,EAAS,IAClE,MAAO,CAAC2iB,EAAM1uB,EAASC,EAASggF,EAAWC,IAE3CE,GAAS,SAAU96B,GAAS,OAAOuE,GAAavE,IAAUA,EAAM5yE,QAAU0tF,GAAgBkH,MAC1F+Y,GAAoB,SAAU3tG,GAAS,MAAwB,kBAAVA,GACrDstG,GAA0B,SAAUhnB,EAAMza,EAAIuuB,GAC9C,IAAIyB,EAAiBhwB,EAAG,GAAIkwB,EAAkBlwB,EAAG,GAAI+hC,EAAsB/hC,EAAG,GAC1E0Y,EAAQ+B,EAAK,GAAIunB,EAASvnB,EAAK,GACnC,GAAI5O,GAAmB6M,IAAUspB,GAAUn2B,GAAmBm2B,GAC1D,MAAO,CAAC51B,GAAiBsM,EAAO6V,EAAO1vF,OAAQutE,GAAiB41B,EAAQzT,EAAOxvF,SAEnF,IAAIkjG,EAAyBH,GAAkBC,GAC/C,GAAIz2B,GAAaoN,KAAWA,EAAMvkF,QAAU0tF,GAAgBhB,SAAWnI,EAAMvkF,QAAU0tF,GAAgBjB,OAAQ,CAC3G,GAAIkhB,GAAkBC,GAAsB,CACxC,IAAIG,EAAc3T,EAAO1vF,MAAQ0vF,EAAOxvF,OACxC,OAAOmjG,EAAcH,KAAyBrpB,EAAMvkF,QAAU0tF,GAAgBjB,OACxE,CAAC2N,EAAO1vF,MAAO0vF,EAAO1vF,MAAQkjG,GAC9B,CAACxT,EAAOxvF,OAASgjG,EAAqBxT,EAAOxvF,QAEvD,MAAO,CAACwvF,EAAO1vF,MAAO0vF,EAAOxvF,QAEjC,IAAIojG,EAAoBL,GAAkB9R,GACtCoS,EAAqBN,GAAkB5R,GACvCmS,EAAyBF,GAAqBC,EAElD,GAAIP,GAAOnpB,MAAYspB,GAAUH,GAAOG,IAAU,CAE9C,GAAIG,GAAqBC,EACrB,MAAO,CAACpS,EAAgBE,GAI5B,IAAK+R,IAA2BI,EAC5B,MAAO,CAAC9T,EAAO1vF,MAAO0vF,EAAOxvF,QAKjC,GAAIsjG,GAA0BJ,EAAwB,CAClD,IAAIK,EAAUH,EACRnS,EACAE,EAAkB6R,EACpBQ,EAAWH,EACTlS,EACAF,EAAiB+R,EACvB,MAAO,CAACO,EAASC,GAIrB,IAAIC,EAAUL,EAAoBnS,EAAiBzB,EAAO1vF,MACtD4jG,EAAWL,EAAqBlS,EAAkB3B,EAAOxvF,OAC7D,MAAO,CAACyjG,EAASC,GAIrB,GAAIR,EAAwB,CACxB,IAAIS,EAAU,EACVC,EAAW,EAaf,OAZI92B,GAAmB6M,GACnBgqB,EAAUt2B,GAAiBsM,EAAO6V,EAAO1vF,OAEpCgtE,GAAmBm2B,KACxBW,EAAWv2B,GAAiB41B,EAAQzT,EAAOxvF,SAE3C8iG,GAAOnpB,GACPgqB,EAAUC,EAAWZ,EAEfC,IAAUH,GAAOG,KACvBW,EAAWD,EAAUX,GAElB,CAACW,EAASC,GAMrB,IAAI9jG,EAAQ,KACRE,EAAS,KAmBb,GAlBI8sE,GAAmB6M,GACnB75E,EAAQutE,GAAiBsM,EAAO6V,EAAO1vF,OAElCmjG,GAAUn2B,GAAmBm2B,KAClCjjG,EAASqtE,GAAiB41B,EAAQzT,EAAOxvF,SAE/B,OAAVF,GAAoBmjG,IAAUH,GAAOG,KACrCjjG,EACIojG,GAAqBC,EACdvjG,EAAQmxF,EAAkBE,EAC3B3B,EAAOxvF,QAEN,OAAXA,GAAmB8iG,GAAOnpB,KAC1B75E,EACIsjG,GAAqBC,EACdrjG,EAASmxF,EAAmBF,EAC7BzB,EAAO1vF,OAEP,OAAVA,GAA6B,OAAXE,EAClB,MAAO,CAACF,EAAOE,GAEnB,MAAM,IAAIrQ,MAAM,oDAEhB4yG,GAA6B,SAAUthD,EAAQtuD,GAC/C,IAAIyC,EAAQ6rD,EAAOtuD,GACnB,MAAqB,qBAAVyC,EACA6rD,EAAO,GAEX7rD,GAEPytG,GAAgC,SAAUgB,EAAQ5iC,EAAI6N,EAAIwzB,EAA2BE,GACrF,IAAI5rG,EAAIqqE,EAAG,GAAIpqE,EAAIoqE,EAAG,GAClBnhE,EAAQgvE,EAAG,GAAI9uE,EAAS8uE,EAAG,GAC/B,OAAQ+0B,GACJ,KAAKlhB,GAAkBO,SACnB,MAAO,CACH,IAAI0Y,GAAO7kG,KAAKkqC,MAAMqhE,EAA0B10F,MAAO7W,KAAKkqC,MAAMqhE,EAA0Bz0F,IAAMhX,IAClG,IAAI+kG,GAAO7kG,KAAKkqC,MAAMqhE,EAA0B10F,KAAO00F,EAA0BxiG,OAAQ/I,KAAKkqC,MAAMqhE,EAA0Bz0F,IAAMhX,IACpI,IAAI+kG,GAAO7kG,KAAKkqC,MAAMqhE,EAA0B10F,KAAO00F,EAA0BxiG,OAAQ/I,KAAKkqC,MAAMjhC,EAASsiG,EAA0Bz0F,IAAMhX,IAC7I,IAAI+kG,GAAO7kG,KAAKkqC,MAAMqhE,EAA0B10F,MAAO7W,KAAKkqC,MAAMjhC,EAASsiG,EAA0Bz0F,IAAMhX,KAEnH,KAAK8rF,GAAkBQ,SACnB,MAAO,CACH,IAAIyY,GAAO7kG,KAAKkqC,MAAMqhE,EAA0B10F,KAAOhX,GAAIG,KAAKkqC,MAAMqhE,EAA0Bz0F,MAChG,IAAI+tF,GAAO7kG,KAAKkqC,MAAMqhE,EAA0B10F,KAAOhX,EAAIkJ,GAAQ/I,KAAKkqC,MAAMqhE,EAA0Bz0F,MACxG,IAAI+tF,GAAO7kG,KAAKkqC,MAAMqhE,EAA0B10F,KAAOhX,EAAIkJ,GAAQ/I,KAAKkqC,MAAMqhE,EAA0BtiG,OAASsiG,EAA0Bz0F,MAC3I,IAAI+tF,GAAO7kG,KAAKkqC,MAAMqhE,EAA0B10F,KAAOhX,GAAIG,KAAKkqC,MAAMqhE,EAA0BtiG,OAASsiG,EAA0Bz0F,OAE3I,KAAK80E,GAAkBM,UACnB,MAAO,CACH,IAAI2Y,GAAO7kG,KAAKkqC,MAAMqhE,EAA0B10F,KAAOhX,GAAIG,KAAKkqC,MAAMqhE,EAA0Bz0F,IAAMhX,IACtG,IAAI+kG,GAAO7kG,KAAKkqC,MAAMqhE,EAA0B10F,KAAOhX,EAAIkJ,GAAQ/I,KAAKkqC,MAAMqhE,EAA0Bz0F,IAAMhX,IAC9G,IAAI+kG,GAAO7kG,KAAKkqC,MAAMqhE,EAA0B10F,KAAOhX,EAAIkJ,GAAQ/I,KAAKkqC,MAAMqhE,EAA0Bz0F,IAAMhX,EAAImJ,IAClH,IAAI47F,GAAO7kG,KAAKkqC,MAAMqhE,EAA0B10F,KAAOhX,GAAIG,KAAKkqC,MAAMqhE,EAA0Bz0F,IAAMhX,EAAImJ,KAElH,QACI,MAAO,CACH,IAAI47F,GAAO7kG,KAAKkqC,MAAMuhE,EAAuB50F,MAAO7W,KAAKkqC,MAAMuhE,EAAuB30F,MACtF,IAAI+tF,GAAO7kG,KAAKkqC,MAAMuhE,EAAuB50F,KAAO40F,EAAuB1iG,OAAQ/I,KAAKkqC,MAAMuhE,EAAuB30F,MACrH,IAAI+tF,GAAO7kG,KAAKkqC,MAAMuhE,EAAuB50F,KAAO40F,EAAuB1iG,OAAQ/I,KAAKkqC,MAAMuhE,EAAuBxiG,OAASwiG,EAAuB30F,MACrJ,IAAI+tF,GAAO7kG,KAAKkqC,MAAMuhE,EAAuB50F,MAAO7W,KAAKkqC,MAAMuhE,EAAuBxiG,OAASwiG,EAAuB30F,SAKlIi2F,GAAc,iFAEdC,GAAc,cACdC,GAA6B,WAC7B,SAASA,EAAYv0G,GACjBP,KAAK+0G,MAAQ,GACb/0G,KAAKg1G,UAAYz0G,EA0CrB,OAxCAu0G,EAAY12G,UAAU62G,aAAe,SAAUtX,EAAY/G,GACvD,IAAIznD,EAAYnvC,KAAKg1G,UAAU9yG,cAAc,OACzCkhC,EAAMpjC,KAAKg1G,UAAU9yG,cAAc,OACnCgzG,EAAOl1G,KAAKg1G,UAAU9yG,cAAc,QACpC0X,EAAO5Z,KAAKg1G,UAAUp7F,KAC1Bu1B,EAAU7rB,MAAM45E,WAAa,SAC7B/tD,EAAU7rB,MAAMq6E,WAAaA,EAC7BxuD,EAAU7rB,MAAMszE,SAAWA,EAC3BznD,EAAU7rB,MAAM6xF,OAAS,IACzBhmE,EAAU7rB,MAAMmc,QAAU,IAC1B7lB,EAAKxX,YAAY+sC,GACjB/L,EAAI9C,IAAMs0E,GACVxxE,EAAIxyB,MAAQ,EACZwyB,EAAItyB,OAAS,EACbsyB,EAAI9f,MAAM6xF,OAAS,IACnB/xE,EAAI9f,MAAMmc,QAAU,IACpB2D,EAAI9f,MAAM8xF,cAAgB,WAC1BF,EAAK5xF,MAAMq6E,WAAaA,EACxBuX,EAAK5xF,MAAMszE,SAAWA,EACtBse,EAAK5xF,MAAM6xF,OAAS,IACpBD,EAAK5xF,MAAMmc,QAAU,IACrBy1E,EAAK9yG,YAAYpC,KAAKg1G,UAAUhxG,eAAe6wG,KAC/C1lE,EAAU/sC,YAAY8yG,GACtB/lE,EAAU/sC,YAAYghC,GACtB,IAAIiyE,EAAWjyE,EAAIpnB,UAAYk5F,EAAKl5F,UAAY,EAChDmzB,EAAUzsC,YAAYwyG,GACtB/lE,EAAU/sC,YAAYpC,KAAKg1G,UAAUhxG,eAAe6wG,KACpD1lE,EAAU7rB,MAAMmzE,WAAa,SAC7BrzD,EAAI9f,MAAM8xF,cAAgB,QAC1B,IAAIE,EAASlyE,EAAIpnB,UAAYmzB,EAAUnzB,UAAY,EAEnD,OADApC,EAAKlX,YAAYysC,GACV,CAAEkmE,SAAUA,EAAUC,OAAQA,IAEzCR,EAAY12G,UAAUm3G,WAAa,SAAU5X,EAAY/G,GACrD,IAAIv3E,EAAMs+E,EAAa,IAAM/G,EAI7B,MAH+B,qBAApB52F,KAAK+0G,MAAM11F,KAClBrf,KAAK+0G,MAAM11F,GAAOrf,KAAKi1G,aAAatX,EAAY/G,IAE7C52F,KAAK+0G,MAAM11F,IAEfy1F,EA7CqB,GAgD5BU,GAAc,IACdC,GAAgC,WAChC,SAASA,EAAev0G,GACpBlB,KAAK01G,eAAiB,GACtB11G,KAAKq7B,OAASn6B,EAAQm6B,OAASn6B,EAAQm6B,OAAS96B,SAAS2B,cAAc,UACvElC,KAAK0tC,IAAM1tC,KAAKq7B,OAAOC,WAAW,MAClCt7B,KAAKkB,QAAUA,EACVA,EAAQm6B,SACTr7B,KAAKq7B,OAAOzqB,MAAQ/I,KAAKq7C,MAAMhiD,EAAQ0P,MAAQ1P,EAAQq6B,OACvDv7B,KAAKq7B,OAAOvqB,OAASjJ,KAAKq7C,MAAMhiD,EAAQ4P,OAAS5P,EAAQq6B,OACzDv7B,KAAKq7B,OAAO/X,MAAM1S,MAAQ1P,EAAQ0P,MAAQ,KAC1C5Q,KAAKq7B,OAAO/X,MAAMxS,OAAS5P,EAAQ4P,OAAS,MAEhD9Q,KAAK21G,YAAc,IAAIb,GAAYv0G,UACnCP,KAAK0tC,IAAInS,MAAMv7B,KAAKkB,QAAQq6B,MAAOv7B,KAAKkB,QAAQq6B,OAChDv7B,KAAK0tC,IAAIkoE,WAAW10G,EAAQwG,EAAIxG,EAAQmnG,SAAUnnG,EAAQyG,EAAIzG,EAAQqnG,SACtEvoG,KAAK0tC,IAAImoE,aAAe,SACxB71G,KAAK01G,eAAiB,GACtBhmB,GAAOG,YAAY3uF,EAAQd,IAAI+c,MAAM,gCAAkCjc,EAAQ0P,MAAQ,IAAM1P,EAAQ4P,OAAS,OAAS5P,EAAQwG,EAAI,IAAMxG,EAAQyG,EAAI,gBAAkBzG,EAAQq6B,OAusBnL,OArsBAk6E,EAAer3G,UAAU03G,aAAe,SAAUzE,EAAS19E,GACvD,IAAIwe,EAAQnyC,KACZ,MAAOA,KAAK01G,eAAev1G,OACvBH,KAAK+1G,YAET1E,EAAQ1tG,QAAO,SAAU8sG,GAAU,OAAO58E,GAAS48E,EAAO98E,OAAQA,MAAYvmB,SAAQ,SAAUqjG,GAAU,OAAOt+D,EAAM6jE,YAAYvF,OAEvIgF,EAAer3G,UAAU43G,YAAc,SAAUvF,GAC7CzwG,KAAK0tC,IAAI6Y,OACLiqD,GAAkBC,KAClBzwG,KAAK0tC,IAAIkoE,UAAUnF,EAAOj9E,QAASi9E,EAAOh9E,SAC1CzzB,KAAK0tC,IAAItlB,UAAUqoF,EAAOriE,OAAO,GAAIqiE,EAAOriE,OAAO,GAAIqiE,EAAOriE,OAAO,GAAIqiE,EAAOriE,OAAO,GAAIqiE,EAAOriE,OAAO,GAAIqiE,EAAOriE,OAAO,IAC3HpuC,KAAK0tC,IAAIkoE,WAAWnF,EAAOj9E,SAAUi9E,EAAOh9E,UAE5Ci9E,GAAaD,KACbzwG,KAAKkiD,KAAKuuD,EAAOvuD,MACjBliD,KAAK0tC,IAAIuoE,QAEbj2G,KAAK01G,eAAer1G,KAAKowG,IAE7BgF,EAAer3G,UAAU23G,UAAY,WACjC/1G,KAAK01G,eAAe7rC,MACpB7pE,KAAK0tC,IAAIwoE,WAEbT,EAAer3G,UAAU+3G,YAAc,SAAUt1C,GAC7C,OAAOqI,EAAUlpE,UAAM,OAAQ,GAAQ,WACnC,IAAI0B,EACJ,OAAO6nE,EAAYvpE,MAAM,SAAU+xE,GAC/B,OAAQA,EAAGx6D,OACP,KAAK,EAED,OADA7V,EAASm/D,EAAMp2B,QAAQ0E,UAAUztC,OAC5BA,EAAO69F,aACZv/F,KAAK0tC,IAAI0oE,YAAc10G,EAAOsZ,QACvB,CAAC,EAAahb,KAAKq2G,mBAAmBx1C,KAFb,CAAC,EAAa,GAGlD,KAAK,EACDkR,EAAGvI,OACHuI,EAAGx6D,MAAQ,EACf,KAAK,EAAG,MAAO,CAAC,WAKhCk+F,EAAer3G,UAAUk4G,WAAa,SAAUC,GAC5C,OAAOrtC,EAAUlpE,UAAM,OAAQ,GAAQ,WACnC,OAAOupE,EAAYvpE,MAAM,SAAU+xE,GAC/B,OAAQA,EAAGx6D,OACP,KAAK,EACD,OAAKg/F,EAAMpnE,UAAUztC,OAAO69F,YACrB,CAAC,EAAav/F,KAAKw2G,+BAA+BD,IADT,CAAC,EAAa,GAElE,KAAK,EAED,OADAxkC,EAAGvI,OACI,CAAC,EAAaxpE,KAAKy2G,kBAAkBF,IAChD,KAAK,EACDxkC,EAAGvI,OACHuI,EAAGx6D,MAAQ,EACf,KAAK,EAAG,MAAO,CAAC,WAKhCk+F,EAAer3G,UAAUs4G,4BAA8B,SAAU/kG,EAAM0kF,GACnE,IAAIlkD,EAAQnyC,KACZ,GAAsB,IAAlBq2F,EACAr2F,KAAK0tC,IAAIipE,SAAShlG,EAAKA,KAAMA,EAAK2uF,OAAO5hF,KAAM/M,EAAK2uF,OAAO3hF,IAAMhN,EAAK2uF,OAAOxvF,YAE5E,CACD,IAAI8lG,EAAUzsC,EAAax4D,EAAKA,MAAMzS,KAAI,SAAUhC,GAAK,OAAOmtE,EAAcntE,MAC9E05G,EAAQ/yC,QAAO,SAAUnlD,EAAMm4F,GAE3B,OADA1kE,EAAMzE,IAAIipE,SAASE,EAAQn4F,EAAM/M,EAAK2uF,OAAO3hF,IAAMhN,EAAK2uF,OAAOxvF,QACxD4N,EAAOyzB,EAAMzE,IAAIopE,YAAYD,GAAQjmG,QAC7Ce,EAAK2uF,OAAO5hF,QAGvB+2F,EAAer3G,UAAU24G,gBAAkB,SAAUr1G,GACjD,IAAIo8F,EAAcp8F,EAAOo8F,YACpBn6F,QAAO,SAAUqzG,GAAW,MAAmB,WAAZA,GAAoC,eAAZA,KAC3D13G,KAAK,IACNq+F,EAAaj8F,EAAOi8F,WAAWr+F,KAAK,MACpCs3F,EAAWzZ,GAAiBz7E,EAAOk1F,UACjC,GAAKl1F,EAAOk1F,SAASjb,OAASj6E,EAAOk1F,SAAShb,KAC9Cl6E,EAAOk1F,SAASjb,OAAS,KAC/B,MAAO,CACH,CAACj6E,EAAOs8F,UAAWF,EAAap8F,EAAOm8F,WAAYjH,EAAU+G,GAAYr+F,KAAK,KAC9Eq+F,EACA/G,IAGR6e,EAAer3G,UAAU64G,eAAiB,SAAUtlG,EAAMjQ,GACtD,OAAOwnE,EAAUlpE,UAAM,OAAQ,GAAQ,WACnC,IAAI+xE,EAAImlC,EAAMvZ,EAAY/G,EACtBzkD,EAAQnyC,KACZ,OAAOupE,EAAYvpE,MAAM,SAAU4/E,GA8C/B,OA7CA7N,EAAK/xE,KAAK+2G,gBAAgBr1G,GAASw1G,EAAOnlC,EAAG,GAAI4rB,EAAa5rB,EAAG,GAAI6kB,EAAW7kB,EAAG,GACnF/xE,KAAK0tC,IAAIwpE,KAAOA,EAChBvlG,EAAKgvF,WAAWvzF,SAAQ,SAAUuE,GAC9BwgC,EAAMzE,IAAIghD,UAAYrP,GAAS39E,EAAO2Y,OACtC83B,EAAMukE,4BAA4B/kG,EAAMjQ,EAAO20F,eAC/C,IAAI8gB,EAAcz1G,EAAOq6F,WACrBob,EAAYh3G,QAAUwR,EAAKA,KAAK4qB,OAAOp8B,SACvCg3G,EACKvxE,MAAM,GACN6nE,UACArgG,SAAQ,SAAU2uF,GACnB5pD,EAAMzE,IAAI0pE,YAAc/3B,GAAS0c,EAAW1hF,OAC5C83B,EAAMzE,IAAI2pE,cAAgBtb,EAAWvoE,QAAQmoD,OAASxpC,EAAMjxC,QAAQq6B,MACpE4W,EAAMzE,IAAI4pE,cAAgBvb,EAAWtoE,QAAQkoD,OAASxpC,EAAMjxC,QAAQq6B,MACpE4W,EAAMzE,IAAI6pE,WAAaxb,EAAWE,KAAKtgB,OACvCxpC,EAAMzE,IAAIipE,SAAShlG,EAAKA,KAAMA,EAAK2uF,OAAO5hF,KAAM/M,EAAK2uF,OAAO3hF,IAAMhN,EAAK2uF,OAAOxvF,WAElFqhC,EAAMzE,IAAI0pE,YAAc,GACxBjlE,EAAMzE,IAAI2pE,cAAgB,EAC1BllE,EAAMzE,IAAI4pE,cAAgB,EAC1BnlE,EAAMzE,IAAI6pE,WAAa,GAEvB71G,EAAOg8F,mBAAmBv9F,SAC1BgyC,EAAMzE,IAAIghD,UAAYrP,GAAS39E,EAAO+7F,qBAAuB/7F,EAAO2Y,OACpE3Y,EAAOg8F,mBAAmBtwF,SAAQ,SAAUswF,GACxC,OAAQA,GACJ,KAAK,EAID,IAAI2X,EAAWljE,EAAMwjE,YAAYJ,WAAW5X,EAAY/G,GAAUye,SAClEljE,EAAMzE,IAAIihD,SAASh9E,EAAK2uF,OAAO5hF,KAAM7W,KAAKkqC,MAAMpgC,EAAK2uF,OAAO3hF,IAAM02F,GAAW1jG,EAAK2uF,OAAO1vF,MAAO,GAChG,MACJ,KAAK,EACDuhC,EAAMzE,IAAIihD,SAASh9E,EAAK2uF,OAAO5hF,KAAM7W,KAAKkqC,MAAMpgC,EAAK2uF,OAAO3hF,KAAMhN,EAAK2uF,OAAO1vF,MAAO,GACrF,MACJ,KAAK,EAED,IAAI0kG,EAASnjE,EAAMwjE,YAAYJ,WAAW5X,EAAY/G,GAAU0e,OAChEnjE,EAAMzE,IAAIihD,SAASh9E,EAAK2uF,OAAO5hF,KAAM7W,KAAKuvD,KAAKzlD,EAAK2uF,OAAO3hF,IAAM22F,GAAS3jG,EAAK2uF,OAAO1vF,MAAO,GAC7F,cAKb,CAAC,UAIpB6kG,EAAer3G,UAAUo5G,sBAAwB,SAAUroE,EAAWghE,EAAQ/c,GAC1E,GAAIA,GAASjkD,EAAU4yD,eAAiB,GAAK5yD,EAAU8yD,gBAAkB,EAAG,CACxE,IAAIwV,EAAM1E,GAAW5jE,GACjB+S,EAAOmuD,GAAwBF,GACnCnwG,KAAKkiD,KAAKA,GACVliD,KAAK0tC,IAAI6Y,OACTvmD,KAAK0tC,IAAIuoE,OACTj2G,KAAK0tC,IAAI6gD,UAAU6E,EAAO,EAAG,EAAGjkD,EAAU4yD,eAAgB5yD,EAAU8yD,gBAAiBwV,EAAI/4F,KAAM+4F,EAAI94F,IAAK84F,EAAI7mG,MAAO6mG,EAAI3mG,QACvH9Q,KAAK0tC,IAAIwoE,YAGjBT,EAAer3G,UAAUq4G,kBAAoB,SAAUF,GACnD,OAAOrtC,EAAUlpE,UAAM,OAAQ,GAAQ,WACnC,IAAImvC,EAAWghE,EAAQzuG,EAAQy+D,EAAI4R,EAAIx+B,EAA+BmkE,EAAgBr8E,EAAQmxD,EAAc9kF,EAAGi5F,EAAYv9D,EAAKgwD,EAAOxuD,EAAU07D,EACjJ,OAAO/2B,EAAYvpE,MAAM,SAAU4/E,GAC/B,OAAQA,EAAGroE,OACP,KAAK,EACDvX,KAAK81G,aAAaS,EAAMlF,QAAS,GACjCliE,EAAYonE,EAAMpnE,UAClBghE,EAASoG,EAAMpG,OACfzuG,EAASytC,EAAUztC,OACnBy+D,EAAK,EAAG4R,EAAK5iC,EAAUgxD,UACvBvgB,EAAGroE,MAAQ,EACf,KAAK,EACD,OAAM4oD,EAAK4R,EAAG5xE,QACdozC,EAAQw+B,EAAG5R,GACJ,CAAC,EAAangE,KAAKi3G,eAAe1jE,EAAO7xC,KAFlB,CAAC,EAAa,GAGhD,KAAK,EACDk+E,EAAGpW,OACHoW,EAAGroE,MAAQ,EACf,KAAK,EAED,OADA4oD,IACO,CAAC,EAAa,GACzB,KAAK,EACD,KAAMhxB,aAAqByyD,IAAwB,MAAO,CAAC,EAAa,GACxEhiB,EAAGroE,MAAQ,EACf,KAAK,EAED,OADAqoE,EAAGnW,KAAKppE,KAAK,CAAC,EAAG,EAAG,CAAE,IACf,CAAC,EAAaL,KAAKkB,QAAQu+D,MAAM9lC,MAAMwV,EAAU7O,MAC5D,KAAK,EAGD,OAFA8yD,EAAQxT,EAAGpW,OACXxpE,KAAKw3G,sBAAsBroE,EAAWghE,EAAQ/c,GACvC,CAAC,EAAa,GACzB,KAAK,EAGD,OAFMxT,EAAGpW,OACTkmB,GAAOG,YAAY7vF,KAAKkB,QAAQd,IAAIqQ,MAAM,uBAAyB0+B,EAAU7O,KACtE,CAAC,EAAa,GACzB,KAAK,EAID,GAHI6O,aAAqBgzD,IACrBniG,KAAKw3G,sBAAsBroE,EAAWghE,EAAQhhE,EAAU9T,UAEtD8T,aAAqBizD,IAAsB,MAAO,CAAC,EAAa,IACtExiB,EAAGroE,MAAQ,EACf,KAAK,EAED,OADAqoE,EAAGnW,KAAKppE,KAAK,CAAC,EAAG,GAAI,CAAE,KAChB,CAAC,EAAaL,KAAKkB,QAAQu+D,MAAM9lC,MAAMwV,EAAU0/C,MAC5D,KAAK,GAGD,OAFAuE,EAAQxT,EAAGpW,OACXxpE,KAAKw3G,sBAAsBroE,EAAWghE,EAAQ/c,GACvC,CAAC,EAAa,IACzB,KAAK,GAGD,OAFMxT,EAAGpW,OACTkmB,GAAOG,YAAY7vF,KAAKkB,QAAQd,IAAIqQ,MAAM,qBAAuB0+B,EAAU0/C,IAAIrsE,UAAU,EAAG,MACrF,CAAC,EAAa,IACzB,KAAK,GACD,OAAM2sB,aAAqBq0D,IAA0Br0D,EAAUs0D,MAC/DiU,EAAiB,IAAIjC,EAAe,CAChCr1G,GAAIJ,KAAKkB,QAAQd,GACjBm7B,MAAOv7B,KAAKkB,QAAQq6B,MACpBE,gBAAiB0T,EAAU1T,gBAC3B/zB,EAAG,EACHC,EAAG,EACH0gG,QAAS,EACTE,QAAS,EACT33F,MAAOu+B,EAAUv+B,MACjBE,OAAQq+B,EAAUr+B,OAClB2uD,MAAOz/D,KAAKkB,QAAQu+D,MACpB9pC,YAAawZ,EAAUv+B,MACvB+f,aAAcwe,EAAUr+B,SAErB,CAAC,EAAa4mG,EAAe1yG,OAAOmqC,EAAUs0D,QAfwB,CAAC,EAAa,IAgB/F,KAAK,GACDpoE,EAASukD,EAAGpW,OACRr6B,EAAUv+B,OAASu+B,EAAUr+B,QAC7B9Q,KAAK0tC,IAAI6gD,UAAUlzD,EAAQ,EAAG,EAAG8T,EAAUv+B,MAAOu+B,EAAUr+B,OAAQq+B,EAAUmxD,OAAO5hF,KAAMywB,EAAUmxD,OAAO3hF,IAAKwwB,EAAUmxD,OAAO1vF,MAAOu+B,EAAUmxD,OAAOxvF,QAE9J8uE,EAAGroE,MAAQ,GACf,KAAK,GA+BD,GA9BI43B,aAAqB+zD,KACrB1W,EAAO3kF,KAAKoyD,IAAI9qB,EAAUmxD,OAAO1vF,MAAOu+B,EAAUmxD,OAAOxvF,QACrDq+B,EAAUhtC,OAAS4gG,GACf5zD,EAAUuS,UACV1hD,KAAK0tC,IAAI6Y,OACTvmD,KAAKkiD,KAAK,CACN,IAAIwqD,GAAOv9D,EAAUmxD,OAAO5hF,KAAc,OAAP8tE,EAAgBr9C,EAAUmxD,OAAO3hF,IAAa,IAAP6tE,GAC1E,IAAIkgB,GAAOv9D,EAAUmxD,OAAO5hF,KAAc,IAAP8tE,EAAar9C,EAAUmxD,OAAO3hF,IAAa,MAAP6tE,GACvE,IAAIkgB,GAAOv9D,EAAUmxD,OAAO5hF,KAAc,OAAP8tE,EAAgBr9C,EAAUmxD,OAAO3hF,IAAa,OAAP6tE,GAC1E,IAAIkgB,GAAOv9D,EAAUmxD,OAAO5hF,KAAc,OAAP8tE,EAAgBr9C,EAAUmxD,OAAO3hF,IAAa,MAAP6tE,GAC1E,IAAIkgB,GAAOv9D,EAAUmxD,OAAO5hF,KAAc,OAAP8tE,EAAgBr9C,EAAUmxD,OAAO3hF,IAAa,IAAP6tE,GAC1E,IAAIkgB,GAAOv9D,EAAUmxD,OAAO5hF,KAAc,IAAP8tE,EAAar9C,EAAUmxD,OAAO3hF,IAAa,OAAP6tE,GACvE,IAAIkgB,GAAOv9D,EAAUmxD,OAAO5hF,KAAc,OAAP8tE,EAAgBr9C,EAAUmxD,OAAO3hF,IAAa,IAAP6tE,KAE9ExsF,KAAK0tC,IAAIghD,UAAYrP,GAAS4jB,IAC9BjjG,KAAK0tC,IAAIjlB,OACTzoB,KAAK0tC,IAAIwoE,WAGR/mE,EAAUhtC,OAAS6gG,IACpB7zD,EAAUuS,UACV1hD,KAAK0tC,IAAI6Y,OACTvmD,KAAK0tC,IAAIiqE,YACT33G,KAAK0tC,IAAIkqE,IAAIzoE,EAAUmxD,OAAO5hF,KAAO8tE,EAAO,EAAGr9C,EAAUmxD,OAAO3hF,IAAM6tE,EAAO,EAAGA,EAAO,EAAG,EAAa,EAAV3kF,KAAKsD,IAAQ,GAC1GnL,KAAK0tC,IAAIghD,UAAYrP,GAAS4jB,IAC9BjjG,KAAK0tC,IAAIjlB,OACTzoB,KAAK0tC,IAAIwoE,YAIjB2B,GAAmB1oE,IAAcA,EAAUjpC,MAAM/F,OAAQ,CAOzD,OANAH,KAAK0tC,IAAIwpE,KAAOl3G,KAAK+2G,gBAAgBr1G,GAAQ,GAC7C1B,KAAK0tC,IAAIghD,UAAYrP,GAAS39E,EAAO2Y,OACrCra,KAAK0tC,IAAImoE,aAAe,SACxB71G,KAAK0tC,IAAI6tD,UAAYuc,GAAgB3oE,EAAUztC,OAAO65F,WACtD+E,EAASyS,GAAW5jE,GACpBznC,EAAI,EACIynC,EAAUztC,OAAO65F,WACrB,KAAKP,GAAWQ,OACZ9zF,GAAK44F,EAAO1vF,MAAQ,EACpB,MACJ,KAAKoqF,GAAW9E,MACZxuF,GAAK44F,EAAO1vF,MACZ,MAER+vF,EAAaL,EAAO36F,IAAI+B,EAAG,EAAG,GAAI44F,EAAOxvF,OAAS,EAAI,GACtD9Q,KAAK0tC,IAAI6Y,OACTvmD,KAAKkiD,KAAK,CACN,IAAIwqD,GAAOpM,EAAO5hF,KAAM4hF,EAAO3hF,KAC/B,IAAI+tF,GAAOpM,EAAO5hF,KAAO4hF,EAAO1vF,MAAO0vF,EAAO3hF,KAC9C,IAAI+tF,GAAOpM,EAAO5hF,KAAO4hF,EAAO1vF,MAAO0vF,EAAO3hF,IAAM2hF,EAAOxvF,QAC3D,IAAI47F,GAAOpM,EAAO5hF,KAAM4hF,EAAO3hF,IAAM2hF,EAAOxvF,UAEhD9Q,KAAK0tC,IAAIuoE,OACTj2G,KAAK02G,4BAA4B,IAAInW,GAAWpxD,EAAUjpC,MAAOy6F,GAAaj/F,EAAO20F,eACrFr2F,KAAK0tC,IAAIwoE,UACTl2G,KAAK0tC,IAAImoE,aAAe,SACxB71G,KAAK0tC,IAAI6tD,UAAY,OAEzB,IAAK1nE,GAASsb,EAAUztC,OAAOo6B,QAAS,MAAuB,MAAO,CAAC,EAAa,IACpF,GAA0C,OAApCqT,EAAUztC,OAAOm1F,eAA0B,MAAO,CAAC,EAAa,IAEtE,GADAzzD,EAAM+L,EAAUztC,OAAOm1F,eACjBzzD,EAAIjhC,OAASynF,GAAaztD,IAAM,MAAO,CAAC,EAAa,IAC3Di3D,OAAQ,EACRxuD,EAAMxB,EAAIwB,IACVg7C,EAAGroE,MAAQ,GACf,KAAK,GAED,OADAqoE,EAAGnW,KAAKppE,KAAK,CAAC,GAAI,GAAI,CAAE,KACjB,CAAC,EAAaL,KAAKkB,QAAQu+D,MAAM9lC,MAAMiL,IAClD,KAAK,GAGD,OAFAwuD,EAAQxT,EAAGpW,OACXxpE,KAAK0tC,IAAI6gD,UAAU6E,EAAOjkD,EAAUmxD,OAAO5hF,MAAQ00E,EAAMxiF,MAAQ,IAAKu+B,EAAUmxD,OAAO3hF,KAChF,CAAC,EAAa,IACzB,KAAK,GAGD,OAFMihE,EAAGpW,OACTkmB,GAAOG,YAAY7vF,KAAKkB,QAAQd,IAAIqQ,MAAM,kCAAoCm0B,GACvE,CAAC,EAAa,IACzB,KAAK,GAAI,MAAO,CAAC,EAAa,IAC9B,KAAK,GACG2xE,EAAMjE,WAAanjE,EAAUztC,OAAOy1F,gBAAkBL,GAAgB1B,OACtEp1F,KAAK0tC,IAAIwpE,KAAOl3G,KAAK+2G,gBAAgBr1G,GAAQ,GAC7C1B,KAAK0tC,IAAIghD,UAAYrP,GAAS39E,EAAO2Y,OACrCra,KAAK0tC,IAAImoE,aAAe,SACxB71G,KAAK0tC,IAAI6tD,UAAY,QACrB+E,EAAS,IAAIx2B,EAAO36B,EAAUmxD,OAAO5hF,KAAMywB,EAAUmxD,OAAO3hF,IAAMw/D,GAAiBhvC,EAAUztC,OAAO05F,WAAYjsD,EAAUmxD,OAAO1vF,OAAQu+B,EAAUmxD,OAAO1vF,MAAO+lF,GAAkBj1F,EAAO+0F,WAAY/0F,EAAOk1F,SAASjb,QAAU,EAAI,GACpO37E,KAAK02G,4BAA4B,IAAInW,GAAWgW,EAAMjE,UAAWhS,GAAS5+F,EAAO20F,eACjFr2F,KAAK0tC,IAAImoE,aAAe,SACxB71G,KAAK0tC,IAAI6tD,UAAY,QAEzB3b,EAAGroE,MAAQ,GACf,KAAK,GAAI,MAAO,CAAC,WAKjCk+F,EAAer3G,UAAUi4G,mBAAqB,SAAUx1C,GACpD,OAAOqI,EAAUlpE,UAAM,OAAQ,GAAQ,WACnC,IAAImgE,EAAI4R,EAAW6N,EAAI78D,EAAWo+C,EAAI38C,EAAWuzF,EAAIC,EAAW12F,EAAI22F,EAAWv0F,EAAI2E,EAAW6vF,EAAIC,EAAI5kE,EACtG,OAAOg2B,EAAYvpE,MAAM,SAAUo4G,GAC/B,OAAQA,EAAG7gG,OACP,KAAK,EAGL,MAAO,CAAC,EAAavX,KAAKw2G,+BAA+B31C,EAAMp2B,UAC/D,KAAK,EAGD2tE,EAAG5uC,OACHrJ,EAAK,EAAG4R,EAAKlR,EAAMiwC,eACnBsH,EAAG7gG,MAAQ,EACf,KAAK,EACD,OAAM4oD,EAAK4R,EAAG5xE,QACdozC,EAAQw+B,EAAG5R,GACJ,CAAC,EAAangE,KAAKm2G,YAAY5iE,KAFR,CAAC,EAAa,GAGhD,KAAK,EACD6kE,EAAG5uC,OACH4uC,EAAG7gG,MAAQ,EACf,KAAK,EAED,OADA4oD,IACO,CAAC,EAAa,GACzB,KAAK,EAEL,MAAO,CAAC,EAAangE,KAAKy2G,kBAAkB51C,EAAMp2B,UAClD,KAAK,EAED2tE,EAAG5uC,OACHoW,EAAK,EAAG78D,EAAK89C,EAAMgwC,eACnBuH,EAAG7gG,MAAQ,EACf,KAAK,EACD,OAAMqoE,EAAK78D,EAAG5iB,QACdozC,EAAQxwB,EAAG68D,GACJ,CAAC,EAAa5/E,KAAKs2G,WAAW/iE,KAFP,CAAC,EAAa,IAGhD,KAAK,EACD6kE,EAAG5uC,OACH4uC,EAAG7gG,MAAQ,EACf,KAAK,EAED,OADAqoE,IACO,CAAC,EAAa,GACzB,KAAK,GACDze,EAAK,EAAG38C,EAAKq8C,EAAMowC,oBACnBmH,EAAG7gG,MAAQ,GACf,KAAK,GACD,OAAM4pD,EAAK38C,EAAGrkB,QACdozC,EAAQ/uB,EAAG28C,GACJ,CAAC,EAAanhE,KAAKm2G,YAAY5iE,KAFR,CAAC,EAAa,IAGhD,KAAK,GACD6kE,EAAG5uC,OACH4uC,EAAG7gG,MAAQ,GACf,KAAK,GAED,OADA4pD,IACO,CAAC,EAAa,IACzB,KAAK,GACD42C,EAAK,EAAGC,EAAKn3C,EAAMqwC,yBACnBkH,EAAG7gG,MAAQ,GACf,KAAK,GACD,OAAMwgG,EAAKC,EAAG73G,QACdozC,EAAQykE,EAAGD,GACJ,CAAC,EAAa/3G,KAAKm2G,YAAY5iE,KAFR,CAAC,EAAa,IAGhD,KAAK,GACD6kE,EAAG5uC,OACH4uC,EAAG7gG,MAAQ,GACf,KAAK,GAED,OADAwgG,IACO,CAAC,EAAa,IACzB,KAAK,GACDz2F,EAAK,EAAG22F,EAAKp3C,EAAM+vC,YACnBwH,EAAG7gG,MAAQ,GACf,KAAK,GACD,OAAM+J,EAAK22F,EAAG93G,QACdozC,EAAQ0kE,EAAG32F,GACJ,CAAC,EAAathB,KAAKs2G,WAAW/iE,KAFP,CAAC,EAAa,IAGhD,KAAK,GACD6kE,EAAG5uC,OACH4uC,EAAG7gG,MAAQ,GACf,KAAK,GAED,OADA+J,IACO,CAAC,EAAa,IACzB,KAAK,GACDoC,EAAK,EAAG2E,EAAKw4C,EAAMkwC,uCACnBqH,EAAG7gG,MAAQ,GACf,KAAK,GACD,OAAMmM,EAAK2E,EAAGloB,QACdozC,EAAQlrB,EAAG3E,GACJ,CAAC,EAAa1jB,KAAKm2G,YAAY5iE,KAFR,CAAC,EAAa,IAGhD,KAAK,GACD6kE,EAAG5uC,OACH4uC,EAAG7gG,MAAQ,GACf,KAAK,GAED,OADAmM,IACO,CAAC,EAAa,IACzB,KAAK,GACDw0F,EAAK,EAAGC,EAAKt3C,EAAMmwC,eACnBoH,EAAG7gG,MAAQ,GACf,KAAK,GACD,OAAM2gG,EAAKC,EAAGh4G,QACdozC,EAAQ4kE,EAAGD,GACJ,CAAC,EAAal4G,KAAKm2G,YAAY5iE,KAFR,CAAC,EAAa,IAGhD,KAAK,GACD6kE,EAAG5uC,OACH4uC,EAAG7gG,MAAQ,GACf,KAAK,GAED,OADA2gG,IACO,CAAC,EAAa,IACzB,KAAK,GAAI,MAAO,CAAC,WAKjCzC,EAAer3G,UAAUi6G,KAAO,SAAUC,GACtCt4G,KAAK0tC,IAAIiqE,YACT33G,KAAK0tC,IAAI6qE,OAAO,EAAG,GACnBv4G,KAAK0tC,IAAI8qE,OAAOx4G,KAAKq7B,OAAOzqB,MAAO,GACnC5Q,KAAK0tC,IAAI8qE,OAAOx4G,KAAKq7B,OAAOzqB,MAAO5Q,KAAKq7B,OAAOvqB,QAC/C9Q,KAAK0tC,IAAI8qE,OAAO,EAAGx4G,KAAKq7B,OAAOvqB,QAC/B9Q,KAAK0tC,IAAI8qE,OAAO,EAAG,GACnBx4G,KAAKy4G,WAAWH,EAAM1yE,MAAM,GAAG6nE,WAC/BztG,KAAK0tC,IAAIgrE,aAEbjD,EAAer3G,UAAU8jD,KAAO,SAAUo2D,GACtCt4G,KAAK0tC,IAAIiqE,YACT33G,KAAKy4G,WAAWH,GAChBt4G,KAAK0tC,IAAIgrE,aAEbjD,EAAer3G,UAAUq6G,WAAa,SAAUH,GAC5C,IAAInmE,EAAQnyC,KACZs4G,EAAMlrG,SAAQ,SAAUq/F,EAAOhpG,GAC3B,IAAI+oE,EAAQkhC,GAAcjB,GAASA,EAAMjgC,MAAQigC,EACnC,IAAVhpG,EACA0uC,EAAMzE,IAAI6qE,OAAO/rC,EAAM9kE,EAAG8kE,EAAM7kE,GAGhCwqC,EAAMzE,IAAI8qE,OAAOhsC,EAAM9kE,EAAG8kE,EAAM7kE,GAEhC+lG,GAAcjB,IACdt6D,EAAMzE,IAAIirE,cAAclM,EAAMK,aAAaplG,EAAG+kG,EAAMK,aAAanlG,EAAG8kG,EAAMM,WAAWrlG,EAAG+kG,EAAMM,WAAWplG,EAAG8kG,EAAMhgC,IAAI/kE,EAAG+kG,EAAMhgC,IAAI9kE,OAI/I8tG,EAAer3G,UAAUw6G,aAAe,SAAU12D,EAAM3V,EAAS/Y,EAASC,GACtEzzB,KAAKkiD,KAAKA,GACVliD,KAAK0tC,IAAIghD,UAAYniD,EACrBvsC,KAAK0tC,IAAIkoE,UAAUpiF,EAASC,GAC5BzzB,KAAK0tC,IAAIjlB,OACTzoB,KAAK0tC,IAAIkoE,WAAWpiF,GAAUC,IAElCgiF,EAAer3G,UAAUy6G,YAAc,SAAUzlB,EAAOxiF,EAAOE,GAC3D,GAAIsiF,EAAMxiF,QAAUA,GAASwiF,EAAMtiF,SAAWA,EAC1C,OAAOsiF,EAEX,IAAI/3D,EAASr7B,KAAKq7B,OAAOmnB,cAActgD,cAAc,UACrDm5B,EAAOzqB,MAAQA,EACfyqB,EAAOvqB,OAASA,EAChB,IAAI48B,EAAMrS,EAAOC,WAAW,MAE5B,OADAoS,EAAI6gD,UAAU6E,EAAO,EAAG,EAAGA,EAAMxiF,MAAOwiF,EAAMtiF,OAAQ,EAAG,EAAGF,EAAOE,GAC5DuqB,GAEXo6E,EAAer3G,UAAU06G,sBAAwB,SAAU3pE,GACvD,OAAO+5B,EAAUlpE,UAAM,OAAQ,GAAQ,WACnC,IAAIyD,EAAOs1G,EAASC,EAAQ74C,EAAI4R,EAAIkd,EACpC,OAAO1lB,EAAYvpE,MAAM,SAAU4/E,GAC/B,OAAQA,EAAGroE,OACP,KAAK,EACD9T,EAAQ0rC,EAAUztC,OAAOutF,gBAAgB9uF,OAAS,EAClD44G,EAAU,SAAU9pB,GAChB,IAAImE,EAAOxuD,EAAUmtC,EAAwC6N,EAA+B78D,EAAIynE,EAAYyuB,EAAIryG,EAAIsyG,EAAIryG,EAAIw0B,EAAQqS,EAAKyrE,EAAY5sE,EAAS40B,EAAIjf,EAAMxjC,EAAM06F,EAAOxoG,EAAOE,EAAQyuB,EAAU73B,EAAGC,EAAG6c,EAAIg3C,EAAI+wB,EAAI8sB,EAAkBC,EAAMC,EAAM7kF,EAAG8kF,EACjQ,OAAOjwC,EAAYvpE,MAAM,SAAU+3G,GAC/B,OAAQA,EAAGxgG,OACP,KAAK,EACD,GAAM03E,EAAgB9sF,OAASynF,GAAaztD,IAAM,MAAO,CAAC,EAAa,GACvEi3D,OAAQ,EACRxuD,EAAMqqD,EAAgBrqD,IACtBmzE,EAAGxgG,MAAQ,EACf,KAAK,EAED,OADAwgG,EAAGtuC,KAAKppE,KAAK,CAAC,EAAG,EAAG,CAAE,IACf,CAAC,EAAa24G,EAAO93G,QAAQu+D,MAAM9lC,MAAMiL,IACpD,KAAK,EAED,OADAwuD,EAAQ2kB,EAAGvuC,OACJ,CAAC,EAAa,GACzB,KAAK,EAGD,OAFMuuC,EAAGvuC,OACTkmB,GAAOG,YAAYmpB,EAAO93G,QAAQd,IAAIqQ,MAAM,kCAAoCm0B,GACzE,CAAC,EAAa,GACzB,KAAK,EAUD,OATIwuD,IACArhB,EAAKmhC,GAA6B/jE,EAAW1rC,EAAO,CAChD2vF,EAAMxiF,MACNwiF,EAAMtiF,OACNsiF,EAAMxiF,MAAQwiF,EAAMtiF,SACpBoxC,EAAO6vB,EAAG,GAAIrqE,EAAIqqE,EAAG,GAAIpqE,EAAIoqE,EAAG,GAAInhE,EAAQmhE,EAAG,GAAIjhE,EAASihE,EAAG,GACnExlC,EAAUysE,EAAOtrE,IAAI+rE,cAAcT,EAAOH,YAAYzlB,EAAOxiF,EAAOE,GAAS,UAC7EkoG,EAAOJ,aAAa12D,EAAM3V,EAAS7kC,EAAGC,IAEnC,CAAC,EAAa,GACzB,KAAK,EACGurF,GAAiBjE,IACjBrP,EAAKszB,GAA6B/jE,EAAW1rC,EAAO,CAAC,KAAM,KAAM,OAAQy+C,EAAO09B,EAAG,GAAIl4E,EAAIk4E,EAAG,GAAIj4E,EAAIi4E,EAAG,GAAIhvE,EAAQgvE,EAAG,GAAI9uE,EAAS8uE,EAAG,GACxI78D,EAAKwoE,GAA2B0D,EAAgBzQ,MAAO5tE,EAAOE,GAAS05E,EAAaznE,EAAG,GAAIk2F,EAAKl2F,EAAG,GAAInc,EAAKmc,EAAG,GAAIm2F,EAAKn2F,EAAG,GAAIlc,EAAKkc,EAAG,GACvIsY,EAAS96B,SAAS2B,cAAc,UAChCm5B,EAAOzqB,MAAQA,EACfyqB,EAAOvqB,OAASA,EAChB48B,EAAMrS,EAAOC,WAAW,MACxB69E,EAAazrE,EAAIgsE,qBAAqBT,EAAIC,EAAItyG,EAAIC,GAClDyjF,GAAkB2E,EAAgB1E,MAAOC,GAAYp9E,SAAQ,SAAUigF,GACnE,OAAO8rB,EAAWQ,aAAatsB,EAAU34E,KAAM2qE,GAASgO,EAAUhzE,WAEtEqzB,EAAIghD,UAAYyqB,EAChBzrE,EAAIihD,SAAS,EAAG,EAAG/9E,EAAOE,GACtBF,EAAQ,GAAKE,EAAS,IACtBy7B,EAAUysE,EAAOtrE,IAAI+rE,cAAcp+E,EAAQ,UAC3C29E,EAAOJ,aAAa12D,EAAM3V,EAAS7kC,EAAGC,KAGrCwrF,GAAiBlE,KACtB9tB,EAAK+xC,GAA6B/jE,EAAW1rC,EAAO,CAChD,KACA,KACA,OACAy+C,EAAOif,EAAG,GAAIziD,EAAOyiD,EAAG,GAAIi4C,EAAQj4C,EAAG,GAAIvwD,EAAQuwD,EAAG,GAAIrwD,EAASqwD,EAAG,GAC1E5hC,EAA+C,IAApC0vD,EAAgB1vD,SAASp/B,OAAe,CAAC49E,IAAiBkR,EAAgB1vD,SACrF73B,EAAIy2E,GAAiB5+C,EAAS,GAAI3uB,GAClCjJ,EAAIw2E,GAAiB5+C,EAASA,EAASp/B,OAAS,GAAI2Q,GACpD0T,EAAK6nE,GAAgB4C,EAAiBvnF,EAAGC,EAAGiJ,EAAOE,GAAS0qD,EAAKh3C,EAAG,GAAI+nE,EAAK/nE,EAAG,GAC5Eg3C,EAAK,GAAKA,EAAK,IACf69C,EAAmBL,EAAOtrE,IAAIksE,qBAAqBl7F,EAAOhX,EAAG0xG,EAAQzxG,EAAG,EAAG+W,EAAOhX,EAAG0xG,EAAQzxG,EAAG6zD,GAChG8uB,GAAkB2E,EAAgB1E,MAAY,EAAL/uB,GAAQpuD,SAAQ,SAAUigF,GAC/D,OAAOgsB,EAAiBM,aAAatsB,EAAU34E,KAAM2qE,GAASgO,EAAUhzE,WAE5E2+F,EAAO92D,KAAKA,GACZ82D,EAAOtrE,IAAIghD,UAAY2qB,EACnB79C,IAAO+wB,GACP+sB,EAAOnqE,EAAUmxD,OAAO5hF,KAAO,GAAMywB,EAAUmxD,OAAO1vF,MACtD2oG,EAAOpqE,EAAUmxD,OAAO3hF,IAAM,GAAMwwB,EAAUmxD,OAAOxvF,OACrD4jB,EAAI63D,EAAK/wB,EACTg+C,EAAO,EAAI9kF,EACXskF,EAAOtrE,IAAI6Y,OACXyyD,EAAOtrE,IAAIkoE,UAAU0D,EAAMC,GAC3BP,EAAOtrE,IAAItlB,UAAU,EAAG,EAAG,EAAGsM,EAAG,EAAG,GACpCskF,EAAOtrE,IAAIkoE,WAAW0D,GAAOC,GAC7BP,EAAOtrE,IAAIihD,SAASjwE,EAAM86F,GAAQJ,EAAQG,GAAQA,EAAM3oG,EAAOE,EAAS0oG,GACxER,EAAOtrE,IAAIwoE,WAGX8C,EAAOtrE,IAAIjlB,SAIvBsvF,EAAGxgG,MAAQ,EACf,KAAK,EAED,OADA9T,IACO,CAAC,QAIxBu1G,EAASh5G,KACTmgE,EAAK,EAAG4R,EAAK5iC,EAAUztC,OAAOutF,gBAAgBrpD,MAAM,GAAG6nE,UACvD7tB,EAAGroE,MAAQ,EACf,KAAK,EACD,OAAM4oD,EAAK4R,EAAG5xE,QACd8uF,EAAkBld,EAAG5R,GACd,CAAC,EAAc44C,EAAQ9pB,KAFA,CAAC,EAAa,GAGhD,KAAK,EACDrP,EAAGpW,OACHoW,EAAGroE,MAAQ,EACf,KAAK,EAED,OADA4oD,IACO,CAAC,EAAa,GACzB,KAAK,EAAG,MAAO,CAAC,WAKhCs1C,EAAer3G,UAAUy7G,aAAe,SAAUx/F,EAAOk6E,EAAMulB,GAC3D,OAAO5wC,EAAUlpE,UAAM,OAAQ,GAAQ,WACnC,OAAOupE,EAAYvpE,MAAM,SAAU+xE,GAI/B,OAHA/xE,KAAKkiD,KAAKswD,GAAmBsH,EAAavlB,IAC1Cv0F,KAAK0tC,IAAIghD,UAAYrP,GAAShlE,GAC9Bra,KAAK0tC,IAAIjlB,OACF,CAAC,UAIpBgtF,EAAer3G,UAAUo4G,+BAAiC,SAAUD,GAChE,OAAOrtC,EAAUlpE,UAAM,OAAQ,GAAQ,WACnC,IAAI0B,EAAQq4G,EAAeC,EAAS1G,EAAwB/e,EAAMp0B,EAAI85C,EAAWt1F,EAC7EwtB,EAAQnyC,KACZ,OAAOupE,EAAYvpE,MAAM,SAAU+xE,GAC/B,OAAQA,EAAGx6D,OACP,KAAK,EAWD,OAVAvX,KAAK81G,aAAaS,EAAMlF,QAAS,GACjC3vG,EAAS60G,EAAMpnE,UAAUztC,OACzBq4G,GAAiB36B,GAAc19E,EAAO+5B,kBAAoB/5B,EAAOutF,gBAAgB9uF,OACjF65G,EAAU,CACN,CAAE12F,MAAO5hB,EAAO4zF,eAAgBj7E,MAAO3Y,EAAO8yF,gBAC9C,CAAElxE,MAAO5hB,EAAO6zF,iBAAkBl7E,MAAO3Y,EAAO+yF,kBAChD,CAAEnxE,MAAO5hB,EAAO8zF,kBAAmBn7E,MAAO3Y,EAAOgzF,mBACjD,CAAEpxE,MAAO5hB,EAAO+zF,gBAAiBp7E,MAAO3Y,EAAOizF,kBAEnD2e,EAAyB4G,GAAsC7G,GAA2B3xG,EAAOmoF,eAAgB,GAAI0sB,EAAMpG,QACrH4J,GAAiBr4G,EAAOs9F,UAAU7+F,QACxCH,KAAK0tC,IAAI6Y,OACTvmD,KAAKkiD,KAAKoxD,GACVtzG,KAAK0tC,IAAIuoE,OACJ72B,GAAc19E,EAAO+5B,mBACtBz7B,KAAK0tC,IAAIghD,UAAYrP,GAAS39E,EAAO+5B,iBACrCz7B,KAAK0tC,IAAIjlB,QAEN,CAAC,EAAazoB,KAAK84G,sBAAsBvC,EAAMpnE,aARE,CAAC,EAAa,GAS1E,KAAK,EACD4iC,EAAGvI,OACHxpE,KAAK0tC,IAAIwoE,UACTx0G,EAAOs9F,UACFp5D,MAAM,GACN6nE,UACArgG,SAAQ,SAAU4uF,GACnB7pD,EAAMzE,IAAI6Y,OACV,IAAI4zD,EAAgBjK,GAAuBqG,EAAMpG,QAC7CiK,EAAape,EAAOkD,MAAQ,EAAIsW,GAChC6E,EAAqBhO,GAAc8N,GAAgBC,GAAcpe,EAAOkD,MAAQ,GAAK,GAAKlD,EAAOiD,OAAOtjB,QAASqgB,EAAOkD,MAAQ,GAAK,GAAKlD,EAAOiD,OAAOtjB,OAAQqgB,EAAOiD,OAAOtjB,QAAUqgB,EAAOkD,OAAS,EAAI,GAAIlD,EAAOiD,OAAOtjB,QAAUqgB,EAAOkD,OAAS,EAAI,IAC5PlD,EAAOkD,OACP/sD,EAAM+P,KAAKi4D,GACXhoE,EAAMzE,IAAIuoE,OACV9jE,EAAMkmE,KAAKgC,KAGXloE,EAAMkmE,KAAK8B,GACXhoE,EAAMzE,IAAIuoE,OACV9jE,EAAM+P,KAAKm4D,IAEfloE,EAAMzE,IAAI2pE,cAAgBrb,EAAOxoE,QAAQmoD,OAASy+B,EAClDjoE,EAAMzE,IAAI4pE,cAAgBtb,EAAOvoE,QAAQkoD,OACzCxpC,EAAMzE,IAAI0pE,YAAc/3B,GAAS2c,EAAO3hF,OACxC83B,EAAMzE,IAAI6pE,WAAavb,EAAOC,KAAKtgB,OACnCxpC,EAAMzE,IAAIghD,UAAYsN,EAAOkD,MAAQ7f,GAAS2c,EAAO3hF,OAAS,gBAC9D83B,EAAMzE,IAAIjlB,OACV0pB,EAAMzE,IAAIwoE,aAEdnkC,EAAGx6D,MAAQ,EACf,KAAK,EACDg9E,EAAO,EACPp0B,EAAK,EAAG85C,EAAYD,EACpBjoC,EAAGx6D,MAAQ,EACf,KAAK,EACD,OAAM4oD,EAAK85C,EAAU95G,QACrBwkB,EAASs1F,EAAU95C,GACbx7C,EAAOrB,QAAU6wE,GAAaiB,MAAShW,GAAcz6D,EAAOtK,OAAgB,CAAC,EAAa,GACzF,CAAC,EAAara,KAAK65G,aAAal1F,EAAOtK,MAAOk6E,EAAMgiB,EAAMpG,UAH5B,CAAC,EAAa,GAIvD,KAAK,EACDp+B,EAAGvI,OACHuI,EAAGx6D,MAAQ,EACf,KAAK,EACDg9E,IACAxiB,EAAGx6D,MAAQ,EACf,KAAK,EAED,OADA4oD,IACO,CAAC,EAAa,GACzB,KAAK,EAAG,MAAO,CAAC,WAKhCs1C,EAAer3G,UAAU4G,OAAS,SAAUylC,GACxC,OAAOy+B,EAAUlpE,UAAM,OAAQ,GAAQ,WACnC,IAAI6gE,EACJ,OAAO0I,EAAYvpE,MAAM,SAAU+xE,GAC/B,OAAQA,EAAGx6D,OACP,KAAK,EAMD,OALIvX,KAAKkB,QAAQu6B,kBACbz7B,KAAK0tC,IAAIghD,UAAYrP,GAASr/E,KAAKkB,QAAQu6B,iBAC3Cz7B,KAAK0tC,IAAIihD,SAAS3uF,KAAKkB,QAAQwG,EAAI1H,KAAKkB,QAAQmnG,QAASroG,KAAKkB,QAAQyG,EAAI3H,KAAKkB,QAAQqnG,QAASvoG,KAAKkB,QAAQ0P,MAAO5Q,KAAKkB,QAAQ4P,SAErI+vD,EAAQ0xC,GAAsB9nE,GACvB,CAAC,EAAazqC,KAAKm2G,YAAYt1C,IAC1C,KAAK,EAGD,OAFAkR,EAAGvI,OACHxpE,KAAK81G,aAAa,GAAI,GACf,CAAC,EAAc91G,KAAKq7B,gBAKxCo6E,EAxtBwB,GA0tB/BoC,GAAqB,SAAU1oE,GAC/B,OAAIA,aAAqBm0D,KAGhBn0D,aAAqBi0D,IAGrBj0D,aAAqB+zD,IAAyB/zD,EAAUhtC,OAAS6gG,IAAS7zD,EAAUhtC,OAAS4gG,KAKtGmX,GAAwC,SAAUjE,EAAM9F,GACxD,OAAQ8F,GACJ,KAAK/1B,GAAgBgK,WACjB,OAAOgmB,GAAuBC,GAClC,KAAKjwB,GAAgB+J,YACjB,OAAOmmB,GAAwBD,GACnC,KAAKjwB,GAAgB8J,YACrB,QACI,OAAOqmB,GAAwBF,KAGvC2H,GAAkB,SAAUvc,GAC5B,OAAQA,GACJ,KAAKP,GAAWQ,OACZ,MAAO,SACX,KAAKR,GAAW9E,MACZ,MAAO,QACX,KAAK8E,GAAW/E,KAChB,QACI,MAAO,SAIfqkB,GAAuC,WACvC,SAASA,EAAsBp5G,GAC3BlB,KAAKq7B,OAASn6B,EAAQm6B,OAASn6B,EAAQm6B,OAAS96B,SAAS2B,cAAc,UACvElC,KAAK0tC,IAAM1tC,KAAKq7B,OAAOC,WAAW,MAClCt7B,KAAKkB,QAAUA,EACflB,KAAKq7B,OAAOzqB,MAAQ/I,KAAKq7C,MAAMhiD,EAAQ0P,MAAQ1P,EAAQq6B,OACvDv7B,KAAKq7B,OAAOvqB,OAASjJ,KAAKq7C,MAAMhiD,EAAQ4P,OAAS5P,EAAQq6B,OACzDv7B,KAAKq7B,OAAO/X,MAAM1S,MAAQ1P,EAAQ0P,MAAQ,KAC1C5Q,KAAKq7B,OAAO/X,MAAMxS,OAAS5P,EAAQ4P,OAAS,KAC5C9Q,KAAK0tC,IAAInS,MAAMv7B,KAAKkB,QAAQq6B,MAAOv7B,KAAKkB,QAAQq6B,OAChDv7B,KAAK0tC,IAAIkoE,WAAW10G,EAAQwG,EAAIxG,EAAQmnG,SAAUnnG,EAAQyG,EAAIzG,EAAQqnG,SACtE7Y,GAAOG,YAAY3uF,EAAQd,IAAI+c,MAAM,oDAAsDjc,EAAQ0P,MAAQ,IAAM1P,EAAQ4P,OAAS,OAAS5P,EAAQwG,EAAI,IAAMxG,EAAQyG,EAAI,gBAAkBzG,EAAQq6B,OAsBvM,OApBA++E,EAAsBl8G,UAAU4G,OAAS,SAAUylC,GAC/C,OAAOy+B,EAAUlpE,UAAM,OAAQ,GAAQ,WACnC,IAAI6uF,EAAKzrD,EACT,OAAOmmC,EAAYvpE,MAAM,SAAU+xE,GAC/B,OAAQA,EAAGx6D,OACP,KAAK,EAED,OADAs3E,EAAMC,GAAuBjnF,KAAKsE,IAAInM,KAAKkB,QAAQy0B,YAAa31B,KAAKkB,QAAQ0P,OAAS5Q,KAAKkB,QAAQq6B,MAAO1zB,KAAKsE,IAAInM,KAAKkB,QAAQyvB,aAAc3wB,KAAKkB,QAAQ4P,QAAU9Q,KAAKkB,QAAQq6B,MAAOv7B,KAAKkB,QAAQmnG,QAAUroG,KAAKkB,QAAQq6B,MAAOv7B,KAAKkB,QAAQqnG,QAAUvoG,KAAKkB,QAAQq6B,MAAOkP,GACxQ,CAAC,EAAa8vE,GAAoB1rB,IAC7C,KAAK,EAOD,OANAzrD,EAAM2uC,EAAGvI,OACLxpE,KAAKkB,QAAQu6B,kBACbz7B,KAAK0tC,IAAIghD,UAAYrP,GAASr/E,KAAKkB,QAAQu6B,iBAC3Cz7B,KAAK0tC,IAAIihD,SAAS,EAAG,EAAG3uF,KAAKkB,QAAQ0P,MAAQ5Q,KAAKkB,QAAQq6B,MAAOv7B,KAAKkB,QAAQ4P,OAAS9Q,KAAKkB,QAAQq6B,QAExGv7B,KAAK0tC,IAAI6gD,UAAUnrD,GAAMpjC,KAAKkB,QAAQwG,EAAI1H,KAAKkB,QAAQq6B,OAAQv7B,KAAKkB,QAAQyG,EAAI3H,KAAKkB,QAAQq6B,OACtF,CAAC,EAAcv7B,KAAKq7B,gBAKxCi/E,EAjC+B,GAmCtCC,GAAsB,SAAU1rB,GAChC,OAAO,IAAIxlD,SAAQ,SAAUC,EAASC,GAClC,IAAInG,EAAM,IAAI6qD,MACd7qD,EAAIisD,OAAS,WACT/lD,EAAQlG,IAEZA,EAAI+G,QAAUZ,EACdnG,EAAI9C,IAAM,oCAAsC5gC,oBAAmB,IAAI4vF,eAAgBC,kBAAkBV,QAI7G18C,QAAQrjC,EACR0rG,GAAe,SAAUt0G,GAAS,OAAOmU,GAAMwF,MAAMq8D,GAAO30B,OAAOrhD,GAAOo2E,wBAC1Em+B,GAAc,SAAUhwE,EAASvpC,GAEjC,YADgB,IAAZA,IAAsBA,EAAU,IAC7Bw5G,GAAcjwE,EAASvpC,IAEZ,qBAAXgS,QACP68E,GAAaU,WAAWv9E,QAE5B,IAAIwnG,GAAgB,SAAUjwE,EAASjP,GAAQ,OAAO0tC,EAAU/2B,QAAO,OAAQ,GAAQ,WACnF,IAAIqQ,EAAevU,EAAa0sE,EAAc5oC,EAAInhE,EAAOE,EAAQ4N,EAAMC,EAAKi8F,EAAwBC,EAAiBC,EAAgB55G,EAAS65G,EAAcC,EAAgBC,EAAe9rE,EAAWw0D,EAAyBC,EAAqBriE,EAAS25E,EAAwBz/E,EAAiB0/E,EAAe9/E,EAAkB/+B,EAAM8+G,EAC7U,OAAO7xC,EAAYvpE,MAAM,SAAU4/E,GAC/B,OAAQA,EAAGroE,OACP,KAAK,EAED,GADAirC,EAAgB/X,EAAQ+X,eACnBA,EACD,MAAM,IAAI/hD,MAAM,yCAGpB,GADAwtC,EAAcuU,EAAcvU,aACvBA,EACD,MAAM,IAAIxtC,MAAM,wCAwCpB,OAtCAk6G,GAAgB9yG,KAAKkqC,MAAsB,IAAhBlqC,KAAK6pB,UAAmBshB,KAAK28C,OAAO5vF,SAAS,IACxEgyE,EAAK+yB,GAAcr6D,IAAY06D,GAAc16D,GAAWy/B,EAAkB1nB,GAAiBynB,EAAYx/B,GAAU75B,EAAQmhE,EAAGnhE,MAAOE,EAASihE,EAAGjhE,OAAQ4N,EAAOqzD,EAAGrzD,KAAMC,EAAMozD,EAAGpzD,IAChLi8F,EAAyB,CACrBppB,YAAY,EACZG,aAAc,KACdL,WAAOxiF,EACP6sB,SAAS,GAEbk/E,EAAkB5xC,EAAS,GAAI2xC,EAAwBp/E,GACvDs/E,EAAiB,CACbr/E,gBAAiB,UACjBgkC,MAAOjkC,EAAKikC,MAAQjkC,EAAKikC,MAAQswB,GAAaxoC,OAAOozD,EAAcE,GACnEn/E,SAAS,EACT2/E,iBAAiB,EACjBC,wBAAwB,EACxB//E,MAAO0S,EAAYrT,kBAAoB,EACvCjF,YAAasY,EAAY/X,WACzBvF,aAAcsd,EAAY3X,YAC1B+xE,QAASp6D,EAAYq6D,YACrBC,QAASt6D,EAAYu6D,YACrB9gG,EAAGgX,EACH/W,EAAGgX,EACH/N,MAAO/I,KAAKuvD,KAAKxmD,GACjBE,OAAQjJ,KAAKuvD,KAAKtmD,GAClB1Q,GAAIu6G,GAERz5G,EAAU+nE,EAAS,GAAI6xC,EAAgBD,EAAiBr/E,GACxDu/E,EAAe,IAAIjxC,EAAO5oE,EAAQmnG,QAASnnG,EAAQqnG,QAASrnG,EAAQy0B,YAAaz0B,EAAQyvB,cACzF++D,GAAOnoC,OAAO,CAAEnnD,GAAIu6G,EAAcjwE,QAASxpC,EAAQw6B,UACnDg0D,GAAOG,YAAY8qB,GAAcx9F,MAAM,2BACvC69F,EAAiB,IAAIlT,GAAer9D,EAAS,CACzCrqC,GAAIu6G,EACJ9R,QAAS3nG,EAAQ2nG,QACjByB,eAAgBppG,EAAQopG,eACxBV,aAAc1oG,EAAQo6G,uBACtB/Q,WAAYrpG,EAAQo6G,yBAExBL,EAAgBD,EAAejS,uBAC1BkS,EAGE,CAAC,EAAaD,EAAe9S,SAAS1lD,EAAeu4D,IAFjD,CAAC,EAAc1xE,QAAQE,OAAO,4CAG7C,KAAK,EAgCD,OA/BA4F,EAAYywC,EAAGpW,OACfm6B,EAA0BnhD,EAAcrsB,gBAClCqkF,GAAatsE,iBAAiBsU,EAAcrsB,iBAAiBsF,iBAC7DyjD,GAAOC,YACbykB,EAAsBphD,EAAc5oC,KAC9B4gG,GAAatsE,iBAAiBsU,EAAc5oC,MAAM6hB,iBAClDyjD,GAAOC,YACb59C,EAAU/F,EAAKC,gBACfy/E,EAA4C,kBAAZ35E,EAAuBi5E,GAAaj5E,GAAuB,OAAZA,EAAmB29C,GAAOC,YAAc,WACvH1jD,EAAkBgP,IAAY+X,EAAcrsB,gBACtCipD,GAAcukB,GACVvkB,GAAcwkB,GACVsX,EACAtX,EACJD,EACJuX,EACNC,EAAgB,CACZ/6G,GAAIu6G,EACJl7C,MAAOv+D,EAAQu+D,MACfpkC,OAAQn6B,EAAQm6B,OAChBI,gBAAiBA,EACjBF,MAAOr6B,EAAQq6B,MACf7zB,EAAGxG,EAAQwG,EACXC,EAAGzG,EAAQyG,EACX0gG,QAASnnG,EAAQmnG,QACjBE,QAASrnG,EAAQqnG,QACjB33F,MAAO1P,EAAQ0P,MACfE,OAAQ5P,EAAQ4P,OAChB6kB,YAAaz0B,EAAQy0B,YACrBhF,aAAczvB,EAAQyvB,cAErBzvB,EAAQo6G,wBACb5rB,GAAOG,YAAY8qB,GAAcx9F,MAAM,mDACvCi+F,EAAW,IAAId,GAAsBa,GAC9B,CAAC,EAAaC,EAASp2G,OAAOi2G,KAHO,CAAC,EAAa,GAI9D,KAAK,EAED,OADA5/E,EAASukD,EAAGpW,OACL,CAAC,EAAa,GACzB,KAAK,EAWD,OAVAkmB,GAAOG,YAAY8qB,GAAcx9F,MAAM,6CACvC4yE,GAAaa,eAAe1vF,EAAQu+D,OACpCiwB,GAAOG,YAAY8qB,GAAcx9F,MAAM,wBACvC7gB,EAAOonG,GAAUuX,GACjBlrB,GAAac,iBACTp1D,IAAoBn/B,EAAKoF,OAAO+5B,kBAChCn/B,EAAKoF,OAAO+5B,gBAAkByjD,GAAOC,aAEzCuQ,GAAOG,YAAY8qB,GAAcx9F,MAAM,qBACvCi+F,EAAW,IAAI3F,GAAe0F,GACvB,CAAC,EAAaC,EAASp2G,OAAO1I,IACzC,KAAK,EACD++B,EAASukD,EAAGpW,OACZoW,EAAGroE,MAAQ,EACf,KAAK,EASD,OARgC,IAA5BrW,EAAQm6G,kBACHvT,GAAejhD,QAAQ1X,IACxBugD,GAAOG,YAAY8qB,GAAclqG,MAAM,gEAG/Ci/E,GAAOG,YAAY8qB,GAAcx9F,MAAM,sBACvCuyE,GAAO7oC,QAAQ8zD,GACf5qB,GAAalpC,QAAQ8zD,GACd,CAAC,EAAct/E,WAKtC,OAAOo/E,O,kCCv5NX,W,mBCAAj+G,EAAOC,QAAU,8f,mBCAjBD,EAAOC,QAAU,s4C,mBCAjBD,EAAOC,QAAU,0kE,qBCAjBD,EAAOC,QAAU,IAA0B,yB,kCCA3C,W,mBCAAD,EAAOC,QAAU,0tE,mBCAjBD,EAAOC,QAAU,8Z,yDCAjB,IAAIuI,EAAS,WAAa,IAAI6d,EAAI7iB,KAASshB,EAAGuB,EAAIC,eAAmBC,EAAGF,EAAIG,MAAMD,IAAIzB,EAAG,OAAOyB,EAAG,KAAK,CAACM,YAAY,aAAa,CAACN,EAAG,MAAM,CAACM,YAAY,kBAAkB,CAACN,EAAG,OAAO,CAACM,YAAY,aAAaE,GAAG,CAAC,MAAQ,SAASE,GAAgC,OAAxBA,EAAOwP,iBAAwBpQ,EAAI04F,SAAS93F,MAAW,CAACV,EAAG,MAAM,CAACM,YAAY,YAAY8E,MAAM,CAAC,IAAMtF,EAAI24F,SAAS34F,EAAIue,MAAMgH,QAAQ,IAAM,MAAMrlB,EAAG,OAAO,CAACM,YAAY,QAAQ,CAACR,EAAI4B,GAAG,IAAI5B,EAAIN,GAAGM,EAAIue,MAAM4G,mBAAqBnlB,EAAIue,MAAM6G,aAAa,cACnehjC,EAAkB,G,wBCetB,GACEzH,KAAM,aACN+iB,MAAO,CACL6gB,MAAO,CACLj/B,KAAMxE,OACNmH,QAAS,WACP,MAAO,CACL68B,WAAY,EACZsG,YAAa,GACbG,OAAQ,UACRJ,kBAAmB,MAIzBvkC,MAAO,CACLtB,KAAMshC,OACN3+B,QAAS,IAGbsc,QAAS,CACPq6F,cADJ,WAEMz7G,KAAK+kC,MAAM,SAAU,CAA3B,gDAEIy2E,SAAU,EAAd,KACID,SALJ,WAMMv7G,KAAK+kC,MAAM,UAAW,CAA5B,sBCzCmV,I,wBCQ/UtE,EAAY,eACd,EACAz7B,EACAC,GACA,EACA,KACA,KACA,MAIa,OAAAw7B,E","file":"js/chunk-7e8ffd1c.0418a285.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"vue\"), require(\"screenfull\"), require(\"html2canvas\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"relation-graph\", [\"vue\", \"screenfull\", \"html2canvas\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"relation-graph\"] = factory(require(\"vue\"), require(\"screenfull\"), require(\"html2canvas\"));\n\telse\n\t\troot[\"relation-graph\"] = factory(root[\"Vue\"], root[\"screenfull\"], root[\"html2canvas\"]);\n})(typeof self !== 'undefined' ? self : this, function(__WEBPACK_EXTERNAL_MODULE_9__, __WEBPACK_EXTERNAL_MODULE_10__, __WEBPACK_EXTERNAL_MODULE_11__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/dist/\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 3);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\n/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap && typeof btoa === 'function') {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n\t// eslint-disable-next-line no-undef\n\tvar base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n\tvar data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n\treturn '/*# ' + data + ' */';\n}\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n Modified by Evan You @yyx990803\n*/\n\nvar hasDocument = typeof document !== 'undefined'\n\nif (typeof DEBUG !== 'undefined' && DEBUG) {\n if (!hasDocument) {\n throw new Error(\n 'vue-style-loader cannot be used in a non-browser environment. ' +\n \"Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.\"\n ) }\n}\n\nvar listToStyles = __webpack_require__(7)\n\n/*\ntype StyleObject = {\n id: number;\n parts: Array\n}\n\ntype StyleObjectPart = {\n css: string;\n media: string;\n sourceMap: ?string\n}\n*/\n\nvar stylesInDom = {/*\n [id: number]: {\n id: number,\n refs: number,\n parts: Array<(obj?: StyleObjectPart) => void>\n }\n*/}\n\nvar head = hasDocument && (document.head || document.getElementsByTagName('head')[0])\nvar singletonElement = null\nvar singletonCounter = 0\nvar isProduction = false\nvar noop = function () {}\nvar options = null\nvar ssrIdKey = 'data-vue-ssr-id'\n\n// Force single-tag solution on IE6-9, which has a hard limit on the # of \");\n } catch (c) {\n console && console.log(c);\n }\n }function n() {\n o || (o = !0, t());\n }a = function () {\n var c, a, l, t;(t = document.createElement(\"div\")).innerHTML = e, e = null, (l = t.getElementsByTagName(\"svg\")[0]) && (l.setAttribute(\"aria-hidden\", \"true\"), l.style.position = \"absolute\", l.style.width = 0, l.style.height = 0, l.style.overflow = \"hidden\", c = l, (a = document.body).firstChild ? (t = c, (l = a.firstChild).parentNode.insertBefore(t, l)) : a.appendChild(c));\n }, document.addEventListener ? ~[\"complete\", \"loaded\", \"interactive\"].indexOf(document.readyState) ? setTimeout(a, 0) : (l = function () {\n document.removeEventListener(\"DOMContentLoaded\", l, !1), a();\n }, document.addEventListener(\"DOMContentLoaded\", l, !1)) : document.attachEvent && (t = a, i = c.document, o = !1, (h = function () {\n try {\n i.documentElement.doScroll(\"left\");\n } catch (c) {\n return void setTimeout(h, 50);\n }n();\n })(), i.onreadystatechange = function () {\n \"complete\" == i.readyState && (i.onreadystatechange = null, n());\n });\n}(window);\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_9__;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_10__;\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_11__;\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// style-loader: Adds some css to the DOM by adding a ","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LessonDesignAction.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LessonDesignAction.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./LessonDesignAction.vue?vue&type=template&id=61c18d20&\"\nimport script from \"./LessonDesignAction.vue?vue&type=script&lang=js&\"\nexport * from \"./LessonDesignAction.vue?vue&type=script&lang=js&\"\nimport style0 from \"./LessonDesignAction.vue?vue&type=style&index=0&lang=less&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"after-class-source\"},[_c('div',{staticClass:\"after-source-title-warp\"},[_c('span',{staticClass:\"after-source-title\"},[_vm._v(\" \"+_vm._s(_vm.title)+\" \")])]),_c('div',{staticClass:\"after-class-content\",style:({background:_vm.bgColor})},[_vm._t(\"content\")],2),_c('a-popover',{attrs:{\"title\":\"\",\"placement\":\"topRight\",\"trigger\":\"click\",\"visible\":_vm.visible}},[_c('template',{slot:\"content\"},[_c('div',{staticClass:\"tool-warp\"},[_c('a-tabs',{attrs:{\"default-active-key\":\"1\"}},[_c('a-tab-pane',{key:\"1\",attrs:{\"tab\":\"上传文件\"}},[_c('br'),_c('a-upload',{attrs:{\"name\":\"file\",\"action\":\"/api/MyLesson/UploadFiles\",\"file-list\":_vm.fileList},on:{\"change\":_vm.uploadHandleChange}},[_c('a-button',[_c('a-icon',{attrs:{\"type\":\"upload\"}}),_vm._v(\" 点击上传文件 \")],1)],1),_c('br'),_c('div',[_c('a-input',{attrs:{\"addon-before\":\"教学用途\",\"placeholder\":\"请输入文件教学用途\"},model:{value:(_vm.filename),callback:function ($$v) {_vm.filename=$$v},expression:\"filename\"}})],1),_c('br'),_c('div',{staticStyle:{\"text-align\":\"right\"}},[_c('a-button',{attrs:{\"type\":\"default\"},on:{\"click\":_vm.cancelUpload}},[_vm._v(\"取消\")]),_c('span',{staticStyle:{\"padding\":\"8px\"}}),_c('a-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.saveFile}},[_vm._v(\"保存\")])],1)],1),_c('a-tab-pane',{key:\"2\",attrs:{\"tab\":\"文件链接\",\"force-render\":\"\"}},[_c('br'),_c('div',[_c('a-input',{attrs:{\"addon-before\":\"文件链接\",\"placeholder\":\"请粘贴文件链接\"},model:{value:(_vm.link),callback:function ($$v) {_vm.link=$$v},expression:\"link\"}})],1),_c('br'),_c('div',[_c('a-input',{attrs:{\"addon-before\":\"教学用途\",\"placeholder\":\"请输入文件教学用途\"},model:{value:(_vm.linkname),callback:function ($$v) {_vm.linkname=$$v},expression:\"linkname\"}})],1),_c('br'),_c('div',{staticStyle:{\"text-align\":\"right\"}},[_c('a-button',{attrs:{\"type\":\"default\"},on:{\"click\":_vm.cancelUpload}},[_vm._v(\"取消\")]),_c('span',{staticStyle:{\"padding\":\"8px\"}}),_c('a-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.saveLink}},[_vm._v(\"保存\")])],1)])],1)],1)]),(_vm.canUpload)?_c('img',{staticClass:\"edit-btn\",attrs:{\"src\":require(\"@/assets/big-add.png\"),\"alt\":\"\",\"srcset\":\"\"},on:{\"click\":_vm.edit}}):_vm._e()],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AfterClassSource.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AfterClassSource.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AfterClassSource.vue?vue&type=template&id=ae1ff4cc&\"\nimport script from \"./AfterClassSource.vue?vue&type=script&lang=js&\"\nexport * from \"./AfterClassSource.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AfterClassSource.vue?vue&type=style&index=0&lang=less&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"idea-map\"},[_c('SeeksRelationGraph',{ref:\"ideaMapRelationGraph\",attrs:{\"options\":_vm.graphOptions}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IdeaMap.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IdeaMap.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./IdeaMap.vue?vue&type=template&id=26644a14&\"\nimport script from \"./IdeaMap.vue?vue&type=script&lang=js&\"\nexport * from \"./IdeaMap.vue?vue&type=script&lang=js&\"\nimport style0 from \"./IdeaMap.vue?vue&type=style&index=0&lang=less&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAMAAADzapwJAAAAkFBMVEUAAAAqKiohISwgIComJi8kJC4oKC8qKi8qKi8oKDApKTApKTAqKjEpKTApKTEqKjApKTAsLDQtLTQwMDcqKjAwMDcwMDgpKTFycncqKjEwMDczMzo0NDpOTlRRUVdUVFpVVVpycnd2dnp2dnt5eX6amp6bm56hoaS1tbe1tbi4uLvk5OXq6uv19fX4+Pj////3LubPAAAAGXRSTlMADBcYGxxnZ2h/r7O3y8vP3+bn8vPz8/f+XejuwAAAANdJREFUGNN1kekWgiAQhccocymXXNI0tcJcUHv/t4shDT3Z/QN8Z7gwcwGENqrp+L5jqhuQUvSAtmzoWU0DXZno1r6x1yh2s8iH7tzyNVPpCq7YC8r5EX30CPdDVaRpUQ24j3QA4qFvl8VCWYf+HoE9xdprPCrDeroHs+VrFX9V8WNtgIMeucQ5ujhwxlsXiVN+7P0fnHzwH5NDvfqkJj6YLT5414CEv+2ERDafJ0kum18ZlSVGvjs95/R5mgZuRTKGaIoBQwtpw/qeNY9QhsZFNBGxoY2lb6KJNTiPBJoBAAAAAElFTkSuQmCC\"","/*!\n* screenfull\n* v4.2.1 - 2019-07-27\n* (c) Sindre Sorhus; MIT License\n*/\n(function () {\n\t'use strict';\n\n\tvar document = typeof window !== 'undefined' && typeof window.document !== 'undefined' ? window.document : {};\n\tvar isCommonjs = typeof module !== 'undefined' && module.exports;\n\tvar keyboardAllowed = typeof Element !== 'undefined' && 'ALLOW_KEYBOARD_INPUT' in Element;\n\n\tvar fn = (function () {\n\t\tvar val;\n\n\t\tvar fnMap = [\n\t\t\t[\n\t\t\t\t'requestFullscreen',\n\t\t\t\t'exitFullscreen',\n\t\t\t\t'fullscreenElement',\n\t\t\t\t'fullscreenEnabled',\n\t\t\t\t'fullscreenchange',\n\t\t\t\t'fullscreenerror'\n\t\t\t],\n\t\t\t// New WebKit\n\t\t\t[\n\t\t\t\t'webkitRequestFullscreen',\n\t\t\t\t'webkitExitFullscreen',\n\t\t\t\t'webkitFullscreenElement',\n\t\t\t\t'webkitFullscreenEnabled',\n\t\t\t\t'webkitfullscreenchange',\n\t\t\t\t'webkitfullscreenerror'\n\n\t\t\t],\n\t\t\t// Old WebKit (Safari 5.1)\n\t\t\t[\n\t\t\t\t'webkitRequestFullScreen',\n\t\t\t\t'webkitCancelFullScreen',\n\t\t\t\t'webkitCurrentFullScreenElement',\n\t\t\t\t'webkitCancelFullScreen',\n\t\t\t\t'webkitfullscreenchange',\n\t\t\t\t'webkitfullscreenerror'\n\n\t\t\t],\n\t\t\t[\n\t\t\t\t'mozRequestFullScreen',\n\t\t\t\t'mozCancelFullScreen',\n\t\t\t\t'mozFullScreenElement',\n\t\t\t\t'mozFullScreenEnabled',\n\t\t\t\t'mozfullscreenchange',\n\t\t\t\t'mozfullscreenerror'\n\t\t\t],\n\t\t\t[\n\t\t\t\t'msRequestFullscreen',\n\t\t\t\t'msExitFullscreen',\n\t\t\t\t'msFullscreenElement',\n\t\t\t\t'msFullscreenEnabled',\n\t\t\t\t'MSFullscreenChange',\n\t\t\t\t'MSFullscreenError'\n\t\t\t]\n\t\t];\n\n\t\tvar i = 0;\n\t\tvar l = fnMap.length;\n\t\tvar ret = {};\n\n\t\tfor (; i < l; i++) {\n\t\t\tval = fnMap[i];\n\t\t\tif (val && val[1] in document) {\n\t\t\t\tfor (i = 0; i < val.length; i++) {\n\t\t\t\t\tret[fnMap[0][i]] = val[i];\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t})();\n\n\tvar eventNameMap = {\n\t\tchange: fn.fullscreenchange,\n\t\terror: fn.fullscreenerror\n\t};\n\n\tvar screenfull = {\n\t\trequest: function (elem) {\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\tvar request = fn.requestFullscreen;\n\n\t\t\t\tvar onFullScreenEntered = function () {\n\t\t\t\t\tthis.off('change', onFullScreenEntered);\n\t\t\t\t\tresolve();\n\t\t\t\t}.bind(this);\n\n\t\t\t\tthis.on('change', onFullScreenEntered);\n\n\t\t\t\telem = elem || document.documentElement;\n\n\t\t\t\tvar promise;\n\n\t\t\t\t// Work around Safari 5.1 bug: reports support for\n\t\t\t\t// keyboard in fullscreen even though it doesn't.\n\t\t\t\t// Browser sniffing, since the alternative with\n\t\t\t\t// setTimeout is even worse.\n\t\t\t\tif (/ Version\\/5\\.1(?:\\.\\d+)? Safari\\//.test(navigator.userAgent)) {\n\t\t\t\t\tpromise = elem[request]();\n\t\t\t\t} else {\n\t\t\t\t\tpromise = elem[request](keyboardAllowed ? Element.ALLOW_KEYBOARD_INPUT : {});\n\t\t\t\t}\n\n\t\t\t\tPromise.resolve(promise).catch(reject);\n\t\t\t}.bind(this));\n\t\t},\n\t\texit: function () {\n\t\t\treturn new Promise(function (resolve) {\n\t\t\t\tif (!this.isFullscreen) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar onFullScreenExit = function () {\n\t\t\t\t\tthis.off('change', onFullScreenExit);\n\t\t\t\t\tresolve();\n\t\t\t\t}.bind(this);\n\n\t\t\t\tdocument[fn.exitFullscreen]();\n\n\t\t\t\tthis.on('change', onFullScreenExit);\n\t\t\t}.bind(this));\n\t\t},\n\t\ttoggle: function (elem) {\n\t\t\treturn this.isFullscreen ? this.exit() : this.request(elem);\n\t\t},\n\t\tonchange: function (callback) {\n\t\t\tthis.on('change', callback);\n\t\t},\n\t\tonerror: function (callback) {\n\t\t\tthis.on('error', callback);\n\t\t},\n\t\ton: function (event, callback) {\n\t\t\tvar eventName = eventNameMap[event];\n\t\t\tif (eventName) {\n\t\t\t\tdocument.addEventListener(eventName, callback, false);\n\t\t\t}\n\t\t},\n\t\toff: function (event, callback) {\n\t\t\tvar eventName = eventNameMap[event];\n\t\t\tif (eventName) {\n\t\t\t\tdocument.removeEventListener(eventName, callback, false);\n\t\t\t}\n\t\t},\n\t\traw: fn\n\t};\n\n\tif (!fn) {\n\t\tif (isCommonjs) {\n\t\t\tmodule.exports = false;\n\t\t} else {\n\t\t\twindow.screenfull = false;\n\t\t}\n\n\t\treturn;\n\t}\n\n\tObject.defineProperties(screenfull, {\n\t\tisFullscreen: {\n\t\t\tget: function () {\n\t\t\t\treturn Boolean(document[fn.fullscreenElement]);\n\t\t\t}\n\t\t},\n\t\telement: {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\treturn document[fn.fullscreenElement];\n\t\t\t}\n\t\t},\n\t\tenabled: {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\t// Coerce to boolean in case of old WebKit\n\t\t\t\treturn Boolean(document[fn.fullscreenEnabled]);\n\t\t\t}\n\t\t}\n\t});\n\n\tif (isCommonjs) {\n\t\tmodule.exports = screenfull;\n\t\t// TODO: remove this in the next major version\n\t\tmodule.exports.default = screenfull;\n\t} else {\n\t\twindow.screenfull = screenfull;\n\t}\n})();\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LessonDesignAction.vue?vue&type=style&index=0&lang=less&\"","/**!\n * Sortable 1.10.2\n * @author\tRubaXa \n * @author\towenm \n * @license MIT\n */\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nvar version = \"1.10.2\";\n\nfunction userAgent(pattern) {\n if (typeof window !== 'undefined' && window.navigator) {\n return !!\n /*@__PURE__*/\n navigator.userAgent.match(pattern);\n }\n}\n\nvar IE11OrLess = userAgent(/(?:Trident.*rv[ :]?11\\.|msie|iemobile|Windows Phone)/i);\nvar Edge = userAgent(/Edge/i);\nvar FireFox = userAgent(/firefox/i);\nvar Safari = userAgent(/safari/i) && !userAgent(/chrome/i) && !userAgent(/android/i);\nvar IOS = userAgent(/iP(ad|od|hone)/i);\nvar ChromeForAndroid = userAgent(/chrome/i) && userAgent(/android/i);\n\nvar captureMode = {\n capture: false,\n passive: false\n};\n\nfunction on(el, event, fn) {\n el.addEventListener(event, fn, !IE11OrLess && captureMode);\n}\n\nfunction off(el, event, fn) {\n el.removeEventListener(event, fn, !IE11OrLess && captureMode);\n}\n\nfunction matches(\n/**HTMLElement*/\nel,\n/**String*/\nselector) {\n if (!selector) return;\n selector[0] === '>' && (selector = selector.substring(1));\n\n if (el) {\n try {\n if (el.matches) {\n return el.matches(selector);\n } else if (el.msMatchesSelector) {\n return el.msMatchesSelector(selector);\n } else if (el.webkitMatchesSelector) {\n return el.webkitMatchesSelector(selector);\n }\n } catch (_) {\n return false;\n }\n }\n\n return false;\n}\n\nfunction getParentOrHost(el) {\n return el.host && el !== document && el.host.nodeType ? el.host : el.parentNode;\n}\n\nfunction closest(\n/**HTMLElement*/\nel,\n/**String*/\nselector,\n/**HTMLElement*/\nctx, includeCTX) {\n if (el) {\n ctx = ctx || document;\n\n do {\n if (selector != null && (selector[0] === '>' ? el.parentNode === ctx && matches(el, selector) : matches(el, selector)) || includeCTX && el === ctx) {\n return el;\n }\n\n if (el === ctx) break;\n /* jshint boss:true */\n } while (el = getParentOrHost(el));\n }\n\n return null;\n}\n\nvar R_SPACE = /\\s+/g;\n\nfunction toggleClass(el, name, state) {\n if (el && name) {\n if (el.classList) {\n el.classList[state ? 'add' : 'remove'](name);\n } else {\n var className = (' ' + el.className + ' ').replace(R_SPACE, ' ').replace(' ' + name + ' ', ' ');\n el.className = (className + (state ? ' ' + name : '')).replace(R_SPACE, ' ');\n }\n }\n}\n\nfunction css(el, prop, val) {\n var style = el && el.style;\n\n if (style) {\n if (val === void 0) {\n if (document.defaultView && document.defaultView.getComputedStyle) {\n val = document.defaultView.getComputedStyle(el, '');\n } else if (el.currentStyle) {\n val = el.currentStyle;\n }\n\n return prop === void 0 ? val : val[prop];\n } else {\n if (!(prop in style) && prop.indexOf('webkit') === -1) {\n prop = '-webkit-' + prop;\n }\n\n style[prop] = val + (typeof val === 'string' ? '' : 'px');\n }\n }\n}\n\nfunction matrix(el, selfOnly) {\n var appliedTransforms = '';\n\n if (typeof el === 'string') {\n appliedTransforms = el;\n } else {\n do {\n var transform = css(el, 'transform');\n\n if (transform && transform !== 'none') {\n appliedTransforms = transform + ' ' + appliedTransforms;\n }\n /* jshint boss:true */\n\n } while (!selfOnly && (el = el.parentNode));\n }\n\n var matrixFn = window.DOMMatrix || window.WebKitCSSMatrix || window.CSSMatrix || window.MSCSSMatrix;\n /*jshint -W056 */\n\n return matrixFn && new matrixFn(appliedTransforms);\n}\n\nfunction find(ctx, tagName, iterator) {\n if (ctx) {\n var list = ctx.getElementsByTagName(tagName),\n i = 0,\n n = list.length;\n\n if (iterator) {\n for (; i < n; i++) {\n iterator(list[i], i);\n }\n }\n\n return list;\n }\n\n return [];\n}\n\nfunction getWindowScrollingElement() {\n var scrollingElement = document.scrollingElement;\n\n if (scrollingElement) {\n return scrollingElement;\n } else {\n return document.documentElement;\n }\n}\n/**\r\n * Returns the \"bounding client rect\" of given element\r\n * @param {HTMLElement} el The element whose boundingClientRect is wanted\r\n * @param {[Boolean]} relativeToContainingBlock Whether the rect should be relative to the containing block of (including) the container\r\n * @param {[Boolean]} relativeToNonStaticParent Whether the rect should be relative to the relative parent of (including) the contaienr\r\n * @param {[Boolean]} undoScale Whether the container's scale() should be undone\r\n * @param {[HTMLElement]} container The parent the element will be placed in\r\n * @return {Object} The boundingClientRect of el, with specified adjustments\r\n */\n\n\nfunction getRect(el, relativeToContainingBlock, relativeToNonStaticParent, undoScale, container) {\n if (!el.getBoundingClientRect && el !== window) return;\n var elRect, top, left, bottom, right, height, width;\n\n if (el !== window && el !== getWindowScrollingElement()) {\n elRect = el.getBoundingClientRect();\n top = elRect.top;\n left = elRect.left;\n bottom = elRect.bottom;\n right = elRect.right;\n height = elRect.height;\n width = elRect.width;\n } else {\n top = 0;\n left = 0;\n bottom = window.innerHeight;\n right = window.innerWidth;\n height = window.innerHeight;\n width = window.innerWidth;\n }\n\n if ((relativeToContainingBlock || relativeToNonStaticParent) && el !== window) {\n // Adjust for translate()\n container = container || el.parentNode; // solves #1123 (see: https://stackoverflow.com/a/37953806/6088312)\n // Not needed on <= IE11\n\n if (!IE11OrLess) {\n do {\n if (container && container.getBoundingClientRect && (css(container, 'transform') !== 'none' || relativeToNonStaticParent && css(container, 'position') !== 'static')) {\n var containerRect = container.getBoundingClientRect(); // Set relative to edges of padding box of container\n\n top -= containerRect.top + parseInt(css(container, 'border-top-width'));\n left -= containerRect.left + parseInt(css(container, 'border-left-width'));\n bottom = top + elRect.height;\n right = left + elRect.width;\n break;\n }\n /* jshint boss:true */\n\n } while (container = container.parentNode);\n }\n }\n\n if (undoScale && el !== window) {\n // Adjust for scale()\n var elMatrix = matrix(container || el),\n scaleX = elMatrix && elMatrix.a,\n scaleY = elMatrix && elMatrix.d;\n\n if (elMatrix) {\n top /= scaleY;\n left /= scaleX;\n width /= scaleX;\n height /= scaleY;\n bottom = top + height;\n right = left + width;\n }\n }\n\n return {\n top: top,\n left: left,\n bottom: bottom,\n right: right,\n width: width,\n height: height\n };\n}\n/**\r\n * Checks if a side of an element is scrolled past a side of its parents\r\n * @param {HTMLElement} el The element who's side being scrolled out of view is in question\r\n * @param {String} elSide Side of the element in question ('top', 'left', 'right', 'bottom')\r\n * @param {String} parentSide Side of the parent in question ('top', 'left', 'right', 'bottom')\r\n * @return {HTMLElement} The parent scroll element that the el's side is scrolled past, or null if there is no such element\r\n */\n\n\nfunction isScrolledPast(el, elSide, parentSide) {\n var parent = getParentAutoScrollElement(el, true),\n elSideVal = getRect(el)[elSide];\n /* jshint boss:true */\n\n while (parent) {\n var parentSideVal = getRect(parent)[parentSide],\n visible = void 0;\n\n if (parentSide === 'top' || parentSide === 'left') {\n visible = elSideVal >= parentSideVal;\n } else {\n visible = elSideVal <= parentSideVal;\n }\n\n if (!visible) return parent;\n if (parent === getWindowScrollingElement()) break;\n parent = getParentAutoScrollElement(parent, false);\n }\n\n return false;\n}\n/**\r\n * Gets nth child of el, ignoring hidden children, sortable's elements (does not ignore clone if it's visible)\r\n * and non-draggable elements\r\n * @param {HTMLElement} el The parent element\r\n * @param {Number} childNum The index of the child\r\n * @param {Object} options Parent Sortable's options\r\n * @return {HTMLElement} The child at index childNum, or null if not found\r\n */\n\n\nfunction getChild(el, childNum, options) {\n var currentChild = 0,\n i = 0,\n children = el.children;\n\n while (i < children.length) {\n if (children[i].style.display !== 'none' && children[i] !== Sortable.ghost && children[i] !== Sortable.dragged && closest(children[i], options.draggable, el, false)) {\n if (currentChild === childNum) {\n return children[i];\n }\n\n currentChild++;\n }\n\n i++;\n }\n\n return null;\n}\n/**\r\n * Gets the last child in the el, ignoring ghostEl or invisible elements (clones)\r\n * @param {HTMLElement} el Parent element\r\n * @param {selector} selector Any other elements that should be ignored\r\n * @return {HTMLElement} The last child, ignoring ghostEl\r\n */\n\n\nfunction lastChild(el, selector) {\n var last = el.lastElementChild;\n\n while (last && (last === Sortable.ghost || css(last, 'display') === 'none' || selector && !matches(last, selector))) {\n last = last.previousElementSibling;\n }\n\n return last || null;\n}\n/**\r\n * Returns the index of an element within its parent for a selected set of\r\n * elements\r\n * @param {HTMLElement} el\r\n * @param {selector} selector\r\n * @return {number}\r\n */\n\n\nfunction index(el, selector) {\n var index = 0;\n\n if (!el || !el.parentNode) {\n return -1;\n }\n /* jshint boss:true */\n\n\n while (el = el.previousElementSibling) {\n if (el.nodeName.toUpperCase() !== 'TEMPLATE' && el !== Sortable.clone && (!selector || matches(el, selector))) {\n index++;\n }\n }\n\n return index;\n}\n/**\r\n * Returns the scroll offset of the given element, added with all the scroll offsets of parent elements.\r\n * The value is returned in real pixels.\r\n * @param {HTMLElement} el\r\n * @return {Array} Offsets in the format of [left, top]\r\n */\n\n\nfunction getRelativeScrollOffset(el) {\n var offsetLeft = 0,\n offsetTop = 0,\n winScroller = getWindowScrollingElement();\n\n if (el) {\n do {\n var elMatrix = matrix(el),\n scaleX = elMatrix.a,\n scaleY = elMatrix.d;\n offsetLeft += el.scrollLeft * scaleX;\n offsetTop += el.scrollTop * scaleY;\n } while (el !== winScroller && (el = el.parentNode));\n }\n\n return [offsetLeft, offsetTop];\n}\n/**\r\n * Returns the index of the object within the given array\r\n * @param {Array} arr Array that may or may not hold the object\r\n * @param {Object} obj An object that has a key-value pair unique to and identical to a key-value pair in the object you want to find\r\n * @return {Number} The index of the object in the array, or -1\r\n */\n\n\nfunction indexOfObject(arr, obj) {\n for (var i in arr) {\n if (!arr.hasOwnProperty(i)) continue;\n\n for (var key in obj) {\n if (obj.hasOwnProperty(key) && obj[key] === arr[i][key]) return Number(i);\n }\n }\n\n return -1;\n}\n\nfunction getParentAutoScrollElement(el, includeSelf) {\n // skip to window\n if (!el || !el.getBoundingClientRect) return getWindowScrollingElement();\n var elem = el;\n var gotSelf = false;\n\n do {\n // we don't need to get elem css if it isn't even overflowing in the first place (performance)\n if (elem.clientWidth < elem.scrollWidth || elem.clientHeight < elem.scrollHeight) {\n var elemCSS = css(elem);\n\n if (elem.clientWidth < elem.scrollWidth && (elemCSS.overflowX == 'auto' || elemCSS.overflowX == 'scroll') || elem.clientHeight < elem.scrollHeight && (elemCSS.overflowY == 'auto' || elemCSS.overflowY == 'scroll')) {\n if (!elem.getBoundingClientRect || elem === document.body) return getWindowScrollingElement();\n if (gotSelf || includeSelf) return elem;\n gotSelf = true;\n }\n }\n /* jshint boss:true */\n\n } while (elem = elem.parentNode);\n\n return getWindowScrollingElement();\n}\n\nfunction extend(dst, src) {\n if (dst && src) {\n for (var key in src) {\n if (src.hasOwnProperty(key)) {\n dst[key] = src[key];\n }\n }\n }\n\n return dst;\n}\n\nfunction isRectEqual(rect1, rect2) {\n return Math.round(rect1.top) === Math.round(rect2.top) && Math.round(rect1.left) === Math.round(rect2.left) && Math.round(rect1.height) === Math.round(rect2.height) && Math.round(rect1.width) === Math.round(rect2.width);\n}\n\nvar _throttleTimeout;\n\nfunction throttle(callback, ms) {\n return function () {\n if (!_throttleTimeout) {\n var args = arguments,\n _this = this;\n\n if (args.length === 1) {\n callback.call(_this, args[0]);\n } else {\n callback.apply(_this, args);\n }\n\n _throttleTimeout = setTimeout(function () {\n _throttleTimeout = void 0;\n }, ms);\n }\n };\n}\n\nfunction cancelThrottle() {\n clearTimeout(_throttleTimeout);\n _throttleTimeout = void 0;\n}\n\nfunction scrollBy(el, x, y) {\n el.scrollLeft += x;\n el.scrollTop += y;\n}\n\nfunction clone(el) {\n var Polymer = window.Polymer;\n var $ = window.jQuery || window.Zepto;\n\n if (Polymer && Polymer.dom) {\n return Polymer.dom(el).cloneNode(true);\n } else if ($) {\n return $(el).clone(true)[0];\n } else {\n return el.cloneNode(true);\n }\n}\n\nfunction setRect(el, rect) {\n css(el, 'position', 'absolute');\n css(el, 'top', rect.top);\n css(el, 'left', rect.left);\n css(el, 'width', rect.width);\n css(el, 'height', rect.height);\n}\n\nfunction unsetRect(el) {\n css(el, 'position', '');\n css(el, 'top', '');\n css(el, 'left', '');\n css(el, 'width', '');\n css(el, 'height', '');\n}\n\nvar expando = 'Sortable' + new Date().getTime();\n\nfunction AnimationStateManager() {\n var animationStates = [],\n animationCallbackId;\n return {\n captureAnimationState: function captureAnimationState() {\n animationStates = [];\n if (!this.options.animation) return;\n var children = [].slice.call(this.el.children);\n children.forEach(function (child) {\n if (css(child, 'display') === 'none' || child === Sortable.ghost) return;\n animationStates.push({\n target: child,\n rect: getRect(child)\n });\n\n var fromRect = _objectSpread({}, animationStates[animationStates.length - 1].rect); // If animating: compensate for current animation\n\n\n if (child.thisAnimationDuration) {\n var childMatrix = matrix(child, true);\n\n if (childMatrix) {\n fromRect.top -= childMatrix.f;\n fromRect.left -= childMatrix.e;\n }\n }\n\n child.fromRect = fromRect;\n });\n },\n addAnimationState: function addAnimationState(state) {\n animationStates.push(state);\n },\n removeAnimationState: function removeAnimationState(target) {\n animationStates.splice(indexOfObject(animationStates, {\n target: target\n }), 1);\n },\n animateAll: function animateAll(callback) {\n var _this = this;\n\n if (!this.options.animation) {\n clearTimeout(animationCallbackId);\n if (typeof callback === 'function') callback();\n return;\n }\n\n var animating = false,\n animationTime = 0;\n animationStates.forEach(function (state) {\n var time = 0,\n target = state.target,\n fromRect = target.fromRect,\n toRect = getRect(target),\n prevFromRect = target.prevFromRect,\n prevToRect = target.prevToRect,\n animatingRect = state.rect,\n targetMatrix = matrix(target, true);\n\n if (targetMatrix) {\n // Compensate for current animation\n toRect.top -= targetMatrix.f;\n toRect.left -= targetMatrix.e;\n }\n\n target.toRect = toRect;\n\n if (target.thisAnimationDuration) {\n // Could also check if animatingRect is between fromRect and toRect\n if (isRectEqual(prevFromRect, toRect) && !isRectEqual(fromRect, toRect) && // Make sure animatingRect is on line between toRect & fromRect\n (animatingRect.top - toRect.top) / (animatingRect.left - toRect.left) === (fromRect.top - toRect.top) / (fromRect.left - toRect.left)) {\n // If returning to same place as started from animation and on same axis\n time = calculateRealTime(animatingRect, prevFromRect, prevToRect, _this.options);\n }\n } // if fromRect != toRect: animate\n\n\n if (!isRectEqual(toRect, fromRect)) {\n target.prevFromRect = fromRect;\n target.prevToRect = toRect;\n\n if (!time) {\n time = _this.options.animation;\n }\n\n _this.animate(target, animatingRect, toRect, time);\n }\n\n if (time) {\n animating = true;\n animationTime = Math.max(animationTime, time);\n clearTimeout(target.animationResetTimer);\n target.animationResetTimer = setTimeout(function () {\n target.animationTime = 0;\n target.prevFromRect = null;\n target.fromRect = null;\n target.prevToRect = null;\n target.thisAnimationDuration = null;\n }, time);\n target.thisAnimationDuration = time;\n }\n });\n clearTimeout(animationCallbackId);\n\n if (!animating) {\n if (typeof callback === 'function') callback();\n } else {\n animationCallbackId = setTimeout(function () {\n if (typeof callback === 'function') callback();\n }, animationTime);\n }\n\n animationStates = [];\n },\n animate: function animate(target, currentRect, toRect, duration) {\n if (duration) {\n css(target, 'transition', '');\n css(target, 'transform', '');\n var elMatrix = matrix(this.el),\n scaleX = elMatrix && elMatrix.a,\n scaleY = elMatrix && elMatrix.d,\n translateX = (currentRect.left - toRect.left) / (scaleX || 1),\n translateY = (currentRect.top - toRect.top) / (scaleY || 1);\n target.animatingX = !!translateX;\n target.animatingY = !!translateY;\n css(target, 'transform', 'translate3d(' + translateX + 'px,' + translateY + 'px,0)');\n repaint(target); // repaint\n\n css(target, 'transition', 'transform ' + duration + 'ms' + (this.options.easing ? ' ' + this.options.easing : ''));\n css(target, 'transform', 'translate3d(0,0,0)');\n typeof target.animated === 'number' && clearTimeout(target.animated);\n target.animated = setTimeout(function () {\n css(target, 'transition', '');\n css(target, 'transform', '');\n target.animated = false;\n target.animatingX = false;\n target.animatingY = false;\n }, duration);\n }\n }\n };\n}\n\nfunction repaint(target) {\n return target.offsetWidth;\n}\n\nfunction calculateRealTime(animatingRect, fromRect, toRect, options) {\n return Math.sqrt(Math.pow(fromRect.top - animatingRect.top, 2) + Math.pow(fromRect.left - animatingRect.left, 2)) / Math.sqrt(Math.pow(fromRect.top - toRect.top, 2) + Math.pow(fromRect.left - toRect.left, 2)) * options.animation;\n}\n\nvar plugins = [];\nvar defaults = {\n initializeByDefault: true\n};\nvar PluginManager = {\n mount: function mount(plugin) {\n // Set default static properties\n for (var option in defaults) {\n if (defaults.hasOwnProperty(option) && !(option in plugin)) {\n plugin[option] = defaults[option];\n }\n }\n\n plugins.push(plugin);\n },\n pluginEvent: function pluginEvent(eventName, sortable, evt) {\n var _this = this;\n\n this.eventCanceled = false;\n\n evt.cancel = function () {\n _this.eventCanceled = true;\n };\n\n var eventNameGlobal = eventName + 'Global';\n plugins.forEach(function (plugin) {\n if (!sortable[plugin.pluginName]) return; // Fire global events if it exists in this sortable\n\n if (sortable[plugin.pluginName][eventNameGlobal]) {\n sortable[plugin.pluginName][eventNameGlobal](_objectSpread({\n sortable: sortable\n }, evt));\n } // Only fire plugin event if plugin is enabled in this sortable,\n // and plugin has event defined\n\n\n if (sortable.options[plugin.pluginName] && sortable[plugin.pluginName][eventName]) {\n sortable[plugin.pluginName][eventName](_objectSpread({\n sortable: sortable\n }, evt));\n }\n });\n },\n initializePlugins: function initializePlugins(sortable, el, defaults, options) {\n plugins.forEach(function (plugin) {\n var pluginName = plugin.pluginName;\n if (!sortable.options[pluginName] && !plugin.initializeByDefault) return;\n var initialized = new plugin(sortable, el, sortable.options);\n initialized.sortable = sortable;\n initialized.options = sortable.options;\n sortable[pluginName] = initialized; // Add default options from plugin\n\n _extends(defaults, initialized.defaults);\n });\n\n for (var option in sortable.options) {\n if (!sortable.options.hasOwnProperty(option)) continue;\n var modified = this.modifyOption(sortable, option, sortable.options[option]);\n\n if (typeof modified !== 'undefined') {\n sortable.options[option] = modified;\n }\n }\n },\n getEventProperties: function getEventProperties(name, sortable) {\n var eventProperties = {};\n plugins.forEach(function (plugin) {\n if (typeof plugin.eventProperties !== 'function') return;\n\n _extends(eventProperties, plugin.eventProperties.call(sortable[plugin.pluginName], name));\n });\n return eventProperties;\n },\n modifyOption: function modifyOption(sortable, name, value) {\n var modifiedValue;\n plugins.forEach(function (plugin) {\n // Plugin must exist on the Sortable\n if (!sortable[plugin.pluginName]) return; // If static option listener exists for this option, call in the context of the Sortable's instance of this plugin\n\n if (plugin.optionListeners && typeof plugin.optionListeners[name] === 'function') {\n modifiedValue = plugin.optionListeners[name].call(sortable[plugin.pluginName], value);\n }\n });\n return modifiedValue;\n }\n};\n\nfunction dispatchEvent(_ref) {\n var sortable = _ref.sortable,\n rootEl = _ref.rootEl,\n name = _ref.name,\n targetEl = _ref.targetEl,\n cloneEl = _ref.cloneEl,\n toEl = _ref.toEl,\n fromEl = _ref.fromEl,\n oldIndex = _ref.oldIndex,\n newIndex = _ref.newIndex,\n oldDraggableIndex = _ref.oldDraggableIndex,\n newDraggableIndex = _ref.newDraggableIndex,\n originalEvent = _ref.originalEvent,\n putSortable = _ref.putSortable,\n extraEventProperties = _ref.extraEventProperties;\n sortable = sortable || rootEl && rootEl[expando];\n if (!sortable) return;\n var evt,\n options = sortable.options,\n onName = 'on' + name.charAt(0).toUpperCase() + name.substr(1); // Support for new CustomEvent feature\n\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent(name, {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent('Event');\n evt.initEvent(name, true, true);\n }\n\n evt.to = toEl || rootEl;\n evt.from = fromEl || rootEl;\n evt.item = targetEl || rootEl;\n evt.clone = cloneEl;\n evt.oldIndex = oldIndex;\n evt.newIndex = newIndex;\n evt.oldDraggableIndex = oldDraggableIndex;\n evt.newDraggableIndex = newDraggableIndex;\n evt.originalEvent = originalEvent;\n evt.pullMode = putSortable ? putSortable.lastPutMode : undefined;\n\n var allEventProperties = _objectSpread({}, extraEventProperties, PluginManager.getEventProperties(name, sortable));\n\n for (var option in allEventProperties) {\n evt[option] = allEventProperties[option];\n }\n\n if (rootEl) {\n rootEl.dispatchEvent(evt);\n }\n\n if (options[onName]) {\n options[onName].call(sortable, evt);\n }\n}\n\nvar pluginEvent = function pluginEvent(eventName, sortable) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n originalEvent = _ref.evt,\n data = _objectWithoutProperties(_ref, [\"evt\"]);\n\n PluginManager.pluginEvent.bind(Sortable)(eventName, sortable, _objectSpread({\n dragEl: dragEl,\n parentEl: parentEl,\n ghostEl: ghostEl,\n rootEl: rootEl,\n nextEl: nextEl,\n lastDownEl: lastDownEl,\n cloneEl: cloneEl,\n cloneHidden: cloneHidden,\n dragStarted: moved,\n putSortable: putSortable,\n activeSortable: Sortable.active,\n originalEvent: originalEvent,\n oldIndex: oldIndex,\n oldDraggableIndex: oldDraggableIndex,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex,\n hideGhostForTarget: _hideGhostForTarget,\n unhideGhostForTarget: _unhideGhostForTarget,\n cloneNowHidden: function cloneNowHidden() {\n cloneHidden = true;\n },\n cloneNowShown: function cloneNowShown() {\n cloneHidden = false;\n },\n dispatchSortableEvent: function dispatchSortableEvent(name) {\n _dispatchEvent({\n sortable: sortable,\n name: name,\n originalEvent: originalEvent\n });\n }\n }, data));\n};\n\nfunction _dispatchEvent(info) {\n dispatchEvent(_objectSpread({\n putSortable: putSortable,\n cloneEl: cloneEl,\n targetEl: dragEl,\n rootEl: rootEl,\n oldIndex: oldIndex,\n oldDraggableIndex: oldDraggableIndex,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex\n }, info));\n}\n\nvar dragEl,\n parentEl,\n ghostEl,\n rootEl,\n nextEl,\n lastDownEl,\n cloneEl,\n cloneHidden,\n oldIndex,\n newIndex,\n oldDraggableIndex,\n newDraggableIndex,\n activeGroup,\n putSortable,\n awaitingDragStarted = false,\n ignoreNextClick = false,\n sortables = [],\n tapEvt,\n touchEvt,\n lastDx,\n lastDy,\n tapDistanceLeft,\n tapDistanceTop,\n moved,\n lastTarget,\n lastDirection,\n pastFirstInvertThresh = false,\n isCircumstantialInvert = false,\n targetMoveDistance,\n // For positioning ghost absolutely\nghostRelativeParent,\n ghostRelativeParentInitialScroll = [],\n // (left, top)\n_silent = false,\n savedInputChecked = [];\n/** @const */\n\nvar documentExists = typeof document !== 'undefined',\n PositionGhostAbsolutely = IOS,\n CSSFloatProperty = Edge || IE11OrLess ? 'cssFloat' : 'float',\n // This will not pass for IE9, because IE9 DnD only works on anchors\nsupportDraggable = documentExists && !ChromeForAndroid && !IOS && 'draggable' in document.createElement('div'),\n supportCssPointerEvents = function () {\n if (!documentExists) return; // false when <= IE11\n\n if (IE11OrLess) {\n return false;\n }\n\n var el = document.createElement('x');\n el.style.cssText = 'pointer-events:auto';\n return el.style.pointerEvents === 'auto';\n}(),\n _detectDirection = function _detectDirection(el, options) {\n var elCSS = css(el),\n elWidth = parseInt(elCSS.width) - parseInt(elCSS.paddingLeft) - parseInt(elCSS.paddingRight) - parseInt(elCSS.borderLeftWidth) - parseInt(elCSS.borderRightWidth),\n child1 = getChild(el, 0, options),\n child2 = getChild(el, 1, options),\n firstChildCSS = child1 && css(child1),\n secondChildCSS = child2 && css(child2),\n firstChildWidth = firstChildCSS && parseInt(firstChildCSS.marginLeft) + parseInt(firstChildCSS.marginRight) + getRect(child1).width,\n secondChildWidth = secondChildCSS && parseInt(secondChildCSS.marginLeft) + parseInt(secondChildCSS.marginRight) + getRect(child2).width;\n\n if (elCSS.display === 'flex') {\n return elCSS.flexDirection === 'column' || elCSS.flexDirection === 'column-reverse' ? 'vertical' : 'horizontal';\n }\n\n if (elCSS.display === 'grid') {\n return elCSS.gridTemplateColumns.split(' ').length <= 1 ? 'vertical' : 'horizontal';\n }\n\n if (child1 && firstChildCSS[\"float\"] && firstChildCSS[\"float\"] !== 'none') {\n var touchingSideChild2 = firstChildCSS[\"float\"] === 'left' ? 'left' : 'right';\n return child2 && (secondChildCSS.clear === 'both' || secondChildCSS.clear === touchingSideChild2) ? 'vertical' : 'horizontal';\n }\n\n return child1 && (firstChildCSS.display === 'block' || firstChildCSS.display === 'flex' || firstChildCSS.display === 'table' || firstChildCSS.display === 'grid' || firstChildWidth >= elWidth && elCSS[CSSFloatProperty] === 'none' || child2 && elCSS[CSSFloatProperty] === 'none' && firstChildWidth + secondChildWidth > elWidth) ? 'vertical' : 'horizontal';\n},\n _dragElInRowColumn = function _dragElInRowColumn(dragRect, targetRect, vertical) {\n var dragElS1Opp = vertical ? dragRect.left : dragRect.top,\n dragElS2Opp = vertical ? dragRect.right : dragRect.bottom,\n dragElOppLength = vertical ? dragRect.width : dragRect.height,\n targetS1Opp = vertical ? targetRect.left : targetRect.top,\n targetS2Opp = vertical ? targetRect.right : targetRect.bottom,\n targetOppLength = vertical ? targetRect.width : targetRect.height;\n return dragElS1Opp === targetS1Opp || dragElS2Opp === targetS2Opp || dragElS1Opp + dragElOppLength / 2 === targetS1Opp + targetOppLength / 2;\n},\n\n/**\n * Detects first nearest empty sortable to X and Y position using emptyInsertThreshold.\n * @param {Number} x X position\n * @param {Number} y Y position\n * @return {HTMLElement} Element of the first found nearest Sortable\n */\n_detectNearestEmptySortable = function _detectNearestEmptySortable(x, y) {\n var ret;\n sortables.some(function (sortable) {\n if (lastChild(sortable)) return;\n var rect = getRect(sortable),\n threshold = sortable[expando].options.emptyInsertThreshold,\n insideHorizontally = x >= rect.left - threshold && x <= rect.right + threshold,\n insideVertically = y >= rect.top - threshold && y <= rect.bottom + threshold;\n\n if (threshold && insideHorizontally && insideVertically) {\n return ret = sortable;\n }\n });\n return ret;\n},\n _prepareGroup = function _prepareGroup(options) {\n function toFn(value, pull) {\n return function (to, from, dragEl, evt) {\n var sameGroup = to.options.group.name && from.options.group.name && to.options.group.name === from.options.group.name;\n\n if (value == null && (pull || sameGroup)) {\n // Default pull value\n // Default pull and put value if same group\n return true;\n } else if (value == null || value === false) {\n return false;\n } else if (pull && value === 'clone') {\n return value;\n } else if (typeof value === 'function') {\n return toFn(value(to, from, dragEl, evt), pull)(to, from, dragEl, evt);\n } else {\n var otherGroup = (pull ? to : from).options.group.name;\n return value === true || typeof value === 'string' && value === otherGroup || value.join && value.indexOf(otherGroup) > -1;\n }\n };\n }\n\n var group = {};\n var originalGroup = options.group;\n\n if (!originalGroup || _typeof(originalGroup) != 'object') {\n originalGroup = {\n name: originalGroup\n };\n }\n\n group.name = originalGroup.name;\n group.checkPull = toFn(originalGroup.pull, true);\n group.checkPut = toFn(originalGroup.put);\n group.revertClone = originalGroup.revertClone;\n options.group = group;\n},\n _hideGhostForTarget = function _hideGhostForTarget() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, 'display', 'none');\n }\n},\n _unhideGhostForTarget = function _unhideGhostForTarget() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, 'display', '');\n }\n}; // #1184 fix - Prevent click event on fallback if dragged but item not changed position\n\n\nif (documentExists) {\n document.addEventListener('click', function (evt) {\n if (ignoreNextClick) {\n evt.preventDefault();\n evt.stopPropagation && evt.stopPropagation();\n evt.stopImmediatePropagation && evt.stopImmediatePropagation();\n ignoreNextClick = false;\n return false;\n }\n }, true);\n}\n\nvar nearestEmptyInsertDetectEvent = function nearestEmptyInsertDetectEvent(evt) {\n if (dragEl) {\n evt = evt.touches ? evt.touches[0] : evt;\n\n var nearest = _detectNearestEmptySortable(evt.clientX, evt.clientY);\n\n if (nearest) {\n // Create imitation event\n var event = {};\n\n for (var i in evt) {\n if (evt.hasOwnProperty(i)) {\n event[i] = evt[i];\n }\n }\n\n event.target = event.rootEl = nearest;\n event.preventDefault = void 0;\n event.stopPropagation = void 0;\n\n nearest[expando]._onDragOver(event);\n }\n }\n};\n\nvar _checkOutsideTargetEl = function _checkOutsideTargetEl(evt) {\n if (dragEl) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target);\n }\n};\n/**\n * @class Sortable\n * @param {HTMLElement} el\n * @param {Object} [options]\n */\n\n\nfunction Sortable(el, options) {\n if (!(el && el.nodeType && el.nodeType === 1)) {\n throw \"Sortable: `el` must be an HTMLElement, not \".concat({}.toString.call(el));\n }\n\n this.el = el; // root element\n\n this.options = options = _extends({}, options); // Export instance\n\n el[expando] = this;\n var defaults = {\n group: null,\n sort: true,\n disabled: false,\n store: null,\n handle: null,\n draggable: /^[uo]l$/i.test(el.nodeName) ? '>li' : '>*',\n swapThreshold: 1,\n // percentage; 0 <= x <= 1\n invertSwap: false,\n // invert always\n invertedSwapThreshold: null,\n // will be set to same as swapThreshold if default\n removeCloneOnHide: true,\n direction: function direction() {\n return _detectDirection(el, this.options);\n },\n ghostClass: 'sortable-ghost',\n chosenClass: 'sortable-chosen',\n dragClass: 'sortable-drag',\n ignore: 'a, img',\n filter: null,\n preventOnFilter: true,\n animation: 0,\n easing: null,\n setData: function setData(dataTransfer, dragEl) {\n dataTransfer.setData('Text', dragEl.textContent);\n },\n dropBubble: false,\n dragoverBubble: false,\n dataIdAttr: 'data-id',\n delay: 0,\n delayOnTouchOnly: false,\n touchStartThreshold: (Number.parseInt ? Number : window).parseInt(window.devicePixelRatio, 10) || 1,\n forceFallback: false,\n fallbackClass: 'sortable-fallback',\n fallbackOnBody: false,\n fallbackTolerance: 0,\n fallbackOffset: {\n x: 0,\n y: 0\n },\n supportPointer: Sortable.supportPointer !== false && 'PointerEvent' in window,\n emptyInsertThreshold: 5\n };\n PluginManager.initializePlugins(this, el, defaults); // Set default options\n\n for (var name in defaults) {\n !(name in options) && (options[name] = defaults[name]);\n }\n\n _prepareGroup(options); // Bind all private methods\n\n\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n } // Setup drag mode\n\n\n this.nativeDraggable = options.forceFallback ? false : supportDraggable;\n\n if (this.nativeDraggable) {\n // Touch start threshold cannot be greater than the native dragstart threshold\n this.options.touchStartThreshold = 1;\n } // Bind events\n\n\n if (options.supportPointer) {\n on(el, 'pointerdown', this._onTapStart);\n } else {\n on(el, 'mousedown', this._onTapStart);\n on(el, 'touchstart', this._onTapStart);\n }\n\n if (this.nativeDraggable) {\n on(el, 'dragover', this);\n on(el, 'dragenter', this);\n }\n\n sortables.push(this.el); // Restore sorting\n\n options.store && options.store.get && this.sort(options.store.get(this) || []); // Add animation state manager\n\n _extends(this, AnimationStateManager());\n}\n\nSortable.prototype =\n/** @lends Sortable.prototype */\n{\n constructor: Sortable,\n _isOutsideThisEl: function _isOutsideThisEl(target) {\n if (!this.el.contains(target) && target !== this.el) {\n lastTarget = null;\n }\n },\n _getDirection: function _getDirection(evt, target) {\n return typeof this.options.direction === 'function' ? this.options.direction.call(this, evt, target, dragEl) : this.options.direction;\n },\n _onTapStart: function _onTapStart(\n /** Event|TouchEvent */\n evt) {\n if (!evt.cancelable) return;\n\n var _this = this,\n el = this.el,\n options = this.options,\n preventOnFilter = options.preventOnFilter,\n type = evt.type,\n touch = evt.touches && evt.touches[0] || evt.pointerType && evt.pointerType === 'touch' && evt,\n target = (touch || evt).target,\n originalTarget = evt.target.shadowRoot && (evt.path && evt.path[0] || evt.composedPath && evt.composedPath()[0]) || target,\n filter = options.filter;\n\n _saveInputCheckedState(el); // Don't trigger start event when an element is been dragged, otherwise the evt.oldindex always wrong when set option.group.\n\n\n if (dragEl) {\n return;\n }\n\n if (/mousedown|pointerdown/.test(type) && evt.button !== 0 || options.disabled) {\n return; // only left button and enabled\n } // cancel dnd if original target is content editable\n\n\n if (originalTarget.isContentEditable) {\n return;\n }\n\n target = closest(target, options.draggable, el, false);\n\n if (target && target.animated) {\n return;\n }\n\n if (lastDownEl === target) {\n // Ignoring duplicate `down`\n return;\n } // Get the index of the dragged element within its parent\n\n\n oldIndex = index(target);\n oldDraggableIndex = index(target, options.draggable); // Check filter\n\n if (typeof filter === 'function') {\n if (filter.call(this, evt, target, this)) {\n _dispatchEvent({\n sortable: _this,\n rootEl: originalTarget,\n name: 'filter',\n targetEl: target,\n toEl: el,\n fromEl: el\n });\n\n pluginEvent('filter', _this, {\n evt: evt\n });\n preventOnFilter && evt.cancelable && evt.preventDefault();\n return; // cancel dnd\n }\n } else if (filter) {\n filter = filter.split(',').some(function (criteria) {\n criteria = closest(originalTarget, criteria.trim(), el, false);\n\n if (criteria) {\n _dispatchEvent({\n sortable: _this,\n rootEl: criteria,\n name: 'filter',\n targetEl: target,\n fromEl: el,\n toEl: el\n });\n\n pluginEvent('filter', _this, {\n evt: evt\n });\n return true;\n }\n });\n\n if (filter) {\n preventOnFilter && evt.cancelable && evt.preventDefault();\n return; // cancel dnd\n }\n }\n\n if (options.handle && !closest(originalTarget, options.handle, el, false)) {\n return;\n } // Prepare `dragstart`\n\n\n this._prepareDragStart(evt, touch, target);\n },\n _prepareDragStart: function _prepareDragStart(\n /** Event */\n evt,\n /** Touch */\n touch,\n /** HTMLElement */\n target) {\n var _this = this,\n el = _this.el,\n options = _this.options,\n ownerDocument = el.ownerDocument,\n dragStartFn;\n\n if (target && !dragEl && target.parentNode === el) {\n var dragRect = getRect(target);\n rootEl = el;\n dragEl = target;\n parentEl = dragEl.parentNode;\n nextEl = dragEl.nextSibling;\n lastDownEl = target;\n activeGroup = options.group;\n Sortable.dragged = dragEl;\n tapEvt = {\n target: dragEl,\n clientX: (touch || evt).clientX,\n clientY: (touch || evt).clientY\n };\n tapDistanceLeft = tapEvt.clientX - dragRect.left;\n tapDistanceTop = tapEvt.clientY - dragRect.top;\n this._lastX = (touch || evt).clientX;\n this._lastY = (touch || evt).clientY;\n dragEl.style['will-change'] = 'all';\n\n dragStartFn = function dragStartFn() {\n pluginEvent('delayEnded', _this, {\n evt: evt\n });\n\n if (Sortable.eventCanceled) {\n _this._onDrop();\n\n return;\n } // Delayed drag has been triggered\n // we can re-enable the events: touchmove/mousemove\n\n\n _this._disableDelayedDragEvents();\n\n if (!FireFox && _this.nativeDraggable) {\n dragEl.draggable = true;\n } // Bind the events: dragstart/dragend\n\n\n _this._triggerDragStart(evt, touch); // Drag start event\n\n\n _dispatchEvent({\n sortable: _this,\n name: 'choose',\n originalEvent: evt\n }); // Chosen item\n\n\n toggleClass(dragEl, options.chosenClass, true);\n }; // Disable \"draggable\"\n\n\n options.ignore.split(',').forEach(function (criteria) {\n find(dragEl, criteria.trim(), _disableDraggable);\n });\n on(ownerDocument, 'dragover', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'mousemove', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'touchmove', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'mouseup', _this._onDrop);\n on(ownerDocument, 'touchend', _this._onDrop);\n on(ownerDocument, 'touchcancel', _this._onDrop); // Make dragEl draggable (must be before delay for FireFox)\n\n if (FireFox && this.nativeDraggable) {\n this.options.touchStartThreshold = 4;\n dragEl.draggable = true;\n }\n\n pluginEvent('delayStart', this, {\n evt: evt\n }); // Delay is impossible for native DnD in Edge or IE\n\n if (options.delay && (!options.delayOnTouchOnly || touch) && (!this.nativeDraggable || !(Edge || IE11OrLess))) {\n if (Sortable.eventCanceled) {\n this._onDrop();\n\n return;\n } // If the user moves the pointer or let go the click or touch\n // before the delay has been reached:\n // disable the delayed drag\n\n\n on(ownerDocument, 'mouseup', _this._disableDelayedDrag);\n on(ownerDocument, 'touchend', _this._disableDelayedDrag);\n on(ownerDocument, 'touchcancel', _this._disableDelayedDrag);\n on(ownerDocument, 'mousemove', _this._delayedDragTouchMoveHandler);\n on(ownerDocument, 'touchmove', _this._delayedDragTouchMoveHandler);\n options.supportPointer && on(ownerDocument, 'pointermove', _this._delayedDragTouchMoveHandler);\n _this._dragStartTimer = setTimeout(dragStartFn, options.delay);\n } else {\n dragStartFn();\n }\n }\n },\n _delayedDragTouchMoveHandler: function _delayedDragTouchMoveHandler(\n /** TouchEvent|PointerEvent **/\n e) {\n var touch = e.touches ? e.touches[0] : e;\n\n if (Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) >= Math.floor(this.options.touchStartThreshold / (this.nativeDraggable && window.devicePixelRatio || 1))) {\n this._disableDelayedDrag();\n }\n },\n _disableDelayedDrag: function _disableDelayedDrag() {\n dragEl && _disableDraggable(dragEl);\n clearTimeout(this._dragStartTimer);\n\n this._disableDelayedDragEvents();\n },\n _disableDelayedDragEvents: function _disableDelayedDragEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, 'mouseup', this._disableDelayedDrag);\n off(ownerDocument, 'touchend', this._disableDelayedDrag);\n off(ownerDocument, 'touchcancel', this._disableDelayedDrag);\n off(ownerDocument, 'mousemove', this._delayedDragTouchMoveHandler);\n off(ownerDocument, 'touchmove', this._delayedDragTouchMoveHandler);\n off(ownerDocument, 'pointermove', this._delayedDragTouchMoveHandler);\n },\n _triggerDragStart: function _triggerDragStart(\n /** Event */\n evt,\n /** Touch */\n touch) {\n touch = touch || evt.pointerType == 'touch' && evt;\n\n if (!this.nativeDraggable || touch) {\n if (this.options.supportPointer) {\n on(document, 'pointermove', this._onTouchMove);\n } else if (touch) {\n on(document, 'touchmove', this._onTouchMove);\n } else {\n on(document, 'mousemove', this._onTouchMove);\n }\n } else {\n on(dragEl, 'dragend', this);\n on(rootEl, 'dragstart', this._onDragStart);\n }\n\n try {\n if (document.selection) {\n // Timeout neccessary for IE9\n _nextTick(function () {\n document.selection.empty();\n });\n } else {\n window.getSelection().removeAllRanges();\n }\n } catch (err) {}\n },\n _dragStarted: function _dragStarted(fallback, evt) {\n\n awaitingDragStarted = false;\n\n if (rootEl && dragEl) {\n pluginEvent('dragStarted', this, {\n evt: evt\n });\n\n if (this.nativeDraggable) {\n on(document, 'dragover', _checkOutsideTargetEl);\n }\n\n var options = this.options; // Apply effect\n\n !fallback && toggleClass(dragEl, options.dragClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n Sortable.active = this;\n fallback && this._appendGhost(); // Drag start event\n\n _dispatchEvent({\n sortable: this,\n name: 'start',\n originalEvent: evt\n });\n } else {\n this._nulling();\n }\n },\n _emulateDragOver: function _emulateDragOver() {\n if (touchEvt) {\n this._lastX = touchEvt.clientX;\n this._lastY = touchEvt.clientY;\n\n _hideGhostForTarget();\n\n var target = document.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n var parent = target;\n\n while (target && target.shadowRoot) {\n target = target.shadowRoot.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n if (target === parent) break;\n parent = target;\n }\n\n dragEl.parentNode[expando]._isOutsideThisEl(target);\n\n if (parent) {\n do {\n if (parent[expando]) {\n var inserted = void 0;\n inserted = parent[expando]._onDragOver({\n clientX: touchEvt.clientX,\n clientY: touchEvt.clientY,\n target: target,\n rootEl: parent\n });\n\n if (inserted && !this.options.dragoverBubble) {\n break;\n }\n }\n\n target = parent; // store last element\n }\n /* jshint boss:true */\n while (parent = parent.parentNode);\n }\n\n _unhideGhostForTarget();\n }\n },\n _onTouchMove: function _onTouchMove(\n /**TouchEvent*/\n evt) {\n if (tapEvt) {\n var options = this.options,\n fallbackTolerance = options.fallbackTolerance,\n fallbackOffset = options.fallbackOffset,\n touch = evt.touches ? evt.touches[0] : evt,\n ghostMatrix = ghostEl && matrix(ghostEl, true),\n scaleX = ghostEl && ghostMatrix && ghostMatrix.a,\n scaleY = ghostEl && ghostMatrix && ghostMatrix.d,\n relativeScrollOffset = PositionGhostAbsolutely && ghostRelativeParent && getRelativeScrollOffset(ghostRelativeParent),\n dx = (touch.clientX - tapEvt.clientX + fallbackOffset.x) / (scaleX || 1) + (relativeScrollOffset ? relativeScrollOffset[0] - ghostRelativeParentInitialScroll[0] : 0) / (scaleX || 1),\n dy = (touch.clientY - tapEvt.clientY + fallbackOffset.y) / (scaleY || 1) + (relativeScrollOffset ? relativeScrollOffset[1] - ghostRelativeParentInitialScroll[1] : 0) / (scaleY || 1); // only set the status to dragging, when we are actually dragging\n\n if (!Sortable.active && !awaitingDragStarted) {\n if (fallbackTolerance && Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) < fallbackTolerance) {\n return;\n }\n\n this._onDragStart(evt, true);\n }\n\n if (ghostEl) {\n if (ghostMatrix) {\n ghostMatrix.e += dx - (lastDx || 0);\n ghostMatrix.f += dy - (lastDy || 0);\n } else {\n ghostMatrix = {\n a: 1,\n b: 0,\n c: 0,\n d: 1,\n e: dx,\n f: dy\n };\n }\n\n var cssMatrix = \"matrix(\".concat(ghostMatrix.a, \",\").concat(ghostMatrix.b, \",\").concat(ghostMatrix.c, \",\").concat(ghostMatrix.d, \",\").concat(ghostMatrix.e, \",\").concat(ghostMatrix.f, \")\");\n css(ghostEl, 'webkitTransform', cssMatrix);\n css(ghostEl, 'mozTransform', cssMatrix);\n css(ghostEl, 'msTransform', cssMatrix);\n css(ghostEl, 'transform', cssMatrix);\n lastDx = dx;\n lastDy = dy;\n touchEvt = touch;\n }\n\n evt.cancelable && evt.preventDefault();\n }\n },\n _appendGhost: function _appendGhost() {\n // Bug if using scale(): https://stackoverflow.com/questions/2637058\n // Not being adjusted for\n if (!ghostEl) {\n var container = this.options.fallbackOnBody ? document.body : rootEl,\n rect = getRect(dragEl, true, PositionGhostAbsolutely, true, container),\n options = this.options; // Position absolutely\n\n if (PositionGhostAbsolutely) {\n // Get relatively positioned parent\n ghostRelativeParent = container;\n\n while (css(ghostRelativeParent, 'position') === 'static' && css(ghostRelativeParent, 'transform') === 'none' && ghostRelativeParent !== document) {\n ghostRelativeParent = ghostRelativeParent.parentNode;\n }\n\n if (ghostRelativeParent !== document.body && ghostRelativeParent !== document.documentElement) {\n if (ghostRelativeParent === document) ghostRelativeParent = getWindowScrollingElement();\n rect.top += ghostRelativeParent.scrollTop;\n rect.left += ghostRelativeParent.scrollLeft;\n } else {\n ghostRelativeParent = getWindowScrollingElement();\n }\n\n ghostRelativeParentInitialScroll = getRelativeScrollOffset(ghostRelativeParent);\n }\n\n ghostEl = dragEl.cloneNode(true);\n toggleClass(ghostEl, options.ghostClass, false);\n toggleClass(ghostEl, options.fallbackClass, true);\n toggleClass(ghostEl, options.dragClass, true);\n css(ghostEl, 'transition', '');\n css(ghostEl, 'transform', '');\n css(ghostEl, 'box-sizing', 'border-box');\n css(ghostEl, 'margin', 0);\n css(ghostEl, 'top', rect.top);\n css(ghostEl, 'left', rect.left);\n css(ghostEl, 'width', rect.width);\n css(ghostEl, 'height', rect.height);\n css(ghostEl, 'opacity', '0.8');\n css(ghostEl, 'position', PositionGhostAbsolutely ? 'absolute' : 'fixed');\n css(ghostEl, 'zIndex', '100000');\n css(ghostEl, 'pointerEvents', 'none');\n Sortable.ghost = ghostEl;\n container.appendChild(ghostEl); // Set transform-origin\n\n css(ghostEl, 'transform-origin', tapDistanceLeft / parseInt(ghostEl.style.width) * 100 + '% ' + tapDistanceTop / parseInt(ghostEl.style.height) * 100 + '%');\n }\n },\n _onDragStart: function _onDragStart(\n /**Event*/\n evt,\n /**boolean*/\n fallback) {\n var _this = this;\n\n var dataTransfer = evt.dataTransfer;\n var options = _this.options;\n pluginEvent('dragStart', this, {\n evt: evt\n });\n\n if (Sortable.eventCanceled) {\n this._onDrop();\n\n return;\n }\n\n pluginEvent('setupClone', this);\n\n if (!Sortable.eventCanceled) {\n cloneEl = clone(dragEl);\n cloneEl.draggable = false;\n cloneEl.style['will-change'] = '';\n\n this._hideClone();\n\n toggleClass(cloneEl, this.options.chosenClass, false);\n Sortable.clone = cloneEl;\n } // #1143: IFrame support workaround\n\n\n _this.cloneId = _nextTick(function () {\n pluginEvent('clone', _this);\n if (Sortable.eventCanceled) return;\n\n if (!_this.options.removeCloneOnHide) {\n rootEl.insertBefore(cloneEl, dragEl);\n }\n\n _this._hideClone();\n\n _dispatchEvent({\n sortable: _this,\n name: 'clone'\n });\n });\n !fallback && toggleClass(dragEl, options.dragClass, true); // Set proper drop events\n\n if (fallback) {\n ignoreNextClick = true;\n _this._loopId = setInterval(_this._emulateDragOver, 50);\n } else {\n // Undo what was set in _prepareDragStart before drag started\n off(document, 'mouseup', _this._onDrop);\n off(document, 'touchend', _this._onDrop);\n off(document, 'touchcancel', _this._onDrop);\n\n if (dataTransfer) {\n dataTransfer.effectAllowed = 'move';\n options.setData && options.setData.call(_this, dataTransfer, dragEl);\n }\n\n on(document, 'drop', _this); // #1276 fix:\n\n css(dragEl, 'transform', 'translateZ(0)');\n }\n\n awaitingDragStarted = true;\n _this._dragStartId = _nextTick(_this._dragStarted.bind(_this, fallback, evt));\n on(document, 'selectstart', _this);\n moved = true;\n\n if (Safari) {\n css(document.body, 'user-select', 'none');\n }\n },\n // Returns true - if no further action is needed (either inserted or another condition)\n _onDragOver: function _onDragOver(\n /**Event*/\n evt) {\n var el = this.el,\n target = evt.target,\n dragRect,\n targetRect,\n revert,\n options = this.options,\n group = options.group,\n activeSortable = Sortable.active,\n isOwner = activeGroup === group,\n canSort = options.sort,\n fromSortable = putSortable || activeSortable,\n vertical,\n _this = this,\n completedFired = false;\n\n if (_silent) return;\n\n function dragOverEvent(name, extra) {\n pluginEvent(name, _this, _objectSpread({\n evt: evt,\n isOwner: isOwner,\n axis: vertical ? 'vertical' : 'horizontal',\n revert: revert,\n dragRect: dragRect,\n targetRect: targetRect,\n canSort: canSort,\n fromSortable: fromSortable,\n target: target,\n completed: completed,\n onMove: function onMove(target, after) {\n return _onMove(rootEl, el, dragEl, dragRect, target, getRect(target), evt, after);\n },\n changed: changed\n }, extra));\n } // Capture animation state\n\n\n function capture() {\n dragOverEvent('dragOverAnimationCapture');\n\n _this.captureAnimationState();\n\n if (_this !== fromSortable) {\n fromSortable.captureAnimationState();\n }\n } // Return invocation when dragEl is inserted (or completed)\n\n\n function completed(insertion) {\n dragOverEvent('dragOverCompleted', {\n insertion: insertion\n });\n\n if (insertion) {\n // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n if (isOwner) {\n activeSortable._hideClone();\n } else {\n activeSortable._showClone(_this);\n }\n\n if (_this !== fromSortable) {\n // Set ghost class to new sortable's ghost class\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : activeSortable.options.ghostClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n }\n\n if (putSortable !== _this && _this !== Sortable.active) {\n putSortable = _this;\n } else if (_this === Sortable.active && putSortable) {\n putSortable = null;\n } // Animation\n\n\n if (fromSortable === _this) {\n _this._ignoreWhileAnimating = target;\n }\n\n _this.animateAll(function () {\n dragOverEvent('dragOverAnimationComplete');\n _this._ignoreWhileAnimating = null;\n });\n\n if (_this !== fromSortable) {\n fromSortable.animateAll();\n fromSortable._ignoreWhileAnimating = null;\n }\n } // Null lastTarget if it is not inside a previously swapped element\n\n\n if (target === dragEl && !dragEl.animated || target === el && !target.animated) {\n lastTarget = null;\n } // no bubbling and not fallback\n\n\n if (!options.dragoverBubble && !evt.rootEl && target !== document) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target); // Do not detect for empty insert if already inserted\n\n\n !insertion && nearestEmptyInsertDetectEvent(evt);\n }\n\n !options.dragoverBubble && evt.stopPropagation && evt.stopPropagation();\n return completedFired = true;\n } // Call when dragEl has been inserted\n\n\n function changed() {\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n\n _dispatchEvent({\n sortable: _this,\n name: 'change',\n toEl: el,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex,\n originalEvent: evt\n });\n }\n\n if (evt.preventDefault !== void 0) {\n evt.cancelable && evt.preventDefault();\n }\n\n target = closest(target, options.draggable, el, true);\n dragOverEvent('dragOver');\n if (Sortable.eventCanceled) return completedFired;\n\n if (dragEl.contains(evt.target) || target.animated && target.animatingX && target.animatingY || _this._ignoreWhileAnimating === target) {\n return completed(false);\n }\n\n ignoreNextClick = false;\n\n if (activeSortable && !options.disabled && (isOwner ? canSort || (revert = !rootEl.contains(dragEl)) // Reverting item into the original list\n : putSortable === this || (this.lastPutMode = activeGroup.checkPull(this, activeSortable, dragEl, evt)) && group.checkPut(this, activeSortable, dragEl, evt))) {\n vertical = this._getDirection(evt, target) === 'vertical';\n dragRect = getRect(dragEl);\n dragOverEvent('dragOverValid');\n if (Sortable.eventCanceled) return completedFired;\n\n if (revert) {\n parentEl = rootEl; // actualization\n\n capture();\n\n this._hideClone();\n\n dragOverEvent('revert');\n\n if (!Sortable.eventCanceled) {\n if (nextEl) {\n rootEl.insertBefore(dragEl, nextEl);\n } else {\n rootEl.appendChild(dragEl);\n }\n }\n\n return completed(true);\n }\n\n var elLastChild = lastChild(el, options.draggable);\n\n if (!elLastChild || _ghostIsLast(evt, vertical, this) && !elLastChild.animated) {\n // If already at end of list: Do not insert\n if (elLastChild === dragEl) {\n return completed(false);\n } // assign target only if condition is true\n\n\n if (elLastChild && el === evt.target) {\n target = elLastChild;\n }\n\n if (target) {\n targetRect = getRect(target);\n }\n\n if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, !!target) !== false) {\n capture();\n el.appendChild(dragEl);\n parentEl = el; // actualization\n\n changed();\n return completed(true);\n }\n } else if (target.parentNode === el) {\n targetRect = getRect(target);\n var direction = 0,\n targetBeforeFirstSwap,\n differentLevel = dragEl.parentNode !== el,\n differentRowCol = !_dragElInRowColumn(dragEl.animated && dragEl.toRect || dragRect, target.animated && target.toRect || targetRect, vertical),\n side1 = vertical ? 'top' : 'left',\n scrolledPastTop = isScrolledPast(target, 'top', 'top') || isScrolledPast(dragEl, 'top', 'top'),\n scrollBefore = scrolledPastTop ? scrolledPastTop.scrollTop : void 0;\n\n if (lastTarget !== target) {\n targetBeforeFirstSwap = targetRect[side1];\n pastFirstInvertThresh = false;\n isCircumstantialInvert = !differentRowCol && options.invertSwap || differentLevel;\n }\n\n direction = _getSwapDirection(evt, target, targetRect, vertical, differentRowCol ? 1 : options.swapThreshold, options.invertedSwapThreshold == null ? options.swapThreshold : options.invertedSwapThreshold, isCircumstantialInvert, lastTarget === target);\n var sibling;\n\n if (direction !== 0) {\n // Check if target is beside dragEl in respective direction (ignoring hidden elements)\n var dragIndex = index(dragEl);\n\n do {\n dragIndex -= direction;\n sibling = parentEl.children[dragIndex];\n } while (sibling && (css(sibling, 'display') === 'none' || sibling === ghostEl));\n } // If dragEl is already beside target: Do not insert\n\n\n if (direction === 0 || sibling === target) {\n return completed(false);\n }\n\n lastTarget = target;\n lastDirection = direction;\n var nextSibling = target.nextElementSibling,\n after = false;\n after = direction === 1;\n\n var moveVector = _onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, after);\n\n if (moveVector !== false) {\n if (moveVector === 1 || moveVector === -1) {\n after = moveVector === 1;\n }\n\n _silent = true;\n setTimeout(_unsilent, 30);\n capture();\n\n if (after && !nextSibling) {\n el.appendChild(dragEl);\n } else {\n target.parentNode.insertBefore(dragEl, after ? nextSibling : target);\n } // Undo chrome's scroll adjustment (has no effect on other browsers)\n\n\n if (scrolledPastTop) {\n scrollBy(scrolledPastTop, 0, scrollBefore - scrolledPastTop.scrollTop);\n }\n\n parentEl = dragEl.parentNode; // actualization\n // must be done before animation\n\n if (targetBeforeFirstSwap !== undefined && !isCircumstantialInvert) {\n targetMoveDistance = Math.abs(targetBeforeFirstSwap - getRect(target)[side1]);\n }\n\n changed();\n return completed(true);\n }\n }\n\n if (el.contains(dragEl)) {\n return completed(false);\n }\n }\n\n return false;\n },\n _ignoreWhileAnimating: null,\n _offMoveEvents: function _offMoveEvents() {\n off(document, 'mousemove', this._onTouchMove);\n off(document, 'touchmove', this._onTouchMove);\n off(document, 'pointermove', this._onTouchMove);\n off(document, 'dragover', nearestEmptyInsertDetectEvent);\n off(document, 'mousemove', nearestEmptyInsertDetectEvent);\n off(document, 'touchmove', nearestEmptyInsertDetectEvent);\n },\n _offUpEvents: function _offUpEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, 'mouseup', this._onDrop);\n off(ownerDocument, 'touchend', this._onDrop);\n off(ownerDocument, 'pointerup', this._onDrop);\n off(ownerDocument, 'touchcancel', this._onDrop);\n off(document, 'selectstart', this);\n },\n _onDrop: function _onDrop(\n /**Event*/\n evt) {\n var el = this.el,\n options = this.options; // Get the index of the dragged element within its parent\n\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n pluginEvent('drop', this, {\n evt: evt\n });\n parentEl = dragEl && dragEl.parentNode; // Get again after plugin event\n\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n\n if (Sortable.eventCanceled) {\n this._nulling();\n\n return;\n }\n\n awaitingDragStarted = false;\n isCircumstantialInvert = false;\n pastFirstInvertThresh = false;\n clearInterval(this._loopId);\n clearTimeout(this._dragStartTimer);\n\n _cancelNextTick(this.cloneId);\n\n _cancelNextTick(this._dragStartId); // Unbind events\n\n\n if (this.nativeDraggable) {\n off(document, 'drop', this);\n off(el, 'dragstart', this._onDragStart);\n }\n\n this._offMoveEvents();\n\n this._offUpEvents();\n\n if (Safari) {\n css(document.body, 'user-select', '');\n }\n\n css(dragEl, 'transform', '');\n\n if (evt) {\n if (moved) {\n evt.cancelable && evt.preventDefault();\n !options.dropBubble && evt.stopPropagation();\n }\n\n ghostEl && ghostEl.parentNode && ghostEl.parentNode.removeChild(ghostEl);\n\n if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n // Remove clone(s)\n cloneEl && cloneEl.parentNode && cloneEl.parentNode.removeChild(cloneEl);\n }\n\n if (dragEl) {\n if (this.nativeDraggable) {\n off(dragEl, 'dragend', this);\n }\n\n _disableDraggable(dragEl);\n\n dragEl.style['will-change'] = ''; // Remove classes\n // ghostClass is added in dragStarted\n\n if (moved && !awaitingDragStarted) {\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : this.options.ghostClass, false);\n }\n\n toggleClass(dragEl, this.options.chosenClass, false); // Drag stop event\n\n _dispatchEvent({\n sortable: this,\n name: 'unchoose',\n toEl: parentEl,\n newIndex: null,\n newDraggableIndex: null,\n originalEvent: evt\n });\n\n if (rootEl !== parentEl) {\n if (newIndex >= 0) {\n // Add event\n _dispatchEvent({\n rootEl: parentEl,\n name: 'add',\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n }); // Remove event\n\n\n _dispatchEvent({\n sortable: this,\n name: 'remove',\n toEl: parentEl,\n originalEvent: evt\n }); // drag from one list and drop into another\n\n\n _dispatchEvent({\n rootEl: parentEl,\n name: 'sort',\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n });\n\n _dispatchEvent({\n sortable: this,\n name: 'sort',\n toEl: parentEl,\n originalEvent: evt\n });\n }\n\n putSortable && putSortable.save();\n } else {\n if (newIndex !== oldIndex) {\n if (newIndex >= 0) {\n // drag & drop within the same list\n _dispatchEvent({\n sortable: this,\n name: 'update',\n toEl: parentEl,\n originalEvent: evt\n });\n\n _dispatchEvent({\n sortable: this,\n name: 'sort',\n toEl: parentEl,\n originalEvent: evt\n });\n }\n }\n }\n\n if (Sortable.active) {\n /* jshint eqnull:true */\n if (newIndex == null || newIndex === -1) {\n newIndex = oldIndex;\n newDraggableIndex = oldDraggableIndex;\n }\n\n _dispatchEvent({\n sortable: this,\n name: 'end',\n toEl: parentEl,\n originalEvent: evt\n }); // Save sorting\n\n\n this.save();\n }\n }\n }\n\n this._nulling();\n },\n _nulling: function _nulling() {\n pluginEvent('nulling', this);\n rootEl = dragEl = parentEl = ghostEl = nextEl = cloneEl = lastDownEl = cloneHidden = tapEvt = touchEvt = moved = newIndex = newDraggableIndex = oldIndex = oldDraggableIndex = lastTarget = lastDirection = putSortable = activeGroup = Sortable.dragged = Sortable.ghost = Sortable.clone = Sortable.active = null;\n savedInputChecked.forEach(function (el) {\n el.checked = true;\n });\n savedInputChecked.length = lastDx = lastDy = 0;\n },\n handleEvent: function handleEvent(\n /**Event*/\n evt) {\n switch (evt.type) {\n case 'drop':\n case 'dragend':\n this._onDrop(evt);\n\n break;\n\n case 'dragenter':\n case 'dragover':\n if (dragEl) {\n this._onDragOver(evt);\n\n _globalDragOver(evt);\n }\n\n break;\n\n case 'selectstart':\n evt.preventDefault();\n break;\n }\n },\n\n /**\n * Serializes the item into an array of string.\n * @returns {String[]}\n */\n toArray: function toArray() {\n var order = [],\n el,\n children = this.el.children,\n i = 0,\n n = children.length,\n options = this.options;\n\n for (; i < n; i++) {\n el = children[i];\n\n if (closest(el, options.draggable, this.el, false)) {\n order.push(el.getAttribute(options.dataIdAttr) || _generateId(el));\n }\n }\n\n return order;\n },\n\n /**\n * Sorts the elements according to the array.\n * @param {String[]} order order of the items\n */\n sort: function sort(order) {\n var items = {},\n rootEl = this.el;\n this.toArray().forEach(function (id, i) {\n var el = rootEl.children[i];\n\n if (closest(el, this.options.draggable, rootEl, false)) {\n items[id] = el;\n }\n }, this);\n order.forEach(function (id) {\n if (items[id]) {\n rootEl.removeChild(items[id]);\n rootEl.appendChild(items[id]);\n }\n });\n },\n\n /**\n * Save the current sorting\n */\n save: function save() {\n var store = this.options.store;\n store && store.set && store.set(this);\n },\n\n /**\n * For each element in the set, get the first element that matches the selector by testing the element itself and traversing up through its ancestors in the DOM tree.\n * @param {HTMLElement} el\n * @param {String} [selector] default: `options.draggable`\n * @returns {HTMLElement|null}\n */\n closest: function closest$1(el, selector) {\n return closest(el, selector || this.options.draggable, this.el, false);\n },\n\n /**\n * Set/get option\n * @param {string} name\n * @param {*} [value]\n * @returns {*}\n */\n option: function option(name, value) {\n var options = this.options;\n\n if (value === void 0) {\n return options[name];\n } else {\n var modifiedValue = PluginManager.modifyOption(this, name, value);\n\n if (typeof modifiedValue !== 'undefined') {\n options[name] = modifiedValue;\n } else {\n options[name] = value;\n }\n\n if (name === 'group') {\n _prepareGroup(options);\n }\n }\n },\n\n /**\n * Destroy\n */\n destroy: function destroy() {\n pluginEvent('destroy', this);\n var el = this.el;\n el[expando] = null;\n off(el, 'mousedown', this._onTapStart);\n off(el, 'touchstart', this._onTapStart);\n off(el, 'pointerdown', this._onTapStart);\n\n if (this.nativeDraggable) {\n off(el, 'dragover', this);\n off(el, 'dragenter', this);\n } // Remove draggable attributes\n\n\n Array.prototype.forEach.call(el.querySelectorAll('[draggable]'), function (el) {\n el.removeAttribute('draggable');\n });\n\n this._onDrop();\n\n this._disableDelayedDragEvents();\n\n sortables.splice(sortables.indexOf(this.el), 1);\n this.el = el = null;\n },\n _hideClone: function _hideClone() {\n if (!cloneHidden) {\n pluginEvent('hideClone', this);\n if (Sortable.eventCanceled) return;\n css(cloneEl, 'display', 'none');\n\n if (this.options.removeCloneOnHide && cloneEl.parentNode) {\n cloneEl.parentNode.removeChild(cloneEl);\n }\n\n cloneHidden = true;\n }\n },\n _showClone: function _showClone(putSortable) {\n if (putSortable.lastPutMode !== 'clone') {\n this._hideClone();\n\n return;\n }\n\n if (cloneHidden) {\n pluginEvent('showClone', this);\n if (Sortable.eventCanceled) return; // show clone at dragEl or original position\n\n if (rootEl.contains(dragEl) && !this.options.group.revertClone) {\n rootEl.insertBefore(cloneEl, dragEl);\n } else if (nextEl) {\n rootEl.insertBefore(cloneEl, nextEl);\n } else {\n rootEl.appendChild(cloneEl);\n }\n\n if (this.options.group.revertClone) {\n this.animate(dragEl, cloneEl);\n }\n\n css(cloneEl, 'display', '');\n cloneHidden = false;\n }\n }\n};\n\nfunction _globalDragOver(\n/**Event*/\nevt) {\n if (evt.dataTransfer) {\n evt.dataTransfer.dropEffect = 'move';\n }\n\n evt.cancelable && evt.preventDefault();\n}\n\nfunction _onMove(fromEl, toEl, dragEl, dragRect, targetEl, targetRect, originalEvent, willInsertAfter) {\n var evt,\n sortable = fromEl[expando],\n onMoveFn = sortable.options.onMove,\n retVal; // Support for new CustomEvent feature\n\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent('move', {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent('Event');\n evt.initEvent('move', true, true);\n }\n\n evt.to = toEl;\n evt.from = fromEl;\n evt.dragged = dragEl;\n evt.draggedRect = dragRect;\n evt.related = targetEl || toEl;\n evt.relatedRect = targetRect || getRect(toEl);\n evt.willInsertAfter = willInsertAfter;\n evt.originalEvent = originalEvent;\n fromEl.dispatchEvent(evt);\n\n if (onMoveFn) {\n retVal = onMoveFn.call(sortable, evt, originalEvent);\n }\n\n return retVal;\n}\n\nfunction _disableDraggable(el) {\n el.draggable = false;\n}\n\nfunction _unsilent() {\n _silent = false;\n}\n\nfunction _ghostIsLast(evt, vertical, sortable) {\n var rect = getRect(lastChild(sortable.el, sortable.options.draggable));\n var spacer = 10;\n return vertical ? evt.clientX > rect.right + spacer || evt.clientX <= rect.right && evt.clientY > rect.bottom && evt.clientX >= rect.left : evt.clientX > rect.right && evt.clientY > rect.top || evt.clientX <= rect.right && evt.clientY > rect.bottom + spacer;\n}\n\nfunction _getSwapDirection(evt, target, targetRect, vertical, swapThreshold, invertedSwapThreshold, invertSwap, isLastTarget) {\n var mouseOnAxis = vertical ? evt.clientY : evt.clientX,\n targetLength = vertical ? targetRect.height : targetRect.width,\n targetS1 = vertical ? targetRect.top : targetRect.left,\n targetS2 = vertical ? targetRect.bottom : targetRect.right,\n invert = false;\n\n if (!invertSwap) {\n // Never invert or create dragEl shadow when target movemenet causes mouse to move past the end of regular swapThreshold\n if (isLastTarget && targetMoveDistance < targetLength * swapThreshold) {\n // multiplied only by swapThreshold because mouse will already be inside target by (1 - threshold) * targetLength / 2\n // check if past first invert threshold on side opposite of lastDirection\n if (!pastFirstInvertThresh && (lastDirection === 1 ? mouseOnAxis > targetS1 + targetLength * invertedSwapThreshold / 2 : mouseOnAxis < targetS2 - targetLength * invertedSwapThreshold / 2)) {\n // past first invert threshold, do not restrict inverted threshold to dragEl shadow\n pastFirstInvertThresh = true;\n }\n\n if (!pastFirstInvertThresh) {\n // dragEl shadow (target move distance shadow)\n if (lastDirection === 1 ? mouseOnAxis < targetS1 + targetMoveDistance // over dragEl shadow\n : mouseOnAxis > targetS2 - targetMoveDistance) {\n return -lastDirection;\n }\n } else {\n invert = true;\n }\n } else {\n // Regular\n if (mouseOnAxis > targetS1 + targetLength * (1 - swapThreshold) / 2 && mouseOnAxis < targetS2 - targetLength * (1 - swapThreshold) / 2) {\n return _getInsertDirection(target);\n }\n }\n }\n\n invert = invert || invertSwap;\n\n if (invert) {\n // Invert of regular\n if (mouseOnAxis < targetS1 + targetLength * invertedSwapThreshold / 2 || mouseOnAxis > targetS2 - targetLength * invertedSwapThreshold / 2) {\n return mouseOnAxis > targetS1 + targetLength / 2 ? 1 : -1;\n }\n }\n\n return 0;\n}\n/**\n * Gets the direction dragEl must be swapped relative to target in order to make it\n * seem that dragEl has been \"inserted\" into that element's position\n * @param {HTMLElement} target The target whose position dragEl is being inserted at\n * @return {Number} Direction dragEl must be swapped\n */\n\n\nfunction _getInsertDirection(target) {\n if (index(dragEl) < index(target)) {\n return 1;\n } else {\n return -1;\n }\n}\n/**\n * Generate id\n * @param {HTMLElement} el\n * @returns {String}\n * @private\n */\n\n\nfunction _generateId(el) {\n var str = el.tagName + el.className + el.src + el.href + el.textContent,\n i = str.length,\n sum = 0;\n\n while (i--) {\n sum += str.charCodeAt(i);\n }\n\n return sum.toString(36);\n}\n\nfunction _saveInputCheckedState(root) {\n savedInputChecked.length = 0;\n var inputs = root.getElementsByTagName('input');\n var idx = inputs.length;\n\n while (idx--) {\n var el = inputs[idx];\n el.checked && savedInputChecked.push(el);\n }\n}\n\nfunction _nextTick(fn) {\n return setTimeout(fn, 0);\n}\n\nfunction _cancelNextTick(id) {\n return clearTimeout(id);\n} // Fixed #973:\n\n\nif (documentExists) {\n on(document, 'touchmove', function (evt) {\n if ((Sortable.active || awaitingDragStarted) && evt.cancelable) {\n evt.preventDefault();\n }\n });\n} // Export utils\n\n\nSortable.utils = {\n on: on,\n off: off,\n css: css,\n find: find,\n is: function is(el, selector) {\n return !!closest(el, selector, el, false);\n },\n extend: extend,\n throttle: throttle,\n closest: closest,\n toggleClass: toggleClass,\n clone: clone,\n index: index,\n nextTick: _nextTick,\n cancelNextTick: _cancelNextTick,\n detectDirection: _detectDirection,\n getChild: getChild\n};\n/**\n * Get the Sortable instance of an element\n * @param {HTMLElement} element The element\n * @return {Sortable|undefined} The instance of Sortable\n */\n\nSortable.get = function (element) {\n return element[expando];\n};\n/**\n * Mount a plugin to Sortable\n * @param {...SortablePlugin|SortablePlugin[]} plugins Plugins being mounted\n */\n\n\nSortable.mount = function () {\n for (var _len = arguments.length, plugins = new Array(_len), _key = 0; _key < _len; _key++) {\n plugins[_key] = arguments[_key];\n }\n\n if (plugins[0].constructor === Array) plugins = plugins[0];\n plugins.forEach(function (plugin) {\n if (!plugin.prototype || !plugin.prototype.constructor) {\n throw \"Sortable: Mounted plugin must be a constructor function, not \".concat({}.toString.call(plugin));\n }\n\n if (plugin.utils) Sortable.utils = _objectSpread({}, Sortable.utils, plugin.utils);\n PluginManager.mount(plugin);\n });\n};\n/**\n * Create sortable instance\n * @param {HTMLElement} el\n * @param {Object} [options]\n */\n\n\nSortable.create = function (el, options) {\n return new Sortable(el, options);\n}; // Export\n\n\nSortable.version = version;\n\nvar autoScrolls = [],\n scrollEl,\n scrollRootEl,\n scrolling = false,\n lastAutoScrollX,\n lastAutoScrollY,\n touchEvt$1,\n pointerElemChangedInterval;\n\nfunction AutoScrollPlugin() {\n function AutoScroll() {\n this.defaults = {\n scroll: true,\n scrollSensitivity: 30,\n scrollSpeed: 10,\n bubbleScroll: true\n }; // Bind all private methods\n\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n }\n\n AutoScroll.prototype = {\n dragStarted: function dragStarted(_ref) {\n var originalEvent = _ref.originalEvent;\n\n if (this.sortable.nativeDraggable) {\n on(document, 'dragover', this._handleAutoScroll);\n } else {\n if (this.options.supportPointer) {\n on(document, 'pointermove', this._handleFallbackAutoScroll);\n } else if (originalEvent.touches) {\n on(document, 'touchmove', this._handleFallbackAutoScroll);\n } else {\n on(document, 'mousemove', this._handleFallbackAutoScroll);\n }\n }\n },\n dragOverCompleted: function dragOverCompleted(_ref2) {\n var originalEvent = _ref2.originalEvent;\n\n // For when bubbling is canceled and using fallback (fallback 'touchmove' always reached)\n if (!this.options.dragOverBubble && !originalEvent.rootEl) {\n this._handleAutoScroll(originalEvent);\n }\n },\n drop: function drop() {\n if (this.sortable.nativeDraggable) {\n off(document, 'dragover', this._handleAutoScroll);\n } else {\n off(document, 'pointermove', this._handleFallbackAutoScroll);\n off(document, 'touchmove', this._handleFallbackAutoScroll);\n off(document, 'mousemove', this._handleFallbackAutoScroll);\n }\n\n clearPointerElemChangedInterval();\n clearAutoScrolls();\n cancelThrottle();\n },\n nulling: function nulling() {\n touchEvt$1 = scrollRootEl = scrollEl = scrolling = pointerElemChangedInterval = lastAutoScrollX = lastAutoScrollY = null;\n autoScrolls.length = 0;\n },\n _handleFallbackAutoScroll: function _handleFallbackAutoScroll(evt) {\n this._handleAutoScroll(evt, true);\n },\n _handleAutoScroll: function _handleAutoScroll(evt, fallback) {\n var _this = this;\n\n var x = (evt.touches ? evt.touches[0] : evt).clientX,\n y = (evt.touches ? evt.touches[0] : evt).clientY,\n elem = document.elementFromPoint(x, y);\n touchEvt$1 = evt; // IE does not seem to have native autoscroll,\n // Edge's autoscroll seems too conditional,\n // MACOS Safari does not have autoscroll,\n // Firefox and Chrome are good\n\n if (fallback || Edge || IE11OrLess || Safari) {\n autoScroll(evt, this.options, elem, fallback); // Listener for pointer element change\n\n var ogElemScroller = getParentAutoScrollElement(elem, true);\n\n if (scrolling && (!pointerElemChangedInterval || x !== lastAutoScrollX || y !== lastAutoScrollY)) {\n pointerElemChangedInterval && clearPointerElemChangedInterval(); // Detect for pointer elem change, emulating native DnD behaviour\n\n pointerElemChangedInterval = setInterval(function () {\n var newElem = getParentAutoScrollElement(document.elementFromPoint(x, y), true);\n\n if (newElem !== ogElemScroller) {\n ogElemScroller = newElem;\n clearAutoScrolls();\n }\n\n autoScroll(evt, _this.options, newElem, fallback);\n }, 10);\n lastAutoScrollX = x;\n lastAutoScrollY = y;\n }\n } else {\n // if DnD is enabled (and browser has good autoscrolling), first autoscroll will already scroll, so get parent autoscroll of first autoscroll\n if (!this.options.bubbleScroll || getParentAutoScrollElement(elem, true) === getWindowScrollingElement()) {\n clearAutoScrolls();\n return;\n }\n\n autoScroll(evt, this.options, getParentAutoScrollElement(elem, false), false);\n }\n }\n };\n return _extends(AutoScroll, {\n pluginName: 'scroll',\n initializeByDefault: true\n });\n}\n\nfunction clearAutoScrolls() {\n autoScrolls.forEach(function (autoScroll) {\n clearInterval(autoScroll.pid);\n });\n autoScrolls = [];\n}\n\nfunction clearPointerElemChangedInterval() {\n clearInterval(pointerElemChangedInterval);\n}\n\nvar autoScroll = throttle(function (evt, options, rootEl, isFallback) {\n // Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=505521\n if (!options.scroll) return;\n var x = (evt.touches ? evt.touches[0] : evt).clientX,\n y = (evt.touches ? evt.touches[0] : evt).clientY,\n sens = options.scrollSensitivity,\n speed = options.scrollSpeed,\n winScroller = getWindowScrollingElement();\n var scrollThisInstance = false,\n scrollCustomFn; // New scroll root, set scrollEl\n\n if (scrollRootEl !== rootEl) {\n scrollRootEl = rootEl;\n clearAutoScrolls();\n scrollEl = options.scroll;\n scrollCustomFn = options.scrollFn;\n\n if (scrollEl === true) {\n scrollEl = getParentAutoScrollElement(rootEl, true);\n }\n }\n\n var layersOut = 0;\n var currentParent = scrollEl;\n\n do {\n var el = currentParent,\n rect = getRect(el),\n top = rect.top,\n bottom = rect.bottom,\n left = rect.left,\n right = rect.right,\n width = rect.width,\n height = rect.height,\n canScrollX = void 0,\n canScrollY = void 0,\n scrollWidth = el.scrollWidth,\n scrollHeight = el.scrollHeight,\n elCSS = css(el),\n scrollPosX = el.scrollLeft,\n scrollPosY = el.scrollTop;\n\n if (el === winScroller) {\n canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll' || elCSS.overflowX === 'visible');\n canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll' || elCSS.overflowY === 'visible');\n } else {\n canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll');\n canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll');\n }\n\n var vx = canScrollX && (Math.abs(right - x) <= sens && scrollPosX + width < scrollWidth) - (Math.abs(left - x) <= sens && !!scrollPosX);\n var vy = canScrollY && (Math.abs(bottom - y) <= sens && scrollPosY + height < scrollHeight) - (Math.abs(top - y) <= sens && !!scrollPosY);\n\n if (!autoScrolls[layersOut]) {\n for (var i = 0; i <= layersOut; i++) {\n if (!autoScrolls[i]) {\n autoScrolls[i] = {};\n }\n }\n }\n\n if (autoScrolls[layersOut].vx != vx || autoScrolls[layersOut].vy != vy || autoScrolls[layersOut].el !== el) {\n autoScrolls[layersOut].el = el;\n autoScrolls[layersOut].vx = vx;\n autoScrolls[layersOut].vy = vy;\n clearInterval(autoScrolls[layersOut].pid);\n\n if (vx != 0 || vy != 0) {\n scrollThisInstance = true;\n /* jshint loopfunc:true */\n\n autoScrolls[layersOut].pid = setInterval(function () {\n // emulate drag over during autoscroll (fallback), emulating native DnD behaviour\n if (isFallback && this.layer === 0) {\n Sortable.active._onTouchMove(touchEvt$1); // To move ghost if it is positioned absolutely\n\n }\n\n var scrollOffsetY = autoScrolls[this.layer].vy ? autoScrolls[this.layer].vy * speed : 0;\n var scrollOffsetX = autoScrolls[this.layer].vx ? autoScrolls[this.layer].vx * speed : 0;\n\n if (typeof scrollCustomFn === 'function') {\n if (scrollCustomFn.call(Sortable.dragged.parentNode[expando], scrollOffsetX, scrollOffsetY, evt, touchEvt$1, autoScrolls[this.layer].el) !== 'continue') {\n return;\n }\n }\n\n scrollBy(autoScrolls[this.layer].el, scrollOffsetX, scrollOffsetY);\n }.bind({\n layer: layersOut\n }), 24);\n }\n }\n\n layersOut++;\n } while (options.bubbleScroll && currentParent !== winScroller && (currentParent = getParentAutoScrollElement(currentParent, false)));\n\n scrolling = scrollThisInstance; // in case another function catches scrolling as false in between when it is not\n}, 30);\n\nvar drop = function drop(_ref) {\n var originalEvent = _ref.originalEvent,\n putSortable = _ref.putSortable,\n dragEl = _ref.dragEl,\n activeSortable = _ref.activeSortable,\n dispatchSortableEvent = _ref.dispatchSortableEvent,\n hideGhostForTarget = _ref.hideGhostForTarget,\n unhideGhostForTarget = _ref.unhideGhostForTarget;\n if (!originalEvent) return;\n var toSortable = putSortable || activeSortable;\n hideGhostForTarget();\n var touch = originalEvent.changedTouches && originalEvent.changedTouches.length ? originalEvent.changedTouches[0] : originalEvent;\n var target = document.elementFromPoint(touch.clientX, touch.clientY);\n unhideGhostForTarget();\n\n if (toSortable && !toSortable.el.contains(target)) {\n dispatchSortableEvent('spill');\n this.onSpill({\n dragEl: dragEl,\n putSortable: putSortable\n });\n }\n};\n\nfunction Revert() {}\n\nRevert.prototype = {\n startIndex: null,\n dragStart: function dragStart(_ref2) {\n var oldDraggableIndex = _ref2.oldDraggableIndex;\n this.startIndex = oldDraggableIndex;\n },\n onSpill: function onSpill(_ref3) {\n var dragEl = _ref3.dragEl,\n putSortable = _ref3.putSortable;\n this.sortable.captureAnimationState();\n\n if (putSortable) {\n putSortable.captureAnimationState();\n }\n\n var nextSibling = getChild(this.sortable.el, this.startIndex, this.options);\n\n if (nextSibling) {\n this.sortable.el.insertBefore(dragEl, nextSibling);\n } else {\n this.sortable.el.appendChild(dragEl);\n }\n\n this.sortable.animateAll();\n\n if (putSortable) {\n putSortable.animateAll();\n }\n },\n drop: drop\n};\n\n_extends(Revert, {\n pluginName: 'revertOnSpill'\n});\n\nfunction Remove() {}\n\nRemove.prototype = {\n onSpill: function onSpill(_ref4) {\n var dragEl = _ref4.dragEl,\n putSortable = _ref4.putSortable;\n var parentSortable = putSortable || this.sortable;\n parentSortable.captureAnimationState();\n dragEl.parentNode && dragEl.parentNode.removeChild(dragEl);\n parentSortable.animateAll();\n },\n drop: drop\n};\n\n_extends(Remove, {\n pluginName: 'removeOnSpill'\n});\n\nvar lastSwapEl;\n\nfunction SwapPlugin() {\n function Swap() {\n this.defaults = {\n swapClass: 'sortable-swap-highlight'\n };\n }\n\n Swap.prototype = {\n dragStart: function dragStart(_ref) {\n var dragEl = _ref.dragEl;\n lastSwapEl = dragEl;\n },\n dragOverValid: function dragOverValid(_ref2) {\n var completed = _ref2.completed,\n target = _ref2.target,\n onMove = _ref2.onMove,\n activeSortable = _ref2.activeSortable,\n changed = _ref2.changed,\n cancel = _ref2.cancel;\n if (!activeSortable.options.swap) return;\n var el = this.sortable.el,\n options = this.options;\n\n if (target && target !== el) {\n var prevSwapEl = lastSwapEl;\n\n if (onMove(target) !== false) {\n toggleClass(target, options.swapClass, true);\n lastSwapEl = target;\n } else {\n lastSwapEl = null;\n }\n\n if (prevSwapEl && prevSwapEl !== lastSwapEl) {\n toggleClass(prevSwapEl, options.swapClass, false);\n }\n }\n\n changed();\n completed(true);\n cancel();\n },\n drop: function drop(_ref3) {\n var activeSortable = _ref3.activeSortable,\n putSortable = _ref3.putSortable,\n dragEl = _ref3.dragEl;\n var toSortable = putSortable || this.sortable;\n var options = this.options;\n lastSwapEl && toggleClass(lastSwapEl, options.swapClass, false);\n\n if (lastSwapEl && (options.swap || putSortable && putSortable.options.swap)) {\n if (dragEl !== lastSwapEl) {\n toSortable.captureAnimationState();\n if (toSortable !== activeSortable) activeSortable.captureAnimationState();\n swapNodes(dragEl, lastSwapEl);\n toSortable.animateAll();\n if (toSortable !== activeSortable) activeSortable.animateAll();\n }\n }\n },\n nulling: function nulling() {\n lastSwapEl = null;\n }\n };\n return _extends(Swap, {\n pluginName: 'swap',\n eventProperties: function eventProperties() {\n return {\n swapItem: lastSwapEl\n };\n }\n });\n}\n\nfunction swapNodes(n1, n2) {\n var p1 = n1.parentNode,\n p2 = n2.parentNode,\n i1,\n i2;\n if (!p1 || !p2 || p1.isEqualNode(n2) || p2.isEqualNode(n1)) return;\n i1 = index(n1);\n i2 = index(n2);\n\n if (p1.isEqualNode(p2) && i1 < i2) {\n i2++;\n }\n\n p1.insertBefore(n2, p1.children[i1]);\n p2.insertBefore(n1, p2.children[i2]);\n}\n\nvar multiDragElements = [],\n multiDragClones = [],\n lastMultiDragSelect,\n // for selection with modifier key down (SHIFT)\nmultiDragSortable,\n initialFolding = false,\n // Initial multi-drag fold when drag started\nfolding = false,\n // Folding any other time\ndragStarted = false,\n dragEl$1,\n clonesFromRect,\n clonesHidden;\n\nfunction MultiDragPlugin() {\n function MultiDrag(sortable) {\n // Bind all private methods\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n\n if (sortable.options.supportPointer) {\n on(document, 'pointerup', this._deselectMultiDrag);\n } else {\n on(document, 'mouseup', this._deselectMultiDrag);\n on(document, 'touchend', this._deselectMultiDrag);\n }\n\n on(document, 'keydown', this._checkKeyDown);\n on(document, 'keyup', this._checkKeyUp);\n this.defaults = {\n selectedClass: 'sortable-selected',\n multiDragKey: null,\n setData: function setData(dataTransfer, dragEl) {\n var data = '';\n\n if (multiDragElements.length && multiDragSortable === sortable) {\n multiDragElements.forEach(function (multiDragElement, i) {\n data += (!i ? '' : ', ') + multiDragElement.textContent;\n });\n } else {\n data = dragEl.textContent;\n }\n\n dataTransfer.setData('Text', data);\n }\n };\n }\n\n MultiDrag.prototype = {\n multiDragKeyDown: false,\n isMultiDrag: false,\n delayStartGlobal: function delayStartGlobal(_ref) {\n var dragged = _ref.dragEl;\n dragEl$1 = dragged;\n },\n delayEnded: function delayEnded() {\n this.isMultiDrag = ~multiDragElements.indexOf(dragEl$1);\n },\n setupClone: function setupClone(_ref2) {\n var sortable = _ref2.sortable,\n cancel = _ref2.cancel;\n if (!this.isMultiDrag) return;\n\n for (var i = 0; i < multiDragElements.length; i++) {\n multiDragClones.push(clone(multiDragElements[i]));\n multiDragClones[i].sortableIndex = multiDragElements[i].sortableIndex;\n multiDragClones[i].draggable = false;\n multiDragClones[i].style['will-change'] = '';\n toggleClass(multiDragClones[i], this.options.selectedClass, false);\n multiDragElements[i] === dragEl$1 && toggleClass(multiDragClones[i], this.options.chosenClass, false);\n }\n\n sortable._hideClone();\n\n cancel();\n },\n clone: function clone(_ref3) {\n var sortable = _ref3.sortable,\n rootEl = _ref3.rootEl,\n dispatchSortableEvent = _ref3.dispatchSortableEvent,\n cancel = _ref3.cancel;\n if (!this.isMultiDrag) return;\n\n if (!this.options.removeCloneOnHide) {\n if (multiDragElements.length && multiDragSortable === sortable) {\n insertMultiDragClones(true, rootEl);\n dispatchSortableEvent('clone');\n cancel();\n }\n }\n },\n showClone: function showClone(_ref4) {\n var cloneNowShown = _ref4.cloneNowShown,\n rootEl = _ref4.rootEl,\n cancel = _ref4.cancel;\n if (!this.isMultiDrag) return;\n insertMultiDragClones(false, rootEl);\n multiDragClones.forEach(function (clone) {\n css(clone, 'display', '');\n });\n cloneNowShown();\n clonesHidden = false;\n cancel();\n },\n hideClone: function hideClone(_ref5) {\n var _this = this;\n\n var sortable = _ref5.sortable,\n cloneNowHidden = _ref5.cloneNowHidden,\n cancel = _ref5.cancel;\n if (!this.isMultiDrag) return;\n multiDragClones.forEach(function (clone) {\n css(clone, 'display', 'none');\n\n if (_this.options.removeCloneOnHide && clone.parentNode) {\n clone.parentNode.removeChild(clone);\n }\n });\n cloneNowHidden();\n clonesHidden = true;\n cancel();\n },\n dragStartGlobal: function dragStartGlobal(_ref6) {\n var sortable = _ref6.sortable;\n\n if (!this.isMultiDrag && multiDragSortable) {\n multiDragSortable.multiDrag._deselectMultiDrag();\n }\n\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.sortableIndex = index(multiDragElement);\n }); // Sort multi-drag elements\n\n multiDragElements = multiDragElements.sort(function (a, b) {\n return a.sortableIndex - b.sortableIndex;\n });\n dragStarted = true;\n },\n dragStarted: function dragStarted(_ref7) {\n var _this2 = this;\n\n var sortable = _ref7.sortable;\n if (!this.isMultiDrag) return;\n\n if (this.options.sort) {\n // Capture rects,\n // hide multi drag elements (by positioning them absolute),\n // set multi drag elements rects to dragRect,\n // show multi drag elements,\n // animate to rects,\n // unset rects & remove from DOM\n sortable.captureAnimationState();\n\n if (this.options.animation) {\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n css(multiDragElement, 'position', 'absolute');\n });\n var dragRect = getRect(dragEl$1, false, true, true);\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n setRect(multiDragElement, dragRect);\n });\n folding = true;\n initialFolding = true;\n }\n }\n\n sortable.animateAll(function () {\n folding = false;\n initialFolding = false;\n\n if (_this2.options.animation) {\n multiDragElements.forEach(function (multiDragElement) {\n unsetRect(multiDragElement);\n });\n } // Remove all auxiliary multidrag items from el, if sorting enabled\n\n\n if (_this2.options.sort) {\n removeMultiDragElements();\n }\n });\n },\n dragOver: function dragOver(_ref8) {\n var target = _ref8.target,\n completed = _ref8.completed,\n cancel = _ref8.cancel;\n\n if (folding && ~multiDragElements.indexOf(target)) {\n completed(false);\n cancel();\n }\n },\n revert: function revert(_ref9) {\n var fromSortable = _ref9.fromSortable,\n rootEl = _ref9.rootEl,\n sortable = _ref9.sortable,\n dragRect = _ref9.dragRect;\n\n if (multiDragElements.length > 1) {\n // Setup unfold animation\n multiDragElements.forEach(function (multiDragElement) {\n sortable.addAnimationState({\n target: multiDragElement,\n rect: folding ? getRect(multiDragElement) : dragRect\n });\n unsetRect(multiDragElement);\n multiDragElement.fromRect = dragRect;\n fromSortable.removeAnimationState(multiDragElement);\n });\n folding = false;\n insertMultiDragElements(!this.options.removeCloneOnHide, rootEl);\n }\n },\n dragOverCompleted: function dragOverCompleted(_ref10) {\n var sortable = _ref10.sortable,\n isOwner = _ref10.isOwner,\n insertion = _ref10.insertion,\n activeSortable = _ref10.activeSortable,\n parentEl = _ref10.parentEl,\n putSortable = _ref10.putSortable;\n var options = this.options;\n\n if (insertion) {\n // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n if (isOwner) {\n activeSortable._hideClone();\n }\n\n initialFolding = false; // If leaving sort:false root, or already folding - Fold to new location\n\n if (options.animation && multiDragElements.length > 1 && (folding || !isOwner && !activeSortable.options.sort && !putSortable)) {\n // Fold: Set all multi drag elements's rects to dragEl's rect when multi-drag elements are invisible\n var dragRectAbsolute = getRect(dragEl$1, false, true, true);\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n setRect(multiDragElement, dragRectAbsolute); // Move element(s) to end of parentEl so that it does not interfere with multi-drag clones insertion if they are inserted\n // while folding, and so that we can capture them again because old sortable will no longer be fromSortable\n\n parentEl.appendChild(multiDragElement);\n });\n folding = true;\n } // Clones must be shown (and check to remove multi drags) after folding when interfering multiDragElements are moved out\n\n\n if (!isOwner) {\n // Only remove if not folding (folding will remove them anyways)\n if (!folding) {\n removeMultiDragElements();\n }\n\n if (multiDragElements.length > 1) {\n var clonesHiddenBefore = clonesHidden;\n\n activeSortable._showClone(sortable); // Unfold animation for clones if showing from hidden\n\n\n if (activeSortable.options.animation && !clonesHidden && clonesHiddenBefore) {\n multiDragClones.forEach(function (clone) {\n activeSortable.addAnimationState({\n target: clone,\n rect: clonesFromRect\n });\n clone.fromRect = clonesFromRect;\n clone.thisAnimationDuration = null;\n });\n }\n } else {\n activeSortable._showClone(sortable);\n }\n }\n }\n },\n dragOverAnimationCapture: function dragOverAnimationCapture(_ref11) {\n var dragRect = _ref11.dragRect,\n isOwner = _ref11.isOwner,\n activeSortable = _ref11.activeSortable;\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.thisAnimationDuration = null;\n });\n\n if (activeSortable.options.animation && !isOwner && activeSortable.multiDrag.isMultiDrag) {\n clonesFromRect = _extends({}, dragRect);\n var dragMatrix = matrix(dragEl$1, true);\n clonesFromRect.top -= dragMatrix.f;\n clonesFromRect.left -= dragMatrix.e;\n }\n },\n dragOverAnimationComplete: function dragOverAnimationComplete() {\n if (folding) {\n folding = false;\n removeMultiDragElements();\n }\n },\n drop: function drop(_ref12) {\n var evt = _ref12.originalEvent,\n rootEl = _ref12.rootEl,\n parentEl = _ref12.parentEl,\n sortable = _ref12.sortable,\n dispatchSortableEvent = _ref12.dispatchSortableEvent,\n oldIndex = _ref12.oldIndex,\n putSortable = _ref12.putSortable;\n var toSortable = putSortable || this.sortable;\n if (!evt) return;\n var options = this.options,\n children = parentEl.children; // Multi-drag selection\n\n if (!dragStarted) {\n if (options.multiDragKey && !this.multiDragKeyDown) {\n this._deselectMultiDrag();\n }\n\n toggleClass(dragEl$1, options.selectedClass, !~multiDragElements.indexOf(dragEl$1));\n\n if (!~multiDragElements.indexOf(dragEl$1)) {\n multiDragElements.push(dragEl$1);\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'select',\n targetEl: dragEl$1,\n originalEvt: evt\n }); // Modifier activated, select from last to dragEl\n\n if (evt.shiftKey && lastMultiDragSelect && sortable.el.contains(lastMultiDragSelect)) {\n var lastIndex = index(lastMultiDragSelect),\n currentIndex = index(dragEl$1);\n\n if (~lastIndex && ~currentIndex && lastIndex !== currentIndex) {\n // Must include lastMultiDragSelect (select it), in case modified selection from no selection\n // (but previous selection existed)\n var n, i;\n\n if (currentIndex > lastIndex) {\n i = lastIndex;\n n = currentIndex;\n } else {\n i = currentIndex;\n n = lastIndex + 1;\n }\n\n for (; i < n; i++) {\n if (~multiDragElements.indexOf(children[i])) continue;\n toggleClass(children[i], options.selectedClass, true);\n multiDragElements.push(children[i]);\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'select',\n targetEl: children[i],\n originalEvt: evt\n });\n }\n }\n } else {\n lastMultiDragSelect = dragEl$1;\n }\n\n multiDragSortable = toSortable;\n } else {\n multiDragElements.splice(multiDragElements.indexOf(dragEl$1), 1);\n lastMultiDragSelect = null;\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'deselect',\n targetEl: dragEl$1,\n originalEvt: evt\n });\n }\n } // Multi-drag drop\n\n\n if (dragStarted && this.isMultiDrag) {\n // Do not \"unfold\" after around dragEl if reverted\n if ((parentEl[expando].options.sort || parentEl !== rootEl) && multiDragElements.length > 1) {\n var dragRect = getRect(dragEl$1),\n multiDragIndex = index(dragEl$1, ':not(.' + this.options.selectedClass + ')');\n if (!initialFolding && options.animation) dragEl$1.thisAnimationDuration = null;\n toSortable.captureAnimationState();\n\n if (!initialFolding) {\n if (options.animation) {\n dragEl$1.fromRect = dragRect;\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.thisAnimationDuration = null;\n\n if (multiDragElement !== dragEl$1) {\n var rect = folding ? getRect(multiDragElement) : dragRect;\n multiDragElement.fromRect = rect; // Prepare unfold animation\n\n toSortable.addAnimationState({\n target: multiDragElement,\n rect: rect\n });\n }\n });\n } // Multi drag elements are not necessarily removed from the DOM on drop, so to reinsert\n // properly they must all be removed\n\n\n removeMultiDragElements();\n multiDragElements.forEach(function (multiDragElement) {\n if (children[multiDragIndex]) {\n parentEl.insertBefore(multiDragElement, children[multiDragIndex]);\n } else {\n parentEl.appendChild(multiDragElement);\n }\n\n multiDragIndex++;\n }); // If initial folding is done, the elements may have changed position because they are now\n // unfolding around dragEl, even though dragEl may not have his index changed, so update event\n // must be fired here as Sortable will not.\n\n if (oldIndex === index(dragEl$1)) {\n var update = false;\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement.sortableIndex !== index(multiDragElement)) {\n update = true;\n return;\n }\n });\n\n if (update) {\n dispatchSortableEvent('update');\n }\n }\n } // Must be done after capturing individual rects (scroll bar)\n\n\n multiDragElements.forEach(function (multiDragElement) {\n unsetRect(multiDragElement);\n });\n toSortable.animateAll();\n }\n\n multiDragSortable = toSortable;\n } // Remove clones if necessary\n\n\n if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n multiDragClones.forEach(function (clone) {\n clone.parentNode && clone.parentNode.removeChild(clone);\n });\n }\n },\n nullingGlobal: function nullingGlobal() {\n this.isMultiDrag = dragStarted = false;\n multiDragClones.length = 0;\n },\n destroyGlobal: function destroyGlobal() {\n this._deselectMultiDrag();\n\n off(document, 'pointerup', this._deselectMultiDrag);\n off(document, 'mouseup', this._deselectMultiDrag);\n off(document, 'touchend', this._deselectMultiDrag);\n off(document, 'keydown', this._checkKeyDown);\n off(document, 'keyup', this._checkKeyUp);\n },\n _deselectMultiDrag: function _deselectMultiDrag(evt) {\n if (typeof dragStarted !== \"undefined\" && dragStarted) return; // Only deselect if selection is in this sortable\n\n if (multiDragSortable !== this.sortable) return; // Only deselect if target is not item in this sortable\n\n if (evt && closest(evt.target, this.options.draggable, this.sortable.el, false)) return; // Only deselect if left click\n\n if (evt && evt.button !== 0) return;\n\n while (multiDragElements.length) {\n var el = multiDragElements[0];\n toggleClass(el, this.options.selectedClass, false);\n multiDragElements.shift();\n dispatchEvent({\n sortable: this.sortable,\n rootEl: this.sortable.el,\n name: 'deselect',\n targetEl: el,\n originalEvt: evt\n });\n }\n },\n _checkKeyDown: function _checkKeyDown(evt) {\n if (evt.key === this.options.multiDragKey) {\n this.multiDragKeyDown = true;\n }\n },\n _checkKeyUp: function _checkKeyUp(evt) {\n if (evt.key === this.options.multiDragKey) {\n this.multiDragKeyDown = false;\n }\n }\n };\n return _extends(MultiDrag, {\n // Static methods & properties\n pluginName: 'multiDrag',\n utils: {\n /**\r\n * Selects the provided multi-drag item\r\n * @param {HTMLElement} el The element to be selected\r\n */\n select: function select(el) {\n var sortable = el.parentNode[expando];\n if (!sortable || !sortable.options.multiDrag || ~multiDragElements.indexOf(el)) return;\n\n if (multiDragSortable && multiDragSortable !== sortable) {\n multiDragSortable.multiDrag._deselectMultiDrag();\n\n multiDragSortable = sortable;\n }\n\n toggleClass(el, sortable.options.selectedClass, true);\n multiDragElements.push(el);\n },\n\n /**\r\n * Deselects the provided multi-drag item\r\n * @param {HTMLElement} el The element to be deselected\r\n */\n deselect: function deselect(el) {\n var sortable = el.parentNode[expando],\n index = multiDragElements.indexOf(el);\n if (!sortable || !sortable.options.multiDrag || !~index) return;\n toggleClass(el, sortable.options.selectedClass, false);\n multiDragElements.splice(index, 1);\n }\n },\n eventProperties: function eventProperties() {\n var _this3 = this;\n\n var oldIndicies = [],\n newIndicies = [];\n multiDragElements.forEach(function (multiDragElement) {\n oldIndicies.push({\n multiDragElement: multiDragElement,\n index: multiDragElement.sortableIndex\n }); // multiDragElements will already be sorted if folding\n\n var newIndex;\n\n if (folding && multiDragElement !== dragEl$1) {\n newIndex = -1;\n } else if (folding) {\n newIndex = index(multiDragElement, ':not(.' + _this3.options.selectedClass + ')');\n } else {\n newIndex = index(multiDragElement);\n }\n\n newIndicies.push({\n multiDragElement: multiDragElement,\n index: newIndex\n });\n });\n return {\n items: _toConsumableArray(multiDragElements),\n clones: [].concat(multiDragClones),\n oldIndicies: oldIndicies,\n newIndicies: newIndicies\n };\n },\n optionListeners: {\n multiDragKey: function multiDragKey(key) {\n key = key.toLowerCase();\n\n if (key === 'ctrl') {\n key = 'Control';\n } else if (key.length > 1) {\n key = key.charAt(0).toUpperCase() + key.substr(1);\n }\n\n return key;\n }\n }\n });\n}\n\nfunction insertMultiDragElements(clonesInserted, rootEl) {\n multiDragElements.forEach(function (multiDragElement, i) {\n var target = rootEl.children[multiDragElement.sortableIndex + (clonesInserted ? Number(i) : 0)];\n\n if (target) {\n rootEl.insertBefore(multiDragElement, target);\n } else {\n rootEl.appendChild(multiDragElement);\n }\n });\n}\n/**\r\n * Insert multi-drag clones\r\n * @param {[Boolean]} elementsInserted Whether the multi-drag elements are inserted\r\n * @param {HTMLElement} rootEl\r\n */\n\n\nfunction insertMultiDragClones(elementsInserted, rootEl) {\n multiDragClones.forEach(function (clone, i) {\n var target = rootEl.children[clone.sortableIndex + (elementsInserted ? Number(i) : 0)];\n\n if (target) {\n rootEl.insertBefore(clone, target);\n } else {\n rootEl.appendChild(clone);\n }\n });\n}\n\nfunction removeMultiDragElements() {\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n multiDragElement.parentNode && multiDragElement.parentNode.removeChild(multiDragElement);\n });\n}\n\nSortable.mount(new AutoScrollPlugin());\nSortable.mount(Remove, Revert);\n\nexport default Sortable;\nexport { MultiDragPlugin as MultiDrag, Sortable, SwapPlugin as Swap };\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIQAAAA8CAMAAACQA+KNAAAAilBMVEUAAAAAAIBVVf+AgP9mZv9VVf9tbf9gYP8AIGAAJ2Rtc/9sdf9udP9rdP9sdP9udv9tdf9tdf9sdv9tdP8AKGhtdv9udv9tdf9udv9tdv9udP9udv9tdv8AKGdtdv9tdv9udv9tdf9udf9udf9tdf9udv8AKmhudf9udf9tdv9tdv8AKWgAKmhudv/3/sF8AAAALHRSTlMAAgMEBQYHCBhCVFVWWFxdXmBhZ3+Pl5iZmqCnr73O2d/g4eTl5ufv8fX3/H4/EAsAAADLSURBVFjD7dhHDsJAEETRb7ABk8FkAybnuf/1WCAQvgDVEv0vME+qVQ8AJO35+hx+3Hk9aya8S7JtELXN4pehOg3CplUApIYQJgC9IK4H9b0asUvoB3ldcj0ip9AjCq56xIVgIEc4whGOcIQjHOEIRzjCEY5whCP+8SAuLCByC4iOAcQmNoBooUeM0SMWFTniMAQp4nZcDmqvP/7G6lEKSdHorkdAejKAKE0iQ3xPgrDPJErEZxIp4j0J4tKTAQSNlQEE0eiOgVLFo0+sLF2QJjblYwAAAABJRU5ErkJggg==\"","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"sortablejs\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"sortablejs\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"vuedraggable\"] = factory(require(\"sortablejs\"));\n\telse\n\t\troot[\"vuedraggable\"] = factory(root[\"Sortable\"]);\n})((typeof self !== 'undefined' ? self : this), function(__WEBPACK_EXTERNAL_MODULE_a352__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = \"fb15\");\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"01f9\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar LIBRARY = __webpack_require__(\"2d00\");\nvar $export = __webpack_require__(\"5ca1\");\nvar redefine = __webpack_require__(\"2aba\");\nvar hide = __webpack_require__(\"32e9\");\nvar Iterators = __webpack_require__(\"84f2\");\nvar $iterCreate = __webpack_require__(\"41a0\");\nvar setToStringTag = __webpack_require__(\"7f20\");\nvar getPrototypeOf = __webpack_require__(\"38fd\");\nvar ITERATOR = __webpack_require__(\"2b4c\")('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n\n\n/***/ }),\n\n/***/ \"02f4\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"4588\");\nvar defined = __webpack_require__(\"be13\");\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n\n\n/***/ }),\n\n/***/ \"0390\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar at = __webpack_require__(\"02f4\")(true);\n\n // `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? at(S, index).length : 1);\n};\n\n\n/***/ }),\n\n/***/ \"0bfb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = __webpack_require__(\"cb7c\");\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n\n\n/***/ }),\n\n/***/ \"0d58\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = __webpack_require__(\"ce10\");\nvar enumBugKeys = __webpack_require__(\"e11e\");\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n\n\n/***/ }),\n\n/***/ \"1495\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(\"86cc\");\nvar anObject = __webpack_require__(\"cb7c\");\nvar getKeys = __webpack_require__(\"0d58\");\n\nmodule.exports = __webpack_require__(\"9e1e\") ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n\n\n/***/ }),\n\n/***/ \"214f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n__webpack_require__(\"b0c5\");\nvar redefine = __webpack_require__(\"2aba\");\nvar hide = __webpack_require__(\"32e9\");\nvar fails = __webpack_require__(\"79e5\");\nvar defined = __webpack_require__(\"be13\");\nvar wks = __webpack_require__(\"2b4c\");\nvar regexpExec = __webpack_require__(\"520a\");\n\nvar SPECIES = wks('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$') !== '7';\n});\n\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () {\n // Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length === 2 && result[0] === 'a' && result[1] === 'b';\n})();\n\nmodule.exports = function (KEY, length, exec) {\n var SYMBOL = wks(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n re.exec = function () { execCalled = true; return null; };\n if (KEY === 'split') {\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n }\n re[SYMBOL]('');\n return !execCalled;\n }) : undefined;\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var fns = exec(\n defined,\n SYMBOL,\n ''[KEY],\n function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }\n );\n var strfn = fns[0];\n var rxfn = fns[1];\n\n redefine(String.prototype, KEY, strfn);\n hide(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return rxfn.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return rxfn.call(string, this); }\n );\n }\n};\n\n\n/***/ }),\n\n/***/ \"230e\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"d3f4\");\nvar document = __webpack_require__(\"7726\").document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n\n\n/***/ }),\n\n/***/ \"23c6\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = __webpack_require__(\"2d95\");\nvar TAG = __webpack_require__(\"2b4c\")('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n\n/***/ }),\n\n/***/ \"2621\":\n/***/ (function(module, exports) {\n\nexports.f = Object.getOwnPropertySymbols;\n\n\n/***/ }),\n\n/***/ \"2aba\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"7726\");\nvar hide = __webpack_require__(\"32e9\");\nvar has = __webpack_require__(\"69a8\");\nvar SRC = __webpack_require__(\"ca5a\")('src');\nvar $toString = __webpack_require__(\"fa5b\");\nvar TO_STRING = 'toString';\nvar TPL = ('' + $toString).split(TO_STRING);\n\n__webpack_require__(\"8378\").inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n\n\n/***/ }),\n\n/***/ \"2aeb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = __webpack_require__(\"cb7c\");\nvar dPs = __webpack_require__(\"1495\");\nvar enumBugKeys = __webpack_require__(\"e11e\");\nvar IE_PROTO = __webpack_require__(\"613b\")('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = __webpack_require__(\"230e\")('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n __webpack_require__(\"fab2\").appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n\n\n/***/ }),\n\n/***/ \"2b4c\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar store = __webpack_require__(\"5537\")('wks');\nvar uid = __webpack_require__(\"ca5a\");\nvar Symbol = __webpack_require__(\"7726\").Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n\n\n/***/ }),\n\n/***/ \"2d00\":\n/***/ (function(module, exports) {\n\nmodule.exports = false;\n\n\n/***/ }),\n\n/***/ \"2d95\":\n/***/ (function(module, exports) {\n\nvar toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n\n\n/***/ }),\n\n/***/ \"2fdb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n// 21.1.3.7 String.prototype.includes(searchString, position = 0)\n\nvar $export = __webpack_require__(\"5ca1\");\nvar context = __webpack_require__(\"d2c8\");\nvar INCLUDES = 'includes';\n\n$export($export.P + $export.F * __webpack_require__(\"5147\")(INCLUDES), 'String', {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~context(this, searchString, INCLUDES)\n .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n\n/***/ }),\n\n/***/ \"32e9\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(\"86cc\");\nvar createDesc = __webpack_require__(\"4630\");\nmodule.exports = __webpack_require__(\"9e1e\") ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n\n/***/ }),\n\n/***/ \"38fd\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = __webpack_require__(\"69a8\");\nvar toObject = __webpack_require__(\"4bf8\");\nvar IE_PROTO = __webpack_require__(\"613b\")('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n\n\n/***/ }),\n\n/***/ \"41a0\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar create = __webpack_require__(\"2aeb\");\nvar descriptor = __webpack_require__(\"4630\");\nvar setToStringTag = __webpack_require__(\"7f20\");\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\n__webpack_require__(\"32e9\")(IteratorPrototype, __webpack_require__(\"2b4c\")('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n/***/ }),\n\n/***/ \"456d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.14 Object.keys(O)\nvar toObject = __webpack_require__(\"4bf8\");\nvar $keys = __webpack_require__(\"0d58\");\n\n__webpack_require__(\"5eda\")('keys', function () {\n return function keys(it) {\n return $keys(toObject(it));\n };\n});\n\n\n/***/ }),\n\n/***/ \"4588\":\n/***/ (function(module, exports) {\n\n// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n/***/ }),\n\n/***/ \"4630\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n\n/***/ }),\n\n/***/ \"4bf8\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.13 ToObject(argument)\nvar defined = __webpack_require__(\"be13\");\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n\n\n/***/ }),\n\n/***/ \"5147\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar MATCH = __webpack_require__(\"2b4c\")('match');\nmodule.exports = function (KEY) {\n var re = /./;\n try {\n '/./'[KEY](re);\n } catch (e) {\n try {\n re[MATCH] = false;\n return !'/./'[KEY](re);\n } catch (f) { /* empty */ }\n } return true;\n};\n\n\n/***/ }),\n\n/***/ \"520a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar regexpFlags = __webpack_require__(\"0bfb\");\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar LAST_INDEX = 'lastIndex';\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/,\n re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1[LAST_INDEX] !== 0 || re2[LAST_INDEX] !== 0;\n})();\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + re.source + '$(?!\\\\s)', regexpFlags.call(re));\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX];\n\n match = nativeExec.call(re, str);\n\n if (UPDATES_LAST_INDEX_WRONG && match) {\n re[LAST_INDEX] = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n // eslint-disable-next-line no-loop-func\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n\n\n/***/ }),\n\n/***/ \"52a7\":\n/***/ (function(module, exports) {\n\nexports.f = {}.propertyIsEnumerable;\n\n\n/***/ }),\n\n/***/ \"5537\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar core = __webpack_require__(\"8378\");\nvar global = __webpack_require__(\"7726\");\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: __webpack_require__(\"2d00\") ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n\n\n/***/ }),\n\n/***/ \"5ca1\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"7726\");\nvar core = __webpack_require__(\"8378\");\nvar hide = __webpack_require__(\"32e9\");\nvar redefine = __webpack_require__(\"2aba\");\nvar ctx = __webpack_require__(\"9b43\");\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n\n\n/***/ }),\n\n/***/ \"5eda\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// most Object methods by ES6 should accept primitives\nvar $export = __webpack_require__(\"5ca1\");\nvar core = __webpack_require__(\"8378\");\nvar fails = __webpack_require__(\"79e5\");\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n\n\n/***/ }),\n\n/***/ \"5f1b\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar classof = __webpack_require__(\"23c6\");\nvar builtinExec = RegExp.prototype.exec;\n\n // `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw new TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n if (classof(R) !== 'RegExp') {\n throw new TypeError('RegExp#exec called on incompatible receiver');\n }\n return builtinExec.call(R, S);\n};\n\n\n/***/ }),\n\n/***/ \"613b\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar shared = __webpack_require__(\"5537\")('keys');\nvar uid = __webpack_require__(\"ca5a\");\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n\n\n/***/ }),\n\n/***/ \"626a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = __webpack_require__(\"2d95\");\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n/***/ }),\n\n/***/ \"6762\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// https://github.com/tc39/Array.prototype.includes\nvar $export = __webpack_require__(\"5ca1\");\nvar $includes = __webpack_require__(\"c366\")(true);\n\n$export($export.P, 'Array', {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n__webpack_require__(\"9c6c\")('includes');\n\n\n/***/ }),\n\n/***/ \"6821\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = __webpack_require__(\"626a\");\nvar defined = __webpack_require__(\"be13\");\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n\n\n/***/ }),\n\n/***/ \"69a8\":\n/***/ (function(module, exports) {\n\nvar hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\n\n/***/ }),\n\n/***/ \"6a99\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = __webpack_require__(\"d3f4\");\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n/***/ }),\n\n/***/ \"7333\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = __webpack_require__(\"0d58\");\nvar gOPS = __webpack_require__(\"2621\");\nvar pIE = __webpack_require__(\"52a7\");\nvar toObject = __webpack_require__(\"4bf8\");\nvar IObject = __webpack_require__(\"626a\");\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || __webpack_require__(\"79e5\")(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key];\n } return T;\n} : $assign;\n\n\n/***/ }),\n\n/***/ \"7726\":\n/***/ (function(module, exports) {\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n\n\n/***/ }),\n\n/***/ \"77f1\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"4588\");\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n/***/ }),\n\n/***/ \"79e5\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n\n\n/***/ }),\n\n/***/ \"7f20\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar def = __webpack_require__(\"86cc\").f;\nvar has = __webpack_require__(\"69a8\");\nvar TAG = __webpack_require__(\"2b4c\")('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n\n\n/***/ }),\n\n/***/ \"8378\":\n/***/ (function(module, exports) {\n\nvar core = module.exports = { version: '2.6.5' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n\n\n/***/ }),\n\n/***/ \"84f2\":\n/***/ (function(module, exports) {\n\nmodule.exports = {};\n\n\n/***/ }),\n\n/***/ \"86cc\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(\"cb7c\");\nvar IE8_DOM_DEFINE = __webpack_require__(\"c69a\");\nvar toPrimitive = __webpack_require__(\"6a99\");\nvar dP = Object.defineProperty;\n\nexports.f = __webpack_require__(\"9e1e\") ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n\n\n/***/ }),\n\n/***/ \"9b43\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// optional / simple context binding\nvar aFunction = __webpack_require__(\"d8e8\");\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\n\n/***/ }),\n\n/***/ \"9c6c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = __webpack_require__(\"2b4c\")('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) __webpack_require__(\"32e9\")(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n\n\n/***/ }),\n\n/***/ \"9def\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.15 ToLength\nvar toInteger = __webpack_require__(\"4588\");\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n\n/***/ }),\n\n/***/ \"9e1e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !__webpack_require__(\"79e5\")(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n/***/ }),\n\n/***/ \"a352\":\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_a352__;\n\n/***/ }),\n\n/***/ \"a481\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar anObject = __webpack_require__(\"cb7c\");\nvar toObject = __webpack_require__(\"4bf8\");\nvar toLength = __webpack_require__(\"9def\");\nvar toInteger = __webpack_require__(\"4588\");\nvar advanceStringIndex = __webpack_require__(\"0390\");\nvar regExpExec = __webpack_require__(\"5f1b\");\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&`']|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&`']|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\n__webpack_require__(\"214f\")('replace', 2, function (defined, REPLACE, $replace, maybeCallNative) {\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = defined(this);\n var fn = searchValue == undefined ? undefined : searchValue[REPLACE];\n return fn !== undefined\n ? fn.call(searchValue, O, replaceValue)\n : $replace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n var res = maybeCallNative($replace, regexp, this, replaceValue);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n results.push(result);\n if (!global) break;\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return $replace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n\n\n/***/ }),\n\n/***/ \"aae3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.2.8 IsRegExp(argument)\nvar isObject = __webpack_require__(\"d3f4\");\nvar cof = __webpack_require__(\"2d95\");\nvar MATCH = __webpack_require__(\"2b4c\")('match');\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n\n\n/***/ }),\n\n/***/ \"ac6a\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $iterators = __webpack_require__(\"cadf\");\nvar getKeys = __webpack_require__(\"0d58\");\nvar redefine = __webpack_require__(\"2aba\");\nvar global = __webpack_require__(\"7726\");\nvar hide = __webpack_require__(\"32e9\");\nvar Iterators = __webpack_require__(\"84f2\");\nvar wks = __webpack_require__(\"2b4c\");\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\n\nvar DOMIterables = {\n CSSRuleList: true, // TODO: Not spec compliant, should be false.\n CSSStyleDeclaration: false,\n CSSValueList: false,\n ClientRectList: false,\n DOMRectList: false,\n DOMStringList: false,\n DOMTokenList: true,\n DataTransferItemList: false,\n FileList: false,\n HTMLAllCollection: false,\n HTMLCollection: false,\n HTMLFormElement: false,\n HTMLSelectElement: false,\n MediaList: true, // TODO: Not spec compliant, should be false.\n MimeTypeArray: false,\n NamedNodeMap: false,\n NodeList: true,\n PaintRequestList: false,\n Plugin: false,\n PluginArray: false,\n SVGLengthList: false,\n SVGNumberList: false,\n SVGPathSegList: false,\n SVGPointList: false,\n SVGStringList: false,\n SVGTransformList: false,\n SourceBufferList: false,\n StyleSheetList: true, // TODO: Not spec compliant, should be false.\n TextTrackCueList: false,\n TextTrackList: false,\n TouchList: false\n};\n\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n var NAME = collections[i];\n var explicit = DOMIterables[NAME];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n var key;\n if (proto) {\n if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = ArrayValues;\n if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);\n }\n}\n\n\n/***/ }),\n\n/***/ \"b0c5\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar regexpExec = __webpack_require__(\"520a\");\n__webpack_require__(\"5ca1\")({\n target: 'RegExp',\n proto: true,\n forced: regexpExec !== /./.exec\n}, {\n exec: regexpExec\n});\n\n\n/***/ }),\n\n/***/ \"be13\":\n/***/ (function(module, exports) {\n\n// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"c366\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = __webpack_require__(\"6821\");\nvar toLength = __webpack_require__(\"9def\");\nvar toAbsoluteIndex = __webpack_require__(\"77f1\");\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\n\n/***/ }),\n\n/***/ \"c649\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return insertNodeAt; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return camelize; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return console; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return removeNode; });\n/* harmony import */ var core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"a481\");\n/* harmony import */ var core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_0__);\n\n\nfunction getConsole() {\n if (typeof window !== \"undefined\") {\n return window.console;\n }\n\n return global.console;\n}\n\nvar console = getConsole();\n\nfunction cached(fn) {\n var cache = Object.create(null);\n return function cachedFn(str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n}\n\nvar regex = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(regex, function (_, c) {\n return c ? c.toUpperCase() : \"\";\n });\n});\n\nfunction removeNode(node) {\n if (node.parentElement !== null) {\n node.parentElement.removeChild(node);\n }\n}\n\nfunction insertNodeAt(fatherNode, node, position) {\n var refNode = position === 0 ? fatherNode.children[0] : fatherNode.children[position - 1].nextSibling;\n fatherNode.insertBefore(node, refNode);\n}\n\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(\"c8ba\")))\n\n/***/ }),\n\n/***/ \"c69a\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = !__webpack_require__(\"9e1e\") && !__webpack_require__(\"79e5\")(function () {\n return Object.defineProperty(__webpack_require__(\"230e\")('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n/***/ }),\n\n/***/ \"c8ba\":\n/***/ (function(module, exports) {\n\nvar g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n/***/ }),\n\n/***/ \"ca5a\":\n/***/ (function(module, exports) {\n\nvar id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n/***/ }),\n\n/***/ \"cadf\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar addToUnscopables = __webpack_require__(\"9c6c\");\nvar step = __webpack_require__(\"d53b\");\nvar Iterators = __webpack_require__(\"84f2\");\nvar toIObject = __webpack_require__(\"6821\");\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = __webpack_require__(\"01f9\")(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n/***/ }),\n\n/***/ \"cb7c\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"d3f4\");\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"ce10\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar has = __webpack_require__(\"69a8\");\nvar toIObject = __webpack_require__(\"6821\");\nvar arrayIndexOf = __webpack_require__(\"c366\")(false);\nvar IE_PROTO = __webpack_require__(\"613b\")('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n\n\n/***/ }),\n\n/***/ \"d2c8\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// helper for String#{startsWith, endsWith, includes}\nvar isRegExp = __webpack_require__(\"aae3\");\nvar defined = __webpack_require__(\"be13\");\n\nmodule.exports = function (that, searchString, NAME) {\n if (isRegExp(searchString)) throw TypeError('String#' + NAME + \" doesn't accept regex!\");\n return String(defined(that));\n};\n\n\n/***/ }),\n\n/***/ \"d3f4\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/***/ }),\n\n/***/ \"d53b\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n\n\n/***/ }),\n\n/***/ \"d8e8\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"e11e\":\n/***/ (function(module, exports) {\n\n// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n\n\n/***/ }),\n\n/***/ \"f559\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n// 21.1.3.18 String.prototype.startsWith(searchString [, position ])\n\nvar $export = __webpack_require__(\"5ca1\");\nvar toLength = __webpack_require__(\"9def\");\nvar context = __webpack_require__(\"d2c8\");\nvar STARTS_WITH = 'startsWith';\nvar $startsWith = ''[STARTS_WITH];\n\n$export($export.P + $export.F * __webpack_require__(\"5147\")(STARTS_WITH), 'String', {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = context(this, searchString, STARTS_WITH);\n var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return $startsWith\n ? $startsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n\n\n/***/ }),\n\n/***/ \"f6fd\":\n/***/ (function(module, exports) {\n\n// document.currentScript polyfill by Adam Miller\n\n// MIT license\n\n(function(document){\n var currentScript = \"currentScript\",\n scripts = document.getElementsByTagName('script'); // Live NodeList collection\n\n // If browser needs currentScript polyfill, add get currentScript() to the document object\n if (!(currentScript in document)) {\n Object.defineProperty(document, currentScript, {\n get: function(){\n\n // IE 6-10 supports script readyState\n // IE 10+ support stack trace\n try { throw new Error(); }\n catch (err) {\n\n // Find the second match for the \"at\" string to get file src url from stack.\n // Specifically works with the format of stack traces in IE.\n var i, res = ((/.*at [^\\(]*\\((.*):.+:.+\\)$/ig).exec(err.stack) || [false])[1];\n\n // For all scripts on the page, if src matches or if ready state is interactive, return the script tag\n for(i in scripts){\n if(scripts[i].src == res || scripts[i].readyState == \"interactive\"){\n return scripts[i];\n }\n }\n\n // If no match, return null\n return null;\n }\n }\n });\n }\n})(document);\n\n\n/***/ }),\n\n/***/ \"f751\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.3.1 Object.assign(target, source)\nvar $export = __webpack_require__(\"5ca1\");\n\n$export($export.S + $export.F, 'Object', { assign: __webpack_require__(\"7333\") });\n\n\n/***/ }),\n\n/***/ \"fa5b\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(\"5537\")('native-function-to-string', Function.toString);\n\n\n/***/ }),\n\n/***/ \"fab2\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar document = __webpack_require__(\"7726\").document;\nmodule.exports = document && document.documentElement;\n\n\n/***/ }),\n\n/***/ \"fb15\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js\n// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n if (true) {\n __webpack_require__(\"f6fd\")\n }\n\n var setPublicPath_i\n if ((setPublicPath_i = window.document.currentScript) && (setPublicPath_i = setPublicPath_i.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/))) {\n __webpack_require__.p = setPublicPath_i[1] // eslint-disable-line\n }\n}\n\n// Indicate to webpack that this file can be concatenated\n/* harmony default export */ var setPublicPath = (null);\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.object.assign.js\nvar es6_object_assign = __webpack_require__(\"f751\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.string.starts-with.js\nvar es6_string_starts_with = __webpack_require__(\"f559\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom.iterable.js\nvar web_dom_iterable = __webpack_require__(\"ac6a\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.array.iterator.js\nvar es6_array_iterator = __webpack_require__(\"cadf\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.object.keys.js\nvar es6_object_keys = __webpack_require__(\"456d\");\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\n\n\n\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es7.array.includes.js\nvar es7_array_includes = __webpack_require__(\"6762\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.string.includes.js\nvar es6_string_includes = __webpack_require__(\"2fdb\");\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\n\n\n\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n// EXTERNAL MODULE: external {\"commonjs\":\"sortablejs\",\"commonjs2\":\"sortablejs\",\"amd\":\"sortablejs\",\"root\":\"Sortable\"}\nvar external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_ = __webpack_require__(\"a352\");\nvar external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_default = /*#__PURE__*/__webpack_require__.n(external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_);\n\n// EXTERNAL MODULE: ./src/util/helper.js\nvar helper = __webpack_require__(\"c649\");\n\n// CONCATENATED MODULE: ./src/vuedraggable.js\n\n\n\n\n\n\n\n\n\n\n\n\nfunction buildAttribute(object, propName, value) {\n if (value === undefined) {\n return object;\n }\n\n object = object || {};\n object[propName] = value;\n return object;\n}\n\nfunction computeVmIndex(vnodes, element) {\n return vnodes.map(function (elt) {\n return elt.elm;\n }).indexOf(element);\n}\n\nfunction _computeIndexes(slots, children, isTransition, footerOffset) {\n if (!slots) {\n return [];\n }\n\n var elmFromNodes = slots.map(function (elt) {\n return elt.elm;\n });\n var footerIndex = children.length - footerOffset;\n\n var rawIndexes = _toConsumableArray(children).map(function (elt, idx) {\n return idx >= footerIndex ? elmFromNodes.length : elmFromNodes.indexOf(elt);\n });\n\n return isTransition ? rawIndexes.filter(function (ind) {\n return ind !== -1;\n }) : rawIndexes;\n}\n\nfunction emit(evtName, evtData) {\n var _this = this;\n\n this.$nextTick(function () {\n return _this.$emit(evtName.toLowerCase(), evtData);\n });\n}\n\nfunction delegateAndEmit(evtName) {\n var _this2 = this;\n\n return function (evtData) {\n if (_this2.realList !== null) {\n _this2[\"onDrag\" + evtName](evtData);\n }\n\n emit.call(_this2, evtName, evtData);\n };\n}\n\nfunction isTransitionName(name) {\n return [\"transition-group\", \"TransitionGroup\"].includes(name);\n}\n\nfunction vuedraggable_isTransition(slots) {\n if (!slots || slots.length !== 1) {\n return false;\n }\n\n var _slots = _slicedToArray(slots, 1),\n componentOptions = _slots[0].componentOptions;\n\n if (!componentOptions) {\n return false;\n }\n\n return isTransitionName(componentOptions.tag);\n}\n\nfunction getSlot(slot, scopedSlot, key) {\n return slot[key] || (scopedSlot[key] ? scopedSlot[key]() : undefined);\n}\n\nfunction computeChildrenAndOffsets(children, slot, scopedSlot) {\n var headerOffset = 0;\n var footerOffset = 0;\n var header = getSlot(slot, scopedSlot, \"header\");\n\n if (header) {\n headerOffset = header.length;\n children = children ? [].concat(_toConsumableArray(header), _toConsumableArray(children)) : _toConsumableArray(header);\n }\n\n var footer = getSlot(slot, scopedSlot, \"footer\");\n\n if (footer) {\n footerOffset = footer.length;\n children = children ? [].concat(_toConsumableArray(children), _toConsumableArray(footer)) : _toConsumableArray(footer);\n }\n\n return {\n children: children,\n headerOffset: headerOffset,\n footerOffset: footerOffset\n };\n}\n\nfunction getComponentAttributes($attrs, componentData) {\n var attributes = null;\n\n var update = function update(name, value) {\n attributes = buildAttribute(attributes, name, value);\n };\n\n var attrs = Object.keys($attrs).filter(function (key) {\n return key === \"id\" || key.startsWith(\"data-\");\n }).reduce(function (res, key) {\n res[key] = $attrs[key];\n return res;\n }, {});\n update(\"attrs\", attrs);\n\n if (!componentData) {\n return attributes;\n }\n\n var on = componentData.on,\n props = componentData.props,\n componentDataAttrs = componentData.attrs;\n update(\"on\", on);\n update(\"props\", props);\n Object.assign(attributes.attrs, componentDataAttrs);\n return attributes;\n}\n\nvar eventsListened = [\"Start\", \"Add\", \"Remove\", \"Update\", \"End\"];\nvar eventsToEmit = [\"Choose\", \"Unchoose\", \"Sort\", \"Filter\", \"Clone\"];\nvar readonlyProperties = [\"Move\"].concat(eventsListened, eventsToEmit).map(function (evt) {\n return \"on\" + evt;\n});\nvar draggingElement = null;\nvar props = {\n options: Object,\n list: {\n type: Array,\n required: false,\n default: null\n },\n value: {\n type: Array,\n required: false,\n default: null\n },\n noTransitionOnDrag: {\n type: Boolean,\n default: false\n },\n clone: {\n type: Function,\n default: function _default(original) {\n return original;\n }\n },\n element: {\n type: String,\n default: \"div\"\n },\n tag: {\n type: String,\n default: null\n },\n move: {\n type: Function,\n default: null\n },\n componentData: {\n type: Object,\n required: false,\n default: null\n }\n};\nvar draggableComponent = {\n name: \"draggable\",\n inheritAttrs: false,\n props: props,\n data: function data() {\n return {\n transitionMode: false,\n noneFunctionalComponentMode: false\n };\n },\n render: function render(h) {\n var slots = this.$slots.default;\n this.transitionMode = vuedraggable_isTransition(slots);\n\n var _computeChildrenAndOf = computeChildrenAndOffsets(slots, this.$slots, this.$scopedSlots),\n children = _computeChildrenAndOf.children,\n headerOffset = _computeChildrenAndOf.headerOffset,\n footerOffset = _computeChildrenAndOf.footerOffset;\n\n this.headerOffset = headerOffset;\n this.footerOffset = footerOffset;\n var attributes = getComponentAttributes(this.$attrs, this.componentData);\n return h(this.getTag(), attributes, children);\n },\n created: function created() {\n if (this.list !== null && this.value !== null) {\n helper[\"b\" /* console */].error(\"Value and list props are mutually exclusive! Please set one or another.\");\n }\n\n if (this.element !== \"div\") {\n helper[\"b\" /* console */].warn(\"Element props is deprecated please use tag props instead. See https://github.com/SortableJS/Vue.Draggable/blob/master/documentation/migrate.md#element-props\");\n }\n\n if (this.options !== undefined) {\n helper[\"b\" /* console */].warn(\"Options props is deprecated, add sortable options directly as vue.draggable item, or use v-bind. See https://github.com/SortableJS/Vue.Draggable/blob/master/documentation/migrate.md#options-props\");\n }\n },\n mounted: function mounted() {\n var _this3 = this;\n\n this.noneFunctionalComponentMode = this.getTag().toLowerCase() !== this.$el.nodeName.toLowerCase() && !this.getIsFunctional();\n\n if (this.noneFunctionalComponentMode && this.transitionMode) {\n throw new Error(\"Transition-group inside component is not supported. Please alter tag value or remove transition-group. Current tag value: \".concat(this.getTag()));\n }\n\n var optionsAdded = {};\n eventsListened.forEach(function (elt) {\n optionsAdded[\"on\" + elt] = delegateAndEmit.call(_this3, elt);\n });\n eventsToEmit.forEach(function (elt) {\n optionsAdded[\"on\" + elt] = emit.bind(_this3, elt);\n });\n var attributes = Object.keys(this.$attrs).reduce(function (res, key) {\n res[Object(helper[\"a\" /* camelize */])(key)] = _this3.$attrs[key];\n return res;\n }, {});\n var options = Object.assign({}, this.options, attributes, optionsAdded, {\n onMove: function onMove(evt, originalEvent) {\n return _this3.onDragMove(evt, originalEvent);\n }\n });\n !(\"draggable\" in options) && (options.draggable = \">*\");\n this._sortable = new external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_default.a(this.rootContainer, options);\n this.computeIndexes();\n },\n beforeDestroy: function beforeDestroy() {\n if (this._sortable !== undefined) this._sortable.destroy();\n },\n computed: {\n rootContainer: function rootContainer() {\n return this.transitionMode ? this.$el.children[0] : this.$el;\n },\n realList: function realList() {\n return this.list ? this.list : this.value;\n }\n },\n watch: {\n options: {\n handler: function handler(newOptionValue) {\n this.updateOptions(newOptionValue);\n },\n deep: true\n },\n $attrs: {\n handler: function handler(newOptionValue) {\n this.updateOptions(newOptionValue);\n },\n deep: true\n },\n realList: function realList() {\n this.computeIndexes();\n }\n },\n methods: {\n getIsFunctional: function getIsFunctional() {\n var fnOptions = this._vnode.fnOptions;\n return fnOptions && fnOptions.functional;\n },\n getTag: function getTag() {\n return this.tag || this.element;\n },\n updateOptions: function updateOptions(newOptionValue) {\n for (var property in newOptionValue) {\n var value = Object(helper[\"a\" /* camelize */])(property);\n\n if (readonlyProperties.indexOf(value) === -1) {\n this._sortable.option(value, newOptionValue[property]);\n }\n }\n },\n getChildrenNodes: function getChildrenNodes() {\n if (this.noneFunctionalComponentMode) {\n return this.$children[0].$slots.default;\n }\n\n var rawNodes = this.$slots.default;\n return this.transitionMode ? rawNodes[0].child.$slots.default : rawNodes;\n },\n computeIndexes: function computeIndexes() {\n var _this4 = this;\n\n this.$nextTick(function () {\n _this4.visibleIndexes = _computeIndexes(_this4.getChildrenNodes(), _this4.rootContainer.children, _this4.transitionMode, _this4.footerOffset);\n });\n },\n getUnderlyingVm: function getUnderlyingVm(htmlElt) {\n var index = computeVmIndex(this.getChildrenNodes() || [], htmlElt);\n\n if (index === -1) {\n //Edge case during move callback: related element might be\n //an element different from collection\n return null;\n }\n\n var element = this.realList[index];\n return {\n index: index,\n element: element\n };\n },\n getUnderlyingPotencialDraggableComponent: function getUnderlyingPotencialDraggableComponent(_ref) {\n var vue = _ref.__vue__;\n\n if (!vue || !vue.$options || !isTransitionName(vue.$options._componentTag)) {\n if (!(\"realList\" in vue) && vue.$children.length === 1 && \"realList\" in vue.$children[0]) return vue.$children[0];\n return vue;\n }\n\n return vue.$parent;\n },\n emitChanges: function emitChanges(evt) {\n var _this5 = this;\n\n this.$nextTick(function () {\n _this5.$emit(\"change\", evt);\n });\n },\n alterList: function alterList(onList) {\n if (this.list) {\n onList(this.list);\n return;\n }\n\n var newList = _toConsumableArray(this.value);\n\n onList(newList);\n this.$emit(\"input\", newList);\n },\n spliceList: function spliceList() {\n var _arguments = arguments;\n\n var spliceList = function spliceList(list) {\n return list.splice.apply(list, _toConsumableArray(_arguments));\n };\n\n this.alterList(spliceList);\n },\n updatePosition: function updatePosition(oldIndex, newIndex) {\n var updatePosition = function updatePosition(list) {\n return list.splice(newIndex, 0, list.splice(oldIndex, 1)[0]);\n };\n\n this.alterList(updatePosition);\n },\n getRelatedContextFromMoveEvent: function getRelatedContextFromMoveEvent(_ref2) {\n var to = _ref2.to,\n related = _ref2.related;\n var component = this.getUnderlyingPotencialDraggableComponent(to);\n\n if (!component) {\n return {\n component: component\n };\n }\n\n var list = component.realList;\n var context = {\n list: list,\n component: component\n };\n\n if (to !== related && list && component.getUnderlyingVm) {\n var destination = component.getUnderlyingVm(related);\n\n if (destination) {\n return Object.assign(destination, context);\n }\n }\n\n return context;\n },\n getVmIndex: function getVmIndex(domIndex) {\n var indexes = this.visibleIndexes;\n var numberIndexes = indexes.length;\n return domIndex > numberIndexes - 1 ? numberIndexes : indexes[domIndex];\n },\n getComponent: function getComponent() {\n return this.$slots.default[0].componentInstance;\n },\n resetTransitionData: function resetTransitionData(index) {\n if (!this.noTransitionOnDrag || !this.transitionMode) {\n return;\n }\n\n var nodes = this.getChildrenNodes();\n nodes[index].data = null;\n var transitionContainer = this.getComponent();\n transitionContainer.children = [];\n transitionContainer.kept = undefined;\n },\n onDragStart: function onDragStart(evt) {\n this.context = this.getUnderlyingVm(evt.item);\n evt.item._underlying_vm_ = this.clone(this.context.element);\n draggingElement = evt.item;\n },\n onDragAdd: function onDragAdd(evt) {\n var element = evt.item._underlying_vm_;\n\n if (element === undefined) {\n return;\n }\n\n Object(helper[\"d\" /* removeNode */])(evt.item);\n var newIndex = this.getVmIndex(evt.newIndex);\n this.spliceList(newIndex, 0, element);\n this.computeIndexes();\n var added = {\n element: element,\n newIndex: newIndex\n };\n this.emitChanges({\n added: added\n });\n },\n onDragRemove: function onDragRemove(evt) {\n Object(helper[\"c\" /* insertNodeAt */])(this.rootContainer, evt.item, evt.oldIndex);\n\n if (evt.pullMode === \"clone\") {\n Object(helper[\"d\" /* removeNode */])(evt.clone);\n return;\n }\n\n var oldIndex = this.context.index;\n this.spliceList(oldIndex, 1);\n var removed = {\n element: this.context.element,\n oldIndex: oldIndex\n };\n this.resetTransitionData(oldIndex);\n this.emitChanges({\n removed: removed\n });\n },\n onDragUpdate: function onDragUpdate(evt) {\n Object(helper[\"d\" /* removeNode */])(evt.item);\n Object(helper[\"c\" /* insertNodeAt */])(evt.from, evt.item, evt.oldIndex);\n var oldIndex = this.context.index;\n var newIndex = this.getVmIndex(evt.newIndex);\n this.updatePosition(oldIndex, newIndex);\n var moved = {\n element: this.context.element,\n oldIndex: oldIndex,\n newIndex: newIndex\n };\n this.emitChanges({\n moved: moved\n });\n },\n updateProperty: function updateProperty(evt, propertyName) {\n evt.hasOwnProperty(propertyName) && (evt[propertyName] += this.headerOffset);\n },\n computeFutureIndex: function computeFutureIndex(relatedContext, evt) {\n if (!relatedContext.element) {\n return 0;\n }\n\n var domChildren = _toConsumableArray(evt.to.children).filter(function (el) {\n return el.style[\"display\"] !== \"none\";\n });\n\n var currentDOMIndex = domChildren.indexOf(evt.related);\n var currentIndex = relatedContext.component.getVmIndex(currentDOMIndex);\n var draggedInList = domChildren.indexOf(draggingElement) !== -1;\n return draggedInList || !evt.willInsertAfter ? currentIndex : currentIndex + 1;\n },\n onDragMove: function onDragMove(evt, originalEvent) {\n var onMove = this.move;\n\n if (!onMove || !this.realList) {\n return true;\n }\n\n var relatedContext = this.getRelatedContextFromMoveEvent(evt);\n var draggedContext = this.context;\n var futureIndex = this.computeFutureIndex(relatedContext, evt);\n Object.assign(draggedContext, {\n futureIndex: futureIndex\n });\n var sendEvt = Object.assign({}, evt, {\n relatedContext: relatedContext,\n draggedContext: draggedContext\n });\n return onMove(sendEvt, originalEvent);\n },\n onDragEnd: function onDragEnd() {\n this.computeIndexes();\n draggingElement = null;\n }\n }\n};\n\nif (typeof window !== \"undefined\" && \"Vue\" in window) {\n window.Vue.component(\"draggable\", draggableComponent);\n}\n\n/* harmony default export */ var vuedraggable = (draggableComponent);\n// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js\n\n\n/* harmony default export */ var entry_lib = __webpack_exports__[\"default\"] = (vuedraggable);\n\n\n\n/***/ })\n\n/******/ })[\"default\"];\n});\n//# sourceMappingURL=vuedraggable.umd.js.map","/*!\n * html2canvas 1.0.0-rc.7 \n * Copyright (c) 2020 Niklas von Hertzen \n * Released under MIT License\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = global || self, global.html2canvas = factory());\n}(this, function () { 'use strict';\n\n /*! *****************************************************************************\r\n Copyright (c) Microsoft Corporation. All rights reserved.\r\n Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\n this file except in compliance with the License. You may obtain a copy of the\r\n License at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\n WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\n MERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\n See the Apache Version 2.0 License for specific language governing permissions\r\n and limitations under the License.\r\n ***************************************************************************** */\r\n /* global Reflect, Promise */\r\n\r\n var extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n\r\n function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n }\r\n\r\n var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n };\r\n\r\n function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n }\r\n\r\n function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n }\n\n var Bounds = /** @class */ (function () {\r\n function Bounds(x, y, w, h) {\r\n this.left = x;\r\n this.top = y;\r\n this.width = w;\r\n this.height = h;\r\n }\r\n Bounds.prototype.add = function (x, y, w, h) {\r\n return new Bounds(this.left + x, this.top + y, this.width + w, this.height + h);\r\n };\r\n Bounds.fromClientRect = function (clientRect) {\r\n return new Bounds(clientRect.left, clientRect.top, clientRect.width, clientRect.height);\r\n };\r\n return Bounds;\r\n }());\r\n var parseBounds = function (node) {\r\n return Bounds.fromClientRect(node.getBoundingClientRect());\r\n };\r\n var parseDocumentSize = function (document) {\r\n var body = document.body;\r\n var documentElement = document.documentElement;\r\n if (!body || !documentElement) {\r\n throw new Error(\"Unable to get document size\");\r\n }\r\n var width = Math.max(Math.max(body.scrollWidth, documentElement.scrollWidth), Math.max(body.offsetWidth, documentElement.offsetWidth), Math.max(body.clientWidth, documentElement.clientWidth));\r\n var height = Math.max(Math.max(body.scrollHeight, documentElement.scrollHeight), Math.max(body.offsetHeight, documentElement.offsetHeight), Math.max(body.clientHeight, documentElement.clientHeight));\r\n return new Bounds(0, 0, width, height);\r\n };\n\n /*\n * css-line-break 1.1.1 \n * Copyright (c) 2019 Niklas von Hertzen \n * Released under MIT License\n */\n var toCodePoints = function (str) {\r\n var codePoints = [];\r\n var i = 0;\r\n var length = str.length;\r\n while (i < length) {\r\n var value = str.charCodeAt(i++);\r\n if (value >= 0xd800 && value <= 0xdbff && i < length) {\r\n var extra = str.charCodeAt(i++);\r\n if ((extra & 0xfc00) === 0xdc00) {\r\n codePoints.push(((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000);\r\n }\r\n else {\r\n codePoints.push(value);\r\n i--;\r\n }\r\n }\r\n else {\r\n codePoints.push(value);\r\n }\r\n }\r\n return codePoints;\r\n };\r\n var fromCodePoint = function () {\r\n var codePoints = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n codePoints[_i] = arguments[_i];\r\n }\r\n if (String.fromCodePoint) {\r\n return String.fromCodePoint.apply(String, codePoints);\r\n }\r\n var length = codePoints.length;\r\n if (!length) {\r\n return '';\r\n }\r\n var codeUnits = [];\r\n var index = -1;\r\n var result = '';\r\n while (++index < length) {\r\n var codePoint = codePoints[index];\r\n if (codePoint <= 0xffff) {\r\n codeUnits.push(codePoint);\r\n }\r\n else {\r\n codePoint -= 0x10000;\r\n codeUnits.push((codePoint >> 10) + 0xd800, codePoint % 0x400 + 0xdc00);\r\n }\r\n if (index + 1 === length || codeUnits.length > 0x4000) {\r\n result += String.fromCharCode.apply(String, codeUnits);\r\n codeUnits.length = 0;\r\n }\r\n }\r\n return result;\r\n };\r\n var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\r\n // Use a lookup table to find the index.\r\n var lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\r\n for (var i = 0; i < chars.length; i++) {\r\n lookup[chars.charCodeAt(i)] = i;\r\n }\r\n var decode = function (base64) {\r\n var bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\r\n if (base64[base64.length - 1] === '=') {\r\n bufferLength--;\r\n if (base64[base64.length - 2] === '=') {\r\n bufferLength--;\r\n }\r\n }\r\n var buffer = typeof ArrayBuffer !== 'undefined' &&\r\n typeof Uint8Array !== 'undefined' &&\r\n typeof Uint8Array.prototype.slice !== 'undefined'\r\n ? new ArrayBuffer(bufferLength)\r\n : new Array(bufferLength);\r\n var bytes = Array.isArray(buffer) ? buffer : new Uint8Array(buffer);\r\n for (i = 0; i < len; i += 4) {\r\n encoded1 = lookup[base64.charCodeAt(i)];\r\n encoded2 = lookup[base64.charCodeAt(i + 1)];\r\n encoded3 = lookup[base64.charCodeAt(i + 2)];\r\n encoded4 = lookup[base64.charCodeAt(i + 3)];\r\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\r\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\r\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\r\n }\r\n return buffer;\r\n };\r\n var polyUint16Array = function (buffer) {\r\n var length = buffer.length;\r\n var bytes = [];\r\n for (var i = 0; i < length; i += 2) {\r\n bytes.push((buffer[i + 1] << 8) | buffer[i]);\r\n }\r\n return bytes;\r\n };\r\n var polyUint32Array = function (buffer) {\r\n var length = buffer.length;\r\n var bytes = [];\r\n for (var i = 0; i < length; i += 4) {\r\n bytes.push((buffer[i + 3] << 24) | (buffer[i + 2] << 16) | (buffer[i + 1] << 8) | buffer[i]);\r\n }\r\n return bytes;\r\n };\n\n /** Shift size for getting the index-2 table offset. */\r\n var UTRIE2_SHIFT_2 = 5;\r\n /** Shift size for getting the index-1 table offset. */\r\n var UTRIE2_SHIFT_1 = 6 + 5;\r\n /**\r\n * Shift size for shifting left the index array values.\r\n * Increases possible data size with 16-bit index values at the cost\r\n * of compactability.\r\n * This requires data blocks to be aligned by UTRIE2_DATA_GRANULARITY.\r\n */\r\n var UTRIE2_INDEX_SHIFT = 2;\r\n /**\r\n * Difference between the two shift sizes,\r\n * for getting an index-1 offset from an index-2 offset. 6=11-5\r\n */\r\n var UTRIE2_SHIFT_1_2 = UTRIE2_SHIFT_1 - UTRIE2_SHIFT_2;\r\n /**\r\n * The part of the index-2 table for U+D800..U+DBFF stores values for\r\n * lead surrogate code _units_ not code _points_.\r\n * Values for lead surrogate code _points_ are indexed with this portion of the table.\r\n * Length=32=0x20=0x400>>UTRIE2_SHIFT_2. (There are 1024=0x400 lead surrogates.)\r\n */\r\n var UTRIE2_LSCP_INDEX_2_OFFSET = 0x10000 >> UTRIE2_SHIFT_2;\r\n /** Number of entries in a data block. 32=0x20 */\r\n var UTRIE2_DATA_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_2;\r\n /** Mask for getting the lower bits for the in-data-block offset. */\r\n var UTRIE2_DATA_MASK = UTRIE2_DATA_BLOCK_LENGTH - 1;\r\n var UTRIE2_LSCP_INDEX_2_LENGTH = 0x400 >> UTRIE2_SHIFT_2;\r\n /** Count the lengths of both BMP pieces. 2080=0x820 */\r\n var UTRIE2_INDEX_2_BMP_LENGTH = UTRIE2_LSCP_INDEX_2_OFFSET + UTRIE2_LSCP_INDEX_2_LENGTH;\r\n /**\r\n * The 2-byte UTF-8 version of the index-2 table follows at offset 2080=0x820.\r\n * Length 32=0x20 for lead bytes C0..DF, regardless of UTRIE2_SHIFT_2.\r\n */\r\n var UTRIE2_UTF8_2B_INDEX_2_OFFSET = UTRIE2_INDEX_2_BMP_LENGTH;\r\n var UTRIE2_UTF8_2B_INDEX_2_LENGTH = 0x800 >> 6; /* U+0800 is the first code point after 2-byte UTF-8 */\r\n /**\r\n * The index-1 table, only used for supplementary code points, at offset 2112=0x840.\r\n * Variable length, for code points up to highStart, where the last single-value range starts.\r\n * Maximum length 512=0x200=0x100000>>UTRIE2_SHIFT_1.\r\n * (For 0x100000 supplementary code points U+10000..U+10ffff.)\r\n *\r\n * The part of the index-2 table for supplementary code points starts\r\n * after this index-1 table.\r\n *\r\n * Both the index-1 table and the following part of the index-2 table\r\n * are omitted completely if there is only BMP data.\r\n */\r\n var UTRIE2_INDEX_1_OFFSET = UTRIE2_UTF8_2B_INDEX_2_OFFSET + UTRIE2_UTF8_2B_INDEX_2_LENGTH;\r\n /**\r\n * Number of index-1 entries for the BMP. 32=0x20\r\n * This part of the index-1 table is omitted from the serialized form.\r\n */\r\n var UTRIE2_OMITTED_BMP_INDEX_1_LENGTH = 0x10000 >> UTRIE2_SHIFT_1;\r\n /** Number of entries in an index-2 block. 64=0x40 */\r\n var UTRIE2_INDEX_2_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_1_2;\r\n /** Mask for getting the lower bits for the in-index-2-block offset. */\r\n var UTRIE2_INDEX_2_MASK = UTRIE2_INDEX_2_BLOCK_LENGTH - 1;\r\n var slice16 = function (view, start, end) {\r\n if (view.slice) {\r\n return view.slice(start, end);\r\n }\r\n return new Uint16Array(Array.prototype.slice.call(view, start, end));\r\n };\r\n var slice32 = function (view, start, end) {\r\n if (view.slice) {\r\n return view.slice(start, end);\r\n }\r\n return new Uint32Array(Array.prototype.slice.call(view, start, end));\r\n };\r\n var createTrieFromBase64 = function (base64) {\r\n var buffer = decode(base64);\r\n var view32 = Array.isArray(buffer) ? polyUint32Array(buffer) : new Uint32Array(buffer);\r\n var view16 = Array.isArray(buffer) ? polyUint16Array(buffer) : new Uint16Array(buffer);\r\n var headerLength = 24;\r\n var index = slice16(view16, headerLength / 2, view32[4] / 2);\r\n var data = view32[5] === 2\r\n ? slice16(view16, (headerLength + view32[4]) / 2)\r\n : slice32(view32, Math.ceil((headerLength + view32[4]) / 4));\r\n return new Trie(view32[0], view32[1], view32[2], view32[3], index, data);\r\n };\r\n var Trie = /** @class */ (function () {\r\n function Trie(initialValue, errorValue, highStart, highValueIndex, index, data) {\r\n this.initialValue = initialValue;\r\n this.errorValue = errorValue;\r\n this.highStart = highStart;\r\n this.highValueIndex = highValueIndex;\r\n this.index = index;\r\n this.data = data;\r\n }\r\n /**\r\n * Get the value for a code point as stored in the Trie.\r\n *\r\n * @param codePoint the code point\r\n * @return the value\r\n */\r\n Trie.prototype.get = function (codePoint) {\r\n var ix;\r\n if (codePoint >= 0) {\r\n if (codePoint < 0x0d800 || (codePoint > 0x0dbff && codePoint <= 0x0ffff)) {\r\n // Ordinary BMP code point, excluding leading surrogates.\r\n // BMP uses a single level lookup. BMP index starts at offset 0 in the Trie2 index.\r\n // 16 bit data is stored in the index array itself.\r\n ix = this.index[codePoint >> UTRIE2_SHIFT_2];\r\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\r\n return this.data[ix];\r\n }\r\n if (codePoint <= 0xffff) {\r\n // Lead Surrogate Code Point. A Separate index section is stored for\r\n // lead surrogate code units and code points.\r\n // The main index has the code unit data.\r\n // For this function, we need the code point data.\r\n // Note: this expression could be refactored for slightly improved efficiency, but\r\n // surrogate code points will be so rare in practice that it's not worth it.\r\n ix = this.index[UTRIE2_LSCP_INDEX_2_OFFSET + ((codePoint - 0xd800) >> UTRIE2_SHIFT_2)];\r\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\r\n return this.data[ix];\r\n }\r\n if (codePoint < this.highStart) {\r\n // Supplemental code point, use two-level lookup.\r\n ix = UTRIE2_INDEX_1_OFFSET - UTRIE2_OMITTED_BMP_INDEX_1_LENGTH + (codePoint >> UTRIE2_SHIFT_1);\r\n ix = this.index[ix];\r\n ix += (codePoint >> UTRIE2_SHIFT_2) & UTRIE2_INDEX_2_MASK;\r\n ix = this.index[ix];\r\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\r\n return this.data[ix];\r\n }\r\n if (codePoint <= 0x10ffff) {\r\n return this.data[this.highValueIndex];\r\n }\r\n }\r\n // Fall through. The code point is outside of the legal range of 0..0x10ffff.\r\n return this.errorValue;\r\n };\r\n return Trie;\r\n }());\n\n var base64 = 'KwAAAAAAAAAACA4AIDoAAPAfAAACAAAAAAAIABAAGABAAEgAUABYAF4AZgBeAGYAYABoAHAAeABeAGYAfACEAIAAiACQAJgAoACoAK0AtQC9AMUAXgBmAF4AZgBeAGYAzQDVAF4AZgDRANkA3gDmAOwA9AD8AAQBDAEUARoBIgGAAIgAJwEvATcBPwFFAU0BTAFUAVwBZAFsAXMBewGDATAAiwGTAZsBogGkAawBtAG8AcIBygHSAdoB4AHoAfAB+AH+AQYCDgIWAv4BHgImAi4CNgI+AkUCTQJTAlsCYwJrAnECeQKBAk0CiQKRApkCoQKoArACuALAAsQCzAIwANQC3ALkAjAA7AL0AvwCAQMJAxADGAMwACADJgMuAzYDPgOAAEYDSgNSA1IDUgNaA1oDYANiA2IDgACAAGoDgAByA3YDfgOAAIQDgACKA5IDmgOAAIAAogOqA4AAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAK8DtwOAAIAAvwPHA88D1wPfAyAD5wPsA/QD/AOAAIAABAQMBBIEgAAWBB4EJgQuBDMEIAM7BEEEXgBJBCADUQRZBGEEaQQwADAAcQQ+AXkEgQSJBJEEgACYBIAAoASoBK8EtwQwAL8ExQSAAIAAgACAAIAAgACgAM0EXgBeAF4AXgBeAF4AXgBeANUEXgDZBOEEXgDpBPEE+QQBBQkFEQUZBSEFKQUxBTUFPQVFBUwFVAVcBV4AYwVeAGsFcwV7BYMFiwWSBV4AmgWgBacFXgBeAF4AXgBeAKsFXgCyBbEFugW7BcIFwgXIBcIFwgXQBdQF3AXkBesF8wX7BQMGCwYTBhsGIwYrBjMGOwZeAD8GRwZNBl4AVAZbBl4AXgBeAF4AXgBeAF4AXgBeAF4AXgBeAGMGXgBqBnEGXgBeAF4AXgBeAF4AXgBeAF4AXgB5BoAG4wSGBo4GkwaAAIADHgR5AF4AXgBeAJsGgABGA4AAowarBrMGswagALsGwwbLBjAA0wbaBtoG3QbaBtoG2gbaBtoG2gblBusG8wb7BgMHCwcTBxsHCwcjBysHMAc1BzUHOgdCB9oGSgdSB1oHYAfaBloHaAfaBlIH2gbaBtoG2gbaBtoG2gbaBjUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHbQdeAF4ANQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQd1B30HNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1B4MH2gaKB68EgACAAIAAgACAAIAAgACAAI8HlwdeAJ8HpweAAIAArwe3B14AXgC/B8UHygcwANAH2AfgB4AA6AfwBz4B+AcACFwBCAgPCBcIogEYAR8IJwiAAC8INwg/CCADRwhPCFcIXwhnCEoDGgSAAIAAgABvCHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIhAiLCI4IMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlggwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAANQc1BzUHNQc1BzUHNQc1BzUHNQc1B54INQc1B6II2gaqCLIIugiAAIAAvgjGCIAAgACAAIAAgACAAIAAgACAAIAAywiHAYAA0wiAANkI3QjlCO0I9Aj8CIAAgACAAAIJCgkSCRoJIgknCTYHLwk3CZYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiAAIAAAAFAAXgBeAGAAcABeAHwAQACQAKAArQC9AJ4AXgBeAE0A3gBRAN4A7AD8AMwBGgEAAKcBNwEFAUwBXAF4QkhCmEKnArcCgAHHAsABz4LAAcABwAHAAd+C6ABoAG+C/4LAAcABwAHAAc+DF4MAAcAB54M3gweDV4Nng3eDaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAEeDqABVg6WDqABoQ6gAaABoAHXDvcONw/3DvcO9w73DvcO9w73DvcO9w73DvcO9w73DvcO9w73DvcO9w73DvcO9w73DvcO9w73DvcO9w73DvcO9w73DncPAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcAB7cPPwlGCU4JMACAAIAAgABWCV4JYQmAAGkJcAl4CXwJgAkwADAAMAAwAIgJgACLCZMJgACZCZ8JowmrCYAAswkwAF4AXgB8AIAAuwkABMMJyQmAAM4JgADVCTAAMAAwADAAgACAAIAAgACAAIAAgACAAIAAqwYWBNkIMAAwADAAMADdCeAJ6AnuCR4E9gkwAP4JBQoNCjAAMACAABUK0wiAAB0KJAosCjQKgAAwADwKQwqAAEsKvQmdCVMKWwowADAAgACAALcEMACAAGMKgABrCjAAMAAwADAAMAAwADAAMAAwADAAMAAeBDAAMAAwADAAMAAwADAAMAAwADAAMAAwAIkEPQFzCnoKiQSCCooKkAqJBJgKoAqkCokEGAGsCrQKvArBCjAAMADJCtEKFQHZCuEK/gHpCvEKMAAwADAAMACAAIwE+QowAIAAPwEBCzAAMAAwADAAMACAAAkLEQswAIAAPwEZCyELgAAOCCkLMAAxCzkLMAAwADAAMAAwADAAXgBeAEELMAAwADAAMAAwADAAMAAwAEkLTQtVC4AAXAtkC4AAiQkwADAAMAAwADAAMAAwADAAbAtxC3kLgAuFC4sLMAAwAJMLlwufCzAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAApwswADAAMACAAIAAgACvC4AAgACAAIAAgACAALcLMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAvwuAAMcLgACAAIAAgACAAIAAyguAAIAAgACAAIAA0QswADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAANkLgACAAIAA4AswADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACJCR4E6AswADAAhwHwC4AA+AsADAgMEAwwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMACAAIAAGAwdDCUMMAAwAC0MNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQw1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHPQwwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADUHNQc1BzUHNQc1BzUHNQc2BzAAMAA5DDUHNQc1BzUHNQc1BzUHNQc1BzUHNQdFDDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAgACAAIAATQxSDFoMMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAF4AXgBeAF4AXgBeAF4AYgxeAGoMXgBxDHkMfwxeAIUMXgBeAI0MMAAwADAAMAAwAF4AXgCVDJ0MMAAwADAAMABeAF4ApQxeAKsMswy7DF4Awgy9DMoMXgBeAF4AXgBeAF4AXgBeAF4AXgDRDNkMeQBqCeAM3Ax8AOYM7Az0DPgMXgBeAF4AXgBeAF4AXgBeAF4AXgBeAF4AXgBeAF4AXgCgAAANoAAHDQ4NFg0wADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAeDSYNMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIAAgACAAIAAgACAAC4NMABeAF4ANg0wADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAD4NRg1ODVYNXg1mDTAAbQ0wADAAMAAwADAAMAAwADAA2gbaBtoG2gbaBtoG2gbaBnUNeg3CBYANwgWFDdoGjA3aBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gaUDZwNpA2oDdoG2gawDbcNvw3HDdoG2gbPDdYN3A3fDeYN2gbsDfMN2gbaBvoN/g3aBgYODg7aBl4AXgBeABYOXgBeACUG2gYeDl4AJA5eACwO2w3aBtoGMQ45DtoG2gbaBtoGQQ7aBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gZJDjUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1B1EO2gY1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQdZDjUHNQc1BzUHNQc1B2EONQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHaA41BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1B3AO2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gY1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1B2EO2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gZJDtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBkkOeA6gAKAAoAAwADAAMAAwAKAAoACgAKAAoACgAKAAgA4wADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAD//wQABAAEAAQABAAEAAQABAAEAA0AAwABAAEAAgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAKABMAFwAeABsAGgAeABcAFgASAB4AGwAYAA8AGAAcAEsASwBLAEsASwBLAEsASwBLAEsAGAAYAB4AHgAeABMAHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAFgAbABIAHgAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABYADQARAB4ABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAUABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAkAFgAaABsAGwAbAB4AHQAdAB4ATwAXAB4ADQAeAB4AGgAbAE8ATwAOAFAAHQAdAB0ATwBPABcATwBPAE8AFgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAB4AUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAFAATwBAAE8ATwBPAEAATwBQAFAATwBQAB4AHgAeAB4AHgAeAB0AHQAdAB0AHgAdAB4ADgBQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgBQAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAkACQAJAAkACQAJAAkABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAFAAHgAeAB4AKwArAFAAUABQAFAAGABQACsAKwArACsAHgAeAFAAHgBQAFAAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUAAeAB4AHgAeAB4AHgArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAYAA0AKwArAB4AHgAbACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAB4ABAAEAB4ABAAEABMABAArACsAKwArACsAKwArACsAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAKwArACsAKwArAFYAVgBWAB4AHgArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AGgAaABoAGAAYAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQAEwAEACsAEwATAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABLAEsASwBLAEsASwBLAEsASwBLABoAGQAZAB4AUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABMAUAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABABQAFAABAAEAB4ABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUAAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAFAABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQAUABQAB4AHgAYABMAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAFAABAAEAAQABAAEAFAABAAEAAQAUAAEAAQABAAEAAQAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArACsAHgArAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAAQABAANAA0ASwBLAEsASwBLAEsASwBLAEsASwAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQAKwBQAFAAUABQAFAAUABQAFAAKwArAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAKwArACsAUABQAFAAUAArACsABABQAAQABAAEAAQABAAEAAQAKwArAAQABAArACsABAAEAAQAUAArACsAKwArACsAKwArACsABAArACsAKwArAFAAUAArAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAGgAaAFAAUABQAFAAUABMAB4AGwBQAB4AKwArACsABAAEAAQAKwBQAFAAUABQAFAAUAArACsAKwArAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUAArAFAAUAArAFAAUAArACsABAArAAQABAAEAAQABAArACsAKwArAAQABAArACsABAAEAAQAKwArACsABAArACsAKwArACsAKwArAFAAUABQAFAAKwBQACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwAEAAQAUABQAFAABAArACsAKwArACsAKwArACsAKwArACsABAAEAAQAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUAArAFAAUABQAFAAUAArACsABABQAAQABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQAKwArAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwAeABsAKwArACsAKwArACsAKwBQAAQABAAEAAQABAAEACsABAAEAAQAKwBQAFAAUABQAFAAUABQAFAAKwArAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAKwArAAQABAArACsABAAEAAQAKwArACsAKwArACsAKwArAAQABAArACsAKwArAFAAUAArAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwAeAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwAEAFAAKwBQAFAAUABQAFAAUAArACsAKwBQAFAAUAArAFAAUABQAFAAKwArACsAUABQACsAUAArAFAAUAArACsAKwBQAFAAKwArACsAUABQAFAAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAAQABAAEAAQAKwArACsABAAEAAQAKwAEAAQABAAEACsAKwBQACsAKwArACsAKwArAAQAKwArACsAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAB4AHgAeAB4AHgAeABsAHgArACsAKwArACsABAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABAArACsAKwArACsAKwArAAQABAArAFAAUABQACsAKwArACsAKwBQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAB4AUAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABAArACsAKwArACsAKwArAAQABAArACsAKwArACsAKwArAFAAKwBQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABABQAB4AKwArACsAKwBQAFAAUAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQABoAUABQAFAAUABQAFAAKwArAAQABAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQACsAUAArACsAUABQAFAAUABQAFAAUAArACsAKwAEACsAKwArACsABAAEAAQABAAEAAQAKwAEACsABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArAAQABAAeACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAXAAqACoAKgAqACoAKgAqACsAKwArACsAGwBcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAeAEsASwBLAEsASwBLAEsASwBLAEsADQANACsAKwArACsAKwBcAFwAKwBcACsAKwBcAFwAKwBcACsAKwBcACsAKwArACsAKwArAFwAXABcAFwAKwBcAFwAXABcAFwAXABcACsAXABcAFwAKwBcACsAXAArACsAXABcACsAXABcAFwAXAAqAFwAXAAqACoAKgAqACoAKgArACoAKgBcACsAKwBcAFwAXABcAFwAKwBcACsAKgAqACoAKgAqACoAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArAFwAXABcAFwAUAAOAA4ADgAOAB4ADgAOAAkADgAOAA0ACQATABMAEwATABMACQAeABMAHgAeAB4ABAAEAB4AHgAeAB4AHgAeAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUAANAAQAHgAEAB4ABAAWABEAFgARAAQABABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAANAAQABAAEAAQABAANAAQABABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsADQANAB4AHgAeAB4AHgAeAAQAHgAeAB4AHgAeAB4AKwAeAB4ADgAOAA0ADgAeAB4AHgAeAB4ACQAJACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqAFwASwBLAEsASwBLAEsASwBLAEsASwANAA0AHgAeAB4AHgBcAFwAXABcAFwAXAAqACoAKgAqAFwAXABcAFwAKgAqACoAXAAqACoAKgBcAFwAKgAqACoAKgAqACoAKgBcAFwAXAAqACoAKgAqAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgAqACoAXAAqAEsASwBLAEsASwBLAEsASwBLAEsAKgAqACoAKgAqACoAUABQAFAAUABQAFAAKwBQACsAKwArACsAKwBQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQACsAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwAEAAQABAAeAA0AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQACsAKwANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABYAEQArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAADQANAA0AUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAABAAEAAQAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAA0ADQArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQACsABAAEACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoADQANABUAXAANAB4ADQAbAFwAKgArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArAB4AHgATABMADQANAA4AHgATABMAHgAEAAQABAAJACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAUABQAFAAUABQAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABABQACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwAeACsAKwArABMAEwBLAEsASwBLAEsASwBLAEsASwBLAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAKwBcAFwAXABcAFwAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBcACsAKwArACoAKgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEACsAKwAeAB4AXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgArACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgArACsABABLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKgAqACoAKgAqACoAKgBcACoAKgAqACoAKgAqACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAUABQAFAAUABQAFAAUAArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsADQANAB4ADQANAA0ADQAeAB4AHgAeAB4AHgAeAB4AHgAeAAQABAAEAAQABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAUABQAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAHgAeAB4AHgBQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwANAA0ADQANAA0ASwBLAEsASwBLAEsASwBLAEsASwArACsAKwBQAFAAUABLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAA0AUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsABAAEAAQAHgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAUABQAFAABABQAFAAUABQAAQABAAEAFAAUAAEAAQABAArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwAEAAQABAAEAAQAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUAArAFAAKwBQACsAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAHgAeAB4AHgAeAB4AHgAeAFAAHgAeAB4AUABQAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAKwArAB4AHgAeAB4AHgAeACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAUABQAFAAKwAeAB4AHgAeAB4AHgAeAA4AHgArAA0ADQANAA0ADQANAA0ACQANAA0ADQAIAAQACwAEAAQADQAJAA0ADQAMAB0AHQAeABcAFwAWABcAFwAXABYAFwAdAB0AHgAeABQAFAAUAA0AAQABAAQABAAEAAQABAAJABoAGgAaABoAGgAaABoAGgAeABcAFwAdABUAFQAeAB4AHgAeAB4AHgAYABYAEQAVABUAFQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgANAB4ADQANAA0ADQAeAA0ADQANAAcAHgAeAB4AHgArAAQABAAEAAQABAAEAAQABAAEAAQAUABQACsAKwBPAFAAUABQAFAAUAAeAB4AHgAWABEATwBQAE8ATwBPAE8AUABQAFAAUABQAB4AHgAeABYAEQArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAGwAbABsAGwAbABsAGwAaABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAaABsAGwAbABsAGgAbABsAGgAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgBQABoAHgAdAB4AUAAeABoAHgAeAB4AHgAeAB4AHgAeAB4ATwAeAFAAGwAeAB4AUABQAFAAUABQAB4AHgAeAB0AHQAeAFAAHgBQAB4AUAAeAFAATwBQAFAAHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AUABQAFAAUABPAE8AUABQAFAAUABQAE8AUABQAE8AUABPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBQAFAAUABQAE8ATwBPAE8ATwBPAE8ATwBPAE8AUABQAFAAUABQAFAAUABQAFAAHgAeAFAAUABQAFAATwAeAB4AKwArACsAKwAdAB0AHQAdAB0AHQAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAeAB0AHQAeAB4AHgAdAB0AHgAeAB0AHgAeAB4AHQAeAB0AGwAbAB4AHQAeAB4AHgAeAB0AHgAeAB0AHQAdAB0AHgAeAB0AHgAdAB4AHQAdAB0AHQAdAB0AHgAdAB4AHgAeAB4AHgAdAB0AHQAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAdAB4AHgAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB4AHgAdAB0AHQAdAB4AHgAdAB0AHgAeAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAeAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHQAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABQAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAlACUAHgAeAB4AHgAeAB4AHgAeAB4AFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBQAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB4AHgAeAB4AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAdAB0AHQAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAeAB0AHQAeAB4AHgAeAB0AHQAeAB4AHgAeAB0AHQAdAB4AHgAdAB4AHgAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB0AHQAeAB4AHQAeAB4AHgAeAB0AHQAeAB4AHgAeACUAJQAdAB0AJQAeACUAJQAlACAAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAHgAeAB4AHgAdAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB4AHQAdAB0AHgAdACUAHQAdAB4AHQAdAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAHQAdAB0AHQAlAB4AJQAlACUAHQAlACUAHQAdAB0AJQAlAB0AHQAlAB0AHQAlACUAJQAeAB0AHgAeAB4AHgAdAB0AJQAdAB0AHQAdAB0AHQAlACUAJQAlACUAHQAlACUAIAAlAB0AHQAlACUAJQAlACUAJQAlACUAHgAeAB4AJQAlACAAIAAgACAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeABcAFwAXABcAFwAXAB4AEwATACUAHgAeAB4AFgARABYAEQAWABEAFgARABYAEQAWABEAFgARAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARABYAEQAWABEAFgARABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAEAAQABAAeAB4AKwArACsAKwArABMADQANAA0AUAATAA0AUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUAANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAA0ADQANAA0ADQANAA0ADQAeAA0AFgANAB4AHgAXABcAHgAeABcAFwAWABEAFgARABYAEQAWABEADQANAA0ADQATAFAADQANAB4ADQANAB4AHgAeAB4AHgAMAAwADQANAA0AHgANAA0AFgANAA0ADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArAA0AEQARACUAJQBHAFcAVwAWABEAFgARABYAEQAWABEAFgARACUAJQAWABEAFgARABYAEQAWABEAFQAWABEAEQAlAFcAVwBXAFcAVwBXAFcAVwBXAAQABAAEAAQABAAEACUAVwBXAFcAVwA2ACUAJQBXAFcAVwBHAEcAJQAlACUAKwBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBRAFcAUQBXAFEAVwBXAFcAVwBXAFcAUQBXAFcAVwBXAFcAVwBRAFEAKwArAAQABAAVABUARwBHAFcAFQBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBRAFcAVwBXAFcAVwBXAFEAUQBXAFcAVwBXABUAUQBHAEcAVwArACsAKwArACsAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwArACUAJQBXAFcAVwBXACUAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAKwArACUAJQAlACUAKwArACsAKwArACsAKwArACsAKwArACsAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAE8ATwBPAE8ATwBPAE8ATwAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADQATAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABLAEsASwBLAEsASwBLAEsASwBLAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAABAAEAAQABAAeAAQABAAEAAQABAAEAAQABAAEAAQAHgBQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAeAA0ADQANAA0ADQArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAAQAUABQAFAABABQAFAAUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAeAB4AHgAeACsAKwArACsAUABQAFAAUABQAFAAHgAeABoAHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADgAOABMAEwArACsAKwArACsAKwArACsABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwANAA0ASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUAAeAB4AHgBQAA4AUAArACsAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArAB4AWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYACsAKwArAAQAHgAeAB4AHgAeAB4ADQANAA0AHgAeAB4AHgArAFAASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArAB4AHgBcAFwAXABcAFwAKgBcAFwAXABcAFwAXABcAFwAXABcAEsASwBLAEsASwBLAEsASwBLAEsAXABcAFwAXABcACsAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAFAAUABQAAQAUABQAFAAUABQAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAHgANAA0ADQBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAXAAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAKgAqACoAXABcACoAKgBcAFwAXABcAFwAKgAqAFwAKgBcACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcACoAKgBQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAA0ADQBQAFAAUAAEAAQAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQADQAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAVABVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBUAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVACsAKwArACsAKwArACsAKwArACsAKwArAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAKwArACsAKwBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAKwArACsAKwAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAKwArACsAKwArAFYABABWAFYAVgBWAFYAVgBWAFYAVgBWAB4AVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgArAFYAVgBWAFYAVgArAFYAKwBWAFYAKwBWAFYAKwBWAFYAVgBWAFYAVgBWAFYAVgBWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAEQAWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAaAB4AKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAGAARABEAGAAYABMAEwAWABEAFAArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACUAJQAlACUAJQAWABEAFgARABYAEQAWABEAFgARABYAEQAlACUAFgARACUAJQAlACUAJQAlACUAEQAlABEAKwAVABUAEwATACUAFgARABYAEQAWABEAJQAlACUAJQAlACUAJQAlACsAJQAbABoAJQArACsAKwArAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAcAKwATACUAJQAbABoAJQAlABYAEQAlACUAEQAlABEAJQBXAFcAVwBXAFcAVwBXAFcAVwBXABUAFQAlACUAJQATACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXABYAJQARACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAWACUAEQAlABYAEQARABYAEQARABUAVwBRAFEAUQBRAFEAUQBRAFEAUQBRAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcARwArACsAVwBXAFcAVwBXAFcAKwArAFcAVwBXAFcAVwBXACsAKwBXAFcAVwBXAFcAVwArACsAVwBXAFcAKwArACsAGgAbACUAJQAlABsAGwArAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAAQAB0AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsADQANAA0AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsADQBQAFAAUABQACsAKwArACsAUABQAFAAUABQAFAAUABQAA0AUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAArACsAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQACsAKwArAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgBQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwBQAFAAUABQAFAABAAEAAQAKwAEAAQAKwArACsAKwArAAQABAAEAAQAUABQAFAAUAArAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsABAAEAAQAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsADQANAA0ADQANAA0ADQANAB4AKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AUABQAFAAUABQAFAAUABQAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwArACsAUABQAFAAUABQAA0ADQANAA0ADQANABQAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwANAA0ADQANAA0ADQANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAA0ADQAeAB4AHgAeAB4AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsASwBLAEsASwBLAEsASwBLAEsASwANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAeAA4AUAArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAADQANAB4ADQAeAAQABAAEAB4AKwArAEsASwBLAEsASwBLAEsASwBLAEsAUAAOAFAADQANAA0AKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAANAA0AHgANAA0AHgAEACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAA0AKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsABAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAUAArACsAKwArACsAKwAEACsAKwArACsAKwBQAFAAUABQAFAABAAEACsAKwAEAAQABAAEAAQABAAEACsAKwArAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABABQAFAAUABQAA0ADQANAA0AHgBLAEsASwBLAEsASwBLAEsASwBLACsADQArAB4AKwArAAQABAAEAAQAUABQAB4AUAArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEACsAKwAEAAQABAAEAAQABAAEAAQABAAOAA0ADQATABMAHgAeAB4ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0AUABQAFAAUAAEAAQAKwArAAQADQANAB4AUAArACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAKwAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAXABcAA0ADQANACoASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAFAABAAEAAQABAAOAB4ADQANAA0ADQAOAB4ABAArACsAKwArACsAKwArACsAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAUABQAFAAUAArACsAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAA0ADQANACsADgAOAA4ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAAQABAAEAFAADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAOABMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAArACsAKwAEACsABAAEACsABAAEAAQABAAEAAQABABQAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABIAEgAQwBDAEMAUABQAFAAUABDAFAAUABQAEgAQwBIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABDAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwANAA0AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAANACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAA0ADQANAB4AHgAeAB4AHgAeAFAAUABQAFAADQAeACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAEcARwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwArACsAKwArACsAKwArACsAKwArACsAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQACsAKwAeAAQABAANAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAB4AHgAeAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAHgAeAAQABAAEAAQABAAEAAQAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAEAAQABAAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUAArACsAUAArACsAUABQACsAKwBQAFAAUABQACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQACsAUABQAFAAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwAeAB4AUABQAFAAUABQACsAUAArACsAKwBQAFAAUABQAFAAUABQACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AKwArAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAEAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAeAB4ADQANAA0ADQAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABAArAAQABAArAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAEAAQABAAEAAQABAAEACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAFgAWAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArAFAAKwArAFAAKwBQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArAFAAKwBQACsAKwArACsAKwArAFAAKwArACsAKwBQACsAUAArAFAAKwBQAFAAUAArAFAAUAArAFAAKwArAFAAKwBQACsAUAArAFAAKwBQACsAUABQACsAUAArACsAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQACsAUABQAFAAUAArAFAAKwBQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwBQAFAAUAArAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAlACUAJQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeACUAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeACUAJQAlACUAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeACUAJQAlACUAJQAeACUAJQAlACUAJQAgACAAIAAlACUAIAAlACUAIAAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAIQAhACEAIQAhACUAJQAgACAAJQAlACAAIAAgACAAIAAgACAAIAAgACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAIAAgACAAIAAlACUAJQAlACAAJQAgACAAIAAgACAAIAAgACAAIAAlACUAJQAgACUAJQAlACUAIAAgACAAJQAgACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeACUAHgAlAB4AJQAlACUAJQAlACAAJQAlACUAJQAeACUAHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAIAAgACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAIAAlACUAJQAlACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAIAAgACAAJQAlACUAIAAgACAAIAAgAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFwAXABcAFQAVABUAHgAeAB4AHgAlACUAJQAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAIAAgACAAJQAlACUAJQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAlACAAIAAlACUAJQAlACUAJQAgACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAIAAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsA';\n\n /* @flow */\r\n var LETTER_NUMBER_MODIFIER = 50;\r\n // Non-tailorable Line Breaking Classes\r\n var BK = 1; // Cause a line break (after)\r\n var CR = 2; // Cause a line break (after), except between CR and LF\r\n var LF = 3; // Cause a line break (after)\r\n var CM = 4; // Prohibit a line break between the character and the preceding character\r\n var NL = 5; // Cause a line break (after)\r\n var WJ = 7; // Prohibit line breaks before and after\r\n var ZW = 8; // Provide a break opportunity\r\n var GL = 9; // Prohibit line breaks before and after\r\n var SP = 10; // Enable indirect line breaks\r\n var ZWJ = 11; // Prohibit line breaks within joiner sequences\r\n // Break Opportunities\r\n var B2 = 12; // Provide a line break opportunity before and after the character\r\n var BA = 13; // Generally provide a line break opportunity after the character\r\n var BB = 14; // Generally provide a line break opportunity before the character\r\n var HY = 15; // Provide a line break opportunity after the character, except in numeric context\r\n var CB = 16; // Provide a line break opportunity contingent on additional information\r\n // Characters Prohibiting Certain Breaks\r\n var CL = 17; // Prohibit line breaks before\r\n var CP = 18; // Prohibit line breaks before\r\n var EX = 19; // Prohibit line breaks before\r\n var IN = 20; // Allow only indirect line breaks between pairs\r\n var NS = 21; // Allow only indirect line breaks before\r\n var OP = 22; // Prohibit line breaks after\r\n var QU = 23; // Act like they are both opening and closing\r\n // Numeric Context\r\n var IS = 24; // Prevent breaks after any and before numeric\r\n var NU = 25; // Form numeric expressions for line breaking purposes\r\n var PO = 26; // Do not break following a numeric expression\r\n var PR = 27; // Do not break in front of a numeric expression\r\n var SY = 28; // Prevent a break before; and allow a break after\r\n // Other Characters\r\n var AI = 29; // Act like AL when the resolvedEAW is N; otherwise; act as ID\r\n var AL = 30; // Are alphabetic characters or symbols that are used with alphabetic characters\r\n var CJ = 31; // Treat as NS or ID for strict or normal breaking.\r\n var EB = 32; // Do not break from following Emoji Modifier\r\n var EM = 33; // Do not break from preceding Emoji Base\r\n var H2 = 34; // Form Korean syllable blocks\r\n var H3 = 35; // Form Korean syllable blocks\r\n var HL = 36; // Do not break around a following hyphen; otherwise act as Alphabetic\r\n var ID = 37; // Break before or after; except in some numeric context\r\n var JL = 38; // Form Korean syllable blocks\r\n var JV = 39; // Form Korean syllable blocks\r\n var JT = 40; // Form Korean syllable blocks\r\n var RI = 41; // Keep pairs together. For pairs; break before and after other classes\r\n var SA = 42; // Provide a line break opportunity contingent on additional, language-specific context analysis\r\n var XX = 43; // Have as yet unknown line breaking behavior or unassigned code positions\r\n var BREAK_MANDATORY = '!';\r\n var BREAK_NOT_ALLOWED = '×';\r\n var BREAK_ALLOWED = '÷';\r\n var UnicodeTrie = createTrieFromBase64(base64);\r\n var ALPHABETICS = [AL, HL];\r\n var HARD_LINE_BREAKS = [BK, CR, LF, NL];\r\n var SPACE = [SP, ZW];\r\n var PREFIX_POSTFIX = [PR, PO];\r\n var LINE_BREAKS = HARD_LINE_BREAKS.concat(SPACE);\r\n var KOREAN_SYLLABLE_BLOCK = [JL, JV, JT, H2, H3];\r\n var HYPHEN = [HY, BA];\r\n var codePointsToCharacterClasses = function (codePoints, lineBreak) {\r\n if (lineBreak === void 0) { lineBreak = 'strict'; }\r\n var types = [];\r\n var indicies = [];\r\n var categories = [];\r\n codePoints.forEach(function (codePoint, index) {\r\n var classType = UnicodeTrie.get(codePoint);\r\n if (classType > LETTER_NUMBER_MODIFIER) {\r\n categories.push(true);\r\n classType -= LETTER_NUMBER_MODIFIER;\r\n }\r\n else {\r\n categories.push(false);\r\n }\r\n if (['normal', 'auto', 'loose'].indexOf(lineBreak) !== -1) {\r\n // U+2010, – U+2013, 〜 U+301C, ゠ U+30A0\r\n if ([0x2010, 0x2013, 0x301c, 0x30a0].indexOf(codePoint) !== -1) {\r\n indicies.push(index);\r\n return types.push(CB);\r\n }\r\n }\r\n if (classType === CM || classType === ZWJ) {\r\n // LB10 Treat any remaining combining mark or ZWJ as AL.\r\n if (index === 0) {\r\n indicies.push(index);\r\n return types.push(AL);\r\n }\r\n // LB9 Do not break a combining character sequence; treat it as if it has the line breaking class of\r\n // the base character in all of the following rules. Treat ZWJ as if it were CM.\r\n var prev = types[index - 1];\r\n if (LINE_BREAKS.indexOf(prev) === -1) {\r\n indicies.push(indicies[index - 1]);\r\n return types.push(prev);\r\n }\r\n indicies.push(index);\r\n return types.push(AL);\r\n }\r\n indicies.push(index);\r\n if (classType === CJ) {\r\n return types.push(lineBreak === 'strict' ? NS : ID);\r\n }\r\n if (classType === SA) {\r\n return types.push(AL);\r\n }\r\n if (classType === AI) {\r\n return types.push(AL);\r\n }\r\n // For supplementary characters, a useful default is to treat characters in the range 10000..1FFFD as AL\r\n // and characters in the ranges 20000..2FFFD and 30000..3FFFD as ID, until the implementation can be revised\r\n // to take into account the actual line breaking properties for these characters.\r\n if (classType === XX) {\r\n if ((codePoint >= 0x20000 && codePoint <= 0x2fffd) || (codePoint >= 0x30000 && codePoint <= 0x3fffd)) {\r\n return types.push(ID);\r\n }\r\n else {\r\n return types.push(AL);\r\n }\r\n }\r\n types.push(classType);\r\n });\r\n return [indicies, types, categories];\r\n };\r\n var isAdjacentWithSpaceIgnored = function (a, b, currentIndex, classTypes) {\r\n var current = classTypes[currentIndex];\r\n if (Array.isArray(a) ? a.indexOf(current) !== -1 : a === current) {\r\n var i = currentIndex;\r\n while (i <= classTypes.length) {\r\n i++;\r\n var next = classTypes[i];\r\n if (next === b) {\r\n return true;\r\n }\r\n if (next !== SP) {\r\n break;\r\n }\r\n }\r\n }\r\n if (current === SP) {\r\n var i = currentIndex;\r\n while (i > 0) {\r\n i--;\r\n var prev = classTypes[i];\r\n if (Array.isArray(a) ? a.indexOf(prev) !== -1 : a === prev) {\r\n var n = currentIndex;\r\n while (n <= classTypes.length) {\r\n n++;\r\n var next = classTypes[n];\r\n if (next === b) {\r\n return true;\r\n }\r\n if (next !== SP) {\r\n break;\r\n }\r\n }\r\n }\r\n if (prev !== SP) {\r\n break;\r\n }\r\n }\r\n }\r\n return false;\r\n };\r\n var previousNonSpaceClassType = function (currentIndex, classTypes) {\r\n var i = currentIndex;\r\n while (i >= 0) {\r\n var type = classTypes[i];\r\n if (type === SP) {\r\n i--;\r\n }\r\n else {\r\n return type;\r\n }\r\n }\r\n return 0;\r\n };\r\n var _lineBreakAtIndex = function (codePoints, classTypes, indicies, index, forbiddenBreaks) {\r\n if (indicies[index] === 0) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n var currentIndex = index - 1;\r\n if (Array.isArray(forbiddenBreaks) && forbiddenBreaks[currentIndex] === true) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n var beforeIndex = currentIndex - 1;\r\n var afterIndex = currentIndex + 1;\r\n var current = classTypes[currentIndex];\r\n // LB4 Always break after hard line breaks.\r\n // LB5 Treat CR followed by LF, as well as CR, LF, and NL as hard line breaks.\r\n var before = beforeIndex >= 0 ? classTypes[beforeIndex] : 0;\r\n var next = classTypes[afterIndex];\r\n if (current === CR && next === LF) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n if (HARD_LINE_BREAKS.indexOf(current) !== -1) {\r\n return BREAK_MANDATORY;\r\n }\r\n // LB6 Do not break before hard line breaks.\r\n if (HARD_LINE_BREAKS.indexOf(next) !== -1) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB7 Do not break before spaces or zero width space.\r\n if (SPACE.indexOf(next) !== -1) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB8 Break before any character following a zero-width space, even if one or more spaces intervene.\r\n if (previousNonSpaceClassType(currentIndex, classTypes) === ZW) {\r\n return BREAK_ALLOWED;\r\n }\r\n // LB8a Do not break between a zero width joiner and an ideograph, emoji base or emoji modifier.\r\n if (UnicodeTrie.get(codePoints[currentIndex]) === ZWJ && (next === ID || next === EB || next === EM)) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB11 Do not break before or after Word joiner and related characters.\r\n if (current === WJ || next === WJ) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB12 Do not break after NBSP and related characters.\r\n if (current === GL) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB12a Do not break before NBSP and related characters, except after spaces and hyphens.\r\n if ([SP, BA, HY].indexOf(current) === -1 && next === GL) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB13 Do not break before ‘]’ or ‘!’ or ‘;’ or ‘/’, even after spaces.\r\n if ([CL, CP, EX, IS, SY].indexOf(next) !== -1) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB14 Do not break after ‘[’, even after spaces.\r\n if (previousNonSpaceClassType(currentIndex, classTypes) === OP) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB15 Do not break within ‘”[’, even with intervening spaces.\r\n if (isAdjacentWithSpaceIgnored(QU, OP, currentIndex, classTypes)) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB16 Do not break between closing punctuation and a nonstarter (lb=NS), even with intervening spaces.\r\n if (isAdjacentWithSpaceIgnored([CL, CP], NS, currentIndex, classTypes)) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB17 Do not break within ‘——’, even with intervening spaces.\r\n if (isAdjacentWithSpaceIgnored(B2, B2, currentIndex, classTypes)) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB18 Break after spaces.\r\n if (current === SP) {\r\n return BREAK_ALLOWED;\r\n }\r\n // LB19 Do not break before or after quotation marks, such as ‘ ” ’.\r\n if (current === QU || next === QU) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB20 Break before and after unresolved CB.\r\n if (next === CB || current === CB) {\r\n return BREAK_ALLOWED;\r\n }\r\n // LB21 Do not break before hyphen-minus, other hyphens, fixed-width spaces, small kana, and other non-starters, or after acute accents.\r\n if ([BA, HY, NS].indexOf(next) !== -1 || current === BB) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB21a Don't break after Hebrew + Hyphen.\r\n if (before === HL && HYPHEN.indexOf(current) !== -1) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB21b Don’t break between Solidus and Hebrew letters.\r\n if (current === SY && next === HL) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB22 Do not break between two ellipses, or between letters, numbers or exclamations and ellipsis.\r\n if (next === IN && ALPHABETICS.concat(IN, EX, NU, ID, EB, EM).indexOf(current) !== -1) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB23 Do not break between digits and letters.\r\n if ((ALPHABETICS.indexOf(next) !== -1 && current === NU) || (ALPHABETICS.indexOf(current) !== -1 && next === NU)) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB23a Do not break between numeric prefixes and ideographs, or between ideographs and numeric postfixes.\r\n if ((current === PR && [ID, EB, EM].indexOf(next) !== -1) ||\r\n ([ID, EB, EM].indexOf(current) !== -1 && next === PO)) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB24 Do not break between numeric prefix/postfix and letters, or between letters and prefix/postfix.\r\n if ((ALPHABETICS.indexOf(current) !== -1 && PREFIX_POSTFIX.indexOf(next) !== -1) ||\r\n (PREFIX_POSTFIX.indexOf(current) !== -1 && ALPHABETICS.indexOf(next) !== -1)) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB25 Do not break between the following pairs of classes relevant to numbers:\r\n if (\r\n // (PR | PO) × ( OP | HY )? NU\r\n ([PR, PO].indexOf(current) !== -1 &&\r\n (next === NU || ([OP, HY].indexOf(next) !== -1 && classTypes[afterIndex + 1] === NU))) ||\r\n // ( OP | HY ) × NU\r\n ([OP, HY].indexOf(current) !== -1 && next === NU) ||\r\n // NU ×\t(NU | SY | IS)\r\n (current === NU && [NU, SY, IS].indexOf(next) !== -1)) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // NU (NU | SY | IS)* × (NU | SY | IS | CL | CP)\r\n if ([NU, SY, IS, CL, CP].indexOf(next) !== -1) {\r\n var prevIndex = currentIndex;\r\n while (prevIndex >= 0) {\r\n var type = classTypes[prevIndex];\r\n if (type === NU) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n else if ([SY, IS].indexOf(type) !== -1) {\r\n prevIndex--;\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n }\r\n // NU (NU | SY | IS)* (CL | CP)? × (PO | PR))\r\n if ([PR, PO].indexOf(next) !== -1) {\r\n var prevIndex = [CL, CP].indexOf(current) !== -1 ? beforeIndex : currentIndex;\r\n while (prevIndex >= 0) {\r\n var type = classTypes[prevIndex];\r\n if (type === NU) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n else if ([SY, IS].indexOf(type) !== -1) {\r\n prevIndex--;\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n }\r\n // LB26 Do not break a Korean syllable.\r\n if ((JL === current && [JL, JV, H2, H3].indexOf(next) !== -1) ||\r\n ([JV, H2].indexOf(current) !== -1 && [JV, JT].indexOf(next) !== -1) ||\r\n ([JT, H3].indexOf(current) !== -1 && next === JT)) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB27 Treat a Korean Syllable Block the same as ID.\r\n if ((KOREAN_SYLLABLE_BLOCK.indexOf(current) !== -1 && [IN, PO].indexOf(next) !== -1) ||\r\n (KOREAN_SYLLABLE_BLOCK.indexOf(next) !== -1 && current === PR)) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB28 Do not break between alphabetics (“at”).\r\n if (ALPHABETICS.indexOf(current) !== -1 && ALPHABETICS.indexOf(next) !== -1) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB29 Do not break between numeric punctuation and alphabetics (“e.g.”).\r\n if (current === IS && ALPHABETICS.indexOf(next) !== -1) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB30 Do not break between letters, numbers, or ordinary symbols and opening or closing parentheses.\r\n if ((ALPHABETICS.concat(NU).indexOf(current) !== -1 && next === OP) ||\r\n (ALPHABETICS.concat(NU).indexOf(next) !== -1 && current === CP)) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB30a Break between two regional indicator symbols if and only if there are an even number of regional\r\n // indicators preceding the position of the break.\r\n if (current === RI && next === RI) {\r\n var i = indicies[currentIndex];\r\n var count = 1;\r\n while (i > 0) {\r\n i--;\r\n if (classTypes[i] === RI) {\r\n count++;\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n if (count % 2 !== 0) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n }\r\n // LB30b Do not break between an emoji base and an emoji modifier.\r\n if (current === EB && next === EM) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n return BREAK_ALLOWED;\r\n };\r\n var cssFormattedClasses = function (codePoints, options) {\r\n if (!options) {\r\n options = { lineBreak: 'normal', wordBreak: 'normal' };\r\n }\r\n var _a = codePointsToCharacterClasses(codePoints, options.lineBreak), indicies = _a[0], classTypes = _a[1], isLetterNumber = _a[2];\r\n if (options.wordBreak === 'break-all' || options.wordBreak === 'break-word') {\r\n classTypes = classTypes.map(function (type) { return ([NU, AL, SA].indexOf(type) !== -1 ? ID : type); });\r\n }\r\n var forbiddenBreakpoints = options.wordBreak === 'keep-all'\r\n ? isLetterNumber.map(function (letterNumber, i) {\r\n return letterNumber && codePoints[i] >= 0x4e00 && codePoints[i] <= 0x9fff;\r\n })\r\n : undefined;\r\n return [indicies, classTypes, forbiddenBreakpoints];\r\n };\r\n var Break = /** @class */ (function () {\r\n function Break(codePoints, lineBreak, start, end) {\r\n this.codePoints = codePoints;\r\n this.required = lineBreak === BREAK_MANDATORY;\r\n this.start = start;\r\n this.end = end;\r\n }\r\n Break.prototype.slice = function () {\r\n return fromCodePoint.apply(void 0, this.codePoints.slice(this.start, this.end));\r\n };\r\n return Break;\r\n }());\r\n var LineBreaker = function (str, options) {\r\n var codePoints = toCodePoints(str);\r\n var _a = cssFormattedClasses(codePoints, options), indicies = _a[0], classTypes = _a[1], forbiddenBreakpoints = _a[2];\r\n var length = codePoints.length;\r\n var lastEnd = 0;\r\n var nextIndex = 0;\r\n return {\r\n next: function () {\r\n if (nextIndex >= length) {\r\n return { done: true, value: null };\r\n }\r\n var lineBreak = BREAK_NOT_ALLOWED;\r\n while (nextIndex < length &&\r\n (lineBreak = _lineBreakAtIndex(codePoints, classTypes, indicies, ++nextIndex, forbiddenBreakpoints)) ===\r\n BREAK_NOT_ALLOWED) { }\r\n if (lineBreak !== BREAK_NOT_ALLOWED || nextIndex === length) {\r\n var value = new Break(codePoints, lineBreak, lastEnd, nextIndex);\r\n lastEnd = nextIndex;\r\n return { value: value, done: false };\r\n }\r\n return { done: true, value: null };\r\n },\r\n };\r\n };\n\n // https://www.w3.org/TR/css-syntax-3\r\n var TokenType;\r\n (function (TokenType) {\r\n TokenType[TokenType[\"STRING_TOKEN\"] = 0] = \"STRING_TOKEN\";\r\n TokenType[TokenType[\"BAD_STRING_TOKEN\"] = 1] = \"BAD_STRING_TOKEN\";\r\n TokenType[TokenType[\"LEFT_PARENTHESIS_TOKEN\"] = 2] = \"LEFT_PARENTHESIS_TOKEN\";\r\n TokenType[TokenType[\"RIGHT_PARENTHESIS_TOKEN\"] = 3] = \"RIGHT_PARENTHESIS_TOKEN\";\r\n TokenType[TokenType[\"COMMA_TOKEN\"] = 4] = \"COMMA_TOKEN\";\r\n TokenType[TokenType[\"HASH_TOKEN\"] = 5] = \"HASH_TOKEN\";\r\n TokenType[TokenType[\"DELIM_TOKEN\"] = 6] = \"DELIM_TOKEN\";\r\n TokenType[TokenType[\"AT_KEYWORD_TOKEN\"] = 7] = \"AT_KEYWORD_TOKEN\";\r\n TokenType[TokenType[\"PREFIX_MATCH_TOKEN\"] = 8] = \"PREFIX_MATCH_TOKEN\";\r\n TokenType[TokenType[\"DASH_MATCH_TOKEN\"] = 9] = \"DASH_MATCH_TOKEN\";\r\n TokenType[TokenType[\"INCLUDE_MATCH_TOKEN\"] = 10] = \"INCLUDE_MATCH_TOKEN\";\r\n TokenType[TokenType[\"LEFT_CURLY_BRACKET_TOKEN\"] = 11] = \"LEFT_CURLY_BRACKET_TOKEN\";\r\n TokenType[TokenType[\"RIGHT_CURLY_BRACKET_TOKEN\"] = 12] = \"RIGHT_CURLY_BRACKET_TOKEN\";\r\n TokenType[TokenType[\"SUFFIX_MATCH_TOKEN\"] = 13] = \"SUFFIX_MATCH_TOKEN\";\r\n TokenType[TokenType[\"SUBSTRING_MATCH_TOKEN\"] = 14] = \"SUBSTRING_MATCH_TOKEN\";\r\n TokenType[TokenType[\"DIMENSION_TOKEN\"] = 15] = \"DIMENSION_TOKEN\";\r\n TokenType[TokenType[\"PERCENTAGE_TOKEN\"] = 16] = \"PERCENTAGE_TOKEN\";\r\n TokenType[TokenType[\"NUMBER_TOKEN\"] = 17] = \"NUMBER_TOKEN\";\r\n TokenType[TokenType[\"FUNCTION\"] = 18] = \"FUNCTION\";\r\n TokenType[TokenType[\"FUNCTION_TOKEN\"] = 19] = \"FUNCTION_TOKEN\";\r\n TokenType[TokenType[\"IDENT_TOKEN\"] = 20] = \"IDENT_TOKEN\";\r\n TokenType[TokenType[\"COLUMN_TOKEN\"] = 21] = \"COLUMN_TOKEN\";\r\n TokenType[TokenType[\"URL_TOKEN\"] = 22] = \"URL_TOKEN\";\r\n TokenType[TokenType[\"BAD_URL_TOKEN\"] = 23] = \"BAD_URL_TOKEN\";\r\n TokenType[TokenType[\"CDC_TOKEN\"] = 24] = \"CDC_TOKEN\";\r\n TokenType[TokenType[\"CDO_TOKEN\"] = 25] = \"CDO_TOKEN\";\r\n TokenType[TokenType[\"COLON_TOKEN\"] = 26] = \"COLON_TOKEN\";\r\n TokenType[TokenType[\"SEMICOLON_TOKEN\"] = 27] = \"SEMICOLON_TOKEN\";\r\n TokenType[TokenType[\"LEFT_SQUARE_BRACKET_TOKEN\"] = 28] = \"LEFT_SQUARE_BRACKET_TOKEN\";\r\n TokenType[TokenType[\"RIGHT_SQUARE_BRACKET_TOKEN\"] = 29] = \"RIGHT_SQUARE_BRACKET_TOKEN\";\r\n TokenType[TokenType[\"UNICODE_RANGE_TOKEN\"] = 30] = \"UNICODE_RANGE_TOKEN\";\r\n TokenType[TokenType[\"WHITESPACE_TOKEN\"] = 31] = \"WHITESPACE_TOKEN\";\r\n TokenType[TokenType[\"EOF_TOKEN\"] = 32] = \"EOF_TOKEN\";\r\n })(TokenType || (TokenType = {}));\r\n var FLAG_UNRESTRICTED = 1 << 0;\r\n var FLAG_ID = 1 << 1;\r\n var FLAG_INTEGER = 1 << 2;\r\n var FLAG_NUMBER = 1 << 3;\r\n var LINE_FEED = 0x000a;\r\n var SOLIDUS = 0x002f;\r\n var REVERSE_SOLIDUS = 0x005c;\r\n var CHARACTER_TABULATION = 0x0009;\r\n var SPACE$1 = 0x0020;\r\n var QUOTATION_MARK = 0x0022;\r\n var EQUALS_SIGN = 0x003d;\r\n var NUMBER_SIGN = 0x0023;\r\n var DOLLAR_SIGN = 0x0024;\r\n var PERCENTAGE_SIGN = 0x0025;\r\n var APOSTROPHE = 0x0027;\r\n var LEFT_PARENTHESIS = 0x0028;\r\n var RIGHT_PARENTHESIS = 0x0029;\r\n var LOW_LINE = 0x005f;\r\n var HYPHEN_MINUS = 0x002d;\r\n var EXCLAMATION_MARK = 0x0021;\r\n var LESS_THAN_SIGN = 0x003c;\r\n var GREATER_THAN_SIGN = 0x003e;\r\n var COMMERCIAL_AT = 0x0040;\r\n var LEFT_SQUARE_BRACKET = 0x005b;\r\n var RIGHT_SQUARE_BRACKET = 0x005d;\r\n var CIRCUMFLEX_ACCENT = 0x003d;\r\n var LEFT_CURLY_BRACKET = 0x007b;\r\n var QUESTION_MARK = 0x003f;\r\n var RIGHT_CURLY_BRACKET = 0x007d;\r\n var VERTICAL_LINE = 0x007c;\r\n var TILDE = 0x007e;\r\n var CONTROL = 0x0080;\r\n var REPLACEMENT_CHARACTER = 0xfffd;\r\n var ASTERISK = 0x002a;\r\n var PLUS_SIGN = 0x002b;\r\n var COMMA = 0x002c;\r\n var COLON = 0x003a;\r\n var SEMICOLON = 0x003b;\r\n var FULL_STOP = 0x002e;\r\n var NULL = 0x0000;\r\n var BACKSPACE = 0x0008;\r\n var LINE_TABULATION = 0x000b;\r\n var SHIFT_OUT = 0x000e;\r\n var INFORMATION_SEPARATOR_ONE = 0x001f;\r\n var DELETE = 0x007f;\r\n var EOF = -1;\r\n var ZERO = 0x0030;\r\n var a = 0x0061;\r\n var e = 0x0065;\r\n var f = 0x0066;\r\n var u = 0x0075;\r\n var z = 0x007a;\r\n var A = 0x0041;\r\n var E = 0x0045;\r\n var F = 0x0046;\r\n var U = 0x0055;\r\n var Z = 0x005a;\r\n var isDigit = function (codePoint) { return codePoint >= ZERO && codePoint <= 0x0039; };\r\n var isSurrogateCodePoint = function (codePoint) { return codePoint >= 0xd800 && codePoint <= 0xdfff; };\r\n var isHex = function (codePoint) {\r\n return isDigit(codePoint) || (codePoint >= A && codePoint <= F) || (codePoint >= a && codePoint <= f);\r\n };\r\n var isLowerCaseLetter = function (codePoint) { return codePoint >= a && codePoint <= z; };\r\n var isUpperCaseLetter = function (codePoint) { return codePoint >= A && codePoint <= Z; };\r\n var isLetter = function (codePoint) { return isLowerCaseLetter(codePoint) || isUpperCaseLetter(codePoint); };\r\n var isNonASCIICodePoint = function (codePoint) { return codePoint >= CONTROL; };\r\n var isWhiteSpace = function (codePoint) {\r\n return codePoint === LINE_FEED || codePoint === CHARACTER_TABULATION || codePoint === SPACE$1;\r\n };\r\n var isNameStartCodePoint = function (codePoint) {\r\n return isLetter(codePoint) || isNonASCIICodePoint(codePoint) || codePoint === LOW_LINE;\r\n };\r\n var isNameCodePoint = function (codePoint) {\r\n return isNameStartCodePoint(codePoint) || isDigit(codePoint) || codePoint === HYPHEN_MINUS;\r\n };\r\n var isNonPrintableCodePoint = function (codePoint) {\r\n return ((codePoint >= NULL && codePoint <= BACKSPACE) ||\r\n codePoint === LINE_TABULATION ||\r\n (codePoint >= SHIFT_OUT && codePoint <= INFORMATION_SEPARATOR_ONE) ||\r\n codePoint === DELETE);\r\n };\r\n var isValidEscape = function (c1, c2) {\r\n if (c1 !== REVERSE_SOLIDUS) {\r\n return false;\r\n }\r\n return c2 !== LINE_FEED;\r\n };\r\n var isIdentifierStart = function (c1, c2, c3) {\r\n if (c1 === HYPHEN_MINUS) {\r\n return isNameStartCodePoint(c2) || isValidEscape(c2, c3);\r\n }\r\n else if (isNameStartCodePoint(c1)) {\r\n return true;\r\n }\r\n else if (c1 === REVERSE_SOLIDUS && isValidEscape(c1, c2)) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n var isNumberStart = function (c1, c2, c3) {\r\n if (c1 === PLUS_SIGN || c1 === HYPHEN_MINUS) {\r\n if (isDigit(c2)) {\r\n return true;\r\n }\r\n return c2 === FULL_STOP && isDigit(c3);\r\n }\r\n if (c1 === FULL_STOP) {\r\n return isDigit(c2);\r\n }\r\n return isDigit(c1);\r\n };\r\n var stringToNumber = function (codePoints) {\r\n var c = 0;\r\n var sign = 1;\r\n if (codePoints[c] === PLUS_SIGN || codePoints[c] === HYPHEN_MINUS) {\r\n if (codePoints[c] === HYPHEN_MINUS) {\r\n sign = -1;\r\n }\r\n c++;\r\n }\r\n var integers = [];\r\n while (isDigit(codePoints[c])) {\r\n integers.push(codePoints[c++]);\r\n }\r\n var int = integers.length ? parseInt(fromCodePoint.apply(void 0, integers), 10) : 0;\r\n if (codePoints[c] === FULL_STOP) {\r\n c++;\r\n }\r\n var fraction = [];\r\n while (isDigit(codePoints[c])) {\r\n fraction.push(codePoints[c++]);\r\n }\r\n var fracd = fraction.length;\r\n var frac = fracd ? parseInt(fromCodePoint.apply(void 0, fraction), 10) : 0;\r\n if (codePoints[c] === E || codePoints[c] === e) {\r\n c++;\r\n }\r\n var expsign = 1;\r\n if (codePoints[c] === PLUS_SIGN || codePoints[c] === HYPHEN_MINUS) {\r\n if (codePoints[c] === HYPHEN_MINUS) {\r\n expsign = -1;\r\n }\r\n c++;\r\n }\r\n var exponent = [];\r\n while (isDigit(codePoints[c])) {\r\n exponent.push(codePoints[c++]);\r\n }\r\n var exp = exponent.length ? parseInt(fromCodePoint.apply(void 0, exponent), 10) : 0;\r\n return sign * (int + frac * Math.pow(10, -fracd)) * Math.pow(10, expsign * exp);\r\n };\r\n var LEFT_PARENTHESIS_TOKEN = {\r\n type: TokenType.LEFT_PARENTHESIS_TOKEN\r\n };\r\n var RIGHT_PARENTHESIS_TOKEN = {\r\n type: TokenType.RIGHT_PARENTHESIS_TOKEN\r\n };\r\n var COMMA_TOKEN = { type: TokenType.COMMA_TOKEN };\r\n var SUFFIX_MATCH_TOKEN = { type: TokenType.SUFFIX_MATCH_TOKEN };\r\n var PREFIX_MATCH_TOKEN = { type: TokenType.PREFIX_MATCH_TOKEN };\r\n var COLUMN_TOKEN = { type: TokenType.COLUMN_TOKEN };\r\n var DASH_MATCH_TOKEN = { type: TokenType.DASH_MATCH_TOKEN };\r\n var INCLUDE_MATCH_TOKEN = { type: TokenType.INCLUDE_MATCH_TOKEN };\r\n var LEFT_CURLY_BRACKET_TOKEN = {\r\n type: TokenType.LEFT_CURLY_BRACKET_TOKEN\r\n };\r\n var RIGHT_CURLY_BRACKET_TOKEN = {\r\n type: TokenType.RIGHT_CURLY_BRACKET_TOKEN\r\n };\r\n var SUBSTRING_MATCH_TOKEN = { type: TokenType.SUBSTRING_MATCH_TOKEN };\r\n var BAD_URL_TOKEN = { type: TokenType.BAD_URL_TOKEN };\r\n var BAD_STRING_TOKEN = { type: TokenType.BAD_STRING_TOKEN };\r\n var CDO_TOKEN = { type: TokenType.CDO_TOKEN };\r\n var CDC_TOKEN = { type: TokenType.CDC_TOKEN };\r\n var COLON_TOKEN = { type: TokenType.COLON_TOKEN };\r\n var SEMICOLON_TOKEN = { type: TokenType.SEMICOLON_TOKEN };\r\n var LEFT_SQUARE_BRACKET_TOKEN = {\r\n type: TokenType.LEFT_SQUARE_BRACKET_TOKEN\r\n };\r\n var RIGHT_SQUARE_BRACKET_TOKEN = {\r\n type: TokenType.RIGHT_SQUARE_BRACKET_TOKEN\r\n };\r\n var WHITESPACE_TOKEN = { type: TokenType.WHITESPACE_TOKEN };\r\n var EOF_TOKEN = { type: TokenType.EOF_TOKEN };\r\n var Tokenizer = /** @class */ (function () {\r\n function Tokenizer() {\r\n this._value = [];\r\n }\r\n Tokenizer.prototype.write = function (chunk) {\r\n this._value = this._value.concat(toCodePoints(chunk));\r\n };\r\n Tokenizer.prototype.read = function () {\r\n var tokens = [];\r\n var token = this.consumeToken();\r\n while (token !== EOF_TOKEN) {\r\n tokens.push(token);\r\n token = this.consumeToken();\r\n }\r\n return tokens;\r\n };\r\n Tokenizer.prototype.consumeToken = function () {\r\n var codePoint = this.consumeCodePoint();\r\n switch (codePoint) {\r\n case QUOTATION_MARK:\r\n return this.consumeStringToken(QUOTATION_MARK);\r\n case NUMBER_SIGN:\r\n var c1 = this.peekCodePoint(0);\r\n var c2 = this.peekCodePoint(1);\r\n var c3 = this.peekCodePoint(2);\r\n if (isNameCodePoint(c1) || isValidEscape(c2, c3)) {\r\n var flags = isIdentifierStart(c1, c2, c3) ? FLAG_ID : FLAG_UNRESTRICTED;\r\n var value = this.consumeName();\r\n return { type: TokenType.HASH_TOKEN, value: value, flags: flags };\r\n }\r\n break;\r\n case DOLLAR_SIGN:\r\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\r\n this.consumeCodePoint();\r\n return SUFFIX_MATCH_TOKEN;\r\n }\r\n break;\r\n case APOSTROPHE:\r\n return this.consumeStringToken(APOSTROPHE);\r\n case LEFT_PARENTHESIS:\r\n return LEFT_PARENTHESIS_TOKEN;\r\n case RIGHT_PARENTHESIS:\r\n return RIGHT_PARENTHESIS_TOKEN;\r\n case ASTERISK:\r\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\r\n this.consumeCodePoint();\r\n return SUBSTRING_MATCH_TOKEN;\r\n }\r\n break;\r\n case PLUS_SIGN:\r\n if (isNumberStart(codePoint, this.peekCodePoint(0), this.peekCodePoint(1))) {\r\n this.reconsumeCodePoint(codePoint);\r\n return this.consumeNumericToken();\r\n }\r\n break;\r\n case COMMA:\r\n return COMMA_TOKEN;\r\n case HYPHEN_MINUS:\r\n var e1 = codePoint;\r\n var e2 = this.peekCodePoint(0);\r\n var e3 = this.peekCodePoint(1);\r\n if (isNumberStart(e1, e2, e3)) {\r\n this.reconsumeCodePoint(codePoint);\r\n return this.consumeNumericToken();\r\n }\r\n if (isIdentifierStart(e1, e2, e3)) {\r\n this.reconsumeCodePoint(codePoint);\r\n return this.consumeIdentLikeToken();\r\n }\r\n if (e2 === HYPHEN_MINUS && e3 === GREATER_THAN_SIGN) {\r\n this.consumeCodePoint();\r\n this.consumeCodePoint();\r\n return CDC_TOKEN;\r\n }\r\n break;\r\n case FULL_STOP:\r\n if (isNumberStart(codePoint, this.peekCodePoint(0), this.peekCodePoint(1))) {\r\n this.reconsumeCodePoint(codePoint);\r\n return this.consumeNumericToken();\r\n }\r\n break;\r\n case SOLIDUS:\r\n if (this.peekCodePoint(0) === ASTERISK) {\r\n this.consumeCodePoint();\r\n while (true) {\r\n var c = this.consumeCodePoint();\r\n if (c === ASTERISK) {\r\n c = this.consumeCodePoint();\r\n if (c === SOLIDUS) {\r\n return this.consumeToken();\r\n }\r\n }\r\n if (c === EOF) {\r\n return this.consumeToken();\r\n }\r\n }\r\n }\r\n break;\r\n case COLON:\r\n return COLON_TOKEN;\r\n case SEMICOLON:\r\n return SEMICOLON_TOKEN;\r\n case LESS_THAN_SIGN:\r\n if (this.peekCodePoint(0) === EXCLAMATION_MARK &&\r\n this.peekCodePoint(1) === HYPHEN_MINUS &&\r\n this.peekCodePoint(2) === HYPHEN_MINUS) {\r\n this.consumeCodePoint();\r\n this.consumeCodePoint();\r\n return CDO_TOKEN;\r\n }\r\n break;\r\n case COMMERCIAL_AT:\r\n var a1 = this.peekCodePoint(0);\r\n var a2 = this.peekCodePoint(1);\r\n var a3 = this.peekCodePoint(2);\r\n if (isIdentifierStart(a1, a2, a3)) {\r\n var value = this.consumeName();\r\n return { type: TokenType.AT_KEYWORD_TOKEN, value: value };\r\n }\r\n break;\r\n case LEFT_SQUARE_BRACKET:\r\n return LEFT_SQUARE_BRACKET_TOKEN;\r\n case REVERSE_SOLIDUS:\r\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\r\n this.reconsumeCodePoint(codePoint);\r\n return this.consumeIdentLikeToken();\r\n }\r\n break;\r\n case RIGHT_SQUARE_BRACKET:\r\n return RIGHT_SQUARE_BRACKET_TOKEN;\r\n case CIRCUMFLEX_ACCENT:\r\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\r\n this.consumeCodePoint();\r\n return PREFIX_MATCH_TOKEN;\r\n }\r\n break;\r\n case LEFT_CURLY_BRACKET:\r\n return LEFT_CURLY_BRACKET_TOKEN;\r\n case RIGHT_CURLY_BRACKET:\r\n return RIGHT_CURLY_BRACKET_TOKEN;\r\n case u:\r\n case U:\r\n var u1 = this.peekCodePoint(0);\r\n var u2 = this.peekCodePoint(1);\r\n if (u1 === PLUS_SIGN && (isHex(u2) || u2 === QUESTION_MARK)) {\r\n this.consumeCodePoint();\r\n this.consumeUnicodeRangeToken();\r\n }\r\n this.reconsumeCodePoint(codePoint);\r\n return this.consumeIdentLikeToken();\r\n case VERTICAL_LINE:\r\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\r\n this.consumeCodePoint();\r\n return DASH_MATCH_TOKEN;\r\n }\r\n if (this.peekCodePoint(0) === VERTICAL_LINE) {\r\n this.consumeCodePoint();\r\n return COLUMN_TOKEN;\r\n }\r\n break;\r\n case TILDE:\r\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\r\n this.consumeCodePoint();\r\n return INCLUDE_MATCH_TOKEN;\r\n }\r\n break;\r\n case EOF:\r\n return EOF_TOKEN;\r\n }\r\n if (isWhiteSpace(codePoint)) {\r\n this.consumeWhiteSpace();\r\n return WHITESPACE_TOKEN;\r\n }\r\n if (isDigit(codePoint)) {\r\n this.reconsumeCodePoint(codePoint);\r\n return this.consumeNumericToken();\r\n }\r\n if (isNameStartCodePoint(codePoint)) {\r\n this.reconsumeCodePoint(codePoint);\r\n return this.consumeIdentLikeToken();\r\n }\r\n return { type: TokenType.DELIM_TOKEN, value: fromCodePoint(codePoint) };\r\n };\r\n Tokenizer.prototype.consumeCodePoint = function () {\r\n var value = this._value.shift();\r\n return typeof value === 'undefined' ? -1 : value;\r\n };\r\n Tokenizer.prototype.reconsumeCodePoint = function (codePoint) {\r\n this._value.unshift(codePoint);\r\n };\r\n Tokenizer.prototype.peekCodePoint = function (delta) {\r\n if (delta >= this._value.length) {\r\n return -1;\r\n }\r\n return this._value[delta];\r\n };\r\n Tokenizer.prototype.consumeUnicodeRangeToken = function () {\r\n var digits = [];\r\n var codePoint = this.consumeCodePoint();\r\n while (isHex(codePoint) && digits.length < 6) {\r\n digits.push(codePoint);\r\n codePoint = this.consumeCodePoint();\r\n }\r\n var questionMarks = false;\r\n while (codePoint === QUESTION_MARK && digits.length < 6) {\r\n digits.push(codePoint);\r\n codePoint = this.consumeCodePoint();\r\n questionMarks = true;\r\n }\r\n if (questionMarks) {\r\n var start_1 = parseInt(fromCodePoint.apply(void 0, digits.map(function (digit) { return (digit === QUESTION_MARK ? ZERO : digit); })), 16);\r\n var end = parseInt(fromCodePoint.apply(void 0, digits.map(function (digit) { return (digit === QUESTION_MARK ? F : digit); })), 16);\r\n return { type: TokenType.UNICODE_RANGE_TOKEN, start: start_1, end: end };\r\n }\r\n var start = parseInt(fromCodePoint.apply(void 0, digits), 16);\r\n if (this.peekCodePoint(0) === HYPHEN_MINUS && isHex(this.peekCodePoint(1))) {\r\n this.consumeCodePoint();\r\n codePoint = this.consumeCodePoint();\r\n var endDigits = [];\r\n while (isHex(codePoint) && endDigits.length < 6) {\r\n endDigits.push(codePoint);\r\n codePoint = this.consumeCodePoint();\r\n }\r\n var end = parseInt(fromCodePoint.apply(void 0, endDigits), 16);\r\n return { type: TokenType.UNICODE_RANGE_TOKEN, start: start, end: end };\r\n }\r\n else {\r\n return { type: TokenType.UNICODE_RANGE_TOKEN, start: start, end: start };\r\n }\r\n };\r\n Tokenizer.prototype.consumeIdentLikeToken = function () {\r\n var value = this.consumeName();\r\n if (value.toLowerCase() === 'url' && this.peekCodePoint(0) === LEFT_PARENTHESIS) {\r\n this.consumeCodePoint();\r\n return this.consumeUrlToken();\r\n }\r\n else if (this.peekCodePoint(0) === LEFT_PARENTHESIS) {\r\n this.consumeCodePoint();\r\n return { type: TokenType.FUNCTION_TOKEN, value: value };\r\n }\r\n return { type: TokenType.IDENT_TOKEN, value: value };\r\n };\r\n Tokenizer.prototype.consumeUrlToken = function () {\r\n var value = [];\r\n this.consumeWhiteSpace();\r\n if (this.peekCodePoint(0) === EOF) {\r\n return { type: TokenType.URL_TOKEN, value: '' };\r\n }\r\n var next = this.peekCodePoint(0);\r\n if (next === APOSTROPHE || next === QUOTATION_MARK) {\r\n var stringToken = this.consumeStringToken(this.consumeCodePoint());\r\n if (stringToken.type === TokenType.STRING_TOKEN) {\r\n this.consumeWhiteSpace();\r\n if (this.peekCodePoint(0) === EOF || this.peekCodePoint(0) === RIGHT_PARENTHESIS) {\r\n this.consumeCodePoint();\r\n return { type: TokenType.URL_TOKEN, value: stringToken.value };\r\n }\r\n }\r\n this.consumeBadUrlRemnants();\r\n return BAD_URL_TOKEN;\r\n }\r\n while (true) {\r\n var codePoint = this.consumeCodePoint();\r\n if (codePoint === EOF || codePoint === RIGHT_PARENTHESIS) {\r\n return { type: TokenType.URL_TOKEN, value: fromCodePoint.apply(void 0, value) };\r\n }\r\n else if (isWhiteSpace(codePoint)) {\r\n this.consumeWhiteSpace();\r\n if (this.peekCodePoint(0) === EOF || this.peekCodePoint(0) === RIGHT_PARENTHESIS) {\r\n this.consumeCodePoint();\r\n return { type: TokenType.URL_TOKEN, value: fromCodePoint.apply(void 0, value) };\r\n }\r\n this.consumeBadUrlRemnants();\r\n return BAD_URL_TOKEN;\r\n }\r\n else if (codePoint === QUOTATION_MARK ||\r\n codePoint === APOSTROPHE ||\r\n codePoint === LEFT_PARENTHESIS ||\r\n isNonPrintableCodePoint(codePoint)) {\r\n this.consumeBadUrlRemnants();\r\n return BAD_URL_TOKEN;\r\n }\r\n else if (codePoint === REVERSE_SOLIDUS) {\r\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\r\n value.push(this.consumeEscapedCodePoint());\r\n }\r\n else {\r\n this.consumeBadUrlRemnants();\r\n return BAD_URL_TOKEN;\r\n }\r\n }\r\n else {\r\n value.push(codePoint);\r\n }\r\n }\r\n };\r\n Tokenizer.prototype.consumeWhiteSpace = function () {\r\n while (isWhiteSpace(this.peekCodePoint(0))) {\r\n this.consumeCodePoint();\r\n }\r\n };\r\n Tokenizer.prototype.consumeBadUrlRemnants = function () {\r\n while (true) {\r\n var codePoint = this.consumeCodePoint();\r\n if (codePoint === RIGHT_PARENTHESIS || codePoint === EOF) {\r\n return;\r\n }\r\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\r\n this.consumeEscapedCodePoint();\r\n }\r\n }\r\n };\r\n Tokenizer.prototype.consumeStringSlice = function (count) {\r\n var SLICE_STACK_SIZE = 60000;\r\n var value = '';\r\n while (count > 0) {\r\n var amount = Math.min(SLICE_STACK_SIZE, count);\r\n value += fromCodePoint.apply(void 0, this._value.splice(0, amount));\r\n count -= amount;\r\n }\r\n this._value.shift();\r\n return value;\r\n };\r\n Tokenizer.prototype.consumeStringToken = function (endingCodePoint) {\r\n var value = '';\r\n var i = 0;\r\n do {\r\n var codePoint = this._value[i];\r\n if (codePoint === EOF || codePoint === undefined || codePoint === endingCodePoint) {\r\n value += this.consumeStringSlice(i);\r\n return { type: TokenType.STRING_TOKEN, value: value };\r\n }\r\n if (codePoint === LINE_FEED) {\r\n this._value.splice(0, i);\r\n return BAD_STRING_TOKEN;\r\n }\r\n if (codePoint === REVERSE_SOLIDUS) {\r\n var next = this._value[i + 1];\r\n if (next !== EOF && next !== undefined) {\r\n if (next === LINE_FEED) {\r\n value += this.consumeStringSlice(i);\r\n i = -1;\r\n this._value.shift();\r\n }\r\n else if (isValidEscape(codePoint, next)) {\r\n value += this.consumeStringSlice(i);\r\n value += fromCodePoint(this.consumeEscapedCodePoint());\r\n i = -1;\r\n }\r\n }\r\n }\r\n i++;\r\n } while (true);\r\n };\r\n Tokenizer.prototype.consumeNumber = function () {\r\n var repr = [];\r\n var type = FLAG_INTEGER;\r\n var c1 = this.peekCodePoint(0);\r\n if (c1 === PLUS_SIGN || c1 === HYPHEN_MINUS) {\r\n repr.push(this.consumeCodePoint());\r\n }\r\n while (isDigit(this.peekCodePoint(0))) {\r\n repr.push(this.consumeCodePoint());\r\n }\r\n c1 = this.peekCodePoint(0);\r\n var c2 = this.peekCodePoint(1);\r\n if (c1 === FULL_STOP && isDigit(c2)) {\r\n repr.push(this.consumeCodePoint(), this.consumeCodePoint());\r\n type = FLAG_NUMBER;\r\n while (isDigit(this.peekCodePoint(0))) {\r\n repr.push(this.consumeCodePoint());\r\n }\r\n }\r\n c1 = this.peekCodePoint(0);\r\n c2 = this.peekCodePoint(1);\r\n var c3 = this.peekCodePoint(2);\r\n if ((c1 === E || c1 === e) && (((c2 === PLUS_SIGN || c2 === HYPHEN_MINUS) && isDigit(c3)) || isDigit(c2))) {\r\n repr.push(this.consumeCodePoint(), this.consumeCodePoint());\r\n type = FLAG_NUMBER;\r\n while (isDigit(this.peekCodePoint(0))) {\r\n repr.push(this.consumeCodePoint());\r\n }\r\n }\r\n return [stringToNumber(repr), type];\r\n };\r\n Tokenizer.prototype.consumeNumericToken = function () {\r\n var _a = this.consumeNumber(), number = _a[0], flags = _a[1];\r\n var c1 = this.peekCodePoint(0);\r\n var c2 = this.peekCodePoint(1);\r\n var c3 = this.peekCodePoint(2);\r\n if (isIdentifierStart(c1, c2, c3)) {\r\n var unit = this.consumeName();\r\n return { type: TokenType.DIMENSION_TOKEN, number: number, flags: flags, unit: unit };\r\n }\r\n if (c1 === PERCENTAGE_SIGN) {\r\n this.consumeCodePoint();\r\n return { type: TokenType.PERCENTAGE_TOKEN, number: number, flags: flags };\r\n }\r\n return { type: TokenType.NUMBER_TOKEN, number: number, flags: flags };\r\n };\r\n Tokenizer.prototype.consumeEscapedCodePoint = function () {\r\n var codePoint = this.consumeCodePoint();\r\n if (isHex(codePoint)) {\r\n var hex = fromCodePoint(codePoint);\r\n while (isHex(this.peekCodePoint(0)) && hex.length < 6) {\r\n hex += fromCodePoint(this.consumeCodePoint());\r\n }\r\n if (isWhiteSpace(this.peekCodePoint(0))) {\r\n this.consumeCodePoint();\r\n }\r\n var hexCodePoint = parseInt(hex, 16);\r\n if (hexCodePoint === 0 || isSurrogateCodePoint(hexCodePoint) || hexCodePoint > 0x10ffff) {\r\n return REPLACEMENT_CHARACTER;\r\n }\r\n return hexCodePoint;\r\n }\r\n if (codePoint === EOF) {\r\n return REPLACEMENT_CHARACTER;\r\n }\r\n return codePoint;\r\n };\r\n Tokenizer.prototype.consumeName = function () {\r\n var result = '';\r\n while (true) {\r\n var codePoint = this.consumeCodePoint();\r\n if (isNameCodePoint(codePoint)) {\r\n result += fromCodePoint(codePoint);\r\n }\r\n else if (isValidEscape(codePoint, this.peekCodePoint(0))) {\r\n result += fromCodePoint(this.consumeEscapedCodePoint());\r\n }\r\n else {\r\n this.reconsumeCodePoint(codePoint);\r\n return result;\r\n }\r\n }\r\n };\r\n return Tokenizer;\r\n }());\n\n var Parser = /** @class */ (function () {\r\n function Parser(tokens) {\r\n this._tokens = tokens;\r\n }\r\n Parser.create = function (value) {\r\n var tokenizer = new Tokenizer();\r\n tokenizer.write(value);\r\n return new Parser(tokenizer.read());\r\n };\r\n Parser.parseValue = function (value) {\r\n return Parser.create(value).parseComponentValue();\r\n };\r\n Parser.parseValues = function (value) {\r\n return Parser.create(value).parseComponentValues();\r\n };\r\n Parser.prototype.parseComponentValue = function () {\r\n var token = this.consumeToken();\r\n while (token.type === TokenType.WHITESPACE_TOKEN) {\r\n token = this.consumeToken();\r\n }\r\n if (token.type === TokenType.EOF_TOKEN) {\r\n throw new SyntaxError(\"Error parsing CSS component value, unexpected EOF\");\r\n }\r\n this.reconsumeToken(token);\r\n var value = this.consumeComponentValue();\r\n do {\r\n token = this.consumeToken();\r\n } while (token.type === TokenType.WHITESPACE_TOKEN);\r\n if (token.type === TokenType.EOF_TOKEN) {\r\n return value;\r\n }\r\n throw new SyntaxError(\"Error parsing CSS component value, multiple values found when expecting only one\");\r\n };\r\n Parser.prototype.parseComponentValues = function () {\r\n var values = [];\r\n while (true) {\r\n var value = this.consumeComponentValue();\r\n if (value.type === TokenType.EOF_TOKEN) {\r\n return values;\r\n }\r\n values.push(value);\r\n values.push();\r\n }\r\n };\r\n Parser.prototype.consumeComponentValue = function () {\r\n var token = this.consumeToken();\r\n switch (token.type) {\r\n case TokenType.LEFT_CURLY_BRACKET_TOKEN:\r\n case TokenType.LEFT_SQUARE_BRACKET_TOKEN:\r\n case TokenType.LEFT_PARENTHESIS_TOKEN:\r\n return this.consumeSimpleBlock(token.type);\r\n case TokenType.FUNCTION_TOKEN:\r\n return this.consumeFunction(token);\r\n }\r\n return token;\r\n };\r\n Parser.prototype.consumeSimpleBlock = function (type) {\r\n var block = { type: type, values: [] };\r\n var token = this.consumeToken();\r\n while (true) {\r\n if (token.type === TokenType.EOF_TOKEN || isEndingTokenFor(token, type)) {\r\n return block;\r\n }\r\n this.reconsumeToken(token);\r\n block.values.push(this.consumeComponentValue());\r\n token = this.consumeToken();\r\n }\r\n };\r\n Parser.prototype.consumeFunction = function (functionToken) {\r\n var cssFunction = {\r\n name: functionToken.value,\r\n values: [],\r\n type: TokenType.FUNCTION\r\n };\r\n while (true) {\r\n var token = this.consumeToken();\r\n if (token.type === TokenType.EOF_TOKEN || token.type === TokenType.RIGHT_PARENTHESIS_TOKEN) {\r\n return cssFunction;\r\n }\r\n this.reconsumeToken(token);\r\n cssFunction.values.push(this.consumeComponentValue());\r\n }\r\n };\r\n Parser.prototype.consumeToken = function () {\r\n var token = this._tokens.shift();\r\n return typeof token === 'undefined' ? EOF_TOKEN : token;\r\n };\r\n Parser.prototype.reconsumeToken = function (token) {\r\n this._tokens.unshift(token);\r\n };\r\n return Parser;\r\n }());\r\n var isDimensionToken = function (token) { return token.type === TokenType.DIMENSION_TOKEN; };\r\n var isNumberToken = function (token) { return token.type === TokenType.NUMBER_TOKEN; };\r\n var isIdentToken = function (token) { return token.type === TokenType.IDENT_TOKEN; };\r\n var isStringToken = function (token) { return token.type === TokenType.STRING_TOKEN; };\r\n var isIdentWithValue = function (token, value) {\r\n return isIdentToken(token) && token.value === value;\r\n };\r\n var nonWhiteSpace = function (token) { return token.type !== TokenType.WHITESPACE_TOKEN; };\r\n var nonFunctionArgSeparator = function (token) {\r\n return token.type !== TokenType.WHITESPACE_TOKEN && token.type !== TokenType.COMMA_TOKEN;\r\n };\r\n var parseFunctionArgs = function (tokens) {\r\n var args = [];\r\n var arg = [];\r\n tokens.forEach(function (token) {\r\n if (token.type === TokenType.COMMA_TOKEN) {\r\n if (arg.length === 0) {\r\n throw new Error(\"Error parsing function args, zero tokens for arg\");\r\n }\r\n args.push(arg);\r\n arg = [];\r\n return;\r\n }\r\n if (token.type !== TokenType.WHITESPACE_TOKEN) {\r\n arg.push(token);\r\n }\r\n });\r\n if (arg.length) {\r\n args.push(arg);\r\n }\r\n return args;\r\n };\r\n var isEndingTokenFor = function (token, type) {\r\n if (type === TokenType.LEFT_CURLY_BRACKET_TOKEN && token.type === TokenType.RIGHT_CURLY_BRACKET_TOKEN) {\r\n return true;\r\n }\r\n if (type === TokenType.LEFT_SQUARE_BRACKET_TOKEN && token.type === TokenType.RIGHT_SQUARE_BRACKET_TOKEN) {\r\n return true;\r\n }\r\n return type === TokenType.LEFT_PARENTHESIS_TOKEN && token.type === TokenType.RIGHT_PARENTHESIS_TOKEN;\r\n };\n\n var isLength = function (token) {\r\n return token.type === TokenType.NUMBER_TOKEN || token.type === TokenType.DIMENSION_TOKEN;\r\n };\n\n var isLengthPercentage = function (token) {\r\n return token.type === TokenType.PERCENTAGE_TOKEN || isLength(token);\r\n };\r\n var parseLengthPercentageTuple = function (tokens) {\r\n return tokens.length > 1 ? [tokens[0], tokens[1]] : [tokens[0]];\r\n };\r\n var ZERO_LENGTH = {\r\n type: TokenType.NUMBER_TOKEN,\r\n number: 0,\r\n flags: FLAG_INTEGER\r\n };\r\n var FIFTY_PERCENT = {\r\n type: TokenType.PERCENTAGE_TOKEN,\r\n number: 50,\r\n flags: FLAG_INTEGER\r\n };\r\n var HUNDRED_PERCENT = {\r\n type: TokenType.PERCENTAGE_TOKEN,\r\n number: 100,\r\n flags: FLAG_INTEGER\r\n };\r\n var getAbsoluteValueForTuple = function (tuple, width, height) {\r\n var x = tuple[0], y = tuple[1];\r\n return [getAbsoluteValue(x, width), getAbsoluteValue(typeof y !== 'undefined' ? y : x, height)];\r\n };\r\n var getAbsoluteValue = function (token, parent) {\r\n if (token.type === TokenType.PERCENTAGE_TOKEN) {\r\n return (token.number / 100) * parent;\r\n }\r\n if (isDimensionToken(token)) {\r\n switch (token.unit) {\r\n case 'rem':\r\n case 'em':\r\n return 16 * token.number; // TODO use correct font-size\r\n case 'px':\r\n default:\r\n return token.number;\r\n }\r\n }\r\n return token.number;\r\n };\n\n var DEG = 'deg';\r\n var GRAD = 'grad';\r\n var RAD = 'rad';\r\n var TURN = 'turn';\r\n var angle = {\r\n name: 'angle',\r\n parse: function (value) {\r\n if (value.type === TokenType.DIMENSION_TOKEN) {\r\n switch (value.unit) {\r\n case DEG:\r\n return (Math.PI * value.number) / 180;\r\n case GRAD:\r\n return (Math.PI / 200) * value.number;\r\n case RAD:\r\n return value.number;\r\n case TURN:\r\n return Math.PI * 2 * value.number;\r\n }\r\n }\r\n throw new Error(\"Unsupported angle type\");\r\n }\r\n };\r\n var isAngle = function (value) {\r\n if (value.type === TokenType.DIMENSION_TOKEN) {\r\n if (value.unit === DEG || value.unit === GRAD || value.unit === RAD || value.unit === TURN) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n var parseNamedSide = function (tokens) {\r\n var sideOrCorner = tokens\r\n .filter(isIdentToken)\r\n .map(function (ident) { return ident.value; })\r\n .join(' ');\r\n switch (sideOrCorner) {\r\n case 'to bottom right':\r\n case 'to right bottom':\r\n case 'left top':\r\n case 'top left':\r\n return [ZERO_LENGTH, ZERO_LENGTH];\r\n case 'to top':\r\n case 'bottom':\r\n return deg(0);\r\n case 'to bottom left':\r\n case 'to left bottom':\r\n case 'right top':\r\n case 'top right':\r\n return [ZERO_LENGTH, HUNDRED_PERCENT];\r\n case 'to right':\r\n case 'left':\r\n return deg(90);\r\n case 'to top left':\r\n case 'to left top':\r\n case 'right bottom':\r\n case 'bottom right':\r\n return [HUNDRED_PERCENT, HUNDRED_PERCENT];\r\n case 'to bottom':\r\n case 'top':\r\n return deg(180);\r\n case 'to top right':\r\n case 'to right top':\r\n case 'left bottom':\r\n case 'bottom left':\r\n return [HUNDRED_PERCENT, ZERO_LENGTH];\r\n case 'to left':\r\n case 'right':\r\n return deg(270);\r\n }\r\n return 0;\r\n };\r\n var deg = function (deg) { return (Math.PI * deg) / 180; };\n\n var color = {\r\n name: 'color',\r\n parse: function (value) {\r\n if (value.type === TokenType.FUNCTION) {\r\n var colorFunction = SUPPORTED_COLOR_FUNCTIONS[value.name];\r\n if (typeof colorFunction === 'undefined') {\r\n throw new Error(\"Attempting to parse an unsupported color function \\\"\" + value.name + \"\\\"\");\r\n }\r\n return colorFunction(value.values);\r\n }\r\n if (value.type === TokenType.HASH_TOKEN) {\r\n if (value.value.length === 3) {\r\n var r = value.value.substring(0, 1);\r\n var g = value.value.substring(1, 2);\r\n var b = value.value.substring(2, 3);\r\n return pack(parseInt(r + r, 16), parseInt(g + g, 16), parseInt(b + b, 16), 1);\r\n }\r\n if (value.value.length === 4) {\r\n var r = value.value.substring(0, 1);\r\n var g = value.value.substring(1, 2);\r\n var b = value.value.substring(2, 3);\r\n var a = value.value.substring(3, 4);\r\n return pack(parseInt(r + r, 16), parseInt(g + g, 16), parseInt(b + b, 16), parseInt(a + a, 16) / 255);\r\n }\r\n if (value.value.length === 6) {\r\n var r = value.value.substring(0, 2);\r\n var g = value.value.substring(2, 4);\r\n var b = value.value.substring(4, 6);\r\n return pack(parseInt(r, 16), parseInt(g, 16), parseInt(b, 16), 1);\r\n }\r\n if (value.value.length === 8) {\r\n var r = value.value.substring(0, 2);\r\n var g = value.value.substring(2, 4);\r\n var b = value.value.substring(4, 6);\r\n var a = value.value.substring(6, 8);\r\n return pack(parseInt(r, 16), parseInt(g, 16), parseInt(b, 16), parseInt(a, 16) / 255);\r\n }\r\n }\r\n if (value.type === TokenType.IDENT_TOKEN) {\r\n var namedColor = COLORS[value.value.toUpperCase()];\r\n if (typeof namedColor !== 'undefined') {\r\n return namedColor;\r\n }\r\n }\r\n return COLORS.TRANSPARENT;\r\n }\r\n };\r\n var isTransparent = function (color) { return (0xff & color) === 0; };\r\n var asString = function (color) {\r\n var alpha = 0xff & color;\r\n var blue = 0xff & (color >> 8);\r\n var green = 0xff & (color >> 16);\r\n var red = 0xff & (color >> 24);\r\n return alpha < 255 ? \"rgba(\" + red + \",\" + green + \",\" + blue + \",\" + alpha / 255 + \")\" : \"rgb(\" + red + \",\" + green + \",\" + blue + \")\";\r\n };\r\n var pack = function (r, g, b, a) {\r\n return ((r << 24) | (g << 16) | (b << 8) | (Math.round(a * 255) << 0)) >>> 0;\r\n };\r\n var getTokenColorValue = function (token, i) {\r\n if (token.type === TokenType.NUMBER_TOKEN) {\r\n return token.number;\r\n }\r\n if (token.type === TokenType.PERCENTAGE_TOKEN) {\r\n var max = i === 3 ? 1 : 255;\r\n return i === 3 ? (token.number / 100) * max : Math.round((token.number / 100) * max);\r\n }\r\n return 0;\r\n };\r\n var rgb = function (args) {\r\n var tokens = args.filter(nonFunctionArgSeparator);\r\n if (tokens.length === 3) {\r\n var _a = tokens.map(getTokenColorValue), r = _a[0], g = _a[1], b = _a[2];\r\n return pack(r, g, b, 1);\r\n }\r\n if (tokens.length === 4) {\r\n var _b = tokens.map(getTokenColorValue), r = _b[0], g = _b[1], b = _b[2], a = _b[3];\r\n return pack(r, g, b, a);\r\n }\r\n return 0;\r\n };\r\n function hue2rgb(t1, t2, hue) {\r\n if (hue < 0) {\r\n hue += 1;\r\n }\r\n if (hue >= 1) {\r\n hue -= 1;\r\n }\r\n if (hue < 1 / 6) {\r\n return (t2 - t1) * hue * 6 + t1;\r\n }\r\n else if (hue < 1 / 2) {\r\n return t2;\r\n }\r\n else if (hue < 2 / 3) {\r\n return (t2 - t1) * 6 * (2 / 3 - hue) + t1;\r\n }\r\n else {\r\n return t1;\r\n }\r\n }\r\n var hsl = function (args) {\r\n var tokens = args.filter(nonFunctionArgSeparator);\r\n var hue = tokens[0], saturation = tokens[1], lightness = tokens[2], alpha = tokens[3];\r\n var h = (hue.type === TokenType.NUMBER_TOKEN ? deg(hue.number) : angle.parse(hue)) / (Math.PI * 2);\r\n var s = isLengthPercentage(saturation) ? saturation.number / 100 : 0;\r\n var l = isLengthPercentage(lightness) ? lightness.number / 100 : 0;\r\n var a = typeof alpha !== 'undefined' && isLengthPercentage(alpha) ? getAbsoluteValue(alpha, 1) : 1;\r\n if (s === 0) {\r\n return pack(l * 255, l * 255, l * 255, 1);\r\n }\r\n var t2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\r\n var t1 = l * 2 - t2;\r\n var r = hue2rgb(t1, t2, h + 1 / 3);\r\n var g = hue2rgb(t1, t2, h);\r\n var b = hue2rgb(t1, t2, h - 1 / 3);\r\n return pack(r * 255, g * 255, b * 255, a);\r\n };\r\n var SUPPORTED_COLOR_FUNCTIONS = {\r\n hsl: hsl,\r\n hsla: hsl,\r\n rgb: rgb,\r\n rgba: rgb\r\n };\r\n var COLORS = {\r\n ALICEBLUE: 0xf0f8ffff,\r\n ANTIQUEWHITE: 0xfaebd7ff,\r\n AQUA: 0x00ffffff,\r\n AQUAMARINE: 0x7fffd4ff,\r\n AZURE: 0xf0ffffff,\r\n BEIGE: 0xf5f5dcff,\r\n BISQUE: 0xffe4c4ff,\r\n BLACK: 0x000000ff,\r\n BLANCHEDALMOND: 0xffebcdff,\r\n BLUE: 0x0000ffff,\r\n BLUEVIOLET: 0x8a2be2ff,\r\n BROWN: 0xa52a2aff,\r\n BURLYWOOD: 0xdeb887ff,\r\n CADETBLUE: 0x5f9ea0ff,\r\n CHARTREUSE: 0x7fff00ff,\r\n CHOCOLATE: 0xd2691eff,\r\n CORAL: 0xff7f50ff,\r\n CORNFLOWERBLUE: 0x6495edff,\r\n CORNSILK: 0xfff8dcff,\r\n CRIMSON: 0xdc143cff,\r\n CYAN: 0x00ffffff,\r\n DARKBLUE: 0x00008bff,\r\n DARKCYAN: 0x008b8bff,\r\n DARKGOLDENROD: 0xb886bbff,\r\n DARKGRAY: 0xa9a9a9ff,\r\n DARKGREEN: 0x006400ff,\r\n DARKGREY: 0xa9a9a9ff,\r\n DARKKHAKI: 0xbdb76bff,\r\n DARKMAGENTA: 0x8b008bff,\r\n DARKOLIVEGREEN: 0x556b2fff,\r\n DARKORANGE: 0xff8c00ff,\r\n DARKORCHID: 0x9932ccff,\r\n DARKRED: 0x8b0000ff,\r\n DARKSALMON: 0xe9967aff,\r\n DARKSEAGREEN: 0x8fbc8fff,\r\n DARKSLATEBLUE: 0x483d8bff,\r\n DARKSLATEGRAY: 0x2f4f4fff,\r\n DARKSLATEGREY: 0x2f4f4fff,\r\n DARKTURQUOISE: 0x00ced1ff,\r\n DARKVIOLET: 0x9400d3ff,\r\n DEEPPINK: 0xff1493ff,\r\n DEEPSKYBLUE: 0x00bfffff,\r\n DIMGRAY: 0x696969ff,\r\n DIMGREY: 0x696969ff,\r\n DODGERBLUE: 0x1e90ffff,\r\n FIREBRICK: 0xb22222ff,\r\n FLORALWHITE: 0xfffaf0ff,\r\n FORESTGREEN: 0x228b22ff,\r\n FUCHSIA: 0xff00ffff,\r\n GAINSBORO: 0xdcdcdcff,\r\n GHOSTWHITE: 0xf8f8ffff,\r\n GOLD: 0xffd700ff,\r\n GOLDENROD: 0xdaa520ff,\r\n GRAY: 0x808080ff,\r\n GREEN: 0x008000ff,\r\n GREENYELLOW: 0xadff2fff,\r\n GREY: 0x808080ff,\r\n HONEYDEW: 0xf0fff0ff,\r\n HOTPINK: 0xff69b4ff,\r\n INDIANRED: 0xcd5c5cff,\r\n INDIGO: 0x4b0082ff,\r\n IVORY: 0xfffff0ff,\r\n KHAKI: 0xf0e68cff,\r\n LAVENDER: 0xe6e6faff,\r\n LAVENDERBLUSH: 0xfff0f5ff,\r\n LAWNGREEN: 0x7cfc00ff,\r\n LEMONCHIFFON: 0xfffacdff,\r\n LIGHTBLUE: 0xadd8e6ff,\r\n LIGHTCORAL: 0xf08080ff,\r\n LIGHTCYAN: 0xe0ffffff,\r\n LIGHTGOLDENRODYELLOW: 0xfafad2ff,\r\n LIGHTGRAY: 0xd3d3d3ff,\r\n LIGHTGREEN: 0x90ee90ff,\r\n LIGHTGREY: 0xd3d3d3ff,\r\n LIGHTPINK: 0xffb6c1ff,\r\n LIGHTSALMON: 0xffa07aff,\r\n LIGHTSEAGREEN: 0x20b2aaff,\r\n LIGHTSKYBLUE: 0x87cefaff,\r\n LIGHTSLATEGRAY: 0x778899ff,\r\n LIGHTSLATEGREY: 0x778899ff,\r\n LIGHTSTEELBLUE: 0xb0c4deff,\r\n LIGHTYELLOW: 0xffffe0ff,\r\n LIME: 0x00ff00ff,\r\n LIMEGREEN: 0x32cd32ff,\r\n LINEN: 0xfaf0e6ff,\r\n MAGENTA: 0xff00ffff,\r\n MAROON: 0x800000ff,\r\n MEDIUMAQUAMARINE: 0x66cdaaff,\r\n MEDIUMBLUE: 0x0000cdff,\r\n MEDIUMORCHID: 0xba55d3ff,\r\n MEDIUMPURPLE: 0x9370dbff,\r\n MEDIUMSEAGREEN: 0x3cb371ff,\r\n MEDIUMSLATEBLUE: 0x7b68eeff,\r\n MEDIUMSPRINGGREEN: 0x00fa9aff,\r\n MEDIUMTURQUOISE: 0x48d1ccff,\r\n MEDIUMVIOLETRED: 0xc71585ff,\r\n MIDNIGHTBLUE: 0x191970ff,\r\n MINTCREAM: 0xf5fffaff,\r\n MISTYROSE: 0xffe4e1ff,\r\n MOCCASIN: 0xffe4b5ff,\r\n NAVAJOWHITE: 0xffdeadff,\r\n NAVY: 0x000080ff,\r\n OLDLACE: 0xfdf5e6ff,\r\n OLIVE: 0x808000ff,\r\n OLIVEDRAB: 0x6b8e23ff,\r\n ORANGE: 0xffa500ff,\r\n ORANGERED: 0xff4500ff,\r\n ORCHID: 0xda70d6ff,\r\n PALEGOLDENROD: 0xeee8aaff,\r\n PALEGREEN: 0x98fb98ff,\r\n PALETURQUOISE: 0xafeeeeff,\r\n PALEVIOLETRED: 0xdb7093ff,\r\n PAPAYAWHIP: 0xffefd5ff,\r\n PEACHPUFF: 0xffdab9ff,\r\n PERU: 0xcd853fff,\r\n PINK: 0xffc0cbff,\r\n PLUM: 0xdda0ddff,\r\n POWDERBLUE: 0xb0e0e6ff,\r\n PURPLE: 0x800080ff,\r\n REBECCAPURPLE: 0x663399ff,\r\n RED: 0xff0000ff,\r\n ROSYBROWN: 0xbc8f8fff,\r\n ROYALBLUE: 0x4169e1ff,\r\n SADDLEBROWN: 0x8b4513ff,\r\n SALMON: 0xfa8072ff,\r\n SANDYBROWN: 0xf4a460ff,\r\n SEAGREEN: 0x2e8b57ff,\r\n SEASHELL: 0xfff5eeff,\r\n SIENNA: 0xa0522dff,\r\n SILVER: 0xc0c0c0ff,\r\n SKYBLUE: 0x87ceebff,\r\n SLATEBLUE: 0x6a5acdff,\r\n SLATEGRAY: 0x708090ff,\r\n SLATEGREY: 0x708090ff,\r\n SNOW: 0xfffafaff,\r\n SPRINGGREEN: 0x00ff7fff,\r\n STEELBLUE: 0x4682b4ff,\r\n TAN: 0xd2b48cff,\r\n TEAL: 0x008080ff,\r\n THISTLE: 0xd8bfd8ff,\r\n TOMATO: 0xff6347ff,\r\n TRANSPARENT: 0x00000000,\r\n TURQUOISE: 0x40e0d0ff,\r\n VIOLET: 0xee82eeff,\r\n WHEAT: 0xf5deb3ff,\r\n WHITE: 0xffffffff,\r\n WHITESMOKE: 0xf5f5f5ff,\r\n YELLOW: 0xffff00ff,\r\n YELLOWGREEN: 0x9acd32ff\r\n };\n\n var PropertyDescriptorParsingType;\r\n (function (PropertyDescriptorParsingType) {\r\n PropertyDescriptorParsingType[PropertyDescriptorParsingType[\"VALUE\"] = 0] = \"VALUE\";\r\n PropertyDescriptorParsingType[PropertyDescriptorParsingType[\"LIST\"] = 1] = \"LIST\";\r\n PropertyDescriptorParsingType[PropertyDescriptorParsingType[\"IDENT_VALUE\"] = 2] = \"IDENT_VALUE\";\r\n PropertyDescriptorParsingType[PropertyDescriptorParsingType[\"TYPE_VALUE\"] = 3] = \"TYPE_VALUE\";\r\n PropertyDescriptorParsingType[PropertyDescriptorParsingType[\"TOKEN_VALUE\"] = 4] = \"TOKEN_VALUE\";\r\n })(PropertyDescriptorParsingType || (PropertyDescriptorParsingType = {}));\n\n var BACKGROUND_CLIP;\r\n (function (BACKGROUND_CLIP) {\r\n BACKGROUND_CLIP[BACKGROUND_CLIP[\"BORDER_BOX\"] = 0] = \"BORDER_BOX\";\r\n BACKGROUND_CLIP[BACKGROUND_CLIP[\"PADDING_BOX\"] = 1] = \"PADDING_BOX\";\r\n BACKGROUND_CLIP[BACKGROUND_CLIP[\"CONTENT_BOX\"] = 2] = \"CONTENT_BOX\";\r\n })(BACKGROUND_CLIP || (BACKGROUND_CLIP = {}));\r\n var backgroundClip = {\r\n name: 'background-clip',\r\n initialValue: 'border-box',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.LIST,\r\n parse: function (tokens) {\r\n return tokens.map(function (token) {\r\n if (isIdentToken(token)) {\r\n switch (token.value) {\r\n case 'padding-box':\r\n return BACKGROUND_CLIP.PADDING_BOX;\r\n case 'content-box':\r\n return BACKGROUND_CLIP.CONTENT_BOX;\r\n }\r\n }\r\n return BACKGROUND_CLIP.BORDER_BOX;\r\n });\r\n }\r\n };\n\n var backgroundColor = {\r\n name: \"background-color\",\r\n initialValue: 'transparent',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.TYPE_VALUE,\r\n format: 'color'\r\n };\n\n var parseColorStop = function (args) {\r\n var color$1 = color.parse(args[0]);\r\n var stop = args[1];\r\n return stop && isLengthPercentage(stop) ? { color: color$1, stop: stop } : { color: color$1, stop: null };\r\n };\r\n var processColorStops = function (stops, lineLength) {\r\n var first = stops[0];\r\n var last = stops[stops.length - 1];\r\n if (first.stop === null) {\r\n first.stop = ZERO_LENGTH;\r\n }\r\n if (last.stop === null) {\r\n last.stop = HUNDRED_PERCENT;\r\n }\r\n var processStops = [];\r\n var previous = 0;\r\n for (var i = 0; i < stops.length; i++) {\r\n var stop_1 = stops[i].stop;\r\n if (stop_1 !== null) {\r\n var absoluteValue = getAbsoluteValue(stop_1, lineLength);\r\n if (absoluteValue > previous) {\r\n processStops.push(absoluteValue);\r\n }\r\n else {\r\n processStops.push(previous);\r\n }\r\n previous = absoluteValue;\r\n }\r\n else {\r\n processStops.push(null);\r\n }\r\n }\r\n var gapBegin = null;\r\n for (var i = 0; i < processStops.length; i++) {\r\n var stop_2 = processStops[i];\r\n if (stop_2 === null) {\r\n if (gapBegin === null) {\r\n gapBegin = i;\r\n }\r\n }\r\n else if (gapBegin !== null) {\r\n var gapLength = i - gapBegin;\r\n var beforeGap = processStops[gapBegin - 1];\r\n var gapValue = (stop_2 - beforeGap) / (gapLength + 1);\r\n for (var g = 1; g <= gapLength; g++) {\r\n processStops[gapBegin + g - 1] = gapValue * g;\r\n }\r\n gapBegin = null;\r\n }\r\n }\r\n return stops.map(function (_a, i) {\r\n var color = _a.color;\r\n return { color: color, stop: Math.max(Math.min(1, processStops[i] / lineLength), 0) };\r\n });\r\n };\r\n var getAngleFromCorner = function (corner, width, height) {\r\n var centerX = width / 2;\r\n var centerY = height / 2;\r\n var x = getAbsoluteValue(corner[0], width) - centerX;\r\n var y = centerY - getAbsoluteValue(corner[1], height);\r\n return (Math.atan2(y, x) + Math.PI * 2) % (Math.PI * 2);\r\n };\r\n var calculateGradientDirection = function (angle, width, height) {\r\n var radian = typeof angle === 'number' ? angle : getAngleFromCorner(angle, width, height);\r\n var lineLength = Math.abs(width * Math.sin(radian)) + Math.abs(height * Math.cos(radian));\r\n var halfWidth = width / 2;\r\n var halfHeight = height / 2;\r\n var halfLineLength = lineLength / 2;\r\n var yDiff = Math.sin(radian - Math.PI / 2) * halfLineLength;\r\n var xDiff = Math.cos(radian - Math.PI / 2) * halfLineLength;\r\n return [lineLength, halfWidth - xDiff, halfWidth + xDiff, halfHeight - yDiff, halfHeight + yDiff];\r\n };\r\n var distance = function (a, b) { return Math.sqrt(a * a + b * b); };\r\n var findCorner = function (width, height, x, y, closest) {\r\n var corners = [[0, 0], [0, height], [width, 0], [width, height]];\r\n return corners.reduce(function (stat, corner) {\r\n var cx = corner[0], cy = corner[1];\r\n var d = distance(x - cx, y - cy);\r\n if (closest ? d < stat.optimumDistance : d > stat.optimumDistance) {\r\n return {\r\n optimumCorner: corner,\r\n optimumDistance: d\r\n };\r\n }\r\n return stat;\r\n }, {\r\n optimumDistance: closest ? Infinity : -Infinity,\r\n optimumCorner: null\r\n }).optimumCorner;\r\n };\r\n var calculateRadius = function (gradient, x, y, width, height) {\r\n var rx = 0;\r\n var ry = 0;\r\n switch (gradient.size) {\r\n case CSSRadialExtent.CLOSEST_SIDE:\r\n // The ending shape is sized so that that it exactly meets the side of the gradient box closest to the gradient’s center.\r\n // If the shape is an ellipse, it exactly meets the closest side in each dimension.\r\n if (gradient.shape === CSSRadialShape.CIRCLE) {\r\n rx = ry = Math.min(Math.abs(x), Math.abs(x - width), Math.abs(y), Math.abs(y - height));\r\n }\r\n else if (gradient.shape === CSSRadialShape.ELLIPSE) {\r\n rx = Math.min(Math.abs(x), Math.abs(x - width));\r\n ry = Math.min(Math.abs(y), Math.abs(y - height));\r\n }\r\n break;\r\n case CSSRadialExtent.CLOSEST_CORNER:\r\n // The ending shape is sized so that that it passes through the corner of the gradient box closest to the gradient’s center.\r\n // If the shape is an ellipse, the ending shape is given the same aspect-ratio it would have if closest-side were specified.\r\n if (gradient.shape === CSSRadialShape.CIRCLE) {\r\n rx = ry = Math.min(distance(x, y), distance(x, y - height), distance(x - width, y), distance(x - width, y - height));\r\n }\r\n else if (gradient.shape === CSSRadialShape.ELLIPSE) {\r\n // Compute the ratio ry/rx (which is to be the same as for \"closest-side\")\r\n var c = Math.min(Math.abs(y), Math.abs(y - height)) / Math.min(Math.abs(x), Math.abs(x - width));\r\n var _a = findCorner(width, height, x, y, true), cx = _a[0], cy = _a[1];\r\n rx = distance(cx - x, (cy - y) / c);\r\n ry = c * rx;\r\n }\r\n break;\r\n case CSSRadialExtent.FARTHEST_SIDE:\r\n // Same as closest-side, except the ending shape is sized based on the farthest side(s)\r\n if (gradient.shape === CSSRadialShape.CIRCLE) {\r\n rx = ry = Math.max(Math.abs(x), Math.abs(x - width), Math.abs(y), Math.abs(y - height));\r\n }\r\n else if (gradient.shape === CSSRadialShape.ELLIPSE) {\r\n rx = Math.max(Math.abs(x), Math.abs(x - width));\r\n ry = Math.max(Math.abs(y), Math.abs(y - height));\r\n }\r\n break;\r\n case CSSRadialExtent.FARTHEST_CORNER:\r\n // Same as closest-corner, except the ending shape is sized based on the farthest corner.\r\n // If the shape is an ellipse, the ending shape is given the same aspect ratio it would have if farthest-side were specified.\r\n if (gradient.shape === CSSRadialShape.CIRCLE) {\r\n rx = ry = Math.max(distance(x, y), distance(x, y - height), distance(x - width, y), distance(x - width, y - height));\r\n }\r\n else if (gradient.shape === CSSRadialShape.ELLIPSE) {\r\n // Compute the ratio ry/rx (which is to be the same as for \"farthest-side\")\r\n var c = Math.max(Math.abs(y), Math.abs(y - height)) / Math.max(Math.abs(x), Math.abs(x - width));\r\n var _b = findCorner(width, height, x, y, false), cx = _b[0], cy = _b[1];\r\n rx = distance(cx - x, (cy - y) / c);\r\n ry = c * rx;\r\n }\r\n break;\r\n }\r\n if (Array.isArray(gradient.size)) {\r\n rx = getAbsoluteValue(gradient.size[0], width);\r\n ry = gradient.size.length === 2 ? getAbsoluteValue(gradient.size[1], height) : rx;\r\n }\r\n return [rx, ry];\r\n };\n\n var linearGradient = function (tokens) {\r\n var angle$1 = deg(180);\r\n var stops = [];\r\n parseFunctionArgs(tokens).forEach(function (arg, i) {\r\n if (i === 0) {\r\n var firstToken = arg[0];\r\n if (firstToken.type === TokenType.IDENT_TOKEN && firstToken.value === 'to') {\r\n angle$1 = parseNamedSide(arg);\r\n return;\r\n }\r\n else if (isAngle(firstToken)) {\r\n angle$1 = angle.parse(firstToken);\r\n return;\r\n }\r\n }\r\n var colorStop = parseColorStop(arg);\r\n stops.push(colorStop);\r\n });\r\n return { angle: angle$1, stops: stops, type: CSSImageType.LINEAR_GRADIENT };\r\n };\n\n var prefixLinearGradient = function (tokens) {\r\n var angle$1 = deg(180);\r\n var stops = [];\r\n parseFunctionArgs(tokens).forEach(function (arg, i) {\r\n if (i === 0) {\r\n var firstToken = arg[0];\r\n if (firstToken.type === TokenType.IDENT_TOKEN &&\r\n ['top', 'left', 'right', 'bottom'].indexOf(firstToken.value) !== -1) {\r\n angle$1 = parseNamedSide(arg);\r\n return;\r\n }\r\n else if (isAngle(firstToken)) {\r\n angle$1 = (angle.parse(firstToken) + deg(270)) % deg(360);\r\n return;\r\n }\r\n }\r\n var colorStop = parseColorStop(arg);\r\n stops.push(colorStop);\r\n });\r\n return {\r\n angle: angle$1,\r\n stops: stops,\r\n type: CSSImageType.LINEAR_GRADIENT\r\n };\r\n };\n\n var testRangeBounds = function (document) {\r\n var TEST_HEIGHT = 123;\r\n if (document.createRange) {\r\n var range = document.createRange();\r\n if (range.getBoundingClientRect) {\r\n var testElement = document.createElement('boundtest');\r\n testElement.style.height = TEST_HEIGHT + \"px\";\r\n testElement.style.display = 'block';\r\n document.body.appendChild(testElement);\r\n range.selectNode(testElement);\r\n var rangeBounds = range.getBoundingClientRect();\r\n var rangeHeight = Math.round(rangeBounds.height);\r\n document.body.removeChild(testElement);\r\n if (rangeHeight === TEST_HEIGHT) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n };\r\n var testCORS = function () { return typeof new Image().crossOrigin !== 'undefined'; };\r\n var testResponseType = function () { return typeof new XMLHttpRequest().responseType === 'string'; };\r\n var testSVG = function (document) {\r\n var img = new Image();\r\n var canvas = document.createElement('canvas');\r\n var ctx = canvas.getContext('2d');\r\n if (!ctx) {\r\n return false;\r\n }\r\n img.src = \"data:image/svg+xml,\";\r\n try {\r\n ctx.drawImage(img, 0, 0);\r\n canvas.toDataURL();\r\n }\r\n catch (e) {\r\n return false;\r\n }\r\n return true;\r\n };\r\n var isGreenPixel = function (data) {\r\n return data[0] === 0 && data[1] === 255 && data[2] === 0 && data[3] === 255;\r\n };\r\n var testForeignObject = function (document) {\r\n var canvas = document.createElement('canvas');\r\n var size = 100;\r\n canvas.width = size;\r\n canvas.height = size;\r\n var ctx = canvas.getContext('2d');\r\n if (!ctx) {\r\n return Promise.reject(false);\r\n }\r\n ctx.fillStyle = 'rgb(0, 255, 0)';\r\n ctx.fillRect(0, 0, size, size);\r\n var img = new Image();\r\n var greenImageSrc = canvas.toDataURL();\r\n img.src = greenImageSrc;\r\n var svg = createForeignObjectSVG(size, size, 0, 0, img);\r\n ctx.fillStyle = 'red';\r\n ctx.fillRect(0, 0, size, size);\r\n return loadSerializedSVG(svg)\r\n .then(function (img) {\r\n ctx.drawImage(img, 0, 0);\r\n var data = ctx.getImageData(0, 0, size, size).data;\r\n ctx.fillStyle = 'red';\r\n ctx.fillRect(0, 0, size, size);\r\n var node = document.createElement('div');\r\n node.style.backgroundImage = \"url(\" + greenImageSrc + \")\";\r\n node.style.height = size + \"px\";\r\n // Firefox 55 does not render inline tags\r\n return isGreenPixel(data)\r\n ? loadSerializedSVG(createForeignObjectSVG(size, size, 0, 0, node))\r\n : Promise.reject(false);\r\n })\r\n .then(function (img) {\r\n ctx.drawImage(img, 0, 0);\r\n // Edge does not render background-images\r\n return isGreenPixel(ctx.getImageData(0, 0, size, size).data);\r\n })\r\n .catch(function () { return false; });\r\n };\r\n var createForeignObjectSVG = function (width, height, x, y, node) {\r\n var xmlns = 'http://www.w3.org/2000/svg';\r\n var svg = document.createElementNS(xmlns, 'svg');\r\n var foreignObject = document.createElementNS(xmlns, 'foreignObject');\r\n svg.setAttributeNS(null, 'width', width.toString());\r\n svg.setAttributeNS(null, 'height', height.toString());\r\n foreignObject.setAttributeNS(null, 'width', '100%');\r\n foreignObject.setAttributeNS(null, 'height', '100%');\r\n foreignObject.setAttributeNS(null, 'x', x.toString());\r\n foreignObject.setAttributeNS(null, 'y', y.toString());\r\n foreignObject.setAttributeNS(null, 'externalResourcesRequired', 'true');\r\n svg.appendChild(foreignObject);\r\n foreignObject.appendChild(node);\r\n return svg;\r\n };\r\n var loadSerializedSVG = function (svg) {\r\n return new Promise(function (resolve, reject) {\r\n var img = new Image();\r\n img.onload = function () { return resolve(img); };\r\n img.onerror = reject;\r\n img.src = \"data:image/svg+xml;charset=utf-8,\" + encodeURIComponent(new XMLSerializer().serializeToString(svg));\r\n });\r\n };\r\n var FEATURES = {\r\n get SUPPORT_RANGE_BOUNDS() {\r\n var value = testRangeBounds(document);\r\n Object.defineProperty(FEATURES, 'SUPPORT_RANGE_BOUNDS', { value: value });\r\n return value;\r\n },\r\n get SUPPORT_SVG_DRAWING() {\r\n var value = testSVG(document);\r\n Object.defineProperty(FEATURES, 'SUPPORT_SVG_DRAWING', { value: value });\r\n return value;\r\n },\r\n get SUPPORT_FOREIGNOBJECT_DRAWING() {\r\n var value = typeof Array.from === 'function' && typeof window.fetch === 'function'\r\n ? testForeignObject(document)\r\n : Promise.resolve(false);\r\n Object.defineProperty(FEATURES, 'SUPPORT_FOREIGNOBJECT_DRAWING', { value: value });\r\n return value;\r\n },\r\n get SUPPORT_CORS_IMAGES() {\r\n var value = testCORS();\r\n Object.defineProperty(FEATURES, 'SUPPORT_CORS_IMAGES', { value: value });\r\n return value;\r\n },\r\n get SUPPORT_RESPONSE_TYPE() {\r\n var value = testResponseType();\r\n Object.defineProperty(FEATURES, 'SUPPORT_RESPONSE_TYPE', { value: value });\r\n return value;\r\n },\r\n get SUPPORT_CORS_XHR() {\r\n var value = 'withCredentials' in new XMLHttpRequest();\r\n Object.defineProperty(FEATURES, 'SUPPORT_CORS_XHR', { value: value });\r\n return value;\r\n }\r\n };\n\n var Logger = /** @class */ (function () {\r\n function Logger(_a) {\r\n var id = _a.id, enabled = _a.enabled;\r\n this.id = id;\r\n this.enabled = enabled;\r\n this.start = Date.now();\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n Logger.prototype.debug = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (this.enabled) {\r\n // eslint-disable-next-line no-console\r\n if (typeof window !== 'undefined' && window.console && typeof console.debug === 'function') {\r\n // eslint-disable-next-line no-console\r\n console.debug.apply(console, [this.id, this.getTime() + \"ms\"].concat(args));\r\n }\r\n else {\r\n this.info.apply(this, args);\r\n }\r\n }\r\n };\r\n Logger.prototype.getTime = function () {\r\n return Date.now() - this.start;\r\n };\r\n Logger.create = function (options) {\r\n Logger.instances[options.id] = new Logger(options);\r\n };\r\n Logger.destroy = function (id) {\r\n delete Logger.instances[id];\r\n };\r\n Logger.getInstance = function (id) {\r\n var instance = Logger.instances[id];\r\n if (typeof instance === 'undefined') {\r\n throw new Error(\"No logger instance found with id \" + id);\r\n }\r\n return instance;\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n Logger.prototype.info = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (this.enabled) {\r\n // eslint-disable-next-line no-console\r\n if (typeof window !== 'undefined' && window.console && typeof console.info === 'function') {\r\n // eslint-disable-next-line no-console\r\n console.info.apply(console, [this.id, this.getTime() + \"ms\"].concat(args));\r\n }\r\n }\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n Logger.prototype.error = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (this.enabled) {\r\n // eslint-disable-next-line no-console\r\n if (typeof window !== 'undefined' && window.console && typeof console.error === 'function') {\r\n // eslint-disable-next-line no-console\r\n console.error.apply(console, [this.id, this.getTime() + \"ms\"].concat(args));\r\n }\r\n else {\r\n this.info.apply(this, args);\r\n }\r\n }\r\n };\r\n Logger.instances = {};\r\n return Logger;\r\n }());\n\n var CacheStorage = /** @class */ (function () {\r\n function CacheStorage() {\r\n }\r\n CacheStorage.create = function (name, options) {\r\n return (CacheStorage._caches[name] = new Cache(name, options));\r\n };\r\n CacheStorage.destroy = function (name) {\r\n delete CacheStorage._caches[name];\r\n };\r\n CacheStorage.open = function (name) {\r\n var cache = CacheStorage._caches[name];\r\n if (typeof cache !== 'undefined') {\r\n return cache;\r\n }\r\n throw new Error(\"Cache with key \\\"\" + name + \"\\\" not found\");\r\n };\r\n CacheStorage.getOrigin = function (url) {\r\n var link = CacheStorage._link;\r\n if (!link) {\r\n return 'about:blank';\r\n }\r\n link.href = url;\r\n link.href = link.href; // IE9, LOL! - http://jsfiddle.net/niklasvh/2e48b/\r\n return link.protocol + link.hostname + link.port;\r\n };\r\n CacheStorage.isSameOrigin = function (src) {\r\n return CacheStorage.getOrigin(src) === CacheStorage._origin;\r\n };\r\n CacheStorage.setContext = function (window) {\r\n CacheStorage._link = window.document.createElement('a');\r\n CacheStorage._origin = CacheStorage.getOrigin(window.location.href);\r\n };\r\n CacheStorage.getInstance = function () {\r\n var current = CacheStorage._current;\r\n if (current === null) {\r\n throw new Error(\"No cache instance attached\");\r\n }\r\n return current;\r\n };\r\n CacheStorage.attachInstance = function (cache) {\r\n CacheStorage._current = cache;\r\n };\r\n CacheStorage.detachInstance = function () {\r\n CacheStorage._current = null;\r\n };\r\n CacheStorage._caches = {};\r\n CacheStorage._origin = 'about:blank';\r\n CacheStorage._current = null;\r\n return CacheStorage;\r\n }());\r\n var Cache = /** @class */ (function () {\r\n function Cache(id, options) {\r\n this.id = id;\r\n this._options = options;\r\n this._cache = {};\r\n }\r\n Cache.prototype.addImage = function (src) {\r\n var result = Promise.resolve();\r\n if (this.has(src)) {\r\n return result;\r\n }\r\n if (isBlobImage(src) || isRenderable(src)) {\r\n this._cache[src] = this.loadImage(src);\r\n return result;\r\n }\r\n return result;\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n Cache.prototype.match = function (src) {\r\n return this._cache[src];\r\n };\r\n Cache.prototype.loadImage = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var isSameOrigin, useCORS, useProxy, src;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n isSameOrigin = CacheStorage.isSameOrigin(key);\r\n useCORS = !isInlineImage(key) && this._options.useCORS === true && FEATURES.SUPPORT_CORS_IMAGES && !isSameOrigin;\r\n useProxy = !isInlineImage(key) &&\r\n !isSameOrigin &&\r\n typeof this._options.proxy === 'string' &&\r\n FEATURES.SUPPORT_CORS_XHR &&\r\n !useCORS;\r\n if (!isSameOrigin && this._options.allowTaint === false && !isInlineImage(key) && !useProxy && !useCORS) {\r\n return [2 /*return*/];\r\n }\r\n src = key;\r\n if (!useProxy) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.proxy(src)];\r\n case 1:\r\n src = _a.sent();\r\n _a.label = 2;\r\n case 2:\r\n Logger.getInstance(this.id).debug(\"Added image \" + key.substring(0, 256));\r\n return [4 /*yield*/, new Promise(function (resolve, reject) {\r\n var img = new Image();\r\n img.onload = function () { return resolve(img); };\r\n img.onerror = reject;\r\n //ios safari 10.3 taints canvas with data urls unless crossOrigin is set to anonymous\r\n if (isInlineBase64Image(src) || useCORS) {\r\n img.crossOrigin = 'anonymous';\r\n }\r\n img.src = src;\r\n if (img.complete === true) {\r\n // Inline XML images may fail to parse, throwing an Error later on\r\n setTimeout(function () { return resolve(img); }, 500);\r\n }\r\n if (_this._options.imageTimeout > 0) {\r\n setTimeout(function () { return reject(\"Timed out (\" + _this._options.imageTimeout + \"ms) loading image\"); }, _this._options.imageTimeout);\r\n }\r\n })];\r\n case 3: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n };\r\n Cache.prototype.has = function (key) {\r\n return typeof this._cache[key] !== 'undefined';\r\n };\r\n Cache.prototype.keys = function () {\r\n return Promise.resolve(Object.keys(this._cache));\r\n };\r\n Cache.prototype.proxy = function (src) {\r\n var _this = this;\r\n var proxy = this._options.proxy;\r\n if (!proxy) {\r\n throw new Error('No proxy defined');\r\n }\r\n var key = src.substring(0, 256);\r\n return new Promise(function (resolve, reject) {\r\n var responseType = FEATURES.SUPPORT_RESPONSE_TYPE ? 'blob' : 'text';\r\n var xhr = new XMLHttpRequest();\r\n xhr.onload = function () {\r\n if (xhr.status === 200) {\r\n if (responseType === 'text') {\r\n resolve(xhr.response);\r\n }\r\n else {\r\n var reader_1 = new FileReader();\r\n reader_1.addEventListener('load', function () { return resolve(reader_1.result); }, false);\r\n reader_1.addEventListener('error', function (e) { return reject(e); }, false);\r\n reader_1.readAsDataURL(xhr.response);\r\n }\r\n }\r\n else {\r\n reject(\"Failed to proxy resource \" + key + \" with status code \" + xhr.status);\r\n }\r\n };\r\n xhr.onerror = reject;\r\n xhr.open('GET', proxy + \"?url=\" + encodeURIComponent(src) + \"&responseType=\" + responseType);\r\n if (responseType !== 'text' && xhr instanceof XMLHttpRequest) {\r\n xhr.responseType = responseType;\r\n }\r\n if (_this._options.imageTimeout) {\r\n var timeout_1 = _this._options.imageTimeout;\r\n xhr.timeout = timeout_1;\r\n xhr.ontimeout = function () { return reject(\"Timed out (\" + timeout_1 + \"ms) proxying \" + key); };\r\n }\r\n xhr.send();\r\n });\r\n };\r\n return Cache;\r\n }());\r\n var INLINE_SVG = /^data:image\\/svg\\+xml/i;\r\n var INLINE_BASE64 = /^data:image\\/.*;base64,/i;\r\n var INLINE_IMG = /^data:image\\/.*/i;\r\n var isRenderable = function (src) { return FEATURES.SUPPORT_SVG_DRAWING || !isSVG(src); };\r\n var isInlineImage = function (src) { return INLINE_IMG.test(src); };\r\n var isInlineBase64Image = function (src) { return INLINE_BASE64.test(src); };\r\n var isBlobImage = function (src) { return src.substr(0, 4) === 'blob'; };\r\n var isSVG = function (src) { return src.substr(-3).toLowerCase() === 'svg' || INLINE_SVG.test(src); };\n\n var webkitGradient = function (tokens) {\r\n var angle = deg(180);\r\n var stops = [];\r\n var type = CSSImageType.LINEAR_GRADIENT;\r\n var shape = CSSRadialShape.CIRCLE;\r\n var size = CSSRadialExtent.FARTHEST_CORNER;\r\n var position = [];\r\n parseFunctionArgs(tokens).forEach(function (arg, i) {\r\n var firstToken = arg[0];\r\n if (i === 0) {\r\n if (isIdentToken(firstToken) && firstToken.value === 'linear') {\r\n type = CSSImageType.LINEAR_GRADIENT;\r\n return;\r\n }\r\n else if (isIdentToken(firstToken) && firstToken.value === 'radial') {\r\n type = CSSImageType.RADIAL_GRADIENT;\r\n return;\r\n }\r\n }\r\n if (firstToken.type === TokenType.FUNCTION) {\r\n if (firstToken.name === 'from') {\r\n var color$1 = color.parse(firstToken.values[0]);\r\n stops.push({ stop: ZERO_LENGTH, color: color$1 });\r\n }\r\n else if (firstToken.name === 'to') {\r\n var color$1 = color.parse(firstToken.values[0]);\r\n stops.push({ stop: HUNDRED_PERCENT, color: color$1 });\r\n }\r\n else if (firstToken.name === 'color-stop') {\r\n var values = firstToken.values.filter(nonFunctionArgSeparator);\r\n if (values.length === 2) {\r\n var color$1 = color.parse(values[1]);\r\n var stop_1 = values[0];\r\n if (isNumberToken(stop_1)) {\r\n stops.push({\r\n stop: { type: TokenType.PERCENTAGE_TOKEN, number: stop_1.number * 100, flags: stop_1.flags },\r\n color: color$1\r\n });\r\n }\r\n }\r\n }\r\n }\r\n });\r\n return type === CSSImageType.LINEAR_GRADIENT\r\n ? {\r\n angle: (angle + deg(180)) % deg(360),\r\n stops: stops,\r\n type: type\r\n }\r\n : { size: size, shape: shape, stops: stops, position: position, type: type };\r\n };\n\n var CLOSEST_SIDE = 'closest-side';\r\n var FARTHEST_SIDE = 'farthest-side';\r\n var CLOSEST_CORNER = 'closest-corner';\r\n var FARTHEST_CORNER = 'farthest-corner';\r\n var CIRCLE = 'circle';\r\n var ELLIPSE = 'ellipse';\r\n var COVER = 'cover';\r\n var CONTAIN = 'contain';\r\n var radialGradient = function (tokens) {\r\n var shape = CSSRadialShape.CIRCLE;\r\n var size = CSSRadialExtent.FARTHEST_CORNER;\r\n var stops = [];\r\n var position = [];\r\n parseFunctionArgs(tokens).forEach(function (arg, i) {\r\n var isColorStop = true;\r\n if (i === 0) {\r\n var isAtPosition_1 = false;\r\n isColorStop = arg.reduce(function (acc, token) {\r\n if (isAtPosition_1) {\r\n if (isIdentToken(token)) {\r\n switch (token.value) {\r\n case 'center':\r\n position.push(FIFTY_PERCENT);\r\n return acc;\r\n case 'top':\r\n case 'left':\r\n position.push(ZERO_LENGTH);\r\n return acc;\r\n case 'right':\r\n case 'bottom':\r\n position.push(HUNDRED_PERCENT);\r\n return acc;\r\n }\r\n }\r\n else if (isLengthPercentage(token) || isLength(token)) {\r\n position.push(token);\r\n }\r\n }\r\n else if (isIdentToken(token)) {\r\n switch (token.value) {\r\n case CIRCLE:\r\n shape = CSSRadialShape.CIRCLE;\r\n return false;\r\n case ELLIPSE:\r\n shape = CSSRadialShape.ELLIPSE;\r\n return false;\r\n case 'at':\r\n isAtPosition_1 = true;\r\n return false;\r\n case CLOSEST_SIDE:\r\n size = CSSRadialExtent.CLOSEST_SIDE;\r\n return false;\r\n case COVER:\r\n case FARTHEST_SIDE:\r\n size = CSSRadialExtent.FARTHEST_SIDE;\r\n return false;\r\n case CONTAIN:\r\n case CLOSEST_CORNER:\r\n size = CSSRadialExtent.CLOSEST_CORNER;\r\n return false;\r\n case FARTHEST_CORNER:\r\n size = CSSRadialExtent.FARTHEST_CORNER;\r\n return false;\r\n }\r\n }\r\n else if (isLength(token) || isLengthPercentage(token)) {\r\n if (!Array.isArray(size)) {\r\n size = [];\r\n }\r\n size.push(token);\r\n return false;\r\n }\r\n return acc;\r\n }, isColorStop);\r\n }\r\n if (isColorStop) {\r\n var colorStop = parseColorStop(arg);\r\n stops.push(colorStop);\r\n }\r\n });\r\n return { size: size, shape: shape, stops: stops, position: position, type: CSSImageType.RADIAL_GRADIENT };\r\n };\n\n var prefixRadialGradient = function (tokens) {\r\n var shape = CSSRadialShape.CIRCLE;\r\n var size = CSSRadialExtent.FARTHEST_CORNER;\r\n var stops = [];\r\n var position = [];\r\n parseFunctionArgs(tokens).forEach(function (arg, i) {\r\n var isColorStop = true;\r\n if (i === 0) {\r\n isColorStop = arg.reduce(function (acc, token) {\r\n if (isIdentToken(token)) {\r\n switch (token.value) {\r\n case 'center':\r\n position.push(FIFTY_PERCENT);\r\n return false;\r\n case 'top':\r\n case 'left':\r\n position.push(ZERO_LENGTH);\r\n return false;\r\n case 'right':\r\n case 'bottom':\r\n position.push(HUNDRED_PERCENT);\r\n return false;\r\n }\r\n }\r\n else if (isLengthPercentage(token) || isLength(token)) {\r\n position.push(token);\r\n return false;\r\n }\r\n return acc;\r\n }, isColorStop);\r\n }\r\n else if (i === 1) {\r\n isColorStop = arg.reduce(function (acc, token) {\r\n if (isIdentToken(token)) {\r\n switch (token.value) {\r\n case CIRCLE:\r\n shape = CSSRadialShape.CIRCLE;\r\n return false;\r\n case ELLIPSE:\r\n shape = CSSRadialShape.ELLIPSE;\r\n return false;\r\n case CONTAIN:\r\n case CLOSEST_SIDE:\r\n size = CSSRadialExtent.CLOSEST_SIDE;\r\n return false;\r\n case FARTHEST_SIDE:\r\n size = CSSRadialExtent.FARTHEST_SIDE;\r\n return false;\r\n case CLOSEST_CORNER:\r\n size = CSSRadialExtent.CLOSEST_CORNER;\r\n return false;\r\n case COVER:\r\n case FARTHEST_CORNER:\r\n size = CSSRadialExtent.FARTHEST_CORNER;\r\n return false;\r\n }\r\n }\r\n else if (isLength(token) || isLengthPercentage(token)) {\r\n if (!Array.isArray(size)) {\r\n size = [];\r\n }\r\n size.push(token);\r\n return false;\r\n }\r\n return acc;\r\n }, isColorStop);\r\n }\r\n if (isColorStop) {\r\n var colorStop = parseColorStop(arg);\r\n stops.push(colorStop);\r\n }\r\n });\r\n return { size: size, shape: shape, stops: stops, position: position, type: CSSImageType.RADIAL_GRADIENT };\r\n };\n\n var CSSImageType;\r\n (function (CSSImageType) {\r\n CSSImageType[CSSImageType[\"URL\"] = 0] = \"URL\";\r\n CSSImageType[CSSImageType[\"LINEAR_GRADIENT\"] = 1] = \"LINEAR_GRADIENT\";\r\n CSSImageType[CSSImageType[\"RADIAL_GRADIENT\"] = 2] = \"RADIAL_GRADIENT\";\r\n })(CSSImageType || (CSSImageType = {}));\r\n var isLinearGradient = function (background) {\r\n return background.type === CSSImageType.LINEAR_GRADIENT;\r\n };\r\n var isRadialGradient = function (background) {\r\n return background.type === CSSImageType.RADIAL_GRADIENT;\r\n };\r\n var CSSRadialShape;\r\n (function (CSSRadialShape) {\r\n CSSRadialShape[CSSRadialShape[\"CIRCLE\"] = 0] = \"CIRCLE\";\r\n CSSRadialShape[CSSRadialShape[\"ELLIPSE\"] = 1] = \"ELLIPSE\";\r\n })(CSSRadialShape || (CSSRadialShape = {}));\r\n var CSSRadialExtent;\r\n (function (CSSRadialExtent) {\r\n CSSRadialExtent[CSSRadialExtent[\"CLOSEST_SIDE\"] = 0] = \"CLOSEST_SIDE\";\r\n CSSRadialExtent[CSSRadialExtent[\"FARTHEST_SIDE\"] = 1] = \"FARTHEST_SIDE\";\r\n CSSRadialExtent[CSSRadialExtent[\"CLOSEST_CORNER\"] = 2] = \"CLOSEST_CORNER\";\r\n CSSRadialExtent[CSSRadialExtent[\"FARTHEST_CORNER\"] = 3] = \"FARTHEST_CORNER\";\r\n })(CSSRadialExtent || (CSSRadialExtent = {}));\r\n var image = {\r\n name: 'image',\r\n parse: function (value) {\r\n if (value.type === TokenType.URL_TOKEN) {\r\n var image_1 = { url: value.value, type: CSSImageType.URL };\r\n CacheStorage.getInstance().addImage(value.value);\r\n return image_1;\r\n }\r\n if (value.type === TokenType.FUNCTION) {\r\n var imageFunction = SUPPORTED_IMAGE_FUNCTIONS[value.name];\r\n if (typeof imageFunction === 'undefined') {\r\n throw new Error(\"Attempting to parse an unsupported image function \\\"\" + value.name + \"\\\"\");\r\n }\r\n return imageFunction(value.values);\r\n }\r\n throw new Error(\"Unsupported image type\");\r\n }\r\n };\r\n function isSupportedImage(value) {\r\n return value.type !== TokenType.FUNCTION || SUPPORTED_IMAGE_FUNCTIONS[value.name];\r\n }\r\n var SUPPORTED_IMAGE_FUNCTIONS = {\r\n 'linear-gradient': linearGradient,\r\n '-moz-linear-gradient': prefixLinearGradient,\r\n '-ms-linear-gradient': prefixLinearGradient,\r\n '-o-linear-gradient': prefixLinearGradient,\r\n '-webkit-linear-gradient': prefixLinearGradient,\r\n 'radial-gradient': radialGradient,\r\n '-moz-radial-gradient': prefixRadialGradient,\r\n '-ms-radial-gradient': prefixRadialGradient,\r\n '-o-radial-gradient': prefixRadialGradient,\r\n '-webkit-radial-gradient': prefixRadialGradient,\r\n '-webkit-gradient': webkitGradient\r\n };\n\n var backgroundImage = {\r\n name: 'background-image',\r\n initialValue: 'none',\r\n type: PropertyDescriptorParsingType.LIST,\r\n prefix: false,\r\n parse: function (tokens) {\r\n if (tokens.length === 0) {\r\n return [];\r\n }\r\n var first = tokens[0];\r\n if (first.type === TokenType.IDENT_TOKEN && first.value === 'none') {\r\n return [];\r\n }\r\n return tokens.filter(function (value) { return nonFunctionArgSeparator(value) && isSupportedImage(value); }).map(image.parse);\r\n }\r\n };\n\n var backgroundOrigin = {\r\n name: 'background-origin',\r\n initialValue: 'border-box',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.LIST,\r\n parse: function (tokens) {\r\n return tokens.map(function (token) {\r\n if (isIdentToken(token)) {\r\n switch (token.value) {\r\n case 'padding-box':\r\n return 1 /* PADDING_BOX */;\r\n case 'content-box':\r\n return 2 /* CONTENT_BOX */;\r\n }\r\n }\r\n return 0 /* BORDER_BOX */;\r\n });\r\n }\r\n };\n\n var backgroundPosition = {\r\n name: 'background-position',\r\n initialValue: '0% 0%',\r\n type: PropertyDescriptorParsingType.LIST,\r\n prefix: false,\r\n parse: function (tokens) {\r\n return parseFunctionArgs(tokens)\r\n .map(function (values) { return values.filter(isLengthPercentage); })\r\n .map(parseLengthPercentageTuple);\r\n }\r\n };\n\n var BACKGROUND_REPEAT;\r\n (function (BACKGROUND_REPEAT) {\r\n BACKGROUND_REPEAT[BACKGROUND_REPEAT[\"REPEAT\"] = 0] = \"REPEAT\";\r\n BACKGROUND_REPEAT[BACKGROUND_REPEAT[\"NO_REPEAT\"] = 1] = \"NO_REPEAT\";\r\n BACKGROUND_REPEAT[BACKGROUND_REPEAT[\"REPEAT_X\"] = 2] = \"REPEAT_X\";\r\n BACKGROUND_REPEAT[BACKGROUND_REPEAT[\"REPEAT_Y\"] = 3] = \"REPEAT_Y\";\r\n })(BACKGROUND_REPEAT || (BACKGROUND_REPEAT = {}));\r\n var backgroundRepeat = {\r\n name: 'background-repeat',\r\n initialValue: 'repeat',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.LIST,\r\n parse: function (tokens) {\r\n return parseFunctionArgs(tokens)\r\n .map(function (values) {\r\n return values\r\n .filter(isIdentToken)\r\n .map(function (token) { return token.value; })\r\n .join(' ');\r\n })\r\n .map(parseBackgroundRepeat);\r\n }\r\n };\r\n var parseBackgroundRepeat = function (value) {\r\n switch (value) {\r\n case 'no-repeat':\r\n return BACKGROUND_REPEAT.NO_REPEAT;\r\n case 'repeat-x':\r\n case 'repeat no-repeat':\r\n return BACKGROUND_REPEAT.REPEAT_X;\r\n case 'repeat-y':\r\n case 'no-repeat repeat':\r\n return BACKGROUND_REPEAT.REPEAT_Y;\r\n case 'repeat':\r\n default:\r\n return BACKGROUND_REPEAT.REPEAT;\r\n }\r\n };\n\n var BACKGROUND_SIZE;\r\n (function (BACKGROUND_SIZE) {\r\n BACKGROUND_SIZE[\"AUTO\"] = \"auto\";\r\n BACKGROUND_SIZE[\"CONTAIN\"] = \"contain\";\r\n BACKGROUND_SIZE[\"COVER\"] = \"cover\";\r\n })(BACKGROUND_SIZE || (BACKGROUND_SIZE = {}));\r\n var backgroundSize = {\r\n name: 'background-size',\r\n initialValue: '0',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.LIST,\r\n parse: function (tokens) {\r\n return parseFunctionArgs(tokens).map(function (values) { return values.filter(isBackgroundSizeInfoToken); });\r\n }\r\n };\r\n var isBackgroundSizeInfoToken = function (value) {\r\n return isIdentToken(value) || isLengthPercentage(value);\r\n };\n\n var borderColorForSide = function (side) { return ({\r\n name: \"border-\" + side + \"-color\",\r\n initialValue: 'transparent',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.TYPE_VALUE,\r\n format: 'color'\r\n }); };\r\n var borderTopColor = borderColorForSide('top');\r\n var borderRightColor = borderColorForSide('right');\r\n var borderBottomColor = borderColorForSide('bottom');\r\n var borderLeftColor = borderColorForSide('left');\n\n var borderRadiusForSide = function (side) { return ({\r\n name: \"border-radius-\" + side,\r\n initialValue: '0 0',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.LIST,\r\n parse: function (tokens) { return parseLengthPercentageTuple(tokens.filter(isLengthPercentage)); }\r\n }); };\r\n var borderTopLeftRadius = borderRadiusForSide('top-left');\r\n var borderTopRightRadius = borderRadiusForSide('top-right');\r\n var borderBottomRightRadius = borderRadiusForSide('bottom-right');\r\n var borderBottomLeftRadius = borderRadiusForSide('bottom-left');\n\n var BORDER_STYLE;\r\n (function (BORDER_STYLE) {\r\n BORDER_STYLE[BORDER_STYLE[\"NONE\"] = 0] = \"NONE\";\r\n BORDER_STYLE[BORDER_STYLE[\"SOLID\"] = 1] = \"SOLID\";\r\n })(BORDER_STYLE || (BORDER_STYLE = {}));\r\n var borderStyleForSide = function (side) { return ({\r\n name: \"border-\" + side + \"-style\",\r\n initialValue: 'solid',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.IDENT_VALUE,\r\n parse: function (style) {\r\n switch (style) {\r\n case 'none':\r\n return BORDER_STYLE.NONE;\r\n }\r\n return BORDER_STYLE.SOLID;\r\n }\r\n }); };\r\n var borderTopStyle = borderStyleForSide('top');\r\n var borderRightStyle = borderStyleForSide('right');\r\n var borderBottomStyle = borderStyleForSide('bottom');\r\n var borderLeftStyle = borderStyleForSide('left');\n\n var borderWidthForSide = function (side) { return ({\r\n name: \"border-\" + side + \"-width\",\r\n initialValue: '0',\r\n type: PropertyDescriptorParsingType.VALUE,\r\n prefix: false,\r\n parse: function (token) {\r\n if (isDimensionToken(token)) {\r\n return token.number;\r\n }\r\n return 0;\r\n }\r\n }); };\r\n var borderTopWidth = borderWidthForSide('top');\r\n var borderRightWidth = borderWidthForSide('right');\r\n var borderBottomWidth = borderWidthForSide('bottom');\r\n var borderLeftWidth = borderWidthForSide('left');\n\n var color$1 = {\r\n name: \"color\",\r\n initialValue: 'transparent',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.TYPE_VALUE,\r\n format: 'color'\r\n };\n\n var display = {\r\n name: 'display',\r\n initialValue: 'inline-block',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.LIST,\r\n parse: function (tokens) {\r\n return tokens.filter(isIdentToken).reduce(function (bit, token) {\r\n return bit | parseDisplayValue(token.value);\r\n }, 0 /* NONE */);\r\n }\r\n };\r\n var parseDisplayValue = function (display) {\r\n switch (display) {\r\n case 'block':\r\n return 2 /* BLOCK */;\r\n case 'inline':\r\n return 4 /* INLINE */;\r\n case 'run-in':\r\n return 8 /* RUN_IN */;\r\n case 'flow':\r\n return 16 /* FLOW */;\r\n case 'flow-root':\r\n return 32 /* FLOW_ROOT */;\r\n case 'table':\r\n return 64 /* TABLE */;\r\n case 'flex':\r\n case '-webkit-flex':\r\n return 128 /* FLEX */;\r\n case 'grid':\r\n case '-ms-grid':\r\n return 256 /* GRID */;\r\n case 'ruby':\r\n return 512 /* RUBY */;\r\n case 'subgrid':\r\n return 1024 /* SUBGRID */;\r\n case 'list-item':\r\n return 2048 /* LIST_ITEM */;\r\n case 'table-row-group':\r\n return 4096 /* TABLE_ROW_GROUP */;\r\n case 'table-header-group':\r\n return 8192 /* TABLE_HEADER_GROUP */;\r\n case 'table-footer-group':\r\n return 16384 /* TABLE_FOOTER_GROUP */;\r\n case 'table-row':\r\n return 32768 /* TABLE_ROW */;\r\n case 'table-cell':\r\n return 65536 /* TABLE_CELL */;\r\n case 'table-column-group':\r\n return 131072 /* TABLE_COLUMN_GROUP */;\r\n case 'table-column':\r\n return 262144 /* TABLE_COLUMN */;\r\n case 'table-caption':\r\n return 524288 /* TABLE_CAPTION */;\r\n case 'ruby-base':\r\n return 1048576 /* RUBY_BASE */;\r\n case 'ruby-text':\r\n return 2097152 /* RUBY_TEXT */;\r\n case 'ruby-base-container':\r\n return 4194304 /* RUBY_BASE_CONTAINER */;\r\n case 'ruby-text-container':\r\n return 8388608 /* RUBY_TEXT_CONTAINER */;\r\n case 'contents':\r\n return 16777216 /* CONTENTS */;\r\n case 'inline-block':\r\n return 33554432 /* INLINE_BLOCK */;\r\n case 'inline-list-item':\r\n return 67108864 /* INLINE_LIST_ITEM */;\r\n case 'inline-table':\r\n return 134217728 /* INLINE_TABLE */;\r\n case 'inline-flex':\r\n return 268435456 /* INLINE_FLEX */;\r\n case 'inline-grid':\r\n return 536870912 /* INLINE_GRID */;\r\n }\r\n return 0 /* NONE */;\r\n };\n\n var FLOAT;\r\n (function (FLOAT) {\r\n FLOAT[FLOAT[\"NONE\"] = 0] = \"NONE\";\r\n FLOAT[FLOAT[\"LEFT\"] = 1] = \"LEFT\";\r\n FLOAT[FLOAT[\"RIGHT\"] = 2] = \"RIGHT\";\r\n FLOAT[FLOAT[\"INLINE_START\"] = 3] = \"INLINE_START\";\r\n FLOAT[FLOAT[\"INLINE_END\"] = 4] = \"INLINE_END\";\r\n })(FLOAT || (FLOAT = {}));\r\n var float = {\r\n name: 'float',\r\n initialValue: 'none',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.IDENT_VALUE,\r\n parse: function (float) {\r\n switch (float) {\r\n case 'left':\r\n return FLOAT.LEFT;\r\n case 'right':\r\n return FLOAT.RIGHT;\r\n case 'inline-start':\r\n return FLOAT.INLINE_START;\r\n case 'inline-end':\r\n return FLOAT.INLINE_END;\r\n }\r\n return FLOAT.NONE;\r\n }\r\n };\n\n var letterSpacing = {\r\n name: 'letter-spacing',\r\n initialValue: '0',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.VALUE,\r\n parse: function (token) {\r\n if (token.type === TokenType.IDENT_TOKEN && token.value === 'normal') {\r\n return 0;\r\n }\r\n if (token.type === TokenType.NUMBER_TOKEN) {\r\n return token.number;\r\n }\r\n if (token.type === TokenType.DIMENSION_TOKEN) {\r\n return token.number;\r\n }\r\n return 0;\r\n }\r\n };\n\n var LINE_BREAK;\r\n (function (LINE_BREAK) {\r\n LINE_BREAK[\"NORMAL\"] = \"normal\";\r\n LINE_BREAK[\"STRICT\"] = \"strict\";\r\n })(LINE_BREAK || (LINE_BREAK = {}));\r\n var lineBreak = {\r\n name: 'line-break',\r\n initialValue: 'normal',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.IDENT_VALUE,\r\n parse: function (lineBreak) {\r\n switch (lineBreak) {\r\n case 'strict':\r\n return LINE_BREAK.STRICT;\r\n case 'normal':\r\n default:\r\n return LINE_BREAK.NORMAL;\r\n }\r\n }\r\n };\n\n var lineHeight = {\r\n name: 'line-height',\r\n initialValue: 'normal',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.TOKEN_VALUE\r\n };\r\n var computeLineHeight = function (token, fontSize) {\r\n if (isIdentToken(token) && token.value === 'normal') {\r\n return 1.2 * fontSize;\r\n }\r\n else if (token.type === TokenType.NUMBER_TOKEN) {\r\n return fontSize * token.number;\r\n }\r\n else if (isLengthPercentage(token)) {\r\n return getAbsoluteValue(token, fontSize);\r\n }\r\n return fontSize;\r\n };\n\n var listStyleImage = {\r\n name: 'list-style-image',\r\n initialValue: 'none',\r\n type: PropertyDescriptorParsingType.VALUE,\r\n prefix: false,\r\n parse: function (token) {\r\n if (token.type === TokenType.IDENT_TOKEN && token.value === 'none') {\r\n return null;\r\n }\r\n return image.parse(token);\r\n }\r\n };\n\n var LIST_STYLE_POSITION;\r\n (function (LIST_STYLE_POSITION) {\r\n LIST_STYLE_POSITION[LIST_STYLE_POSITION[\"INSIDE\"] = 0] = \"INSIDE\";\r\n LIST_STYLE_POSITION[LIST_STYLE_POSITION[\"OUTSIDE\"] = 1] = \"OUTSIDE\";\r\n })(LIST_STYLE_POSITION || (LIST_STYLE_POSITION = {}));\r\n var listStylePosition = {\r\n name: 'list-style-position',\r\n initialValue: 'outside',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.IDENT_VALUE,\r\n parse: function (position) {\r\n switch (position) {\r\n case 'inside':\r\n return LIST_STYLE_POSITION.INSIDE;\r\n case 'outside':\r\n default:\r\n return LIST_STYLE_POSITION.OUTSIDE;\r\n }\r\n }\r\n };\n\n var LIST_STYLE_TYPE;\r\n (function (LIST_STYLE_TYPE) {\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"NONE\"] = -1] = \"NONE\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"DISC\"] = 0] = \"DISC\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"CIRCLE\"] = 1] = \"CIRCLE\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"SQUARE\"] = 2] = \"SQUARE\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"DECIMAL\"] = 3] = \"DECIMAL\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"CJK_DECIMAL\"] = 4] = \"CJK_DECIMAL\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"DECIMAL_LEADING_ZERO\"] = 5] = \"DECIMAL_LEADING_ZERO\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"LOWER_ROMAN\"] = 6] = \"LOWER_ROMAN\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"UPPER_ROMAN\"] = 7] = \"UPPER_ROMAN\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"LOWER_GREEK\"] = 8] = \"LOWER_GREEK\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"LOWER_ALPHA\"] = 9] = \"LOWER_ALPHA\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"UPPER_ALPHA\"] = 10] = \"UPPER_ALPHA\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"ARABIC_INDIC\"] = 11] = \"ARABIC_INDIC\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"ARMENIAN\"] = 12] = \"ARMENIAN\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"BENGALI\"] = 13] = \"BENGALI\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"CAMBODIAN\"] = 14] = \"CAMBODIAN\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"CJK_EARTHLY_BRANCH\"] = 15] = \"CJK_EARTHLY_BRANCH\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"CJK_HEAVENLY_STEM\"] = 16] = \"CJK_HEAVENLY_STEM\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"CJK_IDEOGRAPHIC\"] = 17] = \"CJK_IDEOGRAPHIC\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"DEVANAGARI\"] = 18] = \"DEVANAGARI\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"ETHIOPIC_NUMERIC\"] = 19] = \"ETHIOPIC_NUMERIC\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"GEORGIAN\"] = 20] = \"GEORGIAN\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"GUJARATI\"] = 21] = \"GUJARATI\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"GURMUKHI\"] = 22] = \"GURMUKHI\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"HEBREW\"] = 22] = \"HEBREW\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"HIRAGANA\"] = 23] = \"HIRAGANA\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"HIRAGANA_IROHA\"] = 24] = \"HIRAGANA_IROHA\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"JAPANESE_FORMAL\"] = 25] = \"JAPANESE_FORMAL\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"JAPANESE_INFORMAL\"] = 26] = \"JAPANESE_INFORMAL\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"KANNADA\"] = 27] = \"KANNADA\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"KATAKANA\"] = 28] = \"KATAKANA\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"KATAKANA_IROHA\"] = 29] = \"KATAKANA_IROHA\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"KHMER\"] = 30] = \"KHMER\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"KOREAN_HANGUL_FORMAL\"] = 31] = \"KOREAN_HANGUL_FORMAL\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"KOREAN_HANJA_FORMAL\"] = 32] = \"KOREAN_HANJA_FORMAL\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"KOREAN_HANJA_INFORMAL\"] = 33] = \"KOREAN_HANJA_INFORMAL\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"LAO\"] = 34] = \"LAO\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"LOWER_ARMENIAN\"] = 35] = \"LOWER_ARMENIAN\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"MALAYALAM\"] = 36] = \"MALAYALAM\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"MONGOLIAN\"] = 37] = \"MONGOLIAN\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"MYANMAR\"] = 38] = \"MYANMAR\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"ORIYA\"] = 39] = \"ORIYA\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"PERSIAN\"] = 40] = \"PERSIAN\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"SIMP_CHINESE_FORMAL\"] = 41] = \"SIMP_CHINESE_FORMAL\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"SIMP_CHINESE_INFORMAL\"] = 42] = \"SIMP_CHINESE_INFORMAL\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"TAMIL\"] = 43] = \"TAMIL\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"TELUGU\"] = 44] = \"TELUGU\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"THAI\"] = 45] = \"THAI\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"TIBETAN\"] = 46] = \"TIBETAN\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"TRAD_CHINESE_FORMAL\"] = 47] = \"TRAD_CHINESE_FORMAL\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"TRAD_CHINESE_INFORMAL\"] = 48] = \"TRAD_CHINESE_INFORMAL\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"UPPER_ARMENIAN\"] = 49] = \"UPPER_ARMENIAN\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"DISCLOSURE_OPEN\"] = 50] = \"DISCLOSURE_OPEN\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"DISCLOSURE_CLOSED\"] = 51] = \"DISCLOSURE_CLOSED\";\r\n })(LIST_STYLE_TYPE || (LIST_STYLE_TYPE = {}));\r\n var listStyleType = {\r\n name: 'list-style-type',\r\n initialValue: 'none',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.IDENT_VALUE,\r\n parse: function (type) {\r\n switch (type) {\r\n case 'disc':\r\n return LIST_STYLE_TYPE.DISC;\r\n case 'circle':\r\n return LIST_STYLE_TYPE.CIRCLE;\r\n case 'square':\r\n return LIST_STYLE_TYPE.SQUARE;\r\n case 'decimal':\r\n return LIST_STYLE_TYPE.DECIMAL;\r\n case 'cjk-decimal':\r\n return LIST_STYLE_TYPE.CJK_DECIMAL;\r\n case 'decimal-leading-zero':\r\n return LIST_STYLE_TYPE.DECIMAL_LEADING_ZERO;\r\n case 'lower-roman':\r\n return LIST_STYLE_TYPE.LOWER_ROMAN;\r\n case 'upper-roman':\r\n return LIST_STYLE_TYPE.UPPER_ROMAN;\r\n case 'lower-greek':\r\n return LIST_STYLE_TYPE.LOWER_GREEK;\r\n case 'lower-alpha':\r\n return LIST_STYLE_TYPE.LOWER_ALPHA;\r\n case 'upper-alpha':\r\n return LIST_STYLE_TYPE.UPPER_ALPHA;\r\n case 'arabic-indic':\r\n return LIST_STYLE_TYPE.ARABIC_INDIC;\r\n case 'armenian':\r\n return LIST_STYLE_TYPE.ARMENIAN;\r\n case 'bengali':\r\n return LIST_STYLE_TYPE.BENGALI;\r\n case 'cambodian':\r\n return LIST_STYLE_TYPE.CAMBODIAN;\r\n case 'cjk-earthly-branch':\r\n return LIST_STYLE_TYPE.CJK_EARTHLY_BRANCH;\r\n case 'cjk-heavenly-stem':\r\n return LIST_STYLE_TYPE.CJK_HEAVENLY_STEM;\r\n case 'cjk-ideographic':\r\n return LIST_STYLE_TYPE.CJK_IDEOGRAPHIC;\r\n case 'devanagari':\r\n return LIST_STYLE_TYPE.DEVANAGARI;\r\n case 'ethiopic-numeric':\r\n return LIST_STYLE_TYPE.ETHIOPIC_NUMERIC;\r\n case 'georgian':\r\n return LIST_STYLE_TYPE.GEORGIAN;\r\n case 'gujarati':\r\n return LIST_STYLE_TYPE.GUJARATI;\r\n case 'gurmukhi':\r\n return LIST_STYLE_TYPE.GURMUKHI;\r\n case 'hebrew':\r\n return LIST_STYLE_TYPE.HEBREW;\r\n case 'hiragana':\r\n return LIST_STYLE_TYPE.HIRAGANA;\r\n case 'hiragana-iroha':\r\n return LIST_STYLE_TYPE.HIRAGANA_IROHA;\r\n case 'japanese-formal':\r\n return LIST_STYLE_TYPE.JAPANESE_FORMAL;\r\n case 'japanese-informal':\r\n return LIST_STYLE_TYPE.JAPANESE_INFORMAL;\r\n case 'kannada':\r\n return LIST_STYLE_TYPE.KANNADA;\r\n case 'katakana':\r\n return LIST_STYLE_TYPE.KATAKANA;\r\n case 'katakana-iroha':\r\n return LIST_STYLE_TYPE.KATAKANA_IROHA;\r\n case 'khmer':\r\n return LIST_STYLE_TYPE.KHMER;\r\n case 'korean-hangul-formal':\r\n return LIST_STYLE_TYPE.KOREAN_HANGUL_FORMAL;\r\n case 'korean-hanja-formal':\r\n return LIST_STYLE_TYPE.KOREAN_HANJA_FORMAL;\r\n case 'korean-hanja-informal':\r\n return LIST_STYLE_TYPE.KOREAN_HANJA_INFORMAL;\r\n case 'lao':\r\n return LIST_STYLE_TYPE.LAO;\r\n case 'lower-armenian':\r\n return LIST_STYLE_TYPE.LOWER_ARMENIAN;\r\n case 'malayalam':\r\n return LIST_STYLE_TYPE.MALAYALAM;\r\n case 'mongolian':\r\n return LIST_STYLE_TYPE.MONGOLIAN;\r\n case 'myanmar':\r\n return LIST_STYLE_TYPE.MYANMAR;\r\n case 'oriya':\r\n return LIST_STYLE_TYPE.ORIYA;\r\n case 'persian':\r\n return LIST_STYLE_TYPE.PERSIAN;\r\n case 'simp-chinese-formal':\r\n return LIST_STYLE_TYPE.SIMP_CHINESE_FORMAL;\r\n case 'simp-chinese-informal':\r\n return LIST_STYLE_TYPE.SIMP_CHINESE_INFORMAL;\r\n case 'tamil':\r\n return LIST_STYLE_TYPE.TAMIL;\r\n case 'telugu':\r\n return LIST_STYLE_TYPE.TELUGU;\r\n case 'thai':\r\n return LIST_STYLE_TYPE.THAI;\r\n case 'tibetan':\r\n return LIST_STYLE_TYPE.TIBETAN;\r\n case 'trad-chinese-formal':\r\n return LIST_STYLE_TYPE.TRAD_CHINESE_FORMAL;\r\n case 'trad-chinese-informal':\r\n return LIST_STYLE_TYPE.TRAD_CHINESE_INFORMAL;\r\n case 'upper-armenian':\r\n return LIST_STYLE_TYPE.UPPER_ARMENIAN;\r\n case 'disclosure-open':\r\n return LIST_STYLE_TYPE.DISCLOSURE_OPEN;\r\n case 'disclosure-closed':\r\n return LIST_STYLE_TYPE.DISCLOSURE_CLOSED;\r\n case 'none':\r\n default:\r\n return LIST_STYLE_TYPE.NONE;\r\n }\r\n }\r\n };\n\n var marginForSide = function (side) { return ({\r\n name: \"margin-\" + side,\r\n initialValue: '0',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.TOKEN_VALUE\r\n }); };\r\n var marginTop = marginForSide('top');\r\n var marginRight = marginForSide('right');\r\n var marginBottom = marginForSide('bottom');\r\n var marginLeft = marginForSide('left');\n\n var OVERFLOW;\r\n (function (OVERFLOW) {\r\n OVERFLOW[OVERFLOW[\"VISIBLE\"] = 0] = \"VISIBLE\";\r\n OVERFLOW[OVERFLOW[\"HIDDEN\"] = 1] = \"HIDDEN\";\r\n OVERFLOW[OVERFLOW[\"SCROLL\"] = 2] = \"SCROLL\";\r\n OVERFLOW[OVERFLOW[\"AUTO\"] = 3] = \"AUTO\";\r\n })(OVERFLOW || (OVERFLOW = {}));\r\n var overflow = {\r\n name: 'overflow',\r\n initialValue: 'visible',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.LIST,\r\n parse: function (tokens) {\r\n return tokens.filter(isIdentToken).map(function (overflow) {\r\n switch (overflow.value) {\r\n case 'hidden':\r\n return OVERFLOW.HIDDEN;\r\n case 'scroll':\r\n return OVERFLOW.SCROLL;\r\n case 'auto':\r\n return OVERFLOW.AUTO;\r\n case 'visible':\r\n default:\r\n return OVERFLOW.VISIBLE;\r\n }\r\n });\r\n }\r\n };\n\n var OVERFLOW_WRAP;\r\n (function (OVERFLOW_WRAP) {\r\n OVERFLOW_WRAP[\"NORMAL\"] = \"normal\";\r\n OVERFLOW_WRAP[\"BREAK_WORD\"] = \"break-word\";\r\n })(OVERFLOW_WRAP || (OVERFLOW_WRAP = {}));\r\n var overflowWrap = {\r\n name: 'overflow-wrap',\r\n initialValue: 'normal',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.IDENT_VALUE,\r\n parse: function (overflow) {\r\n switch (overflow) {\r\n case 'break-word':\r\n return OVERFLOW_WRAP.BREAK_WORD;\r\n case 'normal':\r\n default:\r\n return OVERFLOW_WRAP.NORMAL;\r\n }\r\n }\r\n };\n\n var paddingForSide = function (side) { return ({\r\n name: \"padding-\" + side,\r\n initialValue: '0',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.TYPE_VALUE,\r\n format: 'length-percentage'\r\n }); };\r\n var paddingTop = paddingForSide('top');\r\n var paddingRight = paddingForSide('right');\r\n var paddingBottom = paddingForSide('bottom');\r\n var paddingLeft = paddingForSide('left');\n\n var TEXT_ALIGN;\r\n (function (TEXT_ALIGN) {\r\n TEXT_ALIGN[TEXT_ALIGN[\"LEFT\"] = 0] = \"LEFT\";\r\n TEXT_ALIGN[TEXT_ALIGN[\"CENTER\"] = 1] = \"CENTER\";\r\n TEXT_ALIGN[TEXT_ALIGN[\"RIGHT\"] = 2] = \"RIGHT\";\r\n })(TEXT_ALIGN || (TEXT_ALIGN = {}));\r\n var textAlign = {\r\n name: 'text-align',\r\n initialValue: 'left',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.IDENT_VALUE,\r\n parse: function (textAlign) {\r\n switch (textAlign) {\r\n case 'right':\r\n return TEXT_ALIGN.RIGHT;\r\n case 'center':\r\n case 'justify':\r\n return TEXT_ALIGN.CENTER;\r\n case 'left':\r\n default:\r\n return TEXT_ALIGN.LEFT;\r\n }\r\n }\r\n };\n\n var POSITION;\r\n (function (POSITION) {\r\n POSITION[POSITION[\"STATIC\"] = 0] = \"STATIC\";\r\n POSITION[POSITION[\"RELATIVE\"] = 1] = \"RELATIVE\";\r\n POSITION[POSITION[\"ABSOLUTE\"] = 2] = \"ABSOLUTE\";\r\n POSITION[POSITION[\"FIXED\"] = 3] = \"FIXED\";\r\n POSITION[POSITION[\"STICKY\"] = 4] = \"STICKY\";\r\n })(POSITION || (POSITION = {}));\r\n var position = {\r\n name: 'position',\r\n initialValue: 'static',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.IDENT_VALUE,\r\n parse: function (position) {\r\n switch (position) {\r\n case 'relative':\r\n return POSITION.RELATIVE;\r\n case 'absolute':\r\n return POSITION.ABSOLUTE;\r\n case 'fixed':\r\n return POSITION.FIXED;\r\n case 'sticky':\r\n return POSITION.STICKY;\r\n }\r\n return POSITION.STATIC;\r\n }\r\n };\n\n var textShadow = {\r\n name: 'text-shadow',\r\n initialValue: 'none',\r\n type: PropertyDescriptorParsingType.LIST,\r\n prefix: false,\r\n parse: function (tokens) {\r\n if (tokens.length === 1 && isIdentWithValue(tokens[0], 'none')) {\r\n return [];\r\n }\r\n return parseFunctionArgs(tokens).map(function (values) {\r\n var shadow = {\r\n color: COLORS.TRANSPARENT,\r\n offsetX: ZERO_LENGTH,\r\n offsetY: ZERO_LENGTH,\r\n blur: ZERO_LENGTH\r\n };\r\n var c = 0;\r\n for (var i = 0; i < values.length; i++) {\r\n var token = values[i];\r\n if (isLength(token)) {\r\n if (c === 0) {\r\n shadow.offsetX = token;\r\n }\r\n else if (c === 1) {\r\n shadow.offsetY = token;\r\n }\r\n else {\r\n shadow.blur = token;\r\n }\r\n c++;\r\n }\r\n else {\r\n shadow.color = color.parse(token);\r\n }\r\n }\r\n return shadow;\r\n });\r\n }\r\n };\n\n var TEXT_TRANSFORM;\r\n (function (TEXT_TRANSFORM) {\r\n TEXT_TRANSFORM[TEXT_TRANSFORM[\"NONE\"] = 0] = \"NONE\";\r\n TEXT_TRANSFORM[TEXT_TRANSFORM[\"LOWERCASE\"] = 1] = \"LOWERCASE\";\r\n TEXT_TRANSFORM[TEXT_TRANSFORM[\"UPPERCASE\"] = 2] = \"UPPERCASE\";\r\n TEXT_TRANSFORM[TEXT_TRANSFORM[\"CAPITALIZE\"] = 3] = \"CAPITALIZE\";\r\n })(TEXT_TRANSFORM || (TEXT_TRANSFORM = {}));\r\n var textTransform = {\r\n name: 'text-transform',\r\n initialValue: 'none',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.IDENT_VALUE,\r\n parse: function (textTransform) {\r\n switch (textTransform) {\r\n case 'uppercase':\r\n return TEXT_TRANSFORM.UPPERCASE;\r\n case 'lowercase':\r\n return TEXT_TRANSFORM.LOWERCASE;\r\n case 'capitalize':\r\n return TEXT_TRANSFORM.CAPITALIZE;\r\n }\r\n return TEXT_TRANSFORM.NONE;\r\n }\r\n };\n\n var transform = {\r\n name: 'transform',\r\n initialValue: 'none',\r\n prefix: true,\r\n type: PropertyDescriptorParsingType.VALUE,\r\n parse: function (token) {\r\n if (token.type === TokenType.IDENT_TOKEN && token.value === 'none') {\r\n return null;\r\n }\r\n if (token.type === TokenType.FUNCTION) {\r\n var transformFunction = SUPPORTED_TRANSFORM_FUNCTIONS[token.name];\r\n if (typeof transformFunction === 'undefined') {\r\n throw new Error(\"Attempting to parse an unsupported transform function \\\"\" + token.name + \"\\\"\");\r\n }\r\n return transformFunction(token.values);\r\n }\r\n return null;\r\n }\r\n };\r\n var matrix = function (args) {\r\n var values = args.filter(function (arg) { return arg.type === TokenType.NUMBER_TOKEN; }).map(function (arg) { return arg.number; });\r\n return values.length === 6 ? values : null;\r\n };\r\n // doesn't support 3D transforms at the moment\r\n var matrix3d = function (args) {\r\n var values = args.filter(function (arg) { return arg.type === TokenType.NUMBER_TOKEN; }).map(function (arg) { return arg.number; });\r\n var a1 = values[0], b1 = values[1], _a = values[2], _b = values[3], a2 = values[4], b2 = values[5], _c = values[6], _d = values[7], _e = values[8], _f = values[9], _g = values[10], _h = values[11], a4 = values[12], b4 = values[13], _j = values[14], _k = values[15];\r\n return values.length === 16 ? [a1, b1, a2, b2, a4, b4] : null;\r\n };\r\n var SUPPORTED_TRANSFORM_FUNCTIONS = {\r\n matrix: matrix,\r\n matrix3d: matrix3d\r\n };\n\n var DEFAULT_VALUE = {\r\n type: TokenType.PERCENTAGE_TOKEN,\r\n number: 50,\r\n flags: FLAG_INTEGER\r\n };\r\n var DEFAULT = [DEFAULT_VALUE, DEFAULT_VALUE];\r\n var transformOrigin = {\r\n name: 'transform-origin',\r\n initialValue: '50% 50%',\r\n prefix: true,\r\n type: PropertyDescriptorParsingType.LIST,\r\n parse: function (tokens) {\r\n var origins = tokens.filter(isLengthPercentage);\r\n if (origins.length !== 2) {\r\n return DEFAULT;\r\n }\r\n return [origins[0], origins[1]];\r\n }\r\n };\n\n var VISIBILITY;\r\n (function (VISIBILITY) {\r\n VISIBILITY[VISIBILITY[\"VISIBLE\"] = 0] = \"VISIBLE\";\r\n VISIBILITY[VISIBILITY[\"HIDDEN\"] = 1] = \"HIDDEN\";\r\n VISIBILITY[VISIBILITY[\"COLLAPSE\"] = 2] = \"COLLAPSE\";\r\n })(VISIBILITY || (VISIBILITY = {}));\r\n var visibility = {\r\n name: 'visible',\r\n initialValue: 'none',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.IDENT_VALUE,\r\n parse: function (visibility) {\r\n switch (visibility) {\r\n case 'hidden':\r\n return VISIBILITY.HIDDEN;\r\n case 'collapse':\r\n return VISIBILITY.COLLAPSE;\r\n case 'visible':\r\n default:\r\n return VISIBILITY.VISIBLE;\r\n }\r\n }\r\n };\n\n var WORD_BREAK;\r\n (function (WORD_BREAK) {\r\n WORD_BREAK[\"NORMAL\"] = \"normal\";\r\n WORD_BREAK[\"BREAK_ALL\"] = \"break-all\";\r\n WORD_BREAK[\"KEEP_ALL\"] = \"keep-all\";\r\n })(WORD_BREAK || (WORD_BREAK = {}));\r\n var wordBreak = {\r\n name: 'word-break',\r\n initialValue: 'normal',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.IDENT_VALUE,\r\n parse: function (wordBreak) {\r\n switch (wordBreak) {\r\n case 'break-all':\r\n return WORD_BREAK.BREAK_ALL;\r\n case 'keep-all':\r\n return WORD_BREAK.KEEP_ALL;\r\n case 'normal':\r\n default:\r\n return WORD_BREAK.NORMAL;\r\n }\r\n }\r\n };\n\n var zIndex = {\r\n name: 'z-index',\r\n initialValue: 'auto',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.VALUE,\r\n parse: function (token) {\r\n if (token.type === TokenType.IDENT_TOKEN) {\r\n return { auto: true, order: 0 };\r\n }\r\n if (isNumberToken(token)) {\r\n return { auto: false, order: token.number };\r\n }\r\n throw new Error(\"Invalid z-index number parsed\");\r\n }\r\n };\n\n var opacity = {\r\n name: 'opacity',\r\n initialValue: '1',\r\n type: PropertyDescriptorParsingType.VALUE,\r\n prefix: false,\r\n parse: function (token) {\r\n if (isNumberToken(token)) {\r\n return token.number;\r\n }\r\n return 1;\r\n }\r\n };\n\n var textDecorationColor = {\r\n name: \"text-decoration-color\",\r\n initialValue: 'transparent',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.TYPE_VALUE,\r\n format: 'color'\r\n };\n\n var textDecorationLine = {\r\n name: 'text-decoration-line',\r\n initialValue: 'none',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.LIST,\r\n parse: function (tokens) {\r\n return tokens\r\n .filter(isIdentToken)\r\n .map(function (token) {\r\n switch (token.value) {\r\n case 'underline':\r\n return 1 /* UNDERLINE */;\r\n case 'overline':\r\n return 2 /* OVERLINE */;\r\n case 'line-through':\r\n return 3 /* LINE_THROUGH */;\r\n case 'none':\r\n return 4 /* BLINK */;\r\n }\r\n return 0 /* NONE */;\r\n })\r\n .filter(function (line) { return line !== 0 /* NONE */; });\r\n }\r\n };\n\n var fontFamily = {\r\n name: \"font-family\",\r\n initialValue: '',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.LIST,\r\n parse: function (tokens) {\r\n var accumulator = [];\r\n var results = [];\r\n tokens.forEach(function (token) {\r\n switch (token.type) {\r\n case TokenType.IDENT_TOKEN:\r\n case TokenType.STRING_TOKEN:\r\n accumulator.push(token.value);\r\n break;\r\n case TokenType.NUMBER_TOKEN:\r\n accumulator.push(token.number.toString());\r\n break;\r\n case TokenType.COMMA_TOKEN:\r\n results.push(accumulator.join(' '));\r\n accumulator.length = 0;\r\n break;\r\n }\r\n });\r\n if (accumulator.length) {\r\n results.push(accumulator.join(' '));\r\n }\r\n return results.map(function (result) { return (result.indexOf(' ') === -1 ? result : \"'\" + result + \"'\"); });\r\n }\r\n };\n\n var fontSize = {\r\n name: \"font-size\",\r\n initialValue: '0',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.TYPE_VALUE,\r\n format: 'length'\r\n };\n\n var fontWeight = {\r\n name: 'font-weight',\r\n initialValue: 'normal',\r\n type: PropertyDescriptorParsingType.VALUE,\r\n prefix: false,\r\n parse: function (token) {\r\n if (isNumberToken(token)) {\r\n return token.number;\r\n }\r\n if (isIdentToken(token)) {\r\n switch (token.value) {\r\n case 'bold':\r\n return 700;\r\n case 'normal':\r\n default:\r\n return 400;\r\n }\r\n }\r\n return 400;\r\n }\r\n };\n\n var fontVariant = {\r\n name: 'font-variant',\r\n initialValue: 'none',\r\n type: PropertyDescriptorParsingType.LIST,\r\n prefix: false,\r\n parse: function (tokens) {\r\n return tokens.filter(isIdentToken).map(function (token) { return token.value; });\r\n }\r\n };\n\n var FONT_STYLE;\r\n (function (FONT_STYLE) {\r\n FONT_STYLE[\"NORMAL\"] = \"normal\";\r\n FONT_STYLE[\"ITALIC\"] = \"italic\";\r\n FONT_STYLE[\"OBLIQUE\"] = \"oblique\";\r\n })(FONT_STYLE || (FONT_STYLE = {}));\r\n var fontStyle = {\r\n name: 'font-style',\r\n initialValue: 'normal',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.IDENT_VALUE,\r\n parse: function (overflow) {\r\n switch (overflow) {\r\n case 'oblique':\r\n return FONT_STYLE.OBLIQUE;\r\n case 'italic':\r\n return FONT_STYLE.ITALIC;\r\n case 'normal':\r\n default:\r\n return FONT_STYLE.NORMAL;\r\n }\r\n }\r\n };\n\n var contains = function (bit, value) { return (bit & value) !== 0; };\n\n var content = {\r\n name: 'content',\r\n initialValue: 'none',\r\n type: PropertyDescriptorParsingType.LIST,\r\n prefix: false,\r\n parse: function (tokens) {\r\n if (tokens.length === 0) {\r\n return [];\r\n }\r\n var first = tokens[0];\r\n if (first.type === TokenType.IDENT_TOKEN && first.value === 'none') {\r\n return [];\r\n }\r\n return tokens;\r\n }\r\n };\n\n var counterIncrement = {\r\n name: 'counter-increment',\r\n initialValue: 'none',\r\n prefix: true,\r\n type: PropertyDescriptorParsingType.LIST,\r\n parse: function (tokens) {\r\n if (tokens.length === 0) {\r\n return null;\r\n }\r\n var first = tokens[0];\r\n if (first.type === TokenType.IDENT_TOKEN && first.value === 'none') {\r\n return null;\r\n }\r\n var increments = [];\r\n var filtered = tokens.filter(nonWhiteSpace);\r\n for (var i = 0; i < filtered.length; i++) {\r\n var counter = filtered[i];\r\n var next = filtered[i + 1];\r\n if (counter.type === TokenType.IDENT_TOKEN) {\r\n var increment = next && isNumberToken(next) ? next.number : 1;\r\n increments.push({ counter: counter.value, increment: increment });\r\n }\r\n }\r\n return increments;\r\n }\r\n };\n\n var counterReset = {\r\n name: 'counter-reset',\r\n initialValue: 'none',\r\n prefix: true,\r\n type: PropertyDescriptorParsingType.LIST,\r\n parse: function (tokens) {\r\n if (tokens.length === 0) {\r\n return [];\r\n }\r\n var resets = [];\r\n var filtered = tokens.filter(nonWhiteSpace);\r\n for (var i = 0; i < filtered.length; i++) {\r\n var counter = filtered[i];\r\n var next = filtered[i + 1];\r\n if (isIdentToken(counter) && counter.value !== 'none') {\r\n var reset = next && isNumberToken(next) ? next.number : 0;\r\n resets.push({ counter: counter.value, reset: reset });\r\n }\r\n }\r\n return resets;\r\n }\r\n };\n\n var quotes = {\r\n name: 'quotes',\r\n initialValue: 'none',\r\n prefix: true,\r\n type: PropertyDescriptorParsingType.LIST,\r\n parse: function (tokens) {\r\n if (tokens.length === 0) {\r\n return null;\r\n }\r\n var first = tokens[0];\r\n if (first.type === TokenType.IDENT_TOKEN && first.value === 'none') {\r\n return null;\r\n }\r\n var quotes = [];\r\n var filtered = tokens.filter(isStringToken);\r\n if (filtered.length % 2 !== 0) {\r\n return null;\r\n }\r\n for (var i = 0; i < filtered.length; i += 2) {\r\n var open_1 = filtered[i].value;\r\n var close_1 = filtered[i + 1].value;\r\n quotes.push({ open: open_1, close: close_1 });\r\n }\r\n return quotes;\r\n }\r\n };\r\n var getQuote = function (quotes, depth, open) {\r\n if (!quotes) {\r\n return '';\r\n }\r\n var quote = quotes[Math.min(depth, quotes.length - 1)];\r\n if (!quote) {\r\n return '';\r\n }\r\n return open ? quote.open : quote.close;\r\n };\n\n var boxShadow = {\r\n name: 'box-shadow',\r\n initialValue: 'none',\r\n type: PropertyDescriptorParsingType.LIST,\r\n prefix: false,\r\n parse: function (tokens) {\r\n if (tokens.length === 1 && isIdentWithValue(tokens[0], 'none')) {\r\n return [];\r\n }\r\n return parseFunctionArgs(tokens).map(function (values) {\r\n var shadow = {\r\n color: 0x000000ff,\r\n offsetX: ZERO_LENGTH,\r\n offsetY: ZERO_LENGTH,\r\n blur: ZERO_LENGTH,\r\n spread: ZERO_LENGTH,\r\n inset: false\r\n };\r\n var c = 0;\r\n for (var i = 0; i < values.length; i++) {\r\n var token = values[i];\r\n if (isIdentWithValue(token, 'inset')) {\r\n shadow.inset = true;\r\n }\r\n else if (isLength(token)) {\r\n if (c === 0) {\r\n shadow.offsetX = token;\r\n }\r\n else if (c === 1) {\r\n shadow.offsetY = token;\r\n }\r\n else if (c === 2) {\r\n shadow.blur = token;\r\n }\r\n else {\r\n shadow.spread = token;\r\n }\r\n c++;\r\n }\r\n else {\r\n shadow.color = color.parse(token);\r\n }\r\n }\r\n return shadow;\r\n });\r\n }\r\n };\n\n var CSSParsedDeclaration = /** @class */ (function () {\r\n function CSSParsedDeclaration(declaration) {\r\n this.backgroundClip = parse(backgroundClip, declaration.backgroundClip);\r\n this.backgroundColor = parse(backgroundColor, declaration.backgroundColor);\r\n this.backgroundImage = parse(backgroundImage, declaration.backgroundImage);\r\n this.backgroundOrigin = parse(backgroundOrigin, declaration.backgroundOrigin);\r\n this.backgroundPosition = parse(backgroundPosition, declaration.backgroundPosition);\r\n this.backgroundRepeat = parse(backgroundRepeat, declaration.backgroundRepeat);\r\n this.backgroundSize = parse(backgroundSize, declaration.backgroundSize);\r\n this.borderTopColor = parse(borderTopColor, declaration.borderTopColor);\r\n this.borderRightColor = parse(borderRightColor, declaration.borderRightColor);\r\n this.borderBottomColor = parse(borderBottomColor, declaration.borderBottomColor);\r\n this.borderLeftColor = parse(borderLeftColor, declaration.borderLeftColor);\r\n this.borderTopLeftRadius = parse(borderTopLeftRadius, declaration.borderTopLeftRadius);\r\n this.borderTopRightRadius = parse(borderTopRightRadius, declaration.borderTopRightRadius);\r\n this.borderBottomRightRadius = parse(borderBottomRightRadius, declaration.borderBottomRightRadius);\r\n this.borderBottomLeftRadius = parse(borderBottomLeftRadius, declaration.borderBottomLeftRadius);\r\n this.borderTopStyle = parse(borderTopStyle, declaration.borderTopStyle);\r\n this.borderRightStyle = parse(borderRightStyle, declaration.borderRightStyle);\r\n this.borderBottomStyle = parse(borderBottomStyle, declaration.borderBottomStyle);\r\n this.borderLeftStyle = parse(borderLeftStyle, declaration.borderLeftStyle);\r\n this.borderTopWidth = parse(borderTopWidth, declaration.borderTopWidth);\r\n this.borderRightWidth = parse(borderRightWidth, declaration.borderRightWidth);\r\n this.borderBottomWidth = parse(borderBottomWidth, declaration.borderBottomWidth);\r\n this.borderLeftWidth = parse(borderLeftWidth, declaration.borderLeftWidth);\r\n this.boxShadow = parse(boxShadow, declaration.boxShadow);\r\n this.color = parse(color$1, declaration.color);\r\n this.display = parse(display, declaration.display);\r\n this.float = parse(float, declaration.cssFloat);\r\n this.fontFamily = parse(fontFamily, declaration.fontFamily);\r\n this.fontSize = parse(fontSize, declaration.fontSize);\r\n this.fontStyle = parse(fontStyle, declaration.fontStyle);\r\n this.fontVariant = parse(fontVariant, declaration.fontVariant);\r\n this.fontWeight = parse(fontWeight, declaration.fontWeight);\r\n this.letterSpacing = parse(letterSpacing, declaration.letterSpacing);\r\n this.lineBreak = parse(lineBreak, declaration.lineBreak);\r\n this.lineHeight = parse(lineHeight, declaration.lineHeight);\r\n this.listStyleImage = parse(listStyleImage, declaration.listStyleImage);\r\n this.listStylePosition = parse(listStylePosition, declaration.listStylePosition);\r\n this.listStyleType = parse(listStyleType, declaration.listStyleType);\r\n this.marginTop = parse(marginTop, declaration.marginTop);\r\n this.marginRight = parse(marginRight, declaration.marginRight);\r\n this.marginBottom = parse(marginBottom, declaration.marginBottom);\r\n this.marginLeft = parse(marginLeft, declaration.marginLeft);\r\n this.opacity = parse(opacity, declaration.opacity);\r\n var overflowTuple = parse(overflow, declaration.overflow);\r\n this.overflowX = overflowTuple[0];\r\n this.overflowY = overflowTuple[overflowTuple.length > 1 ? 1 : 0];\r\n this.overflowWrap = parse(overflowWrap, declaration.overflowWrap);\r\n this.paddingTop = parse(paddingTop, declaration.paddingTop);\r\n this.paddingRight = parse(paddingRight, declaration.paddingRight);\r\n this.paddingBottom = parse(paddingBottom, declaration.paddingBottom);\r\n this.paddingLeft = parse(paddingLeft, declaration.paddingLeft);\r\n this.position = parse(position, declaration.position);\r\n this.textAlign = parse(textAlign, declaration.textAlign);\r\n this.textDecorationColor = parse(textDecorationColor, declaration.textDecorationColor || declaration.color);\r\n this.textDecorationLine = parse(textDecorationLine, declaration.textDecorationLine);\r\n this.textShadow = parse(textShadow, declaration.textShadow);\r\n this.textTransform = parse(textTransform, declaration.textTransform);\r\n this.transform = parse(transform, declaration.transform);\r\n this.transformOrigin = parse(transformOrigin, declaration.transformOrigin);\r\n this.visibility = parse(visibility, declaration.visibility);\r\n this.wordBreak = parse(wordBreak, declaration.wordBreak);\r\n this.zIndex = parse(zIndex, declaration.zIndex);\r\n }\r\n CSSParsedDeclaration.prototype.isVisible = function () {\r\n return this.display > 0 && this.opacity > 0 && this.visibility === VISIBILITY.VISIBLE;\r\n };\r\n CSSParsedDeclaration.prototype.isTransparent = function () {\r\n return isTransparent(this.backgroundColor);\r\n };\r\n CSSParsedDeclaration.prototype.isTransformed = function () {\r\n return this.transform !== null;\r\n };\r\n CSSParsedDeclaration.prototype.isPositioned = function () {\r\n return this.position !== POSITION.STATIC;\r\n };\r\n CSSParsedDeclaration.prototype.isPositionedWithZIndex = function () {\r\n return this.isPositioned() && !this.zIndex.auto;\r\n };\r\n CSSParsedDeclaration.prototype.isFloating = function () {\r\n return this.float !== FLOAT.NONE;\r\n };\r\n CSSParsedDeclaration.prototype.isInlineLevel = function () {\r\n return (contains(this.display, 4 /* INLINE */) ||\r\n contains(this.display, 33554432 /* INLINE_BLOCK */) ||\r\n contains(this.display, 268435456 /* INLINE_FLEX */) ||\r\n contains(this.display, 536870912 /* INLINE_GRID */) ||\r\n contains(this.display, 67108864 /* INLINE_LIST_ITEM */) ||\r\n contains(this.display, 134217728 /* INLINE_TABLE */));\r\n };\r\n return CSSParsedDeclaration;\r\n }());\r\n var CSSParsedPseudoDeclaration = /** @class */ (function () {\r\n function CSSParsedPseudoDeclaration(declaration) {\r\n this.content = parse(content, declaration.content);\r\n this.quotes = parse(quotes, declaration.quotes);\r\n }\r\n return CSSParsedPseudoDeclaration;\r\n }());\r\n var CSSParsedCounterDeclaration = /** @class */ (function () {\r\n function CSSParsedCounterDeclaration(declaration) {\r\n this.counterIncrement = parse(counterIncrement, declaration.counterIncrement);\r\n this.counterReset = parse(counterReset, declaration.counterReset);\r\n }\r\n return CSSParsedCounterDeclaration;\r\n }());\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n var parse = function (descriptor, style) {\r\n var tokenizer = new Tokenizer();\r\n var value = style !== null && typeof style !== 'undefined' ? style.toString() : descriptor.initialValue;\r\n tokenizer.write(value);\r\n var parser = new Parser(tokenizer.read());\r\n switch (descriptor.type) {\r\n case PropertyDescriptorParsingType.IDENT_VALUE:\r\n var token = parser.parseComponentValue();\r\n return descriptor.parse(isIdentToken(token) ? token.value : descriptor.initialValue);\r\n case PropertyDescriptorParsingType.VALUE:\r\n return descriptor.parse(parser.parseComponentValue());\r\n case PropertyDescriptorParsingType.LIST:\r\n return descriptor.parse(parser.parseComponentValues());\r\n case PropertyDescriptorParsingType.TOKEN_VALUE:\r\n return parser.parseComponentValue();\r\n case PropertyDescriptorParsingType.TYPE_VALUE:\r\n switch (descriptor.format) {\r\n case 'angle':\r\n return angle.parse(parser.parseComponentValue());\r\n case 'color':\r\n return color.parse(parser.parseComponentValue());\r\n case 'image':\r\n return image.parse(parser.parseComponentValue());\r\n case 'length':\r\n var length_1 = parser.parseComponentValue();\r\n return isLength(length_1) ? length_1 : ZERO_LENGTH;\r\n case 'length-percentage':\r\n var value_1 = parser.parseComponentValue();\r\n return isLengthPercentage(value_1) ? value_1 : ZERO_LENGTH;\r\n }\r\n }\r\n throw new Error(\"Attempting to parse unsupported css format type \" + descriptor.format);\r\n };\n\n var ElementContainer = /** @class */ (function () {\r\n function ElementContainer(element) {\r\n this.styles = new CSSParsedDeclaration(window.getComputedStyle(element, null));\r\n this.textNodes = [];\r\n this.elements = [];\r\n if (this.styles.transform !== null && isHTMLElementNode(element)) {\r\n // getBoundingClientRect takes transforms into account\r\n element.style.transform = 'none';\r\n }\r\n this.bounds = parseBounds(element);\r\n this.flags = 0;\r\n }\r\n return ElementContainer;\r\n }());\n\n var TextBounds = /** @class */ (function () {\r\n function TextBounds(text, bounds) {\r\n this.text = text;\r\n this.bounds = bounds;\r\n }\r\n return TextBounds;\r\n }());\r\n var parseTextBounds = function (value, styles, node) {\r\n var textList = breakText(value, styles);\r\n var textBounds = [];\r\n var offset = 0;\r\n textList.forEach(function (text) {\r\n if (styles.textDecorationLine.length || text.trim().length > 0) {\r\n if (FEATURES.SUPPORT_RANGE_BOUNDS) {\r\n textBounds.push(new TextBounds(text, getRangeBounds(node, offset, text.length)));\r\n }\r\n else {\r\n var replacementNode = node.splitText(text.length);\r\n textBounds.push(new TextBounds(text, getWrapperBounds(node)));\r\n node = replacementNode;\r\n }\r\n }\r\n else if (!FEATURES.SUPPORT_RANGE_BOUNDS) {\r\n node = node.splitText(text.length);\r\n }\r\n offset += text.length;\r\n });\r\n return textBounds;\r\n };\r\n var getWrapperBounds = function (node) {\r\n var ownerDocument = node.ownerDocument;\r\n if (ownerDocument) {\r\n var wrapper = ownerDocument.createElement('html2canvaswrapper');\r\n wrapper.appendChild(node.cloneNode(true));\r\n var parentNode = node.parentNode;\r\n if (parentNode) {\r\n parentNode.replaceChild(wrapper, node);\r\n var bounds = parseBounds(wrapper);\r\n if (wrapper.firstChild) {\r\n parentNode.replaceChild(wrapper.firstChild, wrapper);\r\n }\r\n return bounds;\r\n }\r\n }\r\n return new Bounds(0, 0, 0, 0);\r\n };\r\n var getRangeBounds = function (node, offset, length) {\r\n var ownerDocument = node.ownerDocument;\r\n if (!ownerDocument) {\r\n throw new Error('Node has no owner document');\r\n }\r\n var range = ownerDocument.createRange();\r\n range.setStart(node, offset);\r\n range.setEnd(node, offset + length);\r\n return Bounds.fromClientRect(range.getBoundingClientRect());\r\n };\r\n var breakText = function (value, styles) {\r\n return styles.letterSpacing !== 0 ? toCodePoints(value).map(function (i) { return fromCodePoint(i); }) : breakWords(value, styles);\r\n };\r\n var breakWords = function (str, styles) {\r\n var breaker = LineBreaker(str, {\r\n lineBreak: styles.lineBreak,\r\n wordBreak: styles.overflowWrap === OVERFLOW_WRAP.BREAK_WORD ? 'break-word' : styles.wordBreak\r\n });\r\n var words = [];\r\n var bk;\r\n while (!(bk = breaker.next()).done) {\r\n if (bk.value) {\r\n words.push(bk.value.slice());\r\n }\r\n }\r\n return words;\r\n };\n\n var TextContainer = /** @class */ (function () {\r\n function TextContainer(node, styles) {\r\n this.text = transform$1(node.data, styles.textTransform);\r\n this.textBounds = parseTextBounds(this.text, styles, node);\r\n }\r\n return TextContainer;\r\n }());\r\n var transform$1 = function (text, transform) {\r\n switch (transform) {\r\n case TEXT_TRANSFORM.LOWERCASE:\r\n return text.toLowerCase();\r\n case TEXT_TRANSFORM.CAPITALIZE:\r\n return text.replace(CAPITALIZE, capitalize);\r\n case TEXT_TRANSFORM.UPPERCASE:\r\n return text.toUpperCase();\r\n default:\r\n return text;\r\n }\r\n };\r\n var CAPITALIZE = /(^|\\s|:|-|\\(|\\))([a-z])/g;\r\n var capitalize = function (m, p1, p2) {\r\n if (m.length > 0) {\r\n return p1 + p2.toUpperCase();\r\n }\r\n return m;\r\n };\n\n var ImageElementContainer = /** @class */ (function (_super) {\r\n __extends(ImageElementContainer, _super);\r\n function ImageElementContainer(img) {\r\n var _this = _super.call(this, img) || this;\r\n _this.src = img.currentSrc || img.src;\r\n _this.intrinsicWidth = img.naturalWidth;\r\n _this.intrinsicHeight = img.naturalHeight;\r\n CacheStorage.getInstance().addImage(_this.src);\r\n return _this;\r\n }\r\n return ImageElementContainer;\r\n }(ElementContainer));\n\n var CanvasElementContainer = /** @class */ (function (_super) {\r\n __extends(CanvasElementContainer, _super);\r\n function CanvasElementContainer(canvas) {\r\n var _this = _super.call(this, canvas) || this;\r\n _this.canvas = canvas;\r\n _this.intrinsicWidth = canvas.width;\r\n _this.intrinsicHeight = canvas.height;\r\n return _this;\r\n }\r\n return CanvasElementContainer;\r\n }(ElementContainer));\n\n var SVGElementContainer = /** @class */ (function (_super) {\r\n __extends(SVGElementContainer, _super);\r\n function SVGElementContainer(img) {\r\n var _this = _super.call(this, img) || this;\r\n var s = new XMLSerializer();\r\n _this.svg = \"data:image/svg+xml,\" + encodeURIComponent(s.serializeToString(img));\r\n _this.intrinsicWidth = img.width.baseVal.value;\r\n _this.intrinsicHeight = img.height.baseVal.value;\r\n CacheStorage.getInstance().addImage(_this.svg);\r\n return _this;\r\n }\r\n return SVGElementContainer;\r\n }(ElementContainer));\n\n var LIElementContainer = /** @class */ (function (_super) {\r\n __extends(LIElementContainer, _super);\r\n function LIElementContainer(element) {\r\n var _this = _super.call(this, element) || this;\r\n _this.value = element.value;\r\n return _this;\r\n }\r\n return LIElementContainer;\r\n }(ElementContainer));\n\n var OLElementContainer = /** @class */ (function (_super) {\r\n __extends(OLElementContainer, _super);\r\n function OLElementContainer(element) {\r\n var _this = _super.call(this, element) || this;\r\n _this.start = element.start;\r\n _this.reversed = typeof element.reversed === 'boolean' && element.reversed === true;\r\n return _this;\r\n }\r\n return OLElementContainer;\r\n }(ElementContainer));\n\n var CHECKBOX_BORDER_RADIUS = [\r\n {\r\n type: TokenType.DIMENSION_TOKEN,\r\n flags: 0,\r\n unit: 'px',\r\n number: 3\r\n }\r\n ];\r\n var RADIO_BORDER_RADIUS = [\r\n {\r\n type: TokenType.PERCENTAGE_TOKEN,\r\n flags: 0,\r\n number: 50\r\n }\r\n ];\r\n var reformatInputBounds = function (bounds) {\r\n if (bounds.width > bounds.height) {\r\n return new Bounds(bounds.left + (bounds.width - bounds.height) / 2, bounds.top, bounds.height, bounds.height);\r\n }\r\n else if (bounds.width < bounds.height) {\r\n return new Bounds(bounds.left, bounds.top + (bounds.height - bounds.width) / 2, bounds.width, bounds.width);\r\n }\r\n return bounds;\r\n };\r\n var getInputValue = function (node) {\r\n var value = node.type === PASSWORD ? new Array(node.value.length + 1).join('\\u2022') : node.value;\r\n return value.length === 0 ? node.placeholder || '' : value;\r\n };\r\n var CHECKBOX = 'checkbox';\r\n var RADIO = 'radio';\r\n var PASSWORD = 'password';\r\n var INPUT_COLOR = 0x2a2a2aff;\r\n var InputElementContainer = /** @class */ (function (_super) {\r\n __extends(InputElementContainer, _super);\r\n function InputElementContainer(input) {\r\n var _this = _super.call(this, input) || this;\r\n _this.type = input.type.toLowerCase();\r\n _this.checked = input.checked;\r\n _this.value = getInputValue(input);\r\n if (_this.type === CHECKBOX || _this.type === RADIO) {\r\n _this.styles.backgroundColor = 0xdededeff;\r\n _this.styles.borderTopColor = _this.styles.borderRightColor = _this.styles.borderBottomColor = _this.styles.borderLeftColor = 0xa5a5a5ff;\r\n _this.styles.borderTopWidth = _this.styles.borderRightWidth = _this.styles.borderBottomWidth = _this.styles.borderLeftWidth = 1;\r\n _this.styles.borderTopStyle = _this.styles.borderRightStyle = _this.styles.borderBottomStyle = _this.styles.borderLeftStyle =\r\n BORDER_STYLE.SOLID;\r\n _this.styles.backgroundClip = [BACKGROUND_CLIP.BORDER_BOX];\r\n _this.styles.backgroundOrigin = [0 /* BORDER_BOX */];\r\n _this.bounds = reformatInputBounds(_this.bounds);\r\n }\r\n switch (_this.type) {\r\n case CHECKBOX:\r\n _this.styles.borderTopRightRadius = _this.styles.borderTopLeftRadius = _this.styles.borderBottomRightRadius = _this.styles.borderBottomLeftRadius = CHECKBOX_BORDER_RADIUS;\r\n break;\r\n case RADIO:\r\n _this.styles.borderTopRightRadius = _this.styles.borderTopLeftRadius = _this.styles.borderBottomRightRadius = _this.styles.borderBottomLeftRadius = RADIO_BORDER_RADIUS;\r\n break;\r\n }\r\n return _this;\r\n }\r\n return InputElementContainer;\r\n }(ElementContainer));\n\n var SelectElementContainer = /** @class */ (function (_super) {\r\n __extends(SelectElementContainer, _super);\r\n function SelectElementContainer(element) {\r\n var _this = _super.call(this, element) || this;\r\n var option = element.options[element.selectedIndex || 0];\r\n _this.value = option ? option.text || '' : '';\r\n return _this;\r\n }\r\n return SelectElementContainer;\r\n }(ElementContainer));\n\n var TextareaElementContainer = /** @class */ (function (_super) {\r\n __extends(TextareaElementContainer, _super);\r\n function TextareaElementContainer(element) {\r\n var _this = _super.call(this, element) || this;\r\n _this.value = element.value;\r\n return _this;\r\n }\r\n return TextareaElementContainer;\r\n }(ElementContainer));\n\n var parseColor = function (value) { return color.parse(Parser.create(value).parseComponentValue()); };\r\n var IFrameElementContainer = /** @class */ (function (_super) {\r\n __extends(IFrameElementContainer, _super);\r\n function IFrameElementContainer(iframe) {\r\n var _this = _super.call(this, iframe) || this;\r\n _this.src = iframe.src;\r\n _this.width = parseInt(iframe.width, 10) || 0;\r\n _this.height = parseInt(iframe.height, 10) || 0;\r\n _this.backgroundColor = _this.styles.backgroundColor;\r\n try {\r\n if (iframe.contentWindow &&\r\n iframe.contentWindow.document &&\r\n iframe.contentWindow.document.documentElement) {\r\n _this.tree = parseTree(iframe.contentWindow.document.documentElement);\r\n // http://www.w3.org/TR/css3-background/#special-backgrounds\r\n var documentBackgroundColor = iframe.contentWindow.document.documentElement\r\n ? parseColor(getComputedStyle(iframe.contentWindow.document.documentElement)\r\n .backgroundColor)\r\n : COLORS.TRANSPARENT;\r\n var bodyBackgroundColor = iframe.contentWindow.document.body\r\n ? parseColor(getComputedStyle(iframe.contentWindow.document.body).backgroundColor)\r\n : COLORS.TRANSPARENT;\r\n _this.backgroundColor = isTransparent(documentBackgroundColor)\r\n ? isTransparent(bodyBackgroundColor)\r\n ? _this.styles.backgroundColor\r\n : bodyBackgroundColor\r\n : documentBackgroundColor;\r\n }\r\n }\r\n catch (e) { }\r\n return _this;\r\n }\r\n return IFrameElementContainer;\r\n }(ElementContainer));\n\n var LIST_OWNERS = ['OL', 'UL', 'MENU'];\r\n var parseNodeTree = function (node, parent, root) {\r\n for (var childNode = node.firstChild, nextNode = void 0; childNode; childNode = nextNode) {\r\n nextNode = childNode.nextSibling;\r\n if (isTextNode(childNode) && childNode.data.trim().length > 0) {\r\n parent.textNodes.push(new TextContainer(childNode, parent.styles));\r\n }\r\n else if (isElementNode(childNode)) {\r\n var container = createContainer(childNode);\r\n if (container.styles.isVisible()) {\r\n if (createsRealStackingContext(childNode, container, root)) {\r\n container.flags |= 4 /* CREATES_REAL_STACKING_CONTEXT */;\r\n }\r\n else if (createsStackingContext(container.styles)) {\r\n container.flags |= 2 /* CREATES_STACKING_CONTEXT */;\r\n }\r\n if (LIST_OWNERS.indexOf(childNode.tagName) !== -1) {\r\n container.flags |= 8 /* IS_LIST_OWNER */;\r\n }\r\n parent.elements.push(container);\r\n if (!isTextareaElement(childNode) && !isSVGElement(childNode) && !isSelectElement(childNode)) {\r\n parseNodeTree(childNode, container, root);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n var createContainer = function (element) {\r\n if (isImageElement(element)) {\r\n return new ImageElementContainer(element);\r\n }\r\n if (isCanvasElement(element)) {\r\n return new CanvasElementContainer(element);\r\n }\r\n if (isSVGElement(element)) {\r\n return new SVGElementContainer(element);\r\n }\r\n if (isLIElement(element)) {\r\n return new LIElementContainer(element);\r\n }\r\n if (isOLElement(element)) {\r\n return new OLElementContainer(element);\r\n }\r\n if (isInputElement(element)) {\r\n return new InputElementContainer(element);\r\n }\r\n if (isSelectElement(element)) {\r\n return new SelectElementContainer(element);\r\n }\r\n if (isTextareaElement(element)) {\r\n return new TextareaElementContainer(element);\r\n }\r\n if (isIFrameElement(element)) {\r\n return new IFrameElementContainer(element);\r\n }\r\n return new ElementContainer(element);\r\n };\r\n var parseTree = function (element) {\r\n var container = createContainer(element);\r\n container.flags |= 4 /* CREATES_REAL_STACKING_CONTEXT */;\r\n parseNodeTree(element, container, container);\r\n return container;\r\n };\r\n var createsRealStackingContext = function (node, container, root) {\r\n return (container.styles.isPositionedWithZIndex() ||\r\n container.styles.opacity < 1 ||\r\n container.styles.isTransformed() ||\r\n (isBodyElement(node) && root.styles.isTransparent()));\r\n };\r\n var createsStackingContext = function (styles) { return styles.isPositioned() || styles.isFloating(); };\r\n var isTextNode = function (node) { return node.nodeType === Node.TEXT_NODE; };\r\n var isElementNode = function (node) { return node.nodeType === Node.ELEMENT_NODE; };\r\n var isHTMLElementNode = function (node) {\r\n return isElementNode(node) && typeof node.style !== 'undefined' && !isSVGElementNode(node);\r\n };\r\n var isSVGElementNode = function (element) {\r\n return typeof element.className === 'object';\r\n };\r\n var isLIElement = function (node) { return node.tagName === 'LI'; };\r\n var isOLElement = function (node) { return node.tagName === 'OL'; };\r\n var isInputElement = function (node) { return node.tagName === 'INPUT'; };\r\n var isHTMLElement = function (node) { return node.tagName === 'HTML'; };\r\n var isSVGElement = function (node) { return node.tagName === 'svg'; };\r\n var isBodyElement = function (node) { return node.tagName === 'BODY'; };\r\n var isCanvasElement = function (node) { return node.tagName === 'CANVAS'; };\r\n var isImageElement = function (node) { return node.tagName === 'IMG'; };\r\n var isIFrameElement = function (node) { return node.tagName === 'IFRAME'; };\r\n var isStyleElement = function (node) { return node.tagName === 'STYLE'; };\r\n var isScriptElement = function (node) { return node.tagName === 'SCRIPT'; };\r\n var isTextareaElement = function (node) { return node.tagName === 'TEXTAREA'; };\r\n var isSelectElement = function (node) { return node.tagName === 'SELECT'; };\n\n var CounterState = /** @class */ (function () {\r\n function CounterState() {\r\n this.counters = {};\r\n }\r\n CounterState.prototype.getCounterValue = function (name) {\r\n var counter = this.counters[name];\r\n if (counter && counter.length) {\r\n return counter[counter.length - 1];\r\n }\r\n return 1;\r\n };\r\n CounterState.prototype.getCounterValues = function (name) {\r\n var counter = this.counters[name];\r\n return counter ? counter : [];\r\n };\r\n CounterState.prototype.pop = function (counters) {\r\n var _this = this;\r\n counters.forEach(function (counter) { return _this.counters[counter].pop(); });\r\n };\r\n CounterState.prototype.parse = function (style) {\r\n var _this = this;\r\n var counterIncrement = style.counterIncrement;\r\n var counterReset = style.counterReset;\r\n var canReset = true;\r\n if (counterIncrement !== null) {\r\n counterIncrement.forEach(function (entry) {\r\n var counter = _this.counters[entry.counter];\r\n if (counter && entry.increment !== 0) {\r\n canReset = false;\r\n counter[Math.max(0, counter.length - 1)] += entry.increment;\r\n }\r\n });\r\n }\r\n var counterNames = [];\r\n if (canReset) {\r\n counterReset.forEach(function (entry) {\r\n var counter = _this.counters[entry.counter];\r\n counterNames.push(entry.counter);\r\n if (!counter) {\r\n counter = _this.counters[entry.counter] = [];\r\n }\r\n counter.push(entry.reset);\r\n });\r\n }\r\n return counterNames;\r\n };\r\n return CounterState;\r\n }());\r\n var ROMAN_UPPER = {\r\n integers: [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1],\r\n values: ['M', 'CM', 'D', 'CD', 'C', 'XC', 'L', 'XL', 'X', 'IX', 'V', 'IV', 'I']\r\n };\r\n var ARMENIAN = {\r\n integers: [\r\n 9000,\r\n 8000,\r\n 7000,\r\n 6000,\r\n 5000,\r\n 4000,\r\n 3000,\r\n 2000,\r\n 1000,\r\n 900,\r\n 800,\r\n 700,\r\n 600,\r\n 500,\r\n 400,\r\n 300,\r\n 200,\r\n 100,\r\n 90,\r\n 80,\r\n 70,\r\n 60,\r\n 50,\r\n 40,\r\n 30,\r\n 20,\r\n 10,\r\n 9,\r\n 8,\r\n 7,\r\n 6,\r\n 5,\r\n 4,\r\n 3,\r\n 2,\r\n 1\r\n ],\r\n values: [\r\n 'Ք',\r\n 'Փ',\r\n 'Ւ',\r\n 'Ց',\r\n 'Ր',\r\n 'Տ',\r\n 'Վ',\r\n 'Ս',\r\n 'Ռ',\r\n 'Ջ',\r\n 'Պ',\r\n 'Չ',\r\n 'Ո',\r\n 'Շ',\r\n 'Ն',\r\n 'Յ',\r\n 'Մ',\r\n 'Ճ',\r\n 'Ղ',\r\n 'Ձ',\r\n 'Հ',\r\n 'Կ',\r\n 'Ծ',\r\n 'Խ',\r\n 'Լ',\r\n 'Ի',\r\n 'Ժ',\r\n 'Թ',\r\n 'Ը',\r\n 'Է',\r\n 'Զ',\r\n 'Ե',\r\n 'Դ',\r\n 'Գ',\r\n 'Բ',\r\n 'Ա'\r\n ]\r\n };\r\n var HEBREW = {\r\n integers: [\r\n 10000,\r\n 9000,\r\n 8000,\r\n 7000,\r\n 6000,\r\n 5000,\r\n 4000,\r\n 3000,\r\n 2000,\r\n 1000,\r\n 400,\r\n 300,\r\n 200,\r\n 100,\r\n 90,\r\n 80,\r\n 70,\r\n 60,\r\n 50,\r\n 40,\r\n 30,\r\n 20,\r\n 19,\r\n 18,\r\n 17,\r\n 16,\r\n 15,\r\n 10,\r\n 9,\r\n 8,\r\n 7,\r\n 6,\r\n 5,\r\n 4,\r\n 3,\r\n 2,\r\n 1\r\n ],\r\n values: [\r\n 'י׳',\r\n 'ט׳',\r\n 'ח׳',\r\n 'ז׳',\r\n 'ו׳',\r\n 'ה׳',\r\n 'ד׳',\r\n 'ג׳',\r\n 'ב׳',\r\n 'א׳',\r\n 'ת',\r\n 'ש',\r\n 'ר',\r\n 'ק',\r\n 'צ',\r\n 'פ',\r\n 'ע',\r\n 'ס',\r\n 'נ',\r\n 'מ',\r\n 'ל',\r\n 'כ',\r\n 'יט',\r\n 'יח',\r\n 'יז',\r\n 'טז',\r\n 'טו',\r\n 'י',\r\n 'ט',\r\n 'ח',\r\n 'ז',\r\n 'ו',\r\n 'ה',\r\n 'ד',\r\n 'ג',\r\n 'ב',\r\n 'א'\r\n ]\r\n };\r\n var GEORGIAN = {\r\n integers: [\r\n 10000,\r\n 9000,\r\n 8000,\r\n 7000,\r\n 6000,\r\n 5000,\r\n 4000,\r\n 3000,\r\n 2000,\r\n 1000,\r\n 900,\r\n 800,\r\n 700,\r\n 600,\r\n 500,\r\n 400,\r\n 300,\r\n 200,\r\n 100,\r\n 90,\r\n 80,\r\n 70,\r\n 60,\r\n 50,\r\n 40,\r\n 30,\r\n 20,\r\n 10,\r\n 9,\r\n 8,\r\n 7,\r\n 6,\r\n 5,\r\n 4,\r\n 3,\r\n 2,\r\n 1\r\n ],\r\n values: [\r\n 'ჵ',\r\n 'ჰ',\r\n 'ჯ',\r\n 'ჴ',\r\n 'ხ',\r\n 'ჭ',\r\n 'წ',\r\n 'ძ',\r\n 'ც',\r\n 'ჩ',\r\n 'შ',\r\n 'ყ',\r\n 'ღ',\r\n 'ქ',\r\n 'ფ',\r\n 'ჳ',\r\n 'ტ',\r\n 'ს',\r\n 'რ',\r\n 'ჟ',\r\n 'პ',\r\n 'ო',\r\n 'ჲ',\r\n 'ნ',\r\n 'მ',\r\n 'ლ',\r\n 'კ',\r\n 'ი',\r\n 'თ',\r\n 'ჱ',\r\n 'ზ',\r\n 'ვ',\r\n 'ე',\r\n 'დ',\r\n 'გ',\r\n 'ბ',\r\n 'ა'\r\n ]\r\n };\r\n var createAdditiveCounter = function (value, min, max, symbols, fallback, suffix) {\r\n if (value < min || value > max) {\r\n return createCounterText(value, fallback, suffix.length > 0);\r\n }\r\n return (symbols.integers.reduce(function (string, integer, index) {\r\n while (value >= integer) {\r\n value -= integer;\r\n string += symbols.values[index];\r\n }\r\n return string;\r\n }, '') + suffix);\r\n };\r\n var createCounterStyleWithSymbolResolver = function (value, codePointRangeLength, isNumeric, resolver) {\r\n var string = '';\r\n do {\r\n if (!isNumeric) {\r\n value--;\r\n }\r\n string = resolver(value) + string;\r\n value /= codePointRangeLength;\r\n } while (value * codePointRangeLength >= codePointRangeLength);\r\n return string;\r\n };\r\n var createCounterStyleFromRange = function (value, codePointRangeStart, codePointRangeEnd, isNumeric, suffix) {\r\n var codePointRangeLength = codePointRangeEnd - codePointRangeStart + 1;\r\n return ((value < 0 ? '-' : '') +\r\n (createCounterStyleWithSymbolResolver(Math.abs(value), codePointRangeLength, isNumeric, function (codePoint) {\r\n return fromCodePoint(Math.floor(codePoint % codePointRangeLength) + codePointRangeStart);\r\n }) +\r\n suffix));\r\n };\r\n var createCounterStyleFromSymbols = function (value, symbols, suffix) {\r\n if (suffix === void 0) { suffix = '. '; }\r\n var codePointRangeLength = symbols.length;\r\n return (createCounterStyleWithSymbolResolver(Math.abs(value), codePointRangeLength, false, function (codePoint) { return symbols[Math.floor(codePoint % codePointRangeLength)]; }) + suffix);\r\n };\r\n var CJK_ZEROS = 1 << 0;\r\n var CJK_TEN_COEFFICIENTS = 1 << 1;\r\n var CJK_TEN_HIGH_COEFFICIENTS = 1 << 2;\r\n var CJK_HUNDRED_COEFFICIENTS = 1 << 3;\r\n var createCJKCounter = function (value, numbers, multipliers, negativeSign, suffix, flags) {\r\n if (value < -9999 || value > 9999) {\r\n return createCounterText(value, LIST_STYLE_TYPE.CJK_DECIMAL, suffix.length > 0);\r\n }\r\n var tmp = Math.abs(value);\r\n var string = suffix;\r\n if (tmp === 0) {\r\n return numbers[0] + string;\r\n }\r\n for (var digit = 0; tmp > 0 && digit <= 4; digit++) {\r\n var coefficient = tmp % 10;\r\n if (coefficient === 0 && contains(flags, CJK_ZEROS) && string !== '') {\r\n string = numbers[coefficient] + string;\r\n }\r\n else if (coefficient > 1 ||\r\n (coefficient === 1 && digit === 0) ||\r\n (coefficient === 1 && digit === 1 && contains(flags, CJK_TEN_COEFFICIENTS)) ||\r\n (coefficient === 1 && digit === 1 && contains(flags, CJK_TEN_HIGH_COEFFICIENTS) && value > 100) ||\r\n (coefficient === 1 && digit > 1 && contains(flags, CJK_HUNDRED_COEFFICIENTS))) {\r\n string = numbers[coefficient] + (digit > 0 ? multipliers[digit - 1] : '') + string;\r\n }\r\n else if (coefficient === 1 && digit > 0) {\r\n string = multipliers[digit - 1] + string;\r\n }\r\n tmp = Math.floor(tmp / 10);\r\n }\r\n return (value < 0 ? negativeSign : '') + string;\r\n };\r\n var CHINESE_INFORMAL_MULTIPLIERS = '十百千萬';\r\n var CHINESE_FORMAL_MULTIPLIERS = '拾佰仟萬';\r\n var JAPANESE_NEGATIVE = 'マイナス';\r\n var KOREAN_NEGATIVE = '마이너스';\r\n var createCounterText = function (value, type, appendSuffix) {\r\n var defaultSuffix = appendSuffix ? '. ' : '';\r\n var cjkSuffix = appendSuffix ? '、' : '';\r\n var koreanSuffix = appendSuffix ? ', ' : '';\r\n var spaceSuffix = appendSuffix ? ' ' : '';\r\n switch (type) {\r\n case LIST_STYLE_TYPE.DISC:\r\n return '•' + spaceSuffix;\r\n case LIST_STYLE_TYPE.CIRCLE:\r\n return '◦' + spaceSuffix;\r\n case LIST_STYLE_TYPE.SQUARE:\r\n return '◾' + spaceSuffix;\r\n case LIST_STYLE_TYPE.DECIMAL_LEADING_ZERO:\r\n var string = createCounterStyleFromRange(value, 48, 57, true, defaultSuffix);\r\n return string.length < 4 ? \"0\" + string : string;\r\n case LIST_STYLE_TYPE.CJK_DECIMAL:\r\n return createCounterStyleFromSymbols(value, '〇一二三四五六七八九', cjkSuffix);\r\n case LIST_STYLE_TYPE.LOWER_ROMAN:\r\n return createAdditiveCounter(value, 1, 3999, ROMAN_UPPER, LIST_STYLE_TYPE.DECIMAL, defaultSuffix).toLowerCase();\r\n case LIST_STYLE_TYPE.UPPER_ROMAN:\r\n return createAdditiveCounter(value, 1, 3999, ROMAN_UPPER, LIST_STYLE_TYPE.DECIMAL, defaultSuffix);\r\n case LIST_STYLE_TYPE.LOWER_GREEK:\r\n return createCounterStyleFromRange(value, 945, 969, false, defaultSuffix);\r\n case LIST_STYLE_TYPE.LOWER_ALPHA:\r\n return createCounterStyleFromRange(value, 97, 122, false, defaultSuffix);\r\n case LIST_STYLE_TYPE.UPPER_ALPHA:\r\n return createCounterStyleFromRange(value, 65, 90, false, defaultSuffix);\r\n case LIST_STYLE_TYPE.ARABIC_INDIC:\r\n return createCounterStyleFromRange(value, 1632, 1641, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.ARMENIAN:\r\n case LIST_STYLE_TYPE.UPPER_ARMENIAN:\r\n return createAdditiveCounter(value, 1, 9999, ARMENIAN, LIST_STYLE_TYPE.DECIMAL, defaultSuffix);\r\n case LIST_STYLE_TYPE.LOWER_ARMENIAN:\r\n return createAdditiveCounter(value, 1, 9999, ARMENIAN, LIST_STYLE_TYPE.DECIMAL, defaultSuffix).toLowerCase();\r\n case LIST_STYLE_TYPE.BENGALI:\r\n return createCounterStyleFromRange(value, 2534, 2543, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.CAMBODIAN:\r\n case LIST_STYLE_TYPE.KHMER:\r\n return createCounterStyleFromRange(value, 6112, 6121, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.CJK_EARTHLY_BRANCH:\r\n return createCounterStyleFromSymbols(value, '子丑寅卯辰巳午未申酉戌亥', cjkSuffix);\r\n case LIST_STYLE_TYPE.CJK_HEAVENLY_STEM:\r\n return createCounterStyleFromSymbols(value, '甲乙丙丁戊己庚辛壬癸', cjkSuffix);\r\n case LIST_STYLE_TYPE.CJK_IDEOGRAPHIC:\r\n case LIST_STYLE_TYPE.TRAD_CHINESE_INFORMAL:\r\n return createCJKCounter(value, '零一二三四五六七八九', CHINESE_INFORMAL_MULTIPLIERS, '負', cjkSuffix, CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS);\r\n case LIST_STYLE_TYPE.TRAD_CHINESE_FORMAL:\r\n return createCJKCounter(value, '零壹貳參肆伍陸柒捌玖', CHINESE_FORMAL_MULTIPLIERS, '負', cjkSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS);\r\n case LIST_STYLE_TYPE.SIMP_CHINESE_INFORMAL:\r\n return createCJKCounter(value, '零一二三四五六七八九', CHINESE_INFORMAL_MULTIPLIERS, '负', cjkSuffix, CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS);\r\n case LIST_STYLE_TYPE.SIMP_CHINESE_FORMAL:\r\n return createCJKCounter(value, '零壹贰叁肆伍陆柒捌玖', CHINESE_FORMAL_MULTIPLIERS, '负', cjkSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS);\r\n case LIST_STYLE_TYPE.JAPANESE_INFORMAL:\r\n return createCJKCounter(value, '〇一二三四五六七八九', '十百千万', JAPANESE_NEGATIVE, cjkSuffix, 0);\r\n case LIST_STYLE_TYPE.JAPANESE_FORMAL:\r\n return createCJKCounter(value, '零壱弐参四伍六七八九', '拾百千万', JAPANESE_NEGATIVE, cjkSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS);\r\n case LIST_STYLE_TYPE.KOREAN_HANGUL_FORMAL:\r\n return createCJKCounter(value, '영일이삼사오육칠팔구', '십백천만', KOREAN_NEGATIVE, koreanSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS);\r\n case LIST_STYLE_TYPE.KOREAN_HANJA_INFORMAL:\r\n return createCJKCounter(value, '零一二三四五六七八九', '十百千萬', KOREAN_NEGATIVE, koreanSuffix, 0);\r\n case LIST_STYLE_TYPE.KOREAN_HANJA_FORMAL:\r\n return createCJKCounter(value, '零壹貳參四五六七八九', '拾百千', KOREAN_NEGATIVE, koreanSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS);\r\n case LIST_STYLE_TYPE.DEVANAGARI:\r\n return createCounterStyleFromRange(value, 0x966, 0x96f, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.GEORGIAN:\r\n return createAdditiveCounter(value, 1, 19999, GEORGIAN, LIST_STYLE_TYPE.DECIMAL, defaultSuffix);\r\n case LIST_STYLE_TYPE.GUJARATI:\r\n return createCounterStyleFromRange(value, 0xae6, 0xaef, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.GURMUKHI:\r\n return createCounterStyleFromRange(value, 0xa66, 0xa6f, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.HEBREW:\r\n return createAdditiveCounter(value, 1, 10999, HEBREW, LIST_STYLE_TYPE.DECIMAL, defaultSuffix);\r\n case LIST_STYLE_TYPE.HIRAGANA:\r\n return createCounterStyleFromSymbols(value, 'あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをん');\r\n case LIST_STYLE_TYPE.HIRAGANA_IROHA:\r\n return createCounterStyleFromSymbols(value, 'いろはにほへとちりぬるをわかよたれそつねならむうゐのおくやまけふこえてあさきゆめみしゑひもせす');\r\n case LIST_STYLE_TYPE.KANNADA:\r\n return createCounterStyleFromRange(value, 0xce6, 0xcef, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.KATAKANA:\r\n return createCounterStyleFromSymbols(value, 'アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン', cjkSuffix);\r\n case LIST_STYLE_TYPE.KATAKANA_IROHA:\r\n return createCounterStyleFromSymbols(value, 'イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス', cjkSuffix);\r\n case LIST_STYLE_TYPE.LAO:\r\n return createCounterStyleFromRange(value, 0xed0, 0xed9, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.MONGOLIAN:\r\n return createCounterStyleFromRange(value, 0x1810, 0x1819, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.MYANMAR:\r\n return createCounterStyleFromRange(value, 0x1040, 0x1049, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.ORIYA:\r\n return createCounterStyleFromRange(value, 0xb66, 0xb6f, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.PERSIAN:\r\n return createCounterStyleFromRange(value, 0x6f0, 0x6f9, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.TAMIL:\r\n return createCounterStyleFromRange(value, 0xbe6, 0xbef, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.TELUGU:\r\n return createCounterStyleFromRange(value, 0xc66, 0xc6f, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.THAI:\r\n return createCounterStyleFromRange(value, 0xe50, 0xe59, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.TIBETAN:\r\n return createCounterStyleFromRange(value, 0xf20, 0xf29, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.DECIMAL:\r\n default:\r\n return createCounterStyleFromRange(value, 48, 57, true, defaultSuffix);\r\n }\r\n };\n\n var IGNORE_ATTRIBUTE = 'data-html2canvas-ignore';\r\n var DocumentCloner = /** @class */ (function () {\r\n function DocumentCloner(element, options) {\r\n this.options = options;\r\n this.scrolledElements = [];\r\n this.referenceElement = element;\r\n this.counters = new CounterState();\r\n this.quoteDepth = 0;\r\n if (!element.ownerDocument) {\r\n throw new Error('Cloned element does not have an owner document');\r\n }\r\n this.documentElement = this.cloneNode(element.ownerDocument.documentElement);\r\n }\r\n DocumentCloner.prototype.toIFrame = function (ownerDocument, windowSize) {\r\n var _this = this;\r\n var iframe = createIFrameContainer(ownerDocument, windowSize);\r\n if (!iframe.contentWindow) {\r\n return Promise.reject(\"Unable to find iframe window\");\r\n }\r\n var scrollX = ownerDocument.defaultView.pageXOffset;\r\n var scrollY = ownerDocument.defaultView.pageYOffset;\r\n var cloneWindow = iframe.contentWindow;\r\n var documentClone = cloneWindow.document;\r\n /* Chrome doesn't detect relative background-images assigned in inline ","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileSmall.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileSmall.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FileSmall.vue?vue&type=template&id=8bab877e&\"\nimport script from \"./FileSmall.vue?vue&type=script&lang=js&\"\nexport * from \"./FileSmall.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FileSmall.vue?vue&type=style&index=0&lang=less&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""}