",promise:a.resolve()}}}},"core/src/lib/actions/helpers/decorators/decorateNonGlobalJavaScriptCode.js":{script:function(e,t,n){"use strict";var a=n("@adobe/reactor-promise"),i=0;e.exports=function(e,t){var n="_runScript"+ ++i,r=new a((function(t,i){_satellite[n]=function(r){delete _satellite[n],new a((function(t){t(r.call(e.event.element,e.event,e.event.target,a))})).then(t,i)}}));return{code:'",promise:r}}}},"core/src/lib/actions/helpers/decorators/decorateHtmlCode.js":{script:function(e,t,n,a){"use strict";var i=n("@adobe/reactor-promise"),r=0,o={};window._satellite=window._satellite||{},window._satellite._onCustomCodeSuccess=function(e){var t=o[e];t&&(delete o[e],t.resolve())},window._satellite._onCustomCodeFailure=function(e){var t=o[e];t&&(delete o[e],t.reject())};var s=function(e){return-1!==e.indexOf("${reactorCallbackId}")},c=function(e,t){return e.replace(/\${reactorCallbackId}/g,t)},l=function(e){return e.settings.isExternal};e.exports=function(e,t){var n;return l(e)&&(t=a.replaceTokens(t,e.event)),s(t)?(n=new i((function(e,t){o[String(r)]={resolve:e,reject:t}})),t=c(t,r),r+=1):n=i.resolve(),{code:t,promise:n}}}},"core/src/lib/actions/helpers/getSourceByUrl.js":{script:function(e,t,n){"use strict";var a=n("@adobe/reactor-load-script"),i=n("@adobe/reactor-promise"),r=n("../../helpers/findPageScript").byRegexPattern,o={},s={},c=function(e){return s[e]||(s[e]=a(e)),s[e]};_satellite.__registerScript=function(e,t){var n;if(document.currentScript)n=document.currentScript.getAttribute("src");else{var a=new RegExp(".*"+e+".*");n=r(a).getAttribute("src")}o[n]=t},e.exports=function(e){return o[e]?i.resolve(o[e]):new i((function(t){c(e).then((function(){t(o[e])}),(function(){t()}))}))}}},"core/src/lib/events/helpers/pageLifecycleEvents.js":{script:function(e,t,n){"use strict";var a=n("@adobe/reactor-window"),i=n("@adobe/reactor-document"),r=-1!==a.navigator.appVersion.indexOf("MSIE 10"),o="WINDOW_LOADED",s="DOM_READY",c="PAGE_BOTTOM",l=[c,s,o],d=function(e,t){return{element:e,target:e,nativeEvent:t}},u={};l.forEach((function(e){u[e]=[]}));var p=function(e,t){l.slice(0,f(e)+1).forEach((function(e){m(t,e)}))},g=function(){return"complete"===i.readyState?o:"interactive"===i.readyState?r?null:s:void 0},f=function(e){return l.indexOf(e)},m=function(e,t){u[t].forEach((function(t){v(e,t)})),u[t]=[]},v=function(e,t){var n=t.trigger,a=t.syntheticEventFn;n(a?a(e):null)};a._satellite=a._satellite||{},a._satellite.pageBottom=p.bind(null,c),i.addEventListener("DOMContentLoaded",p.bind(null,s),!0),a.addEventListener("load",p.bind(null,o),!0),a.setTimeout((function(){var e=g();e&&p(e)}),0),e.exports={registerLibraryLoadedTrigger:function(e){e()},registerPageBottomTrigger:function(e){u[c].push({trigger:e})},registerDomReadyTrigger:function(e){u[s].push({trigger:e,syntheticEventFn:d.bind(null,i)})},registerWindowLoadedTrigger:function(e){u[o].push({trigger:e,syntheticEventFn:d.bind(null,a)})}}}},"core/src/lib/helpers/textMatch.js":{script:function(e){"use strict";e.exports=function(e,t){if(null==t)throw new Error("Illegal Argument: Pattern is not present");return null!=e&&("string"==typeof t?e===t:t instanceof RegExp&&t.test(e))}}}}}},company:{orgId:"8CF467C25245AE3F0A490D4C@AdobeOrg",dynamicCdnEnabled:!1},property:{name:"CNBC Phoenix web",settings:{domains:["cnbc.com","ms.now.com","ms.now"],undefinedVarsReturnEmpty:!0,ruleComponentSequencingEnabled:!0},id:"PR50f9b710a52c4e10878459bae9e9f96b"},rules:[{id:"RL0ab3f2e691974bdf9f8db78f46ba5b53",name:"50 - mParticle S2S Meta",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["cnbc.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/* globals BI, mParticle, __CNBC_META_DATA, $t */\r\n(function() {\r\n const urlParams = new URLSearchParams(window.location.search);\r\n const utmCampaign = urlParams.get('utm_campaign');\r\n\r\n function logMpEvent(eventName) {\r\n BI.waitForObjAvailable(['__CNBC_META_DATA', 'mParticle'], 50, function() {\r\n var _cnbcMpAttrs = {\r\n 'Page Name': __CNBC_META_DATA.pageName || 'null',\r\n 'Page Type': __CNBC_META_DATA.type || 'null',\r\n 'Article ID': __CNBC_META_DATA.id || 'null',\r\n 'Platform': 'web',\r\n 'Product': 'cnbc.com',\r\n 'Referrer': document.referrer,\r\n 'User Agent': navigator.userAgent,\r\n 'Page URL': window.location.toString(),\r\n 'Url Param Utm_Campaign': utmCampaign || 'null',\r\n };\r\n mParticle.logEvent(eventName,\r\n mParticle.EventType.Navigation,\r\n _cnbcMpAttrs\r\n );\r\n window?.cnbcAmplitudeLogEvent?.(eventName, _cnbcMpAttrs);\r\n });\r\n }\r\n\r\n function isWhitePaperSubmitEvent(node) {\r\n const cramerGuideID = node.id === 'nl-page-submit';\r\n const cramerGuideText = node.textContent === 'GET THE FREE GUIDE';\r\n const cramerGuideType = node.type === 'submit';\r\n const isCramerGuideSubmit = cramerGuideID && cramerGuideText && cramerGuideType;\r\n\r\n const stocksAtNightID = node.id === 'whitePaperFormSubmit';\r\n const stocksAtNightText = node.textContent === 'JOIN THE LIST';\r\n const stocksAtNightType = node.type === 'submit';\r\n const isStocksAtNightSubmit = stocksAtNightID && stocksAtNightText && stocksAtNightType;\r\n return Boolean(isCramerGuideSubmit || isStocksAtNightSubmit);\r\n }\r\n\r\n function clickEventFilter(bteEvent) {\r\n if (\r\n bteEvent?.eventObject instanceof HTMLElement &&\r\n bteEvent?.eventObject?.tagName === 'BUTTON'\r\n ) {\r\n return isWhitePaperSubmitEvent(bteEvent.eventObject);\r\n }\r\n return false;\r\n }\r\n\r\n function registerEventHandlers() {\r\n // Raw click Events\r\n BI.waitForObjAvailable(['__EventBus__'], 50, function() {\r\n window.__EventBus__.on('click', function (e) {\r\n if (clickEventFilter(e)) {\r\n logMpEvent('White Paper Form Submit');\r\n }\r\n });\r\n });\r\n // Zephr Events\r\n $t('on', 'phx_zephr_email_submit', function() {\r\n logMpEvent('Zephr Email Submit');\r\n });\r\n }\r\n\r\n BI.wrapWithOneTrust({\r\n fn: registerEventHandlers,\r\n featureName: 'Whitepaper Events -> mParticle',\r\n categories: [7]\r\n });\r\n})();\r\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL0de1636a1db248c987e2f7b3ec2444ad",name:"50 - GTag - pixel_tracking_request",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["cnbc.com"]},timeout:2e3},{modulePath:"core/src/lib/conditions/pathAndQuerystring.js",settings:{paths:[{value:"https://www.cnbc.com/the-chart-signals-that-top-investing-pros-use/?__source=Pro|paid|wpromote|search|google|leadgen|chartsignalstopinvestingprosuse&tpcc=Pro|paid|wpromote|search|google|leadgen|chartsignalstopinvestingprosuse#no_universal_links",valueIsRegex:!0},{value:"heres-what-to-listen-for-in-a-corporate-earnings-call-with-investors",valueIsRegex:!0}]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/* globals BI */\nfunction loadScript(script) {\n var s = document.createElement('script'),\n el = document.getElementsByTagName('script')[0];\n s.async = true;\n s.src = (document.location.protocol == 'https:' ? 'https://' : 'http://') + script;\n el.parentNode.insertBefore(s, el);\n}\n\n(function() {\n // There are multiple pages that offer to email the user\n // a free copy of an investing whitepaper. All such pages\n // use the same template (at the time of writing), so are\n // able to share the same logic. For the purposes of Gtag\n // reporting, it's sufficient to discriminate between URL\n // paths, but it may be necessary in the future to pass in\n // the event object to this function.\n function getPageSpecificTrackingCode() {\n const trackingCodes = [\n ['heres-what-to-listen-for-in-a-corporate-earnings-call-with-investors', 'AW-304008397/NZaDCMeqgtUDEM2Z-5AB'],\n ['the-chart-signals-that-top-investing-pros-use', 'AW-304008397/UiuHCOn9svICEM2Z-5AB'],\n ];\n\n for (let [path, code] of trackingCodes) {\n if (location.pathname.includes(path)) {\n return code;\n }\n }\n }\n\n function captureEmailLanding() {\n loadScript('www.googletagmanager.com/gtag/js?id=AW-304008397');\n window.dataLayer = window.dataLayer || [];\n\n function gtag() {\n window.dataLayer.push(arguments);\n }\n\n gtag('js', new Date());\n gtag('config', 'AW-304008397');\n\n const reportGtagConversion = function (sendTo) {\n gtag('event', 'conversion', {\n send_to: sendTo,\n });\n };\n\n const buttonElementConditions = function (buttonNodeEvent) {\n const componentSubmitId = buttonNodeEvent.id === 'whitePaperFormSubmit';\n const freeDownloadTextContent = buttonNodeEvent.textContent === 'FREE DOWNLOAD';\n const typeSubmit = buttonNodeEvent.type === 'submit';\n return componentSubmitId && freeDownloadTextContent && typeSubmit;\n };\n\n const clickEventFilter = function (bteEvent) {\n const hasEventObject = Object.prototype.hasOwnProperty.call(bteEvent, 'eventObject');\n const isObject = typeof bteEvent.eventObject === 'object';\n const isHTMLElement = bteEvent.eventObject instanceof HTMLElement;\n\n if (hasEventObject && isObject && isHTMLElement) {\n const nodeEvent = bteEvent.eventObject;\n if (nodeEvent.tagName === 'BUTTON') {\n return buttonElementConditions(nodeEvent);\n }\n }\n return false;\n };\n\n\n BI.waitForObjAvailable(['__EventBus__'], 50, function() {\n window.__EventBus__.on('click', function (e) {\n const trackingCode = getPageSpecificTrackingCode();\n if (clickEventFilter(e) && trackingCode) {\n reportGtagConversion(trackingCode);\n }\n });\n });\n }\n\n BI.wrapWithOneTrust({\n fn: captureEmailLanding,\n featureName: 'Email Landing Gtag Conversion Capture',\n categories: [4,7]\n });\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL221ed38190be4bc09f061e68d62346e7",name:"30 - Adobe Appmeasurement",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:30}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["cnbc.com","ms.now"]},timeout:2e3}],actions:[{
modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,
source:'/*\n Copyright 1996 Adobe. All Rights Reserved.\n\n Licensed under the Apache License, Version 2.0 (the "License");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an "AS IS" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n/*\n\n Start ActivityMap Module\n\n The following module enables ActivityMap tracking in Adobe Analytics, offering\n data overlays on links and content for user engagement analysis. If not required,\n remove this code block from AppMeasurement.js.\n Implementation guide: https://adobe.ly/3UddQ2L\n*/\nfunction AppMeasurement_Module_ActivityMap(k){function p(){var a=f.pageYOffset+(f.innerHeight||0);a&&a>+g&&(g=a)}function q(){if(e.scrollReachSelector){var a=k.d.querySelector&&k.d.querySelector(e.scrollReachSelector);a?(g=a.scrollTop||0,a.addEventListener("scroll",function(){var d;(d=a&&a.scrollTop+a.clientHeight||0)>g&&(g=d)})):0a.indexOf(c)?a:a.split(c).join(d)};a.escape=function(b){var c,d;if(!b)return b;b=encodeURIComponent(b);for(c=0;7>c;c++)d="+~!*()\'".substring(c,c+1),0<=b.indexOf(d)&&(b=a.replace(b,d,"%"+d.charCodeAt(0).toString(16).toUpperCase()));return b};a.unescape=function(b){if(!b)return b;b=0<=b.indexOf("+")?a.replace(b,"+"," "):b;try{return decodeURIComponent(b)}catch(c){}return unescape(b)};a.zb=function(b){var c=a.fpCookieDomainPeriods,d;if(!a.Va&&b&&!a.Kb(b)&&(c||\n(c=a.cookieDomainPeriods),c||(c=a.yb(b)),c=c?parseInt(c):2,c=2d?d:c.indexOf(";",d);b=0>d?"":a.unescape(c.substring(d+2+b.length,0>f?c.length:f));return"[[B]]"!=b?b:""};a.c_w=a.cookieWrite=function(b,c,d){var f=a.zb(k.location.hostname),e=a.cookieLifetime,g;c=""+c;e=e?(""+e).toUpperCase():"";d&&"SESSION"!==e&&"NONE"!==\ne&&((g=""!=c?parseInt(e?e:0):-60)?(d=new Date,d.setTime(d.getTime()+1E3*g)):1===d&&(d=new Date,g=d.getYear(),d.setYear(g+2+(1900>g?1900:0))));return b&&"NONE"!==e?(f={path:"/",domain:f,ya:a.writeSecureCookies},"SESSION"!==e&&(f.ma=d),a.d.cookie=a.W(b,c,f),a.cookieRead(b)==c):!1};a.W=function(b,c,d){d=d||{};if(!b)return"";c=""!==c?c:"[[B]]";b=a.escape(b)+"="+a.escape(c);d.path&&(b+="; path="+d.path);d.ma&&(b+="; expires="+(new Date(d.ma)).toUTCString());d.domain&&(b+="; domain="+d.domain);d.ya&&(b+=\n"; secure");return b};a.gc=function(){var b=a.Util.getIeVersion();"number"===typeof b&&10>b&&(a.unsupportedBrowser=!0,a.Rb(a,function(){}))};a.Ia=function(){var a=navigator.userAgent;return"Microsoft Internet Explorer"===navigator.appName||0<=a.indexOf("MSIE ")||0<=a.indexOf("Trident/")&&0<=a.indexOf("Windows NT 6")?!0:!1};a.Rb=function(a,c){for(var d in a)Object.prototype.hasOwnProperty.call(a,d)&&"function"===typeof a[d]&&(a[d]=c)};a.M=[];a.ka=function(b,c,d){if(a.Wa)return 0;a.maxDelay||(a.maxDelay=\n250);var f=0,e=(new Date).getTime()+a.maxDelay,g=a.d.visibilityState,h=["webkitvisibilitychange","visibilitychange"];g||(g=a.d.webkitVisibilityState);if(g&&"prerender"==g){if(!a.la)for(a.la=1,d=0;db){a.M.unshift(d);setTimeout(a.delayReady,parseInt(a.maxDelay/2));break}a.Wa=1;a[d.m].apply(a,d.a);a.Wa=0}};a.setAccount=a.sa=function(b){var c,d;if(!a.ka("setAccount",arguments))if(a.account=b,a.allAccounts)for(c=a.allAccounts.concat(b.split(",")),a.allAccounts=[],c.sort(),d=0;de.indexOf(".contextData."))switch(k=h.substring(0,4),n=h.substring(4),h){case "transactionID":h=\n"xact";break;case "channel":h="ch";break;case "campaign":h="v0";break;default:a.bb(n)&&("prop"==k?h="c"+n:"eVar"==k?h="v"+n:"list"==k?h="l"+n:"hier"==k&&(h="h"+n,l=l.substring(0,255)))}g+="&"+a.escape(h)+"="+a.escape(l)}}""!=g&&(g+="&."+b)}return g};a.usePostbacks=0;a.lc=function(){var b="",c,d,f,e,g,h,l,k,n="",m="",p=e="",r=a.X();if(a.lightProfileID)c=a.Q,(n=a.lightTrackVars)&&(n=","+n+","+a.ra.join(",")+",");else{c=a.i;if(a.pe||a.linkType)n=a.linkTrackVars,m=a.linkTrackEvents,a.pe&&(e=a.pe.substring(0,\n1).toUpperCase()+a.pe.substring(1),a[e]&&(n=a[e].yc,m=a[e].xc));n&&(n=","+n+","+a.F.join(",")+",");m&&(m=","+m+",",n&&(n+=",events,"));a.events2&&(p+=(""!=p?",":"")+a.events2)}if(r&&r.getCustomerIDs){e=q;if(g=r.getCustomerIDs())for(d in g)Object.prototype[d]||(f=g[d],"object"==typeof f&&(e||(e={}),f.id&&(e[d+".id"]=f.id),f.authState&&(e[d+".as"]=f.authState)));e&&(b+=a.l("cid",e))}a.AudienceManagement&&a.AudienceManagement.isReady()&&(b+=a.l("d",a.AudienceManagement.getEventCallConfigParams()));for(d=\n0;df||0<=e&&f>e||0<=g&&f>g)&&(e=a.protocol&&1f?0:f)+"/":"")+d);return d};a.N=function(b){var c=a.C(b),d,f,e="",g=0;return c&&(d=b.protocol,f=b.onclick,!b.href||"A"!=c&&"AREA"!=c||f&&d&&!(0>d.toLowerCase().indexOf("javascript"))?\nf?(e=a.replace(a.replace(a.replace(a.replace(""+f,"\\r",""),"\\n",""),"\\t","")," ",""),g=2):"INPUT"==c||"SUBMIT"==c?(b.value?e=b.value:b.innerText?e=b.innerText:b.textContent&&(e=b.textContent),g=3):"IMAGE"==c&&b.src&&(e=b.src):e=a.Ya(b),e)?{id:e.substring(0,100),type:g}:0};a.Dc=function(b){for(var c=a.C(b),d=a.N(b);b&&!d&&"BODY"!=c;)if(b=b.parentElement?b.parentElement:b.parentNode)c=a.C(b),d=a.N(b);d&&"BODY"!=c||(b=0);b&&(c=b.onclick?""+b.onclick:"",0<=c.indexOf(".tl(")||0<=c.indexOf(".trackLink("))&&\n(b=0);return b};a.sc=function(){var b,c,d=a.linkObject,f=a.linkType,e=a.linkURL,g,h;a.ta=1;d||(a.ta=0,d=a.clickObject);if(d){b=a.C(d);for(c=a.N(d);d&&!c&&"BODY"!=b;)if(d=d.parentElement?d.parentElement:d.parentNode)b=a.C(d),c=a.N(d);c&&"BODY"!=b||(d=0);if(d&&!a.linkObject){var l=d.onclick?""+d.onclick:"";if(0<=l.indexOf(".tl(")||0<=l.indexOf(".trackLink("))d=0}}else a.ta=1;!e&&d&&(e=a.Ya(d));e&&!a.linkLeaveQueryString&&(g=e.indexOf("?"),0<=g&&(e=e.substring(0,g)));if(!f&&e){var m=0,n=0,p;if(a.trackDownloadLinks&&\na.linkDownloadFileTypes)for(l=e.toLowerCase(),g=l.indexOf("?"),h=l.indexOf("#"),0<=g?0<=h&&hc)return 0}return 1};a.U=function(b,c){var d,f,e,g,h,l,k;k={};for(d=0;2>d;d++)for(f=0c;c++)for(d=0b.indexOf("-")){for(b=0;16>b;b++)f=\nMath.floor(Math.random()*f),c+="0123456789ABCDEF".substring(f,f+1),f=Math.floor(Math.random()*e),d+="0123456789ABCDEF".substring(f,f+1),f=e=16;b=c+"-"+d}a.cookieWrite("s_fid",b,1)||(b=0);return b};a.Qa=function(b){var c=new Date,d="s"+Math.floor(c.getTime()/108E5)%10+Math.floor(1E13*Math.random()),f=c.getYear(),f="t="+a.escape(c.getDate()+"/"+c.getMonth()+"/"+(1900>f?f+1900:f)+" "+c.getHours()+":"+c.getMinutes()+":"+c.getSeconds()+" "+c.getDay()+" "+c.getTimezoneOffset()),e=a.X(),g;b&&(g=a.U(b,1));\na.qc()&&!a.visitorOptedOut&&(a.Ha()||(a.fid=a.jc()),a.sc(),a.usePlugins&&a.doPlugins&&a.doPlugins(a),a.account&&(a.abort||(a.trackOffline&&!a.timestamp&&(a.timestamp=Math.floor(c.getTime()/1E3)),b=k.location,a.pageURL||(a.pageURL=b.href?b.href:b),a.referrer||a.mb||(b=a.Util.getQueryParam("adobe_mc_ref",null,null,!0),a.referrer=b||void 0===b?void 0===b?"":b:p.document.referrer),a.mb=1,!a.referrer&&a.ea&&(a.referrer=a.ea),a.ea=0,a.referrer=a.ic(a.referrer),a.v("_g")),a.nc()&&!a.abort&&(e&&a.Y("TARGET")&&\n!a.supplementalDataID&&e.getSupplementalDataID&&(a.supplementalDataID=e.getSupplementalDataID("AppMeasurement:"+a._in,a.expectSupplementalData?!1:!0)),a.Y("AAM")||(a.contextData["cm.ssf"]=1),a.oc(),a.Qb(),f+=a.lc(),a.Mb(d,f),a.v("_t"),a.referrer="",a.contextData&&a.contextData.excCodes&&(a.contextData.excCodes=0))));a.referrer&&(a.ea=a.referrer);a.Na();g&&a.U(g,1)};a.t=a.track=function(b,c){c&&a.U(c);a.da=!0;a.isReadyToTrack()?null!=a.j&&0a.P&&a.hb(a.g),a.xa(500);else{var b=a.$b();\nif(0=a.offlineThrottleDelay)return 0;b=a.B()-a.fb;return a.offlineThrottleDelaya.P&&a.hb(a.g);a.ia();a.xa(500)};c.onreadystatechange=function(){4==c.readyState&&(200==c.status?c.T():c.na())};a.fb=a.B();if(1===d)c.send(b);else if(2===d)f=b.indexOf("?"),d=b.substring(0,f),f=b.substring(f+1),f=f.replace(/&callback=[a-zA-Z0-9_.\\[\\]]+/,\n""),c.open("POST",d,!0),c.withCredentials=!0,c.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),c.send(f);else if(c.src=b,3===d){if(a.cb)try{f.removeChild(a.cb)}catch(e){}f.firstChild?f.insertBefore(c,f.firstChild):f.appendChild(c);a.cb=a.A}c.D=setTimeout(function(){c.D&&(c.complete?c.T():(a.trackOffline&&c.abort&&c.abort(),c.na()))},5E3);a.ec=b;a.A=k["s_i_"+a.replace(a.account,",","_")]=c;if(a.useForcedLinkTracking&&a.L||a.bodyClickFunction)a.forcedLinkTrackingTimeout||(a.forcedLinkTrackingTimeout=\n250),a.ja=setTimeout(a.ia,a.forcedLinkTrackingTimeout)};a.Gb=function(b){var c=!1;navigator.sendBeacon&&(a.Ib(b)?c=!0:a.useBeacon&&(c=!0));a.Sb(b)&&(c=!1);return c};a.Ib=function(a){return a&&0a.P||(a.Ba("localStorage"),a.eb=a.B())};a.hb=function(b){a.va()&&(a.jb(),a.Pa("localStorage",b),a.P=a.B())};\na.jb=function(){if(a.trackOffline){if(!a.offlineLimit||0>=a.offlineLimit)a.offlineLimit=10;for(;a.g.length>a.offlineLimit;)a.Xa()}};a.forceOffline=function(){a.ua=!0};a.forceOnline=function(){a.ua=!1};a.ca=function(){return a.storageFilename+"-"+a.visitorNamespace+a.account};a.B=function(){return(new Date).getTime()};a.ab=function(a){a=a.toLowerCase();return 0!=a.indexOf("#")&&0!=a.indexOf("about:")&&0!=a.indexOf("opera:")&&0!=a.indexOf("javascript:")?!0:!1};a.setTagContainer=function(b){var c,d,\nf;a.vc=b;for(c=0;c(""+f[c]).indexOf("s_c_il"))&&(b[c]=f[c]);if(d.mmq)for(c=0;ce)return g;c=d+c.substring(e+1)+d;if(!f||!(0<=c.indexOf(d+b+d)||0<=c.indexOf(d+b+"="+d))){e=c.indexOf("#");0<=e&&(c=c.substr(0,e)+d);e=c.indexOf(d+b+"=");if(0>e)return g;c=c.substring(e+d.length+b.length+1);e=c.indexOf(d);0<=e&&(c=c.substring(0,e));0<\nc.length&&(g=a.unescape(c));return g}},getIeVersion:function(){return document.documentMode?document.documentMode:a.Ia()?7:null}};a.F="supplementalDataID timestamp dynamicVariablePrefix visitorID marketingCloudVisitorID analyticsVisitorID audienceManagerLocationHint authState fid vmk visitorMigrationKey visitorMigrationServer visitorMigrationServerSecure charSet visitorNamespace cookieDomainPeriods fpCookieDomainPeriods cookieLifetime pageName pageURL customerPerspective referrer contextData contextData.cm.ssf contextData.opt.dmp contextData.opt.sell clientHints currencyCode lightProfileID lightStoreForSeconds lightIncrementBy retrieveLightProfiles deleteLightProfiles retrieveLightData".split(" ");\na.i=a.F.concat("purchaseID variableProvider channel server pageType transactionID campaign state zip events events2 products audienceManagerBlob tnt".split(" "));a.ra="timestamp charSet visitorNamespace cookieDomainPeriods cookieLifetime contextData lightProfileID lightStoreForSeconds lightIncrementBy".split(" ");a.Q=a.ra.slice(0);a.Ra="account allAccounts debugTracking visitor visitorOptedOut trackOffline offlineLimit offlineThrottleDelay storageFilename usePlugins doPlugins configURL visitorSampling visitorSamplingGroup linkObject clickObject linkURL linkName linkType trackDownloadLinks trackExternalLinks trackClickMap trackInlineStats linkLeaveQueryString linkTrackVars linkTrackEvents linkDownloadFileTypes linkExternalFilters linkInternalFilters useForcedLinkTracking forcedLinkTrackingTimeout writeSecureCookies decodeLinkParameters useLinkTrackSessionStorage collectHighEntropyUserAgentHints trackingServer trackingServerSecure ssl abort mobile dc lightTrackVars maxDelay expectSupplementalData useBeacon usePostbacks registerPreTrackCallback registerPostTrackCallback bodyClickTarget bodyClickFunction bufferRequests AudienceManagement".split(" ");\nfor(m=0;250>=m;m++)76>m&&(a.i.push("prop"+m),a.Q.push("prop"+m)),a.i.push("eVar"+m),a.Q.push("eVar"+m),6>m&&a.i.push("hier"+m),4>m&&a.i.push("list"+m);m="pe pev1 pev2 pev3 latitude longitude resolution colorDepth javascriptVersion javaEnabled cookiesEnabled browserWidth browserHeight connectionType homepage pageURLRest marketingCloudOrgID ms_a".split(" ");a.i=a.i.concat(m);a.F=a.F.concat(m);a.ssl=0<=k.location.protocol.toLowerCase().indexOf("https");a.charSet="UTF-8";a.contextData={};a.za=["architecture",\n"bitness","model","platformVersion","wow64"];a.writeSecureCookies=!1;a.collectHighEntropyUserAgentHints=!1;a.offlineThrottleDelay=0;a.storageFilename="AppMeasurement.requests";a.R="s_sq";a.fb=0;a.pa=0;a.P=0;a.eb=0;a.linkDownloadFileTypes="exe,zip,wav,mp3,mov,mpg,avi,wmv,pdf,doc,docx,xls,xlsx,ppt,pptx";a.lb="s_cc";a.w=k;a.d=k.document;a.ia=function(){a.ja&&(k.clearTimeout(a.ja),a.ja=q);a.bodyClickTarget&&a.L&&a.bodyClickTarget.dispatchEvent(a.L);a.bodyClickFunction&&("function"==typeof a.bodyClickFunction?\na.bodyClickFunction():a.bodyClickTarget&&a.bodyClickTarget.href&&(a.d.location=a.bodyClickTarget.href));a.bodyClickTarget=a.L=a.bodyClickFunction=0};a.ib=function(){a.b=a.d.body;a.b?(a.u=function(b){var c,d,f,e,g;if(!(a.d&&a.d.getElementById("cppXYctnr")||b&&b["s_fe_"+a._in])){if(a.Ta)if(a.useForcedLinkTracking)a.b.removeEventListener("click",a.u,!1);else{a.b.removeEventListener("click",a.u,!0);a.Ta=a.useForcedLinkTracking=0;return}else a.useForcedLinkTracking=0;a.clickObject=b.srcElement?b.srcElement:\nb.target;try{if(!a.clickObject||a.O&&a.O==a.clickObject||!(a.clickObject.tagName||a.clickObject.parentElement||a.clickObject.parentNode))a.clickObject=0;else{var h=a.O=a.clickObject;a.oa&&(clearTimeout(a.oa),a.oa=0);a.oa=setTimeout(function(){a.O==h&&(a.O=0)},1E4);f=a.Za();a.track();if(f {\n if(pathName.includes(platform)){\n device = platform\n }\n })\n}\n\nfunction _setUpActivationPageTVE() {\n var s=s_gi(s_account)\n s.trackingServer=s_omniServer\n s.trackingServerSecure=s_omniSecureServer\n const days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n const timeEST = this._getDateTimeEST()\n const date = timeEST.getDate() + '-' + (timeEST.getMonth() + 1) + '-' + timeEST.getFullYear()\n const platform = this._isMobile() ? 'Mobile' : 'PC'\n _getDeviceType(window.location.pathname)\n s.pageName = requestorId+'- Watch Full Episodes |'+requestorId+'| Enter your activation code'\n s.contextData['tve.minute'] =\n timeEST.getHours() + ':' + timeEST.getMinutes()\n s.contextData['tve.hour'] = timeEST.getHours()\n s.contextData['tve.day'] = days[timeEST.getDay()]\n s.contextData['tve.date'] = date\n s.contextData['tve.platform'] = platform\n s.contextData['tve.domain'] = window.location.host\n s.contextData['tve.contenthub'] = activationPageTVEContentHub\n s.contextData['tve.app'] = device\n s.contextData['tve.clientlessdevice'] = device\n s.contextData['tve.passnetwork'] = requestorId\n s.contextData['tve.network'] = requestorId\n}\n\nfunction _trackPage(pageName) {\n _setUpActivationPageTVE()\n if (pageName) {\n s.pageName = pageName\n }\n if (s.contextData['tve.contenthub'] != activationPageTVEContentHub) {\n Object.keys(s.contextData).forEach((key) => {\n if (key === 'tve.pass') {\n delete s?.contextData[key]\n }\n })\n }\n s.linkTrackEvents = ''\n s.linkTrackVars = ''\n s.events = ''\n s.linkTrackEvents = ''\n s.t()\n}\n\nfunction _updateContextData(additionalVars) {\n var keys = '';\n s.contextData = {...s.contextData, ...additionalVars}\n Object.keys(additionalVars).forEach(key => keys = ',contextData.' + key)\n return keys;\n}\n\nfunction _trackEvent(events, linkName, linkVars) {\n _setUpActivationPageTVE()\n if (linkName.endsWith(\"Selected\")){\n const brand = window.location.href.includes('ms.now') ? 'MSNOW' : 'CNBC'\n s.pageName = brand+\":PC:\" + s.pageName\n }\n s.events = events\n s.linkTrackEvents = events\n s.linkTrackVars = linkVars + ',contextData.tve.minute,contextData.tve.hour,contextData.tve.day,contextData.tve.date,contextData.tve.platform,contextData.tve.domain,contextData.tve.app,contextData.tve.passnetwork,contextData.tve.network'\n s.pev2 = linkName\n s.tl(true, 'o', linkName)\n}\n\nfunction _trackAuthEvents(eventType, mvpd_id, additionalVars) {\n s.contextData = {};\n s.contextData['tve.app'] = 'website'\n var platform = _isMobile() ? 'Mobile' : 'PC'\n\n if(additionalVars) {\n additionalKeys = _updateContextData(additionalVars);\n }\n\n s.contextData['tve.contenthub'] = activationPageTVEContentHub\n s.contextData['tve.passnetwork'] = requestorId\n s.contextData['tve.network'] = requestorId\n s.contextData['tve.clientlessdevice'] = device\n\n switch (eventType) {\n case activationPageTrackingEvents.MVPD_SELECTION: {\n s.contextData['tve.passmvpdselector'] = 'true'\n s.contextData['tve.title'] = 'Open MVPD Selector'\n s.contextData['tve.network'] = requestorId;\n _trackPage(requestorId + ':' + platform + ':Pass:' + 'Open MVPD Selector')\n break\n }\n case activationPageTrackingEvents.MVPD_SELECTED: {\n s.contextData['tve.passselected'] = 'true'\n s.contextData['tve.passmvpd'] = mvpd_id\n s.contextData['tve.platform'] = platform;\n s.contextData['tve.domain'] = window.location.host\n _trackEvent('', mvpd_id + ' Selected', 'contextData.tve.platform,contextData.tve.domain,contextData.tve.passselected,contextData.tve.passmvpd,contextData.tve.passnetwork,contextData.tve.network')\n break\n }\n case activationPageTrackingEvents.PASS_SIGNIN: {\n s.contextData['tve.passsignin'] = 'true'\n s.contextData['tve.passmvpd'] = mvpd_id;\n s.contextData['tve.title'] = 'Provider Sign-In'\n s.contextData['tve.network'] = requestorId\n _trackPage(requestorId + ':' + platform + ':Pass:Provider Sign-In')\n break\n }\n }\n}\n\nfunction _trackDeviceActivationPageLoadEvent(eventType) {\n _setUpActivationPageTVE()\n switch (eventType) {\n case 'clientlessActivationScreen': {\n s.pageName = `${requestorId}:home:${s.pageName}`\n s.contextData['tve.passactivation'] = 'true'\n s.contextData['tve.title'] =\n 'Clientless Activation Page'\n break\n }\n case 'clientlessConfirmationScreen': {\n s.pageName = `${requestorId}:home:${s.pageName}`\n s.contextData['tve.passconfirmation'] = 'true'\n s.contextData['tve.title'] = 'Confirmation Screen'\n break\n }\n }\n s.linkTrackEvents = ''\n s.linkTrackVars = ''\n s.events = ''\n s.linkTrackEvents = ''\n s.t()\n }\n\nfunction _getDateTimeEST() {\n const HOURS_OFFSET = -18000000,\n clientDate = new Date(),\n utc = clientDate.getTime() + clientDate.getTimezoneOffset() * 60000\n\n return new Date(utc + HOURS_OFFSET)\n}\n\nfunction _isMobile() {\n if (\n navigator.userAgent.match(/Android/i) ||\n navigator.userAgent.match(/webOS/i) ||\n navigator.userAgent.match(/iPhone/i) ||\n navigator.userAgent.match(/iPad/i) ||\n navigator.userAgent.match(/iPod/i) ||\n navigator.userAgent.match(/BlackBerry/i) ||\n navigator.userAgent.match(/Windows Phone/i)\n ) {\n return true\n } else {\n return false\n }\n}\n\nfunction initializeCnbcScrollDepthTracking(s) {\n if (!s || typeof s.tl !== 'function') {\n console.warn('[CNBC ScrollDepth] init skipped: AppMeasurement unavailable');\n return;\n }\n\n var pageId = s.pageName || window.location.href;\n window.__CNBC_SCROLL_DEPTH = window.__CNBC_SCROLL_DEPTH || {\n pageId: '',\n fired: { '25': false, '50': false, '75': false, '100': false },\n };\n\n var state = window.__CNBC_SCROLL_DEPTH;\n if (state.pageId !== pageId) {\n state.pageId = pageId;\n state.fired = { '25': false, '50': false, '75': false, '100': false };\n }\n\n function getScrollPercent() {\n var doc = document.documentElement;\n var body = document.body;\n var scrollTop = window.pageYOffset || doc.scrollTop || body.scrollTop || 0;\n var docHeight = Math.max(\n body.scrollHeight || 0,\n doc.scrollHeight || 0,\n body.offsetHeight || 0,\n doc.offsetHeight || 0,\n body.clientHeight || 0,\n doc.clientHeight || 0\n );\n var winHeight = window.innerHeight || doc.clientHeight || body.clientHeight || 0;\n var maxScrollable = docHeight - winHeight;\n\n if (maxScrollable <= 0) {\n return 100;\n }\n\n var pct = Math.round((scrollTop / maxScrollable) * 100);\n if (pct < 0) {\n return 0;\n }\n if (pct > 100) {\n return 100;\n }\n return pct;\n }\n\n function sendScrollMilestone(milestone, currentPercent) {\n try {\n if (!s.contextData) {\n s.contextData = {};\n }\n\n // Launch direct-call hook (if a matching direct call rule exists).\n if (window._satellite && typeof window._satellite.track === 'function') {\n window._satellite.track('scrollingUpdate', {\n milestone: milestone,\n percent: currentPercent,\n pageName: state.pageId,\n });\n }\n\n var originalLinkTrackVars = s.linkTrackVars;\n var originalLinkTrackEvents = s.linkTrackEvents;\n var originalEvents = s.events;\n\n s.contextData['cnbc.scrollmilestone'] = String(milestone);\n s.contextData['cnbc.scrolldepth'] = String(currentPercent);\n s.contextData['cnbc.scrollpage'] = state.pageId;\n\n s.linkTrackVars = 'contextData.cnbc.scrollmilestone,contextData.cnbc.scrolldepth,contextData.cnbc.scrollpage';\n s.linkTrackEvents = '';\n s.events = '';\n\n console.log('[CNBC ScrollDepth] sending milestone', {\n milestone: milestone,\n percent: currentPercent,\n pageName: state.pageId,\n });\n\n s.tl(true, 'o', 'Scroll Depth ' + milestone + '%', null, 'navigate');\n\n console.log('[CNBC ScrollDepth] milestone fired', {\n milestone: milestone,\n percent: currentPercent,\n pageName: state.pageId,\n });\n\n delete s.contextData['cnbc.scrollmilestone'];\n delete s.contextData['cnbc.scrolldepth'];\n delete s.contextData['cnbc.scrollpage'];\n\n s.linkTrackVars = originalLinkTrackVars;\n s.linkTrackEvents = originalLinkTrackEvents;\n s.events = originalEvents;\n\n // Amplitude \u2014 fires after Adobe; queued if SDK not ready (Rule 25 bridge).\n if (typeof window.cnbcAmplitudeLogEvent === 'function') {\n window.cnbcAmplitudeLogEvent('Scroll Depth ' + milestone + '%', {\n 'scroll milestone': String(milestone),\n 'scroll depth percent': currentPercent,\n 'page name': state.pageId,\n Platform: 'web',\n 'event category': 'Engagement',\n });\n }\n } catch (err) {\n console.error('[CNBC ScrollDepth] failed to send milestone', err);\n if (window._satellite && window._satellite.logger && typeof window._satellite.logger.error === 'function') {\n window._satellite.logger.error('Failed while sending scroll milestone', err);\n }\n }\n }\n\n function onScrollUpdate() {\n var percent = getScrollPercent();\n var milestones = [25, 50, 75, 100];\n\n for (var i = 0; i < milestones.length; i++) {\n var m = milestones[i];\n if (percent >= m && !state.fired[String(m)]) {\n state.fired[String(m)] = true;\n sendScrollMilestone(m, percent);\n }\n }\n }\n\n if (!window.__CNBC_SCROLL_DEPTH_LISTENER_BOUND) {\n window.addEventListener('scroll', onScrollUpdate, { passive: true });\n window.__CNBC_SCROLL_DEPTH_LISTENER_BOUND = true;\n console.log('[CNBC ScrollDepth] listener attached');\n }\n\n // Fire initial check so 100% on short (non-scrollable) pages is captured.\n onScrollUpdate();\n console.log('[CNBC ScrollDepth] initialized', { pageName: state.pageId });\n}\n\n\n//Omni Execute\nwindow.__cnbcAdobePageHitFired = window.__cnbcAdobePageHitFired || false;\n\nwindow._executeOmniture = function(executeOptions) {\n executeOptions = executeOptions || {};\n\n if (executeOptions.source === 'initial' && window.__cnbcAdobePageHitFired) {\n return;\n }\n\n if (typeof window.__cnbcSyncAdobeOptInFromOneTrust === 'function') {\n window.__cnbcSyncAdobeOptInFromOneTrust();\n }\n var s=s_gi(s_account)\n \n // Clear any amplitude variation data from previous link calls to prevent bleeding into page calls\n if (s.contextData && s.contextData['cnbc.variation']) {\n s.contextData['cnbc.variation'] = '';\n delete s.contextData['cnbc.variation'];\n }\n if (s.contextData && s.contextData['cnbc.action']) {\n s.contextData['cnbc.action'] = '';\n delete s.contextData['cnbc.action'];\n }\n \n s.visitorNamespace=\"fandangollc\"\n s.trackingServer=s_omniServer\n s.trackingServerSecure=s_omniSecureServer\n s.linkInternalFilters=s_linkInternalFilters;\n s.trackDownloadLinks=true\n s.trackExternalLinks=true\n s.trackInlineStats=true\n s.linkDownloadFileTypes=\"exe,zip,wav,mp3,mov,mpg,avi,wmv,doc,pdf,xls,widget\"\n s.linkLeaveQueryString=false\n\n var visitor = Visitor.getInstance('8CF467C25245AE3F0A490D4C@AdobeOrg', { trackingServer: s.trackingServer, trackingServerSecure: s.trackingServerSecure });\n s.visitor = visitor;\n\n /* Plugin Config */\n s.usePlugins=true\n function s_doPlugins(s) {\n /* Add calls to plugins here */\n //Time Parting\n //time parting configuration\n s._tpDST = {\n 2012: '3/11,11/4',\n 2013: '3/10,11/3',\n 2014: '3/9,11/2',\n 2015: '3/8,11/1',\n 2016: '3/13,11/6',\n 2017: '3/12,11/5',\n 2018: '3/11,11/4',\n 2019: '3/10,11/3',\n 2020: '3/8,11/1',\n 2021: '3/14,11/7',\n 2022: '3/13,11/6',\n 2023: '3/12,11/5',\n 2024: '3/10,11/3',\n 2025: '3/9,11/2',\n 2026: '3/8,11/1',\n 2027: '3/14,11/7',\n 2028: '3/12,11/5',\n };\n var tpA = s.getTimeParting('n', '-5');\n s.contextData['cnbc.hour'] = tpA[1]; // Set hour\n s.contextData['cnbc.day'] = tpA[2]; // Set day\n s.contextData['cnbc.daytype'] = tpA[3]; // Set day type\n s.contextData['cnbc.mid'] = visitor.getMarketingCloudVisitorID();\n\n // OneTrust active consent groups\n s.contextData['cnbc.oneTrustActiveGroups'] =\n typeof window.OptanonActiveGroups === 'string' &&\n window.OptanonActiveGroups.length > 0\n ? window.OptanonActiveGroups.replace(/^,|,$/g, '')\n : 'NA';\n\n if (s.linkType) {\n var consentContextVariable =\n 'contextData.cnbc.oneTrustActiveGroups';\n\n if (\n !s.linkTrackVars ||\n s.linkTrackVars === 'None'\n ) {\n s.linkTrackVars = consentContextVariable;\n } else {\n s.linkTrackVars = s.apl(\n s.linkTrackVars,\n consentContextVariable,\n ',',\n 2\n );\n }\n }\n // end of OneTrust active consent groups\n\n //new repeat\n s.contextData['cnbc.newrepmon'] = s.getNewRepeat(30, 's_getNewRepeat30');\n s.contextData['cnbc.newrep90'] = s.getNewRepeat(90, 's_getNewRepeat90');\n\n //monthly visit number\n s.contextData['cnbc.sessionnumber'] = s.getVisitNum('m', 's_vmonthnum', 's_monthinvisit');\n\n //days since last visit\n s.contextData['cnbc.dayslastvisit'] = s.getDaysSinceLastVisit('s_lv');\n\n // Scroll depth captured by AppMeasurement getPercentPageViewed plugin\n // and forwarded as a context variable for reporting.\n if (typeof s.getPercentPageViewed === 'function') {\n var scrollDepth = s.getPercentPageViewed();\n if (scrollDepth || scrollDepth === 0) {\n s.contextData['cnbc.scrolldepth'] = String(scrollDepth);\n }\n }\n\n //Read linktrk cookie\n if (!s.Util.cookieRead('linktrk')) {\n s.Util.cookieWrite('linktrk', '', 0);\n } else {\n s.contextData['cnbc.trknav'] = s.Util.cookieRead('linktrk');\n s.Util.cookieWrite('linktrk', '', 0);\n }\n\n //Auto Link Tracking\n if (!!(navigator.userAgent.match(/Trident/) && !navigator.userAgent.match(/MSIE/))) {\n s.hbx_lt = 'auto';\n s.setupLinkTrack(',propLT,,propLP', 'SC_LINKS');\n s.contextData['cnbc.trknav'] = s.propLT;\n }\n\n //MPS customObj for Adobe Audience Manager DIL\n //Needs to be loaded before DIL code\n if (typeof mps != 'undefined') {\n mps._datamapValue = function (a, d) {\n d = d || mps.pagevars.instance;\n if (!mps.pagevars) return !1;\n if (!mps.datamaps || !mps.datamaps[a])\n return mps._d('[mps/datamaps] FAILED - Data mapping set does not exist: ' + a), !1;\n var b = d ? d : mps.pagevars.instance;\n if (b && 'automagic' != b && mps.datamaps[a][b]) return mps.datamaps[a][d];\n var b = window.location.host.split('.'),\n c = b.pop(),\n c = b.pop() + '.' + c;\n b.reverse();\n if (mps.datamaps[a][c]) return mps.datamaps[a][c];\n for (var e = 0; e < b.length; e++)\n if (((c = b[e] + '.' + c), mps.datamaps[a][c])) return mps.datamaps[a][c];\n mps._l('[mps/datamaps] FAILED - Data mapping value for [' + a + '] does not exist on: ' + d);\n return !1;\n };\n\n mps.aam = mps.aam || {};\n\n mps.aam.INIT = function () {\n /*--[ CONFIGURATION ]------------------------------------------------*/\n mps.aam._scripts = {\n example: mps._protocol() + '//site.com/example.js',\n };\n\n mps.aam._opts = {\n visitornamespace: '8CF467C25245AE3F0A490D4C@AdobeOrg',\n };\n\n this._visitorns = mps._datamapValue('adobeorg');\n if (this._visitorns) mps.aam._opts.visitornamespace = this._visitorns;\n\n mps.aam._conf = {\n missingval: 'UNKNOWN',\n rootpage: { type: 'home', cat: 'home' },\n cleanregex: /[^-a-z0-9_~. \\s]/gi,\n maxlength: 25,\n };\n\n mps.aam.site = mps.pagevars?.instance;\n mps.aam.brand = mps.pagevars?.instance?.split('-')[0];\n\n mps.aam._status = 0;\n if (typeof (mps.aam.opts == 'object')) mps._merge(mps.aam._opts, mps.aam.opts);\n if (typeof (mps.aam.conf == 'object')) mps._merge(mps.aam._conf, mps.aam.conf);\n this.cd = {};\n this._data = {};\n\n mps.aam.defineData = function () {\n this._data.cid = mps.pagevars?.cid;\n this._data.cat = mps.pagevars?.cats;\n this._data.type = mps.pagevars?.type;\n this._data.mpspath = mps._trim(mps.pagevars?.path, '/').split('/');\n this._data.pathsegs = mps._trim(window.location.pathname, '/').split('/');\n this._data.hostsegs = window.location.host.split('.');\n // handle path prefix format\n if (this._data.mpspath[0].indexOf(':') > -1) {\n var _seg = this._data.mpspath[0].split(':');\n this._data.pathprefix = _seg[0];\n if (_seg[1] == '') {\n this._data.mpspath.shift();\n } else {\n this._data.mpspath[0] = _seg[1];\n }\n }\n this._data.pageinfo = {};\n if (mpscall.is_content === 0 || mpscall.is_content === '0') this._data.pageinfo.notcontent = 1;\n if (mpscall.is_content === 1 || mpscall.is_content === '1') this._data.pageinfo.iscontent = 1;\n if (this._data.mpspath === 0) {\n this._data.pageinfo.home = 1;\n if (this._data.cat.length === 0) this._data.cat.push(this._conf.rootpage.cat);\n if (this._data.type == '') this._data.type = this._conf.rootpage.cat(type);\n }\n this._l('executed: defineData');\n return this._data;\n };\n\n mps.aam.setData = function () {\n // set nbcu context data variables\n this.cd['nbcu_brand'] = mps.aam.brand;\n this.cd['nbcu-' + mps.aam.brand + '-contenttype'] = mps.pagevars?.type ? mps.pagevars.type : 'page';\n this.cd['nbcu_cleantitle'] = mps.aam._clean(window.document.title, 50).replace(/\\s\\s+/g, ' ');\n // set mps context data variables\n this.cd['mps_contentid'] = this._data.cid;\n this.cd['mps_path'] = mps.pagevars?.path;\n if (mps._ext && mps._ext._insertedads)\n this.cd['mps-' + mps.aam.brand + '-cats'] = this._data.cat.join('|');\n for (var i = 0; i < this._data.cat.length; i++) {\n this.cd['mps-' + mps.aam.brand + '-cat' + (i + 1)] = this._data.cat[i];\n }\n if (mps.pagevars?.dart_mode) this.cd['mps_admode'] = mps.pagevars.dart_mode;\n if (mps._ext && mps._ext._insertedads) this.cd['mps_adsinserted'] = mps._ext._insertedads;\n if (mps.pagevars?.dart_lazy_load) this.cd['mps_adlazyload'] = mps.pagevars.dart_lazy_load;\n if (mps._ab && mps._ab.run && typeof adBlockEnabled != 'undefined')\n this.cd['mps_adblock'] = adBlockEnabled ? 1 : 0;\n if (typeof mps.pagevars?.cags == 'object') {\n for (var i in mps.pagevars.cags) {\n this.cd['mps_cag-' + mps.aam.brand + '-' + i] = mps.pagevars.cags[i];\n }\n }\n if (typeof mps.pagevars?.fields == 'object') {\n for (var i in mps.pagevars.fields) {\n this.cd['mps_field-' + mps.aam.brand + '-' + i] = mps.pagevars.fields[i];\n }\n }\n if (mps.pagevars.freewheel_section) this.cd['mps_fwssid'] = mps.pagevars.freewheel_section;\n if (typeof mps._loadset == 'number') this.cd['mps_loadset'] = mps._loadset;\n if (mps.response && mps.response.page) {\n if (mps.response.page.gpt_adid) this.cd['mps_adunitid'] = mps.response.page.gpt_adid;\n if (mps.response.page.package) this.cd['mps_packageid'] = mps.response.page.package;\n }\n if (mps.pagevars.ref) this.cd['mps_refdomain'] = mps.pagevars.ref;\n this.cd['pagename'] =\n mps.aam.cd['nbcu_brand'] +\n '|' +\n mps.aam.cd['nbcu-' + mps.aam.brand + '-contenttype'] +\n '|' +\n mps.aam.cd['mps-' + mps.aam.brand + '-cat1'] +\n '|' +\n mps.aam.cd['mps_contentid'] +\n '|' +\n this.cd['nbcu_cleantitle'];\n this._l('executed: setData');\n return this.cd;\n };\n mps.aam.customObj = {};\n mps.aam._applyData = function () {\n var _set = {};\n // merge mps.data if previously set\n if (typeof mps.data == 'object' && mps._keys(mps.data).length > 0)\n this.cd = mps._merge(this.cd, mps.data);\n for (var i in this.cd) {\n var _cdval = this.cd[i];\n var _isarr = 0;\n if (typeof _cdval == 'boolean') _cdval = _cdval + 0;\n if (typeof _cdval == 'number') _cdval = _cdval.toString();\n if (Object.prototype.toString.call(this.cd[i]) === '[object Array]') {\n _cdval.sort();\n _isarr = 1;\n //_cdval=_cdval.join(',');\n }\n if (typeof _cdval != 'string' && !_isarr) {\n this._l('(skipped applyData: ' + i + ')');\n continue;\n }\n _set[i] = _cdval;\n this.customObj[i] = _cdval;\n }\n this._l('executed: applyData');\n };\n\n mps.aam._status = 1;\n this._l('INITIALIZED');\n return mps.aam._status;\n };\n\n /*--[ INTERNAL ]------------------------------------------------*/\n mps.aam._clean = function (str, maxlength, nospaces, lowercase) {\n if (typeof maxlength == 'undefined' && this._conf && this._conf.maxlength > 0)\n maxlength = this._conf.maxlength;\n if (typeof str == 'boolean') str = str + 0;\n if (typeof str == 'number') str = str.toString();\n if (typeof str != 'string') return '';\n str = str.replace(this._conf.cleanregex, '');\n if (nospaces) str = str.replace(' ', '');\n if (maxlength) str = str.substring(0, maxlength);\n if (lowercase) str.toLowerCase();\n return str;\n };\n mps.aam._getQS = function () {\n var a;\n (window.onpopstate = function () {\n var b,\n c = /\\+/g,\n d = /([^&=]+)=?([^&]*)/g,\n e = window.location.search.substring(1);\n for (a = {}; (b = d.exec(e)); )\n a[decodeURIComponent(b[1].replace(c, ' '))] = decodeURIComponent(b[2].replace(c, ' '));\n })();\n return a;\n };\n mps.aam._l = function (msg, label) {\n if (typeof msg == 'boolean') msg = msg + 0;\n if (typeof msg == 'number') msg = msg.toString();\n if (typeof msg == 'object') msg = JSON.stringify(msg);\n if (typeof msg != 'string') msg = '<' + typeof msg + '>';\n if ((typeof label != 'string' || label.length == 0) && mps.aam._l.label) label = mps.aam._l.label;\n if (typeof label != 'string') label = '';\n mps._d('\\u2022' + label + '\\u279e ' + msg);\n return msg;\n };\n mps.aam._l.label = '[mps/aam]';\n\n /*--[ EXECUTION ]------------------------------------------------*/\n mps.aam.EXECUTE = function () {\n try {\n this.defineData();\n this.setData();\n this._applyData();\n this._l('EXECUTION COMPLETE');\n this._l(this.customObj);\n return this.customObj;\n } catch (e) {\n mps._d('[mps/aam] ERROR: Custom Object Execution', e);\n return {};\n }\n };\n\n if (mps.aam.INIT()) {\n window.customObj = mps.aam.EXECUTE();\n }\n }\n //Adobe Audience Manager DIL Custom Section\n //DIL instantiation starts. Configurable section below\n // var nbcuDil = DIL.create({\n // partner: 'nbcu',\n // containerNSID: 0,\n // //useJSONPOnly: true, removed due to JSONP requests failing w/ large URIs (414 URI Too Long)\n // uuidCookie: {\n // name: 'aam_uuid',\n // days: 30,\n // },\n // });\n // if (typeof customObj != 'undefined') {\n // //Object is present, submit data\n // var nbcuDilInstance = DIL.getDil('nbcu');\n // nbcuDilInstance.api.signals(customObj, 'c_');\n // }\n // //SC object Instantiation\n // if (typeof s != 'undefined' && s === Object(s) && typeof s.account != 'undefined' && s.account) {\n // _scDilObj = s_gi(s.account);\n // } else {\n // _scDilObj = s_gi(s_account);\n // }\n\n //SC Object Data Collection\n // DIL.modules.siteCatalyst.init(_scDilObj, nbcuDil, {\n // names: [\n // 'pageName',\n // 'channel',\n // 'campaign',\n // 'products',\n // 'events',\n // 'pe',\n // 'referrer',\n // 'server',\n // 'purchaseID',\n // 'zip',\n // 'state',\n // ],\n // iteratedNames: [\n // {\n // name: 'eVar',\n // maxIndex: 75,\n // },\n // {\n // name: 'prop',\n // maxIndex: 75,\n // },\n // {\n // name: 'pev',\n // maxIndex: 3,\n // },\n // {\n // name: 'hier',\n // maxIndex: 4,\n // },\n // ],\n // });\n\n //DIL instantiation ends\n }\n s.doPlugins = s_doPlugins;\n\n //write linktrk cookie, expires on session\n function linkTrkCookie(linkValue) {\n s.Util.cookieWrite('linktrk', linkValue, 0);\n }\n\n //write bedrocktrk cookie, expires in 3 months\n function bedrockTrkCookie(bedrockValue) {\n var bedrockTrkDate = new Date();\n bedrockTrkDate.setMonth(bedrockTrkDate.getMonth() + 3);\n s.Util.cookieWrite('bedrocktrk', bedrockValue, bedrockTrkDate);\n }\n\n /************************** PLUGINS SECTION *************************/\n\n /*\n *Replace plugin utility\n */\n s.repl=new Function(\"x\",\"o\",\"n\",\"\"\n +\"var i=x.indexOf(o),l=n.length;while(x&&i>=0){x=x.substring(0,i)+n+x.\"\n +\"substring(i+o.length);i=x.indexOf(o,i+l)}return x\");\n\n /*\n *Gets the AAM segments out of a cookie. Requires replace (repl) *\n */\n s.getAamSegments=new Function(\"a\",\"b\",\"\"\n +\"var s=this;var c=s.c_r(a);if(c){c=s.repl(c,b+'=','');}ret\"\n +\"urn c\");\n\n /*\n * Plugin: Days since last Visit 1.1 - capture time from last visit\n */\n s.getDaysSinceLastVisit=new Function(\"c\",\"\"\n +\"var s=this,e=new Date(),es=new Date(),cval,cval_s,cval_ss,ct=e.getT\"\n +\"ime(),day=24*60*60*1000,f1,f2,f3,f4,f5;e.setTime(ct+3*365*day);es.s\"\n +\"etTime(ct+30*60*1000);f0='Cookies Not Supported';f1='First Visit';f\"\n +\"2='More than 30 days';f3='More than 7 days';f4='Less than 7 days';f\"\n +\"5='Less than 1 day';cval=s.c_r(c);if(cval.length==0){s.c_w(c,ct,e);\"\n +\"s.c_w(c+'_s',f1,es);}else{var d=ct-cval;if(d>30*60*1000){if(d>30*da\"\n +\"y){s.c_w(c,ct,e);s.c_w(c+'_s',f2,es);}else if(d<30*day+1 && d>7*day\"\n +\"){s.c_w(c,ct,e);s.c_w(c+'_s',f3,es);}else if(d<7*day+1 && d>day){s.\"\n +\"c_w(c,ct,e);s.c_w(c+'_s',f4,es);}else if(dds&&dde||d=12){U='PM';H=H-12;}if(H==0){H=12;}if(D==6||D==0){W='Wee\"\n +\"kend';}D=da[D];tm=H+':'+M+U;tt=H+':'+((M>30)?'30':'00')+U;a=[tm,tt,\"\n +\"D,W];return a;}\");\n\n /*\n * Utility Function: split v1.5 (JS 1.0 compatible)\n */\n s.split=new Function(\"l\",\"d\",\"\"\n +\"var i,x=0,a=new Array;while(l){i=l.indexOf(d);i=i>-1?i:l.length;a[x\"\n +\"++]=l.substring(0,i);l=l.substring(i+d.length);}return a\");\n\n /*\n * Plugin Utility: apl v1.1\n */\n s.apl=new Function(\"l\",\"v\",\"d\",\"u\",\"\"\n +\"var s=this,m=0;if(!l)l='';if(u){var i,n,a=s.split(l,d);for(i=0;i-1?c.split(\"\n +\"',',10):[''],l=a.length,i;a[0]=unescape(a[0]);r=r||(n&&n!=a[0])||0;\"\n +\"a.length=10;if(typeof a[0]!='string')a[0]='';for(i=1;i<10;i++)a[i]=\"\n +\"!r&&i0&&b>0?M.round(C*b/h):0,O=W.orientation,o=!isNaN(O)?M.abs(o)%180\"\n +\":Y>X?0:90,L=e=='load'||s_PPVi<1,a=s.s_PPVg(s_PPVid,L),V=function(i,\"\n +\"v,f,n){i=parseInt(typeof a==J&&a.length>i?a[i]:'0')||0;v=typeof v!=\"\n +\"N?i:v;v=f||v>i?v:i;return n?v:v>C?C:v<0?0:v};if(new RegExp('(iPod|i\"\n +\"Pad|iPhone)').exec(navigator.userAgent||'')&&o){o=x;x=y;y=o}o=o?'P'\"\n +\":'L';a[9]=L?'':a[9].substring(0,1);s.c_w('s_ppv',escape(W.s_PPVid)+\"\n +\"','+V(1,p,L)+','+(L||!V(2)?p:V(2))+','+V(3,b,L,1)+','+X+','+Y+','+x\"\n +\"+','+y+','+r+','+a[9]+(a[9]==o?'':o))}if(!W.s_PPVt&&e!='unload')W.s\"\n +\"_PPVt=setTimeout(W.s_PPVevent,333)};for(var f=W.s_PPVevent,i=0;i-1){s.lta[3]=b.match('\\&lpos\\=([^\\&\"\n +\"]*)')[1];}if(b.indexOf('&lid=')>-1){s.lta[1]=b.match('\\&lid\\=([^\\&]\"\n +\"*)')[1];}}}if(typeof s.lta[1]=='undefined'&&s.hbx_lt!='manual'){if(\"\n +\"s.linkName!=0){s.lta[1]=s.linkName;}else if(s.linkObject!=0){if(s.c\"\n +\"leanStr(s.linkObject.innerHTML).length>0){s.lta[1]=s.cleanStr(s.lin\"\n +\"kObject.innerHTML);}else if(s.linkObject.innerHTML.indexOf('
\"\n +\"-1){if(s.linkObject.innerHTML.indexOf('alt=')>-1){s.lta[1]=s.linkOb\"\n +\"ject.innerHTML.match('alt=\\\"([^\\\"]*)')[1];}else{s.lta[1]=s.linkObject\"\n +\".innerHTML.match('src=\\\"([^\\\"]*)')[1]}}else{s.lta[1]=s.linkObject.inn\"\n +\"erHTML;}}}try{if(typeof s.trackLinkModule(s.linkObject)!='undefined\"\n +\"'){s.lta[3]=s.trackLinkModule(s.linkObject);}}catch(e){}if(s.lta[1]\"\n +\"!=null&&typeof s.lta[1]!='undefined'){if(typeof s.pageName!='undefi\"\n +\"ned')s.lta[0]=s.pageName;s.lta[2]=s.pageName+' | '+s.lta[1];}}if(s.\"\n +\"linkType!=0){for(var x=0;x]+(>|$)/g, ''); //removes HTML characters\n a = a.replace(/^\\s+|\\s+$/g, ''); //removes whitespace\n a = a.replace(/[\\u2018\\u2019\\u201A]/g, \"\\'\"); //removes unicode characters\n a = a.replace(/\\t+/g, ''); //removes tab characters\n a = a.replace(/(\\r\\n|\\n|\\r)/gm,''); //removes newline characters\n return a; //returns the cleansed string\n }\n }\n }\n\n var ALPHA_NUM_REGEX = /[^a-z0-9 ]+/gi;\n var SPACE_FORMAT_REGEX = /\\s\\s+/g;\n\n\n s.pageName = (!__CNBC_META_DATA.pageName) ? ('NA') : (__CNBC_META_DATA.pageName);\n s.pageURL=window.location.toString();\n if (__CNBC_META_DATA.id === '100' && currentURL.includes('watchlist/#!/watchlist') && !currentURL.includes('news')) {\n s.pageName = 'Watchlist List';\n } else if (__CNBC_META_DATA.id === '100' && currentURL.includes('news')) {\n s.pageName = 'Watchlist News';\n } else if (__CNBC_META_DATA.id === '100') {\n s.pageName = 'Watchlist Dashboard'; \n }\n\n if (__CNBC_META_DATA.id === '100' && typeof __CNBC_META_DATA.watchlistPageLoaded == 'undefined') {\n s.pageName = 'Investing Tools|Watchlist|Ignore';\n }\n\n s.pageURL = window.location.toString();\n\n //referrer work around begins\n window.__CNBC_Settings = window.__CNBC_Settings || {};\n if (!window.__CNBC_Settings.loaded) {\n window.__CNBC_Settings.referrer = document.referrer;\n }\n window.__CNBC_Settings.loaded = true;\n s.referrer = window.__CNBC_Settings.referrer;\n window.__CNBC_Settings.referrer = location.href;\n //referrer work around ends\n\n var isInvestingClubContent = false;\n var isPlusContent = false;\n var isRegisteredOnly = false;\n\n if (__CNBC_META_DATA && __CNBC_META_DATA.contentClassification && __CNBC_META_DATA.contentClassification.includes('investingClub')) {\n isInvestingClubContent = true;\n }\n\n if (__CNBC_META_DATA && __CNBC_META_DATA.contentClassification && __CNBC_META_DATA.contentClassification.includes('registeredOnly')) {\n isRegisteredOnly = true;\n }\n\n if (__CNBC_META_DATA && __CNBC_META_DATA.contentClassification && __CNBC_META_DATA.contentClassification.includes('cnbcplus')) {\n isPlusContent = true;\n }\n\n s.contextData['cnbc.pageURL'] = location.href;\n s.contextData['cnbc.cleanurl'] = location.host + location.pathname;\n s.contextData['cnbc.tags'] = (!__CNBC_META_DATA.relatedTagsFilteredFormatted) ? ('NA') : (__CNBC_META_DATA.relatedTagsFilteredFormatted);\n s.contextData['cnbc.project'] = (!__CNBC_META_DATA.projectContentFormatted) ? ('NA') : (__CNBC_META_DATA.projectContentFormatted);\n s.contextData['cnbc.team'] = (!__CNBC_META_DATA.projectTeamContentFormatted) ? ('NA') : (__CNBC_META_DATA.projectTeamContentFormatted);\n s.contextData['cnbc.template'] = (!__CNBC_META_DATA.template) ? ('NA') : (__CNBC_META_DATA.template);\n s.contextData['cnbc.brand'] = (!__CNBC_META_DATA.brand) ? ('NA') : (__CNBC_META_DATA.brand);\n\n // assetstatus\n if (__CNBC_META_DATA.premium == true) {\n s.contextData['cnbc.assetstatus'] = 'Premium';\n }\n else if (isInvestingClubContent) {\n s.contextData['cnbc.assetstatus'] = 'investingclub';\n }\n else if (isPlusContent) {\n s.contextData['cnbc.assetstatus'] = 'plus';\n }\n else if (isRegisteredOnly) {\n s.contextData['cnbc.assetstatus'] = 'registeredonly';\n }\n else {\n s.contextData['cnbc.assetstatus'] = 'Unrestricted';\n }\n\n s.contextData['cnbc.contenttype'] = (!__CNBC_META_DATA.type) ? ('NA') : (__CNBC_META_DATA.type);\n s.contextData['cnbc.section'] = 'NA';\n if (s.contextData['cnbc.contenttype'] == 'franchise'){\n s.contextData['cnbc.section'] = (__CNBC_META_DATA.tagName.replace(ALPHA_NUM_REGEX, '').replace(SPACE_FORMAT_REGEX, ' ').trim());\n } else if (__CNBC_META_DATA.section && __CNBC_META_DATA.section.tagName) {\n s.contextData['cnbc.section'] = (__CNBC_META_DATA.section.tagName.replace(ALPHA_NUM_REGEX, '').replace(SPACE_FORMAT_REGEX, ' ').trim());\n }\n //s.contextData['cnbc.sectiontype'] = (!__CNBC_META_DATA.section || !__CNBC_META_DATA.section.subType) ? (\"NA\") : (__CNBC_META_DATA.section.subType);\n if (s.contextData['cnbc.contenttype'] == 'franchise'){\n s.contextData['cnbc.sectiontype'] = __CNBC_META_DATA.subType;\n } else if (__CNBC_META_DATA.section && __CNBC_META_DATA.section.tagName) {\n s.contextData['cnbc.sectiontype'] = (!__CNBC_META_DATA.section || !__CNBC_META_DATA.section.subType) ? ('NA') : (__CNBC_META_DATA.section.subType);\n }\n s.contextData['cnbc.creator'] = (!__CNBC_META_DATA.authorFormatted) ? ('NA') : (__CNBC_META_DATA.authorFormatted);\n s.contextData['cnbc.hier1'] = (!__CNBC_META_DATA.sectionHierarchy[0]) ? ('NA') : (__CNBC_META_DATA.sectionHierarchy[0].tagNameFormattedFull);\n s.contextData['cnbc.hier2'] = (!__CNBC_META_DATA.sectionHierarchy[1]) ? ('NA') : (__CNBC_META_DATA.sectionHierarchy[1].tagNameFormattedFull);\n s.contextData['cnbc.hier3'] = (!__CNBC_META_DATA.sectionHierarchy[2]) ? ('NA') : (__CNBC_META_DATA.sectionHierarchy[2].tagNameFormattedFull);\n s.contextData['cnbc.hier4'] = (!__CNBC_META_DATA.sectionHierarchy[3]) ? ('NA') : (__CNBC_META_DATA.sectionHierarchy[3].tagNameFormattedFull);\n s.contextData['cnbc.hier5'] = (!__CNBC_META_DATA.sectionHierarchy[4]) ? ('NA') : (__CNBC_META_DATA.sectionHierarchy[4].tagNameFormattedFull);\n s.contextData['cnbc.id'] = (!__CNBC_META_DATA.id) ? ('NA') : (__CNBC_META_DATA.id);\n s.contextData['cnbc.source'] = (!__CNBC_META_DATA.sourceOrganizationFormatted) ? ('NA') : (__CNBC_META_DATA.sourceOrganizationFormatted);\n s.contextData['cnbc.firstpubdate'] = (!__CNBC_META_DATA.shortDateFirstPublished) ? ('NA') : (__CNBC_META_DATA.shortDateFirstPublished);\n s.contextData['cnbc.lastpubdate'] = (!__CNBC_META_DATA.shortDateLastPublished) ? ('NA') : (__CNBC_META_DATA.shortDateLastPublished);\n s.contextData['cnbc.dateline'] = (!__CNBC_META_DATA.shortDatePublished) ? ('NA') : (__CNBC_META_DATA.shortDatePublished);\n s.contextData['cnbc.creatoroverwrite'] = (!__CNBC_META_DATA.creatorOverwriteFormatted) ? ('NA') : (__CNBC_META_DATA.creatorOverwriteFormatted);\n s.contextData['cnbc.additionalsections'] = (!__CNBC_META_DATA.additionalSectionContentFormatted) ? ('NA') : (__CNBC_META_DATA.additionalSectionContentFormatted);\n s.contextData['cnbc.platform'] = 'web';\n // usagerule\n if (__CNBC_META_DATA.premium == true){\n s.contextData['cnbc.usagerule'] = 'premium';\n } else if (isInvestingClubContent) {\n s.contextData['cnbc.usagerule'] = 'investingclub';\n } else if (isPlusContent) {\n s.contextData['cnbc.usagerule'] = 'plus';\n } else if (__CNBC_META_DATA.native == true) {\n s.contextData['cnbc.usagerule'] = 'native';\n } else if (isRegisteredOnly) {\n s.contextData['cnbc.usagerule'] = 'registeredonly';\n } else {\n s.contextData['cnbc.usagerule'] = 'NA';\n }\n s.contextData['cnbc.adblock'] = s.Util.cookieRead('__adblocker');\n // if (mps.pagevars.cid != \"100003114\" && mps.pagevars.cid != \"100727362\") {\n // s.contextData['cnbc.variationname'] = s.Util.cookieRead('article_experience');\n // }\n //s.contextData['cnbc.variation'] = (! __CNBC_META_DATA.QuoteTVECTAExperimentVariation) ? (\"NA\") : (__CNBC_META_DATA.QuoteTVECTAExperimentVariation);\n\n //s.contextData['cnbc.variation'] = (!__CNBC_META_DATA.variation) ? ('NA') : (__CNBC_META_DATA.variation);\n\n\n s.contextData['cnbc.packaging'] = (!__CNBC_META_DATA.packaging) ? ('NA') : (__CNBC_META_DATA.packaging);\n if(mps._ck.r('active_partner_exp')=='xfinity') {\n s.contextData['cnbc.xfinityheader'] = 'true';\n } else if (mps.xfinity && typeof mps.xfinity.checkRef === 'function' && mps.xfinity.checkRef()){\n s.contextData['cnbc.xfinityheader'] = 'true';\n } else {\n s.contextData['cnbc.xfinityheader'] = 'false';\n }\n if (__CNBC_META_DATA.ticker) {\n s.contextData['cnbc.ticker'] = __CNBC_META_DATA.ticker;\n s.contextData['cnbc.tickerinfo'] = __CNBC_META_DATA.tickerInfo;\n }\n if (__CNBC_META_DATA.embeddedContent &&__CNBC_META_DATA.embeddedContent.related.length>0) {\n s.contextData['cnbc.relatedContent'] = 'true';\n }\n else\n {\n s.contextData['cnbc.relatedContent'] = 'NA';\n }\n if (__CNBC_META_DATA.embeddedContent &&__CNBC_META_DATA.embeddedContent.dataviz.length>0) {\n s.contextData['cnbc.dataviz'] = 'true';\n }\n else\n {\n s.contextData['cnbc.dataviz'] = 'NA';\n }\n //s.linkInternalFilters+=\",taboolainternal,cnbcevents.com\";\n s.linkLeaveQueryString=true;\n // paywall\n if (mps.pagevars.type != 'franchise') {\n var isProUser = __CNBC_META_DATA.user && __CNBC_META_DATA.user.isPro;\n var isICUser = __CNBC_META_DATA.user && __CNBC_META_DATA.user.isInvestingClubUser;\n var isBundleUser = __CNBC_META_DATA.user && __CNBC_META_DATA.user.hasPurchasedBundle;\n var isPlusUser = __CNBC_META_DATA.user && __CNBC_META_DATA.user.isPlusUser;\n\n if (__CNBC_META_DATA.premium == true && !isProUser) {\n s.contextData['cnbc.paywall'] = 'true';\n } else if (isInvestingClubContent && !isICUser) {\n s.contextData['cnbc.paywall'] = 'investingclubtrue';\n } else if (isPlusContent && !isPlusUser) {\n s.contextData['cnbc.paywall'] = 'plustrue';\n }\n }\n\n isBundleUser ? s.contextData['cnbc.isBundleuser'] = true : s.contextData['cnbc.isBundleuser'] = 'NA';\n isPlusUser ? s.contextData['cnbc.isPlusUser'] = true : s.contextData['cnbc.isPlusUser'] = 'NA';\n s.contextData['cnbc.aam_sc'] = s.getAamSegments('aam_sc','aamsc');\n s.contextData['tve.did'] = s.Util.cookieRead('aam_uuid') ? s.Util.cookieRead('aam_uuid') : (s.Util.cookieRead('aam_did') ? s.Util.cookieRead('aam_did') : 'demdex cookie not set');\n //console.log(\"delete bedrocktrk cookie\");\n deleteBedrockCookie();\n s.contextData['cnbc.bedrock0'] = (!__CNBC_META_DATA.user) ? ('NA') : (__CNBC_META_DATA.user.userId);\n var getBedrockString = function () {\n var user = __CNBC_META_DATA.user;\n if (!user) {\n return 'NA';\n }\n // bedrockData\n var status;\n if (user.isPro && user.isInvestingClubUser) {\n status = 'PRO,investingclub';\n } else if (user.isPro) {\n status = 'PRO';\n } else if (user.isPlusUser) {\n status = 'plus';\n } else if (user.isInvestingClubUser) {\n status = 'investingclub';\n } else {\n status = 'free';\n }\n var result = `${user.userId}:registered:${status}:logged-in`;\n return result;\n };\n s.contextData['cnbc.bedrockData'] = getBedrockString();\n\n\n // Setting a variable that indicates that tracking originated\n // in adobe launch\n s.contextData['cnbc.isLaunch'] = true;\n\n // Send mParticle id (mpid)\n s.contextData['cnbc.mparticleid'] =\n window.mParticle &&\n mParticle.Identity &&\n mParticle.Identity.getCurrentUser() &&\n mParticle.Identity.getCurrentUser().getMPID()\n ? mParticle.Identity.getCurrentUser().getMPID()\n : 'NA';\n\n /************* DO NOT ALTER ANYTHING BELOW THIS LINE ! **************/\n\n var optInApplies =\n typeof window.__cnbcDoesAdobeOptInApply === 'function' &&\n window.__cnbcDoesAdobeOptInApply();\n var analyticsApproved =\n typeof window.__cnbcIsAdobeAnalyticsOptInApproved === 'function'\n ? window.__cnbcIsAdobeAnalyticsOptInApproved()\n : true;\n\n if (optInApplies && !analyticsApproved) {\n console.log('[CNBC Adobe] page hit skipped \u2014 opt-in applies but analytics not approved');\n return;\n }\n\n // Drop stale hits queued while opt-in was denied; this page call replaces them.\n if (Array.isArray(s.j) && s.j.length > 0) {\n s.j = [];\n }\n\n s.t();\n\n if (executeOptions.source === 'initial') {\n window.__cnbcAdobePageHitFired = true;\n }\n\n // Track user scroll milestones at 25/50/75/100 using addEventListener.\n initializeCnbcScrollDepthTracking(s);\n\n\n if(typeof s === 'object') {\n /*\n * Plugin: manageVars v1.5 (requires s.pt utility if using AppMeasurement)\n */\n s.manageVars=new Function('c','l','f',''\n +'var s=this,vl,la,vla;l=l?l:\\'\\';f=f?f:1;if(!s[c])return false;vl=\\'pag'\n +'eName,purchaseID,channel,server,pageType,campaign,state,zip,events,'\n +'products,transactionID\\';for(var n=1;n<76;n++)vl+=\\',prop\\'+n+\\',eVar\\'+'\n +'n;for(n=1;n<6;n++)vl+=\\',hier\\'+n;for(n=1;n<4;n++)vl+=\\',list\\'+n;for(n'\n +' in s.contextData)vl+=\\',contextData.\\'+n;if(l&&(f==1||f==2)){if(f==1'\n +')vl=l.replace(\\'[\\\\\\'\\',\\'.\\').replace(\\'\\\\\\']\\',\\'\\');if(f==2){la=l.split(\\','\n +'\\');vla=vl.split(\\',\\');vl=\\'\\';for(x in la){if(la[x].indexOf(\\'contextDa'\n +'ta\\')>-1){lax=la[x].split(\\'\\\\\\'\\');la[x]=\\'contextData.\\'+lax[1];}for(y '\n +'in vla){if(la[x]==vla[y]){vla[y]=\\'\\';}}}for(y in vla){vl+=vla[y]?\\',\\''\n +'+vla[y]:\\'\\';}}s.pt(vl,\\',\\',c,0);return true;}else if(l==\\'\\'&&f==1){s.p'\n +'t(vl,\\',\\',c,0);return true;}else return false;');\n s.clearVars=new Function('t',''\n +'var s=this;if(t.indexOf(\\'contextData\\')==-1)s[t]=\\'\\';else if(t.indexO'\n +'f(\\'contextData\\')>-1){var c=t.substring(t.indexOf(\\'.\\')+1);s.contextD'\n +'ata[c]=\\'\\';}');\n s.lowercaseVars=new Function('t',''\n +'var s=this;if(t!=\\'events\\'&&t.indexOf(\\'contextData\\')==-1&&s[t]){s[t]'\n +'=s[t].toString();if(s[t].indexOf(\\'D=\\')!=0){s[t]=s[t].toLowerCase();'\n +'}}else if(t.indexOf(\\'contextData\\')>-1){var c=t.substring(t.indexOf('\n +'\\'.\\')+1);if(s.contextData[c]){s.contextData[c]=s.contextData[c].toSt'\n +'ring();s.contextData[c]=s.contextData[c].toLowerCase();}}');\n /*\n * s.pt utility (runs function f against variables in x)\n */\n s.pt=new Function('x','d','f','a',''\n +'var s=this,t=x,z=0,y,r;while(t){y=t.indexOf(d);y=y<0?t.length:y;t=t'\n +'.substring(0,y);r=s[f](t,a);if(r)return r;z+=y+d.length;t=x.substri'\n +'ng(z,x.length);t=z= maxAttempts;\n\n if (readyToFire) {\n window._executeOmniture({ source: 'initial' });\n return;\n }\n\n setTimeout(tryInitialPageHit, pollMs);\n };\n\n setTimeout(tryInitialPageHit, initialDelayMs);\n };\n delayedExecuteOmniture();\n \n // Amplitude variation capture \u2014 start only after the CNBC MParticle rule finishes its mParticle.ready work\n // (Page Load / DCR handoff). Using $t + window flag avoids race with multiple mParticle.ready subscribers.\n // Interval is only a deadline if integration never signals (e.g. consent blocked).\n (function scheduleAmplitudeVariationCaptureAfterMParticleIntegration() {\n var variationCaptureStarted = false;\n var POLL_MS = 100;\n var MAX_WAIT_MS = 32000;\n var waitStartedAt = Date.now();\n\n function startAmplitudeVariationCapture() {\n if (variationCaptureStarted) {\n return;\n }\n variationCaptureStarted = true;\n\n var variationCaptured = false;\n var initialVariation = __CNBC_META_DATA?.variation;\n\n function captureVariation(variation) {\n if (variationCaptured) {\n return; // Already captured\n }\n\n // Handle different variation formats\n if (!variation || variation === 'NA') {\n console.log('Amplitude variation not available or NA');\n return;\n }\n\n // Serialize variation data based on type\n var variationString;\n if (typeof variation === 'string') {\n variationString = variation;\n } else if (typeof variation === 'object') {\n // Handle array: [\"exp1:variant_a\", \"exp2:variant_b\"]\n if (Array.isArray(variation)) {\n variationString = variation.join('|');\n }\n // Handle object: {exp1: \"variant_a\", exp2: \"variant_b\"}\n else {\n var parts = [];\n for (var key in variation) {\n if (variation.hasOwnProperty(key)) {\n parts.push(key + ':' + variation[key]);\n }\n }\n variationString = parts.join('|');\n }\n } else {\n console.log('Amplitude variation unexpected type:', typeof variation);\n return;\n }\n\n // Send link call with variation data\n var s = s_gi(s_account);\n var action = 'amplitude_variation_update';\n s.linkTrackVars = 'contextData.cnbc.variation,contextData.cnbc.action';\n s.contextData['cnbc.variation'] = variationString;\n s.contextData['cnbc.action'] = action;\n s.pev2 = action;\n s.tl(true, 'o', action, null, 'navigate');\n\n variationCaptured = true;\n console.log('Amplitude variation captured via link call:', variationString);\n }\n\n // Intercept when variation property is set\n if (__CNBC_META_DATA && !initialVariation) {\n var _variation = initialVariation;\n Object.defineProperty(__CNBC_META_DATA, 'variation', {\n get: function() {\n return _variation;\n },\n set: function(value) {\n _variation = value;\n // Automatically capture when variation is set\n if (value && value !== 'NA') {\n setTimeout(function() {\n captureVariation(value);\n }, 100); // Small delay to ensure value is fully set\n }\n },\n configurable: true,\n enumerable: true\n });\n } else if (initialVariation && initialVariation !== 'NA') {\n // Variation already exists, capture it\n captureVariation(initialVariation);\n }\n\n // Fallback: Check for variation after React typically loads (3-7 seconds)\n setTimeout(function() {\n if (!variationCaptured && __CNBC_META_DATA?.variation && __CNBC_META_DATA.variation !== 'NA') {\n captureVariation(__CNBC_META_DATA.variation);\n }\n }, 7000);\n }\n\n $t('on', 'mParticle_launch_integration_ready', function() {\n startAmplitudeVariationCapture();\n });\n if (window.__CNBC_MPARTICLE_INTEGRATION_READY__) {\n startAmplitudeVariationCapture();\n }\n\n if (variationCaptureStarted) {\n return;\n }\n\n var amplitudeMparticlePollId;\n function amplitudeMparticlePollTick() {\n if (variationCaptureStarted) {\n clearInterval(amplitudeMparticlePollId);\n return;\n }\n\n var elapsed = Date.now() - waitStartedAt;\n if (elapsed >= MAX_WAIT_MS) {\n startAmplitudeVariationCapture();\n clearInterval(amplitudeMparticlePollId);\n }\n }\n\n amplitudeMparticlePollTick();\n amplitudeMparticlePollId = setInterval(amplitudeMparticlePollTick, POLL_MS);\n })();\n\n // Event listener triggered from UserProvider component in Phoenix\n window.__EventBus__.remove('reloadOmniture', window._executeOmniture);\n window.__EventBus__.on('reloadOmniture', window._executeOmniture);\n\n window.__EventBus__.remove('softpageview', fnSoftPage_CNBC_SoftPageView);\n window.__EventBus__.on('softpageview', fnSoftPage_CNBC_SoftPageView);\n});\n/* eslint-enable */\n",
language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL2778d03bbbea46b1a8777cb7422b4a4e",name:"DR - CNBC TDD Subscriptions [d:cnbc.com]",events:[{modulePath:"core/src/lib/events/domReady.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["cnbc.com"]},timeout:2e3},{modulePath:"core/src/lib/conditions/path.js",settings:{paths:[{value:"/",valueIsRegex:!1},{value:"^\\/live-tv\\/?$",valueIsRegex:!0},{value:"^\\/business\\/?$",valueIsRegex:!0},{value:"^\\/personal-finance\\/?$",valueIsRegex:!0},{value:"^\\/pro\\/?$",valueIsRegex:!0},{value:"^\\/investingclub\\/?$",valueIsRegex:!0},{value:"^\\/investing\\/?$",valueIsRegex:!0},{value:"^\\/subscribe\\/cnbcplus\\/?$",valueIsRegex:!0}]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"https://assets.adobedtm.com/77ca722dd820/bbaaa56c8833/95c1ebbd94f6/RC228ab7b2d35d437f806fedd3ba033cb8-source.min.js",language:"javascript",isExternal:!0},timeout:500,delayNext:!0}]},{id:"RL2adc95aad7c14caab79802046bb21c4a",name:"50 - Newsletter Selection Page Events [cnbc.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/path.js",settings:{paths:[{value:"newsletters",valueIsRegex:!0}]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"(function () {\n /* global $t, s, __CNBC_META_DATA, BI */\n function trackAdobe(action, actionContextData) {\n s.linkTrackVars = false;\n s.contextData = actionContextData;\n s.tl(true, 'o', action);\n s.manageVars('clearVars');\n }\n\n // Sending data to adobe when a user makes a selection\n // about which newsletters to subscribe to on\n // https://www.cnbc.com/sign-up-for-cnbc-newsletters/\n function sendNewsletterActionsToAdobe() {\n $t('on', 'bte_event', function (e, data) {\n\n let { analyticId, selectedNewsletter } = data?.data?.dataset ?? {};\n\n if (false === String(analyticId).startsWith('newsletter-')) {\n return;\n }\n\n trackAdobe(analyticId, {\n 'cnbc.action': `${analyticId}: ${__CNBC_META_DATA.id}`,\n 'cnbc.selectednewsletter': selectedNewsletter,\n 'cnbc.brand': __CNBC_META_DATA.brand != undefined ? __CNBC_META_DATA.brand : 'NA',\n 'cnbc.platform': 'web',\n });\n });\n }\n\n\n BI.wrapWithOneTrust({\n fn: sendNewsletterActionsToAdobe,\n featureName: 'Newsletter Flow -> Adobe',\n categories: [7]\n });\n})();",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL2b7b115a71604bfcb1678a2195538f20",name:"DR - Action - Spectrum Events [d:cnbc.com]",events:[{modulePath:"core/src/lib/events/domReady.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["cnbc.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"https://assets.adobedtm.com/77ca722dd820/bbaaa56c8833/95c1ebbd94f6/RCdaf1478e278c4d399a2110ace2926fd4-source.min.js",language:"javascript",isExternal:!0},timeout:2e3,delayNext:!0}]},{id:"RL312b438cf47e45a38e797ef49e095fca",name:"60 - univideo - product adapter (streamsense) [univideo, d:cnbc.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:60}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["cnbc.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/* global ns_, BI, uniVideo */\n(function () {\n /* SNIPAF: {\"name\": \"univideo_to_streamsense\", \"version\":\"2.0\" } */\n\n // Setting up BI console log functions\n var logEvent = (window.BI && BI.console && BI.console.build('uni_streamsense')) || Function.prototype;\n\n const topLevelDomain = (function () {\n const validDomains = ['cnbc.com', 'nbcnews.com', 'today.com', 'telemundo.com', 'msnbc.com'];\n const isAmp = location.hash.indexOf('amp=1') != -1;\n const ampDomainOverride = (location.hash.split('domain=')[1] || '').split('&')[0];\n let topLevelDomain =\n (isAmp && ampDomainOverride) || document.location.hostname.match(/[^./]+\\.[^./]+$/)[0];\n topLevelDomain = validDomains.indexOf(topLevelDomain) != -1 ? topLevelDomain : 'cnbc.com';\n\n return topLevelDomain;\n })();\n\n //determine show name from various asset metadata\n var deriveShowName = function (videoData) {\n var showNameOverrides = {\n 'Deadline: White House': 'deadlinewhitehouse',\n 'MTP Daily': 'meetthepress',\n 'Dateline Digital': 'dateline',\n 'TODAY': 'todayallday',\n };\n\n //select show name from source field\n var showName = videoData.source;\n\n // For VOD, derive show name from taxonomy if present\n if (videoData.streamType === 'vod') {\n var taxonomyShowTerms = videoData.custom?.taxonomy?.additionalTerms?.filter((term) => {\n return term.taxonomyType === 'show';\n });\n //select the first show name present in taxonomy\n if (taxonomyShowTerms && taxonomyShowTerms?.length != -1 && taxonomyShowTerms[0]?.name) {\n showName = taxonomyShowTerms[0].name;\n }\n }\n\n //return override if it exists, or format existing string\n return showNameOverrides[showName] || showName.replaceAll(' ', '').toLowerCase();\n };\n\n var uniEvent = (window.uniVideo && window.uniVideo.event) || {};\n\n var sites = {\n 'cnbc.com': {\n st: 'cnbc',\n pu: 'cnbc',\n c3: 'cnbc',\n c6Default: 'cnbc',\n },\n 'today.com': {\n st: 'Today',\n pu: 'Today',\n c4: 'today',\n c6Default: 'today',\n },\n 'nbcnews.com': {\n st: 'NBC News',\n pu: 'NBC News',\n c4: 'nbcnews',\n c6Default: 'nbcnews',\n },\n 'msnbc.com': {\n st: 'MSNBC',\n pu: 'MSNBC',\n c4: 'msnbc',\n c6Default: 'msnbc',\n },\n 'telemundo.com': {\n st: 'Telemundo',\n pu: 'Telemundo',\n c3: 'Telemundo',\n c4: 'telemundo',\n c6Default: 'telemundo',\n },\n };\n\n uniVideo.addEventListenerFactory(function streamsense() {\n var _streamingTag = null;\n var _previousVideoStopped = true;\n var _metadata = {};\n\n var _siteBrand = (() => {\n for (let domainName of Object.keys(sites)) {\n if (topLevelDomain.includes(domainName)) {\n return sites[domainName];\n }\n }\n })();\n\n return function eventListener(e, data) {\n // Disabling comscore for any player that is not cvsdk\n if (data.videoData.playbackAdapter !== 'cvsdk') { return; }\n\n //streamsense doesnt use playhead aperently, so progress not needed\n if(data.eventType === uniEvent.PROGRESS) return;\n\n if (window.ns_ && ns_.StreamingTag && ns_.StreamingTag.ContentType) {\n var videoData = data && data.videoData;\n var videoState = (data && data.videoState) || {};\n\n var streamContentType = (function () {\n if (videoData.streamType === 'linear') {\n return ns_.StreamingTag.ContentType.Live;\n } else {\n return ns_.StreamingTag.ContentType.ShortFormOnDemand;\n }\n })();\n\n if (Object.keys(_metadata).length == 0) {\n let taxonomyShow = videoData?.raw?.taxonomy?.primarySection?.name;\n if (taxonomyShow) { videoData.source = taxonomyShow; }\n\n updateMetadata(videoData);\n }\n\n switch (data.eventType) {\n case uniEvent.VIDEO_LOADED:\n //set new streaming tag for each instance, stop previous if needed\n if (!_previousVideoStopped) {\n _streamingTag.stop();\n logEvent('stop previous', _metadata);\n }\n _streamingTag = new ns_.StreamingTag({ customerC2: '40813950' });\n updateMetadata(videoData);\n logEvent('new streamingTag');\n _previousVideoStopped = false;\n break;\n\n case uniEvent.PLAY:\n if (!videoState.inAd) {\n if (_streamingTag) {\n _streamingTag.playVideoContentPart(_metadata, streamContentType);\n }\n }\n break;\n case uniEvent.AD_PLAY:\n if (_streamingTag) {\n _streamingTag.playVideoAdvertisement({ ns_st_cl: (videoData.adLength * 1000) || 0 }, streamContentType);\n }\n break;\n case uniEvent.AD_COMPLETE:\n if (_streamingTag) {\n _streamingTag.stop();\n }\n break;\n case uniEvent.PAUSE:\n case uniEvent.STOP:\n case uniEvent.COMPLETE:\n if (_streamingTag) {\n _streamingTag.stop();\n }\n _metadata = {};\n _previousVideoStopped = true;\n break;\n }\n\n logEvent(data.eventType, { data: { ...data }, meta: { ..._metadata } });\n }\n };\n\n function updateMetadata(videoData) {\n\n var videoLength = (function () {\n if (videoData.streamType === 'linear') {\n var isSingleLiveEvent = /^lv_/.test(videoData.guid) || videoData.videoType === 'nonBroadcastLiveVideo';\n var isJWPlayer = 'JW Player' == videoData.playbackAdapter;\n return isSingleLiveEvent && isJWPlayer ? 0 : -1;\n }\n else {\n return videoData.duration * 1000;\n }\n })();\n\n _metadata = {\n ..._metadata,\n ns_st_cl: videoLength,\n ns_st_ci: videoData.guid || '0', // Content Asset ID\n ns_st_st: _siteBrand.st, //\n ns_st_pu: _siteBrand.pu,\n ns_st_pr: videoData.source || '*null', // Program Title\n ns_st_ep: videoData.title || '*null', // Episode Title\n ns_st_sn: '*null', // Episode Season Number\n ns_st_en: '*null', // Episode Number\n ns_st_ge: 'News', // Content Genre\n ns_st_ti: '*null', // TMS ID (unavailable)\n ns_st_ia: '0', // Identical Ad Assignment Flag\n ns_st_ce: '0', // Complete Episode Flag\n ns_st_ddt: '*null', // Digital Air Date (not setup) '2014-10-03'\n ns_st_tdt: '*null', // TV Air Date (not setup) '2014-10-03'\n c3: _siteBrand.c3 || '*null', // Dictionary Classification Value\n c4: _siteBrand.c4 || '*null', // Unused Dictionary Classification Value\n c6: deriveShowName(videoData) || _siteBrand.c6Default, // Unused Dictionary Classification Value\n };\n logEvent('updateMetadata', _metadata);\n }\n });\n\n /* SNIPAF: END */\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL33885e5e10a245399399a04e7c6d2021",name:"60 - univideo - player adapter (jw player) [univideo, d:cnbc.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:60}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["cnbc.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/* globals BI, $t */\n(function () {\n /* SNIPAF: {\"name\": \"univideo_from_jw\", \"version\":\"2.0\" } */\n\n const logEvent = (window.BI && BI.console && BI.console.build('uni_jw')) || Function.prototype;\n\n $t('register', 'uni_jw_error');\n // TODO: support error and warn levels in BI console || add ERROR and WARN UniVideo events\n // https://nbcnewsdigital.atlassian.net/browse/AFT-858\n\n const uniEvent = (window.uniVideo && window.uniVideo.event) || {};\n\n let _jwStateMap = {\n // TODO: Support \"BUFFERING\" event + playState: 'buffer' in UniVideo?\n // https://nbcnewsdigital.atlassian.net/browse/AFT-868\n buffering: 'stop',\n idle: 'stop',\n paused: 'pause',\n playing: 'play',\n };\n\n let _jwAdPosMap = {\n pre: 'preroll',\n mid: 'midroll',\n post: 'postroll',\n };\n\n // Defining an object that maps JW Player event names\n // to their counterpart in UniVideo.\n const JWToUniVideo = {\n adBreakEnd: uniEvent.AD_BREAK_COMPLETE,\n adBreakStart: uniEvent.AD_BREAK_START,\n adComplete: uniEvent.AD_COMPLETE,\n adPlay: uniEvent.AD_PLAY,\n complete: uniEvent.COMPLETE,\n fullscreen: uniEvent.FULLSCREEN,\n pause: uniEvent.PAUSE,\n play: uniEvent.PLAY,\n time: uniEvent.PROGRESS,\n seek: null,\n meta: uniEvent.VIDEO_LOADED\n };\n\n const subscribeUniEventsToJW = function ({ player, callingEvent, uniTrack }) {\n console.log('subscribe');\n const isCNBC = location.host.endsWith('cnbc.com');\n\n let appName = isCNBC ? 'CNBC' : 'ramen';\n\n let appVersion = isCNBC\n ? '1.0.0'\n : $t('jsonLd.Dataset.0.appVersion', undefined);\n\n // Caching a list of events that happen before\n // metadata loads\n let unhandledEvents = [];\n\n // Although it represents a boolean, this value\n // needs to be an object so that it can be passed\n // by reference instead of being implicitly cloned\n // when given as input to a function.\n let status = {\n didProcessFirstMetadata: false,\n };\n\n let videoMetadata = {\n playbackAdapter: 'JW Player',\n custom: {\n ...uniTrack.videoData().custom ?? {},\n playerVersion: player.version || '',\n appVersion,\n appName,\n }\n };\n\n // Initializing video data\n uniTrack.videoData(videoMetadata);\n\n handlePhoenixMetadataUpdates({\n videoMetadata,\n uniTrack,\n unhandledEvents,\n player,\n status,\n });\n\n const calculateInitiate = function(_data) {\n const data = _data[0] ?? _data;\n const isManual = data.nowPlayingInitiator === 'manual' || data.autoPlay === false;\n const isContinuous = uniTrack.videoData().videoCount > 0;\n\n return isManual ? 'manual' : isContinuous ? 'continuous' : 'auto';\n };\n\n\n $t('on', 'gamma_metadata_updated', function (_e, data) {\n // Doing nothing when metadata is updated\n // for a different player instance.\n if (data.player.id !== player.id) return;\n\n // uniTrack.videoData does not merge nested properties.\n // Handle \"custom\" property merging manually.\n // NOTE: This is a shallow-merge.\n let uniData = convertRamenVideoMetadataToUniVideo(data);\n let customData = uniData.custom;\n delete uniData.custom;\n uniTrack.videoData({\n ...uniData,\n playInitiate: calculateInitiate(data),\n custom: {\n ...uniTrack.videoData().custom,\n ...customData,\n }\n });\n });\n\n // https://docs.jwplayer.com/players/reference/javascript-player-api-introduction\n const jwEventList = [\n 'adBreakEnd',\n 'adBreakStart',\n 'adComplete',\n 'adError',\n 'adImpression',\n 'adItem', // Not fired?\n 'adLoaded', // Not fired?\n 'adMeta', // Not fired?\n 'adPause',\n 'adPlay',\n // 'adSchedule',\n 'adTime',\n 'adViewableImpression',\n // 'beforeComplete',\n 'beforePlay',\n // 'breakpoint', // Not useful, not mentioned in JW docs\n 'complete',\n 'error',\n // 'firstFrame',\n 'fullscreen',\n 'meta',\n 'mute',\n 'pause',\n 'play',\n 'playAttemptFailed',\n // 'playlist',\n 'playlistItem', // GAMMA player doesn't use the JW Playlist features, but does inject the item that is queued to play\n 'ready',\n 'seek',\n 'seeked',\n 'setupError',\n 'time',\n // 'viewable', // Not recommended in iframes\n 'warning',\n ];\n \n console.log('jw adapter', callingEvent)\n\n if (callingEvent === 'jwPlayerLiveStreamReadyEvent') {\n uniTrack.videoData({\n streamType: 'linear'\n });\n }\n\n jwEventList.forEach((JWEventName) => {\n player.on(JWEventName, (data) => {\n let context = { JWEventName, data, player, uniTrack, unhandledEvents, status, videoMetadata };\n isCNBC\n ? handlePhoenixPlayerEvent(context)\n : handleRamenPlayerEvent(context);\n });\n });\n };\n\n // For CNBC, capturing a list of meta update events in case\n // they happen before players initialize. Populating\n // the list with the most recent event, if it exists.\n const metaUpdatedEvents = [\n $t('cnbc_video_metadata_loaded'),\n ].filter(e => e != '');\n\n $t('on', 'cnbc_video_metadata_loaded', (_e, data) => {\n metaUpdatedEvents.push(data);\n });\n\n\n function handlePhoenixMetadataUpdates({ status, videoMetadata, uniTrack, unhandledEvents, player }) {\n // Processing all prior metadata events\n metaUpdatedEvents.forEach(data => {\n processMetadata(data);\n });\n\n // Subscribing to all future metadata events\n $t('on', 'cnbc_video_metadata_loaded', function(_e, data) {\n processMetadata(data);\n });\n\n function processMetadata(data) {\n console.log('data from unicore', data);\n const isCorrectPlayer = data.jwPlayerReference.uniqueId === player.uniqueId;\n logEvent('Processing Meta', { data, player, status, isCorrectPlayer });\n if (false == isCorrectPlayer) return;\n\n // Converting CNBC Video Metadata to UniVideo\n const newMetadata = convertPhoenixVideoMetadataToUniVideo(data);\n logEvent('New Metadata', { newMetadata, status });\n\n uniTrack.videoData({\n ...videoMetadata,\n ...newMetadata,\n custom: {\n ...videoMetadata.custom,\n ...newMetadata.custom,\n }\n });\n\n // Re-firing events that were delayed\n // while metadata was unavailable.\n if (false == status.didProcessFirstMetadata) {\n // Removing any other load even, and only set it to first one\n const nonLoadEvents = unhandledEvents.filter(e => e !== uniEvent.VIDEO_LOADED);\n // Inserting a load event at the front of the list, and tracking\n [uniEvent.VIDEO_LOADED, ...nonLoadEvents].map(e => uniTrack(e));\n status.didProcessFirstMetadata = true;\n }\n else {\n uniTrack(uniEvent.VIDEO_LOADED);\n }\n }\n }\n\n // On Ramen, this is where player instances are created,\n // and the primary place where control flow starts\n // to flow to other functions in this rule.\n $t('on', 'gamma_jw_player_loaded', function (_e, data) {\n let uniquePlayerInstanceId = data.player.id;\n var uniTrack = window.uniVideo.buildUniTrack({ uniquePlayerInstanceId });\n subscribeUniEventsToJW({ callingEvent: _e.type, ...data, uniTrack });\n });\n\n // On Phoenix, this is where player instances are created,\n // and the primary place where control flow starts\n // to flow to other functions in this rule.\n $t('on', 'cnbc_jw_player_loaded', function (_e, data) {\n let uniquePlayerInstanceId = `jw_player_${data.JWPlayer.uniqueId}`;\n var uniTrack = window.uniVideo.buildUniTrack({ uniquePlayerInstanceId });\n\n console.log('cnbc_jw_player_loaded', data);\n subscribeUniEventsToJW({\n player: data.JWPlayer,\n callingEvent: data.callingEvent,\n uniTrack,\n });\n });\n\n\n // Joins taxonomy data together to create a more\n // compact representation. Primarily important for\n // Telemundo, which has extra taxonomy data.\n function getAdditionalTerms(eventDataRaw) {\n var terms = eventDataRaw.taxonomy && eventDataRaw.taxonomy.additionalTerms || [];\n var category = [];\n var keyword = [];\n\n terms.forEach(function (term) {\n if (term.path.indexOf('category') != -1 && category.indexOf(term.name) == -1) {\n category.push(term.name);\n }\n if (term.path.indexOf('keyword') != -1 && keyword.indexOf(term.name) == -1) {\n keyword.push(term.name);\n }\n });\n\n return {\n keyword: keyword.join(','),\n category: category.join(',')\n };\n }\n\n function getTelemundoSource(data) {\n if (!document.location.hostname.includes('telemundo.com')) return;\n return data.taxonomy?.primarySection?.name;\n }\n\n function convertRamenVideoMetadataToUniVideo(_data) {\n const data = _data[0] ?? _data;\n const additionalTerms = getAdditionalTerms(data);\n\n // Deleting the player reference. This is the whole player,\n // and it is unsafe to keep it in UniVideo.videoData.custom!\n if (data?.player && data.player?.version) delete data.player;\n\n const resultMetaData = {\n dateBroadcast: data.dateBroadcast ? new Date(Date.parse(data.dateBroadcast)).toISOString() : '',\n datePublished: data.datePublished ? new Date(Date.parse(data.datePublished)).toISOString() : '',\n duration: data?.videoAssets?.[0]?.assetDuration ?? '', // The final duration is updated by the 'playlistItem' event\n guid: data?.mpxMetadata?.guid ?? '',\n mpxId: data?.mpxMetadata?.id ?? '',\n newsNetwork: data?.publisher?.name ?? '',\n playListId: data?.associatedVideoPlaylist?.id ?? '',\n playListLabel: data?.associatedVideoPlaylist?.headline?.primary ?? '',\n sentiment: data?.sentiment ?? '',\n source: getTelemundoSource(data) ?? data?.source?.name ?? '',\n streamType: ['nonbroadcastlivevideo', 'live'].includes(data?.videoType.toLowerCase()) ? 'linear' : 'vod',\n title: data?.headline?.primary ?? '',\n videoType: data?.videoType ?? '',\n custom: { ...data, additionalTerms }, // All other data\n };\n\n return resultMetaData;\n }\n\n function convertPhoenixVideoMetadataToUniVideo(_data) {\n // Sometimes, the relevant data is on the `0` property, other times not.\n const data = _data[0] ?? _data;\n\n logEvent('Converting Metadata: Start', data);\n\n // Deleting the player reference. This is the whole player,\n // and it is unsafe to keep it in UniVideo.videoData.custom!\n if (data?.player && data.player?.version) delete data.player;\n \n const streamType =\n data.subType === 'audio' ? 'audio' : data.subType === 'Linear' || data.duration === 0 || data.duration === undefined ? 'linear' : 'vod';\n \n console.log('jw stream data type: ', streamType, data.subType, data.vcpsId, data.id,String(data.vcpsId || data.id));\n \n const resultMetadata = {\n adLength: '',\n assetID: '',\n dateBroadcast: data.airDate || '',\n datePublished: data.datePublished || '',\n duration: data.duration,\n guid: String(data.vcpsId || data.id || ''),\n mpxId: '',\n newsNetwork: data.network || data.brand || '',\n playInitiate: data.initiate || 'Auto', // Continuous | Manual | Auto\n playListId: '',\n playListLabel: '',\n sentiment: '',\n source: data.section && data.section.tagNameFormattedFull || '',\n streamType: streamType, \n title: data.title || '',\n videoCount: '',\n videoType: '',\n custom: { ...data },\n };\n\n if (data.jwPlayerReference && data.jwPlayerReference.version) {\n resultMetadata.custom['playerVersion'] = data.jwPlayerReference.version;\n }\n\n // Setting a custom value to indicate an Adobe Live Stream\n // The CNBC Pro player needs to report the MediaHeartbeat asset as \"Live\"\n // On mobile, the playerName is \"Universal_Player_Pro_hh\"\n if (data.playerName.startsWith('Universal_Player_Pro')) {\n resultMetadata.custom['adobeLiveStream'] = true;\n }\n\n if (['Live_Event_Morning_Meeting_Player', 'Live_Event_Monthly_Meeting_Player'].includes(data.playerName)) {\n resultMetadata.custom['adobeLiveStream'] = true;\n resultMetadata.streamType = 'linear';\n }\n\n logEvent('Converting Metadata: End', resultMetadata);\n\n return resultMetadata;\n }\n\n function handleRamenPlayerEvent({ JWEventName, uniTrack, player, data }) {\n let trackEvent = true;\n\n if (event === 'meta' && data.metadata && data.metadata.metadataType === 'discontinuity') {\n trackEvent = false;\n }\n\n if (!event || !trackEvent) return;\n\n // Logging events, but excluding \"progress\" events\n if (!['time', 'adTime'].includes(JWEventName)) {\n logEvent(JWEventName, { status, eventData: data, videoData: uniTrack.videoData(), videoState: uniTrack.videoState() });\n }\n\n switch (JWEventName) {\n case 'beforePlay':\n uniTrack.videoState({\n fullScreen: player.getFullscreen(),\n isMuted: player.getMute(),\n });\n uniTrack.videoData({\n // see 'gamma_metadata_updated'\n videoCount: uniTrack.videoData().videoCount + 1,\n adLength: 0,\n });\n break;\n case 'adPause':\n case 'pause':\n if (uniTrack.videoState().playState === 'play') {\n uniTrack.videoState({ playState: 'pause' });\n uniTrack(uniEvent.PAUSE);\n }\n break;\n case 'fullscreen':\n uniTrack.videoState({ fullScreen: data.fullscreen });\n uniTrack(uniEvent.FULLSCREEN);\n break;\n case 'adImpression':\n case 'adItem':\n if (data.id && data.id !== uniTrack.videoData().adId) {\n uniTrack.videoData({\n adId: data.id,\n // conditionally include adName\n ...(data.adtitle && {adName: data.adtitle}),\n });\n }\n break;\n case 'adPlay':\n // uniTrack.videoState({\n // inAd: true,\n // playState: 'play',\n // });\n // uniTrack(uniEvent.AD_PLAY);\n break;\n case 'adTime':\n // TODO: Temp workaround for ad duration not being available until the 'adTime' event\n // 'adTime' is the only event that reports the FW ad duration\n // https://nbcnewsdigital.atlassian.net/browse/AFT-872\n if (!uniTrack.videoState().inAd) {\n uniTrack.videoData({\n adLength: data.duration,\n });\n uniTrack(uniEvent.AD_PLAY);\n }\n // Part of the temp workaround\n uniTrack.videoState({\n inAd: true,\n playState: 'play',\n });\n uniTrack(uniEvent.PROGRESS);\n break;\n case 'adComplete':\n uniTrack.videoState({\n inAd: false,\n playState: 'stop',\n adPosition: uniTrack.videoState().adPosition + 1,\n });\n uniTrack(uniEvent.AD_COMPLETE);\n break;\n case 'adBreakStart':\n if (data.adposition) {\n // Set adPodName to 'preroll', 'midroll', 'postroll'\n uniTrack.videoData({\n adPodName: _jwAdPosMap[data.adposition],\n });\n }\n uniTrack(uniEvent.AD_BREAK_START);\n break;\n case 'adBreakEnd':\n uniTrack.videoState({\n adPosition: 1,\n adBreakPosition: uniTrack.videoState().adBreakPosition + 1,\n });\n uniTrack.videoData({\n playheadPosition: 0,\n });\n uniTrack(uniEvent.AD_BREAK_COMPLETE);\n break;\n case 'ready':\n uniTrack(uniEvent.INIT);\n break;\n case 'mute':\n uniTrack.videoState({\n isMuted: data.mute,\n });\n break;\n case 'play':\n uniTrack(uniEvent.PLAY);\n // update state AFTER play fires so adapters can reference the previous state:\n // (stop => play = \"start\")\n // TODO: Support \"START\" event in UniVideo\n // https://nbcnewsdigital.atlassian.net/browse/AFT-869\n uniTrack.videoState({ playState: 'play' });\n break;\n case 'seek':\n uniTrack.videoState({ playState: 'seek' });\n uniTrack(uniEvent.SEEK_START);\n break;\n case 'seeked':\n uniTrack.videoState({\n playState: _jwStateMap[player.getState()],\n });\n uniTrack(uniEvent.SEEK_COMPLETE);\n break;\n case 'complete':\n uniTrack.videoState({ playState: 'stop' });\n uniTrack(uniEvent.COMPLETE);\n break;\n case 'time':\n uniTrack.videoData({\n playheadPosition: data.position * 1000,\n });\n // Only fire \"PROGRESS\" events when the video is playing\n // \"time\" event fires during seek\n if (uniTrack.videoState().playState === 'play') {\n uniTrack(uniEvent.PROGRESS);\n }\n break;\n case 'playlistItem':\n uniTrack.videoData({\n duration: data.item.duration,\n });\n if(uniTrack.videoState().playState === 'play') {\n uniTrack(uniEvent.STOP);\n uniTrack.videoState({\n playState: 'stop'\n });\n }\n\n // Indicates that the asset has been loaded by the player\n // Better indicator of \"VIDEO_LOADED\" than $t('gamma_metadata_updated')\n uniTrack(uniEvent.VIDEO_LOADED);\n break;\n case 'playAttemptFailed':\n case 'setupError':\n case 'adError':\n case 'error':\n $t('track', 'uni_jw_error', {\n message: data.message || data.error,\n code: data.code || null,\n sourceError: data.sourceError || null,\n });\n break;\n default:\n break;\n }\n }\n\n function handlePhoenixPlayerEvent({ JWEventName, data, status, videoMetadata, unhandledEvents, uniTrack }) {\n let UniVideoEventName = JWToUniVideo[JWEventName];\n if (undefined === UniVideoEventName) return;\n\n let trackEvent = true;\n\n if (JWEventName === 'time') {\n uniTrack.videoData({\n playheadPosition: data.currentTime * 1000\n });\n }\n\n if (JWEventName === 'meta' && data.metadata && data.metadata.metadataType === 'discontinuity') {\n trackEvent = false;\n }\n\n if (JWEventName !== 'time'){\n //skip time events since its very often\n logEvent(JWEventName, { data, videoMetadata, unhandledEvents, trackEvent });\n }\n\n if (trackEvent) {\n if (status.didProcessFirstMetadata) {\n uniTrack(UniVideoEventName);\n }\n else {\n unhandledEvents.push(UniVideoEventName);\n }\n }\n }\n\n /* SNIPAF: END */\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL4305544e028d4d5984fad5b6b456fd96",name:"50 - Action - Account Side Drawer[d:cnbc.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/* globals BI, $t, s, __CNBC_META_DATA */\n(function() {\n function trackAdobe(analyticId, actionContextData) {\n BI.waitForObjAvailable(['s', 's.tl'], 50, () => {\n s.linkTrackVars = false;\n const combinedLinkTrackVars = Object.keys(actionContextData).map(key => `contextData.${key}`);\n s.linkTrackVars = combinedLinkTrackVars.join(',');\n s.contextData = { ...s.contextData, ...actionContextData };\n s.tl(true, 'o', analyticId );\n\n for (var item in actionContextData) {\n delete s.contextData[item];\n }\n });\n }\n\n function registerEvents() {\n $t('on', 'bte_event', function(_eventName, e) {\n const analyticId = e?.data?.dataset?.analyticId;\n const accountSideDrawerPrefix = 'account side drawer:';\n\n if (analyticId && analyticId.startsWith(accountSideDrawerPrefix)) {\n trackAdobe(analyticId, {\n 'cnbc.action': `${analyticId}: ${__CNBC_META_DATA.id}`\n });\n }\n });\n }\n\n BI.wrapWithOneTrust({\n fn: registerEvents,\n featureName: 'Account Side Drawer Event to Adobe',\n categories: [7]\n });\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL45d48a2a329f4498ae24c7e6c1a9f4e0",name:"50 - univideo - core [univideo, d:cnbc.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["cnbc.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{
source:"(function () {\n /* global $t, BI */\n var logEvent = (window.BI && BI.console && BI.console.build('uni_core')) || Function.prototype;\n\n var isEmpty = function (obj) {\n return Object.keys(obj).length === 0 && obj.constructor === Object;\n };\n\n function clone(obj) {\n return JSON.parse(JSON.stringify(obj));\n }\n\n window.uniVideo = (function () {\n var extend = function (defaults, options) {\n var extended = {};\n var prop;\n for (prop in defaults) {\n if (Object.prototype.hasOwnProperty.call(defaults, prop)) {\n extended[prop] = defaults[prop];\n }\n }\n for (prop in options) {\n if (Object.prototype.hasOwnProperty.call(options, prop)) {\n extended[prop] = options[prop];\n }\n }\n return extended;\n };\n\n // setting up an object to manage auto-incrementing\n // IDs, so that instances and factories have predictable\n // but unique names.\n var idCounter = {};\n\n idCounter.increment = function (name) {\n idCounter[name] = idCounter[name] === undefined ? 0 : idCounter[name] + 1;\n return `${name}_${idCounter[name]}`;\n };\n\n // Creating a constant to help generate IDs\n const ANON = 'anonymous';\n\n // Mapping player instance IDs to state objects\n var instances = {};\n\n // Listing callback functions\n // that will handle univideo\n // events for a single instance.\n var eventListenerFactories = {};\n\n var uniVideo = {};\n\n uniVideo.inspect = function () {\n return { instances, eventListenerFactories };\n };\n\n uniVideo.event = {\n PROGRESS: 'PROGRESS',\n INIT: 'INIT',\n VIDEO_LOADED: 'VIDEO_LOADED',\n PLAY: 'PLAY',\n PAUSE: 'PAUSE',\n SEEK_START: 'SEEK_START',\n SEEK_COMPLETE: 'SEEK_COMPLETE',\n STOP: 'STOP',\n COMPLETE: 'COMPLETE',\n AD_BREAK_START: 'AD_BREAK_START',\n AD_BREAK_COMPLETE: 'AD_BREAK_COMPLETE',\n AD_PLAY: 'AD_PLAY',\n AD_COMPLETE: 'AD_COMPLETE',\n FULLSCREEN: 'FULLSCREEN', //TODO this needs to be migrated to state events\n SEGMENT_START: 'SEGMENT_START',\n SEGMENT_END: 'SEGMENT_END',\n };\n //State events are fired internaly by uniVideoCore, not from player adapters\n uniVideo.event['STATE'] = {\n MUTE: 'MUTE',\n FULLSCREEN: 'FULLSCREEN',\n };\n\n // `eventListenerFactory` should be a function that\n // returns another function, `eventListener` so\n // that `eventListener` can make use of state\n // enclosed by `eventListenerFactory`. This allows\n // listeners to handle multiple instances without\n // having to explicitly manage switching between\n // instances.\n uniVideo.addEventListenerFactory = function (eventListenerFactory = () => Function.prototype) {\n let factoryName = eventListenerFactory.name ?? ANON;\n let cleanFactoryName = factoryName.replace(/-/g, '_');\n let factoryId = idCounter.increment(cleanFactoryName);\n\n logEvent('NEW EVENT LISTENER FACTORY', { factoryId, eventListenerFactory });\n\n // Storing the factory functionn for later, so that\n // it can be used to create new event handlers when\n // new univideo instances are created.\n eventListenerFactories[factoryId] = eventListenerFactory;\n\n // Adding an event listener to each existing instance\n Object.values(instances).forEach(instance => {\n instance.listeners[factoryId] = eventListenerFactory();\n });\n };\n\n // Registering $t event\n $t('register', 'uni_videoEvent', { allowDuplicate: true });\n\n // Distributing event data to listeners\n $t('on', 'uni_videoEvent', function (e, data) {\n let instance = instances[data.instanceId];\n\n Object.values(instance.listeners).forEach(eventListener => {\n eventListener(e, data);\n });\n });\n\n uniVideo.buildUniTrack = function ({ uniquePlayerInstanceId, idPrefix } = {}) {\n let cleanIdPrefix = idPrefix ? String(idPrefix).replace(/-/g, '_') : ANON;\n\n let instanceId = uniquePlayerInstanceId\n ? String(uniquePlayerInstanceId).replace(/-/g, '_')\n : idCounter.increment(cleanIdPrefix);\n\n logEvent('New Instance ID', { instanceId });\n\n var videoDataDefaults = {\n adId: '',\n adLength: 0, //seconds\n adName: '',\n adPodName: '', //preroll, midroll, postroll\n assetID: '', //for SCTE info since no ID or title\n dateBroadcast: '', //js toIsoString ex: \"2019-11-06T17:52:27.351Z\"\n datePublished: '', //js toIsoString ex: \"2019-11-06T17:52:27.351Z\"\n duration: 0, //seconds\n guid: '',\n mpxId: '',\n newsNetwork: '',\n playbackAdapter: '',\n playheadPosition: 0, // miliseconds\n playInitiate: '', // (Continuous,Manual,Auto)\n playListId: '',\n playListLabel: '',\n sentiment: '',\n source: '',\n streamType: '', // (linear, vod)\n title: '',\n videoCount: 0,\n videoType: '',\n custom: {},\n };\n\n // video state WHEN the event happened, not after\n var videoStateDefaults = {\n inAd: false,\n inSegment: false,\n segmentPosition: 1,\n adPosition: 1,\n adBreakPosition: 1,\n playState: 'stop', //stop, play, pause, seek\n fullScreen: false,\n isMuted: false,\n };\n\n // Creating a list of event listeners\n // for the new instance, in case the\n // instance was created after the factory\n // was registered.\n let listenerEntries = Object.entries(eventListenerFactories).map(([factoryId, factory]) => [\n factoryId,\n factory(),\n ]);\n\n let listeners = Object.fromEntries(listenerEntries);\n\n // Creating a new UniVideo instance\n instances[instanceId] = {\n listeners,\n history: [],\n videoData: clone(videoDataDefaults),\n videoState: clone(videoStateDefaults),\n };\n\n // Creating a reference to the instance\n // for use by uniTrack closures\n var instance = instances[instanceId];\n\n var uniTrack = function ({ eventName, eventData = {} }) {\n //reverse compatibility for single argument\n if (typeof arguments[0] === 'string') {\n eventName = arguments[0];\n }\n\n if (eventName !== 'PROGRESS') {\n instance.history.push(eventName);\n }\n\n $t('track', 'uni_videoEvent', {\n eventType: eventName,\n videoData: instance.videoData,\n videoState: instance.videoState,\n instanceId,\n eventData,\n });\n };\n\n uniTrack.videoData = function (newSettings, setDefaults) {\n let videoData = instance.videoData;\n\n if (isEmpty(videoData)) {\n videoData = videoDataDefaults;\n }\n\n if (newSettings) {\n var previousSettings = setDefaults ? videoDataDefaults : videoData;\n instance.videoData = extend(previousSettings, newSettings);\n } else {\n return clone(videoData);\n }\n };\n\n uniTrack.videoState = function (newSettings, setDefaults) {\n let videoState = instance.videoState;\n\n if (isEmpty(videoState)) {\n videoState = videoStateDefaults;\n }\n\n if (newSettings) {\n var previousSettings = setDefaults ? videoStateDefaults : videoState;\n // update state first\n instance.videoState = extend(previousSettings, newSettings);\n // fire state change events\n if (newSettings.isMuted !== undefined && newSettings.isMuted !== previousSettings.isMuted) {\n uniTrack({ eventName: uniVideo.event.STATE.MUTE, eventData: { isMuted: newSettings.isMuted } });\n }\n } else {\n return clone(videoState);\n }\n };\n\n return uniTrack;\n };\n return uniVideo;\n })();\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL471e6a6e4dad43e1936cfe116078575c",name:"60 - Affiliate link CID append [BizDev, d:cnbc.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:60}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["cnbc.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/* globals BI, __CNBC_META_DATA */\n(function() {\n function saveDocIDToUserInfo() {\n console.log('saveDocIDToUserInfo');\n BI.waitForObjAvailable(['__CNBC_META_DATA', '__CNBC_META_DATA.id'], 100, function() {\n const interstitialPage = __CNBC_META_DATA?.relatedTags?.[0]?.name === 'Interstitial page';\n\n if (!interstitialPage) {\n // Storing the document ID in the user object\n // Unless the page is interstitial;\n // where the RedVenture affiliate link modification reflects the previous (non-interstitial) document ID\n BI.userInfo.save({\n RVAffiliateDocID: __CNBC_META_DATA.id\n });\n }\n });\n }\n BI.wrapWithOneTrust({\n fn: saveDocIDToUserInfo,\n featureName: 'RVAffiliateDocID Setter',\n categories: [4],\n });\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0},{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"/* global BI, __CNBC_META_DATA */\n(function () {\n const logEvent = window.BI?.console?.build('Affiliate Links') ?? Function.prototype;\n\n /* SNIPAF: {\"name\": \"modify_affiliate_links\", \"version\":\"2.0\"} */\n // A function that uses a list of \"link modifier\" objects to add\n // query parameters to the hrefs of link elements.\n function modifyAffiliateLinks({\n linkSelector,\n modifiers = [],\n dependencies = [],\n timeLimitInSeconds = 5,\n logEvent = Function.prototype,\n }) {\n window.BI.waitForObjAvailable(dependencies, timeLimitInSeconds, doModification, 1000);\n\n function doModification() {\n document.querySelectorAll(linkSelector).forEach((link) => {\n modifiers.forEach(mod => {\n try {\n let url = new URL(link.href);\n let urlBackup = new URL(url.href);\n\n try {\n mod.apply({ url, link });\n }\n catch (e) {\n url = urlBackup;\n let err = String(e);\n logEvent(`Error - ${mod.name}`, { err, link, mod, url });\n }\n\n if (url.href != link.href) {\n link.href = url.href;\n\n logEvent(`Link Modified - ${mod.name}:`, {\n before: urlBackup.href,\n after: url.href\n });\n }\n }\n catch (e) {\n let err = String(e);\n logEvent(`Unexpected Error - ${mod.name}:`, { err, link });\n }\n });\n });\n }\n }\n /* SNIPAF: END*/\n\n const engineConfig = {\n timeLimitInSeconds: 7,\n logEvent,\n dependencies: [\n '__CNBC_META_DATA',\n '__CNBC_META_DATA.id',\n 'mParticle',\n 'mParticle.Identity',\n 'mParticle.Identity.getCurrentUser',\n 'mParticle.getDeviceId'\n ],\n linkSelector: 'a[href*=\"engine.tech\"]',\n modifiers: [\n {\n name: 'Engine DocId',\n apply: function({ url }) {\n const docId = window.__CNBC_META_DATA?.id ?? null;\n url.searchParams.set('tag.docID', docId);\n },\n },\n {\n name: 'Engine Platform',\n apply: function({ url }) {\n url.searchParams.set('tag.platform', 'web');\n },\n },\n {\n name: 'Engine Referrer',\n apply: function({ url }) {\n try {\n let referrerHost = document.referrer ? new URL(document.referrer).host : 'na';\n let encodedReferrerHost = encodeURI(referrerHost.replace(/[^a-zA-Z0-9]+/g, '-'));\n url.searchParams.set('tag.referrer', encodedReferrerHost);\n }\n catch (e) {\n url.searchParams.set('tag.referrer', 'na');\n }\n },\n },\n {\n name: 'Engine MPID',\n apply: function({ url }) {\n let mpid = window.mParticle?.Identity?.getCurrentUser()?.getMPID() ?? null;\n url.searchParams.set('tag.mpid', mpid);\n },\n },\n {\n name: 'Engine Device Id',\n apply: function({ url }) {\n let deviceId = window.mParticle?.getDeviceId() ?? null;\n url.searchParams.set('tag.deviceId', deviceId);\n },\n }\n ]\n };\n\n const moneyConfig = {\n timeLimitInSeconds: 7,\n logEvent,\n dependencies: [\n '__CNBC_META_DATA',\n '__CNBC_META_DATA.id',\n 'mParticle',\n 'mParticle.Identity',\n 'mParticle.Identity.getCurrentUser',\n 'mParticle.getDeviceId'\n ],\n linkSelector: 'a[href*=\"secure.money\"]',\n modifiers: [\n {\n name: 'Money S1',\n apply: function({ url }) {\n const docId = window.__CNBC_META_DATA?.id ?? null;\n url.searchParams.set('s1', docId);\n },\n },\n {\n name: 'Money S2',\n apply: function({ url }) {\n url.searchParams.set('s2', 'web');\n },\n },\n {\n name: 'Money S3',\n apply: function({ url }) {\n try {\n let referrerHost = document.referrer ? new URL(document.referrer).host : 'na';\n let encodedReferrerHost = encodeURI(referrerHost.replace(/[^a-zA-Z0-9]+/g, '-'));\n url.searchParams.set('s3', encodedReferrerHost);\n }\n catch (e) {\n url.searchParams.set('s3', 'na');\n }\n },\n },\n {\n name: 'Money S4',\n apply: function({ url }) {\n let mpid = window.mParticle?.Identity?.getCurrentUser()?.getMPID() ?? null;\n url.searchParams.set('s4', mpid);\n },\n },\n {\n name: 'Money S5',\n apply: function({ url }) {\n let deviceId = window.mParticle?.getDeviceId() ?? null;\n url.searchParams.set('s5', deviceId);\n },\n },\n {\n name: 'Money S6',\n apply: function({ url, link }) {\n let moduleName = link.dataset?.rvModule ?? 'na';\n url.searchParams.set('s6', moduleName);\n },\n },\n ],\n };\n\n const bankRateConfig = {\n timeLimitInSeconds: 7,\n logEvent,\n dependencies: [\n '__CNBC_META_DATA',\n '__CNBC_META_DATA.id'\n ],\n linkSelector: 'a[href*=\"bankrate.com/landing\"]',\n modifiers: [\n {\n name: 'Bankrate Sub-ID',\n apply: function({ url }) {\n const docId = window.__CNBC_META_DATA?.id ?? null;\n url.searchParams.delete('sub-id'); //remove sub-id if it is available\n url.searchParams.set('s1', docId); //and replace with s1\n },\n }\n ]\n };\n\n const redVentureConfig = {\n timeLimitInSeconds: 7,\n logEvent,\n dependencies: [\n '__CNBC_META_DATA',\n '__CNBC_META_DATA.id',\n 'mParticle',\n 'mParticle.Identity',\n 'mParticle.Identity.getCurrentUser',\n 'mParticle.getDeviceId',\n ],\n linkSelector: 'a[href^=\"https://oc.brcclx.com/\"], a[href^=\"https://oc.staging.creditcards.com/\"]',\n modifiers: [\n {\n name: 'RedVenture TID Param Append',\n apply: function({ url, link }) {\n const docId = __CNBC_META_DATA?.id ?? null;\n let overrideDocId;\n\n const interstitialPage = __CNBC_META_DATA?.relatedTags?.[0]?.name === 'Interstitial page';\n if (interstitialPage) {\n overrideDocId = BI.userInfo.get('RVAffiliateDocID');\n }\n\n function referrer() {\n try {\n let referrerHost = document.referrer ? new URL(document.referrer).host : 'na';\n let encodedReferrerHost = encodeURI(referrerHost.replace(/[^a-zA-Z0-9]+/g, '-'));\n return encodedReferrerHost;\n }\n catch (e) {\n return 'na';\n }\n }\n\n function mpid() {\n return window.mParticle?.Identity?.getCurrentUser()?.getMPID() ?? null;\n }\n\n function deviceId() {\n return window.mParticle?.getDeviceId() ?? null;\n }\n\n function module() {\n return link?.dataset?.rvModuleName ?? 'na';\n }\n\n // RV mps component encoded each of the affiliate parameters into the 'tid' query parameter, as opposed to disparate parameters.\n // e.g. https://oc.brcclx.com?tid=${docId}_web_${referrerHost}_${module}\n url.searchParams.set('tid', `${overrideDocId || docId}_web_${referrer()}_mp${mpid()}_${deviceId()}_${module()}`);\n }\n },\n ]\n };\n\n const impactRadiusConfig = {\n timeLimitInSeconds: 7,\n logEvent,\n dependencies: [\n '__CNBC_META_DATA',\n '__CNBC_META_DATA.id',\n ],\n linkSelector: 'a[href*=\"subId1=impactradius\"]',\n modifiers: [\n {\n name: 'Replace static \"subId1\" with Document ID',\n apply: function({ url }) {\n const docId = __CNBC_META_DATA.id;\n url.searchParams.set('subId1', `cnbcselect${docId}`);\n }\n },\n ]\n };\n\n BI.wrapWithOneTrust({\n featureName: 'Modify Affiliate Links - engine.tech',\n categories: [4,7],\n fn: function () {\n modifyAffiliateLinks(engineConfig);\n },\n });\n\n BI.wrapWithOneTrust({\n featureName: 'Modify Affiliate Links - secure.money',\n categories: [4,7],\n fn: function () {\n modifyAffiliateLinks(moneyConfig);\n },\n });\n\n BI.wrapWithOneTrust({\n featureName: 'Modify Affiliate Links - bankrate.com',\n categories: [4,7],\n fn: function () {\n modifyAffiliateLinks(bankRateConfig);\n },\n });\n\n BI.wrapWithOneTrust({\n featureName: 'Modify Affiliate Links - Red Venture',\n categories: [4,7],\n fn: function () {\n modifyAffiliateLinks(redVentureConfig);\n },\n });\n\n if (location.pathname.startsWith('/select/')) {\n BI.wrapWithOneTrust({\n featureName: 'Modify Affiliate Links - Impact Radius',\n categories: [4,7],\n fn: function () {\n modifyAffiliateLinks(impactRadiusConfig);\n },\n });\n }\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL5391fdc558ad4305b8cefe5d790b3d28",name:"60 - univideo - product adapter (heartbeat) [univideo]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:60}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["cnbc.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,
source:"/*global $t, ADB, BI, uniVideo, AppMeasurement, Visitor */\n(function () {\n /* SNIPAF: {\"name\": \"univideo_to_heartbeat\", \"version\":\"3.0\" } */\n 'use strict';\n\n $t('register', 'univideo_ahb_adobeMediaLoaded');\n\n // Check for required dependencies\n if (typeof ADB === 'undefined' || !ADB.Media) {\n return;\n }\n\n var logEvent = (window.BI && BI.console && BI.console.build('uni_heartbeat')) || Function.prototype;\n var uniEvent = (window.uniVideo && window.uniVideo.event) || {};\n var Media = ADB.Media;\n\n // ========================================\n // Configuration\n // ========================================\n var Configuration = {\n PLAYER: {\n NAME: \"JWPlayer\",\n },\n\n MEDIA_CONFIG: {\n TRACKING_SERVER: \"fandango.hb-api.omtrdc.net\",\n },\n\n APP_MEASUREMENT: {\n RSID: {\n DEFAULT: \"fanversantall\",\n 'www.cnbc.com': \"fancnbc\",\n },\n },\n\n HEARTBEAT: {\n APP_VERSION: \"CNBC Web 1.0.0\"\n },\n };\n\n const setupHeartbeat = () => {\n // Validate uniVideo is available\n if (typeof uniVideo === 'undefined' || !uniVideo.addEventListenerFactory) {\n logEvent('Setup Failed: uniVideo not available', { \n uniVideo: typeof uniVideo !== 'undefined',\n addEventListenerFactory: typeof uniVideo?.addEventListenerFactory !== 'undefined'\n });\n return;\n }\n\n try {\n uniVideo.addEventListenerFactory(function heartbeat() {\n // ========================================\n // Private Variables\n // ========================================\n var _mediaTracker = null;\n var _playheadPosition = 0;\n var sessionIsStarted = false;\n\n // ========================================\n // Initialize Media Tracker\n // ========================================\n const initializeMediaTracker = () => {\n if (_mediaTracker)\n return;\n\n try {\n if (typeof window.__cnbcSyncAdobeOptInFromOneTrust === 'function') {\n window.__cnbcSyncAdobeOptInFromOneTrust();\n }\n\n // Validate required dependencies\n if (typeof window.s === 'undefined') {\n logEvent('Init Failed: s not available');\n return;\n }\n\n if (typeof window.visitor === 'undefined') {\n logEvent('Init Failed: visitor not available');\n return;\n }\n\n if (typeof window.ADB === 'undefined' || !window.ADB.Media) {\n logEvent('Init Failed: ADB.Media not available');\n return;\n }\n\n if (typeof AppMeasurement === 'undefined') {\n logEvent('Init Failed: AppMeasurement not available');\n return;\n }\n\n // Create Visitor instance\n const visitor = window.visitor;\n visitor.trackingServer = s.trackingServer;\n \n // To Be Added when details are available\n // visitor.setCustomerIDs({\n // \"userId\": { \"id\": \"sample-dpid\" },\n // \"puuid\": { \"id\": \"sample-dpuuid\" }\n // });\n\n const isAmp =\n location.hash.indexOf('amp=1') !== -1 ||\n /[?&]amp=1(?:&|$)/.test(location.search) ||\n (document.documentElement &&\n (document.documentElement.hasAttribute('amp') ||\n document.documentElement.hasAttribute('\\u26a1')));\n const isEmbedded = location.pathname.indexOf('/embedded-video/') !== -1;\n const noValue = 'unknown';\n \n const contentType = function () {\n if (isAmp || isEmbedded) {\n return 'offsite';\n } else {\n return s.contextData['news.contenttype'];\n }\n };\n \n const ampContentType = () => {\n const getParamFromHash = (url, Param) => {\n const re = new RegExp('#.*[?&]' + Param + '=([^&]+)(&|$)');\n const match = url.match(re);\n return match ? match[1] : '';\n };\n\n if (getParamFromHash(location.hash, 'pageType') === 'video') \n return 'AMP:canonical video';\n\n return 'AMP:post';\n };\n\n const { host } = window.location;\n\n const playerStyle = function () {\n switch (contentType()) {\n case 'vertical':\n case 'subvertical':\n case 'show':\n return 'Front Player';\n case 'cover':\n return 'Cover Player';\n case 'canonical video':\n return 'Canonical';\n case 'post':\n return 'Inline';\n case 'offsite':\n if (isAmp) {\n return 'AMP Player';\n } else {\n return 'Offsite Embedded';\n }\n break;\n default:\n return noValue;\n }\n };\n\n // Create AppMeasurement instance\n const appMeasurement = new AppMeasurement(Configuration.APP_MEASUREMENT.RSID[host] || Configuration.APP_MEASUREMENT.RSID.DEFAULT);\n appMeasurement.visitor = visitor;\n appMeasurement.trackingServer = s.trackingServer;\n appMeasurement.trackingServerSecure = s.trackingServerSecure;\n appMeasurement.account = s.account;\n appMeasurement.pageName = isAmp ? `cnbc:${ampContentType()}:embeddedVideo` : s.pageName;\n appMeasurement.charSet = \"UTF-8\";\n\n // Create MediaConfig\n const mediaConfig = new ADB.MediaConfig();\n \n mediaConfig.trackingServer = Configuration.MEDIA_CONFIG.TRACKING_SERVER;\n mediaConfig.playerName = Configuration.PLAYER.NAME;\n mediaConfig.appVersion = Configuration.HEARTBEAT.APP_VERSION;\n mediaConfig.ssl = true;\n mediaConfig.debugLogging = true;\n \n mediaConfig.channel = (function () {\n if (playerStyle() === 'Offsite Embedded') {\n return 'Off-domain';\n }\n return 'On-domain';\n })();\n\n\n // Configure Media SDK with AppMeasurement\n Media.configure(mediaConfig, appMeasurement);\n \n // Create TrackerConfig to pass to Media.getInstance()\n const trackerConfig = {\n [Media.TrackerConfig.PlayerName]: Configuration.PLAYER.NAME,\n };\n \n // Get Media tracker instance with trackerConfig\n _mediaTracker = Media.getInstance(trackerConfig);\n \n if (!_mediaTracker) {\n logEvent('Init Failed: Media.getInstance returned null');\n return;\n }\n\n logEvent('Media Tracker Created', { _mediaTracker, appMeasurement, mediaConfig });\n } catch (error) {\n logEvent('Init Error', { error: error.message, stack: error.stack });\n }\n }\n\n // ========================================\n // Event Handlers\n // ========================================\n\n const onVideoLoad = (videoData, videoState, customContextData) => {\n if (!_mediaTracker)\n return;\n\n if(sessionIsStarted)\n return;\n \n function getStreamType(streamType, Media) {\n if (streamType === 'audio') {\n return Media.MediaType.Audio;\n } else if (streamType === 'vod') {\n return Media.StreamType.VOD;\n }\n return Media.StreamType.Live;\n }\n \n const streamType = getStreamType(videoData.streamType, Media);\n \n // Determine media ID: use guid for VOD and audio content, program name for live streams\n const isAudioOrVod = videoData.streamType === 'vod' || videoData.custom?.subType === 'audio';\n const mediaId = isAudioOrVod ? (videoData.guid || 'unknown-id') : (customContextData.videoprogram || 'unknown');\n \n const mediaInfo = Media.createMediaObject(\n videoData.title || 'Unknown Title',\n mediaId,\n videoData.duration || 0,\n getStreamType(videoData.streamType, Media),\n videoData.streamType === 'audio' ? Media.MediaType.Audio : Media.MediaType.Video\n );\n \n customContextData[Media.VideoMetadataKeys.Show] = customContextData.videoprogram;\n\n _mediaTracker.trackSessionStart(mediaInfo, customContextData);\n sessionIsStarted = true;\n }\n\n const onPlay = () => {\n if (!sessionIsStarted || !_mediaTracker)\n return;\n\n _mediaTracker.trackPlay();\n }\n\n const onPause = () => {\n if (!sessionIsStarted || !_mediaTracker)\n return;\n\n _mediaTracker.trackPause();\n }\n\n const onSeekStart = () => {\n if (!sessionIsStarted || !_mediaTracker)\n return;\n\n _mediaTracker.trackEvent(Media.Event.SeekStart);\n }\n\n const onSeekComplete = () => {\n if (!sessionIsStarted || !_mediaTracker)\n return;\n\n _mediaTracker.trackEvent(Media.Event.SeekComplete);\n }\n\n const onComplete = () => {\n if (!sessionIsStarted || !_mediaTracker)\n return;\n\n _mediaTracker.trackComplete();\n _mediaTracker.trackSessionEnd();\n sessionIsStarted = false;\n }\n\n const onStop = () => {\n if (!sessionIsStarted || !_mediaTracker)\n return;\n\n _mediaTracker.trackSessionEnd();\n sessionIsStarted = false;\n }\n\n const onAdBreakStart = (videoData, videoState) => {\n if (!sessionIsStarted || !_mediaTracker)\n return;\n \n var adBreakInfo = Media.createAdBreakObject(\n videoData.adPodName || 'Unknown Ad Break',\n videoState.adBreakPosition || 1,\n videoState.playheadPosition || 0\n );\n \n _mediaTracker.trackEvent(Media.Event.AdBreakStart, adBreakInfo);\n }\n\n const onAdBreakComplete = () => {\n if (!sessionIsStarted || !_mediaTracker)\n return;\n\n _mediaTracker.trackEvent(Media.Event.AdBreakComplete);\n }\n\n const onAdStart = (videoData, videoState, customContextData) => {\n if (!sessionIsStarted || !_mediaTracker)\n return;\n \n var adInfo = Media.createAdObject(\n videoData.adName || 'Unknown Ad',\n videoData.adId || 'unknown-ad-id',\n videoState.adPosition || 1,\n Math.round(videoData.adLength) || 0\n );\n \n _mediaTracker.trackEvent(Media.Event.AdStart, adInfo, customContextData);\n }\n\n const onAdComplete = () => {\n if (!sessionIsStarted || !_mediaTracker)\n return;\n\n _mediaTracker.trackEvent(Media.Event.AdComplete);\n }\n\n const onPlayheadUpdate = (playheadPosition) => {\n if (!sessionIsStarted || !_mediaTracker)\n return;\n\n _playheadPosition = playheadPosition;\n _mediaTracker.updatePlayhead(Math.round(_playheadPosition / 1000) || 0);\n }\n\n // ========================================\n // Context Data Builder\n // ========================================\n const buildContextData = (videoData) => {\n logEvent('Build Context', { videoData });\n const noValue = 'unknown';\n const now = new Date();\n const days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];\n const getTwoDigitTime = val => (val < 10 ? `0${val}` : val);\n\n\n try {\n return {\n id: videoData.guid || noValue,\n name: videoData.title || noValue,\n playerVersion: videoData.custom.playerVersion || noValue,\n videoairdate: videoData.dateBroadcast !== '' ? new Date(Date.parse(videoData.dateBroadcast)).toLocaleDateString('en-US') : noValue, //ex '6/4/2023'\n videopubdate: videoData.datePublished !== '' ? new Date(Date.parse(videoData.datePublished)).toLocaleDateString('en-US') : noValue,\n videoapp: videoData.custom.appName || noValue,\n videoappversion: videoData.custom.appVersion || noValue,\n videocallsign: noValue,\n videocliptype: noValue,\n videodate: now.toLocaleDateString(), // format('MM/DD/YYYY')\n videoday: days[now.getDay()],\n videodaypart: noValue,\n videodomain: window.location.hostname || noValue,\n videoepnumber: videoData.custom.seriesEpisodeNumber || noValue,\n videoguid: videoData.streamType === 'vod' && videoData.guid || noValue, //ex '5724738528402108117'\n videohour: `${getTwoDigitTime(now.getHours())}:00`, // format('HH:00')\n videoinitiate: videoData.playInitiate || noValue,\n videominute: `${getTwoDigitTime(now.getHours())}:${getTwoDigitTime(now.getMinutes())}`, // format('HH:mm')\n videomvpd: videoData.custom.mvpd || noValue, //ex Comcast_SSO\n videoNetwork: videoData.newsNetwork || 'CNBC',\n videoplatform: 'PC',\n videoplayertech: videoData.playbackAdapter || noValue, //ex 'HLS'\n videoplayerurl: window.location.toString() || noValue,\n videoprogram: videoData.custom.program || videoData.source || noValue, //ex 'Last Call'\n videoresearchtitle: videoData.custom.program || videoData.source || noValue, //ex 'Last Call'\n videoscreen: 'Normal',\n videoseason: videoData.custom.tvSeasonNumber || noValue,\n videostatus: videoData.custom.videoStatus || (videoData.streamType === 'linear' ? 'Unrestricted' : 'Restricted'),\n videosubcat1: videoData.custom.videosubcat1 || noValue,\n videosubcat2: videoData.custom.videosubcat2 || noValue,\n videotitle: videoData.title || noValue, //ex 'Last Call'\n videotmsid: videoData.custom.episodeGuid || noValue, //ex 'EP046484850064'\n }\n } catch (err) {\n return {}\n }\n };\n\n // ========================================\n // Main Event Listener\n // ========================================\n logEvent('Creating Event Listener');\n\n return function eventListener(_e, data) {\n var videoData = data.videoData || {};\n var videoState = data.videoState || {};\n\n // Initialize tracker on first event\n if (!_mediaTracker)\n initializeMediaTracker();\n\n if (!_mediaTracker)\n return;\n\n // Handle progress events\n if (data.eventType === uniEvent.PROGRESS) {\n onPlayheadUpdate(videoData.playheadPosition);\n return;\n }\n\n // Build context data for events that need it\n let customContextData = null;\n if (data.eventType === uniEvent.PLAY || data.eventType === uniEvent.AD_PLAY || data.eventType === uniEvent.VIDEO_LOADED) {\n customContextData = buildContextData(videoData);\n }\n\n logEvent(data.eventType, { data, contextData: customContextData, state: videoState });\n\n // Route events to handlers\n switch (data.eventType) {\n case uniEvent.VIDEO_LOADED:\n // End previous session if exists\n if (videoState.playState !== 'stop') {\n _mediaTracker.trackSessionEnd();\n sessionIsStarted = false;\n }\n // Don't start session here - wait for PLAY or AD_PLAY\n break;\n\n case uniEvent.PLAY:\n // Start session on first play if not already started\n if (!sessionIsStarted && customContextData) {\n onVideoLoad(videoData, videoState, customContextData);\n }\n onPlay();\n break;\n\n case uniEvent.PAUSE:\n onPause();\n break;\n\n case uniEvent.SEEK_START:\n onSeekStart();\n break;\n\n case uniEvent.SEEK_COMPLETE:\n onSeekComplete();\n break;\n\n case uniEvent.COMPLETE:\n onComplete();\n break;\n\n case uniEvent.STOP:\n onStop();\n break;\n\n case uniEvent.AD_BREAK_START:\n onAdBreakStart(videoData, videoState);\n break;\n\n case uniEvent.AD_BREAK_COMPLETE:\n onAdBreakComplete();\n break;\n\n case uniEvent.AD_PLAY:\n // Start session on ad play if not already started\n if (!sessionIsStarted && customContextData) {\n onVideoLoad(videoData, videoState, customContextData);\n }\n onAdStart(videoData, videoState, customContextData);\n break;\n\n case uniEvent.AD_COMPLETE:\n onAdComplete();\n break;\n\n default:\n break;\n }\n };\n });\n logEvent('Event Listener Registered');\n } catch (error) {\n logEvent('Event Listener Registration Error', { error: error.message, stack: error.stack });\n }\n };\n /* SNIPAF: END */\n\n const connectUniVideoToHeartbeat = () => {\n // Check dependencies before waiting\n const checkDeps = () => {\n const deps = {\n s: typeof window.s !== 'undefined',\n contextData: typeof window.s?.contextData !== 'undefined',\n trackingServer: typeof window.s?.trackingServer !== 'undefined',\n trackingServerSecure: typeof window.s?.trackingServerSecure !== 'undefined',\n visitor: typeof window.visitor !== 'undefined'\n };\n return deps;\n };\n\n // Log initial state\n const initialDeps = checkDeps();\n logEvent('Initial Dependency Check', initialDeps);\n\n BI.waitForObjAvailable(['s', 's.contextData', 's.trackingServer', 's.trackingServerSecure', 'visitor'], 200, () => {\n logEvent('Setting Up', { Configuration, deps: checkDeps() });\n try {\n setupHeartbeat();\n } catch (error) {\n logEvent('Setup Error', { error: error.message, stack: error.stack });\n }\n });\n\n // Also set up a fallback check after timeout period\n setTimeout(() => {\n const deps = checkDeps();\n const allAvailable = Object.values(deps).every(v => v === true);\n if (!allAvailable) {\n logEvent('Dependencies Still Missing', deps);\n // Try to set up anyway if critical deps are available\n if (deps.s && deps.trackingServer && typeof window.ADB !== 'undefined' && window.ADB.Media) {\n logEvent('Attempting Setup with Partial Dependencies', deps);\n try {\n setupHeartbeat();\n } catch (error) {\n logEvent('Fallback Setup Error', { error: error.message });\n }\n }\n }\n }, 20000); // 200 tries * 100ms = 20 seconds\n }\n\n BI.wrapWithOneTrust({\n fn: connectUniVideoToHeartbeat,\n featureName: 'UniVideo Heartbeat',\n categories: [7]\n });\n})();",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL53b7a0bf9ade458ebc3c36257826564e",name:"50 - Action - Piano Template [d:cnbc.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["cnbc.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/* globals BI, s, $t, __CNBC_META_DATA */\n(function () {\n const trackAdobe = (event) => {\n const actionContextData = {\n 'cnbc.action': event.action,\n 'cnbc.platform': event.platform,\n 'cnbc.brand': event.brand,\n 'cnbc.templateId': event.templateId,\n 'cnbc.templateVariantId': event.templateVariantId,\n 'cnbc.experienceId': event.experienceId,\n 'cnbc.displayMode': event.displayMode,\n };\n\n s.contextData = {};\n s.contextData = actionContextData;\n const combinedLinkTrackVars = Object.keys(actionContextData).map((key) => `contextData.${key}`);\n s.linkTrackVars = combinedLinkTrackVars.join(',');\n s.tl(true, 'o', event.action);\n\n for (var item in actionContextData) {\n delete s.contextData[item];\n }\n };\n\n const registerTracking = () => {\n $t('on', 'bte_event', (e, { data, eventName }) => {\n if (eventName === 'pianoTemplateOnLoad') {\n BI.waitForObjAvailable(['s', 's.tl', '__CNBC_META_DATA', '__CNBC_META_DATA.id'], 50, () => {\n const eventData = {\n action: `pianoTemplateLoaded:${__CNBC_META_DATA.id}`,\n platform: 'web',\n ...data.dataset,\n };\n // track events in Adobe\n trackAdobe(eventData);\n });\n }\n });\n };\n\n BI.wrapWithOneTrust({\n fn: registerTracking,\n featureName: 'Piano Template Tracking',\n categories: [4,7],\n });\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL5807f968284144f3bcf5cb33da5ea0e2",name:"DR - univideo - player adapter (cvsdk) [univideo, d:cnbc.com]",events:[{modulePath:"core/src/lib/events/domReady.js",settings:{},ruleOrder:60}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["cnbc.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"https://assets.adobedtm.com/77ca722dd820/bbaaa56c8833/95c1ebbd94f6/RCd9d51b1248324b86abf38354b3fb8896-source.min.js",language:"javascript",isExternal:!0},timeout:2e3,delayNext:!0}]},{id:"RL5cc987fb7baa48a9a699ae3b21c4c01f",name:"25 - MParticle",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:25}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["cnbc.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,
source:"/* === source 0 === */\n/* global mps, $t, BI, mParticle, __CNBC_META_DATA */\n(function() {\n // Other rules call `window?.cnbcAmplitudeLogEvent?.(...)`. Defined once here; if this rule never runs, optional chaining no-ops.\n // Every Amplitude + BI `amplitudeLogEvents` payload merges `__CNBC_META_DATA.user` (when present) under event props; explicit event attributes win on key collisions.\n if (typeof window.cnbcAmplitudeLogEvent !== 'function') {\n (function initCnbcAmplitudeEventBridge() {\n console.log('[Amplitude] Initializing event bridge');\n var pageHref = (window.location && window.location.href) || '';\n var amplitudeInstanceName =\n pageHref.indexOf('https://www.cnbc.com/') === 0 || pageHref === 'https://www.cnbc.com'\n ? 'web prod'\n : 'web dev';\n var AMPLITUDE_QUEUE_GLOBAL_KEY = '__cnbcAmplitudeEventQueue';\n var QUEUE_POLL_INTERVAL_MS = 150;\n var QUEUE_POLL_MAX_TICKS = 400;\n var queueFlushIntervalId = null;\n\n function getAmplitudeLogEventsChannel() {\n return (window.BI && BI.console && BI.console.build && BI.console.build('amplitudeLogEvents')) || Function.prototype;\n }\n\n function getAmplitudeSdkClient() {\n try {\n var amp = window.amplitude;\n if (!amp || typeof amp.track !== 'function') {\n return null;\n }\n return window.__amplitudeInitialized ? amp : null;\n } catch (err) {\n return null;\n }\n }\n\n /**\n * Snapshot of CNBC meta user for Amplitude event properties (aligned with bedrock/subscription flags used in AppMeasurement).\n * Logged-out: explicit booleans / NA so events remain filterable without missing keys after login/logout transitions.\n */\n function buildCnbcMetaUserContextForAmplitude() {\n var meta = typeof window !== 'undefined' ? window.__CNBC_META_DATA : null;\n var user = meta && meta.user;\n var loggedIn = !!(user && user.userId != null && String(user.userId).length > 0);\n var out = {\n 'CNBC Logged In': loggedIn,\n 'CNBC User Id': 'NA',\n 'CNBC Bedrock Data': 'NA',\n 'Pro User': false,\n 'Investing Club User': false,\n 'Plus User': false,\n 'Bundle User': false,\n };\n if (!loggedIn) {\n return out;\n }\n out['CNBC User Id'] = user.userId != null ? String(user.userId) : 'NA';\n out['Pro User'] = !!user.isPro;\n out['Investing Club User'] = !!user.isInvestingClubUser;\n out['Plus User'] = !!user.isPlusUser;\n out['Bundle User'] = !!user.hasPurchasedBundle;\n var status;\n if (user.isPro && user.isInvestingClubUser) {\n status = 'PRO,investingclub';\n } else if (user.isPro) {\n status = 'PRO';\n } else if (user.isPlusUser) {\n status = 'plus';\n } else if (user.isInvestingClubUser) {\n status = 'investingclub';\n } else {\n status = 'free';\n }\n out['CNBC Bedrock Data'] = String(user.userId) + ':registered:' + status + ':logged-in';\n if (user.email) {\n out['CNBC User Email'] = user.email;\n }\n try {\n if (window.mParticle && window.mParticle.Identity && typeof window.mParticle.Identity.getCurrentUser === 'function') {\n var current = window.mParticle.Identity.getCurrentUser();\n var mpid = current && typeof current.getMPID === 'function' ? current.getMPID() : null;\n if (mpid) {\n out['CNBC MPID'] = String(mpid);\n }\n }\n } catch (e) {\n /* ignore */\n }\n return out;\n }\n\n function syncAmplitudeUserIdWithMeta(client) {\n if (!client || typeof client.setUserId !== 'function') {\n return;\n }\n try {\n var meta = window.__CNBC_META_DATA;\n var uid = meta && meta.user && meta.user.userId;\n if (uid != null && String(uid).length > 0) {\n client.setUserId(String(uid));\n } else {\n client.setUserId(null);\n }\n } catch (e) {\n /* ignore */\n }\n }\n\n function drainQueuedAmplitudeEvents() {\n var client = getAmplitudeSdkClient();\n var pendingEventQueue = window[AMPLITUDE_QUEUE_GLOBAL_KEY];\n var registry = window.__cnbcAmplitudeEventRegistry;\n if (!client || !pendingEventQueue || !pendingEventQueue.length) {\n console.log('[Amplitude] Queue: No events to drain');\n return;\n }\n var debugLog = getAmplitudeLogEventsChannel();\n var initialLength = pendingEventQueue.length;\n syncAmplitudeUserIdWithMeta(client);\n while (pendingEventQueue.length) {\n var queuedEvent = pendingEventQueue[0];\n try {\n console.log('[Amplitude] Flushing queued event:', queuedEvent.eventName);\n client.track(queuedEvent.eventName, queuedEvent.eventProperties);\n registry.eventsSent++;\n registry.eventLog.push({ eventName: queuedEvent.eventName, status: 'flushed', timestamp: new Date().toISOString() });\n pendingEventQueue.shift();\n debugLog('flushed queued', queuedEvent.eventName);\n } catch (err) {\n registry.failedEvents++;\n registry.eventLog.push({ eventName: queuedEvent.eventName, status: 'flush_error', error: err && err.message, timestamp: new Date().toISOString() });\n console.error('[Amplitude] Queue flush error:', queuedEvent.eventName, err && err.message);\n debugLog('flush item failed', err && err.message, queuedEvent.eventName);\n break;\n }\n }\n console.log('[Amplitude] Queue drained:', (initialLength - pendingEventQueue.length), 'events');\n }\n\n function startQueueFlushPollingIfNeeded() {\n if (queueFlushIntervalId != null) {\n return;\n }\n var pollTickCount = 0;\n queueFlushIntervalId = setInterval(function () {\n pollTickCount += 1;\n drainQueuedAmplitudeEvents();\n var pendingEventQueue = window[AMPLITUDE_QUEUE_GLOBAL_KEY];\n if (getAmplitudeSdkClient() && (!pendingEventQueue || !pendingEventQueue.length)) {\n clearInterval(queueFlushIntervalId);\n queueFlushIntervalId = null;\n return;\n }\n if (pollTickCount >= QUEUE_POLL_MAX_TICKS) {\n clearInterval(queueFlushIntervalId);\n queueFlushIntervalId = null;\n getAmplitudeLogEventsChannel()('queue stopped (max wait)', (pendingEventQueue && pendingEventQueue.length) || 0);\n }\n }, QUEUE_POLL_INTERVAL_MS);\n }\n\n // Event tracking registry for debugging\n window.__cnbcAmplitudeEventRegistry = window.__cnbcAmplitudeEventRegistry || {\n totalEventsCalled: 0,\n eventsSent: 0,\n eventsQueued: 0,\n failedEvents: 0,\n eventLog: []\n };\n\n window.cnbcAmplitudeLogEvent = function cnbcAmplitudeLogEvent(eventName, eventProperties) {\n var registry = window.__cnbcAmplitudeEventRegistry;\n registry.totalEventsCalled++;\n \n console.log('[Amplitude] Event tracked:', eventName);\n var fromEvent =\n eventProperties && typeof eventProperties === 'object' ? Object.assign({}, eventProperties) : {};\n var clonedEventProperties = Object.assign({}, buildCnbcMetaUserContextForAmplitude(), fromEvent);\n getAmplitudeLogEventsChannel()('logEvent', eventName, clonedEventProperties);\n var client = getAmplitudeSdkClient();\n if (client) {\n try {\n syncAmplitudeUserIdWithMeta(client);\n client.track(eventName, clonedEventProperties);\n drainQueuedAmplitudeEvents();\n registry.eventsSent++;\n registry.eventLog.push({ eventName: eventName, status: 'sent', timestamp: new Date().toISOString() });\n console.log('[Amplitude] Event sent:', eventName);\n return;\n } catch (err) {\n registry.failedEvents++;\n registry.eventLog.push({ eventName: eventName, status: 'error', error: err && err.message, timestamp: new Date().toISOString() });\n console.error('[Amplitude] Event error:', eventName, err && err.message);\n getAmplitudeLogEventsChannel()('amplitude logEvent error', err && err.message);\n }\n }\n window[AMPLITUDE_QUEUE_GLOBAL_KEY] = window[AMPLITUDE_QUEUE_GLOBAL_KEY] || [];\n window[AMPLITUDE_QUEUE_GLOBAL_KEY].push({ eventName: eventName, eventProperties: clonedEventProperties });\n registry.eventsQueued++;\n registry.eventLog.push({ eventName: eventName, status: 'queued', timestamp: new Date().toISOString() });\n startQueueFlushPollingIfNeeded();\n };\n\n \n var amplitudeCheckInterval = setInterval(function() {\n if (window.amplitude && typeof window.amplitude.track === 'function') {\n window.__amplitudeInitialized = true;\n clearInterval(amplitudeCheckInterval);\n console.log('[Amplitude] SDK initialized');\n drainQueuedAmplitudeEvents();\n window.__cnbcAmplitudeSdkStatus = 'READY';\n }\n }, 100);\n\n setTimeout(function() {\n if (!window.__amplitudeInitialized) {\n window.__amplitudeInitialized = true;\n window.__cnbcAmplitudeSdkStatus = 'QUEUE_ONLY';\n console.warn('[Amplitude] SDK detection timeout - queue-only mode enabled');\n clearInterval(amplitudeCheckInterval);\n }\n }, 3000);\n\n if (typeof window.addEventListener === 'function') {\n window.addEventListener('load', function onWindowLoadDrainAmplitudeQueue() {\n window.removeEventListener('load', onWindowLoadDrainAmplitudeQueue);\n drainQueuedAmplitudeEvents();\n if (window[AMPLITUDE_QUEUE_GLOBAL_KEY] && window[AMPLITUDE_QUEUE_GLOBAL_KEY].length) {\n startQueueFlushPollingIfNeeded();\n }\n });\n }\n\n // DEBUG HELPER: Call window.cnbcAmplitudeDebug() in console to see tracking status\n window.cnbcAmplitudeDebug = function() {\n var registry = window.__cnbcAmplitudeEventRegistry;\n var queue = window[AMPLITUDE_QUEUE_GLOBAL_KEY] || [];\n var sdkStatus = window.__cnbcAmplitudeSdkStatus || 'INITIALIZING';\n var sdkReady = getAmplitudeSdkClient() !== null;\n \n console.log('[Amplitude] --- EVENT TRACKING STATUS ---');\n console.log('SDK Status:', sdkStatus, (sdkReady ? 'READY' : 'NOT READY'));\n console.log('Events Called:', registry.totalEventsCalled);\n console.log('Events Sent:', registry.eventsSent);\n console.log('Events Queued:', registry.eventsQueued);\n console.log('Events Failed:', registry.failedEvents);\n console.log('Queue Size:', queue.length);\n \n if (registry.eventLog.length > 0) {\n console.log('[Amplitude] --- EVENT LOG (last 20) ---');\n registry.eventLog.slice(-20).forEach(function(log) {\n var statusStr = log.status.toUpperCase();\n if (log.error) {\n console.log(' [' + statusStr + ']', log.eventName, '- Error:', log.error);\n } else {\n console.log(' [' + statusStr + ']', log.eventName);\n }\n });\n }\n \n if (queue.length > 0) {\n console.log('[Amplitude] --- PENDING QUEUE ---');\n queue.forEach(function(event, idx) {\n console.log(' ' + (idx + 1) + '.', event.eventName);\n });\n }\n };\n \n console.log('[Amplitude] Debug helper ready: window.cnbcAmplitudeDebug()');\n })();\n }\n\n function resolveUser({ timeLimit = 3000 } = {}) {\n console.log('mParticle flow: resolveUser start', timeLimit);\n return new Promise((resolve) => {\n let didTimeout = false;\n\n let timeout = setTimeout(function() {\n didTimeout = true;\n console.warn('mParticle flow: resolveUser timeout (proceeding)', timeLimit);\n resolve(undefined);\n }, timeLimit);\n\n BI.waitForObjAvailable(['__CNBC_META_DATA','__CNBC_META_DATA.user','__CNBC_META_DATA.user.userId'], (timeLimit/100), function() {\n console.log('mParticle flow: resolveUser meta/user available', {\n timedOut: didTimeout,\n hasUserId: !!(typeof __CNBC_META_DATA !== 'undefined' && __CNBC_META_DATA.user && __CNBC_META_DATA.user.userId),\n });\n if (didTimeout) {\n return;\n }\n\n clearTimeout(timeout);\n resolve(__CNBC_META_DATA.user);\n });\n });\n }\n\n function loadmParticleIntegration() {\n console.log('mParticle flow: loadmParticleIntegration', document.location.host);\n\n const logEvent = (window.BI && BI.console && BI.console.build('mParticle Integration')) || Function.prototype;\n $t('register', 'mParticle_setIdResolved');\n\n let mparticleapikey='';\n if (document.location.host == 'www.cnbc.com' || document.location.host == 'dealornodeal.cnbc.com') {\n mparticleapikey = 'us1-99f689156b88a84fbe3383020acfea25';\n } else {\n mparticleapikey = 'us1-c4550558f555d448b588df56e68d0ab1';\n }\n console.log('mParticle flow: API key', mparticleapikey);\n\n (function(apiKey) {\n let mParticle = window.mParticle = window.mParticle || {};\n var mpsCkRead = typeof mps !== 'undefined' && mps && mps._ck && typeof mps._ck.r === 'function';\n var aam_mid = null;\n var aam_uuid = null;\n if (mpsCkRead) {\n try {\n var amcvParts = decodeURIComponent(mps._ck.r('AMCV_8CF467C25245AE3F0A490D4C%40AdobeOrg')).split('|');\n aam_mid = amcvParts && amcvParts.length > 4 ? amcvParts[4] : null;\n aam_uuid = mps._ck.r('aam_uuid');\n } catch (e) {\n console.warn('mParticle flow: AMCV / aam cookie read failed', e);\n }\n }\n\n const metaUser = window.__CNBC_META_DATA && window.__CNBC_META_DATA.user;\n const customerid = metaUser && metaUser.userId;\n const email = metaUser && metaUser.email;\n\n console.log('mParticle flow: identities source', { aam_mid: !!aam_mid, aam_uuid: !!aam_uuid, customerid: customerid || null, hasEmail: !!email });\n\n const userIdentities = {\n other3: aam_uuid,\n other4: aam_mid,\n ...(customerid && { customerid }),\n ...(email && { email })\n };\n\n //define config\n mParticle.config = {\n identifyRequest: {\n userIdentities\n },\n identityCallback: function(result) {\n console.log('mParticle flow: identityCallback fired');\n const currentUser = result.getUser();\n const mpId = currentUser?.getMPID();\n console.log('mParticle flow: MPID', mpId);\n if (BI?.userInfo?.save) {\n BI.userInfo.save({ mpid: mpId });\n }\n if (result.getUser()) {\n result.getUser().setUserAttribute('CNBCMPID', mpId);\n $t('track', 'mParticle_setIdResolved', { mpid: mpId});\n\n }\n },\n useCookieStorage: false,\n dataPlan: {\n planId: 'draft_cnbc_data_plan',\n planVersion: 1\n }\n };\n\n console.log('mParticle flow: mParticle.config set, injecting SDK');\n\n // Add mParticle script dynamically to the page, insert before the first script tag\n var mp = document.createElement('script');\n mp.type = 'text/javascript';\n mp.async = true;\n mp.src = ('https:' == document.location.protocol ? 'https://jssdkcdns' : 'http://jssdkcdn') +\n '.mparticle.com/js/v2/' +\n apiKey +\n '/mparticle.js';\n\n mp.onload = function () {\n console.log('mParticle flow: SDK script onload', mp.src);\n };\n mp.onerror = function () {\n console.warn('mParticle flow: SDK script onerror', mp.src);\n };\n\n var s = document.getElementsByTagName('script')[0];\n if (s && s.parentNode) {\n s.parentNode.insertBefore(mp, s);\n } else {\n (document.head || document.body || document.documentElement).appendChild(mp);\n console.warn('mParticle flow: no script[0], appended SDK to head/body');\n }\n })(mparticleapikey);\n\n console.log('mParticle flow: waitForObjAvailable mParticle, mps, __CNBC_META_DATA');\n\n BI.waitForObjAvailable(['mParticle', 'mParticle.ready', 'mps', 'mps.pagevars', '__CNBC_META_DATA'], 100, function() {\n console.log('mParticle flow: deps ready, define _executemParticle + ready');\n mps._executemParticle = function() {\n let isInvestingClubContent = false;\n let isCnbcPlusContent = false;\n let isRegisteredOnly = false;\n\n let section;\n if (__CNBC_META_DATA && __CNBC_META_DATA.contentClassification && __CNBC_META_DATA.contentClassification.includes('investingClub')) {\n isInvestingClubContent = true;\n }\n if (__CNBC_META_DATA && __CNBC_META_DATA.contentClassification && __CNBC_META_DATA.contentClassification.includes('registeredOnly')) {\n isRegisteredOnly = true;\n }\n if (__CNBC_META_DATA.contentClassification && __CNBC_META_DATA.contentClassification.includes('cnbcplus')) {\n isCnbcPlusContent = true;\n }\n if (__CNBC_META_DATA.type == 'franchise' || __CNBC_META_DATA.type == 'quote'){\n section = (__CNBC_META_DATA.tagName);\n }\n else if (__CNBC_META_DATA.section && __CNBC_META_DATA.section.tagName) {\n section = (__CNBC_META_DATA.section.tagName);\n }\n else {\n section = 'null';\n }\n\n let paywallexists;\n\n if (mps.pagevars.type != 'franchise') {\n const isProUser = __CNBC_META_DATA.user && __CNBC_META_DATA.user.isPro;\n const isICUser = __CNBC_META_DATA.user && __CNBC_META_DATA.user.isInvestingClubUser;\n const isPlusUser = __CNBC_META_DATA.user && __CNBC_META_DATA.user.isPlusUser;\n\n if (__CNBC_META_DATA.premium == true && !isProUser) {\n paywallexists = 'protrue';\n }\n else if (isInvestingClubContent && !isICUser) {\n paywallexists = 'investingclubtrue';\n }\n else if (isCnbcPlusContent && !isPlusUser) {\n paywallexists = 'plustrue';\n }\n else{\n paywallexists = 'false';\n }\n }\n\n let asset_status;\n\n if (__CNBC_META_DATA.premium == true) {\n asset_status = 'Premium';\n } else if (isInvestingClubContent) {\n asset_status= 'investingclub';\n } else if (isCnbcPlusContent) {\n asset_status = 'cnbcplus';\n } else if (isRegisteredOnly) {\n asset_status = 'registeredonly';\n } else {\n asset_status = 'Unrestricted';\n }\n const urlParams = new URLSearchParams(window.location.search);\n const source = urlParams.get('__source');\n logEvent('source', source);\n const utmmedium = urlParams.get('utm_medium');\n const utmsource = urlParams.get('utm_source');\n const utmcampaign = urlParams.get('utm_campaign');\n const utmcontent = urlParams.get('utm_content');\n var pageAttrs = {'Page Type': (!__CNBC_META_DATA.type) ? ('null') : (__CNBC_META_DATA.type),\n 'Referrer': (!document.referrer) ? ('null') : (document.referrer),\n 'Page URL': window.location.toString(),\n 'Template': (!__CNBC_META_DATA.template) ? ('null') : (__CNBC_META_DATA.template),\n 'Brand': (!__CNBC_META_DATA.brand) ? ('null') : (__CNBC_META_DATA.brand),\n 'Page Name': (!__CNBC_META_DATA.pageName) ? ('null') : (__CNBC_META_DATA.pageName),\n 'Asset Status': asset_status,\n 'Platform': 'web',\n 'Page Section': section,\n 'Variation': __CNBC_META_DATA.variation,\n 'Hier1': (!__CNBC_META_DATA.sectionHierarchy || !__CNBC_META_DATA.sectionHierarchy[0] || !__CNBC_META_DATA.sectionHierarchy[0].tagNameFormattedFull) ? ('NA') : (__CNBC_META_DATA.sectionHierarchy[0].tagNameFormattedFull),\n 'Hier2': (!__CNBC_META_DATA.sectionHierarchy || !__CNBC_META_DATA.sectionHierarchy[1]) ? ('NA') : (__CNBC_META_DATA.sectionHierarchy[1].tagNameFormattedFull),\n 'Hier3': (!__CNBC_META_DATA.sectionHierarchy || !__CNBC_META_DATA.sectionHierarchy[2]) ? ('NA') : (__CNBC_META_DATA.sectionHierarchy[2].tagNameFormattedFull),\n 'Hier4': (!__CNBC_META_DATA.sectionHierarchy || !__CNBC_META_DATA.sectionHierarchy[3]) ? ('NA') : (__CNBC_META_DATA.sectionHierarchy[3].tagNameFormattedFull),\n 'Hier5': (!__CNBC_META_DATA.sectionHierarchy || !__CNBC_META_DATA.sectionHierarchy[4]) ? ('NA') : (__CNBC_META_DATA.sectionHierarchy[4].tagNameFormattedFull),\n 'Headline': (!__CNBC_META_DATA.headline) ? ('null') : (__CNBC_META_DATA.headline),\n 'Paywall': paywallexists,\n 'Tags': (!__CNBC_META_DATA.relatedTagsFilteredFormatted) ? ('null') : (__CNBC_META_DATA.relatedTagsFilteredFormatted),\n 'Short Summary':(!__CNBC_META_DATA.description) ? ('null') : (__CNBC_META_DATA.description),\n 'Author':(!__CNBC_META_DATA.authorFormatted) ? ('null') : (__CNBC_META_DATA.authorFormatted),\n 'Page Publish Date':(!__CNBC_META_DATA.shortDateFirstPublished) ? ('null') : (__CNBC_META_DATA.shortDateFirstPublished),\n 'Page Modified Date':(!__CNBC_META_DATA.shortDateLastPublished) ? ('null') : (__CNBC_META_DATA.shortDateLastPublished),\n 'Article ID':(!__CNBC_META_DATA.id) ? ('null') : (__CNBC_META_DATA.id),\n 'Search Keyword':(!__CNBC_META_DATA?.queryParams?.qsearchterm) ? ('null') : (__CNBC_META_DATA?.queryParams?.qsearchterm),\n 'Url Param Source': (!source) ? ('null') : (source),\n 'Url Param Utm_Medium': (!utmmedium) ? ('null') : (utmmedium),\n 'Url Param Utm_Source': (!utmsource) ? ('null') : (utmsource),\n 'Url Param Utm_Campaign': (!utmcampaign) ? ('null') : (utmcampaign),\n 'Url Param Utm_Content': (!utmcontent) ? ('null') : (utmcontent)\n };\n console.log('mParticle flow: logEvent Page Load', pageAttrs['Page Type'], pageAttrs['Page Section'], asset_status);\n mParticle.logEvent(\n 'Page Load',\n mParticle.EventType.Navigation,\n pageAttrs\n );\n window?.cnbcAmplitudeLogEvent?.('Page Load', pageAttrs);\n };\n console.log('mParticle flow: mps._executemParticle()');\n mps._executemParticle();\n\n //DCR Tag start\n const execute_once_per_session = true;\n const mrkl_cid='5998_04719';\n const mrkl_domain = 'cnbc.com';\n\n // On every interval execution check if mParticle has been set and if mParticle.ready method is available.\n logEvent('Trying mparticle...');\n logEvent('Mparticle ready! Add DCR.');\n console.log('mParticle flow: mParticle.ready()');\n mParticle.ready(\n // Que up a function insidethe mParticle.ready method.\n // This function will be executed once mParticle is avaiilable and ready.\n function () {\n console.log('mParticle flow: inside mParticle.ready callback');\n // Thismethod check if the browser session item has been set or not.\n // Also logs the session value for debugging purposes.\n function shouldExecuteForSession(onetime = true) {\n const ncbcu_dcr_session_executed = sessionStorage.getItem('nbcu-dcr-session-executed');\n logEvent(`onetime= ${onetime} session-item=${ncbcu_dcr_session_executed} executed=${(!ncbcu_dcr_session_executed || !onetime ? true : false)}`);\n var run = !ncbcu_dcr_session_executed || !onetime ? true: false;\n console.log('mParticle flow: shouldExecuteForSession', run, 'sessionFlag', ncbcu_dcr_session_executed);\n return run;\n }\n // Check if mParticle MPID exists and if it does then return it.\n function checkIfMPIDExist() {\n\n var ok = mParticle.Identity.getCurrentUser() && mParticle.Identity.getCurrentUser().getMPID();\n console.log('mParticle flow: checkIfMPIDExist', !!ok);\n return ok;\n }\n // Function that checks for MPID and initializes DCR.\n // If MPID not available tries to initialize after 3 seconds.\n function dcr() {\n if (checkIfMPIDExist()) {\n logEvent('MPID Found, no need for timeout');\n console.log('mParticle flow: dcr \u2192 initializeMerkle now');\n initializeMerkle();\n } else { logEvent('No MPID Found, waiting...');\n console.log('mParticle flow: dcr \u2192 delayed initializeMerkle 3s');\n setTimeout(initializeMerkle, 3000);\n }\n }\n // Main function that initializes DCR first with MPID if exists.\n // If MPID does not exists initializes without it.\n function initializeMerkle() {\n if (checkIfMPIDExist())\n {\n const mpid = mParticle.Identity.getCurrentUser().getMPID();\n window._svq = window._svq || []; window._svq.push(['_setUID', mpid]); window._svq.push(['_trackPageView']);\n (function (d, c)\n {\n const mrklsv = d.createElement(c); mrklsv.type = 'text/javascript';\n mrklsv.src = `https://nbcu.track.securedvisit.com/js/sv.js?sv_cid=${mrkl_cid}&sv_origin=${mrkl_domain}`; const mrkls = d.getElementsByTagName(c)[0];\n mrkls.parentNode.insertBefore(mrklsv, mrkls);\n })(document, 'script');\n logEvent('Initializing DCR with MPID');\n console.log('mParticle flow: DCR / Merkle with MPID');\n } else {\n logEvent('Initializing DCR without MPID');\n console.log('mParticle flow: DCR / Merkle without MPID');\n window._svq = window._svq || []; window._svq.push(['_trackPageView']);\n (function (d,c) {\n const mrklsv = d.createElement(c);\n mrklsv.type = 'text/javascript';\n mrklsv.src = `https://nbcu.track.securedvisit.com/js/sv.js?sv_cid=${mrkl_cid}&sv_origin=${mrkl_domain}`;\n const mrkls = d.getElementsByTagName(c)[0];\n mrkls.parentNode.insertBefore(mrklsv, mrkls);\n })(document, 'script');\n }\n }\n // Checks if session is set and it initializes DCR if its not set and sets it.\n if (shouldExecuteForSession(execute_once_per_session))\n {\n sessionStorage.setItem('nbcu-dcr-session-executed', true);\n console.log('mParticle flow: sessionStorage set, calling dcr()');\n dcr();\n } else {\n console.log('mParticle flow: skip dcr (session already executed)');\n }\n });\n logEvent('DCR End');\n console.log('mParticle flow: mParticle.ready registered (callback async)');\n\n });\n //DCR Tag end\n }\n\n\n\n // ============================================================\n // MAIN: Initialize Analytics Systems\n // ============================================================\n console.log('mParticle flow: rule start \u2014 wrapWithOneTrust CAT7 will gate load');\n BI.wrapWithOneTrust({\n fn: function () {\n console.log('mParticle flow: wrapWithOneTrust passed CAT7 \u2192 resolveUser().then(loadmParticleIntegration)');\n resolveUser().then(function (user) {\n console.log('mParticle flow: resolveUser settled', user ? 'has user' : 'no user');\n loadmParticleIntegration();\n });\n },\n featureName: 'MParticle Integration',\n categories: [7],\n });\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL6808f370bda94cb7ae59af3e97a6fe17",name:"DR - Action - Chatbot",events:[{modulePath:"core/src/lib/events/domReady.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["cnbc.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"https://assets.adobedtm.com/77ca722dd820/bbaaa56c8833/95c1ebbd94f6/RC4cbe4282858b4227a6f824f3ffc60405-source.min.js",language:"javascript",isExternal:!0},timeout:2e3,delayNext:!0}]},{id:"RL735ae89a2a134e5fb6841d5a13f59fde",name:"60 - univideo - product adapter (mparticle) [univideo]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:60}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["cnbc.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{
source:"/* global $t, uniVideo, BI, mParticle */\n(function() {\n /* SNIPAF: {\"name\": \"univideo_to_mparticle\", \"version\":\"2.0\" } */\n\n var logEvent = (window.BI && BI.console && BI.console.build('uni_mparticle')) || Function.prototype;\n\n // Mapping univideo event name to mparticle event name\n let eventNames = new Map([\n [uniVideo.event.PLAY, 'VOD Clip Start'],\n [uniVideo.event.COMPLETE, 'VOD Clip Complete'],\n [uniVideo.event.AD_PLAY, 'Ad Start'],\n [uniVideo.event.AD_COMPLETE, 'Ad Complete'],\n [uniVideo.event.AD_BREAK_START, 'Ad Pod Start'],\n [uniVideo.event.AD_BREAK_COMPLETE, 'Ad Pod Complete'],\n ]);\n\n\n uniVideo.addEventListenerFactory(function mparticle() {\n const noValue = 'not available';\n const isCNBC = location.host.endsWith('cnbc.com');\n const uniEvent = window.uniVideo && window.uniVideo.event || {};\n\n var _playheadPosition = 0;\n var _secondsWatched = 0;\n\n return function eventListener(_e, data) {\n const { eventType, videoData, videoState } = data;\n const isLinear = videoData.streamType === 'linear';\n\n let eventName;\n\n // Doing Ramen-specific event handling logic\n if (!isCNBC) {\n eventName = eventNames.get(eventType);\n\n // Distinguishing between on-demand and live video streams\n if (eventType == uniVideo.event.PLAY && videoData.streamType == 'linear') {\n eventName = 'Linear Stream Start';\n }\n if (eventType == uniVideo.event.STOP && videoData.streamType == 'linear') {\n eventName = 'Linear Stream Close';\n }\n }\n\n // Doing Phoenix-specific event handling logic\n else {\n // Map UniVideo \u2192 event names for ALL players (JW, cvsdk, \u2026).\n // mParticle stays cvsdk-only (gated at logEvent below). Amplitude uses all players.\n switch (eventType) {\n case uniEvent.PLAY:\n if (videoState.playState === 'stop') {\n // This indicates the \"start\" event\n eventName = isLinear ? 'Linear Start' : 'VOD Clip Start';\n }\n _playheadPosition = videoData.playheadPosition;\n break;\n case uniEvent.SEGMENT_START:\n eventName = isLinear ? 'Linear Program Start' : 'VOD Program Start';\n break;\n case uniEvent.AD_PLAY:\n eventName = isLinear ? 'Linear Ad Start' : 'Ad Start';\n break;\n case uniEvent.AD_BREAK_START:\n eventName = isLinear ? 'Linear Ad Pod Start' : 'Ad Pod Start';\n break;\n case uniEvent.PAUSE:\n _secondsWatched = _secondsWatched + Math.round((videoData.playheadPosition - _playheadPosition)/1000);\n break;\n case uniEvent.STOP:\n eventName = isLinear ? 'Linear End' : 'VOD Clip Stop';\n _secondsWatched = _secondsWatched + Math.round((videoData.playheadPosition - _playheadPosition)/1000);\n break;\n case uniEvent.COMPLETE:\n eventName = isLinear ? 'Linear Complete' : 'VOD Clip Complete';\n break;\n case uniEvent.SEGMENT_END:\n eventName = isLinear ? 'Linear Program End' : 'VOD Program Complete';\n break;\n case uniEvent.AD_COMPLETE:\n eventName = isLinear ? 'Linear Ad End' : 'Ad Complete';\n break;\n case uniEvent.AD_BREAK_COMPLETE:\n eventName = isLinear ? 'Linear Ad Pod End' : 'Ad Pod Complete';\n break;\n default:\n eventName = null;\n break;\n }\n }\n\n // Skipping events that don't have a counterpart in mparticle\n if (!eventName) return;\n\n let videoBrandDomain = videoData.newsNetwork ?? noValue;\n let videoDomain = videoData?.custom?.videoDomain ?? noValue;\n if (videoDomain.includes('nbcnews')) videoBrandDomain = 'NBC News';\n if (videoDomain.includes('msnbc')) videoBrandDomain = 'MSNBC';\n if (videoDomain.includes('today')) videoBrandDomain = 'Today';\n\n // Convert a valid date string to RFC 2822 format,\n // returning it as-is if not a valid date.\n function toRFC2822(maybeDateString) {\n const isDate = s => false == Number.isNaN(Date.parse(s));\n if (!isDate(maybeDateString)) return maybeDateString;\n return new Date(maybeDateString).toString();\n }\n\n function getRamenEventData() {\n return {\n 'video mpx id': videoData.mpxId || noValue,\n 'video guid': videoData.guid || noValue,\n 'video brand domain': videoBrandDomain,\n 'video title': videoData.title || noValue,\n 'video network': videoData.newsNetwork || noValue,\n 'video program': videoData.source || noValue,\n 'video content source': videoData.source || noValue,\n 'video air date': toRFC2822(videoData.dateBroadcast) || noValue,\n 'video asset status': 'Unrestricted',\n 'video screen mode': videoState.fullScreen ? 'Full' : 'Normal',\n 'video clip category': videoData.videoType || noValue,\n 'video player name': videoData.playbackAdapter || noValue,\n 'video initiation': videoData.playInitiate || noValue,\n // Historically, Ramen has had `noValue` for playlist\n // related values. They are set as \"None\" here when not\n // available to have non-destructive parity with Phoenix.\n 'video playlist name': videoData.playListLabel || 'None',\n 'video playlist id': videoData.playListId || 'None',\n 'video content type': 'Video',\n 'video publish date': toRFC2822(videoData.datePublished) || noValue,\n 'video page url': window.location.href.split('?')[0] || noValue,\n 'video page name': window.s?.pageName ?? window.location.pathname,\n 'video index start': typeof videoData.playheadPosition === 'number' ? Math.round(videoData.playheadPosition * 1000) : noValue,\n 'video mute state': videoState.isMuted ? 'muted' : 'unmuted' || noValue,\n\n 'duration watched': eventName === 'Linear End' ? _secondsWatched : undefined,\n\n // The properties below need revisiting, because\n // they're unlikely to be correct or general enough.\n 'video length': noValue,\n\n };\n }\n\n function getPhoenixEventData() {\n let formattedDate = new Date(Date.now()).toLocaleDateString();\n\n // set aam_uuid and MID from adobe\n var aam_uuid = window.s && (window.s.cookieRead instanceof Function) && window.s.cookieRead('aam_uuid') || noValue;\n var aam_mid = window.s && window.s.visitor && window.s.visitor.getMarketingCloudVisitorID() || noValue;\n\n let customData = {\n 'Product': videoData.custom.videoDomain || noValue,\n 'Platform': 'web',\n 'Referrer': document.referrer || 'None',\n 'User Agent': window.navigator.userAgent,\n 'Video ID': videoData.custom.episodeGuid || noValue,\n 'Video GUID': videoData.custom.episodeGuid || noValue,\n 'Video Title': videoData.title || noValue,\n 'Video Brand Domain': videoData.newsNetwork || noValue,\n 'Brand': videoData.newsNetwork || noValue,\n 'Show': videoData.custom.program || videoData.newsNetwork || noValue,\n 'Video Content Source': videoData.newsNetwork || noValue,\n 'Video Air Date': videoData.dateBroadcast !== '' ? new Date(videoData.dateBroadcast).toLocaleDateString('en-US') : formattedDate,\n 'Entitlement': 'Restricted', //(tempPassEnabled && !selectedMvpdId) ? 'TempPass' : authRestricted; const authRestricted = (assetInfoObj?.authRequired) ? 'Restricted' : 'Unrestricted';\n 'Video Duration': videoData.custom.runtime || 3600,\n 'Video Type': (videoData.videoType || '').toLowerCase() || noValue,\n 'Video Player Name': videoData.playbackAdapter.toUpperCase() || noValue,\n 'Video Initiation': videoData.playInitiate || 'Manual',\n 'Video Publish Date': videoData.datePublished !== '' ? new Date(videoData.datePublished).toLocaleDateString('en-US') : formattedDate,\n 'Video Playlist Name': videoData.playlistLabel || 'None',\n 'Video Playlist ID': videoData.playlistId || 'None',\n 'Duration Watched': eventName === 'Linear End' ? _secondsWatched : undefined,\n 'Video Screen Mode': videoState.fullScreen ? 'Full' : 'Normal',\n };\n\n var uxExperiment = (function () {\n //example 2147483647~rv=8~id=b7c90f942ae0282250a0418fbf11f00a~rn=MSNBC_Video_Player_vs._Bento%20B'\n var cookieName = (function () {\n let videoDomain = customData.Product || noValue;\n if (videoDomain === 'nbcnews.com') {\n return 'akaas_NBCNews';\n } else if (videoDomain === 'msnbc.com') {\n return 'akaas_MSNBC';\n } else if (videoDomain === 'today.com') {\n return 'akaas_TODAY';\n } else if (videoDomain === 'cnbc.com') {\n return 'akaas_CNBC';\n }\n else return null;\n })();\n var returnString = 'false';\n var value = window.s && (window.s.cookieRead instanceof Function) && window.s.cookieRead(cookieName).split('~') || '';\n if (value.length >= 2) {\n returnString = value[1];\n }\n return returnString;\n })();\n\n var globalData = {\n 'adobe uuid': aam_uuid || noValue,\n 'adobe marketing cloud': aam_mid || noValue,\n 'ui experiment': window.s && window.s.custGetQS && window.s.custGetQS('icid') || noValue,\n 'ux experiment': uxExperiment,\n 'campaign id': BI && BI.userInfo && BI.userInfo.get('cid') || noValue,\n 'sailthru visitor': BI && BI.userInfo && BI.userInfo.get('sailthru_visitor') || noValue,\n 'airship id': BI && BI.userInfo && BI.userInfo.get('airship_id') || noValue,\n 'isAmp': 'false',\n };\n\n var combinedData = Object.assign({}, globalData, customData);\n\n // remove any keys that have noValue\n var filteredData = Object.keys(combinedData).reduce(function (filteredData, key) {\n if (combinedData[key] !== noValue && combinedData[key] !== '') filteredData[key] = combinedData[key];\n return filteredData;\n }, {});\n\n return filteredData;\n }\n\n const eventData = isCNBC\n ? getPhoenixEventData()\n : getRamenEventData();\n\n logEvent('Track Event', { eventName, eventData });\n\n // CNBC: mParticle stays cvsdk-only (MPS). Amplitude fires for every player.\n if (isCNBC) {\n var isCvsdkPlayer = videoData.playbackAdapter === 'cvsdk';\n\n if (isCvsdkPlayer) {\n BI.waitForObjAvailable(['mParticle'], 200, function () {\n if (!window.mParticle || typeof mParticle.logEvent !== 'function') {\n return;\n }\n var resolvedEventType = mParticle.EventType['Navigation'] || null;\n mParticle.logEvent(eventName, resolvedEventType, eventData);\n });\n }\n\n window?.cnbcAmplitudeLogEvent?.(eventName, eventData);\n } else {\n $t('track', 'mParticle_track_event', {\n eventType: 'Navigation',\n eventName,\n eventData,\n });\n }\n };\n });\n\n})();\n\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL74e00cdcfe7c4845a495557e6ac627e1",name:"DR - Action - watchlist",events:[{modulePath:"core/src/lib/events/domReady.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["cnbc.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"https://assets.adobedtm.com/77ca722dd820/bbaaa56c8833/95c1ebbd94f6/RC2a966bbe361f4803b99513769fd4add9-source.min.js",language:"javascript",isExternal:!0},timeout:2e3,delayNext:!0}]},{id:"RL775db2755558425088442fd79d607692",name:"50 - Action - Featured Parter Offer Package[d:cnbc.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/* globals BI, $t, s, __CNBC_META_DATA */\n(function() {\n function trackAdobe(analyticId, actionContextData) {\n BI.waitForObjAvailable(['s', 's.tl'], 50, () => {\n s.linkTrackVars = false;\n const combinedLinkTrackVars = Object.keys(actionContextData).map(key => `contextData.${key}`);\n s.linkTrackVars = combinedLinkTrackVars.join(',');\n s.contextData = { ...s.contextData, ...actionContextData };\n s.tl(true, 'o', analyticId );\n\n for (var item in actionContextData) {\n delete s.contextData[item];\n }\n });\n }\n\n function registerEvents() {\n $t('on', 'bte_event', function(_eventName, e) {\n const analyticId = e?.data?.dataset?.analyticId;\n const partnerOfferPrefix = 'PartnerOffers-';\n\n if (analyticId && analyticId.startsWith(partnerOfferPrefix)) {\n trackAdobe(analyticId, {\n 'cnbc.action': `${analyticId}`,\n 'cnbc.brand': __CNBC_META_DATA.brand,\n 'cnbc.platform': 'web'\n });\n }\n });\n }\n\n BI.wrapWithOneTrust({\n fn: registerEvents,\n featureName: 'Featured Partner Offers',\n categories: [7]\n });\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL79458d2271874fad879dc778905fe372",name:"DR - Zephr Tag",events:[{modulePath:"core/src/lib/events/domReady.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["cnbc.com","ms.now"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"https://assets.adobedtm.com/77ca722dd820/bbaaa56c8833/95c1ebbd94f6/RC1b4995eefd7d4122a332aad28f84211b-source.min.js",language:"javascript",isExternal:!0},timeout:2e3,delayNext:!0},{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"https://assets.adobedtm.com/77ca722dd820/bbaaa56c8833/95c1ebbd94f6/RCda5c353a166c48418f5ee66ea1d5e021-source.min.js",language:"javascript",isExternal:!0},timeout:2e3,delayNext:!0},{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"https://assets.adobedtm.com/77ca722dd820/bbaaa56c8833/95c1ebbd94f6/RC3e9486a219b9476899b8732810397ec4-source.min.js",language:"javascript",isExternal:!0},timeout:2e3,delayNext:!0},{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"https://assets.adobedtm.com/77ca722dd820/bbaaa56c8833/95c1ebbd94f6/RCd2211426add8474ba0be618c7670c77c-source.min.js",language:"javascript",isExternal:!0},timeout:2e3,delayNext:!0}]},{id:"RL7cbb808da91a4213a52c41b56e62b159",name:"50 - BI Data - $t logging [d:cnbc.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["cnbc.com","ms.now"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"// $t debug\n(function () {\n if (window.$t && window.BI && window.BI.console) {\n window.$t('bindTrack', function (e, trackingEvent) {\n window.BI.console.log(trackingEvent.eventType, trackingEvent.eventData, '$t');\n });\n }\n})();",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL808a5a375ad642d68c9fb052be325c99",name:"DR - Action - Berkshire Whitepaper Download",events:[{modulePath:"core/src/lib/events/domReady.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["cnbc.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"https://assets.adobedtm.com/77ca722dd820/bbaaa56c8833/95c1ebbd94f6/RC88fee59edfe94f4f8b492e468adfc15e-source.min.js",language:"javascript",isExternal:!0},timeout:2e3,delayNext:!0}]},{id:"RL87ad9c041143473f987d479dea49bade",name:"25 - Adobe VisitorAPI - Library",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:25}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["cnbc.com","ms.now"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,
source:'/*\n * ========== DO NOT ALTER ANYTHING BELOW THIS LINE ==========\n * @license\n * Adobe Visitor API for JavaScript version: 5.2.0\n * Copyright 2021 Adobe, Inc. All Rights Reserved\n * More info available at https://marketing.adobe.com/resources/help/en_US/mcvid/\n */\n/* eslint-disable */\nvar e=function(){"use strict";function e(t){"@babel/helpers - typeof";return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(t)}function t(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function n(){return{callbacks:{},add:function(e,t){this.callbacks[e]=this.callbacks[e]||[];var n=this.callbacks[e].push(t)-1,i=this;return function(){i.callbacks[e].splice(n,1)}},execute:function(e,t){if(this.callbacks[e]){t=void 0===t?[]:t,t=t instanceof Array?t:[t];try{for(;this.callbacks[e].length;){var n=this.callbacks[e].shift();"function"==typeof n?n.apply(null,t):n instanceof Array&&n[1].apply(n[0],t)}delete this.callbacks[e]}catch(e){}}},executeAll:function(e,t){(t||e&&!U.isObjectEmpty(e))&&Object.keys(this.callbacks).forEach(function(t){var n=void 0!==e[t]?e[t]:"";this.execute(t,n)},this)},hasCallbacks:function(){return Boolean(Object.keys(this.callbacks).length)}}}function i(e,t,n){var i=null==e?void 0:e[t];return void 0===i?n:i}function r(e){for(var t=/^\\d+$/,n=0,i=e.length;nr)return 1;if(r>i)return-1}return 0}function s(e,t){if(e===t)return 0;var n=e.toString().split("."),i=t.toString().split(".");return r(n.concat(i))?(a(n,i),o(n,i)):NaN}function c(e){return e===Object(e)&&0===Object.keys(e).length}function u(e){return"function"==typeof e||e instanceof Array&&e.length}function l(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){return!0};this.log=Ie("log",e,t),this.warn=Ie("warn",e,t),this.error=Ie("error",e,t)}function d(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.cookieName,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=n.cookies;if(!t||!i)return{get:Ne,set:Ne,remove:Ne};var r={remove:function(){i.remove(t)},get:function(){var e=i.get(t),n={};try{n=JSON.parse(e)}catch(e){n={}}return n},set:function(e,n){n=n||{};var a=r.get(),o=Object.assign(a,e);i.set(t,JSON.stringify(o),{domain:n.optInCookieDomain||"",cookieLifetime:n.optInStorageExpiry||3419e4,expires:!0})}};return r}function f(e){this.name=this.constructor.name,this.message=e,"function"==typeof Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error(e).stack}function p(){function e(e,t){var n=Ae(e);return n.length?n.every(function(e){return!!t[e]}):Oe(t)}function t(){M(A),O(de.COMPLETE),_(h.status,h.permissions),s&&m.set(h.permissions,{optInCookieDomain:c,optInStorageExpiry:u}),C.execute(He)}function n(e){return function(n,i){if(!Me(n))throw new Error("[OptIn] Invalid category(-ies). Please use the `OptIn.Categories` enum.");return O(de.CHANGED),Object.assign(A,ke(Ae(n),e)),i||t(),h}}var i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=i.doesOptInApply,a=i.previousPermissions,o=i.preOptInApprovals,s=i.isOptInStorageEnabled,c=i.optInCookieDomain,u=i.optInStorageExpiry,l=i.isIabContext,f=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},p=f.cookies,g=xe(a);Fe(g,"Invalid `previousPermissions`!"),Fe(o,"Invalid `preOptInApprovals`!");var m=d({cookieName:"adobeujs-optin"},{cookies:p}),h=this,_=le(h),C=_e(),S=Le(g),I=Le(o),v=s?m.get():{},D={},y=function(e,t){return Pe(e)||t&&Pe(t)?de.COMPLETE:de.PENDING}(S,v),b=function(e,t,n){var i=ke(he,!r);return r?Object.assign({},i,e,t,n):i}(I,S,v),A=Ee(b),O=function(e){return y=e},M=function(e){return b=e};h.deny=n(!1),h.approve=n(!0),h.denyAll=h.deny.bind(h,he),h.approveAll=h.approve.bind(h,he),h.isApproved=function(t){return e(t,h.permissions)},h.isPreApproved=function(t){return e(t,I)},h.fetchPermissions=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=t?h.on(de.COMPLETE,e):Ne;return!r||r&&h.isComplete||!!o?e(h.permissions):t||C.add(He,function(){return e(h.permissions)}),n},h.complete=function(){h.status===de.CHANGED&&t()},h.registerPlugin=function(e){if(!e||!e.name||"function"!=typeof e.onRegister)throw new Error(Be);D[e.name]||(D[e.name]=e,e.onRegister.call(e,h))},h.execute=Ue(D),h.memoizeContent=function(e){we(e)&&m.set(e,{optInCookieDomain:c,optInStorageExpiry:u})},h.getMemoizedContent=function(e){var t=m.get();if(t)return t[e]},Object.defineProperties(h,{permissions:{get:function(){return b}},status:{get:function(){return y}},Categories:{get:function(){return fe}},doesOptInApply:{get:function(){return!!r}},isPending:{get:function(){return h.status===de.PENDING}},isComplete:{get:function(){return h.status===de.COMPLETE}},__plugins:{get:function(){return Object.keys(D)}},isIabContext:{get:function(){return l}}})}function g(e,t){function n(){r=null,e.call(e,new f("The call took longer than you wanted!"))}function i(){r&&(clearTimeout(r),e.apply(e,arguments))}if(void 0===t)return e;var r=setTimeout(n,t);return i}function m(){if(window.__tcfapi)return window.__tcfapi;var e=window;if(e===window.top)return void ye.error("__tcfapi not found");for(var t;!t;){e=e.parent;try{e.frames.__tcfapiLocator&&(t=e)}catch(e){}if(e===window.top)break}if(!t)return void ye.error("__tcfapi not found");var n={};return window.__tcfapi=function(e,i,r,a){var o=Math.random()+"",s={__tcfapiCall:{command:e,parameter:a,version:i,callId:o}};n[o]=r,t.postMessage(s,"*")},window.addEventListener("message",function(e){var t=e.data;if("string"==typeof t)try{t=JSON.parse(e.data)}catch(e){}if(t.__tcfapiReturn){var i=t.__tcfapiReturn;"function"==typeof n[i.callId]&&(n[i.callId](i.returnValue,i.success),delete n[i.callId])}},!1),window.__tcfapi}function h(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],i=!0===e.vendor.consents[t],r=n.every(function(t){return!0===e.purpose.consents[t]});return i&&r}function _(){var e=this;e.name="iabPlugin",e.version="0.0.2";var t,n=_e(),i={transparencyAndConsentData:null},r=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return i[e]=t};e.fetchConsentData=function(e){var t=e.callback,n=e.timeout,i=g(t,n);a({callback:i})},e.isApproved=function(e){var t=e.callback,n=e.category,r=e.timeout;if(i.transparencyAndConsentData)return t(null,h(i.transparencyAndConsentData,pe[n],ge[n]));var o=g(function(e,i){t(e,h(i,pe[n],ge[n]))},r);a({category:n,callback:o})},e.onRegister=function(n){t=n;var i=Object.keys(pe),r=function(e,t){!e&&t&&(i.forEach(function(e){var i=h(t,pe[e],ge[e]);n[i?"approve":"deny"](e,!0)}),n.complete())};e.fetchConsentData({callback:r})};var a=function(e){var a=e.callback;if(i.transparencyAndConsentData)return a(null,i.transparencyAndConsentData);n.add("FETCH_CONSENT_DATA",a),o(function(e,a){if(a){var o=Ee(e),s=t.getMemoizedContent("iabConsentHash"),c=De(o.tcString).toString(32);o.consentString=e.tcString,o.hasConsentChangedSinceLastCmpPull=s!==c,r("transparencyAndConsentData",o),t.memoizeContent({iabConsentHash:c})}n.execute("FETCH_CONSENT_DATA",[null,i.transparencyAndConsentData])})},o=function(e){var t=Ve(pe),n=m();"function"==typeof n&&n("getTCData",2,e,t)}}var C="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};Object.assign=Object.assign||function(e){for(var t,n,i=1;i=0||t.indexOf("Trident/")>=0&&t.indexOf("Windows NT 6")>=0};n.getIeVersion=function(){return document.documentMode?document.documentMode:i()?7:null},n.encodeAndBuildRequest=function(e,t){return e.map(encodeURIComponent).join(t)},n.isObject=function(t){return null!==t&&"object"===e(t)&&!1===Array.isArray(t)},n.defineGlobalNamespace=function(){return window.adobe=n.isObject(window.adobe)?window.adobe:{},window.adobe},n.pluck=function(e,t){return t.reduce(function(t,n){return e[n]&&(t[n]=e[n]),t},Object.create(null))},n.parseOptOut=function(e,t,n){t||(t=n,e.d_optout&&e.d_optout instanceof Array&&(t=e.d_optout.join(",")));var i=parseInt(e.d_ottl,10);return isNaN(i)&&(i=7200),{optOut:t,d_ottl:i}},n.normalizeBoolean=function(e){var t=e;return"true"===e?t=!0:"false"===e&&(t=!1),t}}),H=(U.isObjectEmpty,U.isValueEmpty,U.getIeVersion,U.encodeAndBuildRequest,U.isObject,U.defineGlobalNamespace,U.pluck,U.parseOptOut,U.normalizeBoolean,n),B=L.MESSAGES,G={0:"prefix",1:"orgID",2:"state"},Y=function(e,t){this.parse=function(e){try{var t={};return e.data.split("|").forEach(function(e,n){if(void 0!==e){t[G[n]]=2!==n?e:JSON.parse(e)}}),t}catch(e){}},this.isInvalid=function(n){var i=this.parse(n);if(!i||Object.keys(i).length<2)return!0;var r=e!==i.orgID,a=!t||n.origin!==t,o=-1===Object.keys(B).indexOf(i.prefix);return r||a||o},this.send=function(n,i,r){var a=i+"|"+e;r&&r===Object(r)&&(a+="|"+JSON.stringify(r));try{n.postMessage(a,t)}catch(e){}}},q=L.MESSAGES,X=function(e,t,n,i){function r(e){Object.assign(p,e)}function a(e){Object.assign(p.state,e),Object.assign(p.state.ALLFIELDS,e),p.callbackRegistry.executeAll(p.state)}function o(e){if(!h.isInvalid(e)){m=!1;var t=h.parse(e);p.setStateAndPublish(t.state)}}function s(e){!m&&g&&(m=!0,h.send(i,e))}function c(){r(new R(n._generateID)),p.getMarketingCloudVisitorID(),p.callbackRegistry.executeAll(p.state,!0),C.removeEventListener("message",u)}function u(e){if(!h.isInvalid(e)){var t=h.parse(e);m=!1,C.clearTimeout(p._handshakeTimeout),C.removeEventListener("message",u),r(new F(p)),C.addEventListener("message",o),p.setStateAndPublish(t.state),p.callbackRegistry.hasCallbacks()&&s(q.GETSTATE)}}function l(){g&&postMessage?(C.addEventListener("message",u),s(q.HANDSHAKE),p._handshakeTimeout=setTimeout(c,250)):c()}function d(){C.s_c_in||(C.s_c_il=[],C.s_c_in=0),p._c="Visitor",p._il=C.s_c_il,p._in=C.s_c_in,p._il[p._in]=p,C.s_c_in++}function f(){function e(e){0!==e.indexOf("_")&&"function"==typeof n[e]&&(p[e]=function(){})}Object.keys(n).forEach(e),p.getSupplementalDataID=n.getSupplementalDataID,p.isAllowed=function(){return!0}}var p=this,g=t.whitelistParentDomain;p.state={ALLFIELDS:{}},p.version=n.version,p.marketingCloudOrgID=e,p.cookieDomain=n.cookieDomain||"",p._instanceType="child";var m=!1,h=new Y(e,g);p.callbackRegistry=H(),p.init=function(){d(),f(),r(new V(p)),l()},p.findField=function(e,t){if(void 0!==p.state[e])return t(p.state[e]),p.state[e]},p.messageParent=s,p.setStateAndPublish=a},W=L.MESSAGES,K=L.ALL_APIS,J=L.ASYNC_API_MAP,z=L.FIELDGROUP_TO_FIELD,Q=function(e,t){function n(){var t={};return Object.keys(K).forEach(function(n){var i=K[n],r=e[i]();U.isValueEmpty(r)||(t[n]=r)}),t}function i(){var t=[];return e._loading&&Object.keys(e._loading).forEach(function(n){if(e._loading[n]){var i=z[n];t.push(i)}}),t.length?t:null}function r(t){return function n(r){var a=i();if(a){var o=J[a[0]];e[o](n,!0)}else t()}}function a(e,i){var r=n();t.send(e,i,r)}function o(e){c(e),a(e,W.HANDSHAKE)}function s(e){r(function(){a(e,W.PARENTSTATE)})()}function c(n){function i(i){r.call(e,i),t.send(n,W.PARENTSTATE,{CUSTOMERIDS:e.getCustomerIDs()})}var r=e.setCustomerIDs;e.setCustomerIDs=i}return function(e){if(!t.isInvalid(e)){(t.parse(e).prefix===W.HANDSHAKE?o:s)(e.source)}}},$=function(e,t){function n(e){return function(n){i[e]=n,r++,r===a&&t(i)}}var i={},r=0,a=Object.keys(e).length;Object.keys(e).forEach(function(t){var i=e[t];if(i.fn){var r=i.args||[];r.unshift(n(t)),i.fn.apply(i.context||null,r)}})},Z={get:function(e){e=encodeURIComponent(e);var t=(";"+document.cookie).split(" ").join(";"),n=t.indexOf(";"+e+"="),i=n<0?n:t.indexOf(";",n+1);return n<0?"":decodeURIComponent(t.substring(n+2+e.length,i<0?t.length:i))},set:function(e,t,n){var r=i(n,"cookieLifetime"),a=i(n,"expires"),o=i(n,"domain"),s=i(n,"secure"),c=i(n,"sameSite"),u=s?"Secure":"",l=c?"SameSite="+c+";":"";if(a&&"SESSION"!==r&&"NONE"!==r){var d=""!==t?parseInt(r||0,10):-60;if(d)a=new Date,a.setTime(a.getTime()+1e3*d);else if(1===a){a=new Date;var f=a.getYear();a.setYear(f+2+(f<1900?1900:0))}}else a=0;return e&&"NONE"!==r?(document.cookie=encodeURIComponent(e)+"="+encodeURIComponent(t)+"; path=/;"+(a?" expires="+a.toGMTString()+";":"")+(o?" domain="+o+";":"")+l+u,this.get(e)===t):0},remove:function(e,t){var n=i(t,"domain");n=n?" domain="+n+";":"";var r=i(t,"secure"),a=i(t,"sameSite"),o=r?"Secure":"",s=a?"SameSite="+a+";":"";document.cookie=encodeURIComponent(e)+"=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;"+n+s+o}},ee=function(e,t){var n;!e&&C.location&&(e=C.location.hostname),n=e;var i,r=n.split("."),a=t||{};for(i=r.length-2;i>=0;i--)if(a.domain=r.slice(i).join("."),Z.set("test","cookie",a))return Z.remove("test",a),a.domain;return""},te={compare:s,isLessThan:function(e,t){return s(e,t)<0},areVersionsDifferent:function(e,t){return 0!==s(e,t)},isGreaterThan:function(e,t){return s(e,t)>0},isEqual:function(e,t){return 0===s(e,t)}},ne=!!C.postMessage,ie={postMessage:function(e,t,n){var i=1;t&&(ne?n.postMessage(e,t.replace(/([^:]+:\\/\\/[^\\/]+).*/,"$1")):t&&(n.location=t.replace(/#.*$/,"")+"#"+ +new Date+i+++"&"+e))},receiveMessage:function(e,t){var n;try{ne&&(e&&(n=function(n){if("string"==typeof t&&n.origin!==t||"[object Function]"===Object.prototype.toString.call(t)&&!1===t(n.origin))return!1;e(n)}),C.addEventListener?C[e?"addEventListener":"removeEventListener"]("message",n):C[e?"attachEvent":"detachEvent"]("onmessage",n))}catch(e){}}},re=function(e){var t,n,i="0123456789",r="",a="",o=8,s=10,c=10;if(1==e){for(i+="ABCDEF",t=0;16>t;t++)n=Math.floor(Math.random()*o),r+=i.substring(n,n+1),n=Math.floor(Math.random()*o),a+=i.substring(n,n+1),o=16;return r+"-"+a}for(t=0;19>t;t++)n=Math.floor(Math.random()*s),r+=i.substring(n,n+1),0===t&&9==n?s=3:(1==t||2==t)&&10!=s&&2>n?s=10:2n?c=10:20&&(t=!1)),{corsType:e,corsCookiesEnabled:t}}(),getCORSInstance:function(){return"none"===this.corsMetadata.corsType?null:new C[this.corsMetadata.corsType]},fireCORS:function(t,n,i){function r(e){var n;try{if((n=JSON.parse(e))!==Object(n))return void a.handleCORSError(t,null,"Response is not JSON")}catch(e){return void a.handleCORSError(t,e,"Error parsing response as JSON")}try{for(var i=t.callback,r=C,o=0;o=a&&(e.splice(r,1),r--);return{dataPresent:o,dataValid:s}},manageSyncsSize:function(e){if(e.join("*").length>this.MAX_SYNCS_LENGTH)for(e.sort(function(e,t){return parseInt(e.split("-")[1],10)-parseInt(t.split("-")[1],10)});e.join("*").length>this.MAX_SYNCS_LENGTH;)e.shift()},fireSync:function(t,n,i,r,a,o){var s=this;if(t){if("img"===n.tag){var c,u,l,d,f=n.url,p=e.loadSSL?"https:":"http:";for(c=0,u=f.length;coe.DAYS_BETWEEN_SYNC_ID_CALLS},attachIframeASAP:function(){function e(){t.startedAttachingIframe||(n.body?t.attachIframe():setTimeout(e,30))}var t=this;e()}}},ce={audienceManagerServer:{},audienceManagerServerSecure:{},cookieDomain:{},cookieLifetime:{},cookieName:{},doesOptInApply:{type:"boolean"},disableThirdPartyCalls:{type:"boolean"},discardTrackingServerECID:{type:"boolean"},idSyncAfterIDCallResult:{},idSyncAttachIframeOnWindowLoad:{type:"boolean"},idSyncContainerID:{},idSyncDisable3rdPartySyncing:{type:"boolean"},disableThirdPartyCookies:{type:"boolean"},idSyncDisableSyncs:{type:"boolean"},disableIdSyncs:{type:"boolean"},idSyncIDCallResult:{},idSyncSSLUseAkamai:{type:"boolean"},isCoopSafe:{type:"boolean"},isIabContext:{type:"boolean"},isOptInStorageEnabled:{type:"boolean"},loadSSL:{type:"boolean"},loadTimeout:{},marketingCloudServer:{},marketingCloudServerSecure:{},optInCookieDomain:{},optInStorageExpiry:{},overwriteCrossDomainMCIDAndAID:{type:"boolean"},preOptInApprovals:{},previousPermissions:{},resetBeforeVersion:{},sdidParamExpiry:{},serverState:{},sessionCookieName:{},secureCookie:{type:"boolean"},sameSiteCookie:{},takeTimeoutMetrics:{},trackingServer:{},trackingServerSecure:{},useLocalStorage:{type:"boolean"},whitelistIframeDomains:{},whitelistParentDomain:{}},ue={getConfigNames:function(){return Object.keys(ce)},getConfigs:function(){return ce},normalizeConfig:function(e,t){return ce[e]&&"boolean"===ce[e].type?"function"!=typeof t?t:t():t}},le=function(e){var t={};return e.on=function(e,n,i){if(!n||"function"!=typeof n)throw new Error("[ON] Callback should be a function.");t.hasOwnProperty(e)||(t[e]=[]);var r=t[e].push({callback:n,context:i})-1;return function(){t[e].splice(r,1),t[e].length||delete t[e]}},e.off=function(e,n){t.hasOwnProperty(e)&&(t[e]=t[e].filter(function(e){if(e.callback!==n)return e}))},e.publish=function(e){if(t.hasOwnProperty(e)){var n=[].slice.call(arguments,1);t[e].slice(0).forEach(function(e){e.callback.apply(e.context,n)})}},e.publish},de={PENDING:"pending",CHANGED:"changed",COMPLETE:"complete"},fe={AAM:"aam",ADCLOUD:"adcloud",ANALYTICS:"aa",CAMPAIGN:"campaign",ECID:"ecid",LIVEFYRE:"livefyre",TARGET:"target",MEDIA_ANALYTICS:"mediaaa"},pe=(S={},t(S,fe.AAM,565),t(S,fe.ECID,565),S),ge=(I={},t(I,fe.AAM,[1,10]),t(I,fe.ECID,[1,10]),I),me=["videoaa","iabConsentHash"],he=function(e){return Object.keys(e).map(function(t){return e[t]})}(fe),_e=function(){var e={};return e.callbacks=Object.create(null),e.add=function(t,n){if(!u(n))throw new Error("[callbackRegistryFactory] Make sure callback is a function or an array of functions.");e.callbacks[t]=e.callbacks[t]||[];var i=e.callbacks[t].push(n)-1;return function(){e.callbacks[t].splice(i,1)}},e.execute=function(t,n){if(e.callbacks[t]){n=void 0===n?[]:n,n=n instanceof Array?n:[n];try{for(;e.callbacks[t].length;){var i=e.callbacks[t].shift();"function"==typeof i?i.apply(null,n):i instanceof Array&&i[1].apply(i[0],n)}delete e.callbacks[t]}catch(e){}}},e.executeAll=function(t,n){(n||t&&!c(t))&&Object.keys(e.callbacks).forEach(function(n){var i=void 0!==t[n]?t[n]:"";e.execute(n,i)},e)},e.hasCallbacks=function(){return Boolean(Object.keys(e.callbacks).length)},e},Ce=function(){},Se=function(e){var t=window,n=t.console;return!!n&&"function"==typeof n[e]},Ie=function(e,t,n){return n()?function(){if(Se(e)){for(var n=arguments.length,i=new Array(n),r=0;r>>1:n>>>1;e.push(n)}return function(t,n){t=unescape(encodeURIComponent(t)),n||(n=0),n^=-1;for(var i=0;i>>8^e[r]}return(n^=-1)>>>0}}(),ye=new ve("[ADOBE OPT-IN]"),be=function(t,n){return e(t)===n},Ae=function(e,t){return e instanceof Array?e:be(e,"string")?[e]:t||[]},Oe=function(e){var t=Object.keys(e);return!!t.length&&t.every(function(t){return!0===e[t]})},Me=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return!(!e||Te(e))&&Ae(e).every(function(e){return he.indexOf(e)>-1||t&&me.indexOf(e)>-1})},ke=function(e,t){return e.reduce(function(e,n){return e[n]=t,e},{})},Ee=function(e){return JSON.parse(JSON.stringify(e))},Te=function(e){return"[object Array]"===Object.prototype.toString.call(e)&&!e.length},Le=function(e){if(we(e))return e;try{return JSON.parse(e)}catch(e){return{}}},Pe=function(e){return void 0===e||(we(e)?Me(Object.keys(e),!0):Re(e))},Re=function(e){try{var t=JSON.parse(e);return!!e&&be(e,"string")&&Me(Object.keys(t),!0)}catch(e){return!1}},we=function(e){return null!==e&&be(e,"object")&&!1===Array.isArray(e)},Ne=function(){},xe=function(e){return be(e,"function")?e():e},Fe=function(e,t){Pe(e)||ye.error("".concat(t))},je=function(e){return Object.keys(e).map(function(t){return e[t]})},Ve=function(e){return je(e).filter(function(e,t,n){return n.indexOf(e)===t})},Ue=function(e){return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.command,i=t.params,r=void 0===i?{}:i,a=t.callback,o=void 0===a?Ne:a;if(!n||-1===n.indexOf("."))throw new Error("[OptIn.execute] Please provide a valid command.");try{var s=n.split("."),c=e[s[0]],u=s[1];if(!c||"function"!=typeof c[u])throw new Error("Make sure the plugin and API name exist.");var l=Object.assign(r,{callback:o});c[u].call(c,l)}catch(e){ye.error("[execute] Something went wrong: "+e.message)}}};f.prototype=Object.create(Error.prototype),\nf.prototype.constructor=f;var He="fetchPermissions",Be="[OptIn#registerPlugin] Plugin is invalid.";p.Categories=fe,p.TimeoutError=f;var Ge=Object.freeze({OptIn:p,IabPlugin:_}),Ye=function(e,t){e.publishDestinations=function(n){var i=arguments[1],r=arguments[2];try{r="function"==typeof r?r:n.callback}catch(e){r=function(){}}var a=t;if(!a.readyToAttachIframePreliminary())return void r({error:"The destination publishing iframe is disabled in the Visitor library."});if("string"==typeof n){if(!n.length)return void r({error:"subdomain is not a populated string."});if(!(i instanceof Array&&i.length))return void r({error:"messages is not a populated array."});var o=!1;if(i.forEach(function(e){"string"==typeof e&&e.length&&(a.addMessage(e),o=!0)}),!o)return void r({error:"None of the messages are populated strings."})}else{if(!U.isObject(n))return void r({error:"Invalid parameters passed."});var s=n;if("string"!=typeof(n=s.subdomain)||!n.length)return void r({error:"config.subdomain is not a populated string."});var c=s.urlDestinations;if(!(c instanceof Array&&c.length))return void r({error:"config.urlDestinations is not a populated array."});var u=[];c.forEach(function(e){U.isObject(e)&&(e.hideReferrer?e.message&&a.addMessage(e.message):u.push(e))});!function e(){u.length&&setTimeout(function(){var t=new Image,n=u.shift();t.src=n.url,a.onPageDestinationsFired.push(n),e()},100)}()}a.iframe?(r({message:"The destination publishing iframe is already attached and loaded."}),a.requestToProcess()):!e.subdomain&&e._getField("MCMID")?(a.subdomain=n,a.doAttachIframe=!0,a.url=a.getUrl(),a.readyToAttachIframe()?(a.iframeLoadedCallbacks.push(function(e){r({message:"Attempted to attach and load the destination publishing iframe through this API call. Result: "+(e.message||"no result")})}),a.attachIframe()):r({error:"Encountered a problem in attempting to attach and load the destination publishing iframe through this API call."})):a.iframeLoadedCallbacks.push(function(e){r({message:"Attempted to attach and load the destination publishing iframe through normal Visitor API processing. Result: "+(e.message||"no result")})})}},qe=function e(t){function n(e,t){return e>>>t|e<<32-t}for(var i,r,a=Math.pow,o=a(2,32),s="",c=[],u=8*t.length,l=e.h=e.h||[],d=e.k=e.k||[],f=d.length,p={},g=2;f<64;g++)if(!p[g]){for(i=0;i<313;i+=g)p[i]=g;l[f]=a(g,.5)*o|0,d[f++]=a(g,1/3)*o|0}for(t+="\x80";t.length%64-56;)t+="\\0";for(i=0;i>8)return;c[i>>2]|=r<<(3-i)%4*8}for(c[c.length]=u/o|0,c[c.length]=u,r=0;r>>3)+m[i-7]+(n(C,17)^n(C,19)^C>>>10)|0);l=[v+((n(S,2)^n(S,13)^n(S,22))+(S&l[1]^S&l[2]^l[1]&l[2]))|0].concat(l),l[4]=l[4]+v|0}for(i=0;i<8;i++)l[i]=l[i]+h[i]|0}for(i=0;i<8;i++)for(r=3;r+1;r--){var D=l[i]>>8*r&255;s+=(D<16?0:"")+D.toString(16)}return s},Xe=function(e,t){return"SHA-256"!==t&&"SHA256"!==t&&"sha256"!==t&&"sha-256"!==t||(e=qe(e)),e},We=function(e){return String(e).trim().toLowerCase()},Ke=Ge.OptIn;U.defineGlobalNamespace(),window.adobe.OptInCategories=Ke.Categories;var Je=function(t,n,i){function r(){S._customerIDsHashChanged=!1}function a(e){var t=e;return function(e){var n=e||A.location.href;try{var i=S._extractParamFromUri(n,t);if(i)return q.parsePipeDelimetedKeyValues(i)}catch(e){}}}function o(e){function t(e,t,n){e&&e.match(oe.VALID_VISITOR_ID_REGEX)&&(n===T&&(b=!0),t(e))}t(e[T],S.setMarketingCloudVisitorID,T),S._setFieldExpire(x,-1),t(e[w],S.setAnalyticsVisitorID)}function s(e){e=e||{},S._supplementalDataIDCurrent=e.supplementalDataIDCurrent||"",S._supplementalDataIDCurrentConsumed=e.supplementalDataIDCurrentConsumed||{},S._supplementalDataIDLast=e.supplementalDataIDLast||"",S._supplementalDataIDLastConsumed=e.supplementalDataIDLastConsumed||{}}function c(e){function t(e,t,n){return n=n?n+="|":n,n+=e+"="+encodeURIComponent(t)}function n(e,n){var i=n[0],r=n[1];return null!=r&&r!==F&&(e=t(i,r,e)),e}var i=e.reduce(n,"");return function(e){var t=q.getTimestampInSeconds();return e=e?e+="|":e,e+="TS="+t}(i)}function u(e){var t=e.minutesToLive,n="";return(S.idSyncDisableSyncs||S.disableIdSyncs)&&(n=n||"Error: id syncs have been disabled"),"string"==typeof e.dpid&&e.dpid.length||(n=n||"Error: config.dpid is empty"),"string"==typeof e.url&&e.url.length||(n=n||"Error: config.url is empty"),void 0===t?t=20160:(t=parseInt(t,10),(isNaN(t)||t<=0)&&(n=n||"Error: config.minutesToLive needs to be a positive number")),{error:n,ttl:t}}function l(){return!!S.configs.doesOptInApply&&!(I.optIn.isComplete&&d())}function d(){return S.configs.doesOptInApply&&S.configs.isIabContext?I.optIn.isApproved(I.optIn.Categories.ECID)&&y:I.optIn.isApproved(I.optIn.Categories.ECID)}function f(){[["getMarketingCloudVisitorID"],["setCustomerIDs",void 0],["syncIdentity",void 0],["getAnalyticsVisitorID"],["getAudienceManagerLocationHint"],["getLocationHint"],["getAudienceManagerBlob"]].forEach(function(e){var t=e[0],n=2===e.length?e[1]:"",i=S[t];S[t]=function(e){return d()&&S.isAllowed()?i.apply(S,arguments):("function"==typeof e&&S._callCallback(e,[n]),n)}})}function p(){var e=S._getAudienceManagerURLData(),t=e.url;return S._loadData(E,t,null,e)}function g(e,t){if(y=!0,e)throw new Error("[IAB plugin] : "+e);t&&t.gdprApplies&&(v=t.consentString,D=t.hasConsentChangedSinceLastCmpPull?1:0),p(),_()}function m(e,t){if(y=!0,e)throw new Error("[IAB plugin] : "+e);t.gdprApplies&&(v=t.consentString,D=t.hasConsentChangedSinceLastCmpPull?1:0),S.init(),_()}function h(){I.optIn.isComplete&&(I.optIn.isApproved(I.optIn.Categories.ECID)?S.configs.isIabContext?I.optIn.execute({command:"iabPlugin.fetchConsentData",callback:m}):(S.init(),_()):S.configs.isIabContext?I.optIn.execute({command:"iabPlugin.fetchConsentData",callback:g}):(f(),_()))}function _(){I.optIn.off("complete",h)}if(!i||i.split("").reverse().join("")!==t)throw new Error("Please use `Visitor.getInstance` to instantiate Visitor.");var S=this,I=window.adobe,v="",D=0,y=!1,b=!1;S.version="5.2.0";var A=C,O=A.Visitor;O.version=S.version,O.AuthState=L.AUTH_STATE,O.OptOut=L.OPT_OUT,A.s_c_in||(A.s_c_il=[],A.s_c_in=0),S._c="Visitor",S._il=A.s_c_il,S._in=A.s_c_in,S._il[S._in]=S,A.s_c_in++,S._instanceType="regular",S._log={requests:[]},S.marketingCloudOrgID=t,S.cookieName="AMCV_"+t,S.sessionCookieName="AMCVS_"+t;var M={};n&&n.secureCookie&&n.sameSiteCookie&&(M={sameSite:n.sameSiteCookie,secure:n.secureCookie}),S.cookieDomain=S.useLocalStorage?"":ee(null,M),S.loadSSL=!0,S.loadTimeout=3e4,S.CORSErrors=[],S.marketingCloudServer=S.audienceManagerServer="dpm.demdex.net",S.sdidParamExpiry=30;var k=null,E="MC",T="MCMID",P="MCIDTS",R="A",w="MCAID",N="AAM",x="MCAAMB",F="NONE",j=function(e){return!Object.prototype[e]},V=ae(S);S.FIELDS=L.FIELDS,S.cookieRead=function(e){return S.useLocalStorage?e===S.sessionCookieName?sessionStorage.getItem(e):localStorage.getItem(e):Z.get(e)},S.cookieWrite=function(e,t,n){var i=""+t;if(S.useLocalStorage)return e===S.sessionCookieName?sessionStorage.setItem(e,i):localStorage.setItem(e,i);var r=S.cookieLifetime?(""+S.cookieLifetime).toUpperCase():"",a={expires:n,domain:S.cookieDomain,cookieLifetime:r};return S.configs&&S.configs.secureCookie&&"https:"===location.protocol&&(a.secure=!0),S.configs&&S.configs.sameSiteCookie&&"https:"===location.protocol&&(a.sameSite=L.SAME_SITE_VALUES[S.configs.sameSiteCookie.toUpperCase()]||"Lax"),Z.set(e,i,a)},S.removeCookie=function(e){if(S.useLocalStorage)return e===S.sessionCookieName?sessionStorage.removeItem(e):localStorage.removeItem(e);var t={domain:S.cookieDomain};return S.configs&&S.configs.secureCookie&&"https:"===location.protocol&&(t.secure=!0),S.configs&&S.configs.sameSiteCookie&&"https:"===location.protocol&&(t.sameSite=L.SAME_SITE_VALUES[S.configs.sameSiteCookie.toUpperCase()]||"Lax"),Z.remove(e,t)},S.resetState=function(e){e?S._mergeServerState(e):s()},S._isAllowedDone=!1,S._isAllowedFlag=!1,S.isAllowed=function(){return S._isAllowedDone||(S._isAllowedDone=!0,(S.cookieRead(S.cookieName)||S.cookieWrite(S.cookieName,"T",1))&&(S._isAllowedFlag=!0)),"T"===S.cookieRead(S.cookieName)&&S.removeCookie(S.cookieName),S._isAllowedFlag},S.setMarketingCloudVisitorID=function(e){S._setMarketingCloudFields(e)},S._use1stPartyMarketingCloudServer=!1,S.getMarketingCloudVisitorID=function(e,t){S.marketingCloudServer&&S.marketingCloudServer.indexOf(".demdex.net")<0&&(S._use1stPartyMarketingCloudServer=!0);var n=S._getAudienceManagerURLData("_setMarketingCloudFields"),i=n.url;return S._getRemoteField(T,i,e,t,n)};var H=function(e,t){var n={};S.getMarketingCloudVisitorID(function(){t.forEach(function(e){n[e]=S._getField(e,!0)}),-1!==t.indexOf("MCOPTOUT")?S.isOptedOut(function(t){n.MCOPTOUT=t,e(n)},null,!0):e(n)},!0)};S.getVisitorValues=function(e,t){var n={MCMID:{fn:S.getMarketingCloudVisitorID,args:[!0],context:S},MCOPTOUT:{fn:S.isOptedOut,args:[void 0,!0],context:S},MCAID:{fn:S.getAnalyticsVisitorID,args:[!0],context:S},MCAAMLH:{fn:S.getAudienceManagerLocationHint,args:[!0],context:S},MCAAMB:{fn:S.getAudienceManagerBlob,args:[!0],context:S}},i=t&&t.length?U.pluck(n,t):n;t&&-1===t.indexOf("MCAID")?H(e,t):$(i,e)},S._currentCustomerIDs={},S._customerIDsHashChanged=!1,S._newCustomerIDsHash="",S.setCustomerIDs=function(t,n){if(!S.isOptedOut()&&t){if(!U.isObject(t)||U.isObjectEmpty(t))return!1;S._readVisitor();var i,a,o,s;for(i in t)if(j(i)&&(S._currentCustomerIDs.dataSources=S._currentCustomerIDs.dataSources||{},a=t[i],n=a.hasOwnProperty("hashType")?a.hashType:n,a))if("object"===e(a)){var c={};if(a.id){if(n){if(!(s=Xe(We(a.id),n)))return;a.id=s,c.hashType=n}c.id=a.id}void 0!=a.authState&&(c.authState=a.authState),S._currentCustomerIDs.dataSources[i]=c}else if(n){if(!(s=Xe(We(a),n)))return;S._currentCustomerIDs.dataSources[i]={id:s,hashType:n}}else S._currentCustomerIDs.dataSources[i]={id:a};var u=S.getCustomerIDs(!0),l=S._getField("MCCIDH"),d="";l||(l=0);for(o in u){var f=u[o];if(!U.isObjectEmpty(f))for(i in f)j(i)&&(a=f[i],d+=(d?"|":"")+i+"|"+(a.id?a.id:"")+(a.authState?a.authState:""))}S._newCustomerIDsHash=String(S._hash(d)),S._newCustomerIDsHash!==l&&(S._customerIDsHashChanged=!0,S._mapCustomerIDs(r))}},S.syncIdentity=function(t,n){if(!S.isOptedOut()&&t){if(!U.isObject(t)||U.isObjectEmpty(t))return!1;S._readVisitor();var i,a,o,s,c;for(i in t)if(j(i)&&(S._currentCustomerIDs.nameSpaces=S._currentCustomerIDs.nameSpaces||{},a=t[i],n=a.hasOwnProperty("hashType")?a.hashType:n,a&&"object"===e(a))){var u={};if(a.id){if(n){if(!(o=Xe(We(a.id),n)))return;a.id=o,u.hashType=n}u.id=a.id}void 0!=a.authState&&(u.authState=a.authState),a.dataSource&&(S._currentCustomerIDs.dataSources=S._currentCustomerIDs.dataSources||{},s=a.dataSource,S._currentCustomerIDs.dataSources[s]=u),S._currentCustomerIDs.nameSpaces[i]=u}var l=S.getCustomerIDs(!0),d=S._getField("MCCIDH"),f="";d||(d="0");for(c in l){var p=l[c];if(!U.isObjectEmpty(p))for(i in p)j(i)&&(a=p[i],f+=(f?"|":"")+i+"|"+(a.id?a.id:"")+(a.authState?a.authState:""))}S._newCustomerIDsHash=String(S._hash(f)),S._newCustomerIDsHash!==d&&(S._customerIDsHashChanged=!0,S._mapCustomerIDs(r))}},S.getCustomerIDs=function(e){S._readVisitor();var t,n,i={dataSources:{},nameSpaces:{}},r=S._currentCustomerIDs.dataSources;for(t in r)j(t)&&(n=r[t],n.id&&(i.dataSources[t]||(i.dataSources[t]={}),i.dataSources[t].id=n.id,void 0!=n.authState?i.dataSources[t].authState=n.authState:i.dataSources[t].authState=O.AuthState.UNKNOWN,n.hashType&&(i.dataSources[t].hashType=n.hashType)));var a=S._currentCustomerIDs.nameSpaces;for(t in a)j(t)&&(n=a[t],n.id&&(i.nameSpaces[t]||(i.nameSpaces[t]={}),i.nameSpaces[t].id=n.id,void 0!=n.authState?i.nameSpaces[t].authState=n.authState:i.nameSpaces[t].authState=O.AuthState.UNKNOWN,n.hashType&&(i.nameSpaces[t].hashType=n.hashType)));return e?i:i.dataSources},S.setAnalyticsVisitorID=function(e){S._setAnalyticsFields(e)},S.getAnalyticsVisitorID=function(e,t,n){if(!q.isTrackingServerPopulated()&&!n)return S._callCallback(e,[""]),"";var i="";if(n||(i=S.getMarketingCloudVisitorID(function(t){S.getAnalyticsVisitorID(e,!0)})),i||n){var r=n?S.marketingCloudServer:S.trackingServer,a="";S.loadSSL&&(n?S.marketingCloudServerSecure&&(r=S.marketingCloudServerSecure):S.trackingServerSecure&&(r=S.trackingServerSecure));var o={};if(r){var s="http"+(S.loadSSL?"s":"")+"://"+r+"/id",c="d_visid_ver="+S.version+"&mcorgid="+encodeURIComponent(S.marketingCloudOrgID)+(i?"&mid="+encodeURIComponent(i):"")+(S.idSyncDisable3rdPartySyncing||S.disableThirdPartyCookies?"&d_coppa=true":""),u=["s_c_il",S._in,"_set"+(n?"MarketingCloud":"Analytics")+"Fields"];a=s+"?"+c+"&callback=s_c_il%5B"+S._in+"%5D._set"+(n?"MarketingCloud":"Analytics")+"Fields",o.corsUrl=s+"?"+c,o.callback=u}return o.url=a,S._getRemoteField(n?T:w,a,e,t,o)}return""},S.getAudienceManagerLocationHint=function(e,t){if(S.getMarketingCloudVisitorID(function(t){S.getAudienceManagerLocationHint(e,!0)})){var n=S._getField(w);if(!n&&q.isTrackingServerPopulated()&&(n=S.getAnalyticsVisitorID(function(t){S.getAudienceManagerLocationHint(e,!0)})),n||!q.isTrackingServerPopulated()){var i=S._getAudienceManagerURLData(),r=i.url;return S._getRemoteField("MCAAMLH",r,e,t,i)}}return""},S.getLocationHint=S.getAudienceManagerLocationHint,S.getAudienceManagerBlob=function(e,t){if(S.getMarketingCloudVisitorID(function(t){S.getAudienceManagerBlob(e,!0)})){var n=S._getField(w);if(!n&&q.isTrackingServerPopulated()&&(n=S.getAnalyticsVisitorID(function(t){S.getAudienceManagerBlob(e,!0)})),n||!q.isTrackingServerPopulated()){var i=S._getAudienceManagerURLData(),r=i.url;return S._customerIDsHashChanged&&S._setFieldExpire(x,-1),S._getRemoteField(x,r,e,t,i)}}return""},S._supplementalDataIDCurrent="",S._supplementalDataIDCurrentConsumed={},S._supplementalDataIDLast="",S._supplementalDataIDLastConsumed={},S.getSupplementalDataID=function(e,t){S._supplementalDataIDCurrent||t||(S._supplementalDataIDCurrent=S._generateID(1));var n=S._supplementalDataIDCurrent;return S._supplementalDataIDLast&&!S._supplementalDataIDLastConsumed[e]?(n=S._supplementalDataIDLast,S._supplementalDataIDLastConsumed[e]=!0):n&&(S._supplementalDataIDCurrentConsumed[e]&&(S._supplementalDataIDLast=S._supplementalDataIDCurrent,S._supplementalDataIDLastConsumed=S._supplementalDataIDCurrentConsumed,S._supplementalDataIDCurrent=n=t?"":S._generateID(1),S._supplementalDataIDCurrentConsumed={}),n&&(S._supplementalDataIDCurrentConsumed[e]=!0)),n};var B=!1;S._liberatedOptOut=null,S.getOptOut=function(e,t){var n=S._getAudienceManagerURLData("_setMarketingCloudFields"),i=n.url;if(d())return S._getRemoteField("MCOPTOUT",i,e,t,n);if(S._registerCallback("liberatedOptOut",e),null!==S._liberatedOptOut)return S._callAllCallbacks("liberatedOptOut",[S._liberatedOptOut]),B=!1,S._liberatedOptOut;if(B)return null;B=!0;var r="liberatedGetOptOut";return n.corsUrl=n.corsUrl.replace(/\\.demdex\\.net\\/id\\?/,".demdex.net/optOutStatus?"),n.callback=[r],C[r]=function(e){if(e===Object(e)){var t,n,i=U.parseOptOut(e,t,F);t=i.optOut,n=1e3*i.d_ottl,S._liberatedOptOut=t,setTimeout(function(){S._liberatedOptOut=null},n)}S._callAllCallbacks("liberatedOptOut",[t]),B=!1},V.fireCORS(n),null},S.isOptedOut=function(e,t,n){t||(t=O.OptOut.GLOBAL);var i=S.getOptOut(function(n){var i=n===O.OptOut.GLOBAL||n.indexOf(t)>=0;S._callCallback(e,[i])},n);return i?i===O.OptOut.GLOBAL||i.indexOf(t)>=0:null};var G={subscribed:!1,callbacks:[]};S.onReceiveEcid=function(e){if(d())return S.getMarketingCloudVisitorID(e,!0);G.subscribed=!0,e&&"function"==typeof e&&G.callbacks.push(e)},S._fields=null,S._fieldsExpired=null,S._hash=function(e){var t,n,i=0;if(e)for(t=0;t0;)S._callCallback(n.shift(),t)}},S._addQuerystringParam=function(e,t,n,i){var r=encodeURIComponent(t)+"="+encodeURIComponent(n),a=q.parseHash(e),o=q.hashlessUrl(e);if(-1===o.indexOf("?"))return o+"?"+r+a;var s=o.split("?"),c=s[0]+"?",u=s[1];return c+q.addQueryParamAtLocation(u,r,i)+a},S._extractParamFromUri=function(e,t){var n=new RegExp("[\\\\?]"+t+"=([^]*)"),i=n.exec(e);if(i&&i.length)return decodeURIComponent(i[1])},S._parseAdobeMcFromUrl=a(oe.ADOBE_MC),S._parseAdobeMcSdidFromUrl=a(oe.ADOBE_MC_SDID),S._attemptToPopulateSdidFromUrl=function(e){var n=S._parseAdobeMcSdidFromUrl(e),i=1e9;n&&n.TS&&(i=q.getTimestampInSeconds()-n.TS),n&&n.SDID&&n.MCORGID===t&&ioe.ADOBE_MC_TTL_IN_MIN||e.MCORGID!==t)return;o(e)}},S._mergeServerState=function(e){if(e)try{if(e=function(e){return q.isObject(e)?e:JSON.parse(e)}(e),e[S.marketingCloudOrgID]){var t=e[S.marketingCloudOrgID];!function(e){q.isObject(e)&&S.setCustomerIDs(e)}(t.customerIDs),s(t.sdid)}}catch(e){throw new Error("`serverState` has an invalid format.")}},S._timeout=null,S._loadData=function(e,t,n,i){t=S._addQuerystringParam(t,"d_fieldgroup",e,1),i.url=S._addQuerystringParam(i.url,"d_fieldgroup",e,1),i.corsUrl=S._addQuerystringParam(i.corsUrl,"d_fieldgroup",e,1),W.fieldGroupObj[e]=!0,i===Object(i)&&i.corsUrl&&"XMLHttpRequest"===V.corsMetadata.corsType&&V.fireCORS(i,n,e)},S._clearTimeout=function(e){null!=S._timeout&&S._timeout[e]&&(clearTimeout(S._timeout[e]),S._timeout[e]=0)},S._settingsDigest=0,S._getSettingsDigest=function(){if(!S._settingsDigest){var e=S.version;S.audienceManagerServer&&(e+="|"+S.audienceManagerServer),S.audienceManagerServerSecure&&(e+="|"+S.audienceManagerServerSecure),S._settingsDigest=S._hash(e)}return S._settingsDigest},S._readVisitorDone=!1,S._readVisitor=function(){if(!S._readVisitorDone){S._readVisitorDone=!0;var e,t,n,i,r,a,o=S._getSettingsDigest(),s=!1,c=S.cookieRead(S.cookieName),u=new Date;if(c||b||S.discardTrackingServerECID||(c=S.cookieRead(oe.FIRST_PARTY_SERVER_COOKIE)),null==S._fields&&(S._fields={}),c&&"T"!==c)for(c=c.split("|"),c[0].match(/^[\\-0-9]+$/)&&(parseInt(c[0],10)!==o&&(s=!0),c.shift()),c.length%2==1&&c.pop(),e=0;e1?(r=parseInt(t[1],10),a=t[1].indexOf("s")>0):(r=0,a=!1),s&&("MCCIDH"===n&&(i=""),r>0&&(r=u.getTime()/1e3-60)),n&&i&&(S._setField(n,i,1),r>0&&(S._fields["expire"+n]=r+(a?"s":""),(u.getTime()>=1e3*r||a&&!S.cookieRead(S.sessionCookieName))&&(S._fieldsExpired||(S._fieldsExpired={}),S._fieldsExpired[n]=!0)));!S._getField(w)&&q.isTrackingServerPopulated()&&(c=S.cookieRead("s_vi"))&&(c=c.split("|"),c.length>1&&c[0].indexOf("v1")>=0&&(i=c[1],e=i.indexOf("["),e>=0&&(i=i.substring(0,e)),i&&i.match(oe.VALID_VISITOR_ID_REGEX)&&S._setField(w,i)))}},S._appendVersionTo=function(e){var t="vVersion|"+S.version,n=e?S._getCookieVersion(e):null;return n?te.areVersionsDifferent(n,S.version)&&(e=e.replace(oe.VERSION_REGEX,t)):e+=(e?"|":"")+t,e},S._writeVisitor=function(){var e,t,n=S._getSettingsDigest();for(e in S._fields)j(e)&&S._fields[e]&&"expire"!==e.substring(0,6)&&(t=S._fields[e],n+=(n?"|":"")+e+(S._fields["expire"+e]?"-"+S._fields["expire"+e]:"")+"|"+t);n=S._appendVersionTo(n),S.cookieWrite(S.cookieName,n,1)},S._getField=function(e,t){return null==S._fields||!t&&S._fieldsExpired&&S._fieldsExpired[e]?null:S._fields[e]},S._setField=function(e,t,n){null==S._fields&&(S._fields={}),S._fields[e]=t,n||S._writeVisitor()},S._getFieldList=function(e,t){var n=S._getField(e,t);return n?n.split("*"):null},S._setFieldList=function(e,t,n){S._setField(e,t?t.join("*"):"",n)},S._getFieldMap=function(e,t){var n=S._getFieldList(e,t);if(n){var i,r={};for(i=0;i0?e.substr(t):""},hashlessUrl:function(e){var t=e.indexOf("#");return t>0?e.substr(0,t):e},addQueryParamAtLocation:function(e,t,n){var i=e.split("&");return n=null!=n?n:i.length,i.splice(n,0,t),i.join("&")},isFirstPartyAnalyticsVisitorIDCall:function(e,t,n){if(e!==w)return!1;var i;return t||(t=S.trackingServer),n||(n=S.trackingServerSecure),!("string"!=typeof(i=S.loadSSL?n:t)||!i.length)&&(i.indexOf("2o7.net")<0&&i.indexOf("omtrdc.net")<0)},isObject:function(e){return Boolean(e&&e===Object(e))},removeCookie:function(e){Z.remove(e,{domain:S.cookieDomain})},isTrackingServerPopulated:function(){return!!S.trackingServer||!!S.trackingServerSecure},getTimestampInSeconds:function(){return Math.round((new Date).getTime()/1e3)},parsePipeDelimetedKeyValues:function(e){return e.split("|").reduce(function(e,t){var n=t.split("=");return e[n[0]]=decodeURIComponent(n[1]),e},{})},generateRandomString:function(e){e=e||5;for(var t="",n="abcdefghijklmnopqrstuvwxyz0123456789";e--;)t+=n[Math.floor(Math.random()*n.length)];return t},normalizeBoolean:function(e){return"true"===e||"false"!==e&&e},parseBoolean:function(e){return"true"===e||"false"!==e&&null},replaceMethodsWithFunction:function(e,t){for(var n in e)e.hasOwnProperty(n)&&"function"==typeof e[n]&&(e[n]=t);return e}};S._helpers=q;var X=se(S,O);S._destinationPublishing=X,S.timeoutMetricsLog=[];var W={isClientSideMarketingCloudVisitorID:null,MCIDCallTimedOut:null,AnalyticsIDCallTimedOut:null,AAMIDCallTimedOut:null,fieldGroupObj:{},setState:function(e,t){switch(e){case E:!1===t?!0!==this.MCIDCallTimedOut&&(this.MCIDCallTimedOut=!1):this.MCIDCallTimedOut=t;break;case R:!1===t?!0!==this.AnalyticsIDCallTimedOut&&(this.AnalyticsIDCallTimedOut=!1):this.AnalyticsIDCallTimedOut=t;break;case N:!1===t?!0!==this.AAMIDCallTimedOut&&(this.AAMIDCallTimedOut=!1):this.AAMIDCallTimedOut=t}}};S.isClientSideMarketingCloudVisitorID=function(){return W.isClientSideMarketingCloudVisitorID},S.MCIDCallTimedOut=function(){return W.MCIDCallTimedOut},S.AnalyticsIDCallTimedOut=function(){return W.AnalyticsIDCallTimedOut},S.AAMIDCallTimedOut=function(){return W.AAMIDCallTimedOut},S.idSyncGetOnPageSyncInfo=function(){return S._readVisitor(),S._getField("MCSYNCSOP")},S.idSyncByURL=function(e){if(!S.isOptedOut()){var t=u(e||{});if(t.error)return t.error;var n,i,r=e.url,a=encodeURIComponent,o=X;return r=r.replace(/^https:/,"").replace(/^http:/,""),n=U.encodeAndBuildRequest(["",e.dpid,e.dpuuid||""],","),i=["ibs",a(e.dpid),"img",a(r),t.ttl,"",n],o.addMessage(i.join("|")),o.requestToProcess(),"Successfully queued"}},S.idSyncByDataSource=function(e){if(!S.isOptedOut())return e===Object(e)&&"string"==typeof e.dpuuid&&e.dpuuid.length?(e.url="//dpm.demdex.net/ibs:dpid="+e.dpid+"&dpuuid="+e.dpuuid,S.idSyncByURL(e)):"Error: config or config.dpuuid is empty"},Ye(S,X),S._getCookieVersion=function(e){e=e||S.cookieRead(S.cookieName);var t=oe.VERSION_REGEX.exec(e);return t&&t.length>1?t[1]:null},S._resetAmcvCookie=function(e){var t=S._getCookieVersion();t&&!te.isLessThan(t,e)||S.removeCookie(S.cookieName)},S.setAsCoopSafe=function(){k=!0},S.setAsCoopUnsafe=function(){k=!1},function(){if(S.configs=Object.create(null),q.isObject(n))for(var e in n)j(e)&&(S[e]=n[e],S.configs[e]=n[e])}(),f();var K;S.init=function(){l()&&(I.optIn.fetchPermissions(h,!0),!I.optIn.isApproved(I.optIn.Categories.ECID))||K||(K=!0,function(){if(q.isObject(n)){S.idSyncContainerID=S.idSyncContainerID||0,k="boolean"==typeof S.isCoopSafe?S.isCoopSafe:q.parseBoolean(S.isCoopSafe),S.resetBeforeVersion&&S._resetAmcvCookie(S.resetBeforeVersion),S._attemptToPopulateIdsFromUrl(),S._attemptToPopulateSdidFromUrl(),S._readVisitor();var e=S._getField(P),t=Math.ceil((new Date).getTime()/oe.MILLIS_PER_DAY);S.idSyncDisableSyncs||S.disableIdSyncs||!X.canMakeSyncIDCall(e,t)||(S._setFieldExpire(x,-1),S._setField(P,t)),S.getMarketingCloudVisitorID(),S.getAudienceManagerLocationHint(),S.getAudienceManagerBlob(),S._mergeServerState(S.serverState)}else S._attemptToPopulateIdsFromUrl(),S._attemptToPopulateSdidFromUrl()}(),function(){if(!S.idSyncDisableSyncs&&!S.disableIdSyncs){X.checkDPIframeSrc();var e=function(){var e=X;e.readyToAttachIframe()&&e.attachIframe()};A.addEventListener("load",function(){O.windowLoaded=!0,e()});try{ie.receiveMessage(function(e){X.receiveMessage(e.data)},X.iframeHost)}catch(e){}}}(),function(){S.whitelistIframeDomains&&oe.POST_MESSAGE_ENABLED&&(S.whitelistIframeDomains=S.whitelistIframeDomains instanceof Array?S.whitelistIframeDomains:[S.whitelistIframeDomains],S.whitelistIframeDomains.forEach(function(e){var n=new Y(t,e),i=Q(S,n);ie.receiveMessage(i,e)}))}())}};Je.config=ue,C.Visitor=Je;var ze=Je,Qe=function(e){if(U.isObject(e))return Object.keys(e).filter(function(t){return""!==e[t]&&ue.getConfigs()[t]}).reduce(function(t,n){var i=ue.normalizeConfig(n,e[n]),r=U.normalizeBoolean(i);return t[n]=r,t},Object.create(null))},$e=Ge.OptIn,Ze=Ge.IabPlugin;return ze.getInstance=function(e,t){if(!e)throw new Error("Visitor requires Adobe Marketing Cloud Org ID.");e.indexOf("@")<0&&(e+="@AdobeOrg");var n=function(){var t=C.s_c_il;if(t)for(var n=0;n {\n let loaded;\n const _consentCATs = {\n 8: { enabled: false, desc: 'Social Media' },\n 7: { enabled: false, desc: 'Content Selection & Measurement' },\n 6: { enabled: false, desc: 'Device Storage' },\n 4: { enabled: false, desc: 'Targeted Advertising' },\n };\n\n function getOptanonConsentCookieEntry() {\n return (\n document &&\n document.cookie &&\n document.cookie\n .split(';')\n .map(function(s) { return s.trim(); })\n .find(function(s) { return s.indexOf('OptanonConsent=') === 0; })\n ) || '';\n }\n\n function isCategoryEnabledInConsent(consentCookie, category) {\n if (!consentCookie) {\n return false;\n }\n var encoded = new RegExp('groups=[^&]*%2C' + category + '%3A1');\n var plainAfterComma = new RegExp('groups=[^&]*,' + category + ':1');\n var plainFirst = new RegExp('groups=' + category + ':1');\n return (\n encoded.test(consentCookie) ||\n plainAfterComma.test(consentCookie) ||\n plainFirst.test(consentCookie)\n );\n }\n\n function isCategoryEnabledInActiveGroups(category) {\n var activeGroups = window.OptanonActiveGroups;\n if (typeof activeGroups !== 'string' || !activeGroups.length) {\n return false;\n }\n return activeGroups.indexOf(',' + category + ',') !== -1;\n }\n\n const parseCookie = () => {\n var consentCookie = getOptanonConsentCookieEntry();\n loaded =\n consentCookie.length > 0 ||\n (typeof window.OptanonActiveGroups === 'string' && window.OptanonActiveGroups.length > 0);\n\n Object.keys(_consentCATs).forEach(function(k) {\n _consentCATs[k].enabled =\n isCategoryEnabledInConsent(consentCookie, k) ||\n isCategoryEnabledInActiveGroups(k);\n });\n };\n parseCookie();\n\n return {\n get loaded() {\n return loaded;\n },\n enabledCATs: () => {\n let enabled = [];\n Object.entries(_consentCATs).forEach(([k,v]) => {\n if (v.enabled) enabled.push(k);\n });\n return enabled;\n },\n isEnabled: (category) => {\n return _consentCATs[category]?.enabled ?? false;\n },\n refresh: () => {\n parseCookie();\n }\n };\n })();\n\n //OneTrust GDPR Consent BEGIN\n // Shared mapping used at Visitor init (previousPermissions) and at runtime when\n // OptanonConsent appears after Launch library load (adobe.optIn approve/deny).\n function applyOneTrustToAdobeOptInCategories(isEnabled, setPermission) {\n if (!isEnabled(8)) {\n // CAT 8: Social Media\n setPermission(adobe.OptInCategories.LIVEFYRE, false);\n }\n if (!isEnabled(7)) {\n // CAT 7: Content Selection & Measurement\n setPermission(adobe.OptInCategories.AAM, false);\n setPermission(adobe.OptInCategories.ANALYTICS, false);\n setPermission(adobe.OptInCategories.CAMPAIGN, false);\n setPermission(adobe.OptInCategories.ECID, false);\n setPermission(adobe.OptInCategories.MEDIA_ANALYTICS, false);\n }\n if (!isEnabled(4)) {\n // CAT 4: Targeted Advertising\n setPermission(adobe.OptInCategories.ADCLOUD, false);\n setPermission(adobe.OptInCategories.TARGET, false);\n }\n if (isEnabled(4) && isEnabled(7)) {\n // Enable all categories as opted in\n // Effectively what was being done previously by adobe.optIn.approveAll();\n Object.keys(adobe.OptInCategories).forEach((category) => {\n setPermission(adobe.OptInCategories[category], true);\n });\n }\n }\n\n var buildConfig = () => {\n var config = {};\n oneTrustConsent.refresh();\n let { loaded, isEnabled } = oneTrustConsent;\n\n if (loaded) {\n config.previousPermissions = {};\n applyOneTrustToAdobeOptInCategories(isEnabled, function(category, allowed) {\n config.previousPermissions[category] = allowed;\n });\n if (!isEnabled(6)) {\n // CAT 6: Storage\n config.disableThirdPartyCookies = true;\n }\n if (isEnabled(6)) {\n config.disableThirdPartyCookies = false;\n }\n }\n return config;\n };\n\n var lastSyncedConsentSignature = null;\n\n function doesAdobeOptInApply() {\n try {\n return window?.Optanon?.GetDomainData?.().ForceConsent ?? !document.cookie.split(';').some((entry) => entry.includes('region=USA'));\n } catch (e) {\n return false;\n }\n }\n\n function syncAdobeOptInFromOneTrust() {\n if (!doesAdobeOptInApply() || !window.adobe || !adobe.optIn || !adobe.OptInCategories) {\n return;\n }\n\n oneTrustConsent.refresh();\n if (!oneTrustConsent.loaded) {\n return;\n }\n\n var optIn = adobe.optIn;\n var consentSignature = oneTrustConsent.enabledCATs().sort().join(',');\n var shouldForceResync =\n oneTrustConsent.isEnabled(4) &&\n oneTrustConsent.isEnabled(7) &&\n !optIn.isApproved(adobe.OptInCategories.ANALYTICS);\n\n if (\n lastSyncedConsentSignature !== null &&\n consentSignature === lastSyncedConsentSignature &&\n !shouldForceResync\n ) {\n return;\n }\n\n var isEnabled = oneTrustConsent.isEnabled;\n\n applyOneTrustToAdobeOptInCategories(isEnabled, function(category, allowed) {\n if (allowed) {\n optIn.approve(category);\n } else {\n optIn.deny(category);\n }\n });\n\n lastSyncedConsentSignature = consentSignature;\n\n var analyticsApproved = optIn.isApproved(adobe.OptInCategories.ANALYTICS);\n logEvent('OneTrust opt-in synced', { consentSignature, analyticsApproved });\n }\n\n function isAdobeAnalyticsConsentGranted() {\n oneTrustConsent.refresh();\n return oneTrustConsent.isEnabled(4) && oneTrustConsent.isEnabled(7);\n }\n\n function isAdobeAnalyticsOptInApproved() {\n if (!doesAdobeOptInApply()) {\n return true;\n }\n return !!(\n window.adobe &&\n adobe.optIn &&\n adobe.OptInCategories &&\n adobe.optIn.isApproved(adobe.OptInCategories.ANALYTICS)\n );\n }\n\n function getAdobeOptInState() {\n oneTrustConsent.refresh();\n syncAdobeOptInFromOneTrust();\n return {\n optInApplies: doesAdobeOptInApply(),\n consentLoaded: oneTrustConsent.loaded,\n consentGranted: isAdobeAnalyticsConsentGranted(),\n analyticsApproved: isAdobeAnalyticsOptInApproved(),\n enabledCategories: oneTrustConsent.enabledCATs(),\n };\n }\n\n function scheduleAdobeOptInSync() {\n syncAdobeOptInFromOneTrust();\n\n window.addEventListener('oneTrustLibraryLoaded', syncAdobeOptInFromOneTrust);\n window.addEventListener('OptanonConsentChanged', syncAdobeOptInFromOneTrust);\n\n var attempts = 0;\n var maxAttempts = 100;\n var pollId = setInterval(function() {\n attempts += 1;\n syncAdobeOptInFromOneTrust();\n var analyticsApproved = isAdobeAnalyticsOptInApproved();\n var consentLoaded = oneTrustConsent.loaded;\n var consentResolved =\n analyticsApproved ||\n (consentLoaded && !isAdobeAnalyticsConsentGranted());\n if (attempts >= maxAttempts || consentResolved) {\n clearInterval(pollId);\n }\n }, 100);\n }\n //OneTrust GDPR Consent END\n\n var visitor = Visitor.getInstance('8CF467C25245AE3F0A490D4C@AdobeOrg', {\n trackingServer: 'o.fandango.com', // same as s.trackingServer\n trackingServerSecure: 'os.fandango.com', // same as s.trackingServerSecure\n marketingCloudServer: 'o.fandango.com',\n marketingCloudServerSecure: 'os.fandango.com',\n doesOptInApply: doesAdobeOptInApply,\n disableThirdPartyCookies: true, // can be overwritten by builtConfig\n ...buildConfig(),\n // preOptInApprovals: preOptInApprovalsConfig,\n // previousPermissions: previousPermissionsConfig,\n // isOptInStorageEnabled: false\n });\n\n // Assign visitor instance to window in case it's a dependency elsewhere\n window.visitor = visitor;\n visitor.getVisitorValues((data) => {\n logEvent('Identity Values', data);\n });\n\n scheduleAdobeOptInSync();\n\n // Lets AppM Config re-sync immediately before page call if OneTrust finished after init.\n window.__cnbcSyncAdobeOptInFromOneTrust = syncAdobeOptInFromOneTrust;\n window.__cnbcDoesAdobeOptInApply = doesAdobeOptInApply;\n window.__cnbcIsAdobeAnalyticsConsentGranted = isAdobeAnalyticsConsentGranted;\n window.__cnbcIsAdobeAnalyticsOptInApproved = isAdobeAnalyticsOptInApproved;\n window.__cnbcIsOneTrustConsentLoaded = function() {\n oneTrustConsent.refresh();\n return oneTrustConsent.loaded;\n };\n window.__cnbcGetAdobeOptInState = getAdobeOptInState;\n})();",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL8a8bd6e02956470eba6a8b7e75c31ea5",name:"DR - Action - Pro Portfolio",events:[{modulePath:"core/src/lib/events/domReady.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["cnbc.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"https://assets.adobedtm.com/77ca722dd820/bbaaa56c8833/95c1ebbd94f6/RCd54961d602904aa9a3b254f4a25a616c-source.min.js",language:"javascript",isExternal:!0},timeout:2e3,delayNext:!0}]},{id:"RL908e4d6692e44e118ca9a7903b0f3d6b",name:"30 - Parsely",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:30}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["cnbc.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/* global mps, BI, PARSELY, __CNBC_META_DATA */\n(function() {\n function resolveUser({timeLimit = 3000 } = {}) {\n return new Promise((resolve) => {\n let didTimeout = false;\n\n let timeout = setTimeout(function() {\n didTimeout = true;\n resolve(undefined);\n }, timeLimit);\n\n BI.waitForObjAvailable(['__CNBC_META_DATA.user'], (timeLimit/100), function() {\n if (didTimeout) return;\n\n clearTimeout(timeout);\n resolve(__CNBC_META_DATA.user);\n });\n });\n }\n function loadParselyHeadlineTesting(apiKey) {\n !function() {\n 'use strict';\n var e = window.VIP_EXP = window.VIP_EXP || { config: {} };\n e.loadVIPExp = function(t) {\n var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\n t && (e.config = n, e.config.apikey = t, function(e) {\n if (!e) return;\n var t = 'https://experiments.parsely.com/vip-experiments.js' + '?apiKey='.concat(e),\n n = document.createElement('script');\n n.src = t;\n n.type = 'text/javascript';\n n.fetchPriority = 'high';\n var i = document.getElementsByTagName('script')[0];\n i && i.parentNode && i.parentNode.insertBefore(n, i);\n }(t), n.enableFlickerControl && function() {\n var t, n;\n if (null !== (t = performance) && void 0 !== t && null !== (n = t.getEntriesByName) && void 0 !== n && null !== (n = n.call(t, 'first-contentful-paint')) && void 0 !== n && n[0]) return;\n var i = 'vipexp-fooc-prevention';\n e.config.disableFlickerControl = function() {\n var e = document.getElementById(i);\n null != e && e.parentNode && e.parentNode.removeChild(e);\n };\n var o = document.createElement('style');\n o.setAttribute('type', 'text/css');\n o.appendChild(document.createTextNode('body { visibility: hidden; }'));\n o.id = i;\n document.head.appendChild(o);\n window.setTimeout(e.config.disableFlickerControl, 500);\n }());\n };\n e.loadVIPExp(apiKey, {\n enableFlickerControl: true,\n enableLiveUpdates: true,\n liveUpdateTimeout: 30000,\n });\n }();\n }\n\n function loadParsely(){\n const cnbcParsely = {\n autotrack: false,\n onReady: function() {\n const getUserType = async function () {\n const user = await resolveUser();\n let usertyperesult;\n if (!user) {\n usertyperesult = 'anonymous';\n } else if (user.isPro) {\n usertyperesult = 'logged-in-pro';\n } else if (user.isInvestingClubUser) {\n usertyperesult = 'logged-in-investingclub';\n } else if (user.isPlusUser) {\n usertyperesult = 'logged-in-plus';\n } else {\n usertyperesult = 'logged-in';\n }\n return usertyperesult;\n };\n const getContentType = function () {\n let isInvestingClubContent = false;\n let contentypestatus;\n if (__CNBC_META_DATA && __CNBC_META_DATA.contentClassification && __CNBC_META_DATA.contentClassification.includes('investingClub')) {\n isInvestingClubContent = true;\n }\n if (__CNBC_META_DATA && __CNBC_META_DATA.contentClassification && __CNBC_META_DATA.contentClassification.includes('cnbcplus')) {\n contentypestatus = 'cnbcplus';\n }\n else if (__CNBC_META_DATA.premium == true && __CNBC_META_DATA.native != true){\n contentypestatus = 'Pro';\n }\n else if (isInvestingClubContent) {\n contentypestatus = 'investingclub';\n }\n else {\n contentypestatus ='free';\n }\n return contentypestatus;\n };\n getUserType().then((userType) => {\n PARSELY.updateDefaults({\n data: {\n user_type: userType,\n content_type: getContentType(),\n }\n });\n PARSELY.beacon.trackPageView();\n });\n }\n };\n window.PARSELY = window.PARSELY ? Object.assign( window.PARSELY, cnbcParsely ) : cnbcParsely;\n (function(d) {\n // replace with the domain of your site (e.g. parsely.com)\n switch (true)\n {\n case location.hostname == 'www.cnbc.com':\n case location.hostname == 'dealornodeal.cnbc.com':\n mps.site = 'cnbc.com';\n break;\n case location.hostname == 'stg-02deal.cnbc.com':\n mps.site = 'stg-02web.cnbc.com';\n break;\n case (location.hostname.indexOf('qa') != -1 ) && (location.hostname.indexOf('buffett.cnbc.com') != -1):\n case (location.hostname.indexOf('dev') != -1 ) && (location.hostname.indexOf('buffett.cnbc.com') != -1):\n mps.site = 'sandbox.buffett.cnbc.com';\n break;\n case (location.hostname.indexOf('qa') != -1 ) && (location.hostname.indexOf('acorns.com') != -1):\n case (location.hostname.indexOf('dev') != -1 ) && (location.hostname.indexOf('acorns.com') != -1):\n mps.site = 'sandbox.grow.acorns.com';\n break;\n case (location.hostname.indexOf('qa') != -1 ) && (location.hostname.indexOf('cnbc.com') != -1):\n case (location.hostname.indexOf('dev') != -1 ) && (location.hostname.indexOf('cnbc.com') != -1):\n case (location.hostname.indexOf('sandbox') != -1 ) && (location.hostname.indexOf('cnbc.com') != -1):\n case (location.hostname.indexOf('localhost') != -1 ):\n mps.site = 'sandbox.cnbc.com';\n break;\n default:\n mps.site = location.hostname;\n }\n if (!location.href.includes('/datapreview/')) {\n loadParselyHeadlineTesting(mps.site);\n }\n if (!window.PARSELY){\n window.PARSELY = {video:{autotrack:false}};\n }\n if(!location.href.includes('/datapreview/')){\n const site = mps.site,\n b = d.body,\n e = d.createElement('div');\n e.innerHTML = '';\n e.id = 'parsely-root';\n e.style.display = 'none';\n b.appendChild(e);\n }\n })(document);\n (function (s, p, d) {\n const h = d.location.protocol;\n const i = p+'-'+s;\n const r = d.getElementById(p+'-root');\n const u = 'cdn.parsely.com';\n let e = d.getElementById(i);\n if (e) return;\n e = d.createElement(s); e.id = i; e.async = true;\n e.src = h + '//' + u + '/p.js'; r.appendChild(e);\n })('script', 'parsely', document);\n (function() {\n if(__CNBC_META_DATA && (__CNBC_META_DATA.id == 100003784 || __CNBC_META_DATA.id == 404 || __CNBC_META_DATA.id == 405)) {\n return;\n }\n let count = 0;\n const timer = setInterval(function(){\n if(count > 60 || (window.PARSELY && PARSELY.config && PARSELY.config.parsely_site_uuid) ) {\n clearInterval(timer);\n profileBeacon();\n }\n count++;\n }, 1000);\n function profileBeacon() {\n const uuid = (window.PARSELY && PARSELY.config && PARSELY.config.parsely_site_uuid) ? PARSELY.config.parsely_site_uuid : null;\n if (!uuid) {return;}\n const urlArray = window.location.href.split('?');\n const url = urlArray[0];\n const apikey = 'cnbc.com',\n parsely_base = 'https://api.parsely.com/v2/profile?',\n beacon = new Image();\n beacon.src = parsely_base + 'apikey=' + apikey + '&url=' + encodeURIComponent(url) + '&uuid=' + uuid;\n }\n })();\n (function () {\n window.parselyOnRoute = window.parselyOnRoute || function (event) {\n if (window.PARSELY && window.PARSELY.beacon) {\n console.log('parselyOnRoute is fired on route change');\n PARSELY.beacon.trackPageView({\n url: event.newPath,\n urlref: event.currentPath,\n js: 1\n });\n }\n };\n window.__EventBus__.remove('route', window.parselyOnRoute);\n window.__EventBus__.on('route', window.parselyOnRoute);\n })();\n console.log('Parsely - CAT7 - Enabled');\n }\n BI.wrapWithOneTrust({\n fn: loadParsely,\n featureName: 'Parsely Component',\n categories: [7],\n });\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL92cac7d5677c4d35939255c0c8a336d6",name:"30 - Nielsen Digital Content Ratings [d:cnbc.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:30}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["cnbc.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/* global mps, mpscall, BI, NOLBUNDLE */\n(function() {\n // Nielsen DCR Static App ID Tag\n // Static Queue Snippet\n var logEvent = (window.BI && BI.console && BI.console.build('Nielsen DCR')) || Function.prototype;\n\n function loadNielsenTag () {\n (function(global, namespace) {\n global[namespace] = global[namespace] || {\n nlsQ: function(config, name, globalConfig, scriptElement, documentRef, firstScript) {\n documentRef = global.document;\n scriptElement = documentRef.createElement('script');\n scriptElement.async = true;\n scriptElement.src =\n (global.location.protocol === 'http:' ? 'http:' : 'https:') +\n '//cdn-gl.imrworldwide.com/conf/' + config + '.js#name=' + name + '&ns=' + namespace;\n firstScript = documentRef.getElementsByTagName('script')[0];\n firstScript.parentNode.insertBefore(scriptElement, firstScript);\n global[namespace][name] = global[namespace][name] || {\n g: globalConfig || {},\n ggPM: function(eventName, config, ref, script, instance) {\n (global[namespace][name].q = global[namespace][name].q || []).push([eventName, config, ref, script, instance]);\n }\n };\n\n return global[namespace][name];\n }\n };\n })(window, 'NOLBUNDLE');\n\n // SDK Initialization\n window.nSdkInstance = NOLBUNDLE.nlsQ('P3C0162C5-40AE-4849-8BD6-72C843E9563F', 'nlsnInstance', {});\n var ALPHA_NUM_REGEX = /[^a-z0-9 ]+/gi;\n var SPACE_FORMAT_REGEX = /\\s+/g;\n // Content Metadata\n window.nielsenMetadata = {\n type: 'static',\n assetid: mps.pagevars?.cid || '', // *DYNAMIC METADATA*: unique ID for each article **REQUIRED**\n section: mps.pagevars?.cats?.[0]?.replace(ALPHA_NUM_REGEX, '').replace(SPACE_FORMAT_REGEX, '_').trim() || '', // *DYNAMIC METADATA*: section of site **REQUIRED**\n crossId2: 'CNBC',\n segA: '', // *DYNAMIC METADATA*: custom segment\n segB: 'web', // *DYNAMIC METADATA*: custom segment\n segC: 'web' + ' - ' + 'CNBC' + ' - ' + (mpscall?.title?.replace(ALPHA_NUM_REGEX, '').replace(SPACE_FORMAT_REGEX, '_').trim() || '') // *DYNAMIC METADATA*: custom segment\n };\n // Event 'staticstart' Call\n window.nSdkInstance.ggPM('staticstart', window.nielsenMetadata);\n logEvent('Nielsen DCR Tagging - CAT4 - Enabled');\n }\n\n BI.wrapWithOneTrust({\n fn: loadNielsenTag,\n featureName: 'Nielsen DCR',\n categories: [4]\n });\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL93d5654959464867b9237a11f922216c",name:"50 - Rokt Conversion Capture - tracking landing page [d: cnbc.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["cnbc.com"]},timeout:2e3},{modulePath:"core/src/lib/conditions/path.js",settings:{paths:[{value:"/heres-what-to-listen-for-in-a-corporate-earnings-call-with-investors/",valueIsRegex:!0},{value:"/buffett-whitepaper/",valueIsRegex:!0},{value:"/cramerguide/",valueIsRegex:!0},{value:"/jointheclub/",valueIsRegex:!0},{value:"/the-chart-signals-that-top-investing-pros-use/",valueIsRegex:!0},{value:"sign-up-for-cnbc-newsletters/",valueIsRegex:!0}]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/* globals BI */\n(function () {\n function loadRoktSnippet() {\n (function (window, document, source, accountId, integrationName, e, w, a, _) {\n window._ROKT_ = integrationName;\n window[integrationName] = window[integrationName] || {\n id: accountId,\n h: w,\n lc: [],\n it: new Date(),\n onLoaded: function (c) {\n window[integrationName].lc.push(c);\n },\n };\n a = document.createElement('script');\n a.type = 'text/javascript';\n a.async = true;\n a.src = source;\n if (e) {\n a.integrity = e;\n a.crossOrigin = 'anonymous';\n }\n _ = document.getElementsByTagName('script')[0];\n _.parentNode.insertBefore(a, _);\n })(\n window,\n document,\n 'https://apps.rokt.com/wsdk/integrations/snippet.js',\n '3017129197477095999', // the ids are the same for snippet.js and launcher.js, not sure if we need both of these scripts\n 'rokt'\n );\n\n window.rokt.onLoaded(function(rokt) {\n rokt.setAttributes({\n emailsha256: ''\n });\n });\n }\n\n async function loadRoktLauncher() {\n const target = document.head || document.body;\n const script = document.createElement('script');\n script.type = 'text/javascript';\n script.src = 'https://apps.rokt.com/wsdk/integrations/launcher.js';\n script.fetchpriority = 'high';\n script.crossOrigin = 'anonymous';\n script.async = true;\n script.id = 'rokt-launcher';\n target.appendChild(script);\n await new Promise((resolve) =>\n window.Rokt\n ? resolve()\n : document\n .getElementById('rokt-launcher')\n .addEventListener('load', () => resolve())\n );\n\n await window.Rokt.createLauncher({\n accountId: '3017129197477095999', //account id given from rokt team\n });\n }\n\n /* SNIPAF: {\"name\": \"button_element_conditions\", \"version\":\"1.0\"} */\n const buttonElementConditions = function (buttonNodeEvent) {\n //corporate earnings site button //chart signals site has exact same event types\n const componentSubmitIdSiteOne = buttonNodeEvent.id === 'whitePaperFormSubmit';\n const freeDownloadTextContentSiteOne = buttonNodeEvent.textContent === 'FREE DOWNLOAD';\n const typeSubmitSiteOne = buttonNodeEvent.type === 'submit';\n\n //buffet whitepaper\n const componentSubmitIdSiteTwo = buttonNodeEvent.id === 'submit';\n const freeDownloadTextContentSiteTwo = buttonNodeEvent.textContent === 'Submit';\n const typeSubmitSiteTwo = buttonNodeEvent.type === 'submit';\n\n //cramer guide\n const componentSubmitIdSiteThree = buttonNodeEvent.id === 'nl-page-submit';\n const freeDownloadTextContentSiteThree = buttonNodeEvent.textContent === 'GET THE FREE GUIDE';\n const typeSubmitSiteThree = buttonNodeEvent.type === 'submit';\n\n //jointheclub\n const componentSubmitIdSiteFour = buttonNodeEvent.id === 'nl-page-submit';\n const freeDownloadTextContentSiteFour = buttonNodeEvent.textContent === 'Subscribe';\n const typeSubmitSiteFour = buttonNodeEvent.type === 'submit';\n\n /* need to handle cnbc newsletter once that's added to adobe in work AFT-975 */\n\n const corporateEarningsEvent = componentSubmitIdSiteOne && freeDownloadTextContentSiteOne && typeSubmitSiteOne;\n const buffetWhitePaperEvent = componentSubmitIdSiteTwo && freeDownloadTextContentSiteTwo && typeSubmitSiteTwo;\n const cramerGuideEvent = componentSubmitIdSiteThree && freeDownloadTextContentSiteThree && typeSubmitSiteThree;\n const joinTheClubEvent = componentSubmitIdSiteFour && freeDownloadTextContentSiteFour && typeSubmitSiteFour;\n\n return corporateEarningsEvent || buffetWhitePaperEvent || cramerGuideEvent || joinTheClubEvent;\n\n };\n /* SNIPAF: END*/\n\n /* SNIPAF: {\"name\": \"click_event_filter\", \"version\":\"1.0\"} */\n const clickEventFilter = function (bteEvent) {\n if (\n Object.prototype.hasOwnProperty.call(bteEvent, 'eventObject') &&\n typeof bteEvent.eventObject === 'object' &&\n bteEvent.eventObject instanceof HTMLElement) {\n const nodeEvent = bteEvent.eventObject;\n if (nodeEvent.tagName === 'BUTTON') {\n return buttonElementConditions(nodeEvent);\n }\n }\n return false;\n };\n /* SNIPAF: END*/\n\n\n function checkEventOccurence() {\n BI.waitForObjAvailable(['__EventBus__'], 50, function() {\n /* \ud83d\ude80 call our snippet and launcher when button is clicked \ud83d\ude80 */\n window.__EventBus__.on('click', function (e) {\n if (clickEventFilter(e) ) {\n loadRoktSnippet();\n loadRoktLauncher();\n }\n });\n });\n }\n\n BI.wrapWithOneTrust({\n fn: checkEventOccurence,\n featureName: 'Rokt Pagecall',\n categories: [4,7],\n });\n})();",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL95a0923e2f284855afa817e8be33d020",name:"30 - VWO Tag [d:cnbc.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:30}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["cnbc.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/* globals BI, mps */\nfunction vwoScript() {\n const BRAND_ID_MAP = {\n 'cnbc.com': 612803,\n };\n\n const CNBC_DOMAIN = 'cnbc.com';\n\n const topLevelDomain = (function () {\n const validDomains = ['cnbc.com'];\n const isAmp = location.hash.indexOf('amp=1') != -1;\n const ampDomainOverride = (location.hash.split('domain=')[1] || '').split('&')[0];\n let topLevelDomain =\n (isAmp && ampDomainOverride) || document.location.hostname.match(/[^./]+\\.[^./]+$/)[0];\n topLevelDomain = validDomains.indexOf(topLevelDomain) != -1 ? topLevelDomain : 'cnbc.com';\n\n return topLevelDomain;\n })();\n\n const brand = BRAND_ID_MAP[topLevelDomain];\n const el = document.createElement('script');\n el.src = `https://dev.visualwebsiteoptimizer.com/lib/${brand || BRAND_ID_MAP[CNBC_DOMAIN]}.js`;\n document.head.appendChild(el);\n}\n\n// OneTrust GDPR Wrapper for VWO\n// Category 7 - Content Selection / Personalized Content\n(function() {\n BI.waitForObjAvailable(['mps', 'mps.geo', 'mps.geo.data'], 40, function() {\n if (mps) {\n mps.optCAT7Enabled = true;\n var optanonCookie =\n document &&\n document.cookie &&\n document.cookie\n .split(';')\n .map(s => s.trim())\n .find(s => s.startsWith('OptanonConsent'));\n var categoryEnabledRegexC7 = /groups=[^&]*%2C7%3A1/;\n mps.optConsentContentMeasurement = categoryEnabledRegexC7.test(optanonCookie);\n\n if (mps.geo.inGroup('eea')) {\n if (mps.optConsentContentMeasurement) {\n mps.optCAT7Enabled = true;\n } else {\n mps.optCAT7Enabled = false;\n }\n }\n\n if(mps.optCAT7Enabled) {\n //Content Selection / Personalized Content code goes here\n console.log('VWO - CAT7 - Enabled');\n vwoScript();\n } else {\n console.log('VWO - CAT7 - Disabled');\n }\n }\n });\n})();",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL9af1bbc6074b461992788e4181290162",name:"50 - True Anthem Tag [d:cnbc.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["cnbc.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/* globals BI, mps */\nfunction trueAnthemTag() {\n var head = document.getElementsByTagName('head')[0];\n var script = document.createElement('script');\n var address = 'https://tru.am/scripts/custom/nbcuniversal.js';\n\n script.type = 'text/javascript';\n script.src = address;\n head.appendChild(script);\n}\n\n// OneTrust GDPR Wrapper for True Anthem Tag\n// Category 4 - Marketing, Targeted Advertising and General Analytics\n(function() {\n BI.waitForObjAvailable(['mps', 'mps.geo', 'mps.geo.data'], 40, function() {\n if (mps) {\n mps.optCAT4Enabled = true;\n var optanonCookie =\n document &&\n document.cookie &&\n document.cookie\n .split(';')\n .map(s => s.trim())\n .find(s => s.startsWith('OptanonConsent'));\n var categoryEnabledRegexC4 = /groups=[^&]*%2C4%3A1/;\n mps.optConsentAdMeasurement = categoryEnabledRegexC4.test(optanonCookie);\n\n if (mps.geo.inGroup('eea')) {\n if (mps.optConsentAdMeasurement) {\n mps.optCAT4Enabled = true;\n } else {\n mps.optCAT4Enabled = false;\n }\n }\n\n if(mps.optCAT4Enabled == true) {\n //Marketing and Targeted Advertising tracking code goes here\n console.log('True Anthem Tag - CAT4 - Enabled');\n trueAnthemTag();\n } else {\n console.log('True Anthem Tag - CAT4 - Disabled');\n }\n }\n });\n})();",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RL9c9b4e188bd5405ea27d8cc28b7fb013",name:"DR - Action - Accountflow",events:[{modulePath:"core/src/lib/events/domReady.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["cnbc.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"https://assets.adobedtm.com/77ca722dd820/bbaaa56c8833/95c1ebbd94f6/RCbb1359c9a5144aca8b4219d2e5620f19-source.min.js",language:"javascript",isExternal:!0},timeout:2e3,delayNext:!0}]},{id:"RL9feb3428b38b4d93bc0899d4df40dab4",name:"40 - Convert Big Time Event Bus (BTE) to $t [d:cnbc.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:40}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["cnbc.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,
source:"/* global $t, BI */\n(function () {\n // Setting up BI console log functions\n var logEvent = (window.BI && BI.console && BI.console.build('BTE')) || Function.prototype;\n\n // Defining a list of all \"Big Time Event Bus\" event names\n const eventList = [\n 'click',\n 'accountflow',\n 'authflow',\n 'authFlow',\n 'chatbotflow',\n 'proPlayerToggle',\n 'videoPopout',\n 'moduleInView',\n 'loadMore',\n 'taboola_omniture',\n 'videoPopoutRef',\n 'videoLinearBackToCNBC',\n 'videoLinear30SecondsWatched',\n 'videoLinear8SecondsWatched',\n 'videoLinearAdComplete',\n 'videoLinearAdPause',\n 'videoLinearAdStart',\n 'videoLinearEvery30SecondsWatched',\n 'videoLinearStart',\n 'videoLinearPause',\n 'videoLinearResume',\n 'videoLinearReturnToLive',\n 'videoLinearScrub',\n 'videoAudioTrackChanged',\n 'videoReplay',\n 'videoCancelEndCardExternal',\n 'videoDockedUndockicon',\n 'videoDockedClose',\n 'videoAdComplete',\n 'videoAdPause',\n 'videoAdStart',\n 'videoComplete',\n 'videoStart',\n 'videoPauseExternal',\n 'videoPause',\n 'videoResume',\n 'videoSeek',\n 'videoClip25',\n 'videoClip50',\n 'videoClip75',\n 'video8SecondsWatched',\n 'video30SecondsWatched',\n 'videoEveryMinuteWatched',\n 'videoShare',\n 'videoEmbedClick',\n 'videoProviderSharing',\n 'videoFullScreen',\n 'videoPlaybackRateChanged',\n 'videoClosedCaption',\n 'videoJumpBack',\n 'watchlistflow',\n 'jwPlayerLiveStreamReadyEvent',\n 'jwPlayerVodReadyEvent',\n 'scroll',\n 'subscriptionsFlow',\n 'stockScreenerFlow',\n 'pianoTemplateOnLoad',\n 'newslettersFlow',\n 'portfolio',\n 'mvpdNewsletterModal',\n ];\n\n $t('register', 'bte_event');\n $t(\n 'register',\n eventList.map(eventName => `bte_${eventName}`)\n );\n\n BI.waitForObjAvailable(['__EventBus__', '__EventBus__.on'], 50, () => {\n const BTE = window.__EventBus__;\n // Converting BTE events to $t, and BI logging them\n eventList.forEach(function (eventName) {\n BTE.on(eventName, function (data) {\n // TODO: Deprecated\n $t('track', 'bte_event', { eventName, data });\n // New tracking convention\n $t('track', `bte_${eventName}`, { eventName, data });\n logEvent(eventName, data);\n });\n });\n });\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0},{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"(function () {\n /* global $t */\n\n // Registering new events that will fire when a JW Player\n // instance or video metadata are available.\n $t('register', 'cnbc_jw_player_loaded');\n $t('register', 'cnbc_video_metadata_loaded');\n\n // Handling Metadata Load\n $t('on', 'bte_event', function (e, data) {\n switch (data.eventName) {\n case 'jwPlayerVodReadyEvent':\n case 'jwPlayerLiveStreamReadyEvent':\n $t('track', 'cnbc_jw_player_loaded', { JWPlayer: data.data.jwPlayerReference, callingEvent: data.eventName });\n $t('track', 'cnbc_video_metadata_loaded', { ...data.data });\n break;\n }\n });\n})();",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RLa6176bf5fbf942e3b679865a943abd5f",name:"50 - Action - Authentication [d:cnbc.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["cnbc.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/* globals BI, __CNBC_META_DATA */\n(function () {\n const pixelConfig = {\n urlCondition: new RegExp(/^\\/investingclub\\/subscribe|\\/application\\/pro/),\n snowplow: {\n baseURL: 'https://px.tvadsync.com/com.snowplowanalytics.iglu/v1',\n staticParams: {\n schema: 'iglu:com.tvadsync.poc/ad_impression/jsonschema/1-2-3', // snowplow custom event schema\n },\n trackingIds: {\n PRO: 'CNBC Pro Landing Page',\n INVESTINGCLUB: 'CNBC Investing Club Landing Page',\n },\n },\n theTradeDesk: {\n baseURL: 'https://insight.adsrvr.org/track/pxl/',\n staticParams: {\n adv: '5tvrho0', // the trade desk advertiser id\n fmt: '3', // the trade desk pixel format\n },\n trackingIds: {\n PRO: 'X8bgil0',\n INVESTINGCLUB: 'O1qpe2f',\n },\n },\n };\n\n BI.wrapWithOneTrust({\n fn: trackPageView,\n featureName: 'TVAdSync Pageview Pixel',\n categories: [4,7],\n });\n\n function trackPageView() {\n if (!pixelConfig.urlCondition.test(location.pathname)) return;\n\n BI.waitForObjAvailable(['__CNBC_META_DATA'], 50, () => {\n const { tagName } = __CNBC_META_DATA;\n const product = tagName.replace(/marketing/gi, '').toUpperCase();\n const contextData = {\n flow: 'Landing Page',\n product,\n snowplowId: pixelConfig['snowplow'].trackingIds[product] ?? null,\n theTradeDeskId: pixelConfig['theTradeDesk'].trackingIds[product] ?? null,\n };\n\n // Snowplow pixel\n if (contextData.snowplowId) {\n const addParams = new URLSearchParams({\n ...pixelConfig['snowplow'].staticParams,\n aid: contextData.snowplowId, // snowplow app id\n });\n\n const pixelUrl = new URL(`?${addParams.toString()}`, pixelConfig['snowplow'].baseURL);\n addPixel(pixelUrl.toString(), 'snowplow', [{ name: 'alt', value: '' }]);\n }\n\n // The Trade Desk pixel\n if (contextData.theTradeDeskId) {\n const addParams = new URLSearchParams({\n ...pixelConfig['theTradeDesk'].staticParams,\n ct: `0:${contextData.theTradeDeskId}`, // trade desk pixel tracking tag id\n });\n\n const pixelUrl = new URL(`?${addParams.toString()}`, pixelConfig['theTradeDesk'].baseURL);\n addPixel(pixelUrl.toString(), 'the-trade-desk');\n }\n });\n }\n\n const addPixel = (src, name, addtlAttrs = []) => {\n var img = document.createElement('img');\n img.setAttribute('style', 'border-style:none;');\n img.setAttribute('height', '1');\n img.setAttribute('width', '1');\n img.setAttribute('src', src);\n img.setAttribute('name', name+'-pixeltag');\n addtlAttrs.forEach(({ name, value }) => img.setAttribute(name, value));\n document.body.appendChild(img);\n };\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0},{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/* globals BI, $t */\n(function () {\n const pixelConfig = {\n snowplow: {\n baseURL: 'https://px.tvadsync.com/com.snowplowanalytics.iglu/v1',\n staticParams: {\n schema: 'iglu:com.tvadsync.poc/ad_impression/jsonschema/1-2-3', // snowplow custom event schema\n },\n trackingIds: {\n Success: {\n PRO: 'CNBC Pro Continue Page',\n INVESTINGCLUB: 'CNBC Investing Club Continue Page',\n },\n BillingComplete: {\n PRO: 'CNBC Pro CreditCardForm Page',\n INVESTINGCLUB: 'CNBC Investing Club CreditCardForm Page',\n },\n PaymentConfirmed: {\n PRO: 'CNBC Pro Success Page',\n INVESTINGCLUB: 'CNBC Investing Club Success Page',\n },\n },\n },\n theTradeDesk: {\n baseURL: 'https://insight.adsrvr.org/track/pxl/',\n staticParams: {\n adv: '5tvrho0', // the trade desk advertiser id\n fmt: '3', // the trade desk pixel format\n },\n trackingIds: {\n Success: {\n PRO: 'bt04ror',\n INVESTINGCLUB: '63msq2j',\n },\n BillingComplete: {\n PRO: 'od2huzf',\n INVESTINGCLUB: 'cziglk7',\n },\n PaymentConfirmed: {\n PRO: 'qb529pa',\n INVESTINGCLUB: 'osajmyn',\n },\n },\n },\n };\n\n BI.wrapWithOneTrust({\n fn: subscribe,\n featureName: 'TVAdSync Auth Pixel',\n categories: [4,7],\n });\n\n function subscribe() {\n $t('on', 'bte_event', (e, { data, eventName }) => {\n if (\n eventName === 'authflow' &&\n data.dataset?.analyticId?.startsWith('Subscription:')\n ) {\n const {\n analyticId,\n authModalType = null,\n modalName = null,\n } = data.dataset;\n\n const eventData = convertEventData({\n analyticId,\n authModalType,\n modalName,\n });\n\n // Snowplow pixel\n if (eventData.snowplowId) {\n const addParams = new URLSearchParams({\n ...pixelConfig['snowplow'].staticParams,\n aid: eventData.snowplowId, // snowplow app id\n });\n\n const pixelUrl = new URL(`?${addParams.toString()}`, pixelConfig['snowplow'].baseURL);\n addPixel(pixelUrl.toString(), 'snowplow', [{ name: 'alt', value: '' }]);\n }\n\n // The Trade Desk pixel\n if (eventData.theTradeDeskId) {\n const addParams = new URLSearchParams({\n ...pixelConfig['theTradeDesk'].staticParams,\n ct: `0:${eventData.theTradeDeskId}`, // trade desk pixel tracking tag id\n });\n\n const pixelUrl = new URL(`?${addParams.toString()}`, pixelConfig['theTradeDesk'].baseURL);\n addPixel(pixelUrl.toString(), 'the-trade-desk');\n }\n }\n });\n }\n\n const addPixel = (src, name, addtlAttrs = []) => {\n var img = document.createElement('img');\n img.setAttribute('style', 'border-style:none;');\n img.setAttribute('height', '1');\n img.setAttribute('width', '1');\n img.setAttribute('src', src);\n img.setAttribute('name', name+'-pixeltag');\n addtlAttrs.forEach(({ name, value }) => img.setAttribute(name, value));\n document.body.appendChild(img);\n };\n\n function convertEventData(raw) {\n // extract flow, action, and product from analyticId by regex named groups\n const actionContextRegex = /(?\\w+):(?\\w+):(?\\w+)/;\n const actionContextMatch = raw.analyticId.match(actionContextRegex);\n const product = actionContextMatch.groups.product.toUpperCase();\n // some actions are prefixed w/ product name, so we need to remove it\n const action = actionContextMatch.groups.action.replace(new RegExp(product, 'ig'), '');\n const eventObject = {\n flow: actionContextMatch.groups.flow,\n product,\n snowplowId: pixelConfig['snowplow'].trackingIds[action]?.[product] ?? null,\n theTradeDeskId: pixelConfig['theTradeDesk'].trackingIds[action]?.[product] ?? null,\n };\n return eventObject;\n }\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RLab9b2f804fe3417a92e2d64a281eb969",name:"50 - GTag - ecom_click_track [d:cnbc.com, regex_path]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["cnbc.com","ms.now"]},timeout:2e3},{modulePath:"core/src/lib/conditions/path.js",settings:{paths:[{value:"/select/|/select$",valueIsRegex:!0}]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/* globals BI */\nfunction loadScript(script) {\n var s = document.createElement('script'),\n el = document.getElementsByTagName('script')[0];\n s.async = true;\n s.src = (document.location.protocol == 'https:' ? 'https://' : 'http://') + script;\n el.parentNode.insertBefore(s, el);\n}\n\n// Google Tag Manager script & tracking for outbound commerce clicks\n(function () {\n var topLevelDomain = document.location.hostname.match(/[^./]+\\.[^./]+$/)[0];\n loadScript('www.googletagmanager.com/gtag/js?id=AW-938818781');\n\n window.dataLayer = window.dataLayer || [];\n\n function gtag() {\n window.dataLayer.push(arguments);\n }\n\n gtag('js', new Date());\n gtag('config', 'AW-938818781');\n\n var reportGtagConversion = function (sendTo) {\n gtag('event', 'conversion', {\n allow_custom_scripts: true,\n send_to: sendTo,\n // in the snippet in the ticket,\n // the callback changes the window location to a new url\n // i don't think we need to do that\n //event_callback: callback\n });\n // unsure if we need to return anything\n //return false;\n };\n\n var commerceLinkElementConditions = function (linkNode) {\n var linkURL = linkNode.getAttribute('href');\n var linkTarget = linkNode.getAttribute('target');\n var linkRel = linkNode.getAttribute('rel');\n var linkDataSet = linkNode.dataset.analyticsId;\n if (linkURL && linkTarget && linkRel && linkDataSet) {\n var linkOutbound = new URL(linkURL).hostname.match(/[^./]+\\.[^./]+$/)[0] !== topLevelDomain;\n var targetBlank = linkTarget === '_blank';\n var linkSponsored = linkRel === 'sponsored';\n var analyticsId = ['LEARN MORE', 'CARDTITLE'].includes(linkDataSet.split(':')[0]);\n // link domain does not equal page domain\n // & link opens in a new window\n // & link rel is sponsored\n // & dataset has CARDTITLE or LEARN MORE\n return linkOutbound && targetBlank && linkSponsored && analyticsId;\n }\n return false;\n };\n\n var clickEventFilter = function (bteEvent) {\n if (\n Object.prototype.hasOwnProperty.call(bteEvent, 'eventObject') &&\n typeof bteEvent.eventObject === 'object' &&\n bteEvent.eventObject instanceof HTMLElement\n ) {\n var node = bteEvent.eventObject;\n if (node.tagName === 'A') {\n return commerceLinkElementConditions(node);\n } else if (node.tagName === 'IMG') {\n if (node.parentNode && node.parentNode.tagName === 'A') {\n return commerceLinkElementConditions(node.parentNode);\n }\n }\n }\n return false;\n };\n\n window.BI.wrapWithOneTrustCat4(function gtmTrackOutboundSponsoredLink() {\n BI.waitForObjAvailable(['__EventBus__'], 50, function() {\n window.__EventBus__.on('click', function (e) {\n if (clickEventFilter(e)) {\n reportGtagConversion('AW-938818781/l6-KCLzlhpMYEN351L8D');\n }\n });\n });\n });\n\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RLaeaf662b01b54878ba930ad6a8e21edb",name:"50 - Action - phx_zephr",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["cnbc.com","ms.now"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"/* globals $t, s, __CNBC_META_DATA, BI */\n(function () {\n var LOG_PREFIX = '[phx_zephr]';\n // Appear can fire before PageTheExchange is in the DOM.\n var pollTimeLimit = 3000;\n var pollFrequency = 200;\n\n function getPageDocument() {\n try {\n return (window.top && window.top.document) || document;\n } catch (e) {\n return document;\n }\n }\n\n function hasCompleteOutcome(fields) {\n return !!(fields && fields.outcomeId && fields.outcomeType && fields.outcomeDetail);\n }\n\n function hasAnyOutcome(fields) {\n return !!(fields && (fields.outcomeId || fields.outcomeType || fields.outcomeDetail));\n }\n\n function trimOutcome(fields) {\n return {\n outcomeType: String(fields.outcomeType).trim(),\n outcomeId: String(fields.outcomeId).trim(),\n outcomeDetail: String(fields.outcomeDetail).trim(),\n };\n }\n\n function pickField(primary, fallback) {\n return primary || fallback || 'NA';\n }\n\n function parseAnalyticsFromIframeSrc(src) {\n if (!src) return {};\n try {\n var params = new URL(src, location.origin).searchParams;\n return {\n outcomeId: params.get('analyticsOutcomeId') || '',\n outcomeType: params.get('analyticsOutcomeType') || '',\n outcomeDetail: params.get('analyticsOutcomeDetail') || '',\n };\n } catch (e) {\n return {};\n }\n }\n\n function getLanderIframes() {\n try {\n // Prefer lander first; then other zephr-templates; then SDK class.\n return getPageDocument().querySelectorAll(\n 'iframe[src*=\"PageTheExchange\"], iframe[src*=\"zephr-templates\"], iframe.zephrIframeOutcome'\n );\n } catch (e) {\n return [];\n }\n }\n\n function hasLanderIframe() {\n return getLanderIframes().length > 0;\n }\n\n function outcomeFieldsFromPageIframes() {\n var iframes = getLanderIframes();\n var partial = {};\n\n for (var i = 0; i < iframes.length; i++) {\n var src = iframes[i].src || iframes[i].getAttribute('src') || '';\n if (!src) continue;\n\n var parsed = parseAnalyticsFromIframeSrc(src);\n if (hasCompleteOutcome(parsed)) return parsed;\n if (!partial.outcomeId && hasAnyOutcome(parsed)) {\n partial = parsed;\n }\n }\n return partial;\n }\n\n // Ready only when a lander iframe exists and its analytics params are complete.\n function isLanderReady() {\n return hasLanderIframe() && hasCompleteOutcome(outcomeFieldsFromPageIframes());\n }\n\n // Appear-only: setInterval until lander is ready, or pollTimeLimit elapses.\n // Exactly two console logs per wait: start + finished (ready|timeout).\n function waitForLanderReady(onReady) {\n if (isLanderReady()) {\n onReady('ready');\n return;\n }\n\n console.log(LOG_PREFIX, 'Appear waiting for lander iframe outcomes');\n\n var pollCount = 0;\n var pollId = setInterval(function () {\n pollCount += 1;\n var ready = isLanderReady();\n var timedOut = pollCount * pollFrequency >= pollTimeLimit;\n\n if (!ready && !timedOut) return;\n\n clearInterval(pollId);\n var status = ready ? 'ready' : 'timeout';\n console.log(LOG_PREFIX, 'Appear lander wait finished:', status);\n onReady(status);\n }, pollFrequency);\n }\n\n function normalizeEventData(data) {\n data = data || {};\n var fromEvent = {\n outcomeType: data.outcomeType || data.analyticsOutcomeType || '',\n outcomeId: data.outcomeId || data.analyticsOutcomeId || '',\n outcomeDetail: data.outcomeDetail || data.analyticsOutcomeDetail || '',\n };\n var fromIframe = outcomeFieldsFromPageIframes();\n\n // iframe (CMS lander) > Zephr event > partial merge\n if (hasCompleteOutcome(fromIframe)) return trimOutcome(fromIframe);\n if (hasCompleteOutcome(fromEvent)) return trimOutcome(fromEvent);\n\n return {\n outcomeType: pickField(fromIframe.outcomeType, fromEvent.outcomeType),\n outcomeId: pickField(fromIframe.outcomeId, fromEvent.outcomeId),\n outcomeDetail: pickField(fromIframe.outcomeDetail, fromEvent.outcomeDetail),\n };\n }\n\n function getMetaSnapshot() {\n var meta =\n typeof __CNBC_META_DATA !== 'undefined' && __CNBC_META_DATA\n ? __CNBC_META_DATA\n : null;\n return {\n id: meta && meta.id != null && meta.id !== '' ? meta.id : 'NA',\n brand: meta && meta.brand != null ? meta.brand : 'NA',\n };\n }\n\n function convertEventData(friendlyEventName, data) {\n var meta = getMetaSnapshot();\n return {\n 'cnbc.action': 'Zephr Template ' + friendlyEventName + ': ' + meta.id,\n 'cnbc.brand': meta.brand,\n 'cnbc.platform': 'web',\n 'cnbc.outcomeType': String(data.outcomeType || 'NA'),\n 'cnbc.outcomeID': String(data.outcomeId || 'NA'),\n 'cnbc.outcomeDetail': String(data.outcomeDetail || 'NA'),\n };\n }\n\n function trackAdobeEvent(friendlyEventName, normalized) {\n BI.waitForObjAvailable(\n ['s', 's.tl', 's.trackingServer', 's.trackingServerSecure'],\n 200,\n function () {\n var tracker = window.s;\n var actionContextData = convertEventData(friendlyEventName, normalized);\n\n tracker.contextData = actionContextData;\n tracker.linkTrackVars = Object.keys(actionContextData)\n .map(function (key) {\n return 'contextData.' + key;\n })\n .join(',');\n\n tracker.tl(true, 'o', 'Zephr Template Event');\n\n if (tracker.manageVars && typeof tracker.manageVars === 'function') {\n tracker.manageVars('clearVars');\n }\n }\n );\n }\n\n function track(friendlyEventName, data) {\n var hitSent = false;\n\n function sendOnce() {\n if (hitSent) return;\n hitSent = true;\n trackAdobeEvent(friendlyEventName, normalizeEventData(data));\n }\n\n // Appear-only: wait until lander iframe + complete outcomes (or timeout).\n if (friendlyEventName === 'Appear' && !isLanderReady()) {\n waitForLanderReady(function () {\n sendOnce();\n });\n return;\n }\n\n sendOnce();\n }\n\n var EVENT_HANDLERS = [\n ['phx_zephr_load', function () { return 'Appear'; }],\n ['phx_zephr_click', function (data) { return 'Click: ' + ((data && data.action) || 'NA'); }],\n ['phx_zephr_close', function () { return 'Close'; }],\n ['phx_zephr_email_submit', function () { return 'Email Submit'; }],\n ['phx_zephr_multinewsletter_submit', function () { return 'Multinewsletter Submit'; }],\n ['phx_zephr_expand', function () { return 'Expand'; }],\n ];\n\n EVENT_HANDLERS.forEach(function (entry) {\n $t('on', entry[0], function (e, data) {\n track(entry[1](data), data);\n });\n });\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RLb543af09360547548a6e5160ce39d69e",name:"30 - Streamsense SDK [d:cnbc.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:30}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["cnbc.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,
source:'/* eslint-disable */\n\n/* Copyright (c) 2016 comScore, Inc.\n * All rights reserved.\n * By using this software, you are agreeing to be bound by the\n * terms of these policies: http://www.comscore.com/About_comScore/Privacy_Policy\n */\n!function(a,b){false&&"function"==typeof define&&define.a?define([],function(){return a.ns_=b(a.ns_)}):"object"==typeof module&&module.exports?module.exports=b():a.ns_=b(a.ns_)}(this,function(a){a=a||{},a.ns_=a;var b={uid:function(){var a=1;return function(){return+new Date+"_"+a++}}(),filter:function(a,b){var c={};for(var d in b)b.hasOwnProperty(d)&&a(b[d])&&(c[d]=b[d]);return c},extend:function(a){var b,c=arguments.length;a=a||{};for(var d=1;c>d;d++)if(b=arguments[d])for(var e in b)b.hasOwnProperty(e)&&(a[e]=b[e]);return a},getString:function(a,b){var c=String(a);return null==a?b||"na":c},getLong:function(a,b){var c=Number(a);return null==a||isNaN(c)?b||0:c},getInteger:function(a,b){var c=Number(parseInt(a));return null==a||isNaN(c)?b||0:c},getBoolean:function(a,b){var c="true"==String(a).toLowerCase();return null==a?b||!1:c},parseBoolean:function(a,b){return b=b||!1,a?"0"==a?!1:void 0:b},isNotEmpty:function(a){return!this.isEmpty(a)},isEmpty:function(a){return void 0===a||null===a||""===a||a instanceof Array&&0===a.length},indexOf:function(a,b){var c=-1;return this.forEach(b,function(b,d){b==a&&(c=d)}),c},forEach:function(a,b,c){try{if("function"==typeof b)if(c="undefined"!=typeof c?c:null,"number"!=typeof a.length||"undefined"==typeof a[0]){var d="undefined"!=typeof a.__proto__;for(var e in a)a.hasOwnProperty(e)&&(!d||d&&"undefined"==typeof a.__proto__[e])&&"function"!=typeof a[e]&&b.call(c,a[e],e)}else for(var f=0,g=a.length;g>f;f++)b.call(c,a[f],f)}catch(h){}},regionMatches:function(a,b,c,d,e){if(0>b||0>d||b+e>a.length||d+e>c.length)return!1;for(;--e>=0;){var f=a.charAt(b++),g=c.charAt(d++);if(f!=g)return!1}return!0},size:function(a){var b=0;for(var c in a)a.hasOwnProperty(c)&&b++;return b},log:function(a,b){if("undefined"!=typeof b&&b&&"undefined"!=typeof console&&console){var c=new Date,d=c.getHours()+":"+c.getMinutes()+":"+c.getSeconds();console.log(d,a)}},isTrue:function(a){return"undefined"==typeof a?!1:"string"==typeof a?(a=a.toLowerCase(),"true"===a||"1"===a||"on"===a):!!a},toString:function(a){if("undefined"==typeof a)return"undefined";if("string"==typeof a)return a;if("[object Array]"===Object.prototype.toString.call(a))return a.join(",");if(this.size(a)>0){var b="";for(var c in a)a.hasOwnProperty(c)&&(b+=c+":"+a[c]+";");return b}return a.toString()},exists:function(a){return"undefined"!=typeof a&&null!=a},firstGreaterThan0:function(){for(var a=0,b=arguments.length;b>a;a++){var c=arguments[a];if(c>0)return c}return 0},cloneObject:function(a){if(null==a||"object"!=typeof a)return a;var b=function(){function a(){}function b(b){return"object"==typeof b?(a.prototype=b,new a):b}function c(a){for(var b in a)a.hasOwnProperty(b)&&(this[b]=a[b])}function d(){this.copiedObjects=[];var a=this;this.recursiveDeepCopy=function(b){return a.deepCopy(b)},this.depth=0}function e(a,b){var c=new d;return b&&(c.maxDepth=b),c.deepCopy(a)}function f(a){return"undefined"!=typeof window&&window&&window.Node?a instanceof Node:"undefined"!=typeof document&&a===document?!0:"number"==typeof a.nodeType&&a.attributes&&a.childNodes&&a.cloneNode}var g=[];return c.prototype={constructor:c,canCopy:function(){return!1},create:function(a){},populate:function(a,b,c){}},d.prototype={constructor:d,maxDepth:256,cacheResult:function(a,b){this.copiedObjects.push([a,b])},getCachedResult:function(a){for(var b=this.copiedObjects,c=b.length,d=0;c>d;d++)if(b[d][0]===a)return b[d][1]},deepCopy:function(a){if(null===a)return null;if("object"!=typeof a)return a;var b=this.getCachedResult(a);if(b)return b;for(var c=0;cthis.maxDepth)throw new Error("Maximum recursion depth exceeded.");return a.populate(this.recursiveDeepCopy,b,c),this.depth--,c}},e.DeepCopier=c,e.deepCopiers=g,e.register=function(a){a instanceof c||(a=new c(a)),g.unshift(a)},e.register({canCopy:function(){return!0},create:function(a){return a instanceof a.constructor?b(a.constructor.prototype):{}},populate:function(a,b,c){for(var d in b)b.hasOwnProperty(d)&&(c[d]=a(b[d]));return c}}),e.register({canCopy:function(a){return a instanceof Array},create:function(a){return new a.constructor},populate:function(a,b,c){for(var d=0;d=c))return b.cloneObject(a);if(f.start=c,f.end=d,0==a.length)return a.push(f),b.cloneObject(a);var g;for(g=0;g=a[g].start&&f.end<=a[g].end)return b.cloneObject(a);var h,i=!1;for(h=0;h=a[h].start||f.start>=a[h].start&&f.startd&&(d=b);O.setLongestPlaybackInterval(d);var e=0;for(a=0;af&&(f=b);O.setAssetLongestPlaybackInterval(f)}var d,e,f,g,i,j,k,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O=this,P=l.INTERVAL_MERGE_TOLERANCE;b.extend(this,{getHash:function(){return d},setHash:function(a){d=a},setPlaybackIntervalMergeTolerance:function(a){P=a},getPlaybackIntervalMergeTolerance:function(){return P},setLabels:function(a){null!=a&&b.extend(I,a)},getLabels:function(){return I},setLabel:function(a,b){var c={};c[a]=b,O.setLabels(c)},getLabel:function(a){return I[a]},getClipNumber:function(){return parseInt(O.getLabel("ns_st_cn"))},setClipNumber:function(a){O.setLabel("ns_st_cn",String(a))},getPartNumber:function(){return parseInt(O.getLabel("ns_st_pn"))},createLabels:function(a){var c=a||{};c.ns_st_dbt=String(O.getBufferingTime()-A),A=O.getBufferingTime(),c.ns_st_det=String(O.getElapsedTime()-o),o=O.getElapsedTime(),c.ns_st_dupc=String(O.getUniquePlaybackInterval()-t),t=O.getUniquePlaybackInterval(),parseInt(c.ns_st_dupc)<0&&(c.ns_st_dupc="0");var d;d=b.exists(c.ns_st_upc)?parseInt(c.ns_st_upc):O.getUniquePlaybackInterval(),c.ns_st_iupc=String(d-u),u=d,parseInt(c.ns_st_iupc)<0&&(c.ns_st_iupc="0"),c.ns_st_dupa=String(O.getAssetUniquePlaybackInterval()-v),v=O.getAssetUniquePlaybackInterval(),parseInt(c.ns_st_dupa)<0&&(c.ns_st_dupa="0");var e;e=b.exists(c.ns_st_upa)?parseInt(c.ns_st_upa):O.getAssetUniquePlaybackInterval(),c.ns_st_iupa=String(e-w),w=e,parseInt(c.ns_st_iupa)<0&&(c.ns_st_iupa="0"),c.ns_st_dlpc=String(O.getLongestPlaybackInterval()-x),x=O.getLongestPlaybackInterval(),parseInt(c.ns_st_dlpc)<0&&(c.ns_st_dlpc="0"),c.ns_st_dlpa=String(O.getAssetLongestPlaybackInterval()-y),y=O.getAssetLongestPlaybackInterval(),parseInt(c.ns_st_dlpa)<0&&(c.ns_st_dlpa="0");var g;return g=b.exists(c.ns_st_pt)?parseInt(c.ns_st_pt):O.getPlaybackTime(),c.ns_st_ipt=String(g-k),k=g,c.ns_st_dpt=String(O.getPlaybackTime()-j),j=O.getPlaybackTime(),c.ns_st_dpc=String(O.getPauses()-J),J=O.getPauses(),c.ns_st_dskc=String(O.getSeeks()-K),K=O.getSeeks(),c.ns_st_dbc=String(O.getBuffers()-L),L=O.getBuffers(),c.ns_st_dskt=String(O.getSeekingTime()-D),D=O.getSeekingTime(),c.ns_st_dska=String(O.getSeekingAmount()-G),G=O.getSeekingAmount(),b.extend(c,O.getLabels()),O.setSeekingDirection(0),f&&(c.ns_st_spc=String(M),c.ns_st_apc=String(N)),f||b.parseBoolean(c.ns_st_sc)||(c.ns_st_sc="1"),c},getVideoTrack:function(){return O.getLabel("ns_st_vt")},setVideoTrack:function(a){O.setLabel("ns_st_vt",String(a))},getAudioTrack:function(){return O.getLabel("ns_st_at")},setAudioTrack:function(a){O.setLabel("ns_st_at",String(a))},getSubtitleTrack:function(){return O.getLabel("ns_st_tt")},setSubtitleTrack:function(a){O.setLabel("ns_st_tt",String(a))},getCDN:function(){return O.getLabel("ns_st_cdn")},setCDN:function(a){O.setLabel("ns_st_cdn",String(a))},getClipPlaybackIntervals:function(){return q},setClipPlaybackIntervals:function(a){q=a},getAssetPlaybackIntervals:function(){return r},getUniquePlaybackInterval:function(){return parseInt(O.getLabel("ns_st_upc"))},getAssetUniquePlaybackInterval:function(){return parseInt(O.getLabel("ns_st_upa"))},setAssetUniquePlaybackInterval:function(a){O.setLabel("ns_st_upa",String(a))},setUniquePlaybackInterval:function(a){O.setLabel("ns_st_upc",String(a))},getLongestPlaybackInterval:function(){return parseInt(O.getLabel("ns_st_lpc"))},setLongestPlaybackInterval:function(a){O.setLabel("ns_st_lpc",String(a))},getAssetLongestPlaybackInterval:function(){return parseInt(O.getLabel("ns_st_lpa"))},setAssetLongestPlaybackInterval:function(a){O.setLabel("ns_st_lpa",String(a))},incrementPauses:function(){O.setLabel("ns_st_pc",String(O.getPauses()+1))},incrementSeeks:function(){O.setLabel("ns_st_skc",String(O.getSeeks()+1))},incrementPlayCounter:function(){O.setLabel("ns_st_sq",String(O.getPlayCounter()+1))},getPlayCounter:function(){return parseInt(O.getLabel("ns_st_sq"))},getBufferingTime:function(){return parseInt(O.getLabel("ns_st_bt"))},setBufferingTime:function(a){O.setLabel("ns_st_bt",String(a))},addBufferingTime:function(a){if(!isNaN(z)){var b=O.getBufferingTime();b+=a-z,O.setBufferingTime(b),z=NaN}},setPlaybackStartPosition:function(a){s=parseInt(a)},getPlaybackStartPosition:function(){return s},addInterval:function(a){isNaN(s)||isNaN(a)||(q=b.addNewPlaybackInterval(q,s,a,P),r=b.addNewPlaybackInterval(r,s,a,P),c(),s=NaN)},getElapsedTime:function(){return parseInt(O.getLabel("ns_st_et"))},setElapsedTime:function(a){O.setLabel("ns_st_et",String(a))},addElapsedTime:function(a){if(!isNaN(n)){var b=O.getElapsedTime();b+=a-n,O.setElapsedTime(b),n=NaN}},getElapsedTimestamp:function(){return n},setElapsedTimestamp:function(a){n=a},addPlaybackTime:function(a){if(!isNaN(g)){var b=O.getPlaybackTime();b+=a-g,O.setPlaybackTime(b),g=NaN}},getPlaybackTime:function(){return parseInt(O.getLabel("ns_st_pt"))},getExpectedPlaybackPosition:function(a){return isNaN(g)||(m+=a-g),m},setPlaybackTimeOffset:function(a){m=a},getPlaybackTimeOffset:function(){return m},setPlaybackTime:function(a){O.setLabel("ns_st_pt",String(a))},getPlaybackTimestamp:function(){return g},setPlaybackTimestamp:function(a){g=a},setPreviousPlaybackTime:function(a){j=a},setPreviousPlaybackTimestamp:function(a){i=a},getBufferingTimestamp:function(){return z},setBufferingTimestamp:function(a){z=a},getPauses:function(){return parseInt(O.getLabel("ns_st_pc"))},setPauses:function(a){O.setLabel("ns_st_pc",String(a))},getSeeks:function(){return parseInt(O.getLabel("ns_st_skc"))},setSeeks:function(a){O.setLabel("ns_st_skc",String(a))},setSeeking:function(a){B=a},isSeeking:function(){return B},setCollectingSeekingTime:function(a){F=a},isCollectingSeekingTime:function(){return F},setClipStarted:function(a){e=a},isClipStarted:function(){return e},setPlaybackStarted:function(a){f=a},isPlaybackStarted:function(){return f},setSeekingTimestamp:function(a){C=a},getSeekingTimestamp:function(){return C},addSeekingTime:function(a){if(!isNaN(C)){var b=O.getSeekingTime();b+=a-C,O.setSeekingTime(b),C=NaN}},getSeekingTime:function(){return parseInt(O.getLabel("ns_st_skt"))},setSeekingTime:function(a){O.setLabel("ns_st_skt",String(a))},setSeekingTimeBeforeEnd:function(a){H=a},getSeekingTimeBeforeEnd:function(){return H},setSeekStartPosition:function(a){E=a},getSeekStartPosition:function(){return E},setSeekingAmount:function(a){O.setLabel("ns_st_ska",String(a))},getSeekingAmount:function(){return parseInt(O.getLabel("ns_st_ska"))},addSeekingAmount:function(a){var b=O.getSeekingAmount();b+=Math.abs(a-E),O.setSeekingAmount(b);var c;E==a?c=0:E>a?c=-1:a>E&&(c=1),O.setSeekingDirection(c),E=0},getSeekingDirection:function(){return parseInt(O.getLabel("ns_st_skd"))},setSeekingDirection:function(a){O.setLabel("ns_st_skd",String(a))},resetClipLifecycleLabels:function(){I.ns_st_pt="0",j=0,k=0,I.ns_st_bt="0",A=0,I.ns_st_bc="0",L=0,I.ns_st_pc="0",J=0,I.ns_st_sq="0",I.ns_st_upa="0",v=0,w=0,I.ns_st_et="0",o=0,I.ns_st_lpa="0",y=0,I.ns_st_skt="0",D=0,I.ns_st_ska="0",G=0,I.ns_st_skc="0",K=0},incrementSegmentPlaybackCounter:function(){M++},incrementClipLoadCounter:function(){O.setLabel("ns_st_sc",String(O.getClipLoadCounter()+1))},incrementAssetPlaybackCounter:function(){N++},setPreviousUniquePlaybackInterval:function(a){t=a},setPreviousEventIndependentUniquePlaybackInterval:function(a){u=a},setPreviousLongestPlaybackInterval:function(a){x=a},resetAssetPlaybackCounters:function(){r=[],O.setAssetUniquePlaybackInterval(0),v=0,w=0,O.setAssetLongestPlaybackInterval(0),y=0},setSegmentPlaybackCounter:function(a){M=a},setClipLoadCounter:function(a){O.setLabel("ns_st_sc",String(a))},setAssetPlaybackCounter:function(a){N=a},setLowestPartNumberPlayed:function(a){p=a},getSegmentPlaybackCounter:function(){return M},getClipLoadCounter:function(){return parseInt(O.getLabel("ns_st_sc"))},getAssetPlaybackCounter:function(){return N},getLowestPartNumberPlayed:function(){return p},getBuffers:function(){return parseInt(O.getLabel("ns_st_bc"))},incrementBufferCount:function(){O.setLabel("ns_st_bc",String(O.getBuffers()+1))},getPreviousBufferingTime:function(){return A}}),a()}return a.resetClip=function(a,b,c){for(var d=a.getLabels(),e={},f=0;c&&fi&&(i=b)},setLabels:function(a){null!=a&&b.extend(f,a)},getLabels:function(){return f},setLabel:function(a,b){var c={};c[a]=b,l.setLabels(c)},getLabel:function(a){return f[a]},getClip:function(){return c},createLabels:function(a){var d=a||{};return j||(d.ns_st_pb=null!=d.ns_st_pb?d.ns_st_pb:"1"),b.extend(d,l.getLabels()),c.isPlaybackStarted()&&(d.ns_st_ppc=String(k)),d},incrementPlayCounter:function(){l.setLabel("ns_st_sp",String(parseInt(l.getLabel("ns_st_sp"))+1))},incrementPauses:function(){l.setLabel("ns_st_pp",String(l.getPauses()+1))},addPlaybackTime:function(a){if(!isNaN(e)){var b=l.getPlaybackTime();b+=a-e,l.setPlaybackTime(b),e=NaN}},addBufferingTime:function(a){if(!isNaN(d)){var b=l.getBufferingTime();b+=a-d,l.setBufferingTime(b),d=NaN}},getBufferingTime:function(){return parseInt(l.getLabel("ns_st_bp"))},setBufferingTime:function(a){l.setLabel("ns_st_bp",String(a))},getPlaybackTime:function(){return parseInt(l.getLabel("ns_st_pa"))},setBufferingTimestamp:function(a){d=a},getBufferingTimestamp:function(){return d},setPlaybackTime:function(a){l.setLabel("ns_st_pa",String(a))},setPlaybackTimestamp:function(a){e=a},getPlaybackTimestamp:function(){return e},getPauses:function(){return parseInt(l.getLabel("ns_st_pp"))},setPauses:function(a){l.setLabel("ns_st_pp",String(a))},isPlaylistStarted:function(){return g},setPlaylistStarted:function(a){g=a},getPlaybackCounter:function(){return k},incrementPlaybackCounter:function(){k++},setFirstEventSent:function(a){j=a}}),a()}return a.resetPlaylist=function(b,c,d){for(var e=b.getClip(),f=b.getLabels(),g={},h=0;d&&ho&&(o=m);c.ns_st_lpc=String(o),c.ns_st_dlpc=String(o-a.getPlaylist().getClip().getLongestPlaybackInterval());var p=0;for(l=0;lq&&(q=m);c.ns_st_lpa=String(q),c.ns_st_dlpa=String(q-a.getPlaylist().getClip().getAssetLongestPlaybackInterval()),c.ns_st_hc=String(a.getHeartbeat().getCount());var r=a.getSSECore().createLabels(i.HEARTBEAT,c,d);a.getEventManager().newEvent(r),g=0,k.resume()}function e(){null!=f&&(a.getSSECore().getPlatformAPI().clearTimeout(f),f=null)}var f,g,h,k=this,m=l.DEFAULT_HEARTBEAT_INTERVAL;b.extend(this,{getCount:function(){return h},setIntervals:function(a){m=a},getInterval:function(a){var b=0;if(null!=m)for(var c=0;ca){b=d.interval;break}}return b},resume:function(){e();var b=k.getInterval(a.getPlaylist().getClip().getPlaybackTime()+(+new Date-a.getPlaylist().getClip().getPlaybackTimestamp()));if(b>0){var c=g>0?g:b;f=a.getSSECore().getPlatformAPI().setTimeout(d,c)}g=0},pause:function(){e();var b=k.getInterval(a.getPlaylist().getClip().getPlaybackTime()+(+new Date-a.getPlaylist().getClip().getPlaybackTimestamp()));g=b-(a.getPlaylist().getClip().getPlaybackTime()+(+new Date-a.getPlaylist().getClip().getPlaybackTimestamp()))%b}}),c()}}(),q=function(){return function(a){function c(){}function d(){var c={},d=b.fixEventTime(c);c.ns_st_po=String(a.getPlaylist().getClip().getExpectedPlaybackPosition(d)),a.getPlaylist().addPlaybackTime(d),a.getPlaylist().setPlaybackTimestamp(d),a.getPlaylist().getClip().addPlaybackTime(d),a.getPlaylist().getClip().setPlaybackTimestamp(d),a.getStateMachine().getCurrentState()==j.BUFFERING_DURING_PLAYBACK&&(a.getPlaylist().addBufferingTime(d),a.getPlaylist().setBufferingTimestamp(d),a.getPlaylist().getClip().addBufferingTime(d),a.getPlaylist().getClip().setBufferingTimestamp(d)),a.getPlaylist().getClip().addElapsedTime(d),a.getPlaylist().getClip().setElapsedTimestamp(d),a.getPlaylist().getClip().addInterval(parseInt(c.ns_st_po)),a.getPlaylist().getClip().setPlaybackStartPosition(parseInt(c.ns_st_po));\nvar e=a.getSSECore().createLabels(i.KEEPALIVE,c,d);a.getEventManager().newEvent(e),g.resume()}function e(){null!=f&&(a.getSSECore().getPlatformAPI().clearTimeout(f),f=null)}var f,g=this,h=l.DEFAULT_KEEP_ALIVE_INTERVAL;b.extend(g,{resume:function(){e(),f=a.getSSECore().getPlatformAPI().setTimeout(d,h)},pause:function(){e()},setInterval:function(a){h=a},getInterval:function(){return h}}),c()}}(),r=function(){return function(a){function c(){f=j.IDLE,e=null,d=NaN}var d,e,f,g=this;b.extend(g,{eventTypeToState:function(a){if(f==j.IDLE){if(a==i.PLAY)return j.PLAYING;if(a==i.SEEK_START)return j.SEEKING_BEFORE_PLAYBACK;if(a==i.BUFFER)return j.BUFFERING_BEFORE_PLAYBACK}else if(f==j.PLAYBACK_NOT_STARTED){if(a==i.PLAY)return j.PLAYING;if(a==i.SEEK_START)return j.SEEKING_BEFORE_PLAYBACK;if(a==i.BUFFER)return j.BUFFERING_BEFORE_PLAYBACK;if(a==i.END||a==i.AD_SKIP)return j.IDLE}else if(f==j.PLAYING){if(a==i.END||a==i.AD_SKIP)return j.IDLE;if(a==i.BUFFER)return j.BUFFERING_DURING_PLAYBACK;if(a==i.PAUSE)return j.PAUSED;if(a==i.SEEK_START)return j.SEEKING_DURING_PLAYBACK}else if(f==j.PAUSED){if(a==i.END||a==i.AD_SKIP)return j.IDLE;if(a==i.BUFFER)return j.BUFFERING_DURING_PAUSE;if(a==i.PLAY)return j.PLAYING;if(a==i.SEEK_START)return j.SEEKING_DURING_PAUSE}else if(f==j.BUFFERING_BEFORE_PLAYBACK){if(a==i.END||a==i.AD_SKIP)return j.IDLE;if(a==i.PAUSE||a==i.BUFFER_STOP)return j.PLAYBACK_NOT_STARTED;if(a==i.PLAY)return j.PLAYING;if(a==i.SEEK_START)return j.SEEKING_BEFORE_PLAYBACK}else if(f==j.BUFFERING_DURING_PLAYBACK){if(a==i.END||a==i.AD_SKIP)return j.IDLE;if(a==i.PLAY||a==i.BUFFER_STOP)return j.PLAYING;if(a==i.PAUSE_ON_BUFFERING)return j.PAUSED_DURING_BUFFERING;if(a==i.SEEK_START)return j.SEEKING_DURING_BUFFERING;if(a==i.PAUSE)return j.PAUSED}else if(f==j.BUFFERING_DURING_SEEKING){if(a==i.END||a==i.AD_SKIP)return j.IDLE;if(a==i.PLAY)return j.PLAYING;if(a==i.BUFFER_STOP)return j.SEEKING_DURING_PLAYBACK;if(a==i.PAUSE)return j.PAUSED}else if(f==j.BUFFERING_DURING_PAUSE){if(a==i.END||a==i.AD_SKIP)return j.IDLE;if(a==i.PLAY)return j.PLAYING;if(a==i.SEEK_START)return j.SEEKING_DURING_PAUSE;if(a==i.BUFFER_STOP||a==i.PAUSE)return j.PAUSED}else if(f==j.SEEKING_BEFORE_PLAYBACK){if(a==i.END||a==i.AD_SKIP)return j.IDLE;if(a==i.PAUSE)return j.PLAYBACK_NOT_STARTED;if(a==i.PLAY)return j.PLAYING;if(a==i.BUFFER)return j.BUFFERING_BEFORE_PLAYBACK}else if(f==j.SEEKING_DURING_PLAYBACK){if(a==i.END||a==i.AD_SKIP)return j.IDLE;if(a==i.PLAY)return j.PLAYING;if(a==i.PAUSE)return j.PAUSED;if(a==i.BUFFER)return j.BUFFERING_DURING_SEEKING}else if(f==j.SEEKING_DURING_BUFFERING){if(a==i.END||a==i.AD_SKIP)return j.IDLE;if(a==i.PLAY)return j.PLAYING;if(a==i.PAUSE||a==i.BUFFER_STOP)return j.PAUSED}else if(f==j.SEEKING_DURING_PAUSE){if(a==i.END||a==i.AD_SKIP)return j.IDLE;if(a==i.PLAY)return j.PLAYING;if(a==i.PAUSE||a==i.BUFFER_STOP)return j.PAUSED;if(a==i.BUFFER)return j.BUFFERING_DURING_PAUSE}else if(f==j.PAUSED_DURING_BUFFERING){if(a==i.END||a==i.AD_SKIP)return j.IDLE;if(a==i.SEEK_START)return j.SEEKING_DURING_BUFFERING;if(a==i.PAUSE)return j.PAUSED;if(a==i.PLAY||a==i.BUFFER_STOP)return j.PLAYING}return null},getCurrentState:function(){return f},newEvent:function(a,b){var c=g.eventTypeToState(a);f!=c&&(e=f,f=c,d=b)},getPreviousState:function(){return e},getLastStateChangeTimestamp:function(){return d}}),c()}}(),s=function(){return function(a){var c=this;b.extend(c,{onSeekStartWhenPausedOrBufferingDuringPause:function(b,c){var d=parseInt(c.ns_st_po);a.getPlaylist().getClip().isSeeking()?a.getPlaylist().getClip().isCollectingSeekingTime()||(a.getPlaylist().getClip().setSeekingTimestamp(b),a.getPlaylist().getClip().setCollectingSeekingTime(!0)):a.getPlaylist().getClip().incrementSeeks(),a.getPlaylist().getClip().isSeeking()||(a.getPlaylist().getClip().setSeeking(!0),a.getPlaylist().getClip().setCollectingSeekingTime(!0),a.getPlaylist().getClip().setSeekStartPosition(d),a.getPlaylist().getClip().setSeekingTimestamp(b))},onBufferWhenSeekingOrPlayBackNotStartedOrPaused:function(b,c){a.getPlaylist().setBufferingTimestamp(b),a.getPlaylist().getClip().setBufferingTimestamp(b)},onPlayWhenSeekingDuringBufferingOrSeekingDuringPause:function(b,c){var d=parseInt(c.ns_st_po);a.getPlaylist().getClip().isSeeking()&&(a.getPlaylist().getClip().isCollectingSeekingTime()&&(a.getPlaylist().getClip().addSeekingTime(b),a.getPlaylist().getClip().setCollectingSeekingTime(!1)),a.getPlaylist().getClip().addSeekingAmount(d),a.getPlaylist().getClip().setSeeking(!1)),a.getPlaylist().getClip().incrementPlayCounter(),a.getPlaylist().setPlaybackTimestamp(b),a.getPlaylist().getClip().setPlaybackTimestamp(b),a.getPlaylist().getClip().addElapsedTime(b),a.getPlaylist().getClip().setElapsedTimestamp(b),a.getPlaylist().getClip().setPlaybackStartPosition(d),a.getHeartbeat().resume(),a.getKeepAlive().resume();var e=a.getSSECore().createLabels(i.PLAY,c,b);a.getEventManager().newEvent(e)},onBufferStopWhenBufferingDuringSeekingOrBufferingDuringPause:function(b,c){a.getPlaylist().addBufferingTime(b),a.getPlaylist().getClip().addBufferingTime(b)},onPauseWhenSeekingDuringPlaybackOrSeekingDuringPause:function(b,c){a.getPlaylist().getClip().isSeeking()&&a.getPlaylist().getClip().isCollectingSeekingTime()&&(a.getPlaylist().getClip().addSeekingTime(b),a.getPlaylist().getClip().setCollectingSeekingTime(!1))},onEndOrAdSkipWhenSeekingDuringBufferingOrSeekingDuringPause:function(c,d){a.getSSECore().resetHeartbeat(),a.getSSECore().resetKeepAlive(),a.getPlaylist().getClip().addElapsedTime(c);var e=a.getSSECore().createLabels(i.END,d,c);a.getEventManager().newEvent(e),a.getPlaylist().getClip().isSeeking()&&a.getPlaylist().getClip().isCollectingSeekingTime()&&(a.getPlaylist().getClip().setSeekingTimeBeforeEnd(c-a.getPlaylist().getClip().getSeekingTimestamp()),a.getPlaylist().getClip().setCollectingSeekingTime(!1)),a.getPlaylist().storeClipPlaybackCounters(),a.getPlaylist().getClip().resetClipLifecycleLabels(),a.getPlaylist().getClip().setPlaybackStarted(!1),d.hasOwnProperty("ns_st_pe")&&b.parseBoolean(d.ns_st_pe,!1)&&a.getSSECore().resetPlaylist()},onBufferStopWhenSeekingDuringBufferingOrSeekingDuringPause:function(b,c){a.getPlaylist().getClip().isSeeking()&&a.getPlaylist().getClip().isCollectingSeekingTime()&&(a.getPlaylist().getClip().addSeekingTime(b),a.getPlaylist().getClip().setCollectingSeekingTime(!1))}})}}(),t=function(){return function(a){var c=this;b.extend(c,{onEndOrAdSkip:function(c,d){a.getPlaylist().addBufferingTime(c),a.getPlaylist().getClip().addBufferingTime(c),a.getPlaylist().getClip().isSeeking()&&a.getPlaylist().getClip().isCollectingSeekingTime()&&a.getPlaylist().getClip().setSeekingTimeBeforeEnd(c-a.getPlaylist().getClip().getSeekingTimestamp()),a.getPlaylist().getClip().resetClipLifecycleLabels(),a.getPlaylist().getClip().setPlaybackStarted(!1),d.hasOwnProperty("ns_st_pe")&&b.parseBoolean(d.ns_st_pe,!1)&&a.getSSECore().resetPlaylist()},onBufferStop:function(b,c){a.getPlaylist().addBufferingTime(b),a.getPlaylist().getClip().addBufferingTime(b),a.getPlaylist().getClip().isSeeking()&&a.getPlaylist().getClip().isCollectingSeekingTime()&&(a.getPlaylist().getClip().addSeekingTime(b),a.getPlaylist().getClip().setCollectingSeekingTime(!1))},onSeekStart:function(b,c){var d=parseInt(c.ns_st_po);a.getPlaylist().addBufferingTime(b),a.getPlaylist().getClip().addBufferingTime(b),a.getPlaylist().getClip().isSeeking()?a.getPlaylist().getClip().isCollectingSeekingTime()||(a.getPlaylist().getClip().setSeekingTimestamp(b),a.getPlaylist().getClip().setCollectingSeekingTime(!0)):a.getPlaylist().getClip().incrementSeeks(),a.getPlaylist().getClip().isSeeking()||(a.getPlaylist().getClip().setSeeking(!0),a.getPlaylist().getClip().setCollectingSeekingTime(!0),a.getPlaylist().getClip().setSeekStartPosition(d),a.getPlaylist().getClip().setSeekingTimestamp(b))},onPause:function(b,c){a.getPlaylist().addBufferingTime(b),a.getPlaylist().getClip().addBufferingTime(b),a.getPlaylist().getClip().isSeeking()&&a.getPlaylist().getClip().isCollectingSeekingTime()&&(a.getPlaylist().getClip().addSeekingTime(b),a.getPlaylist().getClip().setCollectingSeekingTime(!1))},onPlay:function(b,c){var d=parseInt(c.ns_st_po);a.getPlaylist().addBufferingTime(b),a.getPlaylist().getClip().addBufferingTime(b),a.getPlaylist().getClip().isSeeking()&&(a.getPlaylist().getClip().isCollectingSeekingTime()&&(a.getPlaylist().getClip().addSeekingTime(b),a.getPlaylist().getClip().setCollectingSeekingTime(!1)),a.getPlaylist().getClip().addSeekingAmount(d),a.getPlaylist().getClip().setSeeking(!1)),a.getPlaylist().isPlaylistStarted()||(a.getPlaylist().setPlaylistStarted(!0),a.getPlaylist().incrementPlaybackCounter()),a.getPlaylist().getClip().setClipStarted(!0),a.getPlaylist().getClip().setPlaybackStarted(!0),a.getPlaylist().getClip().incrementSegmentPlaybackCounter(),(0==a.getPlaylist().getClip().getLowestPartNumberPlayed()||parseInt(a.getPlaylist().getClip().getLabels().ns_st_pn)<=a.getPlaylist().getClip().getLowestPartNumberPlayed())&&(a.getPlaylist().getClip().setLowestPartNumberPlayed(parseInt(a.getPlaylist().getClip().getLabels().ns_st_pn)),a.getPlaylist().getClip().incrementAssetPlaybackCounter(),a.getPlaylist().getClip().resetAssetPlaybackCounters()),a.getPlaylist().getClip().incrementPlayCounter(),a.getPlaylist().setPlaybackTimestamp(b),a.getPlaylist().getClip().setPlaybackTimestamp(b),a.getPlaylist().getClip().setElapsedTimestamp(b),a.getPlaylist().getClip().setPlaybackStartPosition(d),a.getSSECore().isLoadingTimeSent()||(c.ns_st_lt=String(a.getSSECore().getLoadTimeOffset()+b-a.getSSECore().getInitTimestamp()),a.getSSECore().setLoadingTimeSent(!0)),a.getHeartbeat().resume(),a.getKeepAlive().resume();var e=a.getSSECore().createLabels(i.PLAY,c,b);a.getEventManager().newEvent(e)}})}}(),u=function(){return function(a){var c=this;b.extend(c,{onEndAndSkip:function(c,d){a.getSSECore().resetHeartbeat(),a.getSSECore().resetKeepAlive(),a.getPlaylist().addBufferingTime(c),a.getPlaylist().getClip().addBufferingTime(c),a.getPlaylist().getClip().addElapsedTime(c);var e=a.getSSECore().createLabels(i.END,d,c);a.getEventManager().newEvent(e),a.getPlaylist().getClip().isSeeking()&&a.getPlaylist().getClip().isCollectingSeekingTime()&&(a.getPlaylist().getClip().setSeekingTimeBeforeEnd(c-a.getPlaylist().getClip().getSeekingTimestamp()),a.getPlaylist().getClip().setCollectingSeekingTime(!1)),a.getPlaylist().storeClipPlaybackCounters(),a.getPlaylist().getClip().resetClipLifecycleLabels(),a.getPlaylist().getClip().setPlaybackStarted(!1),d.hasOwnProperty("ns_st_pe")&&b.parseBoolean(d.ns_st_pe,!1)&&a.getSSECore().resetPlaylist()},onPause:function(b,c){a.getPlaylist().addBufferingTime(b),a.getPlaylist().getClip().addBufferingTime(b)},onPlay:function(b,c){var d=parseInt(c.ns_st_po);a.getPlaylist().addBufferingTime(b),a.getPlaylist().getClip().addBufferingTime(b),a.getPlaylist().getClip().isSeeking()&&(a.getPlaylist().getClip().isCollectingSeekingTime()&&(a.getPlaylist().getClip().addSeekingTime(b),a.getPlaylist().getClip().setCollectingSeekingTime(!1)),a.getPlaylist().getClip().addSeekingAmount(d),a.getPlaylist().getClip().setSeeking(!1)),a.getPlaylist().getClip().incrementPlayCounter(),a.getPlaylist().setPlaybackTimestamp(b),a.getPlaylist().getClip().setPlaybackTimestamp(b),a.getPlaylist().getClip().addElapsedTime(b),a.getPlaylist().getClip().setElapsedTimestamp(b),a.getPlaylist().getClip().setPlaybackStartPosition(d),a.getHeartbeat().resume(),a.getKeepAlive().resume();var e=a.getSSECore().createLabels(i.PLAY,c,b);a.getEventManager().newEvent(e)}})}}(),v=function(){return function(a){var c=this;b.extend(c,{onPauseOnBuffering:function(b,c){var d=parseInt(c.ns_st_po);a.getSSECore().stopPausedOnBufferingTimer(),a.getHeartbeat().pause(),a.getSSECore().resetKeepAlive(),a.getPlaylist().addPlaybackTime(b),a.getPlaylist().getClip().addPlaybackTime(b),a.getPlaylist().getClip().addElapsedTime(b),a.getPlaylist().getClip().setElapsedTimestamp(b),a.getPlaylist().getClip().addInterval(d),a.getPlaylist().addBufferingTime(b),a.getPlaylist().getClip().addBufferingTime(b),a.getPlaylist().incrementPauses(),a.getPlaylist().getClip().incrementPauses();var e=a.getSSECore().createLabels(i.PAUSE,c,b);a.getEventManager().newEvent(e),a.getPlaylist().setBufferingTimestamp(b),a.getPlaylist().getClip().setBufferingTimestamp(b),a.getPlaylist().getClip().setPlaybackTimeOffset(d)},onBufferStop:function(b,c){a.getPlaylist().addBufferingTime(b),a.getPlaylist().getClip().addBufferingTime(b)},onEndOrAdSkip:function(c,d){var e=parseInt(d.ns_st_po);a.getSSECore().resetHeartbeat(),a.getSSECore().resetKeepAlive(),a.getSSECore().stopPausedOnBufferingTimer(),a.getPlaylist().addBufferingTime(c),a.getPlaylist().getClip().addBufferingTime(c),a.getPlaylist().getClip().addPlaybackTime(c),a.getPlaylist().getClip().addElapsedTime(c),a.getPlaylist().getClip().addInterval(e);var f=a.getSSECore().createLabels(i.END,d,c);a.getEventManager().newEvent(f),a.getPlaylist().getClip().resetClipLifecycleLabels(),a.getPlaylist().getClip().setPlaybackStarted(!1),d.hasOwnProperty("ns_st_pe")&&b.parseBoolean(d.ns_st_pe,!1)&&a.getSSECore().resetPlaylist()},onSeekStart:function(b,c){var d=parseInt(c.ns_st_po);a.getSSECore().stopPausedOnBufferingTimer(),a.getPlaylist().addPlaybackTime(b),a.getPlaylist().getClip().addPlaybackTime(b),a.getPlaylist().getClip().addElapsedTime(b),a.getPlaylist().getClip().setElapsedTimestamp(b),a.getPlaylist().getClip().addInterval(d),a.getPlaylist().addBufferingTime(b),a.getPlaylist().getClip().addBufferingTime(b),a.getPlaylist().getClip().incrementSeeks(),a.getPlaylist().getClip().setSeeking(!0),a.getPlaylist().getClip().setCollectingSeekingTime(!0),a.getPlaylist().getClip().setSeekStartPosition(d),a.getPlaylist().getClip().setSeekingTimestamp(b),a.getPlaylist().incrementPauses(),a.getPlaylist().getClip().incrementPauses();var e=a.getSSECore().createLabels(i.PAUSE,c,b);a.getEventManager().newEvent(e)},onPause:function(b,c){var d=parseInt(c.ns_st_po);a.getSSECore().stopPausedOnBufferingTimer(),a.getPlaylist().addPlaybackTime(b),a.getPlaylist().getClip().addPlaybackTime(b),a.getPlaylist().getClip().addElapsedTime(b),a.getPlaylist().getClip().setElapsedTimestamp(b),a.getPlaylist().getClip().addInterval(d),a.getPlaylist().addBufferingTime(b),a.getPlaylist().getClip().addBufferingTime(b),a.getPlaylist().incrementPauses(),a.getPlaylist().getClip().incrementPauses();var e=a.getSSECore().createLabels(i.PAUSE,c,b);a.getEventManager().newEvent(e)},onPlay:function(b,c){a.getSSECore().stopPausedOnBufferingTimer(),a.getPlaylist().addBufferingTime(b),a.getPlaylist().getClip().addBufferingTime(b)}})}}(),w=function(){return function(a){var c=this;b.extend(c,{onEndOrAdSkip:function(c,d){a.getSSECore().resetHeartbeat(),a.getSSECore().resetKeepAlive(),a.getSSECore().stopPausedOnBufferingTimer(),a.getPlaylist().addBufferingTime(c),a.getPlaylist().getClip().addBufferingTime(c),a.getPlaylist().getClip().addElapsedTime(c);var e=a.getSSECore().createLabels(i.END,d,c);a.getEventManager().newEvent(e),a.getPlaylist().getClip().isSeeking()&&a.getPlaylist().getClip().isCollectingSeekingTime()&&(a.getPlaylist().getClip().setSeekingTimeBeforeEnd(c-a.getPlaylist().getClip().getSeekingTimestamp()),a.getPlaylist().getClip().setCollectingSeekingTime(!1)),a.getPlaylist().storeClipPlaybackCounters(),a.getPlaylist().getClip().resetClipLifecycleLabels(),a.getPlaylist().getClip().setPlaybackStarted(!1),d.hasOwnProperty("ns_st_pe")&&b.parseBoolean(d.ns_st_pe,!1)&&a.getSSECore().resetPlaylist()},onPause:function(b,c){a.getPlaylist().addBufferingTime(b),a.getPlaylist().getClip().addBufferingTime(b),a.getPlaylist().incrementPauses(),a.getPlaylist().getClip().incrementPauses(),a.getPlaylist().getClip().isSeeking()&&a.getPlaylist().getClip().isCollectingSeekingTime()&&(a.getPlaylist().getClip().addSeekingTime(b),a.getPlaylist().getClip().setCollectingSeekingTime(!1))},onPlay:function(b,c){var d=parseInt(c.ns_st_po);a.getPlaylist().addBufferingTime(b),a.getPlaylist().getClip().addBufferingTime(b),a.getPlaylist().getClip().isSeeking()&&(a.getPlaylist().getClip().isCollectingSeekingTime()&&(a.getPlaylist().getClip().addSeekingTime(b),a.getPlaylist().getClip().setCollectingSeekingTime(!1)),a.getPlaylist().getClip().addSeekingAmount(d),a.getPlaylist().getClip().setSeeking(!1)),a.getPlaylist().getClip().incrementPlayCounter(),a.getPlaylist().setPlaybackTimestamp(b),a.getPlaylist().getClip().setPlaybackTimestamp(b),a.getPlaylist().getClip().addElapsedTime(b),a.getPlaylist().getClip().setElapsedTimestamp(b),a.getPlaylist().getClip().setPlaybackStartPosition(d),a.getHeartbeat().resume(),a.getKeepAlive().resume();var e=a.getSSECore().createLabels(i.PLAY,c,b);a.getEventManager().newEvent(e)}})}}(),x=function(){return function(a){var c=this;b.extend(c,{onBuffer:function(b,c){a.getPlaylist().getClip().setSeekingTime(a.getPlaylist().getClip().getSeekingTimeBeforeEnd()),a.getPlaylist().setBufferingTimestamp(b),a.getPlaylist().getClip().setBufferingTimestamp(b)},onSeekStart:function(b,c){var d=parseInt(c.ns_st_po);a.getPlaylist().getClip().setSeekingTime(a.getPlaylist().getClip().getSeekingTimeBeforeEnd()),a.getPlaylist().getClip().incrementSeeks(),a.getPlaylist().getClip().setSeeking(!0),a.getPlaylist().getClip().setCollectingSeekingTime(!0),a.getPlaylist().getClip().setSeekStartPosition(d),a.getPlaylist().getClip().setSeekingTimestamp(b)},onPlay:function(b,c){var d=parseInt(c.ns_st_po);a.getPlaylist().getClip().setSeekingTime(a.getPlaylist().getClip().getSeekingTimeBeforeEnd()),a.getPlaylist().getClip().isSeeking()&&(a.getPlaylist().getClip().addSeekingAmount(d),a.getPlaylist().getClip().setSeeking(!1)),a.getPlaylist().isPlaylistStarted()||(a.getPlaylist().setPlaylistStarted(!0),a.getPlaylist().incrementPlaybackCounter()),a.getPlaylist().getClip().setClipStarted(!0),a.getPlaylist().getClip().setPlaybackStarted(!0),a.getPlaylist().getClip().incrementSegmentPlaybackCounter(),(0==a.getPlaylist().getClip().getLowestPartNumberPlayed()||parseInt(a.getPlaylist().getClip().getLabel("ns_st_pn"))<=a.getPlaylist().getClip().getLowestPartNumberPlayed())&&(a.getPlaylist().getClip().setLowestPartNumberPlayed(parseInt(a.getPlaylist().getClip().getLabel("ns_st_pn"))),a.getPlaylist().getClip().incrementAssetPlaybackCounter(),a.getPlaylist().getClip().resetAssetPlaybackCounters()),a.getPlaylist().getClip().incrementPlayCounter(),a.getPlaylist().setPlaybackTimestamp(b),a.getPlaylist().getClip().setPlaybackTimestamp(b),a.getPlaylist().getClip().setElapsedTimestamp(b),a.getPlaylist().getClip().setPlaybackStartPosition(d),a.getSSECore().isLoadingTimeSent()||(c.ns_st_lt=String(a.getSSECore().getLoadTimeOffset()+b-a.getSSECore().getInitTimestamp()),a.getSSECore().setLoadingTimeSent(!0)),a.getHeartbeat().resume(),a.getKeepAlive().resume();var e=a.getSSECore().createLabels(i.PLAY,c,b);a.getEventManager().newEvent(e)}})}}(),y=function(){return function(a){var c=this;b.extend(c,{onEndOrAdSkip:function(c,d){a.getSSECore().resetHeartbeat(),a.getSSECore().resetKeepAlive(),a.getPlaylist().getClip().addElapsedTime(c);var e=a.getSSECore().createLabels(i.END,d,c);a.getEventManager().newEvent(e),a.getPlaylist().getClip().isSeeking()&&a.getPlaylist().getClip().isCollectingSeekingTime()&&(a.getPlaylist().getClip().setSeekingTimeBeforeEnd(c-a.getPlaylist().getClip().getSeekingTimestamp()),a.getPlaylist().getClip().setSeeking(!1)),a.getPlaylist().storeClipPlaybackCounters(),a.getPlaylist().getClip().resetClipLifecycleLabels(),a.getPlaylist().getClip().setPlaybackStarted(!1),d.hasOwnProperty("ns_st_pe")&&b.parseBoolean(d.ns_st_pe,!1)&&a.getSSECore().resetPlaylist()},onPlay:function(b,c){var d=parseInt(c.ns_st_po);a.getPlaylist().getClip().isSeeking()&&(a.getPlaylist().getClip().isCollectingSeekingTime()&&(a.getPlaylist().getClip().addSeekingTime(b),a.getPlaylist().getClip().setCollectingSeekingTime(!1)),a.getPlaylist().getClip().addSeekingAmount(d),a.getPlaylist().getClip().setSeeking(!1)),a.getPlaylist().getClip().incrementPlayCounter(),a.getPlaylist().setPlaybackTimestamp(b),a.getPlaylist().getClip().setPlaybackTimestamp(b),a.getPlaylist().getClip().addElapsedTime(b),a.getPlaylist().getClip().setElapsedTimestamp(b),a.getPlaylist().getClip().setPlaybackStartPosition(d),a.getHeartbeat().resume(),a.getKeepAlive().resume();var e=a.getSSECore().createLabels(i.PLAY,c,b);a.getEventManager().newEvent(e)}})}}(),z=function(){return function(a){var c=this;b.extend(c,{onEndOrAdSkip:function(c,d){a.getSSECore().resetHeartbeat(),a.getSSECore().resetKeepAlive(),a.getPlaylist().addBufferingTime(c),a.getPlaylist().getClip().addBufferingTime(c),a.getPlaylist().getClip().addElapsedTime(c);var e=a.getSSECore().createLabels(i.END,d,c);a.getEventManager().newEvent(e),a.getPlaylist().getClip().isSeeking()&&a.getPlaylist().getClip().isCollectingSeekingTime()&&(a.getPlaylist().getClip().setSeekingTimeBeforeEnd(c-a.getPlaylist().getClip().getSeekingTimestamp()),a.getPlaylist().getClip().setCollectingSeekingTime(!1)),a.getPlaylist().storeClipPlaybackCounters(),a.getPlaylist().getClip().resetClipLifecycleLabels(),a.getPlaylist().getClip().setPlaybackStarted(!1),d.hasOwnProperty("ns_st_pe")&&b.parseBoolean(d.ns_st_pe,!1)&&a.getSSECore().resetPlaylist()},onBufferStop:function(b,c){var d=parseInt(c.ns_st_po);a.getPlaylist().addBufferingTime(b),a.getPlaylist().getClip().addBufferingTime(b),a.getPlaylist().setPlaybackTimestamp(b),a.getPlaylist().getClip().setPlaybackTimestamp(b),a.getPlaylist().getClip().addElapsedTime(b),a.getPlaylist().getClip().setElapsedTimestamp(b),a.getPlaylist().getClip().setPlaybackStartPosition(d),a.getHeartbeat().resume(),a.getKeepAlive().resume();var e=a.getSSECore().createLabels(i.PLAY,c,b);a.getEventManager().newEvent(e)},onSeekStart:function(b,c){var d=parseInt(c.ns_st_po);a.getPlaylist().addBufferingTime(b),a.getPlaylist().getClip().addBufferingTime(b),a.getPlaylist().getClip().isSeeking()?a.getPlaylist().getClip().isCollectingSeekingTime()||(a.getPlaylist().getClip().setSeekingTimestamp(b),a.getPlaylist().getClip().setCollectingSeekingTime(!0)):a.getPlaylist().getClip().incrementSeeks(),a.getPlaylist().getClip().isSeeking()||(a.getPlaylist().getClip().setSeeking(!0),a.getPlaylist().getClip().setCollectingSeekingTime(!0),a.getPlaylist().getClip().setSeekStartPosition(d),a.getPlaylist().getClip().setSeekingTimestamp(b))},onPause:function(b,c){a.getPlaylist().addBufferingTime(b),a.getPlaylist().getClip().addBufferingTime(b),a.getPlaylist().incrementPauses(),a.getPlaylist().getClip().incrementPauses()},onPlay:function(b,c){var d=parseInt(c.ns_st_po);a.getPlaylist().addBufferingTime(b),a.getPlaylist().getClip().addBufferingTime(b),a.getPlaylist().getClip().incrementPlayCounter(),a.getPlaylist().setPlaybackTimestamp(b),a.getPlaylist().getClip().setPlaybackTimestamp(b),a.getPlaylist().getClip().addElapsedTime(b),a.getPlaylist().getClip().setElapsedTimestamp(b),a.getPlaylist().getClip().setPlaybackStartPosition(d),a.getHeartbeat().resume(),a.getKeepAlive().resume();var e=a.getSSECore().createLabels(i.PLAY,c,b);a.getEventManager().newEvent(e)}})}}(),A=function(){return function(a){var c=this;b.extend(c,{onEndOrAdSkip:function(c,d){a.getPlaylist().getClip().isSeeking()&&a.getPlaylist().getClip().isCollectingSeekingTime()&&(a.getPlaylist().getClip().setSeekingTimeBeforeEnd(c-a.getPlaylist().getClip().getSeekingTimestamp()),a.getPlaylist().getClip().setCollectingSeekingTime(!1)),a.getPlaylist().storeClipPlaybackCounters(),a.getPlaylist().getClip().resetClipLifecycleLabels(),a.getPlaylist().getClip().setPlaybackStarted(!1),d.hasOwnProperty("ns_st_pe")&&b.parseBoolean(d.ns_st_pe,!1)&&a.getSSECore().resetPlaylist()},onSeekStart:function(b,c){var d=parseInt(c.ns_st_po);a.getPlaylist().getClip().isSeeking()?a.getPlaylist().getClip().setSeekingTimestamp(b):a.getPlaylist().getClip().incrementSeeks(),a.getPlaylist().getClip().isSeeking()||(a.getPlaylist().getClip().setSeeking(!0),a.getPlaylist().getClip().setCollectingSeekingTime(!0),a.getPlaylist().getClip().setSeekStartPosition(d),a.getPlaylist().getClip().setSeekingTimestamp(b))},onPlay:function(b,c){var d=parseInt(c.ns_st_po);a.getPlaylist().getClip().isSeeking()&&(a.getPlaylist().getClip().addSeekingAmount(d),a.getPlaylist().getClip().setSeeking(!1)),a.getPlaylist().isPlaylistStarted()||(a.getPlaylist().setPlaylistStarted(!0),a.getPlaylist().incrementPlaybackCounter()),a.getPlaylist().getClip().setClipStarted(!0),a.getPlaylist().getClip().setPlaybackStarted(!0),a.getPlaylist().getClip().incrementSegmentPlaybackCounter(),(0==a.getPlaylist().getClip().getLowestPartNumberPlayed()||parseInt(a.getPlaylist().getClip().getLabels().ns_st_pn)<=a.getPlaylist().getClip().getLowestPartNumberPlayed())&&(a.getPlaylist().getClip().setLowestPartNumberPlayed(parseInt(a.getPlaylist().getClip().getLabels().ns_st_pn)),a.getPlaylist().getClip().incrementAssetPlaybackCounter(),a.getPlaylist().getClip().resetAssetPlaybackCounters()),a.getPlaylist().getClip().incrementPlayCounter(),a.getPlaylist().setPlaybackTimestamp(b),a.getPlaylist().getClip().setPlaybackTimestamp(b),a.getPlaylist().getClip().setElapsedTimestamp(b),a.getPlaylist().getClip().setPlaybackStartPosition(d),a.getSSECore().isLoadingTimeSent()||(c.ns_st_lt=String(a.getSSECore().getLoadTimeOffset()+b-a.getSSECore().getInitTimestamp()),a.getSSECore().setLoadingTimeSent(!0)),a.getHeartbeat().resume(),a.getKeepAlive().resume();var e=a.getSSECore().createLabels(i.PLAY,c,b);a.getEventManager().newEvent(e)}})}}(),B=function(){return function(a){var c=this;b.extend(c,{onEndOrAdSkip:function(c,d){var e=parseInt(d.ns_st_po);a.getSSECore().resetHeartbeat(),a.getSSECore().resetKeepAlive(),a.getPlaylist().addPlaybackTime(c),a.getPlaylist().getClip().addPlaybackTime(c),a.getPlaylist().getClip().addElapsedTime(c),a.getPlaylist().getClip().addInterval(e);var f=a.getSSECore().createLabels(i.END,d,c);a.getEventManager().newEvent(f),a.getPlaylist().getClip().resetClipLifecycleLabels(),a.getPlaylist().getClip().setPlaybackStarted(!1),d.hasOwnProperty("ns_st_pe")&&b.parseBoolean(d.ns_st_pe,!1)&&a.getSSECore().resetPlaylist()},onBuffer:function(b,c){a.getSSECore().isPauseOnBufferingEnabled()&&a.getSSECore().startPausedOnBufferingTimer(b,c),a.getPlaylist().getClip().incrementBufferCount(),a.getPlaylist().setBufferingTimestamp(b),a.getPlaylist().getClip().setBufferingTimestamp(b)},onSeekStart:function(b,c){var d=parseInt(c.ns_st_po);a.getHeartbeat().pause(),a.getSSECore().resetKeepAlive(),a.getPlaylist().addPlaybackTime(b),a.getPlaylist().getClip().addPlaybackTime(b),a.getPlaylist().getClip().addElapsedTime(b),a.getPlaylist().getClip().setElapsedTimestamp(b),a.getPlaylist().getClip().addInterval(d),a.getPlaylist().getClip().incrementSeeks(),a.getPlaylist().getClip().setSeeking(!0),a.getPlaylist().getClip().setCollectingSeekingTime(!0),a.getPlaylist().getClip().setSeekStartPosition(d),a.getPlaylist().getClip().setSeekingTimestamp(b),a.getPlaylist().incrementPauses(),a.getPlaylist().getClip().incrementPauses();var e=a.getSSECore().createLabels(i.PAUSE,c,b);a.getEventManager().newEvent(e)},onPause:function(b,c){var d=parseInt(c.ns_st_po);a.getHeartbeat().pause(),a.getSSECore().resetKeepAlive(),a.getPlaylist().addPlaybackTime(b),a.getPlaylist().getClip().addPlaybackTime(b),a.getPlaylist().getClip().addElapsedTime(b),a.getPlaylist().getClip().setElapsedTimestamp(b),a.getPlaylist().getClip().addInterval(d),a.getPlaylist().incrementPauses(),a.getPlaylist().getClip().incrementPauses();var e=a.getSSECore().createLabels(i.PAUSE,c,b);a.getEventManager().newEvent(e)}})}}(),C=function(){return function(a){var c=this;b.extend(c,{onEndOrAdSkip:function(c,d){a.getPlaylist().getClip().isSeeking()&&a.getPlaylist().getClip().isCollectingSeekingTime()&&(a.getPlaylist().getClip().setSeekingTimeBeforeEnd(c-a.getPlaylist().getClip().getSeekingTimestamp()),a.getPlaylist().getClip().setCollectingSeekingTime(!1)),a.getPlaylist().storeClipPlaybackCounters(),a.getPlaylist().getClip().resetClipLifecycleLabels(),a.getPlaylist().getClip().setPlaybackStarted(!1),d.hasOwnProperty("ns_st_pe")&&b.parseBoolean(d.ns_st_pe,!1)&&a.getSSECore().resetPlaylist()},onPause:function(b,c){a.getPlaylist().getClip().isSeeking()&&a.getPlaylist().getClip().isCollectingSeekingTime()&&(a.getPlaylist().getClip().addSeekingTime(b),a.getPlaylist().getClip().setCollectingSeekingTime(!1))},onPlay:function(b,c){var d=parseInt(c.ns_st_po);a.getPlaylist().getClip().isSeeking()&&(a.getPlaylist().getClip().isCollectingSeekingTime()&&(a.getPlaylist().getClip().addSeekingTime(b),a.getPlaylist().getClip().setCollectingSeekingTime(!1)),a.getPlaylist().getClip().addSeekingAmount(d),a.getPlaylist().getClip().setSeeking(!1)),a.getPlaylist().isPlaylistStarted()||(a.getPlaylist().setPlaylistStarted(!0),a.getPlaylist().incrementPlaybackCounter()),a.getPlaylist().getClip().setClipStarted(!0),a.getPlaylist().getClip().setPlaybackStarted(!0),a.getPlaylist().getClip().incrementSegmentPlaybackCounter(),(0==a.getPlaylist().getClip().getLowestPartNumberPlayed()||parseInt(a.getPlaylist().getClip().getLabels().ns_st_pn)<=a.getPlaylist().getClip().getLowestPartNumberPlayed())&&(a.getPlaylist().getClip().setLowestPartNumberPlayed(parseInt(a.getPlaylist().getClip().getLabels().ns_st_pn)),a.getPlaylist().getClip().incrementAssetPlaybackCounter(),a.getPlaylist().getClip().resetAssetPlaybackCounters()),a.getPlaylist().getClip().incrementPlayCounter(),a.getPlaylist().setPlaybackTimestamp(b),a.getPlaylist().getClip().setPlaybackTimestamp(b),a.getPlaylist().getClip().setElapsedTimestamp(b),a.getPlaylist().getClip().setPlaybackStartPosition(d),a.getSSECore().isLoadingTimeSent()||(c.ns_st_lt=String(a.getSSECore().getLoadTimeOffset()+b-a.getSSECore().getInitTimestamp()),a.getSSECore().setLoadingTimeSent(!0)),a.getHeartbeat().resume(),a.getKeepAlive().resume();var e=a.getSSECore().createLabels(i.PLAY,c,b);a.getEventManager().newEvent(e)}})}}(),D=function(){return function(a){var c=this;b.extend(c,{onPause:function(b,c){a.getPlaylist().incrementPauses(),a.getPlaylist().getClip().incrementPauses(),a.getPlaylist().getClip().isSeeking()&&a.getPlaylist().getClip().isCollectingSeekingTime()&&(a.getPlaylist().getClip().addSeekingTime(b),a.getPlaylist().getClip().setCollectingSeekingTime(!1))}})}}(),E=function(){return function(a){var c=this;b.extend(c,{onEndOrAdSkip:function(c,d){parseInt(d.ns_st_po);a.getSSECore().resetHeartbeat(),a.getSSECore().resetKeepAlive(),a.getPlaylist().getClip().addElapsedTime(c);var e=a.getSSECore().createLabels(i.END,d,c);a.getEventManager().newEvent(e),a.getPlaylist().getClip().isSeeking()&&a.getPlaylist().getClip().isCollectingSeekingTime()&&(a.getPlaylist().getClip().setSeekingTimeBeforeEnd(c-a.getPlaylist().getClip().getSeekingTimestamp()),a.getPlaylist().getClip().setCollectingSeekingTime(!1)),a.getPlaylist().storeClipPlaybackCounters(),a.getPlaylist().getClip().resetClipLifecycleLabels(),a.getPlaylist().getClip().setPlaybackStarted(!1),d.hasOwnProperty("ns_st_pe")&&b.parseBoolean(d.ns_st_pe,!1)&&a.getSSECore().resetPlaylist()},onPlay:function(b,c){var d=parseInt(c.ns_st_po);a.getPlaylist().getClip().isSeeking()&&(a.getPlaylist().getClip().isCollectingSeekingTime()&&(a.getPlaylist().getClip().addSeekingTime(b),a.getPlaylist().getClip().setCollectingSeekingTime(!1)),a.getPlaylist().getClip().addSeekingAmount(d),a.getPlaylist().getClip().setSeeking(!1)),a.getPlaylist().getClip().incrementPlayCounter(),a.getPlaylist().setPlaybackTimestamp(b),a.getPlaylist().getClip().setPlaybackTimestamp(b),a.getPlaylist().getClip().addElapsedTime(b),a.getPlaylist().getClip().setElapsedTimestamp(b),a.getPlaylist().getClip().setPlaybackStartPosition(d),a.getSSECore().isLoadingTimeSent()||(c.ns_st_lt=String(a.getSSECore().getLoadTimeOffset()+b-a.getSSECore().getInitTimestamp()),a.getSSECore().setLoadingTimeSent(!0)),a.getHeartbeat().resume(),a.getKeepAlive().resume();var e=a.getSSECore().createLabels(i.PLAY,c,b);a.getEventManager().newEvent(e)}})}}(),F=function(){return function(){function a(){f=new G(aa),b.getNamespace().comScore?(ba=b.getNamespace().comScore.exports,f.setAppCore(ba.c())):f.setAppCore(null),f.setKeepAlive(new q(f)),\nf.setHeartbeat(new p(f)),f.setEventManager(new o(f)),f.setStateMachine(new r),f.setPlaylist(new n),$={},m=new x(f),F=new y(f),H=new A(f),I=new B(f),J=new t(f),K=new v(f),L=new w(f),M=new u(f),N=new z(f),O=new C(f),P=new D(f),Q=new E(f),R=new s(f),S=!1,T=0,U=+new Date,V=!0,X=!1,Z=[]}function c(a){var b=f.getStateMachine().getCurrentState();if(b==j.IDLE||b==j.PLAYBACK_NOT_STARTED||b==j.BUFFERING_BEFORE_PLAYBACK||b==j.SEEKING_BEFORE_PLAYBACK){if(a==i.PLAY)return!0}else if(b==j.PLAYING){if(a==i.END||a==i.AD_SKIP||a==i.SEEK_START||a==i.PAUSE)return!0}else if(b==j.PAUSED||b==j.BUFFERING_DURING_PAUSE||b==j.SEEKING_DURING_PLAYBACK||b==j.SEEKING_DURING_BUFFERING||b==j.SEEKING_DURING_PAUSE){if(a==i.END||a==i.AD_SKIP||a==i.PLAY)return!0}else if(b==j.BUFFERING_DURING_PLAYBACK){if(a==i.PAUSE_ON_BUFFERING||a==i.END||a==i.AD_SKIP||a==i.SEEK_START||a==i.PAUSE||a==i.PLAY)return!0}else if(b==j.BUFFERING_DURING_SEEKING){if(a==i.END||a==i.AD_SKIP||a==i.PAUSE||a==i.PLAY)return!0}else if(b==j.PAUSED_DURING_BUFFERING&&(a==i.END||a==i.AD_SKIP||a==i.BUFFER_STOP||a==i.PLAY))return!0;return!1}function d(a,b,d){var e=f.getStateMachine().getCurrentState();a==i.AD_SKIP&&!d.hasOwnProperty("ns_st_ui")&&c(a)?d.ns_st_ui="skip":a==i.SEEK_START&&!d.hasOwnProperty("ns_st_ui")&&c(a)&&(d.ns_st_ui="seek"),e==j.IDLE?a==i.BUFFER?m.onBuffer(b,d):a==i.SEEK_START?m.onSeekStart(b,d):a==i.PLAY&&m.onPlay(b,d):e==j.PLAYBACK_NOT_STARTED?a==i.END||a==i.AD_SKIP?H.onEndOrAdSkip(b,d):a==i.SEEK_START?H.onSeekStart(b,d):a==i.PLAY?H.onPlay(b,d):a==i.BUFFER&&R.onBufferWhenSeekingOrPlayBackNotStartedOrPaused(b,d):e==j.PLAYING?a==i.END||a==i.AD_SKIP?I.onEndOrAdSkip(b,d):a==i.BUFFER?I.onBuffer(b,d):a==i.SEEK_START?I.onSeekStart(b,d):a==i.PAUSE&&I.onPause(b,d):e==j.PAUSED?a==i.END||a==i.AD_SKIP?F.onEndOrAdSkip(b,d):a==i.PLAY?F.onPlay(b,d):a==i.BUFFER?R.onBufferWhenSeekingOrPlayBackNotStartedOrPaused(b,d):a==i.SEEK_START&&R.onSeekStartWhenPausedOrBufferingDuringPause(b,d):e==j.BUFFERING_BEFORE_PLAYBACK?a==i.END||a==i.AD_SKIP?J.onEndOrAdSkip(b,d):a==i.BUFFER_STOP?J.onBufferStop(b,d):a==i.SEEK_START?J.onSeekStart(b,d):a==i.PAUSE?J.onPause(b,d):a==i.PLAY&&J.onPlay(b,d):e==j.BUFFERING_DURING_PLAYBACK?a==i.PAUSE_ON_BUFFERING?K.onPauseOnBuffering(b,d):a==i.BUFFER_STOP?K.onBufferStop(b,d):a==i.END||a==i.AD_SKIP?K.onEndOrAdSkip(b,d):a==i.SEEK_START?K.onSeekStart(b,d):a==i.PAUSE?K.onPause(b,d):a==i.PLAY&&K.onPlay(b,d):e==j.BUFFERING_DURING_SEEKING?a==i.END||a==i.AD_SKIP?L.onEndOrAdSkip(b,d):a==i.PAUSE?L.onPause(b,d):a==i.PLAY?L.onPlay(b,d):a==i.BUFFER_STOP&&R.onBufferStopWhenBufferingDuringSeekingOrBufferingDuringPause(b,d):e==j.BUFFERING_DURING_PAUSE?a==i.END||a==i.AD_SKIP?M.onEndAndSkip(b,d):a==i.PAUSE?M.onPause(b,d):a==i.PLAY?M.onPlay(b,d):a==i.SEEK_START?R.onSeekStartWhenPausedOrBufferingDuringPause(b,d):a==i.BUFFER_STOP&&R.onBufferStopWhenBufferingDuringSeekingOrBufferingDuringPause(b,d):e==j.SEEKING_BEFORE_PLAYBACK?a==i.END||a==i.AD_SKIP?O.onEndOrAdSkip(b,d):a==i.PAUSE?O.onPause(b,d):a==i.PLAY?O.onPlay(b,d):a==i.BUFFER&&R.onBufferWhenSeekingOrPlayBackNotStartedOrPaused(b,d):e==j.SEEKING_DURING_PLAYBACK?a==i.END||a==i.AD_SKIP?Q.onEndOrAdSkip(b,d):a==i.PLAY?Q.onPlay(b,d):a==i.BUFFER?R.onBufferWhenSeekingOrPlayBackNotStartedOrPaused(b,d):a==i.PAUSE&&R.onPauseWhenSeekingDuringPlaybackOrSeekingDuringPause(b,d):e==j.SEEKING_DURING_BUFFERING?a==i.PAUSE?P.onPause(b,d):a==i.BUFFER?R.onBufferWhenSeekingOrPlayBackNotStartedOrPaused(b,d):a==i.PLAY?R.onPlayWhenSeekingDuringBufferingOrSeekingDuringPause(b,d):a==i.END||a==i.AD_SKIP?R.onEndOrAdSkipWhenSeekingDuringBufferingOrSeekingDuringPause(b,d):a==i.BUFFER_STOP&&R.onBufferStopWhenSeekingDuringBufferingOrSeekingDuringPause(b,d):e==j.PAUSED_DURING_BUFFERING?a==i.END||a==i.AD_SKIP?N.onEndOrAdSkip(b,d):a==i.BUFFER_STOP?N.onBufferStop(b,d):a==i.SEEK_START?N.onSeekStart(b,d):a==i.PAUSE?N.onPause(b,d):a==i.PLAY&&N.onPlay(b,d):e==j.SEEKING_DURING_PAUSE&&(a==i.BUFFER?R.onBufferWhenSeekingOrPlayBackNotStartedOrPaused(b,d):a==i.PLAY?R.onPlayWhenSeekingDuringBufferingOrSeekingDuringPause(b,d):a==i.PAUSE?R.onPauseWhenSeekingDuringPlaybackOrSeekingDuringPause(b,d):a==i.END||a==i.AD_SKIP?R.onEndOrAdSkipWhenSeekingDuringBufferingOrSeekingDuringPause(b,d):a==i.BUFFER_STOP&&R.onBufferStopWhenSeekingDuringBufferingOrSeekingDuringPause(b,d)),c(a)&&f.getPlaylist().setFirstEventSent(!0)}function e(a,c){for(var d,e=ea.encodeURIComponent||escape,f=[],g=l.LABELS_ORDER,h=a.split("?"),i=h[0],j=h[1],k=j.split("&"),m=0,n=k.length;n>m;m++){var o=k[m].split("="),p=unescape(o[0]),q=unescape(o[1]);p&&(c[p]=q)}for(var r={},s=0,t=g.length;t>s;s++){var u=g[s];if(c.hasOwnProperty(u)){var v=c[u];"undefined"!=typeof v&&null!=v&&(r[u]=!0,f.push(e(u)+"="+e(c[u])))}}for(var w in c)if(c.hasOwnProperty(w)){if(r[w])continue;var x=c[w];"undefined"!=typeof x&&null!=x&&f.push(e(w)+"="+e(c[w]))}d=i+"?"+f.join("&"),d=d+(d.indexOf("&c8=")<0?"&c8="+e(fa.title):"")+(d.indexOf("&c7=")<0?"&c7="+e(fa.URL):"")+(d.indexOf("&c9=")<0?"&c9="+e(fa.referrer):"");var y=b.browserAcceptsLargeURLs()?l.URL_LENGTH_LIMIT:l.RESTRICTED_URL_LENGTH_LIMIT;if(d.length>y&&d.indexOf("&")>0){var z=d.substr(0,y-8).lastIndexOf("&");d=(d.substring(0,z)+"&ns_cut="+e(d.substring(z+1))).substr(0,y)}return d}var f,m,F,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,_,aa=this,ba={},ca=l.DEFAULT_PAUSED_ON_BUFFERING_INTERVAL,da=l.THROTTLING_DELAY;b.extend(aa,{createLabels:function(a,c,d){var e={};if("undefined"!=typeof document){var g=document;e.c7=g.URL,e.c8=g.title,e.c9=g.referrer}return null!=c&&b.extend(e,c),e.ns_ts=null!=e.ns_ts?e.ns_ts:String(+new Date),e.ns_st_ev=null!=e.ns_st_ev?e.ns_st_ev:i.toString(a),e.ns_st_mp=null!=e.ns_st_mp?e.ns_st_mp:l.DEFAULT_PLAYERNAME,e.ns_st_mv=null!=e.ns_st_mv?e.ns_st_mv:l.STREAMSENSE_VERSION,e.ns_st_ub=null!=e.ns_st_ub?e.ns_st_ub:"0",e.ns_st_br=null!=e.ns_st_br?e.ns_st_br:"0",e.ns_st_pn=null!=e.ns_st_pn?e.ns_st_pn:"1",e.ns_st_tp=null!=e.ns_st_tp?e.ns_st_tp:"1",e.ns_st_it=null!=e.ns_st_it?e.ns_st_it:k.toString(k.SINGLE_CLIP),e.ns_st_sv=null!=e.ns_st_sv?e.ns_st_sv:l.STREAMSENSE_VERSION,e.ns_st_smv=null!=e.ns_st_smv?e.ns_st_smv:l.MODEL_VERSION,e.ns_type=null!=e.ns_type?e.ns_type:"hidden",e.ns_st_ec=null!=e.ns_st_ec?e.ns_st_ec:String(f.getEventManager().getEventCounter()),e.ns_st_po=null!=e.ns_st_po?e.ns_st_po:String(f.getPlaylist().getPlaylist().getClip().getExpectedPlaybackPosition(d)),e.ns_st_ki=null!=e.ns_st_ki?e.ns_st_ki:String(f.getKeepAlive().getInterval()),f.getPlaylist().createLabels(e),f.getPlaylist().getClip().createLabels(e),b.extend(e,aa.getLabels()),b.extend(e,c),{eventType:a,eventLabels:e}},newEvent:function(a,b,c,e){aa.stopDelayedTransitionTimer();var g=f.getStateMachine().getCurrentState(),h=f.getStateMachine().eventTypeToState(a);if(null!=h&&h!=g)if(!aa.isThrottlingEnabled()||g!=j.PLAYING&&g!=j.PAUSED||h!=j.PLAYING&&h!=j.PAUSED||e){c.ns_st_po||(f.getStateMachine().getCurrentState()==j.PLAYING&&a==i.BUFFER||f.getStateMachine().getCurrentState()==j.BUFFERING_DURING_PLAYBACK&&a==i.BUFFER_STOP?c.ns_st_po=String(f.getPlaylist().getClip().getPlaybackTimeOffset()+(b-f.getPlaylist().getClip().getPlaybackTimestamp())):c.ns_st_po=String(f.getPlaylist().getClip().getExpectedPlaybackPosition(b))),d(a,b,c);var k=0;isNaN(f.getStateMachine().getLastStateChangeTimestamp())||(k=b-f.getStateMachine().getLastStateChangeTimestamp()),f.getStateMachine().newEvent(a,b);for(var l=0,m=Z.length;m>l;l++)Z[l](g,h,c,k)}else Y=f.getPlatformAPI().setTimeout(function(a,c,d){return function(){aa.newEvent(a,b,d,!0)}}(a,h,c),da)},newPseudoEvent:function(a,b,c){if(a!=i.LOAD&&a!=i.START||f.getStateMachine().getCurrentState()==j.IDLE){a!=i.ERROR||c.ns_st_er||(c.ns_st_er=h.UNKNOWN_VALUE),f.getStateMachine().getCurrentState()!=j.IDLE&&f.getStateMachine().getCurrentState()!=j.PLAYBACK_NOT_STARTED&&f.getStateMachine().getCurrentState()!=j.SEEKING_BEFORE_PLAYBACK&&f.getStateMachine().getCurrentState()!=j.BUFFERING_BEFORE_PLAYBACK&&(f.getPlaylist().getClip().addElapsedTime(b),f.getPlaylist().getClip().setElapsedTimestamp(b));var d,e,g,k=!0,l=!1;switch(a){case i.BIT_RATE:d="ns_st_br",e="ns_st_pbr",l=!0;break;case i.PLAYBACK_RATE:d="ns_st_rt",e="ns_st_prt",l=!0;break;case i.VOLUME:d="ns_st_vo",e="ns_st_pvo",l=!0;break;case i.WINDOW_STATE:d="ns_st_ws",e="ns_st_pws",l=!0;break;case i.AUDIO:d="ns_st_at",e="ns_st_pat",l=!1;break;case i.VIDEO:d="ns_st_vt",e="ns_st_pvt",l=!1;break;case i.SUBS:d="ns_st_tt",e="ns_st_ptt",l=!1;break;case i.CDN:d="ns_st_cdn",e="ns_st_pcdn",l=!1;break;default:k=!1}if(k&&c.hasOwnProperty(d)&&(l?(aa.getLabels().hasOwnProperty(d)&&(g=aa.getLabels()[d],c[e]=g),aa.setLabel(d,c[d])):(f.getPlaylist().getClip().getLabels().hasOwnProperty(d)&&(g=f.getPlaylist().getClip().getLabels()[d],c[e]=g),f.getPlaylist().getClip().setLabel(d,c[d]))),!k||f.getStateMachine().getCurrentState()==j.PLAYING||f.getStateMachine().getCurrentState()==j.BUFFERING_DURING_PLAYBACK){c.ns_st_po||(c.ns_st_po=String(f.getPlaylist().getClip().getExpectedPlaybackPosition(b))),f.getStateMachine().getCurrentState()!=j.PLAYING&&f.getStateMachine().getCurrentState()!=j.BUFFERING_DURING_PLAYBACK||(f.getPlaylist().addPlaybackTime(b),f.getPlaylist().setPlaybackTimestamp(b),f.getPlaylist().getClip().addPlaybackTime(b),f.getPlaylist().getClip().setPlaybackTimestamp(b),f.getPlaylist().getClip().addInterval(parseInt(c.ns_st_po)),f.getPlaylist().getClip().setPlaybackStartPosition(parseInt(c.ns_st_po))),f.getStateMachine().getCurrentState()!=j.BUFFERING_BEFORE_PLAYBACK&&f.getStateMachine().getCurrentState()!=j.BUFFERING_DURING_PAUSE&&f.getStateMachine().getCurrentState()!=j.BUFFERING_DURING_PLAYBACK&&f.getStateMachine().getCurrentState()!=j.BUFFERING_DURING_SEEKING||(f.getPlaylist().addBufferingTime(b),f.getPlaylist().setBufferingTimestamp(b),f.getPlaylist().getClip().addBufferingTime(b),f.getPlaylist().getClip().setBufferingTimestamp(b));var m=aa.createLabels(a,c,b);f.getEventManager().newEvent(m)}}},getState:function(){return f.getStateMachine().getCurrentState()},addListener:function(a){Z.push(a)},removeListener:function(a){Z.splice(b.indexOf(a,Z),1)},getLabel:function(a){return $[a]},getLabels:function(){return $},setLabel:function(a,b){null==b?delete $[a]:$[a]=b},setLabels:function(a){for(var b in a)a.hasOwnProperty(b)&&aa.setLabel(b,a[b])},getPlatformAPI:function(){return f.getAppCore()?f.getAppCore().getPlatformAPI():g},getExports:function(){return ba},isProperlyInitialized:function(){var a=f.getAppCore().getAppContext(),b=f.getAppCore().getSalt(),c=f.getAppCore().getPixelURL();return a&&c&&b},setImplementationType:function(a){f.getStateMachine().getCurrentState()!=j.IDLE||a!=k.SINGLE_CLIP&&a!=k.SEGMENTED&&a!=k.REDUCED||f.getPlaylist().setLabel("ns_st_it",k.toString(a))},setThrottlingDelay:function(a){da=a},getThrottlingDelay:function(){return da},isThrottlingEnabled:function(){return X},setThrottlingEnabled:function(a){X=a},isLoadingTimeSent:function(){return S},setLoadingTimeSent:function(a){S=a},getLoadTimeOffset:function(){return T},setLoadTimeOffset:function(a){T=a},getInitTimestamp:function(){return U},setPauseOnBufferingInterval:function(a){ca=a},getPauseOnBufferingInterval:function(){return ca},isPauseOnBufferingEnabled:function(){return V},setPauseOnBufferingEnabled:function(a){V=a},startPausedOnBufferingTimer:function(a,c){aa.stopPausedOnBufferingTimer(),W=aa.getPlatformAPI().setTimeout(function(){var d={},e=b.fixEventTime(d),f=parseInt(c.ns_st_po);d.ns_st_po=String(f+e-a),aa.newEvent(i.PAUSE_ON_BUFFERING,e,d)},ca)},stopPausedOnBufferingTimer:function(){null!=W&&(aa.getPlatformAPI().clearTimeout(W),W=null)},stopDelayedTransitionTimer:function(){Y&&(aa.getPlatformAPI().clearTimeout(Y),Y=null)},setPixelURL:function(a){if(null==a||0==a.length)return null;var b=decodeURIComponent||unescape,c=a.indexOf("?");if(c>=0){if(ce;e++){var g=d[e],h=g.split("=");2==h.length?aa.setLabel(h[0],b(h[1])):1==h.length&&aa.setLabel(l.PAGE_NAME_LABEL,b(h[0]))}a=a.substring(0,c+1)}}else a+="?";return _=a},getPixelURL:function(){return _?_:"undefined"!=typeof ns_p&&"string"==typeof ns_p.src?_=ns_p.src.replace(/&/,"&").replace(/&ns__t=\\d+/,""):"string"==typeof ns_pixelUrl?_=ns_pixelUrl.replace(/&/,"&").replace(/&ns__t=\\d+/,""):null},getSseSM:function(){return f},resetPlaylist:function(a){var b=f.getPlaylist();f.setPlaylist(new n),n.resetPlaylist(b,f.getPlaylist(),a)},resetHeartbeat:function(){f.getHeartbeat().pause(),f.setHeartbeat(new p(f))},resetKeepAlive:function(){f.getKeepAlive().pause(),f.setKeepAlive(new q(f))}});var ea,fa;b.isBrowser()?(ea=window,fa=document):(ea={},fa={location:{href:""},title:"",URL:"",referrer:"",cookie:""}),b.extend(this,{prepareUrl:e}),a()}}(),G=function(){return function(a){var c,d,e,f,g,h,i=this;b.extend(i,{getAppCore:function(){return c},getSSECore:function(){return a},getEventManager:function(){return d},getStateMachine:function(){return e},getHeartbeat:function(){return f},getKeepAlive:function(){return g},getPlaylist:function(){return h},setAppCore:function(a){c=a},setKeepAlive:function(a){g=a},setHeartbeat:function(a){f=a},setEventManager:function(a){d=a},setStateMachine:function(a){e=a},setPlaylist:function(a){h=a}})}}(),H=function(){return function(a,c){function d(){h=new F,g=!0,a&&k.setLabels(a),c&&k.setPixelURL(c)}function e(a,b){k.notify(i.CUSTOM,a,b)}function f(){g&&h.getSseSM().getStateMachine().getCurrentState()!=j.IDLE&&k.end()}var g,h,k=this,m=l.STANDARD_METADATA_LABELS;b.extend(this,{isProperlyInitialized:function(){return h.isProperlyInitialized()},reset:function(a){var b=h;b.getSseSM().getKeepAlive().pause(),b.getSseSM().getHeartbeat().pause(),h=new F,n.resetPlaylist(b.getSseSM().getPlaylist(),h.getSseSM().getPlaylist(),a)},setPauseOnBufferingInterval:function(a){h.setPauseOnBufferingInterval(a)},getPauseOnBufferingInterval:function(){return h.getPauseOnBufferingInterval()},setKeepAliveInterval:function(a){h.getSseSM().getKeepAlive().setInterval(a)},getKeepAliveInterval:function(){return h.getSseSM().getKeepAlive().getInterval()},setHeartbeatIntervals:function(a){h.getSseSM().getHeartbeat().setIntervals(a)},play:function(a,b){k.notify(i.PLAY,a,b)},pause:function(a,b){k.notify(i.PAUSE,a,b)},end:function(a,b){k.notify(i.END,a,b)},bufferStart:function(a,b){k.notify(i.BUFFER,a,b)},bufferStop:function(a,b){k.notify(i.BUFFER_STOP,a,b)},load:function(a,b){k.notify(i.LOAD,a,b)},start:function(a,b){k.notify(i.START,a,b)},seekStart:function(a,b){k.notify(i.SEEK_START,a,b)},skipAd:function(a,b){k.notify(i.AD_SKIP,a,b)},callToAction:function(a,b){k.notify(i.CTA,a,b)},error:function(a,b){k.notify(i.ERROR,a,b)},transferPlayback:function(a,b){k.notify(i.TRANSFER,a,b)},drmFail:function(a,b){k.notify(i.DRM_FAILED,a,b)},drmApprove:function(a,b){k.notify(i.DRM_APPROVED,a,b)},drmDeny:function(a,b){k.notify(i.DRM_DENIED,a,b)},changeBitrate:function(a,b,c){if(null!=a){var d=c||{};d.ns_st_br=String(a),k.notify(i.BIT_RATE,d,b)}},changePlaybackRate:function(a,b,c){if(null!=a){var d=c||{};d.ns_st_rt=String(a),k.notify(i.PLAYBACK_RATE,d,b)}},changeVolume:function(a,b,c){if(null!=a){var d=c||{};d.ns_st_vo=String(a),k.notify(i.VOLUME,d,b)}},changeWindowState:function(a,b,c){if(null!=a){var d=c||{};d.ns_st_ws=String(a),k.notify(i.WINDOW_STATE,d,b)}},changeAudio:function(a,b,c){if(null!=a){var d=c||{};d.ns_st_at=String(a),k.notify(i.AUDIO,d,b)}},changeVideo:function(a,b,c){if(null!=a){var d=c||{};d.ns_st_vt=String(a),k.notify(i.VIDEO,d,b)}},changeSubtitle:function(a,b,c){if(null!=a){var d=c||{};d.ns_st_tt=String(a),k.notify(i.SUBS,d,b)}},changeCDN:function(a,b,c){if(null!=a){var d=c||{};d.ns_st_cdn=String(a),k.notify(i.CDN,d,b)}},notify:function(a){var c,d;if(c="object"==typeof arguments[1]?arguments[1]:"object"==typeof arguments[2]?arguments[2]:{},d="number"==typeof arguments[1]?arguments[1]:"number"==typeof arguments[2]?arguments[2]:NaN,i.toString(a)){c=b.jsonObjectToStringDictionary(c);var e=b.fixEventTime(c);c.ns_st_po||isNaN(d)||(c.ns_st_po=b.getInteger(d,0).toString()),c.ns_st_po&&h.getSseSM().getPlaylist().getClip().setPlaybackTimeOffset(parseInt(c.ns_st_po)),a==i.PLAY||a==i.PAUSE||a==i.BUFFER||a==i.END||a==i.SEEK_START||a==i.AD_SKIP||a==i.BUFFER_STOP?h.newEvent(a,e,c):h.newPseudoEvent(a,e,c)}},getLabels:function(){return h.getLabels()},getState:function(){return h.getSseSM().getStateMachine().getCurrentState()},setLabels:function(a){h.setLabels(a)},getLabel:function(a){return h.getLabel(a)},setLabel:function(a,b){h.setLabel(a,b)},getLoadTimeOffset:function(){return h.getLoadTimeOffset()},setLoadTimeOffset:function(a){h.setLoadTimeOffset(a)},setPixelURL:function(a){return h.setPixelURL(a)},getPixelURL:function(){return h.getSseSM().getSSECore().getPixelURL()},setImplementationType:function(a){h.setImplementationType(a)},isPauseOnBufferingEnabled:function(){return h.isPauseOnBufferingEnabled()},setPauseOnBufferingEnabled:function(a){h.setPauseOnBufferingEnabled(a)},isThrottlingEnabled:function(){return h.isThrottlingEnabled()},setThrottlingEnabled:function(a){h.setThrottlingEnabled(a)},setThrottlingDelay:function(a){h.setThrottlingDelay(a)},getThrottlingDelay:function(){return h.getThrottlingDelay()},setPlaybackIntervalMergeTolerance:function(a){h.getSseSM().getPlaylist().getClip().setPlaybackIntervalMergeTolerance(a)},getPlaybackIntervalMergeTolerance:function(){return h.getSseSM().getPlaylist().getClip().getPlaybackIntervalMergeTolerance()},setClip:function(a,c,d){if(void 0===d&&(d=!0),a=b.jsonObjectToStringDictionary(a),d&&h.getSseSM().getStateMachine().getCurrentState()!==j.IDLE&&k.end(),h.getSseSM().getStateMachine().getCurrentState()==j.IDLE){var e="",f=0;if(null!=a.ns_st_cn)e=String(a.ns_st_cn);else for(var g=0;g=b;b++)if(x.hasOwnProperty(String(b))){z=b;break}return a.StreamSense.activeIndex=z,z}function f(b,c){return b=b||null,c=c||null,b&&"object"==typeof b&&(c=b,b=null),x[++y]=new a.StreamSense(c,b),e(),x[y]}function g(){var b=!1,c=z;if("number"==typeof arguments[0]&&isFinite(arguments[0]))c=arguments[0];else if(arguments[0]instanceof a.StreamSense)for(var d in x)if(x.hasOwnProperty(d)&&x[d]===arguments[0]){c=d;break}return x.hasOwnProperty(String(c))&&(b=x[c],delete x[c],b.reset(),e()),b}function h(a){return a=a||{},d().setPlaylist(a),d().getPlaylist()}function i(a,b,c){return a=a||{},"number"==typeof b&&(a.ns_st_cn=String(b)),d().setClip(a,c),d().getClip()}function j(a,b,c){return"undefined"==typeof a?!1:(c=c||null,b=b||{},d().notify(a,b,c))}function k(a){"undefined"!=typeof a&&d().setLabels(a)}function l(){return d().getLabels()}function m(a){"undefined"!=typeof a&&d().getPlaylist().setLabels(a)}function n(){return d().getPlaylist().getLabels()}function o(a){"undefined"!=typeof a&&d().getClip().setLabels(a)}function p(){return d().getClip().getLabels()}function q(a){return d().reset(a||{})}function r(a){return d().getPlaylist().reset(a||{})}function s(a){return d().getClip().reset(a||{})}function t(a){return a=a||{},d().viewNotify(null,a)}function u(a,b){return arguments.length>2&&(a=arguments[1],b=arguments[2]),a=a||{},"number"==typeof b&&(a.ns_st_po=String(b)),d().customNotify(a,b)}function v(){return d().exportState()}function w(a){d().importState(a)}var x={},y=-1,z=-1;b.extend(c,{activeIndex:z,newInstance:f,"new":f,destroyInstance:g,destroy:g,newPlaylist:h,newClip:i,notify:j,setLabels:k,getLabels:l,setPlaylistLabels:m,getPlaylistLabels:n,setClipLabels:o,getClipLabels:p,resetInstance:q,resetPlaylist:r,resetClip:s,viewEvent:t,customEvent:u,exportState:v,importState:w})}(H),H.PlayerEvents=i,H.InternalStates=j,H.ImplementationType=k,H}(),a.StreamingTag=a.StreamingTag||function(){var c=a.StreamSense,d=(a.StreamSense.PlayerEvents,a.StreamSense.InternalStates||null),e=a.StreamSense.ImplementationType||null,f=null!=a.StreamSense.InternalStates&&null!=a.StreamSense.ImplementationType;return function(){var a={LongFormOnDemand:"12",ShortFormOnDemand:"11",Live:"13",UserGeneratedLongFormOnDemand:"22",UserGeneratedShortFormOnDemand:"21",UserGeneratedLive:"23",Bumper:"99",Other:"00"},g={LinearOnDemandPreRoll:"11",LinearOnDemandMidRoll:"12",LinearOnDemandPostRoll:"13",LinearLive:"21",Other:"00"},h=function(a){function g(){if(f)if(b.getNamespace().comScore)q=new c,q.setImplementationType(e.REDUCED);else if(b.exists(a))if(r=b.isTrue(a.debug),b.exists(a.customerC2)&&a.customerC2.length>0){var d=a.secure?"https://sb":"http"+("s"==document.location.href.charAt(4)?"s://sb":"://b");q=new c,q.setPixelURL(d+".scorecardresearch.com/p?c1=2"),q.setLabel("c2",a.customerC2),q.setImplementationType(e.REDUCED)}else r&&console&&console.log("Warning: customerC2 is not provided (or incorrect) in the StreamingTag configuration.")}function h(a){b.exists(a)||(a={});for(var c in t)t.hasOwnProperty(c)&&!b.exists(a[t[c]])&&("ns_st_ci"==t[c]?a.ns_st_ci="0":a[t[c]]="*null");return a}function i(a){for(var b in t)if(t.hasOwnProperty(b)&&!j(t[b],o,a))return!1;return!0}function j(a,c,d){if(b.exists(a)&&b.exists(c)&&b.exists(d)){var e=c[a],f=d[a];return b.exists(e)&&b.exists(f)&&e===f}return!1}function k(a){n++;var c={ns_st_cn:String(n),ns_st_pn:"1",ns_st_tp:"0"};b.extend(c,a),q.setClip(c),o=a,q.play()}function l(a){n++,a=h(a);var c={ns_st_cn:String(n),ns_st_pn:"1",ns_st_tp:"1",ns_st_ad:"1"};b.extend(c,a),q.setClip(c),q.play(),p=!1}function m(a,b){a=h(a),u==s.None&&(u=b),p&&u==b&&i(a)?(q.getClip().setLabels(a),q.getState()!=d.PLAYING&&q.play()):k(a),p=!0,u=b}var n=0,o=null,p=!1,q=null,r=!1,s={None:0,AudioContent:1,VideoContent:2},t=["ns_st_ci","c3","c4","c6","ns_st_st","ns_st_pu","ns_st_pr","ns_st_ep","ns_st_sn","ns_st_en","ns_st_ct"],u=s.None;b.extend(this,{playAdvertisement:function(){if(q){r&&console&&console.warn("Calling deprecated function \'playAdvertisement\'. Please call \'playVideoAdvertisement\' or \'playAudioAdvertisement\' functions instead.");var a={ns_st_ct:"va"};l(a)}},playVideoAdvertisement:function(a,c){if(q){var d={ns_st_ct:"va"};c?d.ns_st_ct="va"+c:r&&console&&console.warn("Calling \'playVideoAdvertisement\' without specifying the media type as a second parameter."),a&&b.extend(d,a),l(d)}},playAudioAdvertisement:function(a,c){if(q){var d={ns_st_ct:"aa"};c?d.ns_st_ct="aa"+c:r&&console&&console.warn("Calling \'playAudioAdvertisement\' without specifying the media type as a second parameter."),a&&b.extend(d,a),l(d)}},playContentPart:function(a){if(q){r&&console&&console.warn("Calling deprecated function \'playContentPart\'. Please call \'playVideoContentPart\' or \'playAudioContentPart\' functions instead.");var c={ns_st_ct:"vc"};a&&b.extend(c,a),m(c,s.VideoContent)}},playVideoContentPart:function(a,c){if(q){var d={ns_st_ct:"vc"};c?d.ns_st_ct="vc"+c:r&&console&&console.warn("Calling \'playVideoContentPart\' without specifying the media type as a second parameter."),a&&b.extend(d,a),m(d,s.VideoContent)}},playAudioContentPart:function(a,c){if(q){var d={ns_st_ct:"ac"};c?d.ns_st_ct="ac"+c:r&&console&&console.warn("Calling \'playAudioContentPart\' without specifying the media type as a second parameter."),a&&b.extend(d,a),m(d,s.AudioContent)}},stop:function(){q&&q.pause()}}),g()};return function(a){}(h),h.ContentType=a,h.AdType=g,h}()}(),a});\n',
language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RLb5d2ee629ea94b6bb4de7caa89e7a045",name:"hotfix - CNBC Sports Ad Fix",events:[{modulePath:"core/src/lib/events/domReady.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["cnbc.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"https://assets.adobedtm.com/77ca722dd820/bbaaa56c8833/95c1ebbd94f6/RCc2eda71d8d9e433583a2b3ca8fb432e6-source.min.js",language:"javascript",isExternal:!0},timeout:2e3,delayNext:!0}]},{id:"RLb72a457178994540804ad42f0fab33af",name:"DR - Action - loadMore Linkcall",events:[{modulePath:"core/src/lib/events/domReady.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["cnbc.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"https://assets.adobedtm.com/77ca722dd820/bbaaa56c8833/95c1ebbd94f6/RCa848c7aae0194142bbcf07a0858cd1f2-source.min.js",language:"javascript",isExternal:!0},timeout:2e3,delayNext:!0}]},{id:"RLb95a397897a2454bb01fa73453635f47",name:"DR - Action - Redventure link click",events:[{modulePath:"core/src/lib/events/domReady.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["cnbc.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"https://assets.adobedtm.com/77ca722dd820/bbaaa56c8833/95c1ebbd94f6/RC1602fc2494d74c7eb2df90f304c4d066-source.min.js",language:"javascript",isExternal:!0},timeout:2e3,delayNext:!0}]},{id:"RLbe7e2fccdfc74f1f8dddac9b26a2267e",name:"15 - BI Tools [d:cnbc.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:15}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["cnbc.com","ms.now"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"(function () {\n var PREFIX = 'BI_';\n\n window.BI = window.BI || {};\n\n function returnPairs(modName) {\n // if no module is given, we are going to return all BI cookies\n var prefix = modName ? PREFIX + modName : PREFIX;\n var pairs = document.cookie.split('; ').filter(function (key) { return key.indexOf(prefix) == 0; });\n var result = {};\n pairs.forEach(function (pair) {\n var keyValueArray = pair.split('=');\n // remove the prefix on the cookie\n keyValueArray[0] = keyValueArray[0].replace(prefix + '_', '');\n result[keyValueArray[0]] = keyValueArray[1];\n });\n return result;\n }\n\n /* SNIPAF: { \"name\": \"getCookies\", \"version\": 1.0 } */\n window.BI.getCookies = function getCookies(names = []) {\n function matches(e) {\n return names.filter(n => e.startsWith(`${n}=`)).length;\n }\n /**\n * Parses the document cookies into an array of key-value pairs.\n *\n * The function performs the following steps:\n * 1. Splits the `document.cookie` string into individual cookie entries using `;` as a delimiter.\n * 2. Trims any leading or trailing whitespace from each cookie entry.\n * 3. Filters the entries based on a custom `matches` function.\n * 4. Splits each filtered entry into a key-value pair using `=` as a delimiter.\n *\n * @returns {Array>} An array of key-value pairs representing the filtered cookies.\n */\n var entries = document.cookie\n .split(';')\n .map(entry => entry.trim())\n .filter(matches)\n .map(entry => entry.split('='));\n\n return Object.fromEntries(entries);\n };\n /* SNIPAF: END */\n\n window.BI.cookie = {\n // should only get one key/value pair at a time\n write: function (modName, key, data, expiration) {\n if (data) {\n modName = modName ? modName : 'GLOBAL';\n var prefixedKey = PREFIX + modName + '_' + key;\n document.cookie = prefixedKey.trim() + '=' + data + '; expires=' + expiration + '; path=/';\n }\n },\n read: function (modName, key) {\n // if we only get the module name, return all cookies in that module\n if (modName && !key) {\n return returnPairs(modName);\n }\n // if we get both the module and cookie name, return that specific cookie\n else if (modName && key) {\n var prefixedKey = PREFIX + modName + '_' + key;\n var b = document.cookie.match('(^|[^;]+)\\\\s*' + prefixedKey + '\\\\s*=\\\\s*([^;]+)');\n return b ? b.pop() : '';\n }\n // return all BI cookies if nothing is given\n else {\n return returnPairs();\n }\n },\n remove: function(modName, key) {\n window.BI.cookie.write(modName, key, 'true', 'Thu, 01 Jan 1970 00:00:00 GMT');\n },\n };\n\n window.BI.userInfo = {\n save: function (userInfo, expiration) {\n for (var key in userInfo) {\n // default is a 30min expiration\n var dt = new Date();\n dt.setMinutes(dt.getMinutes() + 30);\n // UI is the modName to pass to the cookie writer\n if (expiration) window.BI.cookie.write('UI', key, userInfo[key], expiration);\n // if no expiration is given, use the default 30min\n else window.BI.cookie.write('UI', key, userInfo[key], dt.toGMTString());\n }\n },\n get: function (key) {\n // we only want to get the UI module cookies\n return window.BI.cookie.read('UI', key);\n },\n remove: function(key) {\n window.BI.cookie.remove('UI', key);\n }\n };\n})();",language:"javascript"},timeout:2e3,delayNext:!0},{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"//BI console\n(function (window) {\n var hasConsole = function () {\n return window.console && window.console.log;\n };\n var prefix = 'BIConsole.';\n\n var cleanJSON = function(data){\n var resultJSON = {};\n try {\n resultJSON = JSON.parse(JSON.stringify(data));\n }catch(e){\n resultJSON = data;\n }\n return resultJSON;\n };\n window.BI = window.BI || {};\n window.BI.console = {\n list: function (searchKey) {\n searchKey = searchKey || '';\n var result = {};\n for (var key in localStorage) {\n if (key.indexOf(prefix) != -1 && key.split(prefix)[1].indexOf(searchKey) != -1) {\n result[key.replace(prefix,'')] = localStorage.getItem(key);\n }\n }\n return result;\n },\n off: function (key) {\n var keys = this.list(key);\n var result = {};\n for (key in keys) {\n localStorage.setItem(prefix + key, false);\n result[key] = false;\n }\n return result;\n },\n on: function (key) {\n var keys = this.list(key);\n var result = {};\n for (key in keys) {\n localStorage.setItem(prefix + key, true);\n result[key] = true;\n }\n return result;\n },\n log: function (event, data, eventSource) {\n eventSource = eventSource || 'gen';\n var logKey = window.localStorage.getItem(prefix + eventSource);\n if (hasConsole && logKey && logKey.toLowerCase() === 'true') {\n\n console.log('%c BI:%s %c%s%c @ %s : %O', 'font-weight:normal', eventSource, 'font-weight:bold', event, 'font-weight:normal', (new Date()).toISOString().split('T')[1], cleanJSON(data));\n } else {\n window.localStorage.setItem(prefix + eventSource, false);\n }\n },\n build: function (logGroup) {\n var log = this.log;\n var logger = function(event, data) {\n log(event, data, logGroup);\n };\n logger.logGroup = logGroup;\n logger('log group initiated');\n return logger;\n }\n };\n})(window);\n",language:"javascript"},timeout:2e3,delayNext:!0},{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"/* eslint-disable no-console */\n(function() {\n var ENABLED = 'feature_enabled_by_onetrust';\n var DISABLED = 'feature_disabled_by_onetrust';\n\n window.$t('register', ENABLED);\n window.$t('register', DISABLED);\n\n window.BI.wrapWithOneTrustCat4 = function(fn, featureName = fn.name) {\n window.BI.waitForObjAvailable(['mps', 'mps.geo', 'mps.geo.data'], 50, function() {\n let mps = window.mps;\n if (mps) {\n mps.optCAT4Enabled = true;\n\n var optanonCookie =\n document &&\n document.cookie &&\n document.cookie\n .split(';')\n .map(s => s.trim())\n .find(s => s.startsWith('OptanonConsent'));\n\n var categoryEnabledRegexC4 = /groups=[^&]*%2C4%3A1/;\n mps.optConsentAdMeasurement = categoryEnabledRegexC4.test(optanonCookie);\n\n if (mps.geo.inGroup('eea')) {\n if (mps.optConsentAdMeasurement) {\n mps.optCAT4Enabled = true;\n\n } else {\n mps.optCAT4Enabled = false;\n }\n }\n }\n\n const eventData = { policy: 'CAT4', featureName };\n\n if (mps.optCAT4Enabled === true) {\n window.$t('track', ENABLED, eventData);\n fn();\n }\n else {\n window.$t('track', DISABLED, eventData);\n }\n });\n };\n\n window.BI.wrapWithOneTrustCat7 = function(fn, featureName = fn.name) {\n window.BI.waitForObjAvailable(['mps', 'mps.geo', 'mps.geo.data'], 50, function() {\n let mps = window.mps;\n if (mps) {\n mps.optCAT7Enabled = true;\n var optanonCookie =\n document &&\n document.cookie &&\n document.cookie\n .split(';')\n .map(s => s.trim())\n .find(s => s.startsWith('OptanonConsent'));\n\n var categoryEnabledRegexC7 = /groups=[^&]*%2C7%3A1/;\n mps.optConsentContentMeasurement = categoryEnabledRegexC7.test(optanonCookie);\n\n if (mps.geo.inGroup('eea')) {\n if (mps.optConsentContentMeasurement) {\n mps.optCAT7Enabled = true;\n } else {\n mps.optCAT7Enabled = false;\n }\n }\n\n const eventData = { policy: 'CAT7', featureName };\n\n if(mps.optCAT7Enabled) {\n window.$t('track', ENABLED, eventData);\n fn();\n } else {\n window.$t('track', DISABLED, eventData);\n }\n }\n });\n\n };\n\n window.BI.wrapWithOneTrust = function({\n fn = Function.prototype,\n featureName = 'Unspecified Feature',\n categories = [],\n }) {\n window.BI.waitForObjAvailable(['mps', 'mps.geo', 'mps.geo.data'], 50, function() {\n let mps = window.mps;\n let validCategories = categories.filter(c => ([4,6,7].includes(c)));\n\n // Iterating over categories, filtering out unacceptable values\n for (var category of validCategories) {\n if (!mps) return;\n\n let categoryEnabledFlag = `optCAT${category}Enabled`;\n mps[categoryEnabledFlag] = true;\n\n var optanonCookie =\n document &&\n document.cookie &&\n document.cookie\n .split(';')\n .map(s => s.trim())\n .find(s => s.startsWith('OptanonConsent'));\n\n var categoryEnabledRegex = new RegExp(`groups=[^&]*%2C${category}%3A1`);\n mps.optConsentAdMeasurement = categoryEnabledRegex.test(optanonCookie);\n\n if (mps.geo.inGroup('eea')) {\n if (mps.optConsentAdMeasurement) {\n mps[categoryEnabledFlag] = true;\n } else {\n mps[categoryEnabledFlag] = false;\n }\n }\n }\n\n // Exiting early if any of the categories apply\n for (var cat of validCategories) {\n let categoryEnabledFlag = `optCAT${cat}Enabled`;\n\n if (mps[categoryEnabledFlag] === false) {\n window.$t('track', DISABLED, { policy: `CAT${cat}`, featureName });\n return;\n }\n }\n\n // Enabling the feature if none of the categories apply\n window.$t('track', ENABLED, { featureName, categories });\n fn();\n\n });\n };\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0},{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"/* globals BI */\n(function() {\n var logEvent = (function () {\n var logGroup = 'waitForObjAvailable';\n var logger = function (event, data) {\n\n if (window.BI && window.BI.console) {\n window.BI.console.log(event, data, logGroup);\n }\n };\n logger.logGroup = logGroup;\n return logger;\n })();\n\n window.BI.waitForObjAvailable = function waitForObjAvailable(objStrArray, tries, callback, interval=100){\n var allObjsAvailable = function(objStrArray){\n for (var i = 0; i < objStrArray.length; i++) {\n var obj = ('.'+objStrArray[i]).split('.').reduce(function(prev, cur){return prev[cur]? prev[cur] : window[cur];});\n if (typeof obj === 'undefined') {\n return false;\n }\n }\n return true;\n };\n if (!allObjsAvailable(objStrArray)) {\n if (tries > 0) {\n setTimeout(function() {\n BI.waitForObjAvailable(objStrArray, tries - 1, callback, interval);\n }, interval);\n } else {\n logEvent('not available', { objStrArray, tries, callback, interval });\n }\n } else {\n logEvent('available', { objStrArray, tries, callback, interval });\n callback();\n }\n };\n\n /* SNIPAF: { \"name\": \"dependsOn\", \"version\": 1 } */\n const valuesBeingPolled = {};\n\n window.BI.dependsOn = function(names, { timeLimit = 10000, interval = 250 } = {}) {\n // Given a \".\" separated string, get the actual value it represents from the global scope\n const safelyGetValue = name => ('.' + name).split('.').reduce((p, c) => p[c] ?? window[c]);\n\n const pollUntilAvailable = name => new Promise((resolve, reject) => {\n // Trying to retrieve the desired value without\n // polling and resolve early, if possible.\n const initialValue = safelyGetValue(name);\n if (typeof initialValue !== 'undefined') {\n return resolve(initialValue);\n }\n\n const poll = valuesBeingPolled[name] ?? { interval, timeElapsed: 0, loop: null, listeners: [] };\n\n // Adding the time limit to the time already elapsed in polling,\n // so that polling times aren't shorter than intended.\n const adjustedTimeLimit = poll.timeElapsed + timeLimit;\n\n // Setting up a listener function which is responsible for resolving or rejecting\n // the top-level promise, and for signaling to the polling loop whether it is\n // still needed. Returning false indicates that the listener can be removed.\n poll.listeners.push(timeElapsed => {\n const value = safelyGetValue(name);\n\n if (typeof value !== 'undefined') {\n resolve(value);\n return false;\n }\n if (timeElapsed >= adjustedTimeLimit) {\n reject(new Error(`\\`${name}\\` is missing after ${timeLimit}ms`));\n return false;\n }\n return true;\n });\n\n // Setting up a function that will be called on each iteration of the polling\n // loop, which is responsible for timekeeping and keeping state clean.\n const pollingBehavior = () => {\n poll.timeElapsed += poll.interval;\n poll.listeners = poll.listeners.filter(fn => fn(poll.timeElapsed));\n\n // Cleaning up after all listeners for a value have been removed\n if (poll.listeners.length === 0) {\n clearInterval(poll.loop);\n delete valuesBeingPolled[name];\n }\n };\n\n if (poll.loop) {\n // Making the polling loop faster if necessary. Multiple callers\n // can have different intervals, so we'll prioritize the faster one.\n if (poll.interval > interval) {\n clearInterval(poll.loop);\n poll.loop = setInterval(pollingBehavior, interval);\n poll.interval = interval;\n }\n }\n else {\n // Setting up the polling loop if it doesn't exist\n poll.loop = setInterval(pollingBehavior, poll.interval);\n }\n\n // Storing the polling object for future reference\n valuesBeingPolled[name] = poll;\n\n // Calling the first iteration of the polling loop immediately\n // to prevent a delay before the first check.\n pollingBehavior();\n });\n\n return Promise.all(names.map(pollUntilAvailable));\n };\n /* SNIPAF: END */\n\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0},{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"(function () {\n var topLevelDomain = document.location.hostname.match(/[^./]+\\.[^./]+$/)[0];\n window.BI = window.BI || {};\n window.BI.brand = (function () {\n var settings = {}\n var brandSettings = function (product) {\n //add default setting\n if (settings[product] && settings[product][topLevelDomain]) {\n return settings[product][topLevelDomain];\n } else {\n return false\n }\n }\n brandSettings.setProduct = function (product, data) {\n settings[product] = data;\n }\n brandSettings.getProduct = function (product) {\n if (product) {\n return settings[product];\n } else {\n return settings;\n }\n }\n brandSettings.getDomain = function (domain) {\n var domainValues = {}\n if (!domain) {\n domain = topLevelDomain;\n }\n var product;\n for (product in settings) {\n if (settings[product][domain]) {\n domainValues[product] = settings[product][domain];\n } else {\n domainValues[product] = 'no settings';\n }\n }\n return domainValues;\n }\n return brandSettings;\n })();\n})();",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RLc59106539e6644b680f4112d6c1f3c05",name:"50 - Sailthru On Select [d:cnbc.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/path.js",settings:{paths:[{value:"/select/*|/select/|/select$",valueIsRegex:!0}]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"(function () {\n const el = document.createElement('script');\n el.src = 'https://ak.sail-horizon.com/spm/spm.v1.min.js';\n document.head.appendChild(el);\n})();",language:"javascript"},timeout:2e3,delayNext:!0},{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"/* globals BI */\nwindow.BI.wrapWithOneTrustCat4(function() {\n BI.waitForObjAvailable(['Sailthru'], 50, function() {\n window.Sailthru.init({ customerId: '3eba32054e8bb0ab42143893885f95b2' });\n });\n});\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RLca3bdf6c95c443aaad4ea24d5db5c19a",name:"10 - Load $t Tracking Service [d:cnbc.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:10}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["cnbc.com","ms.now"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/* globals define, exports, global, trackB, $t */\n/* eslint-disable no-prototype-builtins */\n\n/*\n* *******************\n* Tracking Service trackB\n* AF version: 3.2.0-web\n* Built: 2025-07-30T20:16:34.173Z\n* *******************\n@preserve */\n!function(e,t){'object'==typeof exports&&'undefined'!=typeof module?t(exports):'function'==typeof define&&define.amd?define(['exports'],t):t((e='undefined'!=typeof globalThis?globalThis:e||self).trackB={});}(this,function(e){function t(e){return e&&e.Math===Math&&e;}const n=function(e={remoteEnabled:!1,trustedDomains:[]}){const n=t('object'==typeof window&&window)||t('object'==typeof self&&self)||t('object'==typeof global&&global)||function(){return this;}()||Function('return this')(),r=n.document;var i=function(){var t=function(e){return'function'==typeof t[e]?t[e].apply(t,Array.prototype.slice.call(arguments,1)):arguments.length>0?t.get.apply(t,arguments):t.list.apply(t,arguments);},i=function(e,n){t.errorLog.push(e),(!n||t.debug>=1)&&o('$t error - '+e);},o=n.console?function(){n.console.log.apply(n.console,arguments);}:function(){},s=function(e,t){for(var n in e=e||{},t)'object'==typeof t[n]?e[n]=s(e[n],t[n]):e[n]=t[n];return e;},a=function(e,n){var r=!1;return/^[^a-zA-Z_$]|[^0-9a-zA-Z_$]/.test(e)&&(r='validation: '+e+' is not a valid variable name'),n||void 0===t.eventLog[e]||(r='validation: '+e+' is already registered'),!r||(i(r),!1);},c={exp:36e5,key:'ts_data.',save:function(e,t,r){var i=(new Date).getTime(),o={eventData:t,timestamp:i};i=r?i+r:i+this.exp;var s=/\\w+\\.\\w+$/.exec(n.location.hostname);return this.cookie.set({name:this.key+e,value:JSON.stringify(o),path:'/',expires:new Date(i),domain:s}),t;},load:function(e){var t=null;return!!(t=this.cookie.get(this.key+e))&&(t=JSON.parse(t),(new Date).getTime()0)for(var o=0;this.listeners[n][o];o++){var s=this.listeners[n][o];try{s.apply(t,[{type:n},r]);}catch(e){i('Cant execute callback for: '+n+'. '+e.stack);}}},bind:function(e,t,n){void 0===this.listeners[t]&&(this.listeners[t]=[]),this.listeners[t].push(n);}},l=function(e){if(e=e.split('.'),void 0!==n[e[0]]){for(var t=n[e[0]],r=1;e.length>r;r++){if(null===t||void 0===t[e[r]])return i('TRAM convert - undefined - '+e.join().replace(/,/g,'.'),!0),!1;t=t[e[r]];}return!function(e){if('object'==typeof e){for(var t in e)if(e.hasOwnProperty(t))return!1;return!0;}return!1;}(t)&&t||!1;}return i('TRAM convert - missing root obj - '+e[0],!0),!1;},u={},v={uniqueKey:'$t_nbc_crossEvent',srcUrl:[n.location.protocol,'//',n.location.host,n.location.pathname].join(''),listen:function(){var r=this.uniqueKey,i=this.srcUrl,o=n.addEventListener?'addEventListener':'attachEvent',s=n[o];s('attachEvent'==o?'onmessage':'message',function(o){if(e.trustedDomains.includes(o.origin)&&'string'==typeof o.data&&o.data.substring(0,r.length)===r){var s=function(e){try{return JSON.parse(e);}catch(e){return null;}}(o.data.replace(r,''));s&&s.action&&s.srcUrl!==i&&('track'!==s.action[0]&&'register'!==s.action[0]||(t.apply(t,s.action),parent!==n&&parent.postMessage(o.data,'*')));}},!1);},send:function(e,t){var n=this.uniqueKey,r={action:e,srcUrl:this.srcUrl};parent.postMessage(n+JSON.stringify(r),t||'*');}},p={};return t.version=function(){const e='[VI]{version}[/VI]',t='3.2.0-web';let n='2.4.1';return isNaN(parseInt(e))||(n=e),isNaN(parseInt(t.replace('-web','')))||(n=t),n;}(),t.debug=0,t.errorLog=[],t.eventLog={},t.eventHistory={},t.storage=c,t.maxHistoryLength=10,t.track=function(e,t,r){if(void 0!==this.eventLog[e]){if('object'!=typeof r&&(r={}),t=t||!0,this.eventLog[e]=t,r.persistent){var a=!1;r.expires&&(a=1e3*r.expires),c.save(e,t,a);}if(0!==e.indexOf('_')&&f.trigger(this,'eventTracked',{eventType:e,eventData:t}),p[e]&&p[e].remote){if('object'==typeof t&&!t.$t_remote){var l=[n.location.protocol,'//',n.location.host,n.location.pathname].join('');s(t,{$t_remote:l});}v.send(['track',e,t],p[e].targetOrigin);}f.trigger(this,e,t),(1==this.debug&&0!==e.indexOf('_')||2==this.debug)&&o('*Tracking service: '+e+' triggered');const i=this.eventHistory[e];return 0==Array.isArray(i)?o('*Tracking service: '+e+' history could not be stored'):(i.length>=this.maxHistoryLength&&i.shift(),i.push({data:t,options:r})),!0;}return i('unable to track: '+e),!1;},t.register=function(e,t){'object'!=typeof t&&(t={}),t=p[e[f]]=s(p[e[f]]||{},t);for(var n='',r=c.listEvents(),o={},f=0;r[f];f++)o[r[f]]=!0;for('string'==typeof e&&(e=[e]),f=0;e[f];f++){if(this.eventHistory[e[f]]=[],!0===o[e[f]])return!0;a(e[f],t.allowDuplicate)?(this.eventLog[e[f]]=null,t.remote&&v.send(['register',e[f],t])):n+=e[f]+',';}return!n||(i('could not register: '+n),!1);},t.registeredEvents=function(e){e=e||'';var n=!1,r=[];for(var i in 0===e.indexOf('_')&&(n=!0,e=e.substr(1)),t.eventLog)-1==i.indexOf(e)||0===i.indexOf('_')&&!n||r.push(i);return r;},t.bindTrack=function(e){f.bind(this,'eventTracked',e);},t.on=function(e,t,n){'string'==typeof e&&(e=[e]);for(var r=0;e[r];r++)1==n?.consumeHistory&&(this.eventHistory[e[r]]??[]).forEach(n=>{t.apply(this,[{type:e[r]},n.data]);}),f.bind(this,e[r],t);},t.load=function(e,t,n){void 0===u[e]?'string'==typeof t?(u[e]={},u[e].info={ref:t,options:n}):i('TRAM load - object reference must be string'):i('TRAM load - object name taken');},t.get=function(e,n){var r=e.split('.')[0];if(n=void 0!==n?n:'',t.eventLog[r]||u[r]){t.eventLog[r]&&(e='$t.'+e,r='$t'),e=e.replace(r,u[r].info.ref);var i=l(e);return i||n;}return n;},t.list=function(e){if(e)t.eventLog[e]?(o(e+' : event info'),o(t.eventLog[e])):u[e]?void 0!==window[u[e].info.ref.split('.')[0]]?(o(e+' : '+u[e].info.ref),o(l(u[e].info.ref))):o(e+' : '+u[e].info.ref+' : Not present'):o(e+' : Empty or not defined');else{for(var n in o('%cversion: %s','font-weight:bold;',t.version),o('%cevents:','font-weight:bold;'),t.eventLog)if(0!==n.indexOf('_')||2==t.debug){var r=p[n]&&p[n].remote?'(remote)':'';t.eventLog[n]?o('%c* %s %s fired %O','color:#B80;',n,r,t.eventLog[n]):(r=p[n]&&p[n].remote?'(remote)':'',o('%s %s',n,r));}for(var i in o('%cTRAM objects:','font-weight:bold;'),u)o('%s : %s : %O',i,u[i].info.ref,l(u[i].info.ref));t.errorLog.length>0&&o('%clog: %O','font-weight:bold;',t.errorLog);}},function(){var e=c.listEvents();if(!e)return!1;for(var n=0;e[n];n++){var r=c.load(e[n]);r&&(t.eventLog[e[n]]=r);}}(),t.load('$t','$t.eventLog'),e.remoteEnabled&&v.listen(),t;};if(void 0!==n.$t){if(!parseFloat(n.$t.version)>0){var o=n.$t('getSaves');Object.defineProperty(n,'$t',{value:i(),configurable:!1,enumerable:!0,writable:!0});for(var s=0;o[s];s++)n.$t.apply(n.$t,o[s]);}}else Object.defineProperty(n,'$t',{value:i(),configurable:!1,enumerable:!0,writable:!0});return n.$t;};e.init=n,Object.defineProperty(e,'__esModule',{value:!0});});\n\n//init $t\nwindow.$t = trackB.init({ remoteEnabled: true, trustedDomains: ['https://zephr-templates.cnbc.com']});\n\nwindow._satellite.setDebug(false);\n\n//load data layers\n$t('load','CNBC_META','__CNBC_META_DATA');\n\n",language:"javascript"},timeout:2e3,delayNext:!0},{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/* globals $t */\n// Intercepting $t events emitted from within iframes.\n// This script is intended to be a temporary workaround\n// while remote event functionality is being repaired.\n// https://github.com/cnbc/WEB.Zephr/pull/65\n(function() {\n window.addEventListener('message', event => {\n if (event.data.sender === '$t') {\n const { action, eventType, options } = event.data;\n $t(action, eventType, options);\n }\n });\n})();",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RLd0656ca176dd44a0873aef4e7706de53",name:"DR - CNBC Plus Subscriptions [d:cnbc.com]",events:[{modulePath:"core/src/lib/events/domReady.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["cnbc.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"https://assets.adobedtm.com/77ca722dd820/bbaaa56c8833/95c1ebbd94f6/RC6c48990825e54934b9461ab15604bc52-source.min.js",language:"javascript",isExternal:!0},timeout:2e3,delayNext:!0},{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"https://assets.adobedtm.com/77ca722dd820/bbaaa56c8833/95c1ebbd94f6/RC86cf20b03c844d5987618e3a208e6c62-source.min.js",language:"javascript",isExternal:!0},timeout:2e3,delayNext:!0}]},{id:"RLd22f6036a2e94960b892160ae11219d4",name:"20 - MPS - Marketing Pixels Migration",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:20}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["cnbc.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,
source:"/* globals mps */\n(function() {\n var _tvq = window._tvq = window._tvq || [];\n \n // Wait for mps.geo to be available before executing\n BI.waitForObjAvailable(['mps', 'mps.geo', 'mps.geo.data'], 50, function() {\n mps.optCAT4Enabled = true;\n var optanonCookie =\n document &&\n document.cookie &&\n document.cookie\n .split(';')\n .map(s => s.trim())\n .find(s => s.startsWith('OptanonConsent'));\n var categoryEnabledRegexC4 = /groups=[^&]*%2C4%3A1/;\n mps.optConsentAdMeasurement = categoryEnabledRegexC4.test(optanonCookie);\n \n // Check if user is in EEA using mps.geo (now guaranteed to be available)\n if (mps.geo.inGroup('eea')) {\n if (mps.optConsentAdMeasurement) {\n mps.optCAT4Enabled = true;\n } else {\n mps.optCAT4Enabled = false;\n }\n } else {\n mps.optCAT4Enabled = true;\n }\n if(mps.optCAT4Enabled == true) {\n //Google Ads: 491671965\n window.dataLayer = window.dataLayer || [];\n window.gtag = function() {dataLayer.push(arguments);}\n gtag('js', new Date());\n gtag('config', 'AW-491671965');\n \n // Load gtag.js and track when it's ready\n window.gtagScriptLoadedAW491671965 = false;\n (function(d) {\n var e = d.createElement('script');\n e.src = d.location.protocol + '//www.googletagmanager.com/gtag/js?id=AW-491671965';\n e.async = true;\n e.onload = function() {\n console.log('[Marketing Pixels] \u2705 gtag.js loaded for AW-491671965');\n window.gtagScriptLoadedAW491671965 = true;\n };\n e.onerror = function() {\n console.error('[Marketing Pixels] \u274c Failed to load gtag.js for AW-491671965');\n };\n d.getElementsByTagName(\"head\")[0].appendChild(e);\n }(document));\n \n // Newsletter Marketing Lead Gen Conversion Tracking - VANA-873\n (function() {\n console.log('[Newsletter Conversion] Script starting...');\n console.log('[Newsletter Conversion] Current pathname:', location.pathname);\n \n // Check if on newsletter marketing pages - using exact path matching\n var pathname = location.pathname;\n var pageConfig = null;\n \n // Define all newsletter pages with their conversion IDs\n var newsletterPages = [\n {\n path: '/newsletter/pro-marketing/',\n name: 'CNBC Pro Marketing Newsletter',\n conversionId: 'AW-491671965/VsZBCLjMxqgcEJ2jueoB',\n accountId: 'AW-491671965'\n },\n {\n path: '/newsletter/spotlight/',\n name: 'CNBC Spotlight Newsletter',\n conversionId: 'AW-491671965/VsZBCLjMxqgcEJ2jueoB',\n accountId: 'AW-491671965'\n },\n {\n path: '/newsletter/morning-squawk/',\n name: 'CNBC Morning Squawk Newsletter',\n conversionId: 'AW-491671965/VsZBCLjMxqgcEJ2jueoB',\n accountId: 'AW-491671965'\n },\n {\n path: '/newsletter/stocks-at-night/',\n name: 'CNBC Stocks at Night Newsletter',\n conversionId: 'AW-491671965/VsZBCLjMxqgcEJ2jueoB',\n accountId: 'AW-491671965'\n },\n {\n path: '/newsletter/investingclub-marketing/',\n name: 'Investing Club Marketing Newsletter',\n conversionId: 'AW-304008397/kk2SCPKAhaYcEM2Z-5AB',\n accountId: 'AW-304008397'\n },\n {\n path: '/newsletter/jimstop10/',\n name: 'Jim\\'s Top 10 Newsletter',\n conversionId: 'AW-304008397/kk2SCPKAhaYcEM2Z-5AB',\n accountId: 'AW-304008397'\n }\n ];\n \n // Find matching page\n for (var i = 0; i < newsletterPages.length; i++) {\n if (pathname.indexOf(newsletterPages[i].path) !== -1) {\n pageConfig = newsletterPages[i];\n console.log('[Newsletter Conversion] \u2713 Matched page:', pageConfig.name);\n break;\n }\n }\n \n if (!pageConfig) {\n console.log('[Newsletter Conversion] Not on a tracked newsletter page');\n return;\n }\n \n console.log('[Newsletter Conversion] Page:', pageConfig.name);\n console.log('[Newsletter Conversion] Account ID:', pageConfig.accountId);\n console.log('[Newsletter Conversion] Conversion ID:', pageConfig.conversionId);\n \n // Determine which script to wait for based on account\n var scriptLoadedFlag = pageConfig.accountId === 'AW-491671965' ? \n 'gtagScriptLoadedAW491671965' : 'gtagScriptLoadedAW304008397';\n console.log('[Newsletter Conversion] Will wait for script:', scriptLoadedFlag);\n \n // Wait for gtag.js script to be fully loaded (not just the stub function)\n function waitForGtag(callback, maxAttempts) {\n var attempts = 0;\n var checkInterval = setInterval(function() {\n attempts++;\n var isScriptLoaded = window[scriptLoadedFlag] === true;\n \n console.log('[Newsletter Conversion] Checking for gtag.js... Attempt', attempts);\n console.log('[Newsletter Conversion] typeof gtag:', typeof gtag);\n console.log('[Newsletter Conversion] Script flag:', scriptLoadedFlag, '=', isScriptLoaded);\n console.log('[Newsletter Conversion] AW-491671965 loaded:', window.gtagScriptLoadedAW491671965);\n console.log('[Newsletter Conversion] AW-304008397 loaded:', window.gtagScriptLoadedAW304008397);\n console.log('[Newsletter Conversion] dataLayer length:', window.dataLayer ? window.dataLayer.length : 0);\n \n // Check if the correct gtag.js script is fully loaded\n if (isScriptLoaded && typeof gtag !== 'undefined') {\n clearInterval(checkInterval);\n console.log('[Newsletter Conversion] \u2705 gtag.js FULLY LOADED for', pageConfig.accountId, '!');\n console.log('[Newsletter Conversion] dataLayer entries:', window.dataLayer.length);\n callback();\n } else if (attempts >= maxAttempts) {\n clearInterval(checkInterval);\n console.error('[Newsletter Conversion] \u274c gtag.js not loaded after', maxAttempts, 'attempts');\n console.error('[Newsletter Conversion] Expected script flag:', scriptLoadedFlag);\n console.error('[Newsletter Conversion] Script loaded status:', isScriptLoaded);\n console.error('[Newsletter Conversion] This will cause conversions to fail!');\n }\n }, 100);\n }\n \n var lastConversionTime = 0;\n var conversionAttempts = 0;\n var COOLDOWN_MS = 2000; // 2 second cooldown between conversions\n \n // Initialize conversion tracking\n waitForGtag(function() {\n console.log('[Newsletter Conversion] Initializing conversion tracking...');\n \n // Get the gtag function\n var gtagFunc = typeof gtag !== 'undefined' ? gtag : window.gtag;\n \n if (!gtagFunc) {\n console.error('[Newsletter Conversion] \u274c gtag function not found after wait!');\n return;\n }\n \n // Ensure dataLayer exists\n window.dataLayer = window.dataLayer || [];\n console.log('[Newsletter Conversion] \u2713 dataLayer initialized, length:', window.dataLayer.length);\n \n // Conversion function - simplified to match working conversions (AW-10885207244, DC-10486893)\n window.gtag_report_conversion_newsletter = function() {\n conversionAttempts++;\n var now = Date.now();\n var timeSinceLastConversion = now - lastConversionTime;\n var isScriptLoaded = window[scriptLoadedFlag] === true;\n \n console.log('[Newsletter Conversion] \ud83d\udd14 Conversion function called (attempt #' + conversionAttempts + ')');\n console.log('[Newsletter Conversion] Time since last conversion:', timeSinceLastConversion + 'ms');\n console.log('[Newsletter Conversion] Account:', pageConfig.accountId);\n console.log('[Newsletter Conversion] Required script flag:', scriptLoadedFlag);\n console.log('[Newsletter Conversion] Script loaded:', isScriptLoaded);\n console.log('[Newsletter Conversion] AW-491671965 loaded:', window.gtagScriptLoadedAW491671965);\n console.log('[Newsletter Conversion] AW-304008397 loaded:', window.gtagScriptLoadedAW304008397);\n console.log('[Newsletter Conversion] mps.optCAT4Enabled:', typeof mps !== 'undefined' ? mps.optCAT4Enabled : 'mps undefined');\n console.log('[Newsletter Conversion] typeof gtag:', typeof gtag);\n console.log('[Newsletter Conversion] typeof window.gtag:', typeof window.gtag);\n \n // Check if the correct gtag.js script is actually loaded\n if (!isScriptLoaded) {\n console.error('[Newsletter Conversion] \u274c gtag.js NOT LOADED YET for', pageConfig.accountId, '- conversion will fail!');\n console.error('[Newsletter Conversion] Expected flag:', scriptLoadedFlag, '= false');\n console.error('[Newsletter Conversion] Wait for script to load before firing conversions');\n return false;\n }\n \n // Check if gtag function exists\n if (typeof gtag === 'undefined' && typeof window.gtag === 'undefined') {\n console.error('[Newsletter Conversion] \u274c gtag function is undefined!');\n return false;\n }\n \n // Time-based duplicate prevention (2 second cooldown)\n if (lastConversionTime > 0 && timeSinceLastConversion < COOLDOWN_MS) {\n console.warn('[Newsletter Conversion] \u26a0\ufe0f Cooldown active (' + timeSinceLastConversion + 'ms < ' + COOLDOWN_MS + 'ms), skipping duplicate');\n return false;\n }\n \n console.log('[Newsletter Conversion] \ud83d\ude80 FIRING CONVERSION - Using same method as working conversions');\n console.log('[Newsletter Conversion] \ud83d\ude80 Account:', pageConfig.accountId);\n console.log('[Newsletter Conversion] \ud83d\ude80 Conversion ID:', pageConfig.conversionId);\n console.log('[Newsletter Conversion] \ud83d\ude80 Page:', pageConfig.name);\n console.log('[Newsletter Conversion] \ud83d\ude80 dataLayer before conversion:', window.dataLayer.length, 'entries');\n \n try {\n lastConversionTime = now; // Update timestamp\n \n // Use gtag directly (not gtagFunc variable) and match the format of working conversions\n var gtagToUse = typeof gtag !== 'undefined' ? gtag : window.gtag;\n \n // Fire conversion using same pattern as AW-10885207244 and DC-10486893\n gtagToUse('event', 'conversion', {\n 'allow_custom_scripts': true,\n 'u1': window.location.toString(),\n 'send_to': pageConfig.conversionId\n });\n \n console.log('[Newsletter Conversion] \u2705 Conversion event fired!');\n console.log('[Newsletter Conversion] \u2705 Check Tag Assistant for conversion hit with label:', pageConfig.conversionId);\n console.log('[Newsletter Conversion] \u2705 Check Network tab for googleadservices.com/pagead/conversion');\n \n // Log dataLayer state\n setTimeout(function() {\n console.log('[Newsletter Conversion] \ud83d\ude80 dataLayer after conversion:', window.dataLayer.length, 'entries');\n if (window.dataLayer && window.dataLayer.length > 0) {\n console.log('[Newsletter Conversion] Latest dataLayer entries:', window.dataLayer.slice(-3));\n }\n }, 100);\n \n } catch (error) {\n console.error('[Newsletter Conversion] \u274c Error firing conversion:', error);\n console.error('[Newsletter Conversion] \u274c Error stack:', error.stack);\n lastConversionTime = 0; // Reset timestamp so we can retry\n }\n \n return false;\n };\n \n console.log('[Newsletter Conversion] \u2713 window.gtag_report_conversion_newsletter is now available');\n console.log('[Newsletter Conversion] \ud83d\udca1 Test manually: window.gtag_report_conversion_newsletter()');\n \n // Listen for Zephr email submit event (Step 1 - Email Submit)\n // This fires when user enters email and submits on the FIRST step of the flow\n console.log('[Newsletter Conversion] \ud83c\udfaf Setting up phx_zephr_email_submit listener (Step 1 trigger)');\n \n $t('on', 'phx_zephr_email_submit', function(event, data) {\n console.log('[Newsletter Conversion] \ud83d\udce7 phx_zephr_email_submit event detected!');\n console.log('[Newsletter Conversion] \ud83d\udce7 Event data:', data);\n console.log('[Newsletter Conversion] \ud83d\udce7 This is STEP 1 - Email submission');\n console.log('[Newsletter Conversion] \u2705 Firing conversion from email submit (Step 1)!');\n \n // Fire the conversion\n window.gtag_report_conversion_newsletter();\n });\n \n console.log('[Newsletter Conversion] \u2713 phx_zephr_email_submit listener attached');\n console.log('[Newsletter Conversion] \u2705\u2705\u2705 ALL TRACKING INITIALIZED \u2705\u2705\u2705');\n console.log('[Newsletter Conversion] Ready to track conversions for:', pageConfig.name);\n console.log('[Newsletter Conversion] \ud83d\udcca Trigger: phx_zephr_email_submit (Step 1 - Email Submit)');\n console.log('[Newsletter Conversion] \ud83c\udfaf Conversion format matches working pixels (AW-10885207244, DC-10486893)');\n \n }, 100); // Wait up to 10 seconds for gtag.js to load (100 attempts * 100ms)\n \n })();\n // Newsletter Marketing Lead Gen Conversion Tracking - END\n \n //Google Ads BRKlive: AW-10885207244\n (function(d) {\n var e = d.createElement('script');\n e.src = d.location.protocol + '//www.googletagmanager.com/gtag/js?id=AW-10885207244';\n e.async = true;\n d.getElementsByTagName(\"head\")[0].appendChild(e);\n }(document));\n window.dataLayer = window.dataLayer || [];\n window.gtag = function() {dataLayer.push(arguments);}\n gtag('js', new Date());\n gtag('config', 'AW-10885207244');\n\n gtag('event', 'conversion', {\n 'allow_custom_scripts': true,\n 'u1': window.location.toString(),\n 'send_to': 'AW-10885207244/4D3qCPG93LQDEMypvMYo'\n });\n // Google Ads: 10486893\n (function(d) {\n var e = d.createElement('script');\n e.src = d.location.protocol + '//www.googletagmanager.com/gtag/js?id=DC-10486893';\n e.async = true;\n d.getElementsByTagName(\"head\")[0].appendChild(e);\n }(document)); \n window.dataLayer = window.dataLayer || [];\n window.gtag = function() {dataLayer.push(arguments);}\n gtag('js', new Date());\n gtag('config', 'DC-10486893');\n \n gtag('event', 'conversion', {\n 'allow_custom_scripts': true,\n 'u1': window.location.toString(),\n 'send_to': 'DC-10486893/prola0/prola0+standard'\n });\n // CNBC Investors Club - BEGIN\n //Google Ads: 304008397\n window.dataLayer = window.dataLayer || [];\n window.gtag = window.gtag || function() {dataLayer.push(arguments);}\n window.gtag('js', new Date());\n window.gtag('config', 'AW-304008397');\n \n // Load gtag.js and track when it's ready\n window.gtagScriptLoadedAW304008397 = false;\n (function(d) {\n var e = d.createElement('script');\n e.src = d.location.protocol + '//www.googletagmanager.com/gtag/js?id=AW-304008397';\n e.async = true;\n e.onload = function() {\n console.log('[Marketing Pixels] \u2705 gtag.js loaded for AW-304008397');\n window.gtagScriptLoadedAW304008397 = true;\n };\n e.onerror = function() {\n console.error('[Marketing Pixels] \u274c Failed to load gtag.js for AW-304008397');\n };\n d.getElementsByTagName(\"head\")[0].appendChild(e);\n }(document));\n function gtag_report_conversion(url) { var callback = function () { if (typeof(url) != 'undefined') { window.location = url; } }; window.gtag('event', 'conversion', { 'send_to': 'AW-304008397/j_noCJ3S95sYEM2Z-5AB', 'event_callback': callback }); return false; } \n // CNBC Investors Club - END\n // Microsoft Bing UET Tags - BEGIN\n (function(w,d,t,r,u){var f,n,i;w[u]=w[u]||[],f=function(){var o={ti:\"16018830\"};o.q=w[u],w[u]=new UET(o),w[u].push(\"pageLoad\")},n=d.createElement(t),n.src=r,n.async=1,n.onload=n.onreadystatechange=function(){var s=this.readyState;s&&s!==\"loaded\"&&s!==\"complete\"||(f(),n.onload=n.onreadystatechange=null)},i=d.getElementsByTagName(t)[0],i.parentNode.insertBefore(n,i)})(window,document,\"script\",\"//bat.bing.com/bat.js\",\"uetq\");\n window.uet_report_conversionPro = function() {\n window.uetq = window.uetq || [];\n window.uetq.push(\"event\", \"subscribe_cnbcPro\", {});\n }\n window.uet_report_conversionInvestingClub = function() {\n window.uetq = window.uetq || [];\n window.uetq.push(\"event\", \"subscribe_investingClub\", {});\n }\n window.uet_report_conversion = function() {\n window.uetq = window.uetq || [];\n window.uetq.push(\"event\", \"subscribe\", {});\n }\n // Microsoft Bing UET Tags - END\n // Rokt Init\n (function(d) {\n var e = d.createElement('script');\n e.src = d.location.protocol + '//apps.rokt.com/integrations/referral-tag/referral-tag.js';\n e.async = true;\n d.getElementsByTagName(\"head\")[0].appendChild(e);\n }(document));\n // Rokt Init End\n // Movable Ink Behavioral Start\n (function(m,o,v,a,b,l,e) {\n if (typeof m['MovableInkTrack'] !== 'undefined') { return; }\n m['MovableInkTrack'] = b;\n l = o.createElement(v);\n e = o.getElementsByTagName(v)[0];\n l.type = 'text/javascript'; l.async = true;\n l.src = '//' + a + '/p/js/1.js';\n m[b] = m[b] || function() { (m[b].q=m[b].q||[]).push(arguments); };\n e.parentNode.insertBefore(l, e);\n /* Exclusively for CNBC */\n })(window, document, 'script', '8cmfzco0.micpn.com', 'mitr');\n // Movable Ink Behavioral End\n console.log('WPromote Pixels - CAT4 - Enabled');\n } else {\n console.log('WPromote Pixels - CAT4 - Disabled');\n } \n });\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RLd4ac27f72c124256a411a9020ba1e8fa",name:"20 - MPS - global Loader JS include - onetrust init",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:20}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["cnbc.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/* global OneTrust */\n(function() {\n // If in an iframe, skip all OneTrust actions.\n if (window.self !== window.top || document.location.pathname.includes('appchart')) {\n return;\n }\n /* globals BI */\n //** SET THIS SETTING Manualy! Needs to be \"false\" before relesaed!\n var isStaging = false;\n //var isStaging = window?._satellite?.environment?.stage !== 'production';\n \n var allBrandSettings = {\n 'cnbc.com': {\n src: 'https://cdn.cookielaw.org/consent/01980fea-4b68-707d-9883-dfe20e2ff84a/otSDKStub.js',\n integrity:'sha384-md8Jg1d6Vt+UKjx1JpotD9QFLO4I2ga1JOZeMxjOavOwCHvi7/AZCVkW3V3hkdsF',\n data: '01980fea-4b68-707d-9883-dfe20e2ff84a'\n },\n 'cnbc.com_test': {\n src: 'https://cdn.cookielaw.org/consent/01980fea-4b68-707d-9883-dfe20e2ff84a-test/otSDKStub.js',\n integrity:'sha384-Wsr454DetQJzrYBrP7FvC3Ol9NeePLfdYCB0qtNF6rf0x2mslhua/HXG9BM1n1ca',\n data: '01980fea-4b68-707d-9883-dfe20e2ff84a-test'\n },\n };\n var topLevelDomain = document.location.hostname.match(/[^./]+\\.[^./]+$/)[0];\n var brandSettings = isStaging && allBrandSettings[topLevelDomain + '_test']?allBrandSettings[topLevelDomain + '_test']:allBrandSettings[topLevelDomain];\n\n var logEvent = (window.BI && BI.console && BI.console.build('OneTrust Init')) || Function.prototype;\n\n /* OneTrust Cookies Consent Notice start */\n //Init Callback for Consent Action\n window.addEventListener('OTConsentApplied', function () {\n logEvent('Got consent from user ');\n location.reload();\n });\n\n //Init OneTrust Library\n (function () {\n let ot_status = false;\n let script_element = document.getElementsByTagName('script');\n if(script_element) {\n for(let i = 0; i < script_element.length; i++) {\n if(script_element[i].src == brandSettings.src) {\n ot_status = true;\n logEvent('onetrust script');\n }\n }\n if(ot_status == false) {\n var s = document.createElement('script');\n s.type = 'text/javascript';\n s.charset = 'UTF-8';\n s.setAttribute('data-domain-script', brandSettings.data);\n s.setAttribute('integrity', brandSettings.integrity);\n s.setAttribute('crossorigin', 'anonymous');\n s.async = 0;\n s.src = brandSettings.src;\n var d = document.getElementsByTagName('script')[0];\n d.parentNode.insertBefore(s, d);\n }\n }\n\n })();\n // function to pull cookie value\n window.getCookie = function getCookie(name) {\n var value = '; ' + document.cookie;\n var parts = value.split('; ' + name + '=');\n if (parts.length == 2) return parts.pop().split(';').shift();\n };\n\n\n // Defining a helper function to check for missing button text\n // on elemens related to cookie preferences, and attempt to\n // fill the missing values.\n function populateFailedFooterButtonText({ retries = 10, millisBetweenTries = 1500 } = {}) {\n var retriesRemaining = retries;\n var interval = setInterval(tryPopulatingText, millisBetweenTries);\n\n function tryPopulatingText() {\n try {\n retriesRemaining -= 1;\n\n if (retriesRemaining < 0) {\n return clearInterval(interval);\n }\n\n var button = document\n .querySelector('.CNBCFooter-privacyLink.ot-sdk-show-settings');\n\n if (button && button.innerText === '') {\n button.innerText = OneTrust.GetDomainData().CookieSettingButtonText;\n }\n\n else {\n clearInterval(interval);\n }\n }\n catch {\n // Errors most likely indicate that a necessary\n // element or global object was not available.\n }\n }\n }\n\n window.OptanonWrapper = function() {\n logEvent('OptanonWrapper called');\n\n // Trigger event when OT SDK is loaded\n const customEvent = new CustomEvent('oneTrustLibraryLoaded')\n window.dispatchEvent(customEvent)\n\n // Handling cases where the footer button that lets users manage their\n // cookie preferences has no text to display because of timing issues.\n populateFailedFooterButtonText();\n\n // var OABCcookieName = 'OptanonAlertBoxClosed';\n // var bannerAcceptBtn = document.getElementById('onetrust-accept-btn-handler');\n // var pcAllowAllBtn = document.getElementById('accept-recommended-btn-handler');\n // var pcSaveBtn = document.getElementsByClassName('save-preference-btn-handler onetrust-close-btn-handler button-theme')[0];\n // var OABCcookie = getCookie(OABCcookieName);\n\n // IF logic needed here because ot-banner-sdk DIV is not injected on page loads if banner is not exposed\n /* Disabled individual button actions to test callback refresh\n if (!OABCcookie && bannerAcceptBtn) {\n bannerAcceptBtn.addEventListener('click', function() {\n console.log(\"Allowed all via Banner\");\n location.reload();\n });\n }\n if (pcAllowAllBtn) {\n pcAllowAllBtn.addEventListener('click', function() {\n console.log(\"Allowed all via Preference Center\");\n location.reload();\n });\n }\n if (pcSaveBtn) {\n pcSaveBtn.addEventListener('click', function() {\n console.log(\"Set custom settings via Preference Center\");\n location.reload();\n });\n }\n */\n };\n\n /* OOneTrust IAB US Privacy (USP) */\n (function() {\n var s = document.createElement('script');\n s.type = 'text/javascript';\n s.charset = 'UTF-8';\n s.setAttribute('ccpa-opt-out-ids', 'USP');\n s.setAttribute('ccpa-opt-out-geo', 'US');\n s.setAttribute('ccpa-opt-out-lspa', 'false');\n s.async = 0;\n s.src = 'https://cdn.cookielaw.org/opt-out/otCCPAiab.js';\n var d = document.getElementsByTagName('script')[0];\n d.parentNode.insertBefore(s, d);\n })();\n /* OOneTrust IAB US Privacy (USP) end */\n logEvent('OneTrust: Optanon Init Load');\n /* OneTrust Cookies Consent Notice end */\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RLd8473795ed4f48e5a1d78ed5d41b3e93",name:"50 - Action - Markets Banner Flow [d:cnbc]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["cnbc.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/* globals BI, s, __CNBC_META_DATA */\n(function () {\n const logEvent = (window.BI && BI.console && BI.console.build('market_banners_adobe')) || Function.prototype;\n\n function trackAdobe(analyticId, actionContextData) {\n s.contextData = {};\n s.contextData = actionContextData;\n const combinedLinkTrackVars = Object.keys(actionContextData).map((key) => `contextData.${key}`);\n s.linkTrackVars = combinedLinkTrackVars.join(',');\n\n s.tl(true, 'o', analyticId);\n for (var item in actionContextData) {\n delete s.contextData[item];\n }\n }\n\n function loadMarketBannerIntegration() {\n const fnFlow_CNBC_MarketsBannerFlow = function (data) {\n let actionContextData ={};\n try {\n const template = __CNBC_META_DATA.template || 'NA';\n actionContextData = {\n 'cnbc.action': data.dataset.analyticId + ':' + template,\n 'cnbc.brand': __CNBC_META_DATA.brand || 'NA',\n 'cnbc.platform': 'web'\n };\n\n switch (data.dataset.analyticId) {\n case 'Add Markets Banner':\n case 'Add Markets Banner:Open':\n case 'Add Markets Banner:Close':\n case 'Add Markets Banner:Limit Reached':\n case 'Delete:Markets Banner:Done':\n actionContextData['cnbc.marketsbannercount'] = data.dataset.bannerCount || 'NA';\n actionContextData['cnbc.marketsbannerinfo'] = data.dataset.bannerInfo || 'NA';\n break;\n\n case 'Add Symbol:Markets Banner:Search':\n case 'Delete Symbol:Markets Banner':\n actionContextData['cnbc.marketsbannercount'] = data.dataset.bannerCount || 'NA';\n actionContextData['cnbc.marketsbannerinfo'] = data.dataset.bannerInfo || 'NA';\n actionContextData['cnbc.marketsticker'] = data.dataset.ticker || 'NA';\n break;\n\n default:\n logEvent('Unhandled analyticId:', data.dataset.analyticId);\n return;\n }\n } catch (e) {\n logEvent('Omniture: Whatever Link Event Analytics are not working! Some external plugin might be blocking it!!', e);\n }\n if (Object.keys(actionContextData).length) trackAdobe(data.dataset.analyticId, actionContextData);\n };\n\n window.__EventBus__.remove('marketsBannerFlow', fnFlow_CNBC_MarketsBannerFlow);\n window.__EventBus__.on('marketsBannerFlow', fnFlow_CNBC_MarketsBannerFlow);\n\n logEvent('Omniture Click Linkcall - CAT7 - Enabled');\n }\n\n function handleLoadMarketBannerIntegration() {\n BI.waitForObjAvailable(['__EventBus__', 's', 's.tl'], 50, function() {\n loadMarketBannerIntegration();\n });\n }\n\n BI.wrapWithOneTrust({\n fn: handleLoadMarketBannerIntegration,\n featureName: 'Omniture Market Banner Flow',\n categories: [7]\n });\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RLe1d6523c9a624838bd2b9f8a953a7256",name:"DR - CNBC Pro Subscription Flow",events:[{modulePath:"core/src/lib/events/domReady.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["cnbc.com"]},timeout:2e3}],actions:[{
modulePath:"core/src/lib/actions/customCode.js",settings:{global:!1,source:"https://assets.adobedtm.com/77ca722dd820/bbaaa56c8833/95c1ebbd94f6/RC5e8f1f54b86048f88b7d6b82a3828ccd-source.min.js",language:"javascript",isExternal:!0},timeout:2e3,delayNext:!0},{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"https://assets.adobedtm.com/77ca722dd820/bbaaa56c8833/95c1ebbd94f6/RC88ee9eb657c74ce08cf2038312e95ad9-source.min.js",language:"javascript",isExternal:!0},timeout:2e3,delayNext:!0}]},{id:"RLe3a50f60445248bcb17b8d9d3beb40e6",name:"25 - amplitude",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:25}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["cnbc.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/* global BI */\n(function () {\n // Claim Amplitude ownership early (Analytics SDK 2 only \u2014 no Experiment rule).\n window.__cnbcAmplitudeSdk2 = true;\n\n var AMPLITUDE_QUEUE_GLOBAL_KEY = '__cnbcAmplitudeEventQueue';\n\n /**\n * Same user-context enrichment previously done in Core - MParticle bridge.\n * Keeps existing Pro / Page Load / action events filterable in Amplitude.\n */\n function buildCnbcMetaUserContextForAmplitude() {\n var meta = typeof window !== 'undefined' ? window.__CNBC_META_DATA : null;\n var user = meta && meta.user;\n var loggedIn = !!(user && user.userId != null && String(user.userId).length > 0);\n var out = {\n 'CNBC Logged In': loggedIn,\n 'CNBC User Id': 'NA',\n 'CNBC Bedrock Data': 'NA',\n 'Pro User': false,\n 'Investing Club User': false,\n 'Plus User': false,\n 'Bundle User': false,\n };\n if (!loggedIn) {\n return out;\n }\n out['CNBC User Id'] = user.userId != null ? String(user.userId) : 'NA';\n out['Pro User'] = !!user.isPro;\n out['Investing Club User'] = !!user.isInvestingClubUser;\n out['Plus User'] = !!user.isPlusUser;\n out['Bundle User'] = !!user.hasPurchasedBundle;\n var status;\n if (user.isPro && user.isInvestingClubUser) {\n status = 'PRO,investingclub';\n } else if (user.isPro) {\n status = 'PRO';\n } else if (user.isPlusUser) {\n status = 'plus';\n } else if (user.isInvestingClubUser) {\n status = 'investingclub';\n } else {\n status = 'free';\n }\n out['CNBC Bedrock Data'] = String(user.userId) + ':registered:' + status + ':logged-in';\n if (user.email) {\n out['CNBC User Email'] = user.email;\n }\n try {\n if (window.mParticle && window.mParticle.Identity && typeof window.mParticle.Identity.getCurrentUser === 'function') {\n var current = window.mParticle.Identity.getCurrentUser();\n var mpid = current && typeof current.getMPID === 'function' ? current.getMPID() : null;\n if (mpid) {\n out['CNBC MPID'] = String(mpid);\n }\n }\n } catch (e) {\n /* ignore */\n }\n return out;\n }\n\n function syncAmplitudeUserIdWithMeta() {\n try {\n if (!window.amplitude || typeof window.amplitude.setUserId !== 'function') {\n return;\n }\n var meta = window.__CNBC_META_DATA;\n var uid = meta && meta.user && meta.user.userId;\n if (uid != null && String(uid).length > 0) {\n window.amplitude.setUserId(String(uid));\n }\n } catch (e) {\n /* ignore */\n }\n }\n\n /**\n * CNBC standard event API used by video + all other rules:\n * window?.cnbcAmplitudeLogEvent?.(eventName, eventProperties)\n * Sends via Amplitude Browser SDK 2 (amplitude.track). Queues until init ready.\n */\n function installCnbcAmplitudeLogEvent() {\n window.cnbcAmplitudeLogEvent = function cnbcAmplitudeLogEvent(eventName, eventProperties) {\n if (!eventName) {\n return;\n }\n var fromEvent =\n eventProperties && typeof eventProperties === 'object' ? Object.assign({}, eventProperties) : {};\n // Explicit event props win over auto user context (same as old Core bridge).\n var props = Object.assign({}, buildCnbcMetaUserContextForAmplitude(), fromEvent);\n\n try {\n if (window.__amplitudeInitialized && window.amplitude && typeof window.amplitude.track === 'function') {\n syncAmplitudeUserIdWithMeta();\n window.amplitude.track(eventName, props);\n return;\n }\n } catch (err) {\n console.error('[Amplitude] track failed', eventName, err && err.message);\n }\n\n window[AMPLITUDE_QUEUE_GLOBAL_KEY] = window[AMPLITUDE_QUEUE_GLOBAL_KEY] || [];\n window[AMPLITUDE_QUEUE_GLOBAL_KEY].push({ eventName: eventName, eventProperties: props });\n };\n }\n\n // Install immediately so early callers (incl. video) can queue before SDK ready.\n installCnbcAmplitudeLogEvent();\n\n // ============================================================\n // HELPER: Flush Amplitude Event Queue\n // ============================================================\n function flushAmplitudeQueue(withDeviceId) {\n var pendingQueue = window[AMPLITUDE_QUEUE_GLOBAL_KEY];\n var prefix = 'Amplitude SDK 2:';\n\n console.log(prefix + ' pending queue length', pendingQueue ? pendingQueue.length : 0);\n\n if (!pendingQueue || pendingQueue.length === 0) {\n console.log(prefix + ' no queued events to drain');\n return;\n }\n\n var message = withDeviceId ? 'draining queue' : 'draining queue without device ID';\n console.log(prefix + ' ' + message, pendingQueue.length, 'events');\n\n syncAmplitudeUserIdWithMeta();\n while (pendingQueue.length > 0) {\n var queuedEvent = pendingQueue.shift();\n try {\n window.amplitude.track(queuedEvent.eventName, queuedEvent.eventProperties);\n if (withDeviceId) {\n console.log(prefix + ' flushed event', queuedEvent.eventName);\n }\n } catch (drainErr) {\n console.error(prefix + ' failed to flush event', drainErr && drainErr.message);\n break;\n }\n }\n\n if (withDeviceId) {\n console.log(prefix + ' queue drained successfully');\n }\n }\n\n // ============================================================\n // HELPER: Initialize Amplitude with Device ID Polling\n // ============================================================\n function initializeAmplitudeWithDeviceIdPolling(amplitudeApiKey) {\n var instanceName = (window.location.href.indexOf('https://www.cnbc.com/') === 0 || window.location.href === 'https://www.cnbc.com')\n ? 'web prod' : 'web dev';\n var meta = window.__CNBC_META_DATA;\n var uid = meta && meta.user && meta.user.userId;\n var initUserId = (uid != null && String(uid).length > 0) ? String(uid) : undefined;\n\n console.log('Amplitude SDK 2: initializing', instanceName);\n window.amplitude.init(amplitudeApiKey, initUserId, {\n instanceName: instanceName,\n autocapture: false,\n trackingOptions: { ipAddress: false }\n });\n\n // Re-install so callers always hit SDK 2 track (not any older bridge).\n installCnbcAmplitudeLogEvent();\n\n var deviceIdPollInterval = null;\n var deviceIdPollCount = 0;\n var MAX_DEVICE_ID_POLL_TICKS = 30; // 30 ticks * 100ms = 3 seconds max wait\n\n console.log('Amplitude SDK 2: starting device ID polling');\n\n function checkAndSetDeviceId() {\n deviceIdPollCount++;\n console.log('Amplitude SDK 2: polling for device ID (attempt ' + deviceIdPollCount + ')');\n\n var storedDeviceId = null;\n try {\n if (window.localStorage) {\n storedDeviceId = window.localStorage.getItem('cnbc_device_id');\n }\n } catch (e) {\n console.warn('Amplitude SDK 2: localStorage check failed', e && e.message);\n }\n\n if (storedDeviceId) {\n console.log('Amplitude SDK 2: device ID found in localStorage', storedDeviceId);\n\n if (window.amplitude && typeof window.amplitude.setDeviceId === 'function') {\n window.amplitude.setDeviceId(storedDeviceId);\n console.log('Amplitude SDK 2: device ID set in Amplitude', storedDeviceId);\n }\n\n if (deviceIdPollInterval) {\n clearInterval(deviceIdPollInterval);\n deviceIdPollInterval = null;\n console.log('Amplitude SDK 2: device ID polling stopped');\n }\n\n window.__amplitudeInitialized = true;\n console.log('Amplitude SDK 2: marked as initialized');\n flushAmplitudeQueue(true);\n\n } else if (deviceIdPollCount >= MAX_DEVICE_ID_POLL_TICKS) {\n console.warn('Amplitude SDK 2: device ID polling timeout after ' + deviceIdPollCount + ' attempts');\n\n if (deviceIdPollInterval) {\n clearInterval(deviceIdPollInterval);\n deviceIdPollInterval = null;\n }\n\n window.__amplitudeInitialized = true;\n console.log('Amplitude SDK 2: marked as initialized (timeout fallback)');\n flushAmplitudeQueue(false);\n\n } else {\n console.log('Amplitude SDK 2: device ID not yet available, continuing to poll...');\n }\n }\n\n checkAndSetDeviceId();\n\n if (!window.__amplitudeInitialized) {\n deviceIdPollInterval = setInterval(checkAndSetDeviceId, 100);\n console.log('Amplitude SDK 2: device ID polling interval started (100ms)');\n }\n }\n\n // ============================================================\n // HELPER: Load Amplitude SDK Script\n // ============================================================\n function loadAmplitudeSDK() {\n console.log('Amplitude SDK 2: loading script');\n\n var amplitudeApiKey = '';\n // STG hosts (stg-aws01pub.cnbc.com, stg-aws02pub.cnbc.com) use non-prod key path.\n var host = (document.location && document.location.host) || '';\n var isProduction = host === 'www.cnbc.com' || host === 'dealornodeal.cnbc.com';\n\n if (isProduction) {\n amplitudeApiKey = '62f692ae4fb5e969ec8d0521818bf2c0'; // TODO: confirm prod Analytics API key\n } else {\n amplitudeApiKey = '33b87566b4f3dc213f5770b7d695b018'; // TODO: confirm STG/dev Analytics API key\n }\n console.log('Amplitude SDK 2: environment', isProduction ? 'production' : 'development');\n\n var ampScript = document.createElement('script');\n ampScript.type = 'text/javascript';\n ampScript.async = true;\n ampScript.src = 'https://cdn.amplitude.com/script/' + amplitudeApiKey + '.js';\n\n ampScript.onload = function () {\n console.log('Amplitude SDK 2: script loaded');\n try {\n initializeAmplitudeWithDeviceIdPolling(amplitudeApiKey);\n } catch (err) {\n console.error('Amplitude SDK 2: init failed', err && err.message);\n }\n };\n\n ampScript.onerror = function () {\n console.warn('Amplitude SDK 2: script failed to load');\n };\n\n var s = document.getElementsByTagName('script')[0];\n if (s && s.parentNode) {\n s.parentNode.insertBefore(ampScript, s);\n } else {\n (document.head || document.body || document.documentElement).appendChild(ampScript);\n }\n }\n\n // ============================================================\n // MAIN: Load Amplitude SDK\n // ============================================================\n BI.wrapWithOneTrust({\n fn: function () {\n loadAmplitudeSDK();\n },\n featureName: 'Amplitude Integration',\n categories: [7],\n });\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RLecac223391724778bd487d9b5251431a",name:"DR - Action - Account Subscription",events:[{modulePath:"core/src/lib/events/domReady.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["cnbc.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"https://assets.adobedtm.com/77ca722dd820/bbaaa56c8833/95c1ebbd94f6/RC6eed9caa56c5493190ca754b24f6cf32-source.min.js",language:"javascript",isExternal:!0},timeout:2e3,delayNext:!0}]},{id:"RLee74c0f3eaf34e009a89cec49586cd64",name:"40 - Adobe MediaSDK [d:cnbc.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:40}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["cnbc.com"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!1,
source:'/**\n * MediaSDK for JavaScript version: 3.1.0 - 2025-01-06\n * Copyright 2020 Adobe, Inc. All Rights Reserved\n * \n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *\n * More info available at https://docs.adobe.com/content/help/en/media-analytics/using/media-overview.html\n */\n\n!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).ADB=t()}(this,(function(){"use strict";function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(t)}function t(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){for(var a=0;a0};function E(){return(new Date).getTime()}function M(e,t){if(window.console){var a;switch(e){case I.Log:a=window.console.log;break;case I.Info:a=window.console.info;break;case I.Warn:a=window.console.warn;break;case I.Error:a=window.console.error}if(a)a("MediaSDK: ["+function(){var e=new Date,t=function(e){return e<10?"00"+e:e<100?"0"+e:""+e}(e.getMilliseconds());return e.toTimeString()+"."+t}()+"] "+t)}}var w=function(t){return!P(t)&&!Array.isArray(t)&&"object"===e(t)};function T(e,t){return setInterval(e,t)}var O=!1;function R(e){var t=e.debugLogging;A(t)&&(O=t)}function B(e,t,a){(O||e===I.Error)&&M(e,t+" "+a)}function z(e){var t=C(e)?"["+e+"]":"";return{log:function(e){!function(e,t){B(I.Log,e,t)}(t,e)},info:function(e){!function(e,t){B(I.Info,e,t)}(t,e)},warn:function(e){!function(e,t){B(I.Warn,e,t)}(t,e)},error:function(e){!function(e,t){B(I.Error,e,t)}(t,e)}}}var j=Object.freeze({AnalyticsTrackingServer:"analyticstrackingserver",AnalyticsSsl:"analyticsssl",Rsid:"rsid",Vid:"vid",Aid:"aid",Mcid:"mid",McOrgId:"orgid",AamLocHint:"aamlochint",CustomerIds:"customerids",MediaTrackingServer:"mediatrackingserver",MediaChannel:"mediachannel",MediaPlayerName:"mediaplayername",MediaAppVersion:"mediaappversion",MediaSsl:"mediassl"}),D=Object.freeze({Get:"GET",Post:"POST"}),V=Object.freeze({SessionStart:"sessionStart",SessionComplete:"sessionComplete",SessionEnd:"sessionEnd",AdBreakStart:"adBreakStart",AdBreakComplete:"adBreakComplete",AdStart:"adStart",AdComplete:"adComplete",AdSkip:"adSkip",ChapterStart:"chapterStart",ChapterComplete:"chapterComplete",ChapterSkip:"chapterSkip",Play:"play",Ping:"ping",BufferStart:"bufferStart",PauseStart:"pauseStart",BitrateChange:"bitrateChange",Error:"error",StateStart:"stateStart",StateEnd:"stateEnd"}),N=Object.freeze({Show:"media.show",Season:"media.season",Episode:"media.episode",AssetId:"media.assetId",Genre:"media.genre",FirstAirDate:"media.firstAirDate",FirstDigitalDate:"media.firstDigitalDate",Rating:"media.rating",Originator:"media.originator",Network:"media.network",ShowType:"media.showType",AdLoad:"media.adLoad",MVPD:"media.pass.mvpd",Auth:"media.pass.auth",DayPart:"media.dayPart",Feed:"media.feed",StreamFormat:"media.streamFormat",Artist:"media.artist",Album:"media.album",Label:"media.label",Author:"media.author",Station:"media.station",Publisher:"media.publisher"}),q=Object.freeze({Advertiser:"media.ad.advertiser",CampaignId:"media.ad.campaignId",CreativeId:"media.ad.creativeId",SiteId:"media.ad.siteId",CreativeUrl:"media.ad.creativeURL",PlacementId:"media.ad.placementId"}),x=Object.freeze({Id:"media.id",Name:"media.name",Length:"media.length",ContentType:"media.contentType",StreamType:"media.streamType",PlayerName:"media.playerName",Resume:"media.resume",Channel:"media.channel",Publisher:"media.publisher",SdkVersion:"media.sdkVersion"}),F=Object.freeze({AppInstallationId:"appInstallationId",AnalyticsTrackingServer:"analytics.trackingServer",AnalyticsRsid:"analytics.reportSuite",AnalyticsSsl:"analytics.enableSSL",AnalyticsVisitorId:"analytics.visitorId",AnalyticsAid:"analytics.aid",VisitorMcOrgId:"visitor.marketingCloudOrgId",VisitorMcuserId:"visitor.marketingCloudUserId",VisitorAamLocHint:"visitor.aamLocationHint",VisitorCustomerIds:"visitor.customerIDs",VisitorCustomerKeyId:"id",VisitorCustomerKeyAuthState:"authState",MediaVersion:"media.libraryVersion"}),L=Object.freeze({Channel:"media.channel",PlayerName:"media.playerName"}),G=Object.freeze({PodFriendlyName:"media.ad.podFriendlyName",PodIndex:"media.ad.podIndex",PodSecond:"media.ad.podSecond"}),H=Object.freeze({Name:"media.ad.name",Id:"media.ad.id",Length:"media.ad.length",PodPosition:"media.ad.podPosition",PlayerName:"media.ad.playerName"}),Q=Object.freeze({FriendlyName:"media.chapter.friendlyName",Length:"media.chapter.length",Offset:"media.chapter.offset",Index:"media.chapter.index"}),U=Object.freeze({StateName:"media.state.name"}),K=Object.freeze({Bitrate:"media.qoe.bitrate",DroppedFrames:"media.qoe.droppedFrames",Fps:"media.qoe.framesPerSecond",StartupTime:"media.qoe.timeToStart",ErrorId:"media.qoe.errorID",ErrorSource:"media.qoe.errorSource",ErrorSourcePlayer:"player",ErrorSourceExternal:"external"}),W=Object.freeze({EventType:"eventType",Params:"params",QoE:"qoeData",CustomMetadata:"customMetadata",PlayerTime:"playerTime"}),Z=Object.freeze({Playhead:"playhead",Ts:"ts"}),$=function(e){return 0===Object.keys(e).length},J=function(e){return"number"==typeof e&&!isNaN(e)},X=function(e){var t=parseInt(e,10);return J(t)&&e===t},Y=function(e){return"function"==typeof e},ee=function(e,t){if(!Y(e))return t;try{return e()}catch(e){return t}};function te(e){var t={};return w(e)&&Object.keys(e).forEach((function(a){var i=e[a],r=i.id,n=i.authState,s=void 0===n?0:n;C(r)&&(t[a]={id:r,authState:s})})),t}function ae(e){var t,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=r({},W.EventType,e.eventType);i[W.PlayerTime]=(r(t={},Z.Playhead,e.playhead),r(t,Z.Ts,e.ts),t),$(e.customMetadata)||(i[W.CustomMetadata]=e.customMetadata),$(e.qoeData)||(i[W.QoE]=e.qoeData);var n=s({},e.params);if(e.eventType===V.SessionStart){C(a[j.AnalyticsTrackingServer])&&(n[F.AnalyticsTrackingServer]=a[j.AnalyticsTrackingServer]),C(a[j.Rsid])&&(n[F.AnalyticsRsid]=a[j.Rsid]),A(a[j.AnalyticsSsl])&&(n[F.AnalyticsSsl]=a[j.AnalyticsSsl]),C(a[j.Vid])&&(n[F.AnalyticsVisitorId]=a[j.Vid]),C(a[j.Aid])&&(n[F.AnalyticsAid]=a[j.Aid]),C(a[j.McOrgId])&&(n[F.VisitorMcOrgId]=a[j.McOrgId]),C(a[j.Mcid])&&(n[F.VisitorMcuserId]=a[j.Mcid]),X(a[j.AamLocHint])&&(n[F.VisitorAamLocHint]=a[j.AamLocHint]);var o=te(a[j.CustomerIds]);if(w(o)&&!$(o)&&(n[F.VisitorCustomerIds]=o),!C(n[x.Channel])){var d=a[j.MediaChannel];n[x.Channel]=C(d)?d:"unknown"}if(!C(n[x.PlayerName])){var c=a[j.MediaPlayerName];n[x.PlayerName]=C(c)?c:"unknown"}C(a[j.MediaAppVersion])&&(n[x.SdkVersion]=a[j.MediaAppVersion]),n[F.MediaVersion]="js-3.1.0"}else if(e.eventType===V.AdStart){var u=a[j.MediaPlayerName];n[H.PlayerName]=C(u)?u:"unknown"}$(n)||(i[W.Params]=n);var l=ee((function(){return JSON.stringify(i)}),"");return l}function ie(e){try{var t=e.split("/");return t[4]?t[4]:""}catch(e){return""}}var re=[j.AnalyticsTrackingServer,j.AnalyticsSsl,j.Rsid,j.Vid,j.Aid,j.Mcid,j.McOrgId,j.AamLocHint,j.CustomerIds,j.MediaChannel,j.MediaAppVersion,j.MediaPlayerName,j.MediaTrackingServer,j.MediaSsl],ne={"Content-Type":"application/json"},se=function(){function e(a){t(this,e),this._logger=z("MediaSession("+a+")"),this._hits=[],this._ecParams=null,this._sessionId=null,this._creatingMCSession=!1,this._createSessionFailureCount=0,this._internalError=!1,this._doneQueuing=!1}return i(e,[{key:"queue",value:function(e){this._internalError||this._doneQueuing||this._hits.push(e)}},{key:"process",value:function(e){this._internalError||0!==this._hits.length&&e.isReady()&&(this._ecParams||(this._ecParams=e.resolveKeys(re)),P(this._sessionId)?this._startMCSession():this._flushPendingHits())}},{key:"end",value:function(){this._logger.log("end"),this._doneQueuing=!0}},{key:"abort",value:function(){this._logger.log("abort"),this._doneQueuing=!0,this._hits=[]}},{key:"doneProcessing",value:function(){return this._internalError||this._doneQueuing&&0===this._hits.length}},{key:"_startMCSession",value:function(){var e=this;if(!this._creatingMCSession){var t=this._hits[0];if(t.eventType!==V.SessionStart)return this._logger.log("Dropping hit("+t.eventType+") as we expected sessionStart"),void this._hits.shift();var a,i=((a=this._ecParams)[j.MediaSsl]?"https":"http")+"://"+a[j.MediaTrackingServer]+"/api/v1/sessions",r=ae(t,this._ecParams);this._creatingMCSession=!0,this._sendRequest(i,D.Post,ne,r,(function(t,a){var i,r=!1;do{if(201!==t)break;var n=a.location;if(!C(n))break;if(!(i=ie(n)))break;r=!0}while(0);r?(e._logger.log("Media collection session created with session id : "+i),e._sessionId=i,e._hits.shift()):(e._logger.log("Creating Media collection session failed"),e._createSessionFailureCount+=1,e._createSessionFailureCount>=3&&(e._logger.log("Internal error: Creating Media collection session failed 3 times"),e._internalError=!0)),e._creatingMCSession=!1}))}}},{key:"_flushPendingHits",value:function(){var e=this;this._hits.splice(0,3).forEach((function(t){var a,i,r=(a=e._ecParams,i=e._sessionId,(a[j.MediaSsl]?"https":"http")+"://"+a[j.MediaTrackingServer]+"/api/v1/sessions/"+i+"/events"),n=ae(t,e._ecParams);e._sendRequest(r,D.Post,ne,n,(function(){}))}))}},{key:"_sendRequest",value:function(e,t,a,i,r){!function(e,t,a,i,r){if(void 0!==window.XMLHttpRequest){var n=new window.XMLHttpRequest;if("withCredentials"in n){var s=n;return s.open(t,e,!0),w(a)&&Object.keys(a).forEach((function(e){s.setRequestHeader(e,a[e])})),s.timeout=5e3,s.onload=function(){var e=s.status&&parseInt(s.status,10),t=s.responseText,a=function(e){var t={};try{e.trim().split(/[\\r\\n]+/).forEach((function(e){var a=e.split(":",1)[0],i=e.substring(a.length+2);a.length>0&&(t[a.toLowerCase()]=i)}))}catch(e){}return t}(s.getAllResponseHeaders());r(e,a,t)},s.onerror=function(){r(0)},void s.send(i)}r(0)}}(e,t,a,i,r)}}]),e}(),oe=function(){function e(){t(this,e),this._logger=z("MediaProcessor"),this._isConfigured=!1,this._privacyStatus=S.OptUnknown,this._sessionIdGenerator=l(),this._sessionMap={}}return i(e,[{key:"configure",value:function(e){var t=this;this._isConfigured||(this._ecResolver=e,this._privacyStatus=this._ecResolver.getPrivacyStatus(),this._ecResolver.notifyPrivacyChange(this._onPrivacyChange.bind(this)),this._isConfigured=!0,this._processSessionTimer=T((function(){t._tick()}),500),this._logger.log("Configured with resolver"))}},{key:"startSession",value:function(){if(this._privacyStatus===S.OptOut)return this._logger.log("Privacy is opted out. Not starting a session"),-1;var t=this._sessionIdGenerator.getUniqueId();return this._sessionMap[t]=e._createMediaSession(t),t}},{key:"processHit",value:function(e,t){if(-1!==e){var a=this._sessionMap[e];P(a)||(this._logger.log("Process hit for session("+e+") => "+t),a.queue(t))}}},{key:"endSession",value:function(e){if(-1!==e){var t=this._sessionMap[e];P(t)||t.end()}}},{key:"_tick",value:function(){var e=this;Object.keys(this._sessionMap).forEach((function(t){var a=e._sessionMap[t];a.process(e._ecResolver),a.doneProcessing()&&(e._logger.log("Removing session "+t+" from store as it has finished processing"),delete e._sessionMap[t])}))}},{key:"_onPrivacyChange",value:function(e){var t=this;this._logger.log("Privacy switched to "+e),this._privacyStatus=e,e===S.OptOut&&(this._logger.log("Aborting all active sessions"),Object.keys(this._sessionMap).forEach((function(e){t._sessionMap[e].abort()})))}}],[{key:"_createMediaSession",value:function(e){return new se(e)}}]),e}(),de=function(){function e(a){var i=a.id,r=a.name,n=a.position,s=a.length;if(t(this,e),!C(i))throw new TypeError("id is not a valid string");if(!C(r))throw new TypeError("name is not a valid string");if(!X(n)||n<1)throw new TypeError("position should be a valid integer greater than zero");if(!J(s)||s<0)throw new TypeError("length cannot be less than zero");this.id=i,this.name=r,this.position=n,this.length=s}return i(e,[{key:"equal",value:function(t){return!P(t)&&t instanceof e&&(this.id===t.id&&this.name===t.name&&this.position===t.position&&this.length===t.length)}},{key:"serialize",value:function(){var e;return r(e={},"ad.id",this.id),r(e,"ad.name",this.name),r(e,"ad.position",this.position),r(e,"ad.length",this.length),e}}],[{key:"deserialize",value:function(t){return w(t)?ee((function(){return new e({id:t["ad.id"],name:t["ad.name"],position:t["ad.position"],length:t["ad.length"]})}),null):null}}]),e}(),ce=function(){function e(a){var i=a.name,r=a.position,n=a.startTime;if(t(this,e),!C(i))throw new TypeError("name is not a valid string");if(!X(r)||r<1)throw new TypeError("position should be a valid integer greater than zero");if(!J(n)||n<0)throw new TypeError("startTime cannot be less than zero");this.name=i,this.position=r,this.startTime=n}return i(e,[{key:"equal",value:function(t){return!P(t)&&t instanceof e&&(this.name===t.name&&this.position===t.position&&this.startTime===t.startTime)}},{key:"serialize",value:function(){var e;return r(e={},"adbreak.name",this.name),r(e,"adbreak.position",this.position),r(e,"adbreak.starttime",this.startTime),e}}],[{key:"deserialize",value:function(t){return w(t)?ee((function(){return new e({name:t["adbreak.name"],position:t["adbreak.position"],startTime:t["adbreak.starttime"]})}),null):null}}]),e}(),ue=function(){function e(a){var i=a.name,r=a.position,n=a.startTime,s=a.length;if(t(this,e),!C(i))throw new TypeError("name is not a valid string");if(!X(r)||r<1)throw new TypeError("position should be a valid integer greater than zero");if(!J(n)||n<0)throw new TypeError("startTime cannot be less than zero");if(!J(s)||s<0)throw new TypeError("length cannot be less than zero");this.name=i,this.position=r,this.startTime=n,this.length=s}return i(e,[{key:"equal",value:function(t){return!P(t)&&t instanceof e&&(this.name===t.name&&this.position===t.position&&this.startTime===t.startTime&&this.length===t.length)}},{key:"serialize",value:function(){var e;return r(e={},"chapter.name",this.name),r(e,"chapter.position",this.position),r(e,"chapter.starttime",this.startTime),r(e,"chapter.length",this.length),e}}],[{key:"deserialize",value:function(t){return w(t)?ee((function(){return new e({name:t["chapter.name"],position:t["chapter.position"],startTime:t["chapter.starttime"],length:t["chapter.length"]})}),null):null}}]),e}(),le=new RegExp("^[a-zA-Z0-9_\\\\.]{1,64}$"),he=function(){function e(a){var i=a.name;if(t(this,e),!C(i))throw new TypeError("name is not a valid string");if(!le.test(i))throw new TypeError("name should match \'^[a-zA-Z0-9_\\\\.]{1,64}$\' pattern");this.name=i}return i(e,[{key:"equal",value:function(t){return!P(t)&&t instanceof e&&this.name===t.name}},{key:"serialize",value:function(){return r({},"customstate.name",this.name)}}],[{key:"deserialize",value:function(t){return w(t)?ee((function(){return new e({name:t["customstate.name"]})}),null):null}}]),e}(),fe=function(){function e(a){var i=a.id,r=a.name,n=a.streamType,s=a.mediaType,o=a.length,d=a.resumed,c=a.prerollWaitTime,u=a.granularAdTracking;if(t(this,e),!C(i))throw new TypeError("id is not a valid string");if(!C(r))throw new TypeError("name is not a valid string");if(!C(n))throw new TypeError("streamType is not a valid string");if(!J(o)||o<0)throw new TypeError("length cannot be less than zero");this.id=i,this.name=r,this.streamType=n,this.mediaType=s!==p.Audio?p.Video:s,this.length=o,this.resumed=!!A(d)&&d,this.prerollWaitTime=!X(c)||c<0?250:c,this.granularAdTracking=!!A(u)&&u}return i(e,[{key:"equal",value:function(t){return!P(t)&&t instanceof e&&(this.id===t.id&&this.name===t.name&&this.streamType===t.streamType&&this.mediaType===t.mediaType&&this.length===t.length&&this.resumed===t.resumed&&this.prerollWaitTime===t.prerollWaitTime&&this.granularAdTracking===t.granularAdTracking)}},{key:"serialize",value:function(){var e;return r(e={},"media.id",this.id),r(e,"media.name",this.name),r(e,"media.streamtype",this.streamType),r(e,"media.type",this.mediaType),r(e,"media.length",this.length),r(e,"media.resumed",this.resumed),r(e,"media.prerollwaittime",this.prerollWaitTime),r(e,"media.granularadtracking",this.granularAdTracking),e}}],[{key:"deserialize",value:function(t){return w(t)?ee((function(){return new e({id:t["media.id"],name:t["media.name"],streamType:t["media.streamtype"],mediaType:t["media.type"],length:t["media.length"],resumed:t["media.resumed"],prerollWaitTime:t["media.prerollwaittime"],granularAdTracking:t["media.granularadtracking"]})}),null):null}}]),e}(),pe=function(){function e(a){var i=a.bitrate,r=a.droppedFrames,n=a.fps,s=a.startupTime;if(t(this,e),!J(i)||i<0)throw new TypeError("bitrate must not be less than zero");if(!J(r)||r<0)throw new TypeError("dropped frames must not be less than zero");if(!J(n)||n<0)throw new TypeError("fps must not be less than zero");if(!J(s)||s<0)throw new TypeError("startupTime must not be less than zero");this.bitrate=i,this.droppedFrames=r,this.fps=n,this.startupTime=s}return i(e,[{key:"equal",value:function(t){return!P(t)&&t instanceof e&&(this.bitrate===t.bitrate&&this.droppedFrames===t.droppedFrames&&this.fps===t.fps&&this.startupTime===t.startupTime)}},{key:"serialize",value:function(){var e;return r(e={},"qoe.bitrate",this.bitrate),r(e,"qoe.droppedframes",this.droppedFrames),r(e,"qoe.fps",this.fps),r(e,"qoe.startuptime",this.startupTime),e}}],[{key:"deserialize",value:function(t){return w(t)?ee((function(){return new e({bitrate:t["qoe.bitrate"],droppedFrames:t["qoe.droppedframes"],fps:t["qoe.fps"],startupTime:t["qoe.startuptime"]})}),null):null}}]),e}(),me=z("Media");var _e=function(e){try{return JSON.stringify(e,null,4)}catch(e){return"[Error formatting object]"}},ve=Object.freeze({Name:"event.name",Params:"event.params",Metadata:"event.metadata",TimeStamp:"event.ts",InternalEvent:"event.internal",Playhead:"event.playhead",ErrorId:"error.id"}),ke=Object.freeze(s({SessionStart:"sessionStart",SessionEnd:"sessionEnd",SessionComplete:"sessionComplete",Play:"play",Pause:"pause",Error:"error",QoEUpdate:"qoeUpdate",PlayheadUpdate:"playheadUpdate"},h)),ye=function(){function e(a,i){if(t(this,e),P(a))throw new Error("id is not valid");this.id=a,this.description=i,this.predicates=[],this.actions=[]}return i(e,[{key:"addPredicate",value:function(e,t,a){if(!Y(e))throw new Error("predicate is not a function");return this.predicates.push({predicate:e,val:t,message:a}),this}},{key:"addAction",value:function(e){if(!Y(e))throw new Error("action is not a function");return this.actions.push(e),this}},{key:"runPredicates",value:function(e){for(var t=0;t=this._interval&&(this._generateHit(V.Ping),this._previousStateTs=this._refTs)}}},{key:"_processMediaStart",value:function(t){var a={};a=e._extractMediaParams(this._media),t&&(a[x.Resume]=!0);var i=this._config[L.Channel];C(i)&&(a[L.Channel]=i);var r=this._config[L.PlayerName];C(r)&&(a[L.PlayerName]=r);var n=e._extractMediaMetadata(this._media);this._generateHit(V.SessionStart,a,n)}},{key:"_generateHit",value:function(t){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,n=r;if(P(n)){var s=this._media.qoeInfo,o=!(P(s)||!P(this._lastQoeInfo)&&this._lastQoeInfo.equal(s));o&&(n=e._extractQoeData(this._media),this._lastQoeInfo=s)}if(this._isTracking){var d=this._media.playhead,c=this._refTs,u=new Ie({eventType:t,params:a,customMetadata:i,qoeData:n,playhead:d,ts:c});this._hitProcessor.processHit(this._sessionId,u)}else this._logger.log("#_generateHit - Dropping hit as we have internally stopped tracking the session")}},{key:"_getPlaybackState",value:function(){return this._media.isInPlaybackState(Se.Buffer)?Se.Buffer:this._media.isInPlaybackState(Se.Seek)?Se.Seek:this._media.isInPlaybackState(Se.Play)?Se.Play:this._media.isInPlaybackState(Se.Pause)?Se.Pause:this._media.isInPlaybackState(Se.Stall)?Se.Stall:Se.Init}},{key:"_startSession",value:function(){this._sessionId=this._hitProcessor.startSession(),this._isTracking=!0,this._logger.log("Start internal session("+this._sessionId+")")}},{key:"_endSession",value:function(){this._hitProcessor.endSession(this._sessionId),this._isTracking=!1,this._logger.log("End internal session("+this._sessionId+")")}}],[{key:"_isGranularAdTrackingEnabled",value:function(e){var t=e.mediaInfo;return!P(t)&&t.granularAdTracking}},{key:"_extractMediaParams",value:function(t){var a={},i=t.mediaInfo;P(i)||(a[x.Id]=i.id,a[x.Name]=i.name,a[x.Length]=i.length,a[x.ContentType]=i.streamType,a[x.StreamType]=i.mediaType,a[x.Resume]=i.resumed);var r=t.mediaMetadata;return w(r)&&Object.keys(r).forEach((function(t){if(e._standardMediaMetadataMap.has(t)){var i=e._standardMediaMetadataMap.get(t);a[i]=r[t]}})),a}},{key:"_extractMediaMetadata",value:function(t){var a={},i=t.mediaMetadata;return w(i)&&Object.keys(i).forEach((function(t){e._standardMediaMetadataMap.has(t)||(a[t]=i[t])})),a}},{key:"_extractAdBreakParams",value:function(e){var t={},a=e.adBreakInfo;return P(a)||(t[G.PodFriendlyName]=a.name,t[G.PodIndex]=a.position,t[G.PodSecond]=a.startTime),t}},{key:"_extractAdParams",value:function(t){var a={},i=t.adInfo;P(i)||(a[H.Name]=i.name,a[H.Id]=i.id,a[H.Length]=i.length,a[H.PodPosition]=i.position);var r=t.adMetadata;return w(r)&&Object.keys(r).forEach((function(t){if(e._standardAdMetadataMap.has(t)){var i=e._standardAdMetadataMap.get(t);a[i]=r[t]}})),a}},{key:"_extractAdMetadata",value:function(t){var a={},i=t.adMetadata;return w(i)&&Object.keys(i).forEach((function(t){e._standardAdMetadataMap.has(t)||(a[t]=i[t])})),a}},{key:"_extractChapterParams",value:function(e){var t={},a=e.chapterInfo;return P(a)||(t[Q.FriendlyName]=a.name,t[Q.Index]=a.position,t[Q.Length]=a.length,t[Q.Offset]=a.startTime),t}},{key:"_extractChapterMetadata",value:function(e){var t={},a=e.chapterMetadata;return w(a)&&Object.keys(a).forEach((function(e){t[e]=a[e]})),t}},{key:"_extractQoeData",value:function(e){var t={},a=e.qoeInfo;return w(a)&&(t[K.Bitrate]=parseInt(a.bitrate,10),t[K.Fps]=parseInt(a.fps,10),t[K.DroppedFrames]=parseInt(a.droppedFrames,10),t[K.StartupTime]=parseInt(a.startupTime,10)),t}},{key:"_playbackStateToMediaCollectionEvent",value:function(e){switch(e){case Se.Buffer:return V.BufferStart;case Se.Seek:return V.PauseStart;case Se.Play:return V.Play;case Se.Pause:return V.PauseStart;case Se.Stall:return V.Play;case Se.Init:return V.Ping;default:return""}}}]),e}(),be=new Map;be.set(_.Show,N.Show),be.set(_.Season,N.Season),be.set(_.Episode,N.Episode),be.set(_.AssetId,N.AssetId),be.set(_.Genre,N.Genre),be.set(_.FirstAirDate,N.FirstAirDate),be.set(_.FirstDigitalDate,N.FirstDigitalDate),be.set(_.Rating,N.Rating),be.set(_.Originator,N.Originator),be.set(_.Network,N.Network),be.set(_.ShowType,N.ShowType),be.set(_.AdLoad,N.AdLoad),be.set(_.MVPD,N.MVPD),be.set(_.Authorized,N.Auth),be.set(_.DayPart,N.DayPart),be.set(_.Feed,N.Feed),be.set(_.StreamFormat,N.StreamFormat),be.set(v.Artist,N.Artist),be.set(v.Album,N.Album),be.set(v.Label,N.Label),be.set(v.Author,N.Author),be.set(v.Station,N.Station),be.set(v.Publisher,N.Publisher),Ae._standardMediaMetadataMap=be;var Ce=new Map;Ce.set(k.Advertiser,q.Advertiser),Ce.set(k.CampaignId,q.CampaignId),Ce.set(k.CreativeId,q.CreativeId),Ce.set(k.PlacementId,q.PlacementId),Ce.set(k.SiteId,q.SiteId),Ce.set(k.CreativeUrl,q.CreativeUrl),Ae._standardAdMetadataMap=Ce;var Ee="Media tracker is not in active tracking session, call \'API:trackSessionStart\' to begin a new tracking session.",Me="Media tracker is in active tracking session, call \'API:trackSessionEnd\' or \'API:trackComplete\' to end current tracking session.",we="Media tracker is tracking buffer events, call \'API:trackEvent(BufferComplete)\' first to stop tracking buffer events.",Te="Media tracker is not tracking buffer events, call \'API:trackEvent(BufferStart)\' before \'API:trackEvent(BufferComplete)\'.",Oe="Media tracker is tracking seek events, call \'API:trackEvent(SeekComplete)\' first to stop tracking seek events.",Re="Media tracker is not tracking seek events, call \'API:trackEvent(SeekStart)\' before \'API:trackEvent(SeekComplete)\'.",Be="Media tracker is not tracking any AdBreak, call \'API:trackEvent(AdBreakStart)\' to begin tracking AdBreak",ze="Media tracker is not tracking any Ad, call \'API:trackEvent(AdStart)\' to begin tracking Ad",je="Media tracker is not tracking any Chapter, call \'API:trackEvent(ChapterStart)\' to begin tracking Chapter",De="MediaInfo passed into \'API:trackSessionStart\' is invalid.",Ve="AdBreakInfo passed into \'API:trackEvent(AdBreakStart)\' is invalid.",Ne="Media tracker is currently tracking the AdBreak passed into \'API:trackEvent(AdBreakStart)\'.",qe="AdInfo passed into \'API:trackEvent(AdStart)\' is invalid.",xe="StateInfo passed into \'API:trackEvent(StateStart|StateEnd)\' is invalid.",Fe="ErrorId passed into \'API:trackError()\' is invalid.",Le="Media tracker is currently tracking the Ad passed into \'API:trackEvent(AdStart)\'.",Ge="ChapterInfo passed into \'API:trackEvent(ChapterStart)\' is invalid.",He="Media tracker is currently tracking the Chapter passed into \'API:trackEvent(ChapterStart)\'.",Qe="QoEInfo passed into \'API:updateQoEInfo\' is invalid.",Ue="Media tracker is tracking an AdBreak but not tracking any Ad and will drop any calls to track player state (Play, Pause, Buffer or Seek) in this state.",Ke="Media tracker is already tracking a state with the same state name.",We="Media tracker is not already tracking a state with the same state name.",Ze="Media tracker has reached maximum number of states per session (10).",$e=new RegExp("^[a-zA-Z0-9_\\\\.]+$"),Je=function(){function e(a,i,r){if(t(this,e),!a)throw new Error("hitProcessor should be valid");if(!i)throw new Error("logger should be valid");this._hitProcessor=a,this._logger=i,this._config=w(r)?r:{},this._resetStates(),this._setupRules()}return i(e,[{key:"track",value:function(e){var t=e[ve.Name];return C(t)?X(e[ve.TimeStamp])?(w(e[ve.Params])||(e[ve.Params]={}),e[ve.Metadata]=this._cleanMetadata(e[ve.Metadata]),!!this._prerollDeferRule(t,e)||this._processRule(t,e)):(this._logger.log("#track - Event timestamp is missing in track event data. - "+t),!1):(this._logger.log("#track - Event name is missing in track event data"),!1)}},{key:"_resetStates",value:function(){this._media=null,this._hitGenerator=null,this._sessionRefTs=null,this._inPrerollInterval=!1,this._prerollRefTs=null,this._prerollQueuedRules=[],this._contentStarted=!1,this._contentStartRefTs=null,this._mediaIdle=!1,this._trackerIdle=!1,this._mediaIdleStartTs=0}},{key:"_createHitGenerator",value:function(e){return new Ae(this._logger,this._hitProcessor,this._config,this._media,e)}},{key:"_processRule",value:function(e,t){return this._ruleEngine.processRule(e,t).success}},{key:"_setupRules",value:function(){this._ruleEngine=new ge(this._logger),this._ruleEngine.setEnterAction(this._cmdEnterAction.bind(this)),this._ruleEngine.setExitAction(this._cmdExitAction.bind(this));var e=this._isInMedia.bind(this),t=this._isInAdBreak.bind(this),a=this._isInAd.bind(this),i=this._isInChapter.bind(this),r=this._isInTrackedState.bind(this),n=this._isValidMediaInfo.bind(this),s=this._isValidAdBreakInfo.bind(this),o=this._isValidAdInfo.bind(this),d=this._isValidChapterInfo.bind(this),c=this._isValidQoEInfo.bind(this),u=this._isValidStateInfo.bind(this),l=this._isValidErrorInfo.bind(this),h=this._isDifferentAdBreakInfo.bind(this),f=this._isDifferentAdInfo.bind(this),p=this._isDifferentChapterInfo.bind(this),m=this._allowPlayerStateChange.bind(this),_=this._allowStateTrack.bind(this),v=this._isInBuffering.bind(this),k=this._isInSeeking.bind(this),y=this._cmdMediaStart.bind(this),g=this._cmdMediaSkip.bind(this),S=this._cmdMediaComplete.bind(this),P=this._cmdError.bind(this),I=this._cmdPlay.bind(this),A=this._cmdPause.bind(this),b=this._cmdBufferStart.bind(this),C=this._cmdBufferComplete.bind(this),E=this._cmdSeekStart.bind(this),M=this._cmdSeekComplete.bind(this),w=this._cmdAdStart.bind(this),T=this._cmdAdComplete.bind(this),O=this._cmdAdSkip.bind(this),R=this._cmdAdBreakStart.bind(this),B=this._cmdAdBreakComplete.bind(this),z=this._cmdAdBreakSkip.bind(this),j=this._cmdChapterStart.bind(this),D=this._cmdChapterComplete.bind(this),V=this._cmdChapterSkip.bind(this),N=this._cmdStateStart.bind(this),q=this._cmdStateEnd.bind(this),x=this._cmdBitrateChange.bind(this),F=this._cmdQoEUpdate.bind(this),L=this._cmdPlayheadUpdate.bind(this),G=new ye(ke.SessionStart,"API:trackSessionStart");G.addPredicate(e,!1,Me).addPredicate(n,!0,De).addAction(y),this._ruleEngine.addRule(G);var H=new ye(ke.SessionComplete,"API:trackComplete");H.addPredicate(e,!0,Ee).addAction(O).addAction(z).addAction(V).addAction(S),this._ruleEngine.addRule(H);var Q=new ye(ke.SessionEnd,"API:trackSessionEnd");Q.addPredicate(e,!0,Ee).addAction(O).addAction(z).addAction(V).addAction(g),this._ruleEngine.addRule(Q);var U=new ye(ke.Error,"API:trackError");U.addPredicate(e,!0,Ee).addPredicate(l,!0,Fe).addAction(P),this._ruleEngine.addRule(U);var K=new ye(ke.Play,"API:trackPlay");K.addPredicate(e,!0,Ee).addPredicate(m,!0,Ue).addAction(M).addAction(C).addAction(I),this._ruleEngine.addRule(K);var W=new ye(ke.Pause,"API:trackPause");W.addPredicate(e,!0,Ee).addPredicate(m,!0,Ue).addPredicate(v,!1,we).addPredicate(k,!1,Oe).addAction(A),this._ruleEngine.addRule(W);var Z=new ye(ke.BufferStart,"API:trackEvent(BufferStart)");Z.addPredicate(e,!0,Ee).addPredicate(m,!0,Ue).addPredicate(v,!1,we).addPredicate(k,!1,Oe).addAction(b),this._ruleEngine.addRule(Z);var $=new ye(ke.BufferComplete,"API:trackEvent(BufferComplete)");$.addPredicate(e,!0,Ee).addPredicate(m,!0,Ue).addPredicate(v,!0,Te).addAction(C),this._ruleEngine.addRule($);var J=new ye(ke.SeekStart,"API:trackEvent(SeekStart)");J.addPredicate(e,!0,Ee).addPredicate(m,!0,Ue).addPredicate(k,!1,Oe).addPredicate(v,!1,we).addAction(E),this._ruleEngine.addRule(J);var X=new ye(ke.SeekComplete,"API:trackEvent(SeekComplete)");X.addPredicate(e,!0,Ee).addPredicate(m,!0,Ue).addPredicate(k,!0,Re).addAction(M),this._ruleEngine.addRule(X);var Y=new ye(ke.AdBreakStart,"API:trackEvent(AdBreakStart)");Y.addPredicate(e,!0,Ee).addPredicate(s,!0,Ve).addPredicate(h,!0,Ne).addAction(O).addAction(z).addAction(R),this._ruleEngine.addRule(Y);var ee=new ye(ke.AdBreakComplete,"API:trackEvent(AdBreakComplete)");ee.addPredicate(e,!0,Ee).addPredicate(t,!0,Be).addAction(O).addAction(B),this._ruleEngine.addRule(ee);var te=new ye(ke.AdStart,"API:trackEvent(AdStart)");te.addPredicate(e,!0,Ee).addPredicate(t,!0,Be).addPredicate(o,!0,qe).addPredicate(f,!0,Le).addAction(O).addAction(w),this._ruleEngine.addRule(te);var ae=new ye(ke.AdComplete,"API:trackEvent(AdComplete)");ae.addPredicate(e,!0,Ee).addPredicate(t,!0,Be).addPredicate(a,!0,ze).addAction(T),this._ruleEngine.addRule(ae);var ie=new ye(ke.AdSkip,"API:trackEvent(AdSkip)");ie.addPredicate(e,!0,Ee).addPredicate(t,!0,Be).addPredicate(a,!0,ze).addAction(O),this._ruleEngine.addRule(ie);var re=new ye(ke.ChapterStart,"API::trackEvent(chapterStart)");re.addPredicate(e,!0,Ee).addPredicate(d,!0,Ge).addPredicate(p,!0,He).addAction(V).addAction(j),this._ruleEngine.addRule(re);var ne=new ye(ke.ChapterComplete,"API::trackEvent(chapterComplete)");ne.addPredicate(e,!0,Ee).addPredicate(i,!0,je).addAction(D),this._ruleEngine.addRule(ne);var se=new ye(ke.ChapterSkip,"API:trackEvent(chapterSkip)");se.addPredicate(e,!0,Ee).addPredicate(i,!0,je).addAction(V),this._ruleEngine.addRule(se);var oe=new ye(ke.BitrateChange,"API:trackEvent(BitrateChange)");oe.addPredicate(e,!0,Ee).addAction(x),this._ruleEngine.addRule(oe);var de=new ye(ke.QoEUpdate,"API:trackEvent(QoEUpdate)");de.addPredicate(e,!0,Ee).addPredicate(c,!0,Qe).addAction(F),this._ruleEngine.addRule(de);var ce=new ye(ke.PlayheadUpdate,"API:trackEvent(PlayheadUpdate)");ce.addPredicate(e,!0,Ee).addAction(L),this._ruleEngine.addRule(ce);var ue=new ye(ke.StateStart,"API:trackEvent(StateStart)");ue.addPredicate(e,!0,Ee).addPredicate(u,!0,xe).addPredicate(r,!1,Ke).addPredicate(_,!0,Ze).addAction(N),this._ruleEngine.addRule(ue);var le=new ye(ke.StateEnd,"API:trackEvent(StateEnd)");le.addPredicate(e,!0,Ee).addPredicate(u,!0,xe).addPredicate(r,!0,We).addAction(q),this._ruleEngine.addRule(le)}},{key:"_isInMedia",value:function(){return!P(this._media)}},{key:"_isInAdBreak",value:function(){return this._media.isInAdBreak}},{key:"_isInAd",value:function(){return this._media.isInAd}},{key:"_isInChapter",value:function(){return this._media.isInChapter}},{key:"_isInBuffering",value:function(){return this._media.isInPlaybackState(Se.Buffer)}},{key:"_isInSeeking",value:function(){return this._media.isInPlaybackState(Se.Seek)}},{key:"_isInTrackedState",value:function(e){var t=he.deserialize(e[ve.Params]);return this._media.isCustomStateActive(t)}},{key:"_isValidMediaInfo",value:function(e){return null!=fe.deserialize(e[ve.Params])}},{key:"_isValidAdBreakInfo",value:function(e){return null!=ce.deserialize(e[ve.Params])}},{key:"_isValidAdInfo",value:function(e){return null!=de.deserialize(e[ve.Params])}},{key:"_isValidStateInfo",value:function(e){return null!=he.deserialize(e[ve.Params])}},{key:"_isValidChapterInfo",value:function(e){return null!=ue.deserialize(e[ve.Params])}},{key:"_isValidQoEInfo",value:function(e){return null!=pe.deserialize(e[ve.Params])}},{key:"_isValidErrorInfo",value:function(e){var t=e[ve.Params];if(!w(t))return!1;var a=t[ve.ErrorId];return C(a)}},{key:"_isDifferentAdBreakInfo",value:function(e){return!ce.deserialize(e[ve.Params]).equal(this._media.adBreakInfo)}},{key:"_isDifferentAdInfo",value:function(e){return!de.deserialize(e[ve.Params]).equal(this._media.adInfo)}},{key:"_isDifferentChapterInfo",value:function(e){return!ue.deserialize(e[ve.Params]).equal(this._media.chapterInfo)}},{key:"_allowPlayerStateChange",value:function(){return!this._media.isInAdBreak||this._media.isInAd}},{key:"_allowStateTrack",value:function(e){var t=he.deserialize(e[ve.Params]);return this._media.hasTrackedCustomState(t)||this._media.numTrackedCustomStates()<10}},{key:"_cmdEnterAction",value:function(e,t){var a=this._getRefTs(t);return P(this._hitGenerator)||this._hitGenerator.setRefTS(a),!0}},{key:"_cmdExitAction",value:function(e,t){if(P(this._media))return!1;e.id===ke.AdStart&&(!this._media.isInPlaybackState(Se.Init)||this._media.isInPlaybackState(Se.Buffer)||this._media.isInPlaybackState(Se.Seek)||this._media.enterPlaybackState(Se.Play)),e.id!==ke.BufferComplete&&e.id!==ke.SeekComplete||this._media.isInPlaybackState(Se.Init)&&this._media.enterPlaybackState(Se.Pause),this._cmdIdleDetection(t),this._cmdSessionTimeoutDetection(t),this._cmdContentStartDetection(t);var a=e.id===ke.AdStart||e.id===ke.AdBreakComplete;return this._hitGenerator.processPlayback(a),!0}},{key:"_cmdMediaStart",value:function(e){var t=fe.deserialize(e[ve.Params]),a=e[ve.Metadata],i=this._getRefTs(e);return this._media=new Pe(t,a),this._hitGenerator=this._createHitGenerator(i),this._hitGenerator.processMediaStart(),this._sessionRefTs=i,this._inPrerollInterval=0!==t.prerollWaitTime,this._prerollRefTs=i,!0}},{key:"_cmdMediaComplete",value:function(){return this._hitGenerator.processMediaComplete(),this._resetStates(),!0}},{key:"_cmdMediaSkip",value:function(){return this._hitGenerator.processMediaSkip(),this._resetStates(),!0}},{key:"_cmdAdBreakStart",value:function(e){var t=ce.deserialize(e[ve.Params]);return this._media.setAdBreakInfo(t),this._hitGenerator.processAdBreakStart(),!0}},{key:"_cmdAdBreakComplete",value:function(){return this._hitGenerator.processAdBreakComplete(),this._media.clearAdBreakInfo(),!0}},{key:"_cmdAdBreakSkip",value:function(){return this._media.isInAdBreak&&(this._hitGenerator.processAdBreakSkip(),this._media.clearAdBreakInfo()),!0}},{key:"_cmdAdStart",value:function(e){var t=de.deserialize(e[ve.Params]),a=e[ve.Metadata];return this._media.setAdInfo(t,a),this._hitGenerator.processAdStart(),!0}},{key:"_cmdAdComplete",value:function(){return this._hitGenerator.processAdComplete(),this._media.clearAdInfo(),!0}},{key:"_cmdAdSkip",value:function(){return this._media.isInAd&&(this._hitGenerator.processAdSkip(),this._media.clearAdInfo()),!0}},{key:"_cmdChapterStart",value:function(e){var t=ue.deserialize(e[ve.Params]),a=e[ve.Metadata];return this._media.setChapterInfo(t,a),this._hitGenerator.processChapterStart(),!0}},{key:"_cmdChapterComplete",value:function(){return this._hitGenerator.processChapterComplete(),this._media.clearChapterInfo(),!0}},{key:"_cmdChapterSkip",value:function(){return this._media.isInChapter&&(this._hitGenerator.processChapterSkip(),this._media.clearChapterInfo()),!0}},{key:"_cmdError",value:function(e){var t=e[ve.Params][ve.ErrorId];return this._hitGenerator.processError(t),!0}},{key:"_cmdBitrateChange",value:function(){return this._hitGenerator.processBitrateChange(),!0}},{key:"_cmdPlay",value:function(){return this._media.enterPlaybackState(Se.Play),!0}},{key:"_cmdPause",value:function(){return this._media.enterPlaybackState(Se.Pause),!0}},{key:"_cmdBufferStart",value:function(){return this._media.enterPlaybackState(Se.Buffer),!0}},{key:"_cmdBufferComplete",value:function(){return this._media.isInPlaybackState(Se.Buffer)&&this._media.exitPlaybackState(Se.Buffer),!0}},{key:"_cmdSeekStart",value:function(){return this._media.enterPlaybackState(Se.Seek),!0}},{key:"_cmdSeekComplete",value:function(){return this._media.isInPlaybackState(Se.Seek)&&this._media.exitPlaybackState(Se.Seek),!0}},{key:"_cmdQoEUpdate",value:function(e){var t=pe.deserialize(e[ve.Params]);return this._media.qoeInfo=t,!0}},{key:"_cmdPlayheadUpdate",value:function(e){var t=e[ve.Params];if(w(t)){var a=t[ve.Playhead];J(a)&&a>=0&&(this._media.playhead=a)}return!0}},{key:"_cmdIdleDetection",value:function(e){var t=this._getRefTs(e);this._media.isIdle()?this._mediaIdle?!this._trackerIdle&&t-this._mediaIdleStartTs>=18e5&&(this._hitGenerator.processSessionAbort(),this._trackerIdle=!0):(this._mediaIdle=!0,this._mediaIdleStartTs=t):(this._trackerIdle&&(this._hitGenerator.processSessionRestart(),this._trackerIdle=!1,this._sessionRefTs=t,this._contentStarted=!1,this._contentStartRefTs=null),this._mediaIdle=!1)}},{key:"_cmdSessionTimeoutDetection",value:function(e){var t=this._getRefTs(e);!this._trackerIdle&&t-this._sessionRefTs>=864e5&&(this._hitGenerator.processSessionAbort(),this._hitGenerator.processSessionRestart(),this._sessionRefTs=t,this._contentStarted=!1,this._contentStartRefTs=null)}},{key:"_cmdContentStartDetection",value:function(e){return!(!this._media.isIdle()&&!this._contentStarted)||(this._media.isInAdBreak?(this._contentStartRefTs=null,!0):(null==this._contentStartRefTs&&(this._contentStartRefTs=this._getRefTs(e)),this._getRefTs(e)-this._contentStartRefTs>=1e3&&(this._hitGenerator.processPlayback(!0),this._contentStarted=!0),!0))}},{key:"_cmdStateStart",value:function(e){var t=he.deserialize(e[ve.Params]);return this._media.startCustomState(t),this._hitGenerator.processCustomStateStart(t),!0}},{key:"_cmdStateEnd",value:function(e){var t=he.deserialize(e[ve.Params]);return this._media.endCustomState(t),this._hitGenerator.processCustomStateEnd(t),!0}},{key:"_getRefTs",value:function(e){var t=e[ve.TimeStamp];return X(t)?t:null}},{key:"_prerollDeferRule",value:function(e,t){if(this._inPrerollInterval&&null!=this._media){var a=this._media.mediaInfo.prerollWaitTime;if(this._prerollQueuedRules.push({eventName:e,context:t}),this._getRefTs(t)-this._prerollRefTs>=a||e===ke.AdBreakStart||e===ke.MediaComplete||e===ke.MediaSkip){for(var i=this._prerollReorderRules(this._prerollQueuedRules),r=0;r3&&void 0!==arguments[3]&&arguments[3];if(this._tracker){var s=E(),o=(r(i={},ve.Name,e),r(i,ve.Params,t),r(i,ve.Metadata,a),r(i,ve.TimeStamp,s),r(i,ve.InternalEvent,n),i),d=this._tracker.track(o);this._lastEventTS=s,e===ke.PlayheadUpdate&&(this._lastPlayheadParams=t),e===ke.SessionStart&&d?this._startTimer():e!==ke.SessionComplete&&e!==ke.SessionEnd||this._stopTimer()}else this._logger.warn("Dropping the call as the tracker instance is already destroyed")}},{key:"_startTimer",value:function(){var e=this;this._timer||(this._timer=T((function(){e._onTick()}),500))}},{key:"_stopTimer",value:function(){var e;this._timer&&(e=this._timer,clearInterval(e),this._timer=null)}},{key:"_onTick",value:function(){E()-this._lastEventTS>750&&this._trackInternal(ke.PlayheadUpdate,this._lastPlayheadParams,null,!0)}}]),e}(),Ye=new oe,et=l();var tt={configure:function(e){Ye.configure(e)},getInstance:function(e){var t="tracker"+et.getUniqueId();return new Xe(Ye,t,e)},createMediaObject:function(e,t,a,i,r){var n=null;try{n=new fe({id:t,name:e,streamType:i,mediaType:r,length:a}).serialize()}catch(e){me.error("Error creating MediaObject ("+e.message+")")}return n},createAdBreakObject:function(e,t,a){var i=null;try{i=new ce({name:e,position:t,startTime:a}).serialize()}catch(e){me.error("Error creating AdBreakObject ("+e.message+")")}return i},createAdObject:function(e,t,a,i){var r=null;try{r=new de({id:t,name:e,position:a,length:i}).serialize()}catch(e){me.error("Error creating AdObject ("+e.message+")")}return r},createChapterObject:function(e,t,a,i){var r=null;try{r=new ue({name:e,position:t,length:a,startTime:i}).serialize()}catch(e){me.error("Error creating ChapterObject ("+e.message+")")}return r},createQoEObject:function(e,t,a,i){var r=null;try{r=new pe({bitrate:e,droppedFrames:i,fps:a,startupTime:t}).serialize()}catch(e){me.error("Error creating QoEObject ("+e.message+")")}return r},createStateObject:function(e){var t=null;try{t=new he({name:e}).serialize()}catch(e){me.error("Error creating StateObject ("+e.message+")")}return t},version:"js-3.1.0",Event:h,MediaType:p,TrackerConfig:g,PlayerState:m,StreamType:y,MediaObjectKey:f,VideoMetadataKeys:_,AudioMetadataKeys:v,AdMetadataKeys:k};var at="ecid",it="analytics",rt="mediaanalytics",nt=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&d(e,t)}(s,e);var a,n=(a=s,function(){var e,t=o(a);if(c()){var i=o(this).constructor;e=Reflect.construct(t,arguments,i)}else e=t.apply(this,arguments);return u(this,e)});function s(e,a){var i;if(t(this,s),i=n.call(this),!e)throw new Error("Valid appmeasurement instance is required");if(!e.visitor)throw new Error("Valid visitor instance is required");return i._mediaConfig=a,i._appMeasurement=e,i._appMeasurementReady=!1,i._privacyResolved=!1,i._logger=z("WebECResolver"),i._fetchECParams(),i._fetchPrivacyStatus(),i._setupResolver(),i}return i(s,[{key:"resolveKeys",value:function(e){if(!e||0===e.length)return{};for(var t={},a=0;a `contextData.${key}`\n );\n s.linkTrackVars = combinedLinkTrackVars.join(',');\n\n s.tl(true, 'o', event.action, null, 'navigate');\n\n Object.keys(actionContextData).forEach(key => delete s.contextData[key]);\n }\n\n function registerEvents() {\n var isInViewport = function (element) {\n if (!element) {\n return false;\n }\n var bounding = element.getBoundingClientRect();\n\n return (\n bounding.top >= 0 &&\n bounding.left >= 0 &&\n bounding.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&\n bounding.right <= (window.innerWidth || document.documentElement.clientWidth)\n );\n };\n\n var linkCallMade = {\n transporter: false,\n dynamicContentFeed: new Set(),\n makeItDynamicContentFeed: false\n };\n\n $t('on', 'bte_event', (_e, { eventName, data }) => {\n try {\n if (isInViewport(document.querySelector('.Transporter-top')) && !linkCallMade.transporter) {\n trackAdobe({\n action: `Transporter:Read More:In View:${data.pageNodeId}`,\n });\n linkCallMade.transporter = true;\n }\n\n document.querySelectorAll('.DynamicContentFeed-container').forEach((element) => {\n if (isInViewport(element) && !linkCallMade.dynamicContentFeed.has(data.pageNodeId)) {\n trackAdobe({\n action: `Dynamic Feed Container:In View:${data.pageNodeId}`,\n });\n linkCallMade.dynamicContentFeed.add(data.pageNodeId);\n }\n });\n\n if (isInViewport(document.querySelector('[class^=\"DynamicContentFeed-styles-makeit-container\"]')) && !linkCallMade.makeItDynamicContentFeed) {\n trackAdobe({\n action: `Make It Dynamic Feed Container:In View:${data.pageNodeId}`,\n });\n linkCallMade.makeItDynamicContentFeed = true;\n }\n\n // Taboola and Module In-View events\n if (eventName === 'taboola_omniture') {\n trackAdobe({ action: `Feed:In View:${data.dataId}:${data.pageNodeId}` });\n } else if (eventName === 'moduleInView') {\n trackAdobe({ action: `${data.moduleName}:In View:${data.dataId}:${data.pageNodeId}` });\n }\n\n } catch (e) {\n logEvent('Omniture: Whatever Link Event Analytics are not working ! Some external plugin might be blocking it !!');\n }\n });\n\n window.__EventBus__.monitorScroll();\n logEvent('Scroll Linkcall - CAT7 - Enabled');\n }\n\n BI.wrapWithOneTrust({\n fn: registerEvents,\n featureName: 'Scroll Linkcall',\n categories: [7],\n });\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0}]},{id:"RLf7dde7641aa74a52a71f2b8ab5ae91bc",name:"50 - Comscore pageview [d:cnbc.com]",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/domain.js",settings:{domains:["cnbc.com","ms.now"]},timeout:2e3}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/* globals BI, $t */\n(function () {\n const topLevelDomain = document.location.hostname.match(/[^./]+\\.[^./]+$/)[0];\n const allBrandSettings = {\n 'cnbc.com': {\n tagType: '2',\n comscoreClientId: 40813950,\n },\n 'default': {\n tagType: '2',\n comscoreClientId: 40813950,\n }\n };\n\n class TemplateMetaOverride {\n #name;\n #value;\n constructor({name, kw}) {\n this.#name = name;\n this.#value = kw;\n }\n get template() {\n return this.#name;\n }\n get keyword() {\n return this.#value;\n }\n get sectionHierarchy() {\n return [{tagName: this.#value}];\n }\n toString() {\n return `templateName: ${this.#name}, keyword: ${this.#value}`;\n }\n toMap() {\n return [this.#name, this];\n }\n }\n\n const cnbcMetaOverrides = new Map([\n new TemplateMetaOverride({name:'subscribe_free_account', kw:'freeAccount'}).toMap(),\n new TemplateMetaOverride({name:'investingclub_marketing_template', kw:'ICMarketing'}).toMap(),\n new TemplateMetaOverride({name:'investingclub_renew_marketing_template', kw:'ICRenew'}).toMap(),\n new TemplateMetaOverride({name:'pro_marketing_template', kw:'ProMarketing'}).toMap(),\n new TemplateMetaOverride({name:'pro_marketing_renew_template', kw:'Prorenew'}).toMap(),\n new TemplateMetaOverride({name:'pro_upgrade_template', kw:'proupgrade'}).toMap(),\n new TemplateMetaOverride({name:'subscribe_all_access', kw:'allAccess'}).toMap(),\n new TemplateMetaOverride({name:'NewslettersPage', kw:'Newsletter'}).toMap(),\n new TemplateMetaOverride({name:'StockScreener', kw:'PRO_Home_Pro_stockscreener'}).toMap(),\n new TemplateMetaOverride({name:'quotepage_template', kw:'quotes'}).toMap(),\n new TemplateMetaOverride({name:'zephrlandertemplate', kw:'ZephrLander'}).toMap(),\n ]);\n\n /* SNIPAF: {\"name\": \"comscorePageview\", \"version\":\"1.0\"} */\n // Comscore\n function comscorePageview({ clientId = null, type = null, options = null } = {}) {\n if (!clientId || !type) return;\n window._comscore = window._comscore || [];\n (function () {\n var s = document.createElement('script'),\n ns = document.createElement('noscript'),\n el = document.getElementsByTagName('script')[0];\n s.async = true;\n s.src = `${\n document.location.protocol == 'https:' ? 'https://sb' : 'http://b'\n }.scorecardresearch.com/beacon.js`;\n ns.src = `
`;\n el.parentNode.insertBefore(ns, el);\n el.parentNode.insertBefore(s, el);\n })();\n\n // Privacy cookie onetrust\n const DoNotSell = (function () {\n var usPrivacyCookie = new RegExp('usprivacy=([^;]+)').exec(document.cookie);\n var usPrivacy = usPrivacyCookie !== null ? unescape(usPrivacyCookie[1]) : undefined;\n return usPrivacy === '1YYN' ? true : usPrivacy === '1YNN' ? false : undefined;\n })();\n var csUCFR = DoNotSell ? 0 : '';\n\n window._comscore.push({\n c1: `${type}`,\n c2: `${clientId}`,\n cs_ucfr: csUCFR,\n ...(options && {options}), // Include options if present\n });\n }\n /* SNIPAF: END */\n\n function generateKeyword(data) {\n const { sectionHierarchy } = data || {};\n const [sectionHierarchyFirstTagName, sectionHierarchySecondTagName] = (sectionHierarchy || []).map(sectionHierarchyItem => (sectionHierarchyItem || {}).tagName);\n const comScoreKeyword = sectionHierarchyFirstTagName && sectionHierarchySecondTagName ? `${sectionHierarchyFirstTagName}_${sectionHierarchySecondTagName}` : sectionHierarchyFirstTagName || 'cnbc';\n const formattedComscoreKeyword = comScoreKeyword.replace(/ /g, '_');\n return `comscorekw=${formattedComscoreKeyword}`;\n }\n\n function comscorePanelTag(kw) {\n const metaElement = document.querySelector('[itemprop=\"publisher\"]');\n if (metaElement && kw) {\n var d = document.createElement('div'),\n c = document.createComment(`Comscore Identifier: ${kw}`);\n d.dataset.testid = 'comscore-panel-tag';\n d.appendChild(c);\n metaElement.insertAdjacentElement('afterend', d);\n }\n }\n\n var { comscoreClientId, tagType, options: opts = {} } = allBrandSettings?.[topLevelDomain] ?? allBrandSettings['default'];\n \n window.addEventListener('load', function() {\n if(document.location.host == 'activate.cnbc.com'){\n comscorePageview({ clientId: comscoreClientId, type: tagType, options: opts });\n }\n });\n\n BI.waitForObjAvailable(['__CNBC_META_DATA'], 40, function() {\n let overridden,\n templateName = window.__CNBC_META_DATA.template;\n if (cnbcMetaOverrides.has(templateName)) {\n // overriding metadata for specific pages\n overridden = cnbcMetaOverrides.get(templateName);\n if (templateName === 'quotepage_template') {\n // listening for quote tab clicks which fire new beacon\n $t('on', 'bte_event', (e, {data, eventName}) => {\n if (eventName !== 'click') return;\n if (data.eventObject.matches('button[class=\"Tab-tab\"]')) {\n window?.COMSCORE?.beacon({\n c1: `${tagType}`,\n c2: `${comscoreClientId}`,\n comscorekw: overridden?.sectionHierarchy?.[0]?.tagName ?? 'cnbc',\n });\n }\n });\n }\n }\n // Building a keyword to append to Comscore from overridden or __CNBC_META_DATA\n const keyword = generateKeyword(overridden ?? window.__CNBC_META_DATA);\n opts.url_append = keyword;\n // adding the panel tracking comment\n comscorePanelTag(keyword);\n // tracking comscore pageview\n comscorePageview({ clientId: comscoreClientId, type: tagType, options: opts });\n });\n})();\n",language:"javascript"},timeout:2e3,delayNext:!0}]}]};var _satellite=function(){"use strict";function e(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function t(){return ae?ne:(ae=1,ne=function(e){return e})}function n(){if(re)return ie;re=1;var e={LOG:"log",INFO:"info",DEBUG:"debug",WARN:"warn",ERROR:"error"},t="\ud83d\ude80",n=10===parseInt((/msie (\d+)/.exec(navigator.userAgent.toLowerCase())||[])[1])?"[Launch]":t,a=!1,i=100,r=new Set,o=function(t){if(a&&window.console){var i=Array.prototype.slice.call(arguments,1);i.unshift(n),t!==e.DEBUG||window.console[t]||(t=e.INFO),window.console[t].apply(window.console,i)}},s=o.bind(null,e.LOG),c=o.bind(null,e.INFO),l=o.bind(null,e.DEBUG),d=o.bind(null,e.WARN),u=o.bind(null,e.ERROR),p=function(){var t=arguments[0];if("string"!=typeof t&&(t=String(t)),a)o.apply(null,[e.WARN].concat(Array.prototype.slice.call(arguments)));else if(!r.has(t)){if(r.add(t),r.size>i){var n=r.values().next().value;r.delete(n)}var s=a;a=!0,o.apply(null,[e.WARN].concat(Array.prototype.slice.call(arguments))),a=s}},g={log:s,info:c,debug:l,warn:d,error:u,deprecation:p,createPrefixedLogger:function(e){var t="["+e+"]";return{log:s.bind(null,t),info:c.bind(null,t),debug:l.bind(null,t),warn:d.bind(null,t),error:u.bind(null,t)}}};return Object.defineProperty(g,"outputEnabled",{get:function(){return a},set:function(e){!1===a&&!0===e&&r.clear(),a=e},enumerable:!0,configurable:!0}),ie=g}function a(){return se?oe:(se=1,oe=document)}function i(){return le?ce:(le=1,ce=Object.assign)}function r(){return ue?de:(ue=1,de=window)}function o(){function e({window:e}){return function(t,n,a,i){var r,o=Boolean(n&&Array.isArray(a)),s=Boolean(o&&t),c=document.createElement("a");if(o){var l=function(){var e=new Error("Unable to find the Library Embed Code for Dynamic Host Resolution.");throw e.code="dynamic_host_resolver_constructor_error",e};if(t&&(/^((https?:)?\/\/).+/.test(t)||l(),/^\/\/.+/.test(t)?c.href=e.location.protocol+t:c.href=t),c.hostname||l(),-1===a.indexOf(c.hostname)){var d=new Error("This library is not authorized for this domain. Please contact your CSM for more information.");throw d.code="dynamic_host_not_allowed",d}}var u=function(){if(null!=r)return r;if(s){var e=c.host;/:80$/.test(e)?e=e.replace(":80",""):/:80\/$/.test(e)?e=e.replace(":80/",""):/:443$/.test(e)?e=e.replace(":443",""):/:443\/$/.test(e)&&(e=e.replace(":443/","")),r=c.protocol+"//"+e}else r="";return r},p=function(e){return s&&"string"==typeof e?[u(),"/"===e.charAt(0)?e.slice(1):e].join("/"):e},g={getTurbineHost:u,decorateWithDynamicHost:p,get isDynamicEnforced(){return o}};if(e){function f(t){t?e.dynamicHostResolver=g:delete e.dynamicHostResolver}i.onDebugChanged(f),f(i.getDebugEnabled())}return g}}if(ge)return pe;ge=1;const n=t()(e);return pe=n({window:r()})}function s(){return me?fe:(me=1,fe=function(e){var t=[];return e.forEach((function(e){e.events&&e.events.forEach((function(n){t.push({rule:e,event:n})}))})),t.sort((function(e,t){return e.event.ruleOrder-t.event.ruleOrder}))})}function c(){if(be)return ve;be=1;var e="debug";return ve=function(t,n){var a=function(){return"true"===t.getItem(e)},i=function(n){t.setItem(e,n)},r=[],o=function(e){r.push(e)};return n.outputEnabled=a(),{onDebugChanged:o,getDebugEnabled:a,setDebugEnabled:function(e){a()!==e&&(i(e),n.outputEnabled=e,r.forEach((function(t){t(e)})))}}},ve}function l(){if(he)return _e;he=1;var e="Module did not export a function.";return _e=function(t,n,a){return function(i,r,o){o=o||[];var s=t.getModuleExports(i.modulePath);if("function"!=typeof s)throw new Error(e);var c=t.getModuleDefinition(i.modulePath),l=i.settings||{};!i.hasTransformedFilePaths&&c.filePaths&&(a(l,c.filePaths,i.modulePath),i.hasTransformedFilePaths=!0);var d=n(l,r);return s.bind(null,d).apply(null,o)}}}function d(){return Se?ye:(Se=1,ye=function(e){return"string"==typeof e?e.replace(/\s+/g," ").trim():e})}function u(){function e({window:e}){var t="com.adobe.reactor.";return function(n,a){var i=t+(a||"");return{getItem:function(t){try{return e[n].getItem(i+t)}catch(e){return null}},setItem:function(t,a){try{return e[n].setItem(i+t,a),!0}catch(e){return!1}}}}}if(ke)return Ce;ke=1;const n=t()(e);return Ce=n({window:r()})}function p(){if(Ee)return Ae;Ee=1;var e=u(),t="dataElements.",n=e("sessionStorage",t),a=e("localStorage",t),i={PAGEVIEW:"pageview",SESSION:"session",VISITOR:"visitor"},r={},o=function(e){var t;try{t=JSON.stringify(e)}catch(e){}return t};return Ae={setValue:function(e,t,s){var c;switch(t){case i.PAGEVIEW:return void(r[e]=s);case i.SESSION:return void((c=o(s))&&n.setItem(e,c));case i.VISITOR:return void((c=o(s))&&a.setItem(e,c))}},getValue:function(e,t){var o;switch(t){case i.PAGEVIEW:return r.hasOwnProperty(e)?r[e]:null;case i.SESSION:return null===(o=n.getItem(e))?o:JSON.parse(o);case i.VISITOR:return null===(o=a.getItem(e))?o:JSON.parse(o)}}}}function g(){function e({cleanText:e,dataElementSafe:t,logger:n}){return function(a,r,o,s,c){return function(l,d){var u=r(l);if(!u)return s?"":void 0;var p,g,f=u.storageDuration;try{p=a.getModuleExports(u.modulePath),g=a.getModuleDefinition(u.modulePath)}catch(e){return void n.error(i(u,l,e.message,e.stack))}if("function"==typeof p){var m,v=u.settings||{};!u.hasTransformedFilePaths&&g.filePaths&&(c(v,g.filePaths,u.modulePath),u.hasTransformedFilePaths=!0);try{m=p(o(v,d),d)}catch(e){return void n.error(i(u,l,e.message,e.stack))}return f&&(null!=m?t.setValue(l,f,m):m=t.getValue(l,f)),null==m&&null!=u.defaultValue&&(m=u.defaultValue),"string"==typeof m&&(u.cleanText&&(m=e(m)),u.forceLowerCase&&(m=m.toLowerCase())),m}n.error(i(u,l,"Module did not export a function."))}}}if(Te)return Pe;Te=1;var a=t(),i=function(e,t,n,a){return"Failed to execute data element module "+e.modulePath+" for data element "+t+". "+n+(a?"\n"+a:"")};const r=a(e);return Pe=r({cleanText:d(),logger:n(),dataElementSafe:p()})}function f(){if(Ie)return we;Ie=1;var e=d(),t={text:function(e){return e.textContent},cleanText:function(t){return e(t.textContent)}},n=function(e,n,a){for(var i,r=e,o=0,s=n.length;o10?(e.error("Data element circular reference detected: "+c.join(" -> ")),t):s(t,n)}}}if(Ue)return je;Ue=1;const a=t()(e);return je=a({logger:n()})}function y(){return Ve||(Ve=1,Fe=function(e){return function(){if("string"==typeof arguments[0])e[arguments[0]]=arguments[1];else if(arguments[0]){var t=arguments[0];for(var n in t)e[n]=t[n]}}}),Fe}function S(){return He?Ge:(He=1,Ge="undefined"!=typeof window&&window.Promise||void 0!==tn&&tn.Promise)}function C(){if(We)return qe;We=1;var e=S();return qe=function(t,n,a){return function(i,r,o,s){return s.then((function(){var s,c=i.delayNext;return new e((function(n,a){var r=t(i,o,[o]);if(!c)return n();var l=i.timeout,d=new e((function(e,t){s=setTimeout((function(){t(new Error("A timeout occurred because the action took longer than "+l/1e3+" seconds to complete. "))}),l)}));e.race([r,d]).then(n,a)})).catch((function(t){return clearTimeout(s),t=n(t),a(i,r,t),e.reject(t)})).then((function(){clearTimeout(s)}))}))}},qe}function k(){if(Ye)return Ke;Ye=1;var e=S();return Ke=function(t,n,a,i,r){return function(o,s,c,l){return l.then((function(){var l;return new e((function(n,a){var i=t(o,c,[c]),r=o.timeout,s=new e((function(e,t){l=setTimeout((function(){t(new Error("A timeout occurred because the condition took longer than "+r/1e3+" seconds to complete. "))}),r)}));e.race([i,s]).then(n,a)})).catch((function(t){return clearTimeout(l),t=n(t),i(o,s,t),e.reject(t)})).then((function(t){if(clearTimeout(l),!a(o,t))return r(o,s),e.reject()}))}))}},Ke}function A(){if($e)return ze;$e=1;var e=S().resolve();return ze=function(t,n,a){return function(i,r){return i.conditions&&i.conditions.forEach((function(n){e=t(n,i,r,e)})),i.actions&&i.actions.forEach((function(t){e=n(t,i,r,e)})),e=(e=e.then((function(){a(i)}))).catch((function(){}))}}}function E(){return Je?Qe:(Je=1,Qe=function(e){return Boolean(e&&"object"==typeof e&&"function"==typeof e.then)})}function P(){if(Ze)return Xe;Ze=1;var e=E();return Xe=function(t,n,a,i){return function(r,o){var s;if(r.conditions)for(var c=0;c