1 |
- {"version":3,"sources":["webpack:///./node_modules/canvg/dist/browser/canvg.min.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys-internal.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_hide.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_dom-create.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-assign.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-object.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-keys.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.iterator.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_descriptors.js","webpack:///./node_modules/babel-runtime/helpers/typeof.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_property-desc.js","webpack:///./node_modules/jquery/dist/jquery.js","webpack:///./node_modules/element-ui/lib/scrollbar.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_a-function.js","webpack:///./node_modules/babel-runtime/core-js/symbol/iterator.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopn-ext.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-pie.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_string-at.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dp.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-create.js","webpack:///./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack:///./node_modules/vue/dist/vue.runtime.esm.js","webpack:///./node_modules/element-ui/lib/mixins/migrating.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_add-to-unscopables.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/es7.symbol.async-iterator.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-primitive.js","webpack:///./node_modules/element-ui/lib/form-item.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-define.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_array-includes.js","webpack:///./node_modules/deepmerge/dist/cjs.js","webpack:///./node_modules/babel-runtime/core-js/object/assign.js","webpack:///./node_modules/element-ui/lib/utils/resize-event.js","webpack:///./node_modules/element-ui/lib/form.js","webpack:///./node_modules/element-ui/lib/utils/clickoutside.js","webpack:///./node_modules/babel-runtime/helpers/extends.js","webpack:///./node_modules/element-ui/lib/utils/vdom.js","webpack:///./node_modules/node-libs-browser/mock/process.js","webpack:///./node_modules/element-ui/lib/locale/index.js","webpack:///./node_modules/element-ui/lib/utils/popup/popup-manager.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_fails.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopd.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_cof.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/es7.symbol.observable.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_is-array.js","webpack:///./node_modules/timers-browserify/main.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/iterator.js","webpack:///./node_modules/element-ui/lib/utils/popup/index.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_export.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_core.js","webpack:///./node_modules/rgbcolor/index.js","webpack:///./node_modules/element-ui/lib/utils/dom.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_shared-key.js","webpack:///./node_modules/stackblur-canvas/dist/stackblur-es.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/element-ui/lib/utils/popper.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopn.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/web.dom.iterable.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.iterator.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.symbol.js","webpack:///./node_modules/element-ui/lib/mixins/locale.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-iobject.js","webpack:///./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-create.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_an-object.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_is-object.js","webpack:///./node_modules/element-ui/lib/utils/merge.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/index.js","webpack:///./node_modules/element-ui/lib/utils/util.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dps.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_iterators.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_uid.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_html.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_set-to-string-tag.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-bug-keys.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_ctx.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_has.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-absolute-index.js","webpack:///./node_modules/element-ui/lib/locale/format.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_iobject.js","webpack:///./node_modules/async-validator/es/util.js","webpack:///./node_modules/async-validator/es/rule/required.js","webpack:///./node_modules/async-validator/es/rule/whitespace.js","webpack:///./node_modules/async-validator/es/rule/type.js","webpack:///./node_modules/async-validator/es/rule/range.js","webpack:///./node_modules/async-validator/es/rule/enum.js","webpack:///./node_modules/async-validator/es/rule/pattern.js","webpack:///./node_modules/async-validator/es/rule/index.js","webpack:///./node_modules/async-validator/es/validator/string.js","webpack:///./node_modules/async-validator/es/validator/method.js","webpack:///./node_modules/async-validator/es/validator/number.js","webpack:///./node_modules/async-validator/es/validator/boolean.js","webpack:///./node_modules/async-validator/es/validator/regexp.js","webpack:///./node_modules/async-validator/es/validator/integer.js","webpack:///./node_modules/async-validator/es/validator/float.js","webpack:///./node_modules/async-validator/es/validator/array.js","webpack:///./node_modules/async-validator/es/validator/object.js","webpack:///./node_modules/async-validator/es/validator/enum.js","webpack:///./node_modules/async-validator/es/validator/pattern.js","webpack:///./node_modules/async-validator/es/validator/date.js","webpack:///./node_modules/async-validator/es/validator/required.js","webpack:///./node_modules/async-validator/es/validator/type.js","webpack:///./node_modules/async-validator/es/validator/index.js","webpack:///./node_modules/async-validator/es/messages.js","webpack:///./node_modules/async-validator/es/index.js","webpack:///./node_modules/@babel/runtime/regenerator/index.js","webpack:///./node_modules/element-ui/lib/utils/types.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_shared.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/fn/object/assign.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_redefine.js","webpack:///./node_modules/vue-baidu-map/index.js","webpack:///./node_modules/html2canvas/dist/html2canvas.js","webpack:///./node_modules/element-ui/lib/date-picker.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_defined.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gpo.js","webpack:///./node_modules/element-ui/lib/mixins/emitter.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-length.js","webpack:///./node_modules/element-ui/lib/utils/shared.js","webpack:///./node_modules/element-ui/lib/utils/date.js","webpack:///./node_modules/element-ui/lib/utils/date-util.js","webpack:///./node_modules/path-browserify/index.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks-define.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_meta.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_library.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.assign.js","webpack:///./node_modules/element-ui/lib/utils/scrollbar-width.js","webpack:///./node_modules/element-ui/lib/utils/vue-popper.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-step.js","webpack:///./node_modules/element-ui/lib/button.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_global.js","webpack:///./node_modules/element-ui/lib/locale/lang/zh-CN.js","webpack:///./node_modules/element-ui/lib/input.js","webpack:///./node_modules/element-ui/lib/message.js","webpack:///./node_modules/babel-runtime/core-js/symbol.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_ie8-dom-define.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-integer.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks-ext.js","webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gops.js"],"names":["t","e","module","exports","this","y","v","hasOwnProperty","default","l","window","DOMParser","c","document","d","i","createElement","width","height","f","p","n","m","getElementById","svg","stop","childNodes","length","nodeName","s","getContext","documentElement","loadXmlDoc","substr","loadXml","load","a","querySelectorAll","r","o","h","clientWidth","clientHeight","getBoundingClientRect","parentNode","insertBefore","removeChild","u","appendChild","innerHTML","Element","prototype","matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","jQuery","Zepto","$","is","Sizzle","matchesSelector","P","match","replace","join","D","opts","FRAMERATE","MAX_VIRTUAL_PIXELS","rootEmSize","emSize","log","console","init","UniqueId","Definitions","Styles","StylesSpecificity","Animations","Images","ctx","ViewPort","viewPorts","Clear","SetCurrent","push","RemoveCurrent","pop","Current","ComputeSize","Math","sqrt","pow","ImagesLoaded","loaded","trim","compressSpaces","ajax","XMLHttpRequest","ActiveXObject","open","send","responseText","parseXml","Windows","Data","Xml","Dom","XmlDocument","XmlLoadSettings","prohibitDtd","async","loadXML","xmldom","parseFromString","Property","name","value","getValue","hasValue","numValue","parseFloat","valueOrDefault","numValueOrDefault","addOpacity","ok","g","b","getDefinition","isUrlDefinition","indexOf","getFillStyleDefinition","createGradient","createPattern","getHrefAttribute","attribute","getDPI","getREM","getEM","getUnits","isPixels","toPixels","toMilliseconds","toRadians","PI","baseline","middle","central","ideographic","alphabetic","hanging","mathematical","toTextBaseline","Font","Variants","Weights","CreateFont","Parse","font","fontFamily","fontSize","fontStyle","fontWeight","fontVariant","toString","split","ToNumberArray","Point","x","angleTo","atan2","applyTransform","CreatePoint","CreatePath","BoundingBox","x1","Number","NaN","y1","x2","y2","addPoint","isNaN","addX","addY","addBoundingBox","addQuadraticCurve","addBezierCurve","isPointInBox","Transform","Type","translate","apply","unapply","applyToPoint","rotate","angle","cx","cy","cos","sin","scale","matrix","transform","SkewBase","base","skewX","tan","skewY","transforms","type","AspectRatio","min","max","EmptyProperty","ElementBase","attributes","styles","stylesSpecificity","children","style","parent","render","save","setContext","renderChildren","clearContext","restore","addChild","CreateElement","addStylesFromStyleDefinition","RegExp","nodeType","test","toLowerCase","captureTextNodes","text","textContent","tspan","RenderedElementBase","calculateOpacity","fillStyle","strokeStyle","lineWidth","lineCap","lineJoin","miterLimit","paintOrder","setLineDash","webkitLineDash","mozDash","lineDashOffset","webkitLineDashOffset","mozDashOffset","globalAlpha","PathElementBase","path","beginPath","Mouse","checkPath","fill","stroke","getMarkers","getBoundingBox","SetDefaults","baseClearContext","baseSetContext","canvas","getComputedStyle","getPropertyValue","root","moveTo","lineTo","closePath","clip","rect","bezierCurveTo","circle","arc","ellipse","line","getPoints","polyline","points","polygon","basePath","PathParser","tokens","reset","command","previousCommand","start","control","current","angles","isEnd","isCommandOrEnd","isRelativeCommand","getToken","getScalar","nextCommand","getPoint","makeAbsolute","getAsControlPoint","getAsCurrentPoint","getReflectedControlPoint","addMarker","addMarkerAngle","getMarkerPoints","getMarkerAngles","quadraticCurveTo","E","acos","w","C","B","M","T","S","V","k","A","pattern","viewBox","marker","baseRender","refX","refY","defs","GradientBase","stops","getGradient","gradientUnits","attributesToInherit","inheritStopContainer","color","addColorStop","offset","linearGradient","createLinearGradient","radialGradient","createRadialGradient","AnimateBase","duration","begin","maxDuration","getProperty","initialValue","initialUnits","removed","calcValue","update","frozen","animationFrozen","animationFrozenValue","from","to","values","progress","floor","ceil","animate","animateColor","parseInt","animateTransform","horizAdvX","isRTL","isArabic","fontFace","missingGlyph","glyphs","arabicForm","unicode","fontface","ascent","descent","unitsPerEm","missingglyph","glyph","textBaseline","initializeCoordinates","getAnchorDelta","getChildBoundingBox","renderChild","checkBoundingBox","measureTextRecursive","adjustChildCoordinates","measureText","TextElementBase","getGlyph","strokeText","getText","fillText","reverse","tref","hasText","data","baseRenderChildren","onclick","onmousemove","cursor","textPath","setTextData","glyphInfo","p0","p1","rotation","dataArray","letterSpacingCache","reduce","textWidth","textHeight","getPathLength","getEquidistantPointOnPath","getLineLength","getPointOnLine","transposeX","transposeY","parsePathData","pathLength","toUpperCase","calcLength","getPointOnPath","getPointOnEllipticalArc","getPointOnCubicBezier","getPointOnQuadraticBezier","buildEquidistantCache","equidistantCache","step","precision","distance","round","abs","image","img","useCORS","crossOrigin","onload","onerror","src","drawSvg","complete","drawImage","symbol","ParseExternalUrl","getElementsByTagName","use","elementTransform","preserveAspectRatio","overflow","mask","feColorMatrix","globalCompositeOperation","fillRect","clipPath","CanvasRenderingContext2D","call","filter","extraFilterDistance","feDropShadow","feMorphology","feComposite","getImageData","clearRect","putImageData","feGaussianBlur","blurRadius","canvasRGBA","id","display","body","title","desc","MISSING","offsetLeft","offsetTop","offsetParent","scrollX","scrollY","ignoreMouse","clientX","event","clientY","ignoreDimensions","scaleWidth","scaleHeight","offsetX","offsetY","ignoreClear","renderCallback","intervalID","setInterval","hasEvents","ignoreAnimation","forceRedraw","runEvents","clearInterval","events","run","eventElements","isPointInPath","_build","has","toIObject","arrayIndexOf","IE_PROTO","object","names","key","O","result","dP","createDesc","isObject","it","DESCRIPTORS","getKeys","gOPS","pIE","toObject","IObject","$assign","Object","assign","Symbol","K","forEach","keys","target","source","aLen","arguments","index","getSymbols","isEnum","concat","j","defined","symbols","$at","String","iterated","_t","_i","point","undefined","done","defineProperty","get","__esModule","_iterator","_iterator2","_interopRequireDefault","_symbol","_symbol2","_typeof","obj","constructor","bitmap","enumerable","configurable","writable","global","factory","Error","noGlobal","arr","getProto","getPrototypeOf","slice","flat","array","class2type","hasOwn","fnToString","ObjectFunctionString","support","isFunction","isWindow","preservedScriptAttributes","nonce","noModule","DOMEval","code","node","doc","val","script","getAttribute","setAttribute","head","toType","version","selector","context","fn","isArrayLike","jquery","toArray","num","pushStack","elems","ret","merge","prevObject","each","callback","map","elem","first","eq","last","even","grep","_elem","odd","len","end","sort","splice","extend","options","copy","copyIsArray","clone","deep","isPlainObject","Array","isArray","expando","random","isReady","error","msg","noop","proto","Ctor","isEmptyObject","globalEval","makeArray","results","inArray","second","invert","callbackInverse","callbackExpect","arg","guid","iterator","Expr","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","contains","Date","preferredDoc","dirruns","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","pushNative","list","booleans","whitespace","identifier","pseudos","rwhitespace","rtrim","rcomma","rcombinators","rdescend","rpseudo","ridentifier","matchExpr","rhtml","rinputs","rheader","rnative","rquickExpr","rsibling","runescape","funescape","escape","nonHex","high","fromCharCode","rcssescape","fcssescape","ch","asCodePoint","charCodeAt","unloadHandler","inDisabledFieldset","addCombinator","disabled","dir","next","els","seed","nid","groups","newSelector","newContext","ownerDocument","exec","getElementsByClassName","qsa","testContext","scope","toSelector","qsaError","removeAttribute","cache","cacheLength","shift","markFunction","assert","el","addHandle","attrs","handler","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","argument","matchIndexes","namespace","namespaceURI","hasCompare","subWindow","defaultView","top","addEventListener","attachEvent","className","createComment","getById","getElementsByName","attrId","find","getAttributeNode","tag","tmp","input","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","unshift","expr","elements","attr","specified","sel","uniqueSort","duplicates","detectDuplicates","sortStable","firstChild","nodeValue","selectors","createPseudo","relative","preFilter","excess","unquoted","nodeNameSelector","operator","check","what","_argument","simple","forward","ofType","_context","xml","uniqueCache","outerCache","nodeIndex","useCache","lastChild","uniqueID","pseudo","args","setFilters","idx","matched","matcher","unmatched","lang","elemLang","hash","location","activeElement","hasFocus","href","tabIndex","checked","selected","selectedIndex","_matchIndexes","radio","checkbox","file","password","submit","combinator","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","multipleContexts","contexts","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","matcherFromGroupMatchers","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","filters","parseOnly","soFar","preFilters","cached","token","compiled","_name","defaultValue","unique","isXMLDoc","escapeSelector","until","truncate","siblings","rneedsContext","needsContext","rsingleTag","winnow","qualifier","not","self","rootjQuery","parseHTML","ready","rparentsprev","guaranteedUnique","contents","prev","sibling","targets","closest","prevAll","add","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","content","rnothtmlwhite","createOptions","_","flag","Identity","Thrower","ex","adoptValue","resolve","reject","noValue","method","promise","fail","then","Callbacks","firing","memory","fired","locked","queue","firingIndex","fire","once","stopOnFalse","remove","empty","disable","lock","fireWith","Deferred","func","tuples","state","always","deferred","pipe","fns","newDefer","tuple","returned","notify","onFulfilled","onRejected","onProgress","maxDepth","depth","special","that","mightThrow","TypeError","notifyWith","resolveWith","process","exceptionHook","stackTrace","rejectWith","getStackHook","setTimeout","stateString","when","singleValue","remaining","resolveContexts","resolveValues","master","updateFunc","rerrorNames","stack","warn","message","readyException","readyList","completed","removeEventListener","catch","readyWait","wait","readyState","doScroll","access","chainable","emptyGet","raw","bulk","_key","rmsPrefix","rdashAlpha","fcamelCase","_all","letter","camelCase","string","acceptData","owner","uid","set","prop","hasData","dataPriv","dataUser","rbrace","rmultiDash","getData","JSON","parse","dataAttr","removeData","_data","_removeData","dequeue","startLength","hooks","_queueHooks","setter","clearQueue","count","defer","pnum","rcssNum","cssExpand","isAttached","composed","getRootNode","isHiddenWithinTree","css","adjustCSS","valueParts","tween","adjusted","maxIterations","currentValue","initial","unit","cssNumber","initialInUnit","defaultDisplayMap","getDefaultDisplay","showHide","show","hide","toggle","rcheckableType","rtagName","rscriptType","fragment","createDocumentFragment","div","checkClone","cloneNode","noCloneChecked","option","wrapMap","thead","col","tr","td","_default","getAll","setGlobalEval","refElements","tbody","tfoot","colgroup","caption","th","optgroup","buildFragment","scripts","selection","ignored","wrap","attached","nodes","htmlPrefilter","createTextNode","rkeyEvent","rmouseEvent","rtypenamespace","returnTrue","returnFalse","expectSync","safeActiveElement","err","on","types","one","origFn","off","leverageNative","notAsync","saved","isTrigger","delegateType","stopPropagation","stopImmediatePropagation","preventDefault","trigger","Event","handleObjIn","eventHandle","handleObj","handlers","namespaces","origType","elemData","create","handle","triggered","dispatch","bindType","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","nativeEvent","handlerQueue","fix","delegateTarget","preDispatch","isPropagationStopped","currentTarget","isImmediatePropagationStopped","rnamespace","postDispatch","matchedHandlers","matchedSelectors","button","addProp","hook","originalEvent","noBubble","click","beforeunload","returnValue","props","isDefaultPrevented","defaultPrevented","relatedTarget","timeStamp","now","isSimulated","altKey","bubbles","cancelable","changedTouches","ctrlKey","detail","eventPhase","metaKey","pageX","pageY","shiftKey","view","charCode","keyCode","buttons","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","which","focus","blur","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","dest","pdataOld","udataOld","udataCur","fixInput","domManip","collection","hasScripts","iNoClone","valueIsFunction","html","_evalUrl","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","detach","append","prepend","before","after","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","original","insert","rnumnonpx","getStyles","opener","swap","old","rboxStyle","curCSS","computed","minWidth","maxWidth","pixelBoxStyles","addGetHookIf","conditionFn","hookFn","computeStyleTests","container","cssText","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","marginLeft","right","pixelBoxStylesVal","boxSizingReliableVal","position","scrollboxSizeVal","offsetWidth","measure","reliableTrDimensionsVal","backgroundClip","clearCloneStyle","boxSizingReliable","pixelPosition","reliableMarginLeft","scrollboxSize","reliableTrDimensions","table","trChild","trStyle","cssPrefixes","emptyStyle","vendorProps","vendorPropName","capName","finalPropName","final","cssProps","rdisplayswap","rcustomProp","cssShow","visibility","cssNormalTransform","letterSpacing","setPositiveNumber","subtract","boxModelAdjustment","dimension","box","isBorderBox","computedVal","extra","delta","getWidthOrHeight","boxSizingNeeded","valueIsBorderBox","offsetProp","getClientRects","Tween","easing","cssHooks","opacity","origName","isCustomProp","setProperty","isFinite","scrollboxSizeBuggy","left","margin","padding","border","prefix","suffix","expand","expanded","parts","propHooks","percent","eased","pos","fx","scrollTop","scrollLeft","linear","swing","fxNow","inProgress","rfxtypes","rrun","schedule","hidden","requestAnimationFrame","interval","tick","createFxNow","genFx","includeWidth","createTween","animation","Animation","tweeners","defaultPrefilter","oldfire","propTween","restoreDisplay","isBox","anim","dataShow","unqueued","overflowX","overflowY","propFilter","specialEasing","properties","stopped","prefilters","currentTime","startTime","tweens","originalProperties","originalOptions","gotoEnd","bind","timer","tweener","prefilter","speed","opt","speeds","fadeTo","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","delay","time","timeout","clearTimeout","checkOn","optSelected","radioValue","boolHook","removeAttr","nType","attrHooks","bool","attrNames","getter","lowercaseName","rfocusable","rclickable","stripAndCollapse","getClass","classesToArray","removeProp","propFix","tabindex","addClass","classes","curValue","clazz","finalValue","removeClass","toggleClass","stateVal","isValidValue","classNames","hasClass","rreturn","valHooks","optionSet","focusin","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","parentWindow","simulate","triggerHandler","attaches","rquery","parseXML","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","param","valueOrFunction","encodeURIComponent","serialize","serializeArray","r20","rhash","rantiCache","rheaders","rlocalProtocol","rnoContent","rprotocol","transports","allTypes","originAnchor","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","ajaxHandleResponses","responses","ct","finalDataType","firstDataType","mimeType","getResponseHeader","converters","ajaxConvert","response","isSuccess","conv2","conv","responseFields","dataFilter","throws","active","lastModified","etag","url","isLocal","protocol","processData","contentType","accepts","json","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","urlAnchor","fireGlobals","uncached","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeaders","requestHeadersNames","strAbort","getAllResponseHeaders","setRequestHeader","overrideMimeType","status","abort","statusText","finalText","crossDomain","host","hasContent","ifModified","headers","beforeSend","success","nativeStatusText","modified","getJSON","getScript","wrapAll","firstElementChild","wrapInner","htmlIsFunction","unwrap","visible","offsetHeight","xhr","xhrSuccessStatus","0","1223","xhrSupported","cors","errorCallback","username","xhrFields","onabort","ontimeout","onreadystatechange","responseType","binary","scriptAttrs","charset","scriptCharset","evt","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","createHTMLDocument","implementation","keepScripts","parsed","params","animated","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","calculatePosition","curElem","using","win","pageYOffset","pageXOffset","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","unbind","delegate","undelegate","hover","fnOver","fnOut","proxy","holdReady","hold","parseJSON","isNumeric","_jQuery","_$","noConflict","modules","installedModules","__webpack_require__","moduleId","toStringTag","mode","ns","property","127","__webpack_exports__","resize_event_","scrollbar_width_","scrollbar_width_default","util_","dom_","BAR_MAP","vertical","scroll","scrollSize","size","axis","client","direction","horizontal","renderThumbStyle","_ref","move","bar","msTransform","webkitTransform","src_bar","Boolean","$parent","clickTrackHandler","ref","clickThumbHandler","methods","startDrag","thumbHalf","$refs","thumb","thumbPositionPercentage","$el","cursorDown","mouseMoveDocumentHandler","mouseUpDocumentHandler","onselectstart","prevPage","thumbClickPosition","destroyed","main","components","Bar","native","wrapStyle","wrapClass","viewClass","viewStyle","noresize","sizeWidth","sizeHeight","moveX","moveY","gutter","gutterWith","gutterStyle","marginRight","marginBottom","class","$slots","handleScroll","heightPercentage","widthPercentage","scrollHeight","scrollWidth","mounted","$nextTick","resize","beforeDestroy","Vue","component","16","2","3","39","gOPN","windowNames","getOwnPropertyNames","getWindowNames","propertyIsEnumerable","toInteger","TO_STRING","charAt","anObject","IE8_DOM_DEFINE","toPrimitive","Attributes","descriptor","setToStringTag","IteratorPrototype","Constructor","NAME","normalizeComponent","scriptExports","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","_compiled","functional","_scopeId","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","existing","beforeCreate","emptyObject","freeze","isUndef","isDef","isTrue","isFalse","isPrimitive","_toString","isRegExp","isValidArrayIndex","isPromise","stringify","toNumber","makeMap","str","expectsLowerCase","isReservedAttribute","item","hit","camelizeRE","camelize","capitalize","hyphenateRE","hyphenate","polyfillBind","boundFn","_length","nativeBind","Function","_from","res","no","identity","looseEqual","isObjectA","isObjectB","isArrayA","isArrayB","every","getTime","keysA","keysB","looseIndexOf","called","SSR_ATTR","ASSET_TYPES","LIFECYCLE_HOOKS","config","optionMergeStrategies","silent","productionTip","devtools","performance","errorHandler","warnHandler","ignoredElements","keyCodes","isReservedTag","isReservedAttr","isUnknownElement","getTagNamespace","parsePlatformTagName","mustUseProp","_lifecycleHooks","unicodeRegExp","isReserved","def","bailRE","parsePath","segments","_isServer","hasProto","inBrowser","inWeex","WXEnvironment","platform","weexPlatform","UA","navigator","userAgent","isIE","isIE9","isEdge","isIOS","isFF","nativeWatch","watch","supportsPassive","isServerRendering","env","VUE_ENV","__VUE_DEVTOOLS_GLOBAL_HOOK__","isNative","_Set","hasSymbol","Reflect","ownKeys","Set","clear","Dep","subs","addSub","sub","removeSub","depend","addDep","targetStack","pushTarget","popTarget","VNode","elm","componentOptions","asyncFactory","fnContext","fnOptions","fnScopeId","componentInstance","isStatic","isRootInsert","isComment","isCloned","isOnce","asyncMeta","isAsyncPlaceholder","prototypeAccessors","child","defineProperties","createEmptyVNode","createTextVNode","cloneVNode","vnode","cloned","arrayProto","arrayMethods","methodsToPatch","inserted","ob","__ob__","observeArray","dep","arrayKeys","shouldObserve","toggleObserving","Observer","vmCount","protoAugment","copyAugment","walk","__proto__","observe","asRootData","isExtensible","_isVue","defineReactive$$1","customSetter","shallow","getOwnPropertyDescriptor","childOb","dependArray","newVal","del","items","strats","mergeData","toVal","fromVal","mergeDataOrFn","parentVal","childVal","vm","instanceData","defaultData","mergeHook","dedupeHooks","mergeAssets","key$1","inject","provide","defaultStrat","normalizeProps","normalizeInject","normalized","normalizeDirectives","dirs","directives","def$$1","mergeOptions","_base","extends","mixins","mergeField","strat","resolveAsset","warnMissing","assets","camelizedId","PascalCaseId","validateProp","propOptions","propsData","absent","booleanIndex","getTypeIndex","stringIndex","getPropDefaultValue","prevShouldObserve","_props","getType","isSameType","expectedTypes","handleError","info","errorCaptured","capture","globalHandleError","invokeWithErrorHandling","_handled","logError","timerFunc","isUsingMicroTask","callbacks","pending","flushCallbacks","copies","Promise","MutationObserver","setImmediate","counter","observer","textNode","characterData","nextTick","cb","_resolve","seenObjects","traverse","_traverse","seen","isA","isFrozen","depId","normalizeEvent","passive","once$$1","createFnInvoker","invoker","arguments$1","updateListeners","oldOn","remove$$1","createOnceHandler","mergeVNodeHook","hookKey","oldHook","wrappedHook","merged","extractPropsFromVNodeData","checkProp","preserve","simpleNormalizeChildren","normalizeChildren","normalizeArrayChildren","isTextNode","nestedIndex","lastIndex","_isVList","initProvide","_provided","initInjections","resolveInject","provideKey","provideDefault","resolveSlots","slots","slot","name$1","isWhitespace","normalizeScopedSlots","normalSlots","prevSlots","hasNormalSlots","isStable","$stable","$key","_normalized","$hasNormal","normalizeScopedSlot","key$2","proxyNormalSlot","renderList","renderSlot","fallback","bindObject","scopedSlotFn","$scopedSlots","$createElement","resolveFilter","isKeyNotMatch","expect","actual","checkKeyCodes","eventKeyCode","builtInKeyCode","eventKeyName","builtInKeyName","mappedKeyCode","bindObjectProps","asProp","isSync","loop","domProps","camelizedKey","hyphenatedKey","$event","renderStatic","isInFor","_staticTrees","tree","_renderProxy","markStatic","markOnce","markStaticNode","bindObjectListeners","ours","resolveScopedSlots","hasDynamicKeys","contentHashKey","bindDynamicKeys","baseObj","prependModifier","installRenderHelpers","_o","_n","_s","_l","_q","_m","_f","_k","_b","_v","_e","_u","_g","_d","_p","FunctionalRenderContext","contextVm","this$1","_original","isCompiled","needNormalization","listeners","injections","scopedSlots","_c","createFunctionalComponent","mergeProps","renderContext","cloneAndMarkFunctionalResult","vnodes","componentVNodeHooks","hydrating","_isDestroyed","keepAlive","mountedNode","prepatch","createComponentInstanceForVnode","activeInstance","$mount","oldVnode","updateChildComponent","_isMounted","callHook","queueActivatedComponent","activateChildComponent","destroy","deactivateChildComponent","$destroy","hooksToMerge","createComponent","baseCtor","cid","resolveAsyncComponent","createAsyncPlaceholder","resolveConstructorOptions","model","transformModel","nativeOn","abstract","installComponentHooks","_isComponent","_parentVnode","inlineTemplate","toMerge","_merged","mergeHook$1","f1","f2","SIMPLE_NORMALIZE","ALWAYS_NORMALIZE","normalizationType","alwaysNormalize","_createElement","pre","applyNS","registerDeepBindings","force","initRender","_vnode","parentVnode","_renderChildren","parentData","_parentListeners","currentRenderingInstance","renderMixin","_render","ensureCtor","comp","errorComp","resolved","owners","loading","loadingComp","sync","timerLoading","timerTimeout","$on","forceRender","renderCompleted","$forceUpdate","reason","getFirstComponentChild","initEvents","_events","_hasHookEvent","updateComponentListeners","remove$1","$off","_target","onceHandler","oldListeners","eventsMixin","hookRE","$once","i$1","cbs","$emit","setActiveInstance","prevActiveInstance","initLifecycle","$children","_watcher","_inactive","_directInactive","_isBeingDestroyed","lifecycleMixin","_update","prevEl","prevVnode","restoreActiveInstance","__patch__","__vue__","_watchers","mountComponent","updateComponent","Watcher","newScopedSlots","oldScopedSlots","hasDynamicScopedSlot","needsForceUpdate","$attrs","$listeners","propKeys","_propKeys","isInInactiveTree","direct","activatedChildren","waiting","flushing","resetSchedulerState","currentFlushTimestamp","getNow","createEvent","flushSchedulerQueue","watcher","activatedQueue","updatedQueue","callActivatedHooks","callUpdatedHooks","emit","queueWatcher","uid$2","expOrFn","isRenderWatcher","user","lazy","dirty","deps","newDeps","depIds","newDepIds","expression","cleanupDeps","oldValue","evaluate","sharedPropertyDefinition","sourceKey","initState","initProps","initMethods","initData","initComputed","initWatch","propsOptions","isRoot","computedWatcherOptions","watchers","_computedWatchers","isSSR","userDef","defineComputed","shouldCache","createComputedGetter","createGetterInvoker","createWatcher","$watch","stateMixin","dataDef","propsDef","$set","$delete","immediate","uid$3","initMixin","_init","_uid","initInternalComponent","_self","vnodeComponentOptions","_componentTag","super","superOptions","cachedSuperOptions","modifiedOptions","resolveModifiedOptions","extendOptions","latest","sealed","sealedOptions","initUse","plugin","installedPlugins","_installedPlugins","install","initMixin$1","mixin","initExtend","Super","SuperId","cachedCtors","_Ctor","Sub","initProps$1","initComputed$1","Comp","initAssetRegisters","definition","getComponentName","pruneCache","keepAliveInstance","cachedNode","pruneCacheEntry","cached$$1","patternTypes","KeepAlive","include","exclude","created","ref$1","builtInComponents","initGlobalAPI","configDef","util","defineReactive","delete","observable","acceptValue","isEnumeratedAttr","isValidContentEditableValue","convertEnumeratedValue","isFalsyAttrValue","isBooleanAttr","xlinkNS","isXlink","getXlinkProp","genClassForVnode","childNode","mergeClassData","renderClass","staticClass","dynamicClass","stringifyClass","stringifyArray","stringifyObject","stringified","namespaceMap","math","isHTMLTag","isSVG","unknownElementCache","HTMLUnknownElement","HTMLElement","isTextInputType","query","querySelector","createElement$1","tagName","multiple","createElementNS","newNode","referenceNode","setTextContent","setStyleScope","nodeOps","registerRef","isRemoval","refs","refInFor","emptyNode","sameVnode","sameInputType","typeA","typeB","createKeyToOldIdx","beginIdx","endIdx","createPatchFunction","backend","emptyNodeAt","createRmCb","childElm","removeNode","createElm","insertedVnodeQueue","parentElm","refElm","nested","ownerArray","setScope","createChildren","invokeCreateHooks","isReactivated","initComponent","reactivateComponent","pendingInsert","isPatchable","innerNode","transition","activate","ref$$1","ancestor","addVnodes","startIdx","invokeDestroyHook","removeVnodes","removeAndInvokeRemoveHook","rm","updateChildren","oldCh","newCh","removeOnly","oldKeyToIdx","idxInOld","vnodeToMove","oldStartIdx","newStartIdx","oldEndIdx","oldStartVnode","oldEndVnode","newEndIdx","newStartVnode","newEndVnode","canMove","patchVnode","findIdxInOld","hydrate","postpatch","invokeInsertHook","isRenderedModule","inVPre","hasChildNodes","childrenMatch","fullInvoke","isInitialPatch","isRealElement","hasAttribute","oldElm","_leaveCb","patchable","i$2","updateDirectives","oldDir","isCreate","isDestroy","oldDirs","normalizeDirectives$1","newDirs","dirsWithInsert","dirsWithPostpatch","oldArg","callHook$1","componentUpdated","callInsert","emptyModifiers","modifiers","getRawDirName","rawName","baseModules","updateAttrs","inheritAttrs","oldAttrs","setAttr","removeAttributeNS","baseSetAttr","setAttributeNS","__ieph","blocker","updateClass","oldData","cls","transitionClass","_transitionClasses","_prevClass","target$1","klass","RANGE_TOKEN","CHECKBOX_RADIO_TOKEN","normalizeEvents","change","createOnceHandler$1","remove$2","useMicrotaskFix","add$1","attachedTimestamp","_wrapper","updateDOMListeners","svgContainer","updateDOMProps","oldProps","_value","strCur","shouldUpdateValue","checkVal","composing","isNotInFocusAndDirty","isDirtyWithModifiers","notInFocus","_vModifiers","number","parseStyleText","listDelimiter","propertyDelimiter","normalizeStyleData","normalizeStyleBinding","staticStyle","bindingStyle","getStyle","checkChild","styleData","cssVarRE","importantRE","setProp","normalizedName","normalize","vendorNames","updateStyle","oldStaticStyle","oldStyleBinding","normalizedStyle","oldStyle","newStyle","whitespaceRE","classList","tar","resolveTransition","autoCssTransition","enterClass","enterToClass","enterActiveClass","leaveClass","leaveToClass","leaveActiveClass","hasTransition","TRANSITION","ANIMATION","transitionProp","transitionEndEvent","animationProp","animationEndEvent","ontransitionend","onwebkittransitionend","onanimationend","onwebkitanimationend","raf","nextFrame","addTransitionClass","transitionClasses","removeTransitionClass","whenTransitionEnds","expectedType","getTransitionInfo","propCount","ended","onEnd","transformRE","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","delays","durations","toMs","enter","toggleDisplay","cancelled","_enterCb","appearClass","appearToClass","appearActiveClass","beforeEnter","afterEnter","enterCancelled","beforeAppear","appear","afterAppear","appearCancelled","transitionNode","isAppear","startClass","activeClass","toClass","beforeEnterHook","enterHook","afterEnterHook","enterCancelledHook","explicitEnterDuration","expectsCSS","userWantsControl","getHookArgumentsLength","pendingNode","_pending","isValidDuration","leave","beforeLeave","afterLeave","leaveCancelled","delayLeave","explicitLeaveDuration","performLeave","invokerFns","_enter","platformModules","patch","vmodel","directive","binding","_vOptions","setSelected","onCompositionStart","onCompositionEnd","prevOptions","curOptions","some","needReset","hasNoMatchingOption","actuallySetSelected","isMultiple","initEvent","dispatchEvent","locateNode","transition$$1","originalDisplay","__vOriginalDisplay","platformDirectives","transitionProps","getRealChild","compOptions","extractTransitionData","placeholder","rawChild","hasParentTransition","isSameChild","oldChild","isNotTextNode","isVShowDirective","Transition","_leaving","oldRawChild","delayedLeave","moveClass","TransitionGroup","beforeMount","kept","prevChildren","rawChildren","transitionData","c$1","updated","hasMove","callPendingCbs","recordPosition","applyTranslation","_reflow","moved","WebkitTransform","transitionDuration","_moveCb","propertyName","_hasMove","newPos","oldPos","dx","dy","platformComponents","getMigratingConfig","valueOf","4","48","67","_vm","_h","elForm","statusIcon","validateState","isRequired","required","hideRequiredAsterisk","sizeClass","labelStyle","form","labelWidth","label","for","labelFor","labelSuffix","contentStyle","showMessage","inlineMessage","validateMessage","_withStripped","label_wrap_render","label_wrap_staticRenderFns","external_async_validator_","external_async_validator_default","emitter_","emitter_default","merge_","merge_default","label_wrapvue_type_script_lang_js_","isAutoWidth","updateAll","autoLabelWidth","computedWidth","getLabelWidth","updateLabelWidth","action","deregisterLabelWidth","oldVal","registerLabelWidth","elFormItem","updateComputedLabelWidth","src_label_wrapvue_type_script_lang_js_","componentNormalizer","__file","label_wrap","form_itemvue_type_script_lang_js_","componentName","rules","validateStatus","LabelWrap","labelPosition","inline","isNested","computedLabelWidth","parentName","fieldValue","getRules","rule","_formSize","elFormItemSize","$ELEMENT","validateDisabled","validator","validate","_this","getFilteredRule","firstFields","errors","invalidFields","clearValidate","resetField","_this2","broadcast","formRules","selfRules","requiredRule","onFieldBlur","onFieldChange","addValidateEvents","removeValidateEvents","src_form_itemvue_type_script_lang_js_","form_item_component","form_item","9","LIBRARY","$export","redefine","Iterators","$iterCreate","ITERATOR","BUGGY","FF_ITERATOR","KEYS","VALUES","returnThis","Base","DEFAULT","IS_SET","FORCED","getMethod","kind","TAG","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","entries","F","toLength","toAbsoluteIndex","IS_INCLUDES","$this","fromIndex","isMergeableObject","isNonNullObject","isSpecial","stringValue","isReactElement","canUseSymbol","REACT_ELEMENT_TYPE","$$typeof","emptyTarget","cloneIfNecessary","optionsArgument","deepmerge","defaultArrayMerge","destination","mergeObject","sourceIsArray","targetIsArray","arrayMerge","sourceAndTargetTypesMatch","all","deepmerge_1","removeResizeListener","addResizeListener","_resizeObserverPolyfill","_resizeObserverPolyfill2","isServer","resizeHandler","_isArray","entry","__resizeListeners__","element","__ro__","disconnect","121","formvue_type_script_lang_js_","validateOnRuleChange","fields","field","potentialLabelWidthArr","resetFields","valid","validateField","getLabelWidthIndex","src_formvue_type_script_lang_js_","src_form","_vue","_vue2","_dom","nodeList","startClick","createDocumentHandler","mouseup","mousedown","popperElm","methodName","bindingFn","$isServer","documentHandler","_assign","_assign2","isVNode","_util","arch","execPath","pid","browser","argv","cwd","chdir","exit","kill","umask","dlopen","uptime","memoryUsage","uvCounters","features","i18n","_zhCN","_zhCN2","_deepmerge","_deepmerge2","_format","_format2","format","i18nHandler","vuei18n","$t","locale","hasModal","hasInitZIndex","zIndex","getModal","modalDom","PopupManager","doOnModalClick","instances","modalFade","getInstance","register","instance","deregister","nextZIndex","modalStack","topItem","closeOnClickModal","close","openModal","dom","modalClass","classArr","closeModal","getTopPopup","topPopup","closeOnPressEscape","handleClose","handleAction","gOPD","cof","Timeout","clearFn","_id","_clearFn","unref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout","clearImmediate","_merge","_merge2","_popupManager","_popupManager2","_scrollbarWidth","_scrollbarWidth2","idSeed","scrollBarWidth","openDelay","closeDelay","modal","modalAppendToBody","lockScroll","_popupId","restoreBodyStyle","opened","bodyPaddingRight","computedBodyPaddingRight","withoutHiddenClass","rendered","_opening","$props","_closeTimer","_openTimer","doOpen","willOpen","_closing","paddingRight","bodyHasOverflow","bodyOverflowY","onOpen","doAfterOpen","_this3","willClose","doClose","onClose","doAfterClose","core","PROTOTYPE","own","out","IS_FORCED","IS_GLOBAL","G","IS_STATIC","IS_PROTO","IS_BIND","IS_WRAP","W","expProto","virtual","R","U","__e","color_string","alpha","simple_colors","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","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","feldspar","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgrey","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslateblue","lightslategray","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","snow","springgreen","steelblue","teal","thistle","tomato","turquoise","violet","violetred","wheat","white","whitesmoke","yellow","yellowgreen","color_defs","re","example","bits","processor","channels","toRGB","toRGBA","toHex","getHelpXML","examples","sc","list_item","list_color","RGBColor","example_div","list_item_value","isInContainer","getScrollContainer","isScroll","setStyle","SPECIAL_CHARS_REGEXP","MOZ_HACK_REGEXP","ieVersion","documentMode","separator","detachEvent","listener","curClass","clsName","styleName","currentStyle","determinedDirection","includes","elRect","containerRect","innerWidth","bottom","innerHeight","shared","_classCallCheck","mulTable","shgTable","processImage","radius","blurAlphaChannel","useOffsetWidth","dimensionType","naturalWidth","naturalHeight","processCanvasRGBA","processCanvasRGB","getImageDataFromCanvas","topX","topY","imageData","processImageDataRGBA","stackEnd","pixels","widthMinus1","heightMinus1","radiusPlus1","sumFactor","stackStart","BlurStack","stackIn","stackOut","yw","yi","mulSum","shgSum","pr","pg","pb","pa","rInSum","gInSum","bInSum","aInSum","rOutSum","gOutSum","bOutSum","aOutSum","rSum","gSum","bSum","aSum","_i2","rbs","paInitial","_a2","_stackOut","_r","_a","_x","_pr","_pg","_pb","_pa","_rOutSum","_gOutSum","_bOutSum","_aOutSum","_rSum","_gSum","_bSum","_aSum","_i3","yp","_gInSum","_bInSum","_aInSum","_rInSum","_i4","_rbs","_y","_p2","processImageDataRGB","_i5","_i6","_x2","_pr2","_pg2","_pb2","_rOutSum2","_gOutSum2","_bOutSum2","_rSum2","_gSum2","_bSum2","_i7","_rInSum2","_gInSum2","_bInSum2","_i8","_y2","registerImmediate","nextHandle","tasksByHandle","currentlyRunningATask","attachTo","installNextTickImplementation","canUsePostMessage","installPostMessageImplementation","MessageChannel","installMessageChannelImplementation","installReadyStateChangeImplementation","installSetTimeoutImplementation","task","runIfPresent","postMessage","importScripts","postMessageIsAsynchronous","oldOnMessage","onmessage","messagePrefix","onGlobalMessage","channel","port1","port2","DEFAULTS","placement","gpuAcceleration","boundariesElement","boundariesPadding","preventOverflowOrder","flipBehavior","arrowElement","arrowOffset","modifiersIgnored","forceAbsolute","Popper","reference","popper","_reference","isNotDefined","isConfig","_popper","_options","modifier","_getPosition","_setupEventListeners","getOuterSizes","_display","_visibility","marginTop","getOppositePlacement","getPopperClientRect","popperOffsets","offsets","getArrayKeyIndex","keyToFind","getStyleComputedProperty","getOffsetParent","getScrollParent","isFixed","is_numeric","functionToCheck","getOffsetRect","elementRect","rectTop","getOffsetRectRelativeToCustomParent","fixed","parentRect","scrollParent","getSupportedPropertyName","prefixes","toCheck","_removeEventListeners","removeOnDestroy","_originalPlacement","_getOffsets","boundaries","_getBoundaries","runModifiers","updateCallback","onCreate","onUpdate","defaultConfig","arrowTagName","arrowClassNames","arrowAttributes","addClassNames","addAttributes","arrow","isParentFixed","referenceOffsets","popperRect","updateBound","scrollTarget","offsetParentRect","getScrollTopValue","getScrollLeftValue","ends","modifiersToRun","isModifierRequired","requesting","requested","applyStyle","prefixedProperty","basePlacement","shiftVariation","shiftOffsets","preventOverflow","order","keepTogether","flip","flipped","placementOpposite","variation","flipOrder","_flip","arrowStyle","isVertical","side","altSide","opSide","arrowSize","center","sideValue","nextSource","keysArray","nextIndex","nextKey","$keys","hiddenKeys","TO_STRING_TAG","DOMIterables","Collection","addToUnscopables","Arguments","META","KEY","$fails","wks","wksExt","wksDefine","enumKeys","_create","gOPNExt","$GOPD","$GOPS","$DP","$Symbol","$JSON","_stringify","HIDDEN","TO_PRIMITIVE","SymbolRegistry","AllSymbols","OPSymbols","ObjectProto","USE_NATIVE","QObject","findChild","setSymbolDesc","protoDesc","sym","isSymbol","$defineProperty","$defineProperties","$create","$propertyIsEnumerable","$getOwnPropertyDescriptor","$getOwnPropertyNames","$getOwnPropertySymbols","IS_OP","es6Symbols","wellKnownSymbols","store","keyFor","useSetter","useSimple","getOwnPropertySymbols","FAILS_ON_PRIMITIVES","replacer","$replacer","_locale","_len","MapShim","Map","getIndex","class_1","__entries__","isBrowser","global$1","requestAnimationFrame$1","trailingTimeout","throttle","leadingCall","trailingCall","lastCallTime","resolvePending","timeoutCallback","REFRESH_DELAY","transitionKeys","mutationObserverSupported","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","refresh","addObserver","connect_","removeObserver","observers","disconnect_","changesDetected","updateObservers_","activeObservers","gatherActive","hasActive","broadcastActive","childList","subtree","isReflowProperty","instance_","defineConfigurable","getWindowOf","ownerGlobal","emptyRect","createRectInit","toFloat","getBordersSize","positions","getPaddings","paddings","positions_1","getSVGContentRect","bbox","getBBox","getHTMLElementContentRect","horizPad","vertPad","boxSizing","isDocumentElement","vertScrollbar","horizScrollbar","isSVGGraphicsElement","SVGGraphicsElement","SVGElement","getContentRect","createReadOnlyRect","Constr","DOMRectReadOnly","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","isActive","broadcastRect","ResizeObserverEntry","rectInit","contentRect","ResizeObserverSPI","controller","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","observations","unobserve","clearActive","observation","WeakMap","ResizeObserver","dPs","enumBugKeys","Empty","createDict","iframeDocument","iframe","lt","gt","contentWindow","write","Properties","isEmpty","isEqual","arrayEquals","kebabCase","autoprefixer","isFirefox","coerceTruthyValueToArray","arrayFind","arrayFindIndex","escapeRegexpString","valueEquals","generateId","getValueByPath","getPropByPath","rafThrottle","objToArray","_types","paths","strict","tempObj","keyArr","pred","isString","arrayA","arrayB","value1","value2","px","stat","runtime","Op","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","define","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","_invoke","makeInvokeMethod","tryCatch","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","record","__await","unwrapped","previousPromise","enqueue","callInvokeWithMethodAndArg","doneResult","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","displayName","isGeneratorFunction","genFun","ctor","mark","setPrototypeOf","awrap","iter","skipTempReset","rootEntry","rootRecord","rval","exception","loc","caught","hasCatch","hasFinally","finallyEntry","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","aFunction","template","RE_NARGS","formatRegExp","warning","isNativeStringType","isEmptyValue","asyncParallelArray","total","arrLength","asyncSerialArray","flattenObjArr","objArr","asyncMap","flattenArr","objArrKeys","objArrLength","complementError","oe","fullField","deepMerge","messages","email","hex","integer","float","regexp","date","getMonth","getYear","custom","ruleType","range","spRegexp","ENUM","mismatch","_pattern","floatFn","dateObject","boolean","newMessages","invalid","Schema","_messages","z","source_","oc","series","getValidationMethod","errorFields","doIt","defaultField","addFullfield","schema","fieldsSchema","fieldSchema","errs","messageIndex","require","isHtmlElement","Node","ELEMENT_NODE","isUndefined","isDefined","SHARED","copyright","esModule","unload","renderByParent","reload","layer","overlay","contextMenu","BMap","transmitEvent","originInstance","clearResults","dispose","clearMarkers","preventChildrenRender","lng","lat","Pixel","sw","ne","Bounds","Size","Icon","anchor","imageSize","imageOffset","infoWindowAnchor","printImageUrl","Label","enableMassClear","createPoint","createPixel","createBounds","createSize","createIcon","createLabel","eval","getPosition","checkType","isPoint","I","L","BmlCurveLine","BmlHeatmap","BmlLushu","BmlMarkerClusterer","BmAutoComplete","BmBoundary","BmTraffic","BmTile","BmBus","BmDriving","BmWalking","BmTransit","BmLocalSearch","BmContextMenuItem","BmContextMenu","BmOverlay","BmInfoWindow","BmLabel","BmGround","BmCircle","BmPolygon","BmPolyline","BmPointCollection","BmMarker","BmControl","BmPanorama","BmCityList","BmCopyright","BmGeolocation","BmOverviewMap","BmMapType","BmNavigation","BmScale","BmView","BaiduMap","N","Z","H","J","X","q","Q","Y","tt","et","nt","ot","at","rt","st","ut","ht","pt","dt","ft","mt","yt","ak","_BMap","iconUrl","seperator","iseperator","removeContextMenu","ContextMenu","addSeparator","MenuItem","pixel","enable","addItem","return","addContextMenu","CityListControl","onChangeBefore","onChangeAfter","addControl","setAnchor","defaultAnchor","defaultOffset","Control","initialize","getContainer","updateCopyrightList","CopyrightControl","removeCopyright","getCopyrightCollection","bounds","getBounds","addCopyright","showAddressBar","autoLocation","locationIcon","GeolocationControl","enableAutoLocation","mapTypes","MapTypeControl","showZoomInfo","enableGeolocation","NavigationControl","isOpen","OverviewMapControl","PanoramaControl","ScaleControl","strokeColor","strokeWeight","strokeOpacity","massClear","clicking","editing","disableEditing","setStrokeColor","setStrokeOpacity","setStrokeWeight","setStrokeStyle","enableEditing","disableMassClear","enableClicking","addOverlay","gradient","setOptions","setDataSet","landmarkPois","icon","autoView","infoWindow","play","_opts","_marker","showInfoWindow","hideInfoWindow","defaultContent","_overlay","setHtml","enableRotation","_isEnd","pause","onstart","onstop","onpause","gridSize","maxZoom","minClusterSize","averageCenter","setGridSize","setMaxZoom","setMinClusterSize","setStyles","isAverageCenter","Marker","addMarkers","transparentPng","tileUrlTemplate","TileLayer","addTileLayer","predictDate","pridictDate","TrafficLayer","zoom","minZoom","highResolution","mapClick","mapType","dragging","scrollWheelZoom","doubleClickZoom","keyboard","inertialDragging","continuousZoom","pinchToZoom","autoResize","theme","mapStyle","centerAndZoom","setZoom","setMinZoom","setMapType","enableDragging","disableDragging","enableScrollWheelZoom","disableScrollWheelZoom","enableDoubleClickZoom","disableDoubleClickZoom","enableKeyboard","disableKeyboard","enableInertialDragging","disableInertialDragging","enableContinuousZoom","disableContinuousZoom","enablePinchToZoom","disablePinchToZoom","enableAutoResize","disableAutoResize","setMapStyle","styleJson","setMapOptions","hasBmView","enableHighResolution","enableMapClick","getCenterPoint","initMap","getMapScript","_preloader","_initBaiduMap","sugStyle","Autocomplete","onSearchComplete","province","city","district","street","business","Boundary","fillColor","fillOpacity","isEditing","setCenter","setRadius","setFillColor","setFillOpacity","dragStartHandler","dragEndHandler","bindEditingNodeEvents","editingKey","getEditingKey","Circle","imageURL","displayOnMinLevel","displayOnMaxLevel","setBounds","setOpacity","setImageURL","setDisplayOnMinLevel","setDisplayOnMaxLevel","GroundOverlay","maximize","autoPan","closeOnClick","openInfoWindow","closeInfoWindow","setWidth","setHeight","setTitle","enableMaximize","disableMaximize","enableAutoPan","disableAutoPan","enableCloseOnClick","disableCloseOnClick","redraw","bindObserver","InfoWindow","enableMessage","$container","setContent","setZIndex","setLabel","raiseOnDrag","draggingCursor","shadow","setPosition","setIcon","setRotation","setDraggingCursor","setShadow","setAnimation","setTop","ReferenceError","pane","getPanes","Overlay","shape","setPoints","PointCollection","Polygon","Polyline","keyword","panel","pageCapacity","autoViewport","selectFirstResult","setLocation","search","getBusList","highlightMode","BusLineSearch","renderOptions","onGetBusListComplete","onGetBusLineComplete","onBusListHtmlSet","onBusLineHtmlSet","onMarkersSet","onPolylinesSet","startCity","endCity","waypoints","policy","getWaypoints","DrivingRoute","onInfoHtmlSet","onResultsHtmlSet","forceLocal","customData","nearby","searchInBounds","searchNearby","setPageCapacity","enableAutoViewport","disableAutoViewport","enableFirstResultSelection","disableFirstResultSelection","LocalSearch","setPolicy","TransitRoute","WalkingRoute","cornerPoints","editMarkers","setPath","removeOverlay","getPath","atan","superClass","_className","heatmap","addDataPoint","drawAlpha","colorize","exportDataSet","generateRandomDataSet","labelsEl","gradientCfg","processGradientObject","createGradientImage","toDataURL","getElement","acanvas","actx","legend","premultiplyAlpha","debug","configure","1","getWidth","getHeight","initColorPalette","shadowOffsetX","shadowOffsetY","shadowBlur","paddingLeft","paddingTop","paddingBottom","shadowColor","cleanup","mousePosition","layerX","layerY","_isExtended","conf","latlngs","_moveendHandler","_map","getSize","mapPane","_div","draw","equals","pointToOverlayPixel","getNorthEast","getSouthWest","latlng","containsPoint","pixelTransform","_point","_html","floatPane","lushuMain","getIcon","setRelatedClass","getDocument","ie","$1","_styleFixer","_styleFilter","toCamelCase","_NAME_ATTRS","cellpadding","cellspacing","colspan","rowspan","valign","usemap","frameborder","htmlFor","setAttrs","_path","_setTimeoutQuene","_projection","getMapType","getProjection","_setOptions","_rotation","defaultIcon","_fromPause","_fromStop","_moveNext","_addMarker","_timeoutFlag","_addInfoWin","_intervalFlag","_clearTimeout","bShow","BMAP_ANIMATION_DROP","_getMercator","lngLatToPoint","_getDistance","_move","pointToLngLat","_setInfoWin","pointToPixel","linePixellength","pointToPoint","_tween","_troughPointIndex","_pauseForView","pauseTime","getDistance","_markerClusterer","getMap","_minClusterSize","getMinClusterSize","_isAverageCenter","_center","_markers","_gridBounds","_isReal","_clusterMarker","opera","isWebkit","isGecko","isStrict","compatMode","getBoxObjectFor","clientLeft","clientTop","_listeners","_eventFilter","_counter","_instances","Class","disposed","__listeners","hashCode","inherits","_position","_text","_styles","_setupDefaultStyles","_domElement","_updateCss","_updateText","_updatePosition","_bind","markerMouseTarget","setText","getStyleByText","_buildCssText","textColor","textSize","srcElement","pixelToPoint","_clusters","_gridSize","_maxZoom","_redraw","markers","_pushMarkerTo","_createClusters","isInCluster","getCenter","_addToClosestCluster","isMarkerInClusterBounds","_clearLastClusters","_removeMarkersFromCluster","_removeMarkersFromMap","getLabel","_removeMarker","removeMarker","removeMarkers","getGridSize","getMaxZoom","getClustersCount","isReal","isMarkerInCluster","updateGridBounds","updateClusterMarker","getZoom","_hasClickEvent","setViewport","dblclick","mouseout","mouseover","extendStatics","__extends","__","__assign","__awaiter","thisArg","_arguments","fulfilled","rejected","__generator","trys","ops","verb","op","fromClientRect","clientRect","parseBounds","parseDocumentSize","toCodePoints","codePoints","fromCodePoint","codeUnits","codePoint","chars","lookup","Uint8Array","TokenType","decode","base64","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","Uint16Array","slice32","Uint32Array","createTrieFromBase64","view32","view16","headerLength","Trie","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","indicies","categories","classType","isAdjacentWithSpaceIgnored","currentIndex","classTypes","previousNonSpaceClassType","_lineBreakAtIndex","forbiddenBreaks","beforeIndex","afterIndex","prevIndex","cssFormattedClasses","wordBreak","isLetterNumber","forbiddenBreakpoints","letterNumber","Break","LineBreaker","lastEnd","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","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","exp","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","chunk","read","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","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","DIMENSION_TOKEN","PERCENTAGE_TOKEN","NUMBER_TOKEN","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","getAbsoluteValue","DEG","GRAD","RAD","TURN","isAngle","parseNamedSide","sideOrCorner","ident","deg","colorFunction","SUPPORTED_COLOR_FUNCTIONS","substring","pack","namedColor","COLORS","TRANSPARENT","isTransparent","asString","getTokenColorValue","rgb","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","LIST","PADDING_BOX","CONTENT_BOX","BORDER_BOX","backgroundColor","TYPE_VALUE","parseColorStop","color$1","processColorStops","lineLength","processStops","previous","stop_1","absoluteValue","gapBegin","stop_2","gapLength","beforeGap","gapValue","getAngleFromCorner","corner","centerX","centerY","calculateGradientDirection","radian","halfWidth","halfHeight","halfLineLength","yDiff","xDiff","findCorner","corners","optimumDistance","optimumCorner","Infinity","calculateRadius","rx","ry","CSSRadialExtent","CLOSEST_SIDE","CSSRadialShape","CIRCLE","ELLIPSE","CLOSEST_CORNER","FARTHEST_SIDE","FARTHEST_CORNER","angle$1","firstToken","colorStop","LINEAR_GRADIENT","prefixLinearGradient","testRangeBounds","TEST_HEIGHT","createRange","testElement","selectNode","rangeBounds","rangeHeight","testCORS","Image","testResponseType","testSVG","isGreenPixel","testForeignObject","greenImageSrc","createForeignObjectSVG","loadSerializedSVG","backgroundImage","xmlns","foreignObject","XMLSerializer","serializeToString","FEATURES","fetch","Logger","enabled","CacheStorage","_caches","Cache","getOrigin","link","_link","hostname","port","isSameOrigin","_origin","_current","attachInstance","detachInstance","_cache","addImage","isBlobImage","isRenderable","loadImage","useProxy","isInlineImage","SUPPORT_CORS_IMAGES","SUPPORT_CORS_XHR","allowTaint","isInlineBase64Image","imageTimeout","SUPPORT_RESPONSE_TYPE","reader_1","FileReader","readAsDataURL","timeout_1","INLINE_SVG","INLINE_BASE64","INLINE_IMG","SUPPORT_SVG_DRAWING","webkitGradient","RADIAL_GRADIENT","COVER","CONTAIN","isColorStop","isAtPosition_1","acc","prefixRadialGradient","isLinearGradient","background","isRadialGradient","image_1","URL","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","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","borderRadiusForSide","borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius","FLOAT","borderStyleForSide","IDENT_VALUE","NONE","SOLID","borderTopStyle","borderRightStyle","borderBottomStyle","borderLeftStyle","borderWidthForSide","VALUE","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","bit","parseDisplayValue","LINE_BREAK","LEFT","RIGHT","INLINE_START","INLINE_END","LIST_STYLE_POSITION","STRICT","NORMAL","lineHeight","TOKEN_VALUE","computeLineHeight","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","OVERFLOW_WRAP","SCROLL","AUTO","VISIBLE","TEXT_ALIGN","overflowWrap","BREAK_WORD","paddingForSide","POSITION","textAlign","CENTER","TEXT_TRANSFORM","RELATIVE","ABSOLUTE","FIXED","STICKY","STATIC","textShadow","VISIBILITY","textTransform","UPPERCASE","LOWERCASE","CAPITALIZE","transformFunction","SUPPORTED_TRANSFORM_FUNCTIONS","matrix3d","b1","b2","a4","b4","DEFAULT_VALUE","transformOrigin","origins","WORD_BREAK","COLLAPSE","FONT_STYLE","BREAK_ALL","KEEP_ALL","auto","textDecorationColor","textDecorationLine","accumulator","PseudoElementType","OBLIQUE","ITALIC","counterIncrement","increments","filtered","increment","counterReset","resets","quotes","open_1","close_1","getQuote","quote","boxShadow","spread","inset","CSSParsedDeclaration","declaration","cssFloat","overflowTuple","isVisible","isTransformed","isPositioned","isPositionedWithZIndex","isFloating","isInlineLevel","CSSParsedPseudoDeclaration","CSSParsedCounterDeclaration","parser","length_1","value_1","ElementContainer","textNodes","isHTMLElementNode","TextBounds","parseTextBounds","textList","breakText","textBounds","SUPPORT_RANGE_BOUNDS","getRangeBounds","replacementNode","splitText","getWrapperBounds","wrapper","setStart","setEnd","breakWords","bk","breaker","words","TextContainer","transform$1","p2","ImageElementContainer","_super","currentSrc","intrinsicWidth","intrinsicHeight","CanvasElementContainer","SVGElementContainer","baseVal","LIElementContainer","OLElementContainer","reversed","CHECKBOX_BORDER_RADIUS","RADIO_BORDER_RADIUS","reformatInputBounds","getInputValue","PASSWORD","CHECKBOX","RADIO","INPUT_COLOR","InputElementContainer","SelectElementContainer","TextareaElementContainer","parseColor","IFrameElementContainer","parseTree","documentBackgroundColor","bodyBackgroundColor","LIST_OWNERS","parseNodeTree","nextNode","isElementNode","createContainer","createsRealStackingContext","createsStackingContext","isTextareaElement","isSVGElement","isSelectElement","isImageElement","isCanvasElement","isLIElement","isOLElement","isInputElement","isIFrameElement","isBodyElement","TEXT_NODE","isSVGElementNode","isHTMLElement","isStyleElement","isScriptElement","CounterState","counters","getCounterValue","getCounterValues","canReset","counterNames","ROMAN_UPPER","createAdditiveCounter","createCounterText","createCounterStyleWithSymbolResolver","codePointRangeLength","resolver","createCounterStyleFromRange","codePointRangeStart","codePointRangeEnd","createCounterStyleFromSymbols","CJK_ZEROS","CJK_TEN_COEFFICIENTS","CJK_TEN_HIGH_COEFFICIENTS","CJK_HUNDRED_COEFFICIENTS","createCJKCounter","numbers","multipliers","negativeSign","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","cloneWindow","documentClone","iframeLoad","iframeLoader","onclone","restoreNodeScroll","clonedReferenceElement","fonts","serializeDoctype","doctype","restoreOwnerScroll","adoptNode","createElementClone","createCanvasClone","createStyleClone","sheet","cssRules","inlineImages","clonedCanvas","clonedCtx","styleBefore","styleAfter","createPseudoHideStyles","resolvePseudoContent","BEFORE","ignoreElements","copyStyles","AFTER","copyCSSStyles","pseudoElt","anonymousReplacedElement","counterStyle","counterState","counterType","delim","counterStates","counterType_1","PSEUDO_HIDE_ELEMENT_CLASS_BEFORE","PSEUDO_HIDE_ELEMENT_CLASS_AFTER","newClassName","baseValue","PathType","cloneIframeContainer","scrolling","internalSubset","publicId","systemId","PSEUDO_BEFORE","PSEUDO_AFTER","PSEUDO_HIDE_ELEMENT_STYLE","createStyles","CORNER","equalPath","transformPath","deltaX","deltaY","deltaW","deltaH","Vector","VECTOR","lerp","BezierCurve","startControl","endControl","BEZIER_CURVE","subdivide","firstHalf","ab","bc","cd","abbc","bccd","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","numbering","listValue","parseStackingContexts","parsePathForBorder","borderSide","createPathFromCurves","outer1","inner1","outer2","inner2","contentBox","calculateBackgroundPositioningArea","calculateBackgroundPaintingArea","calculateBackgroundRendering","intrinsicSize","backgroundPositioningArea","getBackgroundValueForIndex","backgroundPaintingArea","backgroundImageSize","calculateBackgroundSize","calculateBackgroundRepeatPath","isAuto","hasIntrinsicValue","intrinsicProportion","hasIntrinsicProportion","targetRatio","hasIntrinsicWidth","hasIntrinsicHeight","hasIntrinsicDimensions","width_1","height_1","width_2","height_2","width_3","height_3","repeat","SMALL_IMAGE","SAMPLE_TEXT","FontMetrics","_document","parseMetrics","span","verticalAlign","getMetrics","MASK_OFFSET","CanvasRenderer","_activeEffects","fontMetrics","applyEffects","popEffect","applyEffect","renderStack","renderStackContent","renderNode","paint","renderNodeBackgroundAndBorders","renderNodeContent","renderTextWithLetterSpacing","letters","createFontStyle","variant","renderTextNode","textShadows","renderReplacedElement","iframeRenderer","windowWidth","windowHeight","isTextInputElement","canvasTextAlign","_j","formatPath","renderRepeat","resizeImage","renderBackgroundImage","_loop_1","this_1","x0","y0","gradient_1","top_1","radialGradient_1","midX","midY","invF","renderBorder","curvePoints","hasBackground","borders","borders_1","calculateBackgroundCurvedPaintingArea","borderBoxArea","maskOffset","shadowPaintingArea","ForeignObjectRenderer","loadSerializedSVG$1","parseColor$1","html2canvas","renderElement","instanceName","defaultResourceOptions","resourceOptions","defaultOptions","windowBounds","documentCloner","clonedElement","bgColor","defaultBackgroundColor","renderer","logging","removeContainer","foreignObjectRendering","devicePixelRatio","popperClass","showSeconds","useArrow","amPmMode","handleChange","setSelectionRange","handleCancel","confirm","handleConfirm","date_util_","locale_","locale_default","time_spinner","timevue_type_script_lang_js_","TimeSpinner","timeArrowControl","spinner","emitSelectRange","needInitAdjust","selectableRange","adjustSpinners","selectionRange","arrowControl","handleKeydown","mapping","38","40","37","changeSelectionRange","_step","scrollDown","panel_timevue_type_script_lang_js_","element_ui_src_utils_dom__WEBPACK_IMPORTED_MODULE_0__","ranged","pickerSize","pickerDisabled","pickerVisible","handleRangeClick","handleMouseEnter","showClose","keydown","triggerClass","autocomplete","startPlaceholder","readonly","editable","displayValue","handleStartInput","handleStartChange","handleFocus","firstInputId","rangeSeparator","endPlaceholder","handleEndInput","handleEndChange","secondInputId","haveTrigger","clearIcon","handleClickIcon","validateEvent","userInput","external_vue_","external_vue_default","clickoutside_","clickoutside_default","vue_popper_","vue_popper_default","input_","input_default","NewPopper","appendToBody","visibleArrow","DEFAULT_FORMATS","month","datetime","week","timerange","daterange","monthrange","datetimerange","year","HAVE_TRIGGER_TYPES","pickervue_type_script_lang_js_DATE_FORMATTER","pickervue_type_script_lang_js_DATE_PARSER","RANGE_FORMATTER","RANGE_PARSER","range1","range2","TYPE_VALUE_RESOLVER_MAP","formatter","trueDate","setHours","setDate","getDate","getDay","dates","PLACEMENT_MAP","parseAsFormatAndType","customFormat","formatAsFormatAndType","dateEquals","aIsDate","bIsDate","aIsArray","bIsArray","pickervue_type_script_lang_js_","valueFormat","prefixIcon","clearable","align","defaultTime","pickerOptions","unlinkPanels","ElInput","Clickoutside","valueOnOpen","unwatchPickerOptions","showPicker","hidePicker","emitChange","parsedValue","picker","refInput","valueIsEmpty","selectionMode","showTrigger","formattedValue","valueIsDateObject","_elFormItemSize","popperOptions","handleFieldReset","isParsed","formatToValue","isFormattable","parseString","formatToString","emitInput","newValue","handleClear","resetView","destroyPopper","mountPicker","updatePopper","showTime","updateOptions","ranges","doDestroy","unmountPicker","formatted","src_pickervue_type_script_lang_js_","mousemove","adjustCurrentSpinner","hoursList","hour","hours","handleClick","amPm","minutesList","minutes","seconds","decrease","increase","arrowHourList","arrowMinuteList","minute","arrowSecondList","scrollbar_","scrollbar_default","repeat_click","time_spinnervue_type_script_lang_js_","ElScrollbar","repeatClick","getHours","getMinutes","getSeconds","currentScrollbar","bindScrollEvent","modifyDateField","adjustSpinner","bindFuntion","onscroll","scrollBarHeight","typeItemHeight","shouldShowAmPm","isCapital","basic_time_spinnervue_type_script_lang_js_","handleEnter","handleLeave","sidebar","shortcuts","shortcut","handleShortcutClick","visibleDate","userInputDate","handleVisibleDateChange","handleTimePickClose","visibleTime","timePickerVisible","userInputTime","handleVisibleTimeChange","pick","handleTimePick","proxyTimePickerDataProperties","currentView","prevYear","prevMonth","role","showYearPicker","yearLabel","showMonthPicker","nextYear","nextMonth","firstDayOfWeek","cellClassName","disabledDate","handleDatePick","handleYearPick","handleMonthPick","footerVisible","changeToNow","plain","button_","button_default","panel_time","year_tablevue_type_template_id_c86ab5e0_render","handleYearTableClick","getCellStyle","startYear","year_tablevue_type_template_id_c86ab5e0_staticRenderFns","year_tablevue_type_script_lang_js_datesInYear","numOfDays","firstDay","year_tablevue_type_script_lang_js_","getFullYear","today","innerText","basic_year_tablevue_type_script_lang_js_","year_table","month_tablevue_type_template_id_654d4f42_render","handleMonthTableClick","handleMouseMove","rows","row","cell","months","month_tablevue_type_template_id_654d4f42_staticRenderFns","month_tablevue_type_script_lang_js_datesInMonth","clearDate","getMonthTimestamp","month_tablevue_type_script_lang_js_","minDate","maxDate","rangeState","endDate","selecting","markRange","tableRows","lastRow","lastColumn","cellMatchesDate","inRange","getMonthOfCell","rowIndex","column","cellIndex","newDate","selectedDate","_loop","isToday","cellDate","basic_month_tablevue_type_script_lang_js_","month_table_component","month_table","date_tablevue_type_template_id_5d1f3341_render","showWeekNumber","WEEKS","isWeekActive","getCellClasses","date_tablevue_type_template_id_5d1f3341_staticRenderFns","_WEEKS","date_tablevue_type_script_lang_js_getDateTimestamp","date_tablevue_type_script_lang_js_removeFromArray","date_tablevue_type_script_lang_js_","offsetDay","startDate","day","dateCountOfMonth","dateCountOfLastMonth","numberOfDaysFromPreviousMonth","customClass","getDateOfCell","offsetFromStart","setMonth","setFullYear","dayOffset","weekDate","_cell","weekNumber","basic_date_tablevue_type_script_lang_js_","date_table_component","date_table","datevue_type_script_lang_js_","inputElm","pickerWidth","getDefaultValue","timepicker","timeFormat","_date","_selectableRange","_this4","onClick","checkDateWithinRange","handleKeyControl","monthDate","dateFormat","TimePicker","YearTable","MonthTable","DateTable","ElButton","yearTranslation","panel_datevue_type_script_lang_js_","date_component","panel_date","date_rangevue_type_template_id_2652849a_render","minVisibleDate","handleDateInput","handleDateChange","handleMinTimeClose","minVisibleTime","minTimePickerVisible","handleTimeInput","handleTimeChange","handleMinTimePick","minTimePicker","maxVisibleDate","handleMaxTimeClose","maxVisibleTime","maxTimePickerVisible","handleMaxTimePick","maxTimePicker","leftPrevYear","leftPrevMonth","enableYearArrow","leftNextYear","enableMonthArrow","leftNextMonth","leftLabel","leftDate","changerange","handleChangeRange","handleRangePick","rightPrevYear","rightPrevMonth","rightNextYear","rightNextMonth","rightLabel","rightDate","btnDisabled","date_rangevue_type_template_id_2652849a_staticRenderFns","date_rangevue_type_script_lang_js_calcDefaultValue","date_rangevue_type_script_lang_js_","leftYear","leftMonth","leftMonthDate","rightYear","rightMonth","rightMonthDate","dateUserInput","timeUserInput","yearOffset","minDateYear","minDateMonth","maxDateYear","maxDateMonth","_calcDefaultValue","_this5","onPick","panel_date_rangevue_type_script_lang_js_","date_range_component","date_range","month_rangevue_type_template_id_f2645fb8_render","month_rangevue_type_template_id_f2645fb8_staticRenderFns","month_rangevue_type_script_lang_js_calcDefaultValue","month_rangevue_type_script_lang_js_","panel_month_rangevue_type_script_lang_js_","month_range_component","month_range","date_picker_getPanel","date_picker","_type","USE_SYMBOL","$exports","_broadcast","eventName","isKorean","reg","fecha","twoDigits","threeDigits","fourDigits","word","literal","regexEscape","shorten","sLen","newArr","monthUpdate","arrName","pad","dayNames","monthNames","monthNamesShort","dayNamesShort","DoFn","formatFlags","dateObj","DD","Do","dd","ddd","dddd","MM","MMM","MMMM","yy","yyyy","hh","HH","mm","ss","getMilliseconds","SS","SSS","ZZ","getTimezoneOffset","parseFlags","da","cent","millisecond","isPm","timezoneOffset","masks","shortDate","mediumDate","longDate","fullDate","shortTime","mediumTime","longTime","i18nSettings","literals","$0","dateStr","dateInfo","parseInfo","newFormat","UTC","validateRangeInOneMonth","extractTimeFormat","extractDateFormat","changeYearMonthAndClampDate","timeWithinRange","limitTimeRange","clearMilliseconds","clearTime","modifyWithTimeString","modifyTime","modifyDate","getRangeMinutes","getMonthDays","getPrevMonthLastDays","getRangeHours","getWeekNumber","getStartDateOfMonth","nextDate","prevDate","getFirstDayOfMonth","getDayCountOfYear","getDayCountOfMonth","parseDate","formatDate","isDateObject","isDate","toDate","getI18nSettings","_date2","weeks","newArray","isLeapYear","week1","disabledHours","lastDay","days","setRangeData","startHour","startMinute","endHour","endMinute","normalizeDate","ndate","nranges","nrange","limitedDate","normalizeArray","allowAboveRoot","up","basename","matchedSlash","xs","resolvedPath","resolvedAbsolute","isAbsolute","trailingSlash","fromParts","toParts","samePartsLength","outputParts","sep","delimiter","dirname","hasRoot","ext","extname","startDot","startPart","preDotState","setDesc","FREEZE","preventExtensions","setMeta","fastKey","getWeak","onFreeze","meta","NEED","outer","widthNoScroll","inner","widthWithScroll","_popup","PopperJS","showPopper","currentPlacement","createPopper","referenceElm","appendArrow","popperJS","resetTransformOrigin","forceDestroy","placementMap","origin","appended","deactivated","97","buttonSize","buttonDisabled","autofocus","nativeType","buttonvue_type_script_lang_js_","src_buttonvue_type_script_lang_js_","src_button","__g","colorpicker","datepicker","cancel","selectDate","selectTime","endTime","month1","month2","month3","month4","month5","month6","month7","month8","month9","month10","month11","month12","sun","mon","tue","wed","thu","fri","sat","jan","feb","mar","apr","may","jun","jul","aug","oct","nov","dec","noMatch","noData","cascader","pagination","goto","pagesize","pageClassifier","messagebox","upload","deleteTip","preview","continue","emptyText","confirmFilter","resetFilter","clearFilter","sumText","transfer","titles","filterPlaceholder","noCheckedFormat","hasCheckedFormat","pageHeader","popconfirm","confirmButtonText","cancelButtonText","11","21","76","inputSize","inputDisabled","inputExceed","suffixIcon","showPassword","hovering","passwordVisible","autoComplete","compositionstart","handleCompositionStart","compositionupdate","handleCompositionUpdate","compositionend","handleCompositionEnd","handleInput","handleBlur","getSuffixVisible","showClear","showPwdVisible","isWordLimitVisible","handlePasswordVisible","textLength","upperLimit","validateIcon","textareaStyle","migrating_","migrating_default","hiddenTextarea","HIDDEN_STYLE","CONTEXT_STYLE","calculateNodeStyling","targetElement","paddingSize","borderSize","contextStyle","calcTextareaHeight","minRows","maxRows","_calculateNodeStyling","singleRowHeight","minHeight","maxHeight","shared_","inputvue_type_script_lang_js_","textareaCalcStyle","focused","isComposing","autosize","showWordLimit","needStatusIcon","validating","nativeInputValue","maxlength","resizeTextarea","setNativeInputValue","updateIconOffset","getInput","textarea","lastCharacter","calcIconOffset","place","elList","pendantMap","pendant","src_inputvue_type_script_lang_js_","15","23","7","75","handleAfterLeave","iconClass","positionStyle","clearTimer","startTimer","typeClass","dangerouslyUseHTMLString","typeMap","mainvue_type_script_lang_js_","closed","verticalOffset","src_mainvue_type_script_lang_js_","popup_","vdom_","MessageConstructor","main_Message","Message","userOnClose","removedHeight","closeAll","src_main"],"mappings":"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IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAClwCC,EAAW,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GA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A,IACA,MAGJk/I,GAAS,CACTjf,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,GAEJjgI,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,MAGJ++I,GAAW,CACX9e,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,GAEJjgI,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,MAGJ0qJ,GAAwB,SAAU15J,EAAO+F,EAAKC,EAAKqU,EAAS08C,EAAUvsB,GACtE,OAAIxqC,EAAQ+F,GAAO/F,EAAQgG,EAChB2zJ,GAAkB35J,EAAO+2D,EAAUvsB,EAAOpwC,OAAS,GAEtDigB,EAAQ40H,SAAS78H,QAAO,SAAUolB,EAAQkmF,EAAS3jG,GACvD,MAAO/Z,GAAS09G,EACZ19G,GAAS09G,EACTlmF,GAAUnd,EAAQrL,OAAO+K,GAE7B,OAAOyd,IACR,IAAMgT,GAETovH,GAAuC,SAAU55J,EAAO65J,EAAsBl9G,EAAWm9G,GACzF,IAAItiI,EAAS,GACb,GACSmlB,GACD38C,IAEJw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","file":"js/chunk-vendors.4f103645.js","sourcesContent":["!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e(require(\"rgbcolor\"),require(\"stackblur-canvas\")):\"function\"==typeof define&&define.amd?define([\"rgbcolor\",\"stackblur-canvas\"],e):t.canvg=e(t.RGBColor,t.StackBlur)}(this,function(y,v){\"use strict\";var t;return y=y&&y.hasOwnProperty(\"default\")?y.default:y,v=v&&v.hasOwnProperty(\"default\")?v.default:v,function(t){var l;t.exports;(l=window).DOMParser=window.DOMParser;var c=l.document;function d(t,e){var i;return(i=c.createElement(\"canvas\")).width=t,i.height=e,i}var f,p=function(t,e,i){if(null!=t||null!=e||null!=i){var n=m(i||{});\"string\"==typeof t&&(t=c.getElementById(t)),null!=t.svg&&t.svg.stop(),t.childNodes&&1==t.childNodes.length&&\"OBJECT\"==t.childNodes[0].nodeName||(t.svg=n);var s=t.getContext(\"2d\");void 0!==e.documentElement?n.loadXmlDoc(s,e):\"<\"==e.substr(0,1)?n.loadXml(s,e):n.load(s,e)}else for(var a=c.querySelectorAll(\"svg\"),r=0;r<a.length;r++){var o=a[r],h=c.createElement(\"canvas\");if(void 0!==o.clientWidth&&void 0!==o.clientHeight)h.width=o.clientWidth,h.height=o.clientHeight;else{var l=o.getBoundingClientRect();h.width=l.width,h.height=l.height}o.parentNode.insertBefore(h,o),o.parentNode.removeChild(o);var u=c.createElement(\"div\");u.appendChild(o),p(h,u.innerHTML)}};\"undefined\"==typeof Element||(void 0!==Element.prototype.matches?f=function(t,e){return t.matches(e)}:void 0!==Element.prototype.webkitMatchesSelector?f=function(t,e){return t.webkitMatchesSelector(e)}:void 0!==Element.prototype.mozMatchesSelector?f=function(t,e){return t.mozMatchesSelector(e)}:void 0!==Element.prototype.msMatchesSelector?f=function(t,e){return t.msMatchesSelector(e)}:void 0!==Element.prototype.oMatchesSelector?f=function(t,e){return t.oMatchesSelector(e)}:(\"function\"!=typeof jQuery&&\"function\"!=typeof Zepto||(f=function(t,e){return $(t).is(e)}),void 0===f&&\"undefined\"!=typeof Sizzle&&(f=Sizzle.matchesSelector)));var e=/(\\[[^\\]]+\\])/g,i=/(#[^\\s\\+>~\\.\\[:]+)/g,a=/(\\.[^\\s\\+>~\\.\\[:]+)/g,r=/(::[^\\s\\+>~\\.\\[:]+|:first-line|:first-letter|:before|:after)/gi,o=/(:[\\w-]+\\([^\\)]*\\))/gi,h=/(:[^\\s\\+>~\\.\\[:]+)/g,u=/([^\\s\\+>~\\.\\[:]+)/g;function P(n){var s=[0,0,0],t=function(t,e){var i=n.match(t);null!=i&&(s[e]+=i.length,n=n.replace(t,\" \"))};return n=(n=n.replace(/:not\\(([^\\)]*)\\)/g,\" $1 \")).replace(/{[\\s\\S]*/gm,\" \"),t(e,1),t(i,0),t(a,1),t(r,2),t(o,1),t(h,1),n=(n=n.replace(/[\\*\\s\\+>~]/g,\" \")).replace(/[#\\.]/g,\" \"),t(u,2),s.join(\"\")}function m(s){var D={opts:s,FRAMERATE:30,MAX_VIRTUAL_PIXELS:3e4,rootEmSize:12,emSize:12,log:function(){}};1==D.opts.log&&\"undefined\"!=typeof console&&(D.log=function(t){console.log(t)}),D.init=function(t){var e=0;D.UniqueId=function(){return\"canvg\"+ ++e},D.Definitions={},D.Styles={},D.StylesSpecificity={},D.Animations=[],D.Images=[],D.ctx=t,D.ViewPort=new function(){this.viewPorts=[],this.Clear=function(){this.viewPorts=[]},this.SetCurrent=function(t,e){this.viewPorts.push({width:t,height:e})},this.RemoveCurrent=function(){this.viewPorts.pop()},this.Current=function(){return this.viewPorts[this.viewPorts.length-1]},this.width=function(){return this.Current().width},this.height=function(){return this.Current().height},this.ComputeSize=function(t){return null!=t&&\"number\"==typeof t?t:\"x\"==t?this.width():\"y\"==t?this.height():Math.sqrt(Math.pow(this.width(),2)+Math.pow(this.height(),2))/Math.sqrt(2)}}},D.init(),D.ImagesLoaded=function(){for(var t=0;t<D.Images.length;t++)if(!D.Images[t].loaded)return!1;return!0},D.trim=function(t){return t.replace(/^\\s+|\\s+$/g,\"\")},D.compressSpaces=function(t){return t.replace(/(?!\\u3000)\\s+/gm,\" \")},D.ajax=function(t){var e;return(e=l.XMLHttpRequest?new l.XMLHttpRequest:new ActiveXObject(\"Microsoft.XMLHTTP\"))?(e.open(\"GET\",t,!1),e.send(null),e.responseText):null},D.parseXml=function(e){if(\"undefined\"!=typeof Windows&&void 0!==Windows.Data&&void 0!==Windows.Data.Xml){var t=new Windows.Data.Xml.Dom.XmlDocument,i=new Windows.Data.Xml.Dom.XmlLoadSettings;return i.prohibitDtd=!1,t.loadXml(e,i),t}if(!l.DOMParser)return e=e.replace(/<!DOCTYPE svg[^>]*>/,\"\"),(t=new ActiveXObject(\"Microsoft.XMLDOM\")).async=\"false\",t.loadXML(e),t;try{var n=s.xmldom?new l.DOMParser(s.xmldom):new l.DOMParser;return n.parseFromString(e,\"image/svg+xml\")}catch(t){return(n=s.xmldom?new l.DOMParser(s.xmldom):new l.DOMParser).parseFromString(e,\"text/xml\")}},D.Property=function(t,e){this.name=t,this.value=e},D.Property.prototype.getValue=function(){return this.value},D.Property.prototype.hasValue=function(){return null!=this.value&&\"\"!==this.value},D.Property.prototype.numValue=function(){if(!this.hasValue())return 0;var t=parseFloat(this.value);return(this.value+\"\").match(/%$/)&&(t/=100),t},D.Property.prototype.valueOrDefault=function(t){return this.hasValue()?this.value:t},D.Property.prototype.numValueOrDefault=function(t){return this.hasValue()?this.numValue():parseFloat(t)},D.Property.prototype.addOpacity=function(t){var e=this.value;if(null!=t.value&&\"\"!=t.value&&\"string\"==typeof this.value){var i=new y(this.value);i.ok&&(e=\"rgba(\"+i.r+\", \"+i.g+\", \"+i.b+\", \"+t.numValue()+\")\")}return new D.Property(this.name,e)},D.Property.prototype.getDefinition=function(){var t=this.value.match(/#([^\\)'\"]+)/);return t&&(t=t[1]),t||(t=this.value),D.Definitions[t]},D.Property.prototype.isUrlDefinition=function(){return 0==this.value.indexOf(\"url(\")},D.Property.prototype.getFillStyleDefinition=function(t,e){var i=this.getDefinition();if(null!=i&&i.createGradient)return i.createGradient(D.ctx,t,e);if(null!=i&&i.createPattern){if(i.getHrefAttribute().hasValue()){var n=i.attribute(\"patternTransform\");i=i.getHrefAttribute().getDefinition(),n.hasValue()&&(i.attribute(\"patternTransform\",!0).value=n.value)}return i.createPattern(D.ctx,t,e)}return null},D.Property.prototype.getDPI=function(){return 96},D.Property.prototype.getREM=function(){return D.rootEmSize},D.Property.prototype.getEM=function(){return D.emSize},D.Property.prototype.getUnits=function(){return(this.value+\"\").replace(/[0-9\\.\\-]/g,\"\")},D.Property.prototype.isPixels=function(){if(!this.hasValue())return!1;var t=this.value+\"\";return!!t.match(/px$/)||!!t.match(/^[0-9]+$/)},D.Property.prototype.toPixels=function(t,e){if(!this.hasValue())return 0;var i=this.value+\"\";if(i.match(/rem$/))return this.numValue()*this.getREM(t);if(i.match(/em$/))return this.numValue()*this.getEM(t);if(i.match(/ex$/))return this.numValue()*this.getEM(t)/2;if(i.match(/px$/))return this.numValue();if(i.match(/pt$/))return this.numValue()*this.getDPI(t)*(1/72);if(i.match(/pc$/))return 15*this.numValue();if(i.match(/cm$/))return this.numValue()*this.getDPI(t)/2.54;if(i.match(/mm$/))return this.numValue()*this.getDPI(t)/25.4;if(i.match(/in$/))return this.numValue()*this.getDPI(t);if(i.match(/%$/))return this.numValue()*D.ViewPort.ComputeSize(t);var n=this.numValue();return e&&n<1?n*D.ViewPort.ComputeSize(t):n},D.Property.prototype.toMilliseconds=function(){return this.hasValue()?(this.value+\"\").match(/ms$/)?this.numValue():1e3*this.numValue():0},D.Property.prototype.toRadians=function(){if(!this.hasValue())return 0;var t=this.value+\"\";return t.match(/deg$/)?this.numValue()*(Math.PI/180):t.match(/grad$/)?this.numValue()*(Math.PI/200):t.match(/rad$/)?this.numValue():this.numValue()*(Math.PI/180)};var t={baseline:\"alphabetic\",\"before-edge\":\"top\",\"text-before-edge\":\"top\",middle:\"middle\",central:\"middle\",\"after-edge\":\"bottom\",\"text-after-edge\":\"bottom\",ideographic:\"ideographic\",alphabetic:\"alphabetic\",hanging:\"hanging\",mathematical:\"alphabetic\"};return D.Property.prototype.toTextBaseline=function(){return this.hasValue()?t[this.value]:null},D.Font=new function(){this.Styles=\"normal|italic|oblique|inherit\",this.Variants=\"normal|small-caps|inherit\",this.Weights=\"normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900|inherit\",this.CreateFont=function(t,e,i,n,s,a){var r=null!=a?this.Parse(a):this.CreateFont(\"\",\"\",\"\",\"\",\"\",D.ctx.font);return{fontFamily:s=s||r.fontFamily,fontSize:n||r.fontSize,fontStyle:t||r.fontStyle,fontWeight:i||r.fontWeight,fontVariant:e||r.fontVariant,toString:function(){return[this.fontStyle,this.fontVariant,this.fontWeight,this.fontSize,this.fontFamily].join(\" \")}}};var r=this;this.Parse=function(t){for(var e={},i=D.trim(D.compressSpaces(t||\"\")).split(\" \"),n={fontSize:!1,fontStyle:!1,fontWeight:!1,fontVariant:!1},s=\"\",a=0;a<i.length;a++)n.fontStyle||-1==r.Styles.indexOf(i[a])?n.fontVariant||-1==r.Variants.indexOf(i[a])?n.fontWeight||-1==r.Weights.indexOf(i[a])?n.fontSize?\"inherit\"!=i[a]&&(s+=i[a]):(\"inherit\"!=i[a]&&(e.fontSize=i[a].split(\"/\")[0]),n.fontStyle=n.fontVariant=n.fontWeight=n.fontSize=!0):(\"inherit\"!=i[a]&&(e.fontWeight=i[a]),n.fontStyle=n.fontVariant=n.fontWeight=!0):(\"inherit\"!=i[a]&&(e.fontVariant=i[a]),n.fontStyle=n.fontVariant=!0):(\"inherit\"!=i[a]&&(e.fontStyle=i[a]),n.fontStyle=!0);return\"\"!=s&&(e.fontFamily=s),e}},D.ToNumberArray=function(t){for(var e=(t||\"\").match(/-?(\\d+(?:\\.\\d*(?:[eE][+-]?\\d+)?)?|\\.\\d+)(?=\\D|$)/gm)||[],i=0;i<e.length;i++)e[i]=parseFloat(e[i]);return e},D.Point=function(t,e){this.x=t,this.y=e},D.Point.prototype.angleTo=function(t){return Math.atan2(t.y-this.y,t.x-this.x)},D.Point.prototype.applyTransform=function(t){var e=this.x*t[0]+this.y*t[2]+t[4],i=this.x*t[1]+this.y*t[3]+t[5];this.x=e,this.y=i},D.CreatePoint=function(t){var e=D.ToNumberArray(t);return new D.Point(e[0],e[1])},D.CreatePath=function(t){for(var e=D.ToNumberArray(t),i=[],n=0;n<e.length;n+=2)i.push(new D.Point(e[n],e[n+1]));return i},D.BoundingBox=function(t,e,i,n){this.x1=Number.NaN,this.y1=Number.NaN,this.x2=Number.NaN,this.y2=Number.NaN,this.x=function(){return this.x1},this.y=function(){return this.y1},this.width=function(){return this.x2-this.x1},this.height=function(){return this.y2-this.y1},this.addPoint=function(t,e){null!=t&&((isNaN(this.x1)||isNaN(this.x2))&&(this.x1=t,this.x2=t),t<this.x1&&(this.x1=t),t>this.x2&&(this.x2=t)),null!=e&&((isNaN(this.y1)||isNaN(this.y2))&&(this.y1=e,this.y2=e),e<this.y1&&(this.y1=e),e>this.y2&&(this.y2=e))},this.addX=function(t){this.addPoint(t,null)},this.addY=function(t){this.addPoint(null,t)},this.addBoundingBox=function(t){this.addPoint(t.x1,t.y1),this.addPoint(t.x2,t.y2)},this.addQuadraticCurve=function(t,e,i,n,s,a){var r=t+2/3*(i-t),o=e+2/3*(n-e),h=r+1/3*(s-t),l=o+1/3*(a-e);this.addBezierCurve(t,e,r,h,o,l,s,a)},this.addBezierCurve=function(t,e,i,n,s,a,r,o){var h=[t,e],l=[i,n],u=[s,a],c=[r,o];this.addPoint(h[0],h[1]),this.addPoint(c[0],c[1]);for(var f=0;f<=1;f++){var p=function(t){return Math.pow(1-t,3)*h[f]+3*Math.pow(1-t,2)*t*l[f]+3*(1-t)*Math.pow(t,2)*u[f]+Math.pow(t,3)*c[f]},d=6*h[f]-12*l[f]+6*u[f],m=-3*h[f]+9*l[f]-9*u[f]+3*c[f],y=3*l[f]-3*h[f];if(0!=m){var v=Math.pow(d,2)-4*y*m;if(!(v<0)){var g=(-d+Math.sqrt(v))/(2*m);0<g&&g<1&&(0==f&&this.addX(p(g)),1==f&&this.addY(p(g)));var x=(-d-Math.sqrt(v))/(2*m);0<x&&x<1&&(0==f&&this.addX(p(x)),1==f&&this.addY(p(x)))}}else{if(0==d)continue;var b=-y/d;0<b&&b<1&&(0==f&&this.addX(p(b)),1==f&&this.addY(p(b)))}}},this.isPointInBox=function(t,e){return this.x1<=t&&t<=this.x2&&this.y1<=e&&e<=this.y2},this.addPoint(t,e),this.addPoint(i,n)},D.Transform=function(t){var e=this;this.Type={},this.Type.translate=function(t){this.p=D.CreatePoint(t),this.apply=function(t){t.translate(this.p.x||0,this.p.y||0)},this.unapply=function(t){t.translate(-1*this.p.x||0,-1*this.p.y||0)},this.applyToPoint=function(t){t.applyTransform([1,0,0,1,this.p.x||0,this.p.y||0])}},this.Type.rotate=function(t){var e=D.ToNumberArray(t);this.angle=new D.Property(\"angle\",e[0]),this.cx=e[1]||0,this.cy=e[2]||0,this.apply=function(t){t.translate(this.cx,this.cy),t.rotate(this.angle.toRadians()),t.translate(-this.cx,-this.cy)},this.unapply=function(t){t.translate(this.cx,this.cy),t.rotate(-1*this.angle.toRadians()),t.translate(-this.cx,-this.cy)},this.applyToPoint=function(t){var e=this.angle.toRadians();t.applyTransform([1,0,0,1,this.p.x||0,this.p.y||0]),t.applyTransform([Math.cos(e),Math.sin(e),-Math.sin(e),Math.cos(e),0,0]),t.applyTransform([1,0,0,1,-this.p.x||0,-this.p.y||0])}},this.Type.scale=function(t){this.p=D.CreatePoint(t),this.apply=function(t){t.scale(this.p.x||1,this.p.y||this.p.x||1)},this.unapply=function(t){t.scale(1/this.p.x||1,1/this.p.y||this.p.x||1)},this.applyToPoint=function(t){t.applyTransform([this.p.x||0,0,0,this.p.y||0,0,0])}},this.Type.matrix=function(t){this.m=D.ToNumberArray(t),this.apply=function(t){t.transform(this.m[0],this.m[1],this.m[2],this.m[3],this.m[4],this.m[5])},this.unapply=function(t){var e=this.m[0],i=this.m[2],n=this.m[4],s=this.m[1],a=this.m[3],r=this.m[5],o=1/(e*(1*a-0*r)-i*(1*s-0*r)+n*(0*s-0*a));t.transform(o*(1*a-0*r),o*(0*r-1*s),o*(0*n-1*i),o*(1*e-0*n),o*(i*r-n*a),o*(n*s-e*r))},this.applyToPoint=function(t){t.applyTransform(this.m)}},this.Type.SkewBase=function(t){this.base=e.Type.matrix,this.base(t),this.angle=new D.Property(\"angle\",t)},this.Type.SkewBase.prototype=new this.Type.matrix,this.Type.skewX=function(t){this.base=e.Type.SkewBase,this.base(t),this.m=[1,0,Math.tan(this.angle.toRadians()),1,0,0]},this.Type.skewX.prototype=new this.Type.SkewBase,this.Type.skewY=function(t){this.base=e.Type.SkewBase,this.base(t),this.m=[1,Math.tan(this.angle.toRadians()),0,1,0,0]},this.Type.skewY.prototype=new this.Type.SkewBase,this.transforms=[],this.apply=function(t){for(var e=0;e<this.transforms.length;e++)this.transforms[e].apply(t)},this.unapply=function(t){for(var e=this.transforms.length-1;0<=e;e--)this.transforms[e].unapply(t)},this.applyToPoint=function(t){for(var e=0;e<this.transforms.length;e++)this.transforms[e].applyToPoint(t)};for(var i=D.trim(D.compressSpaces(t)).replace(/\\)([a-zA-Z])/g,\") $1\").replace(/\\)(\\s?,\\s?)/g,\") \").split(/\\s(?=[a-z])/),n=0;n<i.length;n++)if(\"none\"!==i[n]){var s=D.trim(i[n].split(\"(\")[0]),a=i[n].split(\"(\")[1].replace(\")\",\"\"),r=this.Type[s];if(void 0!==r){var o=new r(a);o.type=s,this.transforms.push(o)}}},D.AspectRatio=function(t,e,i,n,s,a,r,o,h,l){var u=(e=(e=D.compressSpaces(e)).replace(/^defer\\s/,\"\")).split(\" \")[0]||\"xMidYMid\",c=e.split(\" \")[1]||\"meet\",f=i/n,p=s/a,d=Math.min(f,p),m=Math.max(f,p);\"meet\"==c&&(n*=d,a*=d),\"slice\"==c&&(n*=m,a*=m),h=new D.Property(\"refX\",h),l=new D.Property(\"refY\",l),h.hasValue()&&l.hasValue()?t.translate(-d*h.toPixels(\"x\"),-d*l.toPixels(\"y\")):(u.match(/^xMid/)&&(\"meet\"==c&&d==p||\"slice\"==c&&m==p)&&t.translate(i/2-n/2,0),u.match(/YMid$/)&&(\"meet\"==c&&d==f||\"slice\"==c&&m==f)&&t.translate(0,s/2-a/2),u.match(/^xMax/)&&(\"meet\"==c&&d==p||\"slice\"==c&&m==p)&&t.translate(i-n,0),u.match(/YMax$/)&&(\"meet\"==c&&d==f||\"slice\"==c&&m==f)&&t.translate(0,s-a)),\"none\"==u?t.scale(f,p):\"meet\"==c?t.scale(d,d):\"slice\"==c&&t.scale(m,m),t.translate(null==r?0:-r,null==o?0:-o)},D.Element={},D.EmptyProperty=new D.Property(\"EMPTY\",\"\"),D.Element.ElementBase=function(a){this.attributes={},this.styles={},this.stylesSpecificity={},this.children=[],this.attribute=function(t,e){var i=this.attributes[t];return null!=i?i:(1==e&&(i=new D.Property(t,\"\"),this.attributes[t]=i),i||D.EmptyProperty)},this.getHrefAttribute=function(){for(var t in this.attributes)if(\"href\"==t||t.match(/:href$/))return this.attributes[t];return D.EmptyProperty},this.style=function(t,e,i){var n=this.styles[t];if(null!=n)return n;var s=this.attribute(t);if(null!=s&&s.hasValue())return this.styles[t]=s;if(1!=i){var a=this.parent;if(null!=a){var r=a.style(t);if(null!=r&&r.hasValue())return r}}return 1==e&&(n=new D.Property(t,\"\"),this.styles[t]=n),n||D.EmptyProperty},this.render=function(t){if(\"none\"!=this.style(\"display\").value&&\"hidden\"!=this.style(\"visibility\").value){if(t.save(),this.style(\"mask\").hasValue()){var e=this.style(\"mask\").getDefinition();null!=e&&e.apply(t,this)}else if(this.style(\"filter\").hasValue()){var i=this.style(\"filter\").getDefinition();null!=i&&i.apply(t,this)}else this.setContext(t),this.renderChildren(t),this.clearContext(t);t.restore()}},this.setContext=function(){},this.clearContext=function(){},this.renderChildren=function(t){for(var e=0;e<this.children.length;e++)this.children[e].render(t)},this.addChild=function(t,e){var i=t;e&&(i=D.CreateElement(t)),i.parent=this,\"title\"!=i.type&&this.children.push(i)},this.addStylesFromStyleDefinition=function(){for(var t in D.Styles)if(\"@\"!=t[0]&&f(a,t)){var e=D.Styles[t],i=D.StylesSpecificity[t];if(null!=e)for(var n in e){var s=this.stylesSpecificity[n];void 0===s&&(s=\"000\"),s<=i&&(this.styles[n]=e[n],this.stylesSpecificity[n]=i)}}};var t,e=new RegExp(\"^[A-Z-]+$\");if(null!=a&&1==a.nodeType){for(var i=0;i<a.attributes.length;i++){var n=a.attributes[i],s=(t=n.nodeName,e.test(t)?t.toLowerCase():t);this.attributes[s]=new D.Property(s,n.value)}if(this.addStylesFromStyleDefinition(),this.attribute(\"style\").hasValue()){var r=this.attribute(\"style\").value.split(\";\");for(i=0;i<r.length;i++)if(\"\"!=D.trim(r[i])){var o=r[i].split(\":\"),h=D.trim(o[0]),l=D.trim(o[1]);this.styles[h]=new D.Property(h,l)}}this.attribute(\"id\").hasValue()&&null==D.Definitions[this.attribute(\"id\").value]&&(D.Definitions[this.attribute(\"id\").value]=this);for(i=0;i<a.childNodes.length;i++){var u=a.childNodes[i];if(1==u.nodeType&&this.addChild(u,!0),this.captureTextNodes&&(3==u.nodeType||4==u.nodeType)){var c=u.value||u.text||u.textContent||\"\";\"\"!=D.compressSpaces(c)&&this.addChild(new D.Element.tspan(u),!1)}}}},D.Element.RenderedElementBase=function(t){this.base=D.Element.ElementBase,this.base(t),this.calculateOpacity=function(){for(var t=1,e=this;null!=e;){var i=e.style(\"opacity\",!1,!0);i.hasValue()&&(t*=i.numValue()),e=e.parent}return t},this.setContext=function(t,e){if(!e){var i;if(this.style(\"fill\").isUrlDefinition())null!=(i=this.style(\"fill\").getFillStyleDefinition(this,this.style(\"fill-opacity\")))&&(t.fillStyle=i);else if(this.style(\"fill\").hasValue()){var n;\"currentColor\"==(n=this.style(\"fill\")).value&&(n.value=this.style(\"color\").value),\"inherit\"!=n.value&&(t.fillStyle=\"none\"==n.value?\"rgba(0,0,0,0)\":n.value)}if(this.style(\"fill-opacity\").hasValue())n=(n=new D.Property(\"fill\",t.fillStyle)).addOpacity(this.style(\"fill-opacity\")),t.fillStyle=n.value;if(this.style(\"stroke\").isUrlDefinition())null!=(i=this.style(\"stroke\").getFillStyleDefinition(this,this.style(\"stroke-opacity\")))&&(t.strokeStyle=i);else if(this.style(\"stroke\").hasValue()){var s;\"currentColor\"==(s=this.style(\"stroke\")).value&&(s.value=this.style(\"color\").value),\"inherit\"!=s.value&&(t.strokeStyle=\"none\"==s.value?\"rgba(0,0,0,0)\":s.value)}if(this.style(\"stroke-opacity\").hasValue())s=(s=new D.Property(\"stroke\",t.strokeStyle)).addOpacity(this.style(\"stroke-opacity\")),t.strokeStyle=s.value;if(this.style(\"stroke-width\").hasValue()){var a=this.style(\"stroke-width\").toPixels();t.lineWidth=0==a?.001:a}if(this.style(\"stroke-linecap\").hasValue()&&(t.lineCap=this.style(\"stroke-linecap\").value),this.style(\"stroke-linejoin\").hasValue()&&(t.lineJoin=this.style(\"stroke-linejoin\").value),this.style(\"stroke-miterlimit\").hasValue()&&(t.miterLimit=this.style(\"stroke-miterlimit\").value),this.style(\"paint-order\").hasValue()&&(t.paintOrder=this.style(\"paint-order\").value),this.style(\"stroke-dasharray\").hasValue()&&\"none\"!=this.style(\"stroke-dasharray\").value){var r=D.ToNumberArray(this.style(\"stroke-dasharray\").value);void 0!==t.setLineDash?t.setLineDash(r):void 0!==t.webkitLineDash?t.webkitLineDash=r:void 0===t.mozDash||1==r.length&&0==r[0]||(t.mozDash=r);var o=this.style(\"stroke-dashoffset\").toPixels();void 0!==t.lineDashOffset?t.lineDashOffset=o:void 0!==t.webkitLineDashOffset?t.webkitLineDashOffset=o:void 0!==t.mozDashOffset&&(t.mozDashOffset=o)}}if(void 0!==t.font)if(this.style(\"font\").hasValue())t.font=this.style(\"font\").value;else{t.font=D.Font.CreateFont(this.style(\"font-style\").value,this.style(\"font-variant\").value,this.style(\"font-weight\").value,this.style(\"font-size\").hasValue()?this.style(\"font-size\").toPixels()+\"px\":\"\",this.style(\"font-family\").value).toString();var h=this.style(\"font-size\",!1,!1);h.isPixels()&&(D.emSize=h.toPixels())}this.style(\"transform\",!1,!0).hasValue()&&new D.Transform(this.style(\"transform\",!1,!0).value).apply(t);if(this.style(\"clip-path\",!1,!0).hasValue()){var l=this.style(\"clip-path\",!1,!0).getDefinition();null!=l&&l.apply(t)}t.globalAlpha=this.calculateOpacity()}},D.Element.RenderedElementBase.prototype=new D.Element.ElementBase,D.Element.PathElementBase=function(t){this.base=D.Element.RenderedElementBase,this.base(t),this.path=function(t){return null!=t&&t.beginPath(),new D.BoundingBox},this.renderChildren=function(t){this.path(t),D.Mouse.checkPath(this,t),\"\"!=t.fillStyle&&(\"inherit\"!=this.style(\"fill-rule\").valueOrDefault(\"inherit\")?t.fill(this.style(\"fill-rule\").value):t.fill()),\"\"!=t.strokeStyle&&t.stroke();var e=this.getMarkers();if(null!=e){if(this.style(\"marker-start\").isUrlDefinition())(i=this.style(\"marker-start\").getDefinition()).render(t,e[0][0],e[0][1]);if(this.style(\"marker-mid\").isUrlDefinition())for(var i=this.style(\"marker-mid\").getDefinition(),n=1;n<e.length-1;n++)i.render(t,e[n][0],e[n][1]);if(this.style(\"marker-end\").isUrlDefinition())(i=this.style(\"marker-end\").getDefinition()).render(t,e[e.length-1][0],e[e.length-1][1])}},this.getBoundingBox=function(){return this.path()},this.getMarkers=function(){return null}},D.Element.PathElementBase.prototype=new D.Element.RenderedElementBase,D.SetDefaults=function(t){t.strokeStyle=\"rgba(0,0,0,0)\",t.lineCap=\"butt\",t.lineJoin=\"miter\",t.miterLimit=4},D.Element.svg=function(t){this.base=D.Element.RenderedElementBase,this.base(t),this.baseClearContext=this.clearContext,this.clearContext=function(t){this.baseClearContext(t),D.ViewPort.RemoveCurrent()},this.baseSetContext=this.setContext,this.setContext=function(t){if(D.SetDefaults(t),t.canvas.style&&void 0!==t.font&&void 0!==l.getComputedStyle){t.font=l.getComputedStyle(t.canvas).getPropertyValue(\"font\");var e=new D.Property(\"fontSize\",D.Font.Parse(t.font).fontSize);e.hasValue()&&(D.rootEmSize=D.emSize=e.toPixels(\"y\"))}this.baseSetContext(t),this.attribute(\"x\").hasValue()||(this.attribute(\"x\",!0).value=0),this.attribute(\"y\").hasValue()||(this.attribute(\"y\",!0).value=0),t.translate(this.attribute(\"x\").toPixels(\"x\"),this.attribute(\"y\").toPixels(\"y\"));var i=D.ViewPort.width(),n=D.ViewPort.height();if(this.attribute(\"width\").hasValue()||(this.attribute(\"width\",!0).value=\"100%\"),this.attribute(\"height\").hasValue()||(this.attribute(\"height\",!0).value=\"100%\"),void 0===this.root){i=this.attribute(\"width\").toPixels(\"x\"),n=this.attribute(\"height\").toPixels(\"y\");var s=0,a=0;this.attribute(\"refX\").hasValue()&&this.attribute(\"refY\").hasValue()&&(s=-this.attribute(\"refX\").toPixels(\"x\"),a=-this.attribute(\"refY\").toPixels(\"y\")),\"visible\"!=this.attribute(\"overflow\").valueOrDefault(\"hidden\")&&(t.beginPath(),t.moveTo(s,a),t.lineTo(i,a),t.lineTo(i,n),t.lineTo(s,n),t.closePath(),t.clip())}if(D.ViewPort.SetCurrent(i,n),this.attribute(\"viewBox\").hasValue()){var r=D.ToNumberArray(this.attribute(\"viewBox\").value),o=r[0],h=r[1];i=r[2],n=r[3],D.AspectRatio(t,this.attribute(\"preserveAspectRatio\").value,D.ViewPort.width(),i,D.ViewPort.height(),n,o,h,this.attribute(\"refX\").value,this.attribute(\"refY\").value),D.ViewPort.RemoveCurrent(),D.ViewPort.SetCurrent(r[2],r[3])}}},D.Element.svg.prototype=new D.Element.RenderedElementBase,D.Element.rect=function(t){this.base=D.Element.PathElementBase,this.base(t),this.path=function(t){var e=this.attribute(\"x\").toPixels(\"x\"),i=this.attribute(\"y\").toPixels(\"y\"),n=this.attribute(\"width\").toPixels(\"x\"),s=this.attribute(\"height\").toPixels(\"y\"),a=this.attribute(\"rx\").toPixels(\"x\"),r=this.attribute(\"ry\").toPixels(\"y\");if(this.attribute(\"rx\").hasValue()&&!this.attribute(\"ry\").hasValue()&&(r=a),this.attribute(\"ry\").hasValue()&&!this.attribute(\"rx\").hasValue()&&(a=r),a=Math.min(a,n/2),r=Math.min(r,s/2),null!=t){var o=(Math.sqrt(2)-1)/3*4;t.beginPath(),0<s&&0<n&&(t.moveTo(e+a,i),t.lineTo(e+n-a,i),t.bezierCurveTo(e+n-a+o*a,i,e+n,i+r-o*r,e+n,i+r),t.lineTo(e+n,i+s-r),t.bezierCurveTo(e+n,i+s-r+o*r,e+n-a+o*a,i+s,e+n-a,i+s),t.lineTo(e+a,i+s),t.bezierCurveTo(e+a-o*a,i+s,e,i+s-r+o*r,e,i+s-r),t.lineTo(e,i+r),t.bezierCurveTo(e,i+r-o*r,e+a-o*a,i,e+a,i),t.closePath())}return new D.BoundingBox(e,i,e+n,i+s)}},D.Element.rect.prototype=new D.Element.PathElementBase,D.Element.circle=function(t){this.base=D.Element.PathElementBase,this.base(t),this.path=function(t){var e=this.attribute(\"cx\").toPixels(\"x\"),i=this.attribute(\"cy\").toPixels(\"y\"),n=this.attribute(\"r\").toPixels();return null!=t&&0<n&&(t.beginPath(),t.arc(e,i,n,0,2*Math.PI,!1),t.closePath()),new D.BoundingBox(e-n,i-n,e+n,i+n)}},D.Element.circle.prototype=new D.Element.PathElementBase,D.Element.ellipse=function(t){this.base=D.Element.PathElementBase,this.base(t),this.path=function(t){var e=(Math.sqrt(2)-1)/3*4,i=this.attribute(\"rx\").toPixels(\"x\"),n=this.attribute(\"ry\").toPixels(\"y\"),s=this.attribute(\"cx\").toPixels(\"x\"),a=this.attribute(\"cy\").toPixels(\"y\");return null!=t&&(t.beginPath(),t.moveTo(s+i,a),t.bezierCurveTo(s+i,a+e*n,s+e*i,a+n,s,a+n),t.bezierCurveTo(s-e*i,a+n,s-i,a+e*n,s-i,a),t.bezierCurveTo(s-i,a-e*n,s-e*i,a-n,s,a-n),t.bezierCurveTo(s+e*i,a-n,s+i,a-e*n,s+i,a),t.closePath()),new D.BoundingBox(s-i,a-n,s+i,a+n)}},D.Element.ellipse.prototype=new D.Element.PathElementBase,D.Element.line=function(t){this.base=D.Element.PathElementBase,this.base(t),this.getPoints=function(){return[new D.Point(this.attribute(\"x1\").toPixels(\"x\"),this.attribute(\"y1\").toPixels(\"y\")),new D.Point(this.attribute(\"x2\").toPixels(\"x\"),this.attribute(\"y2\").toPixels(\"y\"))]},this.path=function(t){var e=this.getPoints();return null!=t&&(t.beginPath(),t.moveTo(e[0].x,e[0].y),t.lineTo(e[1].x,e[1].y)),new D.BoundingBox(e[0].x,e[0].y,e[1].x,e[1].y)},this.getMarkers=function(){var t=this.getPoints(),e=t[0].angleTo(t[1]);return[[t[0],e],[t[1],e]]}},D.Element.line.prototype=new D.Element.PathElementBase,D.Element.polyline=function(t){this.base=D.Element.PathElementBase,this.base(t),this.points=D.CreatePath(this.attribute(\"points\").value),this.path=function(t){var e=new D.BoundingBox(this.points[0].x,this.points[0].y);null!=t&&(t.beginPath(),t.moveTo(this.points[0].x,this.points[0].y));for(var i=1;i<this.points.length;i++)e.addPoint(this.points[i].x,this.points[i].y),null!=t&&t.lineTo(this.points[i].x,this.points[i].y);return e},this.getMarkers=function(){for(var t=[],e=0;e<this.points.length-1;e++)t.push([this.points[e],this.points[e].angleTo(this.points[e+1])]);return 0<t.length&&t.push([this.points[this.points.length-1],t[t.length-1][1]]),t}},D.Element.polyline.prototype=new D.Element.PathElementBase,D.Element.polygon=function(t){this.base=D.Element.polyline,this.base(t),this.basePath=this.path,this.path=function(t){var e=this.basePath(t);return null!=t&&(t.lineTo(this.points[0].x,this.points[0].y),t.closePath()),e}},D.Element.polygon.prototype=new D.Element.polyline,D.Element.path=function(t){this.base=D.Element.PathElementBase,this.base(t);var e=this.attribute(\"d\").value;e=e.replace(/,/gm,\" \");for(var i=0;i<2;i++)e=e.replace(/([MmZzLlHhVvCcSsQqTtAa])([^\\s])/gm,\"$1 $2\");e=(e=e.replace(/([^\\s])([MmZzLlHhVvCcSsQqTtAa])/gm,\"$1 $2\")).replace(/([0-9])([+\\-])/gm,\"$1 $2\");for(i=0;i<2;i++)e=e.replace(/(\\.[0-9]*)(\\.)/gm,\"$1 $2\");e=e.replace(/([Aa](\\s+[0-9]+){3})\\s+([01])\\s*([01])/gm,\"$1 $3 $4 \"),e=D.compressSpaces(e),e=D.trim(e),this.PathParser=new function(t){this.tokens=t.split(\" \"),this.reset=function(){this.i=-1,this.command=\"\",this.previousCommand=\"\",this.start=new D.Point(0,0),this.control=new D.Point(0,0),this.current=new D.Point(0,0),this.points=[],this.angles=[]},this.isEnd=function(){return this.i>=this.tokens.length-1},this.isCommandOrEnd=function(){return!!this.isEnd()||null!=this.tokens[this.i+1].match(/^[A-Za-z]$/)},this.isRelativeCommand=function(){switch(this.command){case\"m\":case\"l\":case\"h\":case\"v\":case\"c\":case\"s\":case\"q\":case\"t\":case\"a\":case\"z\":return!0}return!1},this.getToken=function(){return this.i++,this.tokens[this.i]},this.getScalar=function(){return parseFloat(this.getToken())},this.nextCommand=function(){this.previousCommand=this.command,this.command=this.getToken()},this.getPoint=function(){var t=new D.Point(this.getScalar(),this.getScalar());return this.makeAbsolute(t)},this.getAsControlPoint=function(){var t=this.getPoint();return this.control=t},this.getAsCurrentPoint=function(){var t=this.getPoint();return this.current=t},this.getReflectedControlPoint=function(){return\"c\"!=this.previousCommand.toLowerCase()&&\"s\"!=this.previousCommand.toLowerCase()&&\"q\"!=this.previousCommand.toLowerCase()&&\"t\"!=this.previousCommand.toLowerCase()?this.current:new D.Point(2*this.current.x-this.control.x,2*this.current.y-this.control.y)},this.makeAbsolute=function(t){return this.isRelativeCommand()&&(t.x+=this.current.x,t.y+=this.current.y),t},this.addMarker=function(t,e,i){null!=i&&0<this.angles.length&&null==this.angles[this.angles.length-1]&&(this.angles[this.angles.length-1]=this.points[this.points.length-1].angleTo(i)),this.addMarkerAngle(t,null==e?null:e.angleTo(t))},this.addMarkerAngle=function(t,e){this.points.push(t),this.angles.push(e)},this.getMarkerPoints=function(){return this.points},this.getMarkerAngles=function(){for(var t=0;t<this.angles.length;t++)if(null==this.angles[t])for(var e=t+1;e<this.angles.length;e++)if(null!=this.angles[e]){this.angles[t]=this.angles[e];break}return this.angles}}(e),this.path=function(t){var e=this.PathParser;e.reset();var i=new D.BoundingBox;for(null!=t&&t.beginPath();!e.isEnd();)switch(e.nextCommand(),e.command){case\"M\":case\"m\":var n=e.getAsCurrentPoint();for(e.addMarker(n),i.addPoint(n.x,n.y),null!=t&&t.moveTo(n.x,n.y),e.start=e.current;!e.isCommandOrEnd();){n=e.getAsCurrentPoint();e.addMarker(n,e.start),i.addPoint(n.x,n.y),null!=t&&t.lineTo(n.x,n.y)}break;case\"L\":case\"l\":for(;!e.isCommandOrEnd();){var s=e.current;n=e.getAsCurrentPoint();e.addMarker(n,s),i.addPoint(n.x,n.y),null!=t&&t.lineTo(n.x,n.y)}break;case\"H\":case\"h\":for(;!e.isCommandOrEnd();){var a=new D.Point((e.isRelativeCommand()?e.current.x:0)+e.getScalar(),e.current.y);e.addMarker(a,e.current),e.current=a,i.addPoint(e.current.x,e.current.y),null!=t&&t.lineTo(e.current.x,e.current.y)}break;case\"V\":case\"v\":for(;!e.isCommandOrEnd();){a=new D.Point(e.current.x,(e.isRelativeCommand()?e.current.y:0)+e.getScalar());e.addMarker(a,e.current),e.current=a,i.addPoint(e.current.x,e.current.y),null!=t&&t.lineTo(e.current.x,e.current.y)}break;case\"C\":case\"c\":for(;!e.isCommandOrEnd();){var r=e.current,o=e.getPoint(),h=e.getAsControlPoint(),l=e.getAsCurrentPoint();e.addMarker(l,h,o),i.addBezierCurve(r.x,r.y,o.x,o.y,h.x,h.y,l.x,l.y),null!=t&&t.bezierCurveTo(o.x,o.y,h.x,h.y,l.x,l.y)}break;case\"S\":case\"s\":for(;!e.isCommandOrEnd();){r=e.current,o=e.getReflectedControlPoint(),h=e.getAsControlPoint(),l=e.getAsCurrentPoint();e.addMarker(l,h,o),i.addBezierCurve(r.x,r.y,o.x,o.y,h.x,h.y,l.x,l.y),null!=t&&t.bezierCurveTo(o.x,o.y,h.x,h.y,l.x,l.y)}break;case\"Q\":case\"q\":for(;!e.isCommandOrEnd();){r=e.current,h=e.getAsControlPoint(),l=e.getAsCurrentPoint();e.addMarker(l,h,h),i.addQuadraticCurve(r.x,r.y,h.x,h.y,l.x,l.y),null!=t&&t.quadraticCurveTo(h.x,h.y,l.x,l.y)}break;case\"T\":case\"t\":for(;!e.isCommandOrEnd();){r=e.current,h=e.getReflectedControlPoint();e.control=h;l=e.getAsCurrentPoint();e.addMarker(l,h,h),i.addQuadraticCurve(r.x,r.y,h.x,h.y,l.x,l.y),null!=t&&t.quadraticCurveTo(h.x,h.y,l.x,l.y)}break;case\"A\":case\"a\":for(;!e.isCommandOrEnd();){r=e.current;var u=e.getScalar(),c=e.getScalar(),f=e.getScalar()*(Math.PI/180),p=e.getScalar(),d=e.getScalar(),m=(l=e.getAsCurrentPoint(),new D.Point(Math.cos(f)*(r.x-l.x)/2+Math.sin(f)*(r.y-l.y)/2,-Math.sin(f)*(r.x-l.x)/2+Math.cos(f)*(r.y-l.y)/2)),y=Math.pow(m.x,2)/Math.pow(u,2)+Math.pow(m.y,2)/Math.pow(c,2);1<y&&(u*=Math.sqrt(y),c*=Math.sqrt(y));var v=(p==d?-1:1)*Math.sqrt((Math.pow(u,2)*Math.pow(c,2)-Math.pow(u,2)*Math.pow(m.y,2)-Math.pow(c,2)*Math.pow(m.x,2))/(Math.pow(u,2)*Math.pow(m.y,2)+Math.pow(c,2)*Math.pow(m.x,2)));isNaN(v)&&(v=0);var g=new D.Point(v*u*m.y/c,v*-c*m.x/u),x=new D.Point((r.x+l.x)/2+Math.cos(f)*g.x-Math.sin(f)*g.y,(r.y+l.y)/2+Math.sin(f)*g.x+Math.cos(f)*g.y),b=function(t){return Math.sqrt(Math.pow(t[0],2)+Math.pow(t[1],2))},P=function(t,e){return(t[0]*e[0]+t[1]*e[1])/(b(t)*b(e))},E=function(t,e){return(t[0]*e[1]<t[1]*e[0]?-1:1)*Math.acos(P(t,e))},w=E([1,0],[(m.x-g.x)/u,(m.y-g.y)/c]),C=[(m.x-g.x)/u,(m.y-g.y)/c],B=[(-m.x-g.x)/u,(-m.y-g.y)/c],M=E(C,B);P(C,B)<=-1&&(M=Math.PI),1<=P(C,B)&&(M=0);var T=1-d?1:-1,S=w+T*(M/2),V=new D.Point(x.x+u*Math.cos(S),x.y+c*Math.sin(S));if(e.addMarkerAngle(V,S-T*Math.PI/2),e.addMarkerAngle(l,S-T*Math.PI),i.addPoint(l.x,l.y),null!=t&&!isNaN(w)&&!isNaN(M)){P=c<u?u:c;var k=c<u?1:u/c,A=c<u?c/u:1;t.translate(x.x,x.y),t.rotate(f),t.scale(k,A),t.arc(0,0,P,w,w+M,1-d),t.scale(1/k,1/A),t.rotate(-f),t.translate(-x.x,-x.y)}}break;case\"Z\":case\"z\":null!=t&&i.x1!==i.x2&&i.y1!==i.y2&&t.closePath(),e.current=e.start}return i},this.getMarkers=function(){for(var t=this.PathParser.getMarkerPoints(),e=this.PathParser.getMarkerAngles(),i=[],n=0;n<t.length;n++)i.push([t[n],e[n]]);return i}},D.Element.path.prototype=new D.Element.PathElementBase,D.Element.pattern=function(t){this.base=D.Element.ElementBase,this.base(t),this.createPattern=function(t,e,i){var n=this.attribute(\"width\").toPixels(\"x\",!0),s=this.attribute(\"height\").toPixels(\"y\",!0),a=new D.Element.svg;a.attributes.viewBox=new D.Property(\"viewBox\",this.attribute(\"viewBox\").value),a.attributes.width=new D.Property(\"width\",n+\"px\"),a.attributes.height=new D.Property(\"height\",s+\"px\"),a.attributes.transform=new D.Property(\"transform\",this.attribute(\"patternTransform\").value),a.children=this.children;var r=d(n,s),o=r.getContext(\"2d\");this.attribute(\"x\").hasValue()&&this.attribute(\"y\").hasValue()&&o.translate(this.attribute(\"x\").toPixels(\"x\",!0),this.attribute(\"y\").toPixels(\"y\",!0)),i.hasValue()?this.styles[\"fill-opacity\"]=i:delete this.styles[\"fill-opacity\"];for(var h=-1;h<=1;h++)for(var l=-1;l<=1;l++)o.save(),a.attributes.x=new D.Property(\"x\",h*r.width),a.attributes.y=new D.Property(\"y\",l*r.height),a.render(o),o.restore();return t.createPattern(r,\"repeat\")}},D.Element.pattern.prototype=new D.Element.ElementBase,D.Element.marker=function(t){this.base=D.Element.ElementBase,this.base(t),this.baseRender=this.render,this.render=function(t,e,i){if(e){t.translate(e.x,e.y),\"auto\"==this.attribute(\"orient\").valueOrDefault(\"auto\")&&t.rotate(i),\"strokeWidth\"==this.attribute(\"markerUnits\").valueOrDefault(\"strokeWidth\")&&t.scale(t.lineWidth,t.lineWidth),t.save();var n=new D.Element.svg;n.attributes.viewBox=new D.Property(\"viewBox\",this.attribute(\"viewBox\").value),n.attributes.refX=new D.Property(\"refX\",this.attribute(\"refX\").value),n.attributes.refY=new D.Property(\"refY\",this.attribute(\"refY\").value),n.attributes.width=new D.Property(\"width\",this.attribute(\"markerWidth\").value),n.attributes.height=new D.Property(\"height\",this.attribute(\"markerHeight\").value),n.attributes.fill=new D.Property(\"fill\",this.attribute(\"fill\").valueOrDefault(\"black\")),n.attributes.stroke=new D.Property(\"stroke\",this.attribute(\"stroke\").valueOrDefault(\"none\")),n.children=this.children,n.render(t),t.restore(),\"strokeWidth\"==this.attribute(\"markerUnits\").valueOrDefault(\"strokeWidth\")&&t.scale(1/t.lineWidth,1/t.lineWidth),\"auto\"==this.attribute(\"orient\").valueOrDefault(\"auto\")&&t.rotate(-i),t.translate(-e.x,-e.y)}}},D.Element.marker.prototype=new D.Element.ElementBase,D.Element.defs=function(t){this.base=D.Element.ElementBase,this.base(t),this.render=function(){}},D.Element.defs.prototype=new D.Element.ElementBase,D.Element.GradientBase=function(t){this.base=D.Element.ElementBase,this.base(t),this.stops=[];for(var e=0;e<this.children.length;e++){var i=this.children[e];\"stop\"==i.type&&this.stops.push(i)}this.getGradient=function(){},this.gradientUnits=function(){return this.attribute(\"gradientUnits\").valueOrDefault(\"objectBoundingBox\")},this.attributesToInherit=[\"gradientUnits\"],this.inheritStopContainer=function(t){for(var e=0;e<this.attributesToInherit.length;e++){var i=this.attributesToInherit[e];!this.attribute(i).hasValue()&&t.attribute(i).hasValue()&&(this.attribute(i,!0).value=t.attribute(i).value)}},this.createGradient=function(t,e,i){var n=this;this.getHrefAttribute().hasValue()&&(n=this.getHrefAttribute().getDefinition(),this.inheritStopContainer(n));var s=function(t){return i.hasValue()?new D.Property(\"color\",t).addOpacity(i).value:t},a=this.getGradient(t,e);if(null==a)return s(n.stops[n.stops.length-1].color);for(var r=0;r<n.stops.length;r++)a.addColorStop(n.stops[r].offset,s(n.stops[r].color));if(this.attribute(\"gradientTransform\").hasValue()){var o=D.ViewPort.viewPorts[0],h=new D.Element.rect;h.attributes.x=new D.Property(\"x\",-D.MAX_VIRTUAL_PIXELS/3),h.attributes.y=new D.Property(\"y\",-D.MAX_VIRTUAL_PIXELS/3),h.attributes.width=new D.Property(\"width\",D.MAX_VIRTUAL_PIXELS),h.attributes.height=new D.Property(\"height\",D.MAX_VIRTUAL_PIXELS);var l=new D.Element.g;l.attributes.transform=new D.Property(\"transform\",this.attribute(\"gradientTransform\").value),l.children=[h];var u=new D.Element.svg;u.attributes.x=new D.Property(\"x\",0),u.attributes.y=new D.Property(\"y\",0),u.attributes.width=new D.Property(\"width\",o.width),u.attributes.height=new D.Property(\"height\",o.height),u.children=[l];var c=d(o.width,o.height),f=c.getContext(\"2d\");return f.fillStyle=a,u.render(f),f.createPattern(c,\"no-repeat\")}return a}},D.Element.GradientBase.prototype=new D.Element.ElementBase,D.Element.linearGradient=function(t){this.base=D.Element.GradientBase,this.base(t),this.attributesToInherit.push(\"x1\"),this.attributesToInherit.push(\"y1\"),this.attributesToInherit.push(\"x2\"),this.attributesToInherit.push(\"y2\"),this.getGradient=function(t,e){var i=\"objectBoundingBox\"==this.gradientUnits()?e.getBoundingBox(t):null;this.attribute(\"x1\").hasValue()||this.attribute(\"y1\").hasValue()||this.attribute(\"x2\").hasValue()||this.attribute(\"y2\").hasValue()||(this.attribute(\"x1\",!0).value=0,this.attribute(\"y1\",!0).value=0,this.attribute(\"x2\",!0).value=1,this.attribute(\"y2\",!0).value=0);var n=\"objectBoundingBox\"==this.gradientUnits()?i.x()+i.width()*this.attribute(\"x1\").numValue():this.attribute(\"x1\").toPixels(\"x\"),s=\"objectBoundingBox\"==this.gradientUnits()?i.y()+i.height()*this.attribute(\"y1\").numValue():this.attribute(\"y1\").toPixels(\"y\"),a=\"objectBoundingBox\"==this.gradientUnits()?i.x()+i.width()*this.attribute(\"x2\").numValue():this.attribute(\"x2\").toPixels(\"x\"),r=\"objectBoundingBox\"==this.gradientUnits()?i.y()+i.height()*this.attribute(\"y2\").numValue():this.attribute(\"y2\").toPixels(\"y\");return n==a&&s==r?null:t.createLinearGradient(n,s,a,r)}},D.Element.linearGradient.prototype=new D.Element.GradientBase,D.Element.radialGradient=function(t){this.base=D.Element.GradientBase,this.base(t),this.attributesToInherit.push(\"cx\"),this.attributesToInherit.push(\"cy\"),this.attributesToInherit.push(\"r\"),this.attributesToInherit.push(\"fx\"),this.attributesToInherit.push(\"fy\"),this.attributesToInherit.push(\"fr\"),this.getGradient=function(t,e){var i=e.getBoundingBox(t);this.attribute(\"cx\").hasValue()||(this.attribute(\"cx\",!0).value=\"50%\"),this.attribute(\"cy\").hasValue()||(this.attribute(\"cy\",!0).value=\"50%\"),this.attribute(\"r\").hasValue()||(this.attribute(\"r\",!0).value=\"50%\");var n=\"objectBoundingBox\"==this.gradientUnits()?i.x()+i.width()*this.attribute(\"cx\").numValue():this.attribute(\"cx\").toPixels(\"x\"),s=\"objectBoundingBox\"==this.gradientUnits()?i.y()+i.height()*this.attribute(\"cy\").numValue():this.attribute(\"cy\").toPixels(\"y\"),a=n,r=s;this.attribute(\"fx\").hasValue()&&(a=\"objectBoundingBox\"==this.gradientUnits()?i.x()+i.width()*this.attribute(\"fx\").numValue():this.attribute(\"fx\").toPixels(\"x\")),this.attribute(\"fy\").hasValue()&&(r=\"objectBoundingBox\"==this.gradientUnits()?i.y()+i.height()*this.attribute(\"fy\").numValue():this.attribute(\"fy\").toPixels(\"y\"));var o=\"objectBoundingBox\"==this.gradientUnits()?(i.width()+i.height())/2*this.attribute(\"r\").numValue():this.attribute(\"r\").toPixels(),h=this.attribute(\"fr\").toPixels();return t.createRadialGradient(a,r,h,n,s,o)}},D.Element.radialGradient.prototype=new D.Element.GradientBase,D.Element.stop=function(t){this.base=D.Element.ElementBase,this.base(t),this.offset=this.attribute(\"offset\").numValue(),this.offset<0&&(this.offset=0),1<this.offset&&(this.offset=1);var e=this.style(\"stop-color\",!0);\"\"===e.value&&(e.value=\"#000\"),this.style(\"stop-opacity\").hasValue()&&(e=e.addOpacity(this.style(\"stop-opacity\"))),this.color=e.value},D.Element.stop.prototype=new D.Element.ElementBase,D.Element.AnimateBase=function(t){this.base=D.Element.ElementBase,this.base(t),D.Animations.push(this),this.duration=0,this.begin=this.attribute(\"begin\").toMilliseconds(),this.maxDuration=this.begin+this.attribute(\"dur\").toMilliseconds(),this.getProperty=function(){var t=this.attribute(\"attributeType\").value,e=this.attribute(\"attributeName\").value;return\"CSS\"==t?this.parent.style(e,!0):this.parent.attribute(e,!0)},this.initialValue=null,this.initialUnits=\"\",this.removed=!1,this.calcValue=function(){return\"\"},this.update=function(t){if(null==this.initialValue&&(this.initialValue=this.getProperty().value,this.initialUnits=this.getProperty().getUnits()),this.duration>this.maxDuration){if(\"indefinite\"==this.attribute(\"repeatCount\").value||\"indefinite\"==this.attribute(\"repeatDur\").value)this.duration=0;else if(\"freeze\"!=this.attribute(\"fill\").valueOrDefault(\"remove\")||this.frozen){if(\"remove\"==this.attribute(\"fill\").valueOrDefault(\"remove\")&&!this.removed)return this.removed=!0,this.getProperty().value=this.parent.animationFrozen?this.parent.animationFrozenValue:this.initialValue,!0}else this.frozen=!0,this.parent.animationFrozen=!0,this.parent.animationFrozenValue=this.getProperty().value;return!1}this.duration=this.duration+t;var e=!1;if(this.begin<this.duration){var i=this.calcValue();if(this.attribute(\"type\").hasValue())i=this.attribute(\"type\").value+\"(\"+i+\")\";this.getProperty().value=i,e=!0}return e},this.from=this.attribute(\"from\"),this.to=this.attribute(\"to\"),this.values=this.attribute(\"values\"),this.values.hasValue()&&(this.values.value=this.values.value.split(\";\")),this.progress=function(){var t={progress:(this.duration-this.begin)/(this.maxDuration-this.begin)};if(this.values.hasValue()){var e=t.progress*(this.values.value.length-1),i=Math.floor(e),n=Math.ceil(e);t.from=new D.Property(\"from\",parseFloat(this.values.value[i])),t.to=new D.Property(\"to\",parseFloat(this.values.value[n])),t.progress=(e-i)/(n-i)}else t.from=this.from,t.to=this.to;return t}},D.Element.AnimateBase.prototype=new D.Element.ElementBase,D.Element.animate=function(t){this.base=D.Element.AnimateBase,this.base(t),this.calcValue=function(){var t=this.progress(),e=t.from.numValue()+(t.to.numValue()-t.from.numValue())*t.progress;return\"%\"===this.initialUnits&&(e*=100),e+this.initialUnits}},D.Element.animate.prototype=new D.Element.AnimateBase,D.Element.animateColor=function(t){this.base=D.Element.AnimateBase,this.base(t),this.calcValue=function(){var t=this.progress(),e=new y(t.from.value),i=new y(t.to.value);if(e.ok&&i.ok){var n=e.r+(i.r-e.r)*t.progress,s=e.g+(i.g-e.g)*t.progress,a=e.b+(i.b-e.b)*t.progress;return\"rgb(\"+parseInt(n,10)+\",\"+parseInt(s,10)+\",\"+parseInt(a,10)+\")\"}return this.attribute(\"from\").value}},D.Element.animateColor.prototype=new D.Element.AnimateBase,D.Element.animateTransform=function(t){this.base=D.Element.AnimateBase,this.base(t),this.calcValue=function(){for(var t=this.progress(),e=D.ToNumberArray(t.from.value),i=D.ToNumberArray(t.to.value),n=\"\",s=0;s<e.length;s++)n+=e[s]+(i[s]-e[s])*t.progress+\" \";return n}},D.Element.animateTransform.prototype=new D.Element.animate,D.Element.font=function(t){this.base=D.Element.ElementBase,this.base(t),this.horizAdvX=this.attribute(\"horiz-adv-x\").numValue(),this.isRTL=!1,this.isArabic=!1,this.fontFace=null,this.missingGlyph=null,this.glyphs=[];for(var e=0;e<this.children.length;e++){var i=this.children[e];\"font-face\"==i.type?(this.fontFace=i).style(\"font-family\").hasValue()&&(D.Definitions[i.style(\"font-family\").value]=this):\"missing-glyph\"==i.type?this.missingGlyph=i:\"glyph\"==i.type&&(\"\"!=i.arabicForm?(this.isRTL=!0,this.isArabic=!0,void 0===this.glyphs[i.unicode]&&(this.glyphs[i.unicode]=[]),this.glyphs[i.unicode][i.arabicForm]=i):this.glyphs[i.unicode]=i)}this.render=function(){}},D.Element.font.prototype=new D.Element.ElementBase,D.Element.fontface=function(t){this.base=D.Element.ElementBase,this.base(t),this.ascent=this.attribute(\"ascent\").value,this.descent=this.attribute(\"descent\").value,this.unitsPerEm=this.attribute(\"units-per-em\").numValue()},D.Element.fontface.prototype=new D.Element.ElementBase,D.Element.missingglyph=function(t){this.base=D.Element.path,this.base(t),this.horizAdvX=0},D.Element.missingglyph.prototype=new D.Element.path,D.Element.glyph=function(t){this.base=D.Element.path,this.base(t),this.horizAdvX=this.attribute(\"horiz-adv-x\").numValue(),this.unicode=this.attribute(\"unicode\").value,this.arabicForm=this.attribute(\"arabic-form\").value},D.Element.glyph.prototype=new D.Element.path,D.Element.text=function(t){this.captureTextNodes=!0,this.base=D.Element.RenderedElementBase,this.base(t),this.baseSetContext=this.setContext,this.setContext=function(t){this.baseSetContext(t);var e=this.style(\"dominant-baseline\").toTextBaseline();null==e&&(e=this.style(\"alignment-baseline\").toTextBaseline()),null!=e&&(t.textBaseline=e)},this.initializeCoordinates=function(t){this.x=this.attribute(\"x\").toPixels(\"x\"),this.y=this.attribute(\"y\").toPixels(\"y\"),this.attribute(\"dx\").hasValue()&&(this.x+=this.attribute(\"dx\").toPixels(\"x\")),this.attribute(\"dy\").hasValue()&&(this.y+=this.attribute(\"dy\").toPixels(\"y\")),this.x+=this.getAnchorDelta(t,this,0)},this.getBoundingBox=function(t){this.initializeCoordinates(t);for(var e=null,i=0;i<this.children.length;i++){var n=this.getChildBoundingBox(t,this,this,i);null==e?e=n:e.addBoundingBox(n)}return e},this.renderChildren=function(t){this.initializeCoordinates(t);for(var e=0;e<this.children.length;e++)this.renderChild(t,this,this,e);D.Mouse.checkBoundingBox(this,this.getBoundingBox(t))},this.getAnchorDelta=function(t,e,i){var n=this.style(\"text-anchor\").valueOrDefault(\"start\");if(\"start\"==n)return 0;for(var s=0,a=i;a<e.children.length;a++){var r=e.children[a];if(i<a&&r.attribute(\"x\").hasValue())break;s+=r.measureTextRecursive(t)}return-1*(\"end\"==n?s:s/2)},this.adjustChildCoordinates=function(t,e,i,n){var s=i.children[n];if(\"function\"!=typeof s.measureText)return s;if(s.attribute(\"x\").hasValue()){s.x=s.attribute(\"x\").toPixels(\"x\")+e.getAnchorDelta(t,i,n);var a=s.attribute(\"text-anchor\").valueOrDefault(\"start\");if(\"start\"!==a){var r=s.measureTextRecursive(t);s.x+=-1*(\"end\"==a?r:r/2)}s.attribute(\"dx\").hasValue()&&(s.x+=s.attribute(\"dx\").toPixels(\"x\"))}else s.attribute(\"dx\").hasValue()&&(e.x+=s.attribute(\"dx\").toPixels(\"x\")),s.x=e.x;return e.x=s.x+s.measureText(t),s.attribute(\"y\").hasValue()?(s.y=s.attribute(\"y\").toPixels(\"y\"),s.attribute(\"dy\").hasValue()&&(s.y+=s.attribute(\"dy\").toPixels(\"y\"))):(s.attribute(\"dy\").hasValue()&&(e.y+=s.attribute(\"dy\").toPixels(\"y\")),s.y=e.y),e.y=s.y,s},this.getChildBoundingBox=function(t,e,i,n){var s=this.adjustChildCoordinates(t,e,i,n),a=s.getBoundingBox(t);for(n=0;n<s.children.length;n++){var r=e.getChildBoundingBox(t,e,s,n);a.addBoundingBox(r)}return a},this.renderChild=function(t,e,i,n){var s=this.adjustChildCoordinates(t,e,i,n);s.render(t);for(n=0;n<s.children.length;n++)e.renderChild(t,e,s,n)}},D.Element.text.prototype=new D.Element.RenderedElementBase,D.Element.TextElementBase=function(t){this.base=D.Element.RenderedElementBase,this.base(t),this.getGlyph=function(t,e,i){var n=e[i],s=null;if(t.isArabic){var a=\"isolated\";(0==i||\" \"==e[i-1])&&i<e.length-2&&\" \"!=e[i+1]&&(a=\"terminal\"),0<i&&\" \"!=e[i-1]&&i<e.length-2&&\" \"!=e[i+1]&&(a=\"medial\"),0<i&&\" \"!=e[i-1]&&(i==e.length-1||\" \"==e[i+1])&&(a=\"initial\"),void 0!==t.glyphs[n]&&null==(s=t.glyphs[n][a])&&\"glyph\"==t.glyphs[n].type&&(s=t.glyphs[n])}else s=t.glyphs[n];return null==s&&(s=t.missingGlyph),s},this.renderChildren=function(t){var e=this.parent.style(\"font-family\").getDefinition();if(null==e)\"stroke\"==t.paintOrder?(\"\"!=t.strokeStyle&&t.strokeText(D.compressSpaces(this.getText()),this.x,this.y),\"\"!=t.fillStyle&&t.fillText(D.compressSpaces(this.getText()),this.x,this.y)):(\"\"!=t.fillStyle&&t.fillText(D.compressSpaces(this.getText()),this.x,this.y),\"\"!=t.strokeStyle&&t.strokeText(D.compressSpaces(this.getText()),this.x,this.y));else{var i=this.parent.style(\"font-size\").numValueOrDefault(D.Font.Parse(D.ctx.font).fontSize),n=this.parent.style(\"font-style\").valueOrDefault(D.Font.Parse(D.ctx.font).fontStyle),s=this.getText();e.isRTL&&(s=s.split(\"\").reverse().join(\"\"));for(var a=D.ToNumberArray(this.parent.attribute(\"dx\").value),r=0;r<s.length;r++){var o=this.getGlyph(e,s,r),h=i/e.fontFace.unitsPerEm;t.translate(this.x,this.y),t.scale(h,-h);var l=t.lineWidth;t.lineWidth=t.lineWidth*e.fontFace.unitsPerEm/i,\"italic\"==n&&t.transform(1,0,.4,1,0,0),o.render(t),\"italic\"==n&&t.transform(1,0,-.4,1,0,0),t.lineWidth=l,t.scale(1/h,-1/h),t.translate(-this.x,-this.y),this.x+=i*(o.horizAdvX||e.horizAdvX)/e.fontFace.unitsPerEm,void 0===a[r]||isNaN(a[r])||(this.x+=a[r])}}},this.getText=function(){},this.measureTextRecursive=function(t){for(var e=this.measureText(t),i=0;i<this.children.length;i++)e+=this.children[i].measureTextRecursive(t);return e},this.measureText=function(t){var e=this.parent.style(\"font-family\").getDefinition();if(null!=e){var i=this.parent.style(\"font-size\").numValueOrDefault(D.Font.Parse(D.ctx.font).fontSize),n=0,s=this.getText();e.isRTL&&(s=s.split(\"\").reverse().join(\"\"));for(var a=D.ToNumberArray(this.parent.attribute(\"dx\").value),r=0;r<s.length;r++){n+=(this.getGlyph(e,s,r).horizAdvX||e.horizAdvX)*i/e.fontFace.unitsPerEm,void 0===a[r]||isNaN(a[r])||(n+=a[r])}return n}var o=D.compressSpaces(this.getText());if(!t.measureText)return 10*o.length;t.save(),this.setContext(t,!0);var h=t.measureText(o).width;return t.restore(),h},this.getBoundingBox=function(t){var e=this.parent.style(\"font-size\").numValueOrDefault(D.Font.Parse(D.ctx.font).fontSize);return new D.BoundingBox(this.x,this.y-e,this.x+this.measureText(t),this.y)}},D.Element.TextElementBase.prototype=new D.Element.RenderedElementBase,D.Element.tspan=function(t){this.captureTextNodes=!0,this.base=D.Element.TextElementBase,this.base(t),this.text=D.compressSpaces(t.value||t.text||t.textContent||\"\"),this.getText=function(){return 0<this.children.length?\"\":this.text}},D.Element.tspan.prototype=new D.Element.TextElementBase,D.Element.tref=function(t){this.base=D.Element.TextElementBase,this.base(t),this.getText=function(){var t=this.getHrefAttribute().getDefinition();if(null!=t)return t.children[0].getText()}},D.Element.tref.prototype=new D.Element.TextElementBase,D.Element.a=function(t){this.base=D.Element.TextElementBase,this.base(t),this.hasText=0<t.childNodes.length;for(var e=0;e<t.childNodes.length;e++)3!=t.childNodes[e].nodeType&&(this.hasText=!1);this.text=this.hasText?t.childNodes[0].value||t.childNodes[0].data:\"\",this.getText=function(){return this.text},this.baseRenderChildren=this.renderChildren,this.renderChildren=function(t){if(this.hasText){this.baseRenderChildren(t);var e=new D.Property(\"fontSize\",D.Font.Parse(D.ctx.font).fontSize);D.Mouse.checkBoundingBox(this,new D.BoundingBox(this.x,this.y-e.toPixels(\"y\"),this.x+this.measureText(t),this.y))}else if(0<this.children.length){var i=new D.Element.g;i.children=this.children,i.parent=this,i.render(t)}},this.onclick=function(){l.open(this.getHrefAttribute().value)},this.onmousemove=function(){D.ctx.canvas.style.cursor=\"pointer\"}},D.Element.a.prototype=new D.Element.TextElementBase,D.Element.textPath=function(t){this.base=D.Element.TextElementBase,this.base(t);var e=this.getHrefAttribute().getDefinition();this.text=D.compressSpaces(t.value||t.text||t.textContent||\"\"),this.renderChildren=function(t){this.setTextData(t),t.save();var e=this.parent.style(\"text-decoration\").value,i=this.fontSize(),n=this.glyphInfo,s=t.fillStyle;\"underline\"===e&&t.beginPath();for(var a=0;a<n.length;a++){var r=n[a].p0,o=n[a].p1,h=n[a].text;t.save(),t.translate(r.x,r.y),t.rotate(n[a].rotation),\"\"!=t.fillStyle&&t.fillText(D.compressSpaces(h),0,0),\"\"!=t.strokeStyle&&t.strokeText(D.compressSpaces(h),0,0),t.restore(),\"underline\"===e&&(0===a&&t.moveTo(r.x,r.y+i/8),t.lineTo(o.x,o.y+i/5))}\"underline\"===e&&(t.lineWidth=i/20,t.strokeStyle=s,t.stroke(),t.closePath()),t.restore()},this.path=function(t){var e=this.dataArray;null!=t&&t.beginPath();for(var i=0;i<e.length;i++){var n=e[i].command,s=e[i].points;switch(n){case\"L\":null!=t&&t.lineTo(s[0],s[1]);break;case\"M\":null!=t&&t.moveTo(s[0],s[1]);break;case\"C\":null!=t&&t.bezierCurveTo(s[0],s[1],s[2],s[3],s[4],s[5]);break;case\"Q\":null!=t&&t.quadraticCurveTo(s[0],s[1],s[2],s[3]);break;case\"A\":var a=s[0],r=s[1],o=s[2],h=s[3],l=s[4],u=s[5],c=s[6],f=s[7],p=h<o?o:h,d=h<o?1:o/h,m=h<o?h/o:1;null!=t&&(t.translate(a,r),t.rotate(c),t.scale(d,m),t.arc(0,0,p,l,l+u,1-f),t.scale(1/d,1/m),t.rotate(-c),t.translate(-a,-r));break;case\"z\":null!=t&&t.closePath()}}},this.getText=function(){return this.text},this.fontSize=function(){return this.parent.style(\"font-size\").numValueOrDefault(D.Font.Parse(D.ctx.font).fontSize)},this.measureText=function(t,e){var i=this.parent.style(\"font-family\").getDefinition();if(e=e||this.getText(),null!=i){var n=this.fontSize(),s=0;i.isRTL&&(e=e.split(\"\").reverse().join(\"\"));for(var a=D.ToNumberArray(this.parent.attribute(\"dx\").value),r=0;r<e.length;r++){s+=(this.getGlyph(i,e,r).horizAdvX||i.horizAdvX)*n/i.fontFace.unitsPerEm,void 0===a[r]||isNaN(a[r])||(s+=a[r])}return s}var o=D.compressSpaces(e);if(!t.measureText)return 10*o.length;t.save(),this.setContext(t);var h=t.measureText(o).width;return t.restore(),h},this.setTextData=function(r){if(!this.hasOwnProperty(\"glyphInfo\")){var o=this,t=this.getText().split(\"\"),h=this.getText().split(\" \").length-1,e=D.ToNumberArray(this.parent.attribute(\"dx\").valueOrDefault(\"0\")),i=0,l=this.parent.style(\"text-anchor\").valueOrDefault(\"start\"),n=this.style(\"letter-spacing\"),s=this.parent.style(\"letter-spacing\");n.hasValue()&&\"inherit\"!==n.getValue()?n.hasValue()&&\"initial\"!==n.getValue()&&\"unset\"!==n.getValue()&&(i=n.toPixels()):i=s.toPixels(),this.letterSpacingCache=[];for(var a=0;a<this.getText().length;a++)this.letterSpacingCache.push(void 0!==e[a]?e[a]:i);var u=this.letterSpacingCache.reduce(function(t,e){return t+e||0},0);this.textWidth=this.measureText(r),this.textHeight=this.fontSize();var c=Math.max(this.textWidth+u,0);this.glyphInfo=[];var f=this.getPathLength(),p=this.style(\"startOffset\").numValueOrDefault(0)*f,d=0;\"middle\"!==l&&\"center\"!==l||(d=-c/2),\"end\"!==l&&\"right\"!==l||(d=-c),d+=p;var m=function(t,e){var i,n=o.measureText(r,t);\" \"===t&&\"justify\"===l&&c<f&&(n+=(f-c)/h),-1<e&&(d+=(i=(i=e)||0,o.letterSpacingCache[i]||0));var s=o.textHeight/20,a={p0:o.getEquidistantPointOnPath(d,s),p1:o.getEquidistantPointOnPath(d+n,s)};return d+=n,a};for(a=0;a<t.length;a++){var y=m(t[a],a);if(void 0!==y.p0&&void 0!==y.p1){var v=o.getLineLength(y.p0.x,y.p0.y,y.p1.x,y.p1.y),g=o.getPointOnLine(0+v/2,y.p0.x,y.p0.y,y.p1.x,y.p1.y),x=Math.atan2(y.p1.y-y.p0.y,y.p1.x-y.p0.x);this.glyphInfo.push({transposeX:g.x,transposeY:g.y,text:t[a],rotation:x,p0:y.p0,p1:y.p1})}}}},this.parsePathData=function(t){if(this.pathLength=void 0,!t)return[];var e=[],i=t.PathParser;for(i.reset();!i.isEnd();){var n=[],s=null,a=i.current?i.current.x:0,r=i.current?i.current.y:0;i.nextCommand();var o=i.command.toUpperCase();switch(i.command){case\"M\":case\"m\":var h=i.getAsCurrentPoint();for(n.push(h.x,h.y),i.start=i.current;!i.isCommandOrEnd();){h=i.getAsCurrentPoint();n.push(h.x,h.y),s=\"L\"}break;case\"L\":case\"l\":for(;!i.isCommandOrEnd();){h=i.getAsCurrentPoint();n.push(h.x,h.y)}s=\"L\";break;case\"H\":case\"h\":for(;!i.isCommandOrEnd();){var l=new D.Point((i.isRelativeCommand()?i.current.x:0)+i.getScalar(),i.current.y);n.push(l.x,l.y),i.current=l}s=\"L\";break;case\"V\":case\"v\":for(;!i.isCommandOrEnd();){l=new D.Point(i.current.x,(i.isRelativeCommand()?i.current.y:0)+i.getScalar());n.push(l.x,l.y),i.current=l}s=\"L\";break;case\"C\":case\"c\":for(;!i.isCommandOrEnd();){var u=i.getPoint(),c=i.getAsControlPoint(),f=i.getAsCurrentPoint();n.push(u.x,u.y,c.x,c.y,f.x,f.y)}break;case\"S\":case\"s\":for(;!i.isCommandOrEnd();){u=i.getReflectedControlPoint(),c=i.getAsControlPoint(),f=i.getAsCurrentPoint();n.push(u.x,u.y,c.x,c.y,f.x,f.y)}s=\"C\";break;case\"Q\":case\"q\":for(;!i.isCommandOrEnd();){c=i.getAsControlPoint(),f=i.getAsCurrentPoint();n.push(c.x,c.y,f.x,f.y)}break;case\"T\":case\"t\":for(;!i.isCommandOrEnd();){c=i.getReflectedControlPoint();i.control=c;f=i.getAsCurrentPoint();n.push(c.x,c.y,f.x,f.y)}s=\"Q\";break;case\"A\":case\"a\":for(;!i.isCommandOrEnd();){var p=i.current,d=i.getScalar(),m=i.getScalar(),y=i.getScalar()*(Math.PI/180),v=i.getScalar(),g=i.getScalar(),x=(f=i.getAsCurrentPoint(),new D.Point(Math.cos(y)*(p.x-f.x)/2+Math.sin(y)*(p.y-f.y)/2,-Math.sin(y)*(p.x-f.x)/2+Math.cos(y)*(p.y-f.y)/2)),b=Math.pow(x.x,2)/Math.pow(d,2)+Math.pow(x.y,2)/Math.pow(m,2);1<b&&(d*=Math.sqrt(b),m*=Math.sqrt(b));var P=(v==g?-1:1)*Math.sqrt((Math.pow(d,2)*Math.pow(m,2)-Math.pow(d,2)*Math.pow(x.y,2)-Math.pow(m,2)*Math.pow(x.x,2))/(Math.pow(d,2)*Math.pow(x.y,2)+Math.pow(m,2)*Math.pow(x.x,2)));isNaN(P)&&(P=0);var E=new D.Point(P*d*x.y/m,P*-m*x.x/d),w=new D.Point((p.x+f.x)/2+Math.cos(y)*E.x-Math.sin(y)*E.y,(p.y+f.y)/2+Math.sin(y)*E.x+Math.cos(y)*E.y),C=function(t){return Math.sqrt(Math.pow(t[0],2)+Math.pow(t[1],2))},B=function(t,e){return(t[0]*e[0]+t[1]*e[1])/(C(t)*C(e))},M=function(t,e){return(t[0]*e[1]<t[1]*e[0]?-1:1)*Math.acos(B(t,e))},T=M([1,0],[(x.x-E.x)/d,(x.y-E.y)/m]),S=[(x.x-E.x)/d,(x.y-E.y)/m],V=[(-x.x-E.x)/d,(-x.y-E.y)/m],k=M(S,V);B(S,V)<=-1&&(k=Math.PI),1<=B(S,V)&&(k=0),0===g&&0<k&&(k-=2*Math.PI),1===g&&k<0&&(k+=2*Math.PI),n=[w.x,w.y,d,m,T,k,y,g]}break;case\"Z\":case\"z\":i.current=i.start}\"Z\"!==o?e.push({command:s||o,points:n,start:{x:a,y:r},pathLength:this.calcLength(a,r,s||o,n)}):e.push({command:\"z\",points:[],start:void 0,pathLength:0})}return e},this.getPathLength=function(){if(void 0===this.pathLength||null===this.pathLength||isNaN(this.pathLength))for(var t=this.pathLength=0;t<this.dataArray.length;t++)0<this.dataArray[t].pathLength&&(this.pathLength+=this.dataArray[t].pathLength);return this.pathLength},this.getPointOnPath=function(t){var e=0,i=this.getPathLength(),n=void 0;if(!(t<-5e-5||i<t-5e-5))for(var s=0;s<this.dataArray.length;s++){var a=this.dataArray[s];if(!a||!(a.pathLength<5e-5||e+a.pathLength+5e-5<t)){var r=t-e,o=void 0;switch(a.command){case\"L\":n=this.getPointOnLine(r,a.start.x,a.start.y,a.points[0],a.points[1],a.start.x,a.start.y);break;case\"A\":var h=a.points[4],l=a.points[5],u=a.points[4]+l;if(o=h+r/a.pathLength*l,l<0&&o<u||0<=l&&u<o)break;n=this.getPointOnEllipticalArc(a.points[0],a.points[1],a.points[2],a.points[3],o,a.points[6]);break;case\"C\":1<(o=r/a.pathLength)&&(o=1),n=this.getPointOnCubicBezier(o,a.start.x,a.start.y,a.points[0],a.points[1],a.points[2],a.points[3],a.points[4],a.points[5]);break;case\"Q\":1<(o=r/a.pathLength)&&(o=1),n=this.getPointOnQuadraticBezier(o,a.start.x,a.start.y,a.points[0],a.points[1],a.points[2],a.points[3])}if(void 0!==n&&n!=={})return n;break}e+=a.pathLength}},this.buildEquidistantCache=function(t,e){var i=this.getPathLength();if(e=e||.25,t=t||i/100,this.equidistantCache=this.equidistantCache||{},!this.equidistantCache.hasOwnProperty(\"points\")||this.equidistantCache.step!=t||this.equidistantCache.precision!=e){this.equidistantCache={step:t,precision:e,points:[]};for(var n=0,s=0;s<=i;s+=e){var a=this.getPointOnPath(s),r=this.getPointOnPath(s+e);void 0!==a&&void 0!==r&&(t<=(n+=this.getLineLength(a.x,a.y,r.x,r.y))&&(this.equidistantCache.points.push({x:a.x,y:a.y,distance:s}),n-=t))}}},this.getEquidistantPointOnPath=function(t,e,i){if(this.buildEquidistantCache(e,i),!(t<0||5e-5<t-this.getPathLength())){var n=Math.round(t/this.getPathLength()*(this.equidistantCache.points.length-1));return this.equidistantCache.points[n]||void 0}},this.getLineLength=function(t,e,i,n){return Math.sqrt((i-t)*(i-t)+(n-e)*(n-e))},this.getPointOnLine=function(t,e,i,n,s,a,r){void 0===a&&(a=e),void 0===r&&(r=i);var o=(s-i)/(n-e+1e-8),h=Math.sqrt(t*t/(1+o*o));n<e&&(h*=-1);var l,u=o*h;if(n===e)l={x:a,y:r+u};else if((r-i)/(a-e+1e-8)===o)l={x:a+h,y:r+u};else{var c,f,p=this.getLineLength(e,i,n,s);if(p<1e-8)return;var d=(a-e)*(n-e)+(r-i)*(s-i);c=e+(d/=p*p)*(n-e),f=i+d*(s-i);var m=this.getLineLength(a,r,c,f),y=Math.sqrt(t*t-m*m);h=Math.sqrt(y*y/(1+o*o)),n<e&&(h*=-1),l={x:c+h,y:f+(u=o*h)}}return l},this.getPointOnCubicBezier=function(t,e,i,n,s,a,r,o,h){function l(t){return t*t*t}function u(t){return 3*t*t*(1-t)}function c(t){return 3*t*(1-t)*(1-t)}function f(t){return(1-t)*(1-t)*(1-t)}return{x:o*l(t)+a*u(t)+n*c(t)+e*f(t),y:h*l(t)+r*u(t)+s*c(t)+i*f(t)}},this.getPointOnQuadraticBezier=function(t,e,i,n,s,a,r){function o(t){return t*t}function h(t){return 2*t*(1-t)}function l(t){return(1-t)*(1-t)}return{x:a*o(t)+n*h(t)+e*l(t),y:r*o(t)+s*h(t)+i*l(t)}},this.getPointOnEllipticalArc=function(t,e,i,n,s,a){var r=Math.cos(a),o=Math.sin(a),h=i*Math.cos(s),l=n*Math.sin(s);return{x:t+(h*r-l*o),y:e+(h*o+l*r)}},this.calcLength=function(t,e,i,n){var s,a,r,o;switch(i){case\"L\":return this.getLineLength(t,e,n[0],n[1]);case\"C\":for(s=0,a=this.getPointOnCubicBezier(0,t,e,n[0],n[1],n[2],n[3],n[4],n[5]),o=.01;o<=1;o+=.01)r=this.getPointOnCubicBezier(o,t,e,n[0],n[1],n[2],n[3],n[4],n[5]),s+=this.getLineLength(a.x,a.y,r.x,r.y),a=r;return s;case\"Q\":for(s=0,a=this.getPointOnQuadraticBezier(0,t,e,n[0],n[1],n[2],n[3]),o=.01;o<=1;o+=.01)r=this.getPointOnQuadraticBezier(o,t,e,n[0],n[1],n[2],n[3]),s+=this.getLineLength(a.x,a.y,r.x,r.y),a=r;return s;case\"A\":s=0;var h=n[4],l=n[5],u=n[4]+l,c=Math.PI/180;if(Math.abs(h-u)<c&&(c=Math.abs(h-u)),a=this.getPointOnEllipticalArc(n[0],n[1],n[2],n[3],h,0),l<0)for(o=h-c;u<o;o-=c)r=this.getPointOnEllipticalArc(n[0],n[1],n[2],n[3],o,0),s+=this.getLineLength(a.x,a.y,r.x,r.y),a=r;else for(o=h+c;o<u;o+=c)r=this.getPointOnEllipticalArc(n[0],n[1],n[2],n[3],o,0),s+=this.getLineLength(a.x,a.y,r.x,r.y),a=r;return r=this.getPointOnEllipticalArc(n[0],n[1],n[2],n[3],u,0),s+=this.getLineLength(a.x,a.y,r.x,r.y)}return 0},this.dataArray=this.parsePathData(e)},D.Element.textPath.prototype=new D.Element.TextElementBase,D.Element.image=function(t){this.base=D.Element.RenderedElementBase,this.base(t);var e=this.getHrefAttribute().value;if(\"\"!=e){var a=e.match(/\\.svg$/);if(D.Images.push(this),this.loaded=!1,a)this.img=D.ajax(e),this.loaded=!0;else{this.img=c.createElement(\"img\"),1==D.opts.useCORS&&(this.img.crossOrigin=\"Anonymous\");var r=this;this.img.onload=function(){r.loaded=!0},this.img.onerror=function(){D.log('ERROR: image \"'+e+'\" not found'),r.loaded=!0},this.img.src=e}this.renderChildren=function(t){var e=this.attribute(\"x\").toPixels(\"x\"),i=this.attribute(\"y\").toPixels(\"y\"),n=this.attribute(\"width\").toPixels(\"x\"),s=this.attribute(\"height\").toPixels(\"y\");0!=n&&0!=s&&(t.save(),a?t.drawSvg(this.img,e,i,n,s):(t.translate(e,i),D.AspectRatio(t,this.attribute(\"preserveAspectRatio\").value,n,this.img.width,s,this.img.height,0,0),r.loaded&&(void 0===this.img.complete||this.img.complete)&&t.drawImage(this.img,0,0)),t.restore())},this.getBoundingBox=function(){var t=this.attribute(\"x\").toPixels(\"x\"),e=this.attribute(\"y\").toPixels(\"y\"),i=this.attribute(\"width\").toPixels(\"x\"),n=this.attribute(\"height\").toPixels(\"y\");return new D.BoundingBox(t,e,t+i,e+n)}}},D.Element.image.prototype=new D.Element.RenderedElementBase,D.Element.g=function(t){this.base=D.Element.RenderedElementBase,this.base(t),this.getBoundingBox=function(t){for(var e=new D.BoundingBox,i=0;i<this.children.length;i++)e.addBoundingBox(this.children[i].getBoundingBox(t));return e}},D.Element.g.prototype=new D.Element.RenderedElementBase,D.Element.symbol=function(t){this.base=D.Element.RenderedElementBase,this.base(t),this.render=function(){}},D.Element.symbol.prototype=new D.Element.RenderedElementBase,D.ParseExternalUrl=function(t){var e=t.match(/url\\(('([^']+)'|\"([^\"]+)\"|([^'\"\\)]+))\\)/)||[];return e[2]||e[3]||e[4]},D.Element.style=function(t){this.base=D.Element.ElementBase,this.base(t);for(var e=\"\",i=0;i<t.childNodes.length;i++)e+=t.childNodes[i].data;e=e.replace(/(\\/\\*([^*]|[\\r\\n]|(\\*+([^*\\/]|[\\r\\n])))*\\*+\\/)|(^[\\s]*\\/\\/.*)/gm,\"\");var n=(e=D.compressSpaces(e)).split(\"}\");for(i=0;i<n.length;i++)if(\"\"!=D.trim(n[i]))for(var s=n[i].split(\"{\"),a=s[0].split(\",\"),r=s[1].split(\";\"),o=0;o<a.length;o++){var h=D.trim(a[o]);if(\"\"!=h){for(var l=D.Styles[h]||{},u=0;u<r.length;u++){var c=r[u].indexOf(\":\"),f=r[u].substr(0,c),p=r[u].substr(c+1,r[u].length-c);null!=f&&null!=p&&(l[D.trim(f)]=new D.Property(D.trim(f),D.trim(p)))}if(D.Styles[h]=l,D.StylesSpecificity[h]=P(h),\"@font-face\"==h)for(var d=l[\"font-family\"].value.replace(/\"/g,\"\"),m=l.src.value.split(\",\"),y=0;y<m.length;y++)if(0<m[y].indexOf('format(\"svg\")')){var v=D.ParseExternalUrl(m[y]);if(v)for(var g=D.parseXml(D.ajax(v)).getElementsByTagName(\"font\"),x=0;x<g.length;x++){var b=D.CreateElement(g[x]);D.Definitions[d]=b}}}}},D.Element.style.prototype=new D.Element.ElementBase,D.Element.use=function(t){this.base=D.Element.RenderedElementBase,this.base(t),this.baseSetContext=this.setContext,this.setContext=function(t){this.baseSetContext(t),this.attribute(\"x\").hasValue()&&t.translate(this.attribute(\"x\").toPixels(\"x\"),0),this.attribute(\"y\").hasValue()&&t.translate(0,this.attribute(\"y\").toPixels(\"y\"))};var n=this.getHrefAttribute().getDefinition();this.path=function(t){null!=n&&n.path(t)},this.elementTransform=function(){if(null!=n&&n.style(\"transform\",!1,!0).hasValue())return new D.Transform(n.style(\"transform\",!1,!0).value)},this.getBoundingBox=function(t){if(null!=n)return n.getBoundingBox(t)},this.renderChildren=function(t){if(null!=n){var e=n;\"symbol\"==n.type&&((e=new D.Element.svg).type=\"svg\",e.attributes.viewBox=new D.Property(\"viewBox\",n.attribute(\"viewBox\").value),e.attributes.preserveAspectRatio=new D.Property(\"preserveAspectRatio\",n.attribute(\"preserveAspectRatio\").value),e.attributes.overflow=new D.Property(\"overflow\",n.attribute(\"overflow\").value),e.children=n.children),\"svg\"==e.type&&(this.attribute(\"width\").hasValue()&&(e.attributes.width=new D.Property(\"width\",this.attribute(\"width\").value)),this.attribute(\"height\").hasValue()&&(e.attributes.height=new D.Property(\"height\",this.attribute(\"height\").value)));var i=e.parent;e.parent=null,e.render(t),e.parent=i}}},D.Element.use.prototype=new D.Element.RenderedElementBase,D.Element.mask=function(t){this.base=D.Element.ElementBase,this.base(t),this.apply=function(t,e){var i=this.attribute(\"x\").toPixels(\"x\"),n=this.attribute(\"y\").toPixels(\"y\"),s=this.attribute(\"width\").toPixels(\"x\"),a=this.attribute(\"height\").toPixels(\"y\");if(0==s&&0==a){for(var r=new D.BoundingBox,o=0;o<this.children.length;o++)r.addBoundingBox(this.children[o].getBoundingBox(t));i=Math.floor(r.x1),n=Math.floor(r.y1),s=Math.floor(r.width()),a=Math.floor(r.height())}var h=e.style(\"mask\").value;e.style(\"mask\").value=\"\";var l=d(i+s,n+a),u=l.getContext(\"2d\");D.SetDefaults(u),this.renderChildren(u),new D.Element.feColorMatrix({nodeType:1,childNodes:[],attributes:[{nodeName:\"type\",value:\"luminanceToAlpha\"},{nodeName:\"includeOpacity\",value:\"true\"}]}).apply(u,0,0,i+s,n+a);var c=d(i+s,n+a),f=c.getContext(\"2d\");D.SetDefaults(f),e.render(f),f.globalCompositeOperation=\"destination-in\",f.fillStyle=u.createPattern(l,\"no-repeat\"),f.fillRect(0,0,i+s,n+a),t.fillStyle=f.createPattern(c,\"no-repeat\"),t.fillRect(0,0,i+s,n+a),e.style(\"mask\").value=h},this.render=function(){}},D.Element.mask.prototype=new D.Element.ElementBase,D.Element.clipPath=function(t){this.base=D.Element.ElementBase,this.base(t),this.apply=function(t){var e=\"undefined\"!=typeof CanvasRenderingContext2D,i=t.beginPath,n=t.closePath;e&&(CanvasRenderingContext2D.prototype.beginPath=function(){},CanvasRenderingContext2D.prototype.closePath=function(){}),i.call(t);for(var s=0;s<this.children.length;s++){var a=this.children[s];if(void 0!==a.path){var r=void 0!==a.elementTransform&&a.elementTransform();!r&&a.style(\"transform\",!1,!0).hasValue()&&(r=new D.Transform(a.style(\"transform\",!1,!0).value)),r&&r.apply(t),a.path(t),e&&(CanvasRenderingContext2D.prototype.closePath=n),r&&r.unapply(t)}}n.call(t),t.clip(),e&&(CanvasRenderingContext2D.prototype.beginPath=i,CanvasRenderingContext2D.prototype.closePath=n)},this.render=function(){}},D.Element.clipPath.prototype=new D.Element.ElementBase,D.Element.filter=function(t){this.base=D.Element.ElementBase,this.base(t),this.apply=function(t,e){var i=e.getBoundingBox(t),n=Math.floor(i.x1),s=Math.floor(i.y1),a=Math.floor(i.width()),r=Math.floor(i.height()),o=e.style(\"filter\").value;e.style(\"filter\").value=\"\";for(var h=0,l=0,u=0;u<this.children.length;u++){var c=this.children[u].extraFilterDistance||0;h=Math.max(h,c),l=Math.max(l,c)}var f=d(a+2*h,r+2*l),p=f.getContext(\"2d\");D.SetDefaults(p),p.translate(-n+h,-s+l),e.render(p);for(u=0;u<this.children.length;u++)\"function\"==typeof this.children[u].apply&&this.children[u].apply(p,0,0,a+2*h,r+2*l);t.drawImage(f,0,0,a+2*h,r+2*l,n-h,s-l,a+2*h,r+2*l),e.style(\"filter\",!0).value=o},this.render=function(){}},D.Element.filter.prototype=new D.Element.ElementBase,D.Element.feDropShadow=function(t){this.base=D.Element.ElementBase,this.base(t),this.addStylesFromStyleDefinition(),this.apply=function(){}},D.Element.feDropShadow.prototype=new D.Element.ElementBase,D.Element.feMorphology=function(t){this.base=D.Element.ElementBase,this.base(t),this.apply=function(){}},D.Element.feMorphology.prototype=new D.Element.ElementBase,D.Element.feComposite=function(t){this.base=D.Element.ElementBase,this.base(t),this.apply=function(){}},D.Element.feComposite.prototype=new D.Element.ElementBase,D.Element.feColorMatrix=function(t){this.base=D.Element.ElementBase,this.base(t);var n=D.ToNumberArray(this.attribute(\"values\").value);switch(this.attribute(\"type\").valueOrDefault(\"matrix\")){case\"saturate\":var e=n[0];n=[.213+.787*e,.715-.715*e,.072-.072*e,0,0,.213-.213*e,.715+.285*e,.072-.072*e,0,0,.213-.213*e,.715-.715*e,.072+.928*e,0,0,0,0,0,1,0,0,0,0,0,1];break;case\"hueRotate\":var s=n[0]*Math.PI/180,i=function(t,e,i){return t+Math.cos(s)*e+Math.sin(s)*i};n=[i(.213,.787,-.213),i(.715,-.715,-.715),i(.072,-.072,.928),0,0,i(.213,-.213,.143),i(.715,.285,.14),i(.072,-.072,-.283),0,0,i(.213,-.213,-.787),i(.715,-.715,.715),i(.072,.928,.072),0,0,0,0,0,1,0,0,0,0,0,1];break;case\"luminanceToAlpha\":n=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,.2125,.7154,.0721,0,0,0,0,0,0,1]}function d(t,e,i,n,s,a){return t[i*n*4+4*e+a]}function m(t,e,i,n,s,a,r){t[i*n*4+4*e+a]=r}function y(t,e){var i=n[t];return i*(i<0?e-255:e)}var v=this.attribute(\"includeOpacity\").hasValue();this.apply=function(t,e,i,n,s){var a=t.getImageData(0,0,n,s);for(i=0;i<s;i++)for(e=0;e<n;e++){var r=d(a.data,e,i,n,0,0),o=d(a.data,e,i,n,0,1),h=d(a.data,e,i,n,0,2),l=d(a.data,e,i,n,0,3),u=y(0,r)+y(1,o)+y(2,h)+y(3,l)+y(4,1),c=y(5,r)+y(6,o)+y(7,h)+y(8,l)+y(9,1),f=y(10,r)+y(11,o)+y(12,h)+y(13,l)+y(14,1),p=y(15,r)+y(16,o)+y(17,h)+y(18,l)+y(19,1);v&&(u=c=f=0,p*=l/255),m(a.data,e,i,n,0,0,u),m(a.data,e,i,n,0,1,c),m(a.data,e,i,n,0,2,f),m(a.data,e,i,n,0,3,p)}t.clearRect(0,0,n,s),t.putImageData(a,0,0)}},D.Element.feColorMatrix.prototype=new D.Element.ElementBase,D.Element.feGaussianBlur=function(t){this.base=D.Element.ElementBase,this.base(t),this.blurRadius=Math.floor(this.attribute(\"stdDeviation\").numValue()),this.extraFilterDistance=this.blurRadius,this.apply=function(t,e,i,n,s){v&&void 0!==v.canvasRGBA?(t.canvas.id=D.UniqueId(),t.canvas.style.display=\"none\",c.body.appendChild(t.canvas),v.canvasRGBA(t.canvas,e,i,n,s,this.blurRadius),c.body.removeChild(t.canvas)):D.log(\"ERROR: StackBlur.js must be included for blur to work\")}},D.Element.feGaussianBlur.prototype=new D.Element.ElementBase,D.Element.title=function(){},D.Element.title.prototype=new D.Element.ElementBase,D.Element.desc=function(){},D.Element.desc.prototype=new D.Element.ElementBase,D.Element.MISSING=function(t){D.log(\"ERROR: Element '\"+t.nodeName+\"' not yet implemented.\")},D.Element.MISSING.prototype=new D.Element.ElementBase,D.CreateElement=function(t){var e=t.nodeName.replace(/^[^:]+:/,\"\");e=e.replace(/\\-/g,\"\");var i=null;return(i=void 0!==D.Element[e]?new D.Element[e](t):new D.Element.MISSING(t)).type=t.nodeName,i},D.load=function(t,e){D.loadXml(t,D.ajax(e))},D.loadXml=function(t,e){D.loadXmlDoc(t,D.parseXml(e))},D.loadXmlDoc=function(a,r){D.init(a);var i=function(t){for(var e=a.canvas;e;)t.x-=e.offsetLeft,t.y-=e.offsetTop,e=e.offsetParent;return l.scrollX&&(t.x+=l.scrollX),l.scrollY&&(t.y+=l.scrollY),t};1!=D.opts.ignoreMouse&&(a.canvas.onclick=function(t){var e=i(new D.Point(null!=t?t.clientX:event.clientX,null!=t?t.clientY:event.clientY));D.Mouse.onclick(e.x,e.y)},a.canvas.onmousemove=function(t){var e=i(new D.Point(null!=t?t.clientX:event.clientX,null!=t?t.clientY:event.clientY));D.Mouse.onmousemove(e.x,e.y)});var o=D.CreateElement(r.documentElement);o.root=!0,o.addStylesFromStyleDefinition();var h=!0,n=function(){D.ViewPort.Clear(),a.canvas.parentNode?D.ViewPort.SetCurrent(a.canvas.parentNode.clientWidth,a.canvas.parentNode.clientHeight):D.ViewPort.SetCurrent(800,600),1!=D.opts.ignoreDimensions&&(h||null==D.opts.scaleWidth&&null==D.opts.scaleHeight)&&(o.style(\"width\").hasValue()&&(a.canvas.width=o.style(\"width\").toPixels(\"x\"),a.canvas.style&&(a.canvas.style.width=a.canvas.width+\"px\")),o.style(\"height\").hasValue()&&(a.canvas.height=o.style(\"height\").toPixels(\"y\"),a.canvas.style&&(a.canvas.style.height=a.canvas.height+\"px\")));var t=a.canvas.clientWidth||a.canvas.width,e=a.canvas.clientHeight||a.canvas.height;if(1==D.opts.ignoreDimensions&&o.style(\"width\").hasValue()&&o.style(\"height\").hasValue()&&(t=o.style(\"width\").toPixels(\"x\"),e=o.style(\"height\").toPixels(\"y\")),D.ViewPort.SetCurrent(t,e),null!=D.opts.offsetX&&(o.attribute(\"x\",!0).value=D.opts.offsetX),null!=D.opts.offsetY&&(o.attribute(\"y\",!0).value=D.opts.offsetY),null!=D.opts.scaleWidth||null!=D.opts.scaleHeight){var i=null,n=null,s=D.ToNumberArray(o.attribute(\"viewBox\").value);null!=D.opts.scaleWidth&&(o.attribute(\"width\").hasValue()?i=o.attribute(\"width\").toPixels(\"x\")/D.opts.scaleWidth:isNaN(s[2])||(i=s[2]/D.opts.scaleWidth)),null!=D.opts.scaleHeight&&(o.attribute(\"height\").hasValue()?n=o.attribute(\"height\").toPixels(\"y\")/D.opts.scaleHeight:isNaN(s[3])||(n=s[3]/D.opts.scaleHeight)),null==i&&(i=n),null==n&&(n=i),o.attribute(\"width\",!0).value=D.opts.scaleWidth,o.attribute(\"height\",!0).value=D.opts.scaleHeight,o.style(\"transform\",!0,!0).value+=\" scale(\"+1/i+\",\"+1/n+\")\"}1!=D.opts.ignoreClear&&a.clearRect(0,0,t,e),o.render(a),h&&(h=!1,\"function\"==typeof D.opts.renderCallback&&D.opts.renderCallback(r))},s=!0;D.ImagesLoaded()&&(s=!1,n()),D.intervalID=setInterval(function(){var t=!1;if(s&&D.ImagesLoaded()&&(t=!(s=!1)),1!=D.opts.ignoreMouse&&(t=t||D.Mouse.hasEvents()),1!=D.opts.ignoreAnimation)for(var e=0;e<D.Animations.length;e++){var i=D.Animations[e].update(1e3/D.FRAMERATE);t=t||i}\"function\"==typeof D.opts.forceRedraw&&1==D.opts.forceRedraw()&&(t=!0),t&&(n(),D.Mouse.runEvents())},1e3/D.FRAMERATE)},D.stop=function(){D.intervalID&&clearInterval(D.intervalID)},D.Mouse=new function(){this.events=[],this.hasEvents=function(){return 0!=this.events.length},this.onclick=function(t,e){this.events.push({type:\"onclick\",x:t,y:e,run:function(t){t.onclick&&t.onclick()}})},this.onmousemove=function(t,e){this.events.push({type:\"onmousemove\",x:t,y:e,run:function(t){t.onmousemove&&t.onmousemove()}})},this.eventElements=[],this.checkPath=function(t,e){for(var i=0;i<this.events.length;i++){var n=this.events[i];e.isPointInPath&&e.isPointInPath(n.x,n.y)&&(this.eventElements[i]=t)}},this.checkBoundingBox=function(t,e){if(e)for(var i=0;i<this.events.length;i++){var n=this.events[i];e.isPointInBox(n.x,n.y)&&(this.eventElements[i]=t)}},this.runEvents=function(){D.ctx.canvas.style.cursor=\"\";for(var t=0;t<this.events.length;t++)for(var e=this.events[t],i=this.eventElements[t];i;)e.run(i),i=i.parent;this.events=[],this.eventElements=[]}},D}\"undefined\"!=typeof CanvasRenderingContext2D&&(CanvasRenderingContext2D.prototype.drawSvg=function(t,e,i,n,s,a){var r={ignoreMouse:!0,ignoreAnimation:!0,ignoreDimensions:!0,ignoreClear:!0,offsetX:e,offsetY:i,scaleWidth:n,scaleHeight:s};for(var o in a)a.hasOwnProperty(o)&&(r[o]=a[o]);p(this.canvas,t,r)}),p._build=m,t.exports=p}(t={exports:{}},t.exports),t.exports});","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('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","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? 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","var isObject = require('./_is-object');\nvar document = require('./_global').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","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(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) {\n key = keys[j++];\n if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _iterator = require(\"../core-js/symbol/iterator\");\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = require(\"../core-js/symbol\");\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nvar _typeof = typeof _symbol2.default === \"function\" && typeof _iterator2.default === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n} : function (obj) {\n return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};","module.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 * jQuery JavaScript Library v3.5.1\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2020-05-04T22:49Z\n */\n( function( global, factory ) {\n\n\t\"use strict\";\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket #14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n// enough that all such attempts are guarded in a try block.\n\"use strict\";\n\nvar arr = [];\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar flat = arr.flat ? function( array ) {\n\treturn arr.flat.call( array );\n} : function( array ) {\n\treturn arr.concat.apply( [], array );\n};\n\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\nvar isFunction = function isFunction( obj ) {\n\n // Support: Chrome <=57, Firefox <=52\n // In some browsers, typeof returns \"function\" for HTML <object> elements\n // (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n // We don't want to classify *any* DOM node as a function.\n return typeof obj === \"function\" && typeof obj.nodeType !== \"number\";\n };\n\n\nvar isWindow = function isWindow( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t};\n\n\nvar document = window.document;\n\n\n\n\tvar preservedScriptAttributes = {\n\t\ttype: true,\n\t\tsrc: true,\n\t\tnonce: true,\n\t\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, node, doc ) {\n\t\tdoc = doc || document;\n\n\t\tvar i, val,\n\t\t\tscript = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tif ( node ) {\n\t\t\tfor ( i in preservedScriptAttributes ) {\n\n\t\t\t\t// Support: Firefox 64+, Edge 18+\n\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\n\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\n\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\n\t\t\t\t// becomes browsing-context connected.\n\t\t\t\t// See https://github.com/whatwg/html/issues/2369\n\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\n\t\t\t\t// The `node.getAttribute` check was added for the sake of\n\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\n\t\t\t\t// via an object.\n\t\t\t\tval = node[ i ] || node.getAttribute && node.getAttribute( i );\n\t\t\t\tif ( val ) {\n\t\t\t\t\tscript.setAttribute( i, val );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n\n\nfunction toType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\t// Support: Android <=2.3 only (functionish RegExp)\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof obj;\n}\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\n\n\nvar\n\tversion = \"3.5.1\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t};\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teven: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn ( i + 1 ) % 2;\n\t\t} ) );\n\t},\n\n\todd: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn i % 2;\n\t\t} ) );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent Object.prototype pollution\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( name === \"__proto__\" || target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\t\t\t\t\tsrc = target[ name ];\n\n\t\t\t\t\t// Ensure proper type for the source value\n\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\n\t\t\t\t\t\tclone = {};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src;\n\t\t\t\t\t}\n\t\t\t\t\tcopyIsArray = false;\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a provided context; falls back to the global one\n\t// if not specified.\n\tglobalEval: function( code, options, doc ) {\n\t\tDOMEval( code, { nonce: options && options.nonce }, doc );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn flat( ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\nfunction( _i, name ) {\n\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.3.5\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://js.foundation/\n *\n * Date: 2020-03-14\n */\n( function( window ) {\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tnonnativeSelectorCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// Instance methods\n\thasOwn = ( {} ).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpushNative = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\n\t// Use a stripped-down indexOf as it's faster than native\n\t// https://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[ i ] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|\" +\n\t\t\"ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\n\t// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n\tidentifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\n\t\t// \"Attribute values must be CSS identifiers [capture 5]\n\t\t// or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" +\n\t\twhitespace + \"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" +\n\t\twhitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace +\n\t\t\"*\" ),\n\trdescend = new RegExp( whitespace + \"|>\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + identifier + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" +\n\t\t\twhitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" +\n\t\t\twhitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace +\n\t\t\t\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace +\n\t\t\t\"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trhtml = /HTML$/i,\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\" ),\n\tfunescape = function( escape, nonHex ) {\n\t\tvar high = \"0x\" + escape.slice( 1 ) - 0x10000;\n\n\t\treturn nonHex ?\n\n\t\t\t// Strip the backslash prefix from a non-hex escape sequence\n\t\t\tnonHex :\n\n\t\t\t// Replace a hexadecimal escape sequence with the encoded Unicode code point\n\t\t\t// Support: IE <=11+\n\t\t\t// For values outside the Basic Multilingual Plane (BMP), manually construct a\n\t\t\t// surrogate pair\n\t\t\thigh < 0 ?\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// CSS string/identifier serialization\n\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\n\trcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n\tfcssescape = function( ch, asCodePoint ) {\n\t\tif ( asCodePoint ) {\n\n\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\t\tif ( ch === \"\\0\" ) {\n\t\t\t\treturn \"\\uFFFD\";\n\t\t\t}\n\n\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\t\treturn ch.slice( 0, -1 ) + \"\\\\\" +\n\t\t\t\tch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t\t}\n\n\t\t// Other potentially-special ASCII characters get backslash-escaped\n\t\treturn \"\\\\\" + ch;\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t( arr = slice.call( preferredDoc.childNodes ) ),\n\t\tpreferredDoc.childNodes\n\t);\n\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\t// eslint-disable-next-line no-unused-expressions\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpushNative.apply( target, slice.call( els ) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( ( target[ j++ ] = els[ i++ ] ) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\t\tsetDocument( context );\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( ( m = match[ 1 ] ) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( ( elem = context.getElementById( m ) ) ) {\n\n\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && ( elem = newContext.getElementById( m ) ) &&\n\t\t\t\t\t\t\tcontains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[ 2 ] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( ( m = match[ 3 ] ) && support.getElementsByClassName &&\n\t\t\t\t\tcontext.getElementsByClassName ) {\n\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( support.qsa &&\n\t\t\t\t!nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t( !rbuggyQSA || !rbuggyQSA.test( selector ) ) &&\n\n\t\t\t\t// Support: IE 8 only\n\t\t\t\t// Exclude object elements\n\t\t\t\t( nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\" ) ) {\n\n\t\t\t\tnewSelector = selector;\n\t\t\t\tnewContext = context;\n\n\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\n\t\t\t\t// descendant combinators, which is not what we want.\n\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\n\t\t\t\t// list with an ID selector referencing the scope context.\n\t\t\t\t// The technique has to be used as well when a leading combinator is used\n\t\t\t\t// as such selectors are not recognized by querySelectorAll.\n\t\t\t\t// Thanks to Andrew Dupont for this technique.\n\t\t\t\tif ( nodeType === 1 &&\n\t\t\t\t\t( rdescend.test( selector ) || rcombinators.test( selector ) ) ) {\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\n\t\t\t\t\t// We can use :scope instead of the ID hack if the browser\n\t\t\t\t\t// supports it & if we're not changing the context.\n\t\t\t\t\tif ( newContext !== context || !support.scope ) {\n\n\t\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\t\tif ( ( nid = context.getAttribute( \"id\" ) ) ) {\n\t\t\t\t\t\t\tnid = nid.replace( rcssescape, fcssescape );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontext.setAttribute( \"id\", ( nid = expando ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[ i ] = ( nid ? \"#\" + nid : \":scope\" ) + \" \" +\n\t\t\t\t\t\t\ttoSelector( groups[ i ] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\tnonnativeSelectorCache( selector, true );\n\t\t\t\t} finally {\n\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn ( cache[ key + \" \" ] = value );\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement( \"fieldset\" );\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch ( e ) {\n\t\treturn false;\n\t} finally {\n\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split( \"|\" ),\n\t\ti = arr.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[ i ] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\ta.sourceIndex - b.sourceIndex;\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( ( cur = cur.nextSibling ) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn ( name === \"input\" || name === \"button\" ) && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\t/* jshint -W018 */\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction( function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction( function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ ( j = matchIndexes[ i ] ) ] ) {\n\t\t\t\t\tseed[ j ] = !( matches[ j ] = seed[ j ] );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t} );\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\tvar namespace = elem.namespaceURI,\n\t\tdocElem = ( elem.ownerDocument || elem ).documentElement;\n\n\t// Support: IE <=8\n\t// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n\t// https://bugs.jquery.com/ticket/4833\n\treturn !rhtml.test( namespace || docElem && docElem.nodeName || \"HTML\" );\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocElem = document.documentElement;\n\tdocumentIsHTML = !isXML( document );\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( preferredDoc != document &&\n\t\t( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 11, Edge\n\t\tif ( subWindow.addEventListener ) {\n\t\t\tsubWindow.addEventListener( \"unload\", unloadHandler, false );\n\n\t\t// Support: IE 9 - 10 only\n\t\t} else if ( subWindow.attachEvent ) {\n\t\t\tsubWindow.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t// Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\n\t// Safari 4 - 5 only, Opera <=11.6 - 12.x only\n\t// IE/Edge & older browsers don't support the :scope pseudo-class.\n\t// Support: Safari 6.0 only\n\t// Safari 6.0 supports :scope but it's an alias of :root there.\n\tsupport.scope = assert( function( el ) {\n\t\tdocElem.appendChild( el ).appendChild( document.createElement( \"div\" ) );\n\t\treturn typeof el.querySelectorAll !== \"undefined\" &&\n\t\t\t!el.querySelectorAll( \":scope fieldset div\" ).length;\n\t} );\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert( function( el ) {\n\t\tel.className = \"i\";\n\t\treturn !el.getAttribute( \"className\" );\n\t} );\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert( function( el ) {\n\t\tel.appendChild( document.createComment( \"\" ) );\n\t\treturn !el.getElementsByTagName( \"*\" ).length;\n\t} );\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert( function( el ) {\n\t\tdocElem.appendChild( el ).id = expando;\n\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\n\t} );\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute( \"id\" ) === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode( \"id\" );\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( ( elem = elems[ i++ ] ) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[ \"TAG\" ] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[ \"CLASS\" ] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See https://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) {\n\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert( function( el ) {\n\n\t\t\tvar input;\n\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// https://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( el ).innerHTML = \"<a id='\" + expando + \"'></a>\" +\n\t\t\t\t\"<select id='\" + expando + \"-\\r\\\\' msallowcapture=''>\" +\n\t\t\t\t\"<option selected=''></option></select>\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( el.querySelectorAll( \"[msallowcapture^='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !el.querySelectorAll( \"[selected]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"~=\" );\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 15 - 18+\n\t\t\t// IE 11/Edge don't find elements on a `[name='']` query in some cases.\n\t\t\t// Adding a temporary attribute to the document before the selection works\n\t\t\t// around the issue.\n\t\t\t// Interestingly, IE 10 & older don't seem to have the issue.\n\t\t\tinput = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"name\", \"\" );\n\t\t\tel.appendChild( input );\n\t\t\tif ( !el.querySelectorAll( \"[name='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\n\t\t\t\t\twhitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !el.querySelectorAll( \":checked\" ).length ) {\n\t\t\t\trbuggyQSA.push( \":checked\" );\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push( \".#.+[+~]\" );\n\t\t\t}\n\n\t\t\t// Support: Firefox <=3.6 - 5 only\n\t\t\t// Old Firefox doesn't throw on a badly-escaped identifier.\n\t\t\tel.querySelectorAll( \"\\\\\\f\" );\n\t\t\trbuggyQSA.push( \"[\\\\r\\\\n\\\\f]\" );\n\t\t} );\n\n\t\tassert( function( el ) {\n\t\t\tel.innerHTML = \"<a href='' disabled='disabled'></a>\" +\n\t\t\t\t\"<select disabled='disabled'><option/></select>\";\n\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( el.querySelectorAll( \"[name=d]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( el.querySelectorAll( \":enabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: IE9-11+\n\t\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t\tdocElem.appendChild( el ).disabled = true;\n\t\t\tif ( el.querySelectorAll( \":disabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: Opera 10 - 11 only\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tel.querySelectorAll( \"*,:x\" );\n\t\t\trbuggyQSA.push( \",.*:\" );\n\t\t} );\n\t}\n\n\tif ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector ) ) ) ) {\n\n\t\tassert( function( el ) {\n\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( el, \"*\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( el, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t} );\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( \"|\" ) );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( \"|\" ) );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully self-exclusive\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t) );\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( ( b = b.parentNode ) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tcompare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( a == document || a.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, a ) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( b == document || b.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, b ) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\treturn a == document ? -1 :\n\t\t\t\tb == document ? 1 :\n\t\t\t\t/* eslint-enable eqeqeq */\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[ i ] === bp[ i ] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[ i ], bp[ i ] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\tap[ i ] == preferredDoc ? -1 :\n\t\t\tbp[ i ] == preferredDoc ? 1 :\n\t\t\t/* eslint-enable eqeqeq */\n\t\t\t0;\n\t};\n\n\treturn document;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\tsetDocument( elem );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t!nonnativeSelectorCache[ expr + \" \" ] &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\n\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t// fragment in IE 9\n\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\tnonnativeSelectorCache( expr, true );\n\t\t}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( context.ownerDocument || context ) != document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( elem.ownerDocument || elem ) != document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.escape = function( sel ) {\n\treturn ( sel + \"\" ).replace( rcssescape, fcssescape );\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( ( node = elem[ i++ ] ) ) {\n\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[ 1 ] = match[ 1 ].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[ 3 ] = ( match[ 3 ] || match[ 4 ] ||\n\t\t\t\tmatch[ 5 ] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[ 2 ] === \"~=\" ) {\n\t\t\t\tmatch[ 3 ] = \" \" + match[ 3 ] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[ 1 ] = match[ 1 ].toLowerCase();\n\n\t\t\tif ( match[ 1 ].slice( 0, 3 ) === \"nth\" ) {\n\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[ 3 ] ) {\n\t\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[ 4 ] = +( match[ 4 ] ?\n\t\t\t\t\tmatch[ 5 ] + ( match[ 6 ] || 1 ) :\n\t\t\t\t\t2 * ( match[ 3 ] === \"even\" || match[ 3 ] === \"odd\" ) );\n\t\t\t\tmatch[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === \"odd\" );\n\n\t\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[ 3 ] ) {\n\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[ 6 ] && match[ 2 ];\n\n\t\t\tif ( matchExpr[ \"CHILD\" ].test( match[ 0 ] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[ 3 ] ) {\n\t\t\t\tmatch[ 2 ] = match[ 4 ] || match[ 5 ] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t( excess = tokenize( unquoted, true ) ) &&\n\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t( excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length ) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[ 0 ] = match[ 0 ].slice( 0, excess );\n\t\t\t\tmatch[ 2 ] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() {\n\t\t\t\t\treturn true;\n\t\t\t\t} :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t( pattern = new RegExp( \"(^|\" + whitespace +\n\t\t\t\t\t\")\" + className + \"(\" + whitespace + \"|$)\" ) ) && classCache(\n\t\t\t\t\t\tclassName, function( elem ) {\n\t\t\t\t\t\t\treturn pattern.test(\n\t\t\t\t\t\t\t\ttypeof elem.className === \"string\" && elem.className ||\n\t\t\t\t\t\t\t\ttypeof elem.getAttribute !== \"undefined\" &&\n\t\t\t\t\t\t\t\t\telem.getAttribute( \"class\" ) ||\n\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t);\n\t\t\t\t} );\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\t/* eslint-disable max-len */\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t\t/* eslint-enable max-len */\n\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, _argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tvar cache, uniqueCache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( ( node = node[ dir ] ) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\n\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\tnode = parent;\n\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\n\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction( function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[ i ] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[ i ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t} ) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction( function( selector ) {\n\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction( function( seed, matches, _context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\t\t\t\t\tseed[ i ] = !( matches[ i ] = elem );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} ) :\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tinput[ 0 ] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[ 0 ] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t} ),\n\n\t\t\"has\": markFunction( function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t} ),\n\n\t\t\"contains\": markFunction( function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t} ),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test( lang || \"\" ) ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( ( elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute( \"xml:lang\" ) || elem.getAttribute( \"lang\" ) ) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( ( elem = elem.parentNode ) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t} ),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement &&\n\t\t\t\t( !document.hasFocus || document.hasFocus() ) &&\n\t\t\t\t!!( elem.type || elem.href || ~elem.tabIndex );\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": createDisabledPseudo( false ),\n\t\t\"disabled\": createDisabledPseudo( true ),\n\n\t\t\"checked\": function( elem ) {\n\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn ( nodeName === \"input\" && !!elem.checked ) ||\n\t\t\t\t( nodeName === \"option\" && !!elem.selected );\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[ \"empty\" ]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( ( attr = elem.getAttribute( \"type\" ) ) == null ||\n\t\t\t\t\tattr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo( function() {\n\t\t\treturn [ 0 ];\n\t\t} ),\n\n\t\t\"last\": createPositionalPseudo( function( _matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t} ),\n\n\t\t\"eq\": createPositionalPseudo( function( _matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t} ),\n\n\t\t\"even\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"odd\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"lt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ?\n\t\t\t\targument + length :\n\t\t\t\targument > length ?\n\t\t\t\t\tlength :\n\t\t\t\t\targument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"gt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} )\n\t}\n};\n\nExpr.pseudos[ \"nth\" ] = Expr.pseudos[ \"eq\" ];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || ( match = rcomma.exec( soFar ) ) ) {\n\t\t\tif ( match ) {\n\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[ 0 ].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( ( tokens = [] ) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( ( match = rcombinators.exec( soFar ) ) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push( {\n\t\t\t\tvalue: matched,\n\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[ 0 ].replace( rtrim, \" \" )\n\t\t\t} );\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] ||\n\t\t\t\t( match = preFilters[ type ]( match ) ) ) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push( {\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t} );\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[ i ].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, uniqueCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\n\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\tuniqueCache = outerCache[ elem.uniqueID ] ||\n\t\t\t\t\t\t\t( outerCache[ elem.uniqueID ] = {} );\n\n\t\t\t\t\t\tif ( skip && skip === elem.nodeName.toLowerCase() ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( ( oldCache = uniqueCache[ key ] ) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn ( newCache[ 2 ] = oldCache[ 2 ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\tuniqueCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[ i ]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[ 0 ];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[ i ], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction( function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts(\n\t\t\t\tselector || \"*\",\n\t\t\t\tcontext.nodeType ? [ context ] : context,\n\t\t\t\t[]\n\t\t\t),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( ( elem = temp[ i ] ) ) {\n\t\t\t\t\tmatcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) ) {\n\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( ( matcherIn[ i ] = elem ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, ( matcherOut = [] ), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) &&\n\t\t\t\t\t\t( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) {\n\n\t\t\t\t\t\tseed[ temp ] = !( results[ temp ] = elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t} );\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[ 0 ].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[ \" \" ],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t( checkContext = context ).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) {\n\t\t\tmatchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[ j ].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\n\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\ttokens\n\t\t\t\t\t\t.slice( 0, i - 1 )\n\t\t\t\t\t\t.concat( { value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" } )\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[ \"TAG\" ]( \"*\", outermost ),\n\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\n\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\toutermostContext = context == document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: <number>) matching elements by id\n\t\t\tfor ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( !context && elem.ownerDocument != document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( ( matcher = elementMatchers[ j++ ] ) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml ) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( ( elem = !matcher && elem ) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( ( matcher = setMatchers[ j++ ] ) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !( unmatched[ i ] || setMatched[ i ] ) ) {\n\t\t\t\t\t\t\t\tsetMatched[ i ] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[ i ] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache(\n\t\t\tselector,\n\t\t\tmatcherFromGroupMatchers( elementMatchers, setMatchers )\n\t\t);\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( ( selector = compiled.selector || selector ) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[ 0 ] = match[ 0 ].slice( 0 );\n\t\tif ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === \"ID\" &&\n\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {\n\n\t\t\tcontext = ( Expr.find[ \"ID\" ]( token.matches[ 0 ]\n\t\t\t\t.replace( runescape, funescape ), context ) || [] )[ 0 ];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[ \"needsContext\" ].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[ i ];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ ( type = token.type ) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( ( find = Expr.find[ type ] ) ) {\n\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( ( seed = find(\n\t\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext\n\t\t\t\t) ) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split( \"\" ).sort( sortOrder ).join( \"\" ) === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert( function( el ) {\n\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement( \"fieldset\" ) ) & 1;\n} );\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert( function( el ) {\n\tel.innerHTML = \"<a href='#'></a>\";\n\treturn el.firstChild.getAttribute( \"href\" ) === \"#\";\n} ) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert( function( el ) {\n\tel.innerHTML = \"<input/>\";\n\tel.firstChild.setAttribute( \"value\", \"\" );\n\treturn el.firstChild.getAttribute( \"value\" ) === \"\";\n} ) ) {\n\taddHandle( \"value\", function( elem, _name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert( function( el ) {\n\treturn el.getAttribute( \"disabled\" ) == null;\n} ) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\t\tnull;\n\t\t}\n\t} );\n}\n\nreturn Sizzle;\n\n} )( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\njQuery.escapeSelector = Sizzle.escape;\n\n\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\n\n\nfunction nodeName( elem, name ) {\n\n return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\n};\nvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n\n\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\t}\n\n\t// Single element\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\t}\n\n\t// Arraylike of elements (jQuery, arguments, Array)\n\tif ( typeof qualifier !== \"string\" ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t} );\n\t}\n\n\t// Filtered directly for both simple and complex selectors\n\treturn jQuery.filter( qualifier, elements, not );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t}\n\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\treturn elem.nodeType === 1;\n\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i, ret,\n\t\t\tlen = this.length,\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tret = this.pushStack( [] );\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)\n\t// Strict HTML recognition (#11290: must start with <)\n\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there's no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\tif ( elem.contentDocument != null &&\n\n\t\t\t// Support: IE 11+\n\t\t\t// <object> elements with no `data` attribute has an object\n\t\t\t// `contentDocument` with a `null` prototype.\n\t\t\tgetProto( elem.contentDocument ) ) {\n\n\t\t\treturn elem.contentDocument;\n\t\t}\n\n\t\t// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n\t\t// Treat the template element as a regular one in browsers that\n\t\t// don't support it.\n\t\tif ( nodeName( elem, \"template\" ) ) {\n\t\t\telem = elem.content || elem;\n\t\t}\n\n\t\treturn jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = locked || options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && toType( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\nfunction Identity( v ) {\n\treturn v;\n}\nfunction Thrower( ex ) {\n\tthrow ex;\n}\n\nfunction adoptValue( value, resolve, reject, noValue ) {\n\tvar method;\n\n\ttry {\n\n\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\tif ( value && isFunction( ( method = value.promise ) ) ) {\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t// Other thenables\n\t\t} else if ( value && isFunction( ( method = value.then ) ) ) {\n\t\t\tmethod.call( value, resolve, reject );\n\n\t\t// Other non-thenables\n\t\t} else {\n\n\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\n\t\t\t// * true: [ value ].slice( 1 ) => resolve()\n\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\n\t\t}\n\n\t// For Promises/A+, convert exceptions into rejections\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\t// Deferred#then to conditionally suppress rejection.\n\t} catch ( value ) {\n\n\t\t// Support: Android 4.0 only\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\treject.apply( undefined, [ value ] );\n\t}\n}\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\t\"catch\": function( fn ) {\n\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t},\n\n\t\t\t\t// Keep pipe for back-compat\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( _i, tuple ) {\n\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\tvar fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\tif ( isFunction( then ) ) {\n\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.stackTrace );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the stack, in case of exception\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.stackTrace = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// rejected_handlers.disable\n\t\t\t\t\t// fulfilled_handlers.disable\n\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\n\n\t\t\t\t\t// progress_handlers.lock\n\t\t\t\t\ttuples[ 0 ][ 3 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the master Deferred\n\t\t\tmaster = jQuery.Deferred(),\n\n\t\t\t// subordinate callback factory\n\t\t\tupdateFunc = function( i ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\tmaster.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\tif ( remaining <= 1 ) {\n\t\t\tadoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject,\n\t\t\t\t!remaining );\n\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\tif ( master.state() === \"pending\" ||\n\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn master.then();\n\t\t\t}\n\t\t}\n\n\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\twhile ( i-- ) {\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), master.reject );\n\t\t}\n\n\t\treturn master.promise();\n\t}\n} );\n\n\n// These usually indicate a programmer mistake during development,\n// warn about them ASAP rather than swallowing them by default.\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\njQuery.Deferred.exceptionHook = function( error, stack ) {\n\n\t// Support: IE 8 - 9 only\n\t// Console exists when dev tools are open, which can happen at any time\n\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\n\t\twindow.console.warn( \"jQuery.Deferred exception: \" + error.message, error.stack, stack );\n\t}\n};\n\n\n\n\njQuery.readyException = function( error ) {\n\twindow.setTimeout( function() {\n\t\tthrow error;\n\t} );\n};\n\n\n\n\n// The deferred used on DOM ready\nvar readyList = jQuery.Deferred();\n\njQuery.fn.ready = function( fn ) {\n\n\treadyList\n\t\t.then( fn )\n\n\t\t// Wrap jQuery.readyException in a function so that the lookup\n\t\t// happens at the time of error handling instead of callback\n\t\t// registration.\n\t\t.catch( function( error ) {\n\t\t\tjQuery.readyException( error );\n\t\t} );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See #6781\n\treadyWait: 1,\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\t}\n} );\n\njQuery.ready.then = readyList.then;\n\n// The ready event handler and self cleanup method\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\n// Catch cases where $(document).ready() is called\n// after the browser event has already occurred.\n// Support: IE <=9 - 10 only\n// Older IE sometimes signals \"interactive\" too soon\nif ( document.readyState === \"complete\" ||\n\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\twindow.setTimeout( jQuery.ready );\n\n} else {\n\n\t// Use the handy event callback\n\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t// A fallback to window.onload, that will always work\n\twindow.addEventListener( \"load\", completed );\n}\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( toType( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, _key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\tvalue :\n\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( chainable ) {\n\t\treturn elems;\n\t}\n\n\t// Gets\n\tif ( bulk ) {\n\t\treturn fn.call( elems );\n\t}\n\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n};\n\n\n// Matches dashed string for camelizing\nvar rmsPrefix = /^-ms-/,\n\trdashAlpha = /-([a-z])/g;\n\n// Used by camelCase as callback to replace()\nfunction fcamelCase( _all, letter ) {\n\treturn letter.toUpperCase();\n}\n\n// Convert dashed to camelCase; used by the css and data modules\n// Support: IE <=9 - 11, Edge 12 - 15\n// Microsoft forgot to hump their vendor prefix (#9572)\nfunction camelCase( string ) {\n\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n}\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t// - Node\n\t// - Node.ELEMENT_NODE\n\t// - Node.DOCUMENT_NODE\n\t// - Object\n\t// - Any\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tcache: function( owner ) {\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see #8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\t// Always use camelCase key (gh-2257)\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ camelCase( data ) ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\n\t},\n\taccess: function( owner, key, value ) {\n\n\t\t// In cases where either:\n\t\t//\n\t\t// 1. No key was specified\n\t\t// 2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t// 1. The entire cache object\n\t\t// 2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\treturn this.get( owner, key );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t// 1. An object of properties\n\t\t// 2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key !== undefined ) {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( Array.isArray( key ) ) {\n\n\t\t\t\t// If key is an array of keys...\n\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\tkey = key.map( camelCase );\n\t\t\t} else {\n\t\t\t\tkey = camelCase( key );\n\n\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\tkey = key in cache ?\n\t\t\t\t\t[ key ] :\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t}\n\n\t\t\ti = key.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <=35 - 45\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction getData( data ) {\n\tif ( data === \"true\" ) {\n\t\treturn true;\n\t}\n\n\tif ( data === \"false\" ) {\n\t\treturn false;\n\t}\n\n\tif ( data === \"null\" ) {\n\t\treturn null;\n\t}\n\n\t// Only convert to a number if it doesn't change the string\n\tif ( data === +data + \"\" ) {\n\t\treturn +data;\n\t}\n\n\tif ( rbrace.test( data ) ) {\n\t\treturn JSON.parse( data );\n\t}\n\n\treturn data;\n}\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = getData( data );\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE 11 only\n\t\t\t\t\t\t// The attrs elements can be null (#14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// The key will always be camelCased in Data\n\t\t\t\tdata = dataUser.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each( function() {\n\n\t\t\t\t// We always store the camelCased key\n\t\t\t\tdataUser.set( this, key, value );\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || Array.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar documentElement = document.documentElement;\n\n\n\n\tvar isAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem );\n\t\t},\n\t\tcomposed = { composed: true };\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n\t// Check attachment across shadow DOM boundaries when possible (gh-3504)\n\t// Support: iOS 10.0-10.2 only\n\t// Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n\t// leading to errors. We need to check for `getRootNode`.\n\tif ( documentElement.getRootNode ) {\n\t\tisAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem ) ||\n\t\t\t\telem.getRootNode( composed ) === elem.ownerDocument;\n\t\t};\n\t}\nvar isHiddenWithinTree = function( elem, el ) {\n\n\t\t// isHiddenWithinTree might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\n\t\t// Inline style trumps all\n\t\treturn elem.style.display === \"none\" ||\n\t\t\telem.style.display === \"\" &&\n\n\t\t\t// Otherwise, check computed style\n\t\t\t// Support: Firefox <=43 - 45\n\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\n\t\t\t// in the document.\n\t\t\tisAttached( elem ) &&\n\n\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\n\t};\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted, scale,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() {\n\t\t\t\treturn tween.cur();\n\t\t\t} :\n\t\t\tfunction() {\n\t\t\t\treturn jQuery.css( elem, prop, \"\" );\n\t\t\t},\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = elem.nodeType &&\n\t\t\t( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Support: Firefox <=54\n\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n\t\tinitial = initial / 2;\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\twhile ( maxIterations-- ) {\n\n\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\n\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\t\t\tif ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {\n\t\t\t\tmaxIterations = 0;\n\t\t\t}\n\t\t\tinitialInUnit = initialInUnit / scale;\n\n\t\t}\n\n\t\tinitialInUnit = initialInUnit * 2;\n\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\n\n\nvar defaultDisplayMap = {};\n\nfunction getDefaultDisplay( elem ) {\n\tvar temp,\n\t\tdoc = elem.ownerDocument,\n\t\tnodeName = elem.nodeName,\n\t\tdisplay = defaultDisplayMap[ nodeName ];\n\n\tif ( display ) {\n\t\treturn display;\n\t}\n\n\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\n\tdisplay = jQuery.css( temp, \"display\" );\n\n\ttemp.parentNode.removeChild( temp );\n\n\tif ( display === \"none\" ) {\n\t\tdisplay = \"block\";\n\t}\n\tdefaultDisplayMap[ nodeName ] = display;\n\n\treturn display;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\t// Determine new display value for elements that need to change\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n\t\t\t// check is required in this first loop unless we have a nonempty display value (either\n\t\t\t// inline or about-to-be-restored)\n\t\t\tif ( display === \"none\" ) {\n\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\n\t\t\t\tif ( !values[ index ] ) {\n\t\t\t\t\telem.style.display = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\n\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( display !== \"none\" ) {\n\t\t\t\tvalues[ index ] = \"none\";\n\n\t\t\t\t// Remember what we're overwriting\n\t\t\t\tdataPriv.set( elem, \"display\", display );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of the elements in a second loop to avoid constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\tif ( values[ index ] != null ) {\n\t\t\telements[ index ].style.display = values[ index ];\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend( {\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tif ( isHiddenWithinTree( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t} );\n\t}\n} );\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i );\n\nvar rscriptType = ( /^$|^module$|\\/(?:java|ecma)script/i );\n\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Android 4.0 - 4.3 only\n\t// Check state lost if the name is set (#11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (#14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Android <=4.1 only\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE <=11 only\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"<textarea>x</textarea>\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n\n\t// Support: IE <=9 only\n\t// IE <=9 replaces <option> tags with their contents when inserted outside of\n\t// the select element.\n\tdiv.innerHTML = \"<option></option>\";\n\tsupport.option = !!div.lastChild;\n} )();\n\n\n// We have to close these tags to support XHTML (#13200)\nvar wrapMap = {\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting <tbody> or other required elements.\n\tthead: [ 1, \"<table>\", \"</table>\" ],\n\tcol: [ 2, \"<table><colgroup>\", \"</colgroup></table>\" ],\n\ttr: [ 2, \"<table><tbody>\", \"</tbody></table>\" ],\n\ttd: [ 3, \"<table><tbody><tr>\", \"</tr></tbody></table>\" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n// Support: IE <=9 only\nif ( !support.option ) {\n\twrapMap.optgroup = wrapMap.option = [ 1, \"<select multiple='multiple'>\", \"</select>\" ];\n}\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (#15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, attached, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( toType( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (#12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tattached = isAttached( elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( attached ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\nvar\n\trkeyEvent = /^key/,\n\trmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,\n\trtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\n// Support: IE <=9 - 11+\n// focus() and blur() are asynchronous, except when they are no-op.\n// So expect focus to be synchronous when the element is already active,\n// and blur to be synchronous when the element is not already active.\n// (focus and blur are always synchronous in other supported browsers,\n// this just defines when we can count on it).\nfunction expectSync( elem, type ) {\n\treturn ( elem === safeActiveElement() ) === ( type === \"focus\" );\n}\n\n// Support: IE <=9 only\n// Accessing document.activeElement can throw unexpectedly\n// https://bugs.jquery.com/ticket/13393\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Only attach events to objects that accept data\n\t\tif ( !acceptData( elem ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement, selector );\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = Object.create( null );\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\n\t\t\t// Make a writable jQuery.Event from the native event object\n\t\t\tevent = jQuery.event.fix( nativeEvent ),\n\n\t\t\thandlers = (\n\t\t\t\t\tdataPriv.get( this, \"events\" ) || Object.create( null )\n\t\t\t\t)[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// If the event is namespaced, then each handler is only invoked if it is\n\t\t\t\t// specially universal or its namespaces are a superset of the event's.\n\t\t\t\tif ( !event.rnamespace || handleObj.namespace === false ||\n\t\t\t\t\tevent.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\tif ( delegateCount &&\n\n\t\t\t// Support: IE <=9\n\t\t\t// Black-hole SVG <use> instance trees (trac-13180)\n\t\t\tcur.nodeType &&\n\n\t\t\t// Support: Firefox <=42\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t// Support: IE 11 only\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (#13208)\n\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\tmatchedSelectors = {};\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tcur = this;\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\taddProp: function( name, hook ) {\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget: isFunction( hook ) ?\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t}\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\tset: function( value ) {\n\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\tfix: function( originalEvent ) {\n\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\toriginalEvent :\n\t\t\tnew jQuery.Event( originalEvent );\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tclick: {\n\n\t\t\t// Utilize native event to ensure correct state for checkable inputs\n\t\t\tsetup: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Claim the first handler\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\t// dataPriv.set( el, \"click\", ... )\n\t\t\t\t\tleverageNative( el, \"click\", returnTrue );\n\t\t\t\t}\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\ttrigger: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Force setup before triggering a click\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\tleverageNative( el, \"click\" );\n\t\t\t\t}\n\n\t\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, suppress native .click() on links\n\t\t\t// Also prevent it if we're currently inside a leveraged native-event stack\n\t\t\t_default: function( event ) {\n\t\t\t\tvar target = event.target;\n\t\t\t\treturn rcheckableType.test( target.type ) &&\n\t\t\t\t\ttarget.click && nodeName( target, \"input\" ) &&\n\t\t\t\t\tdataPriv.get( target, \"click\" ) ||\n\t\t\t\t\tnodeName( target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Ensure the presence of an event listener that handles manually-triggered\n// synthetic events by interrupting progress until reinvoked in response to\n// *native* events that it fires directly, ensuring that state changes have\n// already occurred before other listeners are invoked.\nfunction leverageNative( el, type, expectSync ) {\n\n\t// Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n\tif ( !expectSync ) {\n\t\tif ( dataPriv.get( el, type ) === undefined ) {\n\t\t\tjQuery.event.add( el, type, returnTrue );\n\t\t}\n\t\treturn;\n\t}\n\n\t// Register the controller as a special universal handler for all event namespaces\n\tdataPriv.set( el, type, false );\n\tjQuery.event.add( el, type, {\n\t\tnamespace: false,\n\t\thandler: function( event ) {\n\t\t\tvar notAsync, result,\n\t\t\t\tsaved = dataPriv.get( this, type );\n\n\t\t\tif ( ( event.isTrigger & 1 ) && this[ type ] ) {\n\n\t\t\t\t// Interrupt processing of the outer synthetic .trigger()ed event\n\t\t\t\t// Saved data should be false in such cases, but might be a leftover capture object\n\t\t\t\t// from an async native handler (gh-4350)\n\t\t\t\tif ( !saved.length ) {\n\n\t\t\t\t\t// Store arguments for use when handling the inner native event\n\t\t\t\t\t// There will always be at least one argument (an event object), so this array\n\t\t\t\t\t// will not be confused with a leftover capture object.\n\t\t\t\t\tsaved = slice.call( arguments );\n\t\t\t\t\tdataPriv.set( this, type, saved );\n\n\t\t\t\t\t// Trigger the native event and capture its result\n\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t// focus() and blur() are asynchronous\n\t\t\t\t\tnotAsync = expectSync( this, type );\n\t\t\t\t\tthis[ type ]();\n\t\t\t\t\tresult = dataPriv.get( this, type );\n\t\t\t\t\tif ( saved !== result || notAsync ) {\n\t\t\t\t\t\tdataPriv.set( this, type, false );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult = {};\n\t\t\t\t\t}\n\t\t\t\t\tif ( saved !== result ) {\n\n\t\t\t\t\t\t// Cancel the outer synthetic event\n\t\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\treturn result.value;\n\t\t\t\t\t}\n\n\t\t\t\t// If this is an inner synthetic event for an event with a bubbling surrogate\n\t\t\t\t// (focus or blur), assume that the surrogate already propagated from triggering the\n\t\t\t\t// native event and prevent that from happening again here.\n\t\t\t\t// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n\t\t\t\t// bubbling surrogate propagates *after* the non-bubbling base), but that seems\n\t\t\t\t// less bad than duplication.\n\t\t\t\t} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t// If this is a native event triggered above, everything is now in order\n\t\t\t// Fire an inner synthetic event with the original arguments\n\t\t\t} else if ( saved.length ) {\n\n\t\t\t\t// ...and capture the result\n\t\t\t\tdataPriv.set( this, type, {\n\t\t\t\t\tvalue: jQuery.event.trigger(\n\n\t\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t\t// Extend with the prototype to reset the above stopImmediatePropagation()\n\t\t\t\t\t\tjQuery.extend( saved[ 0 ], jQuery.Event.prototype ),\n\t\t\t\t\t\tsaved.slice( 1 ),\n\t\t\t\t\t\tthis\n\t\t\t\t\t)\n\t\t\t\t} );\n\n\t\t\t\t// Abort handling of the native event\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t}\n\t\t}\n\t} );\n}\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android <=2.3 only\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t\t// Create target properties\n\t\t// Support: Safari <=6 - 7 only\n\t\t// Target should not be a text node (#504, #13143)\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\t\t\tsrc.target.parentNode :\n\t\t\tsrc.target;\n\n\t\tthis.currentTarget = src.currentTarget;\n\t\tthis.relatedTarget = src.relatedTarget;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || Date.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Includes all common event props including KeyEvent and MouseEvent specific props\njQuery.each( {\n\taltKey: true,\n\tbubbles: true,\n\tcancelable: true,\n\tchangedTouches: true,\n\tctrlKey: true,\n\tdetail: true,\n\teventPhase: true,\n\tmetaKey: true,\n\tpageX: true,\n\tpageY: true,\n\tshiftKey: true,\n\tview: true,\n\t\"char\": true,\n\tcode: true,\n\tcharCode: true,\n\tkey: true,\n\tkeyCode: true,\n\tbutton: true,\n\tbuttons: true,\n\tclientX: true,\n\tclientY: true,\n\toffsetX: true,\n\toffsetY: true,\n\tpointerId: true,\n\tpointerType: true,\n\tscreenX: true,\n\tscreenY: true,\n\ttargetTouches: true,\n\ttoElement: true,\n\ttouches: true,\n\n\twhich: function( event ) {\n\t\tvar button = event.button;\n\n\t\t// Add which for key events\n\t\tif ( event.which == null && rkeyEvent.test( event.type ) ) {\n\t\t\treturn event.charCode != null ? event.charCode : event.keyCode;\n\t\t}\n\n\t\t// Add which for click: 1 === left; 2 === middle; 3 === right\n\t\tif ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) {\n\t\t\tif ( button & 1 ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\tif ( button & 2 ) {\n\t\t\t\treturn 3;\n\t\t\t}\n\n\t\t\tif ( button & 4 ) {\n\t\t\t\treturn 2;\n\t\t\t}\n\n\t\t\treturn 0;\n\t\t}\n\n\t\treturn event.which;\n\t}\n}, jQuery.event.addProp );\n\njQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( type, delegateType ) {\n\tjQuery.event.special[ type ] = {\n\n\t\t// Utilize native event if possible so blur/focus sequence is correct\n\t\tsetup: function() {\n\n\t\t\t// Claim the first handler\n\t\t\t// dataPriv.set( this, \"focus\", ... )\n\t\t\t// dataPriv.set( this, \"blur\", ... )\n\t\t\tleverageNative( this, type, expectSync );\n\n\t\t\t// Return false to allow normal processing in the caller\n\t\t\treturn false;\n\t\t},\n\t\ttrigger: function() {\n\n\t\t\t// Force setup before trigger\n\t\t\tleverageNative( this, type );\n\n\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\treturn true;\n\t\t},\n\n\t\tdelegateType: delegateType\n\t};\n} );\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\n\t// Support: IE <=10 - 11, Edge 12 - 13 only\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /<script|<style|<link/i,\n\n\t// checked=\"checked\" or checked\n\trchecked = /checked\\s*(?:[^=]|=\\s*.checked.)/i,\n\trcleanScript = /^\\s*<!(?:\\[CDATA\\[|--)|(?:\\]\\]|--)>\\s*$/g;\n\n// Prefer a tbody over its parent table for containing new rows\nfunction manipulationTarget( elem, content ) {\n\tif ( nodeName( elem, \"table\" ) &&\n\t\tnodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ) {\n\n\t\treturn jQuery( elem ).children( \"tbody\" )[ 0 ] || elem;\n\t}\n\n\treturn elem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tif ( ( elem.type || \"\" ).slice( 0, 5 ) === \"true/\" ) {\n\t\telem.type = elem.type.slice( 5 );\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.get( src );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdataPriv.remove( dest, \"handle events\" );\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = flat( args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tvalueIsFunction = isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( valueIsFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (#8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Reenable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src && ( node.type || \"\" ).toLowerCase() !== \"module\" ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl && !node.noModule ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src, {\n\t\t\t\t\t\t\t\t\tnonce: node.nonce || node.getAttribute( \"nonce\" )\n\t\t\t\t\t\t\t\t}, doc );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), node, doc );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && isAttached( node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html;\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = isAttached( elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\nvar getStyles = function( elem ) {\n\n\t\t// Support: IE <=11 only, Firefox <=30 (#15098, #14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tvar view = elem.ownerDocument.defaultView;\n\n\t\tif ( !view || !view.opener ) {\n\t\t\tview = window;\n\t\t}\n\n\t\treturn view.getComputedStyle( elem );\n\t};\n\nvar swap = function( elem, options, callback ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.call( elem );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\nvar rboxStyle = new RegExp( cssExpand.join( \"|\" ), \"i\" );\n\n\n\n( function() {\n\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\t// so they're executed at the same time to save the second computation.\n\tfunction computeStyleTests() {\n\n\t\t// This is a singleton, we need to execute it only once\n\t\tif ( !div ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontainer.style.cssText = \"position:absolute;left:-11111px;width:60px;\" +\n\t\t\t\"margin-top:1px;padding:0;border:0\";\n\t\tdiv.style.cssText =\n\t\t\t\"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" +\n\t\t\t\"margin:auto;border:1px;padding:1px;\" +\n\t\t\t\"width:60%;top:1%\";\n\t\tdocumentElement.appendChild( container ).appendChild( div );\n\n\t\tvar divStyle = window.getComputedStyle( div );\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\n\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\t\treliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;\n\n\t\t// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n\t\t// Some styles come back with percentage values, even though they shouldn't\n\t\tdiv.style.right = \"60%\";\n\t\tpixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;\n\n\t\t// Support: IE 9 - 11 only\n\t\t// Detect misreporting of content dimensions for box-sizing:border-box elements\n\t\tboxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;\n\n\t\t// Support: IE 9 only\n\t\t// Detect overflow:scroll screwiness (gh-3699)\n\t\t// Support: Chrome <=64\n\t\t// Don't get tricked when zoom affects offsetWidth (gh-4029)\n\t\tdiv.style.position = \"absolute\";\n\t\tscrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;\n\n\t\tdocumentElement.removeChild( container );\n\n\t\t// Nullify the div so it wouldn't be stored in the memory and\n\t\t// it will also be a sign that checks already performed\n\t\tdiv = null;\n\t}\n\n\tfunction roundPixelMeasures( measure ) {\n\t\treturn Math.round( parseFloat( measure ) );\n\t}\n\n\tvar pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,\n\t\treliableTrDimensionsVal, reliableMarginLeftVal,\n\t\tcontainer = document.createElement( \"div\" ),\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !div.style ) {\n\t\treturn;\n\t}\n\n\t// Support: IE <=9 - 11 only\n\t// Style of cloned element affects source element cloned (#8908)\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\tjQuery.extend( support, {\n\t\tboxSizingReliable: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\t\tpixelBoxStyles: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelBoxStylesVal;\n\t\t},\n\t\tpixelPosition: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelPositionVal;\n\t\t},\n\t\treliableMarginLeft: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn reliableMarginLeftVal;\n\t\t},\n\t\tscrollboxSize: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn scrollboxSizeVal;\n\t\t},\n\n\t\t// Support: IE 9 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Behavior in IE 9 is more subtle than in newer versions & it passes\n\t\t// some versions of this test; make sure not to make it pass there!\n\t\treliableTrDimensions: function() {\n\t\t\tvar table, tr, trChild, trStyle;\n\t\t\tif ( reliableTrDimensionsVal == null ) {\n\t\t\t\ttable = document.createElement( \"table\" );\n\t\t\t\ttr = document.createElement( \"tr\" );\n\t\t\t\ttrChild = document.createElement( \"div\" );\n\n\t\t\t\ttable.style.cssText = \"position:absolute;left:-11111px\";\n\t\t\t\ttr.style.height = \"1px\";\n\t\t\t\ttrChild.style.height = \"9px\";\n\n\t\t\t\tdocumentElement\n\t\t\t\t\t.appendChild( table )\n\t\t\t\t\t.appendChild( tr )\n\t\t\t\t\t.appendChild( trChild );\n\n\t\t\t\ttrStyle = window.getComputedStyle( tr );\n\t\t\t\treliableTrDimensionsVal = parseInt( trStyle.height ) > 3;\n\n\t\t\t\tdocumentElement.removeChild( table );\n\t\t\t}\n\t\t\treturn reliableTrDimensionsVal;\n\t\t}\n\t} );\n} )();\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\n\t\t// Support: Firefox 51+\n\t\t// Retrieving style before computed somehow\n\t\t// fixes an issue with getting wrong values\n\t\t// on detached elements\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\n\t// getPropertyValue is needed for:\n\t// .css('filter') (IE 9 only, #12537)\n\t// .css('--customProperty) (#3144)\n\tif ( computed ) {\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\tif ( ret === \"\" && !isAttached( elem ) ) {\n\t\t\tret = jQuery.style( elem, name );\n\t\t}\n\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t// Android Browser returns percentage for some values,\n\t\t// but width seems to be reliably pixels.\n\t\t// This is against the CSSOM draft spec:\n\t\t// https://drafts.csswg.org/cssom/#resolved-values\n\t\tif ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\twidth = style.width;\n\t\t\tminWidth = style.minWidth;\n\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\tret = computed.width;\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.width = width;\n\t\t\tstyle.minWidth = minWidth;\n\t\t\tstyle.maxWidth = maxWidth;\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\n\t\t// Support: IE <=9 - 11 only\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tif ( conditionFn() ) {\n\n\t\t\t\t// Hook not needed (or it's not possible to use it due\n\t\t\t\t// to missing dependency), remove it.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\nvar cssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\n\temptyStyle = document.createElement( \"div\" ).style,\n\tvendorProps = {};\n\n// Return a vendor-prefixed property or undefined\nfunction vendorPropName( name ) {\n\n\t// Check for vendor prefixed names\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\t}\n}\n\n// Return a potentially-mapped jQuery.cssProps or vendor prefixed property\nfunction finalPropName( name ) {\n\tvar final = jQuery.cssProps[ name ] || vendorProps[ name ];\n\n\tif ( final ) {\n\t\treturn final;\n\t}\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\n\treturn vendorProps[ name ] = vendorPropName( name ) || name;\n}\n\n\nvar\n\n\t// Swappable if display is none or starts with table\n\t// except \"table\", \"table-cell\", or \"table-caption\"\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\trcustomProp = /^--/,\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t};\n\nfunction setPositiveNumber( _elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {\n\tvar i = dimension === \"width\" ? 1 : 0,\n\t\textra = 0,\n\t\tdelta = 0;\n\n\t// Adjustment may not be necessary\n\tif ( box === ( isBorderBox ? \"border\" : \"content\" ) ) {\n\t\treturn 0;\n\t}\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin\n\t\tif ( box === \"margin\" ) {\n\t\t\tdelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\t\tif ( !isBorderBox ) {\n\n\t\t\t// Add padding\n\t\t\tdelta += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// For \"border\" or \"margin\", add border\n\t\t\tif ( box !== \"padding\" ) {\n\t\t\t\tdelta += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\n\t\t\t// But still keep track of it otherwise\n\t\t\t} else {\n\t\t\t\textra += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\n\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n\t\t// \"padding\" or \"margin\"\n\t\t} else {\n\n\t\t\t// For \"content\", subtract padding\n\t\t\tif ( box === \"content\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// For \"content\" or \"padding\", subtract border\n\t\t\tif ( box !== \"margin\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Account for positive content-box scroll gutter when requested by providing computedVal\n\tif ( !isBorderBox && computedVal >= 0 ) {\n\n\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n\t\t// Assuming integer scroll gutter, subtract the rest and round down\n\t\tdelta += Math.max( 0, Math.ceil(\n\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\tcomputedVal -\n\t\t\tdelta -\n\t\t\textra -\n\t\t\t0.5\n\n\t\t// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n\t\t// Use an explicit zero to avoid NaN (gh-3964)\n\t\t) ) || 0;\n\t}\n\n\treturn delta;\n}\n\nfunction getWidthOrHeight( elem, dimension, extra ) {\n\n\t// Start with computed style\n\tvar styles = getStyles( elem ),\n\n\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n\t\t// Fake content-box until we know it's needed to know the true value.\n\t\tboxSizingNeeded = !support.boxSizingReliable() || extra,\n\t\tisBorderBox = boxSizingNeeded &&\n\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\tvalueIsBorderBox = isBorderBox,\n\n\t\tval = curCSS( elem, dimension, styles ),\n\t\toffsetProp = \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );\n\n\t// Support: Firefox <=54\n\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\n\tif ( rnumnonpx.test( val ) ) {\n\t\tif ( !extra ) {\n\t\t\treturn val;\n\t\t}\n\t\tval = \"auto\";\n\t}\n\n\n\t// Support: IE 9 - 11 only\n\t// Use offsetWidth/offsetHeight for when box sizing is unreliable.\n\t// In those cases, the computed value can be trusted to be border-box.\n\tif ( ( !support.boxSizingReliable() && isBorderBox ||\n\n\t\t// Support: IE 10 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Interestingly, in some cases IE 9 doesn't suffer from this issue.\n\t\t!support.reliableTrDimensions() && nodeName( elem, \"tr\" ) ||\n\n\t\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\n\t\t// This happens for inline elements with no explicit setting (gh-3571)\n\t\tval === \"auto\" ||\n\n\t\t// Support: Android <=4.1 - 4.3 only\n\t\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) &&\n\n\t\t// Make sure the element is visible & connected\n\t\telem.getClientRects().length ) {\n\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t\t// Where available, offsetWidth/offsetHeight approximate border box dimensions.\n\t\t// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n\t\t// retrieved value as a content box dimension.\n\t\tvalueIsBorderBox = offsetProp in elem;\n\t\tif ( valueIsBorderBox ) {\n\t\t\tval = elem[ offsetProp ];\n\t\t}\n\t}\n\n\t// Normalize \"\" and auto\n\tval = parseFloat( val ) || 0;\n\n\t// Adjust for the element's box model\n\treturn ( val +\n\t\tboxModelAdjustment(\n\t\t\telem,\n\t\t\tdimension,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles,\n\n\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\n\t\t\tval\n\t\t)\n\t) + \"px\";\n}\n\njQuery.extend( {\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\t\"animationIterationCount\": true,\n\t\t\"columnCount\": true,\n\t\t\"fillOpacity\": true,\n\t\t\"flexGrow\": true,\n\t\t\"flexShrink\": true,\n\t\t\"fontWeight\": true,\n\t\t\"gridArea\": true,\n\t\t\"gridColumn\": true,\n\t\t\"gridColumnEnd\": true,\n\t\t\"gridColumnStart\": true,\n\t\t\"gridRow\": true,\n\t\t\"gridRowEnd\": true,\n\t\t\"gridRowStart\": true,\n\t\t\"lineHeight\": true,\n\t\t\"opacity\": true,\n\t\t\"order\": true,\n\t\t\"orphans\": true,\n\t\t\"widows\": true,\n\t\t\"zIndex\": true,\n\t\t\"zoom\": true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name ),\n\t\t\tstyle = elem.style;\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to query the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (#7345)\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug #9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set (#7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\t\t\t// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n\t\t\t// \"px\" to a few hardcoded values.\n\t\t\tif ( type === \"number\" && !isCustomProp ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\t\t\t}\n\n\t\t\t// background-* props affect original clone's values\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tif ( isCustomProp ) {\n\t\t\t\t\tstyle.setProperty( name, value );\n\t\t\t\t} else {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name );\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to modify the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t}\n\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ \"height\", \"width\" ], function( _i, dimension ) {\n\tjQuery.cssHooks[ dimension ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\n\n\t\t\t\t\t// Support: Safari 8+\n\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\n\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\n\t\t\t\t\t// Support: IE <=11 only\n\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\n\t\t\t\t\t// in IE throws an error.\n\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\n\t\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\n\t\t\t\t\t\t} ) :\n\t\t\t\t\t\tgetWidthOrHeight( elem, dimension, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = getStyles( elem ),\n\n\t\t\t\t// Only read styles.position if the test has a chance to fail\n\t\t\t\t// to avoid forcing a reflow.\n\t\t\t\tscrollboxSizeBuggy = !support.scrollboxSize() &&\n\t\t\t\t\tstyles.position === \"absolute\",\n\n\t\t\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n\t\t\t\tboxSizingNeeded = scrollboxSizeBuggy || extra,\n\t\t\t\tisBorderBox = boxSizingNeeded &&\n\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\tsubtract = extra ?\n\t\t\t\t\tboxModelAdjustment(\n\t\t\t\t\t\telem,\n\t\t\t\t\t\tdimension,\n\t\t\t\t\t\textra,\n\t\t\t\t\t\tisBorderBox,\n\t\t\t\t\t\tstyles\n\t\t\t\t\t) :\n\t\t\t\t\t0;\n\n\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\n\t\t\t// faking a content-box to get border and padding (gh-3699)\n\t\t\tif ( isBorderBox && scrollboxSizeBuggy ) {\n\t\t\t\tsubtract -= Math.ceil(\n\t\t\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\t\t\tparseFloat( styles[ dimension ] ) -\n\t\t\t\t\tboxModelAdjustment( elem, dimension, \"border\", false, styles ) -\n\t\t\t\t\t0.5\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\telem.style[ dimension ] = value;\n\t\t\t\tvalue = jQuery.css( elem, dimension );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t} )\n\t\t\t\t) + \"px\";\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each( {\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( prefix !== \"margin\" ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n} );\n\njQuery.fn.extend( {\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( Array.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t}\n} );\n\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || jQuery.easing._default;\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\t// Use a property on the element directly when it is not a DOM element,\n\t\t\t// or when there is no matching style property that exists.\n\t\t\tif ( tween.elem.nodeType !== 1 ||\n\t\t\t\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\n\t\t\t// Simple values such as \"10px\" are parsed to Float;\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\n\t\t\t// Use step hook for back compat.\n\t\t\t// Use cssHook if its there.\n\t\t\t// Use .style if available and use plain properties where available.\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.nodeType === 1 && (\n\t\t\t\t\tjQuery.cssHooks[ tween.prop ] ||\n\t\t\t\t\ttween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Support: IE <=9 only\n// Panic based approach to setting things on disconnected nodes\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\tset: function( tween ) {\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t}\n\t}\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t},\n\t_default: \"swing\"\n};\n\njQuery.fx = Tween.prototype.init;\n\n// Back compat <1.8 extension point\njQuery.fx.step = {};\n\n\n\n\nvar\n\tfxNow, inProgress,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trrun = /queueHooks$/;\n\nfunction schedule() {\n\tif ( inProgress ) {\n\t\tif ( document.hidden === false && window.requestAnimationFrame ) {\n\t\t\twindow.requestAnimationFrame( schedule );\n\t\t} else {\n\t\t\twindow.setTimeout( schedule, jQuery.fx.interval );\n\t\t}\n\n\t\tjQuery.fx.tick();\n\t}\n}\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\twindow.setTimeout( function() {\n\t\tfxNow = undefined;\n\t} );\n\treturn ( fxNow = Date.now() );\n}\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\ti = 0,\n\t\tattrs = { height: type };\n\n\t// If we include width, step value is 1 to do all cssExpand values,\n\t// otherwise step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth ? 1 : 0;\n\tfor ( ; i < 4; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ \"*\" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\n\n\t\t\t// We're done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction defaultPrefilter( elem, props, opts ) {\n\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\n\t\tisBox = \"width\" in props || \"height\" in props,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHiddenWithinTree( elem ),\n\t\tdataShow = dataPriv.get( elem, \"fxshow\" );\n\n\t// Queue-skipping animations hijack the fx hooks\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always( function() {\n\n\t\t\t// Ensure the complete handler is called before this completes\n\t\t\tanim.always( function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// Detect show/hide animations\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.test( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\n\t\t\t\t// Pretend to be hidden if this is a \"show\" and\n\t\t\t\t// there is still data from a stopped show/hide\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\n\t\t\t\t// Ignore all other no-op show/hide data\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\t\t}\n\t}\n\n\t// Bail out if this is a no-op like .hide().hide()\n\tpropTween = !jQuery.isEmptyObject( props );\n\tif ( !propTween && jQuery.isEmptyObject( orig ) ) {\n\t\treturn;\n\t}\n\n\t// Restrict \"overflow\" and \"display\" styles during box animations\n\tif ( isBox && elem.nodeType === 1 ) {\n\n\t\t// Support: IE <=9 - 11, Edge 12 - 15\n\t\t// Record all 3 overflow attributes because IE does not infer the shorthand\n\t\t// from identically-valued overflowX and overflowY and Edge just mirrors\n\t\t// the overflowX value there.\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Identify a display type, preferring old show/hide data over the CSS cascade\n\t\trestoreDisplay = dataShow && dataShow.display;\n\t\tif ( restoreDisplay == null ) {\n\t\t\trestoreDisplay = dataPriv.get( elem, \"display\" );\n\t\t}\n\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\tif ( display === \"none\" ) {\n\t\t\tif ( restoreDisplay ) {\n\t\t\t\tdisplay = restoreDisplay;\n\t\t\t} else {\n\n\t\t\t\t// Get nonempty value(s) by temporarily forcing visibility\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t\trestoreDisplay = elem.style.display || restoreDisplay;\n\t\t\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\t\t\tshowHide( [ elem ] );\n\t\t\t}\n\t\t}\n\n\t\t// Animate inline elements as inline-block\n\t\tif ( display === \"inline\" || display === \"inline-block\" && restoreDisplay != null ) {\n\t\t\tif ( jQuery.css( elem, \"float\" ) === \"none\" ) {\n\n\t\t\t\t// Restore the original display value at the end of pure show/hide animations\n\t\t\t\tif ( !propTween ) {\n\t\t\t\t\tanim.done( function() {\n\t\t\t\t\t\tstyle.display = restoreDisplay;\n\t\t\t\t\t} );\n\t\t\t\t\tif ( restoreDisplay == null ) {\n\t\t\t\t\t\tdisplay = style.display;\n\t\t\t\t\t\trestoreDisplay = display === \"none\" ? \"\" : display;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstyle.display = \"inline-block\";\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = \"hidden\";\n\t\tanim.always( function() {\n\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t} );\n\t}\n\n\t// Implement show/hide animations\n\tpropTween = false;\n\tfor ( prop in orig ) {\n\n\t\t// General show/hide setup for this element animation\n\t\tif ( !propTween ) {\n\t\t\tif ( dataShow ) {\n\t\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\t\thidden = dataShow.hidden;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdataShow = dataPriv.access( elem, \"fxshow\", { display: restoreDisplay } );\n\t\t\t}\n\n\t\t\t// Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\t\t\tif ( toggle ) {\n\t\t\t\tdataShow.hidden = !hidden;\n\t\t\t}\n\n\t\t\t// Show elements before animating them\n\t\t\tif ( hidden ) {\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t}\n\n\t\t\t/* eslint-disable no-loop-func */\n\n\t\t\tanim.done( function() {\n\n\t\t\t/* eslint-enable no-loop-func */\n\n\t\t\t\t// The final step of a \"hide\" animation is actually hiding the element\n\t\t\t\tif ( !hidden ) {\n\t\t\t\t\tshowHide( [ elem ] );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( elem, \"fxshow\" );\n\t\t\t\tfor ( prop in orig ) {\n\t\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Per-property setup\n\t\tpropTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\t\tif ( !( prop in dataShow ) ) {\n\t\t\tdataShow[ prop ] = propTween.start;\n\t\t\tif ( hidden ) {\n\t\t\t\tpropTween.end = propTween.start;\n\t\t\t\tpropTween.start = 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( Array.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// Not quite $.extend, this won't overwrite existing keys.\n\t\t\t// Reusing 'index' because we have the correct \"name\"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = Animation.prefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\n\t\t\t// Don't match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t} ),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\n\t\t\t\t// Support: Android 2.3 only\n\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\n\n\t\t\t// If there's more to do, yield\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t}\n\n\t\t\t// If this was an empty animation, synthesize a final progress notification\n\t\t\tif ( !length ) {\n\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t}\n\n\t\t\t// Resolve the animation and report its conclusion\n\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\treturn false;\n\t\t},\n\t\tanimation = deferred.promise( {\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, {\n\t\t\t\tspecialEasing: {},\n\t\t\t\teasing: jQuery.easing._default\n\t\t\t}, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\n\t\t\t\t\t// If we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// Resolve when we played the last frame; otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t} ),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length; index++ ) {\n\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\tif ( isFunction( result.stop ) ) {\n\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\n\t\t\t\t\tresult.stop.bind( result );\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\t// Attach callbacks from options\n\tanimation\n\t\t.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t} )\n\t);\n\n\treturn animation;\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\n\ttweeners: {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value );\n\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\n\t\t\treturn tween;\n\t\t} ]\n\t},\n\n\ttweener: function( props, callback ) {\n\t\tif ( isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.match( rnothtmlwhite );\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\n\t\t\tAnimation.tweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilters: [ defaultPrefilter ],\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tAnimation.prefilters.unshift( callback );\n\t\t} else {\n\t\t\tAnimation.prefilters.push( callback );\n\t\t}\n\t}\n} );\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tisFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !isFunction( easing ) && easing\n\t};\n\n\t// Go to the end state if fx are off\n\tif ( jQuery.fx.off ) {\n\t\topt.duration = 0;\n\n\t} else {\n\t\tif ( typeof opt.duration !== \"number\" ) {\n\t\t\tif ( opt.duration in jQuery.fx.speeds ) {\n\t\t\t\topt.duration = jQuery.fx.speeds[ opt.duration ];\n\n\t\t\t} else {\n\t\t\t\topt.duration = jQuery.fx.speeds._default;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend( {\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// Show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHiddenWithinTree ).css( \"opacity\", 0 ).show()\n\n\t\t\t// Animate to the value specified\n\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || dataPriv.get( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\t\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = dataPriv.get( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this &&\n\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\n\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Start the next in the queue if the last step wasn't forced.\n\t\t\t// Timers currently will call their complete callbacks, which\n\t\t\t// will dequeue but only if they were gotoEnd.\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t} );\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tvar index,\n\t\t\t\tdata = dataPriv.get( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// Enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// Empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// Look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t} );\n\t}\n} );\n\njQuery.each( [ \"toggle\", \"show\", \"hide\" ], function( _i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n} );\n\n// Generate shortcuts for custom animations\njQuery.each( {\n\tslideDown: genFx( \"show\" ),\n\tslideUp: genFx( \"hide\" ),\n\tslideToggle: genFx( \"toggle\" ),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n} );\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ti = 0,\n\t\ttimers = jQuery.timers;\n\n\tfxNow = Date.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\n\t\t// Run the timer and safely remove it when done (allowing for external removal)\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tjQuery.fx.start();\n};\n\njQuery.fx.interval = 13;\njQuery.fx.start = function() {\n\tif ( inProgress ) {\n\t\treturn;\n\t}\n\n\tinProgress = true;\n\tschedule();\n};\n\njQuery.fx.stop = function() {\n\tinProgress = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\n\t// Default speed\n\t_default: 400\n};\n\n\n// Based off of the plugin by Clint Helfers, with permission.\n// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = window.setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\twindow.clearTimeout( timeout );\n\t\t};\n\t} );\n};\n\n\n( function() {\n\tvar input = document.createElement( \"input\" ),\n\t\tselect = document.createElement( \"select\" ),\n\t\topt = select.appendChild( document.createElement( \"option\" ) );\n\n\tinput.type = \"checkbox\";\n\n\t// Support: Android <=4.3 only\n\t// Default value for a checkbox should be \"on\"\n\tsupport.checkOn = input.value !== \"\";\n\n\t// Support: IE <=11 only\n\t// Must access selectedIndex to make default options select\n\tsupport.optSelected = opt.selected;\n\n\t// Support: IE <=11 only\n\t// An input loses its value after becoming a radio\n\tinput = document.createElement( \"input\" );\n\tinput.value = \"t\";\n\tinput.type = \"radio\";\n\tsupport.radioValue = input.value === \"t\";\n} )();\n\n\nvar boolHook,\n\tattrHandle = jQuery.expr.attrHandle;\n\njQuery.fn.extend( {\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tattr: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set attributes on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// Attribute hooks are determined by the lowercase version\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\thooks = jQuery.attrHooks[ name.toLowerCase() ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\tret = jQuery.find.attr( elem, name );\n\n\t\t// Non-existent attributes return null, we normalize to undefined\n\t\treturn ret == null ? undefined : ret;\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\n\t\t\t\t\tnodeName( elem, \"input\" ) ) {\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name,\n\t\t\ti = 0,\n\n\t\t\t// Attribute names can contain non-HTML whitespace characters\n\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n\t\t\tattrNames = value && value.match( rnothtmlwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\t\t\t\telem.removeAttribute( name );\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else {\n\t\t\telem.setAttribute( name, name );\n\t\t}\n\t\treturn name;\n\t}\n};\n\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( _i, name ) {\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = function( elem, name, isXML ) {\n\t\tvar ret, handle,\n\t\t\tlowercaseName = name.toLowerCase();\n\n\t\tif ( !isXML ) {\n\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\thandle = attrHandle[ lowercaseName ];\n\t\t\tattrHandle[ lowercaseName ] = ret;\n\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\tlowercaseName :\n\t\t\t\tnull;\n\t\t\tattrHandle[ lowercaseName ] = handle;\n\t\t}\n\t\treturn ret;\n\t};\n} );\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend( {\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn ( elem[ name ] = value );\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn elem[ name ];\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t// Support: IE <=9 - 11 only\n\t\t\t\t// elem.tabIndex doesn't always return the\n\t\t\t\t// correct value when it hasn't been explicitly set\n\t\t\t\t// https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n\t\t\t\t// Use proper attribute retrieval(#12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\tif ( tabindex ) {\n\t\t\t\t\treturn parseInt( tabindex, 10 );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\trclickable.test( elem.nodeName ) &&\n\t\t\t\t\telem.href\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t}\n} );\n\n// Support: IE <=11 only\n// Accessing the selectedIndex property\n// forces the browser to respect setting selected\n// on the option\n// The getter ensures a default option is selected\n// when in an optgroup\n// eslint rule \"no-unused-expressions\" is disabled for this code\n// since it considers such accessions noop\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tset: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\njQuery.each( [\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n} );\n\n\n\n\n\t// Strip and collapse whitespace according to HTML spec\n\t// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\tfunction stripAndCollapse( value ) {\n\t\tvar tokens = value.match( rnothtmlwhite ) || [];\n\t\treturn tokens.join( \" \" );\n\t}\n\n\nfunction getClass( elem ) {\n\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\n}\n\nfunction classesToArray( value ) {\n\tif ( Array.isArray( value ) ) {\n\t\treturn value;\n\t}\n\tif ( typeof value === \"string\" ) {\n\t\treturn value.match( rnothtmlwhite ) || [];\n\t}\n\treturn [];\n}\n\njQuery.fn.extend( {\n\taddClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + clazz + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += clazz + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( !arguments.length ) {\n\t\t\treturn this.attr( \"class\", \"\" );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + clazz + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + clazz + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar type = typeof value,\n\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\n\n\t\tif ( typeof stateVal === \"boolean\" && isValidValue ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).toggleClass(\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\t\t\t\t\tstateVal\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar className, i, self, classNames;\n\n\t\t\tif ( isValidValue ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\ti = 0;\n\t\t\t\tself = jQuery( this );\n\t\t\t\tclassNames = classesToArray( value );\n\n\t\t\t\twhile ( ( className = classNames[ i++ ] ) ) {\n\n\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\n\t\t\t\tclassName = getClass( this );\n\t\t\t\tif ( className ) {\n\n\t\t\t\t\t// Store className if set\n\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed `false`,\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tif ( this.setAttribute ) {\n\t\t\t\t\tthis.setAttribute( \"class\",\n\t\t\t\t\t\tclassName || value === false ?\n\t\t\t\t\t\t\"\" :\n\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className, elem,\n\t\t\ti = 0;\n\n\t\tclassName = \" \" + selector + \" \";\n\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\tif ( elem.nodeType === 1 &&\n\t\t\t\t( \" \" + stripAndCollapse( getClass( elem ) ) + \" \" ).indexOf( className ) > -1 ) {\n\t\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n} );\n\n\n\n\nvar rreturn = /\\r/g;\n\njQuery.fn.extend( {\n\tval: function( value ) {\n\t\tvar hooks, ret, valueIsFunction,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks &&\n\t\t\t\t\t\"get\" in hooks &&\n\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\n\t\t\t\t) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\t// Handle most common string cases\n\t\t\t\tif ( typeof ret === \"string\" ) {\n\t\t\t\t\treturn ret.replace( rreturn, \"\" );\n\t\t\t\t}\n\n\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\treturn ret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tvalueIsFunction = isFunction( value );\n\n\t\treturn this.each( function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\n\t\t\t} else if ( Array.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\n\t\t\t\t\t// Support: IE <=10 - 11 only\n\t\t\t\t\t// option.text throws exceptions (#14686, #14858)\n\t\t\t\t\t// Strip and collapse whitespace\n\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\t\t\t\t\tstripAndCollapse( jQuery.text( elem ) );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option, i,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\",\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length;\n\n\t\t\t\tif ( index < 0 ) {\n\t\t\t\t\ti = max;\n\n\t\t\t\t} else {\n\t\t\t\t\ti = one ? index : 0;\n\t\t\t\t}\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t// IE8-9 doesn't update selected after form reset (#2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t!option.disabled &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\t\t\t\t\t\t\t\t!nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t/* eslint-disable no-cond-assign */\n\n\t\t\t\t\tif ( option.selected =\n\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\n\t\t\t\t\t) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* eslint-enable no-cond-assign */\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Radios and checkboxes getter/setter\njQuery.each( [ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( Array.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\n\t\t};\n\t}\n} );\n\n\n\n\n// Return jQuery for attributes-only inclusion\n\n\nsupport.focusin = \"onfocusin\" in window;\n\n\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\tstopPropagationCallback = function( e ) {\n\t\te.stopPropagation();\n\t};\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\tcur = lastElement = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( \".\" );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( \".\" );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tlastElement = cur;\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = (\n\t\t\t\t\tdataPriv.get( cur, \"events\" ) || Object.create( null )\n\t\t\t\t)[ event.type ] &&\n\t\t\t\tdataPriv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( ( !special._default ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\n\t\t\t\tif ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.addEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\telem[ type ]();\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.removeEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\t// Used only for `focus(in | out)` events\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\t}\n\n} );\n\njQuery.fn.extend( {\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\n\n\n// Support: Firefox <=44\n// Firefox doesn't have focus(in | out) events\n// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n//\n// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n// focus(in | out) events fire after focus & blur events,\n// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\nif ( !support.focusin ) {\n\tjQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\t\tvar handler = function( event ) {\n\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );\n\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\n\t\t\t\t// Handle: regular nodes (via `this.ownerDocument`), window\n\t\t\t\t// (via `this.document`) & document (via `this`).\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix );\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.access( doc, fix, ( attaches || 0 ) + 1 );\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix ) - 1;\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\t\t\t\t\tdataPriv.remove( doc, fix );\n\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.access( doc, fix, attaches );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t} );\n}\nvar location = window.location;\n\nvar nonce = { guid: Date.now() };\n\nvar rquery = ( /\\?/ );\n\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\n\t// Support: IE 9 - 11 only\n\t// IE throws on parseFromString with invalid input.\n\ttry {\n\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\n\t} catch ( e ) {\n\t\txml = undefined;\n\t}\n\n\tif ( !xml || xml.getElementsByTagName( \"parsererror\" ).length ) {\n\t\tjQuery.error( \"Invalid XML: \" + data );\n\t}\n\treturn xml;\n};\n\n\nvar\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( Array.isArray( obj ) ) {\n\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams(\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\t\t\t\t\tv,\n\t\t\t\t\ttraditional,\n\t\t\t\t\tadd\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t} else if ( !traditional && toType( obj ) === \"object\" ) {\n\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, valueOrFunction ) {\n\n\t\t\t// If value is a function, invoke it and use its return value\n\t\t\tvar value = isFunction( valueOrFunction ) ?\n\t\t\t\tvalueOrFunction() :\n\t\t\t\tvalueOrFunction;\n\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" +\n\t\t\t\tencodeURIComponent( value == null ? \"\" : value );\n\t\t};\n\n\tif ( a == null ) {\n\t\treturn \"\";\n\t}\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t} );\n\n\t} else {\n\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" );\n};\n\njQuery.fn.extend( {\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map( function() {\n\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t} )\n\t\t.filter( function() {\n\t\t\tvar type = this.type;\n\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t} )\n\t\t.map( function( _i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\tif ( val == null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( Array.isArray( val ) ) {\n\t\t\t\treturn jQuery.map( val, function( val ) {\n\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t} ).get();\n\t}\n} );\n\n\nvar\n\tr20 = /%20/g,\n\trhash = /#.*$/,\n\trantiCache = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n\n\t// #7653, #8125, #8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t * - BEFORE asking for a transport\n\t * - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat( \"*\" ),\n\n\t// Anchor tag for parsing the document origin\n\toriginAnchor = document.createElement( \"a\" );\n\toriginAnchor.href = location.href;\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];\n\n\t\tif ( isFunction( func ) ) {\n\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\n\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType[ 0 ] === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" &&\n\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t} );\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes #9887\nfunction ajaxExtend( target, src ) {\n\tvar key, deep,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\n\n/* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\n\tvar ct, type, finalDataType, firstDataType,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader( \"Content-Type\" );\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[ 0 ] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s.throws ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstate: \"parsererror\",\n\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n\njQuery.extend( {\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: location.href,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( location.protocol ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /\\bxml\\b/,\n\t\t\thtml: /\\bhtml/,\n\t\t\tjson: /\\bjson\\b/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": JSON.parse,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar transport,\n\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\n\t\t\t// Response headers\n\t\t\tresponseHeadersString,\n\t\t\tresponseHeaders,\n\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// Url cleanup var\n\t\t\turlAnchor,\n\n\t\t\t// Request state (becomes false upon send and true upon completion)\n\t\t\tcompleted,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\t// Loop variable\n\t\t\ti,\n\n\t\t\t// uncached part of the url\n\t\t\tuncached,\n\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context &&\n\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\t\tjQuery.event,\n\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\n\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( completed ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() + \" \" ] =\n\t\t\t\t\t\t\t\t\t( responseHeaders[ match[ 1 ].toLowerCase() + \" \" ] || [] )\n\t\t\t\t\t\t\t\t\t\t.concat( match[ 2 ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() + \" \" ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match.join( \", \" );\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn completed ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\tname = requestHeadersNames[ name.toLowerCase() ] =\n\t\t\t\t\t\t\trequestHeadersNames[ name.toLowerCase() ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( completed ) {\n\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Lazy-add the new callbacks in a way that preserves old ones\n\t\t\t\t\t\t\tfor ( code in map ) {\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR );\n\n\t\t// Add protocol if not provided (prefilters might expect it)\n\t\t// Handle falsy url in the settings object (#10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || location.href ) + \"\" )\n\t\t\t.replace( rprotocol, location.protocol + \"//\" );\n\n\t\t// Alias method option to type as per ticket #12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = ( s.dataType || \"*\" ).toLowerCase().match( rnothtmlwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\n\t\tif ( s.crossDomain == null ) {\n\t\t\turlAnchor = document.createElement( \"a\" );\n\n\t\t\t// Support: IE <=8 - 11, Edge 12 - 15\n\t\t\t// IE throws exception on accessing the href property if url is malformed,\n\t\t\t// e.g. http://example.com:80x/\n\t\t\ttry {\n\t\t\t\turlAnchor.href = s.url;\n\n\t\t\t\t// Support: IE <=8 - 11 only\n\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\n\t\t\t\turlAnchor.href = urlAnchor.href;\n\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\n\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\n\t\t\t\t// it can be rejected by the transport if it is invalid\n\t\t\t\ts.crossDomain = true;\n\t\t\t}\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( completed ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger( \"ajaxStart\" );\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\t// Remove hash to simplify url manipulation\n\t\tcacheURL = s.url.replace( rhash, \"\" );\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// Remember the hash so we can put it back\n\t\t\tuncached = s.url.slice( cacheURL.length );\n\n\t\t\t// If data is available and should be processed, append data to url\n\t\t\tif ( s.data && ( s.processData || typeof s.data === \"string\" ) ) {\n\t\t\t\tcacheURL += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data;\n\n\t\t\t\t// #9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add or update anti-cache param if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\tcacheURL = cacheURL.replace( rantiCache, \"$1\" );\n\t\t\t\tuncached = ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + ( nonce.guid++ ) +\n\t\t\t\t\tuncached;\n\t\t\t}\n\n\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\n\t\t\ts.url = cacheURL + uncached;\n\n\t\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\n\t\t} else if ( s.data && s.processData &&\n\t\t\t( s.contentType || \"\" ).indexOf( \"application/x-www-form-urlencoded\" ) === 0 ) {\n\t\t\ts.data = s.data.replace( r20, \"+\" );\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\n\t\t\t\t\t( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend &&\n\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {\n\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// Aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tcompleteDeferred.add( s.complete );\n\t\tjqXHR.done( s.success );\n\t\tjqXHR.fail( s.error );\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\n\t\t\t// If request was aborted inside ajaxSend, stop there\n\t\t\tif ( completed ) {\n\t\t\t\treturn jqXHR;\n\t\t\t}\n\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = window.setTimeout( function() {\n\t\t\t\t\tjqXHR.abort( \"timeout\" );\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tcompleted = false;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// Rethrow post-completion exceptions\n\t\t\t\tif ( completed ) {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\n\t\t\t\t// Propagate others as results\n\t\t\t\tdone( -1, e );\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Ignore repeat invocations\n\t\t\tif ( completed ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcompleted = true;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\twindow.clearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Use a noop converter for missing script\n\t\t\tif ( !isSuccess && jQuery.inArray( \"script\", s.dataTypes ) > -1 ) {\n\t\t\t\ts.converters[ \"text script\" ] = function() {};\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"Last-Modified\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"etag\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Extract error from statusText and normalize for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger( \"ajaxStop\" );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n} );\n\njQuery.each( [ \"get\", \"post\" ], function( _i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\n\t\t// Shift arguments if data argument was omitted\n\t\tif ( isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\t// The url can be an options object (which then must have .url)\n\t\treturn jQuery.ajax( jQuery.extend( {\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t}, jQuery.isPlainObject( url ) && url ) );\n\t};\n} );\n\njQuery.ajaxPrefilter( function( s ) {\n\tvar i;\n\tfor ( i in s.headers ) {\n\t\tif ( i.toLowerCase() === \"content-type\" ) {\n\t\t\ts.contentType = s.headers[ i ] || \"\";\n\t\t}\n\t}\n} );\n\n\njQuery._evalUrl = function( url, options, doc ) {\n\treturn jQuery.ajax( {\n\t\turl: url,\n\n\t\t// Make this explicit, since user can override this through ajaxSetup (#11264)\n\t\ttype: \"GET\",\n\t\tdataType: \"script\",\n\t\tcache: true,\n\t\tasync: false,\n\t\tglobal: false,\n\n\t\t// Only evaluate the response if it is successful (gh-4126)\n\t\t// dataFilter is not invoked for failure responses, so using it instead\n\t\t// of the default converter is kludgy but it works.\n\t\tconverters: {\n\t\t\t\"text script\": function() {}\n\t\t},\n\t\tdataFilter: function( response ) {\n\t\t\tjQuery.globalEval( response, options, doc );\n\t\t}\n\t} );\n};\n\n\njQuery.fn.extend( {\n\twrapAll: function( html ) {\n\t\tvar wrap;\n\n\t\tif ( this[ 0 ] ) {\n\t\t\tif ( isFunction( html ) ) {\n\t\t\t\thtml = html.call( this[ 0 ] );\n\t\t\t}\n\n\t\t\t// The elements to wrap the target around\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t}\n\n\t\t\twrap.map( function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t} ).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t} );\n\t},\n\n\twrap: function( html ) {\n\t\tvar htmlIsFunction = isFunction( html );\n\n\t\treturn this.each( function( i ) {\n\t\t\tjQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );\n\t\t} );\n\t},\n\n\tunwrap: function( selector ) {\n\t\tthis.parent( selector ).not( \"body\" ).each( function() {\n\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t} );\n\t\treturn this;\n\t}\n} );\n\n\njQuery.expr.pseudos.hidden = function( elem ) {\n\treturn !jQuery.expr.pseudos.visible( elem );\n};\njQuery.expr.pseudos.visible = function( elem ) {\n\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\n};\n\n\n\n\njQuery.ajaxSettings.xhr = function() {\n\ttry {\n\t\treturn new window.XMLHttpRequest();\n\t} catch ( e ) {}\n};\n\nvar xhrSuccessStatus = {\n\n\t\t// File protocol always yields status code 0, assume 200\n\t\t0: 200,\n\n\t\t// Support: IE <=9 only\n\t\t// #1450: sometimes IE returns 1223 when it should be 204\n\t\t1223: 204\n\t},\n\txhrSupported = jQuery.ajaxSettings.xhr();\n\nsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\nsupport.ajax = xhrSupported = !!xhrSupported;\n\njQuery.ajaxTransport( function( options ) {\n\tvar callback, errorCallback;\n\n\t// Cross domain only allowed if supported through XMLHttpRequest\n\tif ( support.cors || xhrSupported && !options.crossDomain ) {\n\t\treturn {\n\t\t\tsend: function( headers, complete ) {\n\t\t\t\tvar i,\n\t\t\t\t\txhr = options.xhr();\n\n\t\t\t\txhr.open(\n\t\t\t\t\toptions.type,\n\t\t\t\t\toptions.url,\n\t\t\t\t\toptions.async,\n\t\t\t\t\toptions.username,\n\t\t\t\t\toptions.password\n\t\t\t\t);\n\n\t\t\t\t// Apply custom fields if provided\n\t\t\t\tif ( options.xhrFields ) {\n\t\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Override mime type if needed\n\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t\t}\n\n\t\t\t\t// X-Requested-With header\n\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\t\tif ( !options.crossDomain && !headers[ \"X-Requested-With\" ] ) {\n\t\t\t\t\theaders[ \"X-Requested-With\" ] = \"XMLHttpRequest\";\n\t\t\t\t}\n\n\t\t\t\t// Set headers\n\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\n\t\t\t\t}\n\n\t\t\t\t// Callback\n\t\t\t\tcallback = function( type ) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\n\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.ontimeout =\n\t\t\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif ( type === \"abort\" ) {\n\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t} else if ( type === \"error\" ) {\n\n\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t// On a manual native abort, IE9 throws\n\t\t\t\t\t\t\t\t// errors on any property access that is not readyState\n\t\t\t\t\t\t\t\tif ( typeof xhr.status !== \"number\" ) {\n\t\t\t\t\t\t\t\t\tcomplete( 0, \"error\" );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcomplete(\n\n\t\t\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see #8605, #14207\n\t\t\t\t\t\t\t\t\t\txhr.status,\n\t\t\t\t\t\t\t\t\t\txhr.statusText\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcomplete(\n\t\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\n\t\t\t\t\t\t\t\t\txhr.statusText,\n\n\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t\t// IE9 has no XHR2 but throws on binary (trac-11426)\n\t\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\n\t\t\t\t\t\t\t\t\t( xhr.responseType || \"text\" ) !== \"text\" ||\n\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== \"string\" ?\n\t\t\t\t\t\t\t\t\t\t{ binary: xhr.response } :\n\t\t\t\t\t\t\t\t\t\t{ text: xhr.responseText },\n\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t};\n\n\t\t\t\t// Listen to events\n\t\t\t\txhr.onload = callback();\n\t\t\t\terrorCallback = xhr.onerror = xhr.ontimeout = callback( \"error\" );\n\n\t\t\t\t// Support: IE 9 only\n\t\t\t\t// Use onreadystatechange to replace onabort\n\t\t\t\t// to handle uncaught aborts\n\t\t\t\tif ( xhr.onabort !== undefined ) {\n\t\t\t\t\txhr.onabort = errorCallback;\n\t\t\t\t} else {\n\t\t\t\t\txhr.onreadystatechange = function() {\n\n\t\t\t\t\t\t// Check readyState before timeout as it changes\n\t\t\t\t\t\tif ( xhr.readyState === 4 ) {\n\n\t\t\t\t\t\t\t// Allow onerror to be called first,\n\t\t\t\t\t\t\t// but that will not handle a native abort\n\t\t\t\t\t\t\t// Also, save errorCallback to a variable\n\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\n\t\t\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\t\t\terrorCallback();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Create the abort callback\n\t\t\t\tcallback = callback( \"abort\" );\n\n\t\t\t\ttry {\n\n\t\t\t\t\t// Do send the request (this may raise an exception)\n\t\t\t\t\txhr.send( options.hasContent && options.data || null );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// #14683: Only rethrow if this hasn't been notified as an error yet\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\n// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\njQuery.ajaxPrefilter( function( s ) {\n\tif ( s.crossDomain ) {\n\t\ts.contents.script = false;\n\t}\n} );\n\n// Install script dataType\njQuery.ajaxSetup( {\n\taccepts: {\n\t\tscript: \"text/javascript, application/javascript, \" +\n\t\t\t\"application/ecmascript, application/x-ecmascript\"\n\t},\n\tcontents: {\n\t\tscript: /\\b(?:java|ecma)script\\b/\n\t},\n\tconverters: {\n\t\t\"text script\": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n} );\n\n// Handle cache's special case and crossDomain\njQuery.ajaxPrefilter( \"script\", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\tif ( s.crossDomain ) {\n\t\ts.type = \"GET\";\n\t}\n} );\n\n// Bind script tag hack transport\njQuery.ajaxTransport( \"script\", function( s ) {\n\n\t// This transport only deals with cross domain or forced-by-attrs requests\n\tif ( s.crossDomain || s.scriptAttrs ) {\n\t\tvar script, callback;\n\t\treturn {\n\t\t\tsend: function( _, complete ) {\n\t\t\t\tscript = jQuery( \"<script>\" )\n\t\t\t\t\t.attr( s.scriptAttrs || {} )\n\t\t\t\t\t.prop( { charset: s.scriptCharset, src: s.url } )\n\t\t\t\t\t.on( \"load error\", callback = function( evt ) {\n\t\t\t\t\t\tscript.remove();\n\t\t\t\t\t\tcallback = null;\n\t\t\t\t\t\tif ( evt ) {\n\t\t\t\t\t\t\tcomplete( evt.type === \"error\" ? 404 : 200, evt.type );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\n\t\t\t\t// Use native DOM manipulation to avoid our domManip AJAX trickery\n\t\t\t\tdocument.head.appendChild( script[ 0 ] );\n\t\t\t},\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\nvar oldCallbacks = [],\n\trjsonp = /(=)\\?(?=&|$)|\\?\\?/;\n\n// Default jsonp settings\njQuery.ajaxSetup( {\n\tjsonp: \"callback\",\n\tjsonpCallback: function() {\n\t\tvar callback = oldCallbacks.pop() || ( jQuery.expando + \"_\" + ( nonce.guid++ ) );\n\t\tthis[ callback ] = true;\n\t\treturn callback;\n\t}\n} );\n\n// Detect, normalize options and install callbacks for jsonp requests\njQuery.ajaxPrefilter( \"json jsonp\", function( s, originalSettings, jqXHR ) {\n\n\tvar callbackName, overwritten, responseContainer,\n\t\tjsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?\n\t\t\t\"url\" :\n\t\t\ttypeof s.data === \"string\" &&\n\t\t\t\t( s.contentType || \"\" )\n\t\t\t\t\t.indexOf( \"application/x-www-form-urlencoded\" ) === 0 &&\n\t\t\t\trjsonp.test( s.data ) && \"data\"\n\t\t);\n\n\t// Handle iff the expected data type is \"jsonp\" or we have a parameter to set\n\tif ( jsonProp || s.dataTypes[ 0 ] === \"jsonp\" ) {\n\n\t\t// Get callback name, remembering preexisting value associated with it\n\t\tcallbackName = s.jsonpCallback = isFunction( s.jsonpCallback ) ?\n\t\t\ts.jsonpCallback() :\n\t\t\ts.jsonpCallback;\n\n\t\t// Insert callback into url or form data\n\t\tif ( jsonProp ) {\n\t\t\ts[ jsonProp ] = s[ jsonProp ].replace( rjsonp, \"$1\" + callbackName );\n\t\t} else if ( s.jsonp !== false ) {\n\t\t\ts.url += ( rquery.test( s.url ) ? \"&\" : \"?\" ) + s.jsonp + \"=\" + callbackName;\n\t\t}\n\n\t\t// Use data converter to retrieve json after script execution\n\t\ts.converters[ \"script json\" ] = function() {\n\t\t\tif ( !responseContainer ) {\n\t\t\t\tjQuery.error( callbackName + \" was not called\" );\n\t\t\t}\n\t\t\treturn responseContainer[ 0 ];\n\t\t};\n\n\t\t// Force json dataType\n\t\ts.dataTypes[ 0 ] = \"json\";\n\n\t\t// Install callback\n\t\toverwritten = window[ callbackName ];\n\t\twindow[ callbackName ] = function() {\n\t\t\tresponseContainer = arguments;\n\t\t};\n\n\t\t// Clean-up function (fires after converters)\n\t\tjqXHR.always( function() {\n\n\t\t\t// If previous value didn't exist - remove it\n\t\t\tif ( overwritten === undefined ) {\n\t\t\t\tjQuery( window ).removeProp( callbackName );\n\n\t\t\t// Otherwise restore preexisting value\n\t\t\t} else {\n\t\t\t\twindow[ callbackName ] = overwritten;\n\t\t\t}\n\n\t\t\t// Save back as free\n\t\t\tif ( s[ callbackName ] ) {\n\n\t\t\t\t// Make sure that re-using the options doesn't screw things around\n\t\t\t\ts.jsonpCallback = originalSettings.jsonpCallback;\n\n\t\t\t\t// Save the callback name for future use\n\t\t\t\toldCallbacks.push( callbackName );\n\t\t\t}\n\n\t\t\t// Call if it was a function and we have a response\n\t\t\tif ( responseContainer && isFunction( overwritten ) ) {\n\t\t\t\toverwritten( responseContainer[ 0 ] );\n\t\t\t}\n\n\t\t\tresponseContainer = overwritten = undefined;\n\t\t} );\n\n\t\t// Delegate to script\n\t\treturn \"script\";\n\t}\n} );\n\n\n\n\n// Support: Safari 8 only\n// In Safari 8 documents created via document.implementation.createHTMLDocument\n// collapse sibling forms: the second one becomes a child of the first one.\n// Because of that, this security measure has to be disabled in Safari 8.\n// https://bugs.webkit.org/show_bug.cgi?id=137337\nsupport.createHTMLDocument = ( function() {\n\tvar body = document.implementation.createHTMLDocument( \"\" ).body;\n\tbody.innerHTML = \"<form></form><form></form>\";\n\treturn body.childNodes.length === 2;\n} )();\n\n\n// Argument \"data\" should be string of html\n// context (optional): If specified, the fragment will be created in this context,\n// defaults to document\n// keepScripts (optional): If true, will include scripts passed in the html string\njQuery.parseHTML = function( data, context, keepScripts ) {\n\tif ( typeof data !== \"string\" ) {\n\t\treturn [];\n\t}\n\tif ( typeof context === \"boolean\" ) {\n\t\tkeepScripts = context;\n\t\tcontext = false;\n\t}\n\n\tvar base, parsed, scripts;\n\n\tif ( !context ) {\n\n\t\t// Stop scripts or inline event handlers from being executed immediately\n\t\t// by using document.implementation\n\t\tif ( support.createHTMLDocument ) {\n\t\t\tcontext = document.implementation.createHTMLDocument( \"\" );\n\n\t\t\t// Set the base href for the created document\n\t\t\t// so any parsed elements with URLs\n\t\t\t// are based on the document's URL (gh-2965)\n\t\t\tbase = context.createElement( \"base\" );\n\t\t\tbase.href = document.location.href;\n\t\t\tcontext.head.appendChild( base );\n\t\t} else {\n\t\t\tcontext = document;\n\t\t}\n\t}\n\n\tparsed = rsingleTag.exec( data );\n\tscripts = !keepScripts && [];\n\n\t// Single tag\n\tif ( parsed ) {\n\t\treturn [ context.createElement( parsed[ 1 ] ) ];\n\t}\n\n\tparsed = buildFragment( [ data ], context, scripts );\n\n\tif ( scripts && scripts.length ) {\n\t\tjQuery( scripts ).remove();\n\t}\n\n\treturn jQuery.merge( [], parsed.childNodes );\n};\n\n\n/**\n * Load a url into a page\n */\njQuery.fn.load = function( url, params, callback ) {\n\tvar selector, type, response,\n\t\tself = this,\n\t\toff = url.indexOf( \" \" );\n\n\tif ( off > -1 ) {\n\t\tselector = stripAndCollapse( url.slice( off ) );\n\t\turl = url.slice( 0, off );\n\t}\n\n\t// If it's a function\n\tif ( isFunction( params ) ) {\n\n\t\t// We assume that it's the callback\n\t\tcallback = params;\n\t\tparams = undefined;\n\n\t// Otherwise, build a param string\n\t} else if ( params && typeof params === \"object\" ) {\n\t\ttype = \"POST\";\n\t}\n\n\t// If we have elements to modify, make the request\n\tif ( self.length > 0 ) {\n\t\tjQuery.ajax( {\n\t\t\turl: url,\n\n\t\t\t// If \"type\" variable is undefined, then \"GET\" method will be used.\n\t\t\t// Make value of this field explicit since\n\t\t\t// user can override it through ajaxSetup method\n\t\t\ttype: type || \"GET\",\n\t\t\tdataType: \"html\",\n\t\t\tdata: params\n\t\t} ).done( function( responseText ) {\n\n\t\t\t// Save response for use in complete callback\n\t\t\tresponse = arguments;\n\n\t\t\tself.html( selector ?\n\n\t\t\t\t// If a selector was specified, locate the right elements in a dummy div\n\t\t\t\t// Exclude scripts to avoid IE 'Permission Denied' errors\n\t\t\t\tjQuery( \"<div>\" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :\n\n\t\t\t\t// Otherwise use the full result\n\t\t\t\tresponseText );\n\n\t\t// If the request succeeds, this function gets \"data\", \"status\", \"jqXHR\"\n\t\t// but they are ignored because response was set above.\n\t\t// If it fails, this function gets \"jqXHR\", \"status\", \"error\"\n\t\t} ).always( callback && function( jqXHR, status ) {\n\t\t\tself.each( function() {\n\t\t\t\tcallback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );\n\t\t\t} );\n\t\t} );\n\t}\n\n\treturn this;\n};\n\n\n\n\njQuery.expr.pseudos.animated = function( elem ) {\n\treturn jQuery.grep( jQuery.timers, function( fn ) {\n\t\treturn elem === fn.elem;\n\t} ).length;\n};\n\n\n\n\njQuery.offset = {\n\tsetOffset: function( elem, options, i ) {\n\t\tvar curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,\n\t\t\tposition = jQuery.css( elem, \"position\" ),\n\t\t\tcurElem = jQuery( elem ),\n\t\t\tprops = {};\n\n\t\t// Set position first, in-case top/left are set even on static elem\n\t\tif ( position === \"static\" ) {\n\t\t\telem.style.position = \"relative\";\n\t\t}\n\n\t\tcurOffset = curElem.offset();\n\t\tcurCSSTop = jQuery.css( elem, \"top\" );\n\t\tcurCSSLeft = jQuery.css( elem, \"left\" );\n\t\tcalculatePosition = ( position === \"absolute\" || position === \"fixed\" ) &&\n\t\t\t( curCSSTop + curCSSLeft ).indexOf( \"auto\" ) > -1;\n\n\t\t// Need to be able to calculate position if either\n\t\t// top or left is auto and position is either absolute or fixed\n\t\tif ( calculatePosition ) {\n\t\t\tcurPosition = curElem.position();\n\t\t\tcurTop = curPosition.top;\n\t\t\tcurLeft = curPosition.left;\n\n\t\t} else {\n\t\t\tcurTop = parseFloat( curCSSTop ) || 0;\n\t\t\tcurLeft = parseFloat( curCSSLeft ) || 0;\n\t\t}\n\n\t\tif ( isFunction( options ) ) {\n\n\t\t\t// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)\n\t\t\toptions = options.call( elem, i, jQuery.extend( {}, curOffset ) );\n\t\t}\n\n\t\tif ( options.top != null ) {\n\t\t\tprops.top = ( options.top - curOffset.top ) + curTop;\n\t\t}\n\t\tif ( options.left != null ) {\n\t\t\tprops.left = ( options.left - curOffset.left ) + curLeft;\n\t\t}\n\n\t\tif ( \"using\" in options ) {\n\t\t\toptions.using.call( elem, props );\n\n\t\t} else {\n\t\t\tif ( typeof props.top === \"number\" ) {\n\t\t\t\tprops.top += \"px\";\n\t\t\t}\n\t\t\tif ( typeof props.left === \"number\" ) {\n\t\t\t\tprops.left += \"px\";\n\t\t\t}\n\t\t\tcurElem.css( props );\n\t\t}\n\t}\n};\n\njQuery.fn.extend( {\n\n\t// offset() relates an element's border box to the document origin\n\toffset: function( options ) {\n\n\t\t// Preserve chaining for setter\n\t\tif ( arguments.length ) {\n\t\t\treturn options === undefined ?\n\t\t\t\tthis :\n\t\t\t\tthis.each( function( i ) {\n\t\t\t\t\tjQuery.offset.setOffset( this, options, i );\n\t\t\t\t} );\n\t\t}\n\n\t\tvar rect, win,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !elem ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Return zeros for disconnected and hidden (display: none) elements (gh-2310)\n\t\t// Support: IE <=11 only\n\t\t// Running getBoundingClientRect on a\n\t\t// disconnected node in IE throws an error\n\t\tif ( !elem.getClientRects().length ) {\n\t\t\treturn { top: 0, left: 0 };\n\t\t}\n\n\t\t// Get document-relative position by adding viewport scroll to viewport-relative gBCR\n\t\trect = elem.getBoundingClientRect();\n\t\twin = elem.ownerDocument.defaultView;\n\t\treturn {\n\t\t\ttop: rect.top + win.pageYOffset,\n\t\t\tleft: rect.left + win.pageXOffset\n\t\t};\n\t},\n\n\t// position() relates an element's margin box to its offset parent's padding box\n\t// This corresponds to the behavior of CSS absolute positioning\n\tposition: function() {\n\t\tif ( !this[ 0 ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar offsetParent, offset, doc,\n\t\t\telem = this[ 0 ],\n\t\t\tparentOffset = { top: 0, left: 0 };\n\n\t\t// position:fixed elements are offset from the viewport, which itself always has zero offset\n\t\tif ( jQuery.css( elem, \"position\" ) === \"fixed\" ) {\n\n\t\t\t// Assume position:fixed implies availability of getBoundingClientRect\n\t\t\toffset = elem.getBoundingClientRect();\n\n\t\t} else {\n\t\t\toffset = this.offset();\n\n\t\t\t// Account for the *real* offset parent, which can be the document or its root element\n\t\t\t// when a statically positioned element is identified\n\t\t\tdoc = elem.ownerDocument;\n\t\t\toffsetParent = elem.offsetParent || doc.documentElement;\n\t\t\twhile ( offsetParent &&\n\t\t\t\t( offsetParent === doc.body || offsetParent === doc.documentElement ) &&\n\t\t\t\tjQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\n\t\t\t\toffsetParent = offsetParent.parentNode;\n\t\t\t}\n\t\t\tif ( offsetParent && offsetParent !== elem && offsetParent.nodeType === 1 ) {\n\n\t\t\t\t// Incorporate borders into its offset, since they are outside its content origin\n\t\t\t\tparentOffset = jQuery( offsetParent ).offset();\n\t\t\t\tparentOffset.top += jQuery.css( offsetParent, \"borderTopWidth\", true );\n\t\t\t\tparentOffset.left += jQuery.css( offsetParent, \"borderLeftWidth\", true );\n\t\t\t}\n\t\t}\n\n\t\t// Subtract parent offsets and element margins\n\t\treturn {\n\t\t\ttop: offset.top - parentOffset.top - jQuery.css( elem, \"marginTop\", true ),\n\t\t\tleft: offset.left - parentOffset.left - jQuery.css( elem, \"marginLeft\", true )\n\t\t};\n\t},\n\n\t// This method will return documentElement in the following cases:\n\t// 1) For the element inside the iframe without offsetParent, this method will return\n\t// documentElement of the parent window\n\t// 2) For the hidden or detached element\n\t// 3) For body or html element, i.e. in case of the html node - it will return itself\n\t//\n\t// but those exceptions were never presented as a real life use-cases\n\t// and might be considered as more preferable results.\n\t//\n\t// This logic, however, is not guaranteed and can change at any point in the future\n\toffsetParent: function() {\n\t\treturn this.map( function() {\n\t\t\tvar offsetParent = this.offsetParent;\n\n\t\t\twhile ( offsetParent && jQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\t\t\t\toffsetParent = offsetParent.offsetParent;\n\t\t\t}\n\n\t\t\treturn offsetParent || documentElement;\n\t\t} );\n\t}\n} );\n\n// Create scrollLeft and scrollTop methods\njQuery.each( { scrollLeft: \"pageXOffset\", scrollTop: \"pageYOffset\" }, function( method, prop ) {\n\tvar top = \"pageYOffset\" === prop;\n\n\tjQuery.fn[ method ] = function( val ) {\n\t\treturn access( this, function( elem, method, val ) {\n\n\t\t\t// Coalesce documents and windows\n\t\t\tvar win;\n\t\t\tif ( isWindow( elem ) ) {\n\t\t\t\twin = elem;\n\t\t\t} else if ( elem.nodeType === 9 ) {\n\t\t\t\twin = elem.defaultView;\n\t\t\t}\n\n\t\t\tif ( val === undefined ) {\n\t\t\t\treturn win ? win[ prop ] : elem[ method ];\n\t\t\t}\n\n\t\t\tif ( win ) {\n\t\t\t\twin.scrollTo(\n\t\t\t\t\t!top ? val : win.pageXOffset,\n\t\t\t\t\ttop ? val : win.pageYOffset\n\t\t\t\t);\n\n\t\t\t} else {\n\t\t\t\telem[ method ] = val;\n\t\t\t}\n\t\t}, method, val, arguments.length );\n\t};\n} );\n\n// Support: Safari <=7 - 9.1, Chrome <=37 - 49\n// Add the top/left cssHooks using jQuery.fn.position\n// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084\n// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347\n// getComputedStyle returns percent when specified for top/left/bottom/right;\n// rather than make the css module depend on the offset module, just check for it here\njQuery.each( [ \"top\", \"left\" ], function( _i, prop ) {\n\tjQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,\n\t\tfunction( elem, computed ) {\n\t\t\tif ( computed ) {\n\t\t\t\tcomputed = curCSS( elem, prop );\n\n\t\t\t\t// If curCSS returns percentage, fallback to offset\n\t\t\t\treturn rnumnonpx.test( computed ) ?\n\t\t\t\t\tjQuery( elem ).position()[ prop ] + \"px\" :\n\t\t\t\t\tcomputed;\n\t\t\t}\n\t\t}\n\t);\n} );\n\n\n// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods\njQuery.each( { Height: \"height\", Width: \"width\" }, function( name, type ) {\n\tjQuery.each( { padding: \"inner\" + name, content: type, \"\": \"outer\" + name },\n\t\tfunction( defaultExtra, funcName ) {\n\n\t\t// Margin is only for outerHeight, outerWidth\n\t\tjQuery.fn[ funcName ] = function( margin, value ) {\n\t\t\tvar chainable = arguments.length && ( defaultExtra || typeof margin !== \"boolean\" ),\n\t\t\t\textra = defaultExtra || ( margin === true || value === true ? \"margin\" : \"border\" );\n\n\t\t\treturn access( this, function( elem, type, value ) {\n\t\t\t\tvar doc;\n\n\t\t\t\tif ( isWindow( elem ) ) {\n\n\t\t\t\t\t// $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)\n\t\t\t\t\treturn funcName.indexOf( \"outer\" ) === 0 ?\n\t\t\t\t\t\telem[ \"inner\" + name ] :\n\t\t\t\t\t\telem.document.documentElement[ \"client\" + name ];\n\t\t\t\t}\n\n\t\t\t\t// Get document width or height\n\t\t\t\tif ( elem.nodeType === 9 ) {\n\t\t\t\t\tdoc = elem.documentElement;\n\n\t\t\t\t\t// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],\n\t\t\t\t\t// whichever is greatest\n\t\t\t\t\treturn Math.max(\n\t\t\t\t\t\telem.body[ \"scroll\" + name ], doc[ \"scroll\" + name ],\n\t\t\t\t\t\telem.body[ \"offset\" + name ], doc[ \"offset\" + name ],\n\t\t\t\t\t\tdoc[ \"client\" + name ]\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn value === undefined ?\n\n\t\t\t\t\t// Get width or height on the element, requesting but not forcing parseFloat\n\t\t\t\t\tjQuery.css( elem, type, extra ) :\n\n\t\t\t\t\t// Set width or height on the element\n\t\t\t\t\tjQuery.style( elem, type, value, extra );\n\t\t\t}, type, chainable ? margin : undefined, chainable );\n\t\t};\n\t} );\n} );\n\n\njQuery.each( [\n\t\"ajaxStart\",\n\t\"ajaxStop\",\n\t\"ajaxComplete\",\n\t\"ajaxError\",\n\t\"ajaxSuccess\",\n\t\"ajaxSend\"\n], function( _i, type ) {\n\tjQuery.fn[ type ] = function( fn ) {\n\t\treturn this.on( type, fn );\n\t};\n} );\n\n\n\n\njQuery.fn.extend( {\n\n\tbind: function( types, data, fn ) {\n\t\treturn this.on( types, null, data, fn );\n\t},\n\tunbind: function( types, fn ) {\n\t\treturn this.off( types, null, fn );\n\t},\n\n\tdelegate: function( selector, types, data, fn ) {\n\t\treturn this.on( types, selector, data, fn );\n\t},\n\tundelegate: function( selector, types, fn ) {\n\n\t\t// ( namespace ) or ( selector, types [, fn] )\n\t\treturn arguments.length === 1 ?\n\t\t\tthis.off( selector, \"**\" ) :\n\t\t\tthis.off( types, selector || \"**\", fn );\n\t},\n\n\thover: function( fnOver, fnOut ) {\n\t\treturn this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );\n\t}\n} );\n\njQuery.each( ( \"blur focus focusin focusout resize scroll click dblclick \" +\n\t\"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave \" +\n\t\"change select submit keydown keypress keyup contextmenu\" ).split( \" \" ),\n\tfunction( _i, name ) {\n\n\t\t// Handle event binding\n\t\tjQuery.fn[ name ] = function( data, fn ) {\n\t\t\treturn arguments.length > 0 ?\n\t\t\t\tthis.on( name, null, data, fn ) :\n\t\t\t\tthis.trigger( name );\n\t\t};\n\t} );\n\n\n\n\n// Support: Android <=4.0 only\n// Make sure we trim BOM and NBSP\nvar rtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g;\n\n// Bind a function to a context, optionally partially applying any\n// arguments.\n// jQuery.proxy is deprecated to promote standards (specifically Function#bind)\n// However, it is not slated for removal any time soon\njQuery.proxy = function( fn, context ) {\n\tvar tmp, args, proxy;\n\n\tif ( typeof context === \"string\" ) {\n\t\ttmp = fn[ context ];\n\t\tcontext = fn;\n\t\tfn = tmp;\n\t}\n\n\t// Quick check to determine if target is callable, in the spec\n\t// this throws a TypeError, but we will just return undefined.\n\tif ( !isFunction( fn ) ) {\n\t\treturn undefined;\n\t}\n\n\t// Simulated bind\n\targs = slice.call( arguments, 2 );\n\tproxy = function() {\n\t\treturn fn.apply( context || this, args.concat( slice.call( arguments ) ) );\n\t};\n\n\t// Set the guid of unique handler to the same of original handler, so it can be removed\n\tproxy.guid = fn.guid = fn.guid || jQuery.guid++;\n\n\treturn proxy;\n};\n\njQuery.holdReady = function( hold ) {\n\tif ( hold ) {\n\t\tjQuery.readyWait++;\n\t} else {\n\t\tjQuery.ready( true );\n\t}\n};\njQuery.isArray = Array.isArray;\njQuery.parseJSON = JSON.parse;\njQuery.nodeName = nodeName;\njQuery.isFunction = isFunction;\njQuery.isWindow = isWindow;\njQuery.camelCase = camelCase;\njQuery.type = toType;\n\njQuery.now = Date.now;\n\njQuery.isNumeric = function( obj ) {\n\n\t// As of jQuery 3.0, isNumeric is limited to\n\t// strings and numbers (primitives or objects)\n\t// that can be coerced to finite numbers (gh-2662)\n\tvar type = jQuery.type( obj );\n\treturn ( type === \"number\" || type === \"string\" ) &&\n\n\t\t// parseFloat NaNs numeric-cast false positives (\"\")\n\t\t// ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n\t\t// subtraction forces infinities to NaN\n\t\t!isNaN( obj - parseFloat( obj ) );\n};\n\njQuery.trim = function( text ) {\n\treturn text == null ?\n\t\t\"\" :\n\t\t( text + \"\" ).replace( rtrim, \"\" );\n};\n\n\n\n// Register as a named AMD module, since jQuery can be concatenated with other\n// files that may use define, but not via a proper concatenation script that\n// understands anonymous AMD modules. A named AMD is safest and most robust\n// way to register. Lowercase jquery is used because AMD module names are\n// derived from file names, and jQuery is normally delivered in a lowercase\n// file name. Do this after creating the global so that if an AMD module wants\n// to call noConflict to hide this version of jQuery, it will work.\n\n// Note that for maximum portability, libraries that are not jQuery should\n// declare themselves as anonymous modules, and avoid setting a global if an\n// AMD loader is present. jQuery is a special case. For more information, see\n// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon\n\nif ( typeof define === \"function\" && define.amd ) {\n\tdefine( \"jquery\", [], function() {\n\t\treturn jQuery;\n\t} );\n}\n\n\n\n\nvar\n\n\t// Map over jQuery in case of overwrite\n\t_jQuery = window.jQuery,\n\n\t// Map over the $ in case of overwrite\n\t_$ = window.$;\n\njQuery.noConflict = function( deep ) {\n\tif ( window.$ === jQuery ) {\n\t\twindow.$ = _$;\n\t}\n\n\tif ( deep && window.jQuery === jQuery ) {\n\t\twindow.jQuery = _jQuery;\n\t}\n\n\treturn jQuery;\n};\n\n// Expose jQuery and $ identifiers, even in AMD\n// (#7102#comment:10, https://github.com/jquery/jquery/pull/557)\n// and CommonJS for browser emulators (#13566)\nif ( typeof noGlobal === \"undefined\" ) {\n\twindow.jQuery = window.$ = jQuery;\n}\n\n\n\n\nreturn jQuery;\n} );\n","module.exports =\n/******/ (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 = \"/dist/\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 127);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 127:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n\n// EXTERNAL MODULE: external \"element-ui/lib/utils/resize-event\"\nvar resize_event_ = __webpack_require__(16);\n\n// EXTERNAL MODULE: external \"element-ui/lib/utils/scrollbar-width\"\nvar scrollbar_width_ = __webpack_require__(39);\nvar scrollbar_width_default = /*#__PURE__*/__webpack_require__.n(scrollbar_width_);\n\n// EXTERNAL MODULE: external \"element-ui/lib/utils/util\"\nvar util_ = __webpack_require__(3);\n\n// EXTERNAL MODULE: external \"element-ui/lib/utils/dom\"\nvar dom_ = __webpack_require__(2);\n\n// CONCATENATED MODULE: ./packages/scrollbar/src/util.js\nvar BAR_MAP = {\n vertical: {\n offset: 'offsetHeight',\n scroll: 'scrollTop',\n scrollSize: 'scrollHeight',\n size: 'height',\n key: 'vertical',\n axis: 'Y',\n client: 'clientY',\n direction: 'top'\n },\n horizontal: {\n offset: 'offsetWidth',\n scroll: 'scrollLeft',\n scrollSize: 'scrollWidth',\n size: 'width',\n key: 'horizontal',\n axis: 'X',\n client: 'clientX',\n direction: 'left'\n }\n};\n\nfunction renderThumbStyle(_ref) {\n var move = _ref.move,\n size = _ref.size,\n bar = _ref.bar;\n\n var style = {};\n var translate = 'translate' + bar.axis + '(' + move + '%)';\n\n style[bar.size] = size;\n style.transform = translate;\n style.msTransform = translate;\n style.webkitTransform = translate;\n\n return style;\n};\n// CONCATENATED MODULE: ./packages/scrollbar/src/bar.js\n\n\n\n/* istanbul ignore next */\n/* harmony default export */ var src_bar = ({\n name: 'Bar',\n\n props: {\n vertical: Boolean,\n size: String,\n move: Number\n },\n\n computed: {\n bar: function bar() {\n return BAR_MAP[this.vertical ? 'vertical' : 'horizontal'];\n },\n wrap: function wrap() {\n return this.$parent.wrap;\n }\n },\n\n render: function render(h) {\n var size = this.size,\n move = this.move,\n bar = this.bar;\n\n\n return h(\n 'div',\n {\n 'class': ['el-scrollbar__bar', 'is-' + bar.key],\n on: {\n 'mousedown': this.clickTrackHandler\n }\n },\n [h('div', {\n ref: 'thumb',\n 'class': 'el-scrollbar__thumb',\n on: {\n 'mousedown': this.clickThumbHandler\n },\n\n style: renderThumbStyle({ size: size, move: move, bar: bar }) })]\n );\n },\n\n\n methods: {\n clickThumbHandler: function clickThumbHandler(e) {\n // prevent click event of right button\n if (e.ctrlKey || e.button === 2) {\n return;\n }\n this.startDrag(e);\n this[this.bar.axis] = e.currentTarget[this.bar.offset] - (e[this.bar.client] - e.currentTarget.getBoundingClientRect()[this.bar.direction]);\n },\n clickTrackHandler: function clickTrackHandler(e) {\n var offset = Math.abs(e.target.getBoundingClientRect()[this.bar.direction] - e[this.bar.client]);\n var thumbHalf = this.$refs.thumb[this.bar.offset] / 2;\n var thumbPositionPercentage = (offset - thumbHalf) * 100 / this.$el[this.bar.offset];\n\n this.wrap[this.bar.scroll] = thumbPositionPercentage * this.wrap[this.bar.scrollSize] / 100;\n },\n startDrag: function startDrag(e) {\n e.stopImmediatePropagation();\n this.cursorDown = true;\n\n Object(dom_[\"on\"])(document, 'mousemove', this.mouseMoveDocumentHandler);\n Object(dom_[\"on\"])(document, 'mouseup', this.mouseUpDocumentHandler);\n document.onselectstart = function () {\n return false;\n };\n },\n mouseMoveDocumentHandler: function mouseMoveDocumentHandler(e) {\n if (this.cursorDown === false) return;\n var prevPage = this[this.bar.axis];\n\n if (!prevPage) return;\n\n var offset = (this.$el.getBoundingClientRect()[this.bar.direction] - e[this.bar.client]) * -1;\n var thumbClickPosition = this.$refs.thumb[this.bar.offset] - prevPage;\n var thumbPositionPercentage = (offset - thumbClickPosition) * 100 / this.$el[this.bar.offset];\n\n this.wrap[this.bar.scroll] = thumbPositionPercentage * this.wrap[this.bar.scrollSize] / 100;\n },\n mouseUpDocumentHandler: function mouseUpDocumentHandler(e) {\n this.cursorDown = false;\n this[this.bar.axis] = 0;\n Object(dom_[\"off\"])(document, 'mousemove', this.mouseMoveDocumentHandler);\n document.onselectstart = null;\n }\n },\n\n destroyed: function destroyed() {\n Object(dom_[\"off\"])(document, 'mouseup', this.mouseUpDocumentHandler);\n }\n});\n// CONCATENATED MODULE: ./packages/scrollbar/src/main.js\n// reference https://github.com/noeldelgado/gemini-scrollbar/blob/master/index.js\n\n\n\n\n\n\n/* istanbul ignore next */\n/* harmony default export */ var main = ({\n name: 'ElScrollbar',\n\n components: { Bar: src_bar },\n\n props: {\n native: Boolean,\n wrapStyle: {},\n wrapClass: {},\n viewClass: {},\n viewStyle: {},\n noresize: Boolean, // 如果 container 尺寸不会发生变化,最好设置它可以优化性能\n tag: {\n type: String,\n default: 'div'\n }\n },\n\n data: function data() {\n return {\n sizeWidth: '0',\n sizeHeight: '0',\n moveX: 0,\n moveY: 0\n };\n },\n\n\n computed: {\n wrap: function wrap() {\n return this.$refs.wrap;\n }\n },\n\n render: function render(h) {\n var gutter = scrollbar_width_default()();\n var style = this.wrapStyle;\n\n if (gutter) {\n var gutterWith = '-' + gutter + 'px';\n var gutterStyle = 'margin-bottom: ' + gutterWith + '; margin-right: ' + gutterWith + ';';\n\n if (Array.isArray(this.wrapStyle)) {\n style = Object(util_[\"toObject\"])(this.wrapStyle);\n style.marginRight = style.marginBottom = gutterWith;\n } else if (typeof this.wrapStyle === 'string') {\n style += gutterStyle;\n } else {\n style = gutterStyle;\n }\n }\n var view = h(this.tag, {\n class: ['el-scrollbar__view', this.viewClass],\n style: this.viewStyle,\n ref: 'resize'\n }, this.$slots.default);\n var wrap = h(\n 'div',\n {\n ref: 'wrap',\n style: style,\n on: {\n 'scroll': this.handleScroll\n },\n\n 'class': [this.wrapClass, 'el-scrollbar__wrap', gutter ? '' : 'el-scrollbar__wrap--hidden-default'] },\n [[view]]\n );\n var nodes = void 0;\n\n if (!this.native) {\n nodes = [wrap, h(src_bar, {\n attrs: {\n move: this.moveX,\n size: this.sizeWidth }\n }), h(src_bar, {\n attrs: {\n vertical: true,\n move: this.moveY,\n size: this.sizeHeight }\n })];\n } else {\n nodes = [h(\n 'div',\n {\n ref: 'wrap',\n 'class': [this.wrapClass, 'el-scrollbar__wrap'],\n style: style },\n [[view]]\n )];\n }\n return h('div', { class: 'el-scrollbar' }, nodes);\n },\n\n\n methods: {\n handleScroll: function handleScroll() {\n var wrap = this.wrap;\n\n this.moveY = wrap.scrollTop * 100 / wrap.clientHeight;\n this.moveX = wrap.scrollLeft * 100 / wrap.clientWidth;\n },\n update: function update() {\n var heightPercentage = void 0,\n widthPercentage = void 0;\n var wrap = this.wrap;\n if (!wrap) return;\n\n heightPercentage = wrap.clientHeight * 100 / wrap.scrollHeight;\n widthPercentage = wrap.clientWidth * 100 / wrap.scrollWidth;\n\n this.sizeHeight = heightPercentage < 100 ? heightPercentage + '%' : '';\n this.sizeWidth = widthPercentage < 100 ? widthPercentage + '%' : '';\n }\n },\n\n mounted: function mounted() {\n if (this.native) return;\n this.$nextTick(this.update);\n !this.noresize && Object(resize_event_[\"addResizeListener\"])(this.$refs.resize, this.update);\n },\n beforeDestroy: function beforeDestroy() {\n if (this.native) return;\n !this.noresize && Object(resize_event_[\"removeResizeListener\"])(this.$refs.resize, this.update);\n }\n});\n// CONCATENATED MODULE: ./packages/scrollbar/index.js\n\n\n/* istanbul ignore next */\nmain.install = function (Vue) {\n Vue.component(main.name, main);\n};\n\n/* harmony default export */ var scrollbar = __webpack_exports__[\"default\"] = (main);\n\n/***/ }),\n\n/***/ 16:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/resize-event\");\n\n/***/ }),\n\n/***/ 2:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/dom\");\n\n/***/ }),\n\n/***/ 3:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/util\");\n\n/***/ }),\n\n/***/ 39:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/scrollbar-width\");\n\n/***/ })\n\n/******/ });","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","exports.f = {}.propertyIsEnumerable;\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\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","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? 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","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('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","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","/*!\n * Vue.js v2.6.12\n * (c) 2014-2020 Evan You\n * Released under the MIT License.\n */\n/* */\n\nvar emptyObject = Object.freeze({});\n\n// These helpers produce better VM code in JS engines due to their\n// explicitness and function inlining.\nfunction isUndef (v) {\n return v === undefined || v === null\n}\n\nfunction isDef (v) {\n return v !== undefined && v !== null\n}\n\nfunction isTrue (v) {\n return v === true\n}\n\nfunction isFalse (v) {\n return v === false\n}\n\n/**\n * Check if value is primitive.\n */\nfunction isPrimitive (value) {\n return (\n typeof value === 'string' ||\n typeof value === 'number' ||\n // $flow-disable-line\n typeof value === 'symbol' ||\n typeof value === 'boolean'\n )\n}\n\n/**\n * Quick object check - this is primarily used to tell\n * Objects from primitive values when we know the value\n * is a JSON-compliant type.\n */\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\n/**\n * Get the raw type string of a value, e.g., [object Object].\n */\nvar _toString = Object.prototype.toString;\n\nfunction toRawType (value) {\n return _toString.call(value).slice(8, -1)\n}\n\n/**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\nfunction isPlainObject (obj) {\n return _toString.call(obj) === '[object Object]'\n}\n\nfunction isRegExp (v) {\n return _toString.call(v) === '[object RegExp]'\n}\n\n/**\n * Check if val is a valid array index.\n */\nfunction isValidArrayIndex (val) {\n var n = parseFloat(String(val));\n return n >= 0 && Math.floor(n) === n && isFinite(val)\n}\n\nfunction isPromise (val) {\n return (\n isDef(val) &&\n typeof val.then === 'function' &&\n typeof val.catch === 'function'\n )\n}\n\n/**\n * Convert a value to a string that is actually rendered.\n */\nfunction toString (val) {\n return val == null\n ? ''\n : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)\n ? JSON.stringify(val, null, 2)\n : String(val)\n}\n\n/**\n * Convert an input value to a number for persistence.\n * If the conversion fails, return original string.\n */\nfunction toNumber (val) {\n var n = parseFloat(val);\n return isNaN(n) ? val : n\n}\n\n/**\n * Make a map and return a function for checking if a key\n * is in that map.\n */\nfunction makeMap (\n str,\n expectsLowerCase\n) {\n var map = Object.create(null);\n var list = str.split(',');\n for (var i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase\n ? function (val) { return map[val.toLowerCase()]; }\n : function (val) { return map[val]; }\n}\n\n/**\n * Check if a tag is a built-in tag.\n */\nvar isBuiltInTag = makeMap('slot,component', true);\n\n/**\n * Check if an attribute is a reserved attribute.\n */\nvar isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');\n\n/**\n * Remove an item from an array.\n */\nfunction remove (arr, item) {\n if (arr.length) {\n var index = arr.indexOf(item);\n if (index > -1) {\n return arr.splice(index, 1)\n }\n }\n}\n\n/**\n * Check whether an object has the property.\n */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n return hasOwnProperty.call(obj, key)\n}\n\n/**\n * Create a cached version of a pure function.\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\n/**\n * Camelize a hyphen-delimited string.\n */\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })\n});\n\n/**\n * Capitalize a string.\n */\nvar capitalize = cached(function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1)\n});\n\n/**\n * Hyphenate a camelCase string.\n */\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cached(function (str) {\n return str.replace(hyphenateRE, '-$1').toLowerCase()\n});\n\n/**\n * Simple bind polyfill for environments that do not support it,\n * e.g., PhantomJS 1.x. Technically, we don't need this anymore\n * since native bind is now performant enough in most browsers.\n * But removing it would mean breaking code that was able to run in\n * PhantomJS 1.x, so this must be kept for backward compatibility.\n */\n\n/* istanbul ignore next */\nfunction polyfillBind (fn, ctx) {\n function boundFn (a) {\n var l = arguments.length;\n return l\n ? l > 1\n ? fn.apply(ctx, arguments)\n : fn.call(ctx, a)\n : fn.call(ctx)\n }\n\n boundFn._length = fn.length;\n return boundFn\n}\n\nfunction nativeBind (fn, ctx) {\n return fn.bind(ctx)\n}\n\nvar bind = Function.prototype.bind\n ? nativeBind\n : polyfillBind;\n\n/**\n * Convert an Array-like object to a real Array.\n */\nfunction toArray (list, start) {\n start = start || 0;\n var i = list.length - start;\n var ret = new Array(i);\n while (i--) {\n ret[i] = list[i + start];\n }\n return ret\n}\n\n/**\n * Mix properties into target object.\n */\nfunction extend (to, _from) {\n for (var key in _from) {\n to[key] = _from[key];\n }\n return to\n}\n\n/**\n * Merge an Array of Objects into a single Object.\n */\nfunction toObject (arr) {\n var res = {};\n for (var i = 0; i < arr.length; i++) {\n if (arr[i]) {\n extend(res, arr[i]);\n }\n }\n return res\n}\n\n/* eslint-disable no-unused-vars */\n\n/**\n * Perform no operation.\n * Stubbing args to make Flow happy without leaving useless transpiled code\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).\n */\nfunction noop (a, b, c) {}\n\n/**\n * Always return false.\n */\nvar no = function (a, b, c) { return false; };\n\n/* eslint-enable no-unused-vars */\n\n/**\n * Return the same value.\n */\nvar identity = function (_) { return _; };\n\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n */\nfunction looseEqual (a, b) {\n if (a === b) { return true }\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = Array.isArray(a);\n var isArrayB = Array.isArray(b);\n if (isArrayA && isArrayB) {\n return a.length === b.length && a.every(function (e, i) {\n return looseEqual(e, b[i])\n })\n } else if (a instanceof Date && b instanceof Date) {\n return a.getTime() === b.getTime()\n } else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return keysA.length === keysB.length && keysA.every(function (key) {\n return looseEqual(a[key], b[key])\n })\n } else {\n /* istanbul ignore next */\n return false\n }\n } catch (e) {\n /* istanbul ignore next */\n return false\n }\n } else if (!isObjectA && !isObjectB) {\n return String(a) === String(b)\n } else {\n return false\n }\n}\n\n/**\n * Return the first index at which a loosely equal value can be\n * found in the array (if value is a plain object, the array must\n * contain an object of the same shape), or -1 if it is not present.\n */\nfunction looseIndexOf (arr, val) {\n for (var i = 0; i < arr.length; i++) {\n if (looseEqual(arr[i], val)) { return i }\n }\n return -1\n}\n\n/**\n * Ensure a function is called only once.\n */\nfunction once (fn) {\n var called = false;\n return function () {\n if (!called) {\n called = true;\n fn.apply(this, arguments);\n }\n }\n}\n\nvar SSR_ATTR = 'data-server-rendered';\n\nvar ASSET_TYPES = [\n 'component',\n 'directive',\n 'filter'\n];\n\nvar LIFECYCLE_HOOKS = [\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUpdate',\n 'updated',\n 'beforeDestroy',\n 'destroyed',\n 'activated',\n 'deactivated',\n 'errorCaptured',\n 'serverPrefetch'\n];\n\n/* */\n\n\n\nvar config = ({\n /**\n * Option merge strategies (used in core/util/options)\n */\n // $flow-disable-line\n optionMergeStrategies: Object.create(null),\n\n /**\n * Whether to suppress warnings.\n */\n silent: false,\n\n /**\n * Show production mode tip message on boot?\n */\n productionTip: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to enable devtools\n */\n devtools: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to record perf\n */\n performance: false,\n\n /**\n * Error handler for watcher errors\n */\n errorHandler: null,\n\n /**\n * Warn handler for watcher warns\n */\n warnHandler: null,\n\n /**\n * Ignore certain custom elements\n */\n ignoredElements: [],\n\n /**\n * Custom user key aliases for v-on\n */\n // $flow-disable-line\n keyCodes: Object.create(null),\n\n /**\n * Check if a tag is reserved so that it cannot be registered as a\n * component. This is platform-dependent and may be overwritten.\n */\n isReservedTag: no,\n\n /**\n * Check if an attribute is reserved so that it cannot be used as a component\n * prop. This is platform-dependent and may be overwritten.\n */\n isReservedAttr: no,\n\n /**\n * Check if a tag is an unknown element.\n * Platform-dependent.\n */\n isUnknownElement: no,\n\n /**\n * Get the namespace of an element\n */\n getTagNamespace: noop,\n\n /**\n * Parse the real tag name for the specific platform.\n */\n parsePlatformTagName: identity,\n\n /**\n * Check if an attribute must be bound using property, e.g. value\n * Platform-dependent.\n */\n mustUseProp: no,\n\n /**\n * Perform updates asynchronously. Intended to be used by Vue Test Utils\n * This will significantly reduce performance if set to false.\n */\n async: true,\n\n /**\n * Exposed for legacy reasons\n */\n _lifecycleHooks: LIFECYCLE_HOOKS\n});\n\n/* */\n\n/**\n * unicode letters used for parsing html tags, component names and property paths.\n * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname\n * skipping \\u10000-\\uEFFFF due to it freezing up PhantomJS\n */\nvar unicodeRegExp = /a-zA-Z\\u00B7\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u203F-\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD/;\n\n/**\n * Check if a string starts with $ or _\n */\nfunction isReserved (str) {\n var c = (str + '').charCodeAt(0);\n return c === 0x24 || c === 0x5F\n}\n\n/**\n * Define a property.\n */\nfunction def (obj, key, val, enumerable) {\n Object.defineProperty(obj, key, {\n value: val,\n enumerable: !!enumerable,\n writable: true,\n configurable: true\n });\n}\n\n/**\n * Parse simple path.\n */\nvar bailRE = new RegExp((\"[^\" + (unicodeRegExp.source) + \".$_\\\\d]\"));\nfunction parsePath (path) {\n if (bailRE.test(path)) {\n return\n }\n var segments = path.split('.');\n return function (obj) {\n for (var i = 0; i < segments.length; i++) {\n if (!obj) { return }\n obj = obj[segments[i]];\n }\n return obj\n }\n}\n\n/* */\n\n// can we use __proto__?\nvar hasProto = '__proto__' in {};\n\n// Browser environment sniffing\nvar inBrowser = typeof window !== 'undefined';\nvar inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;\nvar weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();\nvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\nvar isIE = UA && /msie|trident/.test(UA);\nvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nvar isEdge = UA && UA.indexOf('edge/') > 0;\nvar isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');\nvar isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');\nvar isChrome = UA && /chrome\\/\\d+/.test(UA) && !isEdge;\nvar isPhantomJS = UA && /phantomjs/.test(UA);\nvar isFF = UA && UA.match(/firefox\\/(\\d+)/);\n\n// Firefox has a \"watch\" function on Object.prototype...\nvar nativeWatch = ({}).watch;\n\nvar supportsPassive = false;\nif (inBrowser) {\n try {\n var opts = {};\n Object.defineProperty(opts, 'passive', ({\n get: function get () {\n /* istanbul ignore next */\n supportsPassive = true;\n }\n })); // https://github.com/facebook/flow/issues/285\n window.addEventListener('test-passive', null, opts);\n } catch (e) {}\n}\n\n// this needs to be lazy-evaled because vue may be required before\n// vue-server-renderer can set VUE_ENV\nvar _isServer;\nvar isServerRendering = function () {\n if (_isServer === undefined) {\n /* istanbul ignore if */\n if (!inBrowser && !inWeex && typeof global !== 'undefined') {\n // detect presence of vue-server-renderer and avoid\n // Webpack shimming the process\n _isServer = global['process'] && global['process'].env.VUE_ENV === 'server';\n } else {\n _isServer = false;\n }\n }\n return _isServer\n};\n\n// detect devtools\nvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\n/* istanbul ignore next */\nfunction isNative (Ctor) {\n return typeof Ctor === 'function' && /native code/.test(Ctor.toString())\n}\n\nvar hasSymbol =\n typeof Symbol !== 'undefined' && isNative(Symbol) &&\n typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);\n\nvar _Set;\n/* istanbul ignore if */ // $flow-disable-line\nif (typeof Set !== 'undefined' && isNative(Set)) {\n // use native Set when available.\n _Set = Set;\n} else {\n // a non-standard Set polyfill that only works with primitive keys.\n _Set = /*@__PURE__*/(function () {\n function Set () {\n this.set = Object.create(null);\n }\n Set.prototype.has = function has (key) {\n return this.set[key] === true\n };\n Set.prototype.add = function add (key) {\n this.set[key] = true;\n };\n Set.prototype.clear = function clear () {\n this.set = Object.create(null);\n };\n\n return Set;\n }());\n}\n\n/* */\n\nvar warn = noop;\nvar tip = noop;\nvar generateComponentTrace = (noop); // work around flow check\nvar formatComponentName = (noop);\n\nif (process.env.NODE_ENV !== 'production') {\n var hasConsole = typeof console !== 'undefined';\n var classifyRE = /(?:^|[-_])(\\w)/g;\n var classify = function (str) { return str\n .replace(classifyRE, function (c) { return c.toUpperCase(); })\n .replace(/[-_]/g, ''); };\n\n warn = function (msg, vm) {\n var trace = vm ? generateComponentTrace(vm) : '';\n\n if (config.warnHandler) {\n config.warnHandler.call(null, msg, vm, trace);\n } else if (hasConsole && (!config.silent)) {\n console.error((\"[Vue warn]: \" + msg + trace));\n }\n };\n\n tip = function (msg, vm) {\n if (hasConsole && (!config.silent)) {\n console.warn(\"[Vue tip]: \" + msg + (\n vm ? generateComponentTrace(vm) : ''\n ));\n }\n };\n\n formatComponentName = function (vm, includeFile) {\n if (vm.$root === vm) {\n return '<Root>'\n }\n var options = typeof vm === 'function' && vm.cid != null\n ? vm.options\n : vm._isVue\n ? vm.$options || vm.constructor.options\n : vm;\n var name = options.name || options._componentTag;\n var file = options.__file;\n if (!name && file) {\n var match = file.match(/([^/\\\\]+)\\.vue$/);\n name = match && match[1];\n }\n\n return (\n (name ? (\"<\" + (classify(name)) + \">\") : \"<Anonymous>\") +\n (file && includeFile !== false ? (\" at \" + file) : '')\n )\n };\n\n var repeat = function (str, n) {\n var res = '';\n while (n) {\n if (n % 2 === 1) { res += str; }\n if (n > 1) { str += str; }\n n >>= 1;\n }\n return res\n };\n\n generateComponentTrace = function (vm) {\n if (vm._isVue && vm.$parent) {\n var tree = [];\n var currentRecursiveSequence = 0;\n while (vm) {\n if (tree.length > 0) {\n var last = tree[tree.length - 1];\n if (last.constructor === vm.constructor) {\n currentRecursiveSequence++;\n vm = vm.$parent;\n continue\n } else if (currentRecursiveSequence > 0) {\n tree[tree.length - 1] = [last, currentRecursiveSequence];\n currentRecursiveSequence = 0;\n }\n }\n tree.push(vm);\n vm = vm.$parent;\n }\n return '\\n\\nfound in\\n\\n' + tree\n .map(function (vm, i) { return (\"\" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)\n ? ((formatComponentName(vm[0])) + \"... (\" + (vm[1]) + \" recursive calls)\")\n : formatComponentName(vm))); })\n .join('\\n')\n } else {\n return (\"\\n\\n(found in \" + (formatComponentName(vm)) + \")\")\n }\n };\n}\n\n/* */\n\nvar uid = 0;\n\n/**\n * A dep is an observable that can have multiple\n * directives subscribing to it.\n */\nvar Dep = function Dep () {\n this.id = uid++;\n this.subs = [];\n};\n\nDep.prototype.addSub = function addSub (sub) {\n this.subs.push(sub);\n};\n\nDep.prototype.removeSub = function removeSub (sub) {\n remove(this.subs, sub);\n};\n\nDep.prototype.depend = function depend () {\n if (Dep.target) {\n Dep.target.addDep(this);\n }\n};\n\nDep.prototype.notify = function notify () {\n // stabilize the subscriber list first\n var subs = this.subs.slice();\n if (process.env.NODE_ENV !== 'production' && !config.async) {\n // subs aren't sorted in scheduler if not running async\n // we need to sort them now to make sure they fire in correct\n // order\n subs.sort(function (a, b) { return a.id - b.id; });\n }\n for (var i = 0, l = subs.length; i < l; i++) {\n subs[i].update();\n }\n};\n\n// The current target watcher being evaluated.\n// This is globally unique because only one watcher\n// can be evaluated at a time.\nDep.target = null;\nvar targetStack = [];\n\nfunction pushTarget (target) {\n targetStack.push(target);\n Dep.target = target;\n}\n\nfunction popTarget () {\n targetStack.pop();\n Dep.target = targetStack[targetStack.length - 1];\n}\n\n/* */\n\nvar VNode = function VNode (\n tag,\n data,\n children,\n text,\n elm,\n context,\n componentOptions,\n asyncFactory\n) {\n this.tag = tag;\n this.data = data;\n this.children = children;\n this.text = text;\n this.elm = elm;\n this.ns = undefined;\n this.context = context;\n this.fnContext = undefined;\n this.fnOptions = undefined;\n this.fnScopeId = undefined;\n this.key = data && data.key;\n this.componentOptions = componentOptions;\n this.componentInstance = undefined;\n this.parent = undefined;\n this.raw = false;\n this.isStatic = false;\n this.isRootInsert = true;\n this.isComment = false;\n this.isCloned = false;\n this.isOnce = false;\n this.asyncFactory = asyncFactory;\n this.asyncMeta = undefined;\n this.isAsyncPlaceholder = false;\n};\n\nvar prototypeAccessors = { child: { configurable: true } };\n\n// DEPRECATED: alias for componentInstance for backwards compat.\n/* istanbul ignore next */\nprototypeAccessors.child.get = function () {\n return this.componentInstance\n};\n\nObject.defineProperties( VNode.prototype, prototypeAccessors );\n\nvar createEmptyVNode = function (text) {\n if ( text === void 0 ) text = '';\n\n var node = new VNode();\n node.text = text;\n node.isComment = true;\n return node\n};\n\nfunction createTextVNode (val) {\n return new VNode(undefined, undefined, undefined, String(val))\n}\n\n// optimized shallow clone\n// used for static nodes and slot nodes because they may be reused across\n// multiple renders, cloning them avoids errors when DOM manipulations rely\n// on their elm reference.\nfunction cloneVNode (vnode) {\n var cloned = new VNode(\n vnode.tag,\n vnode.data,\n // #7975\n // clone children array to avoid mutating original in case of cloning\n // a child.\n vnode.children && vnode.children.slice(),\n vnode.text,\n vnode.elm,\n vnode.context,\n vnode.componentOptions,\n vnode.asyncFactory\n );\n cloned.ns = vnode.ns;\n cloned.isStatic = vnode.isStatic;\n cloned.key = vnode.key;\n cloned.isComment = vnode.isComment;\n cloned.fnContext = vnode.fnContext;\n cloned.fnOptions = vnode.fnOptions;\n cloned.fnScopeId = vnode.fnScopeId;\n cloned.asyncMeta = vnode.asyncMeta;\n cloned.isCloned = true;\n return cloned\n}\n\n/*\n * not type checking this file because flow doesn't play well with\n * dynamically accessing methods on Array prototype\n */\n\nvar arrayProto = Array.prototype;\nvar arrayMethods = Object.create(arrayProto);\n\nvar methodsToPatch = [\n 'push',\n 'pop',\n 'shift',\n 'unshift',\n 'splice',\n 'sort',\n 'reverse'\n];\n\n/**\n * Intercept mutating methods and emit events\n */\nmethodsToPatch.forEach(function (method) {\n // cache original method\n var original = arrayProto[method];\n def(arrayMethods, method, function mutator () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var result = original.apply(this, args);\n var ob = this.__ob__;\n var inserted;\n switch (method) {\n case 'push':\n case 'unshift':\n inserted = args;\n break\n case 'splice':\n inserted = args.slice(2);\n break\n }\n if (inserted) { ob.observeArray(inserted); }\n // notify change\n ob.dep.notify();\n return result\n });\n});\n\n/* */\n\nvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\n\n/**\n * In some cases we may want to disable observation inside a component's\n * update computation.\n */\nvar shouldObserve = true;\n\nfunction toggleObserving (value) {\n shouldObserve = value;\n}\n\n/**\n * Observer class that is attached to each observed\n * object. Once attached, the observer converts the target\n * object's property keys into getter/setters that\n * collect dependencies and dispatch updates.\n */\nvar Observer = function Observer (value) {\n this.value = value;\n this.dep = new Dep();\n this.vmCount = 0;\n def(value, '__ob__', this);\n if (Array.isArray(value)) {\n if (hasProto) {\n protoAugment(value, arrayMethods);\n } else {\n copyAugment(value, arrayMethods, arrayKeys);\n }\n this.observeArray(value);\n } else {\n this.walk(value);\n }\n};\n\n/**\n * Walk through all properties and convert them into\n * getter/setters. This method should only be called when\n * value type is Object.\n */\nObserver.prototype.walk = function walk (obj) {\n var keys = Object.keys(obj);\n for (var i = 0; i < keys.length; i++) {\n defineReactive$$1(obj, keys[i]);\n }\n};\n\n/**\n * Observe a list of Array items.\n */\nObserver.prototype.observeArray = function observeArray (items) {\n for (var i = 0, l = items.length; i < l; i++) {\n observe(items[i]);\n }\n};\n\n// helpers\n\n/**\n * Augment a target Object or Array by intercepting\n * the prototype chain using __proto__\n */\nfunction protoAugment (target, src) {\n /* eslint-disable no-proto */\n target.__proto__ = src;\n /* eslint-enable no-proto */\n}\n\n/**\n * Augment a target Object or Array by defining\n * hidden properties.\n */\n/* istanbul ignore next */\nfunction copyAugment (target, src, keys) {\n for (var i = 0, l = keys.length; i < l; i++) {\n var key = keys[i];\n def(target, key, src[key]);\n }\n}\n\n/**\n * Attempt to create an observer instance for a value,\n * returns the new observer if successfully observed,\n * or the existing observer if the value already has one.\n */\nfunction observe (value, asRootData) {\n if (!isObject(value) || value instanceof VNode) {\n return\n }\n var ob;\n if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\n ob = value.__ob__;\n } else if (\n shouldObserve &&\n !isServerRendering() &&\n (Array.isArray(value) || isPlainObject(value)) &&\n Object.isExtensible(value) &&\n !value._isVue\n ) {\n ob = new Observer(value);\n }\n if (asRootData && ob) {\n ob.vmCount++;\n }\n return ob\n}\n\n/**\n * Define a reactive property on an Object.\n */\nfunction defineReactive$$1 (\n obj,\n key,\n val,\n customSetter,\n shallow\n) {\n var dep = new Dep();\n\n var property = Object.getOwnPropertyDescriptor(obj, key);\n if (property && property.configurable === false) {\n return\n }\n\n // cater for pre-defined getter/setters\n var getter = property && property.get;\n var setter = property && property.set;\n if ((!getter || setter) && arguments.length === 2) {\n val = obj[key];\n }\n\n var childOb = !shallow && observe(val);\n Object.defineProperty(obj, key, {\n enumerable: true,\n configurable: true,\n get: function reactiveGetter () {\n var value = getter ? getter.call(obj) : val;\n if (Dep.target) {\n dep.depend();\n if (childOb) {\n childOb.dep.depend();\n if (Array.isArray(value)) {\n dependArray(value);\n }\n }\n }\n return value\n },\n set: function reactiveSetter (newVal) {\n var value = getter ? getter.call(obj) : val;\n /* eslint-disable no-self-compare */\n if (newVal === value || (newVal !== newVal && value !== value)) {\n return\n }\n /* eslint-enable no-self-compare */\n if (process.env.NODE_ENV !== 'production' && customSetter) {\n customSetter();\n }\n // #7981: for accessor properties without setter\n if (getter && !setter) { return }\n if (setter) {\n setter.call(obj, newVal);\n } else {\n val = newVal;\n }\n childOb = !shallow && observe(newVal);\n dep.notify();\n }\n });\n}\n\n/**\n * Set a property on an object. Adds the new property and\n * triggers change notification if the property doesn't\n * already exist.\n */\nfunction set (target, key, val) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot set reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.length = Math.max(target.length, key);\n target.splice(key, 1, val);\n return val\n }\n if (key in target && !(key in Object.prototype)) {\n target[key] = val;\n return val\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid adding reactive properties to a Vue instance or its root $data ' +\n 'at runtime - declare it upfront in the data option.'\n );\n return val\n }\n if (!ob) {\n target[key] = val;\n return val\n }\n defineReactive$$1(ob.value, key, val);\n ob.dep.notify();\n return val\n}\n\n/**\n * Delete a property and trigger change if necessary.\n */\nfunction del (target, key) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot delete reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.splice(key, 1);\n return\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid deleting properties on a Vue instance or its root $data ' +\n '- just set it to null.'\n );\n return\n }\n if (!hasOwn(target, key)) {\n return\n }\n delete target[key];\n if (!ob) {\n return\n }\n ob.dep.notify();\n}\n\n/**\n * Collect dependencies on array elements when the array is touched, since\n * we cannot intercept array element access like property getters.\n */\nfunction dependArray (value) {\n for (var e = (void 0), i = 0, l = value.length; i < l; i++) {\n e = value[i];\n e && e.__ob__ && e.__ob__.dep.depend();\n if (Array.isArray(e)) {\n dependArray(e);\n }\n }\n}\n\n/* */\n\n/**\n * Option overwriting strategies are functions that handle\n * how to merge a parent option value and a child option\n * value into the final value.\n */\nvar strats = config.optionMergeStrategies;\n\n/**\n * Options with restrictions\n */\nif (process.env.NODE_ENV !== 'production') {\n strats.el = strats.propsData = function (parent, child, vm, key) {\n if (!vm) {\n warn(\n \"option \\\"\" + key + \"\\\" can only be used during instance \" +\n 'creation with the `new` keyword.'\n );\n }\n return defaultStrat(parent, child)\n };\n}\n\n/**\n * Helper that recursively merges two data objects together.\n */\nfunction mergeData (to, from) {\n if (!from) { return to }\n var key, toVal, fromVal;\n\n var keys = hasSymbol\n ? Reflect.ownKeys(from)\n : Object.keys(from);\n\n for (var i = 0; i < keys.length; i++) {\n key = keys[i];\n // in case the object is already observed...\n if (key === '__ob__') { continue }\n toVal = to[key];\n fromVal = from[key];\n if (!hasOwn(to, key)) {\n set(to, key, fromVal);\n } else if (\n toVal !== fromVal &&\n isPlainObject(toVal) &&\n isPlainObject(fromVal)\n ) {\n mergeData(toVal, fromVal);\n }\n }\n return to\n}\n\n/**\n * Data\n */\nfunction mergeDataOrFn (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n // in a Vue.extend merge, both should be functions\n if (!childVal) {\n return parentVal\n }\n if (!parentVal) {\n return childVal\n }\n // when parentVal & childVal are both present,\n // we need to return a function that returns the\n // merged result of both functions... no need to\n // check if parentVal is a function here because\n // it has to be a function to pass previous merges.\n return function mergedDataFn () {\n return mergeData(\n typeof childVal === 'function' ? childVal.call(this, this) : childVal,\n typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal\n )\n }\n } else {\n return function mergedInstanceDataFn () {\n // instance merge\n var instanceData = typeof childVal === 'function'\n ? childVal.call(vm, vm)\n : childVal;\n var defaultData = typeof parentVal === 'function'\n ? parentVal.call(vm, vm)\n : parentVal;\n if (instanceData) {\n return mergeData(instanceData, defaultData)\n } else {\n return defaultData\n }\n }\n }\n}\n\nstrats.data = function (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n if (childVal && typeof childVal !== 'function') {\n process.env.NODE_ENV !== 'production' && warn(\n 'The \"data\" option should be a function ' +\n 'that returns a per-instance value in component ' +\n 'definitions.',\n vm\n );\n\n return parentVal\n }\n return mergeDataOrFn(parentVal, childVal)\n }\n\n return mergeDataOrFn(parentVal, childVal, vm)\n};\n\n/**\n * Hooks and props are merged as arrays.\n */\nfunction mergeHook (\n parentVal,\n childVal\n) {\n var res = childVal\n ? parentVal\n ? parentVal.concat(childVal)\n : Array.isArray(childVal)\n ? childVal\n : [childVal]\n : parentVal;\n return res\n ? dedupeHooks(res)\n : res\n}\n\nfunction dedupeHooks (hooks) {\n var res = [];\n for (var i = 0; i < hooks.length; i++) {\n if (res.indexOf(hooks[i]) === -1) {\n res.push(hooks[i]);\n }\n }\n return res\n}\n\nLIFECYCLE_HOOKS.forEach(function (hook) {\n strats[hook] = mergeHook;\n});\n\n/**\n * Assets\n *\n * When a vm is present (instance creation), we need to do\n * a three-way merge between constructor options, instance\n * options and parent options.\n */\nfunction mergeAssets (\n parentVal,\n childVal,\n vm,\n key\n) {\n var res = Object.create(parentVal || null);\n if (childVal) {\n process.env.NODE_ENV !== 'production' && assertObjectType(key, childVal, vm);\n return extend(res, childVal)\n } else {\n return res\n }\n}\n\nASSET_TYPES.forEach(function (type) {\n strats[type + 's'] = mergeAssets;\n});\n\n/**\n * Watchers.\n *\n * Watchers hashes should not overwrite one\n * another, so we merge them as arrays.\n */\nstrats.watch = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n // work around Firefox's Object.prototype.watch...\n if (parentVal === nativeWatch) { parentVal = undefined; }\n if (childVal === nativeWatch) { childVal = undefined; }\n /* istanbul ignore if */\n if (!childVal) { return Object.create(parentVal || null) }\n if (process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = {};\n extend(ret, parentVal);\n for (var key$1 in childVal) {\n var parent = ret[key$1];\n var child = childVal[key$1];\n if (parent && !Array.isArray(parent)) {\n parent = [parent];\n }\n ret[key$1] = parent\n ? parent.concat(child)\n : Array.isArray(child) ? child : [child];\n }\n return ret\n};\n\n/**\n * Other object hashes.\n */\nstrats.props =\nstrats.methods =\nstrats.inject =\nstrats.computed = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n if (childVal && process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = Object.create(null);\n extend(ret, parentVal);\n if (childVal) { extend(ret, childVal); }\n return ret\n};\nstrats.provide = mergeDataOrFn;\n\n/**\n * Default strategy.\n */\nvar defaultStrat = function (parentVal, childVal) {\n return childVal === undefined\n ? parentVal\n : childVal\n};\n\n/**\n * Validate component names\n */\nfunction checkComponents (options) {\n for (var key in options.components) {\n validateComponentName(key);\n }\n}\n\nfunction validateComponentName (name) {\n if (!new RegExp((\"^[a-zA-Z][\\\\-\\\\.0-9_\" + (unicodeRegExp.source) + \"]*$\")).test(name)) {\n warn(\n 'Invalid component name: \"' + name + '\". Component names ' +\n 'should conform to valid custom element name in html5 specification.'\n );\n }\n if (isBuiltInTag(name) || config.isReservedTag(name)) {\n warn(\n 'Do not use built-in or reserved HTML elements as component ' +\n 'id: ' + name\n );\n }\n}\n\n/**\n * Ensure all props option syntax are normalized into the\n * Object-based format.\n */\nfunction normalizeProps (options, vm) {\n var props = options.props;\n if (!props) { return }\n var res = {};\n var i, val, name;\n if (Array.isArray(props)) {\n i = props.length;\n while (i--) {\n val = props[i];\n if (typeof val === 'string') {\n name = camelize(val);\n res[name] = { type: null };\n } else if (process.env.NODE_ENV !== 'production') {\n warn('props must be strings when using array syntax.');\n }\n }\n } else if (isPlainObject(props)) {\n for (var key in props) {\n val = props[key];\n name = camelize(key);\n res[name] = isPlainObject(val)\n ? val\n : { type: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"props\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(props)) + \".\",\n vm\n );\n }\n options.props = res;\n}\n\n/**\n * Normalize all injections into Object-based format\n */\nfunction normalizeInject (options, vm) {\n var inject = options.inject;\n if (!inject) { return }\n var normalized = options.inject = {};\n if (Array.isArray(inject)) {\n for (var i = 0; i < inject.length; i++) {\n normalized[inject[i]] = { from: inject[i] };\n }\n } else if (isPlainObject(inject)) {\n for (var key in inject) {\n var val = inject[key];\n normalized[key] = isPlainObject(val)\n ? extend({ from: key }, val)\n : { from: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"inject\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(inject)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Normalize raw function directives into object format.\n */\nfunction normalizeDirectives (options) {\n var dirs = options.directives;\n if (dirs) {\n for (var key in dirs) {\n var def$$1 = dirs[key];\n if (typeof def$$1 === 'function') {\n dirs[key] = { bind: def$$1, update: def$$1 };\n }\n }\n }\n}\n\nfunction assertObjectType (name, value, vm) {\n if (!isPlainObject(value)) {\n warn(\n \"Invalid value for option \\\"\" + name + \"\\\": expected an Object, \" +\n \"but got \" + (toRawType(value)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Merge two option objects into a new one.\n * Core utility used in both instantiation and inheritance.\n */\nfunction mergeOptions (\n parent,\n child,\n vm\n) {\n if (process.env.NODE_ENV !== 'production') {\n checkComponents(child);\n }\n\n if (typeof child === 'function') {\n child = child.options;\n }\n\n normalizeProps(child, vm);\n normalizeInject(child, vm);\n normalizeDirectives(child);\n\n // Apply extends and mixins on the child options,\n // but only if it is a raw options object that isn't\n // the result of another mergeOptions call.\n // Only merged options has the _base property.\n if (!child._base) {\n if (child.extends) {\n parent = mergeOptions(parent, child.extends, vm);\n }\n if (child.mixins) {\n for (var i = 0, l = child.mixins.length; i < l; i++) {\n parent = mergeOptions(parent, child.mixins[i], vm);\n }\n }\n }\n\n var options = {};\n var key;\n for (key in parent) {\n mergeField(key);\n }\n for (key in child) {\n if (!hasOwn(parent, key)) {\n mergeField(key);\n }\n }\n function mergeField (key) {\n var strat = strats[key] || defaultStrat;\n options[key] = strat(parent[key], child[key], vm, key);\n }\n return options\n}\n\n/**\n * Resolve an asset.\n * This function is used because child instances need access\n * to assets defined in its ancestor chain.\n */\nfunction resolveAsset (\n options,\n type,\n id,\n warnMissing\n) {\n /* istanbul ignore if */\n if (typeof id !== 'string') {\n return\n }\n var assets = options[type];\n // check local registration variations first\n if (hasOwn(assets, id)) { return assets[id] }\n var camelizedId = camelize(id);\n if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }\n var PascalCaseId = capitalize(camelizedId);\n if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }\n // fallback to prototype chain\n var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];\n if (process.env.NODE_ENV !== 'production' && warnMissing && !res) {\n warn(\n 'Failed to resolve ' + type.slice(0, -1) + ': ' + id,\n options\n );\n }\n return res\n}\n\n/* */\n\n\n\nfunction validateProp (\n key,\n propOptions,\n propsData,\n vm\n) {\n var prop = propOptions[key];\n var absent = !hasOwn(propsData, key);\n var value = propsData[key];\n // boolean casting\n var booleanIndex = getTypeIndex(Boolean, prop.type);\n if (booleanIndex > -1) {\n if (absent && !hasOwn(prop, 'default')) {\n value = false;\n } else if (value === '' || value === hyphenate(key)) {\n // only cast empty string / same name to boolean if\n // boolean has higher priority\n var stringIndex = getTypeIndex(String, prop.type);\n if (stringIndex < 0 || booleanIndex < stringIndex) {\n value = true;\n }\n }\n }\n // check default value\n if (value === undefined) {\n value = getPropDefaultValue(vm, prop, key);\n // since the default value is a fresh copy,\n // make sure to observe it.\n var prevShouldObserve = shouldObserve;\n toggleObserving(true);\n observe(value);\n toggleObserving(prevShouldObserve);\n }\n if (\n process.env.NODE_ENV !== 'production' &&\n // skip validation for weex recycle-list child component props\n !(false)\n ) {\n assertProp(prop, key, value, vm, absent);\n }\n return value\n}\n\n/**\n * Get the default value of a prop.\n */\nfunction getPropDefaultValue (vm, prop, key) {\n // no default, return undefined\n if (!hasOwn(prop, 'default')) {\n return undefined\n }\n var def = prop.default;\n // warn against non-factory defaults for Object & Array\n if (process.env.NODE_ENV !== 'production' && isObject(def)) {\n warn(\n 'Invalid default value for prop \"' + key + '\": ' +\n 'Props with type Object/Array must use a factory function ' +\n 'to return the default value.',\n vm\n );\n }\n // the raw prop value was also undefined from previous render,\n // return previous default value to avoid unnecessary watcher trigger\n if (vm && vm.$options.propsData &&\n vm.$options.propsData[key] === undefined &&\n vm._props[key] !== undefined\n ) {\n return vm._props[key]\n }\n // call factory function for non-Function types\n // a value is Function if its prototype is function even across different execution context\n return typeof def === 'function' && getType(prop.type) !== 'Function'\n ? def.call(vm)\n : def\n}\n\n/**\n * Assert whether a prop is valid.\n */\nfunction assertProp (\n prop,\n name,\n value,\n vm,\n absent\n) {\n if (prop.required && absent) {\n warn(\n 'Missing required prop: \"' + name + '\"',\n vm\n );\n return\n }\n if (value == null && !prop.required) {\n return\n }\n var type = prop.type;\n var valid = !type || type === true;\n var expectedTypes = [];\n if (type) {\n if (!Array.isArray(type)) {\n type = [type];\n }\n for (var i = 0; i < type.length && !valid; i++) {\n var assertedType = assertType(value, type[i]);\n expectedTypes.push(assertedType.expectedType || '');\n valid = assertedType.valid;\n }\n }\n\n if (!valid) {\n warn(\n getInvalidTypeMessage(name, value, expectedTypes),\n vm\n );\n return\n }\n var validator = prop.validator;\n if (validator) {\n if (!validator(value)) {\n warn(\n 'Invalid prop: custom validator check failed for prop \"' + name + '\".',\n vm\n );\n }\n }\n}\n\nvar simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/;\n\nfunction assertType (value, type) {\n var valid;\n var expectedType = getType(type);\n if (simpleCheckRE.test(expectedType)) {\n var t = typeof value;\n valid = t === expectedType.toLowerCase();\n // for primitive wrapper objects\n if (!valid && t === 'object') {\n valid = value instanceof type;\n }\n } else if (expectedType === 'Object') {\n valid = isPlainObject(value);\n } else if (expectedType === 'Array') {\n valid = Array.isArray(value);\n } else {\n valid = value instanceof type;\n }\n return {\n valid: valid,\n expectedType: expectedType\n }\n}\n\n/**\n * Use function string name to check built-in types,\n * because a simple equality check will fail when running\n * across different vms / iframes.\n */\nfunction getType (fn) {\n var match = fn && fn.toString().match(/^\\s*function (\\w+)/);\n return match ? match[1] : ''\n}\n\nfunction isSameType (a, b) {\n return getType(a) === getType(b)\n}\n\nfunction getTypeIndex (type, expectedTypes) {\n if (!Array.isArray(expectedTypes)) {\n return isSameType(expectedTypes, type) ? 0 : -1\n }\n for (var i = 0, len = expectedTypes.length; i < len; i++) {\n if (isSameType(expectedTypes[i], type)) {\n return i\n }\n }\n return -1\n}\n\nfunction getInvalidTypeMessage (name, value, expectedTypes) {\n var message = \"Invalid prop: type check failed for prop \\\"\" + name + \"\\\".\" +\n \" Expected \" + (expectedTypes.map(capitalize).join(', '));\n var expectedType = expectedTypes[0];\n var receivedType = toRawType(value);\n var expectedValue = styleValue(value, expectedType);\n var receivedValue = styleValue(value, receivedType);\n // check if we need to specify expected value\n if (expectedTypes.length === 1 &&\n isExplicable(expectedType) &&\n !isBoolean(expectedType, receivedType)) {\n message += \" with value \" + expectedValue;\n }\n message += \", got \" + receivedType + \" \";\n // check if we need to specify received value\n if (isExplicable(receivedType)) {\n message += \"with value \" + receivedValue + \".\";\n }\n return message\n}\n\nfunction styleValue (value, type) {\n if (type === 'String') {\n return (\"\\\"\" + value + \"\\\"\")\n } else if (type === 'Number') {\n return (\"\" + (Number(value)))\n } else {\n return (\"\" + value)\n }\n}\n\nfunction isExplicable (value) {\n var explicitTypes = ['string', 'number', 'boolean'];\n return explicitTypes.some(function (elem) { return value.toLowerCase() === elem; })\n}\n\nfunction isBoolean () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return args.some(function (elem) { return elem.toLowerCase() === 'boolean'; })\n}\n\n/* */\n\nfunction handleError (err, vm, info) {\n // Deactivate deps tracking while processing error handler to avoid possible infinite rendering.\n // See: https://github.com/vuejs/vuex/issues/1505\n pushTarget();\n try {\n if (vm) {\n var cur = vm;\n while ((cur = cur.$parent)) {\n var hooks = cur.$options.errorCaptured;\n if (hooks) {\n for (var i = 0; i < hooks.length; i++) {\n try {\n var capture = hooks[i].call(cur, err, vm, info) === false;\n if (capture) { return }\n } catch (e) {\n globalHandleError(e, cur, 'errorCaptured hook');\n }\n }\n }\n }\n }\n globalHandleError(err, vm, info);\n } finally {\n popTarget();\n }\n}\n\nfunction invokeWithErrorHandling (\n handler,\n context,\n args,\n vm,\n info\n) {\n var res;\n try {\n res = args ? handler.apply(context, args) : handler.call(context);\n if (res && !res._isVue && isPromise(res) && !res._handled) {\n res.catch(function (e) { return handleError(e, vm, info + \" (Promise/async)\"); });\n // issue #9511\n // avoid catch triggering multiple times when nested calls\n res._handled = true;\n }\n } catch (e) {\n handleError(e, vm, info);\n }\n return res\n}\n\nfunction globalHandleError (err, vm, info) {\n if (config.errorHandler) {\n try {\n return config.errorHandler.call(null, err, vm, info)\n } catch (e) {\n // if the user intentionally throws the original error in the handler,\n // do not log it twice\n if (e !== err) {\n logError(e, null, 'config.errorHandler');\n }\n }\n }\n logError(err, vm, info);\n}\n\nfunction logError (err, vm, info) {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Error in \" + info + \": \\\"\" + (err.toString()) + \"\\\"\"), vm);\n }\n /* istanbul ignore else */\n if ((inBrowser || inWeex) && typeof console !== 'undefined') {\n console.error(err);\n } else {\n throw err\n }\n}\n\n/* */\n\nvar isUsingMicroTask = false;\n\nvar callbacks = [];\nvar pending = false;\n\nfunction flushCallbacks () {\n pending = false;\n var copies = callbacks.slice(0);\n callbacks.length = 0;\n for (var i = 0; i < copies.length; i++) {\n copies[i]();\n }\n}\n\n// Here we have async deferring wrappers using microtasks.\n// In 2.5 we used (macro) tasks (in combination with microtasks).\n// However, it has subtle problems when state is changed right before repaint\n// (e.g. #6813, out-in transitions).\n// Also, using (macro) tasks in event handler would cause some weird behaviors\n// that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109).\n// So we now use microtasks everywhere, again.\n// A major drawback of this tradeoff is that there are some scenarios\n// where microtasks have too high a priority and fire in between supposedly\n// sequential events (e.g. #4521, #6690, which have workarounds)\n// or even between bubbling of the same event (#6566).\nvar timerFunc;\n\n// The nextTick behavior leverages the microtask queue, which can be accessed\n// via either native Promise.then or MutationObserver.\n// MutationObserver has wider support, however it is seriously bugged in\n// UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It\n// completely stops working after triggering a few times... so, if native\n// Promise is available, we will use it:\n/* istanbul ignore next, $flow-disable-line */\nif (typeof Promise !== 'undefined' && isNative(Promise)) {\n var p = Promise.resolve();\n timerFunc = function () {\n p.then(flushCallbacks);\n // In problematic UIWebViews, Promise.then doesn't completely break, but\n // it can get stuck in a weird state where callbacks are pushed into the\n // microtask queue but the queue isn't being flushed, until the browser\n // needs to do some other work, e.g. handle a timer. Therefore we can\n // \"force\" the microtask queue to be flushed by adding an empty timer.\n if (isIOS) { setTimeout(noop); }\n };\n isUsingMicroTask = true;\n} else if (!isIE && typeof MutationObserver !== 'undefined' && (\n isNative(MutationObserver) ||\n // PhantomJS and iOS 7.x\n MutationObserver.toString() === '[object MutationObserverConstructor]'\n)) {\n // Use MutationObserver where native Promise is not available,\n // e.g. PhantomJS, iOS7, Android 4.4\n // (#6466 MutationObserver is unreliable in IE11)\n var counter = 1;\n var observer = new MutationObserver(flushCallbacks);\n var textNode = document.createTextNode(String(counter));\n observer.observe(textNode, {\n characterData: true\n });\n timerFunc = function () {\n counter = (counter + 1) % 2;\n textNode.data = String(counter);\n };\n isUsingMicroTask = true;\n} else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {\n // Fallback to setImmediate.\n // Technically it leverages the (macro) task queue,\n // but it is still a better choice than setTimeout.\n timerFunc = function () {\n setImmediate(flushCallbacks);\n };\n} else {\n // Fallback to setTimeout.\n timerFunc = function () {\n setTimeout(flushCallbacks, 0);\n };\n}\n\nfunction nextTick (cb, ctx) {\n var _resolve;\n callbacks.push(function () {\n if (cb) {\n try {\n cb.call(ctx);\n } catch (e) {\n handleError(e, ctx, 'nextTick');\n }\n } else if (_resolve) {\n _resolve(ctx);\n }\n });\n if (!pending) {\n pending = true;\n timerFunc();\n }\n // $flow-disable-line\n if (!cb && typeof Promise !== 'undefined') {\n return new Promise(function (resolve) {\n _resolve = resolve;\n })\n }\n}\n\n/* */\n\n/* not type checking this file because flow doesn't play well with Proxy */\n\nvar initProxy;\n\nif (process.env.NODE_ENV !== 'production') {\n var allowedGlobals = makeMap(\n 'Infinity,undefined,NaN,isFinite,isNaN,' +\n 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +\n 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' +\n 'require' // for Webpack/Browserify\n );\n\n var warnNonPresent = function (target, key) {\n warn(\n \"Property or method \\\"\" + key + \"\\\" is not defined on the instance but \" +\n 'referenced during render. Make sure that this property is reactive, ' +\n 'either in the data option, or for class-based components, by ' +\n 'initializing the property. ' +\n 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.',\n target\n );\n };\n\n var warnReservedPrefix = function (target, key) {\n warn(\n \"Property \\\"\" + key + \"\\\" must be accessed with \\\"$data.\" + key + \"\\\" because \" +\n 'properties starting with \"$\" or \"_\" are not proxied in the Vue instance to ' +\n 'prevent conflicts with Vue internals. ' +\n 'See: https://vuejs.org/v2/api/#data',\n target\n );\n };\n\n var hasProxy =\n typeof Proxy !== 'undefined' && isNative(Proxy);\n\n if (hasProxy) {\n var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');\n config.keyCodes = new Proxy(config.keyCodes, {\n set: function set (target, key, value) {\n if (isBuiltInModifier(key)) {\n warn((\"Avoid overwriting built-in modifier in config.keyCodes: .\" + key));\n return false\n } else {\n target[key] = value;\n return true\n }\n }\n });\n }\n\n var hasHandler = {\n has: function has (target, key) {\n var has = key in target;\n var isAllowed = allowedGlobals(key) ||\n (typeof key === 'string' && key.charAt(0) === '_' && !(key in target.$data));\n if (!has && !isAllowed) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return has || !isAllowed\n }\n };\n\n var getHandler = {\n get: function get (target, key) {\n if (typeof key === 'string' && !(key in target)) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return target[key]\n }\n };\n\n initProxy = function initProxy (vm) {\n if (hasProxy) {\n // determine which proxy handler to use\n var options = vm.$options;\n var handlers = options.render && options.render._withStripped\n ? getHandler\n : hasHandler;\n vm._renderProxy = new Proxy(vm, handlers);\n } else {\n vm._renderProxy = vm;\n }\n };\n}\n\n/* */\n\nvar seenObjects = new _Set();\n\n/**\n * Recursively traverse an object to evoke all converted\n * getters, so that every nested property inside the object\n * is collected as a \"deep\" dependency.\n */\nfunction traverse (val) {\n _traverse(val, seenObjects);\n seenObjects.clear();\n}\n\nfunction _traverse (val, seen) {\n var i, keys;\n var isA = Array.isArray(val);\n if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) {\n return\n }\n if (val.__ob__) {\n var depId = val.__ob__.dep.id;\n if (seen.has(depId)) {\n return\n }\n seen.add(depId);\n }\n if (isA) {\n i = val.length;\n while (i--) { _traverse(val[i], seen); }\n } else {\n keys = Object.keys(val);\n i = keys.length;\n while (i--) { _traverse(val[keys[i]], seen); }\n }\n}\n\nvar mark;\nvar measure;\n\nif (process.env.NODE_ENV !== 'production') {\n var perf = inBrowser && window.performance;\n /* istanbul ignore if */\n if (\n perf &&\n perf.mark &&\n perf.measure &&\n perf.clearMarks &&\n perf.clearMeasures\n ) {\n mark = function (tag) { return perf.mark(tag); };\n measure = function (name, startTag, endTag) {\n perf.measure(name, startTag, endTag);\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n // perf.clearMeasures(name)\n };\n }\n}\n\n/* */\n\nvar normalizeEvent = cached(function (name) {\n var passive = name.charAt(0) === '&';\n name = passive ? name.slice(1) : name;\n var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first\n name = once$$1 ? name.slice(1) : name;\n var capture = name.charAt(0) === '!';\n name = capture ? name.slice(1) : name;\n return {\n name: name,\n once: once$$1,\n capture: capture,\n passive: passive\n }\n});\n\nfunction createFnInvoker (fns, vm) {\n function invoker () {\n var arguments$1 = arguments;\n\n var fns = invoker.fns;\n if (Array.isArray(fns)) {\n var cloned = fns.slice();\n for (var i = 0; i < cloned.length; i++) {\n invokeWithErrorHandling(cloned[i], null, arguments$1, vm, \"v-on handler\");\n }\n } else {\n // return handler return value for single handlers\n return invokeWithErrorHandling(fns, null, arguments, vm, \"v-on handler\")\n }\n }\n invoker.fns = fns;\n return invoker\n}\n\nfunction updateListeners (\n on,\n oldOn,\n add,\n remove$$1,\n createOnceHandler,\n vm\n) {\n var name, def$$1, cur, old, event;\n for (name in on) {\n def$$1 = cur = on[name];\n old = oldOn[name];\n event = normalizeEvent(name);\n if (isUndef(cur)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Invalid handler for event \\\"\" + (event.name) + \"\\\": got \" + String(cur),\n vm\n );\n } else if (isUndef(old)) {\n if (isUndef(cur.fns)) {\n cur = on[name] = createFnInvoker(cur, vm);\n }\n if (isTrue(event.once)) {\n cur = on[name] = createOnceHandler(event.name, cur, event.capture);\n }\n add(event.name, cur, event.capture, event.passive, event.params);\n } else if (cur !== old) {\n old.fns = cur;\n on[name] = old;\n }\n }\n for (name in oldOn) {\n if (isUndef(on[name])) {\n event = normalizeEvent(name);\n remove$$1(event.name, oldOn[name], event.capture);\n }\n }\n}\n\n/* */\n\nfunction mergeVNodeHook (def, hookKey, hook) {\n if (def instanceof VNode) {\n def = def.data.hook || (def.data.hook = {});\n }\n var invoker;\n var oldHook = def[hookKey];\n\n function wrappedHook () {\n hook.apply(this, arguments);\n // important: remove merged hook to ensure it's called only once\n // and prevent memory leak\n remove(invoker.fns, wrappedHook);\n }\n\n if (isUndef(oldHook)) {\n // no existing hook\n invoker = createFnInvoker([wrappedHook]);\n } else {\n /* istanbul ignore if */\n if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {\n // already a merged invoker\n invoker = oldHook;\n invoker.fns.push(wrappedHook);\n } else {\n // existing plain hook\n invoker = createFnInvoker([oldHook, wrappedHook]);\n }\n }\n\n invoker.merged = true;\n def[hookKey] = invoker;\n}\n\n/* */\n\nfunction extractPropsFromVNodeData (\n data,\n Ctor,\n tag\n) {\n // we are only extracting raw values here.\n // validation and default values are handled in the child\n // component itself.\n var propOptions = Ctor.options.props;\n if (isUndef(propOptions)) {\n return\n }\n var res = {};\n var attrs = data.attrs;\n var props = data.props;\n if (isDef(attrs) || isDef(props)) {\n for (var key in propOptions) {\n var altKey = hyphenate(key);\n if (process.env.NODE_ENV !== 'production') {\n var keyInLowerCase = key.toLowerCase();\n if (\n key !== keyInLowerCase &&\n attrs && hasOwn(attrs, keyInLowerCase)\n ) {\n tip(\n \"Prop \\\"\" + keyInLowerCase + \"\\\" is passed to component \" +\n (formatComponentName(tag || Ctor)) + \", but the declared prop name is\" +\n \" \\\"\" + key + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and camelCased \" +\n \"props need to use their kebab-case equivalents when using in-DOM \" +\n \"templates. You should probably use \\\"\" + altKey + \"\\\" instead of \\\"\" + key + \"\\\".\"\n );\n }\n }\n checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n }\n }\n return res\n}\n\nfunction checkProp (\n res,\n hash,\n key,\n altKey,\n preserve\n) {\n if (isDef(hash)) {\n if (hasOwn(hash, key)) {\n res[key] = hash[key];\n if (!preserve) {\n delete hash[key];\n }\n return true\n } else if (hasOwn(hash, altKey)) {\n res[key] = hash[altKey];\n if (!preserve) {\n delete hash[altKey];\n }\n return true\n }\n }\n return false\n}\n\n/* */\n\n// The template compiler attempts to minimize the need for normalization by\n// statically analyzing the template at compile time.\n//\n// For plain HTML markup, normalization can be completely skipped because the\n// generated render function is guaranteed to return Array<VNode>. There are\n// two cases where extra normalization is needed:\n\n// 1. When the children contains components - because a functional component\n// may return an Array instead of a single root. In this case, just a simple\n// normalization is needed - if any child is an Array, we flatten the whole\n// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\n// because functional components already normalize their own children.\nfunction simpleNormalizeChildren (children) {\n for (var i = 0; i < children.length; i++) {\n if (Array.isArray(children[i])) {\n return Array.prototype.concat.apply([], children)\n }\n }\n return children\n}\n\n// 2. When the children contains constructs that always generated nested Arrays,\n// e.g. <template>, <slot>, v-for, or when the children is provided by user\n// with hand-written render functions / JSX. In such cases a full normalization\n// is needed to cater to all possible types of children values.\nfunction normalizeChildren (children) {\n return isPrimitive(children)\n ? [createTextVNode(children)]\n : Array.isArray(children)\n ? normalizeArrayChildren(children)\n : undefined\n}\n\nfunction isTextNode (node) {\n return isDef(node) && isDef(node.text) && isFalse(node.isComment)\n}\n\nfunction normalizeArrayChildren (children, nestedIndex) {\n var res = [];\n var i, c, lastIndex, last;\n for (i = 0; i < children.length; i++) {\n c = children[i];\n if (isUndef(c) || typeof c === 'boolean') { continue }\n lastIndex = res.length - 1;\n last = res[lastIndex];\n // nested\n if (Array.isArray(c)) {\n if (c.length > 0) {\n c = normalizeArrayChildren(c, ((nestedIndex || '') + \"_\" + i));\n // merge adjacent text nodes\n if (isTextNode(c[0]) && isTextNode(last)) {\n res[lastIndex] = createTextVNode(last.text + (c[0]).text);\n c.shift();\n }\n res.push.apply(res, c);\n }\n } else if (isPrimitive(c)) {\n if (isTextNode(last)) {\n // merge adjacent text nodes\n // this is necessary for SSR hydration because text nodes are\n // essentially merged when rendered to HTML strings\n res[lastIndex] = createTextVNode(last.text + c);\n } else if (c !== '') {\n // convert primitive to vnode\n res.push(createTextVNode(c));\n }\n } else {\n if (isTextNode(c) && isTextNode(last)) {\n // merge adjacent text nodes\n res[lastIndex] = createTextVNode(last.text + c.text);\n } else {\n // default key for nested array children (likely generated by v-for)\n if (isTrue(children._isVList) &&\n isDef(c.tag) &&\n isUndef(c.key) &&\n isDef(nestedIndex)) {\n c.key = \"__vlist\" + nestedIndex + \"_\" + i + \"__\";\n }\n res.push(c);\n }\n }\n }\n return res\n}\n\n/* */\n\nfunction initProvide (vm) {\n var provide = vm.$options.provide;\n if (provide) {\n vm._provided = typeof provide === 'function'\n ? provide.call(vm)\n : provide;\n }\n}\n\nfunction initInjections (vm) {\n var result = resolveInject(vm.$options.inject, vm);\n if (result) {\n toggleObserving(false);\n Object.keys(result).forEach(function (key) {\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n defineReactive$$1(vm, key, result[key], function () {\n warn(\n \"Avoid mutating an injected value directly since the changes will be \" +\n \"overwritten whenever the provided component re-renders. \" +\n \"injection being mutated: \\\"\" + key + \"\\\"\",\n vm\n );\n });\n } else {\n defineReactive$$1(vm, key, result[key]);\n }\n });\n toggleObserving(true);\n }\n}\n\nfunction resolveInject (inject, vm) {\n if (inject) {\n // inject is :any because flow is not smart enough to figure out cached\n var result = Object.create(null);\n var keys = hasSymbol\n ? Reflect.ownKeys(inject)\n : Object.keys(inject);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n // #6574 in case the inject object is observed...\n if (key === '__ob__') { continue }\n var provideKey = inject[key].from;\n var source = vm;\n while (source) {\n if (source._provided && hasOwn(source._provided, provideKey)) {\n result[key] = source._provided[provideKey];\n break\n }\n source = source.$parent;\n }\n if (!source) {\n if ('default' in inject[key]) {\n var provideDefault = inject[key].default;\n result[key] = typeof provideDefault === 'function'\n ? provideDefault.call(vm)\n : provideDefault;\n } else if (process.env.NODE_ENV !== 'production') {\n warn((\"Injection \\\"\" + key + \"\\\" not found\"), vm);\n }\n }\n }\n return result\n }\n}\n\n/* */\n\n\n\n/**\n * Runtime helper for resolving raw children VNodes into a slot object.\n */\nfunction resolveSlots (\n children,\n context\n) {\n if (!children || !children.length) {\n return {}\n }\n var slots = {};\n for (var i = 0, l = children.length; i < l; i++) {\n var child = children[i];\n var data = child.data;\n // remove slot attribute if the node is resolved as a Vue slot node\n if (data && data.attrs && data.attrs.slot) {\n delete data.attrs.slot;\n }\n // named slots should only be respected if the vnode was rendered in the\n // same context.\n if ((child.context === context || child.fnContext === context) &&\n data && data.slot != null\n ) {\n var name = data.slot;\n var slot = (slots[name] || (slots[name] = []));\n if (child.tag === 'template') {\n slot.push.apply(slot, child.children || []);\n } else {\n slot.push(child);\n }\n } else {\n (slots.default || (slots.default = [])).push(child);\n }\n }\n // ignore slots that contains only whitespace\n for (var name$1 in slots) {\n if (slots[name$1].every(isWhitespace)) {\n delete slots[name$1];\n }\n }\n return slots\n}\n\nfunction isWhitespace (node) {\n return (node.isComment && !node.asyncFactory) || node.text === ' '\n}\n\n/* */\n\nfunction normalizeScopedSlots (\n slots,\n normalSlots,\n prevSlots\n) {\n var res;\n var hasNormalSlots = Object.keys(normalSlots).length > 0;\n var isStable = slots ? !!slots.$stable : !hasNormalSlots;\n var key = slots && slots.$key;\n if (!slots) {\n res = {};\n } else if (slots._normalized) {\n // fast path 1: child component re-render only, parent did not change\n return slots._normalized\n } else if (\n isStable &&\n prevSlots &&\n prevSlots !== emptyObject &&\n key === prevSlots.$key &&\n !hasNormalSlots &&\n !prevSlots.$hasNormal\n ) {\n // fast path 2: stable scoped slots w/ no normal slots to proxy,\n // only need to normalize once\n return prevSlots\n } else {\n res = {};\n for (var key$1 in slots) {\n if (slots[key$1] && key$1[0] !== '$') {\n res[key$1] = normalizeScopedSlot(normalSlots, key$1, slots[key$1]);\n }\n }\n }\n // expose normal slots on scopedSlots\n for (var key$2 in normalSlots) {\n if (!(key$2 in res)) {\n res[key$2] = proxyNormalSlot(normalSlots, key$2);\n }\n }\n // avoriaz seems to mock a non-extensible $scopedSlots object\n // and when that is passed down this would cause an error\n if (slots && Object.isExtensible(slots)) {\n (slots)._normalized = res;\n }\n def(res, '$stable', isStable);\n def(res, '$key', key);\n def(res, '$hasNormal', hasNormalSlots);\n return res\n}\n\nfunction normalizeScopedSlot(normalSlots, key, fn) {\n var normalized = function () {\n var res = arguments.length ? fn.apply(null, arguments) : fn({});\n res = res && typeof res === 'object' && !Array.isArray(res)\n ? [res] // single vnode\n : normalizeChildren(res);\n return res && (\n res.length === 0 ||\n (res.length === 1 && res[0].isComment) // #9658\n ) ? undefined\n : res\n };\n // this is a slot using the new v-slot syntax without scope. although it is\n // compiled as a scoped slot, render fn users would expect it to be present\n // on this.$slots because the usage is semantically a normal slot.\n if (fn.proxy) {\n Object.defineProperty(normalSlots, key, {\n get: normalized,\n enumerable: true,\n configurable: true\n });\n }\n return normalized\n}\n\nfunction proxyNormalSlot(slots, key) {\n return function () { return slots[key]; }\n}\n\n/* */\n\n/**\n * Runtime helper for rendering v-for lists.\n */\nfunction renderList (\n val,\n render\n) {\n var ret, i, l, keys, key;\n if (Array.isArray(val) || typeof val === 'string') {\n ret = new Array(val.length);\n for (i = 0, l = val.length; i < l; i++) {\n ret[i] = render(val[i], i);\n }\n } else if (typeof val === 'number') {\n ret = new Array(val);\n for (i = 0; i < val; i++) {\n ret[i] = render(i + 1, i);\n }\n } else if (isObject(val)) {\n if (hasSymbol && val[Symbol.iterator]) {\n ret = [];\n var iterator = val[Symbol.iterator]();\n var result = iterator.next();\n while (!result.done) {\n ret.push(render(result.value, ret.length));\n result = iterator.next();\n }\n } else {\n keys = Object.keys(val);\n ret = new Array(keys.length);\n for (i = 0, l = keys.length; i < l; i++) {\n key = keys[i];\n ret[i] = render(val[key], key, i);\n }\n }\n }\n if (!isDef(ret)) {\n ret = [];\n }\n (ret)._isVList = true;\n return ret\n}\n\n/* */\n\n/**\n * Runtime helper for rendering <slot>\n */\nfunction renderSlot (\n name,\n fallback,\n props,\n bindObject\n) {\n var scopedSlotFn = this.$scopedSlots[name];\n var nodes;\n if (scopedSlotFn) { // scoped slot\n props = props || {};\n if (bindObject) {\n if (process.env.NODE_ENV !== 'production' && !isObject(bindObject)) {\n warn(\n 'slot v-bind without argument expects an Object',\n this\n );\n }\n props = extend(extend({}, bindObject), props);\n }\n nodes = scopedSlotFn(props) || fallback;\n } else {\n nodes = this.$slots[name] || fallback;\n }\n\n var target = props && props.slot;\n if (target) {\n return this.$createElement('template', { slot: target }, nodes)\n } else {\n return nodes\n }\n}\n\n/* */\n\n/**\n * Runtime helper for resolving filters\n */\nfunction resolveFilter (id) {\n return resolveAsset(this.$options, 'filters', id, true) || identity\n}\n\n/* */\n\nfunction isKeyNotMatch (expect, actual) {\n if (Array.isArray(expect)) {\n return expect.indexOf(actual) === -1\n } else {\n return expect !== actual\n }\n}\n\n/**\n * Runtime helper for checking keyCodes from config.\n * exposed as Vue.prototype._k\n * passing in eventKeyName as last argument separately for backwards compat\n */\nfunction checkKeyCodes (\n eventKeyCode,\n key,\n builtInKeyCode,\n eventKeyName,\n builtInKeyName\n) {\n var mappedKeyCode = config.keyCodes[key] || builtInKeyCode;\n if (builtInKeyName && eventKeyName && !config.keyCodes[key]) {\n return isKeyNotMatch(builtInKeyName, eventKeyName)\n } else if (mappedKeyCode) {\n return isKeyNotMatch(mappedKeyCode, eventKeyCode)\n } else if (eventKeyName) {\n return hyphenate(eventKeyName) !== key\n }\n}\n\n/* */\n\n/**\n * Runtime helper for merging v-bind=\"object\" into a VNode's data.\n */\nfunction bindObjectProps (\n data,\n tag,\n value,\n asProp,\n isSync\n) {\n if (value) {\n if (!isObject(value)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'v-bind without argument expects an Object or Array value',\n this\n );\n } else {\n if (Array.isArray(value)) {\n value = toObject(value);\n }\n var hash;\n var loop = function ( key ) {\n if (\n key === 'class' ||\n key === 'style' ||\n isReservedAttribute(key)\n ) {\n hash = data;\n } else {\n var type = data.attrs && data.attrs.type;\n hash = asProp || config.mustUseProp(tag, type, key)\n ? data.domProps || (data.domProps = {})\n : data.attrs || (data.attrs = {});\n }\n var camelizedKey = camelize(key);\n var hyphenatedKey = hyphenate(key);\n if (!(camelizedKey in hash) && !(hyphenatedKey in hash)) {\n hash[key] = value[key];\n\n if (isSync) {\n var on = data.on || (data.on = {});\n on[(\"update:\" + key)] = function ($event) {\n value[key] = $event;\n };\n }\n }\n };\n\n for (var key in value) loop( key );\n }\n }\n return data\n}\n\n/* */\n\n/**\n * Runtime helper for rendering static trees.\n */\nfunction renderStatic (\n index,\n isInFor\n) {\n var cached = this._staticTrees || (this._staticTrees = []);\n var tree = cached[index];\n // if has already-rendered static tree and not inside v-for,\n // we can reuse the same tree.\n if (tree && !isInFor) {\n return tree\n }\n // otherwise, render a fresh tree.\n tree = cached[index] = this.$options.staticRenderFns[index].call(\n this._renderProxy,\n null,\n this // for render fns generated for functional component templates\n );\n markStatic(tree, (\"__static__\" + index), false);\n return tree\n}\n\n/**\n * Runtime helper for v-once.\n * Effectively it means marking the node as static with a unique key.\n */\nfunction markOnce (\n tree,\n index,\n key\n) {\n markStatic(tree, (\"__once__\" + index + (key ? (\"_\" + key) : \"\")), true);\n return tree\n}\n\nfunction markStatic (\n tree,\n key,\n isOnce\n) {\n if (Array.isArray(tree)) {\n for (var i = 0; i < tree.length; i++) {\n if (tree[i] && typeof tree[i] !== 'string') {\n markStaticNode(tree[i], (key + \"_\" + i), isOnce);\n }\n }\n } else {\n markStaticNode(tree, key, isOnce);\n }\n}\n\nfunction markStaticNode (node, key, isOnce) {\n node.isStatic = true;\n node.key = key;\n node.isOnce = isOnce;\n}\n\n/* */\n\nfunction bindObjectListeners (data, value) {\n if (value) {\n if (!isPlainObject(value)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'v-on without argument expects an Object value',\n this\n );\n } else {\n var on = data.on = data.on ? extend({}, data.on) : {};\n for (var key in value) {\n var existing = on[key];\n var ours = value[key];\n on[key] = existing ? [].concat(existing, ours) : ours;\n }\n }\n }\n return data\n}\n\n/* */\n\nfunction resolveScopedSlots (\n fns, // see flow/vnode\n res,\n // the following are added in 2.6\n hasDynamicKeys,\n contentHashKey\n) {\n res = res || { $stable: !hasDynamicKeys };\n for (var i = 0; i < fns.length; i++) {\n var slot = fns[i];\n if (Array.isArray(slot)) {\n resolveScopedSlots(slot, res, hasDynamicKeys);\n } else if (slot) {\n // marker for reverse proxying v-slot without scope on this.$slots\n if (slot.proxy) {\n slot.fn.proxy = true;\n }\n res[slot.key] = slot.fn;\n }\n }\n if (contentHashKey) {\n (res).$key = contentHashKey;\n }\n return res\n}\n\n/* */\n\nfunction bindDynamicKeys (baseObj, values) {\n for (var i = 0; i < values.length; i += 2) {\n var key = values[i];\n if (typeof key === 'string' && key) {\n baseObj[values[i]] = values[i + 1];\n } else if (process.env.NODE_ENV !== 'production' && key !== '' && key !== null) {\n // null is a special value for explicitly removing a binding\n warn(\n (\"Invalid value for dynamic directive argument (expected string or null): \" + key),\n this\n );\n }\n }\n return baseObj\n}\n\n// helper to dynamically append modifier runtime markers to event names.\n// ensure only append when value is already string, otherwise it will be cast\n// to string and cause the type check to miss.\nfunction prependModifier (value, symbol) {\n return typeof value === 'string' ? symbol + value : value\n}\n\n/* */\n\nfunction installRenderHelpers (target) {\n target._o = markOnce;\n target._n = toNumber;\n target._s = toString;\n target._l = renderList;\n target._t = renderSlot;\n target._q = looseEqual;\n target._i = looseIndexOf;\n target._m = renderStatic;\n target._f = resolveFilter;\n target._k = checkKeyCodes;\n target._b = bindObjectProps;\n target._v = createTextVNode;\n target._e = createEmptyVNode;\n target._u = resolveScopedSlots;\n target._g = bindObjectListeners;\n target._d = bindDynamicKeys;\n target._p = prependModifier;\n}\n\n/* */\n\nfunction FunctionalRenderContext (\n data,\n props,\n children,\n parent,\n Ctor\n) {\n var this$1 = this;\n\n var options = Ctor.options;\n // ensure the createElement function in functional components\n // gets a unique context - this is necessary for correct named slot check\n var contextVm;\n if (hasOwn(parent, '_uid')) {\n contextVm = Object.create(parent);\n // $flow-disable-line\n contextVm._original = parent;\n } else {\n // the context vm passed in is a functional context as well.\n // in this case we want to make sure we are able to get a hold to the\n // real context instance.\n contextVm = parent;\n // $flow-disable-line\n parent = parent._original;\n }\n var isCompiled = isTrue(options._compiled);\n var needNormalization = !isCompiled;\n\n this.data = data;\n this.props = props;\n this.children = children;\n this.parent = parent;\n this.listeners = data.on || emptyObject;\n this.injections = resolveInject(options.inject, parent);\n this.slots = function () {\n if (!this$1.$slots) {\n normalizeScopedSlots(\n data.scopedSlots,\n this$1.$slots = resolveSlots(children, parent)\n );\n }\n return this$1.$slots\n };\n\n Object.defineProperty(this, 'scopedSlots', ({\n enumerable: true,\n get: function get () {\n return normalizeScopedSlots(data.scopedSlots, this.slots())\n }\n }));\n\n // support for compiled functional template\n if (isCompiled) {\n // exposing $options for renderStatic()\n this.$options = options;\n // pre-resolve slots for renderSlot()\n this.$slots = this.slots();\n this.$scopedSlots = normalizeScopedSlots(data.scopedSlots, this.$slots);\n }\n\n if (options._scopeId) {\n this._c = function (a, b, c, d) {\n var vnode = createElement(contextVm, a, b, c, d, needNormalization);\n if (vnode && !Array.isArray(vnode)) {\n vnode.fnScopeId = options._scopeId;\n vnode.fnContext = parent;\n }\n return vnode\n };\n } else {\n this._c = function (a, b, c, d) { return createElement(contextVm, a, b, c, d, needNormalization); };\n }\n}\n\ninstallRenderHelpers(FunctionalRenderContext.prototype);\n\nfunction createFunctionalComponent (\n Ctor,\n propsData,\n data,\n contextVm,\n children\n) {\n var options = Ctor.options;\n var props = {};\n var propOptions = options.props;\n if (isDef(propOptions)) {\n for (var key in propOptions) {\n props[key] = validateProp(key, propOptions, propsData || emptyObject);\n }\n } else {\n if (isDef(data.attrs)) { mergeProps(props, data.attrs); }\n if (isDef(data.props)) { mergeProps(props, data.props); }\n }\n\n var renderContext = new FunctionalRenderContext(\n data,\n props,\n children,\n contextVm,\n Ctor\n );\n\n var vnode = options.render.call(null, renderContext._c, renderContext);\n\n if (vnode instanceof VNode) {\n return cloneAndMarkFunctionalResult(vnode, data, renderContext.parent, options, renderContext)\n } else if (Array.isArray(vnode)) {\n var vnodes = normalizeChildren(vnode) || [];\n var res = new Array(vnodes.length);\n for (var i = 0; i < vnodes.length; i++) {\n res[i] = cloneAndMarkFunctionalResult(vnodes[i], data, renderContext.parent, options, renderContext);\n }\n return res\n }\n}\n\nfunction cloneAndMarkFunctionalResult (vnode, data, contextVm, options, renderContext) {\n // #7817 clone node before setting fnContext, otherwise if the node is reused\n // (e.g. it was from a cached normal slot) the fnContext causes named slots\n // that should not be matched to match.\n var clone = cloneVNode(vnode);\n clone.fnContext = contextVm;\n clone.fnOptions = options;\n if (process.env.NODE_ENV !== 'production') {\n (clone.devtoolsMeta = clone.devtoolsMeta || {}).renderContext = renderContext;\n }\n if (data.slot) {\n (clone.data || (clone.data = {})).slot = data.slot;\n }\n return clone\n}\n\nfunction mergeProps (to, from) {\n for (var key in from) {\n to[camelize(key)] = from[key];\n }\n}\n\n/* */\n\n/* */\n\n/* */\n\n/* */\n\n// inline hooks to be invoked on component VNodes during patch\nvar componentVNodeHooks = {\n init: function init (vnode, hydrating) {\n if (\n vnode.componentInstance &&\n !vnode.componentInstance._isDestroyed &&\n vnode.data.keepAlive\n ) {\n // kept-alive components, treat as a patch\n var mountedNode = vnode; // work around flow\n componentVNodeHooks.prepatch(mountedNode, mountedNode);\n } else {\n var child = vnode.componentInstance = createComponentInstanceForVnode(\n vnode,\n activeInstance\n );\n child.$mount(hydrating ? vnode.elm : undefined, hydrating);\n }\n },\n\n prepatch: function prepatch (oldVnode, vnode) {\n var options = vnode.componentOptions;\n var child = vnode.componentInstance = oldVnode.componentInstance;\n updateChildComponent(\n child,\n options.propsData, // updated props\n options.listeners, // updated listeners\n vnode, // new parent vnode\n options.children // new children\n );\n },\n\n insert: function insert (vnode) {\n var context = vnode.context;\n var componentInstance = vnode.componentInstance;\n if (!componentInstance._isMounted) {\n componentInstance._isMounted = true;\n callHook(componentInstance, 'mounted');\n }\n if (vnode.data.keepAlive) {\n if (context._isMounted) {\n // vue-router#1212\n // During updates, a kept-alive component's child components may\n // change, so directly walking the tree here may call activated hooks\n // on incorrect children. Instead we push them into a queue which will\n // be processed after the whole patch process ended.\n queueActivatedComponent(componentInstance);\n } else {\n activateChildComponent(componentInstance, true /* direct */);\n }\n }\n },\n\n destroy: function destroy (vnode) {\n var componentInstance = vnode.componentInstance;\n if (!componentInstance._isDestroyed) {\n if (!vnode.data.keepAlive) {\n componentInstance.$destroy();\n } else {\n deactivateChildComponent(componentInstance, true /* direct */);\n }\n }\n }\n};\n\nvar hooksToMerge = Object.keys(componentVNodeHooks);\n\nfunction createComponent (\n Ctor,\n data,\n context,\n children,\n tag\n) {\n if (isUndef(Ctor)) {\n return\n }\n\n var baseCtor = context.$options._base;\n\n // plain options object: turn it into a constructor\n if (isObject(Ctor)) {\n Ctor = baseCtor.extend(Ctor);\n }\n\n // if at this stage it's not a constructor or an async component factory,\n // reject.\n if (typeof Ctor !== 'function') {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Invalid Component definition: \" + (String(Ctor))), context);\n }\n return\n }\n\n // async component\n var asyncFactory;\n if (isUndef(Ctor.cid)) {\n asyncFactory = Ctor;\n Ctor = resolveAsyncComponent(asyncFactory, baseCtor);\n if (Ctor === undefined) {\n // return a placeholder node for async component, which is rendered\n // as a comment node but preserves all the raw information for the node.\n // the information will be used for async server-rendering and hydration.\n return createAsyncPlaceholder(\n asyncFactory,\n data,\n context,\n children,\n tag\n )\n }\n }\n\n data = data || {};\n\n // resolve constructor options in case global mixins are applied after\n // component constructor creation\n resolveConstructorOptions(Ctor);\n\n // transform component v-model data into props & events\n if (isDef(data.model)) {\n transformModel(Ctor.options, data);\n }\n\n // extract props\n var propsData = extractPropsFromVNodeData(data, Ctor, tag);\n\n // functional component\n if (isTrue(Ctor.options.functional)) {\n return createFunctionalComponent(Ctor, propsData, data, context, children)\n }\n\n // extract listeners, since these needs to be treated as\n // child component listeners instead of DOM listeners\n var listeners = data.on;\n // replace with listeners with .native modifier\n // so it gets processed during parent component patch.\n data.on = data.nativeOn;\n\n if (isTrue(Ctor.options.abstract)) {\n // abstract components do not keep anything\n // other than props & listeners & slot\n\n // work around flow\n var slot = data.slot;\n data = {};\n if (slot) {\n data.slot = slot;\n }\n }\n\n // install component management hooks onto the placeholder node\n installComponentHooks(data);\n\n // return a placeholder vnode\n var name = Ctor.options.name || tag;\n var vnode = new VNode(\n (\"vue-component-\" + (Ctor.cid) + (name ? (\"-\" + name) : '')),\n data, undefined, undefined, undefined, context,\n { Ctor: Ctor, propsData: propsData, listeners: listeners, tag: tag, children: children },\n asyncFactory\n );\n\n return vnode\n}\n\nfunction createComponentInstanceForVnode (\n vnode, // we know it's MountedComponentVNode but flow doesn't\n parent // activeInstance in lifecycle state\n) {\n var options = {\n _isComponent: true,\n _parentVnode: vnode,\n parent: parent\n };\n // check inline-template render functions\n var inlineTemplate = vnode.data.inlineTemplate;\n if (isDef(inlineTemplate)) {\n options.render = inlineTemplate.render;\n options.staticRenderFns = inlineTemplate.staticRenderFns;\n }\n return new vnode.componentOptions.Ctor(options)\n}\n\nfunction installComponentHooks (data) {\n var hooks = data.hook || (data.hook = {});\n for (var i = 0; i < hooksToMerge.length; i++) {\n var key = hooksToMerge[i];\n var existing = hooks[key];\n var toMerge = componentVNodeHooks[key];\n if (existing !== toMerge && !(existing && existing._merged)) {\n hooks[key] = existing ? mergeHook$1(toMerge, existing) : toMerge;\n }\n }\n}\n\nfunction mergeHook$1 (f1, f2) {\n var merged = function (a, b) {\n // flow complains about extra args which is why we use any\n f1(a, b);\n f2(a, b);\n };\n merged._merged = true;\n return merged\n}\n\n// transform component v-model info (value and callback) into\n// prop and event handler respectively.\nfunction transformModel (options, data) {\n var prop = (options.model && options.model.prop) || 'value';\n var event = (options.model && options.model.event) || 'input'\n ;(data.attrs || (data.attrs = {}))[prop] = data.model.value;\n var on = data.on || (data.on = {});\n var existing = on[event];\n var callback = data.model.callback;\n if (isDef(existing)) {\n if (\n Array.isArray(existing)\n ? existing.indexOf(callback) === -1\n : existing !== callback\n ) {\n on[event] = [callback].concat(existing);\n }\n } else {\n on[event] = callback;\n }\n}\n\n/* */\n\nvar SIMPLE_NORMALIZE = 1;\nvar ALWAYS_NORMALIZE = 2;\n\n// wrapper function for providing a more flexible interface\n// without getting yelled at by flow\nfunction createElement (\n context,\n tag,\n data,\n children,\n normalizationType,\n alwaysNormalize\n) {\n if (Array.isArray(data) || isPrimitive(data)) {\n normalizationType = children;\n children = data;\n data = undefined;\n }\n if (isTrue(alwaysNormalize)) {\n normalizationType = ALWAYS_NORMALIZE;\n }\n return _createElement(context, tag, data, children, normalizationType)\n}\n\nfunction _createElement (\n context,\n tag,\n data,\n children,\n normalizationType\n) {\n if (isDef(data) && isDef((data).__ob__)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Avoid using observed data object as vnode data: \" + (JSON.stringify(data)) + \"\\n\" +\n 'Always create fresh vnode data objects in each render!',\n context\n );\n return createEmptyVNode()\n }\n // object syntax in v-bind\n if (isDef(data) && isDef(data.is)) {\n tag = data.is;\n }\n if (!tag) {\n // in case of component :is set to falsy value\n return createEmptyVNode()\n }\n // warn against non-primitive key\n if (process.env.NODE_ENV !== 'production' &&\n isDef(data) && isDef(data.key) && !isPrimitive(data.key)\n ) {\n {\n warn(\n 'Avoid using non-primitive value as key, ' +\n 'use string/number value instead.',\n context\n );\n }\n }\n // support single function children as default scoped slot\n if (Array.isArray(children) &&\n typeof children[0] === 'function'\n ) {\n data = data || {};\n data.scopedSlots = { default: children[0] };\n children.length = 0;\n }\n if (normalizationType === ALWAYS_NORMALIZE) {\n children = normalizeChildren(children);\n } else if (normalizationType === SIMPLE_NORMALIZE) {\n children = simpleNormalizeChildren(children);\n }\n var vnode, ns;\n if (typeof tag === 'string') {\n var Ctor;\n ns = (context.$vnode && context.$vnode.ns) || config.getTagNamespace(tag);\n if (config.isReservedTag(tag)) {\n // platform built-in elements\n if (process.env.NODE_ENV !== 'production' && isDef(data) && isDef(data.nativeOn)) {\n warn(\n (\"The .native modifier for v-on is only valid on components but it was used on <\" + tag + \">.\"),\n context\n );\n }\n vnode = new VNode(\n config.parsePlatformTagName(tag), data, children,\n undefined, undefined, context\n );\n } else if ((!data || !data.pre) && isDef(Ctor = resolveAsset(context.$options, 'components', tag))) {\n // component\n vnode = createComponent(Ctor, data, context, children, tag);\n } else {\n // unknown or unlisted namespaced elements\n // check at runtime because it may get assigned a namespace when its\n // parent normalizes children\n vnode = new VNode(\n tag, data, children,\n undefined, undefined, context\n );\n }\n } else {\n // direct component options / constructor\n vnode = createComponent(tag, data, context, children);\n }\n if (Array.isArray(vnode)) {\n return vnode\n } else if (isDef(vnode)) {\n if (isDef(ns)) { applyNS(vnode, ns); }\n if (isDef(data)) { registerDeepBindings(data); }\n return vnode\n } else {\n return createEmptyVNode()\n }\n}\n\nfunction applyNS (vnode, ns, force) {\n vnode.ns = ns;\n if (vnode.tag === 'foreignObject') {\n // use default namespace inside foreignObject\n ns = undefined;\n force = true;\n }\n if (isDef(vnode.children)) {\n for (var i = 0, l = vnode.children.length; i < l; i++) {\n var child = vnode.children[i];\n if (isDef(child.tag) && (\n isUndef(child.ns) || (isTrue(force) && child.tag !== 'svg'))) {\n applyNS(child, ns, force);\n }\n }\n }\n}\n\n// ref #5318\n// necessary to ensure parent re-render when deep bindings like :style and\n// :class are used on slot nodes\nfunction registerDeepBindings (data) {\n if (isObject(data.style)) {\n traverse(data.style);\n }\n if (isObject(data.class)) {\n traverse(data.class);\n }\n}\n\n/* */\n\nfunction initRender (vm) {\n vm._vnode = null; // the root of the child tree\n vm._staticTrees = null; // v-once cached trees\n var options = vm.$options;\n var parentVnode = vm.$vnode = options._parentVnode; // the placeholder node in parent tree\n var renderContext = parentVnode && parentVnode.context;\n vm.$slots = resolveSlots(options._renderChildren, renderContext);\n vm.$scopedSlots = emptyObject;\n // bind the createElement fn to this instance\n // so that we get proper render context inside it.\n // args order: tag, data, children, normalizationType, alwaysNormalize\n // internal version is used by render functions compiled from templates\n vm._c = function (a, b, c, d) { return createElement(vm, a, b, c, d, false); };\n // normalization is always applied for the public version, used in\n // user-written render functions.\n vm.$createElement = function (a, b, c, d) { return createElement(vm, a, b, c, d, true); };\n\n // $attrs & $listeners are exposed for easier HOC creation.\n // they need to be reactive so that HOCs using them are always updated\n var parentData = parentVnode && parentVnode.data;\n\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n defineReactive$$1(vm, '$attrs', parentData && parentData.attrs || emptyObject, function () {\n !isUpdatingChildComponent && warn(\"$attrs is readonly.\", vm);\n }, true);\n defineReactive$$1(vm, '$listeners', options._parentListeners || emptyObject, function () {\n !isUpdatingChildComponent && warn(\"$listeners is readonly.\", vm);\n }, true);\n } else {\n defineReactive$$1(vm, '$attrs', parentData && parentData.attrs || emptyObject, null, true);\n defineReactive$$1(vm, '$listeners', options._parentListeners || emptyObject, null, true);\n }\n}\n\nvar currentRenderingInstance = null;\n\nfunction renderMixin (Vue) {\n // install runtime convenience helpers\n installRenderHelpers(Vue.prototype);\n\n Vue.prototype.$nextTick = function (fn) {\n return nextTick(fn, this)\n };\n\n Vue.prototype._render = function () {\n var vm = this;\n var ref = vm.$options;\n var render = ref.render;\n var _parentVnode = ref._parentVnode;\n\n if (_parentVnode) {\n vm.$scopedSlots = normalizeScopedSlots(\n _parentVnode.data.scopedSlots,\n vm.$slots,\n vm.$scopedSlots\n );\n }\n\n // set parent vnode. this allows render functions to have access\n // to the data on the placeholder node.\n vm.$vnode = _parentVnode;\n // render self\n var vnode;\n try {\n // There's no need to maintain a stack because all render fns are called\n // separately from one another. Nested component's render fns are called\n // when parent component is patched.\n currentRenderingInstance = vm;\n vnode = render.call(vm._renderProxy, vm.$createElement);\n } catch (e) {\n handleError(e, vm, \"render\");\n // return error render result,\n // or previous vnode to prevent render error causing blank component\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production' && vm.$options.renderError) {\n try {\n vnode = vm.$options.renderError.call(vm._renderProxy, vm.$createElement, e);\n } catch (e) {\n handleError(e, vm, \"renderError\");\n vnode = vm._vnode;\n }\n } else {\n vnode = vm._vnode;\n }\n } finally {\n currentRenderingInstance = null;\n }\n // if the returned array contains only a single node, allow it\n if (Array.isArray(vnode) && vnode.length === 1) {\n vnode = vnode[0];\n }\n // return empty vnode in case the render function errored out\n if (!(vnode instanceof VNode)) {\n if (process.env.NODE_ENV !== 'production' && Array.isArray(vnode)) {\n warn(\n 'Multiple root nodes returned from render function. Render function ' +\n 'should return a single root node.',\n vm\n );\n }\n vnode = createEmptyVNode();\n }\n // set parent\n vnode.parent = _parentVnode;\n return vnode\n };\n}\n\n/* */\n\nfunction ensureCtor (comp, base) {\n if (\n comp.__esModule ||\n (hasSymbol && comp[Symbol.toStringTag] === 'Module')\n ) {\n comp = comp.default;\n }\n return isObject(comp)\n ? base.extend(comp)\n : comp\n}\n\nfunction createAsyncPlaceholder (\n factory,\n data,\n context,\n children,\n tag\n) {\n var node = createEmptyVNode();\n node.asyncFactory = factory;\n node.asyncMeta = { data: data, context: context, children: children, tag: tag };\n return node\n}\n\nfunction resolveAsyncComponent (\n factory,\n baseCtor\n) {\n if (isTrue(factory.error) && isDef(factory.errorComp)) {\n return factory.errorComp\n }\n\n if (isDef(factory.resolved)) {\n return factory.resolved\n }\n\n var owner = currentRenderingInstance;\n if (owner && isDef(factory.owners) && factory.owners.indexOf(owner) === -1) {\n // already pending\n factory.owners.push(owner);\n }\n\n if (isTrue(factory.loading) && isDef(factory.loadingComp)) {\n return factory.loadingComp\n }\n\n if (owner && !isDef(factory.owners)) {\n var owners = factory.owners = [owner];\n var sync = true;\n var timerLoading = null;\n var timerTimeout = null\n\n ;(owner).$on('hook:destroyed', function () { return remove(owners, owner); });\n\n var forceRender = function (renderCompleted) {\n for (var i = 0, l = owners.length; i < l; i++) {\n (owners[i]).$forceUpdate();\n }\n\n if (renderCompleted) {\n owners.length = 0;\n if (timerLoading !== null) {\n clearTimeout(timerLoading);\n timerLoading = null;\n }\n if (timerTimeout !== null) {\n clearTimeout(timerTimeout);\n timerTimeout = null;\n }\n }\n };\n\n var resolve = once(function (res) {\n // cache resolved\n factory.resolved = ensureCtor(res, baseCtor);\n // invoke callbacks only if this is not a synchronous resolve\n // (async resolves are shimmed as synchronous during SSR)\n if (!sync) {\n forceRender(true);\n } else {\n owners.length = 0;\n }\n });\n\n var reject = once(function (reason) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Failed to resolve async component: \" + (String(factory)) +\n (reason ? (\"\\nReason: \" + reason) : '')\n );\n if (isDef(factory.errorComp)) {\n factory.error = true;\n forceRender(true);\n }\n });\n\n var res = factory(resolve, reject);\n\n if (isObject(res)) {\n if (isPromise(res)) {\n // () => Promise\n if (isUndef(factory.resolved)) {\n res.then(resolve, reject);\n }\n } else if (isPromise(res.component)) {\n res.component.then(resolve, reject);\n\n if (isDef(res.error)) {\n factory.errorComp = ensureCtor(res.error, baseCtor);\n }\n\n if (isDef(res.loading)) {\n factory.loadingComp = ensureCtor(res.loading, baseCtor);\n if (res.delay === 0) {\n factory.loading = true;\n } else {\n timerLoading = setTimeout(function () {\n timerLoading = null;\n if (isUndef(factory.resolved) && isUndef(factory.error)) {\n factory.loading = true;\n forceRender(false);\n }\n }, res.delay || 200);\n }\n }\n\n if (isDef(res.timeout)) {\n timerTimeout = setTimeout(function () {\n timerTimeout = null;\n if (isUndef(factory.resolved)) {\n reject(\n process.env.NODE_ENV !== 'production'\n ? (\"timeout (\" + (res.timeout) + \"ms)\")\n : null\n );\n }\n }, res.timeout);\n }\n }\n }\n\n sync = false;\n // return in case resolved synchronously\n return factory.loading\n ? factory.loadingComp\n : factory.resolved\n }\n}\n\n/* */\n\nfunction isAsyncPlaceholder (node) {\n return node.isComment && node.asyncFactory\n}\n\n/* */\n\nfunction getFirstComponentChild (children) {\n if (Array.isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n var c = children[i];\n if (isDef(c) && (isDef(c.componentOptions) || isAsyncPlaceholder(c))) {\n return c\n }\n }\n }\n}\n\n/* */\n\n/* */\n\nfunction initEvents (vm) {\n vm._events = Object.create(null);\n vm._hasHookEvent = false;\n // init parent attached events\n var listeners = vm.$options._parentListeners;\n if (listeners) {\n updateComponentListeners(vm, listeners);\n }\n}\n\nvar target;\n\nfunction add (event, fn) {\n target.$on(event, fn);\n}\n\nfunction remove$1 (event, fn) {\n target.$off(event, fn);\n}\n\nfunction createOnceHandler (event, fn) {\n var _target = target;\n return function onceHandler () {\n var res = fn.apply(null, arguments);\n if (res !== null) {\n _target.$off(event, onceHandler);\n }\n }\n}\n\nfunction updateComponentListeners (\n vm,\n listeners,\n oldListeners\n) {\n target = vm;\n updateListeners(listeners, oldListeners || {}, add, remove$1, createOnceHandler, vm);\n target = undefined;\n}\n\nfunction eventsMixin (Vue) {\n var hookRE = /^hook:/;\n Vue.prototype.$on = function (event, fn) {\n var vm = this;\n if (Array.isArray(event)) {\n for (var i = 0, l = event.length; i < l; i++) {\n vm.$on(event[i], fn);\n }\n } else {\n (vm._events[event] || (vm._events[event] = [])).push(fn);\n // optimize hook:event cost by using a boolean flag marked at registration\n // instead of a hash lookup\n if (hookRE.test(event)) {\n vm._hasHookEvent = true;\n }\n }\n return vm\n };\n\n Vue.prototype.$once = function (event, fn) {\n var vm = this;\n function on () {\n vm.$off(event, on);\n fn.apply(vm, arguments);\n }\n on.fn = fn;\n vm.$on(event, on);\n return vm\n };\n\n Vue.prototype.$off = function (event, fn) {\n var vm = this;\n // all\n if (!arguments.length) {\n vm._events = Object.create(null);\n return vm\n }\n // array of events\n if (Array.isArray(event)) {\n for (var i$1 = 0, l = event.length; i$1 < l; i$1++) {\n vm.$off(event[i$1], fn);\n }\n return vm\n }\n // specific event\n var cbs = vm._events[event];\n if (!cbs) {\n return vm\n }\n if (!fn) {\n vm._events[event] = null;\n return vm\n }\n // specific handler\n var cb;\n var i = cbs.length;\n while (i--) {\n cb = cbs[i];\n if (cb === fn || cb.fn === fn) {\n cbs.splice(i, 1);\n break\n }\n }\n return vm\n };\n\n Vue.prototype.$emit = function (event) {\n var vm = this;\n if (process.env.NODE_ENV !== 'production') {\n var lowerCaseEvent = event.toLowerCase();\n if (lowerCaseEvent !== event && vm._events[lowerCaseEvent]) {\n tip(\n \"Event \\\"\" + lowerCaseEvent + \"\\\" is emitted in component \" +\n (formatComponentName(vm)) + \" but the handler is registered for \\\"\" + event + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and you cannot use \" +\n \"v-on to listen to camelCase events when using in-DOM templates. \" +\n \"You should probably use \\\"\" + (hyphenate(event)) + \"\\\" instead of \\\"\" + event + \"\\\".\"\n );\n }\n }\n var cbs = vm._events[event];\n if (cbs) {\n cbs = cbs.length > 1 ? toArray(cbs) : cbs;\n var args = toArray(arguments, 1);\n var info = \"event handler for \\\"\" + event + \"\\\"\";\n for (var i = 0, l = cbs.length; i < l; i++) {\n invokeWithErrorHandling(cbs[i], vm, args, vm, info);\n }\n }\n return vm\n };\n}\n\n/* */\n\nvar activeInstance = null;\nvar isUpdatingChildComponent = false;\n\nfunction setActiveInstance(vm) {\n var prevActiveInstance = activeInstance;\n activeInstance = vm;\n return function () {\n activeInstance = prevActiveInstance;\n }\n}\n\nfunction initLifecycle (vm) {\n var options = vm.$options;\n\n // locate first non-abstract parent\n var parent = options.parent;\n if (parent && !options.abstract) {\n while (parent.$options.abstract && parent.$parent) {\n parent = parent.$parent;\n }\n parent.$children.push(vm);\n }\n\n vm.$parent = parent;\n vm.$root = parent ? parent.$root : vm;\n\n vm.$children = [];\n vm.$refs = {};\n\n vm._watcher = null;\n vm._inactive = null;\n vm._directInactive = false;\n vm._isMounted = false;\n vm._isDestroyed = false;\n vm._isBeingDestroyed = false;\n}\n\nfunction lifecycleMixin (Vue) {\n Vue.prototype._update = function (vnode, hydrating) {\n var vm = this;\n var prevEl = vm.$el;\n var prevVnode = vm._vnode;\n var restoreActiveInstance = setActiveInstance(vm);\n vm._vnode = vnode;\n // Vue.prototype.__patch__ is injected in entry points\n // based on the rendering backend used.\n if (!prevVnode) {\n // initial render\n vm.$el = vm.__patch__(vm.$el, vnode, hydrating, false /* removeOnly */);\n } else {\n // updates\n vm.$el = vm.__patch__(prevVnode, vnode);\n }\n restoreActiveInstance();\n // update __vue__ reference\n if (prevEl) {\n prevEl.__vue__ = null;\n }\n if (vm.$el) {\n vm.$el.__vue__ = vm;\n }\n // if parent is an HOC, update its $el as well\n if (vm.$vnode && vm.$parent && vm.$vnode === vm.$parent._vnode) {\n vm.$parent.$el = vm.$el;\n }\n // updated hook is called by the scheduler to ensure that children are\n // updated in a parent's updated hook.\n };\n\n Vue.prototype.$forceUpdate = function () {\n var vm = this;\n if (vm._watcher) {\n vm._watcher.update();\n }\n };\n\n Vue.prototype.$destroy = function () {\n var vm = this;\n if (vm._isBeingDestroyed) {\n return\n }\n callHook(vm, 'beforeDestroy');\n vm._isBeingDestroyed = true;\n // remove self from parent\n var parent = vm.$parent;\n if (parent && !parent._isBeingDestroyed && !vm.$options.abstract) {\n remove(parent.$children, vm);\n }\n // teardown watchers\n if (vm._watcher) {\n vm._watcher.teardown();\n }\n var i = vm._watchers.length;\n while (i--) {\n vm._watchers[i].teardown();\n }\n // remove reference from data ob\n // frozen object may not have observer.\n if (vm._data.__ob__) {\n vm._data.__ob__.vmCount--;\n }\n // call the last hook...\n vm._isDestroyed = true;\n // invoke destroy hooks on current rendered tree\n vm.__patch__(vm._vnode, null);\n // fire destroyed hook\n callHook(vm, 'destroyed');\n // turn off all instance listeners.\n vm.$off();\n // remove __vue__ reference\n if (vm.$el) {\n vm.$el.__vue__ = null;\n }\n // release circular reference (#6759)\n if (vm.$vnode) {\n vm.$vnode.parent = null;\n }\n };\n}\n\nfunction mountComponent (\n vm,\n el,\n hydrating\n) {\n vm.$el = el;\n if (!vm.$options.render) {\n vm.$options.render = createEmptyVNode;\n if (process.env.NODE_ENV !== 'production') {\n /* istanbul ignore if */\n if ((vm.$options.template && vm.$options.template.charAt(0) !== '#') ||\n vm.$options.el || el) {\n warn(\n 'You are using the runtime-only build of Vue where the template ' +\n 'compiler is not available. Either pre-compile the templates into ' +\n 'render functions, or use the compiler-included build.',\n vm\n );\n } else {\n warn(\n 'Failed to mount component: template or render function not defined.',\n vm\n );\n }\n }\n }\n callHook(vm, 'beforeMount');\n\n var updateComponent;\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n updateComponent = function () {\n var name = vm._name;\n var id = vm._uid;\n var startTag = \"vue-perf-start:\" + id;\n var endTag = \"vue-perf-end:\" + id;\n\n mark(startTag);\n var vnode = vm._render();\n mark(endTag);\n measure((\"vue \" + name + \" render\"), startTag, endTag);\n\n mark(startTag);\n vm._update(vnode, hydrating);\n mark(endTag);\n measure((\"vue \" + name + \" patch\"), startTag, endTag);\n };\n } else {\n updateComponent = function () {\n vm._update(vm._render(), hydrating);\n };\n }\n\n // we set this to vm._watcher inside the watcher's constructor\n // since the watcher's initial patch may call $forceUpdate (e.g. inside child\n // component's mounted hook), which relies on vm._watcher being already defined\n new Watcher(vm, updateComponent, noop, {\n before: function before () {\n if (vm._isMounted && !vm._isDestroyed) {\n callHook(vm, 'beforeUpdate');\n }\n }\n }, true /* isRenderWatcher */);\n hydrating = false;\n\n // manually mounted instance, call mounted on self\n // mounted is called for render-created child components in its inserted hook\n if (vm.$vnode == null) {\n vm._isMounted = true;\n callHook(vm, 'mounted');\n }\n return vm\n}\n\nfunction updateChildComponent (\n vm,\n propsData,\n listeners,\n parentVnode,\n renderChildren\n) {\n if (process.env.NODE_ENV !== 'production') {\n isUpdatingChildComponent = true;\n }\n\n // determine whether component has slot children\n // we need to do this before overwriting $options._renderChildren.\n\n // check if there are dynamic scopedSlots (hand-written or compiled but with\n // dynamic slot names). Static scoped slots compiled from template has the\n // \"$stable\" marker.\n var newScopedSlots = parentVnode.data.scopedSlots;\n var oldScopedSlots = vm.$scopedSlots;\n var hasDynamicScopedSlot = !!(\n (newScopedSlots && !newScopedSlots.$stable) ||\n (oldScopedSlots !== emptyObject && !oldScopedSlots.$stable) ||\n (newScopedSlots && vm.$scopedSlots.$key !== newScopedSlots.$key)\n );\n\n // Any static slot children from the parent may have changed during parent's\n // update. Dynamic scoped slots may also have changed. In such cases, a forced\n // update is necessary to ensure correctness.\n var needsForceUpdate = !!(\n renderChildren || // has new static slots\n vm.$options._renderChildren || // has old static slots\n hasDynamicScopedSlot\n );\n\n vm.$options._parentVnode = parentVnode;\n vm.$vnode = parentVnode; // update vm's placeholder node without re-render\n\n if (vm._vnode) { // update child tree's parent\n vm._vnode.parent = parentVnode;\n }\n vm.$options._renderChildren = renderChildren;\n\n // update $attrs and $listeners hash\n // these are also reactive so they may trigger child update if the child\n // used them during render\n vm.$attrs = parentVnode.data.attrs || emptyObject;\n vm.$listeners = listeners || emptyObject;\n\n // update props\n if (propsData && vm.$options.props) {\n toggleObserving(false);\n var props = vm._props;\n var propKeys = vm.$options._propKeys || [];\n for (var i = 0; i < propKeys.length; i++) {\n var key = propKeys[i];\n var propOptions = vm.$options.props; // wtf flow?\n props[key] = validateProp(key, propOptions, propsData, vm);\n }\n toggleObserving(true);\n // keep a copy of raw propsData\n vm.$options.propsData = propsData;\n }\n\n // update listeners\n listeners = listeners || emptyObject;\n var oldListeners = vm.$options._parentListeners;\n vm.$options._parentListeners = listeners;\n updateComponentListeners(vm, listeners, oldListeners);\n\n // resolve slots + force update if has children\n if (needsForceUpdate) {\n vm.$slots = resolveSlots(renderChildren, parentVnode.context);\n vm.$forceUpdate();\n }\n\n if (process.env.NODE_ENV !== 'production') {\n isUpdatingChildComponent = false;\n }\n}\n\nfunction isInInactiveTree (vm) {\n while (vm && (vm = vm.$parent)) {\n if (vm._inactive) { return true }\n }\n return false\n}\n\nfunction activateChildComponent (vm, direct) {\n if (direct) {\n vm._directInactive = false;\n if (isInInactiveTree(vm)) {\n return\n }\n } else if (vm._directInactive) {\n return\n }\n if (vm._inactive || vm._inactive === null) {\n vm._inactive = false;\n for (var i = 0; i < vm.$children.length; i++) {\n activateChildComponent(vm.$children[i]);\n }\n callHook(vm, 'activated');\n }\n}\n\nfunction deactivateChildComponent (vm, direct) {\n if (direct) {\n vm._directInactive = true;\n if (isInInactiveTree(vm)) {\n return\n }\n }\n if (!vm._inactive) {\n vm._inactive = true;\n for (var i = 0; i < vm.$children.length; i++) {\n deactivateChildComponent(vm.$children[i]);\n }\n callHook(vm, 'deactivated');\n }\n}\n\nfunction callHook (vm, hook) {\n // #7573 disable dep collection when invoking lifecycle hooks\n pushTarget();\n var handlers = vm.$options[hook];\n var info = hook + \" hook\";\n if (handlers) {\n for (var i = 0, j = handlers.length; i < j; i++) {\n invokeWithErrorHandling(handlers[i], vm, null, vm, info);\n }\n }\n if (vm._hasHookEvent) {\n vm.$emit('hook:' + hook);\n }\n popTarget();\n}\n\n/* */\n\nvar MAX_UPDATE_COUNT = 100;\n\nvar queue = [];\nvar activatedChildren = [];\nvar has = {};\nvar circular = {};\nvar waiting = false;\nvar flushing = false;\nvar index = 0;\n\n/**\n * Reset the scheduler's state.\n */\nfunction resetSchedulerState () {\n index = queue.length = activatedChildren.length = 0;\n has = {};\n if (process.env.NODE_ENV !== 'production') {\n circular = {};\n }\n waiting = flushing = false;\n}\n\n// Async edge case #6566 requires saving the timestamp when event listeners are\n// attached. However, calling performance.now() has a perf overhead especially\n// if the page has thousands of event listeners. Instead, we take a timestamp\n// every time the scheduler flushes and use that for all event listeners\n// attached during that flush.\nvar currentFlushTimestamp = 0;\n\n// Async edge case fix requires storing an event listener's attach timestamp.\nvar getNow = Date.now;\n\n// Determine what event timestamp the browser is using. Annoyingly, the\n// timestamp can either be hi-res (relative to page load) or low-res\n// (relative to UNIX epoch), so in order to compare time we have to use the\n// same timestamp type when saving the flush timestamp.\n// All IE versions use low-res event timestamps, and have problematic clock\n// implementations (#9632)\nif (inBrowser && !isIE) {\n var performance = window.performance;\n if (\n performance &&\n typeof performance.now === 'function' &&\n getNow() > document.createEvent('Event').timeStamp\n ) {\n // if the event timestamp, although evaluated AFTER the Date.now(), is\n // smaller than it, it means the event is using a hi-res timestamp,\n // and we need to use the hi-res version for event listener timestamps as\n // well.\n getNow = function () { return performance.now(); };\n }\n}\n\n/**\n * Flush both queues and run the watchers.\n */\nfunction flushSchedulerQueue () {\n currentFlushTimestamp = getNow();\n flushing = true;\n var watcher, id;\n\n // Sort queue before flush.\n // This ensures that:\n // 1. Components are updated from parent to child. (because parent is always\n // created before the child)\n // 2. A component's user watchers are run before its render watcher (because\n // user watchers are created before the render watcher)\n // 3. If a component is destroyed during a parent component's watcher run,\n // its watchers can be skipped.\n queue.sort(function (a, b) { return a.id - b.id; });\n\n // do not cache length because more watchers might be pushed\n // as we run existing watchers\n for (index = 0; index < queue.length; index++) {\n watcher = queue[index];\n if (watcher.before) {\n watcher.before();\n }\n id = watcher.id;\n has[id] = null;\n watcher.run();\n // in dev build, check and stop circular updates.\n if (process.env.NODE_ENV !== 'production' && has[id] != null) {\n circular[id] = (circular[id] || 0) + 1;\n if (circular[id] > MAX_UPDATE_COUNT) {\n warn(\n 'You may have an infinite update loop ' + (\n watcher.user\n ? (\"in watcher with expression \\\"\" + (watcher.expression) + \"\\\"\")\n : \"in a component render function.\"\n ),\n watcher.vm\n );\n break\n }\n }\n }\n\n // keep copies of post queues before resetting state\n var activatedQueue = activatedChildren.slice();\n var updatedQueue = queue.slice();\n\n resetSchedulerState();\n\n // call component updated and activated hooks\n callActivatedHooks(activatedQueue);\n callUpdatedHooks(updatedQueue);\n\n // devtool hook\n /* istanbul ignore if */\n if (devtools && config.devtools) {\n devtools.emit('flush');\n }\n}\n\nfunction callUpdatedHooks (queue) {\n var i = queue.length;\n while (i--) {\n var watcher = queue[i];\n var vm = watcher.vm;\n if (vm._watcher === watcher && vm._isMounted && !vm._isDestroyed) {\n callHook(vm, 'updated');\n }\n }\n}\n\n/**\n * Queue a kept-alive component that was activated during patch.\n * The queue will be processed after the entire tree has been patched.\n */\nfunction queueActivatedComponent (vm) {\n // setting _inactive to false here so that a render function can\n // rely on checking whether it's in an inactive tree (e.g. router-view)\n vm._inactive = false;\n activatedChildren.push(vm);\n}\n\nfunction callActivatedHooks (queue) {\n for (var i = 0; i < queue.length; i++) {\n queue[i]._inactive = true;\n activateChildComponent(queue[i], true /* true */);\n }\n}\n\n/**\n * Push a watcher into the watcher queue.\n * Jobs with duplicate IDs will be skipped unless it's\n * pushed when the queue is being flushed.\n */\nfunction queueWatcher (watcher) {\n var id = watcher.id;\n if (has[id] == null) {\n has[id] = true;\n if (!flushing) {\n queue.push(watcher);\n } else {\n // if already flushing, splice the watcher based on its id\n // if already past its id, it will be run next immediately.\n var i = queue.length - 1;\n while (i > index && queue[i].id > watcher.id) {\n i--;\n }\n queue.splice(i + 1, 0, watcher);\n }\n // queue the flush\n if (!waiting) {\n waiting = true;\n\n if (process.env.NODE_ENV !== 'production' && !config.async) {\n flushSchedulerQueue();\n return\n }\n nextTick(flushSchedulerQueue);\n }\n }\n}\n\n/* */\n\n\n\nvar uid$2 = 0;\n\n/**\n * A watcher parses an expression, collects dependencies,\n * and fires callback when the expression value changes.\n * This is used for both the $watch() api and directives.\n */\nvar Watcher = function Watcher (\n vm,\n expOrFn,\n cb,\n options,\n isRenderWatcher\n) {\n this.vm = vm;\n if (isRenderWatcher) {\n vm._watcher = this;\n }\n vm._watchers.push(this);\n // options\n if (options) {\n this.deep = !!options.deep;\n this.user = !!options.user;\n this.lazy = !!options.lazy;\n this.sync = !!options.sync;\n this.before = options.before;\n } else {\n this.deep = this.user = this.lazy = this.sync = false;\n }\n this.cb = cb;\n this.id = ++uid$2; // uid for batching\n this.active = true;\n this.dirty = this.lazy; // for lazy watchers\n this.deps = [];\n this.newDeps = [];\n this.depIds = new _Set();\n this.newDepIds = new _Set();\n this.expression = process.env.NODE_ENV !== 'production'\n ? expOrFn.toString()\n : '';\n // parse expression for getter\n if (typeof expOrFn === 'function') {\n this.getter = expOrFn;\n } else {\n this.getter = parsePath(expOrFn);\n if (!this.getter) {\n this.getter = noop;\n process.env.NODE_ENV !== 'production' && warn(\n \"Failed watching path: \\\"\" + expOrFn + \"\\\" \" +\n 'Watcher only accepts simple dot-delimited paths. ' +\n 'For full control, use a function instead.',\n vm\n );\n }\n }\n this.value = this.lazy\n ? undefined\n : this.get();\n};\n\n/**\n * Evaluate the getter, and re-collect dependencies.\n */\nWatcher.prototype.get = function get () {\n pushTarget(this);\n var value;\n var vm = this.vm;\n try {\n value = this.getter.call(vm, vm);\n } catch (e) {\n if (this.user) {\n handleError(e, vm, (\"getter for watcher \\\"\" + (this.expression) + \"\\\"\"));\n } else {\n throw e\n }\n } finally {\n // \"touch\" every property so they are all tracked as\n // dependencies for deep watching\n if (this.deep) {\n traverse(value);\n }\n popTarget();\n this.cleanupDeps();\n }\n return value\n};\n\n/**\n * Add a dependency to this directive.\n */\nWatcher.prototype.addDep = function addDep (dep) {\n var id = dep.id;\n if (!this.newDepIds.has(id)) {\n this.newDepIds.add(id);\n this.newDeps.push(dep);\n if (!this.depIds.has(id)) {\n dep.addSub(this);\n }\n }\n};\n\n/**\n * Clean up for dependency collection.\n */\nWatcher.prototype.cleanupDeps = function cleanupDeps () {\n var i = this.deps.length;\n while (i--) {\n var dep = this.deps[i];\n if (!this.newDepIds.has(dep.id)) {\n dep.removeSub(this);\n }\n }\n var tmp = this.depIds;\n this.depIds = this.newDepIds;\n this.newDepIds = tmp;\n this.newDepIds.clear();\n tmp = this.deps;\n this.deps = this.newDeps;\n this.newDeps = tmp;\n this.newDeps.length = 0;\n};\n\n/**\n * Subscriber interface.\n * Will be called when a dependency changes.\n */\nWatcher.prototype.update = function update () {\n /* istanbul ignore else */\n if (this.lazy) {\n this.dirty = true;\n } else if (this.sync) {\n this.run();\n } else {\n queueWatcher(this);\n }\n};\n\n/**\n * Scheduler job interface.\n * Will be called by the scheduler.\n */\nWatcher.prototype.run = function run () {\n if (this.active) {\n var value = this.get();\n if (\n value !== this.value ||\n // Deep watchers and watchers on Object/Arrays should fire even\n // when the value is the same, because the value may\n // have mutated.\n isObject(value) ||\n this.deep\n ) {\n // set new value\n var oldValue = this.value;\n this.value = value;\n if (this.user) {\n try {\n this.cb.call(this.vm, value, oldValue);\n } catch (e) {\n handleError(e, this.vm, (\"callback for watcher \\\"\" + (this.expression) + \"\\\"\"));\n }\n } else {\n this.cb.call(this.vm, value, oldValue);\n }\n }\n }\n};\n\n/**\n * Evaluate the value of the watcher.\n * This only gets called for lazy watchers.\n */\nWatcher.prototype.evaluate = function evaluate () {\n this.value = this.get();\n this.dirty = false;\n};\n\n/**\n * Depend on all deps collected by this watcher.\n */\nWatcher.prototype.depend = function depend () {\n var i = this.deps.length;\n while (i--) {\n this.deps[i].depend();\n }\n};\n\n/**\n * Remove self from all dependencies' subscriber list.\n */\nWatcher.prototype.teardown = function teardown () {\n if (this.active) {\n // remove self from vm's watcher list\n // this is a somewhat expensive operation so we skip it\n // if the vm is being destroyed.\n if (!this.vm._isBeingDestroyed) {\n remove(this.vm._watchers, this);\n }\n var i = this.deps.length;\n while (i--) {\n this.deps[i].removeSub(this);\n }\n this.active = false;\n }\n};\n\n/* */\n\nvar sharedPropertyDefinition = {\n enumerable: true,\n configurable: true,\n get: noop,\n set: noop\n};\n\nfunction proxy (target, sourceKey, key) {\n sharedPropertyDefinition.get = function proxyGetter () {\n return this[sourceKey][key]\n };\n sharedPropertyDefinition.set = function proxySetter (val) {\n this[sourceKey][key] = val;\n };\n Object.defineProperty(target, key, sharedPropertyDefinition);\n}\n\nfunction initState (vm) {\n vm._watchers = [];\n var opts = vm.$options;\n if (opts.props) { initProps(vm, opts.props); }\n if (opts.methods) { initMethods(vm, opts.methods); }\n if (opts.data) {\n initData(vm);\n } else {\n observe(vm._data = {}, true /* asRootData */);\n }\n if (opts.computed) { initComputed(vm, opts.computed); }\n if (opts.watch && opts.watch !== nativeWatch) {\n initWatch(vm, opts.watch);\n }\n}\n\nfunction initProps (vm, propsOptions) {\n var propsData = vm.$options.propsData || {};\n var props = vm._props = {};\n // cache prop keys so that future props updates can iterate using Array\n // instead of dynamic object key enumeration.\n var keys = vm.$options._propKeys = [];\n var isRoot = !vm.$parent;\n // root instance props should be converted\n if (!isRoot) {\n toggleObserving(false);\n }\n var loop = function ( key ) {\n keys.push(key);\n var value = validateProp(key, propsOptions, propsData, vm);\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n var hyphenatedKey = hyphenate(key);\n if (isReservedAttribute(hyphenatedKey) ||\n config.isReservedAttr(hyphenatedKey)) {\n warn(\n (\"\\\"\" + hyphenatedKey + \"\\\" is a reserved attribute and cannot be used as component prop.\"),\n vm\n );\n }\n defineReactive$$1(props, key, value, function () {\n if (!isRoot && !isUpdatingChildComponent) {\n warn(\n \"Avoid mutating a prop directly since the value will be \" +\n \"overwritten whenever the parent component re-renders. \" +\n \"Instead, use a data or computed property based on the prop's \" +\n \"value. Prop being mutated: \\\"\" + key + \"\\\"\",\n vm\n );\n }\n });\n } else {\n defineReactive$$1(props, key, value);\n }\n // static props are already proxied on the component's prototype\n // during Vue.extend(). We only need to proxy props defined at\n // instantiation here.\n if (!(key in vm)) {\n proxy(vm, \"_props\", key);\n }\n };\n\n for (var key in propsOptions) loop( key );\n toggleObserving(true);\n}\n\nfunction initData (vm) {\n var data = vm.$options.data;\n data = vm._data = typeof data === 'function'\n ? getData(data, vm)\n : data || {};\n if (!isPlainObject(data)) {\n data = {};\n process.env.NODE_ENV !== 'production' && warn(\n 'data functions should return an object:\\n' +\n 'https://vuejs.org/v2/guide/components.html#data-Must-Be-a-Function',\n vm\n );\n }\n // proxy data on instance\n var keys = Object.keys(data);\n var props = vm.$options.props;\n var methods = vm.$options.methods;\n var i = keys.length;\n while (i--) {\n var key = keys[i];\n if (process.env.NODE_ENV !== 'production') {\n if (methods && hasOwn(methods, key)) {\n warn(\n (\"Method \\\"\" + key + \"\\\" has already been defined as a data property.\"),\n vm\n );\n }\n }\n if (props && hasOwn(props, key)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"The data property \\\"\" + key + \"\\\" is already declared as a prop. \" +\n \"Use prop default value instead.\",\n vm\n );\n } else if (!isReserved(key)) {\n proxy(vm, \"_data\", key);\n }\n }\n // observe data\n observe(data, true /* asRootData */);\n}\n\nfunction getData (data, vm) {\n // #7573 disable dep collection when invoking data getters\n pushTarget();\n try {\n return data.call(vm, vm)\n } catch (e) {\n handleError(e, vm, \"data()\");\n return {}\n } finally {\n popTarget();\n }\n}\n\nvar computedWatcherOptions = { lazy: true };\n\nfunction initComputed (vm, computed) {\n // $flow-disable-line\n var watchers = vm._computedWatchers = Object.create(null);\n // computed properties are just getters during SSR\n var isSSR = isServerRendering();\n\n for (var key in computed) {\n var userDef = computed[key];\n var getter = typeof userDef === 'function' ? userDef : userDef.get;\n if (process.env.NODE_ENV !== 'production' && getter == null) {\n warn(\n (\"Getter is missing for computed property \\\"\" + key + \"\\\".\"),\n vm\n );\n }\n\n if (!isSSR) {\n // create internal watcher for the computed property.\n watchers[key] = new Watcher(\n vm,\n getter || noop,\n noop,\n computedWatcherOptions\n );\n }\n\n // component-defined computed properties are already defined on the\n // component prototype. We only need to define computed properties defined\n // at instantiation here.\n if (!(key in vm)) {\n defineComputed(vm, key, userDef);\n } else if (process.env.NODE_ENV !== 'production') {\n if (key in vm.$data) {\n warn((\"The computed property \\\"\" + key + \"\\\" is already defined in data.\"), vm);\n } else if (vm.$options.props && key in vm.$options.props) {\n warn((\"The computed property \\\"\" + key + \"\\\" is already defined as a prop.\"), vm);\n }\n }\n }\n}\n\nfunction defineComputed (\n target,\n key,\n userDef\n) {\n var shouldCache = !isServerRendering();\n if (typeof userDef === 'function') {\n sharedPropertyDefinition.get = shouldCache\n ? createComputedGetter(key)\n : createGetterInvoker(userDef);\n sharedPropertyDefinition.set = noop;\n } else {\n sharedPropertyDefinition.get = userDef.get\n ? shouldCache && userDef.cache !== false\n ? createComputedGetter(key)\n : createGetterInvoker(userDef.get)\n : noop;\n sharedPropertyDefinition.set = userDef.set || noop;\n }\n if (process.env.NODE_ENV !== 'production' &&\n sharedPropertyDefinition.set === noop) {\n sharedPropertyDefinition.set = function () {\n warn(\n (\"Computed property \\\"\" + key + \"\\\" was assigned to but it has no setter.\"),\n this\n );\n };\n }\n Object.defineProperty(target, key, sharedPropertyDefinition);\n}\n\nfunction createComputedGetter (key) {\n return function computedGetter () {\n var watcher = this._computedWatchers && this._computedWatchers[key];\n if (watcher) {\n if (watcher.dirty) {\n watcher.evaluate();\n }\n if (Dep.target) {\n watcher.depend();\n }\n return watcher.value\n }\n }\n}\n\nfunction createGetterInvoker(fn) {\n return function computedGetter () {\n return fn.call(this, this)\n }\n}\n\nfunction initMethods (vm, methods) {\n var props = vm.$options.props;\n for (var key in methods) {\n if (process.env.NODE_ENV !== 'production') {\n if (typeof methods[key] !== 'function') {\n warn(\n \"Method \\\"\" + key + \"\\\" has type \\\"\" + (typeof methods[key]) + \"\\\" in the component definition. \" +\n \"Did you reference the function correctly?\",\n vm\n );\n }\n if (props && hasOwn(props, key)) {\n warn(\n (\"Method \\\"\" + key + \"\\\" has already been defined as a prop.\"),\n vm\n );\n }\n if ((key in vm) && isReserved(key)) {\n warn(\n \"Method \\\"\" + key + \"\\\" conflicts with an existing Vue instance method. \" +\n \"Avoid defining component methods that start with _ or $.\"\n );\n }\n }\n vm[key] = typeof methods[key] !== 'function' ? noop : bind(methods[key], vm);\n }\n}\n\nfunction initWatch (vm, watch) {\n for (var key in watch) {\n var handler = watch[key];\n if (Array.isArray(handler)) {\n for (var i = 0; i < handler.length; i++) {\n createWatcher(vm, key, handler[i]);\n }\n } else {\n createWatcher(vm, key, handler);\n }\n }\n}\n\nfunction createWatcher (\n vm,\n expOrFn,\n handler,\n options\n) {\n if (isPlainObject(handler)) {\n options = handler;\n handler = handler.handler;\n }\n if (typeof handler === 'string') {\n handler = vm[handler];\n }\n return vm.$watch(expOrFn, handler, options)\n}\n\nfunction stateMixin (Vue) {\n // flow somehow has problems with directly declared definition object\n // when using Object.defineProperty, so we have to procedurally build up\n // the object here.\n var dataDef = {};\n dataDef.get = function () { return this._data };\n var propsDef = {};\n propsDef.get = function () { return this._props };\n if (process.env.NODE_ENV !== 'production') {\n dataDef.set = function () {\n warn(\n 'Avoid replacing instance root $data. ' +\n 'Use nested data properties instead.',\n this\n );\n };\n propsDef.set = function () {\n warn(\"$props is readonly.\", this);\n };\n }\n Object.defineProperty(Vue.prototype, '$data', dataDef);\n Object.defineProperty(Vue.prototype, '$props', propsDef);\n\n Vue.prototype.$set = set;\n Vue.prototype.$delete = del;\n\n Vue.prototype.$watch = function (\n expOrFn,\n cb,\n options\n ) {\n var vm = this;\n if (isPlainObject(cb)) {\n return createWatcher(vm, expOrFn, cb, options)\n }\n options = options || {};\n options.user = true;\n var watcher = new Watcher(vm, expOrFn, cb, options);\n if (options.immediate) {\n try {\n cb.call(vm, watcher.value);\n } catch (error) {\n handleError(error, vm, (\"callback for immediate watcher \\\"\" + (watcher.expression) + \"\\\"\"));\n }\n }\n return function unwatchFn () {\n watcher.teardown();\n }\n };\n}\n\n/* */\n\nvar uid$3 = 0;\n\nfunction initMixin (Vue) {\n Vue.prototype._init = function (options) {\n var vm = this;\n // a uid\n vm._uid = uid$3++;\n\n var startTag, endTag;\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n startTag = \"vue-perf-start:\" + (vm._uid);\n endTag = \"vue-perf-end:\" + (vm._uid);\n mark(startTag);\n }\n\n // a flag to avoid this being observed\n vm._isVue = true;\n // merge options\n if (options && options._isComponent) {\n // optimize internal component instantiation\n // since dynamic options merging is pretty slow, and none of the\n // internal component options needs special treatment.\n initInternalComponent(vm, options);\n } else {\n vm.$options = mergeOptions(\n resolveConstructorOptions(vm.constructor),\n options || {},\n vm\n );\n }\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n initProxy(vm);\n } else {\n vm._renderProxy = vm;\n }\n // expose real self\n vm._self = vm;\n initLifecycle(vm);\n initEvents(vm);\n initRender(vm);\n callHook(vm, 'beforeCreate');\n initInjections(vm); // resolve injections before data/props\n initState(vm);\n initProvide(vm); // resolve provide after data/props\n callHook(vm, 'created');\n\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n vm._name = formatComponentName(vm, false);\n mark(endTag);\n measure((\"vue \" + (vm._name) + \" init\"), startTag, endTag);\n }\n\n if (vm.$options.el) {\n vm.$mount(vm.$options.el);\n }\n };\n}\n\nfunction initInternalComponent (vm, options) {\n var opts = vm.$options = Object.create(vm.constructor.options);\n // doing this because it's faster than dynamic enumeration.\n var parentVnode = options._parentVnode;\n opts.parent = options.parent;\n opts._parentVnode = parentVnode;\n\n var vnodeComponentOptions = parentVnode.componentOptions;\n opts.propsData = vnodeComponentOptions.propsData;\n opts._parentListeners = vnodeComponentOptions.listeners;\n opts._renderChildren = vnodeComponentOptions.children;\n opts._componentTag = vnodeComponentOptions.tag;\n\n if (options.render) {\n opts.render = options.render;\n opts.staticRenderFns = options.staticRenderFns;\n }\n}\n\nfunction resolveConstructorOptions (Ctor) {\n var options = Ctor.options;\n if (Ctor.super) {\n var superOptions = resolveConstructorOptions(Ctor.super);\n var cachedSuperOptions = Ctor.superOptions;\n if (superOptions !== cachedSuperOptions) {\n // super option changed,\n // need to resolve new options.\n Ctor.superOptions = superOptions;\n // check if there are any late-modified/attached options (#4976)\n var modifiedOptions = resolveModifiedOptions(Ctor);\n // update base extend options\n if (modifiedOptions) {\n extend(Ctor.extendOptions, modifiedOptions);\n }\n options = Ctor.options = mergeOptions(superOptions, Ctor.extendOptions);\n if (options.name) {\n options.components[options.name] = Ctor;\n }\n }\n }\n return options\n}\n\nfunction resolveModifiedOptions (Ctor) {\n var modified;\n var latest = Ctor.options;\n var sealed = Ctor.sealedOptions;\n for (var key in latest) {\n if (latest[key] !== sealed[key]) {\n if (!modified) { modified = {}; }\n modified[key] = latest[key];\n }\n }\n return modified\n}\n\nfunction Vue (options) {\n if (process.env.NODE_ENV !== 'production' &&\n !(this instanceof Vue)\n ) {\n warn('Vue is a constructor and should be called with the `new` keyword');\n }\n this._init(options);\n}\n\ninitMixin(Vue);\nstateMixin(Vue);\neventsMixin(Vue);\nlifecycleMixin(Vue);\nrenderMixin(Vue);\n\n/* */\n\nfunction initUse (Vue) {\n Vue.use = function (plugin) {\n var installedPlugins = (this._installedPlugins || (this._installedPlugins = []));\n if (installedPlugins.indexOf(plugin) > -1) {\n return this\n }\n\n // additional parameters\n var args = toArray(arguments, 1);\n args.unshift(this);\n if (typeof plugin.install === 'function') {\n plugin.install.apply(plugin, args);\n } else if (typeof plugin === 'function') {\n plugin.apply(null, args);\n }\n installedPlugins.push(plugin);\n return this\n };\n}\n\n/* */\n\nfunction initMixin$1 (Vue) {\n Vue.mixin = function (mixin) {\n this.options = mergeOptions(this.options, mixin);\n return this\n };\n}\n\n/* */\n\nfunction initExtend (Vue) {\n /**\n * Each instance constructor, including Vue, has a unique\n * cid. This enables us to create wrapped \"child\n * constructors\" for prototypal inheritance and cache them.\n */\n Vue.cid = 0;\n var cid = 1;\n\n /**\n * Class inheritance\n */\n Vue.extend = function (extendOptions) {\n extendOptions = extendOptions || {};\n var Super = this;\n var SuperId = Super.cid;\n var cachedCtors = extendOptions._Ctor || (extendOptions._Ctor = {});\n if (cachedCtors[SuperId]) {\n return cachedCtors[SuperId]\n }\n\n var name = extendOptions.name || Super.options.name;\n if (process.env.NODE_ENV !== 'production' && name) {\n validateComponentName(name);\n }\n\n var Sub = function VueComponent (options) {\n this._init(options);\n };\n Sub.prototype = Object.create(Super.prototype);\n Sub.prototype.constructor = Sub;\n Sub.cid = cid++;\n Sub.options = mergeOptions(\n Super.options,\n extendOptions\n );\n Sub['super'] = Super;\n\n // For props and computed properties, we define the proxy getters on\n // the Vue instances at extension time, on the extended prototype. This\n // avoids Object.defineProperty calls for each instance created.\n if (Sub.options.props) {\n initProps$1(Sub);\n }\n if (Sub.options.computed) {\n initComputed$1(Sub);\n }\n\n // allow further extension/mixin/plugin usage\n Sub.extend = Super.extend;\n Sub.mixin = Super.mixin;\n Sub.use = Super.use;\n\n // create asset registers, so extended classes\n // can have their private assets too.\n ASSET_TYPES.forEach(function (type) {\n Sub[type] = Super[type];\n });\n // enable recursive self-lookup\n if (name) {\n Sub.options.components[name] = Sub;\n }\n\n // keep a reference to the super options at extension time.\n // later at instantiation we can check if Super's options have\n // been updated.\n Sub.superOptions = Super.options;\n Sub.extendOptions = extendOptions;\n Sub.sealedOptions = extend({}, Sub.options);\n\n // cache constructor\n cachedCtors[SuperId] = Sub;\n return Sub\n };\n}\n\nfunction initProps$1 (Comp) {\n var props = Comp.options.props;\n for (var key in props) {\n proxy(Comp.prototype, \"_props\", key);\n }\n}\n\nfunction initComputed$1 (Comp) {\n var computed = Comp.options.computed;\n for (var key in computed) {\n defineComputed(Comp.prototype, key, computed[key]);\n }\n}\n\n/* */\n\nfunction initAssetRegisters (Vue) {\n /**\n * Create asset registration methods.\n */\n ASSET_TYPES.forEach(function (type) {\n Vue[type] = function (\n id,\n definition\n ) {\n if (!definition) {\n return this.options[type + 's'][id]\n } else {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && type === 'component') {\n validateComponentName(id);\n }\n if (type === 'component' && isPlainObject(definition)) {\n definition.name = definition.name || id;\n definition = this.options._base.extend(definition);\n }\n if (type === 'directive' && typeof definition === 'function') {\n definition = { bind: definition, update: definition };\n }\n this.options[type + 's'][id] = definition;\n return definition\n }\n };\n });\n}\n\n/* */\n\n\n\nfunction getComponentName (opts) {\n return opts && (opts.Ctor.options.name || opts.tag)\n}\n\nfunction matches (pattern, name) {\n if (Array.isArray(pattern)) {\n return pattern.indexOf(name) > -1\n } else if (typeof pattern === 'string') {\n return pattern.split(',').indexOf(name) > -1\n } else if (isRegExp(pattern)) {\n return pattern.test(name)\n }\n /* istanbul ignore next */\n return false\n}\n\nfunction pruneCache (keepAliveInstance, filter) {\n var cache = keepAliveInstance.cache;\n var keys = keepAliveInstance.keys;\n var _vnode = keepAliveInstance._vnode;\n for (var key in cache) {\n var cachedNode = cache[key];\n if (cachedNode) {\n var name = getComponentName(cachedNode.componentOptions);\n if (name && !filter(name)) {\n pruneCacheEntry(cache, key, keys, _vnode);\n }\n }\n }\n}\n\nfunction pruneCacheEntry (\n cache,\n key,\n keys,\n current\n) {\n var cached$$1 = cache[key];\n if (cached$$1 && (!current || cached$$1.tag !== current.tag)) {\n cached$$1.componentInstance.$destroy();\n }\n cache[key] = null;\n remove(keys, key);\n}\n\nvar patternTypes = [String, RegExp, Array];\n\nvar KeepAlive = {\n name: 'keep-alive',\n abstract: true,\n\n props: {\n include: patternTypes,\n exclude: patternTypes,\n max: [String, Number]\n },\n\n created: function created () {\n this.cache = Object.create(null);\n this.keys = [];\n },\n\n destroyed: function destroyed () {\n for (var key in this.cache) {\n pruneCacheEntry(this.cache, key, this.keys);\n }\n },\n\n mounted: function mounted () {\n var this$1 = this;\n\n this.$watch('include', function (val) {\n pruneCache(this$1, function (name) { return matches(val, name); });\n });\n this.$watch('exclude', function (val) {\n pruneCache(this$1, function (name) { return !matches(val, name); });\n });\n },\n\n render: function render () {\n var slot = this.$slots.default;\n var vnode = getFirstComponentChild(slot);\n var componentOptions = vnode && vnode.componentOptions;\n if (componentOptions) {\n // check pattern\n var name = getComponentName(componentOptions);\n var ref = this;\n var include = ref.include;\n var exclude = ref.exclude;\n if (\n // not included\n (include && (!name || !matches(include, name))) ||\n // excluded\n (exclude && name && matches(exclude, name))\n ) {\n return vnode\n }\n\n var ref$1 = this;\n var cache = ref$1.cache;\n var keys = ref$1.keys;\n var key = vnode.key == null\n // same constructor may get registered as different local components\n // so cid alone is not enough (#3269)\n ? componentOptions.Ctor.cid + (componentOptions.tag ? (\"::\" + (componentOptions.tag)) : '')\n : vnode.key;\n if (cache[key]) {\n vnode.componentInstance = cache[key].componentInstance;\n // make current key freshest\n remove(keys, key);\n keys.push(key);\n } else {\n cache[key] = vnode;\n keys.push(key);\n // prune oldest entry\n if (this.max && keys.length > parseInt(this.max)) {\n pruneCacheEntry(cache, keys[0], keys, this._vnode);\n }\n }\n\n vnode.data.keepAlive = true;\n }\n return vnode || (slot && slot[0])\n }\n};\n\nvar builtInComponents = {\n KeepAlive: KeepAlive\n};\n\n/* */\n\nfunction initGlobalAPI (Vue) {\n // config\n var configDef = {};\n configDef.get = function () { return config; };\n if (process.env.NODE_ENV !== 'production') {\n configDef.set = function () {\n warn(\n 'Do not replace the Vue.config object, set individual fields instead.'\n );\n };\n }\n Object.defineProperty(Vue, 'config', configDef);\n\n // exposed util methods.\n // NOTE: these are not considered part of the public API - avoid relying on\n // them unless you are aware of the risk.\n Vue.util = {\n warn: warn,\n extend: extend,\n mergeOptions: mergeOptions,\n defineReactive: defineReactive$$1\n };\n\n Vue.set = set;\n Vue.delete = del;\n Vue.nextTick = nextTick;\n\n // 2.6 explicit observable API\n Vue.observable = function (obj) {\n observe(obj);\n return obj\n };\n\n Vue.options = Object.create(null);\n ASSET_TYPES.forEach(function (type) {\n Vue.options[type + 's'] = Object.create(null);\n });\n\n // this is used to identify the \"base\" constructor to extend all plain-object\n // components with in Weex's multi-instance scenarios.\n Vue.options._base = Vue;\n\n extend(Vue.options.components, builtInComponents);\n\n initUse(Vue);\n initMixin$1(Vue);\n initExtend(Vue);\n initAssetRegisters(Vue);\n}\n\ninitGlobalAPI(Vue);\n\nObject.defineProperty(Vue.prototype, '$isServer', {\n get: isServerRendering\n});\n\nObject.defineProperty(Vue.prototype, '$ssrContext', {\n get: function get () {\n /* istanbul ignore next */\n return this.$vnode && this.$vnode.ssrContext\n }\n});\n\n// expose FunctionalRenderContext for ssr runtime helper installation\nObject.defineProperty(Vue, 'FunctionalRenderContext', {\n value: FunctionalRenderContext\n});\n\nVue.version = '2.6.12';\n\n/* */\n\n// these are reserved for web because they are directly compiled away\n// during template compilation\nvar isReservedAttr = makeMap('style,class');\n\n// attributes that should be using props for binding\nvar acceptValue = makeMap('input,textarea,option,select,progress');\nvar mustUseProp = function (tag, type, attr) {\n return (\n (attr === 'value' && acceptValue(tag)) && type !== 'button' ||\n (attr === 'selected' && tag === 'option') ||\n (attr === 'checked' && tag === 'input') ||\n (attr === 'muted' && tag === 'video')\n )\n};\n\nvar isEnumeratedAttr = makeMap('contenteditable,draggable,spellcheck');\n\nvar isValidContentEditableValue = makeMap('events,caret,typing,plaintext-only');\n\nvar convertEnumeratedValue = function (key, value) {\n return isFalsyAttrValue(value) || value === 'false'\n ? 'false'\n // allow arbitrary string value for contenteditable\n : key === 'contenteditable' && isValidContentEditableValue(value)\n ? value\n : 'true'\n};\n\nvar isBooleanAttr = makeMap(\n 'allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,' +\n 'default,defaultchecked,defaultmuted,defaultselected,defer,disabled,' +\n 'enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,' +\n 'muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,' +\n 'required,reversed,scoped,seamless,selected,sortable,translate,' +\n 'truespeed,typemustmatch,visible'\n);\n\nvar xlinkNS = 'http://www.w3.org/1999/xlink';\n\nvar isXlink = function (name) {\n return name.charAt(5) === ':' && name.slice(0, 5) === 'xlink'\n};\n\nvar getXlinkProp = function (name) {\n return isXlink(name) ? name.slice(6, name.length) : ''\n};\n\nvar isFalsyAttrValue = function (val) {\n return val == null || val === false\n};\n\n/* */\n\nfunction genClassForVnode (vnode) {\n var data = vnode.data;\n var parentNode = vnode;\n var childNode = vnode;\n while (isDef(childNode.componentInstance)) {\n childNode = childNode.componentInstance._vnode;\n if (childNode && childNode.data) {\n data = mergeClassData(childNode.data, data);\n }\n }\n while (isDef(parentNode = parentNode.parent)) {\n if (parentNode && parentNode.data) {\n data = mergeClassData(data, parentNode.data);\n }\n }\n return renderClass(data.staticClass, data.class)\n}\n\nfunction mergeClassData (child, parent) {\n return {\n staticClass: concat(child.staticClass, parent.staticClass),\n class: isDef(child.class)\n ? [child.class, parent.class]\n : parent.class\n }\n}\n\nfunction renderClass (\n staticClass,\n dynamicClass\n) {\n if (isDef(staticClass) || isDef(dynamicClass)) {\n return concat(staticClass, stringifyClass(dynamicClass))\n }\n /* istanbul ignore next */\n return ''\n}\n\nfunction concat (a, b) {\n return a ? b ? (a + ' ' + b) : a : (b || '')\n}\n\nfunction stringifyClass (value) {\n if (Array.isArray(value)) {\n return stringifyArray(value)\n }\n if (isObject(value)) {\n return stringifyObject(value)\n }\n if (typeof value === 'string') {\n return value\n }\n /* istanbul ignore next */\n return ''\n}\n\nfunction stringifyArray (value) {\n var res = '';\n var stringified;\n for (var i = 0, l = value.length; i < l; i++) {\n if (isDef(stringified = stringifyClass(value[i])) && stringified !== '') {\n if (res) { res += ' '; }\n res += stringified;\n }\n }\n return res\n}\n\nfunction stringifyObject (value) {\n var res = '';\n for (var key in value) {\n if (value[key]) {\n if (res) { res += ' '; }\n res += key;\n }\n }\n return res\n}\n\n/* */\n\nvar namespaceMap = {\n svg: 'http://www.w3.org/2000/svg',\n math: 'http://www.w3.org/1998/Math/MathML'\n};\n\nvar isHTMLTag = makeMap(\n 'html,body,base,head,link,meta,style,title,' +\n 'address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,' +\n 'div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,' +\n 'a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,' +\n 's,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,' +\n 'embed,object,param,source,canvas,script,noscript,del,ins,' +\n 'caption,col,colgroup,table,thead,tbody,td,th,tr,' +\n 'button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,' +\n 'output,progress,select,textarea,' +\n 'details,dialog,menu,menuitem,summary,' +\n 'content,element,shadow,template,blockquote,iframe,tfoot'\n);\n\n// this map is intentionally selective, only covering SVG elements that may\n// contain child elements.\nvar isSVG = makeMap(\n 'svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,' +\n 'foreignObject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,' +\n 'polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view',\n true\n);\n\nvar isReservedTag = function (tag) {\n return isHTMLTag(tag) || isSVG(tag)\n};\n\nfunction getTagNamespace (tag) {\n if (isSVG(tag)) {\n return 'svg'\n }\n // basic support for MathML\n // note it doesn't support other MathML elements being component roots\n if (tag === 'math') {\n return 'math'\n }\n}\n\nvar unknownElementCache = Object.create(null);\nfunction isUnknownElement (tag) {\n /* istanbul ignore if */\n if (!inBrowser) {\n return true\n }\n if (isReservedTag(tag)) {\n return false\n }\n tag = tag.toLowerCase();\n /* istanbul ignore if */\n if (unknownElementCache[tag] != null) {\n return unknownElementCache[tag]\n }\n var el = document.createElement(tag);\n if (tag.indexOf('-') > -1) {\n // http://stackoverflow.com/a/28210364/1070244\n return (unknownElementCache[tag] = (\n el.constructor === window.HTMLUnknownElement ||\n el.constructor === window.HTMLElement\n ))\n } else {\n return (unknownElementCache[tag] = /HTMLUnknownElement/.test(el.toString()))\n }\n}\n\nvar isTextInputType = makeMap('text,number,password,search,email,tel,url');\n\n/* */\n\n/**\n * Query an element selector if it's not an element already.\n */\nfunction query (el) {\n if (typeof el === 'string') {\n var selected = document.querySelector(el);\n if (!selected) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Cannot find element: ' + el\n );\n return document.createElement('div')\n }\n return selected\n } else {\n return el\n }\n}\n\n/* */\n\nfunction createElement$1 (tagName, vnode) {\n var elm = document.createElement(tagName);\n if (tagName !== 'select') {\n return elm\n }\n // false or null will remove the attribute but undefined will not\n if (vnode.data && vnode.data.attrs && vnode.data.attrs.multiple !== undefined) {\n elm.setAttribute('multiple', 'multiple');\n }\n return elm\n}\n\nfunction createElementNS (namespace, tagName) {\n return document.createElementNS(namespaceMap[namespace], tagName)\n}\n\nfunction createTextNode (text) {\n return document.createTextNode(text)\n}\n\nfunction createComment (text) {\n return document.createComment(text)\n}\n\nfunction insertBefore (parentNode, newNode, referenceNode) {\n parentNode.insertBefore(newNode, referenceNode);\n}\n\nfunction removeChild (node, child) {\n node.removeChild(child);\n}\n\nfunction appendChild (node, child) {\n node.appendChild(child);\n}\n\nfunction parentNode (node) {\n return node.parentNode\n}\n\nfunction nextSibling (node) {\n return node.nextSibling\n}\n\nfunction tagName (node) {\n return node.tagName\n}\n\nfunction setTextContent (node, text) {\n node.textContent = text;\n}\n\nfunction setStyleScope (node, scopeId) {\n node.setAttribute(scopeId, '');\n}\n\nvar nodeOps = /*#__PURE__*/Object.freeze({\n createElement: createElement$1,\n createElementNS: createElementNS,\n createTextNode: createTextNode,\n createComment: createComment,\n insertBefore: insertBefore,\n removeChild: removeChild,\n appendChild: appendChild,\n parentNode: parentNode,\n nextSibling: nextSibling,\n tagName: tagName,\n setTextContent: setTextContent,\n setStyleScope: setStyleScope\n});\n\n/* */\n\nvar ref = {\n create: function create (_, vnode) {\n registerRef(vnode);\n },\n update: function update (oldVnode, vnode) {\n if (oldVnode.data.ref !== vnode.data.ref) {\n registerRef(oldVnode, true);\n registerRef(vnode);\n }\n },\n destroy: function destroy (vnode) {\n registerRef(vnode, true);\n }\n};\n\nfunction registerRef (vnode, isRemoval) {\n var key = vnode.data.ref;\n if (!isDef(key)) { return }\n\n var vm = vnode.context;\n var ref = vnode.componentInstance || vnode.elm;\n var refs = vm.$refs;\n if (isRemoval) {\n if (Array.isArray(refs[key])) {\n remove(refs[key], ref);\n } else if (refs[key] === ref) {\n refs[key] = undefined;\n }\n } else {\n if (vnode.data.refInFor) {\n if (!Array.isArray(refs[key])) {\n refs[key] = [ref];\n } else if (refs[key].indexOf(ref) < 0) {\n // $flow-disable-line\n refs[key].push(ref);\n }\n } else {\n refs[key] = ref;\n }\n }\n}\n\n/**\n * Virtual DOM patching algorithm based on Snabbdom by\n * Simon Friis Vindum (@paldepind)\n * Licensed under the MIT License\n * https://github.com/paldepind/snabbdom/blob/master/LICENSE\n *\n * modified by Evan You (@yyx990803)\n *\n * Not type-checking this because this file is perf-critical and the cost\n * of making flow understand it is not worth it.\n */\n\nvar emptyNode = new VNode('', {}, []);\n\nvar hooks = ['create', 'activate', 'update', 'remove', 'destroy'];\n\nfunction sameVnode (a, b) {\n return (\n a.key === b.key && (\n (\n a.tag === b.tag &&\n a.isComment === b.isComment &&\n isDef(a.data) === isDef(b.data) &&\n sameInputType(a, b)\n ) || (\n isTrue(a.isAsyncPlaceholder) &&\n a.asyncFactory === b.asyncFactory &&\n isUndef(b.asyncFactory.error)\n )\n )\n )\n}\n\nfunction sameInputType (a, b) {\n if (a.tag !== 'input') { return true }\n var i;\n var typeA = isDef(i = a.data) && isDef(i = i.attrs) && i.type;\n var typeB = isDef(i = b.data) && isDef(i = i.attrs) && i.type;\n return typeA === typeB || isTextInputType(typeA) && isTextInputType(typeB)\n}\n\nfunction createKeyToOldIdx (children, beginIdx, endIdx) {\n var i, key;\n var map = {};\n for (i = beginIdx; i <= endIdx; ++i) {\n key = children[i].key;\n if (isDef(key)) { map[key] = i; }\n }\n return map\n}\n\nfunction createPatchFunction (backend) {\n var i, j;\n var cbs = {};\n\n var modules = backend.modules;\n var nodeOps = backend.nodeOps;\n\n for (i = 0; i < hooks.length; ++i) {\n cbs[hooks[i]] = [];\n for (j = 0; j < modules.length; ++j) {\n if (isDef(modules[j][hooks[i]])) {\n cbs[hooks[i]].push(modules[j][hooks[i]]);\n }\n }\n }\n\n function emptyNodeAt (elm) {\n return new VNode(nodeOps.tagName(elm).toLowerCase(), {}, [], undefined, elm)\n }\n\n function createRmCb (childElm, listeners) {\n function remove$$1 () {\n if (--remove$$1.listeners === 0) {\n removeNode(childElm);\n }\n }\n remove$$1.listeners = listeners;\n return remove$$1\n }\n\n function removeNode (el) {\n var parent = nodeOps.parentNode(el);\n // element may have already been removed due to v-html / v-text\n if (isDef(parent)) {\n nodeOps.removeChild(parent, el);\n }\n }\n\n function isUnknownElement$$1 (vnode, inVPre) {\n return (\n !inVPre &&\n !vnode.ns &&\n !(\n config.ignoredElements.length &&\n config.ignoredElements.some(function (ignore) {\n return isRegExp(ignore)\n ? ignore.test(vnode.tag)\n : ignore === vnode.tag\n })\n ) &&\n config.isUnknownElement(vnode.tag)\n )\n }\n\n var creatingElmInVPre = 0;\n\n function createElm (\n vnode,\n insertedVnodeQueue,\n parentElm,\n refElm,\n nested,\n ownerArray,\n index\n ) {\n if (isDef(vnode.elm) && isDef(ownerArray)) {\n // This vnode was used in a previous render!\n // now it's used as a new node, overwriting its elm would cause\n // potential patch errors down the road when it's used as an insertion\n // reference node. Instead, we clone the node on-demand before creating\n // associated DOM element for it.\n vnode = ownerArray[index] = cloneVNode(vnode);\n }\n\n vnode.isRootInsert = !nested; // for transition enter check\n if (createComponent(vnode, insertedVnodeQueue, parentElm, refElm)) {\n return\n }\n\n var data = vnode.data;\n var children = vnode.children;\n var tag = vnode.tag;\n if (isDef(tag)) {\n if (process.env.NODE_ENV !== 'production') {\n if (data && data.pre) {\n creatingElmInVPre++;\n }\n if (isUnknownElement$$1(vnode, creatingElmInVPre)) {\n warn(\n 'Unknown custom element: <' + tag + '> - did you ' +\n 'register the component correctly? For recursive components, ' +\n 'make sure to provide the \"name\" option.',\n vnode.context\n );\n }\n }\n\n vnode.elm = vnode.ns\n ? nodeOps.createElementNS(vnode.ns, tag)\n : nodeOps.createElement(tag, vnode);\n setScope(vnode);\n\n /* istanbul ignore if */\n {\n createChildren(vnode, children, insertedVnodeQueue);\n if (isDef(data)) {\n invokeCreateHooks(vnode, insertedVnodeQueue);\n }\n insert(parentElm, vnode.elm, refElm);\n }\n\n if (process.env.NODE_ENV !== 'production' && data && data.pre) {\n creatingElmInVPre--;\n }\n } else if (isTrue(vnode.isComment)) {\n vnode.elm = nodeOps.createComment(vnode.text);\n insert(parentElm, vnode.elm, refElm);\n } else {\n vnode.elm = nodeOps.createTextNode(vnode.text);\n insert(parentElm, vnode.elm, refElm);\n }\n }\n\n function createComponent (vnode, insertedVnodeQueue, parentElm, refElm) {\n var i = vnode.data;\n if (isDef(i)) {\n var isReactivated = isDef(vnode.componentInstance) && i.keepAlive;\n if (isDef(i = i.hook) && isDef(i = i.init)) {\n i(vnode, false /* hydrating */);\n }\n // after calling the init hook, if the vnode is a child component\n // it should've created a child instance and mounted it. the child\n // component also has set the placeholder vnode's elm.\n // in that case we can just return the element and be done.\n if (isDef(vnode.componentInstance)) {\n initComponent(vnode, insertedVnodeQueue);\n insert(parentElm, vnode.elm, refElm);\n if (isTrue(isReactivated)) {\n reactivateComponent(vnode, insertedVnodeQueue, parentElm, refElm);\n }\n return true\n }\n }\n }\n\n function initComponent (vnode, insertedVnodeQueue) {\n if (isDef(vnode.data.pendingInsert)) {\n insertedVnodeQueue.push.apply(insertedVnodeQueue, vnode.data.pendingInsert);\n vnode.data.pendingInsert = null;\n }\n vnode.elm = vnode.componentInstance.$el;\n if (isPatchable(vnode)) {\n invokeCreateHooks(vnode, insertedVnodeQueue);\n setScope(vnode);\n } else {\n // empty component root.\n // skip all element-related modules except for ref (#3455)\n registerRef(vnode);\n // make sure to invoke the insert hook\n insertedVnodeQueue.push(vnode);\n }\n }\n\n function reactivateComponent (vnode, insertedVnodeQueue, parentElm, refElm) {\n var i;\n // hack for #4339: a reactivated component with inner transition\n // does not trigger because the inner node's created hooks are not called\n // again. It's not ideal to involve module-specific logic in here but\n // there doesn't seem to be a better way to do it.\n var innerNode = vnode;\n while (innerNode.componentInstance) {\n innerNode = innerNode.componentInstance._vnode;\n if (isDef(i = innerNode.data) && isDef(i = i.transition)) {\n for (i = 0; i < cbs.activate.length; ++i) {\n cbs.activate[i](emptyNode, innerNode);\n }\n insertedVnodeQueue.push(innerNode);\n break\n }\n }\n // unlike a newly created component,\n // a reactivated keep-alive component doesn't insert itself\n insert(parentElm, vnode.elm, refElm);\n }\n\n function insert (parent, elm, ref$$1) {\n if (isDef(parent)) {\n if (isDef(ref$$1)) {\n if (nodeOps.parentNode(ref$$1) === parent) {\n nodeOps.insertBefore(parent, elm, ref$$1);\n }\n } else {\n nodeOps.appendChild(parent, elm);\n }\n }\n }\n\n function createChildren (vnode, children, insertedVnodeQueue) {\n if (Array.isArray(children)) {\n if (process.env.NODE_ENV !== 'production') {\n checkDuplicateKeys(children);\n }\n for (var i = 0; i < children.length; ++i) {\n createElm(children[i], insertedVnodeQueue, vnode.elm, null, true, children, i);\n }\n } else if (isPrimitive(vnode.text)) {\n nodeOps.appendChild(vnode.elm, nodeOps.createTextNode(String(vnode.text)));\n }\n }\n\n function isPatchable (vnode) {\n while (vnode.componentInstance) {\n vnode = vnode.componentInstance._vnode;\n }\n return isDef(vnode.tag)\n }\n\n function invokeCreateHooks (vnode, insertedVnodeQueue) {\n for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {\n cbs.create[i$1](emptyNode, vnode);\n }\n i = vnode.data.hook; // Reuse variable\n if (isDef(i)) {\n if (isDef(i.create)) { i.create(emptyNode, vnode); }\n if (isDef(i.insert)) { insertedVnodeQueue.push(vnode); }\n }\n }\n\n // set scope id attribute for scoped CSS.\n // this is implemented as a special case to avoid the overhead\n // of going through the normal attribute patching process.\n function setScope (vnode) {\n var i;\n if (isDef(i = vnode.fnScopeId)) {\n nodeOps.setStyleScope(vnode.elm, i);\n } else {\n var ancestor = vnode;\n while (ancestor) {\n if (isDef(i = ancestor.context) && isDef(i = i.$options._scopeId)) {\n nodeOps.setStyleScope(vnode.elm, i);\n }\n ancestor = ancestor.parent;\n }\n }\n // for slot content they should also get the scopeId from the host instance.\n if (isDef(i = activeInstance) &&\n i !== vnode.context &&\n i !== vnode.fnContext &&\n isDef(i = i.$options._scopeId)\n ) {\n nodeOps.setStyleScope(vnode.elm, i);\n }\n }\n\n function addVnodes (parentElm, refElm, vnodes, startIdx, endIdx, insertedVnodeQueue) {\n for (; startIdx <= endIdx; ++startIdx) {\n createElm(vnodes[startIdx], insertedVnodeQueue, parentElm, refElm, false, vnodes, startIdx);\n }\n }\n\n function invokeDestroyHook (vnode) {\n var i, j;\n var data = vnode.data;\n if (isDef(data)) {\n if (isDef(i = data.hook) && isDef(i = i.destroy)) { i(vnode); }\n for (i = 0; i < cbs.destroy.length; ++i) { cbs.destroy[i](vnode); }\n }\n if (isDef(i = vnode.children)) {\n for (j = 0; j < vnode.children.length; ++j) {\n invokeDestroyHook(vnode.children[j]);\n }\n }\n }\n\n function removeVnodes (vnodes, startIdx, endIdx) {\n for (; startIdx <= endIdx; ++startIdx) {\n var ch = vnodes[startIdx];\n if (isDef(ch)) {\n if (isDef(ch.tag)) {\n removeAndInvokeRemoveHook(ch);\n invokeDestroyHook(ch);\n } else { // Text node\n removeNode(ch.elm);\n }\n }\n }\n }\n\n function removeAndInvokeRemoveHook (vnode, rm) {\n if (isDef(rm) || isDef(vnode.data)) {\n var i;\n var listeners = cbs.remove.length + 1;\n if (isDef(rm)) {\n // we have a recursively passed down rm callback\n // increase the listeners count\n rm.listeners += listeners;\n } else {\n // directly removing\n rm = createRmCb(vnode.elm, listeners);\n }\n // recursively invoke hooks on child component root node\n if (isDef(i = vnode.componentInstance) && isDef(i = i._vnode) && isDef(i.data)) {\n removeAndInvokeRemoveHook(i, rm);\n }\n for (i = 0; i < cbs.remove.length; ++i) {\n cbs.remove[i](vnode, rm);\n }\n if (isDef(i = vnode.data.hook) && isDef(i = i.remove)) {\n i(vnode, rm);\n } else {\n rm();\n }\n } else {\n removeNode(vnode.elm);\n }\n }\n\n function updateChildren (parentElm, oldCh, newCh, insertedVnodeQueue, removeOnly) {\n var oldStartIdx = 0;\n var newStartIdx = 0;\n var oldEndIdx = oldCh.length - 1;\n var oldStartVnode = oldCh[0];\n var oldEndVnode = oldCh[oldEndIdx];\n var newEndIdx = newCh.length - 1;\n var newStartVnode = newCh[0];\n var newEndVnode = newCh[newEndIdx];\n var oldKeyToIdx, idxInOld, vnodeToMove, refElm;\n\n // removeOnly is a special flag used only by <transition-group>\n // to ensure removed elements stay in correct relative positions\n // during leaving transitions\n var canMove = !removeOnly;\n\n if (process.env.NODE_ENV !== 'production') {\n checkDuplicateKeys(newCh);\n }\n\n while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\n if (isUndef(oldStartVnode)) {\n oldStartVnode = oldCh[++oldStartIdx]; // Vnode has been moved left\n } else if (isUndef(oldEndVnode)) {\n oldEndVnode = oldCh[--oldEndIdx];\n } else if (sameVnode(oldStartVnode, newStartVnode)) {\n patchVnode(oldStartVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);\n oldStartVnode = oldCh[++oldStartIdx];\n newStartVnode = newCh[++newStartIdx];\n } else if (sameVnode(oldEndVnode, newEndVnode)) {\n patchVnode(oldEndVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx);\n oldEndVnode = oldCh[--oldEndIdx];\n newEndVnode = newCh[--newEndIdx];\n } else if (sameVnode(oldStartVnode, newEndVnode)) { // Vnode moved right\n patchVnode(oldStartVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx);\n canMove && nodeOps.insertBefore(parentElm, oldStartVnode.elm, nodeOps.nextSibling(oldEndVnode.elm));\n oldStartVnode = oldCh[++oldStartIdx];\n newEndVnode = newCh[--newEndIdx];\n } else if (sameVnode(oldEndVnode, newStartVnode)) { // Vnode moved left\n patchVnode(oldEndVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);\n canMove && nodeOps.insertBefore(parentElm, oldEndVnode.elm, oldStartVnode.elm);\n oldEndVnode = oldCh[--oldEndIdx];\n newStartVnode = newCh[++newStartIdx];\n } else {\n if (isUndef(oldKeyToIdx)) { oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx); }\n idxInOld = isDef(newStartVnode.key)\n ? oldKeyToIdx[newStartVnode.key]\n : findIdxInOld(newStartVnode, oldCh, oldStartIdx, oldEndIdx);\n if (isUndef(idxInOld)) { // New element\n createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);\n } else {\n vnodeToMove = oldCh[idxInOld];\n if (sameVnode(vnodeToMove, newStartVnode)) {\n patchVnode(vnodeToMove, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);\n oldCh[idxInOld] = undefined;\n canMove && nodeOps.insertBefore(parentElm, vnodeToMove.elm, oldStartVnode.elm);\n } else {\n // same key but different element. treat as new element\n createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);\n }\n }\n newStartVnode = newCh[++newStartIdx];\n }\n }\n if (oldStartIdx > oldEndIdx) {\n refElm = isUndef(newCh[newEndIdx + 1]) ? null : newCh[newEndIdx + 1].elm;\n addVnodes(parentElm, refElm, newCh, newStartIdx, newEndIdx, insertedVnodeQueue);\n } else if (newStartIdx > newEndIdx) {\n removeVnodes(oldCh, oldStartIdx, oldEndIdx);\n }\n }\n\n function checkDuplicateKeys (children) {\n var seenKeys = {};\n for (var i = 0; i < children.length; i++) {\n var vnode = children[i];\n var key = vnode.key;\n if (isDef(key)) {\n if (seenKeys[key]) {\n warn(\n (\"Duplicate keys detected: '\" + key + \"'. This may cause an update error.\"),\n vnode.context\n );\n } else {\n seenKeys[key] = true;\n }\n }\n }\n }\n\n function findIdxInOld (node, oldCh, start, end) {\n for (var i = start; i < end; i++) {\n var c = oldCh[i];\n if (isDef(c) && sameVnode(node, c)) { return i }\n }\n }\n\n function patchVnode (\n oldVnode,\n vnode,\n insertedVnodeQueue,\n ownerArray,\n index,\n removeOnly\n ) {\n if (oldVnode === vnode) {\n return\n }\n\n if (isDef(vnode.elm) && isDef(ownerArray)) {\n // clone reused vnode\n vnode = ownerArray[index] = cloneVNode(vnode);\n }\n\n var elm = vnode.elm = oldVnode.elm;\n\n if (isTrue(oldVnode.isAsyncPlaceholder)) {\n if (isDef(vnode.asyncFactory.resolved)) {\n hydrate(oldVnode.elm, vnode, insertedVnodeQueue);\n } else {\n vnode.isAsyncPlaceholder = true;\n }\n return\n }\n\n // reuse element for static trees.\n // note we only do this if the vnode is cloned -\n // if the new node is not cloned it means the render functions have been\n // reset by the hot-reload-api and we need to do a proper re-render.\n if (isTrue(vnode.isStatic) &&\n isTrue(oldVnode.isStatic) &&\n vnode.key === oldVnode.key &&\n (isTrue(vnode.isCloned) || isTrue(vnode.isOnce))\n ) {\n vnode.componentInstance = oldVnode.componentInstance;\n return\n }\n\n var i;\n var data = vnode.data;\n if (isDef(data) && isDef(i = data.hook) && isDef(i = i.prepatch)) {\n i(oldVnode, vnode);\n }\n\n var oldCh = oldVnode.children;\n var ch = vnode.children;\n if (isDef(data) && isPatchable(vnode)) {\n for (i = 0; i < cbs.update.length; ++i) { cbs.update[i](oldVnode, vnode); }\n if (isDef(i = data.hook) && isDef(i = i.update)) { i(oldVnode, vnode); }\n }\n if (isUndef(vnode.text)) {\n if (isDef(oldCh) && isDef(ch)) {\n if (oldCh !== ch) { updateChildren(elm, oldCh, ch, insertedVnodeQueue, removeOnly); }\n } else if (isDef(ch)) {\n if (process.env.NODE_ENV !== 'production') {\n checkDuplicateKeys(ch);\n }\n if (isDef(oldVnode.text)) { nodeOps.setTextContent(elm, ''); }\n addVnodes(elm, null, ch, 0, ch.length - 1, insertedVnodeQueue);\n } else if (isDef(oldCh)) {\n removeVnodes(oldCh, 0, oldCh.length - 1);\n } else if (isDef(oldVnode.text)) {\n nodeOps.setTextContent(elm, '');\n }\n } else if (oldVnode.text !== vnode.text) {\n nodeOps.setTextContent(elm, vnode.text);\n }\n if (isDef(data)) {\n if (isDef(i = data.hook) && isDef(i = i.postpatch)) { i(oldVnode, vnode); }\n }\n }\n\n function invokeInsertHook (vnode, queue, initial) {\n // delay insert hooks for component root nodes, invoke them after the\n // element is really inserted\n if (isTrue(initial) && isDef(vnode.parent)) {\n vnode.parent.data.pendingInsert = queue;\n } else {\n for (var i = 0; i < queue.length; ++i) {\n queue[i].data.hook.insert(queue[i]);\n }\n }\n }\n\n var hydrationBailed = false;\n // list of modules that can skip create hook during hydration because they\n // are already rendered on the client or has no need for initialization\n // Note: style is excluded because it relies on initial clone for future\n // deep updates (#7063).\n var isRenderedModule = makeMap('attrs,class,staticClass,staticStyle,key');\n\n // Note: this is a browser-only function so we can assume elms are DOM nodes.\n function hydrate (elm, vnode, insertedVnodeQueue, inVPre) {\n var i;\n var tag = vnode.tag;\n var data = vnode.data;\n var children = vnode.children;\n inVPre = inVPre || (data && data.pre);\n vnode.elm = elm;\n\n if (isTrue(vnode.isComment) && isDef(vnode.asyncFactory)) {\n vnode.isAsyncPlaceholder = true;\n return true\n }\n // assert node match\n if (process.env.NODE_ENV !== 'production') {\n if (!assertNodeMatch(elm, vnode, inVPre)) {\n return false\n }\n }\n if (isDef(data)) {\n if (isDef(i = data.hook) && isDef(i = i.init)) { i(vnode, true /* hydrating */); }\n if (isDef(i = vnode.componentInstance)) {\n // child component. it should have hydrated its own tree.\n initComponent(vnode, insertedVnodeQueue);\n return true\n }\n }\n if (isDef(tag)) {\n if (isDef(children)) {\n // empty element, allow client to pick up and populate children\n if (!elm.hasChildNodes()) {\n createChildren(vnode, children, insertedVnodeQueue);\n } else {\n // v-html and domProps: innerHTML\n if (isDef(i = data) && isDef(i = i.domProps) && isDef(i = i.innerHTML)) {\n if (i !== elm.innerHTML) {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' &&\n typeof console !== 'undefined' &&\n !hydrationBailed\n ) {\n hydrationBailed = true;\n console.warn('Parent: ', elm);\n console.warn('server innerHTML: ', i);\n console.warn('client innerHTML: ', elm.innerHTML);\n }\n return false\n }\n } else {\n // iterate and compare children lists\n var childrenMatch = true;\n var childNode = elm.firstChild;\n for (var i$1 = 0; i$1 < children.length; i$1++) {\n if (!childNode || !hydrate(childNode, children[i$1], insertedVnodeQueue, inVPre)) {\n childrenMatch = false;\n break\n }\n childNode = childNode.nextSibling;\n }\n // if childNode is not null, it means the actual childNodes list is\n // longer than the virtual children list.\n if (!childrenMatch || childNode) {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' &&\n typeof console !== 'undefined' &&\n !hydrationBailed\n ) {\n hydrationBailed = true;\n console.warn('Parent: ', elm);\n console.warn('Mismatching childNodes vs. VNodes: ', elm.childNodes, children);\n }\n return false\n }\n }\n }\n }\n if (isDef(data)) {\n var fullInvoke = false;\n for (var key in data) {\n if (!isRenderedModule(key)) {\n fullInvoke = true;\n invokeCreateHooks(vnode, insertedVnodeQueue);\n break\n }\n }\n if (!fullInvoke && data['class']) {\n // ensure collecting deps for deep class bindings for future updates\n traverse(data['class']);\n }\n }\n } else if (elm.data !== vnode.text) {\n elm.data = vnode.text;\n }\n return true\n }\n\n function assertNodeMatch (node, vnode, inVPre) {\n if (isDef(vnode.tag)) {\n return vnode.tag.indexOf('vue-component') === 0 || (\n !isUnknownElement$$1(vnode, inVPre) &&\n vnode.tag.toLowerCase() === (node.tagName && node.tagName.toLowerCase())\n )\n } else {\n return node.nodeType === (vnode.isComment ? 8 : 3)\n }\n }\n\n return function patch (oldVnode, vnode, hydrating, removeOnly) {\n if (isUndef(vnode)) {\n if (isDef(oldVnode)) { invokeDestroyHook(oldVnode); }\n return\n }\n\n var isInitialPatch = false;\n var insertedVnodeQueue = [];\n\n if (isUndef(oldVnode)) {\n // empty mount (likely as component), create new root element\n isInitialPatch = true;\n createElm(vnode, insertedVnodeQueue);\n } else {\n var isRealElement = isDef(oldVnode.nodeType);\n if (!isRealElement && sameVnode(oldVnode, vnode)) {\n // patch existing root node\n patchVnode(oldVnode, vnode, insertedVnodeQueue, null, null, removeOnly);\n } else {\n if (isRealElement) {\n // mounting to a real element\n // check if this is server-rendered content and if we can perform\n // a successful hydration.\n if (oldVnode.nodeType === 1 && oldVnode.hasAttribute(SSR_ATTR)) {\n oldVnode.removeAttribute(SSR_ATTR);\n hydrating = true;\n }\n if (isTrue(hydrating)) {\n if (hydrate(oldVnode, vnode, insertedVnodeQueue)) {\n invokeInsertHook(vnode, insertedVnodeQueue, true);\n return oldVnode\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n 'The client-side rendered virtual DOM tree is not matching ' +\n 'server-rendered content. This is likely caused by incorrect ' +\n 'HTML markup, for example nesting block-level elements inside ' +\n '<p>, or missing <tbody>. Bailing hydration and performing ' +\n 'full client-side render.'\n );\n }\n }\n // either not server-rendered, or hydration failed.\n // create an empty node and replace it\n oldVnode = emptyNodeAt(oldVnode);\n }\n\n // replacing existing element\n var oldElm = oldVnode.elm;\n var parentElm = nodeOps.parentNode(oldElm);\n\n // create new node\n createElm(\n vnode,\n insertedVnodeQueue,\n // extremely rare edge case: do not insert if old element is in a\n // leaving transition. Only happens when combining transition +\n // keep-alive + HOCs. (#4590)\n oldElm._leaveCb ? null : parentElm,\n nodeOps.nextSibling(oldElm)\n );\n\n // update parent placeholder node element, recursively\n if (isDef(vnode.parent)) {\n var ancestor = vnode.parent;\n var patchable = isPatchable(vnode);\n while (ancestor) {\n for (var i = 0; i < cbs.destroy.length; ++i) {\n cbs.destroy[i](ancestor);\n }\n ancestor.elm = vnode.elm;\n if (patchable) {\n for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {\n cbs.create[i$1](emptyNode, ancestor);\n }\n // #6513\n // invoke insert hooks that may have been merged by create hooks.\n // e.g. for directives that uses the \"inserted\" hook.\n var insert = ancestor.data.hook.insert;\n if (insert.merged) {\n // start at index 1 to avoid re-invoking component mounted hook\n for (var i$2 = 1; i$2 < insert.fns.length; i$2++) {\n insert.fns[i$2]();\n }\n }\n } else {\n registerRef(ancestor);\n }\n ancestor = ancestor.parent;\n }\n }\n\n // destroy old node\n if (isDef(parentElm)) {\n removeVnodes([oldVnode], 0, 0);\n } else if (isDef(oldVnode.tag)) {\n invokeDestroyHook(oldVnode);\n }\n }\n }\n\n invokeInsertHook(vnode, insertedVnodeQueue, isInitialPatch);\n return vnode.elm\n }\n}\n\n/* */\n\nvar directives = {\n create: updateDirectives,\n update: updateDirectives,\n destroy: function unbindDirectives (vnode) {\n updateDirectives(vnode, emptyNode);\n }\n};\n\nfunction updateDirectives (oldVnode, vnode) {\n if (oldVnode.data.directives || vnode.data.directives) {\n _update(oldVnode, vnode);\n }\n}\n\nfunction _update (oldVnode, vnode) {\n var isCreate = oldVnode === emptyNode;\n var isDestroy = vnode === emptyNode;\n var oldDirs = normalizeDirectives$1(oldVnode.data.directives, oldVnode.context);\n var newDirs = normalizeDirectives$1(vnode.data.directives, vnode.context);\n\n var dirsWithInsert = [];\n var dirsWithPostpatch = [];\n\n var key, oldDir, dir;\n for (key in newDirs) {\n oldDir = oldDirs[key];\n dir = newDirs[key];\n if (!oldDir) {\n // new directive, bind\n callHook$1(dir, 'bind', vnode, oldVnode);\n if (dir.def && dir.def.inserted) {\n dirsWithInsert.push(dir);\n }\n } else {\n // existing directive, update\n dir.oldValue = oldDir.value;\n dir.oldArg = oldDir.arg;\n callHook$1(dir, 'update', vnode, oldVnode);\n if (dir.def && dir.def.componentUpdated) {\n dirsWithPostpatch.push(dir);\n }\n }\n }\n\n if (dirsWithInsert.length) {\n var callInsert = function () {\n for (var i = 0; i < dirsWithInsert.length; i++) {\n callHook$1(dirsWithInsert[i], 'inserted', vnode, oldVnode);\n }\n };\n if (isCreate) {\n mergeVNodeHook(vnode, 'insert', callInsert);\n } else {\n callInsert();\n }\n }\n\n if (dirsWithPostpatch.length) {\n mergeVNodeHook(vnode, 'postpatch', function () {\n for (var i = 0; i < dirsWithPostpatch.length; i++) {\n callHook$1(dirsWithPostpatch[i], 'componentUpdated', vnode, oldVnode);\n }\n });\n }\n\n if (!isCreate) {\n for (key in oldDirs) {\n if (!newDirs[key]) {\n // no longer present, unbind\n callHook$1(oldDirs[key], 'unbind', oldVnode, oldVnode, isDestroy);\n }\n }\n }\n}\n\nvar emptyModifiers = Object.create(null);\n\nfunction normalizeDirectives$1 (\n dirs,\n vm\n) {\n var res = Object.create(null);\n if (!dirs) {\n // $flow-disable-line\n return res\n }\n var i, dir;\n for (i = 0; i < dirs.length; i++) {\n dir = dirs[i];\n if (!dir.modifiers) {\n // $flow-disable-line\n dir.modifiers = emptyModifiers;\n }\n res[getRawDirName(dir)] = dir;\n dir.def = resolveAsset(vm.$options, 'directives', dir.name, true);\n }\n // $flow-disable-line\n return res\n}\n\nfunction getRawDirName (dir) {\n return dir.rawName || ((dir.name) + \".\" + (Object.keys(dir.modifiers || {}).join('.')))\n}\n\nfunction callHook$1 (dir, hook, vnode, oldVnode, isDestroy) {\n var fn = dir.def && dir.def[hook];\n if (fn) {\n try {\n fn(vnode.elm, dir, vnode, oldVnode, isDestroy);\n } catch (e) {\n handleError(e, vnode.context, (\"directive \" + (dir.name) + \" \" + hook + \" hook\"));\n }\n }\n}\n\nvar baseModules = [\n ref,\n directives\n];\n\n/* */\n\nfunction updateAttrs (oldVnode, vnode) {\n var opts = vnode.componentOptions;\n if (isDef(opts) && opts.Ctor.options.inheritAttrs === false) {\n return\n }\n if (isUndef(oldVnode.data.attrs) && isUndef(vnode.data.attrs)) {\n return\n }\n var key, cur, old;\n var elm = vnode.elm;\n var oldAttrs = oldVnode.data.attrs || {};\n var attrs = vnode.data.attrs || {};\n // clone observed objects, as the user probably wants to mutate it\n if (isDef(attrs.__ob__)) {\n attrs = vnode.data.attrs = extend({}, attrs);\n }\n\n for (key in attrs) {\n cur = attrs[key];\n old = oldAttrs[key];\n if (old !== cur) {\n setAttr(elm, key, cur);\n }\n }\n // #4391: in IE9, setting type can reset value for input[type=radio]\n // #6666: IE/Edge forces progress value down to 1 before setting a max\n /* istanbul ignore if */\n if ((isIE || isEdge) && attrs.value !== oldAttrs.value) {\n setAttr(elm, 'value', attrs.value);\n }\n for (key in oldAttrs) {\n if (isUndef(attrs[key])) {\n if (isXlink(key)) {\n elm.removeAttributeNS(xlinkNS, getXlinkProp(key));\n } else if (!isEnumeratedAttr(key)) {\n elm.removeAttribute(key);\n }\n }\n }\n}\n\nfunction setAttr (el, key, value) {\n if (el.tagName.indexOf('-') > -1) {\n baseSetAttr(el, key, value);\n } else if (isBooleanAttr(key)) {\n // set attribute for blank value\n // e.g. <option disabled>Select one</option>\n if (isFalsyAttrValue(value)) {\n el.removeAttribute(key);\n } else {\n // technically allowfullscreen is a boolean attribute for <iframe>,\n // but Flash expects a value of \"true\" when used on <embed> tag\n value = key === 'allowfullscreen' && el.tagName === 'EMBED'\n ? 'true'\n : key;\n el.setAttribute(key, value);\n }\n } else if (isEnumeratedAttr(key)) {\n el.setAttribute(key, convertEnumeratedValue(key, value));\n } else if (isXlink(key)) {\n if (isFalsyAttrValue(value)) {\n el.removeAttributeNS(xlinkNS, getXlinkProp(key));\n } else {\n el.setAttributeNS(xlinkNS, key, value);\n }\n } else {\n baseSetAttr(el, key, value);\n }\n}\n\nfunction baseSetAttr (el, key, value) {\n if (isFalsyAttrValue(value)) {\n el.removeAttribute(key);\n } else {\n // #7138: IE10 & 11 fires input event when setting placeholder on\n // <textarea>... block the first input event and remove the blocker\n // immediately.\n /* istanbul ignore if */\n if (\n isIE && !isIE9 &&\n el.tagName === 'TEXTAREA' &&\n key === 'placeholder' && value !== '' && !el.__ieph\n ) {\n var blocker = function (e) {\n e.stopImmediatePropagation();\n el.removeEventListener('input', blocker);\n };\n el.addEventListener('input', blocker);\n // $flow-disable-line\n el.__ieph = true; /* IE placeholder patched */\n }\n el.setAttribute(key, value);\n }\n}\n\nvar attrs = {\n create: updateAttrs,\n update: updateAttrs\n};\n\n/* */\n\nfunction updateClass (oldVnode, vnode) {\n var el = vnode.elm;\n var data = vnode.data;\n var oldData = oldVnode.data;\n if (\n isUndef(data.staticClass) &&\n isUndef(data.class) && (\n isUndef(oldData) || (\n isUndef(oldData.staticClass) &&\n isUndef(oldData.class)\n )\n )\n ) {\n return\n }\n\n var cls = genClassForVnode(vnode);\n\n // handle transition classes\n var transitionClass = el._transitionClasses;\n if (isDef(transitionClass)) {\n cls = concat(cls, stringifyClass(transitionClass));\n }\n\n // set the class\n if (cls !== el._prevClass) {\n el.setAttribute('class', cls);\n el._prevClass = cls;\n }\n}\n\nvar klass = {\n create: updateClass,\n update: updateClass\n};\n\n/* */\n\n/* */\n\n/* */\n\n/* */\n\n// in some cases, the event used has to be determined at runtime\n// so we used some reserved tokens during compile.\nvar RANGE_TOKEN = '__r';\nvar CHECKBOX_RADIO_TOKEN = '__c';\n\n/* */\n\n// normalize v-model event tokens that can only be determined at runtime.\n// it's important to place the event as the first in the array because\n// the whole point is ensuring the v-model callback gets called before\n// user-attached handlers.\nfunction normalizeEvents (on) {\n /* istanbul ignore if */\n if (isDef(on[RANGE_TOKEN])) {\n // IE input[type=range] only supports `change` event\n var event = isIE ? 'change' : 'input';\n on[event] = [].concat(on[RANGE_TOKEN], on[event] || []);\n delete on[RANGE_TOKEN];\n }\n // This was originally intended to fix #4521 but no longer necessary\n // after 2.5. Keeping it for backwards compat with generated code from < 2.4\n /* istanbul ignore if */\n if (isDef(on[CHECKBOX_RADIO_TOKEN])) {\n on.change = [].concat(on[CHECKBOX_RADIO_TOKEN], on.change || []);\n delete on[CHECKBOX_RADIO_TOKEN];\n }\n}\n\nvar target$1;\n\nfunction createOnceHandler$1 (event, handler, capture) {\n var _target = target$1; // save current target element in closure\n return function onceHandler () {\n var res = handler.apply(null, arguments);\n if (res !== null) {\n remove$2(event, onceHandler, capture, _target);\n }\n }\n}\n\n// #9446: Firefox <= 53 (in particular, ESR 52) has incorrect Event.timeStamp\n// implementation and does not fire microtasks in between event propagation, so\n// safe to exclude.\nvar useMicrotaskFix = isUsingMicroTask && !(isFF && Number(isFF[1]) <= 53);\n\nfunction add$1 (\n name,\n handler,\n capture,\n passive\n) {\n // async edge case #6566: inner click event triggers patch, event handler\n // attached to outer element during patch, and triggered again. This\n // happens because browsers fire microtask ticks between event propagation.\n // the solution is simple: we save the timestamp when a handler is attached,\n // and the handler would only fire if the event passed to it was fired\n // AFTER it was attached.\n if (useMicrotaskFix) {\n var attachedTimestamp = currentFlushTimestamp;\n var original = handler;\n handler = original._wrapper = function (e) {\n if (\n // no bubbling, should always fire.\n // this is just a safety net in case event.timeStamp is unreliable in\n // certain weird environments...\n e.target === e.currentTarget ||\n // event is fired after handler attachment\n e.timeStamp >= attachedTimestamp ||\n // bail for environments that have buggy event.timeStamp implementations\n // #9462 iOS 9 bug: event.timeStamp is 0 after history.pushState\n // #9681 QtWebEngine event.timeStamp is negative value\n e.timeStamp <= 0 ||\n // #9448 bail if event is fired in another document in a multi-page\n // electron/nw.js app, since event.timeStamp will be using a different\n // starting reference\n e.target.ownerDocument !== document\n ) {\n return original.apply(this, arguments)\n }\n };\n }\n target$1.addEventListener(\n name,\n handler,\n supportsPassive\n ? { capture: capture, passive: passive }\n : capture\n );\n}\n\nfunction remove$2 (\n name,\n handler,\n capture,\n _target\n) {\n (_target || target$1).removeEventListener(\n name,\n handler._wrapper || handler,\n capture\n );\n}\n\nfunction updateDOMListeners (oldVnode, vnode) {\n if (isUndef(oldVnode.data.on) && isUndef(vnode.data.on)) {\n return\n }\n var on = vnode.data.on || {};\n var oldOn = oldVnode.data.on || {};\n target$1 = vnode.elm;\n normalizeEvents(on);\n updateListeners(on, oldOn, add$1, remove$2, createOnceHandler$1, vnode.context);\n target$1 = undefined;\n}\n\nvar events = {\n create: updateDOMListeners,\n update: updateDOMListeners\n};\n\n/* */\n\nvar svgContainer;\n\nfunction updateDOMProps (oldVnode, vnode) {\n if (isUndef(oldVnode.data.domProps) && isUndef(vnode.data.domProps)) {\n return\n }\n var key, cur;\n var elm = vnode.elm;\n var oldProps = oldVnode.data.domProps || {};\n var props = vnode.data.domProps || {};\n // clone observed objects, as the user probably wants to mutate it\n if (isDef(props.__ob__)) {\n props = vnode.data.domProps = extend({}, props);\n }\n\n for (key in oldProps) {\n if (!(key in props)) {\n elm[key] = '';\n }\n }\n\n for (key in props) {\n cur = props[key];\n // ignore children if the node has textContent or innerHTML,\n // as these will throw away existing DOM nodes and cause removal errors\n // on subsequent patches (#3360)\n if (key === 'textContent' || key === 'innerHTML') {\n if (vnode.children) { vnode.children.length = 0; }\n if (cur === oldProps[key]) { continue }\n // #6601 work around Chrome version <= 55 bug where single textNode\n // replaced by innerHTML/textContent retains its parentNode property\n if (elm.childNodes.length === 1) {\n elm.removeChild(elm.childNodes[0]);\n }\n }\n\n if (key === 'value' && elm.tagName !== 'PROGRESS') {\n // store value as _value as well since\n // non-string values will be stringified\n elm._value = cur;\n // avoid resetting cursor position when value is the same\n var strCur = isUndef(cur) ? '' : String(cur);\n if (shouldUpdateValue(elm, strCur)) {\n elm.value = strCur;\n }\n } else if (key === 'innerHTML' && isSVG(elm.tagName) && isUndef(elm.innerHTML)) {\n // IE doesn't support innerHTML for SVG elements\n svgContainer = svgContainer || document.createElement('div');\n svgContainer.innerHTML = \"<svg>\" + cur + \"</svg>\";\n var svg = svgContainer.firstChild;\n while (elm.firstChild) {\n elm.removeChild(elm.firstChild);\n }\n while (svg.firstChild) {\n elm.appendChild(svg.firstChild);\n }\n } else if (\n // skip the update if old and new VDOM state is the same.\n // `value` is handled separately because the DOM value may be temporarily\n // out of sync with VDOM state due to focus, composition and modifiers.\n // This #4521 by skipping the unnecessary `checked` update.\n cur !== oldProps[key]\n ) {\n // some property updates can throw\n // e.g. `value` on <progress> w/ non-finite value\n try {\n elm[key] = cur;\n } catch (e) {}\n }\n }\n}\n\n// check platforms/web/util/attrs.js acceptValue\n\n\nfunction shouldUpdateValue (elm, checkVal) {\n return (!elm.composing && (\n elm.tagName === 'OPTION' ||\n isNotInFocusAndDirty(elm, checkVal) ||\n isDirtyWithModifiers(elm, checkVal)\n ))\n}\n\nfunction isNotInFocusAndDirty (elm, checkVal) {\n // return true when textbox (.number and .trim) loses focus and its value is\n // not equal to the updated value\n var notInFocus = true;\n // #6157\n // work around IE bug when accessing document.activeElement in an iframe\n try { notInFocus = document.activeElement !== elm; } catch (e) {}\n return notInFocus && elm.value !== checkVal\n}\n\nfunction isDirtyWithModifiers (elm, newVal) {\n var value = elm.value;\n var modifiers = elm._vModifiers; // injected by v-model runtime\n if (isDef(modifiers)) {\n if (modifiers.number) {\n return toNumber(value) !== toNumber(newVal)\n }\n if (modifiers.trim) {\n return value.trim() !== newVal.trim()\n }\n }\n return value !== newVal\n}\n\nvar domProps = {\n create: updateDOMProps,\n update: updateDOMProps\n};\n\n/* */\n\nvar parseStyleText = cached(function (cssText) {\n var res = {};\n var listDelimiter = /;(?![^(]*\\))/g;\n var propertyDelimiter = /:(.+)/;\n cssText.split(listDelimiter).forEach(function (item) {\n if (item) {\n var tmp = item.split(propertyDelimiter);\n tmp.length > 1 && (res[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return res\n});\n\n// merge static and dynamic style data on the same vnode\nfunction normalizeStyleData (data) {\n var style = normalizeStyleBinding(data.style);\n // static style is pre-processed into an object during compilation\n // and is always a fresh object, so it's safe to merge into it\n return data.staticStyle\n ? extend(data.staticStyle, style)\n : style\n}\n\n// normalize possible array / string values into Object\nfunction normalizeStyleBinding (bindingStyle) {\n if (Array.isArray(bindingStyle)) {\n return toObject(bindingStyle)\n }\n if (typeof bindingStyle === 'string') {\n return parseStyleText(bindingStyle)\n }\n return bindingStyle\n}\n\n/**\n * parent component style should be after child's\n * so that parent component's style could override it\n */\nfunction getStyle (vnode, checkChild) {\n var res = {};\n var styleData;\n\n if (checkChild) {\n var childNode = vnode;\n while (childNode.componentInstance) {\n childNode = childNode.componentInstance._vnode;\n if (\n childNode && childNode.data &&\n (styleData = normalizeStyleData(childNode.data))\n ) {\n extend(res, styleData);\n }\n }\n }\n\n if ((styleData = normalizeStyleData(vnode.data))) {\n extend(res, styleData);\n }\n\n var parentNode = vnode;\n while ((parentNode = parentNode.parent)) {\n if (parentNode.data && (styleData = normalizeStyleData(parentNode.data))) {\n extend(res, styleData);\n }\n }\n return res\n}\n\n/* */\n\nvar cssVarRE = /^--/;\nvar importantRE = /\\s*!important$/;\nvar setProp = function (el, name, val) {\n /* istanbul ignore if */\n if (cssVarRE.test(name)) {\n el.style.setProperty(name, val);\n } else if (importantRE.test(val)) {\n el.style.setProperty(hyphenate(name), val.replace(importantRE, ''), 'important');\n } else {\n var normalizedName = normalize(name);\n if (Array.isArray(val)) {\n // Support values array created by autoprefixer, e.g.\n // {display: [\"-webkit-box\", \"-ms-flexbox\", \"flex\"]}\n // Set them one by one, and the browser will only set those it can recognize\n for (var i = 0, len = val.length; i < len; i++) {\n el.style[normalizedName] = val[i];\n }\n } else {\n el.style[normalizedName] = val;\n }\n }\n};\n\nvar vendorNames = ['Webkit', 'Moz', 'ms'];\n\nvar emptyStyle;\nvar normalize = cached(function (prop) {\n emptyStyle = emptyStyle || document.createElement('div').style;\n prop = camelize(prop);\n if (prop !== 'filter' && (prop in emptyStyle)) {\n return prop\n }\n var capName = prop.charAt(0).toUpperCase() + prop.slice(1);\n for (var i = 0; i < vendorNames.length; i++) {\n var name = vendorNames[i] + capName;\n if (name in emptyStyle) {\n return name\n }\n }\n});\n\nfunction updateStyle (oldVnode, vnode) {\n var data = vnode.data;\n var oldData = oldVnode.data;\n\n if (isUndef(data.staticStyle) && isUndef(data.style) &&\n isUndef(oldData.staticStyle) && isUndef(oldData.style)\n ) {\n return\n }\n\n var cur, name;\n var el = vnode.elm;\n var oldStaticStyle = oldData.staticStyle;\n var oldStyleBinding = oldData.normalizedStyle || oldData.style || {};\n\n // if static style exists, stylebinding already merged into it when doing normalizeStyleData\n var oldStyle = oldStaticStyle || oldStyleBinding;\n\n var style = normalizeStyleBinding(vnode.data.style) || {};\n\n // store normalized style under a different key for next diff\n // make sure to clone it if it's reactive, since the user likely wants\n // to mutate it.\n vnode.data.normalizedStyle = isDef(style.__ob__)\n ? extend({}, style)\n : style;\n\n var newStyle = getStyle(vnode, true);\n\n for (name in oldStyle) {\n if (isUndef(newStyle[name])) {\n setProp(el, name, '');\n }\n }\n for (name in newStyle) {\n cur = newStyle[name];\n if (cur !== oldStyle[name]) {\n // ie9 setting to null has no effect, must use empty string\n setProp(el, name, cur == null ? '' : cur);\n }\n }\n}\n\nvar style = {\n create: updateStyle,\n update: updateStyle\n};\n\n/* */\n\nvar whitespaceRE = /\\s+/;\n\n/**\n * Add class with compatibility for SVG since classList is not supported on\n * SVG elements in IE\n */\nfunction addClass (el, cls) {\n /* istanbul ignore if */\n if (!cls || !(cls = cls.trim())) {\n return\n }\n\n /* istanbul ignore else */\n if (el.classList) {\n if (cls.indexOf(' ') > -1) {\n cls.split(whitespaceRE).forEach(function (c) { return el.classList.add(c); });\n } else {\n el.classList.add(cls);\n }\n } else {\n var cur = \" \" + (el.getAttribute('class') || '') + \" \";\n if (cur.indexOf(' ' + cls + ' ') < 0) {\n el.setAttribute('class', (cur + cls).trim());\n }\n }\n}\n\n/**\n * Remove class with compatibility for SVG since classList is not supported on\n * SVG elements in IE\n */\nfunction removeClass (el, cls) {\n /* istanbul ignore if */\n if (!cls || !(cls = cls.trim())) {\n return\n }\n\n /* istanbul ignore else */\n if (el.classList) {\n if (cls.indexOf(' ') > -1) {\n cls.split(whitespaceRE).forEach(function (c) { return el.classList.remove(c); });\n } else {\n el.classList.remove(cls);\n }\n if (!el.classList.length) {\n el.removeAttribute('class');\n }\n } else {\n var cur = \" \" + (el.getAttribute('class') || '') + \" \";\n var tar = ' ' + cls + ' ';\n while (cur.indexOf(tar) >= 0) {\n cur = cur.replace(tar, ' ');\n }\n cur = cur.trim();\n if (cur) {\n el.setAttribute('class', cur);\n } else {\n el.removeAttribute('class');\n }\n }\n}\n\n/* */\n\nfunction resolveTransition (def$$1) {\n if (!def$$1) {\n return\n }\n /* istanbul ignore else */\n if (typeof def$$1 === 'object') {\n var res = {};\n if (def$$1.css !== false) {\n extend(res, autoCssTransition(def$$1.name || 'v'));\n }\n extend(res, def$$1);\n return res\n } else if (typeof def$$1 === 'string') {\n return autoCssTransition(def$$1)\n }\n}\n\nvar autoCssTransition = cached(function (name) {\n return {\n enterClass: (name + \"-enter\"),\n enterToClass: (name + \"-enter-to\"),\n enterActiveClass: (name + \"-enter-active\"),\n leaveClass: (name + \"-leave\"),\n leaveToClass: (name + \"-leave-to\"),\n leaveActiveClass: (name + \"-leave-active\")\n }\n});\n\nvar hasTransition = inBrowser && !isIE9;\nvar TRANSITION = 'transition';\nvar ANIMATION = 'animation';\n\n// Transition property/event sniffing\nvar transitionProp = 'transition';\nvar transitionEndEvent = 'transitionend';\nvar animationProp = 'animation';\nvar animationEndEvent = 'animationend';\nif (hasTransition) {\n /* istanbul ignore if */\n if (window.ontransitionend === undefined &&\n window.onwebkittransitionend !== undefined\n ) {\n transitionProp = 'WebkitTransition';\n transitionEndEvent = 'webkitTransitionEnd';\n }\n if (window.onanimationend === undefined &&\n window.onwebkitanimationend !== undefined\n ) {\n animationProp = 'WebkitAnimation';\n animationEndEvent = 'webkitAnimationEnd';\n }\n}\n\n// binding to window is necessary to make hot reload work in IE in strict mode\nvar raf = inBrowser\n ? window.requestAnimationFrame\n ? window.requestAnimationFrame.bind(window)\n : setTimeout\n : /* istanbul ignore next */ function (fn) { return fn(); };\n\nfunction nextFrame (fn) {\n raf(function () {\n raf(fn);\n });\n}\n\nfunction addTransitionClass (el, cls) {\n var transitionClasses = el._transitionClasses || (el._transitionClasses = []);\n if (transitionClasses.indexOf(cls) < 0) {\n transitionClasses.push(cls);\n addClass(el, cls);\n }\n}\n\nfunction removeTransitionClass (el, cls) {\n if (el._transitionClasses) {\n remove(el._transitionClasses, cls);\n }\n removeClass(el, cls);\n}\n\nfunction whenTransitionEnds (\n el,\n expectedType,\n cb\n) {\n var ref = getTransitionInfo(el, expectedType);\n var type = ref.type;\n var timeout = ref.timeout;\n var propCount = ref.propCount;\n if (!type) { return cb() }\n var event = type === TRANSITION ? transitionEndEvent : animationEndEvent;\n var ended = 0;\n var end = function () {\n el.removeEventListener(event, onEnd);\n cb();\n };\n var onEnd = function (e) {\n if (e.target === el) {\n if (++ended >= propCount) {\n end();\n }\n }\n };\n setTimeout(function () {\n if (ended < propCount) {\n end();\n }\n }, timeout + 1);\n el.addEventListener(event, onEnd);\n}\n\nvar transformRE = /\\b(transform|all)(,|$)/;\n\nfunction getTransitionInfo (el, expectedType) {\n var styles = window.getComputedStyle(el);\n // JSDOM may return undefined for transition properties\n var transitionDelays = (styles[transitionProp + 'Delay'] || '').split(', ');\n var transitionDurations = (styles[transitionProp + 'Duration'] || '').split(', ');\n var transitionTimeout = getTimeout(transitionDelays, transitionDurations);\n var animationDelays = (styles[animationProp + 'Delay'] || '').split(', ');\n var animationDurations = (styles[animationProp + 'Duration'] || '').split(', ');\n var animationTimeout = getTimeout(animationDelays, animationDurations);\n\n var type;\n var timeout = 0;\n var propCount = 0;\n /* istanbul ignore if */\n if (expectedType === TRANSITION) {\n if (transitionTimeout > 0) {\n type = TRANSITION;\n timeout = transitionTimeout;\n propCount = transitionDurations.length;\n }\n } else if (expectedType === ANIMATION) {\n if (animationTimeout > 0) {\n type = ANIMATION;\n timeout = animationTimeout;\n propCount = animationDurations.length;\n }\n } else {\n timeout = Math.max(transitionTimeout, animationTimeout);\n type = timeout > 0\n ? transitionTimeout > animationTimeout\n ? TRANSITION\n : ANIMATION\n : null;\n propCount = type\n ? type === TRANSITION\n ? transitionDurations.length\n : animationDurations.length\n : 0;\n }\n var hasTransform =\n type === TRANSITION &&\n transformRE.test(styles[transitionProp + 'Property']);\n return {\n type: type,\n timeout: timeout,\n propCount: propCount,\n hasTransform: hasTransform\n }\n}\n\nfunction getTimeout (delays, durations) {\n /* istanbul ignore next */\n while (delays.length < durations.length) {\n delays = delays.concat(delays);\n }\n\n return Math.max.apply(null, durations.map(function (d, i) {\n return toMs(d) + toMs(delays[i])\n }))\n}\n\n// Old versions of Chromium (below 61.0.3163.100) formats floating pointer numbers\n// in a locale-dependent way, using a comma instead of a dot.\n// If comma is not replaced with a dot, the input will be rounded down (i.e. acting\n// as a floor function) causing unexpected behaviors\nfunction toMs (s) {\n return Number(s.slice(0, -1).replace(',', '.')) * 1000\n}\n\n/* */\n\nfunction enter (vnode, toggleDisplay) {\n var el = vnode.elm;\n\n // call leave callback now\n if (isDef(el._leaveCb)) {\n el._leaveCb.cancelled = true;\n el._leaveCb();\n }\n\n var data = resolveTransition(vnode.data.transition);\n if (isUndef(data)) {\n return\n }\n\n /* istanbul ignore if */\n if (isDef(el._enterCb) || el.nodeType !== 1) {\n return\n }\n\n var css = data.css;\n var type = data.type;\n var enterClass = data.enterClass;\n var enterToClass = data.enterToClass;\n var enterActiveClass = data.enterActiveClass;\n var appearClass = data.appearClass;\n var appearToClass = data.appearToClass;\n var appearActiveClass = data.appearActiveClass;\n var beforeEnter = data.beforeEnter;\n var enter = data.enter;\n var afterEnter = data.afterEnter;\n var enterCancelled = data.enterCancelled;\n var beforeAppear = data.beforeAppear;\n var appear = data.appear;\n var afterAppear = data.afterAppear;\n var appearCancelled = data.appearCancelled;\n var duration = data.duration;\n\n // activeInstance will always be the <transition> component managing this\n // transition. One edge case to check is when the <transition> is placed\n // as the root node of a child component. In that case we need to check\n // <transition>'s parent for appear check.\n var context = activeInstance;\n var transitionNode = activeInstance.$vnode;\n while (transitionNode && transitionNode.parent) {\n context = transitionNode.context;\n transitionNode = transitionNode.parent;\n }\n\n var isAppear = !context._isMounted || !vnode.isRootInsert;\n\n if (isAppear && !appear && appear !== '') {\n return\n }\n\n var startClass = isAppear && appearClass\n ? appearClass\n : enterClass;\n var activeClass = isAppear && appearActiveClass\n ? appearActiveClass\n : enterActiveClass;\n var toClass = isAppear && appearToClass\n ? appearToClass\n : enterToClass;\n\n var beforeEnterHook = isAppear\n ? (beforeAppear || beforeEnter)\n : beforeEnter;\n var enterHook = isAppear\n ? (typeof appear === 'function' ? appear : enter)\n : enter;\n var afterEnterHook = isAppear\n ? (afterAppear || afterEnter)\n : afterEnter;\n var enterCancelledHook = isAppear\n ? (appearCancelled || enterCancelled)\n : enterCancelled;\n\n var explicitEnterDuration = toNumber(\n isObject(duration)\n ? duration.enter\n : duration\n );\n\n if (process.env.NODE_ENV !== 'production' && explicitEnterDuration != null) {\n checkDuration(explicitEnterDuration, 'enter', vnode);\n }\n\n var expectsCSS = css !== false && !isIE9;\n var userWantsControl = getHookArgumentsLength(enterHook);\n\n var cb = el._enterCb = once(function () {\n if (expectsCSS) {\n removeTransitionClass(el, toClass);\n removeTransitionClass(el, activeClass);\n }\n if (cb.cancelled) {\n if (expectsCSS) {\n removeTransitionClass(el, startClass);\n }\n enterCancelledHook && enterCancelledHook(el);\n } else {\n afterEnterHook && afterEnterHook(el);\n }\n el._enterCb = null;\n });\n\n if (!vnode.data.show) {\n // remove pending leave element on enter by injecting an insert hook\n mergeVNodeHook(vnode, 'insert', function () {\n var parent = el.parentNode;\n var pendingNode = parent && parent._pending && parent._pending[vnode.key];\n if (pendingNode &&\n pendingNode.tag === vnode.tag &&\n pendingNode.elm._leaveCb\n ) {\n pendingNode.elm._leaveCb();\n }\n enterHook && enterHook(el, cb);\n });\n }\n\n // start enter transition\n beforeEnterHook && beforeEnterHook(el);\n if (expectsCSS) {\n addTransitionClass(el, startClass);\n addTransitionClass(el, activeClass);\n nextFrame(function () {\n removeTransitionClass(el, startClass);\n if (!cb.cancelled) {\n addTransitionClass(el, toClass);\n if (!userWantsControl) {\n if (isValidDuration(explicitEnterDuration)) {\n setTimeout(cb, explicitEnterDuration);\n } else {\n whenTransitionEnds(el, type, cb);\n }\n }\n }\n });\n }\n\n if (vnode.data.show) {\n toggleDisplay && toggleDisplay();\n enterHook && enterHook(el, cb);\n }\n\n if (!expectsCSS && !userWantsControl) {\n cb();\n }\n}\n\nfunction leave (vnode, rm) {\n var el = vnode.elm;\n\n // call enter callback now\n if (isDef(el._enterCb)) {\n el._enterCb.cancelled = true;\n el._enterCb();\n }\n\n var data = resolveTransition(vnode.data.transition);\n if (isUndef(data) || el.nodeType !== 1) {\n return rm()\n }\n\n /* istanbul ignore if */\n if (isDef(el._leaveCb)) {\n return\n }\n\n var css = data.css;\n var type = data.type;\n var leaveClass = data.leaveClass;\n var leaveToClass = data.leaveToClass;\n var leaveActiveClass = data.leaveActiveClass;\n var beforeLeave = data.beforeLeave;\n var leave = data.leave;\n var afterLeave = data.afterLeave;\n var leaveCancelled = data.leaveCancelled;\n var delayLeave = data.delayLeave;\n var duration = data.duration;\n\n var expectsCSS = css !== false && !isIE9;\n var userWantsControl = getHookArgumentsLength(leave);\n\n var explicitLeaveDuration = toNumber(\n isObject(duration)\n ? duration.leave\n : duration\n );\n\n if (process.env.NODE_ENV !== 'production' && isDef(explicitLeaveDuration)) {\n checkDuration(explicitLeaveDuration, 'leave', vnode);\n }\n\n var cb = el._leaveCb = once(function () {\n if (el.parentNode && el.parentNode._pending) {\n el.parentNode._pending[vnode.key] = null;\n }\n if (expectsCSS) {\n removeTransitionClass(el, leaveToClass);\n removeTransitionClass(el, leaveActiveClass);\n }\n if (cb.cancelled) {\n if (expectsCSS) {\n removeTransitionClass(el, leaveClass);\n }\n leaveCancelled && leaveCancelled(el);\n } else {\n rm();\n afterLeave && afterLeave(el);\n }\n el._leaveCb = null;\n });\n\n if (delayLeave) {\n delayLeave(performLeave);\n } else {\n performLeave();\n }\n\n function performLeave () {\n // the delayed leave may have already been cancelled\n if (cb.cancelled) {\n return\n }\n // record leaving element\n if (!vnode.data.show && el.parentNode) {\n (el.parentNode._pending || (el.parentNode._pending = {}))[(vnode.key)] = vnode;\n }\n beforeLeave && beforeLeave(el);\n if (expectsCSS) {\n addTransitionClass(el, leaveClass);\n addTransitionClass(el, leaveActiveClass);\n nextFrame(function () {\n removeTransitionClass(el, leaveClass);\n if (!cb.cancelled) {\n addTransitionClass(el, leaveToClass);\n if (!userWantsControl) {\n if (isValidDuration(explicitLeaveDuration)) {\n setTimeout(cb, explicitLeaveDuration);\n } else {\n whenTransitionEnds(el, type, cb);\n }\n }\n }\n });\n }\n leave && leave(el, cb);\n if (!expectsCSS && !userWantsControl) {\n cb();\n }\n }\n}\n\n// only used in dev mode\nfunction checkDuration (val, name, vnode) {\n if (typeof val !== 'number') {\n warn(\n \"<transition> explicit \" + name + \" duration is not a valid number - \" +\n \"got \" + (JSON.stringify(val)) + \".\",\n vnode.context\n );\n } else if (isNaN(val)) {\n warn(\n \"<transition> explicit \" + name + \" duration is NaN - \" +\n 'the duration expression might be incorrect.',\n vnode.context\n );\n }\n}\n\nfunction isValidDuration (val) {\n return typeof val === 'number' && !isNaN(val)\n}\n\n/**\n * Normalize a transition hook's argument length. The hook may be:\n * - a merged hook (invoker) with the original in .fns\n * - a wrapped component method (check ._length)\n * - a plain function (.length)\n */\nfunction getHookArgumentsLength (fn) {\n if (isUndef(fn)) {\n return false\n }\n var invokerFns = fn.fns;\n if (isDef(invokerFns)) {\n // invoker\n return getHookArgumentsLength(\n Array.isArray(invokerFns)\n ? invokerFns[0]\n : invokerFns\n )\n } else {\n return (fn._length || fn.length) > 1\n }\n}\n\nfunction _enter (_, vnode) {\n if (vnode.data.show !== true) {\n enter(vnode);\n }\n}\n\nvar transition = inBrowser ? {\n create: _enter,\n activate: _enter,\n remove: function remove$$1 (vnode, rm) {\n /* istanbul ignore else */\n if (vnode.data.show !== true) {\n leave(vnode, rm);\n } else {\n rm();\n }\n }\n} : {};\n\nvar platformModules = [\n attrs,\n klass,\n events,\n domProps,\n style,\n transition\n];\n\n/* */\n\n// the directive module should be applied last, after all\n// built-in modules have been applied.\nvar modules = platformModules.concat(baseModules);\n\nvar patch = createPatchFunction({ nodeOps: nodeOps, modules: modules });\n\n/**\n * Not type checking this file because flow doesn't like attaching\n * properties to Elements.\n */\n\n/* istanbul ignore if */\nif (isIE9) {\n // http://www.matts411.com/post/internet-explorer-9-oninput/\n document.addEventListener('selectionchange', function () {\n var el = document.activeElement;\n if (el && el.vmodel) {\n trigger(el, 'input');\n }\n });\n}\n\nvar directive = {\n inserted: function inserted (el, binding, vnode, oldVnode) {\n if (vnode.tag === 'select') {\n // #6903\n if (oldVnode.elm && !oldVnode.elm._vOptions) {\n mergeVNodeHook(vnode, 'postpatch', function () {\n directive.componentUpdated(el, binding, vnode);\n });\n } else {\n setSelected(el, binding, vnode.context);\n }\n el._vOptions = [].map.call(el.options, getValue);\n } else if (vnode.tag === 'textarea' || isTextInputType(el.type)) {\n el._vModifiers = binding.modifiers;\n if (!binding.modifiers.lazy) {\n el.addEventListener('compositionstart', onCompositionStart);\n el.addEventListener('compositionend', onCompositionEnd);\n // Safari < 10.2 & UIWebView doesn't fire compositionend when\n // switching focus before confirming composition choice\n // this also fixes the issue where some browsers e.g. iOS Chrome\n // fires \"change\" instead of \"input\" on autocomplete.\n el.addEventListener('change', onCompositionEnd);\n /* istanbul ignore if */\n if (isIE9) {\n el.vmodel = true;\n }\n }\n }\n },\n\n componentUpdated: function componentUpdated (el, binding, vnode) {\n if (vnode.tag === 'select') {\n setSelected(el, binding, vnode.context);\n // in case the options rendered by v-for have changed,\n // it's possible that the value is out-of-sync with the rendered options.\n // detect such cases and filter out values that no longer has a matching\n // option in the DOM.\n var prevOptions = el._vOptions;\n var curOptions = el._vOptions = [].map.call(el.options, getValue);\n if (curOptions.some(function (o, i) { return !looseEqual(o, prevOptions[i]); })) {\n // trigger change event if\n // no matching option found for at least one value\n var needReset = el.multiple\n ? binding.value.some(function (v) { return hasNoMatchingOption(v, curOptions); })\n : binding.value !== binding.oldValue && hasNoMatchingOption(binding.value, curOptions);\n if (needReset) {\n trigger(el, 'change');\n }\n }\n }\n }\n};\n\nfunction setSelected (el, binding, vm) {\n actuallySetSelected(el, binding, vm);\n /* istanbul ignore if */\n if (isIE || isEdge) {\n setTimeout(function () {\n actuallySetSelected(el, binding, vm);\n }, 0);\n }\n}\n\nfunction actuallySetSelected (el, binding, vm) {\n var value = binding.value;\n var isMultiple = el.multiple;\n if (isMultiple && !Array.isArray(value)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"<select multiple v-model=\\\"\" + (binding.expression) + \"\\\"> \" +\n \"expects an Array value for its binding, but got \" + (Object.prototype.toString.call(value).slice(8, -1)),\n vm\n );\n return\n }\n var selected, option;\n for (var i = 0, l = el.options.length; i < l; i++) {\n option = el.options[i];\n if (isMultiple) {\n selected = looseIndexOf(value, getValue(option)) > -1;\n if (option.selected !== selected) {\n option.selected = selected;\n }\n } else {\n if (looseEqual(getValue(option), value)) {\n if (el.selectedIndex !== i) {\n el.selectedIndex = i;\n }\n return\n }\n }\n }\n if (!isMultiple) {\n el.selectedIndex = -1;\n }\n}\n\nfunction hasNoMatchingOption (value, options) {\n return options.every(function (o) { return !looseEqual(o, value); })\n}\n\nfunction getValue (option) {\n return '_value' in option\n ? option._value\n : option.value\n}\n\nfunction onCompositionStart (e) {\n e.target.composing = true;\n}\n\nfunction onCompositionEnd (e) {\n // prevent triggering an input event for no reason\n if (!e.target.composing) { return }\n e.target.composing = false;\n trigger(e.target, 'input');\n}\n\nfunction trigger (el, type) {\n var e = document.createEvent('HTMLEvents');\n e.initEvent(type, true, true);\n el.dispatchEvent(e);\n}\n\n/* */\n\n// recursively search for possible transition defined inside the component root\nfunction locateNode (vnode) {\n return vnode.componentInstance && (!vnode.data || !vnode.data.transition)\n ? locateNode(vnode.componentInstance._vnode)\n : vnode\n}\n\nvar show = {\n bind: function bind (el, ref, vnode) {\n var value = ref.value;\n\n vnode = locateNode(vnode);\n var transition$$1 = vnode.data && vnode.data.transition;\n var originalDisplay = el.__vOriginalDisplay =\n el.style.display === 'none' ? '' : el.style.display;\n if (value && transition$$1) {\n vnode.data.show = true;\n enter(vnode, function () {\n el.style.display = originalDisplay;\n });\n } else {\n el.style.display = value ? originalDisplay : 'none';\n }\n },\n\n update: function update (el, ref, vnode) {\n var value = ref.value;\n var oldValue = ref.oldValue;\n\n /* istanbul ignore if */\n if (!value === !oldValue) { return }\n vnode = locateNode(vnode);\n var transition$$1 = vnode.data && vnode.data.transition;\n if (transition$$1) {\n vnode.data.show = true;\n if (value) {\n enter(vnode, function () {\n el.style.display = el.__vOriginalDisplay;\n });\n } else {\n leave(vnode, function () {\n el.style.display = 'none';\n });\n }\n } else {\n el.style.display = value ? el.__vOriginalDisplay : 'none';\n }\n },\n\n unbind: function unbind (\n el,\n binding,\n vnode,\n oldVnode,\n isDestroy\n ) {\n if (!isDestroy) {\n el.style.display = el.__vOriginalDisplay;\n }\n }\n};\n\nvar platformDirectives = {\n model: directive,\n show: show\n};\n\n/* */\n\nvar transitionProps = {\n name: String,\n appear: Boolean,\n css: Boolean,\n mode: String,\n type: String,\n enterClass: String,\n leaveClass: String,\n enterToClass: String,\n leaveToClass: String,\n enterActiveClass: String,\n leaveActiveClass: String,\n appearClass: String,\n appearActiveClass: String,\n appearToClass: String,\n duration: [Number, String, Object]\n};\n\n// in case the child is also an abstract component, e.g. <keep-alive>\n// we want to recursively retrieve the real component to be rendered\nfunction getRealChild (vnode) {\n var compOptions = vnode && vnode.componentOptions;\n if (compOptions && compOptions.Ctor.options.abstract) {\n return getRealChild(getFirstComponentChild(compOptions.children))\n } else {\n return vnode\n }\n}\n\nfunction extractTransitionData (comp) {\n var data = {};\n var options = comp.$options;\n // props\n for (var key in options.propsData) {\n data[key] = comp[key];\n }\n // events.\n // extract listeners and pass them directly to the transition methods\n var listeners = options._parentListeners;\n for (var key$1 in listeners) {\n data[camelize(key$1)] = listeners[key$1];\n }\n return data\n}\n\nfunction placeholder (h, rawChild) {\n if (/\\d-keep-alive$/.test(rawChild.tag)) {\n return h('keep-alive', {\n props: rawChild.componentOptions.propsData\n })\n }\n}\n\nfunction hasParentTransition (vnode) {\n while ((vnode = vnode.parent)) {\n if (vnode.data.transition) {\n return true\n }\n }\n}\n\nfunction isSameChild (child, oldChild) {\n return oldChild.key === child.key && oldChild.tag === child.tag\n}\n\nvar isNotTextNode = function (c) { return c.tag || isAsyncPlaceholder(c); };\n\nvar isVShowDirective = function (d) { return d.name === 'show'; };\n\nvar Transition = {\n name: 'transition',\n props: transitionProps,\n abstract: true,\n\n render: function render (h) {\n var this$1 = this;\n\n var children = this.$slots.default;\n if (!children) {\n return\n }\n\n // filter out text nodes (possible whitespaces)\n children = children.filter(isNotTextNode);\n /* istanbul ignore if */\n if (!children.length) {\n return\n }\n\n // warn multiple elements\n if (process.env.NODE_ENV !== 'production' && children.length > 1) {\n warn(\n '<transition> can only be used on a single element. Use ' +\n '<transition-group> for lists.',\n this.$parent\n );\n }\n\n var mode = this.mode;\n\n // warn invalid mode\n if (process.env.NODE_ENV !== 'production' &&\n mode && mode !== 'in-out' && mode !== 'out-in'\n ) {\n warn(\n 'invalid <transition> mode: ' + mode,\n this.$parent\n );\n }\n\n var rawChild = children[0];\n\n // if this is a component root node and the component's\n // parent container node also has transition, skip.\n if (hasParentTransition(this.$vnode)) {\n return rawChild\n }\n\n // apply transition data to child\n // use getRealChild() to ignore abstract components e.g. keep-alive\n var child = getRealChild(rawChild);\n /* istanbul ignore if */\n if (!child) {\n return rawChild\n }\n\n if (this._leaving) {\n return placeholder(h, rawChild)\n }\n\n // ensure a key that is unique to the vnode type and to this transition\n // component instance. This key will be used to remove pending leaving nodes\n // during entering.\n var id = \"__transition-\" + (this._uid) + \"-\";\n child.key = child.key == null\n ? child.isComment\n ? id + 'comment'\n : id + child.tag\n : isPrimitive(child.key)\n ? (String(child.key).indexOf(id) === 0 ? child.key : id + child.key)\n : child.key;\n\n var data = (child.data || (child.data = {})).transition = extractTransitionData(this);\n var oldRawChild = this._vnode;\n var oldChild = getRealChild(oldRawChild);\n\n // mark v-show\n // so that the transition module can hand over the control to the directive\n if (child.data.directives && child.data.directives.some(isVShowDirective)) {\n child.data.show = true;\n }\n\n if (\n oldChild &&\n oldChild.data &&\n !isSameChild(child, oldChild) &&\n !isAsyncPlaceholder(oldChild) &&\n // #6687 component root is a comment node\n !(oldChild.componentInstance && oldChild.componentInstance._vnode.isComment)\n ) {\n // replace old child transition data with fresh one\n // important for dynamic transitions!\n var oldData = oldChild.data.transition = extend({}, data);\n // handle transition mode\n if (mode === 'out-in') {\n // return placeholder node and queue update when leave finishes\n this._leaving = true;\n mergeVNodeHook(oldData, 'afterLeave', function () {\n this$1._leaving = false;\n this$1.$forceUpdate();\n });\n return placeholder(h, rawChild)\n } else if (mode === 'in-out') {\n if (isAsyncPlaceholder(child)) {\n return oldRawChild\n }\n var delayedLeave;\n var performLeave = function () { delayedLeave(); };\n mergeVNodeHook(data, 'afterEnter', performLeave);\n mergeVNodeHook(data, 'enterCancelled', performLeave);\n mergeVNodeHook(oldData, 'delayLeave', function (leave) { delayedLeave = leave; });\n }\n }\n\n return rawChild\n }\n};\n\n/* */\n\nvar props = extend({\n tag: String,\n moveClass: String\n}, transitionProps);\n\ndelete props.mode;\n\nvar TransitionGroup = {\n props: props,\n\n beforeMount: function beforeMount () {\n var this$1 = this;\n\n var update = this._update;\n this._update = function (vnode, hydrating) {\n var restoreActiveInstance = setActiveInstance(this$1);\n // force removing pass\n this$1.__patch__(\n this$1._vnode,\n this$1.kept,\n false, // hydrating\n true // removeOnly (!important, avoids unnecessary moves)\n );\n this$1._vnode = this$1.kept;\n restoreActiveInstance();\n update.call(this$1, vnode, hydrating);\n };\n },\n\n render: function render (h) {\n var tag = this.tag || this.$vnode.data.tag || 'span';\n var map = Object.create(null);\n var prevChildren = this.prevChildren = this.children;\n var rawChildren = this.$slots.default || [];\n var children = this.children = [];\n var transitionData = extractTransitionData(this);\n\n for (var i = 0; i < rawChildren.length; i++) {\n var c = rawChildren[i];\n if (c.tag) {\n if (c.key != null && String(c.key).indexOf('__vlist') !== 0) {\n children.push(c);\n map[c.key] = c\n ;(c.data || (c.data = {})).transition = transitionData;\n } else if (process.env.NODE_ENV !== 'production') {\n var opts = c.componentOptions;\n var name = opts ? (opts.Ctor.options.name || opts.tag || '') : c.tag;\n warn((\"<transition-group> children must be keyed: <\" + name + \">\"));\n }\n }\n }\n\n if (prevChildren) {\n var kept = [];\n var removed = [];\n for (var i$1 = 0; i$1 < prevChildren.length; i$1++) {\n var c$1 = prevChildren[i$1];\n c$1.data.transition = transitionData;\n c$1.data.pos = c$1.elm.getBoundingClientRect();\n if (map[c$1.key]) {\n kept.push(c$1);\n } else {\n removed.push(c$1);\n }\n }\n this.kept = h(tag, null, kept);\n this.removed = removed;\n }\n\n return h(tag, null, children)\n },\n\n updated: function updated () {\n var children = this.prevChildren;\n var moveClass = this.moveClass || ((this.name || 'v') + '-move');\n if (!children.length || !this.hasMove(children[0].elm, moveClass)) {\n return\n }\n\n // we divide the work into three loops to avoid mixing DOM reads and writes\n // in each iteration - which helps prevent layout thrashing.\n children.forEach(callPendingCbs);\n children.forEach(recordPosition);\n children.forEach(applyTranslation);\n\n // force reflow to put everything in position\n // assign to this to avoid being removed in tree-shaking\n // $flow-disable-line\n this._reflow = document.body.offsetHeight;\n\n children.forEach(function (c) {\n if (c.data.moved) {\n var el = c.elm;\n var s = el.style;\n addTransitionClass(el, moveClass);\n s.transform = s.WebkitTransform = s.transitionDuration = '';\n el.addEventListener(transitionEndEvent, el._moveCb = function cb (e) {\n if (e && e.target !== el) {\n return\n }\n if (!e || /transform$/.test(e.propertyName)) {\n el.removeEventListener(transitionEndEvent, cb);\n el._moveCb = null;\n removeTransitionClass(el, moveClass);\n }\n });\n }\n });\n },\n\n methods: {\n hasMove: function hasMove (el, moveClass) {\n /* istanbul ignore if */\n if (!hasTransition) {\n return false\n }\n /* istanbul ignore if */\n if (this._hasMove) {\n return this._hasMove\n }\n // Detect whether an element with the move class applied has\n // CSS transitions. Since the element may be inside an entering\n // transition at this very moment, we make a clone of it and remove\n // all other transition classes applied to ensure only the move class\n // is applied.\n var clone = el.cloneNode();\n if (el._transitionClasses) {\n el._transitionClasses.forEach(function (cls) { removeClass(clone, cls); });\n }\n addClass(clone, moveClass);\n clone.style.display = 'none';\n this.$el.appendChild(clone);\n var info = getTransitionInfo(clone);\n this.$el.removeChild(clone);\n return (this._hasMove = info.hasTransform)\n }\n }\n};\n\nfunction callPendingCbs (c) {\n /* istanbul ignore if */\n if (c.elm._moveCb) {\n c.elm._moveCb();\n }\n /* istanbul ignore if */\n if (c.elm._enterCb) {\n c.elm._enterCb();\n }\n}\n\nfunction recordPosition (c) {\n c.data.newPos = c.elm.getBoundingClientRect();\n}\n\nfunction applyTranslation (c) {\n var oldPos = c.data.pos;\n var newPos = c.data.newPos;\n var dx = oldPos.left - newPos.left;\n var dy = oldPos.top - newPos.top;\n if (dx || dy) {\n c.data.moved = true;\n var s = c.elm.style;\n s.transform = s.WebkitTransform = \"translate(\" + dx + \"px,\" + dy + \"px)\";\n s.transitionDuration = '0s';\n }\n}\n\nvar platformComponents = {\n Transition: Transition,\n TransitionGroup: TransitionGroup\n};\n\n/* */\n\n// install platform specific utils\nVue.config.mustUseProp = mustUseProp;\nVue.config.isReservedTag = isReservedTag;\nVue.config.isReservedAttr = isReservedAttr;\nVue.config.getTagNamespace = getTagNamespace;\nVue.config.isUnknownElement = isUnknownElement;\n\n// install platform runtime directives & components\nextend(Vue.options.directives, platformDirectives);\nextend(Vue.options.components, platformComponents);\n\n// install platform patch function\nVue.prototype.__patch__ = inBrowser ? patch : noop;\n\n// public mount method\nVue.prototype.$mount = function (\n el,\n hydrating\n) {\n el = el && inBrowser ? query(el) : undefined;\n return mountComponent(this, el, hydrating)\n};\n\n// devtools global hook\n/* istanbul ignore next */\nif (inBrowser) {\n setTimeout(function () {\n if (config.devtools) {\n if (devtools) {\n devtools.emit('init', Vue);\n } else if (\n process.env.NODE_ENV !== 'production' &&\n process.env.NODE_ENV !== 'test'\n ) {\n console[console.info ? 'info' : 'log'](\n 'Download the Vue Devtools extension for a better development experience:\\n' +\n 'https://github.com/vuejs/vue-devtools'\n );\n }\n }\n if (process.env.NODE_ENV !== 'production' &&\n process.env.NODE_ENV !== 'test' &&\n config.productionTip !== false &&\n typeof console !== 'undefined'\n ) {\n console[console.info ? 'info' : 'log'](\n \"You are running Vue in development mode.\\n\" +\n \"Make sure to turn on production mode when deploying for production.\\n\" +\n \"See more tips at https://vuejs.org/guide/deployment.html\"\n );\n }\n }, 0);\n}\n\n/* */\n\nexport default Vue;\n","'use strict';\n\nexports.__esModule = true;\n\nvar _util = require('element-ui/lib/utils/util');\n\n/**\n * Show migrating guide in browser console.\n *\n * Usage:\n * import Migrating from 'element-ui/src/mixins/migrating';\n *\n * mixins: [Migrating]\n *\n * add getMigratingConfig method for your component.\n * getMigratingConfig() {\n * return {\n * props: {\n * 'allow-no-selection': 'allow-no-selection is removed.',\n * 'selection-mode': 'selection-mode is removed.'\n * },\n * events: {\n * selectionchange: 'selectionchange is renamed to selection-change.'\n * }\n * };\n * },\n */\nexports.default = {\n mounted: function mounted() {\n if (process.env.NODE_ENV === 'production') return;\n if (!this.$vnode) return;\n\n var _getMigratingConfig = this.getMigratingConfig(),\n _getMigratingConfig$p = _getMigratingConfig.props,\n props = _getMigratingConfig$p === undefined ? {} : _getMigratingConfig$p,\n _getMigratingConfig$e = _getMigratingConfig.events,\n events = _getMigratingConfig$e === undefined ? {} : _getMigratingConfig$e;\n\n var _$vnode = this.$vnode,\n data = _$vnode.data,\n componentOptions = _$vnode.componentOptions;\n\n var definedProps = data.attrs || {};\n var definedEvents = componentOptions.listeners || {};\n\n for (var propName in definedProps) {\n propName = (0, _util.kebabCase)(propName); // compatible with camel case\n if (props[propName]) {\n console.warn('[Element Migrating][' + this.$options.name + '][Attribute]: ' + props[propName]);\n }\n }\n\n for (var eventName in definedEvents) {\n eventName = (0, _util.kebabCase)(eventName); // compatible with camel case\n if (events[eventName]) {\n console.warn('[Element Migrating][' + this.$options.name + '][Event]: ' + events[eventName]);\n }\n }\n },\n\n methods: {\n getMigratingConfig: function getMigratingConfig() {\n return {\n props: {},\n events: {}\n };\n }\n }\n};","module.exports = function () { /* empty */ };\n","require('./_wks-define')('asyncIterator');\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\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","module.exports =\n/******/ (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 = \"/dist/\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 67);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return normalizeComponent; });\n/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nfunction normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functioal component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n\n\n/***/ }),\n\n/***/ 3:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/util\");\n\n/***/ }),\n\n/***/ 4:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/mixins/emitter\");\n\n/***/ }),\n\n/***/ 48:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"async-validator\");\n\n/***/ }),\n\n/***/ 67:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n\n// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/form/src/form-item.vue?vue&type=template&id=b6f3db6c&\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n {\n staticClass: \"el-form-item\",\n class: [\n {\n \"el-form-item--feedback\": _vm.elForm && _vm.elForm.statusIcon,\n \"is-error\": _vm.validateState === \"error\",\n \"is-validating\": _vm.validateState === \"validating\",\n \"is-success\": _vm.validateState === \"success\",\n \"is-required\": _vm.isRequired || _vm.required,\n \"is-no-asterisk\": _vm.elForm && _vm.elForm.hideRequiredAsterisk\n },\n _vm.sizeClass ? \"el-form-item--\" + _vm.sizeClass : \"\"\n ]\n },\n [\n _c(\n \"label-wrap\",\n {\n attrs: {\n \"is-auto-width\": _vm.labelStyle && _vm.labelStyle.width === \"auto\",\n \"update-all\": _vm.form.labelWidth === \"auto\"\n }\n },\n [\n _vm.label || _vm.$slots.label\n ? _c(\n \"label\",\n {\n staticClass: \"el-form-item__label\",\n style: _vm.labelStyle,\n attrs: { for: _vm.labelFor }\n },\n [\n _vm._t(\"label\", [\n _vm._v(_vm._s(_vm.label + _vm.form.labelSuffix))\n ])\n ],\n 2\n )\n : _vm._e()\n ]\n ),\n _c(\n \"div\",\n { staticClass: \"el-form-item__content\", style: _vm.contentStyle },\n [\n _vm._t(\"default\"),\n _c(\n \"transition\",\n { attrs: { name: \"el-zoom-in-top\" } },\n [\n _vm.validateState === \"error\" &&\n _vm.showMessage &&\n _vm.form.showMessage\n ? _vm._t(\n \"error\",\n [\n _c(\n \"div\",\n {\n staticClass: \"el-form-item__error\",\n class: {\n \"el-form-item__error--inline\":\n typeof _vm.inlineMessage === \"boolean\"\n ? _vm.inlineMessage\n : (_vm.elForm && _vm.elForm.inlineMessage) ||\n false\n }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.validateMessage) +\n \"\\n \"\n )\n ]\n )\n ],\n { error: _vm.validateMessage }\n )\n : _vm._e()\n ],\n 2\n )\n ],\n 2\n )\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n// CONCATENATED MODULE: ./packages/form/src/form-item.vue?vue&type=template&id=b6f3db6c&\n\n// EXTERNAL MODULE: external \"async-validator\"\nvar external_async_validator_ = __webpack_require__(48);\nvar external_async_validator_default = /*#__PURE__*/__webpack_require__.n(external_async_validator_);\n\n// EXTERNAL MODULE: external \"element-ui/lib/mixins/emitter\"\nvar emitter_ = __webpack_require__(4);\nvar emitter_default = /*#__PURE__*/__webpack_require__.n(emitter_);\n\n// EXTERNAL MODULE: external \"element-ui/lib/utils/merge\"\nvar merge_ = __webpack_require__(9);\nvar merge_default = /*#__PURE__*/__webpack_require__.n(merge_);\n\n// EXTERNAL MODULE: external \"element-ui/lib/utils/util\"\nvar util_ = __webpack_require__(3);\n\n// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/form/src/label-wrap.vue?vue&type=script&lang=js&\n\n\n/* harmony default export */ var label_wrapvue_type_script_lang_js_ = ({\n props: {\n isAutoWidth: Boolean,\n updateAll: Boolean\n },\n\n inject: ['elForm', 'elFormItem'],\n\n render: function render() {\n var h = arguments[0];\n\n var slots = this.$slots.default;\n if (!slots) return null;\n if (this.isAutoWidth) {\n var autoLabelWidth = this.elForm.autoLabelWidth;\n var style = {};\n if (autoLabelWidth && autoLabelWidth !== 'auto') {\n var marginLeft = parseInt(autoLabelWidth, 10) - this.computedWidth;\n if (marginLeft) {\n style.marginLeft = marginLeft + 'px';\n }\n }\n return h(\n 'div',\n { 'class': 'el-form-item__label-wrap', style: style },\n [slots]\n );\n } else {\n return slots[0];\n }\n },\n\n\n methods: {\n getLabelWidth: function getLabelWidth() {\n if (this.$el && this.$el.firstElementChild) {\n var computedWidth = window.getComputedStyle(this.$el.firstElementChild).width;\n return Math.ceil(parseFloat(computedWidth));\n } else {\n return 0;\n }\n },\n updateLabelWidth: function updateLabelWidth() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'update';\n\n if (this.$slots.default && this.isAutoWidth && this.$el.firstElementChild) {\n if (action === 'update') {\n this.computedWidth = this.getLabelWidth();\n } else if (action === 'remove') {\n this.elForm.deregisterLabelWidth(this.computedWidth);\n }\n }\n }\n },\n\n watch: {\n computedWidth: function computedWidth(val, oldVal) {\n if (this.updateAll) {\n this.elForm.registerLabelWidth(val, oldVal);\n this.elFormItem.updateComputedLabelWidth(val);\n }\n }\n },\n\n data: function data() {\n return {\n computedWidth: 0\n };\n },\n mounted: function mounted() {\n this.updateLabelWidth('update');\n },\n updated: function updated() {\n this.updateLabelWidth('update');\n },\n beforeDestroy: function beforeDestroy() {\n this.updateLabelWidth('remove');\n }\n});\n// CONCATENATED MODULE: ./packages/form/src/label-wrap.vue?vue&type=script&lang=js&\n /* harmony default export */ var src_label_wrapvue_type_script_lang_js_ = (label_wrapvue_type_script_lang_js_); \n// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js\nvar componentNormalizer = __webpack_require__(0);\n\n// CONCATENATED MODULE: ./packages/form/src/label-wrap.vue\nvar label_wrap_render, label_wrap_staticRenderFns\n\n\n\n\n/* normalize component */\n\nvar component = Object(componentNormalizer[\"a\" /* default */])(\n src_label_wrapvue_type_script_lang_js_,\n label_wrap_render,\n label_wrap_staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"packages/form/src/label-wrap.vue\"\n/* harmony default export */ var label_wrap = (component.exports);\n// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/form/src/form-item.vue?vue&type=script&lang=js&\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n\n/* harmony default export */ var form_itemvue_type_script_lang_js_ = ({\n name: 'ElFormItem',\n\n componentName: 'ElFormItem',\n\n mixins: [emitter_default.a],\n\n provide: function provide() {\n return {\n elFormItem: this\n };\n },\n\n\n inject: ['elForm'],\n\n props: {\n label: String,\n labelWidth: String,\n prop: String,\n required: {\n type: Boolean,\n default: undefined\n },\n rules: [Object, Array],\n error: String,\n validateStatus: String,\n for: String,\n inlineMessage: {\n type: [String, Boolean],\n default: ''\n },\n showMessage: {\n type: Boolean,\n default: true\n },\n size: String\n },\n components: {\n // use this component to calculate auto width\n LabelWrap: label_wrap\n },\n watch: {\n error: {\n immediate: true,\n handler: function handler(value) {\n this.validateMessage = value;\n this.validateState = value ? 'error' : '';\n }\n },\n validateStatus: function validateStatus(value) {\n this.validateState = value;\n }\n },\n computed: {\n labelFor: function labelFor() {\n return this.for || this.prop;\n },\n labelStyle: function labelStyle() {\n var ret = {};\n if (this.form.labelPosition === 'top') return ret;\n var labelWidth = this.labelWidth || this.form.labelWidth;\n if (labelWidth) {\n ret.width = labelWidth;\n }\n return ret;\n },\n contentStyle: function contentStyle() {\n var ret = {};\n var label = this.label;\n if (this.form.labelPosition === 'top' || this.form.inline) return ret;\n if (!label && !this.labelWidth && this.isNested) return ret;\n var labelWidth = this.labelWidth || this.form.labelWidth;\n if (labelWidth === 'auto') {\n if (this.labelWidth === 'auto') {\n ret.marginLeft = this.computedLabelWidth;\n } else if (this.form.labelWidth === 'auto') {\n ret.marginLeft = this.elForm.autoLabelWidth;\n }\n } else {\n ret.marginLeft = labelWidth;\n }\n return ret;\n },\n form: function form() {\n var parent = this.$parent;\n var parentName = parent.$options.componentName;\n while (parentName !== 'ElForm') {\n if (parentName === 'ElFormItem') {\n this.isNested = true;\n }\n parent = parent.$parent;\n parentName = parent.$options.componentName;\n }\n return parent;\n },\n fieldValue: function fieldValue() {\n var model = this.form.model;\n if (!model || !this.prop) {\n return;\n }\n\n var path = this.prop;\n if (path.indexOf(':') !== -1) {\n path = path.replace(/:/, '.');\n }\n\n return Object(util_[\"getPropByPath\"])(model, path, true).v;\n },\n isRequired: function isRequired() {\n var rules = this.getRules();\n var isRequired = false;\n\n if (rules && rules.length) {\n rules.every(function (rule) {\n if (rule.required) {\n isRequired = true;\n return false;\n }\n return true;\n });\n }\n return isRequired;\n },\n _formSize: function _formSize() {\n return this.elForm.size;\n },\n elFormItemSize: function elFormItemSize() {\n return this.size || this._formSize;\n },\n sizeClass: function sizeClass() {\n return this.elFormItemSize || (this.$ELEMENT || {}).size;\n }\n },\n data: function data() {\n return {\n validateState: '',\n validateMessage: '',\n validateDisabled: false,\n validator: {},\n isNested: false,\n computedLabelWidth: ''\n };\n },\n\n methods: {\n validate: function validate(trigger) {\n var _this = this;\n\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : util_[\"noop\"];\n\n this.validateDisabled = false;\n var rules = this.getFilteredRule(trigger);\n if ((!rules || rules.length === 0) && this.required === undefined) {\n callback();\n return true;\n }\n\n this.validateState = 'validating';\n\n var descriptor = {};\n if (rules && rules.length > 0) {\n rules.forEach(function (rule) {\n delete rule.trigger;\n });\n }\n descriptor[this.prop] = rules;\n\n var validator = new external_async_validator_default.a(descriptor);\n var model = {};\n\n model[this.prop] = this.fieldValue;\n\n validator.validate(model, { firstFields: true }, function (errors, invalidFields) {\n _this.validateState = !errors ? 'success' : 'error';\n _this.validateMessage = errors ? errors[0].message : '';\n\n callback(_this.validateMessage, invalidFields);\n _this.elForm && _this.elForm.$emit('validate', _this.prop, !errors, _this.validateMessage || null);\n });\n },\n clearValidate: function clearValidate() {\n this.validateState = '';\n this.validateMessage = '';\n this.validateDisabled = false;\n },\n resetField: function resetField() {\n var _this2 = this;\n\n this.validateState = '';\n this.validateMessage = '';\n\n var model = this.form.model;\n var value = this.fieldValue;\n var path = this.prop;\n if (path.indexOf(':') !== -1) {\n path = path.replace(/:/, '.');\n }\n\n var prop = Object(util_[\"getPropByPath\"])(model, path, true);\n\n this.validateDisabled = true;\n if (Array.isArray(value)) {\n prop.o[prop.k] = [].concat(this.initialValue);\n } else {\n prop.o[prop.k] = this.initialValue;\n }\n\n // reset validateDisabled after onFieldChange triggered\n this.$nextTick(function () {\n _this2.validateDisabled = false;\n });\n\n this.broadcast('ElTimeSelect', 'fieldReset', this.initialValue);\n },\n getRules: function getRules() {\n var formRules = this.form.rules;\n var selfRules = this.rules;\n var requiredRule = this.required !== undefined ? { required: !!this.required } : [];\n\n var prop = Object(util_[\"getPropByPath\"])(formRules, this.prop || '');\n formRules = formRules ? prop.o[this.prop || ''] || prop.v : [];\n\n return [].concat(selfRules || formRules || []).concat(requiredRule);\n },\n getFilteredRule: function getFilteredRule(trigger) {\n var rules = this.getRules();\n\n return rules.filter(function (rule) {\n if (!rule.trigger || trigger === '') return true;\n if (Array.isArray(rule.trigger)) {\n return rule.trigger.indexOf(trigger) > -1;\n } else {\n return rule.trigger === trigger;\n }\n }).map(function (rule) {\n return merge_default()({}, rule);\n });\n },\n onFieldBlur: function onFieldBlur() {\n this.validate('blur');\n },\n onFieldChange: function onFieldChange() {\n if (this.validateDisabled) {\n this.validateDisabled = false;\n return;\n }\n\n this.validate('change');\n },\n updateComputedLabelWidth: function updateComputedLabelWidth(width) {\n this.computedLabelWidth = width ? width + 'px' : '';\n },\n addValidateEvents: function addValidateEvents() {\n var rules = this.getRules();\n\n if (rules.length || this.required !== undefined) {\n this.$on('el.form.blur', this.onFieldBlur);\n this.$on('el.form.change', this.onFieldChange);\n }\n },\n removeValidateEvents: function removeValidateEvents() {\n this.$off();\n }\n },\n mounted: function mounted() {\n if (this.prop) {\n this.dispatch('ElForm', 'el.form.addField', [this]);\n\n var initialValue = this.fieldValue;\n if (Array.isArray(initialValue)) {\n initialValue = [].concat(initialValue);\n }\n Object.defineProperty(this, 'initialValue', {\n value: initialValue\n });\n\n this.addValidateEvents();\n }\n },\n beforeDestroy: function beforeDestroy() {\n this.dispatch('ElForm', 'el.form.removeField', [this]);\n }\n});\n// CONCATENATED MODULE: ./packages/form/src/form-item.vue?vue&type=script&lang=js&\n /* harmony default export */ var src_form_itemvue_type_script_lang_js_ = (form_itemvue_type_script_lang_js_); \n// CONCATENATED MODULE: ./packages/form/src/form-item.vue\n\n\n\n\n\n/* normalize component */\n\nvar form_item_component = Object(componentNormalizer[\"a\" /* default */])(\n src_form_itemvue_type_script_lang_js_,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (false) { var form_item_api; }\nform_item_component.options.__file = \"packages/form/src/form-item.vue\"\n/* harmony default export */ var form_item = (form_item_component.exports);\n// CONCATENATED MODULE: ./packages/form-item/index.js\n\n\n/* istanbul ignore next */\nform_item.install = function (Vue) {\n Vue.component(form_item.name, form_item);\n};\n\n/* harmony default export */ var packages_form_item = __webpack_exports__[\"default\"] = (form_item);\n\n/***/ }),\n\n/***/ 9:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/merge\");\n\n/***/ })\n\n/******/ });","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('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","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\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","'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n return Array.isArray(val) ? [] : {}\n}\n\nfunction cloneIfNecessary(value, optionsArgument) {\n var clone = optionsArgument && optionsArgument.clone === true;\n return (clone && isMergeableObject(value)) ? deepmerge(emptyTarget(value), value, optionsArgument) : value\n}\n\nfunction defaultArrayMerge(target, source, optionsArgument) {\n var destination = target.slice();\n source.forEach(function(e, i) {\n if (typeof destination[i] === 'undefined') {\n destination[i] = cloneIfNecessary(e, optionsArgument);\n } else if (isMergeableObject(e)) {\n destination[i] = deepmerge(target[i], e, optionsArgument);\n } else if (target.indexOf(e) === -1) {\n destination.push(cloneIfNecessary(e, optionsArgument));\n }\n });\n return destination\n}\n\nfunction mergeObject(target, source, optionsArgument) {\n var destination = {};\n if (isMergeableObject(target)) {\n Object.keys(target).forEach(function(key) {\n destination[key] = cloneIfNecessary(target[key], optionsArgument);\n });\n }\n Object.keys(source).forEach(function(key) {\n if (!isMergeableObject(source[key]) || !target[key]) {\n destination[key] = cloneIfNecessary(source[key], optionsArgument);\n } else {\n destination[key] = deepmerge(target[key], source[key], optionsArgument);\n }\n });\n return destination\n}\n\nfunction deepmerge(target, source, optionsArgument) {\n var sourceIsArray = Array.isArray(source);\n var targetIsArray = Array.isArray(target);\n var options = optionsArgument || { arrayMerge: defaultArrayMerge };\n var sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n if (!sourceAndTargetTypesMatch) {\n return cloneIfNecessary(source, optionsArgument)\n } else if (sourceIsArray) {\n var arrayMerge = options.arrayMerge || defaultArrayMerge;\n return arrayMerge(target, source, optionsArgument)\n } else {\n return mergeObject(target, source, optionsArgument)\n }\n}\n\ndeepmerge.all = function deepmergeAll(array, optionsArgument) {\n if (!Array.isArray(array) || array.length < 2) {\n throw new Error('first argument should be an array with at least two elements')\n }\n\n // we are sure there are at least 2 values, so it is safe to have no initial value\n return array.reduce(function(prev, next) {\n return deepmerge(prev, next, optionsArgument)\n })\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","module.exports = { \"default\": require(\"core-js/library/fn/object/assign\"), __esModule: true };","'use strict';\n\nexports.__esModule = true;\nexports.removeResizeListener = exports.addResizeListener = undefined;\n\nvar _resizeObserverPolyfill = require('resize-observer-polyfill');\n\nvar _resizeObserverPolyfill2 = _interopRequireDefault(_resizeObserverPolyfill);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar isServer = typeof window === 'undefined';\n\n/* istanbul ignore next */\nvar resizeHandler = function resizeHandler(entries) {\n for (var _iterator = entries, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n var entry = _ref;\n\n var listeners = entry.target.__resizeListeners__ || [];\n if (listeners.length) {\n listeners.forEach(function (fn) {\n fn();\n });\n }\n }\n};\n\n/* istanbul ignore next */\nvar addResizeListener = exports.addResizeListener = function addResizeListener(element, fn) {\n if (isServer) return;\n if (!element.__resizeListeners__) {\n element.__resizeListeners__ = [];\n element.__ro__ = new _resizeObserverPolyfill2.default(resizeHandler);\n element.__ro__.observe(element);\n }\n element.__resizeListeners__.push(fn);\n};\n\n/* istanbul ignore next */\nvar removeResizeListener = exports.removeResizeListener = function removeResizeListener(element, fn) {\n if (!element || !element.__resizeListeners__) return;\n element.__resizeListeners__.splice(element.__resizeListeners__.indexOf(fn), 1);\n if (!element.__resizeListeners__.length) {\n element.__ro__.disconnect();\n }\n};","module.exports =\n/******/ (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 = \"/dist/\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 121);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return normalizeComponent; });\n/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nfunction normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functioal component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n\n\n/***/ }),\n\n/***/ 121:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n\n// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/form/src/form.vue?vue&type=template&id=a1b5ff34&\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"form\",\n {\n staticClass: \"el-form\",\n class: [\n _vm.labelPosition ? \"el-form--label-\" + _vm.labelPosition : \"\",\n { \"el-form--inline\": _vm.inline }\n ]\n },\n [_vm._t(\"default\")],\n 2\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n// CONCATENATED MODULE: ./packages/form/src/form.vue?vue&type=template&id=a1b5ff34&\n\n// EXTERNAL MODULE: external \"element-ui/lib/utils/merge\"\nvar merge_ = __webpack_require__(9);\nvar merge_default = /*#__PURE__*/__webpack_require__.n(merge_);\n\n// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/form/src/form.vue?vue&type=script&lang=js&\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n/* harmony default export */ var formvue_type_script_lang_js_ = ({\n name: 'ElForm',\n\n componentName: 'ElForm',\n\n provide: function provide() {\n return {\n elForm: this\n };\n },\n\n\n props: {\n model: Object,\n rules: Object,\n labelPosition: String,\n labelWidth: String,\n labelSuffix: {\n type: String,\n default: ''\n },\n inline: Boolean,\n inlineMessage: Boolean,\n statusIcon: Boolean,\n showMessage: {\n type: Boolean,\n default: true\n },\n size: String,\n disabled: Boolean,\n validateOnRuleChange: {\n type: Boolean,\n default: true\n },\n hideRequiredAsterisk: {\n type: Boolean,\n default: false\n }\n },\n watch: {\n rules: function rules() {\n // remove then add event listeners on form-item after form rules change\n this.fields.forEach(function (field) {\n field.removeValidateEvents();\n field.addValidateEvents();\n });\n\n if (this.validateOnRuleChange) {\n this.validate(function () {});\n }\n }\n },\n computed: {\n autoLabelWidth: function autoLabelWidth() {\n if (!this.potentialLabelWidthArr.length) return 0;\n var max = Math.max.apply(Math, this.potentialLabelWidthArr);\n return max ? max + 'px' : '';\n }\n },\n data: function data() {\n return {\n fields: [],\n potentialLabelWidthArr: [] // use this array to calculate auto width\n };\n },\n created: function created() {\n var _this = this;\n\n this.$on('el.form.addField', function (field) {\n if (field) {\n _this.fields.push(field);\n }\n });\n /* istanbul ignore next */\n this.$on('el.form.removeField', function (field) {\n if (field.prop) {\n _this.fields.splice(_this.fields.indexOf(field), 1);\n }\n });\n },\n\n methods: {\n resetFields: function resetFields() {\n if (!this.model) {\n console.warn('[Element Warn][Form]model is required for resetFields to work.');\n return;\n }\n this.fields.forEach(function (field) {\n field.resetField();\n });\n },\n clearValidate: function clearValidate() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n var fields = props.length ? typeof props === 'string' ? this.fields.filter(function (field) {\n return props === field.prop;\n }) : this.fields.filter(function (field) {\n return props.indexOf(field.prop) > -1;\n }) : this.fields;\n fields.forEach(function (field) {\n field.clearValidate();\n });\n },\n validate: function validate(callback) {\n var _this2 = this;\n\n if (!this.model) {\n console.warn('[Element Warn][Form]model is required for validate to work!');\n return;\n }\n\n var promise = void 0;\n // if no callback, return promise\n if (typeof callback !== 'function' && window.Promise) {\n promise = new window.Promise(function (resolve, reject) {\n callback = function callback(valid) {\n valid ? resolve(valid) : reject(valid);\n };\n });\n }\n\n var valid = true;\n var count = 0;\n // 如果需要验证的fields为空,调用验证时立刻返回callback\n if (this.fields.length === 0 && callback) {\n callback(true);\n }\n var invalidFields = {};\n this.fields.forEach(function (field) {\n field.validate('', function (message, field) {\n if (message) {\n valid = false;\n }\n invalidFields = merge_default()({}, invalidFields, field);\n if (typeof callback === 'function' && ++count === _this2.fields.length) {\n callback(valid, invalidFields);\n }\n });\n });\n\n if (promise) {\n return promise;\n }\n },\n validateField: function validateField(props, cb) {\n props = [].concat(props);\n var fields = this.fields.filter(function (field) {\n return props.indexOf(field.prop) !== -1;\n });\n if (!fields.length) {\n console.warn('[Element Warn]please pass correct props!');\n return;\n }\n\n fields.forEach(function (field) {\n field.validate('', cb);\n });\n },\n getLabelWidthIndex: function getLabelWidthIndex(width) {\n var index = this.potentialLabelWidthArr.indexOf(width);\n // it's impossible\n if (index === -1) {\n throw new Error('[ElementForm]unpected width ', width);\n }\n return index;\n },\n registerLabelWidth: function registerLabelWidth(val, oldVal) {\n if (val && oldVal) {\n var index = this.getLabelWidthIndex(oldVal);\n this.potentialLabelWidthArr.splice(index, 1, val);\n } else if (val) {\n this.potentialLabelWidthArr.push(val);\n }\n },\n deregisterLabelWidth: function deregisterLabelWidth(val) {\n var index = this.getLabelWidthIndex(val);\n this.potentialLabelWidthArr.splice(index, 1);\n }\n }\n});\n// CONCATENATED MODULE: ./packages/form/src/form.vue?vue&type=script&lang=js&\n /* harmony default export */ var src_formvue_type_script_lang_js_ = (formvue_type_script_lang_js_); \n// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js\nvar componentNormalizer = __webpack_require__(0);\n\n// CONCATENATED MODULE: ./packages/form/src/form.vue\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(componentNormalizer[\"a\" /* default */])(\n src_formvue_type_script_lang_js_,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"packages/form/src/form.vue\"\n/* harmony default export */ var src_form = (component.exports);\n// CONCATENATED MODULE: ./packages/form/index.js\n\n\n/* istanbul ignore next */\nsrc_form.install = function (Vue) {\n Vue.component(src_form.name, src_form);\n};\n\n/* harmony default export */ var packages_form = __webpack_exports__[\"default\"] = (src_form);\n\n/***/ }),\n\n/***/ 9:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/merge\");\n\n/***/ })\n\n/******/ });","'use strict';\n\nexports.__esModule = true;\n\nvar _vue = require('vue');\n\nvar _vue2 = _interopRequireDefault(_vue);\n\nvar _dom = require('element-ui/lib/utils/dom');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar nodeList = [];\nvar ctx = '@@clickoutsideContext';\n\nvar startClick = void 0;\nvar seed = 0;\n\n!_vue2.default.prototype.$isServer && (0, _dom.on)(document, 'mousedown', function (e) {\n return startClick = e;\n});\n\n!_vue2.default.prototype.$isServer && (0, _dom.on)(document, 'mouseup', function (e) {\n nodeList.forEach(function (node) {\n return node[ctx].documentHandler(e, startClick);\n });\n});\n\nfunction createDocumentHandler(el, binding, vnode) {\n return function () {\n var mouseup = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var mousedown = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (!vnode || !vnode.context || !mouseup.target || !mousedown.target || el.contains(mouseup.target) || el.contains(mousedown.target) || el === mouseup.target || vnode.context.popperElm && (vnode.context.popperElm.contains(mouseup.target) || vnode.context.popperElm.contains(mousedown.target))) return;\n\n if (binding.expression && el[ctx].methodName && vnode.context[el[ctx].methodName]) {\n vnode.context[el[ctx].methodName]();\n } else {\n el[ctx].bindingFn && el[ctx].bindingFn();\n }\n };\n}\n\n/**\n * v-clickoutside\n * @desc 点击元素外面才会触发的事件\n * @example\n * ```vue\n * <div v-element-clickoutside=\"handleClose\">\n * ```\n */\nexports.default = {\n bind: function bind(el, binding, vnode) {\n nodeList.push(el);\n var id = seed++;\n el[ctx] = {\n id: id,\n documentHandler: createDocumentHandler(el, binding, vnode),\n methodName: binding.expression,\n bindingFn: binding.value\n };\n },\n update: function update(el, binding, vnode) {\n el[ctx].documentHandler = createDocumentHandler(el, binding, vnode);\n el[ctx].methodName = binding.expression;\n el[ctx].bindingFn = binding.value;\n },\n unbind: function unbind(el) {\n var len = nodeList.length;\n\n for (var i = 0; i < len; i++) {\n if (nodeList[i][ctx].id === el[ctx].id) {\n nodeList.splice(i, 1);\n break;\n }\n }\n delete el[ctx];\n }\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _assign = require(\"../core-js/object/assign\");\n\nvar _assign2 = _interopRequireDefault(_assign);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _assign2.default || 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};","'use strict';\n\nexports.__esModule = true;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.isVNode = isVNode;\n\nvar _util = require('element-ui/lib/utils/util');\n\nfunction isVNode(node) {\n return node !== null && (typeof node === 'undefined' ? 'undefined' : _typeof(node)) === 'object' && (0, _util.hasOwn)(node, 'componentOptions');\n};","exports.nextTick = function nextTick(fn) {\n var args = Array.prototype.slice.call(arguments);\n args.shift();\n setTimeout(function () {\n fn.apply(null, args);\n }, 0);\n};\n\nexports.platform = exports.arch = \nexports.execPath = exports.title = 'browser';\nexports.pid = 1;\nexports.browser = true;\nexports.env = {};\nexports.argv = [];\n\nexports.binding = function (name) {\n\tthrow new Error('No such module. (Possibly not yet loaded)')\n};\n\n(function () {\n var cwd = '/';\n var path;\n exports.cwd = function () { return cwd };\n exports.chdir = function (dir) {\n if (!path) path = require('path');\n cwd = path.resolve(dir, cwd);\n };\n})();\n\nexports.exit = exports.kill = \nexports.umask = exports.dlopen = \nexports.uptime = exports.memoryUsage = \nexports.uvCounters = function() {};\nexports.features = {};\n","'use strict';\n\nexports.__esModule = true;\nexports.i18n = exports.use = exports.t = undefined;\n\nvar _zhCN = require('element-ui/lib/locale/lang/zh-CN');\n\nvar _zhCN2 = _interopRequireDefault(_zhCN);\n\nvar _vue = require('vue');\n\nvar _vue2 = _interopRequireDefault(_vue);\n\nvar _deepmerge = require('deepmerge');\n\nvar _deepmerge2 = _interopRequireDefault(_deepmerge);\n\nvar _format = require('./format');\n\nvar _format2 = _interopRequireDefault(_format);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar format = (0, _format2.default)(_vue2.default);\nvar lang = _zhCN2.default;\nvar merged = false;\nvar i18nHandler = function i18nHandler() {\n var vuei18n = Object.getPrototypeOf(this || _vue2.default).$t;\n if (typeof vuei18n === 'function' && !!_vue2.default.locale) {\n if (!merged) {\n merged = true;\n _vue2.default.locale(_vue2.default.config.lang, (0, _deepmerge2.default)(lang, _vue2.default.locale(_vue2.default.config.lang) || {}, { clone: true }));\n }\n return vuei18n.apply(this, arguments);\n }\n};\n\nvar t = exports.t = function t(path, options) {\n var value = i18nHandler.apply(this, arguments);\n if (value !== null && value !== undefined) return value;\n\n var array = path.split('.');\n var current = lang;\n\n for (var i = 0, j = array.length; i < j; i++) {\n var property = array[i];\n value = current[property];\n if (i === j - 1) return format(value, options);\n if (!value) return '';\n current = value;\n }\n return '';\n};\n\nvar use = exports.use = function use(l) {\n lang = l || lang;\n};\n\nvar i18n = exports.i18n = function i18n(fn) {\n i18nHandler = fn || i18nHandler;\n};\n\nexports.default = { use: use, t: t, i18n: i18n };","'use strict';\n\nexports.__esModule = true;\n\nvar _vue = require('vue');\n\nvar _vue2 = _interopRequireDefault(_vue);\n\nvar _dom = require('element-ui/lib/utils/dom');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar hasModal = false;\nvar hasInitZIndex = false;\nvar zIndex = void 0;\n\nvar getModal = function getModal() {\n if (_vue2.default.prototype.$isServer) return;\n var modalDom = PopupManager.modalDom;\n if (modalDom) {\n hasModal = true;\n } else {\n hasModal = false;\n modalDom = document.createElement('div');\n PopupManager.modalDom = modalDom;\n\n modalDom.addEventListener('touchmove', function (event) {\n event.preventDefault();\n event.stopPropagation();\n });\n\n modalDom.addEventListener('click', function () {\n PopupManager.doOnModalClick && PopupManager.doOnModalClick();\n });\n }\n\n return modalDom;\n};\n\nvar instances = {};\n\nvar PopupManager = {\n modalFade: true,\n\n getInstance: function getInstance(id) {\n return instances[id];\n },\n\n register: function register(id, instance) {\n if (id && instance) {\n instances[id] = instance;\n }\n },\n\n deregister: function deregister(id) {\n if (id) {\n instances[id] = null;\n delete instances[id];\n }\n },\n\n nextZIndex: function nextZIndex() {\n return PopupManager.zIndex++;\n },\n\n modalStack: [],\n\n doOnModalClick: function doOnModalClick() {\n var topItem = PopupManager.modalStack[PopupManager.modalStack.length - 1];\n if (!topItem) return;\n\n var instance = PopupManager.getInstance(topItem.id);\n if (instance && instance.closeOnClickModal) {\n instance.close();\n }\n },\n\n openModal: function openModal(id, zIndex, dom, modalClass, modalFade) {\n if (_vue2.default.prototype.$isServer) return;\n if (!id || zIndex === undefined) return;\n this.modalFade = modalFade;\n\n var modalStack = this.modalStack;\n\n for (var i = 0, j = modalStack.length; i < j; i++) {\n var item = modalStack[i];\n if (item.id === id) {\n return;\n }\n }\n\n var modalDom = getModal();\n\n (0, _dom.addClass)(modalDom, 'v-modal');\n if (this.modalFade && !hasModal) {\n (0, _dom.addClass)(modalDom, 'v-modal-enter');\n }\n if (modalClass) {\n var classArr = modalClass.trim().split(/\\s+/);\n classArr.forEach(function (item) {\n return (0, _dom.addClass)(modalDom, item);\n });\n }\n setTimeout(function () {\n (0, _dom.removeClass)(modalDom, 'v-modal-enter');\n }, 200);\n\n if (dom && dom.parentNode && dom.parentNode.nodeType !== 11) {\n dom.parentNode.appendChild(modalDom);\n } else {\n document.body.appendChild(modalDom);\n }\n\n if (zIndex) {\n modalDom.style.zIndex = zIndex;\n }\n modalDom.tabIndex = 0;\n modalDom.style.display = '';\n\n this.modalStack.push({ id: id, zIndex: zIndex, modalClass: modalClass });\n },\n\n closeModal: function closeModal(id) {\n var modalStack = this.modalStack;\n var modalDom = getModal();\n\n if (modalStack.length > 0) {\n var topItem = modalStack[modalStack.length - 1];\n if (topItem.id === id) {\n if (topItem.modalClass) {\n var classArr = topItem.modalClass.trim().split(/\\s+/);\n classArr.forEach(function (item) {\n return (0, _dom.removeClass)(modalDom, item);\n });\n }\n\n modalStack.pop();\n if (modalStack.length > 0) {\n modalDom.style.zIndex = modalStack[modalStack.length - 1].zIndex;\n }\n } else {\n for (var i = modalStack.length - 1; i >= 0; i--) {\n if (modalStack[i].id === id) {\n modalStack.splice(i, 1);\n break;\n }\n }\n }\n }\n\n if (modalStack.length === 0) {\n if (this.modalFade) {\n (0, _dom.addClass)(modalDom, 'v-modal-leave');\n }\n setTimeout(function () {\n if (modalStack.length === 0) {\n if (modalDom.parentNode) modalDom.parentNode.removeChild(modalDom);\n modalDom.style.display = 'none';\n PopupManager.modalDom = undefined;\n }\n (0, _dom.removeClass)(modalDom, 'v-modal-leave');\n }, 200);\n }\n }\n};\n\nObject.defineProperty(PopupManager, 'zIndex', {\n configurable: true,\n get: function get() {\n if (!hasInitZIndex) {\n zIndex = zIndex || (_vue2.default.prototype.$ELEMENT || {}).zIndex || 2000;\n hasInitZIndex = true;\n }\n return zIndex;\n },\n set: function set(value) {\n zIndex = value;\n }\n});\n\nvar getTopPopup = function getTopPopup() {\n if (_vue2.default.prototype.$isServer) return;\n if (PopupManager.modalStack.length > 0) {\n var topPopup = PopupManager.modalStack[PopupManager.modalStack.length - 1];\n if (!topPopup) return;\n var instance = PopupManager.getInstance(topPopup.id);\n\n return instance;\n }\n};\n\nif (!_vue2.default.prototype.$isServer) {\n // handle `esc` key when the popup is shown\n window.addEventListener('keydown', function (event) {\n if (event.keyCode === 27) {\n var topPopup = getTopPopup();\n\n if (topPopup && topPopup.closeOnPressEscape) {\n topPopup.handleClose ? topPopup.handleClose() : topPopup.handleAction ? topPopup.handleAction('cancel') : topPopup.close();\n }\n }\n });\n}\n\nexports.default = PopupManager;","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","require('./_wks-define')('observable');\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","var scope = (typeof global !== \"undefined\" && global) ||\n (typeof self !== \"undefined\" && self) ||\n window;\nvar apply = Function.prototype.apply;\n\n// DOM APIs, for completeness\n\nexports.setTimeout = function() {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\nexports.setInterval = function() {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\nexports.clearTimeout =\nexports.clearInterval = function(timeout) {\n if (timeout) {\n timeout.close();\n }\n};\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function() {};\nTimeout.prototype.close = function() {\n this._clearFn.call(scope, this._id);\n};\n\n// Does not start the time, just sets up the members needed.\nexports.enroll = function(item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function(item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function(item) {\n clearTimeout(item._idleTimeoutId);\n\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout)\n item._onTimeout();\n }, msecs);\n }\n};\n\n// setimmediate attaches itself to the global object\nrequire(\"setimmediate\");\n// On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto. Search each possibility in the same order as the\n// `setimmediate` library.\nexports.setImmediate = (typeof self !== \"undefined\" && self.setImmediate) ||\n (typeof global !== \"undefined\" && global.setImmediate) ||\n (this && this.setImmediate);\nexports.clearImmediate = (typeof self !== \"undefined\" && self.clearImmediate) ||\n (typeof global !== \"undefined\" && global.clearImmediate) ||\n (this && this.clearImmediate);\n","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n","'use strict';\n\nexports.__esModule = true;\nexports.PopupManager = undefined;\n\nvar _vue = require('vue');\n\nvar _vue2 = _interopRequireDefault(_vue);\n\nvar _merge = require('element-ui/lib/utils/merge');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _popupManager = require('element-ui/lib/utils/popup/popup-manager');\n\nvar _popupManager2 = _interopRequireDefault(_popupManager);\n\nvar _scrollbarWidth = require('../scrollbar-width');\n\nvar _scrollbarWidth2 = _interopRequireDefault(_scrollbarWidth);\n\nvar _dom = require('../dom');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar idSeed = 1;\n\nvar scrollBarWidth = void 0;\n\nexports.default = {\n props: {\n visible: {\n type: Boolean,\n default: false\n },\n openDelay: {},\n closeDelay: {},\n zIndex: {},\n modal: {\n type: Boolean,\n default: false\n },\n modalFade: {\n type: Boolean,\n default: true\n },\n modalClass: {},\n modalAppendToBody: {\n type: Boolean,\n default: false\n },\n lockScroll: {\n type: Boolean,\n default: true\n },\n closeOnPressEscape: {\n type: Boolean,\n default: false\n },\n closeOnClickModal: {\n type: Boolean,\n default: false\n }\n },\n\n beforeMount: function beforeMount() {\n this._popupId = 'popup-' + idSeed++;\n _popupManager2.default.register(this._popupId, this);\n },\n beforeDestroy: function beforeDestroy() {\n _popupManager2.default.deregister(this._popupId);\n _popupManager2.default.closeModal(this._popupId);\n\n this.restoreBodyStyle();\n },\n data: function data() {\n return {\n opened: false,\n bodyPaddingRight: null,\n computedBodyPaddingRight: 0,\n withoutHiddenClass: true,\n rendered: false\n };\n },\n\n\n watch: {\n visible: function visible(val) {\n var _this = this;\n\n if (val) {\n if (this._opening) return;\n if (!this.rendered) {\n this.rendered = true;\n _vue2.default.nextTick(function () {\n _this.open();\n });\n } else {\n this.open();\n }\n } else {\n this.close();\n }\n }\n },\n\n methods: {\n open: function open(options) {\n var _this2 = this;\n\n if (!this.rendered) {\n this.rendered = true;\n }\n\n var props = (0, _merge2.default)({}, this.$props || this, options);\n\n if (this._closeTimer) {\n clearTimeout(this._closeTimer);\n this._closeTimer = null;\n }\n clearTimeout(this._openTimer);\n\n var openDelay = Number(props.openDelay);\n if (openDelay > 0) {\n this._openTimer = setTimeout(function () {\n _this2._openTimer = null;\n _this2.doOpen(props);\n }, openDelay);\n } else {\n this.doOpen(props);\n }\n },\n doOpen: function doOpen(props) {\n if (this.$isServer) return;\n if (this.willOpen && !this.willOpen()) return;\n if (this.opened) return;\n\n this._opening = true;\n\n var dom = this.$el;\n\n var modal = props.modal;\n\n var zIndex = props.zIndex;\n if (zIndex) {\n _popupManager2.default.zIndex = zIndex;\n }\n\n if (modal) {\n if (this._closing) {\n _popupManager2.default.closeModal(this._popupId);\n this._closing = false;\n }\n _popupManager2.default.openModal(this._popupId, _popupManager2.default.nextZIndex(), this.modalAppendToBody ? undefined : dom, props.modalClass, props.modalFade);\n if (props.lockScroll) {\n this.withoutHiddenClass = !(0, _dom.hasClass)(document.body, 'el-popup-parent--hidden');\n if (this.withoutHiddenClass) {\n this.bodyPaddingRight = document.body.style.paddingRight;\n this.computedBodyPaddingRight = parseInt((0, _dom.getStyle)(document.body, 'paddingRight'), 10);\n }\n scrollBarWidth = (0, _scrollbarWidth2.default)();\n var bodyHasOverflow = document.documentElement.clientHeight < document.body.scrollHeight;\n var bodyOverflowY = (0, _dom.getStyle)(document.body, 'overflowY');\n if (scrollBarWidth > 0 && (bodyHasOverflow || bodyOverflowY === 'scroll') && this.withoutHiddenClass) {\n document.body.style.paddingRight = this.computedBodyPaddingRight + scrollBarWidth + 'px';\n }\n (0, _dom.addClass)(document.body, 'el-popup-parent--hidden');\n }\n }\n\n if (getComputedStyle(dom).position === 'static') {\n dom.style.position = 'absolute';\n }\n\n dom.style.zIndex = _popupManager2.default.nextZIndex();\n this.opened = true;\n\n this.onOpen && this.onOpen();\n\n this.doAfterOpen();\n },\n doAfterOpen: function doAfterOpen() {\n this._opening = false;\n },\n close: function close() {\n var _this3 = this;\n\n if (this.willClose && !this.willClose()) return;\n\n if (this._openTimer !== null) {\n clearTimeout(this._openTimer);\n this._openTimer = null;\n }\n clearTimeout(this._closeTimer);\n\n var closeDelay = Number(this.closeDelay);\n\n if (closeDelay > 0) {\n this._closeTimer = setTimeout(function () {\n _this3._closeTimer = null;\n _this3.doClose();\n }, closeDelay);\n } else {\n this.doClose();\n }\n },\n doClose: function doClose() {\n this._closing = true;\n\n this.onClose && this.onClose();\n\n if (this.lockScroll) {\n setTimeout(this.restoreBodyStyle, 200);\n }\n\n this.opened = false;\n\n this.doAfterClose();\n },\n doAfterClose: function doAfterClose() {\n _popupManager2.default.closeModal(this._popupId);\n this._closing = false;\n },\n restoreBodyStyle: function restoreBodyStyle() {\n if (this.modal && this.withoutHiddenClass) {\n document.body.style.paddingRight = this.bodyPaddingRight;\n (0, _dom.removeClass)(document.body, 'el-popup-parent--hidden');\n }\n this.withoutHiddenClass = true;\n }\n }\n};\nexports.PopupManager = _popupManager2.default;","var global = require('./_global');\nvar core = require('./_core');\nvar ctx = require('./_ctx');\nvar hide = require('./_hide');\nvar has = require('./_has');\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 IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\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","var core = module.exports = { version: '2.6.12' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","/*\n\tBased on rgbcolor.js by Stoyan Stefanov <sstoo@gmail.com>\n\thttp://www.phpied.com/rgb-color-parser-in-javascript/\n*/\n\nmodule.exports = function(color_string) {\n this.ok = false;\n this.alpha = 1.0;\n\n // strip any leading #\n if (color_string.charAt(0) == '#') { // remove # if any\n color_string = color_string.substr(1,6);\n }\n\n color_string = color_string.replace(/ /g,'');\n color_string = color_string.toLowerCase();\n\n // before getting into regexps, try simple matches\n // and overwrite the input\n var simple_colors = {\n aliceblue: 'f0f8ff',\n antiquewhite: 'faebd7',\n aqua: '00ffff',\n aquamarine: '7fffd4',\n azure: 'f0ffff',\n beige: 'f5f5dc',\n bisque: 'ffe4c4',\n black: '000000',\n blanchedalmond: 'ffebcd',\n blue: '0000ff',\n blueviolet: '8a2be2',\n brown: 'a52a2a',\n burlywood: 'deb887',\n cadetblue: '5f9ea0',\n chartreuse: '7fff00',\n chocolate: 'd2691e',\n coral: 'ff7f50',\n cornflowerblue: '6495ed',\n cornsilk: 'fff8dc',\n crimson: 'dc143c',\n cyan: '00ffff',\n darkblue: '00008b',\n darkcyan: '008b8b',\n darkgoldenrod: 'b8860b',\n darkgray: 'a9a9a9',\n darkgreen: '006400',\n darkkhaki: 'bdb76b',\n darkmagenta: '8b008b',\n darkolivegreen: '556b2f',\n darkorange: 'ff8c00',\n darkorchid: '9932cc',\n darkred: '8b0000',\n darksalmon: 'e9967a',\n darkseagreen: '8fbc8f',\n darkslateblue: '483d8b',\n darkslategray: '2f4f4f',\n darkturquoise: '00ced1',\n darkviolet: '9400d3',\n deeppink: 'ff1493',\n deepskyblue: '00bfff',\n dimgray: '696969',\n dodgerblue: '1e90ff',\n feldspar: 'd19275',\n firebrick: 'b22222',\n floralwhite: 'fffaf0',\n forestgreen: '228b22',\n fuchsia: 'ff00ff',\n gainsboro: 'dcdcdc',\n ghostwhite: 'f8f8ff',\n gold: 'ffd700',\n goldenrod: 'daa520',\n gray: '808080',\n green: '008000',\n greenyellow: 'adff2f',\n honeydew: 'f0fff0',\n hotpink: 'ff69b4',\n indianred : 'cd5c5c',\n indigo : '4b0082',\n ivory: 'fffff0',\n khaki: 'f0e68c',\n lavender: 'e6e6fa',\n lavenderblush: 'fff0f5',\n lawngreen: '7cfc00',\n lemonchiffon: 'fffacd',\n lightblue: 'add8e6',\n lightcoral: 'f08080',\n lightcyan: 'e0ffff',\n lightgoldenrodyellow: 'fafad2',\n lightgrey: 'd3d3d3',\n lightgreen: '90ee90',\n lightpink: 'ffb6c1',\n lightsalmon: 'ffa07a',\n lightseagreen: '20b2aa',\n lightskyblue: '87cefa',\n lightslateblue: '8470ff',\n lightslategray: '778899',\n lightsteelblue: 'b0c4de',\n lightyellow: 'ffffe0',\n lime: '00ff00',\n limegreen: '32cd32',\n linen: 'faf0e6',\n magenta: 'ff00ff',\n maroon: '800000',\n mediumaquamarine: '66cdaa',\n mediumblue: '0000cd',\n mediumorchid: 'ba55d3',\n mediumpurple: '9370d8',\n mediumseagreen: '3cb371',\n mediumslateblue: '7b68ee',\n mediumspringgreen: '00fa9a',\n mediumturquoise: '48d1cc',\n mediumvioletred: 'c71585',\n midnightblue: '191970',\n mintcream: 'f5fffa',\n mistyrose: 'ffe4e1',\n moccasin: 'ffe4b5',\n navajowhite: 'ffdead',\n navy: '000080',\n oldlace: 'fdf5e6',\n olive: '808000',\n olivedrab: '6b8e23',\n orange: 'ffa500',\n orangered: 'ff4500',\n orchid: 'da70d6',\n palegoldenrod: 'eee8aa',\n palegreen: '98fb98',\n paleturquoise: 'afeeee',\n palevioletred: 'd87093',\n papayawhip: 'ffefd5',\n peachpuff: 'ffdab9',\n peru: 'cd853f',\n pink: 'ffc0cb',\n plum: 'dda0dd',\n powderblue: 'b0e0e6',\n purple: '800080',\n rebeccapurple: '663399',\n red: 'ff0000',\n rosybrown: 'bc8f8f',\n royalblue: '4169e1',\n saddlebrown: '8b4513',\n salmon: 'fa8072',\n sandybrown: 'f4a460',\n seagreen: '2e8b57',\n seashell: 'fff5ee',\n sienna: 'a0522d',\n silver: 'c0c0c0',\n skyblue: '87ceeb',\n slateblue: '6a5acd',\n slategray: '708090',\n snow: 'fffafa',\n springgreen: '00ff7f',\n steelblue: '4682b4',\n tan: 'd2b48c',\n teal: '008080',\n thistle: 'd8bfd8',\n tomato: 'ff6347',\n turquoise: '40e0d0',\n violet: 'ee82ee',\n violetred: 'd02090',\n wheat: 'f5deb3',\n white: 'ffffff',\n whitesmoke: 'f5f5f5',\n yellow: 'ffff00',\n yellowgreen: '9acd32'\n };\n color_string = simple_colors[color_string] || color_string;\n // emd of simple type-in colors\n\n // array of color definition objects\n var color_defs = [\n {\n re: /^rgba\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3}),\\s*((?:\\d?\\.)?\\d)\\)$/,\n example: ['rgba(123, 234, 45, 0.8)', 'rgba(255,234,245,1.0)'],\n process: function (bits){\n return [\n parseInt(bits[1]),\n parseInt(bits[2]),\n parseInt(bits[3]),\n parseFloat(bits[4])\n ];\n }\n },\n {\n re: /^rgb\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3})\\)$/,\n example: ['rgb(123, 234, 45)', 'rgb(255,234,245)'],\n process: function (bits){\n return [\n parseInt(bits[1]),\n parseInt(bits[2]),\n parseInt(bits[3])\n ];\n }\n },\n {\n re: /^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n example: ['#00ff00', '336699'],\n process: function (bits){\n return [\n parseInt(bits[1], 16),\n parseInt(bits[2], 16),\n parseInt(bits[3], 16)\n ];\n }\n },\n {\n re: /^([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n example: ['#fb0', 'f0f'],\n process: function (bits){\n return [\n parseInt(bits[1] + bits[1], 16),\n parseInt(bits[2] + bits[2], 16),\n parseInt(bits[3] + bits[3], 16)\n ];\n }\n }\n ];\n\n // search through the definitions to find a match\n for (var i = 0; i < color_defs.length; i++) {\n var re = color_defs[i].re;\n var processor = color_defs[i].process;\n var bits = re.exec(color_string);\n if (bits) {\n var channels = processor(bits);\n this.r = channels[0];\n this.g = channels[1];\n this.b = channels[2];\n if (channels.length > 3) {\n this.alpha = channels[3];\n }\n this.ok = true;\n }\n\n }\n\n // validate/cleanup values\n this.r = (this.r < 0 || isNaN(this.r)) ? 0 : ((this.r > 255) ? 255 : this.r);\n this.g = (this.g < 0 || isNaN(this.g)) ? 0 : ((this.g > 255) ? 255 : this.g);\n this.b = (this.b < 0 || isNaN(this.b)) ? 0 : ((this.b > 255) ? 255 : this.b);\n this.alpha = (this.alpha < 0) ? 0 : ((this.alpha > 1.0 || isNaN(this.alpha)) ? 1.0 : this.alpha);\n\n // some getters\n this.toRGB = function () {\n return 'rgb(' + this.r + ', ' + this.g + ', ' + this.b + ')';\n }\n this.toRGBA = function () {\n return 'rgba(' + this.r + ', ' + this.g + ', ' + this.b + ', ' + this.alpha + ')';\n }\n this.toHex = function () {\n var r = this.r.toString(16);\n var g = this.g.toString(16);\n var b = this.b.toString(16);\n if (r.length == 1) r = '0' + r;\n if (g.length == 1) g = '0' + g;\n if (b.length == 1) b = '0' + b;\n return '#' + r + g + b;\n }\n\n // help\n this.getHelpXML = function () {\n\n var examples = new Array();\n // add regexps\n for (var i = 0; i < color_defs.length; i++) {\n var example = color_defs[i].example;\n for (var j = 0; j < example.length; j++) {\n examples[examples.length] = example[j];\n }\n }\n // add type-in colors\n for (var sc in simple_colors) {\n examples[examples.length] = sc;\n }\n\n var xml = document.createElement('ul');\n xml.setAttribute('id', 'rgbcolor-examples');\n for (var i = 0; i < examples.length; i++) {\n try {\n var list_item = document.createElement('li');\n var list_color = new RGBColor(examples[i]);\n var example_div = document.createElement('div');\n example_div.style.cssText =\n 'margin: 3px; '\n + 'border: 1px solid black; '\n + 'background:' + list_color.toHex() + '; '\n + 'color:' + list_color.toHex()\n ;\n example_div.appendChild(document.createTextNode('test'));\n var list_item_value = document.createTextNode(\n ' ' + examples[i] + ' -> ' + list_color.toRGB() + ' -> ' + list_color.toHex()\n );\n list_item.appendChild(example_div);\n list_item.appendChild(list_item_value);\n xml.appendChild(list_item);\n\n } catch(e){}\n }\n return xml;\n\n }\n\n}\n","'use strict';\n\nexports.__esModule = true;\nexports.isInContainer = exports.getScrollContainer = exports.isScroll = exports.getStyle = exports.once = exports.off = exports.on = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; /* istanbul ignore next */\n\nexports.hasClass = hasClass;\nexports.addClass = addClass;\nexports.removeClass = removeClass;\nexports.setStyle = setStyle;\n\nvar _vue = require('vue');\n\nvar _vue2 = _interopRequireDefault(_vue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar isServer = _vue2.default.prototype.$isServer;\nvar SPECIAL_CHARS_REGEXP = /([\\:\\-\\_]+(.))/g;\nvar MOZ_HACK_REGEXP = /^moz([A-Z])/;\nvar ieVersion = isServer ? 0 : Number(document.documentMode);\n\n/* istanbul ignore next */\nvar trim = function trim(string) {\n return (string || '').replace(/^[\\s\\uFEFF]+|[\\s\\uFEFF]+$/g, '');\n};\n/* istanbul ignore next */\nvar camelCase = function camelCase(name) {\n return name.replace(SPECIAL_CHARS_REGEXP, function (_, separator, letter, offset) {\n return offset ? letter.toUpperCase() : letter;\n }).replace(MOZ_HACK_REGEXP, 'Moz$1');\n};\n\n/* istanbul ignore next */\nvar on = exports.on = function () {\n if (!isServer && document.addEventListener) {\n return function (element, event, handler) {\n if (element && event && handler) {\n element.addEventListener(event, handler, false);\n }\n };\n } else {\n return function (element, event, handler) {\n if (element && event && handler) {\n element.attachEvent('on' + event, handler);\n }\n };\n }\n}();\n\n/* istanbul ignore next */\nvar off = exports.off = function () {\n if (!isServer && document.removeEventListener) {\n return function (element, event, handler) {\n if (element && event) {\n element.removeEventListener(event, handler, false);\n }\n };\n } else {\n return function (element, event, handler) {\n if (element && event) {\n element.detachEvent('on' + event, handler);\n }\n };\n }\n}();\n\n/* istanbul ignore next */\nvar once = exports.once = function once(el, event, fn) {\n var listener = function listener() {\n if (fn) {\n fn.apply(this, arguments);\n }\n off(el, event, listener);\n };\n on(el, event, listener);\n};\n\n/* istanbul ignore next */\nfunction hasClass(el, cls) {\n if (!el || !cls) return false;\n if (cls.indexOf(' ') !== -1) throw new Error('className should not contain space.');\n if (el.classList) {\n return el.classList.contains(cls);\n } else {\n return (' ' + el.className + ' ').indexOf(' ' + cls + ' ') > -1;\n }\n};\n\n/* istanbul ignore next */\nfunction addClass(el, cls) {\n if (!el) return;\n var curClass = el.className;\n var classes = (cls || '').split(' ');\n\n for (var i = 0, j = classes.length; i < j; i++) {\n var clsName = classes[i];\n if (!clsName) continue;\n\n if (el.classList) {\n el.classList.add(clsName);\n } else if (!hasClass(el, clsName)) {\n curClass += ' ' + clsName;\n }\n }\n if (!el.classList) {\n el.className = curClass;\n }\n};\n\n/* istanbul ignore next */\nfunction removeClass(el, cls) {\n if (!el || !cls) return;\n var classes = cls.split(' ');\n var curClass = ' ' + el.className + ' ';\n\n for (var i = 0, j = classes.length; i < j; i++) {\n var clsName = classes[i];\n if (!clsName) continue;\n\n if (el.classList) {\n el.classList.remove(clsName);\n } else if (hasClass(el, clsName)) {\n curClass = curClass.replace(' ' + clsName + ' ', ' ');\n }\n }\n if (!el.classList) {\n el.className = trim(curClass);\n }\n};\n\n/* istanbul ignore next */\nvar getStyle = exports.getStyle = ieVersion < 9 ? function (element, styleName) {\n if (isServer) return;\n if (!element || !styleName) return null;\n styleName = camelCase(styleName);\n if (styleName === 'float') {\n styleName = 'styleFloat';\n }\n try {\n switch (styleName) {\n case 'opacity':\n try {\n return element.filters.item('alpha').opacity / 100;\n } catch (e) {\n return 1.0;\n }\n default:\n return element.style[styleName] || element.currentStyle ? element.currentStyle[styleName] : null;\n }\n } catch (e) {\n return element.style[styleName];\n }\n} : function (element, styleName) {\n if (isServer) return;\n if (!element || !styleName) return null;\n styleName = camelCase(styleName);\n if (styleName === 'float') {\n styleName = 'cssFloat';\n }\n try {\n var computed = document.defaultView.getComputedStyle(element, '');\n return element.style[styleName] || computed ? computed[styleName] : null;\n } catch (e) {\n return element.style[styleName];\n }\n};\n\n/* istanbul ignore next */\nfunction setStyle(element, styleName, value) {\n if (!element || !styleName) return;\n\n if ((typeof styleName === 'undefined' ? 'undefined' : _typeof(styleName)) === 'object') {\n for (var prop in styleName) {\n if (styleName.hasOwnProperty(prop)) {\n setStyle(element, prop, styleName[prop]);\n }\n }\n } else {\n styleName = camelCase(styleName);\n if (styleName === 'opacity' && ieVersion < 9) {\n element.style.filter = isNaN(value) ? '' : 'alpha(opacity=' + value * 100 + ')';\n } else {\n element.style[styleName] = value;\n }\n }\n};\n\nvar isScroll = exports.isScroll = function isScroll(el, vertical) {\n if (isServer) return;\n\n var determinedDirection = vertical !== null || vertical !== undefined;\n var overflow = determinedDirection ? vertical ? getStyle(el, 'overflow-y') : getStyle(el, 'overflow-x') : getStyle(el, 'overflow');\n\n return overflow.match(/(scroll|auto)/);\n};\n\nvar getScrollContainer = exports.getScrollContainer = function getScrollContainer(el, vertical) {\n if (isServer) return;\n\n var parent = el;\n while (parent) {\n if ([window, document, document.documentElement].includes(parent)) {\n return window;\n }\n if (isScroll(parent, vertical)) {\n return parent;\n }\n parent = parent.parentNode;\n }\n\n return parent;\n};\n\nvar isInContainer = exports.isInContainer = function isInContainer(el, container) {\n if (isServer || !el || !container) return false;\n\n var elRect = el.getBoundingClientRect();\n var containerRect = void 0;\n\n if ([window, document, document.documentElement, null, undefined].includes(container)) {\n containerRect = {\n top: 0,\n right: window.innerWidth,\n bottom: window.innerHeight,\n left: 0\n };\n } else {\n containerRect = container.getBoundingClientRect();\n }\n\n return elRect.top < containerRect.bottom && elRect.bottom > containerRect.top && elRect.right > containerRect.left && elRect.left < containerRect.right;\n};","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\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 _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\n/* eslint-disable no-bitwise -- used for calculations */\n\n/* eslint-disable unicorn/prefer-query-selector -- aiming at\n backward-compatibility */\n\n/**\n* StackBlur - a fast almost Gaussian Blur For Canvas\n*\n* In case you find this class useful - especially in commercial projects -\n* I am not totally unhappy for a small donation to my PayPal account\n* mario@quasimondo.de\n*\n* Or support me on flattr:\n* {@link https://flattr.com/thing/72791/StackBlur-a-fast-almost-Gaussian-Blur-Effect-for-CanvasJavascript}.\n*\n* @module StackBlur\n* @author Mario Klingemann\n* Contact: mario@quasimondo.com\n* Website: {@link http://www.quasimondo.com/StackBlurForCanvas/StackBlurDemo.html}\n* Twitter: @quasimondo\n*\n* @copyright (c) 2010 Mario Klingemann\n*\n* Permission is hereby granted, free of charge, to any person\n* obtaining a copy of this software and associated documentation\n* files (the \"Software\"), to deal in the Software without\n* restriction, including without limitation the rights to use,\n* copy, modify, merge, publish, distribute, sublicense, and/or sell\n* copies of the Software, and to permit persons to whom the\n* Software is furnished to do so, subject to the following\n* conditions:\n*\n* The above copyright notice and this permission notice shall be\n* included in all copies or substantial portions of the Software.\n*\n* THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\n* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n* OTHER DEALINGS IN THE SOFTWARE.\n*/\nvar mulTable = [512, 512, 456, 512, 328, 456, 335, 512, 405, 328, 271, 456, 388, 335, 292, 512, 454, 405, 364, 328, 298, 271, 496, 456, 420, 388, 360, 335, 312, 292, 273, 512, 482, 454, 428, 405, 383, 364, 345, 328, 312, 298, 284, 271, 259, 496, 475, 456, 437, 420, 404, 388, 374, 360, 347, 335, 323, 312, 302, 292, 282, 273, 265, 512, 497, 482, 468, 454, 441, 428, 417, 405, 394, 383, 373, 364, 354, 345, 337, 328, 320, 312, 305, 298, 291, 284, 278, 271, 265, 259, 507, 496, 485, 475, 465, 456, 446, 437, 428, 420, 412, 404, 396, 388, 381, 374, 367, 360, 354, 347, 341, 335, 329, 323, 318, 312, 307, 302, 297, 292, 287, 282, 278, 273, 269, 265, 261, 512, 505, 497, 489, 482, 475, 468, 461, 454, 447, 441, 435, 428, 422, 417, 411, 405, 399, 394, 389, 383, 378, 373, 368, 364, 359, 354, 350, 345, 341, 337, 332, 328, 324, 320, 316, 312, 309, 305, 301, 298, 294, 291, 287, 284, 281, 278, 274, 271, 268, 265, 262, 259, 257, 507, 501, 496, 491, 485, 480, 475, 470, 465, 460, 456, 451, 446, 442, 437, 433, 428, 424, 420, 416, 412, 408, 404, 400, 396, 392, 388, 385, 381, 377, 374, 370, 367, 363, 360, 357, 354, 350, 347, 344, 341, 338, 335, 332, 329, 326, 323, 320, 318, 315, 312, 310, 307, 304, 302, 299, 297, 294, 292, 289, 287, 285, 282, 280, 278, 275, 273, 271, 269, 267, 265, 263, 261, 259];\nvar shgTable = [9, 11, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24];\n/**\n * @param {string|HTMLImageElement} img\n * @param {string|HTMLCanvasElement} canvas\n * @param {Float} radius\n * @param {boolean} blurAlphaChannel\n * @param {boolean} useOffsetWidth\n * @returns {undefined}\n */\n\nfunction processImage(img, canvas, radius, blurAlphaChannel, useOffsetWidth) {\n if (typeof img === 'string') {\n img = document.getElementById(img);\n }\n\n if (!img || !('naturalWidth' in img)) {\n return;\n }\n\n var dimensionType = useOffsetWidth ? 'offset' : 'natural';\n var w = img[dimensionType + 'Width'];\n var h = img[dimensionType + 'Height'];\n\n if (typeof canvas === 'string') {\n canvas = document.getElementById(canvas);\n }\n\n if (!canvas || !('getContext' in canvas)) {\n return;\n }\n\n canvas.style.width = w + 'px';\n canvas.style.height = h + 'px';\n canvas.width = w;\n canvas.height = h;\n var context = canvas.getContext('2d');\n context.clearRect(0, 0, w, h);\n context.drawImage(img, 0, 0, img.naturalWidth, img.naturalHeight, 0, 0, w, h);\n\n if (isNaN(radius) || radius < 1) {\n return;\n }\n\n if (blurAlphaChannel) {\n processCanvasRGBA(canvas, 0, 0, w, h, radius);\n } else {\n processCanvasRGB(canvas, 0, 0, w, h, radius);\n }\n}\n/**\n * @param {string|HTMLCanvasElement} canvas\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @throws {Error|TypeError}\n * @returns {ImageData} See {@link https://html.spec.whatwg.org/multipage/canvas.html#imagedata}\n */\n\n\nfunction getImageDataFromCanvas(canvas, topX, topY, width, height) {\n if (typeof canvas === 'string') {\n canvas = document.getElementById(canvas);\n }\n\n if (!canvas || _typeof(canvas) !== 'object' || !('getContext' in canvas)) {\n throw new TypeError('Expecting canvas with `getContext` method ' + 'in processCanvasRGB(A) calls!');\n }\n\n var context = canvas.getContext('2d');\n\n try {\n return context.getImageData(topX, topY, width, height);\n } catch (e) {\n throw new Error('unable to access image data: ' + e);\n }\n}\n/**\n * @param {HTMLCanvasElement} canvas\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @param {Float} radius\n * @returns {undefined}\n */\n\n\nfunction processCanvasRGBA(canvas, topX, topY, width, height, radius) {\n if (isNaN(radius) || radius < 1) {\n return;\n }\n\n radius |= 0;\n var imageData = getImageDataFromCanvas(canvas, topX, topY, width, height);\n imageData = processImageDataRGBA(imageData, topX, topY, width, height, radius);\n canvas.getContext('2d').putImageData(imageData, topX, topY);\n}\n/**\n * @param {ImageData} imageData\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @param {Float} radius\n * @returns {ImageData}\n */\n\n\nfunction processImageDataRGBA(imageData, topX, topY, width, height, radius) {\n var pixels = imageData.data;\n var div = 2 * radius + 1; // const w4 = width << 2;\n\n var widthMinus1 = width - 1;\n var heightMinus1 = height - 1;\n var radiusPlus1 = radius + 1;\n var sumFactor = radiusPlus1 * (radiusPlus1 + 1) / 2;\n var stackStart = new BlurStack();\n var stack = stackStart;\n var stackEnd;\n\n for (var i = 1; i < div; i++) {\n stack = stack.next = new BlurStack();\n\n if (i === radiusPlus1) {\n stackEnd = stack;\n }\n }\n\n stack.next = stackStart;\n var stackIn = null,\n stackOut = null,\n yw = 0,\n yi = 0;\n var mulSum = mulTable[radius];\n var shgSum = shgTable[radius];\n\n for (var y = 0; y < height; y++) {\n stack = stackStart;\n var pr = pixels[yi],\n pg = pixels[yi + 1],\n pb = pixels[yi + 2],\n pa = pixels[yi + 3];\n\n for (var _i = 0; _i < radiusPlus1; _i++) {\n stack.r = pr;\n stack.g = pg;\n stack.b = pb;\n stack.a = pa;\n stack = stack.next;\n }\n\n var rInSum = 0,\n gInSum = 0,\n bInSum = 0,\n aInSum = 0,\n rOutSum = radiusPlus1 * pr,\n gOutSum = radiusPlus1 * pg,\n bOutSum = radiusPlus1 * pb,\n aOutSum = radiusPlus1 * pa,\n rSum = sumFactor * pr,\n gSum = sumFactor * pg,\n bSum = sumFactor * pb,\n aSum = sumFactor * pa;\n\n for (var _i2 = 1; _i2 < radiusPlus1; _i2++) {\n var p = yi + ((widthMinus1 < _i2 ? widthMinus1 : _i2) << 2);\n var r = pixels[p],\n g = pixels[p + 1],\n b = pixels[p + 2],\n a = pixels[p + 3];\n var rbs = radiusPlus1 - _i2;\n rSum += (stack.r = r) * rbs;\n gSum += (stack.g = g) * rbs;\n bSum += (stack.b = b) * rbs;\n aSum += (stack.a = a) * rbs;\n rInSum += r;\n gInSum += g;\n bInSum += b;\n aInSum += a;\n stack = stack.next;\n }\n\n stackIn = stackStart;\n stackOut = stackEnd;\n\n for (var x = 0; x < width; x++) {\n var paInitial = aSum * mulSum >> shgSum;\n pixels[yi + 3] = paInitial;\n\n if (paInitial !== 0) {\n var _a2 = 255 / paInitial;\n\n pixels[yi] = (rSum * mulSum >> shgSum) * _a2;\n pixels[yi + 1] = (gSum * mulSum >> shgSum) * _a2;\n pixels[yi + 2] = (bSum * mulSum >> shgSum) * _a2;\n } else {\n pixels[yi] = pixels[yi + 1] = pixels[yi + 2] = 0;\n }\n\n rSum -= rOutSum;\n gSum -= gOutSum;\n bSum -= bOutSum;\n aSum -= aOutSum;\n rOutSum -= stackIn.r;\n gOutSum -= stackIn.g;\n bOutSum -= stackIn.b;\n aOutSum -= stackIn.a;\n\n var _p = x + radius + 1;\n\n _p = yw + (_p < widthMinus1 ? _p : widthMinus1) << 2;\n rInSum += stackIn.r = pixels[_p];\n gInSum += stackIn.g = pixels[_p + 1];\n bInSum += stackIn.b = pixels[_p + 2];\n aInSum += stackIn.a = pixels[_p + 3];\n rSum += rInSum;\n gSum += gInSum;\n bSum += bInSum;\n aSum += aInSum;\n stackIn = stackIn.next;\n var _stackOut = stackOut,\n _r = _stackOut.r,\n _g = _stackOut.g,\n _b = _stackOut.b,\n _a = _stackOut.a;\n rOutSum += _r;\n gOutSum += _g;\n bOutSum += _b;\n aOutSum += _a;\n rInSum -= _r;\n gInSum -= _g;\n bInSum -= _b;\n aInSum -= _a;\n stackOut = stackOut.next;\n yi += 4;\n }\n\n yw += width;\n }\n\n for (var _x = 0; _x < width; _x++) {\n yi = _x << 2;\n\n var _pr = pixels[yi],\n _pg = pixels[yi + 1],\n _pb = pixels[yi + 2],\n _pa = pixels[yi + 3],\n _rOutSum = radiusPlus1 * _pr,\n _gOutSum = radiusPlus1 * _pg,\n _bOutSum = radiusPlus1 * _pb,\n _aOutSum = radiusPlus1 * _pa,\n _rSum = sumFactor * _pr,\n _gSum = sumFactor * _pg,\n _bSum = sumFactor * _pb,\n _aSum = sumFactor * _pa;\n\n stack = stackStart;\n\n for (var _i3 = 0; _i3 < radiusPlus1; _i3++) {\n stack.r = _pr;\n stack.g = _pg;\n stack.b = _pb;\n stack.a = _pa;\n stack = stack.next;\n }\n\n var yp = width;\n var _gInSum = 0,\n _bInSum = 0,\n _aInSum = 0,\n _rInSum = 0;\n\n for (var _i4 = 1; _i4 <= radius; _i4++) {\n yi = yp + _x << 2;\n\n var _rbs = radiusPlus1 - _i4;\n\n _rSum += (stack.r = _pr = pixels[yi]) * _rbs;\n _gSum += (stack.g = _pg = pixels[yi + 1]) * _rbs;\n _bSum += (stack.b = _pb = pixels[yi + 2]) * _rbs;\n _aSum += (stack.a = _pa = pixels[yi + 3]) * _rbs;\n _rInSum += _pr;\n _gInSum += _pg;\n _bInSum += _pb;\n _aInSum += _pa;\n stack = stack.next;\n\n if (_i4 < heightMinus1) {\n yp += width;\n }\n }\n\n yi = _x;\n stackIn = stackStart;\n stackOut = stackEnd;\n\n for (var _y = 0; _y < height; _y++) {\n var _p2 = yi << 2;\n\n pixels[_p2 + 3] = _pa = _aSum * mulSum >> shgSum;\n\n if (_pa > 0) {\n _pa = 255 / _pa;\n pixels[_p2] = (_rSum * mulSum >> shgSum) * _pa;\n pixels[_p2 + 1] = (_gSum * mulSum >> shgSum) * _pa;\n pixels[_p2 + 2] = (_bSum * mulSum >> shgSum) * _pa;\n } else {\n pixels[_p2] = pixels[_p2 + 1] = pixels[_p2 + 2] = 0;\n }\n\n _rSum -= _rOutSum;\n _gSum -= _gOutSum;\n _bSum -= _bOutSum;\n _aSum -= _aOutSum;\n _rOutSum -= stackIn.r;\n _gOutSum -= stackIn.g;\n _bOutSum -= stackIn.b;\n _aOutSum -= stackIn.a;\n _p2 = _x + ((_p2 = _y + radiusPlus1) < heightMinus1 ? _p2 : heightMinus1) * width << 2;\n _rSum += _rInSum += stackIn.r = pixels[_p2];\n _gSum += _gInSum += stackIn.g = pixels[_p2 + 1];\n _bSum += _bInSum += stackIn.b = pixels[_p2 + 2];\n _aSum += _aInSum += stackIn.a = pixels[_p2 + 3];\n stackIn = stackIn.next;\n _rOutSum += _pr = stackOut.r;\n _gOutSum += _pg = stackOut.g;\n _bOutSum += _pb = stackOut.b;\n _aOutSum += _pa = stackOut.a;\n _rInSum -= _pr;\n _gInSum -= _pg;\n _bInSum -= _pb;\n _aInSum -= _pa;\n stackOut = stackOut.next;\n yi += width;\n }\n }\n\n return imageData;\n}\n/**\n * @param {HTMLCanvasElement} canvas\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @param {Float} radius\n * @returns {undefined}\n */\n\n\nfunction processCanvasRGB(canvas, topX, topY, width, height, radius) {\n if (isNaN(radius) || radius < 1) {\n return;\n }\n\n radius |= 0;\n var imageData = getImageDataFromCanvas(canvas, topX, topY, width, height);\n imageData = processImageDataRGB(imageData, topX, topY, width, height, radius);\n canvas.getContext('2d').putImageData(imageData, topX, topY);\n}\n/**\n * @param {ImageData} imageData\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @param {Float} radius\n * @returns {ImageData}\n */\n\n\nfunction processImageDataRGB(imageData, topX, topY, width, height, radius) {\n var pixels = imageData.data;\n var div = 2 * radius + 1; // const w4 = width << 2;\n\n var widthMinus1 = width - 1;\n var heightMinus1 = height - 1;\n var radiusPlus1 = radius + 1;\n var sumFactor = radiusPlus1 * (radiusPlus1 + 1) / 2;\n var stackStart = new BlurStack();\n var stack = stackStart;\n var stackEnd;\n\n for (var i = 1; i < div; i++) {\n stack = stack.next = new BlurStack();\n\n if (i === radiusPlus1) {\n stackEnd = stack;\n }\n }\n\n stack.next = stackStart;\n var stackIn = null;\n var stackOut = null;\n var mulSum = mulTable[radius];\n var shgSum = shgTable[radius];\n var p, rbs;\n var yw = 0,\n yi = 0;\n\n for (var y = 0; y < height; y++) {\n var pr = pixels[yi],\n pg = pixels[yi + 1],\n pb = pixels[yi + 2],\n rOutSum = radiusPlus1 * pr,\n gOutSum = radiusPlus1 * pg,\n bOutSum = radiusPlus1 * pb,\n rSum = sumFactor * pr,\n gSum = sumFactor * pg,\n bSum = sumFactor * pb;\n stack = stackStart;\n\n for (var _i5 = 0; _i5 < radiusPlus1; _i5++) {\n stack.r = pr;\n stack.g = pg;\n stack.b = pb;\n stack = stack.next;\n }\n\n var rInSum = 0,\n gInSum = 0,\n bInSum = 0;\n\n for (var _i6 = 1; _i6 < radiusPlus1; _i6++) {\n p = yi + ((widthMinus1 < _i6 ? widthMinus1 : _i6) << 2);\n rSum += (stack.r = pr = pixels[p]) * (rbs = radiusPlus1 - _i6);\n gSum += (stack.g = pg = pixels[p + 1]) * rbs;\n bSum += (stack.b = pb = pixels[p + 2]) * rbs;\n rInSum += pr;\n gInSum += pg;\n bInSum += pb;\n stack = stack.next;\n }\n\n stackIn = stackStart;\n stackOut = stackEnd;\n\n for (var x = 0; x < width; x++) {\n pixels[yi] = rSum * mulSum >> shgSum;\n pixels[yi + 1] = gSum * mulSum >> shgSum;\n pixels[yi + 2] = bSum * mulSum >> shgSum;\n rSum -= rOutSum;\n gSum -= gOutSum;\n bSum -= bOutSum;\n rOutSum -= stackIn.r;\n gOutSum -= stackIn.g;\n bOutSum -= stackIn.b;\n p = yw + ((p = x + radius + 1) < widthMinus1 ? p : widthMinus1) << 2;\n rInSum += stackIn.r = pixels[p];\n gInSum += stackIn.g = pixels[p + 1];\n bInSum += stackIn.b = pixels[p + 2];\n rSum += rInSum;\n gSum += gInSum;\n bSum += bInSum;\n stackIn = stackIn.next;\n rOutSum += pr = stackOut.r;\n gOutSum += pg = stackOut.g;\n bOutSum += pb = stackOut.b;\n rInSum -= pr;\n gInSum -= pg;\n bInSum -= pb;\n stackOut = stackOut.next;\n yi += 4;\n }\n\n yw += width;\n }\n\n for (var _x2 = 0; _x2 < width; _x2++) {\n yi = _x2 << 2;\n\n var _pr2 = pixels[yi],\n _pg2 = pixels[yi + 1],\n _pb2 = pixels[yi + 2],\n _rOutSum2 = radiusPlus1 * _pr2,\n _gOutSum2 = radiusPlus1 * _pg2,\n _bOutSum2 = radiusPlus1 * _pb2,\n _rSum2 = sumFactor * _pr2,\n _gSum2 = sumFactor * _pg2,\n _bSum2 = sumFactor * _pb2;\n\n stack = stackStart;\n\n for (var _i7 = 0; _i7 < radiusPlus1; _i7++) {\n stack.r = _pr2;\n stack.g = _pg2;\n stack.b = _pb2;\n stack = stack.next;\n }\n\n var _rInSum2 = 0,\n _gInSum2 = 0,\n _bInSum2 = 0;\n\n for (var _i8 = 1, yp = width; _i8 <= radius; _i8++) {\n yi = yp + _x2 << 2;\n _rSum2 += (stack.r = _pr2 = pixels[yi]) * (rbs = radiusPlus1 - _i8);\n _gSum2 += (stack.g = _pg2 = pixels[yi + 1]) * rbs;\n _bSum2 += (stack.b = _pb2 = pixels[yi + 2]) * rbs;\n _rInSum2 += _pr2;\n _gInSum2 += _pg2;\n _bInSum2 += _pb2;\n stack = stack.next;\n\n if (_i8 < heightMinus1) {\n yp += width;\n }\n }\n\n yi = _x2;\n stackIn = stackStart;\n stackOut = stackEnd;\n\n for (var _y2 = 0; _y2 < height; _y2++) {\n p = yi << 2;\n pixels[p] = _rSum2 * mulSum >> shgSum;\n pixels[p + 1] = _gSum2 * mulSum >> shgSum;\n pixels[p + 2] = _bSum2 * mulSum >> shgSum;\n _rSum2 -= _rOutSum2;\n _gSum2 -= _gOutSum2;\n _bSum2 -= _bOutSum2;\n _rOutSum2 -= stackIn.r;\n _gOutSum2 -= stackIn.g;\n _bOutSum2 -= stackIn.b;\n p = _x2 + ((p = _y2 + radiusPlus1) < heightMinus1 ? p : heightMinus1) * width << 2;\n _rSum2 += _rInSum2 += stackIn.r = pixels[p];\n _gSum2 += _gInSum2 += stackIn.g = pixels[p + 1];\n _bSum2 += _bInSum2 += stackIn.b = pixels[p + 2];\n stackIn = stackIn.next;\n _rOutSum2 += _pr2 = stackOut.r;\n _gOutSum2 += _pg2 = stackOut.g;\n _bOutSum2 += _pb2 = stackOut.b;\n _rInSum2 -= _pr2;\n _gInSum2 -= _pg2;\n _bInSum2 -= _pb2;\n stackOut = stackOut.next;\n yi += width;\n }\n }\n\n return imageData;\n}\n/**\n *\n */\n\n\nvar BlurStack =\n/**\n * Set properties.\n */\nfunction BlurStack() {\n _classCallCheck(this, BlurStack);\n\n this.r = 0;\n this.g = 0;\n this.b = 0;\n this.a = 0;\n this.next = null;\n};\n\nexport { BlurStack, processCanvasRGB as canvasRGB, processCanvasRGBA as canvasRGBA, processImage as image, processImageDataRGB as imageDataRGB, processImageDataRGBA as imageDataRGBA };\n","(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n }\n // Copy function arguments\n var args = new Array(arguments.length - 1);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n }\n // Store and register the task\n var task = { callback: callback, args: args };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n switch (args.length) {\n case 0:\n callback();\n break;\n case 1:\n callback(args[0]);\n break;\n case 2:\n callback(args[0], args[1]);\n break;\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n if (task) {\n currentlyRunningATask = true;\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function(handle) {\n process.nextTick(function () { runIfPresent(handle); });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n global.onmessage = function() {\n postMessageIsAsynchronous = false;\n };\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n var onGlobalMessage = function(event) {\n if (event.source === global &&\n typeof event.data === \"string\" &&\n event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n channel.port1.onmessage = function(event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n registerImmediate = function(handle) {\n // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted\n // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n var script = doc.createElement(\"script\");\n script.onreadystatechange = function () {\n runIfPresent(handle);\n script.onreadystatechange = null;\n html.removeChild(script);\n script = null;\n };\n html.appendChild(script);\n };\n }\n\n function installSetTimeoutImplementation() {\n registerImmediate = function(handle) {\n setTimeout(runIfPresent, 0, handle);\n };\n }\n\n // If supported, we should attach to the prototype of global, since that is where setTimeout et al. live.\n var attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global);\n attachTo = attachTo && attachTo.setTimeout ? attachTo : global;\n\n // Don't get fooled by e.g. browserify environments.\n if ({}.toString.call(global.process) === \"[object process]\") {\n // For Node.js before 0.9\n installNextTickImplementation();\n\n } else if (canUsePostMessage()) {\n // For non-IE10 modern browsers\n installPostMessageImplementation();\n\n } else if (global.MessageChannel) {\n // For web workers, where supported\n installMessageChannelImplementation();\n\n } else if (doc && \"onreadystatechange\" in doc.createElement(\"script\")) {\n // For IE 6–8\n installReadyStateChangeImplementation();\n\n } else {\n // For older browsers\n installSetTimeoutImplementation();\n }\n\n attachTo.setImmediate = setImmediate;\n attachTo.clearImmediate = clearImmediate;\n}(typeof self === \"undefined\" ? typeof global === \"undefined\" ? this : global : self));\n","'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/**\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version {{version}}\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n\n//\n// Cross module loader\n// Supported: Node, AMD, Browser globals\n//\n;(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(factory);\n } else if ((typeof module === 'undefined' ? 'undefined' : _typeof(module)) === 'object' && module.exports) {\n // Node. Does not work with strict CommonJS, but\n // only CommonJS-like environments that support module.exports,\n // like Node.\n module.exports = factory();\n } else {\n // Browser globals (root is window)\n root.Popper = factory();\n }\n})(undefined, function () {\n\n 'use strict';\n\n var root = window;\n\n // default options\n var DEFAULTS = {\n // placement of the popper\n placement: 'bottom',\n\n gpuAcceleration: true,\n\n // shift popper from its origin by the given amount of pixels (can be negative)\n offset: 0,\n\n // the element which will act as boundary of the popper\n boundariesElement: 'viewport',\n\n // amount of pixel used to define a minimum distance between the boundaries and the popper\n boundariesPadding: 5,\n\n // popper will try to prevent overflow following this order,\n // by default, then, it could overflow on the left and on top of the boundariesElement\n preventOverflowOrder: ['left', 'right', 'top', 'bottom'],\n\n // the behavior used by flip to change the placement of the popper\n flipBehavior: 'flip',\n\n arrowElement: '[x-arrow]',\n\n arrowOffset: 0,\n\n // list of functions used to modify the offsets before they are applied to the popper\n modifiers: ['shift', 'offset', 'preventOverflow', 'keepTogether', 'arrow', 'flip', 'applyStyle'],\n\n modifiersIgnored: [],\n\n forceAbsolute: false\n };\n\n /**\n * Create a new Popper.js instance\n * @constructor Popper\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement|Object} popper\n * The HTML element used as popper, or a configuration used to generate the popper.\n * @param {String} [popper.tagName='div'] The tag name of the generated popper.\n * @param {Array} [popper.classNames=['popper']] Array of classes to apply to the generated popper.\n * @param {Array} [popper.attributes] Array of attributes to apply, specify `attr:value` to assign a value to it.\n * @param {HTMLElement|String} [popper.parent=window.document.body] The parent element, given as HTMLElement or as query string.\n * @param {String} [popper.content=''] The content of the popper, it can be text, html, or node; if it is not text, set `contentType` to `html` or `node`.\n * @param {String} [popper.contentType='text'] If `html`, the `content` will be parsed as HTML. If `node`, it will be appended as-is.\n * @param {String} [popper.arrowTagName='div'] Same as `popper.tagName` but for the arrow element.\n * @param {Array} [popper.arrowClassNames='popper__arrow'] Same as `popper.classNames` but for the arrow element.\n * @param {String} [popper.arrowAttributes=['x-arrow']] Same as `popper.attributes` but for the arrow element.\n * @param {Object} options\n * @param {String} [options.placement=bottom]\n * Placement of the popper accepted values: `top(-start, -end), right(-start, -end), bottom(-start, -right),\n * left(-start, -end)`\n *\n * @param {HTMLElement|String} [options.arrowElement='[x-arrow]']\n * The DOM Node used as arrow for the popper, or a CSS selector used to get the DOM node. It must be child of\n * its parent Popper. Popper.js will apply to the given element the style required to align the arrow with its\n * reference element.\n * By default, it will look for a child node of the popper with the `x-arrow` attribute.\n *\n * @param {Boolean} [options.gpuAcceleration=true]\n * When this property is set to true, the popper position will be applied using CSS3 translate3d, allowing the\n * browser to use the GPU to accelerate the rendering.\n * If set to false, the popper will be placed using `top` and `left` properties, not using the GPU.\n *\n * @param {Number} [options.offset=0]\n * Amount of pixels the popper will be shifted (can be negative).\n *\n * @param {String|Element} [options.boundariesElement='viewport']\n * The element which will define the boundaries of the popper position, the popper will never be placed outside\n * of the defined boundaries (except if `keepTogether` is enabled)\n *\n * @param {Number} [options.boundariesPadding=5]\n * Additional padding for the boundaries\n *\n * @param {Array} [options.preventOverflowOrder=['left', 'right', 'top', 'bottom']]\n * Order used when Popper.js tries to avoid overflows from the boundaries, they will be checked in order,\n * this means that the last ones will never overflow\n *\n * @param {String|Array} [options.flipBehavior='flip']\n * The behavior used by the `flip` modifier to change the placement of the popper when the latter is trying to\n * overlap its reference element. Defining `flip` as value, the placement will be flipped on\n * its axis (`right - left`, `top - bottom`).\n * You can even pass an array of placements (eg: `['right', 'left', 'top']` ) to manually specify\n * how alter the placement when a flip is needed. (eg. in the above example, it would first flip from right to left,\n * then, if even in its new placement, the popper is overlapping its reference element, it will be moved to top)\n *\n * @param {Array} [options.modifiers=[ 'shift', 'offset', 'preventOverflow', 'keepTogether', 'arrow', 'flip', 'applyStyle']]\n * List of functions used to modify the data before they are applied to the popper, add your custom functions\n * to this array to edit the offsets and placement.\n * The function should reflect the @params and @returns of preventOverflow\n *\n * @param {Array} [options.modifiersIgnored=[]]\n * Put here any built-in modifier name you want to exclude from the modifiers list\n * The function should reflect the @params and @returns of preventOverflow\n *\n * @param {Boolean} [options.removeOnDestroy=false]\n * Set to true if you want to automatically remove the popper when you call the `destroy` method.\n */\n function Popper(reference, popper, options) {\n this._reference = reference.jquery ? reference[0] : reference;\n this.state = {};\n\n // if the popper variable is a configuration object, parse it to generate an HTMLElement\n // generate a default popper if is not defined\n var isNotDefined = typeof popper === 'undefined' || popper === null;\n var isConfig = popper && Object.prototype.toString.call(popper) === '[object Object]';\n if (isNotDefined || isConfig) {\n this._popper = this.parse(isConfig ? popper : {});\n }\n // otherwise, use the given HTMLElement as popper\n else {\n this._popper = popper.jquery ? popper[0] : popper;\n }\n\n // with {} we create a new object with the options inside it\n this._options = Object.assign({}, DEFAULTS, options);\n\n // refactoring modifiers' list\n this._options.modifiers = this._options.modifiers.map(function (modifier) {\n // remove ignored modifiers\n if (this._options.modifiersIgnored.indexOf(modifier) !== -1) return;\n\n // set the x-placement attribute before everything else because it could be used to add margins to the popper\n // margins needs to be calculated to get the correct popper offsets\n if (modifier === 'applyStyle') {\n this._popper.setAttribute('x-placement', this._options.placement);\n }\n\n // return predefined modifier identified by string or keep the custom one\n return this.modifiers[modifier] || modifier;\n }.bind(this));\n\n // make sure to apply the popper position before any computation\n this.state.position = this._getPosition(this._popper, this._reference);\n setStyle(this._popper, { position: this.state.position, top: 0 });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n // setup event listeners, they will take care of update the position in specific situations\n this._setupEventListeners();\n return this;\n }\n\n //\n // Methods\n //\n /**\n * Destroy the popper\n * @method\n * @memberof Popper\n */\n Popper.prototype.destroy = function () {\n this._popper.removeAttribute('x-placement');\n this._popper.style.left = '';\n this._popper.style.position = '';\n this._popper.style.top = '';\n this._popper.style[getSupportedPropertyName('transform')] = '';\n this._removeEventListeners();\n\n // remove the popper if user explicity asked for the deletion on destroy\n if (this._options.removeOnDestroy) {\n this._popper.remove();\n }\n return this;\n };\n\n /**\n * Updates the position of the popper, computing the new offsets and applying the new style\n * @method\n * @memberof Popper\n */\n Popper.prototype.update = function () {\n var data = { instance: this, styles: {} };\n\n // store placement inside the data object, modifiers will be able to edit `placement` if needed\n // and refer to _originalPlacement to know the original value\n data.placement = this._options.placement;\n data._originalPlacement = this._options.placement;\n\n // compute the popper and reference offsets and put them inside data.offsets\n data.offsets = this._getOffsets(this._popper, this._reference, data.placement);\n\n // get boundaries\n data.boundaries = this._getBoundaries(data, this._options.boundariesPadding, this._options.boundariesElement);\n\n data = this.runModifiers(data, this._options.modifiers);\n\n if (typeof this.state.updateCallback === 'function') {\n this.state.updateCallback(data);\n }\n };\n\n /**\n * If a function is passed, it will be executed after the initialization of popper with as first argument the Popper instance.\n * @method\n * @memberof Popper\n * @param {Function} callback\n */\n Popper.prototype.onCreate = function (callback) {\n // the createCallbacks return as first argument the popper instance\n callback(this);\n return this;\n };\n\n /**\n * If a function is passed, it will be executed after each update of popper with as first argument the set of coordinates and informations\n * used to style popper and its arrow.\n * NOTE: it doesn't get fired on the first call of the `Popper.update()` method inside the `Popper` constructor!\n * @method\n * @memberof Popper\n * @param {Function} callback\n */\n Popper.prototype.onUpdate = function (callback) {\n this.state.updateCallback = callback;\n return this;\n };\n\n /**\n * Helper used to generate poppers from a configuration file\n * @method\n * @memberof Popper\n * @param config {Object} configuration\n * @returns {HTMLElement} popper\n */\n Popper.prototype.parse = function (config) {\n var defaultConfig = {\n tagName: 'div',\n classNames: ['popper'],\n attributes: [],\n parent: root.document.body,\n content: '',\n contentType: 'text',\n arrowTagName: 'div',\n arrowClassNames: ['popper__arrow'],\n arrowAttributes: ['x-arrow']\n };\n config = Object.assign({}, defaultConfig, config);\n\n var d = root.document;\n\n var popper = d.createElement(config.tagName);\n addClassNames(popper, config.classNames);\n addAttributes(popper, config.attributes);\n if (config.contentType === 'node') {\n popper.appendChild(config.content.jquery ? config.content[0] : config.content);\n } else if (config.contentType === 'html') {\n popper.innerHTML = config.content;\n } else {\n popper.textContent = config.content;\n }\n\n if (config.arrowTagName) {\n var arrow = d.createElement(config.arrowTagName);\n addClassNames(arrow, config.arrowClassNames);\n addAttributes(arrow, config.arrowAttributes);\n popper.appendChild(arrow);\n }\n\n var parent = config.parent.jquery ? config.parent[0] : config.parent;\n\n // if the given parent is a string, use it to match an element\n // if more than one element is matched, the first one will be used as parent\n // if no elements are matched, the script will throw an error\n if (typeof parent === 'string') {\n parent = d.querySelectorAll(config.parent);\n if (parent.length > 1) {\n console.warn('WARNING: the given `parent` query(' + config.parent + ') matched more than one element, the first one will be used');\n }\n if (parent.length === 0) {\n throw 'ERROR: the given `parent` doesn\\'t exists!';\n }\n parent = parent[0];\n }\n // if the given parent is a DOM nodes list or an array of nodes with more than one element,\n // the first one will be used as parent\n if (parent.length > 1 && parent instanceof Element === false) {\n console.warn('WARNING: you have passed as parent a list of elements, the first one will be used');\n parent = parent[0];\n }\n\n // append the generated popper to its parent\n parent.appendChild(popper);\n\n return popper;\n\n /**\n * Adds class names to the given element\n * @function\n * @ignore\n * @param {HTMLElement} target\n * @param {Array} classes\n */\n function addClassNames(element, classNames) {\n classNames.forEach(function (className) {\n element.classList.add(className);\n });\n }\n\n /**\n * Adds attributes to the given element\n * @function\n * @ignore\n * @param {HTMLElement} target\n * @param {Array} attributes\n * @example\n * addAttributes(element, [ 'data-info:foobar' ]);\n */\n function addAttributes(element, attributes) {\n attributes.forEach(function (attribute) {\n element.setAttribute(attribute.split(':')[0], attribute.split(':')[1] || '');\n });\n }\n };\n\n /**\n * Helper used to get the position which will be applied to the popper\n * @method\n * @memberof Popper\n * @param config {HTMLElement} popper element\n * @param reference {HTMLElement} reference element\n * @returns {String} position\n */\n Popper.prototype._getPosition = function (popper, reference) {\n var container = getOffsetParent(reference);\n\n if (this._options.forceAbsolute) {\n return 'absolute';\n }\n\n // Decide if the popper will be fixed\n // If the reference element is inside a fixed context, the popper will be fixed as well to allow them to scroll together\n var isParentFixed = isFixed(reference, container);\n return isParentFixed ? 'fixed' : 'absolute';\n };\n\n /**\n * Get offsets to the popper\n * @method\n * @memberof Popper\n * @access private\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\n Popper.prototype._getOffsets = function (popper, reference, placement) {\n placement = placement.split('-')[0];\n var popperOffsets = {};\n\n popperOffsets.position = this.state.position;\n var isParentFixed = popperOffsets.position === 'fixed';\n\n //\n // Get reference element position\n //\n var referenceOffsets = getOffsetRectRelativeToCustomParent(reference, getOffsetParent(popper), isParentFixed);\n\n //\n // Get popper sizes\n //\n var popperRect = getOuterSizes(popper);\n\n //\n // Compute offsets of popper\n //\n\n // depending by the popper placement we have to compute its offsets slightly differently\n if (['right', 'left'].indexOf(placement) !== -1) {\n popperOffsets.top = referenceOffsets.top + referenceOffsets.height / 2 - popperRect.height / 2;\n if (placement === 'left') {\n popperOffsets.left = referenceOffsets.left - popperRect.width;\n } else {\n popperOffsets.left = referenceOffsets.right;\n }\n } else {\n popperOffsets.left = referenceOffsets.left + referenceOffsets.width / 2 - popperRect.width / 2;\n if (placement === 'top') {\n popperOffsets.top = referenceOffsets.top - popperRect.height;\n } else {\n popperOffsets.top = referenceOffsets.bottom;\n }\n }\n\n // Add width and height to our offsets object\n popperOffsets.width = popperRect.width;\n popperOffsets.height = popperRect.height;\n\n return {\n popper: popperOffsets,\n reference: referenceOffsets\n };\n };\n\n /**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper\n * @access private\n */\n Popper.prototype._setupEventListeners = function () {\n // NOTE: 1 DOM access here\n this.state.updateBound = this.update.bind(this);\n root.addEventListener('resize', this.state.updateBound);\n // if the boundariesElement is window we don't need to listen for the scroll event\n if (this._options.boundariesElement !== 'window') {\n var target = getScrollParent(this._reference);\n // here it could be both `body` or `documentElement` thanks to Firefox, we then check both\n if (target === root.document.body || target === root.document.documentElement) {\n target = root;\n }\n target.addEventListener('scroll', this.state.updateBound);\n this.state.scrollTarget = target;\n }\n };\n\n /**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper\n * @access private\n */\n Popper.prototype._removeEventListeners = function () {\n // NOTE: 1 DOM access here\n root.removeEventListener('resize', this.state.updateBound);\n if (this._options.boundariesElement !== 'window' && this.state.scrollTarget) {\n this.state.scrollTarget.removeEventListener('scroll', this.state.updateBound);\n this.state.scrollTarget = null;\n }\n this.state.updateBound = null;\n };\n\n /**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper\n * @access private\n * @param {Object} data - Object containing the property \"offsets\" generated by `_getOffsets`\n * @param {Number} padding - Boundaries padding\n * @param {Element} boundariesElement - Element used to define the boundaries\n * @returns {Object} Coordinates of the boundaries\n */\n Popper.prototype._getBoundaries = function (data, padding, boundariesElement) {\n // NOTE: 1 DOM access here\n var boundaries = {};\n var width, height;\n if (boundariesElement === 'window') {\n var body = root.document.body,\n html = root.document.documentElement;\n\n height = Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight);\n width = Math.max(body.scrollWidth, body.offsetWidth, html.clientWidth, html.scrollWidth, html.offsetWidth);\n\n boundaries = {\n top: 0,\n right: width,\n bottom: height,\n left: 0\n };\n } else if (boundariesElement === 'viewport') {\n var offsetParent = getOffsetParent(this._popper);\n var scrollParent = getScrollParent(this._popper);\n var offsetParentRect = getOffsetRect(offsetParent);\n\n // Thanks the fucking native API, `document.body.scrollTop` & `document.documentElement.scrollTop`\n var getScrollTopValue = function getScrollTopValue(element) {\n return element == document.body ? Math.max(document.documentElement.scrollTop, document.body.scrollTop) : element.scrollTop;\n };\n var getScrollLeftValue = function getScrollLeftValue(element) {\n return element == document.body ? Math.max(document.documentElement.scrollLeft, document.body.scrollLeft) : element.scrollLeft;\n };\n\n // if the popper is fixed we don't have to substract scrolling from the boundaries\n var scrollTop = data.offsets.popper.position === 'fixed' ? 0 : getScrollTopValue(scrollParent);\n var scrollLeft = data.offsets.popper.position === 'fixed' ? 0 : getScrollLeftValue(scrollParent);\n\n boundaries = {\n top: 0 - (offsetParentRect.top - scrollTop),\n right: root.document.documentElement.clientWidth - (offsetParentRect.left - scrollLeft),\n bottom: root.document.documentElement.clientHeight - (offsetParentRect.top - scrollTop),\n left: 0 - (offsetParentRect.left - scrollLeft)\n };\n } else {\n if (getOffsetParent(this._popper) === boundariesElement) {\n boundaries = {\n top: 0,\n left: 0,\n right: boundariesElement.clientWidth,\n bottom: boundariesElement.clientHeight\n };\n } else {\n boundaries = getOffsetRect(boundariesElement);\n }\n }\n boundaries.left += padding;\n boundaries.right -= padding;\n boundaries.top = boundaries.top + padding;\n boundaries.bottom = boundaries.bottom - padding;\n return boundaries;\n };\n\n /**\n * Loop trough the list of modifiers and run them in order, each of them will then edit the data object\n * @method\n * @memberof Popper\n * @access public\n * @param {Object} data\n * @param {Array} modifiers\n * @param {Function} ends\n */\n Popper.prototype.runModifiers = function (data, modifiers, ends) {\n var modifiersToRun = modifiers.slice();\n if (ends !== undefined) {\n modifiersToRun = this._options.modifiers.slice(0, getArrayKeyIndex(this._options.modifiers, ends));\n }\n\n modifiersToRun.forEach(function (modifier) {\n if (isFunction(modifier)) {\n data = modifier.call(this, data);\n }\n }.bind(this));\n\n return data;\n };\n\n /**\n * Helper used to know if the given modifier depends from another one.\n * @method\n * @memberof Popper\n * @param {String} requesting - name of requesting modifier\n * @param {String} requested - name of requested modifier\n * @returns {Boolean}\n */\n Popper.prototype.isModifierRequired = function (requesting, requested) {\n var index = getArrayKeyIndex(this._options.modifiers, requesting);\n return !!this._options.modifiers.slice(0, index).filter(function (modifier) {\n return modifier === requested;\n }).length;\n };\n\n //\n // Modifiers\n //\n\n /**\n * Modifiers list\n * @namespace Popper.modifiers\n * @memberof Popper\n * @type {Object}\n */\n Popper.prototype.modifiers = {};\n\n /**\n * Apply the computed styles to the popper element\n * @method\n * @memberof Popper.modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @returns {Object} The same data object\n */\n Popper.prototype.modifiers.applyStyle = function (data) {\n // apply the final offsets to the popper\n // NOTE: 1 DOM access here\n var styles = {\n position: data.offsets.popper.position\n };\n\n // round top and left to avoid blurry text\n var left = Math.round(data.offsets.popper.left);\n var top = Math.round(data.offsets.popper.top);\n\n // if gpuAcceleration is set to true and transform is supported, we use `translate3d` to apply the position to the popper\n // we automatically use the supported prefixed version if needed\n var prefixedProperty;\n if (this._options.gpuAcceleration && (prefixedProperty = getSupportedPropertyName('transform'))) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles.top = 0;\n styles.left = 0;\n }\n // othwerise, we use the standard `left` and `top` properties\n else {\n styles.left = left;\n styles.top = top;\n }\n\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n Object.assign(styles, data.styles);\n\n setStyle(this._popper, styles);\n\n // set an attribute which will be useful to style the tooltip (use it to properly position its arrow)\n // NOTE: 1 DOM access here\n this._popper.setAttribute('x-placement', data.placement);\n\n // if the arrow modifier is required and the arrow style has been computed, apply the arrow style\n if (this.isModifierRequired(this.modifiers.applyStyle, this.modifiers.arrow) && data.offsets.arrow) {\n setStyle(data.arrowElement, data.offsets.arrow);\n }\n\n return data;\n };\n\n /**\n * Modifier used to shift the popper on the start or end of its reference element side\n * @method\n * @memberof Popper.modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @returns {Object} The data object, properly modified\n */\n Popper.prototype.modifiers.shift = function (data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftVariation = placement.split('-')[1];\n\n // if shift shiftVariation is specified, run the modifier\n if (shiftVariation) {\n var reference = data.offsets.reference;\n var popper = getPopperClientRect(data.offsets.popper);\n\n var shiftOffsets = {\n y: {\n start: { top: reference.top },\n end: { top: reference.top + reference.height - popper.height }\n },\n x: {\n start: { left: reference.left },\n end: { left: reference.left + reference.width - popper.width }\n }\n };\n\n var axis = ['bottom', 'top'].indexOf(basePlacement) !== -1 ? 'x' : 'y';\n\n data.offsets.popper = Object.assign(popper, shiftOffsets[axis][shiftVariation]);\n }\n\n return data;\n };\n\n /**\n * Modifier used to make sure the popper does not overflows from it's boundaries\n * @method\n * @memberof Popper.modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @returns {Object} The data object, properly modified\n */\n Popper.prototype.modifiers.preventOverflow = function (data) {\n var order = this._options.preventOverflowOrder;\n var popper = getPopperClientRect(data.offsets.popper);\n\n var check = {\n left: function left() {\n var left = popper.left;\n if (popper.left < data.boundaries.left) {\n left = Math.max(popper.left, data.boundaries.left);\n }\n return { left: left };\n },\n right: function right() {\n var left = popper.left;\n if (popper.right > data.boundaries.right) {\n left = Math.min(popper.left, data.boundaries.right - popper.width);\n }\n return { left: left };\n },\n top: function top() {\n var top = popper.top;\n if (popper.top < data.boundaries.top) {\n top = Math.max(popper.top, data.boundaries.top);\n }\n return { top: top };\n },\n bottom: function bottom() {\n var top = popper.top;\n if (popper.bottom > data.boundaries.bottom) {\n top = Math.min(popper.top, data.boundaries.bottom - popper.height);\n }\n return { top: top };\n }\n };\n\n order.forEach(function (direction) {\n data.offsets.popper = Object.assign(popper, check[direction]());\n });\n\n return data;\n };\n\n /**\n * Modifier used to make sure the popper is always near its reference\n * @method\n * @memberof Popper.modifiers\n * @argument {Object} data - The data object generated by _update method\n * @returns {Object} The data object, properly modified\n */\n Popper.prototype.modifiers.keepTogether = function (data) {\n var popper = getPopperClientRect(data.offsets.popper);\n var reference = data.offsets.reference;\n var f = Math.floor;\n\n if (popper.right < f(reference.left)) {\n data.offsets.popper.left = f(reference.left) - popper.width;\n }\n if (popper.left > f(reference.right)) {\n data.offsets.popper.left = f(reference.right);\n }\n if (popper.bottom < f(reference.top)) {\n data.offsets.popper.top = f(reference.top) - popper.height;\n }\n if (popper.top > f(reference.bottom)) {\n data.offsets.popper.top = f(reference.bottom);\n }\n\n return data;\n };\n\n /**\n * Modifier used to flip the placement of the popper when the latter is starting overlapping its reference element.\n * Requires the `preventOverflow` modifier before it in order to work.\n * **NOTE:** This modifier will run all its previous modifiers everytime it tries to flip the popper!\n * @method\n * @memberof Popper.modifiers\n * @argument {Object} data - The data object generated by _update method\n * @returns {Object} The data object, properly modified\n */\n Popper.prototype.modifiers.flip = function (data) {\n // check if preventOverflow is in the list of modifiers before the flip modifier.\n // otherwise flip would not work as expected.\n if (!this.isModifierRequired(this.modifiers.flip, this.modifiers.preventOverflow)) {\n console.warn('WARNING: preventOverflow modifier is required by flip modifier in order to work, be sure to include it before flip!');\n return data;\n }\n\n if (data.flipped && data.placement === data._originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n if (this._options.flipBehavior === 'flip') {\n flipOrder = [placement, placementOpposite];\n } else {\n flipOrder = this._options.flipBehavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = getPopperClientRect(data.offsets.popper);\n\n // this boolean is used to distinguish right and bottom from top and left\n // they need different computations to get flipped\n var a = ['right', 'bottom'].indexOf(placement) !== -1;\n\n // using Math.floor because the reference offsets may contain decimals we are not going to consider here\n if (a && Math.floor(data.offsets.reference[placement]) > Math.floor(popperOffsets[placementOpposite]) || !a && Math.floor(data.offsets.reference[placement]) < Math.floor(popperOffsets[placementOpposite])) {\n // we'll use this boolean to detect any flip loop\n data.flipped = true;\n data.placement = flipOrder[index + 1];\n if (variation) {\n data.placement += '-' + variation;\n }\n data.offsets.popper = this._getOffsets(this._popper, this._reference, data.placement).popper;\n\n data = this.runModifiers(data, this._options.modifiers, this._flip);\n }\n }.bind(this));\n return data;\n };\n\n /**\n * Modifier used to add an offset to the popper, useful if you more granularity positioning your popper.\n * The offsets will shift the popper on the side of its reference element.\n * @method\n * @memberof Popper.modifiers\n * @argument {Object} data - The data object generated by _update method\n * @returns {Object} The data object, properly modified\n */\n Popper.prototype.modifiers.offset = function (data) {\n var offset = this._options.offset;\n var popper = data.offsets.popper;\n\n if (data.placement.indexOf('left') !== -1) {\n popper.top -= offset;\n } else if (data.placement.indexOf('right') !== -1) {\n popper.top += offset;\n } else if (data.placement.indexOf('top') !== -1) {\n popper.left -= offset;\n } else if (data.placement.indexOf('bottom') !== -1) {\n popper.left += offset;\n }\n return data;\n };\n\n /**\n * Modifier used to move the arrows on the edge of the popper to make sure them are always between the popper and the reference element\n * It will use the CSS outer size of the arrow element to know how many pixels of conjuction are needed\n * @method\n * @memberof Popper.modifiers\n * @argument {Object} data - The data object generated by _update method\n * @returns {Object} The data object, properly modified\n */\n Popper.prototype.modifiers.arrow = function (data) {\n var arrow = this._options.arrowElement;\n var arrowOffset = this._options.arrowOffset;\n\n // if the arrowElement is a string, suppose it's a CSS selector\n if (typeof arrow === 'string') {\n arrow = this._popper.querySelector(arrow);\n }\n\n // if arrow element is not found, don't run the modifier\n if (!arrow) {\n return data;\n }\n\n // the arrow element must be child of its popper\n if (!this._popper.contains(arrow)) {\n console.warn('WARNING: `arrowElement` must be child of its popper element!');\n return data;\n }\n\n // arrow depends on keepTogether in order to work\n if (!this.isModifierRequired(this.modifiers.arrow, this.modifiers.keepTogether)) {\n console.warn('WARNING: keepTogether modifier is required by arrow modifier in order to work, be sure to include it before arrow!');\n return data;\n }\n\n var arrowStyle = {};\n var placement = data.placement.split('-')[0];\n var popper = getPopperClientRect(data.offsets.popper);\n var reference = data.offsets.reference;\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var side = isVertical ? 'top' : 'left';\n var translate = isVertical ? 'translateY' : 'translateX';\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowSize = getOuterSizes(arrow)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its reference have enough pixels in conjuction\n //\n\n // top/left side\n if (reference[opSide] - arrowSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowSize);\n }\n // bottom/right side\n if (reference[side] + arrowSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowSize - popper[opSide];\n }\n\n // compute center of the popper\n var center = reference[side] + (arrowOffset || reference[len] / 2 - arrowSize / 2);\n\n var sideValue = center - popper[side];\n\n // prevent arrow from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowSize - 8, sideValue), 8);\n arrowStyle[side] = sideValue;\n arrowStyle[altSide] = ''; // make sure to remove any old style from the arrow\n\n data.offsets.arrow = arrowStyle;\n data.arrowElement = arrow;\n\n return data;\n };\n\n //\n // Helpers\n //\n\n /**\n * Get the outer sizes of the given element (offset size + margins)\n * @function\n * @ignore\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\n function getOuterSizes(element) {\n // NOTE: 1 DOM access here\n var _display = element.style.display,\n _visibility = element.style.visibility;\n element.style.display = 'block';element.style.visibility = 'hidden';\n var calcWidthToForceRepaint = element.offsetWidth;\n\n // original method\n var styles = root.getComputedStyle(element);\n var x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);\n var y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);\n var result = { width: element.offsetWidth + y, height: element.offsetHeight + x };\n\n // reset element styles\n element.style.display = _display;element.style.visibility = _visibility;\n return result;\n }\n\n /**\n * Get the opposite placement of the given one/\n * @function\n * @ignore\n * @argument {String} placement\n * @returns {String} flipped placement\n */\n function getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n }\n\n /**\n * Given the popper offsets, generate an output similar to getBoundingClientRect\n * @function\n * @ignore\n * @argument {Object} popperOffsets\n * @returns {Object} ClientRect like output\n */\n function getPopperClientRect(popperOffsets) {\n var offsets = Object.assign({}, popperOffsets);\n offsets.right = offsets.left + offsets.width;\n offsets.bottom = offsets.top + offsets.height;\n return offsets;\n }\n\n /**\n * Given an array and the key to find, returns its index\n * @function\n * @ignore\n * @argument {Array} arr\n * @argument keyToFind\n * @returns index or null\n */\n function getArrayKeyIndex(arr, keyToFind) {\n var i = 0,\n key;\n for (key in arr) {\n if (arr[key] === keyToFind) {\n return i;\n }\n i++;\n }\n return null;\n }\n\n /**\n * Get CSS computed property of the given element\n * @function\n * @ignore\n * @argument {Eement} element\n * @argument {String} property\n */\n function getStyleComputedProperty(element, property) {\n // NOTE: 1 DOM access here\n var css = root.getComputedStyle(element, null);\n return css[property];\n }\n\n /**\n * Returns the offset parent of the given element\n * @function\n * @ignore\n * @argument {Element} element\n * @returns {Element} offset parent\n */\n function getOffsetParent(element) {\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent;\n return offsetParent === root.document.body || !offsetParent ? root.document.documentElement : offsetParent;\n }\n\n /**\n * Returns the scrolling parent of the given element\n * @function\n * @ignore\n * @argument {Element} element\n * @returns {Element} offset parent\n */\n function getScrollParent(element) {\n var parent = element.parentNode;\n\n if (!parent) {\n return element;\n }\n\n if (parent === root.document) {\n // Firefox puts the scrollTOp value on `documentElement` instead of `body`, we then check which of them is\n // greater than 0 and return the proper element\n if (root.document.body.scrollTop || root.document.body.scrollLeft) {\n return root.document.body;\n } else {\n return root.document.documentElement;\n }\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n if (['scroll', 'auto'].indexOf(getStyleComputedProperty(parent, 'overflow')) !== -1 || ['scroll', 'auto'].indexOf(getStyleComputedProperty(parent, 'overflow-x')) !== -1 || ['scroll', 'auto'].indexOf(getStyleComputedProperty(parent, 'overflow-y')) !== -1) {\n // If the detected scrollParent is body, we perform an additional check on its parentNode\n // in this way we'll get body if the browser is Chrome-ish, or documentElement otherwise\n // fixes issue #65\n return parent;\n }\n return getScrollParent(element.parentNode);\n }\n\n /**\n * Check if the given element is fixed or is inside a fixed parent\n * @function\n * @ignore\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\n function isFixed(element) {\n if (element === root.document.body) {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n return element.parentNode ? isFixed(element.parentNode) : element;\n }\n\n /**\n * Set the style to the given popper\n * @function\n * @ignore\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles - Object with a list of properties and values which will be applied to the element\n */\n function setStyle(element, styles) {\n function is_numeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n }\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && is_numeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n }\n\n /**\n * Check if the given variable is a function\n * @function\n * @ignore\n * @argument {*} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\n function isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n }\n\n /**\n * Get the position of the given element, relative to its offset parent\n * @function\n * @ignore\n * @param {Element} element\n * @return {Object} position - Coordinates of the element and its `scrollTop`\n */\n function getOffsetRect(element) {\n var elementRect = {\n width: element.offsetWidth,\n height: element.offsetHeight,\n left: element.offsetLeft,\n top: element.offsetTop\n };\n\n elementRect.right = elementRect.left + elementRect.width;\n elementRect.bottom = elementRect.top + elementRect.height;\n\n // position\n return elementRect;\n }\n\n /**\n * Get bounding client rect of given element\n * @function\n * @ignore\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\n function getBoundingClientRect(element) {\n var rect = element.getBoundingClientRect();\n\n // whether the IE version is lower than 11\n var isIE = navigator.userAgent.indexOf(\"MSIE\") != -1;\n\n // fix ie document bounding top always 0 bug\n var rectTop = isIE && element.tagName === 'HTML' ? -element.scrollTop : rect.top;\n\n return {\n left: rect.left,\n top: rectTop,\n right: rect.right,\n bottom: rect.bottom,\n width: rect.right - rect.left,\n height: rect.bottom - rectTop\n };\n }\n\n /**\n * Given an element and one of its parents, return the offset\n * @function\n * @ignore\n * @param {HTMLElement} element\n * @param {HTMLElement} parent\n * @return {Object} rect\n */\n function getOffsetRectRelativeToCustomParent(element, parent, fixed) {\n var elementRect = getBoundingClientRect(element);\n var parentRect = getBoundingClientRect(parent);\n\n if (fixed) {\n var scrollParent = getScrollParent(parent);\n parentRect.top += scrollParent.scrollTop;\n parentRect.bottom += scrollParent.scrollTop;\n parentRect.left += scrollParent.scrollLeft;\n parentRect.right += scrollParent.scrollLeft;\n }\n\n var rect = {\n top: elementRect.top - parentRect.top,\n left: elementRect.left - parentRect.left,\n bottom: elementRect.top - parentRect.top + elementRect.height,\n right: elementRect.left - parentRect.left + elementRect.width,\n width: elementRect.width,\n height: elementRect.height\n };\n return rect;\n }\n\n /**\n * Get the prefixed supported property name\n * @function\n * @ignore\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase)\n */\n function getSupportedPropertyName(property) {\n var prefixes = ['', 'ms', 'webkit', 'moz', 'o'];\n\n for (var i = 0; i < prefixes.length; i++) {\n var toCheck = prefixes[i] ? prefixes[i] + property.charAt(0).toUpperCase() + property.slice(1) : property;\n if (typeof root.document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n }\n\n /**\n * The Object.assign() method is used to copy the values of all enumerable own properties from one or more source\n * objects to a target object. It will return the target object.\n * This polyfill doesn't support symbol properties, since ES5 doesn't have symbols anyway\n * Source: https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n * @function\n * @ignore\n */\n if (!Object.assign) {\n Object.defineProperty(Object, 'assign', {\n enumerable: false,\n configurable: true,\n writable: true,\n value: function value(target) {\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert first argument to object');\n }\n\n var to = Object(target);\n for (var i = 1; i < arguments.length; i++) {\n var nextSource = arguments[i];\n if (nextSource === undefined || nextSource === null) {\n continue;\n }\n nextSource = Object(nextSource);\n\n var keysArray = Object.keys(nextSource);\n for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex++) {\n var nextKey = keysArray[nextIndex];\n var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n return to;\n }\n });\n }\n\n return Popper;\n});","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","require('./es6.array.iterator');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar TO_STRING_TAG = require('./_wks')('toStringTag');\n\nvar DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +\n 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +\n 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +\n 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +\n 'TextTrackList,TouchList').split(',');\n\nfor (var i = 0; i < DOMIterables.length; i++) {\n var NAME = DOMIterables[i];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\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 = require('./_iter-define')(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","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toObject = require('./_to-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $GOPS = require('./_object-gops');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n $GOPS.f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });\n\n$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return $GOPS.f(toObject(it));\n }\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","'use strict';\n\nexports.__esModule = true;\n\nvar _locale = require('element-ui/lib/locale');\n\nexports.default = {\n methods: {\n t: function t() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _locale.t.apply(this, args);\n }\n }\n};","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array<Array>} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array<ResizeObserverSPI>}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the <html> itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element (<html>).\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array<ResizeObservation>}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map<Element, ResizeObservation>}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('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 = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').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","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (target) {\n for (var i = 1, j = arguments.length; i < j; i++) {\n var source = arguments[i] || {};\n for (var prop in source) {\n if (source.hasOwnProperty(prop)) {\n var value = source[prop];\n if (value !== undefined) {\n target[prop] = value;\n }\n }\n }\n }\n\n return target;\n};\n\n;","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nrequire('../../modules/es7.symbol.async-iterator');\nrequire('../../modules/es7.symbol.observable');\nmodule.exports = require('../../modules/_core').Symbol;\n","'use strict';\n\nexports.__esModule = true;\nexports.isEmpty = exports.isEqual = exports.arrayEquals = exports.looseEqual = exports.capitalize = exports.kebabCase = exports.autoprefixer = exports.isFirefox = exports.isEdge = exports.isIE = exports.coerceTruthyValueToArray = exports.arrayFind = exports.arrayFindIndex = exports.escapeRegexpString = exports.valueEquals = exports.generateId = exports.getValueByPath = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.noop = noop;\nexports.hasOwn = hasOwn;\nexports.toObject = toObject;\nexports.getPropByPath = getPropByPath;\nexports.rafThrottle = rafThrottle;\nexports.objToArray = objToArray;\n\nvar _vue = require('vue');\n\nvar _vue2 = _interopRequireDefault(_vue);\n\nvar _types = require('element-ui/lib/utils/types');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction noop() {};\n\nfunction hasOwn(obj, key) {\n return hasOwnProperty.call(obj, key);\n};\n\nfunction extend(to, _from) {\n for (var key in _from) {\n to[key] = _from[key];\n }\n return to;\n};\n\nfunction toObject(arr) {\n var res = {};\n for (var i = 0; i < arr.length; i++) {\n if (arr[i]) {\n extend(res, arr[i]);\n }\n }\n return res;\n};\n\nvar getValueByPath = exports.getValueByPath = function getValueByPath(object, prop) {\n prop = prop || '';\n var paths = prop.split('.');\n var current = object;\n var result = null;\n for (var i = 0, j = paths.length; i < j; i++) {\n var path = paths[i];\n if (!current) break;\n\n if (i === j - 1) {\n result = current[path];\n break;\n }\n current = current[path];\n }\n return result;\n};\n\nfunction getPropByPath(obj, path, strict) {\n var tempObj = obj;\n path = path.replace(/\\[(\\w+)\\]/g, '.$1');\n path = path.replace(/^\\./, '');\n\n var keyArr = path.split('.');\n var i = 0;\n for (var len = keyArr.length; i < len - 1; ++i) {\n if (!tempObj && !strict) break;\n var key = keyArr[i];\n if (key in tempObj) {\n tempObj = tempObj[key];\n } else {\n if (strict) {\n throw new Error('please transfer a valid prop path to form item!');\n }\n break;\n }\n }\n return {\n o: tempObj,\n k: keyArr[i],\n v: tempObj ? tempObj[keyArr[i]] : null\n };\n};\n\nvar generateId = exports.generateId = function generateId() {\n return Math.floor(Math.random() * 10000);\n};\n\nvar valueEquals = exports.valueEquals = function valueEquals(a, b) {\n // see: https://stackoverflow.com/questions/3115982/how-to-check-if-two-arrays-are-equal-with-javascript\n if (a === b) return true;\n if (!(a instanceof Array)) return false;\n if (!(b instanceof Array)) return false;\n if (a.length !== b.length) return false;\n for (var i = 0; i !== a.length; ++i) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n};\n\nvar escapeRegexpString = exports.escapeRegexpString = function escapeRegexpString() {\n var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n return String(value).replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&');\n};\n\n// TODO: use native Array.find, Array.findIndex when IE support is dropped\nvar arrayFindIndex = exports.arrayFindIndex = function arrayFindIndex(arr, pred) {\n for (var i = 0; i !== arr.length; ++i) {\n if (pred(arr[i])) {\n return i;\n }\n }\n return -1;\n};\n\nvar arrayFind = exports.arrayFind = function arrayFind(arr, pred) {\n var idx = arrayFindIndex(arr, pred);\n return idx !== -1 ? arr[idx] : undefined;\n};\n\n// coerce truthy value to array\nvar coerceTruthyValueToArray = exports.coerceTruthyValueToArray = function coerceTruthyValueToArray(val) {\n if (Array.isArray(val)) {\n return val;\n } else if (val) {\n return [val];\n } else {\n return [];\n }\n};\n\nvar isIE = exports.isIE = function isIE() {\n return !_vue2.default.prototype.$isServer && !isNaN(Number(document.documentMode));\n};\n\nvar isEdge = exports.isEdge = function isEdge() {\n return !_vue2.default.prototype.$isServer && navigator.userAgent.indexOf('Edge') > -1;\n};\n\nvar isFirefox = exports.isFirefox = function isFirefox() {\n return !_vue2.default.prototype.$isServer && !!window.navigator.userAgent.match(/firefox/i);\n};\n\nvar autoprefixer = exports.autoprefixer = function autoprefixer(style) {\n if ((typeof style === 'undefined' ? 'undefined' : _typeof(style)) !== 'object') return style;\n var rules = ['transform', 'transition', 'animation'];\n var prefixes = ['ms-', 'webkit-'];\n rules.forEach(function (rule) {\n var value = style[rule];\n if (rule && value) {\n prefixes.forEach(function (prefix) {\n style[prefix + rule] = value;\n });\n }\n });\n return style;\n};\n\nvar kebabCase = exports.kebabCase = function kebabCase(str) {\n var hyphenateRE = /([^-])([A-Z])/g;\n return str.replace(hyphenateRE, '$1-$2').replace(hyphenateRE, '$1-$2').toLowerCase();\n};\n\nvar capitalize = exports.capitalize = function capitalize(str) {\n if (!(0, _types.isString)(str)) return str;\n return str.charAt(0).toUpperCase() + str.slice(1);\n};\n\nvar looseEqual = exports.looseEqual = function looseEqual(a, b) {\n var isObjectA = (0, _types.isObject)(a);\n var isObjectB = (0, _types.isObject)(b);\n if (isObjectA && isObjectB) {\n return JSON.stringify(a) === JSON.stringify(b);\n } else if (!isObjectA && !isObjectB) {\n return String(a) === String(b);\n } else {\n return false;\n }\n};\n\nvar arrayEquals = exports.arrayEquals = function arrayEquals(arrayA, arrayB) {\n arrayA = arrayA || [];\n arrayB = arrayB || [];\n\n if (arrayA.length !== arrayB.length) {\n return false;\n }\n\n for (var i = 0; i < arrayA.length; i++) {\n if (!looseEqual(arrayA[i], arrayB[i])) {\n return false;\n }\n }\n\n return true;\n};\n\nvar isEqual = exports.isEqual = function isEqual(value1, value2) {\n if (Array.isArray(value1) && Array.isArray(value2)) {\n return arrayEquals(value1, value2);\n }\n return looseEqual(value1, value2);\n};\n\nvar isEmpty = exports.isEmpty = function isEmpty(val) {\n // null or undefined\n if (val == null) return true;\n\n if (typeof val === 'boolean') return false;\n\n if (typeof val === 'number') return !val;\n\n if (val instanceof Error) return val.message === '';\n\n switch (Object.prototype.toString.call(val)) {\n // String or Array\n case '[object String]':\n case '[object Array]':\n return !val.length;\n\n // Map or Set or File\n case '[object File]':\n case '[object Map]':\n case '[object Set]':\n {\n return !val.size;\n }\n // Plain Object\n case '[object Object]':\n {\n return !Object.keys(val).length;\n }\n }\n\n return false;\n};\n\nfunction rafThrottle(fn) {\n var locked = false;\n return function () {\n var _this = this;\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (locked) return;\n locked = true;\n window.requestAnimationFrame(function (_) {\n fn.apply(_this, args);\n locked = false;\n });\n };\n}\n\nfunction objToArray(obj) {\n if (Array.isArray(obj)) {\n return obj;\n }\n return isEmpty(obj) ? [] : [obj];\n}","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? 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","module.exports = {};\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('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 * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\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","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var toInteger = require('./_to-integer');\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","'use strict';\n\nexports.__esModule = true;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.default = function (Vue) {\n\n /**\n * template\n *\n * @param {String} string\n * @param {Array} ...args\n * @return {String}\n */\n\n function template(string) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (args.length === 1 && _typeof(args[0]) === 'object') {\n args = args[0];\n }\n\n if (!args || !args.hasOwnProperty) {\n args = {};\n }\n\n return string.replace(RE_NARGS, function (match, prefix, i, index) {\n var result = void 0;\n\n if (string[index - 1] === '{' && string[index + match.length] === '}') {\n return i;\n } else {\n result = (0, _util.hasOwn)(args, i) ? args[i] : null;\n if (result === null || result === undefined) {\n return '';\n }\n\n return result;\n }\n });\n }\n\n return template;\n};\n\nvar _util = require('element-ui/lib/utils/util');\n\nvar RE_NARGS = /(%|)\\{([0-9a-zA-Z_]+)\\}/g;\n/**\n * String format template\n * - Inspired:\n * https://github.com/Matt-Esch/string-template/index.js\n */","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\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","import _extends from 'babel-runtime/helpers/extends';\nimport _typeof from 'babel-runtime/helpers/typeof';\nvar formatRegExp = /%[sdj%]/g;\n\nexport var warning = function warning() {};\n\n// don't print warning message when in production env or node runtime\nif (process.env.NODE_ENV !== 'production' && typeof window !== 'undefined' && typeof document !== 'undefined') {\n warning = function warning(type, errors) {\n if (typeof console !== 'undefined' && console.warn) {\n if (errors.every(function (e) {\n return typeof e === 'string';\n })) {\n console.warn(type, errors);\n }\n }\n };\n}\n\nexport function format() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var i = 1;\n var f = args[0];\n var len = args.length;\n if (typeof f === 'function') {\n return f.apply(null, args.slice(1));\n }\n if (typeof f === 'string') {\n var str = String(f).replace(formatRegExp, function (x) {\n if (x === '%%') {\n return '%';\n }\n if (i >= len) {\n return x;\n }\n switch (x) {\n case '%s':\n return String(args[i++]);\n case '%d':\n return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n break;\n default:\n return x;\n }\n });\n for (var arg = args[i]; i < len; arg = args[++i]) {\n str += ' ' + arg;\n }\n return str;\n }\n return f;\n}\n\nfunction isNativeStringType(type) {\n return type === 'string' || type === 'url' || type === 'hex' || type === 'email' || type === 'pattern';\n}\n\nexport function isEmptyValue(value, type) {\n if (value === undefined || value === null) {\n return true;\n }\n if (type === 'array' && Array.isArray(value) && !value.length) {\n return true;\n }\n if (isNativeStringType(type) && typeof value === 'string' && !value) {\n return true;\n }\n return false;\n}\n\nexport function isEmptyObject(obj) {\n return Object.keys(obj).length === 0;\n}\n\nfunction asyncParallelArray(arr, func, callback) {\n var results = [];\n var total = 0;\n var arrLength = arr.length;\n\n function count(errors) {\n results.push.apply(results, errors);\n total++;\n if (total === arrLength) {\n callback(results);\n }\n }\n\n arr.forEach(function (a) {\n func(a, count);\n });\n}\n\nfunction asyncSerialArray(arr, func, callback) {\n var index = 0;\n var arrLength = arr.length;\n\n function next(errors) {\n if (errors && errors.length) {\n callback(errors);\n return;\n }\n var original = index;\n index = index + 1;\n if (original < arrLength) {\n func(arr[original], next);\n } else {\n callback([]);\n }\n }\n\n next([]);\n}\n\nfunction flattenObjArr(objArr) {\n var ret = [];\n Object.keys(objArr).forEach(function (k) {\n ret.push.apply(ret, objArr[k]);\n });\n return ret;\n}\n\nexport function asyncMap(objArr, option, func, callback) {\n if (option.first) {\n var flattenArr = flattenObjArr(objArr);\n return asyncSerialArray(flattenArr, func, callback);\n }\n var firstFields = option.firstFields || [];\n if (firstFields === true) {\n firstFields = Object.keys(objArr);\n }\n var objArrKeys = Object.keys(objArr);\n var objArrLength = objArrKeys.length;\n var total = 0;\n var results = [];\n var next = function next(errors) {\n results.push.apply(results, errors);\n total++;\n if (total === objArrLength) {\n callback(results);\n }\n };\n objArrKeys.forEach(function (key) {\n var arr = objArr[key];\n if (firstFields.indexOf(key) !== -1) {\n asyncSerialArray(arr, func, next);\n } else {\n asyncParallelArray(arr, func, next);\n }\n });\n}\n\nexport function complementError(rule) {\n return function (oe) {\n if (oe && oe.message) {\n oe.field = oe.field || rule.fullField;\n return oe;\n }\n return {\n message: oe,\n field: oe.field || rule.fullField\n };\n };\n}\n\nexport function deepMerge(target, source) {\n if (source) {\n for (var s in source) {\n if (source.hasOwnProperty(s)) {\n var value = source[s];\n if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && _typeof(target[s]) === 'object') {\n target[s] = _extends({}, target[s], value);\n } else {\n target[s] = value;\n }\n }\n }\n }\n return target;\n}","import * as util from '../util';\n\n/**\n * Rule for validating required fields.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param source The source object being validated.\n * @param errors An array of errors that this rule may add\n * validation errors to.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction required(rule, value, source, errors, options, type) {\n if (rule.required && (!source.hasOwnProperty(rule.field) || util.isEmptyValue(value, type || rule.type))) {\n errors.push(util.format(options.messages.required, rule.fullField));\n }\n}\n\nexport default required;","import * as util from '../util';\n\n/**\n * Rule for validating whitespace.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param source The source object being validated.\n * @param errors An array of errors that this rule may add\n * validation errors to.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction whitespace(rule, value, source, errors, options) {\n if (/^\\s+$/.test(value) || value === '') {\n errors.push(util.format(options.messages.whitespace, rule.fullField));\n }\n}\n\nexport default whitespace;","import _typeof from 'babel-runtime/helpers/typeof';\nimport * as util from '../util';\nimport required from './required';\n\n/* eslint max-len:0 */\n\nvar pattern = {\n // http://emailregex.com/\n email: /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/,\n url: new RegExp('^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\\\S+(?::\\\\S*)?@)?(?:(?:(?:[1-9]\\\\d?|1\\\\d\\\\d|2[01]\\\\d|22[0-3])(?:\\\\.(?:1?\\\\d{1,2}|2[0-4]\\\\d|25[0-5])){2}(?:\\\\.(?:[0-9]\\\\d?|1\\\\d\\\\d|2[0-4]\\\\d|25[0-4]))|(?:(?:[a-z\\\\u00a1-\\\\uffff0-9]+-?)*[a-z\\\\u00a1-\\\\uffff0-9]+)(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]+-?)*[a-z\\\\u00a1-\\\\uffff0-9]+)*(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,})))|localhost)(?::\\\\d{2,5})?(?:(/|\\\\?|#)[^\\\\s]*)?$', 'i'),\n hex: /^#?([a-f0-9]{6}|[a-f0-9]{3})$/i\n};\n\nvar types = {\n integer: function integer(value) {\n return types.number(value) && parseInt(value, 10) === value;\n },\n float: function float(value) {\n return types.number(value) && !types.integer(value);\n },\n array: function array(value) {\n return Array.isArray(value);\n },\n regexp: function regexp(value) {\n if (value instanceof RegExp) {\n return true;\n }\n try {\n return !!new RegExp(value);\n } catch (e) {\n return false;\n }\n },\n date: function date(value) {\n return typeof value.getTime === 'function' && typeof value.getMonth === 'function' && typeof value.getYear === 'function';\n },\n number: function number(value) {\n if (isNaN(value)) {\n return false;\n }\n return typeof value === 'number';\n },\n object: function object(value) {\n return (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && !types.array(value);\n },\n method: function method(value) {\n return typeof value === 'function';\n },\n email: function email(value) {\n return typeof value === 'string' && !!value.match(pattern.email) && value.length < 255;\n },\n url: function url(value) {\n return typeof value === 'string' && !!value.match(pattern.url);\n },\n hex: function hex(value) {\n return typeof value === 'string' && !!value.match(pattern.hex);\n }\n};\n\n/**\n * Rule for validating the type of a value.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param source The source object being validated.\n * @param errors An array of errors that this rule may add\n * validation errors to.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction type(rule, value, source, errors, options) {\n if (rule.required && value === undefined) {\n required(rule, value, source, errors, options);\n return;\n }\n var custom = ['integer', 'float', 'array', 'regexp', 'object', 'method', 'email', 'number', 'date', 'url', 'hex'];\n var ruleType = rule.type;\n if (custom.indexOf(ruleType) > -1) {\n if (!types[ruleType](value)) {\n errors.push(util.format(options.messages.types[ruleType], rule.fullField, rule.type));\n }\n // straight typeof check\n } else if (ruleType && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) !== rule.type) {\n errors.push(util.format(options.messages.types[ruleType], rule.fullField, rule.type));\n }\n}\n\nexport default type;","import * as util from '../util';\n\n/**\n * Rule for validating minimum and maximum allowed values.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param source The source object being validated.\n * @param errors An array of errors that this rule may add\n * validation errors to.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction range(rule, value, source, errors, options) {\n var len = typeof rule.len === 'number';\n var min = typeof rule.min === 'number';\n var max = typeof rule.max === 'number';\n // 正则匹配码点范围从U+010000一直到U+10FFFF的文字(补充平面Supplementary Plane)\n var spRegexp = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n var val = value;\n var key = null;\n var num = typeof value === 'number';\n var str = typeof value === 'string';\n var arr = Array.isArray(value);\n if (num) {\n key = 'number';\n } else if (str) {\n key = 'string';\n } else if (arr) {\n key = 'array';\n }\n // if the value is not of a supported type for range validation\n // the validation rule rule should use the\n // type property to also test for a particular type\n if (!key) {\n return false;\n }\n if (arr) {\n val = value.length;\n }\n if (str) {\n // 处理码点大于U+010000的文字length属性不准确的bug,如\"𠮷𠮷𠮷\".lenght !== 3\n val = value.replace(spRegexp, '_').length;\n }\n if (len) {\n if (val !== rule.len) {\n errors.push(util.format(options.messages[key].len, rule.fullField, rule.len));\n }\n } else if (min && !max && val < rule.min) {\n errors.push(util.format(options.messages[key].min, rule.fullField, rule.min));\n } else if (max && !min && val > rule.max) {\n errors.push(util.format(options.messages[key].max, rule.fullField, rule.max));\n } else if (min && max && (val < rule.min || val > rule.max)) {\n errors.push(util.format(options.messages[key].range, rule.fullField, rule.min, rule.max));\n }\n}\n\nexport default range;","import * as util from '../util';\nvar ENUM = 'enum';\n\n/**\n * Rule for validating a value exists in an enumerable list.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param source The source object being validated.\n * @param errors An array of errors that this rule may add\n * validation errors to.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction enumerable(rule, value, source, errors, options) {\n rule[ENUM] = Array.isArray(rule[ENUM]) ? rule[ENUM] : [];\n if (rule[ENUM].indexOf(value) === -1) {\n errors.push(util.format(options.messages[ENUM], rule.fullField, rule[ENUM].join(', ')));\n }\n}\n\nexport default enumerable;","import * as util from '../util';\n\n/**\n * Rule for validating a regular expression pattern.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param source The source object being validated.\n * @param errors An array of errors that this rule may add\n * validation errors to.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction pattern(rule, value, source, errors, options) {\n if (rule.pattern) {\n if (rule.pattern instanceof RegExp) {\n // if a RegExp instance is passed, reset `lastIndex` in case its `global`\n // flag is accidentally set to `true`, which in a validation scenario\n // is not necessary and the result might be misleading\n rule.pattern.lastIndex = 0;\n if (!rule.pattern.test(value)) {\n errors.push(util.format(options.messages.pattern.mismatch, rule.fullField, value, rule.pattern));\n }\n } else if (typeof rule.pattern === 'string') {\n var _pattern = new RegExp(rule.pattern);\n if (!_pattern.test(value)) {\n errors.push(util.format(options.messages.pattern.mismatch, rule.fullField, value, rule.pattern));\n }\n }\n }\n}\n\nexport default pattern;","import required from './required';\nimport whitespace from './whitespace';\nimport type from './type';\nimport range from './range';\nimport enumRule from './enum';\nimport pattern from './pattern';\n\nexport default {\n required: required,\n whitespace: whitespace,\n type: type,\n range: range,\n 'enum': enumRule,\n pattern: pattern\n};","import rules from '../rule/';\nimport { isEmptyValue } from '../util';\n\n/**\n * Performs validation for string types.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction string(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value, 'string') && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options, 'string');\n if (!isEmptyValue(value, 'string')) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n rules.pattern(rule, value, source, errors, options);\n if (rule.whitespace === true) {\n rules.whitespace(rule, value, source, errors, options);\n }\n }\n }\n callback(errors);\n}\n\nexport default string;","import rules from '../rule/';\nimport { isEmptyValue } from '../util';\n\n/**\n * Validates a function.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction method(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\nexport default method;","import rules from '../rule/';\nimport { isEmptyValue } from '../util';\n\n/**\n * Validates a number.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction number(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\nexport default number;","import { isEmptyValue } from '../util';\nimport rules from '../rule/';\n\n/**\n * Validates a boolean.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction boolean(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\nexport default boolean;","import rules from '../rule/';\nimport { isEmptyValue } from '../util';\n\n/**\n * Validates the regular expression type.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction regexp(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (!isEmptyValue(value)) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\nexport default regexp;","import rules from '../rule/';\nimport { isEmptyValue } from '../util';\n\n/**\n * Validates a number is an integer.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction integer(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\nexport default integer;","import rules from '../rule/';\nimport { isEmptyValue } from '../util';\n\n/**\n * Validates a number is a floating point number.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction floatFn(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\nexport default floatFn;","import rules from '../rule/';\nimport { isEmptyValue } from '../util';\n/**\n * Validates an array.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction array(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value, 'array') && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options, 'array');\n if (!isEmptyValue(value, 'array')) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\nexport default array;","import rules from '../rule/';\nimport { isEmptyValue } from '../util';\n\n/**\n * Validates an object.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction object(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\nexport default object;","import rules from '../rule/';\nimport { isEmptyValue } from '../util';\nvar ENUM = 'enum';\n\n/**\n * Validates an enumerable list.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction enumerable(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value) {\n rules[ENUM](rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\nexport default enumerable;","import rules from '../rule/';\nimport { isEmptyValue } from '../util';\n\n/**\n * Validates a regular expression pattern.\n *\n * Performs validation when a rule only contains\n * a pattern property but is not declared as a string type.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction pattern(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value, 'string') && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (!isEmptyValue(value, 'string')) {\n rules.pattern(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\nexport default pattern;","import rules from '../rule/';\nimport { isEmptyValue } from '../util';\n\nfunction date(rule, value, callback, source, options) {\n // console.log('integer rule called %j', rule);\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n // console.log('validate on %s value', value);\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (!isEmptyValue(value)) {\n var dateObject = void 0;\n\n if (typeof value === 'number') {\n dateObject = new Date(value);\n } else {\n dateObject = value;\n }\n\n rules.type(rule, dateObject, source, errors, options);\n if (dateObject) {\n rules.range(rule, dateObject.getTime(), source, errors, options);\n }\n }\n }\n callback(errors);\n}\n\nexport default date;","import _typeof from 'babel-runtime/helpers/typeof';\nimport rules from '../rule/';\n\nfunction required(rule, value, callback, source, options) {\n var errors = [];\n var type = Array.isArray(value) ? 'array' : typeof value === 'undefined' ? 'undefined' : _typeof(value);\n rules.required(rule, value, source, errors, options, type);\n callback(errors);\n}\n\nexport default required;","import rules from '../rule/';\nimport { isEmptyValue } from '../util';\n\nfunction type(rule, value, callback, source, options) {\n var ruleType = rule.type;\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value, ruleType) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options, ruleType);\n if (!isEmptyValue(value, ruleType)) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\nexport default type;","import string from './string';\nimport method from './method';\nimport number from './number';\nimport boolean from './boolean';\nimport regexp from './regexp';\nimport integer from './integer';\nimport float from './float';\nimport array from './array';\nimport object from './object';\nimport enumValidator from './enum';\nimport pattern from './pattern';\nimport date from './date';\nimport required from './required';\nimport type from './type';\n\nexport default {\n string: string,\n method: method,\n number: number,\n boolean: boolean,\n regexp: regexp,\n integer: integer,\n float: float,\n array: array,\n object: object,\n 'enum': enumValidator,\n pattern: pattern,\n date: date,\n url: type,\n hex: type,\n email: type,\n required: required\n};","export function newMessages() {\n return {\n 'default': 'Validation error on field %s',\n required: '%s is required',\n 'enum': '%s must be one of %s',\n whitespace: '%s cannot be empty',\n date: {\n format: '%s date %s is invalid for format %s',\n parse: '%s date could not be parsed, %s is invalid ',\n invalid: '%s date %s is invalid'\n },\n types: {\n string: '%s is not a %s',\n method: '%s is not a %s (function)',\n array: '%s is not an %s',\n object: '%s is not an %s',\n number: '%s is not a %s',\n date: '%s is not a %s',\n boolean: '%s is not a %s',\n integer: '%s is not an %s',\n float: '%s is not a %s',\n regexp: '%s is not a valid %s',\n email: '%s is not a valid %s',\n url: '%s is not a valid %s',\n hex: '%s is not a valid %s'\n },\n string: {\n len: '%s must be exactly %s characters',\n min: '%s must be at least %s characters',\n max: '%s cannot be longer than %s characters',\n range: '%s must be between %s and %s characters'\n },\n number: {\n len: '%s must equal %s',\n min: '%s cannot be less than %s',\n max: '%s cannot be greater than %s',\n range: '%s must be between %s and %s'\n },\n array: {\n len: '%s must be exactly %s in length',\n min: '%s cannot be less than %s in length',\n max: '%s cannot be greater than %s in length',\n range: '%s must be between %s and %s in length'\n },\n pattern: {\n mismatch: '%s value %s does not match pattern %s'\n },\n clone: function clone() {\n var cloned = JSON.parse(JSON.stringify(this));\n cloned.clone = this.clone;\n return cloned;\n }\n };\n}\n\nexport var messages = newMessages();","import _extends from 'babel-runtime/helpers/extends';\nimport _typeof from 'babel-runtime/helpers/typeof';\nimport { format, complementError, asyncMap, warning, deepMerge } from './util';\nimport validators from './validator/';\nimport { messages as defaultMessages, newMessages } from './messages';\n\n/**\n * Encapsulates a validation schema.\n *\n * @param descriptor An object declaring validation rules\n * for this schema.\n */\nfunction Schema(descriptor) {\n this.rules = null;\n this._messages = defaultMessages;\n this.define(descriptor);\n}\n\nSchema.prototype = {\n messages: function messages(_messages) {\n if (_messages) {\n this._messages = deepMerge(newMessages(), _messages);\n }\n return this._messages;\n },\n define: function define(rules) {\n if (!rules) {\n throw new Error('Cannot configure a schema with no rules');\n }\n if ((typeof rules === 'undefined' ? 'undefined' : _typeof(rules)) !== 'object' || Array.isArray(rules)) {\n throw new Error('Rules must be an object');\n }\n this.rules = {};\n var z = void 0;\n var item = void 0;\n for (z in rules) {\n if (rules.hasOwnProperty(z)) {\n item = rules[z];\n this.rules[z] = Array.isArray(item) ? item : [item];\n }\n }\n },\n validate: function validate(source_) {\n var _this = this;\n\n var o = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var oc = arguments[2];\n\n var source = source_;\n var options = o;\n var callback = oc;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n if (!this.rules || Object.keys(this.rules).length === 0) {\n if (callback) {\n callback();\n }\n return;\n }\n function complete(results) {\n var i = void 0;\n var field = void 0;\n var errors = [];\n var fields = {};\n\n function add(e) {\n if (Array.isArray(e)) {\n errors = errors.concat.apply(errors, e);\n } else {\n errors.push(e);\n }\n }\n\n for (i = 0; i < results.length; i++) {\n add(results[i]);\n }\n if (!errors.length) {\n errors = null;\n fields = null;\n } else {\n for (i = 0; i < errors.length; i++) {\n field = errors[i].field;\n fields[field] = fields[field] || [];\n fields[field].push(errors[i]);\n }\n }\n callback(errors, fields);\n }\n\n if (options.messages) {\n var messages = this.messages();\n if (messages === defaultMessages) {\n messages = newMessages();\n }\n deepMerge(messages, options.messages);\n options.messages = messages;\n } else {\n options.messages = this.messages();\n }\n var arr = void 0;\n var value = void 0;\n var series = {};\n var keys = options.keys || Object.keys(this.rules);\n keys.forEach(function (z) {\n arr = _this.rules[z];\n value = source[z];\n arr.forEach(function (r) {\n var rule = r;\n if (typeof rule.transform === 'function') {\n if (source === source_) {\n source = _extends({}, source);\n }\n value = source[z] = rule.transform(value);\n }\n if (typeof rule === 'function') {\n rule = {\n validator: rule\n };\n } else {\n rule = _extends({}, rule);\n }\n rule.validator = _this.getValidationMethod(rule);\n rule.field = z;\n rule.fullField = rule.fullField || z;\n rule.type = _this.getType(rule);\n if (!rule.validator) {\n return;\n }\n series[z] = series[z] || [];\n series[z].push({\n rule: rule,\n value: value,\n source: source,\n field: z\n });\n });\n });\n var errorFields = {};\n asyncMap(series, options, function (data, doIt) {\n var rule = data.rule;\n var deep = (rule.type === 'object' || rule.type === 'array') && (_typeof(rule.fields) === 'object' || _typeof(rule.defaultField) === 'object');\n deep = deep && (rule.required || !rule.required && data.value);\n rule.field = data.field;\n function addFullfield(key, schema) {\n return _extends({}, schema, {\n fullField: rule.fullField + '.' + key\n });\n }\n\n function cb() {\n var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n var errors = e;\n if (!Array.isArray(errors)) {\n errors = [errors];\n }\n if (errors.length) {\n warning('async-validator:', errors);\n }\n if (errors.length && rule.message) {\n errors = [].concat(rule.message);\n }\n\n errors = errors.map(complementError(rule));\n\n if (options.first && errors.length) {\n errorFields[rule.field] = 1;\n return doIt(errors);\n }\n if (!deep) {\n doIt(errors);\n } else {\n // if rule is required but the target object\n // does not exist fail at the rule level and don't\n // go deeper\n if (rule.required && !data.value) {\n if (rule.message) {\n errors = [].concat(rule.message).map(complementError(rule));\n } else if (options.error) {\n errors = [options.error(rule, format(options.messages.required, rule.field))];\n } else {\n errors = [];\n }\n return doIt(errors);\n }\n\n var fieldsSchema = {};\n if (rule.defaultField) {\n for (var k in data.value) {\n if (data.value.hasOwnProperty(k)) {\n fieldsSchema[k] = rule.defaultField;\n }\n }\n }\n fieldsSchema = _extends({}, fieldsSchema, data.rule.fields);\n for (var f in fieldsSchema) {\n if (fieldsSchema.hasOwnProperty(f)) {\n var fieldSchema = Array.isArray(fieldsSchema[f]) ? fieldsSchema[f] : [fieldsSchema[f]];\n fieldsSchema[f] = fieldSchema.map(addFullfield.bind(null, f));\n }\n }\n var schema = new Schema(fieldsSchema);\n schema.messages(options.messages);\n if (data.rule.options) {\n data.rule.options.messages = options.messages;\n data.rule.options.error = options.error;\n }\n schema.validate(data.value, data.rule.options || options, function (errs) {\n doIt(errs && errs.length ? errors.concat(errs) : errs);\n });\n }\n }\n\n var res = rule.validator(rule, data.value, cb, data.source, options);\n if (res && res.then) {\n res.then(function () {\n return cb();\n }, function (e) {\n return cb(e);\n });\n }\n }, function (results) {\n complete(results);\n });\n },\n getType: function getType(rule) {\n if (rule.type === undefined && rule.pattern instanceof RegExp) {\n rule.type = 'pattern';\n }\n if (typeof rule.validator !== 'function' && rule.type && !validators.hasOwnProperty(rule.type)) {\n throw new Error(format('Unknown rule type %s', rule.type));\n }\n return rule.type || 'string';\n },\n getValidationMethod: function getValidationMethod(rule) {\n if (typeof rule.validator === 'function') {\n return rule.validator;\n }\n var keys = Object.keys(rule);\n var messageIndex = keys.indexOf('message');\n if (messageIndex !== -1) {\n keys.splice(messageIndex, 1);\n }\n if (keys.length === 1 && keys[0] === 'required') {\n return validators.required;\n }\n return validators[this.getType(rule)] || false;\n }\n};\n\nSchema.register = function register(type, validator) {\n if (typeof validator !== 'function') {\n throw new Error('Cannot register a validator by type, validator is not a function');\n }\n validators[type] = validator;\n};\n\nSchema.messages = defaultMessages;\n\nexport default Schema;","module.exports = require(\"regenerator-runtime\");\n","'use strict';\n\nexports.__esModule = true;\nexports.isString = isString;\nexports.isObject = isObject;\nexports.isHtmlElement = isHtmlElement;\nfunction isString(obj) {\n return Object.prototype.toString.call(obj) === '[object String]';\n}\n\nfunction isObject(obj) {\n return Object.prototype.toString.call(obj) === '[object Object]';\n}\n\nfunction isHtmlElement(node) {\n return node && node.nodeType === Node.ELEMENT_NODE;\n}\n\nvar isFunction = exports.isFunction = function isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n};\n\nvar isUndefined = exports.isUndefined = function isUndefined(val) {\n return val === void 0;\n};\n\nvar isDefined = exports.isDefined = function isDefined(val) {\n return val !== undefined && val !== null;\n};","var core = require('./_core');\nvar global = require('./_global');\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: require('./_library') ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n","module.exports = require('./_hide');\n","!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define([],e):\"object\"==typeof exports?exports.VueBaiduMap=e():t.VueBaiduMap=e()}(this,function(){return function(t){function e(i){if(n[i])return n[i].exports;var o=n[i]={i:i,l:!1,exports:{}};return t[i].call(o.exports,o,o.exports,e),o.l=!0,o.exports}var n={};return e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,i){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:i})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,\"a\",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p=\"\",e(e.s=42)}([function(t,e){t.exports=function(t,e,n,i){var o,a=t=t||{},r=typeof t.default;\"object\"!==r&&\"function\"!==r||(o=t,a=t.default);var s=\"function\"==typeof a?a.options:a;if(e&&(s.render=e.render,s.staticRenderFns=e.staticRenderFns),n&&(s._scopeId=n),i){var l=s.computed||(s.computed={});Object.keys(i).forEach(function(t){var e=i[t];l[t]=function(){return e}})}return{esModule:o,exports:a,options:s}}},function(t,e,n){var i,o,a;!function(n,r){o=[t,e],i=r,void 0!==(a=\"function\"==typeof i?i.apply(e,o):i)&&(t.exports=a)}(0,function(t,e){\"use strict\";function n(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function i(){var t=this.unload,e=this.renderByParent,n=this.$parent;e&&n.reload(),t()}Object.defineProperty(e,\"__esModule\",{value:!0});var o={control:{unload:\"removeControl\"},layer:{unload:\"removeTileLayer\"},overlay:{unload:\"removeOverlay\"},contextMenu:{unload:\"removeContextMenu\"}},a=function t(e){return e.abstract||e.$el===e.$children[0].$el?t(e.$parent):e},r=function t(e){n(this,t),this.methods={ready:function(){var t=a(this.$parent),e=this.BMap=t.BMap,n=this.map=t.map;this.load(),this.$emit(\"ready\",{BMap:e,map:n})},transmitEvent:function(t){this.$emit(t.type.replace(/^on/,\"\"),t)},reload:function(){var t=this;this&&this.BMap&&this.$nextTick(function(){t.unload(),t.$nextTick(t.load)})},unload:function(){var t=this.map,n=this.originInstance;try{switch(e.type){case\"search\":return n.clearResults();case\"autoComplete\":case\"lushu\":return n.dispose();case\"markerClusterer\":return n.clearMarkers();default:t[o[e.type].unload](n)}}catch(t){}}},this.computed={renderByParent:function(){return this.$parent.preventChildrenRender}},this.mounted=function(){var t=a(this.$parent),e=t.map,n=this.ready;e?n():t.$on(\"ready\",n)},this.destroyed=i,this.beforeDestroy=i};e.default=function(t){return new r({type:t})},t.exports=e.default})},function(t,e,n){var i,o,a;!function(n,r){o=[e],i=r,void 0!==(a=\"function\"==typeof i?i.apply(e,o):i)&&(t.exports=a)}(0,function(t){\"use strict\";function e(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.lng,i=e.lat;return new t.Point(n,i)}function n(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.x,i=e.y;return new t.Pixel(n,i)}function i(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=n.sw,o=n.ne;return new t.Bounds(e(t,i),e(t,o))}function o(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.width,i=e.height;return new t.Size(n,i)}function a(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.url,i=e.size,a=e.opts,r=void 0===a?{}:a;return new t.Icon(n,o(t,i),{anchor:r.anchor&&o(t,r.anchor),imageSize:r.imageSize&&o(t,r.imageSize),imageOffset:r.imageOffset&&o(t,r.imageOffset),infoWindowAnchor:r.infoWindowAnchor&&o(t,r.infoWindowAnchor),printImageUrl:r.printImageUrl})}function r(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=n.content,a=n.opts;return new t.Label(i,{offset:a.offset&&o(t,a.offset),position:a.position&&e(t,a.position),enableMassClear:a.enableMassClear})}Object.defineProperty(t,\"__esModule\",{value:!0}),t.createPoint=e,t.createPixel=n,t.createBounds=i,t.createSize=o,t.createIcon=a,t.createLabel=r})},function(t,e){var n;n=function(){return this}();try{n=n||Function(\"return this\")()||(0,eval)(\"this\")}catch(t){\"object\"==typeof window&&(n=window)}t.exports=n},function(t,e,n){var i,o,a;!function(r,s){o=[t,e,n(41)],i=s,void 0!==(a=\"function\"==typeof i?i.apply(e,o):i)&&(t.exports=a)}(0,function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.default=function(t,e){var n=this,o=e||i.default[this.$options.name];o&&o.forEach(function(e){var i=\"on\"===e.slice(0,2),o=i?e.slice(2):e,a=n.$listeners[o];a&&t.addEventListener(e,a.fns)})};var i=function(t){return t&&t.__esModule?t:{default:t}}(n);t.exports=e.default})},function(t,e,n){var i,o,a;!function(r,s){o=[e,n(2)],i=s,void 0!==(a=\"function\"==typeof i?i.apply(e,o):i)&&(t.exports=a)}(0,function(t,e){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.getPosition=t.checkType=t.isPoint=void 0;var n=t.isPoint=function(t){return t.lng&&t.lat};t.checkType=function(t){return Object.prototype.toString.call(t).slice(8,-1)},t.getPosition=function(t,i){return n(i)?(0,e.createPoint)(t,i):i}})},function(t,e,n){var i=n(0)(n(71),null,null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(43),n(89),null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(44),n(87),null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(45),null,null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(46),n(94),null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(47),null,null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(48),null,null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(49),null,null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(50),null,null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(51),null,null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(52),null,null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(53),null,null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(54),null,null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(55),null,null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(56),null,null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(57),n(90),null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(58),null,null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(59),null,null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(60),n(97),null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(61),n(82),null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(62),n(95),null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(63),n(86),null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(64),null,null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(65),null,null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(66),n(83),null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(67),null,null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(68),n(96),null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(69),n(84),null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(70),null,null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(72),null,null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(73),n(91),null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(74),n(85),null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(75),n(93),null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(76),n(92),null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(77),n(88),null,null);t.exports=i.exports},function(t,e,n){var i,o,a;!function(n,r){o=[t,e],i=r,void 0!==(a=\"function\"==typeof i?i.apply(e,o):i)&&(t.exports=a)}(0,function(t,e){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.default={\"bm-map\":[\"click\",\"dblclick\",\"rightclick\",\"rightdblclick\",\"maptypechange\",\"mousemove\",\"mouseover\",\"mouseout\",\"movestart\",\"moving\",\"moveend\",\"zoomstart\",\"zoomend\",\"addoverlay\",\"addcontrol\",\"removecontrol\",\"removeoverlay\",\"clearoverlays\",\"dragstart\",\"dragging\",\"dragend\",\"addtilelayer\",\"removetilelayer\",\"load\",\"resize\",\"hotspotclick\",\"hotspotover\",\"hotspotout\",\"tilesloaded\",\"touchstart\",\"touchmove\",\"touchend\",\"longpress\"],\"bm-geolocation\":[\"locationSuccess\",\"locationError\"],\"bm-overview-map\":[\"viewchanged\",\"viewchanging\"],\"bm-marker\":[\"click\",\"dblclick\",\"mousedown\",\"mouseup\",\"mouseout\",\"mouseover\",\"remove\",\"infowindowclose\",\"infowindowopen\",\"dragstart\",\"dragging\",\"dragend\",\"rightclick\"],\"bm-polyline\":[\"click\",\"dblclick\",\"mousedown\",\"mouseup\",\"mouseout\",\"mouseover\",\"remove\",\"lineupdate\"],\"bm-polygon\":[\"click\",\"dblclick\",\"mousedown\",\"mouseup\",\"mouseout\",\"mouseover\",\"remove\",\"lineupdate\"],\"bm-circle\":[\"click\",\"dblclick\",\"mousedown\",\"mouseup\",\"mouseout\",\"mouseover\",\"remove\",\"lineupdate\"],\"bm-label\":[\"click\",\"dblclick\",\"mousedown\",\"mouseup\",\"mouseout\",\"mouseover\",\"remove\",\"rightclick\"],\"bm-info-window\":[\"close\",\"open\",\"maximize\",\"restore\",\"clickclose\"],\"bm-ground\":[\"click\",\"dblclick\"],\"bm-autocomplete\":[\"onconfirm\",\"onhighlight\"],\"bm-point-collection\":[\"click\",\"mouseover\",\"mouseout\"]},t.exports=e.default})},function(t,e,n){var i,o,a;!function(r,s){o=[e,n(24),n(25),n(17),n(14),n(13),n(15),n(12),n(11),n(9),n(16),n(10),n(32),n(34),n(35),n(6),n(28),n(29),n(31),n(30),n(33),n(8),n(7),n(38),n(39),n(40),n(37),n(36),n(22),n(23),n(27),n(26),n(21),n(20),n(19),n(18)],i=s,void 0!==(a=\"function\"==typeof i?i.apply(e,o):i)&&(t.exports=a)}(0,function(t,e,n,i,o,a,r,s,l,c,u,h,p,d,f,m,g,y,v,_,b,x,w,M,C,k,I,S,B,P,O,E,T,z,j,L){\"use strict\";function R(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(t,\"__esModule\",{value:!0}),t.BmlCurveLine=t.BmlHeatmap=t.BmlLushu=t.BmlMarkerClusterer=t.BmAutoComplete=t.BmBoundary=t.BmTraffic=t.BmTile=t.BmBus=t.BmDriving=t.BmWalking=t.BmTransit=t.BmLocalSearch=t.BmContextMenuItem=t.BmContextMenu=t.BmOverlay=t.BmInfoWindow=t.BmLabel=t.BmGround=t.BmCircle=t.BmPolygon=t.BmPolyline=t.BmPointCollection=t.BmMarker=t.BmControl=t.BmPanorama=t.BmCityList=t.BmCopyright=t.BmGeolocation=t.BmOverviewMap=t.BmMapType=t.BmNavigation=t.BmScale=t.BmView=t.BaiduMap=void 0;var A=R(e),$=R(n),F=R(i),W=R(o),N=R(a),D=R(r),Z=R(s),V=R(l),H=R(c),G=R(u),U=R(h),J=R(p),K=R(d),X=R(f),q=R(m),Q=R(g),Y=R(y),tt=R(v),et=R(_),nt=R(b),it=R(x),ot=R(w),at=R(M),rt=R(C),st=R(k),lt=R(I),ct=R(S),ut=R(B),ht=R(P),pt=R(O),dt=R(E),ft=R(T),mt=R(z),gt=R(j),yt=R(L);t.default={install:function(t,e){var n=e.ak;t.prototype._BMap=function(){return{ak:n}},t.component(\"baidu-map\",A.default),t.component(\"bm-view\",$.default),t.component(\"bm-scale\",F.default),t.component(\"bm-navigation\",W.default),t.component(\"bm-map-type\",N.default),t.component(\"bm-overview-map\",D.default),t.component(\"bm-geolocation\",Z.default),t.component(\"bm-copyright\",V.default),t.component(\"bm-city-list\",H.default),t.component(\"bm-panorama\",G.default),t.component(\"bm-control\",U.default),t.component(\"bm-marker\",J.default),t.component(\"bm-point-collection\",K.default),t.component(\"bm-polyline\",X.default),t.component(\"bm-polygon\",q.default),t.component(\"bm-circle\",Q.default),t.component(\"bm-ground\",Y.default),t.component(\"bm-label\",tt.default),t.component(\"bm-info-window\",et.default),t.component(\"bm-overlay\",nt.default),t.component(\"bm-context-menu\",it.default),t.component(\"bm-context-menu-item\",ot.default),t.component(\"bm-local-search\",at.default),t.component(\"bm-transit\",rt.default),t.component(\"bm-walking\",st.default),t.component(\"bm-driving\",lt.default),t.component(\"bm-bus\",ct.default),t.component(\"bm-tile\",ut.default),t.component(\"bm-traffic\",ht.default),t.component(\"bm-auto-complete\",dt.default),t.component(\"bm-boundary\",pt.default)}},t.BaiduMap=A.default,t.BmView=$.default,t.BmScale=F.default,t.BmNavigation=W.default,t.BmMapType=N.default,t.BmOverviewMap=D.default,t.BmGeolocation=Z.default,t.BmCopyright=V.default,t.BmCityList=H.default,t.BmPanorama=G.default,t.BmControl=U.default,t.BmMarker=J.default,t.BmPointCollection=K.default,t.BmPolyline=X.default,t.BmPolygon=q.default,t.BmCircle=Q.default,t.BmGround=Y.default,t.BmLabel=tt.default,t.BmInfoWindow=et.default,t.BmOverlay=nt.default,t.BmContextMenu=it.default,t.BmContextMenuItem=ot.default,t.BmLocalSearch=at.default,t.BmTransit=rt.default,t.BmWalking=st.default,t.BmDriving=lt.default,t.BmBus=ct.default,t.BmTile=ut.default,t.BmTraffic=ht.default,t.BmBoundary=pt.default,t.BmAutoComplete=dt.default,t.BmlMarkerClusterer=ft.default,t.BmlLushu=mt.default,t.BmlHeatmap=gt.default,t.BmlCurveLine=yt.default})},function(t,e,n){var i,o,a;!function(n,r){o=[t,e],i=r,void 0!==(a=\"function\"==typeof i?i.apply(e,o):i)&&(t.exports=a)}(0,function(t,e){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.default={name:\"bm-context-menu-item\",props:{callback:{type:Function,default:function(){}},text:{type:String},iconUrl:{type:String},id:{type:String},disabled:{type:Boolean},seperator:{type:Boolean}},methods:{reload:function(){this.$parent.map&&this.$parent.load()}},watch:{text:function(){this.reload()},iconUrl:function(){this.reload()},id:function(){this.reload()},disabled:function(){this.reload()},iseperator:function(){this.reload()},callback:function(){this.reload()}},destroyed:function(){this.reload()},mounted:function(){this.reload()}},t.exports=e.default})},function(t,e,n){var i,o,a;!function(r,s){o=[t,e,n(1)],i=s,void 0!==(a=\"function\"==typeof i?i.apply(e,o):i)&&(t.exports=a)}(0,function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var i=function(t){return t&&t.__esModule?t:{default:t}}(n);e.default={name:\"bm-context-menu\",props:{width:{type:Number}},mixins:[(0,i.default)(\"contextMenu\")],methods:{load:function(){var t=this.width,e=this.BMap,n=this.map,i=this.$parent,o=this.parent=i.originInstance||n;this.originInstance&&o.removeContextMenu(this.originInstance);var a=this.originInstance=new e.ContextMenu,r=!0,s=!1,l=void 0;try{for(var c,u=this.$children[Symbol.iterator]();!(r=(c=u.next()).done);r=!0){(function(){var i=c.value;if(i.seperator)return a.addSeparator(),\"continue\";var r=new e.MenuItem(i.text,function(t,a){i.callback({point:t,pixel:a,BMap:e,map:n,target:o})},{width:t,id:i.id,iconUrl:i.iconUrl});i.disabled?r.disable():r.enable(),i.originInstance=r,a.addItem(r)})()}}catch(t){s=!0,l=t}finally{try{!r&&u.return&&u.return()}finally{if(s)throw l}}o.addContextMenu(a)}}},t.exports=e.default})},function(t,e,n){(function(i){var o,a,r;!function(i,s){a=[t,e,n(1),n(2)],o=s,void 0!==(r=\"function\"==typeof o?o.apply(e,a):o)&&(t.exports=r)}(0,function(t,e,n,o){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var a=function(t){return t&&t.__esModule?t:{default:t}}(n);e.default={name:\"bm-city-list\",render:function(){},mixins:[(0,a.default)(\"control\")],props:{anchor:{type:String},offset:{type:Object}},watch:{anchor:function(){this.reload()},offset:function(){this.reload()}},methods:{load:function(){var t=this.BMap,e=this.map,n=this.anchor,a=this.offset,r=this;this.originInstance=new t.CityListControl({anchor:i[n],offset:a&&(0,o.createSize)(t,a),onChangeBefore:function(){r.$emit(\"changeBefore\")},onChangeAfter:function(){r.$emit(\"changeAfter\")}}),e.addControl(this.originInstance)}}},t.exports=e.default})}).call(e,n(3))},function(t,e,n){(function(i){var o,a,r;!function(i,s){a=[t,e,n(1),n(2)],o=s,void 0!==(r=\"function\"==typeof o?o.apply(e,a):o)&&(t.exports=r)}(0,function(t,e,n,o){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var a=function(t){return t&&t.__esModule?t:{default:t}}(n);e.default={name:\"bm-control\",mixins:[(0,a.default)(\"control\")],props:[\"anchor\",\"offset\"],watch:{anchor:function(t){this.originInstance.setAnchor(t)},offset:function(t){this.originInstance.setOffset(t)}},methods:{load:function(){var t=this.BMap,e=this.map,n=this.anchor,a=this.offset,r=this.$el,s=function(){this.defaultAnchor=i[n||\"BMAP_ANCHOR_TOP_LEFT\"],this.defaultOffset=(0,o.createSize)(t,a)};s.prototype=new t.Control,s.prototype.initialize=function(t){return t.getContainer().appendChild(r)},this.originInstance=new s(n,a),e.addControl(this.originInstance)}}},t.exports=e.default})}).call(e,n(3))},function(t,e,n){(function(i){var o,a,r;!function(i,s){a=[t,e,n(1),n(2)],o=s,void 0!==(r=\"function\"==typeof o?o.apply(e,a):o)&&(t.exports=r)}(0,function(t,e,n,o){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var a=function(t){return t&&t.__esModule?t:{default:t}}(n);e.default={name:\"bm-copyright\",render:function(){},mixins:[(0,a.default)(\"control\")],props:[\"anchor\",\"offset\",\"copyright\"],watch:{anchor:function(){this.reload()},offset:function(){this.reload()},copyright:function(){this.reload()}},methods:{load:function(){var t=this.BMap,e=this.map,n=this.offset,a=this.anchor,r=this.updateCopyrightList;this.originInstance=new t.CopyrightControl({anchor:i[a],offset:n&&(0,o.createSize)(t,n)}),r(),e.addControl(this.originInstance)},updateCopyrightList:function(){var t=this,e=this.BMap,n=this.map,i=this.originInstance,o=i.removeCopyright,a=i.getCopyrightCollection,r=a();r&&r.forEach(function(t){o(t.id)}),this.copyright&&this.copyright.forEach(function(i){var o=i.bounds?new e.Bounds(new e.Point(i.bounds.sw.lng,i.bounds.sw.lat),new e.Point(i.bounds.ne.lng,i.bounds.ne.lat)):n.getBounds();t.originInstance.addCopyright({id:i.id,content:i.content,bounds:o}),t.originInstance.getCopyrightCollection()})}}},t.exports=e.default})}).call(e,n(3))},function(t,e,n){(function(i){var o,a,r;!function(i,s){a=[t,e,n(1),n(4),n(2)],o=s,void 0!==(r=\"function\"==typeof o?o.apply(e,a):o)&&(t.exports=r)}(0,function(t,e,n,o,a){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0});var s=r(n),l=r(o);e.default={name:\"bm-geolocation\",render:function(){},mixins:[(0,s.default)(\"control\")],props:{anchor:{type:String},offset:{type:Object},showAddressBar:{type:Boolean},autoLocation:{type:Boolean},locationIcon:{type:Object}},watch:{anchor:function(){this.reload()},offset:function(){this.reload()},showAddressBar:function(){this.reload()},autoLocation:function(){this.reload()},locationIcon:function(){this.reload()}},methods:{load:function(){var t=this.BMap,e=this.map,n=this.anchor,o=this.showAddressBar,r=this.autoLocation,s=this.locationIcon,c=this.offset;this.originInstance=new t.GeolocationControl({anchor:i[n],showAddressBar:o,enableAutoLocation:r,offset:c&&(0,a.createSize)(t,c),locationIcon:s&&(0,a.createIcon)(t,s)}),l.default.call(this,this.originInstance),e.addControl(this.originInstance)}}},t.exports=e.default})}).call(e,n(3))},function(t,e,n){(function(i){var o,a,r;!function(i,s){a=[t,e,n(1),n(2)],o=s,void 0!==(r=\"function\"==typeof o?o.apply(e,a):o)&&(t.exports=r)}(0,function(t,e,n,o){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var a=function(t){return t&&t.__esModule?t:{default:t}}(n);e.default={name:\"bm-map-type\",render:function(){},mixins:[(0,a.default)(\"control\")],props:[\"type\",\"mapTypes\",\"anchor\",\"offset\"],watch:{anchor:function(){this.reload()},offset:function(){this.reload()},type:function(){this.reload()},mapTypes:function(){this.reload()}},methods:{load:function(){var t=this.BMap,e=this.map,n=this.anchor,a=this.offset,r=this.type,s=[];this.mapTypes&&this.mapTypes.forEach(function(t){return s.push(i[t])}),this.originInstance=new t.MapTypeControl({anchor:i[n],offset:a&&(0,o.createSize)(t,a),type:i[r],mapTypes:s}),e.addControl(this.originInstance)}}},t.exports=e.default})}).call(e,n(3))},function(t,e,n){(function(i){var o,a,r;!function(i,s){a=[t,e,n(1),n(2)],o=s,void 0!==(r=\"function\"==typeof o?o.apply(e,a):o)&&(t.exports=r)}(0,function(t,e,n,o){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var a=function(t){return t&&t.__esModule?t:{default:t}}(n);e.default={name:\"bm-navigation\",render:function(){},mixins:[(0,a.default)(\"control\")],props:{anchor:{type:String},offset:{type:Object},type:{type:String},showZoomInfo:{type:Boolean},enableGeolocation:{type:Boolean,default:!1}},watch:{anchor:function(){this.reload()},offset:function(){this.reload()},type:function(){this.reload()},showZoomInfo:function(){this.reload()}},methods:{load:function(){var t=this.BMap,e=this.map,n=this.anchor,a=this.offset,r=this.type,s=this.showZoomInfo,l=this.enableGeolocation;this.originInstance=new t.NavigationControl({anchor:i[n],offset:a&&(0,o.createSize)(t,a),type:i[r],showZoomInfo:s,enableGeolocation:l}),e.addControl(this.originInstance)}}},t.exports=e.default})}).call(e,n(3))},function(t,e,n){(function(i){var o,a,r;!function(i,s){a=[t,e,n(2),n(1),n(4)],o=s,void 0!==(r=\"function\"==typeof o?o.apply(e,a):o)&&(t.exports=r)}(0,function(t,e,n,o,a){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0});var s=r(o),l=r(a);e.default={name:\"bm-overview-map\",mixins:[(0,s.default)(\"control\")],render:function(){},props:{anchor:{type:String},offset:{type:Object},size:{type:Object},isOpen:{type:Boolean}},watch:{anchor:function(){this.reload()},offset:function(){this.reload()},size:function(){this.reload()},isOpen:function(){this.reload()}},methods:{load:function(){var t=this.BMap,e=this.map,o=this.isOpen,a=this.size,r=this.offset,s=this.anchor,c=[];this.mapTypes&&this.mapTypes.forEach(function(t){c.push(i[t])}),this.originInstance=new t.OverviewMapControl({anchor:i[s],offset:(0,n.createSize)(t,r),size:(0,n.createSize)(t,a),isOpen:o}),l.default.call(this,this.originInstance),e.addControl(this.originInstance)}}},t.exports=e.default})}).call(e,n(3))},function(t,e,n){(function(i){var o,a,r;!function(i,s){a=[t,e,n(1),n(2)],o=s,void 0!==(r=\"function\"==typeof o?o.apply(e,a):o)&&(t.exports=r)}(0,function(t,e,n,o){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var a=function(t){return t&&t.__esModule?t:{default:t}}(n);e.default={name:\"bm-panorama\",mixins:[(0,a.default)(\"control\")],render:function(){},props:[\"anchor\",\"offset\"],watch:{anchor:function(){this.reload()},offset:function(){this.reload()}},methods:{load:function(){var t=this.BMap,e=this.map,n=this.anchor,a=this.offset;this.originInstance=new t.PanoramaControl({anchor:i[n],offset:a&&(0,o.createSize)(t,a)}),e.addControl(this.originInstance)}}},t.exports=e.default})}).call(e,n(3))},function(t,e,n){(function(i){var o,a,r;!function(i,s){a=[t,e,n(1),n(2)],o=s,void 0!==(r=\"function\"==typeof o?o.apply(e,a):o)&&(t.exports=r)}(0,function(t,e,n,o){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var a=function(t){return t&&t.__esModule?t:{default:t}}(n);e.default={name:\"bm-scale\",render:function(){},mixins:[(0,a.default)(\"control\")],props:{anchor:{type:String},offset:{type:Object}},watch:{anchor:function(){this.reload()},offset:function(){this.reload()}},methods:{load:function(){var t=this.BMap,e=this.map,n=this.anchor,a=this.offset;this.originInstance=new t.ScaleControl({anchor:i[n],offset:a&&(0,o.createSize)(t,a)}),e.addControl(this.originInstance)}}},t.exports=e.default})}).call(e,n(3))},function(t,e,n){var i,o,a;!function(r,s){o=[t,e,n(78),n(1),n(4),n(2)],i=s,void 0!==(a=\"function\"==typeof i?i.apply(e,o):i)&&(t.exports=a)}(0,function(t,e,n,i,o,a){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0});var s=r(n),l=r(i),c=r(o),u=[\"click\",\"dblclick\",\"mousedown\",\"mouseup\",\"mouseout\",\"mouseover\",\"remove\",\"lineupdate\"];e.default={name:\"bml-curve-line\",render:function(){},mixins:[(0,l.default)(\"overlay\")],props:{points:{type:Array,default:Array},strokeColor:{type:String},strokeWeight:{type:Number},strokeOpacity:{type:Number},strokeStyle:{type:String},massClear:{type:Boolean,default:!0},clicking:{type:Boolean,default:!0},editing:{type:Boolean,default:!1}},watch:{points:{handler:function(t,e){this.originInstance.disableEditing(),this.reload()},deep:!0},strokeColor:function(t){this.originInstance.setStrokeColor(t)},strokeOpacity:function(t){this.originInstance.setStrokeOpacity(t)},strokeWeight:function(t){this.originInstance.setStrokeWeight(t)},strokeStyle:function(t){this.originInstance.setStrokeStyle(t)},editing:function(t){t?this.originInstance.enableEditing():this.originInstance.disableEditing()},massClear:function(t){t?this.originInstance.enableMassClear():this.originInstance.disableMassClear()},clicking:function(t){this.reload()}},methods:{load:function(){var t=this.BMap,e=this.map,n=this.points,i=this.strokeColor,o=this.strokeWeight,r=this.strokeOpacity,l=this.strokeStyle,h=this.editing,p=this.massClear,d=this.clicking,f=new s.default(n.map(function(e){return(0,a.createPoint)(t,e)}),{strokeColor:i,strokeWeight:o,strokeOpacity:r,strokeStyle:l,enableMassClear:p,enableClicking:d});h?f.enableEditing():f.disableEditing(),this.originInstance=f,e.addOverlay(f),c.default.call(this,f,u)}}},t.exports=e.default})},function(t,e,n){var i,o,a;!function(r,s){o=[t,e,n(1),n(79)],i=s,void 0!==(a=\"function\"==typeof i?i.apply(e,o):i)&&(t.exports=a)}(0,function(t,e,n,i){\"use strict\";function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0});var a=o(n),r=o(i);e.default={name:\"bml-heatmap\",render:function(){},mixins:[(0,a.default)(\"overlay\")],props:{data:{type:Array,default:Array},max:{type:Number},radius:{type:Number},gradient:{type:Object},opacity:{type:Number}},watch:{data:{handler:function(){this.reload()},deep:!0},max:function(){this.reload()},radius:function(t){var e=this.originInstance,n=this.opacity,i=this.gradient;e.setOptions({radius:t,opacity:n,gradient:i})},gradient:{handler:function(t){var e=this.originInstance,n=this.radius,i=this.opacity;e.setOptions({radius:n,opacity:i,gradient:t})},deep:!0},opacity:function(t){var e=this.originInstance,n=this.radius,i=this.gradient;e.setOptions({radius:n,opacity:t,gradient:i})}},methods:{load:function(){var t=this.map,e=this.data,n=this.max,i=this.radius,o=this.opacity,a=this.gradient,s=this.originInstance=new r.default({radius:i,opacity:o,gradient:a});t.addOverlay(s),s.setDataSet({data:e,max:n})}}},t.exports=e.default})},function(t,e,n){var i,o,a;!function(r,s){o=[t,e,n(1),n(2),n(80)],i=s,void 0!==(a=\"function\"==typeof i?i.apply(e,o):i)&&(t.exports=a)}(0,function(t,e,n,i,o){\"use strict\";function a(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0});var r=a(n),s=a(o);e.default={name:\"bm-lushu\",render:function(t){},mixins:[(0,r.default)(\"lushu\")],props:{path:{type:Array,default:[]},landmarkPois:{type:Array,default:function(){return[]}},icon:{type:Object},speed:{type:Number,default:4e3},content:{type:String,default:\"\"},autoView:{type:Boolean,default:!1},rotation:{type:Boolean,default:!1},infoWindow:{type:Boolean,default:!0},play:{type:Boolean,default:!0}},watch:{path:{handler:function(t){this.reload()},deep:!0},landmarkPois:{handler:function(t){this.reload()},deep:!0},icon:{handler:function(t){var e=this.originInstance,n=(this.content,(0,i.createIcon)(BMap,t));e._opts.icon=n,e._marker=n},deep:!0},speed:function(t){var e=this.originInstance;this.content;e._opts.speed=t},content:function(t){var e=this.originInstance,n=this.infoWindow;t&&n?e.showInfoWindow():e.hideInfoWindow(),e._opts.defaultContent=t,e._overlay&&e._overlay.setHtml(t)},autoView:function(t){var e=this.originInstance;this.content;e._opts.autoView=t},rotation:function(t){var e=this.originInstance;this.content;e._opts.enableRotation=t},infoWindow:function(t){var e=this.originInstance,n=this.content;e&&t&&n?e.showInfoWindow():e.hideInfoWindow()},play:function(t){var e=this.originInstance;t&&e?e.start():!this._isEnd&&e.pause()}},methods:{load:function(){var t=this,e=this.BMap,n=this.map,o=this.path,a=this.landmarkPois,r=this.icon,l=this.speed,c=this.content,u=this.autoView,h=this.rotation,p=this.infoWindow,d=this.play,f=this.originInstance=new s.default(n,o,{enableRotation:h,landmarkPois:a,showInfoWindow:p,defaultContent:c,icon:r&&(0,i.createIcon)(e,r),speed:l,autoView:u,onstart:function(e){t._isEnd=!1,t.$emit(\"start\")},onstop:function(e){t._isEnd=!0,t.$emit(\"stop\")},onpause:function(e){return t.$emit(\"pause\")}});d&&o.length&&f.start(this),o.length&&(c&&p?f.showInfoWindow():f.hideInfoWindow())}}},t.exports=e.default})},function(t,e,n){var i,o,a;!function(r,s){o=[t,e,n(81),n(2),n(1)],i=s,void 0!==(a=\"function\"==typeof i?i.apply(e,o):i)&&(t.exports=a)}(0,function(t,e,n,i,o){\"use strict\";function a(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0});var r=a(n),s=a(o);e.default={name:\"bml-marker-clusterer\",mixins:[(0,s.default)(\"markerClusterer\")],props:{gridSize:{type:Object},maxZoom:{type:Number},minClusterSize:{type:Number},styles:{type:Array,default:function(){return[]}},averageCenter:{type:Boolean,default:!1}},watch:{gridSize:{handler:function(t){var e=this.BMap;this.originInstance.setGridSize(e,t.map)},deep:!0},maxZoom:function(t){this.originInstance.setMaxZoom(t)},minClusterSize:{handler:function(t){var e=this.BMap;this.originInstance.setMinClusterSize((0,i.createSize)(e,t))},deep:!0},styles:{handler:function(t){var e=this.BMap,n=this.originInstance,o=JSON.parse(JSON.stringify(t)).map(function(t){return t.size=t.size&&(0,i.createSize)(e,t.size),t});n.setStyles(o)},deep:!0},averageCenter:function(t){this.reload()}},methods:{load:function(){var t=this,e=this.BMap,n=this.map,o=this.gridSize,a=this.minClusterSize,s=this.maxZoom,l=this.styles,c=this.averageCenter;this.originInstance=new r.default(n,{gridSize:o&&(0,i.createSize)(e,o),maxZoom:s,minClusterSize:a&&(0,i.createSize)(e,a),styles:l.map(function(t){return t.size=(0,i.createSize)(e,t.size),t}),isAverageCenter:c}),this.$nextTick(function(){var n=t.$children.map(function(t){return t.originInstance}).filter(function(t){return t instanceof e.Marker});t.originInstance.addMarkers(n)})}},beforeCreate:function(){this.preventChildrenRender=!0}},t.exports=e.default})},function(t,e,n){var i,o,a;!function(r,s){o=[t,e,n(1),n(2)],i=s,void 0!==(a=\"function\"==typeof i?i.apply(e,o):i)&&(t.exports=a)}(0,function(t,e,n,i){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var o=function(t){return t&&t.__esModule?t:{default:t}}(n);e.default={name:\"bm-tile\",render:function(t){},mixins:[(0,o.default)(\"layer\")],props:{transparentPng:{type:Boolean},tileUrlTemplate:{type:String},copyright:{},zIndex:{type:Number}},watch:{transparentPng:function(){this.reload()},tileUrlTemplate:function(){this.reload()},copyright:function(){this.reload()},zIndex:function(){this.reload()}},methods:{load:function(){var t=this.BMap,e=this.map,n=this.transparentPng,o=this.tileUrlTemplate,a=this.copyright,r=this.zIndex;this.originInstance=new t.TileLayer({transparentPng:n,tileUrlTemplate:o,copyright:a&&{id:a.id,content:a.content,bounds:a.bounds&&(0,i.createBounds)(a.bounds)},zIndex:r}),e.addTileLayer(this.originInstance)}}},t.exports=e.default})},function(t,e,n){var i,o,a;!function(r,s){o=[t,e,n(1)],i=s,void 0!==(a=\"function\"==typeof i?i.apply(e,o):i)&&(t.exports=a)}(0,function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var i=function(t){return t&&t.__esModule?t:{default:t}}(n);e.default={name:\"bm-triffic\",render:function(t){},mixins:[(0,i.default)(\"layer\")],props:{predictDate:{type:Object}},watch:{\"pridictDate.weekday\":function(){this.reload()},\"pridictDate.hour\":function(){this.reload()},pridictDate:function(){this.reload()}},methods:{load:function(){var t=this.pridictDate,e=this.BMap,n=this.map;this.originInstance=new e.TrafficLayer({pridictDate:t}),n.addTileLayer(this.originInstance)}}},t.exports=e.default})},function(t,e,n){(function(i){var o,a,r;!function(i,s){a=[t,e,n(4),n(5)],o=s,void 0!==(r=\"function\"==typeof o?o.apply(e,a):o)&&(t.exports=r)}(0,function(t,e,n,o){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var a=function(t){return t&&t.__esModule?t:{default:t}}(n);e.default={name:\"bm-map\",props:{ak:{type:String},center:{type:[Object,String]},zoom:{type:Number},minZoom:{type:Number},maxZoom:{type:Number},highResolution:{type:Boolean,default:!0},mapClick:{type:Boolean,default:!0},mapType:{type:String},dragging:{type:Boolean,default:!0},scrollWheelZoom:{type:Boolean,default:!1},doubleClickZoom:{type:Boolean,default:!0},keyboard:{type:Boolean,default:!0},inertialDragging:{type:Boolean,default:!0},continuousZoom:{type:Boolean,default:!0},pinchToZoom:{type:Boolean,default:!0},autoResize:{type:Boolean,default:!0},theme:{type:Array},mapStyle:{type:Object}},watch:{center:function(t,e){var n=this.map,i=this.zoom;\"String\"===(0,o.checkType)(t)&&t!==e&&n.centerAndZoom(t,i)},\"center.lng\":function(t,e){var n=this.BMap,i=this.map,o=this.zoom,a=this.center;t!==e&&t>=-180&&t<=180&&i.centerAndZoom(new n.Point(t,a.lat),o)},\"center.lat\":function(t,e){var n=this.BMap,i=this.map,o=this.zoom,a=this.center;t!==e&&t>=-74&&t<=74&&i.centerAndZoom(new n.Point(a.lng,t),o)},zoom:function(t,e){var n=this.map;t!==e&&t>=3&&t<=19&&n.setZoom(t)},minZoom:function(t){this.map.setMinZoom(t)},maxZoom:function(t){this.map.setMaxZoom(t)},highResolution:function(){this.reset()},mapClick:function(){this.reset()},mapType:function(t){this.map.setMapType(i[t])},dragging:function(t){var e=this.map;t?e.enableDragging():e.disableDragging()},scrollWheelZoom:function(t){var e=this.map;t?e.enableScrollWheelZoom():e.disableScrollWheelZoom()},doubleClickZoom:function(t){var e=this.map;t?e.enableDoubleClickZoom():e.disableDoubleClickZoom()},keyboard:function(t){var e=this.map;t?e.enableKeyboard():e.disableKeyboard()},inertialDragging:function(t){var e=this.map;t?e.enableInertialDragging():e.disableInertialDragging()},continuousZoom:function(t){var e=this.map;t?e.enableContinuousZoom():e.disableContinuousZoom()},pinchToZoom:function(t){var e=this.map;t?e.enablePinchToZoom():e.disablePinchToZoom()},autoResize:function(t){var e=this.map;t?e.enableAutoResize():e.disableAutoResize()},theme:function(t){this.map.setMapStyle({styleJson:t})},\"mapStyle.features\":{handler:function(t,e){var n=this.map,i=this.mapStyle,o=i.style,a=i.styleJson;n.setMapStyle({styleJson:a,features:t,style:o})},deep:!0},\"mapStyle.style\":function(t,e){var n=this.map,i=this.mapStyle,o=i.features,a=i.styleJson;n.setMapStyle({styleJson:a,features:o,style:t})},\"mapStyle.styleJson\":{handler:function(t,e){var n=this.map,i=this.mapStyle,o=i.features,a=i.style;n.setMapStyle({styleJson:t,features:o,style:a})},deep:!0},mapStyle:function(t){var e=this.map;!this.theme&&e.setMapStyle(t)}},methods:{setMapOptions:function(){var t=this.map,e=this.minZoom,n=this.maxZoom,o=this.mapType,a=this.dragging,r=this.scrollWheelZoom,s=this.doubleClickZoom,l=this.keyboard,c=this.inertialDragging,u=this.continuousZoom,h=this.pinchToZoom,p=this.autoResize;e&&t.setMinZoom(e),n&&t.setMaxZoom(n),o&&t.setMapType(i[o]),a?t.enableDragging():t.disableDragging(),r?t.enableScrollWheelZoom():t.disableScrollWheelZoom(),s?t.enableDoubleClickZoom():t.disableDoubleClickZoom(),l?t.enableKeyboard():t.disableKeyboard(),c?t.enableInertialDragging():t.disableInertialDragging(),u?t.enableContinuousZoom():t.disableContinuousZoom(),h?t.enablePinchToZoom():t.disablePinchToZoom(),p?t.enableAutoResize():t.disableAutoResize()},init:function(t){if(!this.map){var e=this.$refs.view,n=!0,i=!1,o=void 0;try{for(var r,s=(this.$slots.default||[])[Symbol.iterator]();!(n=(r=s.next()).done);n=!0){var l=r.value;l.componentOptions&&\"bm-view\"===l.componentOptions.tag&&(this.hasBmView=!0,e=l.elm)}}catch(t){i=!0,o=t}finally{try{!n&&s.return&&s.return()}finally{if(i)throw o}}var c=new t.Map(e,{enableHighResolution:this.highResolution,enableMapClick:this.mapClick});this.map=c;var u=this.setMapOptions,h=this.zoom,p=this.getCenterPoint,d=this.theme,f=this.mapStyle;d?c.setMapStyle({styleJson:d}):c.setMapStyle(f),u(),a.default.call(this,c),c.reset(),c.centerAndZoom(p(),h),this.$emit(\"ready\",{BMap:t,map:c})}},getCenterPoint:function(){var t=this.center,e=this.BMap;switch((0,o.checkType)(t)){case\"String\":return t;case\"Object\":return new e.Point(t.lng,t.lat);default:return new e.Point}},initMap:function(t){this.BMap=t,this.init(t)},getMapScript:function(){if(i.BMap)return i.BMap._preloader?i.BMap._preloader:Promise.resolve(i.BMap);var t=this.ak||this._BMap().ak;return i.BMap={},i.BMap._preloader=new Promise(function(e,n){i._initBaiduMap=function(){e(i.BMap),i.document.body.removeChild(o),i.BMap._preloader=null,i._initBaiduMap=null};var o=document.createElement(\"script\");i.document.body.appendChild(o),o.src=\"https://api.map.baidu.com/api?v=2.0&ak=\"+t+\"&callback=_initBaiduMap\"}),i.BMap._preloader},reset:function(){var t=this.getMapScript,e=this.initMap;t().then(e)}},mounted:function(){this.reset()},data:function(){return{hasBmView:!1}}},t.exports=e.default})}).call(e,n(3))},function(t,e,n){var i,o,a;!function(n,r){o=[t,e],i=r,void 0!==(a=\"function\"==typeof i?i.apply(e,o):i)&&(t.exports=a)}(0,function(t,e){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.default={name:\"bm-view\"},t.exports=e.default})},function(t,e,n){var i,o,a;!function(r,s){o=[t,e,n(1),n(4)],i=s,void 0!==(a=\"function\"==typeof i?i.apply(e,o):i)&&(t.exports=a)}(0,function(t,e,n,i){\"use strict\";function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0});var a=o(n),r=o(i);e.default={name:\"bm-autocomplete\",mixins:[(0,a.default)()],props:{types:{type:String},location:{type:String},sugStyle:{type:Object,default:function(){return{}}}},watch:{types:function(){this.reload()},location:function(){this.reload()}},methods:{load:function(){var t=this,e=this.BMap,n=this.map,i=this.$el,o=this.types,a=this.location,s=this.sugStyle,l=i.querySelector(\"input\");l&&(this.originInstance=new e.Autocomplete({input:l,types:o,location:a||n,onSearchComplete:function(e){var n=document.querySelectorAll(\".tangram-suggestion-main\"),i=!0,o=!1,a=void 0;try{for(var r,l=n[Symbol.iterator]();!(i=(r=l.next()).done);i=!0){var c=r.value;for(var u in s)c.style[u]=s[u].toString()}}catch(t){o=!0,a=t}finally{try{!i&&l.return&&l.return()}finally{if(o)throw a}}t.$emit(\"searchcomplete\",e)}}),this.originInstance.addEventListener(\"onconfirm\",function(e){var n=e.item.value;t.$emit(\"input\",n.province+n.city+n.district+n.street+n.business)}),r.default.call(this,this.originInstance))}}},t.exports=e.default})},function(t,e,n){var i,o,a;!function(r,s){o=[t,e,n(6),n(1)],i=s,void 0!==(a=\"function\"==typeof i?i.apply(e,o):i)&&(t.exports=a)}(0,function(t,e,n,i){\"use strict\";function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0});var a=o(n),r=o(i),s=function(){function t(t,e){var n=[],i=!0,o=!1,a=void 0;try{for(var r,s=t[Symbol.iterator]();!(i=(r=s.next()).done)&&(n.push(r.value),!e||n.length!==e);i=!0);}catch(t){o=!0,a=t}finally{try{!i&&s.return&&s.return()}finally{if(o)throw a}}return n}return function(e,n){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,n);throw new TypeError(\"Invalid attempt to destructure non-iterable instance\")}}();e.default={mixins:[(0,r.default)(\"abstract\")],props:[\"name\",\"strokeColor\",\"strokeWeight\",\"strokeOpacity\",\"strokeStyle\",\"fillColor\",\"fillOpacity\",\"massClear\",\"clicking\"],data:function(){return{paths:[]}},components:{BmPolygon:a.default},watch:{name:function(){this.reload()}},methods:{load:function(){var t=this,e=this.BMap,n=this.name;(new e.Boundary).get(n,function(e){t.paths=e.boundaries.map(function(t){return(t||[]).split(\";\").map(function(t){return function(t){var e=s(t,2);return{lng:e[0],lat:e[1]}}(t.split(\",\").map(function(t){return+t}))})})})}}},t.exports=e.default})},function(t,e,n){var i,o,a;!function(r,s){o=[t,e,n(1),n(4),n(2)],i=s,void 0!==(a=\"function\"==typeof i?i.apply(e,o):i)&&(t.exports=a)}(0,function(t,e,n,i,o){\"use strict\";function a(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0});var r=a(n),s=a(i);e.default={name:\"bm-circle\",render:function(){},mixins:[(0,r.default)(\"overlay\")],props:{center:{},radius:{},strokeColor:{type:String},strokeWeight:{type:Number},strokeOpacity:{type:Number},strokeStyle:{type:String},fillColor:{type:String},fillOpacity:{type:Number},massClear:{type:Boolean,default:!0},clicking:{type:Boolean,default:!0},editing:{type:Boolean,default:!1}},watch:{\"center.lng\":function(t,e){var n=this.BMap,i=this.originInstance,a=this.isEditing,r=this.disableEditing,s=this.enableEditing,l=this.center,c=this.editing;if(!a){r();var u=t;t.toString()!==e.toString()&&u>=-180&&u<=180&&i.setCenter((0,o.createPoint)(n,{lng:u,lat:l.lat})),c&&s()}},\"center.lat\":function(t,e){var n=this.BMap,i=this.originInstance,a=this.isEditing,r=this.disableEditing,s=this.enableEditing,l=this.center,c=this.editing;if(!a){r();var u=t;t.toString()!==e.toString()&&u>=-74&&u<=74&&i.setCenter((0,o.createPoint)(n,{lng:l.lng,lat:u})),c&&s()}},radius:function(t,e){var n=this.originInstance,i=this.isEditing,o=this.disableEditing,a=this.enableEditing,r=this.editing;i||(o(),n.setRadius(t),r&&a())},strokeColor:function(t){this.originInstance.setStrokeColor(t)},strokeOpacity:function(t){this.originInstance.setStrokeOpacity(t)},strokeWeight:function(t){this.originInstance.setStrokeWeight(t)},strokeStyle:function(t){this.originInstance.setStrokeStyle(t)},fillColor:function(t){this.originInstance.setFillColor(t)},fillOpacity:function(t){this.originInstance.setFillOpacity(t)},editing:function(t){t?this.enableEditing():this.disableEditing()},massClear:function(t){t?this.originInstance.enableMassClear():this.originInstance.disableMassClear()},clicking:function(t){this.reload()}},methods:{dragStartHandler:function(){this.isEditing=!0},dragEndHandler:function(){this.isEditing=!1,this.bindEditingNodeEvents()},bindEditingNodeEvents:function(){var t=this.originInstance,e=this.editingKey,n=this.dragStartHandler,i=this.dragEndHandler;t[e].forEach(function(t){t.addEventListener(\"dragstart\",n),t.addEventListener(\"dragend\",i)})},enableEditing:function(){var t=this.originInstance,e=this.bindEditingNodeEvents;t.enableEditing(),e()},disableEditing:function(){this.originInstance.disableEditing()},getEditingKey:function(t){var e=this,n=[];t.enableEditing(),setTimeout(function(){for(var i in t)t[i]&&2===t[i].length&&n.push(i);t.disableEditing();for(var o in t)t[o]&&0===t[o].length&&~n.indexOf(o)&&(e.editingKey=o)},0)},load:function(){var t=this.BMap,e=this.map,n=this.center,i=this.radius,a=this.strokeColor,r=this.strokeWeight,l=this.strokeOpacity,c=this.strokeStyle,u=this.fillColor,h=this.fillOpacity,p=this.editing,d=this.massClear,f=this.clicking,m=this.enableEditing,g=this.disableEditing,y=this.getEditingKey,v=this.editingKey,_=new t.Circle((0,o.createPoint)(t,{lng:n.lng,lat:n.lat}),i,{strokeColor:a,strokeWeight:r,strokeOpacity:l,strokeStyle:c,fillColor:u,fillOpacity:h,enableMassClear:d,enableClicking:f});this.originInstance=_,e.addOverlay(_),s.default.call(this,_),!v&&y(_),setTimeout(function(){p?m():g()},0)}}},t.exports=e.default})},function(t,e,n){var i,o,a;!function(r,s){o=[t,e,n(1),n(4),n(2)],i=s,void 0!==(a=\"function\"==typeof i?i.apply(e,o):i)&&(t.exports=a)}(0,function(t,e,n,i,o){\"use strict\";function a(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0});var r=a(n),s=a(i);e.default={name:\"bm-ground\",render:function(){},mixins:[(0,r.default)(\"overlay\")],props:{bounds:{type:Object},opacity:{type:Number},imageURL:{type:String},displayOnMinLevel:{type:Number},displayOnMaxLevel:{type:Number}},watch:{bounds:{handler:function(t){var e=this.BMap;this.originInstance.setBounds((0,o.createBounds)(e,t))},deep:!0},opacity:function(t){this.originInstance.setOpacity(t)},imageURL:function(t){this.originInstance.setImageURL(t)},displayOnMinLevel:function(t){this.originInstance.setDisplayOnMinLevel(t)},displayOnMaxLevel:function(t){this.originInstance.setDisplayOnMaxLevel(t)}},methods:{load:function(){var t=this.BMap,e=this.map,n=this.bounds,i=this.opacity,a=this.imageURL,r=this.displayOnMinLevel,l=this.displayOnMaxLevel,c=new t.GroundOverlay(n&&(0,o.createBounds)(t,n),{opacity:i,imageURL:a,displayOnMaxLevel:l,displayOnMinLevel:r});c.setImageURL(a),this.originInstance=c,s.default.call(this,c),e.addOverlay(c)}}},t.exports=e.default})},function(t,e,n){(function(i){var o,a,r;!function(i,s){a=[t,e,n(1),n(4),n(2)],o=s,void 0!==(r=\"function\"==typeof o?o.apply(e,a):o)&&(t.exports=r)}(0,function(t,e,n,o,a){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0});var s=r(n),l=r(o);e.default={name:\"bm-info-window\",mixins:[(0,s.default)(\"overlay\")],props:{show:{type:Boolean},position:{type:Object},title:{type:String},width:{type:Number},height:{type:Number},maxWidth:{type:Number},offset:{type:Object},maximize:{type:Boolean},autoPan:{type:Boolean},closeOnClick:{type:Boolean,default:!0},message:{type:String}},watch:{show:function(t){t?this.openInfoWindow():this.closeInfoWindow()},\"position.lng\":function(t,e){this.reload()},\"position.lat\":function(t,e){this.reload()},\"offset.width\":function(t,e){this.reload()},\"offset.height\":function(t){this.reload()},maxWidth:function(){this.reload()},width:function(t){this.originInstance.setWidth(t)},height:function(t){this.originInstance.setHeight(t)},title:function(t){this.originInstance.setTitle(t)},maximize:function(t){t?this.originInstance.enableMaximize():this.originInstance.disableMaximize()},autoPan:function(t){t?this.originInstance.enableAutoPan():this.originInstance.disableAutoPan()},closeOnClick:function(t){t?this.originInstance.enableCloseOnClick():this.originInstance.disableCloseOnClick()}},methods:{redraw:function(){this.originInstance.redraw()},load:function(){var t=this.BMap,e=this.map,n=this.show,i=this.title,o=this.width,r=this.height,s=this.maxWidth,c=this.offset,u=this.autoPan,h=this.closeOnClick,p=this.message,d=this.maximize,f=this.bindObserver,m=this.$parent,g=this.$el,y=new t.InfoWindow(g,{width:o,height:r,title:i,maxWidth:s,offset:(0,a.createSize)(t,c),enableAutoPan:u,enableCloseOnClick:h,enableMessage:void 0===p,message:p});d?y.enableMaximize():y.disableMaximize(),l.default.call(this,y),this.originInstance=y,y.redraw(),[].forEach.call(g.querySelectorAll(\"img\"),function(t){t.onload=function(){return y.redraw()}}),f(),this.$container=m.originInstance&&m.originInstance.openInfoWindow?m.originInstance:e,n&&this.openInfoWindow()},bindObserver:function(){var t=i.MutationObserver;if(t){var e=this.$el,n=this.originInstance;this.observer=new t(function(t){return n.redraw()}),this.observer.observe(e,{attributes:!0,childList:!0,characterData:!0,subtree:!0})}},openInfoWindow:function(){var t=this.BMap,e=this.$container,n=this.position,i=this.originInstance;e.openInfoWindow(i,(0,a.createPoint)(t,n))},closeInfoWindow:function(){this.$container.closeInfoWindow(this.originInstance)}}},t.exports=e.default})}).call(e,n(3))},function(t,e,n){var i,o,a;!function(r,s){o=[t,e,n(1),n(4),n(2)],i=s,void 0!==(a=\"function\"==typeof i?i.apply(e,o):i)&&(t.exports=a)}(0,function(t,e,n,i,o){\"use strict\";function a(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0});var r=a(n),s=a(i);e.default={name:\"bm-label\",render:function(){},mixins:[(0,r.default)(\"overlay\")],props:{content:{type:String},title:{type:String},offset:{},position:{},labelStyle:{},zIndex:{type:Number,default:0},massClear:{type:Boolean,default:!0}},watch:{content:function(t){this.originInstance.setContent(t)},title:function(t){this.originInstance.setTitle(t)},\"offset.width\":function(t,e){var n=this.BMap;t.toString()!==e.toString()&&this.originInstance.setOffset((0,o.createSize)(n,{width:t,height:this.offset.height}))},\"offset.height\":function(t,e){var n=this.BMap;t.toString()!==e.toString()&&this.originInstance.setOffset((0,o.createSize)(n,{width:this.offset.width,height:t}))},\"position.lng\":function(t,e){var n=this.BMap,i=t;t.toString()!==e.toString()&&i>=-180&&i<=180&&this.originInstance.setCenter((0,o.createPoint)(n,{lng:i,lat:this.center.lat}))},\"position.lat\":function(t,e){var n=this.BMap,i=t;t.toString()!==e.toString()&&i>=-74&&i<=74&&this.originInstance.setCenter((0,o.createPoint)(n,{lng:this.center.lng,lat:i}))},labelStyle:{handler:function(t){this.originInstance.setStyle(t)},deep:!0},zIndex:function(t){this.originInstance.setZIndex(t)},massClear:function(t){t?this.originInstance.enableMassClear():this.originInstance.disableMassClear()}},methods:{load:function(){var t=this.BMap,e=this.map,n=this.content,i=this.title,a=this.offset,r=this.position,l=this.labelStyle,c=this.zIndex,u=this.massClear,h=this.$parent,p=new t.Label(n,{offset:(0,o.createSize)(t,a),position:(0,o.createPoint)(t,r),enableMassClear:u});this.originInstance=p;try{h.originInstance.setLabel(p)}catch(t){e.addOverlay(p)}i&&p.setTitle(i),l&&p.setStyle(l),c&&p.setZIndex(c),s.default.call(this,p)}}},t.exports=e.default})},function(t,e,n){(function(i){var o,a,r;!function(i,s){a=[t,e,n(1),n(4),n(2)],o=s,void 0!==(r=\"function\"==typeof o?o.apply(e,a):o)&&(t.exports=r)}(0,function(t,e,n,o,a){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0});var s=r(n),l=r(o);e.default={name:\"bm-marker\",mixins:[(0,s.default)(\"overlay\")],props:{position:{},offset:{},icon:{},massClear:{type:Boolean,default:!0},dragging:{type:Boolean,default:!1},clicking:{type:Boolean,default:!0},raiseOnDrag:{type:Boolean,default:!1},draggingCursor:{type:String},rotation:{type:Number},shadow:{type:Object},title:{type:String},label:{type:Object},animation:{type:String},top:{type:Boolean,default:!1},zIndex:{type:Number,default:0}},watch:{\"position.lng\":function(t,e){var n=this.BMap,i=this.originInstance,o=this.position,r=this.renderByParent,s=this.$parent;t!==e&&t>=-180&&t<=180&&i.setPosition((0,a.createPoint)(n,{lng:t,lat:o.lat})),r&&s.reload()},\"position.lat\":function(t,e){var n=this.BMap,i=this.originInstance,o=this.position,r=this.renderByParent,s=this.$parent;t!==e&&t>=-74&&t<=74&&i.setPosition((0,a.createPoint)(n,{lng:o.lng,lat:t})),r&&s.reload()},\"offset.width\":function(t,e){var n=this.BMap,i=this.originInstance;t!==e&&i.setOffset(new n.Size(t,this.offset.height))},\"offset.height\":function(t,e){var n=this.BMap,i=this.originInstance;t!==e&&i.setOffset(new n.Size(this.offset.width,t))},icon:{deep:!0,handler:function(t){var e=this.BMap,n=this.originInstance,i=this.rotation;n&&n.setIcon((0,a.createIcon)(e,t)),i&&n&&n.setRotation(i)}},massClear:function(t){t?this.originInstance.enableMassClear():this.originInstance.disableMassClear()},dragging:function(t){t?this.originInstance.enableDragging():this.originInstance.disableDragging()},clicking:function(){this.reload()},raiseOnDrag:function(){this.reload()},draggingCursor:function(t){this.originInstance.setDraggingCursor(t)},rotation:function(t){this.originInstance.setRotation(t)},shadow:function(t){this.originInstance.setShadow(t)},title:function(t){this.originInstance.setTitle(t)},label:function(t){this.reload()},animation:function(t){this.originInstance.setAnimation(i[t])},top:function(t){this.originInstance.setTop(t)},zIndex:function(t){this.originInstance.setZIndex(t)}},methods:{load:function(){var t=this.BMap,e=this.map,n=this.position,o=this.offset,r=this.icon,s=this.massClear,c=this.dragging,u=this.clicking,h=this.raiseOnDrag,p=this.draggingCursor,d=this.rotation,f=this.shadow,m=this.title,g=this.label,y=this.animation,v=this.top,_=this.renderByParent,b=this.$parent,x=this.zIndex,w=new t.Marker(new t.Point(n.lng,n.lat),{offset:o,icon:r&&(0,a.createIcon)(t,r),enableMassClear:s,enableDragging:c,enableClicking:u,raiseOnDrag:h,draggingCursor:p,rotation:d,shadow:f,title:m});this.originInstance=w,g&&w&&w.setLabel((0,a.createLabel)(t,g)),w.setTop(v),w.setZIndex(x),l.default.call(this,w),_?b.reload():e.addOverlay(w),w.setAnimation(i[y])}}},t.exports=e.default})}).call(e,n(3))},function(t,e,n){var i,o,a;!function(r,s){o=[t,e,n(1)],i=s,void 0!==(a=\"function\"==typeof i?i.apply(e,o):i)&&(t.exports=a)}(0,function(t,e,n){\"use strict\";function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!e||\"object\"!=typeof e&&\"function\"!=typeof e?t:e}function a(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,\"__esModule\",{value:!0});var r=function(t){return t&&t.__esModule?t:{default:t}}(n),s=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,\"value\"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}();e.default={name:\"bm-overlay\",mixins:[(0,r.default)(\"overlay\")],props:{pane:{type:String}},watch:{pane:function(){this.reload()}},methods:{load:function(){var t=this.BMap,e=this.map,n=this.$el,r=this.pane,l=this.$emit.bind(this),c=function(c){function u(){return i(this,u),o(this,(u.__proto__||Object.getPrototypeOf(u)).apply(this,arguments))}return a(u,c),s(u,[{key:\"initialize\",value:function(){l(\"initialize\",{BMap:t,map:e,el:n,overlay:this});try{e.getPanes()[r].appendChild(n)}catch(t){}return n}},{key:\"draw\",value:function(){l(\"draw\",{BMap:t,map:e,el:n,overlay:this})}}]),u}(t.Overlay),u=new c;this.originInstance=u,e.addOverlay(u)}}},t.exports=e.default})},function(t,e,n){(function(i){var o,a,r;!function(i,s){a=[t,e,n(1),n(4),n(2)],o=s,void 0!==(r=\"function\"==typeof o?o.apply(e,a):o)&&(t.exports=r)}(0,function(t,e,n,o,a){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0});var s=r(n),l=r(o);e.default={render:function(){},name:\"bm-point-collection\",mixins:[(0,s.default)(\"overlay\")],props:{points:{type:Array,default:function(){return[]}},shape:{type:String,default:\"BMAP_POINT_SHAPE_CIRCLE\"},color:{type:String},size:{type:String,default:\"BMAP_POINT_SIZE_NORMAL\"}},watch:{shape:function(t){var e=this.originInstance,n=this.color,o=this.size;e.setStyles({shape:i[t],color:n,size:i[o]})},size:function(t){var e=this.originInstance,n=this.color,o=this.shape;e.setStyles({shape:i[o],color:n,size:i[t]})},color:function(t){var e=this.originInstance,n=this.shape,o=this.size;e.setStyles({shape:i[n],color:t,size:i[o]})},points:{deep:!0,handler:function(t){var e=this.originInstance;e.clear(),e.setPoints(t)}}},methods:{load:function(){var t=this.BMap,e=this.map,n=this.points,o=this.shape,r=this.color,s=this.size,c=this.originInstance=new t.PointCollection(n.map(function(e){return(0,a.createPoint)(t,e)}),{shape:i[o],color:r,size:i[s]});l.default.call(this,c),e.addOverlay(c)}}},t.exports=e.default})}).call(e,n(3))},function(t,e,n){var i,o,a;!function(r,s){o=[t,e,n(1),n(4),n(2)],i=s,void 0!==(a=\"function\"==typeof i?i.apply(e,o):i)&&(t.exports=a)}(0,function(t,e,n,i,o){\"use strict\";function a(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0});var r=a(n),s=a(i);e.default={name:\"bm-polygon\",render:function(){},mixins:[(0,r.default)(\"overlay\")],props:{path:{type:Array,default:function(){return[]}},strokeColor:{type:String},strokeWeight:{type:Number},strokeOpacity:{type:Number},strokeStyle:{type:String},fillColor:{type:String},fillOpacity:{type:Number},massClear:{type:Boolean,default:!0},clicking:{type:Boolean,default:!0},editing:{type:Boolean,default:!1}},watch:{path:{handler:function(t,e){this.reload()},deep:!0},strokeColor:function(t){this.originInstance.setStrokeColor(t)},strokeOpacity:function(t){this.originInstance.setStrokeOpacity(t)},strokeWeight:function(t){this.originInstance.setStrokeWeight(t)},strokeStyle:function(t){this.originInstance.setStrokeStyle(t)},fillColor:function(t){this.originInstance.setFillColor(t)},fillOpacity:function(t){this.originInstance.setFillOpacity(t)},editing:function(t){t?this.originInstance.enableEditing():this.originInstance.disableEditing()},massClear:function(t){t?this.originInstance.enableMassClear():this.originInstance.disableMassClear()},clicking:function(t){this.reload()}},methods:{load:function(){var t=this.BMap,e=this.map,n=this.path,i=this.strokeColor,a=this.strokeWeight,r=this.strokeOpacity,l=this.strokeStyle,c=this.fillColor,u=this.fillOpacity,h=this.editing,p=this.massClear,d=this.clicking,f=new t.Polygon(n.map(function(e){return(0,o.createPoint)(t,{lng:e.lng,lat:e.lat})}),{strokeColor:i,strokeWeight:a,strokeOpacity:r,strokeStyle:l,fillColor:c,fillOpacity:u,enableMassClear:p,enableClicking:d});this.originInstance=f,e.addOverlay(f),s.default.call(this,f),h?f.enableEditing():f.disableEditing()}}},t.exports=e.default})},function(t,e,n){var i,o,a;!function(r,s){o=[t,e,n(1),n(4),n(2)],i=s,void 0!==(a=\"function\"==typeof i?i.apply(e,o):i)&&(t.exports=a)}(0,function(t,e,n,i,o){\"use strict\";function a(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0});var r=a(n),s=a(i);e.default={name:\"bm-polyline\",render:function(){},mixins:[(0,r.default)(\"overlay\")],props:{path:{type:Array},strokeColor:{type:String},strokeWeight:{type:Number},strokeOpacity:{type:Number},strokeStyle:{type:String},massClear:{type:Boolean,default:!0},clicking:{type:Boolean,default:!0},editing:{type:Boolean,default:!1}},watch:{path:{handler:function(t,e){this.reload()},deep:!0},strokeColor:function(t){this.originInstance.setStrokeColor(t)},strokeOpacity:function(t){this.originInstance.setStrokeOpacity(t)},strokeWeight:function(t){this.originInstance.setStrokeWeight(t)},strokeStyle:function(t){this.originInstance.setStrokeStyle(t)},editing:function(t){t?this.originInstance.enableEditing():this.originInstance.disableEditing()},massClear:function(t){t?this.originInstance.enableMassClear():this.originInstance.disableMassClear()},clicking:function(t){this.reload()}},methods:{load:function(){var t=this.BMap,e=this.map,n=this.path,i=this.strokeColor,a=this.strokeWeight,r=this.strokeOpacity,l=this.strokeStyle,c=this.editing,u=this.massClear,h=this.clicking,p=new t.Polyline(n.map(function(e){return(0,o.createPoint)(t,{lng:e.lng,lat:e.lat})}),{strokeColor:i,strokeWeight:a,strokeOpacity:r,strokeStyle:l,enableEditing:c,enableMassClear:u,enableClicking:h});this.originInstance=p,e.addOverlay(p),s.default.call(this,p)}}},t.exports=e.default})},function(t,e,n){var i,o,a;!function(r,s){o=[t,e,n(2),n(5),n(1)],i=s,void 0!==(a=\"function\"==typeof i?i.apply(e,o):i)&&(t.exports=a)}(0,function(t,e,n,i,o){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var a=function(t){return t&&t.__esModule?t:{default:t}}(o);e.default={name:\"bm-bus\",mixins:[(0,a.default)(\"search\")],props:{location:{type:[Object,String]},keyword:{type:String},panel:{type:Boolean,default:!0},pageCapacity:{type:Number},autoViewport:{type:Boolean},selectFirstResult:{type:Boolean}},watch:{location:{handler:function(t){var e=this.originInstance,n=this.map;e.setLocation(t||n)},deep:!0},keyword:function(t){this.search(t)},panel:function(){this.reload()},autoViewport:function(t){this.reload()},selectFirstResult:function(t){this.reload()}},methods:{search:function(t){this.originInstance.getBusList(t)},load:function(){var t=this,e=this.location,o=this.selectFirstResult,a=this.autoViewport,r=this.highlightMode,s=this.keyword,l=this.search,c=this.BMap,u=this.map,h=this.originInstance,p=e?(0,i.isPoint)(e)?(0,n.createPoint)(c,e):e:u,d=this.originInstance=new c.BusLineSearch(p,{renderOptions:{map:u,panel:this.$el,selectFirstResult:o,autoViewport:a,highlightMode:r},onGetBusListComplete:function(e){h&&h!==d&&h.clearResults(),t.$emit(\"getbuslistcomplete\",e)},onGetBusLineComplete:function(e){h&&h!==d&&h.clearResults(),t.$emit(\"getbuslinecomplete\",e)},onBusListHtmlSet:function(e){t.$emit(\"buslisthtmlset\",e)},onBusLineHtmlSet:function(e){t.$emit(\"buslinehtmlset\",e)},onMarkersSet:function(e){t.$emit(\"markersset\",e)},onPolylinesSet:function(e){t.$emit(\"polylinesset\",e)}});l(s)}}},t.exports=e.default})},function(t,e,n){(function(i){var o,a,r;!function(i,s){a=[t,e,n(2),n(5),n(1)],o=s,void 0!==(r=\"function\"==typeof o?o.apply(e,a):o)&&(t.exports=r)}(0,function(t,e,n,o,a){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var r=function(t){return t&&t.__esModule?t:{default:t}}(a);e.default={name:\"bm-driving\",mixins:[(0,r.default)(\"search\")],props:{location:{type:[Object,String]},start:{type:[Object,String]},end:{type:[Object,String]},startCity:{type:[String,Number]},endCity:{type:[String,Number]},waypoints:{type:Array},policy:{type:String},panel:{type:Boolean,default:!0},autoViewport:{type:Boolean},selectFirstResult:{type:Boolean}},watch:{location:{handler:function(t){var e=this.originInstance,n=this.map;e.setLocation(t||n)},deep:!0},start:{handler:function(t){var e=this.originInstance,n=this.end,i=this.startCity,a=this.endCity,r=this.waypoints,s=this.BMap,l=this.getWaypoints;e.search((0,o.getPosition)(s,t),(0,o.getPosition)(s,n),{startCity:i,endCity:a,waypoints:l(r)})},deep:!0},end:{handler:function(t){var e=this.originInstance,n=this.start,i=this.startCity,a=this.endCity,r=this.waypoints,s=this.BMap,l=this.getWaypoints;e.search((0,o.getPosition)(s,n),(0,o.getPosition)(s,t),{startCity:i,endCity:a,waypoints:l(r)})},deep:!0},startCity:function(t){var e=this.originInstance,n=this.start,i=this.end,o=this.endCity,a=this.waypoints,r=this.getWaypoints;e.search(n,i,{val:t,endCity:o,waypoints:r(a)})},endCity:function(t){var e=this.originInstance,n=this.start,i=this.end,o=this.startCity,a=this.waypoints,r=this.getWaypoints;e.search(n,i,{startCity:o,val:t,waypoints:r(a)})},waypoints:{handler:function(t){var e=this.originInstance,n=this.start,i=this.end,o=this.startCity,a=this.endCity,r=this.getWaypoints;e.search(n,i,{startCity:o,endCity:a,waypoints:r(t)})},deep:!0},panel:function(){this.reload()},policy:function(t){this.reload()},autoViewport:function(){this.reload()},selectFirstResult:function(){this.reload()},highlightMode:function(){this.reload()}},methods:{search:function(t,e,n){var i=n.startCity,o=n.endCity,a=n.waypoints,r=this.originInstance,s=this.getWaypoints;r.search(t,e,{startCity:i,endCity:o,waypoints:s(a)})},getWaypoints:function(t){var e=this.BMap;if(t)return t.map(function(t){return(0,o.getPosition)(e,t)})},load:function(){var t=this,e=this.map,a=this.BMap,r=this.location,s=this.policy,l=this.selectFirstResult,c=this.autoViewport,u=this.highlightMode,h=this.search,p=this.start,d=this.end,f=this.startCity,m=this.endCity,g=this.waypoints,y=this.originInstance,v=this.getWaypoints,_=r?(0,o.isPoint)(r)?(0,n.createPoint)(a,r):r:e,b=this.originInstance=new a.DrivingRoute(_,{renderOptions:{map:e,panel:this.$el,selectFirstResult:l,autoViewport:c,highlightMode:u},policy:i[s],onSearchComplete:function(e){y&&y!==b&&y.clearResults(),t.$emit(\"searchcomplete\",e)},onMarkersSet:function(e){t.$emit(\"markersset\",e)},onInfoHtmlSet:function(e){t.$emit(\"infohtmlset\",e)},onPolylinesSet:function(e){t.$emit(\"polylinesset\",e)},onResultsHtmlSet:function(e){t.$emit(\"resultshtmlset\",e)}});h((0,o.getPosition)(a,p),(0,o.getPosition)(a,d),{startCity:f,endCity:m,waypoints:v(g)})}}},t.exports=e.default})}).call(e,n(3))},function(t,e,n){var i,o,a;!function(r,s){o=[t,e,n(2),n(5),n(1)],i=s,void 0!==(a=\"function\"==typeof i?i.apply(e,o):i)&&(t.exports=a)}(0,function(t,e,n,i,o){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var a=function(t){return t&&t.__esModule?t:{default:t}}(o);e.default={name:\"bm-local-search\",mixins:[(0,a.default)(\"search\")],props:{location:{type:[Object,String]},keyword:{type:[Array,String]},panel:{type:Boolean,default:!0},forceLocal:{type:Boolean},customData:{type:Object},bounds:{type:Object},nearby:{type:Object},pageCapacity:{type:Number},autoViewport:{type:Boolean},selectFirstResult:{type:Boolean}},watch:{location:{handler:function(t){var e=this.originInstance,n=this.search;e.setLocation(t||this.map),n()},deep:!0},keyword:function(){this.search()},bounds:{handler:function(t){(0,this.searchInBounds)(t)},deep:!0},nearby:{handler:function(t){(0,this.searchNearby)(t)},deep:!0},forceLocal:function(){this.reload()},customData:{deep:!0,handler:function(){this.reload()}},pageCapacity:function(t){this.originInstance&&this.originInstance.setPageCapacity(t)},autoViewport:function(t){this.originInstance&&(t?this.originInstance.enableAutoViewport():this.originInstance.disableAutoViewport())},selectFirstResult:function(t){this.originInstance&&(t?this.originInstance.enableFirstResultSelection():this.originInstance.disableFirstResultSelection())},highlightMode:function(){this.reload()}},methods:{searchNearby:function(t){var e=this.originInstance,i=this.keyword,o=this.customData,a=this.BMap;e.searchNearby(i,(0,n.createPoint)(a,t.center),t.radius,o)},searchInBounds:function(t){var e=this.originInstance,i=this.keyword,o=this.customData,a=this.BMap;e.searchInBounds(i,(0,n.createBounds)(a,t),o)},search:function(){var t=this.originInstance,e=this.keyword,n=this.forceLocal,i=this.customData,o=this.nearby,a=this.bounds,r=this.searchNearby,s=this.searchInBounds;o?r(o):a?s(a):t.search(e,{forceLocal:n,customData:i})},load:function(){var t=this,e=this.map,o=this.BMap,a=this.search,r=this.pageCapacity,s=this.autoViewport,l=this.selectFirstResult,c=this.highlightMode,u=this.location,h=this.originInstance,p=u?(0,i.isPoint)(u)?(0,n.createPoint)(o,u):u:e,d=this.originInstance=new o.LocalSearch(p,{onMarkersSet:function(e){t.$emit(\"markersset\",e)},onInfoHtmlSet:function(e){t.$emit(\"infohtmlset\",e)},onResultsHtmlSet:function(e){t.$emit(\"resultshtmlset\",e)},onSearchComplete:function(e){h&&h!==d&&h.clearResults(),t.$emit(\"searchcomplete\",e)},pageCapacity:r,renderOptions:{map:e,panel:this.$el,selectFirstResult:l,autoViewport:s,highlightMode:c}});a()}}},t.exports=e.default})},function(t,e,n){(function(i){var o,a,r;!function(i,s){a=[t,e,n(2),n(5),n(1)],o=s,void 0!==(r=\"function\"==typeof o?o.apply(e,a):o)&&(t.exports=r)}(0,function(t,e,n,o,a){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var r=function(t){return t&&t.__esModule?t:{default:t}}(a);e.default={name:\"bm-transit\",mixins:[(0,r.default)(\"search\")],props:{location:{type:[Object,String]},start:{type:[Object,String]},end:{type:[Object,String]},panel:{type:Boolean,default:!0},policy:{type:String},pageCapacity:{type:Number},autoViewport:{type:Boolean},selectFirstResult:{type:Boolean}},watch:{location:{handler:function(t){var e=this.originInstance,n=this.map;e.setLocation(t||n)},deep:!0},start:{handler:function(t){var e=this.originInstance,n=this.end,i=this.BMap;e.search((0,o.getPosition)(i,t),(0,o.getPosition)(i,n))},deep:!0},end:{handler:function(t){var e=this.originInstance,n=this.start,i=this.BMap;e.search((0,o.getPosition)(i,n),(0,o.getPosition)(i,t))},deep:!0},panel:function(){this.reload()},policy:function(t){this.originInstance.setPolicy(i[t])},pageCapacity:function(t){this.originInstance&&this.originInstance.setPageCapacity(t)},autoViewport:function(t){this.originInstance&&(t?this.originInstance.enableAutoViewport():this.originInstance.disableAutoViewport())},selectFirstResult:function(){this.reload()},highlightMode:function(){this.reload()}},methods:{search:function(t,e){this.originInstance.search(t,e)},load:function(){var t=this,e=this.map,a=this.BMap,r=this.location,s=this.policy,l=this.pageCapacity,c=this.selectFirstResult,u=this.autoViewport,h=this.highlightMode,p=this.search,d=this.start,f=this.end,m=this.originInstance,g=r?(0,o.isPoint)(r)?(0,n.createPoint)(a,r):r:e,y=this.originInstance=new a.TransitRoute(g,{renderOptions:{map:e,panel:this.$el,selectFirstResult:c,autoViewport:u,highlightMode:h},policy:i[s],pageCapacity:l,onSearchComplete:function(e){m&&m!==y&&m.clearResults(),t.$emit(\"searchcomplete\",e)},onMarkersSet:function(e){t.$emit(\"markersset\",e)},onInfoHtmlSet:function(e){t.$emit(\"infohtmlset\",e)},onPolylinesSet:function(e){t.$emit(\"polylinesset\",e)},onResultsHtmlSet:function(e){t.$emit(\"resultshtmlset\",e)}});p((0,o.isPoint)(d)?(0,n.createPoint)(a,d):d,(0,o.isPoint)(f)?(0,n.createPoint)(a,f):f)}}},t.exports=e.default})}).call(e,n(3))},function(t,e,n){var i,o,a;!function(r,s){o=[t,e,n(2),n(5),n(1)],i=s,void 0!==(a=\"function\"==typeof i?i.apply(e,o):i)&&(t.exports=a)}(0,function(t,e,n,i,o){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var a=function(t){return t&&t.__esModule?t:{default:t}}(o);e.default={name:\"bm-walking\",mixins:[(0,a.default)(\"search\")],props:{location:{type:[Object,String]},start:{type:[Object,String]},end:{type:[Object,String]},panel:{type:Boolean,default:!0},pageCapacity:{type:Number},autoViewport:{type:Boolean},selectFirstResult:{type:Boolean}},watch:{location:{handler:function(t){var e=this.originInstance,n=this.map;e.setLocation(t||n)},deep:!0},start:{handler:function(t){var e=this.originInstance,n=this.end,o=this.BMap;e.search((0,i.getPosition)(o,t),(0,i.getPosition)(o,n))},deep:!0},end:{handler:function(t){var e=this.originInstance,n=this.start,o=this.BMap;e.search((0,i.getPosition)(o,n),(0,i.getPosition)(o,t))},deep:!0},panel:function(){this.reload()},autoViewport:function(t){this.reload()},selectFirstResult:function(t){this.reload()},highlightMode:function(){this.reload()}},methods:{search:function(t,e){this.originInstance.search(t,e)},load:function(){var t=this,e=this.map,o=this.BMap,a=this.location,r=this.selectFirstResult,s=this.autoViewport,l=this.highlightMode,c=this.search,u=this.start,h=this.end,p=this.originInstance,d=a?(0,i.isPoint)(a)?(0,n.createPoint)(o,a):a:e,f=this.originInstance=new o.WalkingRoute(d,{renderOptions:{map:e,panel:this.$el,selectFirstResult:r,autoViewport:s,highlightMode:l},onSearchComplete:function(e){p&&p!==f&&p.clearResults(),t.$emit(\"searchcomplete\",e)},onMarkersSet:function(e){t.$emit(\"markersset\",e)},onInfoHtmlSet:function(e){t.$emit(\"infohtmlset\",e)},onPolylinesSet:function(e){t.$emit(\"polylinesset\",e)},onResultsHtmlSet:function(e){t.$emit(\"resultshtmlset\",e)}});c((0,i.isPoint)(u)?(0,n.createPoint)(o,u):u,(0,i.isPoint)(h)?(0,n.createPoint)(o,h):h)}}},t.exports=e.default})},function(t,e,n){!function(e,n){t.exports=n()}(0,function(){function t(t,n){try{BMap}catch(t){throw Error(\"Baidu Map JS API is not ready yet!\")}var i=e(t),o=new BMap.Polyline(i,n);return o.addEventListener(\"lineupdate\",function(){this.isEditing&&this.enableEditing()}),o.cornerPoints=t,o.editMarkers=[],o.enableEditing=function(){var t=this;if(t.map){t.disableEditing();for(var n=0;n<t.cornerPoints.length;n++){var i=new BMap.Marker(t.cornerPoints[n],{icon:new BMap.Icon(\"http://api.map.baidu.com/library/CurveLine/1.5/src/circle.png\",new BMap.Size(16,16)),enableDragging:!0,raiseOnDrag:!0});i.addEventListener(\"dragend\",function(){t.cornerPoints.length=0;for(var n=0;n<t.editMarkers.length;n++)t.cornerPoints.push(t.editMarkers[n].getPosition());var i=e(t.cornerPoints);t.setPath(i)}),i.index=n,t.editMarkers.push(i),t.map.addOverlay(i)}}t.isEditing=!0},o.disableEditing=function(){this.isEditing=!1;for(var t=0;t<this.editMarkers.length;t++)this.map.removeOverlay(this.editMarkers[t]),this.editMarkers[t]=null;this.editMarkers.length=0},o.getPath=function(){return i},o}function e(t){for(var e=[],i=0;i<t.length-1;i++){var o=n(t[i],t[i+1]);o&&o.length>0&&(e=e.concat(o))}return e}function n(t,e){var n=[];if(!(t&&e&&t instanceof BMap.Point&&e instanceof BMap.Point))return null;var i,o,a,r,s,l,c=function(t){return 1-2*t+t*t},u=function(t){return 2*t-2*t*t},h=function(t){return t*t},p=0,d=0;if(void 0===e)return void(void 0!==n&&(n=[]));var f=parseFloat(t.lat),m=parseFloat(e.lat),g=parseFloat(t.lng),y=parseFloat(e.lng);for(y>g&&parseFloat(y-g)>180&&g<0&&(g=parseFloat(360+g)),g>y&&parseFloat(g-y)>180&&y<0&&(y=parseFloat(360+y)),0,l=0,m==f?(i=0,o=g-y):y==g?(i=Math.PI/2,o=f-m):(i=Math.atan((m-f)/(y-g)),o=(m-f)/Math.sin(i)),0==l&&(l=i+Math.PI/5),a=o/2,s=a*Math.cos(l)+g,r=a*Math.sin(l)+f,p=0;p<31;p++)n.push(new BMap.Point(g*c(d)+s*u(d)+y*h(d),f*c(d)+r*u(d)+m*h(d))),d+=1/30;return n}return t})},function(t,e,n){!function(e,n){t.exports=n()}(0,function(){function t(t,e,n){var i,o,a=t.prototype,r=new Function;r.prototype=e.prototype,o=t.prototype=new r;for(i in a)o[i]=a[i];t.prototype.constructor=t,t.superClass=e.prototype,\"string\"==typeof n&&(o._className=n)}var e=function(){var t=function(t){var e={data:[],heatmap:t};this.max=1,this.get=function(t){return e[t]},this.set=function(t,n){e[t]=n}};t.prototype={addDataPoint:function(t,e){if(!(t<0||e<0)){var n=this,i=n.get(\"heatmap\"),o=n.get(\"data\");if(o[t]||(o[t]=[]),o[t][e]||(o[t][e]=0),o[t][e]+=arguments.length<3?1:arguments[2],n.set(\"data\",o),n.max<o[t][e])return i.get(\"actx\").clearRect(0,0,i.get(\"width\"),i.get(\"height\")),void n.setDataSet({max:o[t][e],data:o},!0);i.drawAlpha(t,e,o[t][e],!0)}},setDataSet:function(t,e){var n=this,i=n.get(\"heatmap\"),o=[],a=t.data,r=a.length;if(i.clear(),this.max=t.max,i.get(\"legend\")&&i.get(\"legend\").update(t.max),null!=e&&e){for(var s in a)if(void 0!==s)for(var l in a[s])void 0!==l&&i.drawAlpha(s,l,a[s][l],!1)}else for(;r--;){var c=a[r];i.drawAlpha(c.x,c.y,c.count,!1),o[c.x]||(o[c.x]=[]),o[c.x][c.y]||(o[c.x][c.y]=0),o[c.x][c.y]=c.count}i.colorize(),this.set(\"data\",a)},exportDataSet:function(){var t=this,e=t.get(\"data\"),n=[];for(var i in e)if(void 0!==i)for(var o in e[i])void 0!==o&&n.push({x:parseInt(i,10),y:parseInt(o,10),count:e[i][o]});return{max:t.max,data:n}},generateRandomDataSet:function(t){var e=this.get(\"heatmap\"),n=e.get(\"width\"),i=e.get(\"height\"),o={},a=Math.floor(1e3*Math.random()+1);o.max=a;for(var r=[];t--;)r.push({x:Math.floor(Math.random()*n+1),y:Math.floor(Math.random()*i+1),count:Math.floor(Math.random()*a+1)});o.data=r,this.setDataSet(o)}};var e=function(t){this.config=t;var e={element:null,labelsEl:null,gradientCfg:null,ctx:null};this.get=function(t){return e[t]},this.set=function(t,n){e[t]=n},this.init()};e.prototype={init:function(){var t,e,n=this,i=n.config,o=i.title||\"Legend\",a=i.position,r=i.offset||10,s=(i.gradient,document.createElement(\"ul\")),l=\"\";n.processGradientObject(),a.indexOf(\"t\")>-1?l+=\"top:\"+r+\"px;\":l+=\"bottom:\"+r+\"px;\",a.indexOf(\"l\")>-1?l+=\"left:\"+r+\"px;\":l+=\"right:\"+r+\"px;\",t=document.createElement(\"div\"),t.style.cssText=\"border-radius:5px;position:absolute;\"+l+\"font-family:Helvetica; width:256px;z-index:10000000000; background:rgba(255,255,255,1);padding:10px;border:1px solid black;margin:0;\",t.innerHTML=\"<h3 style='padding:0;margin:0;text-align:center;font-size:16px;'>\"+o+\"</h3>\",s.style.cssText=\"position:relative;font-size:12px;display:block;list-style:none;list-style-type:none;margin:0;height:15px;\",e=document.createElement(\"div\"),e.style.cssText=[\"position:relative;display:block;width:256px;height:15px;border-bottom:1px solid black; background-image:url(\",n.createGradientImage(),\");\"].join(\"\"),t.appendChild(s),t.appendChild(e),n.set(\"element\",t),n.set(\"labelsEl\",s),n.update(1)},processGradientObject:function(){var t=this,e=this.config.gradient,n=[];for(var i in e)e.hasOwnProperty(i)&&n.push({stop:i,value:e[i]});n.sort(function(t,e){return t.stop-e.stop}),n.unshift({stop:0,value:\"rgba(0,0,0,0)\"}),t.set(\"gradientArr\",n)},createGradientImage:function(){var t,e=this,n=e.get(\"gradientArr\"),i=n.length,o=document.createElement(\"canvas\"),a=o.getContext(\"2d\");o.width=\"256\",o.height=\"15\",t=a.createLinearGradient(0,5,256,10);for(var r=0;r<i;r++)t.addColorStop(1/(i-1)*r,n[r].value);a.fillStyle=t,a.fillRect(0,5,256,10),a.strokeStyle=\"black\",a.beginPath();for(var r=0;r<i;r++)a.moveTo(.5+(1/(i-1)*r*256>>0),0),a.lineTo(.5+(1/(i-1)*r*256>>0),0==r?15:5);return a.moveTo(255.5,0),a.lineTo(255.5,15),a.moveTo(255.5,4.5),a.lineTo(0,4.5),a.stroke(),e.set(\"ctx\",a),o.toDataURL()},getElement:function(){return this.get(\"element\")},update:function(t){for(var e,n,i=this,o=i.get(\"gradientArr\"),a=i.get(\"ctx\"),r=i.get(\"labelsEl\"),s=\"\",l=0;l<o.length;l++)e=t*o[l].stop>>0,n=a.measureText(e).width/2>>0,0==l&&(n=0),l==o.length-1&&(n*=2),s+='<li style=\"position:absolute;left:'+(((1/(o.length-1)*l*256||0)>>0)-n+.5)+'px\">'+e+\"</li>\";r.innerHTML=s}};var n=function(e){var n={radius:40,element:{},canvas:{},acanvas:{},ctx:{},actx:{},legend:null,visible:!0,width:0,height:0,max:!1,gradient:!1,opacity:180,premultiplyAlpha:!1,bounds:{l:1e3,r:0,t:1e3,b:0},debug:!1};this.store=new t(this),this.get=function(t){return n[t]},this.set=function(t,e){n[t]=e},this.configure(e),this.init()};return n.prototype={configure:function(t){var n=this;if(n.set(\"radius\",t.radius||40),n.set(\"element\",t.element instanceof Object?t.element:document.getElementById(t.element)),n.set(\"visible\",null==t.visible||t.visible),n.set(\"max\",t.max||!1),n.set(\"gradient\",t.gradient||{.45:\"rgb(0,0,255)\",.55:\"rgb(0,255,255)\",.65:\"rgb(0,255,0)\",.95:\"yellow\",1:\"rgb(255,0,0)\"}),n.set(\"opacity\",parseInt(255/(100/t.opacity),10)||180),n.set(\"width\",t.width||0),n.set(\"height\",t.height||0),n.set(\"debug\",t.debug),t.legend){var i=t.legend;i.gradient=n.get(\"gradient\"),n.set(\"legend\",new e(i))}},resize:function(){var t=this,e=t.get(\"element\"),n=t.get(\"canvas\"),i=t.get(\"acanvas\");n.width=i.width=t.get(\"width\")||e.style.width.replace(/px/,\"\")||t.getWidth(e),this.set(\"width\",n.width),n.height=i.height=t.get(\"height\")||e.style.height.replace(/px/,\"\")||t.getHeight(e),this.set(\"height\",n.height)},init:function(){var t=this,e=document.createElement(\"canvas\"),n=document.createElement(\"canvas\"),i=e.getContext(\"2d\"),o=n.getContext(\"2d\"),a=t.get(\"element\");t.initColorPalette(),t.set(\"canvas\",e),t.set(\"ctx\",i),t.set(\"acanvas\",n),t.set(\"actx\",o),t.resize(),e.style.cssText=n.style.cssText=\"position:absolute;top:0;left:0;z-index:10000000;\",t.get(\"visible\")||(e.style.display=\"none\"),a.appendChild(e),t.get(\"legend\")&&a.appendChild(t.get(\"legend\").getElement()),t.get(\"debug\")&&document.body.appendChild(n),o.shadowOffsetX=15e3,o.shadowOffsetY=15e3,o.shadowBlur=15},initColorPalette:function(){var t,e,n,i=this,o=document.createElement(\"canvas\"),a=i.get(\"gradient\");o.width=\"1\",o.height=\"256\",t=o.getContext(\"2d\"),e=t.createLinearGradient(0,0,1,256),n=t.getImageData(0,0,1,1),n.data[0]=n.data[3]=64,n.data[1]=n.data[2]=0,t.putImageData(n,0,0),n=t.getImageData(0,0,1,1),i.set(\"premultiplyAlpha\",n.data[0]<60||n.data[0]>70);for(var r in a)e.addColorStop(r,a[r]);t.fillStyle=e,t.fillRect(0,0,1,256),i.set(\"gradient\",t.getImageData(0,0,1,256).data)},getWidth:function(t){var e=t.offsetWidth;return t.style.paddingLeft&&(e+=t.style.paddingLeft),t.style.paddingRight&&(e+=t.style.paddingRight),e},getHeight:function(t){var e=t.offsetHeight;return t.style.paddingTop&&(e+=t.style.paddingTop),t.style.paddingBottom&&(e+=t.style.paddingBottom),e},colorize:function(t,e){var n,i,o,a,r,s,l,c,u,h=this,p=h.get(\"width\"),d=h.get(\"radius\"),f=h.get(\"height\"),m=h.get(\"actx\"),g=h.get(\"ctx\"),y=3*d,v=h.get(\"premultiplyAlpha\"),_=h.get(\"gradient\"),b=h.get(\"opacity\"),x=h.get(\"bounds\");null!=t&&null!=e?(t+y>p&&(t=p-y),t<0&&(t=0),e<0&&(e=0),e+y>f&&(e=f-y),n=t,i=e,a=t+y,o=e+y):(n=x.l<0?0:x.l,a=x.r>p?p:x.r,i=x.t<0?0:x.t,o=x.b>f?f:x.b),r=m.getImageData(n,i,a-n,o-i),s=r.data.length;for(var w=3;w<s;w+=4)l=r.data[w],c=4*l,c&&(u=l<b?l:b,r.data[w-3]=_[c],r.data[w-2]=_[c+1],r.data[w-1]=_[c+2],v&&(r.data[w-3]/=255/u,r.data[w-2]/=255/u,r.data[w-1]/=255/u),r.data[w]=u);g.putImageData(r,n,i)},drawAlpha:function(t,e,n,i){var o=this,a=o.get(\"radius\"),r=o.get(\"actx\"),s=(o.get(\"max\"),o.get(\"bounds\")),l=t-1.5*a>>0,c=e-1.5*a>>0,u=t+1.5*a>>0,h=e+1.5*a>>0;r.shadowColor=\"rgba(0,0,0,\"+(n?n/o.store.max:\"0.1\")+\")\",r.shadowOffsetX=15e3,r.shadowOffsetY=15e3,r.shadowBlur=15,r.beginPath(),r.arc(t-15e3,e-15e3,a,0,2*Math.PI,!0),r.closePath(),r.fill(),i?o.colorize(l,c):(l<s.l&&(s.l=l),c<s.t&&(s.t=c),u>s.r&&(s.r=u),h>s.b&&(s.b=h))},toggleDisplay:function(){var t=this,e=t.get(\"visible\"),n=t.get(\"canvas\");n.style.display=e?\"none\":\"block\",t.set(\"visible\",!e)},getImageData:function(){return this.get(\"canvas\").toDataURL()},clear:function(){var t=this,e=t.get(\"width\"),n=t.get(\"height\");t.store.set(\"data\",[]),t.get(\"ctx\").clearRect(0,0,e,n),t.get(\"actx\").clearRect(0,0,e,n)},cleanup:function(){var t=this;t.get(\"element\").removeChild(t.get(\"canvas\"))}},{create:function(t){return new n(t)},util:{mousePosition:function(t){var e,n;if(t.layerX?(e=t.layerX,n=t.layerY):t.offsetX&&(e=t.offsetX,n=t.offsetY),void 0!==e)return[e,n]}}}}(),n=function(e){try{BMap}catch(t){throw Error(\"Baidu Map JS API is not ready yet!\")}if(!n._isExtended){n._isExtended=!0,t(n,BMap.Overlay,\"HeatmapOverlay\");var i=new n(e);this.__proto__=i.__proto__}this.conf=e,this.heatmap=null,this.latlngs=[],this.bounds=null,this._moveendHandler=this._moveendHandler.bind(this)};return n.prototype.initialize=function(t){this._map=t;var n=document.createElement(\"div\");return n.style.position=\"absolute\",n.style.top=0,n.style.left=0,n.style.border=0,n.style.width=this._map.getSize().width+\"px\",n.style.height=this._map.getSize().height+\"px\",this.conf.element=n,t.getPanes().mapPane.appendChild(n),this.heatmap=e.create(this.conf),this._div=n,n},n.prototype.draw=function(){var t=this._map.getBounds();if(!t.equals(this.bounds)){this.bounds=t;var e=this._map.pointToOverlayPixel(t.getNorthEast()),n=this._map.pointToOverlayPixel(t.getSouthWest());if(e&&n){var i=e.y,o=n.x,a=n.y-e.y,r=e.x-n.x;if(this.conf.element.style.left=o+\"px\",this.conf.element.style.top=i+\"px\",this.conf.element.style.width=r+\"px\",this.conf.element.style.height=a+\"px\",this.heatmap.store.get(\"heatmap\").resize(),this.latlngs.length>0){this.heatmap.clear();for(var s=this.latlngs.length,l={max:this.heatmap.store.max,data:[]};s--;){var c=this.latlngs[s].latlng;if(t.containsPoint(c)){var u=this._map.pointToOverlayPixel(c),h=new BMap.Pixel(u.x-o,u.y-i),p=this.pixelTransform(h);l.data.push({x:p.x,y:p.y,count:this.latlngs[s].c})}}this.heatmap.store.setDataSet(l)}}}},n.prototype.pixelTransform=function(t){for(var e=this.heatmap.get(\"width\"),n=this.heatmap.get(\"height\");t.x<0;)t.x+=e;for(;t.x>e;)t.x-=e;for(;t.y<0;)t.y+=n;for(;t.y>n;)t.y-=n;return t.x=t.x>>0,t.y=t.y>>0,t},n.prototype._moveendHandler=function(t){this.setDataSet(this._data),delete this._data,this._map.removeEventListener(\"moveend\",this._moveendHandler)},n.prototype.setDataSet=function(t){if(this._map){var e=this._map.getBounds(),n=this._map.pointToOverlayPixel(e.getNorthEast()),i=this._map.pointToOverlayPixel(e.getSouthWest());n&&i||(this._data=t,this._map.addEventListener(\"moveend\",this._moveendHandler));var o={max:t.max,data:[]},a=t.data,r=a.length;for(this.latlngs=[];r--;){var s=new BMap.Point(a[r].lng,a[r].lat);if(this.latlngs.push({latlng:s,c:a[r].count}),e.containsPoint(s)){var l=this._map.pointToOverlayPixel(s),c=this._map.pointToOverlayPixel(e.getSouthWest()).x,u=this._map.pointToOverlayPixel(e.getNorthEast()).y,h=new BMap.Pixel(l.x-c,l.y-u),p=this.pixelTransform(h);o.data.push({x:p.x,y:p.y,count:a[r].count})}}this.heatmap.clear(),this.heatmap.store.setDataSet(o)}},n.prototype.addDataPoint=function(t,e,n){var i=new BMap.Point(t,e),o=this.pixelTransform(this._map.pointToOverlayPixel(i));this.heatmap.store.addDataPoint(o.x,o.y,n),this.latlngs.push({latlng:i,c:n})},n.prototype.toggle=function(){this.heatmap.toggleDisplay()},n})},function(t,e,n){!function(e,n){t.exports=n()}(0,function(){function t(t,e){this._point=t,this._html=e}function e(){t.prototype=new BMap.Overlay,t.prototype.initialize=function(t){var e=this._div=n.dom.create(\"div\",{style:\"border:solid 1px #ccc;width:auto;min-width:50px;text-align:center;position:absolute;background:#fff;color:#000;font-size:12px;border-radius: 10px;padding:5px;white-space: nowrap;\"});return e.innerHTML=this._html,t.getPanes().floatPane.appendChild(e),this._map=t,e},t.prototype.draw=function(){this.setPosition(this.lushuMain._marker.getPosition(),this.lushuMain._marker.getIcon().size)},n.object.extend(t.prototype,{setPosition:function(t,e){var i=this._map.pointToOverlayPixel(t),o=n.dom.getStyle(this._div,\"width\"),a=n.dom.getStyle(this._div,\"height\"),r=parseInt(this._div.clientWidth||o,10);parseInt(this._div.clientHeight||a,10);this._div.style.left=i.x-r/2+\"px\",this._div.style.bottom=-(i.y-e.height)+\"px\"},setHtml:function(t){this._div.innerHTML=t},setRelatedClass:function(t){this.lushuMain=t}})}var n={};n.dom={},n.dom.g=function(t){return\"string\"==typeof t||t instanceof String?document.getElementById(t):t&&t.nodeName&&(1==t.nodeType||9==t.nodeType)?t:null},n.g=n.G=n.dom.g,n.lang=n.lang||{},n.lang.isString=function(t){return\"[object String]\"==Object.prototype.toString.call(t)},n.isString=n.lang.isString,n.dom._g=function(t){return n.lang.isString(t)?document.getElementById(t):t},n._g=n.dom._g,n.dom.getDocument=function(t){return t=n.dom.g(t),9==t.nodeType?t:t.ownerDocument||t.document},n.browser=n.browser||{},n.browser.ie=n.ie=/msie (\\d+\\.\\d+)/i.test(navigator.userAgent)?document.documentMode||+RegExp.$1:void 0,n.dom.getComputedStyle=function(t,e){t=n.dom._g(t);var i,o=n.dom.getDocument(t);return o.defaultView&&o.defaultView.getComputedStyle&&(i=o.defaultView.getComputedStyle(t,null))?i[e]||i.getPropertyValue(e):\"\"},n.dom._styleFixer=n.dom._styleFixer||{},n.dom._styleFilter=n.dom._styleFilter||[],n.dom._styleFilter.filter=function(t,e,i){for(var o,a=0,r=n.dom._styleFilter;o=r[a];a++)(o=o[i])&&(e=o(t,e));return e},n.string=n.string||{},n.string.toCamelCase=function(t){return t.indexOf(\"-\")<0&&t.indexOf(\"_\")<0?t:t.replace(/[-_][^-_]/g,function(t){return t.charAt(1).toUpperCase()})},n.dom.getStyle=function(t,e){var i=n.dom;t=i.g(t),e=n.string.toCamelCase(e);var o=t.style[e]||(t.currentStyle?t.currentStyle[e]:\"\")||i.getComputedStyle(t,e);if(!o){var a=i._styleFixer[e];a&&(o=a.get?a.get(t):n.dom.getStyle(t,a))}return(a=i._styleFilter)&&(o=a.filter(e,o,\"get\")),o},n.getStyle=n.dom.getStyle,n.dom._NAME_ATTRS=function(){var t={cellpadding:\"cellPadding\",cellspacing:\"cellSpacing\",colspan:\"colSpan\",rowspan:\"rowSpan\",valign:\"vAlign\",usemap:\"useMap\",frameborder:\"frameBorder\"};return n.browser.ie<8?(t.for=\"htmlFor\",t.class=\"className\"):(t.htmlFor=\"for\",t.className=\"class\"),t}(),n.dom.setAttr=function(t,e,i){return t=n.dom.g(t),\"style\"==e?t.style.cssText=i:(e=n.dom._NAME_ATTRS[e]||e,t.setAttribute(e,i)),t},n.setAttr=n.dom.setAttr,n.dom.setAttrs=function(t,e){t=n.dom.g(t);for(var i in e)n.dom.setAttr(t,i,e[i]);return t},n.setAttrs=n.dom.setAttrs,n.dom.create=function(t,e){var i=document.createElement(t),o=e||{};return n.dom.setAttrs(i,o)},n.object=n.object||{},n.extend=n.object.extend=function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t};var i=function(t,e,n){try{BMap}catch(t){throw Error(\"Baidu Map JS API is not ready yet!\")}!e||e.length<1||(this._map=t,this._path=e,this.i=0,this._setTimeoutQuene=[],this._projection=this._map.getMapType().getProjection(),this._opts={icon:null,speed:4e3,defaultContent:\"\",showInfoWindow:!1},this._setOptions(n),this._rotation=0,!this._opts.icon instanceof BMap.Icon&&(this._opts.icon=defaultIcon))};return i.prototype._setOptions=function(t){if(t)for(var e in t)t.hasOwnProperty(e)&&(this._opts[e]=t[e])},i.prototype.start=function(){var t=this,e=t._path.length;if(this._opts.onstart&&this._opts.onstart(t),t.i&&t.i<e-1){if(!t._fromPause)return;t._fromStop||t._moveNext(++t.i)}else!t._marker&&t._addMarker(),t._timeoutFlag=setTimeout(function(){!t._overlay&&t._addInfoWin(),t._moveNext(t.i)},400);this._fromPause=!1,this._fromStop=!1},i.prototype.stop=function(){this.i=0,this._fromStop=!0,clearInterval(this._intervalFlag),this._clearTimeout();for(var t=0,e=this._opts.landmarkPois,n=e.length;t<n;t++)e[t].bShow=!1;this._opts.onstop&&this._opts.onstop(this)},i.prototype.pause=function(){clearInterval(this._intervalFlag),this._fromPause=!0,this._clearTimeout(),this._opts.onpause&&this._opts.onpause(this)},i.prototype.hideInfoWindow=function(){this._opts.showInfoWindow=!1,this._overlay&&(this._overlay._div.style.visibility=\"hidden\")},i.prototype.showInfoWindow=function(){this._opts.showInfoWindow=!0,this._overlay&&(this._overlay._div.style.visibility=\"visible\")},i.prototype.dispose=function(){clearInterval(this._intervalFlag),this._setTimeoutQuene&&this._clearTimeout(),this._map&&(this._map.removeOverlay(this._overlay),this._map.removeOverlay(this._marker))},n.object.extend(i.prototype,{_addMarker:function(t){this._marker&&(this.stop(),this._map.removeOverlay(this._marker),clearTimeout(this._timeoutFlag)),this._overlay&&this._map.removeOverlay(this._overlay);var e=new BMap.Marker(this._path[0]);this._opts.icon&&e.setIcon(this._opts.icon),this._map.addOverlay(e),e.setAnimation(BMAP_ANIMATION_DROP),this._marker=e},_addInfoWin:function(){var n=this;!t.prototype.initialize&&e();var i=new t(n._marker.getPosition(),n._opts.defaultContent);i.setRelatedClass(this),this._overlay=i,this._map.addOverlay(i),this._opts.showInfoWindow?this.showInfoWindow():this.hideInfoWindow()},_getMercator:function(t){return this._map.getMapType().getProjection().lngLatToPoint(t)},_getDistance:function(t,e){return Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2))},_move:function(t,e,n){var i=this,o=0,a=this._opts.speed/100,r=this._projection.lngLatToPoint(t),s=this._projection.lngLatToPoint(e),l=Math.round(i._getDistance(r,s)/a);if(l<1)return void i._moveNext(++i.i);i._intervalFlag=setInterval(function(){if(o>=l){if(clearInterval(i._intervalFlag),i.i>i._path.length)return;i._moveNext(++i.i)}else{o++;var a=n(r.x,s.x,o,l),c=n(r.y,s.y,o,l),u=i._projection.pointToLngLat(new BMap.Pixel(a,c));if(1==o){var h=null;i.i-1>=0&&(h=i._path[i.i-1]),1==i._opts.enableRotation&&i.setRotation(h,t,e),i._opts.autoView&&(i._map.getBounds().containsPoint(u)||i._map.setCenter(u))}i._marker.setPosition(u),i._setInfoWin(u)}},10)},setRotation:function(t,e,n){var i=this,o=0;if(e=i._map.pointToPixel(e),n=i._map.pointToPixel(n),n.x!=e.x){var a=(n.y-e.y)/(n.x-e.x);o=360*Math.atan(a)/(2*Math.PI),o=n.x<e.x?90-o+90:-o,i._marker.setRotation(-o)}else{var r=n.y-e.y,s=0;s=r>0?-1:1,i._marker.setRotation(90*-s)}},linePixellength:function(t,e){return Math.sqrt(Math.abs(t.x-e.x)*Math.abs(t.x-e.x)+Math.abs(t.y-e.y)*Math.abs(t.y-e.y))},pointToPoint:function(t,e){return Math.abs(t.x-e.x)*Math.abs(t.x-e.x)+Math.abs(t.y-e.y)*Math.abs(t.y-e.y)},_moveNext:function(t){var e=this;t<this._path.length-1?e._move(e._path[t],e._path[t+1],e._tween.linear):e.stop()},_setInfoWin:function(t){var e=this;e._overlay.setPosition(t,e._marker.getIcon().size);var n=e._troughPointIndex(t);-1!=n?(clearInterval(e._intervalFlag),e._overlay.setHtml(e._opts.landmarkPois[n].html),e._overlay.setPosition(t,e._marker.getIcon().size),e._pauseForView(n)):e._overlay.setHtml(e._opts.defaultContent)},_pauseForView:function(t){var e=this,n=setTimeout(function(){e._moveNext(++e.i)},1e3*e._opts.landmarkPois[t].pauseTime);e._setTimeoutQuene.push(n)},_clearTimeout:function(){for(var t in this._setTimeoutQuene)clearTimeout(this._setTimeoutQuene[t]);this._setTimeoutQuene.length=0},_tween:{linear:function(t,e,n,i){return(e-t)*n/i+t}},_troughPointIndex:function(t){for(var e=this._opts.landmarkPois,n=0,i=e.length;n<i;n++)if(!e[n].bShow&&this._map.getDistance(new BMap.Point(e[n].lng,e[n].lat),t)<10)return e[n].bShow=!0,n;return-1}}),i})},function(t,e,n){(function(e){var i,o;!function(e,n){t.exports=n()}(0,function(){\"use strict\";function t(t){this._markerClusterer=t,this._map=t.getMap(),this._minClusterSize=t.getMinClusterSize(),this._isAverageCenter=t.isAverageCenter(),this._center=null,this._markers=[],this._gridBounds=null,this._isReal=!1,this._clusterMarker=new s(this._center,this._markers.length,{styles:this._markerClusterer.getStyles()})}var a=\"undefined\"!=typeof window?window:void 0!==e?e:this,r=function(t,e){return e={exports:{}},t(e,e.exports,a),e.exports}(function(t,e,a){!function(a,r){\"object\"==typeof e?t.exports=r():(i=r,void 0!==(o=\"function\"==typeof i?i.call(e,n,e,t):i)&&(t.exports=o))}(0,function(){var t,e=t=e||{version:\"1.3.8\"},n={};e.guid=\"$BAIDU$\",n[e.guid]=n[e.guid]||{},e.dom=e.dom||{},e.dom.g=function(t){return\"string\"==typeof t||t instanceof String?document.getElementById(t):t&&t.nodeName&&(1==t.nodeType||9==t.nodeType)?t:null},e.g=e.G=e.dom.g,e.dom.getDocument=function(t){return t=e.dom.g(t),9==t.nodeType?t:t.ownerDocument||t.document},e.lang=e.lang||{},e.lang.isString=function(t){return\"[object String]\"==Object.prototype.toString.call(t)},e.isString=e.lang.isString,e.dom._g=function(t){return e.lang.isString(t)?document.getElementById(t):t},e._g=e.dom._g,e.browser=e.browser||{},/msie (\\d+\\.\\d)/i.test(navigator.userAgent)&&(e.browser.ie=e.ie=document.documentMode||+RegExp.$1),e.dom.getComputedStyle=function(t,n){t=e.dom._g(t);var i,o=e.dom.getDocument(t);return o.defaultView&&o.defaultView.getComputedStyle&&(i=o.defaultView.getComputedStyle(t,null))?i[n]||i.getPropertyValue(n):\"\"},e.dom._styleFixer=e.dom._styleFixer||{},e.dom._styleFilter=e.dom._styleFilter||[],e.dom._styleFilter.filter=function(t,n,i){for(var o,a=0,r=e.dom._styleFilter;o=r[a];a++)(o=o[i])&&(n=o(t,n));return n},e.string=e.string||{},e.string.toCamelCase=function(t){return t.indexOf(\"-\")<0&&t.indexOf(\"_\")<0?t:t.replace(/[-_][^-_]/g,function(t){return t.charAt(1).toUpperCase()})},e.dom.getStyle=function(t,n){var i=e.dom;t=i.g(t),n=e.string.toCamelCase(n);var o=t.style[n]||(t.currentStyle?t.currentStyle[n]:\"\")||i.getComputedStyle(t,n);if(!o){var a=i._styleFixer[n];a&&(o=a.get?a.get(t):e.dom.getStyle(t,a))}return(a=i._styleFilter)&&(o=a.filter(n,o,\"get\")),o},e.getStyle=e.dom.getStyle,/opera\\/(\\d+\\.\\d)/i.test(navigator.userAgent)&&(e.browser.opera=+RegExp.$1),e.browser.isWebkit=/webkit/i.test(navigator.userAgent),e.browser.isGecko=/gecko/i.test(navigator.userAgent)&&!/like gecko/i.test(navigator.userAgent),e.browser.isStrict=\"CSS1Compat\"==document.compatMode,e.dom.getPosition=function(t){t=e.dom.g(t);var n,i,o=e.dom.getDocument(t),a=e.browser,r=e.dom.getStyle,s=(a.isGecko>0&&o.getBoxObjectFor&&\"absolute\"==r(t,\"position\")&&(\"\"===t.style.top||t.style.left),{left:0,top:0}),l=a.ie&&!a.isStrict?o.body:o.documentElement;if(t==l)return s;if(t.getBoundingClientRect){i=t.getBoundingClientRect(),s.left=Math.floor(i.left)+Math.max(o.documentElement.scrollLeft,o.body.scrollLeft),s.top=Math.floor(i.top)+Math.max(o.documentElement.scrollTop,o.body.scrollTop),s.left-=o.documentElement.clientLeft,s.top-=o.documentElement.clientTop;var c=o.body,u=parseInt(r(c,\"borderLeftWidth\")),h=parseInt(r(c,\"borderTopWidth\"));a.ie&&!a.isStrict&&(s.left-=isNaN(u)?2:u,s.top-=isNaN(h)?2:h)}else{n=t;do{if(s.left+=n.offsetLeft,s.top+=n.offsetTop,a.isWebkit>0&&\"fixed\"==r(n,\"position\")){s.left+=o.body.scrollLeft,s.top+=o.body.scrollTop;break}n=n.offsetParent}while(n&&n!=t);for((a.opera>0||a.isWebkit>0&&\"absolute\"==r(t,\"position\"))&&(s.top-=o.body.offsetTop),n=t.offsetParent;n&&n!=o.body;)s.left-=n.scrollLeft,a.opera&&\"TR\"==n.tagName||(s.top-=n.scrollTop),n=n.offsetParent}return s},e.event=e.event||{},e.event._listeners=e.event._listeners||[],e.event.on=function(t,n,i){n=n.replace(/^on/i,\"\"),t=e.dom._g(t);var o,a=function(e){i.call(t,e)},r=e.event._listeners,s=e.event._eventFilter,l=n;return n=n.toLowerCase(),s&&s[n]&&(o=s[n](t,n,a),l=o.type,a=o.listener),t.addEventListener?t.addEventListener(l,a,!1):t.attachEvent&&t.attachEvent(\"on\"+l,a),r[r.length]=[t,n,i,a,l],t},e.on=e.event.on,function(){var t=n[e.guid];e.lang.guid=function(){return\"TANGRAM__\"+(t._counter++).toString(36)},t._counter=t._counter||1}(),n[e.guid]._instances=n[e.guid]._instances||{},e.lang.isFunction=function(t){return\"[object Function]\"==Object.prototype.toString.call(t)},e.lang.Class=function(t){this.guid=t||e.lang.guid(),n[e.guid]._instances[this.guid]=this},n[e.guid]._instances=n[e.guid]._instances||{},e.lang.Class.prototype.dispose=function(){delete n[e.guid]._instances[this.guid];for(var t in this)e.lang.isFunction(this[t])||delete this[t];this.disposed=!0},e.lang.Class.prototype.toString=function(){return\"[object \"+(this._className||\"Object\")+\"]\"},e.lang.Event=function(t,e){this.type=t,this.returnValue=!0,this.target=e||null,this.currentTarget=null},e.lang.Class.prototype.addEventListener=function(t,n,i){if(e.lang.isFunction(n)){!this.__listeners&&(this.__listeners={});var o,a=this.__listeners;if(\"string\"==typeof i&&i){if(/[^\\w\\-]/.test(i))throw\"nonstandard key:\"+i;n.hashCode=i,o=i}0!=t.indexOf(\"on\")&&(t=\"on\"+t),\"object\"!=typeof a[t]&&(a[t]={}),o=o||e.lang.guid(),n.hashCode=o,a[t][o]=n}},e.lang.Class.prototype.removeEventListener=function(t,n){if(void 0===n||(!e.lang.isFunction(n)||(n=n.hashCode))&&e.lang.isString(n)){!this.__listeners&&(this.__listeners={}),0!=t.indexOf(\"on\")&&(t=\"on\"+t);var i=this.__listeners;if(i[t])if(void 0!==n)i[t][n]&&delete i[t][n];else for(var o in i[t])delete i[t][o]}},e.lang.Class.prototype.dispatchEvent=function(t,n){e.lang.isString(t)&&(t=new e.lang.Event(t)),!this.__listeners&&(this.__listeners={}),n=n||{};for(var i in n)t[i]=n[i];var i,o=this.__listeners,a=t.type;if(t.target=t.target||this,t.currentTarget=this,0!=a.indexOf(\"on\")&&(a=\"on\"+a),e.lang.isFunction(this[a])&&this[a].apply(this,arguments),\"object\"==typeof o[a])for(i in o[a])o[a][i].apply(this,arguments);return t.returnValue},e.lang.inherits=function(t,e,n){var i,o,a=t.prototype,r=new Function;r.prototype=e.prototype,o=t.prototype=new r;for(i in a)o[i]=a[i];t.prototype.constructor=t,t.superClass=e.prototype,\"string\"==typeof n&&(o._className=n)},e.inherits=e.lang.inherits;var i=function(e,n,o){try{BMap}catch(t){throw Error(\"Baidu Map JS API is not ready yet!\")}t.lang.inherits(i,BMap.Overlay,\"TextIconOverlay\"),this._position=e,this._text=n,this._options=o||{},this._styles=this._options.styles||[],!this._styles.length&&this._setupDefaultStyles()};return i.prototype._setupDefaultStyles=function(){for(var t,e=[53,56,66,78,90],n=0;t=e[n];n++)this._styles.push({url:\"http://api.map.baidu.com/library/TextIconOverlay/1.2/src/images/m\"+n+\".png\",size:new BMap.Size(t,t)})},i.prototype.initialize=function(t){return this._map=t,this._domElement=document.createElement(\"div\"),this._updateCss(),this._updateText(),this._updatePosition(),this._bind(),this._map.getPanes().markerMouseTarget.appendChild(this._domElement),this._domElement},i.prototype.draw=function(){this._map&&this._updatePosition()},i.prototype.getText=function(){return this._text},i.prototype.setText=function(t){!t||this._text&&this._text.toString()==t.toString()||(this._text=t,this._updateText(),this._updateCss(),this._updatePosition())},i.prototype.getPosition=function(){return this._position},i.prototype.setPosition=function(t){!t||this._position&&this._position.equals(t)||(this._position=t,this._updatePosition())},i.prototype.getStyleByText=function(t,e){var n=parseInt(t),i=parseInt(n/10);return i=Math.max(0,i),i=Math.min(i,e.length-1),e[i]},i.prototype._updateCss=function(){if(this._domElement){var t=this.getStyleByText(this._text,this._styles);this._domElement.style.cssText=this._buildCssText(t)}},i.prototype._updateText=function(){this._domElement&&(this._domElement.innerHTML=this._text)},i.prototype._updatePosition=function(){if(this._domElement&&this._position){var t=this._domElement.style,e=this._map.pointToOverlayPixel(this._position);e.x-=Math.ceil(parseInt(t.width)/2),e.y-=Math.ceil(parseInt(t.height)/2),t.left=e.x+\"px\",t.top=e.y+\"px\"}},i.prototype._buildCssText=function(e){var n=e.url,i=e.size,o=e.anchor,a=e.offset,r=e.textColor||\"black\",s=e.textSize||10,l=[];if(t.browser.ie<7)l.push('filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale,src=\"'+n+'\");');else{l.push(\"background-image:url(\"+n+\");\");var c=\"0 0\";a instanceof BMap.Size&&(c=a.width+\"px \"+a.height+\"px\"),l.push(\"background-position:\"+c+\";\")}return i instanceof BMap.Size&&(o instanceof BMap.Size?(o.height>0&&o.height<i.height&&l.push(\"height:\"+(i.height-o.height)+\"px; padding-top:\"+o.height+\"px;\"),o.width>0&&o.width<i.width&&l.push(\"width:\"+(i.width-o.width)+\"px; padding-left:\"+o.width+\"px;\")):(l.push(\"height:\"+i.height+\"px; line-height:\"+i.height+\"px;\"),l.push(\"width:\"+i.width+\"px; text-align:center;\"))),l.push(\"cursor:pointer; color:\"+r+\"; position:absolute; font-size:\"+s+\"px; font-family:Arial,sans-serif; font-weight:bold\"),l.join(\"\")},i.prototype._bind=function(){function e(e,n){var o=e.srcElement||e.target,a=e.clientX||e.pageX,r=e.clientY||e.pageY;if(e&&n&&a&&r&&o){var s=t.dom.getPosition(i.getContainer());n.pixel=new BMap.Pixel(a-s.left,r-s.top),n.point=i.pixelToPoint(n.pixel)}return n}if(this._domElement){var n=this,i=this._map,o=t.lang.Event;t.event.on(this._domElement,\"mouseover\",function(t){n.dispatchEvent(e(t,new o(\"onmouseover\")))}),t.event.on(this._domElement,\"mouseout\",function(t){n.dispatchEvent(e(t,new o(\"onmouseout\")))}),t.event.on(this._domElement,\"click\",function(t){n.dispatchEvent(e(t,new o(\"onclick\")))})}},i})}),s=r&&\"object\"==typeof r&&\"default\"in r?r.default:r,l=function(t,e,n){e=c(e);var i=t.pointToPixel(e.getNorthEast()),o=t.pointToPixel(e.getSouthWest());i.x+=n,i.y-=n,o.x-=n,o.y+=n;var a=t.pixelToPoint(i),r=t.pixelToPoint(o);return new BMap.Bounds(r,a)},c=function(t){var e=u(t.getNorthEast().lng,-180,180),n=u(t.getSouthWest().lng,-180,180),i=u(t.getNorthEast().lat,-74,74),o=u(t.getSouthWest().lat,-74,74);return new BMap.Bounds(new BMap.Point(n,o),new BMap.Point(e,i))},u=function(t,e,n){return e&&(t=Math.max(t,e)),n&&(t=Math.min(t,n)),t},h=function(t){return\"[object Array]\"===Object.prototype.toString.call(t)},p=function(t,e){var n=-1;if(h(e))if(e.indexOf)n=e.indexOf(t);else for(var i,o=0;i=e[o];o++)if(i===t){n=o;break}return n},d=function(t,e){try{BMap}catch(t){throw Error(\"Baidu Map JS API is not ready yet!\")}if(t){this._map=t,this._markers=[],this._clusters=[];var n=e||{};this._gridSize=n.gridSize||60,this._maxZoom=n.maxZoom||18,this._minClusterSize=n.minClusterSize||2,this._isAverageCenter=!1,void 0!=n.isAverageCenter&&(this._isAverageCenter=n.isAverageCenter),this._styles=n.styles||[];var i=this;this._map.addEventListener(\"zoomend\",function(){i._redraw()}),this._map.addEventListener(\"moveend\",function(){i._redraw()});var o=n.markers;h(o)&&this.addMarkers(o)}};return d.prototype.addMarkers=function(t){if(t.length){for(var e=0,n=t.length;e<n;e++)this._pushMarkerTo(t[e]);this._createClusters()}},d.prototype._pushMarkerTo=function(t){-1===p(t,this._markers)&&(t.isInCluster=!1,this._markers.push(t))},d.prototype.addMarker=function(t){this._pushMarkerTo(t),this._createClusters()},d.prototype._createClusters=function(){var t=this._map.getBounds();if(t.getCenter())for(var e,n=l(this._map,t,this._gridSize),i=0;e=this._markers[i];i++)!e.isInCluster&&n.containsPoint(e.getPosition())&&this._addToClosestCluster(e)},d.prototype._addToClosestCluster=function(e){for(var n,i=4e6,o=null,a=(e.getPosition(),0);n=this._clusters[a];a++){var r=n.getCenter();if(r){var s=this._map.getDistance(r,e.getPosition());s<i&&(i=s,o=n)}}if(o&&o.isMarkerInClusterBounds(e))o.addMarker(e);else{var n=new t(this);n.addMarker(e),this._clusters.push(n)}},d.prototype._clearLastClusters=function(){for(var t,e=0;t=this._clusters[e];e++)t.remove();this._clusters=[],this._removeMarkersFromCluster()},d.prototype._removeMarkersFromCluster=function(){for(var t,e=0;t=this._markers[e];e++)t.isInCluster=!1},d.prototype._removeMarkersFromMap=function(){for(var t,e=0;t=this._markers[e];e++){t.isInCluster=!1;var n=t.getLabel();this._map.removeOverlay(t),t.setLabel(n)}},d.prototype._removeMarker=function(t){var e=p(t,this._markers);return-1!==e&&(this._map.removeOverlay(t),this._markers.splice(e,1),!0)},d.prototype.removeMarker=function(t){var e=this._removeMarker(t);return e&&(this._clearLastClusters(),this._createClusters()),e},d.prototype.removeMarkers=function(t){for(var e=!1,n=0;n<t.length;n++){var i=this._removeMarker(t[n]);e=e||i}return e&&(this._clearLastClusters(),this._createClusters()),e},d.prototype.clearMarkers=function(){this._clearLastClusters(),this._removeMarkersFromMap(),this._markers=[]},d.prototype._redraw=function(){this._clearLastClusters(),this._createClusters()},d.prototype.getGridSize=function(){return this._gridSize},d.prototype.setGridSize=function(t){this._gridSize=t,this._redraw()},d.prototype.getMaxZoom=function(){return this._maxZoom},d.prototype.setMaxZoom=function(t){this._maxZoom=t,this._redraw()},d.prototype.getStyles=function(){return this._styles},d.prototype.setStyles=function(t){this._styles=t,this._redraw()},d.prototype.getMinClusterSize=function(){return this._minClusterSize},d.prototype.setMinClusterSize=function(t){this._minClusterSize=t,this._redraw()},d.prototype.isAverageCenter=function(){return this._isAverageCenter},d.prototype.getMap=function(){return this._map},d.prototype.getMarkers=function(){return this._markers},d.prototype.getClustersCount=function(){for(var t,e=0,n=0;t=this._clusters[n];n++)t.isReal()&&e++;return e},t.prototype.addMarker=function(t){if(this.isMarkerInCluster(t))return!1;if(this._center){if(this._isAverageCenter){var e=this._markers.length+1,n=(this._center.lat*(e-1)+t.getPosition().lat)/e,i=(this._center.lng*(e-1)+t.getPosition().lng)/e;this._center=new BMap.Point(i,n),this.updateGridBounds()}}else this._center=t.getPosition(),this.updateGridBounds();t.isInCluster=!0,this._markers.push(t);var o=this._markers.length;if(o<this._minClusterSize)return this._map.addOverlay(t),!0;if(o===this._minClusterSize)for(var a=0;a<o;a++){var r=this._markers[a].getLabel();this._markers[a].getMap()&&this._map.removeOverlay(this._markers[a]),this._markers[a].setLabel(r)}return this._map.addOverlay(this._clusterMarker),this._isReal=!0,this.updateClusterMarker(),!0},t.prototype.isMarkerInCluster=function(t){if(this._markers.indexOf)return-1!=this._markers.indexOf(t);for(var e,n=0;e=this._markers[n];n++)if(e===t)return!0;return!1},t.prototype.isMarkerInClusterBounds=function(t){return this._gridBounds.containsPoint(t.getPosition())},t.prototype.isReal=function(t){return this._isReal},t.prototype.updateGridBounds=function(){var t=new BMap.Bounds(this._center,this._center);this._gridBounds=l(this._map,t,this._markerClusterer.getGridSize())},t.prototype.updateClusterMarker=function(){if(this._map.getZoom()>this._markerClusterer.getMaxZoom()){this._clusterMarker&&this._map.removeOverlay(this._clusterMarker);for(var t,e=0;t=this._markers[e];e++)this._map.addOverlay(t)}else{if(this._markers.length<this._minClusterSize)return void this._clusterMarker.hide();this._clusterMarker.setPosition(this._center),this._clusterMarker.setText(this._markers.length),this._clusterMarker.addEventListener&&!this._clusterMarker._hasClickEvent&&this._clusterMarker.addEventListener(\"click\",function(t){this._clusterMarker._hasClickEvent=!0,this._markers&&this._map.setViewport(this.getBounds())}.bind(this))}},t.prototype.remove=function(){for(var t=0;this._markers[t];t++){var e=this._markers[t].getLabel();this._markers[t].getMap()&&this._map.removeOverlay(this._markers[t]),this._markers[t].setLabel(e)}this._map.removeOverlay(this._clusterMarker),this._markers.length=0,delete this._markers},t.prototype.getBounds=function(){for(var t,e=new BMap.Bounds(this._center,this._center),n=0;t=this._markers[n];n++)e.extend(t.getPosition());return e},t.prototype.getCenter=function(){return this._center},d})}).call(e,n(3))},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement;return(t._self._c||e)(\"div\")},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement;return(t._self._c||e)(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:t.show,expression:\"show\"}]},[t._t(\"default\")],2)},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement;return(t._self._c||e)(\"div\",[t._t(\"default\")],2)},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement;return(t._self._c||e)(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:t.panel,expression:\"panel\"}]},[t._t(\"default\")],2)},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return t.paths.length?n(\"div\",t._l(t.paths,function(e,i){return n(\"bm-polygon\",{key:i,attrs:{path:e,\"stroke-color\":t.strokeColor,\"stroke-weight\":t.strokeWeight,\"stroke-opacity\":t.strokeOpacity,\"stroke-style\":t.strokeStyle,\"fill-opacity\":t.fillOpacity,\"fill-color\":t.fillColor,\"mass-clear\":t.massClear,clicking:t.clicking},on:{click:function(e){t.$emit(\"click\",e)},dblclick:function(e){t.$emit(\"dblclick\",e)},mousedown:function(e){t.$emit(\"mousedown\",e)},mouseup:function(e){t.$emit(\"mouseup\",e)},mouseout:function(e){t.$emit(\"mouseout\",e)},mouseover:function(e){t.$emit(\"mouseover\",e)},remove:function(e){t.$emit(\"remove\",e)}}})})):t._e()},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement;return(t._self._c||e)(\"div\",[t._t(\"default\")],2)},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement;return(t._self._c||e)(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:t.panel,expression:\"panel\"}]},[t._t(\"default\")],2)},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement;return(t._self._c||e)(\"span\",[t._t(\"default\")],2)},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement;return(t._self._c||e)(\"span\",[t._t(\"default\")],2)},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement;return(t._self._c||e)(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:t.panel,expression:\"panel\"}]})},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement;return(t._self._c||e)(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:t.panel,expression:\"panel\"}]},[t._t(\"default\")],2)},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement;return(t._self._c||e)(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:t.panel,expression:\"panel\"}]},[t._t(\"default\")],2)},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement;return(t._self._c||e)(\"div\",[t._t(\"default\")],2)},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n(\"span\",[t._t(\"default\",[n(\"input\")])],2)},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement;return(t._self._c||e)(\"div\",[t._t(\"default\")],2)},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n(\"div\",[t.hasBmView?t._e():n(\"div\",{ref:\"view\",staticStyle:{width:\"100%\",height:\"100%\"}}),t._v(\" \"),t._t(\"default\")],2)},staticRenderFns:[]}}])});","/*!\n * html2canvas 1.0.0-rc.7 <https://html2canvas.hertzen.com>\n * Copyright (c) 2020 Niklas von Hertzen <https://hertzen.com>\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 <https://github.com/niklasvh/css-line-break#readme>\n * Copyright (c) 2019 Niklas von Hertzen <https://hertzen.com>\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,<svg xmlns='http://www.w3.org/2000/svg'></svg>\";\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 <img /> 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 <style> sheets when fetched through getComputedStyle\r\n if window url is about:blank, we can assign the url to current by writing onto the document\r\n */\r\n var iframeLoad = iframeLoader(iframe).then(function () { return __awaiter(_this, void 0, void 0, function () {\r\n var onclone;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.scrolledElements.forEach(restoreNodeScroll);\r\n if (cloneWindow) {\r\n cloneWindow.scrollTo(windowSize.left, windowSize.top);\r\n if (/(iPad|iPhone|iPod)/g.test(navigator.userAgent) &&\r\n (cloneWindow.scrollY !== windowSize.top || cloneWindow.scrollX !== windowSize.left)) {\r\n documentClone.documentElement.style.top = -windowSize.top + 'px';\r\n documentClone.documentElement.style.left = -windowSize.left + 'px';\r\n documentClone.documentElement.style.position = 'absolute';\r\n }\r\n }\r\n onclone = this.options.onclone;\r\n if (typeof this.clonedReferenceElement === 'undefined') {\r\n return [2 /*return*/, Promise.reject(\"Error finding the \" + this.referenceElement.nodeName + \" in the cloned document\")];\r\n }\r\n if (!(documentClone.fonts && documentClone.fonts.ready)) return [3 /*break*/, 2];\r\n return [4 /*yield*/, documentClone.fonts.ready];\r\n case 1:\r\n _a.sent();\r\n _a.label = 2;\r\n case 2:\r\n if (typeof onclone === 'function') {\r\n return [2 /*return*/, Promise.resolve()\r\n .then(function () { return onclone(documentClone); })\r\n .then(function () { return iframe; })];\r\n }\r\n return [2 /*return*/, iframe];\r\n }\r\n });\r\n }); });\r\n documentClone.open();\r\n documentClone.write(serializeDoctype(document.doctype) + \"<html></html>\");\r\n // Chrome scrolls the parent document for some reason after the write to the cloned window???\r\n restoreOwnerScroll(this.referenceElement.ownerDocument, scrollX, scrollY);\r\n documentClone.replaceChild(documentClone.adoptNode(this.documentElement), documentClone.documentElement);\r\n documentClone.close();\r\n return iframeLoad;\r\n };\r\n DocumentCloner.prototype.createElementClone = function (node) {\r\n if (isCanvasElement(node)) {\r\n return this.createCanvasClone(node);\r\n }\r\n /*\r\n if (isIFrameElement(node)) {\r\n return this.createIFrameClone(node);\r\n }\r\n */\r\n if (isStyleElement(node)) {\r\n return this.createStyleClone(node);\r\n }\r\n var clone = node.cloneNode(false);\r\n // @ts-ignore\r\n if (isImageElement(clone) && clone.loading === 'lazy') {\r\n // @ts-ignore\r\n clone.loading = 'eager';\r\n }\r\n return clone;\r\n };\r\n DocumentCloner.prototype.createStyleClone = function (node) {\r\n try {\r\n var sheet = node.sheet;\r\n if (sheet && sheet.cssRules) {\r\n var css = [].slice.call(sheet.cssRules, 0).reduce(function (css, rule) {\r\n if (rule && typeof rule.cssText === 'string') {\r\n return css + rule.cssText;\r\n }\r\n return css;\r\n }, '');\r\n var style = node.cloneNode(false);\r\n style.textContent = css;\r\n return style;\r\n }\r\n }\r\n catch (e) {\r\n // accessing node.sheet.cssRules throws a DOMException\r\n Logger.getInstance(this.options.id).error('Unable to access cssRules property', e);\r\n if (e.name !== 'SecurityError') {\r\n throw e;\r\n }\r\n }\r\n return node.cloneNode(false);\r\n };\r\n DocumentCloner.prototype.createCanvasClone = function (canvas) {\r\n if (this.options.inlineImages && canvas.ownerDocument) {\r\n var img = canvas.ownerDocument.createElement('img');\r\n try {\r\n img.src = canvas.toDataURL();\r\n return img;\r\n }\r\n catch (e) {\r\n Logger.getInstance(this.options.id).info(\"Unable to clone canvas contents, canvas is tainted\");\r\n }\r\n }\r\n var clonedCanvas = canvas.cloneNode(false);\r\n try {\r\n clonedCanvas.width = canvas.width;\r\n clonedCanvas.height = canvas.height;\r\n var ctx = canvas.getContext('2d');\r\n var clonedCtx = clonedCanvas.getContext('2d');\r\n if (clonedCtx) {\r\n if (ctx) {\r\n clonedCtx.putImageData(ctx.getImageData(0, 0, canvas.width, canvas.height), 0, 0);\r\n }\r\n else {\r\n clonedCtx.drawImage(canvas, 0, 0);\r\n }\r\n }\r\n return clonedCanvas;\r\n }\r\n catch (e) { }\r\n return clonedCanvas;\r\n };\r\n /*\r\n createIFrameClone(iframe: HTMLIFrameElement) {\r\n const tempIframe = <HTMLIFrameElement>iframe.cloneNode(false);\r\n const iframeKey = generateIframeKey();\r\n tempIframe.setAttribute('data-html2canvas-internal-iframe-key', iframeKey);\r\n\n const {width, height} = parseBounds(iframe);\r\n\n this.resourceLoader.cache[iframeKey] = getIframeDocumentElement(iframe, this.options)\r\n .then(documentElement => {\r\n return this.renderer(\r\n documentElement,\r\n {\r\n allowTaint: this.options.allowTaint,\r\n backgroundColor: '#ffffff',\r\n canvas: null,\r\n imageTimeout: this.options.imageTimeout,\r\n logging: this.options.logging,\r\n proxy: this.options.proxy,\r\n removeContainer: this.options.removeContainer,\r\n scale: this.options.scale,\r\n foreignObjectRendering: this.options.foreignObjectRendering,\r\n useCORS: this.options.useCORS,\r\n target: new CanvasRenderer(),\r\n width,\r\n height,\r\n x: 0,\r\n y: 0,\r\n windowWidth: documentElement.ownerDocument.defaultView.innerWidth,\r\n windowHeight: documentElement.ownerDocument.defaultView.innerHeight,\r\n scrollX: documentElement.ownerDocument.defaultView.pageXOffset,\r\n scrollY: documentElement.ownerDocument.defaultView.pageYOffset\r\n },\r\n );\r\n })\r\n .then(\r\n (canvas: HTMLCanvasElement) =>\r\n new Promise((resolve, reject) => {\r\n const iframeCanvas = document.createElement('img');\r\n iframeCanvas.onload = () => resolve(canvas);\r\n iframeCanvas.onerror = (event) => {\r\n // Empty iframes may result in empty \"data:,\" URLs, which are invalid from the <img>'s point of view\r\n // and instead of `onload` cause `onerror` and unhandled rejection warnings\r\n // https://github.com/niklasvh/html2canvas/issues/1502\r\n iframeCanvas.src == 'data:,' ? resolve(canvas) : reject(event);\r\n };\r\n iframeCanvas.src = canvas.toDataURL();\r\n if (tempIframe.parentNode && iframe.ownerDocument && iframe.ownerDocument.defaultView) {\r\n tempIframe.parentNode.replaceChild(\r\n copyCSSStyles(\r\n iframe.ownerDocument.defaultView.getComputedStyle(iframe),\r\n iframeCanvas\r\n ),\r\n tempIframe\r\n );\r\n }\r\n })\r\n );\r\n return tempIframe;\r\n }\r\n */\r\n DocumentCloner.prototype.cloneNode = function (node) {\r\n if (isTextNode(node)) {\r\n return document.createTextNode(node.data);\r\n }\r\n if (!node.ownerDocument) {\r\n return node.cloneNode(false);\r\n }\r\n var window = node.ownerDocument.defaultView;\r\n if (window && isElementNode(node) && (isHTMLElementNode(node) || isSVGElementNode(node))) {\r\n var clone = this.createElementClone(node);\r\n var style = window.getComputedStyle(node);\r\n var styleBefore = window.getComputedStyle(node, ':before');\r\n var styleAfter = window.getComputedStyle(node, ':after');\r\n if (this.referenceElement === node && isHTMLElementNode(clone)) {\r\n this.clonedReferenceElement = clone;\r\n }\r\n if (isBodyElement(clone)) {\r\n createPseudoHideStyles(clone);\r\n }\r\n var counters = this.counters.parse(new CSSParsedCounterDeclaration(style));\r\n var before = this.resolvePseudoContent(node, clone, styleBefore, PseudoElementType.BEFORE);\r\n for (var child = node.firstChild; child; child = child.nextSibling) {\r\n if (!isElementNode(child) ||\r\n (!isScriptElement(child) &&\r\n !child.hasAttribute(IGNORE_ATTRIBUTE) &&\r\n (typeof this.options.ignoreElements !== 'function' || !this.options.ignoreElements(child)))) {\r\n if (!this.options.copyStyles || !isElementNode(child) || !isStyleElement(child)) {\r\n clone.appendChild(this.cloneNode(child));\r\n }\r\n }\r\n }\r\n if (before) {\r\n clone.insertBefore(before, clone.firstChild);\r\n }\r\n var after = this.resolvePseudoContent(node, clone, styleAfter, PseudoElementType.AFTER);\r\n if (after) {\r\n clone.appendChild(after);\r\n }\r\n this.counters.pop(counters);\r\n if (style && (this.options.copyStyles || isSVGElementNode(node)) && !isIFrameElement(node)) {\r\n copyCSSStyles(style, clone);\r\n }\r\n //this.inlineAllImages(clone);\r\n if (node.scrollTop !== 0 || node.scrollLeft !== 0) {\r\n this.scrolledElements.push([clone, node.scrollLeft, node.scrollTop]);\r\n }\r\n if ((isTextareaElement(node) || isSelectElement(node)) &&\r\n (isTextareaElement(clone) || isSelectElement(clone))) {\r\n clone.value = node.value;\r\n }\r\n return clone;\r\n }\r\n return node.cloneNode(false);\r\n };\r\n DocumentCloner.prototype.resolvePseudoContent = function (node, clone, style, pseudoElt) {\r\n var _this = this;\r\n if (!style) {\r\n return;\r\n }\r\n var value = style.content;\r\n var document = clone.ownerDocument;\r\n if (!document || !value || value === 'none' || value === '-moz-alt-content' || style.display === 'none') {\r\n return;\r\n }\r\n this.counters.parse(new CSSParsedCounterDeclaration(style));\r\n var declaration = new CSSParsedPseudoDeclaration(style);\r\n var anonymousReplacedElement = document.createElement('html2canvaspseudoelement');\r\n copyCSSStyles(style, anonymousReplacedElement);\r\n declaration.content.forEach(function (token) {\r\n if (token.type === TokenType.STRING_TOKEN) {\r\n anonymousReplacedElement.appendChild(document.createTextNode(token.value));\r\n }\r\n else if (token.type === TokenType.URL_TOKEN) {\r\n var img = document.createElement('img');\r\n img.src = token.value;\r\n img.style.opacity = '1';\r\n anonymousReplacedElement.appendChild(img);\r\n }\r\n else if (token.type === TokenType.FUNCTION) {\r\n if (token.name === 'attr') {\r\n var attr = token.values.filter(isIdentToken);\r\n if (attr.length) {\r\n anonymousReplacedElement.appendChild(document.createTextNode(node.getAttribute(attr[0].value) || ''));\r\n }\r\n }\r\n else if (token.name === 'counter') {\r\n var _a = token.values.filter(nonFunctionArgSeparator), counter = _a[0], counterStyle = _a[1];\r\n if (counter && isIdentToken(counter)) {\r\n var counterState = _this.counters.getCounterValue(counter.value);\r\n var counterType = counterStyle && isIdentToken(counterStyle)\r\n ? listStyleType.parse(counterStyle.value)\r\n : LIST_STYLE_TYPE.DECIMAL;\r\n anonymousReplacedElement.appendChild(document.createTextNode(createCounterText(counterState, counterType, false)));\r\n }\r\n }\r\n else if (token.name === 'counters') {\r\n var _b = token.values.filter(nonFunctionArgSeparator), counter = _b[0], delim = _b[1], counterStyle = _b[2];\r\n if (counter && isIdentToken(counter)) {\r\n var counterStates = _this.counters.getCounterValues(counter.value);\r\n var counterType_1 = counterStyle && isIdentToken(counterStyle)\r\n ? listStyleType.parse(counterStyle.value)\r\n : LIST_STYLE_TYPE.DECIMAL;\r\n var separator = delim && delim.type === TokenType.STRING_TOKEN ? delim.value : '';\r\n var text = counterStates\r\n .map(function (value) { return createCounterText(value, counterType_1, false); })\r\n .join(separator);\r\n anonymousReplacedElement.appendChild(document.createTextNode(text));\r\n }\r\n }\r\n }\r\n else if (token.type === TokenType.IDENT_TOKEN) {\r\n switch (token.value) {\r\n case 'open-quote':\r\n anonymousReplacedElement.appendChild(document.createTextNode(getQuote(declaration.quotes, _this.quoteDepth++, true)));\r\n break;\r\n case 'close-quote':\r\n anonymousReplacedElement.appendChild(document.createTextNode(getQuote(declaration.quotes, --_this.quoteDepth, false)));\r\n break;\r\n default:\r\n // safari doesn't parse string tokens correctly because of lack of quotes\r\n anonymousReplacedElement.appendChild(document.createTextNode(token.value));\r\n }\r\n }\r\n });\r\n anonymousReplacedElement.className = PSEUDO_HIDE_ELEMENT_CLASS_BEFORE + \" \" + PSEUDO_HIDE_ELEMENT_CLASS_AFTER;\r\n var newClassName = pseudoElt === PseudoElementType.BEFORE\r\n ? \" \" + PSEUDO_HIDE_ELEMENT_CLASS_BEFORE\r\n : \" \" + PSEUDO_HIDE_ELEMENT_CLASS_AFTER;\r\n if (isSVGElementNode(clone)) {\r\n clone.className.baseValue += newClassName;\r\n }\r\n else {\r\n clone.className += newClassName;\r\n }\r\n return anonymousReplacedElement;\r\n };\r\n DocumentCloner.destroy = function (container) {\r\n if (container.parentNode) {\r\n container.parentNode.removeChild(container);\r\n return true;\r\n }\r\n return false;\r\n };\r\n return DocumentCloner;\r\n }());\r\n var PseudoElementType;\r\n (function (PseudoElementType) {\r\n PseudoElementType[PseudoElementType[\"BEFORE\"] = 0] = \"BEFORE\";\r\n PseudoElementType[PseudoElementType[\"AFTER\"] = 1] = \"AFTER\";\r\n })(PseudoElementType || (PseudoElementType = {}));\r\n var createIFrameContainer = function (ownerDocument, bounds) {\r\n var cloneIframeContainer = ownerDocument.createElement('iframe');\r\n cloneIframeContainer.className = 'html2canvas-container';\r\n cloneIframeContainer.style.visibility = 'hidden';\r\n cloneIframeContainer.style.position = 'fixed';\r\n cloneIframeContainer.style.left = '-10000px';\r\n cloneIframeContainer.style.top = '0px';\r\n cloneIframeContainer.style.border = '0';\r\n cloneIframeContainer.width = bounds.width.toString();\r\n cloneIframeContainer.height = bounds.height.toString();\r\n cloneIframeContainer.scrolling = 'no'; // ios won't scroll without it\r\n cloneIframeContainer.setAttribute(IGNORE_ATTRIBUTE, 'true');\r\n ownerDocument.body.appendChild(cloneIframeContainer);\r\n return cloneIframeContainer;\r\n };\r\n var iframeLoader = function (iframe) {\r\n return new Promise(function (resolve, reject) {\r\n var cloneWindow = iframe.contentWindow;\r\n if (!cloneWindow) {\r\n return reject(\"No window assigned for iframe\");\r\n }\r\n var documentClone = cloneWindow.document;\r\n cloneWindow.onload = iframe.onload = documentClone.onreadystatechange = function () {\r\n cloneWindow.onload = iframe.onload = documentClone.onreadystatechange = null;\r\n var interval = setInterval(function () {\r\n if (documentClone.body.childNodes.length > 0 && documentClone.readyState === 'complete') {\r\n clearInterval(interval);\r\n resolve(iframe);\r\n }\r\n }, 50);\r\n };\r\n });\r\n };\r\n var copyCSSStyles = function (style, target) {\r\n // Edge does not provide value for cssText\r\n for (var i = style.length - 1; i >= 0; i--) {\r\n var property = style.item(i);\r\n // Safari shows pseudoelements if content is set\r\n if (property !== 'content') {\r\n target.style.setProperty(property, style.getPropertyValue(property));\r\n }\r\n }\r\n return target;\r\n };\r\n var serializeDoctype = function (doctype) {\r\n var str = '';\r\n if (doctype) {\r\n str += '<!DOCTYPE ';\r\n if (doctype.name) {\r\n str += doctype.name;\r\n }\r\n if (doctype.internalSubset) {\r\n str += doctype.internalSubset;\r\n }\r\n if (doctype.publicId) {\r\n str += \"\\\"\" + doctype.publicId + \"\\\"\";\r\n }\r\n if (doctype.systemId) {\r\n str += \"\\\"\" + doctype.systemId + \"\\\"\";\r\n }\r\n str += '>';\r\n }\r\n return str;\r\n };\r\n var restoreOwnerScroll = function (ownerDocument, x, y) {\r\n if (ownerDocument &&\r\n ownerDocument.defaultView &&\r\n (x !== ownerDocument.defaultView.pageXOffset || y !== ownerDocument.defaultView.pageYOffset)) {\r\n ownerDocument.defaultView.scrollTo(x, y);\r\n }\r\n };\r\n var restoreNodeScroll = function (_a) {\r\n var element = _a[0], x = _a[1], y = _a[2];\r\n element.scrollLeft = x;\r\n element.scrollTop = y;\r\n };\r\n var PSEUDO_BEFORE = ':before';\r\n var PSEUDO_AFTER = ':after';\r\n var PSEUDO_HIDE_ELEMENT_CLASS_BEFORE = '___html2canvas___pseudoelement_before';\r\n var PSEUDO_HIDE_ELEMENT_CLASS_AFTER = '___html2canvas___pseudoelement_after';\r\n var PSEUDO_HIDE_ELEMENT_STYLE = \"{\\n content: \\\"\\\" !important;\\n display: none !important;\\n}\";\r\n var createPseudoHideStyles = function (body) {\r\n createStyles(body, \".\" + PSEUDO_HIDE_ELEMENT_CLASS_BEFORE + PSEUDO_BEFORE + PSEUDO_HIDE_ELEMENT_STYLE + \"\\n .\" + PSEUDO_HIDE_ELEMENT_CLASS_AFTER + PSEUDO_AFTER + PSEUDO_HIDE_ELEMENT_STYLE);\r\n };\r\n var createStyles = function (body, styles) {\r\n var document = body.ownerDocument;\r\n if (document) {\r\n var style = document.createElement('style');\r\n style.textContent = styles;\r\n body.appendChild(style);\r\n }\r\n };\n\n var PathType;\r\n (function (PathType) {\r\n PathType[PathType[\"VECTOR\"] = 0] = \"VECTOR\";\r\n PathType[PathType[\"BEZIER_CURVE\"] = 1] = \"BEZIER_CURVE\";\r\n })(PathType || (PathType = {}));\r\n var equalPath = function (a, b) {\r\n if (a.length === b.length) {\r\n return a.some(function (v, i) { return v === b[i]; });\r\n }\r\n return false;\r\n };\r\n var transformPath = function (path, deltaX, deltaY, deltaW, deltaH) {\r\n return path.map(function (point, index) {\r\n switch (index) {\r\n case 0:\r\n return point.add(deltaX, deltaY);\r\n case 1:\r\n return point.add(deltaX + deltaW, deltaY);\r\n case 2:\r\n return point.add(deltaX + deltaW, deltaY + deltaH);\r\n case 3:\r\n return point.add(deltaX, deltaY + deltaH);\r\n }\r\n return point;\r\n });\r\n };\n\n var Vector = /** @class */ (function () {\r\n function Vector(x, y) {\r\n this.type = PathType.VECTOR;\r\n this.x = x;\r\n this.y = y;\r\n }\r\n Vector.prototype.add = function (deltaX, deltaY) {\r\n return new Vector(this.x + deltaX, this.y + deltaY);\r\n };\r\n return Vector;\r\n }());\n\n var lerp = function (a, b, t) {\r\n return new Vector(a.x + (b.x - a.x) * t, a.y + (b.y - a.y) * t);\r\n };\r\n var BezierCurve = /** @class */ (function () {\r\n function BezierCurve(start, startControl, endControl, end) {\r\n this.type = PathType.BEZIER_CURVE;\r\n this.start = start;\r\n this.startControl = startControl;\r\n this.endControl = endControl;\r\n this.end = end;\r\n }\r\n BezierCurve.prototype.subdivide = function (t, firstHalf) {\r\n var ab = lerp(this.start, this.startControl, t);\r\n var bc = lerp(this.startControl, this.endControl, t);\r\n var cd = lerp(this.endControl, this.end, t);\r\n var abbc = lerp(ab, bc, t);\r\n var bccd = lerp(bc, cd, t);\r\n var dest = lerp(abbc, bccd, t);\r\n return firstHalf ? new BezierCurve(this.start, ab, abbc, dest) : new BezierCurve(dest, bccd, cd, this.end);\r\n };\r\n BezierCurve.prototype.add = function (deltaX, deltaY) {\r\n return new BezierCurve(this.start.add(deltaX, deltaY), this.startControl.add(deltaX, deltaY), this.endControl.add(deltaX, deltaY), this.end.add(deltaX, deltaY));\r\n };\r\n BezierCurve.prototype.reverse = function () {\r\n return new BezierCurve(this.end, this.endControl, this.startControl, this.start);\r\n };\r\n return BezierCurve;\r\n }());\r\n var isBezierCurve = function (path) { return path.type === PathType.BEZIER_CURVE; };\n\n var BoundCurves = /** @class */ (function () {\r\n function BoundCurves(element) {\r\n var styles = element.styles;\r\n var bounds = element.bounds;\r\n var _a = getAbsoluteValueForTuple(styles.borderTopLeftRadius, bounds.width, bounds.height), tlh = _a[0], tlv = _a[1];\r\n var _b = getAbsoluteValueForTuple(styles.borderTopRightRadius, bounds.width, bounds.height), trh = _b[0], trv = _b[1];\r\n var _c = getAbsoluteValueForTuple(styles.borderBottomRightRadius, bounds.width, bounds.height), brh = _c[0], brv = _c[1];\r\n var _d = getAbsoluteValueForTuple(styles.borderBottomLeftRadius, bounds.width, bounds.height), blh = _d[0], blv = _d[1];\r\n var factors = [];\r\n factors.push((tlh + trh) / bounds.width);\r\n factors.push((blh + brh) / bounds.width);\r\n factors.push((tlv + blv) / bounds.height);\r\n factors.push((trv + brv) / bounds.height);\r\n var maxFactor = Math.max.apply(Math, factors);\r\n if (maxFactor > 1) {\r\n tlh /= maxFactor;\r\n tlv /= maxFactor;\r\n trh /= maxFactor;\r\n trv /= maxFactor;\r\n brh /= maxFactor;\r\n brv /= maxFactor;\r\n blh /= maxFactor;\r\n blv /= maxFactor;\r\n }\r\n var topWidth = bounds.width - trh;\r\n var rightHeight = bounds.height - brv;\r\n var bottomWidth = bounds.width - brh;\r\n var leftHeight = bounds.height - blv;\r\n var borderTopWidth = styles.borderTopWidth;\r\n var borderRightWidth = styles.borderRightWidth;\r\n var borderBottomWidth = styles.borderBottomWidth;\r\n var borderLeftWidth = styles.borderLeftWidth;\r\n var paddingTop = getAbsoluteValue(styles.paddingTop, element.bounds.width);\r\n var paddingRight = getAbsoluteValue(styles.paddingRight, element.bounds.width);\r\n var paddingBottom = getAbsoluteValue(styles.paddingBottom, element.bounds.width);\r\n var paddingLeft = getAbsoluteValue(styles.paddingLeft, element.bounds.width);\r\n this.topLeftBorderBox =\r\n tlh > 0 || tlv > 0\r\n ? getCurvePoints(bounds.left, bounds.top, tlh, tlv, CORNER.TOP_LEFT)\r\n : new Vector(bounds.left, bounds.top);\r\n this.topRightBorderBox =\r\n trh > 0 || trv > 0\r\n ? getCurvePoints(bounds.left + topWidth, bounds.top, trh, trv, CORNER.TOP_RIGHT)\r\n : new Vector(bounds.left + bounds.width, bounds.top);\r\n this.bottomRightBorderBox =\r\n brh > 0 || brv > 0\r\n ? getCurvePoints(bounds.left + bottomWidth, bounds.top + rightHeight, brh, brv, CORNER.BOTTOM_RIGHT)\r\n : new Vector(bounds.left + bounds.width, bounds.top + bounds.height);\r\n this.bottomLeftBorderBox =\r\n blh > 0 || blv > 0\r\n ? getCurvePoints(bounds.left, bounds.top + leftHeight, blh, blv, CORNER.BOTTOM_LEFT)\r\n : new Vector(bounds.left, bounds.top + bounds.height);\r\n this.topLeftPaddingBox =\r\n tlh > 0 || tlv > 0\r\n ? getCurvePoints(bounds.left + borderLeftWidth, bounds.top + borderTopWidth, Math.max(0, tlh - borderLeftWidth), Math.max(0, tlv - borderTopWidth), CORNER.TOP_LEFT)\r\n : new Vector(bounds.left + borderLeftWidth, bounds.top + borderTopWidth);\r\n this.topRightPaddingBox =\r\n trh > 0 || trv > 0\r\n ? getCurvePoints(bounds.left + Math.min(topWidth, bounds.width + borderLeftWidth), bounds.top + borderTopWidth, topWidth > bounds.width + borderLeftWidth ? 0 : trh - borderLeftWidth, trv - borderTopWidth, CORNER.TOP_RIGHT)\r\n : new Vector(bounds.left + bounds.width - borderRightWidth, bounds.top + borderTopWidth);\r\n this.bottomRightPaddingBox =\r\n brh > 0 || brv > 0\r\n ? getCurvePoints(bounds.left + Math.min(bottomWidth, bounds.width - borderLeftWidth), bounds.top + Math.min(rightHeight, bounds.height + borderTopWidth), Math.max(0, brh - borderRightWidth), brv - borderBottomWidth, CORNER.BOTTOM_RIGHT)\r\n : new Vector(bounds.left + bounds.width - borderRightWidth, bounds.top + bounds.height - borderBottomWidth);\r\n this.bottomLeftPaddingBox =\r\n blh > 0 || blv > 0\r\n ? getCurvePoints(bounds.left + borderLeftWidth, bounds.top + leftHeight, Math.max(0, blh - borderLeftWidth), blv - borderBottomWidth, CORNER.BOTTOM_LEFT)\r\n : new Vector(bounds.left + borderLeftWidth, bounds.top + bounds.height - borderBottomWidth);\r\n this.topLeftContentBox =\r\n tlh > 0 || tlv > 0\r\n ? getCurvePoints(bounds.left + borderLeftWidth + paddingLeft, bounds.top + borderTopWidth + paddingTop, Math.max(0, tlh - (borderLeftWidth + paddingLeft)), Math.max(0, tlv - (borderTopWidth + paddingTop)), CORNER.TOP_LEFT)\r\n : new Vector(bounds.left + borderLeftWidth + paddingLeft, bounds.top + borderTopWidth + paddingTop);\r\n this.topRightContentBox =\r\n trh > 0 || trv > 0\r\n ? getCurvePoints(bounds.left + Math.min(topWidth, bounds.width + borderLeftWidth + paddingLeft), bounds.top + borderTopWidth + paddingTop, topWidth > bounds.width + borderLeftWidth + paddingLeft ? 0 : trh - borderLeftWidth + paddingLeft, trv - (borderTopWidth + paddingTop), CORNER.TOP_RIGHT)\r\n : new Vector(bounds.left + bounds.width - (borderRightWidth + paddingRight), bounds.top + borderTopWidth + paddingTop);\r\n this.bottomRightContentBox =\r\n brh > 0 || brv > 0\r\n ? getCurvePoints(bounds.left + Math.min(bottomWidth, bounds.width - (borderLeftWidth + paddingLeft)), bounds.top + Math.min(rightHeight, bounds.height + borderTopWidth + paddingTop), Math.max(0, brh - (borderRightWidth + paddingRight)), brv - (borderBottomWidth + paddingBottom), CORNER.BOTTOM_RIGHT)\r\n : new Vector(bounds.left + bounds.width - (borderRightWidth + paddingRight), bounds.top + bounds.height - (borderBottomWidth + paddingBottom));\r\n this.bottomLeftContentBox =\r\n blh > 0 || blv > 0\r\n ? getCurvePoints(bounds.left + borderLeftWidth + paddingLeft, bounds.top + leftHeight, Math.max(0, blh - (borderLeftWidth + paddingLeft)), blv - (borderBottomWidth + paddingBottom), CORNER.BOTTOM_LEFT)\r\n : new Vector(bounds.left + borderLeftWidth + paddingLeft, bounds.top + bounds.height - (borderBottomWidth + paddingBottom));\r\n }\r\n return BoundCurves;\r\n }());\r\n var CORNER;\r\n (function (CORNER) {\r\n CORNER[CORNER[\"TOP_LEFT\"] = 0] = \"TOP_LEFT\";\r\n CORNER[CORNER[\"TOP_RIGHT\"] = 1] = \"TOP_RIGHT\";\r\n CORNER[CORNER[\"BOTTOM_RIGHT\"] = 2] = \"BOTTOM_RIGHT\";\r\n CORNER[CORNER[\"BOTTOM_LEFT\"] = 3] = \"BOTTOM_LEFT\";\r\n })(CORNER || (CORNER = {}));\r\n var getCurvePoints = function (x, y, r1, r2, position) {\r\n var kappa = 4 * ((Math.sqrt(2) - 1) / 3);\r\n var ox = r1 * kappa; // control point offset horizontal\r\n var oy = r2 * kappa; // control point offset vertical\r\n var xm = x + r1; // x-middle\r\n var ym = y + r2; // y-middle\r\n switch (position) {\r\n case CORNER.TOP_LEFT:\r\n return new BezierCurve(new Vector(x, ym), new Vector(x, ym - oy), new Vector(xm - ox, y), new Vector(xm, y));\r\n case CORNER.TOP_RIGHT:\r\n return new BezierCurve(new Vector(x, y), new Vector(x + ox, y), new Vector(xm, ym - oy), new Vector(xm, ym));\r\n case CORNER.BOTTOM_RIGHT:\r\n return new BezierCurve(new Vector(xm, y), new Vector(xm, y + oy), new Vector(x + ox, ym), new Vector(x, ym));\r\n case CORNER.BOTTOM_LEFT:\r\n default:\r\n return new BezierCurve(new Vector(xm, ym), new Vector(xm - ox, ym), new Vector(x, y + oy), new Vector(x, y));\r\n }\r\n };\r\n var calculateBorderBoxPath = function (curves) {\r\n return [curves.topLeftBorderBox, curves.topRightBorderBox, curves.bottomRightBorderBox, curves.bottomLeftBorderBox];\r\n };\r\n var calculateContentBoxPath = function (curves) {\r\n return [\r\n curves.topLeftContentBox,\r\n curves.topRightContentBox,\r\n curves.bottomRightContentBox,\r\n curves.bottomLeftContentBox\r\n ];\r\n };\r\n var calculatePaddingBoxPath = function (curves) {\r\n return [\r\n curves.topLeftPaddingBox,\r\n curves.topRightPaddingBox,\r\n curves.bottomRightPaddingBox,\r\n curves.bottomLeftPaddingBox\r\n ];\r\n };\n\n var TransformEffect = /** @class */ (function () {\r\n function TransformEffect(offsetX, offsetY, matrix) {\r\n this.type = 0 /* TRANSFORM */;\r\n this.offsetX = offsetX;\r\n this.offsetY = offsetY;\r\n this.matrix = matrix;\r\n this.target = 2 /* BACKGROUND_BORDERS */ | 4 /* CONTENT */;\r\n }\r\n return TransformEffect;\r\n }());\r\n var ClipEffect = /** @class */ (function () {\r\n function ClipEffect(path, target) {\r\n this.type = 1 /* CLIP */;\r\n this.target = target;\r\n this.path = path;\r\n }\r\n return ClipEffect;\r\n }());\r\n var isTransformEffect = function (effect) {\r\n return effect.type === 0 /* TRANSFORM */;\r\n };\r\n var isClipEffect = function (effect) { return effect.type === 1 /* CLIP */; };\n\n var StackingContext = /** @class */ (function () {\r\n function StackingContext(container) {\r\n this.element = container;\r\n this.inlineLevel = [];\r\n this.nonInlineLevel = [];\r\n this.negativeZIndex = [];\r\n this.zeroOrAutoZIndexOrTransformedOrOpacity = [];\r\n this.positiveZIndex = [];\r\n this.nonPositionedFloats = [];\r\n this.nonPositionedInlineLevel = [];\r\n }\r\n return StackingContext;\r\n }());\r\n var ElementPaint = /** @class */ (function () {\r\n function ElementPaint(element, parentStack) {\r\n this.container = element;\r\n this.effects = parentStack.slice(0);\r\n this.curves = new BoundCurves(element);\r\n if (element.styles.transform !== null) {\r\n var offsetX = element.bounds.left + element.styles.transformOrigin[0].number;\r\n var offsetY = element.bounds.top + element.styles.transformOrigin[1].number;\r\n var matrix = element.styles.transform;\r\n this.effects.push(new TransformEffect(offsetX, offsetY, matrix));\r\n }\r\n if (element.styles.overflowX !== OVERFLOW.VISIBLE) {\r\n var borderBox = calculateBorderBoxPath(this.curves);\r\n var paddingBox = calculatePaddingBoxPath(this.curves);\r\n if (equalPath(borderBox, paddingBox)) {\r\n this.effects.push(new ClipEffect(borderBox, 2 /* BACKGROUND_BORDERS */ | 4 /* CONTENT */));\r\n }\r\n else {\r\n this.effects.push(new ClipEffect(borderBox, 2 /* BACKGROUND_BORDERS */));\r\n this.effects.push(new ClipEffect(paddingBox, 4 /* CONTENT */));\r\n }\r\n }\r\n }\r\n ElementPaint.prototype.getParentEffects = function () {\r\n var effects = this.effects.slice(0);\r\n if (this.container.styles.overflowX !== OVERFLOW.VISIBLE) {\r\n var borderBox = calculateBorderBoxPath(this.curves);\r\n var paddingBox = calculatePaddingBoxPath(this.curves);\r\n if (!equalPath(borderBox, paddingBox)) {\r\n effects.push(new ClipEffect(paddingBox, 2 /* BACKGROUND_BORDERS */ | 4 /* CONTENT */));\r\n }\r\n }\r\n return effects;\r\n };\r\n return ElementPaint;\r\n }());\r\n var parseStackTree = function (parent, stackingContext, realStackingContext, listItems) {\r\n parent.container.elements.forEach(function (child) {\r\n var treatAsRealStackingContext = contains(child.flags, 4 /* CREATES_REAL_STACKING_CONTEXT */);\r\n var createsStackingContext = contains(child.flags, 2 /* CREATES_STACKING_CONTEXT */);\r\n var paintContainer = new ElementPaint(child, parent.getParentEffects());\r\n if (contains(child.styles.display, 2048 /* LIST_ITEM */)) {\r\n listItems.push(paintContainer);\r\n }\r\n var listOwnerItems = contains(child.flags, 8 /* IS_LIST_OWNER */) ? [] : listItems;\r\n if (treatAsRealStackingContext || createsStackingContext) {\r\n var parentStack = treatAsRealStackingContext || child.styles.isPositioned() ? realStackingContext : stackingContext;\r\n var stack = new StackingContext(paintContainer);\r\n if (child.styles.isPositioned() || child.styles.opacity < 1 || child.styles.isTransformed()) {\r\n var order_1 = child.styles.zIndex.order;\r\n if (order_1 < 0) {\r\n var index_1 = 0;\r\n parentStack.negativeZIndex.some(function (current, i) {\r\n if (order_1 > current.element.container.styles.zIndex.order) {\r\n index_1 = i;\r\n return false;\r\n }\r\n else if (index_1 > 0) {\r\n return true;\r\n }\r\n return false;\r\n });\r\n parentStack.negativeZIndex.splice(index_1, 0, stack);\r\n }\r\n else if (order_1 > 0) {\r\n var index_2 = 0;\r\n parentStack.positiveZIndex.some(function (current, i) {\r\n if (order_1 >= current.element.container.styles.zIndex.order) {\r\n index_2 = i + 1;\r\n return false;\r\n }\r\n else if (index_2 > 0) {\r\n return true;\r\n }\r\n return false;\r\n });\r\n parentStack.positiveZIndex.splice(index_2, 0, stack);\r\n }\r\n else {\r\n parentStack.zeroOrAutoZIndexOrTransformedOrOpacity.push(stack);\r\n }\r\n }\r\n else {\r\n if (child.styles.isFloating()) {\r\n parentStack.nonPositionedFloats.push(stack);\r\n }\r\n else {\r\n parentStack.nonPositionedInlineLevel.push(stack);\r\n }\r\n }\r\n parseStackTree(paintContainer, stack, treatAsRealStackingContext ? stack : realStackingContext, listOwnerItems);\r\n }\r\n else {\r\n if (child.styles.isInlineLevel()) {\r\n stackingContext.inlineLevel.push(paintContainer);\r\n }\r\n else {\r\n stackingContext.nonInlineLevel.push(paintContainer);\r\n }\r\n parseStackTree(paintContainer, stackingContext, realStackingContext, listOwnerItems);\r\n }\r\n if (contains(child.flags, 8 /* IS_LIST_OWNER */)) {\r\n processListItems(child, listOwnerItems);\r\n }\r\n });\r\n };\r\n var processListItems = function (owner, elements) {\r\n var numbering = owner instanceof OLElementContainer ? owner.start : 1;\r\n var reversed = owner instanceof OLElementContainer ? owner.reversed : false;\r\n for (var i = 0; i < elements.length; i++) {\r\n var item = elements[i];\r\n if (item.container instanceof LIElementContainer &&\r\n typeof item.container.value === 'number' &&\r\n item.container.value !== 0) {\r\n numbering = item.container.value;\r\n }\r\n item.listValue = createCounterText(numbering, item.container.styles.listStyleType, true);\r\n numbering += reversed ? -1 : 1;\r\n }\r\n };\r\n var parseStackingContexts = function (container) {\r\n var paintContainer = new ElementPaint(container, []);\r\n var root = new StackingContext(paintContainer);\r\n var listItems = [];\r\n parseStackTree(paintContainer, root, root, listItems);\r\n processListItems(paintContainer.container, listItems);\r\n return root;\r\n };\n\n var parsePathForBorder = function (curves, borderSide) {\r\n switch (borderSide) {\r\n case 0:\r\n return createPathFromCurves(curves.topLeftBorderBox, curves.topLeftPaddingBox, curves.topRightBorderBox, curves.topRightPaddingBox);\r\n case 1:\r\n return createPathFromCurves(curves.topRightBorderBox, curves.topRightPaddingBox, curves.bottomRightBorderBox, curves.bottomRightPaddingBox);\r\n case 2:\r\n return createPathFromCurves(curves.bottomRightBorderBox, curves.bottomRightPaddingBox, curves.bottomLeftBorderBox, curves.bottomLeftPaddingBox);\r\n case 3:\r\n default:\r\n return createPathFromCurves(curves.bottomLeftBorderBox, curves.bottomLeftPaddingBox, curves.topLeftBorderBox, curves.topLeftPaddingBox);\r\n }\r\n };\r\n var createPathFromCurves = function (outer1, inner1, outer2, inner2) {\r\n var path = [];\r\n if (isBezierCurve(outer1)) {\r\n path.push(outer1.subdivide(0.5, false));\r\n }\r\n else {\r\n path.push(outer1);\r\n }\r\n if (isBezierCurve(outer2)) {\r\n path.push(outer2.subdivide(0.5, true));\r\n }\r\n else {\r\n path.push(outer2);\r\n }\r\n if (isBezierCurve(inner2)) {\r\n path.push(inner2.subdivide(0.5, true).reverse());\r\n }\r\n else {\r\n path.push(inner2);\r\n }\r\n if (isBezierCurve(inner1)) {\r\n path.push(inner1.subdivide(0.5, false).reverse());\r\n }\r\n else {\r\n path.push(inner1);\r\n }\r\n return path;\r\n };\n\n var paddingBox = function (element) {\r\n var bounds = element.bounds;\r\n var styles = element.styles;\r\n return bounds.add(styles.borderLeftWidth, styles.borderTopWidth, -(styles.borderRightWidth + styles.borderLeftWidth), -(styles.borderTopWidth + styles.borderBottomWidth));\r\n };\r\n var contentBox = function (element) {\r\n var styles = element.styles;\r\n var bounds = element.bounds;\r\n var paddingLeft = getAbsoluteValue(styles.paddingLeft, bounds.width);\r\n var paddingRight = getAbsoluteValue(styles.paddingRight, bounds.width);\r\n var paddingTop = getAbsoluteValue(styles.paddingTop, bounds.width);\r\n var paddingBottom = getAbsoluteValue(styles.paddingBottom, bounds.width);\r\n return bounds.add(paddingLeft + styles.borderLeftWidth, paddingTop + styles.borderTopWidth, -(styles.borderRightWidth + styles.borderLeftWidth + paddingLeft + paddingRight), -(styles.borderTopWidth + styles.borderBottomWidth + paddingTop + paddingBottom));\r\n };\n\n var calculateBackgroundPositioningArea = function (backgroundOrigin, element) {\r\n if (backgroundOrigin === 0 /* BORDER_BOX */) {\r\n return element.bounds;\r\n }\r\n if (backgroundOrigin === 2 /* CONTENT_BOX */) {\r\n return contentBox(element);\r\n }\r\n return paddingBox(element);\r\n };\r\n var calculateBackgroundPaintingArea = function (backgroundClip, element) {\r\n if (backgroundClip === BACKGROUND_CLIP.BORDER_BOX) {\r\n return element.bounds;\r\n }\r\n if (backgroundClip === BACKGROUND_CLIP.CONTENT_BOX) {\r\n return contentBox(element);\r\n }\r\n return paddingBox(element);\r\n };\r\n var calculateBackgroundRendering = function (container, index, intrinsicSize) {\r\n var backgroundPositioningArea = calculateBackgroundPositioningArea(getBackgroundValueForIndex(container.styles.backgroundOrigin, index), container);\r\n var backgroundPaintingArea = calculateBackgroundPaintingArea(getBackgroundValueForIndex(container.styles.backgroundClip, index), container);\r\n var backgroundImageSize = calculateBackgroundSize(getBackgroundValueForIndex(container.styles.backgroundSize, index), intrinsicSize, backgroundPositioningArea);\r\n var sizeWidth = backgroundImageSize[0], sizeHeight = backgroundImageSize[1];\r\n var position = getAbsoluteValueForTuple(getBackgroundValueForIndex(container.styles.backgroundPosition, index), backgroundPositioningArea.width - sizeWidth, backgroundPositioningArea.height - sizeHeight);\r\n var path = calculateBackgroundRepeatPath(getBackgroundValueForIndex(container.styles.backgroundRepeat, index), position, backgroundImageSize, backgroundPositioningArea, backgroundPaintingArea);\r\n var offsetX = Math.round(backgroundPositioningArea.left + position[0]);\r\n var offsetY = Math.round(backgroundPositioningArea.top + position[1]);\r\n return [path, offsetX, offsetY, sizeWidth, sizeHeight];\r\n };\r\n var isAuto = function (token) { return isIdentToken(token) && token.value === BACKGROUND_SIZE.AUTO; };\r\n var hasIntrinsicValue = function (value) { return typeof value === 'number'; };\r\n var calculateBackgroundSize = function (size, _a, bounds) {\r\n var intrinsicWidth = _a[0], intrinsicHeight = _a[1], intrinsicProportion = _a[2];\r\n var first = size[0], second = size[1];\r\n if (isLengthPercentage(first) && second && isLengthPercentage(second)) {\r\n return [getAbsoluteValue(first, bounds.width), getAbsoluteValue(second, bounds.height)];\r\n }\r\n var hasIntrinsicProportion = hasIntrinsicValue(intrinsicProportion);\r\n if (isIdentToken(first) && (first.value === BACKGROUND_SIZE.CONTAIN || first.value === BACKGROUND_SIZE.COVER)) {\r\n if (hasIntrinsicValue(intrinsicProportion)) {\r\n var targetRatio = bounds.width / bounds.height;\r\n return targetRatio < intrinsicProportion !== (first.value === BACKGROUND_SIZE.COVER)\r\n ? [bounds.width, bounds.width / intrinsicProportion]\r\n : [bounds.height * intrinsicProportion, bounds.height];\r\n }\r\n return [bounds.width, bounds.height];\r\n }\r\n var hasIntrinsicWidth = hasIntrinsicValue(intrinsicWidth);\r\n var hasIntrinsicHeight = hasIntrinsicValue(intrinsicHeight);\r\n var hasIntrinsicDimensions = hasIntrinsicWidth || hasIntrinsicHeight;\r\n // If the background-size is auto or auto auto:\r\n if (isAuto(first) && (!second || isAuto(second))) {\r\n // If the image has both horizontal and vertical intrinsic dimensions, it's rendered at that size.\r\n if (hasIntrinsicWidth && hasIntrinsicHeight) {\r\n return [intrinsicWidth, intrinsicHeight];\r\n }\r\n // If the image has no intrinsic dimensions and has no intrinsic proportions,\r\n // it's rendered at the size of the background positioning area.\r\n if (!hasIntrinsicProportion && !hasIntrinsicDimensions) {\r\n return [bounds.width, bounds.height];\r\n }\r\n // TODO If the image has no intrinsic dimensions but has intrinsic proportions, it's rendered as if contain had been specified instead.\r\n // If the image has only one intrinsic dimension and has intrinsic proportions, it's rendered at the size corresponding to that one dimension.\r\n // The other dimension is computed using the specified dimension and the intrinsic proportions.\r\n if (hasIntrinsicDimensions && hasIntrinsicProportion) {\r\n var width_1 = hasIntrinsicWidth\r\n ? intrinsicWidth\r\n : intrinsicHeight * intrinsicProportion;\r\n var height_1 = hasIntrinsicHeight\r\n ? intrinsicHeight\r\n : intrinsicWidth / intrinsicProportion;\r\n return [width_1, height_1];\r\n }\r\n // If the image has only one intrinsic dimension but has no intrinsic proportions,\r\n // it's rendered using the specified dimension and the other dimension of the background positioning area.\r\n var width_2 = hasIntrinsicWidth ? intrinsicWidth : bounds.width;\r\n var height_2 = hasIntrinsicHeight ? intrinsicHeight : bounds.height;\r\n return [width_2, height_2];\r\n }\r\n // If the image has intrinsic proportions, it's stretched to the specified dimension.\r\n // The unspecified dimension is computed using the specified dimension and the intrinsic proportions.\r\n if (hasIntrinsicProportion) {\r\n var width_3 = 0;\r\n var height_3 = 0;\r\n if (isLengthPercentage(first)) {\r\n width_3 = getAbsoluteValue(first, bounds.width);\r\n }\r\n else if (isLengthPercentage(second)) {\r\n height_3 = getAbsoluteValue(second, bounds.height);\r\n }\r\n if (isAuto(first)) {\r\n width_3 = height_3 * intrinsicProportion;\r\n }\r\n else if (!second || isAuto(second)) {\r\n height_3 = width_3 / intrinsicProportion;\r\n }\r\n return [width_3, height_3];\r\n }\r\n // If the image has no intrinsic proportions, it's stretched to the specified dimension.\r\n // The unspecified dimension is computed using the image's corresponding intrinsic dimension,\r\n // if there is one. If there is no such intrinsic dimension,\r\n // it becomes the corresponding dimension of the background positioning area.\r\n var width = null;\r\n var height = null;\r\n if (isLengthPercentage(first)) {\r\n width = getAbsoluteValue(first, bounds.width);\r\n }\r\n else if (second && isLengthPercentage(second)) {\r\n height = getAbsoluteValue(second, bounds.height);\r\n }\r\n if (width !== null && (!second || isAuto(second))) {\r\n height =\r\n hasIntrinsicWidth && hasIntrinsicHeight\r\n ? (width / intrinsicWidth) * intrinsicHeight\r\n : bounds.height;\r\n }\r\n if (height !== null && isAuto(first)) {\r\n width =\r\n hasIntrinsicWidth && hasIntrinsicHeight\r\n ? (height / intrinsicHeight) * intrinsicWidth\r\n : bounds.width;\r\n }\r\n if (width !== null && height !== null) {\r\n return [width, height];\r\n }\r\n throw new Error(\"Unable to calculate background-size for element\");\r\n };\r\n var getBackgroundValueForIndex = function (values, index) {\r\n var value = values[index];\r\n if (typeof value === 'undefined') {\r\n return values[0];\r\n }\r\n return value;\r\n };\r\n var calculateBackgroundRepeatPath = function (repeat, _a, _b, backgroundPositioningArea, backgroundPaintingArea) {\r\n var x = _a[0], y = _a[1];\r\n var width = _b[0], height = _b[1];\r\n switch (repeat) {\r\n case BACKGROUND_REPEAT.REPEAT_X:\r\n return [\r\n new Vector(Math.round(backgroundPositioningArea.left), Math.round(backgroundPositioningArea.top + y)),\r\n new Vector(Math.round(backgroundPositioningArea.left + backgroundPositioningArea.width), Math.round(backgroundPositioningArea.top + y)),\r\n new Vector(Math.round(backgroundPositioningArea.left + backgroundPositioningArea.width), Math.round(height + backgroundPositioningArea.top + y)),\r\n new Vector(Math.round(backgroundPositioningArea.left), Math.round(height + backgroundPositioningArea.top + y))\r\n ];\r\n case BACKGROUND_REPEAT.REPEAT_Y:\r\n return [\r\n new Vector(Math.round(backgroundPositioningArea.left + x), Math.round(backgroundPositioningArea.top)),\r\n new Vector(Math.round(backgroundPositioningArea.left + x + width), Math.round(backgroundPositioningArea.top)),\r\n new Vector(Math.round(backgroundPositioningArea.left + x + width), Math.round(backgroundPositioningArea.height + backgroundPositioningArea.top)),\r\n new Vector(Math.round(backgroundPositioningArea.left + x), Math.round(backgroundPositioningArea.height + backgroundPositioningArea.top))\r\n ];\r\n case BACKGROUND_REPEAT.NO_REPEAT:\r\n return [\r\n new Vector(Math.round(backgroundPositioningArea.left + x), Math.round(backgroundPositioningArea.top + y)),\r\n new Vector(Math.round(backgroundPositioningArea.left + x + width), Math.round(backgroundPositioningArea.top + y)),\r\n new Vector(Math.round(backgroundPositioningArea.left + x + width), Math.round(backgroundPositioningArea.top + y + height)),\r\n new Vector(Math.round(backgroundPositioningArea.left + x), Math.round(backgroundPositioningArea.top + y + height))\r\n ];\r\n default:\r\n return [\r\n new Vector(Math.round(backgroundPaintingArea.left), Math.round(backgroundPaintingArea.top)),\r\n new Vector(Math.round(backgroundPaintingArea.left + backgroundPaintingArea.width), Math.round(backgroundPaintingArea.top)),\r\n new Vector(Math.round(backgroundPaintingArea.left + backgroundPaintingArea.width), Math.round(backgroundPaintingArea.height + backgroundPaintingArea.top)),\r\n new Vector(Math.round(backgroundPaintingArea.left), Math.round(backgroundPaintingArea.height + backgroundPaintingArea.top))\r\n ];\r\n }\r\n };\n\n var SMALL_IMAGE = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7';\n\n var SAMPLE_TEXT = 'Hidden Text';\r\n var FontMetrics = /** @class */ (function () {\r\n function FontMetrics(document) {\r\n this._data = {};\r\n this._document = document;\r\n }\r\n FontMetrics.prototype.parseMetrics = function (fontFamily, fontSize) {\r\n var container = this._document.createElement('div');\r\n var img = this._document.createElement('img');\r\n var span = this._document.createElement('span');\r\n var body = this._document.body;\r\n container.style.visibility = 'hidden';\r\n container.style.fontFamily = fontFamily;\r\n container.style.fontSize = fontSize;\r\n container.style.margin = '0';\r\n container.style.padding = '0';\r\n body.appendChild(container);\r\n img.src = SMALL_IMAGE;\r\n img.width = 1;\r\n img.height = 1;\r\n img.style.margin = '0';\r\n img.style.padding = '0';\r\n img.style.verticalAlign = 'baseline';\r\n span.style.fontFamily = fontFamily;\r\n span.style.fontSize = fontSize;\r\n span.style.margin = '0';\r\n span.style.padding = '0';\r\n span.appendChild(this._document.createTextNode(SAMPLE_TEXT));\r\n container.appendChild(span);\r\n container.appendChild(img);\r\n var baseline = img.offsetTop - span.offsetTop + 2;\r\n container.removeChild(span);\r\n container.appendChild(this._document.createTextNode(SAMPLE_TEXT));\r\n container.style.lineHeight = 'normal';\r\n img.style.verticalAlign = 'super';\r\n var middle = img.offsetTop - container.offsetTop + 2;\r\n body.removeChild(container);\r\n return { baseline: baseline, middle: middle };\r\n };\r\n FontMetrics.prototype.getMetrics = function (fontFamily, fontSize) {\r\n var key = fontFamily + \" \" + fontSize;\r\n if (typeof this._data[key] === 'undefined') {\r\n this._data[key] = this.parseMetrics(fontFamily, fontSize);\r\n }\r\n return this._data[key];\r\n };\r\n return FontMetrics;\r\n }());\n\n var MASK_OFFSET = 10000;\r\n var CanvasRenderer = /** @class */ (function () {\r\n function CanvasRenderer(options) {\r\n this._activeEffects = [];\r\n this.canvas = options.canvas ? options.canvas : document.createElement('canvas');\r\n this.ctx = this.canvas.getContext('2d');\r\n this.options = options;\r\n if (!options.canvas) {\r\n this.canvas.width = Math.floor(options.width * options.scale);\r\n this.canvas.height = Math.floor(options.height * options.scale);\r\n this.canvas.style.width = options.width + \"px\";\r\n this.canvas.style.height = options.height + \"px\";\r\n }\r\n this.fontMetrics = new FontMetrics(document);\r\n this.ctx.scale(this.options.scale, this.options.scale);\r\n this.ctx.translate(-options.x + options.scrollX, -options.y + options.scrollY);\r\n this.ctx.textBaseline = 'bottom';\r\n this._activeEffects = [];\r\n Logger.getInstance(options.id).debug(\"Canvas renderer initialized (\" + options.width + \"x\" + options.height + \" at \" + options.x + \",\" + options.y + \") with scale \" + options.scale);\r\n }\r\n CanvasRenderer.prototype.applyEffects = function (effects, target) {\r\n var _this = this;\r\n while (this._activeEffects.length) {\r\n this.popEffect();\r\n }\r\n effects.filter(function (effect) { return contains(effect.target, target); }).forEach(function (effect) { return _this.applyEffect(effect); });\r\n };\r\n CanvasRenderer.prototype.applyEffect = function (effect) {\r\n this.ctx.save();\r\n if (isTransformEffect(effect)) {\r\n this.ctx.translate(effect.offsetX, effect.offsetY);\r\n this.ctx.transform(effect.matrix[0], effect.matrix[1], effect.matrix[2], effect.matrix[3], effect.matrix[4], effect.matrix[5]);\r\n this.ctx.translate(-effect.offsetX, -effect.offsetY);\r\n }\r\n if (isClipEffect(effect)) {\r\n this.path(effect.path);\r\n this.ctx.clip();\r\n }\r\n this._activeEffects.push(effect);\r\n };\r\n CanvasRenderer.prototype.popEffect = function () {\r\n this._activeEffects.pop();\r\n this.ctx.restore();\r\n };\r\n CanvasRenderer.prototype.renderStack = function (stack) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var styles;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n styles = stack.element.container.styles;\r\n if (!styles.isVisible()) return [3 /*break*/, 2];\r\n this.ctx.globalAlpha = styles.opacity;\r\n return [4 /*yield*/, this.renderStackContent(stack)];\r\n case 1:\r\n _a.sent();\r\n _a.label = 2;\r\n case 2: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n CanvasRenderer.prototype.renderNode = function (paint) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!paint.container.styles.isVisible()) return [3 /*break*/, 3];\r\n return [4 /*yield*/, this.renderNodeBackgroundAndBorders(paint)];\r\n case 1:\r\n _a.sent();\r\n return [4 /*yield*/, this.renderNodeContent(paint)];\r\n case 2:\r\n _a.sent();\r\n _a.label = 3;\r\n case 3: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n CanvasRenderer.prototype.renderTextWithLetterSpacing = function (text, letterSpacing) {\r\n var _this = this;\r\n if (letterSpacing === 0) {\r\n this.ctx.fillText(text.text, text.bounds.left, text.bounds.top + text.bounds.height);\r\n }\r\n else {\r\n var letters = toCodePoints(text.text).map(function (i) { return fromCodePoint(i); });\r\n letters.reduce(function (left, letter) {\r\n _this.ctx.fillText(letter, left, text.bounds.top + text.bounds.height);\r\n return left + _this.ctx.measureText(letter).width;\r\n }, text.bounds.left);\r\n }\r\n };\r\n CanvasRenderer.prototype.createFontStyle = function (styles) {\r\n var fontVariant = styles.fontVariant\r\n .filter(function (variant) { return variant === 'normal' || variant === 'small-caps'; })\r\n .join('');\r\n var fontFamily = styles.fontFamily.join(', ');\r\n var fontSize = isDimensionToken(styles.fontSize)\r\n ? \"\" + styles.fontSize.number + styles.fontSize.unit\r\n : styles.fontSize.number + \"px\";\r\n return [\r\n [styles.fontStyle, fontVariant, styles.fontWeight, fontSize, fontFamily].join(' '),\r\n fontFamily,\r\n fontSize\r\n ];\r\n };\r\n CanvasRenderer.prototype.renderTextNode = function (text, styles) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _a, font, fontFamily, fontSize;\r\n var _this = this;\r\n return __generator(this, function (_b) {\r\n _a = this.createFontStyle(styles), font = _a[0], fontFamily = _a[1], fontSize = _a[2];\r\n this.ctx.font = font;\r\n text.textBounds.forEach(function (text) {\r\n _this.ctx.fillStyle = asString(styles.color);\r\n _this.renderTextWithLetterSpacing(text, styles.letterSpacing);\r\n var textShadows = styles.textShadow;\r\n if (textShadows.length && text.text.trim().length) {\r\n textShadows\r\n .slice(0)\r\n .reverse()\r\n .forEach(function (textShadow) {\r\n _this.ctx.shadowColor = asString(textShadow.color);\r\n _this.ctx.shadowOffsetX = textShadow.offsetX.number * _this.options.scale;\r\n _this.ctx.shadowOffsetY = textShadow.offsetY.number * _this.options.scale;\r\n _this.ctx.shadowBlur = textShadow.blur.number;\r\n _this.ctx.fillText(text.text, text.bounds.left, text.bounds.top + text.bounds.height);\r\n });\r\n _this.ctx.shadowColor = '';\r\n _this.ctx.shadowOffsetX = 0;\r\n _this.ctx.shadowOffsetY = 0;\r\n _this.ctx.shadowBlur = 0;\r\n }\r\n if (styles.textDecorationLine.length) {\r\n _this.ctx.fillStyle = asString(styles.textDecorationColor || styles.color);\r\n styles.textDecorationLine.forEach(function (textDecorationLine) {\r\n switch (textDecorationLine) {\r\n case 1 /* UNDERLINE */:\r\n // Draws a line at the baseline of the font\r\n // TODO As some browsers display the line as more than 1px if the font-size is big,\r\n // need to take that into account both in position and size\r\n var baseline = _this.fontMetrics.getMetrics(fontFamily, fontSize).baseline;\r\n _this.ctx.fillRect(text.bounds.left, Math.round(text.bounds.top + baseline), text.bounds.width, 1);\r\n break;\r\n case 2 /* OVERLINE */:\r\n _this.ctx.fillRect(text.bounds.left, Math.round(text.bounds.top), text.bounds.width, 1);\r\n break;\r\n case 3 /* LINE_THROUGH */:\r\n // TODO try and find exact position for line-through\r\n var middle = _this.fontMetrics.getMetrics(fontFamily, fontSize).middle;\r\n _this.ctx.fillRect(text.bounds.left, Math.ceil(text.bounds.top + middle), text.bounds.width, 1);\r\n break;\r\n }\r\n });\r\n }\r\n });\r\n return [2 /*return*/];\r\n });\r\n });\r\n };\r\n CanvasRenderer.prototype.renderReplacedElement = function (container, curves, image) {\r\n if (image && container.intrinsicWidth > 0 && container.intrinsicHeight > 0) {\r\n var box = contentBox(container);\r\n var path = calculatePaddingBoxPath(curves);\r\n this.path(path);\r\n this.ctx.save();\r\n this.ctx.clip();\r\n this.ctx.drawImage(image, 0, 0, container.intrinsicWidth, container.intrinsicHeight, box.left, box.top, box.width, box.height);\r\n this.ctx.restore();\r\n }\r\n };\r\n CanvasRenderer.prototype.renderNodeContent = function (paint) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var container, curves, styles, _i, _a, child, image, e_1, image, e_2, iframeRenderer, canvas, size, bounds, x, textBounds, img, image, url, e_3, bounds;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n this.applyEffects(paint.effects, 4 /* CONTENT */);\r\n container = paint.container;\r\n curves = paint.curves;\r\n styles = container.styles;\r\n _i = 0, _a = container.textNodes;\r\n _b.label = 1;\r\n case 1:\r\n if (!(_i < _a.length)) return [3 /*break*/, 4];\r\n child = _a[_i];\r\n return [4 /*yield*/, this.renderTextNode(child, styles)];\r\n case 2:\r\n _b.sent();\r\n _b.label = 3;\r\n case 3:\r\n _i++;\r\n return [3 /*break*/, 1];\r\n case 4:\r\n if (!(container instanceof ImageElementContainer)) return [3 /*break*/, 8];\r\n _b.label = 5;\r\n case 5:\r\n _b.trys.push([5, 7, , 8]);\r\n return [4 /*yield*/, this.options.cache.match(container.src)];\r\n case 6:\r\n image = _b.sent();\r\n this.renderReplacedElement(container, curves, image);\r\n return [3 /*break*/, 8];\r\n case 7:\r\n e_1 = _b.sent();\r\n Logger.getInstance(this.options.id).error(\"Error loading image \" + container.src);\r\n return [3 /*break*/, 8];\r\n case 8:\r\n if (container instanceof CanvasElementContainer) {\r\n this.renderReplacedElement(container, curves, container.canvas);\r\n }\r\n if (!(container instanceof SVGElementContainer)) return [3 /*break*/, 12];\r\n _b.label = 9;\r\n case 9:\r\n _b.trys.push([9, 11, , 12]);\r\n return [4 /*yield*/, this.options.cache.match(container.svg)];\r\n case 10:\r\n image = _b.sent();\r\n this.renderReplacedElement(container, curves, image);\r\n return [3 /*break*/, 12];\r\n case 11:\r\n e_2 = _b.sent();\r\n Logger.getInstance(this.options.id).error(\"Error loading svg \" + container.svg.substring(0, 255));\r\n return [3 /*break*/, 12];\r\n case 12:\r\n if (!(container instanceof IFrameElementContainer && container.tree)) return [3 /*break*/, 14];\r\n iframeRenderer = new CanvasRenderer({\r\n id: this.options.id,\r\n scale: this.options.scale,\r\n backgroundColor: container.backgroundColor,\r\n x: 0,\r\n y: 0,\r\n scrollX: 0,\r\n scrollY: 0,\r\n width: container.width,\r\n height: container.height,\r\n cache: this.options.cache,\r\n windowWidth: container.width,\r\n windowHeight: container.height\r\n });\r\n return [4 /*yield*/, iframeRenderer.render(container.tree)];\r\n case 13:\r\n canvas = _b.sent();\r\n if (container.width && container.height) {\r\n this.ctx.drawImage(canvas, 0, 0, container.width, container.height, container.bounds.left, container.bounds.top, container.bounds.width, container.bounds.height);\r\n }\r\n _b.label = 14;\r\n case 14:\r\n if (container instanceof InputElementContainer) {\r\n size = Math.min(container.bounds.width, container.bounds.height);\r\n if (container.type === CHECKBOX) {\r\n if (container.checked) {\r\n this.ctx.save();\r\n this.path([\r\n new Vector(container.bounds.left + size * 0.39363, container.bounds.top + size * 0.79),\r\n new Vector(container.bounds.left + size * 0.16, container.bounds.top + size * 0.5549),\r\n new Vector(container.bounds.left + size * 0.27347, container.bounds.top + size * 0.44071),\r\n new Vector(container.bounds.left + size * 0.39694, container.bounds.top + size * 0.5649),\r\n new Vector(container.bounds.left + size * 0.72983, container.bounds.top + size * 0.23),\r\n new Vector(container.bounds.left + size * 0.84, container.bounds.top + size * 0.34085),\r\n new Vector(container.bounds.left + size * 0.39363, container.bounds.top + size * 0.79)\r\n ]);\r\n this.ctx.fillStyle = asString(INPUT_COLOR);\r\n this.ctx.fill();\r\n this.ctx.restore();\r\n }\r\n }\r\n else if (container.type === RADIO) {\r\n if (container.checked) {\r\n this.ctx.save();\r\n this.ctx.beginPath();\r\n this.ctx.arc(container.bounds.left + size / 2, container.bounds.top + size / 2, size / 4, 0, Math.PI * 2, true);\r\n this.ctx.fillStyle = asString(INPUT_COLOR);\r\n this.ctx.fill();\r\n this.ctx.restore();\r\n }\r\n }\r\n }\r\n if (isTextInputElement(container) && container.value.length) {\r\n this.ctx.font = this.createFontStyle(styles)[0];\r\n this.ctx.fillStyle = asString(styles.color);\r\n this.ctx.textBaseline = 'middle';\r\n this.ctx.textAlign = canvasTextAlign(container.styles.textAlign);\r\n bounds = contentBox(container);\r\n x = 0;\r\n switch (container.styles.textAlign) {\r\n case TEXT_ALIGN.CENTER:\r\n x += bounds.width / 2;\r\n break;\r\n case TEXT_ALIGN.RIGHT:\r\n x += bounds.width;\r\n break;\r\n }\r\n textBounds = bounds.add(x, 0, 0, -bounds.height / 2 + 1);\r\n this.ctx.save();\r\n this.path([\r\n new Vector(bounds.left, bounds.top),\r\n new Vector(bounds.left + bounds.width, bounds.top),\r\n new Vector(bounds.left + bounds.width, bounds.top + bounds.height),\r\n new Vector(bounds.left, bounds.top + bounds.height)\r\n ]);\r\n this.ctx.clip();\r\n this.renderTextWithLetterSpacing(new TextBounds(container.value, textBounds), styles.letterSpacing);\r\n this.ctx.restore();\r\n this.ctx.textBaseline = 'bottom';\r\n this.ctx.textAlign = 'left';\r\n }\r\n if (!contains(container.styles.display, 2048 /* LIST_ITEM */)) return [3 /*break*/, 20];\r\n if (!(container.styles.listStyleImage !== null)) return [3 /*break*/, 19];\r\n img = container.styles.listStyleImage;\r\n if (!(img.type === CSSImageType.URL)) return [3 /*break*/, 18];\r\n image = void 0;\r\n url = img.url;\r\n _b.label = 15;\r\n case 15:\r\n _b.trys.push([15, 17, , 18]);\r\n return [4 /*yield*/, this.options.cache.match(url)];\r\n case 16:\r\n image = _b.sent();\r\n this.ctx.drawImage(image, container.bounds.left - (image.width + 10), container.bounds.top);\r\n return [3 /*break*/, 18];\r\n case 17:\r\n e_3 = _b.sent();\r\n Logger.getInstance(this.options.id).error(\"Error loading list-style-image \" + url);\r\n return [3 /*break*/, 18];\r\n case 18: return [3 /*break*/, 20];\r\n case 19:\r\n if (paint.listValue && container.styles.listStyleType !== LIST_STYLE_TYPE.NONE) {\r\n this.ctx.font = this.createFontStyle(styles)[0];\r\n this.ctx.fillStyle = asString(styles.color);\r\n this.ctx.textBaseline = 'middle';\r\n this.ctx.textAlign = 'right';\r\n bounds = new Bounds(container.bounds.left, container.bounds.top + getAbsoluteValue(container.styles.paddingTop, container.bounds.width), container.bounds.width, computeLineHeight(styles.lineHeight, styles.fontSize.number) / 2 + 1);\r\n this.renderTextWithLetterSpacing(new TextBounds(paint.listValue, bounds), styles.letterSpacing);\r\n this.ctx.textBaseline = 'bottom';\r\n this.ctx.textAlign = 'left';\r\n }\r\n _b.label = 20;\r\n case 20: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n CanvasRenderer.prototype.renderStackContent = function (stack) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _i, _a, child, _b, _c, child, _d, _e, child, _f, _g, child, _h, _j, child, _k, _l, child, _m, _o, child;\r\n return __generator(this, function (_p) {\r\n switch (_p.label) {\r\n case 0: \r\n // https://www.w3.org/TR/css-position-3/#painting-order\r\n // 1. the background and borders of the element forming the stacking context.\r\n return [4 /*yield*/, this.renderNodeBackgroundAndBorders(stack.element)];\r\n case 1:\r\n // https://www.w3.org/TR/css-position-3/#painting-order\r\n // 1. the background and borders of the element forming the stacking context.\r\n _p.sent();\r\n _i = 0, _a = stack.negativeZIndex;\r\n _p.label = 2;\r\n case 2:\r\n if (!(_i < _a.length)) return [3 /*break*/, 5];\r\n child = _a[_i];\r\n return [4 /*yield*/, this.renderStack(child)];\r\n case 3:\r\n _p.sent();\r\n _p.label = 4;\r\n case 4:\r\n _i++;\r\n return [3 /*break*/, 2];\r\n case 5: \r\n // 3. For all its in-flow, non-positioned, block-level descendants in tree order:\r\n return [4 /*yield*/, this.renderNodeContent(stack.element)];\r\n case 6:\r\n // 3. For all its in-flow, non-positioned, block-level descendants in tree order:\r\n _p.sent();\r\n _b = 0, _c = stack.nonInlineLevel;\r\n _p.label = 7;\r\n case 7:\r\n if (!(_b < _c.length)) return [3 /*break*/, 10];\r\n child = _c[_b];\r\n return [4 /*yield*/, this.renderNode(child)];\r\n case 8:\r\n _p.sent();\r\n _p.label = 9;\r\n case 9:\r\n _b++;\r\n return [3 /*break*/, 7];\r\n case 10:\r\n _d = 0, _e = stack.nonPositionedFloats;\r\n _p.label = 11;\r\n case 11:\r\n if (!(_d < _e.length)) return [3 /*break*/, 14];\r\n child = _e[_d];\r\n return [4 /*yield*/, this.renderStack(child)];\r\n case 12:\r\n _p.sent();\r\n _p.label = 13;\r\n case 13:\r\n _d++;\r\n return [3 /*break*/, 11];\r\n case 14:\r\n _f = 0, _g = stack.nonPositionedInlineLevel;\r\n _p.label = 15;\r\n case 15:\r\n if (!(_f < _g.length)) return [3 /*break*/, 18];\r\n child = _g[_f];\r\n return [4 /*yield*/, this.renderStack(child)];\r\n case 16:\r\n _p.sent();\r\n _p.label = 17;\r\n case 17:\r\n _f++;\r\n return [3 /*break*/, 15];\r\n case 18:\r\n _h = 0, _j = stack.inlineLevel;\r\n _p.label = 19;\r\n case 19:\r\n if (!(_h < _j.length)) return [3 /*break*/, 22];\r\n child = _j[_h];\r\n return [4 /*yield*/, this.renderNode(child)];\r\n case 20:\r\n _p.sent();\r\n _p.label = 21;\r\n case 21:\r\n _h++;\r\n return [3 /*break*/, 19];\r\n case 22:\r\n _k = 0, _l = stack.zeroOrAutoZIndexOrTransformedOrOpacity;\r\n _p.label = 23;\r\n case 23:\r\n if (!(_k < _l.length)) return [3 /*break*/, 26];\r\n child = _l[_k];\r\n return [4 /*yield*/, this.renderStack(child)];\r\n case 24:\r\n _p.sent();\r\n _p.label = 25;\r\n case 25:\r\n _k++;\r\n return [3 /*break*/, 23];\r\n case 26:\r\n _m = 0, _o = stack.positiveZIndex;\r\n _p.label = 27;\r\n case 27:\r\n if (!(_m < _o.length)) return [3 /*break*/, 30];\r\n child = _o[_m];\r\n return [4 /*yield*/, this.renderStack(child)];\r\n case 28:\r\n _p.sent();\r\n _p.label = 29;\r\n case 29:\r\n _m++;\r\n return [3 /*break*/, 27];\r\n case 30: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n CanvasRenderer.prototype.mask = function (paths) {\r\n this.ctx.beginPath();\r\n this.ctx.moveTo(0, 0);\r\n this.ctx.lineTo(this.canvas.width, 0);\r\n this.ctx.lineTo(this.canvas.width, this.canvas.height);\r\n this.ctx.lineTo(0, this.canvas.height);\r\n this.ctx.lineTo(0, 0);\r\n this.formatPath(paths.slice(0).reverse());\r\n this.ctx.closePath();\r\n };\r\n CanvasRenderer.prototype.path = function (paths) {\r\n this.ctx.beginPath();\r\n this.formatPath(paths);\r\n this.ctx.closePath();\r\n };\r\n CanvasRenderer.prototype.formatPath = function (paths) {\r\n var _this = this;\r\n paths.forEach(function (point, index) {\r\n var start = isBezierCurve(point) ? point.start : point;\r\n if (index === 0) {\r\n _this.ctx.moveTo(start.x, start.y);\r\n }\r\n else {\r\n _this.ctx.lineTo(start.x, start.y);\r\n }\r\n if (isBezierCurve(point)) {\r\n _this.ctx.bezierCurveTo(point.startControl.x, point.startControl.y, point.endControl.x, point.endControl.y, point.end.x, point.end.y);\r\n }\r\n });\r\n };\r\n CanvasRenderer.prototype.renderRepeat = function (path, pattern, offsetX, offsetY) {\r\n this.path(path);\r\n this.ctx.fillStyle = pattern;\r\n this.ctx.translate(offsetX, offsetY);\r\n this.ctx.fill();\r\n this.ctx.translate(-offsetX, -offsetY);\r\n };\r\n CanvasRenderer.prototype.resizeImage = function (image, width, height) {\r\n if (image.width === width && image.height === height) {\r\n return image;\r\n }\r\n var canvas = this.canvas.ownerDocument.createElement('canvas');\r\n canvas.width = width;\r\n canvas.height = height;\r\n var ctx = canvas.getContext('2d');\r\n ctx.drawImage(image, 0, 0, image.width, image.height, 0, 0, width, height);\r\n return canvas;\r\n };\r\n CanvasRenderer.prototype.renderBackgroundImage = function (container) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var index, _loop_1, this_1, _i, _a, backgroundImage;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n index = container.styles.backgroundImage.length - 1;\r\n _loop_1 = function (backgroundImage) {\r\n var image, url, e_4, _a, path, x, y, width, height, pattern, _b, path, x, y, width, height, _c, lineLength, x0, x1, y0, y1, canvas, ctx, gradient_1, pattern, _d, path, left, top_1, width, height, position, x, y, _e, rx, ry, radialGradient_1, midX, midY, f, invF;\r\n return __generator(this, function (_f) {\r\n switch (_f.label) {\r\n case 0:\r\n if (!(backgroundImage.type === CSSImageType.URL)) return [3 /*break*/, 5];\r\n image = void 0;\r\n url = backgroundImage.url;\r\n _f.label = 1;\r\n case 1:\r\n _f.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this_1.options.cache.match(url)];\r\n case 2:\r\n image = _f.sent();\r\n return [3 /*break*/, 4];\r\n case 3:\r\n e_4 = _f.sent();\r\n Logger.getInstance(this_1.options.id).error(\"Error loading background-image \" + url);\r\n return [3 /*break*/, 4];\r\n case 4:\r\n if (image) {\r\n _a = calculateBackgroundRendering(container, index, [\r\n image.width,\r\n image.height,\r\n image.width / image.height\r\n ]), path = _a[0], x = _a[1], y = _a[2], width = _a[3], height = _a[4];\r\n pattern = this_1.ctx.createPattern(this_1.resizeImage(image, width, height), 'repeat');\r\n this_1.renderRepeat(path, pattern, x, y);\r\n }\r\n return [3 /*break*/, 6];\r\n case 5:\r\n if (isLinearGradient(backgroundImage)) {\r\n _b = calculateBackgroundRendering(container, index, [null, null, null]), path = _b[0], x = _b[1], y = _b[2], width = _b[3], height = _b[4];\r\n _c = calculateGradientDirection(backgroundImage.angle, width, height), lineLength = _c[0], x0 = _c[1], x1 = _c[2], y0 = _c[3], y1 = _c[4];\r\n canvas = document.createElement('canvas');\r\n canvas.width = width;\r\n canvas.height = height;\r\n ctx = canvas.getContext('2d');\r\n gradient_1 = ctx.createLinearGradient(x0, y0, x1, y1);\r\n processColorStops(backgroundImage.stops, lineLength).forEach(function (colorStop) {\r\n return gradient_1.addColorStop(colorStop.stop, asString(colorStop.color));\r\n });\r\n ctx.fillStyle = gradient_1;\r\n ctx.fillRect(0, 0, width, height);\r\n if (width > 0 && height > 0) {\r\n pattern = this_1.ctx.createPattern(canvas, 'repeat');\r\n this_1.renderRepeat(path, pattern, x, y);\r\n }\r\n }\r\n else if (isRadialGradient(backgroundImage)) {\r\n _d = calculateBackgroundRendering(container, index, [\r\n null,\r\n null,\r\n null\r\n ]), path = _d[0], left = _d[1], top_1 = _d[2], width = _d[3], height = _d[4];\r\n position = backgroundImage.position.length === 0 ? [FIFTY_PERCENT] : backgroundImage.position;\r\n x = getAbsoluteValue(position[0], width);\r\n y = getAbsoluteValue(position[position.length - 1], height);\r\n _e = calculateRadius(backgroundImage, x, y, width, height), rx = _e[0], ry = _e[1];\r\n if (rx > 0 && rx > 0) {\r\n radialGradient_1 = this_1.ctx.createRadialGradient(left + x, top_1 + y, 0, left + x, top_1 + y, rx);\r\n processColorStops(backgroundImage.stops, rx * 2).forEach(function (colorStop) {\r\n return radialGradient_1.addColorStop(colorStop.stop, asString(colorStop.color));\r\n });\r\n this_1.path(path);\r\n this_1.ctx.fillStyle = radialGradient_1;\r\n if (rx !== ry) {\r\n midX = container.bounds.left + 0.5 * container.bounds.width;\r\n midY = container.bounds.top + 0.5 * container.bounds.height;\r\n f = ry / rx;\r\n invF = 1 / f;\r\n this_1.ctx.save();\r\n this_1.ctx.translate(midX, midY);\r\n this_1.ctx.transform(1, 0, 0, f, 0, 0);\r\n this_1.ctx.translate(-midX, -midY);\r\n this_1.ctx.fillRect(left, invF * (top_1 - midY) + midY, width, height * invF);\r\n this_1.ctx.restore();\r\n }\r\n else {\r\n this_1.ctx.fill();\r\n }\r\n }\r\n }\r\n _f.label = 6;\r\n case 6:\r\n index--;\r\n return [2 /*return*/];\r\n }\r\n });\r\n };\r\n this_1 = this;\r\n _i = 0, _a = container.styles.backgroundImage.slice(0).reverse();\r\n _b.label = 1;\r\n case 1:\r\n if (!(_i < _a.length)) return [3 /*break*/, 4];\r\n backgroundImage = _a[_i];\r\n return [5 /*yield**/, _loop_1(backgroundImage)];\r\n case 2:\r\n _b.sent();\r\n _b.label = 3;\r\n case 3:\r\n _i++;\r\n return [3 /*break*/, 1];\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n CanvasRenderer.prototype.renderBorder = function (color, side, curvePoints) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n this.path(parsePathForBorder(curvePoints, side));\r\n this.ctx.fillStyle = asString(color);\r\n this.ctx.fill();\r\n return [2 /*return*/];\r\n });\r\n });\r\n };\r\n CanvasRenderer.prototype.renderNodeBackgroundAndBorders = function (paint) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var styles, hasBackground, borders, backgroundPaintingArea, side, _i, borders_1, border;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.applyEffects(paint.effects, 2 /* BACKGROUND_BORDERS */);\r\n styles = paint.container.styles;\r\n hasBackground = !isTransparent(styles.backgroundColor) || styles.backgroundImage.length;\r\n borders = [\r\n { style: styles.borderTopStyle, color: styles.borderTopColor },\r\n { style: styles.borderRightStyle, color: styles.borderRightColor },\r\n { style: styles.borderBottomStyle, color: styles.borderBottomColor },\r\n { style: styles.borderLeftStyle, color: styles.borderLeftColor }\r\n ];\r\n backgroundPaintingArea = calculateBackgroundCurvedPaintingArea(getBackgroundValueForIndex(styles.backgroundClip, 0), paint.curves);\r\n if (!(hasBackground || styles.boxShadow.length)) return [3 /*break*/, 2];\r\n this.ctx.save();\r\n this.path(backgroundPaintingArea);\r\n this.ctx.clip();\r\n if (!isTransparent(styles.backgroundColor)) {\r\n this.ctx.fillStyle = asString(styles.backgroundColor);\r\n this.ctx.fill();\r\n }\r\n return [4 /*yield*/, this.renderBackgroundImage(paint.container)];\r\n case 1:\r\n _a.sent();\r\n this.ctx.restore();\r\n styles.boxShadow\r\n .slice(0)\r\n .reverse()\r\n .forEach(function (shadow) {\r\n _this.ctx.save();\r\n var borderBoxArea = calculateBorderBoxPath(paint.curves);\r\n var maskOffset = shadow.inset ? 0 : MASK_OFFSET;\r\n var shadowPaintingArea = transformPath(borderBoxArea, -maskOffset + (shadow.inset ? 1 : -1) * shadow.spread.number, (shadow.inset ? 1 : -1) * shadow.spread.number, shadow.spread.number * (shadow.inset ? -2 : 2), shadow.spread.number * (shadow.inset ? -2 : 2));\r\n if (shadow.inset) {\r\n _this.path(borderBoxArea);\r\n _this.ctx.clip();\r\n _this.mask(shadowPaintingArea);\r\n }\r\n else {\r\n _this.mask(borderBoxArea);\r\n _this.ctx.clip();\r\n _this.path(shadowPaintingArea);\r\n }\r\n _this.ctx.shadowOffsetX = shadow.offsetX.number + maskOffset;\r\n _this.ctx.shadowOffsetY = shadow.offsetY.number;\r\n _this.ctx.shadowColor = asString(shadow.color);\r\n _this.ctx.shadowBlur = shadow.blur.number;\r\n _this.ctx.fillStyle = shadow.inset ? asString(shadow.color) : 'rgba(0,0,0,1)';\r\n _this.ctx.fill();\r\n _this.ctx.restore();\r\n });\r\n _a.label = 2;\r\n case 2:\r\n side = 0;\r\n _i = 0, borders_1 = borders;\r\n _a.label = 3;\r\n case 3:\r\n if (!(_i < borders_1.length)) return [3 /*break*/, 7];\r\n border = borders_1[_i];\r\n if (!(border.style !== BORDER_STYLE.NONE && !isTransparent(border.color))) return [3 /*break*/, 5];\r\n return [4 /*yield*/, this.renderBorder(border.color, side, paint.curves)];\r\n case 4:\r\n _a.sent();\r\n _a.label = 5;\r\n case 5:\r\n side++;\r\n _a.label = 6;\r\n case 6:\r\n _i++;\r\n return [3 /*break*/, 3];\r\n case 7: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n CanvasRenderer.prototype.render = function (element) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var stack;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (this.options.backgroundColor) {\r\n this.ctx.fillStyle = asString(this.options.backgroundColor);\r\n this.ctx.fillRect(this.options.x - this.options.scrollX, this.options.y - this.options.scrollY, this.options.width, this.options.height);\r\n }\r\n stack = parseStackingContexts(element);\r\n return [4 /*yield*/, this.renderStack(stack)];\r\n case 1:\r\n _a.sent();\r\n this.applyEffects([], 2 /* BACKGROUND_BORDERS */);\r\n return [2 /*return*/, this.canvas];\r\n }\r\n });\r\n });\r\n };\r\n return CanvasRenderer;\r\n }());\r\n var isTextInputElement = function (container) {\r\n if (container instanceof TextareaElementContainer) {\r\n return true;\r\n }\r\n else if (container instanceof SelectElementContainer) {\r\n return true;\r\n }\r\n else if (container instanceof InputElementContainer && container.type !== RADIO && container.type !== CHECKBOX) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n var calculateBackgroundCurvedPaintingArea = function (clip, curves) {\r\n switch (clip) {\r\n case BACKGROUND_CLIP.BORDER_BOX:\r\n return calculateBorderBoxPath(curves);\r\n case BACKGROUND_CLIP.CONTENT_BOX:\r\n return calculateContentBoxPath(curves);\r\n case BACKGROUND_CLIP.PADDING_BOX:\r\n default:\r\n return calculatePaddingBoxPath(curves);\r\n }\r\n };\r\n var canvasTextAlign = function (textAlign) {\r\n switch (textAlign) {\r\n case TEXT_ALIGN.CENTER:\r\n return 'center';\r\n case TEXT_ALIGN.RIGHT:\r\n return 'right';\r\n case TEXT_ALIGN.LEFT:\r\n default:\r\n return 'left';\r\n }\r\n };\n\n var ForeignObjectRenderer = /** @class */ (function () {\r\n function ForeignObjectRenderer(options) {\r\n this.canvas = options.canvas ? options.canvas : document.createElement('canvas');\r\n this.ctx = this.canvas.getContext('2d');\r\n this.options = options;\r\n this.canvas.width = Math.floor(options.width * options.scale);\r\n this.canvas.height = Math.floor(options.height * options.scale);\r\n this.canvas.style.width = options.width + \"px\";\r\n this.canvas.style.height = options.height + \"px\";\r\n this.ctx.scale(this.options.scale, this.options.scale);\r\n this.ctx.translate(-options.x + options.scrollX, -options.y + options.scrollY);\r\n Logger.getInstance(options.id).debug(\"EXPERIMENTAL ForeignObject renderer initialized (\" + options.width + \"x\" + options.height + \" at \" + options.x + \",\" + options.y + \") with scale \" + options.scale);\r\n }\r\n ForeignObjectRenderer.prototype.render = function (element) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var svg, img;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n svg = createForeignObjectSVG(Math.max(this.options.windowWidth, this.options.width) * this.options.scale, Math.max(this.options.windowHeight, this.options.height) * this.options.scale, this.options.scrollX * this.options.scale, this.options.scrollY * this.options.scale, element);\r\n return [4 /*yield*/, loadSerializedSVG$1(svg)];\r\n case 1:\r\n img = _a.sent();\r\n if (this.options.backgroundColor) {\r\n this.ctx.fillStyle = asString(this.options.backgroundColor);\r\n this.ctx.fillRect(0, 0, this.options.width * this.options.scale, this.options.height * this.options.scale);\r\n }\r\n this.ctx.drawImage(img, -this.options.x * this.options.scale, -this.options.y * this.options.scale);\r\n return [2 /*return*/, this.canvas];\r\n }\r\n });\r\n });\r\n };\r\n return ForeignObjectRenderer;\r\n }());\r\n var loadSerializedSVG$1 = function (svg) {\r\n return new Promise(function (resolve, reject) {\r\n var img = new Image();\r\n img.onload = function () {\r\n resolve(img);\r\n };\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 };\n\n var _this = undefined;\r\n var parseColor$1 = function (value) { return color.parse(Parser.create(value).parseComponentValue()); };\r\n var html2canvas = function (element, options) {\r\n if (options === void 0) { options = {}; }\r\n return renderElement(element, options);\r\n };\r\n if (typeof window !== 'undefined') {\r\n CacheStorage.setContext(window);\r\n }\r\n var renderElement = function (element, opts) { return __awaiter(_this, void 0, void 0, function () {\r\n var ownerDocument, defaultView, instanceName, _a, width, height, left, top, defaultResourceOptions, resourceOptions, defaultOptions, options, windowBounds, documentCloner, clonedElement, container, documentBackgroundColor, bodyBackgroundColor, bgColor, defaultBackgroundColor, backgroundColor, renderOptions, canvas, renderer, root, renderer;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n ownerDocument = element.ownerDocument;\r\n if (!ownerDocument) {\r\n throw new Error(\"Element is not attached to a Document\");\r\n }\r\n defaultView = ownerDocument.defaultView;\r\n if (!defaultView) {\r\n throw new Error(\"Document is not attached to a Window\");\r\n }\r\n instanceName = (Math.round(Math.random() * 1000) + Date.now()).toString(16);\r\n _a = isBodyElement(element) || isHTMLElement(element) ? parseDocumentSize(ownerDocument) : parseBounds(element), width = _a.width, height = _a.height, left = _a.left, top = _a.top;\r\n defaultResourceOptions = {\r\n allowTaint: false,\r\n imageTimeout: 15000,\r\n proxy: undefined,\r\n useCORS: false\r\n };\r\n resourceOptions = __assign({}, defaultResourceOptions, opts);\r\n defaultOptions = {\r\n backgroundColor: '#ffffff',\r\n cache: opts.cache ? opts.cache : CacheStorage.create(instanceName, resourceOptions),\r\n logging: true,\r\n removeContainer: true,\r\n foreignObjectRendering: false,\r\n scale: defaultView.devicePixelRatio || 1,\r\n windowWidth: defaultView.innerWidth,\r\n windowHeight: defaultView.innerHeight,\r\n scrollX: defaultView.pageXOffset,\r\n scrollY: defaultView.pageYOffset,\r\n x: left,\r\n y: top,\r\n width: Math.ceil(width),\r\n height: Math.ceil(height),\r\n id: instanceName\r\n };\r\n options = __assign({}, defaultOptions, resourceOptions, opts);\r\n windowBounds = new Bounds(options.scrollX, options.scrollY, options.windowWidth, options.windowHeight);\r\n Logger.create({ id: instanceName, enabled: options.logging });\r\n Logger.getInstance(instanceName).debug(\"Starting document clone\");\r\n documentCloner = new DocumentCloner(element, {\r\n id: instanceName,\r\n onclone: options.onclone,\r\n ignoreElements: options.ignoreElements,\r\n inlineImages: options.foreignObjectRendering,\r\n copyStyles: options.foreignObjectRendering\r\n });\r\n clonedElement = documentCloner.clonedReferenceElement;\r\n if (!clonedElement) {\r\n return [2 /*return*/, Promise.reject(\"Unable to find element in cloned iframe\")];\r\n }\r\n return [4 /*yield*/, documentCloner.toIFrame(ownerDocument, windowBounds)];\r\n case 1:\r\n container = _b.sent();\r\n documentBackgroundColor = ownerDocument.documentElement\r\n ? parseColor$1(getComputedStyle(ownerDocument.documentElement).backgroundColor)\r\n : COLORS.TRANSPARENT;\r\n bodyBackgroundColor = ownerDocument.body\r\n ? parseColor$1(getComputedStyle(ownerDocument.body).backgroundColor)\r\n : COLORS.TRANSPARENT;\r\n bgColor = opts.backgroundColor;\r\n defaultBackgroundColor = typeof bgColor === 'string' ? parseColor$1(bgColor) : bgColor === null ? COLORS.TRANSPARENT : 0xffffffff;\r\n backgroundColor = element === ownerDocument.documentElement\r\n ? isTransparent(documentBackgroundColor)\r\n ? isTransparent(bodyBackgroundColor)\r\n ? defaultBackgroundColor\r\n : bodyBackgroundColor\r\n : documentBackgroundColor\r\n : defaultBackgroundColor;\r\n renderOptions = {\r\n id: instanceName,\r\n cache: options.cache,\r\n canvas: options.canvas,\r\n backgroundColor: backgroundColor,\r\n scale: options.scale,\r\n x: options.x,\r\n y: options.y,\r\n scrollX: options.scrollX,\r\n scrollY: options.scrollY,\r\n width: options.width,\r\n height: options.height,\r\n windowWidth: options.windowWidth,\r\n windowHeight: options.windowHeight\r\n };\r\n if (!options.foreignObjectRendering) return [3 /*break*/, 3];\r\n Logger.getInstance(instanceName).debug(\"Document cloned, using foreign object rendering\");\r\n renderer = new ForeignObjectRenderer(renderOptions);\r\n return [4 /*yield*/, renderer.render(clonedElement)];\r\n case 2:\r\n canvas = _b.sent();\r\n return [3 /*break*/, 5];\r\n case 3:\r\n Logger.getInstance(instanceName).debug(\"Document cloned, using computed rendering\");\r\n CacheStorage.attachInstance(options.cache);\r\n Logger.getInstance(instanceName).debug(\"Starting DOM parsing\");\r\n root = parseTree(clonedElement);\r\n CacheStorage.detachInstance();\r\n if (backgroundColor === root.styles.backgroundColor) {\r\n root.styles.backgroundColor = COLORS.TRANSPARENT;\r\n }\r\n Logger.getInstance(instanceName).debug(\"Starting renderer\");\r\n renderer = new CanvasRenderer(renderOptions);\r\n return [4 /*yield*/, renderer.render(root)];\r\n case 4:\r\n canvas = _b.sent();\r\n _b.label = 5;\r\n case 5:\r\n if (options.removeContainer === true) {\r\n if (!DocumentCloner.destroy(container)) {\r\n Logger.getInstance(instanceName).error(\"Cannot detach cloned iframe as it is not in the DOM anymore\");\r\n }\r\n }\r\n Logger.getInstance(instanceName).debug(\"Finished rendering\");\r\n Logger.destroy(instanceName);\r\n CacheStorage.destroy(instanceName);\r\n return [2 /*return*/, canvas];\r\n }\r\n });\r\n }); };\n\n return html2canvas;\n\n}));\n//# sourceMappingURL=html2canvas.js.map\n","module.exports =\n/******/ (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 = \"/dist/\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 55);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return normalizeComponent; });\n/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nfunction normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functioal component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/date-util\");\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/dom\");\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/util\");\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/mixins/emitter\");\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/vue-popper\");\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/mixins/locale\");\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"vue\");\n\n/***/ }),\n/* 8 */,\n/* 9 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/merge\");\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/input\");\n\n/***/ }),\n/* 11 */,\n/* 12 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/clickoutside\");\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/button\");\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/scrollbar\");\n\n/***/ }),\n/* 15 */,\n/* 16 */,\n/* 17 */,\n/* 18 */,\n/* 19 */,\n/* 20 */,\n/* 21 */,\n/* 22 */,\n/* 23 */,\n/* 24 */,\n/* 25 */,\n/* 26 */,\n/* 27 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/date-picker/src/panel/time.vue?vue&type=template&id=3d939089&\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"transition\",\n {\n attrs: { name: \"el-zoom-in-top\" },\n on: {\n \"after-leave\": function($event) {\n _vm.$emit(\"dodestroy\")\n }\n }\n },\n [\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.visible,\n expression: \"visible\"\n }\n ],\n staticClass: \"el-time-panel el-popper\",\n class: _vm.popperClass\n },\n [\n _c(\n \"div\",\n {\n staticClass: \"el-time-panel__content\",\n class: { \"has-seconds\": _vm.showSeconds }\n },\n [\n _c(\"time-spinner\", {\n ref: \"spinner\",\n attrs: {\n \"arrow-control\": _vm.useArrow,\n \"show-seconds\": _vm.showSeconds,\n \"am-pm-mode\": _vm.amPmMode,\n date: _vm.date\n },\n on: {\n change: _vm.handleChange,\n \"select-range\": _vm.setSelectionRange\n }\n })\n ],\n 1\n ),\n _c(\"div\", { staticClass: \"el-time-panel__footer\" }, [\n _c(\n \"button\",\n {\n staticClass: \"el-time-panel__btn cancel\",\n attrs: { type: \"button\" },\n on: { click: _vm.handleCancel }\n },\n [_vm._v(_vm._s(_vm.t(\"el.datepicker.cancel\")))]\n ),\n _c(\n \"button\",\n {\n staticClass: \"el-time-panel__btn\",\n class: { confirm: !_vm.disabled },\n attrs: { type: \"button\" },\n on: {\n click: function($event) {\n _vm.handleConfirm()\n }\n }\n },\n [_vm._v(_vm._s(_vm.t(\"el.datepicker.confirm\")))]\n )\n ])\n ]\n )\n ]\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n// CONCATENATED MODULE: ./packages/date-picker/src/panel/time.vue?vue&type=template&id=3d939089&\n\n// EXTERNAL MODULE: external \"element-ui/lib/utils/date-util\"\nvar date_util_ = __webpack_require__(1);\n\n// EXTERNAL MODULE: external \"element-ui/lib/mixins/locale\"\nvar locale_ = __webpack_require__(6);\nvar locale_default = /*#__PURE__*/__webpack_require__.n(locale_);\n\n// EXTERNAL MODULE: ./packages/date-picker/src/basic/time-spinner.vue + 4 modules\nvar time_spinner = __webpack_require__(35);\n\n// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/date-picker/src/panel/time.vue?vue&type=script&lang=js&\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n/* harmony default export */ var timevue_type_script_lang_js_ = ({\n mixins: [locale_default.a],\n\n components: {\n TimeSpinner: time_spinner[\"a\" /* default */]\n },\n\n props: {\n visible: Boolean,\n timeArrowControl: Boolean\n },\n\n watch: {\n visible: function visible(val) {\n var _this = this;\n\n if (val) {\n this.oldValue = this.value;\n this.$nextTick(function () {\n return _this.$refs.spinner.emitSelectRange('hours');\n });\n } else {\n this.needInitAdjust = true;\n }\n },\n value: function value(newVal) {\n var _this2 = this;\n\n var date = void 0;\n if (newVal instanceof Date) {\n date = Object(date_util_[\"limitTimeRange\"])(newVal, this.selectableRange, this.format);\n } else if (!newVal) {\n date = this.defaultValue ? new Date(this.defaultValue) : new Date();\n }\n\n this.date = date;\n if (this.visible && this.needInitAdjust) {\n this.$nextTick(function (_) {\n return _this2.adjustSpinners();\n });\n this.needInitAdjust = false;\n }\n },\n selectableRange: function selectableRange(val) {\n this.$refs.spinner.selectableRange = val;\n },\n defaultValue: function defaultValue(val) {\n if (!Object(date_util_[\"isDate\"])(this.value)) {\n this.date = val ? new Date(val) : new Date();\n }\n }\n },\n\n data: function data() {\n return {\n popperClass: '',\n format: 'HH:mm:ss',\n value: '',\n defaultValue: null,\n date: new Date(),\n oldValue: new Date(),\n selectableRange: [],\n selectionRange: [0, 2],\n disabled: false,\n arrowControl: false,\n needInitAdjust: true\n };\n },\n\n\n computed: {\n showSeconds: function showSeconds() {\n return (this.format || '').indexOf('ss') !== -1;\n },\n useArrow: function useArrow() {\n return this.arrowControl || this.timeArrowControl || false;\n },\n amPmMode: function amPmMode() {\n if ((this.format || '').indexOf('A') !== -1) return 'A';\n if ((this.format || '').indexOf('a') !== -1) return 'a';\n return '';\n }\n },\n\n methods: {\n handleCancel: function handleCancel() {\n this.$emit('pick', this.oldValue, false);\n },\n handleChange: function handleChange(date) {\n // this.visible avoids edge cases, when use scrolls during panel closing animation\n if (this.visible) {\n this.date = Object(date_util_[\"clearMilliseconds\"])(date);\n // if date is out of range, do not emit\n if (this.isValidValue(this.date)) {\n this.$emit('pick', this.date, true);\n }\n }\n },\n setSelectionRange: function setSelectionRange(start, end) {\n this.$emit('select-range', start, end);\n this.selectionRange = [start, end];\n },\n handleConfirm: function handleConfirm() {\n var visible = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var first = arguments[1];\n\n if (first) return;\n var date = Object(date_util_[\"clearMilliseconds\"])(Object(date_util_[\"limitTimeRange\"])(this.date, this.selectableRange, this.format));\n this.$emit('pick', date, visible, first);\n },\n handleKeydown: function handleKeydown(event) {\n var keyCode = event.keyCode;\n var mapping = { 38: -1, 40: 1, 37: -1, 39: 1 };\n\n // Left or Right\n if (keyCode === 37 || keyCode === 39) {\n var step = mapping[keyCode];\n this.changeSelectionRange(step);\n event.preventDefault();\n return;\n }\n\n // Up or Down\n if (keyCode === 38 || keyCode === 40) {\n var _step = mapping[keyCode];\n this.$refs.spinner.scrollDown(_step);\n event.preventDefault();\n return;\n }\n },\n isValidValue: function isValidValue(date) {\n return Object(date_util_[\"timeWithinRange\"])(date, this.selectableRange, this.format);\n },\n adjustSpinners: function adjustSpinners() {\n return this.$refs.spinner.adjustSpinners();\n },\n changeSelectionRange: function changeSelectionRange(step) {\n var list = [0, 3].concat(this.showSeconds ? [6] : []);\n var mapping = ['hours', 'minutes'].concat(this.showSeconds ? ['seconds'] : []);\n var index = list.indexOf(this.selectionRange[0]);\n var next = (index + step + list.length) % list.length;\n this.$refs.spinner.emitSelectRange(mapping[next]);\n }\n },\n\n mounted: function mounted() {\n var _this3 = this;\n\n this.$nextTick(function () {\n return _this3.handleConfirm(true, true);\n });\n this.$emit('mounted');\n }\n});\n// CONCATENATED MODULE: ./packages/date-picker/src/panel/time.vue?vue&type=script&lang=js&\n /* harmony default export */ var panel_timevue_type_script_lang_js_ = (timevue_type_script_lang_js_); \n// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js\nvar componentNormalizer = __webpack_require__(0);\n\n// CONCATENATED MODULE: ./packages/date-picker/src/panel/time.vue\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(componentNormalizer[\"a\" /* default */])(\n panel_timevue_type_script_lang_js_,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"packages/date-picker/src/panel/time.vue\"\n/* harmony default export */ var time = __webpack_exports__[\"a\"] = (component.exports);\n\n/***/ }),\n/* 28 */,\n/* 29 */,\n/* 30 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var element_ui_src_utils_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\n/* harmony import */ var element_ui_src_utils_dom__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(element_ui_src_utils_dom__WEBPACK_IMPORTED_MODULE_0__);\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n bind: function bind(el, binding, vnode) {\n var interval = null;\n var startTime = void 0;\n var handler = function handler() {\n return vnode.context[binding.expression].apply();\n };\n var clear = function clear() {\n if (Date.now() - startTime < 100) {\n handler();\n }\n clearInterval(interval);\n interval = null;\n };\n\n Object(element_ui_src_utils_dom__WEBPACK_IMPORTED_MODULE_0__[\"on\"])(el, 'mousedown', function (e) {\n if (e.button !== 0) return;\n startTime = Date.now();\n Object(element_ui_src_utils_dom__WEBPACK_IMPORTED_MODULE_0__[\"once\"])(document, 'mouseup', clear);\n clearInterval(interval);\n interval = setInterval(handler, 100);\n });\n }\n});\n\n/***/ }),\n/* 31 */,\n/* 32 */,\n/* 33 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/date-picker/src/picker.vue?vue&type=template&id=79ae069f&\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return !_vm.ranged\n ? _c(\n \"el-input\",\n _vm._b(\n {\n directives: [\n {\n name: \"clickoutside\",\n rawName: \"v-clickoutside\",\n value: _vm.handleClose,\n expression: \"handleClose\"\n }\n ],\n ref: \"reference\",\n staticClass: \"el-date-editor\",\n class: \"el-date-editor--\" + _vm.type,\n attrs: {\n readonly:\n !_vm.editable ||\n _vm.readonly ||\n _vm.type === \"dates\" ||\n _vm.type === \"week\",\n disabled: _vm.pickerDisabled,\n size: _vm.pickerSize,\n name: _vm.name,\n placeholder: _vm.placeholder,\n value: _vm.displayValue,\n validateEvent: false\n },\n on: {\n focus: _vm.handleFocus,\n input: function(value) {\n return (_vm.userInput = value)\n },\n change: _vm.handleChange\n },\n nativeOn: {\n keydown: function($event) {\n return _vm.handleKeydown($event)\n },\n mouseenter: function($event) {\n return _vm.handleMouseEnter($event)\n },\n mouseleave: function($event) {\n _vm.showClose = false\n }\n }\n },\n \"el-input\",\n _vm.firstInputId,\n false\n ),\n [\n _c(\"i\", {\n staticClass: \"el-input__icon\",\n class: _vm.triggerClass,\n attrs: { slot: \"prefix\" },\n on: { click: _vm.handleFocus },\n slot: \"prefix\"\n }),\n _vm.haveTrigger\n ? _c(\"i\", {\n staticClass: \"el-input__icon\",\n class: [_vm.showClose ? \"\" + _vm.clearIcon : \"\"],\n attrs: { slot: \"suffix\" },\n on: { click: _vm.handleClickIcon },\n slot: \"suffix\"\n })\n : _vm._e()\n ]\n )\n : _c(\n \"div\",\n {\n directives: [\n {\n name: \"clickoutside\",\n rawName: \"v-clickoutside\",\n value: _vm.handleClose,\n expression: \"handleClose\"\n }\n ],\n ref: \"reference\",\n staticClass: \"el-date-editor el-range-editor el-input__inner\",\n class: [\n \"el-date-editor--\" + _vm.type,\n _vm.pickerSize ? \"el-range-editor--\" + _vm.pickerSize : \"\",\n _vm.pickerDisabled ? \"is-disabled\" : \"\",\n _vm.pickerVisible ? \"is-active\" : \"\"\n ],\n on: {\n click: _vm.handleRangeClick,\n mouseenter: _vm.handleMouseEnter,\n mouseleave: function($event) {\n _vm.showClose = false\n },\n keydown: _vm.handleKeydown\n }\n },\n [\n _c(\"i\", {\n class: [\"el-input__icon\", \"el-range__icon\", _vm.triggerClass]\n }),\n _c(\n \"input\",\n _vm._b(\n {\n staticClass: \"el-range-input\",\n attrs: {\n autocomplete: \"off\",\n placeholder: _vm.startPlaceholder,\n disabled: _vm.pickerDisabled,\n readonly: !_vm.editable || _vm.readonly,\n name: _vm.name && _vm.name[0]\n },\n domProps: { value: _vm.displayValue && _vm.displayValue[0] },\n on: {\n input: _vm.handleStartInput,\n change: _vm.handleStartChange,\n focus: _vm.handleFocus\n }\n },\n \"input\",\n _vm.firstInputId,\n false\n )\n ),\n _vm._t(\"range-separator\", [\n _c(\"span\", { staticClass: \"el-range-separator\" }, [\n _vm._v(_vm._s(_vm.rangeSeparator))\n ])\n ]),\n _c(\n \"input\",\n _vm._b(\n {\n staticClass: \"el-range-input\",\n attrs: {\n autocomplete: \"off\",\n placeholder: _vm.endPlaceholder,\n disabled: _vm.pickerDisabled,\n readonly: !_vm.editable || _vm.readonly,\n name: _vm.name && _vm.name[1]\n },\n domProps: { value: _vm.displayValue && _vm.displayValue[1] },\n on: {\n input: _vm.handleEndInput,\n change: _vm.handleEndChange,\n focus: _vm.handleFocus\n }\n },\n \"input\",\n _vm.secondInputId,\n false\n )\n ),\n _vm.haveTrigger\n ? _c(\"i\", {\n staticClass: \"el-input__icon el-range__close-icon\",\n class: [_vm.showClose ? \"\" + _vm.clearIcon : \"\"],\n on: { click: _vm.handleClickIcon }\n })\n : _vm._e()\n ],\n 2\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n// CONCATENATED MODULE: ./packages/date-picker/src/picker.vue?vue&type=template&id=79ae069f&\n\n// EXTERNAL MODULE: external \"vue\"\nvar external_vue_ = __webpack_require__(7);\nvar external_vue_default = /*#__PURE__*/__webpack_require__.n(external_vue_);\n\n// EXTERNAL MODULE: external \"element-ui/lib/utils/clickoutside\"\nvar clickoutside_ = __webpack_require__(12);\nvar clickoutside_default = /*#__PURE__*/__webpack_require__.n(clickoutside_);\n\n// EXTERNAL MODULE: external \"element-ui/lib/utils/date-util\"\nvar date_util_ = __webpack_require__(1);\n\n// EXTERNAL MODULE: external \"element-ui/lib/utils/vue-popper\"\nvar vue_popper_ = __webpack_require__(5);\nvar vue_popper_default = /*#__PURE__*/__webpack_require__.n(vue_popper_);\n\n// EXTERNAL MODULE: external \"element-ui/lib/mixins/emitter\"\nvar emitter_ = __webpack_require__(4);\nvar emitter_default = /*#__PURE__*/__webpack_require__.n(emitter_);\n\n// EXTERNAL MODULE: external \"element-ui/lib/input\"\nvar input_ = __webpack_require__(10);\nvar input_default = /*#__PURE__*/__webpack_require__.n(input_);\n\n// EXTERNAL MODULE: external \"element-ui/lib/utils/merge\"\nvar merge_ = __webpack_require__(9);\nvar merge_default = /*#__PURE__*/__webpack_require__.n(merge_);\n\n// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/date-picker/src/picker.vue?vue&type=script&lang=js&\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n\n\n\n\nvar NewPopper = {\n props: {\n appendToBody: vue_popper_default.a.props.appendToBody,\n offset: vue_popper_default.a.props.offset,\n boundariesPadding: vue_popper_default.a.props.boundariesPadding,\n arrowOffset: vue_popper_default.a.props.arrowOffset\n },\n methods: vue_popper_default.a.methods,\n data: function data() {\n return merge_default()({ visibleArrow: true }, vue_popper_default.a.data);\n },\n\n beforeDestroy: vue_popper_default.a.beforeDestroy\n};\n\nvar DEFAULT_FORMATS = {\n date: 'yyyy-MM-dd',\n month: 'yyyy-MM',\n datetime: 'yyyy-MM-dd HH:mm:ss',\n time: 'HH:mm:ss',\n week: 'yyyywWW',\n timerange: 'HH:mm:ss',\n daterange: 'yyyy-MM-dd',\n monthrange: 'yyyy-MM',\n datetimerange: 'yyyy-MM-dd HH:mm:ss',\n year: 'yyyy'\n};\nvar HAVE_TRIGGER_TYPES = ['date', 'datetime', 'time', 'time-select', 'week', 'month', 'year', 'daterange', 'monthrange', 'timerange', 'datetimerange', 'dates'];\nvar pickervue_type_script_lang_js_DATE_FORMATTER = function DATE_FORMATTER(value, format) {\n if (format === 'timestamp') return value.getTime();\n return Object(date_util_[\"formatDate\"])(value, format);\n};\nvar pickervue_type_script_lang_js_DATE_PARSER = function DATE_PARSER(text, format) {\n if (format === 'timestamp') return new Date(Number(text));\n return Object(date_util_[\"parseDate\"])(text, format);\n};\nvar RANGE_FORMATTER = function RANGE_FORMATTER(value, format) {\n if (Array.isArray(value) && value.length === 2) {\n var start = value[0];\n var end = value[1];\n\n if (start && end) {\n return [pickervue_type_script_lang_js_DATE_FORMATTER(start, format), pickervue_type_script_lang_js_DATE_FORMATTER(end, format)];\n }\n }\n return '';\n};\nvar RANGE_PARSER = function RANGE_PARSER(array, format, separator) {\n if (!Array.isArray(array)) {\n array = array.split(separator);\n }\n if (array.length === 2) {\n var range1 = array[0];\n var range2 = array[1];\n\n return [pickervue_type_script_lang_js_DATE_PARSER(range1, format), pickervue_type_script_lang_js_DATE_PARSER(range2, format)];\n }\n return [];\n};\nvar TYPE_VALUE_RESOLVER_MAP = {\n default: {\n formatter: function formatter(value) {\n if (!value) return '';\n return '' + value;\n },\n parser: function parser(text) {\n if (text === undefined || text === '') return null;\n return text;\n }\n },\n week: {\n formatter: function formatter(value, format) {\n var week = Object(date_util_[\"getWeekNumber\"])(value);\n var month = value.getMonth();\n var trueDate = new Date(value);\n if (week === 1 && month === 11) {\n trueDate.setHours(0, 0, 0, 0);\n trueDate.setDate(trueDate.getDate() + 3 - (trueDate.getDay() + 6) % 7);\n }\n var date = Object(date_util_[\"formatDate\"])(trueDate, format);\n\n date = /WW/.test(date) ? date.replace(/WW/, week < 10 ? '0' + week : week) : date.replace(/W/, week);\n return date;\n },\n parser: function parser(text, format) {\n // parse as if a normal date\n return TYPE_VALUE_RESOLVER_MAP.date.parser(text, format);\n }\n },\n date: {\n formatter: pickervue_type_script_lang_js_DATE_FORMATTER,\n parser: pickervue_type_script_lang_js_DATE_PARSER\n },\n datetime: {\n formatter: pickervue_type_script_lang_js_DATE_FORMATTER,\n parser: pickervue_type_script_lang_js_DATE_PARSER\n },\n daterange: {\n formatter: RANGE_FORMATTER,\n parser: RANGE_PARSER\n },\n monthrange: {\n formatter: RANGE_FORMATTER,\n parser: RANGE_PARSER\n },\n datetimerange: {\n formatter: RANGE_FORMATTER,\n parser: RANGE_PARSER\n },\n timerange: {\n formatter: RANGE_FORMATTER,\n parser: RANGE_PARSER\n },\n time: {\n formatter: pickervue_type_script_lang_js_DATE_FORMATTER,\n parser: pickervue_type_script_lang_js_DATE_PARSER\n },\n month: {\n formatter: pickervue_type_script_lang_js_DATE_FORMATTER,\n parser: pickervue_type_script_lang_js_DATE_PARSER\n },\n year: {\n formatter: pickervue_type_script_lang_js_DATE_FORMATTER,\n parser: pickervue_type_script_lang_js_DATE_PARSER\n },\n number: {\n formatter: function formatter(value) {\n if (!value) return '';\n return '' + value;\n },\n parser: function parser(text) {\n var result = Number(text);\n\n if (!isNaN(text)) {\n return result;\n } else {\n return null;\n }\n }\n },\n dates: {\n formatter: function formatter(value, format) {\n return value.map(function (date) {\n return pickervue_type_script_lang_js_DATE_FORMATTER(date, format);\n });\n },\n parser: function parser(value, format) {\n return (typeof value === 'string' ? value.split(', ') : value).map(function (date) {\n return date instanceof Date ? date : pickervue_type_script_lang_js_DATE_PARSER(date, format);\n });\n }\n }\n};\nvar PLACEMENT_MAP = {\n left: 'bottom-start',\n center: 'bottom',\n right: 'bottom-end'\n};\n\nvar parseAsFormatAndType = function parseAsFormatAndType(value, customFormat, type) {\n var rangeSeparator = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '-';\n\n if (!value) return null;\n var parser = (TYPE_VALUE_RESOLVER_MAP[type] || TYPE_VALUE_RESOLVER_MAP['default']).parser;\n var format = customFormat || DEFAULT_FORMATS[type];\n return parser(value, format, rangeSeparator);\n};\n\nvar formatAsFormatAndType = function formatAsFormatAndType(value, customFormat, type) {\n if (!value) return null;\n var formatter = (TYPE_VALUE_RESOLVER_MAP[type] || TYPE_VALUE_RESOLVER_MAP['default']).formatter;\n var format = customFormat || DEFAULT_FORMATS[type];\n return formatter(value, format);\n};\n\n/*\n * Considers:\n * 1. Date object\n * 2. date string\n * 3. array of 1 or 2\n */\nvar valueEquals = function valueEquals(a, b) {\n // considers Date object and string\n var dateEquals = function dateEquals(a, b) {\n var aIsDate = a instanceof Date;\n var bIsDate = b instanceof Date;\n if (aIsDate && bIsDate) {\n return a.getTime() === b.getTime();\n }\n if (!aIsDate && !bIsDate) {\n return a === b;\n }\n return false;\n };\n\n var aIsArray = a instanceof Array;\n var bIsArray = b instanceof Array;\n if (aIsArray && bIsArray) {\n if (a.length !== b.length) {\n return false;\n }\n return a.every(function (item, index) {\n return dateEquals(item, b[index]);\n });\n }\n if (!aIsArray && !bIsArray) {\n return dateEquals(a, b);\n }\n return false;\n};\n\nvar isString = function isString(val) {\n return typeof val === 'string' || val instanceof String;\n};\n\nvar validator = function validator(val) {\n // either: String, Array of String, null / undefined\n return val === null || val === undefined || isString(val) || Array.isArray(val) && val.length === 2 && val.every(isString);\n};\n\n/* harmony default export */ var pickervue_type_script_lang_js_ = ({\n mixins: [emitter_default.a, NewPopper],\n\n inject: {\n elForm: {\n default: ''\n },\n elFormItem: {\n default: ''\n }\n },\n\n props: {\n size: String,\n format: String,\n valueFormat: String,\n readonly: Boolean,\n placeholder: String,\n startPlaceholder: String,\n endPlaceholder: String,\n prefixIcon: String,\n clearIcon: {\n type: String,\n default: 'el-icon-circle-close'\n },\n name: {\n default: '',\n validator: validator\n },\n disabled: Boolean,\n clearable: {\n type: Boolean,\n default: true\n },\n id: {\n default: '',\n validator: validator\n },\n popperClass: String,\n editable: {\n type: Boolean,\n default: true\n },\n align: {\n type: String,\n default: 'left'\n },\n value: {},\n defaultValue: {},\n defaultTime: {},\n rangeSeparator: {\n default: '-'\n },\n pickerOptions: {},\n unlinkPanels: Boolean,\n validateEvent: {\n type: Boolean,\n default: true\n }\n },\n\n components: { ElInput: input_default.a },\n\n directives: { Clickoutside: clickoutside_default.a },\n\n data: function data() {\n return {\n pickerVisible: false,\n showClose: false,\n userInput: null,\n valueOnOpen: null, // value when picker opens, used to determine whether to emit change\n unwatchPickerOptions: null\n };\n },\n\n\n watch: {\n pickerVisible: function pickerVisible(val) {\n if (this.readonly || this.pickerDisabled) return;\n if (val) {\n this.showPicker();\n this.valueOnOpen = Array.isArray(this.value) ? [].concat(this.value) : this.value;\n } else {\n this.hidePicker();\n this.emitChange(this.value);\n this.userInput = null;\n if (this.validateEvent) {\n this.dispatch('ElFormItem', 'el.form.blur');\n }\n this.$emit('blur', this);\n this.blur();\n }\n },\n\n parsedValue: {\n immediate: true,\n handler: function handler(val) {\n if (this.picker) {\n this.picker.value = val;\n }\n }\n },\n defaultValue: function defaultValue(val) {\n // NOTE: should eventually move to jsx style picker + panel ?\n if (this.picker) {\n this.picker.defaultValue = val;\n }\n },\n value: function value(val, oldVal) {\n if (!valueEquals(val, oldVal) && !this.pickerVisible && this.validateEvent) {\n this.dispatch('ElFormItem', 'el.form.change', val);\n }\n }\n },\n\n computed: {\n ranged: function ranged() {\n return this.type.indexOf('range') > -1;\n },\n reference: function reference() {\n var reference = this.$refs.reference;\n return reference.$el || reference;\n },\n refInput: function refInput() {\n if (this.reference) {\n return [].slice.call(this.reference.querySelectorAll('input'));\n }\n return [];\n },\n valueIsEmpty: function valueIsEmpty() {\n var val = this.value;\n if (Array.isArray(val)) {\n for (var i = 0, len = val.length; i < len; i++) {\n if (val[i]) {\n return false;\n }\n }\n } else {\n if (val) {\n return false;\n }\n }\n return true;\n },\n triggerClass: function triggerClass() {\n return this.prefixIcon || (this.type.indexOf('time') !== -1 ? 'el-icon-time' : 'el-icon-date');\n },\n selectionMode: function selectionMode() {\n if (this.type === 'week') {\n return 'week';\n } else if (this.type === 'month') {\n return 'month';\n } else if (this.type === 'year') {\n return 'year';\n } else if (this.type === 'dates') {\n return 'dates';\n }\n\n return 'day';\n },\n haveTrigger: function haveTrigger() {\n if (typeof this.showTrigger !== 'undefined') {\n return this.showTrigger;\n }\n return HAVE_TRIGGER_TYPES.indexOf(this.type) !== -1;\n },\n displayValue: function displayValue() {\n var formattedValue = formatAsFormatAndType(this.parsedValue, this.format, this.type, this.rangeSeparator);\n if (Array.isArray(this.userInput)) {\n return [this.userInput[0] || formattedValue && formattedValue[0] || '', this.userInput[1] || formattedValue && formattedValue[1] || ''];\n } else if (this.userInput !== null) {\n return this.userInput;\n } else if (formattedValue) {\n return this.type === 'dates' ? formattedValue.join(', ') : formattedValue;\n } else {\n return '';\n }\n },\n parsedValue: function parsedValue() {\n if (!this.value) return this.value; // component value is not set\n if (this.type === 'time-select') return this.value; // time-select does not require parsing, this might change in next major version\n\n var valueIsDateObject = Object(date_util_[\"isDateObject\"])(this.value) || Array.isArray(this.value) && this.value.every(date_util_[\"isDateObject\"]);\n if (valueIsDateObject) {\n return this.value;\n }\n\n if (this.valueFormat) {\n return parseAsFormatAndType(this.value, this.valueFormat, this.type, this.rangeSeparator) || this.value;\n }\n\n // NOTE: deal with common but incorrect usage, should remove in next major version\n // user might provide string / timestamp without value-format, coerce them into date (or array of date)\n return Array.isArray(this.value) ? this.value.map(function (val) {\n return new Date(val);\n }) : new Date(this.value);\n },\n _elFormItemSize: function _elFormItemSize() {\n return (this.elFormItem || {}).elFormItemSize;\n },\n pickerSize: function pickerSize() {\n return this.size || this._elFormItemSize || (this.$ELEMENT || {}).size;\n },\n pickerDisabled: function pickerDisabled() {\n return this.disabled || (this.elForm || {}).disabled;\n },\n firstInputId: function firstInputId() {\n var obj = {};\n var id = void 0;\n if (this.ranged) {\n id = this.id && this.id[0];\n } else {\n id = this.id;\n }\n if (id) obj.id = id;\n return obj;\n },\n secondInputId: function secondInputId() {\n var obj = {};\n var id = void 0;\n if (this.ranged) {\n id = this.id && this.id[1];\n }\n if (id) obj.id = id;\n return obj;\n }\n },\n\n created: function created() {\n // vue-popper\n this.popperOptions = {\n boundariesPadding: 0,\n gpuAcceleration: false\n };\n this.placement = PLACEMENT_MAP[this.align] || PLACEMENT_MAP.left;\n\n this.$on('fieldReset', this.handleFieldReset);\n },\n\n\n methods: {\n focus: function focus() {\n if (!this.ranged) {\n this.$refs.reference.focus();\n } else {\n this.handleFocus();\n }\n },\n blur: function blur() {\n this.refInput.forEach(function (input) {\n return input.blur();\n });\n },\n\n\n // {parse, formatTo} Value deals maps component value with internal Date\n parseValue: function parseValue(value) {\n var isParsed = Object(date_util_[\"isDateObject\"])(value) || Array.isArray(value) && value.every(date_util_[\"isDateObject\"]);\n if (this.valueFormat && !isParsed) {\n return parseAsFormatAndType(value, this.valueFormat, this.type, this.rangeSeparator) || value;\n } else {\n return value;\n }\n },\n formatToValue: function formatToValue(date) {\n var isFormattable = Object(date_util_[\"isDateObject\"])(date) || Array.isArray(date) && date.every(date_util_[\"isDateObject\"]);\n if (this.valueFormat && isFormattable) {\n return formatAsFormatAndType(date, this.valueFormat, this.type, this.rangeSeparator);\n } else {\n return date;\n }\n },\n\n\n // {parse, formatTo} String deals with user input\n parseString: function parseString(value) {\n var type = Array.isArray(value) ? this.type : this.type.replace('range', '');\n return parseAsFormatAndType(value, this.format, type);\n },\n formatToString: function formatToString(value) {\n var type = Array.isArray(value) ? this.type : this.type.replace('range', '');\n return formatAsFormatAndType(value, this.format, type);\n },\n handleMouseEnter: function handleMouseEnter() {\n if (this.readonly || this.pickerDisabled) return;\n if (!this.valueIsEmpty && this.clearable) {\n this.showClose = true;\n }\n },\n handleChange: function handleChange() {\n if (this.userInput) {\n var value = this.parseString(this.displayValue);\n if (value) {\n this.picker.value = value;\n if (this.isValidValue(value)) {\n this.emitInput(value);\n this.userInput = null;\n }\n }\n }\n if (this.userInput === '') {\n this.emitInput(null);\n this.emitChange(null);\n this.userInput = null;\n }\n },\n handleStartInput: function handleStartInput(event) {\n if (this.userInput) {\n this.userInput = [event.target.value, this.userInput[1]];\n } else {\n this.userInput = [event.target.value, null];\n }\n },\n handleEndInput: function handleEndInput(event) {\n if (this.userInput) {\n this.userInput = [this.userInput[0], event.target.value];\n } else {\n this.userInput = [null, event.target.value];\n }\n },\n handleStartChange: function handleStartChange(event) {\n var value = this.parseString(this.userInput && this.userInput[0]);\n if (value) {\n this.userInput = [this.formatToString(value), this.displayValue[1]];\n var newValue = [value, this.picker.value && this.picker.value[1]];\n this.picker.value = newValue;\n if (this.isValidValue(newValue)) {\n this.emitInput(newValue);\n this.userInput = null;\n }\n }\n },\n handleEndChange: function handleEndChange(event) {\n var value = this.parseString(this.userInput && this.userInput[1]);\n if (value) {\n this.userInput = [this.displayValue[0], this.formatToString(value)];\n var newValue = [this.picker.value && this.picker.value[0], value];\n this.picker.value = newValue;\n if (this.isValidValue(newValue)) {\n this.emitInput(newValue);\n this.userInput = null;\n }\n }\n },\n handleClickIcon: function handleClickIcon(event) {\n if (this.readonly || this.pickerDisabled) return;\n if (this.showClose) {\n this.valueOnOpen = this.value;\n event.stopPropagation();\n this.emitInput(null);\n this.emitChange(null);\n this.showClose = false;\n if (this.picker && typeof this.picker.handleClear === 'function') {\n this.picker.handleClear();\n }\n } else {\n this.pickerVisible = !this.pickerVisible;\n }\n },\n handleClose: function handleClose() {\n if (!this.pickerVisible) return;\n this.pickerVisible = false;\n\n if (this.type === 'dates') {\n // restore to former value\n var oldValue = parseAsFormatAndType(this.valueOnOpen, this.valueFormat, this.type, this.rangeSeparator) || this.valueOnOpen;\n this.emitInput(oldValue);\n }\n },\n handleFieldReset: function handleFieldReset(initialValue) {\n this.userInput = initialValue === '' ? null : initialValue;\n },\n handleFocus: function handleFocus() {\n var type = this.type;\n\n if (HAVE_TRIGGER_TYPES.indexOf(type) !== -1 && !this.pickerVisible) {\n this.pickerVisible = true;\n }\n this.$emit('focus', this);\n },\n handleKeydown: function handleKeydown(event) {\n var _this = this;\n\n var keyCode = event.keyCode;\n\n // ESC\n if (keyCode === 27) {\n this.pickerVisible = false;\n event.stopPropagation();\n return;\n }\n\n // Tab\n if (keyCode === 9) {\n if (!this.ranged) {\n this.handleChange();\n this.pickerVisible = this.picker.visible = false;\n this.blur();\n event.stopPropagation();\n } else {\n // user may change focus between two input\n setTimeout(function () {\n if (_this.refInput.indexOf(document.activeElement) === -1) {\n _this.pickerVisible = false;\n _this.blur();\n event.stopPropagation();\n }\n }, 0);\n }\n return;\n }\n\n // Enter\n if (keyCode === 13) {\n if (this.userInput === '' || this.isValidValue(this.parseString(this.displayValue))) {\n this.handleChange();\n this.pickerVisible = this.picker.visible = false;\n this.blur();\n }\n event.stopPropagation();\n return;\n }\n\n // if user is typing, do not let picker handle key input\n if (this.userInput) {\n event.stopPropagation();\n return;\n }\n\n // delegate other keys to panel\n if (this.picker && this.picker.handleKeydown) {\n this.picker.handleKeydown(event);\n }\n },\n handleRangeClick: function handleRangeClick() {\n var type = this.type;\n\n if (HAVE_TRIGGER_TYPES.indexOf(type) !== -1 && !this.pickerVisible) {\n this.pickerVisible = true;\n }\n this.$emit('focus', this);\n },\n hidePicker: function hidePicker() {\n if (this.picker) {\n this.picker.resetView && this.picker.resetView();\n this.pickerVisible = this.picker.visible = false;\n this.destroyPopper();\n }\n },\n showPicker: function showPicker() {\n var _this2 = this;\n\n if (this.$isServer) return;\n if (!this.picker) {\n this.mountPicker();\n }\n this.pickerVisible = this.picker.visible = true;\n\n this.updatePopper();\n\n this.picker.value = this.parsedValue;\n this.picker.resetView && this.picker.resetView();\n\n this.$nextTick(function () {\n _this2.picker.adjustSpinners && _this2.picker.adjustSpinners();\n });\n },\n mountPicker: function mountPicker() {\n var _this3 = this;\n\n this.picker = new external_vue_default.a(this.panel).$mount();\n this.picker.defaultValue = this.defaultValue;\n this.picker.defaultTime = this.defaultTime;\n this.picker.popperClass = this.popperClass;\n this.popperElm = this.picker.$el;\n this.picker.width = this.reference.getBoundingClientRect().width;\n this.picker.showTime = this.type === 'datetime' || this.type === 'datetimerange';\n this.picker.selectionMode = this.selectionMode;\n this.picker.unlinkPanels = this.unlinkPanels;\n this.picker.arrowControl = this.arrowControl || this.timeArrowControl || false;\n this.$watch('format', function (format) {\n _this3.picker.format = format;\n });\n\n var updateOptions = function updateOptions() {\n var options = _this3.pickerOptions;\n\n if (options && options.selectableRange) {\n var ranges = options.selectableRange;\n var parser = TYPE_VALUE_RESOLVER_MAP.datetimerange.parser;\n var format = DEFAULT_FORMATS.timerange;\n\n ranges = Array.isArray(ranges) ? ranges : [ranges];\n _this3.picker.selectableRange = ranges.map(function (range) {\n return parser(range, format, _this3.rangeSeparator);\n });\n }\n\n for (var option in options) {\n if (options.hasOwnProperty(option) &&\n // 忽略 time-picker 的该配置项\n option !== 'selectableRange') {\n _this3.picker[option] = options[option];\n }\n }\n\n // main format must prevail over undocumented pickerOptions.format\n if (_this3.format) {\n _this3.picker.format = _this3.format;\n }\n };\n updateOptions();\n this.unwatchPickerOptions = this.$watch('pickerOptions', function () {\n return updateOptions();\n }, { deep: true });\n this.$el.appendChild(this.picker.$el);\n this.picker.resetView && this.picker.resetView();\n\n this.picker.$on('dodestroy', this.doDestroy);\n this.picker.$on('pick', function () {\n var date = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var visible = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n _this3.userInput = null;\n _this3.pickerVisible = _this3.picker.visible = visible;\n _this3.emitInput(date);\n _this3.picker.resetView && _this3.picker.resetView();\n });\n\n this.picker.$on('select-range', function (start, end, pos) {\n if (_this3.refInput.length === 0) return;\n if (!pos || pos === 'min') {\n _this3.refInput[0].setSelectionRange(start, end);\n _this3.refInput[0].focus();\n } else if (pos === 'max') {\n _this3.refInput[1].setSelectionRange(start, end);\n _this3.refInput[1].focus();\n }\n });\n },\n unmountPicker: function unmountPicker() {\n if (this.picker) {\n this.picker.$destroy();\n this.picker.$off();\n if (typeof this.unwatchPickerOptions === 'function') {\n this.unwatchPickerOptions();\n }\n this.picker.$el.parentNode.removeChild(this.picker.$el);\n }\n },\n emitChange: function emitChange(val) {\n // determine user real change only\n if (!valueEquals(val, this.valueOnOpen)) {\n this.$emit('change', val);\n this.valueOnOpen = val;\n if (this.validateEvent) {\n this.dispatch('ElFormItem', 'el.form.change', val);\n }\n }\n },\n emitInput: function emitInput(val) {\n var formatted = this.formatToValue(val);\n if (!valueEquals(this.value, formatted)) {\n this.$emit('input', formatted);\n }\n },\n isValidValue: function isValidValue(value) {\n if (!this.picker) {\n this.mountPicker();\n }\n if (this.picker.isValidValue) {\n return value && this.picker.isValidValue(value);\n } else {\n return true;\n }\n }\n }\n});\n// CONCATENATED MODULE: ./packages/date-picker/src/picker.vue?vue&type=script&lang=js&\n /* harmony default export */ var src_pickervue_type_script_lang_js_ = (pickervue_type_script_lang_js_); \n// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js\nvar componentNormalizer = __webpack_require__(0);\n\n// CONCATENATED MODULE: ./packages/date-picker/src/picker.vue\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(componentNormalizer[\"a\" /* default */])(\n src_pickervue_type_script_lang_js_,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"packages/date-picker/src/picker.vue\"\n/* harmony default export */ var picker = __webpack_exports__[\"a\"] = (component.exports);\n\n/***/ }),\n/* 34 */,\n/* 35 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/date-picker/src/basic/time-spinner.vue?vue&type=template&id=1facadeb&\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n {\n staticClass: \"el-time-spinner\",\n class: { \"has-seconds\": _vm.showSeconds }\n },\n [\n !_vm.arrowControl\n ? [\n _c(\n \"el-scrollbar\",\n {\n ref: \"hours\",\n staticClass: \"el-time-spinner__wrapper\",\n attrs: {\n \"wrap-style\": \"max-height: inherit;\",\n \"view-class\": \"el-time-spinner__list\",\n noresize: \"\",\n tag: \"ul\"\n },\n nativeOn: {\n mouseenter: function($event) {\n _vm.emitSelectRange(\"hours\")\n },\n mousemove: function($event) {\n _vm.adjustCurrentSpinner(\"hours\")\n }\n }\n },\n _vm._l(_vm.hoursList, function(disabled, hour) {\n return _c(\n \"li\",\n {\n key: hour,\n staticClass: \"el-time-spinner__item\",\n class: { active: hour === _vm.hours, disabled: disabled },\n on: {\n click: function($event) {\n _vm.handleClick(\"hours\", {\n value: hour,\n disabled: disabled\n })\n }\n }\n },\n [\n _vm._v(\n _vm._s(\n (\"0\" + (_vm.amPmMode ? hour % 12 || 12 : hour)).slice(\n -2\n )\n ) + _vm._s(_vm.amPm(hour))\n )\n ]\n )\n }),\n 0\n ),\n _c(\n \"el-scrollbar\",\n {\n ref: \"minutes\",\n staticClass: \"el-time-spinner__wrapper\",\n attrs: {\n \"wrap-style\": \"max-height: inherit;\",\n \"view-class\": \"el-time-spinner__list\",\n noresize: \"\",\n tag: \"ul\"\n },\n nativeOn: {\n mouseenter: function($event) {\n _vm.emitSelectRange(\"minutes\")\n },\n mousemove: function($event) {\n _vm.adjustCurrentSpinner(\"minutes\")\n }\n }\n },\n _vm._l(_vm.minutesList, function(enabled, key) {\n return _c(\n \"li\",\n {\n key: key,\n staticClass: \"el-time-spinner__item\",\n class: { active: key === _vm.minutes, disabled: !enabled },\n on: {\n click: function($event) {\n _vm.handleClick(\"minutes\", {\n value: key,\n disabled: false\n })\n }\n }\n },\n [_vm._v(_vm._s((\"0\" + key).slice(-2)))]\n )\n }),\n 0\n ),\n _c(\n \"el-scrollbar\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.showSeconds,\n expression: \"showSeconds\"\n }\n ],\n ref: \"seconds\",\n staticClass: \"el-time-spinner__wrapper\",\n attrs: {\n \"wrap-style\": \"max-height: inherit;\",\n \"view-class\": \"el-time-spinner__list\",\n noresize: \"\",\n tag: \"ul\"\n },\n nativeOn: {\n mouseenter: function($event) {\n _vm.emitSelectRange(\"seconds\")\n },\n mousemove: function($event) {\n _vm.adjustCurrentSpinner(\"seconds\")\n }\n }\n },\n _vm._l(60, function(second, key) {\n return _c(\n \"li\",\n {\n key: key,\n staticClass: \"el-time-spinner__item\",\n class: { active: key === _vm.seconds },\n on: {\n click: function($event) {\n _vm.handleClick(\"seconds\", {\n value: key,\n disabled: false\n })\n }\n }\n },\n [_vm._v(_vm._s((\"0\" + key).slice(-2)))]\n )\n }),\n 0\n )\n ]\n : _vm._e(),\n _vm.arrowControl\n ? [\n _c(\n \"div\",\n {\n staticClass: \"el-time-spinner__wrapper is-arrow\",\n on: {\n mouseenter: function($event) {\n _vm.emitSelectRange(\"hours\")\n }\n }\n },\n [\n _c(\"i\", {\n directives: [\n {\n name: \"repeat-click\",\n rawName: \"v-repeat-click\",\n value: _vm.decrease,\n expression: \"decrease\"\n }\n ],\n staticClass: \"el-time-spinner__arrow el-icon-arrow-up\"\n }),\n _c(\"i\", {\n directives: [\n {\n name: \"repeat-click\",\n rawName: \"v-repeat-click\",\n value: _vm.increase,\n expression: \"increase\"\n }\n ],\n staticClass: \"el-time-spinner__arrow el-icon-arrow-down\"\n }),\n _c(\n \"ul\",\n { ref: \"hours\", staticClass: \"el-time-spinner__list\" },\n _vm._l(_vm.arrowHourList, function(hour, key) {\n return _c(\n \"li\",\n {\n key: key,\n staticClass: \"el-time-spinner__item\",\n class: {\n active: hour === _vm.hours,\n disabled: _vm.hoursList[hour]\n }\n },\n [\n _vm._v(\n _vm._s(\n hour === undefined\n ? \"\"\n : (\n \"0\" + (_vm.amPmMode ? hour % 12 || 12 : hour)\n ).slice(-2) + _vm.amPm(hour)\n )\n )\n ]\n )\n }),\n 0\n )\n ]\n ),\n _c(\n \"div\",\n {\n staticClass: \"el-time-spinner__wrapper is-arrow\",\n on: {\n mouseenter: function($event) {\n _vm.emitSelectRange(\"minutes\")\n }\n }\n },\n [\n _c(\"i\", {\n directives: [\n {\n name: \"repeat-click\",\n rawName: \"v-repeat-click\",\n value: _vm.decrease,\n expression: \"decrease\"\n }\n ],\n staticClass: \"el-time-spinner__arrow el-icon-arrow-up\"\n }),\n _c(\"i\", {\n directives: [\n {\n name: \"repeat-click\",\n rawName: \"v-repeat-click\",\n value: _vm.increase,\n expression: \"increase\"\n }\n ],\n staticClass: \"el-time-spinner__arrow el-icon-arrow-down\"\n }),\n _c(\n \"ul\",\n { ref: \"minutes\", staticClass: \"el-time-spinner__list\" },\n _vm._l(_vm.arrowMinuteList, function(minute, key) {\n return _c(\n \"li\",\n {\n key: key,\n staticClass: \"el-time-spinner__item\",\n class: { active: minute === _vm.minutes }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(\n minute === undefined\n ? \"\"\n : (\"0\" + minute).slice(-2)\n ) +\n \"\\n \"\n )\n ]\n )\n }),\n 0\n )\n ]\n ),\n _vm.showSeconds\n ? _c(\n \"div\",\n {\n staticClass: \"el-time-spinner__wrapper is-arrow\",\n on: {\n mouseenter: function($event) {\n _vm.emitSelectRange(\"seconds\")\n }\n }\n },\n [\n _c(\"i\", {\n directives: [\n {\n name: \"repeat-click\",\n rawName: \"v-repeat-click\",\n value: _vm.decrease,\n expression: \"decrease\"\n }\n ],\n staticClass: \"el-time-spinner__arrow el-icon-arrow-up\"\n }),\n _c(\"i\", {\n directives: [\n {\n name: \"repeat-click\",\n rawName: \"v-repeat-click\",\n value: _vm.increase,\n expression: \"increase\"\n }\n ],\n staticClass: \"el-time-spinner__arrow el-icon-arrow-down\"\n }),\n _c(\n \"ul\",\n { ref: \"seconds\", staticClass: \"el-time-spinner__list\" },\n _vm._l(_vm.arrowSecondList, function(second, key) {\n return _c(\n \"li\",\n {\n key: key,\n staticClass: \"el-time-spinner__item\",\n class: { active: second === _vm.seconds }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(\n second === undefined\n ? \"\"\n : (\"0\" + second).slice(-2)\n ) +\n \"\\n \"\n )\n ]\n )\n }),\n 0\n )\n ]\n )\n : _vm._e()\n ]\n : _vm._e()\n ],\n 2\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n// CONCATENATED MODULE: ./packages/date-picker/src/basic/time-spinner.vue?vue&type=template&id=1facadeb&\n\n// EXTERNAL MODULE: external \"element-ui/lib/utils/date-util\"\nvar date_util_ = __webpack_require__(1);\n\n// EXTERNAL MODULE: external \"element-ui/lib/scrollbar\"\nvar scrollbar_ = __webpack_require__(14);\nvar scrollbar_default = /*#__PURE__*/__webpack_require__.n(scrollbar_);\n\n// EXTERNAL MODULE: ./src/directives/repeat-click.js\nvar repeat_click = __webpack_require__(30);\n\n// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/date-picker/src/basic/time-spinner.vue?vue&type=script&lang=js&\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n/* harmony default export */ var time_spinnervue_type_script_lang_js_ = ({\n components: { ElScrollbar: scrollbar_default.a },\n\n directives: {\n repeatClick: repeat_click[\"a\" /* default */]\n },\n\n props: {\n date: {},\n defaultValue: {}, // reserved for future use\n showSeconds: {\n type: Boolean,\n default: true\n },\n arrowControl: Boolean,\n amPmMode: {\n type: String,\n default: '' // 'a': am/pm; 'A': AM/PM\n }\n },\n\n computed: {\n hours: function hours() {\n return this.date.getHours();\n },\n minutes: function minutes() {\n return this.date.getMinutes();\n },\n seconds: function seconds() {\n return this.date.getSeconds();\n },\n hoursList: function hoursList() {\n return Object(date_util_[\"getRangeHours\"])(this.selectableRange);\n },\n minutesList: function minutesList() {\n return Object(date_util_[\"getRangeMinutes\"])(this.selectableRange, this.hours);\n },\n arrowHourList: function arrowHourList() {\n var hours = this.hours;\n return [hours > 0 ? hours - 1 : undefined, hours, hours < 23 ? hours + 1 : undefined];\n },\n arrowMinuteList: function arrowMinuteList() {\n var minutes = this.minutes;\n return [minutes > 0 ? minutes - 1 : undefined, minutes, minutes < 59 ? minutes + 1 : undefined];\n },\n arrowSecondList: function arrowSecondList() {\n var seconds = this.seconds;\n return [seconds > 0 ? seconds - 1 : undefined, seconds, seconds < 59 ? seconds + 1 : undefined];\n }\n },\n\n data: function data() {\n return {\n selectableRange: [],\n currentScrollbar: null\n };\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n !_this.arrowControl && _this.bindScrollEvent();\n });\n },\n\n\n methods: {\n increase: function increase() {\n this.scrollDown(1);\n },\n decrease: function decrease() {\n this.scrollDown(-1);\n },\n modifyDateField: function modifyDateField(type, value) {\n switch (type) {\n case 'hours':\n this.$emit('change', Object(date_util_[\"modifyTime\"])(this.date, value, this.minutes, this.seconds));break;\n case 'minutes':\n this.$emit('change', Object(date_util_[\"modifyTime\"])(this.date, this.hours, value, this.seconds));break;\n case 'seconds':\n this.$emit('change', Object(date_util_[\"modifyTime\"])(this.date, this.hours, this.minutes, value));break;\n }\n },\n handleClick: function handleClick(type, _ref) {\n var value = _ref.value,\n disabled = _ref.disabled;\n\n if (!disabled) {\n this.modifyDateField(type, value);\n this.emitSelectRange(type);\n this.adjustSpinner(type, value);\n }\n },\n emitSelectRange: function emitSelectRange(type) {\n if (type === 'hours') {\n this.$emit('select-range', 0, 2);\n } else if (type === 'minutes') {\n this.$emit('select-range', 3, 5);\n } else if (type === 'seconds') {\n this.$emit('select-range', 6, 8);\n }\n this.currentScrollbar = type;\n },\n bindScrollEvent: function bindScrollEvent() {\n var _this2 = this;\n\n var bindFuntion = function bindFuntion(type) {\n _this2.$refs[type].wrap.onscroll = function (e) {\n // TODO: scroll is emitted when set scrollTop programatically\n // should find better solutions in the future!\n _this2.handleScroll(type, e);\n };\n };\n bindFuntion('hours');\n bindFuntion('minutes');\n bindFuntion('seconds');\n },\n handleScroll: function handleScroll(type) {\n var value = Math.min(Math.round((this.$refs[type].wrap.scrollTop - (this.scrollBarHeight(type) * 0.5 - 10) / this.typeItemHeight(type) + 3) / this.typeItemHeight(type)), type === 'hours' ? 23 : 59);\n this.modifyDateField(type, value);\n },\n\n\n // NOTE: used by datetime / date-range panel\n // renamed from adjustScrollTop\n // should try to refactory it\n adjustSpinners: function adjustSpinners() {\n this.adjustSpinner('hours', this.hours);\n this.adjustSpinner('minutes', this.minutes);\n this.adjustSpinner('seconds', this.seconds);\n },\n adjustCurrentSpinner: function adjustCurrentSpinner(type) {\n this.adjustSpinner(type, this[type]);\n },\n adjustSpinner: function adjustSpinner(type, value) {\n if (this.arrowControl) return;\n var el = this.$refs[type].wrap;\n if (el) {\n el.scrollTop = Math.max(0, value * this.typeItemHeight(type));\n }\n },\n scrollDown: function scrollDown(step) {\n var _this3 = this;\n\n if (!this.currentScrollbar) {\n this.emitSelectRange('hours');\n }\n\n var label = this.currentScrollbar;\n var hoursList = this.hoursList;\n var now = this[label];\n\n if (this.currentScrollbar === 'hours') {\n var total = Math.abs(step);\n step = step > 0 ? 1 : -1;\n var length = hoursList.length;\n while (length-- && total) {\n now = (now + step + hoursList.length) % hoursList.length;\n if (hoursList[now]) {\n continue;\n }\n total--;\n }\n if (hoursList[now]) return;\n } else {\n now = (now + step + 60) % 60;\n }\n\n this.modifyDateField(label, now);\n this.adjustSpinner(label, now);\n this.$nextTick(function () {\n return _this3.emitSelectRange(_this3.currentScrollbar);\n });\n },\n amPm: function amPm(hour) {\n var shouldShowAmPm = this.amPmMode.toLowerCase() === 'a';\n if (!shouldShowAmPm) return '';\n var isCapital = this.amPmMode === 'A';\n var content = hour < 12 ? ' am' : ' pm';\n if (isCapital) content = content.toUpperCase();\n return content;\n },\n typeItemHeight: function typeItemHeight(type) {\n return this.$refs[type].$el.querySelector('li').offsetHeight;\n },\n scrollBarHeight: function scrollBarHeight(type) {\n return this.$refs[type].$el.offsetHeight;\n }\n }\n});\n// CONCATENATED MODULE: ./packages/date-picker/src/basic/time-spinner.vue?vue&type=script&lang=js&\n /* harmony default export */ var basic_time_spinnervue_type_script_lang_js_ = (time_spinnervue_type_script_lang_js_); \n// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js\nvar componentNormalizer = __webpack_require__(0);\n\n// CONCATENATED MODULE: ./packages/date-picker/src/basic/time-spinner.vue\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(componentNormalizer[\"a\" /* default */])(\n basic_time_spinnervue_type_script_lang_js_,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"packages/date-picker/src/basic/time-spinner.vue\"\n/* harmony default export */ var time_spinner = __webpack_exports__[\"a\"] = (component.exports);\n\n/***/ }),\n/* 36 */,\n/* 37 */,\n/* 38 */,\n/* 39 */,\n/* 40 */,\n/* 41 */,\n/* 42 */,\n/* 43 */,\n/* 44 */,\n/* 45 */,\n/* 46 */,\n/* 47 */,\n/* 48 */,\n/* 49 */,\n/* 50 */,\n/* 51 */,\n/* 52 */,\n/* 53 */,\n/* 54 */,\n/* 55 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n\n// EXTERNAL MODULE: ./packages/date-picker/src/picker.vue + 4 modules\nvar picker = __webpack_require__(33);\n\n// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/date-picker/src/panel/date.vue?vue&type=template&id=2440d4ea&\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"transition\",\n {\n attrs: { name: \"el-zoom-in-top\" },\n on: { \"after-enter\": _vm.handleEnter, \"after-leave\": _vm.handleLeave }\n },\n [\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.visible,\n expression: \"visible\"\n }\n ],\n staticClass: \"el-picker-panel el-date-picker el-popper\",\n class: [\n {\n \"has-sidebar\": _vm.$slots.sidebar || _vm.shortcuts,\n \"has-time\": _vm.showTime\n },\n _vm.popperClass\n ]\n },\n [\n _c(\n \"div\",\n { staticClass: \"el-picker-panel__body-wrapper\" },\n [\n _vm._t(\"sidebar\"),\n _vm.shortcuts\n ? _c(\n \"div\",\n { staticClass: \"el-picker-panel__sidebar\" },\n _vm._l(_vm.shortcuts, function(shortcut, key) {\n return _c(\n \"button\",\n {\n key: key,\n staticClass: \"el-picker-panel__shortcut\",\n attrs: { type: \"button\" },\n on: {\n click: function($event) {\n _vm.handleShortcutClick(shortcut)\n }\n }\n },\n [_vm._v(_vm._s(shortcut.text))]\n )\n }),\n 0\n )\n : _vm._e(),\n _c(\"div\", { staticClass: \"el-picker-panel__body\" }, [\n _vm.showTime\n ? _c(\"div\", { staticClass: \"el-date-picker__time-header\" }, [\n _c(\n \"span\",\n { staticClass: \"el-date-picker__editor-wrap\" },\n [\n _c(\"el-input\", {\n attrs: {\n placeholder: _vm.t(\"el.datepicker.selectDate\"),\n value: _vm.visibleDate,\n size: \"small\"\n },\n on: {\n input: function(val) {\n return (_vm.userInputDate = val)\n },\n change: _vm.handleVisibleDateChange\n }\n })\n ],\n 1\n ),\n _c(\n \"span\",\n {\n directives: [\n {\n name: \"clickoutside\",\n rawName: \"v-clickoutside\",\n value: _vm.handleTimePickClose,\n expression: \"handleTimePickClose\"\n }\n ],\n staticClass: \"el-date-picker__editor-wrap\"\n },\n [\n _c(\"el-input\", {\n ref: \"input\",\n attrs: {\n placeholder: _vm.t(\"el.datepicker.selectTime\"),\n value: _vm.visibleTime,\n size: \"small\"\n },\n on: {\n focus: function($event) {\n _vm.timePickerVisible = true\n },\n input: function(val) {\n return (_vm.userInputTime = val)\n },\n change: _vm.handleVisibleTimeChange\n }\n }),\n _c(\"time-picker\", {\n ref: \"timepicker\",\n attrs: {\n \"time-arrow-control\": _vm.arrowControl,\n visible: _vm.timePickerVisible\n },\n on: {\n pick: _vm.handleTimePick,\n mounted: _vm.proxyTimePickerDataProperties\n }\n })\n ],\n 1\n )\n ])\n : _vm._e(),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.currentView !== \"time\",\n expression: \"currentView !== 'time'\"\n }\n ],\n staticClass: \"el-date-picker__header\",\n class: {\n \"el-date-picker__header--bordered\":\n _vm.currentView === \"year\" ||\n _vm.currentView === \"month\"\n }\n },\n [\n _c(\"button\", {\n staticClass:\n \"el-picker-panel__icon-btn el-date-picker__prev-btn el-icon-d-arrow-left\",\n attrs: {\n type: \"button\",\n \"aria-label\": _vm.t(\"el.datepicker.prevYear\")\n },\n on: { click: _vm.prevYear }\n }),\n _c(\"button\", {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.currentView === \"date\",\n expression: \"currentView === 'date'\"\n }\n ],\n staticClass:\n \"el-picker-panel__icon-btn el-date-picker__prev-btn el-icon-arrow-left\",\n attrs: {\n type: \"button\",\n \"aria-label\": _vm.t(\"el.datepicker.prevMonth\")\n },\n on: { click: _vm.prevMonth }\n }),\n _c(\n \"span\",\n {\n staticClass: \"el-date-picker__header-label\",\n attrs: { role: \"button\" },\n on: { click: _vm.showYearPicker }\n },\n [_vm._v(_vm._s(_vm.yearLabel))]\n ),\n _c(\n \"span\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.currentView === \"date\",\n expression: \"currentView === 'date'\"\n }\n ],\n staticClass: \"el-date-picker__header-label\",\n class: { active: _vm.currentView === \"month\" },\n attrs: { role: \"button\" },\n on: { click: _vm.showMonthPicker }\n },\n [\n _vm._v(\n _vm._s(_vm.t(\"el.datepicker.month\" + (_vm.month + 1)))\n )\n ]\n ),\n _c(\"button\", {\n staticClass:\n \"el-picker-panel__icon-btn el-date-picker__next-btn el-icon-d-arrow-right\",\n attrs: {\n type: \"button\",\n \"aria-label\": _vm.t(\"el.datepicker.nextYear\")\n },\n on: { click: _vm.nextYear }\n }),\n _c(\"button\", {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.currentView === \"date\",\n expression: \"currentView === 'date'\"\n }\n ],\n staticClass:\n \"el-picker-panel__icon-btn el-date-picker__next-btn el-icon-arrow-right\",\n attrs: {\n type: \"button\",\n \"aria-label\": _vm.t(\"el.datepicker.nextMonth\")\n },\n on: { click: _vm.nextMonth }\n })\n ]\n ),\n _c(\n \"div\",\n { staticClass: \"el-picker-panel__content\" },\n [\n _c(\"date-table\", {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.currentView === \"date\",\n expression: \"currentView === 'date'\"\n }\n ],\n attrs: {\n \"selection-mode\": _vm.selectionMode,\n \"first-day-of-week\": _vm.firstDayOfWeek,\n value: _vm.value,\n \"default-value\": _vm.defaultValue\n ? new Date(_vm.defaultValue)\n : null,\n date: _vm.date,\n \"cell-class-name\": _vm.cellClassName,\n \"disabled-date\": _vm.disabledDate\n },\n on: { pick: _vm.handleDatePick }\n }),\n _c(\"year-table\", {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.currentView === \"year\",\n expression: \"currentView === 'year'\"\n }\n ],\n attrs: {\n value: _vm.value,\n \"default-value\": _vm.defaultValue\n ? new Date(_vm.defaultValue)\n : null,\n date: _vm.date,\n \"disabled-date\": _vm.disabledDate\n },\n on: { pick: _vm.handleYearPick }\n }),\n _c(\"month-table\", {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.currentView === \"month\",\n expression: \"currentView === 'month'\"\n }\n ],\n attrs: {\n value: _vm.value,\n \"default-value\": _vm.defaultValue\n ? new Date(_vm.defaultValue)\n : null,\n date: _vm.date,\n \"disabled-date\": _vm.disabledDate\n },\n on: { pick: _vm.handleMonthPick }\n })\n ],\n 1\n )\n ])\n ],\n 2\n ),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.footerVisible && _vm.currentView === \"date\",\n expression: \"footerVisible && currentView === 'date'\"\n }\n ],\n staticClass: \"el-picker-panel__footer\"\n },\n [\n _c(\n \"el-button\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.selectionMode !== \"dates\",\n expression: \"selectionMode !== 'dates'\"\n }\n ],\n staticClass: \"el-picker-panel__link-btn\",\n attrs: { size: \"mini\", type: \"text\" },\n on: { click: _vm.changeToNow }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.t(\"el.datepicker.now\")) +\n \"\\n \"\n )\n ]\n ),\n _c(\n \"el-button\",\n {\n staticClass: \"el-picker-panel__link-btn\",\n attrs: { plain: \"\", size: \"mini\" },\n on: { click: _vm.confirm }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.t(\"el.datepicker.confirm\")) +\n \"\\n \"\n )\n ]\n )\n ],\n 1\n )\n ]\n )\n ]\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n// CONCATENATED MODULE: ./packages/date-picker/src/panel/date.vue?vue&type=template&id=2440d4ea&\n\n// EXTERNAL MODULE: external \"element-ui/lib/utils/date-util\"\nvar date_util_ = __webpack_require__(1);\n\n// EXTERNAL MODULE: external \"element-ui/lib/utils/clickoutside\"\nvar clickoutside_ = __webpack_require__(12);\nvar clickoutside_default = /*#__PURE__*/__webpack_require__.n(clickoutside_);\n\n// EXTERNAL MODULE: external \"element-ui/lib/mixins/locale\"\nvar locale_ = __webpack_require__(6);\nvar locale_default = /*#__PURE__*/__webpack_require__.n(locale_);\n\n// EXTERNAL MODULE: external \"element-ui/lib/input\"\nvar input_ = __webpack_require__(10);\nvar input_default = /*#__PURE__*/__webpack_require__.n(input_);\n\n// EXTERNAL MODULE: external \"element-ui/lib/button\"\nvar button_ = __webpack_require__(13);\nvar button_default = /*#__PURE__*/__webpack_require__.n(button_);\n\n// EXTERNAL MODULE: ./packages/date-picker/src/panel/time.vue + 4 modules\nvar panel_time = __webpack_require__(27);\n\n// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/date-picker/src/basic/year-table.vue?vue&type=template&id=c86ab5e0&\nvar year_tablevue_type_template_id_c86ab5e0_render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"table\",\n { staticClass: \"el-year-table\", on: { click: _vm.handleYearTableClick } },\n [\n _c(\"tbody\", [\n _c(\"tr\", [\n _c(\n \"td\",\n {\n staticClass: \"available\",\n class: _vm.getCellStyle(_vm.startYear + 0)\n },\n [_c(\"a\", { staticClass: \"cell\" }, [_vm._v(_vm._s(_vm.startYear))])]\n ),\n _c(\n \"td\",\n {\n staticClass: \"available\",\n class: _vm.getCellStyle(_vm.startYear + 1)\n },\n [\n _c(\"a\", { staticClass: \"cell\" }, [\n _vm._v(_vm._s(_vm.startYear + 1))\n ])\n ]\n ),\n _c(\n \"td\",\n {\n staticClass: \"available\",\n class: _vm.getCellStyle(_vm.startYear + 2)\n },\n [\n _c(\"a\", { staticClass: \"cell\" }, [\n _vm._v(_vm._s(_vm.startYear + 2))\n ])\n ]\n ),\n _c(\n \"td\",\n {\n staticClass: \"available\",\n class: _vm.getCellStyle(_vm.startYear + 3)\n },\n [\n _c(\"a\", { staticClass: \"cell\" }, [\n _vm._v(_vm._s(_vm.startYear + 3))\n ])\n ]\n )\n ]),\n _c(\"tr\", [\n _c(\n \"td\",\n {\n staticClass: \"available\",\n class: _vm.getCellStyle(_vm.startYear + 4)\n },\n [\n _c(\"a\", { staticClass: \"cell\" }, [\n _vm._v(_vm._s(_vm.startYear + 4))\n ])\n ]\n ),\n _c(\n \"td\",\n {\n staticClass: \"available\",\n class: _vm.getCellStyle(_vm.startYear + 5)\n },\n [\n _c(\"a\", { staticClass: \"cell\" }, [\n _vm._v(_vm._s(_vm.startYear + 5))\n ])\n ]\n ),\n _c(\n \"td\",\n {\n staticClass: \"available\",\n class: _vm.getCellStyle(_vm.startYear + 6)\n },\n [\n _c(\"a\", { staticClass: \"cell\" }, [\n _vm._v(_vm._s(_vm.startYear + 6))\n ])\n ]\n ),\n _c(\n \"td\",\n {\n staticClass: \"available\",\n class: _vm.getCellStyle(_vm.startYear + 7)\n },\n [\n _c(\"a\", { staticClass: \"cell\" }, [\n _vm._v(_vm._s(_vm.startYear + 7))\n ])\n ]\n )\n ]),\n _c(\"tr\", [\n _c(\n \"td\",\n {\n staticClass: \"available\",\n class: _vm.getCellStyle(_vm.startYear + 8)\n },\n [\n _c(\"a\", { staticClass: \"cell\" }, [\n _vm._v(_vm._s(_vm.startYear + 8))\n ])\n ]\n ),\n _c(\n \"td\",\n {\n staticClass: \"available\",\n class: _vm.getCellStyle(_vm.startYear + 9)\n },\n [\n _c(\"a\", { staticClass: \"cell\" }, [\n _vm._v(_vm._s(_vm.startYear + 9))\n ])\n ]\n ),\n _c(\"td\"),\n _c(\"td\")\n ])\n ])\n ]\n )\n}\nvar year_tablevue_type_template_id_c86ab5e0_staticRenderFns = []\nyear_tablevue_type_template_id_c86ab5e0_render._withStripped = true\n\n\n// CONCATENATED MODULE: ./packages/date-picker/src/basic/year-table.vue?vue&type=template&id=c86ab5e0&\n\n// EXTERNAL MODULE: external \"element-ui/lib/utils/dom\"\nvar dom_ = __webpack_require__(2);\n\n// EXTERNAL MODULE: external \"element-ui/lib/utils/util\"\nvar util_ = __webpack_require__(3);\n\n// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/date-picker/src/basic/year-table.vue?vue&type=script&lang=js&\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\nvar year_tablevue_type_script_lang_js_datesInYear = function datesInYear(year) {\n var numOfDays = Object(date_util_[\"getDayCountOfYear\"])(year);\n var firstDay = new Date(year, 0, 1);\n return Object(date_util_[\"range\"])(numOfDays).map(function (n) {\n return Object(date_util_[\"nextDate\"])(firstDay, n);\n });\n};\n\n/* harmony default export */ var year_tablevue_type_script_lang_js_ = ({\n props: {\n disabledDate: {},\n value: {},\n defaultValue: {\n validator: function validator(val) {\n // null or valid Date Object\n return val === null || val instanceof Date && Object(date_util_[\"isDate\"])(val);\n }\n },\n date: {}\n },\n\n computed: {\n startYear: function startYear() {\n return Math.floor(this.date.getFullYear() / 10) * 10;\n }\n },\n\n methods: {\n getCellStyle: function getCellStyle(year) {\n var style = {};\n var today = new Date();\n\n style.disabled = typeof this.disabledDate === 'function' ? year_tablevue_type_script_lang_js_datesInYear(year).every(this.disabledDate) : false;\n style.current = Object(util_[\"arrayFindIndex\"])(Object(util_[\"coerceTruthyValueToArray\"])(this.value), function (date) {\n return date.getFullYear() === year;\n }) >= 0;\n style.today = today.getFullYear() === year;\n style.default = this.defaultValue && this.defaultValue.getFullYear() === year;\n\n return style;\n },\n handleYearTableClick: function handleYearTableClick(event) {\n var target = event.target;\n if (target.tagName === 'A') {\n if (Object(dom_[\"hasClass\"])(target.parentNode, 'disabled')) return;\n var year = target.textContent || target.innerText;\n this.$emit('pick', Number(year));\n }\n }\n }\n});\n// CONCATENATED MODULE: ./packages/date-picker/src/basic/year-table.vue?vue&type=script&lang=js&\n /* harmony default export */ var basic_year_tablevue_type_script_lang_js_ = (year_tablevue_type_script_lang_js_); \n// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js\nvar componentNormalizer = __webpack_require__(0);\n\n// CONCATENATED MODULE: ./packages/date-picker/src/basic/year-table.vue\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(componentNormalizer[\"a\" /* default */])(\n basic_year_tablevue_type_script_lang_js_,\n year_tablevue_type_template_id_c86ab5e0_render,\n year_tablevue_type_template_id_c86ab5e0_staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"packages/date-picker/src/basic/year-table.vue\"\n/* harmony default export */ var year_table = (component.exports);\n// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/date-picker/src/basic/month-table.vue?vue&type=template&id=654d4f42&\nvar month_tablevue_type_template_id_654d4f42_render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"table\",\n {\n staticClass: \"el-month-table\",\n on: { click: _vm.handleMonthTableClick, mousemove: _vm.handleMouseMove }\n },\n [\n _c(\n \"tbody\",\n _vm._l(_vm.rows, function(row, key) {\n return _c(\n \"tr\",\n { key: key },\n _vm._l(row, function(cell, key) {\n return _c(\"td\", { key: key, class: _vm.getCellStyle(cell) }, [\n _c(\"div\", [\n _c(\"a\", { staticClass: \"cell\" }, [\n _vm._v(\n _vm._s(\n _vm.t(\"el.datepicker.months.\" + _vm.months[cell.text])\n )\n )\n ])\n ])\n ])\n }),\n 0\n )\n }),\n 0\n )\n ]\n )\n}\nvar month_tablevue_type_template_id_654d4f42_staticRenderFns = []\nmonth_tablevue_type_template_id_654d4f42_render._withStripped = true\n\n\n// CONCATENATED MODULE: ./packages/date-picker/src/basic/month-table.vue?vue&type=template&id=654d4f42&\n\n// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/date-picker/src/basic/month-table.vue?vue&type=script&lang=js&\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n\nvar month_tablevue_type_script_lang_js_datesInMonth = function datesInMonth(year, month) {\n var numOfDays = Object(date_util_[\"getDayCountOfMonth\"])(year, month);\n var firstDay = new Date(year, month, 1);\n return Object(date_util_[\"range\"])(numOfDays).map(function (n) {\n return Object(date_util_[\"nextDate\"])(firstDay, n);\n });\n};\n\nvar clearDate = function clearDate(date) {\n return new Date(date.getFullYear(), date.getMonth());\n};\n\nvar getMonthTimestamp = function getMonthTimestamp(time) {\n if (typeof time === 'number' || typeof time === 'string') {\n return clearDate(new Date(time)).getTime();\n } else if (time instanceof Date) {\n return clearDate(time).getTime();\n } else {\n return NaN;\n }\n};\n/* harmony default export */ var month_tablevue_type_script_lang_js_ = ({\n props: {\n disabledDate: {},\n value: {},\n selectionMode: {\n default: 'month'\n },\n minDate: {},\n\n maxDate: {},\n defaultValue: {\n validator: function validator(val) {\n // null or valid Date Object\n return val === null || Object(date_util_[\"isDate\"])(val) || Array.isArray(val) && val.every(date_util_[\"isDate\"]);\n }\n },\n date: {},\n rangeState: {\n default: function _default() {\n return {\n endDate: null,\n selecting: false\n };\n }\n }\n },\n\n mixins: [locale_default.a],\n\n watch: {\n 'rangeState.endDate': function rangeStateEndDate(newVal) {\n this.markRange(this.minDate, newVal);\n },\n minDate: function minDate(newVal, oldVal) {\n if (getMonthTimestamp(newVal) !== getMonthTimestamp(oldVal)) {\n this.markRange(this.minDate, this.maxDate);\n }\n },\n maxDate: function maxDate(newVal, oldVal) {\n if (getMonthTimestamp(newVal) !== getMonthTimestamp(oldVal)) {\n this.markRange(this.minDate, this.maxDate);\n }\n }\n },\n\n data: function data() {\n return {\n months: ['jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec'],\n tableRows: [[], [], []],\n lastRow: null,\n lastColumn: null\n };\n },\n\n\n methods: {\n cellMatchesDate: function cellMatchesDate(cell, date) {\n var value = new Date(date);\n return this.date.getFullYear() === value.getFullYear() && Number(cell.text) === value.getMonth();\n },\n getCellStyle: function getCellStyle(cell) {\n var _this = this;\n\n var style = {};\n var year = this.date.getFullYear();\n var today = new Date();\n var month = cell.text;\n var defaultValue = this.defaultValue ? Array.isArray(this.defaultValue) ? this.defaultValue : [this.defaultValue] : [];\n style.disabled = typeof this.disabledDate === 'function' ? month_tablevue_type_script_lang_js_datesInMonth(year, month).every(this.disabledDate) : false;\n style.current = Object(util_[\"arrayFindIndex\"])(Object(util_[\"coerceTruthyValueToArray\"])(this.value), function (date) {\n return date.getFullYear() === year && date.getMonth() === month;\n }) >= 0;\n style.today = today.getFullYear() === year && today.getMonth() === month;\n style.default = defaultValue.some(function (date) {\n return _this.cellMatchesDate(cell, date);\n });\n\n if (cell.inRange) {\n style['in-range'] = true;\n\n if (cell.start) {\n style['start-date'] = true;\n }\n\n if (cell.end) {\n style['end-date'] = true;\n }\n }\n return style;\n },\n getMonthOfCell: function getMonthOfCell(month) {\n var year = this.date.getFullYear();\n return new Date(year, month, 1);\n },\n markRange: function markRange(minDate, maxDate) {\n minDate = getMonthTimestamp(minDate);\n maxDate = getMonthTimestamp(maxDate) || minDate;\n var _ref = [Math.min(minDate, maxDate), Math.max(minDate, maxDate)];\n minDate = _ref[0];\n maxDate = _ref[1];\n\n var rows = this.rows;\n for (var i = 0, k = rows.length; i < k; i++) {\n var row = rows[i];\n for (var j = 0, l = row.length; j < l; j++) {\n\n var cell = row[j];\n var index = i * 4 + j;\n var time = new Date(this.date.getFullYear(), index).getTime();\n\n cell.inRange = minDate && time >= minDate && time <= maxDate;\n cell.start = minDate && time === minDate;\n cell.end = maxDate && time === maxDate;\n }\n }\n },\n handleMouseMove: function handleMouseMove(event) {\n if (!this.rangeState.selecting) return;\n\n var target = event.target;\n if (target.tagName === 'A') {\n target = target.parentNode.parentNode;\n }\n if (target.tagName === 'DIV') {\n target = target.parentNode;\n }\n if (target.tagName !== 'TD') return;\n\n var row = target.parentNode.rowIndex;\n var column = target.cellIndex;\n // can not select disabled date\n if (this.rows[row][column].disabled) return;\n\n // only update rangeState when mouse moves to a new cell\n // this avoids frequent Date object creation and improves performance\n if (row !== this.lastRow || column !== this.lastColumn) {\n this.lastRow = row;\n this.lastColumn = column;\n this.$emit('changerange', {\n minDate: this.minDate,\n maxDate: this.maxDate,\n rangeState: {\n selecting: true,\n endDate: this.getMonthOfCell(row * 4 + column)\n }\n });\n }\n },\n handleMonthTableClick: function handleMonthTableClick(event) {\n var target = event.target;\n if (target.tagName === 'A') {\n target = target.parentNode.parentNode;\n }\n if (target.tagName === 'DIV') {\n target = target.parentNode;\n }\n if (target.tagName !== 'TD') return;\n if (Object(dom_[\"hasClass\"])(target, 'disabled')) return;\n var column = target.cellIndex;\n var row = target.parentNode.rowIndex;\n var month = row * 4 + column;\n var newDate = this.getMonthOfCell(month);\n if (this.selectionMode === 'range') {\n if (!this.rangeState.selecting) {\n this.$emit('pick', { minDate: newDate, maxDate: null });\n this.rangeState.selecting = true;\n } else {\n if (newDate >= this.minDate) {\n this.$emit('pick', { minDate: this.minDate, maxDate: newDate });\n } else {\n this.$emit('pick', { minDate: newDate, maxDate: this.minDate });\n }\n this.rangeState.selecting = false;\n }\n } else {\n this.$emit('pick', month);\n }\n }\n },\n\n computed: {\n rows: function rows() {\n var _this2 = this;\n\n // TODO: refactory rows / getCellClasses\n var rows = this.tableRows;\n var disabledDate = this.disabledDate;\n var selectedDate = [];\n var now = getMonthTimestamp(new Date());\n\n for (var i = 0; i < 3; i++) {\n var row = rows[i];\n\n var _loop = function _loop(j) {\n var cell = row[j];\n if (!cell) {\n cell = { row: i, column: j, type: 'normal', inRange: false, start: false, end: false };\n }\n\n cell.type = 'normal';\n\n var index = i * 4 + j;\n var time = new Date(_this2.date.getFullYear(), index).getTime();\n cell.inRange = time >= getMonthTimestamp(_this2.minDate) && time <= getMonthTimestamp(_this2.maxDate);\n cell.start = _this2.minDate && time === getMonthTimestamp(_this2.minDate);\n cell.end = _this2.maxDate && time === getMonthTimestamp(_this2.maxDate);\n var isToday = time === now;\n\n if (isToday) {\n cell.type = 'today';\n }\n cell.text = index;\n var cellDate = new Date(time);\n cell.disabled = typeof disabledDate === 'function' && disabledDate(cellDate);\n cell.selected = Object(util_[\"arrayFind\"])(selectedDate, function (date) {\n return date.getTime() === cellDate.getTime();\n });\n\n _this2.$set(row, j, cell);\n };\n\n for (var j = 0; j < 4; j++) {\n _loop(j);\n }\n }\n return rows;\n }\n }\n});\n// CONCATENATED MODULE: ./packages/date-picker/src/basic/month-table.vue?vue&type=script&lang=js&\n /* harmony default export */ var basic_month_tablevue_type_script_lang_js_ = (month_tablevue_type_script_lang_js_); \n// CONCATENATED MODULE: ./packages/date-picker/src/basic/month-table.vue\n\n\n\n\n\n/* normalize component */\n\nvar month_table_component = Object(componentNormalizer[\"a\" /* default */])(\n basic_month_tablevue_type_script_lang_js_,\n month_tablevue_type_template_id_654d4f42_render,\n month_tablevue_type_template_id_654d4f42_staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (false) { var month_table_api; }\nmonth_table_component.options.__file = \"packages/date-picker/src/basic/month-table.vue\"\n/* harmony default export */ var month_table = (month_table_component.exports);\n// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/date-picker/src/basic/date-table.vue?vue&type=template&id=5d1f3341&\nvar date_tablevue_type_template_id_5d1f3341_render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"table\",\n {\n staticClass: \"el-date-table\",\n class: { \"is-week-mode\": _vm.selectionMode === \"week\" },\n attrs: { cellspacing: \"0\", cellpadding: \"0\" },\n on: { click: _vm.handleClick, mousemove: _vm.handleMouseMove }\n },\n [\n _c(\n \"tbody\",\n [\n _c(\n \"tr\",\n [\n _vm.showWeekNumber\n ? _c(\"th\", [_vm._v(_vm._s(_vm.t(\"el.datepicker.week\")))])\n : _vm._e(),\n _vm._l(_vm.WEEKS, function(week, key) {\n return _c(\"th\", { key: key }, [\n _vm._v(_vm._s(_vm.t(\"el.datepicker.weeks.\" + week)))\n ])\n })\n ],\n 2\n ),\n _vm._l(_vm.rows, function(row, key) {\n return _c(\n \"tr\",\n {\n key: key,\n staticClass: \"el-date-table__row\",\n class: { current: _vm.isWeekActive(row[1]) }\n },\n _vm._l(row, function(cell, key) {\n return _c(\"td\", { key: key, class: _vm.getCellClasses(cell) }, [\n _c(\"div\", [\n _c(\"span\", [\n _vm._v(\"\\n \" + _vm._s(cell.text) + \"\\n \")\n ])\n ])\n ])\n }),\n 0\n )\n })\n ],\n 2\n )\n ]\n )\n}\nvar date_tablevue_type_template_id_5d1f3341_staticRenderFns = []\ndate_tablevue_type_template_id_5d1f3341_render._withStripped = true\n\n\n// CONCATENATED MODULE: ./packages/date-picker/src/basic/date-table.vue?vue&type=template&id=5d1f3341&\n\n// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/date-picker/src/basic/date-table.vue?vue&type=script&lang=js&\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\nvar _WEEKS = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'];\nvar date_tablevue_type_script_lang_js_getDateTimestamp = function getDateTimestamp(time) {\n if (typeof time === 'number' || typeof time === 'string') {\n return Object(date_util_[\"clearTime\"])(new Date(time)).getTime();\n } else if (time instanceof Date) {\n return Object(date_util_[\"clearTime\"])(time).getTime();\n } else {\n return NaN;\n }\n};\n\n// remove the first element that satisfies `pred` from arr\n// return a new array if modification occurs\n// return the original array otherwise\nvar date_tablevue_type_script_lang_js_removeFromArray = function removeFromArray(arr, pred) {\n var idx = typeof pred === 'function' ? Object(util_[\"arrayFindIndex\"])(arr, pred) : arr.indexOf(pred);\n return idx >= 0 ? [].concat(arr.slice(0, idx), arr.slice(idx + 1)) : arr;\n};\n\n/* harmony default export */ var date_tablevue_type_script_lang_js_ = ({\n mixins: [locale_default.a],\n\n props: {\n firstDayOfWeek: {\n default: 7,\n type: Number,\n validator: function validator(val) {\n return val >= 1 && val <= 7;\n }\n },\n\n value: {},\n\n defaultValue: {\n validator: function validator(val) {\n // either: null, valid Date object, Array of valid Date objects\n return val === null || Object(date_util_[\"isDate\"])(val) || Array.isArray(val) && val.every(date_util_[\"isDate\"]);\n }\n },\n\n date: {},\n\n selectionMode: {\n default: 'day'\n },\n\n showWeekNumber: {\n type: Boolean,\n default: false\n },\n\n disabledDate: {},\n\n cellClassName: {},\n\n minDate: {},\n\n maxDate: {},\n\n rangeState: {\n default: function _default() {\n return {\n endDate: null,\n selecting: false\n };\n }\n }\n },\n\n computed: {\n offsetDay: function offsetDay() {\n var week = this.firstDayOfWeek;\n // 周日为界限,左右偏移的天数,3217654 例如周一就是 -1,目的是调整前两行日期的位置\n return week > 3 ? 7 - week : -week;\n },\n WEEKS: function WEEKS() {\n var week = this.firstDayOfWeek;\n return _WEEKS.concat(_WEEKS).slice(week, week + 7);\n },\n year: function year() {\n return this.date.getFullYear();\n },\n month: function month() {\n return this.date.getMonth();\n },\n startDate: function startDate() {\n return Object(date_util_[\"getStartDateOfMonth\"])(this.year, this.month);\n },\n rows: function rows() {\n var _this = this;\n\n // TODO: refactory rows / getCellClasses\n var date = new Date(this.year, this.month, 1);\n var day = Object(date_util_[\"getFirstDayOfMonth\"])(date); // day of first day\n var dateCountOfMonth = Object(date_util_[\"getDayCountOfMonth\"])(date.getFullYear(), date.getMonth());\n var dateCountOfLastMonth = Object(date_util_[\"getDayCountOfMonth\"])(date.getFullYear(), date.getMonth() === 0 ? 11 : date.getMonth() - 1);\n\n day = day === 0 ? 7 : day;\n\n var offset = this.offsetDay;\n var rows = this.tableRows;\n var count = 1;\n\n var startDate = this.startDate;\n var disabledDate = this.disabledDate;\n var cellClassName = this.cellClassName;\n var selectedDate = this.selectionMode === 'dates' ? Object(util_[\"coerceTruthyValueToArray\"])(this.value) : [];\n var now = date_tablevue_type_script_lang_js_getDateTimestamp(new Date());\n\n for (var i = 0; i < 6; i++) {\n var row = rows[i];\n\n if (this.showWeekNumber) {\n if (!row[0]) {\n row[0] = { type: 'week', text: Object(date_util_[\"getWeekNumber\"])(Object(date_util_[\"nextDate\"])(startDate, i * 7 + 1)) };\n }\n }\n\n var _loop = function _loop(j) {\n var cell = row[_this.showWeekNumber ? j + 1 : j];\n if (!cell) {\n cell = { row: i, column: j, type: 'normal', inRange: false, start: false, end: false };\n }\n\n cell.type = 'normal';\n\n var index = i * 7 + j;\n var time = Object(date_util_[\"nextDate\"])(startDate, index - offset).getTime();\n cell.inRange = time >= date_tablevue_type_script_lang_js_getDateTimestamp(_this.minDate) && time <= date_tablevue_type_script_lang_js_getDateTimestamp(_this.maxDate);\n cell.start = _this.minDate && time === date_tablevue_type_script_lang_js_getDateTimestamp(_this.minDate);\n cell.end = _this.maxDate && time === date_tablevue_type_script_lang_js_getDateTimestamp(_this.maxDate);\n var isToday = time === now;\n\n if (isToday) {\n cell.type = 'today';\n }\n\n if (i >= 0 && i <= 1) {\n var numberOfDaysFromPreviousMonth = day + offset < 0 ? 7 + day + offset : day + offset;\n\n if (j + i * 7 >= numberOfDaysFromPreviousMonth) {\n cell.text = count++;\n } else {\n cell.text = dateCountOfLastMonth - (numberOfDaysFromPreviousMonth - j % 7) + 1 + i * 7;\n cell.type = 'prev-month';\n }\n } else {\n if (count <= dateCountOfMonth) {\n cell.text = count++;\n } else {\n cell.text = count++ - dateCountOfMonth;\n cell.type = 'next-month';\n }\n }\n\n var cellDate = new Date(time);\n cell.disabled = typeof disabledDate === 'function' && disabledDate(cellDate);\n cell.selected = Object(util_[\"arrayFind\"])(selectedDate, function (date) {\n return date.getTime() === cellDate.getTime();\n });\n cell.customClass = typeof cellClassName === 'function' && cellClassName(cellDate);\n _this.$set(row, _this.showWeekNumber ? j + 1 : j, cell);\n };\n\n for (var j = 0; j < 7; j++) {\n _loop(j);\n }\n\n if (this.selectionMode === 'week') {\n var start = this.showWeekNumber ? 1 : 0;\n var end = this.showWeekNumber ? 7 : 6;\n var isWeekActive = this.isWeekActive(row[start + 1]);\n\n row[start].inRange = isWeekActive;\n row[start].start = isWeekActive;\n row[end].inRange = isWeekActive;\n row[end].end = isWeekActive;\n }\n }\n\n return rows;\n }\n },\n\n watch: {\n 'rangeState.endDate': function rangeStateEndDate(newVal) {\n this.markRange(this.minDate, newVal);\n },\n minDate: function minDate(newVal, oldVal) {\n if (date_tablevue_type_script_lang_js_getDateTimestamp(newVal) !== date_tablevue_type_script_lang_js_getDateTimestamp(oldVal)) {\n this.markRange(this.minDate, this.maxDate);\n }\n },\n maxDate: function maxDate(newVal, oldVal) {\n if (date_tablevue_type_script_lang_js_getDateTimestamp(newVal) !== date_tablevue_type_script_lang_js_getDateTimestamp(oldVal)) {\n this.markRange(this.minDate, this.maxDate);\n }\n }\n },\n\n data: function data() {\n return {\n tableRows: [[], [], [], [], [], []],\n lastRow: null,\n lastColumn: null\n };\n },\n\n\n methods: {\n cellMatchesDate: function cellMatchesDate(cell, date) {\n var value = new Date(date);\n return this.year === value.getFullYear() && this.month === value.getMonth() && Number(cell.text) === value.getDate();\n },\n getCellClasses: function getCellClasses(cell) {\n var _this2 = this;\n\n var selectionMode = this.selectionMode;\n var defaultValue = this.defaultValue ? Array.isArray(this.defaultValue) ? this.defaultValue : [this.defaultValue] : [];\n\n var classes = [];\n if ((cell.type === 'normal' || cell.type === 'today') && !cell.disabled) {\n classes.push('available');\n if (cell.type === 'today') {\n classes.push('today');\n }\n } else {\n classes.push(cell.type);\n }\n\n if (cell.type === 'normal' && defaultValue.some(function (date) {\n return _this2.cellMatchesDate(cell, date);\n })) {\n classes.push('default');\n }\n\n if (selectionMode === 'day' && (cell.type === 'normal' || cell.type === 'today') && this.cellMatchesDate(cell, this.value)) {\n classes.push('current');\n }\n\n if (cell.inRange && (cell.type === 'normal' || cell.type === 'today' || this.selectionMode === 'week')) {\n classes.push('in-range');\n\n if (cell.start) {\n classes.push('start-date');\n }\n\n if (cell.end) {\n classes.push('end-date');\n }\n }\n\n if (cell.disabled) {\n classes.push('disabled');\n }\n\n if (cell.selected) {\n classes.push('selected');\n }\n\n if (cell.customClass) {\n classes.push(cell.customClass);\n }\n\n return classes.join(' ');\n },\n getDateOfCell: function getDateOfCell(row, column) {\n var offsetFromStart = row * 7 + (column - (this.showWeekNumber ? 1 : 0)) - this.offsetDay;\n return Object(date_util_[\"nextDate\"])(this.startDate, offsetFromStart);\n },\n isWeekActive: function isWeekActive(cell) {\n if (this.selectionMode !== 'week') return false;\n var newDate = new Date(this.year, this.month, 1);\n var year = newDate.getFullYear();\n var month = newDate.getMonth();\n\n if (cell.type === 'prev-month') {\n newDate.setMonth(month === 0 ? 11 : month - 1);\n newDate.setFullYear(month === 0 ? year - 1 : year);\n }\n\n if (cell.type === 'next-month') {\n newDate.setMonth(month === 11 ? 0 : month + 1);\n newDate.setFullYear(month === 11 ? year + 1 : year);\n }\n\n newDate.setDate(parseInt(cell.text, 10));\n\n if (Object(date_util_[\"isDate\"])(this.value)) {\n var dayOffset = (this.value.getDay() - this.firstDayOfWeek + 7) % 7 - 1;\n var weekDate = Object(date_util_[\"prevDate\"])(this.value, dayOffset);\n return weekDate.getTime() === newDate.getTime();\n }\n return false;\n },\n markRange: function markRange(minDate, maxDate) {\n minDate = date_tablevue_type_script_lang_js_getDateTimestamp(minDate);\n maxDate = date_tablevue_type_script_lang_js_getDateTimestamp(maxDate) || minDate;\n var _ref = [Math.min(minDate, maxDate), Math.max(minDate, maxDate)];\n minDate = _ref[0];\n maxDate = _ref[1];\n\n\n var startDate = this.startDate;\n var rows = this.rows;\n for (var i = 0, k = rows.length; i < k; i++) {\n var row = rows[i];\n for (var j = 0, l = row.length; j < l; j++) {\n if (this.showWeekNumber && j === 0) continue;\n\n var _cell = row[j];\n var index = i * 7 + j + (this.showWeekNumber ? -1 : 0);\n var time = Object(date_util_[\"nextDate\"])(startDate, index - this.offsetDay).getTime();\n\n _cell.inRange = minDate && time >= minDate && time <= maxDate;\n _cell.start = minDate && time === minDate;\n _cell.end = maxDate && time === maxDate;\n }\n }\n },\n handleMouseMove: function handleMouseMove(event) {\n if (!this.rangeState.selecting) return;\n\n var target = event.target;\n if (target.tagName === 'SPAN') {\n target = target.parentNode.parentNode;\n }\n if (target.tagName === 'DIV') {\n target = target.parentNode;\n }\n if (target.tagName !== 'TD') return;\n\n var row = target.parentNode.rowIndex - 1;\n var column = target.cellIndex;\n\n // can not select disabled date\n if (this.rows[row][column].disabled) return;\n\n // only update rangeState when mouse moves to a new cell\n // this avoids frequent Date object creation and improves performance\n if (row !== this.lastRow || column !== this.lastColumn) {\n this.lastRow = row;\n this.lastColumn = column;\n this.$emit('changerange', {\n minDate: this.minDate,\n maxDate: this.maxDate,\n rangeState: {\n selecting: true,\n endDate: this.getDateOfCell(row, column)\n }\n });\n }\n },\n handleClick: function handleClick(event) {\n var target = event.target;\n if (target.tagName === 'SPAN') {\n target = target.parentNode.parentNode;\n }\n if (target.tagName === 'DIV') {\n target = target.parentNode;\n }\n\n if (target.tagName !== 'TD') return;\n\n var row = target.parentNode.rowIndex - 1;\n var column = this.selectionMode === 'week' ? 1 : target.cellIndex;\n var cell = this.rows[row][column];\n\n if (cell.disabled || cell.type === 'week') return;\n\n var newDate = this.getDateOfCell(row, column);\n\n if (this.selectionMode === 'range') {\n if (!this.rangeState.selecting) {\n this.$emit('pick', { minDate: newDate, maxDate: null });\n this.rangeState.selecting = true;\n } else {\n if (newDate >= this.minDate) {\n this.$emit('pick', { minDate: this.minDate, maxDate: newDate });\n } else {\n this.$emit('pick', { minDate: newDate, maxDate: this.minDate });\n }\n this.rangeState.selecting = false;\n }\n } else if (this.selectionMode === 'day') {\n this.$emit('pick', newDate);\n } else if (this.selectionMode === 'week') {\n var weekNumber = Object(date_util_[\"getWeekNumber\"])(newDate);\n var value = newDate.getFullYear() + 'w' + weekNumber;\n this.$emit('pick', {\n year: newDate.getFullYear(),\n week: weekNumber,\n value: value,\n date: newDate\n });\n } else if (this.selectionMode === 'dates') {\n var _value = this.value || [];\n var newValue = cell.selected ? date_tablevue_type_script_lang_js_removeFromArray(_value, function (date) {\n return date.getTime() === newDate.getTime();\n }) : [].concat(_value, [newDate]);\n this.$emit('pick', newValue);\n }\n }\n }\n});\n// CONCATENATED MODULE: ./packages/date-picker/src/basic/date-table.vue?vue&type=script&lang=js&\n /* harmony default export */ var basic_date_tablevue_type_script_lang_js_ = (date_tablevue_type_script_lang_js_); \n// CONCATENATED MODULE: ./packages/date-picker/src/basic/date-table.vue\n\n\n\n\n\n/* normalize component */\n\nvar date_table_component = Object(componentNormalizer[\"a\" /* default */])(\n basic_date_tablevue_type_script_lang_js_,\n date_tablevue_type_template_id_5d1f3341_render,\n date_tablevue_type_template_id_5d1f3341_staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (false) { var date_table_api; }\ndate_table_component.options.__file = \"packages/date-picker/src/basic/date-table.vue\"\n/* harmony default export */ var date_table = (date_table_component.exports);\n// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/date-picker/src/panel/date.vue?vue&type=script&lang=js&\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ var datevue_type_script_lang_js_ = ({\n mixins: [locale_default.a],\n\n directives: { Clickoutside: clickoutside_default.a },\n\n watch: {\n showTime: function showTime(val) {\n var _this = this;\n\n /* istanbul ignore if */\n if (!val) return;\n this.$nextTick(function (_) {\n var inputElm = _this.$refs.input.$el;\n if (inputElm) {\n _this.pickerWidth = inputElm.getBoundingClientRect().width + 10;\n }\n });\n },\n value: function value(val) {\n if (this.selectionMode === 'dates' && this.value) return;\n if (Object(date_util_[\"isDate\"])(val)) {\n this.date = new Date(val);\n } else {\n this.date = this.getDefaultValue();\n }\n },\n defaultValue: function defaultValue(val) {\n if (!Object(date_util_[\"isDate\"])(this.value)) {\n this.date = val ? new Date(val) : new Date();\n }\n },\n timePickerVisible: function timePickerVisible(val) {\n var _this2 = this;\n\n if (val) this.$nextTick(function () {\n return _this2.$refs.timepicker.adjustSpinners();\n });\n },\n selectionMode: function selectionMode(newVal) {\n if (newVal === 'month') {\n /* istanbul ignore next */\n if (this.currentView !== 'year' || this.currentView !== 'month') {\n this.currentView = 'month';\n }\n } else if (newVal === 'dates') {\n this.currentView = 'date';\n }\n }\n },\n\n methods: {\n proxyTimePickerDataProperties: function proxyTimePickerDataProperties() {\n var _this3 = this;\n\n var format = function format(timeFormat) {\n _this3.$refs.timepicker.format = timeFormat;\n };\n var value = function value(_value) {\n _this3.$refs.timepicker.value = _value;\n };\n var date = function date(_date) {\n _this3.$refs.timepicker.date = _date;\n };\n var selectableRange = function selectableRange(_selectableRange) {\n _this3.$refs.timepicker.selectableRange = _selectableRange;\n };\n\n this.$watch('value', value);\n this.$watch('date', date);\n this.$watch('selectableRange', selectableRange);\n\n format(this.timeFormat);\n value(this.value);\n date(this.date);\n selectableRange(this.selectableRange);\n },\n handleClear: function handleClear() {\n this.date = this.getDefaultValue();\n this.$emit('pick', null);\n },\n emit: function emit(value) {\n var _this4 = this;\n\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (!value) {\n this.$emit.apply(this, ['pick', value].concat(args));\n } else if (Array.isArray(value)) {\n var dates = value.map(function (date) {\n return _this4.showTime ? Object(date_util_[\"clearMilliseconds\"])(date) : Object(date_util_[\"clearTime\"])(date);\n });\n this.$emit.apply(this, ['pick', dates].concat(args));\n } else {\n this.$emit.apply(this, ['pick', this.showTime ? Object(date_util_[\"clearMilliseconds\"])(value) : Object(date_util_[\"clearTime\"])(value)].concat(args));\n }\n this.userInputDate = null;\n this.userInputTime = null;\n },\n\n\n // resetDate() {\n // this.date = new Date(this.date);\n // },\n\n showMonthPicker: function showMonthPicker() {\n this.currentView = 'month';\n },\n showYearPicker: function showYearPicker() {\n this.currentView = 'year';\n },\n\n\n // XXX: 没用到\n // handleLabelClick() {\n // if (this.currentView === 'date') {\n // this.showMonthPicker();\n // } else if (this.currentView === 'month') {\n // this.showYearPicker();\n // }\n // },\n\n prevMonth: function prevMonth() {\n this.date = Object(date_util_[\"prevMonth\"])(this.date);\n },\n nextMonth: function nextMonth() {\n this.date = Object(date_util_[\"nextMonth\"])(this.date);\n },\n prevYear: function prevYear() {\n if (this.currentView === 'year') {\n this.date = Object(date_util_[\"prevYear\"])(this.date, 10);\n } else {\n this.date = Object(date_util_[\"prevYear\"])(this.date);\n }\n },\n nextYear: function nextYear() {\n if (this.currentView === 'year') {\n this.date = Object(date_util_[\"nextYear\"])(this.date, 10);\n } else {\n this.date = Object(date_util_[\"nextYear\"])(this.date);\n }\n },\n handleShortcutClick: function handleShortcutClick(shortcut) {\n if (shortcut.onClick) {\n shortcut.onClick(this);\n }\n },\n handleTimePick: function handleTimePick(value, visible, first) {\n if (Object(date_util_[\"isDate\"])(value)) {\n var newDate = this.value ? Object(date_util_[\"modifyTime\"])(this.value, value.getHours(), value.getMinutes(), value.getSeconds()) : Object(date_util_[\"modifyWithTimeString\"])(this.getDefaultValue(), this.defaultTime);\n this.date = newDate;\n this.emit(this.date, true);\n } else {\n this.emit(value, true);\n }\n if (!first) {\n this.timePickerVisible = visible;\n }\n },\n handleTimePickClose: function handleTimePickClose() {\n this.timePickerVisible = false;\n },\n handleMonthPick: function handleMonthPick(month) {\n if (this.selectionMode === 'month') {\n this.date = Object(date_util_[\"modifyDate\"])(this.date, this.year, month, 1);\n this.emit(this.date);\n } else {\n this.date = Object(date_util_[\"changeYearMonthAndClampDate\"])(this.date, this.year, month);\n // TODO: should emit intermediate value ??\n // this.emit(this.date);\n this.currentView = 'date';\n }\n },\n handleDatePick: function handleDatePick(value) {\n if (this.selectionMode === 'day') {\n var newDate = this.value ? Object(date_util_[\"modifyDate\"])(this.value, value.getFullYear(), value.getMonth(), value.getDate()) : Object(date_util_[\"modifyWithTimeString\"])(value, this.defaultTime);\n // change default time while out of selectableRange\n if (!this.checkDateWithinRange(newDate)) {\n newDate = Object(date_util_[\"modifyDate\"])(this.selectableRange[0][0], value.getFullYear(), value.getMonth(), value.getDate());\n }\n this.date = newDate;\n this.emit(this.date, this.showTime);\n } else if (this.selectionMode === 'week') {\n this.emit(value.date);\n } else if (this.selectionMode === 'dates') {\n this.emit(value, true); // set false to keep panel open\n }\n },\n handleYearPick: function handleYearPick(year) {\n if (this.selectionMode === 'year') {\n this.date = Object(date_util_[\"modifyDate\"])(this.date, year, 0, 1);\n this.emit(this.date);\n } else {\n this.date = Object(date_util_[\"changeYearMonthAndClampDate\"])(this.date, year, this.month);\n // TODO: should emit intermediate value ??\n // this.emit(this.date, true);\n this.currentView = 'month';\n }\n },\n changeToNow: function changeToNow() {\n // NOTE: not a permanent solution\n // consider disable \"now\" button in the future\n if ((!this.disabledDate || !this.disabledDate(new Date())) && this.checkDateWithinRange(new Date())) {\n this.date = new Date();\n this.emit(this.date);\n }\n },\n confirm: function confirm() {\n if (this.selectionMode === 'dates') {\n this.emit(this.value);\n } else {\n // value were emitted in handle{Date,Time}Pick, nothing to update here\n // deal with the scenario where: user opens the picker, then confirm without doing anything\n var value = this.value ? this.value : Object(date_util_[\"modifyWithTimeString\"])(this.getDefaultValue(), this.defaultTime);\n this.date = new Date(value); // refresh date\n this.emit(value);\n }\n },\n resetView: function resetView() {\n if (this.selectionMode === 'month') {\n this.currentView = 'month';\n } else if (this.selectionMode === 'year') {\n this.currentView = 'year';\n } else {\n this.currentView = 'date';\n }\n },\n handleEnter: function handleEnter() {\n document.body.addEventListener('keydown', this.handleKeydown);\n },\n handleLeave: function handleLeave() {\n this.$emit('dodestroy');\n document.body.removeEventListener('keydown', this.handleKeydown);\n },\n handleKeydown: function handleKeydown(event) {\n var keyCode = event.keyCode;\n var list = [38, 40, 37, 39];\n if (this.visible && !this.timePickerVisible) {\n if (list.indexOf(keyCode) !== -1) {\n this.handleKeyControl(keyCode);\n event.stopPropagation();\n event.preventDefault();\n }\n if (keyCode === 13 && this.userInputDate === null && this.userInputTime === null) {\n // Enter\n this.emit(this.date, false);\n }\n }\n },\n handleKeyControl: function handleKeyControl(keyCode) {\n var mapping = {\n 'year': {\n 38: -4, 40: 4, 37: -1, 39: 1, offset: function offset(date, step) {\n return date.setFullYear(date.getFullYear() + step);\n }\n },\n 'month': {\n 38: -4, 40: 4, 37: -1, 39: 1, offset: function offset(date, step) {\n return date.setMonth(date.getMonth() + step);\n }\n },\n 'week': {\n 38: -1, 40: 1, 37: -1, 39: 1, offset: function offset(date, step) {\n return date.setDate(date.getDate() + step * 7);\n }\n },\n 'day': {\n 38: -7, 40: 7, 37: -1, 39: 1, offset: function offset(date, step) {\n return date.setDate(date.getDate() + step);\n }\n }\n };\n var mode = this.selectionMode;\n var year = 3.1536e10;\n var now = this.date.getTime();\n var newDate = new Date(this.date.getTime());\n while (Math.abs(now - newDate.getTime()) <= year) {\n var map = mapping[mode];\n map.offset(newDate, map[keyCode]);\n if (typeof this.disabledDate === 'function' && this.disabledDate(newDate)) {\n continue;\n }\n this.date = newDate;\n this.$emit('pick', newDate, true);\n break;\n }\n },\n handleVisibleTimeChange: function handleVisibleTimeChange(value) {\n var time = Object(date_util_[\"parseDate\"])(value, this.timeFormat);\n if (time && this.checkDateWithinRange(time)) {\n this.date = Object(date_util_[\"modifyDate\"])(time, this.year, this.month, this.monthDate);\n this.userInputTime = null;\n this.$refs.timepicker.value = this.date;\n this.timePickerVisible = false;\n this.emit(this.date, true);\n }\n },\n handleVisibleDateChange: function handleVisibleDateChange(value) {\n var date = Object(date_util_[\"parseDate\"])(value, this.dateFormat);\n if (date) {\n if (typeof this.disabledDate === 'function' && this.disabledDate(date)) {\n return;\n }\n this.date = Object(date_util_[\"modifyTime\"])(date, this.date.getHours(), this.date.getMinutes(), this.date.getSeconds());\n this.userInputDate = null;\n this.resetView();\n this.emit(this.date, true);\n }\n },\n isValidValue: function isValidValue(value) {\n return value && !isNaN(value) && (typeof this.disabledDate === 'function' ? !this.disabledDate(value) : true) && this.checkDateWithinRange(value);\n },\n getDefaultValue: function getDefaultValue() {\n // if default-value is set, return it\n // otherwise, return now (the moment this method gets called)\n return this.defaultValue ? new Date(this.defaultValue) : new Date();\n },\n checkDateWithinRange: function checkDateWithinRange(date) {\n return this.selectableRange.length > 0 ? Object(date_util_[\"timeWithinRange\"])(date, this.selectableRange, this.format || 'HH:mm:ss') : true;\n }\n },\n\n components: {\n TimePicker: panel_time[\"a\" /* default */], YearTable: year_table, MonthTable: month_table, DateTable: date_table, ElInput: input_default.a, ElButton: button_default.a\n },\n\n data: function data() {\n return {\n popperClass: '',\n date: new Date(),\n value: '',\n defaultValue: null, // use getDefaultValue() for time computation\n defaultTime: null,\n showTime: false,\n selectionMode: 'day',\n shortcuts: '',\n visible: false,\n currentView: 'date',\n disabledDate: '',\n cellClassName: '',\n selectableRange: [],\n firstDayOfWeek: 7,\n showWeekNumber: false,\n timePickerVisible: false,\n format: '',\n arrowControl: false,\n userInputDate: null,\n userInputTime: null\n };\n },\n\n\n computed: {\n year: function year() {\n return this.date.getFullYear();\n },\n month: function month() {\n return this.date.getMonth();\n },\n week: function week() {\n return Object(date_util_[\"getWeekNumber\"])(this.date);\n },\n monthDate: function monthDate() {\n return this.date.getDate();\n },\n footerVisible: function footerVisible() {\n return this.showTime || this.selectionMode === 'dates';\n },\n visibleTime: function visibleTime() {\n if (this.userInputTime !== null) {\n return this.userInputTime;\n } else {\n return Object(date_util_[\"formatDate\"])(this.value || this.defaultValue, this.timeFormat);\n }\n },\n visibleDate: function visibleDate() {\n if (this.userInputDate !== null) {\n return this.userInputDate;\n } else {\n return Object(date_util_[\"formatDate\"])(this.value || this.defaultValue, this.dateFormat);\n }\n },\n yearLabel: function yearLabel() {\n var yearTranslation = this.t('el.datepicker.year');\n if (this.currentView === 'year') {\n var startYear = Math.floor(this.year / 10) * 10;\n if (yearTranslation) {\n return startYear + ' ' + yearTranslation + ' - ' + (startYear + 9) + ' ' + yearTranslation;\n }\n return startYear + ' - ' + (startYear + 9);\n }\n return this.year + ' ' + yearTranslation;\n },\n timeFormat: function timeFormat() {\n if (this.format) {\n return Object(date_util_[\"extractTimeFormat\"])(this.format);\n } else {\n return 'HH:mm:ss';\n }\n },\n dateFormat: function dateFormat() {\n if (this.format) {\n return Object(date_util_[\"extractDateFormat\"])(this.format);\n } else {\n return 'yyyy-MM-dd';\n }\n }\n }\n});\n// CONCATENATED MODULE: ./packages/date-picker/src/panel/date.vue?vue&type=script&lang=js&\n /* harmony default export */ var panel_datevue_type_script_lang_js_ = (datevue_type_script_lang_js_); \n// CONCATENATED MODULE: ./packages/date-picker/src/panel/date.vue\n\n\n\n\n\n/* normalize component */\n\nvar date_component = Object(componentNormalizer[\"a\" /* default */])(\n panel_datevue_type_script_lang_js_,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (false) { var date_api; }\ndate_component.options.__file = \"packages/date-picker/src/panel/date.vue\"\n/* harmony default export */ var panel_date = (date_component.exports);\n// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/date-picker/src/panel/date-range.vue?vue&type=template&id=2652849a&\nvar date_rangevue_type_template_id_2652849a_render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"transition\",\n {\n attrs: { name: \"el-zoom-in-top\" },\n on: {\n \"after-leave\": function($event) {\n _vm.$emit(\"dodestroy\")\n }\n }\n },\n [\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.visible,\n expression: \"visible\"\n }\n ],\n staticClass: \"el-picker-panel el-date-range-picker el-popper\",\n class: [\n {\n \"has-sidebar\": _vm.$slots.sidebar || _vm.shortcuts,\n \"has-time\": _vm.showTime\n },\n _vm.popperClass\n ]\n },\n [\n _c(\n \"div\",\n { staticClass: \"el-picker-panel__body-wrapper\" },\n [\n _vm._t(\"sidebar\"),\n _vm.shortcuts\n ? _c(\n \"div\",\n { staticClass: \"el-picker-panel__sidebar\" },\n _vm._l(_vm.shortcuts, function(shortcut, key) {\n return _c(\n \"button\",\n {\n key: key,\n staticClass: \"el-picker-panel__shortcut\",\n attrs: { type: \"button\" },\n on: {\n click: function($event) {\n _vm.handleShortcutClick(shortcut)\n }\n }\n },\n [_vm._v(_vm._s(shortcut.text))]\n )\n }),\n 0\n )\n : _vm._e(),\n _c(\"div\", { staticClass: \"el-picker-panel__body\" }, [\n _vm.showTime\n ? _c(\n \"div\",\n { staticClass: \"el-date-range-picker__time-header\" },\n [\n _c(\n \"span\",\n { staticClass: \"el-date-range-picker__editors-wrap\" },\n [\n _c(\n \"span\",\n {\n staticClass:\n \"el-date-range-picker__time-picker-wrap\"\n },\n [\n _c(\"el-input\", {\n ref: \"minInput\",\n staticClass: \"el-date-range-picker__editor\",\n attrs: {\n size: \"small\",\n disabled: _vm.rangeState.selecting,\n placeholder: _vm.t(\n \"el.datepicker.startDate\"\n ),\n value: _vm.minVisibleDate\n },\n on: {\n input: function(val) {\n return _vm.handleDateInput(val, \"min\")\n },\n change: function(val) {\n return _vm.handleDateChange(val, \"min\")\n }\n }\n })\n ],\n 1\n ),\n _c(\n \"span\",\n {\n directives: [\n {\n name: \"clickoutside\",\n rawName: \"v-clickoutside\",\n value: _vm.handleMinTimeClose,\n expression: \"handleMinTimeClose\"\n }\n ],\n staticClass:\n \"el-date-range-picker__time-picker-wrap\"\n },\n [\n _c(\"el-input\", {\n staticClass: \"el-date-range-picker__editor\",\n attrs: {\n size: \"small\",\n disabled: _vm.rangeState.selecting,\n placeholder: _vm.t(\n \"el.datepicker.startTime\"\n ),\n value: _vm.minVisibleTime\n },\n on: {\n focus: function($event) {\n _vm.minTimePickerVisible = true\n },\n input: function(val) {\n return _vm.handleTimeInput(val, \"min\")\n },\n change: function(val) {\n return _vm.handleTimeChange(val, \"min\")\n }\n }\n }),\n _c(\"time-picker\", {\n ref: \"minTimePicker\",\n attrs: {\n \"time-arrow-control\": _vm.arrowControl,\n visible: _vm.minTimePickerVisible\n },\n on: {\n pick: _vm.handleMinTimePick,\n mounted: function($event) {\n _vm.$refs.minTimePicker.format =\n _vm.timeFormat\n }\n }\n })\n ],\n 1\n )\n ]\n ),\n _c(\"span\", { staticClass: \"el-icon-arrow-right\" }),\n _c(\n \"span\",\n {\n staticClass:\n \"el-date-range-picker__editors-wrap is-right\"\n },\n [\n _c(\n \"span\",\n {\n staticClass:\n \"el-date-range-picker__time-picker-wrap\"\n },\n [\n _c(\"el-input\", {\n staticClass: \"el-date-range-picker__editor\",\n attrs: {\n size: \"small\",\n disabled: _vm.rangeState.selecting,\n placeholder: _vm.t(\"el.datepicker.endDate\"),\n value: _vm.maxVisibleDate,\n readonly: !_vm.minDate\n },\n on: {\n input: function(val) {\n return _vm.handleDateInput(val, \"max\")\n },\n change: function(val) {\n return _vm.handleDateChange(val, \"max\")\n }\n }\n })\n ],\n 1\n ),\n _c(\n \"span\",\n {\n directives: [\n {\n name: \"clickoutside\",\n rawName: \"v-clickoutside\",\n value: _vm.handleMaxTimeClose,\n expression: \"handleMaxTimeClose\"\n }\n ],\n staticClass:\n \"el-date-range-picker__time-picker-wrap\"\n },\n [\n _c(\"el-input\", {\n staticClass: \"el-date-range-picker__editor\",\n attrs: {\n size: \"small\",\n disabled: _vm.rangeState.selecting,\n placeholder: _vm.t(\"el.datepicker.endTime\"),\n value: _vm.maxVisibleTime,\n readonly: !_vm.minDate\n },\n on: {\n focus: function($event) {\n _vm.minDate &&\n (_vm.maxTimePickerVisible = true)\n },\n input: function(val) {\n return _vm.handleTimeInput(val, \"max\")\n },\n change: function(val) {\n return _vm.handleTimeChange(val, \"max\")\n }\n }\n }),\n _c(\"time-picker\", {\n ref: \"maxTimePicker\",\n attrs: {\n \"time-arrow-control\": _vm.arrowControl,\n visible: _vm.maxTimePickerVisible\n },\n on: {\n pick: _vm.handleMaxTimePick,\n mounted: function($event) {\n _vm.$refs.maxTimePicker.format =\n _vm.timeFormat\n }\n }\n })\n ],\n 1\n )\n ]\n )\n ]\n )\n : _vm._e(),\n _c(\n \"div\",\n {\n staticClass:\n \"el-picker-panel__content el-date-range-picker__content is-left\"\n },\n [\n _c(\"div\", { staticClass: \"el-date-range-picker__header\" }, [\n _c(\"button\", {\n staticClass:\n \"el-picker-panel__icon-btn el-icon-d-arrow-left\",\n attrs: { type: \"button\" },\n on: { click: _vm.leftPrevYear }\n }),\n _c(\"button\", {\n staticClass:\n \"el-picker-panel__icon-btn el-icon-arrow-left\",\n attrs: { type: \"button\" },\n on: { click: _vm.leftPrevMonth }\n }),\n _vm.unlinkPanels\n ? _c(\"button\", {\n staticClass:\n \"el-picker-panel__icon-btn el-icon-d-arrow-right\",\n class: { \"is-disabled\": !_vm.enableYearArrow },\n attrs: {\n type: \"button\",\n disabled: !_vm.enableYearArrow\n },\n on: { click: _vm.leftNextYear }\n })\n : _vm._e(),\n _vm.unlinkPanels\n ? _c(\"button\", {\n staticClass:\n \"el-picker-panel__icon-btn el-icon-arrow-right\",\n class: { \"is-disabled\": !_vm.enableMonthArrow },\n attrs: {\n type: \"button\",\n disabled: !_vm.enableMonthArrow\n },\n on: { click: _vm.leftNextMonth }\n })\n : _vm._e(),\n _c(\"div\", [_vm._v(_vm._s(_vm.leftLabel))])\n ]),\n _c(\"date-table\", {\n attrs: {\n \"selection-mode\": \"range\",\n date: _vm.leftDate,\n \"default-value\": _vm.defaultValue,\n \"min-date\": _vm.minDate,\n \"max-date\": _vm.maxDate,\n \"range-state\": _vm.rangeState,\n \"disabled-date\": _vm.disabledDate,\n \"cell-class-name\": _vm.cellClassName,\n \"first-day-of-week\": _vm.firstDayOfWeek\n },\n on: {\n changerange: _vm.handleChangeRange,\n pick: _vm.handleRangePick\n }\n })\n ],\n 1\n ),\n _c(\n \"div\",\n {\n staticClass:\n \"el-picker-panel__content el-date-range-picker__content is-right\"\n },\n [\n _c(\"div\", { staticClass: \"el-date-range-picker__header\" }, [\n _vm.unlinkPanels\n ? _c(\"button\", {\n staticClass:\n \"el-picker-panel__icon-btn el-icon-d-arrow-left\",\n class: { \"is-disabled\": !_vm.enableYearArrow },\n attrs: {\n type: \"button\",\n disabled: !_vm.enableYearArrow\n },\n on: { click: _vm.rightPrevYear }\n })\n : _vm._e(),\n _vm.unlinkPanels\n ? _c(\"button\", {\n staticClass:\n \"el-picker-panel__icon-btn el-icon-arrow-left\",\n class: { \"is-disabled\": !_vm.enableMonthArrow },\n attrs: {\n type: \"button\",\n disabled: !_vm.enableMonthArrow\n },\n on: { click: _vm.rightPrevMonth }\n })\n : _vm._e(),\n _c(\"button\", {\n staticClass:\n \"el-picker-panel__icon-btn el-icon-d-arrow-right\",\n attrs: { type: \"button\" },\n on: { click: _vm.rightNextYear }\n }),\n _c(\"button\", {\n staticClass:\n \"el-picker-panel__icon-btn el-icon-arrow-right\",\n attrs: { type: \"button\" },\n on: { click: _vm.rightNextMonth }\n }),\n _c(\"div\", [_vm._v(_vm._s(_vm.rightLabel))])\n ]),\n _c(\"date-table\", {\n attrs: {\n \"selection-mode\": \"range\",\n date: _vm.rightDate,\n \"default-value\": _vm.defaultValue,\n \"min-date\": _vm.minDate,\n \"max-date\": _vm.maxDate,\n \"range-state\": _vm.rangeState,\n \"disabled-date\": _vm.disabledDate,\n \"cell-class-name\": _vm.cellClassName,\n \"first-day-of-week\": _vm.firstDayOfWeek\n },\n on: {\n changerange: _vm.handleChangeRange,\n pick: _vm.handleRangePick\n }\n })\n ],\n 1\n )\n ])\n ],\n 2\n ),\n _vm.showTime\n ? _c(\n \"div\",\n { staticClass: \"el-picker-panel__footer\" },\n [\n _c(\n \"el-button\",\n {\n staticClass: \"el-picker-panel__link-btn\",\n attrs: { size: \"mini\", type: \"text\" },\n on: { click: _vm.handleClear }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.t(\"el.datepicker.clear\")) +\n \"\\n \"\n )\n ]\n ),\n _c(\n \"el-button\",\n {\n staticClass: \"el-picker-panel__link-btn\",\n attrs: {\n plain: \"\",\n size: \"mini\",\n disabled: _vm.btnDisabled\n },\n on: {\n click: function($event) {\n _vm.handleConfirm(false)\n }\n }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.t(\"el.datepicker.confirm\")) +\n \"\\n \"\n )\n ]\n )\n ],\n 1\n )\n : _vm._e()\n ]\n )\n ]\n )\n}\nvar date_rangevue_type_template_id_2652849a_staticRenderFns = []\ndate_rangevue_type_template_id_2652849a_render._withStripped = true\n\n\n// CONCATENATED MODULE: ./packages/date-picker/src/panel/date-range.vue?vue&type=template&id=2652849a&\n\n// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/date-picker/src/panel/date-range.vue?vue&type=script&lang=js&\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n\n\n\n\nvar date_rangevue_type_script_lang_js_calcDefaultValue = function calcDefaultValue(defaultValue) {\n if (Array.isArray(defaultValue)) {\n return [new Date(defaultValue[0]), new Date(defaultValue[1])];\n } else if (defaultValue) {\n return [new Date(defaultValue), Object(date_util_[\"nextDate\"])(new Date(defaultValue), 1)];\n } else {\n return [new Date(), Object(date_util_[\"nextDate\"])(new Date(), 1)];\n }\n};\n\n/* harmony default export */ var date_rangevue_type_script_lang_js_ = ({\n mixins: [locale_default.a],\n\n directives: { Clickoutside: clickoutside_default.a },\n\n computed: {\n btnDisabled: function btnDisabled() {\n return !(this.minDate && this.maxDate && !this.selecting && this.isValidValue([this.minDate, this.maxDate]));\n },\n leftLabel: function leftLabel() {\n return this.leftDate.getFullYear() + ' ' + this.t('el.datepicker.year') + ' ' + this.t('el.datepicker.month' + (this.leftDate.getMonth() + 1));\n },\n rightLabel: function rightLabel() {\n return this.rightDate.getFullYear() + ' ' + this.t('el.datepicker.year') + ' ' + this.t('el.datepicker.month' + (this.rightDate.getMonth() + 1));\n },\n leftYear: function leftYear() {\n return this.leftDate.getFullYear();\n },\n leftMonth: function leftMonth() {\n return this.leftDate.getMonth();\n },\n leftMonthDate: function leftMonthDate() {\n return this.leftDate.getDate();\n },\n rightYear: function rightYear() {\n return this.rightDate.getFullYear();\n },\n rightMonth: function rightMonth() {\n return this.rightDate.getMonth();\n },\n rightMonthDate: function rightMonthDate() {\n return this.rightDate.getDate();\n },\n minVisibleDate: function minVisibleDate() {\n if (this.dateUserInput.min !== null) return this.dateUserInput.min;\n if (this.minDate) return Object(date_util_[\"formatDate\"])(this.minDate, this.dateFormat);\n return '';\n },\n maxVisibleDate: function maxVisibleDate() {\n if (this.dateUserInput.max !== null) return this.dateUserInput.max;\n if (this.maxDate || this.minDate) return Object(date_util_[\"formatDate\"])(this.maxDate || this.minDate, this.dateFormat);\n return '';\n },\n minVisibleTime: function minVisibleTime() {\n if (this.timeUserInput.min !== null) return this.timeUserInput.min;\n if (this.minDate) return Object(date_util_[\"formatDate\"])(this.minDate, this.timeFormat);\n return '';\n },\n maxVisibleTime: function maxVisibleTime() {\n if (this.timeUserInput.max !== null) return this.timeUserInput.max;\n if (this.maxDate || this.minDate) return Object(date_util_[\"formatDate\"])(this.maxDate || this.minDate, this.timeFormat);\n return '';\n },\n timeFormat: function timeFormat() {\n if (this.format) {\n return Object(date_util_[\"extractTimeFormat\"])(this.format);\n } else {\n return 'HH:mm:ss';\n }\n },\n dateFormat: function dateFormat() {\n if (this.format) {\n return Object(date_util_[\"extractDateFormat\"])(this.format);\n } else {\n return 'yyyy-MM-dd';\n }\n },\n enableMonthArrow: function enableMonthArrow() {\n var nextMonth = (this.leftMonth + 1) % 12;\n var yearOffset = this.leftMonth + 1 >= 12 ? 1 : 0;\n return this.unlinkPanels && new Date(this.leftYear + yearOffset, nextMonth) < new Date(this.rightYear, this.rightMonth);\n },\n enableYearArrow: function enableYearArrow() {\n return this.unlinkPanels && this.rightYear * 12 + this.rightMonth - (this.leftYear * 12 + this.leftMonth + 1) >= 12;\n }\n },\n\n data: function data() {\n return {\n popperClass: '',\n value: [],\n defaultValue: null,\n defaultTime: null,\n minDate: '',\n maxDate: '',\n leftDate: new Date(),\n rightDate: Object(date_util_[\"nextMonth\"])(new Date()),\n rangeState: {\n endDate: null,\n selecting: false,\n row: null,\n column: null\n },\n showTime: false,\n shortcuts: '',\n visible: '',\n disabledDate: '',\n cellClassName: '',\n firstDayOfWeek: 7,\n minTimePickerVisible: false,\n maxTimePickerVisible: false,\n format: '',\n arrowControl: false,\n unlinkPanels: false,\n dateUserInput: {\n min: null,\n max: null\n },\n timeUserInput: {\n min: null,\n max: null\n }\n };\n },\n\n\n watch: {\n minDate: function minDate(val) {\n var _this = this;\n\n this.dateUserInput.min = null;\n this.timeUserInput.min = null;\n this.$nextTick(function () {\n if (_this.$refs.maxTimePicker && _this.maxDate && _this.maxDate < _this.minDate) {\n var format = 'HH:mm:ss';\n _this.$refs.maxTimePicker.selectableRange = [[Object(date_util_[\"parseDate\"])(Object(date_util_[\"formatDate\"])(_this.minDate, format), format), Object(date_util_[\"parseDate\"])('23:59:59', format)]];\n }\n });\n if (val && this.$refs.minTimePicker) {\n this.$refs.minTimePicker.date = val;\n this.$refs.minTimePicker.value = val;\n }\n },\n maxDate: function maxDate(val) {\n this.dateUserInput.max = null;\n this.timeUserInput.max = null;\n if (val && this.$refs.maxTimePicker) {\n this.$refs.maxTimePicker.date = val;\n this.$refs.maxTimePicker.value = val;\n }\n },\n minTimePickerVisible: function minTimePickerVisible(val) {\n var _this2 = this;\n\n if (val) {\n this.$nextTick(function () {\n _this2.$refs.minTimePicker.date = _this2.minDate;\n _this2.$refs.minTimePicker.value = _this2.minDate;\n _this2.$refs.minTimePicker.adjustSpinners();\n });\n }\n },\n maxTimePickerVisible: function maxTimePickerVisible(val) {\n var _this3 = this;\n\n if (val) {\n this.$nextTick(function () {\n _this3.$refs.maxTimePicker.date = _this3.maxDate;\n _this3.$refs.maxTimePicker.value = _this3.maxDate;\n _this3.$refs.maxTimePicker.adjustSpinners();\n });\n }\n },\n value: function value(newVal) {\n if (!newVal) {\n this.minDate = null;\n this.maxDate = null;\n } else if (Array.isArray(newVal)) {\n this.minDate = Object(date_util_[\"isDate\"])(newVal[0]) ? new Date(newVal[0]) : null;\n this.maxDate = Object(date_util_[\"isDate\"])(newVal[1]) ? new Date(newVal[1]) : null;\n if (this.minDate) {\n this.leftDate = this.minDate;\n if (this.unlinkPanels && this.maxDate) {\n var minDateYear = this.minDate.getFullYear();\n var minDateMonth = this.minDate.getMonth();\n var maxDateYear = this.maxDate.getFullYear();\n var maxDateMonth = this.maxDate.getMonth();\n this.rightDate = minDateYear === maxDateYear && minDateMonth === maxDateMonth ? Object(date_util_[\"nextMonth\"])(this.maxDate) : this.maxDate;\n } else {\n this.rightDate = Object(date_util_[\"nextMonth\"])(this.leftDate);\n }\n } else {\n this.leftDate = date_rangevue_type_script_lang_js_calcDefaultValue(this.defaultValue)[0];\n this.rightDate = Object(date_util_[\"nextMonth\"])(this.leftDate);\n }\n }\n },\n defaultValue: function defaultValue(val) {\n if (!Array.isArray(this.value)) {\n var _calcDefaultValue = date_rangevue_type_script_lang_js_calcDefaultValue(val),\n left = _calcDefaultValue[0],\n right = _calcDefaultValue[1];\n\n this.leftDate = left;\n this.rightDate = val && val[1] && this.unlinkPanels ? right : Object(date_util_[\"nextMonth\"])(this.leftDate);\n }\n }\n },\n\n methods: {\n handleClear: function handleClear() {\n this.minDate = null;\n this.maxDate = null;\n this.leftDate = date_rangevue_type_script_lang_js_calcDefaultValue(this.defaultValue)[0];\n this.rightDate = Object(date_util_[\"nextMonth\"])(this.leftDate);\n this.$emit('pick', null);\n },\n handleChangeRange: function handleChangeRange(val) {\n this.minDate = val.minDate;\n this.maxDate = val.maxDate;\n this.rangeState = val.rangeState;\n },\n handleDateInput: function handleDateInput(value, type) {\n this.dateUserInput[type] = value;\n if (value.length !== this.dateFormat.length) return;\n var parsedValue = Object(date_util_[\"parseDate\"])(value, this.dateFormat);\n\n if (parsedValue) {\n if (typeof this.disabledDate === 'function' && this.disabledDate(new Date(parsedValue))) {\n return;\n }\n if (type === 'min') {\n this.minDate = Object(date_util_[\"modifyDate\"])(this.minDate || new Date(), parsedValue.getFullYear(), parsedValue.getMonth(), parsedValue.getDate());\n this.leftDate = new Date(parsedValue);\n if (!this.unlinkPanels) {\n this.rightDate = Object(date_util_[\"nextMonth\"])(this.leftDate);\n }\n } else {\n this.maxDate = Object(date_util_[\"modifyDate\"])(this.maxDate || new Date(), parsedValue.getFullYear(), parsedValue.getMonth(), parsedValue.getDate());\n this.rightDate = new Date(parsedValue);\n if (!this.unlinkPanels) {\n this.leftDate = Object(date_util_[\"prevMonth\"])(parsedValue);\n }\n }\n }\n },\n handleDateChange: function handleDateChange(value, type) {\n var parsedValue = Object(date_util_[\"parseDate\"])(value, this.dateFormat);\n if (parsedValue) {\n if (type === 'min') {\n this.minDate = Object(date_util_[\"modifyDate\"])(this.minDate, parsedValue.getFullYear(), parsedValue.getMonth(), parsedValue.getDate());\n if (this.minDate > this.maxDate) {\n this.maxDate = this.minDate;\n }\n } else {\n this.maxDate = Object(date_util_[\"modifyDate\"])(this.maxDate, parsedValue.getFullYear(), parsedValue.getMonth(), parsedValue.getDate());\n if (this.maxDate < this.minDate) {\n this.minDate = this.maxDate;\n }\n }\n }\n },\n handleTimeInput: function handleTimeInput(value, type) {\n var _this4 = this;\n\n this.timeUserInput[type] = value;\n if (value.length !== this.timeFormat.length) return;\n var parsedValue = Object(date_util_[\"parseDate\"])(value, this.timeFormat);\n\n if (parsedValue) {\n if (type === 'min') {\n this.minDate = Object(date_util_[\"modifyTime\"])(this.minDate, parsedValue.getHours(), parsedValue.getMinutes(), parsedValue.getSeconds());\n this.$nextTick(function (_) {\n return _this4.$refs.minTimePicker.adjustSpinners();\n });\n } else {\n this.maxDate = Object(date_util_[\"modifyTime\"])(this.maxDate, parsedValue.getHours(), parsedValue.getMinutes(), parsedValue.getSeconds());\n this.$nextTick(function (_) {\n return _this4.$refs.maxTimePicker.adjustSpinners();\n });\n }\n }\n },\n handleTimeChange: function handleTimeChange(value, type) {\n var parsedValue = Object(date_util_[\"parseDate\"])(value, this.timeFormat);\n if (parsedValue) {\n if (type === 'min') {\n this.minDate = Object(date_util_[\"modifyTime\"])(this.minDate, parsedValue.getHours(), parsedValue.getMinutes(), parsedValue.getSeconds());\n if (this.minDate > this.maxDate) {\n this.maxDate = this.minDate;\n }\n this.$refs.minTimePicker.value = this.minDate;\n this.minTimePickerVisible = false;\n } else {\n this.maxDate = Object(date_util_[\"modifyTime\"])(this.maxDate, parsedValue.getHours(), parsedValue.getMinutes(), parsedValue.getSeconds());\n if (this.maxDate < this.minDate) {\n this.minDate = this.maxDate;\n }\n this.$refs.maxTimePicker.value = this.minDate;\n this.maxTimePickerVisible = false;\n }\n }\n },\n handleRangePick: function handleRangePick(val) {\n var _this5 = this;\n\n var close = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n var defaultTime = this.defaultTime || [];\n var minDate = Object(date_util_[\"modifyWithTimeString\"])(val.minDate, defaultTime[0]);\n var maxDate = Object(date_util_[\"modifyWithTimeString\"])(val.maxDate, defaultTime[1]);\n\n if (this.maxDate === maxDate && this.minDate === minDate) {\n return;\n }\n this.onPick && this.onPick(val);\n this.maxDate = maxDate;\n this.minDate = minDate;\n\n // workaround for https://github.com/ElemeFE/element/issues/7539, should remove this block when we don't have to care about Chromium 55 - 57\n setTimeout(function () {\n _this5.maxDate = maxDate;\n _this5.minDate = minDate;\n }, 10);\n if (!close || this.showTime) return;\n this.handleConfirm();\n },\n handleShortcutClick: function handleShortcutClick(shortcut) {\n if (shortcut.onClick) {\n shortcut.onClick(this);\n }\n },\n handleMinTimePick: function handleMinTimePick(value, visible, first) {\n this.minDate = this.minDate || new Date();\n if (value) {\n this.minDate = Object(date_util_[\"modifyTime\"])(this.minDate, value.getHours(), value.getMinutes(), value.getSeconds());\n }\n\n if (!first) {\n this.minTimePickerVisible = visible;\n }\n\n if (!this.maxDate || this.maxDate && this.maxDate.getTime() < this.minDate.getTime()) {\n this.maxDate = new Date(this.minDate);\n }\n },\n handleMinTimeClose: function handleMinTimeClose() {\n this.minTimePickerVisible = false;\n },\n handleMaxTimePick: function handleMaxTimePick(value, visible, first) {\n if (this.maxDate && value) {\n this.maxDate = Object(date_util_[\"modifyTime\"])(this.maxDate, value.getHours(), value.getMinutes(), value.getSeconds());\n }\n\n if (!first) {\n this.maxTimePickerVisible = visible;\n }\n\n if (this.maxDate && this.minDate && this.minDate.getTime() > this.maxDate.getTime()) {\n this.minDate = new Date(this.maxDate);\n }\n },\n handleMaxTimeClose: function handleMaxTimeClose() {\n this.maxTimePickerVisible = false;\n },\n\n\n // leftPrev*, rightNext* need to take care of `unlinkPanels`\n leftPrevYear: function leftPrevYear() {\n this.leftDate = Object(date_util_[\"prevYear\"])(this.leftDate);\n if (!this.unlinkPanels) {\n this.rightDate = Object(date_util_[\"nextMonth\"])(this.leftDate);\n }\n },\n leftPrevMonth: function leftPrevMonth() {\n this.leftDate = Object(date_util_[\"prevMonth\"])(this.leftDate);\n if (!this.unlinkPanels) {\n this.rightDate = Object(date_util_[\"nextMonth\"])(this.leftDate);\n }\n },\n rightNextYear: function rightNextYear() {\n if (!this.unlinkPanels) {\n this.leftDate = Object(date_util_[\"nextYear\"])(this.leftDate);\n this.rightDate = Object(date_util_[\"nextMonth\"])(this.leftDate);\n } else {\n this.rightDate = Object(date_util_[\"nextYear\"])(this.rightDate);\n }\n },\n rightNextMonth: function rightNextMonth() {\n if (!this.unlinkPanels) {\n this.leftDate = Object(date_util_[\"nextMonth\"])(this.leftDate);\n this.rightDate = Object(date_util_[\"nextMonth\"])(this.leftDate);\n } else {\n this.rightDate = Object(date_util_[\"nextMonth\"])(this.rightDate);\n }\n },\n\n\n // leftNext*, rightPrev* are called when `unlinkPanels` is true\n leftNextYear: function leftNextYear() {\n this.leftDate = Object(date_util_[\"nextYear\"])(this.leftDate);\n },\n leftNextMonth: function leftNextMonth() {\n this.leftDate = Object(date_util_[\"nextMonth\"])(this.leftDate);\n },\n rightPrevYear: function rightPrevYear() {\n this.rightDate = Object(date_util_[\"prevYear\"])(this.rightDate);\n },\n rightPrevMonth: function rightPrevMonth() {\n this.rightDate = Object(date_util_[\"prevMonth\"])(this.rightDate);\n },\n handleConfirm: function handleConfirm() {\n var visible = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (this.isValidValue([this.minDate, this.maxDate])) {\n this.$emit('pick', [this.minDate, this.maxDate], visible);\n }\n },\n isValidValue: function isValidValue(value) {\n return Array.isArray(value) && value && value[0] && value[1] && Object(date_util_[\"isDate\"])(value[0]) && Object(date_util_[\"isDate\"])(value[1]) && value[0].getTime() <= value[1].getTime() && (typeof this.disabledDate === 'function' ? !this.disabledDate(value[0]) && !this.disabledDate(value[1]) : true);\n },\n resetView: function resetView() {\n // NOTE: this is a hack to reset {min, max}Date on picker open.\n // TODO: correct way of doing so is to refactor {min, max}Date to be dependent on value and internal selection state\n // an alternative would be resetView whenever picker becomes visible, should also investigate date-panel's resetView\n if (this.minDate && this.maxDate == null) this.rangeState.selecting = false;\n this.minDate = this.value && Object(date_util_[\"isDate\"])(this.value[0]) ? new Date(this.value[0]) : null;\n this.maxDate = this.value && Object(date_util_[\"isDate\"])(this.value[0]) ? new Date(this.value[1]) : null;\n }\n },\n\n components: { TimePicker: panel_time[\"a\" /* default */], DateTable: date_table, ElInput: input_default.a, ElButton: button_default.a }\n});\n// CONCATENATED MODULE: ./packages/date-picker/src/panel/date-range.vue?vue&type=script&lang=js&\n /* harmony default export */ var panel_date_rangevue_type_script_lang_js_ = (date_rangevue_type_script_lang_js_); \n// CONCATENATED MODULE: ./packages/date-picker/src/panel/date-range.vue\n\n\n\n\n\n/* normalize component */\n\nvar date_range_component = Object(componentNormalizer[\"a\" /* default */])(\n panel_date_rangevue_type_script_lang_js_,\n date_rangevue_type_template_id_2652849a_render,\n date_rangevue_type_template_id_2652849a_staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (false) { var date_range_api; }\ndate_range_component.options.__file = \"packages/date-picker/src/panel/date-range.vue\"\n/* harmony default export */ var date_range = (date_range_component.exports);\n// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/date-picker/src/panel/month-range.vue?vue&type=template&id=f2645fb8&\nvar month_rangevue_type_template_id_f2645fb8_render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"transition\",\n {\n attrs: { name: \"el-zoom-in-top\" },\n on: {\n \"after-leave\": function($event) {\n _vm.$emit(\"dodestroy\")\n }\n }\n },\n [\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.visible,\n expression: \"visible\"\n }\n ],\n staticClass: \"el-picker-panel el-date-range-picker el-popper\",\n class: [\n {\n \"has-sidebar\": _vm.$slots.sidebar || _vm.shortcuts\n },\n _vm.popperClass\n ]\n },\n [\n _c(\n \"div\",\n { staticClass: \"el-picker-panel__body-wrapper\" },\n [\n _vm._t(\"sidebar\"),\n _vm.shortcuts\n ? _c(\n \"div\",\n { staticClass: \"el-picker-panel__sidebar\" },\n _vm._l(_vm.shortcuts, function(shortcut, key) {\n return _c(\n \"button\",\n {\n key: key,\n staticClass: \"el-picker-panel__shortcut\",\n attrs: { type: \"button\" },\n on: {\n click: function($event) {\n _vm.handleShortcutClick(shortcut)\n }\n }\n },\n [_vm._v(_vm._s(shortcut.text))]\n )\n }),\n 0\n )\n : _vm._e(),\n _c(\"div\", { staticClass: \"el-picker-panel__body\" }, [\n _c(\n \"div\",\n {\n staticClass:\n \"el-picker-panel__content el-date-range-picker__content is-left\"\n },\n [\n _c(\"div\", { staticClass: \"el-date-range-picker__header\" }, [\n _c(\"button\", {\n staticClass:\n \"el-picker-panel__icon-btn el-icon-d-arrow-left\",\n attrs: { type: \"button\" },\n on: { click: _vm.leftPrevYear }\n }),\n _vm.unlinkPanels\n ? _c(\"button\", {\n staticClass:\n \"el-picker-panel__icon-btn el-icon-d-arrow-right\",\n class: { \"is-disabled\": !_vm.enableYearArrow },\n attrs: {\n type: \"button\",\n disabled: !_vm.enableYearArrow\n },\n on: { click: _vm.leftNextYear }\n })\n : _vm._e(),\n _c(\"div\", [_vm._v(_vm._s(_vm.leftLabel))])\n ]),\n _c(\"month-table\", {\n attrs: {\n \"selection-mode\": \"range\",\n date: _vm.leftDate,\n \"default-value\": _vm.defaultValue,\n \"min-date\": _vm.minDate,\n \"max-date\": _vm.maxDate,\n \"range-state\": _vm.rangeState,\n \"disabled-date\": _vm.disabledDate\n },\n on: {\n changerange: _vm.handleChangeRange,\n pick: _vm.handleRangePick\n }\n })\n ],\n 1\n ),\n _c(\n \"div\",\n {\n staticClass:\n \"el-picker-panel__content el-date-range-picker__content is-right\"\n },\n [\n _c(\"div\", { staticClass: \"el-date-range-picker__header\" }, [\n _vm.unlinkPanels\n ? _c(\"button\", {\n staticClass:\n \"el-picker-panel__icon-btn el-icon-d-arrow-left\",\n class: { \"is-disabled\": !_vm.enableYearArrow },\n attrs: {\n type: \"button\",\n disabled: !_vm.enableYearArrow\n },\n on: { click: _vm.rightPrevYear }\n })\n : _vm._e(),\n _c(\"button\", {\n staticClass:\n \"el-picker-panel__icon-btn el-icon-d-arrow-right\",\n attrs: { type: \"button\" },\n on: { click: _vm.rightNextYear }\n }),\n _c(\"div\", [_vm._v(_vm._s(_vm.rightLabel))])\n ]),\n _c(\"month-table\", {\n attrs: {\n \"selection-mode\": \"range\",\n date: _vm.rightDate,\n \"default-value\": _vm.defaultValue,\n \"min-date\": _vm.minDate,\n \"max-date\": _vm.maxDate,\n \"range-state\": _vm.rangeState,\n \"disabled-date\": _vm.disabledDate\n },\n on: {\n changerange: _vm.handleChangeRange,\n pick: _vm.handleRangePick\n }\n })\n ],\n 1\n )\n ])\n ],\n 2\n )\n ]\n )\n ]\n )\n}\nvar month_rangevue_type_template_id_f2645fb8_staticRenderFns = []\nmonth_rangevue_type_template_id_f2645fb8_render._withStripped = true\n\n\n// CONCATENATED MODULE: ./packages/date-picker/src/panel/month-range.vue?vue&type=template&id=f2645fb8&\n\n// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/date-picker/src/panel/month-range.vue?vue&type=script&lang=js&\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n\n\n\nvar month_rangevue_type_script_lang_js_calcDefaultValue = function calcDefaultValue(defaultValue) {\n if (Array.isArray(defaultValue)) {\n return [new Date(defaultValue[0]), new Date(defaultValue[1])];\n } else if (defaultValue) {\n return [new Date(defaultValue), Object(date_util_[\"nextMonth\"])(new Date(defaultValue))];\n } else {\n return [new Date(), Object(date_util_[\"nextMonth\"])(new Date())];\n }\n};\n/* harmony default export */ var month_rangevue_type_script_lang_js_ = ({\n mixins: [locale_default.a],\n\n directives: { Clickoutside: clickoutside_default.a },\n\n computed: {\n btnDisabled: function btnDisabled() {\n return !(this.minDate && this.maxDate && !this.selecting && this.isValidValue([this.minDate, this.maxDate]));\n },\n leftLabel: function leftLabel() {\n return this.leftDate.getFullYear() + ' ' + this.t('el.datepicker.year');\n },\n rightLabel: function rightLabel() {\n return this.rightDate.getFullYear() + ' ' + this.t('el.datepicker.year');\n },\n leftYear: function leftYear() {\n return this.leftDate.getFullYear();\n },\n rightYear: function rightYear() {\n return this.rightDate.getFullYear() === this.leftDate.getFullYear() ? this.leftDate.getFullYear() + 1 : this.rightDate.getFullYear();\n },\n enableYearArrow: function enableYearArrow() {\n return this.unlinkPanels && this.rightYear > this.leftYear + 1;\n }\n },\n\n data: function data() {\n return {\n popperClass: '',\n value: [],\n defaultValue: null,\n defaultTime: null,\n minDate: '',\n maxDate: '',\n leftDate: new Date(),\n rightDate: Object(date_util_[\"nextYear\"])(new Date()),\n rangeState: {\n endDate: null,\n selecting: false,\n row: null,\n column: null\n },\n shortcuts: '',\n visible: '',\n disabledDate: '',\n format: '',\n arrowControl: false,\n unlinkPanels: false\n };\n },\n\n\n watch: {\n value: function value(newVal) {\n if (!newVal) {\n this.minDate = null;\n this.maxDate = null;\n } else if (Array.isArray(newVal)) {\n this.minDate = Object(date_util_[\"isDate\"])(newVal[0]) ? new Date(newVal[0]) : null;\n this.maxDate = Object(date_util_[\"isDate\"])(newVal[1]) ? new Date(newVal[1]) : null;\n if (this.minDate) {\n this.leftDate = this.minDate;\n if (this.unlinkPanels && this.maxDate) {\n var minDateYear = this.minDate.getFullYear();\n var maxDateYear = this.maxDate.getFullYear();\n this.rightDate = minDateYear === maxDateYear ? Object(date_util_[\"nextYear\"])(this.maxDate) : this.maxDate;\n } else {\n this.rightDate = Object(date_util_[\"nextYear\"])(this.leftDate);\n }\n } else {\n this.leftDate = month_rangevue_type_script_lang_js_calcDefaultValue(this.defaultValue)[0];\n this.rightDate = Object(date_util_[\"nextYear\"])(this.leftDate);\n }\n }\n },\n defaultValue: function defaultValue(val) {\n if (!Array.isArray(this.value)) {\n var _calcDefaultValue = month_rangevue_type_script_lang_js_calcDefaultValue(val),\n left = _calcDefaultValue[0],\n right = _calcDefaultValue[1];\n\n this.leftDate = left;\n this.rightDate = val && val[1] && left.getFullYear() !== right.getFullYear() && this.unlinkPanels ? right : Object(date_util_[\"nextYear\"])(this.leftDate);\n }\n }\n },\n\n methods: {\n handleClear: function handleClear() {\n this.minDate = null;\n this.maxDate = null;\n this.leftDate = month_rangevue_type_script_lang_js_calcDefaultValue(this.defaultValue)[0];\n this.rightDate = Object(date_util_[\"nextYear\"])(this.leftDate);\n this.$emit('pick', null);\n },\n handleChangeRange: function handleChangeRange(val) {\n this.minDate = val.minDate;\n this.maxDate = val.maxDate;\n this.rangeState = val.rangeState;\n },\n handleRangePick: function handleRangePick(val) {\n var _this = this;\n\n var close = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n var defaultTime = this.defaultTime || [];\n var minDate = Object(date_util_[\"modifyWithTimeString\"])(val.minDate, defaultTime[0]);\n var maxDate = Object(date_util_[\"modifyWithTimeString\"])(val.maxDate, defaultTime[1]);\n if (this.maxDate === maxDate && this.minDate === minDate) {\n return;\n }\n this.onPick && this.onPick(val);\n this.maxDate = maxDate;\n this.minDate = minDate;\n\n // workaround for https://github.com/ElemeFE/element/issues/7539, should remove this block when we don't have to care about Chromium 55 - 57\n setTimeout(function () {\n _this.maxDate = maxDate;\n _this.minDate = minDate;\n }, 10);\n if (!close) return;\n this.handleConfirm();\n },\n handleShortcutClick: function handleShortcutClick(shortcut) {\n if (shortcut.onClick) {\n shortcut.onClick(this);\n }\n },\n\n\n // leftPrev*, rightNext* need to take care of `unlinkPanels`\n leftPrevYear: function leftPrevYear() {\n this.leftDate = Object(date_util_[\"prevYear\"])(this.leftDate);\n if (!this.unlinkPanels) {\n this.rightDate = Object(date_util_[\"prevYear\"])(this.rightDate);\n }\n },\n rightNextYear: function rightNextYear() {\n if (!this.unlinkPanels) {\n this.leftDate = Object(date_util_[\"nextYear\"])(this.leftDate);\n }\n this.rightDate = Object(date_util_[\"nextYear\"])(this.rightDate);\n },\n\n\n // leftNext*, rightPrev* are called when `unlinkPanels` is true\n leftNextYear: function leftNextYear() {\n this.leftDate = Object(date_util_[\"nextYear\"])(this.leftDate);\n },\n rightPrevYear: function rightPrevYear() {\n this.rightDate = Object(date_util_[\"prevYear\"])(this.rightDate);\n },\n handleConfirm: function handleConfirm() {\n var visible = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (this.isValidValue([this.minDate, this.maxDate])) {\n this.$emit('pick', [this.minDate, this.maxDate], visible);\n }\n },\n isValidValue: function isValidValue(value) {\n return Array.isArray(value) && value && value[0] && value[1] && Object(date_util_[\"isDate\"])(value[0]) && Object(date_util_[\"isDate\"])(value[1]) && value[0].getTime() <= value[1].getTime() && (typeof this.disabledDate === 'function' ? !this.disabledDate(value[0]) && !this.disabledDate(value[1]) : true);\n },\n resetView: function resetView() {\n // NOTE: this is a hack to reset {min, max}Date on picker open.\n // TODO: correct way of doing so is to refactor {min, max}Date to be dependent on value and internal selection state\n // an alternative would be resetView whenever picker becomes visible, should also investigate date-panel's resetView\n this.minDate = this.value && Object(date_util_[\"isDate\"])(this.value[0]) ? new Date(this.value[0]) : null;\n this.maxDate = this.value && Object(date_util_[\"isDate\"])(this.value[0]) ? new Date(this.value[1]) : null;\n }\n },\n\n components: { MonthTable: month_table, ElInput: input_default.a, ElButton: button_default.a }\n});\n// CONCATENATED MODULE: ./packages/date-picker/src/panel/month-range.vue?vue&type=script&lang=js&\n /* harmony default export */ var panel_month_rangevue_type_script_lang_js_ = (month_rangevue_type_script_lang_js_); \n// CONCATENATED MODULE: ./packages/date-picker/src/panel/month-range.vue\n\n\n\n\n\n/* normalize component */\n\nvar month_range_component = Object(componentNormalizer[\"a\" /* default */])(\n panel_month_rangevue_type_script_lang_js_,\n month_rangevue_type_template_id_f2645fb8_render,\n month_rangevue_type_template_id_f2645fb8_staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (false) { var month_range_api; }\nmonth_range_component.options.__file = \"packages/date-picker/src/panel/month-range.vue\"\n/* harmony default export */ var month_range = (month_range_component.exports);\n// CONCATENATED MODULE: ./packages/date-picker/src/picker/date-picker.js\n\n\n\n\n\nvar date_picker_getPanel = function getPanel(type) {\n if (type === 'daterange' || type === 'datetimerange') {\n return date_range;\n } else if (type === 'monthrange') {\n return month_range;\n }\n return panel_date;\n};\n\n/* harmony default export */ var date_picker = ({\n mixins: [picker[\"a\" /* default */]],\n\n name: 'ElDatePicker',\n\n props: {\n type: {\n type: String,\n default: 'date'\n },\n timeArrowControl: Boolean\n },\n\n watch: {\n type: function type(_type) {\n if (this.picker) {\n this.unmountPicker();\n this.panel = date_picker_getPanel(_type);\n this.mountPicker();\n } else {\n this.panel = date_picker_getPanel(_type);\n }\n }\n },\n\n created: function created() {\n this.panel = date_picker_getPanel(this.type);\n }\n});\n// CONCATENATED MODULE: ./packages/date-picker/index.js\n\n\n/* istanbul ignore next */\ndate_picker.install = function install(Vue) {\n Vue.component(date_picker.name, date_picker);\n};\n\n/* harmony default export */ var packages_date_picker = __webpack_exports__[\"default\"] = (date_picker);\n\n/***/ })\n/******/ ]);","var 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","// 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","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').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","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('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","\"use strict\";\n\nexports.__esModule = true;\nfunction _broadcast(componentName, eventName, params) {\n this.$children.forEach(function (child) {\n var name = child.$options.componentName;\n\n if (name === componentName) {\n child.$emit.apply(child, [eventName].concat(params));\n } else {\n _broadcast.apply(child, [componentName, eventName].concat([params]));\n }\n });\n}\nexports.default = {\n methods: {\n dispatch: function dispatch(componentName, eventName, params) {\n var parent = this.$parent || this.$root;\n var name = parent.$options.componentName;\n\n while (parent && (!name || name !== componentName)) {\n parent = parent.$parent;\n\n if (parent) {\n name = parent.$options.componentName;\n }\n }\n if (parent) {\n parent.$emit.apply(parent, [eventName].concat(params));\n }\n },\n broadcast: function broadcast(componentName, eventName, params) {\n _broadcast.call(this, componentName, eventName, params);\n }\n }\n};","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","\"use strict\";\n\nexports.__esModule = true;\nexports.isDef = isDef;\nexports.isKorean = isKorean;\nfunction isDef(val) {\n return val !== undefined && val !== null;\n}\nfunction isKorean(text) {\n var reg = /([(\\uAC00-\\uD7AF)|(\\u3130-\\u318F)])+/gi;\n return reg.test(text);\n}","'use strict';\n\n/* Modified from https://github.com/taylorhakes/fecha\n *\n * The MIT License (MIT)\n *\n * Copyright (c) 2015 Taylor Hakes\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n\n/*eslint-disable*/\n// 把 YYYY-MM-DD 改成了 yyyy-MM-dd\n(function (main) {\n 'use strict';\n\n /**\n * Parse or format dates\n * @class fecha\n */\n\n var fecha = {};\n var token = /d{1,4}|M{1,4}|yy(?:yy)?|S{1,3}|Do|ZZ|([HhMsDm])\\1?|[aA]|\"[^\"]*\"|'[^']*'/g;\n var twoDigits = '\\\\d\\\\d?';\n var threeDigits = '\\\\d{3}';\n var fourDigits = '\\\\d{4}';\n var word = '[^\\\\s]+';\n var literal = /\\[([^]*?)\\]/gm;\n var noop = function noop() {};\n\n function regexEscape(str) {\n return str.replace(/[|\\\\{()[^$+*?.-]/g, '\\\\$&');\n }\n\n function shorten(arr, sLen) {\n var newArr = [];\n for (var i = 0, len = arr.length; i < len; i++) {\n newArr.push(arr[i].substr(0, sLen));\n }\n return newArr;\n }\n\n function monthUpdate(arrName) {\n return function (d, v, i18n) {\n var index = i18n[arrName].indexOf(v.charAt(0).toUpperCase() + v.substr(1).toLowerCase());\n if (~index) {\n d.month = index;\n }\n };\n }\n\n function pad(val, len) {\n val = String(val);\n len = len || 2;\n while (val.length < len) {\n val = '0' + val;\n }\n return val;\n }\n\n var dayNames = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];\n var monthNames = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];\n var monthNamesShort = shorten(monthNames, 3);\n var dayNamesShort = shorten(dayNames, 3);\n fecha.i18n = {\n dayNamesShort: dayNamesShort,\n dayNames: dayNames,\n monthNamesShort: monthNamesShort,\n monthNames: monthNames,\n amPm: ['am', 'pm'],\n DoFn: function DoFn(D) {\n return D + ['th', 'st', 'nd', 'rd'][D % 10 > 3 ? 0 : (D - D % 10 !== 10) * D % 10];\n }\n };\n\n var formatFlags = {\n D: function D(dateObj) {\n return dateObj.getDay();\n },\n DD: function DD(dateObj) {\n return pad(dateObj.getDay());\n },\n Do: function Do(dateObj, i18n) {\n return i18n.DoFn(dateObj.getDate());\n },\n d: function d(dateObj) {\n return dateObj.getDate();\n },\n dd: function dd(dateObj) {\n return pad(dateObj.getDate());\n },\n ddd: function ddd(dateObj, i18n) {\n return i18n.dayNamesShort[dateObj.getDay()];\n },\n dddd: function dddd(dateObj, i18n) {\n return i18n.dayNames[dateObj.getDay()];\n },\n M: function M(dateObj) {\n return dateObj.getMonth() + 1;\n },\n MM: function MM(dateObj) {\n return pad(dateObj.getMonth() + 1);\n },\n MMM: function MMM(dateObj, i18n) {\n return i18n.monthNamesShort[dateObj.getMonth()];\n },\n MMMM: function MMMM(dateObj, i18n) {\n return i18n.monthNames[dateObj.getMonth()];\n },\n yy: function yy(dateObj) {\n return pad(String(dateObj.getFullYear()), 4).substr(2);\n },\n yyyy: function yyyy(dateObj) {\n return pad(dateObj.getFullYear(), 4);\n },\n h: function h(dateObj) {\n return dateObj.getHours() % 12 || 12;\n },\n hh: function hh(dateObj) {\n return pad(dateObj.getHours() % 12 || 12);\n },\n H: function H(dateObj) {\n return dateObj.getHours();\n },\n HH: function HH(dateObj) {\n return pad(dateObj.getHours());\n },\n m: function m(dateObj) {\n return dateObj.getMinutes();\n },\n mm: function mm(dateObj) {\n return pad(dateObj.getMinutes());\n },\n s: function s(dateObj) {\n return dateObj.getSeconds();\n },\n ss: function ss(dateObj) {\n return pad(dateObj.getSeconds());\n },\n S: function S(dateObj) {\n return Math.round(dateObj.getMilliseconds() / 100);\n },\n SS: function SS(dateObj) {\n return pad(Math.round(dateObj.getMilliseconds() / 10), 2);\n },\n SSS: function SSS(dateObj) {\n return pad(dateObj.getMilliseconds(), 3);\n },\n a: function a(dateObj, i18n) {\n return dateObj.getHours() < 12 ? i18n.amPm[0] : i18n.amPm[1];\n },\n A: function A(dateObj, i18n) {\n return dateObj.getHours() < 12 ? i18n.amPm[0].toUpperCase() : i18n.amPm[1].toUpperCase();\n },\n ZZ: function ZZ(dateObj) {\n var o = dateObj.getTimezoneOffset();\n return (o > 0 ? '-' : '+') + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4);\n }\n };\n\n var parseFlags = {\n d: [twoDigits, function (d, v) {\n d.day = v;\n }],\n Do: [twoDigits + word, function (d, v) {\n d.day = parseInt(v, 10);\n }],\n M: [twoDigits, function (d, v) {\n d.month = v - 1;\n }],\n yy: [twoDigits, function (d, v) {\n var da = new Date(),\n cent = +('' + da.getFullYear()).substr(0, 2);\n d.year = '' + (v > 68 ? cent - 1 : cent) + v;\n }],\n h: [twoDigits, function (d, v) {\n d.hour = v;\n }],\n m: [twoDigits, function (d, v) {\n d.minute = v;\n }],\n s: [twoDigits, function (d, v) {\n d.second = v;\n }],\n yyyy: [fourDigits, function (d, v) {\n d.year = v;\n }],\n S: ['\\\\d', function (d, v) {\n d.millisecond = v * 100;\n }],\n SS: ['\\\\d{2}', function (d, v) {\n d.millisecond = v * 10;\n }],\n SSS: [threeDigits, function (d, v) {\n d.millisecond = v;\n }],\n D: [twoDigits, noop],\n ddd: [word, noop],\n MMM: [word, monthUpdate('monthNamesShort')],\n MMMM: [word, monthUpdate('monthNames')],\n a: [word, function (d, v, i18n) {\n var val = v.toLowerCase();\n if (val === i18n.amPm[0]) {\n d.isPm = false;\n } else if (val === i18n.amPm[1]) {\n d.isPm = true;\n }\n }],\n ZZ: ['[^\\\\s]*?[\\\\+\\\\-]\\\\d\\\\d:?\\\\d\\\\d|[^\\\\s]*?Z', function (d, v) {\n var parts = (v + '').match(/([+-]|\\d\\d)/gi),\n minutes;\n\n if (parts) {\n minutes = +(parts[1] * 60) + parseInt(parts[2], 10);\n d.timezoneOffset = parts[0] === '+' ? minutes : -minutes;\n }\n }]\n };\n parseFlags.dd = parseFlags.d;\n parseFlags.dddd = parseFlags.ddd;\n parseFlags.DD = parseFlags.D;\n parseFlags.mm = parseFlags.m;\n parseFlags.hh = parseFlags.H = parseFlags.HH = parseFlags.h;\n parseFlags.MM = parseFlags.M;\n parseFlags.ss = parseFlags.s;\n parseFlags.A = parseFlags.a;\n\n // Some common format strings\n fecha.masks = {\n default: 'ddd MMM dd yyyy HH:mm:ss',\n shortDate: 'M/D/yy',\n mediumDate: 'MMM d, yyyy',\n longDate: 'MMMM d, yyyy',\n fullDate: 'dddd, MMMM d, yyyy',\n shortTime: 'HH:mm',\n mediumTime: 'HH:mm:ss',\n longTime: 'HH:mm:ss.SSS'\n };\n\n /***\n * Format a date\n * @method format\n * @param {Date|number} dateObj\n * @param {string} mask Format of the date, i.e. 'mm-dd-yy' or 'shortDate'\n */\n fecha.format = function (dateObj, mask, i18nSettings) {\n var i18n = i18nSettings || fecha.i18n;\n\n if (typeof dateObj === 'number') {\n dateObj = new Date(dateObj);\n }\n\n if (Object.prototype.toString.call(dateObj) !== '[object Date]' || isNaN(dateObj.getTime())) {\n throw new Error('Invalid Date in fecha.format');\n }\n\n mask = fecha.masks[mask] || mask || fecha.masks['default'];\n\n var literals = [];\n\n // Make literals inactive by replacing them with ??\n mask = mask.replace(literal, function ($0, $1) {\n literals.push($1);\n return '@@@';\n });\n // Apply formatting rules\n mask = mask.replace(token, function ($0) {\n return $0 in formatFlags ? formatFlags[$0](dateObj, i18n) : $0.slice(1, $0.length - 1);\n });\n // Inline literal values back into the formatted value\n return mask.replace(/@@@/g, function () {\n return literals.shift();\n });\n };\n\n /**\n * Parse a date string into an object, changes - into /\n * @method parse\n * @param {string} dateStr Date string\n * @param {string} format Date parse format\n * @returns {Date|boolean}\n */\n fecha.parse = function (dateStr, format, i18nSettings) {\n var i18n = i18nSettings || fecha.i18n;\n\n if (typeof format !== 'string') {\n throw new Error('Invalid format in fecha.parse');\n }\n\n format = fecha.masks[format] || format;\n\n // Avoid regular expression denial of service, fail early for really long strings\n // https://www.owasp.org/index.php/Regular_expression_Denial_of_Service_-_ReDoS\n if (dateStr.length > 1000) {\n return null;\n }\n\n var dateInfo = {};\n var parseInfo = [];\n var literals = [];\n format = format.replace(literal, function ($0, $1) {\n literals.push($1);\n return '@@@';\n });\n var newFormat = regexEscape(format).replace(token, function ($0) {\n if (parseFlags[$0]) {\n var info = parseFlags[$0];\n parseInfo.push(info[1]);\n return '(' + info[0] + ')';\n }\n\n return $0;\n });\n newFormat = newFormat.replace(/@@@/g, function () {\n return literals.shift();\n });\n var matches = dateStr.match(new RegExp(newFormat, 'i'));\n if (!matches) {\n return null;\n }\n\n for (var i = 1; i < matches.length; i++) {\n parseInfo[i - 1](dateInfo, matches[i], i18n);\n }\n\n var today = new Date();\n if (dateInfo.isPm === true && dateInfo.hour != null && +dateInfo.hour !== 12) {\n dateInfo.hour = +dateInfo.hour + 12;\n } else if (dateInfo.isPm === false && +dateInfo.hour === 12) {\n dateInfo.hour = 0;\n }\n\n var date;\n if (dateInfo.timezoneOffset != null) {\n dateInfo.minute = +(dateInfo.minute || 0) - +dateInfo.timezoneOffset;\n date = new Date(Date.UTC(dateInfo.year || today.getFullYear(), dateInfo.month || 0, dateInfo.day || 1, dateInfo.hour || 0, dateInfo.minute || 0, dateInfo.second || 0, dateInfo.millisecond || 0));\n } else {\n date = new Date(dateInfo.year || today.getFullYear(), dateInfo.month || 0, dateInfo.day || 1, dateInfo.hour || 0, dateInfo.minute || 0, dateInfo.second || 0, dateInfo.millisecond || 0);\n }\n return date;\n };\n\n /* istanbul ignore next */\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = fecha;\n } else if (typeof define === 'function' && define.amd) {\n define(function () {\n return fecha;\n });\n } else {\n main.fecha = fecha;\n }\n})(undefined);","'use strict';\n\nexports.__esModule = true;\nexports.validateRangeInOneMonth = exports.extractTimeFormat = exports.extractDateFormat = exports.nextYear = exports.prevYear = exports.nextMonth = exports.prevMonth = exports.changeYearMonthAndClampDate = exports.timeWithinRange = exports.limitTimeRange = exports.clearMilliseconds = exports.clearTime = exports.modifyWithTimeString = exports.modifyTime = exports.modifyDate = exports.range = exports.getRangeMinutes = exports.getMonthDays = exports.getPrevMonthLastDays = exports.getRangeHours = exports.getWeekNumber = exports.getStartDateOfMonth = exports.nextDate = exports.prevDate = exports.getFirstDayOfMonth = exports.getDayCountOfYear = exports.getDayCountOfMonth = exports.parseDate = exports.formatDate = exports.isDateObject = exports.isDate = exports.toDate = exports.getI18nSettings = undefined;\n\nvar _date = require('element-ui/lib/utils/date');\n\nvar _date2 = _interopRequireDefault(_date);\n\nvar _locale = require('element-ui/lib/locale');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar weeks = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'];\nvar months = ['jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec'];\n\nvar newArray = function newArray(start, end) {\n var result = [];\n for (var i = start; i <= end; i++) {\n result.push(i);\n }\n return result;\n};\n\nvar getI18nSettings = exports.getI18nSettings = function getI18nSettings() {\n return {\n dayNamesShort: weeks.map(function (week) {\n return (0, _locale.t)('el.datepicker.weeks.' + week);\n }),\n dayNames: weeks.map(function (week) {\n return (0, _locale.t)('el.datepicker.weeks.' + week);\n }),\n monthNamesShort: months.map(function (month) {\n return (0, _locale.t)('el.datepicker.months.' + month);\n }),\n monthNames: months.map(function (month, index) {\n return (0, _locale.t)('el.datepicker.month' + (index + 1));\n }),\n amPm: ['am', 'pm']\n };\n};\n\nvar toDate = exports.toDate = function toDate(date) {\n return isDate(date) ? new Date(date) : null;\n};\n\nvar isDate = exports.isDate = function isDate(date) {\n if (date === null || date === undefined) return false;\n if (isNaN(new Date(date).getTime())) return false;\n if (Array.isArray(date)) return false; // deal with `new Date([ new Date() ]) -> new Date()`\n return true;\n};\n\nvar isDateObject = exports.isDateObject = function isDateObject(val) {\n return val instanceof Date;\n};\n\nvar formatDate = exports.formatDate = function formatDate(date, format) {\n date = toDate(date);\n if (!date) return '';\n return _date2.default.format(date, format || 'yyyy-MM-dd', getI18nSettings());\n};\n\nvar parseDate = exports.parseDate = function parseDate(string, format) {\n return _date2.default.parse(string, format || 'yyyy-MM-dd', getI18nSettings());\n};\n\nvar getDayCountOfMonth = exports.getDayCountOfMonth = function getDayCountOfMonth(year, month) {\n if (month === 3 || month === 5 || month === 8 || month === 10) {\n return 30;\n }\n\n if (month === 1) {\n if (year % 4 === 0 && year % 100 !== 0 || year % 400 === 0) {\n return 29;\n } else {\n return 28;\n }\n }\n\n return 31;\n};\n\nvar getDayCountOfYear = exports.getDayCountOfYear = function getDayCountOfYear(year) {\n var isLeapYear = year % 400 === 0 || year % 100 !== 0 && year % 4 === 0;\n return isLeapYear ? 366 : 365;\n};\n\nvar getFirstDayOfMonth = exports.getFirstDayOfMonth = function getFirstDayOfMonth(date) {\n var temp = new Date(date.getTime());\n temp.setDate(1);\n return temp.getDay();\n};\n\n// see: https://stackoverflow.com/questions/3674539/incrementing-a-date-in-javascript\n// {prev, next} Date should work for Daylight Saving Time\n// Adding 24 * 60 * 60 * 1000 does not work in the above scenario\nvar prevDate = exports.prevDate = function prevDate(date) {\n var amount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n\n return new Date(date.getFullYear(), date.getMonth(), date.getDate() - amount);\n};\n\nvar nextDate = exports.nextDate = function nextDate(date) {\n var amount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n\n return new Date(date.getFullYear(), date.getMonth(), date.getDate() + amount);\n};\n\nvar getStartDateOfMonth = exports.getStartDateOfMonth = function getStartDateOfMonth(year, month) {\n var result = new Date(year, month, 1);\n var day = result.getDay();\n\n if (day === 0) {\n return prevDate(result, 7);\n } else {\n return prevDate(result, day);\n }\n};\n\nvar getWeekNumber = exports.getWeekNumber = function getWeekNumber(src) {\n if (!isDate(src)) return null;\n var date = new Date(src.getTime());\n date.setHours(0, 0, 0, 0);\n // Thursday in current week decides the year.\n date.setDate(date.getDate() + 3 - (date.getDay() + 6) % 7);\n // January 4 is always in week 1.\n var week1 = new Date(date.getFullYear(), 0, 4);\n // Adjust to Thursday in week 1 and count number of weeks from date to week 1.\n // Rounding should be fine for Daylight Saving Time. Its shift should never be more than 12 hours.\n return 1 + Math.round(((date.getTime() - week1.getTime()) / 86400000 - 3 + (week1.getDay() + 6) % 7) / 7);\n};\n\nvar getRangeHours = exports.getRangeHours = function getRangeHours(ranges) {\n var hours = [];\n var disabledHours = [];\n\n (ranges || []).forEach(function (range) {\n var value = range.map(function (date) {\n return date.getHours();\n });\n\n disabledHours = disabledHours.concat(newArray(value[0], value[1]));\n });\n\n if (disabledHours.length) {\n for (var i = 0; i < 24; i++) {\n hours[i] = disabledHours.indexOf(i) === -1;\n }\n } else {\n for (var _i = 0; _i < 24; _i++) {\n hours[_i] = false;\n }\n }\n\n return hours;\n};\n\nvar getPrevMonthLastDays = exports.getPrevMonthLastDays = function getPrevMonthLastDays(date, amount) {\n if (amount <= 0) return [];\n var temp = new Date(date.getTime());\n temp.setDate(0);\n var lastDay = temp.getDate();\n return range(amount).map(function (_, index) {\n return lastDay - (amount - index - 1);\n });\n};\n\nvar getMonthDays = exports.getMonthDays = function getMonthDays(date) {\n var temp = new Date(date.getFullYear(), date.getMonth() + 1, 0);\n var days = temp.getDate();\n return range(days).map(function (_, index) {\n return index + 1;\n });\n};\n\nfunction setRangeData(arr, start, end, value) {\n for (var i = start; i < end; i++) {\n arr[i] = value;\n }\n}\n\nvar getRangeMinutes = exports.getRangeMinutes = function getRangeMinutes(ranges, hour) {\n var minutes = new Array(60);\n\n if (ranges.length > 0) {\n ranges.forEach(function (range) {\n var start = range[0];\n var end = range[1];\n var startHour = start.getHours();\n var startMinute = start.getMinutes();\n var endHour = end.getHours();\n var endMinute = end.getMinutes();\n if (startHour === hour && endHour !== hour) {\n setRangeData(minutes, startMinute, 60, true);\n } else if (startHour === hour && endHour === hour) {\n setRangeData(minutes, startMinute, endMinute + 1, true);\n } else if (startHour !== hour && endHour === hour) {\n setRangeData(minutes, 0, endMinute + 1, true);\n } else if (startHour < hour && endHour > hour) {\n setRangeData(minutes, 0, 60, true);\n }\n });\n } else {\n setRangeData(minutes, 0, 60, true);\n }\n return minutes;\n};\n\nvar range = exports.range = function range(n) {\n // see https://stackoverflow.com/questions/3746725/create-a-javascript-array-containing-1-n\n return Array.apply(null, { length: n }).map(function (_, n) {\n return n;\n });\n};\n\nvar modifyDate = exports.modifyDate = function modifyDate(date, y, m, d) {\n return new Date(y, m, d, date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());\n};\n\nvar modifyTime = exports.modifyTime = function modifyTime(date, h, m, s) {\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), h, m, s, date.getMilliseconds());\n};\n\nvar modifyWithTimeString = exports.modifyWithTimeString = function modifyWithTimeString(date, time) {\n if (date == null || !time) {\n return date;\n }\n time = parseDate(time, 'HH:mm:ss');\n return modifyTime(date, time.getHours(), time.getMinutes(), time.getSeconds());\n};\n\nvar clearTime = exports.clearTime = function clearTime(date) {\n return new Date(date.getFullYear(), date.getMonth(), date.getDate());\n};\n\nvar clearMilliseconds = exports.clearMilliseconds = function clearMilliseconds(date) {\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), 0);\n};\n\nvar limitTimeRange = exports.limitTimeRange = function limitTimeRange(date, ranges) {\n var format = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'HH:mm:ss';\n\n // TODO: refactory a more elegant solution\n if (ranges.length === 0) return date;\n var normalizeDate = function normalizeDate(date) {\n return _date2.default.parse(_date2.default.format(date, format), format);\n };\n var ndate = normalizeDate(date);\n var nranges = ranges.map(function (range) {\n return range.map(normalizeDate);\n });\n if (nranges.some(function (nrange) {\n return ndate >= nrange[0] && ndate <= nrange[1];\n })) return date;\n\n var minDate = nranges[0][0];\n var maxDate = nranges[0][0];\n\n nranges.forEach(function (nrange) {\n minDate = new Date(Math.min(nrange[0], minDate));\n maxDate = new Date(Math.max(nrange[1], minDate));\n });\n\n var ret = ndate < minDate ? minDate : maxDate;\n // preserve Year/Month/Date\n return modifyDate(ret, date.getFullYear(), date.getMonth(), date.getDate());\n};\n\nvar timeWithinRange = exports.timeWithinRange = function timeWithinRange(date, selectableRange, format) {\n var limitedDate = limitTimeRange(date, selectableRange, format);\n return limitedDate.getTime() === date.getTime();\n};\n\nvar changeYearMonthAndClampDate = exports.changeYearMonthAndClampDate = function changeYearMonthAndClampDate(date, year, month) {\n // clamp date to the number of days in `year`, `month`\n // eg: (2010-1-31, 2010, 2) => 2010-2-28\n var monthDate = Math.min(date.getDate(), getDayCountOfMonth(year, month));\n return modifyDate(date, year, month, monthDate);\n};\n\nvar prevMonth = exports.prevMonth = function prevMonth(date) {\n var year = date.getFullYear();\n var month = date.getMonth();\n return month === 0 ? changeYearMonthAndClampDate(date, year - 1, 11) : changeYearMonthAndClampDate(date, year, month - 1);\n};\n\nvar nextMonth = exports.nextMonth = function nextMonth(date) {\n var year = date.getFullYear();\n var month = date.getMonth();\n return month === 11 ? changeYearMonthAndClampDate(date, year + 1, 0) : changeYearMonthAndClampDate(date, year, month + 1);\n};\n\nvar prevYear = exports.prevYear = function prevYear(date) {\n var amount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n\n var year = date.getFullYear();\n var month = date.getMonth();\n return changeYearMonthAndClampDate(date, year - amount, month);\n};\n\nvar nextYear = exports.nextYear = function nextYear(date) {\n var amount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n\n var year = date.getFullYear();\n var month = date.getMonth();\n return changeYearMonthAndClampDate(date, year + amount, month);\n};\n\nvar extractDateFormat = exports.extractDateFormat = function extractDateFormat(format) {\n return format.replace(/\\W?m{1,2}|\\W?ZZ/g, '').replace(/\\W?h{1,2}|\\W?s{1,3}|\\W?a/gi, '').trim();\n};\n\nvar extractTimeFormat = exports.extractTimeFormat = function extractTimeFormat(format) {\n return format.replace(/\\W?D{1,2}|\\W?Do|\\W?d{1,4}|\\W?M{1,4}|\\W?y{2,4}/g, '').trim();\n};\n\nvar validateRangeInOneMonth = exports.validateRangeInOneMonth = function validateRangeInOneMonth(start, end) {\n return start.getMonth() === end.getMonth() && start.getFullYear() === end.getFullYear();\n};","// .dirname, .basename, and .extname methods are extracted from Node.js v8.11.1,\n// backported and transplited with Babel, with backwards-compat fixes\n\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n}\n\n// path.resolve([from ...], to)\n// posix version\nexports.resolve = function() {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = (i >= 0) ? arguments[i] : process.cwd();\n\n // Skip empty and invalid entries\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n\n return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';\n};\n\n// path.normalize(path)\n// posix version\nexports.normalize = function(path) {\n var isAbsolute = exports.isAbsolute(path),\n trailingSlash = substr(path, -1) === '/';\n\n // Normalize the path\n path = normalizeArray(filter(path.split('/'), function(p) {\n return !!p;\n }), !isAbsolute).join('/');\n\n if (!path && !isAbsolute) {\n path = '.';\n }\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isAbsolute ? '/' : '') + path;\n};\n\n// posix version\nexports.isAbsolute = function(path) {\n return path.charAt(0) === '/';\n};\n\n// posix version\nexports.join = function() {\n var paths = Array.prototype.slice.call(arguments, 0);\n return exports.normalize(filter(paths, function(p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n return p;\n }).join('/'));\n};\n\n\n// path.relative(from, to)\n// posix version\nexports.relative = function(from, to) {\n from = exports.resolve(from).substr(1);\n to = exports.resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n\n return outputParts.join('/');\n};\n\nexports.sep = '/';\nexports.delimiter = ':';\n\nexports.dirname = function (path) {\n if (typeof path !== 'string') path = path + '';\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47 /*/*/;\n var end = -1;\n var matchedSlash = true;\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n if (hasRoot && end === 1) {\n // return '//';\n // Backwards-compat fix:\n return '/';\n }\n return path.slice(0, end);\n};\n\nfunction basename(path) {\n if (typeof path !== 'string') path = path + '';\n\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n}\n\n// Uses a mixed approach for backwards-compatibility, as ext behavior changed\n// in new Node.js versions, so only basename() above is backported here\nexports.basename = function (path, ext) {\n var f = basename(path);\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n return f;\n};\n\nexports.extname = function (path) {\n if (typeof path !== 'string') path = path + '';\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n return path.slice(startDot, end);\n};\n\nfunction filter (xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n return res;\n}\n\n// String.prototype.substr - negative index don't work in IE8\nvar substr = 'ab'.substr(-1) === 'b'\n ? function (str, start, len) { return str.substr(start, len) }\n : function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n }\n;\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","module.exports = true;\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","'use strict';\n\nexports.__esModule = true;\n\nexports.default = function () {\n if (_vue2.default.prototype.$isServer) return 0;\n if (scrollBarWidth !== undefined) return scrollBarWidth;\n\n var outer = document.createElement('div');\n outer.className = 'el-scrollbar__wrap';\n outer.style.visibility = 'hidden';\n outer.style.width = '100px';\n outer.style.position = 'absolute';\n outer.style.top = '-9999px';\n document.body.appendChild(outer);\n\n var widthNoScroll = outer.offsetWidth;\n outer.style.overflow = 'scroll';\n\n var inner = document.createElement('div');\n inner.style.width = '100%';\n outer.appendChild(inner);\n\n var widthWithScroll = inner.offsetWidth;\n outer.parentNode.removeChild(outer);\n scrollBarWidth = widthNoScroll - widthWithScroll;\n\n return scrollBarWidth;\n};\n\nvar _vue = require('vue');\n\nvar _vue2 = _interopRequireDefault(_vue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar scrollBarWidth = void 0;\n\n;","'use strict';\n\nexports.__esModule = true;\n\nvar _vue = require('vue');\n\nvar _vue2 = _interopRequireDefault(_vue);\n\nvar _popup = require('element-ui/lib/utils/popup');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar PopperJS = _vue2.default.prototype.$isServer ? function () {} : require('./popper');\nvar stop = function stop(e) {\n return e.stopPropagation();\n};\n\n/**\n * @param {HTMLElement} [reference=$refs.reference] - The reference element used to position the popper.\n * @param {HTMLElement} [popper=$refs.popper] - The HTML element used as popper, or a configuration used to generate the popper.\n * @param {String} [placement=button] - Placement of the popper accepted values: top(-start, -end), right(-start, -end), bottom(-start, -end), left(-start, -end)\n * @param {Number} [offset=0] - Amount of pixels the popper will be shifted (can be negative).\n * @param {Boolean} [visible=false] Visibility of the popup element.\n * @param {Boolean} [visible-arrow=false] Visibility of the arrow, no style.\n */\nexports.default = {\n props: {\n transformOrigin: {\n type: [Boolean, String],\n default: true\n },\n placement: {\n type: String,\n default: 'bottom'\n },\n boundariesPadding: {\n type: Number,\n default: 5\n },\n reference: {},\n popper: {},\n offset: {\n default: 0\n },\n value: Boolean,\n visibleArrow: Boolean,\n arrowOffset: {\n type: Number,\n default: 35\n },\n appendToBody: {\n type: Boolean,\n default: true\n },\n popperOptions: {\n type: Object,\n default: function _default() {\n return {\n gpuAcceleration: false\n };\n }\n }\n },\n\n data: function data() {\n return {\n showPopper: false,\n currentPlacement: ''\n };\n },\n\n\n watch: {\n value: {\n immediate: true,\n handler: function handler(val) {\n this.showPopper = val;\n this.$emit('input', val);\n }\n },\n\n showPopper: function showPopper(val) {\n if (this.disabled) return;\n val ? this.updatePopper() : this.destroyPopper();\n this.$emit('input', val);\n }\n },\n\n methods: {\n createPopper: function createPopper() {\n var _this = this;\n\n if (this.$isServer) return;\n this.currentPlacement = this.currentPlacement || this.placement;\n if (!/^(top|bottom|left|right)(-start|-end)?$/g.test(this.currentPlacement)) {\n return;\n }\n\n var options = this.popperOptions;\n var popper = this.popperElm = this.popperElm || this.popper || this.$refs.popper;\n var reference = this.referenceElm = this.referenceElm || this.reference || this.$refs.reference;\n\n if (!reference && this.$slots.reference && this.$slots.reference[0]) {\n reference = this.referenceElm = this.$slots.reference[0].elm;\n }\n\n if (!popper || !reference) return;\n if (this.visibleArrow) this.appendArrow(popper);\n if (this.appendToBody) document.body.appendChild(this.popperElm);\n if (this.popperJS && this.popperJS.destroy) {\n this.popperJS.destroy();\n }\n\n options.placement = this.currentPlacement;\n options.offset = this.offset;\n options.arrowOffset = this.arrowOffset;\n this.popperJS = new PopperJS(reference, popper, options);\n this.popperJS.onCreate(function (_) {\n _this.$emit('created', _this);\n _this.resetTransformOrigin();\n _this.$nextTick(_this.updatePopper);\n });\n if (typeof options.onUpdate === 'function') {\n this.popperJS.onUpdate(options.onUpdate);\n }\n this.popperJS._popper.style.zIndex = _popup.PopupManager.nextZIndex();\n this.popperElm.addEventListener('click', stop);\n },\n updatePopper: function updatePopper() {\n var popperJS = this.popperJS;\n if (popperJS) {\n popperJS.update();\n if (popperJS._popper) {\n popperJS._popper.style.zIndex = _popup.PopupManager.nextZIndex();\n }\n } else {\n this.createPopper();\n }\n },\n doDestroy: function doDestroy(forceDestroy) {\n /* istanbul ignore if */\n if (!this.popperJS || this.showPopper && !forceDestroy) return;\n this.popperJS.destroy();\n this.popperJS = null;\n },\n destroyPopper: function destroyPopper() {\n if (this.popperJS) {\n this.resetTransformOrigin();\n }\n },\n resetTransformOrigin: function resetTransformOrigin() {\n if (!this.transformOrigin) return;\n var placementMap = {\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left'\n };\n var placement = this.popperJS._popper.getAttribute('x-placement').split('-')[0];\n var origin = placementMap[placement];\n this.popperJS._popper.style.transformOrigin = typeof this.transformOrigin === 'string' ? this.transformOrigin : ['top', 'bottom'].indexOf(placement) > -1 ? 'center ' + origin : origin + ' center';\n },\n appendArrow: function appendArrow(element) {\n var hash = void 0;\n if (this.appended) {\n return;\n }\n\n this.appended = true;\n\n for (var item in element.attributes) {\n if (/^_v-/.test(element.attributes[item].name)) {\n hash = element.attributes[item].name;\n break;\n }\n }\n\n var arrow = document.createElement('div');\n\n if (hash) {\n arrow.setAttribute(hash, '');\n }\n arrow.setAttribute('x-arrow', '');\n arrow.className = 'popper__arrow';\n element.appendChild(arrow);\n }\n },\n\n beforeDestroy: function beforeDestroy() {\n this.doDestroy(true);\n if (this.popperElm && this.popperElm.parentNode === document.body) {\n this.popperElm.removeEventListener('click', stop);\n document.body.removeChild(this.popperElm);\n }\n },\n\n\n // call destroy in keep-alive mode\n deactivated: function deactivated() {\n this.$options.beforeDestroy[0].call(this);\n }\n};","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","module.exports =\n/******/ (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 = \"/dist/\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 97);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return normalizeComponent; });\n/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nfunction normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functioal component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n\n\n/***/ }),\n\n/***/ 97:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n\n// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/button/src/button.vue?vue&type=template&id=ca859fb4&\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"button\",\n {\n staticClass: \"el-button\",\n class: [\n _vm.type ? \"el-button--\" + _vm.type : \"\",\n _vm.buttonSize ? \"el-button--\" + _vm.buttonSize : \"\",\n {\n \"is-disabled\": _vm.buttonDisabled,\n \"is-loading\": _vm.loading,\n \"is-plain\": _vm.plain,\n \"is-round\": _vm.round,\n \"is-circle\": _vm.circle\n }\n ],\n attrs: {\n disabled: _vm.buttonDisabled || _vm.loading,\n autofocus: _vm.autofocus,\n type: _vm.nativeType\n },\n on: { click: _vm.handleClick }\n },\n [\n _vm.loading ? _c(\"i\", { staticClass: \"el-icon-loading\" }) : _vm._e(),\n _vm.icon && !_vm.loading ? _c(\"i\", { class: _vm.icon }) : _vm._e(),\n _vm.$slots.default ? _c(\"span\", [_vm._t(\"default\")], 2) : _vm._e()\n ]\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n// CONCATENATED MODULE: ./packages/button/src/button.vue?vue&type=template&id=ca859fb4&\n\n// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/button/src/button.vue?vue&type=script&lang=js&\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n/* harmony default export */ var buttonvue_type_script_lang_js_ = ({\n name: 'ElButton',\n\n inject: {\n elForm: {\n default: ''\n },\n elFormItem: {\n default: ''\n }\n },\n\n props: {\n type: {\n type: String,\n default: 'default'\n },\n size: String,\n icon: {\n type: String,\n default: ''\n },\n nativeType: {\n type: String,\n default: 'button'\n },\n loading: Boolean,\n disabled: Boolean,\n plain: Boolean,\n autofocus: Boolean,\n round: Boolean,\n circle: Boolean\n },\n\n computed: {\n _elFormItemSize: function _elFormItemSize() {\n return (this.elFormItem || {}).elFormItemSize;\n },\n buttonSize: function buttonSize() {\n return this.size || this._elFormItemSize || (this.$ELEMENT || {}).size;\n },\n buttonDisabled: function buttonDisabled() {\n return this.disabled || (this.elForm || {}).disabled;\n }\n },\n\n methods: {\n handleClick: function handleClick(evt) {\n this.$emit('click', evt);\n }\n }\n});\n// CONCATENATED MODULE: ./packages/button/src/button.vue?vue&type=script&lang=js&\n /* harmony default export */ var src_buttonvue_type_script_lang_js_ = (buttonvue_type_script_lang_js_); \n// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js\nvar componentNormalizer = __webpack_require__(0);\n\n// CONCATENATED MODULE: ./packages/button/src/button.vue\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(componentNormalizer[\"a\" /* default */])(\n src_buttonvue_type_script_lang_js_,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"packages/button/src/button.vue\"\n/* harmony default export */ var src_button = (component.exports);\n// CONCATENATED MODULE: ./packages/button/index.js\n\n\n/* istanbul ignore next */\nsrc_button.install = function (Vue) {\n Vue.component(src_button.name, src_button);\n};\n\n/* harmony default export */ var packages_button = __webpack_exports__[\"default\"] = (src_button);\n\n/***/ })\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","'use strict';\n\nexports.__esModule = true;\nexports.default = {\n el: {\n colorpicker: {\n confirm: '确定',\n clear: '清空'\n },\n datepicker: {\n now: '此刻',\n today: '今天',\n cancel: '取消',\n clear: '清空',\n confirm: '确定',\n selectDate: '选择日期',\n selectTime: '选择时间',\n startDate: '开始日期',\n startTime: '开始时间',\n endDate: '结束日期',\n endTime: '结束时间',\n prevYear: '前一年',\n nextYear: '后一年',\n prevMonth: '上个月',\n nextMonth: '下个月',\n year: '年',\n month1: '1 月',\n month2: '2 月',\n month3: '3 月',\n month4: '4 月',\n month5: '5 月',\n month6: '6 月',\n month7: '7 月',\n month8: '8 月',\n month9: '9 月',\n month10: '10 月',\n month11: '11 月',\n month12: '12 月',\n // week: '周次',\n weeks: {\n sun: '日',\n mon: '一',\n tue: '二',\n wed: '三',\n thu: '四',\n fri: '五',\n sat: '六'\n },\n months: {\n jan: '一月',\n feb: '二月',\n mar: '三月',\n apr: '四月',\n may: '五月',\n jun: '六月',\n jul: '七月',\n aug: '八月',\n sep: '九月',\n oct: '十月',\n nov: '十一月',\n dec: '十二月'\n }\n },\n select: {\n loading: '加载中',\n noMatch: '无匹配数据',\n noData: '无数据',\n placeholder: '请选择'\n },\n cascader: {\n noMatch: '无匹配数据',\n loading: '加载中',\n placeholder: '请选择',\n noData: '暂无数据'\n },\n pagination: {\n goto: '前往',\n pagesize: '条/页',\n total: '共 {total} 条',\n pageClassifier: '页'\n },\n messagebox: {\n title: '提示',\n confirm: '确定',\n cancel: '取消',\n error: '输入的数据不合法!'\n },\n upload: {\n deleteTip: '按 delete 键可删除',\n delete: '删除',\n preview: '查看图片',\n continue: '继续上传'\n },\n table: {\n emptyText: '暂无数据',\n confirmFilter: '筛选',\n resetFilter: '重置',\n clearFilter: '全部',\n sumText: '合计'\n },\n tree: {\n emptyText: '暂无数据'\n },\n transfer: {\n noMatch: '无匹配数据',\n noData: '无数据',\n titles: ['列表 1', '列表 2'],\n filterPlaceholder: '请输入搜索内容',\n noCheckedFormat: '共 {total} 项',\n hasCheckedFormat: '已选 {checked}/{total} 项'\n },\n image: {\n error: '加载失败'\n },\n pageHeader: {\n title: '返回'\n },\n popconfirm: {\n confirmButtonText: '确定',\n cancelButtonText: '取消'\n }\n }\n};","module.exports =\n/******/ (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 = \"/dist/\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 76);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return normalizeComponent; });\n/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nfunction normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functioal component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n\n\n/***/ }),\n\n/***/ 11:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/mixins/migrating\");\n\n/***/ }),\n\n/***/ 21:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/shared\");\n\n/***/ }),\n\n/***/ 4:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/mixins/emitter\");\n\n/***/ }),\n\n/***/ 76:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n\n// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/input/src/input.vue?vue&type=template&id=343dd774&\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n {\n class: [\n _vm.type === \"textarea\" ? \"el-textarea\" : \"el-input\",\n _vm.inputSize ? \"el-input--\" + _vm.inputSize : \"\",\n {\n \"is-disabled\": _vm.inputDisabled,\n \"is-exceed\": _vm.inputExceed,\n \"el-input-group\": _vm.$slots.prepend || _vm.$slots.append,\n \"el-input-group--append\": _vm.$slots.append,\n \"el-input-group--prepend\": _vm.$slots.prepend,\n \"el-input--prefix\": _vm.$slots.prefix || _vm.prefixIcon,\n \"el-input--suffix\":\n _vm.$slots.suffix ||\n _vm.suffixIcon ||\n _vm.clearable ||\n _vm.showPassword\n }\n ],\n on: {\n mouseenter: function($event) {\n _vm.hovering = true\n },\n mouseleave: function($event) {\n _vm.hovering = false\n }\n }\n },\n [\n _vm.type !== \"textarea\"\n ? [\n _vm.$slots.prepend\n ? _c(\n \"div\",\n { staticClass: \"el-input-group__prepend\" },\n [_vm._t(\"prepend\")],\n 2\n )\n : _vm._e(),\n _vm.type !== \"textarea\"\n ? _c(\n \"input\",\n _vm._b(\n {\n ref: \"input\",\n staticClass: \"el-input__inner\",\n attrs: {\n tabindex: _vm.tabindex,\n type: _vm.showPassword\n ? _vm.passwordVisible\n ? \"text\"\n : \"password\"\n : _vm.type,\n disabled: _vm.inputDisabled,\n readonly: _vm.readonly,\n autocomplete: _vm.autoComplete || _vm.autocomplete,\n \"aria-label\": _vm.label\n },\n on: {\n compositionstart: _vm.handleCompositionStart,\n compositionupdate: _vm.handleCompositionUpdate,\n compositionend: _vm.handleCompositionEnd,\n input: _vm.handleInput,\n focus: _vm.handleFocus,\n blur: _vm.handleBlur,\n change: _vm.handleChange\n }\n },\n \"input\",\n _vm.$attrs,\n false\n )\n )\n : _vm._e(),\n _vm.$slots.prefix || _vm.prefixIcon\n ? _c(\n \"span\",\n { staticClass: \"el-input__prefix\" },\n [\n _vm._t(\"prefix\"),\n _vm.prefixIcon\n ? _c(\"i\", {\n staticClass: \"el-input__icon\",\n class: _vm.prefixIcon\n })\n : _vm._e()\n ],\n 2\n )\n : _vm._e(),\n _vm.getSuffixVisible()\n ? _c(\"span\", { staticClass: \"el-input__suffix\" }, [\n _c(\n \"span\",\n { staticClass: \"el-input__suffix-inner\" },\n [\n !_vm.showClear ||\n !_vm.showPwdVisible ||\n !_vm.isWordLimitVisible\n ? [\n _vm._t(\"suffix\"),\n _vm.suffixIcon\n ? _c(\"i\", {\n staticClass: \"el-input__icon\",\n class: _vm.suffixIcon\n })\n : _vm._e()\n ]\n : _vm._e(),\n _vm.showClear\n ? _c(\"i\", {\n staticClass:\n \"el-input__icon el-icon-circle-close el-input__clear\",\n on: {\n mousedown: function($event) {\n $event.preventDefault()\n },\n click: _vm.clear\n }\n })\n : _vm._e(),\n _vm.showPwdVisible\n ? _c(\"i\", {\n staticClass:\n \"el-input__icon el-icon-view el-input__clear\",\n on: { click: _vm.handlePasswordVisible }\n })\n : _vm._e(),\n _vm.isWordLimitVisible\n ? _c(\"span\", { staticClass: \"el-input__count\" }, [\n _c(\n \"span\",\n { staticClass: \"el-input__count-inner\" },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.textLength) +\n \"/\" +\n _vm._s(_vm.upperLimit) +\n \"\\n \"\n )\n ]\n )\n ])\n : _vm._e()\n ],\n 2\n ),\n _vm.validateState\n ? _c(\"i\", {\n staticClass: \"el-input__icon\",\n class: [\"el-input__validateIcon\", _vm.validateIcon]\n })\n : _vm._e()\n ])\n : _vm._e(),\n _vm.$slots.append\n ? _c(\n \"div\",\n { staticClass: \"el-input-group__append\" },\n [_vm._t(\"append\")],\n 2\n )\n : _vm._e()\n ]\n : _c(\n \"textarea\",\n _vm._b(\n {\n ref: \"textarea\",\n staticClass: \"el-textarea__inner\",\n style: _vm.textareaStyle,\n attrs: {\n tabindex: _vm.tabindex,\n disabled: _vm.inputDisabled,\n readonly: _vm.readonly,\n autocomplete: _vm.autoComplete || _vm.autocomplete,\n \"aria-label\": _vm.label\n },\n on: {\n compositionstart: _vm.handleCompositionStart,\n compositionupdate: _vm.handleCompositionUpdate,\n compositionend: _vm.handleCompositionEnd,\n input: _vm.handleInput,\n focus: _vm.handleFocus,\n blur: _vm.handleBlur,\n change: _vm.handleChange\n }\n },\n \"textarea\",\n _vm.$attrs,\n false\n )\n ),\n _vm.isWordLimitVisible && _vm.type === \"textarea\"\n ? _c(\"span\", { staticClass: \"el-input__count\" }, [\n _vm._v(_vm._s(_vm.textLength) + \"/\" + _vm._s(_vm.upperLimit))\n ])\n : _vm._e()\n ],\n 2\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n// CONCATENATED MODULE: ./packages/input/src/input.vue?vue&type=template&id=343dd774&\n\n// EXTERNAL MODULE: external \"element-ui/lib/mixins/emitter\"\nvar emitter_ = __webpack_require__(4);\nvar emitter_default = /*#__PURE__*/__webpack_require__.n(emitter_);\n\n// EXTERNAL MODULE: external \"element-ui/lib/mixins/migrating\"\nvar migrating_ = __webpack_require__(11);\nvar migrating_default = /*#__PURE__*/__webpack_require__.n(migrating_);\n\n// CONCATENATED MODULE: ./packages/input/src/calcTextareaHeight.js\nvar hiddenTextarea = void 0;\n\nvar HIDDEN_STYLE = '\\n height:0 !important;\\n visibility:hidden !important;\\n overflow:hidden !important;\\n position:absolute !important;\\n z-index:-1000 !important;\\n top:0 !important;\\n right:0 !important\\n';\n\nvar CONTEXT_STYLE = ['letter-spacing', 'line-height', 'padding-top', 'padding-bottom', 'font-family', 'font-weight', 'font-size', 'text-rendering', 'text-transform', 'width', 'text-indent', 'padding-left', 'padding-right', 'border-width', 'box-sizing'];\n\nfunction calculateNodeStyling(targetElement) {\n var style = window.getComputedStyle(targetElement);\n\n var boxSizing = style.getPropertyValue('box-sizing');\n\n var paddingSize = parseFloat(style.getPropertyValue('padding-bottom')) + parseFloat(style.getPropertyValue('padding-top'));\n\n var borderSize = parseFloat(style.getPropertyValue('border-bottom-width')) + parseFloat(style.getPropertyValue('border-top-width'));\n\n var contextStyle = CONTEXT_STYLE.map(function (name) {\n return name + ':' + style.getPropertyValue(name);\n }).join(';');\n\n return { contextStyle: contextStyle, paddingSize: paddingSize, borderSize: borderSize, boxSizing: boxSizing };\n}\n\nfunction calcTextareaHeight(targetElement) {\n var minRows = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var maxRows = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n if (!hiddenTextarea) {\n hiddenTextarea = document.createElement('textarea');\n document.body.appendChild(hiddenTextarea);\n }\n\n var _calculateNodeStyling = calculateNodeStyling(targetElement),\n paddingSize = _calculateNodeStyling.paddingSize,\n borderSize = _calculateNodeStyling.borderSize,\n boxSizing = _calculateNodeStyling.boxSizing,\n contextStyle = _calculateNodeStyling.contextStyle;\n\n hiddenTextarea.setAttribute('style', contextStyle + ';' + HIDDEN_STYLE);\n hiddenTextarea.value = targetElement.value || targetElement.placeholder || '';\n\n var height = hiddenTextarea.scrollHeight;\n var result = {};\n\n if (boxSizing === 'border-box') {\n height = height + borderSize;\n } else if (boxSizing === 'content-box') {\n height = height - paddingSize;\n }\n\n hiddenTextarea.value = '';\n var singleRowHeight = hiddenTextarea.scrollHeight - paddingSize;\n\n if (minRows !== null) {\n var minHeight = singleRowHeight * minRows;\n if (boxSizing === 'border-box') {\n minHeight = minHeight + paddingSize + borderSize;\n }\n height = Math.max(minHeight, height);\n result.minHeight = minHeight + 'px';\n }\n if (maxRows !== null) {\n var maxHeight = singleRowHeight * maxRows;\n if (boxSizing === 'border-box') {\n maxHeight = maxHeight + paddingSize + borderSize;\n }\n height = Math.min(maxHeight, height);\n }\n result.height = height + 'px';\n hiddenTextarea.parentNode && hiddenTextarea.parentNode.removeChild(hiddenTextarea);\n hiddenTextarea = null;\n return result;\n};\n// EXTERNAL MODULE: external \"element-ui/lib/utils/merge\"\nvar merge_ = __webpack_require__(9);\nvar merge_default = /*#__PURE__*/__webpack_require__.n(merge_);\n\n// EXTERNAL MODULE: external \"element-ui/lib/utils/shared\"\nvar shared_ = __webpack_require__(21);\n\n// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/input/src/input.vue?vue&type=script&lang=js&\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n\n\n/* harmony default export */ var inputvue_type_script_lang_js_ = ({\n name: 'ElInput',\n\n componentName: 'ElInput',\n\n mixins: [emitter_default.a, migrating_default.a],\n\n inheritAttrs: false,\n\n inject: {\n elForm: {\n default: ''\n },\n elFormItem: {\n default: ''\n }\n },\n\n data: function data() {\n return {\n textareaCalcStyle: {},\n hovering: false,\n focused: false,\n isComposing: false,\n passwordVisible: false\n };\n },\n\n\n props: {\n value: [String, Number],\n size: String,\n resize: String,\n form: String,\n disabled: Boolean,\n readonly: Boolean,\n type: {\n type: String,\n default: 'text'\n },\n autosize: {\n type: [Boolean, Object],\n default: false\n },\n autocomplete: {\n type: String,\n default: 'off'\n },\n /** @Deprecated in next major version */\n autoComplete: {\n type: String,\n validator: function validator(val) {\n false && false;\n return true;\n }\n },\n validateEvent: {\n type: Boolean,\n default: true\n },\n suffixIcon: String,\n prefixIcon: String,\n label: String,\n clearable: {\n type: Boolean,\n default: false\n },\n showPassword: {\n type: Boolean,\n default: false\n },\n showWordLimit: {\n type: Boolean,\n default: false\n },\n tabindex: String\n },\n\n computed: {\n _elFormItemSize: function _elFormItemSize() {\n return (this.elFormItem || {}).elFormItemSize;\n },\n validateState: function validateState() {\n return this.elFormItem ? this.elFormItem.validateState : '';\n },\n needStatusIcon: function needStatusIcon() {\n return this.elForm ? this.elForm.statusIcon : false;\n },\n validateIcon: function validateIcon() {\n return {\n validating: 'el-icon-loading',\n success: 'el-icon-circle-check',\n error: 'el-icon-circle-close'\n }[this.validateState];\n },\n textareaStyle: function textareaStyle() {\n return merge_default()({}, this.textareaCalcStyle, { resize: this.resize });\n },\n inputSize: function inputSize() {\n return this.size || this._elFormItemSize || (this.$ELEMENT || {}).size;\n },\n inputDisabled: function inputDisabled() {\n return this.disabled || (this.elForm || {}).disabled;\n },\n nativeInputValue: function nativeInputValue() {\n return this.value === null || this.value === undefined ? '' : String(this.value);\n },\n showClear: function showClear() {\n return this.clearable && !this.inputDisabled && !this.readonly && this.nativeInputValue && (this.focused || this.hovering);\n },\n showPwdVisible: function showPwdVisible() {\n return this.showPassword && !this.inputDisabled && !this.readonly && (!!this.nativeInputValue || this.focused);\n },\n isWordLimitVisible: function isWordLimitVisible() {\n return this.showWordLimit && this.$attrs.maxlength && (this.type === 'text' || this.type === 'textarea') && !this.inputDisabled && !this.readonly && !this.showPassword;\n },\n upperLimit: function upperLimit() {\n return this.$attrs.maxlength;\n },\n textLength: function textLength() {\n if (typeof this.value === 'number') {\n return String(this.value).length;\n }\n\n return (this.value || '').length;\n },\n inputExceed: function inputExceed() {\n // show exceed style if length of initial value greater then maxlength\n return this.isWordLimitVisible && this.textLength > this.upperLimit;\n }\n },\n\n watch: {\n value: function value(val) {\n this.$nextTick(this.resizeTextarea);\n if (this.validateEvent) {\n this.dispatch('ElFormItem', 'el.form.change', [val]);\n }\n },\n\n // native input value is set explicitly\n // do not use v-model / :value in template\n // see: https://github.com/ElemeFE/element/issues/14521\n nativeInputValue: function nativeInputValue() {\n this.setNativeInputValue();\n },\n\n // when change between <input> and <textarea>,\n // update DOM dependent value and styles\n // https://github.com/ElemeFE/element/issues/14857\n type: function type() {\n var _this = this;\n\n this.$nextTick(function () {\n _this.setNativeInputValue();\n _this.resizeTextarea();\n _this.updateIconOffset();\n });\n }\n },\n\n methods: {\n focus: function focus() {\n this.getInput().focus();\n },\n blur: function blur() {\n this.getInput().blur();\n },\n getMigratingConfig: function getMigratingConfig() {\n return {\n props: {\n 'icon': 'icon is removed, use suffix-icon / prefix-icon instead.',\n 'on-icon-click': 'on-icon-click is removed.'\n },\n events: {\n 'click': 'click is removed.'\n }\n };\n },\n handleBlur: function handleBlur(event) {\n this.focused = false;\n this.$emit('blur', event);\n if (this.validateEvent) {\n this.dispatch('ElFormItem', 'el.form.blur', [this.value]);\n }\n },\n select: function select() {\n this.getInput().select();\n },\n resizeTextarea: function resizeTextarea() {\n if (this.$isServer) return;\n var autosize = this.autosize,\n type = this.type;\n\n if (type !== 'textarea') return;\n if (!autosize) {\n this.textareaCalcStyle = {\n minHeight: calcTextareaHeight(this.$refs.textarea).minHeight\n };\n return;\n }\n var minRows = autosize.minRows;\n var maxRows = autosize.maxRows;\n\n this.textareaCalcStyle = calcTextareaHeight(this.$refs.textarea, minRows, maxRows);\n },\n setNativeInputValue: function setNativeInputValue() {\n var input = this.getInput();\n if (!input) return;\n if (input.value === this.nativeInputValue) return;\n input.value = this.nativeInputValue;\n },\n handleFocus: function handleFocus(event) {\n this.focused = true;\n this.$emit('focus', event);\n },\n handleCompositionStart: function handleCompositionStart() {\n this.isComposing = true;\n },\n handleCompositionUpdate: function handleCompositionUpdate(event) {\n var text = event.target.value;\n var lastCharacter = text[text.length - 1] || '';\n this.isComposing = !Object(shared_[\"isKorean\"])(lastCharacter);\n },\n handleCompositionEnd: function handleCompositionEnd(event) {\n if (this.isComposing) {\n this.isComposing = false;\n this.handleInput(event);\n }\n },\n handleInput: function handleInput(event) {\n // should not emit input during composition\n // see: https://github.com/ElemeFE/element/issues/10516\n if (this.isComposing) return;\n\n // hack for https://github.com/ElemeFE/element/issues/8548\n // should remove the following line when we don't support IE\n if (event.target.value === this.nativeInputValue) return;\n\n this.$emit('input', event.target.value);\n\n // ensure native input value is controlled\n // see: https://github.com/ElemeFE/element/issues/12850\n this.$nextTick(this.setNativeInputValue);\n },\n handleChange: function handleChange(event) {\n this.$emit('change', event.target.value);\n },\n calcIconOffset: function calcIconOffset(place) {\n var elList = [].slice.call(this.$el.querySelectorAll('.el-input__' + place) || []);\n if (!elList.length) return;\n var el = null;\n for (var i = 0; i < elList.length; i++) {\n if (elList[i].parentNode === this.$el) {\n el = elList[i];\n break;\n }\n }\n if (!el) return;\n var pendantMap = {\n suffix: 'append',\n prefix: 'prepend'\n };\n\n var pendant = pendantMap[place];\n if (this.$slots[pendant]) {\n el.style.transform = 'translateX(' + (place === 'suffix' ? '-' : '') + this.$el.querySelector('.el-input-group__' + pendant).offsetWidth + 'px)';\n } else {\n el.removeAttribute('style');\n }\n },\n updateIconOffset: function updateIconOffset() {\n this.calcIconOffset('prefix');\n this.calcIconOffset('suffix');\n },\n clear: function clear() {\n this.$emit('input', '');\n this.$emit('change', '');\n this.$emit('clear');\n },\n handlePasswordVisible: function handlePasswordVisible() {\n this.passwordVisible = !this.passwordVisible;\n this.focus();\n },\n getInput: function getInput() {\n return this.$refs.input || this.$refs.textarea;\n },\n getSuffixVisible: function getSuffixVisible() {\n return this.$slots.suffix || this.suffixIcon || this.showClear || this.showPassword || this.isWordLimitVisible || this.validateState && this.needStatusIcon;\n }\n },\n\n created: function created() {\n this.$on('inputSelect', this.select);\n },\n mounted: function mounted() {\n this.setNativeInputValue();\n this.resizeTextarea();\n this.updateIconOffset();\n },\n updated: function updated() {\n this.$nextTick(this.updateIconOffset);\n }\n});\n// CONCATENATED MODULE: ./packages/input/src/input.vue?vue&type=script&lang=js&\n /* harmony default export */ var src_inputvue_type_script_lang_js_ = (inputvue_type_script_lang_js_); \n// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js\nvar componentNormalizer = __webpack_require__(0);\n\n// CONCATENATED MODULE: ./packages/input/src/input.vue\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(componentNormalizer[\"a\" /* default */])(\n src_inputvue_type_script_lang_js_,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"packages/input/src/input.vue\"\n/* harmony default export */ var input = (component.exports);\n// CONCATENATED MODULE: ./packages/input/index.js\n\n\n/* istanbul ignore next */\ninput.install = function (Vue) {\n Vue.component(input.name, input);\n};\n\n/* harmony default export */ var packages_input = __webpack_exports__[\"default\"] = (input);\n\n/***/ }),\n\n/***/ 9:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/merge\");\n\n/***/ })\n\n/******/ });","module.exports =\n/******/ (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 = \"/dist/\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 75);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return normalizeComponent; });\n/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nfunction normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functioal component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n\n\n/***/ }),\n\n/***/ 15:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/popup\");\n\n/***/ }),\n\n/***/ 23:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/vdom\");\n\n/***/ }),\n\n/***/ 7:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"vue\");\n\n/***/ }),\n\n/***/ 75:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n\n// EXTERNAL MODULE: external \"vue\"\nvar external_vue_ = __webpack_require__(7);\nvar external_vue_default = /*#__PURE__*/__webpack_require__.n(external_vue_);\n\n// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/message/src/main.vue?vue&type=template&id=455b9f60&\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"transition\",\n {\n attrs: { name: \"el-message-fade\" },\n on: { \"after-leave\": _vm.handleAfterLeave }\n },\n [\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.visible,\n expression: \"visible\"\n }\n ],\n class: [\n \"el-message\",\n _vm.type && !_vm.iconClass ? \"el-message--\" + _vm.type : \"\",\n _vm.center ? \"is-center\" : \"\",\n _vm.showClose ? \"is-closable\" : \"\",\n _vm.customClass\n ],\n style: _vm.positionStyle,\n attrs: { role: \"alert\" },\n on: { mouseenter: _vm.clearTimer, mouseleave: _vm.startTimer }\n },\n [\n _vm.iconClass\n ? _c(\"i\", { class: _vm.iconClass })\n : _c(\"i\", { class: _vm.typeClass }),\n _vm._t(\"default\", [\n !_vm.dangerouslyUseHTMLString\n ? _c(\"p\", { staticClass: \"el-message__content\" }, [\n _vm._v(_vm._s(_vm.message))\n ])\n : _c(\"p\", {\n staticClass: \"el-message__content\",\n domProps: { innerHTML: _vm._s(_vm.message) }\n })\n ]),\n _vm.showClose\n ? _c(\"i\", {\n staticClass: \"el-message__closeBtn el-icon-close\",\n on: { click: _vm.close }\n })\n : _vm._e()\n ],\n 2\n )\n ]\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n// CONCATENATED MODULE: ./packages/message/src/main.vue?vue&type=template&id=455b9f60&\n\n// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/message/src/main.vue?vue&type=script&lang=js&\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nvar typeMap = {\n success: 'success',\n info: 'info',\n warning: 'warning',\n error: 'error'\n};\n\n/* harmony default export */ var mainvue_type_script_lang_js_ = ({\n data: function data() {\n return {\n visible: false,\n message: '',\n duration: 3000,\n type: 'info',\n iconClass: '',\n customClass: '',\n onClose: null,\n showClose: false,\n closed: false,\n verticalOffset: 20,\n timer: null,\n dangerouslyUseHTMLString: false,\n center: false\n };\n },\n\n\n computed: {\n typeClass: function typeClass() {\n return this.type && !this.iconClass ? 'el-message__icon el-icon-' + typeMap[this.type] : '';\n },\n positionStyle: function positionStyle() {\n return {\n 'top': this.verticalOffset + 'px'\n };\n }\n },\n\n watch: {\n closed: function closed(newVal) {\n if (newVal) {\n this.visible = false;\n }\n }\n },\n\n methods: {\n handleAfterLeave: function handleAfterLeave() {\n this.$destroy(true);\n this.$el.parentNode.removeChild(this.$el);\n },\n close: function close() {\n this.closed = true;\n if (typeof this.onClose === 'function') {\n this.onClose(this);\n }\n },\n clearTimer: function clearTimer() {\n clearTimeout(this.timer);\n },\n startTimer: function startTimer() {\n var _this = this;\n\n if (this.duration > 0) {\n this.timer = setTimeout(function () {\n if (!_this.closed) {\n _this.close();\n }\n }, this.duration);\n }\n },\n keydown: function keydown(e) {\n if (e.keyCode === 27) {\n // esc关闭消息\n if (!this.closed) {\n this.close();\n }\n }\n }\n },\n mounted: function mounted() {\n this.startTimer();\n document.addEventListener('keydown', this.keydown);\n },\n beforeDestroy: function beforeDestroy() {\n document.removeEventListener('keydown', this.keydown);\n }\n});\n// CONCATENATED MODULE: ./packages/message/src/main.vue?vue&type=script&lang=js&\n /* harmony default export */ var src_mainvue_type_script_lang_js_ = (mainvue_type_script_lang_js_); \n// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js\nvar componentNormalizer = __webpack_require__(0);\n\n// CONCATENATED MODULE: ./packages/message/src/main.vue\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(componentNormalizer[\"a\" /* default */])(\n src_mainvue_type_script_lang_js_,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"packages/message/src/main.vue\"\n/* harmony default export */ var main = (component.exports);\n// EXTERNAL MODULE: external \"element-ui/lib/utils/popup\"\nvar popup_ = __webpack_require__(15);\n\n// EXTERNAL MODULE: external \"element-ui/lib/utils/vdom\"\nvar vdom_ = __webpack_require__(23);\n\n// CONCATENATED MODULE: ./packages/message/src/main.js\n\n\n\n\nvar MessageConstructor = external_vue_default.a.extend(main);\n\nvar instance = void 0;\nvar instances = [];\nvar seed = 1;\n\nvar main_Message = function Message(options) {\n if (external_vue_default.a.prototype.$isServer) return;\n options = options || {};\n if (typeof options === 'string') {\n options = {\n message: options\n };\n }\n var userOnClose = options.onClose;\n var id = 'message_' + seed++;\n\n options.onClose = function () {\n Message.close(id, userOnClose);\n };\n instance = new MessageConstructor({\n data: options\n });\n instance.id = id;\n if (Object(vdom_[\"isVNode\"])(instance.message)) {\n instance.$slots.default = [instance.message];\n instance.message = null;\n }\n instance.$mount();\n document.body.appendChild(instance.$el);\n var verticalOffset = options.offset || 20;\n instances.forEach(function (item) {\n verticalOffset += item.$el.offsetHeight + 16;\n });\n instance.verticalOffset = verticalOffset;\n instance.visible = true;\n instance.$el.style.zIndex = popup_[\"PopupManager\"].nextZIndex();\n instances.push(instance);\n return instance;\n};\n\n['success', 'warning', 'info', 'error'].forEach(function (type) {\n main_Message[type] = function (options) {\n if (typeof options === 'string') {\n options = {\n message: options\n };\n }\n options.type = type;\n return main_Message(options);\n };\n});\n\nmain_Message.close = function (id, userOnClose) {\n var len = instances.length;\n var index = -1;\n var removedHeight = void 0;\n for (var i = 0; i < len; i++) {\n if (id === instances[i].id) {\n removedHeight = instances[i].$el.offsetHeight;\n index = i;\n if (typeof userOnClose === 'function') {\n userOnClose(instances[i]);\n }\n instances.splice(i, 1);\n break;\n }\n }\n if (len <= 1 || index === -1 || index > instances.length - 1) return;\n for (var _i = index; _i < len - 1; _i++) {\n var dom = instances[_i].$el;\n dom.style['top'] = parseInt(dom.style['top'], 10) - removedHeight - 16 + 'px';\n }\n};\n\nmain_Message.closeAll = function () {\n for (var i = instances.length - 1; i >= 0; i--) {\n instances[i].close();\n }\n};\n\n/* harmony default export */ var src_main = (main_Message);\n// CONCATENATED MODULE: ./packages/message/index.js\n\n/* harmony default export */ var message = __webpack_exports__[\"default\"] = (src_main);\n\n/***/ })\n\n/******/ });","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\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","exports.f = require('./_wks');\n","exports.f = Object.getOwnPropertySymbols;\n"],"sourceRoot":""}
|