{"version":3,"file":"sw-pleroma.js","mappings":"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","sources":["webpack://pleroma_fe/./src/i18n/ar.json","webpack://pleroma_fe/./src/i18n/ca.json","webpack://pleroma_fe/./src/i18n/cs.json","webpack://pleroma_fe/./src/i18n/de.json","webpack://pleroma_fe/./src/i18n/en.json","webpack://pleroma_fe/./src/i18n/eo.json","webpack://pleroma_fe/./src/i18n/es.json","webpack://pleroma_fe/./src/i18n/et.json","webpack://pleroma_fe/./src/i18n/eu.json","webpack://pleroma_fe/./src/i18n/fi.json","webpack://pleroma_fe/./src/i18n/fr.json","webpack://pleroma_fe/./src/i18n/ga.json","webpack://pleroma_fe/./src/i18n/he.json","webpack://pleroma_fe/./src/i18n/hu.json","webpack://pleroma_fe/./src/i18n/it.json","webpack://pleroma_fe/./src/i18n/ja_easy.json","webpack://pleroma_fe/./src/i18n/ja_pedantic.json","webpack://pleroma_fe/./src/i18n/ko.json","webpack://pleroma_fe/./src/i18n/nb.json","webpack://pleroma_fe/./src/i18n/nl.json","webpack://pleroma_fe/./src/i18n/oc.json","webpack://pleroma_fe/./src/i18n/pl.json","webpack://pleroma_fe/./src/i18n/pt.json","webpack://pleroma_fe/./src/i18n/ro.json","webpack://pleroma_fe/./src/i18n/ru.json","webpack://pleroma_fe/./src/i18n/sk.json","webpack://pleroma_fe/./src/i18n/te.json","webpack://pleroma_fe/./src/i18n/zh.json","webpack://pleroma_fe/./node_modules/escape-html/index.js","webpack://pleroma_fe/./node_modules/localforage/dist/localforage.js","webpack://pleroma_fe/./node_modules/lodash/_DataView.js","webpack://pleroma_fe/./node_modules/lodash/_Hash.js","webpack://pleroma_fe/./node_modules/lodash/_ListCache.js","webpack://pleroma_fe/./node_modules/lodash/_Map.js","webpack://pleroma_fe/./node_modules/lodash/_MapCache.js","webpack://pleroma_fe/./node_modules/lodash/_Promise.js","webpack://pleroma_fe/./node_modules/lodash/_Set.js","webpack://pleroma_fe/./node_modules/lodash/_SetCache.js","webpack://pleroma_fe/./node_modules/lodash/_Stack.js","webpack://pleroma_fe/./node_modules/lodash/_Symbol.js","webpack://pleroma_fe/./node_modules/lodash/_Uint8Array.js","webpack://pleroma_fe/./node_modules/lodash/_WeakMap.js","webpack://pleroma_fe/./node_modules/lodash/_arrayFilter.js","webpack://pleroma_fe/./node_modules/lodash/_arrayLikeKeys.js","webpack://pleroma_fe/./node_modules/lodash/_arrayMap.js","webpack://pleroma_fe/./node_modules/lodash/_arrayPush.js","webpack://pleroma_fe/./node_modules/lodash/_arraySome.js","webpack://pleroma_fe/./node_modules/lodash/_assocIndexOf.js","webpack://pleroma_fe/./node_modules/lodash/_baseEach.js","webpack://pleroma_fe/./node_modules/lodash/_baseFilter.js","webpack://pleroma_fe/./node_modules/lodash/_baseFor.js","webpack://pleroma_fe/./node_modules/lodash/_baseForOwn.js","webpack://pleroma_fe/./node_modules/lodash/_baseGet.js","webpack://pleroma_fe/./node_modules/lodash/_baseGetAllKeys.js","webpack://pleroma_fe/./node_modules/lodash/_baseGetTag.js","webpack://pleroma_fe/./node_modules/lodash/_baseHasIn.js","webpack://pleroma_fe/./node_modules/lodash/_baseIsArguments.js","webpack://pleroma_fe/./node_modules/lodash/_baseIsEqual.js","webpack://pleroma_fe/./node_modules/lodash/_baseIsEqualDeep.js","webpack://pleroma_fe/./node_modules/lodash/_baseIsMatch.js","webpack://pleroma_fe/./node_modules/lodash/_baseIsNative.js","webpack://pleroma_fe/./node_modules/lodash/_baseIsTypedArray.js","webpack://pleroma_fe/./node_modules/lodash/_baseIteratee.js","webpack://pleroma_fe/./node_modules/lodash/_baseKeys.js","webpack://pleroma_fe/./node_modules/lodash/_baseMatches.js","webpack://pleroma_fe/./node_modules/lodash/_baseMatchesProperty.js","webpack://pleroma_fe/./node_modules/lodash/_baseProperty.js","webpack://pleroma_fe/./node_modules/lodash/_basePropertyDeep.js","webpack://pleroma_fe/./node_modules/lodash/_baseTimes.js","webpack://pleroma_fe/./node_modules/lodash/_baseToString.js","webpack://pleroma_fe/./node_modules/lodash/_baseUnary.js","webpack://pleroma_fe/./node_modules/lodash/_cacheHas.js","webpack://pleroma_fe/./node_modules/lodash/_castPath.js","webpack://pleroma_fe/./node_modules/lodash/_coreJsData.js","webpack://pleroma_fe/./node_modules/lodash/_createBaseEach.js","webpack://pleroma_fe/./node_modules/lodash/_createBaseFor.js","webpack://pleroma_fe/./node_modules/lodash/_equalArrays.js","webpack://pleroma_fe/./node_modules/lodash/_equalByTag.js","webpack://pleroma_fe/./node_modules/lodash/_equalObjects.js","webpack://pleroma_fe/./node_modules/lodash/_freeGlobal.js","webpack://pleroma_fe/./node_modules/lodash/_getAllKeys.js","webpack://pleroma_fe/./node_modules/lodash/_getMapData.js","webpack://pleroma_fe/./node_modules/lodash/_getMatchData.js","webpack://pleroma_fe/./node_modules/lodash/_getNative.js","webpack://pleroma_fe/./node_modules/lodash/_getRawTag.js","webpack://pleroma_fe/./node_modules/lodash/_getSymbols.js","webpack://pleroma_fe/./node_modules/lodash/_getTag.js","webpack://pleroma_fe/./node_modules/lodash/_getValue.js","webpack://pleroma_fe/./node_modules/lodash/_hasPath.js","webpack://pleroma_fe/./node_modules/lodash/_hashClear.js","webpack://pleroma_fe/./node_modules/lodash/_hashDelete.js","webpack://pleroma_fe/./node_modules/lodash/_hashGet.js","webpack://pleroma_fe/./node_modules/lodash/_hashHas.js","webpack://pleroma_fe/./node_modules/lodash/_hashSet.js","webpack://pleroma_fe/./node_modules/lodash/_isIndex.js","webpack://pleroma_fe/./node_modules/lodash/_isKey.js","webpack://pleroma_fe/./node_modules/lodash/_isKeyable.js","webpack://pleroma_fe/./node_modules/lodash/_isMasked.js","webpack://pleroma_fe/./node_modules/lodash/_isPrototype.js","webpack://pleroma_fe/./node_modules/lodash/_isStrictComparable.js","webpack://pleroma_fe/./node_modules/lodash/_listCacheClear.js","webpack://pleroma_fe/./node_modules/lodash/_listCacheDelete.js","webpack://pleroma_fe/./node_modules/lodash/_listCacheGet.js","webpack://pleroma_fe/./node_modules/lodash/_listCacheHas.js","webpack://pleroma_fe/./node_modules/lodash/_listCacheSet.js","webpack://pleroma_fe/./node_modules/lodash/_mapCacheClear.js","webpack://pleroma_fe/./node_modules/lodash/_mapCacheDelete.js","webpack://pleroma_fe/./node_modules/lodash/_mapCacheGet.js","webpack://pleroma_fe/./node_modules/lodash/_mapCacheHas.js","webpack://pleroma_fe/./node_modules/lodash/_mapCacheSet.js","webpack://pleroma_fe/./node_modules/lodash/_mapToArray.js","webpack://pleroma_fe/./node_modules/lodash/_matchesStrictComparable.js","webpack://pleroma_fe/./node_modules/lodash/_memoizeCapped.js","webpack://pleroma_fe/./node_modules/lodash/_nativeCreate.js","webpack://pleroma_fe/./node_modules/lodash/_nativeKeys.js","webpack://pleroma_fe/./node_modules/lodash/_nodeUtil.js","webpack://pleroma_fe/./node_modules/lodash/_objectToString.js","webpack://pleroma_fe/./node_modules/lodash/_overArg.js","webpack://pleroma_fe/./node_modules/lodash/_root.js","webpack://pleroma_fe/./node_modules/lodash/_setCacheAdd.js","webpack://pleroma_fe/./node_modules/lodash/_setCacheHas.js","webpack://pleroma_fe/./node_modules/lodash/_setToArray.js","webpack://pleroma_fe/./node_modules/lodash/_stackClear.js","webpack://pleroma_fe/./node_modules/lodash/_stackDelete.js","webpack://pleroma_fe/./node_modules/lodash/_stackGet.js","webpack://pleroma_fe/./node_modules/lodash/_stackHas.js","webpack://pleroma_fe/./node_modules/lodash/_stackSet.js","webpack://pleroma_fe/./node_modules/lodash/_stringToPath.js","webpack://pleroma_fe/./node_modules/lodash/_toKey.js","webpack://pleroma_fe/./node_modules/lodash/_toSource.js","webpack://pleroma_fe/./node_modules/lodash/eq.js","webpack://pleroma_fe/./node_modules/lodash/filter.js","webpack://pleroma_fe/./node_modules/lodash/get.js","webpack://pleroma_fe/./node_modules/lodash/hasIn.js","webpack://pleroma_fe/./node_modules/lodash/identity.js","webpack://pleroma_fe/./node_modules/lodash/isArguments.js","webpack://pleroma_fe/./node_modules/lodash/isArray.js","webpack://pleroma_fe/./node_modules/lodash/isArrayLike.js","webpack://pleroma_fe/./node_modules/lodash/isBuffer.js","webpack://pleroma_fe/./node_modules/lodash/isFunction.js","webpack://pleroma_fe/./node_modules/lodash/isLength.js","webpack://pleroma_fe/./node_modules/lodash/isObject.js","webpack://pleroma_fe/./node_modules/lodash/isObjectLike.js","webpack://pleroma_fe/./node_modules/lodash/isSymbol.js","webpack://pleroma_fe/./node_modules/lodash/isTypedArray.js","webpack://pleroma_fe/./node_modules/lodash/keys.js","webpack://pleroma_fe/./node_modules/lodash/memoize.js","webpack://pleroma_fe/./node_modules/lodash/property.js","webpack://pleroma_fe/./node_modules/lodash/stubArray.js","webpack://pleroma_fe/./node_modules/lodash/stubFalse.js","webpack://pleroma_fe/./node_modules/lodash/toString.js","webpack://pleroma_fe/./node_modules/parse-link-header/index.js","webpack://pleroma_fe/./node_modules/punycode/punycode.js","webpack://pleroma_fe/./node_modules/querystring/decode.js","webpack://pleroma_fe/./node_modules/querystring/encode.js","webpack://pleroma_fe/./node_modules/querystring/index.js","webpack://pleroma_fe/./node_modules/serviceworker-webpack5-plugin/lib/runtime.js","webpack://pleroma_fe/./node_modules/url/url.js","webpack://pleroma_fe/./node_modules/url/util.js","webpack://pleroma_fe/./node_modules/xtend/immutable.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/regeneratorRuntime.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/typeof.js","webpack://pleroma_fe/./node_modules/@babel/runtime/regenerator/index.js","webpack://pleroma_fe/webpack/bootstrap","webpack://pleroma_fe/webpack/runtime/compat get default export","webpack://pleroma_fe/webpack/runtime/define property getters","webpack://pleroma_fe/webpack/runtime/global","webpack://pleroma_fe/webpack/runtime/hasOwnProperty shorthand","webpack://pleroma_fe/webpack/runtime/make namespace object","webpack://pleroma_fe/webpack/runtime/node module decorator","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://pleroma_fe/./src/services/favicon_service/favicon_service.js","webpack://pleroma_fe/./src/services/notification_utils/notification_utils.js","webpack://pleroma_fe/./node_modules/punycode.js/punycode.es6.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://pleroma_fe/./src/services/entity_normalizer/entity_normalizer.service.js","webpack://pleroma_fe/./node_modules/@intlify/shared/dist/shared.esm-bundler.js","webpack://pleroma_fe/./node_modules/@intlify/message-compiler/dist/message-compiler.mjs","webpack://pleroma_fe/./node_modules/@intlify/devtools-if/dist/devtools-if.esm-bundler.js","webpack://pleroma_fe/./node_modules/@intlify/core-base/dist/core-base.esm-bundler.js","webpack://pleroma_fe/./node_modules/@vue/shared/dist/shared.esm-bundler.js","webpack://pleroma_fe/./node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","webpack://pleroma_fe/./node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","webpack://pleroma_fe/./node_modules/vue-i18n/dist/vue-i18n.runtime.esm-bundler.js","webpack://pleroma_fe/./src/i18n/service_worker_messages.js","webpack://pleroma_fe/./src/sw.js"],"sourcesContent":["export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"منشور مجهول، جارٍ البحث عنه…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"أعجِب بمنشورك\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"يُتابعك\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"تحميل الإشعارات الأقدم\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"الاشعارات\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"مقروء!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"شارَك منشورك\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"خطأ أثناء جلب الاشعارات: \", _interpolate(_list(0))])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"يريد متابعتك\"])},\n \"poll_ended\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"انتهى الاستطلاع\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"لا مزيد من الإشعارات\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"تفاعل بـ\", _interpolate(_list(0))])},\n \"submitted_report\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"أرسل بلاغًا\"])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"انتقلَ إلى\"])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Publicació desconeguda, s'està cercant…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ha marcat un estat teu\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ha començat a seguir-te\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Carrega més notificacions\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Notificacions\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Llegit!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ha repetit el teu estat\"])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"migrat a\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No més notificacions\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"et vol seguir\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"ha reaccionat amb \", _interpolate(_list(0))])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Error obtenint notificacions: \", _interpolate(_list(0))])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Neznámý příspěvek, hledám jej…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"si oblíbil/a váš příspěvek\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vás nyní sleduje\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Načíst starší oznámení\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Oznámení\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Přečíst!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"zopakoval/a váš příspěvek\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Žádná další oznámení\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Nastala chyba při načítání oznámení: \", _interpolate(_list(0))])},\n \"unread_announcements\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_named(\"num\")), \" nepřečtené oznámení\"]), _normalize([_interpolate(_named(\"num\")), \" nepřečtených oznámení\"])])},\n \"unread_chats\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_named(\"num\")), \" nepřečtených zpráv\"]), _normalize([_interpolate(_named(\"num\")), \" nepřečtených zpráv\"])])},\n \"unread_follow_requests\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_named(\"num\")), \" nový požadavek o sledování\"]), _normalize([_interpolate(_named(\"num\")), \" nových požadavků o sledování\"])])},\n \"configuration_tip\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Může upravit co zde zobrazovat v \", _interpolate(_named(\"theSettings\")), \". \", _interpolate(_named(\"dismiss\"))])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vás chce sledovat\"])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"migroval na\"])},\n \"poll_ended\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"anketa skončila\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"reagoval/a s \", _interpolate(_list(0))])},\n \"submitted_report\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Odeslal/a stížnost\"])},\n \"configuration_tip_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nastavení\"])},\n \"configuration_tip_dismiss\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Již nezobrazovat\"])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unbekannte Nachricht, suche danach…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"favorisierte deine Nachricht\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"folgt dir\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ältere Benachrichtigungen laden\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Benachrichtigungen\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gelesen!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wiederholte deine Nachricht\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"möchte dir folgen\"])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"migrierte zu\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"reagierte mit \", _interpolate(_list(0))])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keine Benachrichtigungen mehr\"])},\n \"error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error beim laden von Neuigkeiten\"])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unknown status, searching for it…\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Error fetching notifications: \", _interpolate(_list(0))])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"favorited your status\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"followed you\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wants to follow you\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Load older notifications\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Notifications\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Read!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"repeated your status\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No more notifications\"])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"migrated to\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"reacted with \", _interpolate(_list(0))])},\n \"submitted_report\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"submitted a report\"])},\n \"poll_ended\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"poll has ended\"])},\n \"unread_announcements\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_named(\"num\")), \" unread announcement\"]), _normalize([_interpolate(_named(\"num\")), \" unread announcements\"])])},\n \"unread_chats\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_named(\"num\")), \" unread chat\"]), _normalize([_interpolate(_named(\"num\")), \" unread chats\"])])},\n \"unread_follow_requests\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_named(\"num\")), \" new follow request\"]), _normalize([_interpolate(_named(\"num\")), \" new follow requests\"])])},\n \"configuration_tip\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"You can customize what to display here in \", _interpolate(_named(\"theSettings\")), \". \", _interpolate(_named(\"dismiss\"))])},\n \"configuration_tip_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"the settings\"])},\n \"configuration_tip_dismiss\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Do not show again\"])},\n \"subscribed_status\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"posted\"])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nekonata afiŝo, serĉante ĝin…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ŝatis vian afiŝon\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ekabonis vin\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enlegi pli malnovajn sciigojn\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sciigoj\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Legite!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ripetis vian afiŝon\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Neniuj pliaj sciigoj\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"reagis per \", _interpolate(_list(0))])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"migris al\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"volas vin aboni\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Eraris akirado de sciigoj: \", _interpolate(_list(0))])},\n \"submitted_report\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sendis raporton\"])},\n \"poll_ended\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"enketo finiĝis\"])},\n \"unread_chats\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_named(\"num\")), \" nelegita babilo\"]), _normalize([_interpolate(_named(\"num\")), \" nelegitaj babiloj\"])])},\n \"unread_follow_requests\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_named(\"num\")), \" nova abonpeto\"]), _normalize([_interpolate(_named(\"num\")), \" novaj abonpetoj\"])])},\n \"configuration_tip\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Vi povas ŝanĝi, kio montriĝos ĉi tie en \", _interpolate(_named(\"theSettings\")), \". \", _interpolate(_named(\"dismiss\"))])},\n \"configuration_tip_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"la agordoj\"])},\n \"unread_announcements\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_named(\"num\")), \" nelegita anonco\"]), _normalize([_interpolate(_named(\"num\")), \" nelegitaj anoncoj\"])])},\n \"configuration_tip_dismiss\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ne remontri plu\"])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Estado desconocido, buscándolo…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"le gusta tu estado\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"empezó a seguirte\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cargar notificaciones antiguas\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Notificaciones\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"¡Leído!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"repitió tu estado\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No hay más notificaciones\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"reaccionó con \", _interpolate(_list(0))])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"migrado a\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"quiere seguirte\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Error obteniendo notificaciones:\", _interpolate(_list(0))])}\n }\n}","export default {\n \"notifications\": {\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"alustas sinu jälgimist\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Teated\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Loe!\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"reageeris \", _interpolate(_list(0))])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"kolis\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rohkem teateid ei ole\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"taaspostitas su staatuse\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Laadi vanemad teated\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"soovib Teid jälgida\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"lisas su staatuse lemmikuks\"])},\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tundmatu staatus, otsin…\"])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Egoera ezezaguna, bilatzen…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"zure mezua gogoko du\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zu jarraitzen zaitu\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kargatu jakinarazpen zaharragoak\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Jakinarazpenak\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Irakurrita!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"zure mezua errepikatu du\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ez dago jakinarazpen gehiago\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"kin erreakzionatu zuen\"])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"hona migratua:\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"jarraitu nahi zaitu\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Errorea jakinarazpenak eskuratzean: \", _interpolate(_list(0))])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Viestiä ei löydetty…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"tykkäsi viestistäsi\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"seuraa sinua\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lataa vanhempia ilmoituksia\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ilmoitukset\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lue!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"toisti viestisi\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ei enempää ilmoituksia\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"lisäsi reaktion \", _interpolate(_list(0))])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"siirtyi sivulle\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"haluaa seurata sinua\"])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Message inconnu, recherche en cours…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"a aimé votre statut\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vous suit\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Charger les notifications précédentes\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Notifications\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lu !\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"a partagé votre statut\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aucune notification supplémentaire\"])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"a migré à\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"a réagi avec \", _interpolate(_list(0))])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"veut vous suivre\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Erreur de chargement des notifications : \", _interpolate(_list(0))])},\n \"poll_ended\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sondage terminé\"])},\n \"submitted_report\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rapport envoyé\"])},\n \"unread_announcements\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_named(\"num\")), \" annonce non lue\"]), _normalize([_interpolate(_named(\"num\")), \" annonces non lues\"])])},\n \"unread_chats\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_named(\"num\")), \" message non lu\"]), _normalize([_interpolate(_named(\"num\")), \" messages non lus\"])])},\n \"configuration_tip_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"les préférences\"])},\n \"unread_follow_requests\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_named(\"num\")), \" nouvelle demande de suivi\"]), _normalize([_interpolate(_named(\"num\")), \" nouvelles demandes de suivi\"])])},\n \"configuration_tip\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Vous pouvez personnaliser ce qui est affiché ici dans \", _interpolate(_named(\"theSettings\")), \". \", _interpolate(_named(\"dismiss\"))])},\n \"configuration_tip_dismiss\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ne plus montrer\"])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Post anaithnid. Cuardach dó…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"toghadh le do phost\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"lean tú\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Luchtaigh fógraí aosta\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fógraí\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Léigh!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"athphostáil tú\"])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"סטאטוס לא ידוע, מחפש…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"אהב את הסטטוס שלך\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"עקב אחריך\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"טען התראות ישנות\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"התראות\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"קרא!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"חזר על הסטטוס שלך\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"לא עוד התראות\"])}\n }\n}","export default {\n \"notifications\": {\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"követ téged\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Értesítések\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Olvasva!\"])}\n }\n}","export default {\n \"notifications\": {\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ti segue\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Notifiche\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Letto!\"])},\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Stato sconosciuto, lo sto cercando…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ha gradito\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Carica notifiche precedenti\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ha condiviso il tuo messaggio\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vuole seguirti\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fine delle notifiche\"])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"è migrato verso\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"ha reagito con \", _interpolate(_list(0))])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Errore nel caricare le notifiche: \", _interpolate(_list(0))])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ステータスがみつかりません。さがしています…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あなたのステータスがおきにいりされました\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォローされました\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ふるいつうちをみる\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"つうち\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"よんだ!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あなたのステータスがリピートされました\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"つうちはありません\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"つうちをとりにいくことに、しっぱいしました: \", _interpolate(_list(0))])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あなたをフォローしたいです\"])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"インスタンスを、ひっこしました\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" でリアクションしました\"])},\n \"poll_ended\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"とうひょうが、おわりました\"])},\n \"submitted_report\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"つうほうしました\"])},\n \"unread_announcements\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"まだ よんでいない おしらせが \", _interpolate(_named(\"num\")), \"こ あります\"])},\n \"configuration_tip_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"せってい\"])},\n \"configuration_tip_dismiss\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"つぎは ひょうじしない\"])},\n \"unread_chats\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"よんでいない チャットが \", _interpolate(_named(\"num\")), \"こ あります\"])},\n \"unread_follow_requests\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"フォローリクエストが \", _interpolate(_named(\"num\")), \"こ あります\"])},\n \"configuration_tip\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"ここに ひょうじする ものを \", _interpolate(_named(\"theSettings\")), \"で へんこうできます。 \", _interpolate(_named(\"dismiss\"))])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ステータスが見つかりません。探しています…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ステータスがお気に入りされました\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォローされました\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"古い通知を読み込む\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"通知\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"読んだ!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ステータスがリピートされました\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"通知はありません\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" でリアクションしました\"])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"インスタンスを引っ越しました\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あなたをフォローしたがっています\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"通知の取得に失敗しました: \", _interpolate(_list(0))])},\n \"poll_ended\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"投票結果が確定しました\"])},\n \"configuration_tip_dismiss\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"二度と表示しない\"])},\n \"unread_announcements\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([\"未読のお知らせが\", _interpolate(_named(\"num\")), \"件あります\"]), _normalize([\"未読のお知らせが\", _interpolate(_named(\"num\")), \"件あります\"])])},\n \"unread_chats\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([\"未読のチャットが\", _interpolate(_named(\"num\")), \"件あります\"]), _normalize([\"未読のチャットが\", _interpolate(_named(\"num\")), \"件あります\"])])},\n \"unread_follow_requests\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([\"フォローリクエストが\", _interpolate(_named(\"num\")), \"件来ています\"]), _normalize([\"フォローリクエストが\", _interpolate(_named(\"num\")), \"件来ています\"])])},\n \"configuration_tip\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"ここに表示する通知の種類は\", _interpolate(_named(\"theSettings\")), \"にて変更することができます。 \", _interpolate(_named(\"dismiss\"))])},\n \"submitted_report\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"通報が送信されました\"])},\n \"configuration_tip_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"設定\"])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"알 수 없는 게시물입니다, 검색합니다…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"관심을 가짐\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"팔로우함\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"이전 알림 불러오기\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"알림\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"읽음!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"리핏함\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"알림이 없습니다\"])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"이사했습니다\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 로 반응했습니다\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"알림 불러오기 실패: \", _interpolate(_list(0))])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"팔로우 요청\"])},\n \"submitted_report\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"신고 내용을 전송함\"])},\n \"poll_ended\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"투표가 끝남\"])},\n \"unread_follow_requests\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_named(\"num\")), \"개의 새 팔로우 요청\"]), _normalize([_interpolate(_named(\"num\")), \"개의 새 팔로우 요청\"])])},\n \"configuration_tip\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"theSettings\")), \"에서 어떻게 보이는지 바꿀 수 있습니다. \", _interpolate(_named(\"dismiss\"))])},\n \"configuration_tip_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"설정\"])},\n \"configuration_tip_dismiss\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"다시 보지 않기\"])},\n \"unread_announcements\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_named(\"num\")), \"개의 읽지 않은 공지사항\"]), _normalize([_interpolate(_named(\"num\")), \"개의 읽지 않은 공지사항\"])])},\n \"unread_chats\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_named(\"num\")), \"개의 읽지 않은 채팅\"]), _normalize([_interpolate(_named(\"num\")), \"개의 읽지 않은 채팅\"])])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ukjent status, leter etter den…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"likte din status\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fulgte deg\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Last eldre varsler\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Varslinger\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Les!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gjentok din status\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ingen gjenstående varsler\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ønsker å følge deg\"])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Onbekend bericht, aan het zoeken…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vond je bericht leuk\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"volgt jou\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Oudere meldingen laden\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Meldingen\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gelezen!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"herhaalde je bericht\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen meldingen meer\"])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"is gemigreerd naar\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wil je volgen\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"reageerde met \", _interpolate(_list(0))])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Fout bij ophalen van meldingen: \", _interpolate(_list(0))])},\n \"poll_ended\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"peiling is beëindigd\"])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Estatut desconegut, sèm a lo cercar...\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"a aimat vòstre estatut\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vos a seguit\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cargar las notificacions mai ancianas\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Notficacions\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Legit !\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"a repetit vòstre estatut\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas mai de notificacions\"])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nieznany status, szukam go…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"dodał(-a) twój status do ulubionych\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"obserwuje cię\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Załaduj starsze powiadomienia\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Powiadomienia\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Przeczytane!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"powtórzył(-a) twój status\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nie masz więcej powiadomień\"])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wyemigrował do\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"zareagował z \", _interpolate(_list(0))])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"chce ciebie obserwować\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Błąd pobierania powiadomień: \", _interpolate(_list(0))])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Publicação desconhecida, a procurar…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"gostou do teu post\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"seguiu-te\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Carregar notificações antigas\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Notificações\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lido!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"partilhou o teu post\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sem mais notificações\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"reagiu com \", _interpolate(_list(0))])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"migrou para\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"quer seguir-te\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Erro ao obter notificações: \", _interpolate(_list(0))])},\n \"unread_announcements\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_named(\"num\")), \" anúncio não lido\"]), _normalize([_interpolate(_named(\"num\")), \" anúncios não lidos\"])])},\n \"unread_chats\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_named(\"num\")), \" mensagem não lida\"]), _normalize([_interpolate(_named(\"num\")), \" mensagens não lidas\"])])},\n \"configuration_tip\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Você pode customizar o que você deseja mostrar aqui em \", _interpolate(_named(\"theSettings\")), \". \", _interpolate(_named(\"dismiss\"))])},\n \"unread_follow_requests\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_named(\"num\")), \" novo pedido de seguidor\"]), _normalize([_interpolate(_named(\"num\")), \" novos pedidos de seguidores\"])])},\n \"configuration_tip_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"as configurações\"])},\n \"configuration_tip_dismiss\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Não mostrar novamente\"])},\n \"poll_ended\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"enquete finalizada\"])},\n \"submitted_report\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"enviado um relatório\"])}\n }\n}","export default {\n \"notifications\": {\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"te-a urmărit\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Notificări\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Citit!\"])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Неизвестный статус, ищем…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"нравится ваш статус\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"начал(а) читать вас\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Загрузить старые уведомления\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Уведомления\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Прочесть\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"повторил(а) ваш статус\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"хочет читать вас\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"добавил(а) реакцию: \", _interpolate(_list(0))])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"перехал на\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Нет дальнейших уведомлений\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Ошибка при обновлении уведомлений: \", _interpolate(_list(0))])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Neznáma správa, dohľadávam ju…\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Chyba získavania upozornení: \", _interpolate(_list(0))])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"si obľúbil tvoju správu\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ťa nasleduje\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ťa chce nasledovať\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nahrať staršie upozornenia\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Upozornenia\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Prečítané!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"zopakoval tvoju správu\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Žiadne ďalšie upozornenia\"])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sa presťahoval na\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"reagoval nasledovne \", _interpolate(_list(0))])}\n }\n}","export default {\n \"notifications\": {\n \n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"未知的状态,正在搜索中…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"喜欢了你的状态\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关注了你\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"加载更早的通知\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"通知\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已阅!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"转发了你的状态\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"没有更多的通知\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"作出了 \", _interpolate(_list(0)), \" 的反应\"])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"迁移到了\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"想要关注你\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"取得通知时发生错误:\", _interpolate(_list(0))])},\n \"poll_ended\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"投票结束了\"])},\n \"submitted_report\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提交举报\"])},\n \"unread_announcements\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"num\")), \" 条未读公告\"])},\n \"unread_chats\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"num\")), \" 条未读聊天讯息\"])},\n \"unread_follow_requests\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"num\")), \" 个新关注请求\"])},\n \"configuration_tip\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"可以在 \", _interpolate(_named(\"theSettings\")), \" 里定制什么会显示在这里。\", _interpolate(_named(\"dismiss\"))])},\n \"configuration_tip_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"设置\"])},\n \"configuration_tip_dismiss\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不再显示\"])}\n }\n}","/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34: // \"\n escape = '"';\n break;\n case 38: // &\n escape = '&';\n break;\n case 39: // '\n escape = ''';\n break;\n case 60: // <\n escape = '<';\n break;\n case 62: // >\n escape = '>';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index\n ? html + str.substring(lastIndex, index)\n : html;\n}\n","/*!\n localForage -- Offline Storage, Improved\n Version 1.10.0\n https://localforage.github.io/localForage\n (c) 2013-2017 Mozilla, Apache License 2.0\n*/\n(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.localforage = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw (f.code=\"MODULE_NOT_FOUND\", f)}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o element; its readystatechange event will be fired asynchronously once it is inserted\n // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n var scriptEl = global.document.createElement('script');\n scriptEl.onreadystatechange = function () {\n nextTick();\n\n scriptEl.onreadystatechange = null;\n scriptEl.parentNode.removeChild(scriptEl);\n scriptEl = null;\n };\n global.document.documentElement.appendChild(scriptEl);\n };\n } else {\n scheduleDrain = function () {\n setTimeout(nextTick, 0);\n };\n }\n}\n\nvar draining;\nvar queue = [];\n//named nextTick for less confusing stack traces\nfunction nextTick() {\n draining = true;\n var i, oldQueue;\n var len = queue.length;\n while (len) {\n oldQueue = queue;\n queue = [];\n i = -1;\n while (++i < len) {\n oldQueue[i]();\n }\n len = queue.length;\n }\n draining = false;\n}\n\nmodule.exports = immediate;\nfunction immediate(task) {\n if (queue.push(task) === 1 && !draining) {\n scheduleDrain();\n }\n}\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{}],2:[function(_dereq_,module,exports){\n'use strict';\nvar immediate = _dereq_(1);\n\n/* istanbul ignore next */\nfunction INTERNAL() {}\n\nvar handlers = {};\n\nvar REJECTED = ['REJECTED'];\nvar FULFILLED = ['FULFILLED'];\nvar PENDING = ['PENDING'];\n\nmodule.exports = Promise;\n\nfunction Promise(resolver) {\n if (typeof resolver !== 'function') {\n throw new TypeError('resolver must be a function');\n }\n this.state = PENDING;\n this.queue = [];\n this.outcome = void 0;\n if (resolver !== INTERNAL) {\n safelyResolveThenable(this, resolver);\n }\n}\n\nPromise.prototype[\"catch\"] = function (onRejected) {\n return this.then(null, onRejected);\n};\nPromise.prototype.then = function (onFulfilled, onRejected) {\n if (typeof onFulfilled !== 'function' && this.state === FULFILLED ||\n typeof onRejected !== 'function' && this.state === REJECTED) {\n return this;\n }\n var promise = new this.constructor(INTERNAL);\n if (this.state !== PENDING) {\n var resolver = this.state === FULFILLED ? onFulfilled : onRejected;\n unwrap(promise, resolver, this.outcome);\n } else {\n this.queue.push(new QueueItem(promise, onFulfilled, onRejected));\n }\n\n return promise;\n};\nfunction QueueItem(promise, onFulfilled, onRejected) {\n this.promise = promise;\n if (typeof onFulfilled === 'function') {\n this.onFulfilled = onFulfilled;\n this.callFulfilled = this.otherCallFulfilled;\n }\n if (typeof onRejected === 'function') {\n this.onRejected = onRejected;\n this.callRejected = this.otherCallRejected;\n }\n}\nQueueItem.prototype.callFulfilled = function (value) {\n handlers.resolve(this.promise, value);\n};\nQueueItem.prototype.otherCallFulfilled = function (value) {\n unwrap(this.promise, this.onFulfilled, value);\n};\nQueueItem.prototype.callRejected = function (value) {\n handlers.reject(this.promise, value);\n};\nQueueItem.prototype.otherCallRejected = function (value) {\n unwrap(this.promise, this.onRejected, value);\n};\n\nfunction unwrap(promise, func, value) {\n immediate(function () {\n var returnValue;\n try {\n returnValue = func(value);\n } catch (e) {\n return handlers.reject(promise, e);\n }\n if (returnValue === promise) {\n handlers.reject(promise, new TypeError('Cannot resolve promise with itself'));\n } else {\n handlers.resolve(promise, returnValue);\n }\n });\n}\n\nhandlers.resolve = function (self, value) {\n var result = tryCatch(getThen, value);\n if (result.status === 'error') {\n return handlers.reject(self, result.value);\n }\n var thenable = result.value;\n\n if (thenable) {\n safelyResolveThenable(self, thenable);\n } else {\n self.state = FULFILLED;\n self.outcome = value;\n var i = -1;\n var len = self.queue.length;\n while (++i < len) {\n self.queue[i].callFulfilled(value);\n }\n }\n return self;\n};\nhandlers.reject = function (self, error) {\n self.state = REJECTED;\n self.outcome = error;\n var i = -1;\n var len = self.queue.length;\n while (++i < len) {\n self.queue[i].callRejected(error);\n }\n return self;\n};\n\nfunction getThen(obj) {\n // Make sure we only access the accessor once as required by the spec\n var then = obj && obj.then;\n if (obj && (typeof obj === 'object' || typeof obj === 'function') && typeof then === 'function') {\n return function appyThen() {\n then.apply(obj, arguments);\n };\n }\n}\n\nfunction safelyResolveThenable(self, thenable) {\n // Either fulfill, reject or reject with error\n var called = false;\n function onError(value) {\n if (called) {\n return;\n }\n called = true;\n handlers.reject(self, value);\n }\n\n function onSuccess(value) {\n if (called) {\n return;\n }\n called = true;\n handlers.resolve(self, value);\n }\n\n function tryToUnwrap() {\n thenable(onSuccess, onError);\n }\n\n var result = tryCatch(tryToUnwrap);\n if (result.status === 'error') {\n onError(result.value);\n }\n}\n\nfunction tryCatch(func, value) {\n var out = {};\n try {\n out.value = func(value);\n out.status = 'success';\n } catch (e) {\n out.status = 'error';\n out.value = e;\n }\n return out;\n}\n\nPromise.resolve = resolve;\nfunction resolve(value) {\n if (value instanceof this) {\n return value;\n }\n return handlers.resolve(new this(INTERNAL), value);\n}\n\nPromise.reject = reject;\nfunction reject(reason) {\n var promise = new this(INTERNAL);\n return handlers.reject(promise, reason);\n}\n\nPromise.all = all;\nfunction all(iterable) {\n var self = this;\n if (Object.prototype.toString.call(iterable) !== '[object Array]') {\n return this.reject(new TypeError('must be an array'));\n }\n\n var len = iterable.length;\n var called = false;\n if (!len) {\n return this.resolve([]);\n }\n\n var values = new Array(len);\n var resolved = 0;\n var i = -1;\n var promise = new this(INTERNAL);\n\n while (++i < len) {\n allResolver(iterable[i], i);\n }\n return promise;\n function allResolver(value, i) {\n self.resolve(value).then(resolveFromAll, function (error) {\n if (!called) {\n called = true;\n handlers.reject(promise, error);\n }\n });\n function resolveFromAll(outValue) {\n values[i] = outValue;\n if (++resolved === len && !called) {\n called = true;\n handlers.resolve(promise, values);\n }\n }\n }\n}\n\nPromise.race = race;\nfunction race(iterable) {\n var self = this;\n if (Object.prototype.toString.call(iterable) !== '[object Array]') {\n return this.reject(new TypeError('must be an array'));\n }\n\n var len = iterable.length;\n var called = false;\n if (!len) {\n return this.resolve([]);\n }\n\n var i = -1;\n var promise = new this(INTERNAL);\n\n while (++i < len) {\n resolver(iterable[i]);\n }\n return promise;\n function resolver(value) {\n self.resolve(value).then(function (response) {\n if (!called) {\n called = true;\n handlers.resolve(promise, response);\n }\n }, function (error) {\n if (!called) {\n called = true;\n handlers.reject(promise, error);\n }\n });\n }\n}\n\n},{\"1\":1}],3:[function(_dereq_,module,exports){\n(function (global){\n'use strict';\nif (typeof global.Promise !== 'function') {\n global.Promise = _dereq_(2);\n}\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{\"2\":2}],4:[function(_dereq_,module,exports){\n'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction getIDB() {\n /* global indexedDB,webkitIndexedDB,mozIndexedDB,OIndexedDB,msIndexedDB */\n try {\n if (typeof indexedDB !== 'undefined') {\n return indexedDB;\n }\n if (typeof webkitIndexedDB !== 'undefined') {\n return webkitIndexedDB;\n }\n if (typeof mozIndexedDB !== 'undefined') {\n return mozIndexedDB;\n }\n if (typeof OIndexedDB !== 'undefined') {\n return OIndexedDB;\n }\n if (typeof msIndexedDB !== 'undefined') {\n return msIndexedDB;\n }\n } catch (e) {\n return;\n }\n}\n\nvar idb = getIDB();\n\nfunction isIndexedDBValid() {\n try {\n // Initialize IndexedDB; fall back to vendor-prefixed versions\n // if needed.\n if (!idb || !idb.open) {\n return false;\n }\n // We mimic PouchDB here;\n //\n // We test for openDatabase because IE Mobile identifies itself\n // as Safari. Oh the lulz...\n var isSafari = typeof openDatabase !== 'undefined' && /(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent) && !/Chrome/.test(navigator.userAgent) && !/BlackBerry/.test(navigator.platform);\n\n var hasFetch = typeof fetch === 'function' && fetch.toString().indexOf('[native code') !== -1;\n\n // Safari <10.1 does not meet our requirements for IDB support\n // (see: https://github.com/pouchdb/pouchdb/issues/5572).\n // Safari 10.1 shipped with fetch, we can use that to detect it.\n // Note: this creates issues with `window.fetch` polyfills and\n // overrides; see:\n // https://github.com/localForage/localForage/issues/856\n return (!isSafari || hasFetch) && typeof indexedDB !== 'undefined' &&\n // some outdated implementations of IDB that appear on Samsung\n // and HTC Android devices <4.4 are missing IDBKeyRange\n // See: https://github.com/mozilla/localForage/issues/128\n // See: https://github.com/mozilla/localForage/issues/272\n typeof IDBKeyRange !== 'undefined';\n } catch (e) {\n return false;\n }\n}\n\n// Abstracts constructing a Blob object, so it also works in older\n// browsers that don't support the native Blob constructor. (i.e.\n// old QtWebKit versions, at least).\n// Abstracts constructing a Blob object, so it also works in older\n// browsers that don't support the native Blob constructor. (i.e.\n// old QtWebKit versions, at least).\nfunction createBlob(parts, properties) {\n /* global BlobBuilder,MSBlobBuilder,MozBlobBuilder,WebKitBlobBuilder */\n parts = parts || [];\n properties = properties || {};\n try {\n return new Blob(parts, properties);\n } catch (e) {\n if (e.name !== 'TypeError') {\n throw e;\n }\n var Builder = typeof BlobBuilder !== 'undefined' ? BlobBuilder : typeof MSBlobBuilder !== 'undefined' ? MSBlobBuilder : typeof MozBlobBuilder !== 'undefined' ? MozBlobBuilder : WebKitBlobBuilder;\n var builder = new Builder();\n for (var i = 0; i < parts.length; i += 1) {\n builder.append(parts[i]);\n }\n return builder.getBlob(properties.type);\n }\n}\n\n// This is CommonJS because lie is an external dependency, so Rollup\n// can just ignore it.\nif (typeof Promise === 'undefined') {\n // In the \"nopromises\" build this will just throw if you don't have\n // a global promise object, but it would throw anyway later.\n _dereq_(3);\n}\nvar Promise$1 = Promise;\n\nfunction executeCallback(promise, callback) {\n if (callback) {\n promise.then(function (result) {\n callback(null, result);\n }, function (error) {\n callback(error);\n });\n }\n}\n\nfunction executeTwoCallbacks(promise, callback, errorCallback) {\n if (typeof callback === 'function') {\n promise.then(callback);\n }\n\n if (typeof errorCallback === 'function') {\n promise[\"catch\"](errorCallback);\n }\n}\n\nfunction normalizeKey(key) {\n // Cast the key to a string, as that's all we can set as a key.\n if (typeof key !== 'string') {\n console.warn(key + ' used as a key, but it is not a string.');\n key = String(key);\n }\n\n return key;\n}\n\nfunction getCallback() {\n if (arguments.length && typeof arguments[arguments.length - 1] === 'function') {\n return arguments[arguments.length - 1];\n }\n}\n\n// Some code originally from async_storage.js in\n// [Gaia](https://github.com/mozilla-b2g/gaia).\n\nvar DETECT_BLOB_SUPPORT_STORE = 'local-forage-detect-blob-support';\nvar supportsBlobs = void 0;\nvar dbContexts = {};\nvar toString = Object.prototype.toString;\n\n// Transaction Modes\nvar READ_ONLY = 'readonly';\nvar READ_WRITE = 'readwrite';\n\n// Transform a binary string to an array buffer, because otherwise\n// weird stuff happens when you try to work with the binary string directly.\n// It is known.\n// From http://stackoverflow.com/questions/14967647/ (continues on next line)\n// encode-decode-image-with-base64-breaks-image (2013-04-21)\nfunction _binStringToArrayBuffer(bin) {\n var length = bin.length;\n var buf = new ArrayBuffer(length);\n var arr = new Uint8Array(buf);\n for (var i = 0; i < length; i++) {\n arr[i] = bin.charCodeAt(i);\n }\n return buf;\n}\n\n//\n// Blobs are not supported in all versions of IndexedDB, notably\n// Chrome <37 and Android <5. In those versions, storing a blob will throw.\n//\n// Various other blob bugs exist in Chrome v37-42 (inclusive).\n// Detecting them is expensive and confusing to users, and Chrome 37-42\n// is at very low usage worldwide, so we do a hacky userAgent check instead.\n//\n// content-type bug: https://code.google.com/p/chromium/issues/detail?id=408120\n// 404 bug: https://code.google.com/p/chromium/issues/detail?id=447916\n// FileReader bug: https://code.google.com/p/chromium/issues/detail?id=447836\n//\n// Code borrowed from PouchDB. See:\n// https://github.com/pouchdb/pouchdb/blob/master/packages/node_modules/pouchdb-adapter-idb/src/blobSupport.js\n//\nfunction _checkBlobSupportWithoutCaching(idb) {\n return new Promise$1(function (resolve) {\n var txn = idb.transaction(DETECT_BLOB_SUPPORT_STORE, READ_WRITE);\n var blob = createBlob(['']);\n txn.objectStore(DETECT_BLOB_SUPPORT_STORE).put(blob, 'key');\n\n txn.onabort = function (e) {\n // If the transaction aborts now its due to not being able to\n // write to the database, likely due to the disk being full\n e.preventDefault();\n e.stopPropagation();\n resolve(false);\n };\n\n txn.oncomplete = function () {\n var matchedChrome = navigator.userAgent.match(/Chrome\\/(\\d+)/);\n var matchedEdge = navigator.userAgent.match(/Edge\\//);\n // MS Edge pretends to be Chrome 42:\n // https://msdn.microsoft.com/en-us/library/hh869301%28v=vs.85%29.aspx\n resolve(matchedEdge || !matchedChrome || parseInt(matchedChrome[1], 10) >= 43);\n };\n })[\"catch\"](function () {\n return false; // error, so assume unsupported\n });\n}\n\nfunction _checkBlobSupport(idb) {\n if (typeof supportsBlobs === 'boolean') {\n return Promise$1.resolve(supportsBlobs);\n }\n return _checkBlobSupportWithoutCaching(idb).then(function (value) {\n supportsBlobs = value;\n return supportsBlobs;\n });\n}\n\nfunction _deferReadiness(dbInfo) {\n var dbContext = dbContexts[dbInfo.name];\n\n // Create a deferred object representing the current database operation.\n var deferredOperation = {};\n\n deferredOperation.promise = new Promise$1(function (resolve, reject) {\n deferredOperation.resolve = resolve;\n deferredOperation.reject = reject;\n });\n\n // Enqueue the deferred operation.\n dbContext.deferredOperations.push(deferredOperation);\n\n // Chain its promise to the database readiness.\n if (!dbContext.dbReady) {\n dbContext.dbReady = deferredOperation.promise;\n } else {\n dbContext.dbReady = dbContext.dbReady.then(function () {\n return deferredOperation.promise;\n });\n }\n}\n\nfunction _advanceReadiness(dbInfo) {\n var dbContext = dbContexts[dbInfo.name];\n\n // Dequeue a deferred operation.\n var deferredOperation = dbContext.deferredOperations.pop();\n\n // Resolve its promise (which is part of the database readiness\n // chain of promises).\n if (deferredOperation) {\n deferredOperation.resolve();\n return deferredOperation.promise;\n }\n}\n\nfunction _rejectReadiness(dbInfo, err) {\n var dbContext = dbContexts[dbInfo.name];\n\n // Dequeue a deferred operation.\n var deferredOperation = dbContext.deferredOperations.pop();\n\n // Reject its promise (which is part of the database readiness\n // chain of promises).\n if (deferredOperation) {\n deferredOperation.reject(err);\n return deferredOperation.promise;\n }\n}\n\nfunction _getConnection(dbInfo, upgradeNeeded) {\n return new Promise$1(function (resolve, reject) {\n dbContexts[dbInfo.name] = dbContexts[dbInfo.name] || createDbContext();\n\n if (dbInfo.db) {\n if (upgradeNeeded) {\n _deferReadiness(dbInfo);\n dbInfo.db.close();\n } else {\n return resolve(dbInfo.db);\n }\n }\n\n var dbArgs = [dbInfo.name];\n\n if (upgradeNeeded) {\n dbArgs.push(dbInfo.version);\n }\n\n var openreq = idb.open.apply(idb, dbArgs);\n\n if (upgradeNeeded) {\n openreq.onupgradeneeded = function (e) {\n var db = openreq.result;\n try {\n db.createObjectStore(dbInfo.storeName);\n if (e.oldVersion <= 1) {\n // Added when support for blob shims was added\n db.createObjectStore(DETECT_BLOB_SUPPORT_STORE);\n }\n } catch (ex) {\n if (ex.name === 'ConstraintError') {\n console.warn('The database \"' + dbInfo.name + '\"' + ' has been upgraded from version ' + e.oldVersion + ' to version ' + e.newVersion + ', but the storage \"' + dbInfo.storeName + '\" already exists.');\n } else {\n throw ex;\n }\n }\n };\n }\n\n openreq.onerror = function (e) {\n e.preventDefault();\n reject(openreq.error);\n };\n\n openreq.onsuccess = function () {\n var db = openreq.result;\n db.onversionchange = function (e) {\n // Triggered when the database is modified (e.g. adding an objectStore) or\n // deleted (even when initiated by other sessions in different tabs).\n // Closing the connection here prevents those operations from being blocked.\n // If the database is accessed again later by this instance, the connection\n // will be reopened or the database recreated as needed.\n e.target.close();\n };\n resolve(db);\n _advanceReadiness(dbInfo);\n };\n });\n}\n\nfunction _getOriginalConnection(dbInfo) {\n return _getConnection(dbInfo, false);\n}\n\nfunction _getUpgradedConnection(dbInfo) {\n return _getConnection(dbInfo, true);\n}\n\nfunction _isUpgradeNeeded(dbInfo, defaultVersion) {\n if (!dbInfo.db) {\n return true;\n }\n\n var isNewStore = !dbInfo.db.objectStoreNames.contains(dbInfo.storeName);\n var isDowngrade = dbInfo.version < dbInfo.db.version;\n var isUpgrade = dbInfo.version > dbInfo.db.version;\n\n if (isDowngrade) {\n // If the version is not the default one\n // then warn for impossible downgrade.\n if (dbInfo.version !== defaultVersion) {\n console.warn('The database \"' + dbInfo.name + '\"' + \" can't be downgraded from version \" + dbInfo.db.version + ' to version ' + dbInfo.version + '.');\n }\n // Align the versions to prevent errors.\n dbInfo.version = dbInfo.db.version;\n }\n\n if (isUpgrade || isNewStore) {\n // If the store is new then increment the version (if needed).\n // This will trigger an \"upgradeneeded\" event which is required\n // for creating a store.\n if (isNewStore) {\n var incVersion = dbInfo.db.version + 1;\n if (incVersion > dbInfo.version) {\n dbInfo.version = incVersion;\n }\n }\n\n return true;\n }\n\n return false;\n}\n\n// encode a blob for indexeddb engines that don't support blobs\nfunction _encodeBlob(blob) {\n return new Promise$1(function (resolve, reject) {\n var reader = new FileReader();\n reader.onerror = reject;\n reader.onloadend = function (e) {\n var base64 = btoa(e.target.result || '');\n resolve({\n __local_forage_encoded_blob: true,\n data: base64,\n type: blob.type\n });\n };\n reader.readAsBinaryString(blob);\n });\n}\n\n// decode an encoded blob\nfunction _decodeBlob(encodedBlob) {\n var arrayBuff = _binStringToArrayBuffer(atob(encodedBlob.data));\n return createBlob([arrayBuff], { type: encodedBlob.type });\n}\n\n// is this one of our fancy encoded blobs?\nfunction _isEncodedBlob(value) {\n return value && value.__local_forage_encoded_blob;\n}\n\n// Specialize the default `ready()` function by making it dependent\n// on the current database operations. Thus, the driver will be actually\n// ready when it's been initialized (default) *and* there are no pending\n// operations on the database (initiated by some other instances).\nfunction _fullyReady(callback) {\n var self = this;\n\n var promise = self._initReady().then(function () {\n var dbContext = dbContexts[self._dbInfo.name];\n\n if (dbContext && dbContext.dbReady) {\n return dbContext.dbReady;\n }\n });\n\n executeTwoCallbacks(promise, callback, callback);\n return promise;\n}\n\n// Try to establish a new db connection to replace the\n// current one which is broken (i.e. experiencing\n// InvalidStateError while creating a transaction).\nfunction _tryReconnect(dbInfo) {\n _deferReadiness(dbInfo);\n\n var dbContext = dbContexts[dbInfo.name];\n var forages = dbContext.forages;\n\n for (var i = 0; i < forages.length; i++) {\n var forage = forages[i];\n if (forage._dbInfo.db) {\n forage._dbInfo.db.close();\n forage._dbInfo.db = null;\n }\n }\n dbInfo.db = null;\n\n return _getOriginalConnection(dbInfo).then(function (db) {\n dbInfo.db = db;\n if (_isUpgradeNeeded(dbInfo)) {\n // Reopen the database for upgrading.\n return _getUpgradedConnection(dbInfo);\n }\n return db;\n }).then(function (db) {\n // store the latest db reference\n // in case the db was upgraded\n dbInfo.db = dbContext.db = db;\n for (var i = 0; i < forages.length; i++) {\n forages[i]._dbInfo.db = db;\n }\n })[\"catch\"](function (err) {\n _rejectReadiness(dbInfo, err);\n throw err;\n });\n}\n\n// FF doesn't like Promises (micro-tasks) and IDDB store operations,\n// so we have to do it with callbacks\nfunction createTransaction(dbInfo, mode, callback, retries) {\n if (retries === undefined) {\n retries = 1;\n }\n\n try {\n var tx = dbInfo.db.transaction(dbInfo.storeName, mode);\n callback(null, tx);\n } catch (err) {\n if (retries > 0 && (!dbInfo.db || err.name === 'InvalidStateError' || err.name === 'NotFoundError')) {\n return Promise$1.resolve().then(function () {\n if (!dbInfo.db || err.name === 'NotFoundError' && !dbInfo.db.objectStoreNames.contains(dbInfo.storeName) && dbInfo.version <= dbInfo.db.version) {\n // increase the db version, to create the new ObjectStore\n if (dbInfo.db) {\n dbInfo.version = dbInfo.db.version + 1;\n }\n // Reopen the database for upgrading.\n return _getUpgradedConnection(dbInfo);\n }\n }).then(function () {\n return _tryReconnect(dbInfo).then(function () {\n createTransaction(dbInfo, mode, callback, retries - 1);\n });\n })[\"catch\"](callback);\n }\n\n callback(err);\n }\n}\n\nfunction createDbContext() {\n return {\n // Running localForages sharing a database.\n forages: [],\n // Shared database.\n db: null,\n // Database readiness (promise).\n dbReady: null,\n // Deferred operations on the database.\n deferredOperations: []\n };\n}\n\n// Open the IndexedDB database (automatically creates one if one didn't\n// previously exist), using any options set in the config.\nfunction _initStorage(options) {\n var self = this;\n var dbInfo = {\n db: null\n };\n\n if (options) {\n for (var i in options) {\n dbInfo[i] = options[i];\n }\n }\n\n // Get the current context of the database;\n var dbContext = dbContexts[dbInfo.name];\n\n // ...or create a new context.\n if (!dbContext) {\n dbContext = createDbContext();\n // Register the new context in the global container.\n dbContexts[dbInfo.name] = dbContext;\n }\n\n // Register itself as a running localForage in the current context.\n dbContext.forages.push(self);\n\n // Replace the default `ready()` function with the specialized one.\n if (!self._initReady) {\n self._initReady = self.ready;\n self.ready = _fullyReady;\n }\n\n // Create an array of initialization states of the related localForages.\n var initPromises = [];\n\n function ignoreErrors() {\n // Don't handle errors here,\n // just makes sure related localForages aren't pending.\n return Promise$1.resolve();\n }\n\n for (var j = 0; j < dbContext.forages.length; j++) {\n var forage = dbContext.forages[j];\n if (forage !== self) {\n // Don't wait for itself...\n initPromises.push(forage._initReady()[\"catch\"](ignoreErrors));\n }\n }\n\n // Take a snapshot of the related localForages.\n var forages = dbContext.forages.slice(0);\n\n // Initialize the connection process only when\n // all the related localForages aren't pending.\n return Promise$1.all(initPromises).then(function () {\n dbInfo.db = dbContext.db;\n // Get the connection or open a new one without upgrade.\n return _getOriginalConnection(dbInfo);\n }).then(function (db) {\n dbInfo.db = db;\n if (_isUpgradeNeeded(dbInfo, self._defaultConfig.version)) {\n // Reopen the database for upgrading.\n return _getUpgradedConnection(dbInfo);\n }\n return db;\n }).then(function (db) {\n dbInfo.db = dbContext.db = db;\n self._dbInfo = dbInfo;\n // Share the final connection amongst related localForages.\n for (var k = 0; k < forages.length; k++) {\n var forage = forages[k];\n if (forage !== self) {\n // Self is already up-to-date.\n forage._dbInfo.db = dbInfo.db;\n forage._dbInfo.version = dbInfo.version;\n }\n }\n });\n}\n\nfunction getItem(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.get(key);\n\n req.onsuccess = function () {\n var value = req.result;\n if (value === undefined) {\n value = null;\n }\n if (_isEncodedBlob(value)) {\n value = _decodeBlob(value);\n }\n resolve(value);\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Iterate over all items stored in database.\nfunction iterate(iterator, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.openCursor();\n var iterationNumber = 1;\n\n req.onsuccess = function () {\n var cursor = req.result;\n\n if (cursor) {\n var value = cursor.value;\n if (_isEncodedBlob(value)) {\n value = _decodeBlob(value);\n }\n var result = iterator(value, cursor.key, iterationNumber++);\n\n // when the iterator callback returns any\n // (non-`undefined`) value, then we stop\n // the iteration immediately\n if (result !== void 0) {\n resolve(result);\n } else {\n cursor[\"continue\"]();\n }\n } else {\n resolve();\n }\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n\n return promise;\n}\n\nfunction setItem(key, value, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n var dbInfo;\n self.ready().then(function () {\n dbInfo = self._dbInfo;\n if (toString.call(value) === '[object Blob]') {\n return _checkBlobSupport(dbInfo.db).then(function (blobSupport) {\n if (blobSupport) {\n return value;\n }\n return _encodeBlob(value);\n });\n }\n return value;\n }).then(function (value) {\n createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n\n // The reason we don't _save_ null is because IE 10 does\n // not support saving the `null` type in IndexedDB. How\n // ironic, given the bug below!\n // See: https://github.com/mozilla/localForage/issues/161\n if (value === null) {\n value = undefined;\n }\n\n var req = store.put(value, key);\n\n transaction.oncomplete = function () {\n // Cast to undefined so the value passed to\n // callback/promise is the same as what one would get out\n // of `getItem()` later. This leads to some weirdness\n // (setItem('foo', undefined) will return `null`), but\n // it's not my fault localStorage is our baseline and that\n // it's weird.\n if (value === undefined) {\n value = null;\n }\n\n resolve(value);\n };\n transaction.onabort = transaction.onerror = function () {\n var err = req.error ? req.error : req.transaction.error;\n reject(err);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction removeItem(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n // We use a Grunt task to make this safe for IE and some\n // versions of Android (including those used by Cordova).\n // Normally IE won't like `.delete()` and will insist on\n // using `['delete']()`, but we have a build step that\n // fixes this for us now.\n var req = store[\"delete\"](key);\n transaction.oncomplete = function () {\n resolve();\n };\n\n transaction.onerror = function () {\n reject(req.error);\n };\n\n // The request will be also be aborted if we've exceeded our storage\n // space.\n transaction.onabort = function () {\n var err = req.error ? req.error : req.transaction.error;\n reject(err);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction clear(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.clear();\n\n transaction.oncomplete = function () {\n resolve();\n };\n\n transaction.onabort = transaction.onerror = function () {\n var err = req.error ? req.error : req.transaction.error;\n reject(err);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction length(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.count();\n\n req.onsuccess = function () {\n resolve(req.result);\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction key(n, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n if (n < 0) {\n resolve(null);\n\n return;\n }\n\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var advanced = false;\n var req = store.openKeyCursor();\n\n req.onsuccess = function () {\n var cursor = req.result;\n if (!cursor) {\n // this means there weren't enough keys\n resolve(null);\n\n return;\n }\n\n if (n === 0) {\n // We have the first key, return it if that's what they\n // wanted.\n resolve(cursor.key);\n } else {\n if (!advanced) {\n // Otherwise, ask the cursor to skip ahead n\n // records.\n advanced = true;\n cursor.advance(n);\n } else {\n // When we get here, we've got the nth key.\n resolve(cursor.key);\n }\n }\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction keys(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.openKeyCursor();\n var keys = [];\n\n req.onsuccess = function () {\n var cursor = req.result;\n\n if (!cursor) {\n resolve(keys);\n return;\n }\n\n keys.push(cursor.key);\n cursor[\"continue\"]();\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction dropInstance(options, callback) {\n callback = getCallback.apply(this, arguments);\n\n var currentConfig = this.config();\n options = typeof options !== 'function' && options || {};\n if (!options.name) {\n options.name = options.name || currentConfig.name;\n options.storeName = options.storeName || currentConfig.storeName;\n }\n\n var self = this;\n var promise;\n if (!options.name) {\n promise = Promise$1.reject('Invalid arguments');\n } else {\n var isCurrentDb = options.name === currentConfig.name && self._dbInfo.db;\n\n var dbPromise = isCurrentDb ? Promise$1.resolve(self._dbInfo.db) : _getOriginalConnection(options).then(function (db) {\n var dbContext = dbContexts[options.name];\n var forages = dbContext.forages;\n dbContext.db = db;\n for (var i = 0; i < forages.length; i++) {\n forages[i]._dbInfo.db = db;\n }\n return db;\n });\n\n if (!options.storeName) {\n promise = dbPromise.then(function (db) {\n _deferReadiness(options);\n\n var dbContext = dbContexts[options.name];\n var forages = dbContext.forages;\n\n db.close();\n for (var i = 0; i < forages.length; i++) {\n var forage = forages[i];\n forage._dbInfo.db = null;\n }\n\n var dropDBPromise = new Promise$1(function (resolve, reject) {\n var req = idb.deleteDatabase(options.name);\n\n req.onerror = function () {\n var db = req.result;\n if (db) {\n db.close();\n }\n reject(req.error);\n };\n\n req.onblocked = function () {\n // Closing all open connections in onversionchange handler should prevent this situation, but if\n // we do get here, it just means the request remains pending - eventually it will succeed or error\n console.warn('dropInstance blocked for database \"' + options.name + '\" until all open connections are closed');\n };\n\n req.onsuccess = function () {\n var db = req.result;\n if (db) {\n db.close();\n }\n resolve(db);\n };\n });\n\n return dropDBPromise.then(function (db) {\n dbContext.db = db;\n for (var i = 0; i < forages.length; i++) {\n var _forage = forages[i];\n _advanceReadiness(_forage._dbInfo);\n }\n })[\"catch\"](function (err) {\n (_rejectReadiness(options, err) || Promise$1.resolve())[\"catch\"](function () {});\n throw err;\n });\n });\n } else {\n promise = dbPromise.then(function (db) {\n if (!db.objectStoreNames.contains(options.storeName)) {\n return;\n }\n\n var newVersion = db.version + 1;\n\n _deferReadiness(options);\n\n var dbContext = dbContexts[options.name];\n var forages = dbContext.forages;\n\n db.close();\n for (var i = 0; i < forages.length; i++) {\n var forage = forages[i];\n forage._dbInfo.db = null;\n forage._dbInfo.version = newVersion;\n }\n\n var dropObjectPromise = new Promise$1(function (resolve, reject) {\n var req = idb.open(options.name, newVersion);\n\n req.onerror = function (err) {\n var db = req.result;\n db.close();\n reject(err);\n };\n\n req.onupgradeneeded = function () {\n var db = req.result;\n db.deleteObjectStore(options.storeName);\n };\n\n req.onsuccess = function () {\n var db = req.result;\n db.close();\n resolve(db);\n };\n });\n\n return dropObjectPromise.then(function (db) {\n dbContext.db = db;\n for (var j = 0; j < forages.length; j++) {\n var _forage2 = forages[j];\n _forage2._dbInfo.db = db;\n _advanceReadiness(_forage2._dbInfo);\n }\n })[\"catch\"](function (err) {\n (_rejectReadiness(options, err) || Promise$1.resolve())[\"catch\"](function () {});\n throw err;\n });\n });\n }\n }\n\n executeCallback(promise, callback);\n return promise;\n}\n\nvar asyncStorage = {\n _driver: 'asyncStorage',\n _initStorage: _initStorage,\n _support: isIndexedDBValid(),\n iterate: iterate,\n getItem: getItem,\n setItem: setItem,\n removeItem: removeItem,\n clear: clear,\n length: length,\n key: key,\n keys: keys,\n dropInstance: dropInstance\n};\n\nfunction isWebSQLValid() {\n return typeof openDatabase === 'function';\n}\n\n// Sadly, the best way to save binary data in WebSQL/localStorage is serializing\n// it to Base64, so this is how we store it to prevent very strange errors with less\n// verbose ways of binary <-> string data storage.\nvar BASE_CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\nvar BLOB_TYPE_PREFIX = '~~local_forage_type~';\nvar BLOB_TYPE_PREFIX_REGEX = /^~~local_forage_type~([^~]+)~/;\n\nvar SERIALIZED_MARKER = '__lfsc__:';\nvar SERIALIZED_MARKER_LENGTH = SERIALIZED_MARKER.length;\n\n// OMG the serializations!\nvar TYPE_ARRAYBUFFER = 'arbf';\nvar TYPE_BLOB = 'blob';\nvar TYPE_INT8ARRAY = 'si08';\nvar TYPE_UINT8ARRAY = 'ui08';\nvar TYPE_UINT8CLAMPEDARRAY = 'uic8';\nvar TYPE_INT16ARRAY = 'si16';\nvar TYPE_INT32ARRAY = 'si32';\nvar TYPE_UINT16ARRAY = 'ur16';\nvar TYPE_UINT32ARRAY = 'ui32';\nvar TYPE_FLOAT32ARRAY = 'fl32';\nvar TYPE_FLOAT64ARRAY = 'fl64';\nvar TYPE_SERIALIZED_MARKER_LENGTH = SERIALIZED_MARKER_LENGTH + TYPE_ARRAYBUFFER.length;\n\nvar toString$1 = Object.prototype.toString;\n\nfunction stringToBuffer(serializedString) {\n // Fill the string into a ArrayBuffer.\n var bufferLength = serializedString.length * 0.75;\n var len = serializedString.length;\n var i;\n var p = 0;\n var encoded1, encoded2, encoded3, encoded4;\n\n if (serializedString[serializedString.length - 1] === '=') {\n bufferLength--;\n if (serializedString[serializedString.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n var buffer = new ArrayBuffer(bufferLength);\n var bytes = new Uint8Array(buffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = BASE_CHARS.indexOf(serializedString[i]);\n encoded2 = BASE_CHARS.indexOf(serializedString[i + 1]);\n encoded3 = BASE_CHARS.indexOf(serializedString[i + 2]);\n encoded4 = BASE_CHARS.indexOf(serializedString[i + 3]);\n\n /*jslint bitwise: true */\n bytes[p++] = encoded1 << 2 | encoded2 >> 4;\n bytes[p++] = (encoded2 & 15) << 4 | encoded3 >> 2;\n bytes[p++] = (encoded3 & 3) << 6 | encoded4 & 63;\n }\n return buffer;\n}\n\n// Converts a buffer to a string to store, serialized, in the backend\n// storage library.\nfunction bufferToString(buffer) {\n // base64-arraybuffer\n var bytes = new Uint8Array(buffer);\n var base64String = '';\n var i;\n\n for (i = 0; i < bytes.length; i += 3) {\n /*jslint bitwise: true */\n base64String += BASE_CHARS[bytes[i] >> 2];\n base64String += BASE_CHARS[(bytes[i] & 3) << 4 | bytes[i + 1] >> 4];\n base64String += BASE_CHARS[(bytes[i + 1] & 15) << 2 | bytes[i + 2] >> 6];\n base64String += BASE_CHARS[bytes[i + 2] & 63];\n }\n\n if (bytes.length % 3 === 2) {\n base64String = base64String.substring(0, base64String.length - 1) + '=';\n } else if (bytes.length % 3 === 1) {\n base64String = base64String.substring(0, base64String.length - 2) + '==';\n }\n\n return base64String;\n}\n\n// Serialize a value, afterwards executing a callback (which usually\n// instructs the `setItem()` callback/promise to be executed). This is how\n// we store binary data with localStorage.\nfunction serialize(value, callback) {\n var valueType = '';\n if (value) {\n valueType = toString$1.call(value);\n }\n\n // Cannot use `value instanceof ArrayBuffer` or such here, as these\n // checks fail when running the tests using casper.js...\n //\n // TODO: See why those tests fail and use a better solution.\n if (value && (valueType === '[object ArrayBuffer]' || value.buffer && toString$1.call(value.buffer) === '[object ArrayBuffer]')) {\n // Convert binary arrays to a string and prefix the string with\n // a special marker.\n var buffer;\n var marker = SERIALIZED_MARKER;\n\n if (value instanceof ArrayBuffer) {\n buffer = value;\n marker += TYPE_ARRAYBUFFER;\n } else {\n buffer = value.buffer;\n\n if (valueType === '[object Int8Array]') {\n marker += TYPE_INT8ARRAY;\n } else if (valueType === '[object Uint8Array]') {\n marker += TYPE_UINT8ARRAY;\n } else if (valueType === '[object Uint8ClampedArray]') {\n marker += TYPE_UINT8CLAMPEDARRAY;\n } else if (valueType === '[object Int16Array]') {\n marker += TYPE_INT16ARRAY;\n } else if (valueType === '[object Uint16Array]') {\n marker += TYPE_UINT16ARRAY;\n } else if (valueType === '[object Int32Array]') {\n marker += TYPE_INT32ARRAY;\n } else if (valueType === '[object Uint32Array]') {\n marker += TYPE_UINT32ARRAY;\n } else if (valueType === '[object Float32Array]') {\n marker += TYPE_FLOAT32ARRAY;\n } else if (valueType === '[object Float64Array]') {\n marker += TYPE_FLOAT64ARRAY;\n } else {\n callback(new Error('Failed to get type for BinaryArray'));\n }\n }\n\n callback(marker + bufferToString(buffer));\n } else if (valueType === '[object Blob]') {\n // Conver the blob to a binaryArray and then to a string.\n var fileReader = new FileReader();\n\n fileReader.onload = function () {\n // Backwards-compatible prefix for the blob type.\n var str = BLOB_TYPE_PREFIX + value.type + '~' + bufferToString(this.result);\n\n callback(SERIALIZED_MARKER + TYPE_BLOB + str);\n };\n\n fileReader.readAsArrayBuffer(value);\n } else {\n try {\n callback(JSON.stringify(value));\n } catch (e) {\n console.error(\"Couldn't convert value into a JSON string: \", value);\n\n callback(null, e);\n }\n }\n}\n\n// Deserialize data we've inserted into a value column/field. We place\n// special markers into our strings to mark them as encoded; this isn't\n// as nice as a meta field, but it's the only sane thing we can do whilst\n// keeping localStorage support intact.\n//\n// Oftentimes this will just deserialize JSON content, but if we have a\n// special marker (SERIALIZED_MARKER, defined above), we will extract\n// some kind of arraybuffer/binary data/typed array out of the string.\nfunction deserialize(value) {\n // If we haven't marked this string as being specially serialized (i.e.\n // something other than serialized JSON), we can just return it and be\n // done with it.\n if (value.substring(0, SERIALIZED_MARKER_LENGTH) !== SERIALIZED_MARKER) {\n return JSON.parse(value);\n }\n\n // The following code deals with deserializing some kind of Blob or\n // TypedArray. First we separate out the type of data we're dealing\n // with from the data itself.\n var serializedString = value.substring(TYPE_SERIALIZED_MARKER_LENGTH);\n var type = value.substring(SERIALIZED_MARKER_LENGTH, TYPE_SERIALIZED_MARKER_LENGTH);\n\n var blobType;\n // Backwards-compatible blob type serialization strategy.\n // DBs created with older versions of localForage will simply not have the blob type.\n if (type === TYPE_BLOB && BLOB_TYPE_PREFIX_REGEX.test(serializedString)) {\n var matcher = serializedString.match(BLOB_TYPE_PREFIX_REGEX);\n blobType = matcher[1];\n serializedString = serializedString.substring(matcher[0].length);\n }\n var buffer = stringToBuffer(serializedString);\n\n // Return the right type based on the code/type set during\n // serialization.\n switch (type) {\n case TYPE_ARRAYBUFFER:\n return buffer;\n case TYPE_BLOB:\n return createBlob([buffer], { type: blobType });\n case TYPE_INT8ARRAY:\n return new Int8Array(buffer);\n case TYPE_UINT8ARRAY:\n return new Uint8Array(buffer);\n case TYPE_UINT8CLAMPEDARRAY:\n return new Uint8ClampedArray(buffer);\n case TYPE_INT16ARRAY:\n return new Int16Array(buffer);\n case TYPE_UINT16ARRAY:\n return new Uint16Array(buffer);\n case TYPE_INT32ARRAY:\n return new Int32Array(buffer);\n case TYPE_UINT32ARRAY:\n return new Uint32Array(buffer);\n case TYPE_FLOAT32ARRAY:\n return new Float32Array(buffer);\n case TYPE_FLOAT64ARRAY:\n return new Float64Array(buffer);\n default:\n throw new Error('Unkown type: ' + type);\n }\n}\n\nvar localforageSerializer = {\n serialize: serialize,\n deserialize: deserialize,\n stringToBuffer: stringToBuffer,\n bufferToString: bufferToString\n};\n\n/*\n * Includes code from:\n *\n * base64-arraybuffer\n * https://github.com/niklasvh/base64-arraybuffer\n *\n * Copyright (c) 2012 Niklas von Hertzen\n * Licensed under the MIT license.\n */\n\nfunction createDbTable(t, dbInfo, callback, errorCallback) {\n t.executeSql('CREATE TABLE IF NOT EXISTS ' + dbInfo.storeName + ' ' + '(id INTEGER PRIMARY KEY, key unique, value)', [], callback, errorCallback);\n}\n\n// Open the WebSQL database (automatically creates one if one didn't\n// previously exist), using any options set in the config.\nfunction _initStorage$1(options) {\n var self = this;\n var dbInfo = {\n db: null\n };\n\n if (options) {\n for (var i in options) {\n dbInfo[i] = typeof options[i] !== 'string' ? options[i].toString() : options[i];\n }\n }\n\n var dbInfoPromise = new Promise$1(function (resolve, reject) {\n // Open the database; the openDatabase API will automatically\n // create it for us if it doesn't exist.\n try {\n dbInfo.db = openDatabase(dbInfo.name, String(dbInfo.version), dbInfo.description, dbInfo.size);\n } catch (e) {\n return reject(e);\n }\n\n // Create our key/value table if it doesn't exist.\n dbInfo.db.transaction(function (t) {\n createDbTable(t, dbInfo, function () {\n self._dbInfo = dbInfo;\n resolve();\n }, function (t, error) {\n reject(error);\n });\n }, reject);\n });\n\n dbInfo.serializer = localforageSerializer;\n return dbInfoPromise;\n}\n\nfunction tryExecuteSql(t, dbInfo, sqlStatement, args, callback, errorCallback) {\n t.executeSql(sqlStatement, args, callback, function (t, error) {\n if (error.code === error.SYNTAX_ERR) {\n t.executeSql('SELECT name FROM sqlite_master ' + \"WHERE type='table' AND name = ?\", [dbInfo.storeName], function (t, results) {\n if (!results.rows.length) {\n // if the table is missing (was deleted)\n // re-create it table and retry\n createDbTable(t, dbInfo, function () {\n t.executeSql(sqlStatement, args, callback, errorCallback);\n }, errorCallback);\n } else {\n errorCallback(t, error);\n }\n }, errorCallback);\n } else {\n errorCallback(t, error);\n }\n }, errorCallback);\n}\n\nfunction getItem$1(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT * FROM ' + dbInfo.storeName + ' WHERE key = ? LIMIT 1', [key], function (t, results) {\n var result = results.rows.length ? results.rows.item(0).value : null;\n\n // Check to see if this is serialized content we need to\n // unpack.\n if (result) {\n result = dbInfo.serializer.deserialize(result);\n }\n\n resolve(result);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction iterate$1(iterator, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT * FROM ' + dbInfo.storeName, [], function (t, results) {\n var rows = results.rows;\n var length = rows.length;\n\n for (var i = 0; i < length; i++) {\n var item = rows.item(i);\n var result = item.value;\n\n // Check to see if this is serialized content\n // we need to unpack.\n if (result) {\n result = dbInfo.serializer.deserialize(result);\n }\n\n result = iterator(result, item.key, i + 1);\n\n // void(0) prevents problems with redefinition\n // of `undefined`.\n if (result !== void 0) {\n resolve(result);\n return;\n }\n }\n\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction _setItem(key, value, callback, retriesLeft) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n // The localStorage API doesn't return undefined values in an\n // \"expected\" way, so undefined is always cast to null in all\n // drivers. See: https://github.com/mozilla/localForage/pull/42\n if (value === undefined) {\n value = null;\n }\n\n // Save the original value to pass to the callback.\n var originalValue = value;\n\n var dbInfo = self._dbInfo;\n dbInfo.serializer.serialize(value, function (value, error) {\n if (error) {\n reject(error);\n } else {\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'INSERT OR REPLACE INTO ' + dbInfo.storeName + ' ' + '(key, value) VALUES (?, ?)', [key, value], function () {\n resolve(originalValue);\n }, function (t, error) {\n reject(error);\n });\n }, function (sqlError) {\n // The transaction failed; check\n // to see if it's a quota error.\n if (sqlError.code === sqlError.QUOTA_ERR) {\n // We reject the callback outright for now, but\n // it's worth trying to re-run the transaction.\n // Even if the user accepts the prompt to use\n // more storage on Safari, this error will\n // be called.\n //\n // Try to re-run the transaction.\n if (retriesLeft > 0) {\n resolve(_setItem.apply(self, [key, originalValue, callback, retriesLeft - 1]));\n return;\n }\n reject(sqlError);\n }\n });\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction setItem$1(key, value, callback) {\n return _setItem.apply(this, [key, value, callback, 1]);\n}\n\nfunction removeItem$1(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'DELETE FROM ' + dbInfo.storeName + ' WHERE key = ?', [key], function () {\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Deletes every item in the table.\n// TODO: Find out if this resets the AUTO_INCREMENT number.\nfunction clear$1(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'DELETE FROM ' + dbInfo.storeName, [], function () {\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Does a simple `COUNT(key)` to get the number of items stored in\n// localForage.\nfunction length$1(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n // Ahhh, SQL makes this one soooooo easy.\n tryExecuteSql(t, dbInfo, 'SELECT COUNT(key) as c FROM ' + dbInfo.storeName, [], function (t, results) {\n var result = results.rows.item(0).c;\n resolve(result);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Return the key located at key index X; essentially gets the key from a\n// `WHERE id = ?`. This is the most efficient way I can think to implement\n// this rarely-used (in my experience) part of the API, but it can seem\n// inconsistent, because we do `INSERT OR REPLACE INTO` on `setItem()`, so\n// the ID of each key will change every time it's updated. Perhaps a stored\n// procedure for the `setItem()` SQL would solve this problem?\n// TODO: Don't change ID on `setItem()`.\nfunction key$1(n, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT key FROM ' + dbInfo.storeName + ' WHERE id = ? LIMIT 1', [n + 1], function (t, results) {\n var result = results.rows.length ? results.rows.item(0).key : null;\n resolve(result);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction keys$1(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT key FROM ' + dbInfo.storeName, [], function (t, results) {\n var keys = [];\n\n for (var i = 0; i < results.rows.length; i++) {\n keys.push(results.rows.item(i).key);\n }\n\n resolve(keys);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// https://www.w3.org/TR/webdatabase/#databases\n// > There is no way to enumerate or delete the databases available for an origin from this API.\nfunction getAllStoreNames(db) {\n return new Promise$1(function (resolve, reject) {\n db.transaction(function (t) {\n t.executeSql('SELECT name FROM sqlite_master ' + \"WHERE type='table' AND name <> '__WebKitDatabaseInfoTable__'\", [], function (t, results) {\n var storeNames = [];\n\n for (var i = 0; i < results.rows.length; i++) {\n storeNames.push(results.rows.item(i).name);\n }\n\n resolve({\n db: db,\n storeNames: storeNames\n });\n }, function (t, error) {\n reject(error);\n });\n }, function (sqlError) {\n reject(sqlError);\n });\n });\n}\n\nfunction dropInstance$1(options, callback) {\n callback = getCallback.apply(this, arguments);\n\n var currentConfig = this.config();\n options = typeof options !== 'function' && options || {};\n if (!options.name) {\n options.name = options.name || currentConfig.name;\n options.storeName = options.storeName || currentConfig.storeName;\n }\n\n var self = this;\n var promise;\n if (!options.name) {\n promise = Promise$1.reject('Invalid arguments');\n } else {\n promise = new Promise$1(function (resolve) {\n var db;\n if (options.name === currentConfig.name) {\n // use the db reference of the current instance\n db = self._dbInfo.db;\n } else {\n db = openDatabase(options.name, '', '', 0);\n }\n\n if (!options.storeName) {\n // drop all database tables\n resolve(getAllStoreNames(db));\n } else {\n resolve({\n db: db,\n storeNames: [options.storeName]\n });\n }\n }).then(function (operationInfo) {\n return new Promise$1(function (resolve, reject) {\n operationInfo.db.transaction(function (t) {\n function dropTable(storeName) {\n return new Promise$1(function (resolve, reject) {\n t.executeSql('DROP TABLE IF EXISTS ' + storeName, [], function () {\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n }\n\n var operations = [];\n for (var i = 0, len = operationInfo.storeNames.length; i < len; i++) {\n operations.push(dropTable(operationInfo.storeNames[i]));\n }\n\n Promise$1.all(operations).then(function () {\n resolve();\n })[\"catch\"](function (e) {\n reject(e);\n });\n }, function (sqlError) {\n reject(sqlError);\n });\n });\n });\n }\n\n executeCallback(promise, callback);\n return promise;\n}\n\nvar webSQLStorage = {\n _driver: 'webSQLStorage',\n _initStorage: _initStorage$1,\n _support: isWebSQLValid(),\n iterate: iterate$1,\n getItem: getItem$1,\n setItem: setItem$1,\n removeItem: removeItem$1,\n clear: clear$1,\n length: length$1,\n key: key$1,\n keys: keys$1,\n dropInstance: dropInstance$1\n};\n\nfunction isLocalStorageValid() {\n try {\n return typeof localStorage !== 'undefined' && 'setItem' in localStorage &&\n // in IE8 typeof localStorage.setItem === 'object'\n !!localStorage.setItem;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getKeyPrefix(options, defaultConfig) {\n var keyPrefix = options.name + '/';\n\n if (options.storeName !== defaultConfig.storeName) {\n keyPrefix += options.storeName + '/';\n }\n return keyPrefix;\n}\n\n// Check if localStorage throws when saving an item\nfunction checkIfLocalStorageThrows() {\n var localStorageTestKey = '_localforage_support_test';\n\n try {\n localStorage.setItem(localStorageTestKey, true);\n localStorage.removeItem(localStorageTestKey);\n\n return false;\n } catch (e) {\n return true;\n }\n}\n\n// Check if localStorage is usable and allows to save an item\n// This method checks if localStorage is usable in Safari Private Browsing\n// mode, or in any other case where the available quota for localStorage\n// is 0 and there wasn't any saved items yet.\nfunction _isLocalStorageUsable() {\n return !checkIfLocalStorageThrows() || localStorage.length > 0;\n}\n\n// Config the localStorage backend, using options set in the config.\nfunction _initStorage$2(options) {\n var self = this;\n var dbInfo = {};\n if (options) {\n for (var i in options) {\n dbInfo[i] = options[i];\n }\n }\n\n dbInfo.keyPrefix = _getKeyPrefix(options, self._defaultConfig);\n\n if (!_isLocalStorageUsable()) {\n return Promise$1.reject();\n }\n\n self._dbInfo = dbInfo;\n dbInfo.serializer = localforageSerializer;\n\n return Promise$1.resolve();\n}\n\n// Remove all keys from the datastore, effectively destroying all data in\n// the app's key/value store!\nfunction clear$2(callback) {\n var self = this;\n var promise = self.ready().then(function () {\n var keyPrefix = self._dbInfo.keyPrefix;\n\n for (var i = localStorage.length - 1; i >= 0; i--) {\n var key = localStorage.key(i);\n\n if (key.indexOf(keyPrefix) === 0) {\n localStorage.removeItem(key);\n }\n }\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Retrieve an item from the store. Unlike the original async_storage\n// library in Gaia, we don't modify return values at all. If a key's value\n// is `undefined`, we pass that value to the callback function.\nfunction getItem$2(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var result = localStorage.getItem(dbInfo.keyPrefix + key);\n\n // If a result was found, parse it from the serialized\n // string into a JS object. If result isn't truthy, the key\n // is likely undefined and we'll pass it straight to the\n // callback.\n if (result) {\n result = dbInfo.serializer.deserialize(result);\n }\n\n return result;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Iterate over all items in the store.\nfunction iterate$2(iterator, callback) {\n var self = this;\n\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var keyPrefix = dbInfo.keyPrefix;\n var keyPrefixLength = keyPrefix.length;\n var length = localStorage.length;\n\n // We use a dedicated iterator instead of the `i` variable below\n // so other keys we fetch in localStorage aren't counted in\n // the `iterationNumber` argument passed to the `iterate()`\n // callback.\n //\n // See: github.com/mozilla/localForage/pull/435#discussion_r38061530\n var iterationNumber = 1;\n\n for (var i = 0; i < length; i++) {\n var key = localStorage.key(i);\n if (key.indexOf(keyPrefix) !== 0) {\n continue;\n }\n var value = localStorage.getItem(key);\n\n // If a result was found, parse it from the serialized\n // string into a JS object. If result isn't truthy, the\n // key is likely undefined and we'll pass it straight\n // to the iterator.\n if (value) {\n value = dbInfo.serializer.deserialize(value);\n }\n\n value = iterator(value, key.substring(keyPrefixLength), iterationNumber++);\n\n if (value !== void 0) {\n return value;\n }\n }\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Same as localStorage's key() method, except takes a callback.\nfunction key$2(n, callback) {\n var self = this;\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var result;\n try {\n result = localStorage.key(n);\n } catch (error) {\n result = null;\n }\n\n // Remove the prefix from the key, if a key is found.\n if (result) {\n result = result.substring(dbInfo.keyPrefix.length);\n }\n\n return result;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction keys$2(callback) {\n var self = this;\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var length = localStorage.length;\n var keys = [];\n\n for (var i = 0; i < length; i++) {\n var itemKey = localStorage.key(i);\n if (itemKey.indexOf(dbInfo.keyPrefix) === 0) {\n keys.push(itemKey.substring(dbInfo.keyPrefix.length));\n }\n }\n\n return keys;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Supply the number of keys in the datastore to the callback function.\nfunction length$2(callback) {\n var self = this;\n var promise = self.keys().then(function (keys) {\n return keys.length;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Remove an item from the store, nice and simple.\nfunction removeItem$2(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n localStorage.removeItem(dbInfo.keyPrefix + key);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Set a key's value and run an optional callback once the value is set.\n// Unlike Gaia's implementation, the callback function is passed the value,\n// in case you want to operate on that value only after you're sure it\n// saved, or something like that.\nfunction setItem$2(key, value, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = self.ready().then(function () {\n // Convert undefined values to null.\n // https://github.com/mozilla/localForage/pull/42\n if (value === undefined) {\n value = null;\n }\n\n // Save the original value to pass to the callback.\n var originalValue = value;\n\n return new Promise$1(function (resolve, reject) {\n var dbInfo = self._dbInfo;\n dbInfo.serializer.serialize(value, function (value, error) {\n if (error) {\n reject(error);\n } else {\n try {\n localStorage.setItem(dbInfo.keyPrefix + key, value);\n resolve(originalValue);\n } catch (e) {\n // localStorage capacity exceeded.\n // TODO: Make this a specific error/event.\n if (e.name === 'QuotaExceededError' || e.name === 'NS_ERROR_DOM_QUOTA_REACHED') {\n reject(e);\n }\n reject(e);\n }\n }\n });\n });\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction dropInstance$2(options, callback) {\n callback = getCallback.apply(this, arguments);\n\n options = typeof options !== 'function' && options || {};\n if (!options.name) {\n var currentConfig = this.config();\n options.name = options.name || currentConfig.name;\n options.storeName = options.storeName || currentConfig.storeName;\n }\n\n var self = this;\n var promise;\n if (!options.name) {\n promise = Promise$1.reject('Invalid arguments');\n } else {\n promise = new Promise$1(function (resolve) {\n if (!options.storeName) {\n resolve(options.name + '/');\n } else {\n resolve(_getKeyPrefix(options, self._defaultConfig));\n }\n }).then(function (keyPrefix) {\n for (var i = localStorage.length - 1; i >= 0; i--) {\n var key = localStorage.key(i);\n\n if (key.indexOf(keyPrefix) === 0) {\n localStorage.removeItem(key);\n }\n }\n });\n }\n\n executeCallback(promise, callback);\n return promise;\n}\n\nvar localStorageWrapper = {\n _driver: 'localStorageWrapper',\n _initStorage: _initStorage$2,\n _support: isLocalStorageValid(),\n iterate: iterate$2,\n getItem: getItem$2,\n setItem: setItem$2,\n removeItem: removeItem$2,\n clear: clear$2,\n length: length$2,\n key: key$2,\n keys: keys$2,\n dropInstance: dropInstance$2\n};\n\nvar sameValue = function sameValue(x, y) {\n return x === y || typeof x === 'number' && typeof y === 'number' && isNaN(x) && isNaN(y);\n};\n\nvar includes = function includes(array, searchElement) {\n var len = array.length;\n var i = 0;\n while (i < len) {\n if (sameValue(array[i], searchElement)) {\n return true;\n }\n i++;\n }\n\n return false;\n};\n\nvar isArray = Array.isArray || function (arg) {\n return Object.prototype.toString.call(arg) === '[object Array]';\n};\n\n// Drivers are stored here when `defineDriver()` is called.\n// They are shared across all instances of localForage.\nvar DefinedDrivers = {};\n\nvar DriverSupport = {};\n\nvar DefaultDrivers = {\n INDEXEDDB: asyncStorage,\n WEBSQL: webSQLStorage,\n LOCALSTORAGE: localStorageWrapper\n};\n\nvar DefaultDriverOrder = [DefaultDrivers.INDEXEDDB._driver, DefaultDrivers.WEBSQL._driver, DefaultDrivers.LOCALSTORAGE._driver];\n\nvar OptionalDriverMethods = ['dropInstance'];\n\nvar LibraryMethods = ['clear', 'getItem', 'iterate', 'key', 'keys', 'length', 'removeItem', 'setItem'].concat(OptionalDriverMethods);\n\nvar DefaultConfig = {\n description: '',\n driver: DefaultDriverOrder.slice(),\n name: 'localforage',\n // Default DB size is _JUST UNDER_ 5MB, as it's the highest size\n // we can use without a prompt.\n size: 4980736,\n storeName: 'keyvaluepairs',\n version: 1.0\n};\n\nfunction callWhenReady(localForageInstance, libraryMethod) {\n localForageInstance[libraryMethod] = function () {\n var _args = arguments;\n return localForageInstance.ready().then(function () {\n return localForageInstance[libraryMethod].apply(localForageInstance, _args);\n });\n };\n}\n\nfunction extend() {\n for (var i = 1; i < arguments.length; i++) {\n var arg = arguments[i];\n\n if (arg) {\n for (var _key in arg) {\n if (arg.hasOwnProperty(_key)) {\n if (isArray(arg[_key])) {\n arguments[0][_key] = arg[_key].slice();\n } else {\n arguments[0][_key] = arg[_key];\n }\n }\n }\n }\n }\n\n return arguments[0];\n}\n\nvar LocalForage = function () {\n function LocalForage(options) {\n _classCallCheck(this, LocalForage);\n\n for (var driverTypeKey in DefaultDrivers) {\n if (DefaultDrivers.hasOwnProperty(driverTypeKey)) {\n var driver = DefaultDrivers[driverTypeKey];\n var driverName = driver._driver;\n this[driverTypeKey] = driverName;\n\n if (!DefinedDrivers[driverName]) {\n // we don't need to wait for the promise,\n // since the default drivers can be defined\n // in a blocking manner\n this.defineDriver(driver);\n }\n }\n }\n\n this._defaultConfig = extend({}, DefaultConfig);\n this._config = extend({}, this._defaultConfig, options);\n this._driverSet = null;\n this._initDriver = null;\n this._ready = false;\n this._dbInfo = null;\n\n this._wrapLibraryMethodsWithReady();\n this.setDriver(this._config.driver)[\"catch\"](function () {});\n }\n\n // Set any config values for localForage; can be called anytime before\n // the first API call (e.g. `getItem`, `setItem`).\n // We loop through options so we don't overwrite existing config\n // values.\n\n\n LocalForage.prototype.config = function config(options) {\n // If the options argument is an object, we use it to set values.\n // Otherwise, we return either a specified config value or all\n // config values.\n if ((typeof options === 'undefined' ? 'undefined' : _typeof(options)) === 'object') {\n // If localforage is ready and fully initialized, we can't set\n // any new configuration values. Instead, we return an error.\n if (this._ready) {\n return new Error(\"Can't call config() after localforage \" + 'has been used.');\n }\n\n for (var i in options) {\n if (i === 'storeName') {\n options[i] = options[i].replace(/\\W/g, '_');\n }\n\n if (i === 'version' && typeof options[i] !== 'number') {\n return new Error('Database version must be a number.');\n }\n\n this._config[i] = options[i];\n }\n\n // after all config options are set and\n // the driver option is used, try setting it\n if ('driver' in options && options.driver) {\n return this.setDriver(this._config.driver);\n }\n\n return true;\n } else if (typeof options === 'string') {\n return this._config[options];\n } else {\n return this._config;\n }\n };\n\n // Used to define a custom driver, shared across all instances of\n // localForage.\n\n\n LocalForage.prototype.defineDriver = function defineDriver(driverObject, callback, errorCallback) {\n var promise = new Promise$1(function (resolve, reject) {\n try {\n var driverName = driverObject._driver;\n var complianceError = new Error('Custom driver not compliant; see ' + 'https://mozilla.github.io/localForage/#definedriver');\n\n // A driver name should be defined and not overlap with the\n // library-defined, default drivers.\n if (!driverObject._driver) {\n reject(complianceError);\n return;\n }\n\n var driverMethods = LibraryMethods.concat('_initStorage');\n for (var i = 0, len = driverMethods.length; i < len; i++) {\n var driverMethodName = driverMethods[i];\n\n // when the property is there,\n // it should be a method even when optional\n var isRequired = !includes(OptionalDriverMethods, driverMethodName);\n if ((isRequired || driverObject[driverMethodName]) && typeof driverObject[driverMethodName] !== 'function') {\n reject(complianceError);\n return;\n }\n }\n\n var configureMissingMethods = function configureMissingMethods() {\n var methodNotImplementedFactory = function methodNotImplementedFactory(methodName) {\n return function () {\n var error = new Error('Method ' + methodName + ' is not implemented by the current driver');\n var promise = Promise$1.reject(error);\n executeCallback(promise, arguments[arguments.length - 1]);\n return promise;\n };\n };\n\n for (var _i = 0, _len = OptionalDriverMethods.length; _i < _len; _i++) {\n var optionalDriverMethod = OptionalDriverMethods[_i];\n if (!driverObject[optionalDriverMethod]) {\n driverObject[optionalDriverMethod] = methodNotImplementedFactory(optionalDriverMethod);\n }\n }\n };\n\n configureMissingMethods();\n\n var setDriverSupport = function setDriverSupport(support) {\n if (DefinedDrivers[driverName]) {\n console.info('Redefining LocalForage driver: ' + driverName);\n }\n DefinedDrivers[driverName] = driverObject;\n DriverSupport[driverName] = support;\n // don't use a then, so that we can define\n // drivers that have simple _support methods\n // in a blocking manner\n resolve();\n };\n\n if ('_support' in driverObject) {\n if (driverObject._support && typeof driverObject._support === 'function') {\n driverObject._support().then(setDriverSupport, reject);\n } else {\n setDriverSupport(!!driverObject._support);\n }\n } else {\n setDriverSupport(true);\n }\n } catch (e) {\n reject(e);\n }\n });\n\n executeTwoCallbacks(promise, callback, errorCallback);\n return promise;\n };\n\n LocalForage.prototype.driver = function driver() {\n return this._driver || null;\n };\n\n LocalForage.prototype.getDriver = function getDriver(driverName, callback, errorCallback) {\n var getDriverPromise = DefinedDrivers[driverName] ? Promise$1.resolve(DefinedDrivers[driverName]) : Promise$1.reject(new Error('Driver not found.'));\n\n executeTwoCallbacks(getDriverPromise, callback, errorCallback);\n return getDriverPromise;\n };\n\n LocalForage.prototype.getSerializer = function getSerializer(callback) {\n var serializerPromise = Promise$1.resolve(localforageSerializer);\n executeTwoCallbacks(serializerPromise, callback);\n return serializerPromise;\n };\n\n LocalForage.prototype.ready = function ready(callback) {\n var self = this;\n\n var promise = self._driverSet.then(function () {\n if (self._ready === null) {\n self._ready = self._initDriver();\n }\n\n return self._ready;\n });\n\n executeTwoCallbacks(promise, callback, callback);\n return promise;\n };\n\n LocalForage.prototype.setDriver = function setDriver(drivers, callback, errorCallback) {\n var self = this;\n\n if (!isArray(drivers)) {\n drivers = [drivers];\n }\n\n var supportedDrivers = this._getSupportedDrivers(drivers);\n\n function setDriverToConfig() {\n self._config.driver = self.driver();\n }\n\n function extendSelfWithDriver(driver) {\n self._extend(driver);\n setDriverToConfig();\n\n self._ready = self._initStorage(self._config);\n return self._ready;\n }\n\n function initDriver(supportedDrivers) {\n return function () {\n var currentDriverIndex = 0;\n\n function driverPromiseLoop() {\n while (currentDriverIndex < supportedDrivers.length) {\n var driverName = supportedDrivers[currentDriverIndex];\n currentDriverIndex++;\n\n self._dbInfo = null;\n self._ready = null;\n\n return self.getDriver(driverName).then(extendSelfWithDriver)[\"catch\"](driverPromiseLoop);\n }\n\n setDriverToConfig();\n var error = new Error('No available storage method found.');\n self._driverSet = Promise$1.reject(error);\n return self._driverSet;\n }\n\n return driverPromiseLoop();\n };\n }\n\n // There might be a driver initialization in progress\n // so wait for it to finish in order to avoid a possible\n // race condition to set _dbInfo\n var oldDriverSetDone = this._driverSet !== null ? this._driverSet[\"catch\"](function () {\n return Promise$1.resolve();\n }) : Promise$1.resolve();\n\n this._driverSet = oldDriverSetDone.then(function () {\n var driverName = supportedDrivers[0];\n self._dbInfo = null;\n self._ready = null;\n\n return self.getDriver(driverName).then(function (driver) {\n self._driver = driver._driver;\n setDriverToConfig();\n self._wrapLibraryMethodsWithReady();\n self._initDriver = initDriver(supportedDrivers);\n });\n })[\"catch\"](function () {\n setDriverToConfig();\n var error = new Error('No available storage method found.');\n self._driverSet = Promise$1.reject(error);\n return self._driverSet;\n });\n\n executeTwoCallbacks(this._driverSet, callback, errorCallback);\n return this._driverSet;\n };\n\n LocalForage.prototype.supports = function supports(driverName) {\n return !!DriverSupport[driverName];\n };\n\n LocalForage.prototype._extend = function _extend(libraryMethodsAndProperties) {\n extend(this, libraryMethodsAndProperties);\n };\n\n LocalForage.prototype._getSupportedDrivers = function _getSupportedDrivers(drivers) {\n var supportedDrivers = [];\n for (var i = 0, len = drivers.length; i < len; i++) {\n var driverName = drivers[i];\n if (this.supports(driverName)) {\n supportedDrivers.push(driverName);\n }\n }\n return supportedDrivers;\n };\n\n LocalForage.prototype._wrapLibraryMethodsWithReady = function _wrapLibraryMethodsWithReady() {\n // Add a stub for each driver API method that delays the call to the\n // corresponding driver method until localForage is ready. These stubs\n // will be replaced by the driver methods as soon as the driver is\n // loaded, so there is no performance impact.\n for (var i = 0, len = LibraryMethods.length; i < len; i++) {\n callWhenReady(this, LibraryMethods[i]);\n }\n };\n\n LocalForage.prototype.createInstance = function createInstance(options) {\n return new LocalForage(options);\n };\n\n return LocalForage;\n}();\n\n// The actual localForage object that we expose as a module or via a\n// global. It's extended by pulling in one of our other libraries.\n\n\nvar localforage_js = new LocalForage();\n\nmodule.exports = localforage_js;\n\n},{\"3\":3}]},{},[4])(4)\n});\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var baseForOwn = require('./_baseForOwn'),\n createBaseEach = require('./_createBaseEach');\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nmodule.exports = baseEach;\n","var baseEach = require('./_baseEach');\n\n/**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n}\n\nmodule.exports = baseFilter;\n","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var isArrayLike = require('./isArrayLike');\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nmodule.exports = createBaseEach;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var arrayFilter = require('./_arrayFilter'),\n baseFilter = require('./_baseFilter'),\n baseIteratee = require('./_baseIteratee'),\n isArray = require('./isArray');\n\n/**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n *\n * // Combining several predicates using `_.overEvery` or `_.overSome`.\n * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));\n * // => objects for ['fred', 'barney']\n */\nfunction filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, baseIteratee(predicate, 3));\n}\n\nmodule.exports = filter;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","'use strict';\n\nvar qs = require('querystring')\n , url = require('url')\n , xtend = require('xtend');\n\nconst PARSE_LINK_HEADER_MAXLEN = parseInt(process.env.PARSE_LINK_HEADER_MAXLEN) || 2000;\nconst PARSE_LINK_HEADER_THROW_ON_MAXLEN_EXCEEDED = process.env.PARSE_LINK_HEADER_THROW_ON_MAXLEN_EXCEEDED != null\n\nfunction hasRel(x) {\n return x && x.rel;\n}\n\nfunction intoRels (acc, x) {\n function splitRel (rel) {\n acc[rel] = xtend(x, { rel: rel });\n }\n\n x.rel.split(/\\s+/).forEach(splitRel);\n\n return acc;\n}\n\nfunction createObjects (acc, p) {\n // rel=\"next\" => 1: rel 2: next\n var m = p.match(/\\s*(.+)\\s*=\\s*\"?([^\"]+)\"?/)\n if (m) acc[m[1]] = m[2];\n return acc;\n}\n\nfunction parseLink(link) {\n try {\n var m = link.match(/]*)>(.*)/)\n , linkUrl = m[1]\n , parts = m[2].split(';')\n , parsedUrl = url.parse(linkUrl)\n , qry = qs.parse(parsedUrl.query);\n\n parts.shift();\n\n var info = parts\n .reduce(createObjects, {});\n \n info = xtend(qry, info);\n info.url = linkUrl;\n return info;\n } catch (e) {\n return null;\n }\n}\n\nfunction checkHeader(linkHeader){\n if (!linkHeader) return false;\n\n if (linkHeader.length > PARSE_LINK_HEADER_MAXLEN) {\n if (PARSE_LINK_HEADER_THROW_ON_MAXLEN_EXCEEDED) {\n throw new Error('Input string too long, it should be under ' + PARSE_LINK_HEADER_MAXLEN + ' characters.');\n } else {\n return false;\n }\n }\n return true;\n}\n\nmodule.exports = function (linkHeader) {\n if (!checkHeader(linkHeader)) return null;\n\n return linkHeader.split(/,\\s*= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\tfloor = Math.floor,\n\tstringFromCharCode = String.fromCharCode,\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */\n\tfunction error(type) {\n\t\tthrow RangeError(errors[type]);\n\t}\n\n\t/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see \n\t * @memberOf punycode.ucs2\n\t * @name decode\n\t * @param {String} string The Unicode input string (UCS-2).\n\t * @returns {Array} The new array of code points.\n\t */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t counter = 0,\n\t\t length = string.length,\n\t\t value,\n\t\t extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n\t * Creates a string based on an array of numeric code points.\n\t * @see `punycode.ucs2.decode`\n\t * @memberOf punycode.ucs2\n\t * @name encode\n\t * @param {Array} codePoints The array of numeric code points.\n\t * @returns {String} The new Unicode string (UCS-2).\n\t */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function(value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n\t * Converts a basic code point into a digit/integer.\n\t * @see `digitToBasic()`\n\t * @private\n\t * @param {Number} codePoint The basic numeric code point value.\n\t * @returns {Number} The numeric value of a basic code point (for use in\n\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t * the code point does not represent a value.\n\t */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n\t * Converts a digit/integer into a basic code point.\n\t * @see `basicToDigit()`\n\t * @private\n\t * @param {Number} digit The numeric value of a basic code point.\n\t * @returns {Number} The basic code point whose value (when used for\n\t * representing integers) is `digit`, which needs to be in the range\n\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t * used; else, the lowercase form is used. The behavior is undefined\n\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t */\n\tfunction digitToBasic(digit, flag) {\n\t\t// 0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t * http://tools.ietf.org/html/rfc3492#section-3.4\n\t * @private\n\t */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t * symbols.\n\t * @memberOf punycode\n\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t * @returns {String} The resulting string of Unicode symbols.\n\t */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t inputLength = input.length,\n\t\t out,\n\t\t i = 0,\n\t\t n = initialN,\n\t\t bias = initialBias,\n\t\t basic,\n\t\t j,\n\t\t index,\n\t\t oldi,\n\t\t w,\n\t\t k,\n\t\t digit,\n\t\t t,\n\t\t /** Cached calculation results */\n\t\t baseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t * Punycode string of ASCII-only symbols.\n\t * @memberOf punycode\n\t * @param {String} input The string of Unicode symbols.\n\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t delta,\n\t\t handledCPCount,\n\t\t basicLength,\n\t\t bias,\n\t\t j,\n\t\t m,\n\t\t q,\n\t\t k,\n\t\t t,\n\t\t currentValue,\n\t\t output = [],\n\t\t /** `inputLength` will hold the number of code points in `input`. */\n\t\t inputLength,\n\t\t /** Cached calculation results */\n\t\t handledCPCountPlusOne,\n\t\t baseMinusT,\n\t\t qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's state to ,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base; /* no condition */; k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(\n\t\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t\t);\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n\t * Converts a Punycode string representing a domain name or an email address\n\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t * it doesn't matter if you call it on a string that has already been\n\t * converted to Unicode.\n\t * @memberOf punycode\n\t * @param {String} input The Punycoded domain name or email address to\n\t * convert to Unicode.\n\t * @returns {String} The Unicode representation of the given Punycode\n\t * string.\n\t */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexPunycode.test(string)\n\t\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a Unicode string representing a domain name or an email address to\n\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t * ASCII.\n\t * @memberOf punycode\n\t * @param {String} input The domain name or email address to convert, as a\n\t * Unicode string.\n\t * @returns {String} The Punycode representation of the given domain name or\n\t * email address.\n\t */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexNonASCII.test(string)\n\t\t\t\t? 'xn--' + encode(string)\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n\t\t * A string representing the current Punycode.js version number.\n\t\t * @memberOf punycode\n\t\t * @type String\n\t\t */\n\t\t'version': '1.3.2',\n\t\t/**\n\t\t * An object of methods to convert from JavaScript's internal character\n\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t * @see \n\t\t * @memberOf punycode\n\t\t * @type Object\n\t\t */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine('punycode', function() {\n\t\t\treturn punycode;\n\t\t});\n\t} else if (freeExports && freeModule) {\n\t\tif (module.exports == freeExports) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (key in punycode) {\n\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n\n}(this));\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n// If obj.hasOwnProperty has been overridden, then calling\n// obj.hasOwnProperty(prop) will break.\n// See: https://github.com/joyent/node/issues/1707\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nmodule.exports = function(qs, sep, eq, options) {\n sep = sep || '&';\n eq = eq || '=';\n var obj = {};\n\n if (typeof qs !== 'string' || qs.length === 0) {\n return obj;\n }\n\n var regexp = /\\+/g;\n qs = qs.split(sep);\n\n var maxKeys = 1000;\n if (options && typeof options.maxKeys === 'number') {\n maxKeys = options.maxKeys;\n }\n\n var len = qs.length;\n // maxKeys <= 0 means that we should not limit keys count\n if (maxKeys > 0 && len > maxKeys) {\n len = maxKeys;\n }\n\n for (var i = 0; i < len; ++i) {\n var x = qs[i].replace(regexp, '%20'),\n idx = x.indexOf(eq),\n kstr, vstr, k, v;\n\n if (idx >= 0) {\n kstr = x.substr(0, idx);\n vstr = x.substr(idx + 1);\n } else {\n kstr = x;\n vstr = '';\n }\n\n k = decodeURIComponent(kstr);\n v = decodeURIComponent(vstr);\n\n if (!hasOwnProperty(obj, k)) {\n obj[k] = v;\n } else if (Array.isArray(obj[k])) {\n obj[k].push(v);\n } else {\n obj[k] = [obj[k], v];\n }\n }\n\n return obj;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar stringifyPrimitive = function(v) {\n switch (typeof v) {\n case 'string':\n return v;\n\n case 'boolean':\n return v ? 'true' : 'false';\n\n case 'number':\n return isFinite(v) ? v : '';\n\n default:\n return '';\n }\n};\n\nmodule.exports = function(obj, sep, eq, name) {\n sep = sep || '&';\n eq = eq || '=';\n if (obj === null) {\n obj = undefined;\n }\n\n if (typeof obj === 'object') {\n return Object.keys(obj).map(function(k) {\n var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n if (Array.isArray(obj[k])) {\n return obj[k].map(function(v) {\n return ks + encodeURIComponent(stringifyPrimitive(v));\n }).join(sep);\n } else {\n return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n }\n }).join(sep);\n\n }\n\n if (!name) return '';\n return encodeURIComponent(stringifyPrimitive(name)) + eq +\n encodeURIComponent(stringifyPrimitive(obj));\n};\n","'use strict';\n\nexports.decode = exports.parse = require('./decode');\nexports.encode = exports.stringify = require('./encode');\n","var serviceWorkerOption = {\"scriptURL\":\"/sw-pleroma.js\"};\n \"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/* eslint-disable flowtype/require-valid-file-annotation */\n/* global serviceWorkerOption */\n\nexports.default = {\n register: function register() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (navigator.serviceWorker) {\n return navigator.serviceWorker.register(serviceWorkerOption.scriptURL, options);\n }\n\n return false;\n }\n};\nmodule.exports = exports[\"default\"];","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar punycode = require('punycode');\nvar util = require('./util');\n\nexports.parse = urlParse;\nexports.resolve = urlResolve;\nexports.resolveObject = urlResolveObject;\nexports.format = urlFormat;\n\nexports.Url = Url;\n\nfunction Url() {\n this.protocol = null;\n this.slashes = null;\n this.auth = null;\n this.host = null;\n this.port = null;\n this.hostname = null;\n this.hash = null;\n this.search = null;\n this.query = null;\n this.pathname = null;\n this.path = null;\n this.href = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n// define these here so at least they only have to be\n// compiled once on the first module load.\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n portPattern = /:[0-9]*$/,\n\n // Special case for a simple path URL\n simplePathPattern = /^(\\/\\/?(?!\\/)[^\\?\\s]*)(\\?[^\\s]*)?$/,\n\n // RFC 2396: characters reserved for delimiting URLs.\n // We actually just auto-escape these.\n delims = ['<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'],\n\n // RFC 2396: characters not allowed for various reasons.\n unwise = ['{', '}', '|', '\\\\', '^', '`'].concat(delims),\n\n // Allowed by RFCs, but cause of XSS attacks. Always escape these.\n autoEscape = ['\\''].concat(unwise),\n // Characters that are never ever allowed in a hostname.\n // Note that any invalid chars are also handled, but these\n // are the ones that are *expected* to be seen, so we fast-path\n // them.\n nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape),\n hostEndingChars = ['/', '?', '#'],\n hostnameMaxLen = 255,\n hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,\n hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,\n // protocols that can allow \"unsafe\" and \"unwise\" chars.\n unsafeProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that never have a hostname.\n hostlessProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that always contain a // bit.\n slashedProtocol = {\n 'http': true,\n 'https': true,\n 'ftp': true,\n 'gopher': true,\n 'file': true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n },\n querystring = require('querystring');\n\nfunction urlParse(url, parseQueryString, slashesDenoteHost) {\n if (url && util.isObject(url) && url instanceof Url) return url;\n\n var u = new Url;\n u.parse(url, parseQueryString, slashesDenoteHost);\n return u;\n}\n\nUrl.prototype.parse = function(url, parseQueryString, slashesDenoteHost) {\n if (!util.isString(url)) {\n throw new TypeError(\"Parameter 'url' must be a string, not \" + typeof url);\n }\n\n // Copy chrome, IE, opera backslash-handling behavior.\n // Back slashes before the query string get converted to forward slashes\n // See: https://code.google.com/p/chromium/issues/detail?id=25916\n var queryIndex = url.indexOf('?'),\n splitter =\n (queryIndex !== -1 && queryIndex < url.indexOf('#')) ? '?' : '#',\n uSplit = url.split(splitter),\n slashRegex = /\\\\/g;\n uSplit[0] = uSplit[0].replace(slashRegex, '/');\n url = uSplit.join(splitter);\n\n var rest = url;\n\n // trim before proceeding.\n // This is to support parse stuff like \" http://foo.com \\n\"\n rest = rest.trim();\n\n if (!slashesDenoteHost && url.split('#').length === 1) {\n // Try fast path regexp\n var simplePath = simplePathPattern.exec(rest);\n if (simplePath) {\n this.path = rest;\n this.href = rest;\n this.pathname = simplePath[1];\n if (simplePath[2]) {\n this.search = simplePath[2];\n if (parseQueryString) {\n this.query = querystring.parse(this.search.substr(1));\n } else {\n this.query = this.search.substr(1);\n }\n } else if (parseQueryString) {\n this.search = '';\n this.query = {};\n }\n return this;\n }\n }\n\n var proto = protocolPattern.exec(rest);\n if (proto) {\n proto = proto[0];\n var lowerProto = proto.toLowerCase();\n this.protocol = lowerProto;\n rest = rest.substr(proto.length);\n }\n\n // figure out if it's got a host\n // user@server is *always* interpreted as a hostname, and url\n // resolution will treat //foo/bar as host=foo,path=bar because that's\n // how the browser resolves relative URLs.\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n var slashes = rest.substr(0, 2) === '//';\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2);\n this.slashes = true;\n }\n }\n\n if (!hostlessProtocol[proto] &&\n (slashes || (proto && !slashedProtocol[proto]))) {\n\n // there's a hostname.\n // the first instance of /, ?, ;, or # ends the host.\n //\n // If there is an @ in the hostname, then non-host chars *are* allowed\n // to the left of the last @ sign, unless some host-ending character\n // comes *before* the @-sign.\n // URLs are obnoxious.\n //\n // ex:\n // http://a@b@c/ => user:a@b host:c\n // http://a@b?@c => user:a host:c path:/?@c\n\n // v0.12 TODO(isaacs): This is not quite how Chrome does things.\n // Review our test case against browsers more comprehensively.\n\n // find the first instance of any hostEndingChars\n var hostEnd = -1;\n for (var i = 0; i < hostEndingChars.length; i++) {\n var hec = rest.indexOf(hostEndingChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n\n // at this point, either we have an explicit point where the\n // auth portion cannot go past, or the last @ char is the decider.\n var auth, atSign;\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@');\n } else {\n // atSign must be in auth portion.\n // http://a@b/c@d => host:b auth:a path:/c@d\n atSign = rest.lastIndexOf('@', hostEnd);\n }\n\n // Now we have a portion which is definitely the auth.\n // Pull that off.\n if (atSign !== -1) {\n auth = rest.slice(0, atSign);\n rest = rest.slice(atSign + 1);\n this.auth = decodeURIComponent(auth);\n }\n\n // the host is the remaining to the left of the first non-host char\n hostEnd = -1;\n for (var i = 0; i < nonHostChars.length; i++) {\n var hec = rest.indexOf(nonHostChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n // if we still have not hit it, then the entire thing is a host.\n if (hostEnd === -1)\n hostEnd = rest.length;\n\n this.host = rest.slice(0, hostEnd);\n rest = rest.slice(hostEnd);\n\n // pull out port.\n this.parseHost();\n\n // we've indicated that there is a hostname,\n // so even if it's empty, it has to be present.\n this.hostname = this.hostname || '';\n\n // if hostname begins with [ and ends with ]\n // assume that it's an IPv6 address.\n var ipv6Hostname = this.hostname[0] === '[' &&\n this.hostname[this.hostname.length - 1] === ']';\n\n // validate a little.\n if (!ipv6Hostname) {\n var hostparts = this.hostname.split(/\\./);\n for (var i = 0, l = hostparts.length; i < l; i++) {\n var part = hostparts[i];\n if (!part) continue;\n if (!part.match(hostnamePartPattern)) {\n var newpart = '';\n for (var j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n // we replace non-ASCII char with a temporary placeholder\n // we need this to make sure size of hostname is not\n // broken by replacing non-ASCII by nothing\n newpart += 'x';\n } else {\n newpart += part[j];\n }\n }\n // we test again with ASCII char only\n if (!newpart.match(hostnamePartPattern)) {\n var validParts = hostparts.slice(0, i);\n var notHost = hostparts.slice(i + 1);\n var bit = part.match(hostnamePartStart);\n if (bit) {\n validParts.push(bit[1]);\n notHost.unshift(bit[2]);\n }\n if (notHost.length) {\n rest = '/' + notHost.join('.') + rest;\n }\n this.hostname = validParts.join('.');\n break;\n }\n }\n }\n }\n\n if (this.hostname.length > hostnameMaxLen) {\n this.hostname = '';\n } else {\n // hostnames are always lower case.\n this.hostname = this.hostname.toLowerCase();\n }\n\n if (!ipv6Hostname) {\n // IDNA Support: Returns a punycoded representation of \"domain\".\n // It only converts parts of the domain name that\n // have non-ASCII characters, i.e. it doesn't matter if\n // you call it with a domain that already is ASCII-only.\n this.hostname = punycode.toASCII(this.hostname);\n }\n\n var p = this.port ? ':' + this.port : '';\n var h = this.hostname || '';\n this.host = h + p;\n this.href += this.host;\n\n // strip [ and ] from the hostname\n // the host field still retains them, though\n if (ipv6Hostname) {\n this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n if (rest[0] !== '/') {\n rest = '/' + rest;\n }\n }\n }\n\n // now rest is set to the post-host stuff.\n // chop off any delim chars.\n if (!unsafeProtocol[lowerProto]) {\n\n // First, make 100% sure that any \"autoEscape\" chars get\n // escaped, even if encodeURIComponent doesn't think they\n // need to be.\n for (var i = 0, l = autoEscape.length; i < l; i++) {\n var ae = autoEscape[i];\n if (rest.indexOf(ae) === -1)\n continue;\n var esc = encodeURIComponent(ae);\n if (esc === ae) {\n esc = escape(ae);\n }\n rest = rest.split(ae).join(esc);\n }\n }\n\n\n // chop off from the tail first.\n var hash = rest.indexOf('#');\n if (hash !== -1) {\n // got a fragment string.\n this.hash = rest.substr(hash);\n rest = rest.slice(0, hash);\n }\n var qm = rest.indexOf('?');\n if (qm !== -1) {\n this.search = rest.substr(qm);\n this.query = rest.substr(qm + 1);\n if (parseQueryString) {\n this.query = querystring.parse(this.query);\n }\n rest = rest.slice(0, qm);\n } else if (parseQueryString) {\n // no query string, but parseQueryString still requested\n this.search = '';\n this.query = {};\n }\n if (rest) this.pathname = rest;\n if (slashedProtocol[lowerProto] &&\n this.hostname && !this.pathname) {\n this.pathname = '/';\n }\n\n //to support http.request\n if (this.pathname || this.search) {\n var p = this.pathname || '';\n var s = this.search || '';\n this.path = p + s;\n }\n\n // finally, reconstruct the href based on what has been validated.\n this.href = this.format();\n return this;\n};\n\n// format a parsed object into a url string\nfunction urlFormat(obj) {\n // ensure it's an object, and not a string url.\n // If it's an obj, this is a no-op.\n // this way, you can call url_format() on strings\n // to clean up potentially wonky urls.\n if (util.isString(obj)) obj = urlParse(obj);\n if (!(obj instanceof Url)) return Url.prototype.format.call(obj);\n return obj.format();\n}\n\nUrl.prototype.format = function() {\n var auth = this.auth || '';\n if (auth) {\n auth = encodeURIComponent(auth);\n auth = auth.replace(/%3A/i, ':');\n auth += '@';\n }\n\n var protocol = this.protocol || '',\n pathname = this.pathname || '',\n hash = this.hash || '',\n host = false,\n query = '';\n\n if (this.host) {\n host = auth + this.host;\n } else if (this.hostname) {\n host = auth + (this.hostname.indexOf(':') === -1 ?\n this.hostname :\n '[' + this.hostname + ']');\n if (this.port) {\n host += ':' + this.port;\n }\n }\n\n if (this.query &&\n util.isObject(this.query) &&\n Object.keys(this.query).length) {\n query = querystring.stringify(this.query);\n }\n\n var search = this.search || (query && ('?' + query)) || '';\n\n if (protocol && protocol.substr(-1) !== ':') protocol += ':';\n\n // only the slashedProtocols get the //. Not mailto:, xmpp:, etc.\n // unless they had them to begin with.\n if (this.slashes ||\n (!protocol || slashedProtocol[protocol]) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname;\n } else if (!host) {\n host = '';\n }\n\n if (hash && hash.charAt(0) !== '#') hash = '#' + hash;\n if (search && search.charAt(0) !== '?') search = '?' + search;\n\n pathname = pathname.replace(/[?#]/g, function(match) {\n return encodeURIComponent(match);\n });\n search = search.replace('#', '%23');\n\n return protocol + host + pathname + search + hash;\n};\n\nfunction urlResolve(source, relative) {\n return urlParse(source, false, true).resolve(relative);\n}\n\nUrl.prototype.resolve = function(relative) {\n return this.resolveObject(urlParse(relative, false, true)).format();\n};\n\nfunction urlResolveObject(source, relative) {\n if (!source) return relative;\n return urlParse(source, false, true).resolveObject(relative);\n}\n\nUrl.prototype.resolveObject = function(relative) {\n if (util.isString(relative)) {\n var rel = new Url();\n rel.parse(relative, false, true);\n relative = rel;\n }\n\n var result = new Url();\n var tkeys = Object.keys(this);\n for (var tk = 0; tk < tkeys.length; tk++) {\n var tkey = tkeys[tk];\n result[tkey] = this[tkey];\n }\n\n // hash is always overridden, no matter what.\n // even href=\"\" will remove it.\n result.hash = relative.hash;\n\n // if the relative url is empty, then there's nothing left to do here.\n if (relative.href === '') {\n result.href = result.format();\n return result;\n }\n\n // hrefs like //foo/bar always cut to the protocol.\n if (relative.slashes && !relative.protocol) {\n // take everything except the protocol from relative\n var rkeys = Object.keys(relative);\n for (var rk = 0; rk < rkeys.length; rk++) {\n var rkey = rkeys[rk];\n if (rkey !== 'protocol')\n result[rkey] = relative[rkey];\n }\n\n //urlParse appends trailing / to urls like http://www.example.com\n if (slashedProtocol[result.protocol] &&\n result.hostname && !result.pathname) {\n result.path = result.pathname = '/';\n }\n\n result.href = result.format();\n return result;\n }\n\n if (relative.protocol && relative.protocol !== result.protocol) {\n // if it's a known url protocol, then changing\n // the protocol does weird things\n // first, if it's not file:, then we MUST have a host,\n // and if there was a path\n // to begin with, then we MUST have a path.\n // if it is file:, then the host is dropped,\n // because that's known to be hostless.\n // anything else is assumed to be absolute.\n if (!slashedProtocol[relative.protocol]) {\n var keys = Object.keys(relative);\n for (var v = 0; v < keys.length; v++) {\n var k = keys[v];\n result[k] = relative[k];\n }\n result.href = result.format();\n return result;\n }\n\n result.protocol = relative.protocol;\n if (!relative.host && !hostlessProtocol[relative.protocol]) {\n var relPath = (relative.pathname || '').split('/');\n while (relPath.length && !(relative.host = relPath.shift()));\n if (!relative.host) relative.host = '';\n if (!relative.hostname) relative.hostname = '';\n if (relPath[0] !== '') relPath.unshift('');\n if (relPath.length < 2) relPath.unshift('');\n result.pathname = relPath.join('/');\n } else {\n result.pathname = relative.pathname;\n }\n result.search = relative.search;\n result.query = relative.query;\n result.host = relative.host || '';\n result.auth = relative.auth;\n result.hostname = relative.hostname || relative.host;\n result.port = relative.port;\n // to support http.request\n if (result.pathname || result.search) {\n var p = result.pathname || '';\n var s = result.search || '';\n result.path = p + s;\n }\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n }\n\n var isSourceAbs = (result.pathname && result.pathname.charAt(0) === '/'),\n isRelAbs = (\n relative.host ||\n relative.pathname && relative.pathname.charAt(0) === '/'\n ),\n mustEndAbs = (isRelAbs || isSourceAbs ||\n (result.host && relative.pathname)),\n removeAllDots = mustEndAbs,\n srcPath = result.pathname && result.pathname.split('/') || [],\n relPath = relative.pathname && relative.pathname.split('/') || [],\n psychotic = result.protocol && !slashedProtocol[result.protocol];\n\n // if the url is a non-slashed url, then relative\n // links like ../.. should be able\n // to crawl up to the hostname, as well. This is strange.\n // result.protocol has already been set by now.\n // Later on, put the first path part into the host field.\n if (psychotic) {\n result.hostname = '';\n result.port = null;\n if (result.host) {\n if (srcPath[0] === '') srcPath[0] = result.host;\n else srcPath.unshift(result.host);\n }\n result.host = '';\n if (relative.protocol) {\n relative.hostname = null;\n relative.port = null;\n if (relative.host) {\n if (relPath[0] === '') relPath[0] = relative.host;\n else relPath.unshift(relative.host);\n }\n relative.host = null;\n }\n mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n }\n\n if (isRelAbs) {\n // it's absolute.\n result.host = (relative.host || relative.host === '') ?\n relative.host : result.host;\n result.hostname = (relative.hostname || relative.hostname === '') ?\n relative.hostname : result.hostname;\n result.search = relative.search;\n result.query = relative.query;\n srcPath = relPath;\n // fall through to the dot-handling below.\n } else if (relPath.length) {\n // it's relative\n // throw away the existing file, and take the new path instead.\n if (!srcPath) srcPath = [];\n srcPath.pop();\n srcPath = srcPath.concat(relPath);\n result.search = relative.search;\n result.query = relative.query;\n } else if (!util.isNullOrUndefined(relative.search)) {\n // just pull out the search.\n // like href='?foo'.\n // Put this after the other two cases because it simplifies the booleans\n if (psychotic) {\n result.hostname = result.host = srcPath.shift();\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n result.search = relative.search;\n result.query = relative.query;\n //to support http.request\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.href = result.format();\n return result;\n }\n\n if (!srcPath.length) {\n // no path at all. easy.\n // we've already handled the other stuff above.\n result.pathname = null;\n //to support http.request\n if (result.search) {\n result.path = '/' + result.search;\n } else {\n result.path = null;\n }\n result.href = result.format();\n return result;\n }\n\n // if a url ENDs in . or .., then it must get a trailing slash.\n // however, if it ends in anything else non-slashy,\n // then it must NOT get a trailing slash.\n var last = srcPath.slice(-1)[0];\n var hasTrailingSlash = (\n (result.host || relative.host || srcPath.length > 1) &&\n (last === '.' || last === '..') || last === '');\n\n // strip single dots, resolve double dots to parent dir\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = srcPath.length; i >= 0; i--) {\n last = srcPath[i];\n if (last === '.') {\n srcPath.splice(i, 1);\n } else if (last === '..') {\n srcPath.splice(i, 1);\n up++;\n } else if (up) {\n srcPath.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (!mustEndAbs && !removeAllDots) {\n for (; up--; up) {\n srcPath.unshift('..');\n }\n }\n\n if (mustEndAbs && srcPath[0] !== '' &&\n (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {\n srcPath.unshift('');\n }\n\n if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {\n srcPath.push('');\n }\n\n var isAbsolute = srcPath[0] === '' ||\n (srcPath[0] && srcPath[0].charAt(0) === '/');\n\n // put the host back\n if (psychotic) {\n result.hostname = result.host = isAbsolute ? '' :\n srcPath.length ? srcPath.shift() : '';\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n\n mustEndAbs = mustEndAbs || (result.host && srcPath.length);\n\n if (mustEndAbs && !isAbsolute) {\n srcPath.unshift('');\n }\n\n if (!srcPath.length) {\n result.pathname = null;\n result.path = null;\n } else {\n result.pathname = srcPath.join('/');\n }\n\n //to support request.http\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.auth = relative.auth || result.auth;\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n};\n\nUrl.prototype.parseHost = function() {\n var host = this.host;\n var port = portPattern.exec(host);\n if (port) {\n port = port[0];\n if (port !== ':') {\n this.port = port.substr(1);\n }\n host = host.substr(0, host.length - port.length);\n }\n if (host) this.hostname = host;\n};\n","'use strict';\n\nmodule.exports = {\n isString: function(arg) {\n return typeof(arg) === 'string';\n },\n isObject: function(arg) {\n return typeof(arg) === 'object' && arg !== null;\n },\n isNull: function(arg) {\n return arg === null;\n },\n isNullOrUndefined: function(arg) {\n return arg == null;\n }\n};\n","module.exports = extend\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction extend() {\n var target = {}\n\n for (var i = 0; i < arguments.length; i++) {\n var source = arguments[i]\n\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n target[key] = source[key]\n }\n }\n }\n\n return target\n}\n","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return exports;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n defineProperty = Object.defineProperty || function (obj, key, desc) {\n obj[key] = desc.value;\n },\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n try {\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\n };\n }\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return defineProperty(generator, \"_invoke\", {\n value: makeInvokeMethod(innerFn, self, context)\n }), generator;\n }\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n exports.wrap = wrap;\n var ContinueSentinel = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\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 function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n reject(record.arg);\n }\n var previousPromise;\n defineProperty(this, \"_invoke\", {\n value: function value(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return doneResult();\n }\n for (context.method = method, context.arg = arg;;) {\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 if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method,\n method = delegate.iterator[methodName];\n if (undefined === method) return context.delegate = null, \"throw\" === methodName && delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method) || \"return\" !== methodName && (context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a '\" + methodName + \"' method\")), ContinueSentinel;\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n return next.value = undefined, next.done = !0, next;\n };\n return next.next = next;\n }\n }\n return {\n next: doneResult\n };\n }\n function doneResult() {\n return {\n value: undefined,\n done: !0\n };\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), defineProperty(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (val) {\n var object = Object(val),\n keys = [];\n for (var key in object) keys.push(key);\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n },\n stop: function stop() {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) throw exception;\n var context = this;\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(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 && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n \"catch\": function _catch(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 (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\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 if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\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 function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","const createFaviconService = () => {\n const favicons = []\n const faviconWidth = 128\n const faviconHeight = 128\n const badgeRadius = 32\n\n const initFaviconService = () => {\n const nodes = document.querySelectorAll('link[rel=\"icon\"]')\n nodes.forEach(favicon => {\n if (favicon) {\n const favcanvas = document.createElement('canvas')\n favcanvas.width = faviconWidth\n favcanvas.height = faviconHeight\n const favimg = new Image()\n favimg.crossOrigin = 'anonymous'\n favimg.src = favicon.href\n const favcontext = favcanvas.getContext('2d')\n favicons.push({ favcanvas, favimg, favcontext, favicon })\n }\n })\n }\n\n const isImageLoaded = (img) => img.complete && img.naturalHeight !== 0\n\n const clearFaviconBadge = () => {\n if (favicons.length === 0) return\n favicons.forEach(({ favimg, favcanvas, favcontext, favicon }) => {\n if (!favimg || !favcontext || !favicon) return\n\n favcontext.clearRect(0, 0, faviconWidth, faviconHeight)\n if (isImageLoaded(favimg)) {\n favcontext.drawImage(favimg, 0, 0, favimg.width, favimg.height, 0, 0, faviconWidth, faviconHeight)\n }\n favicon.href = favcanvas.toDataURL('image/png')\n })\n }\n\n const drawFaviconBadge = () => {\n if (favicons.length === 0) return\n clearFaviconBadge()\n favicons.forEach(({ favimg, favcanvas, favcontext, favicon }) => {\n if (!favimg || !favcontext || !favcontext) return\n\n const style = getComputedStyle(document.body)\n const badgeColor = `${style.getPropertyValue('--badgeNotification') || 'rgb(240, 100, 100)'}`\n\n if (isImageLoaded(favimg)) {\n favcontext.drawImage(favimg, 0, 0, favimg.width, favimg.height, 0, 0, faviconWidth, faviconHeight)\n }\n favcontext.fillStyle = badgeColor\n favcontext.beginPath()\n favcontext.arc(faviconWidth - badgeRadius, badgeRadius, badgeRadius, 0, 2 * Math.PI, false)\n favcontext.fill()\n favicon.href = favcanvas.toDataURL('image/png')\n })\n }\n\n const getOriginalFavicons = () => [...favicons]\n\n return {\n initFaviconService,\n clearFaviconBadge,\n drawFaviconBadge,\n getOriginalFavicons\n }\n}\n\nconst FaviconService = createFaviconService()\n\nexport default FaviconService\n","import { muteWordHits } from '../status_parser/status_parser.js'\nimport { showDesktopNotification } from '../desktop_notification_utils/desktop_notification_utils.js'\n\nimport FaviconService from 'src/services/favicon_service/favicon_service.js'\n\nexport const ACTIONABLE_NOTIFICATION_TYPES = new Set(['mention', 'pleroma:report', 'follow_request'])\n\nlet cachedBadgeUrl = null\n\nexport const notificationsFromStore = store => store.state.notifications.data\n\nexport const visibleTypes = store => {\n // When called from within a module we need rootGetters to access wider scope\n // however when called from a component (i.e. this.$store) we already have wider scope\n const rootGetters = store.rootGetters || store.getters\n const { notificationVisibility } = rootGetters.mergedConfig\n\n return ([\n notificationVisibility.likes && 'like',\n notificationVisibility.mentions && 'mention',\n notificationVisibility.statuses && 'status',\n notificationVisibility.repeats && 'repeat',\n notificationVisibility.follows && 'follow',\n notificationVisibility.followRequest && 'follow_request',\n notificationVisibility.moves && 'move',\n notificationVisibility.emojiReactions && 'pleroma:emoji_reaction',\n notificationVisibility.reports && 'pleroma:report',\n notificationVisibility.polls && 'poll'\n ].filter(_ => _))\n}\n\nconst statusNotifications = new Set(['like', 'mention', 'status', 'repeat', 'pleroma:emoji_reaction', 'poll'])\n\nexport const isStatusNotification = (type) => statusNotifications.has(type)\n\nexport const isValidNotification = (notification) => {\n if (isStatusNotification(notification.type) && !notification.status) {\n return false\n }\n return true\n}\n\nconst sortById = (a, b) => {\n const seqA = Number(a.id)\n const seqB = Number(b.id)\n const isSeqA = !Number.isNaN(seqA)\n const isSeqB = !Number.isNaN(seqB)\n if (isSeqA && isSeqB) {\n return seqA > seqB ? -1 : 1\n } else if (isSeqA && !isSeqB) {\n return 1\n } else if (!isSeqA && isSeqB) {\n return -1\n } else {\n return a.id > b.id ? -1 : 1\n }\n}\n\nconst isMutedNotification = (store, notification) => {\n if (!notification.status) return\n const rootGetters = store.rootGetters || store.getters\n return notification.status.muted || muteWordHits(notification.status, rootGetters.mergedConfig.muteWords).length > 0\n}\n\nexport const maybeShowNotification = (store, notification) => {\n const rootState = store.rootState || store.state\n const rootGetters = store.rootGetters || store.getters\n\n if (notification.seen) return\n if (!visibleTypes(store).includes(notification.type)) return\n if (notification.type === 'mention' && isMutedNotification(store, notification)) return\n\n const notificationObject = prepareNotificationObject(notification, rootGetters.i18n)\n showDesktopNotification(rootState, notificationObject)\n}\n\nexport const filteredNotificationsFromStore = (store, types) => {\n // map is just to clone the array since sort mutates it and it causes some issues\n const sortedNotifications = notificationsFromStore(store).map(_ => _).sort(sortById)\n // TODO implement sorting elsewhere and make it optional\n return sortedNotifications.filter(\n (notification) => (types || visibleTypes(store)).includes(notification.type)\n )\n}\n\nexport const unseenNotificationsFromStore = store => {\n const rootGetters = store.rootGetters || store.getters\n const ignoreInactionableSeen = rootGetters.mergedConfig.ignoreInactionableSeen\n\n return filteredNotificationsFromStore(store).filter(({ seen, type }) => {\n if (!ignoreInactionableSeen) return !seen\n if (seen) return false\n return ACTIONABLE_NOTIFICATION_TYPES.has(type)\n })\n}\n\nexport const prepareNotificationObject = (notification, i18n) => {\n if (cachedBadgeUrl === null) {\n const favicons = FaviconService.getOriginalFavicons()\n const favicon = favicons[favicons.length - 1]\n if (!favicon) {\n cachedBadgeUrl = 'about:blank'\n } else {\n cachedBadgeUrl = favicon.favimg.src\n }\n }\n\n const notifObj = {\n tag: notification.id,\n type: notification.type,\n badge: cachedBadgeUrl\n }\n const status = notification.status\n const title = notification.from_profile.name\n notifObj.title = title\n notifObj.icon = notification.from_profile.profile_image_url\n let i18nString\n switch (notification.type) {\n case 'like':\n i18nString = 'favorited_you'\n break\n case 'status':\n i18nString = 'subscribed_status'\n break\n case 'repeat':\n i18nString = 'repeated_you'\n break\n case 'follow':\n i18nString = 'followed_you'\n break\n case 'move':\n i18nString = 'migrated_to'\n break\n case 'follow_request':\n i18nString = 'follow_request'\n break\n case 'pleroma:report':\n i18nString = 'submitted_report'\n break\n case 'poll':\n i18nString = 'poll_ended'\n break\n }\n\n if (notification.type === 'pleroma:emoji_reaction') {\n notifObj.body = i18n.t('notifications.reacted_with', [notification.emoji])\n } else if (i18nString) {\n notifObj.body = i18n.t('notifications.' + i18nString)\n } else if (isStatusNotification(notification.type)) {\n notifObj.body = notification.status.text\n }\n\n // Shows first attached non-nsfw image, if any. Should add configuration for this somehow...\n if (status && status.attachments && status.attachments.length > 0 && !status.nsfw &&\n status.attachments[0].mimetype.startsWith('image/')) {\n notifObj.image = status.attachments[0].url\n }\n\n return notifObj\n}\n\nexport const countExtraNotifications = (store) => {\n const rootGetters = store.rootGetters || store.getters\n const mergedConfig = rootGetters.mergedConfig\n\n if (!mergedConfig.showExtraNotifications) {\n return 0\n }\n\n return [\n mergedConfig.showChatsInExtraNotifications ? rootGetters.unreadChatCount : 0,\n mergedConfig.showAnnouncementsInExtraNotifications ? rootGetters.unreadAnnouncementCount : 0,\n mergedConfig.showFollowRequestsInExtraNotifications ? rootGetters.followRequestCount : 0\n ].reduce((a, c) => a + c, 0)\n}\n","'use strict';\n\n/** Highest positive signed 32-bit float value */\nconst maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n/** Bootstring parameters */\nconst base = 36;\nconst tMin = 1;\nconst tMax = 26;\nconst skew = 38;\nconst damp = 700;\nconst initialBias = 72;\nconst initialN = 128; // 0x80\nconst delimiter = '-'; // '\\x2D'\n\n/** Regular expressions */\nconst regexPunycode = /^xn--/;\nconst regexNonASCII = /[^\\0-\\x7F]/; // Note: U+007F DEL is excluded too.\nconst regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n/** Error messages */\nconst errors = {\n\t'overflow': 'Overflow: input needs wider integers to process',\n\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t'invalid-input': 'Invalid input'\n};\n\n/** Convenience shortcuts */\nconst baseMinusTMin = base - tMin;\nconst floor = Math.floor;\nconst stringFromCharCode = String.fromCharCode;\n\n/*--------------------------------------------------------------------------*/\n\n/**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\nfunction error(type) {\n\tthrow new RangeError(errors[type]);\n}\n\n/**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\nfunction map(array, callback) {\n\tconst result = [];\n\tlet length = array.length;\n\twhile (length--) {\n\t\tresult[length] = callback(array[length]);\n\t}\n\treturn result;\n}\n\n/**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {String} A new string of characters returned by the callback\n * function.\n */\nfunction mapDomain(domain, callback) {\n\tconst parts = domain.split('@');\n\tlet result = '';\n\tif (parts.length > 1) {\n\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t// the local part (i.e. everything up to `@`) intact.\n\t\tresult = parts[0] + '@';\n\t\tdomain = parts[1];\n\t}\n\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\tdomain = domain.replace(regexSeparators, '\\x2E');\n\tconst labels = domain.split('.');\n\tconst encoded = map(labels, callback).join('.');\n\treturn result + encoded;\n}\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see \n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\nfunction ucs2decode(string) {\n\tconst output = [];\n\tlet counter = 0;\n\tconst length = string.length;\n\twhile (counter < length) {\n\t\tconst value = string.charCodeAt(counter++);\n\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t// It's a high surrogate, and there is a next character.\n\t\t\tconst extra = string.charCodeAt(counter++);\n\t\t\tif ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t} else {\n\t\t\t\t// It's an unmatched surrogate; only append this code unit, in case the\n\t\t\t\t// next code unit is the high surrogate of a surrogate pair.\n\t\t\t\toutput.push(value);\n\t\t\t\tcounter--;\n\t\t\t}\n\t\t} else {\n\t\t\toutput.push(value);\n\t\t}\n\t}\n\treturn output;\n}\n\n/**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\nconst ucs2encode = codePoints => String.fromCodePoint(...codePoints);\n\n/**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\nconst basicToDigit = function(codePoint) {\n\tif (codePoint >= 0x30 && codePoint < 0x3A) {\n\t\treturn 26 + (codePoint - 0x30);\n\t}\n\tif (codePoint >= 0x41 && codePoint < 0x5B) {\n\t\treturn codePoint - 0x41;\n\t}\n\tif (codePoint >= 0x61 && codePoint < 0x7B) {\n\t\treturn codePoint - 0x61;\n\t}\n\treturn base;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\nconst digitToBasic = function(digit, flag) {\n\t// 0..25 map to ASCII a..z or A..Z\n\t// 26..35 map to ASCII 0..9\n\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\nconst adapt = function(delta, numPoints, firstTime) {\n\tlet k = 0;\n\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\tdelta += floor(delta / numPoints);\n\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\tdelta = floor(delta / baseMinusTMin);\n\t}\n\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\nconst decode = function(input) {\n\t// Don't use UCS-2.\n\tconst output = [];\n\tconst inputLength = input.length;\n\tlet i = 0;\n\tlet n = initialN;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points: let `basic` be the number of input code\n\t// points before the last delimiter, or `0` if there is none, then copy\n\t// the first basic code points to the output.\n\n\tlet basic = input.lastIndexOf(delimiter);\n\tif (basic < 0) {\n\t\tbasic = 0;\n\t}\n\n\tfor (let j = 0; j < basic; ++j) {\n\t\t// if it's not a basic code point\n\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\terror('not-basic');\n\t\t}\n\t\toutput.push(input.charCodeAt(j));\n\t}\n\n\t// Main decoding loop: start just after the last delimiter if any basic code\n\t// points were copied; start at the beginning otherwise.\n\n\tfor (let index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t// `index` is the index of the next character to be consumed.\n\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t// which gets added to `i`. The overflow checking is easier\n\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t// value at the end to obtain `delta`.\n\t\tconst oldi = i;\n\t\tfor (let w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\tif (index >= inputLength) {\n\t\t\t\terror('invalid-input');\n\t\t\t}\n\n\t\t\tconst digit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\tif (digit >= base) {\n\t\t\t\terror('invalid-input');\n\t\t\t}\n\t\t\tif (digit > floor((maxInt - i) / w)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\ti += digit * w;\n\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\tif (digit < t) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst baseMinusT = base - t;\n\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tw *= baseMinusT;\n\n\t\t}\n\n\t\tconst out = output.length + 1;\n\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t// incrementing `n` each time, so we'll fix that now:\n\t\tif (floor(i / out) > maxInt - n) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tn += floor(i / out);\n\t\ti %= out;\n\n\t\t// Insert `n` at position `i` of the output.\n\t\toutput.splice(i++, 0, n);\n\n\t}\n\n\treturn String.fromCodePoint(...output);\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\nconst encode = function(input) {\n\tconst output = [];\n\n\t// Convert the input in UCS-2 to an array of Unicode code points.\n\tinput = ucs2decode(input);\n\n\t// Cache the length.\n\tconst inputLength = input.length;\n\n\t// Initialize the state.\n\tlet n = initialN;\n\tlet delta = 0;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points.\n\tfor (const currentValue of input) {\n\t\tif (currentValue < 0x80) {\n\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t}\n\t}\n\n\tconst basicLength = output.length;\n\tlet handledCPCount = basicLength;\n\n\t// `handledCPCount` is the number of code points that have been handled;\n\t// `basicLength` is the number of basic code points.\n\n\t// Finish the basic string with a delimiter unless it's empty.\n\tif (basicLength) {\n\t\toutput.push(delimiter);\n\t}\n\n\t// Main encoding loop:\n\twhile (handledCPCount < inputLength) {\n\n\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t// larger one:\n\t\tlet m = maxInt;\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\tm = currentValue;\n\t\t\t}\n\t\t}\n\n\t\t// Increase `delta` enough to advance the decoder's state to ,\n\t\t// but guard against overflow.\n\t\tconst handledCPCountPlusOne = handledCPCount + 1;\n\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\tn = m;\n\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\t\t\tif (currentValue === n) {\n\t\t\t\t// Represent delta as a generalized variable-length integer.\n\t\t\t\tlet q = delta;\n\t\t\t\tfor (let k = base; /* no condition */; k += base) {\n\t\t\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tconst qMinusT = q - t;\n\t\t\t\t\tconst baseMinusT = base - t;\n\t\t\t\t\toutput.push(\n\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t);\n\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t}\n\n\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount === basicLength);\n\t\t\t\tdelta = 0;\n\t\t\t\t++handledCPCount;\n\t\t\t}\n\t\t}\n\n\t\t++delta;\n\t\t++n;\n\n\t}\n\treturn output.join('');\n};\n\n/**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\nconst toUnicode = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexPunycode.test(string)\n\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t: string;\n\t});\n};\n\n/**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\nconst toASCII = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexNonASCII.test(string)\n\t\t\t? 'xn--' + encode(string)\n\t\t\t: string;\n\t});\n};\n\n/*--------------------------------------------------------------------------*/\n\n/** Define the public API */\nconst punycode = {\n\t/**\n\t * A string representing the current Punycode.js version number.\n\t * @memberOf punycode\n\t * @type String\n\t */\n\t'version': '2.1.0',\n\t/**\n\t * An object of methods to convert from JavaScript's internal character\n\t * representation (UCS-2) to Unicode code points, and back.\n\t * @see \n\t * @memberOf punycode\n\t * @type Object\n\t */\n\t'ucs2': {\n\t\t'decode': ucs2decode,\n\t\t'encode': ucs2encode\n\t},\n\t'decode': decode,\n\t'encode': encode,\n\t'toASCII': toASCII,\n\t'toUnicode': toUnicode\n};\n\nexport { ucs2decode, ucs2encode, decode, encode, toASCII, toUnicode };\nexport default punycode;\n","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","import escape from 'escape-html'\nimport parseLinkHeader from 'parse-link-header'\nimport { isStatusNotification } from '../notification_utils/notification_utils.js'\nimport punycode from 'punycode.js'\n\n/** NOTICE! **\n * Do not initialize UI-generated data here.\n * It will override existing data.\n *\n * i.e. user.pinnedStatusIds was set to [] here\n * UI code would update it with data but upon next user fetch\n * it would be reverted back to []\n */\n\nconst qvitterStatusType = (status) => {\n if (status.is_post_verb) {\n return 'status'\n }\n\n if (status.retweeted_status) {\n return 'retweet'\n }\n\n if ((typeof status.uri === 'string' && status.uri.match(/(fave|objectType=Favourite)/)) ||\n (typeof status.text === 'string' && status.text.match(/favorited/))) {\n return 'favorite'\n }\n\n if (status.text.match(/deleted notice {{tag/) || status.qvitter_delete_notice) {\n return 'deletion'\n }\n\n if (status.text.match(/started following/) || status.activity_type === 'follow') {\n return 'follow'\n }\n\n return 'unknown'\n}\n\nexport const parseUser = (data) => {\n const output = {}\n const masto = Object.prototype.hasOwnProperty.call(data, 'acct')\n // case for users in \"mentions\" property for statuses in MastoAPI\n const mastoShort = masto && !Object.prototype.hasOwnProperty.call(data, 'avatar')\n\n output.inLists = null\n output.id = String(data.id)\n output._original = data // used for server-side settings\n\n if (masto) {\n output.screen_name = data.acct\n output.fqn = data.fqn\n output.statusnet_profile_url = data.url\n\n // There's nothing else to get\n if (mastoShort) {\n return output\n }\n\n output.emoji = data.emojis\n output.name = escape(data.display_name)\n output.name_html = output.name\n output.name_unescaped = data.display_name\n\n output.description = data.note\n // TODO cleanup this shit, output.description is overriden with source data\n output.description_html = data.note\n\n output.fields = data.fields\n output.fields_html = data.fields.map(field => {\n return {\n name: escape(field.name),\n value: field.value\n }\n })\n output.fields_text = data.fields.map(field => {\n return {\n name: unescape(field.name.replace(/<[^>]*>/g, '')),\n value: unescape(field.value.replace(/<[^>]*>/g, ''))\n }\n })\n\n // Utilize avatar_static for gif avatars?\n output.profile_image_url = data.avatar\n output.profile_image_url_original = data.avatar\n\n // Same, utilize header_static?\n output.cover_photo = data.header\n\n output.friends_count = data.following_count\n\n output.bot = data.bot\n\n if (data.pleroma) {\n if (data.pleroma.settings_store) {\n output.storage = data.pleroma.settings_store['pleroma-fe']\n }\n const relationship = data.pleroma.relationship\n\n output.background_image = data.pleroma.background_image\n output.favicon = data.pleroma.favicon\n output.token = data.pleroma.chat_token\n\n if (relationship) {\n output.relationship = relationship\n }\n\n output.allow_following_move = data.pleroma.allow_following_move\n\n output.hide_favorites = data.pleroma.hide_favorites\n output.hide_follows = data.pleroma.hide_follows\n output.hide_followers = data.pleroma.hide_followers\n output.hide_follows_count = data.pleroma.hide_follows_count\n output.hide_followers_count = data.pleroma.hide_followers_count\n\n output.rights = {\n moderator: data.pleroma.is_moderator,\n admin: data.pleroma.is_admin\n }\n // TODO: Clean up in UI? This is duplication from what BE does for qvitterapi\n if (output.rights.admin) {\n output.role = 'admin'\n } else if (output.rights.moderator) {\n output.role = 'moderator'\n } else {\n output.role = 'member'\n }\n\n output.birthday = data.pleroma.birthday\n\n if (data.pleroma.privileges) {\n output.privileges = data.pleroma.privileges\n } else if (data.pleroma.is_admin) {\n output.privileges = [\n 'users_read',\n 'users_manage_invites',\n 'users_manage_activation_state',\n 'users_manage_tags',\n 'users_manage_credentials',\n 'users_delete',\n 'messages_read',\n 'messages_delete',\n 'instances_delete',\n 'reports_manage_reports',\n 'moderation_log_read',\n 'announcements_manage_announcements',\n 'emoji_manage_emoji',\n 'statistics_read'\n ]\n } else if (data.pleroma.is_moderator) {\n output.privileges = [\n 'messages_delete',\n 'reports_manage_reports'\n ]\n } else {\n output.privileges = []\n }\n }\n\n if (data.source) {\n output.description = data.source.note\n output.default_scope = data.source.privacy\n output.fields = data.source.fields\n if (data.source.pleroma) {\n output.no_rich_text = data.source.pleroma.no_rich_text\n output.show_role = data.source.pleroma.show_role\n output.discoverable = data.source.pleroma.discoverable\n output.show_birthday = data.pleroma.show_birthday\n output.actor_type = data.source.pleroma.actor_type\n }\n }\n\n // TODO: handle is_local\n output.is_local = !output.screen_name.includes('@')\n } else {\n output.screen_name = data.screen_name\n\n output.name = data.name\n output.name_html = data.name_html\n\n output.description = data.description\n output.description_html = data.description_html\n\n output.profile_image_url = data.profile_image_url\n output.profile_image_url_original = data.profile_image_url_original\n\n output.cover_photo = data.cover_photo\n\n output.friends_count = data.friends_count\n\n // output.bot = ??? missing\n\n output.statusnet_profile_url = data.statusnet_profile_url\n\n output.is_local = data.is_local\n output.role = data.role\n output.show_role = data.show_role\n\n if (data.rights) {\n output.rights = {\n moderator: data.rights.delete_others_notice,\n admin: data.rights.admin\n }\n }\n output.no_rich_text = data.no_rich_text\n output.default_scope = data.default_scope\n output.hide_follows = data.hide_follows\n output.hide_followers = data.hide_followers\n output.hide_follows_count = data.hide_follows_count\n output.hide_followers_count = data.hide_followers_count\n output.background_image = data.background_image\n // Websocket token\n output.token = data.token\n\n // Convert relationsip data to expected format\n output.relationship = {\n muting: data.muted,\n blocking: data.statusnet_blocking,\n followed_by: data.follows_you,\n following: data.following\n }\n }\n\n output.created_at = new Date(data.created_at)\n output.locked = data.locked\n output.followers_count = data.followers_count\n output.statuses_count = data.statuses_count\n\n if (data.pleroma) {\n output.follow_request_count = data.pleroma.follow_request_count\n\n output.tags = data.pleroma.tags\n\n // deactivated was changed to is_active in Pleroma 2.3.0\n // so check if is_active is present\n output.deactivated = typeof data.pleroma.is_active !== 'undefined'\n ? !data.pleroma.is_active // new backend\n : data.pleroma.deactivated // old backend\n\n output.notification_settings = data.pleroma.notification_settings\n output.unread_chat_count = data.pleroma.unread_chat_count\n }\n\n output.tags = output.tags || []\n output.rights = output.rights || {}\n output.notification_settings = output.notification_settings || {}\n\n // Convert punycode to unicode for UI\n output.screen_name_ui = output.screen_name\n if (output.screen_name && output.screen_name.includes('@')) {\n const parts = output.screen_name.split('@')\n const unicodeDomain = punycode.toUnicode(parts[1])\n if (unicodeDomain !== parts[1]) {\n // Add some identifier so users can potentially spot spoofing attempts:\n // lain.com and xn--lin-6cd.com would appear identical otherwise.\n output.screen_name_ui_contains_non_ascii = true\n output.screen_name_ui = [parts[0], unicodeDomain].join('@')\n } else {\n output.screen_name_ui_contains_non_ascii = false\n }\n }\n\n return output\n}\n\nexport const parseAttachment = (data) => {\n const output = {}\n const masto = !Object.prototype.hasOwnProperty.call(data, 'oembed')\n\n if (masto) {\n // Not exactly same...\n output.mimetype = data.pleroma ? data.pleroma.mime_type : data.type\n output.meta = data.meta // not present in BE yet\n output.id = data.id\n } else {\n output.mimetype = data.mimetype\n // output.meta = ??? missing\n }\n\n output.url = data.url\n output.large_thumb_url = data.preview_url\n output.description = data.description\n\n return output\n}\n\nexport const parseSource = (data) => {\n const output = {}\n\n output.text = data.text\n output.spoiler_text = data.spoiler_text\n output.content_type = data.content_type\n\n return output\n}\n\nexport const parseStatus = (data) => {\n const output = {}\n const masto = Object.prototype.hasOwnProperty.call(data, 'account')\n\n if (masto) {\n output.favorited = data.favourited\n output.fave_num = data.favourites_count\n\n output.repeated = data.reblogged\n output.repeat_num = data.reblogs_count\n\n output.bookmarked = data.bookmarked\n\n output.type = data.reblog ? 'retweet' : 'status'\n output.nsfw = data.sensitive\n\n output.raw_html = data.content\n output.emojis = data.emojis\n\n output.tags = data.tags\n\n output.edited_at = data.edited_at\n\n if (data.pleroma) {\n const { pleroma } = data\n output.text = pleroma.content ? data.pleroma.content['text/plain'] : data.content\n output.summary = pleroma.spoiler_text ? data.pleroma.spoiler_text['text/plain'] : data.spoiler_text\n output.statusnet_conversation_id = data.pleroma.conversation_id\n output.is_local = pleroma.local\n output.in_reply_to_screen_name = data.pleroma.in_reply_to_account_acct\n output.thread_muted = pleroma.thread_muted\n output.emoji_reactions = pleroma.emoji_reactions\n output.parent_visible = pleroma.parent_visible === undefined ? true : pleroma.parent_visible\n output.quote = pleroma.quote ? parseStatus(pleroma.quote) : undefined\n output.quote_id = pleroma.quote_id ? pleroma.quote_id : (output.quote ? output.quote.id : undefined)\n output.quote_url = pleroma.quote_url\n output.quote_visible = pleroma.quote_visible\n output.quotes_count = pleroma.quotes_count\n } else {\n output.text = data.content\n output.summary = data.spoiler_text\n }\n\n output.in_reply_to_status_id = data.in_reply_to_id\n output.in_reply_to_user_id = data.in_reply_to_account_id\n output.replies_count = data.replies_count\n\n if (output.type === 'retweet') {\n output.retweeted_status = parseStatus(data.reblog)\n }\n\n output.summary_raw_html = escape(data.spoiler_text)\n output.external_url = data.url\n output.poll = data.poll\n if (output.poll) {\n output.poll.options = (output.poll.options || []).map(field => ({\n ...field,\n title_html: escape(field.title)\n }))\n }\n output.pinned = data.pinned\n output.muted = data.muted\n } else {\n output.favorited = data.favorited\n output.fave_num = data.fave_num\n\n output.repeated = data.repeated\n output.repeat_num = data.repeat_num\n\n // catchall, temporary\n // Object.assign(output, data)\n\n output.type = qvitterStatusType(data)\n\n if (data.nsfw === undefined) {\n output.nsfw = isNsfw(data)\n if (data.retweeted_status) {\n output.nsfw = data.retweeted_status.nsfw\n }\n } else {\n output.nsfw = data.nsfw\n }\n\n output.raw_html = data.statusnet_html\n output.text = data.text\n\n output.in_reply_to_status_id = data.in_reply_to_status_id\n output.in_reply_to_user_id = data.in_reply_to_user_id\n output.in_reply_to_screen_name = data.in_reply_to_screen_name\n output.statusnet_conversation_id = data.statusnet_conversation_id\n\n if (output.type === 'retweet') {\n output.retweeted_status = parseStatus(data.retweeted_status)\n }\n\n output.summary = data.summary\n output.summary_html = data.summary_html\n output.external_url = data.external_url\n output.is_local = data.is_local\n }\n\n output.id = String(data.id)\n output.visibility = data.visibility\n output.card = data.card\n output.created_at = new Date(data.created_at)\n\n // Converting to string, the right way.\n output.in_reply_to_status_id = output.in_reply_to_status_id\n ? String(output.in_reply_to_status_id)\n : null\n output.in_reply_to_user_id = output.in_reply_to_user_id\n ? String(output.in_reply_to_user_id)\n : null\n\n output.user = parseUser(masto ? data.account : data.user)\n\n output.attentions = ((masto ? data.mentions : data.attentions) || []).map(parseUser)\n\n output.attachments = ((masto ? data.media_attachments : data.attachments) || [])\n .map(parseAttachment)\n\n const retweetedStatus = masto ? data.reblog : data.retweeted_status\n if (retweetedStatus) {\n output.retweeted_status = parseStatus(retweetedStatus)\n }\n\n output.favoritedBy = []\n output.rebloggedBy = []\n\n if (Object.prototype.hasOwnProperty.call(data, 'originalStatus')) {\n Object.assign(output, data.originalStatus)\n }\n\n return output\n}\n\nexport const parseNotification = (data) => {\n const mastoDict = {\n favourite: 'like',\n reblog: 'repeat'\n }\n const masto = !Object.prototype.hasOwnProperty.call(data, 'ntype')\n const output = {}\n\n if (masto) {\n output.type = mastoDict[data.type] || data.type\n output.seen = data.pleroma.is_seen\n output.status = isStatusNotification(output.type) ? parseStatus(data.status) : null\n output.target = output.type !== 'move'\n ? null\n : parseUser(data.target)\n output.from_profile = parseUser(data.account)\n output.emoji = data.emoji\n output.emoji_url = data.emoji_url\n if (data.report) {\n output.report = data.report\n output.report.content = data.report.content\n output.report.acct = parseUser(data.report.account)\n output.report.actor = parseUser(data.report.actor)\n output.report.statuses = data.report.statuses.map(parseStatus)\n }\n } else {\n const parsedNotice = parseStatus(data.notice)\n output.type = data.ntype\n output.seen = Boolean(data.is_seen)\n output.status = output.type === 'like'\n ? parseStatus(data.notice.favorited_status)\n : parsedNotice\n output.action = parsedNotice\n output.from_profile = output.type === 'pleroma:chat_mention' ? parseUser(data.account) : parseUser(data.from_profile)\n }\n\n output.created_at = new Date(data.created_at)\n output.id = parseInt(data.id)\n\n return output\n}\n\nconst isNsfw = (status) => {\n const nsfwRegex = /#nsfw/i\n return (status.tags || []).includes('nsfw') || !!(status.text || '').match(nsfwRegex)\n}\n\nexport const parseLinkHeaderPagination = (linkHeader, opts = {}) => {\n const flakeId = opts.flakeId\n const parsedLinkHeader = parseLinkHeader(linkHeader)\n if (!parsedLinkHeader) return\n const maxId = parsedLinkHeader.next.max_id\n const minId = parsedLinkHeader.prev.min_id\n\n return {\n maxId: flakeId ? maxId : parseInt(maxId, 10),\n minId: flakeId ? minId : parseInt(minId, 10)\n }\n}\n\nexport const parseChat = (chat) => {\n const output = {}\n output.id = chat.id\n output.account = parseUser(chat.account)\n output.unread = chat.unread\n output.lastMessage = parseChatMessage(chat.last_message)\n output.updated_at = new Date(chat.updated_at)\n return output\n}\n\nexport const parseChatMessage = (message) => {\n if (!message) { return }\n if (message.isNormalized) { return message }\n const output = message\n output.id = message.id\n output.created_at = new Date(message.created_at)\n output.chat_id = message.chat_id\n output.emojis = message.emojis\n output.content = message.content\n if (message.attachment) {\n output.attachments = [parseAttachment(message.attachment)]\n } else {\n output.attachments = []\n }\n output.pending = !!message.pending\n output.error = false\n output.idempotency_key = message.idempotency_key\n output.isNormalized = true\n return output\n}\n","/*!\n * shared v9.2.2\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\n/**\r\n * Original Utilities\r\n * written by kazuya kawaguchi\r\n */\r\nconst inBrowser = typeof window !== 'undefined';\r\nlet mark;\r\nlet measure;\r\nif ((process.env.NODE_ENV !== 'production')) {\r\n const perf = inBrowser && window.performance;\r\n if (perf &&\r\n perf.mark &&\r\n perf.measure &&\r\n perf.clearMarks &&\r\n perf.clearMeasures) {\r\n mark = (tag) => perf.mark(tag);\r\n measure = (name, startTag, endTag) => {\r\n perf.measure(name, startTag, endTag);\r\n perf.clearMarks(startTag);\r\n perf.clearMarks(endTag);\r\n };\r\n }\r\n}\r\nconst RE_ARGS = /\\{([0-9a-zA-Z]+)\\}/g;\r\n/* eslint-disable */\r\nfunction format(message, ...args) {\r\n if (args.length === 1 && isObject(args[0])) {\r\n args = args[0];\r\n }\r\n if (!args || !args.hasOwnProperty) {\r\n args = {};\r\n }\r\n return message.replace(RE_ARGS, (match, identifier) => {\r\n return args.hasOwnProperty(identifier) ? args[identifier] : '';\r\n });\r\n}\r\nconst hasSymbol = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\r\nconst makeSymbol = (name) => hasSymbol ? Symbol(name) : name;\r\nconst generateFormatCacheKey = (locale, key, source) => friendlyJSONstringify({ l: locale, k: key, s: source });\r\nconst friendlyJSONstringify = (json) => JSON.stringify(json)\r\n .replace(/\\u2028/g, '\\\\u2028')\r\n .replace(/\\u2029/g, '\\\\u2029')\r\n .replace(/\\u0027/g, '\\\\u0027');\r\nconst isNumber = (val) => typeof val === 'number' && isFinite(val);\r\nconst isDate = (val) => toTypeString(val) === '[object Date]';\r\nconst isRegExp = (val) => toTypeString(val) === '[object RegExp]';\r\nconst isEmptyObject = (val) => isPlainObject(val) && Object.keys(val).length === 0;\r\nfunction warn(msg, err) {\r\n if (typeof console !== 'undefined') {\r\n console.warn(`[intlify] ` + msg);\r\n /* istanbul ignore if */\r\n if (err) {\r\n console.warn(err.stack);\r\n }\r\n }\r\n}\r\nconst assign = Object.assign;\r\nlet _globalThis;\r\nconst getGlobalThis = () => {\r\n // prettier-ignore\r\n return (_globalThis ||\r\n (_globalThis =\r\n typeof globalThis !== 'undefined'\r\n ? globalThis\r\n : typeof self !== 'undefined'\r\n ? self\r\n : typeof window !== 'undefined'\r\n ? window\r\n : typeof global !== 'undefined'\r\n ? global\r\n : {}));\r\n};\r\nfunction escapeHtml(rawText) {\r\n return rawText\r\n .replace(//g, '>')\r\n .replace(/\"/g, '"')\r\n .replace(/'/g, ''');\r\n}\r\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\r\nfunction hasOwn(obj, key) {\r\n return hasOwnProperty.call(obj, key);\r\n}\r\n/* eslint-enable */\r\n/**\r\n * Useful Utilities By Evan you\r\n * Modified by kazuya kawaguchi\r\n * MIT License\r\n * https://github.com/vuejs/vue-next/blob/master/packages/shared/src/index.ts\r\n * https://github.com/vuejs/vue-next/blob/master/packages/shared/src/codeframe.ts\r\n */\r\nconst isArray = Array.isArray;\r\nconst isFunction = (val) => typeof val === 'function';\r\nconst isString = (val) => typeof val === 'string';\r\nconst isBoolean = (val) => typeof val === 'boolean';\r\nconst isSymbol = (val) => typeof val === 'symbol';\r\nconst isObject = (val) => // eslint-disable-line\r\n val !== null && typeof val === 'object';\r\nconst isPromise = (val) => {\r\n return isObject(val) && isFunction(val.then) && isFunction(val.catch);\r\n};\r\nconst objectToString = Object.prototype.toString;\r\nconst toTypeString = (value) => objectToString.call(value);\r\nconst isPlainObject = (val) => toTypeString(val) === '[object Object]';\r\n// for converting list and named values to displayed strings.\r\nconst toDisplayString = (val) => {\r\n return val == null\r\n ? ''\r\n : isArray(val) || (isPlainObject(val) && val.toString === objectToString)\r\n ? JSON.stringify(val, null, 2)\r\n : String(val);\r\n};\r\nconst RANGE = 2;\r\nfunction generateCodeFrame(source, start = 0, end = source.length) {\r\n const lines = source.split(/\\r?\\n/);\r\n let count = 0;\r\n const res = [];\r\n for (let i = 0; i < lines.length; i++) {\r\n count += lines[i].length + 1;\r\n if (count >= start) {\r\n for (let j = i - RANGE; j <= i + RANGE || end > count; j++) {\r\n if (j < 0 || j >= lines.length)\r\n continue;\r\n const line = j + 1;\r\n res.push(`${line}${' '.repeat(3 - String(line).length)}| ${lines[j]}`);\r\n const lineLength = lines[j].length;\r\n if (j === i) {\r\n // push underline\r\n const pad = start - (count - lineLength) + 1;\r\n const length = Math.max(1, end > count ? lineLength - pad : end - start);\r\n res.push(` | ` + ' '.repeat(pad) + '^'.repeat(length));\r\n }\r\n else if (j > i) {\r\n if (end > count) {\r\n const length = Math.max(Math.min(end - count, lineLength), 1);\r\n res.push(` | ` + '^'.repeat(length));\r\n }\r\n count += lineLength + 1;\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n return res.join('\\n');\r\n}\n\n/**\r\n * Event emitter, forked from the below:\r\n * - original repository url: https://github.com/developit/mitt\r\n * - code url: https://github.com/developit/mitt/blob/master/src/index.ts\r\n * - author: Jason Miller (https://github.com/developit)\r\n * - license: MIT\r\n */\r\n/**\r\n * Create a event emitter\r\n *\r\n * @returns An event emitter\r\n */\r\nfunction createEmitter() {\r\n const events = new Map();\r\n const emitter = {\r\n events,\r\n on(event, handler) {\r\n const handlers = events.get(event);\r\n const added = handlers && handlers.push(handler);\r\n if (!added) {\r\n events.set(event, [handler]);\r\n }\r\n },\r\n off(event, handler) {\r\n const handlers = events.get(event);\r\n if (handlers) {\r\n handlers.splice(handlers.indexOf(handler) >>> 0, 1);\r\n }\r\n },\r\n emit(event, payload) {\r\n (events.get(event) || [])\r\n .slice()\r\n .map(handler => handler(payload));\r\n (events.get('*') || [])\r\n .slice()\r\n .map(handler => handler(event, payload));\r\n }\r\n };\r\n return emitter;\r\n}\n\nexport { assign, createEmitter, escapeHtml, format, friendlyJSONstringify, generateCodeFrame, generateFormatCacheKey, getGlobalThis, hasOwn, inBrowser, isArray, isBoolean, isDate, isEmptyObject, isFunction, isNumber, isObject, isPlainObject, isPromise, isRegExp, isString, isSymbol, makeSymbol, mark, measure, objectToString, toDisplayString, toTypeString, warn };\n","/*!\n * message-compiler v10.0.0-beta.1\n * (c) 2024 kazuya kawaguchi\n * Released under the MIT License.\n */\nimport { format, assign, join, isString } from '@intlify/shared';\n\nconst LOCATION_STUB = {\n start: { line: 1, column: 1, offset: 0 },\n end: { line: 1, column: 1, offset: 0 }\n};\nfunction createPosition(line, column, offset) {\n return { line, column, offset };\n}\nfunction createLocation(start, end, source) {\n const loc = { start, end };\n if (source != null) {\n loc.source = source;\n }\n return loc;\n}\n\nconst CompileErrorCodes = {\n // tokenizer error codes\n EXPECTED_TOKEN: 1,\n INVALID_TOKEN_IN_PLACEHOLDER: 2,\n UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER: 3,\n UNKNOWN_ESCAPE_SEQUENCE: 4,\n INVALID_UNICODE_ESCAPE_SEQUENCE: 5,\n UNBALANCED_CLOSING_BRACE: 6,\n UNTERMINATED_CLOSING_BRACE: 7,\n EMPTY_PLACEHOLDER: 8,\n NOT_ALLOW_NEST_PLACEHOLDER: 9,\n INVALID_LINKED_FORMAT: 10,\n // parser error codes\n MUST_HAVE_MESSAGES_IN_PLURAL: 11,\n UNEXPECTED_EMPTY_LINKED_MODIFIER: 12,\n UNEXPECTED_EMPTY_LINKED_KEY: 13,\n UNEXPECTED_LEXICAL_ANALYSIS: 14,\n // generator error codes\n UNHANDLED_CODEGEN_NODE_TYPE: 15,\n // minifier error codes\n UNHANDLED_MINIFIER_NODE_TYPE: 16\n};\n// Special value for higher-order compilers to pick up the last code\n// to avoid collision of error codes.\n// This should always be kept as the last item.\nconst COMPILE_ERROR_CODES_EXTEND_POINT = 17;\n/** @internal */\nconst errorMessages = {\n // tokenizer error messages\n [CompileErrorCodes.EXPECTED_TOKEN]: `Expected token: '{0}'`,\n [CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER]: `Invalid token in placeholder: '{0}'`,\n [CompileErrorCodes.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]: `Unterminated single quote in placeholder`,\n [CompileErrorCodes.UNKNOWN_ESCAPE_SEQUENCE]: `Unknown escape sequence: \\\\{0}`,\n [CompileErrorCodes.INVALID_UNICODE_ESCAPE_SEQUENCE]: `Invalid unicode escape sequence: {0}`,\n [CompileErrorCodes.UNBALANCED_CLOSING_BRACE]: `Unbalanced closing brace`,\n [CompileErrorCodes.UNTERMINATED_CLOSING_BRACE]: `Unterminated closing brace`,\n [CompileErrorCodes.EMPTY_PLACEHOLDER]: `Empty placeholder`,\n [CompileErrorCodes.NOT_ALLOW_NEST_PLACEHOLDER]: `Not allowed nest placeholder`,\n [CompileErrorCodes.INVALID_LINKED_FORMAT]: `Invalid linked format`,\n // parser error messages\n [CompileErrorCodes.MUST_HAVE_MESSAGES_IN_PLURAL]: `Plural must have messages`,\n [CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_MODIFIER]: `Unexpected empty linked modifier`,\n [CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_KEY]: `Unexpected empty linked key`,\n [CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS]: `Unexpected lexical analysis in token: '{0}'`,\n // generator error messages\n [CompileErrorCodes.UNHANDLED_CODEGEN_NODE_TYPE]: `unhandled codegen node type: '{0}'`,\n // minimizer error messages\n [CompileErrorCodes.UNHANDLED_MINIFIER_NODE_TYPE]: `unhandled mimifier node type: '{0}'`\n};\nfunction createCompileError(code, loc, options = {}) {\n const { domain, messages, args } = options;\n const msg = (process.env.NODE_ENV !== 'production')\n ? format((messages || errorMessages)[code] || '', ...(args || []))\n : code;\n const error = new SyntaxError(String(msg));\n error.code = code;\n if (loc) {\n error.location = loc;\n }\n error.domain = domain;\n return error;\n}\n/** @internal */\nfunction defaultOnError(error) {\n throw error;\n}\n\n// eslint-disable-next-line no-useless-escape\nconst RE_HTML_TAG = /<\\/?[\\w\\s=\"/.':;#-\\/]+>/;\nconst detectHtmlTag = (source) => RE_HTML_TAG.test(source);\n\nconst CHAR_SP = ' ';\nconst CHAR_CR = '\\r';\nconst CHAR_LF = '\\n';\nconst CHAR_LS = String.fromCharCode(0x2028);\nconst CHAR_PS = String.fromCharCode(0x2029);\nfunction createScanner(str) {\n const _buf = str;\n let _index = 0;\n let _line = 1;\n let _column = 1;\n let _peekOffset = 0;\n const isCRLF = (index) => _buf[index] === CHAR_CR && _buf[index + 1] === CHAR_LF;\n const isLF = (index) => _buf[index] === CHAR_LF;\n const isPS = (index) => _buf[index] === CHAR_PS;\n const isLS = (index) => _buf[index] === CHAR_LS;\n const isLineEnd = (index) => isCRLF(index) || isLF(index) || isPS(index) || isLS(index);\n const index = () => _index;\n const line = () => _line;\n const column = () => _column;\n const peekOffset = () => _peekOffset;\n const charAt = (offset) => isCRLF(offset) || isPS(offset) || isLS(offset) ? CHAR_LF : _buf[offset];\n const currentChar = () => charAt(_index);\n const currentPeek = () => charAt(_index + _peekOffset);\n function next() {\n _peekOffset = 0;\n if (isLineEnd(_index)) {\n _line++;\n _column = 0;\n }\n if (isCRLF(_index)) {\n _index++;\n }\n _index++;\n _column++;\n return _buf[_index];\n }\n function peek() {\n if (isCRLF(_index + _peekOffset)) {\n _peekOffset++;\n }\n _peekOffset++;\n return _buf[_index + _peekOffset];\n }\n function reset() {\n _index = 0;\n _line = 1;\n _column = 1;\n _peekOffset = 0;\n }\n function resetPeek(offset = 0) {\n _peekOffset = offset;\n }\n function skipToPeek() {\n const target = _index + _peekOffset;\n while (target !== _index) {\n next();\n }\n _peekOffset = 0;\n }\n return {\n index,\n line,\n column,\n peekOffset,\n charAt,\n currentChar,\n currentPeek,\n next,\n peek,\n reset,\n resetPeek,\n skipToPeek\n };\n}\n\nconst EOF = undefined;\nconst DOT = '.';\nconst LITERAL_DELIMITER = \"'\";\nconst ERROR_DOMAIN$3 = 'tokenizer';\nfunction createTokenizer(source, options = {}) {\n const location = options.location !== false;\n const _scnr = createScanner(source);\n const currentOffset = () => _scnr.index();\n const currentPosition = () => createPosition(_scnr.line(), _scnr.column(), _scnr.index());\n const _initLoc = currentPosition();\n const _initOffset = currentOffset();\n const _context = {\n currentType: 13 /* TokenTypes.EOF */,\n offset: _initOffset,\n startLoc: _initLoc,\n endLoc: _initLoc,\n lastType: 13 /* TokenTypes.EOF */,\n lastOffset: _initOffset,\n lastStartLoc: _initLoc,\n lastEndLoc: _initLoc,\n braceNest: 0,\n inLinked: false,\n text: ''\n };\n const context = () => _context;\n const { onError } = options;\n function emitError(code, pos, offset, ...args) {\n const ctx = context();\n pos.column += offset;\n pos.offset += offset;\n if (onError) {\n const loc = location ? createLocation(ctx.startLoc, pos) : null;\n const err = createCompileError(code, loc, {\n domain: ERROR_DOMAIN$3,\n args\n });\n onError(err);\n }\n }\n function getToken(context, type, value) {\n context.endLoc = currentPosition();\n context.currentType = type;\n const token = { type };\n if (location) {\n token.loc = createLocation(context.startLoc, context.endLoc);\n }\n if (value != null) {\n token.value = value;\n }\n return token;\n }\n const getEndToken = (context) => getToken(context, 13 /* TokenTypes.EOF */);\n function eat(scnr, ch) {\n if (scnr.currentChar() === ch) {\n scnr.next();\n return ch;\n }\n else {\n emitError(CompileErrorCodes.EXPECTED_TOKEN, currentPosition(), 0, ch);\n return '';\n }\n }\n function peekSpaces(scnr) {\n let buf = '';\n while (scnr.currentPeek() === CHAR_SP || scnr.currentPeek() === CHAR_LF) {\n buf += scnr.currentPeek();\n scnr.peek();\n }\n return buf;\n }\n function skipSpaces(scnr) {\n const buf = peekSpaces(scnr);\n scnr.skipToPeek();\n return buf;\n }\n function isIdentifierStart(ch) {\n if (ch === EOF) {\n return false;\n }\n const cc = ch.charCodeAt(0);\n return ((cc >= 97 && cc <= 122) || // a-z\n (cc >= 65 && cc <= 90) || // A-Z\n cc === 95 // _\n );\n }\n function isNumberStart(ch) {\n if (ch === EOF) {\n return false;\n }\n const cc = ch.charCodeAt(0);\n return cc >= 48 && cc <= 57; // 0-9\n }\n function isNamedIdentifierStart(scnr, context) {\n const { currentType } = context;\n if (currentType !== 2 /* TokenTypes.BraceLeft */) {\n return false;\n }\n peekSpaces(scnr);\n const ret = isIdentifierStart(scnr.currentPeek());\n scnr.resetPeek();\n return ret;\n }\n function isListIdentifierStart(scnr, context) {\n const { currentType } = context;\n if (currentType !== 2 /* TokenTypes.BraceLeft */) {\n return false;\n }\n peekSpaces(scnr);\n const ch = scnr.currentPeek() === '-' ? scnr.peek() : scnr.currentPeek();\n const ret = isNumberStart(ch);\n scnr.resetPeek();\n return ret;\n }\n function isLiteralStart(scnr, context) {\n const { currentType } = context;\n if (currentType !== 2 /* TokenTypes.BraceLeft */) {\n return false;\n }\n peekSpaces(scnr);\n const ret = scnr.currentPeek() === LITERAL_DELIMITER;\n scnr.resetPeek();\n return ret;\n }\n function isLinkedDotStart(scnr, context) {\n const { currentType } = context;\n if (currentType !== 7 /* TokenTypes.LinkedAlias */) {\n return false;\n }\n peekSpaces(scnr);\n const ret = scnr.currentPeek() === \".\" /* TokenChars.LinkedDot */;\n scnr.resetPeek();\n return ret;\n }\n function isLinkedModifierStart(scnr, context) {\n const { currentType } = context;\n if (currentType !== 8 /* TokenTypes.LinkedDot */) {\n return false;\n }\n peekSpaces(scnr);\n const ret = isIdentifierStart(scnr.currentPeek());\n scnr.resetPeek();\n return ret;\n }\n function isLinkedDelimiterStart(scnr, context) {\n const { currentType } = context;\n if (!(currentType === 7 /* TokenTypes.LinkedAlias */ ||\n currentType === 11 /* TokenTypes.LinkedModifier */)) {\n return false;\n }\n peekSpaces(scnr);\n const ret = scnr.currentPeek() === \":\" /* TokenChars.LinkedDelimiter */;\n scnr.resetPeek();\n return ret;\n }\n function isLinkedReferStart(scnr, context) {\n const { currentType } = context;\n if (currentType !== 9 /* TokenTypes.LinkedDelimiter */) {\n return false;\n }\n const fn = () => {\n const ch = scnr.currentPeek();\n if (ch === \"{\" /* TokenChars.BraceLeft */) {\n return isIdentifierStart(scnr.peek());\n }\n else if (ch === \"@\" /* TokenChars.LinkedAlias */ ||\n ch === \"|\" /* TokenChars.Pipe */ ||\n ch === \":\" /* TokenChars.LinkedDelimiter */ ||\n ch === \".\" /* TokenChars.LinkedDot */ ||\n ch === CHAR_SP ||\n !ch) {\n return false;\n }\n else if (ch === CHAR_LF) {\n scnr.peek();\n return fn();\n }\n else {\n // other characters\n return isTextStart(scnr, false);\n }\n };\n const ret = fn();\n scnr.resetPeek();\n return ret;\n }\n function isPluralStart(scnr) {\n peekSpaces(scnr);\n const ret = scnr.currentPeek() === \"|\" /* TokenChars.Pipe */;\n scnr.resetPeek();\n return ret;\n }\n function isTextStart(scnr, reset = true) {\n const fn = (hasSpace = false, prev = '') => {\n const ch = scnr.currentPeek();\n if (ch === \"{\" /* TokenChars.BraceLeft */) {\n return hasSpace;\n }\n else if (ch === \"@\" /* TokenChars.LinkedAlias */ || !ch) {\n return hasSpace;\n }\n else if (ch === \"|\" /* TokenChars.Pipe */) {\n return !(prev === CHAR_SP || prev === CHAR_LF);\n }\n else if (ch === CHAR_SP) {\n scnr.peek();\n return fn(true, CHAR_SP);\n }\n else if (ch === CHAR_LF) {\n scnr.peek();\n return fn(true, CHAR_LF);\n }\n else {\n return true;\n }\n };\n const ret = fn();\n reset && scnr.resetPeek();\n return ret;\n }\n function takeChar(scnr, fn) {\n const ch = scnr.currentChar();\n if (ch === EOF) {\n return EOF;\n }\n if (fn(ch)) {\n scnr.next();\n return ch;\n }\n return null;\n }\n function isIdentifier(ch) {\n const cc = ch.charCodeAt(0);\n return ((cc >= 97 && cc <= 122) || // a-z\n (cc >= 65 && cc <= 90) || // A-Z\n (cc >= 48 && cc <= 57) || // 0-9\n cc === 95 || // _\n cc === 36 // $\n );\n }\n function takeIdentifierChar(scnr) {\n return takeChar(scnr, isIdentifier);\n }\n function isNamedIdentifier(ch) {\n const cc = ch.charCodeAt(0);\n return ((cc >= 97 && cc <= 122) || // a-z\n (cc >= 65 && cc <= 90) || // A-Z\n (cc >= 48 && cc <= 57) || // 0-9\n cc === 95 || // _\n cc === 36 || // $\n cc === 45 // -\n );\n }\n function takeNamedIdentifierChar(scnr) {\n return takeChar(scnr, isNamedIdentifier);\n }\n function isDigit(ch) {\n const cc = ch.charCodeAt(0);\n return cc >= 48 && cc <= 57; // 0-9\n }\n function takeDigit(scnr) {\n return takeChar(scnr, isDigit);\n }\n function isHexDigit(ch) {\n const cc = ch.charCodeAt(0);\n return ((cc >= 48 && cc <= 57) || // 0-9\n (cc >= 65 && cc <= 70) || // A-F\n (cc >= 97 && cc <= 102)); // a-f\n }\n function takeHexDigit(scnr) {\n return takeChar(scnr, isHexDigit);\n }\n function getDigits(scnr) {\n let ch = '';\n let num = '';\n while ((ch = takeDigit(scnr))) {\n num += ch;\n }\n return num;\n }\n function readText(scnr) {\n let buf = '';\n while (true) {\n const ch = scnr.currentChar();\n if (ch === \"{\" /* TokenChars.BraceLeft */ ||\n ch === \"}\" /* TokenChars.BraceRight */ ||\n ch === \"@\" /* TokenChars.LinkedAlias */ ||\n ch === \"|\" /* TokenChars.Pipe */ ||\n !ch) {\n break;\n }\n else if (ch === CHAR_SP || ch === CHAR_LF) {\n if (isTextStart(scnr)) {\n buf += ch;\n scnr.next();\n }\n else if (isPluralStart(scnr)) {\n break;\n }\n else {\n buf += ch;\n scnr.next();\n }\n }\n else {\n buf += ch;\n scnr.next();\n }\n }\n return buf;\n }\n function readNamedIdentifier(scnr) {\n skipSpaces(scnr);\n let ch = '';\n let name = '';\n while ((ch = takeNamedIdentifierChar(scnr))) {\n name += ch;\n }\n if (scnr.currentChar() === EOF) {\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\n }\n return name;\n }\n function readListIdentifier(scnr) {\n skipSpaces(scnr);\n let value = '';\n if (scnr.currentChar() === '-') {\n scnr.next();\n value += `-${getDigits(scnr)}`;\n }\n else {\n value += getDigits(scnr);\n }\n if (scnr.currentChar() === EOF) {\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\n }\n return value;\n }\n function isLiteral(ch) {\n return ch !== LITERAL_DELIMITER && ch !== CHAR_LF;\n }\n function readLiteral(scnr) {\n skipSpaces(scnr);\n // eslint-disable-next-line no-useless-escape\n eat(scnr, `\\'`);\n let ch = '';\n let literal = '';\n while ((ch = takeChar(scnr, isLiteral))) {\n if (ch === '\\\\') {\n literal += readEscapeSequence(scnr);\n }\n else {\n literal += ch;\n }\n }\n const current = scnr.currentChar();\n if (current === CHAR_LF || current === EOF) {\n emitError(CompileErrorCodes.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER, currentPosition(), 0);\n // TODO: Is it correct really?\n if (current === CHAR_LF) {\n scnr.next();\n // eslint-disable-next-line no-useless-escape\n eat(scnr, `\\'`);\n }\n return literal;\n }\n // eslint-disable-next-line no-useless-escape\n eat(scnr, `\\'`);\n return literal;\n }\n function readEscapeSequence(scnr) {\n const ch = scnr.currentChar();\n switch (ch) {\n case '\\\\':\n case `\\'`: // eslint-disable-line no-useless-escape\n scnr.next();\n return `\\\\${ch}`;\n case 'u':\n return readUnicodeEscapeSequence(scnr, ch, 4);\n case 'U':\n return readUnicodeEscapeSequence(scnr, ch, 6);\n default:\n emitError(CompileErrorCodes.UNKNOWN_ESCAPE_SEQUENCE, currentPosition(), 0, ch);\n return '';\n }\n }\n function readUnicodeEscapeSequence(scnr, unicode, digits) {\n eat(scnr, unicode);\n let sequence = '';\n for (let i = 0; i < digits; i++) {\n const ch = takeHexDigit(scnr);\n if (!ch) {\n emitError(CompileErrorCodes.INVALID_UNICODE_ESCAPE_SEQUENCE, currentPosition(), 0, `\\\\${unicode}${sequence}${scnr.currentChar()}`);\n break;\n }\n sequence += ch;\n }\n return `\\\\${unicode}${sequence}`;\n }\n function isInvalidIdentifier(ch) {\n return (ch !== \"{\" /* TokenChars.BraceLeft */ &&\n ch !== \"}\" /* TokenChars.BraceRight */ &&\n ch !== CHAR_SP &&\n ch !== CHAR_LF);\n }\n function readInvalidIdentifier(scnr) {\n skipSpaces(scnr);\n let ch = '';\n let identifiers = '';\n while ((ch = takeChar(scnr, isInvalidIdentifier))) {\n identifiers += ch;\n }\n return identifiers;\n }\n function readLinkedModifier(scnr) {\n let ch = '';\n let name = '';\n while ((ch = takeIdentifierChar(scnr))) {\n name += ch;\n }\n return name;\n }\n function readLinkedRefer(scnr) {\n const fn = (buf) => {\n const ch = scnr.currentChar();\n if (ch === \"{\" /* TokenChars.BraceLeft */ ||\n ch === \"@\" /* TokenChars.LinkedAlias */ ||\n ch === \"|\" /* TokenChars.Pipe */ ||\n ch === \"(\" /* TokenChars.ParenLeft */ ||\n ch === \")\" /* TokenChars.ParenRight */ ||\n !ch) {\n return buf;\n }\n else if (ch === CHAR_SP) {\n return buf;\n }\n else if (ch === CHAR_LF || ch === DOT) {\n buf += ch;\n scnr.next();\n return fn(buf);\n }\n else {\n buf += ch;\n scnr.next();\n return fn(buf);\n }\n };\n return fn('');\n }\n function readPlural(scnr) {\n skipSpaces(scnr);\n const plural = eat(scnr, \"|\" /* TokenChars.Pipe */);\n skipSpaces(scnr);\n return plural;\n }\n // TODO: We need refactoring of token parsing ...\n function readTokenInPlaceholder(scnr, context) {\n let token = null;\n const ch = scnr.currentChar();\n switch (ch) {\n case \"{\" /* TokenChars.BraceLeft */:\n if (context.braceNest >= 1) {\n emitError(CompileErrorCodes.NOT_ALLOW_NEST_PLACEHOLDER, currentPosition(), 0);\n }\n scnr.next();\n token = getToken(context, 2 /* TokenTypes.BraceLeft */, \"{\" /* TokenChars.BraceLeft */);\n skipSpaces(scnr);\n context.braceNest++;\n return token;\n case \"}\" /* TokenChars.BraceRight */:\n if (context.braceNest > 0 &&\n context.currentType === 2 /* TokenTypes.BraceLeft */) {\n emitError(CompileErrorCodes.EMPTY_PLACEHOLDER, currentPosition(), 0);\n }\n scnr.next();\n token = getToken(context, 3 /* TokenTypes.BraceRight */, \"}\" /* TokenChars.BraceRight */);\n context.braceNest--;\n context.braceNest > 0 && skipSpaces(scnr);\n if (context.inLinked && context.braceNest === 0) {\n context.inLinked = false;\n }\n return token;\n case \"@\" /* TokenChars.LinkedAlias */:\n if (context.braceNest > 0) {\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\n }\n token = readTokenInLinked(scnr, context) || getEndToken(context);\n context.braceNest = 0;\n return token;\n default: {\n let validNamedIdentifier = true;\n let validListIdentifier = true;\n let validLiteral = true;\n if (isPluralStart(scnr)) {\n if (context.braceNest > 0) {\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\n }\n token = getToken(context, 1 /* TokenTypes.Pipe */, readPlural(scnr));\n // reset\n context.braceNest = 0;\n context.inLinked = false;\n return token;\n }\n if (context.braceNest > 0 &&\n (context.currentType === 4 /* TokenTypes.Named */ ||\n context.currentType === 5 /* TokenTypes.List */ ||\n context.currentType === 6 /* TokenTypes.Literal */)) {\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\n context.braceNest = 0;\n return readToken(scnr, context);\n }\n if ((validNamedIdentifier = isNamedIdentifierStart(scnr, context))) {\n token = getToken(context, 4 /* TokenTypes.Named */, readNamedIdentifier(scnr));\n skipSpaces(scnr);\n return token;\n }\n if ((validListIdentifier = isListIdentifierStart(scnr, context))) {\n token = getToken(context, 5 /* TokenTypes.List */, readListIdentifier(scnr));\n skipSpaces(scnr);\n return token;\n }\n if ((validLiteral = isLiteralStart(scnr, context))) {\n token = getToken(context, 6 /* TokenTypes.Literal */, readLiteral(scnr));\n skipSpaces(scnr);\n return token;\n }\n if (!validNamedIdentifier && !validListIdentifier && !validLiteral) {\n // TODO: we should be re-designed invalid cases, when we will extend message syntax near the future ...\n token = getToken(context, 12 /* TokenTypes.InvalidPlace */, readInvalidIdentifier(scnr));\n emitError(CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER, currentPosition(), 0, token.value);\n skipSpaces(scnr);\n return token;\n }\n break;\n }\n }\n return token;\n }\n // TODO: We need refactoring of token parsing ...\n function readTokenInLinked(scnr, context) {\n const { currentType } = context;\n let token = null;\n const ch = scnr.currentChar();\n if ((currentType === 7 /* TokenTypes.LinkedAlias */ ||\n currentType === 8 /* TokenTypes.LinkedDot */ ||\n currentType === 11 /* TokenTypes.LinkedModifier */ ||\n currentType === 9 /* TokenTypes.LinkedDelimiter */) &&\n (ch === CHAR_LF || ch === CHAR_SP)) {\n emitError(CompileErrorCodes.INVALID_LINKED_FORMAT, currentPosition(), 0);\n }\n switch (ch) {\n case \"@\" /* TokenChars.LinkedAlias */:\n scnr.next();\n token = getToken(context, 7 /* TokenTypes.LinkedAlias */, \"@\" /* TokenChars.LinkedAlias */);\n context.inLinked = true;\n return token;\n case \".\" /* TokenChars.LinkedDot */:\n skipSpaces(scnr);\n scnr.next();\n return getToken(context, 8 /* TokenTypes.LinkedDot */, \".\" /* TokenChars.LinkedDot */);\n case \":\" /* TokenChars.LinkedDelimiter */:\n skipSpaces(scnr);\n scnr.next();\n return getToken(context, 9 /* TokenTypes.LinkedDelimiter */, \":\" /* TokenChars.LinkedDelimiter */);\n default:\n if (isPluralStart(scnr)) {\n token = getToken(context, 1 /* TokenTypes.Pipe */, readPlural(scnr));\n // reset\n context.braceNest = 0;\n context.inLinked = false;\n return token;\n }\n if (isLinkedDotStart(scnr, context) ||\n isLinkedDelimiterStart(scnr, context)) {\n skipSpaces(scnr);\n return readTokenInLinked(scnr, context);\n }\n if (isLinkedModifierStart(scnr, context)) {\n skipSpaces(scnr);\n return getToken(context, 11 /* TokenTypes.LinkedModifier */, readLinkedModifier(scnr));\n }\n if (isLinkedReferStart(scnr, context)) {\n skipSpaces(scnr);\n if (ch === \"{\" /* TokenChars.BraceLeft */) {\n // scan the placeholder\n return readTokenInPlaceholder(scnr, context) || token;\n }\n else {\n return getToken(context, 10 /* TokenTypes.LinkedKey */, readLinkedRefer(scnr));\n }\n }\n if (currentType === 7 /* TokenTypes.LinkedAlias */) {\n emitError(CompileErrorCodes.INVALID_LINKED_FORMAT, currentPosition(), 0);\n }\n context.braceNest = 0;\n context.inLinked = false;\n return readToken(scnr, context);\n }\n }\n // TODO: We need refactoring of token parsing ...\n function readToken(scnr, context) {\n let token = { type: 13 /* TokenTypes.EOF */ };\n if (context.braceNest > 0) {\n return readTokenInPlaceholder(scnr, context) || getEndToken(context);\n }\n if (context.inLinked) {\n return readTokenInLinked(scnr, context) || getEndToken(context);\n }\n const ch = scnr.currentChar();\n switch (ch) {\n case \"{\" /* TokenChars.BraceLeft */:\n return readTokenInPlaceholder(scnr, context) || getEndToken(context);\n case \"}\" /* TokenChars.BraceRight */:\n emitError(CompileErrorCodes.UNBALANCED_CLOSING_BRACE, currentPosition(), 0);\n scnr.next();\n return getToken(context, 3 /* TokenTypes.BraceRight */, \"}\" /* TokenChars.BraceRight */);\n case \"@\" /* TokenChars.LinkedAlias */:\n return readTokenInLinked(scnr, context) || getEndToken(context);\n default: {\n if (isPluralStart(scnr)) {\n token = getToken(context, 1 /* TokenTypes.Pipe */, readPlural(scnr));\n // reset\n context.braceNest = 0;\n context.inLinked = false;\n return token;\n }\n if (isTextStart(scnr)) {\n return getToken(context, 0 /* TokenTypes.Text */, readText(scnr));\n }\n break;\n }\n }\n return token;\n }\n function nextToken() {\n const { currentType, offset, startLoc, endLoc } = _context;\n _context.lastType = currentType;\n _context.lastOffset = offset;\n _context.lastStartLoc = startLoc;\n _context.lastEndLoc = endLoc;\n _context.offset = currentOffset();\n _context.startLoc = currentPosition();\n if (_scnr.currentChar() === EOF) {\n return getToken(_context, 13 /* TokenTypes.EOF */);\n }\n return readToken(_scnr, _context);\n }\n return {\n nextToken,\n currentOffset,\n currentPosition,\n context\n };\n}\n\nconst ERROR_DOMAIN$2 = 'parser';\n// Backslash backslash, backslash quote, uHHHH, UHHHHHH.\nconst KNOWN_ESCAPES = /(?:\\\\\\\\|\\\\'|\\\\u([0-9a-fA-F]{4})|\\\\U([0-9a-fA-F]{6}))/g;\nfunction fromEscapeSequence(match, codePoint4, codePoint6) {\n switch (match) {\n case `\\\\\\\\`:\n return `\\\\`;\n // eslint-disable-next-line no-useless-escape\n case `\\\\\\'`:\n // eslint-disable-next-line no-useless-escape\n return `\\'`;\n default: {\n const codePoint = parseInt(codePoint4 || codePoint6, 16);\n if (codePoint <= 0xd7ff || codePoint >= 0xe000) {\n return String.fromCodePoint(codePoint);\n }\n // invalid ...\n // Replace them with U+FFFD REPLACEMENT CHARACTER.\n return '�';\n }\n }\n}\nfunction createParser(options = {}) {\n const location = options.location !== false;\n const { onError } = options;\n function emitError(tokenzer, code, start, offset, ...args) {\n const end = tokenzer.currentPosition();\n end.offset += offset;\n end.column += offset;\n if (onError) {\n const loc = location ? createLocation(start, end) : null;\n const err = createCompileError(code, loc, {\n domain: ERROR_DOMAIN$2,\n args\n });\n onError(err);\n }\n }\n function startNode(type, offset, loc) {\n const node = { type };\n if (location) {\n node.start = offset;\n node.end = offset;\n node.loc = { start: loc, end: loc };\n }\n return node;\n }\n function endNode(node, offset, pos, type) {\n if (type) {\n node.type = type;\n }\n if (location) {\n node.end = offset;\n if (node.loc) {\n node.loc.end = pos;\n }\n }\n }\n function parseText(tokenizer, value) {\n const context = tokenizer.context();\n const node = startNode(3 /* NodeTypes.Text */, context.offset, context.startLoc);\n node.value = value;\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return node;\n }\n function parseList(tokenizer, index) {\n const context = tokenizer.context();\n const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\n const node = startNode(5 /* NodeTypes.List */, offset, loc);\n node.index = parseInt(index, 10);\n tokenizer.nextToken(); // skip brach right\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return node;\n }\n function parseNamed(tokenizer, key) {\n const context = tokenizer.context();\n const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\n const node = startNode(4 /* NodeTypes.Named */, offset, loc);\n node.key = key;\n tokenizer.nextToken(); // skip brach right\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return node;\n }\n function parseLiteral(tokenizer, value) {\n const context = tokenizer.context();\n const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\n const node = startNode(9 /* NodeTypes.Literal */, offset, loc);\n node.value = value.replace(KNOWN_ESCAPES, fromEscapeSequence);\n tokenizer.nextToken(); // skip brach right\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return node;\n }\n function parseLinkedModifier(tokenizer) {\n const token = tokenizer.nextToken();\n const context = tokenizer.context();\n const { lastOffset: offset, lastStartLoc: loc } = context; // get linked dot loc\n const node = startNode(8 /* NodeTypes.LinkedModifier */, offset, loc);\n if (token.type !== 11 /* TokenTypes.LinkedModifier */) {\n // empty modifier\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_MODIFIER, context.lastStartLoc, 0);\n node.value = '';\n endNode(node, offset, loc);\n return {\n nextConsumeToken: token,\n node\n };\n }\n // check token\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n node.value = token.value || '';\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return {\n node\n };\n }\n function parseLinkedKey(tokenizer, value) {\n const context = tokenizer.context();\n const node = startNode(7 /* NodeTypes.LinkedKey */, context.offset, context.startLoc);\n node.value = value;\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return node;\n }\n function parseLinked(tokenizer) {\n const context = tokenizer.context();\n const linkedNode = startNode(6 /* NodeTypes.Linked */, context.offset, context.startLoc);\n let token = tokenizer.nextToken();\n if (token.type === 8 /* TokenTypes.LinkedDot */) {\n const parsed = parseLinkedModifier(tokenizer);\n linkedNode.modifier = parsed.node;\n token = parsed.nextConsumeToken || tokenizer.nextToken();\n }\n // asset check token\n if (token.type !== 9 /* TokenTypes.LinkedDelimiter */) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n token = tokenizer.nextToken();\n // skip brace left\n if (token.type === 2 /* TokenTypes.BraceLeft */) {\n token = tokenizer.nextToken();\n }\n switch (token.type) {\n case 10 /* TokenTypes.LinkedKey */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n linkedNode.key = parseLinkedKey(tokenizer, token.value || '');\n break;\n case 4 /* TokenTypes.Named */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n linkedNode.key = parseNamed(tokenizer, token.value || '');\n break;\n case 5 /* TokenTypes.List */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n linkedNode.key = parseList(tokenizer, token.value || '');\n break;\n case 6 /* TokenTypes.Literal */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n linkedNode.key = parseLiteral(tokenizer, token.value || '');\n break;\n default: {\n // empty key\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_KEY, context.lastStartLoc, 0);\n const nextContext = tokenizer.context();\n const emptyLinkedKeyNode = startNode(7 /* NodeTypes.LinkedKey */, nextContext.offset, nextContext.startLoc);\n emptyLinkedKeyNode.value = '';\n endNode(emptyLinkedKeyNode, nextContext.offset, nextContext.startLoc);\n linkedNode.key = emptyLinkedKeyNode;\n endNode(linkedNode, nextContext.offset, nextContext.startLoc);\n return {\n nextConsumeToken: token,\n node: linkedNode\n };\n }\n }\n endNode(linkedNode, tokenizer.currentOffset(), tokenizer.currentPosition());\n return {\n node: linkedNode\n };\n }\n function parseMessage(tokenizer) {\n const context = tokenizer.context();\n const startOffset = context.currentType === 1 /* TokenTypes.Pipe */\n ? tokenizer.currentOffset()\n : context.offset;\n const startLoc = context.currentType === 1 /* TokenTypes.Pipe */\n ? context.endLoc\n : context.startLoc;\n const node = startNode(2 /* NodeTypes.Message */, startOffset, startLoc);\n node.items = [];\n let nextToken = null;\n do {\n const token = nextToken || tokenizer.nextToken();\n nextToken = null;\n switch (token.type) {\n case 0 /* TokenTypes.Text */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n node.items.push(parseText(tokenizer, token.value || ''));\n break;\n case 5 /* TokenTypes.List */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n node.items.push(parseList(tokenizer, token.value || ''));\n break;\n case 4 /* TokenTypes.Named */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n node.items.push(parseNamed(tokenizer, token.value || ''));\n break;\n case 6 /* TokenTypes.Literal */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n node.items.push(parseLiteral(tokenizer, token.value || ''));\n break;\n case 7 /* TokenTypes.LinkedAlias */: {\n const parsed = parseLinked(tokenizer);\n node.items.push(parsed.node);\n nextToken = parsed.nextConsumeToken || null;\n break;\n }\n }\n } while (context.currentType !== 13 /* TokenTypes.EOF */ &&\n context.currentType !== 1 /* TokenTypes.Pipe */);\n // adjust message node loc\n const endOffset = context.currentType === 1 /* TokenTypes.Pipe */\n ? context.lastOffset\n : tokenizer.currentOffset();\n const endLoc = context.currentType === 1 /* TokenTypes.Pipe */\n ? context.lastEndLoc\n : tokenizer.currentPosition();\n endNode(node, endOffset, endLoc);\n return node;\n }\n function parsePlural(tokenizer, offset, loc, msgNode) {\n const context = tokenizer.context();\n let hasEmptyMessage = msgNode.items.length === 0;\n const node = startNode(1 /* NodeTypes.Plural */, offset, loc);\n node.cases = [];\n node.cases.push(msgNode);\n do {\n const msg = parseMessage(tokenizer);\n if (!hasEmptyMessage) {\n hasEmptyMessage = msg.items.length === 0;\n }\n node.cases.push(msg);\n } while (context.currentType !== 13 /* TokenTypes.EOF */);\n if (hasEmptyMessage) {\n emitError(tokenizer, CompileErrorCodes.MUST_HAVE_MESSAGES_IN_PLURAL, loc, 0);\n }\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return node;\n }\n function parseResource(tokenizer) {\n const context = tokenizer.context();\n const { offset, startLoc } = context;\n const msgNode = parseMessage(tokenizer);\n if (context.currentType === 13 /* TokenTypes.EOF */) {\n return msgNode;\n }\n else {\n return parsePlural(tokenizer, offset, startLoc, msgNode);\n }\n }\n function parse(source) {\n const tokenizer = createTokenizer(source, assign({}, options));\n const context = tokenizer.context();\n const node = startNode(0 /* NodeTypes.Resource */, context.offset, context.startLoc);\n if (location && node.loc) {\n node.loc.source = source;\n }\n node.body = parseResource(tokenizer);\n if (options.onCacheKey) {\n node.cacheKey = options.onCacheKey(source);\n }\n // assert whether achieved to EOF\n if (context.currentType !== 13 /* TokenTypes.EOF */) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, source[context.offset] || '');\n }\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return node;\n }\n return { parse };\n}\nfunction getTokenCaption(token) {\n if (token.type === 13 /* TokenTypes.EOF */) {\n return 'EOF';\n }\n const name = (token.value || '').replace(/\\r?\\n/gu, '\\\\n');\n return name.length > 10 ? name.slice(0, 9) + '…' : name;\n}\n\nfunction createTransformer(ast, options = {} // eslint-disable-line\n) {\n const _context = {\n ast,\n helpers: new Set()\n };\n const context = () => _context;\n const helper = (name) => {\n _context.helpers.add(name);\n return name;\n };\n return { context, helper };\n}\nfunction traverseNodes(nodes, transformer) {\n for (let i = 0; i < nodes.length; i++) {\n traverseNode(nodes[i], transformer);\n }\n}\nfunction traverseNode(node, transformer) {\n // TODO: if we need pre-hook of transform, should be implemented to here\n switch (node.type) {\n case 1 /* NodeTypes.Plural */:\n traverseNodes(node.cases, transformer);\n transformer.helper(\"plural\" /* HelperNameMap.PLURAL */);\n break;\n case 2 /* NodeTypes.Message */:\n traverseNodes(node.items, transformer);\n break;\n case 6 /* NodeTypes.Linked */: {\n const linked = node;\n traverseNode(linked.key, transformer);\n transformer.helper(\"linked\" /* HelperNameMap.LINKED */);\n transformer.helper(\"type\" /* HelperNameMap.TYPE */);\n break;\n }\n case 5 /* NodeTypes.List */:\n transformer.helper(\"interpolate\" /* HelperNameMap.INTERPOLATE */);\n transformer.helper(\"list\" /* HelperNameMap.LIST */);\n break;\n case 4 /* NodeTypes.Named */:\n transformer.helper(\"interpolate\" /* HelperNameMap.INTERPOLATE */);\n transformer.helper(\"named\" /* HelperNameMap.NAMED */);\n break;\n }\n // TODO: if we need post-hook of transform, should be implemented to here\n}\n// transform AST\nfunction transform(ast, options = {} // eslint-disable-line\n) {\n const transformer = createTransformer(ast);\n transformer.helper(\"normalize\" /* HelperNameMap.NORMALIZE */);\n // traverse\n ast.body && traverseNode(ast.body, transformer);\n // set meta information\n const context = transformer.context();\n ast.helpers = Array.from(context.helpers);\n}\n\nfunction optimize(ast) {\n const body = ast.body;\n if (body.type === 2 /* NodeTypes.Message */) {\n optimizeMessageNode(body);\n }\n else {\n body.cases.forEach(c => optimizeMessageNode(c));\n }\n return ast;\n}\nfunction optimizeMessageNode(message) {\n if (message.items.length === 1) {\n const item = message.items[0];\n if (item.type === 3 /* NodeTypes.Text */ || item.type === 9 /* NodeTypes.Literal */) {\n message.static = item.value;\n delete item.value; // optimization for size\n }\n }\n else {\n const values = [];\n for (let i = 0; i < message.items.length; i++) {\n const item = message.items[i];\n if (!(item.type === 3 /* NodeTypes.Text */ || item.type === 9 /* NodeTypes.Literal */)) {\n break;\n }\n if (item.value == null) {\n break;\n }\n values.push(item.value);\n }\n if (values.length === message.items.length) {\n message.static = join(values);\n for (let i = 0; i < message.items.length; i++) {\n const item = message.items[i];\n if (item.type === 3 /* NodeTypes.Text */ || item.type === 9 /* NodeTypes.Literal */) {\n delete item.value; // optimization for size\n }\n }\n }\n }\n}\n\nconst ERROR_DOMAIN$1 = 'minifier';\n/* eslint-disable @typescript-eslint/no-explicit-any */\nfunction minify(node) {\n node.t = node.type;\n switch (node.type) {\n case 0 /* NodeTypes.Resource */: {\n const resource = node;\n minify(resource.body);\n resource.b = resource.body;\n delete resource.body;\n break;\n }\n case 1 /* NodeTypes.Plural */: {\n const plural = node;\n const cases = plural.cases;\n for (let i = 0; i < cases.length; i++) {\n minify(cases[i]);\n }\n plural.c = cases;\n delete plural.cases;\n break;\n }\n case 2 /* NodeTypes.Message */: {\n const message = node;\n const items = message.items;\n for (let i = 0; i < items.length; i++) {\n minify(items[i]);\n }\n message.i = items;\n delete message.items;\n if (message.static) {\n message.s = message.static;\n delete message.static;\n }\n break;\n }\n case 3 /* NodeTypes.Text */:\n case 9 /* NodeTypes.Literal */:\n case 8 /* NodeTypes.LinkedModifier */:\n case 7 /* NodeTypes.LinkedKey */: {\n const valueNode = node;\n if (valueNode.value) {\n valueNode.v = valueNode.value;\n delete valueNode.value;\n }\n break;\n }\n case 6 /* NodeTypes.Linked */: {\n const linked = node;\n minify(linked.key);\n linked.k = linked.key;\n delete linked.key;\n if (linked.modifier) {\n minify(linked.modifier);\n linked.m = linked.modifier;\n delete linked.modifier;\n }\n break;\n }\n case 5 /* NodeTypes.List */: {\n const list = node;\n list.i = list.index;\n delete list.index;\n break;\n }\n case 4 /* NodeTypes.Named */: {\n const named = node;\n named.k = named.key;\n delete named.key;\n break;\n }\n default:\n if ((process.env.NODE_ENV !== 'production')) {\n throw createCompileError(CompileErrorCodes.UNHANDLED_MINIFIER_NODE_TYPE, null, {\n domain: ERROR_DOMAIN$1,\n args: [node.type]\n });\n }\n }\n delete node.type;\n}\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\n// eslint-disable-next-line @typescript-eslint/triple-slash-reference\n/// \nconst ERROR_DOMAIN = 'parser';\nfunction createCodeGenerator(ast, options) {\n const { sourceMap, filename, breakLineCode, needIndent: _needIndent } = options;\n const location = options.location !== false;\n const _context = {\n filename,\n code: '',\n column: 1,\n line: 1,\n offset: 0,\n map: undefined,\n breakLineCode,\n needIndent: _needIndent,\n indentLevel: 0\n };\n if (location && ast.loc) {\n _context.source = ast.loc.source;\n }\n const context = () => _context;\n function push(code, node) {\n _context.code += code;\n }\n function _newline(n, withBreakLine = true) {\n const _breakLineCode = withBreakLine ? breakLineCode : '';\n push(_needIndent ? _breakLineCode + ` `.repeat(n) : _breakLineCode);\n }\n function indent(withNewLine = true) {\n const level = ++_context.indentLevel;\n withNewLine && _newline(level);\n }\n function deindent(withNewLine = true) {\n const level = --_context.indentLevel;\n withNewLine && _newline(level);\n }\n function newline() {\n _newline(_context.indentLevel);\n }\n const helper = (key) => `_${key}`;\n const needIndent = () => _context.needIndent;\n return {\n context,\n push,\n indent,\n deindent,\n newline,\n helper,\n needIndent\n };\n}\nfunction generateLinkedNode(generator, node) {\n const { helper } = generator;\n generator.push(`${helper(\"linked\" /* HelperNameMap.LINKED */)}(`);\n generateNode(generator, node.key);\n if (node.modifier) {\n generator.push(`, `);\n generateNode(generator, node.modifier);\n generator.push(`, _type`);\n }\n else {\n generator.push(`, undefined, _type`);\n }\n generator.push(`)`);\n}\nfunction generateMessageNode(generator, node) {\n const { helper, needIndent } = generator;\n generator.push(`${helper(\"normalize\" /* HelperNameMap.NORMALIZE */)}([`);\n generator.indent(needIndent());\n const length = node.items.length;\n for (let i = 0; i < length; i++) {\n generateNode(generator, node.items[i]);\n if (i === length - 1) {\n break;\n }\n generator.push(', ');\n }\n generator.deindent(needIndent());\n generator.push('])');\n}\nfunction generatePluralNode(generator, node) {\n const { helper, needIndent } = generator;\n if (node.cases.length > 1) {\n generator.push(`${helper(\"plural\" /* HelperNameMap.PLURAL */)}([`);\n generator.indent(needIndent());\n const length = node.cases.length;\n for (let i = 0; i < length; i++) {\n generateNode(generator, node.cases[i]);\n if (i === length - 1) {\n break;\n }\n generator.push(', ');\n }\n generator.deindent(needIndent());\n generator.push(`])`);\n }\n}\nfunction generateResource(generator, node) {\n if (node.body) {\n generateNode(generator, node.body);\n }\n else {\n generator.push('null');\n }\n}\nfunction generateNode(generator, node) {\n const { helper } = generator;\n switch (node.type) {\n case 0 /* NodeTypes.Resource */:\n generateResource(generator, node);\n break;\n case 1 /* NodeTypes.Plural */:\n generatePluralNode(generator, node);\n break;\n case 2 /* NodeTypes.Message */:\n generateMessageNode(generator, node);\n break;\n case 6 /* NodeTypes.Linked */:\n generateLinkedNode(generator, node);\n break;\n case 8 /* NodeTypes.LinkedModifier */:\n generator.push(JSON.stringify(node.value), node);\n break;\n case 7 /* NodeTypes.LinkedKey */:\n generator.push(JSON.stringify(node.value), node);\n break;\n case 5 /* NodeTypes.List */:\n generator.push(`${helper(\"interpolate\" /* HelperNameMap.INTERPOLATE */)}(${helper(\"list\" /* HelperNameMap.LIST */)}(${node.index}))`, node);\n break;\n case 4 /* NodeTypes.Named */:\n generator.push(`${helper(\"interpolate\" /* HelperNameMap.INTERPOLATE */)}(${helper(\"named\" /* HelperNameMap.NAMED */)}(${JSON.stringify(node.key)}))`, node);\n break;\n case 9 /* NodeTypes.Literal */:\n generator.push(JSON.stringify(node.value), node);\n break;\n case 3 /* NodeTypes.Text */:\n generator.push(JSON.stringify(node.value), node);\n break;\n default:\n if ((process.env.NODE_ENV !== 'production')) {\n throw createCompileError(CompileErrorCodes.UNHANDLED_CODEGEN_NODE_TYPE, null, {\n domain: ERROR_DOMAIN,\n args: [node.type]\n });\n }\n }\n}\n// generate code from AST\nconst generate = (ast, options = {}) => {\n const mode = isString(options.mode) ? options.mode : 'normal';\n const filename = isString(options.filename)\n ? options.filename\n : 'message.intl';\n const sourceMap = !!options.sourceMap;\n // prettier-ignore\n const breakLineCode = options.breakLineCode != null\n ? options.breakLineCode\n : mode === 'arrow'\n ? ';'\n : '\\n';\n const needIndent = options.needIndent ? options.needIndent : mode !== 'arrow';\n const helpers = ast.helpers || [];\n const generator = createCodeGenerator(ast, {\n mode,\n filename,\n sourceMap,\n breakLineCode,\n needIndent\n });\n generator.push(mode === 'normal' ? `function __msg__ (ctx) {` : `(ctx) => {`);\n generator.indent(needIndent);\n if (helpers.length > 0) {\n generator.push(`const { ${join(helpers.map(s => `${s}: _${s}`), ', ')} } = ctx`);\n generator.newline();\n }\n generator.push(`return `);\n generateNode(generator, ast);\n generator.deindent(needIndent);\n generator.push(`}`);\n delete ast.helpers;\n const { code, map } = generator.context();\n return {\n ast,\n code,\n map: map ? map.toJSON() : undefined // eslint-disable-line @typescript-eslint/no-explicit-any\n };\n};\n\nfunction baseCompile(source, options = {}) {\n const assignedOptions = assign({}, options);\n const jit = !!assignedOptions.jit;\n const enalbeMinify = !!assignedOptions.minify;\n const enambeOptimize = assignedOptions.optimize == null ? true : assignedOptions.optimize;\n // parse source codes\n const parser = createParser(assignedOptions);\n const ast = parser.parse(source);\n if (!jit) {\n // transform ASTs\n transform(ast, assignedOptions);\n // generate javascript codes\n return generate(ast, assignedOptions);\n }\n else {\n // optimize ASTs\n enambeOptimize && optimize(ast);\n // minimize ASTs\n enalbeMinify && minify(ast);\n // In JIT mode, no ast transform, no code generation.\n return { ast, code: '' };\n }\n}\n\nexport { COMPILE_ERROR_CODES_EXTEND_POINT, CompileErrorCodes, ERROR_DOMAIN$2 as ERROR_DOMAIN, LOCATION_STUB, baseCompile, createCompileError, createLocation, createParser, createPosition, defaultOnError, detectHtmlTag, errorMessages };\n","/*!\n * devtools-if v9.2.2\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\nconst IntlifyDevToolsHooks = {\r\n I18nInit: 'i18n:init',\r\n FunctionTranslate: 'function:translate'\r\n};\n\nexport { IntlifyDevToolsHooks };\n","/*!\n * core-base v9.2.2\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\nimport { isObject, isString, isFunction, isNumber, isPlainObject, toDisplayString, isArray, format, isBoolean, assign, isRegExp, warn, escapeHtml, inBrowser, mark, measure, isEmptyObject, generateCodeFrame, generateFormatCacheKey, isDate, getGlobalThis } from '@intlify/shared';\nimport { defaultOnError, baseCompile, CompileErrorCodes, createCompileError } from '@intlify/message-compiler';\nexport { CompileErrorCodes, createCompileError } from '@intlify/message-compiler';\nimport { IntlifyDevToolsHooks } from '@intlify/devtools-if';\n\nconst pathStateMachine = [];\r\npathStateMachine[0 /* BEFORE_PATH */] = {\r\n [\"w\" /* WORKSPACE */]: [0 /* BEFORE_PATH */],\r\n [\"i\" /* IDENT */]: [3 /* IN_IDENT */, 0 /* APPEND */],\r\n [\"[\" /* LEFT_BRACKET */]: [4 /* IN_SUB_PATH */],\r\n [\"o\" /* END_OF_FAIL */]: [7 /* AFTER_PATH */]\r\n};\r\npathStateMachine[1 /* IN_PATH */] = {\r\n [\"w\" /* WORKSPACE */]: [1 /* IN_PATH */],\r\n [\".\" /* DOT */]: [2 /* BEFORE_IDENT */],\r\n [\"[\" /* LEFT_BRACKET */]: [4 /* IN_SUB_PATH */],\r\n [\"o\" /* END_OF_FAIL */]: [7 /* AFTER_PATH */]\r\n};\r\npathStateMachine[2 /* BEFORE_IDENT */] = {\r\n [\"w\" /* WORKSPACE */]: [2 /* BEFORE_IDENT */],\r\n [\"i\" /* IDENT */]: [3 /* IN_IDENT */, 0 /* APPEND */],\r\n [\"0\" /* ZERO */]: [3 /* IN_IDENT */, 0 /* APPEND */]\r\n};\r\npathStateMachine[3 /* IN_IDENT */] = {\r\n [\"i\" /* IDENT */]: [3 /* IN_IDENT */, 0 /* APPEND */],\r\n [\"0\" /* ZERO */]: [3 /* IN_IDENT */, 0 /* APPEND */],\r\n [\"w\" /* WORKSPACE */]: [1 /* IN_PATH */, 1 /* PUSH */],\r\n [\".\" /* DOT */]: [2 /* BEFORE_IDENT */, 1 /* PUSH */],\r\n [\"[\" /* LEFT_BRACKET */]: [4 /* IN_SUB_PATH */, 1 /* PUSH */],\r\n [\"o\" /* END_OF_FAIL */]: [7 /* AFTER_PATH */, 1 /* PUSH */]\r\n};\r\npathStateMachine[4 /* IN_SUB_PATH */] = {\r\n [\"'\" /* SINGLE_QUOTE */]: [5 /* IN_SINGLE_QUOTE */, 0 /* APPEND */],\r\n [\"\\\"\" /* DOUBLE_QUOTE */]: [6 /* IN_DOUBLE_QUOTE */, 0 /* APPEND */],\r\n [\"[\" /* LEFT_BRACKET */]: [\r\n 4 /* IN_SUB_PATH */,\r\n 2 /* INC_SUB_PATH_DEPTH */\r\n ],\r\n [\"]\" /* RIGHT_BRACKET */]: [1 /* IN_PATH */, 3 /* PUSH_SUB_PATH */],\r\n [\"o\" /* END_OF_FAIL */]: 8 /* ERROR */,\r\n [\"l\" /* ELSE */]: [4 /* IN_SUB_PATH */, 0 /* APPEND */]\r\n};\r\npathStateMachine[5 /* IN_SINGLE_QUOTE */] = {\r\n [\"'\" /* SINGLE_QUOTE */]: [4 /* IN_SUB_PATH */, 0 /* APPEND */],\r\n [\"o\" /* END_OF_FAIL */]: 8 /* ERROR */,\r\n [\"l\" /* ELSE */]: [5 /* IN_SINGLE_QUOTE */, 0 /* APPEND */]\r\n};\r\npathStateMachine[6 /* IN_DOUBLE_QUOTE */] = {\r\n [\"\\\"\" /* DOUBLE_QUOTE */]: [4 /* IN_SUB_PATH */, 0 /* APPEND */],\r\n [\"o\" /* END_OF_FAIL */]: 8 /* ERROR */,\r\n [\"l\" /* ELSE */]: [6 /* IN_DOUBLE_QUOTE */, 0 /* APPEND */]\r\n};\r\n/**\r\n * Check if an expression is a literal value.\r\n */\r\nconst literalValueRE = /^\\s?(?:true|false|-?[\\d.]+|'[^']*'|\"[^\"]*\")\\s?$/;\r\nfunction isLiteral(exp) {\r\n return literalValueRE.test(exp);\r\n}\r\n/**\r\n * Strip quotes from a string\r\n */\r\nfunction stripQuotes(str) {\r\n const a = str.charCodeAt(0);\r\n const b = str.charCodeAt(str.length - 1);\r\n return a === b && (a === 0x22 || a === 0x27) ? str.slice(1, -1) : str;\r\n}\r\n/**\r\n * Determine the type of a character in a keypath.\r\n */\r\nfunction getPathCharType(ch) {\r\n if (ch === undefined || ch === null) {\r\n return \"o\" /* END_OF_FAIL */;\r\n }\r\n const code = ch.charCodeAt(0);\r\n switch (code) {\r\n case 0x5b: // [\r\n case 0x5d: // ]\r\n case 0x2e: // .\r\n case 0x22: // \"\r\n case 0x27: // '\r\n return ch;\r\n case 0x5f: // _\r\n case 0x24: // $\r\n case 0x2d: // -\r\n return \"i\" /* IDENT */;\r\n case 0x09: // Tab (HT)\r\n case 0x0a: // Newline (LF)\r\n case 0x0d: // Return (CR)\r\n case 0xa0: // No-break space (NBSP)\r\n case 0xfeff: // Byte Order Mark (BOM)\r\n case 0x2028: // Line Separator (LS)\r\n case 0x2029: // Paragraph Separator (PS)\r\n return \"w\" /* WORKSPACE */;\r\n }\r\n return \"i\" /* IDENT */;\r\n}\r\n/**\r\n * Format a subPath, return its plain form if it is\r\n * a literal string or number. Otherwise prepend the\r\n * dynamic indicator (*).\r\n */\r\nfunction formatSubPath(path) {\r\n const trimmed = path.trim();\r\n // invalid leading 0\r\n if (path.charAt(0) === '0' && isNaN(parseInt(path))) {\r\n return false;\r\n }\r\n return isLiteral(trimmed)\r\n ? stripQuotes(trimmed)\r\n : \"*\" /* ASTARISK */ + trimmed;\r\n}\r\n/**\r\n * Parse a string path into an array of segments\r\n */\r\nfunction parse(path) {\r\n const keys = [];\r\n let index = -1;\r\n let mode = 0 /* BEFORE_PATH */;\r\n let subPathDepth = 0;\r\n let c;\r\n let key; // eslint-disable-line\r\n let newChar;\r\n let type;\r\n let transition;\r\n let action;\r\n let typeMap;\r\n const actions = [];\r\n actions[0 /* APPEND */] = () => {\r\n if (key === undefined) {\r\n key = newChar;\r\n }\r\n else {\r\n key += newChar;\r\n }\r\n };\r\n actions[1 /* PUSH */] = () => {\r\n if (key !== undefined) {\r\n keys.push(key);\r\n key = undefined;\r\n }\r\n };\r\n actions[2 /* INC_SUB_PATH_DEPTH */] = () => {\r\n actions[0 /* APPEND */]();\r\n subPathDepth++;\r\n };\r\n actions[3 /* PUSH_SUB_PATH */] = () => {\r\n if (subPathDepth > 0) {\r\n subPathDepth--;\r\n mode = 4 /* IN_SUB_PATH */;\r\n actions[0 /* APPEND */]();\r\n }\r\n else {\r\n subPathDepth = 0;\r\n if (key === undefined) {\r\n return false;\r\n }\r\n key = formatSubPath(key);\r\n if (key === false) {\r\n return false;\r\n }\r\n else {\r\n actions[1 /* PUSH */]();\r\n }\r\n }\r\n };\r\n function maybeUnescapeQuote() {\r\n const nextChar = path[index + 1];\r\n if ((mode === 5 /* IN_SINGLE_QUOTE */ &&\r\n nextChar === \"'\" /* SINGLE_QUOTE */) ||\r\n (mode === 6 /* IN_DOUBLE_QUOTE */ &&\r\n nextChar === \"\\\"\" /* DOUBLE_QUOTE */)) {\r\n index++;\r\n newChar = '\\\\' + nextChar;\r\n actions[0 /* APPEND */]();\r\n return true;\r\n }\r\n }\r\n while (mode !== null) {\r\n index++;\r\n c = path[index];\r\n if (c === '\\\\' && maybeUnescapeQuote()) {\r\n continue;\r\n }\r\n type = getPathCharType(c);\r\n typeMap = pathStateMachine[mode];\r\n transition = typeMap[type] || typeMap[\"l\" /* ELSE */] || 8 /* ERROR */;\r\n // check parse error\r\n if (transition === 8 /* ERROR */) {\r\n return;\r\n }\r\n mode = transition[0];\r\n if (transition[1] !== undefined) {\r\n action = actions[transition[1]];\r\n if (action) {\r\n newChar = c;\r\n if (action() === false) {\r\n return;\r\n }\r\n }\r\n }\r\n // check parse finish\r\n if (mode === 7 /* AFTER_PATH */) {\r\n return keys;\r\n }\r\n }\r\n}\r\n// path token cache\r\nconst cache = new Map();\r\n/**\r\n * key-value message resolver\r\n *\r\n * @remarks\r\n * Resolves messages with the key-value structure. Note that messages with a hierarchical structure such as objects cannot be resolved\r\n *\r\n * @param obj - A target object to be resolved with path\r\n * @param path - A {@link Path | path} to resolve the value of message\r\n *\r\n * @returns A resolved {@link PathValue | path value}\r\n *\r\n * @VueI18nGeneral\r\n */\r\nfunction resolveWithKeyValue(obj, path) {\r\n return isObject(obj) ? obj[path] : null;\r\n}\r\n/**\r\n * message resolver\r\n *\r\n * @remarks\r\n * Resolves messages. messages with a hierarchical structure such as objects can be resolved. This resolver is used in VueI18n as default.\r\n *\r\n * @param obj - A target object to be resolved with path\r\n * @param path - A {@link Path | path} to resolve the value of message\r\n *\r\n * @returns A resolved {@link PathValue | path value}\r\n *\r\n * @VueI18nGeneral\r\n */\r\nfunction resolveValue(obj, path) {\r\n // check object\r\n if (!isObject(obj)) {\r\n return null;\r\n }\r\n // parse path\r\n let hit = cache.get(path);\r\n if (!hit) {\r\n hit = parse(path);\r\n if (hit) {\r\n cache.set(path, hit);\r\n }\r\n }\r\n // check hit\r\n if (!hit) {\r\n return null;\r\n }\r\n // resolve path value\r\n const len = hit.length;\r\n let last = obj;\r\n let i = 0;\r\n while (i < len) {\r\n const val = last[hit[i]];\r\n if (val === undefined) {\r\n return null;\r\n }\r\n last = val;\r\n i++;\r\n }\r\n return last;\r\n}\n\nconst DEFAULT_MODIFIER = (str) => str;\r\nconst DEFAULT_MESSAGE = (ctx) => ''; // eslint-disable-line\r\nconst DEFAULT_MESSAGE_DATA_TYPE = 'text';\r\nconst DEFAULT_NORMALIZE = (values) => values.length === 0 ? '' : values.join('');\r\nconst DEFAULT_INTERPOLATE = toDisplayString;\r\nfunction pluralDefault(choice, choicesLength) {\r\n choice = Math.abs(choice);\r\n if (choicesLength === 2) {\r\n // prettier-ignore\r\n return choice\r\n ? choice > 1\r\n ? 1\r\n : 0\r\n : 1;\r\n }\r\n return choice ? Math.min(choice, 2) : 0;\r\n}\r\nfunction getPluralIndex(options) {\r\n // prettier-ignore\r\n const index = isNumber(options.pluralIndex)\r\n ? options.pluralIndex\r\n : -1;\r\n // prettier-ignore\r\n return options.named && (isNumber(options.named.count) || isNumber(options.named.n))\r\n ? isNumber(options.named.count)\r\n ? options.named.count\r\n : isNumber(options.named.n)\r\n ? options.named.n\r\n : index\r\n : index;\r\n}\r\nfunction normalizeNamed(pluralIndex, props) {\r\n if (!props.count) {\r\n props.count = pluralIndex;\r\n }\r\n if (!props.n) {\r\n props.n = pluralIndex;\r\n }\r\n}\r\nfunction createMessageContext(options = {}) {\r\n const locale = options.locale;\r\n const pluralIndex = getPluralIndex(options);\r\n const pluralRule = isObject(options.pluralRules) &&\r\n isString(locale) &&\r\n isFunction(options.pluralRules[locale])\r\n ? options.pluralRules[locale]\r\n : pluralDefault;\r\n const orgPluralRule = isObject(options.pluralRules) &&\r\n isString(locale) &&\r\n isFunction(options.pluralRules[locale])\r\n ? pluralDefault\r\n : undefined;\r\n const plural = (messages) => {\r\n return messages[pluralRule(pluralIndex, messages.length, orgPluralRule)];\r\n };\r\n const _list = options.list || [];\r\n const list = (index) => _list[index];\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const _named = options.named || {};\r\n isNumber(options.pluralIndex) && normalizeNamed(pluralIndex, _named);\r\n const named = (key) => _named[key];\r\n function message(key) {\r\n // prettier-ignore\r\n const msg = isFunction(options.messages)\r\n ? options.messages(key)\r\n : isObject(options.messages)\r\n ? options.messages[key]\r\n : false;\r\n return !msg\r\n ? options.parent\r\n ? options.parent.message(key) // resolve from parent messages\r\n : DEFAULT_MESSAGE\r\n : msg;\r\n }\r\n const _modifier = (name) => options.modifiers\r\n ? options.modifiers[name]\r\n : DEFAULT_MODIFIER;\r\n const normalize = isPlainObject(options.processor) && isFunction(options.processor.normalize)\r\n ? options.processor.normalize\r\n : DEFAULT_NORMALIZE;\r\n const interpolate = isPlainObject(options.processor) &&\r\n isFunction(options.processor.interpolate)\r\n ? options.processor.interpolate\r\n : DEFAULT_INTERPOLATE;\r\n const type = isPlainObject(options.processor) && isString(options.processor.type)\r\n ? options.processor.type\r\n : DEFAULT_MESSAGE_DATA_TYPE;\r\n const linked = (key, ...args) => {\r\n const [arg1, arg2] = args;\r\n let type = 'text';\r\n let modifier = '';\r\n if (args.length === 1) {\r\n if (isObject(arg1)) {\r\n modifier = arg1.modifier || modifier;\r\n type = arg1.type || type;\r\n }\r\n else if (isString(arg1)) {\r\n modifier = arg1 || modifier;\r\n }\r\n }\r\n else if (args.length === 2) {\r\n if (isString(arg1)) {\r\n modifier = arg1 || modifier;\r\n }\r\n if (isString(arg2)) {\r\n type = arg2 || type;\r\n }\r\n }\r\n let msg = message(key)(ctx);\r\n // The message in vnode resolved with linked are returned as an array by processor.nomalize\r\n if (type === 'vnode' && isArray(msg) && modifier) {\r\n msg = msg[0];\r\n }\r\n return modifier ? _modifier(modifier)(msg, type) : msg;\r\n };\r\n const ctx = {\r\n [\"list\" /* LIST */]: list,\r\n [\"named\" /* NAMED */]: named,\r\n [\"plural\" /* PLURAL */]: plural,\r\n [\"linked\" /* LINKED */]: linked,\r\n [\"message\" /* MESSAGE */]: message,\r\n [\"type\" /* TYPE */]: type,\r\n [\"interpolate\" /* INTERPOLATE */]: interpolate,\r\n [\"normalize\" /* NORMALIZE */]: normalize\r\n };\r\n return ctx;\r\n}\n\nlet devtools = null;\r\nfunction setDevToolsHook(hook) {\r\n devtools = hook;\r\n}\r\nfunction getDevToolsHook() {\r\n return devtools;\r\n}\r\nfunction initI18nDevTools(i18n, version, meta) {\r\n // TODO: queue if devtools is undefined\r\n devtools &&\r\n devtools.emit(IntlifyDevToolsHooks.I18nInit, {\r\n timestamp: Date.now(),\r\n i18n,\r\n version,\r\n meta\r\n });\r\n}\r\nconst translateDevTools = /* #__PURE__*/ createDevToolsHook(IntlifyDevToolsHooks.FunctionTranslate);\r\nfunction createDevToolsHook(hook) {\r\n return (payloads) => devtools && devtools.emit(hook, payloads);\r\n}\n\nconst CoreWarnCodes = {\r\n NOT_FOUND_KEY: 1,\r\n FALLBACK_TO_TRANSLATE: 2,\r\n CANNOT_FORMAT_NUMBER: 3,\r\n FALLBACK_TO_NUMBER_FORMAT: 4,\r\n CANNOT_FORMAT_DATE: 5,\r\n FALLBACK_TO_DATE_FORMAT: 6,\r\n __EXTEND_POINT__: 7\r\n};\r\n/** @internal */\r\nconst warnMessages = {\r\n [CoreWarnCodes.NOT_FOUND_KEY]: `Not found '{key}' key in '{locale}' locale messages.`,\r\n [CoreWarnCodes.FALLBACK_TO_TRANSLATE]: `Fall back to translate '{key}' key with '{target}' locale.`,\r\n [CoreWarnCodes.CANNOT_FORMAT_NUMBER]: `Cannot format a number value due to not supported Intl.NumberFormat.`,\r\n [CoreWarnCodes.FALLBACK_TO_NUMBER_FORMAT]: `Fall back to number format '{key}' key with '{target}' locale.`,\r\n [CoreWarnCodes.CANNOT_FORMAT_DATE]: `Cannot format a date value due to not supported Intl.DateTimeFormat.`,\r\n [CoreWarnCodes.FALLBACK_TO_DATE_FORMAT]: `Fall back to datetime format '{key}' key with '{target}' locale.`\r\n};\r\nfunction getWarnMessage(code, ...args) {\r\n return format(warnMessages[code], ...args);\r\n}\n\n/**\r\n * Fallback with simple implemenation\r\n *\r\n * @remarks\r\n * A fallback locale function implemented with a simple fallback algorithm.\r\n *\r\n * Basically, it returns the value as specified in the `fallbackLocale` props, and is processed with the fallback inside intlify.\r\n *\r\n * @param ctx - A {@link CoreContext | context}\r\n * @param fallback - A {@link FallbackLocale | fallback locale}\r\n * @param start - A starting {@link Locale | locale}\r\n *\r\n * @returns Fallback locales\r\n *\r\n * @VueI18nGeneral\r\n */\r\nfunction fallbackWithSimple(ctx, fallback, start // eslint-disable-line @typescript-eslint/no-unused-vars\r\n) {\r\n // prettier-ignore\r\n return [...new Set([\r\n start,\r\n ...(isArray(fallback)\r\n ? fallback\r\n : isObject(fallback)\r\n ? Object.keys(fallback)\r\n : isString(fallback)\r\n ? [fallback]\r\n : [start])\r\n ])];\r\n}\r\n/**\r\n * Fallback with locale chain\r\n *\r\n * @remarks\r\n * A fallback locale function implemented with a fallback chain algorithm. It's used in VueI18n as default.\r\n *\r\n * @param ctx - A {@link CoreContext | context}\r\n * @param fallback - A {@link FallbackLocale | fallback locale}\r\n * @param start - A starting {@link Locale | locale}\r\n *\r\n * @returns Fallback locales\r\n *\r\n * @VueI18nSee [Fallbacking](../guide/essentials/fallback)\r\n *\r\n * @VueI18nGeneral\r\n */\r\nfunction fallbackWithLocaleChain(ctx, fallback, start) {\r\n const startLocale = isString(start) ? start : DEFAULT_LOCALE;\r\n const context = ctx;\r\n if (!context.__localeChainCache) {\r\n context.__localeChainCache = new Map();\r\n }\r\n let chain = context.__localeChainCache.get(startLocale);\r\n if (!chain) {\r\n chain = [];\r\n // first block defined by start\r\n let block = [start];\r\n // while any intervening block found\r\n while (isArray(block)) {\r\n block = appendBlockToChain(chain, block, fallback);\r\n }\r\n // prettier-ignore\r\n // last block defined by default\r\n const defaults = isArray(fallback) || !isPlainObject(fallback)\r\n ? fallback\r\n : fallback['default']\r\n ? fallback['default']\r\n : null;\r\n // convert defaults to array\r\n block = isString(defaults) ? [defaults] : defaults;\r\n if (isArray(block)) {\r\n appendBlockToChain(chain, block, false);\r\n }\r\n context.__localeChainCache.set(startLocale, chain);\r\n }\r\n return chain;\r\n}\r\nfunction appendBlockToChain(chain, block, blocks) {\r\n let follow = true;\r\n for (let i = 0; i < block.length && isBoolean(follow); i++) {\r\n const locale = block[i];\r\n if (isString(locale)) {\r\n follow = appendLocaleToChain(chain, block[i], blocks);\r\n }\r\n }\r\n return follow;\r\n}\r\nfunction appendLocaleToChain(chain, locale, blocks) {\r\n let follow;\r\n const tokens = locale.split('-');\r\n do {\r\n const target = tokens.join('-');\r\n follow = appendItemToChain(chain, target, blocks);\r\n tokens.splice(-1, 1);\r\n } while (tokens.length && follow === true);\r\n return follow;\r\n}\r\nfunction appendItemToChain(chain, target, blocks) {\r\n let follow = false;\r\n if (!chain.includes(target)) {\r\n follow = true;\r\n if (target) {\r\n follow = target[target.length - 1] !== '!';\r\n const locale = target.replace(/!/g, '');\r\n chain.push(locale);\r\n if ((isArray(blocks) || isPlainObject(blocks)) &&\r\n blocks[locale] // eslint-disable-line @typescript-eslint/no-explicit-any\r\n ) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n follow = blocks[locale];\r\n }\r\n }\r\n }\r\n return follow;\r\n}\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/**\r\n * Intlify core-base version\r\n * @internal\r\n */\r\nconst VERSION = '9.2.2';\r\nconst NOT_REOSLVED = -1;\r\nconst DEFAULT_LOCALE = 'en-US';\r\nconst MISSING_RESOLVE_VALUE = '';\r\nconst capitalize = (str) => `${str.charAt(0).toLocaleUpperCase()}${str.substr(1)}`;\r\nfunction getDefaultLinkedModifiers() {\r\n return {\r\n upper: (val, type) => {\r\n // prettier-ignore\r\n return type === 'text' && isString(val)\r\n ? val.toUpperCase()\r\n : type === 'vnode' && isObject(val) && '__v_isVNode' in val\r\n ? val.children.toUpperCase()\r\n : val;\r\n },\r\n lower: (val, type) => {\r\n // prettier-ignore\r\n return type === 'text' && isString(val)\r\n ? val.toLowerCase()\r\n : type === 'vnode' && isObject(val) && '__v_isVNode' in val\r\n ? val.children.toLowerCase()\r\n : val;\r\n },\r\n capitalize: (val, type) => {\r\n // prettier-ignore\r\n return (type === 'text' && isString(val)\r\n ? capitalize(val)\r\n : type === 'vnode' && isObject(val) && '__v_isVNode' in val\r\n ? capitalize(val.children)\r\n : val);\r\n }\r\n };\r\n}\r\nlet _compiler;\r\nfunction registerMessageCompiler(compiler) {\r\n _compiler = compiler;\r\n}\r\nlet _resolver;\r\n/**\r\n * Register the message resolver\r\n *\r\n * @param resolver - A {@link MessageResolver} function\r\n *\r\n * @VueI18nGeneral\r\n */\r\nfunction registerMessageResolver(resolver) {\r\n _resolver = resolver;\r\n}\r\nlet _fallbacker;\r\n/**\r\n * Register the locale fallbacker\r\n *\r\n * @param fallbacker - A {@link LocaleFallbacker} function\r\n *\r\n * @VueI18nGeneral\r\n */\r\nfunction registerLocaleFallbacker(fallbacker) {\r\n _fallbacker = fallbacker;\r\n}\r\n// Additional Meta for Intlify DevTools\r\nlet _additionalMeta = null;\r\nconst setAdditionalMeta = (meta) => {\r\n _additionalMeta = meta;\r\n};\r\nconst getAdditionalMeta = () => _additionalMeta;\r\nlet _fallbackContext = null;\r\nconst setFallbackContext = (context) => {\r\n _fallbackContext = context;\r\n};\r\nconst getFallbackContext = () => _fallbackContext;\r\n// ID for CoreContext\r\nlet _cid = 0;\r\nfunction createCoreContext(options = {}) {\r\n // setup options\r\n const version = isString(options.version) ? options.version : VERSION;\r\n const locale = isString(options.locale) ? options.locale : DEFAULT_LOCALE;\r\n const fallbackLocale = isArray(options.fallbackLocale) ||\r\n isPlainObject(options.fallbackLocale) ||\r\n isString(options.fallbackLocale) ||\r\n options.fallbackLocale === false\r\n ? options.fallbackLocale\r\n : locale;\r\n const messages = isPlainObject(options.messages)\r\n ? options.messages\r\n : { [locale]: {} };\r\n const datetimeFormats = isPlainObject(options.datetimeFormats)\r\n ? options.datetimeFormats\r\n : { [locale]: {} }\r\n ;\r\n const numberFormats = isPlainObject(options.numberFormats)\r\n ? options.numberFormats\r\n : { [locale]: {} }\r\n ;\r\n const modifiers = assign({}, options.modifiers || {}, getDefaultLinkedModifiers());\r\n const pluralRules = options.pluralRules || {};\r\n const missing = isFunction(options.missing) ? options.missing : null;\r\n const missingWarn = isBoolean(options.missingWarn) || isRegExp(options.missingWarn)\r\n ? options.missingWarn\r\n : true;\r\n const fallbackWarn = isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : true;\r\n const fallbackFormat = !!options.fallbackFormat;\r\n const unresolving = !!options.unresolving;\r\n const postTranslation = isFunction(options.postTranslation)\r\n ? options.postTranslation\r\n : null;\r\n const processor = isPlainObject(options.processor) ? options.processor : null;\r\n const warnHtmlMessage = isBoolean(options.warnHtmlMessage)\r\n ? options.warnHtmlMessage\r\n : true;\r\n const escapeParameter = !!options.escapeParameter;\r\n const messageCompiler = isFunction(options.messageCompiler)\r\n ? options.messageCompiler\r\n : _compiler;\r\n const messageResolver = isFunction(options.messageResolver)\r\n ? options.messageResolver\r\n : _resolver || resolveWithKeyValue;\r\n const localeFallbacker = isFunction(options.localeFallbacker)\r\n ? options.localeFallbacker\r\n : _fallbacker || fallbackWithSimple;\r\n const fallbackContext = isObject(options.fallbackContext)\r\n ? options.fallbackContext\r\n : undefined;\r\n const onWarn = isFunction(options.onWarn) ? options.onWarn : warn;\r\n // setup internal options\r\n const internalOptions = options;\r\n const __datetimeFormatters = isObject(internalOptions.__datetimeFormatters)\r\n ? internalOptions.__datetimeFormatters\r\n : new Map()\r\n ;\r\n const __numberFormatters = isObject(internalOptions.__numberFormatters)\r\n ? internalOptions.__numberFormatters\r\n : new Map()\r\n ;\r\n const __meta = isObject(internalOptions.__meta) ? internalOptions.__meta : {};\r\n _cid++;\r\n const context = {\r\n version,\r\n cid: _cid,\r\n locale,\r\n fallbackLocale,\r\n messages,\r\n modifiers,\r\n pluralRules,\r\n missing,\r\n missingWarn,\r\n fallbackWarn,\r\n fallbackFormat,\r\n unresolving,\r\n postTranslation,\r\n processor,\r\n warnHtmlMessage,\r\n escapeParameter,\r\n messageCompiler,\r\n messageResolver,\r\n localeFallbacker,\r\n fallbackContext,\r\n onWarn,\r\n __meta\r\n };\r\n {\r\n context.datetimeFormats = datetimeFormats;\r\n context.numberFormats = numberFormats;\r\n context.__datetimeFormatters = __datetimeFormatters;\r\n context.__numberFormatters = __numberFormatters;\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n context.__v_emitter =\r\n internalOptions.__v_emitter != null\r\n ? internalOptions.__v_emitter\r\n : undefined;\r\n }\r\n // NOTE: experimental !!\r\n if ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\r\n initI18nDevTools(context, version, __meta);\r\n }\r\n return context;\r\n}\r\n/** @internal */\r\nfunction isTranslateFallbackWarn(fallback, key) {\r\n return fallback instanceof RegExp ? fallback.test(key) : fallback;\r\n}\r\n/** @internal */\r\nfunction isTranslateMissingWarn(missing, key) {\r\n return missing instanceof RegExp ? missing.test(key) : missing;\r\n}\r\n/** @internal */\r\nfunction handleMissing(context, key, locale, missingWarn, type) {\r\n const { missing, onWarn } = context;\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const emitter = context.__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"missing\" /* MISSING */, {\r\n locale,\r\n key,\r\n type,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n }\r\n if (missing !== null) {\r\n const ret = missing(context, locale, key, type);\r\n return isString(ret) ? ret : key;\r\n }\r\n else {\r\n if ((process.env.NODE_ENV !== 'production') && isTranslateMissingWarn(missingWarn, key)) {\r\n onWarn(getWarnMessage(CoreWarnCodes.NOT_FOUND_KEY, { key, locale }));\r\n }\r\n return key;\r\n }\r\n}\r\n/** @internal */\r\nfunction updateFallbackLocale(ctx, locale, fallback) {\r\n const context = ctx;\r\n context.__localeChainCache = new Map();\r\n ctx.localeFallbacker(ctx, fallback, locale);\r\n}\r\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\nconst RE_HTML_TAG = /<\\/?[\\w\\s=\"/.':;#-\\/]+>/;\r\nconst WARN_MESSAGE = `Detected HTML in '{source}' message. Recommend not using HTML messages to avoid XSS.`;\r\nfunction checkHtmlMessage(source, options) {\r\n const warnHtmlMessage = isBoolean(options.warnHtmlMessage)\r\n ? options.warnHtmlMessage\r\n : true;\r\n if (warnHtmlMessage && RE_HTML_TAG.test(source)) {\r\n warn(format(WARN_MESSAGE, { source }));\r\n }\r\n}\r\nconst defaultOnCacheKey = (source) => source;\r\nlet compileCache = Object.create(null);\r\nfunction clearCompileCache() {\r\n compileCache = Object.create(null);\r\n}\r\nfunction compileToFunction(source, options = {}) {\r\n {\r\n // check HTML message\r\n (process.env.NODE_ENV !== 'production') && checkHtmlMessage(source, options);\r\n // check caches\r\n const onCacheKey = options.onCacheKey || defaultOnCacheKey;\r\n const key = onCacheKey(source);\r\n const cached = compileCache[key];\r\n if (cached) {\r\n return cached;\r\n }\r\n // compile error detecting\r\n let occurred = false;\r\n const onError = options.onError || defaultOnError;\r\n options.onError = (err) => {\r\n occurred = true;\r\n onError(err);\r\n };\r\n // compile\r\n const { code } = baseCompile(source, options);\r\n // evaluate function\r\n const msg = new Function(`return ${code}`)();\r\n // if occurred compile error, don't cache\r\n return !occurred ? (compileCache[key] = msg) : msg;\r\n }\r\n}\n\nlet code = CompileErrorCodes.__EXTEND_POINT__;\r\nconst inc = () => ++code;\r\nconst CoreErrorCodes = {\r\n INVALID_ARGUMENT: code,\r\n INVALID_DATE_ARGUMENT: inc(),\r\n INVALID_ISO_DATE_ARGUMENT: inc(),\r\n __EXTEND_POINT__: inc() // 18\r\n};\r\nfunction createCoreError(code) {\r\n return createCompileError(code, null, (process.env.NODE_ENV !== 'production') ? { messages: errorMessages } : undefined);\r\n}\r\n/** @internal */\r\nconst errorMessages = {\r\n [CoreErrorCodes.INVALID_ARGUMENT]: 'Invalid arguments',\r\n [CoreErrorCodes.INVALID_DATE_ARGUMENT]: 'The date provided is an invalid Date object.' +\r\n 'Make sure your Date represents a valid date.',\r\n [CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT]: 'The argument provided is not a valid ISO date string'\r\n};\n\nconst NOOP_MESSAGE_FUNCTION = () => '';\r\nconst isMessageFunction = (val) => isFunction(val);\r\n// implementation of `translate` function\r\nfunction translate(context, ...args) {\r\n const { fallbackFormat, postTranslation, unresolving, messageCompiler, fallbackLocale, messages } = context;\r\n const [key, options] = parseTranslateArgs(...args);\r\n const missingWarn = isBoolean(options.missingWarn)\r\n ? options.missingWarn\r\n : context.missingWarn;\r\n const fallbackWarn = isBoolean(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : context.fallbackWarn;\r\n const escapeParameter = isBoolean(options.escapeParameter)\r\n ? options.escapeParameter\r\n : context.escapeParameter;\r\n const resolvedMessage = !!options.resolvedMessage;\r\n // prettier-ignore\r\n const defaultMsgOrKey = isString(options.default) || isBoolean(options.default) // default by function option\r\n ? !isBoolean(options.default)\r\n ? options.default\r\n : (!messageCompiler ? () => key : key)\r\n : fallbackFormat // default by `fallbackFormat` option\r\n ? (!messageCompiler ? () => key : key)\r\n : '';\r\n const enableDefaultMsg = fallbackFormat || defaultMsgOrKey !== '';\r\n const locale = isString(options.locale) ? options.locale : context.locale;\r\n // escape params\r\n escapeParameter && escapeParams(options);\r\n // resolve message format\r\n // eslint-disable-next-line prefer-const\r\n let [formatScope, targetLocale, message] = !resolvedMessage\r\n ? resolveMessageFormat(context, key, locale, fallbackLocale, fallbackWarn, missingWarn)\r\n : [\r\n key,\r\n locale,\r\n messages[locale] || {}\r\n ];\r\n // NOTE:\r\n // Fix to work around `ssrTransfrom` bug in Vite.\r\n // https://github.com/vitejs/vite/issues/4306\r\n // To get around this, use temporary variables.\r\n // https://github.com/nuxt/framework/issues/1461#issuecomment-954606243\r\n let format = formatScope;\r\n // if you use default message, set it as message format!\r\n let cacheBaseKey = key;\r\n if (!resolvedMessage &&\r\n !(isString(format) || isMessageFunction(format))) {\r\n if (enableDefaultMsg) {\r\n format = defaultMsgOrKey;\r\n cacheBaseKey = format;\r\n }\r\n }\r\n // checking message format and target locale\r\n if (!resolvedMessage &&\r\n (!(isString(format) || isMessageFunction(format)) ||\r\n !isString(targetLocale))) {\r\n return unresolving ? NOT_REOSLVED : key;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && isString(format) && context.messageCompiler == null) {\r\n warn(`The message format compilation is not supported in this build. ` +\r\n `Because message compiler isn't included. ` +\r\n `You need to pre-compilation all message format. ` +\r\n `So translate function return '${key}'.`);\r\n return key;\r\n }\r\n // setup compile error detecting\r\n let occurred = false;\r\n const errorDetector = () => {\r\n occurred = true;\r\n };\r\n // compile message format\r\n const msg = !isMessageFunction(format)\r\n ? compileMessageFormat(context, key, targetLocale, format, cacheBaseKey, errorDetector)\r\n : format;\r\n // if occurred compile error, return the message format\r\n if (occurred) {\r\n return format;\r\n }\r\n // evaluate message with context\r\n const ctxOptions = getMessageContextOptions(context, targetLocale, message, options);\r\n const msgContext = createMessageContext(ctxOptions);\r\n const messaged = evaluateMessage(context, msg, msgContext);\r\n // if use post translation option, proceed it with handler\r\n const ret = postTranslation\r\n ? postTranslation(messaged, key)\r\n : messaged;\r\n // NOTE: experimental !!\r\n if ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\r\n // prettier-ignore\r\n const payloads = {\r\n timestamp: Date.now(),\r\n key: isString(key)\r\n ? key\r\n : isMessageFunction(format)\r\n ? format.key\r\n : '',\r\n locale: targetLocale || (isMessageFunction(format)\r\n ? format.locale\r\n : ''),\r\n format: isString(format)\r\n ? format\r\n : isMessageFunction(format)\r\n ? format.source\r\n : '',\r\n message: ret\r\n };\r\n payloads.meta = assign({}, context.__meta, getAdditionalMeta() || {});\r\n translateDevTools(payloads);\r\n }\r\n return ret;\r\n}\r\nfunction escapeParams(options) {\r\n if (isArray(options.list)) {\r\n options.list = options.list.map(item => isString(item) ? escapeHtml(item) : item);\r\n }\r\n else if (isObject(options.named)) {\r\n Object.keys(options.named).forEach(key => {\r\n if (isString(options.named[key])) {\r\n options.named[key] = escapeHtml(options.named[key]);\r\n }\r\n });\r\n }\r\n}\r\nfunction resolveMessageFormat(context, key, locale, fallbackLocale, fallbackWarn, missingWarn) {\r\n const { messages, onWarn, messageResolver: resolveValue, localeFallbacker } = context;\r\n const locales = localeFallbacker(context, fallbackLocale, locale); // eslint-disable-line @typescript-eslint/no-explicit-any\r\n let message = {};\r\n let targetLocale;\r\n let format = null;\r\n let from = locale;\r\n let to = null;\r\n const type = 'translate';\r\n for (let i = 0; i < locales.length; i++) {\r\n targetLocale = to = locales[i];\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n locale !== targetLocale &&\r\n isTranslateFallbackWarn(fallbackWarn, key)) {\r\n onWarn(getWarnMessage(CoreWarnCodes.FALLBACK_TO_TRANSLATE, {\r\n key,\r\n target: targetLocale\r\n }));\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && locale !== targetLocale) {\r\n const emitter = context.__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"fallback\" /* FALBACK */, {\r\n type,\r\n key,\r\n from,\r\n to,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n }\r\n message =\r\n messages[targetLocale] || {};\r\n // for vue-devtools timeline event\r\n let start = null;\r\n let startTag;\r\n let endTag;\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n start = window.performance.now();\r\n startTag = 'intlify-message-resolve-start';\r\n endTag = 'intlify-message-resolve-end';\r\n mark && mark(startTag);\r\n }\r\n if ((format = resolveValue(message, key)) === null) {\r\n // if null, resolve with object key path\r\n format = message[key]; // eslint-disable-line @typescript-eslint/no-explicit-any\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n const end = window.performance.now();\r\n const emitter = context.__v_emitter;\r\n if (emitter && start && format) {\r\n emitter.emit(\"message-resolve\" /* MESSAGE_RESOLVE */, {\r\n type: \"message-resolve\" /* MESSAGE_RESOLVE */,\r\n key,\r\n message: format,\r\n time: end - start,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n if (startTag && endTag && mark && measure) {\r\n mark(endTag);\r\n measure('intlify message resolve', startTag, endTag);\r\n }\r\n }\r\n if (isString(format) || isFunction(format))\r\n break;\r\n const missingRet = handleMissing(context, // eslint-disable-line @typescript-eslint/no-explicit-any\r\n key, targetLocale, missingWarn, type);\r\n if (missingRet !== key) {\r\n format = missingRet;\r\n }\r\n from = to;\r\n }\r\n return [format, targetLocale, message];\r\n}\r\nfunction compileMessageFormat(context, key, targetLocale, format, cacheBaseKey, errorDetector) {\r\n const { messageCompiler, warnHtmlMessage } = context;\r\n if (isMessageFunction(format)) {\r\n const msg = format;\r\n msg.locale = msg.locale || targetLocale;\r\n msg.key = msg.key || key;\r\n return msg;\r\n }\r\n if (messageCompiler == null) {\r\n const msg = (() => format);\r\n msg.locale = targetLocale;\r\n msg.key = key;\r\n return msg;\r\n }\r\n // for vue-devtools timeline event\r\n let start = null;\r\n let startTag;\r\n let endTag;\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n start = window.performance.now();\r\n startTag = 'intlify-message-compilation-start';\r\n endTag = 'intlify-message-compilation-end';\r\n mark && mark(startTag);\r\n }\r\n const msg = messageCompiler(format, getCompileOptions(context, targetLocale, cacheBaseKey, format, warnHtmlMessage, errorDetector));\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n const end = window.performance.now();\r\n const emitter = context.__v_emitter;\r\n if (emitter && start) {\r\n emitter.emit(\"message-compilation\" /* MESSAGE_COMPILATION */, {\r\n type: \"message-compilation\" /* MESSAGE_COMPILATION */,\r\n message: format,\r\n time: end - start,\r\n groupId: `${'translate'}:${key}`\r\n });\r\n }\r\n if (startTag && endTag && mark && measure) {\r\n mark(endTag);\r\n measure('intlify message compilation', startTag, endTag);\r\n }\r\n }\r\n msg.locale = targetLocale;\r\n msg.key = key;\r\n msg.source = format;\r\n return msg;\r\n}\r\nfunction evaluateMessage(context, msg, msgCtx) {\r\n // for vue-devtools timeline event\r\n let start = null;\r\n let startTag;\r\n let endTag;\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n start = window.performance.now();\r\n startTag = 'intlify-message-evaluation-start';\r\n endTag = 'intlify-message-evaluation-end';\r\n mark && mark(startTag);\r\n }\r\n const messaged = msg(msgCtx);\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n const end = window.performance.now();\r\n const emitter = context.__v_emitter;\r\n if (emitter && start) {\r\n emitter.emit(\"message-evaluation\" /* MESSAGE_EVALUATION */, {\r\n type: \"message-evaluation\" /* MESSAGE_EVALUATION */,\r\n value: messaged,\r\n time: end - start,\r\n groupId: `${'translate'}:${msg.key}`\r\n });\r\n }\r\n if (startTag && endTag && mark && measure) {\r\n mark(endTag);\r\n measure('intlify message evaluation', startTag, endTag);\r\n }\r\n }\r\n return messaged;\r\n}\r\n/** @internal */\r\nfunction parseTranslateArgs(...args) {\r\n const [arg1, arg2, arg3] = args;\r\n const options = {};\r\n if (!isString(arg1) && !isNumber(arg1) && !isMessageFunction(arg1)) {\r\n throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);\r\n }\r\n // prettier-ignore\r\n const key = isNumber(arg1)\r\n ? String(arg1)\r\n : isMessageFunction(arg1)\r\n ? arg1\r\n : arg1;\r\n if (isNumber(arg2)) {\r\n options.plural = arg2;\r\n }\r\n else if (isString(arg2)) {\r\n options.default = arg2;\r\n }\r\n else if (isPlainObject(arg2) && !isEmptyObject(arg2)) {\r\n options.named = arg2;\r\n }\r\n else if (isArray(arg2)) {\r\n options.list = arg2;\r\n }\r\n if (isNumber(arg3)) {\r\n options.plural = arg3;\r\n }\r\n else if (isString(arg3)) {\r\n options.default = arg3;\r\n }\r\n else if (isPlainObject(arg3)) {\r\n assign(options, arg3);\r\n }\r\n return [key, options];\r\n}\r\nfunction getCompileOptions(context, locale, key, source, warnHtmlMessage, errorDetector) {\r\n return {\r\n warnHtmlMessage,\r\n onError: (err) => {\r\n errorDetector && errorDetector(err);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const message = `Message compilation error: ${err.message}`;\r\n const codeFrame = err.location &&\r\n generateCodeFrame(source, err.location.start.offset, err.location.end.offset);\r\n const emitter = context.__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"compile-error\" /* COMPILE_ERROR */, {\r\n message: source,\r\n error: err.message,\r\n start: err.location && err.location.start.offset,\r\n end: err.location && err.location.end.offset,\r\n groupId: `${'translate'}:${key}`\r\n });\r\n }\r\n console.error(codeFrame ? `${message}\\n${codeFrame}` : message);\r\n }\r\n else {\r\n throw err;\r\n }\r\n },\r\n onCacheKey: (source) => generateFormatCacheKey(locale, key, source)\r\n };\r\n}\r\nfunction getMessageContextOptions(context, locale, message, options) {\r\n const { modifiers, pluralRules, messageResolver: resolveValue, fallbackLocale, fallbackWarn, missingWarn, fallbackContext } = context;\r\n const resolveMessage = (key) => {\r\n let val = resolveValue(message, key);\r\n // fallback to root context\r\n if (val == null && fallbackContext) {\r\n const [, , message] = resolveMessageFormat(fallbackContext, key, locale, fallbackLocale, fallbackWarn, missingWarn);\r\n val = resolveValue(message, key);\r\n }\r\n if (isString(val)) {\r\n let occurred = false;\r\n const errorDetector = () => {\r\n occurred = true;\r\n };\r\n const msg = compileMessageFormat(context, key, locale, val, key, errorDetector);\r\n return !occurred\r\n ? msg\r\n : NOOP_MESSAGE_FUNCTION;\r\n }\r\n else if (isMessageFunction(val)) {\r\n return val;\r\n }\r\n else {\r\n // TODO: should be implemented warning message\r\n return NOOP_MESSAGE_FUNCTION;\r\n }\r\n };\r\n const ctxOptions = {\r\n locale,\r\n modifiers,\r\n pluralRules,\r\n messages: resolveMessage\r\n };\r\n if (context.processor) {\r\n ctxOptions.processor = context.processor;\r\n }\r\n if (options.list) {\r\n ctxOptions.list = options.list;\r\n }\r\n if (options.named) {\r\n ctxOptions.named = options.named;\r\n }\r\n if (isNumber(options.plural)) {\r\n ctxOptions.pluralIndex = options.plural;\r\n }\r\n return ctxOptions;\r\n}\n\nconst intlDefined = typeof Intl !== 'undefined';\r\nconst Availabilities = {\r\n dateTimeFormat: intlDefined && typeof Intl.DateTimeFormat !== 'undefined',\r\n numberFormat: intlDefined && typeof Intl.NumberFormat !== 'undefined'\r\n};\n\n// implementation of `datetime` function\r\nfunction datetime(context, ...args) {\r\n const { datetimeFormats, unresolving, fallbackLocale, onWarn, localeFallbacker } = context;\r\n const { __datetimeFormatters } = context;\r\n if ((process.env.NODE_ENV !== 'production') && !Availabilities.dateTimeFormat) {\r\n onWarn(getWarnMessage(CoreWarnCodes.CANNOT_FORMAT_DATE));\r\n return MISSING_RESOLVE_VALUE;\r\n }\r\n const [key, value, options, overrides] = parseDateTimeArgs(...args);\r\n const missingWarn = isBoolean(options.missingWarn)\r\n ? options.missingWarn\r\n : context.missingWarn;\r\n const fallbackWarn = isBoolean(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : context.fallbackWarn;\r\n const part = !!options.part;\r\n const locale = isString(options.locale) ? options.locale : context.locale;\r\n const locales = localeFallbacker(context, // eslint-disable-line @typescript-eslint/no-explicit-any\r\n fallbackLocale, locale);\r\n if (!isString(key) || key === '') {\r\n return new Intl.DateTimeFormat(locale, overrides).format(value);\r\n }\r\n // resolve format\r\n let datetimeFormat = {};\r\n let targetLocale;\r\n let format = null;\r\n let from = locale;\r\n let to = null;\r\n const type = 'datetime format';\r\n for (let i = 0; i < locales.length; i++) {\r\n targetLocale = to = locales[i];\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n locale !== targetLocale &&\r\n isTranslateFallbackWarn(fallbackWarn, key)) {\r\n onWarn(getWarnMessage(CoreWarnCodes.FALLBACK_TO_DATE_FORMAT, {\r\n key,\r\n target: targetLocale\r\n }));\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && locale !== targetLocale) {\r\n const emitter = context.__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"fallback\" /* FALBACK */, {\r\n type,\r\n key,\r\n from,\r\n to,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n }\r\n datetimeFormat =\r\n datetimeFormats[targetLocale] || {};\r\n format = datetimeFormat[key];\r\n if (isPlainObject(format))\r\n break;\r\n handleMissing(context, key, targetLocale, missingWarn, type); // eslint-disable-line @typescript-eslint/no-explicit-any\r\n from = to;\r\n }\r\n // checking format and target locale\r\n if (!isPlainObject(format) || !isString(targetLocale)) {\r\n return unresolving ? NOT_REOSLVED : key;\r\n }\r\n let id = `${targetLocale}__${key}`;\r\n if (!isEmptyObject(overrides)) {\r\n id = `${id}__${JSON.stringify(overrides)}`;\r\n }\r\n let formatter = __datetimeFormatters.get(id);\r\n if (!formatter) {\r\n formatter = new Intl.DateTimeFormat(targetLocale, assign({}, format, overrides));\r\n __datetimeFormatters.set(id, formatter);\r\n }\r\n return !part ? formatter.format(value) : formatter.formatToParts(value);\r\n}\r\n/** @internal */\r\nconst DATETIME_FORMAT_OPTIONS_KEYS = [\r\n 'localeMatcher',\r\n 'weekday',\r\n 'era',\r\n 'year',\r\n 'month',\r\n 'day',\r\n 'hour',\r\n 'minute',\r\n 'second',\r\n 'timeZoneName',\r\n 'formatMatcher',\r\n 'hour12',\r\n 'timeZone',\r\n 'dateStyle',\r\n 'timeStyle',\r\n 'calendar',\r\n 'dayPeriod',\r\n 'numberingSystem',\r\n 'hourCycle',\r\n 'fractionalSecondDigits'\r\n];\r\n/** @internal */\r\nfunction parseDateTimeArgs(...args) {\r\n const [arg1, arg2, arg3, arg4] = args;\r\n const options = {};\r\n let overrides = {};\r\n let value;\r\n if (isString(arg1)) {\r\n // Only allow ISO strings - other date formats are often supported,\r\n // but may cause different results in different browsers.\r\n const matches = arg1.match(/(\\d{4}-\\d{2}-\\d{2})(T|\\s)?(.*)/);\r\n if (!matches) {\r\n throw createCoreError(CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT);\r\n }\r\n // Some browsers can not parse the iso datetime separated by space,\r\n // this is a compromise solution by replace the 'T'/' ' with 'T'\r\n const dateTime = matches[3]\r\n ? matches[3].trim().startsWith('T')\r\n ? `${matches[1].trim()}${matches[3].trim()}`\r\n : `${matches[1].trim()}T${matches[3].trim()}`\r\n : matches[1].trim();\r\n value = new Date(dateTime);\r\n try {\r\n // This will fail if the date is not valid\r\n value.toISOString();\r\n }\r\n catch (e) {\r\n throw createCoreError(CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT);\r\n }\r\n }\r\n else if (isDate(arg1)) {\r\n if (isNaN(arg1.getTime())) {\r\n throw createCoreError(CoreErrorCodes.INVALID_DATE_ARGUMENT);\r\n }\r\n value = arg1;\r\n }\r\n else if (isNumber(arg1)) {\r\n value = arg1;\r\n }\r\n else {\r\n throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);\r\n }\r\n if (isString(arg2)) {\r\n options.key = arg2;\r\n }\r\n else if (isPlainObject(arg2)) {\r\n Object.keys(arg2).forEach(key => {\r\n if (DATETIME_FORMAT_OPTIONS_KEYS.includes(key)) {\r\n overrides[key] = arg2[key];\r\n }\r\n else {\r\n options[key] = arg2[key];\r\n }\r\n });\r\n }\r\n if (isString(arg3)) {\r\n options.locale = arg3;\r\n }\r\n else if (isPlainObject(arg3)) {\r\n overrides = arg3;\r\n }\r\n if (isPlainObject(arg4)) {\r\n overrides = arg4;\r\n }\r\n return [options.key || '', value, options, overrides];\r\n}\r\n/** @internal */\r\nfunction clearDateTimeFormat(ctx, locale, format) {\r\n const context = ctx;\r\n for (const key in format) {\r\n const id = `${locale}__${key}`;\r\n if (!context.__datetimeFormatters.has(id)) {\r\n continue;\r\n }\r\n context.__datetimeFormatters.delete(id);\r\n }\r\n}\n\n// implementation of `number` function\r\nfunction number(context, ...args) {\r\n const { numberFormats, unresolving, fallbackLocale, onWarn, localeFallbacker } = context;\r\n const { __numberFormatters } = context;\r\n if ((process.env.NODE_ENV !== 'production') && !Availabilities.numberFormat) {\r\n onWarn(getWarnMessage(CoreWarnCodes.CANNOT_FORMAT_NUMBER));\r\n return MISSING_RESOLVE_VALUE;\r\n }\r\n const [key, value, options, overrides] = parseNumberArgs(...args);\r\n const missingWarn = isBoolean(options.missingWarn)\r\n ? options.missingWarn\r\n : context.missingWarn;\r\n const fallbackWarn = isBoolean(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : context.fallbackWarn;\r\n const part = !!options.part;\r\n const locale = isString(options.locale) ? options.locale : context.locale;\r\n const locales = localeFallbacker(context, // eslint-disable-line @typescript-eslint/no-explicit-any\r\n fallbackLocale, locale);\r\n if (!isString(key) || key === '') {\r\n return new Intl.NumberFormat(locale, overrides).format(value);\r\n }\r\n // resolve format\r\n let numberFormat = {};\r\n let targetLocale;\r\n let format = null;\r\n let from = locale;\r\n let to = null;\r\n const type = 'number format';\r\n for (let i = 0; i < locales.length; i++) {\r\n targetLocale = to = locales[i];\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n locale !== targetLocale &&\r\n isTranslateFallbackWarn(fallbackWarn, key)) {\r\n onWarn(getWarnMessage(CoreWarnCodes.FALLBACK_TO_NUMBER_FORMAT, {\r\n key,\r\n target: targetLocale\r\n }));\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && locale !== targetLocale) {\r\n const emitter = context.__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"fallback\" /* FALBACK */, {\r\n type,\r\n key,\r\n from,\r\n to,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n }\r\n numberFormat =\r\n numberFormats[targetLocale] || {};\r\n format = numberFormat[key];\r\n if (isPlainObject(format))\r\n break;\r\n handleMissing(context, key, targetLocale, missingWarn, type); // eslint-disable-line @typescript-eslint/no-explicit-any\r\n from = to;\r\n }\r\n // checking format and target locale\r\n if (!isPlainObject(format) || !isString(targetLocale)) {\r\n return unresolving ? NOT_REOSLVED : key;\r\n }\r\n let id = `${targetLocale}__${key}`;\r\n if (!isEmptyObject(overrides)) {\r\n id = `${id}__${JSON.stringify(overrides)}`;\r\n }\r\n let formatter = __numberFormatters.get(id);\r\n if (!formatter) {\r\n formatter = new Intl.NumberFormat(targetLocale, assign({}, format, overrides));\r\n __numberFormatters.set(id, formatter);\r\n }\r\n return !part ? formatter.format(value) : formatter.formatToParts(value);\r\n}\r\n/** @internal */\r\nconst NUMBER_FORMAT_OPTIONS_KEYS = [\r\n 'localeMatcher',\r\n 'style',\r\n 'currency',\r\n 'currencyDisplay',\r\n 'currencySign',\r\n 'useGrouping',\r\n 'minimumIntegerDigits',\r\n 'minimumFractionDigits',\r\n 'maximumFractionDigits',\r\n 'minimumSignificantDigits',\r\n 'maximumSignificantDigits',\r\n 'compactDisplay',\r\n 'notation',\r\n 'signDisplay',\r\n 'unit',\r\n 'unitDisplay',\r\n 'roundingMode',\r\n 'roundingPriority',\r\n 'roundingIncrement',\r\n 'trailingZeroDisplay'\r\n];\r\n/** @internal */\r\nfunction parseNumberArgs(...args) {\r\n const [arg1, arg2, arg3, arg4] = args;\r\n const options = {};\r\n let overrides = {};\r\n if (!isNumber(arg1)) {\r\n throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);\r\n }\r\n const value = arg1;\r\n if (isString(arg2)) {\r\n options.key = arg2;\r\n }\r\n else if (isPlainObject(arg2)) {\r\n Object.keys(arg2).forEach(key => {\r\n if (NUMBER_FORMAT_OPTIONS_KEYS.includes(key)) {\r\n overrides[key] = arg2[key];\r\n }\r\n else {\r\n options[key] = arg2[key];\r\n }\r\n });\r\n }\r\n if (isString(arg3)) {\r\n options.locale = arg3;\r\n }\r\n else if (isPlainObject(arg3)) {\r\n overrides = arg3;\r\n }\r\n if (isPlainObject(arg4)) {\r\n overrides = arg4;\r\n }\r\n return [options.key || '', value, options, overrides];\r\n}\r\n/** @internal */\r\nfunction clearNumberFormat(ctx, locale, format) {\r\n const context = ctx;\r\n for (const key in format) {\r\n const id = `${locale}__${key}`;\r\n if (!context.__numberFormatters.has(id)) {\r\n continue;\r\n }\r\n context.__numberFormatters.delete(id);\r\n }\r\n}\n\n// TODO: we could not exports for Node native ES Moudles yet...\r\n{\r\n if (typeof __INTLIFY_PROD_DEVTOOLS__ !== 'boolean') {\r\n getGlobalThis().__INTLIFY_PROD_DEVTOOLS__ = false;\r\n }\r\n}\n\nexport { CoreErrorCodes, CoreWarnCodes, DATETIME_FORMAT_OPTIONS_KEYS, DEFAULT_LOCALE, DEFAULT_MESSAGE_DATA_TYPE, MISSING_RESOLVE_VALUE, NOT_REOSLVED, NUMBER_FORMAT_OPTIONS_KEYS, VERSION, clearCompileCache, clearDateTimeFormat, clearNumberFormat, compileToFunction, createCoreContext, createCoreError, createMessageContext, datetime, fallbackWithLocaleChain, fallbackWithSimple, getAdditionalMeta, getDevToolsHook, getFallbackContext, getWarnMessage, handleMissing, initI18nDevTools, isMessageFunction, isTranslateFallbackWarn, isTranslateMissingWarn, number, parse, parseDateTimeArgs, parseNumberArgs, parseTranslateArgs, registerLocaleFallbacker, registerMessageCompiler, registerMessageResolver, resolveValue, resolveWithKeyValue, setAdditionalMeta, setDevToolsHook, setFallbackContext, translate, translateDevTools, updateFallbackLocale };\n","/**\n * Make a map and return a function for checking if a key\n * is in that map.\n * IMPORTANT: all calls of this function must be prefixed with\n * \\/\\*#\\_\\_PURE\\_\\_\\*\\/\n * So that rollup can tree-shake them if necessary.\n */\nfunction makeMap(str, expectsLowerCase) {\n const map = Object.create(null);\n const list = str.split(',');\n for (let i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase ? val => !!map[val.toLowerCase()] : val => !!map[val];\n}\n\n/**\n * dev only flag -> name mapping\n */\nconst PatchFlagNames = {\n [1 /* PatchFlags.TEXT */]: `TEXT`,\n [2 /* PatchFlags.CLASS */]: `CLASS`,\n [4 /* PatchFlags.STYLE */]: `STYLE`,\n [8 /* PatchFlags.PROPS */]: `PROPS`,\n [16 /* PatchFlags.FULL_PROPS */]: `FULL_PROPS`,\n [32 /* PatchFlags.HYDRATE_EVENTS */]: `HYDRATE_EVENTS`,\n [64 /* PatchFlags.STABLE_FRAGMENT */]: `STABLE_FRAGMENT`,\n [128 /* PatchFlags.KEYED_FRAGMENT */]: `KEYED_FRAGMENT`,\n [256 /* PatchFlags.UNKEYED_FRAGMENT */]: `UNKEYED_FRAGMENT`,\n [512 /* PatchFlags.NEED_PATCH */]: `NEED_PATCH`,\n [1024 /* PatchFlags.DYNAMIC_SLOTS */]: `DYNAMIC_SLOTS`,\n [2048 /* PatchFlags.DEV_ROOT_FRAGMENT */]: `DEV_ROOT_FRAGMENT`,\n [-1 /* PatchFlags.HOISTED */]: `HOISTED`,\n [-2 /* PatchFlags.BAIL */]: `BAIL`\n};\n\n/**\n * Dev only\n */\nconst slotFlagsText = {\n [1 /* SlotFlags.STABLE */]: 'STABLE',\n [2 /* SlotFlags.DYNAMIC */]: 'DYNAMIC',\n [3 /* SlotFlags.FORWARDED */]: 'FORWARDED'\n};\n\nconst GLOBALS_WHITE_LISTED = 'Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,' +\n 'decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,' +\n 'Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt';\nconst isGloballyWhitelisted = /*#__PURE__*/ makeMap(GLOBALS_WHITE_LISTED);\n\nconst range = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n // Split the content into individual lines but capture the newline sequence\n // that separated each line. This is important because the actual sequence is\n // needed to properly take into account the full line length for offset\n // comparison\n let lines = source.split(/(\\r?\\n)/);\n // Separate the lines and newline sequences into separate arrays for easier referencing\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n lines = lines.filter((_, idx) => idx % 2 === 0);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count +=\n lines[i].length +\n ((newlineSequences[i] && newlineSequences[i].length) || 0);\n if (count >= start) {\n for (let j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length)\n continue;\n const line = j + 1;\n res.push(`${line}${' '.repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`);\n const lineLength = lines[j].length;\n const newLineSeqLength = (newlineSequences[j] && newlineSequences[j].length) || 0;\n if (j === i) {\n // push underline\n const pad = start - (count - (lineLength + newLineSeqLength));\n const length = Math.max(1, end > count ? lineLength - pad : end - start);\n res.push(` | ` + ' '.repeat(pad) + '^'.repeat(length));\n }\n else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + '^'.repeat(length));\n }\n count += lineLength + newLineSeqLength;\n }\n }\n break;\n }\n }\n return res.join('\\n');\n}\n\nfunction normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item)\n ? parseStringStyle(item)\n : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n }\n else if (isString(value)) {\n return value;\n }\n else if (isObject(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:([^]+)/;\nconst styleCommentRE = /\\/\\*.*?\\*\\//gs;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText\n .replace(styleCommentRE, '')\n .split(listDelimiterRE)\n .forEach(item => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction stringifyStyle(styles) {\n let ret = '';\n if (!styles || isString(styles)) {\n return ret;\n }\n for (const key in styles) {\n const value = styles[key];\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n if (isString(value) || typeof value === 'number') {\n // only render valid values\n ret += `${normalizedKey}:${value};`;\n }\n }\n return ret;\n}\nfunction normalizeClass(value) {\n let res = '';\n if (isString(value)) {\n res = value;\n }\n else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + ' ';\n }\n }\n }\n else if (isObject(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + ' ';\n }\n }\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props)\n return null;\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\n\n// These tag configs are shared between compiler-dom and runtime-dom, so they\n// https://developer.mozilla.org/en-US/docs/Web/HTML/Element\nconst HTML_TAGS = 'html,body,base,head,link,meta,style,title,address,article,aside,footer,' +\n 'header,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,' +\n 'figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,' +\n 'data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,' +\n 'time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,' +\n 'canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,' +\n 'th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,' +\n 'option,output,progress,select,textarea,details,dialog,menu,' +\n 'summary,template,blockquote,iframe,tfoot';\n// https://developer.mozilla.org/en-US/docs/Web/SVG/Element\nconst SVG_TAGS = 'svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,' +\n 'defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,' +\n 'feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,' +\n 'feDistanceLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,' +\n 'feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,' +\n 'fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,' +\n 'foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,' +\n 'mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,' +\n 'polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,' +\n 'text,textPath,title,tspan,unknown,use,view';\nconst VOID_TAGS = 'area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr';\n/**\n * Compiler only.\n * Do NOT use in runtime code paths unless behind `(process.env.NODE_ENV !== 'production')` flag.\n */\nconst isHTMLTag = /*#__PURE__*/ makeMap(HTML_TAGS);\n/**\n * Compiler only.\n * Do NOT use in runtime code paths unless behind `(process.env.NODE_ENV !== 'production')` flag.\n */\nconst isSVGTag = /*#__PURE__*/ makeMap(SVG_TAGS);\n/**\n * Compiler only.\n * Do NOT use in runtime code paths unless behind `(process.env.NODE_ENV !== 'production')` flag.\n */\nconst isVoidTag = /*#__PURE__*/ makeMap(VOID_TAGS);\n\n/**\n * On the client we only need to offer special cases for boolean attributes that\n * have different names from their corresponding dom properties:\n * - itemscope -> N/A\n * - allowfullscreen -> allowFullscreen\n * - formnovalidate -> formNoValidate\n * - ismap -> isMap\n * - nomodule -> noModule\n * - novalidate -> noValidate\n * - readonly -> readOnly\n */\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /*#__PURE__*/ makeMap(specialBooleanAttrs);\n/**\n * The full list is needed during SSR to produce the correct initial markup.\n */\nconst isBooleanAttr = /*#__PURE__*/ makeMap(specialBooleanAttrs +\n `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,` +\n `loop,open,required,reversed,scoped,seamless,` +\n `checked,muted,multiple,selected`);\n/**\n * Boolean attributes should be included if the value is truthy or ''.\n * e.g. `