{"version":3,"sources":["webpack:///./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack:///./node_modules/vue-resource/dist/vue-resource.esm.js","webpack:///./node_modules/vue-router/dist/vue-router.esm.js","webpack:///./node_modules/register-service-worker/index.js"],"names":["normalizeComponent","scriptExports","render","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","options","_compiled","functional","_scopeId","context","this","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","call","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate","concat","exports","RESOLVED","REJECTED","PENDING","Promise$1","executor","state","value","undefined","deferred","promise","x","resolve","r","reject","e","all","iterable","count","result","resolver","i","length","then","race","p","prototype","PromiseObj","Promise","bind","TypeError","called","notify","reason","nextTick","shift","onResolved","onRejected","push","catch","window","p$1","fulfilled","rejected","finally","callback","ntick","ref","hasOwnProperty","ref$1","slice","debug","inBrowser","Util","config","silent","warn","msg","console","error","cb","ctx","trim","str","replace","trimEnd","chars","RegExp","toLower","toLowerCase","toUpper","toUpperCase","isArray","Array","isString","val","isFunction","isObject","obj","isPlainObject","Object","getPrototypeOf","isBlob","Blob","isFormData","FormData","when","arguments","fn","opts","merge","$vm","each","iterator","key","assign","_assign","target","args","forEach","source","_merge","defaults","deep","root","options$$1","next","url","test","query","urlParams","keys","Url","params","indexOf","expand","variables","tmpl","parse","expanded","apply","vars","template","operators","_","expression","literal","operator","values","charAt","substr","split","variable","tmp","exec","getValues","separator","join","encodeReserved","modifier","isDefined","toString","substring","parseInt","encodeValue","isKeyOperator","filter","k","encodeURIComponent","map","part","encodeURI","transform","self","transforms","handler","factory","vm","serialize","scope","hash","array","plain","name","xdrClient","request","xdr","XDomainRequest","type","status","respondWith","responseText","abort","open","method","getUrl","timeout","onload","onabort","onerror","ontimeout","onprogress","send","getBody","escape","el","document","createElement","documentMode","href","protocol","port","host","hostname","pathname","search","SUPPORTS_CORS","XMLHttpRequest","cors","orgUrl","location","reqUrl","crossOrigin","emulateHTTP","client","form","body","headers","delete","emulateJSON","set","json","get","JSON","stringify","response","bodyText","text","isJson","start","match","end","jsonpClient","script","jsonp","jsonpCallback","Math","random","removeChild","setTimeout","src","async","appendChild","before","header","Http","common","custom","has","xhrClient","xhr","event","statusText","getAllResponseHeaders","row","append","responseType","withCredentials","credentials","progress","addEventListener","downloadProgress","upload","uploadProgress","setRequestHeader","nodeClient","resp","statusCode","statusMessage","error$$1","Client","reqHandlers","sendRequest","resHandlers","pop","unshift","use","Headers","this$1","getName","reduce","prev","curr","normalizeName","list","getAll","deleteAll","thisArg","Response","ok","bodyBlob","isBlobText","blobText","reader","FileReader","readAsText","blob","defineProperty","Request","COMMON_HEADERS","JSON_CONTENT_TYPE","interceptors","interceptor","Error","Resource","actions","resource","action","$http","plugin","Vue","installed","http","defineProperties","$url","$resource","$promise","put","post","patch","method$$1","save","update","remove","condition","message","isError","err","isExtendedError","constructor","_name","extend","a","b","View","props","String","default","children","data","routerView","$createElement","route","$route","cache","_routerViewCache","depth","inactive","_routerRoot","vnodeData","keepAlive","_inactive","$parent","routerViewDepth","matched","component","components","registerRouteInstance","current","instances","prepatch","vnode","componentInstance","init","propsToPass","resolveProps","attrs","encodeReserveRE","encodeReserveReplacer","c","charCodeAt","commaRE","encode","decode","decodeURIComponent","resolveQuery","extraQuery","_parseQuery","parsedQuery","parseQuery","res","param","parts","stringifyQuery","val2","trailingSlashRE","createRoute","record","redirectedFrom","router","clone","meta","path","fullPath","getFullPath","formatMatch","freeze","START","_stringifyQuery","isSameRoute","isObjectEqual","aKeys","bKeys","every","aVal","bVal","isIncludedRoute","queryIncludes","resolvePath","relative","base","firstChar","stack","segments","segment","parsePath","hashIndex","queryIndex","cleanPath","isarray","arr","pathToRegexp_1","pathToRegexp","parse_1","compile_1","compile","tokensToFunction_1","tokensToFunction","tokensToRegExp_1","tokensToRegExp","PATH_REGEXP","tokens","index","defaultDelimiter","delimiter","m","escaped","offset","prefix","capture","group","asterisk","partial","repeat","optional","pattern","escapeGroup","escapeString","encodeURIComponentPretty","encodeAsterisk","matches","pretty","token","j","attachKeys","re","flags","sensitive","regexpToRegexp","groups","arrayToRegexp","regexp","stringToRegexp","strict","endsWithDelimiter","regexpCompileCache","create","fillParams","routeMsg","filler","pathMatch","normalizeLocation","raw","_normalized","rawPath","parsedPath","basePath","_Vue","toTypes","eventTypes","noop","Link","to","required","tag","exact","Boolean","activeClass","exactActiveClass","$router","classes","globalActiveClass","linkActiveClass","globalExactActiveClass","linkExactActiveClass","activeClassFallback","exactActiveClassFallback","compareTarget","guardEvent","on","click","class","scopedSlot","$scopedSlots","$hasNormal","navigate","isActive","isExactActive","findAnchor","$slots","isStatic","aData","handler$1","event$1","aAttrs","metaKey","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","createRouteMap","routes","oldPathList","oldPathMap","oldNameMap","pathList","pathMap","nameMap","addRouteRecord","l","splice","matchAs","pathToRegexpOptions","normalizedPath","normalizePath","caseSensitive","regex","compileRouteRegex","redirect","beforeEnter","childMatchAs","alias","aliases","aliasRoute","createMatcher","addRoutes","currentRoute","_createRoute","paramNames","record$1","matchRoute","originalRedirect","resolveRecordPath","resolvedPath","aliasedPath","aliasedMatch","aliasedRecord","len","Time","performance","now","Date","genStateKey","toFixed","_key","getStateKey","setStateKey","positionStore","setupScroll","protocolAndPath","absolutePath","replaceState","saveScrollPosition","handleScroll","from","isPop","app","behavior","scrollBehavior","$nextTick","position","getScrollPosition","shouldScroll","scrollToPosition","pageXOffset","y","pageYOffset","getElementPosition","docEl","documentElement","docRect","getBoundingClientRect","elRect","left","top","isValidPosition","isNumber","normalizePosition","normalizeOffset","hashStartsWithNumberRE","selector","getElementById","querySelector","scrollTo","supportsPushState","ua","navigator","userAgent","pushState","runQueue","queue","step","resolveAsyncComponents","hasAsync","pending","flatMapComponents","def","cid","once","resolvedDef","isESModule","resolved","comp","flatten","hasSymbol","Symbol","toStringTag","__esModule","NavigationDuplicated","normalizedLocation","writable","configurable","__proto__","History","normalizeBase","ready","readyCbs","readyErrorCbs","errorCbs","baseEl","resolveQueue","max","updated","activated","deactivated","extractGuards","records","reverse","guards","instance","guard","extractGuard","extractLeaveGuards","bindGuard","extractUpdateHooks","extractEnterGuards","cbs","isValid","bindEnterGuard","poll","_isBeingDestroyed","listen","onReady","errorCb","onError","transitionTo","onComplete","onAbort","confirmTransition","updateRoute","ensureURL","beforeHooks","postEnterCbs","enterGuards","resolveHooks","afterHooks","HTML5History","expectScroll","supportsScroll","initLocation","getLocation","go","n","fromRoute","getCurrentLocation","decodeURI","HashHistory","fallback","checkFallback","ensureSlash","setupListeners","getHash","replaceHash","pushHash","searchIndex","AbstractHistory","targetIndex","VueRouter","apps","matcher","mode","prototypeAccessors","registerHook","createHref","$once","setupHashListener","beforeEach","beforeResolve","afterEach","back","forward","getMatchedComponents","normalizedTo","version","isLocalhost","register","swUrl","hooks","registrationOptions","emit","checkValidServiceWorker","serviceWorker","registration","registerValidSW","waiting","onupdatefound","installingWorker","installing","onstatechange","controller","fetch","unregister","onLine"],"mappings":"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","file":"js/chunk-vendors~678f84af.c619ece2.js","sourcesContent":["/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functioal component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","/*!\n * vue-resource v1.5.1\n * https://github.com/pagekit/vue-resource\n * Released under the MIT License.\n */\n\n/**\n * Promises/A+ polyfill v1.1.4 (https://github.com/bramstein/promis)\n */\n\nvar RESOLVED = 0;\nvar REJECTED = 1;\nvar PENDING = 2;\n\nfunction Promise$1(executor) {\n\n this.state = PENDING;\n this.value = undefined;\n this.deferred = [];\n\n var promise = this;\n\n try {\n executor(function (x) {\n promise.resolve(x);\n }, function (r) {\n promise.reject(r);\n });\n } catch (e) {\n promise.reject(e);\n }\n}\n\nPromise$1.reject = function (r) {\n return new Promise$1(function (resolve, reject) {\n reject(r);\n });\n};\n\nPromise$1.resolve = function (x) {\n return new Promise$1(function (resolve, reject) {\n resolve(x);\n });\n};\n\nPromise$1.all = function all(iterable) {\n return new Promise$1(function (resolve, reject) {\n var count = 0, result = [];\n\n if (iterable.length === 0) {\n resolve(result);\n }\n\n function resolver(i) {\n return function (x) {\n result[i] = x;\n count += 1;\n\n if (count === iterable.length) {\n resolve(result);\n }\n };\n }\n\n for (var i = 0; i < iterable.length; i += 1) {\n Promise$1.resolve(iterable[i]).then(resolver(i), reject);\n }\n });\n};\n\nPromise$1.race = function race(iterable) {\n return new Promise$1(function (resolve, reject) {\n for (var i = 0; i < iterable.length; i += 1) {\n Promise$1.resolve(iterable[i]).then(resolve, reject);\n }\n });\n};\n\nvar p = Promise$1.prototype;\n\np.resolve = function resolve(x) {\n var promise = this;\n\n if (promise.state === PENDING) {\n if (x === promise) {\n throw new TypeError('Promise settled with itself.');\n }\n\n var called = false;\n\n try {\n var then = x && x['then'];\n\n if (x !== null && typeof x === 'object' && typeof then === 'function') {\n then.call(x, function (x) {\n if (!called) {\n promise.resolve(x);\n }\n called = true;\n\n }, function (r) {\n if (!called) {\n promise.reject(r);\n }\n called = true;\n });\n return;\n }\n } catch (e) {\n if (!called) {\n promise.reject(e);\n }\n return;\n }\n\n promise.state = RESOLVED;\n promise.value = x;\n promise.notify();\n }\n};\n\np.reject = function reject(reason) {\n var promise = this;\n\n if (promise.state === PENDING) {\n if (reason === promise) {\n throw new TypeError('Promise settled with itself.');\n }\n\n promise.state = REJECTED;\n promise.value = reason;\n promise.notify();\n }\n};\n\np.notify = function notify() {\n var promise = this;\n\n nextTick(function () {\n if (promise.state !== PENDING) {\n while (promise.deferred.length) {\n var deferred = promise.deferred.shift(),\n onResolved = deferred[0],\n onRejected = deferred[1],\n resolve = deferred[2],\n reject = deferred[3];\n\n try {\n if (promise.state === RESOLVED) {\n if (typeof onResolved === 'function') {\n resolve(onResolved.call(undefined, promise.value));\n } else {\n resolve(promise.value);\n }\n } else if (promise.state === REJECTED) {\n if (typeof onRejected === 'function') {\n resolve(onRejected.call(undefined, promise.value));\n } else {\n reject(promise.value);\n }\n }\n } catch (e) {\n reject(e);\n }\n }\n }\n });\n};\n\np.then = function then(onResolved, onRejected) {\n var promise = this;\n\n return new Promise$1(function (resolve, reject) {\n promise.deferred.push([onResolved, onRejected, resolve, reject]);\n promise.notify();\n });\n};\n\np.catch = function (onRejected) {\n return this.then(undefined, onRejected);\n};\n\n/**\n * Promise adapter.\n */\n\nif (typeof Promise === 'undefined') {\n window.Promise = Promise$1;\n}\n\nfunction PromiseObj(executor, context) {\n\n if (executor instanceof Promise) {\n this.promise = executor;\n } else {\n this.promise = new Promise(executor.bind(context));\n }\n\n this.context = context;\n}\n\nPromiseObj.all = function (iterable, context) {\n return new PromiseObj(Promise.all(iterable), context);\n};\n\nPromiseObj.resolve = function (value, context) {\n return new PromiseObj(Promise.resolve(value), context);\n};\n\nPromiseObj.reject = function (reason, context) {\n return new PromiseObj(Promise.reject(reason), context);\n};\n\nPromiseObj.race = function (iterable, context) {\n return new PromiseObj(Promise.race(iterable), context);\n};\n\nvar p$1 = PromiseObj.prototype;\n\np$1.bind = function (context) {\n this.context = context;\n return this;\n};\n\np$1.then = function (fulfilled, rejected) {\n\n if (fulfilled && fulfilled.bind && this.context) {\n fulfilled = fulfilled.bind(this.context);\n }\n\n if (rejected && rejected.bind && this.context) {\n rejected = rejected.bind(this.context);\n }\n\n return new PromiseObj(this.promise.then(fulfilled, rejected), this.context);\n};\n\np$1.catch = function (rejected) {\n\n if (rejected && rejected.bind && this.context) {\n rejected = rejected.bind(this.context);\n }\n\n return new PromiseObj(this.promise.catch(rejected), this.context);\n};\n\np$1.finally = function (callback) {\n\n return this.then(function (value) {\n callback.call(this);\n return value;\n }, function (reason) {\n callback.call(this);\n return Promise.reject(reason);\n }\n );\n};\n\n/**\n * Utility functions.\n */\n\nvar ref = {};\nvar hasOwnProperty = ref.hasOwnProperty;\nvar ref$1 = [];\nvar slice = ref$1.slice;\nvar debug = false, ntick;\n\nvar inBrowser = typeof window !== 'undefined';\n\nfunction Util (ref) {\n var config = ref.config;\n var nextTick = ref.nextTick;\n\n ntick = nextTick;\n debug = config.debug || !config.silent;\n}\n\nfunction warn(msg) {\n if (typeof console !== 'undefined' && debug) {\n console.warn('[VueResource warn]: ' + msg);\n }\n}\n\nfunction error(msg) {\n if (typeof console !== 'undefined') {\n console.error(msg);\n }\n}\n\nfunction nextTick(cb, ctx) {\n return ntick(cb, ctx);\n}\n\nfunction trim(str) {\n return str ? str.replace(/^\\s*|\\s*$/g, '') : '';\n}\n\nfunction trimEnd(str, chars) {\n\n if (str && chars === undefined) {\n return str.replace(/\\s+$/, '');\n }\n\n if (!str || !chars) {\n return str;\n }\n\n return str.replace(new RegExp((\"[\" + chars + \"]+$\")), '');\n}\n\nfunction toLower(str) {\n return str ? str.toLowerCase() : '';\n}\n\nfunction toUpper(str) {\n return str ? str.toUpperCase() : '';\n}\n\nvar isArray = Array.isArray;\n\nfunction isString(val) {\n return typeof val === 'string';\n}\n\nfunction isFunction(val) {\n return typeof val === 'function';\n}\n\nfunction isObject(obj) {\n return obj !== null && typeof obj === 'object';\n}\n\nfunction isPlainObject(obj) {\n return isObject(obj) && Object.getPrototypeOf(obj) == Object.prototype;\n}\n\nfunction isBlob(obj) {\n return typeof Blob !== 'undefined' && obj instanceof Blob;\n}\n\nfunction isFormData(obj) {\n return typeof FormData !== 'undefined' && obj instanceof FormData;\n}\n\nfunction when(value, fulfilled, rejected) {\n\n var promise = PromiseObj.resolve(value);\n\n if (arguments.length < 2) {\n return promise;\n }\n\n return promise.then(fulfilled, rejected);\n}\n\nfunction options(fn, obj, opts) {\n\n opts = opts || {};\n\n if (isFunction(opts)) {\n opts = opts.call(obj);\n }\n\n return merge(fn.bind({$vm: obj, $options: opts}), fn, {$options: opts});\n}\n\nfunction each(obj, iterator) {\n\n var i, key;\n\n if (isArray(obj)) {\n for (i = 0; i < obj.length; i++) {\n iterator.call(obj[i], obj[i], i);\n }\n } else if (isObject(obj)) {\n for (key in obj) {\n if (hasOwnProperty.call(obj, key)) {\n iterator.call(obj[key], obj[key], key);\n }\n }\n }\n\n return obj;\n}\n\nvar assign = Object.assign || _assign;\n\nfunction merge(target) {\n\n var args = slice.call(arguments, 1);\n\n args.forEach(function (source) {\n _merge(target, source, true);\n });\n\n return target;\n}\n\nfunction defaults(target) {\n\n var args = slice.call(arguments, 1);\n\n args.forEach(function (source) {\n\n for (var key in source) {\n if (target[key] === undefined) {\n target[key] = source[key];\n }\n }\n\n });\n\n return target;\n}\n\nfunction _assign(target) {\n\n var args = slice.call(arguments, 1);\n\n args.forEach(function (source) {\n _merge(target, source);\n });\n\n return target;\n}\n\nfunction _merge(target, source, deep) {\n for (var key in source) {\n if (deep && (isPlainObject(source[key]) || isArray(source[key]))) {\n if (isPlainObject(source[key]) && !isPlainObject(target[key])) {\n target[key] = {};\n }\n if (isArray(source[key]) && !isArray(target[key])) {\n target[key] = [];\n }\n _merge(target[key], source[key], deep);\n } else if (source[key] !== undefined) {\n target[key] = source[key];\n }\n }\n}\n\n/**\n * Root Prefix Transform.\n */\n\nfunction root (options$$1, next) {\n\n var url = next(options$$1);\n\n if (isString(options$$1.root) && !/^(https?:)?\\//.test(url)) {\n url = trimEnd(options$$1.root, '/') + '/' + url;\n }\n\n return url;\n}\n\n/**\n * Query Parameter Transform.\n */\n\nfunction query (options$$1, next) {\n\n var urlParams = Object.keys(Url.options.params), query = {}, url = next(options$$1);\n\n each(options$$1.params, function (value, key) {\n if (urlParams.indexOf(key) === -1) {\n query[key] = value;\n }\n });\n\n query = Url.params(query);\n\n if (query) {\n url += (url.indexOf('?') == -1 ? '?' : '&') + query;\n }\n\n return url;\n}\n\n/**\n * URL Template v2.0.6 (https://github.com/bramstein/url-template)\n */\n\nfunction expand(url, params, variables) {\n\n var tmpl = parse(url), expanded = tmpl.expand(params);\n\n if (variables) {\n variables.push.apply(variables, tmpl.vars);\n }\n\n return expanded;\n}\n\nfunction parse(template) {\n\n var operators = ['+', '#', '.', '/', ';', '?', '&'], variables = [];\n\n return {\n vars: variables,\n expand: function expand(context) {\n return template.replace(/\\{([^{}]+)\\}|([^{}]+)/g, function (_, expression, literal) {\n if (expression) {\n\n var operator = null, values = [];\n\n if (operators.indexOf(expression.charAt(0)) !== -1) {\n operator = expression.charAt(0);\n expression = expression.substr(1);\n }\n\n expression.split(/,/g).forEach(function (variable) {\n var tmp = /([^:*]*)(?::(\\d+)|(\\*))?/.exec(variable);\n values.push.apply(values, getValues(context, operator, tmp[1], tmp[2] || tmp[3]));\n variables.push(tmp[1]);\n });\n\n if (operator && operator !== '+') {\n\n var separator = ',';\n\n if (operator === '?') {\n separator = '&';\n } else if (operator !== '#') {\n separator = operator;\n }\n\n return (values.length !== 0 ? operator : '') + values.join(separator);\n } else {\n return values.join(',');\n }\n\n } else {\n return encodeReserved(literal);\n }\n });\n }\n };\n}\n\nfunction getValues(context, operator, key, modifier) {\n\n var value = context[key], result = [];\n\n if (isDefined(value) && value !== '') {\n if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n value = value.toString();\n\n if (modifier && modifier !== '*') {\n value = value.substring(0, parseInt(modifier, 10));\n }\n\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : null));\n } else {\n if (modifier === '*') {\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : null));\n });\n } else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n result.push(encodeValue(operator, value[k], k));\n }\n });\n }\n } else {\n var tmp = [];\n\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n tmp.push(encodeValue(operator, value));\n });\n } else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n tmp.push(encodeURIComponent(k));\n tmp.push(encodeValue(operator, value[k].toString()));\n }\n });\n }\n\n if (isKeyOperator(operator)) {\n result.push(encodeURIComponent(key) + '=' + tmp.join(','));\n } else if (tmp.length !== 0) {\n result.push(tmp.join(','));\n }\n }\n }\n } else {\n if (operator === ';') {\n result.push(encodeURIComponent(key));\n } else if (value === '' && (operator === '&' || operator === '?')) {\n result.push(encodeURIComponent(key) + '=');\n } else if (value === '') {\n result.push('');\n }\n }\n\n return result;\n}\n\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\n\nfunction isKeyOperator(operator) {\n return operator === ';' || operator === '&' || operator === '?';\n}\n\nfunction encodeValue(operator, value, key) {\n\n value = (operator === '+' || operator === '#') ? encodeReserved(value) : encodeURIComponent(value);\n\n if (key) {\n return encodeURIComponent(key) + '=' + value;\n } else {\n return value;\n }\n}\n\nfunction encodeReserved(str) {\n return str.split(/(%[0-9A-Fa-f]{2})/g).map(function (part) {\n if (!/%[0-9A-Fa-f]/.test(part)) {\n part = encodeURI(part);\n }\n return part;\n }).join('');\n}\n\n/**\n * URL Template (RFC 6570) Transform.\n */\n\nfunction template (options) {\n\n var variables = [], url = expand(options.url, options.params, variables);\n\n variables.forEach(function (key) {\n delete options.params[key];\n });\n\n return url;\n}\n\n/**\n * Service for URL templating.\n */\n\nfunction Url(url, params) {\n\n var self = this || {}, options$$1 = url, transform;\n\n if (isString(url)) {\n options$$1 = {url: url, params: params};\n }\n\n options$$1 = merge({}, Url.options, self.$options, options$$1);\n\n Url.transforms.forEach(function (handler) {\n\n if (isString(handler)) {\n handler = Url.transform[handler];\n }\n\n if (isFunction(handler)) {\n transform = factory(handler, transform, self.$vm);\n }\n\n });\n\n return transform(options$$1);\n}\n\n/**\n * Url options.\n */\n\nUrl.options = {\n url: '',\n root: null,\n params: {}\n};\n\n/**\n * Url transforms.\n */\n\nUrl.transform = {template: template, query: query, root: root};\nUrl.transforms = ['template', 'query', 'root'];\n\n/**\n * Encodes a Url parameter string.\n *\n * @param {Object} obj\n */\n\nUrl.params = function (obj) {\n\n var params = [], escape = encodeURIComponent;\n\n params.add = function (key, value) {\n\n if (isFunction(value)) {\n value = value();\n }\n\n if (value === null) {\n value = '';\n }\n\n this.push(escape(key) + '=' + escape(value));\n };\n\n serialize(params, obj);\n\n return params.join('&').replace(/%20/g, '+');\n};\n\n/**\n * Parse a URL and return its components.\n *\n * @param {String} url\n */\n\nUrl.parse = function (url) {\n\n var el = document.createElement('a');\n\n if (document.documentMode) {\n el.href = url;\n url = el.href;\n }\n\n el.href = url;\n\n return {\n href: el.href,\n protocol: el.protocol ? el.protocol.replace(/:$/, '') : '',\n port: el.port,\n host: el.host,\n hostname: el.hostname,\n pathname: el.pathname.charAt(0) === '/' ? el.pathname : '/' + el.pathname,\n search: el.search ? el.search.replace(/^\\?/, '') : '',\n hash: el.hash ? el.hash.replace(/^#/, '') : ''\n };\n};\n\nfunction factory(handler, next, vm) {\n return function (options$$1) {\n return handler.call(vm, options$$1, next);\n };\n}\n\nfunction serialize(params, obj, scope) {\n\n var array = isArray(obj), plain = isPlainObject(obj), hash;\n\n each(obj, function (value, key) {\n\n hash = isObject(value) || isArray(value);\n\n if (scope) {\n key = scope + '[' + (plain || hash ? key : '') + ']';\n }\n\n if (!scope && array) {\n params.add(value.name, value.value);\n } else if (hash) {\n serialize(params, value, key);\n } else {\n params.add(key, value);\n }\n });\n}\n\n/**\n * XDomain client (Internet Explorer).\n */\n\nfunction xdrClient (request) {\n return new PromiseObj(function (resolve) {\n\n var xdr = new XDomainRequest(), handler = function (ref) {\n var type = ref.type;\n\n\n var status = 0;\n\n if (type === 'load') {\n status = 200;\n } else if (type === 'error') {\n status = 500;\n }\n\n resolve(request.respondWith(xdr.responseText, {status: status}));\n };\n\n request.abort = function () { return xdr.abort(); };\n\n xdr.open(request.method, request.getUrl());\n\n if (request.timeout) {\n xdr.timeout = request.timeout;\n }\n\n xdr.onload = handler;\n xdr.onabort = handler;\n xdr.onerror = handler;\n xdr.ontimeout = handler;\n xdr.onprogress = function () {};\n xdr.send(request.getBody());\n });\n}\n\n/**\n * CORS Interceptor.\n */\n\nvar SUPPORTS_CORS = inBrowser && 'withCredentials' in new XMLHttpRequest();\n\nfunction cors (request) {\n\n if (inBrowser) {\n\n var orgUrl = Url.parse(location.href);\n var reqUrl = Url.parse(request.getUrl());\n\n if (reqUrl.protocol !== orgUrl.protocol || reqUrl.host !== orgUrl.host) {\n\n request.crossOrigin = true;\n request.emulateHTTP = false;\n\n if (!SUPPORTS_CORS) {\n request.client = xdrClient;\n }\n }\n }\n\n}\n\n/**\n * Form data Interceptor.\n */\n\nfunction form (request) {\n\n if (isFormData(request.body)) {\n request.headers.delete('Content-Type');\n } else if (isObject(request.body) && request.emulateJSON) {\n request.body = Url.params(request.body);\n request.headers.set('Content-Type', 'application/x-www-form-urlencoded');\n }\n\n}\n\n/**\n * JSON Interceptor.\n */\n\nfunction json (request) {\n\n var type = request.headers.get('Content-Type') || '';\n\n if (isObject(request.body) && type.indexOf('application/json') === 0) {\n request.body = JSON.stringify(request.body);\n }\n\n return function (response) {\n\n return response.bodyText ? when(response.text(), function (text) {\n\n var type = response.headers.get('Content-Type') || '';\n\n if (type.indexOf('application/json') === 0 || isJson(text)) {\n\n try {\n response.body = JSON.parse(text);\n } catch (e) {\n response.body = null;\n }\n\n } else {\n response.body = text;\n }\n\n return response;\n\n }) : response;\n\n };\n}\n\nfunction isJson(str) {\n\n var start = str.match(/^\\s*(\\[|\\{)/);\n var end = {'[': /]\\s*$/, '{': /}\\s*$/};\n\n return start && end[start[1]].test(str);\n}\n\n/**\n * JSONP client (Browser).\n */\n\nfunction jsonpClient (request) {\n return new PromiseObj(function (resolve) {\n\n var name = request.jsonp || 'callback', callback = request.jsonpCallback || '_jsonp' + Math.random().toString(36).substr(2), body = null, handler, script;\n\n handler = function (ref) {\n var type = ref.type;\n\n\n var status = 0;\n\n if (type === 'load' && body !== null) {\n status = 200;\n } else if (type === 'error') {\n status = 500;\n }\n\n if (status && window[callback]) {\n delete window[callback];\n document.body.removeChild(script);\n }\n\n resolve(request.respondWith(body, {status: status}));\n };\n\n window[callback] = function (result) {\n body = JSON.stringify(result);\n };\n\n request.abort = function () {\n handler({type: 'abort'});\n };\n\n request.params[name] = callback;\n\n if (request.timeout) {\n setTimeout(request.abort, request.timeout);\n }\n\n script = document.createElement('script');\n script.src = request.getUrl();\n script.type = 'text/javascript';\n script.async = true;\n script.onload = handler;\n script.onerror = handler;\n\n document.body.appendChild(script);\n });\n}\n\n/**\n * JSONP Interceptor.\n */\n\nfunction jsonp (request) {\n\n if (request.method == 'JSONP') {\n request.client = jsonpClient;\n }\n\n}\n\n/**\n * Before Interceptor.\n */\n\nfunction before (request) {\n\n if (isFunction(request.before)) {\n request.before.call(this, request);\n }\n\n}\n\n/**\n * HTTP method override Interceptor.\n */\n\nfunction method (request) {\n\n if (request.emulateHTTP && /^(PUT|PATCH|DELETE)$/i.test(request.method)) {\n request.headers.set('X-HTTP-Method-Override', request.method);\n request.method = 'POST';\n }\n\n}\n\n/**\n * Header Interceptor.\n */\n\nfunction header (request) {\n\n var headers = assign({}, Http.headers.common,\n !request.crossOrigin ? Http.headers.custom : {},\n Http.headers[toLower(request.method)]\n );\n\n each(headers, function (value, name) {\n if (!request.headers.has(name)) {\n request.headers.set(name, value);\n }\n });\n\n}\n\n/**\n * XMLHttp client (Browser).\n */\n\nfunction xhrClient (request) {\n return new PromiseObj(function (resolve) {\n\n var xhr = new XMLHttpRequest(), handler = function (event) {\n\n var response = request.respondWith(\n 'response' in xhr ? xhr.response : xhr.responseText, {\n status: xhr.status === 1223 ? 204 : xhr.status, // IE9 status bug\n statusText: xhr.status === 1223 ? 'No Content' : trim(xhr.statusText)\n });\n\n each(trim(xhr.getAllResponseHeaders()).split('\\n'), function (row) {\n response.headers.append(row.slice(0, row.indexOf(':')), row.slice(row.indexOf(':') + 1));\n });\n\n resolve(response);\n };\n\n request.abort = function () { return xhr.abort(); };\n\n xhr.open(request.method, request.getUrl(), true);\n\n if (request.timeout) {\n xhr.timeout = request.timeout;\n }\n\n if (request.responseType && 'responseType' in xhr) {\n xhr.responseType = request.responseType;\n }\n\n if (request.withCredentials || request.credentials) {\n xhr.withCredentials = true;\n }\n\n if (!request.crossOrigin) {\n request.headers.set('X-Requested-With', 'XMLHttpRequest');\n }\n\n // deprecated use downloadProgress\n if (isFunction(request.progress) && request.method === 'GET') {\n xhr.addEventListener('progress', request.progress);\n }\n\n if (isFunction(request.downloadProgress)) {\n xhr.addEventListener('progress', request.downloadProgress);\n }\n\n // deprecated use uploadProgress\n if (isFunction(request.progress) && /^(POST|PUT)$/i.test(request.method)) {\n xhr.upload.addEventListener('progress', request.progress);\n }\n\n if (isFunction(request.uploadProgress) && xhr.upload) {\n xhr.upload.addEventListener('progress', request.uploadProgress);\n }\n\n request.headers.forEach(function (value, name) {\n xhr.setRequestHeader(name, value);\n });\n\n xhr.onload = handler;\n xhr.onabort = handler;\n xhr.onerror = handler;\n xhr.ontimeout = handler;\n xhr.send(request.getBody());\n });\n}\n\n/**\n * Http client (Node).\n */\n\nfunction nodeClient (request) {\n\n var client = require('got');\n\n return new PromiseObj(function (resolve) {\n\n var url = request.getUrl();\n var body = request.getBody();\n var method = request.method;\n var headers = {}, handler;\n\n request.headers.forEach(function (value, name) {\n headers[name] = value;\n });\n\n client(url, {body: body, method: method, headers: headers}).then(handler = function (resp) {\n\n var response = request.respondWith(resp.body, {\n status: resp.statusCode,\n statusText: trim(resp.statusMessage)\n });\n\n each(resp.headers, function (value, name) {\n response.headers.set(name, value);\n });\n\n resolve(response);\n\n }, function (error$$1) { return handler(error$$1.response); });\n });\n}\n\n/**\n * Base client.\n */\n\nfunction Client (context) {\n\n var reqHandlers = [sendRequest], resHandlers = [];\n\n if (!isObject(context)) {\n context = null;\n }\n\n function Client(request) {\n while (reqHandlers.length) {\n\n var handler = reqHandlers.pop();\n\n if (isFunction(handler)) {\n\n var response = (void 0), next = (void 0);\n\n response = handler.call(context, request, function (val) { return next = val; }) || next;\n\n if (isObject(response)) {\n return new PromiseObj(function (resolve, reject) {\n\n resHandlers.forEach(function (handler) {\n response = when(response, function (response) {\n return handler.call(context, response) || response;\n }, reject);\n });\n\n when(response, resolve, reject);\n\n }, context);\n }\n\n if (isFunction(response)) {\n resHandlers.unshift(response);\n }\n\n } else {\n warn((\"Invalid interceptor of type \" + (typeof handler) + \", must be a function\"));\n }\n }\n }\n\n Client.use = function (handler) {\n reqHandlers.push(handler);\n };\n\n return Client;\n}\n\nfunction sendRequest(request) {\n\n var client = request.client || (inBrowser ? xhrClient : nodeClient);\n\n return client(request);\n}\n\n/**\n * HTTP Headers.\n */\n\nvar Headers = function Headers(headers) {\n var this$1 = this;\n\n\n this.map = {};\n\n each(headers, function (value, name) { return this$1.append(name, value); });\n};\n\nHeaders.prototype.has = function has (name) {\n return getName(this.map, name) !== null;\n};\n\nHeaders.prototype.get = function get (name) {\n\n var list = this.map[getName(this.map, name)];\n\n return list ? list.join() : null;\n};\n\nHeaders.prototype.getAll = function getAll (name) {\n return this.map[getName(this.map, name)] || [];\n};\n\nHeaders.prototype.set = function set (name, value) {\n this.map[normalizeName(getName(this.map, name) || name)] = [trim(value)];\n};\n\nHeaders.prototype.append = function append (name, value) {\n\n var list = this.map[getName(this.map, name)];\n\n if (list) {\n list.push(trim(value));\n } else {\n this.set(name, value);\n }\n};\n\nHeaders.prototype.delete = function delete$1 (name) {\n delete this.map[getName(this.map, name)];\n};\n\nHeaders.prototype.deleteAll = function deleteAll () {\n this.map = {};\n};\n\nHeaders.prototype.forEach = function forEach (callback, thisArg) {\n var this$1 = this;\n\n each(this.map, function (list, name) {\n each(list, function (value) { return callback.call(thisArg, value, name, this$1); });\n });\n};\n\nfunction getName(map, name) {\n return Object.keys(map).reduce(function (prev, curr) {\n return toLower(name) === toLower(curr) ? curr : prev;\n }, null);\n}\n\nfunction normalizeName(name) {\n\n if (/[^a-z0-9\\-#$%&'*+.^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name');\n }\n\n return trim(name);\n}\n\n/**\n * HTTP Response.\n */\n\nvar Response = function Response(body, ref) {\n var url = ref.url;\n var headers = ref.headers;\n var status = ref.status;\n var statusText = ref.statusText;\n\n\n this.url = url;\n this.ok = status >= 200 && status < 300;\n this.status = status || 0;\n this.statusText = statusText || '';\n this.headers = new Headers(headers);\n this.body = body;\n\n if (isString(body)) {\n\n this.bodyText = body;\n\n } else if (isBlob(body)) {\n\n this.bodyBlob = body;\n\n if (isBlobText(body)) {\n this.bodyText = blobText(body);\n }\n }\n};\n\nResponse.prototype.blob = function blob () {\n return when(this.bodyBlob);\n};\n\nResponse.prototype.text = function text () {\n return when(this.bodyText);\n};\n\nResponse.prototype.json = function json () {\n return when(this.text(), function (text) { return JSON.parse(text); });\n};\n\nObject.defineProperty(Response.prototype, 'data', {\n\n get: function get() {\n return this.body;\n },\n\n set: function set(body) {\n this.body = body;\n }\n\n});\n\nfunction blobText(body) {\n return new PromiseObj(function (resolve) {\n\n var reader = new FileReader();\n\n reader.readAsText(body);\n reader.onload = function () {\n resolve(reader.result);\n };\n\n });\n}\n\nfunction isBlobText(body) {\n return body.type.indexOf('text') === 0 || body.type.indexOf('json') !== -1;\n}\n\n/**\n * HTTP Request.\n */\n\nvar Request = function Request(options$$1) {\n\n this.body = null;\n this.params = {};\n\n assign(this, options$$1, {\n method: toUpper(options$$1.method || 'GET')\n });\n\n if (!(this.headers instanceof Headers)) {\n this.headers = new Headers(this.headers);\n }\n};\n\nRequest.prototype.getUrl = function getUrl () {\n return Url(this);\n};\n\nRequest.prototype.getBody = function getBody () {\n return this.body;\n};\n\nRequest.prototype.respondWith = function respondWith (body, options$$1) {\n return new Response(body, assign(options$$1 || {}, {url: this.getUrl()}));\n};\n\n/**\n * Service for sending network requests.\n */\n\nvar COMMON_HEADERS = {'Accept': 'application/json, text/plain, */*'};\nvar JSON_CONTENT_TYPE = {'Content-Type': 'application/json;charset=utf-8'};\n\nfunction Http(options$$1) {\n\n var self = this || {}, client = Client(self.$vm);\n\n defaults(options$$1 || {}, self.$options, Http.options);\n\n Http.interceptors.forEach(function (handler) {\n\n if (isString(handler)) {\n handler = Http.interceptor[handler];\n }\n\n if (isFunction(handler)) {\n client.use(handler);\n }\n\n });\n\n return client(new Request(options$$1)).then(function (response) {\n\n return response.ok ? response : PromiseObj.reject(response);\n\n }, function (response) {\n\n if (response instanceof Error) {\n error(response);\n }\n\n return PromiseObj.reject(response);\n });\n}\n\nHttp.options = {};\n\nHttp.headers = {\n put: JSON_CONTENT_TYPE,\n post: JSON_CONTENT_TYPE,\n patch: JSON_CONTENT_TYPE,\n delete: JSON_CONTENT_TYPE,\n common: COMMON_HEADERS,\n custom: {}\n};\n\nHttp.interceptor = {before: before, method: method, jsonp: jsonp, json: json, form: form, header: header, cors: cors};\nHttp.interceptors = ['before', 'method', 'jsonp', 'json', 'form', 'header', 'cors'];\n\n['get', 'delete', 'head', 'jsonp'].forEach(function (method$$1) {\n\n Http[method$$1] = function (url, options$$1) {\n return this(assign(options$$1 || {}, {url: url, method: method$$1}));\n };\n\n});\n\n['post', 'put', 'patch'].forEach(function (method$$1) {\n\n Http[method$$1] = function (url, body, options$$1) {\n return this(assign(options$$1 || {}, {url: url, method: method$$1, body: body}));\n };\n\n});\n\n/**\n * Service for interacting with RESTful services.\n */\n\nfunction Resource(url, params, actions, options$$1) {\n\n var self = this || {}, resource = {};\n\n actions = assign({},\n Resource.actions,\n actions\n );\n\n each(actions, function (action, name) {\n\n action = merge({url: url, params: assign({}, params)}, options$$1, action);\n\n resource[name] = function () {\n return (self.$http || Http)(opts(action, arguments));\n };\n });\n\n return resource;\n}\n\nfunction opts(action, args) {\n\n var options$$1 = assign({}, action), params = {}, body;\n\n switch (args.length) {\n\n case 2:\n\n params = args[0];\n body = args[1];\n\n break;\n\n case 1:\n\n if (/^(POST|PUT|PATCH)$/i.test(options$$1.method)) {\n body = args[0];\n } else {\n params = args[0];\n }\n\n break;\n\n case 0:\n\n break;\n\n default:\n\n throw 'Expected up to 2 arguments [params, body], got ' + args.length + ' arguments';\n }\n\n options$$1.body = body;\n options$$1.params = assign({}, options$$1.params, params);\n\n return options$$1;\n}\n\nResource.actions = {\n\n get: {method: 'GET'},\n save: {method: 'POST'},\n query: {method: 'GET'},\n update: {method: 'PUT'},\n remove: {method: 'DELETE'},\n delete: {method: 'DELETE'}\n\n};\n\n/**\n * Install plugin.\n */\n\nfunction plugin(Vue) {\n\n if (plugin.installed) {\n return;\n }\n\n Util(Vue);\n\n Vue.url = Url;\n Vue.http = Http;\n Vue.resource = Resource;\n Vue.Promise = PromiseObj;\n\n Object.defineProperties(Vue.prototype, {\n\n $url: {\n get: function get() {\n return options(Vue.url, this, this.$options.url);\n }\n },\n\n $http: {\n get: function get() {\n return options(Vue.http, this, this.$options.http);\n }\n },\n\n $resource: {\n get: function get() {\n return Vue.resource.bind(this);\n }\n },\n\n $promise: {\n get: function get() {\n var this$1 = this;\n\n return function (executor) { return new Vue.Promise(executor, this$1); };\n }\n }\n\n });\n}\n\nif (typeof window !== 'undefined' && window.Vue) {\n window.Vue.use(plugin);\n}\n\nexport default plugin;\nexport { Url, Http, Resource };\n","/*!\n * vue-router v3.1.3\n * (c) 2019 Evan You\n * @license MIT\n */\n/* */\n\nfunction assert (condition, message) {\n if (!condition) {\n throw new Error((\"[vue-router] \" + message))\n }\n}\n\nfunction warn (condition, message) {\n if (process.env.NODE_ENV !== 'production' && !condition) {\n typeof console !== 'undefined' && console.warn((\"[vue-router] \" + message));\n }\n}\n\nfunction isError (err) {\n return Object.prototype.toString.call(err).indexOf('Error') > -1\n}\n\nfunction isExtendedError (constructor, err) {\n return (\n err instanceof constructor ||\n // _name is to support IE9 too\n (err && (err.name === constructor.name || err._name === constructor._name))\n )\n}\n\nfunction extend (a, b) {\n for (var key in b) {\n a[key] = b[key];\n }\n return a\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) {\n if (vnodeData.routerView) {\n depth++;\n }\n if (vnodeData.keepAlive && parent._inactive) {\n inactive = true;\n }\n }\n parent = parent.$parent;\n }\n data.routerViewDepth = depth;\n\n // render previous view if the tree is inactive and kept-alive\n if (inactive) {\n return h(cache[name], data, children)\n }\n\n var matched = route.matched[depth];\n // render empty node if no matched route\n if (!matched) {\n cache[name] = null;\n return h()\n }\n\n var component = cache[name] = matched.components[name];\n\n // attach instance registration hook\n // this will be called in the instance's injected lifecycle hooks\n data.registerRouteInstance = function (vm, val) {\n // val could be undefined for unregistration\n var current = matched.instances[name];\n if (\n (val && current !== vm) ||\n (!val && current === vm)\n ) {\n matched.instances[name] = val;\n }\n }\n\n // also register instance in prepatch hook\n // in case the same component instance is reused across different routes\n ;(data.hook || (data.hook = {})).prepatch = function (_, vnode) {\n matched.instances[name] = vnode.componentInstance;\n };\n\n // 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\n // resolve props\n var propsToPass = data.props = resolveProps(route, matched.props && matched.props[name]);\n if (propsToPass) {\n // clone to prevent mutation\n propsToPass = data.props = extend({}, propsToPass);\n // pass non-declared props as attrs\n var attrs = data.attrs = data.attrs || {};\n for (var key in propsToPass) {\n if (!component.props || !(key in component.props)) {\n attrs[key] = propsToPass[key];\n delete propsToPass[key];\n }\n }\n }\n\n return h(component, data, children)\n }\n};\n\nfunction resolveProps (route, config) {\n switch (typeof config) {\n case 'undefined':\n return\n case 'object':\n return config\n case 'function':\n return config(route)\n case 'boolean':\n return config ? route.params : undefined\n default:\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false,\n \"props in \\\"\" + (route.path) + \"\\\" is a \" + (typeof config) + \", \" +\n \"expecting an object, function or boolean.\"\n );\n }\n }\n}\n\n/* */\n\nvar encodeReserveRE = /[!'()*]/g;\nvar encodeReserveReplacer = function (c) { return '%' + c.charCodeAt(0).toString(16); };\nvar commaRE = /%2C/g;\n\n// fixed encodeURIComponent which is more conformant to RFC3986:\n// - escapes [!'()*]\n// - preserve commas\nvar encode = function (str) { return encodeURIComponent(str)\n .replace(encodeReserveRE, encodeReserveReplacer)\n .replace(commaRE, ','); };\n\nvar decode = decodeURIComponent;\n\nfunction resolveQuery (\n query,\n extraQuery,\n _parseQuery\n) {\n if ( extraQuery === void 0 ) extraQuery = {};\n\n var parse = _parseQuery || parseQuery;\n var parsedQuery;\n try {\n parsedQuery = parse(query || '');\n } catch (e) {\n process.env.NODE_ENV !== 'production' && warn(false, e.message);\n parsedQuery = {};\n }\n for (var key in extraQuery) {\n parsedQuery[key] = extraQuery[key];\n }\n return parsedQuery\n}\n\nfunction parseQuery (query) {\n var res = {};\n\n query = query.trim().replace(/^(\\?|#|&)/, '');\n\n if (!query) {\n return res\n }\n\n query.split('&').forEach(function (param) {\n var parts = param.replace(/\\+/g, ' ').split('=');\n var key = decode(parts.shift());\n var val = parts.length > 0\n ? decode(parts.join('='))\n : null;\n\n if (res[key] === undefined) {\n res[key] = val;\n } else if (Array.isArray(res[key])) {\n res[key].push(val);\n } else {\n res[key] = [res[key], val];\n }\n });\n\n return res\n}\n\nfunction stringifyQuery (obj) {\n var res = obj ? Object.keys(obj).map(function (key) {\n var val = obj[key];\n\n if (val === undefined) {\n return ''\n }\n\n if (val === null) {\n return encode(key)\n }\n\n if (Array.isArray(val)) {\n var result = [];\n val.forEach(function (val2) {\n if (val2 === undefined) {\n return\n }\n if (val2 === null) {\n result.push(encode(key));\n } else {\n result.push(encode(key) + '=' + encode(val2));\n }\n });\n return result.join('&')\n }\n\n return encode(key) + '=' + encode(val)\n }).filter(function (x) { return x.length > 0; }).join('&') : null;\n return res ? (\"?\" + res) : ''\n}\n\n/* */\n\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) {\n if (b === START) {\n return a === b\n } else if (!b) {\n return false\n } else if (a.path && b.path) {\n return (\n a.path.replace(trailingSlashRE, '') === b.path.replace(trailingSlashRE, '') &&\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query)\n )\n } else if (a.name && b.name) {\n return (\n a.name === b.name &&\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query) &&\n isObjectEqual(a.params, b.params)\n )\n } else {\n return false\n }\n}\n\nfunction isObjectEqual (a, b) {\n if ( a === void 0 ) a = {};\n if ( b === void 0 ) b = {};\n\n // handle null value #1566\n if (!a || !b) { return a === b }\n var aKeys = Object.keys(a);\n var bKeys = Object.keys(b);\n if (aKeys.length !== bKeys.length) {\n return false\n }\n return aKeys.every(function (key) {\n var aVal = a[key];\n var bVal = b[key];\n // check nested equality\n if (typeof aVal === 'object' && typeof bVal === 'object') {\n return isObjectEqual(aVal, bVal)\n }\n return String(aVal) === String(bVal)\n })\n}\n\nfunction isIncludedRoute (current, target) {\n return (\n current.path.replace(trailingSlashRE, '/').indexOf(\n target.path.replace(trailingSlashRE, '/')\n ) === 0 &&\n (!target.hash || current.hash === target.hash) &&\n queryIncludes(current.query, target.query)\n )\n}\n\nfunction queryIncludes (current, target) {\n for (var key in target) {\n if (!(key in current)) {\n return false\n }\n }\n return true\n}\n\n/* */\n\nfunction resolvePath (\n relative,\n base,\n append\n) {\n var firstChar = relative.charAt(0);\n if (firstChar === '/') {\n return relative\n }\n\n if (firstChar === '?' || firstChar === '#') {\n return base + relative\n }\n\n var stack = base.split('/');\n\n // remove trailing segment if:\n // - not appending\n // - appending to trailing slash (last segment is empty)\n if (!append || !stack[stack.length - 1]) {\n stack.pop();\n }\n\n // resolve relative path\n var segments = relative.replace(/^\\//, '').split('/');\n for (var i = 0; i < segments.length; i++) {\n var segment = segments[i];\n if (segment === '..') {\n stack.pop();\n } else if (segment !== '.') {\n stack.push(segment);\n }\n }\n\n // ensure leading slash\n if (stack[0] !== '') {\n stack.unshift('');\n }\n\n return stack.join('/')\n}\n\nfunction parsePath (path) {\n var hash = '';\n var query = '';\n\n var hashIndex = path.indexOf('#');\n if (hashIndex >= 0) {\n hash = path.slice(hashIndex);\n path = path.slice(0, hashIndex);\n }\n\n var queryIndex = path.indexOf('?');\n if (queryIndex >= 0) {\n query = path.slice(queryIndex + 1);\n path = path.slice(0, queryIndex);\n }\n\n return {\n path: path,\n query: query,\n hash: hash\n }\n}\n\nfunction cleanPath (path) {\n return path.replace(/\\/\\//g, '/')\n}\n\nvar isarray = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n\n/**\n * Expose `pathToRegexp`.\n */\nvar pathToRegexp_1 = pathToRegexp;\nvar parse_1 = parse;\nvar compile_1 = compile;\nvar tokensToFunction_1 = tokensToFunction;\nvar tokensToRegExp_1 = tokensToRegExp;\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g');\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = [];\n var key = 0;\n var index = 0;\n var path = '';\n var defaultDelimiter = options && options.delimiter || '/';\n var res;\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0];\n var escaped = res[1];\n var offset = res.index;\n path += str.slice(index, offset);\n index = offset + m.length;\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1];\n continue\n }\n\n var next = str[index];\n var prefix = res[2];\n var name = res[3];\n var capture = res[4];\n var group = res[5];\n var modifier = res[6];\n var asterisk = res[7];\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path);\n path = '';\n }\n\n var partial = prefix != null && next != null && next !== prefix;\n var repeat = modifier === '+' || modifier === '*';\n var optional = modifier === '?' || modifier === '*';\n var delimiter = res[2] || defaultDelimiter;\n var pattern = capture || group;\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n });\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index);\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path);\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options))\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length);\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$');\n }\n }\n\n return function (obj, opts) {\n var path = '';\n var data = obj || {};\n var options = opts || {};\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent;\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n path += token;\n\n continue\n }\n\n var value = data[token.name];\n var segment;\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix;\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j]);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment;\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment;\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys;\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g);\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n });\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = [];\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source);\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options));\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n var strict = options.strict;\n var end = options.end !== false;\n var route = '';\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n route += escapeString(token);\n } else {\n var prefix = escapeString(token.prefix);\n var capture = '(?:' + token.pattern + ')';\n\n keys.push(token);\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*';\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?';\n } else {\n capture = prefix + '(' + capture + ')?';\n }\n } else {\n capture = prefix + '(' + capture + ')';\n }\n\n route += capture;\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/');\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter;\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?';\n }\n\n if (end) {\n route += '$';\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)';\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\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 if (params.pathMatch) { params[0] = params.pathMatch; }\n\n return filler(params, { pretty: true })\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, (\"missing param for \" + routeMsg + \": \" + (e.message)));\n }\n return ''\n } 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 return extend({}, raw)\n }\n\n // relative params\n if (!next.path && next.params && current) {\n next = extend({}, next);\n next._normalized = true;\n var params = extend(extend({}, current.params), next.params);\n if (current.name) {\n next.name = current.name;\n next.params = params;\n } else if (current.matched.length) {\n var rawPath = current.matched[current.matched.length - 1].path;\n next.path = fillParams(rawPath, params, (\"path \" + (current.path)));\n } else if (process.env.NODE_ENV !== 'production') {\n warn(false, \"relative params navigation requires a current route.\");\n }\n return next\n }\n\n var parsedPath = parsePath(next.path || '');\n var basePath = (current && current.path) || '/';\n var path = parsedPath.path\n ? resolvePath(parsedPath.path, basePath, append || next.append)\n : basePath;\n\n var query = resolveQuery(\n parsedPath.query,\n next.query,\n router && router.options.parseQuery\n );\n\n var hash = next.hash || parsedPath.hash;\n if (hash && hash.charAt(0) !== '#') {\n hash = \"#\" + hash;\n }\n\n return {\n _normalized: true,\n path: path,\n query: query,\n hash: hash\n }\n}\n\n/* */\n\n// work around weird flow bug\nvar toTypes = [String, Object];\nvar eventTypes = [String, Array];\n\nvar noop = function () {};\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 exact: Boolean,\n append: Boolean,\n replace: Boolean,\n activeClass: String,\n exactActiveClass: String,\n event: {\n type: eventTypes,\n default: 'click'\n }\n },\n render: function render (h) {\n var this$1 = this;\n\n var router = this.$router;\n var current = this.$route;\n var ref = router.resolve(\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);\n classes[activeClass] = this.exact\n ? classes[exactActiveClass]\n : isIncludedRoute(current, compareTarget);\n\n var handler = function (e) {\n if (guardEvent(e)) {\n if (this$1.replace) {\n router.replace(location, 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 (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 (\"RouterLink with to=\\\"\" + (this.props.to) + \"\\\" is trying to use a scoped slot but it didn't provide exactly one child.\")\n );\n }\n return scopedSlot.length === 0 ? h() : h('span', {}, scopedSlot)\n }\n }\n\n if (this.tag === 'a') {\n data.on = on;\n data.attrs = { href: href };\n } else {\n // find the first child and apply listener and href\n var a = findAnchor(this.$slots.default);\n if (a) {\n // in case the is a static node\n a.isStatic = false;\n var 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 } else {\n // doesn't have child, apply listener to self\n data.on = on;\n }\n }\n\n return h(this.tag, data, this.$slots.default)\n }\n};\n\nfunction guardEvent (e) {\n // don't redirect with control keys\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) { return }\n // don't redirect when preventDefault called\n if (e.defaultPrevented) { return }\n // don't redirect on right click\n if (e.button !== undefined && e.button !== 0) { return }\n // don't redirect if `target=\"_blank\"`\n if (e.currentTarget && e.currentTarget.getAttribute) {\n var target = e.currentTarget.getAttribute('target');\n if (/\\b_blank\\b/i.test(target)) { return }\n }\n // this may be a Weex event which doesn't have this method\n if (e.preventDefault) {\n e.preventDefault();\n }\n return true\n}\n\nfunction findAnchor (children) {\n if (children) {\n var child;\n for (var i = 0; i < children.length; i++) {\n child = children[i];\n if (child.tag === 'a') {\n return child\n }\n if (child.children && (child = findAnchor(child.children))) {\n return child\n }\n }\n }\n}\n\nvar _Vue;\n\nfunction install (Vue) {\n if (install.installed && _Vue === Vue) { return }\n install.installed = true;\n\n _Vue = Vue;\n\n var isDef = function (v) { return v !== undefined; };\n\n var registerInstance = function (vm, callVal) {\n var i = vm.$options._parentVnode;\n if (isDef(i) && isDef(i = i.data) && isDef(i = i.registerRouteInstance)) {\n i(vm, callVal);\n }\n };\n\n Vue.mixin({\n beforeCreate: function beforeCreate () {\n if (isDef(this.$options.router)) {\n this._routerRoot = this;\n this._router = this.$options.router;\n this._router.init(this);\n Vue.util.defineReactive(this, '_route', this._router.history.current);\n } else {\n this._routerRoot = (this.$parent && this.$parent._routerRoot) || this;\n }\n registerInstance(this, this);\n },\n destroyed: function destroyed () {\n registerInstance(this);\n }\n });\n\n Object.defineProperty(Vue.prototype, '$router', {\n get: function get () { return this._routerRoot._router }\n });\n\n Object.defineProperty(Vue.prototype, '$route', {\n get: function get () { return this._routerRoot._route }\n });\n\n Vue.component('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) {\n // the path list is used to control path matching priority\n var pathList = oldPathList || [];\n // $flow-disable-line\n var pathMap = oldPathMap || Object.create(null);\n // $flow-disable-line\n var nameMap = oldNameMap || Object.create(null);\n\n routes.forEach(function (route) {\n addRouteRecord(pathList, pathMap, nameMap, route);\n });\n\n // ensure wildcard routes are always at the end\n for (var i = 0, l = pathList.length; i < l; i++) {\n if (pathList[i] === '*') {\n pathList.push(pathList.splice(i, 1)[0]);\n l--;\n i--;\n }\n }\n\n 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\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 instances: {},\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 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 addRoutes: addRoutes\n }\n}\n\nfunction matchRoute (\n regex,\n path,\n params\n) {\n var m = path.match(regex);\n\n if (!m) {\n return false\n } else if (!params) {\n return true\n }\n\n for (var i = 1, len = m.length; i < len; ++i) {\n var key = regex.keys[i - 1];\n var val = typeof m[i] === 'string' ? decodeURIComponent(m[i]) : m[i];\n if (key) {\n // Fix #1994: using * with props: true generates a param named 0\n params[key.name || 'pathMatch'] = val;\n }\n }\n\n return true\n}\n\nfunction resolveRecordPath (path, record) {\n return resolvePath(path, record.parent ? record.parent.path : '/', true)\n}\n\n/* */\n\n// 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 // 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 window.history.replaceState({ key: getStateKey() }, '', absolutePath);\n window.addEventListener('popstate', function (e) {\n saveScrollPosition();\n if (e.state && e.state.key) {\n setStateKey(e.state.key);\n }\n });\n}\n\nfunction handleScroll (\n router,\n to,\n from,\n isPop\n) {\n if (!router.app) {\n return\n }\n\n var behavior = router.options.scrollBehavior;\n if (!behavior) {\n return\n }\n\n if (process.env.NODE_ENV !== 'production') {\n assert(typeof behavior === 'function', \"scrollBehavior must be a function\");\n }\n\n // wait until re-render finishes before scrolling\n router.app.$nextTick(function () {\n var position = getScrollPosition();\n var shouldScroll = behavior.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 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 window.scrollTo(position.x, position.y);\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 && 'pushState' in window.history\n })();\n\nfunction pushState (url, replace) {\n saveScrollPosition();\n // try...catch the pushState call to get around Safari\n // DOM Exception 18 where it limits to 100 pushState calls\n var history = window.history;\n try {\n if (replace) {\n history.replaceState({ key: getStateKey() }, '', 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/* */\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\nvar NavigationDuplicated = /*@__PURE__*/(function (Error) {\n function NavigationDuplicated (normalizedLocation) {\n Error.call(this);\n this.name = this._name = 'NavigationDuplicated';\n // passing the message to super() doesn't seem to work in the transpiled version\n this.message = \"Navigating to current location (\\\"\" + (normalizedLocation.fullPath) + \"\\\") is not allowed\";\n // add a stack property so services like Sentry can correctly display it\n Object.defineProperty(this, 'stack', {\n value: new Error().stack,\n writable: true,\n configurable: true\n });\n // we could also have used\n // Error.captureStackTrace(this, this.constructor)\n // but it only exists on node and chrome\n }\n\n if ( Error ) NavigationDuplicated.__proto__ = Error;\n NavigationDuplicated.prototype = Object.create( Error && Error.prototype );\n NavigationDuplicated.prototype.constructor = NavigationDuplicated;\n\n return NavigationDuplicated;\n}(Error));\n\n// support IE9\nNavigationDuplicated._name = 'NavigationDuplicated';\n\n/* */\n\nvar History = function History (router, base) {\n this.router = router;\n this.base = normalizeBase(base);\n // start with a route object that stands for \"nowhere\"\n this.current = START;\n this.pending = null;\n this.ready = false;\n this.readyCbs = [];\n this.readyErrorCbs = [];\n this.errorCbs = [];\n};\n\nHistory.prototype.listen = function listen (cb) {\n this.cb = cb;\n};\n\nHistory.prototype.onReady = function onReady (cb, errorCb) {\n if (this.ready) {\n cb();\n } else {\n this.readyCbs.push(cb);\n if (errorCb) {\n this.readyErrorCbs.push(errorCb);\n }\n }\n};\n\nHistory.prototype.onError = function onError (errorCb) {\n this.errorCbs.push(errorCb);\n};\n\nHistory.prototype.transitionTo = function transitionTo (\n location,\n onComplete,\n onAbort\n) {\n var this$1 = this;\n\n var route = this.router.match(location, this.current);\n this.confirmTransition(\n route,\n function () {\n this$1.updateRoute(route);\n onComplete && onComplete(route);\n this$1.ensureURL();\n\n // fire ready cbs once\n if (!this$1.ready) {\n this$1.ready = true;\n this$1.readyCbs.forEach(function (cb) {\n cb(route);\n });\n }\n },\n function (err) {\n if (onAbort) {\n onAbort(err);\n }\n if (err && !this$1.ready) {\n this$1.ready = true;\n this$1.readyErrorCbs.forEach(function (cb) {\n cb(err);\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 var abort = function (err) {\n // after merging https://github.com/vuejs/vue-router/pull/2771 we\n // When the user navigates through history through back/forward buttons\n // we do not want to throw the error. We only throw it if directly calling\n // push/replace. That's why it's not included in isError\n if (!isExtendedError(NavigationDuplicated, 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 if (\n isSameRoute(route, current) &&\n // in the case the route map has been dynamically appended to\n route.matched.length === current.matched.length\n ) {\n this.ensureURL();\n return abort(new NavigationDuplicated(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 this.pending = route;\n var iterator = function (hook, next) {\n if (this$1.pending !== route) {\n return abort()\n }\n try {\n hook(route, current, function (to) {\n if (to === false || isError(to)) {\n // next(false) -> abort navigation, ensure current URL\n this$1.ensureURL(true);\n abort(to);\n } else if (\n typeof to === 'string' ||\n (typeof to === 'object' &&\n (typeof to.path === 'string' || typeof to.name === 'string'))\n ) {\n // next('/') or next({ path: '/' }) -> redirect\n abort();\n if (typeof to === 'object' && to.replace) {\n this$1.replace(to);\n } else {\n this$1.push(to);\n }\n } else {\n // confirm transition and pass on the value\n next(to);\n }\n });\n } catch (e) {\n abort(e);\n }\n };\n\n runQueue(queue, iterator, function () {\n var postEnterCbs = [];\n var isValid = function () { return this$1.current === route; };\n // wait until async components are resolved before\n // extracting in-component enter guards\n var enterGuards = extractEnterGuards(activated, postEnterCbs, isValid);\n var queue = enterGuards.concat(this$1.router.resolveHooks);\n runQueue(queue, iterator, function () {\n if (this$1.pending !== route) {\n return abort()\n }\n this$1.pending = null;\n onComplete(route);\n if (this$1.router.app) {\n this$1.router.app.$nextTick(function () {\n postEnterCbs.forEach(function (cb) {\n cb();\n });\n });\n }\n });\n });\n};\n\nHistory.prototype.updateRoute = function updateRoute (route) {\n var prev = this.current;\n this.current = route;\n this.cb && this.cb(route);\n this.router.afterHooks.forEach(function (hook) {\n hook && hook(route, prev);\n });\n};\n\nfunction normalizeBase (base) {\n if (!base) {\n if (inBrowser) {\n // respect tag\n var baseEl = document.querySelector('base');\n base = (baseEl && baseEl.getAttribute('href')) || '/';\n // strip full URL origin\n base = base.replace(/^https?:\\/\\/[^\\/]+/, '');\n } else {\n base = '/';\n }\n }\n // make sure there's the starting slash\n if (base.charAt(0) !== '/') {\n base = '/' + base;\n }\n // remove trailing slash\n return base.replace(/\\/$/, '')\n}\n\nfunction resolveQueue (\n current,\n next\n) {\n var i;\n var max = Math.max(current.length, next.length);\n for (i = 0; i < max; i++) {\n if (current[i] !== next[i]) {\n break\n }\n }\n return {\n updated: next.slice(0, i),\n activated: next.slice(i),\n deactivated: current.slice(i)\n }\n}\n\nfunction extractGuards (\n records,\n name,\n bind,\n reverse\n) {\n var guards = flatMapComponents(records, function (def, instance, match, key) {\n var guard = extractGuard(def, name);\n if (guard) {\n return Array.isArray(guard)\n ? guard.map(function (guard) { return bind(guard, instance, match, key); })\n : bind(guard, instance, match, key)\n }\n });\n return flatten(reverse ? guards.reverse() : guards)\n}\n\nfunction extractGuard (\n def,\n key\n) {\n if (typeof def !== 'function') {\n // extend now so that global mixins are applied.\n def = _Vue.extend(def);\n }\n return def.options[key]\n}\n\nfunction extractLeaveGuards (deactivated) {\n return extractGuards(deactivated, 'beforeRouteLeave', bindGuard, true)\n}\n\nfunction extractUpdateHooks (updated) {\n return extractGuards(updated, 'beforeRouteUpdate', bindGuard)\n}\n\nfunction bindGuard (guard, instance) {\n if (instance) {\n return function boundRouteGuard () {\n return guard.apply(instance, arguments)\n }\n }\n}\n\nfunction extractEnterGuards (\n activated,\n cbs,\n isValid\n) {\n return extractGuards(\n activated,\n 'beforeRouteEnter',\n function (guard, _, match, key) {\n return bindEnterGuard(guard, match, key, cbs, isValid)\n }\n )\n}\n\nfunction bindEnterGuard (\n guard,\n match,\n key,\n cbs,\n isValid\n) {\n return function routeEnterGuard (to, from, next) {\n return guard(to, from, function (cb) {\n if (typeof cb === 'function') {\n cbs.push(function () {\n // #750\n // if a router-view is wrapped with an out-in transition,\n // the instance may not have been registered at this time.\n // we will need to poll for registration until current route\n // is no longer valid.\n poll(cb, match.instances, key, isValid);\n });\n }\n next(cb);\n })\n }\n}\n\nfunction poll (\n cb, // somehow flow cannot infer this is a function\n instances,\n key,\n isValid\n) {\n if (\n instances[key] &&\n !instances[key]._isBeingDestroyed // do not reuse being destroyed instance\n ) {\n cb(instances[key]);\n } else if (isValid()) {\n setTimeout(function () {\n poll(cb, instances, key, isValid);\n }, 16);\n }\n}\n\n/* */\n\nvar HTML5History = /*@__PURE__*/(function (History) {\n function HTML5History (router, base) {\n var this$1 = this;\n\n History.call(this, router, base);\n\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n setupScroll();\n }\n\n var initLocation = getLocation(this.base);\n window.addEventListener('popstate', function (e) {\n var current = this$1.current;\n\n // Avoiding first `popstate` event dispatched in some browsers but first\n // history route not updated since async guard at the same time.\n var location = getLocation(this$1.base);\n if (this$1.current === START && location === initLocation) {\n return\n }\n\n this$1.transitionTo(location, function (route) {\n if (supportsScroll) {\n handleScroll(router, route, current, true);\n }\n });\n });\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.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 = decodeURI(window.location.pathname);\n if (base && path.indexOf(base) === 0) {\n path = path.slice(base.length);\n }\n return (path || '/') + window.location.search + window.location.hash\n}\n\n/* */\n\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 var router = this.router;\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n setupScroll();\n }\n\n window.addEventListener(\n supportsPushState ? 'popstate' : 'hashchange',\n function () {\n var current = this$1.current;\n if (!ensureSlash()) {\n return\n }\n this$1.transitionTo(getHash(), function (route) {\n if (supportsScroll) {\n handleScroll(this$1.router, route, current, true);\n }\n if (!supportsPushState) {\n replaceHash(route.fullPath);\n }\n });\n }\n );\n };\n\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 // decode the hash but not the search or hash\n // as search(query) is already decoded\n // https://github.com/vuejs/vue-router/issues/2708\n var searchIndex = href.indexOf('?');\n if (searchIndex < 0) {\n var hashIndex = href.indexOf('#');\n if (hashIndex > -1) {\n href = decodeURI(href.slice(0, hashIndex)) + href.slice(hashIndex);\n } else { href = decodeURI(href); }\n } else {\n if (searchIndex > -1) {\n href = decodeURI(href.slice(0, searchIndex)) + href.slice(searchIndex);\n }\n }\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 this$1.index = targetIndex;\n this$1.updateRoute(route);\n },\n function (err) {\n if (isExtendedError(NavigationDuplicated, err)) {\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\n\n\nvar VueRouter = function VueRouter (options) {\n if ( options === void 0 ) options = {};\n\n this.app = null;\n this.apps = [];\n this.options = options;\n this.beforeHooks = [];\n this.resolveHooks = [];\n this.afterHooks = [];\n this.matcher = createMatcher(options.routes || [], this);\n\n var mode = options.mode || 'hash';\n this.fallback = mode === 'history' && !supportsPushState && options.fallback !== false;\n if (this.fallback) {\n mode = 'hash';\n }\n if (!inBrowser) {\n mode = 'abstract';\n }\n this.mode = mode;\n\n switch (mode) {\n case 'history':\n this.history = new HTML5History(this, options.base);\n break\n case 'hash':\n this.history = new HashHistory(this, options.base, this.fallback);\n break\n case 'abstract':\n this.history = new AbstractHistory(this, options.base);\n break\n default:\n if (process.env.NODE_ENV !== 'production') {\n assert(false, (\"invalid mode: \" + mode));\n }\n }\n};\n\nvar prototypeAccessors = { currentRoute: { configurable: true } };\n\nVueRouter.prototype.match = function match (\n raw,\n current,\n redirectedFrom\n) {\n return this.matcher.match(raw, current, redirectedFrom)\n};\n\nprototypeAccessors.currentRoute.get = function () {\n return this.history && this.history.current\n};\n\nVueRouter.prototype.init = function init (app /* Vue component instance */) {\n var this$1 = this;\n\n process.env.NODE_ENV !== 'production' && assert(\n install.installed,\n \"not installed. Make sure to call `Vue.use(VueRouter)` \" +\n \"before creating root instance.\"\n );\n\n this.apps.push(app);\n\n // 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\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) {\n history.transitionTo(history.getCurrentLocation());\n } else if (history instanceof HashHistory) {\n var setupHashListener = function () {\n history.setupListeners();\n };\n history.transitionTo(\n history.getCurrentLocation(),\n setupHashListener,\n setupHashListener\n );\n }\n\n history.listen(function (route) {\n this$1.apps.forEach(function (app) {\n app._route = route;\n });\n });\n};\n\nVueRouter.prototype.beforeEach = function beforeEach (fn) {\n return registerHook(this.beforeHooks, fn)\n};\n\nVueRouter.prototype.beforeResolve = function beforeResolve (fn) {\n return registerHook(this.resolveHooks, fn)\n};\n\nVueRouter.prototype.afterEach = function afterEach (fn) {\n return registerHook(this.afterHooks, fn)\n};\n\nVueRouter.prototype.onReady = function onReady (cb, errorCb) {\n this.history.onReady(cb, errorCb);\n};\n\nVueRouter.prototype.onError = function onError (errorCb) {\n this.history.onError(errorCb);\n};\n\nVueRouter.prototype.push = function push (location, onComplete, onAbort) {\n 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([], route.matched.map(function (m) {\n return Object.keys(m.components).map(function (key) {\n return m.components[key]\n })\n }))\n};\n\nVueRouter.prototype.resolve = function resolve (\n to,\n current,\n append\n) {\n current = current || this.history.current;\n var location = normalizeLocation(\n to,\n current,\n append,\n this\n );\n var route = this.match(location, current);\n var fullPath = route.redirectedFrom || route.fullPath;\n var base = this.history.base;\n var href = createHref(base, fullPath, this.mode);\n return {\n location: location,\n route: route,\n href: href,\n // for backwards compat\n normalizedTo: location,\n resolved: route\n }\n};\n\nVueRouter.prototype.addRoutes = function addRoutes (routes) {\n this.matcher.addRoutes(routes);\n if (this.history.current !== START) {\n this.history.transitionTo(this.history.getCurrentLocation());\n }\n};\n\nObject.defineProperties( VueRouter.prototype, prototypeAccessors );\n\nfunction registerHook (list, fn) {\n list.push(fn);\n return function () {\n var i = list.indexOf(fn);\n if (i > -1) { list.splice(i, 1); }\n }\n}\n\nfunction createHref (base, fullPath, mode) {\n var path = mode === 'hash' ? '#' + fullPath : fullPath;\n return base ? cleanPath(base + '/' + path) : path\n}\n\nVueRouter.install = install;\nVueRouter.version = '3.1.3';\n\nif (inBrowser && window.Vue) {\n window.Vue.use(VueRouter);\n}\n\nexport default VueRouter;\n","// Register a service worker to serve assets from local cache.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\n// cached resources are updated in the background.\n\nvar isLocalhost = function () { return Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n); }\n\nexport function register (swUrl, hooks) {\n if ( hooks === void 0 ) hooks = {};\n\n var registrationOptions = hooks.registrationOptions; if ( registrationOptions === void 0 ) registrationOptions = {};\n delete hooks.registrationOptions\n\n var emit = function (hook) {\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n\n if (hooks && hooks[hook]) {\n hooks[hook].apply(hooks, args)\n }\n }\n\n if ('serviceWorker' in navigator) {\n window.addEventListener('load', function () {\n if (isLocalhost()) {\n // This is running on localhost. Lets check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, emit, registrationOptions)\n navigator.serviceWorker.ready.then(function (registration) {\n emit('ready', registration)\n })\n } else {\n // Is not local host. Just register service worker\n registerValidSW(swUrl, emit, registrationOptions)\n }\n })\n }\n}\n\nfunction registerValidSW (swUrl, emit, registrationOptions) {\n navigator.serviceWorker\n .register(swUrl, registrationOptions)\n .then(function (registration) {\n emit('registered', registration)\n if (registration.waiting) {\n emit('updated', registration)\n return\n }\n registration.onupdatefound = function () {\n emit('updatefound', registration)\n var installingWorker = registration.installing\n installingWorker.onstatechange = function () {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and\n // the fresh content will have been added to the cache.\n // It's the perfect time to display a \"New content is\n // available; please refresh.\" message in your web app.\n emit('updated', registration)\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n emit('cached', registration)\n }\n }\n }\n }\n })\n .catch(function (error) {\n emit('error', error)\n })\n}\n\nfunction checkValidServiceWorker (swUrl, emit, registrationOptions) {\n // Check if the service worker can be found.\n fetch(swUrl)\n .then(function (response) {\n // Ensure service worker exists, and that we really are getting a JS file.\n if (response.status === 404) {\n // No service worker found.\n emit('error', new Error((\"Service worker not found at \" + swUrl)))\n unregister()\n } else if (response.headers.get('content-type').indexOf('javascript') === -1) {\n emit('error', new Error(\n \"Expected \" + swUrl + \" to have javascript content-type, \" +\n \"but received \" + (response.headers.get('content-type'))))\n unregister()\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, emit, registrationOptions)\n }\n })\n .catch(function (error) {\n if (!navigator.onLine) {\n emit('offline')\n } else {\n emit('error', error)\n }\n })\n}\n\nexport function unregister () {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(function (registration) {\n registration.unregister()\n })\n }\n}\n"],"sourceRoot":""}