{"version":3,"sources":["webpack:///./node_modules/vue-router/dist/vue-router.esm.js","webpack:///./node_modules/@wealthbar/i18n/dist/index.js","webpack:///./node_modules/@wealthbar/i18n/dist/translate.js","webpack:///./node_modules/@wealthbar/i18n/dist/gettext.js","webpack:///./node_modules/@wealthbar/i18n/dist/state.js","webpack:///./node_modules/@wealthbar/i18n/dist/component_registry.js","webpack:///./node_modules/@wealthbar/i18n/dist/language_registry.js","webpack:///./node_modules/@wealthbar/i18n/dist/mixin.js","webpack:///./node_modules/gettext.js/lib/gettext.js","webpack:///./node_modules/@wealthbar/i18n/dist/directive.js","webpack:///./node_modules/@wealthbar/i18n/dist/html_to_msgid.js","webpack:///./node_modules/@wealthbar/i18n/dist/detect_language.js","webpack:///./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack:///./node_modules/@wealthbar/i18n/dist/change_language.js","webpack:///./node_modules/css-loader/dist/runtime/api.js","webpack:///./node_modules/vue/dist/vue.runtime.esm.js","webpack:///./node_modules/vue-style-loader/lib/listToStyles.js","webpack:///./node_modules/vue-style-loader/lib/addStylesClient.js"],"names":["isError","err","Object","prototype","toString","call","indexOf","View","name","functional","props","type","String","default","render","_","ref","children","parent","data","routerView","h","$createElement","route","$route","cache","_routerViewCache","depth","inactive","_routerRoot","$vnode","_inactive","$parent","routerViewDepth","matched","component","components","registerRouteInstance","vm","val","current","instances","hook","prepatch","vnode","componentInstance","propsToPass","config","params","undefined","resolveProps","to","from","key","extend","attrs","encodeReserveRE","encodeReserveReplacer","c","charCodeAt","commaRE","encode","str","encodeURIComponent","replace","decode","decodeURIComponent","parseQuery","query","res","trim","split","forEach","param","parts","shift","length","join","Array","isArray","push","stringifyQuery","obj","keys","map","result","val2","filter","x","trailingSlashRE","createRoute","record","location","redirectedFrom","router","stringifyQuery$$1","options","clone","e","meta","path","hash","fullPath","getFullPath","formatMatch","freeze","value","START","unshift","_stringifyQuery","isSameRoute","a","b","isObjectEqual","aKeys","bKeys","every","aVal","bVal","_Vue","Link","required","tag","exact","Boolean","append","activeClass","exactActiveClass","event","this$1","this","$router","resolve","href","classes","globalActiveClass","linkActiveClass","globalExactActiveClass","linkExactActiveClass","activeClassFallback","exactActiveClassFallback","compareTarget","target","queryIncludes","isIncludedRoute","handler","guardEvent","on","click","class","findAnchor","child","i","$slots","isStatic","util","metaKey","altKey","ctrlKey","shiftKey","defaultPrevented","button","currentTarget","getAttribute","test","preventDefault","inBrowser","window","resolvePath","relative","base","firstChar","charAt","stack","pop","segments","segment","cleanPath","isarray","arr","pathToRegexp_1","pathToRegexp","parse_1","parse","compile_1","tokensToFunction","tokensToFunction_1","tokensToRegExp_1","tokensToRegExp","PATH_REGEXP","RegExp","tokens","index","defaultDelimiter","delimiter","exec","m","escaped","offset","slice","next","prefix","capture","group","modifier","asterisk","partial","repeat","optional","pattern","escapeGroup","escapeString","substr","encodeURIComponentPretty","encodeURI","toUpperCase","matches","opts","pretty","token","TypeError","JSON","stringify","j","attachKeys","re","flags","sensitive","strict","end","endsWithDelimiter","groups","source","match","regexpToRegexp","arrayToRegexp","stringToRegexp","compile","regexpCompileCache","create","fillParams","routeMsg","createRouteMap","routes","oldPathList","oldPathMap","oldNameMap","pathList","pathMap","nameMap","addRouteRecord","matchAs","pathToRegexpOptions","normalizedPath","normalizePath","caseSensitive","regex","compileRouteRegex","redirect","beforeEnter","childMatchAs","alias","aliasRoute","l","splice","normalizeLocation","raw","_normalized","assign","rawPath","parsedPath","hashIndex","queryIndex","parsePath","basePath","extraQuery","_parseQuery","parsedQuery","resolveQuery","createMatcher","currentRoute","_createRoute","paramNames","record$1","matchRoute","originalRedirect","hasOwnProperty","resolveRecordPath","aliasedMatch","aliasedRecord","addRoutes","len","positionStore","setupScroll","history","replaceState","getStateKey","addEventListener","saveScrollPosition","state","_key","handleScroll","isPop","app","behavior","scrollBehavior","$nextTick","position","getScrollPosition","shouldScroll","then","scrollToPosition","catch","pageXOffset","y","pageYOffset","isValidPosition","isNumber","normalizePosition","v","isObject","selector","el","document","querySelector","docRect","documentElement","getBoundingClientRect","elRect","left","top","getElementPosition","scrollTo","ua","supportsPushState","navigator","userAgent","Time","performance","now","Date","genKey","toFixed","pushState","url","runQueue","queue","fn","cb","step","resolveAsyncComponents","hasAsync","pending","error","flatMapComponents","def","cid","once","resolvedDef","__esModule","hasSymbol","Symbol","toStringTag","resolved","reject","reason","msg","Error","comp","flatten","concat","apply","called","args","arguments","History","baseEl","normalizeBase","ready","readyCbs","readyErrorCbs","errorCbs","extractGuards","records","bind","reverse","guards","instance","guard","extractGuard","bindGuard","listen","onReady","errorCb","onError","transitionTo","onComplete","onAbort","confirmTransition","updateRoute","ensureURL","abort","console","max","Math","updated","activated","deactivated","resolveQueue","extractLeaveGuards","beforeHooks","extractUpdateHooks","iterator","postEnterCbs","cbs","isValid","poll","setTimeout","bindEnterGuard","extractEnterGuards","resolveHooks","prev","afterHooks","HTML5History","History$$1","expectScroll","initLocation","getLocation","__proto__","constructor","go","n","fromRoute","getCurrentLocation","pathname","search","HashHistory","fallback","checkFallback","ensureSlash","setupListeners","supportsScroll","getHash","replaceHash","pushHash","getUrl","AbstractHistory","targetIndex","VueRouter","apps","matcher","mode","prototypeAccessors","configurable","registerHook","list","get","init","setupHashListener","_route","beforeEach","beforeResolve","afterEach","back","forward","getMatchedComponents","createHref","normalizedTo","defineProperties","install","Vue","installed","isDef","registerInstance","callVal","$options","_parentVnode","mixin","beforeCreate","_router","defineReactive","destroyed","defineProperty","strats","optionMergeStrategies","beforeRouteEnter","beforeRouteLeave","beforeRouteUpdate","created","version","use","__importDefault","mod","exports","mixin_1","i18nMixin","detect_language_1","detectLanguage","language_registry_1","registerLanguages","translate_1","translate","change_language_1","changeLanguage","$t","__read","o","r","ar","done","__spread","gettext_1","gettext","text","context","msgid","validContext","gettext_js_1","ctor","i18n","_i","setLocale","setMessages","domain","locale","messages","pluralForm","_a","$currentLang","componentRegistry","Set","__awaiter","thisArg","_arguments","P","generator","Promise","fulfilled","rejected","__generator","body","f","t","g","label","sent","trys","ops","verb","op","loaders","languages","loadLanguage","lang","loaded","state_1","component_registry_1","directive_1","directives","computed","$lang","methods","$setLang","add","delete","undef","__version","defaults","plural_func","nplurals","plural","ctxt_delimiter","fromCharCode","_plural_funcs","_locale","_domain","_dictionary","_plural_forms","_ctxt_delimiter","plural_forms","strfmt","fmt","p1","expand_locale","locales","lastIndexOf","getPluralFunc","plural_form","Function","__","_n","ngettext","_p","pgettext","loadJSON","jsonData","headers","getLocale","textdomain","dcnpgettext","msgid_plural","msgctxt","translation","exist","module","html_to_msgid_1","directive","htmlToMsgId","dataset","innerHTML","update","unescapeEntities","html","language","normalizeComponent","scriptExports","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","_compiled","_scopeId","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","$root","shadowRoot","_injectStyles","originalRender","existing","debug","$data","$forceUpdate","useSourceMap","item","content","cssMapping","btoa","sourceMapping","sourceMap","unescape","sourceURLs","sources","sourceRoot","cssWithMappingToString","modules","mediaQuery","alreadyImportedModules","id","emptyObject","isUndef","isTrue","isPrimitive","_toString","isPlainObject","isRegExp","isValidArrayIndex","parseFloat","floor","isFinite","isPromise","toNumber","isNaN","makeMap","expectsLowerCase","toLowerCase","isReservedAttribute","remove","hasOwn","cached","camelizeRE","camelize","capitalize","hyphenateRE","hyphenate","ctx","boundFn","_length","toArray","start","ret","_from","toObject","noop","no","identity","looseEqual","isObjectA","isObjectB","isArrayA","isArrayB","getTime","keysA","keysB","looseIndexOf","ASSET_TYPES","LIFECYCLE_HOOKS","silent","productionTip","devtools","errorHandler","warnHandler","ignoredElements","keyCodes","isReservedTag","isReservedAttr","isUnknownElement","getTagNamespace","parsePlatformTagName","mustUseProp","async","_lifecycleHooks","unicodeRegExp","enumerable","writable","bailRE","_isServer","hasProto","inWeex","WXEnvironment","platform","weexPlatform","UA","isIE","isIE9","isEdge","isIOS","isFF","nativeWatch","watch","supportsPassive","isServerRendering","global","env","VUE_ENV","__VUE_DEVTOOLS_GLOBAL_HOOK__","isNative","Ctor","_Set","Reflect","ownKeys","set","has","clear","warn","uid","Dep","subs","addSub","sub","removeSub","depend","addDep","notify","targetStack","pushTarget","popTarget","VNode","elm","componentOptions","asyncFactory","ns","fnContext","fnOptions","fnScopeId","isRootInsert","isComment","isCloned","isOnce","asyncMeta","isAsyncPlaceholder","createEmptyVNode","node","createTextVNode","cloneVNode","cloned","arrayProto","arrayMethods","method","original","inserted","ob","__ob__","observeArray","dep","arrayKeys","getOwnPropertyNames","shouldObserve","toggleObserving","Observer","vmCount","src","protoAugment","copyAugment","walk","observe","asRootData","isExtensible","_isVue","defineReactive$$1","customSetter","shallow","property","getOwnPropertyDescriptor","getter","setter","childOb","dependArray","newVal","del","items","mergeData","toVal","fromVal","mergeDataOrFn","parentVal","childVal","instanceData","defaultData","mergeHook","hooks","dedupeHooks","mergeAssets","key$1","inject","provide","defaultStrat","mergeOptions","normalizeProps","normalized","normalizeInject","dirs","def$$1","normalizeDirectives","_base","extends","mixins","mergeField","strat","resolveAsset","warnMissing","assets","camelizedId","PascalCaseId","validateProp","propOptions","propsData","prop","absent","booleanIndex","getTypeIndex","stringIndex","_props","getType","getPropDefaultValue","prevShouldObserve","isSameType","expectedTypes","handleError","info","cur","errorCaptured","globalHandleError","invokeWithErrorHandling","_handled","logError","timerFunc","isUsingMicroTask","callbacks","flushCallbacks","copies","p","MutationObserver","setImmediate","counter","observer","textNode","createTextNode","characterData","nextTick","_resolve","seenObjects","traverse","_traverse","seen","isA","isFrozen","depId","normalizeEvent","passive","once$$1","createFnInvoker","fns","invoker","arguments$1","updateListeners","oldOn","remove$$1","createOnceHandler","old","mergeVNodeHook","hookKey","oldHook","wrappedHook","merged","checkProp","preserve","normalizeChildren","normalizeArrayChildren","nestedIndex","lastIndex","last","isTextNode","_isVList","resolveInject","provideKey","_provided","provideDefault","resolveSlots","slots","slot","name$1","isWhitespace","normalizeScopedSlots","normalSlots","prevSlots","hasNormalSlots","isStable","$stable","$key","$hasNormal","normalizeScopedSlot","key$2","proxyNormalSlot","proxy","renderList","renderSlot","bindObject","nodes","scopedSlotFn","$scopedSlots","resolveFilter","isKeyNotMatch","expect","actual","checkKeyCodes","eventKeyCode","builtInKeyCode","eventKeyName","builtInKeyName","mappedKeyCode","bindObjectProps","asProp","isSync","loop","domProps","camelizedKey","hyphenatedKey","$event","renderStatic","isInFor","_staticTrees","tree","markStatic","_renderProxy","markOnce","markStaticNode","bindObjectListeners","ours","resolveScopedSlots","hasDynamicKeys","contentHashKey","bindDynamicKeys","baseObj","values","prependModifier","symbol","installRenderHelpers","_o","_s","_l","_t","_q","_m","_f","_k","_b","_v","_e","_u","_g","_d","FunctionalRenderContext","contextVm","_original","isCompiled","needNormalization","listeners","injections","scopedSlots","_c","d","createElement","cloneAndMarkFunctionalResult","renderContext","mergeProps","componentVNodeHooks","hydrating","_isDestroyed","keepAlive","mountedNode","_isComponent","inlineTemplate","createComponentInstanceForVnode","activeInstance","$mount","oldVnode","parentVnode","renderChildren","newScopedSlots","oldScopedSlots","hasDynamicScopedSlot","needsForceUpdate","_renderChildren","_vnode","$attrs","$listeners","propKeys","_propKeys","oldListeners","_parentListeners","updateComponentListeners","updateChildComponent","insert","_isMounted","callHook","activatedChildren","activateChildComponent","destroy","deactivateChildComponent","direct","_directInactive","isInInactiveTree","$children","$destroy","hooksToMerge","createComponent","baseCtor","factory","errorComp","owner","currentRenderingInstance","owners","loading","loadingComp","sync","timerLoading","timerTimeout","$on","forceRender","renderCompleted","clearTimeout","ensureCtor","delay","timeout","resolveAsyncComponent","createAsyncPlaceholder","resolveConstructorOptions","model","callback","transformModel","extractPropsFromVNodeData","vnodes","createFunctionalComponent","nativeOn","abstract","toMerge","_merged","mergeHook$1","installComponentHooks","f1","f2","normalizationType","alwaysNormalize","is","simpleNormalizeChildren","pre","applyNS","force","style","registerDeepBindings","_createElement","getFirstComponentChild","remove$1","$off","_target","onceHandler","setActiveInstance","prevActiveInstance","handlers","_hasHookEvent","$emit","waiting","flushing","currentFlushTimestamp","getNow","createEvent","timeStamp","flushSchedulerQueue","watcher","sort","before","run","activatedQueue","updatedQueue","callActivatedHooks","_watcher","callUpdatedHooks","emit","uid$2","Watcher","expOrFn","isRenderWatcher","_watchers","deep","user","lazy","active","dirty","deps","newDeps","depIds","newDepIds","expression","cleanupDeps","tmp","queueWatcher","oldValue","evaluate","teardown","_isBeingDestroyed","sharedPropertyDefinition","sourceKey","initState","propsOptions","initProps","initMethods","_data","getData","initData","watchers","_computedWatchers","isSSR","userDef","computedWatcherOptions","defineComputed","initComputed","createWatcher","initWatch","shouldCache","createComputedGetter","createGetterInvoker","$watch","uid$3","super","superOptions","modifiedOptions","modified","latest","sealed","sealedOptions","resolveModifiedOptions","extendOptions","_init","initExtend","Super","SuperId","cachedCtors","_Ctor","Sub","Comp","initProps$1","initComputed$1","getComponentName","pruneCache","keepAliveInstance","cachedNode","pruneCacheEntry","cached$$1","_uid","vnodeComponentOptions","_componentTag","initInternalComponent","_self","$refs","initLifecycle","_events","initEvents","parentData","initRender","initInjections","initProvide","initMixin","dataDef","propsDef","$set","$delete","immediate","stateMixin","hookRE","$once","i$1","eventsMixin","_update","prevEl","$el","prevVnode","restoreActiveInstance","__patch__","__vue__","lifecycleMixin","_render","renderMixin","patternTypes","builtInComponents","KeepAlive","include","exclude","Number","mounted","parseInt","configDef","observable","plugin","installedPlugins","_installedPlugins","initUse","initMixin$1","definition","initAssetRegisters","initGlobalAPI","acceptValue","isEnumeratedAttr","isValidContentEditableValue","isBooleanAttr","xlinkNS","isXlink","getXlinkProp","isFalsyAttrValue","genClassForVnode","parentNode","childNode","mergeClassData","staticClass","dynamicClass","stringifyClass","renderClass","stringified","stringifyArray","stringifyObject","namespaceMap","svg","math","isHTMLTag","isSVG","unknownElementCache","isTextInputType","nodeOps","tagName","multiple","setAttribute","createElementNS","namespace","createComment","insertBefore","newNode","referenceNode","removeChild","appendChild","nextSibling","setTextContent","textContent","setStyleScope","registerRef","isRemoval","refs","refInFor","emptyNode","sameVnode","typeA","typeB","sameInputType","createKeyToOldIdx","beginIdx","endIdx","updateDirectives","oldDir","dir","isCreate","isDestroy","oldDirs","normalizeDirectives$1","newDirs","dirsWithInsert","dirsWithPostpatch","oldArg","arg","callHook$1","componentUpdated","callInsert","emptyModifiers","modifiers","getRawDirName","rawName","baseModules","updateAttrs","inheritAttrs","oldAttrs","setAttr","removeAttributeNS","removeAttribute","baseSetAttr","convertEnumeratedValue","setAttributeNS","__ieph","blocker","stopImmediatePropagation","removeEventListener","updateClass","oldData","cls","transitionClass","_transitionClasses","_prevClass","target$1","klass","createOnceHandler$1","remove$2","useMicrotaskFix","add$1","attachedTimestamp","_wrapper","ownerDocument","updateDOMListeners","change","normalizeEvents","svgContainer","events","updateDOMProps","oldProps","childNodes","_value","strCur","shouldUpdateValue","firstChild","checkVal","composing","notInFocus","activeElement","isNotInFocusAndDirty","_vModifiers","number","isDirtyWithModifiers","parseStyleText","cssText","propertyDelimiter","normalizeStyleData","normalizeStyleBinding","staticStyle","bindingStyle","emptyStyle","cssVarRE","importantRE","setProp","setProperty","normalizedName","normalize","vendorNames","capName","updateStyle","oldStaticStyle","oldStyleBinding","normalizedStyle","oldStyle","newStyle","checkChild","styleData","getStyle","whitespaceRE","addClass","classList","removeClass","tar","resolveTransition","css","autoCssTransition","enterClass","enterToClass","enterActiveClass","leaveClass","leaveToClass","leaveActiveClass","hasTransition","transitionProp","transitionEndEvent","animationProp","animationEndEvent","ontransitionend","onwebkittransitionend","onanimationend","onwebkitanimationend","raf","requestAnimationFrame","nextFrame","addTransitionClass","transitionClasses","removeTransitionClass","whenTransitionEnds","expectedType","getTransitionInfo","propCount","ended","onEnd","transformRE","styles","getComputedStyle","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","delays","durations","toMs","s","enter","toggleDisplay","_leaveCb","cancelled","transition","_enterCb","nodeType","appearClass","appearToClass","appearActiveClass","afterEnter","enterCancelled","beforeAppear","appear","afterAppear","appearCancelled","duration","transitionNode","isAppear","startClass","toClass","beforeEnterHook","enterHook","afterEnterHook","enterCancelledHook","explicitEnterDuration","expectsCSS","userWantsControl","getHookArgumentsLength","show","pendingNode","_pending","isValidDuration","leave","rm","beforeLeave","afterLeave","leaveCancelled","delayLeave","explicitLeaveDuration","performLeave","invokerFns","_enter","patch","backend","removeNode","createElm","insertedVnodeQueue","parentElm","refElm","nested","ownerArray","isReactivated","initComponent","innerNode","activate","reactivateComponent","setScope","createChildren","invokeCreateHooks","pendingInsert","isPatchable","ref$$1","ancestor","addVnodes","startIdx","invokeDestroyHook","removeVnodes","ch","removeAndInvokeRemoveHook","childElm","createRmCb","findIdxInOld","oldCh","patchVnode","removeOnly","hydrate","newCh","oldKeyToIdx","idxInOld","vnodeToMove","oldStartIdx","newStartIdx","oldEndIdx","oldStartVnode","oldEndVnode","newEndIdx","newStartVnode","newEndVnode","canMove","updateChildren","postpatch","invokeInsertHook","initial","isRenderedModule","inVPre","hasChildNodes","childrenMatch","fullInvoke","isInitialPatch","isRealElement","hasAttribute","oldElm","patchable","i$2","createPatchFunction","vmodel","trigger","binding","_vOptions","setSelected","getValue","onCompositionStart","onCompositionEnd","prevOptions","curOptions","some","hasNoMatchingOption","actuallySetSelected","isMultiple","selected","option","selectedIndex","initEvent","dispatchEvent","locateNode","platformDirectives","transition$$1","originalDisplay","__vOriginalDisplay","display","unbind","transitionProps","getRealChild","compOptions","extractTransitionData","placeholder","rawChild","isNotTextNode","isVShowDirective","Transition","hasParentTransition","_leaving","oldRawChild","oldChild","isSameChild","delayedLeave","moveClass","callPendingCbs","_moveCb","recordPosition","newPos","applyTranslation","oldPos","pos","dx","dy","moved","transform","WebkitTransform","transitionDuration","platformComponents","TransitionGroup","beforeMount","kept","prevChildren","rawChildren","transitionData","removed","c$1","hasMove","_reflow","offsetHeight","propertyName","_hasMove","cloneNode","attr","HTMLUnknownElement","HTMLElement","updateComponent","mountComponent","listToStyles","parentId","newStyles","part","media","hasDocument","DEBUG","stylesInDom","head","getElementsByTagName","singletonElement","singletonCounter","isProduction","isOldIE","addStylesClient","_isProduction","_options","addStylesToDom","newList","mayRemove","domStyle","addStyle","createStyleElement","styleElement","styleIndex","applyToSingletonTag","applyToTag","newObj","textStore","replaceText","replacement","styleSheet","cssNode","ssrId"],"mappings":"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","file":"js/4-4d7a26c58f65bd397157.chunk.js","sourcesContent":["/**\n * vue-router v2.8.1\n * (c) 2017 Evan You\n * @license MIT\n */\n/* */\n\nfunction assert (condition, message) {\n if (!condition) {\n throw new Error((\"[vue-router] \" + message))\n }\n}\n\nfunction warn (condition, message) {\n if (process.env.NODE_ENV !== 'production' && !condition) {\n typeof console !== 'undefined' && console.warn((\"[vue-router] \" + message));\n }\n}\n\nfunction isError (err) {\n return Object.prototype.toString.call(err).indexOf('Error') > -1\n}\n\nvar View = {\n name: 'router-view',\n functional: true,\n props: {\n name: {\n type: String,\n default: 'default'\n }\n },\n render: function render (_, ref) {\n var props = ref.props;\n var children = ref.children;\n var parent = ref.parent;\n var data = ref.data;\n\n data.routerView = true;\n\n // directly use parent context's createElement() function\n // so that components rendered by router-view can resolve named slots\n var h = parent.$createElement;\n var name = props.name;\n var route = parent.$route;\n var cache = parent._routerViewCache || (parent._routerViewCache = {});\n\n // determine current view depth, also check to see if the tree\n // has been toggled inactive but kept-alive.\n var depth = 0;\n var inactive = false;\n while (parent && parent._routerRoot !== parent) {\n if (parent.$vnode && parent.$vnode.data.routerView) {\n depth++;\n }\n if (parent._inactive) {\n inactive = true;\n }\n parent = parent.$parent;\n }\n data.routerViewDepth = depth;\n\n // render previous view if the tree is inactive and kept-alive\n if (inactive) {\n return h(cache[name], data, children)\n }\n\n var matched = route.matched[depth];\n // render empty node if no matched route\n if (!matched) {\n cache[name] = null;\n return h()\n }\n\n var component = cache[name] = matched.components[name];\n\n // attach instance registration hook\n // this will be called in the instance's injected lifecycle hooks\n data.registerRouteInstance = function (vm, val) {\n // val could be undefined for unregistration\n var current = matched.instances[name];\n if (\n (val && current !== vm) ||\n (!val && current === vm)\n ) {\n matched.instances[name] = val;\n }\n }\n\n // also register instance in prepatch hook\n // in case the same component instance is reused across different routes\n ;(data.hook || (data.hook = {})).prepatch = function (_, vnode) {\n matched.instances[name] = vnode.componentInstance;\n };\n\n // resolve props\n var propsToPass = data.props = resolveProps(route, matched.props && matched.props[name]);\n if (propsToPass) {\n // clone to prevent mutation\n propsToPass = data.props = extend({}, propsToPass);\n // pass non-declared props as attrs\n var attrs = data.attrs = data.attrs || {};\n for (var key in propsToPass) {\n if (!component.props || !(key in component.props)) {\n attrs[key] = propsToPass[key];\n delete propsToPass[key];\n }\n }\n }\n\n return h(component, data, children)\n }\n};\n\nfunction resolveProps (route, config) {\n switch (typeof config) {\n case 'undefined':\n return\n case 'object':\n return config\n case 'function':\n return config(route)\n case 'boolean':\n return config ? route.params : undefined\n default:\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false,\n \"props in \\\"\" + (route.path) + \"\\\" is a \" + (typeof config) + \", \" +\n \"expecting an object, function or boolean.\"\n );\n }\n }\n}\n\nfunction extend (to, from) {\n for (var key in from) {\n to[key] = from[key];\n }\n return to\n}\n\n/* */\n\nvar encodeReserveRE = /[!'()*]/g;\nvar encodeReserveReplacer = function (c) { return '%' + c.charCodeAt(0).toString(16); };\nvar commaRE = /%2C/g;\n\n// fixed encodeURIComponent which is more conformant to RFC3986:\n// - escapes [!'()*]\n// - preserve commas\nvar encode = function (str) { return encodeURIComponent(str)\n .replace(encodeReserveRE, encodeReserveReplacer)\n .replace(commaRE, ','); };\n\nvar decode = decodeURIComponent;\n\nfunction resolveQuery (\n query,\n extraQuery,\n _parseQuery\n) {\n if ( extraQuery === void 0 ) extraQuery = {};\n\n var parse = _parseQuery || parseQuery;\n var parsedQuery;\n try {\n parsedQuery = parse(query || '');\n } catch (e) {\n process.env.NODE_ENV !== 'production' && warn(false, e.message);\n parsedQuery = {};\n }\n for (var key in extraQuery) {\n parsedQuery[key] = extraQuery[key];\n }\n return parsedQuery\n}\n\nfunction parseQuery (query) {\n var res = {};\n\n query = query.trim().replace(/^(\\?|#|&)/, '');\n\n if (!query) {\n return res\n }\n\n query.split('&').forEach(function (param) {\n var parts = param.replace(/\\+/g, ' ').split('=');\n var key = decode(parts.shift());\n var val = parts.length > 0\n ? decode(parts.join('='))\n : null;\n\n if (res[key] === undefined) {\n res[key] = val;\n } else if (Array.isArray(res[key])) {\n res[key].push(val);\n } else {\n res[key] = [res[key], val];\n }\n });\n\n return res\n}\n\nfunction stringifyQuery (obj) {\n var res = obj ? Object.keys(obj).map(function (key) {\n var val = obj[key];\n\n if (val === undefined) {\n return ''\n }\n\n if (val === null) {\n return encode(key)\n }\n\n if (Array.isArray(val)) {\n var result = [];\n val.forEach(function (val2) {\n if (val2 === undefined) {\n return\n }\n if (val2 === null) {\n result.push(encode(key));\n } else {\n result.push(encode(key) + '=' + encode(val2));\n }\n });\n return result.join('&')\n }\n\n return encode(key) + '=' + encode(val)\n }).filter(function (x) { return x.length > 0; }).join('&') : null;\n return res ? (\"?\" + res) : ''\n}\n\n/* */\n\n\nvar trailingSlashRE = /\\/?$/;\n\nfunction createRoute (\n record,\n location,\n redirectedFrom,\n router\n) {\n var stringifyQuery$$1 = router && router.options.stringifyQuery;\n\n var query = location.query || {};\n try {\n query = clone(query);\n } catch (e) {}\n\n var route = {\n name: location.name || (record && record.name),\n meta: (record && record.meta) || {},\n path: location.path || '/',\n hash: location.hash || '',\n query: query,\n params: location.params || {},\n fullPath: getFullPath(location, stringifyQuery$$1),\n matched: record ? formatMatch(record) : []\n };\n if (redirectedFrom) {\n route.redirectedFrom = getFullPath(redirectedFrom, stringifyQuery$$1);\n }\n return Object.freeze(route)\n}\n\nfunction clone (value) {\n if (Array.isArray(value)) {\n return value.map(clone)\n } else if (value && typeof value === 'object') {\n var res = {};\n for (var key in value) {\n res[key] = clone(value[key]);\n }\n return res\n } else {\n return value\n }\n}\n\n// the starting route that represents the initial state\nvar START = createRoute(null, {\n path: '/'\n});\n\nfunction formatMatch (record) {\n var res = [];\n while (record) {\n res.unshift(record);\n record = record.parent;\n }\n return res\n}\n\nfunction getFullPath (\n ref,\n _stringifyQuery\n) {\n var path = ref.path;\n var query = ref.query; if ( query === void 0 ) query = {};\n var hash = ref.hash; if ( hash === void 0 ) hash = '';\n\n var stringify = _stringifyQuery || stringifyQuery;\n return (path || '/') + stringify(query) + hash\n}\n\nfunction isSameRoute (a, b) {\n if (b === START) {\n return a === b\n } else if (!b) {\n return false\n } else if (a.path && b.path) {\n return (\n a.path.replace(trailingSlashRE, '') === b.path.replace(trailingSlashRE, '') &&\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query)\n )\n } else if (a.name && b.name) {\n return (\n a.name === b.name &&\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query) &&\n isObjectEqual(a.params, b.params)\n )\n } else {\n return false\n }\n}\n\nfunction isObjectEqual (a, b) {\n if ( a === void 0 ) a = {};\n if ( b === void 0 ) b = {};\n\n // handle null value #1566\n if (!a || !b) { return a === b }\n var aKeys = Object.keys(a);\n var bKeys = Object.keys(b);\n if (aKeys.length !== bKeys.length) {\n return false\n }\n return aKeys.every(function (key) {\n var aVal = a[key];\n var bVal = b[key];\n // check nested equality\n if (typeof aVal === 'object' && typeof bVal === 'object') {\n return isObjectEqual(aVal, bVal)\n }\n return String(aVal) === String(bVal)\n })\n}\n\nfunction isIncludedRoute (current, target) {\n return (\n current.path.replace(trailingSlashRE, '/').indexOf(\n target.path.replace(trailingSlashRE, '/')\n ) === 0 &&\n (!target.hash || current.hash === target.hash) &&\n queryIncludes(current.query, target.query)\n )\n}\n\nfunction queryIncludes (current, target) {\n for (var key in target) {\n if (!(key in current)) {\n return false\n }\n }\n return true\n}\n\n/* */\n\n// work around weird flow bug\nvar toTypes = [String, Object];\nvar eventTypes = [String, Array];\n\nvar Link = {\n name: 'router-link',\n props: {\n to: {\n type: toTypes,\n required: true\n },\n tag: {\n type: String,\n default: 'a'\n },\n exact: Boolean,\n append: Boolean,\n replace: Boolean,\n activeClass: String,\n exactActiveClass: String,\n event: {\n type: eventTypes,\n default: 'click'\n }\n },\n render: function render (h) {\n var this$1 = this;\n\n var router = this.$router;\n var current = this.$route;\n var ref = router.resolve(this.to, current, this.append);\n var location = ref.location;\n var route = ref.route;\n var href = ref.href;\n\n var classes = {};\n var globalActiveClass = router.options.linkActiveClass;\n var globalExactActiveClass = router.options.linkExactActiveClass;\n // Support global empty active class\n var activeClassFallback = globalActiveClass == null\n ? 'router-link-active'\n : globalActiveClass;\n var exactActiveClassFallback = globalExactActiveClass == null\n ? 'router-link-exact-active'\n : globalExactActiveClass;\n var activeClass = this.activeClass == null\n ? activeClassFallback\n : this.activeClass;\n var exactActiveClass = this.exactActiveClass == null\n ? exactActiveClassFallback\n : this.exactActiveClass;\n var compareTarget = location.path\n ? createRoute(null, location, null, router)\n : route;\n\n classes[exactActiveClass] = isSameRoute(current, compareTarget);\n classes[activeClass] = this.exact\n ? classes[exactActiveClass]\n : isIncludedRoute(current, compareTarget);\n\n var handler = function (e) {\n if (guardEvent(e)) {\n if (this$1.replace) {\n router.replace(location);\n } else {\n router.push(location);\n }\n }\n };\n\n var on = { click: guardEvent };\n if (Array.isArray(this.event)) {\n this.event.forEach(function (e) { on[e] = handler; });\n } else {\n on[this.event] = handler;\n }\n\n var data = {\n class: classes\n };\n\n if (this.tag === 'a') {\n data.on = on;\n data.attrs = { href: href };\n } else {\n // find the first child and apply listener and href\n var a = findAnchor(this.$slots.default);\n if (a) {\n // in case the is a static node\n a.isStatic = false;\n var extend = _Vue.util.extend;\n var aData = a.data = extend({}, a.data);\n aData.on = on;\n var aAttrs = a.data.attrs = extend({}, a.data.attrs);\n aAttrs.href = href;\n } else {\n // doesn't have child, apply listener to self\n data.on = on;\n }\n }\n\n return h(this.tag, data, this.$slots.default)\n }\n};\n\nfunction guardEvent (e) {\n // don't redirect with control keys\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) { return }\n // don't redirect when preventDefault called\n if (e.defaultPrevented) { return }\n // don't redirect on right click\n if (e.button !== undefined && e.button !== 0) { return }\n // don't redirect if `target=\"_blank\"`\n if (e.currentTarget && e.currentTarget.getAttribute) {\n var target = e.currentTarget.getAttribute('target');\n if (/\\b_blank\\b/i.test(target)) { return }\n }\n // this may be a Weex event which doesn't have this method\n if (e.preventDefault) {\n e.preventDefault();\n }\n return true\n}\n\nfunction findAnchor (children) {\n if (children) {\n var child;\n for (var i = 0; i < children.length; i++) {\n child = children[i];\n if (child.tag === 'a') {\n return child\n }\n if (child.children && (child = findAnchor(child.children))) {\n return child\n }\n }\n }\n}\n\nvar _Vue;\n\nfunction install (Vue) {\n if (install.installed && _Vue === Vue) { return }\n install.installed = true;\n\n _Vue = Vue;\n\n var isDef = function (v) { return v !== undefined; };\n\n var registerInstance = function (vm, callVal) {\n var i = vm.$options._parentVnode;\n if (isDef(i) && isDef(i = i.data) && isDef(i = i.registerRouteInstance)) {\n i(vm, callVal);\n }\n };\n\n Vue.mixin({\n beforeCreate: function beforeCreate () {\n if (isDef(this.$options.router)) {\n this._routerRoot = this;\n this._router = this.$options.router;\n this._router.init(this);\n Vue.util.defineReactive(this, '_route', this._router.history.current);\n } else {\n this._routerRoot = (this.$parent && this.$parent._routerRoot) || this;\n }\n registerInstance(this, this);\n },\n destroyed: function destroyed () {\n registerInstance(this);\n }\n });\n\n Object.defineProperty(Vue.prototype, '$router', {\n get: function get () { return this._routerRoot._router }\n });\n\n Object.defineProperty(Vue.prototype, '$route', {\n get: function get () { return this._routerRoot._route }\n });\n\n Vue.component('router-view', View);\n Vue.component('router-link', Link);\n\n var strats = Vue.config.optionMergeStrategies;\n // use the same hook merging strategy for route hooks\n strats.beforeRouteEnter = strats.beforeRouteLeave = strats.beforeRouteUpdate = strats.created;\n}\n\n/* */\n\nvar inBrowser = typeof window !== 'undefined';\n\n/* */\n\nfunction resolvePath (\n relative,\n base,\n append\n) {\n var firstChar = relative.charAt(0);\n if (firstChar === '/') {\n return relative\n }\n\n if (firstChar === '?' || firstChar === '#') {\n return base + relative\n }\n\n var stack = base.split('/');\n\n // remove trailing segment if:\n // - not appending\n // - appending to trailing slash (last segment is empty)\n if (!append || !stack[stack.length - 1]) {\n stack.pop();\n }\n\n // resolve relative path\n var segments = relative.replace(/^\\//, '').split('/');\n for (var i = 0; i < segments.length; i++) {\n var segment = segments[i];\n if (segment === '..') {\n stack.pop();\n } else if (segment !== '.') {\n stack.push(segment);\n }\n }\n\n // ensure leading slash\n if (stack[0] !== '') {\n stack.unshift('');\n }\n\n return stack.join('/')\n}\n\nfunction parsePath (path) {\n var hash = '';\n var query = '';\n\n var hashIndex = path.indexOf('#');\n if (hashIndex >= 0) {\n hash = path.slice(hashIndex);\n path = path.slice(0, hashIndex);\n }\n\n var queryIndex = path.indexOf('?');\n if (queryIndex >= 0) {\n query = path.slice(queryIndex + 1);\n path = path.slice(0, queryIndex);\n }\n\n return {\n path: path,\n query: query,\n hash: hash\n }\n}\n\nfunction cleanPath (path) {\n return path.replace(/\\/\\//g, '/')\n}\n\nvar isarray = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n\n/**\n * Expose `pathToRegexp`.\n */\nvar pathToRegexp_1 = pathToRegexp;\nvar parse_1 = parse;\nvar compile_1 = compile;\nvar tokensToFunction_1 = tokensToFunction;\nvar tokensToRegExp_1 = tokensToRegExp;\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g');\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = [];\n var key = 0;\n var index = 0;\n var path = '';\n var defaultDelimiter = options && options.delimiter || '/';\n var res;\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0];\n var escaped = res[1];\n var offset = res.index;\n path += str.slice(index, offset);\n index = offset + m.length;\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1];\n continue\n }\n\n var next = str[index];\n var prefix = res[2];\n var name = res[3];\n var capture = res[4];\n var group = res[5];\n var modifier = res[6];\n var asterisk = res[7];\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path);\n path = '';\n }\n\n var partial = prefix != null && next != null && next !== prefix;\n var repeat = modifier === '+' || modifier === '*';\n var optional = modifier === '?' || modifier === '*';\n var delimiter = res[2] || defaultDelimiter;\n var pattern = capture || group;\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n });\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index);\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path);\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options))\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length);\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$');\n }\n }\n\n return function (obj, opts) {\n var path = '';\n var data = obj || {};\n var options = opts || {};\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent;\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n path += token;\n\n continue\n }\n\n var value = data[token.name];\n var segment;\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix;\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j]);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment;\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment;\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys;\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g);\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n });\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = [];\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source);\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options));\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n var strict = options.strict;\n var end = options.end !== false;\n var route = '';\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n route += escapeString(token);\n } else {\n var prefix = escapeString(token.prefix);\n var capture = '(?:' + token.pattern + ')';\n\n keys.push(token);\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*';\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?';\n } else {\n capture = prefix + '(' + capture + ')?';\n }\n } else {\n capture = prefix + '(' + capture + ')';\n }\n\n route += capture;\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/');\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter;\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?';\n }\n\n if (end) {\n route += '$';\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)';\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n\npathToRegexp_1.parse = parse_1;\npathToRegexp_1.compile = compile_1;\npathToRegexp_1.tokensToFunction = tokensToFunction_1;\npathToRegexp_1.tokensToRegExp = tokensToRegExp_1;\n\n/* */\n\n// $flow-disable-line\nvar regexpCompileCache = Object.create(null);\n\nfunction fillParams (\n path,\n params,\n routeMsg\n) {\n try {\n var filler =\n regexpCompileCache[path] ||\n (regexpCompileCache[path] = pathToRegexp_1.compile(path));\n return filler(params || {}, { pretty: true })\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, (\"missing param for \" + routeMsg + \": \" + (e.message)));\n }\n return ''\n }\n}\n\n/* */\n\nfunction createRouteMap (\n routes,\n oldPathList,\n oldPathMap,\n oldNameMap\n) {\n // the path list is used to control path matching priority\n var pathList = oldPathList || [];\n // $flow-disable-line\n var pathMap = oldPathMap || Object.create(null);\n // $flow-disable-line\n var nameMap = oldNameMap || Object.create(null);\n\n routes.forEach(function (route) {\n addRouteRecord(pathList, pathMap, nameMap, route);\n });\n\n // ensure wildcard routes are always at the end\n for (var i = 0, l = pathList.length; i < l; i++) {\n if (pathList[i] === '*') {\n pathList.push(pathList.splice(i, 1)[0]);\n l--;\n i--;\n }\n }\n\n return {\n pathList: pathList,\n pathMap: pathMap,\n nameMap: nameMap\n }\n}\n\nfunction addRouteRecord (\n pathList,\n pathMap,\n nameMap,\n route,\n parent,\n matchAs\n) {\n var path = route.path;\n var name = route.name;\n if (process.env.NODE_ENV !== 'production') {\n assert(path != null, \"\\\"path\\\" is required in a route configuration.\");\n assert(\n typeof route.component !== 'string',\n \"route config \\\"component\\\" for path: \" + (String(path || name)) + \" cannot be a \" +\n \"string id. Use an actual component instead.\"\n );\n }\n\n var pathToRegexpOptions = route.pathToRegexpOptions || {};\n var normalizedPath = normalizePath(\n path,\n parent,\n pathToRegexpOptions.strict\n );\n\n if (typeof route.caseSensitive === 'boolean') {\n pathToRegexpOptions.sensitive = route.caseSensitive;\n }\n\n var record = {\n path: normalizedPath,\n regex: compileRouteRegex(normalizedPath, pathToRegexpOptions),\n components: route.components || { default: route.component },\n instances: {},\n name: name,\n parent: parent,\n matchAs: matchAs,\n redirect: route.redirect,\n beforeEnter: route.beforeEnter,\n meta: route.meta || {},\n props: route.props == null\n ? {}\n : route.components\n ? route.props\n : { default: route.props }\n };\n\n if (route.children) {\n // Warn if route is named, does not redirect and has a default child route.\n // If users navigate to this route by name, the default child will\n // not be rendered (GH Issue #629)\n if (process.env.NODE_ENV !== 'production') {\n if (route.name && !route.redirect && route.children.some(function (child) { return /^\\/?$/.test(child.path); })) {\n warn(\n false,\n \"Named Route '\" + (route.name) + \"' has a default child route. \" +\n \"When navigating to this named route (:to=\\\"{name: '\" + (route.name) + \"'\\\"), \" +\n \"the default child route will not be rendered. Remove the name from \" +\n \"this route and use the name of the default child route for named \" +\n \"links instead.\"\n );\n }\n }\n route.children.forEach(function (child) {\n var childMatchAs = matchAs\n ? cleanPath((matchAs + \"/\" + (child.path)))\n : undefined;\n addRouteRecord(pathList, pathMap, nameMap, child, record, childMatchAs);\n });\n }\n\n if (route.alias !== undefined) {\n var aliases = Array.isArray(route.alias)\n ? route.alias\n : [route.alias];\n\n aliases.forEach(function (alias) {\n var aliasRoute = {\n path: alias,\n children: route.children\n };\n addRouteRecord(\n pathList,\n pathMap,\n nameMap,\n aliasRoute,\n parent,\n record.path || '/' // matchAs\n );\n });\n }\n\n if (!pathMap[record.path]) {\n pathList.push(record.path);\n pathMap[record.path] = record;\n }\n\n if (name) {\n if (!nameMap[name]) {\n nameMap[name] = record;\n } else if (process.env.NODE_ENV !== 'production' && !matchAs) {\n warn(\n false,\n \"Duplicate named routes definition: \" +\n \"{ name: \\\"\" + name + \"\\\", path: \\\"\" + (record.path) + \"\\\" }\"\n );\n }\n }\n}\n\nfunction compileRouteRegex (path, pathToRegexpOptions) {\n var regex = pathToRegexp_1(path, [], pathToRegexpOptions);\n if (process.env.NODE_ENV !== 'production') {\n var keys = Object.create(null);\n regex.keys.forEach(function (key) {\n warn(!keys[key.name], (\"Duplicate param keys in route with path: \\\"\" + path + \"\\\"\"));\n keys[key.name] = true;\n });\n }\n return regex\n}\n\nfunction normalizePath (path, parent, strict) {\n if (!strict) { path = path.replace(/\\/$/, ''); }\n if (path[0] === '/') { return path }\n if (parent == null) { return path }\n return cleanPath(((parent.path) + \"/\" + path))\n}\n\n/* */\n\n\nfunction normalizeLocation (\n raw,\n current,\n append,\n router\n) {\n var next = typeof raw === 'string' ? { path: raw } : raw;\n // named target\n if (next.name || next._normalized) {\n return next\n }\n\n // relative params\n if (!next.path && next.params && current) {\n next = assign({}, next);\n next._normalized = true;\n var params = assign(assign({}, current.params), next.params);\n if (current.name) {\n next.name = current.name;\n next.params = params;\n } else if (current.matched.length) {\n var rawPath = current.matched[current.matched.length - 1].path;\n next.path = fillParams(rawPath, params, (\"path \" + (current.path)));\n } else if (process.env.NODE_ENV !== 'production') {\n warn(false, \"relative params navigation requires a current route.\");\n }\n return next\n }\n\n var parsedPath = parsePath(next.path || '');\n var basePath = (current && current.path) || '/';\n var path = parsedPath.path\n ? resolvePath(parsedPath.path, basePath, append || next.append)\n : basePath;\n\n var query = resolveQuery(\n parsedPath.query,\n next.query,\n router && router.options.parseQuery\n );\n\n var hash = next.hash || parsedPath.hash;\n if (hash && hash.charAt(0) !== '#') {\n hash = \"#\" + hash;\n }\n\n return {\n _normalized: true,\n path: path,\n query: query,\n hash: hash\n }\n}\n\nfunction assign (a, b) {\n for (var key in b) {\n a[key] = b[key];\n }\n return a\n}\n\n/* */\n\n\nfunction createMatcher (\n routes,\n router\n) {\n var ref = createRouteMap(routes);\n var pathList = ref.pathList;\n var pathMap = ref.pathMap;\n var nameMap = ref.nameMap;\n\n function addRoutes (routes) {\n createRouteMap(routes, pathList, pathMap, nameMap);\n }\n\n function match (\n raw,\n currentRoute,\n redirectedFrom\n ) {\n var location = normalizeLocation(raw, currentRoute, false, router);\n var name = location.name;\n\n if (name) {\n var record = nameMap[name];\n if (process.env.NODE_ENV !== 'production') {\n warn(record, (\"Route with name '\" + name + \"' does not exist\"));\n }\n if (!record) { return _createRoute(null, location) }\n var paramNames = record.regex.keys\n .filter(function (key) { return !key.optional; })\n .map(function (key) { return key.name; });\n\n if (typeof location.params !== 'object') {\n location.params = {};\n }\n\n if (currentRoute && typeof currentRoute.params === 'object') {\n for (var key in currentRoute.params) {\n if (!(key in location.params) && paramNames.indexOf(key) > -1) {\n location.params[key] = currentRoute.params[key];\n }\n }\n }\n\n if (record) {\n location.path = fillParams(record.path, location.params, (\"named route \\\"\" + name + \"\\\"\"));\n return _createRoute(record, location, redirectedFrom)\n }\n } else if (location.path) {\n location.params = {};\n for (var i = 0; i < pathList.length; i++) {\n var path = pathList[i];\n var record$1 = pathMap[path];\n if (matchRoute(record$1.regex, location.path, location.params)) {\n return _createRoute(record$1, location, redirectedFrom)\n }\n }\n }\n // no match\n return _createRoute(null, location)\n }\n\n function redirect (\n record,\n location\n ) {\n var originalRedirect = record.redirect;\n var redirect = typeof originalRedirect === 'function'\n ? originalRedirect(createRoute(record, location, null, router))\n : originalRedirect;\n\n if (typeof redirect === 'string') {\n redirect = { path: redirect };\n }\n\n if (!redirect || typeof redirect !== 'object') {\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false, (\"invalid redirect option: \" + (JSON.stringify(redirect)))\n );\n }\n return _createRoute(null, location)\n }\n\n var re = redirect;\n var name = re.name;\n var path = re.path;\n var query = location.query;\n var hash = location.hash;\n var params = location.params;\n query = re.hasOwnProperty('query') ? re.query : query;\n hash = re.hasOwnProperty('hash') ? re.hash : hash;\n params = re.hasOwnProperty('params') ? re.params : params;\n\n if (name) {\n // resolved named direct\n var targetRecord = nameMap[name];\n if (process.env.NODE_ENV !== 'production') {\n assert(targetRecord, (\"redirect failed: named route \\\"\" + name + \"\\\" not found.\"));\n }\n return match({\n _normalized: true,\n name: name,\n query: query,\n hash: hash,\n params: params\n }, undefined, location)\n } else if (path) {\n // 1. resolve relative redirect\n var rawPath = resolveRecordPath(path, record);\n // 2. resolve params\n var resolvedPath = fillParams(rawPath, params, (\"redirect route with path \\\"\" + rawPath + \"\\\"\"));\n // 3. rematch with existing query and hash\n return match({\n _normalized: true,\n path: resolvedPath,\n query: query,\n hash: hash\n }, undefined, location)\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, (\"invalid redirect option: \" + (JSON.stringify(redirect))));\n }\n return _createRoute(null, location)\n }\n }\n\n function alias (\n record,\n location,\n matchAs\n ) {\n var aliasedPath = fillParams(matchAs, location.params, (\"aliased route with path \\\"\" + matchAs + \"\\\"\"));\n var aliasedMatch = match({\n _normalized: true,\n path: aliasedPath\n });\n if (aliasedMatch) {\n var matched = aliasedMatch.matched;\n var aliasedRecord = matched[matched.length - 1];\n location.params = aliasedMatch.params;\n return _createRoute(aliasedRecord, location)\n }\n return _createRoute(null, location)\n }\n\n function _createRoute (\n record,\n location,\n redirectedFrom\n ) {\n if (record && record.redirect) {\n return redirect(record, redirectedFrom || location)\n }\n if (record && record.matchAs) {\n return alias(record, location, record.matchAs)\n }\n return createRoute(record, location, redirectedFrom, router)\n }\n\n return {\n match: match,\n addRoutes: addRoutes\n }\n}\n\nfunction matchRoute (\n regex,\n path,\n params\n) {\n var m = path.match(regex);\n\n if (!m) {\n return false\n } else if (!params) {\n return true\n }\n\n for (var i = 1, len = m.length; i < len; ++i) {\n var key = regex.keys[i - 1];\n var val = typeof m[i] === 'string' ? decodeURIComponent(m[i]) : m[i];\n if (key) {\n params[key.name] = val;\n }\n }\n\n return true\n}\n\nfunction resolveRecordPath (path, record) {\n return resolvePath(path, record.parent ? record.parent.path : '/', true)\n}\n\n/* */\n\n\nvar positionStore = Object.create(null);\n\nfunction setupScroll () {\n // Fix for #1585 for Firefox\n window.history.replaceState({ key: getStateKey() }, '');\n window.addEventListener('popstate', function (e) {\n saveScrollPosition();\n if (e.state && e.state.key) {\n setStateKey(e.state.key);\n }\n });\n}\n\nfunction handleScroll (\n router,\n to,\n from,\n isPop\n) {\n if (!router.app) {\n return\n }\n\n var behavior = router.options.scrollBehavior;\n if (!behavior) {\n return\n }\n\n if (process.env.NODE_ENV !== 'production') {\n assert(typeof behavior === 'function', \"scrollBehavior must be a function\");\n }\n\n // wait until re-render finishes before scrolling\n router.app.$nextTick(function () {\n var position = getScrollPosition();\n var shouldScroll = behavior(to, from, isPop ? position : null);\n\n if (!shouldScroll) {\n return\n }\n\n if (typeof shouldScroll.then === 'function') {\n shouldScroll.then(function (shouldScroll) {\n scrollToPosition((shouldScroll), position);\n }).catch(function (err) {\n if (process.env.NODE_ENV !== 'production') {\n assert(false, err.toString());\n }\n });\n } else {\n scrollToPosition(shouldScroll, position);\n }\n });\n}\n\nfunction saveScrollPosition () {\n var key = getStateKey();\n if (key) {\n positionStore[key] = {\n x: window.pageXOffset,\n y: window.pageYOffset\n };\n }\n}\n\nfunction getScrollPosition () {\n var key = getStateKey();\n if (key) {\n return positionStore[key]\n }\n}\n\nfunction getElementPosition (el, offset) {\n var docEl = document.documentElement;\n var docRect = docEl.getBoundingClientRect();\n var elRect = el.getBoundingClientRect();\n return {\n x: elRect.left - docRect.left - offset.x,\n y: elRect.top - docRect.top - offset.y\n }\n}\n\nfunction isValidPosition (obj) {\n return isNumber(obj.x) || isNumber(obj.y)\n}\n\nfunction normalizePosition (obj) {\n return {\n x: isNumber(obj.x) ? obj.x : window.pageXOffset,\n y: isNumber(obj.y) ? obj.y : window.pageYOffset\n }\n}\n\nfunction normalizeOffset (obj) {\n return {\n x: isNumber(obj.x) ? obj.x : 0,\n y: isNumber(obj.y) ? obj.y : 0\n }\n}\n\nfunction isNumber (v) {\n return typeof v === 'number'\n}\n\nfunction scrollToPosition (shouldScroll, position) {\n var isObject = typeof shouldScroll === 'object';\n if (isObject && typeof shouldScroll.selector === 'string') {\n var el = document.querySelector(shouldScroll.selector);\n if (el) {\n var offset = shouldScroll.offset && typeof shouldScroll.offset === 'object' ? shouldScroll.offset : {};\n offset = normalizeOffset(offset);\n position = getElementPosition(el, offset);\n } else if (isValidPosition(shouldScroll)) {\n position = normalizePosition(shouldScroll);\n }\n } else if (isObject && isValidPosition(shouldScroll)) {\n position = normalizePosition(shouldScroll);\n }\n\n if (position) {\n window.scrollTo(position.x, position.y);\n }\n}\n\n/* */\n\nvar supportsPushState = inBrowser && (function () {\n var ua = window.navigator.userAgent;\n\n if (\n (ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) &&\n ua.indexOf('Mobile Safari') !== -1 &&\n ua.indexOf('Chrome') === -1 &&\n ua.indexOf('Windows Phone') === -1\n ) {\n return false\n }\n\n return window.history && 'pushState' in window.history\n})();\n\n// use User Timing api (if present) for more accurate key precision\nvar Time = inBrowser && window.performance && window.performance.now\n ? window.performance\n : Date;\n\nvar _key = genKey();\n\nfunction genKey () {\n return Time.now().toFixed(3)\n}\n\nfunction getStateKey () {\n return _key\n}\n\nfunction setStateKey (key) {\n _key = key;\n}\n\nfunction pushState (url, replace) {\n saveScrollPosition();\n // try...catch the pushState call to get around Safari\n // DOM Exception 18 where it limits to 100 pushState calls\n var history = window.history;\n try {\n if (replace) {\n history.replaceState({ key: _key }, '', url);\n } else {\n _key = genKey();\n history.pushState({ key: _key }, '', url);\n }\n } catch (e) {\n window.location[replace ? 'replace' : 'assign'](url);\n }\n}\n\nfunction replaceState (url) {\n pushState(url, true);\n}\n\n/* */\n\nfunction runQueue (queue, fn, cb) {\n var step = function (index) {\n if (index >= queue.length) {\n cb();\n } else {\n if (queue[index]) {\n fn(queue[index], function () {\n step(index + 1);\n });\n } else {\n step(index + 1);\n }\n }\n };\n step(0);\n}\n\n/* */\n\nfunction resolveAsyncComponents (matched) {\n return function (to, from, next) {\n var hasAsync = false;\n var pending = 0;\n var error = null;\n\n flatMapComponents(matched, function (def, _, match, key) {\n // if it's a function and doesn't have cid attached,\n // assume it's an async component resolve function.\n // we are not using Vue's default async resolving mechanism because\n // we want to halt the navigation until the incoming component has been\n // resolved.\n if (typeof def === 'function' && def.cid === undefined) {\n hasAsync = true;\n pending++;\n\n var resolve = once(function (resolvedDef) {\n if (isESModule(resolvedDef)) {\n resolvedDef = resolvedDef.default;\n }\n // save resolved on async factory in case it's used elsewhere\n def.resolved = typeof resolvedDef === 'function'\n ? resolvedDef\n : _Vue.extend(resolvedDef);\n match.components[key] = resolvedDef;\n pending--;\n if (pending <= 0) {\n next();\n }\n });\n\n var reject = once(function (reason) {\n var msg = \"Failed to resolve async component \" + key + \": \" + reason;\n process.env.NODE_ENV !== 'production' && warn(false, msg);\n if (!error) {\n error = isError(reason)\n ? reason\n : new Error(msg);\n next(error);\n }\n });\n\n var res;\n try {\n res = def(resolve, reject);\n } catch (e) {\n reject(e);\n }\n if (res) {\n if (typeof res.then === 'function') {\n res.then(resolve, reject);\n } else {\n // new syntax in Vue 2.3\n var comp = res.component;\n if (comp && typeof comp.then === 'function') {\n comp.then(resolve, reject);\n }\n }\n }\n }\n });\n\n if (!hasAsync) { next(); }\n }\n}\n\nfunction flatMapComponents (\n matched,\n fn\n) {\n return flatten(matched.map(function (m) {\n return Object.keys(m.components).map(function (key) { return fn(\n m.components[key],\n m.instances[key],\n m, key\n ); })\n }))\n}\n\nfunction flatten (arr) {\n return Array.prototype.concat.apply([], arr)\n}\n\nvar hasSymbol =\n typeof Symbol === 'function' &&\n typeof Symbol.toStringTag === 'symbol';\n\nfunction isESModule (obj) {\n return obj.__esModule || (hasSymbol && obj[Symbol.toStringTag] === 'Module')\n}\n\n// in Webpack 2, require.ensure now also returns a Promise\n// so the resolve/reject functions may get called an extra time\n// if the user uses an arrow function shorthand that happens to\n// return that Promise.\nfunction once (fn) {\n var called = false;\n return function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n if (called) { return }\n called = true;\n return fn.apply(this, args)\n }\n}\n\n/* */\n\nvar History = function History (router, base) {\n this.router = router;\n this.base = normalizeBase(base);\n // start with a route object that stands for \"nowhere\"\n this.current = START;\n this.pending = null;\n this.ready = false;\n this.readyCbs = [];\n this.readyErrorCbs = [];\n this.errorCbs = [];\n};\n\nHistory.prototype.listen = function listen (cb) {\n this.cb = cb;\n};\n\nHistory.prototype.onReady = function onReady (cb, errorCb) {\n if (this.ready) {\n cb();\n } else {\n this.readyCbs.push(cb);\n if (errorCb) {\n this.readyErrorCbs.push(errorCb);\n }\n }\n};\n\nHistory.prototype.onError = function onError (errorCb) {\n this.errorCbs.push(errorCb);\n};\n\nHistory.prototype.transitionTo = function transitionTo (location, onComplete, onAbort) {\n var this$1 = this;\n\n var route = this.router.match(location, this.current);\n this.confirmTransition(route, function () {\n this$1.updateRoute(route);\n onComplete && onComplete(route);\n this$1.ensureURL();\n\n // fire ready cbs once\n if (!this$1.ready) {\n this$1.ready = true;\n this$1.readyCbs.forEach(function (cb) { cb(route); });\n }\n }, function (err) {\n if (onAbort) {\n onAbort(err);\n }\n if (err && !this$1.ready) {\n this$1.ready = true;\n this$1.readyErrorCbs.forEach(function (cb) { cb(err); });\n }\n });\n};\n\nHistory.prototype.confirmTransition = function confirmTransition (route, onComplete, onAbort) {\n var this$1 = this;\n\n var current = this.current;\n var abort = function (err) {\n if (isError(err)) {\n if (this$1.errorCbs.length) {\n this$1.errorCbs.forEach(function (cb) { cb(err); });\n } else {\n warn(false, 'uncaught error during route navigation:');\n console.error(err);\n }\n }\n onAbort && onAbort(err);\n };\n if (\n isSameRoute(route, current) &&\n // in the case the route map has been dynamically appended to\n route.matched.length === current.matched.length\n ) {\n this.ensureURL();\n return abort()\n }\n\n var ref = resolveQueue(this.current.matched, route.matched);\n var updated = ref.updated;\n var deactivated = ref.deactivated;\n var activated = ref.activated;\n\n var queue = [].concat(\n // in-component leave guards\n extractLeaveGuards(deactivated),\n // global before hooks\n this.router.beforeHooks,\n // in-component update hooks\n extractUpdateHooks(updated),\n // in-config enter guards\n activated.map(function (m) { return m.beforeEnter; }),\n // async components\n resolveAsyncComponents(activated)\n );\n\n this.pending = route;\n var iterator = function (hook, next) {\n if (this$1.pending !== route) {\n return abort()\n }\n try {\n hook(route, current, function (to) {\n if (to === false || isError(to)) {\n // next(false) -> abort navigation, ensure current URL\n this$1.ensureURL(true);\n abort(to);\n } else if (\n typeof to === 'string' ||\n (typeof to === 'object' && (\n typeof to.path === 'string' ||\n typeof to.name === 'string'\n ))\n ) {\n // next('/') or next({ path: '/' }) -> redirect\n abort();\n if (typeof to === 'object' && to.replace) {\n this$1.replace(to);\n } else {\n this$1.push(to);\n }\n } else {\n // confirm transition and pass on the value\n next(to);\n }\n });\n } catch (e) {\n abort(e);\n }\n };\n\n runQueue(queue, iterator, function () {\n var postEnterCbs = [];\n var isValid = function () { return this$1.current === route; };\n // wait until async components are resolved before\n // extracting in-component enter guards\n var enterGuards = extractEnterGuards(activated, postEnterCbs, isValid);\n var queue = enterGuards.concat(this$1.router.resolveHooks);\n runQueue(queue, iterator, function () {\n if (this$1.pending !== route) {\n return abort()\n }\n this$1.pending = null;\n onComplete(route);\n if (this$1.router.app) {\n this$1.router.app.$nextTick(function () {\n postEnterCbs.forEach(function (cb) { cb(); });\n });\n }\n });\n });\n};\n\nHistory.prototype.updateRoute = function updateRoute (route) {\n var prev = this.current;\n this.current = route;\n this.cb && this.cb(route);\n this.router.afterHooks.forEach(function (hook) {\n hook && hook(route, prev);\n });\n};\n\nfunction normalizeBase (base) {\n if (!base) {\n if (inBrowser) {\n // respect tag\n var baseEl = document.querySelector('base');\n base = (baseEl && baseEl.getAttribute('href')) || '/';\n // strip full URL origin\n base = base.replace(/^https?:\\/\\/[^\\/]+/, '');\n } else {\n base = '/';\n }\n }\n // make sure there's the starting slash\n if (base.charAt(0) !== '/') {\n base = '/' + base;\n }\n // remove trailing slash\n return base.replace(/\\/$/, '')\n}\n\nfunction resolveQueue (\n current,\n next\n) {\n var i;\n var max = Math.max(current.length, next.length);\n for (i = 0; i < max; i++) {\n if (current[i] !== next[i]) {\n break\n }\n }\n return {\n updated: next.slice(0, i),\n activated: next.slice(i),\n deactivated: current.slice(i)\n }\n}\n\nfunction extractGuards (\n records,\n name,\n bind,\n reverse\n) {\n var guards = flatMapComponents(records, function (def, instance, match, key) {\n var guard = extractGuard(def, name);\n if (guard) {\n return Array.isArray(guard)\n ? guard.map(function (guard) { return bind(guard, instance, match, key); })\n : bind(guard, instance, match, key)\n }\n });\n return flatten(reverse ? guards.reverse() : guards)\n}\n\nfunction extractGuard (\n def,\n key\n) {\n if (typeof def !== 'function') {\n // extend now so that global mixins are applied.\n def = _Vue.extend(def);\n }\n return def.options[key]\n}\n\nfunction extractLeaveGuards (deactivated) {\n return extractGuards(deactivated, 'beforeRouteLeave', bindGuard, true)\n}\n\nfunction extractUpdateHooks (updated) {\n return extractGuards(updated, 'beforeRouteUpdate', bindGuard)\n}\n\nfunction bindGuard (guard, instance) {\n if (instance) {\n return function boundRouteGuard () {\n return guard.apply(instance, arguments)\n }\n }\n}\n\nfunction extractEnterGuards (\n activated,\n cbs,\n isValid\n) {\n return extractGuards(activated, 'beforeRouteEnter', function (guard, _, match, key) {\n return bindEnterGuard(guard, match, key, cbs, isValid)\n })\n}\n\nfunction bindEnterGuard (\n guard,\n match,\n key,\n cbs,\n isValid\n) {\n return function routeEnterGuard (to, from, next) {\n return guard(to, from, function (cb) {\n next(cb);\n if (typeof cb === 'function') {\n cbs.push(function () {\n // #750\n // if a router-view is wrapped with an out-in transition,\n // the instance may not have been registered at this time.\n // we will need to poll for registration until current route\n // is no longer valid.\n poll(cb, match.instances, key, isValid);\n });\n }\n })\n }\n}\n\nfunction poll (\n cb, // somehow flow cannot infer this is a function\n instances,\n key,\n isValid\n) {\n if (instances[key]) {\n cb(instances[key]);\n } else if (isValid()) {\n setTimeout(function () {\n poll(cb, instances, key, isValid);\n }, 16);\n }\n}\n\n/* */\n\n\nvar HTML5History = (function (History$$1) {\n function HTML5History (router, base) {\n var this$1 = this;\n\n History$$1.call(this, router, base);\n\n var expectScroll = router.options.scrollBehavior;\n\n if (expectScroll) {\n setupScroll();\n }\n\n var initLocation = getLocation(this.base);\n window.addEventListener('popstate', function (e) {\n var current = this$1.current;\n\n // Avoiding first `popstate` event dispatched in some browsers but first\n // history route not updated since async guard at the same time.\n var location = getLocation(this$1.base);\n if (this$1.current === START && location === initLocation) {\n return\n }\n\n this$1.transitionTo(location, function (route) {\n if (expectScroll) {\n handleScroll(router, route, current, true);\n }\n });\n });\n }\n\n if ( History$$1 ) HTML5History.__proto__ = History$$1;\n HTML5History.prototype = Object.create( History$$1 && History$$1.prototype );\n HTML5History.prototype.constructor = HTML5History;\n\n HTML5History.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HTML5History.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n pushState(cleanPath(this$1.base + route.fullPath));\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n replaceState(cleanPath(this$1.base + route.fullPath));\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.ensureURL = function ensureURL (push) {\n if (getLocation(this.base) !== this.current.fullPath) {\n var current = cleanPath(this.base + this.current.fullPath);\n push ? pushState(current) : replaceState(current);\n }\n };\n\n HTML5History.prototype.getCurrentLocation = function getCurrentLocation () {\n return getLocation(this.base)\n };\n\n return HTML5History;\n}(History));\n\nfunction getLocation (base) {\n var path = window.location.pathname;\n if (base && path.indexOf(base) === 0) {\n path = path.slice(base.length);\n }\n return (path || '/') + window.location.search + window.location.hash\n}\n\n/* */\n\n\nvar HashHistory = (function (History$$1) {\n function HashHistory (router, base, fallback) {\n History$$1.call(this, router, base);\n // check history fallback deeplinking\n if (fallback && checkFallback(this.base)) {\n return\n }\n ensureSlash();\n }\n\n if ( History$$1 ) HashHistory.__proto__ = History$$1;\n HashHistory.prototype = Object.create( History$$1 && History$$1.prototype );\n HashHistory.prototype.constructor = HashHistory;\n\n // this is delayed until the app mounts\n // to avoid the hashchange listener being fired too early\n HashHistory.prototype.setupListeners = function setupListeners () {\n var this$1 = this;\n\n var router = this.router;\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n setupScroll();\n }\n\n window.addEventListener(supportsPushState ? 'popstate' : 'hashchange', function () {\n var current = this$1.current;\n if (!ensureSlash()) {\n return\n }\n this$1.transitionTo(getHash(), function (route) {\n if (supportsScroll) {\n handleScroll(this$1.router, route, current, true);\n }\n if (!supportsPushState) {\n replaceHash(route.fullPath);\n }\n });\n });\n };\n\n HashHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n pushHash(route.fullPath);\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HashHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n replaceHash(route.fullPath);\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HashHistory.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HashHistory.prototype.ensureURL = function ensureURL (push) {\n var current = this.current.fullPath;\n if (getHash() !== current) {\n push ? pushHash(current) : replaceHash(current);\n }\n };\n\n HashHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n return getHash()\n };\n\n return HashHistory;\n}(History));\n\nfunction checkFallback (base) {\n var location = getLocation(base);\n if (!/^\\/#/.test(location)) {\n window.location.replace(\n cleanPath(base + '/#' + location)\n );\n return true\n }\n}\n\nfunction ensureSlash () {\n var path = getHash();\n if (path.charAt(0) === '/') {\n return true\n }\n replaceHash('/' + path);\n return false\n}\n\nfunction getHash () {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var index = href.indexOf('#');\n return index === -1 ? '' : href.slice(index + 1)\n}\n\nfunction getUrl (path) {\n var href = window.location.href;\n var i = href.indexOf('#');\n var base = i >= 0 ? href.slice(0, i) : href;\n return (base + \"#\" + path)\n}\n\nfunction pushHash (path) {\n if (supportsPushState) {\n pushState(getUrl(path));\n } else {\n window.location.hash = path;\n }\n}\n\nfunction replaceHash (path) {\n if (supportsPushState) {\n replaceState(getUrl(path));\n } else {\n window.location.replace(getUrl(path));\n }\n}\n\n/* */\n\n\nvar AbstractHistory = (function (History$$1) {\n function AbstractHistory (router, base) {\n History$$1.call(this, router, base);\n this.stack = [];\n this.index = -1;\n }\n\n if ( History$$1 ) AbstractHistory.__proto__ = History$$1;\n AbstractHistory.prototype = Object.create( History$$1 && History$$1.prototype );\n AbstractHistory.prototype.constructor = AbstractHistory;\n\n AbstractHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n this.transitionTo(location, function (route) {\n this$1.stack = this$1.stack.slice(0, this$1.index + 1).concat(route);\n this$1.index++;\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n AbstractHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n this.transitionTo(location, function (route) {\n this$1.stack = this$1.stack.slice(0, this$1.index).concat(route);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n AbstractHistory.prototype.go = function go (n) {\n var this$1 = this;\n\n var targetIndex = this.index + n;\n if (targetIndex < 0 || targetIndex >= this.stack.length) {\n return\n }\n var route = this.stack[targetIndex];\n this.confirmTransition(route, function () {\n this$1.index = targetIndex;\n this$1.updateRoute(route);\n });\n };\n\n AbstractHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n var current = this.stack[this.stack.length - 1];\n return current ? current.fullPath : '/'\n };\n\n AbstractHistory.prototype.ensureURL = function ensureURL () {\n // noop\n };\n\n return AbstractHistory;\n}(History));\n\n/* */\n\nvar VueRouter = function VueRouter (options) {\n if ( options === void 0 ) options = {};\n\n this.app = null;\n this.apps = [];\n this.options = options;\n this.beforeHooks = [];\n this.resolveHooks = [];\n this.afterHooks = [];\n this.matcher = createMatcher(options.routes || [], this);\n\n var mode = options.mode || 'hash';\n this.fallback = mode === 'history' && !supportsPushState && options.fallback !== false;\n if (this.fallback) {\n mode = 'hash';\n }\n if (!inBrowser) {\n mode = 'abstract';\n }\n this.mode = mode;\n\n switch (mode) {\n case 'history':\n this.history = new HTML5History(this, options.base);\n break\n case 'hash':\n this.history = new HashHistory(this, options.base, this.fallback);\n break\n case 'abstract':\n this.history = new AbstractHistory(this, options.base);\n break\n default:\n if (process.env.NODE_ENV !== 'production') {\n assert(false, (\"invalid mode: \" + mode));\n }\n }\n};\n\nvar prototypeAccessors = { currentRoute: { configurable: true } };\n\nVueRouter.prototype.match = function match (\n raw,\n current,\n redirectedFrom\n) {\n return this.matcher.match(raw, current, redirectedFrom)\n};\n\nprototypeAccessors.currentRoute.get = function () {\n return this.history && this.history.current\n};\n\nVueRouter.prototype.init = function init (app /* Vue component instance */) {\n var this$1 = this;\n\n process.env.NODE_ENV !== 'production' && assert(\n install.installed,\n \"not installed. Make sure to call `Vue.use(VueRouter)` \" +\n \"before creating root instance.\"\n );\n\n this.apps.push(app);\n\n // main app already initialized.\n if (this.app) {\n return\n }\n\n this.app = app;\n\n var history = this.history;\n\n if (history instanceof HTML5History) {\n history.transitionTo(history.getCurrentLocation());\n } else if (history instanceof HashHistory) {\n var setupHashListener = function () {\n history.setupListeners();\n };\n history.transitionTo(\n history.getCurrentLocation(),\n setupHashListener,\n setupHashListener\n );\n }\n\n history.listen(function (route) {\n this$1.apps.forEach(function (app) {\n app._route = route;\n });\n });\n};\n\nVueRouter.prototype.beforeEach = function beforeEach (fn) {\n return registerHook(this.beforeHooks, fn)\n};\n\nVueRouter.prototype.beforeResolve = function beforeResolve (fn) {\n return registerHook(this.resolveHooks, fn)\n};\n\nVueRouter.prototype.afterEach = function afterEach (fn) {\n return registerHook(this.afterHooks, fn)\n};\n\nVueRouter.prototype.onReady = function onReady (cb, errorCb) {\n this.history.onReady(cb, errorCb);\n};\n\nVueRouter.prototype.onError = function onError (errorCb) {\n this.history.onError(errorCb);\n};\n\nVueRouter.prototype.push = function push (location, onComplete, onAbort) {\n this.history.push(location, onComplete, onAbort);\n};\n\nVueRouter.prototype.replace = function replace (location, onComplete, onAbort) {\n this.history.replace(location, onComplete, onAbort);\n};\n\nVueRouter.prototype.go = function go (n) {\n this.history.go(n);\n};\n\nVueRouter.prototype.back = function back () {\n this.go(-1);\n};\n\nVueRouter.prototype.forward = function forward () {\n this.go(1);\n};\n\nVueRouter.prototype.getMatchedComponents = function getMatchedComponents (to) {\n var route = to\n ? to.matched\n ? to\n : this.resolve(to).route\n : this.currentRoute;\n if (!route) {\n return []\n }\n return [].concat.apply([], route.matched.map(function (m) {\n return Object.keys(m.components).map(function (key) {\n return m.components[key]\n })\n }))\n};\n\nVueRouter.prototype.resolve = function resolve (\n to,\n current,\n append\n) {\n var location = normalizeLocation(\n to,\n current || this.history.current,\n append,\n this\n );\n var route = this.match(location, current);\n var fullPath = route.redirectedFrom || route.fullPath;\n var base = this.history.base;\n var href = createHref(base, fullPath, this.mode);\n return {\n location: location,\n route: route,\n href: href,\n // for backwards compat\n normalizedTo: location,\n resolved: route\n }\n};\n\nVueRouter.prototype.addRoutes = function addRoutes (routes) {\n this.matcher.addRoutes(routes);\n if (this.history.current !== START) {\n this.history.transitionTo(this.history.getCurrentLocation());\n }\n};\n\nObject.defineProperties( VueRouter.prototype, prototypeAccessors );\n\nfunction registerHook (list, fn) {\n list.push(fn);\n return function () {\n var i = list.indexOf(fn);\n if (i > -1) { list.splice(i, 1); }\n }\n}\n\nfunction createHref (base, fullPath, mode) {\n var path = mode === 'hash' ? '#' + fullPath : fullPath;\n return base ? cleanPath(base + '/' + path) : path\n}\n\nVueRouter.install = install;\nVueRouter.version = '2.8.1';\n\nif (inBrowser && window.Vue) {\n window.Vue.use(VueRouter);\n}\n\nexport default VueRouter;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar mixin_1 = __importDefault(require(\"./mixin\"));\nexports.i18nMixin = mixin_1.default;\nvar detect_language_1 = __importDefault(require(\"./detect_language\"));\nexports.detectLanguage = detect_language_1.default;\nvar language_registry_1 = require(\"./language_registry\");\nexports.registerLanguages = language_registry_1.registerLanguages;\nvar translate_1 = __importDefault(require(\"./translate\"));\nexports.translate = translate_1.default;\nvar change_language_1 = __importDefault(require(\"./change_language\"));\nexports.changeLanguage = change_language_1.default;\nexports.$t = translate_1.default;\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread = (this && this.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar gettext_1 = require(\"./gettext\");\nfunction translate(gettext) {\n function validContext(context) {\n return typeof context === 'string' && context.length > 0;\n }\n return function execute(text, args, context) {\n if (args === void 0) { args = []; }\n var msgid = text.trim();\n if (validContext(context)) {\n msgid = context + \"\\u0004\" + msgid;\n }\n var result = gettext.apply(void 0, __spread([msgid], args));\n if (result === msgid)\n return text;\n return result;\n };\n}\nexports.translate = translate;\nexports.default = translate(gettext_1.gettext);\n//# sourceMappingURL=translate.js.map","\"use strict\";\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread = (this && this.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar gettext_js_1 = __importDefault(require(\"gettext.js\"));\nfunction ctor(i18n) {\n return {\n gettext: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return i18n.gettext.apply(i18n, __spread(args));\n },\n setLocale: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return i18n.setLocale.apply(i18n, __spread(args));\n },\n setMessages: function (domain, locale, messages, pluralForm) {\n Object.keys(messages).forEach(function (msgid) {\n var msg = messages[msgid];\n if (Array.isArray(msg)) {\n msg = msg.filter(function (m) { return m; });\n if (msg.length === 1)\n msg = msg[0];\n messages[msgid] = msg;\n }\n });\n return i18n.setMessages(domain, locale, messages, pluralForm);\n },\n };\n}\nexports.ctor = ctor;\nvar _a = ctor(gettext_js_1.default()), gettext = _a.gettext, setLocale = _a.setLocale, setMessages = _a.setMessages;\nexports.gettext = gettext;\nexports.setLocale = setLocale;\nexports.setMessages = setMessages;\n//# sourceMappingURL=gettext.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar state = {\n $currentLang: 'en-CA',\n};\nexports.default = state;\n//# sourceMappingURL=state.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.componentRegistry = new Set();\nexports.default = exports.componentRegistry;\n//# sourceMappingURL=component_registry.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar gettext_1 = require(\"./gettext\");\nfunction ctor(loaders, setMessages) {\n return {\n registerLanguages: function (languages) {\n Object.assign(loaders, languages);\n },\n loadLanguage: function (lang) {\n return __awaiter(this, void 0, void 0, function () {\n var messages;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(loaders[lang] && !loaders[lang].loaded)) return [3, 2];\n return [4, loaders[lang]()];\n case 1:\n messages = _a.sent();\n setMessages('messages', lang, messages);\n loaders[lang].loaded = true;\n _a.label = 2;\n case 2: return [2];\n }\n });\n });\n },\n };\n}\nexports.ctor = ctor;\nvar _a = ctor({}, gettext_1.setMessages), registerLanguages = _a.registerLanguages, loadLanguage = _a.loadLanguage;\nexports.registerLanguages = registerLanguages;\nexports.loadLanguage = loadLanguage;\n//# sourceMappingURL=language_registry.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar state_1 = __importDefault(require(\"./state\"));\nvar component_registry_1 = __importDefault(require(\"./component_registry\"));\nvar translate_1 = __importDefault(require(\"./translate\"));\nvar directive_1 = __importDefault(require(\"./directive\"));\nvar change_language_1 = __importDefault(require(\"./change_language\"));\n;\nfunction mixin(componentRegistry, state, translate, changeLanguage) {\n return {\n directives: {\n t: directive_1.default,\n translate: directive_1.default,\n },\n data: function () {\n return state;\n },\n computed: {\n $lang: function () {\n return state.$currentLang;\n },\n },\n methods: {\n $t: translate,\n $setLang: changeLanguage,\n },\n beforeCreate: function () {\n componentRegistry.add(this);\n },\n destroyed: function () {\n componentRegistry.delete(this);\n },\n };\n}\nexports.mixin = mixin;\nexports.default = mixin(component_registry_1.default, state_1.default, translate_1.default, change_language_1.default);\n//# sourceMappingURL=mixin.js.map","/*! gettext.js - Guillaume Potier - MIT Licensed */\n(function (root, undef) {\n var i18n = function (options) {\n options = options || {};\n this.__version = '0.5.3';\n\n // default values that could be overriden in i18n() construct\n var defaults = {\n domain: 'messages',\n locale: (typeof document !== 'undefined' ? document.documentElement.getAttribute('lang') : false) || 'en',\n plural_func: function (n) { return { nplurals: 2, plural: (n!=1) ? 1 : 0 }; },\n ctxt_delimiter: String.fromCharCode(4) // \\u0004\n };\n\n // handy mixins taken from underscode.js\n var _ = {\n isObject: function (obj) {\n var type = typeof obj;\n return type === 'function' || type === 'object' && !!obj;\n },\n isArray: function (obj) {\n return toString.call(obj) === '[object Array]';\n }\n };\n\n var\n _plural_funcs = {},\n _locale = options.locale || defaults.locale,\n _domain = options.domain || defaults.domain,\n _dictionary = {},\n _plural_forms = {},\n _ctxt_delimiter = options.ctxt_delimiter || defaults.ctxt_delimiter;\n\n if (options.messages) {\n _dictionary[_domain] = {};\n _dictionary[_domain][_locale] = options.messages;\n }\n\n if (options.plural_forms) {\n _plural_forms[_locale] = options.plural_forms;\n }\n\n // sprintf equivalent, takes a string and some arguments to make a computed string\n // eg: strfmt(\"%1 dogs are in %2\", 7, \"the kitchen\"); => \"7 dogs are in the kitchen\"\n // eg: strfmt(\"I like %1, bananas and %1\", \"apples\"); => \"I like apples, bananas and apples\"\n var strfmt = function (fmt) {\n var args = arguments;\n\n return fmt\n // put space after double % to prevent placeholder replacement of such matches\n .replace(/%%/g, '%% ')\n // replace placeholders\n .replace(/%(\\d+)/g, function (str, p1) {\n return args[p1];\n })\n // replace double % and space with single %\n .replace(/%% /g, '%')\n };\n\n var expand_locale = function(locale) {\n var locales = [locale],\n i = locale.lastIndexOf('-');\n while (i > 0) {\n locale = locale.slice(0, i);\n locales.push(locale);\n i = locale.lastIndexOf('-');\n }\n return locales;\n };\n\n var getPluralFunc = function (plural_form) {\n // Plural form string regexp\n // taken from https://github.com/Orange-OpenSource/gettext.js/blob/master/lib.gettext.js\n // plural forms list available here http://localization-guide.readthedocs.org/en/latest/l10n/pluralforms.html\n var pf_re = new RegExp('^\\\\s*nplurals\\\\s*=\\\\s*[0-9]+\\\\s*;\\\\s*plural\\\\s*=\\\\s*(?:\\\\s|[-\\\\?\\\\|&=!<>+*/%:;n0-9_\\(\\)])+');\n\n if (!pf_re.test(plural_form))\n throw new Error(strfmt('The plural form \"%1\" is not valid', plural_form));\n\n // Careful here, this is a hidden eval() equivalent..\n // Risk should be reasonable though since we test the plural_form through regex before\n // taken from https://github.com/Orange-OpenSource/gettext.js/blob/master/lib.gettext.js\n // TODO: should test if https://github.com/soney/jsep present and use it if so\n return new Function(\"n\", 'var plural, nplurals; '+ plural_form +' return { nplurals: nplurals, plural: (plural === true ? 1 : (plural ? plural : 0)) };');\n };\n\n // Proper translation function that handle plurals and directives\n // Contains juicy parts of https://github.com/Orange-OpenSource/gettext.js/blob/master/lib.gettext.js\n var t = function (messages, n, options /* ,extra */) {\n // Singular is very easy, just pass dictionnary message through strfmt\n if (1 === messages.length)\n return strfmt.apply(this, [messages[0]].concat(Array.prototype.slice.call(arguments, 3)));\n\n var plural;\n\n // if a plural func is given, use that one\n if (options.plural_func) {\n plural = options.plural_func(n);\n\n // if plural form never interpreted before, do it now and store it\n } else if (!_plural_funcs[_locale]) {\n _plural_funcs[_locale] = getPluralFunc(_plural_forms[_locale]);\n plural = _plural_funcs[_locale](n);\n\n // we have the plural function, compute the plural result\n } else {\n plural = _plural_funcs[_locale](n);\n }\n\n // If there is a problem with plurals, fallback to singular one\n if ('undefined' === typeof plural.plural || plural.plural > plural.nplurals || messages.length <= plural.plural)\n plural.plural = 0;\n\n return strfmt.apply(this, [messages[plural.plural], n].concat(Array.prototype.slice.call(arguments, 3)));\n };\n\n return {\n strfmt: strfmt, // expose strfmt util\n expand_locale: expand_locale, // expose expand_locale util\n\n // Declare shortcuts\n __: function () { return this.gettext.apply(this, arguments); },\n _n: function () { return this.ngettext.apply(this, arguments); },\n _p: function () { return this.pgettext.apply(this, arguments); },\n\n setMessages: function (domain, locale, messages, plural_forms) {\n if (!domain || !locale || !messages)\n throw new Error('You must provide a domain, a locale and messages');\n\n if ('string' !== typeof domain || 'string' !== typeof locale || !_.isObject(messages))\n throw new Error('Invalid arguments');\n\n if (plural_forms)\n _plural_forms[locale] = plural_forms;\n\n if (!_dictionary[domain])\n _dictionary[domain] = {};\n\n _dictionary[domain][locale] = messages;\n\n return this;\n },\n loadJSON: function (jsonData, domain) {\n if (!_.isObject(jsonData))\n jsonData = JSON.parse(jsonData);\n\n if (!jsonData[''] || !jsonData['']['language'] || !jsonData['']['plural-forms'])\n throw new Error('Wrong JSON, it must have an empty key (\"\") with \"language\" and \"plural-forms\" information');\n\n var headers = jsonData[''];\n delete jsonData[''];\n\n return this.setMessages(domain || defaults.domain, headers['language'], jsonData, headers['plural-forms']);\n },\n setLocale: function (locale) {\n _locale = locale;\n return this;\n },\n getLocale: function () {\n return _locale;\n },\n // getter/setter for domain\n textdomain: function (domain) {\n if (!domain)\n return _domain;\n _domain = domain;\n return this;\n },\n gettext: function (msgid /* , extra */) {\n return this.dcnpgettext.apply(this, [undef, undef, msgid, undef, undef].concat(Array.prototype.slice.call(arguments, 1)));\n },\n ngettext: function (msgid, msgid_plural, n /* , extra */) {\n return this.dcnpgettext.apply(this, [undef, undef, msgid, msgid_plural, n].concat(Array.prototype.slice.call(arguments, 3)));\n },\n pgettext: function (msgctxt, msgid /* , extra */) {\n return this.dcnpgettext.apply(this, [undef, msgctxt, msgid, undef, undef].concat(Array.prototype.slice.call(arguments, 2)));\n },\n dcnpgettext: function (domain, msgctxt, msgid, msgid_plural, n /* , extra */) {\n domain = domain || _domain;\n\n if ('string' !== typeof msgid)\n throw new Error(this.strfmt('Msgid \"%1\" is not a valid translatable string', msgid));\n\n var\n translation,\n options = {},\n key = msgctxt ? msgctxt + _ctxt_delimiter + msgid : msgid,\n exist,\n locale;\n var locales = expand_locale(_locale);\n for (var i in locales) {\n locale = locales[i];\n exist = _dictionary[domain] && _dictionary[domain][locale] && _dictionary[domain][locale][key];\n\n // because it's not possible to define both a singular and a plural form of the same msgid,\n // we need to check that the stored form is the same as the expected one.\n // if not, we'll just ignore the translation and consider it as not translated.\n if (msgid_plural) {\n exist = exist && \"string\" !== typeof _dictionary[domain][locale][key];\n } else {\n exist = exist && \"string\" === typeof _dictionary[domain][locale][key];\n }\n if (exist) {\n break;\n }\n }\n\n if (!exist) {\n translation = msgid;\n options.plural_func = defaults.plural_func;\n } else {\n translation = _dictionary[domain][locale][key];\n }\n\n // Singular form\n if (!msgid_plural)\n return t.apply(this, [[translation], n, options].concat(Array.prototype.slice.call(arguments, 5)));\n\n // Plural one\n return t.apply(this, [exist ? translation : [msgid, msgid_plural], n, options].concat(Array.prototype.slice.call(arguments, 5)));\n }\n };\n };\n\n // Handle node, commonjs\n if (typeof exports !== 'undefined') {\n if (typeof module !== 'undefined' && module.exports)\n exports = module.exports = i18n;\n exports.i18n = i18n;\n\n // Handle AMD\n } else if (typeof define === 'function' && define.amd) {\n define(function() { return i18n; });\n\n // Standard window browser\n } else {\n root['i18n'] = i18n;\n }\n})(this);\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar html_to_msgid_1 = __importDefault(require(\"./html_to_msgid\"));\nvar translate_1 = __importDefault(require(\"./translate\"));\nfunction directive(htmlToMsgId, translate) {\n return {\n bind: function (el, _a) {\n var value = _a.value;\n el.dataset.msgid = htmlToMsgId(el.innerHTML);\n var context = el.getAttribute('context');\n el.innerHTML = translate(el.dataset.msgid, value, context);\n },\n update: function (el, _a) {\n var value = _a.value;\n var context = el.getAttribute('context');\n el.innerHTML = translate(el.dataset.msgid, value, context);\n },\n };\n}\nexports.directive = directive;\nexports.default = directive(html_to_msgid_1.default, translate_1.default);\n//# sourceMappingURL=directive.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction htmlToMsgId(html) {\n var result = html.trim().replace(/ data-v-[a-z0-9]+=\"\"/g, '');\n return unescapeEntities(result);\n}\nexports.default = htmlToMsgId;\nfunction unescapeEntities(html) {\n return html\n .replace('&', '&')\n .replace('<', '<')\n .replace('>', '>');\n}\nexports.unescapeEntities = unescapeEntities;\n//# sourceMappingURL=html_to_msgid.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar change_language_1 = __importDefault(require(\"./change_language\"));\nfunction detectLanguage(window, changeLanguage) {\n return function execute() {\n return __awaiter(this, void 0, void 0, function () {\n var navigator, location, browserLanguage;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n navigator = window.navigator, location = window.location;\n browserLanguage = navigator.language;\n if (!(browserLanguage.match(/fr/) || location.search.match(/lang=fr/))) return [3, 2];\n return [4, changeLanguage('fr-CA')];\n case 1:\n _a.sent();\n return [2];\n case 2: return [4, changeLanguage('en-CA')];\n case 3:\n _a.sent();\n return [2];\n }\n });\n });\n };\n}\nexports.detectLanguage = detectLanguage;\nexports.default = detectLanguage(window, change_language_1.default);\n//# sourceMappingURL=detect_language.js.map","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functioal component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar gettext_1 = require(\"./gettext\");\nvar state_1 = __importDefault(require(\"./state\"));\nvar component_registry_1 = require(\"./component_registry\");\nvar language_registry_1 = require(\"./language_registry\");\nfunction changeLanguage(state, components, loadLanguage, setLocale, console) {\n return function execute(lang) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4, loadLanguage(lang)];\n case 1:\n _a.sent();\n setLocale(lang);\n console.debug(\"changed language to \" + lang);\n state.$currentLang = lang;\n components.forEach(function (vm) {\n vm.$data.$currentLang = lang;\n vm.$forceUpdate();\n });\n return [2];\n }\n });\n });\n };\n}\nexports.changeLanguage = changeLanguage;\nexports.default = changeLanguage(state_1.default, component_registry_1.componentRegistry, language_registry_1.loadLanguage, gettext_1.setLocale, console);\n//# sourceMappingURL=change_language.js.map","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function (useSourceMap) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item, useSourceMap);\n\n if (item[2]) {\n return '@media ' + item[2] + '{' + content + '}';\n } else {\n return content;\n }\n }).join('');\n }; // import a list of modules into the list\n\n\n list.i = function (modules, mediaQuery) {\n if (typeof modules === 'string') {\n modules = [[null, modules, '']];\n }\n\n var alreadyImportedModules = {};\n\n for (var i = 0; i < this.length; i++) {\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n\n for (i = 0; i < modules.length; i++) {\n var item = modules[i]; // skip already imported module\n // this implementation is not 100% perfect for weird media query combinations\n // when a module is imported multiple times with different media queries.\n // I hope this will never occur (Hey this way we have smaller bundles)\n\n if (item[0] == null || !alreadyImportedModules[item[0]]) {\n if (mediaQuery && !item[2]) {\n item[2] = mediaQuery;\n } else if (mediaQuery) {\n item[2] = '(' + item[2] + ') and (' + mediaQuery + ')';\n }\n\n list.push(item);\n }\n }\n };\n\n return list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n var content = item[1] || '';\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (useSourceMap && typeof btoa === 'function') {\n var sourceMapping = toComment(cssMapping);\n var sourceURLs = cssMapping.sources.map(function (source) {\n return '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */';\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n }\n\n return [content].join('\\n');\n} // Adapted from convert-source-map (MIT)\n\n\nfunction toComment(sourceMap) {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n var data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n return '/*# ' + data + ' */';\n}","/*!\n * Vue.js v2.6.10\n * (c) 2014-2019 Evan You\n * Released under the MIT License.\n */\n/* */\n\nvar emptyObject = Object.freeze({});\n\n// These helpers produce better VM code in JS engines due to their\n// explicitness and function inlining.\nfunction isUndef (v) {\n return v === undefined || v === null\n}\n\nfunction isDef (v) {\n return v !== undefined && v !== null\n}\n\nfunction isTrue (v) {\n return v === true\n}\n\nfunction isFalse (v) {\n return v === false\n}\n\n/**\n * Check if value is primitive.\n */\nfunction isPrimitive (value) {\n return (\n typeof value === 'string' ||\n typeof value === 'number' ||\n // $flow-disable-line\n typeof value === 'symbol' ||\n typeof value === 'boolean'\n )\n}\n\n/**\n * Quick object check - this is primarily used to tell\n * Objects from primitive values when we know the value\n * is a JSON-compliant type.\n */\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\n/**\n * Get the raw type string of a value, e.g., [object Object].\n */\nvar _toString = Object.prototype.toString;\n\nfunction toRawType (value) {\n return _toString.call(value).slice(8, -1)\n}\n\n/**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\nfunction isPlainObject (obj) {\n return _toString.call(obj) === '[object Object]'\n}\n\nfunction isRegExp (v) {\n return _toString.call(v) === '[object RegExp]'\n}\n\n/**\n * Check if val is a valid array index.\n */\nfunction isValidArrayIndex (val) {\n var n = parseFloat(String(val));\n return n >= 0 && Math.floor(n) === n && isFinite(val)\n}\n\nfunction isPromise (val) {\n return (\n isDef(val) &&\n typeof val.then === 'function' &&\n typeof val.catch === 'function'\n )\n}\n\n/**\n * Convert a value to a string that is actually rendered.\n */\nfunction toString (val) {\n return val == null\n ? ''\n : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)\n ? JSON.stringify(val, null, 2)\n : String(val)\n}\n\n/**\n * Convert an input value to a number for persistence.\n * If the conversion fails, return original string.\n */\nfunction toNumber (val) {\n var n = parseFloat(val);\n return isNaN(n) ? val : n\n}\n\n/**\n * Make a map and return a function for checking if a key\n * is in that map.\n */\nfunction makeMap (\n str,\n expectsLowerCase\n) {\n var map = Object.create(null);\n var list = str.split(',');\n for (var i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase\n ? function (val) { return map[val.toLowerCase()]; }\n : function (val) { return map[val]; }\n}\n\n/**\n * Check if a tag is a built-in tag.\n */\nvar isBuiltInTag = makeMap('slot,component', true);\n\n/**\n * Check if an attribute is a reserved attribute.\n */\nvar isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');\n\n/**\n * Remove an item from an array.\n */\nfunction remove (arr, item) {\n if (arr.length) {\n var index = arr.indexOf(item);\n if (index > -1) {\n return arr.splice(index, 1)\n }\n }\n}\n\n/**\n * Check whether an object has the property.\n */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n return hasOwnProperty.call(obj, key)\n}\n\n/**\n * Create a cached version of a pure function.\n */\nfunction cached (fn) {\n var cache = Object.create(null);\n return (function cachedFn (str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str))\n })\n}\n\n/**\n * Camelize a hyphen-delimited string.\n */\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })\n});\n\n/**\n * Capitalize a string.\n */\nvar capitalize = cached(function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1)\n});\n\n/**\n * Hyphenate a camelCase string.\n */\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cached(function (str) {\n return str.replace(hyphenateRE, '-$1').toLowerCase()\n});\n\n/**\n * Simple bind polyfill for environments that do not support it,\n * e.g., PhantomJS 1.x. Technically, we don't need this anymore\n * since native bind is now performant enough in most browsers.\n * But removing it would mean breaking code that was able to run in\n * PhantomJS 1.x, so this must be kept for backward compatibility.\n */\n\n/* istanbul ignore next */\nfunction polyfillBind (fn, ctx) {\n function boundFn (a) {\n var l = arguments.length;\n return l\n ? l > 1\n ? fn.apply(ctx, arguments)\n : fn.call(ctx, a)\n : fn.call(ctx)\n }\n\n boundFn._length = fn.length;\n return boundFn\n}\n\nfunction nativeBind (fn, ctx) {\n return fn.bind(ctx)\n}\n\nvar bind = Function.prototype.bind\n ? nativeBind\n : polyfillBind;\n\n/**\n * Convert an Array-like object to a real Array.\n */\nfunction toArray (list, start) {\n start = start || 0;\n var i = list.length - start;\n var ret = new Array(i);\n while (i--) {\n ret[i] = list[i + start];\n }\n return ret\n}\n\n/**\n * Mix properties into target object.\n */\nfunction extend (to, _from) {\n for (var key in _from) {\n to[key] = _from[key];\n }\n return to\n}\n\n/**\n * Merge an Array of Objects into a single Object.\n */\nfunction toObject (arr) {\n var res = {};\n for (var i = 0; i < arr.length; i++) {\n if (arr[i]) {\n extend(res, arr[i]);\n }\n }\n return res\n}\n\n/* eslint-disable no-unused-vars */\n\n/**\n * Perform no operation.\n * Stubbing args to make Flow happy without leaving useless transpiled code\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).\n */\nfunction noop (a, b, c) {}\n\n/**\n * Always return false.\n */\nvar no = function (a, b, c) { return false; };\n\n/* eslint-enable no-unused-vars */\n\n/**\n * Return the same value.\n */\nvar identity = function (_) { return _; };\n\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n */\nfunction looseEqual (a, b) {\n if (a === b) { return true }\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = Array.isArray(a);\n var isArrayB = Array.isArray(b);\n if (isArrayA && isArrayB) {\n return a.length === b.length && a.every(function (e, i) {\n return looseEqual(e, b[i])\n })\n } else if (a instanceof Date && b instanceof Date) {\n return a.getTime() === b.getTime()\n } else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return keysA.length === keysB.length && keysA.every(function (key) {\n return looseEqual(a[key], b[key])\n })\n } else {\n /* istanbul ignore next */\n return false\n }\n } catch (e) {\n /* istanbul ignore next */\n return false\n }\n } else if (!isObjectA && !isObjectB) {\n return String(a) === String(b)\n } else {\n return false\n }\n}\n\n/**\n * Return the first index at which a loosely equal value can be\n * found in the array (if value is a plain object, the array must\n * contain an object of the same shape), or -1 if it is not present.\n */\nfunction looseIndexOf (arr, val) {\n for (var i = 0; i < arr.length; i++) {\n if (looseEqual(arr[i], val)) { return i }\n }\n return -1\n}\n\n/**\n * Ensure a function is called only once.\n */\nfunction once (fn) {\n var called = false;\n return function () {\n if (!called) {\n called = true;\n fn.apply(this, arguments);\n }\n }\n}\n\nvar SSR_ATTR = 'data-server-rendered';\n\nvar ASSET_TYPES = [\n 'component',\n 'directive',\n 'filter'\n];\n\nvar LIFECYCLE_HOOKS = [\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUpdate',\n 'updated',\n 'beforeDestroy',\n 'destroyed',\n 'activated',\n 'deactivated',\n 'errorCaptured',\n 'serverPrefetch'\n];\n\n/* */\n\n\n\nvar config = ({\n /**\n * Option merge strategies (used in core/util/options)\n */\n // $flow-disable-line\n optionMergeStrategies: Object.create(null),\n\n /**\n * Whether to suppress warnings.\n */\n silent: false,\n\n /**\n * Show production mode tip message on boot?\n */\n productionTip: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to enable devtools\n */\n devtools: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to record perf\n */\n performance: false,\n\n /**\n * Error handler for watcher errors\n */\n errorHandler: null,\n\n /**\n * Warn handler for watcher warns\n */\n warnHandler: null,\n\n /**\n * Ignore certain custom elements\n */\n ignoredElements: [],\n\n /**\n * Custom user key aliases for v-on\n */\n // $flow-disable-line\n keyCodes: Object.create(null),\n\n /**\n * Check if a tag is reserved so that it cannot be registered as a\n * component. This is platform-dependent and may be overwritten.\n */\n isReservedTag: no,\n\n /**\n * Check if an attribute is reserved so that it cannot be used as a component\n * prop. This is platform-dependent and may be overwritten.\n */\n isReservedAttr: no,\n\n /**\n * Check if a tag is an unknown element.\n * Platform-dependent.\n */\n isUnknownElement: no,\n\n /**\n * Get the namespace of an element\n */\n getTagNamespace: noop,\n\n /**\n * Parse the real tag name for the specific platform.\n */\n parsePlatformTagName: identity,\n\n /**\n * Check if an attribute must be bound using property, e.g. value\n * Platform-dependent.\n */\n mustUseProp: no,\n\n /**\n * Perform updates asynchronously. Intended to be used by Vue Test Utils\n * This will significantly reduce performance if set to false.\n */\n async: true,\n\n /**\n * Exposed for legacy reasons\n */\n _lifecycleHooks: LIFECYCLE_HOOKS\n});\n\n/* */\n\n/**\n * unicode letters used for parsing html tags, component names and property paths.\n * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname\n * skipping \\u10000-\\uEFFFF due to it freezing up PhantomJS\n */\nvar unicodeRegExp = /a-zA-Z\\u00B7\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u203F-\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD/;\n\n/**\n * Check if a string starts with $ or _\n */\nfunction isReserved (str) {\n var c = (str + '').charCodeAt(0);\n return c === 0x24 || c === 0x5F\n}\n\n/**\n * Define a property.\n */\nfunction def (obj, key, val, enumerable) {\n Object.defineProperty(obj, key, {\n value: val,\n enumerable: !!enumerable,\n writable: true,\n configurable: true\n });\n}\n\n/**\n * Parse simple path.\n */\nvar bailRE = new RegExp((\"[^\" + (unicodeRegExp.source) + \".$_\\\\d]\"));\nfunction parsePath (path) {\n if (bailRE.test(path)) {\n return\n }\n var segments = path.split('.');\n return function (obj) {\n for (var i = 0; i < segments.length; i++) {\n if (!obj) { return }\n obj = obj[segments[i]];\n }\n return obj\n }\n}\n\n/* */\n\n// can we use __proto__?\nvar hasProto = '__proto__' in {};\n\n// Browser environment sniffing\nvar inBrowser = typeof window !== 'undefined';\nvar inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;\nvar weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();\nvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\nvar isIE = UA && /msie|trident/.test(UA);\nvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nvar isEdge = UA && UA.indexOf('edge/') > 0;\nvar isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');\nvar isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');\nvar isChrome = UA && /chrome\\/\\d+/.test(UA) && !isEdge;\nvar isPhantomJS = UA && /phantomjs/.test(UA);\nvar isFF = UA && UA.match(/firefox\\/(\\d+)/);\n\n// Firefox has a \"watch\" function on Object.prototype...\nvar nativeWatch = ({}).watch;\n\nvar supportsPassive = false;\nif (inBrowser) {\n try {\n var opts = {};\n Object.defineProperty(opts, 'passive', ({\n get: function get () {\n /* istanbul ignore next */\n supportsPassive = true;\n }\n })); // https://github.com/facebook/flow/issues/285\n window.addEventListener('test-passive', null, opts);\n } catch (e) {}\n}\n\n// this needs to be lazy-evaled because vue may be required before\n// vue-server-renderer can set VUE_ENV\nvar _isServer;\nvar isServerRendering = function () {\n if (_isServer === undefined) {\n /* istanbul ignore if */\n if (!inBrowser && !inWeex && typeof global !== 'undefined') {\n // detect presence of vue-server-renderer and avoid\n // Webpack shimming the process\n _isServer = global['process'] && global['process'].env.VUE_ENV === 'server';\n } else {\n _isServer = false;\n }\n }\n return _isServer\n};\n\n// detect devtools\nvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\n/* istanbul ignore next */\nfunction isNative (Ctor) {\n return typeof Ctor === 'function' && /native code/.test(Ctor.toString())\n}\n\nvar hasSymbol =\n typeof Symbol !== 'undefined' && isNative(Symbol) &&\n typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);\n\nvar _Set;\n/* istanbul ignore if */ // $flow-disable-line\nif (typeof Set !== 'undefined' && isNative(Set)) {\n // use native Set when available.\n _Set = Set;\n} else {\n // a non-standard Set polyfill that only works with primitive keys.\n _Set = /*@__PURE__*/(function () {\n function Set () {\n this.set = Object.create(null);\n }\n Set.prototype.has = function has (key) {\n return this.set[key] === true\n };\n Set.prototype.add = function add (key) {\n this.set[key] = true;\n };\n Set.prototype.clear = function clear () {\n this.set = Object.create(null);\n };\n\n return Set;\n }());\n}\n\n/* */\n\nvar warn = noop;\nvar tip = noop;\nvar generateComponentTrace = (noop); // work around flow check\nvar formatComponentName = (noop);\n\nif (process.env.NODE_ENV !== 'production') {\n var hasConsole = typeof console !== 'undefined';\n var classifyRE = /(?:^|[-_])(\\w)/g;\n var classify = function (str) { return str\n .replace(classifyRE, function (c) { return c.toUpperCase(); })\n .replace(/[-_]/g, ''); };\n\n warn = function (msg, vm) {\n var trace = vm ? generateComponentTrace(vm) : '';\n\n if (config.warnHandler) {\n config.warnHandler.call(null, msg, vm, trace);\n } else if (hasConsole && (!config.silent)) {\n console.error((\"[Vue warn]: \" + msg + trace));\n }\n };\n\n tip = function (msg, vm) {\n if (hasConsole && (!config.silent)) {\n console.warn(\"[Vue tip]: \" + msg + (\n vm ? generateComponentTrace(vm) : ''\n ));\n }\n };\n\n formatComponentName = function (vm, includeFile) {\n if (vm.$root === vm) {\n return ''\n }\n var options = typeof vm === 'function' && vm.cid != null\n ? vm.options\n : vm._isVue\n ? vm.$options || vm.constructor.options\n : vm;\n var name = options.name || options._componentTag;\n var file = options.__file;\n if (!name && file) {\n var match = file.match(/([^/\\\\]+)\\.vue$/);\n name = match && match[1];\n }\n\n return (\n (name ? (\"<\" + (classify(name)) + \">\") : \"\") +\n (file && includeFile !== false ? (\" at \" + file) : '')\n )\n };\n\n var repeat = function (str, n) {\n var res = '';\n while (n) {\n if (n % 2 === 1) { res += str; }\n if (n > 1) { str += str; }\n n >>= 1;\n }\n return res\n };\n\n generateComponentTrace = function (vm) {\n if (vm._isVue && vm.$parent) {\n var tree = [];\n var currentRecursiveSequence = 0;\n while (vm) {\n if (tree.length > 0) {\n var last = tree[tree.length - 1];\n if (last.constructor === vm.constructor) {\n currentRecursiveSequence++;\n vm = vm.$parent;\n continue\n } else if (currentRecursiveSequence > 0) {\n tree[tree.length - 1] = [last, currentRecursiveSequence];\n currentRecursiveSequence = 0;\n }\n }\n tree.push(vm);\n vm = vm.$parent;\n }\n return '\\n\\nfound in\\n\\n' + tree\n .map(function (vm, i) { return (\"\" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)\n ? ((formatComponentName(vm[0])) + \"... (\" + (vm[1]) + \" recursive calls)\")\n : formatComponentName(vm))); })\n .join('\\n')\n } else {\n return (\"\\n\\n(found in \" + (formatComponentName(vm)) + \")\")\n }\n };\n}\n\n/* */\n\nvar uid = 0;\n\n/**\n * A dep is an observable that can have multiple\n * directives subscribing to it.\n */\nvar Dep = function Dep () {\n this.id = uid++;\n this.subs = [];\n};\n\nDep.prototype.addSub = function addSub (sub) {\n this.subs.push(sub);\n};\n\nDep.prototype.removeSub = function removeSub (sub) {\n remove(this.subs, sub);\n};\n\nDep.prototype.depend = function depend () {\n if (Dep.target) {\n Dep.target.addDep(this);\n }\n};\n\nDep.prototype.notify = function notify () {\n // stabilize the subscriber list first\n var subs = this.subs.slice();\n if (process.env.NODE_ENV !== 'production' && !config.async) {\n // subs aren't sorted in scheduler if not running async\n // we need to sort them now to make sure they fire in correct\n // order\n subs.sort(function (a, b) { return a.id - b.id; });\n }\n for (var i = 0, l = subs.length; i < l; i++) {\n subs[i].update();\n }\n};\n\n// The current target watcher being evaluated.\n// This is globally unique because only one watcher\n// can be evaluated at a time.\nDep.target = null;\nvar targetStack = [];\n\nfunction pushTarget (target) {\n targetStack.push(target);\n Dep.target = target;\n}\n\nfunction popTarget () {\n targetStack.pop();\n Dep.target = targetStack[targetStack.length - 1];\n}\n\n/* */\n\nvar VNode = function VNode (\n tag,\n data,\n children,\n text,\n elm,\n context,\n componentOptions,\n asyncFactory\n) {\n this.tag = tag;\n this.data = data;\n this.children = children;\n this.text = text;\n this.elm = elm;\n this.ns = undefined;\n this.context = context;\n this.fnContext = undefined;\n this.fnOptions = undefined;\n this.fnScopeId = undefined;\n this.key = data && data.key;\n this.componentOptions = componentOptions;\n this.componentInstance = undefined;\n this.parent = undefined;\n this.raw = false;\n this.isStatic = false;\n this.isRootInsert = true;\n this.isComment = false;\n this.isCloned = false;\n this.isOnce = false;\n this.asyncFactory = asyncFactory;\n this.asyncMeta = undefined;\n this.isAsyncPlaceholder = false;\n};\n\nvar prototypeAccessors = { child: { configurable: true } };\n\n// DEPRECATED: alias for componentInstance for backwards compat.\n/* istanbul ignore next */\nprototypeAccessors.child.get = function () {\n return this.componentInstance\n};\n\nObject.defineProperties( VNode.prototype, prototypeAccessors );\n\nvar createEmptyVNode = function (text) {\n if ( text === void 0 ) text = '';\n\n var node = new VNode();\n node.text = text;\n node.isComment = true;\n return node\n};\n\nfunction createTextVNode (val) {\n return new VNode(undefined, undefined, undefined, String(val))\n}\n\n// optimized shallow clone\n// used for static nodes and slot nodes because they may be reused across\n// multiple renders, cloning them avoids errors when DOM manipulations rely\n// on their elm reference.\nfunction cloneVNode (vnode) {\n var cloned = new VNode(\n vnode.tag,\n vnode.data,\n // #7975\n // clone children array to avoid mutating original in case of cloning\n // a child.\n vnode.children && vnode.children.slice(),\n vnode.text,\n vnode.elm,\n vnode.context,\n vnode.componentOptions,\n vnode.asyncFactory\n );\n cloned.ns = vnode.ns;\n cloned.isStatic = vnode.isStatic;\n cloned.key = vnode.key;\n cloned.isComment = vnode.isComment;\n cloned.fnContext = vnode.fnContext;\n cloned.fnOptions = vnode.fnOptions;\n cloned.fnScopeId = vnode.fnScopeId;\n cloned.asyncMeta = vnode.asyncMeta;\n cloned.isCloned = true;\n return cloned\n}\n\n/*\n * not type checking this file because flow doesn't play well with\n * dynamically accessing methods on Array prototype\n */\n\nvar arrayProto = Array.prototype;\nvar arrayMethods = Object.create(arrayProto);\n\nvar methodsToPatch = [\n 'push',\n 'pop',\n 'shift',\n 'unshift',\n 'splice',\n 'sort',\n 'reverse'\n];\n\n/**\n * Intercept mutating methods and emit events\n */\nmethodsToPatch.forEach(function (method) {\n // cache original method\n var original = arrayProto[method];\n def(arrayMethods, method, function mutator () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var result = original.apply(this, args);\n var ob = this.__ob__;\n var inserted;\n switch (method) {\n case 'push':\n case 'unshift':\n inserted = args;\n break\n case 'splice':\n inserted = args.slice(2);\n break\n }\n if (inserted) { ob.observeArray(inserted); }\n // notify change\n ob.dep.notify();\n return result\n });\n});\n\n/* */\n\nvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\n\n/**\n * In some cases we may want to disable observation inside a component's\n * update computation.\n */\nvar shouldObserve = true;\n\nfunction toggleObserving (value) {\n shouldObserve = value;\n}\n\n/**\n * Observer class that is attached to each observed\n * object. Once attached, the observer converts the target\n * object's property keys into getter/setters that\n * collect dependencies and dispatch updates.\n */\nvar Observer = function Observer (value) {\n this.value = value;\n this.dep = new Dep();\n this.vmCount = 0;\n def(value, '__ob__', this);\n if (Array.isArray(value)) {\n if (hasProto) {\n protoAugment(value, arrayMethods);\n } else {\n copyAugment(value, arrayMethods, arrayKeys);\n }\n this.observeArray(value);\n } else {\n this.walk(value);\n }\n};\n\n/**\n * Walk through all properties and convert them into\n * getter/setters. This method should only be called when\n * value type is Object.\n */\nObserver.prototype.walk = function walk (obj) {\n var keys = Object.keys(obj);\n for (var i = 0; i < keys.length; i++) {\n defineReactive$$1(obj, keys[i]);\n }\n};\n\n/**\n * Observe a list of Array items.\n */\nObserver.prototype.observeArray = function observeArray (items) {\n for (var i = 0, l = items.length; i < l; i++) {\n observe(items[i]);\n }\n};\n\n// helpers\n\n/**\n * Augment a target Object or Array by intercepting\n * the prototype chain using __proto__\n */\nfunction protoAugment (target, src) {\n /* eslint-disable no-proto */\n target.__proto__ = src;\n /* eslint-enable no-proto */\n}\n\n/**\n * Augment a target Object or Array by defining\n * hidden properties.\n */\n/* istanbul ignore next */\nfunction copyAugment (target, src, keys) {\n for (var i = 0, l = keys.length; i < l; i++) {\n var key = keys[i];\n def(target, key, src[key]);\n }\n}\n\n/**\n * Attempt to create an observer instance for a value,\n * returns the new observer if successfully observed,\n * or the existing observer if the value already has one.\n */\nfunction observe (value, asRootData) {\n if (!isObject(value) || value instanceof VNode) {\n return\n }\n var ob;\n if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\n ob = value.__ob__;\n } else if (\n shouldObserve &&\n !isServerRendering() &&\n (Array.isArray(value) || isPlainObject(value)) &&\n Object.isExtensible(value) &&\n !value._isVue\n ) {\n ob = new Observer(value);\n }\n if (asRootData && ob) {\n ob.vmCount++;\n }\n return ob\n}\n\n/**\n * Define a reactive property on an Object.\n */\nfunction defineReactive$$1 (\n obj,\n key,\n val,\n customSetter,\n shallow\n) {\n var dep = new Dep();\n\n var property = Object.getOwnPropertyDescriptor(obj, key);\n if (property && property.configurable === false) {\n return\n }\n\n // cater for pre-defined getter/setters\n var getter = property && property.get;\n var setter = property && property.set;\n if ((!getter || setter) && arguments.length === 2) {\n val = obj[key];\n }\n\n var childOb = !shallow && observe(val);\n Object.defineProperty(obj, key, {\n enumerable: true,\n configurable: true,\n get: function reactiveGetter () {\n var value = getter ? getter.call(obj) : val;\n if (Dep.target) {\n dep.depend();\n if (childOb) {\n childOb.dep.depend();\n if (Array.isArray(value)) {\n dependArray(value);\n }\n }\n }\n return value\n },\n set: function reactiveSetter (newVal) {\n var value = getter ? getter.call(obj) : val;\n /* eslint-disable no-self-compare */\n if (newVal === value || (newVal !== newVal && value !== value)) {\n return\n }\n /* eslint-enable no-self-compare */\n if (process.env.NODE_ENV !== 'production' && customSetter) {\n customSetter();\n }\n // #7981: for accessor properties without setter\n if (getter && !setter) { return }\n if (setter) {\n setter.call(obj, newVal);\n } else {\n val = newVal;\n }\n childOb = !shallow && observe(newVal);\n dep.notify();\n }\n });\n}\n\n/**\n * Set a property on an object. Adds the new property and\n * triggers change notification if the property doesn't\n * already exist.\n */\nfunction set (target, key, val) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot set reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.length = Math.max(target.length, key);\n target.splice(key, 1, val);\n return val\n }\n if (key in target && !(key in Object.prototype)) {\n target[key] = val;\n return val\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid adding reactive properties to a Vue instance or its root $data ' +\n 'at runtime - declare it upfront in the data option.'\n );\n return val\n }\n if (!ob) {\n target[key] = val;\n return val\n }\n defineReactive$$1(ob.value, key, val);\n ob.dep.notify();\n return val\n}\n\n/**\n * Delete a property and trigger change if necessary.\n */\nfunction del (target, key) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot delete reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.splice(key, 1);\n return\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid deleting properties on a Vue instance or its root $data ' +\n '- just set it to null.'\n );\n return\n }\n if (!hasOwn(target, key)) {\n return\n }\n delete target[key];\n if (!ob) {\n return\n }\n ob.dep.notify();\n}\n\n/**\n * Collect dependencies on array elements when the array is touched, since\n * we cannot intercept array element access like property getters.\n */\nfunction dependArray (value) {\n for (var e = (void 0), i = 0, l = value.length; i < l; i++) {\n e = value[i];\n e && e.__ob__ && e.__ob__.dep.depend();\n if (Array.isArray(e)) {\n dependArray(e);\n }\n }\n}\n\n/* */\n\n/**\n * Option overwriting strategies are functions that handle\n * how to merge a parent option value and a child option\n * value into the final value.\n */\nvar strats = config.optionMergeStrategies;\n\n/**\n * Options with restrictions\n */\nif (process.env.NODE_ENV !== 'production') {\n strats.el = strats.propsData = function (parent, child, vm, key) {\n if (!vm) {\n warn(\n \"option \\\"\" + key + \"\\\" can only be used during instance \" +\n 'creation with the `new` keyword.'\n );\n }\n return defaultStrat(parent, child)\n };\n}\n\n/**\n * Helper that recursively merges two data objects together.\n */\nfunction mergeData (to, from) {\n if (!from) { return to }\n var key, toVal, fromVal;\n\n var keys = hasSymbol\n ? Reflect.ownKeys(from)\n : Object.keys(from);\n\n for (var i = 0; i < keys.length; i++) {\n key = keys[i];\n // in case the object is already observed...\n if (key === '__ob__') { continue }\n toVal = to[key];\n fromVal = from[key];\n if (!hasOwn(to, key)) {\n set(to, key, fromVal);\n } else if (\n toVal !== fromVal &&\n isPlainObject(toVal) &&\n isPlainObject(fromVal)\n ) {\n mergeData(toVal, fromVal);\n }\n }\n return to\n}\n\n/**\n * Data\n */\nfunction mergeDataOrFn (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n // in a Vue.extend merge, both should be functions\n if (!childVal) {\n return parentVal\n }\n if (!parentVal) {\n return childVal\n }\n // when parentVal & childVal are both present,\n // we need to return a function that returns the\n // merged result of both functions... no need to\n // check if parentVal is a function here because\n // it has to be a function to pass previous merges.\n return function mergedDataFn () {\n return mergeData(\n typeof childVal === 'function' ? childVal.call(this, this) : childVal,\n typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal\n )\n }\n } else {\n return function mergedInstanceDataFn () {\n // instance merge\n var instanceData = typeof childVal === 'function'\n ? childVal.call(vm, vm)\n : childVal;\n var defaultData = typeof parentVal === 'function'\n ? parentVal.call(vm, vm)\n : parentVal;\n if (instanceData) {\n return mergeData(instanceData, defaultData)\n } else {\n return defaultData\n }\n }\n }\n}\n\nstrats.data = function (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n if (childVal && typeof childVal !== 'function') {\n process.env.NODE_ENV !== 'production' && warn(\n 'The \"data\" option should be a function ' +\n 'that returns a per-instance value in component ' +\n 'definitions.',\n vm\n );\n\n return parentVal\n }\n return mergeDataOrFn(parentVal, childVal)\n }\n\n return mergeDataOrFn(parentVal, childVal, vm)\n};\n\n/**\n * Hooks and props are merged as arrays.\n */\nfunction mergeHook (\n parentVal,\n childVal\n) {\n var res = childVal\n ? parentVal\n ? parentVal.concat(childVal)\n : Array.isArray(childVal)\n ? childVal\n : [childVal]\n : parentVal;\n return res\n ? dedupeHooks(res)\n : res\n}\n\nfunction dedupeHooks (hooks) {\n var res = [];\n for (var i = 0; i < hooks.length; i++) {\n if (res.indexOf(hooks[i]) === -1) {\n res.push(hooks[i]);\n }\n }\n return res\n}\n\nLIFECYCLE_HOOKS.forEach(function (hook) {\n strats[hook] = mergeHook;\n});\n\n/**\n * Assets\n *\n * When a vm is present (instance creation), we need to do\n * a three-way merge between constructor options, instance\n * options and parent options.\n */\nfunction mergeAssets (\n parentVal,\n childVal,\n vm,\n key\n) {\n var res = Object.create(parentVal || null);\n if (childVal) {\n process.env.NODE_ENV !== 'production' && assertObjectType(key, childVal, vm);\n return extend(res, childVal)\n } else {\n return res\n }\n}\n\nASSET_TYPES.forEach(function (type) {\n strats[type + 's'] = mergeAssets;\n});\n\n/**\n * Watchers.\n *\n * Watchers hashes should not overwrite one\n * another, so we merge them as arrays.\n */\nstrats.watch = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n // work around Firefox's Object.prototype.watch...\n if (parentVal === nativeWatch) { parentVal = undefined; }\n if (childVal === nativeWatch) { childVal = undefined; }\n /* istanbul ignore if */\n if (!childVal) { return Object.create(parentVal || null) }\n if (process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = {};\n extend(ret, parentVal);\n for (var key$1 in childVal) {\n var parent = ret[key$1];\n var child = childVal[key$1];\n if (parent && !Array.isArray(parent)) {\n parent = [parent];\n }\n ret[key$1] = parent\n ? parent.concat(child)\n : Array.isArray(child) ? child : [child];\n }\n return ret\n};\n\n/**\n * Other object hashes.\n */\nstrats.props =\nstrats.methods =\nstrats.inject =\nstrats.computed = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n if (childVal && process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = Object.create(null);\n extend(ret, parentVal);\n if (childVal) { extend(ret, childVal); }\n return ret\n};\nstrats.provide = mergeDataOrFn;\n\n/**\n * Default strategy.\n */\nvar defaultStrat = function (parentVal, childVal) {\n return childVal === undefined\n ? parentVal\n : childVal\n};\n\n/**\n * Validate component names\n */\nfunction checkComponents (options) {\n for (var key in options.components) {\n validateComponentName(key);\n }\n}\n\nfunction validateComponentName (name) {\n if (!new RegExp((\"^[a-zA-Z][\\\\-\\\\.0-9_\" + (unicodeRegExp.source) + \"]*$\")).test(name)) {\n warn(\n 'Invalid component name: \"' + name + '\". Component names ' +\n 'should conform to valid custom element name in html5 specification.'\n );\n }\n if (isBuiltInTag(name) || config.isReservedTag(name)) {\n warn(\n 'Do not use built-in or reserved HTML elements as component ' +\n 'id: ' + name\n );\n }\n}\n\n/**\n * Ensure all props option syntax are normalized into the\n * Object-based format.\n */\nfunction normalizeProps (options, vm) {\n var props = options.props;\n if (!props) { return }\n var res = {};\n var i, val, name;\n if (Array.isArray(props)) {\n i = props.length;\n while (i--) {\n val = props[i];\n if (typeof val === 'string') {\n name = camelize(val);\n res[name] = { type: null };\n } else if (process.env.NODE_ENV !== 'production') {\n warn('props must be strings when using array syntax.');\n }\n }\n } else if (isPlainObject(props)) {\n for (var key in props) {\n val = props[key];\n name = camelize(key);\n res[name] = isPlainObject(val)\n ? val\n : { type: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"props\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(props)) + \".\",\n vm\n );\n }\n options.props = res;\n}\n\n/**\n * Normalize all injections into Object-based format\n */\nfunction normalizeInject (options, vm) {\n var inject = options.inject;\n if (!inject) { return }\n var normalized = options.inject = {};\n if (Array.isArray(inject)) {\n for (var i = 0; i < inject.length; i++) {\n normalized[inject[i]] = { from: inject[i] };\n }\n } else if (isPlainObject(inject)) {\n for (var key in inject) {\n var val = inject[key];\n normalized[key] = isPlainObject(val)\n ? extend({ from: key }, val)\n : { from: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"inject\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(inject)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Normalize raw function directives into object format.\n */\nfunction normalizeDirectives (options) {\n var dirs = options.directives;\n if (dirs) {\n for (var key in dirs) {\n var def$$1 = dirs[key];\n if (typeof def$$1 === 'function') {\n dirs[key] = { bind: def$$1, update: def$$1 };\n }\n }\n }\n}\n\nfunction assertObjectType (name, value, vm) {\n if (!isPlainObject(value)) {\n warn(\n \"Invalid value for option \\\"\" + name + \"\\\": expected an Object, \" +\n \"but got \" + (toRawType(value)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Merge two option objects into a new one.\n * Core utility used in both instantiation and inheritance.\n */\nfunction mergeOptions (\n parent,\n child,\n vm\n) {\n if (process.env.NODE_ENV !== 'production') {\n checkComponents(child);\n }\n\n if (typeof child === 'function') {\n child = child.options;\n }\n\n normalizeProps(child, vm);\n normalizeInject(child, vm);\n normalizeDirectives(child);\n\n // Apply extends and mixins on the child options,\n // but only if it is a raw options object that isn't\n // the result of another mergeOptions call.\n // Only merged options has the _base property.\n if (!child._base) {\n if (child.extends) {\n parent = mergeOptions(parent, child.extends, vm);\n }\n if (child.mixins) {\n for (var i = 0, l = child.mixins.length; i < l; i++) {\n parent = mergeOptions(parent, child.mixins[i], vm);\n }\n }\n }\n\n var options = {};\n var key;\n for (key in parent) {\n mergeField(key);\n }\n for (key in child) {\n if (!hasOwn(parent, key)) {\n mergeField(key);\n }\n }\n function mergeField (key) {\n var strat = strats[key] || defaultStrat;\n options[key] = strat(parent[key], child[key], vm, key);\n }\n return options\n}\n\n/**\n * Resolve an asset.\n * This function is used because child instances need access\n * to assets defined in its ancestor chain.\n */\nfunction resolveAsset (\n options,\n type,\n id,\n warnMissing\n) {\n /* istanbul ignore if */\n if (typeof id !== 'string') {\n return\n }\n var assets = options[type];\n // check local registration variations first\n if (hasOwn(assets, id)) { return assets[id] }\n var camelizedId = camelize(id);\n if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }\n var PascalCaseId = capitalize(camelizedId);\n if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }\n // fallback to prototype chain\n var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];\n if (process.env.NODE_ENV !== 'production' && warnMissing && !res) {\n warn(\n 'Failed to resolve ' + type.slice(0, -1) + ': ' + id,\n options\n );\n }\n return res\n}\n\n/* */\n\n\n\nfunction validateProp (\n key,\n propOptions,\n propsData,\n vm\n) {\n var prop = propOptions[key];\n var absent = !hasOwn(propsData, key);\n var value = propsData[key];\n // boolean casting\n var booleanIndex = getTypeIndex(Boolean, prop.type);\n if (booleanIndex > -1) {\n if (absent && !hasOwn(prop, 'default')) {\n value = false;\n } else if (value === '' || value === hyphenate(key)) {\n // only cast empty string / same name to boolean if\n // boolean has higher priority\n var stringIndex = getTypeIndex(String, prop.type);\n if (stringIndex < 0 || booleanIndex < stringIndex) {\n value = true;\n }\n }\n }\n // check default value\n if (value === undefined) {\n value = getPropDefaultValue(vm, prop, key);\n // since the default value is a fresh copy,\n // make sure to observe it.\n var prevShouldObserve = shouldObserve;\n toggleObserving(true);\n observe(value);\n toggleObserving(prevShouldObserve);\n }\n if (\n process.env.NODE_ENV !== 'production' &&\n // skip validation for weex recycle-list child component props\n !(false)\n ) {\n assertProp(prop, key, value, vm, absent);\n }\n return value\n}\n\n/**\n * Get the default value of a prop.\n */\nfunction getPropDefaultValue (vm, prop, key) {\n // no default, return undefined\n if (!hasOwn(prop, 'default')) {\n return undefined\n }\n var def = prop.default;\n // warn against non-factory defaults for Object & Array\n if (process.env.NODE_ENV !== 'production' && isObject(def)) {\n warn(\n 'Invalid default value for prop \"' + key + '\": ' +\n 'Props with type Object/Array must use a factory function ' +\n 'to return the default value.',\n vm\n );\n }\n // the raw prop value was also undefined from previous render,\n // return previous default value to avoid unnecessary watcher trigger\n if (vm && vm.$options.propsData &&\n vm.$options.propsData[key] === undefined &&\n vm._props[key] !== undefined\n ) {\n return vm._props[key]\n }\n // call factory function for non-Function types\n // a value is Function if its prototype is function even across different execution context\n return typeof def === 'function' && getType(prop.type) !== 'Function'\n ? def.call(vm)\n : def\n}\n\n/**\n * Assert whether a prop is valid.\n */\nfunction assertProp (\n prop,\n name,\n value,\n vm,\n absent\n) {\n if (prop.required && absent) {\n warn(\n 'Missing required prop: \"' + name + '\"',\n vm\n );\n return\n }\n if (value == null && !prop.required) {\n return\n }\n var type = prop.type;\n var valid = !type || type === true;\n var expectedTypes = [];\n if (type) {\n if (!Array.isArray(type)) {\n type = [type];\n }\n for (var i = 0; i < type.length && !valid; i++) {\n var assertedType = assertType(value, type[i]);\n expectedTypes.push(assertedType.expectedType || '');\n valid = assertedType.valid;\n }\n }\n\n if (!valid) {\n warn(\n getInvalidTypeMessage(name, value, expectedTypes),\n vm\n );\n return\n }\n var validator = prop.validator;\n if (validator) {\n if (!validator(value)) {\n warn(\n 'Invalid prop: custom validator check failed for prop \"' + name + '\".',\n vm\n );\n }\n }\n}\n\nvar simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/;\n\nfunction assertType (value, type) {\n var valid;\n var expectedType = getType(type);\n if (simpleCheckRE.test(expectedType)) {\n var t = typeof value;\n valid = t === expectedType.toLowerCase();\n // for primitive wrapper objects\n if (!valid && t === 'object') {\n valid = value instanceof type;\n }\n } else if (expectedType === 'Object') {\n valid = isPlainObject(value);\n } else if (expectedType === 'Array') {\n valid = Array.isArray(value);\n } else {\n valid = value instanceof type;\n }\n return {\n valid: valid,\n expectedType: expectedType\n }\n}\n\n/**\n * Use function string name to check built-in types,\n * because a simple equality check will fail when running\n * across different vms / iframes.\n */\nfunction getType (fn) {\n var match = fn && fn.toString().match(/^\\s*function (\\w+)/);\n return match ? match[1] : ''\n}\n\nfunction isSameType (a, b) {\n return getType(a) === getType(b)\n}\n\nfunction getTypeIndex (type, expectedTypes) {\n if (!Array.isArray(expectedTypes)) {\n return isSameType(expectedTypes, type) ? 0 : -1\n }\n for (var i = 0, len = expectedTypes.length; i < len; i++) {\n if (isSameType(expectedTypes[i], type)) {\n return i\n }\n }\n return -1\n}\n\nfunction getInvalidTypeMessage (name, value, expectedTypes) {\n var message = \"Invalid prop: type check failed for prop \\\"\" + name + \"\\\".\" +\n \" Expected \" + (expectedTypes.map(capitalize).join(', '));\n var expectedType = expectedTypes[0];\n var receivedType = toRawType(value);\n var expectedValue = styleValue(value, expectedType);\n var receivedValue = styleValue(value, receivedType);\n // check if we need to specify expected value\n if (expectedTypes.length === 1 &&\n isExplicable(expectedType) &&\n !isBoolean(expectedType, receivedType)) {\n message += \" with value \" + expectedValue;\n }\n message += \", got \" + receivedType + \" \";\n // check if we need to specify received value\n if (isExplicable(receivedType)) {\n message += \"with value \" + receivedValue + \".\";\n }\n return message\n}\n\nfunction styleValue (value, type) {\n if (type === 'String') {\n return (\"\\\"\" + value + \"\\\"\")\n } else if (type === 'Number') {\n return (\"\" + (Number(value)))\n } else {\n return (\"\" + value)\n }\n}\n\nfunction isExplicable (value) {\n var explicitTypes = ['string', 'number', 'boolean'];\n return explicitTypes.some(function (elem) { return value.toLowerCase() === elem; })\n}\n\nfunction isBoolean () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return args.some(function (elem) { return elem.toLowerCase() === 'boolean'; })\n}\n\n/* */\n\nfunction handleError (err, vm, info) {\n // Deactivate deps tracking while processing error handler to avoid possible infinite rendering.\n // See: https://github.com/vuejs/vuex/issues/1505\n pushTarget();\n try {\n if (vm) {\n var cur = vm;\n while ((cur = cur.$parent)) {\n var hooks = cur.$options.errorCaptured;\n if (hooks) {\n for (var i = 0; i < hooks.length; i++) {\n try {\n var capture = hooks[i].call(cur, err, vm, info) === false;\n if (capture) { return }\n } catch (e) {\n globalHandleError(e, cur, 'errorCaptured hook');\n }\n }\n }\n }\n }\n globalHandleError(err, vm, info);\n } finally {\n popTarget();\n }\n}\n\nfunction invokeWithErrorHandling (\n handler,\n context,\n args,\n vm,\n info\n) {\n var res;\n try {\n res = args ? handler.apply(context, args) : handler.call(context);\n if (res && !res._isVue && isPromise(res) && !res._handled) {\n res.catch(function (e) { return handleError(e, vm, info + \" (Promise/async)\"); });\n // issue #9511\n // avoid catch triggering multiple times when nested calls\n res._handled = true;\n }\n } catch (e) {\n handleError(e, vm, info);\n }\n return res\n}\n\nfunction globalHandleError (err, vm, info) {\n if (config.errorHandler) {\n try {\n return config.errorHandler.call(null, err, vm, info)\n } catch (e) {\n // if the user intentionally throws the original error in the handler,\n // do not log it twice\n if (e !== err) {\n logError(e, null, 'config.errorHandler');\n }\n }\n }\n logError(err, vm, info);\n}\n\nfunction logError (err, vm, info) {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Error in \" + info + \": \\\"\" + (err.toString()) + \"\\\"\"), vm);\n }\n /* istanbul ignore else */\n if ((inBrowser || inWeex) && typeof console !== 'undefined') {\n console.error(err);\n } else {\n throw err\n }\n}\n\n/* */\n\nvar isUsingMicroTask = false;\n\nvar callbacks = [];\nvar pending = false;\n\nfunction flushCallbacks () {\n pending = false;\n var copies = callbacks.slice(0);\n callbacks.length = 0;\n for (var i = 0; i < copies.length; i++) {\n copies[i]();\n }\n}\n\n// Here we have async deferring wrappers using microtasks.\n// In 2.5 we used (macro) tasks (in combination with microtasks).\n// However, it has subtle problems when state is changed right before repaint\n// (e.g. #6813, out-in transitions).\n// Also, using (macro) tasks in event handler would cause some weird behaviors\n// that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109).\n// So we now use microtasks everywhere, again.\n// A major drawback of this tradeoff is that there are some scenarios\n// where microtasks have too high a priority and fire in between supposedly\n// sequential events (e.g. #4521, #6690, which have workarounds)\n// or even between bubbling of the same event (#6566).\nvar timerFunc;\n\n// The nextTick behavior leverages the microtask queue, which can be accessed\n// via either native Promise.then or MutationObserver.\n// MutationObserver has wider support, however it is seriously bugged in\n// UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It\n// completely stops working after triggering a few times... so, if native\n// Promise is available, we will use it:\n/* istanbul ignore next, $flow-disable-line */\nif (typeof Promise !== 'undefined' && isNative(Promise)) {\n var p = Promise.resolve();\n timerFunc = function () {\n p.then(flushCallbacks);\n // In problematic UIWebViews, Promise.then doesn't completely break, but\n // it can get stuck in a weird state where callbacks are pushed into the\n // microtask queue but the queue isn't being flushed, until the browser\n // needs to do some other work, e.g. handle a timer. Therefore we can\n // \"force\" the microtask queue to be flushed by adding an empty timer.\n if (isIOS) { setTimeout(noop); }\n };\n isUsingMicroTask = true;\n} else if (!isIE && typeof MutationObserver !== 'undefined' && (\n isNative(MutationObserver) ||\n // PhantomJS and iOS 7.x\n MutationObserver.toString() === '[object MutationObserverConstructor]'\n)) {\n // Use MutationObserver where native Promise is not available,\n // e.g. PhantomJS, iOS7, Android 4.4\n // (#6466 MutationObserver is unreliable in IE11)\n var counter = 1;\n var observer = new MutationObserver(flushCallbacks);\n var textNode = document.createTextNode(String(counter));\n observer.observe(textNode, {\n characterData: true\n });\n timerFunc = function () {\n counter = (counter + 1) % 2;\n textNode.data = String(counter);\n };\n isUsingMicroTask = true;\n} else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {\n // Fallback to setImmediate.\n // Techinically it leverages the (macro) task queue,\n // but it is still a better choice than setTimeout.\n timerFunc = function () {\n setImmediate(flushCallbacks);\n };\n} else {\n // Fallback to setTimeout.\n timerFunc = function () {\n setTimeout(flushCallbacks, 0);\n };\n}\n\nfunction nextTick (cb, ctx) {\n var _resolve;\n callbacks.push(function () {\n if (cb) {\n try {\n cb.call(ctx);\n } catch (e) {\n handleError(e, ctx, 'nextTick');\n }\n } else if (_resolve) {\n _resolve(ctx);\n }\n });\n if (!pending) {\n pending = true;\n timerFunc();\n }\n // $flow-disable-line\n if (!cb && typeof Promise !== 'undefined') {\n return new Promise(function (resolve) {\n _resolve = resolve;\n })\n }\n}\n\n/* */\n\n/* not type checking this file because flow doesn't play well with Proxy */\n\nvar initProxy;\n\nif (process.env.NODE_ENV !== 'production') {\n var allowedGlobals = makeMap(\n 'Infinity,undefined,NaN,isFinite,isNaN,' +\n 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +\n 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' +\n 'require' // for Webpack/Browserify\n );\n\n var warnNonPresent = function (target, key) {\n warn(\n \"Property or method \\\"\" + key + \"\\\" is not defined on the instance but \" +\n 'referenced during render. Make sure that this property is reactive, ' +\n 'either in the data option, or for class-based components, by ' +\n 'initializing the property. ' +\n 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.',\n target\n );\n };\n\n var warnReservedPrefix = function (target, key) {\n warn(\n \"Property \\\"\" + key + \"\\\" must be accessed with \\\"$data.\" + key + \"\\\" because \" +\n 'properties starting with \"$\" or \"_\" are not proxied in the Vue instance to ' +\n 'prevent conflicts with Vue internals' +\n 'See: https://vuejs.org/v2/api/#data',\n target\n );\n };\n\n var hasProxy =\n typeof Proxy !== 'undefined' && isNative(Proxy);\n\n if (hasProxy) {\n var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');\n config.keyCodes = new Proxy(config.keyCodes, {\n set: function set (target, key, value) {\n if (isBuiltInModifier(key)) {\n warn((\"Avoid overwriting built-in modifier in config.keyCodes: .\" + key));\n return false\n } else {\n target[key] = value;\n return true\n }\n }\n });\n }\n\n var hasHandler = {\n has: function has (target, key) {\n var has = key in target;\n var isAllowed = allowedGlobals(key) ||\n (typeof key === 'string' && key.charAt(0) === '_' && !(key in target.$data));\n if (!has && !isAllowed) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return has || !isAllowed\n }\n };\n\n var getHandler = {\n get: function get (target, key) {\n if (typeof key === 'string' && !(key in target)) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return target[key]\n }\n };\n\n initProxy = function initProxy (vm) {\n if (hasProxy) {\n // determine which proxy handler to use\n var options = vm.$options;\n var handlers = options.render && options.render._withStripped\n ? getHandler\n : hasHandler;\n vm._renderProxy = new Proxy(vm, handlers);\n } else {\n vm._renderProxy = vm;\n }\n };\n}\n\n/* */\n\nvar seenObjects = new _Set();\n\n/**\n * Recursively traverse an object to evoke all converted\n * getters, so that every nested property inside the object\n * is collected as a \"deep\" dependency.\n */\nfunction traverse (val) {\n _traverse(val, seenObjects);\n seenObjects.clear();\n}\n\nfunction _traverse (val, seen) {\n var i, keys;\n var isA = Array.isArray(val);\n if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) {\n return\n }\n if (val.__ob__) {\n var depId = val.__ob__.dep.id;\n if (seen.has(depId)) {\n return\n }\n seen.add(depId);\n }\n if (isA) {\n i = val.length;\n while (i--) { _traverse(val[i], seen); }\n } else {\n keys = Object.keys(val);\n i = keys.length;\n while (i--) { _traverse(val[keys[i]], seen); }\n }\n}\n\nvar mark;\nvar measure;\n\nif (process.env.NODE_ENV !== 'production') {\n var perf = inBrowser && window.performance;\n /* istanbul ignore if */\n if (\n perf &&\n perf.mark &&\n perf.measure &&\n perf.clearMarks &&\n perf.clearMeasures\n ) {\n mark = function (tag) { return perf.mark(tag); };\n measure = function (name, startTag, endTag) {\n perf.measure(name, startTag, endTag);\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n // perf.clearMeasures(name)\n };\n }\n}\n\n/* */\n\nvar normalizeEvent = cached(function (name) {\n var passive = name.charAt(0) === '&';\n name = passive ? name.slice(1) : name;\n var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first\n name = once$$1 ? name.slice(1) : name;\n var capture = name.charAt(0) === '!';\n name = capture ? name.slice(1) : name;\n return {\n name: name,\n once: once$$1,\n capture: capture,\n passive: passive\n }\n});\n\nfunction createFnInvoker (fns, vm) {\n function invoker () {\n var arguments$1 = arguments;\n\n var fns = invoker.fns;\n if (Array.isArray(fns)) {\n var cloned = fns.slice();\n for (var i = 0; i < cloned.length; i++) {\n invokeWithErrorHandling(cloned[i], null, arguments$1, vm, \"v-on handler\");\n }\n } else {\n // return handler return value for single handlers\n return invokeWithErrorHandling(fns, null, arguments, vm, \"v-on handler\")\n }\n }\n invoker.fns = fns;\n return invoker\n}\n\nfunction updateListeners (\n on,\n oldOn,\n add,\n remove$$1,\n createOnceHandler,\n vm\n) {\n var name, def$$1, cur, old, event;\n for (name in on) {\n def$$1 = cur = on[name];\n old = oldOn[name];\n event = normalizeEvent(name);\n if (isUndef(cur)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Invalid handler for event \\\"\" + (event.name) + \"\\\": got \" + String(cur),\n vm\n );\n } else if (isUndef(old)) {\n if (isUndef(cur.fns)) {\n cur = on[name] = createFnInvoker(cur, vm);\n }\n if (isTrue(event.once)) {\n cur = on[name] = createOnceHandler(event.name, cur, event.capture);\n }\n add(event.name, cur, event.capture, event.passive, event.params);\n } else if (cur !== old) {\n old.fns = cur;\n on[name] = old;\n }\n }\n for (name in oldOn) {\n if (isUndef(on[name])) {\n event = normalizeEvent(name);\n remove$$1(event.name, oldOn[name], event.capture);\n }\n }\n}\n\n/* */\n\nfunction mergeVNodeHook (def, hookKey, hook) {\n if (def instanceof VNode) {\n def = def.data.hook || (def.data.hook = {});\n }\n var invoker;\n var oldHook = def[hookKey];\n\n function wrappedHook () {\n hook.apply(this, arguments);\n // important: remove merged hook to ensure it's called only once\n // and prevent memory leak\n remove(invoker.fns, wrappedHook);\n }\n\n if (isUndef(oldHook)) {\n // no existing hook\n invoker = createFnInvoker([wrappedHook]);\n } else {\n /* istanbul ignore if */\n if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {\n // already a merged invoker\n invoker = oldHook;\n invoker.fns.push(wrappedHook);\n } else {\n // existing plain hook\n invoker = createFnInvoker([oldHook, wrappedHook]);\n }\n }\n\n invoker.merged = true;\n def[hookKey] = invoker;\n}\n\n/* */\n\nfunction extractPropsFromVNodeData (\n data,\n Ctor,\n tag\n) {\n // we are only extracting raw values here.\n // validation and default values are handled in the child\n // component itself.\n var propOptions = Ctor.options.props;\n if (isUndef(propOptions)) {\n return\n }\n var res = {};\n var attrs = data.attrs;\n var props = data.props;\n if (isDef(attrs) || isDef(props)) {\n for (var key in propOptions) {\n var altKey = hyphenate(key);\n if (process.env.NODE_ENV !== 'production') {\n var keyInLowerCase = key.toLowerCase();\n if (\n key !== keyInLowerCase &&\n attrs && hasOwn(attrs, keyInLowerCase)\n ) {\n tip(\n \"Prop \\\"\" + keyInLowerCase + \"\\\" is passed to component \" +\n (formatComponentName(tag || Ctor)) + \", but the declared prop name is\" +\n \" \\\"\" + key + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and camelCased \" +\n \"props need to use their kebab-case equivalents when using in-DOM \" +\n \"templates. You should probably use \\\"\" + altKey + \"\\\" instead of \\\"\" + key + \"\\\".\"\n );\n }\n }\n checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n }\n }\n return res\n}\n\nfunction checkProp (\n res,\n hash,\n key,\n altKey,\n preserve\n) {\n if (isDef(hash)) {\n if (hasOwn(hash, key)) {\n res[key] = hash[key];\n if (!preserve) {\n delete hash[key];\n }\n return true\n } else if (hasOwn(hash, altKey)) {\n res[key] = hash[altKey];\n if (!preserve) {\n delete hash[altKey];\n }\n return true\n }\n }\n return false\n}\n\n/* */\n\n// The template compiler attempts to minimize the need for normalization by\n// statically analyzing the template at compile time.\n//\n// For plain HTML markup, normalization can be completely skipped because the\n// generated render function is guaranteed to return Array. There are\n// two cases where extra normalization is needed:\n\n// 1. When the children contains components - because a functional component\n// may return an Array instead of a single root. In this case, just a simple\n// normalization is needed - if any child is an Array, we flatten the whole\n// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\n// because functional components already normalize their own children.\nfunction simpleNormalizeChildren (children) {\n for (var i = 0; i < children.length; i++) {\n if (Array.isArray(children[i])) {\n return Array.prototype.concat.apply([], children)\n }\n }\n return children\n}\n\n// 2. When the children contains constructs that always generated nested Arrays,\n// e.g.