PageSourceSearch

https://www.kilburntimes.co.uk/news/26570077.new-aldi-store-willesden-high-road-opening-date-revealed/

html kilburntimes.co.uk collected 2026-09-24 20:00:14 UTC 285,485 bytes, 4,417 lines download raw bytes

1<!-- standard - CustomHeader-Site.html --> <!DOCTYPE html>
2<html lang="en" xmlns:fb="http://www.facebook.com/2008/fbml" xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://ogp.me/ns#">
3<head>
4    
5    <link rel="preconnect" href="https://d2zv5rkii46miq.cloudfront.net" />
6    <link rel="preconnect" href="https://visitanalytics.userreport.com" />
7    <link rel="preconnect" href="https://a02342.kilburntimes.co.uk" />
8    <link rel="preconnect" href="https://securepubads.g.doubleclick.net" />
9    <link rel="preconnect" href="https://cdn.adsafeprotected.com" />
10    <link rel="preconnect" href="https://micro.rubiconproject.com" />
11    <link rel="preconnect" href="https://experience.tinypass.com" />
12    <link rel="preconnect" href="https://c.amazon-adsystem.com" />
13    <link rel="preconnect" href="https://tpc.googlesyndication.com">
14    <link rel="preconnect" href="https://pagead2.googlesyndication.com">
15    <link rel="preconnect" href="https://www.googletagservices.com">
16    <link rel="preconnect" href="https://cdn.ampproject.org">
17    <link rel="preconnect" href="https://securepubads.g.doubleclick.net">
18
19    <title>New Aldi store in Willesden High Road opening date revealed | Brent &amp; Kilburn Times</title>
20
21    <meta charset="utf-8">
22    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=1">
23    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
24    <meta name="OMG-Verify-V1" content="4389-366acdfc-5224-4c07-bb70-f74d8fbfc2db" />
25    <meta name="robots" content="max-image-preview:large">
26    <meta name="format-detection" content="telephone=no">
27
28    
28<script type="text/javascript">(window.NREUM||(NREUM={})).init={privacy:{cookies_enabled:true},ajax:{deny_list:["*"]},session_trace:{sampling_rate:0.0,mode:"FIXED_RATE",enabled:true,error_sampling_rate:0.0},performance:{capture_marks:false,capture_detail:false,capture_measures:true},browser_consent_mode:{enabled:false},distributed_tracing:{enabled:true}};(window.NREUM||(NREUM={})).loader_config={agentID:"1134382346",accountID:"962803",trustKey:"962803",xpid:"XQAFWVZQGwIAXFhTAAYBVFI=",licenseKey:"fd15ff24ac",applicationID:"1089177626",browserID:"1134382346"};;/*! For license information please see nr-loader-spa-1.322.0.min.js.LICENSE.txt */
29(()=>{var e={8122(e,t,r){"use strict";r.d(t,{a:()=>i});var n=r(944);function i(e,t){try{if(!e||"object"!=typeof e)return(0,n.R)(3);if(!t||"object"!=typeof t)return(0,n.R)(4);const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),s=0===Object.keys(r).length?e:r;for(let a in s)if(void 0!==e[a])try{if(null===e[a]){r[a]=null;continue}Array.isArray(e[a])&&Array.isArray(t[a])?r[a]=Array.from(new Set([...e[a],...t[a]])):e[a]instanceof Map||e[a]instanceof Set||e[a]instanceof Date||e[a]instanceof RegExp?r[a]=e[a]:"object"==typeof e[a]&&null!==t[a]&&"object"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){r[a]||(0,n.R)(1,e)}return r}catch(e){(0,n.R)(2,e)}}},2555(e,t,r){"use strict";r.d(t,{f:()=>a});var n=r(384),i=r(8122);const s={beacon:n.NT.beacon,errorBeacon:n.NT.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0};function a(e){try{return!!e.licenseKey&&!!e.errorBeacon&&!!e.applicationID}catch(e){return!1}}r.d(t,["D",0,e=>(0,i.a)(e,s)])},7699(e,t,r){"use strict";var n=r(860);const i={[n.K7.logging]:!0,[n.K7.genericEvents]:!0,[n.K7.jserrors]:!0,[n.K7.ajax]:!0};r.d(t,["It",0,1e6,"KC",0,i,"qh",0,"SESSION_ERROR"])},9324(e,t,r){"use strict";r.d(t,["A",0,"@newrelic/rrweb","x",0,"1.322.0"])},981(e,t,r){"use strict";r.d(t,["R",0,{AJAX:"AjaxRequest",PA:"PageAction",UA:"UserAction",BP:"BrowserPerformance",WS:"WebSocket",SPV:"SecurityPolicyViolation",JSE:"JavaScriptError",LOG:"Log",PVE:"PageView",PVT:"PageViewTiming",SR:"SessionReplay",ST:"SessionTrace",BI:"BrowserInteraction"}])},9752(e,t,r){"use strict";const n="newrelic-iframe-",i=n+"timing-update",s=n+"api",a=n+"api-response",o=n+"vitals-update",c=n+"ajax";r.d(t,["$8",0,o,"Gi",0,a,"KU",0,c,"Pl",0,n,"cS",0,s,"cr",0,i])},6154(e,t,r){"use strict";var n=r(1863);const i="undefined"!=typeof window&&!!window.document,s="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),a=i?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),o=Boolean("hidden"===a?.document?.visibilityState),c=""+a?.location,d=/iPad|iPhone|iPod/.test(a.navigator?.userAgent),u=d&&"undefined"==typeof SharedWorker,l=(()=>{const e=a.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);return Array.isArray(e)&&e.length>=2?+e[1]:0})(),f=Date.now()-(0,n.t)();r.d(t,["OF",0,d,"RI",0,i,"WN",0,f,"bv",0,s,"gm",0,a,"lR",0,l,"m",0,c,"mw",0,o,"sb",0,u,"zk",0,()=>{const e=a?.performance?.getEntriesByType?.("navigation")?.[0];if(e&&e.responseStart>0&&e.responseStart<a.performance.now())return e}])},7295(e,t,r){"use strict";r.d(t,{Xv:()=>a,gX:()=>i,iW:()=>s});var n=[];function i(e){if(!e||s(e))return!1;if(0===n.length)return!0;if("*"===n[0].hostname)return!1;for(var t=0;t<n.length;t++){var r=n[t];if(r.hostname.test(e.hostname)&&r.pathname.test(e.pathname))return!1}return!0}function s(e){return void 0===e.hostname}function a(e){if(n=[],e&&e.length)for(var t=0;t<e.length;t++){let r=e[t];if(!r)continue;if("*"===r)return void(n=[{hostname:"*"}]);0===r.indexOf("http://")?r=r.substring(7):0===r.indexOf("https://")&&(r=r.substring(8));const i=r.indexOf("/");let s,a;i>0?(s=r.substring(0,i),a=r.substring(i)):(s=r,a="*");let[c]=s.split(":");n.push({hostname:o(c),pathname:o(a,!0)})}}function o(e,t=!1){const r=e.replace(/[.+?^${}()|[\]\\]/g,e=>"\\"+e).replace(/\*/g,".*?");return new RegExp((t?"^":"")+r+"$")}},3241(e,t,r){"use strict";r.d(t,{W:()=>i});var n=r(6154);function i(e={}){try{n.gm.dispatchEvent(new CustomEvent("newrelic",{detail:e}))}catch(e){}}},1687(e,t,r){"use strict";r.d(t,{Ak:()=>o,Ze:()=>d,x3:()=>c});var n=r(3241),i=r(3606),s=r(860),a=r(2646);function o(e,t){if(!e)return;const r={staged:!1,priority:s.P3[t]||0};
29e.runtime.drainRegistry.get(t)||e.runtime.drainRegistry.set(t,r)}function c(e,t){if(!e)return;const r=e.runtime.drainRegistry;r&&(r.get(t)&&r.delete(t),l(e,t,!1),r.size&&u(e))}function d(e,t="feature",r=!1){if(e){if(!e.runtime.drainRegistry.get(t)||r)return l(e,t);e.runtime.drainRegistry.get(t).staged=!0,u(e)}}function u(e){if(!e)return;const t=Array.from(e.runtime.drainRegistry);t.every(([e,t])=>t.staged)&&(t.sort((e,t)=>e[1].priority-t[1].priority),t.forEach(([t])=>{e.runtime.drainRegistry.delete(t),l(e,t)}))}function l(e,t,r=!0){if(!e)return;const s=e.ee,o=i.i.handlers;if(s&&!s.aborted&&s.backlog&&o){if((0,n.W)({type:"lifecycle",name:"drain",feature:t}),r){const e=s.backlog[t],r=o[t];if(r){for(let t=0;e&&t<e.length;++t)f(e[t],r);Object.entries(r).forEach(([e,t])=>{Object.values(t||{}).forEach(t=>{t[0]?.on&&t[0].context()instanceof a.y&&!t[0].listeners(e).includes(t[1])&&t[0].on(e,t[1])})})}}s.isolatedBacklog||delete o[t],s.backlog[t]=null,s.emit("drain-"+t,[])}}function f(e,t){var r=e[1];Object.values(t[r]||{}).forEach(t=>{var r=e[0];if(t[0]===r){var n=t[1],i=e[3],s=e[2];n.apply(i,s)}})}},7836(e,t,r){"use strict";var n=r(384),i=r(8990),s=r(2646),a=r(5607);const o="nr@context:".concat(a.W),c=function e(t,r){var n={},a={},u={},l=!1;try{l=16===r.length&&d.initializedAgents?.[r]?.runtime.isolatedBacklog}catch(e){}var f={on:p,addEventListener:p,removeEventListener:function(e,t){var r=n[e];if(!r)return;for(var i=0;i<r.length;i++)r[i]===t&&r.splice(i,1)},emit:function(e,r,n,i,s){!1!==s&&(s=!0);if(c.aborted&&!i)return;t&&s&&t.emit(e,r,n);var o=h(n);g(e).forEach(e=>{e.apply(o,r)});var d=v()[a[e]];d&&d.push([f,e,r,o]);return o},get:m,listeners:g,context:h,buffer:function(e,t){const r=v();if(t=t||"feature",f.aborted)return;Object.entries(e||{}).forEach(([e,n])=>{a[n]=t,t in r||(r[t]=[])})},abort:function(){f._aborted=!0,Object.keys(f.backlog).forEach(e=>{delete f.backlog[e]})},isBuffering:function(e){return!!v()[a[e]]},debugId:r,backlog:l?{}:t&&"object"==typeof t.backlog?t.backlog:{},isolatedBacklog:l};return Object.defineProperty(f,"aborted",{get:()=>{let e=f._aborted||!1;return e||(t&&(e=t.aborted),e)}}),f;function h(e){return e&&e instanceof s.y?e:e?(0,i.I)(e,o,()=>new s.y(o)):new s.y(o)}function p(e,t){n[e]=g(e).concat(t)}function g(e){return n[e]||[]}function m(t){return u[t]=u[t]||e(f,t)}function v(){return f.backlog}}(void 0,"globalEE"),d=(0,n.Zm)();d.ee||(d.ee=c),r.d(t,["P",0,o,"ee",0,c])},2646(e,t,r){"use strict";r.d(t,{y:()=>n});class n{constructor(e){this.contextId=e}}},9908(e,t,r){"use strict";r.d(t,{d:()=>n,p:()=>i});var n=r(7836).ee.get("handle");function i(e,t,r,i,s){s?(s.buffer([e],i),s.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},3606(e,t,r){"use strict";r.d(t,{i:()=>s});var n=r(9908);s.on=a;var i=s.handlers={};function s(e,t,r,s){a(s||n.d,i,e,t,r)}function a(e,t,r,i,s){s||(s="feature"),e||(e=n.d);var a=t[s]=t[s]||{};(a[r]=a[r]||[]).push([e,i])}},3878(e,t,r){"use strict";function n(e,t){return{capture:e,passive:!1,signal:t}}function i(e,t,r=!1,i){window.addEventListener(e,t,n(r,i))}function s(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=>s,jT:()=>n,sp:()=>i})},5607(e,t,r){"use strict";const n=(0,r(9566).bz)();r.d(t,["W",0,n])},9566(e,t,r){"use strict";r.d(t,{LA:()=>a,ZF:()=>o,bz:()=>s,el:()=>c});var n=r(6154);function i(e,t){return e?15&e[t]:16*Math.random()|0}function s(){const e=n.gm?.crypto||n.gm?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(30))),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".split("").map(e=>"x"===e?i(t,r++).toString(16):"y"===e?(3&i()|8).toString(16):e).join("")}function a(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,s=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(e)));const a=[];for(var o=0;o<e;o++)a.push(i(r,s++).toString(16));return a.join("")}function o(){return a(16)}function c(){return a(32)}},2614(e,t,r){"use strict";r.d(t,["BB",0,18e5,"Wt",0,"NRBA_SESSION::","g",0,{OFF:0,FULL:1,ERROR:2},"iL",0,{SAME_TAB:"same-tab",CROSS_TAB:"cross-tab"},"tS",0,{STARTED:"session-started",PAUSE:"session-pause",RESET:"session-reset",RESUME:"session-resume",UPDATE:"session-update"},"wk",0,144e5])},733(e,t,r){"use strict";function n(e,t){return function(e){let t=2166136261;for(let r=0;r<e.length;r++)t^=e.charCodeAt(r),t=Math.imul(t,16777619);return(t>>>0).toString(16).padStart(8,"0")}("".concat(String(e),":").concat(String(t)))}r.d(t,{Y:()=>n})},1863(e,t,r){"use strict";function n(){return Math.floor(performance.now())}r.d(t,{t:()=>n})},9119(e,t,r){"use strict";r.d(t,{L:()=>s});var n=/([^?#]*)[^#]*(#[^?]*|$).*/,i=/([^?#]*)().*/;function s(e,t){return e?e.replace(t?n:i,"$1$2"):e}},7485(e,t,r){"use strict";r.d(t,{D:()=>i});var n=r(6154);function i(e){if(0===(e||"").indexOf("data:"))return{protocol:"data"};try{const t=new URL(e,location.href),r={port:t.port,hostname:t.hostname,pathname:t.pathname,search:t.search,protocol:t.protocol.slice(0,t.protocol.indexOf(":")),sameOrigin:t.protocol===n.gm?.location?.protocol&&t.host===n.gm?.location?.host};return r.port&&""!==r.port||("http:"===t.protocol&&(r.port="80"),"https:"===t.protocol&&(r.port="443")),r.pathname&&""!==r.pathname?r.pathname.startsWith("/")||(r.pathname="/".concat(r.pathname)):r.pathname="/",r}catch(e){return{}}}},7866(e,t,r){"use strict";r.d(t,["Nc",0,/^\s*at Function code \(Function code:\d+:\d+\)\s*/i,"cn",0,/^\s*(?:([^@]*)(?:\(.*?\))?@)?((?:file|http|https|chrome|safari-extension).*?):(\d+)(?::(\d+))?\s*$/i,"fL",0,/^\s*at .+ \(eval at \S+ \((?:(?:file|http|https):[^)]+)?\)(?:, [^:]*:\d+:\d+)?\)$/i,"h3",0,/function (.+?)\s*\(/,"hB",0,/^\s*at (?:((?:\[object object\])?(?:[^(]*\([^)]*\))*[^()]*(?: \[as \S+\])?) )?\(?((?:file|http|https|chrome-extension):.*?)?:(\d+)(?::(\d+))?\)?\s*$/i])},944(e,t,r){"use strict";r.d(t,{R:()=>i});var n=r(3241);function i(e,t){"function"==typeof console.debug&&(console.debug("New Relic Warning: https://github.com/newrelic/newrelic-browser-agent/blob/main/docs/warning-codes.md#".concat(e),t),(0,n.W)({drained:null,type:"data",name:"warn",feature:"warn",data:{code:e,secondary:t}}))}},8990(e,t,r){"use strict";r.d(t,{I:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},6389(e,t,r){"use strict";function n(e,t=500,r={}){const n=r?.leading||!1;let i;return(...r)=>{n&&void 0===i&&(e.apply(this,r),i=setTimeout(()=>{i=clearTimeout(i)},t)),n||(clearTimeout(i),i=setTimeout(()=>{e.apply(this,r)},t))}}function i(e){let t=!1;return(...r)=>{t||(t=!0,e.apply(this,r))}}r.d(t,{J:()=>i,s:()=>n})},1910(e,t,r){"use strict";r.d(t,{i:()=>s});var n=r(944);const i=new Map;function s(...e){return e.every(e=>{if(i.has(e))return i.get(e);const t="function"==typeof e?e.toString():"",r=t.includes("[native code]"),s=t.includes("nrWrapper");return r||s||(0,n.R)(64,e?.name||t),i.set(e,r),r})}},3304(e,t,r){"use strict";r.d(t,{A:()=>i});var n=r(7836);function i(e){try{return JSON.stringify(e,(()=>{const e=new WeakSet;return(t,r)=>{if("object"==typeof r&&null!==r){if(e.has(r))return;e.add(r)}return r}})())??""}catch(e){try{n.ee.emit("internal-error",[e])}catch(e){}return""}}},9232(e,t,r){"use strict";r.d(t,["f",0,{MFE:"MFE",BA:"BA"}])},7560(e,t,r){"use strict";r.d(t,{N:()=>a,j:()=>c});var n=r(9119),i=r(944);const s=(0,r(6389).J)(e=>(0,i.R)(80,e));function a(e){if(!Array.isArray(e?.assets)||!e.assets.length)return;
29const t=e.assets.map(o).filter(Boolean);return t.length?{assets:t,scripts:t.filter(e=>e.isScript)}:void 0}function o(e){if(!e||"object"!=typeof e)return;const{matcher:t,type:r}=e;let i="string"==typeof t&&t.endsWith(".js");return void 0!==r&&(!function(e){return"script"===e||"asset"===e}(r)?s(r):i=function(e){return"script"===e}(r)),a=t,"[object RegExp]"===Object.prototype.toString.call(a)?{pattern:t,test:e=>(t.lastIndex=0,t.test((0,n.L)(e))),isScript:i}:"string"==typeof t&&t.length>0?{pattern:t,test:e=>(0,n.L)(e).includes(t),isScript:i}:void s(t);var a}function c(e,t,{scriptsOnly:r=!1}={}){if(!e||!t)return!1;return(r?e.scripts:e.assets).some(e=>e.test(t))}},5718(e,t,r){"use strict";r.d(t,{xo:()=>T,AZ:()=>v,cI:()=>g,Qr:()=>A,QL:()=>y});var n=r(6154),i=r(1863),s=r(9119),a=r(7866);class o{dom=new c;performance=new c;constructor(e){this.url=e,this.claimedBy=new Set}get script(){const e=Math.max(this.dom.start,this.performance.end);return{start:e,end:Math.max(this.dom.end,this.performance.end,e)}}}class c{start=0;end=0;value=void 0}function d(e=()=>{},t){return{get:()=>void 0!==t?t:e(),set:e=>{t=e}}}let u;try{u=v(y())[0]}catch(e){u=v(e)[0]}const l=new Map;let f=[];const h=new WeakMap;function p(e){let t=h.get(e);return t||(t={weighedAssetUrls:new Set,recordManifestScriptWindow:(t,r)=>{t&&(e.scriptStart=e.scriptStart>0?Math.min(e.scriptStart,t):t),r&&(e.scriptEnd=e.scriptEnd>0?Math.max(e.scriptEnd,r):r)}},h.set(e,t)),t}function g(e){return l.get(e)}function m(e){const t=g(e);
29if(t)return t;const r=new o(e);if(l.set(e,r),l.size>1e3){const e=l.keys().next().value;l.delete(e)}return r}if(n.gm.MutationObserver&&n.gm.document){new MutationObserver(e=>{e.forEach(e=>{e.addedNodes.forEach(e=>{if("SCRIPT"===e.nodeName&&e.src){const t=m((0,s.L)(e.src));t.dom.start=(0,i.t)(),t.dom.value=e;const r=()=>{t.dom.end=(0,i.t)()};["load","error"].forEach(t=>e.addEventListener(t,r,{once:!0}))}})})}).observe(n.gm.document,{childList:!0,subtree:!0})}if(n.gm.PerformanceObserver?.supportedEntryTypes.includes("resource")){new PerformanceObserver(e=>{e.getEntries().forEach(e=>{if((e=>"script"===e.initiatorType||["link","fetch"].includes(e.initiatorType)&&(0,s.L)(e.name).endsWith(".js"))(e)){const t=m((0,s.L)(e.name));t.performance.start=Math.floor(e.startTime),t.performance.end=Math.floor(e.responseEnd),t.performance.value=e}if(!f.length)return;const t=[];f.forEach(({test:r,addedAt:n},s)=>{(r(e)||(0,i.t)()-n>1e4)&&t.push(s)}),f=f.filter((e,r)=>!t.includes(r))})}).observe({type:"resource",buffered:!0})}function v(e){if(!e||"string"!=typeof e)return[];const t=new Set,r=e.split("\n");for(const e of r){const r=e.match(a.cn)||e.match(a.hB)||e.match(a.fL);if(r&&r[2])t.add((0,s.L)(r[2]));else{const r=e.match(/\(([^)]+\.js):\d+:\d+\)/)||e.match(/^\s+at\s+([^\s(]+\.js):\d+:\d+/);r&&r[1]&&t.add((0,s.L)(r[1]))}}return[...t]}function y(){let e;try{const t=Error.stackTraceLimit;Error.stackTraceLimit=50,e=(new Error).stack,Error.stackTraceLimit=t}catch(t){e=(new Error).stack}return e}function b(e,t){return(0,s.L)(e.name)===t}function E(e,t){e.fetchStart=Math.floor(t.startTime),e.fetchEnd=Math.floor(t.responseEnd),e.asset=t.name,e.type=t.initiatorType,w(e,t)}function w(e,t){const r=(0,s.L)(t.name),{weighedAssetUrls:n}=p(e);n.has(r)||(n.add(r),e.totalWeight=(e.totalWeight||0)+(t.transferSize||0),"blocking"===t.renderBlockingStatus?e.renderBlocking=!0:"non-blocking"===t.renderBlockingStatus&&!0!==e.renderBlocking&&(e.renderBlocking=!1))}function R(e,t,r,n,i){if(w(e,t),"scripts"!==i&&"all"!==i)return;if("all"===i||r.isScript){const r=Math.floor(t.startTime),n=Math.floor(t.responseEnd);e.fetchStart=e.fetchStart>0?Math.min(e.fetchStart,r):r,e.fetchEnd=e.fetchEnd>0?Math.max(e.fetchEnd,n):n}if(r.isScript){const r=g((0,s.L)(t.name));if(r){const t=()=>{const{start:t,end:n}=r.script;p(e).recordManifestScriptWindow(t,n)};t(),!r.dom.end&&r.dom.value&&["load","error"].forEach(e=>r.dom.value.addEventListener(e,t,{once:!0}))}n.resolved||(e.asset=t.name,e.type=t.initiatorType,n.resolved=!0)}}function T(e,t){const r=t?.manifest;if(!r||!r.assets.length)return;const s={resolved:!1},a=new Set(r.assets);(n.gm.performance?.getEntriesByType("resource")||[]).forEach(r=>{const n=[...a].find(e=>e.test(r.name));n&&(R(e,r,n,s,t.timingMethod),a.delete(n))}),a.size&&function(e,t,r,s){n.gm.PerformanceObserver?.supportedEntryTypes?.includes("resource")&&f.push({addedAt:(0,i.t)(),test:n=>{const i=[...t].find(e=>e.test(n.name));return i&&(R(e,n,i,r,s),t.delete(i)),0===t.size}})}(e,a,s,t.timingMethod)}function A(e){const t=e?.id,r={registeredAt:(0,i.t)(),reportedAt:void 0,fetchStart:0,fetchEnd:0,scriptStart:0,scriptEnd:0,asset:void 0,type:"unknown",totalWeight:0,renderBlocking:void 0},a=y();if(!a)return r;const o=n.gm.performance?.getEntriesByType("navigation")?.[0]?.name||"";try{const e=v(a),c=(e.length>1?e.filter(e=>u!==e):e)[0];if(!c)return r;if(o.includes(c))return r.asset=(0,s.L)(o),r.type="inline",r;r.correlation=g(c);const l=r.correlation?.performance.value||n.gm.performance?.getEntriesByType("resource")?.find(e=>b(e,c));if(l)E(r,l);else{(function(e){if(!e||!n.gm.document)return!1;try{const t=n.gm.document.querySelectorAll('link[rel="preload"][as="script"]');for(const r of t)if((0,s.L)(r.href)===e)return!0}catch(e){}return!1})(c)&&(r.asset=c,r.type="preload"),function(e,t){n.gm.PerformanceObserver?.supportedEntryTypes?.includes("resource")&&f.push({addedAt:(0,i.t)(),test:r=>!!b(r,t)&&(E(e,r),!0)})}(r,c)}const h=r.correlation,m=!!t&&!!h?.claimedBy.has(t);h&&t&&h.claimedBy.add(t);const y=()=>{const e=h?.script.start;if(!m||!e)return!1;return r.registeredAt-e>1e4};let w=0,R=0;p(r).recordManifestScriptWindow=(e,t)=>{e&&(w=w>0?Math.min(w,e):e),t&&(R=R>0?Math.max(R,t):t)},Object.defineProperty(r,"scriptStart",d(()=>{const e=y()?r.registeredAt:h?.script.start??r.fetchEnd;return w>0?Math.min(e,w):e})),Object.defineProperty(r,"scriptEnd",d(()=>{const e=y()?r.registeredAt:h?.script.end??r.registeredAt;return R>0?Math.max(e,R):e}))}catch(e){}return r}},5732(e,t,r){"use strict";r.d(t,{$5:()=>m,B5:()=>g,K6:()=>u,M$:()=>
29o,Ms:()=>d,NG:()=>c,Ux:()=>h,YA:()=>p,yx:()=>l});var n=r(5718),i=r(7560),s=r(9119),a=r(9232);function o(e){return e?.type===a.f.MFE}function c(e,t){if(!y(e,t))return;const r=t.runtime.registeredEntities;return r?.find(t=>t.metadata.target.iframeInterfaceId===e)}function d(e,t){if(!y(e,t))return[];const r=t.runtime.registeredEntities;return r?.filter(t=>String(t.metadata.target.id)===String(e)).map(e=>e.metadata.target)||[]}function u(e,t){if(!y(e,t))return[];const r=t.runtime.registeredEntities,n=(0,s.L)(e),a=r?.filter(t=>{const r=t.metadata.target?.manifest;return r?(0,i.j)(r,e,{scriptsOnly:!1}):!!t.metadata.timings?.asset&&(0,s.L)(t.metadata.timings.asset)===n});return f(a).map(e=>e.metadata.target)}function l(e,t){if(!y(e,t))return[];const r=t.runtime.registeredEntities,n=r?.filter(t=>{const r=t.metadata.target?.manifest;return r?(0,i.j)(r,e,{scriptsOnly:!0}):!!t.metadata.timings?.asset?.endsWith(e)});return f(n).map(e=>e.metadata.target)}function f(e){if(!e?.length)return e||[];const t=new Map,r=[];for(const n of e){const e=n.metadata?.timings?.asset;if(!e){r.push(n);continue}const i="".concat(e,"::").concat(n.metadata?.target?.id),s=t.get(i);if(s){if(s.metadata.target?.blocked&&!n.metadata.target?.blocked){const e=r.indexOf(s);-1!==e&&(r[e]=n),t.set(i,n)}}else t.set(i,n),r.push(n)}return r}function h(e,t){return v(t)?o(e)?e.attributes:t.agentRef.runtime.v2Target.attributes:{}}function p(e,t){return g(e,t)?{"child.id":e.id,"child.type":e.type,...h(void 0,t)}:{}}function g(e,t){return o(e)&&!!v(t)&&t.agentRef.init.api.register.duplicate_data_to_container}function m(e){if(!e?.runtime)return[];if(!y(!0,e)||!e.runtime.registeredEntities?.length)return[e.runtime.v2Target];const t=[];try{var r=(0,n.AZ)((0,n.QL)());let i=r.length-1;for(;r[i];)t.push(...l(r[i--],e))}catch(e){}const i=function(e){const t=new Set,r=[];for(const n of e){const e=n?.instance;t.has(e)||(t.add(e),r.push(n))}return r}(t);return i.length||i.push(e.runtime.v2Target),i}function v(e){return 2===e?.harvestEndpointVersion}function y(e,t){return!!e&&!!t?.init.api.register.enabled}},5289(e,t,r){"use strict";r.d(t,{GG:()=>a,Qr:()=>c,sB:()=>o});var n=r(3878),i=r(6389);function s(){return"undefined"==typeof document||"complete"===document.readyState}function a(e,t){if(s())return e();const r=(0,i.J)(e),a=setInterval(()=>{s()&&(clearInterval(a),r())},500);(0,n.sp)("load",r,t)}function o(e){if(s())return e();(0,n.DD)("DOMContentLoaded",e)}function c(e){if(s())return e();(0,n.sp)("popstate",e)}},384(e,t,r){"use strict";r.d(t,{Zm:()=>c,bQ:()=>u,dV:()=>d,pV:()=>l});var n=r(6154),i=r(1863),s=r(944),a=r(1910);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function c(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic&&(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function d(){let e=c();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate||n.gm.setInterval,CT:n.gm.clearTimeout,XHR:n.gm.XMLHttpRequest,REQ:n.gm.Request,EV:n.gm.Event,PR:n.gm.Promise,MO:n.gm.MutationObserver,FETCH:n.gm.fetch,WS:n.gm.WebSocket},(0,a.i)(...Object.values(e.o))),e}function u(e,t){let r=c();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t,2===Object.keys(r.initializedAgents).length&&(0,s.R)(69)}function l(){return function(){let e=c();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=c();const t=e.init||{};e.init={...t}}(),d(),function(){let e=c();const t=e.loader_config||{};e.loader_config={...t}}(),c()}r.d(t,["NT",0,o])},2843(e,t,r){"use strict";r.d(t,{G:()=>s,u:()=>i});var n=r(3878);function i(e,t=!1,r,i){(0,n.DD)("visibilitychange",function(){if(t)return void("hidden"===document.visibilityState&&e());e(document.visibilityState)},r,i)}function s(e,t,r){(0,n.sp)("pagehide",e,t,r)}},8139(e,t,r){"use strict";r.d(t,{u:()=>f});var n=r(7836),i=r(3434),s=r(8990),a=r(6154);const o={},c=a.gm.XMLHttpRequest,d="addEventListener",u="removeEventListener",l="nr@wrapped:".concat(n.P);function f(e,t){var r=function(e){return(e||n.ee).get("events")}(e);if(o[r.debugId]++)return r;o[r.debugId]=1;var f=(0,i.YM)(r,!0,t);function p(e){f.inPlace(e,[d,u],"-",g)}function g(e,t){return e[1]}return"getPrototypeOf"in Object&&(a.RI&&h(document,p),c&&h(c.prototype,p),h(a.gm,p)),r.on(d+"-start",function(e,t){var r=e[1];if(null!==r&&("function"==typeof r||"object"==typeof r)&&"newrelic"!==e[0]){var n=(0,s.I)(r,l,function(){var e={object:function(){if("function"!=typeof r.handleEvent)return;return r.handleEvent.apply(r,arguments)},function:r}[typeof r];return e?f(e,"fn-",null,e.name||"anonymous"):r});this.wrapped=e[1]=n}}),r.on(u+"-start",function(e){e[1]=this.wrapped||e[1]}),r}function h(e,t,...r){let n=e;for(;"object"==typeof n&&!Object.prototype.hasOwnProperty.call(n,d);)n=Object.getPrototypeOf(n);n&&t(n,...r)}},3434(e,t,r){"use strict";r.d(t,{YM:()=>d});var n=r(7836),i=r(5607),s=r(5732);const a="nr@original:".concat(i.W);var o=Object.prototype.hasOwnProperty,c=!1;function d(e,t,r){return e||(e=n.ee),i.inPlace=function(e,t,r,n,s,a){r||(r="");const o="-"===r.charAt(0);for(let c=0;c<t.length;c++){const d=t[c],u=e[d];l(u)||(e[d]=i(u,o?d+r:r,n,d,s,a))}},i.flag=a,i;function i(t,n,i,c,f,h){return l(t)?t:(n||(n=""),nrWrapper[a]=t,function(e,t,r){if(Object.defineProperty&&Object.keys)try{return Object.keys(e).forEach(function(r){Object.defineProperty(t,r,{get:function(){return e[r]},set:function(t){return e[r]=t,t}})}),t}catch(e){u([e],r)}for(var n in e)o.call(e,n)&&(t[n]=e[n])}
29(t,nrWrapper,e),nrWrapper);function nrWrapper(){var a,o,l,p;let g,m;try{o=this,a=[...arguments],m=h?(0,s.$5)(r):[r?.runtime?.v2Target],l="function"==typeof i?i(a,o):i||{}}catch(t){u([t,"",[a,o,c],l],e)}d(n+"start",[a,o,c,m],l,f);const v=performance.now();let y;try{return p=t.apply(o,a),y=performance.now(),p}catch(e){throw y=performance.now(),d(n+"err",[a,o,e,m],l,f),g=e,g}finally{const e=y-v,t={start:v,end:y,duration:e,isLongTask:e>=50,methodName:c,thrownError:g};t.isLongTask&&d("long-task",[t,o,m],l,f),d(n+"end",[a,o,p,m],l,f)}}}function d(r,n,i,s){if(!c||t){var a=c;c=!0;try{e.emit(r,n,i,t,s)}catch(t){u([t,r,n,i],e)}c=a}}}function u(e,t){t||(t=n.ee);try{t.emit("internal-error",e)}catch(e){}}function l(e){return!(e&&"function"==typeof e&&e.apply&&!e[a])}r.d(t,["Jt",0,a])},9300(e,t,r){"use strict";const n=r(860).K7.ajax;r.d(t,["TZ",0,n,"f5",0,"ajaxRequest.id","mo",0,{NONE:"none",FAILURES:"failures",ALL:"all"}])},3333(e,t,r){"use strict";var n=r(981);const i=r(860).K7.genericEvents,s=[n.R.PA,n.R.UA,n.R.BP];r.d(t,["$v",0,{RESOURCES:"experimental.resources",REGISTER:"register"},"TZ",0,i,"Zp",0,["auxclick","click","copy","keydown","paste","scrollend"],"kd",0,s,"qN",0,["focus","blur"]])},6774(e,t,r){"use strict";const n=r(860).K7.jserrors;r.d(t,["T",0,n])},993(e,t,r){"use strict";const n=r(860).K7.logging;r.d(t,["A$",0,{OFF:0,ERROR:1,WARN:2,INFO:3,DEBUG:4,TRACE:5},"TZ",0,n,"p_",0,{ERROR:"ERROR",WARN:"WARN",INFO:"INFO",DEBUG:"DEBUG",TRACE:"TRACE"}])},3785(e,t,r){"use strict";r.d(t,{R:()=>c,b:()=>d});var n=r(9908),i=r(1863),s=r(860),a=r(3969),o=r(993);function c(e,t,r={},c=o.p_.INFO,d=!0,u,l=(0,i.t)()){(0,n.p)(a.xV,["API/logging/".concat(c.toLowerCase(),"/called")],void 0,s.K7.metrics,e),(0,n.p)("log",[l,t,r,c,d,u],void 0,s.K7.logging,e)}function d(e){return"string"==typeof e&&Object.values(o.p_).some(t=>t===e.toUpperCase().trim())}},3969(e,t,r){"use strict";const n=r(860).K7.metrics;r.d(t,["TZ",0,n,"XG",0,"storeEventMetrics","xV",0,"storeSupportabilityMetrics"])},6630(e,t,r){"use strict";const n=r(860).K7.pageViewEvent;r.d(t,["T",0,n])},782(e,t,r){"use strict";const n=r(860).K7.pageViewTiming;r.d(t,["T",0,n])},6344(e,t,r){"use strict";var n=r(2614);const i=r(860).K7.sessionReplay,s={[n.g.ERROR]:15e3,[n.g.FULL]:3e5,[n.g.OFF]:0}
29;r.d(t,["Qb",0,{API:"api",RESUME:"resume",SWITCH_TO_FULL:"switchToFull",INITIALIZE:"initialize",PRELOAD:"preload"},"TZ",0,i,"Vh",0,"errorDuringReplay","_s",0,{DomContentLoaded:0,Load:1,FullSnapshot:2,IncrementalSnapshot:3,Meta:4,Custom:5},"bc",0,{RESET:{message:"Session was reset",sm:"Reset"},IMPORT:{message:"Recorder failed to import",sm:"Import"},TOO_MANY:{message:"429: Too Many Requests",sm:"Too-Many"},TOO_BIG:{message:"Payload was too large",sm:"Too-Big"},CROSS_TAB:{message:"Session Entity was set to OFF on another tab",sm:"Cross-Tab"},ENTITLEMENTS:{message:"Session Replay is not allowed and will not be started",sm:"Entitlement"}},"yP",0,s])},5270(e,t,r){"use strict";r.d(t,{Aw:()=>a,SR:()=>s,rF:()=>o});var n=r(384),i=r(7767);function s(e){return!!(0,n.dV)().o.MO&&(0,i.V)(e)&&!0===e?.session_trace.enabled}function a(e){return!0===e?.session_replay.preload&&s(e)}function o(e,t){try{if("string"==typeof t?.type&&"password"===t.type.toLowerCase())return"*".repeat(e?.length||0);if(void 0!==t?.dataset?.nrUnmask||t?.classList?.contains("nr-unmask"))return e}catch(e){}return"string"==typeof e?e.replace(/[\S]/g,"*"):"*".repeat(e?.length||0)}},3738(e,t,r){"use strict";const n=r(860).K7.sessionTrace,i="-start",s="-end",a="fn"+i,o="fn"+s;r.d(t,["He",0,"bstResource","Kp",0,s,"Lc",0,o,"Rz",0,"pushState","TZ",0,n,"bD",0,"resource","bc",0,{CROSS_TAB:{message:"Session Entity was set to OFF on another tab"},ENTITLEMENTS:{message:"Session Trace is not allowed and will not be started"},RESET:{message:"Session was reset"},SESSION_CHANGED:{message:"Session identifier changed unexpectedly"}},"d3",0,i,"uP",0,a])},3962(e,t,r){"use strict";const n=r(860).K7.softNav;r.d(t,["O2",0,{INITIAL_PAGE_LOAD:"",ROUTE_CHANGE:1,UNSPECIFIED:2},"OV",0,"popstate","Qu",0,{INTERACTION:1,AJAX:2,CUSTOM_END:3,CUSTOM_TRACER:4},"TZ",0,n,"ih",0,{IP:"in progress",PF:"pending finish",FIN:"finished",CAN:"cancelled"},"pP",0,"initialPageLoad","tC",0,["click","keydown","submit"]])},4234(e,t,r){"use strict";r.d(t,{W:()=>i});var n=r(1687);class i{constructor(e,t){this.agentRef=e,this.ee=e?.ee,this.featureName=t,this.blocked=!1}deregisterDrain(){(0,n.x3)(this.agentRef,this.featureName)}}},7767(e,t,r){"use strict";var n=r(6154);r.d(t,["V",0,e=>n.RI&&!0===e?.privacy.cookies_enabled])},8362(e,t,r){"use strict";r.d(t,{d:()=>s});var n=r(9566),i=r(1741);class s extends i.W{agentIdentifier=(0,n.LA)(16)}},1741(e,t,r){"use strict";r.d(t,{W:()=>s});var n=r(944),i=r(4261);class s{#e(e,...t){if(this[e]!==s.prototype[e])return this[e](...t);(0,n.R)(35,e)}addPageAction(e,t){return this.#e(i.hG,e,t)}register(e){return this.#e(i.eY,e)}recordCustomEvent(e,t){return this.#e(i.fF,e,t)}setPageViewName(e,t){return this.#e(i.Fw,e,t)}setCustomAttribute(e,t,r){return this.#e(i.cD,e,t,r)}noticeError(e,t){return this.#e(i.o5,e,t)}setUserId(e,t=!1){return this.#e(i.Dl,e,t)}setApplicationVersion(e){return this.#e(i.nb,e)}setErrorHandler(e){return this.#e(i.bt,e)}addRelease(e,t){return this.#e(i.k6,e,t)}log(e,t){return this.#e("log",e,t)}start(){return this.#e("start")}finished(e){return this.#e(i.BL,e)}recordReplay(){return this.#e(i.CH)}pauseReplay(){return this.#e(i.Tb)}addToTrace(e){return this.#e(i.U2,e)}setCurrentRouteName(e){return this.#e(i.PA,e)}interaction(e){return this.#e(i.dT,e)}wrapLogger(e,t,r){return this.#e(i.Wb,e,t,r)}measure(e,t){return this.#e(i.V1,e,t)}consent(e){return this.#e(i.Pv,e)}}},4261(e,t,r){"use strict";r.d(t,["BL",0,"finished","CH",0,"recordReplay","Dl",0,"setUserId","Fw",0,"setPageViewName","PA",0,"setCurrentRouteName","Pv",0,"consent","Tb",0,"pauseReplay","U2",0,"addToTrace","V1",0,"measure","Wb",0,"wrapLogger","bt",0,"setErrorHandler","cD",0,"setCustomAttribute","dT",0,"interaction","eY",0,"register","fF",0,"recordCustomEvent","hG",0,"addPageAction","hw",0,"api-ixn-","k6",0,"addRelease","nb",0,"setApplicationVersion","o5",0,"noticeError"])},1738(e,t,r){"use strict";r.d(t,{U:()=>l,Y:()=>u});var n=r(3241),i=r(9908),s=r(1863),a=r(944),o=r(3969),c=r(8362),d=r(860);function u(e,t,r,s){const u=s||r;!u||u[e]&&u[e]!==c.d.prototype[e]||(u[e]=function(){(0,i.p)(o.xV,["API/"+e+"/called"],void 0,d.K7.metrics,r.ee),(0,n.W)({drained:!!r.runtime?.activatedFeatures,type:"data",name:"api",feature:"api-"+e,data:{}});try{return t.apply(this,arguments)}catch(e){(0,a.R)(23,e)}})}function l(e,t,r,n,a){const o=e.info;null===r?delete o.jsAttributes[t]:o.jsAttributes[t]=r,(a||null===r)&&(0,i.p)("api-"+n,[(0,s.t)(),t,r],void 0,"session",e.ee)}},8374(e,t,r){r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},860(e,t,r){"use strict";const n="events",i="jserrors",s="browser/blobs",a="browser/logs",o={ajax:"ajax",genericEvents:"generic_events",jserrors:i,logging:"logging",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",softNav:"soft_navigations"},c={[o.pageViewEvent]:1,[o.pageViewTiming]:2,[o.metrics]:3,[o.jserrors]:4,[o.softNav]:5,[o.ajax]:6,[o.sessionTrace]:7,[o.sessionReplay]:8,[o.logging]:9,[o.genericEvents]:10},d={[o.pageViewEvent]:"rum",[o.pageViewTiming]:n,[o.ajax]:n,[o.softNav]:n,[o.metrics]:i,[o.jserrors]:i,[o.sessionTrace]:s,[o.sessionReplay]:s,[o.logging]:a,[o.genericEvents]:"ins"};r.d(t,["$J",0,d,"K7",0,o,"P3",0,c,"XX",0,i,"Yy",0,a,"df",0,s,"hg",0,"connect"])}};const t={};function r(n){const i=t[n];if(void 0!==i)return i.exports;const s=t[n]={exports:{}};return e[n](s,s.exports,r),s.exports}r.m=e,r.d=(e,t)=>{if(Array.isArray(t))for(var n=0;n<t.length;){var i=t[n++],s=t[n++];r.o(e,i)?0===s&&n++:0===s?Object.defineProperty(e,i,{enumerable:!0,value:t[n++]}):Object.defineProperty(e,i,{enumerable:!0,get:s})}else for(var i in t)r.o(t,i)&&!r.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((t,n)=>(r.f[n](e,t),t),[])),r.u=e=>({212:"nr-spa-compressor",238:"nr-spa-iframe-message-handler",249:"nr-spa-recorder",478:"nr-spa"}[e]+"-1.322.0.min.js"),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{const e={},t="NRBA-1.322.0.PROD:";r.l=(n,i,s,a)=>
29{if(e[n])return void e[n].push(i);let o,c;if(void 0!==s){const e=document.getElementsByTagName("script");for(var d=0;d<e.length;d++){const r=e[d];if(r.getAttribute("src")==n||r.getAttribute("data-webpack")==t+s){o=r;break}}}if(!o){c=!0;var u={478:"sha512-SARROoir04gFygxlr/+mTI+PyMeFL+epi1vnUA2G5mTQ7s3G44ItQBJKbOaIMdIE5OBzuaKhb4k5JYta0NICxg==",249:"sha512-6DKQo5WP7YlpzX6l9UfYkgGLGK2oITdoaYTcZtgl5Foa22NY63lED/0z1hBBLeD7qZCz/YdlY19/r8drlol1tg==",212:"sha512-CYxuvSpDx6ErqWJwAvpoHn54eY37YdMcFao/axOumlw3BsSL7yioOeB2LWViY/Njs818sQG10dSglUhYCMfLPw==",238:"sha512-mvbMILWa3ohYst+u6TLfNrmtY2swUIB3rbJFN/uzt3W62KhgvUVwB81UEZ1R0/it5bfrQ5EVz864pi/CAmucNQ=="};o=document.createElement("script"),o.charset="utf-8",r.nc&&o.setAttribute("nonce",r.nc),o.setAttribute("data-webpack",t+s),o.src=n,0!==o.src.indexOf(window.location.origin+"/")&&(o.crossOrigin="anonymous"),u[a]&&(o.integrity=u[a])}e[n]=[i];const l=(t,r)=>{o.onerror=o.onload=null,clearTimeout(f);const i=e[n];if(delete e[n],o.parentNode?.removeChild(o),i?.forEach(e=>e(r)),t)return t(r)},f=setTimeout(l.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=l.bind(null,o.onerror),o.onload=l.bind(null,o.onload),c&&document.head.appendChild(o)}})(),r.r=e=>{Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="https://js-agent.newrelic.com/",(()=>{const e={38:0,788:0};r.f.j=(t,n)=>{let i=r.o(e,t)?e[t]:void 0;if(0!==i)if(i)n.push(i[2]);else{const s=new Promise((r,n)=>i=e[t]=[r,n]);n.push(i[2]=s);const a=r.p+r.u(t),o=new Error,c=n=>{if(r.o(e,t)&&(i=e[t],0!==i&&(e[t]=void 0),i)){const e=n&&("load"===n.type?"missing":n.type),r=n&&n.target&&n.target.src;o.message="Loading chunk "+t+" failed: ("+e+": "+r+")",o.name="ChunkLoadError",o.type=e,o.request=r,i[1](o)}};r.l(a,c,"chunk-"+t,t)}};const t=(t,n)=>{let[i,s,a]=n;var o,c,d=0;if(i.some(t=>0!==e[t])){for(o in s)r.o(s,o)&&(r.m[o]=s[o]);if(a)a(r)}for(t&&t(n);d<i.length;d++)c=i[d],r.o(e,c)&&e[c]&&e[c][0](),e[c]=0},n=self["webpackChunk:NRBA-1.322.0.PROD"]=self["webpackChunk:NRBA-1.322.0.PROD"]||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))})(),(()=>{"use strict";r(8374);var e=r(8362),t=r(860);const n=Object.values(t.K7);var i=r(384),s=r(1741);var a=r(2555),o=r(3333),c=r(9300);const d=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var u=r(2614),l=r(944),f=r(8122);const h="[data-nr-mask]",p=e=>(0,f.a)(e,(()=>{const e={feature_flags:[],experimental:{register:!1,resources:!1,iframe_bridge:!1,iframe_domains:[]},mask_selector:"*",block_selector:"[data-nr-block]",mask_input_options:{color:!1,date:!1,"datetime-local":!1,email:!1,month:!1,number:!1,range:!1,search:!1,tel:!1,text:!1,time:!1,url:!1,week:!1,textarea:!1,select:!1,password:!0}};return{ajax:{deny_list:void 0,block_internal:!0,enabled:!0,autoStart:!0,capture_payloads:c.mo.NONE},api:{register:{get enabled(){return e.feature_flags.includes(o.$v.REGISTER)||e.experimental.register},set enabled(t){e.experimental.register=t},duplicate_data_to_container:!1,get allow_iframe_bridge(){return e.feature_flags.includes(o.$v.IFRAME_BRIDGE)||e.experimental.iframe_bridge},set allow_iframe_bridge(t){e.experimental.iframe_bridge=t},get iframe_domains(){return e.experimental.iframe_domains},set iframe_domains(t){Array.isArray(t)?e.experimental.iframe_domains=t:(0,l.R)(1,t)}}},browser_consent_mode:{enabled:!1},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},get feature_flags(){return e.feature_flags},set feature_flags(t){e.feature_flags=t},generic_events:{enabled:!0,autoStart:!0},harvest:{interval:30},jserrors:{enabled:!0,autoStart:!0},logging:{enabled:!0,autoStart:!0},metrics:{enabled:!0,autoStart:!0},obfuscate:void 0,page_action:{enabled:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,autoStart:!0},performance:{capture_marks:!1,capture_measures:!1,capture_detail:!0,resources:{get enabled(){return e.feature_flags.includes(o.$v.RESOURCES)||e.experimental.resources},set enabled(t){e.experimental.resources=t},asset_types:[],first_party_domains:[],ignore_newrelic:!0}},privacy:{cookies_enabled:!0},proxy:{assets:void 0,beacon:void 0},session:{expiresMs:u.wk,inactiveMs:u.BB},session_replay:{autoStart:!0,enabled:!1,preload:!1,sampling_rate:10,error_sampling_rate:100,collect_fonts:!1,inl
29ine_images:!1,fix_stylesheets:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){d(t)?e.mask_selector="".concat(t,",").concat(h):""===t||null===t?e.mask_selector=h:(0,l.R)(5,t)},get block_class(){return"nr-block"},get ignore_class(){return"nr-ignore"},get mask_text_class(){return"nr-mask"},get block_selector(){return e.block_selector},set block_selector(t){d(t)?e.block_selector+=",".concat(t):""!==t&&(0,l.R)(6,t)},get mask_input_options(){return e.mask_input_options},set mask_input_options(t){t&&"object"==typeof t?e.mask_input_options={...t,password:!0}:(0,l.R)(7,t)}},session_trace:{enabled:!0,autoStart:!0},soft_navigations:{enabled:!0,autoStart:!0},ssl:void 0,user_actions:{enabled:!0,elementAttributes:["id","className","tagName","type"]},web_sockets:{enabled:!1}}})());var g=r(6154),m=r(9324);let v=0;const y={buildEnv:"PROD",distMethod:"CDN",version:m.x,originTime:g.WN},b={consented:!1},E={activatedFeatures:void 0,appMetadata:{},configured:!1,get consented(){return this.session?.state?.consent||b.consented},set consented(e){b.consented=e},customTransaction:void 0,denyList:[],disabled:!1,drainRegistry:new Map,connector:void 0,harvester:void 0,v2Target:void 0,isolatedBacklog:!1,isRecording:!1,loaderType:void 0,maxBytes:3e4,obfuscator:void 0,onerror:void 0,ptid:void 0,releaseIds:{},session:void 0,timeKeeper:void 0,registeredEntities:[],jsAttributesMetadata:{bytes:0},get harvestCount(){return++v},listeningForIframeMessages:!1};var w=r(9232);var R=r(7836),T=r(3241);const A={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0};var S=r(9908),x=r(9752);function O(e,t={},n,o){let{init:c,info:d,loader_config:u,runtime:l={},exposed:h=!0}=t;if(!d){const e=(0,i.pV)();c=e.init,d=e.info,u=e.loader_config}var m;e.init=p(c||{}),e.loader_config=(m=u||{},(0,f.a)(m,A)),d.jsAttributes??={},g.bv&&(d.jsAttributes.isWorker=!0),e.info=(0,a.D)(d);const v=e.init;e.runtime??=(e=>{const t=(0,f.a)(e,E),r=Object.keys(y).reduce((e,t)=>(e[t]={value:y[t],writable:!1,configurable:!0,enumerable:!0},e),{});return Object.defineProperties(t,r)})(l),e.runtime.v2Target??={type:w.f.BA,instance:e.agentIdentifier,get id(){return e.runtime.appMetadata?.agents?.[0]?.entityGuid},get attributes(){return{"entity.guid":this.id,appId:e.info.applicationID}}},v.proxy.assets&&(e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e})(v.proxy.assets),e.runtime.configured||(Object.defineProperty(e,"beacons",{get:()=>[e.info.beacon,e.info.errorBeacon,e.init.proxy.assets,e.init.proxy.beacon].filter(Boolean)}),Object.defineProperty(e.runtime,"denyList",{get:()=>[...e.init.ajax.deny_list||[],...e.init.ajax.block_internal?e.beacons:[]]}),e.runtime.ptid=e.agentIdentifier,function(e){const t=(0,i.pV)();Object.getOwnPropertyNames(s.W.prototype).forEach(r=>{const n=s.W.prototype[r];if("function"!=typeof n||"constructor"===n)return;let i=t[r];e[r]&&!1!==e.exposed&&"micro-agent"!==e.runtime?.loaderType&&(t[r]=(...t)=>{const n=e[r](...t);return i?i(...t):n})})}(e),e.runtime.loaderType=n,e.ee=R.ee.get(e.agentIdentifier),e.exposed=h,(0,T.W)({drained:!!e.runtime.activatedFeatures,type:"lifecycle",name:"initialize",feature:void 0,data:e.config}),e.init.api.register.allow_iframe_bridge&&g.gm.addEventListener("message",t=>{"string"==typeof t.data?.type&&t.data.type.startsWith(x.Pl)&&(0,S.p)("iframe-message",[t],void 0,"IFRAME",e.ee)}),e.runtime.configured=!0)}var _=r(1863),k=r(4261),N=r(1738);var L=r(1687),M=r(4234),P=r(5289),I=r(5270),j=r(7767),C=r(6389),D=r(7699);const B=new WeakSet,H=new WeakMap;class W extends M.W{constructor(e,t){super(e,t),this.abortHandler=void 0,this.featAggregate=void 0,this.loadedSuccessfully=void 0,this.onAggregateImported=new Promise(e=>{this.loadedSuccessfully=e}),this.deferred=Promise.resolve(),!1===e.init[this.featureName].autoStart?this.deferred=new Promise((t,r)=>{this.ee.on("manual-start-all",(0,C.J)(()=>{(0,L.Ak)(e,this.featureName),t()}))}):(0,L.Ak)(e,t)}importAggregator(e,t,n={}){if(this.featAggregate)return;const i=async()=>{if(await this.deferred,this.#t(e),!(0,a.f)(e.info))return(0,l.R)(43),e.ee.abort(),void this.loadedSuccessfully(!1);try{await async function(e,t,n){if(H.has(e))return H.get(e);const i=(async()=>
29{if((0,j.V)(e.init))try{const{setupAgentSession:t}=await r.e(478).then(r.bind(r,8766));t(e)}catch(e){(0,l.R)(20,e),t.emit("internal-error",[e]),(0,S.p)(D.qh,[e],void 0,n,t)}if(e.init.api.register.allow_iframe_bridge)try{const{setupIframeMFEMessageListener:t}=await r.e(238).then(r.bind(r,6417));t(e)}catch(e){(0,l.R)(23,e)}const[{Connector:i},{Harvester:s}]=await Promise.all([r.e(478).then(r.bind(r,6589)),r.e(478).then(r.bind(r,5237))]);e.runtime.connector=new i(e),e.runtime.harvester=new s(e);const a=Object.values(e.features).filter(t=>e.runtime.drainRegistry.has(t.featureName));Promise.all(a.map(e=>e.onAggregateImported)).then(()=>e.runtime.harvester.startTimer())})();H.set(e,i),await i}(e,this.ee,this.featureName)}catch(e){return(0,l.R)(79,e),this.ee.abort(),void this.loadedSuccessfully(!1)}try{if(!this.#r(this.featureName,e.runtime.session,e.init))return this.abortHandler?.(),(0,L.Ze)(this.agentRef,this.featureName),void this.loadedSuccessfully(!1);const{Aggregate:r}=await t();this.featAggregate=new r(e,n),e.runtime.harvester.initializedAggregates.push(this.featAggregate),this.loadedSuccessfully(!0)}catch(e){(0,l.R)(34,e),this.abortHandler?.(),(0,L.Ze)(this.agentRef,this.featureName,!0),this.loadedSuccessfully(!1)}};g.RI?(0,P.GG)(()=>i(),!0):i()}#r(e,r,n){if(this.blocked)return!1;switch(e){case t.K7.sessionReplay:return(0,I.SR)(n)&&!!r;case t.K7.sessionTrace:return!!r;default:return!0}}#t(e){if(!B.has(e)&&(B.add(e),!(0,a.f)(e.info))){const t=(0,i.pV)();let r={...t.info?.jsAttributes};try{r={...r,...e.info?.jsAttributes}}catch(e){}O(e,{...t,info:{...t.info,jsAttributes:r},runtime:e.runtime},e.runtime.loaderType)}}}var U=r(6630);class K extends W{static featureName=U.T;constructor(e){var t;super(e,U.T),this.setupInspectionEvents(),t=e,(0,N.Y)(k.Fw,function(e,r){"string"==typeof e&&("/"!==e.charAt(0)&&(e="/"+e),t.runtime.customTransaction=(r||"http://custom.transaction")+e,(0,S.p)("api-"+k.Fw,[(0,_.t)()],void 0,void 0,t.ee))},t),this.importAggregator(e,()=>e.init.feature_flags.includes("rum_v2")?r.e(478).then(r.bind(r,908)):r.e(478).then(r.bind(r,7927)))}setupInspectionEvents(){const e=(e,t)=>{e&&(0,T.W)({timeStamp:e.timeStamp,loaded:"complete"===e.target.readyState,type:"window",name:t,data:e.target.location+""})};(0,P.sB)(t=>{e(t,"DOMContentLoaded")}),(0,P.GG)(t=>{e(t,"load")}),(0,P.Qr)(t=>{e(t,"navigate")}),this.ee.on(u.tS.UPDATE,(e,t)=>{(0,T.W)({type:"lifecycle",name:"session",data:t})})}}class F extends e.d{constructor(e){var t;(super(),g.gm)?(this.features={},(0,i.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(e.features||[]),this.desiredFeatures.add(K),O(this,e,e.loaderType||"agent"),t=this,(0,N.Y)(k.cD,function(e,r,n=!1){if("string"==typeof e){if(["string","number","boolean"].includes(typeof r)||null===r)return(0,N.U)(t,e,r,k.cD,n);(0,l.R)(40,typeof r)}else(0,l.R)(39,typeof e)},t),function(e){(0,N.Y)(k.Dl,function(t,r=!1){if("string"!=typeof t&&null!==t)return void(0,l.R)(41,typeof t);const n=e.info.jsAttributes["enduser.id"];r&&null!=n&&n!==t?(0,S.p)("api-setUserIdAndResetSession",[t],void 0,"session",e.ee):(0,N.U)(e,"enduser.id",t,k.Dl,!0)},e)}(this),function(e){(0,N.Y)(k.nb,function(t){if("string"==typeof t||null===t)return(0,N.U)(e,"application.version",t,k.nb,!1);(0,l.R)(42,typeof t)},e)}(this),function(e){(0,N.Y)("start",function(){e.ee.emit("manual-start-all")},e)}(this),function(e){(0,N.Y)(k.Pv,function(t=!0){if("boolean"==typeof t){if((0,S.p)("api-"+k.Pv,[t],void 0,"session",e.ee),e.runtime.consented=t,t){const t=e.features.page_view_event;t.onAggregateImported.then(e=>{const r=t.featAggregate;e&&!r.sentRum&&r.sendRum?.()})}}else(0,l.R)(65,typeof t)},e)}(this),this.run()):(0,l.R)(21)}get config(){return{info:this.info,init:this.init,loader_config:this.loader_config,runtime:this.runtime}}get api(){return this}run(){try{const e=function(e){const t={};return n.forEach(r=>{t[r]=!!e[r]?.enabled}),t}(this.init),r=[...this.desiredFeatures],i=this.init.feature_flags.includes("rum_v2");r.sort((e,r)=>t.P3[e.featureName]-t.P3[r.featureName]),r.forEach(r=>{if(!e[r.featureName]&&(i||r.featureName!==t.K7.pageViewEvent))return;const n=function(e){switch(e){case t.K7.ajax:return[t.K7.jserrors];case t.K7.sessionTrace:return[t.K7.ajax,t.K7.pageViewEvent];case t.K7.sessionReplay:return[t.K7.sessionTrace];case t.K7.pageViewTiming:return[t.K7.pageViewEvent];default:return[]}}(r.featureName).filter(e=>!(e in this.features));n.length>0&&(0,l.R)(36,{targetFeature:r.featureName,missingDependencies:n}),this.features[r.featureName]=new r(this)})}catch(e){(0,l.R)(22,e);for(const e in this.features)this.features[e].abortHandler?.();const t=(0,i.Zm)();delete t.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return t.ee.get(this.agentIdentifier).abort(),!1}}}var V=r(2843),z=r(782);class G extends W{static featureName=z.T;constructor(e){super(e,z.T),g.RI&&((0,V.u)(()=>(0,S.p)("docHidden",[(0,_.t)()],void 0,z.T,this.ee),!0),(0,V.G)(()=>(0,S.p)("winPagehide",[(0,_.t)()],void 0,z.T,this.ee)),this.importAggregator(e,()=>r.e(478).then(r.bind(r,9917))))}}var q=r(3969);class Y extends W{static featureName=q.TZ;constructor(e){super(e,q.TZ),this.importAggregator(e,()=>r.e(478).then(r.bind(r,6555)))}}var Z=r(6774),J=r(3878),X=r(3304);class Q{constructor(e,t,r,n,i){this.name="UncaughtError",this.message="string"==typeof e?e:(0,X.A)(e),this.sourceURL=t,this.line=r,this.column=n,this.__newrelic=i}}function ee(e){return ne(e)?e:new Q(void 0!==e?.message?e.message:e,e?.filename||e?.sourceURL,e?.lineno||e?.line,e?.colno||e?.col,e?.__newrelic,e?.cause)}function te(e){const t="Unhandled Promise Rejection: ";if(!e?.reason)return;if(ne(e.reason)){try{e.reason.message.startsWith(t)||(e.reason.message=t+e.reason.message)}catch(e){}return ee(e.reason)}const r=ee(e.reason);return(r.message||"").startsWith(t)||(r.message=t+r.message),r}function re(e){if(e.error instanceof SyntaxError&&!/:\d+$/.test(e.error.stack?.trim())){const t=new Q(e.message,e.filename,e.lineno,e.colno,e.error.__newrelic,e.cause);return t.name=SyntaxError.name,t}return ne(e.error)?e.error:ee(e)}function ne(e){return e instanceof Error&&!!e.stack}function ie(e,r,n,i,s=(0,_.t)()){"string"==typeof e&&(e=new Error(e)),(0,S.p)("err",[e,s,!1,r,n.runtime.isRecording,void 0,i],void 0,t.K7.jserrors,n.ee),(0,S.p)("uaErr",[],void 0,t.K7.genericEvents,n.ee)}var se=r(993),ae=r(3785);function oe(e,{customAttributes:t={},level:r=se.p_.INFO}={},n,i,s=(0,_.t)()){(0,ae.R)(n.ee,e,t,r,!1,i,s)}function ce(e,r,n,i,s=(0,_.t)()){(0,S.p)("api-"+k.hG,[s,e,r,i],void 0,t.K7.genericEvents,n.ee)}function de(e,r,n,i,s=(0,_.t)()){const{start:a,end:o,customAttributes:c}=r||{},d={customAttributes:c||{}};if("object"!=typeof d.customAttributes||"string"!=typeof e||0===e.length)return void(0,l.R)(57);const u=(e,t)=>
29null==e?t:"number"==typeof e?e:e instanceof PerformanceMark?e.startTime:Number.NaN;if(d.start=u(a,0),d.end=u(o,s),Number.isNaN(d.start)||Number.isNaN(d.end))(0,l.R)(57);else{if(d.duration=d.end-d.start,!(d.duration<0))return(0,S.p)("api-"+k.V1,[d,e,i],void 0,t.K7.genericEvents,n.ee),d;(0,l.R)(58)}}function ue(e,r={},n,i,s=(0,_.t)()){(0,S.p)("api-"+k.fF,[s,e,r,i],void 0,t.K7.genericEvents,n.ee)}var le=r(5718);const fe=(e,t)=>e?.nrMfeId===t.id&&(!e?.nrMfeObserved||e?.nrMfeObserved===t.instance),he=e=>{try{return g.gm.CSS.escape(e)}catch(t){return e}},pe=(e,t={})=>{const r=t.id,n=t.instance;if(!e||!r||!n)return!1;try{let r=1===e.nodeType?e:e.parentElement;for(;r?.tagName;){if(fe(r.dataset,t))return r.dataset.nrMfeObserved=n,!0;r=r.parentNode}}catch(e){}return!1},ge=(e,t)=>{const r=g.gm.document?.querySelectorAll('[data-nr-mfe-id="'.concat(he(e.id),'"]')),n=(Array.from(r)||[]).find(t=>fe(t.dataset,e));let i=!!n;i&&(n.dataset.nrMfeObserved??=e.instance);const s=new g.gm.MutationObserver(r=>{r.forEach(r=>{r.addedNodes.forEach(r=>{const n=1===r.nodeType?r:null;!i&&fe(n?.dataset,e)&&(s.disconnect(),s.observe(n,{childList:!0,subtree:!0}),i=!0,n.dataset.nrMfeObserved=e.instance),(e=>{try{return e?.textContent?.trim()||["img","video","canvas","svg"].includes(e?.nodeName?.toLowerCase())}catch(e){return!1}})(r)&&(i||pe(r,e))&&t(r,s)})})});return s.observe(n||g.gm.document,{childList:!0,subtree:!0}),s},me=(e,t,r)=>{try{const n=new g.gm.PerformanceObserver(e=>{e.getEntries().forEach(r)});return n.observe(t),e.push(n),n}catch(e){return null}};function ve(e,t){let r,n,i=!1;const s=e=>null==e?e:e-(t?.scriptStart||t?.registeredAt||0),a={fcp:{get value(){const e=s(r);return e>1e4?void 0:e},set value(e){i||(r=e)}},lcp:{get value(){if(void 0!==a.fcp.value)return s(n)},set value(e){i||(n=e)}},cls:{value:void 0},inp:{value:void 0},disconnect:()=>{}};if(!(e&&g.RI&&g.gm.MutationObserver&&g.gm.PerformanceObserver))return a;const o=[];setTimeout(()=>{r||a.disconnect()},1e4);const c=()=>{if(!i){if(null==r){const e=(0,_.t)();if(s(e)>1e4)return void a.disconnect();r=e}n??=(0,_.t)(),a.cls.value??=0}},d=ge(e,(e,t)=>{c(),t.disconnect()});o.push(d);let u=0,l=null;const f=new Set;try{l=new g.gm.ResizeObserver(e=>{i||e.forEach(e=>{try{const t=e.contentRect.width*e.contentRect.height;t>u&&(u=t,a.lcp.value=(0,_.t)()),l.unobserve(e.target)}catch(e){}})})}catch(e){}const h=ge(e,e=>{if(c(),l)try{const t=1===e.nodeType?e:e.parentElement;t&&!f.has(t)&&(f.add(t),"IMG"===t.tagName?t.complete?l.observe(t):t.addEventListener("load",()=>{l.observe(t)},{once:!0}):"VIDEO"===t.tagName?t.readyState>=2?l.observe(t):t.addEventListener("loadeddata",()=>{l.observe(t)},{once:!0}):l.observe(t))}catch(e){}});l&&o.push(l),o.push(h),me(o,{type:"layout-shift",buffered:!0},t=>{i||t.hadRecentInput||(t.sources||[]).some(r=>!!pe(r.node,e)&&(c(),a.cls.value+=t.value,!0))}),me(o,{type:"event",buffered:!0,durationThreshold:40},t=>{!i&&t.interactionId&&pe(t.target,e)&&(void 0===a.inp.value||t.duration>a.inp.value)&&(c(),a.inp.value=t.duration)});const p=["pointerdown","keydown"],m=()=>{p.forEach(e=>{g.gm.removeEventListener(e,v,{passive:!0})})};a.disconnect=()=>{i=!0,o.forEach(e=>{try{e?.disconnect()}catch(e){}}),m(),["visibilitychange","pagehide"].forEach(e=>{g.gm.removeEventListener(e,a.disconnect,{once:!0,passive:!0})})};const v=t=>{pe(t?.target,e)&&((()=>{try{h?.disconnect(),l?.disconnect()}catch(e){}})(),m())};p.forEach(e=>{g.gm.addEventListener(e,v,{passive:!0})}),["visibilitychange","pagehide"].forEach(e=>{g.gm.addEventListener(e,a.disconnect,{once:!0,passive:!0})});const y=g.gm.document?.querySelectorAll('[data-nr-mfe-id="'.concat(he(e.id),'"]'));return Array.from(y||[]).some(t=>fe(t.dataset,e))&&c(),a}var ye=r(9566),be=r(7560),Ee=r(9119);const we=["entry","scripts","all"],Re=["name","id","type"],Te=new Map([[ce,"addPageAction"],[oe,"log"],[de,"measure"],[ie,"noticeError"],[ue,"recordCustomEvent"]]),Ae={experimental:(0,C.J)(()=>(0,l.R)(54,"newrelic.register")),disabled:(0,C.J)(()=>(0,l.R)(55)),invalidTarget:(0,C.J)(e=>(0,l.R)(48,e)),deregistered:(0,C.J)(()=>(0,l.R)(68)),invalidTimingMethod:(0,C.J)(e=>(0,l.R)(80,e)),duplicateName:(0,C.J)(e=>(0,l.R)(81,e)),duplicateId:(0,C.J)(e=>(0,l.R)(82,e))};function Se(e){(0,N.Y)(k.eY,function(t){return xe(e,t)},e)}function xe(e,r){Ae.experimental(),r||={},r.instance=(0,ye.LA)(8),r.type=w.f.MFE,r.licenseKey||=e.info.licenseKey,r.blocked=!1,("object"!=typeof r.tags||null===r.tags||Array.isArray(r.tags))&&(r.tags={}),r.parent??={get id(){return e.runtime.appMetadata.agents?.[0].entityGuid},type:w.f.BA},r.manifest=(0,be.N)(r.manifest),void 0===r.timingMethod||we.includes(r.timingMethod)||(Ae.invali
29dTimingMethod(r.timingMethod),r.timingMethod=void 0);const n=(0,le.Qr)(r);r.manifest&&(0,le.xo)(n,r);const i=ve(r,n),s=(0,Ee.L)(""+location),a={};Object.prototype.hasOwnProperty.call(r,"attributes")||Object.defineProperty(r,"attributes",{get:()=>({...a,"source.id":r.id,"source.name":r.name,"source.type":r.type,"parent.type":r.parent?.type||w.f.BA,"parent.id":r.parent?.id})}),Object.entries(r.tags).forEach(([e,t])=>{Re.includes(e)||(a["source.".concat(e)]=t)});let o=()=>{};const c=e.runtime.registeredEntities,d=e=>{r.blocked=!0,o=e};function u(e){return"string"==typeof e&&!!e.trim()&&e.trim().length<501}e.init.api.register.enabled||d(Ae.disabled),u(r.id)&&u(r.name)||d(()=>Ae.invalidTarget(r)),c.forEach(e=>{try{const{name:t,id:n}=e.metadata.target;t===r.name&&n!==r.id&&Ae.duplicateName(r),n===r.id&&t!==r.name&&Ae.duplicateId(r)}catch(e){}});const f={addPageAction:(t,n={})=>m(ce,[t,{...a,...n},e],r),deregister:()=>{p(),d(Ae.deregistered)},log:(t,n={})=>m(oe,[t,{...n,customAttributes:{...a,...n.customAttributes||{}}},e],r),measure:(t,n={})=>m(de,[t,{...n,customAttributes:{...a,...n.customAttributes||{}}},e],r),noticeError:(t,n={})=>m(ie,[t,{...a,...n},e],r),recordCustomEvent:(t,n={})=>m(ue,[t,{...a,...n},e],r),setApplicationVersion:e=>g("application.version",e),setCustomAttribute:(e,t)=>g(e,t),setUserId:e=>g("enduser.id",e),metadata:{get customAttributes(){return a},target:r,timings:n,vitals:i,events:{latestTimestamp:void 0}}},h=()=>(r.blocked&&o(),r.blocked);function p(){if(n.reportedAt)return;n.reportedAt=(0,_.t)(),i.disconnect(),n.fcp=i.fcp,n.lcp=i.lcp,n.cls=i.cls,n.inp=i.inp;const e=n.fetchEnd-n.fetchStart,t=n.scriptEnd-n.scriptStart,r={assetUrl:n.asset,assetType:n.type,registerUrl:s,deregisterUrl:(0,Ee.L)(""+location),pageUrl:void 0,currentUrl:void 0,timeAlive:n.reportedAt-n.registeredAt,timeToBeRequested:n.fetchStart,timeToExecute:t,timeToFetch:e,timeToLoad:e+t,t
29imeToRegister:n.registeredAt,totalWeight:n.totalWeight,...void 0!==n.renderBlocking&&{renderBlocking:n.renderBlocking},...i.fcp.value>=0&&{"vitals.fcp.value":i.fcp.value},...i.lcp.value>=0&&{"vitals.lcp.value":i.lcp.value},...i.cls.value>=0&&{"vitals.cls.value":i.cls.value},...i.inp.value>=0&&{"vitals.inp.value":i.inp.value}};f.recordCustomEvent("MicroFrontEndTiming",r)}h()||(c.push(f),(0,V.G)(p));const g=(e,t)=>{h()||(a[e]=t)},m=(r,n,i)=>{if(h()&&r!==xe)return;const s=f.metadata.events.latestTimestamp??(0,_.t)();f.metadata.events.latestTimestamp=void 0;const a=Te.get(r)||"unknown";(0,S.p)(q.xV,["API/register/".concat(a,"/called")],void 0,t.K7.metrics,e.ee);try{return r(...n,i,s)}catch(e){(0,l.R)(50,e)}};return f}class Oe extends W{static featureName=Z.T;constructor(e){var t;super(e,Z.T),t=e,(0,N.Y)(k.o5,(e,r)=>ie(e,r,t),t),function(e){(0,N.Y)(k.bt,function(t){e.runtime.onerror=t},e)}(e),function(e){let t=0;(0,N.Y)(k.k6,function(e,r){++t>10||(this.runtime.releaseIds[e.slice(-200)]=(""+r).slice(-200))},e)}(e),Se(e);try{this.removeOnAbort=new AbortController}catch(e){}this.ee.on("internal-error",(t,r)=>{this.abortHandler&&(0,S.p)("ierr",[ee(t),(0,_.t)(),!0,{},e.runtime.isRecording,r],void 0,this.featureName,this.ee)}),g.gm.addEventListener("unhandledrejection",t=>{this.abortHandler&&(0,S.p)("err",[te(t),(0,_.t)(),!1,{unhandledPromiseRejection:1},e.runtime.isRecording],void 0,this.featureName,this.ee)},(0,J.jT)(!1,this.removeOnAbort?.signal)),g.gm.addEventListener("error",t=>{this.abortHandler&&(0,S.p)("err",[re(t),(0,_.t)(),!1,{},e.runtime.isRecording],void 0,this.featureName,this.ee)},(0,J.jT)(!1,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e,()=>r.e(478).then(r.bind(r,9377)))}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var _e=r(8990);let ke=1;function Ne(e){const t=typeof e;return!e||"object"!==t&&"function"!==t?-1:e===g.gm?0:(0,_e.I)(e,"nr@id",function(){return ke++})}function Le(e){if("string"==typeof e)return e.length;if("object"==typeof e){if("undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer&&e.byteLength)return e.byteLength;if("undefined"!=typeof Blob&&e instanceof Blob&&e.size)return e.size;if(!("undefined"!=typeof FormData&&e instanceof FormData))try{return(0,X.A)(e).length}catch(e){return}}}var Me=r(8139),Pe=r(3434),Ie=r(5732);const je={},Ce=["open","send","setRequestHeader"];function De(e,t){var r=e||R.ee;const n=function(e){return(e||R.ee).get("xhr")}(r);if(void 0===g.gm.XMLHttpRequest)return n;if(je[n.debugId]++)return n;je[n.debugId]=1,(0,Me.u)(r,t);var i=(0,Pe.YM)(n,void 0,t),s=g.gm.XMLHttpRequest,a=g.gm.MutationObserver,o=g.gm.Promise,c=g.gm.setInterval,d="readystatechange",u=["onload","onerror","onabort","onloadstart","onloadend","onprogress","ontimeout"],f=[],h=g.gm.XMLHttpRequest=function(e){const r=new s(e),a=n.context(r);a.targets=(0,Ie.$5)(t);try{n.emit("new-xhr",[r],a),r.addEventListener(d,(o=a,function(){var e=this;e.readyState>3&&!o.resolved&&(o.resolved=!0,n.emit("xhr-resolved",[],e)),i.inPlace(e,u,"fn-",E)}),(0,J.jT)(!1))}catch(e){(0,l.R)(15,e);try{n.emit("internal-error",[e])}catch(e){}}var o;return r};function p(e,t){i.inPlace(t,["onreadystatechange"],"fn-",E)}if(function(e,t){for(var r in e)t[r]=e[r]}(s,h),h.prototype=s.prototype,i.inPlace(h.prototype,Ce,"-xhr-",E),n.on("send-xhr-start",function(e,t){p(e,t),function(e){f.push(e),a&&(m?m.then(b):c?c(b):(v=-v,y.data=v))}(t)}),n.on("open-xhr-start",p),a){var m=o&&o.resolve();if(!c&&!o){var v=1,y=document.createTextNode(v);new a(b).observe(y,{characterData:!0})}}else r.on("fn-end",function(e){e[0]&&e[0].type===d||b()});function b(){for(var e=0;e<f.length;e++)p(0,f[e]);f.length&&(f=[])}function E(e,t){return t}return n}var Be="fetch-",He=Be+"body-",We=["arrayBuffer","blob","json","text","formData"],Ue=g.gm.Request,Ke=g.gm.Response,Fe="prototype";const Ve={};function ze(e,t){const r=function(e){return(e||R.ee).get("fetch")}(e);if(!(Ue&&Ke&&g.gm.fetch))return r;if(Ve[r.debugId]++)return r;function n(e,n,i){var s=e[n];"function"==typeof s&&(e[n]=function(){var e=[...arguments];const n={},a=(0,Ie.$5)(t);var o;r.emit(i+"before-start",[e],n),n[R.P]&&n[R.P].dt&&(o=n[R.P].dt);var c=s.apply(this,e);return r.emit(i+"start",[e,o],c),c.then(function(e){return r.emit(i+"end",[null,e,a],c),e},function(e){throw r.emit(i+"end",[e,void 0,a],c),e})})}
29return Ve[r.debugId]=1,We.forEach(e=>{n(Ue[Fe],e,He),n(Ke[Fe],e,He)}),n(g.gm,"fetch",Be),r.on(Be+"end",function(e,n,i){var s=this;if(s.targets=i||[t.runtime.v2Target],n){var a=n.headers.get("content-length");null!==a&&(s.rxSize=a),r.emit(Be+"done",[null,n],s)}else r.emit(Be+"done",[e],s)}),r}var Ge=r(7485);class qe{constructor(e){this.agentRef=e}generateTracePayload(e){const t=this.agentRef.loader_config;if(!this.shouldGenerateTrace(e)||!t)return null;var r=(t.accountID||"").toString()||null,n=(t.agentID||"").toString()||null,i=(t.trustKey||"").toString()||null;if(!r||!n)return null;var s=(0,ye.ZF)(),a=(0,ye.el)(),o=Date.now(),c={spanId:s,traceId:a,timestamp:o};return(e.sameOrigin||this.isAllowedOrigin(e)&&this.useTraceContextHeadersForCors())&&(c.traceContextParentHeader=this.generateTraceContextParentHeader(s,a),c.traceContextStateHeader=this.generateTraceContextStateHeader(s,o,r,n,i)),(e.sameOrigin&&!this.excludeNewrelicHeader()||!e.sameOrigin&&this.isAllowedOrigin(e)&&this.useNewrelicHeaderForCors())&&(c.newrelicHeader=this.generateTraceHeader(s,a,o,r,n,i)),c}generateTraceContextParentHeader(e,t){return"00-"+t+"-"+e+"-01"}generateTraceContextStateHeader(e,t,r,n,i){return i+"@nr=0-1-"+r+"-"+n+"-"+e+"----"+t}generateTraceHeader(e,t,r,n,i,s){if(!("function"==typeof g.gm?.btoa))return null;var a={v:[0,1],d:{ty:"Browser",ac:n,ap:i,id:e,tr:t,ti:r}};return s&&n!==s&&(a.d.tk=s),btoa((0,X.A)(a))}shouldGenerateTrace(e){return this.agentRef.init?.distributed_tracing?.enabled&&this.isAllowedOrigin(e)}isAllowedOrigin(e){var t=!1;const r=this.agentRef.init?.distributed_tracing;if(e.sameOrigin)t=!0;else if(r?.allowed_origins instanceof Array)for(var n=0;n<r.allowed_origins.length;n++){var i=(0,Ge.D)(r.allowed_origins[n]);if(e.hostname===i.hostname&&e.protocol===i.protocol&&e.port===i.port){t=!0;break}}return t}excludeNewrelicHeader(){var e=this.agentRef.init?.distributed_tracing;return!!e&&!!e.exclude_newrelic_header}useNewrelicHeaderForCors(){var e=this.agentRef.init?.distributed_tracing;return!!e&&!1!==e.cors_use_newrelic_header}useTraceContextHeadersForCors(){var e=this.agentRef.init?.distributed_tracing;return!!e&&!!e.cors_use_tracecontext_headers}}var Ye=r(7295);function Ze(e){return"string"==typeof e?e:e instanceof(0,i.dV)().o.REQ?e.url:g.gm?.URL&&e instanceof URL?e.href:void 0}function $e(e,t){var r=(0,Ge.D)(t),n=e.params||e;n.hostname=r.hostname,n.port=r.port,n.protocol=r.protocol,n.host=r.hostname+":"+r.port,n.pathname=r.pathname,e.parsedOrigin=r,e.sameOrigin=r.sameOrigin}var Je=["load","error","abort","timeout"],Xe=Je.length,Qe=(0,i.dV)().o.REQ,et=(0,i.dV)().o.XHR;const tt="X-NewRelic-App-Data",rt="internal-error";class nt extends W{static featureName=c.TZ;constructor(e){super(e,c.TZ),this.dt=new qe(e),this.handler=(e,t,r,n)=>(0,S.p)(e,t,r,n,this.ee);try{const e={xmlhttprequest:"xhr",fetch:"fetch",beacon:"beacon"};g.gm?.performance?.getEntriesByType("resource").forEach(r=>{if(r.initiatorType in e&&0!==r.responseStatus){const n={status:r.responseStatus},i={rxSize:r.transferSize,duration:Math.floor(r.duration),cbTime:0};$e(n,r.name),this.handler("xhr",[n,i,r.startTime,r.responseEnd,e[r.initiatorType]],void 0,t.K7.ajax)}})}catch(e){}ze(this.ee,e),De(this.ee,e),function(e,r,n,i){const s=[c.mo.ALL,c.mo.FAILURES].includes(e.init.ajax?.capture_payloads);function a(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=A,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,t.params=this.params||{},t.metrics=this.metrics||{},t.latestLongtaskEnd=0,e.addEventListener("load",function(r){O(t,e)},(0,J.jT)(!1)),g.lR||e.addEventListener("progress",function(e){t.lastSize=e.loaded},(0,J.jT)(!1))}function o(e){this.params={method:e[0]},$e(this,e[1]),this.metrics={}}function d(t,r){e.loader_config.xpid&&this.sameOrigin&&r.setRequestHeader("X-NewRelic-ID",e.loader_config.xpid);var n=i.generateTracePayload(this.parsedOrigin);if(n){var s=!1;n.newrelicHeader&&(r.setRequestHeader("newrelic",n.newrelicHeader),s=!0),n.traceContextParentHeader&&(r.setRequestHeader("traceparent",n.traceContextParentHeader),n.traceContextStateHeader&&r.setRequestHeader("tracestate",n.traceContextStateHeader),s=!0),s&&(this.dt=n)}}function u(e,t){s&&e.length>=2&&(this.requestHeaders??={},this.requestHeaders[e[0].toLowerCase()]=e[1])}function l(e,t){var n=this.metrics,i=e[0],s=this;if(n&&i){var a=Le(i);a&&(n.txSize=a)}this.startTime=(0,_.t)(),this.requestBody=i,this.listener=function(e){try{"abort"!==e.type||s.loadCaptureCalled||(s.params.aborted=!0),("load"
29!==e.type||s.called===s.totalCbs&&(s.onloadCalled||"function"!=typeof t.onload)&&"function"==typeof s.end)&&s.end(t)}catch(e){try{r.emit(rt,[e])}catch(e){}}};for(var o=0;o<Xe;o++)t.addEventListener(Je[o],this.listener,(0,J.jT)(!1))}function f(e,t,r){this.cbTime+=e,t?this.onloadCalled=!0:this.called+=1,this.called!==this.totalCbs||!this.onloadCalled&&"function"==typeof r.onload||"function"!=typeof this.end||this.end(r)}function h(e,t){var r=""+Ne(e)+!!t;this.xhrGuids&&!this.xhrGuids[r]&&(this.xhrGuids[r]=!0,this.totalCbs+=1)}function p(e,t){var r=""+Ne(e)+!!t;this.xhrGuids&&this.xhrGuids[r]&&(delete this.xhrGuids[r],this.totalCbs-=1)}function m(){this.endTime=(0,_.t)()}function v(e,t){t instanceof et&&"load"===e[0]&&r.emit("xhr-load-added",[e[1],e[2]],t)}function y(e,t){t instanceof et&&"load"===e[0]&&r.emit("xhr-load-removed",[e[1],e[2]],t)}function b(e,t,r){t instanceof et&&("onload"===r&&(this.onload=!0),("load"===(e[0]&&e[0].type)||this.onload)&&(this.xhrCbStart=(0,_.t)()))}function E(e,t){this.xhrCbStart&&r.emit("xhr-cb-time",[(0,_.t)()-this.xhrCbStart,this.onload,t],t)}function w(e){var t,r=e[1]||{};if("string"==typeof e[0]?0===(t=e[0]).length&&g.RI&&(t=""+g.gm.location.href):e[0]&&e[0].url?t=e[0].url:g.gm?.URL&&e[0]&&e[0]instanceof URL?t=e[0].href:"function"==typeof e[0].toString&&(t=e[0].toString()),"string"==typeof t&&0!==t.length){t&&(this.parsedOrigin=(0,Ge.D)(t),this.sameOrigin=this.parsedOrigin.sameOrigin);var n=i.generateTracePayload(this.parsedOrigin);if(n&&(n.newrelicHeader||n.traceContextParentHeader))if(e[0]&&e[0].headers)o(e[0].headers,n)&&(this.dt=n);else{var s={};for(var a in r)s[a]=r[a];s.headers=new Headers(r.headers||{}),o(s.headers,n)&&(this.dt=n),e.length>1?e[1]=s:e.push(s)}}function o(e,t){var r=!1;return t.newrelicHeader&&(e.set("newrelic",t.newrelicHeader),r=!0),t.traceContextParentHeader&&(e.set("traceparent",t.traceContextParentHeader),t.traceContextStateHeader&&e.set("tracestate",t.traceContextStateHeader),r=!0),r}}function R(e,t){this.params={},this.metrics={},this.startTime=(0,_.t)(),this.dt=t;let[r,n={}]=e;$e(this,Ze(r));const i=(""+(r&&r instanceof Qe&&r.method||n.method||"GET")).toUpperCase();this.params.method=i,this.txSize=Le(n.body||r?.body)||0;try{var a=n.headers||r?.headers;if(s&&a)if(this.requestHeaders??={},a instanceof Headers)a.forEach(function(e,t){this.requestHeaders[t.toLowerCase()]=e}.bind(this));else if("object"==typeof a)for(var o in a)this.requestHeaders[o.toLowerCase()]=a[o]}catch(e){}this.requestBody=n.body||r?.body}function T(e,t){if(this.endTime=(0,_.t)(),this.params||(this.params={}),(0,Ye.iW)(this.params))return;this.params.status=t?t.status:0;const n=()=>{const e=+this.rxSize,t=null==this.rxSize||isNaN(e)?void 0:e,r={txSize:this.txSize,rxSize:t,duration:this.endTime-this.startTime},n=[this.params,r,this.startTime,this.endTime,"fetch"];this.targets.forEach(e=>x(n,this,e))};t&&s?t.clone().text().then(e=>{this.responseBody=e,this.rxSize&&"0"!==this.rxSize&&0!==this.rxSize||void 0===e||0===this.params.status||(this.rxSize=Le(e)),t?.headers&&(this.responseHeaders={},t.headers.forEach(function(e,t){this.responseHeaders[t.toLowerCase()]=e}.bind(this)))}).catch(e=>{r.emit(rt,[e])}).finally(()=>{n()}):n()}function A(e){const t=this.params,n=this.metrics;if(this.ended)return;this.ended=!0;for(let t=0;t<Xe;t++)e.removeEventListener(Je[t],this.listener,!1);if(t.aborted)return;if((0,Ye.iW)(t))return;if(n.duration=this.endTime-this.startTime,this.loadCaptureCalled||4!==e.readyState?null==t.status&&(t.status=0):O(this,e),n.cbTime=this.cbTime,s){try{this.responseBody=e.responseText}catch(t){this.responseBody=e.response}if((!n.rxSize||0===n.rxSize)&&void 0!==this.responseBody&&0!==t.status){const e=Le(this.responseBody);void 0!==e&&(n.rxSize=e)}try{this.responseHeaders=function(e){const t={};return e?(e.split("\r\n").forEach(function(e){const r=e.indexOf(": ");if(r>0){const n=e.substring(0,r),i=e.substring(r+2);t[n.toLowerCase()]=i}}),t):t}(e.getAllResponseHeaders())}catch(e){r.emit(rt,[e])}}const i=[t,n,this.startTime,this.endTime,"xhr"];this.targets.forEach(e=>x(i,this,e))}function x(e,r,i){n("xhr",[...e,i],r,t.K7.ajax)}function O(e,n){e.params.status=n.status;var i=function(e,t){var r=e.responseType;return"json"===r&&null!==t?t:"arraybuffer"===r||"blob"===r||"json"===r?Le(e.response):"text"===r||""===r||void 0===r?Le(e.responseText):void 0}(n,e.lastSize);if(void 0!==i&&0!==n.status&&(e.metrics.rxSize=i),e.sameOrigin&&n.getAllResponseHeaders().indexOf(tt)>=0){var s=n.getResponseHeader(tt);s&&((0,S.p)("sm",["Ajax/CrossApplicationTracing/Header/Seen"],void 0,t.K7.metrics,r),e.params.cat=s.split(", ").pop())}e.loadCaptureCalled=!0}r.on("new-xhr",a),r.on("open-xhr-start",o),r.on("open-xhr-end",d),r.on("send-xhr-start",l),r.on("setRequestHeader-xhr-start",u),r.on("xhr-cb-time",f),r.on("xhr-load-added",h),r.on("xhr-load-removed",p),r.on("xhr-resolved",m),r.on("addEventListener-end",v),r.on("removeEventListener-end",y),r.on("fn-end",E),r.on("fetch-before-start",w),r.on("fetch-start",R),r.on("fn-start",b),r.on("fetch-done",T)}(e,this.ee,this.handler,this.dt),this.importAggregator(e,()=>r.e(478).then(r.bind(r,3845)))}}const it={},st=["pushState","replaceState"];function at(e,t){const r=function(e){return(e||R.ee).get("history")}(e);return!g.RI||it[r.debugId]++||(it[r.debugId]=1,(0,Pe.YM)(r,void 0,t).inPlace(window.history,st,"-")),r}var ot=r(3738);function ct(e){(0,N.Y)(k.BL,function(r=Date.now()){const n=r-g.WN;n<0&&(0,l.R)(62,r),(0,S.p)(q.XG,[k.BL,{time:n}],void 0,t.K7.metrics,e.ee),e.addToTrace({name:k.BL,start:r,origin:"nr"}),(0,S.p)("api-"+k.hG,[n,k.BL],void 0,t.K7.genericEvents,e.ee)},e)}const{He:dt,bD:ut,d3:lt,Kp:ft,TZ:ht,Lc:pt,uP:gt,Rz:mt}=ot;class vt extends W{static featureName=ht;constructor(e){var n;super(e,ht),n=e,(0,N.Y)(k.U2,function(e){if(!(e&&"object"==typeof e&&e.name&&e.start))return;const r={n:e.name,s:e.start-g.WN,e:(e.end||e.start)-g.WN,o:e.origin||"",t:"api"};r.s<0||r.e<0||r.e<r.s?(0,l.R)(61,{start:r.s,end:r.e}):(0,S.p)("bstApi",[r],void 0,t.K7.sessionTrace,n.ee)},n),ct(e);
29if(!(0,j.V)(e.init))return void this.deregisterDrain();const i=this.ee;let s;at(i,e),this.eventsEE=(0,Me.u)(i,e),this.eventsEE.on(gt,function(e,t){this.bstStart=(0,_.t)()}),this.eventsEE.on(pt,function(e,r){(0,S.p)("bst",[e[0],r,this.bstStart,(0,_.t)()],void 0,t.K7.sessionTrace,i)}),i.on(mt+lt,function(e){this.time=(0,_.t)(),this.startPath=location.pathname+location.hash}),i.on(mt+ft,function(e){(0,S.p)("bstHist",[location.pathname+location.hash,this.startPath,this.time],void 0,t.K7.sessionTrace,i)});try{s=new PerformanceObserver(e=>{const r=e.getEntries();(0,S.p)(dt,[r],void 0,t.K7.sessionTrace,i)}),s.observe({type:ut,buffered:!0})}catch(e){}this.importAggregator(e,()=>r.e(478).then(r.bind(r,6974)),{resourceObserver:s})}}var yt=r(733),bt=r(6344);class Et extends W{static featureName=bt.TZ;#i;recorder;constructor(e){var n;let i;super(e,bt.TZ),n=e,(0,N.Y)(k.CH,function(){(0,S.p)(k.CH,[],void 0,t.K7.sessionReplay,n.ee)},n),function(e){(0,N.Y)(k.Tb,function(){(0,S.p)(k.Tb,[],void 0,t.K7.sessionReplay,e.ee)},e)}(e);const s="".concat(u.Wt).concat((0,yt.Y)(e.info.licenseKey,e.info.applicationID));try{i=JSON.parse(localStorage.getItem(s))}catch(e){}(0,I.SR)(e.init)&&this.ee.on(k.CH,()=>this.#s()),this.#a(i)&&this.importRecorder().then(e=>{e.startRecording(bt.Qb.PRELOAD,i?.sessionReplayMode)}),this.abortHandler=this.#n,this.importAggregator(this.agentRef,()=>r.e(478).then(r.bind(r,6167)),this),this.ee.on("err",e=>{this.blocked||this.agentRef.runtime.isRecording&&(this.errorNoticed=!0,(0,S.p)(bt.Vh,[e],void 0,this.featureName,this.ee))})}#a(e){return e&&(e.sessionReplayMode===u.g.FULL||e.sessionReplayMode===u.g.ERROR)||(0,I.Aw)(this.agentRef.init)}importRecorder(){return this.recorder?Promise.resolve(this.recorder):(this.#i??=Promise.all([r.e(478),r.e(249)]).then(r.bind(r,4866)).then(({Recorder:e})=>(this.recorder=new e(this),this.recorder)).catch(e=>{throw this.ee.emit("internal-error",[e]),this.blocked=!0,e}),this.#i)}#s(){this.blocked||(this.featAggregate?this.featAggregate.mode!==u.g.FULL&&this.featAggregate.initializeRecording(u.g.FULL,!0,bt.Qb.API):this.importRecorder().then(()=>{this.recorder.startRecording(bt.Qb.API,u.g.FULL)}))}#n(){this.recorder?.stopRecording()}}var wt=r(3962);class Rt extends W{static featureName=wt.TZ;constructor(e){if(super(e,wt.TZ),function(e){const r=e.ee.get("tracer");function n(){}(0,N.Y)(k.dT,function(e){return(new n).get("object"==typeof e?e:{})},e);const i=n.prototype={createTracer:function(n,i){var s={},a=this,o="function"==typeof i;return(0,S.p)(q.xV,["API/createTracer/called"],void 0,t.K7.metrics,e.ee),function(){if(r.emit((o?"":"no-")+"fn-start",[(0,_.t)(),a,o],s),o)try{return i.apply(this,arguments)}catch(e){const t="string"==typeof e?new Error(e):e;throw r.emit("fn-err",[arguments,this,t],s),t}finally{r.emit("fn-end",[(0,_.t)()],s)}}}};["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach(r=>{N.Y.apply(this,[r,function(){return(0,S.p)(k.hw+r,[performance.now(),...arguments],this,t.K7.softNav,e.ee),this},e,i])}),(0,N.Y)(k.PA,function(){(0,S.p)(k.hw+"routeName",[performance.now(),...arguments],void 0,t.K7.softNav,e.ee)},e)}(e),!g.RI||!(0,i.dV)().o.MO)return;const n=at(this.ee,e);try{this.removeOnAbort=new AbortController}catch(e){}wt.tC.forEach(e=>{(0,J.sp)(e,e=>{c(e)},!0,this.removeOnAbort?.signal)}
29);const s=()=>(0,S.p)("newURL",[(0,_.t)(),""+window.location],void 0,this.featureName,this.ee);n.on("pushState-end",s),n.on("replaceState-end",s),(0,J.sp)(wt.OV,e=>{c(e),(0,S.p)("newURL",[e.timeStamp,""+window.location],void 0,this.featureName,this.ee)},!0,this.removeOnAbort?.signal);let a=!1;const o=new((0,i.dV)().o.MO)((e,t)=>{a||(a=!0,requestAnimationFrame(()=>{(0,S.p)("newDom",[(0,_.t)()],void 0,this.featureName,this.ee),a=!1}))}),c=(0,C.s)(e=>{"loading"!==document.readyState&&((0,S.p)("newUIEvent",[e],void 0,this.featureName,this.ee),o.observe(document.body,{attributes:!0,childList:!0,subtree:!0,characterData:!0}))},100,{leading:!0});this.abortHandler=function(){this.removeOnAbort?.abort(),o.disconnect(),this.abortHandler=void 0},this.importAggregator(e,()=>r.e(478).then(r.bind(r,4393)),{domObserver:o})}}var Tt=r(981);const At={},St=new Set;function xt(e){return"string"==typeof e?{type:"string",size:(new TextEncoder).encode(e).length}:e instanceof ArrayBuffer?{type:"ArrayBuffer",size:e.byteLength}:e instanceof Blob?{type:"Blob",size:e.size}:e instanceof DataView?{type:"DataView",size:e.byteLength}:ArrayBuffer.isView(e)?{type:"TypedArray",size:e.byteLength}:{type:"unknown",size:0}}class Ot{constructor(e,t){this.timestamp=(0,_.t)(),this.currentUrl=(0,Ee.L)(window.location.href),this.socketId=(0,ye.LA)(8),this.requestedUrl=(0,Ee.L)(e),this.requestedProtocols=Array.isArray(t)?t.join(","):t||"",this.openedAt=void 0,this.protocol=void 0,this.extensions=void 0,this.binaryType=void 0,this.messageOrigin=void 0,this.messageCount=0,this.messageBytes=0,this.messageBytesMin=0,this.messageBytesMax=0,this.messageTypes=void 0,this.sendCount=0,this.sendBytes=0,this.sendBytesMin=0,this.sendBytesMax=0,this.sendTypes=void 0,this.closedAt=void 0,this.closeCode=void 0,this.closeReason="unknown",this.closeWasClean=void 0,this.connectedDuration=0,this.hasErrors=void 0}}class _t extends W{static featureName=o.TZ;constructor(e){super(e,o.TZ);const n=e.init.feature_flags.includes("websockets")||e.init.web_sockets?.enabled,s=!e.init.feature_flags.includes("no_spv"),a=[e.init.page_action.enabled,e.init.performance.capture_marks,e.init.performance.capture_measures,e.init.performance.resources.enabled,e.init.user_actions.enabled,n,s];var c;let d;if(c=e,(0,N.Y)(k.hG,(e,t)=>ce(e,t,c),c),function(e){(0,N.Y)(k.fF,(t,r)=>ue(t,r,e),e)}(e),ct(e),Se(e),function(e){(0,N.Y)(k.V1,(t,r)=>de(t,r,e),e)}(e),this.removeOnAbort=new AbortController,this.abortHandler=()=>{this.removeOnAbort.abort(),this.abortHandler=void 0},n){const u=function(e,t){if(!(0,i.dV)().o.WS)return e;const r=e.get("websockets");if(At[r.debugId]++)return r;At[r.debugId]=1,(0,V.G)(()=>{const e=(0,_.t)();St.forEach(t=>{t.nrData.closedAt=e,t.nrData.closeCode=1001,t.nrData.closeReason="Page navigating away",t.nrData.closeWasClean=!1,t.nrData.openedAt&&(t.nrData.connectedDuration=e-t.nrData.openedAt),r.emit("ws",[t.nrData,t.targets],t)})});
29class n extends WebSocket{static name=Tt.R.WS;static toString(){return"function WebSocket() { [native code] }"}toString(){return"[object WebSocket]"}get[Symbol.toStringTag](){return n.name}#o(e){(e.__newrelic??={}).socketId=this.nrData.socketId,this.nrData.hasErrors??=!0}constructor(...e){super(...e),this.nrData=new Ot(e[0],e[1]),this.targets=(0,Ie.$5)(t),this.addEventListener("open",()=>{this.nrData.openedAt=(0,_.t)(),["protocol","extensions","binaryType"].forEach(e=>{this.nrData[e]=this[e]}),St.add(this)}),this.addEventListener("message",e=>{const{type:t,size:r}=xt(e.data);this.nrData.messageOrigin??=(0,Ee.L)(e.origin),this.nrData.messageCount++,this.nrData.messageBytes+=r,this.nrData.messageBytesMin=Math.min(this.nrData.messageBytesMin||1/0,r),this.nrData.messageBytesMax=Math.max(this.nrData.messageBytesMax,r),(this.nrData.messageTypes??"").includes(t)||(this.nrData.messageTypes=this.nrData.messageTypes?"".concat(this.nrData.messageTypes,",").concat(t):t)}),this.addEventListener("close",e=>{this.nrData.closedAt=(0,_.t)(),this.nrData.closeCode=e.code,e.reason&&(this.nrData.closeReason=e.reason),this.nrData.closeWasClean=e.wasClean,this.nrData.connectedDuration=this.nrData.closedAt-this.nrData.openedAt,St.delete(this),r.emit("ws",[this.nrData,this.targets],this)})}addEventListener(e,t,...r){const n=this,i="function"==typeof t?function(...e){try{return t.apply(this,e)}catch(e){throw n.#o(e),e}}:t?.handleEvent?{handleEvent:function(...e){try{return t.handleEvent.apply(t,e)}catch(e){throw n.#o(e),e}}}:t;return super.addEventListener(e,i,...r)}send(e){if(this.readyState===WebSocket.OPEN){const{type:t,size:r}=xt(e);this.nrData.sendCount++,this.nrData.sendBytes+=r,this.nrData.sendBytesMin=Math.min(this.nrData.sendBytesMin||1/0,r),this.nrData.sendBytesMax=Math.max(this.nrData.sendBytesMax,r),(this.nrData.sendTypes??"").includes(t)||(this.nrData.sendTypes=this.nrData.sendTypes?"".concat(this.nrData.sendTypes,",").concat(t):t)}try{return super.send(e)}catch(e){throw this.#o(e),e}}close(...e){try{super.close(...e)}catch(e){throw this.#o(e),e}}}return g.gm.WebSocket=n,r}(this.ee,e);u.on("ws",(e,t)=>{(0,S.p)("ws-complete",[e,t],void 0,this.featureName,this.ee)})}if(s){if("function"==typeof g.gm.ReportingObserver){const l=new g.gm.ReportingObserver(e=>{e.forEach(e=>{(0,S.p)("spv",[kt(e),(0,_.t)()],void 0,t.K7.genericEvents,this.ee)}),l.disconnect()},{types:["csp-violation"],buffered:!0});l.observe()}g.gm.addEventListener("securitypolicyviolation",e=>{(0,S.p)("spv",[kt(e),e.timeStamp],void 0,t.K7.genericEvents,this.ee)},(0,J.jT)(!1,this.removeOnAbort.signal))}if(g.RI){if(ze(this.ee,e),De(this.ee,e),d=at(this.ee,e),e.init.user_actions.enabled){function f(t){const r=(0,Ge.D)(t);return e.beacons.includes(r.hostname+":"+r.port)}function h(){d.emit("navChange")}o.Zp.forEach(e=>(0,J.sp)(e,e=>(0,S.p)("ua",[e],void 0,this.featureName,this.ee),!0)),o.qN.forEac
29h(e=>{const t=(0,C.s)(e=>{(0,S.p)("ua",[e],void 0,this.featureName,this.ee)},500,{leading:!0});(0,J.sp)(e,t)}),g.gm.addEventListener("error",()=>{(0,S.p)("uaErr",[],void 0,t.K7.genericEvents,this.ee)},(0,J.jT)(!1,this.removeOnAbort.signal)),this.ee.on("open-xhr-start",(e,r)=>{f(e[1])||r.addEventListener("readystatechange",()=>{2===r.readyState&&(0,S.p)("uaXhr",[],void 0,t.K7.genericEvents,this.ee)},(0,J.jT)(void 0,this.removeOnAbort.signal))}),this.ee.on("fetch-start",e=>{e.length>=1&&!f(Ze(e[0]))&&(0,S.p)("uaXhr",[],void 0,t.K7.genericEvents,this.ee)}),d.on("pushState-end",h),d.on("replaceState-end",h),window.addEventListener("hashchange",h,(0,J.jT)(!0,this.removeOnAbort.signal)),window.addEventListener("popstate",h,(0,J.jT)(!0,this.removeOnAbort.signal))}if(e.init.performance.resources.enabled&&g.gm.PerformanceObserver?.supportedEntryTypes.includes("resource")){new PerformanceObserver(e=>{e.getEntries().forEach(e=>{(0,S.p)("browserPerformance.resource",[e],void 0,this.featureName,this.ee)})}).observe({type:"resource",buffered:!0})}}a.some(e=>e)?this.importAggregator(e,()=>r.e(478).then(r.bind(r,8019))):this.deregisterDrain()}}function kt(e){const t=e.body??e;return{blockedUrl:t.blockedURL??e.blockedURI,documentUrl:t.documentURL??e.documentURI,effectiveDirective:t.effectiveDirective,originalPolicy:t.originalPolicy,sourceFile:t.sourceFile,statusCode:t.statusCode,lineNumber:t.lineNumber,columnNumber:t.columnNumber,disposition:"reporting"===t.disposition?"report":t.disposition,sample:t.sample,referrer:t.referrer}}var Nt=r(2646);const Lt=new Map;function Mt(e,t,r,n,i=!0,s){if("object"!=typeof t||!t||"string"!=typeof r||!r||"function"!=typeof t[r])return(0,l.R)(29);const a=function(e){return(e||R.ee).get("logger")}(e),o=(0,Pe.YM)(a,void 0,s),c=new Nt.y(R.P);c.level=n.level,c.customAttributes=n.customAttributes,c.autoCaptured=i;const d=t[r]?.[Pe.Jt]||t[r];return Lt.set(d,c),o.inPlace(t,[r],"wrap-logger-",()=>Lt.get(d),void 0,!0),a}var Pt=r(1910);class It extends W{static featureName=se.TZ;constructor(e){var t;super(e,se.TZ),t=e,(0,N.Y)("log",(e,r)=>oe(e,r,t),t),function(e){(0,N.Y)(k.Wb,(t,r,{customAttributes:n={},level:i=se.p_.INFO}={})=>{Mt(e.ee,t,r,{customAttributes:n,level:i},!1,e)},e)}(e),Se(e);const n=this.ee;["log","error","warn","info","debug","trace"].forEach(t=>{(0,Pt.i)(g.gm.console[t]),Mt(n,g.gm.console,t,{level:"log"===t?"info":t},void 0,e)}),this.ee.on("wrap-logger-end",function([t],r,i,s=[e.runtime.v2Target]){const{level:a,customAttributes:o,autoCaptured:c}=this;s.forEach(e=>{(0,ae.R)(n,t,o,a,c,e)})}),this.importAggregator(e,()=>r.e(478).then(r.bind(r,5288)))}}new F({features:[nt,K,G,vt,Et,Y,Oe,_t,It,Rt],loaderType:"spa"})})()})();</script>
29
30    	<meta property="fb:pages" content="" />
31	<meta property="og:article:author" content="Bridget Galton" />
32<link rel="canonical" href="https://www.kilburntimes.co.uk/news/26570077.new-aldi-store-willesden-high-road-opening-date-revealed/" />
33	<meta name="keywords" content=""/>
34	<meta name="parsely-title" content="Opening date for huge new Willesden supermarket spotted on website"/>
35	<meta name="parsely-post-id" content="26570077"/>
36	<meta name="description" content="Aldi’s website lists an opening date for the new Willesden High Road supermarket on the former B&amp;M site."/>
37	<meta name="title" content="Opening date for huge new Willesden supermarket spotted on website"/>
38	<meta name="medium" content="news"/>
39	<meta name="twitter:description" content="Aldi’s website lists an opening date for the new Willesden High Road supermarket on the former B&amp;M site."/>
40	<meta name="twitter:title" content="Opening date for huge new Willesden supermarket spotted on website"/>
41	<meta name="twitter:card" content="summary_large_image"/>
42	<meta name="cXenseParse:contentlevel" content=""/>
43	<meta name="cXenseParse:articleid" content="26570077"/>
44	<meta itemprop="description" content="Aldi’s website lists an opening date for the new Willesden High Road supermarket on the former B&amp;M site." />
45	<meta itemprop="name" content="Opening date for huge new Willesden supermarket spotted on website" />
46	<meta property="og:description" content="Aldi’s website lists an opening date for the new Willesden High Road supermarket on the former B&amp;M site." />
47	<meta property="og:name" content="Opening date for huge new Willesden supermarket spotted on website" />
48	<meta property="fb:app_id" content="" />
49	<meta property="og:type" content="article" />
50	<meta property="og:title" content="Opening date for huge new Willesden supermarket spotted on website" />
51	<meta name="twitter:image:src" content="https://www.kilburntimes.co.uk/resources/images/21485284/"/>
52	<meta itemprop="image" content="https://www.kilburntimes.co.uk/resources/images/21485284/" />
53	<meta property="og:image:height" content="554" />
54	<meta property="og:image:width" content="1364" />
55	<meta property="og:image" content="https://www.kilburntimes.co.uk/resources/images/21485284.jpg?type=og-image" />
56	<meta property="og:site_name" content="Brent & Kilburn Times" />
57	<meta property="og:url" content="https://www.kilburntimes.co.uk/news/26570077.new-aldi-store-willesden-high-road-opening-date-revealed/" />
58	<meta property="og:article:published_time" content="2026-09-22T16:55:00Z" />
59
60<script type="application/ld+json">
61{
62    "@context": "http://schema.org",
63    "@type": "NewsArticle",
64    "headline": "New Aldi store in Willesden High Road opening date revealed",
65    "datePublished": "2026-09-22T16:55:00Z",
66    
67    "dateModified": "2026-09-22T16:56:07Z",
68    
69    "articleSection": "news",
70    "mainEntityOfPage": "https://www.kilburntimes.co.uk/news/26570077.new-aldi-store-willesden-high-road-opening-date-revealed/",
71    "url": "https://www.kilburntimes.co.uk/news/26570077.new-aldi-store-willesden-high-road-opening-date-revealed/",
72    "isBasedOn": "https://www.kilburntimes.co.uk/news/26570077.new-aldi-store-willesden-high-road-opening-date-revealed/",
73    "author": {
74        "@type": "Person",
75        "name": "Bridget Galton"
76    },
77    "image": {
78        "@type": "ImageObject",
79        "url": "https://www.kilburntimes.co.uk/resources/images/21485284.jpg/",
80        "width": 1280,
81        "height": 720
82    },
83    "publisher": {
84        "@type": "Organization",
85        "name": "Brent &amp; Kilburn Times",
86        "logo": {
87            "@type": "ImageObject",
88             "url": "https://www.kilburntimes.co.uk/resources/images/sitelogo/",
89             "width": "385",
90             "height": "91"
91        }
92    },
93    "keywords": ["article_types:news","topics:business","topics:leisure","topics:leisure:shopping","free_tags:organisations:businesses:aldi","free_tags:other:other-locations:willesden","source:newsquest"]
94}
95</script>
95
96
97
98
99
100
101
102
103
104    <link id="page_stylesheet_vars" href="/resources/responsive-static/build/mds/css/archant-bright-red-2-sans-serif-vars.css?r=mkW8NyPe" rel="stylesheet" type="text/css">
105
106    <link href="/resources/responsive-static/build/mds/css/header-footer.css?r=mkW8NyPe" rel="stylesheet" type="text/css">
107
108    <link id="page_stylesheet" href="/resources/responsive-static/build/mds/css/blockarticle.css?r=mkW8NyPe" rel="stylesheet" type="text/css">
109
110    
111
112    <link rel="shortcut icon" href="/resources/images/13965120/" type="image/vnd.microsoft.icon">
113    <link rel="icon" href="/resources/images/13965120/" type="image/vnd.microsoft.icon">
114
115        
115<script>
116        window.startExec = performance.now();
117    </script>
117
118
119    
119<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js" integrity="sha384-1H217gwSVyLSIfaLxHbE7dRb3v4mYCKbpQvzx0cegeju1MVsGrX5xXxAvs/HgeFs" crossorigin="anonymous"></script>
vendor: 1 bytes, line 119
119
120<script src="https://code.jquery.com/jquery-migrate-3.6.0.js" integrity="sha384-ekzRTCLAU/LqHRBjnphRAxgZZvGdoP+TfkGGsX+tBJpRdM7r2/89ZZNzC/7YTJXX" crossorigin="anonymous"></script>
vendor: 1 bytes, line 120
120
121<script type="text/javascript" src="/resources/shared/responsive-sync/?r=mkW8NyPe"></script>
121
122
123<script type="text/javascript">
124    data_layer_helper.setIsArticle(true);
125    data_layer_helper.setCookieDomain('.kilburntimes.co.uk');
126    data_layer_helper.setModuleType('BlockArticleModule');
127    data_layer_helper.setLocalInfoFolder('');
128    data_layer_helper.setHomesData('', '', '', 'news');
129    data_layer_helper.setPrimaryDomain('www.kilburntimes.co.uk');
130    data_layer_helper.setPath('/news/');
131    data_layer_helper.setGoogleNetworkCode('154725070');
132    data_layer_helper.setArticleTimestamp('1790092500');
133    data_layer_helper.setPathOverride();
134
135
136    var extraTags = [];
137    
138        extraTags.push('user_level_anonymous');
139    
140
141    var data_layer = {
142        environment: {
143            is_test_site: 'no',
144            is_live_site: 'yes',
145            is_paywall_site: 'no',
146            is_portable_screen: (data_layer_helper.isMobileScreen()) ? 'yes' : 'no',
147            is_desktop_screen: (data_layer_helper.isMobileScreen()) ? 'no' : 'yes',
148            is_mobile_device: data_layer_helper.getMobileDevice(),
149            is_tablet_device: data_layer_helper.getTabletDevice(),
150            server: 'webapp-66cb74b878-8q4bt',
151            platform: 'Martini'
152        },
153        site: {
154            id: '1187',
155            comments_subscriber_only: 'no',
156            viafoura_site_id: '00000000-0000-4000-8000-ae1126a95ac0',
157            comments_use_viafoura: 'yes',
158            centre_id: '33',
159            centre_name: '',
160            country: 'England',
161            name: 'Brent & Kilburn Times',
162            name_with_prefix_capitalised_possessive: 'The Brent & Kilburn Times\'',
163            name_with_prefix_lower_possessive: 'the Brent & Kilburn Times\'',
164            domain: 'www.kilburntimes.co.uk',
165            editor_name: 'Simon Murfitt',
166            onboarding_enabled: 'no',
167            onboarding_flow_id: 'onboarding_disabled',
168            allowing_mr_replacement: 'no',
169            cookie_domain: '.kilburntimes.co.uk',
170            uses_cmp: 'yes',
171            short_domain: 'kilburntimes',
172            using_piano_id: 'yes',
173            enable_skimlinks: 'no',
174            skimlinks_domain_id: '',
175            disable_newsletters: 'no',
176            is_archant_site: 'yes',
177            shc_merchant_name: '',
178            piano_application_group: 'Forest',
179            piano_site_name: 'Brent & Kilburn Times',
180            piano_site_name_possessive: 'Brent & Kilburn Times\'',
181            piano_site_name_with_prefix_lower: 'the Brent & Kilburn Times',
182            piano_site_name_with_prefix_capitalised: 'The Brent & Kilburn Times',
183            piano_site_name_with_prefix_capitalised_possessive: 'The Brent & Kilburn Times\'',
184            piano_site_name_with_prefix_lower_possessive: 'the Brent & Kilburn Times\'',
185            piano_location_primary: 'Brent and Kilburn',
186            piano_location_primary_possessive: 'Brent and Kilburn\'s',
187            piano_location_county: 'London',
188            piano_location_county_possessive: 'London\'s',
189            piano_primary_sports_team: '',
190            piano_primary_sports_team_nickname: '',
191            piano_primary_sports_team_sport: '',
192            piano_primary_sports_team_possessive: '',
193            piano_primary_sports_team_nickname_possessive: '',
194            piano_self_service_cancellation_setting: 'None',
195            has_app: 'no',
196            app_provider: '',
197            app_platform: '',
198            app_store_url_ios: '',
199            app_store_url_google_play: ''
200        },
201        page: {
202            module: 'BlockArticleModule',
203            referrer: data_layer_helper.getReferrerHostName(),
204            name: '(www) ' + data_layer_helper.getOmniturePath(),
205            title: document.title,
206            path: data_layer_helper.getOmniturePath(),
207            section: data_layer_helper.getPathFragment(0),
208            subsection: data_layer_helper.getPathFragment(1),
209            subsection_2: data_layer_helper.getPathFragment(2),
210            subsection_3: data_layer_helper.getPathFragment(3),
211            reference: qs.get('ref'),
212            layout: 'BAM Standard Article',
213            ad_timing: data_layer_helper.getCookie('adtiming'),
214            template_namespace: 'standard',
215            template: '',
216            colour_scheme: '',
217            layout_template: 'BAM Standard Article',
218            mds_font: 'sans-serif',
219            user_used_app_last_24hours: '',
220            user_used_app_last_7days: '',
221            user_used_app_last_14days: '',
222            mds_colour_palette: 'archant-bright-red-2',
223            feature_block_a_enabled: ($('[data-name="Feature Article Block A"]').length > 0) ? 'yes' : 'no',
224            feature_block_b_variant: (typeof $('[data-name="Feature Article Block B"]').data('variant') === 'undefined') ? '' : $('[data-name="Feature Article Block B"]').data('variant'),
225            is_article_list: 'no',
226            error_404: '',
227            top_stories_article_count: '',
228            interstitial_dedupe_top_stories: '',
229            interstitial_desktop_height: '',
230            interstitial_mobile_height: '',
231            interstitial_tablet_height: '',
232            interstitial_piano_module_id: '',
233            interstitial_using_recommendations: '',
234            interstitial_recommendation_header: '',
235            interstitial_article_count: '',
236            news_stories_article_count: '',
237            site_newspaper_archive_enabled: 'no',
238            site_newspaper_archive_number_of_pages: '',
239            site_newspaper_archive_start_year: 0,
240            article_originates_from_this_site: 'yes',
241            article_originates_from_site: '',
242            article_originates_from_url: ''
243        },
244        user: {
245            id: '',
246            first_name: '',
247            advertising_experience: 'Ad-Full',
248            is_privacy_plus: 'no',
249            is_alist: 'no',
250            level: data_layer_helper.getCookie('nq_ul'),
251            seen_cmp: (data_layer_helper.getCookie('_sp_enable_dfp_personalized_ads') === 'true' || data_layer_helper.getCookie('_sp_enable_dfp_personalized_ads') === 'false') ? 'yes' : 'no',
252            given_consent: (data_layer_helper.getCookie('_sp_enable_dfp_personalized_ads') === 'true') ? 'yes' : 'no',
253            consent_string: data_layer_helper.getConsentString(),
254            type: 'anonymous',
255            parsely_type: 'Anonymous',
256            chartbeat_type: 'anon',
257            type_as_int: '1',
258            is_logged_in: 'no',
259            is_admin: 'no',
260            is_internal_admin: '',
261            has_full_admin_link_permissions: '',
262            has_registered: (data_layer_helper.getCookie('nqr') !== null) ? 'yes' : 'no',
263            comments_verified: '',
264            comments_verified_date: '',
265            user_email_is_verified: '',
266            user_email_is_verified_date: '',
267            mobile_number_is_verified: '',
268            mobile_number_is_verified_date: '',
269            user_needs_email_verification: '',
270            user_needs_mobile_verification: '',
271            user_too_many_requests: '',
272            age_decade:  '0' ,
273            gender:  'u' ,
274            is_known: data_layer_helper.getCookie('__siren') ? 'yes' : 'no',
275            hash: '',
276            lr_hash_1: '',
277            lr_hash_2: '',
278            lr_hash_3: '',
279            gender:  'u' ,
280            user_decade:  '0' ,
281            subscription_plan: '',
282            subscription_tier: 'null',
283            subscription_plan_and_frequency: ' - ',
284            commented: (data_layer_helper.isArticle() && qs.get('action') === 'success') ? 'yes' : 'no',
285            time_since_last_visit: 'not implemented (maybe drop)',
286            device: data_layer_helper.getDevice(),
287            using_ad_blocker_sourcepoint: data_layer_helper.getSourcepointAdbockStatus(),
288            admin_user_name: '',
289            is_admin_internal: '',
290            is_admin_external: '',
291            card_expired: '',
292            card_will_expire: '',
293            expires_urgency: '',
294            abandoned_cart: 'no',
295            subscription_expired: 'no',
296            is_archant_site: 'yes',
297            signed_up_primary_news_newsletter: 'no',
298            signed_up_primary_sport_newsletter: 'no',
299            played_free_puzzles_last_7days: '',
300            played_paid_puzzles_last_7days: '',
301            commenter_badge: '',
302        },
303        analytics: {
304            hierachy: 'newsquest,,www.kilburntimes.co.uk,' + data_layer_helper.getPathFragment(3).replace(/\//,','),
305            link_filters: 'javascript:,kilburntimes.co.uk,fish4.co.uk,adsys.newsquest.co.uk,www.exchangeandmart.co.uk,www.communigate.co.uk,',
306            tracking_block: data_layer_helper.getTrackingFromCookie('tracking_block', ''),
307            tracking_block_index: data_layer_helper.getTrackingFromCookie('tracking_block_index', ''),
308            previous_page_name: data_layer_helper.getCookie('nq_prev_page'),
309            advert_id: '',
310            position_in_list: data_layer_helper.getTrackingFromCookie('o-prop30', ''),
311            featured_content: data_layer_helper.getTrackingFromCookie('o-ref', qs.get('ref')),
312            account: data_layer_helper.getAccount()
313        },
314        chartbeat: {
315            enabled: "no",
316            id: "",
317            domain: "",
318            sections: 'article_types:news,topics:business,topics:leisure,to
318pics:leisure:shopping,free_tags:organisations:businesses:aldi,free_tags:other:other-locations:willesden,source:newsquest'
319        },
320        parsely: {
321            enabled: "yes",
322            site_id: "kilburntimes.co.uk",
323            type: 'Anonymous'
324        },
325        piano: {
326            tags: data_layer_helper.getPianoTags({
327                      piano_domain: 'kilburntimes',
328                      piano_master: '',
329                      breaking_news: false,
330                      editorial_opinion: false,
331                      free_subscriber: false,
332                      free_subscriber: false,
333                      has_video: false,
334                      is_article: true,
335                      article_content_level : '1',
336                      article_content_level_open_access: false,
337                      picture_gallery_id: false,
338                      user_is_newsquest: false,
339                      user_is_entra_authenticated: false,
340                      user_logged_in: false,
341                      is_live_article: false,
342                      why_free_subscriber: '',
343                      extra_tags: extraTags,
344                      is_covid_headline: false,
345                      is_covid_body: false,
346                      is_alist: false,
347                      audio_provider_bytecast: false
348                  }
349            ),
350            custom_variables: {
351                article_length: 'm',
352                application_group: 'Forest',
353                content_is_editorial_opinion: 'no',
354                base_url: 'https://www.kilburntimes.co.uk',
355                full_url: document.location.href,
356                mds_font: 'sans-serif',
357                mds_colour_palette: 'archant-bright-red-2',
358                site_name: 'Brent & Kilburn Times',
359                site_name_possessive: 'Brent & Kilburn Times\'',
360                site_name_with_prefix_capitalised: 'The Brent & Kilburn Times',
361                site_name_with_prefix_lower: 'the Brent & Kilburn Times',
362                site_name_with_prefix_capitalised_possessive: 'The Brent & Kilburn Times\'',
363                site_name_with_prefix_lower_possessive: 'the Brent & Kilburn Times\'',
364                location_primary: 'Brent and Kilburn',
365                location_primary_possessive: 'Brent and Kilburn\'s',
366                location_county: 'London',
367                location_county_possessive: 'London\'s',
368                site_has_primary_sports_team: 'no',
369                primary_sports_team: '',
370                primary_sports_team_nickname: '',
371                primary_sports_team_sport: '',
372                primary_sports_team_possessive: '',
373                primary_sports_team_nickname_possessive: '',
374                site_id: '1187',
375                content_level: '1',
376                content_author: 'Bridget Galton',
377                content_id: '26570077',
378                content_is_article: 'yes',
379                content_primary_topic: 'Business',
380                user_seen_consent_modal: ($.cookie('_sp_enable_dfp_personalized_ads') === 'true' || $.cookie('_sp_enable_dfp_personalized_ads') === 'false') ? 'yes' : 'no',
381                site_section: data_layer_helper.getPathFragment(0, true),
382                article_published_yyyy: '2026',
383                user_played_free_puzzles_last_7days: '',
384                user_played_paid_puzzles_last_7days: '',
385                anon_user_played_free_puzzles_last_7days: data_layer_helper.untrackedPuzzleCheck(),
386                home_delivery_phone_number: '',
387                content_is_restricted: data_layer_helper.getRestrictedContent('1', '1187', '1187', ''),
388                day_of_week: data_layer_helper.getDayOfWeek(),
389                user_card_expired: '',
390                user_card_will_expire: '',
391                user_expires_urgency: '',
392                user_used_app_last_24hours: '',
393                user_used_app_last_7days: '',
394                user_used_app_last_14days: '',
395                user_subscription_tier: 'null',
396                user_is_newsquest: 'no',
397                primary_news_newsletter_id: '2343',
398                primary_news_newsletter_name: 'the B&K Times In Brief',
399                primary_news_newsletter_description: 'The latest news and sport headlines for the Brent and Kilburn area, plus events and things to do.',
400                primary_sport_newsletter_id: '2343',
401                primary_sport_newsletter_name: 'the B&amp;K Times In Brief',
402                primary_sport_newsletter_description: 'The latest news and sport headlines for the Brent and Kilburn area, plus events and things to do.',
403                user_signed_up_primary_news_newsletter: 'no',
404                user_signed_up_primary_sport_newsletter: 'no',
405                newsletter_auto_promote: 'auto_success',
406                newsletter_auto_promote_name: 'the B&K Times In Brief',
407                newsletter_auto_promote_description: 'The latest news and sport headlines for the Brent and Kilburn area, plus events and things to do.',
408                newsletter_auto_promote_ID: '2343',
409                site_has_app: 'no',
410                site_app_store_url_ios: '',
411                site_app_store_url_google_play: '',
412                subsets_experiment_id: '',
413                site_section1: data_layer_helper.getPathFragment(1, true), // GBL required
414                site_newspaper_archive_enabled: 'no',
415                site_newspaper_archive_number_of_pages: '',
416                site_newspaper_archive_start_year: 0,
417                article_originates_from_this_site: 'yes',
418                article_originates_from_site: '',
419                article_originates_from_url: ''
420            },
421            native_variables: {
422                setContentCreated: '2026-09-22T16:55:00',
423                setContentIsNative:  'no',
424                setContentAuthor: 'Bridget Galton',
425                setContentSection: data_layer_helper.getPathFragment(0, true)
426            }
427        },
428        article: {
429            cscore:'',
430            showing_preview: '',
431            is_article: data_layer_helper.isArticle() ? 'yes' : 'no',
432            id : '26570077',
433            length_type: 'm',
434            character_count: '1802',
435            author: 'Bridget Galton'.toLowerCase(),
436            e_var15: 'none|use author profile|bridget galton'.toLowerCase(),
437            context: 'Business',
438            content_level: '1',
439            content_level_open_access: 'no',
440            content_level_combined: '1,metered,no',
441            content_is_restricted: data_layer_helper.getRestrictedContent('1', '1187', '1187', ''),
442            increment: (data_layer_helper.isArticle()) ? '+1' : '',
443            sponsor: '',
444            contributions: '0',
445            is_sponsored: 'no',
446            headline: 'Opening date for huge new Willesden supermarket spotted on website',
447            age: data_layer_helper.getArticleAge(),
448            upload_date: '',
449            publish_date: '22/09/2026',
450            update_date: '',
451            rating: '20',
452            source: data_layer_helper.getSource(''),
453            subjects: (typeof articleSubjects === 'object') ? articleSubjects.join(',') : '',
454            context: 'Business',
455            grapeshot_context: (typeof gs_channels !== 'undefined') ? gs_channels : '',
456            allow_comments: 'no',
457            total_comments: '0',
458            originating_site_id: '1187',
459            parent_article_site_id: '',
460            parent_article_id: '',
461            originating_article_id: '26570077',
462            parent_originating_site_id: '1187',
463            is_original_to_site: 'yes',
464            is_cloned: 'no',
465            parent_article_url: 'https://www.kilburntimes.co.uk/news/26570077.new-aldi-store-willesden-high-road-opening-date-revealed/',
466            use_skimlinks: 'no',
467            content_primary_topic: 'Business',
468            taxonomy: {
469                article_types: 'news',
470                topics: 'business,leisure,leisure:shopping',
471                sports: '',
472                sports_teams: '',
473                locations: '',
474                shared_content: '',
475                free_tags: 'organisations:businesses:aldi,other:other
475-locations:willesden',
476                farming: ''
477            },
478            audio: {
479                has_audio: 'no',
480                provider: ''
481            },
482            article_comments_use_viafoura: 'yes'
483        },
484        homes: {
485            search_bedrooms_minimum: '',
486            search_location: 'news',
487            search_price_minimum: '',
488            search_price_maximum: '',
489            list: '',
490            id: ''
491        },
492        video: {
493            exists: 'no',
494            auto_play_enabled: data_layer_helper.getAutoPlay('no')
495        },
496        contributions: {
497            allow_text: '',
498            allow_image: '',
499            user_contributions_number: '0',
500            has_user_contributions: 'no'
501        },
502        search: {
503            keywords: qs.get('search'),
504            results: ''
505        },
506        announcements: {
507            category: ''
508        },
509        config: {
510            google_analytics_id: 'UA-63178068-10',
511            site_template_set: 'standard',
512            path: '/news/',
513            top_level_section: 'news',
514            polar_property_id: 'NA-DAILECHO-11238979',
515            gallery_show_advert_after: '5',
516            disable_outbrain_with_ad_light: 'no',
517            disable_outbrain: 'no'
518        },
519        dfp: {
520            is_landing: 'no',
521            module_path: 'news',
522            weather_band: '',
523            weather_summary: ''.toLowerCase(),
524            id: data_layer_helper.getGoogleId(),
525            display_screen: data_layer_helper.isMobileScreen() ? 'mobile' : 'desktop',
526            can_show_billboard: (window.screen.width > 960) ? 'y' : 'n'
527        },
528        dates: {
529            date: (new Date()).toLocaleDateString('en-GB'),
530            hour: (new Date()).getHours(),
531            day: data_layer_helper.getDayOfWeek(),
532            weekend: ((new Date()).getDay() === 6 || (new Date()).getDay() === 0) ? 'Weekend' : 'Weekday'
533        },
534        memorials: {
535            contact_phone_number: '',
536            contact_email_address: '',
537            publications: JSON.parse('' || '[]'),
538            user: {
539                id: '',
540                email_verified: 'no',
541                type: ''
542            },
543            funeral_director: {
544                id: '',
545                person_urn: ''
546            }
547        }
548    }
549
550    data_layer_helper.storeCurrentPageName(data_layer.page.name);
551
552    window.dispatchEvent(new Event('data-layer-loaded'))
553
554      data_layer.piano.custom_variables.user_used_app_last_24hours = 'no';
555      data_layer.piano.custom_variables.user_used_app_last_7days = 'no';
556      data_layer.piano.custom_variables.user_used_app_last_14days = 'no';
557  if (data_layer.article.is_article !== 'yes') {
558      data_layer.piano.custom_variables.site_module = 'BlockArticleModule';
559      data_layer.piano.custom_variables.puzzles_landing_page = 'no';
560      data_layer.piano.custom_variables.puzzles_display_page = 'no';
561  }
562</script>
562
563 
564<script
565  src="https://assets.adobedtm.com/499440d21de9/54b957ecfb7e/launch-98090dfa3d73.min.js"
566  async
567></script>
567
568 
569
570<script>"use strict";function _typeof(t){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}!function(){var t=function(){var t,e,o=[],n=window,r=n;for(;r;){try{if(r.frames.__tcfapiLocator){t=r;break}}catch(t){}if(r===n.top)break;r=r.parent}t||(!function t(){var e=n.document,o=!!n.frames.__tcfapiLocator;if(!o)if(e.body){var r=e.createElement("iframe");r.style.cssText="display:none",r.name="__tcfapiLocator",r.title="tcfapiLocator",e.body.appendChild(r)}else setTimeout(t,5);return!o}(),n.__tcfapi=function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];if(!n.length)return o;"setGdprApplies"===n[0]?n.length>3&&2===parseInt(n[1],10)&&"boolean"==typeof n[3]&&(e=n[3],"function"==typeof n[2]&&n[2]("set",!0)):"ping"===n[0]?"function"==typeof n[2]&&n[2]({gdprApplies:e,cmpLoaded:!1,cmpStatus:"stub"}):o.push(n)},n.addEventListener("message",(function(t){var e="string"==typeof t.data,o={};if(e)try{o=JSON.parse(t.data)}catch(t){}else o=t.data;var n="object"===_typeof(o)&&null!==o?o.__tcfapiCall:null;n&&window.__tcfapi(n.command,n.version,(function(o,r){var a={__tcfapiReturn:{returnValue:o,success:r,callId:n.callId}};t&&t.source&&t.source.postMessage&&t.source.postMessage(e?JSON.stringify(a):a,"*")}),n.parameter)}),!1))};"undefined"!=typeof module?module.exports=t:t()}();</script>
570
571
572<script type = "text/javascript">
573( function () {
574
575    window._sp_ = {
576        config: {
577            baseEndpoint: 'https://a02342.kilburntimes.co.uk',
578            accountId: 52,
579            targetingParams:{
580                subscribed: false,
581                privacy: false
582            },
583            gdpr: { },
584            events: {
585                onMessageReady: function (message_type) {
586                    trackSPEvents('event76');
587                },
588                onMessageChoiceSelect: function (message_type, choice_id, choice_type_id) {
589                    console.log('message_type: ', message_type);
590                    console.log('choice_id: ', choice_id);
591                    console.log('choice_type_id: ', choice_type_id);
592                    if ('yes' === 'yes') {
593                        if (choice_type_id === 12) {
594                            trackSPEvents('event83'); //Consent Banner Reject All
595                            trackSPEvents('event82'); //Journalism Message Shown
596                        }
597                        if (choice_type_id === 11) {
598                            trackSPEvents('event78');
599                        }
600                        if (choice_type_id === 9) {
601                            trackSPEvents('event77');
602                        }
603                    } else {
604                        // these are the second argument in non-gate
605                        if (choice_type_id === 12) {
606                            trackSPEvents('event77');
607                        }
608
609                        if (choice_type_id === 11) {
610                            trackSPEvents('event78');
611                        }
612
613                        if (choice_type_id === 13) {
614		                    trackSPEvents('event83');
615                        }
616                    }
617                },
618                onPrivacyManagerActionStatus: function(message_type, status, actionType) {
619                    console.log('message_type: ' + message_type);
620                    console.log('status: ' + status);
621                    console.log('actionType: ' + actionType);
622                    if ('yes' === 'yes') {
623                        if (actionType === 11) {
624                            trackSPEvents('event79'); //Privacy Manager Accept
625                        }
626                        if (actionType === 9) {
627                            trackSPEvents('event68'); //Privacy Manager Redirect
628                        }
629                        if (actionType === 1) {
630                            trackSPEvents('event75'); //Forced tcf String Change
631                        }
632                    } else {
633                    // these are the second argument in non-gate
634                        if (actionType === 13) {
635                            trackSPEvents('event81'); //Privacy Manager Reject
636                        }
637                        if (actionType === 11) {
638                            trackSPEvents('event79'); //Privacy Manager Accept
639                        }
640                        if (actionType === 1) {
641                            trackSPEvents('event80'); //Privacy Manager Save & Exit
642                        }
643                    }
644                },
645                onPMCancel: function (message_type) {
646                    console.log('onPMCancel', message_type);
647                    trackSPEvents('event84'); //Privacy Manager Back
648                },
649            }
650        }
651    }
652
653    if (typeof window.__tcfapi === 'function') {
654        window.__tcfapi('addEventListener', 2, function (tcData, success) {
655            console.log('SP: Event Listen:', tcData, success);
656            if (success && tcData.eventStatus === 'useractioncomplete') {
657                setTcfCookie(tcData.purpose.consents, tcData.purpose.legitimateInterests);
658
659                var csnt = 'none';
660                if ($.cookie('_sp_enable_dfp_personalized_ads') === 'true') {
661                    csnt = 'yes';
662                } else if ($.cookie('_sp_enable_dfp_personalized_ads') === 'false') {
663                    csnt = 'no';
664                }
665                googletag.cmd.push(function() {
666                    // console.log('DFP: Cookie check - setting dfpcsnt to ', csnt);
667                    googletag.pubads().setTargeting('dfpcsnt', csnt);
668                });
669                // ready to start DFP
670                // console.log('PIANO: setting unrestricted via useractioncomplete');
671                // runPiano('unrestricted');
672                startAdvertising(tcData.listenerId);
673
674                var e = new Event('launch:cmp:choice-made');
675                window.dispatchEvent(e);
676            } else if (success && tcData.eventStatus === 'tcloaded') {
677                // tcloaded means a valid TCF v2.0 string is available
678                // console.log('PIANO: setting unrestricted via tcloaded');
679                // runPiano('unrestricted');
680                if (tcData.gdprApplies === false) {
681                    $.cookie('_sp_enable_dfp_personalized_ads', 'true', {domain: '.kilburntimes.co.uk', path: '/', expires: 100});
682                }
683                startAdvertising(tcData.listenerId);
684
685            } else if (success && tcData.eventStatus === 'useractionnotcomplete') {
686                // do nothing - this means the user has not made a choice yet
687            } else if (success && tcData.eventStatus === 'cmpuishown') {
688                // do nothing - this means the CMP UI has been shown
689            } else if (!success) {
690                // $.cookie('_sp_enable_dfp_personalized_ads', 'true', {domain: '.kilburntimes.co.uk', path: '/', expires: 100});
691                // startAdvertising();
692            } else {
693                // console.log('PIANO: setting restricted');
694                // runPiano('restricted');
695            }
696        });
697    }
698
699    
700
701    document.addEventListener('click', function (e) {
702        const option = e.target.closest('.gdpr-option-v2');
703
704        if (!option) return;
705
706        e.preventDefault();
707        sendEvent76 = false;
708
709        const id = option.dataset.v2Id;
710        const isGate = option.dataset.isGate;
711
712        if (isGate === 'yes') {
713            trackSPEvents('event87');
714            _sp_.gdpr.loadPrivacyManagerModal(id);
715        } else {
716            trackSPEvents('event77');
717            _sp_.gdpr.loadPrivacyManagerModal(id);
718        }
719    });
720
721    function getTcfData() {
722        if (typeof window.__tcfapi !== 'function') {
723            console.warn('TCF API unavailable');
724            return;
725        }
726        window.__tcfapi('addEventListener', 2, function(data, success) {
727            if (!data.purpose || !data.purpose.consents || !data.purpose.legitimateInterests) {
728                // console.log('DFP: No TCF data found, not setting cookies');
729                return;
730            }
731            setTcfCookie(data.purpose.consents, data.purpose.legitimateInterests);
732        }, [755]);
733    }
734    getTcfData();
735
736    function setTcfCookie(data, legitimateInterests) {
737        var consents = [];
738        $.each(data, function(id, consent)  {
739            var c = (consent === true) ? 'yes' : 'no';
740            consents.push(c)
741        });
742        // console.log('DFP: consents length: ', consents.length);
743        if (consents.length !== 10) {
744            // consents = consents.fill('no', consents.length, 10);
745            for (var i = consents.length; i < 10; i++) {
746                consents[i] = 'no';
747            }
748        }
749        // console.log('DFP: Found consents to store in cookie:', consents);
750        $.cookie('prev-tcf-v2', consents.join(','), {domain: '.kilburntimes.co.uk', path: '/', expires: 100});
751
752        var consentEvent4 = 'none';
753        if (typeof data[4] !== 'undefined') {
754            consentEvent4 = data[4] ? 'true' : 'false';
755        }
756        $.cookie('_sp_enable_dfp_personalized_ads', consentEvent4, {domain: '.kilburntimes.co.uk', path: '/', expires: 100});
757
758        var legitInterest = 'none';
759        if (legitimateInterests && typeof legitimateInterests[2] !== 'undefined') {
760            legitInterest = legitimateInterests[2] ? 'true' : 'false';
761        }
762
763        $.cookie('_sp_legitimate_interests', legitInterest , {domain: '.kilburntimes.co.uk', path: '/', expires: 100});
764    }
765
766    var sendEvent76 = true;
767
768    function trackSPEvents(events) {
769        if (events === 'event76' && !sendEvent76) {
770            return;
771        } else if (events === 'event76') {
772            sendEvent76 = false;
773        }
774
775        if (typeof window.s !== 'object') {
776            // console.log('DFP: No window.s object found, trying again in 1 second');
777            window.setTimeout(function () { trackSPEvents(events)} , 1000);
778            return;
779        }
780
781        // console.log("ADB: Tracking %s", events);
782        // Re-create the Omniture object so the data can be tracked.
783        var s = window.s;
784
785        if (events.indexOf('event70') !== -1) {
786            // console.log('DFP: Events passed, added evars');
787            s.eVar35 = 'enabled';
788            s.prop35 = 'enabled';
789        }
790
791        s.events = events;
792        s.linkTrackEvents = events;
793        s.linkTrackVars = "eVar2,eVar3,eVar4,eVar5,eVar6,evar7,evar8,evar9,eVar16,eVar19,eVar26,eVar35,eVar43,eVar67,prop35";
794        s.suppressPageView = true;
795        s.tl(true,'o','Ad Block');
796    }
797
798    function startAdvertising(id)
799    {
800        if (typeof window.doNotAdvertise !== 'undefined' && window.doNotAdvertise === true) {
801            return;
802        }
803
804        // console.log("DFP: Is the page fully loaded?", window.googleReady);
805        if (window.googleReady !== true) {
806            window.setTimeout(function () {
807                // console.log('DFP: Google not fully loaded yet, pausing quarter of a second before trying again');
808                startAdvertising(id);
809            }, 250);
810            return;
811        }
812
813        // Ensure that we never run this code twice
814        if (window.advertisingStart === true) {
815            return;
816        }
817        // console.log('DFP: Running advertisement');
818        window.advertisingStart = true;
819
820        var googletag = window.googletag;
821        // init google objects and array
822        (function() {
823            var gads = document.createElement('script');
824            gads.async = true;
825            gads.type = 'text/javascript';
826            gads.src = 'https://securepubads.g.doubleclick.net/tag/js/gpt.js';
827            var node = document.getElementsByTagName('script')[0];
828            node.parentNode.insertBefore(gads, node);
829        })();
830
831        // launch the exco slideshow player
832        launchExcoSlideshow();
833
834        // load facebook etc
835        loadSocials();
836
837        // Checking our decision to use headerbidding (shorterned as prebid) is correct
838        // via system logic, and that we have the simplified consent to do so
839        if (usePrebid && $.cookie('_sp_enable_dfp_personalized_ads') === 'true') {
840            var e = new Event('launch:sourcepoint:consentaccepted');
841            window.dispatchEvent(e);
842
843            // AP code initialisation
844            // the script is loaded via launch, once we have detected a consent signal via the datalayer.
845            fetchAp();
846
847            var site = 'desktop';
848            var _site = 'desktop';
849
850            // load IAS scripts and set up vars
851            (function() {
852                var ias = document.createElement('script');
853                ias.async = true;
854                ias.type = 'text/javascript';
855                ias.src = 'https://cdn.adsafeprotected.com/iasPET.1.js';
856                var node = document.getElementsByTagName('script')[0];
857                node.parentNode.insertBefore(ias, node);
858            })();
859
860            // load the prebid script
861            (function() {
862                var pbs = document.createElement('script');
863                pbs.async = true;
864                pbs.type = 'text/javascript';
865                pbs.src = 'https://micro.rubiconproject.com/prebid/dynamic/11022.js?group=newsquest';
866                var node = document.getElementsByTagName('script')[0];
867                node.parentNode.insertBefore(pbs, node);
868            })();
869
870            // tell google to actually get the bids from all relevant vendors when loaded
871            googletag.cmd.push(function () {
872                fetchHeaderBids();
873            });
874        }
875
876        // Outbrain
877        if (
878            (window.data_layer.user.advertising_experience === 'Ad-Free' || window.data_layer.config.disable_outbrain === 'yes') ||
879            (window.data_layer.user.advertising_experience === 'Ad-Light' && window.data_layer.config.disable_outbrain_with_ad_light === 'yes')
880        ) {
881            // console.log("No Outbrain script loading due to page settings");
882        } else {
883            // console.log("Loading Outbrain");
884            var ob = document.createElement('script');
885            ob.async = true;
886            ob.type = 'text/javascript';
887            ob.src = 'https://widgets.outbrain.com/outbrain.js';
888            var node = document.getElementsByTagName('script')[0];
889            node.parentNode.insertBefore(ob, node);
890        }
891
892
893        // remove the listener
894        if (id !== null) {
895            window.__tcfapi('removeEventListener', 2, function (success) { }, id);
896        }
897    }
898
899    /**
900     * Wait until we have advertising consent to show this advertising
901     * based replacement for the single image on our article pages
902     * This logic is based on excoSlidshowPlayerID that only appears on the page
903     * if a user is NOT a subscriber (including privacy plus) and the page has the
904     * correct information to show it (doesn't have a video, not in sport etc)
905     */
906    function launchExcoSlideshow() {
907        const slideShowPlayerId = window.excoSlideshowPlayerId;
908        // if we do not have a player id, we do not need to do anything
909        if (!slideShowPlayerId) {
910            return;
911        }
912
913        // this is exco's supplied code, modified for our use
914        (function (d, s, n) {
915            fjs = d.getElementsByTagName(s)[0];
916            js = d.createElement(s);
917            js.className = n;
918            js.src = '//player.ex.co/player/' + slideShowPlayerId;
919            js.setAttribute('programmatic', 'true');
920	        js.onload = function () {
921                const playerApi = ExCoPlayer.connect(slideShowPlayerId);
922                playerApi.init({});
923
924                playerApi.on('player-load', function(data) {
925                    $('.mar-article-image').remove();
926                    if (window.screen.width > 800) {
927                        $('.article-hero').attr('style', 'order: 1');
928                    }
929                    window.hide_overlay_for_exco = true;
930                });
931            };
932            fjs.parentNode.insertBefore(js, fjs);
933        }(document, 'script', 'exco-player'));
934    }
935
936    function loadSocials()
937    {
938        const socials = [
939            'https://platform.twitter.com/widgets.js',
940            'https://connect.facebook.net/en_US/all.js#xfbml=1',
941            'https://www.tiktok.com/embed.js',
942        ];
943
944        socials.forEach((social) => {
945            var script = document.createElement('script');
946            script.src = social;
947            script.async = true;
948            document.getElementsByTagName('head')[0].appendChild(script);
949        });
950    }
951
952
953})();
954
955</script>
vendor: 1 bytes, line 955
955
956<script src="https://a02342.kilburntimes.co.uk/unified/wrapperMessagingWithoutDetection.js"></script>
956
957
958<script>
959window.usePiano = true;
960window.selectedOfferId = null;
961window.selectedTermId = null;
962</script>
vendor: 1 bytes, line 962
962
963<script>
964document.cookie = "__adblocker=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/";
965var setNptTechAdblockerCookie = function(adblocker) {
966    var d = new Date();
967    d.setTime(d.getTime() + 60 * 60 * 24 * 2 * 1000);
968    document.cookie = "__adblocker=" + (adblocker ? "true" : "false") + "; expires=" + d.toUTCString() + "; path=/";
969}
970var script = document.createElement("script");
971script.setAttribute("async", true);
972script.setAttribute("src", "//www.npttech.com/advertising.js");
973script.setAttribute("onerror", "setNptTechAdblockerCookie(true);");
974document.getElementsByTagName("head")[0].appendChild(script);
975</script>
975
976
977<script>
978// window.pdl = window.pdl || {};
979// window.pdl.requireConsent = 'v2';
980
981// Store entry point unless it's a user or subscribe page
982// to redirect after subscription
983const excludedPaths = ['/user/', '/subscribe/'];
984
985const shouldExclude = excludedPaths.some(path =>
986  window.location.pathname.includes(path)
987);
988
989if (!shouldExclude) {
990  sessionStorage.setItem(
991    'last_piano_page_interacted_with',
992    window.location.pathname
993  );
994}
995
996tp = window.tp || [];
997
998function runPiano(restrictedMode) {
999    // console.log('Running Piano with restricted mode:', restrictedMode);
1000    // tp.push(['init', function() {
1001    //      console.log('Piano purpose map, before calling setAllPurposes()', tp.consent.getByPurpose());
1002    // }]);
1003    // if (restrictedMode === 'restricted') {
1004    //     // If we're in restricted mode, we need to set some specific parameters
1005    //     tp.push(['init', function() {
1006    //         tp.consent.setAllPurposes('opt-out')
1007    //     }]);
1008    // } else {
1009    //     tp.push(['init', function() {
1010    //         tp.consent.setAllPurposes('opt-in')
1011    //     }]);
1012    // }
1013    // tp.push(['init', function() {
1014    //     console.log('Piano purpose map, after calling setAllPurposes()', tp.consent.getByPurpose());
1015    // }]);
1016    // init Piano ID
1017    tp.push(['init', function() {
1018        tp.pianoId.init();
1019    }]);
1020
1021    const isGooglebot = window.isRobot.googleBot();
1022
1023    const isArticle = (data_layer.article.is_article === 'yes');
1024
1025    const isCl3 = (parseInt(data_layer.article.content_level, 10) === 3);
1026
1027    if (isGooglebot) {
1028        // we don't load Piano from all non-article pages
1029        if (!isArticle) {
1030            return;
1031        }
1032
1033        // If we are on an article, we do not load piano on CL0, 1, or 2
1034        if (!isCl3) {
1035            return;
1036        }
1037    }
1038    Object.keys(data_layer.piano.custom_variables).forEach(function (k) {
1039        var v = data_layer.piano.custom_variables[k];
1040
1041        if (v != '') {
1042            tp.push(["setCustomVariable", k, v]);
1043        }
1044    });
1045
1046    Object.keys(data_layer.piano.native_variables).forEach(function (k) {
1047        var v = data_layer.piano.native_variables[k];
1048        if (v != '') {
1049            tp.push([k, v]);
1050        }
1051    });
1052
1053    tp.push(['setTags', data_layer.piano.tags]);
1054
1055   (function(src){
1056        var a=document.createElement("script");
1057        a.type = "text/javascript";
1058        a.async=true;
1059        a.src=src;
1060        var b=document.getElementsByTagName("script")[0];
1061        b.parentNode.insertBefore(a, b)
1062    })("//experience.tinypass.com/xbuilder/experience/load?aid=ogTUZYNipu");
1063}
1064
1065// Init Piano
1066const debug = document.cookie
1067    .split('; ')
1068    .find(row => row.startsWith('debug='))
1069    ?.split('=')[1];
1070
1071tp.push(["setDebug", debug === '1']);
1072
1073tp.push(["setApplePayMerchantId", 'merchant.nq.subssites.piano']);
1074
1075tp.push(["setUsePianoIdUserProvider", true ]);
1076
1077tp.push(["addHandler", "loginRequired", function(params) {
1078    // If they're already signed in, we don't need to do anything special.
1079    if (tp.user.isUserValid()) {
1080        return;
1081    }
1082    if (typeof window._overridePianoDefault !== 'undefined' && window._overridePianoDefault !== true) {
1083        console.log("TPL Called")
1084        tp.pianoId.show({
1085            screen: 'login',
1086            displayMode: 'modal',
1087            loggedIn: (data) => {
1088                pianoId.loggedIn();
1089            },
1090            loggedOut: () => {
1091                console.log('TP-TJ: user logged out');
1092            },
1093            registrationSuccess: () => {
1094                pianoId.registered();
1095            },
1096            width: '500px',
1097            height: '460px',
1098        });
1099    }
1100}]);
1101
1102tp.push(["addHandler", "checkoutSelectTerm", function (termDetails) {
1103    if (typeof termDetails.termId !== 'undefined') {
1104        window.selectedTermId = termDetails.termId;
1105    }
1106}]);
1107
1108tp.push(["addHandler", "showTemplate", function (templateParams) {
1109    showPianoTarget(templateParams);
1110}]);
1111
1112tp.push(["addHandler", "showOffer", function (offerParams) {
1113    window.shownOffer = true;
1114
1115    // Store some data we might need later.
1116    if (typeof offerParams.offerId !== 'undefined') {
1117        window.selectedOfferId = offerParams.offerId;
1118    }
1119
1120    showPianoTarget(offerParams);
1121}]);
1122
1123function handleFullWidthBanner(selector) {
1124    if (selector === '#po-overlay-articlegate-full-width-full-article-scroll-below') {
1125        document.querySelector(selector).classList.add(selector.replace('#', ''));
1126    }
1127    document.querySelector(selector).style.minHeight = "254px";
1128    document.querySelector('#subscription-content').style.display = 'none';
1129    document.querySelectorAll('.send-us-your-news-cta').forEach((el) => { el.style.display = 'none'; });
1130    document.querySelectorAll('.mega-news-block').forEach((el) => { el.style.display = 'none'; });
1131
1132    const block = document.querySelector(selector);
1133    const containerBlock = block.parentElement;
1134    const containerBlockHeight = 254; // to prevent abrupt jumping
1135
1136    if (!block) { return; }
1137
1138    block.style.display = 'block';
1139
1140    const blockRect = block.getBoundingClientRect();
1141    const startTop = blockRect.top + window.scrollY;
1142    const blockHeight = blockRect.height;
1143    const screenWidth = window.screen.width;
1144
1145    let lastState = ''; // 'top', 'bottom', 'default'
1146
1147    function getScrollbarWidth() {
1148        return window.innerWidth - document.documentElement.clientWidth;
1149    }
1150
1151    function updatePosition() {
1152        const scrollY = window.scrollY;
1153        const viewportHeight = window.innerHeight;
1154        const bottomTrigger = startTop + blockHeight - viewportHeight;
1155
1156        let newState = 'default';
1157
1158        if (scrollY > startTop && screenWidth >= 768) {
1159            newState = 'top';
1160        } else if (scrollY < bottomTrigger && screenWidth >= 768) {
1161            newState = 'bottom';
1162        } else if (scrollY < bottomTrigger + 90 && screenWidth < 768) {
1163            newState = 'bottom-mobile';
1164        }
1165
1166        const scrollbarWidth = getScrollbarWidth();
1167
1168        if (newState !== lastState) {
1169            switch (newState) {
1170                case 'top':
1171                    block.style.position = 'fixed';
1172                    block.style.top = '0';
1173                    block.style.bottom = 'auto';
1174                    block.style.marginLeft = '0';
1175                    block.style.marginRight = '0';
1176                    containerBlock.style.minHeight = `${containerBlockHeight}px`;
1177                    break;
1178
1179                case 'bottom':
1180                    block.style.position = 'fixed';
1181                    block.style.bottom = '0';
1182                    block.style.top = 'auto';
1183                    block.style.marginLeft = '0';
1184                    block.style.marginRight = '0';
1185                    block.style.width = `calc(100vw - ${scrollbarWidth}px)`;
1186                    containerBlock.style.minHeight = 'unset';
1187                    break;
1188
1189                case 'bottom-mobile':
1190                    block.style.position = 'fixed';
1191                    block.style.bottom = '90px';
1192                    block.style.top = 'auto';
1193                    block.style.marginLeft = 'calc(-100vw + 100%)';
1194                    block.style.marginRight = 'calc(-100vw + 100%)';
1195                    containerBlock.style.minHeight = 'unset';
1196                    break;
1197
1198                default:
1199                    block.style.position = '';
1200                    block.style.top = '';
1201                    block.style.bottom = '';
1202                    block.style.width = `calc(100vw - ${scrollbarWidth}px)`;
1203                    block.style.marginLeft = '-100vw';
1204                    block.style.marginRight = '-100vw';
1205                    containerBlock.style.minHeight = 'unset';
1206                    break;
1207            }
1208
1209            lastState = newState;
1210        }
1211
1212        requestAnimationFrame(updatePosition);
1213    }
1214
1215    updatePosition();
1216    window.addEventListener('resize', updatePosition);
1217}
1218
1219function trackLocation(forceValidLocation = false) {
1220    var currentLocation = window.location.pathname;
1221
1222    let valid = false;
1223
1224    if (currentLocation.indexOf('puzzles') > -1) {
1225        valid = true;
1226    }
1227
1228    if (currentLocation.indexOf('pagesuite') > -1) {
1229        valid = true;
1230    }
1231
1232    var articleMatch = currentLocation.match(/(\d+)\.[^\/]+\/(r\/)?$/);
1233    if (articleMatch != null) {
1234        valid = true;
1235    }
1236
1237    if (forceValidLocation) {
1238        valid = true;
1239    }
1240
1241    if (currentLocation.indexOf('subscribe') > -1) {
1242        valid = false;
1243    }
1244
1245    if (!valid) {
1246        return;
1247    }
1248
1249    $.cookie('last-piano-page-interacted-with', currentLocation, {path: '/', domain: window.data_layer.site.cookie_domain});
1250}
1251
1252function trackPianoWithNewRelic(templateName) {
1253    if (this.newrelic && typeof this.newrelic === 'object') {
1254        newrelic.setCustomAttribute('user_was_shown_piano_experience', templateName);
1255    }
1256}
1257
1258function handleOfferShow(params) {
1259    console.log('Piano params', params);
1260
1261    // If on the subscription page and the URL has a term ID and offer ID, show the relevant offer.
1262    if (typeof location.pathname !== 'undefined' && location.pathname === '/subscribe/') {
1263        var offerId = location.search.match(/offer_id=([A-Z0-9]+)/);
1264        if (offerId !== null && offerId.length > 1) {
1265            offerId = offerId[1];
1266        }
1267        var termId = location.search.match(/term_id=([A-Z0-9]+)/);
1268        if (termId !== null && termId.length > 1) {
1269            termId = termId[1];
1270        }
1271        if (offerId !== null && termId !== null) {
1272            tp.offer.show({'termId': termId, 'offerId': offerId});
1273        }
1274    }
1275
1276    // we are only tracking
1277    var templateId = params.templateId;
1278    var variantId = params.templateVariantId;
1279    if (params.containerSelector !== '#po-inline-articlegate-fullarticle' &&
1280        params.containerSelector !== '#po-overlay-articlegate-full-width-full-article-scroll-below' &&
1281        params.containerSelector !== '#po-inline-articlegate-partialarticle' &&
1282        params.containerSelector !== '#po-overlay-articlegate-full-width-scroll-below'
1283    ) {
1284        $.get('/ws/piano/templatename/', {template_id: templateId, variant_id: variantId}, function (response) {
1285            trackPianoSimplified(params, response.name);
1286        });
1287        return;
1288    }
1289
1290
1291    $.get('/ws/piano/templatename/', {template_id: templateId, variant_id: variantId}, function (response) {
1292        trackPiano(params, response.name);
1293    });
1294}
1295
1296function trackPiano(params, templateName) {
1297    trackPianoWithNewRelic(templateName);
1298
1299    if (typeof params.activeMeters === 'string') {
1300        activeMeters = JSON.parse(params.activeMeters);
1301    } else {
1302        activeMeters = params.activeMeters;
1303    }
1304
1305    var s = window.s;
1306    if (!s || !s.pageName) {
1307        // console.log("ADB: Setting s from backup");
1308        s = window.backupAdobe;
1309        window.s = s;
1310    }
1311
1312    // this would call when CL3 is a hard gate
1313    if (!activeMeters && data_layer.article.content_level === '3') {
1314        s.eVar59 = templateName;
1315        s.eVar58 = data_layer.article.content_level;
1316        s.events = "event91";
1317        s.linkTrackVars="eVar58,eVar2,eVar3,eVar4,eVar5,eVar6,eVar15,eVar16,eVar19,eVar25,eVar26,eVar28,eVar43,eVar59,eVar61,eVar62,eVar79,eVar104,eVar106,eVar107,eVar108,eVar118,prop63,list3,events";
1318        s.linkTrackEvents="event91";
1319        s.tl(document, 'o', 'Metered Access Notice');
1320        s.events = '';
1321        return;
1322    }
1323
1324    if (!activeMeters) {
1325        return;
1326    }
1327
1328    var meterData = activeMeters[0];
1329
1330    var meterName = meterData.meterName.toLowerCase();
1331
1332    // track event 5
1333    if (meterName.indexOf('cl1') !== -1 || meterName.indexOf('cl2') !== -1 || meterName.indexOf('cl3') !== -1 || params.containerSelector === '#po-inline-articlegate-partialarticle' || params.containerSelector === '#po-overlay-articlegate-full-width-scroll-below') {
1334        s.eVar58 = data_layer.article.content_level;
1335        s.eVar80 = meterData.meterName + ',' +  meterData.views + ',' + meterData.totalViews + ',' + meterData.viewsLeft + ',' + meterData.maxViews;
1336        s.eVar59 = templateName;
1337        s.events = "event5";
1338        s.linkTrackVars="eVar58,eVar2,eVar3,eVar4,eVar5,eVar6,eVar16,eVar19,eVar25,eVar26,eVar28,eVar43,eVar59,eVar61,eVar62,prop63,eVar80,eVar79,eVar118,list3, events";
1339        s.linkTrackEvents="event5";
1340    } else {
1341        s.eVar80 = meterData.meterName + ',' +  meterData.views + ',' + meterData.totalViews + ',' + meterData.viewsLeft + ',' + meterData.maxViews;
1342        s.eVar59 = templateName;
1343        s.linkTrackVars="eVar2,eVar3,eVar4,eVar5,eVar6,eVar16,eVar19,eVar25,eVar26,eVar28,eVar43,eVar59,eVar61,eVar62,prop63,eVar80,eVar79,eVar118,list3, events";
1344    }
1345    s.tl(document, 'o', 'Metered Access Notice');
1346    s.events = '';
1347
1348}
1349
1350/**
1351 * Just track the template name in 78 for non-article-interrupts/gates
1352 */
1353function trackPianoSimplified(params, templateName)
1354{
1355    trackPianoWithNewRelic(templateName);
1356
1357    var s = window.s;
1358    if (!s || !s.pageName) {
1359        // console.log("ADB: Setting s from backup");
1360        s = window.backupAdobe;
1361        window.s = s;
1362    }
1363    s.eVar78 = templateName;
1364    s.events = 'event90';
1365    s.linkTrackEvents="event90";
1366    s.linkTrackVars="eVar2,eVar3,eVar4,eVar5,eVar6,eVar16,eVar19,eVar25,eVar26,eVar28,eVar43,eVar59,eVar61,eVar62,prop63,eVar80,eVar79,eVar118,list3,eVar78, events";
1367    s.tl(document, 'o', 'Piano Template');
1368}
1369
1370function raiseLaunchEvent(name) {
1371    var e = new Event('launch:piano:' + name);
1372    window.dispatchEvent(e);
1373}
1374
1375function removePianoToast() {
1376    setTimeout(() => {
1377        document.getElementById('po-overlay-toast-left').remove()
1378    }, 30000)
1379}
1380
1381function showPianoTarget(params) {
1382    handleOfferShow(params);
1383    trackLocation();
1384
1385    if ($(params.containerSelector).length > 0) {
1386        const displayType = $(params.containerSelector).attr('data-display');
1387
1388        if (displayType) {
1389            $(params.containerSelector).addClass(`shown-${displayType}`);
1390        } else {
1391            $(params.containerSelector).addClass('shown').show();
1392        }
1393
1394        if ($(params.containerSelector).hasClass('piano--block-level') || $(params.containerSelector).hasClass('piano--inside-block')) {
1395            $(params.containerSelector).show();
1396        }
1397
1398        if (
1399            params.containerSelector === '#po-overlay-articlegate-full-width-scroll-below' ||
1400            params.containerSelector === '#po-overlay-articlegate-full-width-full-article-scroll-below'
1401        ) {
1402            handleFullWidthBanner(params.containerSelector);
1403        }
1404
1405        if ($(params.containerSelector) === '#po-inline-subscribe-page') {
1406            $(params.containerSelector).show();
1407        }
1408
1409        if (['#po-inline-blocksystem-target-e'].includes(params.containerSelector)) {
1410            $('#po-inline-blocksystem-target-e').show();
1411            $('.piano-promo-container').show();
1412        }
1413
1414        if (params.containerSelector === '#po-overlay-toast-left') {
1415            removePianoToast()
1416        }
1417
1418        if (params.containerSelector === '#po-overlay-toast-main-navigation') {
1419            removePianoToast()
1420        }
1421
1422        if (params.containerSelector === '#po-inline-articlewall-partialarticle-closable') {
1423            $('#po-inline-articlegate-partialarticle').css('display', 'none');
1424        }
1425
1426        if (params.containerSelector === '#po-inline-articlewall-fullarticle-closable') {
1427            $('#po-inline-articlegate-fullarticle').css('display', 'none');
1428        }
1429
1430        if (params.containerSelector === '#po-overlay-articlegate-full-width-full-article-scroll-below-closable') {
1431            $('#po-overlay-articlegate-full-width-full-article-scroll-below').css('display', 'none');
1432        }
1433    }
1434}
1435
1436tp.push(["addHandler", "checkoutComplete", function(conversion) {
1437    var s = window.s;
1438    s.events = s.apl(s.events, "event4", ",", 1); // Set the subscription counter event.
1439    s.events = s.apl(s.events, "purchase", ",", 1); // Set the purchase event.
1440    s.products = "Subscription : Metered Access;" + conversion.termId + ";1;"+conversion.chargeAmount;
1441    s.linkTrackEvents = "event4,purchase";
1442    s.purchaseID = conversion.termConversionId;
1443    s.pageName = '(www) /subscribe/complete/';
1444    // wipe out errors
1445    s.eVar31 = '';
1446    s.linkTrackVars="eVar2,eVar3,eVar5,eVar6,eVar7,eVar8,eVar9,eVar10,eVar15,eVar16,eVar17,eVar18,eVar19,eVar20,eVar22,eVar23,eVar24,eVar25,eVar26,eVar61,eVar62,events,products,purchaseID";
1447
1448    s.tl(true, 'o', 'Subscription');
1449
1450    $.cookie('resourceConverted', conversion.rid, {path: '/', domain: window.data_layer.site.cookie_domain});
1451    $.cookie('pianoConverted', '1', {path: '/', domain: window.data_layer.site.cookie_domain});
1452    raiseLaunchEvent('checkoutComplete');
1453
1454    // Clean Session Storage
1455    sessionStorage.removeItem('nq_selected_offer_id');
1456    sessionStorage.removeItem('nq_selected_term_id');
1457    sessionStorage.removeItem('nq_adobe_tracking_article_dimensions');
1458    sessionStorage.removeItem('nq_adobe_tracking_visiting_dimensions');
1459
1460    // Show Onboarding modal after subscription
1461    const lastPage = sessionStorage.getItem('last_piano_page_interacted_with');
1462    const baseUrl = lastPage || window.location.href;
1463
1464    const url = new URL(baseUrl, window.location.origin);
1465    url.searchParams.set('show-onboarding', 'yes');
1466
1467    setTimeout(() => {
1468        window.location.href = url.pathname + url.search;
1469    }, 2000);
1470}]);
1471
1472tp.push(["addHandler", "checkoutPaymentError", function(errorData) {
1473    var s = window.s;
1474    s.pageName = '(www) /subscribe/error/';
1475    s.eVar31 = errorData.message;
1476    s.tl(true, 'o', 'CheckoutPaymentError');
1477
1478    raiseLaunchEvent('checkoutPaymentError');
1479}]);
1480
1481tp.push(["addHandler", "checkoutError", function(errorData) {
1482    var s = window.s;
1483    s.pageName = '(www) /subscribe/error/';
1484    s.eVar31 = errorData.message;
1485    s.tl(true, 'o', 'CheckoutError');
1486    raiseLaunchEvent('checkoutError');
1487}]);
1488
1489tp.push(["addHandler", "startCheckout", function(options) {
1490    sessionStorage.setItem("nq_selected_offer_id", options.offerId);
1491    sessionStorage.setItem("nq_selected_term_id", options.termId);
1492
1493    if (!tp.user.isUserValid()) {
1494        window.location = '/user/create-account/subscribe/';
1495        return;
1496    }
1497
1498    var s = window.s;
1499    s.eVar2 = '(www) /subscribe/payment/';
1500    s.pageName = '(www) /subscribe/payment/';
1501    const storedAdobeArticleDimensions = sessionStorage.getItem('nq_adobe_tracking_article_dimensions');
1502    const storedAdobeVisitingDimensions = sessionStorage.getItem('nq_adobe_tracking_visiting_dimensions');
1503    if (storedAdobeVisitingDimensions) {
1504        const storedAdobeVisitingDimensionsObj = JSON.parse(storedAdobeVisitingDimensions);
1505        s.eVar10 = storedAdobeVisitingDimensionsObj.eVar10;
1506        s.eVar22 = storedAdobeVisitingDimensionsObj.eVar22;
1507        s.eVar23 = storedAdobeVisitingDimensionsObj.eVar23;
1508        s.eVar24 = storedAdobeVisitingDimensionsObj.eVar24;
1509    }
1510    if (storedAdobeArticleDimensions) {
1511        const storedAdobeArticleDimensionsObj = JSON.parse(storedAdobeArticleDimensions);
1512        s.eVar10 = storedAdobeArticleDimensionsObj.eVar10;
1513        s.eVar15 = storedAdobeArticleDimensionsObj.eVar15;
1514        s.eVar22 = storedAdobeArticleDimensionsObj.eVar22;
1515        s.eVar23 = storedAdobeArticleDimensionsObj.eVar23;
1516        s.eVar24 = storedAdobeArticleDimensionsObj.eVar24;
1517        s.eVar25 = storedAdobeArticleDimensionsObj.eVar25;
1518    }
1519    // wipe out errors
1520    s.eVar31 = '';
1521    s.events = '';
1522    raiseLaunchEvent('startCheckout');
1523    s.linkTrackVars="eVar10,eVar15,eVar22,eVar23,eVar24,eVar25";
1524    s.t();
1525}]);
1526
1527tp.push(["addHandler", "checkoutClose", function(conversion) {
1528    raiseLaunchEvent('checkoutClose');
1529
1530    // Did they abandon the cart? If so: was anything in their cart?
1531    if (typeof conversion.state === 'undefined' || conversion.state !== 'close') {
1532        return;
1533    }
1534    if (window.selectedOfferId === null || window.selectedTermId === null) {
1535        return;
1536    }
1537    $.post('/ws/piano/abandoned-cart/', {offer_id: window.selectedOfferId, term_id: window.selectedTermId});
1538}]);
1539
1540tp.push(["addHandler", "meterExpired", function(meterData){
1541    var msg = "<div><b>meterName:</b> " + meterData.meterName
1542        + "&nbsp; | &nbsp;<b>views:</b> " + meterData.views
1543        + "&nbsp; | &nbsp;<b>totalViews:</b> " + meterData.totalViews
1544        + "&nbsp; | &nbsp;<b>viewsLeft:</b> " + meterData.viewsLeft
1545        + "&nbsp; | &nbsp;<b>maxViews:</b> " + meterData.maxViews
1546        + "&nbsp; | &nbsp;<b>callback:</b> " + meterData.callback + '</div>';
1547    if ($.cookie('nq-show-piano-viewer') === 'yes') {
1548        $('#piano-meter-value').html(msg);
1549        $('#piano-meter-display').show();
1550        $('#piano-meter-display-content').append(msg);
1551    }
1552    var cVal = window.location.href;
1553
1554    trackLocation(true);
1555
1556    console.log("Piano Meter Expired:", meterData.meterName);
1557    if (meterData.meterName === 'CL1 Meter') {
1558        console.log("Piano: Setting meter expired cookie");
1559        $.cookie('isMeterExpired', 'yes', {path: '/', domain: window.data_layer.site.cookie_domain, expires: 1});
1560    }
1561
1562    raiseLaunchEvent('meterExpired');
1563
1564}]);
1565
1566tp.push(["addHandler", "meterActive", function(meterData){
1567    var msg = "<div><b>meterName:</b> " + meterData.meterName
1568        + "&nbsp; | &nbsp;<b>views:</b> " + meterData.views
1569        + "&nbsp; | &nbsp;<b>totalViews:</b> " + meterData.totalViews
1570        + "&nbsp; | &nbsp;<b>viewsLeft:</b> " + meterData.viewsLeft
1571        + "&nbsp; | &nbsp;<b>maxViews:</b> " + meterData.maxViews
1572        + "&nbsp; | &nbsp;<b>callback:</b> " + meterData.callback + '</div>';
1573    if ($.cookie('nq-show-piano-viewer') === 'yes') {
1574        $('#piano-meter-value').html(msg);
1575        $('#piano-meter-display').show();
1576        $('#piano-meter-display-content').append(msg);
1577    }
1578
1579    console.log("Piano Meter running total:", meterData.meterName,  meterData.totalViews, meterData.maxViews, meterData);
1580    if (meterData.meterName === 'CL1 Meter' && meterData.totalViews >= meterData.maxViews) {
1581        $.cookie('isMeterExpired', 'yes', {path: '/', domain: window.data_layer.site.cookie_domain, expires: 1});
1582    } else {
1583        $.cookie('isMeterExpired', 'no', {path: '/', domain: window.data_layer.site.cookie_domain, expires: 1});
1584    }
1585}]);
1586
1587
1588
1589runPiano('unrestricted');
1590
1591</script>
1591
1592
1593
1594
1595
1596    
1596<script type='text/javascript'>
1597    var googletag = googletag || {};
1598    googletag.cmd = googletag.cmd || [];
1599    var iasDataHandler, __iasPET = __iasPET || {};
1600    __iasPET.queue = __iasPET.queue || [];
1601    __iasPET.pubId = '931298';
1602
1603    var pbjs = pbjs || {};
1604    pbjs.que = pbjs.que || [];
1605
1606    var carbonRealtime = JSON.parse(window.localStorage.getItem('ccRealtimeData'));
1607    var ozoneSettings = {};
1608    var ozoneTargeting = {
1609        carbon_segment: carbonRealtime ? carbonRealtime.audiences.map(x => (x.id)) : []
1610    };
1611
1612
1613    function isMobile() {
1614        if (window.screen.width < 728) {
1615            return true;
1616        }
1617        return false;
1618    }
1619    var usePrebid = true;
1620    var whiteList = false;
1621    var adLight = false;
1622    
1623    
1624    var blackListAds = [];
1625
1626    if (usePrebid) {
1627        // disable initial load so prebid can do its stuff
1628        // console.log('DFP: Disabling initial load');
1629        googletag.cmd.push(function() {
1630            // console.log('DFP: Disabling initial load - read by DFP');
1631            googletag.pubads().disableInitialLoad();
1632        });
1633    }
1634    </script>
1634
1635
1636    
1636<script>
1637
1638    /**
1639     * Adds key-values to page level of Google Publisher Tag
1640     * @example
1641     * addKeyValuesToGPT({"ap_a": ["1100"], "ap_x": ["134123"]})
1642     * @param {Object} keyValues
1643     */
1644     function addAsKeyValuesToGPT(keyValues) {
1645        if (!googletag.pubads) {
1646            googletag.cmd.push(function () {
1647                addAsKeyValuesToGPT(keyValues);
1648            });
1649            return;
1650        }
1651        for (const key in keyValues) {
1652            if (Object.hasOwnProperty.call(keyValues, key)) {
1653                const value = keyValues[key];
1654                googletag.pubads().setTargeting(key, value);
1655            }
1656        }
1657    }
1658
1659    function onAudienceProjectDataAvailable(dataResponse) {
1660        console.log("AudienceProject data returned", dataResponse);
1661
1662        // in keyValues there are full-reach key-values created, they needs to be sent to GAM and added to Prebid adform ad-units
1663        if (dataResponse.keyValues) {
1664            addAsKeyValuesToGPT(dataResponse.keyValues);
1665        }
1666    }
1667
1668    function fetchAp() {
1669        AudienceProjectData.fetch('saknewsquest', {
1670            integrateWithCmp: true,
1671            waitForCmpConsent: true
1672        }, onAudienceProjectDataAvailable);
1673    }
1674
1675
1676    </script>
1676
1677
1678
1679<script>
1680        if (typeof gs_channels === 'undefined') {
1681            gs_channels = "";
1682        }
1683        rpx_init = ({
1684            qry         : 'https://www.kilburntimes.co.uk',
1685            section     : 'news',
1686            site        : 'www.kilburntimes.co.uk',
1687            context     : 'Business',
1688            weather     : ''.toLowerCase(),
1689            temp        : '',
1690            gs_channels : gs_channels,
1691            age         :  '0' ,
1692            gender      :  'u' ,
1693            nqd         : '' // intentionall blank
1694        });
1695    </script>
1695
1696    
1696<script type='text/javascript' src='https://pagead2.googlesyndication.com/pagead/imgad?id=CICAgKDLqv_TbRABGAEoATIIgOw1LHg7xnFAt-_HogU'></script>
1696
1697    
1697<script>
1698
1699    var bidTimeout = 1200;
1700    window.unfilteredAdUnits = [{"sizes":[1,1],"alternate_mobile_size":"","slotType":"outofpage","domName":"DFP_out_of_page","positionName":"out_of_page","isVast":false,"collapseContainer":false,"targets":["takeover"],"useRubicon":false,"rubicon_desktop_zone_id":"","rubicon_mobile_zone_id":"","rubicon_desktop_size_ids":[""],"rubicon_mobile_size_ids":[""],"appnexus_desktop_placement_id":"","appnexus_mobile_placement_id":"","criteo_desktop_placement_id":"","criteo_mobile_placement_id":"","use_amazon":false,"groupm_desktop_placement_id":"","groupm_mobile_placement_id":""},{"sizes":[["fluid"],[1,1]],"alternate_mobile_size":"","slotType":"standard","domName":"DFP_article_fluid_1","positionName":"article_fluid_1","isVast":false,"collapseContainer":true,"targets":[""],"useRubicon":false,"rubicon_desktop_zone_id":"","rubicon_mobile_zone_id":"","rubicon_desktop_size_ids":[""],"rubicon_mobile_size_ids":[""],"appnexus_desktop_placement_id":"","appnexus_mobile_placement_id":"","criteo_desktop_placement_id":"","criteo_mobile_placement_id":"","use_amazon":false,"groupm_desktop_placement_id":"","groupm_mobile_placement_id":""},{"sizes":[1,1],"alternate_mobile_size":"","slotType":"standard","domName":"DFP_in_article_pixel","positionName":"in_article_pixel","isVast":false,"collapseContainer":false,"targets":[""],"useRubicon":false,"rubicon_desktop_zone_id":"","rubicon_mobile_zone_id":"","rubicon_desktop_size_ids":[""],"rubicon_mobile_size_ids":[""],"appnexus_desktop_placement_id":"","appnexus_mobile_placement_id":"","criteo_desktop_placement_id":"","criteo_mobile_placement_id":"","use_amazon":false,"groupm_desktop_placement_id":"","groupm_mobile_placement_id":""},{"sizes":[["fluid"],[570,250],[468,250],[300,250],[1,1]],"alternate_mobile_size":[["fluid"],[300,250],[1,1]],"slotType":"standard","domName":"DFP_in_article_mpu","positionName":"in_article_mpu","isVast":false,"collapseContainer":true,"targets":["takeover"],"useRubicon":true,"rubicon_desktop_zone_id":"297386","rubicon_mobile_zone_id":"297372","rubicon_desktop_size_ids":["15"],"rubicon_mobile_size_ids":["15"],"appnexus_desktop_placement_id":"10550690","appnexus_mobile_placement_id":"10550767","criteo_desktop_placement_id":"744410","criteo_mobile_placement_id":"760447","use_amazon":true,"groupm_desktop_placement_id":"17307157","groupm_mobile_placement_id":"17479445"},{"sizes":[[570,250],[468,250],[300,250],[1,1]],"alternate_mobile_size":[[300,250],[1,1]],"slotType":"standard","domName":"DFP_in_article_2","positionName":"in_article_2","isVast":false,"collapseContainer":true,"targets":[""],"useRubicon":true,"rubicon_desktop_zone_id":"437846","rubicon_mobile_zone_id":"459754","rubicon_desktop_size_ids":["15"],"rubicon_mobile_size_ids":["15"],"appnexus_desktop_placement_id":"10550691","appnexus_mobile_placement_id":"10550769","criteo_desktop_placement_id":"","criteo_mobile_placement_id":"","use_amazon":true,"groupm_desktop_placement_id":"17279602","groupm_mobile_placement_id":"17479441"},{"sizes":[[570,250],[468,250],[300,250],[1,1]],"alternate_mobile_size":[[300,250],[1,1]],"slotType":"standard","domName":"DFP_teads","positionName":"teads","isVast":false,"collapseContainer":false,"targets":[""],"useRubicon":false,"rubicon_desktop_zone_id":"","rubicon_mobile_zone_id":"","rubicon_desktop_size_ids":[""],"rubicon_mobile_size_ids":[""],"appnexus_desktop_placement_id":"11775143","appnexus_mobile_placement_id":"11775143","criteo_desktop_placement_id":"","criteo_mobile_placement_id":"","use_amazon":false,"groupm_desktop_placement_id":"","groupm_mobile_placement_id":""},{"sizes":[[570,250],[468,250],[300,250]],"alternate_mobile_size":[300,250],"slotType":"standard","domName":"DFP_in_article_3","positionName":"in_article_3","isVast":false,"collapseContainer":true,"targets":[""],"useRubicon":true,"rubicon_desktop_zone_id":"425700","rubicon_mobile_zone_id":"449752","rubicon_desktop_size_ids":["15"],"rubicon_mobile_size_ids":["15"],"appnexus_desktop_placement_id":"10550692","appnexus_mobile_placement_id":"10550770","criteo_desktop_placement_id":"","criteo_mobile_placement_id":"","use_amazon":true,"groupm_desktop_placement_id":"17307086","groupm_mobile_placement_id":"17479442"},{"sizes":[[570,250],[468,250],[300,250],[1,1]],"alternate_mobile_size":[[300,250],[1,1]],"slotType":"standard","domName":"DFP_outstream_2","positionName":"outstream_2","isVast":false,"collapseContainer":false,"targets":[""],"useRubicon":false,"rubicon_desktop_zone_id":"","rubicon_mobile_zone_id":"","rubicon_desktop_size_ids":[""],"rubicon_mobile_size_ids":[""],"appnexus_desktop_placement_id":"","appnexus_mobile_placement_id":"","criteo_desktop_placement_id":"","criteo_mobile_placement_id":"","use_amazon":false,"groupm_desktop_placement_id":"","groupm_mobile_placement_id":""},{"sizes":[[570,250],[468,250],[300,250]],"alternate_mobile_size":[300,250],"slotType":"standard","domName":"DFP_in_article_4","positionName":"in_article_4","isVast":false,"collapseContainer":true,"targets":[""],"useRubicon":true,"rubicon_desktop_zone_id":"425702","rubicon_mobile_zone_id":"449754","rubicon_desktop_size_ids":["15"],"rubicon_mobile_size_ids":["15"],"appnexus_desktop_placement_id":"10550693","appnexus_mobile_placement_id":"10550771","criteo_desktop_placement_id":"","criteo_mobile_placement_id":"","use_amazon":true,"groupm_desktop_placement_id":"17307083","groupm_mobile_placement_id":"17479443"},{"sizes":[[570,250],[468,250],[300,250]],"alternate_mobile_size":[300,250],"slotType":"standard","domName":"DFP_in_article_5","positionName":"in_article_5","isVast":false,"collapseContainer":true,"targets":[""],"useRubicon":true,"rubicon_desktop_zone_id":"425704","rubicon_mobile_zone_id":"449756","rubicon_desktop_size_ids":["15"],"rubicon_mobile_size_ids":["15"],"appnexus_desktop_placement_id":"10550695","appnexus_mobile_placement_id":"10550773","criteo_desktop_placement_id":"","criteo_mobile_placement_id":"","use_amazon":true,"groupm_desktop_placement_id":"17307155","groupm_mobile_placement_id":"17479444"},{"sizes":[[570,250],[468,250],[300,250]],"alternate_mobile_size":[300,250],"slotType":"standard","domName":"DFP_in_article_6","positionName":"in_article_6","isVast":false,"collapseContainer":true,"targets":[""],"useRubicon":true,"rubicon_desktop_zone_id":"425709","rubicon_mobile_zone_id":"449757","rubicon_desktop_size_ids":["15"],"rubicon_mobile_size_ids":["15"],"appnexus_desktop_placement_id":"10550698","appnexus_mobile_placement_id":"10550775","criteo_desktop_placement_id":"","criteo_mobile_placement_id":"","use_amazon":true,"groupm_desktop_placement_id":"17307158","groupm_mobile_placement_id":"17479446"},{"sizes":[[570,250],[468,250],[300,250]],"alternate_mobile_size":[300,250],"slotType":"standard","domName":"DFP_in_article_7","positionName":"in_article_7","isVast":false,"collapseContainer":true,"targets":[""],"useRubicon":true,"rubicon_desktop_zone_id":"425710","rubicon_mobile_zone_id":"449758","rubicon_desktop_size_ids":["15"],"rubicon_mobile_size_ids":["15"],"appnexus_desktop_placement_id":"10550699","appnexus_mobile_placement_id":"10550776","criteo_desktop_placement_id":"","criteo_mobile_placement_id":"","use_amazon":true,"groupm_desktop_placement_id":"17307159","groupm_mobile_placement_id":"17479447"},{"sizes":[[570,250],[468,250],[300,250]],"alternate_mobile_size":[300,250],"slotType":"standard","domName":"DFP_in_article_8","positionName":"in_article_8","isVast":false,"collapseContainer":true,"targets":[""],"useRubicon":true,"rubicon_desktop_zone_id":"425711","rubicon_mobile_zone_id":"449759","rubicon_desktop_size_ids":["15"],"rubicon_mobile_size_ids":["15"],"appnexus_desktop_placement_id":"10550700","appnexus_mobile_placement_id":"10550777","criteo_desktop_placement_id":"","criteo_mobile_placement_id":"","use_amazon":true,"groupm_desktop_placement_id":"17307160","groupm_mobile_placement_id":"17479448"},{"sizes":[[300,250],[300,600]],"alternate_mobile_size":"","slotType":"standard","domName":"DFP_premium_mpu","positionName":"premium_mpu","isVast":false,"collapseContainer":false,"targets":["takeover"],"useRubicon":true,"rubicon_desktop_zone_id":"297382","rubicon_mobile_zone_id":"331020","rubicon_desktop_size_ids":["10","15"],"rubicon_mobile_size_ids":["10","15"],"appnexus_desktop_placement_id":"10550686","appnexus_mobile_placement_id":"10550760","criteo_desktop_placement_id":"744494","criteo_mobile_placement_id":"760443","use_amazon":true,"groupm_desktop_placement_id":"14304603","groupm_mobile_placement_id":"16550455"},{"sizes":[[300,250],[300,600]],"alternate_mobile_size":"","slotType":"standard","domName":"DFP_premium_mpu_2","positionName":"premium_mpu_2","isVast":false,"collapseContainer":false,"targets":["takeover"],"useRubicon":false,"rubicon_desktop_zone_id":"","rubicon_mobile_zone_id":"","rubicon_desktop_size_ids":[""],"rubicon_mobile_size_ids":[""],"appnexus_desktop_placement_id":"","appnexus_mobile_placement_id":"","criteo_desktop_placement_id":"","criteo_mobile_placement_id":"","use_amazon":false,"groupm_desktop_placement_id":"","groupm_mobile_placement_id":""},{"sizes":[300,250],"alternate_mobile_size":"","slotType":"standard","domName":"DFP_standard_mpu_1","positionName":"standard_mpu_1","isVast":false,"collapseContainer":true,"targets":["takeover"],"useRubicon":true,"rubicon_desktop_zone_id":"297390","rubicon_mobile_zone_id":"331024","rubicon_desktop_size_ids":["15"],"rubicon_mobile_size_ids":["15"],"appnexus_desktop_placement_id":"10550683","appnexus_mobile_placement_id":"10550759","criteo_desktop_placement_id":"744435","criteo_mobile_placement_id":"760547","use_amazon":true,"groupm_desktop_placement_id":"17946307","groupm_mobile_placement_id":"13260893"},{"sizes":[[300,250],[300,600]],"alternate_mobile_size":"","slotType":"standard","domName":"DFP_on_scroll","positionName":"on_scroll","isVast":false,"collapseContainer":false,"targets":[""],"useRubicon":false,"rubicon_desktop_zone_id":"","rubicon_mobile_zone_id":"","rubicon_desktop_size_ids":[""],"rubicon_mobile_size_ids":[""],"appnexus_desktop_placement_id":"","appnexus_mobile_placement_id":"","criteo_desktop_placement_id":"","criteo_mobile_placement_id":"","use_amazon":false,"groupm_desktop_placement_id":"","groupm_mobile_placement_id":""},{"sizes":[300,250],"alternate_mobile_size":"","slotType":"standard","domName":"DFP_standard_mpu_2","positionName":"standard_mpu_2","isVast":false,"collapseContainer":true,"targets":["takeover"],"useRubicon":true,"rubicon_desktop_zone_id":"331028","rubicon_mobile_zone_id":"534778","rubicon_desktop_size_ids":["15"],"rubicon_mobile_size_ids":["15"],"appnexus_desktop_placement_id":"10550687","appnexus_mobile_placement_id":"10550761","criteo_desktop_placement_id":"","criteo_mobile_placement_id":"","use_amazon":true,"groupm_desktop_placement_id":"17375910","groupm_mobile_placement_id":"17375922"},{"sizes":[[970,250],[728,90]],"alternate_mobile_size":[320,50],"slotType":"standard","domName":"DFP_top_leaderboard","positionName":"top_leaderboard","isVast":false,"collapseContainer":true,"targets":["takeover"],"useRubicon":true,"rubicon_desktop_zone_id":"297380","rubicon_mobile_zone_id":"297370","rubicon_desktop_size_ids":["2","57"],"rubicon_mobile_size_ids":["43"],"appnexus_desktop_placement_id":"10550668","appnexus_mobile_placement_id":"10550747","criteo_desktop_placement_id":"985648","criteo_mobile_placement_id":"","use_amazon":true,"groupm_desktop_placement_id":"14304608","groupm_mobile_placement_id":"17479428"},{"sizes":[728,90],"alternate_mobile_size":[320,50],"slotType":"standard","domName":"DFP_leaderboard_1","positionName":"leaderboard_1","isVast":false,"collapseContainer":true,"targets":[""],"useRubicon":true,"rubicon_desktop_zone_id":"425706","rubicon_mobile_zone_id":"449748","rubicon_desktop_size_ids":["2"],"rubicon_mobile_size_ids":["43"],"appnexus_desktop_placement_id":"10550688","appnexus_mobile_placement_id":"10550762","criteo_desktop_placement_id":"","criteo_mobile_placement_id":"","use_amazon":true,"groupm_desktop_placement_id":"16550485","groupm_mobile_placement_id":"17479427"},{"sizes":[728,90],"alternate_mobile_size":[320,50],"slotType":"standard","domName":"DFP_leaderboard_2","positionName":"leaderboard_2","isVast":false,"collapseContainer":true,"targets":[""],"useRubicon":true,"rubicon_desktop_zone_id":"425708","rubicon_mobile_zone_id":"449750","rubicon_desktop_size_ids":["2"],"rubicon_mobile_size_ids":["43"],"appnexus_desktop_placement_id":"10550689","appnexus_mobile_placement_id":"10550766","criteo_desktop_placement_id":"","criteo_mobile_placement_id":"","use_amazon":true,"groupm_desktop_placement_id":"17375905","groupm_mobile_placement_id":"16550500"},{"sizes":[728,90],"alternate_mobile_size":[[300,100],[320,50]],"slotType":"standard","domName":"DFP_bottom_leaderboard","positionName":"bottom_leaderboard","isVast":false,"collapseContainer":false,"targets":[""],"useRubicon":true,"rubicon_desktop_zone_id":"297378","rubicon_mobile_zone_id":"425710","rubicon_desktop_size_ids":["2"],"rubicon_mobile_size_ids":["43"],"appnexus_desktop_placement_id":"10550678","appnexus_mobile_placement_id":"10550748","criteo_desktop_placement_id":"","criteo_mobile_placement_id":"","use_amazon":true,"groupm_desktop_placement_id":"17377997","groupm_mobile_placement_id":"17479454"},{"sizes":[[300,250],[300,600]],"alternate_mobile_size":"","slotType":"standard","domName":"DFP_interstitial_mpu","positionName":"interstitial_mpu","isVast":false,"collapseContainer":false,"targets":[""],"useRubicon":false,"rubicon_desktop_zone_id":"","rubicon_mobile_zone_id":"","rubicon_desktop_size_ids":[""],"rubicon_mobile_size_ids":[""],"appnexus_desktop_placement_id":"","appnexus_mobile_placement_id":"","criteo_desktop_placement_id":"","criteo_mobile_placement_id":"","use_amazon":false,"groupm_desktop_placement_id":"","groupm_mobile_placement_id":""},{"sizes":[468,60],"alternate_mobile_size":"","slotType":"standard","domName":"DFP_banner","positionName":"banner","isVast":false,"collapseContainer":false,"targets":[""],"useRubicon":true,"rubicon_desktop_zone_id":"297374","rubicon_mobile_zone_id":"","rubicon_desktop_size_ids":["1"],"rubicon_mobile_size_ids":[""],"appnexus_desktop_placement_id":"10550697","appnexus_mobile_placement_id":"","criteo_desktop_placement_id":"","criteo_mobile_placement_id":"","use_amazon":false,"groupm_desktop_placement_id":"","groupm_mobile_placement_id":""},{"sizes":[["fluid"],[280,130],[1,1]],"alternate_mobile_size":"","slotType":"standard","domName":"DFP_high_vis","positionName":"high_vis","isVast":false,"collapseContainer":true,"targets":[""],"useRubicon":false,"rubicon_desktop_zone_id":"","rubicon_mobile_zone_id":"","rubicon_desktop_size_ids":[""],"rubicon_mobile_size_ids":[""],"appnexus_desktop_placement_id":"","appnexus_mobile_placement_id":"","criteo_desktop_placement_id":"985647","criteo_mobile_placement_id":"","use_amazon":false,"groupm_desktop_placement_id":"","groupm_mobile_placement_id":""}];
1701
1702    
1703    var adUnits = [];
1704    $.each(unfilteredAdUnits, function (i, ad) {
1705        if (isMobile()) {
1706            f = {standard_mpu_1: 1, standard_mpu_2: 1, leaderboard_1: 1, leaderboard_2: 1}
1707        } else {
1708            f = {leaderboard_1: 1, leaderboard_2: 1}
1709        }
1710
1711        if (f[ad.positionName] !== 1) {
1712            adUnits.push(ad);
1713        }
1714    });
1715    window.unfilteredAdUnits = adUnits;
1716    
1717
1718    //whenever you want header bids call this function
1719    function fetchHeaderBids() {
1720        //Load the APS JavaScript Library
1721        !function(a9,a,p,s,t,A,g){if(a[a9])return;function q(c,r){a[a9]._Q.push([c,r])}a[a9]={init:function(){q("i",arguments)},fetchBids:function(){q("f",arguments)},setDisplayBids:function(){},targetingKeys:function(){return[]},_Q:[]};A=p.createElement(s);A.async=!0;A.src=t;g=p.getElementsByTagName(s)[0];g.parentNode.insertBefore(A,g)}("apstag",window,document,"script","//c.amazon-adsystem.com/aax2/apstag.js");
1722        //Initialize the Library
1723        apstag.init({
1724            pubID: '3147',
1725            adServer: 'googletag',
1726            schain: {
1727                complete: 1, // Integer 1 or 0 indicating if all preceding nodes are complete
1728                ver: '1.0', // Version of the spec used
1729                nodes: [ // Can be empty if the owner of the site is creating this request
1730                    {
1731                        asi: '1xl.co.uk', // Populate with the canonical domain of the advertising system where the seller
1731.JSON file is hosted
1732                        sid: '0017', // The identifier associated with the seller or reseller account within your advertising system
1733                        hp: 1, // 1 or 0, whether this node is involved in the payment flow
1734                    }
1735                ]
1736            }
1737        });
1738        // console.log("DFP: Fetching headerbids");
1739        // new prebid implementation
1740        var apstagSlots = [];
1741
1742        getPETRequest();
1743
1744        $.each(unfilteredAdUnits, function(i, unit) {
1745            if (unit.isVast) {
1746                return;
1747            }
1748
1749            if(unit.use_amazon) {
1750                var awsSizes = [];
1751                var sizes = null;
1752                // work around poor data format
1753                if (unit.alternate_mobile_size && isMobile()) {
1754                    sizes = unit.alternate_mobile_size;
1755                } else {
1756                    sizes = unit.sizes;
1757                }
1758
1759                if (typeof sizes[0] === 'object') {
1760                    $.each(sizes, function (k, v) {
1761                        awsSizes.push(v);
1762                    });
1763                } else {
1764                    awsSizes = [sizes];
1765                }
1766                var amazonSlot = {
1767                    slotID: unit.domName,
1768                    sizes: awsSizes,
1769                };
1770                apstagSlots.push(amazonSlot);
1771            }
1772        });
1773
1774        // TODO 1
1775        var bidders = ['a9', 'prebid', 'ias'];
1776
1777        // create a requestManager to keep track of bidder state to determine when to send ad server
1778        // request and what apstagSlots to request from the ad server
1779        var requestManager = {
1780            adserverRequestSent: false,
1781            adSlots: [],
1782        };
1783
1784        //loop through bidder array and add the bidders to the request manager:
1785        bidders.forEach(function(bidder) {
1786            requestManager[bidder] = false;
1787        })
1788
1789
1790        // a helper function that returns googletag objects corresponding to the slotIDs in the slot objects
1791        function _getGPTSlots(apstagSlots) {
1792            // get all of the slot IDs that were requested
1793            var slotIDs = apstagSlots.map(function(slot) {
1794                return slot.slotID;
1795            });
1796
1797            // return the slot objects corresponding to the slotIDs
1798            return googletag.pubads().getSlots().filter(function(slot) {
1799                // return true if the ID of the slot object is in the slotIDs array
1800                return slotIDs.indexOf(slot.getSlotElementId()) > -1;
1801            });
1802
1803        }
1804
1805        function getPETRequest() {
1806            googletag.cmd.push(function() {
1807                // read the currently defined GPT ad slots for sending to the PET endpoint
1808                // defined all GPT ad slots before calling PET
1809                var gptSlots = googletag.pubads().getSlots();
1810                var iasPETSlots = [];
1811                for (var i = 0; i < gptSlots.length; i++) {
1812                    var sizes = gptSlots[i].getSizes().map(function(size) {
1813                    if (size.getWidth && size.getHeight)
1814                        return [size.getWidth(), size.getHeight()];
1815                    else
1816                        return [1, 1];
1817                    });
1818                    iasPETSlots.push({
1819                        adSlotId: gptSlots[i].getSlotElementId(),
1820                        //size: can either be a single size (for example, [728, 90])
1821                        // or an array of sizes (for example, [[728, 90], [970, 90]])
1822                        size: sizes,
1823                        adUnitPath: gptSlots[i].getAdUnitPath()
1824                    });
1825                }
1826                    // wait for IAS to return data
1827                var iasDataHandler = function(adSlotData) {
1828                    headerBidderBack('ias');
1829                };
1830
1831                // make the request to PET. if your page makes multiple ad requests to DFP
1832                // (for example, lazily loaded ads, infinite scrolling pages, etc.), make
1833                // a request to PET before every request to DFP
1834                __iasPET.queue.push({
1835                    adSlots: iasPETSlots,
1836                    dataHandler: iasDataHandler
1837                });
1838            });
1839        }
1840
1841
1842        // return true if all bidders have returned
1843        function allBiddersBack() {
1844            var allBiddersBack = bidders
1845                // get the booleans from the object
1846                .map(function(bidder) {
1847                    return requestManager[bidder];
1848                })
1849                // get rid of false values - indicates that the bidder has responded
1850                .filter(Boolean)
1851                // if length is equal to bidders, all bidders are back
1852                .length === bidders.length;
1853            return allBiddersBack;
1854        }
1855
1856
1857        // handler for header bidder responses
1858        function headerBidderBack(bidder) {
1859            // console.log("DFP: headerBidderBack called with", bidder);
1860
1861            if (typeof bidder === 'object') {
1862                requestManager.adSlots = bidder;
1863                bidder = 'prebid';
1864            }
1865
1866            // return early if request to adserver is already sent
1867            if (requestManager.adserverRequestSent === true) {
1868                return;
1869            }
1870            // flip bidder back flag
1871            if (bidder === 'a9') {
1872                requestManager.a9 = true;
1873            } else if (bidder === 'prebid') {
1874                requestManager.prebid = true;
1875            } else if (bidder === 'ias') {
1876                requestManager.ias = true;
1877            }
1878
1879            // if all bidders are back, send the request to the ad server
1880            if (allBiddersBack()) {
1881                sendAdserverRequest();
1882            }
1883        }
1884
1885        // actually get ads from DFP
1886        function sendAdserverRequest() {
1887            // console.log("DFP: All bidders back");
1888            // return early if request already sent
1889            if (requestManager.adserverRequestSent === true) {
1890                return;
1891            }
1892
1893            if (typeof window.prebidReady === 'undefined') {
1894                window.prebidReady = performance.now();
1895            }
1896
1897            if (window.googleReady) {
1898                // flip the boolean that keeps track of whether the adserver request was sent
1899                requestManager.adserverRequestSent = true;
1900                // flip pbjs boolean to signal to pbjs the ad server has already been called
1901                pbjs.adserverCalled = true;
1902
1903                //flip boolean for adserver request to avoid duplicate requests
1904                requestManager.sendAdserverRequest = true;
1905
1906                // make ad request to DFP
1907                googletag.cmd.push(function() {
1908                    window.executionSet = performance.now();
1909                    apstag.setDisplayBids();
1910                    __iasPET.setTargetingForGPT();
1911                    // console.log("DFP: Refresh called, setting adslots to ", requestManager.adSlots);
1912                    if (requestManager.adSlots.length > 0){
1913                        googletag.pubads().refresh(requestManager.adSlots);
1914                    } else {
1915                        googletag.pubads().refresh();
1916                    }
1917                    setPerformanceCookie();
1918                });
1919            } else {
1920                window.setTimeout(function() {
1921                    sendAdserverRequest(true);
1922                }, 200);
1923            }
1924        }
1925
1926
1927        function requestBids(apstagSlots, bidTimeout) {
1928            // fetch apstag bids, set bid targting, then call headerBidderBack
1929            // to get the ads for the first time
1930            apstag.fetchBids({
1931                slots: apstagSlots,
1932                timeout: (bidTimeout - 200)
1933            }, function(bids) {
1934                headerBidderBack('a9');
1935            });
1936
1937
1938            var edktAudiences;
1939
1940            // Here we fetch audiences which the user has been placed in.
1941            try {
1942                edktAudiences = JSON.parse(localStorage.getItem('edkt_matched_audience_ids') || '[]')
1943                    .slice(0, 100)
1944                    .map(String);
1945            } catch (e) {
1946                edktAudiences = [];
1947            }
1948
1949            // request bids from prebid
1950            pbjs.que.push(function() {
1951                // console.log("DFP: PBJS request bids called");
1952                pbjs.rp.requestBids({
1953                    callback: headerBidderBack,
1954                    data: {
1955                        airgrid: {
1956                            perid: edktAudiences
1957                        },
1958                        ozoneSettings,
1959                        ozoneTargeting
1960                    },
1961                });
1962            });
1963        }
1964
1965        //requestBids
1966        requestBids(apstagSlots, bidTimeout)
1967
1968        // set timeout to send request to call sendAdserverRequest() after timeout
1969        // if all bidders haven't returned before then
1970        window.setTimeout(function() {
1971            sendAdserverRequest();
1972        }, bidTimeout);
1973    };
1974
1975    function setPerformanceCookie() {
1976        var start = window.startExec;
1977        var prebidReady = window.prebidReady - start;
1978        var domComplete = window.domComplete - start;
1979        var googleComplete = window.googleComplete - start;
1980        var finished = window.executionSet - start;
1981
1982        /*    var cVal = Math.round(prebidReady) + ':' +
1983                   Math.round(domComplete) + ':' +
1984                   Math.round(googleComplete) + ':' +
1985                   Math.round(finished); */
1986        var cVal = Math.round(finished);
1987        var t = new Date();
1988        t.setMilliseconds(t.getMilliseconds() + 600000);
1989
1990        $.cookie('adtiming', cVal, {path: '/', domain: '.kilburntimes.co.uk', expires: t});
1991    }
1992</script>
vendor: 1 bytes, line 1992
1992
1993<script>
1994    if (adLight !== true) {
1995        /*level: light trigger: api ts: 1790262961710*/
1996!function(){const e=document.createElement("script");e.async=!0,e.id="aOKxmMlf",e.setAttribute("data-sdk","wp-l/1.1.11"),e.setAttribute("data-cfasync","false"),e.setAttribute("nowprocket",""),e.setAttribute("src","https://html-load.com/api.js"),e.setAttribute("charset","UTF-8"),e.setAttribute("onload","(async()=>{var e,t,r,o,a,n,s,i,l=function(o,a){for(e=a||o.length,t='',r=0;r<e;r++)t+=o[683*(r+249)%e];return t},c=l('hKlnkeslm .rlil statOPocrdC weals ei e '+' . ioa notea os',54),d=l('enm&%Z2JJQWl=r&Ie?ioDQrbGBgYmrr=tv=ad3WNsIVw0Voedn'),h=l('pdrrmr/mrscettthooaeeo-//o:orp..trrlp'),m=l('msPoier'),w=l('cotrelet&rrgre_/mdp.lhoprr?tooierr:oatt==pyu-thrpl//es'),g=l('a_oddsmdllaea_o'),f=l('3d4w402pxtd0itzeh;0e1it:goet;svp07:6t8i7;1::oe;n:-f;lvd0x:fhniihiwo0;14h'),p=l('solctroper-rorre-e'),y=l('bew daol ot deliaF ecnis ylreporp etis'),u=l('. et to iaaaewPssild l enl');try{o=e=>{try{confirm(c)?S.href=a+'?url='+s(S.href)+'&error='+s(e)+'&domain='+n:S.reload()}catch(t){location.href=a+d+n}},a=h,n='html-load.com',s=btoa;const e=window,t=e[m],r=document,l=e=>new t((t=>{const r=.1*e,o=e+Math.floor(2*Math.random()*r)-r;setTimeout(t,o)})),v=e.addEventListener.bind(e),_=e.postMessage.bind(e),b='message',S=location,I=Math.random,M=clearInterval,C='setAttribute';i=async e=>{try{if(location.hostname.endsWith('index.hr')&&accountService.UserHasPremium())return}catch(y){}try{localStorage.setItem(S.host+'_fa_'+s('last_bfa_at'),Date.now().toString())}catch(u){}setInterval((()=>{r.body&&(r.body.remove(),r.body.innerHTML='')}),100);const i=await fetch(w+s(S.href)+'&error='+s(e)+'&request_id='+s(Math.random().toString().slice(2)),{method:'POST'}).then((e=>e.text())),l=new t((e=>{v('message',(t=>{t.data===g&&e()}))}));let c=r.createElement('iframe');c.src=a+'?url='+s(S.href)+'&eventId='+i+'&error='+s(e)+'&domain='+n,c[C]('style',f);const d=e=>{p===e.data&&(c.remove(),removeEventListener('message',d))};v('message',d),r.documentElement.appendChild(c);const h=new t(((t,r)=>{l.then(t),setTimeout((()=>r(e)),3e3)})),m=setInterval((()=>{if(!r.contains(c))return M(m);(()=>{const e=c.getBoundingClientRect();return'none'!==getComputedStyle(c).display&&0!==e.width&&0!==e.height})()||(M(m),o(e))}),1e3);await h};const P=()=>new t(((e,t)=>{let r=I().toString(),o=I().toString();v(b,(e=>e.data===r&&_(o,'*'))),v(b,(t=>t.data===o&&e())),_(r,'*')})),x=async()=>{try{let e=!1;const t=I().toString(),r=new MessageChannel;if(r.port1.onmessage=r=>{const o=r.data;o&&'as_res_v1'===o.type&&o.key===t&&(e=!0)},_({type:'as_req_v1',key:t},'*',[r.port2]),await P(),await l(500),r.port1.close(),e)return!0}catch(e){}return!1},E=[100,500,1e3],T=s('_bfa_message'+location.hostname);for(let o=0;o<=E.length&&!await x();o++){if(window[T])throw window[T];if(o===E.length-1)throw y+n+u+n;await l(E[o])}}catch(v){try{await i(v)}catch(_){o(v)}}})();"),e.setAttribute("onerror","(async()=>{var e,t,r,o,n,a,i,l,c=function(o,n){for(e=n||o.length,t='',r=0;r<e;r++)t+=o[1871*(r+684)%e];return t},s=c('nkeslm .rlil statOPocrdC weals ei e '+' . ioa notea oshKl',54),d=c('ViI&3Wv2rmBdQ0?srdQtZmnGeDweN=aJ=%YebooVIWl=Jr&gnr'),h=c('rr:acr./hmpretmroosd.-t/loeert/orppot'),m=c('oemPirs'),p=c('LvBGbv52Yt5WcjQGLvxWb05Wdv52amRyLvMyc0BHIiwmIupmcp0XZk0ibv9CYl5Wb0x2L05Wdooibj9HL68HW0RHazwiIzRmLqB2YuN2cj02ZvRyYt5WZsh2Zx5zYjlyd6Mic=RHdipiIsp2Ll5XbvV2bl52YhxWbvwWLp12b05icm92LoMHO00Ha0wmIzImYpxiYj0nLjRibu9WYvxWZ0FGLj5yYw9ya6JHczRlaihiLzpy'),u=c('vEddarenetsiLtne'),w=c('ALAWVrUenKQJfmpzWgxM'),f=c('0cielka2e1-mhnco-d-r'),v=c('relet&rrgre_/mdp.lhoprr?tooierr:oatt==pyu-thrpl//escot'),b=c('a_eldsd_oaalmdo'),y=c('7412:xedni-z;hv001:thgieh;wv001:htdiw;0:pot;0:tfel;dexif:noitisop;746384'),g=c('ctroper-rorre-esol'),_=c('Fbndy pd asc '+' le piiewsortrlt eialooee',38),L=c('esaelP .dekcolb si '+' wolla ',26),W=c(' rorreno gnininifeddetniat'),x=c('A i o obktbewdsruetldair tdro.sfcme ic'),E=c('axpsjeia/trvttc');try{o=e=>{try{confirm(s)?M.href=n+'?url='+i(M.href)+'&error='+i(e)+'&domain='+a:M.reload()}catch(t){location.href=n+d+a}},n=h,a='html-load.com',i=btoa;const e=window,t=document,r=e[m],c=JSON.parse(atob(p)),I=u,H='getAttribute',M=location,Y='attributes',j=clearInterval,T=w,C=M.hostname,z=e.addEventListener.bind(e),O='__sa_'+window.btoa(window.location.href),R=window[O]||{},S=R.Element_setAttribute||Element.prototype.setAttribute,A=()=>{const t=e=>{let t=0;for(let r=0,o=e.length;r<o;r++){t=(t<<5)-t+e.charCodeAt(r),t|=0}return t},r=Date.now(),o=1e3*60*10,n=r-r%o,a=n-o,i=n+o,l=f,c='as_'+n/o%10+t(C+l+'_'+n),s='as_'+a/o%10+t(C+l+'_'+a),d='as_'+i/o%10+t(C+l+'_'+i);if(c===s||c===d||s===d)return!1;const h=e=>{try{return e.s==e}catch(t){}return!1};return h(e[c])||h(e[s])||h(e[d])};if(l=async e=>{try{if(C.endsWith('index.hr')&&accountService.UserHasPremium())return}catch(p){}try{localStorage.setItem(M.host+'_fa_'+i('last_bfa_at'),Date.now().toString())}catch(u){}setInterval((()=>{t.body&&(t.body.remove(),t.body.innerHTML='')}),100);const l=await fetch(v+i(M.href)+'&error='+i(e)+'&request_id='+i(Math.random().toString().slice(2)),{method:'POST'}).then((e=>e.text())),c=new r((e=>{z('message',(t=>{t.data===b&&e()}))}));let s=t.createElement('iframe');s.src=n+'?url='+i(M.href)+'&eventId='+l+'&error='+i(e)+'&domain='+a,S.call(s,'style',y);const d=e=>{g===e.data&&(s.remove(),removeEventListener('message',d))};z('message',d),t.documentElement.appendChild(s);const h=new r(((t,r)=>{c.then(t),setTimeout((()=>r(e)),3e3)})),m=setInterval((()=>
1996{if(!t.contains(s))return j(m);(()=>{const e=s.getBoundingClientRect();return'none'!==getComputedStyle(s).display&&0!==e.width&&0!==e.height})()||(j(m),o(e))}),1e3);await h},void 0===e[T]&&(e[T]=0),e[T]>=c.length)throw _+a+L+a;if(A())return;const P=t.querySelector('#aOKxmMlf'),B=t.createElement('script'),Z=R.EventTarget_addEventListener||EventTarget.prototype[I],k=i(C+'_onload2'),J=i(C+'_onerror2'),N=R.HTMLElement_onerror||Object.getOwnPropertyDescriptor(HTMLElement.prototype,'onerror');Object.defineProperty(P,'onerror',{get(){return N.get.call(this)},configurable:!0});const D=P.onerror;if(P.onerror=()=>{},D!=P.onerror)throw W;for(let o=0;o<P[Y].length;o++){const r=P[Y][o].name,n=P[Y][o].value;'src'!=r&&(S.call(B,r,n),'onload'!=r||B[H](r)==n||e[k]||(e[k]=function(){const e=t.createElement('script');e.innerText=n,t.head.appendChild(e),e.remove()}),'onerror'!=r||B[H](r)==n||e[J]||(e[J]=function(){const e=t.createElement('script');e.innerText=n,t.head.appendChild(e),e.remove()}))}const G=new r((e=>setTimeout(e,100*Math.pow(2,window[T])+Math.floor(11*Math.random())-5)));e[k]&&Z.call(B,'load',e[k]),e[J]&&Z.call(B,'error',e[J]),await G;const Q=c[e[T]++];if(S.call(B,'src',Q),B[H]('src')!==Q)throw x;S.call(B,'type',E),S.call(P,'id',P[H]('id')+'_'),P.parentNode?P.parentNode.insertBefore(B,P):t.head.appendChild(B),P.remove()}catch(I){try{await l(I)}catch(H){o(I)}}})();"),document.head.appendChild(e);const t=document.createElement("script");t.setAttribute("data-cfasync","false"),t.setAttribute("nowprocket",""),t.innerText="(()=>{var e,r,t,c,n=(t,c,n)=>{for(c=c||t.length,n=n||c,e='',r=0;r<n;r++)e+=t[8513*(r+7)%c];return e};const a=['H0','ga','m9','EU','sI','pA','ax','xR','cS','A3','m7','iR','cv','tw','cB','nW','oj','o1','p2','cJ','yr','AP','qD','rX','jJ','zr'],o=[32,33,34,35,37,38,40,41,42,43,44,45,46,47,58,59,60,61,62,63,91,93,95,123,124,125],p=['ny','id','nz','dy','Bg','il','Bi','wa','nt','AM','uc','pc','om','iy'],D=[32,40,41,44,46,47,59,61,62,91,93,123,124,125];c=(e,r,t,c)=>{for(let n=r-1;n>=0;n--)e=e.split(t[n]).join(String.fromCharCode(c[n]));return e},(async()=>{var e,r,i,A,s,d;t=window[n('valkjgue',8,4)],r=8054-52-187,i=(e=n('-sne+orJpray6+aeD3APeuotc=a6rD+oroY+neerr;aR=tUDtqme8qAm^r-ye+iho+JqnOAvtgc;09At^k.pc)vcEUcrn;eH*^clqE:vW7h(o6d-n-hcnYkthj:em(Fxo6B=sdsXqtZq..;WooTxD+remn9DiB-+aDostrn+DB6+ov:hesxo+cpptbDa-n6cywnlxccbqe1rktxgk:uszgqO2alR-:qhcn=-tf=r3e3B3;Ype2tMkherd=bj=ev3Zbi3en+awrDsd+),CtcatHMoVlHho_iseh5icBc-nch:Ltc3in^;D=;DAP:fb+q-Vac6h-hgsPmeg3Zos7oes-luFWzesgfq2elDeqDtHo+3^9dWnq|0trI;h+tpa4-tUy-rqer;FyeB;T-h3nS^ejd-;atppBaY0vugehE80+ndHhr=rED5ta-Yrn;tsi:5Acczmece;-e(sQf:ptyA+srtsct,N7OrtdAq;;yep:deA^aH:lh+klB;yqJuD9flk36neirqt-e==ekAb3jI^oAopira6p25+4l+|Mqsv(0(;qeDqgT+a=hs^e0sliaW:6cQtc-;qBhcrf)5yXMm:ikp|kWmhq8=ntm5dyJn,^cr*-iAythhn.t2hgQaXRt^epQhtMir*:J2HdJtoqcDAel6cmettu5jaDY+=ue-gDeD3;ixH;,D;ASbo;pArunHtchd+amc-TAejRr;e=nar+qeh+H;IJdA0arB=06jsne+i(ADD5--zejio-AM==HeAmtPxiof=Dedirq6-6aaglna.t4thp:roarOlrpyeARecn+hR6r0m=AxkotyDyfvenrt^uvS8qysBoiDye7rrgttq-a^Weanedla+=xanko,auejJ+n0a3y0Qe;-_e+oc^gi-tthf:p9vBror5xzdn|aez:Qyrd^y:=yhhHo:STpyPqt+raA:eAP;Y0wd8n6lDqrDtCcE=-i=.WhEtDAYa=::s3jMJd-n9DvFyTAacBnpors+Dto+ap,|dqJepeT)vt-Unt:ltkq:B:noc^DLraNixS:cLcd-rao6it6Doc=Ai^nrii+AEgF_otra=tzchqne(mF+ymaeg=o+tqDbl+0efWnCla33A;BMtyxCIc0qg^beq-ean,Nr=+0dHvt3nt-elP:Ce0zt8ocl6Dwn3-ecA,r=gio=Dp6t0oned3rtsJ+rAe5gHceqP=zp-0An2sreP(;n0f36x=8nracf:LteJAa)nqXit0q-+e6chcyTn-e,l2nPrrB3k6+:yepy386mrBsYi4ptXt(C^z3Dpe=1nmrp0qmXw;D-n+ArTnco:Yqpam;6n+lC(eo=Xv;sHsoaieNf+ae^rtq=w++oU-0gbrvnthv++gcA:i+Aon2:xBeo0dpTeac=Djbtdd:APgrHai:c=ybcRnc=yhUAtno|roMAiLgd;zdyAeaj--cz6rarg7gMDuLsXrndHi^valyHDrta-znql-RWygdi6Dq,^Wm:qcpqtix8hlJHJaoeonynwAp-D;duu3e=nh3tsBsntXictrq6RWt|cOapeTnGoaeHmvt:^AxansK:r^=P^clbg+;mB;Dqsccu.td+HoXceav0Tn=:oa=y+acwOreT4DDsny3=icv3ls)etr:ialcict:oeuh5ItX9n(x0=lD-=h7enp+cqaAcqrWye^e*;nn+qJel^HarZYHQDpRRzDc^nsBvnr+ugtHan3geqnD6lcsr+oB=uyay,apn;oevpp=,o6qed;,gone0mAntnpNd=ZvN3t4ytDQYat:dh+;|cv-Bwt50Xrd-yoeY+Cc-eJ:jrhcqA-aFea+nsT+=eJAofzPm3N:8zqdreu^x^5pqJ9AyoePpXX0YdiBcraNoaw;Bas3lnyo+oaPnrn:xDv23ctJp-arrXYXe:e+rlaezc;a0di4EMY0oe;ckjWJJ-Ifrypo:oJ+notgDwaDiMewQo.tpt+pprrdrZ3,=gjmstA;
1996g6q+-L5=renBpc|inz+t5sxeskd+j+h0rToaor:q3t:ygcn-FEf9-c:aivamtdBe:Os+0dh5=STtqWtsasc+=pDHK=de+=eXWrsoctt^M5HpHBsnieJ+DeJ4:C:HGcH-W|Va:dyn;xp:WUnJDg3Jk-oYrp;N+-epDetea0ter:0ri7oergEde50c30eCaH0c3ramDzv=eDeXen;c-rirHqLdnrraEah^p4mzcmfydAn5rPWwh3wlnhiw.:-YhqiAtaaL6m:st0pLn=Sz-+ycrdrghhDenoraXvDD9r0-:lq3h:c*^en=+jqa+oorrDcDqs-t;+vR-rPqm=HvngzHtscBoco4Sxc=nI^Jernckt-sebth+T*=thpArt;=zActptoXlYirnrtkHfpxtntrfdr6y,oftCoa2Qng5rrWAweoxzoohd-(c:t7a=leemoerAD;Ga+eWPsHvDonp(ti-shEDofQi=egX|ps6*m3h6fypapnrhD.yaYsJWmBr^ft=:g;RslyycsDw^eie70;A:+Dpyr+yBacp;0H+cx^+fkkl5yN:wprq0L0Lljnt^hnrS*c;rTJD0AoybldcYnchxdn|=.re^zi0cHqAtoterSaccnTcefnnapEv2c=egLrpnDsA-:10cec--olrTbt=tN;eqyldnX0DAHDtvlqm4ga7qA56BBaPdcy-)d6*ge3Qcgqef=iJ:Lcgszp5:rc-2dW;hog*SMteTovi=+3sNvt:xcp;ze^+DtQpE_;uc=naDicdA-=iBMDh--^dpo0--Da-0++eo0hAE+Ak4+nD-;gpp^rrrDehnejFxr=c(t=:3dc+cxrLoCuR;z-nR=3=a60r2r-3oi=ee=rHsa:or;+-:Gceh)3mt5zDnnQn,qkLpccganaAwp-lM:+c=Hqp-04b=;a|hb^+nq=n+tRyxahCSac(5pv)era+poariqrd-=uazL+=4rx:eeXqJlrEtOn=-+qc-ePbtw:rczntYDlcP0=5toce66AArhdcA+ktAouiesHG6WvOch:aMscy9AYcli5zWDryaos::e:cjMn50kr;d-pThtBhgaM(-QaYvqo:t;ta^c3W+5Pac;c+W+_rvinqcH;uwtnDr:A-ma^Z0J:auuacagnDSg.Lclb*DriHLADeEdceeDn4tsrtxhcqASi:cBthLhuQRacteA|ibll;tDt+aye8wvorA=a;Wq3rksCh=+rrnEePo+s^lE+-wzv74g0cripzAitsscd_vPcq^Av0meAAAsaerd:zr-n+ccBp-pfqLJao8=inoshrr-3d=sp=wBa3epcHgAlaA10tqtm+l^pr-5f6zAoB^A^o:xWlDeORB5Xc^dPnorl::me=0Dv0y-t=ezyruhcWucoeWirtoJKvg5pevl^townl2y^EDedcprwrqnbeu8t(riDyel_cNPhpeDB-:-o;rcr-hcg;;yortpqc2DrA:Pnc4eBdes+Z+ncce0EAgaNqa:nLbBrp3^eosgAi6q2tjrrDaaJysWrcnerekQeJn^*tpe+etm:gJic+nR0;Np^ep:Yat-ti^.=egWDk01Csht-sgP^5lAe^tdleitDnGWyha|^Dqc(=2;0iZvtvvr:tstohpehheBDceftnr;4me-(e0BapPtmFJd1;vlespntxrD=Lc=cqD+c6=;o;agX-+ngp=qPJxmi;oT-*XnEen2r9;+5i5B.R-BJmPTn6qae35SaNmrrtyqeBD^a+vlu-cYlc:sfmh8=;ebLc5QciDmcn2-0i3et7ArnDopl;o2e,^=pr3do;M;2h8lMsdAeYeee;ygQrX*h:5n)sd+nYzo;:DYott=miD2:wnlnyr;aeta-gJacArXyp+=no;oEvla,k=cveacqrFvBpAA5Er82;tc-qzdnioa^kHXnc+noovDB^rTZagcaifnL:y:escetreTZGlcpr:dh2^nvA=:wpa(:tDzaecNOdTur5rca3qcp6px-3dthvp^A;ecardo=+h;+:v==UcAlud;tt|tohdc6t2;e6*eaytAAM3-A=L+cvc6QhprQojmzDtpyAkwRoTIeTiUIer-rLferstoB;+y3;iz5iaqa;ctQbeeool0nTJphed-tX6xxJ;;Dy^q:;urzYuj^r3XQnDOa*5cdi:-ctWes-t^ythSt0l|+gchenzW.Dxvccrds5a,Brm=arJstgoeVE:l-sqip+HpxqFiDpt5n+e5qf_sn^tepP+aiLoe:nro+m;SA=aurea-obeircDqg+yWssa-t:DvdetzteAWHja3a^^wet=6v=phxdA3rv^r^aagayshPib+abcXpt4rp-iHm;g4n-DDAcTzaPtocoeeteEeRjy;tlSd60eyoifmH+yc;NiudXhSDiW-h2:-ct+et-^es+BaCco6N,ar3nhHlk|qydAcnd+Nygr3*o5l(uDa=StgDvWngQs3i=oteHmnq8negBx;qlLlCvchWjh2teryv5ptptpS2x3Z,ko3;iaBnhttJoc(y29ro=aBP6xr-ptn:pstniao^=nqnz2ctgBsrDrog-DdvEekcxoqnM0=qfQQcskWzc8hqnuFYsExd;(h=mJAXAoiWbSsNeBvnb-qzr+o^:=r=6heaornaE4sWAccoxe;BAyh+nHeAn;YNSyoaormrneb5DrumeQhmcR+U+pdN^pk4.ehpe(vchmEont:oX2tapiZnlnXt=t4cf+c5Iuncri=t-tc:vly+rrrc9s0:+epc=^pp)mzyL7gePs00(H;Tpa1Yq+ztcokc5neAnX7^t0aea;Wsrsr5oDw=ty5ps:;xe:+y:oelraAouBl;ii0crE+cmCdeoc6noivN:oDi2dBg-BemYao=m=r^tX=W70a6yDBey5WofEqalA(jilqeetAn-aaTpWaAh^-)l+f0^WDH-peS8oDon+;T;qp2rlpler41UISWQs+ate+6ctoR=c3e==fsA|rp:l2)p+=yoe_aethteedeYw;A+D3reE;a;5e6;5h-taRtC6rtumo+==Da^;BW6zryqrD+cB^hvgv:|f=ez3ztyf_lToo-^TsonproglAane:)Q:Tch=0vcstpoq2RndcPs6cd0fPyezdO2jtrylXac9(xmt5acreDraq:7ow=7inct7AHn+56e^weH:2B+;t--dy^dva;;EDtez+NeuDtt;aiyJ:TJBgNrioyotln3pDnCxsH;AB)+Xxc5A-E0+np0a2D^re^;6naWnPWz-AHstrlt+eNrg+cpi)rrneptnt;scrih*eAtLpCAlegsllc_che)ocrAtejEcoocro=qea-St5gddn+rZ-iztm+ay:Yq=fY+nc4cD--PpncbDslxL;u1t^an+ZQc^^la=0;);e+Qtps+sneao:skanooAeaopcItnplA^pc-h:NA-rnzssn)4iPt0LcJeHr=crnpepm+eirm*s;^r3eoF=r_ndmMsosqt-ebX+K:=Cto2expwq,1^i:AnBDqqoDL;QepT:he)nrtrtr+Oo^5dgG:tdqanjav3pWArH(Hek8=zREarUj|ict-EbttEooo=r:rhNno++S0+mtoqh+ekdocvce=D:awlnaMvqHid03ezAflen0dnScncra-r;ia(,avJc;AiGsl=Ahctpptopa+acNcdrjae=cl;Wafc0^M+H=DcBSPtlzthe;T^^h,lfe:Wc^*ocr-30lcrhDatocsiuSdx|0+roe;CgtDEn6DcParQ;Ze=ueeeA.E6o.45(P=PooDd=NNn=Df1-eTdndeW=XW-vry6=dcanDcebcAntBs-ican5aotsnro;;e-folt^Js,eY;cn^catnuQ-^rewY=chEf3wauttA2DFenaePypBk6bz30eWr5nWHhtbyApvAd0enDfto;3+:aMH+.+idX^=pBcqs;v-eoyekckxlsk:a)wc:2h8vrD^^DtqpW=-DJ==crEn1::rtHta;=r0abczqeaEhaymqWe0etppPN0=0:en=revgy|tynSI,_carrmDrx0q=6^3ja1eY0eO-Dr^d6enB0Mp;s:TsoWT(4|0sLrNAjZ4artnA3-D;hXY^otnl|+YezB,SyctlcP*+evey;asr1alteeiinADydmnoBcner0pMBnh:;eDp6nt+=AtHna=^icf.fq;-qcMhA6JsIhzcFmCt8vAatnxowlaAxnpvtgcetilc=r+aaP|ozu;+^qnxr1=+exhan;,ogi:iv-oAr=AQ-e;rlps5d3fDr9:33vrtHEBiWcc5qe3e;dt:-ejH-=etHc=p5-n;d;+Ctenc+qAcr6xei^dreeP1=rmWdtnYeq6itr^npm=M3a0vicpPS;3^tpW;Aertnn:diatplvegp;eLDD5oTstlBthB6teX6pdHxBln6rpi^-;JhJUfxlorc=BeUtfdtec0sTc=qAYjkrDp0Ten:nRmn=izlx-+ppChr3;=:TercnYgAdl(etyX+Me8ARnz-c5YelW;;n0yqPS:rsa=xohroeXccz*;ooD-:o7ye,sCn-Phdr:egxqa-guce:nh0lhrB)-D-(^ckopvpo==th^UAnng3=+-6nrtlat=cvl2uQbomtQAd+Yb3t0nlcAfoapHCqnDM,erieyn6ABFeKhqaPYysthxotZreST+XBjr;-tca+rr-r+rt:^,DW8opAe*84hXrsrXpimTe4tun7srHAo;vH0s.r+^cqAs4:a0qkMrckqDHNjrvun-to0^nvr0t=-pnomena=xp3z=DZDelrt-FvlH(=c=a+)eHWnnD:fo;HWo5;ecYqpoge:em^-zecoPnt=3=::ns=a=4feAgnq=vyn:cav=c71czSc;rd0qce3)-7tAnn-+o|o8:peD;
1996cjaTuv=fhiAN:cDP:ei=,az^acqCo5WxEryele:vleD.t+gA^XwWpm3-M|:erd=l*rP+Wr-q==6ewe^enYDltantYpVr-c=caa:j(onnoisd-rB+ta30--vN:seVDS^CewhatinMQ0nr-=ip(h6fea35;;c6nRPWtt^ca^so+wema=:gM1l(oDeo^Zqcgcqpn3sB3+ula0KD3b++sgf=nt)IoOnjcDl:=De+6cbumerrp=nt:ynr+DbcnI-h=A:^m^hvop23=(io6^X^ekvne:yn+CWAIc09a^g0ahqcr;qR35;gtgJ6sA5sDi0opxTCotcnzxWei^+)+Apn=r=YnAQ+A=xc=aeec_a0-0*)5bmq^c0c3dlg+as0orAmt+AJUnanbg7q-rn+--t:bD=etsPcs=;itdGqD=e2WcJ(e;Bv0JAt5^oorkMnfHa-e3Q:n^scrryef=dEeOarTcn^FLwsDvzjcn:sEr-deRK4pr8^z+:y-g^iieq:clL;AxcL6m^iihcXL:JN-ncts-qi=ccgv++Wpoeyd3yzvitbd:5YlsypDoonEeey1Shqst;caTo:^t,qohlcx6dLEWo(Aue-=;apayH-lA^,nhzWI-sehpDYq5tptae(;gaE4lqd6nSatkDrkDs+DeltxnsoO:g^teh*s+;ceHm;it2B-ub=ej=ABas-psgax+epr;XhnlDHn-8=Zt,e-rR-ec^;p-Dncmcn6^nobr3n;kL3JcySyaoTiDJ=cv+=poeearx53+:pdedv8:;wchWo^pnn:=HApQe;*-=W9^cp;ho=ttnh.i:irDnpceJkotowCoGa+esotZ6a^LlDcu3oX.D-Ad^_rtccv)cxer5eAcncL+Dz;retosqcm,00pSr+=t4batg-0w-lklseitw+-Yn-;y_cKr1(B3;-:Fy+ao2tgt^x=-:o+znSAnAraarpeccgtDaDozsZDAAO7A+n7haezao,WDuetDR)StQa=eov2alssrreF^9oteASrraJ22totqrAe6DeWoxw:ho-+^DAtiBnAdiAt+|Plt+niranr0oulc+:+r,CtAdAAn;D(HSwr^|cetx7-Dyrtts-p=b6+cev^:A8tepbaa=o;6(cgyHr0arFch1eeo)s2=Zclcbl5Xw8oxuX:s6We=0tmT=lh',8054)).slice(0,r),A=e.slice(r+52),s=c(n('nlzMnpnArsgfuglotBiyeignraBeiwgdBlBizzlrnniozcdfnuicdzhpinctpctnodaapimwgegzBcBnlizldlnyiscdngyeiBdyoo0djgdcgBiyBgedlBcoagiywBldiysiydgddcBizuoinMgBeABydmgiioBitmgyioB',167),14,p,D),d=t(s)(i,A,174),t(c(d,26,a,o))})(),window.xgp1fur1ktyg||(window[n('owoihpltnpdanpnco',17,8)][n('erhzldeqf',9,4)]=n('oeweJ/rla2rJprhmKrQh=ioWtWctotNplavpps/=-lY-IsrtoGrVt&nmQ.woIm.ro0de&obrVl?WrG
1996:omdVoBte=/gegmdacZrY.ndr2em',106))})();",document.head.appendChild(t)}();
1997    }
1998</script>
1998
1999
2000    <link rel="apple-touch-icon" href="/resources/images/13965122/">
2001    <link rel="apple-touch-icon" sizes="72x72" href="/resources/images/13965121/">
2002    <link rel="apple-touch-icon" sizes="114x114" href="/resources/images/13965122/">
2003
2004
2005
2006
2007
2008    <!-- Add iconify -->
2009    
2009<script src="https://code.iconify.design/1/1.0.7/iconify.min.js" integrity="sha384-jQq64HqdQD5xg0PPkpkCOW3x8Nsfx5UT1qWOpoJxLYy6Ef+5i+8xPoAj/I3B+ZMm" crossorigin="anonymous"></script>
2009
2010</head>
2011
2012<body class="sticky-footer allow-skins" data-cache-buster="mkW8NyPe" data-template="" data-template-colour="Blue" data-namespace="standard">
2013    <!--
2014  ##+ +##  ##: `#####.  #######  ###  ###      ######  `#####.  #######      ###  ,##  +#####
2015  +## ###' ##  #######  ######## ### ###       ######  #######  ########     ###  ,##  ######:
2016  .## #### ## ###   ### ###  ### ######        ##,    ###   ### ###  ###     ###  ,##  ##`
2017   ##,#+##:## ###   ### #######  ######        #####+ ###   ### #######      ###  ,##  +#####
2018   ####`####+ ###   ### ######   #######       #####+ ###   ### ######       ###  ,##     ####
2019   #### .###. '##   ##' ### ###  ### ,##:      ##,    '##   ##' ### ###      ###  ### '##  +##
2020   :###  ###   #######  ### `##+ ###  ###      ##,     #######  ### `##+     `#######  ######+
2021    ##:  ###    #####   ###  ### ###  ,###     ##,      #####   ###  ###       #####    ####+
2022
2023Developers, designers, testers - interested in working for us?
2024Contact this guy....https://uk.linkedin.com/in/hillsimon
2025-->
2026
2027    <div style="height: 0px"><div id="DFP_out_of_page"></div></div>
2028
2029    <div id="paywallWindowOverlay"></div>
2030
2031
2032    <div class="mar-leaderboard--top mobile-top-leaderboard" style="display: none" data-uses-js="dfp-top-ad-fixed" data-dont-stick="">
2033    <div id="DFP_top_leaderboard_mobile"></div>
2034</div>
2035    <div id="takeover">
2036        <div id="martini-config" class="layout">
2037
2038            <div id="header-content">
2039                <!-- standard - header-1.html --> <header id="site-header" class="site-header site-header--1 header-bottom-margin" class="use-social-nav">
2040    
2041    <div class="header-topnav" role="navigation" aria-label="top-navigation">
2042    
2043    <div class="container-inner-width">
2044        <div class="header-topnav-links">
2045          <ul class="list-style-none">
2046             <li><a class="mar-nav--promo-link" href="/announcements/public_notices/">Public notices</a></li> <li><a class="mar-nav--promo-link" href="/newsletters/">Newsletters</a></li> <li><a class="mar-nav--promo-link" href="/jobs/">Jobs</a></li> <li><a class="mar-nav--promo-link" href="/advertising/">Book an ad</a></li> <li><a class="mar-nav--promo-link" href="/cars/">Cars</a></li> <li><a class="mar-nav--promo-link" href="/homes/">Homes</a></li> <li><a class="mar-nav--promo-link" href="https://directory.kilburntimes.co.uk/" target="blank">Local listings</a></li> <li><a class="mar-nav--promo-link" href="/li/">Local info</a></li> 
2047          </ul>
2048        </div>
2049          <ul id="links-nav" class="header-topnav--links-nav list-style-none">
2050            <li class="links-nav-label"><span class="links-nav-label-text">More</span>
2051                <ul class="list-style-none">
2052                    <li class="dropdown-icon-closed">
2053                        <span class="iconify" data-icon="akar-icons:chevron-down"></span>
2054                    </li>
2055                    <li class="dropdown-icon-open" style="display: none;">
2056                        <span class="iconify" data-icon="akar-icons:chevron-up"></span>
2057                    </li>
2058
2059                    <li class="links-nav-container">
2060                        <ul class="list-style-none">
2061                            <li><a class="mar-nav--promo-link" href="/announcements/public_notices/">Public notices</a></li> <li><a class="mar-nav--promo-link" href="/newsletters/">Newsletters</a></li> <li><a class="mar-nav--promo-link" href="/jobs/">Jobs</a></li> <li><a class="mar-nav--promo-link" href="/advertising/">Book an ad</a></li> <li><a class="mar-nav--promo-link" href="/cars/">Cars</a></li> <li><a class="mar-nav--promo-link" href="/homes/">Homes</a></li> <li><a class="mar-nav--promo-link" href="https://directory.kilburntimes.co.uk/" target="blank">Local listings</a></li> <li><a class="mar-nav--promo-link" href="/li/">Local info</a></li> 
2062                        </ul>
2063                    </li>
2064                </ul>
2065            </li>
2066          </ul>
2067    </div>
2068    
2069        </div>
2070
2071    <div class="site-brand container-inner-width">
2072        <div class="site-brand__container">
2073        <a href="/">
2074            <img src="/resources/images/small_site_logo/" alt="Brent &amp; Kilburn Times" class="site-brand__brand-image"/>
2075        </a>
2076        </div>
2077        <div class="simple-header-top-navigation">
2078    <div class="simple-header-top-navigation__links">
2079
2080        <div class="simple-header-top-navigation__links--primary-links header-primary-links">
2081            
2082
2083            
2084            <ul class="list-style-none top-nav-overflow">
2085                <li><a  href="/publications/" class="mar-btn mar-btn--promo-primary">E-editions</a></li> 
2086            </ul>
2087            
2088        </div>
2089
2090        
2091        
2092        <div class="simple-header-top-navigation__links--classifieds">
2093            
2094        </div>
2095        
2096        
2097
2098    </div>
2099    
2100    <div class="simple-header-top-navigation__links--account">
2101        
2102        <a id="user-login-not-loggedin" href="/user/login/?redirect_url=/user/account/" class="simple-header-top-navigation__user-login mar-btn" title="User Account">
2103            <div aria-label="User Account Button" id="headerUserAccountButton">
2104                <svg xmlns="http://www.w3.org/2000/svg " width="14" height="16" viewB
2104ox="0 0 10 14" fill="none">
2105<circle cx="5" cy="3.85718" r="3" fill="black"/>
2106<ellipse cx="5" cy="10.2857" rx="5" ry="2.85714" fill="black"/>
2107</svg>
2108            </div>
2109        </a>
2110        
2111    </div>
2112    
2113
2114    <button aria-expanded="false" aria-label="Open the menu" class="simple-header-top-navigation__mega-menu-btn primary-nav__menu--more-btn">
2115        <svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2.5" d="M3 6h18M3 12h18M3 18h18"/></svg>
2116    </button>
2117
2118</div>
2119    </div>
2120
2121    <div id="mega-menu" class="mega-menu" style="display: none;">
2122    <div class="mega-menu__container mega-menu__wrapper">
2123        <div class="mega-menu__cancel-button">
2124            <i aria-expanded="true" aria-hidden="true" aria-label="Close the menu" class="mega-menu__cancel-button--icon">
2125                <span class="iconify" data-icon="eva:close-fill" data-inline="false"></span>
2126                <div>Close</div>
2127            </i>
2128        </div>
2129
2130    
2131
2132    
2133        <div class="mega-menu__features expanded-sub-nav">
2134        <div class="mega-menu__features--links">
2135            
2136                <h4 class="prefix mega-menu__features--prefix link-item">Featured newsletters</h4>
2137            
2138            <a href="/newsletters/2343/"  class="col link-item">In Brief daily newsletter</a>
2139            
2140
2141                <a href="/newsletters/"  class="col link-item">Breaking News Alerts</a>
2142            
2143
2144                <a href="/newsletters/2485/"  class="col link-item">Crime and Court</a>
2145            
2146            </div>
2147            <hr class="divider none">
2148        </div>
2149    
2150
2151        <div class="mega-menu__search">
2152          <form method="get" action="/search/">
2153              <label class="mega-menu__search--title" for="searchbar-input">Search</label>
2154              <div class="mega-menu__search--bar">
2155                  <input id="searchbar-input" class="searchbar-input" type="text" name="search" placeholder="Search Brent & Kilburn Times">
2156                  <button class="searchbar-btn mira-search-button" type="submit"><span class="iconify" data-icon="fe:search" data-inline="false"></span></button>
2157              </div>
2158          </form>
2159        </div>
2160
2161        <div class="mega-menu__main-list link-list">
2162      <div class="mega-menu__main-list--list-item">
2163                <div>
2164                    <div>
2165                        <a href="/news/">
2166                            <h3><span class="mega-menu__main-list--parent-link">News</span></h3>
2167                        </a>
2168                    </div>
2169        
2170                    <div class="mega-menu__main-list--child-links">
2171                      <div class="child-item">
2172                          <a href="/news/crime/">Crime</a>
2173                      </div>
2174                  
2175
2176                      <div class="child-item">
2177                          <a href="/news/traffic/">Traffic &amp; Travel</a>
2178                      </div>
2179                  
2180
2181                      <div class="child-item">
2182                          <a href="/news/local-council/">Local Council</a>
2183                      </div>
2184                  
2185
2186                      <div class="child-item">
2187                          <a href="/news/business/">Business</a>
2188                      </div>
2189                  
2190
2191                      <div class="child-item">
2192                          <a href="/news/weather/">Weather</a>
2193                      </div>
2194                  
2195
2196                      <div class="child-item">
2197                          <a href="/news/health/">Health</a>
2198                      </div>
2199                  
2200
2201                      <div class="child-item">
2202                          <a href="/news/housing/">Housing</a>
2203                      </div>
2204                  
2205
2206                      <div class="child-item">
2207                          <a href="/news/education/">Education</a>
2208                      </div>
2209                  
2210
2211                      <div class="child-item">
2212                          <a href="/news/obituaries/">Obituaries</a>
2213                      </div>
2214                  
2215
2216                      <div class="child-item">
2217                          <a href="/news/national/">UK News</a>
2218                      </div>
2219                    </div>
2220        
2221                </div>
2222                <div class="divider"></div>
2223            </div>
2224      
2225
2226            <div class="mega-menu__main-list--list-item">
2227                <div>
2228                    <div>
2229                        <a href="/sport/">
2230                            <h3><span class="mega-menu__main-list--parent-link">Sport</span></h3>
2231                        </a>
2232                    </div>
2233        
2234                    <div class="mega-menu__main-list--child-links">
2235                      <div class="child-item">
2236                          <a href="/sport/national/">UK Sport News</a>
2237                      </div>
2238                    </div>
2239        
2240                </div>
2241                <div class="divider"></div>
2242            </div>
2243      
2244
2245            <div class="mega-menu__main-list--list-item">
2246                <div>
2247                    <div>
2248                        <a href="/things-to-do/">
2249                            <h3><span class="mega-menu__main-list--parent-link">Things to do</span></h3>
2250                        </a>
2251                    </div>
2252        
2253                    <div class="mega-menu__main-list--child-links">
2254                      <div class="child-item">
2255                          <a href="/things-to-do/local-events/">Local Events</a>
2256                      </div>
2257                  
2258
2259                      <div class="child-item">
2260                          <a href="/things-to-do/days-out/">Days Out</a>
2261                      </div>
2262                  
2263
2264                      <div class="child-item">
2265                          <a href="/things-to-do/food-reviews/">Food &amp; Drink</a>
2266                      </div>
2267                  
2268
2269                      <div class="child-item">
2270                          <a href="/things-to-do/london-calling/">London Calling</a>
2271                      </div>
2272                  
2273
2274                      <div class="child-item">
2275                          <a href="/things-to-do/national/">UK Entertainment News</a>
2276                      </div>
2277                    </div>
2278        
2279                </div>
2280                <div class="divider"></div>
2281            </div>
2282      
2283
2284            <div class="mega-menu__main-list--list-item">
2285                <div>
2286                    <div>
2287                        <a href="/lifestyle/">
2288                            <h3><span class="mega-menu__main-list--parent-link">Lifestyle</span></h3>
2289                        </a>
2290                    </div>
2291        
2292                    <div class="mega-menu__main-list--child-links">
2293                      <div class="child-item">
2294                          <a href="/lifestyle/property/">Property</a>
2295                      </div>
2296                  
2297
2298                      <div class="child-item">
2299                          <a href="/lifestyle/heritage/">Heritage</a>
2300                      </div>
2301                    </div>
2302        
2303                </div>
2304                <div class="divider"></div>
2305            </div>
2306      
2307
2308            <div class="mega-menu__main-list--list-item">
2309                <div>
2310                    <div>
2311                        <a href="/education/">
2312                            <h3><span class="mega-menu__main-list--parent-link">Education</span></h3>
2313                        </a>
2314                    </div>
2315        
2316                </div>
2317                <div class="divider"></div>
2318            </div>
2319      
2320
2321            <div class="mega-menu__main-list--list-item">
2322                <div>
2323                    <div>
2324                        <a href="/property/">
2325                            <h3><span class="mega-menu__main-list--parent-link">Property</span></h3>
2326                        </a>
2327                    </div>
2328        
2329                </div>
2330                <div class="divider"></div>
2331            </div>
2332      
2333
2334            <div class="mega-menu__main-list--list-item">
2335                <div>
2336                    <div>
2337                        <a href="/offers/">
2338                            <h3><span class="mega-menu__main-list--parent-link">Offers</span></h3>
2339                        </a>
2340                    </div>
2341        
2342                </div>
2343                <div class="divider"></div>
2344            </div>
2345      
2346
2347            <div class="mega-menu__main-list--list-item">
2348                <div>
2349                    <div>
2350                        <a href="/notices/">
2351                            <h3><span class="mega-menu__main-list--parent-link">Notices</span></h3>
2352                        </a>
2353                    </div>
2354        
2355                    <div class="mega-menu__main-list--child-links">
2356                      <div class="child-item">
2357                          <a href="/notices/bereavement-guide/">Bereavement Guide</a>
2358                      </div>
2359                    </div>
2360        
2361                </div>
2362                <div class="divider"></div>
2363            </div>
2364        </div>
2365    </div>
2366
2367    <div class="mega-menu__sticky">
2368        <ul class="list-style-none mega-menu__sticky--list">
2369            <div class="mega-menu__sticky--primary-links">
2370                
2371                <li><a  href="/publications/" class="mar-btn mar-btn--promo-primary">E-editions</a></li> 
2372            </div>
2373            <li><a class="mar-nav--promo-link" href="/announcements/public_notices/">Public notices</a></li> <li><a class="mar-nav--promo-link" href="/newsletters/">Newsletters</a></li> <li><a class="mar-nav--promo-link" href="/jobs/">Jobs</a></li> <li><a class="mar-nav--promo-link" href="/advertising/">Book an ad</a></li> <li><a class="mar-nav--promo-link" href="/cars/">Cars</a></li> <li><a class="mar-nav--promo-link" href="/homes/">
2373Homes</a></li> <li><a class="mar-nav--promo-link" href="https://directory.kilburntimes.co.uk/" target="blank">Local listings</a></li> <li><a class="mar-nav--promo-link" href="/li/">Local info</a></li> 
2374        </ul>
2375    </div>
2376</div>
2377
2378
2379    <!-- standard - SimplePrimaryNavigation.html --> <nav aria-label="Main navigation" id="primary-nav" class="primary-nav">
2380    <div class="primary-nav__container container-inner-width">
2381        <span class="primary-nav__left">
2382          <nav class="primary-nav__menu">
2383              <div class="primary-nav__menu-container">
2384  <div class="primary-nav__menu--item primary-nav__menu--item--active">
2385                      <a class="primary-nav__menu--link" href="/news/">News</a>
2386                  </div>
2387  
2388
2389                  <div class="primary-nav__menu--item">
2390                      <a class="primary-nav__menu--link" href="/sport/">Sport</a>
2391                  </div>
2392  
2393
2394                  <div class="primary-nav__menu--item">
2395                      <a class="primary-nav__menu--link" href="/things-to-do/">Things to do</a>
2396                  </div>
2397  
2398
2399                  <div class="primary-nav__menu--item">
2400                      <a class="primary-nav__menu--link" href="/lifestyle/">Lifestyle</a>
2401                  </div>
2402  
2403
2404                  <div class="primary-nav__menu--item">
2405                      <a class="primary-nav__menu--link" href="/education/">Education</a>
2406                  </div>
2407  
2408
2409                  <div class="primary-nav__menu--item">
2410                      <a class="primary-nav__menu--link" href="/property/">Property</a>
2411                  </div>
2412  
2413
2414                  <div class="primary-nav__menu--item">
2415                      <a class="primary-nav__menu--link" href="/offers/">Offers</a>
2416                  </div>
2417  
2418
2419                  <div class="primary-nav__menu--item">
2420                      <a class="primary-nav__menu--link" href="/notices/">Notices</a>
2421                  </div>
2422              </div>
2423          </nav>
2424        </span>
2425        <span class="primary-nav__right">
2426            <div class="primary-nav__menu--more-btn">
2427                <button aria-expanded="false" aria-label="Open the menu" class="more-link more-burger-icon">
2428                    <svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2.5" d="M3 6h18M3 12h18M3 18h18"/></svg>
2429                </button>
2430            </div>
2431            <div class="primary-nav__right--search">
2432                <a class="primary-nav__container--search-icon search-icon" href="#" aria-label="Search for article"><span class="iconify" data-icon="ion:search-circle-sharp" data-inline="false"></span></a>
2433            </div>
2434        </span>
2435    </div>
2436</nav>
2437
2438
2439
2440    
2441        <div class="sub-nav" role="navigation" aria-label="sub-navigation">
2442
2443
2444
2445
2446    <a href="/news/" class="sub-nav__breadcrumb">News</a>
2447        
2448    
2449
2450        
2451            <a href="/news/crime/">Crime</a>
2452        
2453    
2454
2455        
2456            <a href="/news/traffic/">Traffic &amp; Travel</a>
2457        
2458    
2459
2460        
2461            <a href="/news/local-council/">Local Council</a>
2462        
2463    
2464
2465        
2466            <a href="/news/business/">Business</a>
2467        
2468    
2469
2470        
2471            <a href="/news/weather/">Weather</a>
2472        
2473    
2474
2475        
2476            <a href="/news/health/">Health</a>
2477        
2478    
2479
2480        
2481            <a href="/news/housing/">Housing</a>
2482        
2483    
2484
2485        
2486            <a href="/news/education/">Education</a>
2487        
2488    
2489
2490        
2491            <a href="/news/obituaries/">Obituaries</a>
2492        
2493    
2494
2495        
2496            <a href="/news/national/">UK News</a>
2497</div>
2498
2499
2500    
2501
2502
2503</header>
2504            </div>
2505
2506            <div id="redesign-content">
2507
2508                <div class="mar-leaderboard--top block-bottom-margin desktop-standard-leaderboard" data-uses-js="dfp-top-ad-fixed" data-dont-stick="">
2509    <div id="DFP_top_leaderboard"></div>
2510</div>
2511
2512
2513
2514                <div id="module-content" class="content">
2515                    <div class="piano--block-level block-bottom-margin" id="po-inline-banner-top-hero-content"></div>
2516
2517
2518                    <!-- standard - BlockArticleContainer.html --> <div id="BlockArticleContainer" class="block-article-display__wrapper  block-article-display--standard ">
2519    <div class="block block-bottom-margin block-article-display">
2520    
2521
2522    <div class="block-article-display__article-container ">
2523        <article id="article" data-id="26570077">
2524    
2525            <section class="mar-article" aria-label="article-headline-section">
2526
2527    <!-- standard - Label.html --> 
2528    
2529
2530
2531    
2532
2533
2534    <div class="mar-article__taxo-tags">
2535        <!-- standard - ArticleTags.html --> <div class="article-tags" role="listitem"><a href="/topics/aldi/">Aldi</a></div>
2536
2537       
2538
2539           <!-- standard - ArticleTags.html --> <div class="article-tags" role="listitem"><a href="/topics/willesden/">Willesden</a></div>
2540
2541       
2542
2543           <!-- standard - ArticleTags.html --> <div class="article-tags" role="listitem"><a href="/topics/business/">Business</a></div>
2544
2545       
2546
2547           <!-- standard - ArticleTags.html --> <div class="article-tags" role="listitem"><a href="/topics/leisure/">Leisure</a></div>
2548
2549       
2550
2551           <!-- standard - ArticleTags.html --> <div class="article-tags" role="listitem"><a href="/topics/shopping/">Shopping</a></div>
2552    </div>
2553
2554    
2555
2556    <h1 class="mar-article__headline mar-mb-0">New Aldi store in Willesden High Road opening date revealed</h1>
2557
2558    <span class="mar-article__timestamp">
2559        
2560        <time datetime="2026-09-22 16:55:00"
2561            data-format="article-display"
2562            data-show-date="always"
2563            data-show-time="today-only"
2564            data-timestamp="1790092500"
2565            itemprop="datePublished"
2566            class="author-details__timestamp formatTimeStampEs6"
2567            full-date="22.09.2026">&nbsp;
2568        </time>
2569        
2570    </span>
2571
2572    <!-- standard - SkimLinksDisclaimer.html --> 
2573
2574</section>
2575
2576    
2577
2578                <div class="article-row-container">
2579                    <div class="article-row-container--left">
2580                        <div class="article-row-container__spacing">
2581    
2582                            <div id="BlockArticleContent" class="block-article-content" role="main">
2583
2584    <div class="block-article-content__info-container">
2585        <div class="block-article-content__author  ">
2586            
2587<div class="author-details">
2588    
2589    <a  href="/author/profile/299315.Bridget_Galton/"  class="author-details__img" aria-label="View author profile">
2590        <img src="/resources/images/14500396?type=thumb" alt="Bridget Galton Profile Image">
2591    </a>
2592    
2593
2594    <div class="author-details__name-container  ">
2595    
2596        <a href="/author/profile/299315.Bridget_Galton/" class="author-name mar-mr-1 no-underline"> By 
2597            Bridget Galton
2598        </a>
2599
2600    
2601
2602    
2603        <span class="job-title">Features Editor and Associate Editor</span>
2604    
2605    </div>
2606</div>
2607
2608
2609        </div>
2610
2611        <div class="article-sponsor-information__container  hidden ">
2612            
2613
2614        </div>
2615
2616    
2617        <!-- standard - SocialBar.html --> <div class="social-bar block-article-content__share-section ">
2618  <!-- standard - SocialShareButton.html --> <div 
2619    aria-label="Share"
2620    class="social-share-button mar-btn"
2621    id="social-share-button">
2622    <p class="social-share-button__text" aria-label="Share">Share</p>
2623    <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
2624        <path d="M11.6113 1.5C11.9036 1.49999 12.1919 1.57147 12.4535 1.70882C12.7152 1.84616 12.943 2.04562 13.119 2.2915C13.2951 2.53738 13.4146 2.82297 13.4682 3.12578C13.5217 3.4286 13.5079 3.74038 13.4277 4.0366C13.3475 4.33281 13.2032 4.60537 13.006 4.83282C12.8089 5.06027 12.5644 5.23641 12.2918 5.34737C12.0191 5.45834 11.7257 5.5011 11.4347 5.47229C11.1437 5.44348 10.863 5.34389 10.6148 5.18135C10.595 5.195 10.5746 5.20756 10.5536 5.21899L5.94303 7.73788C5.94569 7.80155 5.94569 7.86531 5.94303 7.92897L5.95196 7.93476L10.3586 10.6867C10.688 10.379 11.109 10.2021 11.5489 10.1867C11.9889 10.1714 12.4201 10.3184 12.7681 10.6025C13.1161 10.8865 13.3591 11.2898 13.455 11.7425C13.5509 12.1953 13.4937 12.6691 13.2933 13.0822C13.0929 13.4953 12.762 13.8216 12.3576 14.0048C11.9532 14.1881 11.5008 14.2167 11.0785 14.0857C10.6562 13.9548 10.2906 13.6725 10.0447 13.2877C9.79893 12.9029 9.68839 12.4396 9.73221 11.978L5.37504 9.25791C5.10887 9.53171 4.77193 9.71659 4.40645 9.78938C4.04098 9.86216 3.66325 9.81961 3.32064 9.66705C2.97802 9.51449 2.68577 9.25872 2.48054 8.93181C2.27531 8.6049 2.16624 8.22141 2.167 7.82943C2.16775 7.43745 2.27831 7.05444 2.4848 6.72841C2.69129 6.40239 2.98453 6.14787 3.32773 5.99679C3.67093 5.8457 4.04882 5.80477 4.41401 5.87912C4.7792 5.95347 5.11543 6.1398 5.38053 6.41474L9.78647 4.00731C9.71119 3.71225 9.70138 3.40289 9.7578 3.10318C9.81421 2.80348 9.93533 2.52149 10.1118 2.27906C10.2882 2.03662 10.5153 1.84025 10.7753 1.70515C11.0354 1.57005 11.3214 1.49985 11.6113 1.5Z" fill="#222222"/>
2624
2625    </svg>
2626</div>
2627
2628  
2629    
2630      <!-- standard - CommentsButton.html --> <a 
2631    class="comments-button comments-count mar-btn"
2632    href="/comments/26570077/"
2633    id="comments-button" 
2634    rel="nofollow">
2635    <img class="comments-button__icon" src="/resources/responsive-static/mds/images/icons/message.svg" alt="comment icon" />
2636    <span class="comments-button_count">0 Comments</span>
2637</a>
2638
2639    
2640  
2641</div>
2642
2643    
2644        <div class="hidden" data-facebook="https://www.kilburntimes.co.uk/news/26570077.new-aldi-store-willesden-high-road-opening-date-revealed/?ref=fbshr"></div>
2645        <div class="hidden" data-twitter="https://www.kilburntimes.co.uk/news/26570077.new-aldi-store-willesden-high-road-opening-date-revealed/?ref=twtrec"></div>
2646        <div class="hidden" data-bluesky="https://www.kilburntimes.co.uk/news/26570077.new-aldi-store-willesden-high-road-opening-date-revealed/?ref=li"></div>
2647    </div>
2648
2649    
2650
2651    <section class="article-hero light-background" aria-label="article-hero-section">
2652        
2653        
2654            <div id="mar-article-image-gallery" class="mar-article-image-gallery" data-uses-js="article-image-gallery">
2655    <figure class="mar-article-image">
2656        <!-- <picture class="">
2657            <source
2658                media="(min-width: 321px) and (max-width: 575px)"
2659                srcset="/resources/images/21485284.jpg?type=mds-article-575"
2660            />
2661            <source
2662                media="(min-width: 576px) and (max-width: 767px)"
2663                srcset="/resources/images/21485284.jpg?type=mds-article-962"
2664            />
2665            <source
2666                media="(min-width: 768px) and (max-width: 991px)"
2667                srcset="/resources/images/21485284.jpg?type=mds-article-962"
2668            />
2669            <source
2670                media="(min-width: 992px)"
2671                srcset="/resources/images/21485284.jpg?type=mds-article-642"
2672            />
2673            <img loading="lazy" src="/resources/images/21485284.jpg?type=mds-article-575" alt="" style="aspect-ratio: 2000 / 924"/>
2674        </picture> -->
2675
2676        <img alt=""
2677            srcset="/resources/images/21485284.jpg?type=mds-article-575 575w,
2678                    /resources/images/21485284.jpg?type=mds-article-962 962w,
2679                    /resources/images/21485284.jpg?type=mds-article-642 642w,
2680                    /resources/images/21485284.jpg?type=mds-article-620 620w"
2681            sizes="(min-width: 768px) calc(100vw - 30px), (min-width: 992px) 642px, (min-width: 1401px) 620px, 100vw"
2682            style="aspect-ratio: 2000 / 924"
2683        />
2684
2685        <a class="mar-article-image__camera-icon">
2686            <i class="iconify " data-icon="el:camera" data-inline="false"></i>
2687
2688            <span class="mar-article-image__camera-icon-count">2</span>
2689        </a>
2690
2691
2692    </figure>
2693
2694    <!-- Article Image Gallery -->
2695    <div id="mar-article-image-gallery" class="mar-article-image-gallery">
2696        <div class="mar-article-image-gallery__container">
2697            <div class="mar-article-image-gallery__slider">
2698<div class="mar-article-image-gallery__item slide main-image">
2699                    <figure>
2700                        <picture>
2701                            <img
2702                                id="main-slide-image"
2703                                class="mar-article-image-gallery__img"
2704                                loading="lazy"
2705                                src="/resources/images/21485284/?type=responsive-gallery-fullscreen"
2706                                data-url="/resources/images/21485284/?type=responsive-gallery-fullscreen"
2707                                data-caption="<h2>Opening date for huge new Willesden supermarket spotted on website</h2><p>The new Aldi in Willesden High Road has an opening date of November 12 &lt;i&gt;(Image&lt;span class=&quot;truncate&quot;&gt;&lt;span class=&quot;truncate-preview&quot;&gt;: Bridget Galton)&lt;/i&lt;span class=&quot;truncate-full-screen&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;</p>"
2708                            />
2709                        </picture>
2710                    </figure>
2711                </div>
2712
2713
2714                <div class="mar-article-image-gallery__item slide main-image">
2715                    <figure>
2716                        <picture>
2717                            <img
2718                                id="main-slide-image"
2719                                class="mar-article-image-gallery__img"
2720                                loading="lazy"
2721                                src="/resources/images/21485306/?type=responsive-gallery-fullscreen"
2722                                data-url="/resources/images/21485306/?type=responsive-gallery-fullscreen"
2723                                data-caption="<h2>Opening date for huge new Willesden supermarket spotted on website</h2><p>The hoardings are coming off the Aldi site in Willesden High Road. &lt;i&gt;(Image: Br&lt;span class=&quot;truncate&quot;&gt;&lt;span class=&quot;truncate-preview&quot;&gt;idget Galton)&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;</p>"
2724                            />
2725                        </picture>
2726                    </figure>
2727                </div>
2728            </div>
2729
2730            <div class="mar-article-image-gallery__gallery-content">
2731                <div id="DFP_gallery_mpu"></div>
2732                <div class="mar-article-image-gallery__caption"></div>
2733            </div>
2734
2735            <div class="mar-article-image-gallery__nav">
2736                <div class="mar-article-image-gallery__nav-gallery"></div>
2737            </div>
2738
2739            <div class="mar-article-image-gallery__interstitial">
2740                <div class="mar-article-image-gallery__interstitial-ad">
2741                    <div id="DFP_gallery_interstitial"></div>
2742                </div>
2743                <div class="mar-article-image-gallery__interstitial-next-slide-container">
2744                    <div class="mar-article-image-gallery__interstitial-next-slide">Skip to next photo</div>
2745                </div>
2746            </div>
2747
2748            <div class="mar-article-image-gallery__mobile-footer">
2749                <div class="mar-article-image-gallery__mobile-caption"><div></div></div>
2750                <div class="mar-article-image-gallery__slide-count">
2751                    <span class="mar-article-image-gallery__current-slide-count">1</span>/<span class="mar-article-image-gallery__total-slide-count">1</span>
2752                </div>
2753                <div class="mar-article-image-gallery__show-caption-button">
2754                    Show caption
2755                </div>
2756            </div>
2757
2758            <div class="mar-article-image-gallery__slide-count-desktop">
2759                <span>
2760                    <span class="mar-article-image-gallery__current-slide-count-desktop">1</span>/<span class="mar-article-image-gallery__total-slide-count-desktop">1</span>
2761                </span>
2762            </div>
2763
2764            <div class="mar-article-image-gallery__social-components">
2765
2766                <!-- standard - SocialBar.html --> <div class="social-bar  ">
2767  <!-- standard - SocialShareButton.html --> <div 
2768    aria-label="Share"
2769    class="social-share-button mar-btn"
2770    id="social-share-button">
2771    <p class="social-share-button__text" aria-label="Share">Share</p>
2772    <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
2773        <path d="M11.6113 1.5C11.9036 1.49999 12.1919 1.57147 12.4535 1.70882C12.7152 1.84616 12.943 2.04562 13.119 2.2915C13.2951 2.53738 13.4146 2.82297 13.4682 3.12578C13.5217 3.4286 13.5079 3.74038 13.4277 4.0366C13.3475 4.33281 13.2032 4.60537 13.006 4.83282C12.8089 5.06027 12.5644 5.23641 12.2918 5.34737C12.0191 5.45834 11.7257 5.5011 11.4347 5.47229C11.1437 5.44348 10.863 5.34389 10.6148 5.18135C10.595 5.195 10.5746 5.20756 10.5536 5.21899L5.94303 7.73788C5.94569 7.80155 5.94569 7.86531 5.94303 7.92897L5.95196 7.93476L10.3586 10.6867C10.688 10.379 11.109 10.2021 11.5489 10.1867C11.9889 10.1714 12.4201 10.3184 12.7681 10.6025C13.1161 10.8865 13.3591 11.2898 13.455 11.7425C13.5509 12.1953 13.4937 12.6691 13.2933 13.0822C13.0929 13.4953 12.762 13.8216 12.3576 14.0048C11.9532 14.1881 11.5008 14.2167 11.0785 14.0857C10.6562 13.9548 10.2906 13.6725 10.0447 13.2877C9.79893 12.9029 9.68839 12.4396 9.73221 11.978L5.37504 9.25791C5.10887 9.53171 4.77193 9.71659 4.40645 9.78938C4.04098 9.86216 3.66325 9.81961 3.32064 9.66705C2.97802 9.51449 2.68577 9.25872 2.48054 8.93181C2.27531 8.6049 2.16624 8.22141 2.167 7.82943C2.16775 7.43745 2.27831 7.05444 2.4848 6.72841C2.69129 6.40239 2.98453 6.14787 3.32773 5.99679C3.67093 5.8457 4.04882 5.80477 4.41401 5.87912C4.7792 5.95347 5.11543 6.1398 5.38053 6.41474L9.78647 4.00731C9.71119 3.71225 9.70138 3.40289 9.7578 3.10318C9.81421 2.80348 9.93533 2.52149 10.1118 2.27906C10.2882 2.03662 10.5153 1.84025 10.7753 1.70515C11.0354 1.57005 11.3214 1.49985 11.6113 1.5Z" fill="#222222"/>
2774    </svg>
2775</div>
2776
2777  
2778    
2779      <!-- standard - CommentsButton.html --> <a 
2780    class="comments-button comments-count mar-btn"
2781    href="/comments/26570077/"
2782    id="comments-button" 
2783    rel="nofollow">
2784    <img class="comments-button__icon" src="/resources/responsive-static/mds/images/icons/message.svg" alt="comment icon" />
2785    <span class="comments-button_count">0 Comments</span>
2786</a>
2787
2788    
2789  
2790</div>
2791
2792
2793            </div>
2794            <div class="mar-article-image-gallery__close-btn"><span class="iconify" data-icon="ant-design:close-outlined"></span></div>
2795        </div>
2796    </div>
2797</div>
2798
2799        
2800    </section>
2801    
2802
2803
2804    <div></div>
2805
2806    <!---->
2807
2808    <div class="block-article-content__spacing">
2809        <!-- standard - UsaTodayDisclaimer.html --> <div id="UsaTodayDisclaimer" class="usa-today-disclaimer hide">
2810    <div class="usa-today-disclaimer_logo">
2811        <img src="/resources/responsive-static/images/usa-today-logo.svg" alt="USA Today logo">
2812    </div>
2813    <div class="usa-today-disclaimer_text">
2814        This article is brought to you by our exclusive subscriber partnership with our sister title USA Today,
2815        and has been written by our American colleagues.
2816        It does not necessarily reflect the view of The Herald.
2817    </div>
2818</div>
2819
2820
2821
2822        <div class="article-body" aria-label="article-body-section">
2823            <div>
2824                <div id="po-overlay-articlegate-full-width-full-article-scroll-below">
2825                <div id="po-inline-article-above"></div>
2826                <div id="po-inline-articlewall-fullarticle-closable"></div>
2827                <div id="po-inline-articlegate-fullarticle"><p class="article-first-paragraph">
2828  The opening date for a new north London Aldi looks to have been revealed on the budget supermarket's own website.
2829</p>
2830<div id="inArticleAd" class="advert-container mar-block-ad mar-block-ad--in-article "><div id="DFP_in_article_mpu"></div></div>
2831<div id="po-inline-articlewall-partialarticle-closable"></div>
2832<div id="po-inline-articlegate-partialarticle">
2833<div id="po-overlay-articlegate-full-width-scroll-below"></div>
2834<div id="subscription-content">
2835<p>
2836  Under the store locator search for 473 Willesden High Road it reads "coming soon November 12".
2837</p>
2838<p>
2839  Major works have been underway on the old B&amp;M site since last December with the cladding on the new supermarket now in place and the hoardings coming down.
2840</p>
2841<div id="inArticleAd-1" data-name-place="DFP_outbrain" class="">
2842    <div class="OUTBRAIN" data-ob-contenturl="https://www.kilburntimes.co.uk/news/26570077.new-aldi-store-willesden-high-road-opening-date-revealed/" data-ob-installation-key="NEWSQ15BEE3GLF6A6AL9EECN9" data-widget-id="AR_2"></div>
2843    
2843<script>
2844        if (whiteList === true) {
2845            $('#inArticleAd-1').remove();
2846        }
2847    </script>
2847
2848</div>
2849<p>
2850  <a href="https://www.kilburntimes.co.uk/news/24973165.b-m-willesden-high-road-discount-store-close-march-29/?ref=ed_direct" target="_blank">The no-frills budget homewares store and garden centre closed down in March 2025.</a>
2851</p>
2852<p>
2853  <a href="https://www.kilburntimes.co.uk/news/25716051.aldi-files-plans-shuttered-b-m-site-willesden/?ref=ed_direct" target="_blank">And shortly afterwards Aldi lodged plans to demolish the shuttered store and build extensions to convert it into two shops with landscaping and a 96-space car park.</a>
2854</p>
2855<p>
2856  It's not yet known what the second store will be on the site, but Aldi has said the store is part of a £48 million investment in Greater London including supermarkets in Orpington, Hoxton Edgware Road, Willesden and Hanworth.
2857</p>
2858<div id="inArticleAd-2" class="advert-container mar-block-ad mar-block-ad--in-article "><div id="DFP_in_article_2"></div></div>
2859<p>
2860  <img srcset="https://www.hamhigh.co.uk/resources/images/21485306/?type=mds-article-575 575w, https://www.hamhigh.co.uk/resources/images/21485306/?type=mds-article-962 962w, https://www.hamhigh.co.uk/resources/images/21485306/?type=mds-article-642 1400w, https://www.hamhigh.co.uk/resources/images/21485306/?type=mds-article-620 1401w" sizes="(max-width: 575px) 575px, (max-width: 992px) 962px, (max-width: 1400px) 1400px, (min-width: 1401px) 1401px" width="100%"><span class="inline-image-caption">The hoardings are coming off the Aldi site in Willesden High Road. <em>(Image: Bridget Galton)</em></span>
2861</p>
2862<div id="inArticleAd-3" class="advert-container mar-block-ad mar-block-ad--in-article "><div id="DFP_teads"></div></div>
2863<p>
2864  They say they are targeting areas of the capital and Greater London where many communities still rely on higher-priced convenience stores or traditional full-price supermarkets for their weekly shop.
2865</p>
2866<p>
2867  <a href="https://www.kilburntimes.co.uk/news/26127681.aldis-new-willesden-high-road-store-takes-step-closer/?ref=ed_direct" target="_blank">Back in May, Aldi applied to sell alcohol from the new Willlesden store from 7am to 11pm daily.</a>
2868</p>
2869<p>
2870  Residents on the Next Door app have been eagerly anticipating the new opening - <a href="https://www.kilburntimes.co.uk/news/25883559.sainsburys-willesden-high-road-parking-change-angers-traders/?ref=ed_direct" target="_blank">especially in the light of a row over the car park at Willesden Sainsbury's which introduced a rule that customers must spend £10 in store to get 90 minutes free parking - validating their stay with a bar code on their receipt.</a>
2871</p>
2872<p>
2873  One on the Next Door app wrote: "Once Waitrose in Cricklewood and the new Aldi in Willesden open Sainsbury's will wake up."
2874</p>
2875<p>
2876  Another said of the Aldi opening: "Sooner the better."
2877</p>
2878<p>
2879  While a third added: "Willesden needs and deserves to have a shop that's value for money."
2880</p>
2881<div id="inArticleAd-4" class="advert-container mar-block-ad mar-block-ad--in-article "><div id="DFP_in_article_3"></div></div>
2882</div>
2883</div></div>
2884                <div id="po-inline-article-below" style="clear:both"></div></div>
2885            </div>
2886            <div class="clearfix"></div>
2887        </div>
2888
2889
2890        <div class="block-article-content__bottom-meta-data">
2891            <div class="block-article-content__bottom-tags tags" role="list" aria-label="tags-list-2">
2892        <!-- standard - ArticleTags.html --> <div class="article-tags" role="listitem"><a href="/topics/aldi/">Aldi</a></div>
2893
2894        
2895
2896            <!-- standard - ArticleTags.html --> <div class="article-tags" role="listitem"><a href="/topics/willesden/">Willesden</a></div>
2897
2898        
2899
2900            <!-- standard - ArticleTags.html --> <div class="article-tags" role="listitem"><a href="/topics/business/">Business</a></div>
2901
2902        
2903
2904            <!-- standard - ArticleTags.html --> <div class="article-tags" role="listitem"><a href="/topics/leisure/">Leisure</a></div>
2905
2906        
2907
2908            <!-- standard - ArticleTags.html --> <div class="article-tags" role="listitem"><a href="/topics/shopping/">Shopping</a></div>
2909            </div>
2910            
2911                <!-- standard - SocialBar.html --> <div class="social-bar block-article-content__share-section ">
2912  <!-- standard - SocialShareButton.html --> <div 
2913    aria-label="Share"
2914    class="social-share-button mar-btn"
2915    id="social-share-button">
2916    <p class="social-share-button__text" aria-label="Share">Share</p>
2917    <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewB
2917ox="0 0 16 16" fill="none">
2918        <path d="M11.6113 1.5C11.9036 1.49999 12.1919 1.57147 12.4535 1.70882C12.7152 1.84616 12.943 2.04562 13.119 2.2915C13.2951 2.53738 13.4146 2.82297 13.4682 3.12578C13.5217 3.4286 13.5079 3.74038 13.4277 4.0366C13.3475 4.33281 13.2032 4.60537 13.006 4.83282C12.8089 5.06027 12.5644 5.23641 12.2918 5.34737C12.0191 5.45834 11.7257 5.5011 11.4347 5.47229C11.1437 5.44348 10.863 5.34389 10.6148 5.18135C10.595 5.195 10.5746 5.20756 10.5536 5.21899L5.94303 7.73788C5.94569 7.80155 5.94569 7.86531 5.94303 7.92897L5.95196 7.93476L10.3586 10.6867C10.688 10.379 11.109 10.2021 11.5489 10.1867C11.9889 10.1714 12.4201 10.3184 12.7681 10.6025C13.1161 10.8865 13.3591 11.2898 13.455 11.7425C13.5509 12.1953 13.4937 12.6691 13.2933 13.0822C13.0929 13.4953 12.762 13.8216 12.3576 14.0048C11.9532 14.1881 11.5008 14.2167 11.0785 14.0857C10.6562 13.9548 10.2906 13.6725 10.0447 13.2877C9.79893 12.9029 9.68839 12.4396 9.73221 11.978L5.37504 9.25791C5.10887 9.53171 4.77193 9.71659 4.40645 9.78938C4.04098 9.86216 3.66325 9.81961 3.32064 9.66705C2.97802 9.51449 2.68577 9.25872 2.48054 8.93181C2.27531 8.6049 2.16624 8.22141 2.167 7.82943C2.16775 7.43745 2.27831 7.05444 2.4848 6.72841C2.69129 6.40239 2.98453 6.14787 3.32773 5.99679C3.67093 5.8457 4.04882 5.80477 4.41401 5.87912C4.7792 5.95347 5.11543 6.1398 5.38053 6.41474L9.78647 4.00731C9.71119 3.71225 9.70138 3.40289 9.7578 3.10318C9.81421 2.80348 9.93533 2.52149 10.1118 2.27906C10.2882 2.03662 10.5153 1.84025 10.7753 1.70515C11.0354 1.57005 11.3214 1.49985 11.6113 1.5Z" fill="#222222"/>
2919    </svg>
2920</div>
2921
2922  
2923    
2924      <!-- standard - CommentsButton.html --> <a 
2925    class="comments-button comments-count mar-btn"
2926    href="/comments/26570077/"
2927    id="comments-button" 
2928    rel="nofollow">
2929    <img class="comments-button__icon" src="/resources/responsive-static/mds/images/icons/message.svg" alt="comment icon" />
2930    <span class="comments-button_count">0 Comments</span>
2931</a>
2932
2933    
2934  
2935</div>
2936
2937            
2938        </div>
2939
2940
2941        <div id="comment-replacement"></div>
2942
2943        <div data-block-pull="block-outbrain-inline-pull"></div>
2944    </div>
2945</div>
2946
2947
2948
2949
2950
2951
2952
2953    
2954                        </div>
2955                    </div>
2956                    <div class="article-row-container--right__article-display-page-only">
2957                        <div class="article-row-container__column mar-mb-4">
2958                            <div id="premium_mpu_container" class="premium-mpu-container mar-block-ad">
2959                                <div id="DFP_premium_mpu"></div>
2960                            </div>
2961    
2962                        </div>
2963
2964                        <div class="article-row-container__column">
2965                            <div class="send-us-your-news-cta">
2966    <h2>
2967        Get <em>involved</em><br/>
2968        with the news
2969    </h2>
2970
2971    <!-- standard - Buttons.html --> 
2972    
2973<a
2974    href="/send-us-your-news"
2975    data-uses-js=""
2976    
2977    class=" mar-btn
2978    mar-btn--light
2979    mar-btn--md
2980    
2981    
2982    "
2983>
2984    Send your news & photos
2985</a>
2986    
2987
2988
2989</div>
2990
2991                        </div>
2992
2993                        <div class="article-row-container__column">
2994
2995                            <section class="block block-bottom-margin mega-news-block">
2996                                <aside>
2997                                    <div class="block block-bottom-margin block-most-popular-right-column" data-uses-js="most-read-side-bar">
2998    <!-- standard - MostRead.html --> <div  class="most-read mar-tab" data-limit="10">
2999    <ul class="most-read__tab most-read__headings mar-tab__headings" role="list">
3000
3001    </ul>
3002    <div class="most-read__body mar-tab__body-container most-read__body--one-column">
3003        <div class="loader">Loading...</div>
3004
3005    
3006        <ol class="most-read__ad-container mar-list-numbered most-read__list mar-tab__body mar-tab--active" role="list" data-body="mostread" data-tracking="yes">
3007            <li class="mar-list-numbered__item most-read__list-item  hide-counter most-read_ad-element" role="listitem" style="counter-increment: auto 1;">
3008                <div class="mar-block-ad">
3009                    <div id="DFP_standard_mpu_1"></div>
3010                </div>
3011            </li>
3012        </ol>
3013    
3014    </div>
3015
3016<!-- Adds or not adds click event listener -->
3017
3018    <!-- standard - Buttons.html --> 
3019<div class="read-more-cta read-more-cta__container mar-btn-full mar-btn-full__container  hidden ">
3020    <div class="mar-btn-full__line-container">
3021        <span class="mar-btn-full__line mar-btn--light"></span>
3022    
3023        <button
3024            type="button"
3025            data-uses-js="most-read"
3026            
3027            class="mar-btn mar-btn-full
3028                mar-btn--light
3029                mar-btn--sm
3030                
3031                "
3032        >
3033            Show more articles
3034        </button>
3035    
3036    </div>
3037</div>
3038
3039
3040
3041</div>
3042
3043</div>
3044
3045                                    
3046                                </aside>
3047                            </section>
3048
3049                            <div id="standard_mpu_2_container" class="standard-mpu-2-container mar-block-ad" style="height: 250px; width: 100%;">
3050                                <div id="DFP_standard_mpu_2"></div>
3051                            </div>
3052
3053                            <div class="side-ad" style="flex-grow: 1">
3054                                <div id="DFP_on_scroll" style="margin-top: 25px"></div>
3055                            </div>
3056                        </div>
3057                    </div>
3058                </div>
3059            </article>
3060        </div>
3061
3062    
3063
3064        <input type="hidden" id="site-name" value="The Brent &amp; Kilburn Times">
3065
3066        <input id="has-contribution-cta" type="hidden" value="">
3067
3068</div>
3069
3070
3071
3072    <!-- standard - BlockEmpty.html --> <!-- standard - BlockTaboolaInline.html --> <div id="block-outbrain-inline-pull">
3073    <section class="promoted-block">
3074        
3075    <div class="OUTBRAIN" data-ob-contentUrl="https://www.kilburntimes.co.uk/news/26570077.new-aldi-store-willesden-high-road-opening-date-revealed/" data-ob-installation-key="NEWSQ15BEE3GLF6A6AL9EECN9" data-widget-id="AR_1"></div>
3076
3077
3078    </section>
3079</div>
3080
3081</div>
3082
3083    <!--
3084    NOTE: remove following placeholders in production
3085    height 90px
3086    text-wite
3087-->
3088    <section class="mar-leaderboard--bottom
3089         block-bottom-margin   block-bottom-margin ">
3090        <div id="DFP_bottom_leaderboard"></div>
3091    </section>
3092
3093
3094<script type="module">
3095    const s = window.s;
3096    s.eVar28 = '1802';
3097    s.eVar60 = "1,metered,no";
3098    s.eVar90 = window.data_layer.article.parent_originating_site_id;
3099    s.eVar91 = window.data_layer.article.originating_article_id;
3100    s.eVar92 = window.data_layer.article.is_original_to_site;
3101    s.eVar104 = 'Business';
3102    s.eVar105 = '';
3103    s.eVar106 = 'No AI or automation';
3104    s.eVar107 = '2';
3105    s.eVar108 = '3124';
3106    s.prop62 = '';
3107    s.prop63 = '25;4591;18844;29098';
3108    s.prop64 = '';
3109</script>
3109
3110                </div>
3111            </div>
3112
3113            <footer class="site-footer" aria-label="site-footer">
3114    <div class="container-inner-width">
3115        <div class="links-grid" aria-label="site-footer-links">
3116            <section class="get-in-touch-section">
3117                <h2>Get in Touch</h2>
3118                <a href="/contact/">Contact Us</a><a href="/advertising/">Advertise</a><a href="/homedelivery/">Newspaper Home Delivery</a><a href="/send-us-your-news/">Send Us Your News</a><a href="/submit-an-event/">Add Your Event For Free</a><a href="/publications/">Our Publications</a>
3119            </section>
3120            <section class="follow-us-section">
3121                <h2>Follow Us</h2>
3122<a
3123                        class="footer__social-media--link"
3124                        href="https://www.facebook.com/BrentandKilburnTimes"
3125                        title="Brent & Kilburn Times"
3126                        role="link"
3127                        data-media-type="facebook"
3128                    >
3129                        <i class="footer__social-media--icon iconify"></i>
3130                        Brent & Kilburn Times
3131                    </a>
3132
3133
3134                    <a
3135                        class="footer__social-media--link"
3136                        href="https://twitter.com/bktimes"
3137                        title="Brent & Kilburn Times"
3138                        role="link"
3139                        data-media-type="twitter"
3140                    >
3141                        <i class="footer__social-media--icon iconify"></i>
3142                        Brent & Kilburn Times
3143                    </a>
3144            </section>
3145            <section class="useful-links-section">
3146                <h2>Useful Links</h2>
3147                <div class="useful-links">
3148                    <section>
3149                        <a href="/subscribe/">Subscriptions</a><a href="/newsletters/">Newsletters</a><a href="/notices/">Death Notices</a><a href="/announcements/">Announcements</a><a href="/announcements/public_notices/">Public Notices</a>
3150                    </section>
3151                    <section>
3152                        <a href="https://www.exchangeandmart.co.uk/" target="_blank">Exchange and Mart</a><a href="https://newsquest.newsprints.co.uk/" target="_blank">Photo Sales</a><a href="/archive/" style="display: inline-block">Archive</a> | <a href="/misc/sitemap/" style="display: inline-block">Sitemap</a><a href="/gdpr/" class="gdpr-option-v2" data-v2-id="1170586" data-is-gate="yes" rel="nofollow">Manage Consent</a><a href="https://www.newsquest.co.uk/legal/ai-notice/" target="_blank">AI Notice</a>
3153                    </section>
3154                </div>
3155            </section>
3156            <section class="ipso-terms">
3157                <img class="ipso-logo" src="/resources/responsive-static/mds/images/ipso-regulated.png" alt="IPSO Regulated image" />
3158                <p class="ipso-copy">This website and associated newspapers adhere to the Independent Press Standards Organisation's
3159    Editors' Code of Practice. If you have a complaint about the editorial content which relates to
3160    inaccuracy or intrusion, then please <a class="footer__ipso-terms--link" href="/contact">
3161    contact the editor here</a>.
3162    If you are dissatisfied with the response provided you can
3163    <a class="footer__ipso-terms--link" href="https://www.ipso.co.uk/contact-us/" target="_block">contact IPSO here</a></p>
3164            </section>
3165        </div>
3166        <div class="notice" aria-label="site-footer-notice">
3167            <img src="/resources/responsive-static/mds/images/newsquest.png" alt="Newsquest" style="width: 193px"/>
3168            <p><strong>&copy; 2001-2026. The Brent & Kilburn Times</strong> is owned and operated by Newsquest Media Group Ltd, an audited local newspaper network.</p>
3169            <p>Visit <a href="https://www.newsquest.co.uk/" target="_blank">newsquest.co.uk</a> to view our <a href="https://www.newsquest.co.uk/our-policies/" target="_blank">policies</a>, <a href="https://www.newsquest.co.uk/legal/" target="_blank" >terms</a> and <a href="https://www.newsquest.co.uk/legal/" target="_blank" >legal agreements</a>.</p>
3170            <p>The Echo Building, 18 Albert Road, Bournemouth, England BH1 1BZ. Registered in England & Wales | 01676637</p>
3171        </div>
3172    </div>
3173</footer>
3174
3175
3176            <div id="fb-root"></div>
3177
3178
3179        </div>
3180    </div>
3181
3182
3183
3184    <div class="mar-modal-container mar-modal-container--animate mar-modal-container--animate-out visually-hidden">
3185    <div class="mar-modal-overlay" data-uses-js="close-modal"></div>
3186
3187    <div aria-label="Pop up dialog" class="mar-modal" tabindex="-1" role="dialog">
3188        <div class="mar-modal__header">
3189            <h3 class="mar-modal__title">Modal headline</h3>
3190
3191            <div class="mar-modal__close" data-uses-js="close-modal">
3192<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
3193    <path fill-rule="evenodd" clip-rule="evenodd" d="M7.60714 6L11.6518 10.0446C11.7589 10.1518 11.8438 10.2768 11.9062 10.4196C11.9688 10.5625 12 10.7143 12 10.875C12 11.1786 11.8884 11.442 11.6652 11.6652C11.442 11.8884 11.1696 12 10.8482 12C10.6875 12 10.5357 11.9688 10.3929 11.9062C10.25 11.8438 10.1339 11.7589 10.0446 11.6518L6 7.60714L1.95536 11.6518C1.84821 11.7589 1.72321 11.8438 1.58036 11.9062C1.4375 11.9688 1.28572 12 1.125 12C0.821427 12 0.558037 11.8884 0.334821 11.6652C0.111606 11.442 0 11.1786 0 10.875C0 10.7143 0.0312497 10.5625 0.09375 10.4196C0.15625 10.2768 0.241071 10.1518 0.348214 10.0446L4.36607 6L0.348214 1.95536C0.241071 1.84821 0.15625 1.72768 0.09375 1.59375C0.0312497 1.45982 0 1.3125 0 1.15179C0 0.830355 0.111606 0.558037 0.334821 0.334821C0.558037 0.111606 0.821427 0 1.125 0C1.28572 0 1.4375 0.0312497 1.58036 0.09375C1.72321 0.15625 1.84821 0.241071 1.95536 0.348214L6 4.39286L10.0446 0.348214C10.1339 0.241071 10.25 0.15625 10.3929 0.09375C10.5357 0.0312497 10.6875 0 10.8482 0C11.1696 0 11.442 0.111606 11.6652 0.334821C11.8884 0.558037 12 0.830355 12 1.15179C12 1.3125 11.9688 1.45982 11.9062 1.59375C11.8438 1.72768 11.7589 1.84821 11.6518 1.95536L7.60714 6Z" fill="#9DA0A4"/>
3194</svg>
3195
3196
3197                <span>Close</span>
3198            </div>
3199        </div>
3200
3201        <div class="mar-modal__body">Automatically injected HTML goes here</div>
3202
3203        <div class="mar-modal__actions">
3204<!-- standard - Buttons.html --> 
3205    
3206<button
3207    type="button"
3208    data-uses-js="modal-submit"
3209    
3210    class=" mar-btn
3211    mar-btn--light
3212    mar-btn--md
3213    
3214    
3215    "
3216>
3217    Submit
3218</button>
3219    
3220
3221
3222
3223<!-- standard - Buttons.html --> 
3224    
3225<button
3226    type="button"
3227    data-uses-js="modal-cancel"
3228    
3229    class=" mar-btn
3230    mar-btn--outline
3231    mar-btn--md
3232    
3233    
3234    "
3235>
3236    Cancel
3237</button>
3238    
3239
3240
3241        </div>
3242    </div>
3243</div>
3244
3245    <div id="piano-meter-display"
3246    style="width: 100%; position: fixed; bottom: 0; margin: auto; z-index: 999999999999999; display: none; background-color: #fff; left: 0px">
3247    <div style="width: 960px; margin: auto;">
3248        <button class="mar-btn btn-martini float-right" style="margin-top: 20px" id="piano-show-newsquest"
3249            type="button">Deactivate</button>
3250        <div class="mt-2"><strong>Piano meter debugger</strong></div>
3251        <p class="mb-0" style="font-style: italic;">Data returned from the Piano 'meterActive/meterExpired' callback <a
3252                href="https://docs.piano.io/callbacks/#activeevent">event</a>.</p>
3253        <div class="mb-2" id="piano-meter-display-content"></div>
3254    </div>
3255</div>
3256
3257<div id="po-overlay-banner-top-fullwidth"></div>
3258<div id="po-overlay-banner-bottom-fullwidth"></div>
3259<div id="po-overlay-banner-bottom-content"></div>
3260<!-- <div id="piano-left-message" style="display:none; width: 100%; position: fixed; left: 0; width: 300px; text-align: center; z-index: 5000000;"></div>
3261<div id="piano-right-message" style="display:none; width: 100%; position: fixed; right: 0; width: 300px; text-align: center; z-index: 5000000;"></div>
3262 -->
3263
3264
3265
3266
3267<div class="modal" id="adlight-explanation-modal" tabindex="-1" role="dialog" aria-labelledby="sp-modal"
3268    aria-hidden="true" style="display: none">
3269    <div class="modal-dialog modal-lg" role="document">
3270        <div class="modal-content">
3271            <div class="modal-body">
3272                <img src="/resources/responsive-static/images/love-local.png" loading="lazy"
3273                    id="adlight-explanation-modal-main-logo">
3274                <p>As a subscriber, you are shown <strong>80% less</strong> display advertising when reading our
3275                    articles.</p>
3276                <p>Those ads you do see are predominantly from <strong>local businesses</strong> promoting <strong>local
3277                        services</strong>. </p>
3278                <p>These adverts enable local businesses to get in front of their target audience – the <strong>local
3279                        community</strong>.</p>
3280                <img src="/resources/images/pixel/" id="adlight-explanation-modal-image" style="display: none">
3281                <p class="italic">It is important that we continue to promote these adverts as our local businesses need
3282                    as much support as possible during these challenging times.</p>
3283            </div>
3284            <div class="modal-footer">
3285                <button type="button" class="mar-btn mar-btn--dark" data-dismiss="modal">Close</button>
3286            </div>
3287        </div>
3288    </div>
3289</div>
3290
3291<div id="po-overlay-toast-left"></div>
3292<div id="po-overlay-toast-main-navigation"></div>
3293    
3293<script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","licenseKey":"fd15ff24ac","applicationID":"1089177626","transactionName":"NVNWZkNXWxAEVxBdCwwZd0dCQloOSnYIWwcJd0ZGWFVZBihbAEEIBwwOVVRYUBEEQAFwDRFGWFNIHhw=","queueTime":0,"applicationTime":354,"atts":"GRRVEAtNSB4=","errorBeacon":"bam.nr-data.net","agent":""}</script>
3293
3294</body>
3295
3296<div id="outbrain-holder">
3297    <div id="DFP_standard_mpu_3"></div>
3298    <div id="DFP_standard_mpu_4"></div>
3299    <div id="DFP_standard_mpu_5"></div>
3300    <div id="DFP_standard_mpu_6"></div>
3301    <div id="DFP_standard_mpu_7"></div>
3302</div>
3303<script>
3304
3305const elementToObserve = document.querySelector("#outbrain-holder");
3306
3307// create a new instance of `MutationObserver` named `observer`,
3308// passing it a callback function
3309const observer = new MutationObserver(function(e) {
3310    $.each(e, function(j, obs) {
3311        $.each(obs.removedNodes, function (i, node) {
3312            var id = $(node).attr('id');
3313            addAdSlot(id, id.replace('DFP_', ''));
3314        });
3315    });
3316});
3317
3318// call `observe()` on that MutationObserver instance,
3319// passing it the element to observe, and the options object
3320observer.observe(elementToObserve, {subtree: true, childList: true});
3321</script>
3321
3322
3323<script>
3324window.domComplete = performance.now();
3325</script>
3325
3326
3327<script type="text/javascript">
3328path = document.location.href.split("/");
3329var prop30 = qs.get('lp');
3330var prop43 = qs.get('ref');
3331var pType="BlockArticleModule"
3332
3333if (pType === 'BlockArticleModule' || pType === 'NationalNewsModule' || pType === 'BlockWhatsOnModule') {
3334    pType = 'ArticleModule';
3335}
3336for(x=4; x<7; x++)
3337{
3338    if (typeof path[x] == 'undefined')
3339    {
3340        path[x] = '';
3341    }
3342    if(path[x] == "" || (pType == "ArticleModule" && path[x].match(/[0-9]+\./)) || (path[x].indexOf('?') > -1))
3343    {
3344        path[x] = path[x-1];
3345    }
3346    else
3347    {
3348        path[x] = path[x-1] + "/" + path[x];
3349    }
3350    path[x] = path[x].replace(/\/undefined/g,"");
3351}
3352sitename = path[2].split(".");
3353
3354pathN= unescape(document.location.pathname.toString());
3355matches = pathN.match(/(\w+)\.(in|near|compare)\.([\,a-zA-Z0-9\ _-]+)[\/]?$/);
3356detailMatches = pathN.match(/(\w+)\.detail\.(.*)$/);
3357if (detailMatches !== null && detailMatches.length > 1)
3358{
3359    matches = detailMatches;
3360}
3361
3362if (matches !== null && matches.length > 1)
3363{
3364    var subfolder = '';
3365    path[3] = 'li';
3366    path[4] = 'li/'+subfolder;
3367    path[5] = 'li/'+subfolder+'/'+matches[1];
3368    path[6] = 'li/'+subfolder+'/'+matches[1];
3369}
3370if (pathN === '/')
3371{
3372    path[3] = 'homepage';
3373    path[4] = 'homepage';
3374    path[5] = 'homepage';
3375    path[6] = 'homepage';
3376}
3377
3378
3379function filterArray(arr) {
3380    var retArr = [];
3381    $.each(arr, function(i, part) {
3382        if (part !== '') {
3383            retArr.push(part);
3384        }
3385    });
3386
3387    return retArr;
3388}
3389</script>
3389
3390
3391
3392<script type="text/javascript">
3393var known = $.cookie('__siren') ? '1' : '0' ;
3394</script>
3394
3395
3396<script type="text/javascript">
3397
3398var known = $.cookie('__siren') ? '1' : '0' ;
3399var ref = document.referrer;
3400var parser = document.createElement('a');
3401parser.href = ref;
3402
3403// values in the below MUST be strings
3404var targeting = {
3405    'context': 'Business',
3406    'al': 'm',
3407    'domain': 'www.kilburntimes.co.uk',
3408    'isLanding': 'no',
3409    'top_path': 'news',
3410    'weather': ''.toLowerCase(),
3411    'jbsjs': ''.toLowerCase(),
3412    'site_search': '',
3413    'bmd_cat': '',
3414    'wt': '',
3415    'cmpid': qs.get('cmpid'),
3416    'refdm': parser.hostname,
3417    'k': known,
3418    'g':  'u' ,
3419    'a':  '0' ,
3420    'topic': 'Aldi',
3421    'publication': '',
3422    'primary_tag_future_use': 'Aldi',
3423    'site': (isMobile()) ? 'mobile': 'desktop',
3424    'r': data_layer.user.subscription_plan !== ''
3425        ? '2'       // 2 = subscribed
3426        : data_layer.user.is_logged_in == 'yes'
3427            ? '1'   // 1 = registered
3428            : '0',  // 0 = anonymous
3429};
3430
3431if (!usePrebid) {
3432    targeting.adrq = 'adl';
3433}
3434
3435if (data_layer.video.exists === 'yes') {
3436    targeting.ptype = 'video';
3437}
3438
3439if ($.cookie('isMeterExpired') === 'yes' && window.data_layer.article.is_article) {
3440    var articleContentLevel = parseInt(window.data_layer.article.content_level, 10) || 0; // account for NaN
3441    if (articleContentLevel !== 0 && window.data_layer.article.content_level_open_access === 'no') {
3442        targeting.ao = 'y';
3443    }
3444}
3445
3446if ($.cookie('_sp_enable_dfp_personalized_ads') === 'true') {
3447    targeting.dfpcsnt = 'yes';
3448} else if ($.cookie('_sp_enable_dfp_personalized_ads') === 'false') {
3449    targeting.dfpcsnt = 'no';
3450} else {
3451    targeting.dfpcsnt = 'none';
3452}
3453
3454if (typeof MobileDetect !== "undefined") {
3455    targeting.canbb = (window.screen.width > 960) ? 'y' : 'n';
3456}
3457
3458if (typeof module_targeting === "object") {
3459    targeting = addToTargeting(targeting, module_targeting);
3460}
3461
3462// $.each(apData, function (k, v) {
3463//     targeting[k] = v;
3464// });
3465
3466// if (typeof gs_channels !== 'undefined') {
3467//     targeting.gs_channels = gs_channels;
3468// }
3469
3470targeting = addToTargeting(targeting, data_layer_helper.homesData);
3471
3472targeting.article_id = '26570077';
3473var googleSiteName = 'www.kilburntimes.co.uk';
3474var googlePath = '/news/';
3475
3476var googleNetworkCode = 154725070;
3477
3478var googleChildNetworkCode = 22694024870;
3479var googleId = '/'+googleNetworkCode + ',' + googleChildNetworkCode + '/' + googleSiteName+googlePath;
3480
3481if (googleId.charAt(googleId.length - 1) === '/') {
3482    googleId = googleId.slice(0, -1);
3483}
3484
3485var googletag = googletag || {};
3486googletag.cmd = googletag.cmd || [];
3487
3488googletag.cmd.push(function () {
3489    var _YB = _YB || {
3490        ab: function () {
3491            return _YB.dool ? "b" : "a" + Math.floor(Math.random() * 10);
3492        },
3493        dool: Math.random() >= 0.1,
3494    };
3495    var yb_ab;
3496    if (Math.random() <= 0.9) {
3497        yb_ab = _YB.ab();
3498    } else {
3499        yb_ab = "c";
3500    }
3501    googletag.pubads().setTargeting("yb_ab", yb_ab);
3502});
3503
3504googletag.cmd.push(function() {
3505    googletag.pubads().set("adsense_background_color", "FFFFFF");
3506    googletag.pubads().setTargeting('rfs', "0");
3507    $.each(targeting, function (key, value) {
3508
3509        // No real value so exclude
3510        if (value === 0 || value === '' || value === null) {
3511            return;
3512        }
3513        googletag.pubads().setTargeting(key, value);
3514    });
3515
3516});
3517
3518if (isMobile() && '' === 'top') {
3519    $('.desktop-standard-leaderboard').remove();
3520    $('.mobile-top-leaderboard').show();
3521    $('#DFP_top_leaderboard_mobile').attr('id', 'DFP_top_leaderboard');
3522} else {
3523    $('.mobile-top-leaderboard').remove();
3524}
3525// Ads
3526var adUnits = [];
3527
3528hideAdsByScreensize();
3529
3530if (blackListAds.length > 0) {
3531    removeBlacklistAds(blackListAds);
3532}
3533
3534$.each(unfilteredAdUnits, function (i, unit) {
3535    removeWhitelistAds(unit);
3536});
3537
3538// set up a holder for all the adverts so we can do things with them later
3539var dfpHolder = {};
3540// the set up code
3541googletag.cmd.push(function() {
3542    $.each(adUnits, function(i, data) {
3543
3544        // check if the dom exists
3545        if ($('#'+data.domName).length === 0) {
3546            return;
3547        }
3548
3549        var dfp = null;
3550
3551        if (data.slotType === 'standard')
3552        {
3553            // get the correct sizes, using the alternate_sizes if they exist and we are on a mobile site
3554            var sizes = data.sizes;
3555            if (data.alternate_mobile_size && isMobile()) {
3556                sizes = data.alternate_mobile_size;
3557            }
3558            // push this ad slot through
3559            dfp = googletag.defineSlot(googleId, sizes, data.domName)
3560                .addService(googletag.pubads())
3561                .setTargeting("position", data.positionName)
3562                .setCollapseEmptyDiv(data.collapseContainer);
3563            // check if we have an array of targets, and assign them as a companion if we do
3564            if (data.targets instanceof Array && data.targets.length > 0 ) {
3565                dfp.setTargeting('companion', data.targets);
3566            }
3567
3568        }
3569        else if (data.slotType === 'outofpage')
3570        {
3571            dfp = googletag.defineOutOfPageSlot(googleId, data.domName)
3572                .addService(googletag.pubads())
3573                .setTargeting("position", data.positionName)
3574                .setCollapseEmptyDiv(data.collapseContainer);
3575            // check if we have an array of targets, and assign them as a companion if we do
3576            if (data.targets instanceof Array && data.targets.length > 0 ) {
3577                dfp.setTargeting('companion', data.targets);
3578            }
3579        }
3580
3581        // store
3582        dfpHolder[data.domName] = dfp;
3583
3584    });
3585
3586    if (adLight === true) {
3587        googletag.pubads().setCategoryExclusion('adlight');
3588        // var adlightexplanation = '<div class="adlight-explanation">I\'m a subscriber <a href="#" class="adlight-explanation-link">Why am I seeing this advert?</a></div>';
3589        // if ($('#DFP_premium_mpu').length > 0) {
3590        //     $('#DFP_premium_mpu').before(adlightexplanation);
3591        // }
3592
3593        // if ($('#DFP_standard_mpu_1').length > 0) {
3594        //     $('#DFP_standard_mpu_1').before(adlightexplanation);
3595        // }
3596
3597        // var imageIds = [11497497, 11497535, 11497536, 11497541, 11497542, 11497545, 11497546, 11497547];
3598        // var imageId = imageIds[Math.floor(Math.random() * imageIds.length)];
3599        // $('.adlight-explanation-link').click(function(e) {
3600        //     e.preventDefault();
3601        //     $('#adlight-explanation-modal-image').attr('src', '/resources/images/' + imageId + '/').show();
3602        //     $('#adlight-explanation-modal').modal();
3603        // });
3604    }
3605
3606    // send the request
3607    googletag.pubads().enableSingleRequest();
3608
3609    googletag.enableServices();
3610
3611    googletag.pubads().addEventListener('slotVisibilityChanged', function(event) {
3612        if (event.slot.getResponseInformation().creativeTemplateId === 828288 ||
3613            event.slot.getResponseInformation().creativeTemplateId === 12383216 ) {
3614            console.log('DFP: Magic template id detected, not refreshing');
3615            return;
3616        }
3617        var slotName = '';
3618        $.each(dfpHolder, function (a, e) {
3619            if (e == event.slot) {
3620                slotName = a;
3621            }
3622        });
3623        if (typeof window.advertisingTimer !== 'undefined') {
3624            var perc = event.inViewPercentage;
3625            window.advertisingTimer.timer(slotName, perc);
3626        }
3627    });
3628});
3629
3630// the display code
3631$.each(adUnits, function(i, data) {
3632
3633    // check if the dom exists
3634    if ($('#'+data.domName).length === 0) {
3635        return;
3636    }
3637
3638    if (data.domName === 'DFP_interstitial_mpu') {
3639        if (!inter.checkVisit()) {
3640            return;
3641        }
3642    }
3643
3644    // are we manually loading it?
3645    if ($('#'+data.domName).attr('data-manual-loading') === "yes") {
3646        return;
3647    }
3648    // for mobile, we check if the dom element has the data-delay-loading attribute set to "1"
3649    else if ($('#'+data.domName).attr('data-delay-loading') === "yes") {
3650
3651        // load it
3652        $('#'+data.domName).appear();
3653        $(document.body).on('appear', '#'+data.domName, function(e, allElement) {
3654
3655            // don't call it many times
3656            if ($(this).attr('data-processed') === 'yes') {
3657                return;
3658            }
3659
3660            $(this).attr('data-processed', 'yes');
3661
3662            // display the google ad
3663            googletag.display(data.domName);
3664            googletag.pubads().refresh([dfpHolder[data.domName]]);
3665        });
3666        return;
3667    }
3668    googletag.cmd.push(function() {
3669        googletag.display(data.domName);
3670    });
3671});
3672window.googleComplete = performance.now();
3673window.googleReady = true;
3674
3675// METHODS
3676function addToTargeting(targeting, data) {
3677    if (!data) {
3678        return targeting;
3679    }
3680    $.each(data, function (key, value) {
3681        if (!value) {
3682            return;
3683        }
3684        targeting[key] = value;
3685    });
3686    return targeting;
3687}
3688
3689function addAdSlot(slotName, slot, initHidden) {
3690    console.log("Add ad slot called for %s %s", slotName, slot);
3691    // check if item already exists
3692    if (typeof window.dfpHolder[slotName] !== 'undefined') {
3693        return;
3694    }
3695
3696    if (window.adLight === true) {
3697        return;
3698    }
3699    window.googletag.cmd.push(function() {
3700        var dfp = googletag.defineSlot(window.googleId, [[300,250]], slotName)
3701            .setTargeting('position', [slot])
3702            .addService(googletag.pubads());
3703        window.dfpHolder[slotName] = dfp;
3704
3705        if (!initHidden) {
3706            googletag.pubads().refresh([dfp]);
3707
3708            return;
3709        }
3710    });
3711}
3712
3713function hideAdsByScreensize() {
3714    if (window.screen.width < 728 && $('#BlockArticleContainer').length > 0) {
3715        if ('1187' === '1147') {
3716            $('#DFP_out_of_page').remove();
3717        } else {
3718            $('#DFP_premium_mpu').remove();
3719        }
3720        $('#DFP_on_scroll').remove();
3721    } else if (window.screen.width < 728 &&
3722        ( $(".article-grid__uber[data-top-stories-articles='7'][data-news-list-articles='9']").length > 0 ||
3723        $(".article-grid__uber[data-top-stories-articles='7'][data-news-list-articles='12']").length > 0  ||
3724        $(".article-grid__uber[data-top-stories-articles='7'][data-news-list-articles='18']").length > 0  ||
3725        $(".article-grid__uber[data-top-stories-articles='7'][data-news-list-articles='24']").length > 0 )
3726    ) {
3727        const adElement = document.querySelector('#high_vis_container');
3728        $('.omnicard[data-position="5"]').after(adElement);
3729    }
3730
3731    if ('1187' === '1147' && window.screen.width > 450) {
3732        $('#DFP_bottom_leaderboard').remove();
3733    }
3734
3735    if ('1187' === '1147' && window.screen.width < 728) {
3736        $('#DFP_top_leaderboard').remove();
3737    }
3738
3739    if ('1187' === '1147') {
3740        $('#DFP_teads').remove();
3741        $('#DFP_out_of_page').remove();
3742    }
3743
3744    if ($('#comments-in-page').length === 1 && window.screen.width > 450) {
3745        $('#DFP_top_leaderboard').parent().remove();
3746        $('#DFP_bottom_leaderboard').parent().remove();
3747        // $('#DFP_standard_mpu_1').parent().remove();
3748    }
3749}
3750
3751function removeBlacklistAds(blackListAds) {
3752    $.each(blackListAds, function(i, name) {
3753        removeAdContainer(name);
3754    });
3755}
3756
3757function removeWhitelistAds(unit) {
3758    // VAST (video) ad units never get displayed in here.
3759    if (unit.isVast) {
3760        return;
3761    }
3762
3763    // if we have an ad-light experience
3764    if (whiteList === true) {
3765        if (typeof whiteListAds[unit.positionName] === 'undefined') {
3766            removeAdContainer(unit.domName)
3767            return;
3768        }
3769    }
3770
3771    adUnits.push(unit);
3772}
3773
3774function removeAdContainer(name) {
3775    const element = document.getElementById(name);
3776    // doesn't exist? exit
3777    if(!element) {
3778        return;
3779    }
3780
3781    const parent = element.parentElement;
3782    if (parent && parent.classList.contains('block-bottom-margin')) {
3783        // if immediate parent contains block-bottom-margin as a class, remove the parent as well
3784        parent.classList.remove('block-bottom-margin');
3785    }
3786    if (parent && parent.classList.contains('mar-leaderboard--top')) {
3787        // in case of leaderboard, remove as has min-height
3788        parent.remove();
3789        return;
3790    }
3791
3792    if (parent && parent.classList.contains('mar-leaderboard--bottom')) {
3793        // in case of article ad container, remove as has min-height
3794        parent.remove();
3795        return;
3796    }
3797
3798    element.remove();
3799}
3800</script>
3800
3801
3802
3803<script src="/resources/responsive-static/build/mds/js/global.js?cb=mkW8NyPe"></script>
3803
3804
3805
3806
3807
3808
3809<script src="/__siren/"></script>
3809
3810
3811
3812<script src="//uatu.newsquestdigital.co.uk/collector.php?article_id=26570077&site_id=1187"></script>
3812
3813<!--
3813<script src="//uatu.newsquestdigital.co.uk/recommender-json-2.php?article_id=26570077&site_id=1187"></script>
3813 -->
3814
3815
3816<script type="text/javascript">
3817    var s_account="newsquestgroupprod";
3818</script>
3818
3819
3820<script type="text/javascript" src="/resources/responsive-static/vendor/adobe/VisitorAPI.js?cb=mkW8NyPe"></script>
vendor: 1 bytes, line 3820
3820
3821<script type="text/javascript" src="/resources/responsive-static/vendor/adobe/omniture.js?cb=mkW8NyPe"></script>
3821
3822
3823<script type="text/javascript">
3824
3825function getOmniturePath() {
3826    var path = '';
3827    if ($('#gallery-base-url').length === 1) {
3828        path = $('#gallery-base-url').val();
3829    }
3830    else {
3831        path = window.location.pathname;
3832    }
3833    return path;
3834}
3835
3836function getPositionFromCookie() {
3837    const cookieName = 'tracking_block_index';
3838
3839    const ref = document.cookie
3840        .split('; ')
3841        .find(row => row.startsWith(`${cookieName}=`))
3842        ?.slice(cookieName.length + 1);
3843
3844    document.cookie = `${cookieName}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/; domain=${window.data_layer.site.cookie_domain}`;
3845
3846    return ref ? decodeURIComponent(ref) : undefined;
3847}
3848function getRefFromCookie() {
3849    const cookieName = 'tracking_block';
3850
3851    const ref = document.cookie
3852        .split('; ')
3853        .find(row => row.startsWith(`${cookieName}=`))
3854        ?.split('=')[1];
3855
3856    // Remove the cookie
3857    document.cookie = `${cookieName}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/; domain=${window.data_layer.site.cookie_domain}`;
3858
3859    return ref;
3860}
3861
3862function getOmnitureTrackingFromCookie(key, preExistingValue) {
3863    var ref = $.cookie('o-' + key);
3864    if(typeof(ref) === 'undefined') {
3865    	ref  = preExistingValue
3866    } else {
3867    	ref = decodeURIComponent(ref);
3868    	$.removeCookie('o-' + key, {
3869            path: '/',
3870            domain: window.data_layer.site.cookie_domain,
3871        });
3872    }
3873    return ref;
3874}
3875
3876function getValidatedAPList() {
3877
3878    var validList = [1100, 1101, 1002, 1006, 1010, 1014, 1018, 1022, 1200, 1202, 1205, 1300, 1602, 1605, 1608, 1612, 1616, 1500, 1503, 1507, 1509, 1512, 1402, 1406, 1409, 1412, 1416, 14331, 14333, 14335, 14336, 14339, 14342, 14344, 14345, 14346, 14350, 14351, 14353, 14359, 14366, 14370, 14371, 14377, 14388, 14394, 14396, 14399, 14407, 14221, 14423, 15679, 15681, 15682, 15683, 15684, 15686, 15687, 15688, 15975];
3879
3880    var data = getAudienceProjectTargetingData();
3881    if (!data || !data.ap_x) {
3882        return '';
3883    }
3884
3885    validData = [];
3886    $.each(data.ap_x, function(i, td) {
3887        if ($.inArray(parseInt(td, 10), validList) !== -1) {
3888            validData.push(td);
3889        }
3890    });
3891
3892    return validData.join(',');
3893}
3894
3895path = document.location.href.split("/");
3896
3897var qs = new URLSearchParams(window.location.search);
3898
3899var prop30 = qs.get('lp');
3900var prop43 = qs.get('ref');
3901var pType="BlockArticleModule"
3902
3903if (pType === 'BlockArticleModule' || pType === 'NationalNewsModule' || pType === 'BlockWhatsOnModule') {
3904    pType = 'ArticleModule';
3905}
3906
3907for(x=4; x<7; x++)
3908{
3909    if (typeof path[x] == 'undefined')
3910    {
3911        path[x] = '';
3912    }
3913    if(path[x] == "" || (pType == "ArticleModule" && path[x].match(/[0-9]+\./)) || (path[x].indexOf('?') > -1))
3914    {
3915        path[x] = path[x-1];
3916    }
3917    else
3918    {
3919        path[x] = path[x-1] + "/" + path[x];
3920    }
3921    path[x] = path[x].replace(/\/undefined/g,"");
3922}
3923pathN= unescape(document.location.pathname.toString());
3924matches = pathN.match(/(\w+)\.(in|near|compare)\.([\,a-zA-Z0-9\ _-]+)[\/]?$/);
3925detailMatches = pathN.match(/(\w+)\.detail\.(.*)$/);
3926if (detailMatches !== null && detailMatches.length > 1)
3927{
3928    matches = detailMatches;
3929}
3930
3931if (matches !== null && matches.length > 1)
3932{
3933    var subfolder = '';
3934    path[3] = 'li';
3935    path[4] = 'li/'+subfolder;
3936    path[5] = 'li/'+subfolder+'/'+matches[1];
3937    path[6] = 'li/'+subfolder+'/'+matches[1];
3938}
3939if (pathN === '/')
3940{
3941    path[3] = 'homepage';
3942    path[4] = 'homepage';
3943    path[5] = 'homepage';
3944    path[6] = 'homepage';
3945}
3946
3947
3948/* You may give each page an identifying name, server, and channel on
3949the next lines. */
3950s.pageName="(www) "+getOmniturePath();
3951s.pageName = s.pageName.toLowerCase();
3952s.server="martini";
3953s.channel="";
3954s.pageType="";
3955s.prop1= qs.get('search');
3956s.prop2="";
3957s.prop3=document.title;
3958s.prop4="26570077";
3959s.prop5="BlockArticleModule"; /* get from Martini */
3960s.prop6=path[3].toLowerCase();
3961s.prop7=path[4].toLowerCase();
3962s.prop8=path[5].toLowerCase();
3963s.prop9=path[6].toLowerCase();
3964s.prop10="";
3965s.prop15="none|use author profile|bridget galton";
3966s.prop16=path[2].toLowerCase();
3967s.prop17="";
3968s.prop18="Martini";
3969s.prop19="1";
3970s.prop20 = s.getPreviousValue(s.pageName, 'gpv_pn');
3971s.prop42 = "";
3972s.prop53 = 'standard';
3973s.prop54 = '';
3974s.prop55 = '';
3975s.prop56 = "BAM Standard Article";
3976s.prop57 = ($('[data-name="Feature Article Block A"]').length > 0) ? 'Enabled' : 'Disabled';
3977s.prop58 = document.querySelector('[data-name="Feature Article Block B"]')?.dataset.variant;
3978s.prop59 = getRefFromCookie();
3979s.prop60 = getPositionFromCookie();
3980s.prop73 = document.cookie.split('; ').find(row => row.startsWith('adtiming='))?.split('=')[1] || null;
3981
3982var eVar67 = [];
3983
3984if ($.cookie('consentUUID')) {
3985    eVar67.push('yes');
3986} else {
3987    eVar67.push('no');
3988}
3989if ($.cookie('_sp_enable_dfp_personalized_ads') === 'true') {
3990    eVar67.push('yes');
3991} else if ($.cookie('_sp_enable_dfp_personalized_ads') === 'false') {
3992    eVar67.push('no');
3993} else {
3994    eVar67.push('none');
3995}
3996
3997if ($.cookie('_sp_legitimate_interests') === 'true') {
3998    eVar67.push('yes');
3999} else if ($.cookie('_sp_legitimate_interests') === 'false') {
4000    eVar67.push('no');
4001} else {
4002    eVar67.push('none');
4003}
4004
4005//if ($.cookie('euconsent')) {
4006//    eVar67.push($.cookie('euconsent'));
4007//} else {
4008//    eVar67.push('none');
4009//}
4010
4011s.eVar67 = eVar67.join(',');
4012// console.log('ADB: setting eVar67 to %s', eVar67.join(','));
4013
4014if ($.cookie('prev-tcf-v2')) {
4015    // console.log('ADB: Setting eVar68 to ', $.cookie('prev-tcf-v2'));
4016    s.eVar68 = $.cookie('prev-tcf-v2');
4017}
4018
4019if (typeof iabNames !== 'undefined') {
4020    s.prop29 = iabNames.join(',');
4021} else if (typeof iabIds !== 'undefined') {
4022    s.prop29 = iabIds.join(',');
4023}
4024
4025if (s.prop20 && s.prop20 !== 'no value') {
4026    s.prop21 = s.getPercentPageViewed();
4027} else {
4028    s.prop21 = '';
4029}
4030
4031if (typeof __siren !== 'undefined') {
4032    s.eVar27 = __siren;
4033}
4034
4035s.prop22 = s.getDaysSinceLastVisit('s_lv');
4036
4037
4038s.prop43=getOmnitureTrackingFromCookie('ref', prop43);
4039s.prop25 = 'Business'
4040
4041s.prop27 = '';
4042s.prop28='1802'
4043s.prop30 = getOmnitureTrackingFromCookie('prop30', prop30);
4044s.linkInternalFilters="javascript:,kilburntimes.co.uk,fish4.co.uk,adsys.newsquest.co.uk,www.exchangeandmart.co.uk,www.communigate.co.uk,"
4045s.eVar61=(new Date()).toLocaleDateString("en-GB");
4046/* s.eVar62=(new Date()).toLocaleDateString("en-GB"); */
4047
4048s.eVar63 = "+1";
4049/* s.eVar64 = "+1"; */
4050
4051s.eVar60 = "1,metered,no";
4052
4053s.prop61 = 'news';
4054s.prop62 = '';
4055s.prop63 = '25;4591;18844;29098';
4056s.prop64 = '';
4057
4058s.prop66 = '';
4059s.prop66 += ($('#inArticleAd').length > 0) ? "y;" : "n;";
4060s.prop66 += ($('#inArticleAd-1').length > 0) ? "y;" : "n;";
4061s.prop66 += ($('#inArticleAd-2').length > 0) ? "y;" : "n;";
4062s.prop66 += ($('#inArticleAd-3').length > 0) ? "y;" : "n;";
4063s.prop66 += ($('#inArticleAd-4').length > 0) ? "y;" : "n;";
4064s.prop66 += ($('#inArticleAd-5').length > 0) ? "y;" : "n;";
4065s.prop66 += ($('#inArticleAd-6').length > 0) ? "y;" : "n;";
4066s.prop66 += ($('#inArticleAd-7').length > 0) ? "y;" : "n;";
4067s.prop66 += ($('#inArticleAd-8').length > 0) ? "y"  : "n";
4068s.prop66 += ($('#inArticleAd-9').length > 0) ? "y"  : "n";
4069s.prop66 += ($('#inArticleAd-10').length > 0) ? "y"  : "n";
4070
4071s.eVar107 = '2';
4072s.eVar108 = '3124';
4073
4074
4075
4076s.eVar104 = 'Business';
4077
4078
4079
4080s.prop56 = "BAM Standard Article";
4081
4082
4083/* Article-site-cloning data */
4084s.eVar90 = window.data_layer.article.parent_originating_site_id;
4085s.eVar91 = window.data_layer.article.originating_article_id;
4086s.eVar92 = window.data_layer.article.is_original_to_site;
4087s.eVar95 = window.data_layer.site.using_piano_id;
4088s.eVar106 = 'No AI or automation';
4089
4090s.eVar109 = '';
4091
4092/* Uber block article counts */
4093s.eVar93 = window.data_layer.page.top_stories_article_count + ':' + window.data_layer.page.interstitial_article_count + ':' + window.data_layer.page.news_stories_article_count;
4094
4095/* Conversion Variables */
4096s.campaign=""
4097s.state=""
4098s.zip=""
4099s.events=""
4100s.products=""
4101s.purchaseID=""
4102s.eVar14=""
4103try {
4104    s.list3=getValidatedAPList();
4105} catch (e) {
4106    // do nothing
4107}
4108
4109
4110
4111
4112// Initial fotorama tracking.
4113var moduleType = null;
4114if (s.prop5 === 'ArticleModule' || s.prop5 == 'PropertyModuleReplacement' || s.prop5 === 'BlockArticleModule') {
4115    moduleType = 'article';
4116} else if (s.prop5 === 'PictureGalleryModule') {
4117    moduleType = 'gallery';
4118}
4119
4120if ($('#comments-in-page').length === 1) {
4121    moduleType = 'comments';
4122}
4123
4124if (moduleType === 'article' || moduleType === 'gallery' || moduleType === 'comments') {
4125    var imagePath = '';
4126
4127    if ($('.fotorama').length > 0) {
4128        // Get the first Fotorama image.
4129        try {
4130            var el = $('.fotorama').data('fotorama').data[0].html;
4131            var url = $(el).find('div').css('background-image');
4132            imagePath = url.replace('url(','').replace(')','').replace(/\"/gi, "");
4133        } catch (e) {
4134        }
4135    } else {
4136        // If there's just one image (i.e. it's not a gallery), find its path.
4137        var imagePathSingle = $('#mainImage').attr('src');
4138        if (typeof imagePathSingle !== 'undefined') {
4139            imagePath = imagePathSingle.split('.')[0] + '/';
4140        }
4141    }
4142    var imageParts = imagePath.split('/');
4143    if (imageParts.length > 1) {
4144        s.eVar37 = imageParts[imageParts.length - 2];
4145        s.prop37 = imageParts[imageParts.length - 2];
4146        s.events = s.apl(s.events, 'event7', ',', 2);
4147    }
4148    s.eVar36 = moduleType;
4149    s.prop36 = moduleType;
4150}
4151
4152
4153
4154// Education pages.
4155if (s.prop5 === 'ResponsiveEducationModule') {
4156    // School profile page.
4157    if ($('#eduOverview').length > 0) {
4158        s.eVar40 = $('#eduOverview').data('school-status');
4159        s.prop40 = s.eVar40;
4160        s.prop41 = 'edu-' + $('#eduOverview').data('school-urn');
4161        s.prop46 = $('#town').text();
4162    }
4163
4164    // Comparison page.
4165    if ($('#eduComparisonTable').length > 0) {
4166        s.list1 = '';
4167    }
4168
4169    // Results page.
4170    if ($('.school-results').length > 0) {
4171        s.list1 = '';
4172
4173        // Track the search criteria.
4174        s.prop44 = '';
4175        s.prop45 = "".toLowerCase();
4176        s.prop46 = "".toLowerCase();
4177        s.prop49 = '';
4178        s.prop50 = '';
4179        s.prop51 = '';
4180        s.eVar2 = s.prop50;
4181
4182        var newSearch = false;
4183        if (newSearch) {
4184            s.events = s.apl(s.events, 'event17', ',', 1);
4185        }
4186    }
4187}
4188
4189// Notices Module
4190if (s.prop5 === 'NewsquestModulesNoticesModule') {
4191    // Notices Find page.
4192    if (s.pageName.includes('notices/find')) {
4193        s.pageName = '(www) /notices/find/';
4194        s.eVar50 = '';
4195        const noticesURL = new URL(window.location.href);
4196        const noticesParams = new URLSearchParams(noticesURL.search);
4197
4198        s.eVar1 = noticesParams.has('keyword') ? noticesParams.get('keyword') : 'None';
4199        s.eVar51 = noticesParams.has('sort') ? noticesParams.get('sprt') : 'best';
4200        s.eVar52 = noticesParams.has('p') ? (parseInt(noticesParams.get('p'), 10) + 1) : 1;
4201        s.eVar53 = noticesParams.has('type') ? noticesParams.get('type') : 'All';
4202        s.eVar54 = noticesParams.has('nearby') ? noticesParams.get('nearby') : 'no';
4203        s.eVar55 = noticesParams.has('daterange') ? noticesParams.get('daterange') : 'last-month';
4204
4205        if (noticesParams.has('sort')) {
4206            switch (noticesParams.get('sort')) {
4207                case 'date_asc':
4208                    s.eVar51 = 'oldest';
4209                    break;
4210                case 'date_desc':
4211                    s.eVar51 = 'newest';
4212                    break;
4213                case 'best_match':
4214                    s.eVar51 = 'best';
4215                    break;
4216                default:
4217                    s.eVar51 = noticesParams.get('sort');
4218                    break;
4219            }
4220        }
4221
4222        // Concatenate all search params into eVar44
4223        if (noticesParams.size > 0) {
4224            const searchParams = new URL(window.location.href).searchParams;
4225            s.eVar44 = '';
4226            searchParams.forEach((value, key) => {
4227                s.eVar44 += `${key}=${value},`;
4228            });
4229        } else {
4230            s.eVar44 = '';
4231        }
4232
4233        // Adobe Search Event triggering
4234        const setNoticePaginationClicked = (value) => {
4235            localStorage.setItem("isNoticePaginationClicked", value);
4236        };
4237
4238        const noticeSearchInput = document.getElementById("notices-search");
4239        const noticeSearchBtn = document.getElementById("notice-search-find");
4240        const noticePaginationBtns = document.querySelectorAll('.notice-find__pagination .pagination-btn');
4241        const noticePaginationBtnPrev = document.querySelector('.pagination-btn-previous svg');
4242        const noticePaginationBtnNext = document.querySelector('.pagination-btn-next svg');
4243
4244        noticeSearchInput?.addEventListener('change', () => setNoticePaginationClicked('false'));
4245        noticeSearchBtn?.addEventListener('click', () => setNoticePaginationClicked('false'));
4246
4247        noticePaginationBtns.forEach(btn => {
4248            btn.addEventListener('click', () => setNoticePaginationClicked('true'));
4249        });
4250
4251        noticePaginationBtnPrev?.addEventListener('click', () => setNoticePaginationClicked('true'));
4252        noticePaginationBtnNext?.addEventListener('click', () => setNoticePaginationClicked('true'));
4253
4254        if (localStorage.getItem("isNoticePaginationClicked") === 'false') {
4255            s.events = s.apl(s.events, 'event1', ',', 1);
4256        }
4257    }
4258
4259    if (/notices\/funeral-directors\/(\d+)\.([a-zA-Z0-9-?]+)?/.test(s.pageName)) {
4260        s.pageName = '(www) /notices/funeral-director/';
4261        s.eVar41 = '';
4262    }
4263}
4264
4265if (s.prop5 === 'NewsquestModulesNoticeModule') {
4266    s.eVar41 = '';
4267    const type = window.announcement_data?.details?.type || '';
4268    const subCategory = window.announcement_data?.details?.sub_category || '';
4269    s.eVar40 = type !== 'Tribute' ? type : `${type} - ${subCategory}`;
4270    s.eVar42 = window.announcement_data?.details?.id || '';
4271    s.eVar107 = '2';
4272    s.eVar119 = '';
4273    s.eVar120 = '';
4274    s.eVar2 = "(www) /notice/";
4275}
4276
4277//New Property module
4278if (s.prop5 === 'ResponsivePropertyModule') {
4279    /*
4280        Use prop42 for single and list pages, for list pages use hyphen separate lists of id's
4281    */
4282    
4283    
4284    //Property's all over the place (homepage, searches etc - HOM-133
4285
4286    //Property Detail - HOM-131, HOM-134, HOM-130
4287
4288    //Contact us submissions - HOM-137
4289    if($('#propertyModule.agent-details').length > 0) {
4290        //Add a click handler for a.contact-detail
4291    }
4292
4293
4294}
4295
4296// is their a video tag on the page?
4297if ($('.exco-embed').length > 0) {
4298    console.log('VID: setting tracking for event50');
4299    s.events = s.apl(s.events, 'event50', ',', 1);
4300}
4301
4302var foundAutoPlayVid = false;
4303$('.jw-outer').each(function (a, domEle) {
4304    if ($(this).data('multimedia-block') === 'no' && !foundAutoPlayVid) {
4305        console.log('VID: setting tracking for event51');
4306        s.events = s.apl(s.events, 'event51', ',', 1);
4307        foundAutoPlayVid = true;
4308    }
4309});
4310
4311
4312
4313
4314
4315
4316
4317s.eVar66 = 'Ad-Full';
4318s.eVar114 = '';
4319
4320
4321
4322    // var eVar65Copy = s.getValOnce(s.eVar65, "ev65", 0);
4323    // if (eVar65Copy !== '' && s.prop20.indexOf("/my/subscription/activate/") > -1) {
4324    //     s.events = s.apl(s.events, "event4", ",", 1); // Set the subscription counter event.
4325    //     s.events = s.apl(s.events, "purchase", ",", 1); // Set the purchase event.
4326    //     s.products = "Subscription : Metered Access;" + eVar65Copy + ";1;";
4327    //     s.purchaseID = "";
4328    // }
4329
4330
4331if(qs.get('action') === 'success' && (s.prop5 === 'ArticleModule' || s.prop5 === 'BMDModule' || s.prop5 === 'BlockArticleModule')) {
4332    s.events=s.apl(s.events,'event9',',',2)
4333}
4334/* Hierarchy Variables */
4335s.hier1="newsquest," + "" + ",www.kilburntimes.co.uk," + path[6].replace(/\//,",");
4336
4337if (typeof MartiniFotorama !== 'undefined') {
4338    MartiniFotorama.loadOmniture(s);
4339}
4340s.prop39 = "0";
4341
4342
4343
4344// Tracking usage of Bytecast audio embeds in articles.
4345s.eVar82 = 'no';
4346s.eVar83 = '';
4347
4348    console.log('ADB: starting');
4349    console.log('Google Bot Browser: ', window.isRobot.googleBot()); //TODO Remove this log after QA
4350
4351// Tracking of Commenting Registration FLow
4352if (s.prop5 !== 'BlockArticleModule') {
4353    const storedAdobeDimensions = sessionStorage.getItem('nq_adobe_tracking_article_dimensions');
4354    if (storedAdobeDimensions) {
4355        const storedAdobeDimensionObj = JSON.parse(storedAdobeDimensions);
4356        s.eVar10 = storedAdobeDimensionObj.eVar10;
4357        s.eVar15 = storedAdobeDimensionObj.eVar15;
4358        s.eVar22 = storedAdobeDimensionObj.eVar22;
4359        s.eVar23 = storedAdobeDimensionObj.eVar23;
4360        s.eVar24 = storedAdobeDimensionObj.eVar24;
4361        s.eVar25 = storedAdobeDimensionObj.eVar25;
4362        s.eVar28 = storedAdobeDimensionObj.eVar28;
4363        s.eVar60 = storedAdobeDimensionObj.eVar60;
4364        s.eVar104 = storedAdobeDimensionObj.eVar104;
4365        s.eVar106 = storedAdobeDimensionObj.eVar106;
4366        s.eVar107 = storedAdobeDimensionObj.eVar107;
4367        s.eVar108 = storedAdobeDimensionObj.eVar108;
4368        s.prop63 = storedAdobeDimensionObj.prop63;
4369    }
4370}
4371
4372if (window.location.href.includes("/user/create-account/commenting/")) {
4373    s.eVar2 = '(www) /user/create-account/commenting/';
4374}
4375
4376/************* DO NOT ALTER ANYTHING BELOW THIS LINE ! **************/
4377if (qs.get('callback') !== 'in' && !window.isRobot.googleBot()) {
4378    var s_code=s.t();
4379    var backupAdobe = s;
4380
4381    if(s_code)document.write(s_code)
4382}
4383
4384// Storing the visiting dimensions
4385if (s.eVar10 || s.eVar22 || s.eVar23 || s.eVar24) {
4386    const adobeTrackingVisitingDimensions = {
4387        eVar10: s.eVar10,
4388        eVar22: s.eVar22,
4389        eVar23: s.eVar23,
4390        eVar24: s.eVar24,
4391    }
4392    sessionStorage.setItem('nq_adobe_tracking_visiting_dimensions', JSON.stringify(adobeTrackingVisitingDimensions));
4393}
4394
4395//--></script>
4395
4396<!-- End SiteCatalyst code version: H.19.3. -->
4397
4398
4399
4400
4401    
4401<script src="/resources/responsive-static/build/mds/js/article.js?cb=mkW8NyPe"></script>
4401
4402
4403
4404<script>
4405    if ('' !== '') {
4406        setTimeout(function() {
4407            data_layer_helper.loadScript(
4408                "/resources/responsive-static/build/mds-next/js/.js?cb=mkW8NyPe",
4409                true,
4410                null,
4411                "module"
4412            )
4413        }, 500);
4414    }
4415</script>
4415
4416
4417</html>

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.