!function(){if(self.document){vare=document.currentScript.src;newURLSearchParams(e.split("?")[1]).get("install")?navigator.serviceWorker.register(document.currentScript.src).catch(function(e){console.log("cache failed with "+e)}):(console.log("uninstall service worker."),navigator.serviceWorker.getRegistrations().then(function(e){for(vartofe)t.active&&t.active.scriptURL&&-1!==t.active.scriptURL.indexOf("/sw.min.js")&&t.unregister()}),window.caches&&caches.keys&&caches.keys().then(function(e){e.forEach(function(e){console.log("delete cache",e),caches.delete(e)})}))}else{consti="Dream-1.0.0",c=newURLSearchParams(location.href.split("?")[1]).get("offLine"),o=[newRegExp(location.origin+"/themes","i"),/\/\/(unpkg\.com|npm\.elemecdn\.com|cdn\.jsdelivr\.net\/npm)\//i],a=[newRegExp(location.origin+"/upload","i"),/\/\/cdn.jsdelivr.net\//i],l=[newRegExp(location.origin+"/(admin|api)","i")],u={theme:{originUrl:location.origin+"/themes/dream",handleRequest:e=>{if(0===e.indexOf(u.theme.originUrl)){constt=e.substring(u.theme.originUrl.length),n=newURLSearchParams(e.split("?")[1]).get("mew")||"latest";return[e,...u.npm.urlTemplates.map(e=>e+"/halo-theme-dream2.0@"+n+t)]}}},npm:{urlTemplates:["https://unpkg.com","https://cdn.jsdelivr.net/npm","https://npm.elemecdn.com"],handleRequest:e=>{vart,n=u.npm.urlTemplates,r=e;for(tinn)if(0===r.indexOf(n[t])){consts=r.substring(n[t].length);returnn.map(e=>e+s)}}}};functionn(e,t){returne.some(function(e){returne.test(t)})}functions(e,t){varn=newSet(["mew","v","version","t","time","ts","timestamp"]),e=e.split("?"),t=t.split("?");if(e[0]===t[0]){varr=newURLSearchParams("?"+e[1]),s=newURLSearchParams("?"+t[1]);for(consteofr.keys())if(!n.has(e)&&r.get(e)!==s.get(e))return;return1}}self.addEventListener("install",function(e){console.log("install service worker."),e.waitUntil(self.skipWaiting())}),self.addEventListener("activate",function(e){console.log("service worker activate.");constt=[i];returne.waitUntil(caches.keys().then(function(e){returnPromise.all(e.map(function(e){if(-1===t.indexOf(e))returnconsole.info("version changed, clean the cache, SW: deleting "+e),caches.delete(e)}))})),self.clients.claim()}),self.addEventListener("fetch",function(r){if("GET"!==r.request.method)return!1;constt=n(o,r.request.url);if(!t&&!n(a,r.request.url)||n(l,r.request.url))return!!c&&(r.respondWith(caches.open(i).then(t=>fetch(r.request).then(e=>(200===e.status&&t.put(r.request,e.clone()),e)).catch(()=>t.match(r.request)))),!0);r.respondWith(caches.open(i).then(function(n){returnn.match(r.request).then(function(e){returne||function(e,t){if(t){varn=e.url;for(consteinu){constt=u[e].handleRequest(n);if(t){varr=n;vars=t;consti=newAbortController,c=i.signal,o=s.map(e=>newPromise(async(t,n)=>{fetch(e,{signal:c}).then(asynce=>{vart=newHeaders(e.headers);returnt.set("service-worker-origin",r),newResponse(awaite.arrayBuffer(),{status:e.status,headers:t})}).then(e=>{200!==e.status&&n(null),i.abort(),t(e)}).catch(()=>n(null))}));returnPromise.any||(Promise.any=function(e){returnnewPromise((t,n)=>{letr=(e=Array.isArray(e)?e:[]).length,s=[];if(0===r)returnn(newAggregateError("All promises were rejected"));e.forEach(e=>{if(!(einstanceofPromise))returnn(e);e.then(e=>t(e),e=>{r--,s.push(e),0===r&&n(newAggregateError(s))})})})}),Promise.any(o).catch(()=>null);return}}}returnfetch(e)}(r.request,t).then(e=>{constt=e.clone();returnn.matchAll(r.request,{ignoreSearch:!0}).then(function(e){if(e)for(consttofe){conste=t.url||t.headers.get("service-worker-origin");s(e,r.request.url)&&n.delete(e)}n.put(r.request,t)}),e}).catch(e=>(console.error(e),n.matchAll(r.request,{ignoreSearch:!0}).then(function(e){if(e)for(consttofe)if(s(t.url||t.headers.get("service-worker-origin"),r.request.url))returnt})))})}))})}}();