Sat. Dec 4th, 2021
Spread the love

Last year’s MacBook Air is still our favorite MacBook and just about the best mainstream laptop you can buy, with a ridiculously fast M1 processor that runs circles around most rivals. And if you’ve been on the fence about buying one, this beloved laptop just dropped to its lowest price ever for Black Friday.

Amazon currently has the M1 MacBook Air starting at just $849 for the 256GB model, which is a pretty decent discount off of its $999 retail price. If you want more storage, you can also get the 512GB option for $150 off at just $1,099.

The best MacBook overall

The latest MacBook Air is the MacBook we recommend to most people thanks to its exceptional performance, and it’s an especially great value at this price.

When you consider what you’re getting for the money, this is as good a Black Friday laptop deal as you’ll find. The M1 MacBook Air is one of the most powerful laptops we’ve tested, able to juggle tons of apps at once and export complex 4K video files in seconds. It also has stellar battery life, lasting for an exceptional 14 hours of continuous video playback during our stress test.

The MacBook Air’s performance and battery scores are leagues ahead of similarly priced rivals like the Surface Laptop 4 and Dell XPS 13, and it even holds its own with the 13-inch MacBook Pro M1 released last year. And because this is a MacBook Air, you’re getting the sleekest, most travel-friendly and nicest-looking MacBook (it’s the only one that comes in gold, after all).

It’s worth noting that Apple recently released new 14-inch and 16-inch MacBook Pros, which have better displays, webcams, speakers and even more beastly M1 Pro and M1 Max processors. But these laptops start at $1,999 and $2,499 respectively, and are largely aimed at folks that need enough muscle for things like heavy-duty programming and 3D rendering.

For someone who just wants to get work done without ever having to worry about their laptop slowing down, the M1 MacBook Air delivers an absurd amount of power — and better battery life — for a fraction of the price of the latest MacBook Pros. It’s rare you’ll find a current Mac at a price this low, so don’t miss out.

(function(){
  function addScript({ async, defer, name, src, ucStates, id, data }) {
    try {
      if (src && typeof src === 'string') {
        if (ucStates && ucStates.length) {
          WM.UserConsent.addScript({ src, async, defer }, ucStates);
        } else {
          const script = document.createElement('script');
          script.src = src;
          script.dataset.uid = name;
          script.async = async;
          script.defer = defer;
          script.onload = () => {window.dispatchEvent(new CustomEvent(name+'.loaded'));};
          if (id) {
            script.id = id;
          }
          if (data && typeof data === 'object') {
            Object.keys(data).forEach(key => script.dataset[key] = data[key]);
          }
          document.head.appendChild(script);
        }
      }
    } catch(e) {
      console.error('ExternalScripts: error adding script "' + name + '"', e);
    }
  };
//snippet: user-consent
    window.WM=window.WM||{},function(e,o){"use strict";var n;"function"!=typeof e.CustomEvent&amp;&amp;((n=function(e,n){var t;return n=n||{bubbles:!1,cancelable:!1,detail:void 0},(t=o.createEvent("CustomEvent")).initCustomEvent(e,n.bubbles,n.cancelable,n.detail),t}).prototype=e.Event.prototype,e.CustomEvent=n,"function"!==e.Event&amp;&amp;(e.Event=n))}(window,document),window.WM.UserConsent=window.WM.UserConsent||function(y,C){"use strict";var I,k={},v=!1,f=[],m=0,b=null,h=null,S="",E={},T="",A="",D="",x=!1,O=!1,w=!1,n=!1,L="",t="3.1.12",M=null,P=!1,U=!1,R=null,_="",G={brand:"",categories:{req:"required",ven:"vendor",p1:"data-store",p2:"ads-contextual",p3:"ads-person-prof",p4:"ads-person",p5:"content-person-prof",p6:"content-person",p7:"measure-ads",p8:"measure-content",p9:"measure-market",p10:"product-develop",sp1:"product-security",sp2:"deliver-content",f1:"combine-data",f2:"link-devices",f3:"id-devices",sf1:"geolocate",sf2:"scan-devices"},ccCookie:"countryCode",compatCategories:{"ads-general":["ads-contextual","ads-person","ads-measure"],"ads-vendor":["vendor","ads-contextual","ads-person","ads-measure"],"behavior-general":["content-person"],"behavior-vendor":["vendor","content-person"],"perf-general":["measure-content","measure-market","product-develop"],"perf-vendor":["vendor","measure-content","measure-market","product-develop"],"person-general":["ads-person-prof","content-person-prof"],"person-vendor":["vendor","ads-person-prof","content-person-prof"],"social-vendor":["vendor"],"storage-general":["data-store"],"storage-vendor":["vendor","data-store"]},confirmCookie:"OptanonAlertBoxClosed",consentChangeAction:null,consentChangeActionDelay:1e3,consentCookie:"OptanonConsent",consentDefaults:{required:!0,vendor:!0,"data-store":!0,"ads-contextual":!0,"ads-person":!0,"ads-person-prof":!0,"content-person":!0,"content-person-prof":!0,"measure-ads":!0,"measure-content":!0,"measure-market":!0,"product-develop":!0,"product-security":!0,"deliver-content":!0,"combine-data":!0,"link-devices":!0,"id-devices":!0,geolocate:!0,"scan-devices":!0},consentExpireIn:1,consentLinkTitle:"",controlCookie:"OptanonControl",cookieSameSite:"Lax",cookieSecure:!1,enableDebug:!1,enableTransitionCheck:!0,enableWebViewCheck:!0,gdprApplies:!1,gdprIabCookie:"eupubconsent-v2",gdprIabIsGlobal:!1,gdprIabMaxPurposes:10,gdprIabMaxSpecialFeats:2,gdprIabPolicy:2,geoUsedByOneTrust:!0,languageFromBrowser:!0,privacyCenterLinkTitle:"",psmAppId:"",psmEnv:"prod",regionChangeAction:null,regions:[{id:"ccpa",compatCodes:{adv:["ven"],bbv:["ven"],pfv:["ven"],pzv:["ven"],sav:["ven"],smv:["ven"]},compatTransition:{cond:!1,new:"ven",old:"pzv"},consentExpireIn:3,consentImpliedDefaults:{required:!0,"data-store":!0,"ads-contextual":!0,"ads-person":!0,"ads-person-prof":!0,"content-person":!0,"content-person-prof":!0,"measure-ads":!0,"measure-content":!0,"measure-market":!0,"product-develop":!0,"product-security":!0,"deliver-content":!0,"combine-data":!0,"link-devices":!0,"id-devices":!0,geolocate:!0,"scan-devices":!0},consentLinkTitle:"Do Not Sell My Personal Information",geoMatch:["US","PR","VI","UM",""]},{id:"gdpr",compatCodes:{ad:["p2","p4","p7"],adv:["p2","p4","p7"],bb:["p6"],bbv:["p6"],pf:["p8","p9","p10"],pfv:["p8","p9","p10"],pz:["p3","p5"],pzv:["p3","p5"],sa:["p1"],sav:["p1"]},consentDefaults:{required:!0,vendor:!0,"data-store":!1,"ads-contextual":!1,"ads-person-prof":!1,"ads-person":!1,"content-person-prof":!1,"content-person":!1,"measure-ads":!1,"measure-content":!1,"measure-market":!1,"product-develop":!1,"product-security":!0,"deliver-content":!0,"combine-data":!1,"link-devices":!1,"id-devices":!1,geolocate:!1,"scan-devices":!1},consentImpliedDefaults:{required:!0,vendor:!0,"product-security":!0,"deliver-content":!0,"combine-data":!0,"link-devices":!0,"id-devices":!0},consentLinkTitle:"Manage Cookies+",gdprApplies:!0,geoMatch:["GB","DE","FR","IT","ES","PL","RO","NL","BE","GR","CZ","PT","SE","HU","AT","BG","DK","FI","SK","IE","HR","LT","SI","LV","EE","CY","LU","MT","NO","IS","LI"]},{id:"global",geoMatch:["*"]}],reloadOnConsentChange:!0,scCookie:"stateCode",useIAB:!0,uspApiCookieName:"usprivacy",uspApiExplicitNotice:!0,uspApiIsLspa:!1};function W(e){var n=Array.prototype.slice.call(arguments);n[0]="[WMUC]"+(0===T.length?"":" ("+T+")")+":",("error"===e?console.error:console.log).apply(console,n)}function p(e){return!!Number(e)}function d(e){return parseInt(e,2)||0}function l(e){return 100*d(e)}function g(e){for(var n="A".charCodeAt(),t=e.match(/.{6}/g),o="",r=0;r&lt;t.length;r++)o+=String.fromCharCode(d(t[r])+n);return o}function B(e){for(var n=e.split(&quot;&quot;),t={},o=0;o&lt;n.length;o++)p(n[o])&amp;&amp;(t[o+1]=!0);return t}function z(e){var n,t,o,r,s,i,a=[];if(&quot;string&quot;!=typeof e)return W(&quot;error&quot;,&quot;Invalid TC string specified&quot;),a;for(o=e.split(&quot;.&quot;),r=0;r&lt;o.length;r++){for(n=function(e){if(&quot;function&quot;==typeof y.atob)try{return atob(e.replace(/_/g,&quot;/&quot;).replace(/-/g,&quot;+&quot;))}catch(e){W(&quot;error&quot;,&quot;Failed to decode TC string&quot;)}return&quot;&quot;}(o[r]),s=0,i=&quot;&quot;;s&lt;n.length;s++)t=n.charCodeAt(s).toString(2),i+=&quot;00000000&quot;.slice(0,8-t.length)+t;a.push(i)}return 2!==d(a[0].slice(0,6))?(W(&quot;error&quot;,&quot;Unsupported TC string version&quot;),[]):a}function N(e){for(var t=0,i=function(n,e,t,o){function r(){if(o.pubRestrictionEntry&amp;&amp;o.rangeEntry)for(var e in o.rangeEntry)Object.prototype.hasOwnProperty.call(o.rangeEntry,e)&amp;&amp;(o.pubRestrictionEntry[e]=(o.pubRestrictionEntry[e]||[]).concat(o.rangeEntry[e]));o.numPubRestrictions&amp;&amp;(o.numPubRestrictions--,n.push({key:&quot;purposeId&quot;,size:6},{key:&quot;restrictionType&quot;,size:2},{key:&quot;numEntries&quot;,size:12}))}function s(){o.numEntries?(o.numEntries--,n.push({key:&quot;isRange&quot;,size:1,decoder:p},{key:&quot;startVendorId&quot;,size:16})):r()}function i(){return!o.purposeId||[{purpose:o.purposeId,isAllowed:0!==o.restrictionType,isConsentRequired:1===o.restrictionType,isLegitimateInterestRequired:2===o.restrictionType}]}if(&quot;isRangeEncoding&quot;===e.key)n.push(t?{key:&quot;numEntries&quot;,size:12}:{key:&quot;bitField&quot;,size:o.maxVendorId,decoder:B});else if(&quot;numEntries&quot;===e.key)o.rangeEntry={},s();else if(&quot;isRange&quot;===e.key)t&amp;&amp;n.push({key:&quot;endVendorId&quot;,size:16});else if(&quot;startVendorId&quot;===e.key)o.isRange||(o.rangeEntry[t]=i(),s());else if(&quot;endVendorId&quot;===e.key){for(var a=o.startVendorId;a&lt;=o.endVendorId;a+=1)o.rangeEntry[a]=i();s()}else&quot;numCustomPurposes&quot;===e.key?n.push({key:&quot;customPurposeConsents&quot;,size:o.numCustomPurposes,decoder:B},{key:&quot;customPurposeLegitimateInterests&quot;,size:o.numCustomPurposes,decoder:B}):&quot;numPubRestrictions&quot;===e.key&amp;&amp;(o.pubRestrictionEntry={},r())},a=function(e){return e.pubRestrictionEntry||e.rangeEntry||e.bitField||e},c=function(e,n){n=n.slice(t,t+e.size);return t+=e.size,(e.decoder||d)(n)},n=function(e,n){for(var t,o,r={},s=0;s&lt;e.queue.length;s++)o=function(e,n){var t,o,r,s={};if(!e.queue)return c(e,n);for(t=0;t&lt;e.queue.length;t+=1)o=e.queue[t],r=c(o,n),s[o.key]=r,i(e.queue,o,r,s);return a(s)}(t=e.queue[s],n),r[t.key]=o,i(e.queue,t,o,r);return a(r)},o=z(e),r=function(e){for(var n=[{key:&quot;purposeConsents&quot;,size:24,decoder:B},{key:&quot;purposeLegitimateInterests&quot;,size:24,decoder:B}],t=[{key:&quot;version&quot;,size:6},{key:&quot;created&quot;,size:36,decoder:l},{key:&quot;lastUpdated&quot;,size:36,decoder:l},{key:&quot;cmpId&quot;,size:12},{key:&quot;cmpVersion&quot;,size:12},{key:&quot;consentScreen&quot;,size:6},{key:&quot;consentLanguage&quot;,size:12,decoder:g},{key:&quot;vendorListVersion&quot;,size:12},{key:&quot;policyVersion&quot;,size:6},{key:&quot;isServiceSpecified&quot;,size:1,decoder:p},{key:&quot;useNonStandardStacks&quot;,size:1,decoder:p},{key:&quot;specialFeatureOptins&quot;,size:12,decoder:B}].concat(n).concat({key:&quot;purposeOneTreatment&quot;,size:1,decoder:p},{key:&quot;publisherCountryCode&quot;,size:12,decoder:g}),o=[].concat([{size:3}]).concat(n).concat({key:&quot;numCustomPurposes&quot;,size:6}),r=[{key:&quot;core&quot;,queue:t}],s=1;s&lt;e.length;s++)3===d(e[s].slice(0,3))&amp;&amp;r.push({key:&quot;publisherTC&quot;,queue:o});return r}(o),s={},u=0;u&lt;r.length;u++)s[r[u].key]=n(r[u],o[u]),t=0;return s}function V(e){e=new RegExp(&quot;(^|;) *&quot;+e+&quot; *= *([^;]+)&quot;),e=C.cookie.match(e);return e?e.pop():null}function o(e,n,t){e&amp;&amp;(C.cookie=e+&quot;=&quot;+(&quot;string&quot;==typeof n?n:&quot;&quot;)+&quot;; Domain=&quot;+((t=t||{}).domain||k.cookieDomain)+&quot;; Path=&quot;+(t.path||&quot;/&quot;)+(t.maxage?&quot;; Max-Age=&quot;+t.maxage:t.expires?&quot;; Expires=&quot;+t.expires:&quot;&quot;)+(t.secure?&quot;; Secure&quot;:&quot;&quot;)+(t.samesite?&quot;; SameSite=&quot;+t.samesite:&quot;&quot;))}function F(e){for(var n=0,t={},n=0;n&lt;I.length;n++)t[I[n]]=e[I[n]];return t}function q(){var e,n,t,o,r,s,i,a,c,u,p,d,l=[],g=[],C=V(k.consentCookie),f=!1,m=!1,b=!1;if(C&amp;&amp;-1!==C.indexOf(&quot;&amp;groups=&quot;)||!0===k.useExternalConsent||(v=!1,h=null),!0===k.useExternalConsent&amp;&amp;(C=&quot;groups=&quot;+encodeURIComponent(y.OTExternalConsent.groups)),!1===v?(p=F(k.consentDefaults),m=!0):k.gdprApplies&amp;&amp;k.useIAB&amp;&amp;k.gdprIabCookie&amp;&amp;(p=function(e){var n,t,o,r=null;if(&quot;string&quot;==typeof e&amp;&amp;0!==e.length)if(e=!0===k.useExternalConsent&amp;&amp;y.OTExternalConsent.tcString?(L=y.OTExternalConsent.tcString,&quot;external consent&quot;):(L=V(e),'&quot;'+e+'&quot; cookie'),L)if((o=N(L))&amp;&amp;o.core&amp;&amp;o.core.policyVersion===k.gdprIabPolicy&amp;&amp;o.core.purposeConsents){for(k.debug&amp;&amp;W(&quot;debug&quot;,&quot;Processed TC string from &quot;+e+&quot;: &quot;,o),r=F(k.consentImpliedDefaults),o.core.purposeLegitimateInterests=o.core.purposeLegitimateInterests||{},o.core.specialFeatureOptins=o.core.specialFeatureOptins||{},n=1;n&lt;=k.gdprIabMaxPurposes;n++)r[t=k.categories[&quot;p&quot;+n.toString(10)]]=&quot;boolean&quot;==typeof o.core.purposeConsents[n]?o.core.purposeConsents[n]:&quot;boolean&quot;==typeof o.core.purposeLegitimateInterests[n]?o.core.purposeLegitimateInterests[n]:&quot;boolean&quot;==typeof k.consentImpliedDefaults[t]&amp;&amp;k.consentImpliedDefaults[t];for(n=1;n&lt;=k.gdprIabMaxSpecialFeats;n++)r[t=k.categories[&quot;sf&quot;+n.toString(10)]]=&quot;boolean&quot;==typeof o.core.specialFeatureOptins[n]?o.core.specialFeatureOptins[n]:&quot;boolean&quot;==typeof k.consentImpliedDefaults[t]&amp;&amp;k.consentImpliedDefaults[t]}else W(&quot;error&quot;,&quot;Error: Invalid TC string in &quot;+e+&quot;.&quot;),L=&quot;&quot;;else L=&quot;&quot;;return r}(k.gdprIabCookie))?m=!0:p=function(e,n){var t=0;if(n)for(e=e||{},t=0;t&lt;I.length;t++)&quot;boolean&quot;==typeof n[I[t]]&amp;&amp;(e[I[t]]=n[I[t]]);return e}(F(k.consentDefaults),k.consentImpliedDefaults),C)for(s=C.split(&quot;&amp;&quot;),r=0;r&lt;s.length;r++)if(u=s[r])if(u=(d=u.split(&quot;=&quot;))[0],d=d[1],!1===m&amp;&amp;&quot;groups&quot;===u&amp;&amp;d){for(a=decodeURIComponent(d).split(&quot;,&quot;),c=0;c&lt;a.length;c++)o=(i=a[c].split(&quot;:&quot;))[0].toLowerCase(),i=&quot;1&quot;===i[1],o&amp;&amp;(k.categories[o]?(p[k.categories[o]]=i,&quot;req&quot;!==o&amp;&amp;(f=!0)):(k.compatTransition&amp;&amp;k.compatTransition.old===o&amp;&amp;k.compatTransition.cond===i&amp;&amp;(b=!0),k.compatCodes[o]&amp;&amp;(l.push(o),g.push(i))));if(!1===f&amp;&amp;0&lt;l.length)for(P=!0,c=0;c&lt;l.length;c++)for(t=k.compatCodes[l[c]],n=0;n&lt;t.length;n++)(e=k.categories[t[n]])&amp;&amp;(p[e]=g[c]);else!0===b&amp;&amp;p[k.categories[k.compatTransition.new]]!==k.compatTransition.cond&amp;&amp;(p[k.categories[k.compatTransition.new]]=k.compatTransition.cond)}else&quot;version&quot;===u&amp;&amp;d?S=d:&quot;isIABGlobal&quot;===u&amp;&amp;(x=&quot;true&quot;===d);return p}function e(){return F(b)}function r(){return O}function j(){return!1===O}function s(){return&quot;ccpa&quot;===k.regId}function u(){return null!==b}function i(e,n){var t,o,r,s,i=!0,a=&quot;iab-&quot;+k.regId,c=&quot;not ready&quot;;if(u()&amp;&amp;e)for(e=Array.isArray(e)?e:[e],s=0;s&lt;e.length&amp;&amp;!0===i;s++)if((c=e[s])&amp;&amp;&quot;required&quot;!==c)if(&quot;iab&quot;===c||c===a){if(k.useIAB&amp;&amp;(!n||!n.ignoreIAB))break}else if(&quot;boolean&quot;==typeof b[c]&amp;&amp;!1===b[c])i=!1;else if(k.compatCategories[c])for(r=k.compatCategories[c],t=0;t&lt;r.length;t++)if(o=r[t],&quot;boolean&quot;==typeof b[o]&amp;&amp;!1===b[o]){i=!1;break}return k.debug&amp;&amp;((n=n||{}).name=n.name||n.id||&quot;unnamed&quot;,f.push({ts:new Date,act:n.cact||&quot;CHK&quot;,desc:n.name,res:i,note:!i&amp;&amp;c||&quot;&quot;}),W(&quot;debug&quot;,!0===i?&quot;Check for consent [&quot;+(e&amp;&amp;e.join(&quot;,&quot;)||&quot;empty&quot;)+'] ALLOWS &quot;'+n.name+'&quot;'+(&quot;ADD&quot;===n.cact?&quot;, script added&quot;:&quot;&quot;):&quot;Check for consent [&quot;+(e&amp;&amp;e.join(&quot;,&quot;)||&quot;empty&quot;)+'] REJECTS &quot;'+n.name+'&quot;'+(&quot;ADD&quot;===n.cact?&quot;, script NOT added&quot;:&quot;&quot;))),i}function J(){var e=s()?!0===U?(b.vendor?y.WM.CDP.ccpaShareData():y.WM.CDP.ccpaDoNotShare(),y.WM.CDP.getUSPString()):&quot;1&quot;+(k.uspApiExplicitNotice?&quot;Y&quot;:&quot;N&quot;)+(b.vendor?&quot;N&quot;:&quot;Y&quot;)+(k.uspApiIsLspa?&quot;Y&quot;:&quot;N&quot;):&quot;1---&quot;;return j()&amp;&amp;e!==_&amp;&amp;(_=e,!1===U&amp;&amp;null===R&amp;&amp;o(k.uspApiCookieName,e,{domain:k.cookieDomain,path:&quot;/&quot;,samesite:k.cookieSameSite,secure:k.cookieSecure}),k.debug&amp;&amp;W(&quot;debug&quot;,&quot;USP string updated: &quot;,e)),_}function H(){y.location.reload()}function Y(e){var n;return!y.frames[e]&amp;&amp;(C.body?((n=C.createElement(&quot;iframe&quot;)).style.cssText=&quot;display:none&quot;,n.name=e,C.body.appendChild(n)):setTimeout(Y.bind(y,e),5),!0)}function Z(e){for(var n=null,t=y;t;t=t.parent){try{if(t.frames&amp;&amp;t.frames[e]){n=t;break}}catch(e){}if(t===y.top)break}return n}function K(e){y.addEventListener?y.addEventListener(&quot;message&quot;,e,!1):y.attachEvent(&quot;onmessage&quot;,e)}function Q(e){var n;E=e||{ccpaTCS:_,consentInteractions:m,consentTime:h,consentVersion:S,countryCode:A,region:k.regId,stateCode:D,userConsentVersion:t},j()&amp;&amp;o(k.controlCookie,&quot;ccc=&quot;+E.countryCode+&quot;&amp;csc=&quot;+E.stateCode+&quot;&amp;cic=&quot;+E.consentInteractions+&quot;&amp;otvers=&quot;+E.consentVersion+&quot;&amp;pctm=&quot;+(E.consentTime&amp;&amp;encodeURIComponent(E.consentTime.toISOString())||&quot;0&quot;)+&quot;&amp;reg=&quot;+E.region+&quot;&amp;ustcs=&quot;+encodeURIComponent(E.ccpaTCS)+&quot;&amp;vers=&quot;+E.userConsentVersion,{domain:k.cookieDomain,expires:(e=k.consentExpireIn,(n=n?new Date(n):new Date).setUTCFullYear(n.getUTCFullYear()+e),n.toUTCString()),path:&quot;/&quot;,samesite:k.cookieSameSite,secure:k.cookieSecure})}function X(){var e=null,n=V(k.confirmCookie);return&quot;string&quot;==typeof n&amp;&amp;0!==n.length&amp;&amp;(e=new Date(n),!1===y.isNaN(e.valueOf()))?e:null}function a(){var e,n,t=X(),o=!1,r=0&lt;y.WM.UserConsent_wrapproc?new Date(y.WM.UserConsent_wrapproc):null,s=v,i=h;for(y.WM.UserConsent_wrapproc=0,t&amp;&amp;(null===h||h&lt;t)&amp;&amp;(v=!0,h=t),n=q(),e=0;e<I>h.getTime()+k.consentChangeActionDelay+1e3)&amp;&amp;(h=r),r=b,b=n,J(),Q(),!0===o){if(!0===k.debug)try{f.push({ts:new Date,act:"CHG",desc:JSON.stringify(n),res:k.reloadOnConsentChange,note:"function"==typeof k.consentChangeAction?"change function":""})}catch(e){W("error","Failed to track consent change: ",e)}if("function"==typeof k.consentChangeAction&amp;&amp;k.consentChangeAction(F(b),k.regId,S,r),C.dispatchEvent(new CustomEvent("userConsentChanged",{bubbles:!1,cancelable:!1,detail:{region:k.regId,time:h,old:r,new:F(b),usp:_,tcf:L}})),!0===k.reloadOnConsentChange)setTimeout(H,100);else if(j())try{y.sessionStorage.setItem("_ucWMCons",JSON.stringify({consentState:b,consentTime:h,consentVersion:S,iabIsGlobal:x})),y.postMessage("_ucWMConsReset","*")}catch(e){W("error","Failed to update session storage and notify children of consent change: ",e)}}}else h=i,(!E.region||!E.consentVersion&amp;&amp;S||!E.userConsentVersion||E.userConsentVersion&lt;&quot;3.1.1&quot;)&amp;&amp;Q()}function c(e){var n,t,o,r,s,i,a,c,u,p,d=C.getElementsByTagName(&quot;head&quot;)[0],l=C.createElement(&quot;script&quot;),g=null;if(null===b){if(null!==(s=Z(&quot;_usrConWM&quot;))){T=y.name||&quot;child&quot;;try{r=JSON.parse(y.sessionStorage.getItem(&quot;_ucWMConf&quot;))}catch(e){r=null,W(&quot;error&quot;,&quot;Failed to parse parent frame consent settings.&quot;)}if(&quot;object&quot;==typeof r&amp;&amp;null!==r){e.countryCode=r.countryCode,e.cookieDomain=r.cookieDomain,e.cookieSameSite=r.cookieSameSite,e.cookieSecure=r.cookieSecure,e.domId=r.domId,e.languageFromBrowser=r.langFromBrowser,e.enableDebug=r.enableDebug,e.regId=r.regId,e.stateCode=r.stateCode,e.src=r.src;try{i=JSON.parse(y.sessionStorage.getItem(&quot;_ucWMCons&quot;))}catch(e){i=null,W(&quot;error&quot;,&quot;Failed to parse parent frame consent state.&quot;)}&quot;object&quot;==typeof i&amp;&amp;null!==i&amp;&amp;(b=i.consentState,h=i.consentTime,S=i.consentVersion,e.gdprIabIsGlobal=i.iabIsGlobal,O=!0),!1===r.parentReload&amp;&amp;K(function(e){var n;if(&quot;_ucWMConsReset&quot;===e.data)if(!0===k.reloadOnConsentChange)setTimeout(H,100);else{try{n=y.sessionStorage.getItem(&quot;_ucWMCons&quot;)}catch(e){n=null}&quot;object&quot;==typeof n&amp;&amp;null!==n&amp;&amp;(b=n.consentState,h=n.consentTime,S=n.consentVersion,J())}})}}if(!(e&amp;&amp;e.src&amp;&amp;e.domId&amp;&amp;e.cookieDomain))throw new Error(&quot;Invalid config passed to user-consent!&quot;);if(k.cookieDomain=e.cookieDomain,k.cookieSameSite=e.cookieSameSite||G.cookieSameSite,k.cookieSecure=(&quot;boolean&quot;==typeof e.cookieSecure?e:G).cookieSecure,k.debug=!(!console||!e.enableDebug&amp;&amp;-1===y.location.search.search(/[?&amp;]wmuc_debug=[1t]/)),&quot;object&quot;==typeof y.GetExternalConsent&amp;&amp;null!==y.GetExternalConsent&amp;&amp;&quot;function&quot;==typeof y.GetExternalConsent.oneTrustCookie){try{t=JSON.parse(y.GetExternalConsent.oneTrustCookie())}catch(e){t=null}&quot;object&quot;==typeof t&amp;&amp;null!==t&amp;&amp;t.consentedDate&amp;&amp;(t.tcString||t.groups)&amp;&amp;(y.OTExternalConsent=t),&quot;function&quot;==typeof y.GetExternalConsent.countryCode&amp;&amp;y.GetExternalConsent.countryCode()&amp;&amp;(y.ExternalConsentGeo={countryCode:y.GetExternalConsent.countryCode(),stateCode:y.GetExternalConsent.stateCode()||&quot;&quot;})}for((&quot;boolean&quot;==typeof e.enableWebViewCheck?e:G).enableWebViewCheck&amp;&amp;&quot;object&quot;==typeof y.OTExternalConsent&amp;&amp;null!==y.OTExternalConsent&amp;&amp;y.OTExternalConsent.consentedDate?(k.useExternalConsent=!0,k.debug&amp;&amp;W(&quot;debug&quot;,&quot;Reading consent from external consent data: &quot;,y.OTExternalConsent)):k.useExternalConsent=!1,k.geoUsedByOneTrust=(&quot;boolean&quot;==typeof e.geoUsedByOneTrust?e:G).geoUsedByOneTrust,!0===j()&amp;&amp;!0===k.debug&amp;&amp;-1!==y.location.search.search(/[?&amp;]wmuc_cc=[A-Za-z]{2}/)?W(&quot;debug&quot;,&quot;Set debug CC to: &quot;,A=y.location.search.match(/[?&amp;]wmuc_cc=([A-Za-z]{2})/)[1].toUpperCase()):A=k.useExternalConsent&amp;&amp;&quot;object&quot;==typeof y.ExternalConsentGeo&amp;&amp;&quot;string&quot;==typeof y.ExternalConsentGeo.countryCode&amp;&amp;2===y.ExternalConsentGeo.countryCode.length?y.ExternalConsentGeo.countryCode.toUpperCase():&quot;string&quot;==typeof e.countryCode&amp;&amp;2===e.countryCode.length?e.countryCode.toUpperCase():(i=V(e.ccCookie||&quot;countryCode&quot;))&amp;&amp;2===i.length?i.toUpperCase():(W(&quot;error&quot;,&quot;User-Consent unable to determine country, missing or invalid cookies!&quot;),&quot;US&quot;),k.debug&amp;&amp;-1!==y.location.search.search(/[?&amp;]wmuc_sc=[A-Za-z]{2}/)?W(&quot;debug&quot;,&quot;Set debug SC to: &quot;,D=y.location.search.match(/[?&amp;]wmuc_sc=([A-Za-z]{2})/)[1].toUpperCase()):k.useExternalConsent&amp;&amp;&quot;object&quot;==typeof y.ExternalConsentGeo&amp;&amp;&quot;string&quot;==typeof y.ExternalConsentGeo.stateCode&amp;&amp;2===y.ExternalConsentGeo.stateCode.length?D=y.ExternalConsentGeo.stateCode.toUpperCase():&quot;string&quot;==typeof e.stateCode&amp;&amp;2===e.stateCode.length?D=e.stateCode.toUpperCase():(i=V(e.scCookie||&quot;stateCode&quot;))&amp;&amp;2===i.length?D=i.toUpperCase():k.debug&amp;&amp;W(&quot;debug&quot;,&quot;User-Consent unable to determine state, leaving unset.&quot;),!0===j()&amp;&amp;!0===k.geoUsedByOneTrust&amp;&amp;!1===w&amp;&amp;(y.OneTrust=y.OneTrust||{},y.OneTrust.geolocationResponse={countryCode:A,stateCode:D},i=function(e){!1===w?(w=!0,y.OneTrust=y.OneTrust||{},y.OneTrust.geolocationResponse={countryCode:A,stateCode:D},y.OneTrustStub&amp;&amp;&quot;function&quot;==typeof y.OneTrustStub.setGeoLocation&amp;&amp;y.OneTrustStub.setGeoLocation(A,D),k.debug&amp;&amp;W(&quot;debug&quot;,&quot;Set OneTrust geo-location.&quot;)):&quot;function&quot;==typeof y.OptanonWrapper&amp;&amp;y.OptanonWrapper()},y.addEventListener?y.addEventListener(&quot;consent.onetrust&quot;,i,!1):y.attachEvent(&quot;consent.onetrust&quot;,i)),k.categories=e.categories||G.categories,k.regions=e.regions||G.regions,k.consentChangeAction=e.consentChangeAction||G.consentChangeAction,k.consentChangeActionDelay=e.consentChangeActionDelay||G.consentChangeActionDelay,k.controlCookie=e.controlCookie||G.controlCookie,k.brand=e.brand||G.brand||&quot;&quot;,k.psmAppId=e.psmAppId||G.psmAppId||&quot;&quot;,k.psmEnv=e.psmEnv||G.psmEnv||&quot;prod&quot;,k.languageFromBrowser=(&quot;boolean&quot;==typeof e.languageFromBrowser?e:G).languageFromBrowser,k.regionChangeAction=e.regionChangeAction||G.regionChangeAction,k.reloadOnConsentChange=(&quot;boolean&quot;==typeof e.reloadOnConsentChange?e:G).reloadOnConsentChange,n=Object.keys(k.categories),I=[],o=0;o&lt;n.length;o++)I.push(k.categories[n[o]]);for(o=0;o&lt;k.regions.length;o++)if(!0===j()&amp;&amp;function(e){for(var n=0;n&lt;e.length;n++)if(A===e[n].toUpperCase()||&quot;*&quot;===e[n])return 1}(k.regions[o].geoMatch)||!0===O&amp;&amp;k.regions[o].id===e.regId){g=k.regions[o];break}if(!g){if(O)throw new Error(&quot;No matching user-consent region, parent and iframe configs do not match!&quot;);throw new Error(&quot;No matching user-consent region!&quot;)}if(k.regId=g.id,k.compatTransition=(e.enableTransitionCheck||G.enableTransitionCheck)&amp;&amp;g.compatTransition?g.compatTransition:null,k.compatCategories=g.compatCategories||e.compatCategories||G.compatCategories||{},k.compatCodes=g.compatCodes||e.compatCodes||G.compatCodes||{},k.consentExpireIn=g.consentExpireIn||e.consentExpireIn||G.consentExpireIn||1,k.consentLinkAction=g.consentLinkAction||e.consentLinkAction||null,k.consentLinkTitle=g.consentLinkTitle||e.consentLinkTitle||G.consentLinkTitle,k.confirmCookie=g.confirmCookie||e.confirmCookie||G.confirmCookie,k.consentCookie=g.consentCookie||e.consentCookie||G.consentCookie,k.consentDefaults=g.consentDefaults||e.consentDefaults||G.consentDefaults,k.consentImpliedDefaults=g.consentImpliedDefaults||G.consentImpliedDefaults||k.consentDefaults,k.domId=g.domId||e.domId,k.gdprIabCookie=g.gdprIabCookie||e.gdprIabCookie||G.gdprIabCookie,k.gdprIabMaxPurposes=g.gdprIabMaxPurposes||e.gdprIabMaxPurposes||G.gdprIabMaxPurposes,k.gdprIabMaxSpecialFeats=g.gdprIabMaxSpecialFeats||e.gdprIabMaxSpecialFeats||G.gdprIabMaxSpecialFeats,k.gdprIabPolicy=g.gdprIabPolicy||e.gdprIabPolicy||G.gdprIabPolicy,k.privacyCenterLinkAction=g.privacyCenterLinkAction||e.privacyCenterLinkAction||null,k.privacyCenterLinkTitle=g.privacyCenterLinkTitle||e.privacyCenterLinkTitle||G.privacyCenterLinkTitle,k.src=g.src||e.src,k.useIAB=(&quot;boolean&quot;==typeof e.useIAB?e:G).useIAB,k.uspApiExplicitNotice=e.uspApiExplicitNotice||G.uspApiExplicitNotice,k.uspApiIsLspa=e.uspApiIsLspa||G.uspApiIsLspa,k.uspApiCookieName=e.uspApiCookieName||G.uspApiCookieName,k.gdprApplies=(&quot;boolean&quot;==typeof g.gdprApplies?g:&quot;boolean&quot;==typeof e.gdprApplies?e:G).gdprApplies,x=e.gdprIabIsGlobal||G.gdprIabIsGlobal||!1,k.debug&amp;&amp;(W(&quot;debug&quot;,&quot;GeoIP Country Code: &quot;+A+&quot;, using consent region: &quot;+k.regId),W(&quot;debug&quot;,&quot;IAB &quot;+(k.useIAB?&quot;enabled&quot;:&quot;disabled&quot;))),!0===j()){if(k.psmAppId&amp;&amp;y.WM.CDP&amp;&amp;&quot;function&quot;==typeof y.WM.CDP.initPsm&amp;&amp;&quot;function&quot;==typeof y.WM.CDP.isPrivacyEnabled&amp;&amp;!k.useExternalConsent){try{y.WM.CDP.initPsm(k.psmAppId,k.brand,k.psmEnv,k.cookieDomain,A),U=y.WM.CDP.isPrivacyEnabled(),k.debug&amp;&amp;W(&quot;debug&quot;,&quot;PSM found and initialized.  Privacy is &quot;+(U?&quot;enabled.&quot;:&quot;disabled.&quot;))}catch(e){U=!1,W(&quot;error&quot;,&quot;PSM found but failed to initialize: &quot;,e)}U&amp;&amp;(&quot;string&quot;!=typeof(u=y.WM.CDP.getUSPString())||0===u.length?U=!1:_=u,k.debug&amp;&amp;W(&quot;debug&quot;,&quot;PSM privacy enabled &quot;+(U?&quot;so using.&quot;:&quot;but not working so ignoring it.&quot;)))}else k.debug&amp;&amp;W(&quot;debug&quot;,&quot;PSM not found.&quot;);if(E=function(){var n,e,t,o,r={consentInteractions:m,consentTime:null,consentVersion:&quot;&quot;,countryCode:&quot;&quot;,region:&quot;&quot;,stateCode:&quot;&quot;,userConsentVersion:&quot;&quot;},s=V(k.controlCookie);if(&quot;string&quot;==typeof s&amp;&amp;0!==s.length)for(t=s.split(&quot;&amp;&quot;),e=0;e&lt;t.length;e++)if(&quot;string&quot;==typeof(o=t[e].split(&quot;=&quot;))[0]&amp;&amp;0!==o[0].length&amp;&amp;&quot;string&quot;==typeof o[1])switch(o[0]){case&quot;ccc&quot;:r.countryCode=o[1].toLowerCase();break;case&quot;csc&quot;:r.stateCode=o[1].toLowerCase();break;case&quot;cic&quot;:r.consentInteractions=parseInt(o[1],10),(isNaN(r.consentInteractions)||r.consentInteractionsh)?(h=E.consentTime,k.debug&amp;&amp;W("debug",'Consent time read from "'+k.controlCookie+'": ',h)):null!==h&amp;&amp;k.debug&amp;&amp;W("debug",'Consent time read from "'+k.confirmCookie+'": ',h);if(null!==h?(v=!0,b=q(),!0===v?(l.async=!0,null!==E.consentTime&amp;&amp;E.consentTime&lt;h&amp;&amp;(E.region=&quot;&quot;),k.debug&amp;&amp;(W(&quot;debug&quot;,'Consent state read from &quot;'+(k.useExternalConsent?&quot;external consent&quot;:k.consentCookie)+'&quot; ('+S+&quot;): &quot;,b),P&amp;&amp;W(&quot;debug&quot;,&quot;Consent state using compatibility config.&quot;))):(h=null,E.region=&quot;&quot;,k.debug&amp;&amp;W(&quot;debug&quot;,&quot;Consent state expired or removed, reset from defaults: &quot;,b))):(b=F(k.consentDefaults),k.debug&amp;&amp;W(&quot;debug&quot;,&quot;Consent state from defaults: &quot;,b)),k.debug)try{f.push({ts:new Date,act:&quot;SET&quot;,desc:JSON.stringify(b),res:null!==h,note:k.regId})}catch(e){W(&quot;error&quot;,&quot;Failed to track setting initial consent: &quot;,e)}}if(y.WM.UserConsent_initted)W(&quot;error&quot;,&quot;ERROR:  Second instance of UserConsent initialized!&quot;);else{if(y.WM.UserConsent_initted=!0,k.useIAB&amp;&amp;(p=function(o,r){var s,n,i=&quot;string&quot;==typeof r.data,e=o+&quot;Call&quot;;try{n=i?JSON.parse(r.data):r.data}catch(e){n={}}&quot;object&quot;==typeof n&amp;&amp;null!==n&amp;&amp;n[e]&amp;&amp;(s=n[e],y[o](s.command,s.version,function(e,n){var t={};t[o+&quot;Return&quot;]={returnValue:e,success:n,callId:s.callId};try{r.source.postMessage(i?JSON.stringify(t):t,&quot;*&quot;)}catch(e){W(&quot;error&quot;,&quot;Failed to post reply: &quot;,e)}},s.parameter))},U||(null===(R=Z(&quot;__uspapiLocator&quot;))?(Y(&quot;__uspapiLocator&quot;),y.__uspapi=function(e,n,t){if(&quot;function&quot;==typeof t){if(n=0===n?1:n,&quot;getUSPData&quot;===e&amp;&amp;1===n)return t({version:1,uspString:y.WM.UserConsent.getUspAPIstring()},!0),!0;if(&quot;ping&quot;===e)return t({version:1,uspapiLoaded:!0},!0),!0;t(null,!1)}return!1},y.__uspapi.msgHandler=p.bind(y,&quot;__uspapi&quot;),K(y.__uspapi.msgHandler),k.debug&amp;&amp;W(&quot;debug&quot;,&quot;IAB for CCPA ready.&quot;)):k.debug&amp;&amp;W(&quot;debug&quot;,&quot;IAB for CCPA ready (via frame).&quot;)),!x&amp;&amp;&quot;gdpr&quot;!==k.regId||(c=P?&quot;1.1&quot;:&quot;2.0&quot;,null===(M=Z((a=P?&quot;__cmp&quot;:&quot;__tcfapi&quot;)+&quot;Locator&quot;))&amp;&amp;&quot;function&quot;!=typeof y[a]?(Y(a+&quot;Locator&quot;),y[a]=function(){var e=arguments,n=0;return y[a].a=y[a].a||[],0&lt;e.length&amp;&amp;(n=0===(n=1&lt;e.length&amp;&amp;parseInt(e[1],10)||0)?2:n,&quot;ping&quot;===e[0]?e[2]({apiVersion:c,gdprApplies:k.gdprApplies,gdprAppliesGlobally:x,cmpLoaded:!1,cmpStatus:&quot;stub&quot;,displayStatus:k.gdprApplies?&quot;hidden&quot;:&quot;disabled&quot;},!0):&quot;setGdprApplies&quot;===e[0]&amp;&amp;3&lt;e.length&amp;&amp;&quot;boolean&quot;==typeof e[3]?k.gdprApplies=e[3]:y[a].a.push([].slice.apply(e))),y[a].a},y[a].msgHandler=p.bind(y,a),K(y[a].msgHandler),k.debug&amp;&amp;W(&quot;debug&quot;,&quot;IAB (v&quot;+c+&quot;) for GDPR ready.&quot;),y[a](&quot;getTCData&quot;,0,y.OptanonWrapper)):M&amp;&amp;k.debug&amp;&amp;W(&quot;debug&quot;,&quot;IAB (v&quot;+c+&quot;) for GDPR ready (via frame).&quot;))),J(),!0===j()){if(k.useExternalConsent?Q():E.region&amp;&amp;E.region!==k.regId&amp;&amp;(u=E.region,p=k.regId,k.debug&amp;&amp;W(&quot;debug&quot;,'User-Consent detected region change from &quot;'+u+'&quot; to &quot;'+p+'&quot;.'),&quot;function&quot;==typeof k.regionChangeAction&amp;&amp;k.regionChangeAction(u,p,k.consentLinkAction)),null===s&amp;&amp;Y(&quot;_usrConWM&quot;))try{y.sessionStorage.setItem(&quot;_ucWMConf&quot;,JSON.stringify({cookieDomain:k.cookieDomain,cookieSameSite:k.cookieSameSite,cookieSecure:k.cookieSecure,countryCode:A,domId:k.domId,enableDebug:k.debug,langFromBrowser:k.languageFromBrowser,parentReload:k.reloadOnConsentChange,regId:k.regId,src:k.src,stateCode:D})),y.sessionStorage.setItem(&quot;_ucWMCons&quot;,JSON.stringify({consentState:b,consentTime:h,consentVersion:S,iabIsGlobal:x}))}catch(e){W(&quot;error&quot;,&quot;Failed to set UserConsent frame data!&quot;)}!(l.charset=&quot;utf-8&quot;)===k.languageFromBrowser&amp;&amp;(l.dataset.documentLanguage=&quot;true&quot;),l.dataset.domainScript=k.domId,l.src=k.src,d.appendChild(l)}k.debug&amp;&amp;W(&quot;debug&quot;,&quot;Dispatching UserConsentReady event.&quot;),C.dispatchEvent(new CustomEvent(&quot;userConsentReady&quot;,{bubbles:!1,cancelable:!1,detail:{region:k.regId,time:new Date,consentConfirmed:v}}))}}}return!0===y.WM.UserConsent_loaded?W(&quot;error&quot;,&quot;ERROR:  Second instance of UserConsent loaded!&quot;):(y.WM.UserConsent_loaded=!0,y.WM.UserConsent_wrapproc=0,y.OptanonWrapper=function(){var e;n||(n=!0,k.geoUsedByOneTrust&amp;&amp;y.Optanon&amp;&amp;&quot;function&quot;==typeof y.Optanon.getGeolocationData&amp;&amp;(e=y.Optanon.getGeolocationData())&amp;&amp;e.country!==A&amp;&amp;&quot;function&quot;==typeof y.Optanon.setGeoLocation&amp;&amp;(y.Optanon.setGeoLocation(A,D),k.debug&amp;&amp;W(&quot;debug&quot;,&quot;Reset OneTrust geo-location to match site.&quot;)),k.debug&amp;&amp;W(&quot;debug&quot;,&quot;Dispatching OptanonLoaded event.&quot;),C.dispatchEvent(new CustomEvent(&quot;optanonLoaded&quot;,{bubbles:!1,cancelable:!1,detail:{region:k.regId,time:new Date,consentConfirmed:v}})),!0===k.useExternalConsent&amp;&amp;!0!==y.Optanon.IsAlertBoxClosed()&amp;&amp;y.Optanon.Close()),null!==b&amp;&amp;0===y.WM.UserConsent_wrapproc&amp;&amp;(y.WM.UserConsent_wrapproc=(new Date).getTime(),setTimeout(a,(&quot;number&quot;==typeof k.consentChangeActionDelay?k:G).consentChangeActionDelay))},&quot;object&quot;==typeof y.WM.UserConsentConfig&amp;&amp;null!==y.WM.UserConsentConfig&amp;&amp;c(y.WM.UserConsentConfig)),{addScript:function(e,n,t){var o,r,s,t=t||C.head;if(e&amp;&amp;(e.src||e.text)){if(!0===i(n,{cact:&quot;ADD&quot;,name:e.name||e.src||e.id||&quot;unnamed inline&quot;})){for(o=C.createElement(&quot;script&quot;),s=Object.keys(e),r=0;r<s> {
if (
  window.CNN.Zion.apiKey &amp;&amp;
  window.CNN.Zion.environmentType &amp;&amp;
  window.CNN.Zion.sourceId &amp;&amp;
  window.ZION_SDK
) {
  const accessKey = window.CNN.Zion.apiKey;
  const environment = window.ZION_SDK.EnvironmentType[window.CNN.Zion.environmentType];
  const enableLogging = environment !== window.ZION_SDK.EnvironmentType.Prod;

  new window.ZION_SDK.ZionAnalytics(window.ZION_SDK.ClientType.Web, environment, {
    accessKey,
    bridgeEnabled: true,
    bufferSize: 20,
    enabled: true,
    enableLogging,
    trackAdvertising: false,
    trackBluetooth: false,
    trackDeeplink: false,
    trackLifecycle: false,
    trackLocation: false,
    trackNotifications: false,
    trackPurchases: false,
    trackScreens: false,
    trackUxMetrics: true,
    uxMetricsPercentage: 100,
    telemetryEndpoint: window.env.ZION_TELEMETRY_ENDPOINT
  });

  if (window.zion_analytics) {
    window.zion_analytics.track(new window.ZION_SDK.Pageview({
      canonicalUrl: window.CNN.contentModel.canonicalUrl,
      traits: {
        event_source: window.CNN.contentModel.techStack || 'stellar',
        page_variant: window.CNN.contentModel.templateType || '',
        raw_url: window.location.href,
        cms_id: CNN.contentModel.cmsId || '',
        page_type: CNN.contentModel.pageType || '',
        edition: CNN.contentModel.edition,
        section: CNN.contentModel.section || '',
        subsection: CNN.contentModel.subsection || '',
        experience_type: window.location.href.includes('plus') ? 'cnn_plus' : 'cnn_core'
      },
      sourceId: window.CNN.contentModel.sourceId || ''
    }));
  }
} else {
  throw new Error('zion: missing either "apiKey", "environmentType" or "sourceId"');
}

});
})()

    }

//script: fave
addScript({ async: false, defer: true, name: ‘fave’, src: ‘https://registry.api.cnn.io/bundles/fave/latest-4.x/js’ });

//snippet: airship
!function(n,r,e,t,c){var i,o=”Promise”in n,u={then:function(){return u},catch:function(n){ return n(new Error(“Airship SDK Error: Unsupported browser”)),u}},s=o?new Promise((function(n,r){i=function(e,t){e?r(e):n(t)}})):u ;s._async_setup=function(n){if(o)try{i(null,n(c))}catch(n){i(n)}},n[t]=s;var a=r.createElement(“script”);a.src=e,a.async=!0,a.id=”_uasdk”, a.rel=t,r.head.appendChild(a)}(window,document, window.env.AIRSHIP_SRC, ‘UA’, { vapidPublicKey: window.env.AIRSHIP_VAPID_PUBLIC_KEY, websitePushId: window.env.AIRSHIP_WEB_SITE_PUSH_ID, appKey: window.env.AIRSHIP_APP_KEY, token: window.env.AIRSHIP_TOKEN, workerUrl:window.env.AIRSHIP_WORKER }); (function(){const c = { auto: true, position: ‘top’, appearDelay: 5000, stylesheet: ‘https://z.cdn.cnn.com/cnn/tmpl_asset/static/css/vendor/airship.css’, askAgainDelay: 2592000, disappearDelay: 1000, type: ‘alert’, logo: ‘https://z.cdn.cnn.com/cnn/tmpl_asset/static/images/cnn_underscored_stacked_256.png’, i18n: { en: { title: ‘Subscribe to CNN Underscored notifications’, message: ‘Never miss out on a product worth buying or a sale worth shopping by subscribing to our push notifications.’, bubble: ‘Unlock permission to allow notifications’, button: ‘Allow’, accept: ‘Yes, Subscribe me!’, deny: ‘No thanks’}}}; window.UA.then((sdk) => { sdk.plugins.load(‘html-prompt’, ‘https://aswpsdkus.com/notify/v1/ua-html-prompt.min.js’, c).then((plugin) => plugin.prompt(c)); sdk.addEventListener(‘channel’, ev => { sdk.channel.tags.add(‘underscored’); }, { once: true }); }); })();

//snippet: krux-id
if (window.WM.UserConsent.inUserConsentState([‘vendor’,’data-store’,’ads-person-prof’,’ads-person’,’measure-ads’,’measure-content’,’measure-market’])) {
const MODULE_NAME=”Krux Module”,MODULE_VERSION=”v4.1.4″,config={DOM_CONTROLTAG:window.env.KRUX_DOM_CONTROLTAG,INTL_CONTROLTAG:window.env.KRUX_INTL_CONTROLTAG,SEND_VALUES_TO_ZION:window.env.KRUX_SEND_VALUES_TO_ZION};let zionBus,setControlTag,sendValuesToZion,hostname,messageSent=!1,subscribersSet=!1;const readCookie=e=>{let n=!1,t=null;var o;return void 0!==window.localStorage&&(n=!0),”https://www.cnn.com/2021/11/24/cnn-underscored/macbook-air-m1-black-friday-deal-2021/undefined”==typeof value&&(n&&(t=window.localStorage.getItem(e)),n&&null!==t||(o=e,t=”https://www.cnn.com/2021/11/24/cnn-underscored/macbook-air-m1-black-friday-deal-2021/undefined”!=typeof document&&document.cookie&&document.cookie.match(RegExp(${o}=.*?;))?document.cookie.match(RegExp(${o}=.*?;))[0].replace(RegExp(${o}=|;,”g”),””):null)),t},setHostAndPathNames=()=>{const e=”https://www.cnn.com/2021/11/24/cnn-underscored/macbook-air-m1-black-friday-deal-2021/undefined”!=typeof document?document.createElement(“a”):{href:””,hostname:””,pathname:””};e.href=”https://www.cnn.com/2021/11/24/cnn-underscored/macbook-air-m1-black-friday-deal-2021/undefined”!=typeof document?document.location.href:””,hostname=e.hostname},countryCode=readCookie(“countryCode”)||(readCookie(“CG”)?readCookie(“CG”).substr(0,2):””),getURLParam=e=>{if(“https://www.cnn.com/2021/11/24/cnn-underscored/macbook-air-m1-black-friday-deal-2021/undefined”==typeof document)return””;const n=e.replace(/[[]/,”[“).replace(/[]]/,”]”),t=new RegExp([?&amp;]${n}=([^&amp;#]*));if(document&&document.location&&document.location.search){const e=t.exec(document.location.search);return e?e[1]:””}return””},isIntl=()=>{let e=!1;return setHostAndPathNames(),e=”true”===getURLParam(“isIntl”)||(hostname.search(/^.(edition|edition-m|arabic|cnnespanol|cnne-test)./)>=0||””!==countryCode&&null!==countryCode&&(“US”!==countryCode&&”CA”!==countryCode)),e},piiRE=/(([^()[].,;:[email protected]”]+(.[^()[].,;:[email protected]”]+))|(“.+”))@(([^()[].,;:[email protected]”]+.)+[^()[].,;:[email protected]”]{2,})/i,piiIsPresentInQueryString=()=>{if(document.location.search){const e=document.location.search.search(piiRE)+1;let n;try{n=decodeURIComponent(document.location.search).search(piiRE)+1}catch(t){n=e}return 1===e||1===n}return!1},piiIsPresentInHash=()=>{if(document.location.hash){const e=document.location.hash.search(piiRE)+1;let n;try{n=decodeURIComponent(document.location.hash).search(piiRE)+1}catch(t){n=e}return e||n}return!1},piiIsPresentInReferrer=()=>{if(document.referrer){const e=document.referrer.search(piiRE)+1;let n;try{n=decodeURIComponent(document.referrer).search(piiRE)+1}catch(t){n=e}return e||n}return!1},piiFilter={qs:piiIsPresentInQueryString,hash:piiIsPresentInHash,ref:piiIsPresentInReferrer},retrieve=e=>{const n=kx${e},t=(()=>{try{return window.localStorage}catch(e){return null}})();if(t)return t[n]||””;if(navigator.cookieEnabled){const e=document.cookie.match(${n}=([^;]*));return e&&unescape(e[1])||””}return””},init=e=>{const n=new Promise((n=>{window.Krux||((window.Krux=function(){window.Krux.q.push([arguments])}).q=[]),window.krux_getFWKeyValues=(e,n)=>{window.Krux.segments=retrieve(“segs”)?retrieve(“segs”).split(“,”):[];const t=e||”_fwu:386123:”,o=n||35,r={};for(let e=0;e<window.Krux.segments.length;e++)e{let e=”&kxid=”;return window.Krux.user&&(e+=window.Krux.user),e+=&amp;kxseg=${window.kvs.join(",")},e},window.krux_getFWSegments=()=>(window.Krux.segments=retrieve(“segs”)?retrieve(“segs”).split(“,”):[],kxseg=${window.Krux.segments.join(",kxseg=")}),window.krux_getUser=()=>(window.Krux.user=retrieve(“user”),window.Krux.user),window.krux_getKuid=()=>(window.Krux.kuid=retrieve(“kuid”),window.Krux.kuid),setControlTag=e=>{const n=document,t=n.createElement(“script”),o=n.getElementsByTagName(“head”)[0];t.type=”text/javascript”,t.async=!0,t.src=`https://cdn.krxd.net/controltag?confid=${e}`,piiFilter.hash()||piiFilter.qs()||piiFilter.ref()||o.appendChild(t)},sendValuesToZion=()=>{window.Krux.user=retrieve(“user”),window.Krux.segments=retrieve(“segs”)?retrieve(“segs”).split(“,”):[],window.Krux.kuid=retrieve(“kuid”);const n=window.Krux.user,t=window.Krux.segments.filter((function(e,n){return n{if(e){const n=e.CONTROLTAGS?e.CONTROLTAGS:{DOM:e.DOM_CONTROLTAG,INTL:e.INTL_CONTROLTAG},t=isIntl()?n.INTL:n.DOM;setControlTag(t),e.SEND_VALUES_TO_ZION&&!subscribersSet&&(subscribersSet=!0,window.ZION_SDK?(zionBus=window.ZION_SDK.ZionMessageBus.getInstance(),sendValuesToZion()):window.addEventListener(“zion.loaded”,(()=>{zionBus=window.ZION_SDK.ZionMessageBus.getInstance(),sendValuesToZion()})))}n()})()}));return n.id=”Krux Module v4.1.4″,n};init(config);

    }

//snippet: hyphensocial
(function () {
window.addEventListener(“load”, (event) => {
if (document.location.href.includes(“facebook-paid”)) {
function getURLParameter(e, t) {
return (RegExp(t + “=(.+?)(&|$)”).exec(e) || [, null])[1];
}
function parse_query_string(e) {
for (var t = e.split(“&”), n = {}, a = 0; a -1 || e.indexOf(“FBAV”) > -1;
}
function os_system() {
var e = navigator.userAgent || navigator.vendor || window.opera;
return /windows phone/i.test(e)
? “Windows Phone”
: /android/i.test(e)
? “Android”
: /iPad|iPhone|iPod/.test(e) && !window.MSStream
? “iOS”
: “unknown”;
}
function affSwap() {
(window.aff_params = {}),
(window.base_tag = null),
(window.tag_count = 0);
let e = document
.querySelector(‘[data-editable=”content”]’)
.querySelectorAll(‘a:not([swapped=”true”])’);
if (e.length >= 5) {
for (const t of e) {
let e = [
getURLParameter(t.href.replace(“-20”, “”), “tag”),
getURLParameter(t.href.replace(“|”, “&”), “subId1”),
getURLParameter(t.href.replace(“|”, “&”), “u1”),
getURLParameter(t.href.replace(“|”, “&”), “afftrack”),
].join(“”);
(e in aff_params) & (“” != e)
? ((window.aff_params[e] += 1),
window.aff_params[e] > window.tag_count &&
((tag_count = window.aff_params[e]), (window.base_tag = e)))
: (aff_params[e] = 1);
}
for (const t of e) {
(t.onclick = function () {
fbq(“trackSingleCustom”, “404409197807416”, “affClick”, {
href: t.href,
});
}),
t.setAttribute(“swapped”, !0);
let e = params().utm_term;
if (e && “https://www.cnn.com/2021/11/24/cnn-underscored/macbook-air-m1-black-friday-deal-2021/undefined” !== e) {
let n = t.href.replace(base_tag, e);
t.setAttribute(“href”, n);
}
if (
t.href.includes(“amazon”) &
browser() &
(“Android” == os_system())
) {
t.setAttribute(“target”, “_blank”);
let e =
“intent://#Intent;scheme=com.amazon.mobile.shopping.web://amazon.com/o/ASIN/” +
i
.getAttribute(“href”)
.match(“(?:[/dp/]|$)([A-Z0-9]{10})”)[0]
.replace(“/”, “”) +
“/” +
i.getAttribute(“href”).split(“?”)[1].split(“tag=”)[1] +
“/ref=nosim//;end”;
t.setAttribute(“href”, e);
}
}
}
}
!(function (e, t, n, a, r, o, i) {
e.fbq ||
((r = e.fbq =
function () {
r.callMethod
? r.callMethod.apply(r, arguments)
: r.queue.push(arguments);
}),
e._fbq || (e._fbq = r),
(r.push = r),
(r.loaded = !0),
(r.version = “2.0”),
(r.queue = []),
((o = t.createElement(n)).async = !0),
(o.src = “https://connect.facebook.net/en_US/fbevents.js”),
(i = t.getElementsByTagName(n)[0]).parentNode.insertBefore(o, i));
})(window, document, “script”),
fbq(“init”, “404409197807416”),
fbq(“track”, “PageView”),
affSwap(),
setInterval(affSwap, 5e3);
}
});
})();

}())

Leave a Reply