CINXE.COM

'Operation Digital Eye' Attack Targets European IT Orgs

<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="robots" content="max-image-preview:large"/><title>&#x27;Operation Digital Eye&#x27; Attack Targets European IT Orgs</title><meta name="description" content="A Chinese threat actor infiltrated several IT and security companies in a bring-your-own VS code, with an eye to carrying out a supply-chain-based espionage attack."/><meta property="og:title" content="&#x27;Operation Digital Eye&#x27; Attack Targets European IT Orgs"/><meta property="og:description" content="A Chinese threat actor infiltrated several IT and security companies in a bring-your-own VS code, with an eye to carrying out a supply-chain-based espionage attack."/><meta property="og:url" content="https://www.darkreading.com/cyberattacks-data-breaches/operation-digital-eye-attack-targets-european-it-orgs"/><meta property="og:type" content="article"/><meta property="og:image" content="https://eu-images.contentstack.com/v3/assets/blt6d90778a997de1cd/bltf107a8b2df047202/67573f4aa643a9191dd33405/VS_Code-Araki_Illustrations-Alamy.jpg?disable=upscale&amp;width=1200&amp;height=630&amp;fit=crop"/><meta property="oc:keywords" content="Cyberattacks &amp; Data Breaches, Application Security, Threat Intelligence, Cybersecurity Operations"/><link rel="canonical" href="https://www.darkreading.com/cyberattacks-data-breaches/operation-digital-eye-attack-targets-european-it-orgs"/><script type="application/ld+json">{"@context":"https://schema.org","@type":"Article","datePublished":"2024-12-10T11:00:00.000Z","dateModified":"2024-12-10T15:35:32.388Z","headline":"Sprawling 'Operation Digital Eye' Attack Targets European IT Orgs","mainEntityOfPage":"https://www.darkreading.com/cyberattacks-data-breaches/operation-digital-eye-attack-targets-european-it-orgs","image":{"@type":"ImageObject","url":"https://eu-images.contentstack.com/v3/assets/blt6d90778a997de1cd/bltf107a8b2df047202/67573f4aa643a9191dd33405/VS_Code-Araki_Illustrations-Alamy.jpg","caption":"","creditText":"Source: Araki Illustrations via Alamy Stock Photo"},"author":[{"@type":"Person","name":"Nate Nelson, Contributing Writer","image":"https://eu-images.contentstack.com/v3/assets/blt6d90778a997de1cd/blt00df7fa701809c8c/64f15c901c6887515143a4d1/Nate-Nelson_(1).jpg","url":"https://www.darkreading.com/author/nate-nelson"}],"publisher":{"@type":["NewsMediaOrganization","Organization","OnlineBusiness"],"identifier":"https://www.darkreading.com","name":"Dark Reading","url":"https://www.darkreading.com","sameAs":["https://twitter.com/DarkReading","https://www.linkedin.com/company/dark-reading/","https://www.facebook.com/darkreadingcom/","https://www.youtube.com/@DarkReadingOfficialYT","https://news.google.com/publications/CAAqBwgKMKmknwswtq63Aw"],"foundingDate":"2006","description":"To challenge community members to think about security by providing strong, even unconventional points of view, backed by hard-nosed reporting, hands-on experience, and the professional knowledge that comes only with years of work in the information security industry.","logo":{"@type":"ImageObject","url":"https://www.darkreading.com/build/_assets/DarkReading-EAU2PZUE.svg","width":{"@type":"QuantitativeValue","value":1008},"height":{"@type":"QuantitativeValue","value":112}}}}</script><script type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://www.darkreading.com"},{"@type":"ListItem","position":2,"name":"Cyberattacks & Data Breaches","item":"https://www.darkreading.com/cyberattacks-data-breaches"}]}</script><link rel="preload" href="https://eu-images.contentstack.com/v3/assets/blt6d90778a997de1cd/bltf107a8b2df047202/67573f4aa643a9191dd33405/VS_Code-Araki_Illustrations-Alamy.jpg?width=1280&amp;auto=webp&amp;quality=10&amp;format=jpg&amp;disable=upscale&amp;blur=40" as="image"/><meta property="twitter:card" content="summary"/><script type="text/javascript">window.NREUM||(NREUM={});NREUM.init={distributed_tracing:{enabled:true},privacy:{cookies_enabled:true},ajax:{deny_list:["bam.eu01.nr-data.net"]}}; ;NREUM.loader_config={accountID:"3936348",trustKey:"3288925",agentID:"538600199",licenseKey:"NRJS-26ae6a3b09493bbcc87",applicationID:"538600199"}; ;NREUM.info={beacon:"bam.eu01.nr-data.net",errorBeacon:"bam.eu01.nr-data.net",licenseKey:"NRJS-26ae6a3b09493bbcc87",applicationID:"538600199",sa:1}; ;/*! For license information please see nr-loader-spa-1.275.0.min.js.LICENSE.txt */ (()=>{var e,t,r={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)),o=0===Object.keys(r).length?e:r;for(let a in o)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]])):"object"==typeof e[a]&&"object"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){(0,n.R)(1,e)}return r}catch(e){(0,n.R)(2,e)}}},2555:(e,t,r)=>{"use strict";r.d(t,{Vp:()=>c,fn:()=>s,x1:()=>u});var n=r(384),i=r(8122);const o={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},a={};function s(e){try{const t=c(e);return!!t.licenseKey&&!!t.errorBeacon&&!!t.applicationID}catch(e){return!1}}function c(e){if(!e)throw new Error("All info objects require an agent identifier!");if(!a[e])throw new Error("Info for ".concat(e," was never set"));return a[e]}function u(e,t){if(!e)throw new Error("All info objects require an agent identifier!");a[e]=(0,i.a)(t,o);const r=(0,n.nY)(e);r&&(r.info=a[e])}},9417:(e,t,r)=>{"use strict";r.d(t,{D0:()=>h,gD:()=>g,xN:()=>p});var n=r(993);const i=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var o=r(2614),a=r(944),s=r(384),c=r(8122);const u="[data-nr-mask]",d=()=>{const e={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,harvestTimeSeconds:10,autoStart:!0},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},feature_flags:[],generic_events:{enabled:!0,harvestTimeSeconds:30,autoStart:!0},harvest:{tooManyRequestsDelay:60},jserrors:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},logging:{enabled:!0,harvestTimeSeconds:10,autoStart:!0,level:n.p_.INFO},metrics:{enabled:!0,autoStart:!0},obfuscate:void 0,page_action:{enabled:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,harvestTimeSeconds:30,autoStart:!0},performance:{capture_marks:!1,capture_measures:!1},privacy:{cookies_enabled:!0},proxy:{assets:void 0,beacon:void 0},session:{expiresMs:o.wk,inactiveMs:o.BB},session_replay:{autoStart:!0,enabled:!1,harvestTimeSeconds:60,preload:!1,sampling_rate:10,error_sampling_rate:100,collect_fonts:!1,inline_images:!1,fix_stylesheets:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){i(t)?e.mask_selector="".concat(t,",").concat(u):""===t||null===t?e.mask_selector=u:(0,a.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){i(t)?e.block_selector+=",".concat(t):""!==t&&(0,a.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,a.R)(7,t)}},session_trace:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},soft_navigations:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},spa:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},ssl:void 0,user_actions:{enabled:!0}}},l={},f="All configuration objects require an agent identifier!";function h(e){if(!e)throw new Error(f);if(!l[e])throw new Error("Configuration for ".concat(e," was never set"));return l[e]}function p(e,t){if(!e)throw new Error(f);l[e]=(0,c.a)(t,d());const r=(0,s.nY)(e);r&&(r.init=l[e])}function g(e,t){if(!e)throw new Error(f);var r=h(e);if(r){for(var n=t.split("."),i=0;i<n.length-1;i++)if("object"!=typeof(r=r[n[i]]))return;r=r[n[n.length-1]]}return r}},5603:(e,t,r)=>{"use strict";r.d(t,{a:()=>c,o:()=>s});var n=r(384),i=r(8122);const o={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0},a={};function s(e){if(!e)throw new Error("All loader-config objects require an agent identifier!");if(!a[e])throw new Error("LoaderConfig for ".concat(e," was never set"));return a[e]}function c(e,t){if(!e)throw new Error("All loader-config objects require an agent identifier!");a[e]=(0,i.a)(t,o);const r=(0,n.nY)(e);r&&(r.loader_config=a[e])}},3371:(e,t,r)=>{"use strict";r.d(t,{V:()=>f,f:()=>l});var n=r(8122),i=r(384),o=r(6154),a=r(9324);let s=0;const c={buildEnv:a.F3,distMethod:a.Xs,version:a.xv,originTime:o.WN},u={customTransaction:void 0,disabled:!1,isolatedBacklog:!1,loaderType:void 0,maxBytes:3e4,onerror:void 0,ptid:void 0,releaseIds:{},appMetadata:{},session:void 0,denyList:void 0,timeKeeper:void 0,obfuscator:void 0},d={};function l(e){if(!e)throw new Error("All runtime objects require an agent identifier!");if(!d[e])throw new Error("Runtime for ".concat(e," was never set"));return d[e]}function f(e,t){if(!e)throw new Error("All runtime objects require an agent identifier!");d[e]={...(0,n.a)(t,u),...c},Object.hasOwnProperty.call(d[e],"harvestCount")||Object.defineProperty(d[e],"harvestCount",{get:()=>++s});const r=(0,i.nY)(e);r&&(r.runtime=d[e])}},9324:(e,t,r)=>{"use strict";r.d(t,{F3:()=>i,Xs:()=>o,Yq:()=>a,xv:()=>n});const n="1.275.0",i="PROD",o="CDN",a="^2.0.0-alpha.17"},6154:(e,t,r)=>{"use strict";r.d(t,{A4:()=>s,OF:()=>d,RI:()=>i,WN:()=>h,bv:()=>o,gm:()=>a,lR:()=>f,m:()=>u,mw:()=>c,sb:()=>l});var n=r(1863);const i="undefined"!=typeof window&&!!window.document,o="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),s="complete"===a?.document?.readyState,c=Boolean("hidden"===a?.document?.visibilityState),u=""+a?.location,d=/iPad|iPhone|iPod/.test(a.navigator?.userAgent),l=d&&"undefined"==typeof SharedWorker,f=(()=>{const e=a.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);return Array.isArray(e)&&e.length>=2?+e[1]:0})(),h=Date.now()-(0,n.t)()},7295:(e,t,r)=>{"use strict";r.d(t,{Xv:()=>a,gX:()=>i,iW:()=>o});var n=[];function i(e){if(!e||o(e))return!1;if(0===n.length)return!0;for(var t=0;t<n.length;t++){var r=n[t];if("*"===r.hostname)return!1;if(s(r.hostname,e.hostname)&&c(r.pathname,e.pathname))return!1}return!0}function o(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;0===r.indexOf("http://")?r=r.substring(7):0===r.indexOf("https://")&&(r=r.substring(8));const i=r.indexOf("/");let o,a;i>0?(o=r.substring(0,i),a=r.substring(i)):(o=r,a="");let[s]=o.split(":");n.push({hostname:s,pathname:a})}}function s(e,t){return!(e.length>t.length)&&t.indexOf(e)===t.length-e.length}function c(e,t){return 0===e.indexOf("/")&&(e=e.substring(1)),0===t.indexOf("/")&&(t=t.substring(1)),""===e||e===t}},1687:(e,t,r)=>{"use strict";r.d(t,{Ak:()=>c,Ze:()=>l,x3:()=>u});var n=r(7836),i=r(3606),o=r(860),a=r(2646);const s={};function c(e,t){const r={staged:!1,priority:o.P3[t]||0};d(e),s[e].get(t)||s[e].set(t,r)}function u(e,t){e&&s[e]&&(s[e].get(t)&&s[e].delete(t),h(e,t,!1),s[e].size&&f(e))}function d(e){if(!e)throw new Error("agentIdentifier required");s[e]||(s[e]=new Map)}function l(e="",t="feature",r=!1){if(d(e),!e||!s[e].get(t)||r)return h(e,t);s[e].get(t).staged=!0,f(e)}function f(e){const t=Array.from(s[e]);t.every((([e,t])=>t.staged))&&(t.sort(((e,t)=>e[1].priority-t[1].priority)),t.forEach((([t])=>{s[e].delete(t),h(e,t)})))}function h(e,t,r=!0){const o=e?n.ee.get(e):n.ee,s=i.i.handlers;if(!o.aborted&&o.backlog&&s){if(r){const e=o.backlog[t],r=s[t];if(r){for(let t=0;e&&t<e.length;++t)p(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].on(e,t[1])}))}))}}o.isolatedBacklog||delete s[t],o.backlog[t]=null,o.emit("drain-"+t,[])}}function p(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],o=e[2];n.apply(i,o)}}))}},7836:(e,t,r)=>{"use strict";r.d(t,{P:()=>c,ee:()=>u});var n=r(384),i=r(8990),o=r(3371),a=r(2646),s=r(5607);const c="nr@context:".concat(s.W),u=function e(t,r){var n={},s={},d={},l=!1;try{l=16===r.length&&(0,o.f)(r).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,o){!1!==o&&(o=!0);if(u.aborted&&!i)return;t&&o&&t.emit(e,r,n);for(var a=h(n),c=g(e),d=c.length,l=0;l<d;l++)c[l].apply(a,r);var p=v()[s[e]];p&&p.push([f,e,r,a]);return a},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])=>{s[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()[s[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 a.y?e:e?(0,i.I)(e,c,(()=>new a.y(c))):new a.y(c)}function p(e,t){n[e]=g(e).concat(t)}function g(e){return n[e]||[]}function m(t){return d[t]=d[t]||e(f,t)}function v(){return f.backlog}}(void 0,"globalEE"),d=(0,n.Zm)();d.ee||(d.ee=u)},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,o){o?(o.buffer([e],i),o.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},3606:(e,t,r)=>{"use strict";r.d(t,{i:()=>o});var n=r(9908);o.on=a;var i=o.handlers={};function o(e,t,r,o){a(o||n.d,i,e,t,r)}function a(e,t,r,i,o){o||(o="feature"),e||(e=n.d);var a=t[o]=t[o]||{};(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 o(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=>o,jT:()=>n,sp:()=>i})},5607:(e,t,r)=>{"use strict";r.d(t,{W:()=>n});const n=(0,r(9566).bz)()},9566:(e,t,r)=>{"use strict";r.d(t,{LA:()=>s,ZF:()=>c,bz:()=>a,el:()=>u});var n=r(6154);const i="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx";function o(e,t){return e?15&e[t]:16*Math.random()|0}function a(){const e=n.gm?.crypto||n.gm?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(30))),i.split("").map((e=>"x"===e?o(t,r++).toString(16):"y"===e?(3&o()|8).toString(16):e)).join("")}function s(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,i=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(e)));const a=[];for(var s=0;s<e;s++)a.push(o(r,i++).toString(16));return a.join("")}function c(){return s(16)}function u(){return s(32)}},2614:(e,t,r)=>{"use strict";r.d(t,{BB:()=>a,H3:()=>n,g:()=>u,iL:()=>c,tS:()=>s,uh:()=>i,wk:()=>o});const n="NRBA",i="SESSION",o=144e5,a=18e5,s={STARTED:"session-started",PAUSE:"session-pause",RESET:"session-reset",RESUME:"session-resume",UPDATE:"session-update"},c={SAME_TAB:"same-tab",CROSS_TAB:"cross-tab"},u={OFF:0,FULL:1,ERROR:2}},1863:(e,t,r)=>{"use strict";function n(){return Math.floor(performance.now())}r.d(t,{t:()=>n})},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{}}}},944:(e,t,r)=>{"use strict";function n(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)}r.d(t,{R:()=>n})},5284:(e,t,r)=>{"use strict";r.d(t,{t:()=>c,B:()=>s});var n=r(7836),i=r(6154);const o="newrelic";const a=new Set,s={};function c(e,t){const r=n.ee.get(t);s[t]??={},e&&"object"==typeof e&&(a.has(t)||(r.emit("rumresp",[e]),s[t]=e,a.add(t),function(e={}){try{i.gm.dispatchEvent(new CustomEvent(o,{detail:e}))}catch(e){}}({loaded:!0})))}},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})},3304:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n=r(7836);const i=()=>{const e=new WeakSet;return(t,r)=>{if("object"==typeof r&&null!==r){if(e.has(r))return;e.add(r)}return r}};function o(e){try{return JSON.stringify(e,i())??""}catch(e){try{n.ee.emit("internal-error",[e])}catch(e){}return""}}},5289:(e,t,r)=>{"use strict";r.d(t,{GG:()=>o,sB:()=>a});var n=r(3878);function i(){return"undefined"==typeof document||"complete"===document.readyState}function o(e,t){if(i())return e();(0,n.sp)("load",e,t)}function a(e){if(i())return e();(0,n.DD)("DOMContentLoaded",e)}},384:(e,t,r)=>{"use strict";r.d(t,{NT:()=>o,US:()=>d,Zm:()=>a,bQ:()=>c,dV:()=>s,nY:()=>u,pV:()=>l});var n=r(6154),i=r(1863);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function a(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic&&(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function s(){let e=a();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate,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}),e}function c(e,t){let r=a();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t}function u(e){let t=a();return t.initializedAgents?.[e]}function d(e,t){a()[e]=t}function l(){return function(){let e=a();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=a();const t=e.init||{};e.init={...t}}(),s(),function(){let e=a();const t=e.loader_config||{};e.loader_config={...t}}(),a()}},2843:(e,t,r)=>{"use strict";r.d(t,{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)}},8139:(e,t,r)=>{"use strict";r.d(t,{u:()=>f});var n=r(7836),i=r(3434),o=r(8990),a=r(6154);const s={},c=a.gm.XMLHttpRequest,u="addEventListener",d="removeEventListener",l="nr@wrapped:".concat(n.P);function f(e){var t=function(e){return(e||n.ee).get("events")}(e);if(s[t.debugId]++)return t;s[t.debugId]=1;var r=(0,i.YM)(t,!0);function f(e){r.inPlace(e,[u,d],"-",p)}function p(e,t){return e[1]}return"getPrototypeOf"in Object&&(a.RI&&h(document,f),c&&h(c.prototype,f),h(a.gm,f)),t.on(u+"-start",(function(e,t){var n=e[1];if(null!==n&&("function"==typeof n||"object"==typeof n)){var i=(0,o.I)(n,l,(function(){var e={object:function(){if("function"!=typeof n.handleEvent)return;return n.handleEvent.apply(n,arguments)},function:n}[typeof n];return e?r(e,"fn-",null,e.name||"anonymous"):n}));this.wrapped=e[1]=i}})),t.on(d+"-start",(function(e){e[1]=this.wrapped||e[1]})),t}function h(e,t,...r){let n=e;for(;"object"==typeof n&&!Object.prototype.hasOwnProperty.call(n,u);)n=Object.getPrototypeOf(n);n&&t(n,...r)}},3434:(e,t,r)=>{"use strict";r.d(t,{Jt:()=>o,YM:()=>c});var n=r(7836),i=r(5607);const o="nr@original:".concat(i.W);var a=Object.prototype.hasOwnProperty,s=!1;function c(e,t){return e||(e=n.ee),r.inPlace=function(e,t,n,i,o){n||(n="");const a="-"===n.charAt(0);for(let s=0;s<t.length;s++){const c=t[s],u=e[c];d(u)||(e[c]=r(u,a?c+n:n,i,c,o))}},r.flag=o,r;function r(t,r,n,s,c){return d(t)?t:(r||(r=""),nrWrapper[o]=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)a.call(e,n)&&(t[n]=e[n])}(t,nrWrapper,e),nrWrapper);function nrWrapper(){var o,a,d,l;try{a=this,o=[...arguments],d="function"==typeof n?n(o,a):n||{}}catch(t){u([t,"",[o,a,s],d],e)}i(r+"start",[o,a,s],d,c);try{return l=t.apply(a,o)}catch(e){throw i(r+"err",[o,a,e],d,c),e}finally{i(r+"end",[o,a,l],d,c)}}}function i(r,n,i,o){if(!s||t){var a=s;s=!0;try{e.emit(r,n,i,t,o)}catch(t){u([t,r,n,i],e)}s=a}}}function u(e,t){t||(t=n.ee);try{t.emit("internal-error",e)}catch(e){}}function d(e){return!(e&&"function"==typeof e&&e.apply&&!e[o])}},9300:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.ajax},3333:(e,t,r)=>{"use strict";r.d(t,{TZ:()=>n,Zp:()=>i,mq:()=>s,nf:()=>a,qN:()=>o});const n=r(860).K7.genericEvents,i=["auxclick","click","copy","keydown","paste","scrollend"],o=["focus","blur"],a=4,s=1e3},6774:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.jserrors},993:(e,t,r)=>{"use strict";r.d(t,{ET:()=>o,TZ:()=>a,p_:()=>i});var n=r(860);const i={ERROR:"ERROR",WARN:"WARN",INFO:"INFO",DEBUG:"DEBUG",TRACE:"TRACE"},o="log",a=n.K7.logging},3785:(e,t,r)=>{"use strict";r.d(t,{R:()=>c,b:()=>u});var n=r(9908),i=r(1863),o=r(860),a=r(3969),s=r(993);function c(e,t,r={},c=s.p_.INFO){(0,n.p)(a.xV,["API/logging/".concat(c.toLowerCase(),"/called")],void 0,o.K7.metrics,e),(0,n.p)(s.ET,[(0,i.t)(),t,r,c],void 0,o.K7.logging,e)}function u(e){return"string"==typeof e&&Object.values(s.p_).some((t=>t===e.toUpperCase().trim()))}},3969:(e,t,r)=>{"use strict";r.d(t,{TZ:()=>n,XG:()=>s,rs:()=>i,xV:()=>a,z_:()=>o});const n=r(860).K7.metrics,i="sm",o="cm",a="storeSupportabilityMetrics",s="storeEventMetrics"},6630:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewEvent},782:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewTiming},6344:(e,t,r)=>{"use strict";r.d(t,{BB:()=>d,G4:()=>o,Qb:()=>l,TZ:()=>i,Ug:()=>a,_s:()=>s,bc:()=>u,yP:()=>c});var n=r(2614);const i=r(860).K7.sessionReplay,o={RECORD:"recordReplay",PAUSE:"pauseReplay",REPLAY_RUNNING:"replayRunning",ERROR_DURING_REPLAY:"errorDuringReplay"},a=.12,s={DomContentLoaded:0,Load:1,FullSnapshot:2,IncrementalSnapshot:3,Meta:4,Custom:5},c={[n.g.ERROR]:15e3,[n.g.FULL]:3e5,[n.g.OFF]:0},u={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"}},d=5e3,l={API:"api"}},5270:(e,t,r)=>{"use strict";r.d(t,{Aw:()=>c,CT:()=>u,SR:()=>s});var n=r(384),i=r(9417),o=r(7767),a=r(6154);function s(e){return!!(0,n.dV)().o.MO&&(0,o.V)(e)&&!0===(0,i.gD)(e,"session_trace.enabled")}function c(e){return!0===(0,i.gD)(e,"session_replay.preload")&&s(e)}function u(e,t){const r=t.correctAbsoluteTimestamp(e);return{originalTimestamp:e,correctedTimestamp:r,timestampDiff:e-r,originTime:a.WN,correctedOriginTime:t.correctedOriginTime,originTimeDiff:Math.floor(a.WN-t.correctedOriginTime)}}},3738:(e,t,r)=>{"use strict";r.d(t,{He:()=>i,Kp:()=>s,Lc:()=>u,Rz:()=>d,TZ:()=>n,bD:()=>o,d3:()=>a,jx:()=>l,uP:()=>c});const n=r(860).K7.sessionTrace,i="bstResource",o="resource",a="-start",s="-end",c="fn"+a,u="fn"+s,d="pushState",l=1e3},3962:(e,t,r)=>{"use strict";r.d(t,{AM:()=>o,O2:()=>s,Qu:()=>c,TZ:()=>a,ih:()=>u,tC:()=>i});var n=r(860);const i=["click","keydown","submit"],o="api",a=n.K7.softNav,s={INITIAL_PAGE_LOAD:"",ROUTE_CHANGE:1,UNSPECIFIED:2},c={INTERACTION:1,AJAX:2,CUSTOM_END:3,CUSTOM_TRACER:4},u={IP:"in progress",FIN:"finished",CAN:"cancelled"}},7378:(e,t,r)=>{"use strict";r.d(t,{$p:()=>x,BR:()=>b,Kp:()=>R,L3:()=>y,Lc:()=>c,NC:()=>o,SG:()=>d,TZ:()=>i,U6:()=>p,UT:()=>m,d3:()=>w,dT:()=>f,e5:()=>A,gx:()=>v,l9:()=>l,oW:()=>h,op:()=>g,rw:()=>u,tH:()=>E,uP:()=>s,wW:()=>T,xq:()=>a});var n=r(384);const i=r(860).K7.spa,o=["click","submit","keypress","keydown","keyup","change"],a=999,s="fn-start",c="fn-end",u="cb-start",d="api-ixn-",l="remaining",f="interaction",h="spaNode",p="jsonpNode",g="fetch-start",m="fetch-done",v="fetch-body-",b="jsonp-end",y=(0,n.dV)().o.ST,w="-start",R="-end",x="-body",T="cb"+R,A="jsTime",E="fetch"},4234:(e,t,r)=>{"use strict";r.d(t,{W:()=>o});var n=r(7836),i=r(1687);class o{constructor(e,t){this.agentIdentifier=e,this.ee=n.ee.get(e),this.featureName=t,this.blocked=!1}deregisterDrain(){(0,i.x3)(this.agentIdentifier,this.featureName)}}},7767:(e,t,r)=>{"use strict";r.d(t,{V:()=>o});var n=r(9417),i=r(6154);const o=e=>i.RI&&!0===(0,n.gD)(e,"privacy.cookies_enabled")},425:(e,t,r)=>{"use strict";r.d(t,{j:()=>P});var n=r(860),i=r(2555),o=r(3371),a=r(9908),s=r(7836),c=r(1687),u=r(5289),d=r(6154),l=r(944),f=r(3969),h=r(384),p=r(6344);const g=["setErrorHandler","finished","addToTrace","addRelease","addPageAction","setCurrentRouteName","setPageViewName","setCustomAttribute","interaction","noticeError","setUserId","setApplicationVersion","start",p.G4.RECORD,p.G4.PAUSE,"log","wrapLogger"],m=["setErrorHandler","finished","addToTrace","addRelease"];var v=r(1863),b=r(2614),y=r(993),w=r(3785),R=r(2646),x=r(3434);const T=new Map;function A(e,t,r,n){if("object"!=typeof t||!t||"string"!=typeof r||!r||"function"!=typeof t[r])return(0,l.R)(29);const i=function(e){return(e||s.ee).get("logger")}(e),o=(0,x.YM)(i),a=new R.y(s.P);a.level=n.level,a.customAttributes=n.customAttributes;const c=t[r]?.[x.Jt]||t[r];return T.set(c,a),o.inPlace(t,[r],"wrap-logger-",(()=>T.get(c))),i}function E(){const e=(0,h.pV)();g.forEach((t=>{e[t]=(...r)=>function(t,...r){let n=[];return Object.values(e.initializedAgents).forEach((e=>{e&&e.api?e.exposed&&e.api[t]&&n.push(e.api[t](...r)):(0,l.R)(38,t)})),n.length>1?n:n[0]}(t,...r)}))}const S={};var N=r(9417),O=r(5603),_=r(5284);const I=e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e};let j=!1;function P(e,t={},g,R){let{init:x,info:T,loader_config:P,runtime:C={},exposed:k=!0}=t;C.loaderType=g;const L=(0,h.pV)();T||(x=L.init,T=L.info,P=L.loader_config),(0,N.xN)(e.agentIdentifier,x||{}),(0,O.a)(e.agentIdentifier,P||{}),T.jsAttributes??={},d.bv&&(T.jsAttributes.isWorker=!0),(0,i.x1)(e.agentIdentifier,T);const H=(0,N.D0)(e.agentIdentifier),D=[T.beacon,T.errorBeacon];j||(H.proxy.assets&&(I(H.proxy.assets),D.push(H.proxy.assets)),H.proxy.beacon&&D.push(H.proxy.beacon),E(),(0,h.US)("activatedFeatures",_.B),e.runSoftNavOverSpa&&=!0===H.soft_navigations.enabled&&H.feature_flags.includes("soft_nav")),C.denyList=[...H.ajax.deny_list||[],...H.ajax.block_internal?D:[]],C.ptid=e.agentIdentifier,(0,o.V)(e.agentIdentifier,C),e.ee=s.ee.get(e.agentIdentifier),void 0===e.api&&(e.api=function(e,t,h=!1){t||(0,c.Ak)(e,"api");const g={};var R=s.ee.get(e),x=R.get("tracer");S[e]=b.g.OFF,R.on(p.G4.REPLAY_RUNNING,(t=>{S[e]=t}));var T="api-",E=T+"ixn-";function N(t,r,n,o){const a=(0,i.Vp)(e);return null===r?delete a.jsAttributes[t]:(0,i.x1)(e,{...a,jsAttributes:{...a.jsAttributes,[t]:r}}),I(T,n,!0,o||null===r?"session":void 0)(t,r)}function O(){}g.log=function(e,{customAttributes:t={},level:r=y.p_.INFO}={}){(0,a.p)(f.xV,["API/log/called"],void 0,n.K7.metrics,R),(0,w.R)(R,e,t,r)},g.wrapLogger=(e,t,{customAttributes:r={},level:i=y.p_.INFO}={})=>{(0,a.p)(f.xV,["API/wrapLogger/called"],void 0,n.K7.metrics,R),A(R,e,t,{customAttributes:r,level:i})},m.forEach((e=>{g[e]=I(T,e,!0,"api")})),g.addPageAction=I(T,"addPageAction",!0,n.K7.genericEvents),g.setPageViewName=function(t,r){if("string"==typeof t)return"/"!==t.charAt(0)&&(t="/"+t),(0,o.f)(e).customTransaction=(r||"http://custom.transaction")+t,I(T,"setPageViewName",!0)()},g.setCustomAttribute=function(e,t,r=!1){if("string"==typeof e){if(["string","number","boolean"].includes(typeof t)||null===t)return N(e,t,"setCustomAttribute",r);(0,l.R)(40,typeof t)}else(0,l.R)(39,typeof e)},g.setUserId=function(e){if("string"==typeof e||null===e)return N("enduser.id",e,"setUserId",!0);(0,l.R)(41,typeof e)},g.setApplicationVersion=function(e){if("string"==typeof e||null===e)return N("application.version",e,"setApplicationVersion",!1);(0,l.R)(42,typeof e)},g.start=()=>{try{(0,a.p)(f.xV,["API/start/called"],void 0,n.K7.metrics,R),R.emit("manual-start-all")}catch(e){(0,l.R)(23,e)}},g[p.G4.RECORD]=function(){(0,a.p)(f.xV,["API/recordReplay/called"],void 0,n.K7.metrics,R),(0,a.p)(p.G4.RECORD,[],void 0,n.K7.sessionReplay,R)},g[p.G4.PAUSE]=function(){(0,a.p)(f.xV,["API/pauseReplay/called"],void 0,n.K7.metrics,R),(0,a.p)(p.G4.PAUSE,[],void 0,n.K7.sessionReplay,R)},g.interaction=function(e){return(new O).get("object"==typeof e?e:{})};const _=O.prototype={createTracer:function(e,t){var r={},i=this,o="function"==typeof t;return(0,a.p)(f.xV,["API/createTracer/called"],void 0,n.K7.metrics,R),h||(0,a.p)(E+"tracer",[(0,v.t)(),e,r],i,n.K7.spa,R),function(){if(x.emit((o?"":"no-")+"fn-start",[(0,v.t)(),i,o],r),o)try{return t.apply(this,arguments)}catch(e){const t="string"==typeof e?new Error(e):e;throw x.emit("fn-err",[arguments,this,t],r),t}finally{x.emit("fn-end",[(0,v.t)()],r)}}}};function I(e,t,r,i){return function(){return(0,a.p)(f.xV,["API/"+t+"/called"],void 0,n.K7.metrics,R),i&&(0,a.p)(e+t,[(0,v.t)(),...arguments],r?null:this,i,R),r?void 0:this}}function j(){r.e(478).then(r.bind(r,8778)).then((({setAPI:t})=>{t(e),(0,c.Ze)(e,"api")})).catch((e=>{(0,l.R)(27,e),R.abort()}))}return["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach((e=>{_[e]=I(E,e,void 0,h?n.K7.softNav:n.K7.spa)})),g.setCurrentRouteName=h?I(E,"routeName",void 0,n.K7.softNav):I(T,"routeName",!0,n.K7.spa),g.noticeError=function(t,r){"string"==typeof t&&(t=new Error(t)),(0,a.p)(f.xV,["API/noticeError/called"],void 0,n.K7.metrics,R),(0,a.p)("err",[t,(0,v.t)(),!1,r,!!S[e]],void 0,n.K7.jserrors,R)},d.RI?(0,u.GG)((()=>j()),!0):j(),g}(e.agentIdentifier,R,e.runSoftNavOverSpa)),void 0===e.exposed&&(e.exposed=k),j=!0}},8374:(e,t,r)=>{r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},860:(e,t,r)=>{"use strict";r.d(t,{$J:()=>o,K7:()=>n,P3:()=>i});const n={ajax:"ajax",genericEvents:"generic_events",jserrors:"jserrors",logging:"logging",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",softNav:"soft_navigations",spa:"spa"},i={[n.pageViewEvent]:1,[n.pageViewTiming]:2,[n.metrics]:3,[n.jserrors]:4,[n.spa]:5,[n.ajax]:6,[n.sessionTrace]:7,[n.softNav]:8,[n.sessionReplay]:9,[n.logging]:10,[n.genericEvents]:11},o={[n.pageViewTiming]:"events",[n.ajax]:"events",[n.spa]:"events",[n.softNav]:"events",[n.metrics]:"jserrors",[n.jserrors]:"jserrors",[n.sessionTrace]:"browser/blobs",[n.sessionReplay]:"browser/blobs",[n.logging]:"browser/logs",[n.genericEvents]:"ins"}}},n={};function i(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.m=r,i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,r)=>(i.f[r](e,t),t)),[])),i.u=e=>({212:"nr-spa-compressor",249:"nr-spa-recorder",478:"nr-spa"}[e]+"-1.275.0.min.js"),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="NRBA-1.275.0.PROD:",i.l=(r,n,o,a)=>{if(e[r])e[r].push(n);else{var s,c;if(void 0!==o)for(var u=document.getElementsByTagName("script"),d=0;d<u.length;d++){var l=u[d];if(l.getAttribute("src")==r||l.getAttribute("data-webpack")==t+o){s=l;break}}if(!s){c=!0;var f={478:"sha512-NvU3eQ7o5326npq3PdmyQFPyLLZ8dzJ2BG6+iqztQtUJe3LUirTbILWdA3lulN387X5fmO+nMjQ+LJRbkEPLVA==",249:"sha512-R/f355fvvfTK6aJgvL0I8Qhud5dLX6qQ7Zp5T6jXvMAyn8gP34jRy3hYQLS8EORUfSog20ecrDt9jLqfiNHbMQ==",212:"sha512-TFSNY6YbI0MLCIwHL77tq3s4Lpj2qr0N+8089sEUUOEdvqMeEJAchudmqpGRb5sfw6nx9uHsypk2HT16ipv7kg=="};(s=document.createElement("script")).charset="utf-8",s.timeout=120,i.nc&&s.setAttribute("nonce",i.nc),s.setAttribute("data-webpack",t+o),s.src=r,0!==s.src.indexOf(window.location.origin+"/")&&(s.crossOrigin="anonymous"),f[a]&&(s.integrity=f[a])}e[r]=[n];var h=(t,n)=>{s.onerror=s.onload=null,clearTimeout(p);var i=e[r];if(delete e[r],s.parentNode&&s.parentNode.removeChild(s),i&&i.forEach((e=>e(n))),t)return t(n)},p=setTimeout(h.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=h.bind(null,s.onerror),s.onload=h.bind(null,s.onload),c&&document.head.appendChild(s)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.p="https://js-agent.newrelic.com/",(()=>{var e={38:0,788:0};i.f.j=(t,r)=>{var n=i.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise(((r,i)=>n=e[t]=[r,i]));r.push(n[2]=o);var a=i.p+i.u(t),s=new Error;i.l(a,(r=>{if(i.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var o=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;s.message="Loading chunk "+t+" failed.\n("+o+": "+a+")",s.name="ChunkLoadError",s.type=o,s.request=a,n[1](s)}}),"chunk-"+t,t)}};var t=(t,r)=>{var n,o,[a,s,c]=r,u=0;if(a.some((t=>0!==e[t]))){for(n in s)i.o(s,n)&&(i.m[n]=s[n]);if(c)c(i)}for(t&&t(r);u<a.length;u++)o=a[u],i.o(e,o)&&e[o]&&e[o][0](),e[o]=0},r=self["webpackChunk:NRBA-1.275.0.PROD"]=self["webpackChunk:NRBA-1.275.0.PROD"]||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),(()=>{"use strict";i(8374);var e=i(944),t=i(6344),r=i(9566);class n{agentIdentifier;constructor(e=(0,r.LA)(16)){this.agentIdentifier=e}#e(t,...r){if("function"==typeof this.api?.[t])return this.api[t](...r);(0,e.R)(35,t)}addPageAction(e,t){return this.#e("addPageAction",e,t)}setPageViewName(e,t){return this.#e("setPageViewName",e,t)}setCustomAttribute(e,t,r){return this.#e("setCustomAttribute",e,t,r)}noticeError(e,t){return this.#e("noticeError",e,t)}setUserId(e){return this.#e("setUserId",e)}setApplicationVersion(e){return this.#e("setApplicationVersion",e)}setErrorHandler(e){return this.#e("setErrorHandler",e)}addRelease(e,t){return this.#e("addRelease",e,t)}log(e,t){return this.#e("log",e,t)}}class o extends n{#e(t,...r){if("function"==typeof this.api?.[t])return this.api[t](...r);(0,e.R)(35,t)}start(){return this.#e("start")}finished(e){return this.#e("finished",e)}recordReplay(){return this.#e(t.G4.RECORD)}pauseReplay(){return this.#e(t.G4.PAUSE)}addToTrace(e){return this.#e("addToTrace",e)}setCurrentRouteName(e){return this.#e("setCurrentRouteName",e)}interaction(){return this.#e("interaction")}wrapLogger(e,t,r){return this.#e("wrapLogger",e,t,r)}}var a=i(860),s=i(9417);const c=Object.values(a.K7);function u(e){const t={};return c.forEach((r=>{t[r]=function(e,t){return!0===(0,s.gD)(t,"".concat(e,".enabled"))}(r,e)})),t}var d=i(425);var l=i(1687),f=i(4234),h=i(5289),p=i(6154),g=i(5270),m=i(7767),v=i(6389);class b extends f.W{constructor(e,t,r=!0){super(e.agentIdentifier,t),this.auto=r,this.abortHandler=void 0,this.featAggregate=void 0,this.onAggregateImported=void 0,!1===e.init[this.featureName].autoStart&&(this.auto=!1),this.auto?(0,l.Ak)(e.agentIdentifier,t):this.ee.on("manual-start-all",(0,v.J)((()=>{(0,l.Ak)(e.agentIdentifier,this.featureName),this.auto=!0,this.importAggregator(e)})))}importAggregator(t,r={}){if(this.featAggregate||!this.auto)return;let n;this.onAggregateImported=new Promise((e=>{n=e}));const o=async()=>{let o;try{if((0,m.V)(this.agentIdentifier)){const{setupAgentSession:e}=await i.e(478).then(i.bind(i,6526));o=e(t)}}catch(t){(0,e.R)(20,t),this.ee.emit("internal-error",[t]),this.featureName===a.K7.sessionReplay&&this.abortHandler?.()}try{if(t.sharedAggregator)await t.sharedAggregator;else{t.sharedAggregator=i.e(478).then(i.bind(i,9337));const{EventAggregator:e}=await t.sharedAggregator;t.sharedAggregator=new e}if(!this.#t(this.featureName,o))return(0,l.Ze)(this.agentIdentifier,this.featureName),void n(!1);const{lazyFeatureLoader:e}=await i.e(478).then(i.bind(i,6103)),{Aggregate:a}=await e(this.featureName,"aggregate");this.featAggregate=new a(t,r),n(!0)}catch(t){(0,e.R)(34,t),this.abortHandler?.(),(0,l.Ze)(this.agentIdentifier,this.featureName,!0),n(!1),this.ee&&this.ee.abort()}};p.RI?(0,h.GG)((()=>o()),!0):o()}#t(e,t){switch(e){case a.K7.sessionReplay:return(0,g.SR)(this.agentIdentifier)&&!!t;case a.K7.sessionTrace:return!!t;default:return!0}}}var y=i(6630);class w extends b{static featureName=y.T;constructor(e,t=!0){super(e,y.T,t),this.importAggregator(e)}}var R=i(384);var x=i(9908),T=i(2843),A=i(3878),E=i(782),S=i(1863);class N extends b{static featureName=E.T;constructor(e,t=!0){super(e,E.T,t),p.RI&&((0,T.u)((()=>(0,x.p)("docHidden",[(0,S.t)()],void 0,E.T,this.ee)),!0),(0,A.sp)("pagehide",(()=>(0,x.p)("winPagehide",[(0,S.t)()],void 0,E.T,this.ee))),this.importAggregator(e))}}var O=i(3969);class _ extends b{static featureName=O.TZ;constructor(e,t=!0){super(e,O.TZ,t),this.importAggregator(e)}}var I=i(6774),j=i(3304);class P{constructor(e,t,r,n,i){this.name="UncaughtError",this.message="string"==typeof e?e:(0,j.A)(e),this.sourceURL=t,this.line=r,this.column=n,this.__newrelic=i}}function C(e){return H(e)?e:new P(void 0!==e?.message?e.message:e,e?.filename||e?.sourceURL,e?.lineno||e?.line,e?.colno||e?.col,e?.__newrelic)}function k(e){const t="Unhandled Promise Rejection";if(!e?.reason)return;if(H(e.reason))try{return e.reason.message=t+": "+e.reason.message,C(e.reason)}catch(t){return C(e.reason)}const r=C(e.reason);return r.message=t+": "+r?.message,r}function L(e){if(e.error instanceof SyntaxError&&!/:\d+$/.test(e.error.stack?.trim())){const t=new P(e.message,e.filename,e.lineno,e.colno,e.error.__newrelic);return t.name=SyntaxError.name,t}return H(e.error)?e.error:C(e)}function H(e){return e instanceof Error&&!!e.stack}class D extends b{static featureName=I.T;#r=!1;constructor(e,r=!0){super(e,I.T,r);try{this.removeOnAbort=new AbortController}catch(e){}this.ee.on("internal-error",(e=>{this.abortHandler&&(0,x.p)("ierr",[C(e),(0,S.t)(),!0,{},this.#r],void 0,this.featureName,this.ee)})),this.ee.on(t.G4.REPLAY_RUNNING,(e=>{this.#r=e})),p.gm.addEventListener("unhandledrejection",(e=>{this.abortHandler&&(0,x.p)("err",[k(e),(0,S.t)(),!1,{unhandledPromiseRejection:1},this.#r],void 0,this.featureName,this.ee)}),(0,A.jT)(!1,this.removeOnAbort?.signal)),p.gm.addEventListener("error",(e=>{this.abortHandler&&(0,x.p)("err",[L(e),(0,S.t)(),!1,{},this.#r],void 0,this.featureName,this.ee)}),(0,A.jT)(!1,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e)}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var M=i(8990);let K=1;const U="nr@id";function V(e){const t=typeof e;return!e||"object"!==t&&"function"!==t?-1:e===p.gm?0:(0,M.I)(e,U,(function(){return K++}))}function G(e){if("string"==typeof e&&e.length)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,j.A)(e).length}catch(e){return}}}var F=i(8139),B=i(7836),W=i(3434);const z={},q=["open","send"];function Z(t){var r=t||B.ee;const n=function(e){return(e||B.ee).get("xhr")}(r);if(void 0===p.gm.XMLHttpRequest)return n;if(z[n.debugId]++)return n;z[n.debugId]=1,(0,F.u)(r);var i=(0,W.YM)(n),o=p.gm.XMLHttpRequest,a=p.gm.MutationObserver,s=p.gm.Promise,c=p.gm.setInterval,u="readystatechange",d=["onload","onerror","onabort","onloadstart","onloadend","onprogress","ontimeout"],l=[],f=p.gm.XMLHttpRequest=function(t){const r=new o(t),a=n.context(r);try{n.emit("new-xhr",[r],a),r.addEventListener(u,(s=a,function(){var e=this;e.readyState>3&&!s.resolved&&(s.resolved=!0,n.emit("xhr-resolved",[],e)),i.inPlace(e,d,"fn-",y)}),(0,A.jT)(!1))}catch(t){(0,e.R)(15,t);try{n.emit("internal-error",[t])}catch(e){}}var s;return r};function h(e,t){i.inPlace(t,["onreadystatechange"],"fn-",y)}if(function(e,t){for(var r in e)t[r]=e[r]}(o,f),f.prototype=o.prototype,i.inPlace(f.prototype,q,"-xhr-",y),n.on("send-xhr-start",(function(e,t){h(e,t),function(e){l.push(e),a&&(g?g.then(b):c?c(b):(m=-m,v.data=m))}(t)})),n.on("open-xhr-start",h),a){var g=s&&s.resolve();if(!c&&!s){var m=1,v=document.createTextNode(m);new a(b).observe(v,{characterData:!0})}}else r.on("fn-end",(function(e){e[0]&&e[0].type===u||b()}));function b(){for(var e=0;e<l.length;e++)h(0,l[e]);l.length&&(l=[])}function y(e,t){return t}return n}var Y="fetch-",X=Y+"body-",J=["arrayBuffer","blob","json","text","formData"],Q=p.gm.Request,ee=p.gm.Response,te="prototype";const re={};function ne(e){const t=function(e){return(e||B.ee).get("fetch")}(e);if(!(Q&&ee&&p.gm.fetch))return t;if(re[t.debugId]++)return t;function r(e,r,n){var i=e[r];"function"==typeof i&&(e[r]=function(){var e,r=[...arguments],o={};t.emit(n+"before-start",[r],o),o[B.P]&&o[B.P].dt&&(e=o[B.P].dt);var a=i.apply(this,r);return t.emit(n+"start",[r,e],a),a.then((function(e){return t.emit(n+"end",[null,e],a),e}),(function(e){throw t.emit(n+"end",[e],a),e}))})}return re[t.debugId]=1,J.forEach((e=>{r(Q[te],e,X),r(ee[te],e,X)})),r(p.gm,"fetch",Y),t.on(Y+"end",(function(e,r){var n=this;if(r){var i=r.headers.get("content-length");null!==i&&(n.rxSize=i),t.emit(Y+"done",[null,r],n)}else t.emit(Y+"done",[e],n)})),t}var ie=i(7485),oe=i(5603);class ae{constructor(e){this.agentIdentifier=e}generateTracePayload(e){if(!this.shouldGenerateTrace(e))return null;var t=(0,oe.o)(this.agentIdentifier);if(!t)return null;var n=(t.accountID||"").toString()||null,i=(t.agentID||"").toString()||null,o=(t.trustKey||"").toString()||null;if(!n||!i)return null;var a=(0,r.ZF)(),s=(0,r.el)(),c=Date.now(),u={spanId:a,traceId:s,timestamp:c};return(e.sameOrigin||this.isAllowedOrigin(e)&&this.useTraceContextHeadersForCors())&&(u.traceContextParentHeader=this.generateTraceContextParentHeader(a,s),u.traceContextStateHeader=this.generateTraceContextStateHeader(a,c,n,i,o)),(e.sameOrigin&&!this.excludeNewrelicHeader()||!e.sameOrigin&&this.isAllowedOrigin(e)&&this.useNewrelicHeaderForCors())&&(u.newrelicHeader=this.generateTraceHeader(a,s,c,n,i,o)),u}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,o){if(!("function"==typeof p.gm?.btoa))return null;var a={v:[0,1],d:{ty:"Browser",ac:n,ap:i,id:e,tr:t,ti:r}};return o&&n!==o&&(a.d.tk=o),btoa((0,j.A)(a))}shouldGenerateTrace(e){return this.isDtEnabled()&&this.isAllowedOrigin(e)}isAllowedOrigin(e){var t=!1,r={};if((0,s.gD)(this.agentIdentifier,"distributed_tracing")&&(r=(0,s.D0)(this.agentIdentifier).distributed_tracing),e.sameOrigin)t=!0;else if(r.allowed_origins instanceof Array)for(var n=0;n<r.allowed_origins.length;n++){var i=(0,ie.D)(r.allowed_origins[n]);if(e.hostname===i.hostname&&e.protocol===i.protocol&&e.port===i.port){t=!0;break}}return t}isDtEnabled(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.enabled}excludeNewrelicHeader(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.exclude_newrelic_header}useNewrelicHeaderForCors(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!1!==e.cors_use_newrelic_header}useTraceContextHeadersForCors(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.cors_use_tracecontext_headers}}var se=i(9300),ce=i(7295),ue=["load","error","abort","timeout"],de=ue.length,le=(0,R.dV)().o.REQ,fe=(0,R.dV)().o.XHR;class he extends b{static featureName=se.T;constructor(e,t=!0){super(e,se.T,t),this.dt=new ae(e.agentIdentifier),this.handler=(e,t,r,n)=>(0,x.p)(e,t,r,n,this.ee);try{const e={xmlhttprequest:"xhr",fetch:"fetch",beacon:"beacon"};p.gm?.performance?.getEntriesByType("resource").forEach((t=>{if(t.initiatorType in e&&0!==t.responseStatus){const r={status:t.responseStatus},n={rxSize:t.transferSize,duration:Math.floor(t.duration),cbTime:0};pe(r,t.name),this.handler("xhr",[r,n,t.startTime,t.responseEnd,e[t.initiatorType]],void 0,a.K7.ajax)}}))}catch(e){}ne(this.ee),Z(this.ee),function(e,t,r,n){function i(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=R,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,t.params=this.params||{},t.metrics=this.metrics||{},e.addEventListener("load",(function(r){T(t,e)}),(0,A.jT)(!1)),p.lR||e.addEventListener("progress",(function(e){t.lastSize=e.loaded}),(0,A.jT)(!1))}function o(e){this.params={method:e[0]},pe(this,e[1]),this.metrics={}}function s(t,r){e.loader_config.xpid&&this.sameOrigin&&r.setRequestHeader("X-NewRelic-ID",e.loader_config.xpid);var i=n.generateTracePayload(this.parsedOrigin);if(i){var o=!1;i.newrelicHeader&&(r.setRequestHeader("newrelic",i.newrelicHeader),o=!0),i.traceContextParentHeader&&(r.setRequestHeader("traceparent",i.traceContextParentHeader),i.traceContextStateHeader&&r.setRequestHeader("tracestate",i.traceContextStateHeader),o=!0),o&&(this.dt=i)}}function c(e,r){var n=this.metrics,i=e[0],o=this;if(n&&i){var a=G(i);a&&(n.txSize=a)}this.startTime=(0,S.t)(),this.body=i,this.listener=function(e){try{"abort"!==e.type||o.loadCaptureCalled||(o.params.aborted=!0),("load"!==e.type||o.called===o.totalCbs&&(o.onloadCalled||"function"!=typeof r.onload)&&"function"==typeof o.end)&&o.end(r)}catch(e){try{t.emit("internal-error",[e])}catch(e){}}};for(var s=0;s<de;s++)r.addEventListener(ue[s],this.listener,(0,A.jT)(!1))}function u(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 d(e,t){var r=""+V(e)+!!t;this.xhrGuids&&!this.xhrGuids[r]&&(this.xhrGuids[r]=!0,this.totalCbs+=1)}function l(e,t){var r=""+V(e)+!!t;this.xhrGuids&&this.xhrGuids[r]&&(delete this.xhrGuids[r],this.totalCbs-=1)}function f(){this.endTime=(0,S.t)()}function h(e,r){r instanceof fe&&"load"===e[0]&&t.emit("xhr-load-added",[e[1],e[2]],r)}function g(e,r){r instanceof fe&&"load"===e[0]&&t.emit("xhr-load-removed",[e[1],e[2]],r)}function m(e,t,r){t instanceof fe&&("onload"===r&&(this.onload=!0),("load"===(e[0]&&e[0].type)||this.onload)&&(this.xhrCbStart=(0,S.t)()))}function v(e,r){this.xhrCbStart&&t.emit("xhr-cb-time",[(0,S.t)()-this.xhrCbStart,this.onload,r],r)}function b(e){var t,r=e[1]||{};if("string"==typeof e[0]?0===(t=e[0]).length&&p.RI&&(t=""+p.gm.location.href):e[0]&&e[0].url?t=e[0].url:p.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,ie.D)(t),this.sameOrigin=this.parsedOrigin.sameOrigin);var i=n.generateTracePayload(this.parsedOrigin);if(i&&(i.newrelicHeader||i.traceContextParentHeader))if(e[0]&&e[0].headers)s(e[0].headers,i)&&(this.dt=i);else{var o={};for(var a in r)o[a]=r[a];o.headers=new Headers(r.headers||{}),s(o.headers,i)&&(this.dt=i),e.length>1?e[1]=o:e.push(o)}}function s(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 y(e,t){this.params={},this.metrics={},this.startTime=(0,S.t)(),this.dt=t,e.length>=1&&(this.target=e[0]),e.length>=2&&(this.opts=e[1]);var r,n=this.opts||{},i=this.target;"string"==typeof i?r=i:"object"==typeof i&&i instanceof le?r=i.url:p.gm?.URL&&"object"==typeof i&&i instanceof URL&&(r=i.href),pe(this,r);var o=(""+(i&&i instanceof le&&i.method||n.method||"GET")).toUpperCase();this.params.method=o,this.body=n.body,this.txSize=G(n.body)||0}function w(e,t){if(this.endTime=(0,S.t)(),this.params||(this.params={}),(0,ce.iW)(this.params))return;let n;this.params.status=t?t.status:0,"string"==typeof this.rxSize&&this.rxSize.length>0&&(n=+this.rxSize);const i={txSize:this.txSize,rxSize:n,duration:(0,S.t)()-this.startTime};r("xhr",[this.params,i,this.startTime,this.endTime,"fetch"],this,a.K7.ajax)}function R(e){const t=this.params,n=this.metrics;if(!this.ended){this.ended=!0;for(let t=0;t<de;t++)e.removeEventListener(ue[t],this.listener,!1);t.aborted||(0,ce.iW)(t)||(n.duration=(0,S.t)()-this.startTime,this.loadCazptureCalled||4!==e.readyState?null==t.status&&(t.status=0):T(this,e),n.cbTime=this.cbTime,r("xhr",[t,n,this.startTime,this.endTime,"xhr"],this,a.K7.ajax))}}function T(e,r){e.params.status=r.status;var n=function(e,t){var r=e.responseType;return"json"===r&&null!==t?t:"arraybuffer"===r||"blob"===r||"json"===r?G(e.response):"text"===r||""===r||void 0===r?G(e.responseText):void 0}(r,e.lastSize);if(n&&(e.metrics.rxSize=n),e.sameOrigin){var i=r.getResponseHeader("X-NewRelic-App-Data");i&&((0,x.p)(O.rs,["Ajax/CrossApplicationTracing/Header/Seen"],void 0,a.K7.metrics,t),e.params.cat=i.split(", ").pop())}e.loadCaptureCalled=!0}t.on("new-xhr",i),t.on("open-xhr-start",o),t.on("open-xhr-end",s),t.on("send-xhr-start",c),t.on("xhr-cb-time",u),t.on("xhr-load-added",d),t.on("xhr-load-removed",l),t.on("xhr-resolved",f),t.on("addEventListener-end",h),t.on("removeEventListener-end",g),t.on("fn-end",v),t.on("fetch-before-start",b),t.on("fetch-start",y),t.on("fn-start",m),t.on("fetch-done",w)}(e,this.ee,this.handler,this.dt),this.importAggregator(e)}}function pe(e,t){var r=(0,ie.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}const ge={},me=["pushState","replaceState"];function ve(e){const t=function(e){return(e||B.ee).get("history")}(e);return!p.RI||ge[t.debugId]++||(ge[t.debugId]=1,(0,W.YM)(t).inPlace(window.history,me,"-")),t}var be=i(3738);const{He:ye,bD:we,d3:Re,Kp:xe,TZ:Te,Lc:Ae,uP:Ee,Rz:Se}=be;class Ne extends b{static featureName=Te;constructor(e,t=!0){super(e,Te,t);if(!(0,m.V)(this.agentIdentifier))return void this.deregisterDrain();const r=this.ee;let n;ve(r),this.eventsEE=(0,F.u)(r),this.eventsEE.on(Ee,(function(e,t){this.bstStart=(0,S.t)()})),this.eventsEE.on(Ae,(function(e,t){(0,x.p)("bst",[e[0],t,this.bstStart,(0,S.t)()],void 0,a.K7.sessionTrace,r)})),r.on(Se+Re,(function(e){this.time=(0,S.t)(),this.startPath=location.pathname+location.hash})),r.on(Se+xe,(function(e){(0,x.p)("bstHist",[location.pathname+location.hash,this.startPath,this.time],void 0,a.K7.sessionTrace,r)}));try{n=new PerformanceObserver((e=>{const t=e.getEntries();(0,x.p)(ye,[t],void 0,a.K7.sessionTrace,r)})),n.observe({type:we,buffered:!0})}catch(e){}this.importAggregator(e,{resourceObserver:n})}}var Oe=i(2614);class _e extends b{static featureName=t.TZ;#i;#o;constructor(e,r=!0){let n;super(e,t.TZ,r),this.replayRunning=!1,this.#o=e;try{n=JSON.parse(localStorage.getItem("".concat(Oe.H3,"_").concat(Oe.uh)))}catch(e){}(0,g.SR)(e.agentIdentifier)&&this.ee.on(t.G4.RECORD,(()=>this.#a())),this.#s(n)?(this.#i=n?.sessionReplayMode,this.#c()):this.importAggregator(e),this.ee.on("err",(e=>{this.replayRunning&&(this.errorNoticed=!0,(0,x.p)(t.G4.ERROR_DURING_REPLAY,[e],void 0,this.featureName,this.ee))})),this.ee.on(t.G4.REPLAY_RUNNING,(e=>{this.replayRunning=e}))}#s(e){return e&&(e.sessionReplayMode===Oe.g.FULL||e.sessionReplayMode===Oe.g.ERROR)||(0,g.Aw)(this.agentIdentifier)}#u=!1;async#c(e){if(!this.#u){this.#u=!0;try{const{Recorder:t}=await Promise.all([i.e(478),i.e(249)]).then(i.bind(i,8589));this.recorder??=new t({mode:this.#i,agentIdentifier:this.agentIdentifier,trigger:e,ee:this.ee}),this.recorder.startRecording(),this.abortHandler=this.recorder.stopRecording}catch(e){}this.importAggregator(this.#o,{recorder:this.recorder,errorNoticed:this.errorNoticed})}}#a(){this.featAggregate?this.featAggregate.mode!==Oe.g.FULL&&this.featAggregate.initializeRecording(Oe.g.FULL,!0):(this.#i=Oe.g.FULL,this.#c(t.Qb.API),this.recorder&&this.recorder.parent.mode!==Oe.g.FULL&&(this.recorder.parent.mode=Oe.g.FULL,this.recorder.stopRecording(),this.recorder.startRecording(),this.abortHandler=this.recorder.stopRecording))}}var Ie=i(3962);class je extends b{static featureName=Ie.TZ;constructor(e,t=!0){if(super(e,Ie.TZ,t),!p.RI||!(0,R.dV)().o.MO)return;const r=ve(this.ee);Ie.tC.forEach((e=>{(0,A.sp)(e,(e=>{a(e)}),!0)}));const n=()=>(0,x.p)("newURL",[(0,S.t)(),""+window.location],void 0,this.featureName,this.ee);r.on("pushState-end",n),r.on("replaceState-end",n);try{this.removeOnAbort=new AbortController}catch(e){}(0,A.sp)("popstate",(e=>(0,x.p)("newURL",[e.timeStamp,""+window.location],void 0,this.featureName,this.ee)),!0,this.removeOnAbort?.signal);let i=!1;const o=new((0,R.dV)().o.MO)(((e,t)=>{i||(i=!0,requestAnimationFrame((()=>{(0,x.p)("newDom",[(0,S.t)()],void 0,this.featureName,this.ee),i=!1})))})),a=(0,v.s)((e=>{(0,x.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,{domObserver:o})}}var Pe=i(7378);const Ce={},ke=["appendChild","insertBefore","replaceChild"];function Le(e){const t=function(e){return(e||B.ee).get("jsonp")}(e);if(!p.RI||Ce[t.debugId])return t;Ce[t.debugId]=!0;var r=(0,W.YM)(t),n=/[?&](?:callback|cb)=([^&#]+)/,i=/(.*)\.([^.]+)/,o=/^(\w+)(\.|$)(.*)$/;function a(e,t){if(!e)return t;const r=e.match(o),n=r[1];return a(r[3],t[n])}return r.inPlace(Node.prototype,ke,"dom-"),t.on("dom-start",(function(e){!function(e){if(!e||"string"!=typeof e.nodeName||"script"!==e.nodeName.toLowerCase())return;if("function"!=typeof e.addEventListener)return;var o=(s=e.src,c=s.match(n),c?c[1]:null);var s,c;if(!o)return;var u=function(e){var t=e.match(i);if(t&&t.length>=3)return{key:t[2],parent:a(t[1],window)};return{key:e,parent:window}}(o);if("function"!=typeof u.parent[u.key])return;var d={};function l(){t.emit("jsonp-end",[],d),e.removeEventListener("load",l,(0,A.jT)(!1)),e.removeEventListener("error",f,(0,A.jT)(!1))}function f(){t.emit("jsonp-error",[],d),t.emit("jsonp-end",[],d),e.removeEventListener("load",l,(0,A.jT)(!1)),e.removeEventListener("error",f,(0,A.jT)(!1))}r.inPlace(u.parent,[u.key],"cb-",d),e.addEventListener("load",l,(0,A.jT)(!1)),e.addEventListener("error",f,(0,A.jT)(!1)),t.emit("new-jsonp",[e.src],d)}(e[0])})),t}const He={};function De(e){const t=function(e){return(e||B.ee).get("promise")}(e);if(He[t.debugId])return t;He[t.debugId]=!0;var r=t.context,n=(0,W.YM)(t),i=p.gm.Promise;return i&&function(){function e(r){var o=t.context(),a=n(r,"executor-",o,null,!1);const s=Reflect.construct(i,[a],e);return t.context(s).getCtx=function(){return o},s}p.gm.Promise=e,Object.defineProperty(e,"name",{value:"Promise"}),e.toString=function(){return i.toString()},Object.setPrototypeOf(e,i),["all","race"].forEach((function(r){const n=i[r];e[r]=function(e){let i=!1;[...e||[]].forEach((e=>{this.resolve(e).then(a("all"===r),a(!1))}));const o=n.apply(this,arguments);return o;function a(e){return function(){t.emit("propagate",[null,!i],o,!1,!1),i=i||!e}}}})),["resolve","reject"].forEach((function(r){const n=i[r];e[r]=function(e){const r=n.apply(this,arguments);return e!==r&&t.emit("propagate",[e,!0],r,!1,!1),r}})),e.prototype=i.prototype;const o=i.prototype.then;i.prototype.then=function(...e){var i=this,a=r(i);a.promise=i,e[0]=n(e[0],"cb-",a,null,!1),e[1]=n(e[1],"cb-",a,null,!1);const s=o.apply(this,e);return a.nextPromise=s,t.emit("propagate",[i,!0],s,!1,!1),s},i.prototype.then[W.Jt]=o,t.on("executor-start",(function(e){e[0]=n(e[0],"resolve-",this,null,!1),e[1]=n(e[1],"resolve-",this,null,!1)})),t.on("executor-err",(function(e,t,r){e[1](r)})),t.on("cb-end",(function(e,r,n){t.emit("propagate",[n,!0],this.nextPromise,!1,!1)})),t.on("propagate",(function(e,r,n){this.getCtx&&!r||(this.getCtx=function(){if(e instanceof Promise)var r=t.context(e);return r&&r.getCtx?r.getCtx():this})}))}(),t}const Me={},Ke="setTimeout",Ue="setInterval",Ve="clearTimeout",Ge="-start",Fe=[Ke,"setImmediate",Ue,Ve,"clearImmediate"];function Be(e){const t=function(e){return(e||B.ee).get("timer")}(e);if(Me[t.debugId]++)return t;Me[t.debugId]=1;var r=(0,W.YM)(t);return r.inPlace(p.gm,Fe.slice(0,2),Ke+"-"),r.inPlace(p.gm,Fe.slice(2,3),Ue+"-"),r.inPlace(p.gm,Fe.slice(3),Ve+"-"),t.on(Ue+Ge,(function(e,t,n){e[0]=r(e[0],"fn-",null,n)})),t.on(Ke+Ge,(function(e,t,n){this.method=n,this.timerDuration=isNaN(e[1])?0:+e[1],e[0]=r(e[0],"fn-",this,n)})),t}const We={};function ze(e){const t=function(e){return(e||B.ee).get("mutation")}(e);if(!p.RI||We[t.debugId])return t;We[t.debugId]=!0;var r=(0,W.YM)(t),n=p.gm.MutationObserver;return n&&(window.MutationObserver=function(e){return this instanceof n?new n(r(e,"fn-")):n.apply(this,arguments)},MutationObserver.prototype=n.prototype),t}const{TZ:qe,d3:Ze,Kp:Ye,$p:Xe,wW:Je,e5:Qe,tH:$e,uP:et,rw:tt,Lc:rt}=Pe;class nt extends b{static featureName=qe;constructor(e,t=!0){if(super(e,qe,t),!p.RI)return;try{this.removeOnAbort=new AbortController}catch(e){}let r,n=0;const i=this.ee.get("tracer"),o=Le(this.ee),a=De(this.ee),s=Be(this.ee),c=Z(this.ee),u=this.ee.get("events"),d=ne(this.ee),l=ve(this.ee),f=ze(this.ee);function h(e,t){l.emit("newURL",[""+window.location,t])}function g(){n++,r=window.location.hash,this[et]=(0,S.t)()}function m(){n--,window.location.hash!==r&&h(0,!0);var e=(0,S.t)();this[Qe]=~~this[Qe]+e-this[et],this[rt]=e}function v(e,t){e.on(t,(function(){this[t]=(0,S.t)()}))}this.ee.on(et,g),a.on(tt,g),o.on(tt,g),this.ee.on(rt,m),a.on(Je,m),o.on(Je,m),this.ee.on("fn-err",((...t)=>{t[2]?.__newrelic?.[e.agentIdentifier]||(0,x.p)("function-err",[...t],void 0,this.featureName,this.ee)})),this.ee.buffer([et,rt,"xhr-resolved"],this.featureName),u.buffer([et],this.featureName),s.buffer(["setTimeout"+Ye,"clearTimeout"+Ze,et],this.featureName),c.buffer([et,"new-xhr","send-xhr"+Ze],this.featureName),d.buffer([$e+Ze,$e+"-done",$e+Xe+Ze,$e+Xe+Ye],this.featureName),l.buffer(["newURL"],this.featureName),f.buffer([et],this.featureName),a.buffer(["propagate",tt,Je,"executor-err","resolve"+Ze],this.featureName),i.buffer([et,"no-"+et],this.featureName),o.buffer(["new-jsonp","cb-start","jsonp-error","jsonp-end"],this.featureName),v(d,$e+Ze),v(d,$e+"-done"),v(o,"new-jsonp"),v(o,"jsonp-end"),v(o,"cb-start"),l.on("pushState-end",h),l.on("replaceState-end",h),window.addEventListener("hashchange",h,(0,A.jT)(!0,this.removeOnAbort?.signal)),window.addEventListener("load",h,(0,A.jT)(!0,this.removeOnAbort?.signal)),window.addEventListener("popstate",(function(){h(0,n>1)}),(0,A.jT)(!0,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e)}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var it=i(3333);class ot extends b{static featureName=it.TZ;constructor(e,t=!0){super(e,it.TZ,t);const r=[e.init.page_action.enabled,e.init.performance.capture_marks,e.init.performance.capture_measures,e.init.user_actions.enabled];p.RI&&e.init.user_actions.enabled&&(it.Zp.forEach((e=>(0,A.sp)(e,(e=>(0,x.p)("ua",[e],void 0,this.featureName,this.ee)),!0))),it.qN.forEach((e=>(0,A.sp)(e,(e=>(0,x.p)("ua",[e],void 0,this.featureName,this.ee)))))),r.some((e=>e))?this.importAggregator(e):this.deregisterDrain()}}var at=i(993),st=i(3785);class ct extends b{static featureName=at.TZ;constructor(e,t=!0){super(e,at.TZ,t);const r=this.ee;this.ee.on("wrap-logger-end",(function([e]){const{level:t,customAttributes:n}=this;(0,st.R)(r,e,n,t)})),this.importAggregator(e)}}new class extends o{constructor(t,r){super(r),p.gm?(this.features={},(0,R.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(t.features||[]),this.desiredFeatures.add(w),this.runSoftNavOverSpa=[...this.desiredFeatures].some((e=>e.featureName===a.K7.softNav)),(0,d.j)(this,t,t.loaderType||"agent"),this.run()):(0,e.R)(21)}get config(){return{info:this.info,init:this.init,loader_config:this.loader_config,runtime:this.runtime}}run(){try{const t=u(this.agentIdentifier),r=[...this.desiredFeatures];r.sort(((e,t)=>a.P3[e.featureName]-a.P3[t.featureName])),r.forEach((r=>{if(!t[r.featureName]&&r.featureName!==a.K7.pageViewEvent)return;if(this.runSoftNavOverSpa&&r.featureName===a.K7.spa)return;if(!this.runSoftNavOverSpa&&r.featureName===a.K7.softNav)return;const n=function(e){switch(e){case a.K7.ajax:return[a.K7.jserrors];case a.K7.sessionTrace:return[a.K7.ajax,a.K7.pageViewEvent];case a.K7.sessionReplay:return[a.K7.sessionTrace];case a.K7.pageViewTiming:return[a.K7.pageViewEvent];default:return[]}}(r.featureName).filter((e=>!(e in this.features)));n.length>0&&(0,e.R)(36,{targetFeature:r.featureName,missingDependencies:n}),this.features[r.featureName]=new r(this)}))}catch(t){(0,e.R)(22,t);for(const e in this.features)this.features[e].abortHandler?.();const r=(0,R.Zm)();delete r.initializedAgents[this.agentIdentifier]?.api,delete r.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return r.ee.get(this.agentIdentifier).abort(),!1}}}({features:[he,w,N,Ne,_e,_,D,ot,ct,je,nt],loaderType:"spa"})})()})(); </script><link rel="preconnect" href="https://cdn.cookielaw.org"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><link rel="preconnect" href="https://fonts.googleapis.com" crossorigin="anonymous"/><link rel="preconnect" href="https://www.googletagmanager.com"/><link rel="stylesheet" href="/build/_assets/styles.generated-IVZR5GKI.css"/><link rel="stylesheet" href="/build/_assets/brand.generated-PZFOD3QD.css"/><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&amp;display=swap"/><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&amp;display=swap"/><link rel="icon" type="image/x-icon" href="/build/_assets/darkreading-DSJITCUD.ico"/><noscript><style type="text/css">.gptHideContent { opacity: 1!important; }</style></noscript><script src="https://loader.bridged.media/bridged-agent.js"></script><script type="text/javascript" src="https://cdn.cookielaw.org/consent/4b083961-e2ac-4755-8801-f7c83a5fb187/OtAutoBlock.js"></script><script type="text/javascript" src="https://cdn.cookielaw.org/scripttemplates/otSDKStub.js" data-domain-script="4b083961-e2ac-4755-8801-f7c83a5fb187"></script><script async="" src="//static.adsafeprotected.com/iasPET.1.js"></script><script async="" src="https://securepubads.g.doubleclick.net/tag/js/gpt.js" type="text/javascript"></script></head><body class="brand-darkreading gptHideContent"><noscript></noscript><div id="bigsky_v"></div><div id="fb-root"></div><div id="welcome_v"></div><main data-theme="theme1" class="Provider"><div data-testid="ad_blocker" class="ads ad adsbox doubleclick ad-placement carbon-ads" style="height:1px;width:1px;position:absolute;left:-999em;top:-999em"></div><div><div data-template="layout" class="Layout"><nav data-module="navigation" aria-label="navigation" class="Navigation"><div data-testid="header" class="Navigation-HeaderWrapper"><div class="FullScreenBackground Navigation-HeaderBackground"></div><div class="Navigation-Header"><div class="InformaBar" data-component="informa-bar"><div class="InformaBar-ContentSection InformaBar-ContentSection_hidden" data-testid="informa-bar-content-section"><div class="InformaBar-LeftSection" data-testid="informa-bar-left-section"><div>Dark Reading is part of the Informa TechTarget Division of Informa PLC</div><div><a class="InformaBar-SubMenuItem" data-testid="informa-bar-sub-menu-item" href="https://www.informa.com/" title="Informa PLC" target="_blank" rel="noreferrer">Informa PLC</a><span class="InformaBar-Delimiter">|</span><a class="InformaBar-SubMenuItem" data-testid="informa-bar-sub-menu-item" href="https://www.informa.com/about-us/" title="ABOUT US" target="_blank" rel="noreferrer">ABOUT US</a><span class="InformaBar-Delimiter">|</span><a class="InformaBar-SubMenuItem" data-testid="informa-bar-sub-menu-item" href="https://www.informa.com/investors/" title="INVESTOR RELATIONS" target="_blank" rel="noreferrer">INVESTOR RELATIONS</a><span class="InformaBar-Delimiter">|</span><a class="InformaBar-SubMenuItem" data-testid="informa-bar-sub-menu-item" href="https://www.informa.com/talent/" title="TALENT" target="_blank" rel="noreferrer">TALENT</a></div></div><div class="InformaBar-RightSection" data-testid="informa-bar-right-section">This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC&#x27;s registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales and Scotlan. Number 8860726.</div></div><div class="InformaBar-LogoSection" data-testid="informa-bar-logo-section" role="button" tabindex="0" aria-label="Open Informa bar"><div class="InformaBar-LogoWrapper"><img class="InformaBar-Logo" src="/build/_assets/informaLogoWhite-RZAE7EJI.png" alt="Logo Informa"/></div><span class="InformaBar-IconWrapper InformaBar-IconWrapper_closed"><svg viewBox="0 0 320 512" aria-hidden="true" focusable="false" role="img" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="currentColor" height="100%"><path fill="#ffffff" d="M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z"></path></svg></span></div></div></div></div><div class="Navigation-SecondaryMenuWrapper"><div class="FullScreenBackground Navigation-SecondaryMenuBackground"></div><div class="Navigation-SecondaryMenu"><nav data-testid="SecondaryMenu" class="SecondaryMenu"><a class="SecondaryMenu-Link" data-discover="true" href="/program/black-hat">Black Hat News</a><a class="SecondaryMenu-Link" data-discover="true" href="/program/omdia-cybersecurity">Omdia Cybersecurity</a><a class="SecondaryMenu-Link" target="_blank" href="https://reg.darkreading.com/media-kit?kcode=drsitehd">Advertise</a></nav></div></div><div style="padding-top:0px"></div><div id="navigation-header" class="Navigation-NavBase"><div data-testid="navBase" class="NavBase"><div class="NavBase-Content"><div class="FullScreenBackground NavBase-SecondaryMenuBackground"></div><div class="NavBase-HeaderWrapper"><div class="NavBase-IconsWrapper"><button data-testid="navBase-megaMenuButton" class="NavBase-MegaMenuButton" aria-label="Open Mega menu"><span data-component="icon" data-name="Bars" class="NavBase-MegaMenuIcon NavBase-MegaMenuIcon_iconVariant_small NavBase-MegaMenuIcon_iconType_bars" style="mask-image:url(/build/_assets/Bars-F4G2A5NO.svg);-webkit-mask-image:url(/build/_assets/Bars-F4G2A5NO.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></button><button data-testid="SearchButtonDesktop" class="NavBase-SearchButtonDesktop" aria-label="Open Search"><span data-component="icon" data-name="Search" class="NavBase-SearchIcon NavBase-SearchIcon_iconVariant_large NavBase-SearchIcon_iconType_search" style="mask-image:url(/build/_assets/Search-T2ANYVG5.svg);-webkit-mask-image:url(/build/_assets/Search-T2ANYVG5.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></button><button data-testid="SearchButtonTablet" class="NavBase-SearchButtonTablet" aria-label="Open Search in MegaMenu"><span data-component="icon" data-name="Search" class="NavBase-SearchIcon NavBase-SearchIcon_iconVariant_small NavBase-SearchIcon_iconType_search" style="mask-image:url(/build/_assets/Search-T2ANYVG5.svg);-webkit-mask-image:url(/build/_assets/Search-T2ANYVG5.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></button></div><div class="NavBase-LogoWrapper"><button data-testid="navBase-LogoMegaMenuButton" class="NavBase-LogoMegaMenuButton" aria-label="Open Mega menu"><span data-component="icon" data-name="Bars" class="NavBase-LogoMegaMenuIcon NavBase-LogoMegaMenuIcon_iconVariant_small NavBase-LogoMegaMenuIcon_iconType_bars" style="mask-image:url(/build/_assets/Bars-F4G2A5NO.svg);-webkit-mask-image:url(/build/_assets/Bars-F4G2A5NO.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></button><a class="NavBase-Logo" data-discover="true" href="/"><img data-testid="logo-image" data-component="image" class="NavBase-LogoImage" data-src="https://eu-images.contentstack.com/v3/assets/blt6d90778a997de1cd/blte9ead971f13c662e/65437029846d7c040a6e588d/Logo_-_Dark_Reading.svg?width=476&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt6d90778a997de1cd/blte9ead971f13c662e/65437029846d7c040a6e588d/Logo_-_Dark_Reading.svg?width=476&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Dark Reading Logo" title="Dark Reading Logo"/></a></div><div class="NavBase-RegisterWrapper"><div data-module="newsletter-signup-promo"><div class="NewsletterSignupPromo-Button NewsletterSignupPromo-Button_small NewsletterSignupButton"><a data-component="button" data-testid="headerSmallNewsletterButton" class="Button Button_size_small Button_variant_primaryFilled" href="https://dr-resources.darkreading.com/free/w_defa3135/prgm.cgi" target="_blank" rel="nofollow" data-name="subscribe-nav" data-action-type="sign-up"><span data-component="icon" data-name="Email" class="Button-Icon Button-Icon_position_left" style="mask-image:url(/build/_assets/Email-47H7P533.svg);-webkit-mask-image:url(/build/_assets/Email-47H7P533.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span><span class="Button-ContentWrapper">Newsletter Sign-Up</span></a></div><div class="NewsletterSignupPromo-Button NewsletterSignupPromo-Button_medium NewsletterSignupButton"><div data-component="social-share" class="SocialShare SocialShare_variant_layout Layout-SocialShare"><a target="_blank" rel="noreferrer" aria-label="Twitter" class="Layout-SocialLink" href="https://twitter.com/DarkReading"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_layout"><span data-component="icon" data-name="Twitter" class="SocialShare-Icon SocialShare-Icon_variant_layout SocialShare-Icon_type_twitter" style="mask-image:url(/build/_assets/Twitter-WD5AOEQ7.svg);-webkit-mask-image:url(/build/_assets/Twitter-WD5AOEQ7.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></a><a target="_blank" rel="noreferrer" aria-label="Linkedin" class="Layout-SocialLink" href="https://www.linkedin.com/company/dark-reading/"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_layout"><span data-component="icon" data-name="Linkedin" class="SocialShare-Icon SocialShare-Icon_variant_layout SocialShare-Icon_type_linkedin" style="mask-image:url(/build/_assets/Linkedin-VQUF3EEQ.svg);-webkit-mask-image:url(/build/_assets/Linkedin-VQUF3EEQ.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></a><a target="_blank" rel="noreferrer" aria-label="Facebook" class="Layout-SocialLink" href="https://www.facebook.com/darkreadingcom/"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_layout"><span data-component="icon" data-name="Facebook" class="SocialShare-Icon SocialShare-Icon_variant_layout SocialShare-Icon_type_facebook" style="mask-image:url(/build/_assets/Facebook-CJB5G2HY.svg);-webkit-mask-image:url(/build/_assets/Facebook-CJB5G2HY.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></a><a target="_blank" rel="noreferrer" aria-label="Youtube" class="Layout-SocialLink" href="https://www.youtube.com/@DarkReadingOfficialYT"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_layout"><span data-component="icon" data-name="Youtube" class="SocialShare-Icon SocialShare-Icon_variant_layout SocialShare-Icon_type_youtube" style="mask-image:url(/build/_assets/Youtube-S4PSC4UA.svg);-webkit-mask-image:url(/build/_assets/Youtube-S4PSC4UA.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></a><a target="_blank" rel="noreferrer" aria-label="RSS" class="Layout-SocialLink" href="https://www.darkreading.com/rss.xml"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_layout"><span data-component="icon" data-name="RSS" class="SocialShare-Icon SocialShare-Icon_variant_layout SocialShare-Icon_type_rss" style="mask-image:url(/build/_assets/RSS-3XFHIVCK.svg);-webkit-mask-image:url(/build/_assets/RSS-3XFHIVCK.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></a><a target="_blank" rel="noreferrer" aria-label="GoogleNews" class="Layout-SocialLink" href="https://news.google.com/publications/CAAqBwgKMKmknwswtq63Aw?ceid=US:en&amp;oc=3&amp;hl=en-US&amp;gl=US"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_layout"><span data-component="icon" data-name="GoogleNews" class="SocialShare-Icon SocialShare-Icon_variant_layout SocialShare-Icon_type_googleNews" style="mask-image:url(/build/_assets/GoogleNews-6O72APW7.svg);-webkit-mask-image:url(/build/_assets/GoogleNews-6O72APW7.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></a></div><a data-component="button" data-testid="headerMediumNewsletterButton" class="Button Button_size_medium Button_variant_primaryFilled" href="https://dr-resources.darkreading.com/free/w_defa3135/prgm.cgi" target="_blank" rel="nofollow" data-name="subscribe-nav" data-action-type="sign-up"><span data-component="icon" data-name="Email" class="Button-Icon Button-Icon_position_left" style="mask-image:url(/build/_assets/Email-47H7P533.svg);-webkit-mask-image:url(/build/_assets/Email-47H7P533.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span><span class="Button-ContentWrapper">Newsletter Sign-Up</span></a></div></div><button data-testid="RegisterSearchButton" class="NavBase-RegisterSearchButton" aria-label="Open Search in MegaMenu"><span data-component="icon" data-name="Search" class="NavBase-SearchIcon NavBase-SearchIcon_iconVariant_large NavBase-SearchIcon_iconType_search" style="mask-image:url(/build/_assets/Search-T2ANYVG5.svg);-webkit-mask-image:url(/build/_assets/Search-T2ANYVG5.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></button></div></div><div class="NavBase-SearchWrapper"><div class="FullScreenBackground NavBase-SearchBackground"></div><button data-testid="SearchCloseButton" class="NavBase-SearchCloseButton" aria-label="Close Search"><span data-component="icon" data-name="Close" class="NavBase-SearchIcon NavBase-SearchIcon_iconVariant_medium NavBase-SearchIcon_iconType_close" style="mask-image:url(/build/_assets/Close-KKOYAUD6.svg);-webkit-mask-image:url(/build/_assets/Close-KKOYAUD6.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></button></div></div></div><div class="Navigation-MainMenu"><div data-testid="mainMenu"><div class="FullScreenBackground MainMenu-BackgroundSubmenu"></div><div class="FullScreenBackground MainMenu-BackgroundMenuItem"></div><div class="MainMenu-Content"><div class="MainMenu-MegaMenuButtonWrapper"><button data-testid="mainMenu-MegaMenuButton" aria-label="Open MegaMenu" class="MainMenu-MegaMenuButton"><span data-component="icon" data-name="Bars" class="MainMenu-MegaMenuIcon" style="mask-image:url(/build/_assets/Bars-F4G2A5NO.svg);-webkit-mask-image:url(/build/_assets/Bars-F4G2A5NO.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></button></div><div class="MainMenu-ItemsWrapper" role="menu"><div class="MainMenu-MenuItemWrapper"><div class="MainMenu-MenuItem" role="menuitem" tabindex="0" data-testid="openSubMenu" aria-label="Open Sub menu of Cybersecurity Topics"><span class="MainMenu-MainTitle">Cybersecurity Topics<span data-component="icon" data-name="ChevronDown" class="MainMenu-SubMenuIcon" style="mask-image:url(/build/_assets/ChevronDown-PF4EH6J6.svg);-webkit-mask-image:url(/build/_assets/ChevronDown-PF4EH6J6.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></div><div class="MainMenu-SubMenuWrapper"><div class="MainMenu-SubMenuContent"><div data-module="sub-menu" class="SubMenu MainMenu-SubMenu" role="presentation"><div class="SubMenu-Container"><div class="SubMenu-RelatedTopicsWrapper"><h4 class="SubMenu-RelatedTopics">Related Topics</h4><div class="SubMenu-CasualLinkWrapper" data-testid="related"><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/application-security">Application Security</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/cybersecurity-operations/cybersecurity-careers">Cybersecurity Careers</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/cloud-security">Cloud Security</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/cyber-risk">Cyber Risk</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/cyberattacks-data-breaches">Cyberattacks &amp; Data Breaches</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/cybersecurity-analytics">Cybersecurity Analytics</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/cybersecurity-operations">Cybersecurity Operations</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/cyber-risk/data-privacy">Data Privacy</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/endpoint-security">Endpoint Security</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/ics-ot-security">ICS/OT Security</a></li></ul><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/cybersecurity-operations/identity-access-management-security">Identity &amp; Access Mgmt Security</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/vulnerabilities-threats/insider-threats">Insider Threats</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/ics-ot-security/iot">IoT</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/endpoint-security/mobile-security">Mobile Security</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/cybersecurity-operations/perimeter">Perimeter</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/cybersecurity-operations/physical-security">Physical Security</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/endpoint-security/remote-workforce">Remote Workforce</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/threat-intelligence">Threat Intelligence</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/vulnerabilities-threats">Vulnerabilities &amp; Threats</a></li></ul></div></div><div class="SubMenu-RecentContentWrapper" data-testid="recent"></div></div></div></div></div></div><div class="MainMenu-MenuItemWrapper"><div class="MainMenu-MenuItem" role="menuitem" tabindex="0" data-testid="openSubMenu" aria-label="Open Sub menu of World "><span class="MainMenu-MainTitle">World <span data-component="icon" data-name="ChevronDown" class="MainMenu-SubMenuIcon" style="mask-image:url(/build/_assets/ChevronDown-PF4EH6J6.svg);-webkit-mask-image:url(/build/_assets/ChevronDown-PF4EH6J6.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></div><div class="MainMenu-SubMenuWrapper"><div class="MainMenu-SubMenuContent"><div data-module="sub-menu" class="SubMenu MainMenu-SubMenu" role="presentation"><div class="SubMenu-Container"><div class="SubMenu-RelatedTopicsWrapper"><h4 class="SubMenu-RelatedTopics">Related Topics</h4><div class="SubMenu-CasualLinkWrapper" data-testid="related"><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/program/dr-global">DR Global</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/keyword/middle-east-africa">Middle East &amp; Africa</a></li></ul><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/keyword/asia-pacific">Asia Pacific</a></li></ul></div></div><div class="SubMenu-RecentContentWrapper" data-testid="recent"><div data-testid="see-more" class="SubMenu-SeeMore"><a class="SubMenu-MoreContent SubMenu-MoreContent_noRecent" data-discover="true" href="/program/dr-global"><span class="SubMenu-SeeMoreText">See All</span><span data-component="icon" data-name="ChevronRight" class="SubMenu-SeeMoreIcon" style="mask-image:url(/build/_assets/ChevronRight-NHDKEYGJ.svg);-webkit-mask-image:url(/build/_assets/ChevronRight-NHDKEYGJ.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></a></div></div></div></div></div></div></div><div class="MainMenu-TitleWrapper"><a class="MainMenu-Title" data-discover="true" href="/program/the-edge">The Edge</a></div><div class="MainMenu-TitleWrapper"><a class="MainMenu-Title" data-discover="true" href="/program/dr-technology">DR Technology</a></div><div class="MainMenu-MenuItemWrapper"><div class="MainMenu-MenuItem" role="menuitem" tabindex="0" data-testid="openSubMenu" aria-label="Open Sub menu of Events"><span class="MainMenu-MainTitle">Events<span data-component="icon" data-name="ChevronDown" class="MainMenu-SubMenuIcon" style="mask-image:url(/build/_assets/ChevronDown-PF4EH6J6.svg);-webkit-mask-image:url(/build/_assets/ChevronDown-PF4EH6J6.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></div><div class="MainMenu-SubMenuWrapper"><div class="MainMenu-SubMenuContent"><div data-module="sub-menu" class="SubMenu MainMenu-SubMenu" role="presentation"><div class="SubMenu-Container"><div class="SubMenu-RelatedTopicsWrapper"><h4 class="SubMenu-RelatedTopics">Related Topics</h4><div class="SubMenu-CasualLinkWrapper" data-testid="related"><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/events">Upcoming Events</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/podcasts">Podcasts</a></li></ul><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/resources?types=Webinar">Webinars</a></li></ul></div></div><div class="SubMenu-RecentContentWrapper" data-testid="recent"><div data-testid="see-more" class="SubMenu-SeeMore"><a class="SubMenu-MoreContent SubMenu-MoreContent_noRecent" data-discover="true" href="/events"><span class="SubMenu-SeeMoreText">SEE ALL</span><span data-component="icon" data-name="ChevronRight" class="SubMenu-SeeMoreIcon" style="mask-image:url(/build/_assets/ChevronRight-NHDKEYGJ.svg);-webkit-mask-image:url(/build/_assets/ChevronRight-NHDKEYGJ.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></a></div></div></div></div></div></div></div><div class="MainMenu-MenuItemWrapper"><div class="MainMenu-MenuItem" role="menuitem" tabindex="0" data-testid="openSubMenu" aria-label="Open Sub menu of Resources"><span class="MainMenu-MainTitle">Resources<span data-component="icon" data-name="ChevronDown" class="MainMenu-SubMenuIcon" style="mask-image:url(/build/_assets/ChevronDown-PF4EH6J6.svg);-webkit-mask-image:url(/build/_assets/ChevronDown-PF4EH6J6.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></div><div class="MainMenu-SubMenuWrapper"><div class="MainMenu-SubMenuContent"><div data-module="sub-menu" class="SubMenu MainMenu-SubMenu" role="presentation"><div class="SubMenu-Container"><div class="SubMenu-RelatedTopicsWrapper"><h4 class="SubMenu-RelatedTopics">Related Topics</h4><div class="SubMenu-CasualLinkWrapper" data-testid="related"><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/resources">Library</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" rel="nofollow" target="_blank" href="https://dr-resources.darkreading.com/free/w_defa3135/prgm.cgi">Newsletters</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/podcasts">Podcasts</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/resources?types=Report">Reports</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/videos">Videos</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/resources?types=Webinar">Webinars</a></li></ul><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/resources?types=Whitepaper">Whitepapers</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/ "> </a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/ "> </a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/ "> </a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/ "> </a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/keyword/partner-perspectives">Partner Perspectives</a></li></ul></div></div><div class="SubMenu-RecentContentWrapper" data-testid="recent"><div data-testid="see-more" class="SubMenu-SeeMore"><a class="SubMenu-MoreContent SubMenu-MoreContent_noRecent" data-discover="true" href="/resources"><span class="SubMenu-SeeMoreText">SEE ALL</span><span data-component="icon" data-name="ChevronRight" class="SubMenu-SeeMoreIcon" style="mask-image:url(/build/_assets/ChevronRight-NHDKEYGJ.svg);-webkit-mask-image:url(/build/_assets/ChevronRight-NHDKEYGJ.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></a></div></div></div></div></div></div></div></div><div class="MainMenu-SearchButtonWrapper"><button data-testid="mainMenu-SearchButton" aria-label="Open Search" class="MainMenu-SearchButton"><span data-component="icon" data-name="Search" class="MainMenu-SearchButtonIcon" style="mask-image:url(/build/_assets/Search-T2ANYVG5.svg);-webkit-mask-image:url(/build/_assets/Search-T2ANYVG5.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></button></div></div><div class="MainMenu-SearchWrapper"><div class="FullScreenBackground MainMenu-SearchBackground MainMenu-SearchBackground_withSearchBar"></div><button data-testid="mainMenu-SearchCloseButton" class="MainMenu-SearchCloseButton" aria-label="Close Search"><span data-component="icon" data-name="Close" class="MainMenu-SearchCloseIcon" style="mask-image:url(/build/_assets/Close-KKOYAUD6.svg);-webkit-mask-image:url(/build/_assets/Close-KKOYAUD6.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></button></div></div></div></div></nav><section class="Layout-Section"><div id="iiris-identity" data-testid="iris-identity"></div><div data-template="article"><div class="TwoColumnLayout"><div id="portal-root"></div><div class="TwoColumnLayout-Head"><div class="ArticleBase-Header"><ul class="ArticleBase-Topics" data-testid="article-topics"><li class="ArticleBase-Topic"><a data-component="keyword" class="Keyword Keyword_variant_category Keyword_title_cyberattacksDataBreaches" data-discover="true" href="/cyberattacks-data-breaches">Cyberattacks &amp; Data Breaches</a></li><li class="ArticleBase-Topic"><a data-component="keyword" class="Keyword Keyword_variant_category Keyword_title_applicationSecurity" data-discover="true" href="/application-security">Application Security</a></li><li class="ArticleBase-Topic"><a data-component="keyword" class="Keyword Keyword_variant_category Keyword_title_threatIntelligence" data-discover="true" href="/threat-intelligence">Threat Intelligence</a></li><li class="ArticleBase-Topic"><a data-component="keyword" class="Keyword Keyword_variant_category Keyword_title_cybersecurityOperations" data-discover="true" href="/cybersecurity-operations">Cybersecurity Operations</a></li></ul><div><h1 class="ArticleBase-HeaderTitle"><noscript><span class="ArticleBase-LargeTitle">Sprawling 'Operation Digital Eye' Attack Targets European IT Orgs</span></noscript><span class="ArticleBase-DefaultTitle" data-testid="article-default-title">Sprawling 'Operation Digital Eye' Attack Targets European IT Orgs</span></h1><p class="ArticleBase-HeaderSummary" data-testid="article-summary">A Chinese threat actor infiltrated several IT and security companies in a bring-your-own VS code, with an eye to carrying out a supply-chain-based espionage attack.</p></div></div></div><div class="TwoColumnLayout-Content"><div class="TwoColumnLayout-Body"><div class="ArticleBase-Body" data-testid="article-base-body"><div class="ArticleBase-Contributors" data-testid="article-base-contributors"><div class="Contributors Contributors_variant_normal Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Nate Nelson, Contributing Writer" data-discover="true" href="/author/nate-nelson"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt6d90778a997de1cd/blt00df7fa701809c8c/64f15c901c6887515143a4d1/Nate-Nelson_(1).jpg?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt6d90778a997de1cd/blt00df7fa701809c8c/64f15c901c6887515143a4d1/Nate-Nelson_(1).jpg?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Nate Nelson, Contributing Writer" title="Picture of Nate Nelson, Contributing Writer"/></a></div><div class="Contributors-InfoWrapper"><a class="Contributors-ContributorName" data-testid="contributor-name" data-discover="true" href="/author/nate-nelson">Nate Nelson, Contributing Writer</a><p class="Contributors-Date" data-testid="contributors-date">December 10, 2024</p></div></div><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_normal"><span data-component="icon" data-name="Clock" class="ArticleReadTime-Icon" style="mask-image:url(/build/_assets/Clock-MSX4SBCD.svg);-webkit-mask-image:url(/build/_assets/Clock-MSX4SBCD.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span><span>4 Min<!-- --> <!-- -->Read</span></div></div><div class="ArticleBase-FeaturedImageWrapper" data-testid="featured-image"><div data-component="captioned-content" class="CaptionedContent"><div class="CaptionedContent-Content"><img data-component="image" class="ArticleBase-FeaturedImage" data-src="https://eu-images.contentstack.com/v3/assets/blt6d90778a997de1cd/bltf107a8b2df047202/67573f4aa643a9191dd33405/VS_Code-Araki_Illustrations-Alamy.jpg?width=1280&amp;auto=webp&amp;quality=95&amp;format=jpg&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt6d90778a997de1cd/bltf107a8b2df047202/67573f4aa643a9191dd33405/VS_Code-Araki_Illustrations-Alamy.jpg?width=1280&amp;auto=webp&amp;quality=95&amp;format=jpg&amp;disable=upscale" loading="eager" alt="The Visual Studio Code logo" title="The Visual Studio Code logo"/></div><div class="CaptionedContent-Caption" data-testid="captioned-content-caption"><span class="CaptionedContent-CreditTo">Source: Araki Illustrations via Alamy Stock Photo</span></div></div></div><div class="SocialShare"><div data-component="social-share" class="SocialShare SocialShare_variant_button ArticleBase-SocialShare ArticleBase-SocialShare_first"><a target="_blank" rel="noreferrer" aria-label="Linkedin" href="https://www.linkedin.com/sharing/share-offsite/?url=https://www.darkreading.com/cyberattacks-data-breaches/operation-digital-eye-attack-targets-european-it-orgs"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_button"><span data-component="icon" data-name="Linkedin" class="SocialShare-Icon SocialShare-Icon_variant_button SocialShare-Icon_type_linkedin" style="mask-image:url(/build/_assets/Linkedin-VQUF3EEQ.svg);-webkit-mask-image:url(/build/_assets/Linkedin-VQUF3EEQ.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></a><a target="_blank" rel="noreferrer" aria-label="Facebook" href="http://www.facebook.com/sharer/sharer.php?u=https://www.darkreading.com/cyberattacks-data-breaches/operation-digital-eye-attack-targets-european-it-orgs"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_button"><span data-component="icon" data-name="Facebook" class="SocialShare-Icon SocialShare-Icon_variant_button SocialShare-Icon_type_facebook" style="mask-image:url(/build/_assets/Facebook-CJB5G2HY.svg);-webkit-mask-image:url(/build/_assets/Facebook-CJB5G2HY.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></a><a target="_blank" rel="noreferrer" aria-label="Twitter" href="http://www.twitter.com/intent/tweet?url=https://www.darkreading.com/cyberattacks-data-breaches/operation-digital-eye-attack-targets-european-it-orgs"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_button"><span data-component="icon" data-name="Twitter" class="SocialShare-Icon SocialShare-Icon_variant_button SocialShare-Icon_type_twitter" style="mask-image:url(/build/_assets/Twitter-WD5AOEQ7.svg);-webkit-mask-image:url(/build/_assets/Twitter-WD5AOEQ7.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></a><a target="_blank" rel="noreferrer" aria-label="Reddit" href="https://www.reddit.com/submit?url=https://www.darkreading.com/cyberattacks-data-breaches/operation-digital-eye-attack-targets-european-it-orgs&amp;title=Sprawling%20&#x27;Operation%20Digital%20Eye&#x27;%20Attack%20Targets%20European%20IT%20Orgs"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_button"><span data-component="icon" data-name="Reddit" class="SocialShare-Icon SocialShare-Icon_variant_button SocialShare-Icon_type_reddit" style="mask-image:url(/build/_assets/Reddit-5TRN6TDE.svg);-webkit-mask-image:url(/build/_assets/Reddit-5TRN6TDE.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></a><a target="_blank" rel="noreferrer" aria-label="Email" href="/cdn-cgi/l/email-protection#ffc08c8a9d959a9c8bc2ac8f8d9e8893969198dfd9dc87cdc8c4b08f9a8d9e8b969091dfbb9698968b9e93dfba869ad9dc87cdc8c4dfbe8b8b9e9c94dfab9e8d989a8b8cdfba8a8d908f9a9e91dfb6abdfb08d988cd99e928fc49d909b86c2b6dacdcf8b97908a98978bdacdcf8b979adacdcf999093939088969198dacdcf998d9092dacdcfbb9e8d94dacdcfad9a9e9b969198dacdcf929698978bdacdcf96918b9a8d9a8c8bdacdcf86908ad1dacfbbdacfbedacfbbdacfbedacdcfac8f8d9e8893969198dacdcfd9dc87cdc8c4b08f9a8d9e8b969091dacdcfbb9698968b9e93dacdcfba869ad9dc87cdc8c4dacdcfbe8b8b9e9c94dacdcfab9e8d989a8b8cdacdcfba8a8d908f9a9e91dacdcfb6abdacdcfb08d988cdacfbbdacfbe978b8b8f8cdaccbedacdb9dacdb9888888d19b9e8d948d9a9e9b969198d19c9092dacdb99c869d9a8d9e8b8b9e9c948cd29b9e8b9ed29d8d9a9e9c979a8cdacdb9908f9a8d9e8b969091d29b9698968b9e93d29a869ad29e8b8b9e9c94d28b9e8d989a8b8cd29a8a8d908f9a9e91d2968bd2908d988c"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_button"><span data-component="icon" data-name="Email" class="SocialShare-Icon SocialShare-Icon_variant_button SocialShare-Icon_type_email" style="mask-image:url(/build/_assets/Email-47H7P533.svg);-webkit-mask-image:url(/build/_assets/Email-47H7P533.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></a><div data-component="print"><span role="button" aria-label="print" data-testid="print-button" tabindex="0" class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_button"><span data-component="icon" data-name="Printer" class="SocialShare-Icon SocialShare-Icon_variant_button" style="mask-image:url(/build/_assets/Printer-U5RDBVFZ.svg);-webkit-mask-image:url(/build/_assets/Printer-U5RDBVFZ.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></div></div></div><div class="ArticleBase-BodyContent ArticleBase-BodyContent_Article" data-testid="article-base-body-content"><div data-module="content" class="ContentModule-Wrapper"><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">Chinese hackers almost breached critical European supply chain companies by disguising their malicious activities behind native Microsoft technologies.</span></p><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">It happened during a three-week period, from late June to July, according to researchers from SentinelLabs. A threat actor tied to </span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><a class="ContentText-BodyTextChunk ContentText-BodyTextChunk_link" target="_blank" href="https://www.darkreading.com/threat-intelligence/chinese-apts-edge-device-attacks">China&#x27;s diverse and thriving cyberattack scene</a></span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"> targeted large business-to-business (B2B) IT service providers throughout southern Europe, such as cybersecurity vendors and data and infrastructure solutions providers, with the presumed goal of downstream supply chain espionage.</span></p><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">To penetrate these IT vendors — and, presumably, the many clients across the continent to which they enjoy privileged access — the attackers masked their malicious activity behind everyday business tools like Visual Studio Code and Microsoft Azure. And to confuse attribution, they used the same tactics, techniques, procedures (TTPs), and tooling observed across a number of other known Chinese threat actors.</span></p><h2 class="ContentText ContentText_variant_h2 ContentText_align_left" data-testid="content-text" id="Malware via Microsoft" style="scroll-margin-top:10rem;scroll-snap-margin-top:10rem">Malware via Microsoft</h2><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">Infections in the campaign, which researchers dubbed &quot;Operation Digital Eye,&quot; began with SQL injections against vulnerable, Internet-facing Web and database servers. Then the attackers dropped PHP Web shells, using filenames specially tailored to the target&#x27;s environment in order to avoid raising any suspicion. Reconnaissance, lateral movement, and credentials theft followed.</span></p><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">The highlight of the attacks, though, came innocuously packaged as &quot;code.exe.&quot; Digitally signed by Microsoft and run as a service using the Windows Service Wrapper, the attackers brought to each of their victims their own portable copy of the Visual Studio Code (VS Code). VS Code is a free, open source editor developed by Microsoft, by far the most popular integrated development environment (IDE) among both new and seasoned developers.</span></p><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">VS Code has also become a </span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><a class="ContentText-BodyTextChunk ContentText-BodyTextChunk_link" target="_blank" href="https://www.darkreading.com/application-security/microsoft-vs-code-undermined-in-asian-spy-attack">proven weapon of Chinese threat actors</a></span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"> as of late, thanks to its Remote Tunnels feature. Remote Tunnels is designed to allow developers to access and work on code on remote machines. In a different light, though, it&#x27;s a perfect malicious payload, enabling command execution and file editing on remote systems in the context of a seemingly innocuous Microsoft program. The attackers behind Operation Digital Eye intended to use VS Code to maintain persistent backdoor access to victims, using innocuous file and service names and storing it in the Temp folder to further blend in with victims&#x27; normal business operations.</span></p><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">Tunneling with VS Code isn&#x27;t quite as simple as loading malware onto a victim&#x27;s machine, though — it requires a GitHub account and connection with an Azure server. Researchers aren&#x27;t sure whether the attackers used stolen GitHub and Azure credentials, or registered their own accounts.</span></p><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">What is clear is that they turned this potential roadblock into an advantage, leveraging public cloud infrastructure in Western Europe to make their otherwise suspicious traffic look more legitimate, and more likely to evade notice by security tools. VS Code and Azure network traffic tends to avoid close scrutiny, the researchers noted, and are commonly allowed by application controls and firewall rules. &quot;Combined with the full endpoint access it provides, this makes Visual Studio Code tunneling an attractive and powerful capability for threat actors to exploit,&quot; they wrote.</span></p><h2 class="ContentText ContentText_variant_h2 ContentText_align_left" data-testid="content-text" id="The Trouble in Attributing Chinese Attackers" style="scroll-margin-top:10rem;scroll-snap-margin-top:10rem">The Trouble in Attributing Chinese Attackers</h2><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">The actual malware used in Operation Digital Eye did less to clarify than to confuse who, exactly, was behind the attacks.</span></p><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">The most notable tool in the mix, &quot;bK2o.exe,&quot; is a modified version of the open source credential stealing tool Mimikatz, designed for pass-the-hash attacks. Its aim is to snag a New Technology LAN Manager (NTLM) hash, in lieu of the targeted user&#x27;s actual password, to enable the further execution of processes within the user&#x27;s security context.</span></p><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">BK2o.exe is just one among many Mimikatz variants deployed by several Chinese advanced persistent threats (APTs). Related variants have been observed in Operations Soft Cell and Tainted Love, associated with groups like </span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><a class="ContentText-BodyTextChunk ContentText-BodyTextChunk_link" target="_blank" href="https://www.darkreading.com/threat-intelligence/china-s-apt41-linked-wyrmspy-dragonegg-mobile-spyware">APT41</a></span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"> and </span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><a class="ContentText-BodyTextChunk ContentText-BodyTextChunk_link" target="_blank" href="https://www.darkreading.com/cyberattacks-data-breaches/us-indicts-2-apt10-members-for-years-long-hacking-campaign">APT10</a></span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">. Researchers from SentinelLabs concluded that there is likely a shared vendor supplying many groups at once, as evidenced by </span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><a class="ContentText-BodyTextChunk ContentText-BodyTextChunk_link" target="_blank" href="https://www.darkreading.com/threat-intelligence/-isoon-contractor-helps-the-prc-hack-foreign-governments-companies">the recent case of iSoon</a></span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">.</span></p><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"></p><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">Also common to these many groups, besides their malware, is the intent behind their cyberespionage. In the case of Digital Eye, &quot;Southern Europe&#x27;s role as a Mediterranean hub intersects with China&#x27;s Belt and Road Initiative, particularly in infrastructure investments like Greece&#x27;s Port of Piraeus,&quot; notes SentinelLabs principal threat researcher Tom Hegel. &quot;Cyber operations in this area likely support China&#x27;s efforts to safeguard these investments, gain leverage in energy transit routes, and monitor naval activities critical to global trade and security. Economically, Southern Europe offers access to critical industries such as energy, shipping, aerospace, and agriculture, as well as opportunities for scientific and technological espionage, particularly in aerospace and renewable energy. Politically, the region&#x27;s challenges provide opportunities for influence, allowing China to exploit economic dependencies, shape public sentiment, and potentially weaken EU and NATO unity.&quot;</span></p><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">He concludes that &quot;In targeting Southern Europe, China seeks not only to secure competitive advantages but also to deepen its influence in a region vital to global trade, energy flows, and Western alliances.&quot;</span></p><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"></p></div></div><div class="SocialShare"><div data-component="social-share" class="SocialShare SocialShare_variant_button ArticleBase-SocialShare ArticleBase-SocialShare_second"><a target="_blank" rel="noreferrer" aria-label="Linkedin" href="https://www.linkedin.com/sharing/share-offsite/?url=https://www.darkreading.com/cyberattacks-data-breaches/operation-digital-eye-attack-targets-european-it-orgs"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_button"><span data-component="icon" data-name="Linkedin" class="SocialShare-Icon SocialShare-Icon_variant_button SocialShare-Icon_type_linkedin" style="mask-image:url(/build/_assets/Linkedin-VQUF3EEQ.svg);-webkit-mask-image:url(/build/_assets/Linkedin-VQUF3EEQ.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></a><a target="_blank" rel="noreferrer" aria-label="Facebook" href="http://www.facebook.com/sharer/sharer.php?u=https://www.darkreading.com/cyberattacks-data-breaches/operation-digital-eye-attack-targets-european-it-orgs"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_button"><span data-component="icon" data-name="Facebook" class="SocialShare-Icon SocialShare-Icon_variant_button SocialShare-Icon_type_facebook" style="mask-image:url(/build/_assets/Facebook-CJB5G2HY.svg);-webkit-mask-image:url(/build/_assets/Facebook-CJB5G2HY.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></a><a target="_blank" rel="noreferrer" aria-label="Twitter" href="http://www.twitter.com/intent/tweet?url=https://www.darkreading.com/cyberattacks-data-breaches/operation-digital-eye-attack-targets-european-it-orgs"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_button"><span data-component="icon" data-name="Twitter" class="SocialShare-Icon SocialShare-Icon_variant_button SocialShare-Icon_type_twitter" style="mask-image:url(/build/_assets/Twitter-WD5AOEQ7.svg);-webkit-mask-image:url(/build/_assets/Twitter-WD5AOEQ7.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></a><a target="_blank" rel="noreferrer" aria-label="Reddit" href="https://www.reddit.com/submit?url=https://www.darkreading.com/cyberattacks-data-breaches/operation-digital-eye-attack-targets-european-it-orgs&amp;title=Sprawling%20&#x27;Operation%20Digital%20Eye&#x27;%20Attack%20Targets%20European%20IT%20Orgs"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_button"><span data-component="icon" data-name="Reddit" class="SocialShare-Icon SocialShare-Icon_variant_button SocialShare-Icon_type_reddit" style="mask-image:url(/build/_assets/Reddit-5TRN6TDE.svg);-webkit-mask-image:url(/build/_assets/Reddit-5TRN6TDE.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></a><a target="_blank" rel="noreferrer" aria-label="Email" href="/cdn-cgi/l/email-protection#ae91dddbccc4cbcdda93fddedccfd9c2c7c0c98e888dd69c9995e1decbdccfdac7c1c08eeac7c9c7dacfc28eebd7cb888dd69c99958eefdadacfcdc58efacfdcc9cbdadd8eebdbdcc1decbcfc08ee7fa8ee1dcc9dd88cfc3de95ccc1cad793e78b9c9edac6c1dbc9c6da8b9c9edac6cb8b9c9ec8c1c2c2c1d9c7c0c98b9c9ec8dcc1c38b9c9eeacfdcc58b9c9efccbcfcac7c0c98b9c9ec3c7c9c6da8b9c9ec7c0dacbdccbddda8b9c9ed7c1db808b9eea8b9eef8b9eea8b9eef8b9c9efddedccfd9c2c7c0c98b9c9e888dd69c9995e1decbdccfdac7c1c08b9c9eeac7c9c7dacfc28b9c9eebd7cb888dd69c99958b9c9eefdadacfcdc58b9c9efacfdcc9cbdadd8b9c9eebdbdcc1decbcfc08b9c9ee7fa8b9c9ee1dcc9dd8b9eea8b9eefc6dadadedd8b9def8b9ce88b9ce8d9d9d980cacfdcc5dccbcfcac7c0c980cdc1c38b9ce8cdd7cccbdccfdadacfcdc5dd83cacfdacf83ccdccbcfcdc6cbdd8b9ce8c1decbdccfdac7c1c083cac7c9c7dacfc283cbd7cb83cfdadacfcdc583dacfdcc9cbdadd83cbdbdcc1decbcfc083c7da83c1dcc9dd"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_button"><span data-component="icon" data-name="Email" class="SocialShare-Icon SocialShare-Icon_variant_button SocialShare-Icon_type_email" style="mask-image:url(/build/_assets/Email-47H7P533.svg);-webkit-mask-image:url(/build/_assets/Email-47H7P533.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></a><div data-component="print"><span role="button" aria-label="print" data-testid="print-button" tabindex="0" class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_button"><span data-component="icon" data-name="Printer" class="SocialShare-Icon SocialShare-Icon_variant_button" style="mask-image:url(/build/_assets/Printer-U5RDBVFZ.svg);-webkit-mask-image:url(/build/_assets/Printer-U5RDBVFZ.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></div></div></div><div class="ArticleBase-ContributorsWrapper"><h2 class="ArticleBase-ContributorsTitle">About the Author</h2><div class="ArticleBase-ContributorsSummary"><div data-component="contributor-summary" class="ContributorSummary ContributorSummary_variant_author"><div class="ContributorSummary-ImageWrapper ContributorSummary-ImageWrapper_variant_author"><a data-testid="contributor-summary-img-link" data-discover="true" href="/author/nate-nelson"><img data-component="image" class="ContributorSummary-Image ContributorSummary-Image_variant_author" data-src="https://eu-images.contentstack.com/v3/assets/blt6d90778a997de1cd/blt00df7fa701809c8c/64f15c901c6887515143a4d1/Nate-Nelson_(1).jpg?width=400&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt6d90778a997de1cd/blt00df7fa701809c8c/64f15c901c6887515143a4d1/Nate-Nelson_(1).jpg?width=400&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Nate Nelson, Contributing Writer" title="Nate Nelson, Contributing Writer"/></a></div><div class="ContributorSummary-InfoWrapper ContributorSummary-InfoWrapper_variant_author"><div class="ContributorSummary-TitleWrapper"><a data-testid="contributor-summary-title-link" data-discover="true" href="/author/nate-nelson"><p class="ContributorSummary-Title ContributorSummary-Title_variant_author" data-testid="contributor-summary-title">Nate Nelson, Contributing Writer</p></a></div><div class="ContributorSummary-SubTitleWrapper ContributorSummary-SubTitleWrapper_variant_author"><p class="ContributorSummary-SubTitle ContributorSummary-SubTitle_variant_author" data-testid="contributor-summary-subtitle"></p></div><div class="ContributorSummary-ContentWrapper ContributorSummary-ContentWrapper_variant_author"><div class="ContributorSummary-Content ContributorSummary-Content_variant_author" data-testid="contributor-summary-content"><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNoneStyle" data-testid="content-text">Nate Nelson is a freelance writer based in New York City. Formerly a reporter at Threatpost, he contributes to a number of cybersecurity blogs and podcasts. He writes &quot;Malicious Life&quot; -- an award-winning Top 20 tech podcast on Apple and Spotify -- and hosts every other episode, featuring interviews with leading voices in security. He also co-hosts &quot;The Industrial Security Podcast,&quot; the most popular show in its field.</span></p></div></div></div><div class="ContributorSummary-SeeMore"><a data-component="button" class="Button Button_size_medium Button_variant_textLink" data-discover="true" href="/author/nate-nelson"><span class="Button-ContentWrapper"><span class="ContributorSummary-SeeMoreText"><span>See more from <!-- -->Nate Nelson, Contributing Writer</span><span data-component="icon" data-name="ChevronRight" class="ContributorSummary-SeeMoreIcon" style="mask-image:url(/build/_assets/ChevronRight-NHDKEYGJ.svg);-webkit-mask-image:url(/build/_assets/ChevronRight-NHDKEYGJ.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></span></a></div></div></div></div><div data-module="newsletter-signup-promo"><div class="SubscribeBannerTopicPage SubscribeBannerTopicPage_mode_dark SubscribeBannerTopicPage_variant_vertical ArticleBase-Newsletter"><div class="SubscribeBannerTopicPage-Content"><div class="SubscribeBannerTopicPage-Title" data-testid="subscribeBannerTopicPage_title">Keep up with the latest cybersecurity threats, newly discovered vulnerabilities, data breach information, and emerging trends. Delivered daily or weekly right to your email inbox.</div><div class="SubscribeBannerTopicPage-Message" data-testid="subscribeBannerTopicPage_message"></div><div class="SubscribeBannerTopicPage-Button" data-testid="subscribe-banner-topic-page-button"><a data-component="button" data-testid="bannerTopicPageNewsletterButton" class="Button Button_size_medium Button_variant_secondaryFilled" href="https://dr-resources.darkreading.com/free/w_defa3135/prgm.cgi" target="_blank" rel="nofollow" data-name="subscribe-banner" data-action-type="sign-up"><span class="Button-ContentWrapper">Subscribe</span></a></div></div></div></div><p class="IirisRecommendation-Title">You May Also Like</p><hr class="IirisRecommendation-TitleHr"/><div bordercolor="#e6e6e6" borderRadius="5" brand_family="cybersecurity" cardwidth="210px" class="iris-recommend iris-recommend-non-sticky" columns="2" data-component="iris-recommendation" dateformat="Month DD, YYYY" datetimebgcolor="#ffffff" datetimefontcolor="#767676" datetimefontsize="12" division="it" dropShadow="" entity="content" entitytagbackground="#333333BF" entitytagbordercolor="#333333BF" entitytagfont="#ffffff" id="widget-1700562861264" imageHeight="182" imagePosition="vertical" imageWidth="324" recipe="similar-items" redirectmode="same" rows="2" showborder="yes" showby="" showdate="" showentitytag="yes" showtime="" title="" widgetType="grid" brand="darkreading" itemUrl="" style="max-width:1100px"></div><div data-module="resources" class="Resources Resources_article"><div class="Resources-Header Resources-Header_article"><span class="Resources-Title" data-testid="resources-title">More Insights</span></div><div class="Resources-ContentWrapper"><div class="Resources-ItemWrapper Resources-ItemWrapper_article"><div data-component="content-list" class="ContentList"><div class="ContentList-Header"><span data-component="icon" data-name="ChalkBoard" class="ContentList-Icon" style="mask-image:url(/build/_assets/ChalkBoard-7VYJPH3F.svg);-webkit-mask-image:url(/build/_assets/ChalkBoard-7VYJPH3F.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span><span class="ContentList-Title" data-testid="content-list-title">Webinars</span></div><ul class="ContentList-List"><li class="ContentList-ListItem"><a target="_blank" rel="nofollow" data-testid="content-list-item-title" href="https://dr-resources.darkreading.com/c/pubRD.mpl?secure=1&amp;sr=pp&amp;_t=pp:&amp;qf=w_tren85&amp;ch=SBX&amp;cid=_upcoming_webinars_8.500001507&amp;_mc=_upcoming_webinars_8.500001507"><p class="ContentList-ListItemTitle">The Current State of AI Adoption in Cybersecurity, Including its Opportunities</p></a><span class="ContentList-ListItemDate ContentList-ListItemDate_webinar" data-testid="content-list-item-date">Dec 12, 2024</span></li><li class="ContentList-ListItem"><a target="_blank" rel="nofollow" data-testid="content-list-item-title" href="https://dr-resources.darkreading.com/c/pubRD.mpl?secure=1&amp;sr=pp&amp;_t=pp:&amp;pc=w_snoa33&amp;ch=SBX&amp;cid=_upcoming_webinars_8.500001504&amp;_mc=_upcoming_webinars_8.500001504"><p class="ContentList-ListItemTitle">Cybersecurity Day: How to Automate Security Analytics with AI and ML</p></a><span class="ContentList-ListItemDate ContentList-ListItemDate_webinar" data-testid="content-list-item-date">Dec 17, 2024</span></li><li class="ContentList-ListItem"><a target="_blank" rel="nofollow" data-testid="content-list-item-title" href="https://dr-resources.darkreading.com/c/pubRD.mpl?secure=1&amp;sr=pp&amp;_t=pp:&amp;qf=w_rubr127&amp;ch=SBX&amp;cid=_upcoming_webinars_8.500001508&amp;_mc=_upcoming_webinars_8.500001508"><p class="ContentList-ListItemTitle">The Dirt on ROT Data</p></a><span class="ContentList-ListItemDate ContentList-ListItemDate_webinar" data-testid="content-list-item-date">Dec 18, 2024</span></li></ul><div class="ContentList-CTAButton"><span data-component="button" role="presentation" class="Button Button_size_medium Button_variant_textLink"><span class="Button-ContentWrapper"><a class="ContentList-CTAText" rel="noreferrer" data-discover="true" href="/resources?types=Webinar" target="_blank">More Webinars</a></span><span data-component="icon" data-name="ChevronRight" class="Button-Icon Button-Icon_position_right" style="mask-image:url(/build/_assets/ChevronRight-NHDKEYGJ.svg);-webkit-mask-image:url(/build/_assets/ChevronRight-NHDKEYGJ.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></div></div></div></div></div><div><div class="ArticleBase-AdSponsored"></div></div></div></div><div class="TwoColumnLayout-Sidebar"><div class="Sidebar" data-module="sidebar"><div class="Sidebar-SidebarItem" data-testid="sidebar-item"><div data-module="content-cards" class="ContentCards ContentCards_sidebar"><div class="ContentCards-CardsWrapper ContentCards-CardsWrapper_column"><div class="ContentCards-Header ContentCards-Header_column" data-testid="content-cards-header"><h3 class="ContentCards-Title" data-testid="contentCardsTitle">Editor's Choice</h3></div><div class="ContentCards-Content ContentCards-Content_column"><div class="ContentCards-ContentPreview ContentCards-ContentPreview_column" data-testid="content-preview-column"><div class="ContentPreview" data-module="content-preview" data-variant="card-vertical"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_cardVertical"><a data-testid="thumbnail" data-discover="true" href="/cyberattacks-data-breaches/cisa-issue-guidance-telecoms-salt-typhoon-threat"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">American and Chinese flags on computer keyboard keys</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt6d90778a997de1cd/blt9bf7e6a9826c0aea/6750c624093fa132fa7059fc/chinacyber_Weitwinkel_shutterstock.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt6d90778a997de1cd/blt9bf7e6a9826c0aea/6750c624093fa132fa7059fc/chinacyber_Weitwinkel_shutterstock.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_cyberattacksDataBreaches ContentPreview-Category" data-discover="true" href="/cyberattacks-data-breaches">Cyberattacks &amp; Data Breaches</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" data-discover="true" href="/cyberattacks-data-breaches/cisa-issue-guidance-telecoms-salt-typhoon-threat">CISA Issues Guidance to Telecom Sector on Salt Typhoon Threat</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" data-discover="true" href="/cyberattacks-data-breaches/cisa-issue-guidance-telecoms-salt-typhoon-threat">CISA Issues Guidance to Telecom Sector on Salt Typhoon Threat</a><div class="Contributors Contributors_variant_slimline VerticalCard-ContributorsWrapper" data-component="contributors"><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" data-discover="true" href="/author/jai-vijayan">Jai Vijayan, Contributing Writer</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Dec 4, 2024</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>4 Min<!-- --> <!-- -->Read</span></div></div></div></div></div></div></div><div class="ContentCards-ContentPreview ContentCards-ContentPreview_column" data-testid="content-preview-column"><div class="ContentPreview" data-module="content-preview" data-variant="card-vertical"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_cardVertical"><a data-testid="thumbnail" data-discover="true" href="/cloud-security/russias-bluealpha-apt-cloudflare-tunnels"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">Great Siege Tunnels, Gibraltar, featuring a tableau of seven cannons overlooking Spanish positions </span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt6d90778a997de1cd/blt4a5bfeaa660cbace/675221269156dc2f14d3ffda/tunnels-Classic_Image-Alamy.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt6d90778a997de1cd/blt4a5bfeaa660cbace/675221269156dc2f14d3ffda/tunnels-Classic_Image-Alamy.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_сloudSecurity ContentPreview-Category" data-discover="true" href="/cloud-security">Сloud Security</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" data-discover="true" href="/cloud-security/russias-bluealpha-apt-cloudflare-tunnels">Russia's 'BlueAlpha' APT Hides in Cloudflare Tunnels</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" data-discover="true" href="/cloud-security/russias-bluealpha-apt-cloudflare-tunnels">Russia's 'BlueAlpha' APT Hides in Cloudflare Tunnels</a><div class="Contributors Contributors_variant_slimline VerticalCard-ContributorsWrapper" data-component="contributors"><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" data-discover="true" href="/author/tara-seals">Tara Seals, Managing Editor, News, Dark Reading</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Dec 5, 2024</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>2 Min<!-- --> <!-- -->Read</span></div></div></div></div></div></div></div><div class="ContentCards-ContentPreview ContentCards-ContentPreview_column" data-testid="content-preview-column"><div class="ContentPreview" data-module="content-preview" data-variant="card-vertical"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_cardVertical"><a data-testid="thumbnail" data-discover="true" href="/vulnerabilities-threats/bypass-bug-critical-n-day-mitel-micollab"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">Mitel&#x27;s corporate logo on an office building</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt6d90778a997de1cd/bltdf491a27738b56da/67520b03e914956c1715c180/Mitel-Kristoffer_Tripplaar-Alamy.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt6d90778a997de1cd/bltdf491a27738b56da/67520b03e914956c1715c180/Mitel-Kristoffer_Tripplaar-Alamy.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_vulnerabilitiesThreats ContentPreview-Category" data-discover="true" href="/vulnerabilities-threats">Vulnerabilities &amp; Threats</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" data-discover="true" href="/vulnerabilities-threats/bypass-bug-critical-n-day-mitel-micollab">Bypass Bug Revives Critical N-Day in Mitel MiCollab</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" data-discover="true" href="/vulnerabilities-threats/bypass-bug-critical-n-day-mitel-micollab">Bypass Bug Revives Critical N-Day in Mitel MiCollab</a><div class="Contributors Contributors_variant_slimline VerticalCard-ContributorsWrapper" data-component="contributors"><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" data-discover="true" href="/author/nate-nelson">Nate Nelson, Contributing Writer</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Dec 5, 2024</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>4 Min<!-- --> <!-- -->Read</span></div></div></div></div></div></div></div></div></div></div></div><div class="Sidebar-SidebarItem" data-testid="sidebar-item"><div data-component="content-list" class="ContentList"><div class="ContentList-Header"><span data-component="icon" data-name="Document" class="ContentList-Icon" style="mask-image:url(/build/_assets/Document-NG4YMZFA.svg);-webkit-mask-image:url(/build/_assets/Document-NG4YMZFA.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span><span class="ContentList-Title" data-testid="content-list-title">Reports</span></div><ul class="ContentList-List"><li class="ContentList-ListItem"><a target="_blank" rel="nofollow" data-testid="content-list-item-title" href="https://dr-resources.darkreading.com/c/pubRD.mpl?secure=1&amp;sr=pp&amp;_t=pp:&amp;qf=w_defa7503&amp;ch=SBX&amp;cid=_analytics_7.300006021&amp;_mc=_analytics_7.300006021"><p class="ContentList-ListItemTitle">IDC Analyst Brief: Enhancing Incident Response with Automated Investigation Workflows</p></a><span class="ContentList-ListItemDate" data-testid="content-list-item-date">Dec 6, 2024</span></li><li class="ContentList-ListItem"><a target="_blank" rel="nofollow" data-testid="content-list-item-title" href="https://dr-resources.darkreading.com/c/pubRD.mpl?secure=1&amp;sr=pp&amp;_t=pp:&amp;qf=w_cybo171&amp;ch=&amp;cid=_analytics_7.300006016&amp;_mc=_analytics_7.300006016"><p class="ContentList-ListItemTitle">Managing Third-Party Risk Through Situational Awareness</p></a><span class="ContentList-ListItemDate" data-testid="content-list-item-date">Jul 31, 2024</span></li><li class="ContentList-ListItem"><a target="_blank" rel="nofollow" data-testid="content-list-item-title" href="https://iw-resources.informationweek.com/c/pubRD.mpl?secure=1&amp;sr=pp&amp;_t=pp:&amp;qf=w_ingg253&amp;ch=sbx&amp;cid=_analytics_7.300006014&amp;_mc=_analytics_7.300006014"><p class="ContentList-ListItemTitle">2024 InformationWeek US IT Salary Report</p></a><span class="ContentList-ListItemDate" data-testid="content-list-item-date">May 29, 2024</span></li></ul><div class="ContentList-CTAButton"><span data-component="button" role="presentation" class="Button Button_size_medium Button_variant_textLink"><span class="Button-ContentWrapper"><a class="ContentList-CTAText" rel="noreferrer" data-discover="true" href="/resources?types=Report" target="_blank">More Reports</a></span><span data-component="icon" data-name="ChevronRight" class="Button-Icon Button-Icon_position_right" style="mask-image:url(/build/_assets/ChevronRight-NHDKEYGJ.svg);-webkit-mask-image:url(/build/_assets/ChevronRight-NHDKEYGJ.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></div></div></div><div class="Sidebar-SidebarItem" data-testid="sidebar-item"><div data-component="content-list" class="ContentList"><div class="ContentList-Header"><span data-component="icon" data-name="ChalkBoard" class="ContentList-Icon" style="mask-image:url(/build/_assets/ChalkBoard-7VYJPH3F.svg);-webkit-mask-image:url(/build/_assets/ChalkBoard-7VYJPH3F.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span><span class="ContentList-Title" data-testid="content-list-title">Webinars</span></div><ul class="ContentList-List"><li class="ContentList-ListItem"><a target="_blank" rel="nofollow" data-testid="content-list-item-title" href="https://dr-resources.darkreading.com/c/pubRD.mpl?secure=1&amp;sr=pp&amp;_t=pp:&amp;qf=w_tren85&amp;ch=SBX&amp;cid=_upcoming_webinars_8.500001507&amp;_mc=_upcoming_webinars_8.500001507"><p class="ContentList-ListItemTitle">The Current State of AI Adoption in Cybersecurity, Including its Opportunities</p></a><span class="ContentList-ListItemDate ContentList-ListItemDate_webinar" data-testid="content-list-item-date">Dec 12, 2024</span></li><li class="ContentList-ListItem"><a target="_blank" rel="nofollow" data-testid="content-list-item-title" href="https://dr-resources.darkreading.com/c/pubRD.mpl?secure=1&amp;sr=pp&amp;_t=pp:&amp;pc=w_snoa33&amp;ch=SBX&amp;cid=_upcoming_webinars_8.500001504&amp;_mc=_upcoming_webinars_8.500001504"><p class="ContentList-ListItemTitle">Cybersecurity Day: How to Automate Security Analytics with AI and ML</p></a><span class="ContentList-ListItemDate ContentList-ListItemDate_webinar" data-testid="content-list-item-date">Dec 17, 2024</span></li><li class="ContentList-ListItem"><a target="_blank" rel="nofollow" data-testid="content-list-item-title" href="https://dr-resources.darkreading.com/c/pubRD.mpl?secure=1&amp;sr=pp&amp;_t=pp:&amp;qf=w_rubr127&amp;ch=SBX&amp;cid=_upcoming_webinars_8.500001508&amp;_mc=_upcoming_webinars_8.500001508"><p class="ContentList-ListItemTitle">The Dirt on ROT Data</p></a><span class="ContentList-ListItemDate ContentList-ListItemDate_webinar" data-testid="content-list-item-date">Dec 18, 2024</span></li></ul><div class="ContentList-CTAButton"><span data-component="button" role="presentation" class="Button Button_size_medium Button_variant_textLink"><span class="Button-ContentWrapper"><a class="ContentList-CTAText" rel="noreferrer" data-discover="true" href="/resources?types=Webinar" target="_blank">More Webinars</a></span><span data-component="icon" data-name="ChevronRight" class="Button-Icon Button-Icon_position_right" style="mask-image:url(/build/_assets/ChevronRight-NHDKEYGJ.svg);-webkit-mask-image:url(/build/_assets/ChevronRight-NHDKEYGJ.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></div></div></div><div class="Sidebar-SidebarItem" data-testid="sidebar-item"><div data-component="content-list" class="ContentList"><div class="ContentList-Header"><span data-component="icon" data-name="Document" class="ContentList-Icon" style="mask-image:url(/build/_assets/Document-NG4YMZFA.svg);-webkit-mask-image:url(/build/_assets/Document-NG4YMZFA.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span><span class="ContentList-Title" data-testid="content-list-title">White Papers</span></div><ul class="ContentList-List"><li class="ContentList-ListItem"><a target="_blank" rel="nofollow" data-testid="content-list-item-title" href="https://dr-resources.darkreading.com/c/pubRD.mpl?secure=1&amp;sr=pp&amp;_t=pp:&amp;qf=w_defa7530&amp;ch=SBX&amp;cid=_whitepaper_14.500005851&amp;_mc=_whitepaper_14.500005851"><p class="ContentList-ListItemTitle">Enhancing Cybersecurity: The Critical Role Of Software Security Training</p></a></li><li class="ContentList-ListItem"><a target="_blank" rel="nofollow" data-testid="content-list-item-title" href="https://dr-resources.darkreading.com/c/pubRD.mpl?secure=1&amp;sr=pp&amp;_t=pp:&amp;qf=w_palo247&amp;ch=SBX&amp;cid=_whitepaper_14.500005834&amp;_mc=_whitepaper_14.500005834"><p class="ContentList-ListItemTitle">Frost Radar: Cloud Security Posture Management, 2024</p></a></li><li class="ContentList-ListItem"><a target="_blank" rel="nofollow" data-testid="content-list-item-title" href="https://dr-resources.darkreading.com/c/pubRD.mpl?secure=1&amp;sr=pp&amp;_t=pp:&amp;qf=w_adaa07&amp;ch=SBX&amp;cid=_whitepaper_14.500005831&amp;_mc=_whitepaper_14.500005831"><p class="ContentList-ListItemTitle">The State of Vulnerability Management in the Enterprise</p></a></li><li class="ContentList-ListItem"><a target="_blank" rel="nofollow" data-testid="content-list-item-title" href="https://dr-resources.darkreading.com/c/pubRD.mpl?secure=1&amp;sr=pp&amp;_t=pp:&amp;qf=w_senu28&amp;ch=SBX&amp;cid=_whitepaper_14.500005773&amp;_mc=_whitepaper_14.500005773"><p class="ContentList-ListItemTitle">Generative AI Gifts</p></a></li><li class="ContentList-ListItem"><a target="_blank" rel="nofollow" data-testid="content-list-item-title" href="https://dr-resources.darkreading.com/c/pubRD.mpl?secure=1&amp;sr=pp&amp;_t=pp:&amp;qf=w_senu25&amp;ch=SBX&amp;cid=_whitepaper_14.500005771&amp;_mc=_whitepaper_14.500005771"><p class="ContentList-ListItemTitle">SecOps Checklist</p></a></li></ul><div class="ContentList-CTAButton"><span data-component="button" role="presentation" class="Button Button_size_medium Button_variant_textLink"><span class="Button-ContentWrapper"><a class="ContentList-CTAText" rel="noreferrer" data-discover="true" href="/resources?types=Whitepaper" target="_blank">More Whitepapers</a></span><span data-component="icon" data-name="ChevronRight" class="Button-Icon Button-Icon_position_right" style="mask-image:url(/build/_assets/ChevronRight-NHDKEYGJ.svg);-webkit-mask-image:url(/build/_assets/ChevronRight-NHDKEYGJ.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></div></div></div><div class="Sidebar-SidebarItem" data-testid="sidebar-item"></div></div></div></div></div></div></section><footer data-module="footer" class="Footer"><div class="Footer-Background"></div><div data-testid="logo" class="Footer-LogoContainer Footer-LogoContainer_length_2"><a data-discover="true" href="/"><img title="Logo" data-component="image" class="Footer-LogoImage Footer-LogoImage_length_2" data-src="https://eu-images.contentstack.com/v3/assets/blt6d90778a997de1cd/blt6aed714e279eeb34/6542104467527c040a9b2014/Logo_-_Dark_Reading.svg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt6d90778a997de1cd/blt6aed714e279eeb34/6542104467527c040a9b2014/Logo_-_Dark_Reading.svg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Logo"/></a></div><div data-testid="LinkSection" class="LinkSection LinkSection_length_2"><h5 class="LinkSection-Title" data-testid="link-section-title">Discover More</h5><div class="LinkSection-LinksWrapper"><a class="LinkSection-Link" rel="noreferrer" data-discover="true" href="/program/black-hat" target="_blank">Black Hat</a><a class="LinkSection-Link" rel="noreferrer" data-discover="true" href="/program/omdia-cybersecurity" target="_blank">Omdia</a></div></div><div data-testid="LinkSection" class="LinkSection LinkSection_length_2"><h5 class="LinkSection-Title" data-testid="link-section-title">Working With Us</h5><div class="LinkSection-LinksWrapper"><a class="LinkSection-Link" data-discover="true" href="/about-us" target="_self">About Us</a><a class="LinkSection-Link" data-discover="true" href="/advertise" target="_self">Advertise</a><a class="LinkSection-Link" target="_blank" rel="noreferrer" href="https://info.wrightsmedia.com/informa-licensing-reprints-request">Reprints</a></div></div><div data-testid="registration" class="Footer-RegistrationWrapper"><div class="RegistrationSection RegistrationSection_linkSectionLength_2"><h5 class="RegistrationSection-Title">Join Us</h5><div class="Layout-Register Layout-Register_variant_footer"></div><div class="Layout-NewsLetter Layout-NewsLetter_variant_footer"><div data-module="newsletter-signup-promo"><a data-component="button" data-testid="footerNewsletterButton" class="Button Button_size_medium Button_variant_primaryFilled" href="https://dr-resources.darkreading.com/free/w_defa3135/prgm.cgi" target="_blank" rel="nofollow" data-name="subscribe-footer" data-action-type="sign-up"><span class="Button-ContentWrapper">Newsletter Sign-Up</span></a></div></div></div></div><div data-testid="social" class="SocialSection SocialSection_linkSectionLength_2"><h5 class="SocialSection-Title">Follow Us</h5><div data-component="social-share" class="SocialShare SocialShare_variant_layout"><a target="_blank" rel="noreferrer" aria-label="Twitter" href="https://twitter.com/DarkReading"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_layout"><span data-component="icon" data-name="Twitter" class="SocialShare-Icon SocialShare-Icon_variant_layout SocialShare-Icon_type_twitter" style="mask-image:url(/build/_assets/Twitter-WD5AOEQ7.svg);-webkit-mask-image:url(/build/_assets/Twitter-WD5AOEQ7.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></a><a target="_blank" rel="noreferrer" aria-label="Linkedin" href="https://www.linkedin.com/company/dark-reading/"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_layout"><span data-component="icon" data-name="Linkedin" class="SocialShare-Icon SocialShare-Icon_variant_layout SocialShare-Icon_type_linkedin" style="mask-image:url(/build/_assets/Linkedin-VQUF3EEQ.svg);-webkit-mask-image:url(/build/_assets/Linkedin-VQUF3EEQ.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></a><a target="_blank" rel="noreferrer" aria-label="Facebook" href="https://www.facebook.com/darkreadingcom/"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_layout"><span data-component="icon" data-name="Facebook" class="SocialShare-Icon SocialShare-Icon_variant_layout SocialShare-Icon_type_facebook" style="mask-image:url(/build/_assets/Facebook-CJB5G2HY.svg);-webkit-mask-image:url(/build/_assets/Facebook-CJB5G2HY.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></a><a target="_blank" rel="noreferrer" aria-label="Youtube" href="https://www.youtube.com/@DarkReadingOfficialYT"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_layout"><span data-component="icon" data-name="Youtube" class="SocialShare-Icon SocialShare-Icon_variant_layout SocialShare-Icon_type_youtube" style="mask-image:url(/build/_assets/Youtube-S4PSC4UA.svg);-webkit-mask-image:url(/build/_assets/Youtube-S4PSC4UA.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></a><a target="_blank" rel="noreferrer" aria-label="RSS" href="https://www.darkreading.com/rss.xml"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_layout"><span data-component="icon" data-name="RSS" class="SocialShare-Icon SocialShare-Icon_variant_layout SocialShare-Icon_type_rss" style="mask-image:url(/build/_assets/RSS-3XFHIVCK.svg);-webkit-mask-image:url(/build/_assets/RSS-3XFHIVCK.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></a><a target="_blank" rel="noreferrer" aria-label="GoogleNews" href="https://news.google.com/publications/CAAqBwgKMKmknwswtq63Aw?ceid=US:en&amp;oc=3&amp;hl=en-US&amp;gl=US"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_layout"><span data-component="icon" data-name="GoogleNews" class="SocialShare-Icon SocialShare-Icon_variant_layout SocialShare-Icon_type_googleNews" style="mask-image:url(/build/_assets/GoogleNews-6O72APW7.svg);-webkit-mask-image:url(/build/_assets/GoogleNews-6O72APW7.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></a></div></div><div class="CopyrightsSection"><div class="CopyrightsSection-Background"></div><div data-testid="copyrights" class="CopyrightsSection-Wrapper"><a data-testid="businessUnit" class="CopyrightsSection-BusinessLink" target="_blank" href="https://www.informa.com"><img title="Informa" data-component="image" class="CopyrightsSection-BusinessImage" data-src="https://eu-images.contentstack.com/v3/assets/blt6d90778a997de1cd/bltb3f56b75133715aa/674ee1ace1b5ac19f79ca74e/Informa_Logo_OneLine_Graduated_White_RGB.png?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt6d90778a997de1cd/bltb3f56b75133715aa/674ee1ace1b5ac19f79ca74e/Informa_Logo_OneLine_Graduated_White_RGB.png?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Informa"/></a><div class="CopyrightsSection-TextWrapper"><p data-testid="copyrightText" class="CopyrightsSection-Text"><span class="CopyrightsSection-TextBlock"></span>Copyright © 2024. This website is owned and operated by Informa TechTarget, part of a global network that informs, influences and connects the world’s technology buyers and sellers. All copyright resides with them. Informa PLC’s registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. TechTarget, Inc.’s registered office is 275 Grove St. Newton, MA 02466.</p><div data-testid="copyrightLinks" class="CopyrightsSection-LinksWrapper CopyrightsSection-LinksWrapper_hasLinks"><a class="CopyrightsSection-Link" rel="noreferrer" target="_blank" href="https://www.informatech.com/">Home<span class="CopyrightsSection-LinkSeparator">|</span></a><a class="CopyrightsSection-Link" rel="noreferrer" data-discover="true" href="/cookie-policy" target="_blank">Cookie Policy<span class="CopyrightsSection-LinkSeparator">|</span></a><a class="CopyrightsSection-Link" rel="noreferrer" target="_blank" href="https://www.techtarget.com/privacy-policy/">Privacy<span class="CopyrightsSection-LinkSeparator">|</span></a><a class="CopyrightsSection-Link" rel="noreferrer" target="_blank" href="https://www.informatech.com/terms-and-conditions/">Terms of Use</a></div></div></div></div></footer></div></div></main><script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script>((STORAGE_KEY, restoreKey) => { if (!window.history.state || !window.history.state.key) { let key = Math.random().toString(32).slice(2); window.history.replaceState({ key }, ""); } try { let positions = JSON.parse(sessionStorage.getItem(STORAGE_KEY) || "{}"); let storedY = positions[restoreKey || window.history.state.key]; if (typeof storedY === "number") { window.scrollTo(0, storedY); } } catch (error) { console.error(error); sessionStorage.removeItem(STORAGE_KEY); } })("positions", null)</script><link rel="modulepreload" href="/build/manifest-56B63EEE.js"/><link rel="modulepreload" href="/build/entry.client-SFHSSSEN.js"/><link rel="modulepreload" href="/build/_shared/chunk-RVHE4U6B.js"/><link rel="modulepreload" href="/build/_shared/chunk-SJXV5VAW.js"/><link rel="modulepreload" href="/build/_shared/chunk-63EVRDSK.js"/><link rel="modulepreload" href="/build/_shared/chunk-ADMCF34Z.js"/><link rel="modulepreload" href="/build/_shared/chunk-QLNIWV7P.js"/><link rel="modulepreload" href="/build/_shared/chunk-VAILQJN5.js"/><link rel="modulepreload" href="/build/_shared/chunk-RZRUW7QG.js"/><link rel="modulepreload" href="/build/_shared/chunk-ENWGEOQ7.js"/><link rel="modulepreload" href="/build/_shared/chunk-B7M2L5OV.js"/><link rel="modulepreload" href="/build/_shared/chunk-V56AZ7JS.js"/><link rel="modulepreload" href="/build/_shared/chunk-4V3RXUC3.js"/><link rel="modulepreload" href="/build/_shared/chunk-FXAZYHGQ.js"/><link rel="modulepreload" href="/build/_shared/chunk-VZQVWFLO.js"/><link rel="modulepreload" href="/build/_shared/chunk-YBPFZZVB.js"/><link rel="modulepreload" href="/build/_shared/chunk-SRUMBKGO.js"/><link rel="modulepreload" href="/build/_shared/chunk-UVPCWI2W.js"/><link rel="modulepreload" href="/build/_shared/chunk-TJGG65A2.js"/><link rel="modulepreload" href="/build/_shared/chunk-6SLT44WO.js"/><link rel="modulepreload" href="/build/_shared/chunk-QVUW3IXO.js"/><link rel="modulepreload" href="/build/_shared/chunk-6CJ46C3I.js"/><link rel="modulepreload" href="/build/_shared/chunk-KID4GLZA.js"/><link rel="modulepreload" href="/build/_shared/chunk-IW54JVOH.js"/><link rel="modulepreload" href="/build/root-PUQZGJFA.js"/><link rel="modulepreload" href="/build/_shared/chunk-KQ4HX2KA.js"/><link rel="modulepreload" href="/build/_shared/chunk-ED7QE4BI.js"/><link rel="modulepreload" href="/build/_shared/chunk-JSR73AOE.js"/><link rel="modulepreload" href="/build/_shared/chunk-2GCGBGJC.js"/><link rel="modulepreload" href="/build/_shared/chunk-CTMBUJW2.js"/><link rel="modulepreload" href="/build/_shared/chunk-6ZQEW6QV.js"/><link rel="modulepreload" href="/build/_shared/chunk-YOQGAE7D.js"/><link rel="modulepreload" href="/build/_shared/chunk-UQWQDPQL.js"/><link rel="modulepreload" href="/build/_shared/chunk-K3EG3F2D.js"/><link rel="modulepreload" href="/build/_shared/chunk-6OEHQCHL.js"/><link rel="modulepreload" href="/build/_shared/chunk-QPB57ZCF.js"/><link rel="modulepreload" href="/build/_shared/chunk-PBMO5Q5Q.js"/><link rel="modulepreload" href="/build/_shared/chunk-YP4O22HH.js"/><link rel="modulepreload" href="/build/_shared/chunk-KNOG3XIM.js"/><link rel="modulepreload" href="/build/_shared/chunk-KIDG4VST.js"/><link rel="modulepreload" href="/build/_shared/chunk-7WX3BG7O.js"/><link rel="modulepreload" href="/build/_shared/chunk-GNK7QBLO.js"/><link rel="modulepreload" href="/build/_shared/chunk-JU2VSZDI.js"/><link rel="modulepreload" href="/build/_shared/chunk-LWE7ZKCZ.js"/><link rel="modulepreload" href="/build/_shared/chunk-GDXQNCEJ.js"/><link rel="modulepreload" href="/build/_shared/chunk-PHSYQFSR.js"/><link rel="modulepreload" href="/build/_shared/chunk-GGO4FWBQ.js"/><link rel="modulepreload" href="/build/_shared/chunk-RX4QIZYC.js"/><link rel="modulepreload" href="/build/_shared/chunk-IJ353W5V.js"/><link rel="modulepreload" href="/build/_shared/chunk-TCBDOXWO.js"/><link rel="modulepreload" href="/build/_shared/chunk-NEIVIDQA.js"/><link rel="modulepreload" href="/build/_shared/chunk-TDM4RAGW.js"/><link rel="modulepreload" href="/build/routes/$topic.$slug._index-QLR25G4J.js"/><script>window.__remixContext = {"future":{"v3_fetcherPersist":false,"v3_relativeSplatPath":false,"v3_throwAbortReason":false},"state":{"loaderData":{"root":{"brand":"darkreading","authenticationStatus":"anonymous","siteName":"Dark Reading","ads":{"networkId":3834,"parentAdUnit":"darkreading.home","enabledAds":"all","checkClientIP":false,"disableSponsorBar":true},"authConfig":{"enabled":false,"disableCaptcha":false},"isDctsTurnOn":false,"oneTrust":{"siteId":"4b083961-e2ac-4755-8801-f7c83a5fb187"},"gtmIds":{"primary":"GTM-5523ZCM","secondary":"GTM-WB8Q7XR"},"pageContent":{"registrationText":"Learn about New Cybersecurity Threats, Vulnerabilities and Technology Trends."},"ui":{"brand":"darkreading","theme":"theme1","font":{"primary":{"name":"Inter","url":"https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900\u0026display=swap"},"secondary":{"name":"Inter","url":"https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900\u0026display=swap"}}},"environment":"prod","featureToggles":{"elnNewsletter":false,"elnWithoutNewsletter":false,"iirisAuthentication":false,"subBrand":false,"useSettingsRedirectAPIVersion1":false,"gatingEnabled":false,"iirisRecommendationDisabled":false,"iasPetEnabled":true,"bridgedMediaEnabled":true,"ecommerceEnabled":false,"iirisRecommendationVer":"version4","weather3MonthForecastEnabled":false,"legacyHomepage":false,"oneTrustEnabled":true,"transcendEnabled":true},"layout":{"socialLinks":[{"type":"Twitter","url":"https://twitter.com/DarkReading"},{"type":"Linkedin","url":"https://www.linkedin.com/company/dark-reading/"},{"type":"Facebook","url":"https://www.facebook.com/darkreadingcom/"},{"type":"Youtube","url":"https://www.youtube.com/@DarkReadingOfficialYT"},{"type":"RSS","url":"https://www.darkreading.com/rss.xml"},{"type":"GoogleNews","url":"https://news.google.com/publications/CAAqBwgKMKmknwswtq63Aw?ceid=US:en\u0026oc=3\u0026hl=en-US\u0026gl=US"}],"informaBar":{"enabled":true,"leftSection":{"description":"Dark Reading is part of the Informa TechTarget Division of Informa PLC","subMenu":[{"title":"Informa PLC","url":"https://www.informa.com/"},{"title":"ABOUT US","url":"https://www.informa.com/about-us/"},{"title":"INVESTOR RELATIONS","url":"https://www.informa.com/investors/"},{"title":"TALENT","url":"https://www.informa.com/talent/"}]},"rightSection":{"description":"This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales and Scotlan. Number 8860726."}},"nav":{"mainMenuItems":[{"title":"Cybersecurity Topics","url":"","seeAllLink":"","seeAllLinkUrl":"","hasSubMenu":true,"subMenu":[{"title":"Application Security","url":"/application-security"},{"title":"Cybersecurity Careers","url":"/cybersecurity-operations/cybersecurity-careers"},{"title":"Cloud Security","url":"/cloud-security"},{"title":"Cyber Risk","url":"/cyber-risk"},{"title":"Cyberattacks \u0026 Data Breaches","url":"/cyberattacks-data-breaches"},{"title":"Cybersecurity Analytics","url":"/cybersecurity-analytics"},{"title":"Cybersecurity Operations","url":"/cybersecurity-operations"},{"title":"Data Privacy","url":"/cyber-risk/data-privacy"},{"title":"Endpoint Security","url":"/endpoint-security"},{"title":"ICS/OT Security","url":"/ics-ot-security"},{"title":"Identity \u0026 Access Mgmt Security","url":"/cybersecurity-operations/identity-access-management-security"},{"title":"Insider Threats","url":"/vulnerabilities-threats/insider-threats"},{"title":"IoT","url":"/ics-ot-security/iot"},{"title":"Mobile Security","url":"/endpoint-security/mobile-security"},{"title":"Perimeter","url":"/cybersecurity-operations/perimeter"},{"title":"Physical Security","url":"/cybersecurity-operations/physical-security"},{"title":"Remote Workforce","url":"/endpoint-security/remote-workforce"},{"title":"Threat Intelligence","url":"/threat-intelligence"},{"title":"Vulnerabilities \u0026 Threats","url":"/vulnerabilities-threats"}],"recentContents":[]},{"title":"World ","url":"/program/dr-global","seeAllLink":"See All","seeAllLinkUrl":"/program/dr-global","hasSubMenu":true,"subMenu":[{"title":"DR Global","url":"/program/dr-global"},{"title":"Middle East \u0026 Africa","url":"/keyword/middle-east-africa"},{"title":"Asia Pacific","url":"/keyword/asia-pacific"}],"recentContents":[]},{"title":"The Edge","url":"/program/the-edge","seeAllLink":"","seeAllLinkUrl":"/program/the-edge","hasSubMenu":false,"subMenu":[],"recentContents":[]},{"title":"DR Technology","url":"/program/dr-technology","seeAllLink":"","seeAllLinkUrl":"/program/dr-technology","hasSubMenu":false,"subMenu":[],"recentContents":[]},{"title":"Events","url":"/events","seeAllLink":"SEE ALL","seeAllLinkUrl":"/events","hasSubMenu":true,"subMenu":[{"title":"Upcoming Events","url":"/events"},{"title":"Podcasts","url":"/podcasts"},{"title":"Webinars","url":"/resources?types=Webinar"}],"recentContents":[]},{"title":"Resources","url":"/resources","seeAllLink":"SEE ALL","seeAllLinkUrl":"/resources","hasSubMenu":true,"subMenu":[{"title":"Library","url":"/resources"},{"title":"Newsletters","url":"https://dr-resources.darkreading.com/free/w_defa3135/prgm.cgi"},{"title":"Podcasts","url":"/podcasts"},{"title":"Reports","url":"/resources?types=Report"},{"title":"Videos","url":"/videos"},{"title":"Webinars","url":"/resources?types=Webinar"},{"title":"Whitepapers","url":"/resources?types=Whitepaper"},{"title":" ","url":" "},{"title":" ","url":" "},{"title":" ","url":" "},{"title":" ","url":" "},{"title":"Partner Perspectives","url":"/keyword/partner-perspectives"}],"recentContents":[]}],"secondaryMenu":[{"title":"Black Hat News","url":"/program/black-hat"},{"title":"Omdia Cybersecurity","url":"/program/omdia-cybersecurity"},{"title":"Advertise","url":"https://reg.darkreading.com/media-kit?kcode=drsitehd"}]},"megaMenu":{"largeMenu":[{"title":"Cybersecurity Topics","url":"","subMenu":[{"title":"Application Security","url":"/application-security"},{"title":"Cybersecurity Careers","url":"/cybersecurity-operations/cybersecurity-careers"},{"title":"Cloud Security","url":"/cloud-security"},{"title":"Cyber Risk","url":"/cyber-risk"},{"title":"Cyberattacks \u0026 Data Breaches","url":"/cyberattacks-data-breaches"},{"title":"Cybersecurity Analytics","url":"/cybersecurity-analytics"},{"title":"Cybersecurity Operations","url":"/cybersecurity-operations"},{"title":"Data Privacy","url":"/cyber-risk/data-privacy"},{"title":"Endpoint Security","url":"/endpoint-security"},{"title":"ICS/OT Security","url":"/ics-ot-security"},{"title":"Identity \u0026 Access Mgmt Security","url":"/cybersecurity-operations/identity-access-management-security"},{"title":"Insider Threats","url":"/vulnerabilities-threats/insider-threats"},{"title":"IoT","url":"/ics-ot-security/iot"},{"title":"Mobile Security","url":"/endpoint-security/mobile-security"},{"title":"Perimeter","url":"/cybersecurity-operations/perimeter"},{"title":"Physical Security","url":"/cybersecurity-operations/physical-security"},{"title":"Remote Workforce","url":"/endpoint-security/remote-workforce"},{"title":"Threat Intelligence","url":"/threat-intelligence"},{"title":"Vulnerabilities \u0026 Threats","url":"/vulnerabilities-threats"}],"seeAllLink":"","seeAllLinkUrl":""},{"title":"World ","url":"/program/dr-global","subMenu":[{"title":"DR Global","url":"/program/dr-global"},{"title":"Middle East \u0026 Africa","url":"/keyword/middle-east-africa"},{"title":"Asia Pacific","url":"/keyword/asia-pacific"}],"seeAllLink":"See All","seeAllLinkUrl":"/program/dr-global"},{"title":"The Edge","url":"/program/the-edge","subMenu":[],"seeAllLink":"","seeAllLinkUrl":"/program/the-edge"},{"title":"DR Technology","url":"/program/dr-technology","subMenu":[],"seeAllLink":"","seeAllLinkUrl":"/program/dr-technology"},{"title":"Events","url":"/events","subMenu":[{"title":"Upcoming Events","url":"/events"},{"title":"Podcasts","url":"/podcasts"},{"title":"Webinars","url":"/resources?types=Webinar"}],"seeAllLink":"SEE ALL","seeAllLinkUrl":"/events"},{"title":"Resources","url":"/resources","subMenu":[{"title":"Library","url":"/resources"},{"title":"Newsletters","url":"https://dr-resources.darkreading.com/free/w_defa3135/prgm.cgi"},{"title":"Podcasts","url":"/podcasts"},{"title":"Reports","url":"/resources?types=Report"},{"title":"Videos","url":"/videos"},{"title":"Webinars","url":"/resources?types=Webinar"},{"title":"Whitepapers","url":"/resources?types=Whitepaper"},{"title":" ","url":" "},{"title":" ","url":" "},{"title":" ","url":" "},{"title":" ","url":" "},{"title":"Partner Perspectives","url":"/keyword/partner-perspectives"}],"seeAllLink":"SEE ALL","seeAllLinkUrl":"/resources"}],"smallMenu":[{"title":"Resources","url":"","subMenu":[]},{"title":"More","url":"","subMenu":[{"title":"About Us","url":"/about-us"},{"title":"Advertise With Us","url":"/advertise"},{"title":"Submissions","url":"/cyberattacks-data-breaches/how-to-submit-a-column-to-dark-reading"}]}],"sideNavSections":[]},"navBase":{"logo":{"url":"https://eu-images.contentstack.com/v3/assets/blt6d90778a997de1cd/blte9ead971f13c662e/65437029846d7c040a6e588d/Logo_-_Dark_Reading.svg","altText":"Dark Reading Logo"}},"footer":{"logo":{"url":"https://eu-images.contentstack.com/v3/assets/blt6d90778a997de1cd/blt6aed714e279eeb34/6542104467527c040a9b2014/Logo_-_Dark_Reading.svg","altText":"Logo"},"linkSections":[{"links":[{"image":{"altText":"","url":"https://eu-images.contentstack.com/v3/assets/blt6d90778a997de1cd/blt39752b9f502ed723/65004ef460832757db397d3a/Dark_Reading_Logo_Stacked_K.png"},"openInNewTab":true,"title":"Black Hat","url":"/program/black-hat"},{"image":{"altText":"","url":"https://eu-images.contentstack.com/v3/assets/blt6d90778a997de1cd/blt39752b9f502ed723/65004ef460832757db397d3a/Dark_Reading_Logo_Stacked_K.png"},"openInNewTab":true,"title":"Omdia","url":"/program/omdia-cybersecurity"}],"title":"Discover More","type":"1"},{"links":[{"image":{"altText":"","url":"https://eu-images.contentstack.com/v3/assets/blt6d90778a997de1cd/blt64bc80c1cc860f0e/64ff3af37434dc8f904db946/Dark_Reading_Logo_0_200px.png"},"openInNewTab":false,"title":"About Us","url":"/about-us"},{"image":{"altText":"","url":"https://eu-images.contentstack.com/v3/assets/blt6d90778a997de1cd/blt9a23e12b46e10b76/64ff3b08f7b4013e16a3d26a/Dark_Reading_Logo_0_200px.png"},"openInNewTab":false,"title":"Advertise","url":"/advertise"},{"image":{"altText":"","url":"https://eu-images.contentstack.com/v3/assets/blt6d90778a997de1cd/blt7b65ada713568986/64ff3bd1abb8d8128a7762bd/Dark_Reading_Logo_0_200px.png"},"openInNewTab":true,"title":"Reprints","url":"https://info.wrightsmedia.com/informa-licensing-reprints-request"}],"title":"Working With Us","type":"1"}],"brandLinks":[],"copyright":{"businessUnit":{"url":"https://www.informa.com","name":"Informa","logoUrl":"https://eu-images.contentstack.com/v3/assets/blt6d90778a997de1cd/bltb3f56b75133715aa/674ee1ace1b5ac19f79ca74e/Informa_Logo_OneLine_Graduated_White_RGB.png"},"links":[{"image":{"altText":"Home","url":"https://www.informatech.com/"},"openInNewTab":true,"title":"Home","url":"https://www.informatech.com/"},{"image":{"altText":"Cookie Policy","url":"/cookie-policy"},"openInNewTab":true,"title":"Cookie Policy","url":"/cookie-policy"},{"image":{"altText":"Privacy","url":"https://www.techtarget.com/privacy-policy/"},"openInNewTab":true,"title":"Privacy","url":"https://www.techtarget.com/privacy-policy/"},{"image":{"altText":"Terms of Use","url":"https://www.informatech.com/terms-and-conditions/"},"openInNewTab":true,"title":"Terms of Use","url":"https://www.informatech.com/terms-and-conditions/"}],"title":". This website is owned and operated by Informa TechTarget, part of a global network that informs, influences and connects the world’s technology buyers and sellers. All copyright resides with them. Informa PLC’s registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. TechTarget, Inc.’s registered office is 275 Grove St. Newton, MA 02466."}},"isSponsorBarEnabled":true,"isPaidContent":false},"newRelicJs":"window.NREUM||(NREUM={});NREUM.init={distributed_tracing:{enabled:true},privacy:{cookies_enabled:true},ajax:{deny_list:[\"bam.eu01.nr-data.net\"]}};\n\n;NREUM.loader_config={accountID:\"3936348\",trustKey:\"3288925\",agentID:\"538600199\",licenseKey:\"NRJS-26ae6a3b09493bbcc87\",applicationID:\"538600199\"};\n;NREUM.info={beacon:\"bam.eu01.nr-data.net\",errorBeacon:\"bam.eu01.nr-data.net\",licenseKey:\"NRJS-26ae6a3b09493bbcc87\",applicationID:\"538600199\",sa:1};\n;/*! For license information please see nr-loader-spa-1.275.0.min.js.LICENSE.txt */\n(()=\u003e{var e,t,r={8122:(e,t,r)=\u003e{\"use strict\";r.d(t,{a:()=\u003ei});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)),o=0===Object.keys(r).length?e:r;for(let a in o)if(void 0!==e[a])try{if(null===e[a]){r[a]=null;continue}Array.isArray(e[a])\u0026\u0026Array.isArray(t[a])?r[a]=Array.from(new Set([...e[a],...t[a]])):\"object\"==typeof e[a]\u0026\u0026\"object\"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){(0,n.R)(1,e)}return r}catch(e){(0,n.R)(2,e)}}},2555:(e,t,r)=\u003e{\"use strict\";r.d(t,{Vp:()=\u003ec,fn:()=\u003es,x1:()=\u003eu});var n=r(384),i=r(8122);const o={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},a={};function s(e){try{const t=c(e);return!!t.licenseKey\u0026\u0026!!t.errorBeacon\u0026\u0026!!t.applicationID}catch(e){return!1}}function c(e){if(!e)throw new Error(\"All info objects require an agent identifier!\");if(!a[e])throw new Error(\"Info for \".concat(e,\" was never set\"));return a[e]}function u(e,t){if(!e)throw new Error(\"All info objects require an agent identifier!\");a[e]=(0,i.a)(t,o);const r=(0,n.nY)(e);r\u0026\u0026(r.info=a[e])}},9417:(e,t,r)=\u003e{\"use strict\";r.d(t,{D0:()=\u003eh,gD:()=\u003eg,xN:()=\u003ep});var n=r(993);const i=e=\u003e{if(!e||\"string\"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var o=r(2614),a=r(944),s=r(384),c=r(8122);const u=\"[data-nr-mask]\",d=()=\u003e{const e={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,harvestTimeSeconds:10,autoStart:!0},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},feature_flags:[],generic_events:{enabled:!0,harvestTimeSeconds:30,autoStart:!0},harvest:{tooManyRequestsDelay:60},jserrors:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},logging:{enabled:!0,harvestTimeSeconds:10,autoStart:!0,level:n.p_.INFO},metrics:{enabled:!0,autoStart:!0},obfuscate:void 0,page_action:{enabled:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,harvestTimeSeconds:30,autoStart:!0},performance:{capture_marks:!1,capture_measures:!1},privacy:{cookies_enabled:!0},proxy:{assets:void 0,beacon:void 0},session:{expiresMs:o.wk,inactiveMs:o.BB},session_replay:{autoStart:!0,enabled:!1,harvestTimeSeconds:60,preload:!1,sampling_rate:10,error_sampling_rate:100,collect_fonts:!1,inline_images:!1,fix_stylesheets:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){i(t)?e.mask_selector=\"\".concat(t,\",\").concat(u):\"\"===t||null===t?e.mask_selector=u:(0,a.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){i(t)?e.block_selector+=\",\".concat(t):\"\"!==t\u0026\u0026(0,a.R)(6,t)},get mask_input_options(){return e.mask_input_options},set mask_input_options(t){t\u0026\u0026\"object\"==typeof t?e.mask_input_options={...t,password:!0}:(0,a.R)(7,t)}},session_trace:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},soft_navigations:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},spa:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},ssl:void 0,user_actions:{enabled:!0}}},l={},f=\"All configuration objects require an agent identifier!\";function h(e){if(!e)throw new Error(f);if(!l[e])throw new Error(\"Configuration for \".concat(e,\" was never set\"));return l[e]}function p(e,t){if(!e)throw new Error(f);l[e]=(0,c.a)(t,d());const r=(0,s.nY)(e);r\u0026\u0026(r.init=l[e])}function g(e,t){if(!e)throw new Error(f);var r=h(e);if(r){for(var n=t.split(\".\"),i=0;i\u003cn.length-1;i++)if(\"object\"!=typeof(r=r[n[i]]))return;r=r[n[n.length-1]]}return r}},5603:(e,t,r)=\u003e{\"use strict\";r.d(t,{a:()=\u003ec,o:()=\u003es});var n=r(384),i=r(8122);const o={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0},a={};function s(e){if(!e)throw new Error(\"All loader-config objects require an agent identifier!\");if(!a[e])throw new Error(\"LoaderConfig for \".concat(e,\" was never set\"));return a[e]}function c(e,t){if(!e)throw new Error(\"All loader-config objects require an agent identifier!\");a[e]=(0,i.a)(t,o);const r=(0,n.nY)(e);r\u0026\u0026(r.loader_config=a[e])}},3371:(e,t,r)=\u003e{\"use strict\";r.d(t,{V:()=\u003ef,f:()=\u003el});var n=r(8122),i=r(384),o=r(6154),a=r(9324);let s=0;const c={buildEnv:a.F3,distMethod:a.Xs,version:a.xv,originTime:o.WN},u={customTransaction:void 0,disabled:!1,isolatedBacklog:!1,loaderType:void 0,maxBytes:3e4,onerror:void 0,ptid:void 0,releaseIds:{},appMetadata:{},session:void 0,denyList:void 0,timeKeeper:void 0,obfuscator:void 0},d={};function l(e){if(!e)throw new Error(\"All runtime objects require an agent identifier!\");if(!d[e])throw new Error(\"Runtime for \".concat(e,\" was never set\"));return d[e]}function f(e,t){if(!e)throw new Error(\"All runtime objects require an agent identifier!\");d[e]={...(0,n.a)(t,u),...c},Object.hasOwnProperty.call(d[e],\"harvestCount\")||Object.defineProperty(d[e],\"harvestCount\",{get:()=\u003e++s});const r=(0,i.nY)(e);r\u0026\u0026(r.runtime=d[e])}},9324:(e,t,r)=\u003e{\"use strict\";r.d(t,{F3:()=\u003ei,Xs:()=\u003eo,Yq:()=\u003ea,xv:()=\u003en});const n=\"1.275.0\",i=\"PROD\",o=\"CDN\",a=\"^2.0.0-alpha.17\"},6154:(e,t,r)=\u003e{\"use strict\";r.d(t,{A4:()=\u003es,OF:()=\u003ed,RI:()=\u003ei,WN:()=\u003eh,bv:()=\u003eo,gm:()=\u003ea,lR:()=\u003ef,m:()=\u003eu,mw:()=\u003ec,sb:()=\u003el});var n=r(1863);const i=\"undefined\"!=typeof window\u0026\u0026!!window.document,o=\"undefined\"!=typeof WorkerGlobalScope\u0026\u0026(\"undefined\"!=typeof self\u0026\u0026self instanceof WorkerGlobalScope\u0026\u0026self.navigator instanceof WorkerNavigator||\"undefined\"!=typeof globalThis\u0026\u0026globalThis instanceof WorkerGlobalScope\u0026\u0026globalThis.navigator instanceof WorkerNavigator),a=i?window:\"undefined\"!=typeof WorkerGlobalScope\u0026\u0026(\"undefined\"!=typeof self\u0026\u0026self instanceof WorkerGlobalScope\u0026\u0026self||\"undefined\"!=typeof globalThis\u0026\u0026globalThis instanceof WorkerGlobalScope\u0026\u0026globalThis),s=\"complete\"===a?.document?.readyState,c=Boolean(\"hidden\"===a?.document?.visibilityState),u=\"\"+a?.location,d=/iPad|iPhone|iPod/.test(a.navigator?.userAgent),l=d\u0026\u0026\"undefined\"==typeof SharedWorker,f=(()=\u003e{const e=a.navigator?.userAgent?.match(/Firefox[/\\s](\\d+\\.\\d+)/);return Array.isArray(e)\u0026\u0026e.length\u003e=2?+e[1]:0})(),h=Date.now()-(0,n.t)()},7295:(e,t,r)=\u003e{\"use strict\";r.d(t,{Xv:()=\u003ea,gX:()=\u003ei,iW:()=\u003eo});var n=[];function i(e){if(!e||o(e))return!1;if(0===n.length)return!0;for(var t=0;t\u003cn.length;t++){var r=n[t];if(\"*\"===r.hostname)return!1;if(s(r.hostname,e.hostname)\u0026\u0026c(r.pathname,e.pathname))return!1}return!0}function o(e){return void 0===e.hostname}function a(e){if(n=[],e\u0026\u0026e.length)for(var t=0;t\u003ce.length;t++){let r=e[t];if(!r)continue;0===r.indexOf(\"http://\")?r=r.substring(7):0===r.indexOf(\"https://\")\u0026\u0026(r=r.substring(8));const i=r.indexOf(\"/\");let o,a;i\u003e0?(o=r.substring(0,i),a=r.substring(i)):(o=r,a=\"\");let[s]=o.split(\":\");n.push({hostname:s,pathname:a})}}function s(e,t){return!(e.length\u003et.length)\u0026\u0026t.indexOf(e)===t.length-e.length}function c(e,t){return 0===e.indexOf(\"/\")\u0026\u0026(e=e.substring(1)),0===t.indexOf(\"/\")\u0026\u0026(t=t.substring(1)),\"\"===e||e===t}},1687:(e,t,r)=\u003e{\"use strict\";r.d(t,{Ak:()=\u003ec,Ze:()=\u003el,x3:()=\u003eu});var n=r(7836),i=r(3606),o=r(860),a=r(2646);const s={};function c(e,t){const r={staged:!1,priority:o.P3[t]||0};d(e),s[e].get(t)||s[e].set(t,r)}function u(e,t){e\u0026\u0026s[e]\u0026\u0026(s[e].get(t)\u0026\u0026s[e].delete(t),h(e,t,!1),s[e].size\u0026\u0026f(e))}function d(e){if(!e)throw new Error(\"agentIdentifier required\");s[e]||(s[e]=new Map)}function l(e=\"\",t=\"feature\",r=!1){if(d(e),!e||!s[e].get(t)||r)return h(e,t);s[e].get(t).staged=!0,f(e)}function f(e){const t=Array.from(s[e]);t.every((([e,t])=\u003et.staged))\u0026\u0026(t.sort(((e,t)=\u003ee[1].priority-t[1].priority)),t.forEach((([t])=\u003e{s[e].delete(t),h(e,t)})))}function h(e,t,r=!0){const o=e?n.ee.get(e):n.ee,s=i.i.handlers;if(!o.aborted\u0026\u0026o.backlog\u0026\u0026s){if(r){const e=o.backlog[t],r=s[t];if(r){for(let t=0;e\u0026\u0026t\u003ce.length;++t)p(e[t],r);Object.entries(r).forEach((([e,t])=\u003e{Object.values(t||{}).forEach((t=\u003e{t[0]?.on\u0026\u0026t[0]?.context()instanceof a.y\u0026\u0026t[0].on(e,t[1])}))}))}}o.isolatedBacklog||delete s[t],o.backlog[t]=null,o.emit(\"drain-\"+t,[])}}function p(e,t){var r=e[1];Object.values(t[r]||{}).forEach((t=\u003e{var r=e[0];if(t[0]===r){var n=t[1],i=e[3],o=e[2];n.apply(i,o)}}))}},7836:(e,t,r)=\u003e{\"use strict\";r.d(t,{P:()=\u003ec,ee:()=\u003eu});var n=r(384),i=r(8990),o=r(3371),a=r(2646),s=r(5607);const c=\"nr@context:\".concat(s.W),u=function e(t,r){var n={},s={},d={},l=!1;try{l=16===r.length\u0026\u0026(0,o.f)(r).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\u003cr.length;i++)r[i]===t\u0026\u0026r.splice(i,1)},emit:function(e,r,n,i,o){!1!==o\u0026\u0026(o=!0);if(u.aborted\u0026\u0026!i)return;t\u0026\u0026o\u0026\u0026t.emit(e,r,n);for(var a=h(n),c=g(e),d=c.length,l=0;l\u003cd;l++)c[l].apply(a,r);var p=v()[s[e]];p\u0026\u0026p.push([f,e,r,a]);return a},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])=\u003e{s[n]=t,t in r||(r[t]=[])}))},abort:function(){f._aborted=!0,Object.keys(f.backlog).forEach((e=\u003e{delete f.backlog[e]}))},isBuffering:function(e){return!!v()[s[e]]},debugId:r,backlog:l?{}:t\u0026\u0026\"object\"==typeof t.backlog?t.backlog:{},isolatedBacklog:l};return Object.defineProperty(f,\"aborted\",{get:()=\u003e{let e=f._aborted||!1;return e||(t\u0026\u0026(e=t.aborted),e)}}),f;function h(e){return e\u0026\u0026e instanceof a.y?e:e?(0,i.I)(e,c,(()=\u003enew a.y(c))):new a.y(c)}function p(e,t){n[e]=g(e).concat(t)}function g(e){return n[e]||[]}function m(t){return d[t]=d[t]||e(f,t)}function v(){return f.backlog}}(void 0,\"globalEE\"),d=(0,n.Zm)();d.ee||(d.ee=u)},2646:(e,t,r)=\u003e{\"use strict\";r.d(t,{y:()=\u003en});class n{constructor(e){this.contextId=e}}},9908:(e,t,r)=\u003e{\"use strict\";r.d(t,{d:()=\u003en,p:()=\u003ei});var n=r(7836).ee.get(\"handle\");function i(e,t,r,i,o){o?(o.buffer([e],i),o.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},3606:(e,t,r)=\u003e{\"use strict\";r.d(t,{i:()=\u003eo});var n=r(9908);o.on=a;var i=o.handlers={};function o(e,t,r,o){a(o||n.d,i,e,t,r)}function a(e,t,r,i,o){o||(o=\"feature\"),e||(e=n.d);var a=t[o]=t[o]||{};(a[r]=a[r]||[]).push([e,i])}},3878:(e,t,r)=\u003e{\"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 o(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=\u003eo,jT:()=\u003en,sp:()=\u003ei})},5607:(e,t,r)=\u003e{\"use strict\";r.d(t,{W:()=\u003en});const n=(0,r(9566).bz)()},9566:(e,t,r)=\u003e{\"use strict\";r.d(t,{LA:()=\u003es,ZF:()=\u003ec,bz:()=\u003ea,el:()=\u003eu});var n=r(6154);const i=\"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\";function o(e,t){return e?15\u0026e[t]:16*Math.random()|0}function a(){const e=n.gm?.crypto||n.gm?.msCrypto;let t,r=0;return e\u0026\u0026e.getRandomValues\u0026\u0026(t=e.getRandomValues(new Uint8Array(30))),i.split(\"\").map((e=\u003e\"x\"===e?o(t,r++).toString(16):\"y\"===e?(3\u0026o()|8).toString(16):e)).join(\"\")}function s(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,i=0;t\u0026\u0026t.getRandomValues\u0026\u0026(r=t.getRandomValues(new Uint8Array(e)));const a=[];for(var s=0;s\u003ce;s++)a.push(o(r,i++).toString(16));return a.join(\"\")}function c(){return s(16)}function u(){return s(32)}},2614:(e,t,r)=\u003e{\"use strict\";r.d(t,{BB:()=\u003ea,H3:()=\u003en,g:()=\u003eu,iL:()=\u003ec,tS:()=\u003es,uh:()=\u003ei,wk:()=\u003eo});const n=\"NRBA\",i=\"SESSION\",o=144e5,a=18e5,s={STARTED:\"session-started\",PAUSE:\"session-pause\",RESET:\"session-reset\",RESUME:\"session-resume\",UPDATE:\"session-update\"},c={SAME_TAB:\"same-tab\",CROSS_TAB:\"cross-tab\"},u={OFF:0,FULL:1,ERROR:2}},1863:(e,t,r)=\u003e{\"use strict\";function n(){return Math.floor(performance.now())}r.d(t,{t:()=\u003en})},7485:(e,t,r)=\u003e{\"use strict\";r.d(t,{D:()=\u003ei});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\u0026\u0026t.host===n.gm?.location?.host};return r.port\u0026\u0026\"\"!==r.port||(\"http:\"===t.protocol\u0026\u0026(r.port=\"80\"),\"https:\"===t.protocol\u0026\u0026(r.port=\"443\")),r.pathname\u0026\u0026\"\"!==r.pathname?r.pathname.startsWith(\"/\")||(r.pathname=\"/\".concat(r.pathname)):r.pathname=\"/\",r}catch(e){return{}}}},944:(e,t,r)=\u003e{\"use strict\";function n(e,t){\"function\"==typeof console.debug\u0026\u0026console.debug(\"New Relic Warning: https://github.com/newrelic/newrelic-browser-agent/blob/main/docs/warning-codes.md#\".concat(e),t)}r.d(t,{R:()=\u003en})},5284:(e,t,r)=\u003e{\"use strict\";r.d(t,{t:()=\u003ec,B:()=\u003es});var n=r(7836),i=r(6154);const o=\"newrelic\";const a=new Set,s={};function c(e,t){const r=n.ee.get(t);s[t]??={},e\u0026\u0026\"object\"==typeof e\u0026\u0026(a.has(t)||(r.emit(\"rumresp\",[e]),s[t]=e,a.add(t),function(e={}){try{i.gm.dispatchEvent(new CustomEvent(o,{detail:e}))}catch(e){}}({loaded:!0})))}},8990:(e,t,r)=\u003e{\"use strict\";r.d(t,{I:()=\u003ei});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty\u0026\u0026Object.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)=\u003e{\"use strict\";function n(e,t=500,r={}){const n=r?.leading||!1;let i;return(...r)=\u003e{n\u0026\u0026void 0===i\u0026\u0026(e.apply(this,r),i=setTimeout((()=\u003e{i=clearTimeout(i)}),t)),n||(clearTimeout(i),i=setTimeout((()=\u003e{e.apply(this,r)}),t))}}function i(e){let t=!1;return(...r)=\u003e{t||(t=!0,e.apply(this,r))}}r.d(t,{J:()=\u003ei,s:()=\u003en})},3304:(e,t,r)=\u003e{\"use strict\";r.d(t,{A:()=\u003eo});var n=r(7836);const i=()=\u003e{const e=new WeakSet;return(t,r)=\u003e{if(\"object\"==typeof r\u0026\u0026null!==r){if(e.has(r))return;e.add(r)}return r}};function o(e){try{return JSON.stringify(e,i())??\"\"}catch(e){try{n.ee.emit(\"internal-error\",[e])}catch(e){}return\"\"}}},5289:(e,t,r)=\u003e{\"use strict\";r.d(t,{GG:()=\u003eo,sB:()=\u003ea});var n=r(3878);function i(){return\"undefined\"==typeof document||\"complete\"===document.readyState}function o(e,t){if(i())return e();(0,n.sp)(\"load\",e,t)}function a(e){if(i())return e();(0,n.DD)(\"DOMContentLoaded\",e)}},384:(e,t,r)=\u003e{\"use strict\";r.d(t,{NT:()=\u003eo,US:()=\u003ed,Zm:()=\u003ea,bQ:()=\u003ec,dV:()=\u003es,nY:()=\u003eu,pV:()=\u003el});var n=r(6154),i=r(1863);const o={beacon:\"bam.nr-data.net\",errorBeacon:\"bam.nr-data.net\"};function a(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic\u0026\u0026(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function s(){let e=a();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate,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}),e}function c(e,t){let r=a();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t}function u(e){let t=a();return t.initializedAgents?.[e]}function d(e,t){a()[e]=t}function l(){return function(){let e=a();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=a();const t=e.init||{};e.init={...t}}(),s(),function(){let e=a();const t=e.loader_config||{};e.loader_config={...t}}(),a()}},2843:(e,t,r)=\u003e{\"use strict\";r.d(t,{u:()=\u003ei});var n=r(3878);function i(e,t=!1,r,i){(0,n.DD)(\"visibilitychange\",(function(){if(t)return void(\"hidden\"===document.visibilityState\u0026\u0026e());e(document.visibilityState)}),r,i)}},8139:(e,t,r)=\u003e{\"use strict\";r.d(t,{u:()=\u003ef});var n=r(7836),i=r(3434),o=r(8990),a=r(6154);const s={},c=a.gm.XMLHttpRequest,u=\"addEventListener\",d=\"removeEventListener\",l=\"nr@wrapped:\".concat(n.P);function f(e){var t=function(e){return(e||n.ee).get(\"events\")}(e);if(s[t.debugId]++)return t;s[t.debugId]=1;var r=(0,i.YM)(t,!0);function f(e){r.inPlace(e,[u,d],\"-\",p)}function p(e,t){return e[1]}return\"getPrototypeOf\"in Object\u0026\u0026(a.RI\u0026\u0026h(document,f),c\u0026\u0026h(c.prototype,f),h(a.gm,f)),t.on(u+\"-start\",(function(e,t){var n=e[1];if(null!==n\u0026\u0026(\"function\"==typeof n||\"object\"==typeof n)){var i=(0,o.I)(n,l,(function(){var e={object:function(){if(\"function\"!=typeof n.handleEvent)return;return n.handleEvent.apply(n,arguments)},function:n}[typeof n];return e?r(e,\"fn-\",null,e.name||\"anonymous\"):n}));this.wrapped=e[1]=i}})),t.on(d+\"-start\",(function(e){e[1]=this.wrapped||e[1]})),t}function h(e,t,...r){let n=e;for(;\"object\"==typeof n\u0026\u0026!Object.prototype.hasOwnProperty.call(n,u);)n=Object.getPrototypeOf(n);n\u0026\u0026t(n,...r)}},3434:(e,t,r)=\u003e{\"use strict\";r.d(t,{Jt:()=\u003eo,YM:()=\u003ec});var n=r(7836),i=r(5607);const o=\"nr@original:\".concat(i.W);var a=Object.prototype.hasOwnProperty,s=!1;function c(e,t){return e||(e=n.ee),r.inPlace=function(e,t,n,i,o){n||(n=\"\");const a=\"-\"===n.charAt(0);for(let s=0;s\u003ct.length;s++){const c=t[s],u=e[c];d(u)||(e[c]=r(u,a?c+n:n,i,c,o))}},r.flag=o,r;function r(t,r,n,s,c){return d(t)?t:(r||(r=\"\"),nrWrapper[o]=t,function(e,t,r){if(Object.defineProperty\u0026\u0026Object.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)a.call(e,n)\u0026\u0026(t[n]=e[n])}(t,nrWrapper,e),nrWrapper);function nrWrapper(){var o,a,d,l;try{a=this,o=[...arguments],d=\"function\"==typeof n?n(o,a):n||{}}catch(t){u([t,\"\",[o,a,s],d],e)}i(r+\"start\",[o,a,s],d,c);try{return l=t.apply(a,o)}catch(e){throw i(r+\"err\",[o,a,e],d,c),e}finally{i(r+\"end\",[o,a,l],d,c)}}}function i(r,n,i,o){if(!s||t){var a=s;s=!0;try{e.emit(r,n,i,t,o)}catch(t){u([t,r,n,i],e)}s=a}}}function u(e,t){t||(t=n.ee);try{t.emit(\"internal-error\",e)}catch(e){}}function d(e){return!(e\u0026\u0026\"function\"==typeof e\u0026\u0026e.apply\u0026\u0026!e[o])}},9300:(e,t,r)=\u003e{\"use strict\";r.d(t,{T:()=\u003en});const n=r(860).K7.ajax},3333:(e,t,r)=\u003e{\"use strict\";r.d(t,{TZ:()=\u003en,Zp:()=\u003ei,mq:()=\u003es,nf:()=\u003ea,qN:()=\u003eo});const n=r(860).K7.genericEvents,i=[\"auxclick\",\"click\",\"copy\",\"keydown\",\"paste\",\"scrollend\"],o=[\"focus\",\"blur\"],a=4,s=1e3},6774:(e,t,r)=\u003e{\"use strict\";r.d(t,{T:()=\u003en});const n=r(860).K7.jserrors},993:(e,t,r)=\u003e{\"use strict\";r.d(t,{ET:()=\u003eo,TZ:()=\u003ea,p_:()=\u003ei});var n=r(860);const i={ERROR:\"ERROR\",WARN:\"WARN\",INFO:\"INFO\",DEBUG:\"DEBUG\",TRACE:\"TRACE\"},o=\"log\",a=n.K7.logging},3785:(e,t,r)=\u003e{\"use strict\";r.d(t,{R:()=\u003ec,b:()=\u003eu});var n=r(9908),i=r(1863),o=r(860),a=r(3969),s=r(993);function c(e,t,r={},c=s.p_.INFO){(0,n.p)(a.xV,[\"API/logging/\".concat(c.toLowerCase(),\"/called\")],void 0,o.K7.metrics,e),(0,n.p)(s.ET,[(0,i.t)(),t,r,c],void 0,o.K7.logging,e)}function u(e){return\"string\"==typeof e\u0026\u0026Object.values(s.p_).some((t=\u003et===e.toUpperCase().trim()))}},3969:(e,t,r)=\u003e{\"use strict\";r.d(t,{TZ:()=\u003en,XG:()=\u003es,rs:()=\u003ei,xV:()=\u003ea,z_:()=\u003eo});const n=r(860).K7.metrics,i=\"sm\",o=\"cm\",a=\"storeSupportabilityMetrics\",s=\"storeEventMetrics\"},6630:(e,t,r)=\u003e{\"use strict\";r.d(t,{T:()=\u003en});const n=r(860).K7.pageViewEvent},782:(e,t,r)=\u003e{\"use strict\";r.d(t,{T:()=\u003en});const n=r(860).K7.pageViewTiming},6344:(e,t,r)=\u003e{\"use strict\";r.d(t,{BB:()=\u003ed,G4:()=\u003eo,Qb:()=\u003el,TZ:()=\u003ei,Ug:()=\u003ea,_s:()=\u003es,bc:()=\u003eu,yP:()=\u003ec});var n=r(2614);const i=r(860).K7.sessionReplay,o={RECORD:\"recordReplay\",PAUSE:\"pauseReplay\",REPLAY_RUNNING:\"replayRunning\",ERROR_DURING_REPLAY:\"errorDuringReplay\"},a=.12,s={DomContentLoaded:0,Load:1,FullSnapshot:2,IncrementalSnapshot:3,Meta:4,Custom:5},c={[n.g.ERROR]:15e3,[n.g.FULL]:3e5,[n.g.OFF]:0},u={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\"}},d=5e3,l={API:\"api\"}},5270:(e,t,r)=\u003e{\"use strict\";r.d(t,{Aw:()=\u003ec,CT:()=\u003eu,SR:()=\u003es});var n=r(384),i=r(9417),o=r(7767),a=r(6154);function s(e){return!!(0,n.dV)().o.MO\u0026\u0026(0,o.V)(e)\u0026\u0026!0===(0,i.gD)(e,\"session_trace.enabled\")}function c(e){return!0===(0,i.gD)(e,\"session_replay.preload\")\u0026\u0026s(e)}function u(e,t){const r=t.correctAbsoluteTimestamp(e);return{originalTimestamp:e,correctedTimestamp:r,timestampDiff:e-r,originTime:a.WN,correctedOriginTime:t.correctedOriginTime,originTimeDiff:Math.floor(a.WN-t.correctedOriginTime)}}},3738:(e,t,r)=\u003e{\"use strict\";r.d(t,{He:()=\u003ei,Kp:()=\u003es,Lc:()=\u003eu,Rz:()=\u003ed,TZ:()=\u003en,bD:()=\u003eo,d3:()=\u003ea,jx:()=\u003el,uP:()=\u003ec});const n=r(860).K7.sessionTrace,i=\"bstResource\",o=\"resource\",a=\"-start\",s=\"-end\",c=\"fn\"+a,u=\"fn\"+s,d=\"pushState\",l=1e3},3962:(e,t,r)=\u003e{\"use strict\";r.d(t,{AM:()=\u003eo,O2:()=\u003es,Qu:()=\u003ec,TZ:()=\u003ea,ih:()=\u003eu,tC:()=\u003ei});var n=r(860);const i=[\"click\",\"keydown\",\"submit\"],o=\"api\",a=n.K7.softNav,s={INITIAL_PAGE_LOAD:\"\",ROUTE_CHANGE:1,UNSPECIFIED:2},c={INTERACTION:1,AJAX:2,CUSTOM_END:3,CUSTOM_TRACER:4},u={IP:\"in progress\",FIN:\"finished\",CAN:\"cancelled\"}},7378:(e,t,r)=\u003e{\"use strict\";r.d(t,{$p:()=\u003ex,BR:()=\u003eb,Kp:()=\u003eR,L3:()=\u003ey,Lc:()=\u003ec,NC:()=\u003eo,SG:()=\u003ed,TZ:()=\u003ei,U6:()=\u003ep,UT:()=\u003em,d3:()=\u003ew,dT:()=\u003ef,e5:()=\u003eA,gx:()=\u003ev,l9:()=\u003el,oW:()=\u003eh,op:()=\u003eg,rw:()=\u003eu,tH:()=\u003eE,uP:()=\u003es,wW:()=\u003eT,xq:()=\u003ea});var n=r(384);const i=r(860).K7.spa,o=[\"click\",\"submit\",\"keypress\",\"keydown\",\"keyup\",\"change\"],a=999,s=\"fn-start\",c=\"fn-end\",u=\"cb-start\",d=\"api-ixn-\",l=\"remaining\",f=\"interaction\",h=\"spaNode\",p=\"jsonpNode\",g=\"fetch-start\",m=\"fetch-done\",v=\"fetch-body-\",b=\"jsonp-end\",y=(0,n.dV)().o.ST,w=\"-start\",R=\"-end\",x=\"-body\",T=\"cb\"+R,A=\"jsTime\",E=\"fetch\"},4234:(e,t,r)=\u003e{\"use strict\";r.d(t,{W:()=\u003eo});var n=r(7836),i=r(1687);class o{constructor(e,t){this.agentIdentifier=e,this.ee=n.ee.get(e),this.featureName=t,this.blocked=!1}deregisterDrain(){(0,i.x3)(this.agentIdentifier,this.featureName)}}},7767:(e,t,r)=\u003e{\"use strict\";r.d(t,{V:()=\u003eo});var n=r(9417),i=r(6154);const o=e=\u003ei.RI\u0026\u0026!0===(0,n.gD)(e,\"privacy.cookies_enabled\")},425:(e,t,r)=\u003e{\"use strict\";r.d(t,{j:()=\u003eP});var n=r(860),i=r(2555),o=r(3371),a=r(9908),s=r(7836),c=r(1687),u=r(5289),d=r(6154),l=r(944),f=r(3969),h=r(384),p=r(6344);const g=[\"setErrorHandler\",\"finished\",\"addToTrace\",\"addRelease\",\"addPageAction\",\"setCurrentRouteName\",\"setPageViewName\",\"setCustomAttribute\",\"interaction\",\"noticeError\",\"setUserId\",\"setApplicationVersion\",\"start\",p.G4.RECORD,p.G4.PAUSE,\"log\",\"wrapLogger\"],m=[\"setErrorHandler\",\"finished\",\"addToTrace\",\"addRelease\"];var v=r(1863),b=r(2614),y=r(993),w=r(3785),R=r(2646),x=r(3434);const T=new Map;function A(e,t,r,n){if(\"object\"!=typeof t||!t||\"string\"!=typeof r||!r||\"function\"!=typeof t[r])return(0,l.R)(29);const i=function(e){return(e||s.ee).get(\"logger\")}(e),o=(0,x.YM)(i),a=new R.y(s.P);a.level=n.level,a.customAttributes=n.customAttributes;const c=t[r]?.[x.Jt]||t[r];return T.set(c,a),o.inPlace(t,[r],\"wrap-logger-\",(()=\u003eT.get(c))),i}function E(){const e=(0,h.pV)();g.forEach((t=\u003e{e[t]=(...r)=\u003efunction(t,...r){let n=[];return Object.values(e.initializedAgents).forEach((e=\u003e{e\u0026\u0026e.api?e.exposed\u0026\u0026e.api[t]\u0026\u0026n.push(e.api[t](...r)):(0,l.R)(38,t)})),n.length\u003e1?n:n[0]}(t,...r)}))}const S={};var N=r(9417),O=r(5603),_=r(5284);const I=e=\u003e{const t=e.startsWith(\"http\");e+=\"/\",r.p=t?e:\"https://\"+e};let j=!1;function P(e,t={},g,R){let{init:x,info:T,loader_config:P,runtime:C={},exposed:k=!0}=t;C.loaderType=g;const L=(0,h.pV)();T||(x=L.init,T=L.info,P=L.loader_config),(0,N.xN)(e.agentIdentifier,x||{}),(0,O.a)(e.agentIdentifier,P||{}),T.jsAttributes??={},d.bv\u0026\u0026(T.jsAttributes.isWorker=!0),(0,i.x1)(e.agentIdentifier,T);const H=(0,N.D0)(e.agentIdentifier),D=[T.beacon,T.errorBeacon];j||(H.proxy.assets\u0026\u0026(I(H.proxy.assets),D.push(H.proxy.assets)),H.proxy.beacon\u0026\u0026D.push(H.proxy.beacon),E(),(0,h.US)(\"activatedFeatures\",_.B),e.runSoftNavOverSpa\u0026\u0026=!0===H.soft_navigations.enabled\u0026\u0026H.feature_flags.includes(\"soft_nav\")),C.denyList=[...H.ajax.deny_list||[],...H.ajax.block_internal?D:[]],C.ptid=e.agentIdentifier,(0,o.V)(e.agentIdentifier,C),e.ee=s.ee.get(e.agentIdentifier),void 0===e.api\u0026\u0026(e.api=function(e,t,h=!1){t||(0,c.Ak)(e,\"api\");const g={};var R=s.ee.get(e),x=R.get(\"tracer\");S[e]=b.g.OFF,R.on(p.G4.REPLAY_RUNNING,(t=\u003e{S[e]=t}));var T=\"api-\",E=T+\"ixn-\";function N(t,r,n,o){const a=(0,i.Vp)(e);return null===r?delete a.jsAttributes[t]:(0,i.x1)(e,{...a,jsAttributes:{...a.jsAttributes,[t]:r}}),I(T,n,!0,o||null===r?\"session\":void 0)(t,r)}function O(){}g.log=function(e,{customAttributes:t={},level:r=y.p_.INFO}={}){(0,a.p)(f.xV,[\"API/log/called\"],void 0,n.K7.metrics,R),(0,w.R)(R,e,t,r)},g.wrapLogger=(e,t,{customAttributes:r={},level:i=y.p_.INFO}={})=\u003e{(0,a.p)(f.xV,[\"API/wrapLogger/called\"],void 0,n.K7.metrics,R),A(R,e,t,{customAttributes:r,level:i})},m.forEach((e=\u003e{g[e]=I(T,e,!0,\"api\")})),g.addPageAction=I(T,\"addPageAction\",!0,n.K7.genericEvents),g.setPageViewName=function(t,r){if(\"string\"==typeof t)return\"/\"!==t.charAt(0)\u0026\u0026(t=\"/\"+t),(0,o.f)(e).customTransaction=(r||\"http://custom.transaction\")+t,I(T,\"setPageViewName\",!0)()},g.setCustomAttribute=function(e,t,r=!1){if(\"string\"==typeof e){if([\"string\",\"number\",\"boolean\"].includes(typeof t)||null===t)return N(e,t,\"setCustomAttribute\",r);(0,l.R)(40,typeof t)}else(0,l.R)(39,typeof e)},g.setUserId=function(e){if(\"string\"==typeof e||null===e)return N(\"enduser.id\",e,\"setUserId\",!0);(0,l.R)(41,typeof e)},g.setApplicationVersion=function(e){if(\"string\"==typeof e||null===e)return N(\"application.version\",e,\"setApplicationVersion\",!1);(0,l.R)(42,typeof e)},g.start=()=\u003e{try{(0,a.p)(f.xV,[\"API/start/called\"],void 0,n.K7.metrics,R),R.emit(\"manual-start-all\")}catch(e){(0,l.R)(23,e)}},g[p.G4.RECORD]=function(){(0,a.p)(f.xV,[\"API/recordReplay/called\"],void 0,n.K7.metrics,R),(0,a.p)(p.G4.RECORD,[],void 0,n.K7.sessionReplay,R)},g[p.G4.PAUSE]=function(){(0,a.p)(f.xV,[\"API/pauseReplay/called\"],void 0,n.K7.metrics,R),(0,a.p)(p.G4.PAUSE,[],void 0,n.K7.sessionReplay,R)},g.interaction=function(e){return(new O).get(\"object\"==typeof e?e:{})};const _=O.prototype={createTracer:function(e,t){var r={},i=this,o=\"function\"==typeof t;return(0,a.p)(f.xV,[\"API/createTracer/called\"],void 0,n.K7.metrics,R),h||(0,a.p)(E+\"tracer\",[(0,v.t)(),e,r],i,n.K7.spa,R),function(){if(x.emit((o?\"\":\"no-\")+\"fn-start\",[(0,v.t)(),i,o],r),o)try{return t.apply(this,arguments)}catch(e){const t=\"string\"==typeof e?new Error(e):e;throw x.emit(\"fn-err\",[arguments,this,t],r),t}finally{x.emit(\"fn-end\",[(0,v.t)()],r)}}}};function I(e,t,r,i){return function(){return(0,a.p)(f.xV,[\"API/\"+t+\"/called\"],void 0,n.K7.metrics,R),i\u0026\u0026(0,a.p)(e+t,[(0,v.t)(),...arguments],r?null:this,i,R),r?void 0:this}}function j(){r.e(478).then(r.bind(r,8778)).then((({setAPI:t})=\u003e{t(e),(0,c.Ze)(e,\"api\")})).catch((e=\u003e{(0,l.R)(27,e),R.abort()}))}return[\"actionText\",\"setName\",\"setAttribute\",\"save\",\"ignore\",\"onEnd\",\"getContext\",\"end\",\"get\"].forEach((e=\u003e{_[e]=I(E,e,void 0,h?n.K7.softNav:n.K7.spa)})),g.setCurrentRouteName=h?I(E,\"routeName\",void 0,n.K7.softNav):I(T,\"routeName\",!0,n.K7.spa),g.noticeError=function(t,r){\"string\"==typeof t\u0026\u0026(t=new Error(t)),(0,a.p)(f.xV,[\"API/noticeError/called\"],void 0,n.K7.metrics,R),(0,a.p)(\"err\",[t,(0,v.t)(),!1,r,!!S[e]],void 0,n.K7.jserrors,R)},d.RI?(0,u.GG)((()=\u003ej()),!0):j(),g}(e.agentIdentifier,R,e.runSoftNavOverSpa)),void 0===e.exposed\u0026\u0026(e.exposed=k),j=!0}},8374:(e,t,r)=\u003e{r.nc=(()=\u003e{try{return document?.currentScript?.nonce}catch(e){}return\"\"})()},860:(e,t,r)=\u003e{\"use strict\";r.d(t,{$J:()=\u003eo,K7:()=\u003en,P3:()=\u003ei});const n={ajax:\"ajax\",genericEvents:\"generic_events\",jserrors:\"jserrors\",logging:\"logging\",metrics:\"metrics\",pageAction:\"page_action\",pageViewEvent:\"page_view_event\",pageViewTiming:\"page_view_timing\",sessionReplay:\"session_replay\",sessionTrace:\"session_trace\",softNav:\"soft_navigations\",spa:\"spa\"},i={[n.pageViewEvent]:1,[n.pageViewTiming]:2,[n.metrics]:3,[n.jserrors]:4,[n.spa]:5,[n.ajax]:6,[n.sessionTrace]:7,[n.softNav]:8,[n.sessionReplay]:9,[n.logging]:10,[n.genericEvents]:11},o={[n.pageViewTiming]:\"events\",[n.ajax]:\"events\",[n.spa]:\"events\",[n.softNav]:\"events\",[n.metrics]:\"jserrors\",[n.jserrors]:\"jserrors\",[n.sessionTrace]:\"browser/blobs\",[n.sessionReplay]:\"browser/blobs\",[n.logging]:\"browser/logs\",[n.genericEvents]:\"ins\"}}},n={};function i(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.m=r,i.d=(e,t)=\u003e{for(var r in t)i.o(t,r)\u0026\u0026!i.o(e,r)\u0026\u0026Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.f={},i.e=e=\u003ePromise.all(Object.keys(i.f).reduce(((t,r)=\u003e(i.f[r](e,t),t)),[])),i.u=e=\u003e({212:\"nr-spa-compressor\",249:\"nr-spa-recorder\",478:\"nr-spa\"}[e]+\"-1.275.0.min.js\"),i.o=(e,t)=\u003eObject.prototype.hasOwnProperty.call(e,t),e={},t=\"NRBA-1.275.0.PROD:\",i.l=(r,n,o,a)=\u003e{if(e[r])e[r].push(n);else{var s,c;if(void 0!==o)for(var u=document.getElementsByTagName(\"script\"),d=0;d\u003cu.length;d++){var l=u[d];if(l.getAttribute(\"src\")==r||l.getAttribute(\"data-webpack\")==t+o){s=l;break}}if(!s){c=!0;var f={478:\"sha512-NvU3eQ7o5326npq3PdmyQFPyLLZ8dzJ2BG6+iqztQtUJe3LUirTbILWdA3lulN387X5fmO+nMjQ+LJRbkEPLVA==\",249:\"sha512-R/f355fvvfTK6aJgvL0I8Qhud5dLX6qQ7Zp5T6jXvMAyn8gP34jRy3hYQLS8EORUfSog20ecrDt9jLqfiNHbMQ==\",212:\"sha512-TFSNY6YbI0MLCIwHL77tq3s4Lpj2qr0N+8089sEUUOEdvqMeEJAchudmqpGRb5sfw6nx9uHsypk2HT16ipv7kg==\"};(s=document.createElement(\"script\")).charset=\"utf-8\",s.timeout=120,i.nc\u0026\u0026s.setAttribute(\"nonce\",i.nc),s.setAttribute(\"data-webpack\",t+o),s.src=r,0!==s.src.indexOf(window.location.origin+\"/\")\u0026\u0026(s.crossOrigin=\"anonymous\"),f[a]\u0026\u0026(s.integrity=f[a])}e[r]=[n];var h=(t,n)=\u003e{s.onerror=s.onload=null,clearTimeout(p);var i=e[r];if(delete e[r],s.parentNode\u0026\u0026s.parentNode.removeChild(s),i\u0026\u0026i.forEach((e=\u003ee(n))),t)return t(n)},p=setTimeout(h.bind(null,void 0,{type:\"timeout\",target:s}),12e4);s.onerror=h.bind(null,s.onerror),s.onload=h.bind(null,s.onload),c\u0026\u0026document.head.appendChild(s)}},i.r=e=\u003e{\"undefined\"!=typeof Symbol\u0026\u0026Symbol.toStringTag\u0026\u0026Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},i.p=\"https://js-agent.newrelic.com/\",(()=\u003e{var e={38:0,788:0};i.f.j=(t,r)=\u003e{var n=i.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise(((r,i)=\u003en=e[t]=[r,i]));r.push(n[2]=o);var a=i.p+i.u(t),s=new Error;i.l(a,(r=\u003e{if(i.o(e,t)\u0026\u0026(0!==(n=e[t])\u0026\u0026(e[t]=void 0),n)){var o=r\u0026\u0026(\"load\"===r.type?\"missing\":r.type),a=r\u0026\u0026r.target\u0026\u0026r.target.src;s.message=\"Loading chunk \"+t+\" failed.\\n(\"+o+\": \"+a+\")\",s.name=\"ChunkLoadError\",s.type=o,s.request=a,n[1](s)}}),\"chunk-\"+t,t)}};var t=(t,r)=\u003e{var n,o,[a,s,c]=r,u=0;if(a.some((t=\u003e0!==e[t]))){for(n in s)i.o(s,n)\u0026\u0026(i.m[n]=s[n]);if(c)c(i)}for(t\u0026\u0026t(r);u\u003ca.length;u++)o=a[u],i.o(e,o)\u0026\u0026e[o]\u0026\u0026e[o][0](),e[o]=0},r=self[\"webpackChunk:NRBA-1.275.0.PROD\"]=self[\"webpackChunk:NRBA-1.275.0.PROD\"]||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),(()=\u003e{\"use strict\";i(8374);var e=i(944),t=i(6344),r=i(9566);class n{agentIdentifier;constructor(e=(0,r.LA)(16)){this.agentIdentifier=e}#e(t,...r){if(\"function\"==typeof this.api?.[t])return this.api[t](...r);(0,e.R)(35,t)}addPageAction(e,t){return this.#e(\"addPageAction\",e,t)}setPageViewName(e,t){return this.#e(\"setPageViewName\",e,t)}setCustomAttribute(e,t,r){return this.#e(\"setCustomAttribute\",e,t,r)}noticeError(e,t){return this.#e(\"noticeError\",e,t)}setUserId(e){return this.#e(\"setUserId\",e)}setApplicationVersion(e){return this.#e(\"setApplicationVersion\",e)}setErrorHandler(e){return this.#e(\"setErrorHandler\",e)}addRelease(e,t){return this.#e(\"addRelease\",e,t)}log(e,t){return this.#e(\"log\",e,t)}}class o extends n{#e(t,...r){if(\"function\"==typeof this.api?.[t])return this.api[t](...r);(0,e.R)(35,t)}start(){return this.#e(\"start\")}finished(e){return this.#e(\"finished\",e)}recordReplay(){return this.#e(t.G4.RECORD)}pauseReplay(){return this.#e(t.G4.PAUSE)}addToTrace(e){return this.#e(\"addToTrace\",e)}setCurrentRouteName(e){return this.#e(\"setCurrentRouteName\",e)}interaction(){return this.#e(\"interaction\")}wrapLogger(e,t,r){return this.#e(\"wrapLogger\",e,t,r)}}var a=i(860),s=i(9417);const c=Object.values(a.K7);function u(e){const t={};return c.forEach((r=\u003e{t[r]=function(e,t){return!0===(0,s.gD)(t,\"\".concat(e,\".enabled\"))}(r,e)})),t}var d=i(425);var l=i(1687),f=i(4234),h=i(5289),p=i(6154),g=i(5270),m=i(7767),v=i(6389);class b extends f.W{constructor(e,t,r=!0){super(e.agentIdentifier,t),this.auto=r,this.abortHandler=void 0,this.featAggregate=void 0,this.onAggregateImported=void 0,!1===e.init[this.featureName].autoStart\u0026\u0026(this.auto=!1),this.auto?(0,l.Ak)(e.agentIdentifier,t):this.ee.on(\"manual-start-all\",(0,v.J)((()=\u003e{(0,l.Ak)(e.agentIdentifier,this.featureName),this.auto=!0,this.importAggregator(e)})))}importAggregator(t,r={}){if(this.featAggregate||!this.auto)return;let n;this.onAggregateImported=new Promise((e=\u003e{n=e}));const o=async()=\u003e{let o;try{if((0,m.V)(this.agentIdentifier)){const{setupAgentSession:e}=await i.e(478).then(i.bind(i,6526));o=e(t)}}catch(t){(0,e.R)(20,t),this.ee.emit(\"internal-error\",[t]),this.featureName===a.K7.sessionReplay\u0026\u0026this.abortHandler?.()}try{if(t.sharedAggregator)await t.sharedAggregator;else{t.sharedAggregator=i.e(478).then(i.bind(i,9337));const{EventAggregator:e}=await t.sharedAggregator;t.sharedAggregator=new e}if(!this.#t(this.featureName,o))return(0,l.Ze)(this.agentIdentifier,this.featureName),void n(!1);const{lazyFeatureLoader:e}=await i.e(478).then(i.bind(i,6103)),{Aggregate:a}=await e(this.featureName,\"aggregate\");this.featAggregate=new a(t,r),n(!0)}catch(t){(0,e.R)(34,t),this.abortHandler?.(),(0,l.Ze)(this.agentIdentifier,this.featureName,!0),n(!1),this.ee\u0026\u0026this.ee.abort()}};p.RI?(0,h.GG)((()=\u003eo()),!0):o()}#t(e,t){switch(e){case a.K7.sessionReplay:return(0,g.SR)(this.agentIdentifier)\u0026\u0026!!t;case a.K7.sessionTrace:return!!t;default:return!0}}}var y=i(6630);class w extends b{static featureName=y.T;constructor(e,t=!0){super(e,y.T,t),this.importAggregator(e)}}var R=i(384);var x=i(9908),T=i(2843),A=i(3878),E=i(782),S=i(1863);class N extends b{static featureName=E.T;constructor(e,t=!0){super(e,E.T,t),p.RI\u0026\u0026((0,T.u)((()=\u003e(0,x.p)(\"docHidden\",[(0,S.t)()],void 0,E.T,this.ee)),!0),(0,A.sp)(\"pagehide\",(()=\u003e(0,x.p)(\"winPagehide\",[(0,S.t)()],void 0,E.T,this.ee))),this.importAggregator(e))}}var O=i(3969);class _ extends b{static featureName=O.TZ;constructor(e,t=!0){super(e,O.TZ,t),this.importAggregator(e)}}var I=i(6774),j=i(3304);class P{constructor(e,t,r,n,i){this.name=\"UncaughtError\",this.message=\"string\"==typeof e?e:(0,j.A)(e),this.sourceURL=t,this.line=r,this.column=n,this.__newrelic=i}}function C(e){return H(e)?e:new P(void 0!==e?.message?e.message:e,e?.filename||e?.sourceURL,e?.lineno||e?.line,e?.colno||e?.col,e?.__newrelic)}function k(e){const t=\"Unhandled Promise Rejection\";if(!e?.reason)return;if(H(e.reason))try{return e.reason.message=t+\": \"+e.reason.message,C(e.reason)}catch(t){return C(e.reason)}const r=C(e.reason);return r.message=t+\": \"+r?.message,r}function L(e){if(e.error instanceof SyntaxError\u0026\u0026!/:\\d+$/.test(e.error.stack?.trim())){const t=new P(e.message,e.filename,e.lineno,e.colno,e.error.__newrelic);return t.name=SyntaxError.name,t}return H(e.error)?e.error:C(e)}function H(e){return e instanceof Error\u0026\u0026!!e.stack}class D extends b{static featureName=I.T;#r=!1;constructor(e,r=!0){super(e,I.T,r);try{this.removeOnAbort=new AbortController}catch(e){}this.ee.on(\"internal-error\",(e=\u003e{this.abortHandler\u0026\u0026(0,x.p)(\"ierr\",[C(e),(0,S.t)(),!0,{},this.#r],void 0,this.featureName,this.ee)})),this.ee.on(t.G4.REPLAY_RUNNING,(e=\u003e{this.#r=e})),p.gm.addEventListener(\"unhandledrejection\",(e=\u003e{this.abortHandler\u0026\u0026(0,x.p)(\"err\",[k(e),(0,S.t)(),!1,{unhandledPromiseRejection:1},this.#r],void 0,this.featureName,this.ee)}),(0,A.jT)(!1,this.removeOnAbort?.signal)),p.gm.addEventListener(\"error\",(e=\u003e{this.abortHandler\u0026\u0026(0,x.p)(\"err\",[L(e),(0,S.t)(),!1,{},this.#r],void 0,this.featureName,this.ee)}),(0,A.jT)(!1,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e)}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var M=i(8990);let K=1;const U=\"nr@id\";function V(e){const t=typeof e;return!e||\"object\"!==t\u0026\u0026\"function\"!==t?-1:e===p.gm?0:(0,M.I)(e,U,(function(){return K++}))}function G(e){if(\"string\"==typeof e\u0026\u0026e.length)return e.length;if(\"object\"==typeof e){if(\"undefined\"!=typeof ArrayBuffer\u0026\u0026e instanceof ArrayBuffer\u0026\u0026e.byteLength)return e.byteLength;if(\"undefined\"!=typeof Blob\u0026\u0026e instanceof Blob\u0026\u0026e.size)return e.size;if(!(\"undefined\"!=typeof FormData\u0026\u0026e instanceof FormData))try{return(0,j.A)(e).length}catch(e){return}}}var F=i(8139),B=i(7836),W=i(3434);const z={},q=[\"open\",\"send\"];function Z(t){var r=t||B.ee;const n=function(e){return(e||B.ee).get(\"xhr\")}(r);if(void 0===p.gm.XMLHttpRequest)return n;if(z[n.debugId]++)return n;z[n.debugId]=1,(0,F.u)(r);var i=(0,W.YM)(n),o=p.gm.XMLHttpRequest,a=p.gm.MutationObserver,s=p.gm.Promise,c=p.gm.setInterval,u=\"readystatechange\",d=[\"onload\",\"onerror\",\"onabort\",\"onloadstart\",\"onloadend\",\"onprogress\",\"ontimeout\"],l=[],f=p.gm.XMLHttpRequest=function(t){const r=new o(t),a=n.context(r);try{n.emit(\"new-xhr\",[r],a),r.addEventListener(u,(s=a,function(){var e=this;e.readyState\u003e3\u0026\u0026!s.resolved\u0026\u0026(s.resolved=!0,n.emit(\"xhr-resolved\",[],e)),i.inPlace(e,d,\"fn-\",y)}),(0,A.jT)(!1))}catch(t){(0,e.R)(15,t);try{n.emit(\"internal-error\",[t])}catch(e){}}var s;return r};function h(e,t){i.inPlace(t,[\"onreadystatechange\"],\"fn-\",y)}if(function(e,t){for(var r in e)t[r]=e[r]}(o,f),f.prototype=o.prototype,i.inPlace(f.prototype,q,\"-xhr-\",y),n.on(\"send-xhr-start\",(function(e,t){h(e,t),function(e){l.push(e),a\u0026\u0026(g?g.then(b):c?c(b):(m=-m,v.data=m))}(t)})),n.on(\"open-xhr-start\",h),a){var g=s\u0026\u0026s.resolve();if(!c\u0026\u0026!s){var m=1,v=document.createTextNode(m);new a(b).observe(v,{characterData:!0})}}else r.on(\"fn-end\",(function(e){e[0]\u0026\u0026e[0].type===u||b()}));function b(){for(var e=0;e\u003cl.length;e++)h(0,l[e]);l.length\u0026\u0026(l=[])}function y(e,t){return t}return n}var Y=\"fetch-\",X=Y+\"body-\",J=[\"arrayBuffer\",\"blob\",\"json\",\"text\",\"formData\"],Q=p.gm.Request,ee=p.gm.Response,te=\"prototype\";const re={};function ne(e){const t=function(e){return(e||B.ee).get(\"fetch\")}(e);if(!(Q\u0026\u0026ee\u0026\u0026p.gm.fetch))return t;if(re[t.debugId]++)return t;function r(e,r,n){var i=e[r];\"function\"==typeof i\u0026\u0026(e[r]=function(){var e,r=[...arguments],o={};t.emit(n+\"before-start\",[r],o),o[B.P]\u0026\u0026o[B.P].dt\u0026\u0026(e=o[B.P].dt);var a=i.apply(this,r);return t.emit(n+\"start\",[r,e],a),a.then((function(e){return t.emit(n+\"end\",[null,e],a),e}),(function(e){throw t.emit(n+\"end\",[e],a),e}))})}return re[t.debugId]=1,J.forEach((e=\u003e{r(Q[te],e,X),r(ee[te],e,X)})),r(p.gm,\"fetch\",Y),t.on(Y+\"end\",(function(e,r){var n=this;if(r){var i=r.headers.get(\"content-length\");null!==i\u0026\u0026(n.rxSize=i),t.emit(Y+\"done\",[null,r],n)}else t.emit(Y+\"done\",[e],n)})),t}var ie=i(7485),oe=i(5603);class ae{constructor(e){this.agentIdentifier=e}generateTracePayload(e){if(!this.shouldGenerateTrace(e))return null;var t=(0,oe.o)(this.agentIdentifier);if(!t)return null;var n=(t.accountID||\"\").toString()||null,i=(t.agentID||\"\").toString()||null,o=(t.trustKey||\"\").toString()||null;if(!n||!i)return null;var a=(0,r.ZF)(),s=(0,r.el)(),c=Date.now(),u={spanId:a,traceId:s,timestamp:c};return(e.sameOrigin||this.isAllowedOrigin(e)\u0026\u0026this.useTraceContextHeadersForCors())\u0026\u0026(u.traceContextParentHeader=this.generateTraceContextParentHeader(a,s),u.traceContextStateHeader=this.generateTraceContextStateHeader(a,c,n,i,o)),(e.sameOrigin\u0026\u0026!this.excludeNewrelicHeader()||!e.sameOrigin\u0026\u0026this.isAllowedOrigin(e)\u0026\u0026this.useNewrelicHeaderForCors())\u0026\u0026(u.newrelicHeader=this.generateTraceHeader(a,s,c,n,i,o)),u}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,o){if(!(\"function\"==typeof p.gm?.btoa))return null;var a={v:[0,1],d:{ty:\"Browser\",ac:n,ap:i,id:e,tr:t,ti:r}};return o\u0026\u0026n!==o\u0026\u0026(a.d.tk=o),btoa((0,j.A)(a))}shouldGenerateTrace(e){return this.isDtEnabled()\u0026\u0026this.isAllowedOrigin(e)}isAllowedOrigin(e){var t=!1,r={};if((0,s.gD)(this.agentIdentifier,\"distributed_tracing\")\u0026\u0026(r=(0,s.D0)(this.agentIdentifier).distributed_tracing),e.sameOrigin)t=!0;else if(r.allowed_origins instanceof Array)for(var n=0;n\u003cr.allowed_origins.length;n++){var i=(0,ie.D)(r.allowed_origins[n]);if(e.hostname===i.hostname\u0026\u0026e.protocol===i.protocol\u0026\u0026e.port===i.port){t=!0;break}}return t}isDtEnabled(){var e=(0,s.gD)(this.agentIdentifier,\"distributed_tracing\");return!!e\u0026\u0026!!e.enabled}excludeNewrelicHeader(){var e=(0,s.gD)(this.agentIdentifier,\"distributed_tracing\");return!!e\u0026\u0026!!e.exclude_newrelic_header}useNewrelicHeaderForCors(){var e=(0,s.gD)(this.agentIdentifier,\"distributed_tracing\");return!!e\u0026\u0026!1!==e.cors_use_newrelic_header}useTraceContextHeadersForCors(){var e=(0,s.gD)(this.agentIdentifier,\"distributed_tracing\");return!!e\u0026\u0026!!e.cors_use_tracecontext_headers}}var se=i(9300),ce=i(7295),ue=[\"load\",\"error\",\"abort\",\"timeout\"],de=ue.length,le=(0,R.dV)().o.REQ,fe=(0,R.dV)().o.XHR;class he extends b{static featureName=se.T;constructor(e,t=!0){super(e,se.T,t),this.dt=new ae(e.agentIdentifier),this.handler=(e,t,r,n)=\u003e(0,x.p)(e,t,r,n,this.ee);try{const e={xmlhttprequest:\"xhr\",fetch:\"fetch\",beacon:\"beacon\"};p.gm?.performance?.getEntriesByType(\"resource\").forEach((t=\u003e{if(t.initiatorType in e\u0026\u00260!==t.responseStatus){const r={status:t.responseStatus},n={rxSize:t.transferSize,duration:Math.floor(t.duration),cbTime:0};pe(r,t.name),this.handler(\"xhr\",[r,n,t.startTime,t.responseEnd,e[t.initiatorType]],void 0,a.K7.ajax)}}))}catch(e){}ne(this.ee),Z(this.ee),function(e,t,r,n){function i(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=R,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,t.params=this.params||{},t.metrics=this.metrics||{},e.addEventListener(\"load\",(function(r){T(t,e)}),(0,A.jT)(!1)),p.lR||e.addEventListener(\"progress\",(function(e){t.lastSize=e.loaded}),(0,A.jT)(!1))}function o(e){this.params={method:e[0]},pe(this,e[1]),this.metrics={}}function s(t,r){e.loader_config.xpid\u0026\u0026this.sameOrigin\u0026\u0026r.setRequestHeader(\"X-NewRelic-ID\",e.loader_config.xpid);var i=n.generateTracePayload(this.parsedOrigin);if(i){var o=!1;i.newrelicHeader\u0026\u0026(r.setRequestHeader(\"newrelic\",i.newrelicHeader),o=!0),i.traceContextParentHeader\u0026\u0026(r.setRequestHeader(\"traceparent\",i.traceContextParentHeader),i.traceContextStateHeader\u0026\u0026r.setRequestHeader(\"tracestate\",i.traceContextStateHeader),o=!0),o\u0026\u0026(this.dt=i)}}function c(e,r){var n=this.metrics,i=e[0],o=this;if(n\u0026\u0026i){var a=G(i);a\u0026\u0026(n.txSize=a)}this.startTime=(0,S.t)(),this.body=i,this.listener=function(e){try{\"abort\"!==e.type||o.loadCaptureCalled||(o.params.aborted=!0),(\"load\"!==e.type||o.called===o.totalCbs\u0026\u0026(o.onloadCalled||\"function\"!=typeof r.onload)\u0026\u0026\"function\"==typeof o.end)\u0026\u0026o.end(r)}catch(e){try{t.emit(\"internal-error\",[e])}catch(e){}}};for(var s=0;s\u003cde;s++)r.addEventListener(ue[s],this.listener,(0,A.jT)(!1))}function u(e,t,r){this.cbTime+=e,t?this.onloadCalled=!0:this.called+=1,this.called!==this.totalCbs||!this.onloadCalled\u0026\u0026\"function\"==typeof r.onload||\"function\"!=typeof this.end||this.end(r)}function d(e,t){var r=\"\"+V(e)+!!t;this.xhrGuids\u0026\u0026!this.xhrGuids[r]\u0026\u0026(this.xhrGuids[r]=!0,this.totalCbs+=1)}function l(e,t){var r=\"\"+V(e)+!!t;this.xhrGuids\u0026\u0026this.xhrGuids[r]\u0026\u0026(delete this.xhrGuids[r],this.totalCbs-=1)}function f(){this.endTime=(0,S.t)()}function h(e,r){r instanceof fe\u0026\u0026\"load\"===e[0]\u0026\u0026t.emit(\"xhr-load-added\",[e[1],e[2]],r)}function g(e,r){r instanceof fe\u0026\u0026\"load\"===e[0]\u0026\u0026t.emit(\"xhr-load-removed\",[e[1],e[2]],r)}function m(e,t,r){t instanceof fe\u0026\u0026(\"onload\"===r\u0026\u0026(this.onload=!0),(\"load\"===(e[0]\u0026\u0026e[0].type)||this.onload)\u0026\u0026(this.xhrCbStart=(0,S.t)()))}function v(e,r){this.xhrCbStart\u0026\u0026t.emit(\"xhr-cb-time\",[(0,S.t)()-this.xhrCbStart,this.onload,r],r)}function b(e){var t,r=e[1]||{};if(\"string\"==typeof e[0]?0===(t=e[0]).length\u0026\u0026p.RI\u0026\u0026(t=\"\"+p.gm.location.href):e[0]\u0026\u0026e[0].url?t=e[0].url:p.gm?.URL\u0026\u0026e[0]\u0026\u0026e[0]instanceof URL?t=e[0].href:\"function\"==typeof e[0].toString\u0026\u0026(t=e[0].toString()),\"string\"==typeof t\u0026\u00260!==t.length){t\u0026\u0026(this.parsedOrigin=(0,ie.D)(t),this.sameOrigin=this.parsedOrigin.sameOrigin);var i=n.generateTracePayload(this.parsedOrigin);if(i\u0026\u0026(i.newrelicHeader||i.traceContextParentHeader))if(e[0]\u0026\u0026e[0].headers)s(e[0].headers,i)\u0026\u0026(this.dt=i);else{var o={};for(var a in r)o[a]=r[a];o.headers=new Headers(r.headers||{}),s(o.headers,i)\u0026\u0026(this.dt=i),e.length\u003e1?e[1]=o:e.push(o)}}function s(e,t){var r=!1;return t.newrelicHeader\u0026\u0026(e.set(\"newrelic\",t.newrelicHeader),r=!0),t.traceContextParentHeader\u0026\u0026(e.set(\"traceparent\",t.traceContextParentHeader),t.traceContextStateHeader\u0026\u0026e.set(\"tracestate\",t.traceContextStateHeader),r=!0),r}}function y(e,t){this.params={},this.metrics={},this.startTime=(0,S.t)(),this.dt=t,e.length\u003e=1\u0026\u0026(this.target=e[0]),e.length\u003e=2\u0026\u0026(this.opts=e[1]);var r,n=this.opts||{},i=this.target;\"string\"==typeof i?r=i:\"object\"==typeof i\u0026\u0026i instanceof le?r=i.url:p.gm?.URL\u0026\u0026\"object\"==typeof i\u0026\u0026i instanceof URL\u0026\u0026(r=i.href),pe(this,r);var o=(\"\"+(i\u0026\u0026i instanceof le\u0026\u0026i.method||n.method||\"GET\")).toUpperCase();this.params.method=o,this.body=n.body,this.txSize=G(n.body)||0}function w(e,t){if(this.endTime=(0,S.t)(),this.params||(this.params={}),(0,ce.iW)(this.params))return;let n;this.params.status=t?t.status:0,\"string\"==typeof this.rxSize\u0026\u0026this.rxSize.length\u003e0\u0026\u0026(n=+this.rxSize);const i={txSize:this.txSize,rxSize:n,duration:(0,S.t)()-this.startTime};r(\"xhr\",[this.params,i,this.startTime,this.endTime,\"fetch\"],this,a.K7.ajax)}function R(e){const t=this.params,n=this.metrics;if(!this.ended){this.ended=!0;for(let t=0;t\u003cde;t++)e.removeEventListener(ue[t],this.listener,!1);t.aborted||(0,ce.iW)(t)||(n.duration=(0,S.t)()-this.startTime,this.loadCazptureCalled||4!==e.readyState?null==t.status\u0026\u0026(t.status=0):T(this,e),n.cbTime=this.cbTime,r(\"xhr\",[t,n,this.startTime,this.endTime,\"xhr\"],this,a.K7.ajax))}}function T(e,r){e.params.status=r.status;var n=function(e,t){var r=e.responseType;return\"json\"===r\u0026\u0026null!==t?t:\"arraybuffer\"===r||\"blob\"===r||\"json\"===r?G(e.response):\"text\"===r||\"\"===r||void 0===r?G(e.responseText):void 0}(r,e.lastSize);if(n\u0026\u0026(e.metrics.rxSize=n),e.sameOrigin){var i=r.getResponseHeader(\"X-NewRelic-App-Data\");i\u0026\u0026((0,x.p)(O.rs,[\"Ajax/CrossApplicationTracing/Header/Seen\"],void 0,a.K7.metrics,t),e.params.cat=i.split(\", \").pop())}e.loadCaptureCalled=!0}t.on(\"new-xhr\",i),t.on(\"open-xhr-start\",o),t.on(\"open-xhr-end\",s),t.on(\"send-xhr-start\",c),t.on(\"xhr-cb-time\",u),t.on(\"xhr-load-added\",d),t.on(\"xhr-load-removed\",l),t.on(\"xhr-resolved\",f),t.on(\"addEventListener-end\",h),t.on(\"removeEventListener-end\",g),t.on(\"fn-end\",v),t.on(\"fetch-before-start\",b),t.on(\"fetch-start\",y),t.on(\"fn-start\",m),t.on(\"fetch-done\",w)}(e,this.ee,this.handler,this.dt),this.importAggregator(e)}}function pe(e,t){var r=(0,ie.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}const ge={},me=[\"pushState\",\"replaceState\"];function ve(e){const t=function(e){return(e||B.ee).get(\"history\")}(e);return!p.RI||ge[t.debugId]++||(ge[t.debugId]=1,(0,W.YM)(t).inPlace(window.history,me,\"-\")),t}var be=i(3738);const{He:ye,bD:we,d3:Re,Kp:xe,TZ:Te,Lc:Ae,uP:Ee,Rz:Se}=be;class Ne extends b{static featureName=Te;constructor(e,t=!0){super(e,Te,t);if(!(0,m.V)(this.agentIdentifier))return void this.deregisterDrain();const r=this.ee;let n;ve(r),this.eventsEE=(0,F.u)(r),this.eventsEE.on(Ee,(function(e,t){this.bstStart=(0,S.t)()})),this.eventsEE.on(Ae,(function(e,t){(0,x.p)(\"bst\",[e[0],t,this.bstStart,(0,S.t)()],void 0,a.K7.sessionTrace,r)})),r.on(Se+Re,(function(e){this.time=(0,S.t)(),this.startPath=location.pathname+location.hash})),r.on(Se+xe,(function(e){(0,x.p)(\"bstHist\",[location.pathname+location.hash,this.startPath,this.time],void 0,a.K7.sessionTrace,r)}));try{n=new PerformanceObserver((e=\u003e{const t=e.getEntries();(0,x.p)(ye,[t],void 0,a.K7.sessionTrace,r)})),n.observe({type:we,buffered:!0})}catch(e){}this.importAggregator(e,{resourceObserver:n})}}var Oe=i(2614);class _e extends b{static featureName=t.TZ;#i;#o;constructor(e,r=!0){let n;super(e,t.TZ,r),this.replayRunning=!1,this.#o=e;try{n=JSON.parse(localStorage.getItem(\"\".concat(Oe.H3,\"_\").concat(Oe.uh)))}catch(e){}(0,g.SR)(e.agentIdentifier)\u0026\u0026this.ee.on(t.G4.RECORD,(()=\u003ethis.#a())),this.#s(n)?(this.#i=n?.sessionReplayMode,this.#c()):this.importAggregator(e),this.ee.on(\"err\",(e=\u003e{this.replayRunning\u0026\u0026(this.errorNoticed=!0,(0,x.p)(t.G4.ERROR_DURING_REPLAY,[e],void 0,this.featureName,this.ee))})),this.ee.on(t.G4.REPLAY_RUNNING,(e=\u003e{this.replayRunning=e}))}#s(e){return e\u0026\u0026(e.sessionReplayMode===Oe.g.FULL||e.sessionReplayMode===Oe.g.ERROR)||(0,g.Aw)(this.agentIdentifier)}#u=!1;async#c(e){if(!this.#u){this.#u=!0;try{const{Recorder:t}=await Promise.all([i.e(478),i.e(249)]).then(i.bind(i,8589));this.recorder??=new t({mode:this.#i,agentIdentifier:this.agentIdentifier,trigger:e,ee:this.ee}),this.recorder.startRecording(),this.abortHandler=this.recorder.stopRecording}catch(e){}this.importAggregator(this.#o,{recorder:this.recorder,errorNoticed:this.errorNoticed})}}#a(){this.featAggregate?this.featAggregate.mode!==Oe.g.FULL\u0026\u0026this.featAggregate.initializeRecording(Oe.g.FULL,!0):(this.#i=Oe.g.FULL,this.#c(t.Qb.API),this.recorder\u0026\u0026this.recorder.parent.mode!==Oe.g.FULL\u0026\u0026(this.recorder.parent.mode=Oe.g.FULL,this.recorder.stopRecording(),this.recorder.startRecording(),this.abortHandler=this.recorder.stopRecording))}}var Ie=i(3962);class je extends b{static featureName=Ie.TZ;constructor(e,t=!0){if(super(e,Ie.TZ,t),!p.RI||!(0,R.dV)().o.MO)return;const r=ve(this.ee);Ie.tC.forEach((e=\u003e{(0,A.sp)(e,(e=\u003e{a(e)}),!0)}));const n=()=\u003e(0,x.p)(\"newURL\",[(0,S.t)(),\"\"+window.location],void 0,this.featureName,this.ee);r.on(\"pushState-end\",n),r.on(\"replaceState-end\",n);try{this.removeOnAbort=new AbortController}catch(e){}(0,A.sp)(\"popstate\",(e=\u003e(0,x.p)(\"newURL\",[e.timeStamp,\"\"+window.location],void 0,this.featureName,this.ee)),!0,this.removeOnAbort?.signal);let i=!1;const o=new((0,R.dV)().o.MO)(((e,t)=\u003e{i||(i=!0,requestAnimationFrame((()=\u003e{(0,x.p)(\"newDom\",[(0,S.t)()],void 0,this.featureName,this.ee),i=!1})))})),a=(0,v.s)((e=\u003e{(0,x.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,{domObserver:o})}}var Pe=i(7378);const Ce={},ke=[\"appendChild\",\"insertBefore\",\"replaceChild\"];function Le(e){const t=function(e){return(e||B.ee).get(\"jsonp\")}(e);if(!p.RI||Ce[t.debugId])return t;Ce[t.debugId]=!0;var r=(0,W.YM)(t),n=/[?\u0026](?:callback|cb)=([^\u0026#]+)/,i=/(.*)\\.([^.]+)/,o=/^(\\w+)(\\.|$)(.*)$/;function a(e,t){if(!e)return t;const r=e.match(o),n=r[1];return a(r[3],t[n])}return r.inPlace(Node.prototype,ke,\"dom-\"),t.on(\"dom-start\",(function(e){!function(e){if(!e||\"string\"!=typeof e.nodeName||\"script\"!==e.nodeName.toLowerCase())return;if(\"function\"!=typeof e.addEventListener)return;var o=(s=e.src,c=s.match(n),c?c[1]:null);var s,c;if(!o)return;var u=function(e){var t=e.match(i);if(t\u0026\u0026t.length\u003e=3)return{key:t[2],parent:a(t[1],window)};return{key:e,parent:window}}(o);if(\"function\"!=typeof u.parent[u.key])return;var d={};function l(){t.emit(\"jsonp-end\",[],d),e.removeEventListener(\"load\",l,(0,A.jT)(!1)),e.removeEventListener(\"error\",f,(0,A.jT)(!1))}function f(){t.emit(\"jsonp-error\",[],d),t.emit(\"jsonp-end\",[],d),e.removeEventListener(\"load\",l,(0,A.jT)(!1)),e.removeEventListener(\"error\",f,(0,A.jT)(!1))}r.inPlace(u.parent,[u.key],\"cb-\",d),e.addEventListener(\"load\",l,(0,A.jT)(!1)),e.addEventListener(\"error\",f,(0,A.jT)(!1)),t.emit(\"new-jsonp\",[e.src],d)}(e[0])})),t}const He={};function De(e){const t=function(e){return(e||B.ee).get(\"promise\")}(e);if(He[t.debugId])return t;He[t.debugId]=!0;var r=t.context,n=(0,W.YM)(t),i=p.gm.Promise;return i\u0026\u0026function(){function e(r){var o=t.context(),a=n(r,\"executor-\",o,null,!1);const s=Reflect.construct(i,[a],e);return t.context(s).getCtx=function(){return o},s}p.gm.Promise=e,Object.defineProperty(e,\"name\",{value:\"Promise\"}),e.toString=function(){return i.toString()},Object.setPrototypeOf(e,i),[\"all\",\"race\"].forEach((function(r){const n=i[r];e[r]=function(e){let i=!1;[...e||[]].forEach((e=\u003e{this.resolve(e).then(a(\"all\"===r),a(!1))}));const o=n.apply(this,arguments);return o;function a(e){return function(){t.emit(\"propagate\",[null,!i],o,!1,!1),i=i||!e}}}})),[\"resolve\",\"reject\"].forEach((function(r){const n=i[r];e[r]=function(e){const r=n.apply(this,arguments);return e!==r\u0026\u0026t.emit(\"propagate\",[e,!0],r,!1,!1),r}})),e.prototype=i.prototype;const o=i.prototype.then;i.prototype.then=function(...e){var i=this,a=r(i);a.promise=i,e[0]=n(e[0],\"cb-\",a,null,!1),e[1]=n(e[1],\"cb-\",a,null,!1);const s=o.apply(this,e);return a.nextPromise=s,t.emit(\"propagate\",[i,!0],s,!1,!1),s},i.prototype.then[W.Jt]=o,t.on(\"executor-start\",(function(e){e[0]=n(e[0],\"resolve-\",this,null,!1),e[1]=n(e[1],\"resolve-\",this,null,!1)})),t.on(\"executor-err\",(function(e,t,r){e[1](r)})),t.on(\"cb-end\",(function(e,r,n){t.emit(\"propagate\",[n,!0],this.nextPromise,!1,!1)})),t.on(\"propagate\",(function(e,r,n){this.getCtx\u0026\u0026!r||(this.getCtx=function(){if(e instanceof Promise)var r=t.context(e);return r\u0026\u0026r.getCtx?r.getCtx():this})}))}(),t}const Me={},Ke=\"setTimeout\",Ue=\"setInterval\",Ve=\"clearTimeout\",Ge=\"-start\",Fe=[Ke,\"setImmediate\",Ue,Ve,\"clearImmediate\"];function Be(e){const t=function(e){return(e||B.ee).get(\"timer\")}(e);if(Me[t.debugId]++)return t;Me[t.debugId]=1;var r=(0,W.YM)(t);return r.inPlace(p.gm,Fe.slice(0,2),Ke+\"-\"),r.inPlace(p.gm,Fe.slice(2,3),Ue+\"-\"),r.inPlace(p.gm,Fe.slice(3),Ve+\"-\"),t.on(Ue+Ge,(function(e,t,n){e[0]=r(e[0],\"fn-\",null,n)})),t.on(Ke+Ge,(function(e,t,n){this.method=n,this.timerDuration=isNaN(e[1])?0:+e[1],e[0]=r(e[0],\"fn-\",this,n)})),t}const We={};function ze(e){const t=function(e){return(e||B.ee).get(\"mutation\")}(e);if(!p.RI||We[t.debugId])return t;We[t.debugId]=!0;var r=(0,W.YM)(t),n=p.gm.MutationObserver;return n\u0026\u0026(window.MutationObserver=function(e){return this instanceof n?new n(r(e,\"fn-\")):n.apply(this,arguments)},MutationObserver.prototype=n.prototype),t}const{TZ:qe,d3:Ze,Kp:Ye,$p:Xe,wW:Je,e5:Qe,tH:$e,uP:et,rw:tt,Lc:rt}=Pe;class nt extends b{static featureName=qe;constructor(e,t=!0){if(super(e,qe,t),!p.RI)return;try{this.removeOnAbort=new AbortController}catch(e){}let r,n=0;const i=this.ee.get(\"tracer\"),o=Le(this.ee),a=De(this.ee),s=Be(this.ee),c=Z(this.ee),u=this.ee.get(\"events\"),d=ne(this.ee),l=ve(this.ee),f=ze(this.ee);function h(e,t){l.emit(\"newURL\",[\"\"+window.location,t])}function g(){n++,r=window.location.hash,this[et]=(0,S.t)()}function m(){n--,window.location.hash!==r\u0026\u0026h(0,!0);var e=(0,S.t)();this[Qe]=~~this[Qe]+e-this[et],this[rt]=e}function v(e,t){e.on(t,(function(){this[t]=(0,S.t)()}))}this.ee.on(et,g),a.on(tt,g),o.on(tt,g),this.ee.on(rt,m),a.on(Je,m),o.on(Je,m),this.ee.on(\"fn-err\",((...t)=\u003e{t[2]?.__newrelic?.[e.agentIdentifier]||(0,x.p)(\"function-err\",[...t],void 0,this.featureName,this.ee)})),this.ee.buffer([et,rt,\"xhr-resolved\"],this.featureName),u.buffer([et],this.featureName),s.buffer([\"setTimeout\"+Ye,\"clearTimeout\"+Ze,et],this.featureName),c.buffer([et,\"new-xhr\",\"send-xhr\"+Ze],this.featureName),d.buffer([$e+Ze,$e+\"-done\",$e+Xe+Ze,$e+Xe+Ye],this.featureName),l.buffer([\"newURL\"],this.featureName),f.buffer([et],this.featureName),a.buffer([\"propagate\",tt,Je,\"executor-err\",\"resolve\"+Ze],this.featureName),i.buffer([et,\"no-\"+et],this.featureName),o.buffer([\"new-jsonp\",\"cb-start\",\"jsonp-error\",\"jsonp-end\"],this.featureName),v(d,$e+Ze),v(d,$e+\"-done\"),v(o,\"new-jsonp\"),v(o,\"jsonp-end\"),v(o,\"cb-start\"),l.on(\"pushState-end\",h),l.on(\"replaceState-end\",h),window.addEventListener(\"hashchange\",h,(0,A.jT)(!0,this.removeOnAbort?.signal)),window.addEventListener(\"load\",h,(0,A.jT)(!0,this.removeOnAbort?.signal)),window.addEventListener(\"popstate\",(function(){h(0,n\u003e1)}),(0,A.jT)(!0,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e)}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var it=i(3333);class ot extends b{static featureName=it.TZ;constructor(e,t=!0){super(e,it.TZ,t);const r=[e.init.page_action.enabled,e.init.performance.capture_marks,e.init.performance.capture_measures,e.init.user_actions.enabled];p.RI\u0026\u0026e.init.user_actions.enabled\u0026\u0026(it.Zp.forEach((e=\u003e(0,A.sp)(e,(e=\u003e(0,x.p)(\"ua\",[e],void 0,this.featureName,this.ee)),!0))),it.qN.forEach((e=\u003e(0,A.sp)(e,(e=\u003e(0,x.p)(\"ua\",[e],void 0,this.featureName,this.ee)))))),r.some((e=\u003ee))?this.importAggregator(e):this.deregisterDrain()}}var at=i(993),st=i(3785);class ct extends b{static featureName=at.TZ;constructor(e,t=!0){super(e,at.TZ,t);const r=this.ee;this.ee.on(\"wrap-logger-end\",(function([e]){const{level:t,customAttributes:n}=this;(0,st.R)(r,e,n,t)})),this.importAggregator(e)}}new class extends o{constructor(t,r){super(r),p.gm?(this.features={},(0,R.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(t.features||[]),this.desiredFeatures.add(w),this.runSoftNavOverSpa=[...this.desiredFeatures].some((e=\u003ee.featureName===a.K7.softNav)),(0,d.j)(this,t,t.loaderType||\"agent\"),this.run()):(0,e.R)(21)}get config(){return{info:this.info,init:this.init,loader_config:this.loader_config,runtime:this.runtime}}run(){try{const t=u(this.agentIdentifier),r=[...this.desiredFeatures];r.sort(((e,t)=\u003ea.P3[e.featureName]-a.P3[t.featureName])),r.forEach((r=\u003e{if(!t[r.featureName]\u0026\u0026r.featureName!==a.K7.pageViewEvent)return;if(this.runSoftNavOverSpa\u0026\u0026r.featureName===a.K7.spa)return;if(!this.runSoftNavOverSpa\u0026\u0026r.featureName===a.K7.softNav)return;const n=function(e){switch(e){case a.K7.ajax:return[a.K7.jserrors];case a.K7.sessionTrace:return[a.K7.ajax,a.K7.pageViewEvent];case a.K7.sessionReplay:return[a.K7.sessionTrace];case a.K7.pageViewTiming:return[a.K7.pageViewEvent];default:return[]}}(r.featureName).filter((e=\u003e!(e in this.features)));n.length\u003e0\u0026\u0026(0,e.R)(36,{targetFeature:r.featureName,missingDependencies:n}),this.features[r.featureName]=new r(this)}))}catch(t){(0,e.R)(22,t);for(const e in this.features)this.features[e].abortHandler?.();const r=(0,R.Zm)();delete r.initializedAgents[this.agentIdentifier]?.api,delete r.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return r.ee.get(this.agentIdentifier).abort(),!1}}}({features:[he,w,N,Ne,_e,_,D,ot,ct,je,nt],loaderType:\"spa\"})})()})();\n","testAutomationFlags":{"disableAds":false,"disableIirisAuth":false,"disableWelcomeAd":false,"disableBigskyAd":false,"disableIirisRecommend":false,"disableDcts":false,"disableWeatherWidget":false,"disableCashGrainWidget":false,"disableCommoditiesWidget":false,"disableCaptcha":false,"disableCookieBanner":false,"overrideBrandStyling":"","overrideThemeStyling":""},"configState":{"font":{"primary":{"name":"Inter","url":"https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900\u0026display=swap"},"secondary":{"name":"Inter","url":"https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900\u0026display=swap"}},"theme":"theme1","uiBrand":"darkreading","isMarketsDivision":false,"image":{"brand":"https://eu-images.contentstack.com/v3/assets/blt6d90778a997de1cd/bltc94608acf452fd67/655cf371ab171e040a838b2a/329050_DR23_Graphics_Website_V5_Default_Image_v1.png","contributor":"https://eu-images.contentstack.com/v3/assets/blt6d90778a997de1cd/blt171e20ac163e523a/65004ec08c754b16dd16303c/Contributor_Avatar.png"},"media":{"brightcoveAccountId":"1568176135"},"newsletterSignupPromo":{"unbounceURL":"https://dr-resources.darkreading.com/free/w_defa3135/prgm.cgi"},"proxyConfigs":{"proxyEnabled":false,"proxyRootPath":""}}},"routes/$topic.$slug._index":{"isRequestedByGoogleBot":false,"iirisRecommendationConfig":{"id":"widget-1700562861264","division":"it","brandFamily":"cybersecurity","entityTagBackground":"#333333BF","dateFormat":"Month DD, YYYY","showBy":"","showTime":"","borderRadius":"5","imageWidth":"324","imageHeight":"182","dateTimeBgcolor":"#ffffff","dateTimeFontColor":"#767676","imagePosition":"vertical","dropShadow":"","dateTimeFontsize":"12","entityTagBorderColor":"#333333BF","borderColor":"#e6e6e6","showdate":"","redirectMode":"same","recipe":"similar-items"},"isUserEntitled":false,"isGatedAsPaid":false,"metadata":{"type":"article","uid":"blt72b06a6bd072105c","aid":"205623","reg":"anonymous","pterm":{"main":"Cyberattacks \u0026 Data Breaches","parent":"","grandparent":{"title":""},"additional":[{"type":"TopicPrimary","title":"Application Security","url":"/application-security"},{"type":"TopicPrimary","title":"Threat Intelligence","url":"/threat-intelligence"},{"type":"TopicPrimary","title":"Cybersecurity Operations","url":"/cybersecurity-operations"}]},"contentFormat":"News","buyersJourney":"","contributor":[{"title":"Nate Nelson","name":"Nate Nelson, Contributing Writer","companyName":"","role":"","avatar":"https://eu-images.contentstack.com/v3/assets/blt6d90778a997de1cd/blt00df7fa701809c8c/64f15c901c6887515143a4d1/Nate-Nelson_(1).jpg","link":"/author/nate-nelson","tagLine":"","summary":[{"type":"paragraph","attrs":{"textAlign":"left"},"content":[{"type":"text","text":"Nate Nelson is a freelance writer based in New York City. Formerly a reporter at Threatpost, he contributes to a number of cybersecurity blogs and podcasts. He writes \"Malicious Life\" -- an award-winning Top 20 tech podcast on Apple and Spotify -- and hosts every other episode, featuring interviews with leading voices in security. He also co-hosts \"The Industrial Security Podcast,\" the most popular show in its field."}]}]}],"gatedWithExternalForm":false,"gatedWithSiteReg":false,"paidGating":false,"sponsorName":""},"template":{"breadcrumbs":[{"url":"/","title":"Home"},{"url":"/cyberattacks-data-breaches","title":"Cyberattacks \u0026 Data Breaches"}],"topics":[{"__typename":"TopicPrimary","title":"Cyberattacks \u0026 Data Breaches","url":"/cyberattacks-data-breaches"},{"__typename":"TopicPrimary","title":"Application Security","url":"/application-security"},{"__typename":"TopicPrimary","title":"Threat Intelligence","url":"/threat-intelligence"},{"__typename":"TopicPrimary","title":"Cybersecurity Operations","url":"/cybersecurity-operations"}],"subBrand":null,"searchParams":{},"summary":"A Chinese threat actor infiltrated several IT and security companies in a bring-your-own VS code, with an eye to carrying out a supply-chain-based espionage attack. ","title":"Sprawling 'Operation Digital Eye' Attack Targets European IT Orgs","mobileHeadline":"'Operation Digital Eye' Attack Targets European IT Orgs","authoredBy":"","authoredOn":"","oldUrl":"","buyersJourney":"","contributors":[{"title":"Nate Nelson","name":"Nate Nelson, Contributing Writer","companyName":"","role":"","avatar":"https://eu-images.contentstack.com/v3/assets/blt6d90778a997de1cd/blt00df7fa701809c8c/64f15c901c6887515143a4d1/Nate-Nelson_(1).jpg","link":"/author/nate-nelson","tagLine":"","summary":[{"type":"paragraph","attrs":{"textAlign":"left"},"content":[{"type":"text","text":"Nate Nelson is a freelance writer based in New York City. Formerly a reporter at Threatpost, he contributes to a number of cybersecurity blogs and podcasts. He writes \"Malicious Life\" -- an award-winning Top 20 tech podcast on Apple and Spotify -- and hosts every other episode, featuring interviews with leading voices in security. He also co-hosts \"The Industrial Security Podcast,\" the most popular show in its field."}]}]}],"readTime":4,"newsletterSignUpPromo":{"title":"Keep up with the latest cybersecurity threats, newly discovered vulnerabilities, data breach information, and emerging trends. Delivered daily or weekly right to your email inbox.","message":"","newsletterId":"bltdcb90f81b445a744","buttonText":"Subscribe","variant":"vertical","mode":"dark"},"resourcesModule":{"title":"More Insights","linkLists":[{"listOption":"External Feed","listTitle":"Webinars","icon":"ChalkBoard","externalFeed":"https://smartbox.techweb.com/smartbox/externalsmartbox?site_id=162801002\u0026taxonomy_ids=\u0026num_display=5\u0026article_type=upcoming_webinars","ctaButton":{"ctaButtonLink":"/resources?types=Webinar","ctaButtonText":"More Webinars"},"openInNewTab":true,"articles":[{"title":"The Current State of AI Adoption in Cybersecurity, Including its Opportunities","publishedDate":"Dec 06, 2024","url":"https://dr-resources.darkreading.com/c/pubRD.mpl?secure=1\u0026sr=pp\u0026_t=pp:\u0026qf=w_tren85\u0026ch=SBX\u0026cid=_upcoming_webinars_8.500001507\u0026_mc=_upcoming_webinars_8.500001507","eventDate":"Dec 12, 2024"},{"title":"Cybersecurity Day: How to Automate Security Analytics with AI and ML","publishedDate":"Dec 06, 2024","url":"https://dr-resources.darkreading.com/c/pubRD.mpl?secure=1\u0026sr=pp\u0026_t=pp:\u0026pc=w_snoa33\u0026ch=SBX\u0026cid=_upcoming_webinars_8.500001504\u0026_mc=_upcoming_webinars_8.500001504","eventDate":"Dec 17, 2024"},{"title":"The Dirt on ROT Data","publishedDate":"Dec 06, 2024","url":"https://dr-resources.darkreading.com/c/pubRD.mpl?secure=1\u0026sr=pp\u0026_t=pp:\u0026qf=w_rubr127\u0026ch=SBX\u0026cid=_upcoming_webinars_8.500001508\u0026_mc=_upcoming_webinars_8.500001508","eventDate":"Dec 18, 2024"}]},{"listOption":"External Feed","listTitle":"Events","icon":"Date","externalFeed":"https://smartbox.techweb.com/smartbox/externalsmartbox?site_id=162801002\u0026taxonomy_ids=\u0026num_display=4\u0026article_type=session","ctaButton":{"ctaButtonLink":"/events","ctaButtonText":"More Events"},"openInNewTab":true,"articles":[]}],"dateDisplay":"show"},"socialShare":[{"type":"Linkedin","url":"https://www.linkedin.com/sharing/share-offsite/?url=https://www.darkreading.com/cyberattacks-data-breaches/operation-digital-eye-attack-targets-european-it-orgs"},{"type":"Facebook","url":"http://www.facebook.com/sharer/sharer.php?u=https://www.darkreading.com/cyberattacks-data-breaches/operation-digital-eye-attack-targets-european-it-orgs"},{"type":"Twitter","url":"http://www.twitter.com/intent/tweet?url=https://www.darkreading.com/cyberattacks-data-breaches/operation-digital-eye-attack-targets-european-it-orgs"},{"type":"Reddit","url":"https://www.reddit.com/submit?url=https://www.darkreading.com/cyberattacks-data-breaches/operation-digital-eye-attack-targets-european-it-orgs\u0026title=Sprawling%20'Operation%20Digital%20Eye'%20Attack%20Targets%20European%20IT%20Orgs"},{"type":"Email","url":"mailto:?subject=Sprawling 'Operation Digital Eye' Attack Targets European IT Orgs\u0026body=I%20thought%20the%20following%20from%20Dark%20Reading%20might%20interest%20you.%0D%0A%0D%0A%20Sprawling%20'Operation%20Digital%20Eye'%20Attack%20Targets%20European%20IT%20Orgs%0D%0Ahttps%3A%2F%2Fwww.darkreading.com%2Fcyberattacks-data-breaches%2Foperation-digital-eye-attack-targets-european-it-orgs"},{"type":"Print","url":"/"}],"publishedDate":"2024-12-10T11:00:00.000Z","keywords":[],"atAGlance":[],"bodyJson":[{"type":"paragraph","attrs":{"textAlign":"left"},"content":[{"type":"text","text":"Chinese hackers almost breached critical European supply chain companies by disguising their malicious activities behind native Microsoft technologies."}]},{"type":"paragraph","attrs":{"textAlign":"left"},"content":[{"type":"text","text":"It happened during a three-week period, from late June to July, according to researchers from SentinelLabs. A threat actor tied to "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.darkreading.com/threat-intelligence/chinese-apts-edge-device-attacks","target":"_blank","rel":null,"class":null}}],"text":"China's diverse and thriving cyberattack scene"},{"type":"text","text":" targeted large business-to-business (B2B) IT service providers throughout southern Europe, such as cybersecurity vendors and data and infrastructure solutions providers, with the presumed goal of downstream supply chain espionage."}]},{"type":"ad","pos":"300_1v_article"},{"type":"paragraph","attrs":{"textAlign":"left"},"content":[{"type":"text","text":"To penetrate these IT vendors — and, presumably, the many clients across the continent to which they enjoy privileged access — the attackers masked their malicious activity behind everyday business tools like Visual Studio Code and Microsoft Azure. And to confuse attribution, they used the same tactics, techniques, procedures (TTPs), and tooling observed across a number of other known Chinese threat actors."}]},{"type":"heading","attrs":{"textAlign":"left","level":2},"content":[{"type":"text","text":"Malware via Microsoft"}]},{"type":"paragraph","attrs":{"textAlign":"left"},"content":[{"type":"text","text":"Infections in the campaign, which researchers dubbed \"Operation Digital Eye,\" began with SQL injections against vulnerable, Internet-facing Web and database servers. Then the attackers dropped PHP Web shells, using filenames specially tailored to the target's environment in order to avoid raising any suspicion. Reconnaissance, lateral movement, and credentials theft followed."}]},{"type":"ad","pos":"native_1v"},{"type":"paragraph","attrs":{"textAlign":"left"},"content":[{"type":"text","text":"The highlight of the attacks, though, came innocuously packaged as \"code.exe.\" Digitally signed by Microsoft and run as a service using the Windows Service Wrapper, the attackers brought to each of their victims their own portable copy of the Visual Studio Code (VS Code). VS Code is a free, open source editor developed by Microsoft, by far the most popular integrated development environment (IDE) among both new and seasoned developers."}]},{"type":"ad","pos":"video_v"},{"type":"paragraph","attrs":{"textAlign":"left"},"content":[{"type":"text","text":"VS Code has also become a "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.darkreading.com/application-security/microsoft-vs-code-undermined-in-asian-spy-attack","target":"_blank","rel":null,"class":null}}],"text":"proven weapon of Chinese threat actors"},{"type":"text","text":" as of late, thanks to its Remote Tunnels feature. Remote Tunnels is designed to allow developers to access and work on code on remote machines. In a different light, though, it's a perfect malicious payload, enabling command execution and file editing on remote systems in the context of a seemingly innocuous Microsoft program. The attackers behind Operation Digital Eye intended to use VS Code to maintain persistent backdoor access to victims, using innocuous file and service names and storing it in the Temp folder to further blend in with victims' normal business operations."}]},{"type":"paragraph","attrs":{"textAlign":"left"},"content":[{"type":"text","text":"Tunneling with VS Code isn't quite as simple as loading malware onto a victim's machine, though — it requires a GitHub account and connection with an Azure server. Researchers aren't sure whether the attackers used stolen GitHub and Azure credentials, or registered their own accounts."}]},{"type":"paragraph","attrs":{"textAlign":"left"},"content":[{"type":"text","text":"What is clear is that they turned this potential roadblock into an advantage, leveraging public cloud infrastructure in Western Europe to make their otherwise suspicious traffic look more legitimate, and more likely to evade notice by security tools. VS Code and Azure network traffic tends to avoid close scrutiny, the researchers noted, and are commonly allowed by application controls and firewall rules. \"Combined with the full endpoint access it provides, this makes Visual Studio Code tunneling an attractive and powerful capability for threat actors to exploit,\" they wrote."}]},{"type":"heading","attrs":{"textAlign":"left","level":2},"content":[{"type":"text","text":"The Trouble in Attributing Chinese Attackers"}]},{"type":"paragraph","attrs":{"textAlign":"left"},"content":[{"type":"text","text":"The actual malware used in Operation Digital Eye did less to clarify than to confuse who, exactly, was behind the attacks."}]},{"type":"paragraph","attrs":{"textAlign":"left"},"content":[{"type":"text","text":"The most notable tool in the mix, \"bK2o.exe,\" is a modified version of the open source credential stealing tool Mimikatz, designed for pass-the-hash attacks. Its aim is to snag a New Technology LAN Manager (NTLM) hash, in lieu of the targeted user's actual password, to enable the further execution of processes within the user's security context."}]},{"type":"ad","pos":"native_2v"},{"type":"paragraph","attrs":{"textAlign":"left"},"content":[{"type":"text","text":"BK2o.exe is just one among many Mimikatz variants deployed by several Chinese advanced persistent threats (APTs). Related variants have been observed in Operations Soft Cell and Tainted Love, associated with groups like "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.darkreading.com/threat-intelligence/china-s-apt41-linked-wyrmspy-dragonegg-mobile-spyware","target":"_blank","rel":null,"class":null}}],"text":"APT41"},{"type":"text","text":" and "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.darkreading.com/cyberattacks-data-breaches/us-indicts-2-apt10-members-for-years-long-hacking-campaign","target":"_blank","rel":null,"class":null}}],"text":"APT10"},{"type":"text","text":". Researchers from SentinelLabs concluded that there is likely a shared vendor supplying many groups at once, as evidenced by "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.darkreading.com/threat-intelligence/-isoon-contractor-helps-the-prc-hack-foreign-governments-companies","target":"_self","rel":null,"class":null}}],"text":"the recent case of iSoon"},{"type":"text","text":"."}]},{"type":"paragraph","attrs":{"textAlign":"left"}},{"type":"paragraph","attrs":{"textAlign":"left"},"content":[{"type":"text","text":"Also common to these many groups, besides their malware, is the intent behind their cyberespionage. In the case of Digital Eye, \"Southern Europe's role as a Mediterranean hub intersects with China's Belt and Road Initiative, particularly in infrastructure investments like Greece's Port of Piraeus,\" notes SentinelLabs principal threat researcher Tom Hegel. \"Cyber operations in this area likely support China's efforts to safeguard these investments, gain leverage in energy transit routes, and monitor naval activities critical to global trade and security. Economically, Southern Europe offers access to critical industries such as energy, shipping, aerospace, and agriculture, as well as opportunities for scientific and technological espionage, particularly in aerospace and renewable energy. Politically, the region's challenges provide opportunities for influence, allowing China to exploit economic dependencies, shape public sentiment, and potentially weaken EU and NATO unity.\""}]},{"type":"paragraph","attrs":{"textAlign":"left"},"content":[{"type":"text","text":"He concludes that \"In targeting Southern Europe, China seeks not only to secure competitive advantages but also to deepen its influence in a region vital to global trade, energy flows, and Western alliances.\""}]},{"type":"paragraph","attrs":{"textAlign":"left"}}],"contentType":"Article","uid":"blt72b06a6bd072105c","sponsored":{"logoUrl":"","url":"","alt":"","title":"","campaignURL":"","isSponsored":false,"gateWithSiteReg":false,"gateWithExternalForm":"None","externalFormID":""},"featuredImage":{"src":"https://eu-images.contentstack.com/v3/assets/blt6d90778a997de1cd/bltf107a8b2df047202/67573f4aa643a9191dd33405/VS_Code-Araki_Illustrations-Alamy.jpg","alt":"The Visual Studio Code logo","caption":"","creditTo":"Source: Araki Illustrations via Alamy Stock Photo"},"contentFormat":{"title":"News"},"seriesTaxonomy":[],"programTaxonomy":[],"sidebarModules":[{"type":"module_content_cards","data":{"title":"Editor's Choice","moduleLabel":"","variant":"column","contents":[{"type":"contentPreview","data":{"contentType":"Article","variant":"card-vertical","thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt6d90778a997de1cd/blt9bf7e6a9826c0aea/6750c624093fa132fa7059fc/chinacyber_Weitwinkel_shutterstock.jpg","alt":"American and Chinese flags on computer keyboard keys"},"articleName":"CISA Issues Guidance to Telecom Sector on Salt Typhoon Threat","mobileHeadline":"CISA Issues Guidance to Telecom Sector on Salt Typhoon Threat","articleUrl":"/cyberattacks-data-breaches/cisa-issue-guidance-telecoms-salt-typhoon-threat","listPageUrl":"/cyberattacks-data-breaches/cisa-issue-guidance-telecoms-salt-typhoon-threat","linkAttrs":{},"date":"Dec 4, 2024","webinarStartTime":"","categoryName":"Cyberattacks \u0026 Data Breaches","categoryUrl":"/cyberattacks-data-breaches","contributors":[{"name":"Jai Vijayan, Contributing Writer","link":"/author/jai-vijayan","avatar":"https://eu-images.contentstack.com/v3/assets/blt6d90778a997de1cd/blt1a674355ce57f27b/64f14f228727730c7f926217/Jai-Vijayan.jpeg"}],"timeRead":4,"paidGating":{"paidContent":false,"paidProductTaxonomy":[]}}},{"type":"ad","data":{"pos":"native_vertical_1v"}},{"type":"contentPreview","data":{"contentType":"Article","variant":"card-vertical","thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt6d90778a997de1cd/blt4a5bfeaa660cbace/675221269156dc2f14d3ffda/tunnels-Classic_Image-Alamy.jpg","alt":"Great Siege Tunnels, Gibraltar, featuring a tableau of seven cannons overlooking Spanish positions "},"articleName":"Russia's 'BlueAlpha' APT Hides in Cloudflare Tunnels","mobileHeadline":"Russia's 'BlueAlpha' APT Hides in Cloudflare Tunnels","articleUrl":"/cloud-security/russias-bluealpha-apt-cloudflare-tunnels","listPageUrl":"/cloud-security/russias-bluealpha-apt-cloudflare-tunnels","linkAttrs":{},"date":"Dec 5, 2024","webinarStartTime":"","categoryName":"Сloud Security","categoryUrl":"/cloud-security","contributors":[{"name":"Tara Seals, Managing Editor, News, Dark Reading","link":"/author/tara-seals","avatar":"https://eu-images.contentstack.com/v3/assets/blt6d90778a997de1cd/blt74c35947c6a4996b/64f1714aa5678002330c4412/Tara-Seals-Headshot2.jpg"}],"timeRead":2,"paidGating":{"paidContent":false,"paidProductTaxonomy":[]}}},{"type":"contentPreview","data":{"contentType":"Article","variant":"card-vertical","thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt6d90778a997de1cd/bltdf491a27738b56da/67520b03e914956c1715c180/Mitel-Kristoffer_Tripplaar-Alamy.jpg","alt":"Mitel's corporate logo on an office building"},"articleName":"Bypass Bug Revives Critical N-Day in Mitel MiCollab","mobileHeadline":"Bypass Bug Revives Critical N-Day in Mitel MiCollab","articleUrl":"/vulnerabilities-threats/bypass-bug-critical-n-day-mitel-micollab","listPageUrl":"/vulnerabilities-threats/bypass-bug-critical-n-day-mitel-micollab","linkAttrs":{},"date":"Dec 5, 2024","webinarStartTime":"","categoryName":"Vulnerabilities \u0026 Threats","categoryUrl":"/vulnerabilities-threats","contributors":[{"name":"Nate Nelson, Contributing Writer","link":"/author/nate-nelson","avatar":"https://eu-images.contentstack.com/v3/assets/blt6d90778a997de1cd/blt00df7fa701809c8c/64f15c901c6887515143a4d1/Nate-Nelson_(1).jpg"}],"timeRead":4,"paidGating":{"paidContent":false,"paidProductTaxonomy":[]}}},{"type":"ad","data":{"pos":"native_vertical_2v"}}],"dateDisplay":"show","contributorDisplay":"show"},"adConfig":{"nativeAdOption":true}},{"type":"module_link_list","data":{"listOption":"External Feed","listTitle":"Reports","icon":"Document","externalFeed":"https://smartbox.techweb.com/smartbox/externalsmartbox?site_id=162801002\u0026taxonomy_ids=\u0026num_display=5\u0026article_type=analytics","ctaButton":{"ctaButtonLink":"/resources?types=Report","ctaButtonText":"More Reports"},"openInNewTab":true,"articles":[{"title":"IDC Analyst Brief: Enhancing Incident Response with Automated Investigation Workflows","publishedDate":"Dec 06, 2024","url":"https://dr-resources.darkreading.com/c/pubRD.mpl?secure=1\u0026sr=pp\u0026_t=pp:\u0026qf=w_defa7503\u0026ch=SBX\u0026cid=_analytics_7.300006021\u0026_mc=_analytics_7.300006021","eventDate":""},{"title":"Managing Third-Party Risk Through Situational Awareness","publishedDate":"Jul 31, 2024","url":"https://dr-resources.darkreading.com/c/pubRD.mpl?secure=1\u0026sr=pp\u0026_t=pp:\u0026qf=w_cybo171\u0026ch=\u0026cid=_analytics_7.300006016\u0026_mc=_analytics_7.300006016","eventDate":""},{"title":"2024 InformationWeek US IT Salary Report","publishedDate":"May 29, 2024","url":"https://iw-resources.informationweek.com/c/pubRD.mpl?secure=1\u0026sr=pp\u0026_t=pp:\u0026qf=w_ingg253\u0026ch=sbx\u0026cid=_analytics_7.300006014\u0026_mc=_analytics_7.300006014","eventDate":""}]}},{"type":"module_link_list","data":{"listOption":"External Feed","listTitle":"Webinars","icon":"ChalkBoard","externalFeed":"https://smartbox.techweb.com/smartbox/externalsmartbox?site_id=162801002\u0026taxonomy_ids=\u0026num_display=5\u0026article_type=upcoming_webinars","ctaButton":{"ctaButtonLink":"/resources?types=Webinar","ctaButtonText":"More Webinars"},"openInNewTab":true,"articles":[{"title":"The Current State of AI Adoption in Cybersecurity, Including its Opportunities","publishedDate":"Dec 06, 2024","url":"https://dr-resources.darkreading.com/c/pubRD.mpl?secure=1\u0026sr=pp\u0026_t=pp:\u0026qf=w_tren85\u0026ch=SBX\u0026cid=_upcoming_webinars_8.500001507\u0026_mc=_upcoming_webinars_8.500001507","eventDate":"Dec 12, 2024"},{"title":"Cybersecurity Day: How to Automate Security Analytics with AI and ML","publishedDate":"Dec 06, 2024","url":"https://dr-resources.darkreading.com/c/pubRD.mpl?secure=1\u0026sr=pp\u0026_t=pp:\u0026pc=w_snoa33\u0026ch=SBX\u0026cid=_upcoming_webinars_8.500001504\u0026_mc=_upcoming_webinars_8.500001504","eventDate":"Dec 17, 2024"},{"title":"The Dirt on ROT Data","publishedDate":"Dec 06, 2024","url":"https://dr-resources.darkreading.com/c/pubRD.mpl?secure=1\u0026sr=pp\u0026_t=pp:\u0026qf=w_rubr127\u0026ch=SBX\u0026cid=_upcoming_webinars_8.500001508\u0026_mc=_upcoming_webinars_8.500001508","eventDate":"Dec 18, 2024"}]}},{"type":"module_link_list","data":{"listOption":"External Feed","listTitle":"White Papers","icon":"Document","externalFeed":"https://smartbox.techweb.com/smartbox/externalsmartbox?site_id=162801002\u0026taxonomy_ids=\u0026num_display=\u0026article_type=whitepaper","ctaButton":{"ctaButtonLink":"/resources?types=Whitepaper","ctaButtonText":"More Whitepapers"},"openInNewTab":true,"articles":[{"title":"Enhancing Cybersecurity: The Critical Role Of Software Security Training","publishedDate":"","url":"https://dr-resources.darkreading.com/c/pubRD.mpl?secure=1\u0026sr=pp\u0026_t=pp:\u0026qf=w_defa7530\u0026ch=SBX\u0026cid=_whitepaper_14.500005851\u0026_mc=_whitepaper_14.500005851","eventDate":""},{"title":"Frost Radar: Cloud Security Posture Management, 2024","publishedDate":"","url":"https://dr-resources.darkreading.com/c/pubRD.mpl?secure=1\u0026sr=pp\u0026_t=pp:\u0026qf=w_palo247\u0026ch=SBX\u0026cid=_whitepaper_14.500005834\u0026_mc=_whitepaper_14.500005834","eventDate":""},{"title":"The State of Vulnerability Management in the Enterprise","publishedDate":"","url":"https://dr-resources.darkreading.com/c/pubRD.mpl?secure=1\u0026sr=pp\u0026_t=pp:\u0026qf=w_adaa07\u0026ch=SBX\u0026cid=_whitepaper_14.500005831\u0026_mc=_whitepaper_14.500005831","eventDate":""},{"title":"Generative AI Gifts","publishedDate":"","url":"https://dr-resources.darkreading.com/c/pubRD.mpl?secure=1\u0026sr=pp\u0026_t=pp:\u0026qf=w_senu28\u0026ch=SBX\u0026cid=_whitepaper_14.500005773\u0026_mc=_whitepaper_14.500005773","eventDate":""},{"title":"SecOps Checklist","publishedDate":"","url":"https://dr-resources.darkreading.com/c/pubRD.mpl?secure=1\u0026sr=pp\u0026_t=pp:\u0026qf=w_senu25\u0026ch=SBX\u0026cid=_whitepaper_14.500005771\u0026_mc=_whitepaper_14.500005771","eventDate":""}]}},{"type":"module_link_list","data":{"listOption":"External Feed","listTitle":"Events","icon":"Date","externalFeed":"https://smartbox.techweb.com/smartbox/externalsmartbox?site_id=162801002\u0026taxonomy_ids=\u0026num_display=4\u0026article_type=session","ctaButton":{"ctaButtonLink":"/events","ctaButtonText":"More Events"},"openInNewTab":true,"articles":[]}}],"relatedEvents":[],"topicSelector":{"mainTopic":{"type":"TopicPrimary","title":"Cyberattacks \u0026 Data Breaches","url":"/cyberattacks-data-breaches"},"additionalTopics":[{"type":"TopicPrimary","title":"Application Security","url":"/application-security"},{"type":"TopicPrimary","title":"Threat Intelligence","url":"/threat-intelligence"},{"type":"TopicPrimary","title":"Cybersecurity Operations","url":"/cybersecurity-operations"}]},"disclaimer":[],"paidGating":{"isPaidContent":false,"paidProductTaxonomies":[]},"errorModal":{"showErrorModal":false,"errorTitle":"Oops! An error has occurred","errorDescription":"The connection on our end has been interrupted. Please refresh the page and try again."},"additionalGatingSettings":{"gatingCharacterLength":750,"gatingTitle":"","gatingDescriptionMessage":""},"isGatedAsPaid":false},"schema":[{"@context":"https://schema.org","@type":"Article","datePublished":"2024-12-10T11:00:00.000Z","dateModified":"2024-12-10T15:35:32.388Z","headline":"Sprawling 'Operation Digital Eye' Attack Targets European IT Orgs","mainEntityOfPage":"https://www.darkreading.com/cyberattacks-data-breaches/operation-digital-eye-attack-targets-european-it-orgs","image":{"@type":"ImageObject","url":"https://eu-images.contentstack.com/v3/assets/blt6d90778a997de1cd/bltf107a8b2df047202/67573f4aa643a9191dd33405/VS_Code-Araki_Illustrations-Alamy.jpg","caption":"","creditText":"Source: Araki Illustrations via Alamy Stock Photo"},"author":[{"@type":"Person","name":"Nate Nelson, Contributing Writer","image":"https://eu-images.contentstack.com/v3/assets/blt6d90778a997de1cd/blt00df7fa701809c8c/64f15c901c6887515143a4d1/Nate-Nelson_(1).jpg","url":"https://www.darkreading.com/author/nate-nelson"}],"publisher":{"@type":["NewsMediaOrganization","Organization","OnlineBusiness"],"identifier":"https://www.darkreading.com","name":"Dark Reading","url":"https://www.darkreading.com","sameAs":["https://twitter.com/DarkReading","https://www.linkedin.com/company/dark-reading/","https://www.facebook.com/darkreadingcom/","https://www.youtube.com/@DarkReadingOfficialYT","https://news.google.com/publications/CAAqBwgKMKmknwswtq63Aw"],"foundingDate":"2006","description":"To challenge community members to think about security by providing strong, even unconventional points of view, backed by hard-nosed reporting, hands-on experience, and the professional knowledge that comes only with years of work in the information security industry.","logo":{"@type":"ImageObject","url":"https://www.darkreading.com/build/_assets/DarkReading-EAU2PZUE.svg","width":{"@type":"QuantitativeValue","value":1008},"height":{"@type":"QuantitativeValue","value":112}}}},{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://www.darkreading.com"},{"@type":"ListItem","position":2,"name":"Cyberattacks \u0026 Data Breaches","item":"https://www.darkreading.com/cyberattacks-data-breaches"}]}],"seo":{"canonicalUrl":"https://www.darkreading.com/cyberattacks-data-breaches/operation-digital-eye-attack-targets-european-it-orgs","metaDescription":"A Chinese threat actor infiltrated several IT and security companies in a bring-your-own VS code, with an eye to carrying out a supply-chain-based espionage attack. ","metaTitle":"'Operation Digital Eye' Attack Targets European IT Orgs","noIndex":false,"imageUrl":"https://eu-images.contentstack.com/v3/assets/blt6d90778a997de1cd/bltf107a8b2df047202/67573f4aa643a9191dd33405/VS_Code-Araki_Illustrations-Alamy.jpg?disable=upscale\u0026width=1200\u0026height=630\u0026fit=crop","noArchive":false,"keywords":"Cyberattacks \u0026 Data Breaches, Application Security, Threat Intelligence, Cybersecurity Operations"},"gtm":{"loadEvent":{"attributes":{"events":[],"subBrand":"","seo":{"canonicalURL":"https://www.darkreading.com/cyberattacks-data-breaches/operation-digital-eye-attack-targets-european-it-orgs","hideFromSearchEngines":false},"sponsored":{"name":"","campaignURL":"","isSponsored":false,"gateWithSiteReg":false,"gateWithExternalForm":"None","externalFormID":""},"legacy":{"destinationPath":"","issueDate":"","contributor":""}},"category":{"buyerJourney":"","contentFormat":"News","pageType":"article","keyword":[],"series":[],"primaryTerm":{"parent":"Cyberattacks \u0026 Data Breaches","child":"","grandchild":""},"secondaryTerm":[{"parent":"Application Security","child":"","grandchild":""},{"parent":"Threat Intelligence","child":"","grandchild":""},{"parent":"Cybersecurity Operations","child":"","grandchild":""}]},"pageInfo":{"pageID":"blt72b06a6bd072105c","pageName":"Sprawling 'Operation Digital Eye' Attack Targets European IT Orgs","destinationURL":"https://www.darkreading.com/cyberattacks-data-breaches/operation-digital-eye-attack-targets-european-it-orgs","issueDate":"Dec 10, 2024","contributor":[{"companyName":"","displayName":"Nate Nelson, Contributing Writer","jobTitle":"","name":"Nate Nelson"}]}}},"siteSetting":{"placeholderImages":{"brand":"https://eu-images.contentstack.com/v3/assets/blt6d90778a997de1cd/bltc94608acf452fd67/655cf371ab171e040a838b2a/329050_DR23_Graphics_Website_V5_Default_Image_v1.png","contributor":"https://eu-images.contentstack.com/v3/assets/blt6d90778a997de1cd/blt171e20ac163e523a/65004ec08c754b16dd16303c/Contributor_Avatar.png"},"defaultGatingTitle":"","defaultGatingDescriptionMessage":""},"isLivePreview":false}},"actionData":null,"errors":null}};</script><script type="module" async="">import "/build/manifest-56B63EEE.js"; import * as route0 from "/build/root-PUQZGJFA.js"; import * as route1 from "/build/routes/$topic.$slug._index-QLR25G4J.js"; window.__remixRouteModules = {"root":route0,"routes/$topic.$slug._index":route1}; import("/build/entry.client-SFHSSSEN.js");</script><script async="" defer="" src="https://connect.facebook.net/en_US/sdk.js#xfbml=1&amp;version=v3.2"></script><script async="" defer="" src="https://www.instagram.com/embed.js"></script><script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'8f0b2d0a8a5b9d10',t:'MTczMzk3OTg5Mi4wMDAwMDA='};var a=document.createElement('script');a.nonce='';a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script></body></html>

Pages: 1 2 3 4 5 6 7 8 9 10