{"version":3,"sources":["webpack:///./node_modules/vue-axios/dist/vue-axios.esm.min.js","webpack:///./node_modules/vue-class-component/dist/vue-class-component.esm.js","webpack:///./node_modules/vue-property-decorator/lib/helpers/metadata.js","webpack:///./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack:///./node_modules/vue-router/dist/vue-router.esm.js"],"names":["_typeof","o","Symbol","iterator","constructor","prototype","plugin","e","installed","version","split","Object","defineProperties","axios","get","$http","console","error","config","globalProperties","exports","module","define","window","Vue","use","obj","_defineProperty","key","value","defineProperty","enumerable","configurable","writable","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","Array","isArray","i","arr2","length","iter","toString","call","from","TypeError","reflectionIsSupported","Reflect","defineMetadata","getOwnMetadataKeys","copyReflectionMetadata","to","forwardMetadata","getOwnPropertyNames","forEach","propertyKey","metaKeys","metaKey","metadata","getOwnMetadata","fakeArray","__proto__","hasProto","isPrimitive","type","collectDataFromConstructor","vm","Component","originalInit","_init","_this","this","keys","$options","props","hasOwnProperty","push","set","data","plainData","undefined","$internalHooks","componentFactory","options","arguments","name","_componentTag","proto","indexOf","descriptor","getOwnPropertyDescriptor","methods","mixins","computed","decorators","__decorators__","fn","superProto","getPrototypeOf","Super","Extended","extend","forwardStaticMembers","shouldIgnore","callee","caller","Original","extendedDescriptor","superDescriptor","registerHooks","apply","getMetadata","normalizeComponent","scriptExports","render","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","_compiled","functional","_scopeId","context","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate","concat","warn","condition","message","a","b","encodeReserveRE","encodeReserveReplacer","c","charCodeAt","commaRE","encode","str","encodeURIComponent","replace","decode","decodeURIComponent","err","resolveQuery","query","extraQuery","_parseQuery","parsedQuery","parse","parseQuery","map","castQueryParamValue","String","res","trim","param","parts","shift","val","join","stringifyQuery","result","val2","filter","x","trailingSlashRE","createRoute","record","location","redirectedFrom","router","clone","route","meta","path","hash","params","fullPath","getFullPath","matched","formatMatch","freeze","START","unshift","ref","_stringifyQuery","stringify","isSameRoute","onlyPath","isObjectEqual","aKeys","sort","bKeys","every","aVal","bKey","bVal","isIncludedRoute","current","target","queryIncludes","handleRouteEntered","instances","instance","cbs","enteredCbs","i$1","_isBeingDestroyed","View","default","_","children","routerView","$createElement","$route","cache","_routerViewCache","depth","inactive","_routerRoot","vnodeData","keepAlive","_directInactive","_inactive","$parent","routerViewDepth","cachedData","cachedComponent","component","configProps","fillPropsinData","components","registerRouteInstance","prepatch","vnode","componentInstance","init","propsToPass","resolveProps","attrs","resolvePath","relative","base","append","firstChar","charAt","stack","pop","segments","segment","parsePath","hashIndex","slice","queryIndex","cleanPath","isarray","pathToRegexp_1","pathToRegexp","parse_1","compile_1","compile","tokensToFunction_1","tokensToFunction","tokensToRegExp_1","tokensToRegExp","PATH_REGEXP","RegExp","tokens","index","defaultDelimiter","delimiter","exec","m","escaped","offset","next","prefix","capture","group","modifier","asterisk","partial","repeat","optional","pattern","escapeGroup","escapeString","substr","encodeURIComponentPretty","encodeURI","toUpperCase","encodeAsterisk","matches","flags","opts","pretty","token","JSON","j","test","attachKeys","re","sensitive","regexpToRegexp","groups","source","match","arrayToRegexp","regexp","stringToRegexp","strict","end","endsWithDelimiter","regexpCompileCache","create","fillParams","routeMsg","filler","pathMatch","normalizeLocation","raw","_normalized","params$1","rawPath","parsedPath","basePath","_Vue","toTypes","eventTypes","noop","Link","required","tag","custom","Boolean","exact","exactPath","activeClass","exactActiveClass","ariaCurrentValue","event","this$1","$router","resolve","href","classes","globalActiveClass","linkActiveClass","globalExactActiveClass","linkExactActiveClass","activeClassFallback","exactActiveClassFallback","compareTarget","handler","guardEvent","on","click","class","scopedSlot","$scopedSlots","$hasNormal","navigate","isActive","isExactActive","findAnchor","$slots","isStatic","aData","handler$1","event$1","aAttrs","altKey","ctrlKey","shiftKey","defaultPrevented","button","currentTarget","getAttribute","preventDefault","child","install","isDef","v","registerInstance","callVal","_parentVnode","mixin","_router","util","defineReactive","history","destroyed","_route","strats","optionMergeStrategies","beforeRouteEnter","beforeRouteLeave","beforeRouteUpdate","created","inBrowser","createRouteMap","routes","oldPathList","oldPathMap","oldNameMap","parentRoute","pathList","pathMap","nameMap","addRouteRecord","l","splice","matchAs","pathToRegexpOptions","normalizedPath","normalizePath","caseSensitive","regex","compileRouteRegex","alias","redirect","beforeEnter","childMatchAs","aliases","aliasRoute","createMatcher","addRoutes","addRoute","parentOrRoute","getRoutes","currentRoute","_createRoute","paramNames","record$1","matchRoute","originalRedirect","resolveRecordPath","resolvedPath","aliasedPath","aliasedMatch","aliasedRecord","len","Time","performance","now","Date","genStateKey","toFixed","_key","getStateKey","setStateKey","positionStore","setupScroll","scrollRestoration","protocolAndPath","protocol","host","absolutePath","stateCopy","state","replaceState","addEventListener","handlePopState","removeEventListener","handleScroll","isPop","app","behavior","scrollBehavior","$nextTick","position","getScrollPosition","shouldScroll","then","scrollToPosition","catch","saveScrollPosition","pageXOffset","y","pageYOffset","getElementPosition","el","docEl","document","documentElement","docRect","getBoundingClientRect","elRect","left","top","isValidPosition","isNumber","normalizePosition","normalizeOffset","hashStartsWithNumberRE","isObject","selector","getElementById","querySelector","style","scrollTo","supportsPushState","ua","navigator","userAgent","pushState","url","runQueue","queue","cb","step","NavigationFailureType","redirected","aborted","cancelled","duplicated","createNavigationRedirectedError","createRouterError","stringifyRoute","createNavigationDuplicatedError","createNavigationCancelledError","createNavigationAbortedError","Error","_isRouter","propertiesToLog","isError","isNavigationFailure","errorType","resolveAsyncComponents","hasAsync","pending","flatMapComponents","def","cid","once","resolvedDef","isESModule","resolved","reject","reason","msg","comp","flatten","hasSymbol","toStringTag","__esModule","called","args","History","normalizeBase","ready","readyCbs","readyErrorCbs","errorCbs","listeners","baseEl","resolveQueue","max","Math","updated","activated","deactivated","extractGuards","records","bind","reverse","guards","guard","extractGuard","extractLeaveGuards","bindGuard","extractUpdateHooks","extractEnterGuards","bindEnterGuard","listen","onReady","errorCb","onError","transitionTo","onComplete","onAbort","prev","confirmTransition","updateRoute","ensureURL","afterHooks","abort","lastRouteIndex","lastCurrentIndex","beforeHooks","enterGuards","resolveHooks","setupListeners","teardown","cleanupListener","HTML5History","_startLocation","getLocation","expectScroll","supportsScroll","handleRoutingEvent","go","n","fromRoute","getCurrentLocation","pathname","pathLowerCase","toLowerCase","baseLowerCase","search","HashHistory","fallback","checkFallback","ensureSlash","getHash","replaceHash","eventType","pushHash","getUrl","AbstractHistory","targetIndex","VueRouter","apps","matcher","mode","prototypeAccessors","registerHook","list","createHref","$once","handleInitialScroll","routeOrError","beforeEach","beforeResolve","afterEach","Promise","back","forward","getMatchedComponents","normalizedTo","START_LOCATION"],"mappings":"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","file":"js/chunk-vendors~6ff199a4.ef5b098f.js","sourcesContent":["function _typeof(o){return(_typeof=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(o){return typeof o}:function(o){return o&&\"function\"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?\"symbol\":typeof o})(o)}function plugin(o,e){if(!plugin.installed)if(e){if(plugin.installed=!0,o.version&&o.version.split(\".\")[0]<3)Object.defineProperties(o.prototype,{axios:{get:function(){return e}},$http:{get:function(){return e}}});else{if(!(o.version&&o.version.split(\".\")[0]>=3))return void console.error(\"Unknown Vue version\");o.config.globalProperties.axios=e,o.config.globalProperties.$http=e}o.axios=e,o.$http=e}else console.error(\"You have to install axios\")}\"object\"==(\"undefined\"==typeof exports?\"undefined\":_typeof(exports))?module.exports=plugin:\"function\"==typeof define&&define.amd?define([],(function(){return plugin})):window.Vue&&window.axios&&window.Vue.use&&Vue.use(plugin,window.axios);export{plugin as default};","/**\n  * vue-class-component v7.2.6\n  * (c) 2015-present Evan You\n  * @license MIT\n  */\nimport Vue from 'vue';\n\nfunction _typeof(obj) {\n  if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n    _typeof = function (obj) {\n      return typeof obj;\n    };\n  } else {\n    _typeof = function (obj) {\n      return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n    };\n  }\n\n  return _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\nfunction _toConsumableArray(arr) {\n  return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) {\n    for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n    return arr2;\n  }\n}\n\nfunction _iterableToArray(iter) {\n  if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\n// The rational behind the verbose Reflect-feature check below is the fact that there are polyfills\n// which add an implementation for Reflect.defineMetadata but not for Reflect.getOwnMetadataKeys.\n// Without this check consumers will encounter hard to track down runtime errors.\nfunction reflectionIsSupported() {\n  return typeof Reflect !== 'undefined' && Reflect.defineMetadata && Reflect.getOwnMetadataKeys;\n}\nfunction copyReflectionMetadata(to, from) {\n  forwardMetadata(to, from);\n  Object.getOwnPropertyNames(from.prototype).forEach(function (key) {\n    forwardMetadata(to.prototype, from.prototype, key);\n  });\n  Object.getOwnPropertyNames(from).forEach(function (key) {\n    forwardMetadata(to, from, key);\n  });\n}\n\nfunction forwardMetadata(to, from, propertyKey) {\n  var metaKeys = propertyKey ? Reflect.getOwnMetadataKeys(from, propertyKey) : Reflect.getOwnMetadataKeys(from);\n  metaKeys.forEach(function (metaKey) {\n    var metadata = propertyKey ? Reflect.getOwnMetadata(metaKey, from, propertyKey) : Reflect.getOwnMetadata(metaKey, from);\n\n    if (propertyKey) {\n      Reflect.defineMetadata(metaKey, metadata, to, propertyKey);\n    } else {\n      Reflect.defineMetadata(metaKey, metadata, to);\n    }\n  });\n}\n\nvar fakeArray = {\n  __proto__: []\n};\nvar hasProto = fakeArray instanceof Array;\nfunction createDecorator(factory) {\n  return function (target, key, index) {\n    var Ctor = typeof target === 'function' ? target : target.constructor;\n\n    if (!Ctor.__decorators__) {\n      Ctor.__decorators__ = [];\n    }\n\n    if (typeof index !== 'number') {\n      index = undefined;\n    }\n\n    Ctor.__decorators__.push(function (options) {\n      return factory(options, key, index);\n    });\n  };\n}\nfunction mixins() {\n  for (var _len = arguments.length, Ctors = new Array(_len), _key = 0; _key < _len; _key++) {\n    Ctors[_key] = arguments[_key];\n  }\n\n  return Vue.extend({\n    mixins: Ctors\n  });\n}\nfunction isPrimitive(value) {\n  var type = _typeof(value);\n\n  return value == null || type !== 'object' && type !== 'function';\n}\nfunction warn(message) {\n  if (typeof console !== 'undefined') {\n    console.warn('[vue-class-component] ' + message);\n  }\n}\n\nfunction collectDataFromConstructor(vm, Component) {\n  // override _init to prevent to init as Vue instance\n  var originalInit = Component.prototype._init;\n\n  Component.prototype._init = function () {\n    var _this = this;\n\n    // proxy to actual vm\n    var keys = Object.getOwnPropertyNames(vm); // 2.2.0 compat (props are no longer exposed as self properties)\n\n    if (vm.$options.props) {\n      for (var key in vm.$options.props) {\n        if (!vm.hasOwnProperty(key)) {\n          keys.push(key);\n        }\n      }\n    }\n\n    keys.forEach(function (key) {\n      Object.defineProperty(_this, key, {\n        get: function get() {\n          return vm[key];\n        },\n        set: function set(value) {\n          vm[key] = value;\n        },\n        configurable: true\n      });\n    });\n  }; // should be acquired class property values\n\n\n  var data = new Component(); // restore original _init to avoid memory leak (#209)\n\n  Component.prototype._init = originalInit; // create plain data object\n\n  var plainData = {};\n  Object.keys(data).forEach(function (key) {\n    if (data[key] !== undefined) {\n      plainData[key] = data[key];\n    }\n  });\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (!(Component.prototype instanceof Vue) && Object.keys(plainData).length > 0) {\n      warn('Component class must inherit Vue or its descendant class ' + 'when class property is used.');\n    }\n  }\n\n  return plainData;\n}\n\nvar $internalHooks = ['data', 'beforeCreate', 'created', 'beforeMount', 'mounted', 'beforeDestroy', 'destroyed', 'beforeUpdate', 'updated', 'activated', 'deactivated', 'render', 'errorCaptured', 'serverPrefetch' // 2.6\n];\nfunction componentFactory(Component) {\n  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  options.name = options.name || Component._componentTag || Component.name; // prototype props.\n\n  var proto = Component.prototype;\n  Object.getOwnPropertyNames(proto).forEach(function (key) {\n    if (key === 'constructor') {\n      return;\n    } // hooks\n\n\n    if ($internalHooks.indexOf(key) > -1) {\n      options[key] = proto[key];\n      return;\n    }\n\n    var descriptor = Object.getOwnPropertyDescriptor(proto, key);\n\n    if (descriptor.value !== void 0) {\n      // methods\n      if (typeof descriptor.value === 'function') {\n        (options.methods || (options.methods = {}))[key] = descriptor.value;\n      } else {\n        // typescript decorated data\n        (options.mixins || (options.mixins = [])).push({\n          data: function data() {\n            return _defineProperty({}, key, descriptor.value);\n          }\n        });\n      }\n    } else if (descriptor.get || descriptor.set) {\n      // computed properties\n      (options.computed || (options.computed = {}))[key] = {\n        get: descriptor.get,\n        set: descriptor.set\n      };\n    }\n  });\n  (options.mixins || (options.mixins = [])).push({\n    data: function data() {\n      return collectDataFromConstructor(this, Component);\n    }\n  }); // decorate options\n\n  var decorators = Component.__decorators__;\n\n  if (decorators) {\n    decorators.forEach(function (fn) {\n      return fn(options);\n    });\n    delete Component.__decorators__;\n  } // find super\n\n\n  var superProto = Object.getPrototypeOf(Component.prototype);\n  var Super = superProto instanceof Vue ? superProto.constructor : Vue;\n  var Extended = Super.extend(options);\n  forwardStaticMembers(Extended, Component, Super);\n\n  if (reflectionIsSupported()) {\n    copyReflectionMetadata(Extended, Component);\n  }\n\n  return Extended;\n}\nvar reservedPropertyNames = [// Unique id\n'cid', // Super Vue constructor\n'super', // Component options that will be used by the component\n'options', 'superOptions', 'extendOptions', 'sealedOptions', // Private assets\n'component', 'directive', 'filter'];\nvar shouldIgnore = {\n  prototype: true,\n  arguments: true,\n  callee: true,\n  caller: true\n};\n\nfunction forwardStaticMembers(Extended, Original, Super) {\n  // We have to use getOwnPropertyNames since Babel registers methods as non-enumerable\n  Object.getOwnPropertyNames(Original).forEach(function (key) {\n    // Skip the properties that should not be overwritten\n    if (shouldIgnore[key]) {\n      return;\n    } // Some browsers does not allow reconfigure built-in properties\n\n\n    var extendedDescriptor = Object.getOwnPropertyDescriptor(Extended, key);\n\n    if (extendedDescriptor && !extendedDescriptor.configurable) {\n      return;\n    }\n\n    var descriptor = Object.getOwnPropertyDescriptor(Original, key); // If the user agent does not support `__proto__` or its family (IE <= 10),\n    // the sub class properties may be inherited properties from the super class in TypeScript.\n    // We need to exclude such properties to prevent to overwrite\n    // the component options object which stored on the extended constructor (See #192).\n    // If the value is a referenced value (object or function),\n    // we can check equality of them and exclude it if they have the same reference.\n    // If it is a primitive value, it will be forwarded for safety.\n\n    if (!hasProto) {\n      // Only `cid` is explicitly exluded from property forwarding\n      // because we cannot detect whether it is a inherited property or not\n      // on the no `__proto__` environment even though the property is reserved.\n      if (key === 'cid') {\n        return;\n      }\n\n      var superDescriptor = Object.getOwnPropertyDescriptor(Super, key);\n\n      if (!isPrimitive(descriptor.value) && superDescriptor && superDescriptor.value === descriptor.value) {\n        return;\n      }\n    } // Warn if the users manually declare reserved properties\n\n\n    if (process.env.NODE_ENV !== 'production' && reservedPropertyNames.indexOf(key) >= 0) {\n      warn(\"Static property name '\".concat(key, \"' declared on class '\").concat(Original.name, \"' \") + 'conflicts with reserved property name of Vue internal. ' + 'It may cause unexpected behavior of the component. Consider renaming the property.');\n    }\n\n    Object.defineProperty(Extended, key, descriptor);\n  });\n}\n\nfunction Component(options) {\n  if (typeof options === 'function') {\n    return componentFactory(options);\n  }\n\n  return function (Component) {\n    return componentFactory(Component, options);\n  };\n}\n\nComponent.registerHooks = function registerHooks(keys) {\n  $internalHooks.push.apply($internalHooks, _toConsumableArray(keys));\n};\n\nexport default Component;\nexport { createDecorator, mixins };\n","/** @see {@link https://github.com/vuejs/vue-class-component/blob/master/src/reflect.ts} */\nvar reflectMetadataIsSupported = typeof Reflect !== 'undefined' && typeof Reflect.getMetadata !== 'undefined';\nexport function applyMetadata(options, target, key) {\n    if (reflectMetadataIsSupported) {\n        if (!Array.isArray(options) &&\n            typeof options !== 'function' &&\n            !options.hasOwnProperty('type') &&\n            typeof options.type === 'undefined') {\n            var type = Reflect.getMetadata('design:type', target, key);\n            if (type !== Object) {\n                options.type = type;\n            }\n        }\n    }\n}\n","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n  scriptExports,\n  render,\n  staticRenderFns,\n  functionalTemplate,\n  injectStyles,\n  scopeId,\n  moduleIdentifier, /* server only */\n  shadowMode /* vue-cli only */\n) {\n  // Vue.extend constructor export interop\n  var options = typeof scriptExports === 'function'\n    ? scriptExports.options\n    : scriptExports\n\n  // render functions\n  if (render) {\n    options.render = render\n    options.staticRenderFns = staticRenderFns\n    options._compiled = true\n  }\n\n  // functional template\n  if (functionalTemplate) {\n    options.functional = true\n  }\n\n  // scopedId\n  if (scopeId) {\n    options._scopeId = 'data-v-' + scopeId\n  }\n\n  var hook\n  if (moduleIdentifier) { // server build\n    hook = function (context) {\n      // 2.3 injection\n      context =\n        context || // cached call\n        (this.$vnode && this.$vnode.ssrContext) || // stateful\n        (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n      // 2.2 with runInNewContext: true\n      if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n        context = __VUE_SSR_CONTEXT__\n      }\n      // inject component styles\n      if (injectStyles) {\n        injectStyles.call(this, context)\n      }\n      // register component module identifier for async chunk inferrence\n      if (context && context._registeredComponents) {\n        context._registeredComponents.add(moduleIdentifier)\n      }\n    }\n    // used by ssr in case component is cached and beforeCreate\n    // never gets called\n    options._ssrRegister = hook\n  } else if (injectStyles) {\n    hook = shadowMode\n      ? function () {\n        injectStyles.call(\n          this,\n          (options.functional ? this.parent : this).$root.$options.shadowRoot\n        )\n      }\n      : injectStyles\n  }\n\n  if (hook) {\n    if (options.functional) {\n      // for template-only hot-reload because in that case the render fn doesn't\n      // go through the normalizer\n      options._injectStyles = hook\n      // register for functional component in vue file\n      var originalRender = options.render\n      options.render = function renderWithStyleInjection (h, context) {\n        hook.call(context)\n        return originalRender(h, context)\n      }\n    } else {\n      // inject component registration as beforeCreate hook\n      var existing = options.beforeCreate\n      options.beforeCreate = existing\n        ? [].concat(existing, hook)\n        : [hook]\n    }\n  }\n\n  return {\n    exports: scriptExports,\n    options: options\n  }\n}\n","/*!\n  * vue-router v3.5.2\n  * (c) 2021 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 extend (a, b) {\n  for (var key in b) {\n    a[key] = b[key];\n  }\n  return a\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\nfunction decode (str) {\n  try {\n    return decodeURIComponent(str)\n  } catch (err) {\n    if (process.env.NODE_ENV !== 'production') {\n      warn(false, (\"Error decoding \\\"\" + str + \"\\\". Leaving it intact.\"));\n    }\n  }\n  return str\n}\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    var value = extraQuery[key];\n    parsedQuery[key] = Array.isArray(value)\n      ? value.map(castQueryParamValue)\n      : castQueryParamValue(value);\n  }\n  return parsedQuery\n}\n\nvar castQueryParamValue = function (value) { return (value == null || typeof value === 'object' ? value : String(value)); };\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 ? decode(parts.join('=')) : 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\n    ? Object.keys(obj)\n      .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      })\n      .filter(function (x) { return x.length > 0; })\n      .join('&')\n    : null;\n  return res ? (\"?\" + res) : ''\n}\n\n/*  */\n\nvar trailingSlashRE = /\\/?$/;\n\nfunction createRoute (\n  record,\n  location,\n  redirectedFrom,\n  router\n) {\n  var stringifyQuery = 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),\n    matched: record ? formatMatch(record) : []\n  };\n  if (redirectedFrom) {\n    route.redirectedFrom = getFullPath(redirectedFrom, stringifyQuery);\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, onlyPath) {\n  if (b === START) {\n    return a === b\n  } else if (!b) {\n    return false\n  } else if (a.path && b.path) {\n    return a.path.replace(trailingSlashRE, '') === b.path.replace(trailingSlashRE, '') && (onlyPath ||\n      a.hash === b.hash &&\n      isObjectEqual(a.query, b.query))\n  } else if (a.name && b.name) {\n    return (\n      a.name === b.name &&\n      (onlyPath || (\n        a.hash === b.hash &&\n      isObjectEqual(a.query, b.query) &&\n      isObjectEqual(a.params, b.params))\n      )\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).sort();\n  var bKeys = Object.keys(b).sort();\n  if (aKeys.length !== bKeys.length) {\n    return false\n  }\n  return aKeys.every(function (key, i) {\n    var aVal = a[key];\n    var bKey = bKeys[i];\n    if (bKey !== key) { return false }\n    var bVal = b[key];\n    // query values can be null and undefined\n    if (aVal == null || bVal == null) { return aVal === bVal }\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\nfunction handleRouteEntered (route) {\n  for (var i = 0; i < route.matched.length; i++) {\n    var record = route.matched[i];\n    for (var name in record.instances) {\n      var instance = record.instances[name];\n      var cbs = record.enteredCbs[name];\n      if (!instance || !cbs) { continue }\n      delete record.enteredCbs[name];\n      for (var i$1 = 0; i$1 < cbs.length; i$1++) {\n        if (!instance._isBeingDestroyed) { cbs[i$1](instance); }\n      }\n    }\n  }\n}\n\nvar View = {\n  name: 'RouterView',\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    // used by devtools to display a router-view badge\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      var vnodeData = parent.$vnode ? parent.$vnode.data : {};\n      if (vnodeData.routerView) {\n        depth++;\n      }\n      if (vnodeData.keepAlive && parent._directInactive && 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      var cachedData = cache[name];\n      var cachedComponent = cachedData && cachedData.component;\n      if (cachedComponent) {\n        // #2301\n        // pass props\n        if (cachedData.configProps) {\n          fillPropsinData(cachedComponent, data, cachedData.route, cachedData.configProps);\n        }\n        return h(cachedComponent, data, children)\n      } else {\n        // render previous empty view\n        return h()\n      }\n    }\n\n    var matched = route.matched[depth];\n    var component = matched && matched.components[name];\n\n    // render empty node if no matched route or no config component\n    if (!matched || !component) {\n      cache[name] = null;\n      return h()\n    }\n\n    // cache component\n    cache[name] = { component: component };\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    // register instance in init hook\n    // in case kept-alive component be actived when routes changed\n    data.hook.init = function (vnode) {\n      if (vnode.data.keepAlive &&\n        vnode.componentInstance &&\n        vnode.componentInstance !== matched.instances[name]\n      ) {\n        matched.instances[name] = vnode.componentInstance;\n      }\n\n      // if the route transition has already been confirmed then we weren't\n      // able to call the cbs during confirmation as the component was not\n      // registered yet, so we call it here.\n      handleRouteEntered(route);\n    };\n\n    var configProps = matched.props && matched.props[name];\n    // save route and configProps in cache\n    if (configProps) {\n      extend(cache[name], {\n        route: route,\n        configProps: configProps\n      });\n      fillPropsinData(component, data, route, configProps);\n    }\n\n    return h(component, data, children)\n  }\n};\n\nfunction fillPropsinData (component, data, route, configProps) {\n  // resolve props\n  var propsToPass = data.props = resolveProps(route, configProps);\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\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\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), 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, options) {\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 + ')$', flags(options));\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 && 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}\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  params = params || {};\n  try {\n    var filler =\n      regexpCompileCache[path] ||\n      (regexpCompileCache[path] = pathToRegexp_1.compile(path));\n\n    // Fix #2505 resolving asterisk routes { name: 'not-found', params: { pathMatch: '/not-found' }}\n    // and fix #3106 so that you can work with location descriptor object having params.pathMatch equal to empty string\n    if (typeof params.pathMatch === 'string') { params[0] = params.pathMatch; }\n\n    return filler(params, { pretty: true })\n  } catch (e) {\n    if (process.env.NODE_ENV !== 'production') {\n      // Fix #3072 no warn if `pathMatch` is string\n      warn(typeof params.pathMatch === 'string', (\"missing param for \" + routeMsg + \": \" + (e.message)));\n    }\n    return ''\n  } finally {\n    // delete the 0 if it was added\n    delete params[0];\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._normalized) {\n    return next\n  } else if (next.name) {\n    next = extend({}, raw);\n    var params = next.params;\n    if (params && typeof params === 'object') {\n      next.params = extend({}, params);\n    }\n    return next\n  }\n\n  // relative params\n  if (!next.path && next.params && current) {\n    next = extend({}, next);\n    next._normalized = true;\n    var params$1 = extend(extend({}, current.params), next.params);\n    if (current.name) {\n      next.name = current.name;\n      next.params = params$1;\n    } else if (current.matched.length) {\n      var rawPath = current.matched[current.matched.length - 1].path;\n      next.path = fillParams(rawPath, params$1, (\"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\n/*  */\n\n// work around weird flow bug\nvar toTypes = [String, Object];\nvar eventTypes = [String, Array];\n\nvar noop = function () {};\n\nvar warnedCustomSlot;\nvar warnedTagProp;\nvar warnedEventProp;\n\nvar Link = {\n  name: 'RouterLink',\n  props: {\n    to: {\n      type: toTypes,\n      required: true\n    },\n    tag: {\n      type: String,\n      default: 'a'\n    },\n    custom: Boolean,\n    exact: Boolean,\n    exactPath: Boolean,\n    append: Boolean,\n    replace: Boolean,\n    activeClass: String,\n    exactActiveClass: String,\n    ariaCurrentValue: {\n      type: String,\n      default: 'page'\n    },\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(\n      this.to,\n      current,\n      this.append\n    );\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 =\n      globalActiveClass == null ? 'router-link-active' : globalActiveClass;\n    var exactActiveClassFallback =\n      globalExactActiveClass == null\n        ? 'router-link-exact-active'\n        : globalExactActiveClass;\n    var activeClass =\n      this.activeClass == null ? activeClassFallback : this.activeClass;\n    var exactActiveClass =\n      this.exactActiveClass == null\n        ? exactActiveClassFallback\n        : this.exactActiveClass;\n\n    var compareTarget = route.redirectedFrom\n      ? createRoute(null, normalizeLocation(route.redirectedFrom), null, router)\n      : route;\n\n    classes[exactActiveClass] = isSameRoute(current, compareTarget, this.exactPath);\n    classes[activeClass] = this.exact || this.exactPath\n      ? classes[exactActiveClass]\n      : isIncludedRoute(current, compareTarget);\n\n    var ariaCurrentValue = classes[exactActiveClass] ? this.ariaCurrentValue : null;\n\n    var handler = function (e) {\n      if (guardEvent(e)) {\n        if (this$1.replace) {\n          router.replace(location, noop);\n        } else {\n          router.push(location, noop);\n        }\n      }\n    };\n\n    var on = { click: guardEvent };\n    if (Array.isArray(this.event)) {\n      this.event.forEach(function (e) {\n        on[e] = handler;\n      });\n    } else {\n      on[this.event] = handler;\n    }\n\n    var data = { class: classes };\n\n    var scopedSlot =\n      !this.$scopedSlots.$hasNormal &&\n      this.$scopedSlots.default &&\n      this.$scopedSlots.default({\n        href: href,\n        route: route,\n        navigate: handler,\n        isActive: classes[activeClass],\n        isExactActive: classes[exactActiveClass]\n      });\n\n    if (scopedSlot) {\n      if (process.env.NODE_ENV !== 'production' && !this.custom) {\n        !warnedCustomSlot && warn(false, 'In Vue Router 4, the v-slot API will by default wrap its content with an <a> element. Use the custom prop to remove this warning:\\n<router-link v-slot=\"{ navigate, href }\" custom></router-link>\\n');\n        warnedCustomSlot = true;\n      }\n      if (scopedSlot.length === 1) {\n        return scopedSlot[0]\n      } else if (scopedSlot.length > 1 || !scopedSlot.length) {\n        if (process.env.NODE_ENV !== 'production') {\n          warn(\n            false,\n            (\"<router-link> with to=\\\"\" + (this.to) + \"\\\" is trying to use a scoped slot but it didn't provide exactly one child. Wrapping the content with a span element.\")\n          );\n        }\n        return scopedSlot.length === 0 ? h() : h('span', {}, scopedSlot)\n      }\n    }\n\n    if (process.env.NODE_ENV !== 'production') {\n      if ('tag' in this.$options.propsData && !warnedTagProp) {\n        warn(\n          false,\n          \"<router-link>'s tag prop is deprecated and has been removed in Vue Router 4. Use the v-slot API to remove this warning: https://next.router.vuejs.org/guide/migration/#removal-of-event-and-tag-props-in-router-link.\"\n        );\n        warnedTagProp = true;\n      }\n      if ('event' in this.$options.propsData && !warnedEventProp) {\n        warn(\n          false,\n          \"<router-link>'s event prop is deprecated and has been removed in Vue Router 4. Use the v-slot API to remove this warning: https://next.router.vuejs.org/guide/migration/#removal-of-event-and-tag-props-in-router-link.\"\n        );\n        warnedEventProp = true;\n      }\n    }\n\n    if (this.tag === 'a') {\n      data.on = on;\n      data.attrs = { href: href, 'aria-current': ariaCurrentValue };\n    } else {\n      // find the first <a> child and apply listener and href\n      var a = findAnchor(this.$slots.default);\n      if (a) {\n        // in case the <a> is a static node\n        a.isStatic = false;\n        var aData = (a.data = extend({}, a.data));\n        aData.on = aData.on || {};\n        // transform existing events in both objects into arrays so we can push later\n        for (var event in aData.on) {\n          var handler$1 = aData.on[event];\n          if (event in on) {\n            aData.on[event] = Array.isArray(handler$1) ? handler$1 : [handler$1];\n          }\n        }\n        // append new listeners for router-link\n        for (var event$1 in on) {\n          if (event$1 in aData.on) {\n            // on[event] is always a function\n            aData.on[event$1].push(on[event$1]);\n          } else {\n            aData.on[event$1] = handler;\n          }\n        }\n\n        var aAttrs = (a.data.attrs = extend({}, a.data.attrs));\n        aAttrs.href = href;\n        aAttrs['aria-current'] = ariaCurrentValue;\n      } else {\n        // doesn't have <a> 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('RouterView', View);\n  Vue.component('RouterLink', 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 createRouteMap (\n  routes,\n  oldPathList,\n  oldPathMap,\n  oldNameMap,\n  parentRoute\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, parentRoute);\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  if (process.env.NODE_ENV === 'development') {\n    // warn if routes do not include leading slashes\n    var found = pathList\n    // check for missing leading slash\n      .filter(function (path) { return path && path.charAt(0) !== '*' && path.charAt(0) !== '/'; });\n\n    if (found.length > 0) {\n      var pathNames = found.map(function (path) { return (\"- \" + path); }).join('\\n');\n      warn(false, (\"Non-nested routes must include a leading slash character. Fix the following routes: \\n\" + pathNames));\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(\n        path || name\n      )) + \" cannot be a \" + \"string id. Use an actual component instead.\"\n    );\n\n    warn(\n      // eslint-disable-next-line no-control-regex\n      !/[^\\u0000-\\u007F]+/.test(path),\n      \"Route with path \\\"\" + path + \"\\\" contains unencoded characters, make sure \" +\n        \"your path is correctly encoded before passing it to the router. Use \" +\n        \"encodeURI to encode static segments of your path.\"\n    );\n  }\n\n  var pathToRegexpOptions =\n    route.pathToRegexpOptions || {};\n  var normalizedPath = normalizePath(path, parent, pathToRegexpOptions.strict);\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    alias: route.alias\n      ? typeof route.alias === 'string'\n        ? [route.alias]\n        : route.alias\n      : [],\n    instances: {},\n    enteredCbs: {},\n    name: name,\n    parent: parent,\n    matchAs: matchAs,\n    redirect: route.redirect,\n    beforeEnter: route.beforeEnter,\n    meta: route.meta || {},\n    props:\n      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 (\n        route.name &&\n        !route.redirect &&\n        route.children.some(function (child) { return /^\\/?$/.test(child.path); })\n      ) {\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 (!pathMap[record.path]) {\n    pathList.push(record.path);\n    pathMap[record.path] = record;\n  }\n\n  if (route.alias !== undefined) {\n    var aliases = Array.isArray(route.alias) ? route.alias : [route.alias];\n    for (var i = 0; i < aliases.length; ++i) {\n      var alias = aliases[i];\n      if (process.env.NODE_ENV !== 'production' && alias === path) {\n        warn(\n          false,\n          (\"Found an alias with the same value as the path: \\\"\" + path + \"\\\". You have to remove that alias. It will be ignored in development.\")\n        );\n        // skip in dev to make it work\n        continue\n      }\n\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 (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 (\n  path,\n  pathToRegexpOptions\n) {\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(\n        !keys[key.name],\n        (\"Duplicate param keys in route with path: \\\"\" + path + \"\\\"\")\n      );\n      keys[key.name] = true;\n    });\n  }\n  return regex\n}\n\nfunction normalizePath (\n  path,\n  parent,\n  strict\n) {\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\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 addRoute (parentOrRoute, route) {\n    var parent = (typeof parentOrRoute !== 'object') ? nameMap[parentOrRoute] : undefined;\n    // $flow-disable-line\n    createRouteMap([route || parentOrRoute], pathList, pathMap, nameMap, parent);\n\n    // add aliases of parent\n    if (parent && parent.alias.length) {\n      createRouteMap(\n        // $flow-disable-line route is defined if parent is\n        parent.alias.map(function (alias) { return ({ path: alias, children: [route] }); }),\n        pathList,\n        pathMap,\n        nameMap,\n        parent\n      );\n    }\n  }\n\n  function getRoutes () {\n    return pathList.map(function (path) { return pathMap[path]; })\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      location.path = fillParams(record.path, location.params, (\"named route \\\"\" + name + \"\\\"\"));\n      return _createRoute(record, location, redirectedFrom)\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    addRoute: addRoute,\n    getRoutes: getRoutes,\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    if (key) {\n      // Fix #1994: using * with props: true generates a param named 0\n      params[key.name || 'pathMatch'] = typeof m[i] === 'string' ? decode(m[i]) : m[i];\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// use User Timing api (if present) for more accurate key precision\nvar Time =\n  inBrowser && window.performance && window.performance.now\n    ? window.performance\n    : Date;\n\nfunction genStateKey () {\n  return Time.now().toFixed(3)\n}\n\nvar _key = genStateKey();\n\nfunction getStateKey () {\n  return _key\n}\n\nfunction setStateKey (key) {\n  return (_key = key)\n}\n\n/*  */\n\nvar positionStore = Object.create(null);\n\nfunction setupScroll () {\n  // Prevent browser scroll behavior on History popstate\n  if ('scrollRestoration' in window.history) {\n    window.history.scrollRestoration = 'manual';\n  }\n  // Fix for #1585 for Firefox\n  // Fix for #2195 Add optional third attribute to workaround a bug in safari https://bugs.webkit.org/show_bug.cgi?id=182678\n  // Fix for #2774 Support for apps loaded from Windows file shares not mapped to network drives: replaced location.origin with\n  // window.location.protocol + '//' + window.location.host\n  // location.host contains the port and location.hostname doesn't\n  var protocolAndPath = window.location.protocol + '//' + window.location.host;\n  var absolutePath = window.location.href.replace(protocolAndPath, '');\n  // preserve existing history state as it could be overriden by the user\n  var stateCopy = extend({}, window.history.state);\n  stateCopy.key = getStateKey();\n  window.history.replaceState(stateCopy, '', absolutePath);\n  window.addEventListener('popstate', handlePopState);\n  return function () {\n    window.removeEventListener('popstate', handlePopState);\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.call(\n      router,\n      to,\n      from,\n      isPop ? position : null\n    );\n\n    if (!shouldScroll) {\n      return\n    }\n\n    if (typeof shouldScroll.then === 'function') {\n      shouldScroll\n        .then(function (shouldScroll) {\n          scrollToPosition((shouldScroll), position);\n        })\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 handlePopState (e) {\n  saveScrollPosition();\n  if (e.state && e.state.key) {\n    setStateKey(e.state.key);\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\nvar hashStartsWithNumberRE = /^#\\d/;\n\nfunction scrollToPosition (shouldScroll, position) {\n  var isObject = typeof shouldScroll === 'object';\n  if (isObject && typeof shouldScroll.selector === 'string') {\n    // getElementById would still fail if the selector contains a more complicated query like #main[data-attr]\n    // but at the same time, it doesn't make much sense to select an element with an id and an extra selector\n    var el = hashStartsWithNumberRE.test(shouldScroll.selector) // $flow-disable-line\n      ? document.getElementById(shouldScroll.selector.slice(1)) // $flow-disable-line\n      : document.querySelector(shouldScroll.selector);\n\n    if (el) {\n      var offset =\n        shouldScroll.offset && typeof shouldScroll.offset === 'object'\n          ? shouldScroll.offset\n          : {};\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    // $flow-disable-line\n    if ('scrollBehavior' in document.documentElement.style) {\n      window.scrollTo({\n        left: position.x,\n        top: position.y,\n        // $flow-disable-line\n        behavior: shouldScroll.behavior\n      });\n    } else {\n      window.scrollTo(position.x, position.y);\n    }\n  }\n}\n\n/*  */\n\nvar supportsPushState =\n  inBrowser &&\n  (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 && typeof window.history.pushState === 'function'\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      // preserve existing history state as it could be overriden by the user\n      var stateCopy = extend({}, history.state);\n      stateCopy.key = getStateKey();\n      history.replaceState(stateCopy, '', url);\n    } else {\n      history.pushState({ key: setStateKey(genStateKey()) }, '', 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// When changing thing, also edit router.d.ts\nvar NavigationFailureType = {\n  redirected: 2,\n  aborted: 4,\n  cancelled: 8,\n  duplicated: 16\n};\n\nfunction createNavigationRedirectedError (from, to) {\n  return createRouterError(\n    from,\n    to,\n    NavigationFailureType.redirected,\n    (\"Redirected when going from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (stringifyRoute(\n      to\n    )) + \"\\\" via a navigation guard.\")\n  )\n}\n\nfunction createNavigationDuplicatedError (from, to) {\n  var error = createRouterError(\n    from,\n    to,\n    NavigationFailureType.duplicated,\n    (\"Avoided redundant navigation to current location: \\\"\" + (from.fullPath) + \"\\\".\")\n  );\n  // backwards compatible with the first introduction of Errors\n  error.name = 'NavigationDuplicated';\n  return error\n}\n\nfunction createNavigationCancelledError (from, to) {\n  return createRouterError(\n    from,\n    to,\n    NavigationFailureType.cancelled,\n    (\"Navigation cancelled from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (to.fullPath) + \"\\\" with a new navigation.\")\n  )\n}\n\nfunction createNavigationAbortedError (from, to) {\n  return createRouterError(\n    from,\n    to,\n    NavigationFailureType.aborted,\n    (\"Navigation aborted from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (to.fullPath) + \"\\\" via a navigation guard.\")\n  )\n}\n\nfunction createRouterError (from, to, type, message) {\n  var error = new Error(message);\n  error._isRouter = true;\n  error.from = from;\n  error.to = to;\n  error.type = type;\n\n  return error\n}\n\nvar propertiesToLog = ['params', 'query', 'hash'];\n\nfunction stringifyRoute (to) {\n  if (typeof to === 'string') { return to }\n  if ('path' in to) { return to.path }\n  var location = {};\n  propertiesToLog.forEach(function (key) {\n    if (key in to) { location[key] = to[key]; }\n  });\n  return JSON.stringify(location, null, 2)\n}\n\nfunction isError (err) {\n  return Object.prototype.toString.call(err).indexOf('Error') > -1\n}\n\nfunction isNavigationFailure (err, errorType) {\n  return (\n    isError(err) &&\n    err._isRouter &&\n    (errorType == null || err.type === errorType)\n  )\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  this.listeners = [];\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 (\n  location,\n  onComplete,\n  onAbort\n) {\n    var this$1 = this;\n\n  var route;\n  // catch redirect option https://github.com/vuejs/vue-router/issues/3201\n  try {\n    route = this.router.match(location, this.current);\n  } catch (e) {\n    this.errorCbs.forEach(function (cb) {\n      cb(e);\n    });\n    // Exception should still be thrown\n    throw e\n  }\n  var prev = this.current;\n  this.confirmTransition(\n    route,\n    function () {\n      this$1.updateRoute(route);\n      onComplete && onComplete(route);\n      this$1.ensureURL();\n      this$1.router.afterHooks.forEach(function (hook) {\n        hook && hook(route, prev);\n      });\n\n      // fire ready cbs once\n      if (!this$1.ready) {\n        this$1.ready = true;\n        this$1.readyCbs.forEach(function (cb) {\n          cb(route);\n        });\n      }\n    },\n    function (err) {\n      if (onAbort) {\n        onAbort(err);\n      }\n      if (err && !this$1.ready) {\n        // Initial redirection should not mark the history as ready yet\n        // because it's triggered by the redirection instead\n        // https://github.com/vuejs/vue-router/issues/3225\n        // https://github.com/vuejs/vue-router/issues/3331\n        if (!isNavigationFailure(err, NavigationFailureType.redirected) || prev !== START) {\n          this$1.ready = true;\n          this$1.readyErrorCbs.forEach(function (cb) {\n            cb(err);\n          });\n        }\n      }\n    }\n  );\n};\n\nHistory.prototype.confirmTransition = function confirmTransition (route, onComplete, onAbort) {\n    var this$1 = this;\n\n  var current = this.current;\n  this.pending = route;\n  var abort = function (err) {\n    // changed after adding errors with\n    // https://github.com/vuejs/vue-router/pull/3047 before that change,\n    // redirect and aborted navigation would produce an err == null\n    if (!isNavigationFailure(err) && isError(err)) {\n      if (this$1.errorCbs.length) {\n        this$1.errorCbs.forEach(function (cb) {\n          cb(err);\n        });\n      } else {\n        warn(false, 'uncaught error during route navigation:');\n        console.error(err);\n      }\n    }\n    onAbort && onAbort(err);\n  };\n  var lastRouteIndex = route.matched.length - 1;\n  var lastCurrentIndex = current.matched.length - 1;\n  if (\n    isSameRoute(route, current) &&\n    // in the case the route map has been dynamically appended to\n    lastRouteIndex === lastCurrentIndex &&\n    route.matched[lastRouteIndex] === current.matched[lastCurrentIndex]\n  ) {\n    this.ensureURL();\n    return abort(createNavigationDuplicatedError(current, route))\n  }\n\n  var ref = resolveQueue(\n    this.current.matched,\n    route.matched\n  );\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  var iterator = function (hook, next) {\n    if (this$1.pending !== route) {\n      return abort(createNavigationCancelledError(current, route))\n    }\n    try {\n      hook(route, current, function (to) {\n        if (to === false) {\n          // next(false) -> abort navigation, ensure current URL\n          this$1.ensureURL(true);\n          abort(createNavigationAbortedError(current, route));\n        } else if (isError(to)) {\n          this$1.ensureURL(true);\n          abort(to);\n        } else if (\n          typeof to === 'string' ||\n          (typeof to === 'object' &&\n            (typeof to.path === 'string' || typeof to.name === 'string'))\n        ) {\n          // next('/') or next({ path: '/' }) -> redirect\n          abort(createNavigationRedirectedError(current, route));\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    // wait until async components are resolved before\n    // extracting in-component enter guards\n    var enterGuards = extractEnterGuards(activated);\n    var queue = enterGuards.concat(this$1.router.resolveHooks);\n    runQueue(queue, iterator, function () {\n      if (this$1.pending !== route) {\n        return abort(createNavigationCancelledError(current, route))\n      }\n      this$1.pending = null;\n      onComplete(route);\n      if (this$1.router.app) {\n        this$1.router.app.$nextTick(function () {\n          handleRouteEntered(route);\n        });\n      }\n    });\n  });\n};\n\nHistory.prototype.updateRoute = function updateRoute (route) {\n  this.current = route;\n  this.cb && this.cb(route);\n};\n\nHistory.prototype.setupListeners = function setupListeners () {\n  // Default implementation is empty\n};\n\nHistory.prototype.teardown = function teardown () {\n  // clean up event listeners\n  // https://github.com/vuejs/vue-router/issues/2341\n  this.listeners.forEach(function (cleanupListener) {\n    cleanupListener();\n  });\n  this.listeners = [];\n\n  // reset current history route\n  // https://github.com/vuejs/vue-router/issues/3294\n  this.current = START;\n  this.pending = null;\n};\n\nfunction normalizeBase (base) {\n  if (!base) {\n    if (inBrowser) {\n      // respect <base> 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) {\n  return extractGuards(\n    activated,\n    'beforeRouteEnter',\n    function (guard, _, match, key) {\n      return bindEnterGuard(guard, match, key)\n    }\n  )\n}\n\nfunction bindEnterGuard (\n  guard,\n  match,\n  key\n) {\n  return function routeEnterGuard (to, from, next) {\n    return guard(to, from, function (cb) {\n      if (typeof cb === 'function') {\n        if (!match.enteredCbs[key]) {\n          match.enteredCbs[key] = [];\n        }\n        match.enteredCbs[key].push(cb);\n      }\n      next(cb);\n    })\n  }\n}\n\n/*  */\n\nvar HTML5History = /*@__PURE__*/(function (History) {\n  function HTML5History (router, base) {\n    History.call(this, router, base);\n\n    this._startLocation = getLocation(this.base);\n  }\n\n  if ( History ) HTML5History.__proto__ = History;\n  HTML5History.prototype = Object.create( History && History.prototype );\n  HTML5History.prototype.constructor = HTML5History;\n\n  HTML5History.prototype.setupListeners = function setupListeners () {\n    var this$1 = this;\n\n    if (this.listeners.length > 0) {\n      return\n    }\n\n    var router = this.router;\n    var expectScroll = router.options.scrollBehavior;\n    var supportsScroll = supportsPushState && expectScroll;\n\n    if (supportsScroll) {\n      this.listeners.push(setupScroll());\n    }\n\n    var handleRoutingEvent = function () {\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 === this$1._startLocation) {\n        return\n      }\n\n      this$1.transitionTo(location, function (route) {\n        if (supportsScroll) {\n          handleScroll(router, route, current, true);\n        }\n      });\n    };\n    window.addEventListener('popstate', handleRoutingEvent);\n    this.listeners.push(function () {\n      window.removeEventListener('popstate', handleRoutingEvent);\n    });\n  };\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  var pathLowerCase = path.toLowerCase();\n  var baseLowerCase = base.toLowerCase();\n  // base=\"/a\" shouldn't turn path=\"/app\" into \"/a/pp\"\n  // https://github.com/vuejs/vue-router/issues/3555\n  // so we ensure the trailing slash in the base\n  if (base && ((pathLowerCase === baseLowerCase) ||\n    (pathLowerCase.indexOf(cleanPath(baseLowerCase + '/')) === 0))) {\n    path = path.slice(base.length);\n  }\n  return (path || '/') + window.location.search + window.location.hash\n}\n\n/*  */\n\nvar HashHistory = /*@__PURE__*/(function (History) {\n  function HashHistory (router, base, fallback) {\n    History.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 ) HashHistory.__proto__ = History;\n  HashHistory.prototype = Object.create( History && History.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    if (this.listeners.length > 0) {\n      return\n    }\n\n    var router = this.router;\n    var expectScroll = router.options.scrollBehavior;\n    var supportsScroll = supportsPushState && expectScroll;\n\n    if (supportsScroll) {\n      this.listeners.push(setupScroll());\n    }\n\n    var handleRoutingEvent = 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    var eventType = supportsPushState ? 'popstate' : 'hashchange';\n    window.addEventListener(\n      eventType,\n      handleRoutingEvent\n    );\n    this.listeners.push(function () {\n      window.removeEventListener(eventType, handleRoutingEvent);\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(\n      location,\n      function (route) {\n        pushHash(route.fullPath);\n        handleScroll(this$1.router, route, fromRoute, false);\n        onComplete && onComplete(route);\n      },\n      onAbort\n    );\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(\n      location,\n      function (route) {\n        replaceHash(route.fullPath);\n        handleScroll(this$1.router, route, fromRoute, false);\n        onComplete && onComplete(route);\n      },\n      onAbort\n    );\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(cleanPath(base + '/#' + location));\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  // empty path\n  if (index < 0) { return '' }\n\n  href = href.slice(index + 1);\n\n  return href\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\nvar AbstractHistory = /*@__PURE__*/(function (History) {\n  function AbstractHistory (router, base) {\n    History.call(this, router, base);\n    this.stack = [];\n    this.index = -1;\n  }\n\n  if ( History ) AbstractHistory.__proto__ = History;\n  AbstractHistory.prototype = Object.create( History && History.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(\n      location,\n      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      },\n      onAbort\n    );\n  };\n\n  AbstractHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n    var this$1 = this;\n\n    this.transitionTo(\n      location,\n      function (route) {\n        this$1.stack = this$1.stack.slice(0, this$1.index).concat(route);\n        onComplete && onComplete(route);\n      },\n      onAbort\n    );\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(\n      route,\n      function () {\n        var prev = this$1.current;\n        this$1.index = targetIndex;\n        this$1.updateRoute(route);\n        this$1.router.afterHooks.forEach(function (hook) {\n          hook && hook(route, prev);\n        });\n      },\n      function (err) {\n        if (isNavigationFailure(err, NavigationFailureType.duplicated)) {\n          this$1.index = targetIndex;\n        }\n      }\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 =\n    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 (raw, current, redirectedFrom) {\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' &&\n    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  // set up app destroyed handler\n  // https://github.com/vuejs/vue-router/issues/2639\n  app.$once('hook:destroyed', function () {\n    // clean out app from this.apps array once destroyed\n    var index = this$1.apps.indexOf(app);\n    if (index > -1) { this$1.apps.splice(index, 1); }\n    // ensure we still have a main app or null if no apps\n    // we do not release the router so it can be reused\n    if (this$1.app === app) { this$1.app = this$1.apps[0] || null; }\n\n    if (!this$1.app) { this$1.history.teardown(); }\n  });\n\n  // main app previously initialized\n  // return as we don't need to set up new history listener\n  if (this.app) {\n    return\n  }\n\n  this.app = app;\n\n  var history = this.history;\n\n  if (history instanceof HTML5History || history instanceof HashHistory) {\n    var handleInitialScroll = function (routeOrError) {\n      var from = history.current;\n      var expectScroll = this$1.options.scrollBehavior;\n      var supportsScroll = supportsPushState && expectScroll;\n\n      if (supportsScroll && 'fullPath' in routeOrError) {\n        handleScroll(this$1, routeOrError, from, false);\n      }\n    };\n    var setupListeners = function (routeOrError) {\n      history.setupListeners();\n      handleInitialScroll(routeOrError);\n    };\n    history.transitionTo(\n      history.getCurrentLocation(),\n      setupListeners,\n      setupListeners\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    var this$1 = this;\n\n  // $flow-disable-line\n  if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n    return new Promise(function (resolve, reject) {\n      this$1.history.push(location, resolve, reject);\n    })\n  } else {\n    this.history.push(location, onComplete, onAbort);\n  }\n};\n\nVueRouter.prototype.replace = function replace (location, onComplete, onAbort) {\n    var this$1 = this;\n\n  // $flow-disable-line\n  if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n    return new Promise(function (resolve, reject) {\n      this$1.history.replace(location, resolve, reject);\n    })\n  } else {\n    this.history.replace(location, onComplete, onAbort);\n  }\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(\n    [],\n    route.matched.map(function (m) {\n      return Object.keys(m.components).map(function (key) {\n        return m.components[key]\n      })\n    })\n  )\n};\n\nVueRouter.prototype.resolve = function resolve (\n  to,\n  current,\n  append\n) {\n  current = current || this.history.current;\n  var location = normalizeLocation(to, current, append, this);\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.getRoutes = function getRoutes () {\n  return this.matcher.getRoutes()\n};\n\nVueRouter.prototype.addRoute = function addRoute (parentOrRoute, route) {\n  this.matcher.addRoute(parentOrRoute, route);\n  if (this.history.current !== START) {\n    this.history.transitionTo(this.history.getCurrentLocation());\n  }\n};\n\nVueRouter.prototype.addRoutes = function addRoutes (routes) {\n  if (process.env.NODE_ENV !== 'production') {\n    warn(false, 'router.addRoutes() is deprecated and has been removed in Vue Router 4. Use router.addRoute() instead.');\n  }\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 = '3.5.2';\nVueRouter.isNavigationFailure = isNavigationFailure;\nVueRouter.NavigationFailureType = NavigationFailureType;\nVueRouter.START_LOCATION = START;\n\nif (inBrowser && window.Vue) {\n  window.Vue.use(VueRouter);\n}\n\nexport default VueRouter;\n"],"sourceRoot":""}