{"version":3,"sources":["webpack/bootstrap","node_modules/axios/lib/helpers/isAbsoluteURL.js","node_modules/store/src/store-engine.js","node_modules/axios/lib/helpers/combineURLs.js","node_modules/process/browser.js","node_modules/axios/lib/core/InterceptorManager.js","node_modules/axios/lib/core/Axios.js","node_modules/store/storages/sessionStorage.js","node_modules/axios/lib/helpers/spread.js","node_modules/store/storages/cookieStorage.js","node_modules/@babel/runtime/helpers/esm/classCallCheck.js","node_modules/@babel/runtime/helpers/esm/createClass.js","src/js/modules/quiz.js","src/js/modules/app-quiz.js","node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","node_modules/@babel/runtime/helpers/esm/get.js","node_modules/@babel/runtime/helpers/esm/superPropBase.js","node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","node_modules/@babel/runtime/helpers/esm/typeof.js","node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../lib/atob.js","../lib/base64_url_decode.js","../lib/index.js","src/js/modules/api.js","node_modules/@babel/runtime/helpers/esm/inherits.js","node_modules/@babel/runtime/helpers/esm/createSuper.js","src/js/modules/data-service.js","src/js/components/blog.js","src/js/master.js","node_modules/axios/lib/helpers/bind.js","node_modules/axios/lib/defaults.js","node_modules/axios/lib/core/createError.js","node_modules/axios/lib/cancel/isCancel.js","node_modules/store/src/util.js","node_modules/axios/lib/helpers/buildURL.js","node_modules/axios/lib/core/enhanceError.js","node_modules/axios/lib/helpers/isURLSameOrigin.js","node_modules/store/storages/memoryStorage.js","node_modules/store/storages/oldIE-userDataStorage.js","node_modules/axios/lib/core/settle.js","src/js/modules/register-service-worker.js","node_modules/axios/lib/core/mergeConfig.js","node_modules/axios/lib/core/dispatchRequest.js","node_modules/axios/lib/helpers/isAxiosError.js","node_modules/@crasman/branch-bar/main.js","node_modules/axios/lib/cancel/Cancel.js","node_modules/axios/lib/helpers/cookies.js","node_modules/axios/lib/core/buildFullPath.js","node_modules/store/storages/all.js","node_modules/store/plugins/lib/json2.js","node_modules/store/dist/store.legacy.js","node_modules/axios/lib/cancel/CancelToken.js","node_modules/regenerator-runtime/runtime.js","node_modules/mustache/mustache.js","node_modules/@babel/runtime/regenerator/index.js","node_modules/store/storages/localStorage.js","node_modules/axios/lib/adapters/xhr.js","node_modules/store/plugins/json2.js","node_modules/axios/index.js","node_modules/axios/lib/helpers/parseHeaders.js","node_modules/axios/lib/core/transformData.js","node_modules/axios/lib/utils.js","node_modules/axios/lib/helpers/normalizeHeaderName.js","node_modules/webpack/buildin/global.js","node_modules/store/storages/oldFF-globalStorage.js","node_modules/axios/lib/axios.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","url","test","util","require","slice","pluck","each","isList","isFunction","isObject","createStore","storeAPI","version","enabled","optionalDefaultValue","data","this","storage","read","_namespacePrefix","_deserialize","set","undefined","remove","write","_serialize","callback","self","val","namespacedKey","replace","_namespaceRegexp","clearAll","hasNamespace","namespace","apply","arguments","addPlugin","plugin","_addPlugin","plugins","storages","namespacePrefix","namespaceRegexp","RegExp","Error","store","_testStorage","testStr","ok","e","_assignPluginFnProp","pluginFnProp","propName","oldFn","args","super_fn","arg","newFnArgs","concat","obj","JSON","stringify","strVal","defaultVal","parse","_addStorage","seenPlugin","push","pluginProperties","addStorage","_console","console","fn","warn","log","_warn","raw","prop","baseURL","relativeURL","cachedSetTimeout","cachedClearTimeout","process","defaultSetTimout","defaultClearTimeout","runTimeout","fun","setTimeout","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","length","drainQueue","timeout","len","run","marker","runClearTimeout","Item","array","noop","nextTick","Array","title","browser","env","argv","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","utils","InterceptorManager","handlers","use","fulfilled","rejected","eject","id","forEach","h","buildURL","dispatchRequest","mergeConfig","Axios","instanceConfig","defaults","interceptors","request","response","config","method","toLowerCase","chain","promise","Promise","resolve","interceptor","unshift","then","shift","getUri","params","paramsSerializer","Global","sessionStorage","getItem","setItem","removeItem","clear","arr","trim","_has","regexpStr","escape","unescape","doc","cookie","_","document","cookies","split","kvp","_classCallCheck","instance","Constructor","TypeError","_defineProperties","target","props","descriptor","configurable","writable","_createClass","protoProps","staticProps","el","querySelector","correctCount","clickedCount","questionCount","querySelectorAll","finalResult","addListeners","inputs","input","addEventListener","correct","className","questionEl","closest","showDescription","setAttribute","refreshStatus","classList","add","innerHTML","getFinalResult","html","window","resultTexts","heading","description","image","scoreText","minScore","text","STAGE_TRANSLATIONS","tryagain","points","desc","insertAdjacentHTML","question","style","display","result","min","getAttribute","max","_getPrototypeOf","setPrototypeOf","getPrototypeOf","__proto__","receiver","Reflect","base","getOwnPropertyDescriptor","_setPrototypeOf","_isNativeReflectConstruct","construct","sham","Proxy","Date","toString","_typeof","iterator","constructor","_possibleConstructorReturn","ReferenceError","asyncGeneratorStep","gen","reject","_next","_throw","info","error","done","InvalidCharacterError","message","atob","str","String","bs","buffer","bc","idx","output","charAt","fromCharCode","indexOf","decodeURIComponent","code","charCodeAt","toUpperCase","err","InvalidTokenError","token","options","pos","header","base64_url_decode","API","subClass","superClass","Derived","Super","NewTarget","authStoreKey","baseUrl","requestParams","documentElement","lang","settings","assign","ax","axios","headers","validateStatus","status","setAuthToken","a","withCredentials","res","vuexStore","clearAuthToken","commit","messages","catch","stack","path","paramsString","getParamsString","common","getAuthToken","isAuthTokenExpired","jwtDecode","exp","now","encodedString","encodeURIComponent","api","type","pagination","limit","offset","blog","element","list","listItemTemplate","loadMore","setupList","getData","render","getBlogArticles","Mustache","hasMore","removeAttribute","branchBar","init","quiz","appQuiz","thisArg","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","isUndefined","adapter","XMLHttpRequest","getDefaultAdapter","transformRequest","isFormData","isArrayBuffer","isBuffer","isStream","isFile","isBlob","isArrayBufferView","isURLSearchParams","transformResponse","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","merge","enhanceError","__CANCEL__","props1","props2","etc","assignProps1","assignProps2","assignArgsList","F","make_create","global","index","map","v","k","encode","serializedParams","parts","isArray","isDate","toISOString","join","hashmarkIndex","isAxiosError","toJSON","number","fileName","lineNumber","columnNumber","isStandardBrowserEnv","originURL","msie","navigator","userAgent","urlParsingNode","createElement","resolveURL","href","protocol","host","search","hash","hostname","port","pathname","location","requestURL","parsed","isString","memoryStorage","unfixedKey","disable","fixedKey","fixKey","_withStorageEl","storageEl","save","attributes","XMLDocument","attr","load","addBehavior","storageOwner","storageContainer","ActiveXObject","open","close","w","frames","body","storeFunction","appendChild","removeChild","_makeIEStorageElFunction","match","forbiddenCharsRegex","createError","serviceWorkerPath","serviceWorker","register","scope","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","directMergeKeys","getMergedValue","source","isPlainObject","mergeDeepProperties","axiosKeys","otherKeys","keys","filter","transformData","isCancel","throwIfCancellationRequested","cancelToken","throwIfRequested","reason","payload","_minifiedClass","_hiddenClass","_storageSettings","_folderId","_settingsKey","_dom","bar","toggles","pageSelects","_isLocalStorageEnabled","localStorage","_isMinified","_getSettings","_updateSettings","minified","_toggleMinified","reg","_initToggles","getElementsByClassName","_initPageSelects","_showBar","_setCSSVar","setProperty","_updateCSSVars","zIndex","bgColor","colorLight","colorDark","shadowColor","getElementById","default","Cancel","expires","domain","secure","isNumber","toGMTString","isAbsoluteURL","combineURLs","requestedURL","rx_one","rx_two","rx_three","rx_four","rx_escapable","rx_dangerous","gap","indent","meta","rep","f","this_value","valueOf","quote","string","lastIndex","holder","partial","mind","isFinite","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","Boolean","Number","\"","replacer","space","reviver","j","walk","eval","SyntaxError","engine","CancelToken","executor","resolvePromise","cancel","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","define","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","state","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","values","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","invoke","__await","unwrapped","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","displayName","isGeneratorFunction","genFun","ctor","mark","awrap","async","iter","reverse","pop","skipTempReset","prev","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","globalThis","Function","objectToString","escapeRegExp","hasProperty","regExpTest","nonSpaceRe","isWhitespace","re","testRegExp","entityMap","whiteRe","spaceRe","equalsRe","curlyRe","tagRe","Scanner","tail","view","parentContext","cache","parent","Writer","templateCache","_cache","eos","scan","substring","scanUntil","lookup","primitive","intermediateValue","names","lookupHit","clearCache","template","tags","cacheKey","mustache","isCacheEnabled","tokens","openingTagRe","closingTagRe","closingCurlyRe","lineHasNonSpace","sections","spaces","hasTag","nonSpace","indentation","tagIndex","stripSpace","compileTags","tagsToCompile","start","chr","openSection","scanner","valueLength","nestedTokens","collector","numTokens","nestTokens","lastToken","squashedTokens","squashTokens","parseTemplate","partials","getConfigTags","renderTokens","originalTemplate","symbol","renderSection","renderInverted","renderPartial","unescapedValue","escapedValue","rawValue","indentPartial","filteredIndentation","partialByNl","indentedValue","getConfigEscape","defaultWriter","factory","settle","buildFullPath","parseHeaders","isURLSameOrigin","requestData","requestHeaders","auth","username","password","Authorization","btoa","fullPath","onreadystatechange","readyState","responseURL","responseHeaders","getAllResponseHeaders","responseType","responseText","statusText","onabort","onerror","ontimeout","timeoutErrorMessage","xsrfValue","setRequestHeader","onDownloadProgress","onUploadProgress","upload","abort","send","ignoreDuplicateOf","line","substr","fns","FormData","ArrayBuffer","isView","pipe","URLSearchParams","product","assignValue","extend","b","stripBOM","content","normalizedName","g","globalStorage","createInstance","defaultConfig","all","promises","spread"],"mappings":"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","file":"js/palpa.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/static/studio/pub/system/web/branches/master/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","var util = require('./util')\nvar slice = util.slice\nvar pluck = util.pluck\nvar each = util.each\nvar bind = util.bind\nvar create = util.create\nvar isList = util.isList\nvar isFunction = util.isFunction\nvar isObject = util.isObject\n\nmodule.exports = {\n\tcreateStore: createStore\n}\n\nvar storeAPI = {\n\tversion: '2.0.12',\n\tenabled: false,\n\t\n\t// get returns the value of the given key. If that value\n\t// is undefined, it returns optionalDefaultValue instead.\n\tget: function(key, optionalDefaultValue) {\n\t\tvar data = this.storage.read(this._namespacePrefix + key)\n\t\treturn this._deserialize(data, optionalDefaultValue)\n\t},\n\n\t// set will store the given value at key and returns value.\n\t// Calling set with value === undefined is equivalent to calling remove.\n\tset: function(key, value) {\n\t\tif (value === undefined) {\n\t\t\treturn this.remove(key)\n\t\t}\n\t\tthis.storage.write(this._namespacePrefix + key, this._serialize(value))\n\t\treturn value\n\t},\n\n\t// remove deletes the key and value stored at the given key.\n\tremove: function(key) {\n\t\tthis.storage.remove(this._namespacePrefix + key)\n\t},\n\n\t// each will call the given callback once for each key-value pair\n\t// in this store.\n\teach: function(callback) {\n\t\tvar self = this\n\t\tthis.storage.each(function(val, namespacedKey) {\n\t\t\tcallback.call(self, self._deserialize(val), (namespacedKey || '').replace(self._namespaceRegexp, ''))\n\t\t})\n\t},\n\n\t// clearAll will remove all the stored key-value pairs in this store.\n\tclearAll: function() {\n\t\tthis.storage.clearAll()\n\t},\n\n\t// additional functionality that can't live in plugins\n\t// ---------------------------------------------------\n\n\t// hasNamespace returns true if this store instance has the given namespace.\n\thasNamespace: function(namespace) {\n\t\treturn (this._namespacePrefix == '__storejs_'+namespace+'_')\n\t},\n\n\t// createStore creates a store.js instance with the first\n\t// functioning storage in the list of storage candidates,\n\t// and applies the the given mixins to the instance.\n\tcreateStore: function() {\n\t\treturn createStore.apply(this, arguments)\n\t},\n\t\n\taddPlugin: function(plugin) {\n\t\tthis._addPlugin(plugin)\n\t},\n\t\n\tnamespace: function(namespace) {\n\t\treturn createStore(this.storage, this.plugins, namespace)\n\t}\n}\n\nfunction _warn() {\n\tvar _console = (typeof console == 'undefined' ? null : console)\n\tif (!_console) { return }\n\tvar fn = (_console.warn ? _console.warn : _console.log)\n\tfn.apply(_console, arguments)\n}\n\nfunction createStore(storages, plugins, namespace) {\n\tif (!namespace) {\n\t\tnamespace = ''\n\t}\n\tif (storages && !isList(storages)) {\n\t\tstorages = [storages]\n\t}\n\tif (plugins && !isList(plugins)) {\n\t\tplugins = [plugins]\n\t}\n\n\tvar namespacePrefix = (namespace ? '__storejs_'+namespace+'_' : '')\n\tvar namespaceRegexp = (namespace ? new RegExp('^'+namespacePrefix) : null)\n\tvar legalNamespaces = /^[a-zA-Z0-9_\\-]*$/ // alpha-numeric + underscore and dash\n\tif (!legalNamespaces.test(namespace)) {\n\t\tthrow new Error('store.js namespaces can only have alphanumerics + underscores and dashes')\n\t}\n\t\n\tvar _privateStoreProps = {\n\t\t_namespacePrefix: namespacePrefix,\n\t\t_namespaceRegexp: namespaceRegexp,\n\n\t\t_testStorage: function(storage) {\n\t\t\ttry {\n\t\t\t\tvar testStr = '__storejs__test__'\n\t\t\t\tstorage.write(testStr, testStr)\n\t\t\t\tvar ok = (storage.read(testStr) === testStr)\n\t\t\t\tstorage.remove(testStr)\n\t\t\t\treturn ok\n\t\t\t} catch(e) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t},\n\n\t\t_assignPluginFnProp: function(pluginFnProp, propName) {\n\t\t\tvar oldFn = this[propName]\n\t\t\tthis[propName] = function pluginFn() {\n\t\t\t\tvar args = slice(arguments, 0)\n\t\t\t\tvar self = this\n\n\t\t\t\t// super_fn calls the old function which was overwritten by\n\t\t\t\t// this mixin.\n\t\t\t\tfunction super_fn() {\n\t\t\t\t\tif (!oldFn) { return }\n\t\t\t\t\teach(arguments, function(arg, i) {\n\t\t\t\t\t\targs[i] = arg\n\t\t\t\t\t})\n\t\t\t\t\treturn oldFn.apply(self, args)\n\t\t\t\t}\n\n\t\t\t\t// Give mixing function access to super_fn by prefixing all mixin function\n\t\t\t\t// arguments with super_fn.\n\t\t\t\tvar newFnArgs = [super_fn].concat(args)\n\n\t\t\t\treturn pluginFnProp.apply(self, newFnArgs)\n\t\t\t}\n\t\t},\n\n\t\t_serialize: function(obj) {\n\t\t\treturn JSON.stringify(obj)\n\t\t},\n\n\t\t_deserialize: function(strVal, defaultVal) {\n\t\t\tif (!strVal) { return defaultVal }\n\t\t\t// It is possible that a raw string value has been previously stored\n\t\t\t// in a storage without using store.js, meaning it will be a raw\n\t\t\t// string value instead of a JSON serialized string. By defaulting\n\t\t\t// to the raw string value in case of a JSON parse error, we allow\n\t\t\t// for past stored values to be forwards-compatible with store.js\n\t\t\tvar val = ''\n\t\t\ttry { val = JSON.parse(strVal) }\n\t\t\tcatch(e) { val = strVal }\n\n\t\t\treturn (val !== undefined ? val : defaultVal)\n\t\t},\n\t\t\n\t\t_addStorage: function(storage) {\n\t\t\tif (this.enabled) { return }\n\t\t\tif (this._testStorage(storage)) {\n\t\t\t\tthis.storage = storage\n\t\t\t\tthis.enabled = true\n\t\t\t}\n\t\t},\n\n\t\t_addPlugin: function(plugin) {\n\t\t\tvar self = this\n\n\t\t\t// If the plugin is an array, then add all plugins in the array.\n\t\t\t// This allows for a plugin to depend on other plugins.\n\t\t\tif (isList(plugin)) {\n\t\t\t\teach(plugin, function(plugin) {\n\t\t\t\t\tself._addPlugin(plugin)\n\t\t\t\t})\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// Keep track of all plugins we've seen so far, so that we\n\t\t\t// don't add any of them twice.\n\t\t\tvar seenPlugin = pluck(this.plugins, function(seenPlugin) {\n\t\t\t\treturn (plugin === seenPlugin)\n\t\t\t})\n\t\t\tif (seenPlugin) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.plugins.push(plugin)\n\n\t\t\t// Check that the plugin is properly formed\n\t\t\tif (!isFunction(plugin)) {\n\t\t\t\tthrow new Error('Plugins must be function values that return objects')\n\t\t\t}\n\n\t\t\tvar pluginProperties = plugin.call(this)\n\t\t\tif (!isObject(pluginProperties)) {\n\t\t\t\tthrow new Error('Plugins must return an object of function properties')\n\t\t\t}\n\n\t\t\t// Add the plugin function properties to this store instance.\n\t\t\teach(pluginProperties, function(pluginFnProp, propName) {\n\t\t\t\tif (!isFunction(pluginFnProp)) {\n\t\t\t\t\tthrow new Error('Bad plugin property: '+propName+' from plugin '+plugin.name+'. Plugins should only return functions.')\n\t\t\t\t}\n\t\t\t\tself._assignPluginFnProp(pluginFnProp, propName)\n\t\t\t})\n\t\t},\n\t\t\n\t\t// Put deprecated properties in the private API, so as to not expose it to accidential\n\t\t// discovery through inspection of the store object.\n\t\t\n\t\t// Deprecated: addStorage\n\t\taddStorage: function(storage) {\n\t\t\t_warn('store.addStorage(storage) is deprecated. Use createStore([storages])')\n\t\t\tthis._addStorage(storage)\n\t\t}\n\t}\n\n\tvar store = create(_privateStoreProps, storeAPI, {\n\t\tplugins: []\n\t})\n\tstore.raw = {}\n\teach(store, function(prop, propName) {\n\t\tif (isFunction(prop)) {\n\t\t\tstore.raw[propName] = bind(store, prop)\t\t\t\n\t\t}\n\t})\n\teach(storages, function(storage) {\n\t\tstore._addStorage(storage)\n\t})\n\teach(plugins, function(plugin) {\n\t\tstore._addPlugin(plugin)\n\t})\n\treturn store\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","var util = require('../src/util')\nvar Global = util.Global\n\nmodule.exports = {\n\tname: 'sessionStorage',\n\tread: read,\n\twrite: write,\n\teach: each,\n\tremove: remove,\n\tclearAll: clearAll\n}\n\nfunction sessionStorage() {\n\treturn Global.sessionStorage\n}\n\nfunction read(key) {\n\treturn sessionStorage().getItem(key)\n}\n\nfunction write(key, data) {\n\treturn sessionStorage().setItem(key, data)\n}\n\nfunction each(fn) {\n\tfor (var i = sessionStorage().length - 1; i >= 0; i--) {\n\t\tvar key = sessionStorage().key(i)\n\t\tfn(read(key), key)\n\t}\n}\n\nfunction remove(key) {\n\treturn sessionStorage().removeItem(key)\n}\n\nfunction clearAll() {\n\treturn sessionStorage().clear()\n}\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","// cookieStorage is useful Safari private browser mode, where localStorage\n// doesn't work but cookies do. This implementation is adopted from\n// https://developer.mozilla.org/en-US/docs/Web/API/Storage/LocalStorage\n\nvar util = require('../src/util')\nvar Global = util.Global\nvar trim = util.trim\n\nmodule.exports = {\n\tname: 'cookieStorage',\n\tread: read,\n\twrite: write,\n\teach: each,\n\tremove: remove,\n\tclearAll: clearAll,\n}\n\nvar doc = Global.document\n\nfunction read(key) {\n\tif (!key || !_has(key)) { return null }\n\tvar regexpStr = \"(?:^|.*;\\\\s*)\" +\n\t\tescape(key).replace(/[\\-\\.\\+\\*]/g, \"\\\\$&\") +\n\t\t\"\\\\s*\\\\=\\\\s*((?:[^;](?!;))*[^;]?).*\"\n\treturn unescape(doc.cookie.replace(new RegExp(regexpStr), \"$1\"))\n}\n\nfunction each(callback) {\n\tvar cookies = doc.cookie.split(/; ?/g)\n\tfor (var i = cookies.length - 1; i >= 0; i--) {\n\t\tif (!trim(cookies[i])) {\n\t\t\tcontinue\n\t\t}\n\t\tvar kvp = cookies[i].split('=')\n\t\tvar key = unescape(kvp[0])\n\t\tvar val = unescape(kvp[1])\n\t\tcallback(val, key)\n\t}\n}\n\nfunction write(key, data) {\n\tif(!key) { return }\n\tdoc.cookie = escape(key) + \"=\" + escape(data) + \"; expires=Tue, 19 Jan 2038 03:14:07 GMT; path=/\"\n}\n\nfunction remove(key) {\n\tif (!key || !_has(key)) {\n\t\treturn\n\t}\n\tdoc.cookie = escape(key) + \"=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/\"\n}\n\nfunction clearAll() {\n\teach(function(_, key) {\n\t\tremove(key)\n\t})\n}\n\nfunction _has(key) {\n\treturn (new RegExp(\"(?:^|;\\\\s*)\" + escape(key).replace(/[\\-\\.\\+\\*]/g, \"\\\\$&\") + \"\\\\s*\\\\=\")).test(doc.cookie)\n}\n","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","class Quiz {\r\n constructor() {\r\n this.el = document.querySelector('.knowledge-test')\r\n this.correctCount = 0\r\n this.clickedCount = 0\r\n this.questionCount = this.el?.querySelectorAll('.question')?.length\r\n this.finalResult = this.el?.querySelector('.final-result')\r\n }\r\n\r\n /**\r\n * Initialize quiz\r\n */\r\n init() {\r\n if (this.el) {\r\n this.addListeners()\r\n }\r\n }\r\n\r\n /**\r\n * Add listeners to inputs\r\n */\r\n addListeners() {\r\n const inputs = this.el.querySelectorAll('input')\r\n if (inputs) {\r\n inputs.forEach(input => {\r\n input.addEventListener('click', () => {\r\n const correct = input.value === '1' ? true : false\r\n const className = correct ? 'correct' : 'wrong'\r\n const questionEl = input.closest('.question')\r\n this.clickedCount++\r\n correct ? this.correctCount++ : []\r\n this.showDescription(questionEl, className)\r\n questionEl.querySelectorAll('input').forEach((el) => {\r\n el.setAttribute('disabled', true)\r\n })\r\n this.refreshStatus()\r\n })\r\n })\r\n }\r\n }\r\n\r\n /**\r\n * Show description of question\r\n * @param {element} questionEl element of question\r\n * @param {string} className class name, (correct || wrong)\r\n */\r\n showDescription(questionEl, className) {\r\n questionEl.classList.add(className)\r\n questionEl.querySelector(`.result-${className}`).classList.add('show')\r\n questionEl.querySelector('.description').classList.add('show')\r\n }\r\n\r\n /**\r\n * Refresh status of the quiz (if last question show result)\r\n */\r\n refreshStatus() {\r\n if (this.clickedCount >= this.questionCount) {\r\n document.querySelector('.main-content-area').innerHTML = this.getFinalResult()\r\n // this.finalResult.innerHTML = this.getFinalResult()\r\n // this.finalResult.classList.add('show')\r\n }\r\n }\r\n\r\n /**\r\n * Get text and return it as raw html\r\n * @returns {string} raw html\r\n */\r\n getFinalResult(){\r\n var html = ''; //'

' + window.STAGE_TRANSLATIONS.score + ' ' +this.correctCount+'/'+ this.questionCount +' ' + window.STAGE_TRANSLATIONS.points + '

';\r\n\r\n if(typeof(window.resultTexts) === 'object'){\r\n var heading = '', description = '', image = '';\r\n\r\n for(var i=0; i < window.resultTexts.length; i++){\r\n var scoreText = window.resultTexts[i];\r\n if(scoreText.minScore <= this.correctCount){\r\n heading = scoreText.heading;\r\n description = scoreText.text;\r\n image = scoreText.image;\r\n break;\r\n }\r\n }\r\n\r\n html += '

'+heading+'

';\r\n html += `

\"\"

`;\r\n html += '

'+description+'

';\r\n html += `${window.STAGE_TRANSLATIONS.tryagain}`;\r\n html += '';\r\n }\r\n\r\n return html;\r\n }\r\n}\r\n\r\nexport default new Quiz()\r\n","class QuizApp {\r\n constructor() {\r\n this.el = document.querySelector('.app-quiz')\r\n this.questionCount = this.el?.querySelectorAll('.js-app-quiz-question')?.length\r\n this.clickedCount = 0\r\n this.points = 0\r\n }\r\n\r\n /**\r\n * Initialize quiz\r\n */\r\n init() {\r\n if (this.el) {\r\n this.addListeners()\r\n }\r\n }\r\n\r\n /**\r\n * Add listeners to inputs\r\n */\r\n addListeners() {\r\n const inputs = this.el.querySelectorAll('input')\r\n if (inputs) {\r\n inputs.forEach(input => {\r\n input.addEventListener('click', () => {\r\n const desc = input.closest('li').querySelector('.js-app-quiz-answer-description');\r\n const questionEl = input.closest('.js-app-quiz-question')\r\n const correct = input.value === '1'\r\n questionEl.querySelectorAll('input').forEach((el) => {\r\n el.setAttribute('disabled', true)\r\n })\r\n if (!correct) {\r\n questionEl.classList.add('wrong')\r\n }\r\n if (desc) {\r\n questionEl.insertAdjacentHTML('beforeend', `
${desc.innerHTML}
`)\r\n }\r\n this.clickedCount = this.clickedCount + 1\r\n if (input.value === '1') {\r\n this.points = this.points + 1\r\n }\r\n this.refreshStatus()\r\n })\r\n })\r\n }\r\n }\r\n\r\n /**\r\n * Refresh status of the quiz (if last question show result)\r\n */\r\n refreshStatus() {\r\n if (this.clickedCount >= this.questionCount) {\r\n this.el.querySelectorAll('.js-app-quiz-question').forEach((question) => {\r\n question.style.display = 'none'\r\n })\r\n this.el.querySelectorAll('.js-app-quiz-result').forEach((result) => {\r\n const min = result.getAttribute('data-points-min')\r\n const max = result.getAttribute('data-points-max')\r\n if (this.points >= min && this.points <= max) {\r\n document.querySelector('.main-content-area').innerHTML = result.innerHTML\r\n }\r\n })\r\n }\r\n }\r\n}\r\n\r\nexport default new QuizApp()\r\n","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import superPropBase from \"./superPropBase\";\nexport default function _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n}","import getPrototypeOf from \"./getPrototypeOf\";\nexport default function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","import _typeof from \"../../helpers/esm/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","/**\n * The code was extracted from:\n * https://github.com/davidchambers/Base64.js\n */\n\nvar chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n\nfunction InvalidCharacterError(message) {\n this.message = message;\n}\n\nInvalidCharacterError.prototype = new Error();\nInvalidCharacterError.prototype.name = \"InvalidCharacterError\";\n\nfunction polyfill(input) {\n var str = String(input).replace(/=+$/, \"\");\n if (str.length % 4 == 1) {\n throw new InvalidCharacterError(\n \"'atob' failed: The string to be decoded is not correctly encoded.\"\n );\n }\n for (\n // initialize result and counters\n var bc = 0, bs, buffer, idx = 0, output = \"\";\n // get next character\n (buffer = str.charAt(idx++));\n // character found in table? initialize bit storage and add its ascii value;\n ~buffer &&\n ((bs = bc % 4 ? bs * 64 + buffer : buffer),\n // and if not first of each 4 characters,\n // convert the first 8 bits to one ascii character\n bc++ % 4) ?\n (output += String.fromCharCode(255 & (bs >> ((-2 * bc) & 6)))) :\n 0\n ) {\n // try to find character in table (0-63, not found => -1)\n buffer = chars.indexOf(buffer);\n }\n return output;\n}\n\nexport default (typeof window !== \"undefined\" &&\n window.atob &&\n window.atob.bind(window)) ||\npolyfill;","import atob from \"./atob\";\n\nfunction b64DecodeUnicode(str) {\n return decodeURIComponent(\n atob(str).replace(/(.)/g, function(m, p) {\n var code = p.charCodeAt(0).toString(16).toUpperCase();\n if (code.length < 2) {\n code = \"0\" + code;\n }\n return \"%\" + code;\n })\n );\n}\n\nexport default function(str) {\n var output = str.replace(/-/g, \"+\").replace(/_/g, \"/\");\n switch (output.length % 4) {\n case 0:\n break;\n case 2:\n output += \"==\";\n break;\n case 3:\n output += \"=\";\n break;\n default:\n throw \"Illegal base64url string!\";\n }\n\n try {\n return b64DecodeUnicode(output);\n } catch (err) {\n return atob(output);\n }\n}","\"use strict\";\n\nimport base64_url_decode from \"./base64_url_decode\";\n\nexport function InvalidTokenError(message) {\n this.message = message;\n}\n\nInvalidTokenError.prototype = new Error();\nInvalidTokenError.prototype.name = \"InvalidTokenError\";\n\nexport default function(token, options) {\n if (typeof token !== \"string\") {\n throw new InvalidTokenError(\"Invalid token specified\");\n }\n\n options = options || {};\n var pos = options.header === true ? 0 : 1;\n try {\n return JSON.parse(base64_url_decode(token.split(\".\")[pos]));\n } catch (e) {\n throw new InvalidTokenError(\"Invalid token specified: \" + e.message);\n }\n}","import DataService from './data-service';\r\n\r\nexport default class API extends DataService {\r\n constructor(options) {\r\n super({\r\n authStoreKey: options.authStoreKey,\r\n baseUrl: '/stage-ajax',\r\n requestParams: {\r\n 'stage-language': document.documentElement.lang || 'fi'\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Get blog articles from API\r\n * @param {object} params required\r\n * @param {number} params.limit limit result (required)\r\n * @return {array}\r\n */\r\n getBlogArticles(params) {\r\n return super.get('/blog', params);\r\n }\r\n\r\n}\r\n","import setPrototypeOf from \"./setPrototypeOf\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import getPrototypeOf from \"./getPrototypeOf\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn\";\nexport default function _createSuper(Derived) {\n return function () {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (isNativeReflectConstruct()) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","import axios from 'axios';\r\nimport store from 'store';\r\nimport jwtDecode from 'jwt-decode';\r\n\r\n/**\r\n * Can be used with API libraries to handle actual requests\r\n */\r\nclass DataService {\r\n /**\r\n * @param {Object} options - option object\r\n * @param {string} authStoreKey - key name of authorization token, e.g. 'api-token'\r\n */\r\n constructor(options = {}) {\r\n let settings = {\r\n authStoreKey: null,\r\n baseUrl: null\r\n };\r\n\r\n this.settings = Object.assign(settings, options);\r\n\r\n if(!this.settings.authStoreKey) {\r\n throw Error('#constructor: settings.authStoreKey needs to be set');\r\n }\r\n\r\n if(!this.settings.baseUrl) {\r\n throw Error('#constructor: settings.baseUrl needs to be set');\r\n }\r\n\r\n const params = this.settings.requestParams || {};\r\n\r\n this.ax = axios.create({\r\n baseURL: this.settings.baseUrl,\r\n headers: {\r\n 'X-Requested-with': 'XHR'\r\n },\r\n params,\r\n validateStatus: function (status) {\r\n return status < 500; // Reject only if the status code is greater than or equal to 500\r\n }\r\n });\r\n\r\n\r\n const token = store.get(this.settings.authStoreKey);\r\n if(token) {\r\n this.setAuthToken(token);\r\n }\r\n }\r\n\r\n async request(method, options) {\r\n return this.ax({\r\n method: method,\r\n url: options.url,\r\n data: options.data,\r\n params: options.params || {},\r\n withCredentials: true,\r\n config: options.config\r\n }).then(res => {\r\n const data = res.data;\r\n\r\n if(!this.vuexStore) {\r\n return data;\r\n }\r\n\r\n if(data.code === 401) {\r\n // Clear auth token\r\n this.clearAuthToken();\r\n this.vuexStore.commit('setLoginStatus', false);\r\n }\r\n\r\n // If ok or too many requests\r\n if((data.code === 200 || data.code === 429) && data.messages.length) {\r\n this.vuexStore.commit('addNotification', data.messages);\r\n }\r\n\r\n return data;\r\n\r\n }).catch(function (error) {\r\n if(error.response) {\r\n const data = error.response.data;\r\n console.error(`Server error status: ${data.code}\\n${data.result.error.stack}`);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n\t * If you're using dataService this with vuex, we can automatically logout user and do other stuff based on responses\r\n\t *\r\n\t * @param {Object} store - vuex store object\r\n\t */\r\n setVuexStore(store) {\r\n this.vuexStore = store;\r\n }\r\n\r\n get(path, params) {\r\n return this.request('get', {\r\n url: path,\r\n params: params\r\n });\r\n }\r\n\r\n post(path, data, params, config) {\r\n return this.request('post', {\r\n url: path,\r\n data: data,\r\n params: params,\r\n config: config\r\n });\r\n }\r\n\r\n postForm(path, data, params, config) {\r\n const paramsString = this.getParamsString(data);\r\n return this.request('post', {\r\n url: path,\r\n data: paramsString,\r\n params: params,\r\n config: { headers: {'Content-Type': 'application/x-www-form-urlencoded' }}\r\n });\r\n }\r\n\r\n patch(path, data, params) {\r\n return this.request('patch', {\r\n url: path,\r\n data: data,\r\n params: params\r\n });\r\n }\r\n\r\n put(path, data, params) {\r\n return this.request('put', {\r\n url: path,\r\n data: data,\r\n params: params\r\n });\r\n }\r\n\r\n delete(path, params) {\r\n return this.request('delete', {\r\n url: path,\r\n params: params\r\n });\r\n }\r\n\r\n setAuthToken(token) {\r\n this.ax.defaults.headers.common['Authorization'] = 'Bearer ' + token;\r\n store.set(this.settings.authStoreKey, token);\r\n }\r\n\r\n clearAuthToken() {\r\n delete this.ax.defaults.headers.common['Authorization'];\r\n store.remove(this.settings.authStoreKey);\r\n }\r\n\r\n getAuthToken() {\r\n return store.get(this.settings.authStoreKey);\r\n }\r\n\r\n isLoggedIn() {\r\n // Checks if there is a saved token and it's still valid\r\n const token = this.getAuthToken(); // GEtting token from localstorage\r\n return !!token && !this.isAuthTokenExpired(token) // handwaiving here\r\n }\r\n\r\n isAuthTokenExpired(token) {\r\n try {\r\n const decoded = jwtDecode(token);\r\n if (decoded.exp < Date.now() / 1000) { // Checking if token is expired.\r\n return true;\r\n }\r\n\r\n return false;\r\n } catch (err) {\r\n return false;\r\n }\r\n }\r\n\r\n getParamsString(params, baseUrl) {\r\n let encodedString = /\\?/g.test(baseUrl) ? '&' : '?';\r\n\r\n // If baseUrl is omitted, this is params request for POST or PUT type xhr, se we can only return params\r\n if (!baseUrl) {\r\n encodedString = '';\r\n }\r\n\r\n if (!params) {\r\n return '';\r\n }\r\n\r\n if (typeof params === 'string') {\r\n return params;\r\n }\r\n\r\n for (let prop in params) {\r\n if (Object.prototype.hasOwnProperty.call(params, prop)) {\r\n // if array\r\n if (typeof params[prop] === 'object' && params[prop].length) {\r\n for (let i = 0, l = params[prop].length; i < l; i++) {\r\n if (encodedString.length > 1) {\r\n encodedString += '&';\r\n }\r\n\r\n encodedString += encodeURIComponent(prop + '[]') + '=' + encodeURIComponent(params[prop][i]);\r\n }\r\n } else {\r\n if (encodedString.length > 1) {\r\n encodedString += '&';\r\n }\r\n encodedString += encodeURIComponent(prop) + '=' + encodeURIComponent(params[prop]);\r\n }\r\n }\r\n }\r\n\r\n return encodedString;\r\n }\r\n}\r\n\r\nexport default DataService;\r\n","import API from '../modules/api'\r\nconst api = new API({ authStoreKey: 'blog' })\r\nimport Mustache from 'mustache'\r\n\r\nconst params = {\r\n type: null,\r\n pagination: null,\r\n limit: null,\r\n offset: 0\r\n}\r\n\r\nclass Blog {\r\n\r\n constructor() {\r\n this.element = document.querySelector('.js-blog')\r\n this.list = document.querySelector('.js-blog-list')\r\n this.listItemTemplate = document.querySelector('.js-blog-list-item-template')\r\n this.loadMore = document.querySelector('.js-blog-load-more')\r\n }\r\n\r\n /**\r\n * Initialize blog\r\n */\r\n init() {\r\n if (this.element && this.list) {\r\n this.setupList()\r\n this.addListeners()\r\n }\r\n }\r\n\r\n /**\r\n * Setup blog list\r\n */\r\n setupList() {\r\n params.type = 'list'\r\n params.pagination = true\r\n params.limit = 4\r\n this.getData().then(data => {\r\n this.render(data)\r\n })\r\n }\r\n\r\n /**\r\n * Get data from API\r\n * @returns {object} result from API\r\n */\r\n getData() {\r\n return api.getBlogArticles(params)\r\n }\r\n\r\n /**\r\n * Use Mustache to render HTML\r\n * @param {object} result from API\r\n */\r\n render(result) {\r\n this.list.innerHTML += Mustache.render(this.listItemTemplate.innerHTML, result.data)\r\n if (result.data.pagination.hasMore) {\r\n this.loadMore.style.display = 'inline-block';\r\n }\r\n }\r\n\r\n /**\r\n * Add events to buttons (like load more)\r\n */\r\n addListeners() {\r\n if (this.loadMore) {\r\n this.loadMore.addEventListener('click', () => {\r\n params.offset = params.offset || 0 + params.limit\r\n this.loadMore.setAttribute('disabled', true)\r\n this.loadMore.querySelector('svg').style.display = 'inline-block';\r\n this.getData().then(data => {\r\n this.render(data)\r\n this.loadMore.removeAttribute('disabled')\r\n this.loadMore.style.display = 'none';\r\n this.loadMore.querySelector('svg').style.display = 'none';\r\n })\r\n })\r\n }\r\n }\r\n\r\n}\r\n\r\nconst blog = new Blog()\r\nexport default blog\r\n","import './modules/register-service-worker';\r\nimport '@crasman/branch-bar/styles.css';\r\nimport { branchBar } from '@crasman/branch-bar';\r\nimport quiz from './modules/quiz';\r\nimport appQuiz from './modules/app-quiz';\r\nimport blog from './components/blog';\r\n\r\n// See https://www.npmjs.com/package/@crasman/branch-bar for settings\r\nbranchBar.init();\r\nquiz.init();\r\nappQuiz.init();\r\nblog.init();\r\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","var assign = make_assign()\nvar create = make_create()\nvar trim = make_trim()\nvar Global = (typeof window !== 'undefined' ? window : global)\n\nmodule.exports = {\n\tassign: assign,\n\tcreate: create,\n\ttrim: trim,\n\tbind: bind,\n\tslice: slice,\n\teach: each,\n\tmap: map,\n\tpluck: pluck,\n\tisList: isList,\n\tisFunction: isFunction,\n\tisObject: isObject,\n\tGlobal: Global\n}\n\nfunction make_assign() {\n\tif (Object.assign) {\n\t\treturn Object.assign\n\t} else {\n\t\treturn function shimAssign(obj, props1, props2, etc) {\n\t\t\tfor (var i = 1; i < arguments.length; i++) {\n\t\t\t\teach(Object(arguments[i]), function(val, key) {\n\t\t\t\t\tobj[key] = val\n\t\t\t\t})\n\t\t\t}\t\t\t\n\t\t\treturn obj\n\t\t}\n\t}\n}\n\nfunction make_create() {\n\tif (Object.create) {\n\t\treturn function create(obj, assignProps1, assignProps2, etc) {\n\t\t\tvar assignArgsList = slice(arguments, 1)\n\t\t\treturn assign.apply(this, [Object.create(obj)].concat(assignArgsList))\n\t\t}\n\t} else {\n\t\tfunction F() {} // eslint-disable-line no-inner-declarations\n\t\treturn function create(obj, assignProps1, assignProps2, etc) {\n\t\t\tvar assignArgsList = slice(arguments, 1)\n\t\t\tF.prototype = obj\n\t\t\treturn assign.apply(this, [new F()].concat(assignArgsList))\n\t\t}\n\t}\n}\n\nfunction make_trim() {\n\tif (String.prototype.trim) {\n\t\treturn function trim(str) {\n\t\t\treturn String.prototype.trim.call(str)\n\t\t}\n\t} else {\n\t\treturn function trim(str) {\n\t\t\treturn str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '')\n\t\t}\n\t}\n}\n\nfunction bind(obj, fn) {\n\treturn function() {\n\t\treturn fn.apply(obj, Array.prototype.slice.call(arguments, 0))\n\t}\n}\n\nfunction slice(arr, index) {\n\treturn Array.prototype.slice.call(arr, index || 0)\n}\n\nfunction each(obj, fn) {\n\tpluck(obj, function(val, key) {\n\t\tfn(val, key)\n\t\treturn false\n\t})\n}\n\nfunction map(obj, fn) {\n\tvar res = (isList(obj) ? [] : {})\n\tpluck(obj, function(v, k) {\n\t\tres[k] = fn(v, k)\n\t\treturn false\n\t})\n\treturn res\n}\n\nfunction pluck(obj, fn) {\n\tif (isList(obj)) {\n\t\tfor (var i=0; i=0; i--) {\n\t\t\tvar attr = attributes[i]\n\t\t\tcallback(storageEl.getAttribute(attr.name), attr.name)\n\t\t}\n\t})\n}\n\nfunction remove(unfixedKey) {\n\tvar fixedKey = fixKey(unfixedKey)\n\t_withStorageEl(function(storageEl) {\n\t\tstorageEl.removeAttribute(fixedKey)\n\t\tstorageEl.save(storageName)\n\t})\n}\n\nfunction clearAll() {\n\t_withStorageEl(function(storageEl) {\n\t\tvar attributes = storageEl.XMLDocument.documentElement.attributes\n\t\tstorageEl.load(storageName)\n\t\tfor (var i=attributes.length-1; i>=0; i--) {\n\t\t\tstorageEl.removeAttribute(attributes[i].name)\n\t\t}\n\t\tstorageEl.save(storageName)\n\t})\n}\n\n// Helpers\n//////////\n\n// In IE7, keys cannot start with a digit or contain certain chars.\n// See https://github.com/marcuswestin/store.js/issues/40\n// See https://github.com/marcuswestin/store.js/issues/83\nvar forbiddenCharsRegex = new RegExp(\"[!\\\"#$%&'()*+,/\\\\\\\\:;<=>?@[\\\\]^`{|}~]\", \"g\")\nfunction fixKey(key) {\n\treturn key.replace(/^\\d/, '___$&').replace(forbiddenCharsRegex, '___')\n}\n\nfunction _makeIEStorageElFunction() {\n\tif (!doc || !doc.documentElement || !doc.documentElement.addBehavior) {\n\t\treturn null\n\t}\n\tvar scriptTag = 'script',\n\t\tstorageOwner,\n\t\tstorageContainer,\n\t\tstorageEl\n\n\t// Since #userData storage applies only to specific paths, we need to\n\t// somehow link our data to a specific path. We choose /favicon.ico\n\t// as a pretty safe option, since all browsers already make a request to\n\t// this URL anyway and being a 404 will not hurt us here. We wrap an\n\t// iframe pointing to the favicon in an ActiveXObject(htmlfile) object\n\t// (see: http://msdn.microsoft.com/en-us/library/aa752574(v=VS.85).aspx)\n\t// since the iframe access rules appear to allow direct access and\n\t// manipulation of the document element, even for a 404 page. This\n\t// document can be used instead of the current document (which would\n\t// have been limited to the current path) to perform #userData storage.\n\ttry {\n\t\t/* global ActiveXObject */\n\t\tstorageContainer = new ActiveXObject('htmlfile')\n\t\tstorageContainer.open()\n\t\tstorageContainer.write('<'+scriptTag+'>document.w=window')\n\t\tstorageContainer.close()\n\t\tstorageOwner = storageContainer.w.frames[0].document\n\t\tstorageEl = storageOwner.createElement('div')\n\t} catch(e) {\n\t\t// somehow ActiveXObject instantiation failed (perhaps some special\n\t\t// security settings or otherwse), fall back to per-path storage\n\t\tstorageEl = doc.createElement('div')\n\t\tstorageOwner = doc.body\n\t}\n\n\treturn function(storeFunction) {\n\t\tvar args = [].slice.call(arguments, 0)\n\t\targs.unshift(storageEl)\n\t\t// See http://msdn.microsoft.com/en-us/library/ms531081(v=VS.85).aspx\n\t\t// and http://msdn.microsoft.com/en-us/library/ms531424(v=VS.85).aspx\n\t\tstorageOwner.appendChild(storageEl)\n\t\tstorageEl.addBehavior('#default#userData')\n\t\tstorageEl.load(storageName)\n\t\tstoreFunction.apply(this, args)\n\t\tstorageOwner.removeChild(storageEl)\n\t\treturn\n\t}\n}\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","// To enable serviceWorker import this to your master.js file. E.g. `import './modules/register-service-worker';`\r\nif ('serviceWorker' in navigator) {\r\n if (process.env.NODE_ENV === 'production' || process.env.SW_DEV) {\r\n const serviceWorkerPath = `${process.env.PUBLIC_PATH}service-worker.js`;\r\n navigator.serviceWorker\r\n .register(serviceWorkerPath, { scope: '/' })\r\n .then(function() {\r\n // registration worked\r\n console.log('Service worker registered.');\r\n })\r\n .catch(function(error) {\r\n // If there is (probably) something wrong with Service Worker path\r\n if (error instanceof TypeError) {\r\n // registration failed\r\n console.log(\r\n `Service worker registration failed. Invalid Service Worker path? (${serviceWorkerPath})`\r\n );\r\n }\r\n });\r\n }\r\n}\r\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = [\n 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n ];\n var directMergeKeys = ['validateStatus'];\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys)\n .concat(directMergeKeys);\n\n var otherKeys = Object\n .keys(config1)\n .concat(Object.keys(config2))\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, mergeDeepProperties);\n\n return config;\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData(\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData(\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return (typeof payload === 'object') && (payload.isAxiosError === true);\n};\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst branchBar = {\n\t_minifiedClass: 'branch-bar--minified',\n\t_hiddenClass: 'branch-bar--hidden',\n\t_storageSettings: null,\n\t_folderId: null,\n\t_settingsKey: null,\n\t_dom: {\n\t\tbar: null,\n\t\ttoggles: null,\n\t\tpageSelects: null,\n\t},\n\t_isLocalStorageEnabled: function() {\n\t\tvar test = 'branch-bar-test';\n\n\t\ttry {\n\t\t\tlocalStorage.setItem(test, test);\n\t\t\tlocalStorage.removeItem(test);\n\t\t\treturn true;\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t},\n\t_isMinified: function() {\n\t\treturn this._dom.bar.className.split(' ').indexOf(this._minifiedClass) >= 0;\n\t},\n\t_getSettings: function() {\n\t\tvar settings = null;\n\n\t\tif (!this._isLocalStorageEnabled()) {\n\t\t\treturn null;\n\t\t}\n\t\tthis._folderId = this._dom.bar.getAttribute('data-folder-id');\n\t\tthis._settingsKey = 'branch-bar--' + this._folderId;\n\t\tif (this._settingsKey) {\n\t\t\ttry {\n\t\t\t\tsettings = JSON.parse(localStorage.getItem(this._settingsKey));\n\t\t\t\treturn settings;\n\t\t\t} catch (e) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\n\t\treturn settings;\n\t},\n\t_updateSettings: function() {\n\t\tif (!this._isLocalStorageEnabled()) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (!this._storageSettings) {\n\t\t\tthis._storageSettings = {};\n\t\t}\n\n\t\tthis._storageSettings.minified = this._isMinified();\n\n\t\ttry {\n\t\t\tlocalStorage.setItem(\n\t\t\t\tthis._settingsKey,\n\t\t\t\tJSON.stringify(this._storageSettings)\n\t\t\t);\n\t\t\treturn true;\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t},\n\t_toggleMinified: function() {\n\t\tif (this._isMinified()) {\n\t\t\tvar reg = new RegExp('(\\\\s|^)' + this._minifiedClass + '(\\\\s|$)');\n\t\t\tthis._dom.bar.className = this._dom.bar.className.replace(reg, ' ');\n\t\t} else {\n\t\t\tthis._dom.bar.className += ' ' + this._minifiedClass;\n\t\t}\n\t},\n\t_initToggles: function() {\n\t\tvar self = this;\n\n\t\tthis._dom.toggles = this._dom.bar.getElementsByClassName(\n\t\t\t'js-branch-bar__toggle'\n\t\t);\n\n\t\tfor (var i = 0, l = this._dom.toggles.length; i < l; i++) {\n\t\t\tthis._dom.toggles[i].addEventListener(\n\t\t\t\t'click',\n\t\t\t\tfunction() {\n\t\t\t\t\tself._toggleMinified();\n\t\t\t\t\tself._updateSettings();\n\t\t\t\t},\n\t\t\t\tfalse\n\t\t\t);\n\t\t}\n\t},\n\t_initPageSelects: function() {\n\t\tthis._dom.pageSelects = this._dom.bar.getElementsByClassName(\n\t\t\t'js-branch-bar__page-select'\n\t\t);\n\n\t\tfor (var i = 0, l = this._dom.pageSelects.length; i < l; i++) {\n\t\t\tthis._dom.pageSelects[i].addEventListener(\n\t\t\t\t'change',\n\t\t\t\tfunction(e) {\n\t\t\t\t\tvar val = e.target.value;\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\twindow.location.href = val;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tfalse\n\t\t\t);\n\t\t}\n\t},\n\t_showBar: function() {\n\t\tvar reg = new RegExp('(\\\\s|^)' + this._hiddenClass + '(\\\\s|$)');\n\t\tvar self = this;\n\n\t\tself._dom.bar.className = self._dom.bar.className.replace(reg, ' ');\n\n\t\t// Remove inline display:none style\n\t\tif (self._dom.bar.style.display === 'none') {\n\t\t\tself._dom.bar.style.display = '';\n\t\t}\n\t},\n\t_setCSSVar(name, value) {\n\t\tvar prefix = '--branch-bar-';\n\n\t\tdocument.documentElement.style.setProperty(prefix + name, value);\n\t},\n\t_updateCSSVars: function(settings) {\n\t\tif (settings.zIndex) {\n\t\t\tthis._setCSSVar('z-index', settings.zIndex);\n\t\t}\n\n\t\tif (settings.bgColor) {\n\t\t\tthis._setCSSVar('bg-color', settings.bgColor);\n\t\t}\n\n\t\tif (settings.colorLight) {\n\t\t\tthis._setCSSVar('color-light', settings.colorLight);\n\t\t}\n\n\t\tif (settings.colorDark) {\n\t\t\tthis._setCSSVar('color-dark', settings.colorDark);\n\t\t}\n\n\t\tif (settings.shadowColor) {\n\t\t\tthis._setCSSVar('shadow-color', settings.shadowColor);\n\t\t}\n\t},\n\tinit: function(options) {\n\t\tvar settings = options || {};\n\n\t\tthis._updateCSSVars(settings);\n\n\t\tthis._dom.bar = document.getElementById('js-branch-bar'); // Assumes only one bar per page\n\n\t\tif (this._dom.bar) {\n\t\t\tthis._storageSettings = this._getSettings();\n\n\t\t\t// If user left the bar open\n\t\t\tif (this._storageSettings && !this._storageSettings.minified) {\n\t\t\t\tthis._toggleMinified();\n\t\t\t}\n\n\t\t\tthis._initToggles();\n\t\t\tthis._initPageSelects();\n\n\t\t\tthis._showBar();\n\t\t}\n\t},\n};\n\nexports.branchBar = branchBar;\nexports.default = branchBar;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","module.exports = [\n\t// Listed in order of usage preference\n\trequire('./localStorage'),\n\trequire('./oldFF-globalStorage'),\n\trequire('./oldIE-userDataStorage'),\n\trequire('./cookieStorage'),\n\trequire('./sessionStorage'),\n\trequire('./memoryStorage')\n]\n","/* eslint-disable */\n\n// json2.js\n// 2016-10-28\n// Public Domain.\n// NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.\n// See http://www.JSON.org/js.html\n// This code should be minified before deployment.\n// See http://javascript.crockford.com/jsmin.html\n\n// USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO\n// NOT CONTROL.\n\n// This file creates a global JSON object containing two methods: stringify\n// and parse. This file provides the ES5 JSON capability to ES3 systems.\n// If a project might run on IE8 or earlier, then this file should be included.\n// This file does nothing on ES5 systems.\n\n// JSON.stringify(value, replacer, space)\n// value any JavaScript value, usually an object or array.\n// replacer an optional parameter that determines how object\n// values are stringified for objects. It can be a\n// function or an array of strings.\n// space an optional parameter that specifies the indentation\n// of nested structures. If it is omitted, the text will\n// be packed without extra whitespace. If it is a number,\n// it will specify the number of spaces to indent at each\n// level. If it is a string (such as \"\\t\" or \" \"),\n// it contains the characters used to indent at each level.\n// This method produces a JSON text from a JavaScript value.\n// When an object value is found, if the object contains a toJSON\n// method, its toJSON method will be called and the result will be\n// stringified. A toJSON method does not serialize: it returns the\n// value represented by the name/value pair that should be serialized,\n// or undefined if nothing should be serialized. The toJSON method\n// will be passed the key associated with the value, and this will be\n// bound to the value.\n\n// For example, this would serialize Dates as ISO strings.\n\n// Date.prototype.toJSON = function (key) {\n// function f(n) {\n// // Format integers to have at least two digits.\n// return (n < 10)\n// ? \"0\" + n\n// : n;\n// }\n// return this.getUTCFullYear() + \"-\" +\n// f(this.getUTCMonth() + 1) + \"-\" +\n// f(this.getUTCDate()) + \"T\" +\n// f(this.getUTCHours()) + \":\" +\n// f(this.getUTCMinutes()) + \":\" +\n// f(this.getUTCSeconds()) + \"Z\";\n// };\n\n// You can provide an optional replacer method. It will be passed the\n// key and value of each member, with this bound to the containing\n// object. The value that is returned from your method will be\n// serialized. If your method returns undefined, then the member will\n// be excluded from the serialization.\n\n// If the replacer parameter is an array of strings, then it will be\n// used to select the members to be serialized. It filters the results\n// such that only members with keys listed in the replacer array are\n// stringified.\n\n// Values that do not have JSON representations, such as undefined or\n// functions, will not be serialized. Such values in objects will be\n// dropped; in arrays they will be replaced with null. You can use\n// a replacer function to replace those with JSON values.\n\n// JSON.stringify(undefined) returns undefined.\n\n// The optional space parameter produces a stringification of the\n// value that is filled with line breaks and indentation to make it\n// easier to read.\n\n// If the space parameter is a non-empty string, then that string will\n// be used for indentation. If the space parameter is a number, then\n// the indentation will be that many spaces.\n\n// Example:\n\n// text = JSON.stringify([\"e\", {pluribus: \"unum\"}]);\n// // text is '[\"e\",{\"pluribus\":\"unum\"}]'\n\n// text = JSON.stringify([\"e\", {pluribus: \"unum\"}], null, \"\\t\");\n// // text is '[\\n\\t\"e\",\\n\\t{\\n\\t\\t\"pluribus\": \"unum\"\\n\\t}\\n]'\n\n// text = JSON.stringify([new Date()], function (key, value) {\n// return this[key] instanceof Date\n// ? \"Date(\" + this[key] + \")\"\n// : value;\n// });\n// // text is '[\"Date(---current time---)\"]'\n\n// JSON.parse(text, reviver)\n// This method parses a JSON text to produce an object or array.\n// It can throw a SyntaxError exception.\n\n// The optional reviver parameter is a function that can filter and\n// transform the results. It receives each of the keys and values,\n// and its return value is used instead of the original value.\n// If it returns what it received, then the structure is not modified.\n// If it returns undefined then the member is deleted.\n\n// Example:\n\n// // Parse the text. Values that look like ISO date strings will\n// // be converted to Date objects.\n\n// myData = JSON.parse(text, function (key, value) {\n// var a;\n// if (typeof value === \"string\") {\n// a =\n// /^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}(?:\\.\\d*)?)Z$/.exec(value);\n// if (a) {\n// return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4],\n// +a[5], +a[6]));\n// }\n// }\n// return value;\n// });\n\n// myData = JSON.parse('[\"Date(09/09/2001)\"]', function (key, value) {\n// var d;\n// if (typeof value === \"string\" &&\n// value.slice(0, 5) === \"Date(\" &&\n// value.slice(-1) === \")\") {\n// d = new Date(value.slice(5, -1));\n// if (d) {\n// return d;\n// }\n// }\n// return value;\n// });\n\n// This is a reference implementation. You are free to copy, modify, or\n// redistribute.\n\n/*jslint\n eval, for, this\n*/\n\n/*property\n JSON, apply, call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours,\n getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join,\n lastIndex, length, parse, prototype, push, replace, slice, stringify,\n test, toJSON, toString, valueOf\n*/\n\n\n// Create a JSON object only if one does not already exist. We create the\n// methods in a closure to avoid creating global variables.\n\nif (typeof JSON !== \"object\") {\n JSON = {};\n}\n\n(function () {\n \"use strict\";\n\n var rx_one = /^[\\],:{}\\s]*$/;\n var rx_two = /\\\\(?:[\"\\\\\\/bfnrt]|u[0-9a-fA-F]{4})/g;\n var rx_three = /\"[^\"\\\\\\n\\r]*\"|true|false|null|-?\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?/g;\n var rx_four = /(?:^|:|,)(?:\\s*\\[)+/g;\n var rx_escapable = /[\\\\\"\\u0000-\\u001f\\u007f-\\u009f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g;\n var rx_dangerous = /[\\u0000\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g;\n\n function f(n) {\n // Format integers to have at least two digits.\n return n < 10\n ? \"0\" + n\n : n;\n }\n\n function this_value() {\n return this.valueOf();\n }\n\n if (typeof Date.prototype.toJSON !== \"function\") {\n\n Date.prototype.toJSON = function () {\n\n return isFinite(this.valueOf())\n ? this.getUTCFullYear() + \"-\" +\n f(this.getUTCMonth() + 1) + \"-\" +\n f(this.getUTCDate()) + \"T\" +\n f(this.getUTCHours()) + \":\" +\n f(this.getUTCMinutes()) + \":\" +\n f(this.getUTCSeconds()) + \"Z\"\n : null;\n };\n\n Boolean.prototype.toJSON = this_value;\n Number.prototype.toJSON = this_value;\n String.prototype.toJSON = this_value;\n }\n\n var gap;\n var indent;\n var meta;\n var rep;\n\n\n function quote(string) {\n\n// If the string contains no control characters, no quote characters, and no\n// backslash characters, then we can safely slap some quotes around it.\n// Otherwise we must also replace the offending characters with safe escape\n// sequences.\n\n rx_escapable.lastIndex = 0;\n return rx_escapable.test(string)\n ? \"\\\"\" + string.replace(rx_escapable, function (a) {\n var c = meta[a];\n return typeof c === \"string\"\n ? c\n : \"\\\\u\" + (\"0000\" + a.charCodeAt(0).toString(16)).slice(-4);\n }) + \"\\\"\"\n : \"\\\"\" + string + \"\\\"\";\n }\n\n\n function str(key, holder) {\n\n// Produce a string from holder[key].\n\n var i; // The loop counter.\n var k; // The member key.\n var v; // The member value.\n var length;\n var mind = gap;\n var partial;\n var value = holder[key];\n\n// If the value has a toJSON method, call it to obtain a replacement value.\n\n if (value && typeof value === \"object\" &&\n typeof value.toJSON === \"function\") {\n value = value.toJSON(key);\n }\n\n// If we were called with a replacer function, then call the replacer to\n// obtain a replacement value.\n\n if (typeof rep === \"function\") {\n value = rep.call(holder, key, value);\n }\n\n// What happens next depends on the value's type.\n\n switch (typeof value) {\n case \"string\":\n return quote(value);\n\n case \"number\":\n\n// JSON numbers must be finite. Encode non-finite numbers as null.\n\n return isFinite(value)\n ? String(value)\n : \"null\";\n\n case \"boolean\":\n case \"null\":\n\n// If the value is a boolean or null, convert it to a string. Note:\n// typeof null does not produce \"null\". The case is included here in\n// the remote chance that this gets fixed someday.\n\n return String(value);\n\n// If the type is \"object\", we might be dealing with an object or an array or\n// null.\n\n case \"object\":\n\n// Due to a specification blunder in ECMAScript, typeof null is \"object\",\n// so watch out for that case.\n\n if (!value) {\n return \"null\";\n }\n\n// Make an array to hold the partial results of stringifying this object value.\n\n gap += indent;\n partial = [];\n\n// Is the value an array?\n\n if (Object.prototype.toString.apply(value) === \"[object Array]\") {\n\n// The value is an array. Stringify every element. Use null as a placeholder\n// for non-JSON values.\n\n length = value.length;\n for (i = 0; i < length; i += 1) {\n partial[i] = str(i, value) || \"null\";\n }\n\n// Join all of the elements together, separated with commas, and wrap them in\n// brackets.\n\n v = partial.length === 0\n ? \"[]\"\n : gap\n ? \"[\\n\" + gap + partial.join(\",\\n\" + gap) + \"\\n\" + mind + \"]\"\n : \"[\" + partial.join(\",\") + \"]\";\n gap = mind;\n return v;\n }\n\n// If the replacer is an array, use it to select the members to be stringified.\n\n if (rep && typeof rep === \"object\") {\n length = rep.length;\n for (i = 0; i < length; i += 1) {\n if (typeof rep[i] === \"string\") {\n k = rep[i];\n v = str(k, value);\n if (v) {\n partial.push(quote(k) + (\n gap\n ? \": \"\n : \":\"\n ) + v);\n }\n }\n }\n } else {\n\n// Otherwise, iterate through all of the keys in the object.\n\n for (k in value) {\n if (Object.prototype.hasOwnProperty.call(value, k)) {\n v = str(k, value);\n if (v) {\n partial.push(quote(k) + (\n gap\n ? \": \"\n : \":\"\n ) + v);\n }\n }\n }\n }\n\n// Join all of the member texts together, separated with commas,\n// and wrap them in braces.\n\n v = partial.length === 0\n ? \"{}\"\n : gap\n ? \"{\\n\" + gap + partial.join(\",\\n\" + gap) + \"\\n\" + mind + \"}\"\n : \"{\" + partial.join(\",\") + \"}\";\n gap = mind;\n return v;\n }\n }\n\n// If the JSON object does not yet have a stringify method, give it one.\n\n if (typeof JSON.stringify !== \"function\") {\n meta = { // table of character substitutions\n \"\\b\": \"\\\\b\",\n \"\\t\": \"\\\\t\",\n \"\\n\": \"\\\\n\",\n \"\\f\": \"\\\\f\",\n \"\\r\": \"\\\\r\",\n \"\\\"\": \"\\\\\\\"\",\n \"\\\\\": \"\\\\\\\\\"\n };\n JSON.stringify = function (value, replacer, space) {\n\n// The stringify method takes a value and an optional replacer, and an optional\n// space parameter, and returns a JSON text. The replacer can be a function\n// that can replace values, or an array of strings that will select the keys.\n// A default replacer method can be provided. Use of the space parameter can\n// produce text that is more easily readable.\n\n var i;\n gap = \"\";\n indent = \"\";\n\n// If the space parameter is a number, make an indent string containing that\n// many spaces.\n\n if (typeof space === \"number\") {\n for (i = 0; i < space; i += 1) {\n indent += \" \";\n }\n\n// If the space parameter is a string, it will be used as the indent string.\n\n } else if (typeof space === \"string\") {\n indent = space;\n }\n\n// If there is a replacer, it must be a function or an array.\n// Otherwise, throw an error.\n\n rep = replacer;\n if (replacer && typeof replacer !== \"function\" &&\n (typeof replacer !== \"object\" ||\n typeof replacer.length !== \"number\")) {\n throw new Error(\"JSON.stringify\");\n }\n\n// Make a fake root object containing our value under the key of \"\".\n// Return the result of stringifying the value.\n\n return str(\"\", {\"\": value});\n };\n }\n\n\n// If the JSON object does not yet have a parse method, give it one.\n\n if (typeof JSON.parse !== \"function\") {\n JSON.parse = function (text, reviver) {\n\n// The parse method takes a text and an optional reviver function, and returns\n// a JavaScript value if the text is a valid JSON text.\n\n var j;\n\n function walk(holder, key) {\n\n// The walk method is used to recursively walk the resulting structure so\n// that modifications can be made.\n\n var k;\n var v;\n var value = holder[key];\n if (value && typeof value === \"object\") {\n for (k in value) {\n if (Object.prototype.hasOwnProperty.call(value, k)) {\n v = walk(value, k);\n if (v !== undefined) {\n value[k] = v;\n } else {\n delete value[k];\n }\n }\n }\n }\n return reviver.call(holder, key, value);\n }\n\n\n// Parsing happens in four stages. In the first stage, we replace certain\n// Unicode characters with escape sequences. JavaScript handles many characters\n// incorrectly, either silently deleting them, or treating them as line endings.\n\n text = String(text);\n rx_dangerous.lastIndex = 0;\n if (rx_dangerous.test(text)) {\n text = text.replace(rx_dangerous, function (a) {\n return \"\\\\u\" +\n (\"0000\" + a.charCodeAt(0).toString(16)).slice(-4);\n });\n }\n\n// In the second stage, we run the text against regular expressions that look\n// for non-JSON patterns. We are especially concerned with \"()\" and \"new\"\n// because they can cause invocation, and \"=\" because it can cause mutation.\n// But just to be safe, we want to reject all unexpected forms.\n\n// We split the second stage into 4 regexp operations in order to work around\n// crippling inefficiencies in IE's and Safari's regexp engines. First we\n// replace the JSON backslash pairs with \"@\" (a non-JSON character). Second, we\n// replace all simple value tokens with \"]\" characters. Third, we delete all\n// open brackets that follow a colon or comma or that begin the text. Finally,\n// we look to see that the remaining characters are only whitespace or \"]\" or\n// \",\" or \":\" or \"{\" or \"}\". If that is so, then the text is safe for eval.\n\n if (\n rx_one.test(\n text\n .replace(rx_two, \"@\")\n .replace(rx_three, \"]\")\n .replace(rx_four, \"\")\n )\n ) {\n\n// In the third stage we use the eval function to compile the text into a\n// JavaScript structure. The \"{\" operator is subject to a syntactic ambiguity\n// in JavaScript: it can begin a block or an object literal. We wrap the text\n// in parens to eliminate the ambiguity.\n\n j = eval(\"(\" + text + \")\");\n\n// In the optional fourth stage, we recursively walk the new structure, passing\n// each name/value pair to a reviver function for possible transformation.\n\n return (typeof reviver === \"function\")\n ? walk({\"\": j}, \"\")\n : j;\n }\n\n// If the text is not JSON parseable, then a SyntaxError is thrown.\n\n throw new SyntaxError(\"JSON.parse\");\n };\n }\n}());","var engine = require('../src/store-engine')\n\nvar storages = require('../storages/all')\nvar plugins = [require('../plugins/json2')]\n\nmodule.exports = engine.createStore(storages, plugins)\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = global || self, global.Mustache = factory());\n}(this, (function () { 'use strict';\n\n /*!\n * mustache.js - Logic-less {{mustache}} templates with JavaScript\n * http://github.com/janl/mustache.js\n */\n\n var objectToString = Object.prototype.toString;\n var isArray = Array.isArray || function isArrayPolyfill (object) {\n return objectToString.call(object) === '[object Array]';\n };\n\n function isFunction (object) {\n return typeof object === 'function';\n }\n\n /**\n * More correct typeof string handling array\n * which normally returns typeof 'object'\n */\n function typeStr (obj) {\n return isArray(obj) ? 'array' : typeof obj;\n }\n\n function escapeRegExp (string) {\n return string.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#\\s]/g, '\\\\$&');\n }\n\n /**\n * Null safe way of checking whether or not an object,\n * including its prototype, has a given property\n */\n function hasProperty (obj, propName) {\n return obj != null && typeof obj === 'object' && (propName in obj);\n }\n\n /**\n * Safe way of detecting whether or not the given thing is a primitive and\n * whether it has the given property\n */\n function primitiveHasOwnProperty (primitive, propName) {\n return (\n primitive != null\n && typeof primitive !== 'object'\n && primitive.hasOwnProperty\n && primitive.hasOwnProperty(propName)\n );\n }\n\n // Workaround for https://issues.apache.org/jira/browse/COUCHDB-577\n // See https://github.com/janl/mustache.js/issues/189\n var regExpTest = RegExp.prototype.test;\n function testRegExp (re, string) {\n return regExpTest.call(re, string);\n }\n\n var nonSpaceRe = /\\S/;\n function isWhitespace (string) {\n return !testRegExp(nonSpaceRe, string);\n }\n\n var entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/',\n '`': '`',\n '=': '='\n };\n\n function escapeHtml (string) {\n return String(string).replace(/[&<>\"'`=\\/]/g, function fromEntityMap (s) {\n return entityMap[s];\n });\n }\n\n var whiteRe = /\\s*/;\n var spaceRe = /\\s+/;\n var equalsRe = /\\s*=/;\n var curlyRe = /\\s*\\}/;\n var tagRe = /#|\\^|\\/|>|\\{|&|=|!/;\n\n /**\n * Breaks up the given `template` string into a tree of tokens. If the `tags`\n * argument is given here it must be an array with two string values: the\n * opening and closing tags used in the template (e.g. [ \"<%\", \"%>\" ]). Of\n * course, the default is to use mustaches (i.e. mustache.tags).\n *\n * A token is an array with at least 4 elements. The first element is the\n * mustache symbol that was used inside the tag, e.g. \"#\" or \"&\". If the tag\n * did not contain a symbol (i.e. {{myValue}}) this element is \"name\". For\n * all text that appears outside a symbol this element is \"text\".\n *\n * The second element of a token is its \"value\". For mustache tags this is\n * whatever else was inside the tag besides the opening symbol. For text tokens\n * this is the text itself.\n *\n * The third and fourth elements of the token are the start and end indices,\n * respectively, of the token in the original template.\n *\n * Tokens that are the root node of a subtree contain two more elements: 1) an\n * array of tokens in the subtree and 2) the index in the original template at\n * which the closing tag for that section begins.\n *\n * Tokens for partials also contain two more elements: 1) a string value of\n * indendation prior to that tag and 2) the index of that tag on that line -\n * eg a value of 2 indicates the partial is the third tag on this line.\n */\n function parseTemplate (template, tags) {\n if (!template)\n return [];\n var lineHasNonSpace = false;\n var sections = []; // Stack to hold section tokens\n var tokens = []; // Buffer to hold the tokens\n var spaces = []; // Indices of whitespace tokens on the current line\n var hasTag = false; // Is there a {{tag}} on the current line?\n var nonSpace = false; // Is there a non-space char on the current line?\n var indentation = ''; // Tracks indentation for tags that use it\n var tagIndex = 0; // Stores a count of number of tags encountered on a line\n\n // Strips all whitespace tokens array for the current line\n // if there was a {{#tag}} on it and otherwise only space.\n function stripSpace () {\n if (hasTag && !nonSpace) {\n while (spaces.length)\n delete tokens[spaces.pop()];\n } else {\n spaces = [];\n }\n\n hasTag = false;\n nonSpace = false;\n }\n\n var openingTagRe, closingTagRe, closingCurlyRe;\n function compileTags (tagsToCompile) {\n if (typeof tagsToCompile === 'string')\n tagsToCompile = tagsToCompile.split(spaceRe, 2);\n\n if (!isArray(tagsToCompile) || tagsToCompile.length !== 2)\n throw new Error('Invalid tags: ' + tagsToCompile);\n\n openingTagRe = new RegExp(escapeRegExp(tagsToCompile[0]) + '\\\\s*');\n closingTagRe = new RegExp('\\\\s*' + escapeRegExp(tagsToCompile[1]));\n closingCurlyRe = new RegExp('\\\\s*' + escapeRegExp('}' + tagsToCompile[1]));\n }\n\n compileTags(tags || mustache.tags);\n\n var scanner = new Scanner(template);\n\n var start, type, value, chr, token, openSection;\n while (!scanner.eos()) {\n start = scanner.pos;\n\n // Match any text between tags.\n value = scanner.scanUntil(openingTagRe);\n\n if (value) {\n for (var i = 0, valueLength = value.length; i < valueLength; ++i) {\n chr = value.charAt(i);\n\n if (isWhitespace(chr)) {\n spaces.push(tokens.length);\n indentation += chr;\n } else {\n nonSpace = true;\n lineHasNonSpace = true;\n indentation += ' ';\n }\n\n tokens.push([ 'text', chr, start, start + 1 ]);\n start += 1;\n\n // Check for whitespace on the current line.\n if (chr === '\\n') {\n stripSpace();\n indentation = '';\n tagIndex = 0;\n lineHasNonSpace = false;\n }\n }\n }\n\n // Match the opening tag.\n if (!scanner.scan(openingTagRe))\n break;\n\n hasTag = true;\n\n // Get the tag type.\n type = scanner.scan(tagRe) || 'name';\n scanner.scan(whiteRe);\n\n // Get the tag value.\n if (type === '=') {\n value = scanner.scanUntil(equalsRe);\n scanner.scan(equalsRe);\n scanner.scanUntil(closingTagRe);\n } else if (type === '{') {\n value = scanner.scanUntil(closingCurlyRe);\n scanner.scan(curlyRe);\n scanner.scanUntil(closingTagRe);\n type = '&';\n } else {\n value = scanner.scanUntil(closingTagRe);\n }\n\n // Match the closing tag.\n if (!scanner.scan(closingTagRe))\n throw new Error('Unclosed tag at ' + scanner.pos);\n\n if (type == '>') {\n token = [ type, value, start, scanner.pos, indentation, tagIndex, lineHasNonSpace ];\n } else {\n token = [ type, value, start, scanner.pos ];\n }\n tagIndex++;\n tokens.push(token);\n\n if (type === '#' || type === '^') {\n sections.push(token);\n } else if (type === '/') {\n // Check section nesting.\n openSection = sections.pop();\n\n if (!openSection)\n throw new Error('Unopened section \"' + value + '\" at ' + start);\n\n if (openSection[1] !== value)\n throw new Error('Unclosed section \"' + openSection[1] + '\" at ' + start);\n } else if (type === 'name' || type === '{' || type === '&') {\n nonSpace = true;\n } else if (type === '=') {\n // Set the tags for the next time around.\n compileTags(value);\n }\n }\n\n stripSpace();\n\n // Make sure there are no open sections when we're done.\n openSection = sections.pop();\n\n if (openSection)\n throw new Error('Unclosed section \"' + openSection[1] + '\" at ' + scanner.pos);\n\n return nestTokens(squashTokens(tokens));\n }\n\n /**\n * Combines the values of consecutive text tokens in the given `tokens` array\n * to a single token.\n */\n function squashTokens (tokens) {\n var squashedTokens = [];\n\n var token, lastToken;\n for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) {\n token = tokens[i];\n\n if (token) {\n if (token[0] === 'text' && lastToken && lastToken[0] === 'text') {\n lastToken[1] += token[1];\n lastToken[3] = token[3];\n } else {\n squashedTokens.push(token);\n lastToken = token;\n }\n }\n }\n\n return squashedTokens;\n }\n\n /**\n * Forms the given array of `tokens` into a nested tree structure where\n * tokens that represent a section have two additional items: 1) an array of\n * all tokens that appear in that section and 2) the index in the original\n * template that represents the end of that section.\n */\n function nestTokens (tokens) {\n var nestedTokens = [];\n var collector = nestedTokens;\n var sections = [];\n\n var token, section;\n for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) {\n token = tokens[i];\n\n switch (token[0]) {\n case '#':\n case '^':\n collector.push(token);\n sections.push(token);\n collector = token[4] = [];\n break;\n case '/':\n section = sections.pop();\n section[5] = token[2];\n collector = sections.length > 0 ? sections[sections.length - 1][4] : nestedTokens;\n break;\n default:\n collector.push(token);\n }\n }\n\n return nestedTokens;\n }\n\n /**\n * A simple string scanner that is used by the template parser to find\n * tokens in template strings.\n */\n function Scanner (string) {\n this.string = string;\n this.tail = string;\n this.pos = 0;\n }\n\n /**\n * Returns `true` if the tail is empty (end of string).\n */\n Scanner.prototype.eos = function eos () {\n return this.tail === '';\n };\n\n /**\n * Tries to match the given regular expression at the current position.\n * Returns the matched text if it can match, the empty string otherwise.\n */\n Scanner.prototype.scan = function scan (re) {\n var match = this.tail.match(re);\n\n if (!match || match.index !== 0)\n return '';\n\n var string = match[0];\n\n this.tail = this.tail.substring(string.length);\n this.pos += string.length;\n\n return string;\n };\n\n /**\n * Skips all text until the given regular expression can be matched. Returns\n * the skipped string, which is the entire tail if no match can be made.\n */\n Scanner.prototype.scanUntil = function scanUntil (re) {\n var index = this.tail.search(re), match;\n\n switch (index) {\n case -1:\n match = this.tail;\n this.tail = '';\n break;\n case 0:\n match = '';\n break;\n default:\n match = this.tail.substring(0, index);\n this.tail = this.tail.substring(index);\n }\n\n this.pos += match.length;\n\n return match;\n };\n\n /**\n * Represents a rendering context by wrapping a view object and\n * maintaining a reference to the parent context.\n */\n function Context (view, parentContext) {\n this.view = view;\n this.cache = { '.': this.view };\n this.parent = parentContext;\n }\n\n /**\n * Creates a new context using the given view with this context\n * as the parent.\n */\n Context.prototype.push = function push (view) {\n return new Context(view, this);\n };\n\n /**\n * Returns the value of the given name in this context, traversing\n * up the context hierarchy if the value is absent in this context's view.\n */\n Context.prototype.lookup = function lookup (name) {\n var cache = this.cache;\n\n var value;\n if (cache.hasOwnProperty(name)) {\n value = cache[name];\n } else {\n var context = this, intermediateValue, names, index, lookupHit = false;\n\n while (context) {\n if (name.indexOf('.') > 0) {\n intermediateValue = context.view;\n names = name.split('.');\n index = 0;\n\n /**\n * Using the dot notion path in `name`, we descend through the\n * nested objects.\n *\n * To be certain that the lookup has been successful, we have to\n * check if the last object in the path actually has the property\n * we are looking for. We store the result in `lookupHit`.\n *\n * This is specially necessary for when the value has been set to\n * `undefined` and we want to avoid looking up parent contexts.\n *\n * In the case where dot notation is used, we consider the lookup\n * to be successful even if the last \"object\" in the path is\n * not actually an object but a primitive (e.g., a string, or an\n * integer), because it is sometimes useful to access a property\n * of an autoboxed primitive, such as the length of a string.\n **/\n while (intermediateValue != null && index < names.length) {\n if (index === names.length - 1)\n lookupHit = (\n hasProperty(intermediateValue, names[index])\n || primitiveHasOwnProperty(intermediateValue, names[index])\n );\n\n intermediateValue = intermediateValue[names[index++]];\n }\n } else {\n intermediateValue = context.view[name];\n\n /**\n * Only checking against `hasProperty`, which always returns `false` if\n * `context.view` is not an object. Deliberately omitting the check\n * against `primitiveHasOwnProperty` if dot notation is not used.\n *\n * Consider this example:\n * ```\n * Mustache.render(\"The length of a football field is {{#length}}{{length}}{{/length}}.\", {length: \"100 yards\"})\n * ```\n *\n * If we were to check also against `primitiveHasOwnProperty`, as we do\n * in the dot notation case, then render call would return:\n *\n * \"The length of a football field is 9.\"\n *\n * rather than the expected:\n *\n * \"The length of a football field is 100 yards.\"\n **/\n lookupHit = hasProperty(context.view, name);\n }\n\n if (lookupHit) {\n value = intermediateValue;\n break;\n }\n\n context = context.parent;\n }\n\n cache[name] = value;\n }\n\n if (isFunction(value))\n value = value.call(this.view);\n\n return value;\n };\n\n /**\n * A Writer knows how to take a stream of tokens and render them to a\n * string, given a context. It also maintains a cache of templates to\n * avoid the need to parse the same template twice.\n */\n function Writer () {\n this.templateCache = {\n _cache: {},\n set: function set (key, value) {\n this._cache[key] = value;\n },\n get: function get (key) {\n return this._cache[key];\n },\n clear: function clear () {\n this._cache = {};\n }\n };\n }\n\n /**\n * Clears all cached templates in this writer.\n */\n Writer.prototype.clearCache = function clearCache () {\n if (typeof this.templateCache !== 'undefined') {\n this.templateCache.clear();\n }\n };\n\n /**\n * Parses and caches the given `template` according to the given `tags` or\n * `mustache.tags` if `tags` is omitted, and returns the array of tokens\n * that is generated from the parse.\n */\n Writer.prototype.parse = function parse (template, tags) {\n var cache = this.templateCache;\n var cacheKey = template + ':' + (tags || mustache.tags).join(':');\n var isCacheEnabled = typeof cache !== 'undefined';\n var tokens = isCacheEnabled ? cache.get(cacheKey) : undefined;\n\n if (tokens == undefined) {\n tokens = parseTemplate(template, tags);\n isCacheEnabled && cache.set(cacheKey, tokens);\n }\n return tokens;\n };\n\n /**\n * High-level method that is used to render the given `template` with\n * the given `view`.\n *\n * The optional `partials` argument may be an object that contains the\n * names and templates of partials that are used in the template. It may\n * also be a function that is used to load partial templates on the fly\n * that takes a single argument: the name of the partial.\n *\n * If the optional `config` argument is given here, then it should be an\n * object with a `tags` attribute or an `escape` attribute or both.\n * If an array is passed, then it will be interpreted the same way as\n * a `tags` attribute on a `config` object.\n *\n * The `tags` attribute of a `config` object must be an array with two\n * string values: the opening and closing tags used in the template (e.g.\n * [ \"<%\", \"%>\" ]). The default is to mustache.tags.\n *\n * The `escape` attribute of a `config` object must be a function which\n * accepts a string as input and outputs a safely escaped string.\n * If an `escape` function is not provided, then an HTML-safe string\n * escaping function is used as the default.\n */\n Writer.prototype.render = function render (template, view, partials, config) {\n var tags = this.getConfigTags(config);\n var tokens = this.parse(template, tags);\n var context = (view instanceof Context) ? view : new Context(view, undefined);\n return this.renderTokens(tokens, context, partials, template, config);\n };\n\n /**\n * Low-level method that renders the given array of `tokens` using\n * the given `context` and `partials`.\n *\n * Note: The `originalTemplate` is only ever used to extract the portion\n * of the original template that was contained in a higher-order section.\n * If the template doesn't use higher-order sections, this argument may\n * be omitted.\n */\n Writer.prototype.renderTokens = function renderTokens (tokens, context, partials, originalTemplate, config) {\n var buffer = '';\n\n var token, symbol, value;\n for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) {\n value = undefined;\n token = tokens[i];\n symbol = token[0];\n\n if (symbol === '#') value = this.renderSection(token, context, partials, originalTemplate, config);\n else if (symbol === '^') value = this.renderInverted(token, context, partials, originalTemplate, config);\n else if (symbol === '>') value = this.renderPartial(token, context, partials, config);\n else if (symbol === '&') value = this.unescapedValue(token, context);\n else if (symbol === 'name') value = this.escapedValue(token, context, config);\n else if (symbol === 'text') value = this.rawValue(token);\n\n if (value !== undefined)\n buffer += value;\n }\n\n return buffer;\n };\n\n Writer.prototype.renderSection = function renderSection (token, context, partials, originalTemplate, config) {\n var self = this;\n var buffer = '';\n var value = context.lookup(token[1]);\n\n // This function is used to render an arbitrary template\n // in the current context by higher-order sections.\n function subRender (template) {\n return self.render(template, context, partials, config);\n }\n\n if (!value) return;\n\n if (isArray(value)) {\n for (var j = 0, valueLength = value.length; j < valueLength; ++j) {\n buffer += this.renderTokens(token[4], context.push(value[j]), partials, originalTemplate, config);\n }\n } else if (typeof value === 'object' || typeof value === 'string' || typeof value === 'number') {\n buffer += this.renderTokens(token[4], context.push(value), partials, originalTemplate, config);\n } else if (isFunction(value)) {\n if (typeof originalTemplate !== 'string')\n throw new Error('Cannot use higher-order sections without the original template');\n\n // Extract the portion of the original template that the section contains.\n value = value.call(context.view, originalTemplate.slice(token[3], token[5]), subRender);\n\n if (value != null)\n buffer += value;\n } else {\n buffer += this.renderTokens(token[4], context, partials, originalTemplate, config);\n }\n return buffer;\n };\n\n Writer.prototype.renderInverted = function renderInverted (token, context, partials, originalTemplate, config) {\n var value = context.lookup(token[1]);\n\n // Use JavaScript's definition of falsy. Include empty arrays.\n // See https://github.com/janl/mustache.js/issues/186\n if (!value || (isArray(value) && value.length === 0))\n return this.renderTokens(token[4], context, partials, originalTemplate, config);\n };\n\n Writer.prototype.indentPartial = function indentPartial (partial, indentation, lineHasNonSpace) {\n var filteredIndentation = indentation.replace(/[^ \\t]/g, '');\n var partialByNl = partial.split('\\n');\n for (var i = 0; i < partialByNl.length; i++) {\n if (partialByNl[i].length && (i > 0 || !lineHasNonSpace)) {\n partialByNl[i] = filteredIndentation + partialByNl[i];\n }\n }\n return partialByNl.join('\\n');\n };\n\n Writer.prototype.renderPartial = function renderPartial (token, context, partials, config) {\n if (!partials) return;\n var tags = this.getConfigTags(config);\n\n var value = isFunction(partials) ? partials(token[1]) : partials[token[1]];\n if (value != null) {\n var lineHasNonSpace = token[6];\n var tagIndex = token[5];\n var indentation = token[4];\n var indentedValue = value;\n if (tagIndex == 0 && indentation) {\n indentedValue = this.indentPartial(value, indentation, lineHasNonSpace);\n }\n var tokens = this.parse(indentedValue, tags);\n return this.renderTokens(tokens, context, partials, indentedValue, config);\n }\n };\n\n Writer.prototype.unescapedValue = function unescapedValue (token, context) {\n var value = context.lookup(token[1]);\n if (value != null)\n return value;\n };\n\n Writer.prototype.escapedValue = function escapedValue (token, context, config) {\n var escape = this.getConfigEscape(config) || mustache.escape;\n var value = context.lookup(token[1]);\n if (value != null)\n return (typeof value === 'number' && escape === mustache.escape) ? String(value) : escape(value);\n };\n\n Writer.prototype.rawValue = function rawValue (token) {\n return token[1];\n };\n\n Writer.prototype.getConfigTags = function getConfigTags (config) {\n if (isArray(config)) {\n return config;\n }\n else if (config && typeof config === 'object') {\n return config.tags;\n }\n else {\n return undefined;\n }\n };\n\n Writer.prototype.getConfigEscape = function getConfigEscape (config) {\n if (config && typeof config === 'object' && !isArray(config)) {\n return config.escape;\n }\n else {\n return undefined;\n }\n };\n\n var mustache = {\n name: 'mustache.js',\n version: '4.2.0',\n tags: [ '{{', '}}' ],\n clearCache: undefined,\n escape: undefined,\n parse: undefined,\n render: undefined,\n Scanner: undefined,\n Context: undefined,\n Writer: undefined,\n /**\n * Allows a user to override the default caching strategy, by providing an\n * object with set, get and clear methods. This can also be used to disable\n * the cache by setting it to the literal `undefined`.\n */\n set templateCache (cache) {\n defaultWriter.templateCache = cache;\n },\n /**\n * Gets the default or overridden caching object from the default writer.\n */\n get templateCache () {\n return defaultWriter.templateCache;\n }\n };\n\n // All high-level mustache.* functions use this writer.\n var defaultWriter = new Writer();\n\n /**\n * Clears all cached templates in the default writer.\n */\n mustache.clearCache = function clearCache () {\n return defaultWriter.clearCache();\n };\n\n /**\n * Parses and caches the given template in the default writer and returns the\n * array of tokens it contains. Doing this ahead of time avoids the need to\n * parse templates on the fly as they are rendered.\n */\n mustache.parse = function parse (template, tags) {\n return defaultWriter.parse(template, tags);\n };\n\n /**\n * Renders the `template` with the given `view`, `partials`, and `config`\n * using the default writer.\n */\n mustache.render = function render (template, view, partials, config) {\n if (typeof template !== 'string') {\n throw new TypeError('Invalid template! Template should be a \"string\" ' +\n 'but \"' + typeStr(template) + '\" was given as the first ' +\n 'argument for mustache#render(template, view, partials)');\n }\n\n return defaultWriter.render(template, view, partials, config);\n };\n\n // Export the escaping function so that the user may override it.\n // See https://github.com/janl/mustache.js/issues/244\n mustache.escape = escapeHtml;\n\n // Export these mainly for testing, but also for advanced usage.\n mustache.Scanner = Scanner;\n mustache.Context = Context;\n mustache.Writer = Writer;\n\n return mustache;\n\n})));\n","module.exports = require(\"regenerator-runtime\");\n","var util = require('../src/util')\nvar Global = util.Global\n\nmodule.exports = {\n\tname: 'localStorage',\n\tread: read,\n\twrite: write,\n\teach: each,\n\tremove: remove,\n\tclearAll: clearAll,\n}\n\nfunction localStorage() {\n\treturn Global.localStorage\n}\n\nfunction read(key) {\n\treturn localStorage().getItem(key)\n}\n\nfunction write(key, data) {\n\treturn localStorage().setItem(key, data)\n}\n\nfunction each(fn) {\n\tfor (var i = localStorage().length - 1; i >= 0; i--) {\n\t\tvar key = localStorage().key(i)\n\t\tfn(read(key), key)\n\t}\n}\n\nfunction remove(key) {\n\treturn localStorage().removeItem(key)\n}\n\nfunction clearAll() {\n\treturn localStorage().clear()\n}\n","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(timeoutErrorMessage, config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","module.exports = json2Plugin\n\nfunction json2Plugin() {\n\trequire('./lib/json2')\n\treturn {}\n}\n","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","// oldFF-globalStorage provides storage for Firefox\n// versions 6 and 7, where no localStorage, etc\n// is available.\n\nvar util = require('../src/util')\nvar Global = util.Global\n\nmodule.exports = {\n\tname: 'oldFF-globalStorage',\n\tread: read,\n\twrite: write,\n\teach: each,\n\tremove: remove,\n\tclearAll: clearAll,\n}\n\nvar globalStorage = Global.globalStorage\n\nfunction read(key) {\n\treturn globalStorage[key]\n}\n\nfunction write(key, data) {\n\tglobalStorage[key] = data\n}\n\nfunction each(fn) {\n\tfor (var i = globalStorage.length - 1; i >= 0; i--) {\n\t\tvar key = globalStorage.key(i)\n\t\tfn(globalStorage[key], key)\n\t}\n}\n\nfunction remove(key) {\n\treturn globalStorage.removeItem(key)\n}\n\nfunction clearAll() {\n\teach(function(key, _) {\n\t\tdelete globalStorage[key]\n\t})\n}\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n"],"sourceRoot":""}