{"version":3,"sources":["webpack:///webpack/bootstrap 705ea0161f61fb4d9a92","webpack:///./module/index.js","webpack:///./module/util.js","webpack:///./js/polyfills.js","webpack:///./module/Cache.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","_util","setDurationIcons","codePointLookup","Array","fill","map","codePoint","index","String","fromCodePoint","timeItems","window","document","querySelectorAll","time","duration","exec","getAttribute","splice","value","reduceRight","result","source","Number","parseInt","durationSeconds","maxDurationSeconds","reduce","timeItem","Math","max","minDurationSeconds","min","durationSpread","forEach","dataset","durationLabel","round","windowOnHashChange","URL","includes","getElementById","split","HTMLDetailsElement","async","loadDeferredStylesheets","isDocumentLoaded","Promise","all","addEventListener","documentOnLoad","catch","console","error","funcOrArray","self","isArray","func","resolve","reject","setTimeout","undefined","err","checkWebpSupport","cacheValue","Cache","setWebpSupportedClass","isWebpSupported","body","classList","add","true","false","check","image","Image","width","height","Error","src","then","set","copyAttributes","fromElement","toElement","getAttributeNames","attributeName","setAttribute","createDefinedElement","TAG","ATTRIBUTES","TEXT","parent","createElement","defineCustomElement","defineCustomElements","elementClasses","arrayify","fetchAndCache","request","cache","caches","open","CACHE_NAME","cachedResponse","match","CACHE_OPTIONS","response","fetch","clone","status","put","getChildrenAsObject","element","children","length","getNodesAsObject","getCssProperty","computedStyleMap","unparsed","getComputedStyle","getPropertyValue","trim","parsed","freeze","toString","unit","getElement","elementId","elementSelector","querySelector","containerId","parser","DOMParser","loader","parseFromString","textContent","link","head","appendChild","requestAnimationFrame","preload","files","attributes","hrefOrAttributes","fileAttributes","href","preloadedFiles","has","assign","rel","removeCssProperty","attributeStyleMap","delete","style","removeProperty","setAttributes","setCssProperty","setProperty","writeTextToClipboard","text","navigator","clipboard","writeText","textArea","select","execCommand","remove","_Cache","ignoreSearch","readyState","Set","something","slice","Node","ElementClass","supportsCustomElements","customElements","define","supportsRegisterElement","Boolean","registerElement","TAG_NAME","testElementConstructor","constructor","HTMLElement","HTMLUnknownElement","create","nodes","node","id","writable","key","AudioContext","webkitAudioContext","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","msCancelAnimationFrame","oCancelAnimationFrame","webkitCancelRequestAnimationFrame","mozCancelRequestAnimationFrame","msCancelRequestAnimationFrame","oCancelRequestAnimationFrame","CSS","number","percent","hidden","webkitHidden","mozHidden","DOMRect","x","y","this","bottom","left","top","Element","Document","DocumentFragment","append","doc","createTextNode","createDocumentFragment","prepend","insertBefore","firstChild","CharacterData","DocumentType","parentNode","removeChild","replaceWith","currentNode","ownerDocument","replaceChild","previousSibling","mozNamedAttrMap","attribute","indexedDB","webkitIndexedDB","mozIndexedDB","OIndexedDB","msIndexedDB","IDBTransaction","webkitIDBTransaction","OIDBTransaction","msIDBTransaction","MutationObserver","WebKitMutationObserver","webkitRequestAnimationFrame","mozRequestAnimationFrame","msRequestAnimationFrame","oRequestAnimationFrame","padStart","targetLength","padString","repeat","count","string","trimStart","trimLeft","replace","webkitURL","[object Object]","localStorage","getItem","removeItem","setItem"],"mappings":"aACA,IAAAA,KAGA,SAAAC,EAAAC,GAGA,GAAAF,EAAAE,GACA,OAAAF,EAAAE,GAAAC,QAGA,IAAAC,EAAAJ,EAAAE,IACAG,EAAAH,EACAI,GAAA,EACAH,YAUA,OANAI,EAAAL,GAAAM,KAAAJ,EAAAD,QAAAC,IAAAD,QAAAF,GAGAG,EAAAE,GAAA,EAGAF,EAAAD,QAKAF,EAAAQ,EAAAF,EAGAN,EAAAS,EAAAV,EAGAC,EAAAU,EAAA,SAAAR,EAAAS,EAAAC,GACAZ,EAAAa,EAAAX,EAAAS,IACAG,OAAAC,eAAAb,EAAAS,GACAK,cAAA,EACAC,YAAA,EACAC,IAAAN,KAMAZ,EAAAmB,EAAA,SAAAhB,GACA,IAAAS,EAAAT,KAAAiB,WACA,WAA2B,OAAAjB,EAAA,SAC3B,WAAiC,OAAAA,GAEjC,OADAH,EAAAU,EAAAE,EAAA,IAAAA,GACAA,GAIAZ,EAAAa,EAAA,SAAAQ,EAAAC,GAAsD,OAAAR,OAAAS,UAAAC,eAAAjB,KAAAc,EAAAC,IAGtDtB,EAAAyB,EAAA,GAGAzB,IAAA0B,EAAA,kCC5DA,IAAAC,EAAA3B,EAAA,IAEA,iBAYC,SAAS4B,IACR,MACMC,GAAmB,QAAU,IAAIC,MAAM,IAAKC,KAAK,GAAGC,IAAI,CAACC,EAAWC,IAAUC,OAAOC,cADpE,OACmGF,KACpHG,EAAYC,OAAOR,MAAMP,UAAUS,IAAIzB,KAAK+B,OAAOC,SAASC,iBAAiB,6BAA+BC,IACjH,MAAMC,EAAW,0DAA0DC,KAAKF,EAAKG,aAAa,aAAaC,OAAO,EAAG,GAAGb,IAAKc,GAAUA,GAAS,GAAGC,YAAY,CAACC,EAAQF,EAAOZ,EAAOe,KACrLf,EAAQ,IACXc,EAAOd,EAAQ,GAAKe,EAAOf,EAAQ,IAAMI,OAAOY,OAAOC,SAASL,EAAQ,IACxEE,EAAOd,GAASY,EAAQ,IAElBE,IACJ,EAAG,EAAG,IACV,OAASP,OAAMC,WAAUU,gBAA+B,GAAdV,EAAS,GAAU,GAAmB,GAAdA,EAAS,GAAUA,EAAS,MAEzFW,EAAqBhB,EAAUiB,OAAO,CAACD,EAAoBE,IAAajB,OAAOkB,KAAKC,IAAIJ,EAAoBE,EAASH,iBAAkB,GACvIM,EAAqBrB,EAAUiB,OAAO,CAACI,EAAoBH,IAAajB,OAAOkB,KAAKG,IAAID,EAAoBH,EAASH,iBAAkBC,GACvIO,EAAiBP,EAAqBK,EAC5CrB,EAAUwB,QAASN,GAAaA,EAASd,KAAKqB,QAAQC,cAAgBlC,EAAgBS,OAAOkB,KAAKQ,OAAOT,EAASH,gBAAkBM,GAAsBE,EAAiB,MAG5K,SAASK,IACR,IAAK3B,OAAOC,SAAS2B,IAAIC,SAAS,KACjC,OACe7B,OAAOC,SAAS6B,eAAe9B,OAAOC,SAAS2B,IAAIG,MAAM,KAAK,IAErDC,mBAI1B,OAvCAC,iBAGC,OAFA,EAAA5C,EAAA6C,iCACMC,mBACCnC,OAAOoC,QAAQC,KAAI,EAAAhD,EAAA4C,QAEzB3C,EACAqC,EACA,IAAM3B,OAAOsC,iBAAiB,aAAcX,GAAoB,MAgC3DY,IAxCR,GAyCKC,MAAMC,QAAQC,kHCpBHT,MAAT,SAASA,EAAMU,GACrB,GAAIC,KAAKpD,MAAMqD,QAAQF,GACtB,OAAOA,EAAYjD,IAAKoD,GAASb,EAAMa,IACxC,OAAO,IAAIF,KAAKR,QAAQ,CAACW,EAASC,KACjC,IAAMJ,KAAKK,WAAW,IAAMF,EAAQJ,EAAY1E,UAAKiF,IAAa,GAClE,MAAOC,GAAOH,EAAOG,SAGPC,iBAAT,WACN,MACMC,EAAaC,QAAM1E,IADR,mBAEX2E,EAAyBC,GAAoBZ,KAAK3C,SAASwD,KAAKC,UAAUC,KAAOC,KAAM,eAAgBC,MAAO,mBAAqBL,IAEzI,GAAkB,MAAdH,EACHE,EAAsBF,OAClB,CACJ,MAAMS,EAAQ,IAAIlB,KAAKR,QAAQ,CAACW,EAASC,KACxC,MAAMe,EAAQ,IAAInB,KAAKoB,MACvBD,EAAMzB,iBAAiB,QAAUa,GAAQH,EAAOG,IAAM,GACtDY,EAAMzB,iBAAiB,OAAQ,KACV,IAAhByB,EAAME,OAAgC,IAAjBF,EAAMG,OAC9BnB,IAEAC,EAAO,IAAIJ,KAAKuB,MAAM,yDACrB,GACHJ,EAAMK,IAAM,4IAEbN,EAAMO,KAAK,KACVf,QAAMgB,IAnBS,kBAmBK,QACpBf,EAAsB,UACpBf,MAAM,KACRc,QAAMgB,IAtBS,kBAsBK,SACpBf,EAAsB,eAITgB,eAAT,SAAwBC,EAAaC,GAAaD,EAAYE,oBAAoBnD,QAASoD,GAAkBF,EAAUG,aAAaD,EAAeH,EAAYlE,aAAaqE,QACnKE,qBAAT,UAA8BC,IAAEA,EAAFC,WAAOA,KAAPC,KAAwBA,GAAoBC,GAAsB,OAAOC,EAAcJ,EAAKC,EAAYE,EAAQD,MACrIE,kBAWAC,wBA0BAC,qBAAT,SAA8BC,GAAkBC,EAASD,GAAgB9D,QAAQ4D,MAalEI,cAAftD,eAA6BuD,GACnC,MAAMC,QAAc7C,KAAK8C,OAAOC,KAAKC,GAC/BC,QAAuBJ,EAAMK,MAAMN,EAASO,GAC5CC,EAAW/D,iBAChB,MAAM+D,QAAiBpD,KAAKqD,MAAMT,EAAQU,SAI1C,OAFIF,EAASG,OAAS,KACrBV,EAAMW,IAAIZ,EAASQ,EAASE,SACtBF,EALS/D,GAMbO,MAAMC,QAAQC,OAElB,OAAImD,GAEGG,KAEQK,oBAAT,SAA6BC,GACnC,IAAKA,EAAQC,WAAaD,EAAQC,SAASC,OAC1C,OACD,OAAOC,EAAiBH,EAAQC,aAKjBG,eAAT,SAAwBJ,EAAStH,GACvC,GAAI,qBAAsBsH,EACzB,OAAOA,EAAQK,mBAAmB/H,IAAII,GACvC,MAAM4H,EAAWhE,KAAKiE,iBAAiBP,GAASQ,iBAAiB9H,GAAU+H,OACrEC,EAAS,gCAAgC3G,KAAKuG,GAEpD,GAAc,MAAVI,EACH,OAAOpE,KAAKpE,OAAOyI,QAASzG,MAAOoG,EAAUM,aAAoBtE,KAAK/C,OAAO+G,KAC3C,IAArBI,EAAO,GAAGR,QAA0C,MAAdQ,EAAO,IAA0BA,EAAO,GAC5F,OAAOpE,KAAKpE,OAAOyI,QAASE,KAAM,SAAU3G,MAAOoC,KAAKhC,OAAOoG,EAAO,IAAKE,aAAoBN,OAEhFQ,WAAT,UAAoBC,UAAEA,EAAFC,gBAAaA,IAAqB,OAAOD,EAAYzE,KAAK3C,SAAS6B,eAAeuF,GAAazE,KAAK3C,SAASsH,cAAcD,MACtIb,qBAGMvE,wBAAfD,eAAuCuF,EAAc,wBAC3D,MAAMC,EAAS,IAAI7E,KAAK8E,UAClBC,EAAS,IAAMF,EAAOG,gBAAgB3H,SAAS6B,eAAe0F,GAAaK,YAAa,aAAa3H,iBAAiB,QAAQqB,QAASuG,GAASlF,KAAK3C,SAAS8H,KAAKC,YAAYF,IAEjLlF,KAAKqF,sBACRrF,KAAKqF,sBAAsB,IAAMN,EAAO1J,UAAKiF,WAEvCf,EACNwF,EAAO1J,UAAKiF,IAEb,OAAO,KAEQgF,QAAT,SAAiBC,KAAYC,MACnCxF,KAAKqF,sBAAsB,IAAM3C,EAAS6C,GAAO5G,QAAS8G,IACzD,MAAMC,EAA8C,iBAArBD,GAAmCE,KAAMF,GAAqBA,EAEzFG,EAAeC,IAAIH,EAAeC,QAEtCrD,EAAc,OAAQtC,KAAKpE,OAAOkK,QAASC,IAAK,WAAaP,EAAYE,GAAiB1F,KAAK3C,SAAS8H,MACxGS,EAAe7E,IAAI2E,EAAeC,aAGpBK,kBAAT,SAA2BtC,EAAStH,GAC1C,GAAI,sBAAuBsH,EAC1B,OAAOA,EAAQuC,kBAAkBC,OAAO9J,GACzCsH,EAAQyC,MAAMC,eAAehK,MAEdiK,kBAIAC,eAAT,SAAwB5C,EAAStH,EAAUwB,GACjD,GAAI,sBAAuB8F,EAC1B,OAAOA,EAAQuC,kBAAkBvE,IAAItF,EAAUwB,GAChD8F,EAAQyC,MAAMI,YAAYnK,EAAU4D,KAAK/C,OAAOW,OAEjC4I,qBAAT,SAA8BC,GACpC,GAAI,cAAerJ,QAAU,cAAe4C,KAAK0G,WAAa,cAAe1G,KAAK0G,UAAUC,UAC3F,OAAO3G,KAAK0G,UAAUC,UAAUC,UAAU5G,KAAK/C,OAAOwJ,IAChD,CACN,MAAMI,EAAW7G,KAAK3C,SAASiF,cAAc,YAM7C,OALAuE,EAASjJ,MAAQoC,KAAK/C,OAAOwJ,GAC7BzG,KAAK3C,SAASwD,KAAKuE,YAAYyB,GAC/BA,EAASC,SACT9G,KAAK3C,SAAS0J,YAAY,QAC1BF,EAASG,SACFhH,KAAKR,QAAQW,aAAQG,KApM9BxF,EAAA,GACA,IAAAmM,EAAAnM,EAAA,GAEA,MAAMkI,EAAa,kBACbG,GAAkB+D,cAAc,GACzB3H,qBAAmB,IAAIS,KAAKR,QAASW,IAChB,YAA7BH,KAAK3C,SAAS8J,WACjBnH,KAAK3C,SAASqC,iBAAiB,mBAAoBS,GAAS,GAE5DA,MAEIyF,EAAiB,IAAI5F,KAAKoH,IAEhC,SAAS1E,EAAS2E,GACjB,GAAyB,iBAAdA,EACV,IAAI,YAAaA,EAChB,OAAOA,EACH,GAAgC,iBAArBA,EAAUzD,OAAqB,CAC9C,MAAM9F,EAASkC,KAAKpD,MAAMP,UAAUiL,MAAMjM,KAAKgM,EAAW,GAE1D,OADAA,EAAU1I,QAAUb,EAAOa,QACpBb,GAET,OAAQuJ,GAwCF,SAAS/E,EAAc7G,EAAM+J,KAAiBnD,EAAoBoE,GACxE,MAAM/C,EAAU1D,KAAK3C,SAASiF,cAAc7G,GAQ5C,OAPA4K,EAAc3C,EAAS8B,QAEVlF,IAATmG,IACH/C,EAAQuB,YAAcjF,KAAK/C,OAAOwJ,IAE/BpE,aAAkBrC,KAAKuH,MAC1BlF,EAAO+C,YAAY1B,GACbA,EAED,SAASnB,EAAoBiF,GACnC,MAAMC,EAAyBzH,KAAK0H,gBAAkB1H,KAAK0H,eAAeC,OACpEC,EAA0B5H,KAAK6H,QAAQ7H,KAAK3C,SAASyK,iBAiB1D9M,EAnBcuH,oBAmBdA,EADGkF,EANJ,SAA+BD,GAC1BxH,KAAK0H,eAAe1L,IAAIwL,EAAaO,WAEzC/H,KAAK0H,eAAeC,OAAOH,EAAaO,SAAUP,IAK1CI,EAfT,SAA+BJ,GAC9B,MAAMQ,EAAyBhI,KAAK3C,SAASiF,cAAckF,EAAaO,UAAUE,YAE9ED,IAA2BhI,KAAKkI,aAAeF,IAA2BhI,KAAKmI,oBAEnFnI,KAAK3C,SAASyK,gBAAgBN,EAAaO,UAAY1L,UAAW2D,KAAKpE,OAAOwM,OAAOZ,EAAanL,cANnG,aAoBAkG,EAAoBiF,GAkDd,SAAS3D,EAAiBwE,GAChC,OAAOrI,KAAKpD,MAAMP,UAAU+B,OAAO/C,KAAKgN,EAAO,CAACvK,EAAQwK,EAAMtL,IAAUgD,KAAKpE,OAAOC,eAAeiC,EAAQwK,EAAKC,IAAMvI,KAAK/C,OAAOD,IAAUjB,YAAY,EAAM6B,MAAO0K,EAAME,UAAU,QA6B/K,SAASnC,EAAc3C,EAAS8B,MACtC,IAAK,MAAMiD,KAAOjD,EACjB9B,EAAQ1B,aAAayG,EAAKjD,EAAWiD,mCCjLlCzI,KAAK0I,eACT1I,KAAK0I,aAAe1I,KAAK2I,oBAErB3I,KAAK4I,uBACT5I,KAAK4I,qBAAuB5I,KAAK6I,4BAA8B7I,KAAK8I,yBAA2B9I,KAAK+I,wBAA0B/I,KAAKgJ,uBAAyBhJ,KAAKiJ,mCAAqCjJ,KAAKkJ,gCAAkClJ,KAAKmJ,+BAAiCnJ,KAAKoJ,8BAEpRpJ,KAAKqJ,MACTrJ,KAAKqJ,QAEDrJ,KAAKqJ,IAAIC,SACbtJ,KAAKqJ,IAAIC,OAAS,SAASA,GAAU,OAAOtJ,KAAKpE,OAAOyI,QAASE,KAAM,SAAU3G,MAAO0L,EAAQhF,aAAoBtE,KAAK/C,OAAOqM,OAE5HtJ,KAAKqJ,IAAIE,UACbvJ,KAAKqJ,IAAIE,QAAU,SAASA,GAAW,OAAOvJ,KAAKpE,OAAOyI,QAASE,KAAM,UAAW3G,MAAO2L,EAASjF,gBAAuBtE,KAAK/C,OAAOsM,eAEpG,IAAzBvJ,KAAK3C,SAASmM,cACkB,IAA/BxJ,KAAK3C,SAASoM,aACxBzJ,KAAKpE,OAAOC,eAAemE,KAAK3C,SAAU,UAAYrB,IAAK,IAAMgE,KAAK3C,SAASoM,oBACpC,IAA5BzJ,KAAK3C,SAASqM,WAC7B1J,KAAKpE,OAAOC,eAAemE,KAAK3C,SAAU,UAAYrB,IAAK,IAAMgE,KAAK3C,SAASqM,aAE5E1J,KAAK2J,UACT3J,KAAK2J,cAA0B1B,YAAY2B,EAAI,EAAGC,EAAI,EAAGxI,EAAQ,EAAGC,EAAS,GAAKtB,KAAKpE,OAAOkK,OAAOgE,MAAQxI,SAAQD,QAAOuI,IAAGC,QAC/H7J,KAAK2J,QAAQtN,UAAU0N,OAAS/J,KAAK2J,QAAQtN,UAAUiF,OAAStB,KAAK2J,QAAQtN,UAAU2N,KAAOhK,KAAK2J,QAAQtN,UAAU4N,IAAMjK,KAAK2J,QAAQtN,UAAUgF,MAAQrB,KAAK2J,QAAQtN,UAAUuN,EAAI5J,KAAK2J,QAAQtN,UAAUwN,EAAI,IAGhN7J,KAAKkK,QAAQ7N,UAAW2D,KAAKmK,SAAS9N,UAAW2D,KAAKoK,iBAAiB/N,WAAWsC,QAAStC,IAEtFA,EAAUgO,SACdhO,EAAUgO,OAAS,YAAYhC,GAASyB,KAAK1E,YAAYiD,EAAMjK,OAAO,CAACkM,EAAKhC,IAASgC,EAAIlF,YAAakD,aAAgBtI,KAAKuH,KAAQe,EAAOtI,KAAK3C,SAASkN,eAAevK,KAAK/C,OAAOqL,KAAStI,KAAK3C,SAASmN,6BAGtMnO,EAAUoO,UACdpO,EAAUoO,QAAU,YAAYpC,GAASyB,KAAKY,aAAarC,EAAMjK,OAAO,CAACkM,EAAKhC,IAASgC,EAAIlF,YAAakD,aAAgBtI,KAAKuH,KAAQe,EAAOtI,KAAK3C,SAASkN,eAAevK,KAAK/C,OAAOqL,KAAStI,KAAK3C,SAASmN,0BAA2BV,KAAKa,iBAE7O3K,KAAKkK,QAAQ7N,UAAW2D,KAAK4K,cAAcvO,UAAW2D,KAAK6K,aAAaxO,WAAWsC,QAAStC,IAEvFA,EAAU2K,SACd3K,EAAU2K,OAAS,WACM,OAApB8C,KAAKgB,YACRhB,KAAKgB,WAAWC,YAAYjB,QAI1BzN,EAAU2O,cACd3O,EAAU2O,YAAc,YAAY3C,GACnC,GAAKyB,KAAKgB,WAAV,CAE0B,IAAjBzC,EAAMzE,QACdkG,KAAKgB,WAAWC,YAAYjB,MAE7B,IAAK,IAAI5O,EAAImN,EAAMzE,OAAS,EAAG1I,GAAK,EAAGA,IAAK,CAC3C,MAAM+P,EAAe5C,EAAMnN,aAAc8E,KAAKuH,KAAQc,EAAMnN,GAAK4O,KAAKoB,cAAcX,eAAevK,KAAK/C,OAAOoL,EAAMnN,KAE3G,IAANA,EACH4O,KAAKgB,WAAWK,aAAaF,EAAanB,MAE1CA,KAAKgB,WAAWJ,aAAaZ,KAAKsB,gBAAiBH,UAIpD,KAAiBjL,KAAKkK,QAAQ7N,YACjC2D,KAAKkK,QAAQ7N,UAAUmJ,WAAaxF,KAAKkK,QAAQ7N,UAAUgP,iBACvDrL,KAAKkK,QAAQ7N,UAAUyF,oBAC3B9B,KAAKkK,QAAQ7N,UAAUyF,kBAAoB,WAAa,OAAO9B,KAAKpD,MAAMP,UAAUS,IAAIzB,KAAKyO,KAAKtE,WAAa8F,GAAcA,EAAU7P,QAEnIuE,KAAKuL,YACTvL,KAAKuL,UAAYvL,KAAKwL,iBAAmBxL,KAAKyL,cAAgBzL,KAAK0L,YAAc1L,KAAK2L,aAElF3L,KAAK4L,iBACT5L,KAAK4L,eAAiB5L,KAAK6L,sBAAwB7L,KAAK8L,iBAAmB9L,KAAK+L,kBAE5E/L,KAAKgM,mBACThM,KAAKgM,iBAAmBhM,KAAKiM,wBAEzBjM,KAAKqF,wBACTrF,KAAKqF,sBAAwBrF,KAAKkM,6BAA+BlM,KAAKmM,0BAA4BnM,KAAKoM,yBAA2BpM,KAAKqM,wBAEnIrM,KAAK/C,OAAOZ,UAAUiQ,WAC1BtM,KAAK/C,OAAOZ,UAAUiQ,SAAW,SAASC,EAAcC,EAAY,KAInE,OAHAD,KAAgC,EAChCC,EAAYxM,KAAK/C,OAAOuP,GAEpB1C,KAAKlG,QAAU2I,GAAqC,IAArBC,EAAU5I,OACrC5D,KAAK/C,OAAO6M,OACpByC,GAAgBzC,KAAKlG,OACd4I,EAAUC,OAAOF,EAAeC,EAAU5I,OAAS,GAAG0D,MAAM,EAAGiF,GAAgBvM,KAAK/C,OAAO6M,SAE/F9J,KAAK/C,OAAOZ,UAAUoQ,SAC1BzM,KAAK/C,OAAOZ,UAAUoQ,OAAS,SAASC,GAGvC,GAFAA,KAAkB,EAEE,IAAhB5C,KAAKlG,QAA0B,IAAV8I,EACxB,MAAO,GACR,IAAI5O,EAAS,GACT6O,EAAS3M,KAAK/C,OAAO6M,MAEzB,IAAK,IAAI5O,EAAIwR,EAAOxR,EAAI,EAAG4C,GAAU6O,EAAQzR,KAC7C,OAAO4C,IAEJkC,KAAK/C,OAAOZ,UAAUuQ,YAC1B5M,KAAK/C,OAAOZ,UAAUuQ,UAAY5M,KAAK/C,OAAOZ,UAAUwQ,UAAY,WAAa,OAAO/C,KAAKgD,QAAQ,OAAQ,MAEzG9M,KAAKhB,MACTgB,KAAKhB,IAAMgB,KAAK+M,gGC1GJrM,EACZsM,WAAWvE,GACV,IAAM,OAAOrL,OAAO6P,aAAaC,QAAQzE,GAAQ,MAAOlI,GAAO,OAAO,KACtE,OAAO,KAERyM,mBAAmBvE,GAClB,OACCzM,QAAe0E,EAAM1E,IAAIyM,GACzB/G,IAAI9D,GAAS8C,EAAMgB,IAAI+G,EAAK7K,KAG9BoP,cAAcvE,GACb,IAAM,OAAOrL,OAAO6P,aAAaE,WAAW1E,GAAQ,MAAOlI,GAAO,QAEnEyM,WAAWvE,EAAK7K,GACf,QAAc0C,IAAV1C,EACHkM,KAAK9C,OAAOyB,QAEZ,IAAMrL,OAAO6P,aAAaG,QAAQ3E,EAAK7K,GAAU,MAAM2C,GAAO,WAlBpDG","file":"js/index.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 705ea0161f61fb4d9a92","\"use strict\";\nimport { async, isDocumentLoaded, loadDeferredStylesheets } from \"./util.js\";\n\n(async function index() {\n\tasync function documentOnLoad() {\n\t\tloadDeferredStylesheets();\n\t\tawait isDocumentLoaded;\n\t\treturn window.Promise.all(async([\n\t\t\t// checkWebpSupport,\n\t\t\tsetDurationIcons,\n\t\t\twindowOnHashChange,\n\t\t\t() => window.addEventListener(\"hashchange\", windowOnHashChange, false)\n\t\t]));\n\t}\n\n\tfunction setDurationIcons() {\n\t\tconst codePointStart = 0x1f550;\n\t\tconst codePointLookup = [\"🕛\", ...(new Array(12)).fill(0).map((codePoint, index) => String.fromCodePoint(codePointStart + index))];\n\t\tconst timeItems = window.Array.prototype.map.call(window.document.querySelectorAll(\"time[data-duration-label]\"), (time) => {\n\t\t\tconst duration = /^P[0-9YMD]*T(?:([0-9]+)H)?(?:([0-9]+)M)?(?:([0-9]+)S)?$/.exec(time.getAttribute(\"datetime\")).splice(1, 3).map((value) => value || 0).reduceRight((result, value, index, source) => {\n\t\t\t\tif (index > 0) {\n\t\t\t\t\tresult[index - 1] = source[index - 1] += window.Number.parseInt(value / 60);\n\t\t\t\t\tresult[index] = value % 60;\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t}, [0, 0, 0]);\n\t\t\treturn { time, duration, durationSeconds: duration[0] * 60 * 60 + duration[1] * 60 + duration[2] };\n\t\t});\n\t\tconst maxDurationSeconds = timeItems.reduce((maxDurationSeconds, timeItem) => window.Math.max(maxDurationSeconds, timeItem.durationSeconds), 0);\n\t\tconst minDurationSeconds = timeItems.reduce((minDurationSeconds, timeItem) => window.Math.min(minDurationSeconds, timeItem.durationSeconds), maxDurationSeconds);\n\t\tconst durationSpread = maxDurationSeconds - minDurationSeconds;\n\t\ttimeItems.forEach((timeItem) => timeItem.time.dataset.durationLabel = codePointLookup[window.Math.round((timeItem.durationSeconds - minDurationSeconds) / durationSpread * 12)]);\n\t}\n\n\tfunction windowOnHashChange() {\n\t\tif (!window.document.URL.includes(\"#\"))\n\t\t\treturn;\n\t\tconst element = window.document.getElementById(window.document.URL.split(\"#\")[1]);\n\n\t\tif (!(element instanceof HTMLDetailsElement))\n\t\t\treturn;\n\t}\n\n\treturn documentOnLoad();\n})().catch(console.error);\n\n\n// WEBPACK FOOTER //\n// ./module/index.js","import \"../js/polyfills.js\";\nimport { Cache } from \"./Cache.js\";\n\nconst CACHE_NAME = \"mlp-one-browser\";\nconst CACHE_OPTIONS = { ignoreSearch: true };\nexport const isDocumentLoaded = new self.Promise((resolve) => {\n\tif (self.document.readyState === \"loading\")\n\t\tself.document.addEventListener(\"DOMContentLoaded\", resolve, false);\n\telse\n\t\tresolve();\n});\nconst preloadedFiles = new self.Set();\n\nfunction arrayify(something) {\n\tif (typeof something === \"object\")\n\t\tif (\"forEach\" in something)\n\t\t\treturn something;\n\t\telse if (typeof something.length === \"number\") {\n\t\t\tconst result = self.Array.prototype.slice.call(something, 0);\n\t\t\tsomething.forEach = result.forEach;\n\t\t\treturn result;\n\t\t}\n\treturn [something];\n}\nexport function async(funcOrArray) {\n\tif (self.Array.isArray(funcOrArray))\n\t\treturn funcOrArray.map((func) => async(func));\n\treturn new self.Promise((resolve, reject) => {\n\t\ttry { self.setTimeout(() => resolve(funcOrArray.call(undefined)), 0); }\n\t\tcatch (err) { reject(err); }\n\t});\n}\nexport function checkWebpSupport() {\n\tconst cacheKey = \"isWebpSupported\";\n\tconst cacheValue = Cache.get(cacheKey);\n\tconst setWebpSupportedClass = (isWebpSupported) => self.document.body.classList.add(({ true: \"webp-support\", false: \"webp-no-support\" })[isWebpSupported]);\n\n\tif (cacheValue != null)\n\t\tsetWebpSupportedClass(cacheValue);\n\telse {\n\t\tconst check = new self.Promise((resolve, reject) => {\n\t\t\tconst image = new self.Image();\n\t\t\timage.addEventListener(\"error\", (err) => reject(err), false);\n\t\t\timage.addEventListener(\"load\", () => {\n\t\t\t\tif (image.width === 1 && image.height === 1)\n\t\t\t\t\tresolve();\n\t\t\t\telse\n\t\t\t\t\treject(new self.Error(\"Loaded WebP does not have the expected dimensions.\"));\n\t\t\t}, false);\n\t\t\timage.src = \"data:image/webp;base64,UklGRkoAAABXRUJQVlA4WAoAAAAQAAAAAAAAAAAAQUxQSAwAAAABBxAR/Q9ERP8DAABWUDggGAAAADABAJ0BKgEAAQADADQlpAADcAD++/1QAA==\";\n\t\t});\n\t\tcheck.then(() => {\n\t\t\tCache.set(cacheKey, \"true\");\n\t\t\tsetWebpSupportedClass(\"true\");\n\t\t}).catch(() => {\n\t\t\tCache.set(cacheKey, \"false\");\n\t\t\tsetWebpSupportedClass(\"false\");\n\t\t});\n\t}\n}\nexport function copyAttributes(fromElement, toElement) { fromElement.getAttributeNames().forEach((attributeName) => toElement.setAttribute(attributeName, fromElement.getAttribute(attributeName))); }\nexport function createDefinedElement({ TAG, ATTRIBUTES = {}, TEXT = undefined }, parent = undefined) { return createElement(TAG, ATTRIBUTES, parent, TEXT); }\nexport function createElement(name, attributes = {}, parent = undefined, text = undefined) {\n\tconst element = self.document.createElement(name);\n\tsetAttributes(element, attributes);\n\n\tif (text !== undefined)\n\t\telement.textContent = self.String(text);\n\n\tif (parent instanceof self.Node)\n\t\tparent.appendChild(element);\n\treturn element;\n}\nexport function defineCustomElement(ElementClass) {\n\tconst supportsCustomElements = self.customElements && self.customElements.define;\n\tconst supportsRegisterElement = self.Boolean(self.document.registerElement);\n\n\tfunction customElementsNotSupported() { return; }\n\tfunction defineCustomElementV0(ElementClass) {\n\t\tconst testElementConstructor = self.document.createElement(ElementClass.TAG_NAME).constructor;\n\n\t\tif (testElementConstructor === self.HTMLElement || testElementConstructor === self.HTMLUnknownElement)\n\t\t\treturn;\n\t\tself.document.registerElement(ElementClass.TAG_NAME, { prototype: self.Object.create(ElementClass.prototype) });\n\t}\n\tfunction defineCustomElementV1(ElementClass) {\n\t\tif (self.customElements.get(ElementClass.TAG_NAME))\n\t\t\treturn;\n\t\tself.customElements.define(ElementClass.TAG_NAME, ElementClass);\n\t}\n\n\tif (supportsCustomElements)\n\t\tdefineCustomElement = defineCustomElementV1;\n\telse if (supportsRegisterElement)\n\t\tdefineCustomElement = defineCustomElementV0;\n\telse\n\t\tdefineCustomElement = customElementsNotSupported;\n\tdefineCustomElement(ElementClass);\n}\nexport function defineCustomElements(elementClasses) { arrayify(elementClasses).forEach(defineCustomElement); }\n// service workers don't support ES6 modules, so this was moved directly into service-worker script\n// export function expandFileList(fileList = [], prefix = \"\") {\n// \treturn fileList.reduce((result, entry) => {\n// \t\tif (typeof entry === \"string\")\n// \t\t\tresult.push(prefix + entry);\n// \t\telse if (typeof entry === \"object\") {\n// \t\t\tconst entryKey = self.Object.keys(entry)[0];\n// \t\t\tresult = result.concat(expandFileList(entry[entryKey], `${prefix}${entryKey}/`));\n// \t\t}\n// \t\treturn result;\n// \t}, []);\n// }\nexport async function fetchAndCache(request) {\n\tconst cache = await self.caches.open(CACHE_NAME);\n\tconst cachedResponse = await cache.match(request, CACHE_OPTIONS);\n\tconst response = async function() {\n\t\tconst response = await self.fetch(request.clone());\n\n\t\tif (response.status < 400)\n\t\t\tcache.put(request, response.clone());\n\t\treturn response;\n\t}().catch(console.error);\n\n\tif (cachedResponse)\n\t\treturn cachedResponse;\n\treturn response;\n}\nexport function getChildrenAsObject(element) {\n\tif (!element.children || !element.children.length)\n\t\treturn;\n\treturn getNodesAsObject(element.children);\n}\n// this is very simplified to allow me to leverage the CSS Typed OM without writing more of a polyfill\n// https://developers.google.com/web/updates/2018/03/cssom\n// https://www.w3.org/TR/css-typed-om-1/\nexport function getCssProperty(element, property) {\n\tif (\"computedStyleMap\" in element)\n\t\treturn element.computedStyleMap().get(property);\n\tconst unparsed = self.getComputedStyle(element).getPropertyValue(property).trim();\n\tconst parsed = /^([0-9]+\\.?[0-9]*)(%|[a-z]*)$/.exec(unparsed);\n\n\tif (parsed == null)\n\t\treturn self.Object.freeze({ value: unparsed, toString() { return self.String(unparsed); } });\n\tconst unit = (parsed[2].length === 0) ? \"number\" : (parsed[2] === \"%\") ? \"percent\" : parsed[2];\n\treturn self.Object.freeze({ unit: \"number\", value: self.Number(parsed[1]), toString() { return unparsed; } });\n}\nexport function getElement({ elementId, elementSelector }) { return elementId ? self.document.getElementById(elementId) : self.document.querySelector(elementSelector); }\nexport function getNodesAsObject(nodes) {\n\treturn self.Array.prototype.reduce.call(nodes, (result, node, index) => self.Object.defineProperty(result, node.id || self.String(index), { enumerable: true, value: node, writable: true }), {});\n}\nexport async function loadDeferredStylesheets(containerId = \"deferred-stylesheets\") {\n\tconst parser = new self.DOMParser();\n\tconst loader = () => parser.parseFromString(document.getElementById(containerId).textContent, \"text/html\").querySelectorAll(\"link\").forEach((link) => self.document.head.appendChild(link));\n\n\tif (self.requestAnimationFrame)\n\t\tself.requestAnimationFrame(() => loader.call(undefined));\n\telse {\n\t\tawait isDocumentLoaded;\n\t\tloader.call(undefined);\n\t}\n\treturn true;\n}\nexport function preload(files = [], attributes = {}) {\n\tself.requestAnimationFrame(() => arrayify(files).forEach((hrefOrAttributes) => {\n\t\tconst fileAttributes = (typeof hrefOrAttributes === \"string\") ? { href: hrefOrAttributes } : hrefOrAttributes;\n\n\t\tif (preloadedFiles.has(fileAttributes.href))\n\t\t\treturn;\n\t\tcreateElement(\"link\", self.Object.assign({ rel: \"preload\" }, attributes, fileAttributes), self.document.head);\n\t\tpreloadedFiles.add(fileAttributes.href);\n\t}));\n}\nexport function removeCssProperty(element, property) {\n\tif (\"attributeStyleMap\" in element)\n\t\treturn element.attributeStyleMap.delete(property);\n\telement.style.removeProperty(property);\n}\nexport function setAttributes(element, attributes = {}) {\n\tfor (const key in attributes)\n\t\telement.setAttribute(key, attributes[key]);\n}\nexport function setCssProperty(element, property, value) {\n\tif (\"attributeStyleMap\" in element)\n\t\treturn element.attributeStyleMap.set(property, value);\n\telement.style.setProperty(property, self.String(value));\n}\nexport function writeTextToClipboard(text) { // returns self.Promise\n\tif (\"navigator\" in window && \"clipboard\" in self.navigator && \"writeText\" in self.navigator.clipboard) {\n\t\treturn self.navigator.clipboard.writeText(self.String(text));\n\t} else {\n\t\tconst textArea = self.document.createElement(\"textarea\");\n\t\ttextArea.value = self.String(text);\n\t\tself.document.body.appendChild(textArea);\n\t\ttextArea.select();\n\t\tself.document.execCommand(\"copy\");\n\t\ttextArea.remove();\n\t\treturn self.Promise.resolve(undefined);\n\t}\n}\n\n\n\n// the below was all used to support the loadSvg function and may be useful code in the future\n// function copyAttributes(fromElement, toElement, attributes = []) {\n// \tattributes.forEach((attribute) => {\n// \t\tconst attributeIsString = typeof attribute === \"string\";\n// \t\tconst fromElementAttribute = attributeIsString ? fromElement.getAttribute(attribute) : fromElement.getAttribute(attribute[0]);\n\n// \t\tif (fromElementAttribute !== null)\n// \t\t\ttoElement.setAttribute(attributeIsString ? attribute : attribute[1], fromElementAttribute);\n// \t});\n// }\n\n// function javaStringHash(string) { return self.Array.prototype.reduce.call(self.String(string), (hash, character) => (hash << 5) - hash + character.charCodeAt(0) | 0, 0); }\n\n// export async function loadSvg(replacesElement, src = undefined) { // returns self.Promise\n// \tif (replacesElement.parentNode == null)\n// \t\treturn;\n// \telse if (typeof src === \"undefined\" && \"currentSrc\" in replacesElement)\n// \t\tsrc = replacesElement.currentSrc;\n// \tconst [width, height] = (replacesElement instanceof self.SVGElement) ? [replacesElement.width.baseVal.value, replacesElement.height.baseVal.value] : [replacesElement.clientWidth, replacesElement.clientHeight];\n\n// \tif (self.Number(width) + self.Number(height) <= 0)\n// \t\treturn;\n// \tconst cacheKey = self.String(javaStringHash(`${src}|${width}|${height}`));\n// \tlet svgCached = Cache.get(cacheKey);\n\n// \tif (svgCached) {\n// \t\tconst svg = parseSvgText(svgCached)\n// \t\treplacesElement.parentNode.replaceChild(svg, replacesElement);\n// \t\treturn svg;\n// \t} else {\n// \t\tnotifyPreload(\"fetch\", src, \"image/svg+xml\");\n// \t\treturn self.fetch(src).then((response) => response.text()).then((svgText) => {\n// \t\t\tif (replacesElement.parentNode == null)\n// \t\t\t\treturn;\n// \t\t\tconst serializer = new self.XMLSerializer();\n// \t\t\tconst svg = parseSvgText(svgText);\n// \t\t\tcopyAttributes(replacesElement, svg, [\"aria-label\", \"class\", \"title\"]);\n// \t\t\tsetAttributes(svg, { height, width });\n\n// \t\t\tfor (const attribute in replacesElement.dataset)\n// \t\t\t\tsvg.dataset[attribute] = replacesElement.dataset[attribute];\n// \t\t\tsvg.dataset.svgSrc = src;\n// \t\t\tCache.set(cacheKey, serializer.serializeToString(svg));\n// \t\t\treplacesElement.parentNode.replaceChild(svg, replacesElement);\n// \t\t\treturn svg;\n// \t\t});\n// \t}\n// }\n\n// function notifyPreload(as, href, type) { createElement(\"link\", { as, href, type }, self.document.head); }\n\n// function parseSvgText(svgText) {\n// \tconst parser = new self.DOMParser();\n// \tconst svg = parser.parseFromString(svgText, \"image/svg+xml\").documentElement;\n\n// \tif (svg.tagName != \"svg\")\n// \t\tthrow new self.Error(`Loaded document is not formatted as an SVG. Received: ${svgText}`);\n// \treturn svg;\n// }\n\n\n// WEBPACK FOOTER //\n// ./module/util.js","\"use strict\";\n// self.AudioContext\nif (!self.AudioContext)\n\tself.AudioContext = self.webkitAudioContext;\n// self.cancelAnimationFrame\nif (!self.cancelAnimationFrame)\n\tself.cancelAnimationFrame = self.webkitCancelAnimationFrame || self.mozCancelAnimationFrame || self.msCancelAnimationFrame || self.oCancelAnimationFrame || self.webkitCancelRequestAnimationFrame || self.mozCancelRequestAnimationFrame || self.msCancelRequestAnimationFrame || self.oCancelRequestAnimationFrame;\n// self.CSS\nif (!self.CSS)\n\tself.CSS = {};\n\nif (!self.CSS.number)\n\tself.CSS.number = function(number) { return self.Object.freeze({ unit: \"number\", value: number, toString() { return self.String(number); } }); };\n\nif (!self.CSS.percent)\n\tself.CSS.percent = function(percent) { return self.Object.freeze({ unit: \"percent\", value: percent, toString() { return `${self.String(percent)}%`; } }); }\n// self.document.hidden\nif (typeof self.document.hidden === \"undefined\")\n\tif (typeof self.document.webkitHidden !== \"undefined\")\n\t\tself.Object.defineProperty(self.document, \"hidden\", { get: () => self.document.webkitHidden });\n\telse if (typeof self.document.mozHidden !== \"undefined\")\n\t\tself.Object.defineProperty(self.document, \"hidden\", { get: () => self.document.mozHidden });\n// self.DOMRect\nif (!self.DOMRect) {\n\tself.DOMRect = class DOMRect { constructor(x = 0, y = 0, width = 0, height = 0) { self.Object.assign(this, { height, width, x, y }); } };\n\tself.DOMRect.prototype.bottom = self.DOMRect.prototype.height = self.DOMRect.prototype.left = self.DOMRect.prototype.top = self.DOMRect.prototype.width = self.DOMRect.prototype.x = self.DOMRect.prototype.y = 0;\n}\n// self.Element\n[self.Element.prototype, self.Document.prototype, self.DocumentFragment.prototype].forEach((prototype) => {\n\t// self.Element.prototype.append\n\tif (!prototype.append)\n\t\tprototype.append = function(...nodes) { this.appendChild(nodes.reduce((doc, node) => doc.appendChild((node instanceof self.Node) ? node : self.document.createTextNode(self.String(node))), self.document.createDocumentFragment())); };\n\n\t// self.Element.prototype.prepend\n\tif (!prototype.prepend)\n\t\tprototype.prepend = function(...nodes) { this.insertBefore(nodes.reduce((doc, node) => doc.appendChild((node instanceof self.Node) ? node : self.document.createTextNode(self.String(node))), self.document.createDocumentFragment()), this.firstChild); };\n});\n[self.Element.prototype, self.CharacterData.prototype, self.DocumentType.prototype].forEach((prototype) => {\n\t// self.Element.prototype.remove\n\tif (!prototype.remove)\n\t\tprototype.remove = function() {\n\t\t\tif (this.parentNode !== null)\n\t\t\t\tthis.parentNode.removeChild(this);\n\t\t};\n\n\t// self.Element.prototype.replaceWith\n\tif (!prototype.replaceWith)\n\t\tprototype.replaceWith = function(...nodes) {\n\t\t\tif (!this.parentNode)\n\t\t\t\treturn;\n\t\t\telse if (nodes.length === 0)\n\t\t\t\tthis.parentNode.removeChild(this);\n\n\t\t\tfor (let i = nodes.length - 1; i >= 0; i--) {\n\t\t\t\tconst currentNode = (nodes[i] instanceof self.Node) ? nodes[i] : this.ownerDocument.createTextNode(self.String(nodes[i]));\n\n\t\t\t\tif (i === 0)\n\t\t\t\t\tthis.parentNode.replaceChild(currentNode, this);\n\t\t\t\telse\n\t\t\t\t\tthis.parentNode.insertBefore(this.previousSibling, currentNode);\n\t\t\t}\n\t\t};\n});\nif (!\"attributes\" in self.Element.prototype)\n\tself.Element.prototype.attributes = self.Element.prototype.mozNamedAttrMap;\nif (!self.Element.prototype.getAttributeNames)\n\tself.Element.prototype.getAttributeNames = function() { return self.Array.prototype.map.call(this.attributes, (attribute) => attribute.name); };\n// self.indexedDB\nif (!self.indexedDB)\n\tself.indexedDB = self.webkitIndexedDB || self.mozIndexedDB || self.OIndexedDB || self.msIndexedDB;\n// self.IDBTransaction\nif (!self.IDBTransaction)\n\tself.IDBTransaction = self.webkitIDBTransaction || self.OIDBTransaction || self.msIDBTransaction;\n// self.MutationObserver\nif (!self.MutationObserver)\n\tself.MutationObserver = self.WebKitMutationObserver;\n// self.requestAnimationFrame\nif (!self.requestAnimationFrame)\n\tself.requestAnimationFrame = self.webkitRequestAnimationFrame || self.mozRequestAnimationFrame || self.msRequestAnimationFrame || self.oRequestAnimationFrame;\n// self.String\nif (!self.String.prototype.padStart)\n\tself.String.prototype.padStart = function(targetLength, padString = \" \") {\n\t\ttargetLength = targetLength >>> 0;\n\t\tpadString = self.String(padString);\n\n\t\tif (this.length >= targetLength || padString.length === 0)\n\t\t\treturn self.String(this);\n\t\ttargetLength -= this.length;\n\t\treturn padString.repeat(targetLength / padString.length + 1).slice(0, targetLength) + self.String(this);\n\t};\nif (!self.String.prototype.repeat)\n\tself.String.prototype.repeat = function(count) {\n\t\tcount = count >>> 0;\n\n\t\tif (this.length === 0 || count === 0)\n\t\t\treturn \"\";\n\t\tlet result = \"\";\n\t\tlet string = self.String(this);\n\n\t\tfor (let i = count; i > 0; result += string, i--);\n\t\treturn result;\n\t};\nif (!self.String.prototype.trimStart)\n\tself.String.prototype.trimStart = self.String.prototype.trimLeft || function() { return this.replace(/^\\s+/, \"\"); };\n// self.URL\nif (!self.URL)\n\tself.URL = self.webkitURL;\n\n\n// WEBPACK FOOTER //\n// ./js/polyfills.js","export class Cache {\n\tstatic get(key) {\n\t\ttry { return window.localStorage.getItem(key); } catch (err) { return null; }\n\t\treturn null;\n\t}\n\tstatic getAccessor(key) {\n\t\treturn {\n\t\t\tget() { return Cache.get(key); },\n\t\t\tset(value) { Cache.set(key, value); }\n\t\t};\n\t}\n\tstatic remove(key) {\n\t\ttry { return window.localStorage.removeItem(key); } catch (err) { return; }\n\t}\n\tstatic set(key, value) {\n\t\tif (value === undefined)\n\t\t\tthis.remove(key);\n\t\telse\n\t\t\ttry { window.localStorage.setItem(key, value); } catch(err) { return; }\n\t}\n}\n\n\n// WEBPACK FOOTER //\n// ./module/Cache.js"],"sourceRoot":""}