PageSourceSearch

https://www.bmn.nl/sw.js

js bmn.nl collected 2026-10-07 01:08:58 UTC 33,952 bytes, 243 lines download raw bytes

1/*!
2 * @version 3ea9a483c
3 * 
4 */
5!function(e){var t={}
6function __webpack_require__(r){if(t[r])return t[r].exports
7var s=t[r]={i:r,l:!1,exports:{}},a=!0
8try{e[r].call(s.exports,s,s.exports,__webpack_require__),a=!1}finally{a&&delete t[r]}return s.l=!0,s.exports}__webpack_require__.m=e,__webpack_require__.c=t,__webpack_require__.d=function(e,t,r){__webpack_require__.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},__webpack_require__.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},__webpack_require__.t=function(e,t){if(1&t&&(e=__webpack_require__(e)),8&t)return e
9if(4&t&&"object"==typeof e&&e&&e.__esModule)return e
10var r=Object.create(null)
11if(__webpack_require__.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var s in e)__webpack_require__.d(r,s,function(t){return e[t]}.bind(null,s))
12return r},__webpack_require__.n=function(e){var t=e&&e.__esModule?function getDefault(){return e.default}:function getModuleExports(){return e}
13return __webpack_require__.d(t,"a",t),t},__webpack_require__.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},__webpack_require__.p="/",__webpack_require__(__webpack_require__.s="0Gu+")}({"0Gu+":function(e,t,r){"use strict"
14r.r(t)
15const s={},a=(e,t)=>{s[e]&&(s[e]=s[e].filter(e=>t!==e))}
16r("Bxln")
17const n=(e,...t)=>{let r=e
18return t.length>0&&(r+=` :: ${JSON.stringify(t)}`),r}
19class WorkboxError_WorkboxError extends Error{constructor(e,t){super(n(e,t)),this.name=e,this.details=t}}const i=new Set
20const o={googleAnalytics:"googleAnalytics",precache:"precache-v2",prefix:"workbox",runtime:"runtime",suffix:"undefined"!=typeof registration?registration.scope:""},c=e=>[o.prefix,e,o.suffix].filter(e=>e&&e.length>0).join("-"),h={updateDetails:e=>{(e=>{for(const t of Object.keys(o))e(t)})(t=>{"string"==typeof e[t]&&(o[t]=e[t])})},getGoogleAnalyticsName:e=>e||c(o.googleAnalytics),getPrecacheName:e=>e||c(o.precache),getPrefix:()=>o.prefix,getRuntimeName:e=>e||c(o.runtime),getSuffix:()=>o.suffix}
21function stripParams(e,t){const r=new URL(e)
22for(const e of t)r.searchParams.delete(e)
23return r.href}let l
24function dontWaitFor(e){e.then(()=>{})}class Deferred{constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}}const u=e=>{return new URL(String(e),location.href).href.replace(new RegExp(`^${location.origin}`),"")}
25function timeout(e){return new Promise(t=>setTimeout(t,e))}function waitUntil(e,t){const r=t()
26return e.waitUntil(r),r}const d={get googleAnalytics(){return h.getGoogleAnalyticsName()},get precache(){return h.getPrecacheName()},get prefix(){return h.getPrefix()},get runtime(){return h.getRuntimeName()},get suffix(){return h.getSuffix()}}
27async function copyResponse(e,t){let r=null
28if(e.url){r=new URL(e.url).origin}if(r!==self.location.origin)throw new WorkboxError_WorkboxError("cross-origin-copy-response",{origin:r})
29const s=e.clone(),a={headers:new Headers(s.headers),status:s.status,statusText:s.statusText},n=t?t(a):a,i=function canConstructResponseFromBodyStream(){if(void 0===l){const e=new Response("")
30if("body"in e)try{new Response(e.body),l=!0}catch(e){l=!1}l=!1}return l}()?s.body:await s.blob()
31return new Response(i,n)}r("xwD5")
32const p="__WB_REVISION__"
33function createCacheKey(e){if(!e)throw new WorkboxError_WorkboxError("add-to-cache-list-unexpected-type",{entry:e})
34if("string"==typeof e){const t=new URL(e,location.href)
35return{cacheKey:t.href,url:t.href}}const{revision:t,url:r}=e
36if(!r)throw new WorkboxError_WorkboxError("add-to-cache-list-unexpected-type",{entry:e})
37if(!t){const e=new URL(r,location.href)
38return{cacheKey:e.href,url:e.href}}const s=new URL(r,location.href),a=new URL(r,location.href)
39return s.searchParams.set(p,t),{cacheKey:s.href,url:a.href}}class PrecacheInstallReportPlugin{constructor(){this.updatedURLs=[],this.notUpdatedURLs=[],this.handlerWillStart=(async({request:e,state:t})=>{t&&(t.originalRequest=e)}),this.cachedResponseWillBeUsed=(async({event:e,state:t,cachedResponse:r})=>{if("install"===e.type&&t&&t.originalRequest&&t.originalRequest instanceof Request){const e=t.originalRequest.url
40r?this.notUpdatedURLs.push(e):this.updatedURLs.push(e)}return r})}}class PrecacheCacheKeyPlugin{constructor({precacheController:e}){this.cacheKeyWillBeUsed=(async({request:e,params:t})=>{const r=t&&t.cacheKey||this._precacheController.getCacheKeyForURL(e.url)
41return r?new Request(r):e}),this._precacheController=e}}r("aqiC")
42function toRequest(e){return"string"==typeof e?new Request(e):e}class StrategyHandler_StrategyHandler{constructor(e,t){this._cacheKeys={},Object.assign(this,t),this.event=t.event,this._strategy=e,this._handlerDeferred=new Deferred,this._extendLifetimePromises=[],this._plugins=[...e.plugins],this._pluginStateMap=new Map
43for(const e of this._plugins)this._pluginStateMap.set(e,{})
44this.event.waitUntil(this._handlerDeferred.promise)}async fetch(e){const{event:t}=this
45let r=toRequest(e)
46if("navigate"===r.mode&&t instanceof FetchEvent&&t.preloadResponse){const e=await t.preloadResponse
47if(e)return e}const s=this.hasCallback("fetchDidFail")?r.clone():null
48try{for(const e of this.iterateCallbacks("requestWillFetch"))r=await e({request:r.clone(),event:t})}catch(e){if(e instanceof Error)throw new WorkboxError_WorkboxError("plugin-error-request-will-fetch",{thrownErrorMessage:e.message})}const a=r.clone()
49try{let e
50e=await fetch(r,"navigate"===r.mode?void 0:this._strategy.fetchOptions)
51for(const r of this.iterateCallbacks("fetchDidSucceed"))e=await r({event:t,request:a,response:e})
52return e}catch(e){throw s&&await this.runCallbacks("fetchDidFail",{error:e,event:t,originalRequest:s.clone(),request:a.clone()}),e}}async fetchAndCachePut(e){const t=await this.fetch(e),r=t.clone()
53return this.waitUntil(this.cachePut(e,r)),t}async cacheMatch(e){const t=toRequest(e)
54let r
55const{cacheName:s,matchOptions:a}=this._strategy,n=await this.getCacheKey(t,"read"),i=Object.assign(Object.assign({},a),{cacheName:s})
56r=await caches.match(n,i)
57for(const e of this.iterateCallbacks("cachedResponseWillBeUsed"))r=await e({cacheName:s,matchOptions:a,cachedResponse:r,request:n,event:this.event})||void 0
58return r}async cachePut(e,t){const r=toRequest(e)
59await timeout(0)
60const s=await this.getCacheKey(r,"write")
61if(!t)throw new WorkboxError_WorkboxError("cache-put-with-no-response",{url:u(s.url)})
62const a=await this._ensureResponseSafeToCache(t)
63if(!a)return!1
64const{cacheName:n,matchOptions:o}=this._strategy,c=await self.caches.open(n),h=this.hasCallback("cacheDidUpdate"),l=h?await async function cacheMatchIgnoreParams(e,t,r,s){const a=stripParams(t.url,r)
65if(t.url===a)return e.match(t,s)
66const n=Object.assign(Object.assign({},s),{ignoreSearch:!0}),i=await e.keys(t,n)
67for(const t of i)if(a===stripParams(t.url,r))return e.match(t,s)}(c,s.clone(),["__WB_REVISION__"],o):null
68try{await c.put(s,h?a.clone():a)}catch(e){if(e instanceof Error)throw"QuotaExceededError"===e.name&&await async function executeQuotaErrorCallbacks(){for(const e of i)await e()}(),e}for(const e of this.iterateCallbacks("cacheDidUpdate"))await e({cacheName:n,oldResponse:l,newResponse:a.clone(),request:s,event:this.event})
69return!0}async getCacheKey(e,t){if(!this._cacheKeys[t]){let r=e
70for(const e of this.iterateCallbacks("cacheKeyWillBeUsed"))r=toRequest(await e({mode:t,request:r,event:this.event,params:this.params}))
71this._cacheKeys[t]=r}return this._cacheKeys[t]}hasCallback(e){for(const t of this._strategy.plugins)if(e in t)return!0
72return!1}async runCallbacks(e,t){for(const r of this.iterateCallbacks(e))await r(t)}*iterateCallbacks(e){for(const t of this._strategy.plugins)if("function"==typeof t[e]){const r=this._pluginStateMap.get(t),s=s=>{const a=Object.assign(Object.assign({},s),{state:r})
73return t[e](a)}
74yield s}}waitUntil(e){return this._extendLifetimePromises.push(e),e}async doneWaiting(){let e
75for(;e=this._extendLifetimePromises.shift();)await e}destroy(){this._handlerDeferred.resolve(null)}async _ensureResponseSafeToCache(e){let t=e,r=!1
76for(const e of this.iterateCallbacks("cacheWillUpdate"))if(r=!0,!(t=await e({request:this.request,response:t,event:this.event})||void 0))break
77return r||t&&200!==t.status&&(t=void 0),t}}class Strategy_Strategy{constructor(e={}){this.cacheName=h.getRuntimeName(e.cacheName),this.plugins=e.plugins||[],this.fetchOptions=e.fetchOptions,this.matchOptions=e.matchOptions}handle(e){const[t]=this.handleAll(e)
78return t}handleAll(e){e instanceof FetchEvent&&(e={event:e,request:e.request})
79const t=e.event,r="string"==typeof e.request?new Request(e.request):e.request,s="params"in e?e.params:void 0,a=new StrategyHandler_StrategyHandler(this,{event:t,request:r,params:s}),n=this._getResponse(a,r,t)
80return[n,this._awaitComplete(n,a,r,t)]}async _getResponse(e,t,r){await e.runCallbacks("handlerWillStart",{event:r,request:t})
81let s=void 0
82try{if(!(s=await this._handle(t,e))||"error"===s.type)throw new WorkboxError_WorkboxError("no-response",{url:t.url})}catch(a){if(a instanceof Error)for(const n of e.iterateCallbacks("handlerDidError"))if(s=await n({error:a,event:r,request:t}))break
83if(!s)throw a}for(const a of e.iterateCallbacks("handlerWillRespond"))s=await a({event:r,request:t,response:s})
84return s}async _awaitComplete(e,t,r,s){let a,n
85try{a=await e}catch(n){}try{await t.runCallbacks("handlerDidRespond",{event:s,request:r,response:a}),await t.doneWaiting()}catch(e){e instanceof Error&&(n=e)}if(await t.runCallbacks("handlerDidComplete",{event:s,request:r,response:a,error:n}),t.destroy(),n)throw n}}class PrecacheStrategy_PrecacheStrategy extends Strategy_Strategy{constructor(e={}){e.cacheName=h.getPrecacheName(e.cacheName),super(e),this._fallbackToNetwork=!1!==e.fallbackToNetwork,this.plugins.push(PrecacheStrategy_PrecacheStrategy.copyRedirectedCacheableResponsesPlugin)}async _handle(e,t){const r=await t.cacheMatch(e)
86return r||(t.event&&"install"===t.event.type?await this._handleInstall(e,t):await this._handleFetch(e,t))}async _handleFetch(e,t){let r
87if(!this._fallbackToNetwork)throw new WorkboxError_WorkboxError("missing-precache-entry",{cacheName:this.cacheName,url:e.url})
88return r=await t.fetch(e)}async _handleInstall(e,t){this._useDefaultCacheabilityPluginIfNeeded()
89const r=await t.fetch(e)
90if(!await t.cachePut(e,r.clone()))throw new WorkboxError_WorkboxError("bad-precaching-response",{url:e.url,status:r.status})
91return r}_useDefaultCacheabilityPluginIfNeeded(){let e=null,t=0
92for(const[r,s]of this.plugins.entries())s!==PrecacheStrategy_PrecacheStrategy.copyRedirectedCacheableResponsesPlugin&&(s===PrecacheStrategy_PrecacheStrategy.defaultPrecacheCacheabilityPlugin&&(e=r),s.cacheWillUpdate&&t++)
930===t?this.plugins.push(PrecacheStrategy_PrecacheStrategy.defaultPrecacheCacheabilityPlugin):t>1&&null!==e&&this.plugins.splice(e,1)}}PrecacheStrategy_PrecacheStrategy.defaultPrecacheCacheabilityPlugin={cacheWillUpdate:async({response:e})=>!e||e.status>=400?null:e},PrecacheStrategy_PrecacheStrategy.copyRedirectedCacheableResponsesPlugin={cacheWillUpdate:async({response:e})=>e.redirected?await copyResponse(e):e}
94class PrecacheController_PrecacheController{constructor({cacheName:e,plugins:t=[],fallbackToNetwork:r=!0}={}){this._urlsToCacheKeys=new Map,this._urlsToCacheModes=new Map,this._cacheKeysToIntegrities=new Map,this._strategy=new PrecacheStrategy_PrecacheStrategy({cacheName:h.getPrecacheName(e),plugins:[...t,new PrecacheCacheKeyPlugin({precacheController:this})],fallbackToNetwork:r}),this.install=this.install.bind(this),this.activate=this.activate.bind(this)}get strategy(){return this._strategy}precache(e){this.addToCacheList(e),this._installAndActiveListenersAdded||(self.addEventListener("install",this.install),self.addEventListener("activate",this.activate),this._installAndActiveListenersAdded=!0)}addToCacheList(e){const t=[]
95for(const r of e){"string"==typeof r?t.push(r):r&&void 0===r.revision&&t.push(r.url)
96const{cacheKey:e,url:s}=createCacheKey(r),a="string"!=typeof r&&r.revision?"reload":"default"
97if(this._urlsToCacheKeys.has(s)&&this._urlsToCacheKeys.get(s)!==e)throw new WorkboxError_WorkboxError("add-to-cache-list-conflicting-entries",{firstEntry:this._urlsToCacheKeys.get(s),secondEntry:e})
98if("string"!=typeof r&&r.integrity){if(this._cacheKeysToIntegrities.has(e)&&this._cacheKeysToIntegrities.get(e)!==r.integrity)throw new WorkboxError_WorkboxError("add-to-cache-list-conflicting-integrities",{url:s})
99this._cacheKeysToIntegrities.set(e,r.integrity)}if(this._urlsToCacheKeys.set(s,e),this._urlsToCacheModes.set(s,a),t.length>0){t.join(", ")
1001}}}install(e){return waitUntil(e,async()=>{const t=new PrecacheInstallReportPlugin
101this.strategy.plugins.push(t)
102for(const[t,r]of this._urlsToCacheKeys){const s=this._cacheKeysToIntegrities.get(r),a=this._urlsToCacheModes.get(t),n=new Request
102(t,{integrity:s,cache:a,credentials:"same-origin"})
103await Promise.all(this.strategy.handleAll({params:{cacheKey:r},request:n,event:e}))}const{updatedURLs:r,notUpdatedURLs:s}=t
104return{updatedURLs:r,notUpdatedURLs:s}})}activate(e){return waitUntil(e,async()=>{const e=await self.caches.open(this.strategy.cacheName),t=await e.keys(),r=new Set(this._urlsToCacheKeys.values()),s=[]
105for(const a of t)r.has(a.url)||(await e.delete(a),s.push(a.url))
106return{deletedURLs:s}})}getURLsToCacheKeys(){return this._urlsToCacheKeys}getCachedURLs(){return[...this._urlsToCacheKeys.keys()]}getCacheKeyForURL(e){const t=new URL(e,location.href)
107return this._urlsToCacheKeys.get(t.href)}async matchPrecache(e){const t=e instanceof Request?e.url:e,r=this.getCacheKeyForURL(t)
108if(r){return(await self.caches.open(this.strategy.cacheName)).match(r)}}createHandlerBoundToURL(e){const t=this.getCacheKeyForURL(e)
109if(!t)throw new WorkboxError_WorkboxError("non-precached-url",{url:e})
110return r=>(r.request=new Request(e),r.params=Object.assign({cacheKey:t},r.params),this.strategy.handle(r))}}let f
111const g=()=>(f||(f=new PrecacheController_PrecacheController),f)
112r("5tLK")
113const _="GET",m=e=>e&&"object"==typeof e?e:{handle:e}
114class Route_Route{constructor(e,t,r=_){this.handler=m(t),this.match=e,this.method=r}setCatchHandler(e){this.catchHandler=m(e)}}class RegExpRoute_RegExpRoute extends Route_Route{constructor(e,t,r){super(({url:t})=>{const r=e.exec(t.href)
115if(r&&(t.origin===location.origin||0===r.index))return r.slice(1)},t,r)}}class Router_Router{constructor(){this._routes=new Map,this._defaultHandlerMap=new Map}get routes(){return this._routes}addFetchListener(){self.addEventListener("fetch",e=>{const{request:t}=e,r=this.handleRequest({request:t,event:e})
116r&&e.respondWith(r)})}addCacheListener(){self.addEventListener("message",e=>{if(e.data&&"CACHE_URLS"===e.data.type){const{payload:t}=e.data
1170
118const r=Promise.all(t.urlsToCache.map(t=>{"string"==typeof t&&(t=[t])
119const r=new Request(...t)
120return this.handleRequest({request:r,event:e})}))
121e.waitUntil(r),e.ports&&e.ports[0]&&r.then(()=>e.ports[0].postMessage(!0))}})}handleRequest({request:e,event:t}){const r=new URL(e.url,location.href)
122if(!r.protocol.startsWith("http"))return void 0
123const s=r.origin===location.origin,{params:a,route:n}=this.findMatchingRoute({event:t,request:e,sameOrigin:s,url:r})
124let i=n&&n.handler
125const o=e.method
126if(!i&&this._defaultHandlerMap.has(o)&&(i=this._defaultHandlerMap.get(o)),!i)return void 0
127let c
128try{c=i.handle({url:r,request:e,event:t,params:a})}catch(e){c=Promise.reject(e)}const h=n&&n.catchHandler
129return c instanceof Promise&&(this._catchHandler||h)&&(c=c.catch(async s=>{if(h){0
130try{return await h.handle({url:r,request:e,event:t,params:a})}catch(e){e instanceof Error&&(s=e)}}if(this._catchHandler)return this._catchHandler.handle({url:r,request:e,event:t})
131throw s})),c}findMatchingRoute({url:e,sameOrigin:t,request:r,event:s}){const a=this._routes.get(r.method)||[]
132for(const n of a){let a
133const i=n.match({url:e,sameOrigin:t,request:r,event:s})
134if(i)return a=i,Array.isArray(a)&&0===a.length?a=void 0:i.constructor===Object&&0===Object.keys(i).length?a=void 0:"boolean"==typeof i&&(a=void 0),{route:n,params:a}}return{}}setDefaultHandler(e,t=_){this._defaultHandlerMap.set(t,m(e))}setCatchHandler(e){this._catchHandler=m(e)}registerRoute(e){this._routes.has(e.method)||this._routes.set(e.method,[]),this._routes.get(e.method).push(e)}unregisterRoute(e){if(!this._routes.has(e.method))throw new WorkboxError_WorkboxError("unregister-route-but-not-found-with-method",{method:e.method})
135const t=this._routes.get(e.method).indexOf(e)
136if(!(t>-1))throw new WorkboxError_WorkboxError("unregister-route-route-not-registered")
137this._routes.get(e.method).splice(t,1)}}let w
138const y=()=>(w||((w=new Router_Router).addFetchListener(),w.addCacheListener()),w)
139function registerRoute(e,t,r){let s
140if("string"==typeof e){const a=new URL(e,location.href)
1410,s=new Route_Route(({url:e})=>e.href===a.href,t,r)}else if(e instanceof RegExp)s=new RegExpRoute_RegExpRoute(e,t,r)
142else if("function"==typeof e)s=new Route_Route(e,t,r)
143else{if(!(e instanceof Route_Route))throw new WorkboxError_WorkboxError("unsupported-route-type",{moduleName:"workbox-routing",funcName:"registerRoute",paramName:"capture"})
144s=e}return y().registerRoute(s),s}class PrecacheRoute_PrecacheRoute extends Route_Route{constructor(e,t){super(({request:r})=>{const s=e.getURLsToCacheKeys()
145for(const e of function*generateURLVariations(e,{ignoreURLParametersMatching:t=[/^utm_/,/^fbclid$/],directoryIndex:r="index.html",cleanURLs:s=!0,urlManipulation:a}={}){const n=new URL(e,location.href)
146n.hash="",yield n.href
147const i=function removeIgnoredSearchParams(e,t=[]){for(const r of[...e.searchParams.keys()])t.some(e=>e.test(r))&&e.searchParams.delete(r)
148return e}(n,t)
149if(yield i.href,r&&i.pathname.endsWith("/")){const e=new URL(i.href)
150e.pathname+=r,yield e.href}if(s){const e=new URL(i.href)
151e.pathname+=".html",yield e.href}if(a){const e=a({url:n})
152for(const t of e)yield t.href}}(r.url,t)){const t=s.get(e)
153if(t)return{cacheKey:t}}},e.strategy)}}function precacheAndRoute(e,t){!function precache(e){g().precache(e)}(e),function addRoute(e){const t=g()
154registerRoute(new PrecacheRoute_PrecacheRoute(t,e))}(t)}const b=(e,t)=>t.some(t=>e instanceof t)
155let R,x
156const v=new WeakMap,E=new WeakMap,C=new WeakMap,k=new WeakMap,P=new WeakMap
157let q={get(e,t,r){if(e instanceof IDBTransaction){if("done"===t)return E.get(e)
158if("objectStoreNames"===t)return e.objectStoreNames||C.get(e)
159if("store"===t)return r.objectStoreNames[1]?void 0:r.objectStore(r.objectStoreNames[0])}return wrap(e[t])},set:(e,t,r)=>(e[t]=r,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e}
160function wrapFunction(e){return e!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?function getCursorAdvanceMethods(){return x||(x=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}().includes(e)?function(...t){return e.apply(S(this),t),wrap(v.get(this))}:function(...t){return wrap(e.apply(S(this),t))}:function(t,...r){const s=e.call(S(this),t,...r)
161return C.set(s,t.sort?t.sort():[t]),wrap(s)}}function transformCachableValue(e){return"function"==typeof e?wrapFunction(e):(e instanceof IDBTransaction&&function cacheDonePromiseForTransaction(e){if(E.has(e))return
162const t=new Promise((t,r)=>{const s=()=>{e.removeEventListener("complete",a),e.removeEventListener("error",n),e.removeEventListener("abort",n)},a=()=>{t(),s()},n=()=>{r(e.error||new DOMException("AbortError","AbortError")),s()}
163e.addEventListener("complete",a),e.addEventListener("error",n),e.addEventListener("abort",n)})
164E.set(e,t)}(e),b(e,function getIdbProxyableTypes(){return R||(R=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}())?new Proxy(e,q):e)}function wrap(e){if(e instanceof IDBRequest)return function promisifyRequest(e){const t=new Promise((t,r)=>{const s=()=>{e.removeEventListener("success",a),e.removeEventListener("error",n)},a=()=>{t(wrap(e.result)),s()},n=()=>{r(e.error),s()}
165e.addEventListener("success",a),e.addEventListener("error",n)})
166return t.then(t=>{t instanceof IDBCursor&&v.set(t,e)}).catch(()=>{}),P.set(t,e),t}(e)
167if(k.has(e))return k.get(e)
168const t=transformCachableValue(e)
169return t!==e&&(k.set(e,t),P.set(t,e)),t}const S=e=>P.get(e)
170const W=["get","getKey","getAll","getAllKeys","count"],L=["put","add","delete","clear"],N=new Map
171function getMethod(e,t){if(!(e instanceof IDBDatabase)||t in e||"string"!=typeof t)return
172if(N.get(t))return N.get(t)
173const r=t.replace(/FromIndex$/,""),s=t!==r,a=L.includes(r)
174if(!(r in(s?IDBIndex:IDBObjectStore).prototype)||!a&&!W.includes(r))return
175const n=async function(e,...t){const n=this.transaction(e,a?"readwrite":"readonly")
176let i=n.store
177return s&&(i=i.index(t.shift())),(await Promise.all([i[r](...t),a&&n.done]))[0]}
178return N.set(t,n),n}!function replaceTraps(e){q=e(q)}(e=>({...e,get:(t,r,s)=>getMethod(t,r)||e.get(t,r,s),has:(t,r)=>!!getMethod(t,r)||e.has(t,r)}))
179r("2KUI")
180const U="workbox-expiration",D="cache-entries",T=e=>{const t=new URL(e,location.href)
181return t.hash="",t.href}
182class CacheTimestampsModel_CacheTimestampsModel{constructor(e){this._db=null,this._cacheName=e}_upgradeDb(e){const t=e.createObjectStore(D,{keyPath:"id"})
183t.createIndex("cacheName","cacheName",{unique:!1}),t.createIndex("timestamp","timestamp",{unique:!1})}_upgradeDbAndDeleteOldDbs(e){this._upgradeDb(e),this._cacheName&&function deleteDB(e,{blocked:t}={}){const r=indexedDB.deleteDatabase(e)
184return t&&r.addEventListener("blocked",()=>t()),wrap(r).then(()=>void 0)}(this._cacheName)}async setTimestamp(e,t){const r={url:e=T(e),timestamp:t,cacheName:this._cacheName,id:this._getId(e)},s=await this.getDb()
185await s.put(D,r)}async getTimestamp(e){const t=await this.getDb(),r=await t.get(D,this._getId(e))
186return null==r?void 0:r.timestamp}async expireEntries(e,t){const r=await this.getDb()
187let s=await r.transaction(D).store.index("timestamp").openCursor(null,"prev")
188const a=[]
189let n=0
190for(;s;){const r=s.value
191r.cacheName===this._cacheName&&(e&&r.timestamp<e||t&&n>=t?a.push(s.value):n++),s=await s.continue()}const i=[]
192for(const e of a)await r.delete(D,e.id),i.push(e.url)
193return i}_getId(e){return this._cacheName+"|"+T(e)}async getDb(){return this._db||(this._db=await function openDB(e,t,{blocked:r,upgrade:s,blocking:a,terminated:n}={}){const i=indexedDB.open(e,t),o=wrap(i)
194return s&&i.addEventListener("upgradeneeded",e=>{s(wrap(i.result),e.oldVersion,e.newVersion,wrap(i.transaction))}),r&&i.addEventListener("blocked",()=>r()),o.then(e=>{n&&e.addEventListener("close",()=>n()),a&&e.addEventListener("versionchange",()=>a())}).catch(()=>{}),o}(U,1,{upgrade:this._upgradeDbAndDeleteOldDbs.bind(this)})),this._db}}class CacheExpiration_CacheExpiration{constructor(e,t={}){this._isRunning=!1,this._rerunRequested=!1,this._maxEntries=t.maxEntries,this._maxAgeSeconds=t.maxAgeSeconds,this._matchOptions=t.matchOptions,this._cacheName=e,this._timestampModel=new CacheTimestampsModel_CacheTimestampsModel(e)}async expireEntries(){if(this._isRunning)return void(this._rerunRequested=!0)
195this._isRunning=!0
196const e=this._maxAgeSeconds?Date.now()-1e3*this._maxAgeSeconds:0,t=await this._timestampModel.expireEntries(e,this._maxEntries),r=await self.caches.open(this._cacheName)
197for(const e of t)await r.delete(e,this._matchOptions)
198this._isRunning=!1,this._rerunRequested&&(this._rerunRequested=!1,dontWaitFor(this.expireEntries()))}async updateTimestamp(e){await this._timestampModel.setTimestamp(e,Date.now())}async isURLExpired(e){if(this._maxAgeSeconds){const t=await this._timestampModel.getTimestamp(e),r=Date.now()-1e3*this._maxAgeSeconds
199return void 0===t||t<r}return!1}async delete(){this._rerunRequested=!1,await this._timestampModel.expireEntries(1/0)}}class ExpirationPlugin_ExpirationPlugin{constructor(e={}){this.cachedResponseWillBeUsed=(async({event:e,request:t,cacheName:r,cachedResponse:s})=>{if(!s)return null
200const a=this._isResponseDateFresh(s),n=this._getCacheExpiration(r)
201dontWaitFor(n.expireEntries())
202const i=n.updateTimestamp(t.url)
203if(e)try{e.waitUntil(i)}catch(e){0}return a?s:null}),this.cacheDidUpdate=(async({cacheName:e,request:t})=>{const r=this._getCacheExpiration(e)
204await r.updateTimestamp(t.url),await r.expireEntries()}),this._config=e,this._maxAgeSeconds=e.maxAgeSeconds,this._cacheExpirations=new Map,e.purgeOnQuotaError&&function registerQuotaErrorCallback(e){i.add(e)}(()=>
204this.deleteCacheAndMetadata())}_getCacheExpiration(e){if(e===h.getRuntimeName())throw new WorkboxError_WorkboxError("expire-custom-caches-only")
205let t=this._cacheExpirations.get(e)
206return t||(t=new CacheExpiration_CacheExpiration(e,this._config),this._cacheExpirations.set(e,t)),t}_isResponseDateFresh(e){if(!this._maxAgeSeconds)return!0
207const t=this._getDateHeaderTimestamp(e)
208return null===t||t>=Date.now()-1e3*this._maxAgeSeconds}_getDateHeaderTimestamp(e){if(!e.headers.has("date"))return null
209const t=e.headers.get("date"),r=new Date(t).getTime()
210return isNaN(r)?null:r}async deleteCacheAndMetadata(){for(const[e,t]of this._cacheExpirations)await self.caches.delete(e),await t.delete()
211this._cacheExpirations=new Map}}class CacheFirst_CacheFirst extends Strategy_Strategy{async _handle(e,t){let r=await t.cacheMatch(e),s=void 0
212if(r)0
213else{0
214try{r=await t.fetchAndCachePut(e)}catch(e){e instanceof Error&&(s=e)}0}if(!r)throw new WorkboxError_WorkboxError("no-response",{url:e.url,error:s})
215return r}}const M={cacheWillUpdate:async({response:e})=>200===e.status||0===e.status?e:null}
216class StaleWhileRevalidate_StaleWhileRevalidate extends Strategy_Strategy{constructor(e={}){super(e),this.plugins.some(e=>"cacheWillUpdate"in e)||this.plugins.unshift(M)}async _handle(e,t){const r=t.fetchAndCachePut(e).catch(()=>{})
217let s,a=await t.cacheMatch(e)
218if(a)0
219else{0
220try{a=await r}catch(e){e instanceof Error&&(s=e)}}if(!a)throw new WorkboxError_WorkboxError("no-response",{url:e.url,error:s})
221return a}}r("jLCR")
222class CacheableResponse{constructor(e={}){this._statuses=e.statuses,this._headers=e.headers}isResponseCacheable(e){let t=!0
223return this._statuses&&(t=this._statuses.includes(e.status)),this._headers&&t&&(t=Object.keys(this._headers).some(t=>e.headers.get(t)===this._headers[t])),t}}class CacheableResponsePlugin_CacheableResponsePlugin{constructor(e){this.cacheWillUpdate=(async({response:e})=>this._cacheableResponse.isResponseCacheable(e)?e:null),this._cacheableResponse=new CacheableResponse(e)}}const K=new RegExp(/\.(?:png|jpg|jpeg)$/),I=e=>Number(new URLSearchParams(e.search).get("width")),A=e=>{let{url:t}=e
224return(e=>K.test(e.pathname))(t)&&!isNaN(I(t))},O=e=>new Promise(t=>{caches.match(e).then(r=>{t(r||(e=>fetch(e,{mode:"no-cors"}).then(t=>caches.open("images").then(r=>r.put(e,t.clone())).then(()=>t)))(e))})}),j=(e,t)=>(()=>!(navigator.connection&&"effectiveType"in navigator.connection)||"4g"===navigator.connection.effectiveType)()?Promise.all(e.urls.map(O)).then(e=>(t.ports[0].postMessage({status:"done"}),e)).catch(e=>(t.ports[0].postMessage({status:"error",message:JSON.stringify(e)}),null)):(t.ports[0].postMessage({status:"error",message:"Slow Network detected. Not pre-fetching images. ".concat(e.urls)}),null)
225importScripts("https://storage.googleapis.com/workbox-cdn/releases/5.1.3/workbox-sw.js"),importScripts("https://client-version.cf.emarsys.net/web-emarsys-sdk-v4/latest/web-emarsys-service-worker.js"),function skipWaiting(){self.skipWaiting()}(),function clientsClaim(){self.addEventListener("activate",()=>self.clients.claim())}(),precacheAndRoute([{'revision':null,'url':'/1.17d32d8e506f16ee941e.js'},{'revision':null,'url':'/14.16c78aaefaecc86d7eb0.js'},{'revision':null,'url':'/15.64bd2303174c53908cd2.js'},{'revision':null,'url':'/16.75eff1c86f9b4269eba4.js'},{'revision':null,'url':'/17.fc85b389d6e49b94cea1.js'},{'revision':null,'url':'/18.df47d06a7e60c333eb74.js'},{'revision':null,'url':'/19.6f7b24595c3d92fa1746.js'},{'revision':null,'url':'/2.2272b5c4f869f9ae8921.js'},{'revision':null,'url':'/20.1ecb60b69626846336b1.js'},{'revision':null,'url':'/21.883dbaff2bd430804e58.js'},{'revision':null,'url':'/22.3ab6729c5f8bceb86889.js'},{'revision':null,'url':'/23.8241a48f891e1e55530f.js'},{'revision':null,'url':'/24.dfa4a5d4381b529a77ed.js'},{'revision':null,'url':'/25.13b71f7b8ef058e8a2a1.js'},{'revision':null,'url':'/26.0067d7562bd7400abf25.js'},{'revision':null,'url':'/27.4bc9f6ed6576b8e4e69f.js'},{'revision':null,'url':'/28.fd22a99e94e20881718d.js'},{'revision':null,'url':'/29.0d4c7462b9008f94bab5.js'},{'revision':null,'url':'/3.ce96c38dfef7ac81c454.js'},{'revision':null,'url':'/30.6d1e29f870bf9860b41f.js'},{'revision':null,'url':'/31.02733cdbbe18767d147c.js'},{'revision':null,'url':'/32.2b5578ae3ed10d8d7b34.js'},{'revision':null,'url':'/33.277ff6f3a2b380c46373.js'},{'revision':null,'url':'/34.825cbb7b3e753e1601d5.js'},{'revision':null,'url':'/35.71933f2679b1580b825b.js'},{'revision':null,'url':'/36.044e21b54d7524fa57d8.js'},{'revision':null,'url':'/37.7db27eac63d8d4798d21.js'},{'revision':null,'url':'/38.fa85b5678d25a1b95ec5.js'},{'revision':null,'url':'/39.2068d0dabcf7a9447ad4.js'},{'revision':null,'url':'/4.b3b7bbb6dafa631bdc49.js'},{'revision':null,'url':'/40.c08e759514f7fc8668b1.js'},{'revision':null,'url':'/41.28522d925d0eab8b4b07.js'},{'revision':null,'url':'/42.792f851f59e088c9dae0.js'},{'revision':null,'url':'/43.51ac2d4fde97418335f2.js'},{'revision':null,'url':'/44.677fafa1300cc5d8776a.js'},{'revision':null,'url':'/45.273506a479d04b1c7de0.js'}
225,{'revision':null,'url':'/46.8521670348a4acf00c8e.js'},{'revision':null,'url':'/47.f7977e2e2f3dd8ca86cd.js'},{'revision':null,'url':'/48.0d2344d7dfd42e489911.js'},{'revision':null,'url':'/49.394ef69b72f5d5c107e9.js'},{'revision':null,'url':'/50.0c3d38b4f0b76daab97d.js'},{'revision':null,'url':'/RootCmp_CATEGORY__default.71cdd1107f4bd34973d9.js'},{'revision':null,'url':'/RootCmp_CMS_PAGE__default.4070711088c3bfb227f5.js'},{'revision':null,'url':'/RootCmp_PRODUCT__default.01d6e85e9bb648015d72.js'},{'revision':'d7bf022dced850400ce8ba7c6aa08fcf','url':'/alert-rCz.svg'},{'revision':'b283a565b1a35e870f8cefd5d41881dd','url':'/arrow-tmr.svg'},{'revision':'d6517ec718e44749e8e1d28244ede18d','url':'/bmn-logo-block-iwb.svg'},{'revision':'140e9f80baf54c998396f31d1e856427','url':'/checked-orange-5S8.svg'},{'revision':'72ff648a2bc4e992057413e427bdb55c','url':'/chevron-down-crZ.svg'},{'revision':'5982657286853c765f9b00cb9707689a','url':'/facebook-white-k4S.svg'},{'revision':'a313fa2d975cad5384e33cac6d9e379d','url':'/google-play-store-light-kq1.svg'},{'revision':null,'url':'/i18n-en_US.6ae0a57f2e16cfea2a83.js'},{'revision':null,'url':'/i18n-nl_NL.e5bfd14d3e76e3bd4d65.js'},{'revision':'d973db793ff791071fb341b50ecf25a9','url':'/ideal-mTs.svg'},{'revision':'83e67e225c60d69f7bdcba9506080388','url':'/ios-app-store-light-hN8.svg'},{'revision':'aa7b4327849d78a6b1f3d04c327725d1','url':'/linkedin-white-rPV.svg'},{'revision':'b59d1ff35a0eb7d82c7ee4d568ab8f56','url':'/list-with-dots-bFX.svg'},{'revision':'2d658c6045e37a7467962b56a1902560','url':'/marker-cSB.svg'},{'revision':'3fb5e90676f1f3c77e83ba1c4abef476','url':'/marker-fFY.svg'},{'revision':'38311e7a703171121aac0b163d381ab4','url':'/pagebuilder-arrow-right-oeU.svg'},{'revision':'c6836090434414e135ac040078861046','url':'/pin-black-9DN.svg'},{'revision':'5d111b6f7369f50a963d968e520cc4de','url':'/progress-1-tvt.svg'},{'revision':'0efb2c39807c1e63732894c9fec8a387','url':'/progress-2-hKs.svg'},{'revision':'9e9f4a1f0b30918469aa1fd536017a1c','url':'/progress-3-4vX.svg'},{'revision':null,'url':'/runtime.10aab6c5bcbc9b62556d.js'},{'revision':null,'url':'/vendors.7cbd3a42888806038058.js'},{'revision':null,'url':'/vendors~RootCmp_PRODUCT__default.b65240b3bf99fb783cfa.js'},{'revision':null,'url':'/vendors~RootCmp_SEARCH__default.03e62094018793aa7dda.js'},{'revision':'185918fc05afc092daf83df3a11e7d13','url':'/youtube-white-3pz.svg'}]||[]),function(){const e=(()=>new CacheFirst_CacheFirst({cacheName:"images",plugins:[new ExpirationPlugin_ExpirationPlugin({maxEntries:60,maxAgeSeconds:2592e3}),new CacheableResponsePlugin_CacheableResponsePlugin({statuses:[0,200]})]}))()
226registerRoute(new RegExp("(robots.txt|favicon.ico|manifest.json)"),new StaleWhileRevalidate_StaleWhileRevalidate),registerRoute(A,t=>{let{url:r,request:s,event:a}=t
227const n=(async e=>{const t=I(e),r=e.pathname.split("/").reverse()[0],s=await caches.open("images"),a=await s.keys(),n=await a.filter(e=>{let{url:t}=e
228return new URL(t).pathname.split("/").reverse()[0]===r})
229let i={difference:1/0,candidate:null}
230for(const e of n){const r=I(new URL(e.url))
231if(isNaN(r))continue
232const a=r-t
233if(!(a<0)){if(0===a)return await s.match(e)
234a<i.difference&&(i={difference:a,candidate:e})}}if(i.candidate)return await s.match(i.candidate)})(r)
235return a.waitUntil(n),n.then(t=>t||e.handle({request:s,event:a}))}),registerRoute(/\.(?:png|gif|jpg|jpeg|svg)$/,new CacheFirst_CacheFirst({cacheName:"images",plugins:[new ExpirationPlugin_ExpirationPlugin({maxEntries:60,maxAgeSeconds:2592e3})]})),registerRoute(new RegExp(/\.js$/),new CacheFirst_CacheFirst),registerRoute(e=>{let{url:t}=e
236return(e=>(e=>{if("/"===e.pathname)return!0})(e)||new RegExp("\\.html$").test(e.pathname)&&!(e=>"/checkout"===e.pathname))(t)},new StaleWhileRevalidate_StaleWhileRevalidate({plugins:[{cacheKeyWillBeUsed:()=>"index.html"}],cacheName:d.precache}))}(),((e,t)=>(s[e]||(s[e]=[]),s[e].push(t),()=>a(e,t)))("PREFETCH_IMAGES",j),self.addEventListener("message",e=>{const{type:t,payload:r}=e.data;((e,t,r)=>{const a=s[e]
237a&&a.forEach(e=>{e(t,r)})})(t,r,e)})},"2KUI":function(e,t,r){"use strict"
238try{self["workbox:expiration:6.2.4"]&&_()}catch(e){}},"5tLK":function(e,t,r){"use strict"
239try{self["workbox:routing:6.2.4"]&&_()}catch(e){}},Bxln:function(e,t,r){"use strict"
240try{self["workbox:core:6.2.4"]&&_()}catch(e){}},aqiC:function(e,t,r){"use strict"
241try{self["workbox:strategies:6.2.4"]&&_()}catch(e){}},jLCR:function(e,t,r){"use strict"
242try{self["workbox:cacheable-response:6.2.4"]&&_()}catch(e){}},xwD5:function(e,t,r){"use strict"
243try{self["workbox:precaching:6.2.4"]&&_()}catch(e){}}})

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.