1/** 2 * Copyright 2018 Google Inc. All Rights Reserved. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * http://www.apache.org/licenses/LICENSE-2.0 7 * Unless required by applicable law or agreed to in writing, software 8 * distributed under the License is distributed on an "AS IS" BASIS, 9 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 10 * See the License for the specific language governing permissions and 11 * limitations under the License. 12 */ 13 14// If the loader is already loaded, just stop. 15if (!self.define) { 16 let registry = {}; 17 18 // Used for `eval` and `importScripts` where we can't get script URL by other means. 19 // In both cases, it's safe to use a global var because those functions are synchronous. 20 let nextDefineUri; 21 22 const singleRequire = (uri, parentUri) => { 23 uri = new URL(uri + ".js", parentUri).href; 24 return registry[uri] || ( 25 26 new Promise(resolve => { 27 if ("document" in self) { 28 const script = document.createElement("script"); 29 script.src = uri; 30 script.onload = resolve; 31 document.head.appendChild(script); 32 } else { 33 nextDefineUri = uri; 34 importScripts(uri); 35 resolve(); 36 } 37 }) 38 39 .then(() => { 40 let promise = registry[uri]; 41 if (!promise) { 42 throw new Error(`Module ${uri} didnât register its module`); 43 } 44 return promise; 45 }) 46 ); 47 }; 48 49 self.define = (depsNames, factory) => { 50 const uri = nextDefineUri || ("document" in self ? document.currentScript.src : "") || location.href; 51 if (registry[uri]) { 52 // Module is already loading or loaded. 53 return; 54 } 55 let exports = {}; 56 const require = depUri => singleRequire(depUri, uri); 57 const specialDeps = { 58 module: { uri }, 59 exports, 60 require 61 }; 62 registry[uri] = Promise.all(depsNames.map( 63 depName => specialDeps[depName] || require(depName) 64 )).then(deps => { 65 factory(...deps); 66 return exports; 67 }); 68 }; 69} 70define(['./workbox-d7ce3138'], (function (workbox) { 'use strict'; 71 72 self.skipWaiting(); 73 workbox.clientsClaim(); 74 75 /** 76 * The precacheAndRoute() method efficiently caches and responds to 77 * requests for URLs in the manifest. 78 * See https://goo.gl/S9QRab 79 */ 80 workbox.precacheAndRoute([{ 81 "url": "apple-touch-120x120.png", 82 "revision": "35ab31c582ed8748063c19d57de61549" 83 }, { 84 "url": "assets/_...all_-5448c00f.js", 85 "revision": null 86 }, { 87 "url": "assets/2022-12-13-theme-e89f8cda.js", 88 "revision": null 89 }, { 90 "url": "assets/2022-12-14-write-43d7edc5.js", 91 "revision": null 92 }, { 93 "url": "assets/2022-12-15-guide-7841771d.js", 94 "revision": null 95 }, { 96 "url": "assets/2022-12-16-preview-4675e23e.js", 97 "revision": null 98 }, { 99 "url": "assets/app-2fb1f3c2.js", 100 "revision": null 101 }, { 102 "url": "assets/index-3e2a1e00.css", 103 "revision": null 104 }, { 105 "url": "assets/index-52e30c82.css", 106 "revision": null 107 }, { 108 "url": "assets/index-d55f8e4b.js", 109 "revision": null 110 }, { 111 "url": "assets/post-adc31a91.js", 112 "revision": null 113 }, { 114 "url": "assets/projects-ac41ada4.js", 115 "revision": null 116 }, { 117 "url": "assets/projects-c5c39a5d.css", 118 "revision": null 119 }, { 120 "url": "assets/virtual_pwa-register-0618c0e3.js", 121 "revision": null 122 }, { 123 "url": "assets/vitesse-01b8b619.js", 124 "revision": null 125 }, { 126 "url": "assets/workbox-window.prod.es5-295a6886.js", 127 "revision": null 128 }, { 129 "url": "image/vitesse.webp", 130 "revision": "0b9cc33ddf160d7a921066e0dc2cb800" 131 }, { 132 "url": "index.html", 133 "revision": "29617956c59467af7c5c38e99a6c0de7" 134 }, { 135 "url": "logo-dark.svg", 136 "revision": "eddef6d775af86c067c04643832dcd56" 137 }, { 138 "url": "logo-light.svg", 139 "revision": "da45f937d5f49fc3ddb71177600a3d0d" 140 }, { 141 "url": "logo.png", 142 "revision": "e6d9600e550502e83ffee8d58cff5b48" 143 }, { 144 "url": "posts.html", 145 "revision": "587e444af80ce8c8736ceb05fb423248" 146 }, { 147 "url": "posts/2022-12-13-theme.html", 148 "revision": "35ac0c0e40552134e330de3f0ebf62c6" 149 }, { 150 "url": "posts/2022-12-14-write.html", 151 "revision": "28a5afd2da0b63a36cb76ebdf300e11d" 152 }, { 153 "url": "posts/2022-12-15-guide.html", 154 "revision": "3d84b6acfcb2849de36156701d94ae46" 155 }, { 156 "url": "posts/2022-12-16-preview.html", 157 "revision": "4aeb13396a6159f82a3dbbc6f35055a7" 158 }, { 159 "url": "projects.html", 160 "revision": "d8bddcfab519f6311f2f68eb77c2de17" 161 }, { 162 "url": "pwa-192x192.png", 163 "revision": "904d4d6f7abfadba6f4e860bebf8dfab" 164 }, { 165 "url": "pwa-512x512.png", 166 "revision": "71ba50e4dcafb4295b16f25010316200" 167 }, { 168 "url": "safari-pinned-tab.svg", 169 "revision": "594facdcda7fa0a3bf65f4ca2184e2e1" 170 }, { 171 "url": "apple-touch-120x120.png", 172 "revision": "35ab31c582ed8748063c19d57de61549" 173 }, { 174 "url": "logo-dark.svg", 175 "revision": "eddef6d775af86c067c04643832dcd56" 176 }, { 177 "url": "logo-light.svg", 178 "revision": "da45f937d5f49fc3ddb71177600a3d0d" 179 }, { 180 "url": "logo.png", 181 "revision": "e6d9600e550502e83ffee8d58cff5b48" 182 }, { 183 "url": "pwa-192x192.png", 184 "revision": "904d4d6f7abfadba6f4e860bebf8dfab" 185 }, { 186 "url": "pwa-512x512.png", 187 "revision": "71ba50e4dcafb4295b16f25010316200" 188 }, { 189 "url": "safari-pinned-tab.svg", 190 "revision": "594facdcda7fa0a3bf65f4ca2184e2e1" 191 }, { 192 "url": "image/vitesse.webp", 193 "revision": "0b9cc33ddf160d7a921066e0dc2cb800" 194 }, { 195 "url": "manifest.webmanifest", 196 "revision": "521fcbbdbfa404170a66d14a6faef509" 197 }], {}); 198 workbox.cleanupOutdatedCaches(); 199 workbox.registerRoute(new workbox.NavigationRoute(workbox.createHandlerBoundToURL("index.html"), { 200 denylist: [/^\/new/] 201 })); 202 workbox.registerRoute(/^https:\/\/fonts.googleapis.com\/.*/i, new w
202orkbox.CacheFirst({ 203 "cacheName": "google-font-cache", 204 plugins: [new workbox.ExpirationPlugin({ 205 maxEntries: 10, 206 maxAgeSeconds: 31536000 207 }), new workbox.CacheableResponsePlugin({ 208 statuses: [0, 200] 209 })] 210 }), 'GET'); 211 workbox.registerRoute(/^https:\/\/fonts.gstatic.com\/.*/i, new workbox.CacheFirst({ 212 "cacheName": "google-static-font-cache", 213 plugins: [new workbox.ExpirationPlugin({ 214 maxEntries: 10, 215 maxAgeSeconds: 31536000 216 }), new workbox.CacheableResponsePlugin({ 217 statuses: [0, 200] 218 })] 219 }), 'GET'); 220 workbox.registerRoute(/^https:\/\/cdn.jsdelivr.net\/.*/i, new workbox.CacheFirst({ 221 "cacheName": "jsdelivr-cdn-cache", 222 plugins: [new workbox.ExpirationPlugin({ 223 maxEntries: 10, 224 maxAgeSeconds: 31536000 225 }), new workbox.CacheableResponsePlugin({ 226 statuses: [0, 200] 227 })] 228 }), 'GET'); 229 workbox.registerRoute(/^https:\/\/(((raw|user-images|camo).githubusercontent.com))\/.*/i, new workbox.CacheFirst({ 230 "cacheName": "githubusercontent-images-cache", 231 plugins: [new workbox.ExpirationPlugin({ 232 maxEntries: 10, 233 maxAgeSeconds: 31536000 234 }), new workbox.CacheableResponsePlugin({ 235 statuses: [0, 200] 236 })] 237 }), 'GET'); 238 239}));
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.