Merge branch 's3-namespace' into 'develop'
[akkoma] / priv / static / sw.js
index c034aedd94c0c3acafb4a2c48916ac5da4a67486..73e42aa2994a3824b85139cb781375f2c6193bfd 100644 (file)
-var __wpo = {"assets":{"main":["/packs/base_polyfills.js","/packs/extra_polyfills.js","/packs/features/compose.js","/packs/modals/onboarding_modal.js","/packs/emoji_picker.js","/packs/features/notifications.js","/packs/features/account_timeline.js","/packs/features/home_timeline.js","/packs/features/public_timeline.js","/packs/features/community_timeline.js","/packs/features/favourited_statuses.js","/packs/features/list_timeline.js","/packs/features/following.js","/packs/features/followers.js","/packs/features/hashtag_timeline.js","/packs/features/status.js","/packs/features/account_gallery.js","/packs/features/blocks.js","/packs/features/follow_requests.js","/packs/features/reblogs.js","/packs/features/favourites.js","/packs/features/getting_started.js","/packs/features/keyboard_shortcuts.js","/packs/features/generic_not_found.js","/packs/features/list_editor.js","/packs/status/media_gallery.js","/packs/share.js","/packs/application.js","/packs/about.js","/packs/public.js","/packs/mailer.js","/packs/default.js","/packs/admin.js","/packs/common.js","/packs/common.css","/packs/mailer.css","/packs/default.css","/packs/manifest.json"],"additional":["/emoji/1f602.svg","/emoji/sheet.png"],"optional":["/packs/locale_zh-TW.js","/packs/locale_zh-HK.js","/packs/locale_zh-CN.js","/packs/locale_uk.js","/packs/locale_tr.js","/packs/locale_th.js","/packs/locale_sv.js","/packs/locale_sr.js","/packs/locale_sr-Latn.js","/packs/locale_sk.js","/packs/locale_ru.js","/packs/locale_pt.js","/packs/locale_pt-BR.js","/packs/locale_pl.js","/packs/locale_oc.js","/packs/locale_no.js","/packs/locale_nl.js","/packs/locale_ko.js","/packs/locale_ja.js","/packs/locale_it.js","/packs/locale_io.js","/packs/locale_id.js","/packs/locale_hy.js","/packs/locale_hu.js","/packs/locale_hr.js","/packs/locale_he.js","/packs/locale_gl.js","/packs/locale_fr.js","/packs/locale_fi.js","/packs/locale_fa.js","/packs/locale_es.js","/packs/locale_eo.js","/packs/locale_en.js","/packs/locale_de.js","/packs/locale_ca.js","/packs/locale_bg.js","/packs/locale_ar.js","/packs/roboto-italic-webfont-50efdad8c62f5f279e3f4f1f63a4f9bc.woff2","/packs/roboto-bold-webfont-f633cb5c651ba4d50791e1adf55d3c18.woff2","/packs/roboto-medium-webfont-69c55fc2fe77d38934ea98dc31642ce6.woff2","/packs/roboto-regular-webfont-3ec24f953ed5e859a6402cb3c030ea8b.woff2","/packs/fontawesome-webfont-af7ae505a9eed503f8b8e6982036873e.woff2","/packs/robotomono-regular-webfont-6c1ce30b90ee993b22618ec489585594.woff2","/packs/Montserrat-Regular-080422d4c1328f3407818d25c86cce51.woff2","/packs/void-65dfe5bd31335a5b308d36964d320574.png","/packs/reticle-7d7ce959271e5ff1193fb32cff90ea56.png","/packs/elephant-fren-d16fd77f9a9387e7d146b5f9d4dc1e7f.png","/packs/icon_cached-98a757f1d9e93652742be43c22f46287.png","/packs/icon_done-12b87c12f915597dccbd2ca4d7167ba4.png","/packs/icon_email-738c89662d6640f5e6539151023d049a.png","/packs/icon_file_download-e5c29678f3a639e1e62374911d85e1d0.png","/packs/icon_grade-3ec67253b37908d2ab783f7225f20682.png","/packs/icon_lock_open-0bfd71a52eb3f34934edd59088b559fb.png","/packs/icon_person_add-e2c6b660f6e1c95785d8d2bfa7a823af.png","/packs/icon_reply-4f6ada7a0b886b084706a484753a0ff0.png","/packs/logo_full-5c51cffe1fcb8225ae02400d6a7e7077.png","/packs/logo_transparent-6f79eeb2c38ec2d12ed4d978322457d6.png","/packs/preview-9a17d32fc48369e8ccd910a75260e67d.jpg","/packs/elephant_ui_plane-e3f2d57c12c376e189c274cbe81af8dd.svg","/packs/elephant_ui_disappointed-8864342480c3612e3061702851d3a798.svg","/packs/elephant_ui_greeting-475430963d0b00fe82b07b17857ebf6c.svg","/packs/elephant_ui_working-2e653cc278c2ac871c23aeb10de1c0e2.svg","/packs/icon_cached-108e30d96e1d5152be7fe2978bcdfe14.svg","/packs/icon_done-dba357bfbba455428787fefc655ce120.svg","/packs/icon_email-1346985c7aaceb601b0d4257133254f4.svg","/packs/icon_file_download-4b5c054e76b0df3cbbc851854cd10c3c.svg","/packs/icon_grade-8e81b8e88c2b5834347a2a226c65d440.svg","/packs/icon_lock_open-c9627928caaaa505ac7de2a64bd065ec.svg","/packs/icon_person_add-5c56ef10b9e99e77a44d89041f4b77b5.svg","/packs/icon_reply-b5e28e1fe6acd4ec003e643e947f1c4a.svg","/packs/logo-fe5141d38a25f50068b4c69b77ca1ec8.svg","/packs/logo_alt-6090911445f54a587465e41da77a6969.svg","/packs/logo_full-96e7a97fe469f75a23a74852b2478fa3.svg","/packs/logo_transparent-6900bab180aa3a46c34425e5367a218f.svg"]},"externals":["/emoji/1f602.svg","/emoji/sheet.png"],"hashesMap":{"8aadd54157395376ea8c22827bde88e67f31358e":"/packs/roboto-italic-webfont-50efdad8c62f5f279e3f4f1f63a4f9bc.woff2","e2fc71044647b6edf7a3ba41429d5d626e63710a":"/packs/roboto-bold-webfont-f633cb5c651ba4d50791e1adf55d3c18.woff2","b66f9a200f8671202198f0238b4729e127bc0dac":"/packs/roboto-medium-webfont-69c55fc2fe77d38934ea98dc31642ce6.woff2","74f352b40a57789750d3c738c710a82cdb0f254a":"/packs/roboto-regular-webfont-3ec24f953ed5e859a6402cb3c030ea8b.woff2","d6f48cba7d076fb6f2fd6ba993a75b9dc1ecbf0c":"/packs/fontawesome-webfont-af7ae505a9eed503f8b8e6982036873e.woff2","1e149b7d5f1c5a5c4971cb523450118b1d50ed47":"/packs/robotomono-regular-webfont-6c1ce30b90ee993b22618ec489585594.woff2","c6aade94b414951dc75e41b6f30fc1fa93bf89fb":"/packs/Montserrat-Regular-080422d4c1328f3407818d25c86cce51.woff2","7e2065071fefe6d54f64b821bf575a0ab49b92c0":"/packs/void-65dfe5bd31335a5b308d36964d320574.png","f7e7808e34f32df8859ac9cef991858df4fc0bba":"/packs/reticle-7d7ce959271e5ff1193fb32cff90ea56.png","8523aa7b16b029770170cc12026e7c7d172d626d":"/packs/elephant_ui_plane-e3f2d57c12c376e189c274cbe81af8dd.svg","027d2ab934afd67b404426234750c08b516ec223":"/packs/elephant-fren-d16fd77f9a9387e7d146b5f9d4dc1e7f.png","2523b7002bda93c12af3b4b7f4d7a35fd52faf41":"/packs/elephant_ui_disappointed-8864342480c3612e3061702851d3a798.svg","2dace1e38e0d159660c56d838ad2ce22c0184661":"/packs/elephant_ui_greeting-475430963d0b00fe82b07b17857ebf6c.svg","42a8fc2f0526540979583534ec331a2d28d2575e":"/packs/elephant_ui_working-2e653cc278c2ac871c23aeb10de1c0e2.svg","22fac75a796b2bd2c6872cbd8d14bd325b00bb64":"/packs/icon_cached-108e30d96e1d5152be7fe2978bcdfe14.svg","e9cea6fd6e8034f60e0358a15956490831c66b03":"/packs/icon_done-dba357bfbba455428787fefc655ce120.svg","17604ec5d343bc1aee070a2197dae8fd78bdccef":"/packs/icon_email-1346985c7aaceb601b0d4257133254f4.svg","e4a88b85b09c072041e89acaa22ec362ece97f27":"/packs/icon_file_download-4b5c054e76b0df3cbbc851854cd10c3c.svg","75a26256446662fb331fd42b9849dfff235364d5":"/packs/icon_grade-8e81b8e88c2b5834347a2a226c65d440.svg","7a534f4811adb70a796a285fb70b93c87a9f4b94":"/packs/icon_lock_open-c9627928caaaa505ac7de2a64bd065ec.svg","08ef53f9228b3d24f2801ba942fc842599c39e34":"/packs/icon_person_add-5c56ef10b9e99e77a44d89041f4b77b5.svg","ad9a0479341f3a93a83c7cadab091569e459076c":"/packs/icon_reply-b5e28e1fe6acd4ec003e643e947f1c4a.svg","aa75bce521938954706802c15e393ea05663e5e0":"/packs/logo-fe5141d38a25f50068b4c69b77ca1ec8.svg","f573db9e5698b7a3541880875c3ce88fe03ebee2":"/packs/logo_alt-6090911445f54a587465e41da77a6969.svg","3b339fcffc64574bca7cd2521e25bfbea8c3cbbf":"/packs/logo_full-96e7a97fe469f75a23a74852b2478fa3.svg","12520e03b958c73d94a1f19644ca4d0b79c6505d":"/packs/logo_transparent-6900bab180aa3a46c34425e5367a218f.svg","dc0b5a8d2d7e67f84d37635137610c6c6d937058":"/packs/icon_cached-98a757f1d9e93652742be43c22f46287.png","58f810df15baa9109f9db7f800e31c0d011e6f0d":"/packs/icon_done-12b87c12f915597dccbd2ca4d7167ba4.png","828ed8086eacb6622609e9992950998ce0a1579b":"/packs/icon_email-738c89662d6640f5e6539151023d049a.png","c60492c5ceea92a0acb138f20e0a33dd1e553f6b":"/packs/icon_file_download-e5c29678f3a639e1e62374911d85e1d0.png","b60349291b7d31e9aa78b94aed0f6ce07171096f":"/packs/icon_grade-3ec67253b37908d2ab783f7225f20682.png","d80b4dd1135df4803cddc1c1f6646dd7fc601367":"/packs/icon_lock_open-0bfd71a52eb3f34934edd59088b559fb.png","3f2c7f54c1073569de3a7312fb9a055723f68898":"/packs/icon_person_add-e2c6b660f6e1c95785d8d2bfa7a823af.png","f7717ae34919e3c88a668b5d9426b5fdc868b0de":"/packs/icon_reply-4f6ada7a0b886b084706a484753a0ff0.png","ee2ae924bf02960749696f2c66890780ca321924":"/packs/logo_full-5c51cffe1fcb8225ae02400d6a7e7077.png","2a2ed7e6889f11e00656cb952d0704f762bf05ea":"/packs/logo_transparent-6f79eeb2c38ec2d12ed4d978322457d6.png","361cf83e570038228710feb587738d6b74308e26":"/packs/preview-9a17d32fc48369e8ccd910a75260e67d.jpg","735479ceb519ada5aee125ba574c85c215fd2ac5":"/packs/base_polyfills.js","f4c102539e1713d8b3166b4957ee2a9d7cbfe543":"/packs/extra_polyfills.js","6b26b5b4e14742528d39d5c69baa3e21290a1258":"/packs/features/compose.js","3be6f4f4c81ae89d477559f4ae3a05e2064ab253":"/packs/modals/onboarding_modal.js","97bbbd0fba777d7d88a4a5bc8e245a7a6861207b":"/packs/emoji_picker.js","10518b6f353d9f6ba2c087a578db2ce7d2d975e5":"/packs/features/notifications.js","d529e77e67b205a41653b0191e16c4149b19b0fb":"/packs/features/account_timeline.js","729c925434c0cb8469b14dd8ad42878e048c91a8":"/packs/features/home_timeline.js","f5f6d904e0cc0b6bb1f8ad0714f20bc5533260c8":"/packs/features/public_timeline.js","4ee3950929b78e2e124a0faeb8db637b554ff58c":"/packs/features/community_timeline.js","6898bb229e6adb6df5eab7ebecaa0461ef8511bb":"/packs/features/favourited_statuses.js","4cca8ac1df802d914c002e2cb048abfaebdc1530":"/packs/features/list_timeline.js","d60a1559a2a022c1a9065e461cbb498320f30e91":"/packs/features/following.js","4c82c4430bc97ac6ae0a85783486752761dd5ab1":"/packs/features/followers.js","0cb5916e1eb7c45a7977469f08fb5c4113a78b35":"/packs/features/hashtag_timeline.js","e72705aaa007fe13cd3890523a19ee2f434ff92f":"/packs/features/status.js","16e3593a7fac203b2b41b5a1a9d7d77b221bc734":"/packs/features/account_gallery.js","56f03533466a86db63b9dd6c9e8e1b56fd15cf05":"/packs/features/blocks.js","d7a2c3db0c8cf92e2da04b4724286d96d1117941":"/packs/features/follow_requests.js","a43b2a990a9e4618911789c92fa63b8b8ae3d051":"/packs/features/reblogs.js","f1903e506d49f6c6b504837f0da9d60a0e635b42":"/packs/features/favourites.js","882ded96f053bc32c1e4c26c879b8df0b4365c8a":"/packs/features/getting_started.js","6bf8d183c5e3943801bec1be6b9259eb6df83347":"/packs/features/keyboard_shortcuts.js","9cb7fa53486c69180fc05090fdade632406b3bb0":"/packs/features/generic_not_found.js","e59e196ac21bbf2ca727704d928fcda1ea275427":"/packs/features/list_editor.js","2c17d7d23aee17b52923f613267d055405502aea":"/packs/status/media_gallery.js","e473d2203f613d3551c830a8956e82cb4abe67c0":"/packs/share.js","5d59f1a727c67c9c54caf732fd9107b74a9d77fc":"/packs/application.js","f31b9062a584196a01aa23df62659eb7a311e80a":"/packs/about.js","baaaf139ce7f7c7b50798919d3ddd9b2b41a1c71":"/packs/public.js","e402078e69486c97d16e19a2350cad4d2ebacd4e":"/packs/locale_zh-TW.js","990045d7e496d7c20afa29b95bb57ce3a7233381":"/packs/locale_zh-HK.js","a351f524749530c54240a20b9d287f414ac1fc8f":"/packs/locale_zh-CN.js","a49b1cb687c9db73b917a9d927cafd1b1c3870ec":"/packs/locale_uk.js","1b34cb16a8c2d6eee4d4fc86dd2edd8a93c8a0a6":"/packs/locale_tr.js","cc1753b364aa7390dedc29504398e1fd8c23d8c6":"/packs/locale_th.js","8a22093161c324516acce1bd00c3ba5ac6c8b8f1":"/packs/locale_sv.js","08cb0789a22b4a4859ae4590a59fbbd4c628026e":"/packs/locale_sr.js","a3481ef4cecce5754d600e326c3dc33c12a0c001":"/packs/locale_sr-Latn.js","94531007d4da5d46a0a1dfb87149a05a35025133":"/packs/locale_sk.js","7cea8224e81b7f57c62aeed4f1ec4c16985ae879":"/packs/locale_ru.js","189eaf61b7a833d1222beae1fcf08660a97081bb":"/packs/locale_pt.js","3ed6633be74d664e812cf167d0b79237b346b8eb":"/packs/locale_pt-BR.js","b51a692a328af1eafe8433bf170da8aa963dbffa":"/packs/locale_pl.js","f95a47f22fe522ea9f19aea427eccdb92d668463":"/packs/locale_oc.js","f3a63e3a9b667af7b8aae6677cca9cd5fa544450":"/packs/locale_no.js","1617607a224891aca21dbd955f1d8d748073553c":"/packs/locale_nl.js","a678598ad80ef43bed05a11e60d6672489194d0f":"/packs/locale_ko.js","fa257a7b03017ad1976a1f6ea87df45cb5b2e6d5":"/packs/locale_ja.js","24efd78e64e34023d7fccc6ed6f9e4c9317f606d":"/packs/locale_it.js","eef1fb80c7e2d7d9d9a53fc2d2ab42c49e090973":"/packs/locale_io.js","668463bcf41ce8971dfc2e03b4760a5769608f9d":"/packs/locale_id.js","546038783532ad3a0a3d64c4f9fdec0fe274cb1b":"/packs/locale_hy.js","dcacf3d9c920b82b61e1c5c1e530b4cd89bf86d6":"/packs/locale_hu.js","e6ea9a0c39af19c23dd268dfa42d02f3ef6f5286":"/packs/locale_hr.js","d6f92ff2dc28b2b129db3b70a50916f429363d16":"/packs/locale_he.js","223fb275136e05f90330126a6c36a053c4105212":"/packs/locale_gl.js","da36e5346cec0627c1983cff4d6582ddfdea16d7":"/packs/locale_fr.js","5edfbae7843ae0deb08e842365e6b969c8e4319e":"/packs/locale_fi.js","3d548c85c7e290f736e69504a1380128c99b1527":"/packs/locale_fa.js","8eef75454b123fa84bcbd897bb0b76c8023b57c8":"/packs/locale_es.js","1b22c9a756bdf85cdf2cb24ce2bd957ab2016fcd":"/packs/locale_eo.js","76bf1c955e254301d6271e4a2d1b712d7544b2ef":"/packs/locale_en.js","36c9261b7bf3d23c4a7fe7da776a3f7c73f4cb24":"/packs/locale_de.js","37f324aeecf404d5a9054b8695680305a1e3dcc9":"/packs/locale_ca.js","60d0bb13db45157614defb53ea18733d1d2bfa02":"/packs/locale_bg.js","2002efc5f1696ad482041d03600eb8183fac5e77":"/packs/locale_ar.js","9c5b75dcad12d553d953dfa71e4a3913600ddd80":"/packs/mailer.js","bccfc356ca0d67eb35b045cd313996454ba2e9d5":"/packs/default.js","a216f9aa7a4fb009a2e0fccdb2d0e09b9c7e3368":"/packs/admin.js","d6f5c4c563cf631ce7f3285b3a62b66c217c80ae":"/packs/common.js","63d5949a7f9065ed25c771b22883444dc420be1d":"/packs/common.css","2a742852e4241f6de4f33884bf01731c08a3851d":"/packs/mailer.css","54d7becd9340e4e5137d8895d9e068ce7d463be7":"/packs/default.css","0663f076d7e4cce086fbebc8b2aa66d29e1123d9":"/packs/manifest.json"},"strategy":"changed","responseStrategy":"cache-first","version":"2018-4-2 18:30:13","name":"webpack-offline:mastodon","pluginVersion":"4.8.4","relativePaths":false};
-
-/******/ (function(modules) { // webpackBootstrap
-/******/       // The module cache
-/******/       var installedModules = {};
-/******/
-/******/       // The require function
-/******/       function __webpack_require__(moduleId) {
-/******/
-/******/               // Check if module is in cache
-/******/               if(installedModules[moduleId]) {
-/******/                       return installedModules[moduleId].exports;
-/******/               }
-/******/               // Create a new module (and put it into the cache)
-/******/               var module = installedModules[moduleId] = {
-/******/                       i: moduleId,
-/******/                       l: false,
-/******/                       exports: {}
-/******/               };
-/******/
-/******/               // Execute the module function
-/******/               modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-/******/
-/******/               // Flag the module as loaded
-/******/               module.l = true;
-/******/
-/******/               // Return the exports of the module
-/******/               return module.exports;
-/******/       }
-/******/
-/******/
-/******/       // expose the modules object (__webpack_modules__)
-/******/       __webpack_require__.m = modules;
-/******/
-/******/       // expose the module cache
-/******/       __webpack_require__.c = installedModules;
-/******/
-/******/       // define getter function for harmony exports
-/******/       __webpack_require__.d = function(exports, name, getter) {
-/******/               if(!__webpack_require__.o(exports, name)) {
-/******/                       Object.defineProperty(exports, name, {
-/******/                               configurable: false,
-/******/                               enumerable: true,
-/******/                               get: getter
-/******/                       });
-/******/               }
-/******/       };
-/******/
-/******/       // getDefaultExport function for compatibility with non-harmony modules
-/******/       __webpack_require__.n = function(module) {
-/******/               var getter = module && module.__esModule ?
-/******/                       function getDefault() { return module['default']; } :
-/******/                       function getModuleExports() { return module; };
-/******/               __webpack_require__.d(getter, 'a', getter);
-/******/               return getter;
-/******/       };
-/******/
-/******/       // Object.prototype.hasOwnProperty.call
-/******/       __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
-/******/
-/******/       // __webpack_public_path__
-/******/       __webpack_require__.p = "/packs/";
-/******/
-/******/       // Load entry module and return exports
-/******/       return __webpack_require__(__webpack_require__.s = 0);
-/******/ })
-/************************************************************************/
-/******/ ([
-/* 0 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-(function () {
-  var waitUntil = ExtendableEvent.prototype.waitUntil;
-  var respondWith = FetchEvent.prototype.respondWith;
-  var promisesMap = new WeakMap();
-
-  ExtendableEvent.prototype.waitUntil = function (promise) {
-    var extendableEvent = this;
-    var promises = promisesMap.get(extendableEvent);
-
-    if (promises) {
-      promises.push(Promise.resolve(promise));
-      return;
-    }
-
-    promises = [Promise.resolve(promise)];
-    promisesMap.set(extendableEvent, promises);
-
-    // call original method
-    return waitUntil.call(extendableEvent, Promise.resolve().then(function processPromises() {
-      var len = promises.length;
-
-      // wait for all to settle
-      return Promise.all(promises.map(function (p) {
-        return p["catch"](function () {});
-      })).then(function () {
-        // have new items been added? If so, wait again
-        if (promises.length != len) return processPromises();
-        // we're done!
-        promisesMap["delete"](extendableEvent);
-        // reject if one of the promises rejected
-        return Promise.all(promises);
-      });
-    }));
-  };
-
-  FetchEvent.prototype.respondWith = function (promise) {
-    this.waitUntil(promise);
-    return respondWith.call(this, promise);
-  };
-})();;
-        'use strict';
-
-if (typeof DEBUG === 'undefined') {
-  var DEBUG = false;
-}
-
-function WebpackServiceWorker(params, helpers) {
-  var loaders = helpers.loaders;
-  var cacheMaps = helpers.cacheMaps;
-
-  var strategy = params.strategy;
-  var responseStrategy = params.responseStrategy;
-
-  var assets = params.assets;
-  var loadersMap = params.loaders || {};
-
-  var hashesMap = params.hashesMap;
-  var externals = params.externals;
-
-  // Not used yet
-  // const alwaysRevalidate = params.alwaysRevalidate;
-  // const ignoreSearch = params.ignoreSearch;
-  // const preferOnline = params.preferOnline;
-
-  var CACHE_PREFIX = params.name;
-  var CACHE_TAG = params.version;
-  var CACHE_NAME = CACHE_PREFIX + ':' + CACHE_TAG;
-
-  var STORED_DATA_KEY = '__offline_webpack__data';
-
-  mapAssets();
-
-  var allAssets = [].concat(assets.main, assets.additional, assets.optional);
-  var navigateFallbackURL = params.navigateFallbackURL;
-  var navigateFallbackForRedirects = params.navigateFallbackForRedirects;
-
-  self.addEventListener('install', function (event) {
-    console.log('[SW]:', 'Install event');
-
-    var installing = undefined;
-
-    if (strategy === 'changed') {
-      installing = cacheChanged('main');
-    } else {
-      installing = cacheAssets('main');
-    }
-
-    event.waitUntil(installing);
-  });
-
-  self.addEventListener('activate', function (event) {
-    console.log('[SW]:', 'Activate event');
-
-    var activation = cacheAdditional();
-
-    // Delete all assets which name starts with CACHE_PREFIX and
-    // is not current cache (CACHE_NAME)
-    activation = activation.then(storeCacheData);
-    activation = activation.then(deleteObsolete);
-    activation = activation.then(function () {
-      if (self.clients && self.clients.claim) {
-        return self.clients.claim();
-      }
-    });
-
-    event.waitUntil(activation);
-  });
-
-  function cacheAdditional() {
-    if (!assets.additional.length) {
-      return Promise.resolve();
-    }
-
-    if (DEBUG) {
-      console.log('[SW]:', 'Caching additional');
-    }
-
-    var operation = undefined;
-
-    if (strategy === 'changed') {
-      operation = cacheChanged('additional');
-    } else {
-      operation = cacheAssets('additional');
-    }
-
-    // Ignore fail of `additional` cache section
-    return operation['catch'](function (e) {
-      console.error('[SW]:', 'Cache section `additional` failed to load');
-    });
-  }
-
-  function cacheAssets(section) {
-    var batch = assets[section];
-
-    return caches.open(CACHE_NAME).then(function (cache) {
-      return addAllNormalized(cache, batch, {
-        bust: params.version,
-        request: params.prefetchRequest
-      });
-    }).then(function () {
-      logGroup('Cached assets: ' + section, batch);
-    })['catch'](function (e) {
-      console.error(e);
-      throw e;
-    });
-  }
-
-  function cacheChanged(section) {
-    return getLastCache().then(function (args) {
-      if (!args) {
-        return cacheAssets(section);
-      }
-
-      var lastCache = args[0];
-      var lastKeys = args[1];
-      var lastData = args[2];
-
-      var lastMap = lastData.hashmap;
-      var lastVersion = lastData.version;
-
-      if (!lastData.hashmap || lastVersion === params.version) {
-        return cacheAssets(section);
-      }
-
-      var lastHashedAssets = Object.keys(lastMap).map(function (hash) {
-        return lastMap[hash];
-      });
-
-      var lastUrls = lastKeys.map(function (req) {
-        var url = new URL(req.url);
-        url.search = '';
-        url.hash = '';
-
-        return url.toString();
-      });
-
-      var sectionAssets = assets[section];
-      var moved = [];
-      var changed = sectionAssets.filter(function (url) {
-        if (lastUrls.indexOf(url) === -1 || lastHashedAssets.indexOf(url) === -1) {
-          return true;
-        }
-
-        return false;
-      });
-
-      Object.keys(hashesMap).forEach(function (hash) {
-        var asset = hashesMap[hash];
-
-        // Return if not in sectionAssets or in changed or moved array
-        if (sectionAssets.indexOf(asset) === -1 || changed.indexOf(asset) !== -1 || moved.indexOf(asset) !== -1) return;
-
-        var lastAsset = lastMap[hash];
-
-        if (lastAsset && lastUrls.indexOf(lastAsset) !== -1) {
-          moved.push([lastAsset, asset]);
-        } else {
-          changed.push(asset);
-        }
-      });
-
-      logGroup('Changed assets: ' + section, changed);
-      logGroup('Moved assets: ' + section, moved);
-
-      var movedResponses = Promise.all(moved.map(function (pair) {
-        return lastCache.match(pair[0]).then(function (response) {
-          return [pair[1], response];
-        });
-      }));
-
-      return caches.open(CACHE_NAME).then(function (cache) {
-        var move = movedResponses.then(function (responses) {
-          return Promise.all(responses.map(function (pair) {
-            return cache.put(pair[0], pair[1]);
-          }));
-        });
-
-        return Promise.all([move, addAllNormalized(cache, changed, {
-          bust: params.version,
-          request: params.prefetchRequest
-        })]);
-      });
-    });
-  }
-
-  function deleteObsolete() {
-    return caches.keys().then(function (keys) {
-      var all = keys.map(function (key) {
-        if (key.indexOf(CACHE_PREFIX) !== 0 || key.indexOf(CACHE_NAME) === 0) return;
-
-        console.log('[SW]:', 'Delete cache:', key);
-        return caches['delete'](key);
-      });
-
-      return Promise.all(all);
-    });
-  }
-
-  function getLastCache() {
-    return caches.keys().then(function (keys) {
-      var index = keys.length;
-      var key = undefined;
-
-      while (index--) {
-        key = keys[index];
-
-        if (key.indexOf(CACHE_PREFIX) === 0) {
-          break;
-        }
-      }
-
-      if (!key) return;
-
-      var cache = undefined;
-
-      return caches.open(key).then(function (_cache) {
-        cache = _cache;
-        return _cache.match(new URL(STORED_DATA_KEY, location).toString());
-      }).then(function (response) {
-        if (!response) return;
-
-        return Promise.all([cache, cache.keys(), response.json()]);
-      });
-    });
-  }
-
-  function storeCacheData() {
-    return caches.open(CACHE_NAME).then(function (cache) {
-      var data = new Response(JSON.stringify({
-        version: params.version,
-        hashmap: hashesMap
-      }));
-
-      return cache.put(new URL(STORED_DATA_KEY, location).toString(), data);
-    });
-  }
-
-  self.addEventListener('fetch', function (event) {
-    var url = new URL(event.request.url);
-    url.hash = '';
-
-    var urlString = url.toString();
-
-    // Not external, so search part of the URL should be stripped,
-    // if it's external URL, the search part should be kept
-    if (externals.indexOf(urlString) === -1) {
-      url.search = '';
-      urlString = url.toString();
-    }
-
-    // Handle only GET requests
-    var isGET = event.request.method === 'GET';
-    var assetMatches = allAssets.indexOf(urlString) !== -1;
-    var cacheUrl = urlString;
-
-    if (!assetMatches) {
-      var cacheRewrite = matchCacheMap(event.request);
-
-      if (cacheRewrite) {
-        cacheUrl = cacheRewrite;
-        assetMatches = true;
-      }
-    }
-
-    if (!assetMatches && isGET) {
-      // If isn't a cached asset and is a navigation request,
-      // fallback to navigateFallbackURL if available
-      if (navigateFallbackURL && isNavigateRequest(event.request)) {
-        event.respondWith(handleNavigateFallback(fetch(event.request)));
-
-        return;
-      }
-    }
-
-    if (!assetMatches || !isGET) {
-      // Fix for https://twitter.com/wanderview/status/696819243262873600
-      if (url.origin !== location.origin && navigator.userAgent.indexOf('Firefox/44.') !== -1) {
-        event.respondWith(fetch(event.request));
-      }
-
-      return;
-    }
-
-    // Logic of caching / fetching is here
-    // * urlString -- url to match from the CACHE_NAME
-    // * event.request -- original Request to perform fetch() if necessary
-    var resource = undefined;
-
-    if (responseStrategy === 'network-first') {
-      resource = networkFirstResponse(event, urlString, cacheUrl);
-    }
-    // 'cache-first'
-    // (responseStrategy has been validated before)
-    else {
-        resource = cacheFirstResponse(event, urlString, cacheUrl);
-      }
-
-    if (navigateFallbackURL && isNavigateRequest(event.request)) {
-      resource = handleNavigateFallback(resource);
-    }
-
-    event.respondWith(resource);
-  });
-
-  self.addEventListener('message', function (e) {
-    var data = e.data;
-    if (!data) return;
-
-    switch (data.action) {
-      case 'skipWaiting':
-        {
-          if (self.skipWaiting) self.skipWaiting();
-        }break;
-    }
-  });
-
-  function cacheFirstResponse(event, urlString, cacheUrl) {
-    return cachesMatch(cacheUrl, CACHE_NAME).then(function (response) {
-      if (response) {
-        if (DEBUG) {
-          console.log('[SW]:', 'URL [' + cacheUrl + '](' + urlString + ') from cache');
-        }
-
-        return response;
-      }
-
-      // Load and cache known assets
-      var fetching = fetch(event.request).then(function (response) {
-        if (!response.ok) {
-          if (DEBUG) {
-            console.log('[SW]:', 'URL [' + urlString + '] wrong response: [' + response.status + '] ' + response.type);
-          }
-
-          return response;
-        }
-
-        if (DEBUG) {
-          console.log('[SW]:', 'URL [' + urlString + '] from network');
-        }
-
-        if (cacheUrl === urlString) {
-          (function () {
-            var responseClone = response.clone();
-            var storing = caches.open(CACHE_NAME).then(function (cache) {
-              return cache.put(urlString, responseClone);
-            }).then(function () {
-              console.log('[SW]:', 'Cache asset: ' + urlString);
-            });
-
-            event.waitUntil(storing);
-          })();
-        }
-
-        return response;
-      });
-
-      return fetching;
-    });
-  }
-
-  function networkFirstResponse(event, urlString, cacheUrl) {
-    return fetch(event.request).then(function (response) {
-      if (response.ok) {
-        if (DEBUG) {
-          console.log('[SW]:', 'URL [' + urlString + '] from network');
-        }
-
-        return response;
-      }
-
-      // Throw to reach the code in the catch below
-      throw new Error('Response is not ok');
-    })
-    // This needs to be in a catch() and not just in the then() above
-    // cause if your network is down, the fetch() will throw
-    ['catch'](function () {
-      if (DEBUG) {
-        console.log('[SW]:', 'URL [' + urlString + '] from cache if possible');
-      }
-
-      return cachesMatch(cacheUrl, CACHE_NAME);
-    });
-  }
-
-  function handleNavigateFallback(fetching) {
-    return fetching['catch'](function () {}).then(function (response) {
-      var isOk = response && response.ok;
-      var isRedirect = response && response.type === 'opaqueredirect';
-
-      if (isOk || isRedirect && !navigateFallbackForRedirects) {
-        return response;
-      }
-
-      if (DEBUG) {
-        console.log('[SW]:', 'Loading navigation fallback [' + navigateFallbackURL + '] from cache');
-      }
-
-      return cachesMatch(navigateFallbackURL, CACHE_NAME);
-    });
-  }
-
-  function mapAssets() {
-    Object.keys(assets).forEach(function (key) {
-      assets[key] = assets[key].map(function (path) {
-        var url = new URL(path, location);
-
-        url.hash = '';
-
-        if (externals.indexOf(path) === -1) {
-          url.search = '';
-        }
-
-        return url.toString();
-      });
-    });
-
-    Object.keys(loadersMap).forEach(function (key) {
-      loadersMap[key] = loadersMap[key].map(function (path) {
-        var url = new URL(path, location);
-
-        url.hash = '';
-
-        if (externals.indexOf(path) === -1) {
-          url.search = '';
-        }
-
-        return url.toString();
-      });
-    });
-
-    hashesMap = Object.keys(hashesMap).reduce(function (result, hash) {
-      var url = new URL(hashesMap[hash], location);
-      url.search = '';
-      url.hash = '';
-
-      result[hash] = url.toString();
-      return result;
-    }, {});
-
-    externals = externals.map(function (path) {
-      var url = new URL(path, location);
-      url.hash = '';
-
-      return url.toString();
-    });
-  }
-
-  function addAllNormalized(cache, requests, options) {
-    var allowLoaders = options.allowLoaders !== false;
-    var bustValue = options && options.bust;
-    var requestInit = options.request || {
-      credentials: 'omit',
-      mode: 'cors'
-    };
-
-    return Promise.all(requests.map(function (request) {
-      if (bustValue) {
-        request = applyCacheBust(request, bustValue);
-      }
-
-      return fetch(request, requestInit).then(fixRedirectedResponse);
-    })).then(function (responses) {
-      if (responses.some(function (response) {
-        return !response.ok;
-      })) {
-        return Promise.reject(new Error('Wrong response status'));
-      }
-
-      var extracted = [];
-      var addAll = responses.map(function (response, i) {
-        if (allowLoaders) {
-          extracted.push(extractAssetsWithLoaders(requests[i], response));
-        }
-
-        return cache.put(requests[i], response);
-      });
-
-      if (extracted.length) {
-        (function () {
-          var newOptions = copyObject(options);
-          newOptions.allowLoaders = false;
-
-          var waitAll = addAll;
-
-          addAll = Promise.all(extracted).then(function (all) {
-            var extractedRequests = [].concat.apply([], all);
-
-            if (requests.length) {
-              waitAll = waitAll.concat(addAllNormalized(cache, extractedRequests, newOptions));
-            }
-
-            return Promise.all(waitAll);
-          });
-        })();
-      } else {
-        addAll = Promise.all(addAll);
-      }
-
-      return addAll;
-    });
-  }
-
-  function extractAssetsWithLoaders(request, response) {
-    var all = Object.keys(loadersMap).map(function (key) {
-      var loader = loadersMap[key];
-
-      if (loader.indexOf(request) !== -1 && loaders[key]) {
-        return loaders[key](response.clone());
-      }
-    }).filter(function (a) {
-      return !!a;
-    });
-
-    return Promise.all(all).then(function (all) {
-      return [].concat.apply([], all);
-    });
-  }
-
-  function matchCacheMap(request) {
-    var urlString = request.url;
-    var url = new URL(urlString);
-
-    var requestType = undefined;
-
-    if (request.mode === 'navigate') {
-      requestType = 'navigate';
-    } else if (url.origin === location.origin) {
-      requestType = 'same-origin';
-    } else {
-      requestType = 'cross-origin';
-    }
-
-    for (var i = 0; i < cacheMaps.length; i++) {
-      var map = cacheMaps[i];
-
-      if (!map) continue;
-      if (map.requestTypes && map.requestTypes.indexOf(requestType) === -1) {
-        continue;
-      }
-
-      var newString = undefined;
-
-      if (typeof map.match === 'function') {
-        newString = map.match(url, request);
-      } else {
-        newString = urlString.replace(map.match, map.to);
-      }
-
-      if (newString && newString !== urlString) {
-        return newString;
-      }
-    }
-  }
-}
-
-function cachesMatch(request, cacheName) {
-  return caches.match(request, {
-    cacheName: cacheName
-  }).then(function (response) {
-    if (isNotRedirectedResponse()) {
-      return response;
-    }
-
-    // Fix already cached redirected responses
-    return fixRedirectedResponse(response).then(function (fixedResponse) {
-      return caches.open(cacheName).then(function (cache) {
-        return cache.put(request, fixedResponse);
-      }).then(function () {
-        return fixedResponse;
-      });
-    });
-  })
-  // Return void if error happened (cache not found)
-  ['catch'](function () {});
-}
-
-function applyCacheBust(asset, key) {
-  var hasQuery = asset.indexOf('?') !== -1;
-  return asset + (hasQuery ? '&' : '?') + '__uncache=' + encodeURIComponent(key);
-}
-
-function getClientsURLs() {
-  if (!self.clients) {
-    return Promise.resolve([]);
-  }
-
-  return self.clients.matchAll({
-    includeUncontrolled: true
-  }).then(function (clients) {
-    if (!clients.length) return [];
-
-    var result = [];
-
-    clients.forEach(function (client) {
-      var url = new URL(client.url);
-      url.search = '';
-      url.hash = '';
-      var urlString = url.toString();
-
-      if (!result.length || result.indexOf(urlString) === -1) {
-        result.push(urlString);
-      }
-    });
-
-    return result;
-  });
-}
-
-function isNavigateRequest(request) {
-  return request.mode === 'navigate' || request.headers.get('Upgrade-Insecure-Requests') || (request.headers.get('Accept') || '').indexOf('text/html') !== -1;
-}
-
-function isNotRedirectedResponse(response) {
-  return !response || !response.redirected || !response.ok || response.type === 'opaqueredirect';
-}
-
-// Based on https://github.com/GoogleChrome/sw-precache/pull/241/files#diff-3ee9060dc7a312c6a822cac63a8c630bR85
-function fixRedirectedResponse(response) {
-  if (isNotRedirectedResponse(response)) {
-    return Promise.resolve(response);
-  }
-
-  var body = 'body' in response ? Promise.resolve(response.body) : response.blob();
-
-  return body.then(function (data) {
-    return new Response(data, {
-      headers: response.headers,
-      status: response.status
-    });
-  });
-}
-
-function copyObject(original) {
-  return Object.keys(original).reduce(function (result, key) {
-    result[key] = original[key];
-    return result;
-  }, {});
-}
-
-function logGroup(title, assets) {
-  console.groupCollapsed('[SW]:', title);
-
-  assets.forEach(function (asset) {
-    console.log('Asset:', asset);
-  });
-
-  console.groupEnd();
-}
-        WebpackServiceWorker(__wpo, {
-loaders: {},
-cacheMaps: [],
-});
-        module.exports = __webpack_require__(1)
-      
-
-/***/ }),
-/* 1 */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__web_push_notifications__ = __webpack_require__(2);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__web_push_notifications___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__web_push_notifications__);
-/*** IMPORTS FROM imports-loader ***/
-var process = (process || {});
-process.env = {"GJS_DEBUG_TOPICS":"JS ERROR;JS LOG","npm_config_cache_lock_stale":"60000","npm_config_ham_it_up":"","npm_package_dependencies_mark_loader":"^0.1.6","npm_config_legacy_bundling":"","npm_config_sign_git_tag":"","USER":"howl","LANGUAGE":"en_GB:en","npm_package_dependencies_autoprefixer":"^7.1.6","npm_package_dependencies_mkdirp":"^0.5.1","npm_package_dependencies_node_sass":"^4.7.2","npm_package_devDependencies_jest":"^21.2.1","npm_config_user_agent":"npm/5.6.0 node/v9.10.1 linux x64","npm_config_always_auth":"","COMP_WORDBREAKS":" \t\n\"'><;|&(:","XDG_SEAT":"seat0","npm_package_dependencies_detect_passive_events":"^1.0.2","npm_package_dependencies_immutable":"^3.8.2","npm_package_bugs_url":"https://github.com/tootsuite/mastodon/issues","npm_config_bin_links":"true","npm_config_key":"","SSH_AGENT_PID":"1448","XDG_SESSION_TYPE":"x11","npm_package_dependencies_react_overlays":"^0.8.3","npm_config_allow_same_version":"","npm_config_description":"true","npm_config_fetch_retries":"2","npm_config_heading":"npm","npm_config_if_present":"","npm_config_init_version":"1.0.0","npm_config_user":"","npm_node_execpath":"/usr/bin/node","LD_LIBRARY_PATH":"/home/howl/torch-cl/install/lib:/home/howl/torch-cl/install/lib:","LUA_PATH":"/home/howl/.luarocks/share/lua/5.1/?.lua;/home/howl/.luarocks/share/lua/5.1/?/init.lua;/home/howl/torch-cl/install/share/lua/5.1/?.lua;/home/howl/torch-cl/install/share/lua/5.1/?/init.lua;./?.lua;/home/howl/torch-cl/install/share/luajit-2.1.0-beta1/?.lua;/usr/local/share/lua/5.1/?.lua;/usr/local/share/lua/5.1/?/init.lua","SHLVL":"2","npm_package_scripts_manage_translations":"node ./config/webpack/translationRunner.js","npm_package_dependencies_babel_plugin_transform_class_properties":"^6.24.1","npm_package_dependencies_babel_plugin_transform_es2015_modules_commonjs":"^6.24.1","npm_package_dependencies_escape_html":"^1.0.3","npm_package_dependencies_imports_loader":"^0.8.0","npm_package_optionalDependencies_node_zopfli":"^2.0.2","npm_config_prefer_online":"","OLDPWD":"/home/howl/oc/mastofe/public","HOME":"/home/howl","npm_package_dependencies_postcss_loader":"^2.0.9","npm_config_force":"","OSU_API_KEY":"e0146ddaf01d1e9d107afedcd340b42347186260","DESKTOP_SESSION":"cinnamon","npm_package_dependencies_react_redux_loading_bar":"^2.9.3","npm_package_dependencies_redis":"^2.7.1","npm_config_only":"","npm_config_read_only":"","GIO_LAUNCHED_DESKTOP_FILE":"/usr/share/applications/xfce4-terminal.desktop","npm_package_engines_node":">=6","npm_package_dependencies_babel_plugin_react_intl":"^2.3.1","npm_package_dependencies_npmlog":"^4.1.2","npm_package_devDependencies_enzyme_adapter_react_16":"^1.1.0","npm_config_cache_min":"10","npm_config_init_license":"ISC","GTK_MODULES":"gail:atk-bridge","XDG_SEAT_PATH":"/org/freedesktop/DisplayManager/Seat0","npm_package_scripts_build_production":"cross-env NODE_ENV=production webpack --config config/webpack/production.js","npm_package_dependencies_glob":"^7.1.1","npm_package_dependencies_webpack_merge":"^4.1.1","npm_config_editor":"vi","npm_config_rollback":"true","npm_config_tag_version_prefix":"v","OSU_PASSWORD":"il mio cane gioca meglio di me","npm_package_dependencies_redux_thunk":"^2.2.0","npm_package_dependencies_webpack":"^3.9.1","npm_config_cache_max":"Infinity","npm_config_timing":"","npm_config_userconfig":"/home/howl/.npmrc","DBUS_SESSION_BUS_ADDRESS":"unix:path=/run/user/1000/bus","CINNAMON_VERSION":"3.6.7","npm_package_dependencies_babel_plugin_lodash":"^3.3.2","npm_package_dependencies_dotenv":"^4.0.0","npm_package_dependencies_precss":"^2.0.0","npm_package_dependencies_react_hotkeys":"^0.10.0","npm_config_engine_strict":"","npm_config_init_author_name":"","npm_config_init_author_url":"","npm_config_tmp":"/tmp","COLORTERM":"truecolor","GIO_LAUNCHED_DESKTOP_FILE_PID":"4122","npm_package_description":"mastodon","npm_package_dependencies_react_router_dom":"^4.1.1","npm_config_depth":"Infinity","npm_config_package_lock_only":"","npm_config_save_dev":"","npm_config_usage":"","npm_package_scripts_test_jest":"cross-env NODE_ENV=test jest --coverage","npm_package_dependencies_throng":"^4.0.0","npm_package_devDependencies_react_intl_translations_manager":"^5.0.0","npm_package_readmeFilename":"README.md","npm_package_homepage":"https://github.com/tootsuite/mastodon#readme","npm_config_metrics_registry":"https://registry.npmjs.org/","npm_config_cafile":"","npm_config_otp":"","npm_config_package_lock":"true","npm_config_progress":"true","npm_config_https_proxy":"","npm_config_save_prod":"","QT_QPA_PLATFORMTHEME":"gtk2","npm_package_scripts_dev":"cross-env NODE_ENV=development webpack-dev-server --config config/webpack/development.js --progress --color","npm_package_scripts_test_lint":"eslint -c .eslintrc.yml --ext=js app/javascript/ config/webpack/ streaming/","npm_package_dependencies_babel_plugin_transform_react_remove_prop_types":"^0.4.10","npm_package_dependencies_websocket_js":"^0.1.12","npm_config_cidr":"","npm_config_onload_script":"","npm_config_sso_type":"oauth","LOGNAME":"howl","npm_package_dependencies_babel_plugin_syntax_dynamic_import":"^6.18.0","npm_package_dependencies_hammerjs":"^2.0.8","npm_package_dependencies_rails_ujs":"^5.1.2","npm_package_dependencies_react_immutable_pure_component":"^1.1.1","npm_package_dependencies_react_motion":"^0.5.2","npm_package_dependencies_reselect":"^3.0.1","npm_package_devDependencies_eslint_plugin_import":"^2.8.0","npm_config_rebuild_bundle":"true","npm_config_save_bundle":"","npm_config_shell":"/bin/bash","WINDOWID":"85983235","_":"./build.sh","npm_package_private":"true","npm_package_dependencies_express":"^4.16.2","npm_package_dependencies_react_notification":"^6.8.2","npm_package_dependencies_sass_loader":"^6.0.6","npm_config_dry_run":"","npm_config_prefix":"/usr","npm_config_scope":"","npm_config_browser":"","npm_config_cache_lock_wait":"10000","npm_config_ignore_prepublish":"","npm_config_registry":"https://registry.npmjs.org/","npm_config_save_optional":"","npm_config_searchopts":"","npm_config_versions":"","GTK_OVERLAY_SCROLLING":"0","XDG_SESSION_ID":"2","TERM":"xterm-256color","npm_package_dependencies_font_awesome":"^4.7.0","npm_package_dependencies_postcss_object_fit_images":"^1.1.2","npm_package_dependencies_react_immutable_proptypes":"^2.1.0","npm_package_dependencies_style_loader":"^0.19.0","npm_package_dependencies_uws":"^8.14.0","npm_package_optionalDependencies_fsevents":"*","npm_config_cache":"/home/howl/.npm","npm_config_proxy":"","npm_config_send_metrics":"","GNOME_DESKTOP_SESSION_ID":"this-is-deprecated","npm_package_scripts_start":"node ./streaming/index.js","npm_config_global_style":"","npm_config_ignore_scripts":"","npm_config_version":"","npm_package_dependencies_axios":"~0.16.2","npm_package_dependencies_css_loader":"^0.28.4","npm_package_dependencies_marky":"^1.2.0","npm_config_local_address":"","npm_config_viewer":"man","npm_config_node_gyp":"/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js","PATH":"/usr/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin:/home/howl/oc/mastofe/node_modules/.bin:/home/howl/torch-cl/install/bin:/home/howl/go/bin:/home/howl/bin:/home/howl/torch-cl/install/bin:/home/howl/go/bin:/home/howl/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games","SESSION_MANAGER":"local/pluto:@/tmp/.ICE-unix/1417,unix/pluto:/tmp/.ICE-unix/1417","npm_package_name":"mastodon","npm_package_repository_type":"git","npm_package_dependencies_babel_preset_env":"^1.6.1","npm_package_dependencies_cross_env":"^5.1.1","npm_package_dependencies_extract_text_webpack_plugin":"^3.0.2","npm_package_dependencies_substring_trie":"^1.0.2","npm_config_prefer_offline":"","NODE":"/usr/bin/node","XDG_RUNTIME_DIR":"/run/user/1000","XDG_SESSION_PATH":"/org/freedesktop/DisplayManager/Session0","npm_package_dependencies_babel_plugin_transform_runtime":"^6.23.0","npm_package_dependencies_react_redux":"^5.0.4","npm_package_dependencies_tiny_queue":"^0.2.1","npm_package_devDependencies_eslint_plugin_jsx_a11y":"^5.1.1","npm_config_color":"true","DISPLAY":":0","npm_package_scripts_build_development":"cross-env NODE_ENV=development webpack --config config/webpack/development.js","npm_package_dependencies_npm_run_all":"^4.1.2","npm_package_dependencies_stringz":"^0.3.0","npm_config_fetch_retry_mintimeout":"10000","npm_config_maxsockets":"50","npm_config_offline":"","npm_config_sso_poll_frequency":"500","LANG":"en_GB.UTF-8","XDG_CURRENT_DESKTOP":"X-Cinnamon","npm_package_dependencies_babel_plugin_transform_react_inline_elements":"^6.22.0","npm_package_dependencies_babel_preset_react":"^6.24.1","npm_package_dependencies_object_assign":"^4.1.1","npm_package_dependencies_react_dom":"^16.2.0","npm_package_dependencies_react_textarea_autosize":"^5.2.1","npm_package_dependencies_redux":"^3.7.1","npm_package_devDependencies_eslint":"^4.15.0","npm_package_devDependencies_react_test_renderer":"^16.2.0","npm_config_umask":"0022","LS_COLORS":"rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:","XDG_SESSION_DESKTOP":"cinnamon","XAUTHORITY":"/home/howl/.Xauthority","npm_package_dependencies_babel_plugin_transform_object_rest_spread":"^6.23.0","npm_package_dependencies_offline_plugin":"^4.8.3","npm_package_dependencies_path_complete_extname":"^0.1.0","npm_package_dependencies_postcss_smart_import":"^0.7.5","npm_package_dependencies_node_zopfli":"^2.0.2","npm_package_gitHead":"5edce2030238293463c041537da4aaeea5cb3875","npm_config_fetch_retry_maxtimeout":"60000","npm_config_loglevel":"notice","npm_config_logs_max":"10","npm_config_message":"%s","npm_lifecycle_script":"cross-env NODE_ENV=production webpack --config config/webpack/production.js","SSH_AUTH_SOCK":"/run/user/1000/keyring/ssh","XDG_GREETER_DATA_DIR":"/var/lib/lightdm/data/howl","npm_package_scripts_postversion":"git push --tags","npm_package_scripts_test":"npm-run-all test:lint test:jest","npm_package_dependencies_babel_core":"^6.25.0","npm_package_dependencies_babel_plugin_preval":"^1.6.1","npm_package_dependencies_http_link_header":"^0.8.0","npm_package_dependencies_intersection_observer":"^0.5.0","npm_package_dependencies_is_nan":"^1.2.1","npm_package_dependencies_react_intl":"^2.4.0","npm_package_dependencies_react_router_scroll_4":"^1.0.0-beta.1","npm_package_dependencies_react_swipeable_views":"^0.12.3","npm_package_dependencies_redux_immutable":"^4.0.0","npm_package_devDependencies_webpack_dev_server":"^2.9.5","npm_config_ca":"","npm_config_cert":"","npm_config_global":"","npm_config_link":"","SHELL":"/bin/bash","npm_package_repository_url":"git+https://github.com/tootsuite/mastodon.git","npm_package_dependencies_webpack_bundle_analyzer":"^2.9.1","npm_package_version":"","npm_config_access":"","npm_config_also":"","npm_config_save":"true","npm_config_unicode":"true","npm_lifecycle_event":"build","QT_ACCESSIBILITY":"1","GDMSESSION":"cinnamon","npm_package_scripts_build":"cross-env NODE_ENV=production webpack --config config/webpack/production.js","npm_package_dependencies_emoji_mart":"github:Gargron/emoji-mart#build","npm_package_dependencies_intl":"^1.2.5","npm_package_dependencies_js_yaml":"^3.9.0","npm_package_dependencies_uuid":"^3.1.0","npm_config_argv":"{\"remain\":[],\"cooked\":[\"run\",\"build\"],\"original\":[\"run\",\"build\"]}","npm_config_long":"","npm_config_production":"","npm_config_searchlimit":"20","npm_config_unsafe_perm":"true","npm_package_dependencies_array_includes":"^3.0.3","npm_package_dependencies_babel_plugin_transform_react_jsx_source":"^6.22.0","npm_package_dependencies_compression_webpack_plugin":"^1.0.1","npm_package_dependencies_file_loader":"^0.11.2","npm_package_dependencies_lodash":"^4.17.4","npm_config_auth_type":"legacy","npm_config_node_version":"9.10.1","npm_config_tag":"latest","OSU_USERNAME":"howl","npm_config_git_tag_version":"true","npm_config_commit_hooks":"true","npm_config_script_shell":"","npm_config_shrinkwrap":"true","GJS_DEBUG_OUTPUT":"stderr","GPG_AGENT_INFO":"/run/user/1000/gnupg/S.gpg-agent:0:1","npm_package_license":"AGPL-3.0-or-later","npm_package_dependencies_classnames":"^2.2.5","npm_package_dependencies_es6_symbol":"^3.1.1","npm_package_dependencies_intl_messageformat":"^2.2.0","npm_package_dependencies_punycode":"^2.1.0","npm_package_devDependencies_eslint_plugin_react":"^7.5.1","npm_config_fetch_retry_factor":"10","npm_config_save_exact":"","npm_config_strict_ssl":"true","XDG_VTNR":"7","npm_package_dependencies_babel_plugin_transform_react_jsx_self":"^6.22.0","npm_config_dev":"","npm_config_globalconfig":"/usr/etc/npmrc","npm_config_init_module":"/home/howl/.npm-init.js","npm_config_parseable":"","LUA_CPATH":"/home/howl/torch-cl/install/lib/?.so;/home/howl/.luarocks/lib/lua/5.1/?.so;/home/howl/torch-cl/install/lib/lua/5.1/?.so;./?.so;/usr/local/lib/lua/5.1/?.so;/usr/local/lib/lua/5.1/loadall.so","PWD":"/home/howl/oc/mastofe","npm_package_dependencies_intl_relativeformat":"^2.1.0","npm_package_dependencies_requestidlecallback":"^0.3.0","npm_package_dependencies_webpack_manifest_plugin":"^1.2.1","npm_package_devDependencies_enzyme":"^3.2.0","npm_package_devDependencies_raf":"^3.4.0","npm_config_globalignorefile":"/usr/etc/npmignore","npm_execpath":"/usr/lib/node_modules/npm/bin/npm-cli.js","DYLD_LIBRARY_PATH":"/home/howl/torch-cl/install/lib:/home/howl/torch-cl/install/lib:","XDG_DATA_DIRS":"/usr/share/gnome:/home/howl/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share","npm_package_dependencies_react_toggle":"^4.0.1","npm_config_cache_lock_retries":"10","npm_config_searchstaleness":"900","npm_package_dependencies_object_values":"^1.0.4","npm_package_dependencies_prop_types":"^15.5.10","npm_package_dependencies_resolve_url_loader":"^2.2.0","npm_package_dependencies_rimraf":"^2.6.1","npm_config_node_options":"","npm_config_save_prefix":"^","npm_config_scripts_prepend_node_path":"warn-only","npm_package_devDependencies_babel_eslint":"^8.2.1","npm_package_devDependencies_yargs":"^8.0.2","npm_config_group":"1000","npm_config_init_author_email":"","npm_config_searchexclude":"","VTE_VERSION":"5200","npm_package_dependencies_babel_loader":"^7.1.1","npm_package_dependencies_object_fit_images":"^3.2.3","npm_package_devDependencies_eslint_plugin_promise":"^3.7.0","npm_config_git":"git","npm_config_optional":"true","npm_package_dependencies_babel_plugin_transform_decorators_legacy":"^1.3.4","npm_package_dependencies_pg":"^6.4.0","npm_package_dependencies_react":"^16.2.0","npm_package_dependencies_fsevents":"*","npm_config_json":"","INIT_CWD":"/home/howl/oc/mastofe","NODE_ENV":"production"};
-
-
-
-function openSystemCache() {
-  return caches.open('mastodon-system');
-}
-
-function openWebCache() {
-  return caches.open('mastodon-web');
-}
-
-function fetchRoot() {
-  return fetch('/web', { credentials: 'include' });
-}
-
-// Cause a new version of a registered Service Worker to replace an existing one
-// that is already installed, and replace the currently active worker on open pages.
-self.addEventListener('install', function (event) {
-  event.waitUntil(Promise.all([openWebCache(), fetchRoot()]).then(function (_ref) {
-    var cache = _ref[0],
-        root = _ref[1];
-    return cache.put('/web', root);
-  }));
-});
-self.addEventListener('activate', function (event) {
-  event.waitUntil(self.clients.claim());
-});
-self.addEventListener('fetch', function (event) {
-  var url = new URL(event.request.url);
-
-  if (url.pathname.startsWith('/web')) {
-    // we always make /web/login go through
-    if (url.pathname.startsWith('/web/login')) {
-      return;
-    }
-    var asyncResponse = fetchRoot();
-    var asyncCache = openWebCache();
-
-    event.respondWith(asyncResponse.then(async function (response) {
-      // response was redirected - let's actually do the request from the event
-      // and return its response
-      if (response.redirected || response.type === 'opaqueredirect') {
-        return await fetch(event.request);
-      }
-      if (response.ok) {
-        var cache = await asyncCache;
-        await cache.put('/web', response);
-        return response.clone();
-      }
-
-      throw null;
-    }).catch(function () {
-      return asyncCache.then(function (cache) {
-        return cache.match('/web');
-      });
-    }));
-  } else if (url.pathname === '/auth/sign_out') {
-    var _asyncResponse = fetch(event.request);
-    var _asyncCache = openWebCache();
-
-    event.respondWith(_asyncResponse.then(async function (response) {
-      if (response.ok || response.type === 'opaqueredirect') {
-        var cache = await _asyncCache;
-        await cache.delete('/web');
-      }
-
-      return response;
-    }));
-  } else if (process.env.CDN_HOST ? url.host === process.env.CDN_HOST : url.pathname.startsWith('/system/')) {
-    event.respondWith(openSystemCache().then(async function (cache) {
-      var cached = await cache.match(event.request.url);
-
-      if (cached === undefined) {
-        var fetched = await fetch(event.request);
-
-        if (fetched.ok) {
-          await cache.put(event.request.url, fetched.clone());
-        }
-
-        return fetched;
-      }
-
-      return cached;
-    }));
-  }
-});
-
-
-/***/ }),
-/* 2 */
-/***/ (function(module, exports) {
-
-var MAX_NOTIFICATIONS = 5;
-var GROUP_TAG = 'tag';
-
-// Avoid loading intl-messageformat and dealing with locales in the ServiceWorker
-var formatGroupTitle = function formatGroupTitle(message, count) {
-  return message.replace('%{count}', count);
-};
-
-var notify = function notify(options) {
-  return self.registration.getNotifications().then(function (notifications) {
-    if (notifications.length === MAX_NOTIFICATIONS) {
-      // Reached the maximum number of notifications, proceed with grouping
-      var group = {
-        title: formatGroupTitle(options.data.message, notifications.length + 1),
-        body: notifications.sort(function (n1, n2) {
-          return n1.timestamp < n2.timestamp;
-        }).map(function (notification) {
-          return notification.title;
-        }).join('\n'),
-        badge: '/badge.png',
-        icon: '/android-chrome-192x192.png',
-        tag: GROUP_TAG,
-        data: {
-          url: new URL('/web/notifications', self.location).href,
-          count: notifications.length + 1,
-          message: options.data.message
-        }
-      };
-
-      notifications.forEach(function (notification) {
-        return notification.close();
-      });
-
-      return self.registration.showNotification(group.title, group);
-    } else if (notifications.length === 1 && notifications[0].tag === GROUP_TAG) {
-      // Already grouped, proceed with appending the notification to the group
-      var _group = cloneNotification(notifications[0]);
-
-      _group.title = formatGroupTitle(_group.data.message, _group.data.count + 1);
-      _group.body = options.title + '\n' + _group.body;
-      _group.data = Object.assign({}, _group.data, { count: _group.data.count + 1 });
-
-      return self.registration.showNotification(_group.title, _group);
-    }
-
-    return self.registration.showNotification(options.title, options);
-  });
-};
-
-var handlePush = function handlePush(event) {
-  var options = event.data.json();
-
-  options.body = options.data.nsfw || options.data.content;
-  options.dir = options.data.dir;
-  options.image = options.image || undefined; // Null results in a network request (404)
-  options.timestamp = options.timestamp && new Date(options.timestamp);
-
-  var expandAction = options.data.actions.find(function (action) {
-    return action.todo === 'expand';
-  });
-
-  if (expandAction) {
-    options.actions = [expandAction];
-    options.hiddenActions = options.data.actions.filter(function (action) {
-      return action !== expandAction;
-    });
-    options.data.hiddenImage = options.image;
-    options.image = undefined;
-  } else {
-    options.actions = options.data.actions;
-  }
-
-  event.waitUntil(notify(options));
-};
-
-var cloneNotification = function cloneNotification(notification) {
-  var clone = {};
-
-  for (var k in notification) {
-    clone[k] = notification[k];
-  }
-
-  return clone;
-};
-
-var expandNotification = function expandNotification(notification) {
-  var nextNotification = cloneNotification(notification);
-
-  nextNotification.body = notification.data.content;
-  nextNotification.image = notification.data.hiddenImage;
-  nextNotification.actions = notification.data.actions.filter(function (action) {
-    return action.todo !== 'expand';
-  });
-
-  return self.registration.showNotification(nextNotification.title, nextNotification);
-};
-
-var makeRequest = function makeRequest(notification, action) {
-  return fetch(action.action, {
-    headers: {
-      'Authorization': 'Bearer ' + notification.data.access_token,
-      'Content-Type': 'application/json'
-    },
-    method: action.method,
-    credentials: 'include'
-  });
-};
-
-var findBestClient = function findBestClient(clients) {
-  var focusedClient = clients.find(function (client) {
-    return client.focused;
-  });
-  var visibleClient = clients.find(function (client) {
-    return client.visibilityState === 'visible';
-  });
-
-  return focusedClient || visibleClient || clients[0];
-};
-
-var openUrl = function openUrl(url) {
-  return self.clients.matchAll({ type: 'window' }).then(function (clientList) {
-    if (clientList.length !== 0) {
-      var webClients = clientList.filter(function (client) {
-        return (/\/web\//.test(client.url)
-        );
-      });
-
-      if (webClients.length !== 0) {
-        var client = findBestClient(webClients);
-
-        var _ref = new URL(url),
-            pathname = _ref.pathname;
-
-        if (pathname.startsWith('/web/')) {
-          return client.focus().then(function (client) {
-            return client.postMessage({
-              type: 'navigate',
-              path: pathname.slice('/web/'.length - 1)
-            });
-          });
-        }
-      } else if ('navigate' in clientList[0]) {
-        // Chrome 42-48 does not support navigate
-        var _client = findBestClient(clientList);
-
-        return _client.navigate(url).then(function (client) {
-          return client.focus();
-        });
-      }
-    }
-
-    return self.clients.openWindow(url);
-  });
-};
-
-var removeActionFromNotification = function removeActionFromNotification(notification, action) {
-  var actions = notification.actions.filter(function (act) {
-    return act.action !== action.action;
-  });
-  var nextNotification = cloneNotification(notification);
-
-  nextNotification.actions = actions;
-
-  return self.registration.showNotification(nextNotification.title, nextNotification);
-};
-
-var handleNotificationClick = function handleNotificationClick(event) {
-  var reactToNotificationClick = new Promise(function (resolve, reject) {
-    if (event.action) {
-      var action = event.notification.data.actions.find(function (_ref2) {
-        var action = _ref2.action;
-        return action === event.action;
-      });
-
-      if (action.todo === 'expand') {
-        resolve(expandNotification(event.notification));
-      } else if (action.todo === 'request') {
-        resolve(makeRequest(event.notification, action).then(function () {
-          return removeActionFromNotification(event.notification, action);
-        }));
-      } else {
-        reject('Unknown action: ' + action.todo);
-      }
-    } else {
-      event.notification.close();
-      resolve(openUrl(event.notification.data.url));
-    }
-  });
-
-  event.waitUntil(reactToNotificationClick);
-};
-
-self.addEventListener('push', handlePush);
-self.addEventListener('notificationclick', handleNotificationClick);
-
-/***/ })
-/******/ ]);
\ No newline at end of file
+var serviceWorkerOption = {"assets":["/static/img/nsfw.50fd83c.png","/static/js/manifest.e58590e04ca06ebbea1e.js","/static/js/vendor.61fac267296f19262d14.js","/static/js/app.76e23c93f1de5902c4d7.js","/static/css/app.3d3e30a9afb8c41739656f496e8c79e6.css"]};
+        
+        !function(e){function n(r){if(t[r])return t[r].exports;var o=t[r]={exports:{},id:r,loaded:!1};return e[r].call(o.exports,o,o.exports,n),o.loaded=!0,o.exports}var t={};return n.m=e,n.c=t,n.p="/",n(0)}([function(e,n,t){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(){return u.default.getItem("vuex-lz").then(function(e){return e.config.webPushNotifications})}function i(){return clients.matchAll({includeUncontrolled:!0}).then(function(e){return e.filter(function(e){var n=e.type;return"window"===n})})}var a=t(1),u=r(a);self.addEventListener("push",function(e){e.data&&e.waitUntil(o().then(function(n){return n&&i().then(function(n){var t=e.data.json();if(0===n.length)return self.registration.showNotification(t.title,t)})}))}),self.addEventListener("notificationclick",function(e){e.notification.close(),e.waitUntil(i().then(function(e){for(var n=0;n<e.length;n++){var t=e[n];if("/"===t.url&&"focus"in t)return t.focus()}if(clients.openWindow)return clients.openWindow("/")}))})},function(e,n){/*!
+           localForage -- Offline Storage, Improved
+           Version 1.7.3
+           https://localforage.github.io/localForage
+           (c) 2013-2017 Mozilla, Apache License 2.0
+       */
+!function(t){if("object"==typeof n&&"undefined"!=typeof e)e.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var r;r="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,r.localforage=t()}}(function(){return function e(n,t,r){function o(a,u){if(!t[a]){if(!n[a]){var c="function"==typeof require&&require;if(!u&&c)return c(a,!0);if(i)return i(a,!0);var f=new Error("Cannot find module '"+a+"'");throw f.code="MODULE_NOT_FOUND",f}var s=t[a]={exports:{}};n[a][0].call(s.exports,function(e){var t=n[a][1][e];return o(t?t:e)},s,s.exports,e,n,t,r)}return t[a].exports}for(var i="function"==typeof require&&require,a=0;a<r.length;a++)o(r[a]);return o}({1:[function(e,n,t){(function(e){"use strict";function t(){s=!0;for(var e,n,t=l.length;t;){for(n=l,l=[],e=-1;++e<t;)n[e]();t=l.length}s=!1}function r(e){1!==l.push(e)||s||o()}var o,i=e.MutationObserver||e.WebKitMutationObserver;if(i){var a=0,u=new i(t),c=e.document.createTextNode("");u.observe(c,{characterData:!0}),o=function(){c.data=a=++a%2}}else if(e.setImmediate||"undefined"==typeof e.MessageChannel)o="document"in e&&"onreadystatechange"in e.document.createElement("script")?function(){var n=e.document.createElement("script");n.onreadystatechange=function(){t(),n.onreadystatechange=null,n.parentNode.removeChild(n),n=null},e.document.documentElement.appendChild(n)}:function(){setTimeout(t,0)};else{var f=new e.MessageChannel;f.port1.onmessage=t,o=function(){f.port2.postMessage(0)}}var s,l=[];n.exports=r}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],2:[function(e,n,t){"use strict";function r(){}function o(e){if("function"!=typeof e)throw new TypeError("resolver must be a function");this.state=m,this.queue=[],this.outcome=void 0,e!==r&&c(this,e)}function i(e,n,t){this.promise=e,"function"==typeof n&&(this.onFulfilled=n,this.callFulfilled=this.otherCallFulfilled),"function"==typeof t&&(this.onRejected=t,this.callRejected=this.otherCallRejected)}function a(e,n,t){h(function(){var r;try{r=n(t)}catch(n){return y.reject(e,n)}r===e?y.reject(e,new TypeError("Cannot resolve promise with itself")):y.resolve(e,r)})}function u(e){var n=e&&e.then;if(e&&("object"==typeof e||"function"==typeof e)&&"function"==typeof n)return function(){n.apply(e,arguments)}}function c(e,n){function t(n){i||(i=!0,y.reject(e,n))}function r(n){i||(i=!0,y.resolve(e,n))}function o(){n(r,t)}var i=!1,a=f(o);"error"===a.status&&t(a.value)}function f(e,n){var t={};try{t.value=e(n),t.status="success"}catch(e){t.status="error",t.value=e}return t}function s(e){return e instanceof this?e:y.resolve(new this(r),e)}function l(e){var n=new this(r);return y.reject(n,e)}function d(e){function n(e,n){function r(e){a[n]=e,++u!==o||i||(i=!0,y.resolve(f,a))}t.resolve(e).then(r,function(e){i||(i=!0,y.reject(f,e))})}var t=this;if("[object Array]"!==Object.prototype.toString.call(e))return this.reject(new TypeError("must be an array"));var o=e.length,i=!1;if(!o)return this.resolve([]);for(var a=new Array(o),u=0,c=-1,f=new this(r);++c<o;)n(e[c],c);return f}function v(e){function n(e){t.resolve(e).then(function(e){i||(i=!0,y.resolve(u,e))},function(e){i||(i=!0,y.reject(u,e))})}var t=this;if("[object Array]"!==Object.prototype.toString.call(e))return this.reject(new TypeError("must be an array"));var o=e.length,i=!1;if(!o)return this.resolve([]);for(var a=-1,u=new this(r);++a<o;)n(e[a]);return u}var h=e(1),y={},p=["REJECTED"],b=["FULFILLED"],m=["PENDING"];n.exports=o,o.prototype.catch=function(e){return this.then(null,e)},o.prototype.then=function(e,n){if("function"!=typeof e&&this.state===b||"function"!=typeof n&&this.state===p)return this;var t=new this.constructor(r);if(this.state!==m){var o=this.state===b?e:n;a(t,o,this.outcome)}else this.queue.push(new i(t,e,n));return t},i.prototype.callFulfilled=function(e){y.resolve(this.promise,e)},i.prototype.otherCallFulfilled=function(e){a(this.promise,this.onFulfilled,e)},i.prototype.callRejected=function(e){y.reject(this.promise,e)},i.prototype.otherCallRejected=function(e){a(this.promise,this.onRejected,e)},y.resolve=function(e,n){var t=f(u,n);if("error"===t.status)return y.reject(e,t.value);var r=t.value;if(r)c(e,r);else{e.state=b,e.outcome=n;for(var o=-1,i=e.queue.length;++o<i;)e.queue[o].callFulfilled(n)}return e},y.reject=function(e,n){e.state=p,e.outcome=n;for(var t=-1,r=e.queue.length;++t<r;)e.queue[t].callRejected(n);return e},o.resolve=s,o.reject=l,o.all=d,o.race=v},{1:1}],3:[function(e,n,t){(function(n){"use strict";"function"!=typeof n.Promise&&(n.Promise=e(2))}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{2:2}],4:[function(e,n,t){"use strict";function r(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}function o(){try{if("undefined"!=typeof indexedDB)return indexedDB;if("undefined"!=typeof webkitIndexedDB)return webkitIndexedDB;if("undefined"!=typeof mozIndexedDB)return mozIndexedDB;if("undefined"!=typeof OIndexedDB)return OIndexedDB;if("undefined"!=typeof msIndexedDB)return msIndexedDB}catch(e){return}}function i(){try{if(!_e)return!1;var e="undefined"!=typeof openDatabase&&/(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent)&&!/Chrome/.test(navigator.userAgent)&&!/BlackBerry/.test(navigator.platform),n="function"==typeof fetch&&fetch.toString().indexOf("[native code")!==-1;return(!e||n)&&"undefined"!=typeof indexedDB&&"undefined"!=typeof IDBKeyRange}catch(e){return!1}}function a(e,n){e=e||[],n=n||{};try{return new Blob(e,n)}catch(i){if("TypeError"!==i.name)throw i;for(var t="undefined"!=typeof BlobBuilder?BlobBuilder:"undefined"!=typeof MSBlobBuilder?MSBlobBuilder:"undefined"!=typeof MozBlobBuilder?MozBlobBuilder:WebKitBlobBuilder,r=new t,o=0;o<e.length;o+=1)r.append(e[o]);return r.getBlob(n.type)}}function u(e,n){n&&e.then(function(e){n(null,e)},function(e){n(e)})}function c(e,n,t){"function"==typeof n&&e.then(n),"function"==typeof t&&e.catch(t)}function f(e){return"string"!=typeof e&&(console.warn(e+" used as a key, but it is not a string."),e=String(e)),e}function s(){if(arguments.length&&"function"==typeof arguments[arguments.length-1])return arguments[arguments.length-1]}function l(e){for(var n=e.length,t=new ArrayBuffer(n),r=new Uint8Array(t),o=0;o<n;o++)r[o]=e.charCodeAt(o);return t}function d(e){return new we(function(n){var t=e.transaction(Ie,Ae),r=a([""]);t.objectStore(Ie).put(r,"key"),t.onabort=function(e){e.preventDefault(),e.stopPropagation(),n(!1)},t.oncomplete=function(){var e=navigator.userAgent.match(/Chrome\/(\d+)/),t=navigator.userAgent.match(/Edge\//);n(t||!e||parseInt(e[1],10)>=43)}}).catch(function(){return!1})}function v(e){return"boolean"==typeof Se?we.resolve(Se):d(e).then(function(e){return Se=e})}function h(e){var n=Ee[e.name],t={};t.promise=new we(function(e,n){t.resolve=e,t.reject=n}),n.deferredOperations.push(t),n.dbReady?n.dbReady=n.dbReady.then(function(){return t.promise}):n.dbReady=t.promise}function y(e){var n=Ee[e.name],t=n.deferredOperations.pop();if(t)return t.resolve(),t.promise}function p(e,n){var t=Ee[e.name],r=t.deferredOperations.pop();if(r)return r.reject(n),r.promise}function b(e,n){return new we(function(t,r){if(Ee[e.name]=Ee[e.name]||A(),e.db){if(!n)return t(e.db);h(e),e.db.close()}var o=[e.name];n&&o.push(e.version);var i=_e.open.apply(_e,o);n&&(i.onupgradeneeded=function(n){var t=i.result;try{t.createObjectStore(e.storeName),n.oldVersion<=1&&t.createObjectStore(Ie)}catch(t){if("ConstraintError"!==t.name)throw t;console.warn('The database "'+e.name+'" has been upgraded from version '+n.oldVersion+" to version "+n.newVersion+', but the storage "'+e.storeName+'" already exists.')}}),i.onerror=function(e){e.preventDefault(),r(i.error)},i.onsuccess=function(){t(i.result),y(e)}})}function m(e){return b(e,!1)}function g(e){return b(e,!0)}function _(e,n){if(!e.db)return!0;var t=!e.db.objectStoreNames.contains(e.storeName),r=e.version<e.db.version,o=e.version>e.db.version;if(r&&(e.version!==n&&console.warn('The database "'+e.name+"\" can't be downgraded from version "+e.db.version+" to version "+e.version+"."),e.version=e.db.version),o||t){if(t){var i=e.db.version+1;i>e.version&&(e.version=i)}return!0}return!1}function w(e){return new we(function(n,t){var r=new FileReader;r.onerror=t,r.onloadend=function(t){var r=btoa(t.target.result||"");n({__local_forage_encoded_blob:!0,data:r,type:e.type})},r.readAsBinaryString(e)})}function I(e){var n=l(atob(e.data));return a([n],{type:e.type})}function S(e){return e&&e.__local_forage_encoded_blob}function E(e){var n=this,t=n._initReady().then(function(){var e=Ee[n._dbInfo.name];if(e&&e.dbReady)return e.dbReady});return c(t,e,e),t}function N(e){h(e);for(var n=Ee[e.name],t=n.forages,r=0;r<t.length;r++){var o=t[r];o._dbInfo.db&&(o._dbInfo.db.close(),o._dbInfo.db=null)}return e.db=null,m(e).then(function(n){return e.db=n,_(e)?g(e):n}).then(function(r){e.db=n.db=r;for(var o=0;o<t.length;o++)t[o]._dbInfo.db=r}).catch(function(n){throw p(e,n),n})}function j(e,n,t,r){void 0===r&&(r=1);try{var o=e.db.transaction(e.storeName,n);t(null,o)}catch(o){if(r>0&&(!e.db||"InvalidStateError"===o.name||"NotFoundError"===o.name))return we.resolve().then(function(){if(!e.db||"NotFoundError"===o.name&&!e.db.objectStoreNames.contains(e.storeName)&&e.version<=e.db.version)return e.db&&(e.version=e.db.version+1),g(e)}).then(function(){return N(e).then(function(){j(e,n,t,r-1)})}).catch(t);t(o)}}function A(){return{forages:[],db:null,dbReady:null,deferredOperations:[]}}function R(e){function n(){return we.resolve()}var t=this,r={db:null};if(e)for(var o in e)r[o]=e[o];var i=Ee[r.name];i||(i=A(),Ee[r.name]=i),i.forages.push(t),t._initReady||(t._initReady=t.ready,t.ready=E);for(var a=[],u=0;u<i.forages.length;u++){var c=i.forages[u];c!==t&&a.push(c._initReady().catch(n))}var f=i.forages.slice(0);return we.all(a).then(function(){return r.db=i.db,m(r)}).then(function(e){return r.db=e,_(r,t._defaultConfig.version)?g(r):e}).then(function(e){r.db=i.db=e,t._dbInfo=r;for(var n=0;n<f.length;n++){var o=f[n];o!==t&&(o._dbInfo.db=r.db,o._dbInfo.version=r.version)}})}function O(e,n){var t=this;e=f(e);var r=new we(function(n,r){t.ready().then(function(){j(t._dbInfo,je,function(o,i){if(o)return r(o);try{var a=i.objectStore(t._dbInfo.storeName),u=a.get(e);u.onsuccess=function(){var e=u.result;void 0===e&&(e=null),S(e)&&(e=I(e)),n(e)},u.onerror=function(){r(u.error)}}catch(e){r(e)}})}).catch(r)});return u(r,n),r}function x(e,n){var t=this,r=new we(function(n,r){t.ready().then(function(){j(t._dbInfo,je,function(o,i){if(o)return r(o);try{var a=i.objectStore(t._dbInfo.storeName),u=a.openCursor(),c=1;u.onsuccess=function(){var t=u.result;if(t){var r=t.value;S(r)&&(r=I(r));var o=e(r,t.key,c++);void 0!==o?n(o):t.continue()}else n()},u.onerror=function(){r(u.error)}}catch(e){r(e)}})}).catch(r)});return u(r,n),r}function D(e,n,t){var r=this;e=f(e);var o=new we(function(t,o){var i;r.ready().then(function(){return i=r._dbInfo,"[object Blob]"===Ne.call(n)?v(i.db).then(function(e){return e?n:w(n)}):n}).then(function(n){j(r._dbInfo,Ae,function(i,a){if(i)return o(i);try{var u=a.objectStore(r._dbInfo.storeName);null===n&&(n=void 0);var c=u.put(n,e);a.oncomplete=function(){void 0===n&&(n=null),t(n)},a.onabort=a.onerror=function(){var e=c.error?c.error:c.transaction.error;o(e)}}catch(e){o(e)}})}).catch(o)});return u(o,t),o}function B(e,n){var t=this;e=f(e);var r=new we(function(n,r){t.ready().then(function(){j(t._dbInfo,Ae,function(o,i){if(o)return r(o);try{var a=i.objectStore(t._dbInfo.storeName),u=a.delete(e);i.oncomplete=function(){n()},i.onerror=function(){r(u.error)},i.onabort=function(){var e=u.error?u.error:u.transaction.error;r(e)}}catch(e){r(e)}})}).catch(r)});return u(r,n),r}function k(e){var n=this,t=new we(function(e,t){n.ready().then(function(){j(n._dbInfo,Ae,function(r,o){if(r)return t(r);try{var i=o.objectStore(n._dbInfo.storeName),a=i.clear();o.oncomplete=function(){e()},o.onabort=o.onerror=function(){var e=a.error?a.error:a.transaction.error;t(e)}}catch(e){t(e)}})}).catch(t)});return u(t,e),t}function C(e){var n=this,t=new we(function(e,t){n.ready().then(function(){j(n._dbInfo,je,function(r,o){if(r)return t(r);try{var i=o.objectStore(n._dbInfo.storeName),a=i.count();a.onsuccess=function(){e(a.result)},a.onerror=function(){t(a.error)}}catch(e){t(e)}})}).catch(t)});return u(t,e),t}function T(e,n){var t=this,r=new we(function(n,r){return e<0?void n(null):void t.ready().then(function(){j(t._dbInfo,je,function(o,i){if(o)return r(o);try{var a=i.objectStore(t._dbInfo.storeName),u=!1,c=a.openCursor();c.onsuccess=function(){var t=c.result;return t?void(0===e?n(t.key):u?n(t.key):(u=!0,t.advance(e))):void n(null)},c.onerror=function(){r(c.error)}}catch(e){r(e)}})}).catch(r)});return u(r,n),r}function F(e){var n=this,t=new we(function(e,t){n.ready().then(function(){j(n._dbInfo,je,function(r,o){if(r)return t(r);try{var i=o.objectStore(n._dbInfo.storeName),a=i.openCursor(),u=[];a.onsuccess=function(){var n=a.result;return n?(u.push(n.key),void n.continue()):void e(u)},a.onerror=function(){t(a.error)}}catch(e){t(e)}})}).catch(t)});return u(t,e),t}function L(e,n){n=s.apply(this,arguments);var t=this.config();e="function"!=typeof e&&e||{},e.name||(e.name=e.name||t.name,e.storeName=e.storeName||t.storeName);var r,o=this;if(e.name){var i=e.name===t.name&&o._dbInfo.db,a=i?we.resolve(o._dbInfo.db):m(e).then(function(n){var t=Ee[e.name],r=t.forages;t.db=n;for(var o=0;o<r.length;o++)r[o]._dbInfo.db=n;return n});r=e.storeName?a.then(function(n){if(n.objectStoreNames.contains(e.storeName)){var t=n.version+1;h(e);var r=Ee[e.name],o=r.forages;n.close();for(var i=0;i<o.length;i++){var a=o[i];a._dbInfo.db=null,a._dbInfo.version=t}var u=new we(function(n,r){var o=_e.open(e.name,t);o.onerror=function(e){var n=o.result;n.close(),r(e)},o.onupgradeneeded=function(){var n=o.result;n.deleteObjectStore(e.storeName)},o.onsuccess=function(){var e=o.result;e.close(),n(e)}});return u.then(function(e){r.db=e;for(var n=0;n<o.length;n++){var t=o[n];t._dbInfo.db=e,y(t._dbInfo)}}).catch(function(n){throw(p(e,n)||we.resolve()).catch(function(){}),n})}}):a.then(function(n){h(e);var t=Ee[e.name],r=t.forages;n.close();for(var o=0;o<r.length;o++){var i=r[o];i._dbInfo.db=null}var a=new we(function(n,t){var r=_e.deleteDatabase(e.name);r.onerror=r.onblocked=function(e){var n=r.result;n&&n.close(),t(e)},r.onsuccess=function(){var e=r.result;e&&e.close(),n(e)}});return a.then(function(e){t.db=e;for(var n=0;n<r.length;n++){var o=r[n];y(o._dbInfo)}}).catch(function(n){throw(p(e,n)||we.resolve()).catch(function(){}),n})})}else r=we.reject("Invalid arguments");return u(r,n),r}function M(){return"function"==typeof openDatabase}function z(e){var n,t,r,o,i,a=.75*e.length,u=e.length,c=0;"="===e[e.length-1]&&(a--,"="===e[e.length-2]&&a--);var f=new ArrayBuffer(a),s=new Uint8Array(f);for(n=0;n<u;n+=4)t=Oe.indexOf(e[n]),r=Oe.indexOf(e[n+1]),o=Oe.indexOf(e[n+2]),i=Oe.indexOf(e[n+3]),s[c++]=t<<2|r>>4,s[c++]=(15&r)<<4|o>>2,s[c++]=(3&o)<<6|63&i;return f}function P(e){var n,t=new Uint8Array(e),r="";for(n=0;n<t.length;n+=3)r+=Oe[t[n]>>2],r+=Oe[(3&t[n])<<4|t[n+1]>>4],r+=Oe[(15&t[n+1])<<2|t[n+2]>>6],r+=Oe[63&t[n+2]];return t.length%3===2?r=r.substring(0,r.length-1)+"=":t.length%3===1&&(r=r.substring(0,r.length-2)+"=="),r}function U(e,n){var t="";if(e&&(t=Ke.call(e)),e&&("[object ArrayBuffer]"===t||e.buffer&&"[object ArrayBuffer]"===Ke.call(e.buffer))){var r,o=Be;e instanceof ArrayBuffer?(r=e,o+=Ce):(r=e.buffer,"[object Int8Array]"===t?o+=Fe:"[object Uint8Array]"===t?o+=Le:"[object Uint8ClampedArray]"===t?o+=Me:"[object Int16Array]"===t?o+=ze:"[object Uint16Array]"===t?o+=Ue:"[object Int32Array]"===t?o+=Pe:"[object Uint32Array]"===t?o+=qe:"[object Float32Array]"===t?o+=We:"[object Float64Array]"===t?o+=He:n(new Error("Failed to get type for BinaryArray"))),n(o+P(r))}else if("[object Blob]"===t){var i=new FileReader;i.onload=function(){var t=xe+e.type+"~"+P(this.result);n(Be+Te+t)},i.readAsArrayBuffer(e)}else try{n(JSON.stringify(e))}catch(t){console.error("Couldn't convert value into a JSON string: ",e),n(null,t)}}function q(e){if(e.substring(0,ke)!==Be)return JSON.parse(e);var n,t=e.substring(Qe),r=e.substring(ke,Qe);if(r===Te&&De.test(t)){var o=t.match(De);n=o[1],t=t.substring(o[0].length)}var i=z(t);switch(r){case Ce:return i;case Te:return a([i],{type:n});case Fe:return new Int8Array(i);case Le:return new Uint8Array(i);case Me:return new Uint8ClampedArray(i);case ze:return new Int16Array(i);case Ue:return new Uint16Array(i);case Pe:return new Int32Array(i);case qe:return new Uint32Array(i);case We:return new Float32Array(i);case He:return new Float64Array(i);default:throw new Error("Unkown type: "+r)}}function W(e,n,t,r){e.executeSql("CREATE TABLE IF NOT EXISTS "+n.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],t,r)}function H(e){var n=this,t={db:null};if(e)for(var r in e)t[r]="string"!=typeof e[r]?e[r].toString():e[r];var o=new we(function(e,r){try{t.db=openDatabase(t.name,String(t.version),t.description,t.size)}catch(e){return r(e)}t.db.transaction(function(o){W(o,t,function(){n._dbInfo=t,e()},function(e,n){r(n)})},r)});return t.serializer=Xe,o}function Q(e,n,t,r,o,i){e.executeSql(t,r,o,function(e,a){a.code===a.SYNTAX_ERR?e.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[n.storeName],function(e,u){u.rows.length?i(e,a):W(e,n,function(){e.executeSql(t,r,o,i)},i)},i):i(e,a)},i)}function K(e,n){var t=this;e=f(e);var r=new we(function(n,r){t.ready().then(function(){var o=t._dbInfo;o.db.transaction(function(t){Q(t,o,"SELECT * FROM "+o.storeName+" WHERE key = ? LIMIT 1",[e],function(e,t){var r=t.rows.length?t.rows.item(0).value:null;r&&(r=o.serializer.deserialize(r)),n(r)},function(e,n){r(n)})})}).catch(r)});return u(r,n),r}function X(e,n){var t=this,r=new we(function(n,r){t.ready().then(function(){var o=t._dbInfo;o.db.transaction(function(t){Q(t,o,"SELECT * FROM "+o.storeName,[],function(t,r){for(var i=r.rows,a=i.length,u=0;u<a;u++){var c=i.item(u),f=c.value;if(f&&(f=o.serializer.deserialize(f)),f=e(f,c.key,u+1),void 0!==f)return void n(f)}n()},function(e,n){r(n)})})}).catch(r)});return u(r,n),r}function G(e,n,t,r){var o=this;e=f(e);var i=new we(function(i,a){o.ready().then(function(){void 0===n&&(n=null);var u=n,c=o._dbInfo;c.serializer.serialize(n,function(n,f){f?a(f):c.db.transaction(function(t){Q(t,c,"INSERT OR REPLACE INTO "+c.storeName+" (key, value) VALUES (?, ?)",[e,n],function(){i(u)},function(e,n){a(n)})},function(n){if(n.code===n.QUOTA_ERR){if(r>0)return void i(G.apply(o,[e,u,t,r-1]));a(n)}})})}).catch(a)});return u(i,t),i}function J(e,n,t){return G.apply(this,[e,n,t,1])}function V(e,n){var t=this;e=f(e);var r=new we(function(n,r){t.ready().then(function(){var o=t._dbInfo;o.db.transaction(function(t){Q(t,o,"DELETE FROM "+o.storeName+" WHERE key = ?",[e],function(){n()},function(e,n){r(n)})})}).catch(r)});return u(r,n),r}function Y(e){var n=this,t=new we(function(e,t){n.ready().then(function(){var r=n._dbInfo;r.db.transaction(function(n){Q(n,r,"DELETE FROM "+r.storeName,[],function(){e()},function(e,n){t(n)})})}).catch(t)});return u(t,e),t}function Z(e){var n=this,t=new we(function(e,t){n.ready().then(function(){var r=n._dbInfo;r.db.transaction(function(n){Q(n,r,"SELECT COUNT(key) as c FROM "+r.storeName,[],function(n,t){var r=t.rows.item(0).c;e(r)},function(e,n){t(n)})})}).catch(t)});return u(t,e),t}function $(e,n){var t=this,r=new we(function(n,r){t.ready().then(function(){var o=t._dbInfo;o.db.transaction(function(t){Q(t,o,"SELECT key FROM "+o.storeName+" WHERE id = ? LIMIT 1",[e+1],function(e,t){var r=t.rows.length?t.rows.item(0).key:null;n(r)},function(e,n){r(n)})})}).catch(r)});return u(r,n),r}function ee(e){var n=this,t=new we(function(e,t){n.ready().then(function(){var r=n._dbInfo;r.db.transaction(function(n){Q(n,r,"SELECT key FROM "+r.storeName,[],function(n,t){for(var r=[],o=0;o<t.rows.length;o++)r.push(t.rows.item(o).key);e(r)},function(e,n){t(n)})})}).catch(t)});return u(t,e),t}function ne(e){return new we(function(n,t){e.transaction(function(r){r.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name <> '__WebKitDatabaseInfoTable__'",[],function(t,r){for(var o=[],i=0;i<r.rows.length;i++)o.push(r.rows.item(i).name);n({db:e,storeNames:o})},function(e,n){t(n)})},function(e){t(e)})})}function te(e,n){n=s.apply(this,arguments);var t=this.config();e="function"!=typeof e&&e||{},e.name||(e.name=e.name||t.name,e.storeName=e.storeName||t.storeName);var r,o=this;return r=e.name?new we(function(n){var r;r=e.name===t.name?o._dbInfo.db:openDatabase(e.name,"","",0),n(e.storeName?{db:r,storeNames:[e.storeName]}:ne(r))}).then(function(e){return new we(function(n,t){e.db.transaction(function(r){function o(e){return new we(function(n,t){r.executeSql("DROP TABLE IF EXISTS "+e,[],function(){n()},function(e,n){t(n)})})}for(var i=[],a=0,u=e.storeNames.length;a<u;a++)i.push(o(e.storeNames[a]));we.all(i).then(function(){n()}).catch(function(e){t(e)})},function(e){t(e)})})}):we.reject("Invalid arguments"),u(r,n),r}function re(){try{return"undefined"!=typeof localStorage&&"setItem"in localStorage&&!!localStorage.setItem}catch(e){return!1}}function oe(e,n){var t=e.name+"/";return e.storeName!==n.storeName&&(t+=e.storeName+"/"),t}function ie(){var e="_localforage_support_test";try{return localStorage.setItem(e,!0),localStorage.removeItem(e),!1}catch(e){return!0}}function ae(){return!ie()||localStorage.length>0}function ue(e){var n=this,t={};if(e)for(var r in e)t[r]=e[r];return t.keyPrefix=oe(e,n._defaultConfig),ae()?(n._dbInfo=t,t.serializer=Xe,we.resolve()):we.reject()}function ce(e){var n=this,t=n.ready().then(function(){for(var e=n._dbInfo.keyPrefix,t=localStorage.length-1;t>=0;t--){var r=localStorage.key(t);0===r.indexOf(e)&&localStorage.removeItem(r)}});return u(t,e),t}function fe(e,n){var t=this;e=f(e);var r=t.ready().then(function(){var n=t._dbInfo,r=localStorage.getItem(n.keyPrefix+e);return r&&(r=n.serializer.deserialize(r)),r});return u(r,n),r}function se(e,n){var t=this,r=t.ready().then(function(){for(var n=t._dbInfo,r=n.keyPrefix,o=r.length,i=localStorage.length,a=1,u=0;u<i;u++){var c=localStorage.key(u);if(0===c.indexOf(r)){var f=localStorage.getItem(c);if(f&&(f=n.serializer.deserialize(f)),f=e(f,c.substring(o),a++),void 0!==f)return f}}});return u(r,n),r}function le(e,n){var t=this,r=t.ready().then(function(){var n,r=t._dbInfo;try{n=localStorage.key(e)}catch(e){n=null}return n&&(n=n.substring(r.keyPrefix.length)),n});return u(r,n),r}function de(e){var n=this,t=n.ready().then(function(){for(var e=n._dbInfo,t=localStorage.length,r=[],o=0;o<t;o++){var i=localStorage.key(o);0===i.indexOf(e.keyPrefix)&&r.push(i.substring(e.keyPrefix.length))}return r});return u(t,e),t}function ve(e){var n=this,t=n.keys().then(function(e){return e.length});return u(t,e),t}function he(e,n){var t=this;e=f(e);var r=t.ready().then(function(){var n=t._dbInfo;localStorage.removeItem(n.keyPrefix+e)});return u(r,n),r}function ye(e,n,t){var r=this;e=f(e);var o=r.ready().then(function(){void 0===n&&(n=null);var t=n;return new we(function(o,i){var a=r._dbInfo;a.serializer.serialize(n,function(n,r){if(r)i(r);else try{localStorage.setItem(a.keyPrefix+e,n),o(t)}catch(e){"QuotaExceededError"!==e.name&&"NS_ERROR_DOM_QUOTA_REACHED"!==e.name||i(e),i(e)}})})});return u(o,t),o}function pe(e,n){if(n=s.apply(this,arguments),e="function"!=typeof e&&e||{},!e.name){var t=this.config();e.name=e.name||t.name,e.storeName=e.storeName||t.storeName}var r,o=this;return r=e.name?new we(function(n){n(e.storeName?oe(e,o._defaultConfig):e.name+"/")}).then(function(e){for(var n=localStorage.length-1;n>=0;n--){var t=localStorage.key(n);0===t.indexOf(e)&&localStorage.removeItem(t)}}):we.reject("Invalid arguments"),u(r,n),r}function be(e,n){e[n]=function(){var t=arguments;return e.ready().then(function(){return e[n].apply(e,t)})}}function me(){for(var e=1;e<arguments.length;e++){var n=arguments[e];if(n)for(var t in n)n.hasOwnProperty(t)&&(Ze(n[t])?arguments[0][t]=n[t].slice():arguments[0][t]=n[t])}return arguments[0]}var ge="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_e=o();"undefined"==typeof Promise&&e(3);var we=Promise,Ie="local-forage-detect-blob-support",Se=void 0,Ee={},Ne=Object.prototype.toString,je="readonly",Ae="readwrite",Re={_driver:"asyncStorage",_initStorage:R,_support:i(),iterate:x,getItem:O,setItem:D,removeItem:B,clear:k,length:C,key:T,keys:F,dropInstance:L},Oe="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",xe="~~local_forage_type~",De=/^~~local_forage_type~([^~]+)~/,Be="__lfsc__:",ke=Be.length,Ce="arbf",Te="blob",Fe="si08",Le="ui08",Me="uic8",ze="si16",Pe="si32",Ue="ur16",qe="ui32",We="fl32",He="fl64",Qe=ke+Ce.length,Ke=Object.prototype.toString,Xe={serialize:U,deserialize:q,stringToBuffer:z,bufferToString:P},Ge={_driver:"webSQLStorage",_initStorage:H,_support:M(),iterate:X,getItem:K,setItem:J,removeItem:V,clear:Y,length:Z,key:$,keys:ee,dropInstance:te},Je={_driver:"localStorageWrapper",_initStorage:ue,_support:re(),iterate:se,getItem:fe,setItem:ye,removeItem:he,clear:ce,length:ve,key:le,keys:de,dropInstance:pe},Ve=function(e,n){return e===n||"number"==typeof e&&"number"==typeof n&&isNaN(e)&&isNaN(n)},Ye=function(e,n){for(var t=e.length,r=0;r<t;){if(Ve(e[r],n))return!0;r++}return!1},Ze=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},$e={},en={},nn={INDEXEDDB:Re,WEBSQL:Ge,LOCALSTORAGE:Je},tn=[nn.INDEXEDDB._driver,nn.WEBSQL._driver,nn.LOCALSTORAGE._driver],rn=["dropInstance"],on=["clear","getItem","iterate","key","keys","length","removeItem","setItem"].concat(rn),an={description:"",driver:tn.slice(),name:"localforage",size:4980736,storeName:"keyvaluepairs",version:1},un=function(){function e(n){r(this,e);for(var t in nn)if(nn.hasOwnProperty(t)){var o=nn[t],i=o._driver;this[t]=i,$e[i]||this.defineDriver(o)}this._defaultConfig=me({},an),this._config=me({},this._defaultConfig,n),this._driverSet=null,this._initDriver=null,this._ready=!1,this._dbInfo=null,this._wrapLibraryMethodsWithReady(),this.setDriver(this._config.driver).catch(function(){})}return e.prototype.config=function(e){if("object"===("undefined"==typeof e?"undefined":ge(e))){if(this._ready)return new Error("Can't call config() after localforage has been used.");for(var n in e){if("storeName"===n&&(e[n]=e[n].replace(/\W/g,"_")),"version"===n&&"number"!=typeof e[n])return new Error("Database version must be a number.");this._config[n]=e[n]}return!("driver"in e&&e.driver)||this.setDriver(this._config.driver)}return"string"==typeof e?this._config[e]:this._config},e.prototype.defineDriver=function(e,n,t){var r=new we(function(n,t){try{var r=e._driver,o=new Error("Custom driver not compliant; see https://mozilla.github.io/localForage/#definedriver");if(!e._driver)return void t(o);for(var i=on.concat("_initStorage"),a=0,c=i.length;a<c;a++){var f=i[a],s=!Ye(rn,f);if((s||e[f])&&"function"!=typeof e[f])return void t(o)}var l=function(){for(var n=function(e){return function(){var n=new Error("Method "+e+" is not implemented by the current driver"),t=we.reject(n);return u(t,arguments[arguments.length-1]),t}},t=0,r=rn.length;t<r;t++){var o=rn[t];e[o]||(e[o]=n(o))}};l();var d=function(t){$e[r]&&console.info("Redefining LocalForage driver: "+r),$e[r]=e,en[r]=t,n()};"_support"in e?e._support&&"function"==typeof e._support?e._support().then(d,t):d(!!e._support):d(!0)}catch(e){t(e)}});return c(r,n,t),r},e.prototype.driver=function(){return this._driver||null},e.prototype.getDriver=function(e,n,t){var r=$e[e]?we.resolve($e[e]):we.reject(new Error("Driver not found."));return c(r,n,t),r},e.prototype.getSerializer=function(e){var n=we.resolve(Xe);return c(n,e),n},e.prototype.ready=function(e){var n=this,t=n._driverSet.then(function(){return null===n._ready&&(n._ready=n._initDriver()),n._ready});return c(t,e,e),t},e.prototype.setDriver=function(e,n,t){function r(){a._config.driver=a.driver()}function o(e){return a._extend(e),r(),a._ready=a._initStorage(a._config),a._ready}function i(e){return function(){function n(){for(;t<e.length;){var i=e[t];return t++,a._dbInfo=null,a._ready=null,a.getDriver(i).then(o).catch(n)}r();var u=new Error("No available storage method found.");return a._driverSet=we.reject(u),a._driverSet}var t=0;return n()}}var a=this;Ze(e)||(e=[e]);var u=this._getSupportedDrivers(e),f=null!==this._driverSet?this._driverSet.catch(function(){return we.resolve()}):we.resolve();return this._driverSet=f.then(function(){var e=u[0];return a._dbInfo=null,a._ready=null,a.getDriver(e).then(function(e){a._driver=e._driver,r(),a._wrapLibraryMethodsWithReady(),a._initDriver=i(u)})}).catch(function(){r();var e=new Error("No available storage method found.");return a._driverSet=we.reject(e),a._driverSet}),c(this._driverSet,n,t),this._driverSet},e.prototype.supports=function(e){return!!en[e]},e.prototype._extend=function(e){me(this,e)},e.prototype._getSupportedDrivers=function(e){for(var n=[],t=0,r=e.length;t<r;t++){var o=e[t];this.supports(o)&&n.push(o)}return n},e.prototype._wrapLibraryMethodsWithReady=function(){for(var e=0,n=on.length;e<n;e++)be(this,on[e])},e.prototype.createInstance=function(n){return new e(n)},e}(),cn=new un;n.exports=cn},{3:3}]},{},[4])(4)})}]);
+//# sourceMappingURL=sw.js.map
\ No newline at end of file