Your IP : 18.216.141.121


Current Path : /var/www/www-root/data/www/info.monolith-realty.ru/bitrix/js/ui/vue/vue2/dev/dist/
Upload File :
Current File : /var/www/www-root/data/www/info.monolith-realty.ru/bitrix/js/ui/vue/vue2/dev/dist/vue.bundle.js.map

{"version":3,"sources":["../src/wrap/start.js","../src/bitrixvue.js","../src/vue-dev.js","../src/wrap/end.js"],"names":["BitrixVue","VueVendor","_appCounter","_components","_mutations","_clones","_instance","use","event","events","restClientChange","pullClientChange","settings","Extension","getSettings","localizationMode","get","params","showNotice","createApp","bitrixVue","$Bitrix","Loc","messages","getMessage","messageId","replacements","debugMessageId","Type","isPlainObject","replaceKeys","Object","keys","length","join","message","isUndefined","isString","forEach","replacement","globalRegexp","RegExp","replace","isNil","String","hasMessage","getMessages","BX","setMessage","id","value","isObject","code","hasOwnProperty","Application","instance","set","Data","data","name","defaultValue","eventEmitter","EventEmitter","setEventNamespace","window","Event","prototype","RestClient","rest","emit","isCustom","PullClient","pull","mixins","unshift","beforeCreate","$bitrix","mount","rootContainer","$mount","options","assign","bitrixOptions","immutable","local","_registerCloneComponent","componentParams","_getFinalComponentParams","isLocal","component","definition","isComponent","mutations","mutable","isMutable","push","filter","element","sourceId","getLocalComponent","mutateComponent","source","_applyMutation","_cloneObjectWithoutDuplicateFunction","undefined","extend","callback","context","nextTick","target","key","directive","plugin","mixin","object","observable","template","compile","version","obj","i","j","len","tagName","toUpperCase","test","classList","contains","trim","className","getAttribute","toString","call","phrasePrefix","phrases","result","Array","isArray","find","startsWith","freeze","componentId","mutation","_getComponentParamsWithMutation","components","cloneId","concat","objectParams","level","previousParamName","param","isObjectLike","isNull","isFunction","substr","clonedObject","newObject","paramName","includes","originNewFunctionName","objectName","parentObjectName","mutationName","app","$root","computed","mounted","$bitrixApplication","$bitrixController","$bitrixMessages","$bitrixRestClient","$bitrixPullClient","text","developerMode","console","warn","emptyObject","isUndef","v","isDef","isTrue","isFalse","isPrimitive","_toString","toRawType","slice","isRegExp","isValidArrayIndex","val","n","parseFloat","Math","floor","isFinite","isPromise","then","JSON","stringify","toNumber","isNaN","makeMap","str","expectsLowerCase","map","create","list","split","toLowerCase","isBuiltInTag","isReservedAttribute","remove","arr","item","index","indexOf","splice","hasOwn","cached","fn","cache","cachedFn","hit","camelizeRE","camelize","_","c","capitalize","charAt","hyphenateRE","hyphenate","polyfillBind","ctx","boundFn","a","l","arguments","apply","_length","nativeBind","bind","Function","toArray","start","ret","to","_from","toObject","res","noop","b","no","identity","genStaticKeys","modules","reduce","m","staticKeys","looseEqual","isObjectA","isObjectB","isArrayA","isArrayB","every","e","Date","getTime","keysA","keysB","looseIndexOf","once","called","SSR_ATTR","ASSET_TYPES","LIFECYCLE_HOOKS","config","optionMergeStrategies","silent","productionTip","devtools","performance","errorHandler","warnHandler","ignoredElements","keyCodes","isReservedTag","isReservedAttr","isUnknownElement","getTagNamespace","parsePlatformTagName","mustUseProp","async","_lifecycleHooks","unicodeRegExp","isReserved","charCodeAt","def","enumerable","defineProperty","writable","configurable","bailRE","parsePath","path","segments","hasProto","inBrowser","inWeex","WXEnvironment","platform","weexPlatform","UA","navigator","userAgent","isIE","isIE9","isEdge","isAndroid","isIOS","isChrome","isPhantomJS","isFF","match","nativeWatch","watch","supportsPassive","opts","addEventListener","_isServer","isServerRendering","global","env","VUE_ENV","__VUE_DEVTOOLS_GLOBAL_HOOK__","isNative","Ctor","hasSymbol","Symbol","Reflect","ownKeys","_Set","Set","tip","generateComponentTrace","formatComponentName","hasConsole","classifyRE","classify","msg","vm","trace","error","includeFile","cid","_isVue","$options","constructor","_componentTag","file","__file","repeat","$parent","tree","currentRecursiveSequence","last","uid","Dep","subs","sub","addDep","sort","update","targetStack","pushTarget","popTarget","pop","VNode","tag","children","elm","componentOptions","asyncFactory","ns","fnContext","fnOptions","fnScopeId","componentInstance","parent","raw","isStatic","isRootInsert","isComment","isCloned","isOnce","asyncMeta","isAsyncPlaceholder","createEmptyVNode","node","createTextVNode","cloneVNode","vnode","cloned","arrayProto","arrayMethods","methodsToPatch","method","original","mutator","args","ob","__ob__","inserted","observeArray","dep","notify","arrayKeys","getOwnPropertyNames","shouldObserve","toggleObserving","Observer","vmCount","protoAugment","copyAugment","walk","defineReactive$$1","items","observe","src","__proto__","asRootData","isExtensible","customSetter","shallow","property","getOwnPropertyDescriptor","getter","setter","childOb","reactiveGetter","depend","dependArray","reactiveSetter","newVal","max","del","strats","el","propsData","child","defaultStrat","mergeData","from","toVal","fromVal","mergeDataOrFn","parentVal","childVal","mergedDataFn","mergedInstanceDataFn","instanceData","defaultData","mergeHook","dedupeHooks","hooks","hook","mergeAssets","assertObjectType","type","props","methods","inject","provide","checkComponents","validateComponentName","normalizeProps","normalizeInject","normalized","normalizeDirectives","dirs","directives","def$$1","mergeOptions","_base","mergeField","strat","resolveAsset","warnMissing","assets","camelizedId","PascalCaseId","validateProp","propOptions","prop","absent","booleanIndex","getTypeIndex","Boolean","stringIndex","getPropDefaultValue","prevShouldObserve","assertProp","_props","getType","required","valid","expectedTypes","assertedType","assertType","expectedType","haveExpectedTypes","some","t","getInvalidTypeMessage","validator","simpleCheckRE","functionTypeCheckRE","isSameType","receivedType","isExplicable","isBoolean","styleValue","Number","EXPLICABLE_TYPES","elem","handleError","err","info","cur","errorCaptured","capture","globalHandleError","invokeWithErrorHandling","handler","_handled","logError","isUsingMicroTask","callbacks","pending","flushCallbacks","copies","timerFunc","Promise","p","resolve","setTimeout","MutationObserver","counter","observer","textNode","document","createTextNode","characterData","setImmediate","cb","_resolve","mark","measure","perf","clearMarks","clearMeasures","startTag","endTag","initProxy","allowedGlobals","warnNonPresent","warnReservedPrefix","hasProxy","Proxy","isBuiltInModifier","hasHandler","has","isAllowed","$data","getHandler","handlers","render","_withStripped","_renderProxy","seenObjects","traverse","_traverse","clear","seen","isA","isFrozen","depId","add","normalizeEvent","passive","once$$1","createFnInvoker","fns","invoker","updateListeners","on","oldOn","remove$$1","createOnceHandler","old","mergeVNodeHook","hookKey","oldHook","wrappedHook","merged","extractPropsFromVNodeData","attrs","altKey","keyInLowerCase","checkProp","hash","preserve","simpleNormalizeChildren","normalizeChildren","normalizeArrayChildren","isTextNode","nestedIndex","lastIndex","shift","_isVList","initProvide","_provided","initInjections","resolveInject","provideKey","provideDefault","resolveSlots","slots","slot","isWhitespace","normalizeScopedSlots","normalSlots","prevSlots","hasNormalSlots","isStable","$stable","$key","_normalized","$hasNormal","normalizeScopedSlot","proxyNormalSlot","proxy","renderList","iterator","next","done","renderSlot","fallbackRender","bindObject","scopedSlotFn","$scopedSlots","nodes","$slots","$createElement","resolveFilter","isKeyNotMatch","expect","actual","checkKeyCodes","eventKeyCode","builtInKeyCode","eventKeyName","builtInKeyName","mappedKeyCode","bindObjectProps","asProp","isSync","domProps","camelizedKey","hyphenatedKey","$event","renderStatic","isInFor","_staticTrees","staticRenderFns","markStatic","markOnce","markStaticNode","bindObjectListeners","existing","ours","resolveScopedSlots","hasDynamicKeys","contentHashKey","bindDynamicKeys","baseObj","values","prependModifier","symbol","installRenderHelpers","_o","_n","_s","_l","_t","_q","_i","_m","_f","_k","_b","_v","_e","_u","_g","_d","_p","FunctionalRenderContext","contextVm","_original","isCompiled","_compiled","needNormalization","listeners","injections","scopedSlots","_scopeId","_c","d","createElement","createFunctionalComponent","mergeProps","renderContext","cloneAndMarkFunctionalResult","vnodes","clone","devtoolsMeta","componentVNodeHooks","init","hydrating","_isDestroyed","keepAlive","mountedNode","prepatch","createComponentInstanceForVnode","activeInstance","oldVnode","updateChildComponent","insert","_isMounted","callHook","queueActivatedComponent","activateChildComponent","destroy","$destroy","deactivateChildComponent","hooksToMerge","createComponent","baseCtor","resolveAsyncComponent","createAsyncPlaceholder","resolveConstructorOptions","model","transformModel","functional","nativeOn","installComponentHooks","_isComponent","_parentVnode","inlineTemplate","toMerge","_merged","mergeHook$1","f1","f2","SIMPLE_NORMALIZE","ALWAYS_NORMALIZE","normalizationType","alwaysNormalize","_createElement","is","$vnode","pre","applyNS","registerDeepBindings","force","style","initRender","_vnode","parentVnode","_renderChildren","parentData","isUpdatingChildComponent","_parentListeners","currentRenderingInstance","renderMixin","Vue","$nextTick","_render","renderError","ensureCtor","comp","base","__esModule","toStringTag","factory","errorComp","resolved","owner","owners","loading","loadingComp","sync","timerLoading","timerTimeout","$on","forceRender","renderCompleted","$forceUpdate","clearTimeout","reject","reason","delay","timeout","getFirstComponentChild","initEvents","_events","_hasHookEvent","updateComponentListeners","remove$1","$off","_target","onceHandler","oldListeners","eventsMixin","hookRE","$once","cbs","$emit","lowerCaseEvent","setActiveInstance","prevActiveInstance","initLifecycle","$children","$refs","_watcher","_inactive","_directInactive","_isBeingDestroyed","lifecycleMixin","_update","prevEl","$el","prevVnode","restoreActiveInstance","__patch__","__vue__","teardown","_watchers","_data","mountComponent","updateComponent","_name","_uid","Watcher","before","renderChildren","newScopedSlots","oldScopedSlots","hasDynamicScopedSlot","needsForceUpdate","$attrs","$listeners","propKeys","_propKeys","isInInactiveTree","direct","MAX_UPDATE_COUNT","queue","activatedChildren","circular","waiting","flushing","resetSchedulerState","currentFlushTimestamp","getNow","now","createEvent","timeStamp","flushSchedulerQueue","watcher","run","user","expression","activatedQueue","updatedQueue","callActivatedHooks","callUpdatedHooks","queueWatcher","uid$2","expOrFn","isRenderWatcher","deep","lazy","active","dirty","deps","newDeps","depIds","newDepIds","cleanupDeps","addSub","removeSub","tmp","oldValue","sharedPropertyDefinition","sourceKey","proxyGetter","proxySetter","initState","initProps","initMethods","initData","initComputed","initWatch","propsOptions","isRoot","getData","computedWatcherOptions","watchers","_computedWatchers","isSSR","userDef","defineComputed","shouldCache","createComputedGetter","createGetterInvoker","computedGetter","evaluate","createWatcher","$watch","stateMixin","dataDef","propsDef","$set","$delete","immediate","unwatchFn","uid$3","initMixin","_init","initInternalComponent","_self","vnodeComponentOptions","superOptions","cachedSuperOptions","modifiedOptions","resolveModifiedOptions","extendOptions","modified","latest","sealed","sealedOptions","initUse","installedPlugins","_installedPlugins","install","initMixin$1","initExtend","Super","SuperId","cachedCtors","_Ctor","Sub","VueComponent","initProps$1","initComputed$1","Comp","initAssetRegisters","getComponentName","matches","pattern","pruneCache","keepAliveInstance","entry","pruneCacheEntry","current","patternTypes","KeepAlive","include","exclude","cacheVNode","vnodeToCache","keyToCache","parseInt","created","destroyed","updated","builtInComponents","initGlobalAPI","configDef","util","defineReactive","ssrContext","acceptValue","attr","isEnumeratedAttr","isValidContentEditableValue","convertEnumeratedValue","isFalsyAttrValue","isBooleanAttr","xlinkNS","isXlink","getXlinkProp","genClassForVnode","parentNode","childNode","mergeClassData","renderClass","staticClass","dynamicClass","stringifyClass","stringifyArray","stringifyObject","stringified","namespaceMap","svg","math","isHTMLTag","isSVG","isPreTag","unknownElementCache","HTMLUnknownElement","HTMLElement","isTextInputType","query","selected","querySelector","createElement$1","multiple","setAttribute","createElementNS","namespace","createComment","insertBefore","newNode","referenceNode","removeChild","appendChild","nextSibling","setTextContent","textContent","setStyleScope","scopeId","nodeOps","ref","registerRef","isRemoval","refs","refInFor","emptyNode","sameVnode","sameInputType","typeA","typeB","createKeyToOldIdx","beginIdx","endIdx","createPatchFunction","backend","emptyNodeAt","createRmCb","childElm","removeNode","isUnknownElement$$1","inVPre","ignore","creatingElmInVPre","createElm","insertedVnodeQueue","parentElm","refElm","nested","ownerArray","setScope","createChildren","invokeCreateHooks","isReactivated","initComponent","reactivateComponent","pendingInsert","isPatchable","innerNode","transition","activate","ref$$1","checkDuplicateKeys","ancestor","addVnodes","startIdx","invokeDestroyHook","removeVnodes","ch","removeAndInvokeRemoveHook","rm","updateChildren","oldCh","newCh","removeOnly","oldStartIdx","newStartIdx","oldEndIdx","oldStartVnode","oldEndVnode","newEndIdx","newStartVnode","newEndVnode","oldKeyToIdx","idxInOld","vnodeToMove","canMove","patchVnode","findIdxInOld","seenKeys","end","hydrate","postpatch","invokeInsertHook","initial","hydrationBailed","isRenderedModule","assertNodeMatch","hasChildNodes","innerHTML","childrenMatch","firstChild","childNodes","fullInvoke","nodeType","patch","isInitialPatch","isRealElement","hasAttribute","removeAttribute","oldElm","_leaveCb","patchable","updateDirectives","unbindDirectives","isCreate","isDestroy","oldDirs","normalizeDirectives$1","newDirs","dirsWithInsert","dirsWithPostpatch","oldDir","dir","callHook$1","oldArg","arg","componentUpdated","callInsert","emptyModifiers","modifiers","getRawDirName","rawName","baseModules","updateAttrs","inheritAttrs","oldAttrs","setAttr","removeAttributeNS","isInPre","baseSetAttr","setAttributeNS","__ieph","blocker","stopImmediatePropagation","removeEventListener","updateClass","oldData","cls","transitionClass","_transitionClasses","_prevClass","klass","validDivisionCharRE","parseFilters","exp","inSingle","inDouble","inTemplateString","inRegex","curly","square","paren","lastFilterIndex","prev","filters","pushFilter","wrapFilter","baseWarn","range","pluckModuleFunction","addProp","dynamic","rangeSetItem","plain","addAttr","dynamicAttrs","addRawAttr","attrsMap","attrsList","addDirective","isDynamicArg","prependModifierMarker","addHandler","important","prevent","right","middle","nativeEvents","newHandler","getRawBindingAttr","rawAttrsMap","getBindingAttr","getStatic","dynamicValue","getAndRemoveAttr","staticValue","removeFromMap","getAndRemoveAttrByRegex","genComponentModel","number","baseValueExpression","valueExpression","assignment","genAssignmentCode","parseModel","chr","index$1","expressionPos","expressionEndPos","lastIndexOf","eof","isStringStart","parseString","parseBracket","inBracket","stringQuote","warn$1","RANGE_TOKEN","CHECKBOX_RADIO_TOKEN","_warn","genSelect","genCheckboxModel","genRadioModel","genDefaultModel","valueBinding","trueValueBinding","falseValueBinding","selectedVal","typeBinding","binding","needCompositionGuard","normalizeEvents","change","target$1","createOnceHandler$1","remove$2","useMicrotaskFix","add$1","attachedTimestamp","_wrapper","currentTarget","ownerDocument","updateDOMListeners","svgContainer","updateDOMProps","oldProps","_value","strCur","shouldUpdateValue","checkVal","composing","isNotInFocusAndDirty","isDirtyWithModifiers","notInFocus","activeElement","_vModifiers","parseStyleText","cssText","listDelimiter","propertyDelimiter","normalizeStyleData","normalizeStyleBinding","staticStyle","bindingStyle","getStyle","checkChild","styleData","cssVarRE","importantRE","setProp","setProperty","normalizedName","normalize","vendorNames","emptyStyle","capName","updateStyle","oldStaticStyle","oldStyleBinding","normalizedStyle","oldStyle","newStyle","whitespaceRE","addClass","removeClass","tar","resolveTransition","css","autoCssTransition","enterClass","enterToClass","enterActiveClass","leaveClass","leaveToClass","leaveActiveClass","hasTransition","TRANSITION","ANIMATION","transitionProp","transitionEndEvent","animationProp","animationEndEvent","ontransitionend","onwebkittransitionend","onanimationend","onwebkitanimationend","raf","requestAnimationFrame","nextFrame","addTransitionClass","transitionClasses","removeTransitionClass","whenTransitionEnds","getTransitionInfo","propCount","ended","onEnd","transformRE","styles","getComputedStyle","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","delays","durations","toMs","s","enter","toggleDisplay","cancelled","_enterCb","appearClass","appearToClass","appearActiveClass","beforeEnter","afterEnter","enterCancelled","beforeAppear","appear","afterAppear","appearCancelled","duration","transitionNode","isAppear","startClass","activeClass","toClass","beforeEnterHook","enterHook","afterEnterHook","enterCancelledHook","explicitEnterDuration","checkDuration","expectsCSS","userWantsControl","getHookArgumentsLength","show","pendingNode","_pending","isValidDuration","leave","beforeLeave","afterLeave","leaveCancelled","delayLeave","explicitLeaveDuration","performLeave","invokerFns","_enter","platformModules","vmodel","trigger","_vOptions","setSelected","getValue","onCompositionStart","onCompositionEnd","prevOptions","curOptions","o","needReset","hasNoMatchingOption","actuallySetSelected","isMultiple","option","selectedIndex","initEvent","dispatchEvent","locateNode","transition$$1","originalDisplay","__vOriginalDisplay","display","unbind","platformDirectives","transitionProps","mode","getRealChild","compOptions","extractTransitionData","placeholder","h","rawChild","hasParentTransition","isSameChild","oldChild","isNotTextNode","isVShowDirective","Transition","_leaving","oldRawChild","delayedLeave","moveClass","TransitionGroup","beforeMount","kept","prevChildren","rawChildren","transitionData","removed","pos","getBoundingClientRect","hasMove","callPendingCbs","recordPosition","applyTranslation","_reflow","body","offsetHeight","moved","transform","WebkitTransform","transitionDuration","_moveCb","propertyName","_hasMove","cloneNode","newPos","oldPos","dx","left","dy","top","platformComponents","defaultTagRE","regexEscapeRE","buildRegex","delimiters","open","close","parseText","tagRE","tokens","rawTokens","tokenValue","exec","transformNode","classBinding","genData","klass$1","transformNode$1","styleBinding","genData$1","style$1","decoder","he","decode","html","isUnaryTag","canBeLeftOpenTag","isNonPhrasingTag","attribute","dynamicArgAttribute","ncname","qnameCapture","startTagOpen","startTagClose","doctype","comment","conditionalComment","isPlainTextElement","reCache","decodingMap","encodedAttr","encodedAttrWithNewLines","isIgnoreNewlineTag","shouldIgnoreFirstNewline","decodeAttr","shouldDecodeNewlines","re","parseHTML","stack","expectHTML","isUnaryTag$$1","canBeLeftOpenTag$$1","lastTag","textEnd","commentEnd","shouldKeepComment","substring","advance","conditionalEnd","doctypeMatch","endTagMatch","curIndex","parseEndTag","startTagMatch","parseStartTag","handleStartTag","chars","endTagLength","stackedTag","reStackedTag","all","unarySlash","unary","shouldDecodeNewlinesForHref","outputSourceRange","lowerCasedTag","lowerCasedTagName","onRE","dirRE","forAliasRE","forIteratorRE","stripParensRE","dynamicArgRE","argRE","bindRE","modifierRE","slotRE","lineBreakRE","whitespaceRE$1","invalidAttributeRE","decodeHTMLCached","emptySlotScopeToken","warn$2","transforms","preTransforms","postTransforms","platformIsPreTag","platformMustUseProp","platformGetTagNamespace","maybeComponent","createASTElement","makeAttrsMap","parse","preserveWhitespace","whitespaceOption","whitespace","root","currentParent","inPre","warned","warnOnce","closeElement","trimEndingWhitespace","processed","processElement","elseif","checkRootConstraints","addIfCondition","block","forbidden","processIfConditions","slotScope","slotTarget","lastNode","comments","guardIESVGBug","cumulated","isForbiddenTag","processPre","processRawAttrs","processFor","processIf","processOnce","isTextTag","processKey","processRef","processSlotContent","processSlotOutlet","processComponent","processAttrs","iterator2","iterator1","checkInFor","parseFor","inMatch","alias","iteratorMatch","findPrevElement","condition","ifConditions","slotTargetDynamic","slotBinding","getSlotName","slotContainer","slotName","syncGen","isDynamic","hasBindings","parseModifiers","camel","argMatch","checkForAliasModel","ieNSBug","ieNSPrefix","_el","preTransformNode","ifCondition","ifConditionExtra","hasElse","elseIfCondition","branch0","cloneASTElement","branch1","branch2","model$1","modules$1","directives$1","baseOptions","isStaticKey","isPlatformReservedTag","genStaticKeysCached","genStaticKeys$1","optimize","markStatic$1","markStaticRoots","staticInFor","staticRoot","isDirectChildOfTemplateFor","fnExpRE","fnInvokeRE","simplePathRE","esc","tab","space","up","down","keyNames","genGuard","modifierCode","stop","self","ctrl","alt","meta","genHandlers","prefix","staticHandlers","dynamicHandlers","handlerCode","genHandler","isMethodPath","isFunctionExpression","isFunctionInvocation","genModifierCode","keyModifier","genKeyFilter","genFilterCode","keyVal","keyCode","keyName","wrapListeners","bind$1","wrapData","baseDirectives","cloak","CodegenState","dataGenFns","onceId","generate","ast","state","genElement","staticProcessed","genStatic","onceProcessed","genOnce","forProcessed","genFor","ifProcessed","genIf","genChildren","genSlot","genComponent","genData$2","originalPreState","altGen","altEmpty","genIfConditions","conditions","genTernaryExp","altHelper","genDirectives","genProps","genScopedSlots","genInlineTemplate","hasRuntime","needRuntime","gen","inlineRenderFns","containsSlotChild","needsKey","generatedSlots","genScopedSlot","isLegacySyntax","reverseProxy","checkSkip","altGenElement","altGenNode","getNormalizationType","genNode","needsNormalization","genComment","genText","transformSpecialNewlines","bind$$1","componentName","staticProps","dynamicProps","prohibitedKeywordRE","unaryOperatorsRE","stripStringRE","detectErrors","checkNode","checkFor","checkFunctionParameterExpression","checkEvent","checkExpression","stripped","keywordMatch","checkIdentifier","ident","generateCodeFrame","lines","count","lineLength","pad","min","createFunction","errors","createCompileToFunctionFn","compileToFunctions","warn$$1","compiled","tips","fnGenErrors","createCompilerCreator","baseCompile","createCompiler","finalOptions","leadingSpaceLength","div","getShouldDecode","href","idToTemplate","documentElement","getOuterHTML","outerHTML","container","BitrixVueInstance"],"mappings":"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","file":"vue.bundle.js.map","sourcesContent":[null,"/**\n * Bitrix Vue wrapper\n *\n * @package bitrix\n * @subpackage ui\n * @copyright 2001-2022 Bitrix\n */\n\nimport {EventEmitter} from 'main.core.events';\nimport { Extension, Loc, Type } from 'main.core';\nimport {RestClient, rest} from \"rest.client\";\nimport {PullClient, PULL as pull} from \"pull.client\";\n\nexport class BitrixVue\n{\n\tstatic developerMode = false;\n\n\tconstructor(VueVendor)\n\t{\n\t\tthis._appCounter = 0;\n\t\tthis._components = {};\n\t\tthis._mutations = {};\n\t\tthis._clones = {};\n\n\t\tthis._instance = VueVendor;\n\t\tthis._instance.use(this);\n\n\t\tthis.event = new VueVendor;\n\n\t\tthis.events = {\n\t\t\trestClientChange: 'RestClient::change',\n\t\t\tpullClientChange: 'PullClient::change',\n\t\t}\n\n\t\tconst settings = Extension.getSettings('ui.vue');\n\t\tthis.localizationMode = settings.get('localizationDebug', false)? 'development': 'production';\n\t}\n\n\t/**\n\t * Create new Vue instance\n\t *\n\t * @param {Object} params - definition\n\t *\n\t * @see https://vuejs.org/v2/guide/\n\t */\n\tcreate(params)\n\t{\n\t\tBitrixVue.showNotice(\n\t\t\t'Method Vue.create is deprecated, use BitrixVue.createApp instead.\\n'\n\t\t\t+ 'If you are using \"el\" property or .$mount(...) to bind your application, use .mount(...) instead.'\n\t\t);\n\n\t\treturn this.createApp(params);\n\t}\n\n\t/**\n\t * Create new Vue instance\n\t *\n\t * @param {Object} params - definition\n\t *\n\t * @see https://v2.vuejs.org/v2/guide/\n\t */\n\tcreateApp(params)\n\t{\n\t\tconst bitrixVue = this;\n\n\t\t// 1. Init Bitrix public api\n\t\tconst $Bitrix = {};\n\n\t\t// 1.1 Localization\n\t\t$Bitrix.Loc =\n\t\t{\n\t\t\tmessages: {},\n\n\t\t\tgetMessage: function(messageId: string, replacements:? {[key: string]: string} = null): string\n\t\t\t{\n\t\t\t\tif (bitrixVue.localizationMode === 'development')\n\t\t\t\t{\n\t\t\t\t\tlet debugMessageId = [messageId];\n\t\t\t\t\tif (Type.isPlainObject(replacements))\n\t\t\t\t\t{\n\t\t\t\t\t\tconst replaceKeys = Object.keys(replacements);\n\t\t\t\t\t\tif (replaceKeys.length > 0)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tdebugMessageId = [messageId, ' (replacements: ', replaceKeys.join(', '), ')']\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn debugMessageId.join('');\n\t\t\t\t}\n\n\t\t\t\tlet message = '';\n\t\t\t\tif (!Type.isUndefined(this.messages[messageId]))\n\t\t\t\t{\n\t\t\t\t\tmessage = this.messages[messageId];\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tmessage = Loc.getMessage(messageId);\n\t\t\t\t\tthis.messages[messageId] = message;\n\t\t\t\t}\n\n\t\t\t\tif (Type.isString(message) && Type.isPlainObject(replacements))\n\t\t\t\t{\n\t\t\t\t\tObject.keys(replacements).forEach((replacement: string) => {\n\t\t\t\t\t\tconst globalRegexp = new RegExp(replacement, 'gi');\n\t\t\t\t\t\tmessage = message.replace(\n\t\t\t\t\t\t\tglobalRegexp,\n\t\t\t\t\t\t\t() => {\n\t\t\t\t\t\t\t\treturn Type.isNil(replacements[replacement]) ? '' : String(replacements[replacement]);\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\treturn message;\n\t\t\t},\n\n\t\t\thasMessage: function (messageId: string): boolean\n\t\t\t{\n\t\t\t\treturn Type.isString(messageId) && !Type.isNil(this.getMessages()[messageId]);\n\t\t\t},\n\n\t\t\tgetMessages: function (): object\n\t\t\t{\n\t\t\t\tif (typeof BX.message !== 'undefined')\n\t\t\t\t{\n\t\t\t\t\treturn {...BX.message, ...this.messages};\n\t\t\t\t}\n\n\t\t\t\treturn {...this.messages};\n\t\t\t},\n\n\t\t\tsetMessage: function(id: string | {[key: string]: string}, value?: string): void\n\t\t\t{\n\t\t\t\tif (Type.isString(id))\n\t\t\t\t{\n\t\t\t\t\tthis.messages[id] = value;\n\t\t\t\t}\n\n\t\t\t\tif (Type.isObject(id))\n\t\t\t\t{\n\t\t\t\t\tfor (const code in id)\n\t\t\t\t\t{\n\t\t\t\t\t\tif (id.hasOwnProperty(code))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tthis.messages[code] = id[code];\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// 1.2  Application Data\n\t\t$Bitrix.Application =\n\t\t{\n\t\t\tinstance: null,\n\n\t\t\tget: function(): Object\n\t\t\t{\n\t\t\t\treturn this.instance;\n\t\t\t},\n\t\t\tset: function(instance: Object): void\n\t\t\t{\n\t\t\t\tthis.instance = instance;\n\t\t\t},\n\t\t};\n\n\t\t// 1.3  Application Data\n\t\t$Bitrix.Data =\n\t\t{\n\t\t\tdata: {},\n\n\t\t\tget: function(name: string, defaultValue?:any): any\n\t\t\t{\n\t\t\t\treturn this.data[name] ?? defaultValue;\n\t\t\t},\n\t\t\tset: function(name: string, value: any): void\n\t\t\t{\n\t\t\t\tthis.data[name] = value;\n\t\t\t}\n\t\t};\n\n\t\t// 1.4  Application EventEmitter\n\t\t$Bitrix.eventEmitter = new EventEmitter();\n\t\tif (typeof $Bitrix.eventEmitter.setEventNamespace === 'function')\n\t\t{\n\t\t\tthis._appCounter++;\n\t\t\t$Bitrix.eventEmitter.setEventNamespace('vue:app:'+this._appCounter);\n\t\t}\n\t\telse // hack for old version of Bitrix SM\n\t\t{\n\t\t\twindow.BX.Event.EventEmitter.prototype.setEventNamespace = function () {}\n\t\t\t$Bitrix.eventEmitter.setEventNamespace = function () {}\n\t\t}\n\n\t\t// 1.5  Application RestClient\n\t\t$Bitrix.RestClient =\n\t\t{\n\t\t\tinstance: null,\n\n\t\t\tget: function(): RestClient\n\t\t\t{\n\t\t\t\treturn this.instance ?? rest;\n\t\t\t},\n\t\t\tset: function(instance: RestClient): void\n\t\t\t{\n\t\t\t\tthis.instance = instance;\n\t\t\t\t$Bitrix.eventEmitter.emit(bitrixVue.events.restClientChange);\n\t\t\t},\n\t\t\tisCustom()\n\t\t\t{\n\t\t\t\treturn this.instance !== null;\n\t\t\t}\n\t\t};\n\n\t\t// 1.6  Application PullClient\n\t\t$Bitrix.PullClient =\n\t\t{\n\t\t\tinstance: null,\n\n\t\t\tget: function(): PullClient\n\t\t\t{\n\t\t\t\treturn this.instance ?? pull;\n\t\t\t},\n\t\t\tset: function(instance: PullClient): void\n\t\t\t{\n\t\t\t\tthis.instance = instance;\n\t\t\t\t$Bitrix.eventEmitter.emit(bitrixVue.events.pullClientChange);\n\t\t\t},\n\t\t\tisCustom()\n\t\t\t{\n\t\t\t\treturn this.instance !== null;\n\t\t\t}\n\t\t};\n\n\t\tif (typeof (params.mixins) === 'undefined')\n\t\t{\n\t\t\tparams.mixins = [];\n\t\t}\n\n\t\tparams.mixins.unshift({\n\t\t\tbeforeCreate: function()\n\t\t\t{\n\t\t\t\tthis.$bitrix = $Bitrix;\n\t\t\t},\n\t\t})\n\n\t\tlet instance = new this._instance(params);\n\n\t\tinstance.mount = function(rootContainer: string|Element): object\n\t\t{\n\t\t\treturn this.$mount(rootContainer);\n\t\t}\n\n\t\treturn instance;\n\t}\n\n\t/**\n\t * Register Vue component\n\t *\n\t * @param {String} id\n\t * @param {Object} params\n\t * @param {Object} [options]\n\t *\n\t * @see https://v2.vuejs.org/v2/guide/components.html\n\t */\n\tcomponent(id, params, options = {})\n\t{\n\t\tif (!params.name)\n\t\t{\n\t\t\tparams.name = id;\n\t\t}\n\n\t\tthis._components[id] = Object.assign({}, params);\n\t\tthis._components[id].bitrixOptions = {\n\t\t\timmutable: options.immutable === true,\n\t\t\tlocal: options.local === true,\n\t\t};\n\n\t\tif (typeof this._clones[id] !== 'undefined')\n\t\t{\n\t\t\tthis._registerCloneComponent(id);\n\t\t}\n\n\t\tconst componentParams = this._getFinalComponentParams(id);\n\t\tif (this.isLocal(id))\n\t\t{\n\t\t\treturn componentParams;\n\t\t}\n\n\t\treturn this._instance.component(id, componentParams);\n\t}\n\n\t/**\n\t * Register Vue component (local)\n\t * @see https://v2.vuejs.org/v2/guide/components.html\n\t *\n\t * @param {string} name\n\t * @param {Object} definition\n\t * @param {Object} [options]\n\t *\n\t * @returns {Object}\n\t */\n\tlocalComponent(name, definition, options = {})\n\t{\n\t\treturn this.component(name, definition, {...options, local: true});\n\t}\n\n\t/**\n\t * Get local Vue component\n\t * @see https://v2.vuejs.org/v2/guide/components.html\n\t *\n\t * @param {string} name\n\t *\n\t * @returns {Object}\n\t */\n\tgetLocalComponent(name)\n\t{\n\t\tif (!this.isComponent(name))\n\t\t{\n\t\t\tBitrixVue.showNotice('Component \"'+name+'\" is not registered yet.');\n\t\t\treturn null;\n\t\t}\n\n\t\tif (!this.isLocal(name))\n\t\t{\n\t\t\tBitrixVue.showNotice('You cannot get the component \"'+name+'\" because it is marked as global.');\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this._getFinalComponentParams(name);\n\t}\n\n\t/**\n\t * Modify Vue component\n\t *\n\t * @param {String} id\n\t * @param {Object} mutations\n\t *\n\t * @returns {Function|boolean} - function for remove this modification\n\t */\n\tmutateComponent(id, mutations)\n\t{\n\t\tconst mutable = this.isMutable(id);\n\t\tif (mutable === false)\n\t\t{\n\t\t\tBitrixVue.showNotice('You cannot mutate the component \"'+id+'\" because it is marked as immutable, perhaps cloning the component is fine for you.');\n\t\t\treturn false;\n\t\t}\n\n\t\tif (typeof this._mutations[id] === 'undefined')\n\t\t{\n\t\t\tthis._mutations[id] = [];\n\t\t}\n\n\t\tthis._mutations[id].push(mutations);\n\n\t\tif (\n\t\t\ttypeof this._components[id] !== 'undefined'\n\t\t\t&& !this.isLocal(id)\n\t\t)\n\t\t{\n\t\t\tthis.component(id, this._components[id], this._components[id].bitrixOptions);\n\t\t}\n\n\t\treturn () => {\n\t\t\tthis._mutations[id] = this._mutations[id].filter((element) => element !== mutations);\n\t\t};\n\t}\n\n\t/**\n\t * Clone Vue component\n\t *\n\t * @param {string} id\n\t * @param {string} sourceId\n\t * @param {object} mutations\n\t * @returns {boolean}\n\t */\n\tcloneComponent(id, sourceId, mutations)\n\t{\n\t\tif (this.isLocal(sourceId))\n\t\t{\n\t\t\tconst definition = this.getLocalComponent(sourceId);\n\t\t\tdefinition.name = id;\n\n\t\t\tthis.component(id, definition, {immutable: false, local: true});\n\t\t\tthis.mutateComponent(id, mutations);\n\n\t\t\treturn true;\n\t\t}\n\n\t\tif (typeof this._clones[sourceId] === 'undefined')\n\t\t{\n\t\t\tthis._clones[sourceId] = {};\n\t\t}\n\n\t\tthis._clones[sourceId][id] = {id, sourceId, mutations};\n\n\t\tif (typeof this._components[sourceId] !== 'undefined')\n\t\t{\n\t\t\tthis._registerCloneComponent(sourceId, id);\n\t\t}\n\n\t\treturn true;\n\t}\n\n\t/**\n\t * Clone Vue component (object)\n\t *\n\t * @param {object} source\n\t * @param {object} mutations\n\t * @returns {object}\n\t */\n\tcloneLocalComponent(source, mutations)\n\t{\n\t\tif (typeof source !== 'object')\n\t\t{\n\t\t\tsource = this.getLocalComponent(source);\n\t\t\tif (!source)\n\t\t\t{\n\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\n\t\treturn this._applyMutation(\n\t\t\tthis._cloneObjectWithoutDuplicateFunction(source, mutations),\n\t\t\tmutations\n\t\t);\n\t}\n\n\t/**\n\t * Check exists Vue component\n\t *\n\t * @param {string} id\n\t * @returns {boolean}\n\t */\n\tisComponent(id)\n\t{\n\t\treturn typeof this._components[id] !== 'undefined'\n\t}\n\n\t/**\n\t * Check able to mutate Vue component\n\t *\n\t * @param id\n\t * @returns {boolean|undefined} - undefined when component not registered yet.\n\t */\n\tisMutable(id)\n\t{\n\t\tif (typeof this._components[id] === 'undefined')\n\t\t{\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn !this._components[id].bitrixOptions.immutable;\n\t}\n\n\t/**\n\t * Check component is a local\n\t *\n\t * @param id\n\t * @returns {boolean|undefined} - undefined when component not registered yet.\n\t */\n\tisLocal(id)\n\t{\n\t\tif (typeof this._components[id] === 'undefined')\n\t\t{\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn this._components[id].bitrixOptions.local === true;\n\t}\n\n\t/**\n\t * Create a \"subclass\" of the base Vue constructor.\n\t *\n\t * @param options\n\t * @returns {*}\n\t *\n\t * @see https://v2.vuejs.org/v2/api/#Vue-extend\n\t */\n\textend(options)\n\t{\n\t\treturn this._instance.extend(options)\n\t}\n\n\t/**\n\t *\tDefer the callback to be executed after the next DOM update cycle. Use it immediately after you have changed some data to wait for the DOM update.\n\t *\n\t * @param {Function} callback\n\t * @param {Object} context\n\t * @returns {Promise|void}\n\t *\n\t * @see https://v2.vuejs.org/v2/api/#Vue-nextTick\n\t */\n\tnextTick(callback, context)\n\t{\n\t\treturn this._instance.nextTick(callback, context);\n\t}\n\n\t/**\n\t * Adds a property to a reactive object, ensuring the new property is also reactive, so triggers view updates.\n\t *\n\t * @param {Object|Array} target\n\t * @param {String|Number} key\n\t * @param {*} value\n\t * @returns {*}\n\t *\n\t * @see https://v2.vuejs.org/v2/api/#Vue-set\n\t */\n\tset(target, key, value)\n\t{\n\t\treturn this._instance.set(target, key, value);\n\t}\n\n\t/**\n\t * Delete a property on an object. If the object is reactive, ensure the deletion triggers view updates.\n\t *\n\t * @param {Object|Array} target\n\t * @param {String|Number} key\n\t * @returns {*}\n\t */\n\tdelete(target, key)\n\t{\n\t\treturn this._instance.delete(target, key);\n\t}\n\n\t/**\n\t * Register or retrieve a global directive.\n\t *\n\t * @param {String} id\n\t * @param {Object|Function} definition\n\t * @returns {*}\n\t *\n\t * @see https://v2.vuejs.org/v2/api/#Vue-directive\n\t */\n\tdirective(id, definition)\n\t{\n\t\treturn this._instance.directive(id, definition);\n\t}\n\n\t/**\n\t * Register or retrieve a global filter.\n\t *\n\t * @param id\n\t * @param definition\n\t * @returns {*}\n\t *\n\t * @see https://v2.vuejs.org/v2/api/#Vue-filter\n\t */\n\tfilter(id, definition)\n\t{\n\t\treturn this._instance.filter(id, definition);\n\t}\n\n\t/**\n\t * Install a Vue.js plugin.\n\t *\n\t * @param {Object|Function} plugin\n\t * @returns {*}\n\t *\n\t * @see https://v2.vuejs.org/v2/api/#Vue-use\n\t */\n\tuse(plugin)\n\t{\n\t\treturn this._instance.use(plugin);\n\t}\n\n\t/**\n\t * Apply a mixin globally, which affects every Vue instance created afterwards.\n\t *\n\t * @param {Object} mixin\n\t * @returns {*|Function|Object}\n\t *\n\t * @see https://v2.vuejs.org/v2/api/#Vue-mixin\n\t */\n\tmixin(mixin)\n\t{\n\t\treturn this._instance.mixin(mixin);\n\t}\n\n\t/**\n\t * Make an object reactive. Internally, Vue uses this on the object returned by the data function.\n\t *\n\t * @param object\n\t * @returns {*}\n\t *\n\t * @see https://v2.vuejs.org/v2/api/#Vue-observable\n\t */\n\tobservable(object)\n\t{\n\t\treturn this._instance.observable(object);\n\t}\n\n\t/**\n\t * Compiles a template string into a render function.\n\t *\n\t * @param template\n\t * @returns {*}\n\t *\n\t * @see https://v2.vuejs.org/v2/api/#Vue-compile\n\t */\n\tcompile(template)\n\t{\n\t\treturn this._instance.compile(template);\n\t}\n\n\t/**\n\t * Provides the installed version of Vue as a string.\n\t *\n\t * @returns {String}\n\t *\n\t * @see https://v2.vuejs.org/v2/api/#Vue-version\n\t */\n\tversion()\n\t{\n\t\treturn this._instance.version;\n\t}\n\n\t/**\n\t * Test node for compliance with parameters\n\t *\n\t * @param obj\n\t * @param params\n\t * @returns {boolean}\n\t */\n\ttestNode(obj, params)\n\t{\n\t\tif (!params || typeof params !== 'object')\n\t\t{\n\t\t\treturn true;\n\t\t}\n\n\t\tlet i,j,len;\n\n\t\tfor (i in params)\n\t\t{\n\t\t\tif(!params.hasOwnProperty(i))\n\t\t\t{\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tswitch(i)\n\t\t\t{\n\t\t\t\tcase 'tag':\n\t\t\t\tcase 'tagName':\n\t\t\t\t\tif (typeof params[i] === \"string\")\n\t\t\t\t\t{\n\t\t\t\t\t\tif (obj.tagName.toUpperCase() !== params[i].toUpperCase())\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse if (params[i] instanceof RegExp)\n\t\t\t\t\t{\n\t\t\t\t\t\tif (!params[i].test(obj.tagName))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\t\tcase 'class':\n\t\t\t\tcase 'className':\n\t\t\t\t\tif (typeof params[i] === \"string\")\n\t\t\t\t\t{\n\t\t\t\t\t\tif (!obj.classList.contains(params[i].trim()))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse if (params[i] instanceof RegExp)\n\t\t\t\t\t{\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\ttypeof obj.className !== \"string\"\n\t\t\t\t\t\t\t|| !params[i].test(obj.className)\n\t\t\t\t\t\t)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\t\tcase 'attr':\n\t\t\t\tcase 'attrs':\n\t\t\t\tcase 'attribute':\n\t\t\t\t\tif (typeof params[i] === \"string\")\n\t\t\t\t\t{\n\t\t\t\t\t\tif (!obj.getAttribute(params[i]))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse if (params[i] && Object.prototype.toString.call(params[i]) === \"[object Array]\")\n\t\t\t\t\t{\n\t\t\t\t\t\tfor (j = 0, len = params[i].length; j < len; j++)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tif (params[i][j] && !obj.getAttribute(params[i][j]))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\treturn false;\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\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tfor (j in params[i])\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tif(!params[i].hasOwnProperty(j))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tlet value = obj.getAttribute(j);\n\t\t\t\t\t\t\tif (typeof value !== \"string\")\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (params[i][j] instanceof RegExp)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tif (!params[i][j].test(value))\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse if (value !== '' + params[i][j])\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\treturn false;\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\tbreak;\n\n\t\t\t\tcase 'property':\n\t\t\t\tcase 'props':\n\t\t\t\t\tif (typeof params[i] === \"string\")\n\t\t\t\t\t{\n\t\t\t\t\t\tif (!obj[params[i]])\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse if (params[i] && Object.prototype.toString.call(params[i]) == \"[object Array]\")\n\t\t\t\t\t{\n\t\t\t\t\t\tfor (j = 0, len = params[i].length; j < len; j++)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tif (params[i][j] && !obj[params[i][j]])\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\treturn false;\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\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tfor (j in params[i])\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tif(!params[i].hasOwnProperty(j))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (typeof params[i][j] === \"string\")\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tif (obj[j] != params[i][j])\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse if (params[i][j] instanceof RegExp)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\ttypeof obj[j] !== \"string\"\n\t\t\t\t\t\t\t\t\t|| !params[i][j].test(obj[j])\n\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\t\treturn false;\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\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n\n\t/**\n\t * Getting a part of localization object for insertion into computed property.\n\t *\n\t * @param {String} phrasePrefix\n\t * @param {Object|null} phrases\n\t * @returns {ReadonlyArray<any>}\n\t */\n\tgetFilteredPhrases(phrasePrefix, phrases = null)\n\t{\n\t\tlet result = {};\n\n\t\tif (!phrases && typeof BX.message !== 'undefined')\n\t\t{\n\t\t\tphrases = BX.message;\n\t\t}\n\t\telse if (Type.isObject(phrases) && Type.isObject(phrases.$Bitrix))\n\t\t{\n\t\t\tphrases = phrases.$Bitrix.Loc.getMessages();\n\t\t}\n\n\t\tif (Array.isArray(phrasePrefix))\n\t\t{\n\t\t\tfor (let message in phrases)\n\t\t\t{\n\t\t\t\tif (!phrases.hasOwnProperty(message))\n\t\t\t\t{\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tif (!phrasePrefix.find((element) => message.toString().startsWith(element)))\n\t\t\t\t{\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (this.localizationMode === 'development')\n\t\t\t\t{\n\t\t\t\t\tresult[message] = message;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tresult[message] = phrases[message];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\tfor (let message in phrases)\n\t\t\t{\n\t\t\t\tif (!phrases.hasOwnProperty(message))\n\t\t\t\t{\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tif (!message.startsWith(phrasePrefix))\n\t\t\t\t{\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (this.localizationMode === 'development')\n\t\t\t\t{\n\t\t\t\t\tresult[message] = message;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tresult[message] = phrases[message];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn Object.freeze(result);\n\t}\n\n\t/**\n\t * Return component params with mutation\n\t *\n\t * @param {String} componentId\n\t * @param {Object} mutations\n\t * @returns {null|Object}\n\t *\n\t * @private\n\t */\n\t_getComponentParamsWithMutation(componentId, mutations)\n\t{\n\t\tif (typeof this._components[componentId] === 'undefined')\n\t\t{\n\t\t\treturn null;\n\t\t}\n\n\t\tlet componentParams = Object.assign({}, this._components[componentId]);\n\n\t\tif (typeof mutations === 'undefined')\n\t\t{\n\t\t\treturn componentParams;\n\t\t}\n\n\t\tmutations.forEach(mutation =>\n\t\t{\n\t\t\tcomponentParams = this._applyMutation(\n\t\t\t\tthis._cloneObjectWithoutDuplicateFunction(componentParams, mutation),\n\t\t\tmutation);\n\t\t});\n\n\t\treturn componentParams;\n\t}\n\n\t_getFinalComponentParams(id)\n\t{\n\t\tconst mutations = this.isMutable(id)? this._mutations[id]: undefined;\n\t\treturn this._getComponentParamsWithMutation(id, mutations);\n\t}\n\n\t/**\n\t * Register clone of components\n\t *\n\t * @param {String} sourceId\n\t * @param {String|null} [id]\n\t *\n\t * @private\n\t */\n\t_registerCloneComponent(sourceId, id = null)\n\t{\n\t\tlet components = [];\n\t\tif (id)\n\t\t{\n\t\t\tif (typeof this._clones[sourceId][id] !== 'undefined')\n\t\t\t{\n\t\t\t\tcomponents.push(this._clones[sourceId][id]);\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\tfor (let cloneId in this._clones[sourceId])\n\t\t\t{\n\t\t\t\tif (!this._clones[sourceId].hasOwnProperty(cloneId))\n\t\t\t\t{\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tcomponents.push(this._clones[sourceId][cloneId]);\n\t\t\t}\n\t\t}\n\n\t\tcomponents.forEach(element =>\n\t\t{\n\t\t\tlet mutations = [];\n\n\t\t\tif (typeof this._mutations[element.sourceId] !== 'undefined')\n\t\t\t{\n\t\t\t\tmutations = mutations.concat(this._mutations[element.sourceId]);\n\t\t\t}\n\n\t\t\tmutations.push(element.mutations);\n\n\t\t\tlet componentParams = this._getComponentParamsWithMutation(element.sourceId, mutations);\n\t\t\tif (!componentParams)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tthis.component(element.id, componentParams);\n\t\t});\n\t}\n\n\t/**\n\t * Clone object without duplicate function for apply mutation\n\t *\n\t * @param objectParams\n\t * @param mutation\n\t * @param level\n\t * @param previousParamName\n\t * @private\n\t */\n\t_cloneObjectWithoutDuplicateFunction(objectParams = {}, mutation = {}, level = 1, previousParamName = '')\n\t{\n\t\tconst object = {};\n\n\t\tfor (const param in objectParams)\n\t\t{\n\t\t\tif (!objectParams.hasOwnProperty(param))\n\t\t\t{\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (Type.isString(objectParams[param]))\n\t\t\t{\n\t\t\t\tobject[param] = objectParams[param];\n\t\t\t}\n\t\t\telse if (Type.isArray(objectParams[param]))\n\t\t\t{\n\t\t\t\tobject[param] = [].concat(objectParams[param]);\n\t\t\t}\n\t\t\telse if (Type.isObjectLike(objectParams[param]))\n\t\t\t{\n\t\t\t\tif (\n\t\t\t\t\tpreviousParamName === 'watch'\n\t\t\t\t\t|| previousParamName === 'props'\n\t\t\t\t\t|| previousParamName === 'directives'\n\t\t\t\t)\n\t\t\t\t{\n\t\t\t\t\tobject[param] = objectParams[param];\n\t\t\t\t}\n\t\t\t\telse if (Type.isNull(objectParams[param]))\n\t\t\t\t{\n\t\t\t\t\tobject[param] = null;\n\t\t\t\t}\n\t\t\t\telse if (Type.isObjectLike(mutation[param]))\n\t\t\t\t{\n\t\t\t\t\tobject[param] = this._cloneObjectWithoutDuplicateFunction(objectParams[param], mutation[param], (level+1), param)\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tobject[param] = Object.assign({}, objectParams[param])\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (Type.isFunction(objectParams[param]))\n\t\t\t{\n\t\t\t\tif (!Type.isFunction(mutation[param]))\n\t\t\t\t{\n\t\t\t\t\tobject[param] = objectParams[param];\n\t\t\t\t}\n\t\t\t\telse if (level > 1)\n\t\t\t\t{\n\t\t\t\t\tif (previousParamName === 'watch')\n\t\t\t\t\t{\n\t\t\t\t\t\tobject[param] = objectParams[param];\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tobject['parent'+param[0].toUpperCase()+param.substr(1)] = objectParams[param];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tif (Type.isUndefined(object['methods']))\n\t\t\t\t\t{\n\t\t\t\t\t\tobject['methods'] = {};\n\t\t\t\t\t}\n\t\t\t\t\tobject['methods']['parent'+param[0].toUpperCase()+param.substr(1)] = objectParams[param];\n\n\t\t\t\t\tif (Type.isUndefined(objectParams['methods']))\n\t\t\t\t\t{\n\t\t\t\t\t\tobjectParams['methods'] = {};\n\t\t\t\t\t}\n\t\t\t\t\tobjectParams['methods']['parent'+param[0].toUpperCase()+param.substr(1)] = objectParams[param];\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (!Type.isUndefined(objectParams[param]))\n\t\t\t{\n\t\t\t\tobject[param] = objectParams[param];\n\t\t\t}\n\t\t}\n\n\t\treturn object;\n\t}\n\n\t/**\n\t * Apply mutation\n\t *\n\t * @param clonedObject\n\t * @param mutation\n\t * @param level\n\t * @private\n\t */\n\t_applyMutation(clonedObject = {}, mutation = {}, level = 1): object\n\t{\n\t\tconst object = Object.assign({}, clonedObject);\n\t\tfor (const param in mutation)\n\t\t{\n\t\t\tif (!mutation.hasOwnProperty(param))\n\t\t\t{\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tlevel === 1\n\t\t\t\t&& (param === 'compilerOptions' || param === 'setup')\n\t\t\t)\n\t\t\t{\n\t\t\t\tobject[param] = mutation[param];\n\t\t\t}\n\t\t\telse if (level === 1 && param === 'extends')\n\t\t\t{\n\t\t\t\tobject[param] = mutation[param];\n\t\t\t}\n\t\t\telse if (Type.isString(mutation[param]))\n\t\t\t{\n\t\t\t\tif (Type.isString(object[param]))\n\t\t\t\t{\n\t\t\t\t\tobject[param] = mutation[param].replace(`#PARENT_${param.toUpperCase()}#`, object[param]);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tobject[param] = mutation[param].replace(`#PARENT_${param.toUpperCase()}#`, '');\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (Type.isArray(mutation[param]))\n\t\t\t{\n\t\t\t\tif (level === 1 && param === 'replaceMixins')\n\t\t\t\t{\n\t\t\t\t\tobject['mixins'] = [].concat(mutation[param]);\n\t\t\t\t}\n\t\t\t\telse if (level === 1 && param === 'replaceInject')\n\t\t\t\t{\n\t\t\t\t\tobject['inject'] = [].concat(mutation[param]);\n\t\t\t\t}\n\t\t\t\telse if (level === 1 && param === 'replaceEmits')\n\t\t\t\t{\n\t\t\t\t\tobject['emits'] = [].concat(mutation[param]);\n\t\t\t\t}\n\t\t\t\telse if (level === 1 && param === 'replaceExpose')\n\t\t\t\t{\n\t\t\t\t\tobject['expose'] = [].concat(mutation[param]);\n\t\t\t\t}\n\t\t\t\telse if (Type.isPlainObject(object[param]))\n\t\t\t\t{\n\t\t\t\t\tmutation[param].forEach(element => object[param][element] = null);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tobject[param] = object[param].concat(mutation[param]);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (Type.isObjectLike(mutation[param]))\n\t\t\t{\n\t\t\t\tif (\n\t\t\t\t\tlevel === 1 && param === 'props' && Type.isArray(object[param])\n\t\t\t\t\t|| level === 1 && param === 'emits' && Type.isArray(object[param])\n\t\t\t\t)\n\t\t\t\t{\n\t\t\t\t\tconst newObject = {};\n\t\t\t\t\tobject[param].forEach(element => {\n\t\t\t\t\t\tnewObject[element] = null;\n\t\t\t\t\t});\n\t\t\t\t\tobject[param] = newObject;\n\t\t\t\t}\n\n\t\t\t\tif (level === 1 && param === 'watch')\n\t\t\t\t{\n\t\t\t\t\tfor (const paramName in object[param])\n\t\t\t\t\t{\n\t\t\t\t\t\tif (!object[param].hasOwnProperty(paramName))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (paramName.includes('.'))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tType.isFunction(object[param][paramName])\n\t\t\t\t\t\t\t|| (\n\t\t\t\t\t\t\t\tType.isObject(object[param][paramName])\n\t\t\t\t\t\t\t\t&& Type.isFunction(object[param][paramName]['handler'])\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tif (Type.isUndefined(object['methods']))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tobject['methods'] = {};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst originNewFunctionName = 'parentWatch'+paramName[0].toUpperCase()+paramName.substr(1);\n\n\t\t\t\t\t\t\tif (Type.isFunction(object[param][paramName]))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tobject['methods'][originNewFunctionName] = object[param][paramName];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tobject['methods'][originNewFunctionName] = object[param][paramName]['handler'];\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\tif (level === 1 && param === 'replaceEmits')\n\t\t\t\t{\n\t\t\t\t\tobject['emits'] = Object.assign({}, mutation[param]);\n\t\t\t\t}\n\t\t\t\telse if (\n\t\t\t\t\tlevel === 1\n\t\t\t\t\t&& (\n\t\t\t\t\t\tparam === 'components'\n\t\t\t\t\t\t|| param === 'directives'\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t\t{\n\t\t\t\t\tif (Type.isUndefined(object[param]))\n\t\t\t\t\t{\n\t\t\t\t\t\tobject[param] = {};\n\t\t\t\t\t}\n\n\t\t\t\t\tfor (const objectName in mutation[param])\n\t\t\t\t\t{\n\t\t\t\t\t\tif (!mutation[param].hasOwnProperty(objectName))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlet parentObjectName = objectName[0].toUpperCase()+objectName.substr(1);\n\t\t\t\t\t\tparentObjectName = param === 'components'? 'Parent'+parentObjectName: 'parent'+parentObjectName\n\t\t\t\t\t\tobject[param][parentObjectName] = Object.assign({}, object[param][objectName]);\n\n\t\t\t\t\t\tif (param === 'components')\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tif (Type.isUndefined(mutation[param][objectName].components))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tmutation[param][objectName].components = {};\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tmutation[param][objectName].components = Object.assign({[parentObjectName]: object[param][objectName]}, mutation[param][objectName].components);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tobject[param][objectName] = mutation[param][objectName];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (Type.isArray(object[param]))\n\t\t\t\t{\n\t\t\t\t\tfor (const mutationName in mutation[param])\n\t\t\t\t\t{\n\t\t\t\t\t\tif (!mutation[param].hasOwnProperty(mutationName))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tobject[param].push(mutationName);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (Type.isObjectLike(object[param]))\n\t\t\t\t{\n\t\t\t\t\tobject[param] = this._applyMutation(object[param], mutation[param], (level+1));\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tobject[param] = mutation[param];\n\t\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tobject[param] = mutation[param];\n\t\t\t}\n\t\t}\n\n\t\treturn object;\n\t}\n\n\t/**\n\t * @private\n\t * @param text\n\t */\n\tstatic showNotice(text)\n\t{\n\t\tif (BitrixVue.developerMode)\n\t\t{\n\t\t\tconsole.warn('BitrixVue: '+text);\n\t\t}\n\t}\n\n\t/**\n\t * @deprecated Special method for plugin registration\n\t */\n\tinstall(app, options)\n\t{\n\t\tapp.mixin(\n\t\t{\n\t\t\tbeforeCreate()\n\t\t\t{\n\t\t\t\tif (typeof this.$root !== 'undefined')\n\t\t\t\t{\n\t\t\t\t\tthis.$bitrix = this.$root.$bitrix;\n\t\t\t\t}\n\t\t\t},\n\t\t\tcomputed:\n\t\t\t{\n\t\t\t\t$Bitrix: function()\n\t\t\t\t{\n\t\t\t\t\treturn this.$root.$bitrix;\n\t\t\t\t},\n\t\t\t},\n\t\t\tmounted: function ()\n\t\t\t{\n\t\t\t\tif (!Type.isNil(this.$root.$bitrixApplication))\n\t\t\t\t{\n\t\t\t\t\tBitrixVue.showNotice(\"Store reference in global variables (like: this.$bitrixApplication) is deprecated, use this.$Bitrix.Data.set(...) instead.\");\n\t\t\t\t}\n\t\t\t\tif (!Type.isNil(this.$root.$bitrixController))\n\t\t\t\t{\n\t\t\t\t\tBitrixVue.showNotice(\"Store reference in global variables (like: this.$bitrixController) is deprecated, use this.$Bitrix.Data.set(...) instead.\");\n\t\t\t\t}\n\t\t\t\tif (!Type.isNil(this.$root.$bitrixMessages))\n\t\t\t\t{\n\t\t\t\t\tBitrixVue.showNotice(\"Store localization in global variable this.$bitrixMessages is deprecated, use this.$Bitrix.Log.setMessage(...) instead.\");\n\t\t\t\t}\n\t\t\t\tif (!Type.isNil(this.$root.$bitrixRestClient))\n\t\t\t\t{\n\t\t\t\t\tBitrixVue.showNotice(\"Working with a Rest-client through an old variable this.$bitrixRestClient is deprecated, use this.$Bitrix.RestClient.get() instead.\");\n\t\t\t\t}\n\t\t\t\tif (!Type.isNil(this.$root.$bitrixPullClient))\n\t\t\t\t{\n\t\t\t\t\tBitrixVue.showNotice(\"Working with a Pull-client through an old variable this.$bitrixPullClient is deprecated, use this.$Bitrix.PullClient.get() instead.\");\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n}\n","/*!\n * Vue.js v2.6.14\n * (c) 2014-2021 Evan You\n * Released under the MIT License.\n *\n * @source: https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.esm.browser.js\n */\n\n/**\n * Modify list for integration with Bitrix Framework:\n * - change default export to local for work in Bitrix CoreJS extensions;\n */\n\n// origin-start\nconst 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 */\nconst _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  const 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  const 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  const map = Object.create(null);\n  const list = str.split(',');\n  for (let i = 0; i < list.length; i++) {\n    map[list[i]] = true;\n  }\n  return expectsLowerCase\n    ? val => map[val.toLowerCase()]\n    : val => map[val]\n}\n\n/**\n * Check if a tag is a built-in tag.\n */\nconst isBuiltInTag = makeMap('slot,component', true);\n\n/**\n * Check if an attribute is a reserved attribute.\n */\nconst 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    const 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 */\nconst 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  const cache = Object.create(null);\n  return (function cachedFn (str) {\n    const hit = cache[str];\n    return hit || (cache[str] = fn(str))\n  })\n}\n\n/**\n * Camelize a hyphen-delimited string.\n */\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cached((str) => {\n  return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : '')\n});\n\n/**\n * Capitalize a string.\n */\nconst capitalize = cached((str) => {\n  return str.charAt(0).toUpperCase() + str.slice(1)\n});\n\n/**\n * Hyphenate a camelCase string.\n */\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cached((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    const 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\nconst 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  let i = list.length - start;\n  const 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 (const 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  const res = {};\n  for (let 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 */\nconst no = (a, b, c) => false;\n\n/* eslint-enable no-unused-vars */\n\n/**\n * Return the same value.\n */\nconst identity = (_) => _;\n\n/**\n * Generate a string containing static keys from compiler modules.\n */\nfunction genStaticKeys (modules) {\n  return modules.reduce((keys, m) => {\n    return keys.concat(m.staticKeys || [])\n  }, []).join(',')\n}\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  const isObjectA = isObject(a);\n  const isObjectB = isObject(b);\n  if (isObjectA && isObjectB) {\n    try {\n      const isArrayA = Array.isArray(a);\n      const isArrayB = Array.isArray(b);\n      if (isArrayA && isArrayB) {\n        return a.length === b.length && a.every((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        const keysA = Object.keys(a);\n        const keysB = Object.keys(b);\n        return keysA.length === keysB.length && keysA.every(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 (let 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  let called = false;\n  return function () {\n    if (!called) {\n      called = true;\n      fn.apply(this, arguments);\n    }\n  }\n}\n\nconst SSR_ATTR = 'data-server-rendered';\n\nconst ASSET_TYPES = [\n  'component',\n  'directive',\n  'filter'\n];\n\nconst 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: \"development\" !== 'production',\n\n  /**\n   * Whether to enable devtools\n   */\n  devtools: \"development\" !== '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 */\nconst 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  const 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 */\nconst bailRE = new RegExp(`[^${unicodeRegExp.source}.$_\\\\d]`);\nfunction parsePath (path) {\n  if (bailRE.test(path)) {\n    return\n  }\n  const segments = path.split('.');\n  return function (obj) {\n    for (let 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__?\nconst hasProto = '__proto__' in {};\n\n// Browser environment sniffing\nconst inBrowser = typeof window !== 'undefined';\nconst inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;\nconst weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();\nconst UA = inBrowser && window.navigator.userAgent.toLowerCase();\nconst isIE = UA && /msie|trident/.test(UA);\nconst isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nconst isEdge = UA && UA.indexOf('edge/') > 0;\nconst isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');\nconst isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');\nconst isChrome = UA && /chrome\\/\\d+/.test(UA) && !isEdge;\nconst isPhantomJS = UA && /phantomjs/.test(UA);\nconst isFF = UA && UA.match(/firefox\\/(\\d+)/);\n\n// Firefox has a \"watch\" function on Object.prototype...\nconst nativeWatch = ({}).watch;\n\nlet supportsPassive = false;\nif (inBrowser) {\n  try {\n    const opts = {};\n    Object.defineProperty(opts, 'passive', ({\n      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\nlet _isServer;\nconst isServerRendering = () => {\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\nconst 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\nconst hasSymbol =\n  typeof Symbol !== 'undefined' && isNative(Symbol) &&\n  typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);\n\nlet _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 = class Set   {\n\n    constructor () {\n      this.set = Object.create(null);\n    }\n    has (key) {\n      return this.set[key] === true\n    }\n    add (key) {\n      this.set[key] = true;\n    }\n    clear () {\n      this.set = Object.create(null);\n    }\n  };\n}\n\n/*  */\n\nlet warn = noop;\nlet tip = noop;\nlet generateComponentTrace = (noop); // work around flow check\nlet formatComponentName = (noop);\n\n{\n  const hasConsole = typeof console !== 'undefined';\n  const classifyRE = /(?:^|[-_])(\\w)/g;\n  const classify = str => str\n    .replace(classifyRE, c => c.toUpperCase())\n    .replace(/[-_]/g, '');\n\n  warn = (msg, vm) => {\n    const 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 = (msg, vm) => {\n    if (hasConsole && (!config.silent)) {\n      console.warn(`[Vue tip]: ${msg}` + (\n        vm ? generateComponentTrace(vm) : ''\n      ));\n    }\n  };\n\n  formatComponentName = (vm, includeFile) => {\n    if (vm.$root === vm) {\n      return '<Root>'\n    }\n    const options = typeof vm === 'function' && vm.cid != null\n      ? vm.options\n      : vm._isVue\n        ? vm.$options || vm.constructor.options\n        : vm;\n    let name = options.name || options._componentTag;\n    const file = options.__file;\n    if (!name && file) {\n      const 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  const repeat = (str, n) => {\n    let 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 = vm => {\n    if (vm._isVue && vm.$parent) {\n      const tree = [];\n      let currentRecursiveSequence = 0;\n      while (vm) {\n        if (tree.length > 0) {\n          const 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((vm, i) => `${\n          i === 0 ? '---> ' : repeat(' ', 5 + i * 2)\n        }${\n          Array.isArray(vm)\n            ? `${formatComponentName(vm[0])}... (${vm[1]} recursive calls)`\n            : formatComponentName(vm)\n        }`)\n        .join('\\n')\n    } else {\n      return `\\n\\n(found in ${formatComponentName(vm)})`\n    }\n  };\n}\n\n/*  */\n\nlet uid = 0;\n\n/**\n * A dep is an observable that can have multiple\n * directives subscribing to it.\n */\nclass Dep {\n\n\n\n\n  constructor () {\n    this.id = uid++;\n    this.subs = [];\n  }\n\n  addSub (sub) {\n    this.subs.push(sub);\n  }\n\n  removeSub (sub) {\n    remove(this.subs, sub);\n  }\n\n  depend () {\n    if (Dep.target) {\n      Dep.target.addDep(this);\n    }\n  }\n\n  notify () {\n    // stabilize the subscriber list first\n    const subs = this.subs.slice();\n    if (!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((a, b) => a.id - b.id);\n    }\n    for (let i = 0, l = subs.length; i < l; i++) {\n      subs[i].update();\n    }\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;\nconst 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\nclass VNode {\n\n\n\n\n\n\n   // rendered in this component's scope\n\n\n   // component instance\n   // component placeholder node\n\n  // strictly internal\n   // contains raw HTML? (server only)\n   // hoisted static node\n   // necessary for enter transition check\n   // empty comment placeholder?\n   // is a cloned node?\n   // is a v-once node?\n   // async component factory function\n\n\n\n   // real context vm for functional nodes\n   // for SSR caching\n   // used to store functional render context for devtools\n   // functional scope id support\n\n  constructor (\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\n  // DEPRECATED: alias for componentInstance for backwards compat.\n  /* istanbul ignore next */\n  get child () {\n    return this.componentInstance\n  }\n}\n\nconst createEmptyVNode = (text = '') => {\n  const 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  const 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\nconst arrayProto = Array.prototype;\nconst arrayMethods = Object.create(arrayProto);\n\nconst 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  const original = arrayProto[method];\n  def(arrayMethods, method, function mutator (...args) {\n    const result = original.apply(this, args);\n    const ob = this.__ob__;\n    let 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\nconst arrayKeys = Object.getOwnPropertyNames(arrayMethods);\n\n/**\n * In some cases we may want to disable observation inside a component's\n * update computation.\n */\nlet 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 */\nclass Observer {\n\n\n   // number of vms that have this object as root $data\n\n  constructor (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   */\n  walk (obj) {\n    const keys = Object.keys(obj);\n    for (let i = 0; i < keys.length; i++) {\n      defineReactive$$1(obj, keys[i]);\n    }\n  }\n\n  /**\n   * Observe a list of Array items.\n   */\n  observeArray (items) {\n    for (let i = 0, l = items.length; i < l; i++) {\n      observe(items[i]);\n    }\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 (let i = 0, l = keys.length; i < l; i++) {\n    const 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  let 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  const dep = new Dep();\n\n  const property = Object.getOwnPropertyDescriptor(obj, key);\n  if (property && property.configurable === false) {\n    return\n  }\n\n  // cater for pre-defined getter/setters\n  const getter = property && property.get;\n  const setter = property && property.set;\n  if ((!getter || setter) && arguments.length === 2) {\n    val = obj[key];\n  }\n\n  let childOb = !shallow && observe(val);\n  Object.defineProperty(obj, key, {\n    enumerable: true,\n    configurable: true,\n    get: function reactiveGetter () {\n      const 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      const 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 (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 (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  const ob = (target).__ob__;\n  if (target._isVue || (ob && ob.vmCount)) {\n    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 (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  const ob = (target).__ob__;\n  if (target._isVue || (ob && ob.vmCount)) {\n    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 (let e, 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 */\nconst strats = config.optionMergeStrategies;\n\n/**\n * Options with restrictions\n */\n{\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  let key, toVal, fromVal;\n\n  const keys = hasSymbol\n    ? Reflect.ownKeys(from)\n    : Object.keys(from);\n\n  for (let 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      const instanceData = typeof childVal === 'function'\n        ? childVal.call(vm, vm)\n        : childVal;\n      const 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      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  const 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  const res = [];\n  for (let 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(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  const res = Object.create(parentVal || null);\n  if (childVal) {\n    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  {\n    assertObjectType(key, childVal, vm);\n  }\n  if (!parentVal) return childVal\n  const ret = {};\n  extend(ret, parentVal);\n  for (const key in childVal) {\n    let parent = ret[key];\n    const child = childVal[key];\n    if (parent && !Array.isArray(parent)) {\n      parent = [parent];\n    }\n    ret[key] = 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 && \"development\" !== 'production') {\n    assertObjectType(key, childVal, vm);\n  }\n  if (!parentVal) return childVal\n  const 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 */\nconst 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 (const 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  const props = options.props;\n  if (!props) return\n  const res = {};\n  let 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 {\n        warn('props must be strings when using array syntax.');\n      }\n    }\n  } else if (isPlainObject(props)) {\n    for (const key in props) {\n      val = props[key];\n      name = camelize(key);\n      res[name] = isPlainObject(val)\n        ? val\n        : { type: val };\n    }\n  } else {\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  const inject = options.inject;\n  if (!inject) return\n  const normalized = options.inject = {};\n  if (Array.isArray(inject)) {\n    for (let i = 0; i < inject.length; i++) {\n      normalized[inject[i]] = { from: inject[i] };\n    }\n  } else if (isPlainObject(inject)) {\n    for (const key in inject) {\n      const val = inject[key];\n      normalized[key] = isPlainObject(val)\n        ? extend({ from: key }, val)\n        : { from: val };\n    }\n  } else {\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  const dirs = options.directives;\n  if (dirs) {\n    for (const key in dirs) {\n      const 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  {\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 (let i = 0, l = child.mixins.length; i < l; i++) {\n        parent = mergeOptions(parent, child.mixins[i], vm);\n      }\n    }\n  }\n\n  const options = {};\n  let 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    const 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  const assets = options[type];\n  // check local registration variations first\n  if (hasOwn(assets, id)) return assets[id]\n  const camelizedId = camelize(id);\n  if (hasOwn(assets, camelizedId)) return assets[camelizedId]\n  const PascalCaseId = capitalize(camelizedId);\n  if (hasOwn(assets, PascalCaseId)) return assets[PascalCaseId]\n  // fallback to prototype chain\n  const res = assets[id] || assets[camelizedId] || assets[PascalCaseId];\n  if (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  const prop = propOptions[key];\n  const absent = !hasOwn(propsData, key);\n  let value = propsData[key];\n  // boolean casting\n  const 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      const 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    const prevShouldObserve = shouldObserve;\n    toggleObserving(true);\n    observe(value);\n    toggleObserving(prevShouldObserve);\n  }\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  const def = prop.default;\n  // warn against non-factory defaults for Object & Array\n  if (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  let type = prop.type;\n  let valid = !type || type === true;\n  const expectedTypes = [];\n  if (type) {\n    if (!Array.isArray(type)) {\n      type = [type];\n    }\n    for (let i = 0; i < type.length && !valid; i++) {\n      const assertedType = assertType(value, type[i], vm);\n      expectedTypes.push(assertedType.expectedType || '');\n      valid = assertedType.valid;\n    }\n  }\n\n  const haveExpectedTypes = expectedTypes.some(t => t);\n  if (!valid && haveExpectedTypes) {\n    warn(\n      getInvalidTypeMessage(name, value, expectedTypes),\n      vm\n    );\n    return\n  }\n  const 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\nconst simpleCheckRE = /^(String|Number|Boolean|Function|Symbol|BigInt)$/;\n\nfunction assertType (value, type, vm) {\n  let valid;\n  const expectedType = getType(type);\n  if (simpleCheckRE.test(expectedType)) {\n    const 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    try {\n      valid = value instanceof type;\n    } catch (e) {\n      warn('Invalid prop type: \"' + String(type) + '\" is not a constructor', vm);\n      valid = false;\n    }\n  }\n  return {\n    valid,\n    expectedType\n  }\n}\n\nconst functionTypeCheckRE = /^\\s*function (\\w+)/;\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  const match = fn && fn.toString().match(functionTypeCheckRE);\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 (let 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  let message = `Invalid prop: type check failed for prop \"${name}\".` +\n    ` Expected ${expectedTypes.map(capitalize).join(', ')}`;\n  const expectedType = expectedTypes[0];\n  const receivedType = toRawType(value);\n  // check if we need to specify expected value\n  if (\n    expectedTypes.length === 1 &&\n    isExplicable(expectedType) &&\n    isExplicable(typeof value) &&\n    !isBoolean(expectedType, receivedType)\n  ) {\n    message += ` with value ${styleValue(value, expectedType)}`;\n  }\n  message += `, got ${receivedType} `;\n  // check if we need to specify received value\n  if (isExplicable(receivedType)) {\n    message += `with value ${styleValue(value, receivedType)}.`;\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\nconst EXPLICABLE_TYPES = ['string', 'number', 'boolean'];\nfunction isExplicable (value) {\n  return EXPLICABLE_TYPES.some(elem => value.toLowerCase() === elem)\n}\n\nfunction isBoolean (...args) {\n  return args.some(elem => 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      let cur = vm;\n      while ((cur = cur.$parent)) {\n        const hooks = cur.$options.errorCaptured;\n        if (hooks) {\n          for (let i = 0; i < hooks.length; i++) {\n            try {\n              const 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  let 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(e => 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  {\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\nlet isUsingMicroTask = false;\n\nconst callbacks = [];\nlet pending = false;\n\nfunction flushCallbacks () {\n  pending = false;\n  const copies = callbacks.slice(0);\n  callbacks.length = 0;\n  for (let 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).\nlet 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  const p = Promise.resolve();\n  timerFunc = () => {\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  let counter = 1;\n  const observer = new MutationObserver(flushCallbacks);\n  const textNode = document.createTextNode(String(counter));\n  observer.observe(textNode, {\n    characterData: true\n  });\n  timerFunc = () => {\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 = () => {\n    setImmediate(flushCallbacks);\n  };\n} else {\n  // Fallback to setTimeout.\n  timerFunc = () => {\n    setTimeout(flushCallbacks, 0);\n  };\n}\n\nfunction nextTick (cb, ctx) {\n  let _resolve;\n  callbacks.push(() => {\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(resolve => {\n      _resolve = resolve;\n    })\n  }\n}\n\n/*  */\n\nlet mark;\nlet measure;\n\n{\n  const 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 = tag => perf.mark(tag);\n    measure = (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/* not type checking this file because flow doesn't play well with Proxy */\n\nlet initProxy;\n\n{\n  const 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,BigInt,' +\n    'require' // for Webpack/Browserify\n  );\n\n  const warnNonPresent = (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  const warnReservedPrefix = (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  const hasProxy =\n    typeof Proxy !== 'undefined' && isNative(Proxy);\n\n  if (hasProxy) {\n    const isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');\n    config.keyCodes = new Proxy(config.keyCodes, {\n      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  const hasHandler = {\n    has (target, key) {\n      const has = key in target;\n      const 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  const getHandler = {\n    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      const options = vm.$options;\n      const 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\nconst 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  let i, keys;\n  const isA = Array.isArray(val);\n  if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) {\n    return\n  }\n  if (val.__ob__) {\n    const 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\n/*  */\n\nconst normalizeEvent = cached((name) => {\n  const passive = name.charAt(0) === '&';\n  name = passive ? name.slice(1) : name;\n  const once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first\n  name = once$$1 ? name.slice(1) : name;\n  const capture = name.charAt(0) === '!';\n  name = capture ? name.slice(1) : name;\n  return {\n    name,\n    once: once$$1,\n    capture,\n    passive\n  }\n});\n\nfunction createFnInvoker (fns, vm) {\n  function invoker () {\n    const fns = invoker.fns;\n    if (Array.isArray(fns)) {\n      const cloned = fns.slice();\n      for (let i = 0; i < cloned.length; i++) {\n        invokeWithErrorHandling(cloned[i], null, arguments, 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  let 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      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  let invoker;\n  const 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  const propOptions = Ctor.options.props;\n  if (isUndef(propOptions)) {\n    return\n  }\n  const res = {};\n  const { attrs, props } = data;\n  if (isDef(attrs) || isDef(props)) {\n    for (const key in propOptions) {\n      const altKey = hyphenate(key);\n      {\n        const 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 (let 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  const res = [];\n  let 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  const 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  const result = resolveInject(vm.$options.inject, vm);\n  if (result) {\n    toggleObserving(false);\n    Object.keys(result).forEach(key => {\n      /* istanbul ignore else */\n      {\n        defineReactive$$1(vm, key, result[key], () => {\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      }\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    const result = Object.create(null);\n    const keys = hasSymbol\n      ? Reflect.ownKeys(inject)\n      : Object.keys(inject);\n\n    for (let i = 0; i < keys.length; i++) {\n      const key = keys[i];\n      // #6574 in case the inject object is observed...\n      if (key === '__ob__') continue\n      const provideKey = inject[key].from;\n      let 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          const provideDefault = inject[key].default;\n          result[key] = typeof provideDefault === 'function'\n            ? provideDefault.call(vm)\n            : provideDefault;\n        } else {\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  const slots = {};\n  for (let i = 0, l = children.length; i < l; i++) {\n    const child = children[i];\n    const 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      const name = data.slot;\n      const 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 (const name in slots) {\n    if (slots[name].every(isWhitespace)) {\n      delete slots[name];\n    }\n  }\n  return slots\n}\n\nfunction isWhitespace (node) {\n  return (node.isComment && !node.asyncFactory) || node.text === ' '\n}\n\n/*  */\n\nfunction isAsyncPlaceholder (node) {\n  return node.isComment && node.asyncFactory\n}\n\n/*  */\n\nfunction normalizeScopedSlots (\n  slots,\n  normalSlots,\n  prevSlots\n) {\n  let res;\n  const hasNormalSlots = Object.keys(normalSlots).length > 0;\n  const isStable = slots ? !!slots.$stable : !hasNormalSlots;\n  const 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 (const key in slots) {\n      if (slots[key] && key[0] !== '$') {\n        res[key] = normalizeScopedSlot(normalSlots, key, slots[key]);\n      }\n    }\n  }\n  // expose normal slots on scopedSlots\n  for (const key in normalSlots) {\n    if (!(key in res)) {\n      res[key] = proxyNormalSlot(normalSlots, key);\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  const normalized = function () {\n    let 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    let vnode = res && res[0];\n    return res && (\n      !vnode ||\n      (res.length === 1 && vnode.isComment && !isAsyncPlaceholder(vnode)) // #9658, #10391\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 () => slots[key]\n}\n\n/*  */\n\n/**\n * Runtime helper for rendering v-for lists.\n */\nfunction renderList (\n  val,\n  render\n) {\n  let 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      const iterator = val[Symbol.iterator]();\n      let 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  fallbackRender,\n  props,\n  bindObject\n) {\n  const scopedSlotFn = this.$scopedSlots[name];\n  let nodes;\n  if (scopedSlotFn) {\n    // scoped slot\n    props = props || {};\n    if (bindObject) {\n      if (!isObject(bindObject)) {\n        warn('slot v-bind without argument expects an Object', this);\n      }\n      props = extend(extend({}, bindObject), props);\n    }\n    nodes =\n      scopedSlotFn(props) ||\n      (typeof fallbackRender === 'function' ? fallbackRender() : fallbackRender);\n  } else {\n    nodes =\n      this.$slots[name] ||\n      (typeof fallbackRender === 'function' ? fallbackRender() : fallbackRender);\n  }\n\n  const 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  const 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  return eventKeyCode === undefined\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      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      let hash;\n      for (const key in value) {\n        if (\n          key === 'class' ||\n          key === 'style' ||\n          isReservedAttribute(key)\n        ) {\n          hash = data;\n        } else {\n          const 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        const camelizedKey = camelize(key);\n        const hyphenatedKey = hyphenate(key);\n        if (!(camelizedKey in hash) && !(hyphenatedKey in hash)) {\n          hash[key] = value[key];\n\n          if (isSync) {\n            const on = data.on || (data.on = {});\n            on[`update:${key}`] = function ($event) {\n              value[key] = $event;\n            };\n          }\n        }\n      }\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  const cached = this._staticTrees || (this._staticTrees = []);\n  let 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 (let 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      warn(\n        'v-on without argument expects an Object value',\n        this\n      );\n    } else {\n      const on = data.on = data.on ? extend({}, data.on) : {};\n      for (const key in value) {\n        const existing = on[key];\n        const 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 (let i = 0; i < fns.length; i++) {\n    const 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 (let i = 0; i < values.length; i += 2) {\n    const key = values[i];\n    if (typeof key === 'string' && key) {\n      baseObj[values[i]] = values[i + 1];\n    } else if (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  const 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  let 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  const isCompiled = isTrue(options._compiled);\n  const 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 = () => {\n    if (!this.$slots) {\n      normalizeScopedSlots(\n        data.scopedSlots,\n        this.$slots = resolveSlots(children, parent)\n      );\n    }\n    return this.$slots\n  };\n\n  Object.defineProperty(this, 'scopedSlots', ({\n    enumerable: true,\n    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 = (a, b, c, d) => {\n      const 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 = (a, b, c, d) => 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  const options = Ctor.options;\n  const props = {};\n  const propOptions = options.props;\n  if (isDef(propOptions)) {\n    for (const 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  const renderContext = new FunctionalRenderContext(\n    data,\n    props,\n    children,\n    contextVm,\n    Ctor\n  );\n\n  const 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    const vnodes = normalizeChildren(vnode) || [];\n    const res = new Array(vnodes.length);\n    for (let 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  const clone = cloneVNode(vnode);\n  clone.fnContext = contextVm;\n  clone.fnOptions = options;\n  {\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 (const 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\nconst componentVNodeHooks = {\n  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      const mountedNode = vnode; // work around flow\n      componentVNodeHooks.prepatch(mountedNode, mountedNode);\n    } else {\n      const child = vnode.componentInstance = createComponentInstanceForVnode(\n        vnode,\n        activeInstance\n      );\n      child.$mount(hydrating ? vnode.elm : undefined, hydrating);\n    }\n  },\n\n  prepatch (oldVnode, vnode) {\n    const options = vnode.componentOptions;\n    const 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 (vnode) {\n    const { context, componentInstance } = vnode;\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 (vnode) {\n    const { componentInstance } = vnode;\n    if (!componentInstance._isDestroyed) {\n      if (!vnode.data.keepAlive) {\n        componentInstance.$destroy();\n      } else {\n        deactivateChildComponent(componentInstance, true /* direct */);\n      }\n    }\n  }\n};\n\nconst 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  const 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    {\n      warn(`Invalid Component definition: ${String(Ctor)}`, context);\n    }\n    return\n  }\n\n  // async component\n  let 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  const 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  const 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    const 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  const name = Ctor.options.name || tag;\n  const vnode = new VNode(\n    `vue-component-${Ctor.cid}${name ? `-${name}` : ''}`,\n    data, undefined, undefined, undefined, context,\n    { Ctor, propsData, listeners, tag, children },\n    asyncFactory\n  );\n\n  return vnode\n}\n\nfunction createComponentInstanceForVnode (\n  // we know it's MountedComponentVNode but flow doesn't\n  vnode,\n  // activeInstance in lifecycle state\n  parent\n) {\n  const options = {\n    _isComponent: true,\n    _parentVnode: vnode,\n    parent\n  };\n  // check inline-template render functions\n  const 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  const hooks = data.hook || (data.hook = {});\n  for (let i = 0; i < hooksToMerge.length; i++) {\n    const key = hooksToMerge[i];\n    const existing = hooks[key];\n    const 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  const merged = (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  const prop = (options.model && options.model.prop) || 'value';\n  const event = (options.model && options.model.event) || 'input'\n  ;(data.attrs || (data.attrs = {}))[prop] = data.model.value;\n  const on = data.on || (data.on = {});\n  const existing = on[event];\n  const 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\nconst SIMPLE_NORMALIZE = 1;\nconst 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    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 (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  let vnode, ns;\n  if (typeof tag === 'string') {\n    let Ctor;\n    ns = (context.$vnode && context.$vnode.ns) || config.getTagNamespace(tag);\n    if (config.isReservedTag(tag)) {\n      // platform built-in elements\n      if (isDef(data) && isDef(data.nativeOn) && data.tag !== 'component') {\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 (let i = 0, l = vnode.children.length; i < l; i++) {\n      const 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  const options = vm.$options;\n  const parentVnode = vm.$vnode = options._parentVnode; // the placeholder node in parent tree\n  const 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 = (a, b, c, d) => 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 = (a, b, c, d) => 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  const parentData = parentVnode && parentVnode.data;\n\n  /* istanbul ignore else */\n  {\n    defineReactive$$1(vm, '$attrs', parentData && parentData.attrs || emptyObject, () => {\n      !isUpdatingChildComponent && warn(`$attrs is readonly.`, vm);\n    }, true);\n    defineReactive$$1(vm, '$listeners', options._parentListeners || emptyObject, () => {\n      !isUpdatingChildComponent && warn(`$listeners is readonly.`, vm);\n    }, true);\n  }\n}\n\nlet 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    const vm = this;\n    const { render, _parentVnode } = vm.$options;\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    let 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 (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 (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  const node = createEmptyVNode();\n  node.asyncFactory = factory;\n  node.asyncMeta = { data, context, children, 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  const 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    const owners = factory.owners = [owner];\n    let sync = true;\n    let timerLoading = null;\n    let timerTimeout = null\n\n    ;(owner).$on('hook:destroyed', () => remove(owners, owner));\n\n    const forceRender = (renderCompleted) => {\n      for (let 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    const resolve = once((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    const reject = once(reason => {\n      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    const 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(() => {\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(() => {\n            timerTimeout = null;\n            if (isUndef(factory.resolved)) {\n              reject(\n                `timeout (${res.timeout}ms)`\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 getFirstComponentChild (children) {\n  if (Array.isArray(children)) {\n    for (let i = 0; i < children.length; i++) {\n      const 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  const listeners = vm.$options._parentListeners;\n  if (listeners) {\n    updateComponentListeners(vm, listeners);\n  }\n}\n\nlet 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  const _target = target;\n  return function onceHandler () {\n    const 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  const hookRE = /^hook:/;\n  Vue.prototype.$on = function (event, fn) {\n    const vm = this;\n    if (Array.isArray(event)) {\n      for (let 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    const 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    const 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 (let i = 0, l = event.length; i < l; i++) {\n        vm.$off(event[i], fn);\n      }\n      return vm\n    }\n    // specific event\n    const 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    let cb;\n    let 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    const vm = this;\n    {\n      const 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    let cbs = vm._events[event];\n    if (cbs) {\n      cbs = cbs.length > 1 ? toArray(cbs) : cbs;\n      const args = toArray(arguments, 1);\n      const info = `event handler for \"${event}\"`;\n      for (let 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\nlet activeInstance = null;\nlet isUpdatingChildComponent = false;\n\nfunction setActiveInstance(vm) {\n  const prevActiveInstance = activeInstance;\n  activeInstance = vm;\n  return () => {\n    activeInstance = prevActiveInstance;\n  }\n}\n\nfunction initLifecycle (vm) {\n  const options = vm.$options;\n\n  // locate first non-abstract parent\n  let 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    const vm = this;\n    const prevEl = vm.$el;\n    const prevVnode = vm._vnode;\n    const 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    const vm = this;\n    if (vm._watcher) {\n      vm._watcher.update();\n    }\n  };\n\n  Vue.prototype.$destroy = function () {\n    const vm = this;\n    if (vm._isBeingDestroyed) {\n      return\n    }\n    callHook(vm, 'beforeDestroy');\n    vm._isBeingDestroyed = true;\n    // remove self from parent\n    const 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    let 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    {\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  let updateComponent;\n  /* istanbul ignore if */\n  if (config.performance && mark) {\n    updateComponent = () => {\n      const name = vm._name;\n      const id = vm._uid;\n      const startTag = `vue-perf-start:${id}`;\n      const endTag = `vue-perf-end:${id}`;\n\n      mark(startTag);\n      const 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 = () => {\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 () {\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  {\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  const newScopedSlots = parentVnode.data.scopedSlots;\n  const oldScopedSlots = vm.$scopedSlots;\n  const hasDynamicScopedSlot = !!(\n    (newScopedSlots && !newScopedSlots.$stable) ||\n    (oldScopedSlots !== emptyObject && !oldScopedSlots.$stable) ||\n    (newScopedSlots && vm.$scopedSlots.$key !== newScopedSlots.$key) ||\n    (!newScopedSlots && vm.$scopedSlots.$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  const 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    const props = vm._props;\n    const propKeys = vm.$options._propKeys || [];\n    for (let i = 0; i < propKeys.length; i++) {\n      const key = propKeys[i];\n      const 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  const 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  {\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 (let 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 (let 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  const handlers = vm.$options[hook];\n  const info = `${hook} hook`;\n  if (handlers) {\n    for (let 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\nconst MAX_UPDATE_COUNT = 100;\n\nconst queue = [];\nconst activatedChildren = [];\nlet has = {};\nlet circular = {};\nlet waiting = false;\nlet flushing = false;\nlet index = 0;\n\n/**\n * Reset the scheduler's state.\n */\nfunction resetSchedulerState () {\n  index = queue.length = activatedChildren.length = 0;\n  has = {};\n  {\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.\nlet currentFlushTimestamp = 0;\n\n// Async edge case fix requires storing an event listener's attach timestamp.\nlet 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  const 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 = () => performance.now();\n  }\n}\n\n/**\n * Flush both queues and run the watchers.\n */\nfunction flushSchedulerQueue () {\n  currentFlushTimestamp = getNow();\n  flushing = true;\n  let 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((a, b) => 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 (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  const activatedQueue = activatedChildren.slice();\n  const 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  let i = queue.length;\n  while (i--) {\n    const watcher = queue[i];\n    const 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 (let 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  const 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      let 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 (!config.async) {\n        flushSchedulerQueue();\n        return\n      }\n      nextTick(flushSchedulerQueue);\n    }\n  }\n}\n\n/*  */\n\n\n\nlet 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 */\nclass Watcher {\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n  constructor (\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 = expOrFn.toString();\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        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   */\n  get () {\n    pushTarget(this);\n    let value;\n    const 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   */\n  addDep (dep) {\n    const 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   */\n  cleanupDeps () {\n    let i = this.deps.length;\n    while (i--) {\n      const dep = this.deps[i];\n      if (!this.newDepIds.has(dep.id)) {\n        dep.removeSub(this);\n      }\n    }\n    let 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   */\n  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   */\n  run () {\n    if (this.active) {\n      const 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        const oldValue = this.value;\n        this.value = value;\n        if (this.user) {\n          const info = `callback for watcher \"${this.expression}\"`;\n          invokeWithErrorHandling(this.cb, this.vm, [value, oldValue], this.vm, info);\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   */\n  evaluate () {\n    this.value = this.get();\n    this.dirty = false;\n  }\n\n  /**\n   * Depend on all deps collected by this watcher.\n   */\n  depend () {\n    let 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   */\n  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      let i = this.deps.length;\n      while (i--) {\n        this.deps[i].removeSub(this);\n      }\n      this.active = false;\n    }\n  }\n}\n\n/*  */\n\nconst 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  const 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  const propsData = vm.$options.propsData || {};\n  const props = vm._props = {};\n  // cache prop keys so that future props updates can iterate using Array\n  // instead of dynamic object key enumeration.\n  const keys = vm.$options._propKeys = [];\n  const isRoot = !vm.$parent;\n  // root instance props should be converted\n  if (!isRoot) {\n    toggleObserving(false);\n  }\n  for (const key in propsOptions) {\n    keys.push(key);\n    const value = validateProp(key, propsOptions, propsData, vm);\n    /* istanbul ignore else */\n    {\n      const 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, () => {\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    }\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  toggleObserving(true);\n}\n\nfunction initData (vm) {\n  let data = vm.$options.data;\n  data = vm._data = typeof data === 'function'\n    ? getData(data, vm)\n    : data || {};\n  if (!isPlainObject(data)) {\n    data = {};\n    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  const keys = Object.keys(data);\n  const props = vm.$options.props;\n  const methods = vm.$options.methods;\n  let i = keys.length;\n  while (i--) {\n    const key = keys[i];\n    {\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      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\nconst computedWatcherOptions = { lazy: true };\n\nfunction initComputed (vm, computed) {\n  // $flow-disable-line\n  const watchers = vm._computedWatchers = Object.create(null);\n  // computed properties are just getters during SSR\n  const isSSR = isServerRendering();\n\n  for (const key in computed) {\n    const userDef = computed[key];\n    const getter = typeof userDef === 'function' ? userDef : userDef.get;\n    if (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 {\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      } else if (vm.$options.methods && key in vm.$options.methods) {\n        warn(`The computed property \"${key}\" is already defined as a method.`, vm);\n      }\n    }\n  }\n}\n\nfunction defineComputed (\n  target,\n  key,\n  userDef\n) {\n  const 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 (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    const 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  const props = vm.$options.props;\n  for (const key in methods) {\n    {\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 (const key in watch) {\n    const handler = watch[key];\n    if (Array.isArray(handler)) {\n      for (let 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  const dataDef = {};\n  dataDef.get = function () { return this._data };\n  const propsDef = {};\n  propsDef.get = function () { return this._props };\n  {\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    const vm = this;\n    if (isPlainObject(cb)) {\n      return createWatcher(vm, expOrFn, cb, options)\n    }\n    options = options || {};\n    options.user = true;\n    const watcher = new Watcher(vm, expOrFn, cb, options);\n    if (options.immediate) {\n      const info = `callback for immediate watcher \"${watcher.expression}\"`;\n      pushTarget();\n      invokeWithErrorHandling(cb, vm, [watcher.value], vm, info);\n      popTarget();\n    }\n    return function unwatchFn () {\n      watcher.teardown();\n    }\n  };\n}\n\n/*  */\n\nlet uid$3 = 0;\n\nfunction initMixin (Vue) {\n  Vue.prototype._init = function (options) {\n    const vm = this;\n    // a uid\n    vm._uid = uid$3++;\n\n    let startTag, endTag;\n    /* istanbul ignore if */\n    if (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    {\n      initProxy(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 (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  const opts = vm.$options = Object.create(vm.constructor.options);\n  // doing this because it's faster than dynamic enumeration.\n  const parentVnode = options._parentVnode;\n  opts.parent = options.parent;\n  opts._parentVnode = parentVnode;\n\n  const 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  let options = Ctor.options;\n  if (Ctor.super) {\n    const superOptions = resolveConstructorOptions(Ctor.super);\n    const 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      const 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  let modified;\n  const latest = Ctor.options;\n  const sealed = Ctor.sealedOptions;\n  for (const 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 (!(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    const installedPlugins = (this._installedPlugins || (this._installedPlugins = []));\n    if (installedPlugins.indexOf(plugin) > -1) {\n      return this\n    }\n\n    // additional parameters\n    const 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  let cid = 1;\n\n  /**\n   * Class inheritance\n   */\n  Vue.extend = function (extendOptions) {\n    extendOptions = extendOptions || {};\n    const Super = this;\n    const SuperId = Super.cid;\n    const cachedCtors = extendOptions._Ctor || (extendOptions._Ctor = {});\n    if (cachedCtors[SuperId]) {\n      return cachedCtors[SuperId]\n    }\n\n    const name = extendOptions.name || Super.options.name;\n    if (name) {\n      validateComponentName(name);\n    }\n\n    const 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  const props = Comp.options.props;\n  for (const key in props) {\n    proxy(Comp.prototype, `_props`, key);\n  }\n}\n\nfunction initComputed$1 (Comp) {\n  const computed = Comp.options.computed;\n  for (const 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(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 (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\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  const { cache, keys, _vnode } = keepAliveInstance;\n  for (const key in cache) {\n    const entry = cache[key];\n    if (entry) {\n      const name = entry.name;\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  const entry = cache[key];\n  if (entry && (!current || entry.tag !== current.tag)) {\n    entry.componentInstance.$destroy();\n  }\n  cache[key] = null;\n  remove(keys, key);\n}\n\nconst 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  methods: {\n    cacheVNode() {\n      const { cache, keys, vnodeToCache, keyToCache } = this;\n      if (vnodeToCache) {\n        const { tag, componentInstance, componentOptions } = vnodeToCache;\n        cache[keyToCache] = {\n          name: getComponentName(componentOptions),\n          tag,\n          componentInstance,\n        };\n        keys.push(keyToCache);\n        // prune oldest entry\n        if (this.max && keys.length > parseInt(this.max)) {\n          pruneCacheEntry(cache, keys[0], keys, this._vnode);\n        }\n        this.vnodeToCache = null;\n      }\n    }\n  },\n\n  created () {\n    this.cache = Object.create(null);\n    this.keys = [];\n  },\n\n  destroyed () {\n    for (const key in this.cache) {\n      pruneCacheEntry(this.cache, key, this.keys);\n    }\n  },\n\n  mounted () {\n    this.cacheVNode();\n    this.$watch('include', val => {\n      pruneCache(this, name => matches(val, name));\n    });\n    this.$watch('exclude', val => {\n      pruneCache(this, name => !matches(val, name));\n    });\n  },\n\n  updated () {\n    this.cacheVNode();\n  },\n\n  render () {\n    const slot = this.$slots.default;\n    const vnode = getFirstComponentChild(slot);\n    const componentOptions = vnode && vnode.componentOptions;\n    if (componentOptions) {\n      // check pattern\n      const name = getComponentName(componentOptions);\n      const { include, exclude } = this;\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      const { cache, keys } = this;\n      const 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        // delay setting the cache until update\n        this.vnodeToCache = vnode;\n        this.keyToCache = key;\n      }\n\n      vnode.data.keepAlive = true;\n    }\n    return vnode || (slot && slot[0])\n  }\n};\n\nvar builtInComponents = {\n  KeepAlive\n};\n\n/*  */\n\nfunction initGlobalAPI (Vue) {\n  // config\n  const configDef = {};\n  configDef.get = () => config;\n  {\n    configDef.set = () => {\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,\n    extend,\n    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 = (obj) => {\n    observe(obj);\n    return obj\n  };\n\n  Vue.options = Object.create(null);\n  ASSET_TYPES.forEach(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 () {\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.14';\n\n/*  */\n\n// these are reserved for web because they are directly compiled away\n// during template compilation\nconst isReservedAttr = makeMap('style,class');\n\n// attributes that should be using props for binding\nconst acceptValue = makeMap('input,textarea,option,select,progress');\nconst mustUseProp = (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\nconst isEnumeratedAttr = makeMap('contenteditable,draggable,spellcheck');\n\nconst isValidContentEditableValue = makeMap('events,caret,typing,plaintext-only');\n\nconst convertEnumeratedValue = (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\nconst 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,' +\n  'truespeed,typemustmatch,visible'\n);\n\nconst xlinkNS = 'http://www.w3.org/1999/xlink';\n\nconst isXlink = (name) => {\n  return name.charAt(5) === ':' && name.slice(0, 5) === 'xlink'\n};\n\nconst getXlinkProp = (name) => {\n  return isXlink(name) ? name.slice(6, name.length) : ''\n};\n\nconst isFalsyAttrValue = (val) => {\n  return val == null || val === false\n};\n\n/*  */\n\nfunction genClassForVnode (vnode) {\n  let data = vnode.data;\n  let parentNode = vnode;\n  let 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  let res = '';\n  let stringified;\n  for (let 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  let res = '';\n  for (const key in value) {\n    if (value[key]) {\n      if (res) res += ' ';\n      res += key;\n    }\n  }\n  return res\n}\n\n/*  */\n\nconst namespaceMap = {\n  svg: 'http://www.w3.org/2000/svg',\n  math: 'http://www.w3.org/1998/Math/MathML'\n};\n\nconst 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.\nconst 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\nconst isPreTag = (tag) => tag === 'pre';\n\nconst isReservedTag = (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\nconst 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  const 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\nconst 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    const selected = document.querySelector(el);\n    if (!selected) {\n      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  const 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 (_, vnode) {\n    registerRef(vnode);\n  },\n  update (oldVnode, vnode) {\n    if (oldVnode.data.ref !== vnode.data.ref) {\n      registerRef(oldVnode, true);\n      registerRef(vnode);\n    }\n  },\n  destroy (vnode) {\n    registerRef(vnode, true);\n  }\n};\n\nfunction registerRef (vnode, isRemoval) {\n  const key = vnode.data.ref;\n  if (!isDef(key)) return\n\n  const vm = vnode.context;\n  const ref = vnode.componentInstance || vnode.elm;\n  const 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\nconst emptyNode = new VNode('', {}, []);\n\nconst hooks = ['create', 'activate', 'update', 'remove', 'destroy'];\n\nfunction sameVnode (a, b) {\n  return (\n    a.key === b.key &&\n    a.asyncFactory === b.asyncFactory && (\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        isUndef(b.asyncFactory.error)\n      )\n    )\n  )\n}\n\nfunction sameInputType (a, b) {\n  if (a.tag !== 'input') return true\n  let i;\n  const typeA = isDef(i = a.data) && isDef(i = i.attrs) && i.type;\n  const 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  let i, key;\n  const 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  let i, j;\n  const cbs = {};\n\n  const { modules, nodeOps } = backend;\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    const 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(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  let 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    const data = vnode.data;\n    const children = vnode.children;\n    const tag = vnode.tag;\n    if (isDef(tag)) {\n      {\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 (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    let i = vnode.data;\n    if (isDef(i)) {\n      const 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    let 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    let 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      {\n        checkDuplicateKeys(children);\n      }\n      for (let 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 (let i = 0; i < cbs.create.length; ++i) {\n      cbs.create[i](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    let i;\n    if (isDef(i = vnode.fnScopeId)) {\n      nodeOps.setStyleScope(vnode.elm, i);\n    } else {\n      let 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    let i, j;\n    const 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      const 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      let i;\n      const 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    let oldStartIdx = 0;\n    let newStartIdx = 0;\n    let oldEndIdx = oldCh.length - 1;\n    let oldStartVnode = oldCh[0];\n    let oldEndVnode = oldCh[oldEndIdx];\n    let newEndIdx = newCh.length - 1;\n    let newStartVnode = newCh[0];\n    let newEndVnode = newCh[newEndIdx];\n    let 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    const canMove = !removeOnly;\n\n    {\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    const seenKeys = {};\n    for (let i = 0; i < children.length; i++) {\n      const vnode = children[i];\n      const 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 (let i = start; i < end; i++) {\n      const 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    const 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    let i;\n    const data = vnode.data;\n    if (isDef(data) && isDef(i = data.hook) && isDef(i = i.prepatch)) {\n      i(oldVnode, vnode);\n    }\n\n    const oldCh = oldVnode.children;\n    const 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        {\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 (let i = 0; i < queue.length; ++i) {\n        queue[i].data.hook.insert(queue[i]);\n      }\n    }\n  }\n\n  let 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  const 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    let i;\n    const { tag, data, children } = vnode;\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    {\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 (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            let childrenMatch = true;\n            let childNode = elm.firstChild;\n            for (let i = 0; i < children.length; i++) {\n              if (!childNode || !hydrate(childNode, children[i], 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 (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        let fullInvoke = false;\n        for (const 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    let isInitialPatch = false;\n    const 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      const 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 {\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        const oldElm = oldVnode.elm;\n        const 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          let ancestor = vnode.parent;\n          const patchable = isPatchable(vnode);\n          while (ancestor) {\n            for (let i = 0; i < cbs.destroy.length; ++i) {\n              cbs.destroy[i](ancestor);\n            }\n            ancestor.elm = vnode.elm;\n            if (patchable) {\n              for (let i = 0; i < cbs.create.length; ++i) {\n                cbs.create[i](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              const insert = ancestor.data.hook.insert;\n              if (insert.merged) {\n                // start at index 1 to avoid re-invoking component mounted hook\n                for (let i = 1; i < insert.fns.length; i++) {\n                  insert.fns[i]();\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  const isCreate = oldVnode === emptyNode;\n  const isDestroy = vnode === emptyNode;\n  const oldDirs = normalizeDirectives$1(oldVnode.data.directives, oldVnode.context);\n  const newDirs = normalizeDirectives$1(vnode.data.directives, vnode.context);\n\n  const dirsWithInsert = [];\n  const dirsWithPostpatch = [];\n\n  let 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    const callInsert = () => {\n      for (let 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', () => {\n      for (let 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\nconst emptyModifiers = Object.create(null);\n\nfunction normalizeDirectives$1 (\n  dirs,\n  vm\n) {\n  const res = Object.create(null);\n  if (!dirs) {\n    // $flow-disable-line\n    return res\n  }\n  let 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  const 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  const 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  let key, cur, old;\n  const elm = vnode.elm;\n  const oldAttrs = oldVnode.data.attrs || {};\n  let 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, vnode.data.pre);\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, isInPre) {\n  if (isInPre || 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      const blocker = 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  const el = vnode.elm;\n  const data = vnode.data;\n  const 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  let cls = genClassForVnode(vnode);\n\n  // handle transition classes\n  const 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\nconst validDivisionCharRE = /[\\w).+\\-_$\\]]/;\n\nfunction parseFilters (exp) {\n  let inSingle = false;\n  let inDouble = false;\n  let inTemplateString = false;\n  let inRegex = false;\n  let curly = 0;\n  let square = 0;\n  let paren = 0;\n  let lastFilterIndex = 0;\n  let c, prev, i, expression, filters;\n\n  for (i = 0; i < exp.length; i++) {\n    prev = c;\n    c = exp.charCodeAt(i);\n    if (inSingle) {\n      if (c === 0x27 && prev !== 0x5C) inSingle = false;\n    } else if (inDouble) {\n      if (c === 0x22 && prev !== 0x5C) inDouble = false;\n    } else if (inTemplateString) {\n      if (c === 0x60 && prev !== 0x5C) inTemplateString = false;\n    } else if (inRegex) {\n      if (c === 0x2f && prev !== 0x5C) inRegex = false;\n    } else if (\n      c === 0x7C && // pipe\n      exp.charCodeAt(i + 1) !== 0x7C &&\n      exp.charCodeAt(i - 1) !== 0x7C &&\n      !curly && !square && !paren\n    ) {\n      if (expression === undefined) {\n        // first filter, end of expression\n        lastFilterIndex = i + 1;\n        expression = exp.slice(0, i).trim();\n      } else {\n        pushFilter();\n      }\n    } else {\n      switch (c) {\n        case 0x22: inDouble = true; break         // \"\n        case 0x27: inSingle = true; break         // '\n        case 0x60: inTemplateString = true; break // `\n        case 0x28: paren++; break                 // (\n        case 0x29: paren--; break                 // )\n        case 0x5B: square++; break                // [\n        case 0x5D: square--; break                // ]\n        case 0x7B: curly++; break                 // {\n        case 0x7D: curly--; break                 // }\n      }\n      if (c === 0x2f) { // /\n        let j = i - 1;\n        let p;\n        // find first non-whitespace prev char\n        for (; j >= 0; j--) {\n          p = exp.charAt(j);\n          if (p !== ' ') break\n        }\n        if (!p || !validDivisionCharRE.test(p)) {\n          inRegex = true;\n        }\n      }\n    }\n  }\n\n  if (expression === undefined) {\n    expression = exp.slice(0, i).trim();\n  } else if (lastFilterIndex !== 0) {\n    pushFilter();\n  }\n\n  function pushFilter () {\n    (filters || (filters = [])).push(exp.slice(lastFilterIndex, i).trim());\n    lastFilterIndex = i + 1;\n  }\n\n  if (filters) {\n    for (i = 0; i < filters.length; i++) {\n      expression = wrapFilter(expression, filters[i]);\n    }\n  }\n\n  return expression\n}\n\nfunction wrapFilter (exp, filter) {\n  const i = filter.indexOf('(');\n  if (i < 0) {\n    // _f: resolveFilter\n    return `_f(\"${filter}\")(${exp})`\n  } else {\n    const name = filter.slice(0, i);\n    const args = filter.slice(i + 1);\n    return `_f(\"${name}\")(${exp}${args !== ')' ? ',' + args : args}`\n  }\n}\n\n/*  */\n\n\n\n/* eslint-disable no-unused-vars */\nfunction baseWarn (msg, range) {\n  console.error(`[Vue compiler]: ${msg}`);\n}\n/* eslint-enable no-unused-vars */\n\nfunction pluckModuleFunction (\n  modules,\n  key\n) {\n  return modules\n    ? modules.map(m => m[key]).filter(_ => _)\n    : []\n}\n\nfunction addProp (el, name, value, range, dynamic) {\n  (el.props || (el.props = [])).push(rangeSetItem({ name, value, dynamic }, range));\n  el.plain = false;\n}\n\nfunction addAttr (el, name, value, range, dynamic) {\n  const attrs = dynamic\n    ? (el.dynamicAttrs || (el.dynamicAttrs = []))\n    : (el.attrs || (el.attrs = []));\n  attrs.push(rangeSetItem({ name, value, dynamic }, range));\n  el.plain = false;\n}\n\n// add a raw attr (use this in preTransforms)\nfunction addRawAttr (el, name, value, range) {\n  el.attrsMap[name] = value;\n  el.attrsList.push(rangeSetItem({ name, value }, range));\n}\n\nfunction addDirective (\n  el,\n  name,\n  rawName,\n  value,\n  arg,\n  isDynamicArg,\n  modifiers,\n  range\n) {\n  (el.directives || (el.directives = [])).push(rangeSetItem({\n    name,\n    rawName,\n    value,\n    arg,\n    isDynamicArg,\n    modifiers\n  }, range));\n  el.plain = false;\n}\n\nfunction prependModifierMarker (symbol, name, dynamic) {\n  return dynamic\n    ? `_p(${name},\"${symbol}\")`\n    : symbol + name // mark the event as captured\n}\n\nfunction addHandler (\n  el,\n  name,\n  value,\n  modifiers,\n  important,\n  warn,\n  range,\n  dynamic\n) {\n  modifiers = modifiers || emptyObject;\n  // warn prevent and passive modifier\n  /* istanbul ignore if */\n  if (\n    warn &&\n    modifiers.prevent && modifiers.passive\n  ) {\n    warn(\n      'passive and prevent can\\'t be used together. ' +\n      'Passive handler can\\'t prevent default event.',\n      range\n    );\n  }\n\n  // normalize click.right and click.middle since they don't actually fire\n  // this is technically browser-specific, but at least for now browsers are\n  // the only target envs that have right/middle clicks.\n  if (modifiers.right) {\n    if (dynamic) {\n      name = `(${name})==='click'?'contextmenu':(${name})`;\n    } else if (name === 'click') {\n      name = 'contextmenu';\n      delete modifiers.right;\n    }\n  } else if (modifiers.middle) {\n    if (dynamic) {\n      name = `(${name})==='click'?'mouseup':(${name})`;\n    } else if (name === 'click') {\n      name = 'mouseup';\n    }\n  }\n\n  // check capture modifier\n  if (modifiers.capture) {\n    delete modifiers.capture;\n    name = prependModifierMarker('!', name, dynamic);\n  }\n  if (modifiers.once) {\n    delete modifiers.once;\n    name = prependModifierMarker('~', name, dynamic);\n  }\n  /* istanbul ignore if */\n  if (modifiers.passive) {\n    delete modifiers.passive;\n    name = prependModifierMarker('&', name, dynamic);\n  }\n\n  let events;\n  if (modifiers.native) {\n    delete modifiers.native;\n    events = el.nativeEvents || (el.nativeEvents = {});\n  } else {\n    events = el.events || (el.events = {});\n  }\n\n  const newHandler = rangeSetItem({ value: value.trim(), dynamic }, range);\n  if (modifiers !== emptyObject) {\n    newHandler.modifiers = modifiers;\n  }\n\n  const handlers = events[name];\n  /* istanbul ignore if */\n  if (Array.isArray(handlers)) {\n    important ? handlers.unshift(newHandler) : handlers.push(newHandler);\n  } else if (handlers) {\n    events[name] = important ? [newHandler, handlers] : [handlers, newHandler];\n  } else {\n    events[name] = newHandler;\n  }\n\n  el.plain = false;\n}\n\nfunction getRawBindingAttr (\n  el,\n  name\n) {\n  return el.rawAttrsMap[':' + name] ||\n    el.rawAttrsMap['v-bind:' + name] ||\n    el.rawAttrsMap[name]\n}\n\nfunction getBindingAttr (\n  el,\n  name,\n  getStatic\n) {\n  const dynamicValue =\n    getAndRemoveAttr(el, ':' + name) ||\n    getAndRemoveAttr(el, 'v-bind:' + name);\n  if (dynamicValue != null) {\n    return parseFilters(dynamicValue)\n  } else if (getStatic !== false) {\n    const staticValue = getAndRemoveAttr(el, name);\n    if (staticValue != null) {\n      return JSON.stringify(staticValue)\n    }\n  }\n}\n\n// note: this only removes the attr from the Array (attrsList) so that it\n// doesn't get processed by processAttrs.\n// By default it does NOT remove it from the map (attrsMap) because the map is\n// needed during codegen.\nfunction getAndRemoveAttr (\n  el,\n  name,\n  removeFromMap\n) {\n  let val;\n  if ((val = el.attrsMap[name]) != null) {\n    const list = el.attrsList;\n    for (let i = 0, l = list.length; i < l; i++) {\n      if (list[i].name === name) {\n        list.splice(i, 1);\n        break\n      }\n    }\n  }\n  if (removeFromMap) {\n    delete el.attrsMap[name];\n  }\n  return val\n}\n\nfunction getAndRemoveAttrByRegex (\n  el,\n  name\n) {\n  const list = el.attrsList;\n  for (let i = 0, l = list.length; i < l; i++) {\n    const attr = list[i];\n    if (name.test(attr.name)) {\n      list.splice(i, 1);\n      return attr\n    }\n  }\n}\n\nfunction rangeSetItem (\n  item,\n  range\n) {\n  if (range) {\n    if (range.start != null) {\n      item.start = range.start;\n    }\n    if (range.end != null) {\n      item.end = range.end;\n    }\n  }\n  return item\n}\n\n/*  */\n\n/**\n * Cross-platform code generation for component v-model\n */\nfunction genComponentModel (\n  el,\n  value,\n  modifiers\n) {\n  const { number, trim } = modifiers || {};\n\n  const baseValueExpression = '$$v';\n  let valueExpression = baseValueExpression;\n  if (trim) {\n    valueExpression =\n      `(typeof ${baseValueExpression} === 'string'` +\n      `? ${baseValueExpression}.trim()` +\n      `: ${baseValueExpression})`;\n  }\n  if (number) {\n    valueExpression = `_n(${valueExpression})`;\n  }\n  const assignment = genAssignmentCode(value, valueExpression);\n\n  el.model = {\n    value: `(${value})`,\n    expression: JSON.stringify(value),\n    callback: `function (${baseValueExpression}) {${assignment}}`\n  };\n}\n\n/**\n * Cross-platform codegen helper for generating v-model value assignment code.\n */\nfunction genAssignmentCode (\n  value,\n  assignment\n) {\n  const res = parseModel(value);\n  if (res.key === null) {\n    return `${value}=${assignment}`\n  } else {\n    return `$set(${res.exp}, ${res.key}, ${assignment})`\n  }\n}\n\n/**\n * Parse a v-model expression into a base path and a final key segment.\n * Handles both dot-path and possible square brackets.\n *\n * Possible cases:\n *\n * - test\n * - test[key]\n * - test[test1[key]]\n * - test[\"a\"][key]\n * - xxx.test[a[a].test1[key]]\n * - test.xxx.a[\"asa\"][test1[key]]\n *\n */\n\nlet len, str, chr, index$1, expressionPos, expressionEndPos;\n\n\n\nfunction parseModel (val) {\n  // Fix https://github.com/vuejs/vue/pull/7730\n  // allow v-model=\"obj.val \" (trailing whitespace)\n  val = val.trim();\n  len = val.length;\n\n  if (val.indexOf('[') < 0 || val.lastIndexOf(']') < len - 1) {\n    index$1 = val.lastIndexOf('.');\n    if (index$1 > -1) {\n      return {\n        exp: val.slice(0, index$1),\n        key: '\"' + val.slice(index$1 + 1) + '\"'\n      }\n    } else {\n      return {\n        exp: val,\n        key: null\n      }\n    }\n  }\n\n  str = val;\n  index$1 = expressionPos = expressionEndPos = 0;\n\n  while (!eof()) {\n    chr = next();\n    /* istanbul ignore if */\n    if (isStringStart(chr)) {\n      parseString(chr);\n    } else if (chr === 0x5B) {\n      parseBracket(chr);\n    }\n  }\n\n  return {\n    exp: val.slice(0, expressionPos),\n    key: val.slice(expressionPos + 1, expressionEndPos)\n  }\n}\n\nfunction next () {\n  return str.charCodeAt(++index$1)\n}\n\nfunction eof () {\n  return index$1 >= len\n}\n\nfunction isStringStart (chr) {\n  return chr === 0x22 || chr === 0x27\n}\n\nfunction parseBracket (chr) {\n  let inBracket = 1;\n  expressionPos = index$1;\n  while (!eof()) {\n    chr = next();\n    if (isStringStart(chr)) {\n      parseString(chr);\n      continue\n    }\n    if (chr === 0x5B) inBracket++;\n    if (chr === 0x5D) inBracket--;\n    if (inBracket === 0) {\n      expressionEndPos = index$1;\n      break\n    }\n  }\n}\n\nfunction parseString (chr) {\n  const stringQuote = chr;\n  while (!eof()) {\n    chr = next();\n    if (chr === stringQuote) {\n      break\n    }\n  }\n}\n\n/*  */\n\nlet warn$1;\n\n// in some cases, the event used has to be determined at runtime\n// so we used some reserved tokens during compile.\nconst RANGE_TOKEN = '__r';\nconst CHECKBOX_RADIO_TOKEN = '__c';\n\nfunction model (\n  el,\n  dir,\n  _warn\n) {\n  warn$1 = _warn;\n  const value = dir.value;\n  const modifiers = dir.modifiers;\n  const tag = el.tag;\n  const type = el.attrsMap.type;\n\n  {\n    // inputs with type=\"file\" are read only and setting the input's\n    // value will throw an error.\n    if (tag === 'input' && type === 'file') {\n      warn$1(\n        `<${el.tag} v-model=\"${value}\" type=\"file\">:\\n` +\n        `File inputs are read only. Use a v-on:change listener instead.`,\n        el.rawAttrsMap['v-model']\n      );\n    }\n  }\n\n  if (el.component) {\n    genComponentModel(el, value, modifiers);\n    // component v-model doesn't need extra runtime\n    return false\n  } else if (tag === 'select') {\n    genSelect(el, value, modifiers);\n  } else if (tag === 'input' && type === 'checkbox') {\n    genCheckboxModel(el, value, modifiers);\n  } else if (tag === 'input' && type === 'radio') {\n    genRadioModel(el, value, modifiers);\n  } else if (tag === 'input' || tag === 'textarea') {\n    genDefaultModel(el, value, modifiers);\n  } else if (!config.isReservedTag(tag)) {\n    genComponentModel(el, value, modifiers);\n    // component v-model doesn't need extra runtime\n    return false\n  } else {\n    warn$1(\n      `<${el.tag} v-model=\"${value}\">: ` +\n      `v-model is not supported on this element type. ` +\n      'If you are working with contenteditable, it\\'s recommended to ' +\n      'wrap a library dedicated for that purpose inside a custom component.',\n      el.rawAttrsMap['v-model']\n    );\n  }\n\n  // ensure runtime directive metadata\n  return true\n}\n\nfunction genCheckboxModel (\n  el,\n  value,\n  modifiers\n) {\n  const number = modifiers && modifiers.number;\n  const valueBinding = getBindingAttr(el, 'value') || 'null';\n  const trueValueBinding = getBindingAttr(el, 'true-value') || 'true';\n  const falseValueBinding = getBindingAttr(el, 'false-value') || 'false';\n  addProp(el, 'checked',\n    `Array.isArray(${value})` +\n    `?_i(${value},${valueBinding})>-1` + (\n      trueValueBinding === 'true'\n        ? `:(${value})`\n        : `:_q(${value},${trueValueBinding})`\n    )\n  );\n  addHandler(el, 'change',\n    `var $$a=${value},` +\n        '$$el=$event.target,' +\n        `$$c=$$el.checked?(${trueValueBinding}):(${falseValueBinding});` +\n    'if(Array.isArray($$a)){' +\n      `var $$v=${number ? '_n(' + valueBinding + ')' : valueBinding},` +\n          '$$i=_i($$a,$$v);' +\n      `if($$el.checked){$$i<0&&(${genAssignmentCode(value, '$$a.concat([$$v])')})}` +\n      `else{$$i>-1&&(${genAssignmentCode(value, '$$a.slice(0,$$i).concat($$a.slice($$i+1))')})}` +\n    `}else{${genAssignmentCode(value, '$$c')}}`,\n    null, true\n  );\n}\n\nfunction genRadioModel (\n  el,\n  value,\n  modifiers\n) {\n  const number = modifiers && modifiers.number;\n  let valueBinding = getBindingAttr(el, 'value') || 'null';\n  valueBinding = number ? `_n(${valueBinding})` : valueBinding;\n  addProp(el, 'checked', `_q(${value},${valueBinding})`);\n  addHandler(el, 'change', genAssignmentCode(value, valueBinding), null, true);\n}\n\nfunction genSelect (\n  el,\n  value,\n  modifiers\n) {\n  const number = modifiers && modifiers.number;\n  const selectedVal = `Array.prototype.filter` +\n    `.call($event.target.options,function(o){return o.selected})` +\n    `.map(function(o){var val = \"_value\" in o ? o._value : o.value;` +\n    `return ${number ? '_n(val)' : 'val'}})`;\n\n  const assignment = '$event.target.multiple ? $$selectedVal : $$selectedVal[0]';\n  let code = `var $$selectedVal = ${selectedVal};`;\n  code = `${code} ${genAssignmentCode(value, assignment)}`;\n  addHandler(el, 'change', code, null, true);\n}\n\nfunction genDefaultModel (\n  el,\n  value,\n  modifiers\n) {\n  const type = el.attrsMap.type;\n\n  // warn if v-bind:value conflicts with v-model\n  // except for inputs with v-bind:type\n  {\n    const value = el.attrsMap['v-bind:value'] || el.attrsMap[':value'];\n    const typeBinding = el.attrsMap['v-bind:type'] || el.attrsMap[':type'];\n    if (value && !typeBinding) {\n      const binding = el.attrsMap['v-bind:value'] ? 'v-bind:value' : ':value';\n      warn$1(\n        `${binding}=\"${value}\" conflicts with v-model on the same element ` +\n        'because the latter already expands to a value binding internally',\n        el.rawAttrsMap[binding]\n      );\n    }\n  }\n\n  const { lazy, number, trim } = modifiers || {};\n  const needCompositionGuard = !lazy && type !== 'range';\n  const event = lazy\n    ? 'change'\n    : type === 'range'\n      ? RANGE_TOKEN\n      : 'input';\n\n  let valueExpression = '$event.target.value';\n  if (trim) {\n    valueExpression = `$event.target.value.trim()`;\n  }\n  if (number) {\n    valueExpression = `_n(${valueExpression})`;\n  }\n\n  let code = genAssignmentCode(value, valueExpression);\n  if (needCompositionGuard) {\n    code = `if($event.target.composing)return;${code}`;\n  }\n\n  addProp(el, 'value', `(${value})`);\n  addHandler(el, event, code, null, true);\n  if (trim || number) {\n    addHandler(el, 'blur', '$forceUpdate()');\n  }\n}\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    const 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\nlet target$1;\n\nfunction createOnceHandler$1 (event, handler, capture) {\n  const _target = target$1; // save current target element in closure\n  return function onceHandler () {\n    const 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.\nconst 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    const attachedTimestamp = currentFlushTimestamp;\n    const 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, 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  const on = vnode.data.on || {};\n  const 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\nlet svgContainer;\n\nfunction updateDOMProps (oldVnode, vnode) {\n  if (isUndef(oldVnode.data.domProps) && isUndef(vnode.data.domProps)) {\n    return\n  }\n  let key, cur;\n  const elm = vnode.elm;\n  const oldProps = oldVnode.data.domProps || {};\n  let 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      const 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      const 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  let 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  const value = elm.value;\n  const 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\nconst parseStyleText = cached(function (cssText) {\n  const res = {};\n  const listDelimiter = /;(?![^(]*\\))/g;\n  const propertyDelimiter = /:(.+)/;\n  cssText.split(listDelimiter).forEach(function (item) {\n    if (item) {\n      const 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  const 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  const res = {};\n  let styleData;\n\n  if (checkChild) {\n    let 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  let 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\nconst cssVarRE = /^--/;\nconst importantRE = /\\s*!important$/;\nconst setProp = (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    const 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 (let 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\nconst vendorNames = ['Webkit', 'Moz', 'ms'];\n\nlet emptyStyle;\nconst 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  const capName = prop.charAt(0).toUpperCase() + prop.slice(1);\n  for (let i = 0; i < vendorNames.length; i++) {\n    const name = vendorNames[i] + capName;\n    if (name in emptyStyle) {\n      return name\n    }\n  }\n});\n\nfunction updateStyle (oldVnode, vnode) {\n  const data = vnode.data;\n  const 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  let cur, name;\n  const el = vnode.elm;\n  const oldStaticStyle = oldData.staticStyle;\n  const oldStyleBinding = oldData.normalizedStyle || oldData.style || {};\n\n  // if static style exists, stylebinding already merged into it when doing normalizeStyleData\n  const oldStyle = oldStaticStyle || oldStyleBinding;\n\n  const 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  const 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\nconst 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(c => el.classList.add(c));\n    } else {\n      el.classList.add(cls);\n    }\n  } else {\n    const 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(c => 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    let cur = ` ${el.getAttribute('class') || ''} `;\n    const 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    const 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\nconst autoCssTransition = cached(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\nconst hasTransition = inBrowser && !isIE9;\nconst TRANSITION = 'transition';\nconst ANIMATION = 'animation';\n\n// Transition property/event sniffing\nlet transitionProp = 'transition';\nlet transitionEndEvent = 'transitionend';\nlet animationProp = 'animation';\nlet 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\nconst raf = inBrowser\n  ? window.requestAnimationFrame\n    ? window.requestAnimationFrame.bind(window)\n    : setTimeout\n  : /* istanbul ignore next */ fn => fn();\n\nfunction nextFrame (fn) {\n  raf(() => {\n    raf(fn);\n  });\n}\n\nfunction addTransitionClass (el, cls) {\n  const 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  const { type, timeout, propCount } = getTransitionInfo(el, expectedType);\n  if (!type) return cb()\n  const event = type === TRANSITION ? transitionEndEvent : animationEndEvent;\n  let ended = 0;\n  const end = () => {\n    el.removeEventListener(event, onEnd);\n    cb();\n  };\n  const onEnd = e => {\n    if (e.target === el) {\n      if (++ended >= propCount) {\n        end();\n      }\n    }\n  };\n  setTimeout(() => {\n    if (ended < propCount) {\n      end();\n    }\n  }, timeout + 1);\n  el.addEventListener(event, onEnd);\n}\n\nconst transformRE = /\\b(transform|all)(,|$)/;\n\nfunction getTransitionInfo (el, expectedType) {\n  const styles = window.getComputedStyle(el);\n  // JSDOM may return undefined for transition properties\n  const transitionDelays = (styles[transitionProp + 'Delay'] || '').split(', ');\n  const transitionDurations = (styles[transitionProp + 'Duration'] || '').split(', ');\n  const transitionTimeout = getTimeout(transitionDelays, transitionDurations);\n  const animationDelays = (styles[animationProp + 'Delay'] || '').split(', ');\n  const animationDurations = (styles[animationProp + 'Duration'] || '').split(', ');\n  const animationTimeout = getTimeout(animationDelays, animationDurations);\n\n  let type;\n  let timeout = 0;\n  let 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  const hasTransform =\n    type === TRANSITION &&\n    transformRE.test(styles[transitionProp + 'Property']);\n  return {\n    type,\n    timeout,\n    propCount,\n    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((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  const 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  const 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  const {\n    css,\n    type,\n    enterClass,\n    enterToClass,\n    enterActiveClass,\n    appearClass,\n    appearToClass,\n    appearActiveClass,\n    beforeEnter,\n    enter,\n    afterEnter,\n    enterCancelled,\n    beforeAppear,\n    appear,\n    afterAppear,\n    appearCancelled,\n    duration\n  } = data;\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  let context = activeInstance;\n  let transitionNode = activeInstance.$vnode;\n  while (transitionNode && transitionNode.parent) {\n    context = transitionNode.context;\n    transitionNode = transitionNode.parent;\n  }\n\n  const isAppear = !context._isMounted || !vnode.isRootInsert;\n\n  if (isAppear && !appear && appear !== '') {\n    return\n  }\n\n  const startClass = isAppear && appearClass\n    ? appearClass\n    : enterClass;\n  const activeClass = isAppear && appearActiveClass\n    ? appearActiveClass\n    : enterActiveClass;\n  const toClass = isAppear && appearToClass\n    ? appearToClass\n    : enterToClass;\n\n  const beforeEnterHook = isAppear\n    ? (beforeAppear || beforeEnter)\n    : beforeEnter;\n  const enterHook = isAppear\n    ? (typeof appear === 'function' ? appear : enter)\n    : enter;\n  const afterEnterHook = isAppear\n    ? (afterAppear || afterEnter)\n    : afterEnter;\n  const enterCancelledHook = isAppear\n    ? (appearCancelled || enterCancelled)\n    : enterCancelled;\n\n  const explicitEnterDuration = toNumber(\n    isObject(duration)\n      ? duration.enter\n      : duration\n  );\n\n  if (explicitEnterDuration != null) {\n    checkDuration(explicitEnterDuration, 'enter', vnode);\n  }\n\n  const expectsCSS = css !== false && !isIE9;\n  const userWantsControl = getHookArgumentsLength(enterHook);\n\n  const cb = el._enterCb = once(() => {\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', () => {\n      const parent = el.parentNode;\n      const 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(() => {\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  const 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  const 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  const {\n    css,\n    type,\n    leaveClass,\n    leaveToClass,\n    leaveActiveClass,\n    beforeLeave,\n    leave,\n    afterLeave,\n    leaveCancelled,\n    delayLeave,\n    duration\n  } = data;\n\n  const expectsCSS = css !== false && !isIE9;\n  const userWantsControl = getHookArgumentsLength(leave);\n\n  const explicitLeaveDuration = toNumber(\n    isObject(duration)\n      ? duration.leave\n      : duration\n  );\n\n  if (isDef(explicitLeaveDuration)) {\n    checkDuration(explicitLeaveDuration, 'leave', vnode);\n  }\n\n  const cb = el._leaveCb = once(() => {\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(() => {\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  const 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 (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.\nconst modules = platformModules.concat(baseModules);\n\nconst patch = createPatchFunction({ nodeOps, 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', () => {\n    const el = document.activeElement;\n    if (el && el.vmodel) {\n      trigger(el, 'input');\n    }\n  });\n}\n\nconst directive = {\n  inserted (el, binding, vnode, oldVnode) {\n    if (vnode.tag === 'select') {\n      // #6903\n      if (oldVnode.elm && !oldVnode.elm._vOptions) {\n        mergeVNodeHook(vnode, 'postpatch', () => {\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 (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      const prevOptions = el._vOptions;\n      const curOptions = el._vOptions = [].map.call(el.options, getValue);\n      if (curOptions.some((o, i) => !looseEqual(o, prevOptions[i]))) {\n        // trigger change event if\n        // no matching option found for at least one value\n        const needReset = el.multiple\n          ? binding.value.some(v => 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(() => {\n      actuallySetSelected(el, binding, vm);\n    }, 0);\n  }\n}\n\nfunction actuallySetSelected (el, binding, vm) {\n  const value = binding.value;\n  const isMultiple = el.multiple;\n  if (isMultiple && !Array.isArray(value)) {\n    warn(\n      `<select multiple v-model=\"${binding.expression}\"> ` +\n      `expects an Array value for its binding, but got ${\n        Object.prototype.toString.call(value).slice(8, -1)\n      }`,\n      vm\n    );\n    return\n  }\n  let selected, option;\n  for (let 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(o => !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  const 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 (el, { value }, vnode) {\n    vnode = locateNode(vnode);\n    const transition$$1 = vnode.data && vnode.data.transition;\n    const originalDisplay = el.__vOriginalDisplay =\n      el.style.display === 'none' ? '' : el.style.display;\n    if (value && transition$$1) {\n      vnode.data.show = true;\n      enter(vnode, () => {\n        el.style.display = originalDisplay;\n      });\n    } else {\n      el.style.display = value ? originalDisplay : 'none';\n    }\n  },\n\n  update (el, { value, oldValue }, vnode) {\n    /* istanbul ignore if */\n    if (!value === !oldValue) return\n    vnode = locateNode(vnode);\n    const transition$$1 = vnode.data && vnode.data.transition;\n    if (transition$$1) {\n      vnode.data.show = true;\n      if (value) {\n        enter(vnode, () => {\n          el.style.display = el.__vOriginalDisplay;\n        });\n      } else {\n        leave(vnode, () => {\n          el.style.display = 'none';\n        });\n      }\n    } else {\n      el.style.display = value ? el.__vOriginalDisplay : 'none';\n    }\n  },\n\n  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\n};\n\n/*  */\n\nconst 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  const 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  const data = {};\n  const options = comp.$options;\n  // props\n  for (const key in options.propsData) {\n    data[key] = comp[key];\n  }\n  // events.\n  // extract listeners and pass them directly to the transition methods\n  const listeners = options._parentListeners;\n  for (const key in listeners) {\n    data[camelize(key)] = listeners[key];\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\nconst isNotTextNode = (c) => c.tag || isAsyncPlaceholder(c);\n\nconst isVShowDirective = d => d.name === 'show';\n\nvar Transition = {\n  name: 'transition',\n  props: transitionProps,\n  abstract: true,\n\n  render (h) {\n    let 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 (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    const mode = this.mode;\n\n    // warn invalid mode\n    if (mode && mode !== 'in-out' && mode !== 'out-in'\n    ) {\n      warn(\n        'invalid <transition> mode: ' + mode,\n        this.$parent\n      );\n    }\n\n    const 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    const 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    const 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    const data = (child.data || (child.data = {})).transition = extractTransitionData(this);\n    const oldRawChild = this._vnode;\n    const 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      const 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', () => {\n          this._leaving = false;\n          this.$forceUpdate();\n        });\n        return placeholder(h, rawChild)\n      } else if (mode === 'in-out') {\n        if (isAsyncPlaceholder(child)) {\n          return oldRawChild\n        }\n        let delayedLeave;\n        const performLeave = () => { delayedLeave(); };\n        mergeVNodeHook(data, 'afterEnter', performLeave);\n        mergeVNodeHook(data, 'enterCancelled', performLeave);\n        mergeVNodeHook(oldData, 'delayLeave', leave => { delayedLeave = leave; });\n      }\n    }\n\n    return rawChild\n  }\n};\n\n/*  */\n\nconst props = extend({\n  tag: String,\n  moveClass: String\n}, transitionProps);\n\ndelete props.mode;\n\nvar TransitionGroup = {\n  props,\n\n  beforeMount () {\n    const update = this._update;\n    this._update = (vnode, hydrating) => {\n      const restoreActiveInstance = setActiveInstance(this);\n      // force removing pass\n      this.__patch__(\n        this._vnode,\n        this.kept,\n        false, // hydrating\n        true // removeOnly (!important, avoids unnecessary moves)\n      );\n      this._vnode = this.kept;\n      restoreActiveInstance();\n      update.call(this, vnode, hydrating);\n    };\n  },\n\n  render (h) {\n    const tag = this.tag || this.$vnode.data.tag || 'span';\n    const map = Object.create(null);\n    const prevChildren = this.prevChildren = this.children;\n    const rawChildren = this.$slots.default || [];\n    const children = this.children = [];\n    const transitionData = extractTransitionData(this);\n\n    for (let i = 0; i < rawChildren.length; i++) {\n      const 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 {\n          const opts = c.componentOptions;\n          const 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      const kept = [];\n      const removed = [];\n      for (let i = 0; i < prevChildren.length; i++) {\n        const c = prevChildren[i];\n        c.data.transition = transitionData;\n        c.data.pos = c.elm.getBoundingClientRect();\n        if (map[c.key]) {\n          kept.push(c);\n        } else {\n          removed.push(c);\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 () {\n    const children = this.prevChildren;\n    const 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((c) => {\n      if (c.data.moved) {\n        const el = c.elm;\n        const 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 (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      const clone = el.cloneNode();\n      if (el._transitionClasses) {\n        el._transitionClasses.forEach((cls) => { removeClass(clone, cls); });\n      }\n      addClass(clone, moveClass);\n      clone.style.display = 'none';\n      this.$el.appendChild(clone);\n      const 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  const oldPos = c.data.pos;\n  const newPos = c.data.newPos;\n  const dx = oldPos.left - newPos.left;\n  const dy = oldPos.top - newPos.top;\n  if (dx || dy) {\n    c.data.moved = true;\n    const 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,\n  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(() => {\n    if (config.devtools) {\n      if (devtools) {\n        devtools.emit('init', Vue);\n      } else {\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 (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\nconst defaultTagRE = /\\{\\{((?:.|\\r?\\n)+?)\\}\\}/g;\nconst regexEscapeRE = /[-.*+?^${}()|[\\]\\/\\\\]/g;\n\nconst buildRegex = cached(delimiters => {\n  const open = delimiters[0].replace(regexEscapeRE, '\\\\$&');\n  const close = delimiters[1].replace(regexEscapeRE, '\\\\$&');\n  return new RegExp(open + '((?:.|\\\\n)+?)' + close, 'g')\n});\n\n\n\nfunction parseText (\n  text,\n  delimiters\n) {\n  const tagRE = delimiters ? buildRegex(delimiters) : defaultTagRE;\n  if (!tagRE.test(text)) {\n    return\n  }\n  const tokens = [];\n  const rawTokens = [];\n  let lastIndex = tagRE.lastIndex = 0;\n  let match, index, tokenValue;\n  while ((match = tagRE.exec(text))) {\n    index = match.index;\n    // push text token\n    if (index > lastIndex) {\n      rawTokens.push(tokenValue = text.slice(lastIndex, index));\n      tokens.push(JSON.stringify(tokenValue));\n    }\n    // tag token\n    const exp = parseFilters(match[1].trim());\n    tokens.push(`_s(${exp})`);\n    rawTokens.push({ '@binding': exp });\n    lastIndex = index + match[0].length;\n  }\n  if (lastIndex < text.length) {\n    rawTokens.push(tokenValue = text.slice(lastIndex));\n    tokens.push(JSON.stringify(tokenValue));\n  }\n  return {\n    expression: tokens.join('+'),\n    tokens: rawTokens\n  }\n}\n\n/*  */\n\nfunction transformNode (el, options) {\n  const warn = options.warn || baseWarn;\n  const staticClass = getAndRemoveAttr(el, 'class');\n  if (staticClass) {\n    const res = parseText(staticClass, options.delimiters);\n    if (res) {\n      warn(\n        `class=\"${staticClass}\": ` +\n        'Interpolation inside attributes has been removed. ' +\n        'Use v-bind or the colon shorthand instead. For example, ' +\n        'instead of <div class=\"{{ val }}\">, use <div :class=\"val\">.',\n        el.rawAttrsMap['class']\n      );\n    }\n  }\n  if (staticClass) {\n    el.staticClass = JSON.stringify(staticClass);\n  }\n  const classBinding = getBindingAttr(el, 'class', false /* getStatic */);\n  if (classBinding) {\n    el.classBinding = classBinding;\n  }\n}\n\nfunction genData (el) {\n  let data = '';\n  if (el.staticClass) {\n    data += `staticClass:${el.staticClass},`;\n  }\n  if (el.classBinding) {\n    data += `class:${el.classBinding},`;\n  }\n  return data\n}\n\nvar klass$1 = {\n  staticKeys: ['staticClass'],\n  transformNode,\n  genData\n};\n\n/*  */\n\nfunction transformNode$1 (el, options) {\n  const warn = options.warn || baseWarn;\n  const staticStyle = getAndRemoveAttr(el, 'style');\n  if (staticStyle) {\n    /* istanbul ignore if */\n    {\n      const res = parseText(staticStyle, options.delimiters);\n      if (res) {\n        warn(\n          `style=\"${staticStyle}\": ` +\n          'Interpolation inside attributes has been removed. ' +\n          'Use v-bind or the colon shorthand instead. For example, ' +\n          'instead of <div style=\"{{ val }}\">, use <div :style=\"val\">.',\n          el.rawAttrsMap['style']\n        );\n      }\n    }\n    el.staticStyle = JSON.stringify(parseStyleText(staticStyle));\n  }\n\n  const styleBinding = getBindingAttr(el, 'style', false /* getStatic */);\n  if (styleBinding) {\n    el.styleBinding = styleBinding;\n  }\n}\n\nfunction genData$1 (el) {\n  let data = '';\n  if (el.staticStyle) {\n    data += `staticStyle:${el.staticStyle},`;\n  }\n  if (el.styleBinding) {\n    data += `style:(${el.styleBinding}),`;\n  }\n  return data\n}\n\nvar style$1 = {\n  staticKeys: ['staticStyle'],\n  transformNode: transformNode$1,\n  genData: genData$1\n};\n\n/*  */\n\nlet decoder;\n\nvar he = {\n  decode (html) {\n    decoder = decoder || document.createElement('div');\n    decoder.innerHTML = html;\n    return decoder.textContent\n  }\n};\n\n/*  */\n\nconst isUnaryTag = makeMap(\n  'area,base,br,col,embed,frame,hr,img,input,isindex,keygen,' +\n  'link,meta,param,source,track,wbr'\n);\n\n// Elements that you can, intentionally, leave open\n// (and which close themselves)\nconst canBeLeftOpenTag = makeMap(\n  'colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source'\n);\n\n// HTML5 tags https://html.spec.whatwg.org/multipage/indices.html#elements-3\n// Phrasing Content https://html.spec.whatwg.org/multipage/dom.html#phrasing-content\nconst isNonPhrasingTag = makeMap(\n  'address,article,aside,base,blockquote,body,caption,col,colgroup,dd,' +\n  'details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,' +\n  'h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,' +\n  'optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,' +\n  'title,tr,track'\n);\n\n/**\n * Not type-checking this file because it's mostly vendor code.\n */\n\n// Regular Expressions for parsing tags and attributes\nconst attribute = /^\\s*([^\\s\"'<>\\/=]+)(?:\\s*(=)\\s*(?:\"([^\"]*)\"+|'([^']*)'+|([^\\s\"'=<>`]+)))?/;\nconst dynamicArgAttribute = /^\\s*((?:v-[\\w-]+:|@|:|#)\\[[^=]+?\\][^\\s\"'<>\\/=]*)(?:\\s*(=)\\s*(?:\"([^\"]*)\"+|'([^']*)'+|([^\\s\"'=<>`]+)))?/;\nconst ncname = `[a-zA-Z_][\\\\-\\\\.0-9_a-zA-Z${unicodeRegExp.source}]*`;\nconst qnameCapture = `((?:${ncname}\\\\:)?${ncname})`;\nconst startTagOpen = new RegExp(`^<${qnameCapture}`);\nconst startTagClose = /^\\s*(\\/?)>/;\nconst endTag = new RegExp(`^<\\\\/${qnameCapture}[^>]*>`);\nconst doctype = /^<!DOCTYPE [^>]+>/i;\n// #7298: escape - to avoid being passed as HTML comment when inlined in page\nconst comment = /^<!\\--/;\nconst conditionalComment = /^<!\\[/;\n\n// Special Elements (can contain anything)\nconst isPlainTextElement = makeMap('script,style,textarea', true);\nconst reCache = {};\n\nconst decodingMap = {\n  '&lt;': '<',\n  '&gt;': '>',\n  '&quot;': '\"',\n  '&amp;': '&',\n  '&#10;': '\\n',\n  '&#9;': '\\t',\n  '&#39;': \"'\"\n};\nconst encodedAttr = /&(?:lt|gt|quot|amp|#39);/g;\nconst encodedAttrWithNewLines = /&(?:lt|gt|quot|amp|#39|#10|#9);/g;\n\n// #5992\nconst isIgnoreNewlineTag = makeMap('pre,textarea', true);\nconst shouldIgnoreFirstNewline = (tag, html) => tag && isIgnoreNewlineTag(tag) && html[0] === '\\n';\n\nfunction decodeAttr (value, shouldDecodeNewlines) {\n  const re = shouldDecodeNewlines ? encodedAttrWithNewLines : encodedAttr;\n  return value.replace(re, match => decodingMap[match])\n}\n\nfunction parseHTML (html, options) {\n  const stack = [];\n  const expectHTML = options.expectHTML;\n  const isUnaryTag$$1 = options.isUnaryTag || no;\n  const canBeLeftOpenTag$$1 = options.canBeLeftOpenTag || no;\n  let index = 0;\n  let last, lastTag;\n  while (html) {\n    last = html;\n    // Make sure we're not in a plaintext content element like script/style\n    if (!lastTag || !isPlainTextElement(lastTag)) {\n      let textEnd = html.indexOf('<');\n      if (textEnd === 0) {\n        // Comment:\n        if (comment.test(html)) {\n          const commentEnd = html.indexOf('-->');\n\n          if (commentEnd >= 0) {\n            if (options.shouldKeepComment) {\n              options.comment(html.substring(4, commentEnd), index, index + commentEnd + 3);\n            }\n            advance(commentEnd + 3);\n            continue\n          }\n        }\n\n        // http://en.wikipedia.org/wiki/Conditional_comment#Downlevel-revealed_conditional_comment\n        if (conditionalComment.test(html)) {\n          const conditionalEnd = html.indexOf(']>');\n\n          if (conditionalEnd >= 0) {\n            advance(conditionalEnd + 2);\n            continue\n          }\n        }\n\n        // Doctype:\n        const doctypeMatch = html.match(doctype);\n        if (doctypeMatch) {\n          advance(doctypeMatch[0].length);\n          continue\n        }\n\n        // End tag:\n        const endTagMatch = html.match(endTag);\n        if (endTagMatch) {\n          const curIndex = index;\n          advance(endTagMatch[0].length);\n          parseEndTag(endTagMatch[1], curIndex, index);\n          continue\n        }\n\n        // Start tag:\n        const startTagMatch = parseStartTag();\n        if (startTagMatch) {\n          handleStartTag(startTagMatch);\n          if (shouldIgnoreFirstNewline(startTagMatch.tagName, html)) {\n            advance(1);\n          }\n          continue\n        }\n      }\n\n      let text, rest, next;\n      if (textEnd >= 0) {\n        rest = html.slice(textEnd);\n        while (\n          !endTag.test(rest) &&\n          !startTagOpen.test(rest) &&\n          !comment.test(rest) &&\n          !conditionalComment.test(rest)\n        ) {\n          // < in plain text, be forgiving and treat it as text\n          next = rest.indexOf('<', 1);\n          if (next < 0) break\n          textEnd += next;\n          rest = html.slice(textEnd);\n        }\n        text = html.substring(0, textEnd);\n      }\n\n      if (textEnd < 0) {\n        text = html;\n      }\n\n      if (text) {\n        advance(text.length);\n      }\n\n      if (options.chars && text) {\n        options.chars(text, index - text.length, index);\n      }\n    } else {\n      let endTagLength = 0;\n      const stackedTag = lastTag.toLowerCase();\n      const reStackedTag = reCache[stackedTag] || (reCache[stackedTag] = new RegExp('([\\\\s\\\\S]*?)(</' + stackedTag + '[^>]*>)', 'i'));\n      const rest = html.replace(reStackedTag, function (all, text, endTag) {\n        endTagLength = endTag.length;\n        if (!isPlainTextElement(stackedTag) && stackedTag !== 'noscript') {\n          text = text\n            .replace(/<!\\--([\\s\\S]*?)-->/g, '$1') // #7298\n            .replace(/<!\\[CDATA\\[([\\s\\S]*?)]]>/g, '$1');\n        }\n        if (shouldIgnoreFirstNewline(stackedTag, text)) {\n          text = text.slice(1);\n        }\n        if (options.chars) {\n          options.chars(text);\n        }\n        return ''\n      });\n      index += html.length - rest.length;\n      html = rest;\n      parseEndTag(stackedTag, index - endTagLength, index);\n    }\n\n    if (html === last) {\n      options.chars && options.chars(html);\n      if (!stack.length && options.warn) {\n        options.warn(`Mal-formatted tag at end of template: \"${html}\"`, { start: index + html.length });\n      }\n      break\n    }\n  }\n\n  // Clean up any remaining tags\n  parseEndTag();\n\n  function advance (n) {\n    index += n;\n    html = html.substring(n);\n  }\n\n  function parseStartTag () {\n    const start = html.match(startTagOpen);\n    if (start) {\n      const match = {\n        tagName: start[1],\n        attrs: [],\n        start: index\n      };\n      advance(start[0].length);\n      let end, attr;\n      while (!(end = html.match(startTagClose)) && (attr = html.match(dynamicArgAttribute) || html.match(attribute))) {\n        attr.start = index;\n        advance(attr[0].length);\n        attr.end = index;\n        match.attrs.push(attr);\n      }\n      if (end) {\n        match.unarySlash = end[1];\n        advance(end[0].length);\n        match.end = index;\n        return match\n      }\n    }\n  }\n\n  function handleStartTag (match) {\n    const tagName = match.tagName;\n    const unarySlash = match.unarySlash;\n\n    if (expectHTML) {\n      if (lastTag === 'p' && isNonPhrasingTag(tagName)) {\n        parseEndTag(lastTag);\n      }\n      if (canBeLeftOpenTag$$1(tagName) && lastTag === tagName) {\n        parseEndTag(tagName);\n      }\n    }\n\n    const unary = isUnaryTag$$1(tagName) || !!unarySlash;\n\n    const l = match.attrs.length;\n    const attrs = new Array(l);\n    for (let i = 0; i < l; i++) {\n      const args = match.attrs[i];\n      const value = args[3] || args[4] || args[5] || '';\n      const shouldDecodeNewlines = tagName === 'a' && args[1] === 'href'\n        ? options.shouldDecodeNewlinesForHref\n        : options.shouldDecodeNewlines;\n      attrs[i] = {\n        name: args[1],\n        value: decodeAttr(value, shouldDecodeNewlines)\n      };\n      if (options.outputSourceRange) {\n        attrs[i].start = args.start + args[0].match(/^\\s*/).length;\n        attrs[i].end = args.end;\n      }\n    }\n\n    if (!unary) {\n      stack.push({ tag: tagName, lowerCasedTag: tagName.toLowerCase(), attrs: attrs, start: match.start, end: match.end });\n      lastTag = tagName;\n    }\n\n    if (options.start) {\n      options.start(tagName, attrs, unary, match.start, match.end);\n    }\n  }\n\n  function parseEndTag (tagName, start, end) {\n    let pos, lowerCasedTagName;\n    if (start == null) start = index;\n    if (end == null) end = index;\n\n    // Find the closest opened tag of the same type\n    if (tagName) {\n      lowerCasedTagName = tagName.toLowerCase();\n      for (pos = stack.length - 1; pos >= 0; pos--) {\n        if (stack[pos].lowerCasedTag === lowerCasedTagName) {\n          break\n        }\n      }\n    } else {\n      // If no tag name is provided, clean shop\n      pos = 0;\n    }\n\n    if (pos >= 0) {\n      // Close all the open elements, up the stack\n      for (let i = stack.length - 1; i >= pos; i--) {\n        if (i > pos || !tagName &&\n          options.warn\n        ) {\n          options.warn(\n            `tag <${stack[i].tag}> has no matching end tag.`,\n            { start: stack[i].start, end: stack[i].end }\n          );\n        }\n        if (options.end) {\n          options.end(stack[i].tag, start, end);\n        }\n      }\n\n      // Remove the open elements from the stack\n      stack.length = pos;\n      lastTag = pos && stack[pos - 1].tag;\n    } else if (lowerCasedTagName === 'br') {\n      if (options.start) {\n        options.start(tagName, [], true, start, end);\n      }\n    } else if (lowerCasedTagName === 'p') {\n      if (options.start) {\n        options.start(tagName, [], false, start, end);\n      }\n      if (options.end) {\n        options.end(tagName, start, end);\n      }\n    }\n  }\n}\n\n/*  */\n\nconst onRE = /^@|^v-on:/;\nconst dirRE = /^v-|^@|^:|^#/;\nconst forAliasRE = /([\\s\\S]*?)\\s+(?:in|of)\\s+([\\s\\S]*)/;\nconst forIteratorRE = /,([^,\\}\\]]*)(?:,([^,\\}\\]]*))?$/;\nconst stripParensRE = /^\\(|\\)$/g;\nconst dynamicArgRE = /^\\[.*\\]$/;\n\nconst argRE = /:(.*)$/;\nconst bindRE = /^:|^\\.|^v-bind:/;\nconst modifierRE = /\\.[^.\\]]+(?=[^\\]]*$)/g;\n\nconst slotRE = /^v-slot(:|$)|^#/;\n\nconst lineBreakRE = /[\\r\\n]/;\nconst whitespaceRE$1 = /[ \\f\\t\\r\\n]+/g;\n\nconst invalidAttributeRE = /[\\s\"'<>\\/=]/;\n\nconst decodeHTMLCached = cached(he.decode);\n\nconst emptySlotScopeToken = `_empty_`;\n\n// configurable state\nlet warn$2;\nlet delimiters;\nlet transforms;\nlet preTransforms;\nlet postTransforms;\nlet platformIsPreTag;\nlet platformMustUseProp;\nlet platformGetTagNamespace;\nlet maybeComponent;\n\nfunction createASTElement (\n  tag,\n  attrs,\n  parent\n) {\n  return {\n    type: 1,\n    tag,\n    attrsList: attrs,\n    attrsMap: makeAttrsMap(attrs),\n    rawAttrsMap: {},\n    parent,\n    children: []\n  }\n}\n\n/**\n * Convert HTML string to AST.\n */\nfunction parse (\n  template,\n  options\n) {\n  warn$2 = options.warn || baseWarn;\n\n  platformIsPreTag = options.isPreTag || no;\n  platformMustUseProp = options.mustUseProp || no;\n  platformGetTagNamespace = options.getTagNamespace || no;\n  const isReservedTag = options.isReservedTag || no;\n  maybeComponent = (el) => !!(\n    el.component ||\n    el.attrsMap[':is'] ||\n    el.attrsMap['v-bind:is'] ||\n    !(el.attrsMap.is ? isReservedTag(el.attrsMap.is) : isReservedTag(el.tag))\n  );\n  transforms = pluckModuleFunction(options.modules, 'transformNode');\n  preTransforms = pluckModuleFunction(options.modules, 'preTransformNode');\n  postTransforms = pluckModuleFunction(options.modules, 'postTransformNode');\n\n  delimiters = options.delimiters;\n\n  const stack = [];\n  const preserveWhitespace = options.preserveWhitespace !== false;\n  const whitespaceOption = options.whitespace;\n  let root;\n  let currentParent;\n  let inVPre = false;\n  let inPre = false;\n  let warned = false;\n\n  function warnOnce (msg, range) {\n    if (!warned) {\n      warned = true;\n      warn$2(msg, range);\n    }\n  }\n\n  function closeElement (element) {\n    trimEndingWhitespace(element);\n    if (!inVPre && !element.processed) {\n      element = processElement(element, options);\n    }\n    // tree management\n    if (!stack.length && element !== root) {\n      // allow root elements with v-if, v-else-if and v-else\n      if (root.if && (element.elseif || element.else)) {\n        {\n          checkRootConstraints(element);\n        }\n        addIfCondition(root, {\n          exp: element.elseif,\n          block: element\n        });\n      } else {\n        warnOnce(\n          `Component template should contain exactly one root element. ` +\n          `If you are using v-if on multiple elements, ` +\n          `use v-else-if to chain them instead.`,\n          { start: element.start }\n        );\n      }\n    }\n    if (currentParent && !element.forbidden) {\n      if (element.elseif || element.else) {\n        processIfConditions(element, currentParent);\n      } else {\n        if (element.slotScope) {\n          // scoped slot\n          // keep it in the children list so that v-else(-if) conditions can\n          // find it as the prev node.\n          const name = element.slotTarget || '\"default\"'\n          ;(currentParent.scopedSlots || (currentParent.scopedSlots = {}))[name] = element;\n        }\n        currentParent.children.push(element);\n        element.parent = currentParent;\n      }\n    }\n\n    // final children cleanup\n    // filter out scoped slots\n    element.children = element.children.filter(c => !(c).slotScope);\n    // remove trailing whitespace node again\n    trimEndingWhitespace(element);\n\n    // check pre state\n    if (element.pre) {\n      inVPre = false;\n    }\n    if (platformIsPreTag(element.tag)) {\n      inPre = false;\n    }\n    // apply post-transforms\n    for (let i = 0; i < postTransforms.length; i++) {\n      postTransforms[i](element, options);\n    }\n  }\n\n  function trimEndingWhitespace (el) {\n    // remove trailing whitespace node\n    if (!inPre) {\n      let lastNode;\n      while (\n        (lastNode = el.children[el.children.length - 1]) &&\n        lastNode.type === 3 &&\n        lastNode.text === ' '\n      ) {\n        el.children.pop();\n      }\n    }\n  }\n\n  function checkRootConstraints (el) {\n    if (el.tag === 'slot' || el.tag === 'template') {\n      warnOnce(\n        `Cannot use <${el.tag}> as component root element because it may ` +\n        'contain multiple nodes.',\n        { start: el.start }\n      );\n    }\n    if (el.attrsMap.hasOwnProperty('v-for')) {\n      warnOnce(\n        'Cannot use v-for on stateful component root element because ' +\n        'it renders multiple elements.',\n        el.rawAttrsMap['v-for']\n      );\n    }\n  }\n\n  parseHTML(template, {\n    warn: warn$2,\n    expectHTML: options.expectHTML,\n    isUnaryTag: options.isUnaryTag,\n    canBeLeftOpenTag: options.canBeLeftOpenTag,\n    shouldDecodeNewlines: options.shouldDecodeNewlines,\n    shouldDecodeNewlinesForHref: options.shouldDecodeNewlinesForHref,\n    shouldKeepComment: options.comments,\n    outputSourceRange: options.outputSourceRange,\n    start (tag, attrs, unary, start, end) {\n      // check namespace.\n      // inherit parent ns if there is one\n      const ns = (currentParent && currentParent.ns) || platformGetTagNamespace(tag);\n\n      // handle IE svg bug\n      /* istanbul ignore if */\n      if (isIE && ns === 'svg') {\n        attrs = guardIESVGBug(attrs);\n      }\n\n      let element = createASTElement(tag, attrs, currentParent);\n      if (ns) {\n        element.ns = ns;\n      }\n\n      {\n        if (options.outputSourceRange) {\n          element.start = start;\n          element.end = end;\n          element.rawAttrsMap = element.attrsList.reduce((cumulated, attr) => {\n            cumulated[attr.name] = attr;\n            return cumulated\n          }, {});\n        }\n        attrs.forEach(attr => {\n          if (invalidAttributeRE.test(attr.name)) {\n            warn$2(\n              `Invalid dynamic argument expression: attribute names cannot contain ` +\n              `spaces, quotes, <, >, / or =.`,\n              {\n                start: attr.start + attr.name.indexOf(`[`),\n                end: attr.start + attr.name.length\n              }\n            );\n          }\n        });\n      }\n\n      if (isForbiddenTag(element) && !isServerRendering()) {\n        element.forbidden = true;\n        warn$2(\n          'Templates should only be responsible for mapping the state to the ' +\n          'UI. Avoid placing tags with side-effects in your templates, such as ' +\n          `<${tag}>` + ', as they will not be parsed.',\n          { start: element.start }\n        );\n      }\n\n      // apply pre-transforms\n      for (let i = 0; i < preTransforms.length; i++) {\n        element = preTransforms[i](element, options) || element;\n      }\n\n      if (!inVPre) {\n        processPre(element);\n        if (element.pre) {\n          inVPre = true;\n        }\n      }\n      if (platformIsPreTag(element.tag)) {\n        inPre = true;\n      }\n      if (inVPre) {\n        processRawAttrs(element);\n      } else if (!element.processed) {\n        // structural directives\n        processFor(element);\n        processIf(element);\n        processOnce(element);\n      }\n\n      if (!root) {\n        root = element;\n        {\n          checkRootConstraints(root);\n        }\n      }\n\n      if (!unary) {\n        currentParent = element;\n        stack.push(element);\n      } else {\n        closeElement(element);\n      }\n    },\n\n    end (tag, start, end) {\n      const element = stack[stack.length - 1];\n      // pop stack\n      stack.length -= 1;\n      currentParent = stack[stack.length - 1];\n      if (options.outputSourceRange) {\n        element.end = end;\n      }\n      closeElement(element);\n    },\n\n    chars (text, start, end) {\n      if (!currentParent) {\n        {\n          if (text === template) {\n            warnOnce(\n              'Component template requires a root element, rather than just text.',\n              { start }\n            );\n          } else if ((text = text.trim())) {\n            warnOnce(\n              `text \"${text}\" outside root element will be ignored.`,\n              { start }\n            );\n          }\n        }\n        return\n      }\n      // IE textarea placeholder bug\n      /* istanbul ignore if */\n      if (isIE &&\n        currentParent.tag === 'textarea' &&\n        currentParent.attrsMap.placeholder === text\n      ) {\n        return\n      }\n      const children = currentParent.children;\n      if (inPre || text.trim()) {\n        text = isTextTag(currentParent) ? text : decodeHTMLCached(text);\n      } else if (!children.length) {\n        // remove the whitespace-only node right after an opening tag\n        text = '';\n      } else if (whitespaceOption) {\n        if (whitespaceOption === 'condense') {\n          // in condense mode, remove the whitespace node if it contains\n          // line break, otherwise condense to a single space\n          text = lineBreakRE.test(text) ? '' : ' ';\n        } else {\n          text = ' ';\n        }\n      } else {\n        text = preserveWhitespace ? ' ' : '';\n      }\n      if (text) {\n        if (!inPre && whitespaceOption === 'condense') {\n          // condense consecutive whitespaces into single space\n          text = text.replace(whitespaceRE$1, ' ');\n        }\n        let res;\n        let child;\n        if (!inVPre && text !== ' ' && (res = parseText(text, delimiters))) {\n          child = {\n            type: 2,\n            expression: res.expression,\n            tokens: res.tokens,\n            text\n          };\n        } else if (text !== ' ' || !children.length || children[children.length - 1].text !== ' ') {\n          child = {\n            type: 3,\n            text\n          };\n        }\n        if (child) {\n          if (options.outputSourceRange) {\n            child.start = start;\n            child.end = end;\n          }\n          children.push(child);\n        }\n      }\n    },\n    comment (text, start, end) {\n      // adding anything as a sibling to the root node is forbidden\n      // comments should still be allowed, but ignored\n      if (currentParent) {\n        const child = {\n          type: 3,\n          text,\n          isComment: true\n        };\n        if (options.outputSourceRange) {\n          child.start = start;\n          child.end = end;\n        }\n        currentParent.children.push(child);\n      }\n    }\n  });\n  return root\n}\n\nfunction processPre (el) {\n  if (getAndRemoveAttr(el, 'v-pre') != null) {\n    el.pre = true;\n  }\n}\n\nfunction processRawAttrs (el) {\n  const list = el.attrsList;\n  const len = list.length;\n  if (len) {\n    const attrs = el.attrs = new Array(len);\n    for (let i = 0; i < len; i++) {\n      attrs[i] = {\n        name: list[i].name,\n        value: JSON.stringify(list[i].value)\n      };\n      if (list[i].start != null) {\n        attrs[i].start = list[i].start;\n        attrs[i].end = list[i].end;\n      }\n    }\n  } else if (!el.pre) {\n    // non root node in pre blocks with no attributes\n    el.plain = true;\n  }\n}\n\nfunction processElement (\n  element,\n  options\n) {\n  processKey(element);\n\n  // determine whether this is a plain element after\n  // removing structural attributes\n  element.plain = (\n    !element.key &&\n    !element.scopedSlots &&\n    !element.attrsList.length\n  );\n\n  processRef(element);\n  processSlotContent(element);\n  processSlotOutlet(element);\n  processComponent(element);\n  for (let i = 0; i < transforms.length; i++) {\n    element = transforms[i](element, options) || element;\n  }\n  processAttrs(element);\n  return element\n}\n\nfunction processKey (el) {\n  const exp = getBindingAttr(el, 'key');\n  if (exp) {\n    {\n      if (el.tag === 'template') {\n        warn$2(\n          `<template> cannot be keyed. Place the key on real elements instead.`,\n          getRawBindingAttr(el, 'key')\n        );\n      }\n      if (el.for) {\n        const iterator = el.iterator2 || el.iterator1;\n        const parent = el.parent;\n        if (iterator && iterator === exp && parent && parent.tag === 'transition-group') {\n          warn$2(\n            `Do not use v-for index as key on <transition-group> children, ` +\n            `this is the same as not using keys.`,\n            getRawBindingAttr(el, 'key'),\n            true /* tip */\n          );\n        }\n      }\n    }\n    el.key = exp;\n  }\n}\n\nfunction processRef (el) {\n  const ref = getBindingAttr(el, 'ref');\n  if (ref) {\n    el.ref = ref;\n    el.refInFor = checkInFor(el);\n  }\n}\n\nfunction processFor (el) {\n  let exp;\n  if ((exp = getAndRemoveAttr(el, 'v-for'))) {\n    const res = parseFor(exp);\n    if (res) {\n      extend(el, res);\n    } else {\n      warn$2(\n        `Invalid v-for expression: ${exp}`,\n        el.rawAttrsMap['v-for']\n      );\n    }\n  }\n}\n\n\n\nfunction parseFor (exp) {\n  const inMatch = exp.match(forAliasRE);\n  if (!inMatch) return\n  const res = {};\n  res.for = inMatch[2].trim();\n  const alias = inMatch[1].trim().replace(stripParensRE, '');\n  const iteratorMatch = alias.match(forIteratorRE);\n  if (iteratorMatch) {\n    res.alias = alias.replace(forIteratorRE, '').trim();\n    res.iterator1 = iteratorMatch[1].trim();\n    if (iteratorMatch[2]) {\n      res.iterator2 = iteratorMatch[2].trim();\n    }\n  } else {\n    res.alias = alias;\n  }\n  return res\n}\n\nfunction processIf (el) {\n  const exp = getAndRemoveAttr(el, 'v-if');\n  if (exp) {\n    el.if = exp;\n    addIfCondition(el, {\n      exp: exp,\n      block: el\n    });\n  } else {\n    if (getAndRemoveAttr(el, 'v-else') != null) {\n      el.else = true;\n    }\n    const elseif = getAndRemoveAttr(el, 'v-else-if');\n    if (elseif) {\n      el.elseif = elseif;\n    }\n  }\n}\n\nfunction processIfConditions (el, parent) {\n  const prev = findPrevElement(parent.children);\n  if (prev && prev.if) {\n    addIfCondition(prev, {\n      exp: el.elseif,\n      block: el\n    });\n  } else {\n    warn$2(\n      `v-${el.elseif ? ('else-if=\"' + el.elseif + '\"') : 'else'} ` +\n      `used on element <${el.tag}> without corresponding v-if.`,\n      el.rawAttrsMap[el.elseif ? 'v-else-if' : 'v-else']\n    );\n  }\n}\n\nfunction findPrevElement (children) {\n  let i = children.length;\n  while (i--) {\n    if (children[i].type === 1) {\n      return children[i]\n    } else {\n      if (children[i].text !== ' ') {\n        warn$2(\n          `text \"${children[i].text.trim()}\" between v-if and v-else(-if) ` +\n          `will be ignored.`,\n          children[i]\n        );\n      }\n      children.pop();\n    }\n  }\n}\n\nfunction addIfCondition (el, condition) {\n  if (!el.ifConditions) {\n    el.ifConditions = [];\n  }\n  el.ifConditions.push(condition);\n}\n\nfunction processOnce (el) {\n  const once$$1 = getAndRemoveAttr(el, 'v-once');\n  if (once$$1 != null) {\n    el.once = true;\n  }\n}\n\n// handle content being passed to a component as slot,\n// e.g. <template slot=\"xxx\">, <div slot-scope=\"xxx\">\nfunction processSlotContent (el) {\n  let slotScope;\n  if (el.tag === 'template') {\n    slotScope = getAndRemoveAttr(el, 'scope');\n    /* istanbul ignore if */\n    if (slotScope) {\n      warn$2(\n        `the \"scope\" attribute for scoped slots have been deprecated and ` +\n        `replaced by \"slot-scope\" since 2.5. The new \"slot-scope\" attribute ` +\n        `can also be used on plain elements in addition to <template> to ` +\n        `denote scoped slots.`,\n        el.rawAttrsMap['scope'],\n        true\n      );\n    }\n    el.slotScope = slotScope || getAndRemoveAttr(el, 'slot-scope');\n  } else if ((slotScope = getAndRemoveAttr(el, 'slot-scope'))) {\n    /* istanbul ignore if */\n    if (el.attrsMap['v-for']) {\n      warn$2(\n        `Ambiguous combined usage of slot-scope and v-for on <${el.tag}> ` +\n        `(v-for takes higher priority). Use a wrapper <template> for the ` +\n        `scoped slot to make it clearer.`,\n        el.rawAttrsMap['slot-scope'],\n        true\n      );\n    }\n    el.slotScope = slotScope;\n  }\n\n  // slot=\"xxx\"\n  const slotTarget = getBindingAttr(el, 'slot');\n  if (slotTarget) {\n    el.slotTarget = slotTarget === '\"\"' ? '\"default\"' : slotTarget;\n    el.slotTargetDynamic = !!(el.attrsMap[':slot'] || el.attrsMap['v-bind:slot']);\n    // preserve slot as an attribute for native shadow DOM compat\n    // only for non-scoped slots.\n    if (el.tag !== 'template' && !el.slotScope) {\n      addAttr(el, 'slot', slotTarget, getRawBindingAttr(el, 'slot'));\n    }\n  }\n\n  // 2.6 v-slot syntax\n  {\n    if (el.tag === 'template') {\n      // v-slot on <template>\n      const slotBinding = getAndRemoveAttrByRegex(el, slotRE);\n      if (slotBinding) {\n        {\n          if (el.slotTarget || el.slotScope) {\n            warn$2(\n              `Unexpected mixed usage of different slot syntaxes.`,\n              el\n            );\n          }\n          if (el.parent && !maybeComponent(el.parent)) {\n            warn$2(\n              `<template v-slot> can only appear at the root level inside ` +\n              `the receiving component`,\n              el\n            );\n          }\n        }\n        const { name, dynamic } = getSlotName(slotBinding);\n        el.slotTarget = name;\n        el.slotTargetDynamic = dynamic;\n        el.slotScope = slotBinding.value || emptySlotScopeToken; // force it into a scoped slot for perf\n      }\n    } else {\n      // v-slot on component, denotes default slot\n      const slotBinding = getAndRemoveAttrByRegex(el, slotRE);\n      if (slotBinding) {\n        {\n          if (!maybeComponent(el)) {\n            warn$2(\n              `v-slot can only be used on components or <template>.`,\n              slotBinding\n            );\n          }\n          if (el.slotScope || el.slotTarget) {\n            warn$2(\n              `Unexpected mixed usage of different slot syntaxes.`,\n              el\n            );\n          }\n          if (el.scopedSlots) {\n            warn$2(\n              `To avoid scope ambiguity, the default slot should also use ` +\n              `<template> syntax when there are other named slots.`,\n              slotBinding\n            );\n          }\n        }\n        // add the component's children to its default slot\n        const slots = el.scopedSlots || (el.scopedSlots = {});\n        const { name, dynamic } = getSlotName(slotBinding);\n        const slotContainer = slots[name] = createASTElement('template', [], el);\n        slotContainer.slotTarget = name;\n        slotContainer.slotTargetDynamic = dynamic;\n        slotContainer.children = el.children.filter((c) => {\n          if (!c.slotScope) {\n            c.parent = slotContainer;\n            return true\n          }\n        });\n        slotContainer.slotScope = slotBinding.value || emptySlotScopeToken;\n        // remove children as they are returned from scopedSlots now\n        el.children = [];\n        // mark el non-plain so data gets generated\n        el.plain = false;\n      }\n    }\n  }\n}\n\nfunction getSlotName (binding) {\n  let name = binding.name.replace(slotRE, '');\n  if (!name) {\n    if (binding.name[0] !== '#') {\n      name = 'default';\n    } else {\n      warn$2(\n        `v-slot shorthand syntax requires a slot name.`,\n        binding\n      );\n    }\n  }\n  return dynamicArgRE.test(name)\n    // dynamic [name]\n    ? { name: name.slice(1, -1), dynamic: true }\n    // static name\n    : { name: `\"${name}\"`, dynamic: false }\n}\n\n// handle <slot/> outlets\nfunction processSlotOutlet (el) {\n  if (el.tag === 'slot') {\n    el.slotName = getBindingAttr(el, 'name');\n    if (el.key) {\n      warn$2(\n        `\\`key\\` does not work on <slot> because slots are abstract outlets ` +\n        `and can possibly expand into multiple elements. ` +\n        `Use the key on a wrapping element instead.`,\n        getRawBindingAttr(el, 'key')\n      );\n    }\n  }\n}\n\nfunction processComponent (el) {\n  let binding;\n  if ((binding = getBindingAttr(el, 'is'))) {\n    el.component = binding;\n  }\n  if (getAndRemoveAttr(el, 'inline-template') != null) {\n    el.inlineTemplate = true;\n  }\n}\n\nfunction processAttrs (el) {\n  const list = el.attrsList;\n  let i, l, name, rawName, value, modifiers, syncGen, isDynamic;\n  for (i = 0, l = list.length; i < l; i++) {\n    name = rawName = list[i].name;\n    value = list[i].value;\n    if (dirRE.test(name)) {\n      // mark element as dynamic\n      el.hasBindings = true;\n      // modifiers\n      modifiers = parseModifiers(name.replace(dirRE, ''));\n      // support .foo shorthand syntax for the .prop modifier\n      if (modifiers) {\n        name = name.replace(modifierRE, '');\n      }\n      if (bindRE.test(name)) { // v-bind\n        name = name.replace(bindRE, '');\n        value = parseFilters(value);\n        isDynamic = dynamicArgRE.test(name);\n        if (isDynamic) {\n          name = name.slice(1, -1);\n        }\n        if (\n          value.trim().length === 0\n        ) {\n          warn$2(\n            `The value for a v-bind expression cannot be empty. Found in \"v-bind:${name}\"`\n          );\n        }\n        if (modifiers) {\n          if (modifiers.prop && !isDynamic) {\n            name = camelize(name);\n            if (name === 'innerHtml') name = 'innerHTML';\n          }\n          if (modifiers.camel && !isDynamic) {\n            name = camelize(name);\n          }\n          if (modifiers.sync) {\n            syncGen = genAssignmentCode(value, `$event`);\n            if (!isDynamic) {\n              addHandler(\n                el,\n                `update:${camelize(name)}`,\n                syncGen,\n                null,\n                false,\n                warn$2,\n                list[i]\n              );\n              if (hyphenate(name) !== camelize(name)) {\n                addHandler(\n                  el,\n                  `update:${hyphenate(name)}`,\n                  syncGen,\n                  null,\n                  false,\n                  warn$2,\n                  list[i]\n                );\n              }\n            } else {\n              // handler w/ dynamic event name\n              addHandler(\n                el,\n                `\"update:\"+(${name})`,\n                syncGen,\n                null,\n                false,\n                warn$2,\n                list[i],\n                true // dynamic\n              );\n            }\n          }\n        }\n        if ((modifiers && modifiers.prop) || (\n          !el.component && platformMustUseProp(el.tag, el.attrsMap.type, name)\n        )) {\n          addProp(el, name, value, list[i], isDynamic);\n        } else {\n          addAttr(el, name, value, list[i], isDynamic);\n        }\n      } else if (onRE.test(name)) { // v-on\n        name = name.replace(onRE, '');\n        isDynamic = dynamicArgRE.test(name);\n        if (isDynamic) {\n          name = name.slice(1, -1);\n        }\n        addHandler(el, name, value, modifiers, false, warn$2, list[i], isDynamic);\n      } else { // normal directives\n        name = name.replace(dirRE, '');\n        // parse arg\n        const argMatch = name.match(argRE);\n        let arg = argMatch && argMatch[1];\n        isDynamic = false;\n        if (arg) {\n          name = name.slice(0, -(arg.length + 1));\n          if (dynamicArgRE.test(arg)) {\n            arg = arg.slice(1, -1);\n            isDynamic = true;\n          }\n        }\n        addDirective(el, name, rawName, value, arg, isDynamic, modifiers, list[i]);\n        if (name === 'model') {\n          checkForAliasModel(el, value);\n        }\n      }\n    } else {\n      // literal attribute\n      {\n        const res = parseText(value, delimiters);\n        if (res) {\n          warn$2(\n            `${name}=\"${value}\": ` +\n            'Interpolation inside attributes has been removed. ' +\n            'Use v-bind or the colon shorthand instead. For example, ' +\n            'instead of <div id=\"{{ val }}\">, use <div :id=\"val\">.',\n            list[i]\n          );\n        }\n      }\n      addAttr(el, name, JSON.stringify(value), list[i]);\n      // #6887 firefox doesn't update muted state if set via attribute\n      // even immediately after element creation\n      if (!el.component &&\n          name === 'muted' &&\n          platformMustUseProp(el.tag, el.attrsMap.type, name)) {\n        addProp(el, name, 'true', list[i]);\n      }\n    }\n  }\n}\n\nfunction checkInFor (el) {\n  let parent = el;\n  while (parent) {\n    if (parent.for !== undefined) {\n      return true\n    }\n    parent = parent.parent;\n  }\n  return false\n}\n\nfunction parseModifiers (name) {\n  const match = name.match(modifierRE);\n  if (match) {\n    const ret = {};\n    match.forEach(m => { ret[m.slice(1)] = true; });\n    return ret\n  }\n}\n\nfunction makeAttrsMap (attrs) {\n  const map = {};\n  for (let i = 0, l = attrs.length; i < l; i++) {\n    if (\n      map[attrs[i].name] && !isIE && !isEdge\n    ) {\n      warn$2('duplicate attribute: ' + attrs[i].name, attrs[i]);\n    }\n    map[attrs[i].name] = attrs[i].value;\n  }\n  return map\n}\n\n// for script (e.g. type=\"x/template\") or style, do not decode content\nfunction isTextTag (el) {\n  return el.tag === 'script' || el.tag === 'style'\n}\n\nfunction isForbiddenTag (el) {\n  return (\n    el.tag === 'style' ||\n    (el.tag === 'script' && (\n      !el.attrsMap.type ||\n      el.attrsMap.type === 'text/javascript'\n    ))\n  )\n}\n\nconst ieNSBug = /^xmlns:NS\\d+/;\nconst ieNSPrefix = /^NS\\d+:/;\n\n/* istanbul ignore next */\nfunction guardIESVGBug (attrs) {\n  const res = [];\n  for (let i = 0; i < attrs.length; i++) {\n    const attr = attrs[i];\n    if (!ieNSBug.test(attr.name)) {\n      attr.name = attr.name.replace(ieNSPrefix, '');\n      res.push(attr);\n    }\n  }\n  return res\n}\n\nfunction checkForAliasModel (el, value) {\n  let _el = el;\n  while (_el) {\n    if (_el.for && _el.alias === value) {\n      warn$2(\n        `<${el.tag} v-model=\"${value}\">: ` +\n        `You are binding v-model directly to a v-for iteration alias. ` +\n        `This will not be able to modify the v-for source array because ` +\n        `writing to the alias is like modifying a function local variable. ` +\n        `Consider using an array of objects and use v-model on an object property instead.`,\n        el.rawAttrsMap['v-model']\n      );\n    }\n    _el = _el.parent;\n  }\n}\n\n/*  */\n\nfunction preTransformNode (el, options) {\n  if (el.tag === 'input') {\n    const map = el.attrsMap;\n    if (!map['v-model']) {\n      return\n    }\n\n    let typeBinding;\n    if (map[':type'] || map['v-bind:type']) {\n      typeBinding = getBindingAttr(el, 'type');\n    }\n    if (!map.type && !typeBinding && map['v-bind']) {\n      typeBinding = `(${map['v-bind']}).type`;\n    }\n\n    if (typeBinding) {\n      const ifCondition = getAndRemoveAttr(el, 'v-if', true);\n      const ifConditionExtra = ifCondition ? `&&(${ifCondition})` : ``;\n      const hasElse = getAndRemoveAttr(el, 'v-else', true) != null;\n      const elseIfCondition = getAndRemoveAttr(el, 'v-else-if', true);\n      // 1. checkbox\n      const branch0 = cloneASTElement(el);\n      // process for on the main node\n      processFor(branch0);\n      addRawAttr(branch0, 'type', 'checkbox');\n      processElement(branch0, options);\n      branch0.processed = true; // prevent it from double-processed\n      branch0.if = `(${typeBinding})==='checkbox'` + ifConditionExtra;\n      addIfCondition(branch0, {\n        exp: branch0.if,\n        block: branch0\n      });\n      // 2. add radio else-if condition\n      const branch1 = cloneASTElement(el);\n      getAndRemoveAttr(branch1, 'v-for', true);\n      addRawAttr(branch1, 'type', 'radio');\n      processElement(branch1, options);\n      addIfCondition(branch0, {\n        exp: `(${typeBinding})==='radio'` + ifConditionExtra,\n        block: branch1\n      });\n      // 3. other\n      const branch2 = cloneASTElement(el);\n      getAndRemoveAttr(branch2, 'v-for', true);\n      addRawAttr(branch2, ':type', typeBinding);\n      processElement(branch2, options);\n      addIfCondition(branch0, {\n        exp: ifCondition,\n        block: branch2\n      });\n\n      if (hasElse) {\n        branch0.else = true;\n      } else if (elseIfCondition) {\n        branch0.elseif = elseIfCondition;\n      }\n\n      return branch0\n    }\n  }\n}\n\nfunction cloneASTElement (el) {\n  return createASTElement(el.tag, el.attrsList.slice(), el.parent)\n}\n\nvar model$1 = {\n  preTransformNode\n};\n\nvar modules$1 = [\n  klass$1,\n  style$1,\n  model$1\n];\n\n/*  */\n\nfunction text (el, dir) {\n  if (dir.value) {\n    addProp(el, 'textContent', `_s(${dir.value})`, dir);\n  }\n}\n\n/*  */\n\nfunction html (el, dir) {\n  if (dir.value) {\n    addProp(el, 'innerHTML', `_s(${dir.value})`, dir);\n  }\n}\n\nvar directives$1 = {\n  model,\n  text,\n  html\n};\n\n/*  */\n\nconst baseOptions = {\n  expectHTML: true,\n  modules: modules$1,\n  directives: directives$1,\n  isPreTag,\n  isUnaryTag,\n  mustUseProp,\n  canBeLeftOpenTag,\n  isReservedTag,\n  getTagNamespace,\n  staticKeys: genStaticKeys(modules$1)\n};\n\n/*  */\n\nlet isStaticKey;\nlet isPlatformReservedTag;\n\nconst genStaticKeysCached = cached(genStaticKeys$1);\n\n/**\n * Goal of the optimizer: walk the generated template AST tree\n * and detect sub-trees that are purely static, i.e. parts of\n * the DOM that never needs to change.\n *\n * Once we detect these sub-trees, we can:\n *\n * 1. Hoist them into constants, so that we no longer need to\n *    create fresh nodes for them on each re-render;\n * 2. Completely skip them in the patching process.\n */\nfunction optimize (root, options) {\n  if (!root) return\n  isStaticKey = genStaticKeysCached(options.staticKeys || '');\n  isPlatformReservedTag = options.isReservedTag || no;\n  // first pass: mark all non-static nodes.\n  markStatic$1(root);\n  // second pass: mark static roots.\n  markStaticRoots(root, false);\n}\n\nfunction genStaticKeys$1 (keys) {\n  return makeMap(\n    'type,tag,attrsList,attrsMap,plain,parent,children,attrs,start,end,rawAttrsMap' +\n    (keys ? ',' + keys : '')\n  )\n}\n\nfunction markStatic$1 (node) {\n  node.static = isStatic(node);\n  if (node.type === 1) {\n    // do not make component slot content static. this avoids\n    // 1. components not able to mutate slot nodes\n    // 2. static slot content fails for hot-reloading\n    if (\n      !isPlatformReservedTag(node.tag) &&\n      node.tag !== 'slot' &&\n      node.attrsMap['inline-template'] == null\n    ) {\n      return\n    }\n    for (let i = 0, l = node.children.length; i < l; i++) {\n      const child = node.children[i];\n      markStatic$1(child);\n      if (!child.static) {\n        node.static = false;\n      }\n    }\n    if (node.ifConditions) {\n      for (let i = 1, l = node.ifConditions.length; i < l; i++) {\n        const block = node.ifConditions[i].block;\n        markStatic$1(block);\n        if (!block.static) {\n          node.static = false;\n        }\n      }\n    }\n  }\n}\n\nfunction markStaticRoots (node, isInFor) {\n  if (node.type === 1) {\n    if (node.static || node.once) {\n      node.staticInFor = isInFor;\n    }\n    // For a node to qualify as a static root, it should have children that\n    // are not just static text. Otherwise the cost of hoisting out will\n    // outweigh the benefits and it's better off to just always render it fresh.\n    if (node.static && node.children.length && !(\n      node.children.length === 1 &&\n      node.children[0].type === 3\n    )) {\n      node.staticRoot = true;\n      return\n    } else {\n      node.staticRoot = false;\n    }\n    if (node.children) {\n      for (let i = 0, l = node.children.length; i < l; i++) {\n        markStaticRoots(node.children[i], isInFor || !!node.for);\n      }\n    }\n    if (node.ifConditions) {\n      for (let i = 1, l = node.ifConditions.length; i < l; i++) {\n        markStaticRoots(node.ifConditions[i].block, isInFor);\n      }\n    }\n  }\n}\n\nfunction isStatic (node) {\n  if (node.type === 2) { // expression\n    return false\n  }\n  if (node.type === 3) { // text\n    return true\n  }\n  return !!(node.pre || (\n    !node.hasBindings && // no dynamic bindings\n    !node.if && !node.for && // not v-if or v-for or v-else\n    !isBuiltInTag(node.tag) && // not a built-in\n    isPlatformReservedTag(node.tag) && // not a component\n    !isDirectChildOfTemplateFor(node) &&\n    Object.keys(node).every(isStaticKey)\n  ))\n}\n\nfunction isDirectChildOfTemplateFor (node) {\n  while (node.parent) {\n    node = node.parent;\n    if (node.tag !== 'template') {\n      return false\n    }\n    if (node.for) {\n      return true\n    }\n  }\n  return false\n}\n\n/*  */\n\nconst fnExpRE = /^([\\w$_]+|\\([^)]*?\\))\\s*=>|^function(?:\\s+[\\w$]+)?\\s*\\(/;\nconst fnInvokeRE = /\\([^)]*?\\);*$/;\nconst simplePathRE = /^[A-Za-z_$][\\w$]*(?:\\.[A-Za-z_$][\\w$]*|\\['[^']*?']|\\[\"[^\"]*?\"]|\\[\\d+]|\\[[A-Za-z_$][\\w$]*])*$/;\n\n// KeyboardEvent.keyCode aliases\nconst keyCodes = {\n  esc: 27,\n  tab: 9,\n  enter: 13,\n  space: 32,\n  up: 38,\n  left: 37,\n  right: 39,\n  down: 40,\n  'delete': [8, 46]\n};\n\n// KeyboardEvent.key aliases\nconst keyNames = {\n  // #7880: IE11 and Edge use `Esc` for Escape key name.\n  esc: ['Esc', 'Escape'],\n  tab: 'Tab',\n  enter: 'Enter',\n  // #9112: IE11 uses `Spacebar` for Space key name.\n  space: [' ', 'Spacebar'],\n  // #7806: IE11 uses key names without `Arrow` prefix for arrow keys.\n  up: ['Up', 'ArrowUp'],\n  left: ['Left', 'ArrowLeft'],\n  right: ['Right', 'ArrowRight'],\n  down: ['Down', 'ArrowDown'],\n  // #9112: IE11 uses `Del` for Delete key name.\n  'delete': ['Backspace', 'Delete', 'Del']\n};\n\n// #4868: modifiers that prevent the execution of the listener\n// need to explicitly return null so that we can determine whether to remove\n// the listener for .once\nconst genGuard = condition => `if(${condition})return null;`;\n\nconst modifierCode = {\n  stop: '$event.stopPropagation();',\n  prevent: '$event.preventDefault();',\n  self: genGuard(`$event.target !== $event.currentTarget`),\n  ctrl: genGuard(`!$event.ctrlKey`),\n  shift: genGuard(`!$event.shiftKey`),\n  alt: genGuard(`!$event.altKey`),\n  meta: genGuard(`!$event.metaKey`),\n  left: genGuard(`'button' in $event && $event.button !== 0`),\n  middle: genGuard(`'button' in $event && $event.button !== 1`),\n  right: genGuard(`'button' in $event && $event.button !== 2`)\n};\n\nfunction genHandlers (\n  events,\n  isNative\n) {\n  const prefix = isNative ? 'nativeOn:' : 'on:';\n  let staticHandlers = ``;\n  let dynamicHandlers = ``;\n  for (const name in events) {\n    const handlerCode = genHandler(events[name]);\n    if (events[name] && events[name].dynamic) {\n      dynamicHandlers += `${name},${handlerCode},`;\n    } else {\n      staticHandlers += `\"${name}\":${handlerCode},`;\n    }\n  }\n  staticHandlers = `{${staticHandlers.slice(0, -1)}}`;\n  if (dynamicHandlers) {\n    return prefix + `_d(${staticHandlers},[${dynamicHandlers.slice(0, -1)}])`\n  } else {\n    return prefix + staticHandlers\n  }\n}\n\nfunction genHandler (handler) {\n  if (!handler) {\n    return 'function(){}'\n  }\n\n  if (Array.isArray(handler)) {\n    return `[${handler.map(handler => genHandler(handler)).join(',')}]`\n  }\n\n  const isMethodPath = simplePathRE.test(handler.value);\n  const isFunctionExpression = fnExpRE.test(handler.value);\n  const isFunctionInvocation = simplePathRE.test(handler.value.replace(fnInvokeRE, ''));\n\n  if (!handler.modifiers) {\n    if (isMethodPath || isFunctionExpression) {\n      return handler.value\n    }\n    return `function($event){${\n      isFunctionInvocation ? `return ${handler.value}` : handler.value\n    }}` // inline statement\n  } else {\n    let code = '';\n    let genModifierCode = '';\n    const keys = [];\n    for (const key in handler.modifiers) {\n      if (modifierCode[key]) {\n        genModifierCode += modifierCode[key];\n        // left/right\n        if (keyCodes[key]) {\n          keys.push(key);\n        }\n      } else if (key === 'exact') {\n        const modifiers = (handler.modifiers);\n        genModifierCode += genGuard(\n          ['ctrl', 'shift', 'alt', 'meta']\n            .filter(keyModifier => !modifiers[keyModifier])\n            .map(keyModifier => `$event.${keyModifier}Key`)\n            .join('||')\n        );\n      } else {\n        keys.push(key);\n      }\n    }\n    if (keys.length) {\n      code += genKeyFilter(keys);\n    }\n    // Make sure modifiers like prevent and stop get executed after key filtering\n    if (genModifierCode) {\n      code += genModifierCode;\n    }\n    const handlerCode = isMethodPath\n      ? `return ${handler.value}.apply(null, arguments)`\n      : isFunctionExpression\n        ? `return (${handler.value}).apply(null, arguments)`\n        : isFunctionInvocation\n          ? `return ${handler.value}`\n          : handler.value;\n    return `function($event){${code}${handlerCode}}`\n  }\n}\n\nfunction genKeyFilter (keys) {\n  return (\n    // make sure the key filters only apply to KeyboardEvents\n    // #9441: can't use 'keyCode' in $event because Chrome autofill fires fake\n    // key events that do not have keyCode property...\n    `if(!$event.type.indexOf('key')&&` +\n    `${keys.map(genFilterCode).join('&&')})return null;`\n  )\n}\n\nfunction genFilterCode (key) {\n  const keyVal = parseInt(key, 10);\n  if (keyVal) {\n    return `$event.keyCode!==${keyVal}`\n  }\n  const keyCode = keyCodes[key];\n  const keyName = keyNames[key];\n  return (\n    `_k($event.keyCode,` +\n    `${JSON.stringify(key)},` +\n    `${JSON.stringify(keyCode)},` +\n    `$event.key,` +\n    `${JSON.stringify(keyName)}` +\n    `)`\n  )\n}\n\n/*  */\n\nfunction on (el, dir) {\n  if (dir.modifiers) {\n    warn(`v-on without argument does not support modifiers.`);\n  }\n  el.wrapListeners = (code) => `_g(${code},${dir.value})`;\n}\n\n/*  */\n\nfunction bind$1 (el, dir) {\n  el.wrapData = (code) => {\n    return `_b(${code},'${el.tag}',${dir.value},${\n      dir.modifiers && dir.modifiers.prop ? 'true' : 'false'\n    }${\n      dir.modifiers && dir.modifiers.sync ? ',true' : ''\n    })`\n  };\n}\n\n/*  */\n\nvar baseDirectives = {\n  on,\n  bind: bind$1,\n  cloak: noop\n};\n\n/*  */\n\n\n\n\n\nclass CodegenState {\n\n\n\n\n\n\n\n\n\n\n  constructor (options) {\n    this.options = options;\n    this.warn = options.warn || baseWarn;\n    this.transforms = pluckModuleFunction(options.modules, 'transformCode');\n    this.dataGenFns = pluckModuleFunction(options.modules, 'genData');\n    this.directives = extend(extend({}, baseDirectives), options.directives);\n    const isReservedTag = options.isReservedTag || no;\n    this.maybeComponent = (el) => !!el.component || !isReservedTag(el.tag);\n    this.onceId = 0;\n    this.staticRenderFns = [];\n    this.pre = false;\n  }\n}\n\n\n\nfunction generate (\n  ast,\n  options\n) {\n  const state = new CodegenState(options);\n  // fix #11483, Root level <script> tags should not be rendered.\n  const code = ast ? (ast.tag === 'script' ? 'null' : genElement(ast, state)) : '_c(\"div\")';\n  return {\n    render: `with(this){return ${code}}`,\n    staticRenderFns: state.staticRenderFns\n  }\n}\n\nfunction genElement (el, state) {\n  if (el.parent) {\n    el.pre = el.pre || el.parent.pre;\n  }\n\n  if (el.staticRoot && !el.staticProcessed) {\n    return genStatic(el, state)\n  } else if (el.once && !el.onceProcessed) {\n    return genOnce(el, state)\n  } else if (el.for && !el.forProcessed) {\n    return genFor(el, state)\n  } else if (el.if && !el.ifProcessed) {\n    return genIf(el, state)\n  } else if (el.tag === 'template' && !el.slotTarget && !state.pre) {\n    return genChildren(el, state) || 'void 0'\n  } else if (el.tag === 'slot') {\n    return genSlot(el, state)\n  } else {\n    // component or element\n    let code;\n    if (el.component) {\n      code = genComponent(el.component, el, state);\n    } else {\n      let data;\n      if (!el.plain || (el.pre && state.maybeComponent(el))) {\n        data = genData$2(el, state);\n      }\n\n      const children = el.inlineTemplate ? null : genChildren(el, state, true);\n      code = `_c('${el.tag}'${\n        data ? `,${data}` : '' // data\n      }${\n        children ? `,${children}` : '' // children\n      })`;\n    }\n    // module transforms\n    for (let i = 0; i < state.transforms.length; i++) {\n      code = state.transforms[i](el, code);\n    }\n    return code\n  }\n}\n\n// hoist static sub-trees out\nfunction genStatic (el, state) {\n  el.staticProcessed = true;\n  // Some elements (templates) need to behave differently inside of a v-pre\n  // node.  All pre nodes are static roots, so we can use this as a location to\n  // wrap a state change and reset it upon exiting the pre node.\n  const originalPreState = state.pre;\n  if (el.pre) {\n    state.pre = el.pre;\n  }\n  state.staticRenderFns.push(`with(this){return ${genElement(el, state)}}`);\n  state.pre = originalPreState;\n  return `_m(${\n    state.staticRenderFns.length - 1\n  }${\n    el.staticInFor ? ',true' : ''\n  })`\n}\n\n// v-once\nfunction genOnce (el, state) {\n  el.onceProcessed = true;\n  if (el.if && !el.ifProcessed) {\n    return genIf(el, state)\n  } else if (el.staticInFor) {\n    let key = '';\n    let parent = el.parent;\n    while (parent) {\n      if (parent.for) {\n        key = parent.key;\n        break\n      }\n      parent = parent.parent;\n    }\n    if (!key) {\n      state.warn(\n        `v-once can only be used inside v-for that is keyed. `,\n        el.rawAttrsMap['v-once']\n      );\n      return genElement(el, state)\n    }\n    return `_o(${genElement(el, state)},${state.onceId++},${key})`\n  } else {\n    return genStatic(el, state)\n  }\n}\n\nfunction genIf (\n  el,\n  state,\n  altGen,\n  altEmpty\n) {\n  el.ifProcessed = true; // avoid recursion\n  return genIfConditions(el.ifConditions.slice(), state, altGen, altEmpty)\n}\n\nfunction genIfConditions (\n  conditions,\n  state,\n  altGen,\n  altEmpty\n) {\n  if (!conditions.length) {\n    return altEmpty || '_e()'\n  }\n\n  const condition = conditions.shift();\n  if (condition.exp) {\n    return `(${condition.exp})?${\n      genTernaryExp(condition.block)\n    }:${\n      genIfConditions(conditions, state, altGen, altEmpty)\n    }`\n  } else {\n    return `${genTernaryExp(condition.block)}`\n  }\n\n  // v-if with v-once should generate code like (a)?_m(0):_m(1)\n  function genTernaryExp (el) {\n    return altGen\n      ? altGen(el, state)\n      : el.once\n        ? genOnce(el, state)\n        : genElement(el, state)\n  }\n}\n\nfunction genFor (\n  el,\n  state,\n  altGen,\n  altHelper\n) {\n  const exp = el.for;\n  const alias = el.alias;\n  const iterator1 = el.iterator1 ? `,${el.iterator1}` : '';\n  const iterator2 = el.iterator2 ? `,${el.iterator2}` : '';\n\n  if (state.maybeComponent(el) &&\n    el.tag !== 'slot' &&\n    el.tag !== 'template' &&\n    !el.key\n  ) {\n    state.warn(\n      `<${el.tag} v-for=\"${alias} in ${exp}\">: component lists rendered with ` +\n      `v-for should have explicit keys. ` +\n      `See https://vuejs.org/guide/list.html#key for more info.`,\n      el.rawAttrsMap['v-for'],\n      true /* tip */\n    );\n  }\n\n  el.forProcessed = true; // avoid recursion\n  return `${altHelper || '_l'}((${exp}),` +\n    `function(${alias}${iterator1}${iterator2}){` +\n      `return ${(altGen || genElement)(el, state)}` +\n    '})'\n}\n\nfunction genData$2 (el, state) {\n  let data = '{';\n\n  // directives first.\n  // directives may mutate the el's other properties before they are generated.\n  const dirs = genDirectives(el, state);\n  if (dirs) data += dirs + ',';\n\n  // key\n  if (el.key) {\n    data += `key:${el.key},`;\n  }\n  // ref\n  if (el.ref) {\n    data += `ref:${el.ref},`;\n  }\n  if (el.refInFor) {\n    data += `refInFor:true,`;\n  }\n  // pre\n  if (el.pre) {\n    data += `pre:true,`;\n  }\n  // record original tag name for components using \"is\" attribute\n  if (el.component) {\n    data += `tag:\"${el.tag}\",`;\n  }\n  // module data generation functions\n  for (let i = 0; i < state.dataGenFns.length; i++) {\n    data += state.dataGenFns[i](el);\n  }\n  // attributes\n  if (el.attrs) {\n    data += `attrs:${genProps(el.attrs)},`;\n  }\n  // DOM props\n  if (el.props) {\n    data += `domProps:${genProps(el.props)},`;\n  }\n  // event handlers\n  if (el.events) {\n    data += `${genHandlers(el.events, false)},`;\n  }\n  if (el.nativeEvents) {\n    data += `${genHandlers(el.nativeEvents, true)},`;\n  }\n  // slot target\n  // only for non-scoped slots\n  if (el.slotTarget && !el.slotScope) {\n    data += `slot:${el.slotTarget},`;\n  }\n  // scoped slots\n  if (el.scopedSlots) {\n    data += `${genScopedSlots(el, el.scopedSlots, state)},`;\n  }\n  // component v-model\n  if (el.model) {\n    data += `model:{value:${\n      el.model.value\n    },callback:${\n      el.model.callback\n    },expression:${\n      el.model.expression\n    }},`;\n  }\n  // inline-template\n  if (el.inlineTemplate) {\n    const inlineTemplate = genInlineTemplate(el, state);\n    if (inlineTemplate) {\n      data += `${inlineTemplate},`;\n    }\n  }\n  data = data.replace(/,$/, '') + '}';\n  // v-bind dynamic argument wrap\n  // v-bind with dynamic arguments must be applied using the same v-bind object\n  // merge helper so that class/style/mustUseProp attrs are handled correctly.\n  if (el.dynamicAttrs) {\n    data = `_b(${data},\"${el.tag}\",${genProps(el.dynamicAttrs)})`;\n  }\n  // v-bind data wrap\n  if (el.wrapData) {\n    data = el.wrapData(data);\n  }\n  // v-on data wrap\n  if (el.wrapListeners) {\n    data = el.wrapListeners(data);\n  }\n  return data\n}\n\nfunction genDirectives (el, state) {\n  const dirs = el.directives;\n  if (!dirs) return\n  let res = 'directives:[';\n  let hasRuntime = false;\n  let i, l, dir, needRuntime;\n  for (i = 0, l = dirs.length; i < l; i++) {\n    dir = dirs[i];\n    needRuntime = true;\n    const gen = state.directives[dir.name];\n    if (gen) {\n      // compile-time directive that manipulates AST.\n      // returns true if it also needs a runtime counterpart.\n      needRuntime = !!gen(el, dir, state.warn);\n    }\n    if (needRuntime) {\n      hasRuntime = true;\n      res += `{name:\"${dir.name}\",rawName:\"${dir.rawName}\"${\n        dir.value ? `,value:(${dir.value}),expression:${JSON.stringify(dir.value)}` : ''\n      }${\n        dir.arg ? `,arg:${dir.isDynamicArg ? dir.arg : `\"${dir.arg}\"`}` : ''\n      }${\n        dir.modifiers ? `,modifiers:${JSON.stringify(dir.modifiers)}` : ''\n      }},`;\n    }\n  }\n  if (hasRuntime) {\n    return res.slice(0, -1) + ']'\n  }\n}\n\nfunction genInlineTemplate (el, state) {\n  const ast = el.children[0];\n  if (el.children.length !== 1 || ast.type !== 1) {\n    state.warn(\n      'Inline-template components must have exactly one child element.',\n      { start: el.start }\n    );\n  }\n  if (ast && ast.type === 1) {\n    const inlineRenderFns = generate(ast, state.options);\n    return `inlineTemplate:{render:function(){${\n      inlineRenderFns.render\n    }},staticRenderFns:[${\n      inlineRenderFns.staticRenderFns.map(code => `function(){${code}}`).join(',')\n    }]}`\n  }\n}\n\nfunction genScopedSlots (\n  el,\n  slots,\n  state\n) {\n  // by default scoped slots are considered \"stable\", this allows child\n  // components with only scoped slots to skip forced updates from parent.\n  // but in some cases we have to bail-out of this optimization\n  // for example if the slot contains dynamic names, has v-if or v-for on them...\n  let needsForceUpdate = el.for || Object.keys(slots).some(key => {\n    const slot = slots[key];\n    return (\n      slot.slotTargetDynamic ||\n      slot.if ||\n      slot.for ||\n      containsSlotChild(slot) // is passing down slot from parent which may be dynamic\n    )\n  });\n\n  // #9534: if a component with scoped slots is inside a conditional branch,\n  // it's possible for the same component to be reused but with different\n  // compiled slot content. To avoid that, we generate a unique key based on\n  // the generated code of all the slot contents.\n  let needsKey = !!el.if;\n\n  // OR when it is inside another scoped slot or v-for (the reactivity may be\n  // disconnected due to the intermediate scope variable)\n  // #9438, #9506\n  // TODO: this can be further optimized by properly analyzing in-scope bindings\n  // and skip force updating ones that do not actually use scope variables.\n  if (!needsForceUpdate) {\n    let parent = el.parent;\n    while (parent) {\n      if (\n        (parent.slotScope && parent.slotScope !== emptySlotScopeToken) ||\n        parent.for\n      ) {\n        needsForceUpdate = true;\n        break\n      }\n      if (parent.if) {\n        needsKey = true;\n      }\n      parent = parent.parent;\n    }\n  }\n\n  const generatedSlots = Object.keys(slots)\n    .map(key => genScopedSlot(slots[key], state))\n    .join(',');\n\n  return `scopedSlots:_u([${generatedSlots}]${\n    needsForceUpdate ? `,null,true` : ``\n  }${\n    !needsForceUpdate && needsKey ? `,null,false,${hash(generatedSlots)}` : ``\n  })`\n}\n\nfunction hash(str) {\n  let hash = 5381;\n  let i = str.length;\n  while(i) {\n    hash = (hash * 33) ^ str.charCodeAt(--i);\n  }\n  return hash >>> 0\n}\n\nfunction containsSlotChild (el) {\n  if (el.type === 1) {\n    if (el.tag === 'slot') {\n      return true\n    }\n    return el.children.some(containsSlotChild)\n  }\n  return false\n}\n\nfunction genScopedSlot (\n  el,\n  state\n) {\n  const isLegacySyntax = el.attrsMap['slot-scope'];\n  if (el.if && !el.ifProcessed && !isLegacySyntax) {\n    return genIf(el, state, genScopedSlot, `null`)\n  }\n  if (el.for && !el.forProcessed) {\n    return genFor(el, state, genScopedSlot)\n  }\n  const slotScope = el.slotScope === emptySlotScopeToken\n    ? ``\n    : String(el.slotScope);\n  const fn = `function(${slotScope}){` +\n    `return ${el.tag === 'template'\n      ? el.if && isLegacySyntax\n        ? `(${el.if})?${genChildren(el, state) || 'undefined'}:undefined`\n        : genChildren(el, state) || 'undefined'\n      : genElement(el, state)\n    }}`;\n  // reverse proxy v-slot without scope on this.$slots\n  const reverseProxy = slotScope ? `` : `,proxy:true`;\n  return `{key:${el.slotTarget || `\"default\"`},fn:${fn}${reverseProxy}}`\n}\n\nfunction genChildren (\n  el,\n  state,\n  checkSkip,\n  altGenElement,\n  altGenNode\n) {\n  const children = el.children;\n  if (children.length) {\n    const el = children[0];\n    // optimize single v-for\n    if (children.length === 1 &&\n      el.for &&\n      el.tag !== 'template' &&\n      el.tag !== 'slot'\n    ) {\n      const normalizationType = checkSkip\n        ? state.maybeComponent(el) ? `,1` : `,0`\n        : ``;\n      return `${(altGenElement || genElement)(el, state)}${normalizationType}`\n    }\n    const normalizationType = checkSkip\n      ? getNormalizationType(children, state.maybeComponent)\n      : 0;\n    const gen = altGenNode || genNode;\n    return `[${children.map(c => gen(c, state)).join(',')}]${\n      normalizationType ? `,${normalizationType}` : ''\n    }`\n  }\n}\n\n// determine the normalization needed for the children array.\n// 0: no normalization needed\n// 1: simple normalization needed (possible 1-level deep nested array)\n// 2: full normalization needed\nfunction getNormalizationType (\n  children,\n  maybeComponent\n) {\n  let res = 0;\n  for (let i = 0; i < children.length; i++) {\n    const el = children[i];\n    if (el.type !== 1) {\n      continue\n    }\n    if (needsNormalization(el) ||\n        (el.ifConditions && el.ifConditions.some(c => needsNormalization(c.block)))) {\n      res = 2;\n      break\n    }\n    if (maybeComponent(el) ||\n        (el.ifConditions && el.ifConditions.some(c => maybeComponent(c.block)))) {\n      res = 1;\n    }\n  }\n  return res\n}\n\nfunction needsNormalization (el) {\n  return el.for !== undefined || el.tag === 'template' || el.tag === 'slot'\n}\n\nfunction genNode (node, state) {\n  if (node.type === 1) {\n    return genElement(node, state)\n  } else if (node.type === 3 && node.isComment) {\n    return genComment(node)\n  } else {\n    return genText(node)\n  }\n}\n\nfunction genText (text) {\n  return `_v(${text.type === 2\n    ? text.expression // no need for () because already wrapped in _s()\n    : transformSpecialNewlines(JSON.stringify(text.text))\n  })`\n}\n\nfunction genComment (comment) {\n  return `_e(${JSON.stringify(comment.text)})`\n}\n\nfunction genSlot (el, state) {\n  const slotName = el.slotName || '\"default\"';\n  const children = genChildren(el, state);\n  let res = `_t(${slotName}${children ? `,function(){return ${children}}` : ''}`;\n  const attrs = el.attrs || el.dynamicAttrs\n    ? genProps((el.attrs || []).concat(el.dynamicAttrs || []).map(attr => ({\n        // slot props are camelized\n        name: camelize(attr.name),\n        value: attr.value,\n        dynamic: attr.dynamic\n      })))\n    : null;\n  const bind$$1 = el.attrsMap['v-bind'];\n  if ((attrs || bind$$1) && !children) {\n    res += `,null`;\n  }\n  if (attrs) {\n    res += `,${attrs}`;\n  }\n  if (bind$$1) {\n    res += `${attrs ? '' : ',null'},${bind$$1}`;\n  }\n  return res + ')'\n}\n\n// componentName is el.component, take it as argument to shun flow's pessimistic refinement\nfunction genComponent (\n  componentName,\n  el,\n  state\n) {\n  const children = el.inlineTemplate ? null : genChildren(el, state, true);\n  return `_c(${componentName},${genData$2(el, state)}${\n    children ? `,${children}` : ''\n  })`\n}\n\nfunction genProps (props) {\n  let staticProps = ``;\n  let dynamicProps = ``;\n  for (let i = 0; i < props.length; i++) {\n    const prop = props[i];\n    const value = transformSpecialNewlines(prop.value);\n    if (prop.dynamic) {\n      dynamicProps += `${prop.name},${value},`;\n    } else {\n      staticProps += `\"${prop.name}\":${value},`;\n    }\n  }\n  staticProps = `{${staticProps.slice(0, -1)}}`;\n  if (dynamicProps) {\n    return `_d(${staticProps},[${dynamicProps.slice(0, -1)}])`\n  } else {\n    return staticProps\n  }\n}\n\n// #3895, #4268\nfunction transformSpecialNewlines (text) {\n  return text\n    .replace(/\\u2028/g, '\\\\u2028')\n    .replace(/\\u2029/g, '\\\\u2029')\n}\n\n/*  */\n\n\n\n// these keywords should not appear inside expressions, but operators like\n// typeof, instanceof and in are allowed\nconst prohibitedKeywordRE = new RegExp('\\\\b' + (\n  'do,if,for,let,new,try,var,case,else,with,await,break,catch,class,const,' +\n  'super,throw,while,yield,delete,export,import,return,switch,default,' +\n  'extends,finally,continue,debugger,function,arguments'\n).split(',').join('\\\\b|\\\\b') + '\\\\b');\n\n// these unary operators should not be used as property/method names\nconst unaryOperatorsRE = new RegExp('\\\\b' + (\n  'delete,typeof,void'\n).split(',').join('\\\\s*\\\\([^\\\\)]*\\\\)|\\\\b') + '\\\\s*\\\\([^\\\\)]*\\\\)');\n\n// strip strings in expressions\nconst stripStringRE = /'(?:[^'\\\\]|\\\\.)*'|\"(?:[^\"\\\\]|\\\\.)*\"|`(?:[^`\\\\]|\\\\.)*\\$\\{|\\}(?:[^`\\\\]|\\\\.)*`|`(?:[^`\\\\]|\\\\.)*`/g;\n\n// detect problematic expressions in a template\nfunction detectErrors (ast, warn) {\n  if (ast) {\n    checkNode(ast, warn);\n  }\n}\n\nfunction checkNode (node, warn) {\n  if (node.type === 1) {\n    for (const name in node.attrsMap) {\n      if (dirRE.test(name)) {\n        const value = node.attrsMap[name];\n        if (value) {\n          const range = node.rawAttrsMap[name];\n          if (name === 'v-for') {\n            checkFor(node, `v-for=\"${value}\"`, warn, range);\n          } else if (name === 'v-slot' || name[0] === '#') {\n            checkFunctionParameterExpression(value, `${name}=\"${value}\"`, warn, range);\n          } else if (onRE.test(name)) {\n            checkEvent(value, `${name}=\"${value}\"`, warn, range);\n          } else {\n            checkExpression(value, `${name}=\"${value}\"`, warn, range);\n          }\n        }\n      }\n    }\n    if (node.children) {\n      for (let i = 0; i < node.children.length; i++) {\n        checkNode(node.children[i], warn);\n      }\n    }\n  } else if (node.type === 2) {\n    checkExpression(node.expression, node.text, warn, node);\n  }\n}\n\nfunction checkEvent (exp, text, warn, range) {\n  const stripped = exp.replace(stripStringRE, '');\n  const keywordMatch = stripped.match(unaryOperatorsRE);\n  if (keywordMatch && stripped.charAt(keywordMatch.index - 1) !== '$') {\n    warn(\n      `avoid using JavaScript unary operator as property name: ` +\n      `\"${keywordMatch[0]}\" in expression ${text.trim()}`,\n      range\n    );\n  }\n  checkExpression(exp, text, warn, range);\n}\n\nfunction checkFor (node, text, warn, range) {\n  checkExpression(node.for || '', text, warn, range);\n  checkIdentifier(node.alias, 'v-for alias', text, warn, range);\n  checkIdentifier(node.iterator1, 'v-for iterator', text, warn, range);\n  checkIdentifier(node.iterator2, 'v-for iterator', text, warn, range);\n}\n\nfunction checkIdentifier (\n  ident,\n  type,\n  text,\n  warn,\n  range\n) {\n  if (typeof ident === 'string') {\n    try {\n      new Function(`var ${ident}=_`);\n    } catch (e) {\n      warn(`invalid ${type} \"${ident}\" in expression: ${text.trim()}`, range);\n    }\n  }\n}\n\nfunction checkExpression (exp, text, warn, range) {\n  try {\n    new Function(`return ${exp}`);\n  } catch (e) {\n    const keywordMatch = exp.replace(stripStringRE, '').match(prohibitedKeywordRE);\n    if (keywordMatch) {\n      warn(\n        `avoid using JavaScript keyword as property name: ` +\n        `\"${keywordMatch[0]}\"\\n  Raw expression: ${text.trim()}`,\n        range\n      );\n    } else {\n      warn(\n        `invalid expression: ${e.message} in\\n\\n` +\n        `    ${exp}\\n\\n` +\n        `  Raw expression: ${text.trim()}\\n`,\n        range\n      );\n    }\n  }\n}\n\nfunction checkFunctionParameterExpression (exp, text, warn, range) {\n  try {\n    new Function(exp, '');\n  } catch (e) {\n    warn(\n      `invalid function parameter expression: ${e.message} in\\n\\n` +\n      `    ${exp}\\n\\n` +\n      `  Raw expression: ${text.trim()}\\n`,\n      range\n    );\n  }\n}\n\n/*  */\n\nconst range = 2;\n\nfunction generateCodeFrame (\n  source,\n  start = 0,\n  end = source.length\n) {\n  const lines = source.split(/\\r?\\n/);\n  let count = 0;\n  const res = [];\n  for (let i = 0; i < lines.length; i++) {\n    count += lines[i].length + 1;\n    if (count >= start) {\n      for (let j = i - range; j <= i + range || end > count; j++) {\n        if (j < 0 || j >= lines.length) continue\n        res.push(`${j + 1}${repeat(` `, 3 - String(j + 1).length)}|  ${lines[j]}`);\n        const lineLength = lines[j].length;\n        if (j === i) {\n          // push underline\n          const pad = start - (count - lineLength) + 1;\n          const length = end > count ? lineLength - pad : end - start;\n          res.push(`   |  ` + repeat(` `, pad) + repeat(`^`, length));\n        } else if (j > i) {\n          if (end > count) {\n            const length = Math.min(end - count, lineLength);\n            res.push(`   |  ` + repeat(`^`, length));\n          }\n          count += lineLength + 1;\n        }\n      }\n      break\n    }\n  }\n  return res.join('\\n')\n}\n\nfunction repeat (str, n) {\n  let result = '';\n  if (n > 0) {\n    while (true) { // eslint-disable-line\n      if (n & 1) result += str;\n      n >>>= 1;\n      if (n <= 0) break\n      str += str;\n    }\n  }\n  return result\n}\n\n/*  */\n\n\n\nfunction createFunction (code, errors) {\n  try {\n    return new Function(code)\n  } catch (err) {\n    errors.push({ err, code });\n    return noop\n  }\n}\n\nfunction createCompileToFunctionFn (compile) {\n  const cache = Object.create(null);\n\n  return function compileToFunctions (\n    template,\n    options,\n    vm\n  ) {\n    options = extend({}, options);\n    const warn$$1 = options.warn || warn;\n    delete options.warn;\n\n    /* istanbul ignore if */\n    {\n      // detect possible CSP restriction\n      try {\n        new Function('return 1');\n      } catch (e) {\n        if (e.toString().match(/unsafe-eval|CSP/)) {\n          warn$$1(\n            'It seems you are using the standalone build of Vue.js in an ' +\n            'environment with Content Security Policy that prohibits unsafe-eval. ' +\n            'The template compiler cannot work in this environment. Consider ' +\n            'relaxing the policy to allow unsafe-eval or pre-compiling your ' +\n            'templates into render functions.'\n          );\n        }\n      }\n    }\n\n    // check cache\n    const key = options.delimiters\n      ? String(options.delimiters) + template\n      : template;\n    if (cache[key]) {\n      return cache[key]\n    }\n\n    // compile\n    const compiled = compile(template, options);\n\n    // check compilation errors/tips\n    {\n      if (compiled.errors && compiled.errors.length) {\n        if (options.outputSourceRange) {\n          compiled.errors.forEach(e => {\n            warn$$1(\n              `Error compiling template:\\n\\n${e.msg}\\n\\n` +\n              generateCodeFrame(template, e.start, e.end),\n              vm\n            );\n          });\n        } else {\n          warn$$1(\n            `Error compiling template:\\n\\n${template}\\n\\n` +\n            compiled.errors.map(e => `- ${e}`).join('\\n') + '\\n',\n            vm\n          );\n        }\n      }\n      if (compiled.tips && compiled.tips.length) {\n        if (options.outputSourceRange) {\n          compiled.tips.forEach(e => tip(e.msg, vm));\n        } else {\n          compiled.tips.forEach(msg => tip(msg, vm));\n        }\n      }\n    }\n\n    // turn code into functions\n    const res = {};\n    const fnGenErrors = [];\n    res.render = createFunction(compiled.render, fnGenErrors);\n    res.staticRenderFns = compiled.staticRenderFns.map(code => {\n      return createFunction(code, fnGenErrors)\n    });\n\n    // check function generation errors.\n    // this should only happen if there is a bug in the compiler itself.\n    // mostly for codegen development use\n    /* istanbul ignore if */\n    {\n      if ((!compiled.errors || !compiled.errors.length) && fnGenErrors.length) {\n        warn$$1(\n          `Failed to generate render function:\\n\\n` +\n          fnGenErrors.map(({ err, code }) => `${err.toString()} in\\n\\n${code}\\n`).join('\\n'),\n          vm\n        );\n      }\n    }\n\n    return (cache[key] = res)\n  }\n}\n\n/*  */\n\nfunction createCompilerCreator (baseCompile) {\n  return function createCompiler (baseOptions) {\n    function compile (\n      template,\n      options\n    ) {\n      const finalOptions = Object.create(baseOptions);\n      const errors = [];\n      const tips = [];\n\n      let warn = (msg, range, tip) => {\n        (tip ? tips : errors).push(msg);\n      };\n\n      if (options) {\n        if (options.outputSourceRange) {\n          // $flow-disable-line\n          const leadingSpaceLength = template.match(/^\\s*/)[0].length;\n\n          warn = (msg, range, tip) => {\n            const data = { msg };\n            if (range) {\n              if (range.start != null) {\n                data.start = range.start + leadingSpaceLength;\n              }\n              if (range.end != null) {\n                data.end = range.end + leadingSpaceLength;\n              }\n            }\n            (tip ? tips : errors).push(data);\n          };\n        }\n        // merge custom modules\n        if (options.modules) {\n          finalOptions.modules =\n            (baseOptions.modules || []).concat(options.modules);\n        }\n        // merge custom directives\n        if (options.directives) {\n          finalOptions.directives = extend(\n            Object.create(baseOptions.directives || null),\n            options.directives\n          );\n        }\n        // copy other options\n        for (const key in options) {\n          if (key !== 'modules' && key !== 'directives') {\n            finalOptions[key] = options[key];\n          }\n        }\n      }\n\n      finalOptions.warn = warn;\n\n      const compiled = baseCompile(template.trim(), finalOptions);\n      {\n        detectErrors(compiled.ast, warn);\n      }\n      compiled.errors = errors;\n      compiled.tips = tips;\n      return compiled\n    }\n\n    return {\n      compile,\n      compileToFunctions: createCompileToFunctionFn(compile)\n    }\n  }\n}\n\n/*  */\n\n// `createCompilerCreator` allows creating compilers that use alternative\n// parser/optimizer/codegen, e.g the SSR optimizing compiler.\n// Here we just export a default compiler using the default parts.\nconst createCompiler = createCompilerCreator(function baseCompile (\n  template,\n  options\n) {\n  const ast = parse(template.trim(), options);\n  if (options.optimize !== false) {\n    optimize(ast, options);\n  }\n  const code = generate(ast, options);\n  return {\n    ast,\n    render: code.render,\n    staticRenderFns: code.staticRenderFns\n  }\n});\n\n/*  */\n\nconst { compile, compileToFunctions } = createCompiler(baseOptions);\n\n/*  */\n\n// check whether current browser encodes a char inside attribute values\nlet div;\nfunction getShouldDecode (href) {\n  div = div || document.createElement('div');\n  div.innerHTML = href ? `<a href=\"\\n\"/>` : `<div a=\"\\n\"/>`;\n  return div.innerHTML.indexOf('&#10;') > 0\n}\n\n// #3663: IE encodes newlines inside attribute values while other browsers don't\nconst shouldDecodeNewlines = inBrowser ? getShouldDecode(false) : false;\n// #6828: chrome encodes content in a[href]\nconst shouldDecodeNewlinesForHref = inBrowser ? getShouldDecode(true) : false;\n\n/*  */\n\nconst idToTemplate = cached(id => {\n  const el = query(id);\n  return el && el.innerHTML\n});\n\nconst mount = Vue.prototype.$mount;\nVue.prototype.$mount = function (\n  el,\n  hydrating\n) {\n  el = el && query(el);\n\n  /* istanbul ignore if */\n  if (el === document.body || el === document.documentElement) {\n    warn(\n      `Do not mount Vue to <html> or <body> - mount to normal elements instead.`\n    );\n    return this\n  }\n\n  const options = this.$options;\n  // resolve template/el and convert to render function\n  if (!options.render) {\n    let template = options.template;\n    if (template) {\n      if (typeof template === 'string') {\n        if (template.charAt(0) === '#') {\n          template = idToTemplate(template);\n          /* istanbul ignore if */\n          if (!template) {\n            warn(\n              `Template element not found or is empty: ${options.template}`,\n              this\n            );\n          }\n        }\n      } else if (template.nodeType) {\n        template = template.innerHTML;\n      } else {\n        {\n          warn('invalid template option:' + template, this);\n        }\n        return this\n      }\n    } else if (el) {\n      template = getOuterHTML(el);\n    }\n    if (template) {\n      /* istanbul ignore if */\n      if (config.performance && mark) {\n        mark('compile');\n      }\n\n      const { render, staticRenderFns } = compileToFunctions(template, {\n        outputSourceRange: \"development\" !== 'production',\n        shouldDecodeNewlines,\n        shouldDecodeNewlinesForHref,\n        delimiters: options.delimiters,\n        comments: options.comments\n      }, this);\n      options.render = render;\n      options.staticRenderFns = staticRenderFns;\n\n      /* istanbul ignore if */\n      if (config.performance && mark) {\n        mark('compile end');\n        measure(`vue ${this._name} compile`, 'compile', 'compile end');\n      }\n    }\n  }\n  return mount.call(this, el, hydrating)\n};\n\n/**\n * Get outerHTML of elements, taking care\n * of SVG elements in IE as well.\n */\nfunction getOuterHTML (el) {\n  if (el.outerHTML) {\n    return el.outerHTML\n  } else {\n    const container = document.createElement('div');\n    container.appendChild(el.cloneNode(true));\n    return container.innerHTML\n  }\n}\n\nVue.compile = compileToFunctions;\n// origin-end\n\nimport {BitrixVue} from \"./bitrixvue\";\nBitrixVue.developerMode = true;\nconst BitrixVueInstance = new BitrixVue(Vue);\n\nBitrixVueInstance.developerMode = true;\nexport {BitrixVueInstance as BitrixVue, BitrixVueInstance as Vue, Vue as VueVendor, Vue as VueVendorV2};",null]}