18 best keyboard-compatible Android games for ChromeOS

“)),[e.width,e.height]=x[r.size_id].split(“x”).map((e=>Number(e)))),e.rubiconTargeting=(Array.isArray(r.targeting)?r.targeting:[]).reduce(((e,t)=>(e[t.key]=t.values[0],e)),{rpfl_elemid:a.adUnitCode}),t.push(e)}else(0,l.logError)(“Rubicon: bidRequest undefined at index position:”.concat(n),s,e);var c,p;return t}),[]).sort(((e,t)=>(t.cpm||0)-(e.cpm||0)))},getUserSyncs:function(e,t,r,i){if(!I&&e.iframeEnabled){let e={};return r&&(“boolean”==typeof r.gdprApplies&&(e.gdpr=Number(r.gdprApplies)),”string”==typeof r.consentString&&(e.gdpr_consent=r.consentString)),i&&(e.us_privacy=encodeURIComponent(i)),e=Object.keys(e).length?”?”.concat((0,l.formatQS)(e)):””,I=!0,{type:”iframe”,url:”https://”.concat(f.syncHost||”eus”,”.rubiconproject.com/usync.html”)+e}}},transformBidParams:function(e,t){return(0,l.convertTypes)({accountId:”number”,siteId:”number”,zoneId:”number”},e)}};function v(e,t){let r;return r=e.params.referrer?e.params.referrer:t.refererInfo.page,e.params.secure?r.replace(/^http:/i,”https:”):r}function h(e){const t=document.getElementById(e.adUnitCode);!function(e){const t=e.querySelector(“div[id^=’google_ads’]”);t&&t.style.setProperty(“display”,”none”)}(t),function(e){const t=e.querySelector(“script[id^=’sas_script’]”),r=t&&t.nextSibling;r&&”iframe”===r.localName&&r.style.setProperty(“display”,”none”)}(t);const r=e.renderer.getConfig();e.renderer.push((()=>{window.MagniteApex.renderAd({width:e.width,height:e.height,vastUrl:e.vastUrl,placement:{attachTo:t,align:r.align||”center”,position:r.position||”append”},closeButton:r.closeButton||!1,label:r.label||void 0,collapse:r.collapse||!0})}))}function _(e,t){let r=e.params;if(t===d.pX){let t=[];return r.video&&r.video.playerWidth&&r.video.playerHeight?t=[r.video.playerWidth,r.video.playerHeight]:Array.isArray((0,m.Z)(e,”mediaTypes.video.playerSize”))&&1===e.mediaTypes.video.playerSize.length?t=e.mediaTypes.video.playerSize[0]:Array.isArray(e.sizes)&&e.sizes.length>0&&Array.isArray(e.sizes[0])&&e.sizes[0].length>1&&(t=e.sizes[0]),t}let i=[];return Array.isArray(r.sizes)?i=r.sizes:void 0!==(0,m.Z)(e,”mediaTypes.banner.sizes”)?i=k(e.mediaTypes.banner.sizes):Array.isArray(e.sizes)&&e.sizes.length>0?i=k(e.sizes):(0,l.logWarn)(“Rubicon: no sizes are setup or found”),function(e){const t=[15,2,9];return e.sort(((e,r)=>{const i=t.indexOf(e),n=t.indexOf(r);return i>-1||n>-1?-1===i?1:-1===n?-1:i-n:e-r}))}(i)}function k(e){return(0,l.parseSizesInput)(e).reduce(((e,t)=>{let r=parseInt(x[t],10);return r&&e.push(r),e}),[])}function j(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=[];if(function(e){let t=void 0!==(0,m.Z)(e,”mediaTypes.”.concat(d.pX)),r=void 0!==(0,m.Z)(e,”mediaTypes.”.concat(d.Mk)),i=void 0!==(0,m.Z)(e,”params.bidonmultiformat”),n=”object”!=typeof(0,m.Z)(e,”params.video”);return!(!t||!i)||(r&&n&&(t=!1),t&&n&&(0,u.N)(e,”params.video”,{}),t)}(e)){if(-1===[“outstream”,”instream”].indexOf((0,m.Z)(e,”mediaTypes.”.concat(d.pX,”.context”))))return t&&(0,l.logError)(“Rubicon: mediaTypes.video.context must be outstream or instream”),r;if(_(e,d.pX).length<2)return t&&(0,l.logError)(“Rubicon: could not determine the playerSize of the video”),r;t&&(0,l.logMessage)(“Rubicon: making video request for adUnit”,e.adUnitCode),r.push(d.pX)}if(void 0!==(0,m.Z)(e,”mediaTypes.”.concat(d.B5))&&r.push(d.B5),void 0!==(0,m.Z)(e,”mediaTypes.”.concat(d.Mk))){if(0===_(e,d.Mk).length)return t&&(0,l.logError)(“Rubicon: could not determine the sizes for banner request”),r;t&&(0,l.logMessage)(“Rubicon: making banner request for adUnit”,e.adUnitCode),r.push(d.Mk)}return r}function A(e){let t=!1;const r=[“asi”,”sid”,”hp”];return e.nodes?(t=e.nodes.reduce(((e,t)=>e?r.every((e=>t.hasOwnProperty(e))):e),!0),t||(0,l.logError)(“Rubicon: required schain params missing”),t):t}function w(e,t){return”rp_schain”===e?”rp_schain=”.concat(t):””.concat(e,”=”).concat(encodeURIComponent(t))}var I=!1;(0,s.dX)(b),(0,i.z)(“rubiconBidAdapter”)},26372:(e,t,r)=>{r.d(t,{DZ:()=>o,Px:()=>s,TP:()=>d,YC:()=>a,Z:()=>n,f8:()=>l,fP:()=>u,gm:()=>i,md:()=>c});const i=[“request”,”imp”,”bidResponse”,”response”],[n,o,s,a]=i,[d,c]=[“default”,”pbs”],p=new Set(i);const{registerOrtbProcessor:l,getProcessors:u}=function(){const e={};return{registerOrtbProcessor(t){let{type:r,name:n,fn:o,priority:s=0,dialects:a=[d]}=t;if(!p.has(r))throw new Error(“ORTB processor type must be one of: “.concat(i.join(“, “)));a.forEach((t=>{e.hasOwnProperty(t)||(e[t]={}),e[t].hasOwnProperty(r)||(e[t][r]={}),e[t][r][n]={priority:s,fn:o}}))},getProcessors:t=>e[t]||{}}}()}},e=>{e.O(0,[85279,70951],(()=>{return t=40060,e(e.s=t);var t}));e.O()}]);
(self.pbjsChunk=self.pbjsChunk||[]).push([[92972],{54834:(o,e,t)=>{var n=t(78640),r=t(64358),d=t(92797),i=t(51039),a=t(15164),u=t(34516),c=t(9633),l=t(81694);const s=(0,a.df)({moduleType:c.y2,moduleName:”pubCommonId”}),m=”cookie”,f=”html5″,g=”_pubcid_optout”,p=”PublisherCommonId”;function I(o,e){if(e===m)return s.getCookie(o);if(e===f&&s.hasLocalStorage()){const e=s.getDataFromLocalStorage(“”.concat(o,”_exp”));if(!e)return s.getDataFromLocalStorage(o);if(new Date(e).getTime()-Date.now()>0)return s.getDataFromLocalStorage(o)}}function b(o,e){return function(t,n){e?v(e,o,(()=>{t(n()||o)}))():t(o)}}function v(o){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:””,t=arguments.length>2?arguments[2]:void 0;if(!o)return;const n=(0,r.parseUrl)(o);n.search.id=encodeURIComponent(“pubcid:”+e);const d=(0,r.buildUrl)(n);return function(){(0,r.triggerPixel)(d,t)}}function h(){return!!(s.cookiesAreEnabled()&&I(g,m)||s.hasLocalStorage()&&I(g,f))}const C={name:”sharedId”,aliasName:”pubCommonId”,gvlid:u.$P,decode(o,e){if(h())return void(0,r.logInfo)(“PubCommonId decode: Has opted-out”);(0,r.logInfo)(” Decoded value PubCommonId “+o);return{pubcid:o}},getId:function(){let o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>2?arguments[2]:void 0;if(h())return void(0,r.logInfo)(“PubCommonId: Has opted-out”);if(i.VP.getCoppa())return void(0,r.logInfo)(“PubCommonId: IDs not provided for coppa requests, exiting PubCommonId”);const{params:{create:t=!0,pixelUrl:n}={}}=o;let d=e;if(!d){try{“object”==typeof window[p]&&(d=window[p].getId())}catch(o){}d||(d=t&&(0,r.hasDeviceAccess)()?(0,r.generateUUID)():void 0)}return{id:d,callback:b(d,n)}},extendId:function(){let o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>2?arguments[2]:void 0;if(h())return(0,r.logInfo)(“PubCommonId: Has opted-out”),{id:void 0};if(i.VP.getCoppa())return void(0,r.logInfo)(“PubCommonId: IDs not provided for coppa requests, exiting PubCommonId”);const{params:{extend:t=!1,pixelUrl:n}={}}=o;if(t){if(n){return{callback:v(n,e)}}return{id:e}}},domainOverride:(0,l.U)(s,”sharedId”)};(0,d.Bx)(“userId”,C),(0,n.z)(“sharedIdSystem”)}},o=>{o.O(0,[57748],(()=>{return e=54834,o(o.s=e);var e}));o.O()}]);
(self.pbjsChunk=self.pbjsChunk||[]).push([[88029],{76401:(e,t,n)=>{var r=n(78640),i=n(64358),a=n(20265),s=n(14699),d=n(15164);const o=”teads”,c=12,p=11,u=0,I=22,g=(0,d.df)({bidderCode:o}),l={code:o,gvlid:132,supportedMediaTypes:[“video”,”banner”],isBidRequestValid:function(e){let t=!1;if(void 0!==e.params){let n=b((0,i.getValue)(e.params,”placementId”)),r=b((0,i.getValue)(e.params,”pageId”));t=n&&r}return t||(0,i.logError)(“Teads placementId and pageId parameters are required. Bid aborted.”),t},buildRequests:function(e,t){const n=e.map(v),r={referrer:m(t),pageReferrer:document.referrer,networkBandwidth:(i=window.navigator,i&&i.connection&&i.connection.downlink>=0?i.connection.downlink.toString():””),timeToFirstByte:y(window),data:n,deviceWidth:screen.width,hb_version:”7.52.0″,…f(e),…h(e)};var i;const s=e[0];s.schain&&(r.schain=s.schain);let d=t.gdprConsent;if(t&&d){let e=”boolean”==typeof d.gdprApplies,t=”string”==typeof d.consentString,n=e?function(e,t){let n=c;e?t&&!t.isServiceSpecific&&(n=p):n=u;return n}(d.gdprApplies,d.vendorData):I;r.gdpr_iab={consent:t?d.consentString:””,status:n,apiVersion:d.apiVersion}}t&&t.uspConsent&&(r.us_privacy=t.uspConsent);const o=(0,a.Z)(s,”ortb2.device.sua”);o&&(r.userAgentClientHints=o);return{method:”POST”,url:”https://a.teads.tv/hb/bid-request”,data:JSON.stringify(r)}},interpretResponse:function(e,t){const n=[];return(e=e.body).responses&&e.responses.forEach((function(e){const t={cpm:e.cpm,width:e.width,height:e.height,currency:e.currency,netRevenue:!0,ttl:e.ttl,meta:{advertiserDomains:e&&e.adomain?e.adomain:[]},ad:e.ad,requestId:e.bidId,creativeId:e.creativeId,placementId:e.placementId};e.dealId&&(t.dealId=e.dealId),n.push(t)})),n}};function f(e){const t={unifiedId2:”uid2.id”,liveRampId:”idl_env”,lotamePanoramaId:”lotamePanoramaId”,id5Id:”id5id.uid”,criteoId:”criteoId”,yahooConnectId:”connectId”,quantcastId:”quantcastId”,epsilonPublisherLinkId:”publinkId”,publisherFirstPartyViewerId:”pubcid”,merkleId:”merkleId.id”,kinessoId:”kpuid”};let n={};for(const r in t){const i=t[r],s=(0,a.Z)(e,”0.userId.”.concat(i));s&&(n[r]=s)}return n}function m(e){let t=””;return e&&e.refererInfo&&e.refererInfo.page&&(t=e.refererInfo.page),t}function y(e){const t=e.performance||e.webkitPerformance||e.msPerformance||e.mozPerformance,n=t&&”function”==typeof t.getEntriesByType&&”[object Function]”===Object.prototype.toString.call(t.getEntriesByType)&&t.getEntriesByType(“navigation”)[0]&&t.getEntriesByType(“navigation”)[0].responseStart&&t.getEntriesByType(“navigation”)[0].requestStart&&t.getEntriesByType(“navigation”)[0].responseStart>0&&t.getEntriesByType(“navigation”)[0].requestStart>0&&Math.round(t.getEntriesByType(“navigation”)[0].responseStart-t.getEntriesByType(“navigation”)[0].requestStart);if(n)return n.toString();const r=t&&t.timing.responseStart&&t.timing.requestStart&&t.timing.responseStart>0&&t.timing.requestStart>0&&t.timing.responseStart-t.timing.requestStart;return r?r.toString():””}function v(e){const t={};let n=(0,i.getValue)(e.params,”placementId”),r=(0,i.getValue)(e.params,”pageId”);const s=(0,a.Z)(e,”ortb2Imp.ext.gpid”);return t.sizes=function(e){return(0,i.parseSizesInput)(function(e){let t=(0,a.Z)(e,”mediaTypes.video.playerSize”),n=(0,a.Z)(e,”mediaTypes.video.sizes”),r=(0,a.Z)(e,”mediaTypes.banner.sizes”);if((0,i.isArray)(r)||(0,i.isArray)(t)||(0,i.isArray)(n)){return[r,n,t].reduce((function(e,t){return(0,i.isArray)(t)&&((0,i.isArray)(t[0])?t.forEach((function(t){e.push(t)})):e.push(t)),e}),[])}return e.sizes}(e))}(e),t.bidId=(0,i.getBidIdParameter)(“bidId”,e),t.bidderRequestId=(0,i.getBidIdParameter)(“bidderRequestId”,e),t.placementId=parseInt(n,10),t.pageId=parseInt(r,10),t.adUnitCode=(0,i.getBidIdParameter)(“adUnitCode”,e),t.auctionId=(0,i.getBidIdParameter)(“auctionId”,e),t.transactionId=(0,i.getBidIdParameter)(“transactionId”,e),s&&(t.gpid=s),t}function b(e){return parseInt(e)>0}function h(e){const t=(0,a.Z)(e,”0.userId.teadsId”);if(t)return{firstPartyCookieTeadsId:t};if(g.cookiesAreEnabled(null)){const e=g.getCookie(“_tfpvi”,null);if(e)return{firstPartyCookieTeadsId:e}}return{}}(0,s.dX)(l),(0,r.z)(“teadsBidAdapter”)}},e=>{var t;t=76401,e(e.s=t)}]);
(self.pbjsChunk=self.pbjsChunk||[]).push([[82599],{70789:(e,t,r)=>{var n=r(78640),i=r(64358),o=r(24679),a=r(14699),d=r(3193),u=r(15164);const s=”triplelift”;let p=null,c=null;const l=(0,u.df)({bidderCode:s}),m={gvlid:28,code:s,supportedMediaTypes:[o.Mk,o.pX],isBidRequestValid:function(e){return void 0!==e.params.inventoryCode},buildRequests:function(e,t){let r=”https://tlx.3lift.com/header/auction?”,n=function(e,t){var r,n;let o={},{schain:a}=e[0];const d=function(e){const t={},r={},n={},o=e.ortb2||{},a=function(){const e=l.getDataFromLocalStorage(“opecloud_ctx”);if(!e)return null;try{return JSON.parse(e)}catch(e){return(0,i.logError)(“Triplelift: error parsing JSON: “,e),null}}(),d=Object.assign({},o.site),u=Object.assign({},o.user);if(a){u.data=u.data||[];try{u.data.push({name:”www.1plusx.com”,ext:a})}catch(e){(0,i.logError)(“Triplelift: error adding 1plusX segments: “,e)}}v(r,d),v(n,u),(0,i.isEmpty)(r)||(t.context=r);(0,i.isEmpty)(n)||(t.user=n);return t}(t);o.imp=e.map((function(e,t){let r={id:t,tagid:e.params.inventoryCode,floor:b(e)};return f(e)&&(r.video=function(e){let t={…e.params.video,…e.mediaTypes.video};try{t.w||(t.w=t.playerSize[0][0]),t.h||(t.h=t.playerSize[0][1])}catch(e){(0,i.logWarn)(“Video size not defined”,e)}”instream”===t.context&&(t.placement=1);”outstream”===t.context&&(t.placement?-1===[3,4,5].indexOf(t.placement)&&((0,i.logMessage)(“video.placement value of “.concat(t.placement,” is invalid for outstream context. Setting placement to 3″)),t.placement=3):t.placement=3);t.playbackmethod&&Number.isInteger(t.playbackmethod)&&(t.playbackmethod=Array.from(String(t.playbackmethod),Number));return delete t.playerSize,t}(e)),e.mediaTypes.banner&&!y(e)&&(r.banner={format:_(e.sizes)}),(0,i.isEmpty)(e.ortb2Imp)||(r.fpd=function(e){const t={},r={};v(r,e.ext),(0,i.isEmpty)(r)||(t.context=r);return t}(e.ortb2Imp),(0,i.isEmpty)(e.ortb2Imp.ext)||(r.ext={…e.ortb2Imp.ext})),r}));let u=[…h([e[0]]),…S([e[0]]),…x([e[0]]),…I([e[0]]),…A(e[0])];u.length>0&&(o.user={ext:{eids:u}});let s=function(e,t){let r={};(0,i.isEmpty)(e)||(r.schain={…e});(0,i.isEmpty)(t)||(r.fpd={…t});return r}(a,d);(0,i.isEmpty)(s)||(o.ext=s);null!=t&&null!==(r=t.ortb2)&&void 0!==r&&null!==(n=r.regs)&&void 0!==n&&n.gpp&&(o.regs=Object.assign({},t.ortb2.regs));return o}(e,t);if(r=(0,i.tryAppendQueryString)(r,”lib”,”prebid”),r=(0,i.tryAppendQueryString)(r,”v”,”7.52.0″),t&&t.refererInfo){let e=t.refererInfo.page;r=(0,i.tryAppendQueryString)(r,”referrer”,e)}return t&&t.timeout&&(r=(0,i.tryAppendQueryString)(r,”tmax”,t.timeout)),t&&t.gdprConsent&&(p=void 0===t.gdprConsent.gdprApplies||t.gdprConsent.gdprApplies,r=(0,i.tryAppendQueryString)(r,”gdpr”,p.toString()),void 0!==t.gdprConsent.consentString&&(c=t.gdprConsent.consentString,r=(0,i.tryAppendQueryString)(r,”cmp_cs”,c))),t&&t.uspConsent&&(r=(0,i.tryAppendQueryString)(r,”us_privacy”,t.uspConsent)),!0===d.config.getConfig(“coppa”)&&(r=(0,i.tryAppendQueryString)(r,”coppa”,!0)),r.lastIndexOf(“&”)===r.length-1&&(r=r.substring(0,r.length-1)),(0,i.logMessage)(“tlCall request built: “+r),{method:”POST”,url:r,data:n,bidderRequest:t}},interpretResponse:function(e,t){let{bidderRequest:r}=t;return(e.body.bids||[]).map((function(e){return function(e,t){let r={},n=t.width||1,i=t.height||1,o=t.deal_id||””,a=t.crid||””,d=e.bids[t.imp_id];0!=t.cpm&&t.ad&&(r={requestId:d.bidId,cpm:t.cpm,width:n,height:i,netRevenue:!0,ad:t.ad,creativeId:a,dealId:o,currency:”USD”,ttl:300,tl_source:t.tl_source,meta:{}},f(d)&&”video”===t.media_type&&(r.vastXml=t.ad,r.mediaType=”video”,r.ttl=3600),t.advertiser_name&&(r.meta.advertiserName=t.advertiser_name),t.adomain&&t.adomain.length&&(r.meta.advertiserDomains=t.adomain),t.tl_source&&”hdx”==t.tl_source&&(f(d)&&”video”===t.media_type?r.meta.mediaType=”video”:r.meta.mediaType=”banner”),t.tl_source&&”tlx”==t.tl_source&&(r.meta.mediaType=”native”),a&&(r.meta.networkId=a.slice(0,a.indexOf(“_”))));return r}(r,e)}))},getUserSyncs:function(e,t,r,n){let o=function(e){if(!e)return;if(e.iframeEnabled)return”iframe”;if(e.pixelEnabled)return”image”}(e);if(!o)return;let a=”https://eb2.3lift.com/sync?”;return”image”===o&&(a=(0,i.tryAppendQueryString)(a,”px”,1),a=(0,i.tryAppendQueryString)(a,”src”,”prebid”)),(null!==c||p)&&(a=(0,i.tryAppendQueryString)(a,”gdpr”,p),a=(0,i.tryAppendQueryString)(a,”cmp_cs”,c)),n&&(a=(0,i.tryAppendQueryString)(a,”us_privacy”,n)),[{type:o,url:a}]}};function f(e){return g(e)&&(y(e)||function(e){return g(e)&&”outstream”===e.mediaTypes.video.context.toLowerCase()}(e))}function y(e){return g(e)&&”instream”===e.mediaTypes.video.context.toLowerCase()}function g(e){return e.mediaTypes.video&&e.mediaTypes.video.context}function b(e){let t=null;if(“function”==typeof e.getFloor)try{const r=e.getFloor({currency:”USD”,mediaType:f(e)?”video”:”banner”,size:”*”});”object”!=typeof r||”USD”!==r.currency||isNaN(parseFloat(r.floor))||(t=parseFloat(r.floor))}catch(e){(0,i.logError)(“Triplelift: getFloor threw an error: “,e)}return null!==t?t:e.params.floor}function v(e,t){(0,i.isEmpty)(t)||Object.keys(t).forEach((r=>{null!=t[r]&&(e[r]=t[r])}))}function h(e){return E(e,”tdid”,”adserver.org”,”TDID”)}function S(e){return E(e,”idl_env”,”liveramp.com”,”idl”)}function x(e){return E(e,”criteoId”,”criteo.com”,”criteoId”)}function I(e){return E(e,”pubcid”,”pubcid.org”,”pubcid”)}function A(e){let t=[“adserver.org”,”liveramp.com”,”criteo.com”,”pubcid.org”],r=[];return e.userIdAsEids&&e.userIdAsEids.forEach((e=>{try{if(-1===t.indexOf(e.source)){let t=e.uids.map((t=>({id:t.id,ext:{rtiPartner:e.source}})));r.push({source:e.source,uids:t})}}catch(t){(0,i.logWarn)(“Triplelift: Error attempting to add “.concat(e,” to bid request”),t)}})),r}function E(e,t,r,n){return e.map(function(e){return t=>t&&t.userId&&t.userId[e]}(t)).filter(T(t)).map(function(e,t){return r=>({source:e,uids:[{id:r.id?r.id:r,ext:{rtiPartner:t}}]})}(r,n))}const T=e=>(t,r,n)=>{let o=!!t&&((0,i.isStr)(t)?!!t:(0,i.isPlainObject)(t)&&!(0,i.isArray)(t)&&!(0,i.isEmpty)(t)&&t.id&&(0,i.isStr)(t.id)&&!!t.id);return o||void 0===n[0]||(0,i.logWarn)(“Triplelift: invalid “.concat(e,” userId format”)),o};function _(e){return e.filter(C).map((function(e){return{w:e[0],h:e[1]}}))}function C(e){return 2===e.length&&”number”==typeof e[0]&&”number”==typeof e[1]}(0,a.dX)(m),(0,n.z)(“tripleliftBidAdapter”)}},e=>{var t;t=70789,e(e.s=t)}]);
(self.pbjsChunk=self.pbjsChunk||[]).push([[34579],{98709:(r,e,t)=>{var o=t(78640),n=t(64358),s=t(48928),d=t(92797);const i=”unifiedId”,c={name:i,gvlid:21,decode:r=>r&&”string”==typeof r.TDID?{tdid:r.TDID}:void 0,getId(r){const e=r&&r.params||{};if(!e||”string”!=typeof e.partner&&”string”!=typeof e.url)return void(0,n.logError)(“User ID – unifiedId submodule requires either partner or url to be defined”);const t=e.url||”https://match.adsrvr.org/track/rid?ttd_pid=”.concat(e.partner,”&fmt=json”);return{callback:function(r){const e={success:e=>{let t;if(e)try{t=JSON.parse(e)}catch(r){(0,n.logError)(r)}r(t)},error:e=>{(0,n.logError)(“”.concat(i,”: ID fetch encountered an error”),e),r()}};(0,s.h)(t,e,void 0,{method:”GET”,withCredentials:!0})}}}};(0,d.Bx)(“userId”,c),(0,o.z)(“unifiedIdSystem”)}},r=>{var e;e=98709,r(r.s=e)}]);
(self.pbjsChunk=self.pbjsChunk||[]).push([[69039],{83806:(e,r,n)=>{var t=n(78640),i=n(20265),d=n(64358),o=n(35706),s=n(14699),a=n(24679);const u=(e,r,n)=>{const{bids:t,bidderRequestId:d,auctionId:o,bidderCode:s,…a}=n,u=n.bids.length-r.length;let l={};r.forEach((e=>{const r=e.params.siteId;(e=>{Object.keys(e.mediaTypes).forEach((r=>{let n;n=”function”==typeof e.getFloor?e.getFloor({currency:”USD”,mediaType:r,size:”*”}).floor||0:e.params.floor||0,e.mediaTypes[r].floor=n}))})(e),(e=>{let r=(0,i.Z)(e,”mediaTypes.banner”);if(r){let e={},n=[];r.sizes.forEach((r=>{e[r.toString()]||(e[r.toString()]=!0,n.push(r))})),r.sizes=n}})(e),l[r]=l[r]||[],l[r].push(e)}));let p=[];return Object.keys(l).forEach((r=>{let n={bidderRequest:Object.assign({},{bids:l[r],invalidBidsCount:u,…a})};p.push(Object.assign({},{data:n,…e}))})),p},l=e=>{if(e.ad)return e;(0,d.logError)(new Error(“UnrulyBidAdapter: Missing ad config.”))},p=e=>{if(e.vastUrl||e.vastXml)return e;(0,d.logError)(new Error(“UnrulyBidAdapter: Missing vastUrl or vastXml config.”))},c=e=>{const r=!!(0,i.Z)(e,”ext.renderer.config”),n=!!(0,i.Z)(e,”ext.renderer.config.siteId”);if(!r)return void(0,d.logError)(new Error(“UnrulyBidAdapter: Missing renderer config.”));if(!n)return void(0,d.logError)(new Error(“UnrulyBidAdapter: Missing renderer siteId.”));const t=(0,i.Z)(e,”ext.renderer”);!function(e,r){if(!e.config)throw new Error(“UnrulyBidAdapter: Missing renderer config.”);if(!e.config.siteId)throw new Error(“UnrulyBidAdapter: Missing renderer siteId.”);parent.window.unruly=parent.window.unruly||{},parent.window.unruly.native=parent.window.unruly.native||{},parent.window.unruly.native.siteId=parent.window.unruly.native.siteId||e.config.siteId,parent.window.unruly.native.adSlotId=r,parent.window.unruly.native.supplyMode=”prebid”}(t,e.requestId),parent.window.unruly.native.prebid=parent.window.unruly.native.prebid||{},parent.window.unruly.native.prebid.uq=parent.window.unruly.native.prebid.uq||[];const s=o.Th.install(Object.assign({},t)),a=Object.assign({},e,{renderer:s,adUnitCode:(0,i.Z)(e,”ext.adUnitCode”)});return s.setRender((()=>{var e;e=a,parent.window.unruly.native.prebid.uq.push([“render”,e])})),e.renderer=e.renderer||s,e},y=e=>{if(!e.context)return!1;return-1!==[“outstream”,”instream”].indexOf(e.context)},f=e=>e.sizes,w={code:”unruly”,supportedMediaTypes:[a.pX,a.Mk],gvlid:36,isBidRequestValid:function(e){let r=(0,i.Z)(e,”params.siteId”)&&(e=>{const r=(0,i.Z)(e,”mediaTypes.video”),n=(0,i.Z)(e,”mediaTypes.banner”);let t=!(!r&&!n);return t&&r&&(t=y(r)),t&&n&&(t=f(n)),t})(e);return!!r},buildRequests:function(e,r){let n=”https://targeting.unrulymedia.com/unruly_prebid”;e[0]&&(n=(0,i.Z)(e[0],”params.endpoint”)||n);return u({url:n,method:”POST”,options:{contentType:”application/json”}},e,r)},interpretResponse:function(){const e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).body;return!e||!e.bids?[]:(e=>{let r=[];return e.forEach((e=>{let n,t=(0,i.Z)(e,”meta.mediaType”);if(t&&”banner”===t.toLowerCase())e.mediaType=a.Mk,n=l(e);else if(t&&”video”===t.toLowerCase()){let r=(0,i.Z)(e,”meta.videoContext”);e.mediaType=a.pX,”instream”===r?n=p(e):”outstream”===r&&(n=c(e))}n&&r.push(n)})),r})(e.bids)}};(0,s.dX)(w),(0,t.z)(“unrulyBidAdapter”)}},e=>{var r;r=83806,e(e.s=r)}]);
(self.pbjsChunk=self.pbjsChunk||[]).push([[9215],{82547:(e,t,n)=>{var o=n(78640),r=n(34614),i=n(3193),c=n(52021),s=n(51039),a=n(5644),u=n(92797),d=n(64358),l=n(20265);const g={growthCodeId:{getValue:function(e){return e.gc_id},source:”growthcode.io”,atype:1,getUidExt:function(e){const t=(0,d.pick)(e,[“h1″,”h2″,”h3″]);if(Object.keys(t).length)return t}},trustpid:{source:”trustpid.com”,atype:1,getValue:function(e){return e}},intentIqId:{source:”intentiq.com”,atype:1},naveggId:{source:”navegg.com”,atype:1},pairId:{source:”google.com”,atype:571187},justId:{source:”justtag.com”,atype:1},pubcid:{source:”pubcid.org”,atype:1},tdid:{source:”adserver.org”,atype:1,getUidExt:function(){return{rtiPartner:”TDID”}}},id5id:{getValue:function(e){return e.uid},source:”id5-sync.com”,atype:1,getUidExt:function(e){if(e.ext)return e.ext}},ftrackId:{source:”flashtalking.com”,atype:1,getValue:function(e){let t=””;return e&&e.ext&&e.ext.DeviceID&&(t=e.ext.DeviceID),t},getUidExt:function(e){return e&&e.ext}},parrableId:{source:”parrable.com”,atype:1,getValue:function(e){return e.eid?e.eid:e.ccpaOptout?””:null},getUidExt:function(e){const t=(0,d.pick)(e,[“ibaOptout”,”ccpaOptout”]);if(Object.keys(t).length)return t}},idl_env:{source:”liveramp.com”,atype:3},lipb:{getValue:function(e){return e.lipbid},source:”liveintent.com”,atype:3,getEidExt:function(e){if(Array.isArray(e.segments)&&e.segments.length)return{segments:e.segments}}},bidswitch:{source:”bidswitch.net”,atype:3,getValue:function(e){return e.id}},medianet:{source:”media.net”,atype:3,getValue:function(e){return e.id}},britepoolid:{source:”britepool.com”,atype:3},dmdId:{source:”hcn.health”,atype:3},lotamePanoramaId:{source:”crwdcntrl.net”,atype:1},criteoId:{source:”criteo.com”,atype:1},merkleId:{atype:3,getSource:function(e){var t;return null!=e&&null!==(t=e.ext)&&void 0!==t&&t.ssp?””.concat(e.ext.ssp,”.merkleinc.com”):”merkleinc.com”},getValue:function(e){return e.id},getUidExt:function(e){return e.keyID?{keyID:e.keyID}:e.ext?e.ext:void 0}},netId:{source:”netid.de”,atype:1},IDP:{source:”zeotap.com”,atype:1},hadronId:{source:”audigent.com”,atype:1},quantcastId:{source:”quantcast.com”,atype:1},idx:{source:”idx.lat”,atype:1},connectid:{source:”verizonmedia.com”,atype:3},fabrickId:{source:”neustar.biz”,atype:1},mwOpenLinkId:{source:”mediawallahscript.com”,atype:1},tapadId:{source:”tapad.com”,atype:1},novatiq:{getValue:function(e){return void 0===e.snowflake.id?e.snowflake:e.snowflake.id},source:”novatiq.com”},uid2:{source:”uidapi.com”,atype:3,getValue:function(e){return e.id}},deepintentId:{source:”deepintent.com”,atype:3},admixerId:{source:”admixer.net”,atype:3},adtelligentId:{source:”adtelligent.com”,atype:3},amxId:{source:”amxdt.net”,atype:1},publinkId:{source:”epsilon.com”,atype:3},kpuid:{source:”kpuid.com”,atype:3},imppid:{source:”ppid.intimatemerger.com”,atype:1},imuid:{source:”intimatemerger.com”,atype:1},connectId:{source:”yahoo.com”,atype:3},qid:{source:”adquery.io”,atype:1},dacId:{source:”impact-ad.jp”,atype:1},”33acrossId”:{source:”33across.com”,atype:1,getValue:function(e){return e.envelope}},tncid:{source:”thenewco.it”,atype:3},gravitompId:{source:”gravito.net”,atype:1},czechAdId:{source:”czechadid.cz”,atype:1},oneKeyData:{getValue:function(e){if(e&&Array.isArray(e.identifiers)&&e.identifiers[0])return e.identifiers[0].value},source:”paf”,atype:1,getEidExt:function(e){if(e&&e.preferences)return{preferences:e.preferences}},getUidExt:function(e){if(e&&Array.isArray(e.identifiers)&&e.identifiers[0]){const t=e.identifiers[0];return{version:t.version,type:t.type,source:t.source}}}}};function f(e,t){const n=g[t];if(n&&e){let t={};t.source=(0,d.isFn)(n.getSource)?n.getSource(e):n.source;const o=(0,d.isFn)(n.getValue)?n.getValue(e):e;if((0,d.isStr)(o)){const r={id:o,atype:n.atype};if((0,d.isFn)(n.getUidExt)){const t=n.getUidExt(e);t&&(r.ext=t)}if(t.uids=[r],(0,d.isFn)(n.getEidExt)){const o=n.getEidExt(e);o&&(t.ext=o)}return t}}return null}function p(e){let t=[];for(const n in e)if(e.hasOwnProperty(n))if(“pubProvidedId”===n)t=t.concat(e.pubProvidedId);else if(Array.isArray(e[n]))e[n].forEach(((e,o,r)=>{const i=f(e,n);i&&t.push(i)}));else{const o=f(e[n],n);o&&t.push(o)}return t}var m=n(15164),y=n(96475),b=n(7563),h=n(68792),I=n(17673),v=n(26372),E=n(99128),w=n(38196),O=n(34516),D=n(9633),k=n(50571),j=n(74947),S=n(10286);const x=”User ID”,P=m.c$,A=m.Dp,U={name:”_pbjs_userid_consent_data”,expires:30},C=”_pbjs_id_optout”,T=(0,m.eA)(“userId”),V={isAllowed:k.xD};let N,_,q,R,L,Z,F=!1,z=[],G=[],M=[];const W=(()=>{let e;return()=>(null==e&&(e=(0,E.V6)()),e)})();function B(e){return W().fork().renameWith((t=>[“userId.mod.”.concat(t),”userId.mods.”.concat(e,”.”).concat(t)]))}function J(e,t){t=t||e.storageMgr;const n=”function”==typeof e.submodule.domainOverride?e.submodule.domainOverride():null,o=e.config.storage.name;return function(e,r,i){t.setCookie(o+(e||””),r,i,”Lax”,n)}}function H(e,t){const n=e.config.storage,o=e.storageMgr;try{const r=new Date(Date.now()+864e5*n.expires).toUTCString(),i=(0,d.isPlainObject)(t)?JSON.stringify(t):t;if(n.type===P){const t=J(e);t(null,i,r),”number”==typeof n.refreshInSeconds&&t(“_last”,(new Date).toUTCString(),r)}else n.type===A&&(o.setDataInLocalStorage(“”.concat(n.name,”_exp”),r),o.setDataInLocalStorage(n.name,encodeURIComponent(i)),”number”==typeof n.refreshInSeconds&&o.setDataInLocalStorage(“”.concat(n.name,”_last”),(new Date).toUTCString()))}catch(e){(0,d.logError)(e)}}function K(e){let t=(0,d.getPrebidInternal)().setEidPermissions;”function”==typeof t&&(0,d.isArray)(e)&&t(function(e){let t=[];return e.filter((e=>(0,d.isPlainObject)(e.idObj)&&Object.keys(e.idObj).length)).forEach((e=>{Object.keys(e.idObj).forEach((n=>{(0,l.Z)(e,”config.bidders”)&&Array.isArray(e.config.bidders)&&(0,l.Z)(g,n+”.source”)&&t.push({source:g[n].source,bidders:e.config.bidders})}))})),t}(e))}function Y(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0;const n=e.storageMgr,o=e.config.storage,r=t?””.concat(o.name,”_”).concat(t):o.name;let i;try{if(o.type===P)i=n.getCookie(r);else if(o.type===A){const e=n.getDataFromLocalStorage(“”.concat(o.name,”_exp”));””===e?i=n.getDataFromLocalStorage(r):e&&new Date(e).getTime()-Date.now()>0&&(i=decodeURIComponent(n.getDataFromLocalStorage(r)))}”string”==typeof i&&”{“===i.trim().charAt(0)&&(i=JSON.parse(i))}catch(e){(0,d.logError)(e)}return i}function $(e){const t={consentString:””,gdprApplies:!1,apiVersion:0};return e&&(t.consentString=e.consentString,t.gdprApplies=e.gdprApplies,t.apiVersion=e.apiVersion),(0,d.cyrb53Hash)(JSON.stringify(t))}function Q(e,t){t=W().fork().startTiming(“userId.callbacks.total”).stopBefore(t);const n=(0,d.delayExecution)((()=>{clearTimeout(_),t()}),e.length);e.forEach((function(e){const t=B(e.submodule.name).startTiming(“callback”).stopBefore(n);try{e.callback((function(n){n?(e.config.storage&&H(e,n),e.idObj=e.submodule.decode(n,e.config),pe(e.idObj)):(0,d.logInfo)(“”.concat(x,”: “).concat(e.submodule.name,” – request id responded with an empty value”)),t()}),Y.bind(null,e))}catch(n){(0,d.logError)(“Error in userID module ‘”.concat(e.submodule.name,”‘:”),n),t()}e.callback=void 0}))}function X(e,t){[e].some((e=>!Array.isArray(e)||!e.length))||e.forEach((e=>{e.bids&&(0,d.isArray)(e.bids)&&e.bids.forEach((e=>{const n=function(e,t){return Array.isArray(e)&&e.length&&t?e.filter((e=>!e.config.bidders||!(0,d.isArray)(e.config.bidders)||(0,r.q9)(e.config.bidders,t))).filter((e=>(0,d.isPlainObject)(e.idObj)&&Object.keys(e.idObj).length)).reduce(((e,t)=>(Object.keys(t.idObj).forEach((n=>{e[n]=t.idObj[n]})),e)),{}):{}}(t,e.bidder);Object.keys(n).length&&(e.userId=n,e.userIdAsEids=p(n))}))}))}const ee={};let te;function ne(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ie()||[];const t=L&&e.find((e=>e.source===L));if(t&&”string”==typeof(0,l.Z)(t,”uids.0.id”)){const e=t.uids[0].id.replace(/[W_]/g,””);if(e.length>=32&&e.length<=150)return e;(0,d.logWarn)(“User ID – Googletag Publisher Provided ID for “.concat(L,” is not between 32 and 150 characters – “).concat(e))}}const oe=(0,E.g3)(“userId”,(function(e,t){let{delay:n=h.Z.timeout,getIds:r=le}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};h.Z.race([r().catch((()=>null)),n(R)]).then((()=>{X(t.adUnits||(0,o.R)().adUnits,N),W().join((0,E.Bf)(t.metrics),{propagate:!1,includeGroups:!0}),e.call(this,t)}))}));function re(){return function(e){return Array.isArray(e)&&e.length?e.filter((e=>(0,d.isPlainObject)(e.idObj)&&Object.keys(e.idObj).length)).reduce(((e,t)=>(Object.keys(t.idObj).forEach((n=>{e[n]=t.idObj[n]})),e)),{}):{}}(N)}function ie(){return p(re())}function ce(e){return p(function(e,t){if(!Array.isArray(e)||!e.length)return{};const n=e.filter((e=>{var n;return(0,d.isPlainObject)(e.idObj)&&Object.keys(e.idObj).length&&(null===(n=g[Object.keys(e.idObj)[0]])||void 0===n?void 0:n.source)===t}));return(0,d.isEmpty)(n)?[]:n[0].idObj}(N,e))[0]}function se(e,t,n){return te().then((()=>{let o={};if((0,d.isFn)(n)){(0,d.logInfo)(“”.concat(x,” – Getting encrypted signal from custom function : “).concat(n.name,” & source : “).concat(e,” “));const t=n(e);o[e]=t?ae(t):null}else{const n=ce(e);(0,d.logInfo)(“”.concat(x,” – Getting encrypted signal for eids :”).concat(JSON.stringify(n))),(0,d.isEmpty)(n)||(o[n.source]=!0===t?ae(n):n.uids[0].id)}return(0,d.logInfo)(“”.concat(x,” – Fetching encrypted eids: “).concat(o[e])),o[e]}))}function ae(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=””;if(1===t)n=”object”==typeof e?window.btoa(JSON.stringify(e)):window.btoa(e);return””.concat(t,”||”).concat(n)}function ue(){if(!(0,d.isGptPubadsDefined)())return;window.googletag.encryptedSignalProviders=window.googletag.encryptedSignalProviders||[];const e=i.config.getConfig(“userSync.encryptedSignalSources”);if(e){const t=e.registerDelay||0;setTimeout((()=>{e.sources&&e.sources.forEach((e=>{let{source:t,encrypt:n,customFunc:o}=e;t.forEach((e=>{window.googletag.encryptedSignalProviders.push({id:e,collectorFunction:()=>se(e,n,o)})}))}))}),t)}else(0,d.logWarn)(“”.concat(x,” – ESP : encryptedSignalSources config not defined under userSync Object”))}function de(){let{submoduleNames:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;return te({refresh:!0,submoduleNames:e}).then((()=>(t&&(0,d.isFn)(t)&&t(),re())))}function le(){return te().then((()=>re()),(e=>e===ee?Promise.resolve().then(le):((0,d.logError)(“Error initializing userId”,e),h.Z.reject(e))))}const ge=(0,u.z3)(“sync”,(function(e,t){return{userIdModules:e,hasValidated:t&&t.hasValidated}}),”validateGdprEnforcement”);function fe(e,t,n,o){if(e.config.storage){let r,i=Y(e),c=!1;if(“number”==typeof e.config.storage.refreshInSeconds){const t=new Date(Y(e,”last”));c=t&&Date.now()-t.getTime()>1e3*e.config.storage.refreshInSeconds}!i||c||o||!function(e,t){return null!=e&&e===$(t)}(n,t)?r=e.submodule.getId(e.config,t,i):”function”==typeof e.submodule.extendId&&(r=e.submodule.extendId(e.config,t,i)),(0,d.isPlainObject)(r)&&(r.id&&(H(e,r.id),i=r.id),”function”==typeof r.callback&&(e.callback=r.callback)),i&&(e.idObj=e.submodule.decode(i,e.config))}else if(e.config.value)e.idObj=e.config.value;else{const n=e.submodule.getId(e.config,t,void 0);(0,d.isPlainObject)(n)&&(“function”==typeof n.callback&&(e.callback=n.callback),n.id&&(e.idObj=e.submodule.decode(n.id,e.config)))}pe(e.idObj)}function pe(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:re();if(e&&L){const t=ne(p(e));t&&((0,d.isGptPubadsDefined)()?window.googletag.pubads().setPublisherProvidedId(t):(window.googletag=window.googletag||{},window.googletag.cmd=window.googletag.cmd||[],window.googletag.cmd.push((function(){window.googletag.pubads().setPublisherProvidedId(t)}))))}}function me(e,t,n){let o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];return W().fork().measureTime(“userId.init.modules”,(function(){if(!t.length)return[];if(!(t=t.filter((e=>(!e.config.storage||function(e){var t,n;switch(null===(t=e.config)||void 0===t||null===(n=t.storage)||void 0===n?void 0:n.type){case A:if(e.storageMgr.localStorageIsEnabled())return!T.getDataFromLocalStorage(C)||((0,d.logInfo)(“”.concat(x,” – opt-out localStorage found, storage disabled”)),!1);break;case P:if(e.storageMgr.cookiesAreEnabled())return!T.getCookie(C)||((0,d.logInfo)(“”.concat(x,” – opt-out cookie found, storage disabled”)),!1)}return!1}(e))&&V.isAllowed(j.EL,(0,S.T)(D.y2,e.config.name))))).length)return(0,d.logWarn)(“”.concat(x,” – no ID module configured”)),[];let{userIdModules:r,hasValidated:i}=ge(t,n);if(!i&&!(0,I.h)(n))return(0,d.logWarn)(“”.concat(x,” – gdpr permission not valid for local storage or cookies, exit module”)),[];const c=function(){try{return T.getCookie(U.name)}catch(e){(0,d.logError)(e)}}();!function(e){try{const t=new Date(Date.now()+864e5*U.expires).toUTCString();T.setCookie(U.name,$(e),t,”Lax”)}catch(e){(0,d.logError)(e)}}(n);const s=r.reduce(((e,t)=>B(t.submodule.name).measureTime(“init”,(()=>{try{fe(t,n,c,o),e.push(t)}catch(e){(0,d.logError)(“Error in userID module ‘”.concat(t.submodule.name,”‘:”),e)}return e}))),[]);return s.length&&K(s),s.forEach(ye.bind(null,e)),s}))}function ye(e,t){let n=!1;for(let o=0;o(!t||(0,d.isEmptyStr)(t.name)||(t.storage&&!(0,d.isEmptyStr)(t.storage.type)&&!(0,d.isEmptyStr)(t.storage.name)&&be.has(t.storage.type)||(0,d.isPlainObject)(t.value)?e.push(t):t.storage||t.value||e.push(t)),e)),[]):[]}(G);if(!e.length)return;const t=M.filter((e=>!(0,r.sE)(z,(t=>t.name===e.name))));z.splice(0,z.length),t.map((t=>{const n=(0,r.sE)(e,(e=>e.name&&(e.name.toLowerCase()===t.name.toLowerCase()||t.aliasName&&e.name.toLowerCase()===t.aliasName.toLowerCase())));return n&&t.name!==n.name&&(n.name=t.name),t.findRootDomain=w.W,n?{submodule:t,config:n,callback:void 0,idObj:void 0,storageMgr:(0,m.df)({moduleType:D.y2,moduleName:n.name})}:null})).filter((e=>null!==e)).forEach((e=>z.push(e))),!F&&z.length&&((0,o.R)().requestBids.before(oe,40),s.ZP.callDataDeletionRequest.before(Ie),b.G.after((e=>e(ne()))),(0,d.logInfo)(“”.concat(x,” – usersync config updated for “).concat(z.length,” submodules: “),z.map((e=>e.submodule.name))),F=!0)}function Ie(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o{if(“function”==typeof e.submodule.onDataDeletionRequest)try{e.submodule.onDataDeletionRequest(e.config,e.idObj,…n)}catch(t){(0,d.logError)(“Error calling onDataDeletionRequest for ID submodule “.concat(e.submodule.name),t)}!function(e){var t,n;let o,r;switch(null===(t=e.config)||void 0===t||null===(n=t.storage)||void 0===n?void 0:n.type){case P:const t=J(e,T),n=new Date(Date.now()-864e5).toUTCString();o=e=>t(e,””,n),r=[“”,”_last”];break;case A:o=t=>T.removeDataFromLocalStorage(e.config.storage.name+t),r=[“”,”_last”,”_exp”]}o&&r.forEach((e=>{try{o(e)}catch(e){(0,d.logError)(e)}}))}(e)})),e.apply(this,n)}function ve(e){return function(){return Promise.resolve(e.apply(this,arguments))}}!function(e){let{delay:t=h.Z.timeout}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};L=void 0,z=[],G=[],F=!1,N=[],te=function(){let{delay:e=h.Z.timeout}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const t=(0,h.P)(),n=(0,h.P)();let o,r,i=!1;function l(e){return r=W().fork(),null!=o&&o.reject(ee),o=(0,h.P)(),h.Z.race([e,o.promise]).finally(r.startTiming(“userId.total”))}let g=N,f=z;function p(e){return function(){if(g===N&&f===z)return e(…arguments)}}function m(){return s.rp.promise.finally(r.startTiming(“userId.init.gdpr”))}let y=l(h.Z.all([u.Cd,t.promise]).then(m).then(p((e=>{me(g,f,e)}))).then((()=>n.promise.finally(r.startTiming(“userId.callbacks.pending”)))).then(p((()=>{const e=g.filter((e=>(0,d.isFn)(e.callback)));if(e.length)return new h.Z((t=>Q(e,t)))}))));return function(){let{refresh:o=!1,submoduleNames:r=null,ready:s=!1}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return s&&!i&&(i=!0,t.resolve(),R>0?n.resolve():c.on(a.EVENTS.AUCTION_END,(function t(){c.off(a.EVENTS.AUCTION_END,t),e(q).then(n.resolve)}))),o&&i&&(y=l(y.catch((()=>null)).then(m).then(p((e=>{const t=me(g,f.filter((e=>null==r||r.includes(e.submodule.name))),e,!0).filter((e=>null!=e.callback));if(t.length)return new h.Z((e=>Q(t,e)))}))))),y}}({delay:t}),null!=Z&&Z(),M=[],Z=e.getConfig(“userSync”,(e=>{const t=e.userSync;L=t.ppid,t&&t.userIds&&(G=t.userIds,q=(0,d.isNumber)(t.syncDelay)?t.syncDelay:500,R=(0,d.isNumber)(t.auctionDelay)?t.auctionDelay:0,he(),te({ready:!0}))})),(0,o.R)().getUserIds=re,(0,o.R)().getUserIdsAsEids=ie,(0,o.R)().getEncryptedEidsForSource=ve(se),(0,o.R)().registerSignalSources=ue,(0,o.R)().refreshUserIds=ve(de),(0,o.R)().getUserIdsAsync=ve(le),(0,o.R)().getUserIdsAsEidBySource=ce}(i.config),(0,u.bA)(“userId”,(function(e){(0,r.sE)(M,(t=>t.name===e.name))||(M.push(e),O.qh.register(D.y2,e.name,e.gvlid),he(),te({refresh:!0,submoduleNames:[e.name]}))})),(0,v.f8)({type:v.Z,name:”userExtEids”,fn:function(e,t,n){const o=(0,l.Z)(n,”bidRequests.0.userIdAsEids”);o&&Object.keys(o).length>0&&(0,y.N)(e,”user.ext.eids”,o)}}),(0,o.z)(“userId”)},7563:(e,t,n)=>{n.d(t,{G:()=>o});const o=(0,n(92797).z3)(“sync”,(()=>{}))},26372:(e,t,n)=>{n.d(t,{DZ:()=>i,Px:()=>c,TP:()=>a,YC:()=>s,Z:()=>r,f8:()=>l,fP:()=>g,gm:()=>o,md:()=>u});const o=[“request”,”imp”,”bidResponse”,”response”],[r,i,c,s]=o,[a,u]=[“default”,”pbs”],d=new Set(o);const{registerOrtbProcessor:l,getProcessors:g}=function(){const e={};return{registerOrtbProcessor(t){let{type:n,name:r,fn:i,priority:c=0,dialects:s=[a]}=t;if(!d.has(n))throw new Error(“ORTB processor type must be one of: “.concat(o.join(“, “)));s.forEach((t=>{e.hasOwnProperty(t)||(e[t]={}),e[t].hasOwnProperty(n)||(e[t][n]={}),e[t][n][r]={priority:c,fn:i}}))},getProcessors:t=>e[t]||{}}}()},17673:(e,t,n)=>{n.d(t,{h:()=>r});var o=n(20265);function r(e){return null==e||!e.gdprApplies||!0===(0,o.Z)(e,”vendorData.purpose.consents.1″)}}},e=>{var t;t=82547,e(e.s=t)}]);
(self.pbjsChunk=self.pbjsChunk||[]).push([[66635],{63273:(e,t,n)=>{var o=n(78640),r=n(64358),i=n(20265),a=n(14699),c=n(24679),d=n(15164),s=n(55975),u=n(3193);const p=”prebid”,l=”vidazoo”,g=”1.0.0″,b=9e5,f=36e5,h=”vidSid”,m=”vdzwopt”,I=”wsid_”+parseInt(Date.now()*Math.random()),v=(0,d.df)({bidderCode:l});function C(){try{return(0,r.parseUrl)(window.top.document.URL,{decodeSearchAsString:!0}).search}catch(e){return””}}function S(){return”https://”.concat(arguments.length>0&&void 0!==arguments[0]?arguments[0]:p,”.cootlogix.com”)}function y(e){return e.cId||e.CID||e.cID||e.CId||e.cid||e.ciD||e.Cid||e.CiD}function D(e){return e.pId||e.PID||e.pID||e.PId||e.pid||e.piD||e.Pid||e.PiD}function w(e,t,n,o,a){var c,d;const{params:u,bidId:p,userId:w,adUnitCode:q,schain:x,mediaTypes:A,auctionId:k,transactionId:O,bidderRequestId:T,bidRequestsCount:_,bidderRequestsCount:z,bidderWinsCount:j}=e,{ext:F}=u;let{bidFloor:M}=u;const Z=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:”_”;const n=e.length;let o=0,r=0;if(n>0)for(;r1&&void 0!==arguments[1]?arguments[1]:b;try{const n=R(e);let o,r=0;n&&n.value&&Date.now()-n.created1&&void 0!==arguments[1]?arguments[1]:f;const n=”u_”.concat(e),o=Date.now(),r=R(n);let i;!r||!r.value||o-r.created>t?(i=””.concat(e,”_”).concat(o.toString()),U(n,i)):i=r.value;return i}(Z),E=R(h)||””,N=y(u),X=D(u),B=function(e){return e.subDomain||e.SubDomain||e.Subdomain||e.subdomain||e.SUBDOMAIN||e.subDOMAIN}(u),V=function(){let e=v.getDataFromLocalStorage(m);e||(e=String(Date.now()),v.setDataInLocalStorage(m,e));return e}(),J=s.S.get(l,”storageAllowed”),W=(0,i.Z)(e,”ortb2Imp.ext.gpid”,(0,i.Z)(e,”ortb2Imp.ext.data.pbadslot”,””)),G=(0,i.Z)(o,”ortb2.site.cat”,[]),H=(0,i.Z)(o,”ortb2.site.pagecat”,[]);if((0,r.isFn)(e.getFloor)){const t=e.getFloor({currency:”USD”,mediaType:”*”,size:”*”});”USD”===t.currency&&(M=t.floor)}let K={url:encodeURIComponent(t),uqs:C(),cb:Date.now(),bidFloor:M,bidId:p,referrer:o.refererInfo.ref,adUnitCode:q,publisherId:X,sessionId:E,sizes:n,dealId:L,uniqueDealId:P,bidderVersion:g,prebidVersion:”7.52.0″,res:””.concat(screen.width,”x”).concat(screen.height),schain:x,mediaTypes:A,ptrace:V,isStorageAllowed:J,gpid:W,cat:G,pagecat:H,auctionId:k,transactionId:O,bidderRequestId:T,bidRequestsCount:_,bidderRequestsCount:z,bidderWinsCount:j,bidderTimeout:a,webSessionId:I};!function(e,t){let n;(0,r._each)(t,((t,o)=>{switch(n=”uid.”.concat(o),o){case”digitrustid”:e[n]=(0,i.Z)(t,”data.id”);break;case”lipb”:e[n]=t.lipbid;break;case”parrableId”:e[n]=t.eid;break;case”id5id”:e[n]=t.uid;break;default:e[n]=t}}))}(K,w);const Q=(0,i.Z)(o,”ortb2.device.sua”);Q&&(K.sua=Q),o.gdprConsent&&(o.gdprConsent.consentString&&(K.gdprConsent=o.gdprConsent.consentString),void 0!==o.gdprConsent.gdprApplies&&(K.gdpr=o.gdprConsent.gdprApplies?1:0)),o.uspConsent&&(K.usPrivacy=o.uspConsent),o.gppConsent?(K.gppString=o.gppConsent.gppString,K.gppSid=o.gppConsent.applicableSections):null!==(c=o.ortb2)&&void 0!==c&&null!==(d=c.regs)&&void 0!==d&&d.gpp&&(K.gppString=o.ortb2.regs.gpp,K.gppSid=o.ortb2.regs.gpp_sid);const Y={method:”POST”,url:””.concat(S(B),”/prebid/multi/”).concat(N),data:K};return(0,r._each)(F,((e,t)=>{Y.data[“ext.”+t]=e})),Y}function R(e){try{return function(e){try{return JSON.parse(e)}catch(t){return e}}(v.getDataFromLocalStorage(e))}catch(e){}return null}function U(e,t,n){try{const o=n||Date.now(),r=JSON.stringify({value:t,created:o});v.setDataInLocalStorage(e,r)}catch(e){}}const q={code:l,version:g,gvlid:744,supportedMediaTypes:[c.Mk,c.pX],isBidRequestValid:function(e){const t=e.params||{};return!(!y(t)||!D(t))},buildRequests:function(e,t){const n=t.refererInfo.page||t.refererInfo.topmostLocation,o=u.config.getConfig(“bidderTimeout”),i=[];return e.forEach((e=>{const a=(0,r.parseSizesInput)(e.sizes),c=w(e,n,a,t,o);i.push(c)})),i},interpretResponse:function(e,t){if(!e||!e.body)return[];const{bidId:n}=t.data,{results:o}=e.body;let r=[];try{return o.forEach((e=>{const{creativeId:t,ad:o,price:i,exp:a,width:d,height:s,currency:u,advertiserDomains:p,metaData:l,mediaType:g=c.Mk}=e;if(!o||!i)return;const b={requestId:n,cpm:i,width:d,height:s,creativeId:t,currency:u||”USD”,netRevenue:!0,ttl:a||300};l?Object.assign(b,{meta:l}):Object.assign(b,{meta:{advertiserDomains:p||[]}}),g===c.Mk?Object.assign(b,{ad:o}):Object.assign(b,{vastXml:o,mediaType:c.pX}),r.push(b)})),r}catch(e){return[]}},getUserSyncs:function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:””,a=[];const{iframeEnabled:c,pixelEnabled:d}=e,{gdprApplies:s,consentString:u=””}=n,p=t.filter((e=>(0,i.Z)(e,”body.cid”))).map((e=>e.body.cid)).filter(r.uniques),l=”?cid=”.concat(encodeURIComponent(p.join(“,”)),”&gdpr=”).concat(s?1:0,”&gdpr_consent=”).concat(encodeURIComponent(u||””),”&us_privacy=”).concat(encodeURIComponent(o||””));return c&&a.push({type:”iframe”,url:”https://sync.cootlogix.com/api/sync/iframe/”.concat(l)}),d&&a.push({type:”image”,url:”https://sync.cootlogix.com/api/sync/image/”.concat(l)}),a}};(0,a.dX)(q),(0,o.z)(“vidazooBidAdapter”)}},e=>{var t;t=63273,e(e.s=t)}]);
(self.pbjsChunk=self.pbjsChunk||[]).push([[50608],{39595:(e,t,s)=>{var n=s(78640),r=s(20265),i=s(64358),d=s(14699),a=s(24679),o=s(35706),c=s(34614);const u=”https://player.sync.viewdeos.com/outstream-unit/2.01/outstream.min.js”,p=”outstream”,l=”display”,m={code:”viewdeosDX”,aliases:[“viewdeos”],gvlid:924,supportedMediaTypes:[a.pX,a.Mk],isBidRequestValid:function(e){return!!(0,r.Z)(e,”params.aid”)},getUserSyncs:function(e,t){const s=[];function n(t){const n=t.cookieURLs,r=t.cookieURLSTypes||[];Array.isArray(n)&&n.forEach(((t,n)=>{const i=r[n]||”image”;!e.pixelEnabled&&”image”===i||!e.iframeEnabled&&”iframe”===i||s.push({type:i,url:t})}))}return(e.pixelEnabled||e.iframeEnabled)&&(0,i.isArray)(t)&&t.forEach((e=>{e.body&&((0,i.isArray)(e.body)?e.body.forEach((e=>{n(e)})):n(e.body))})),s},buildRequests:function(e,t){return{data:b(e,t),bidderRequest:t,method:”GET”,url:”https://ghb.sync.viewdeos.com/auction/”}},interpretResponse:function(e,t){let{bidderRequest:s}=t;e=e.body;let n=[];return(0,i.isArray)(e)?(e.forEach((e=>{n=(0,i.flatten)(n,f(e,s))})),n):f(e,s)}};function f(e,t){const s=!e||!(0,i.isArray)(e.bids),n=[];if(s){const s=e&&e.ext&&e.ext.message?”: “.concat(e.ext.message):””,r=”in response for “.concat(t.bidderCode,” adapter “).concat(s);return(0,i.logError)(r),n}return e.bids.forEach((e=>{const s=(0,c.cx)(t.bids,(t=>t.bidId===e.requestId));if(0!==e.cpm&&-1!==s){const i=t.bids[s],d=function(e,t,s){const n={requestId:e.requestId,creativeId:e.cmpId,height:e.height,currency:e.cur,width:e.width,cpm:e.cpm,netRevenue:!0,mediaType:t,ttl:3600,meta:{advertiserDomains:e.adomain||[]}};if(t===l)return Object.assign(n,{ad:e.ad});Object.assign(n,{vastUrl:e.vastUrl}),t===p&&Object.assign(n,{mediaType:”video”,adResponse:e,renderer:h(e.requestId,s)});return n}(e,function(e){const t=(0,r.Z)(e,”mediaTypes.video”),s=(0,r.Z)(e,”mediaTypes.video.context”);return t?s===p?p:a.pX:l}(i),i.params);n.push(d)}})),n}function b(e,t){const s={domain:(0,r.Z)(t,”refererInfo.page”)};(0,r.Z)(t,”gdprConsent.gdprApplies”)&&(s.gdpr=1,s.gdpr_consent=(0,r.Z)(t,”gdprConsent.consentString”)),(0,r.Z)(t,”bidderRequest.uspConsent”)&&(s.us_privacy=t.uspConsent);for(let t=0,n=e.length;t{const t=Object.assign({},e.renderer.getConfig(),{width:e.width,height:e.height,vastUrl:e.vastUrl,elId:e.adUnitCode});window.VOutstreamAPI.initOutstreams([t])}))}(0,d.dX)(m),(0,n.z)(“viewdeosDXBidAdapter”)}},e=>{var t;t=39595,e(e.s=t)}]);
(self.pbjsChunk=self.pbjsChunk||[]).push([[15337],{55511:(e,t,r)=>{var i=r(78640),n=r(64358),o=r(20265),a=r(96475),d=r(24679),s=r(14699),c=r(35706),p=r(34614);const u=”USD”,l=300,m=!0,f=”https://prebid-outstream.yieldmo.com/bundle.js”,g=[“mimes”,”startdelay”,”placement”,”startdelay”,”skipafter”,”protocols”,”api”,”playbackmethod”,”maxduration”,”minduration”,”pos”,”skip”,”skippable”],y=[“name”,”domain”,”cat”,”keywords”],v=(0,n.getWindowTop)(),h=2,b=0,I=[“description”,”title”,”pr”,”page_url”],x={code:”yieldmo”,supportedMediaTypes:[d.Mk,d.pX],gvlid:173,isBidRequestValid:function(e){return!!(e&&e.adUnitCode&&e.bidId&&(w(e)||Z(e))&&function(e){if(!Z(e))return!0;const t=(e,t,r)=>{let i='”‘.concat(e,'” is required’);throw r&&(i+=” when “+r),new Error(i)},r=(e,t,r)=>{throw r=r?”, expected: “+r:””,t=JSON.stringify(t),new Error(‘”‘.concat(e,'”=’).concat(t,” is invalid”).concat(r))},i=e=>void 0!==e,a=(t,r,i,n)=>{if(0===t.indexOf(“video”)){const a=”params.”+t,d=”mediaTypes.”+t,s=(0,o.Z)(e,a),c=(0,o.Z)(e,d),p=r(s),u=r(c);return p?s:u||(p?u||i(d,c,n):i(a,s,n),s||c)}{const a=(0,o.Z)(e,t);return r(a)||i(t,a,n),a}};try{a(“video.context”,(e=>!(0,n.isEmpty)(e)),t),a(“params.placementId”,(e=>!(0,n.isEmpty)(e)),t),a(“video.playerSize”,(e=>(0,n.isArrayOfNums)(e,2)||(0,n.isArray)(e)&&e.every((e=>(0,n.isArrayOfNums)(e,2)))),r,”array of 2 integers, ex: [640,480] or [[640,480]]”),a(“video.mimes”,(e=>i(e)),t),a(“video.mimes”,(e=>(0,n.isArray)(e)&&e.every((e=>(0,n.isStr)(e)))),r,’array of strings, ex: [“video/mp4”]’);const e=a(“video.placement”,(e=>i(e)),t);return a(“video.placement”,(e=>e>=1&&e<=5),r),1===e&&(a(“video.startdelay”,(e=>i(e)),((e,r)=>t(e,r,”placement == 1″))),a(“video.startdelay”,(e=>(0,n.isNumber)(e)),r,”number, ex: 5″)),a(“video.protocols”,(e=>i(e)),t),a(“video.protocols”,(e=>(0,n.isArrayOfNums)(e)&&e.every((e=>e>=1&&e<=6))),r,”array of numbers, ex: [2,3]”),a(“video.api”,(e=>i(e)),t),a(“video.api”,(e=>(0,n.isArrayOfNums)(e)&&e.every((e=>e>=1&&e<=6))),r,”array of numbers, ex: [2,3]”),a(“video.playbackmethod”,(e=>!i(e)||(0,n.isArrayOfNums)(e)),r,”array of integers, ex: [2,6]”),a(“video.maxduration”,(e=>i(e)),t),a(“video.maxduration”,(e=>(0,n.isInteger)(e)),r),a(“video.minduration”,(e=>!i(e)||(0,n.isNumber)(e)),r),a(“video.skippable”,(e=>!i(e)||(0,n.isBoolean)(e)),r),a(“video.skipafter”,(e=>!i(e)||(0,n.isNumber)(e)),r),a(“video.pos”,(e=>!i(e)||(0,n.isNumber)(e)),r),a(“params.badv”,(e=>!i(e)||(0,n.isArray)(e)),r,’array of strings, ex: [“ford.com”,”pepsi.com”]’),a(“params.bcat”,(e=>!i(e)||(0,n.isArray)(e)),r,’array of strings, ex: [“IAB1-5″,”IAB1-6”]’),!0}catch(e){return(0,n.logError)(e.message),!1}}(e))},buildRequests:function(e,t){const r=function(e){var t,r;return!(null===(t=e.refererInfo)||void 0===t||null===(r=t.referer)||void 0===r||!r.includes(“pb_force_a”))}(t),i=_(“/exchange/prebid”,r),s=_(“/exchange/prebidvideo”,r),c=e.filter((e=>w(e))),u=e.filter((e=>Z(e)));let l=[];const m=function(e){if((0,o.Z)(e,”userIdAsEids”))return e.userIdAsEids||[]}(e[0])||[];if(c.length>0){let e={pbav:”7.52.0″,p:[],page_url:t.refererInfo.page,bust:(new Date).getTime().toString(),dnt:”1″===window.doNotTrack||”1″===window.navigator.doNotTrack||!1,description:k(),userConsent:JSON.stringify({gdprApplies:(0,o.Z)(t,”gdprConsent.gdprApplies”)||””,cmp:(0,o.Z)(t,”gdprConsent.consentString”)||””,gpp:(0,o.Z)(t,”gppConsent.gppString”)||””,gpp_sid:(0,o.Z)(t,”gppConsent.applicableSections”)||[]}),us_privacy:(0,o.Z)(t,”uspConsent”)||””};(function(){try{if((0,n.getWindowTop)().location.href)return!0}catch(e){return!1}})()&&(e.pr=v.document&&v.document.referrer||””,e.scrd=v.devicePixelRatio||0,e.title=v.document.title||””,e.w=v.innerWidth,e.h=v.innerHeight);const r=window.navigator.maxTouchPoints;r&&(e.mtp=r),c.forEach((t=>{e.p.push(function(e){const t=(0,o.Z)(e,”ortb2Imp.ext.data.pbadslot”),r={placement_id:e.adUnitCode,callback_id:e.bidId,sizes:e.mediaTypes.banner.sizes};if(e.params){e.params.placementId&&(r.ym_placement_id=e.params.placementId);const t=S(e,d.Mk);t&&(r.bidFloor=t)}t&&(r.gpid=t);const i=(0,o.Z)(e,”ortb2Imp.ext.tid”);i&&(r.tid=i);e.auctionId&&(r.auctionId=e.auctionId);return JSON.stringify(r)}(t));const r=N(t,”pubcid”);r?e.pubcid=r:t.crumbs&&t.crumbs.pubcid&&(e.pubcid=t.crumbs.pubcid);const i=N(t,”tdid”);i&&(e.tdid=i);const n=N(t,”criteoId”);n&&(e.cri_prebid=n),t.schain&&(e.schain=JSON.stringify(t.schain)),(0,o.Z)(t,”params.lr_env”)&&(e.ats_envelope=t.params.lr_env)})),e.p=”[“+e.p.toString()+”]”,m.length&&(e.eids=JSON.stringify(m));let a=””.concat(i,”?”).concat((0,n.parseQueryStringParameters)(e)).length-8e3;if(a>0)for(let t=0;t0){const e=function(e,t){const r=e[0].schain;let i={id:e[0].bidderRequestId,tmax:t.timeout||400,at:1,imp:e.map((e=>function(e){const t=(0,o.Z)(e,”ortb2Imp.ext.data.pbadslot”),r=function(e){const t=(0,o.Z)(e,”mediaTypes.video.playerSize”);if((0,n.isArrayOfNums)(t,2))return t;if((0,n.isArray)(t)&&(0,n.isArrayOfNums)(t[0],2))return t[0];return null}(e),i={id:e.bidId,tagid:e.adUnitCode,bidfloor:S(e,d.pX),ext:{placement_id:e.params.placementId,tid:(0,o.Z)(e,”ortb2Imp.ext.tid”)},video:{w:r[0],h:r[1],linearity:1}},a=(0,o.Z)(e,”mediaTypes.video”);Object.keys(a).filter((e=>(0,p.q9)(g,e))).forEach((e=>i.video[e]=a[e]));const s=(0,o.Z)(e,”params.video”);Object.keys(s).filter((e=>(0,p.q9)(g,e))).forEach((e=>i.video[e]=s[e])),i.video.skippable&&(i.video.skip=1,delete i.video.skippable);1!==i.video.placement&&(i.video.startdelay=b,i.video.playbackmethod=[h]);t&&(i.ext.gpid=t);return i}(e))),site:A(e[0],t),device:(0,o.Z)(t,”ortb2.device”),badv:e[0].params.badv||[],bcat:(0,o.Z)(t,”bcat”)||e[0].params.bcat||[],ext:{prebid:”7.52.0″},ats_envelope:e[0].params.lr_env};r&&(i.schain=r);e[0].auctionId&&(i.auctionId=e[0].auctionId);return function(e,t){const r=t.gdprConsent,i=(0,o.Z)(t,”gppConsent.gppString”),n=(0,o.Z)(t,”gppConsent.applicableSections”);i?(0,a.N)(e,”regs.ext.gpp”,i):((0,a.N)(e,”regs.ext.gdpr”,r&&r.gdprApplies?1:0),(0,a.N)(e,”user.ext.consent”,r&&r.consentString?r.consentString:””));n&&n.length>0&&(0,a.N)(e,”regs.ext.gpp_sid”,n);const d=(0,o.Z)(t,”uspConsent”);!i&&d&&(0,a.N)(e,”regs.ext.us_privacy”,d)}(i,t),i}(u,t);m.length&&(e.user={eids:m}),l.push({method:”POST”,url:s,data:e})}return l},interpretResponse:function(e,t){let r=[];const i=e.body;if(i.length>0&&i.forEach((e=>{e.cpm>0&&r.push(function(e){return{dealId:e.publisherDealId,requestId:e.callback_id,cpm:e.cpm,width:e.width,height:e.height,creativeId:e.creative_id,currency:u,netRevenue:m,ttl:300,ad:e.ad,meta:{advertiserDomains:e.adomain||[],mediaType:d.Mk}}}(e))})),i.seatbid){i.seatbid.reduce(((e,t)=>e.concat(t.bid)),[]).forEach((e=>r.push(function(e,t){const r=(0,p.sE)((0,o.Z)(t,”data.imp”)||[],(t=>t.id===e.impid));let i={dealId:e.dealid,requestId:r.id,cpm:e.price,width:r.video.w,height:r.video.h,creativeId:e.crid||e.adid,currency:u,netRevenue:m,mediaType:d.pX,ttl:l,vastXml:e.adm,meta:{advertiserDomains:e.adomain||[],mediaType:d.pX}};if(r.video.placement&&1!==r.video.placement){const e=c.Th.install({url:f,config:{width:i.width,height:i.height,vastTimeout:15e3,maxAllowedVastTagRedirects:5,allowVpaid:!0,autoPlay:!0,preload:!0,mute:!0},id:r.tagid,loaded:!1});e.setRender((function(e){e.renderer.push((()=>{const{id:t,config:r}=e.renderer;window.YMoutstreamPlayer(e,t,r)}))})),i.renderer=e}return i}(e,t))))}return r},getUserSyncs:function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:””;const n=[],o=”&gdpr=”.concat(r.gdprApplies?1:0),a=”&gdpr_consent=”.concat(encodeURIComponent(r.consentString||””)),d=”us_privacy=”.concat(encodeURIComponent(i)),s=””.concat(“https://ads.yieldmo.com/pbcas”,”?”).concat(d).concat(o).concat(a);return e.iframeEnabled?n.push({type:”iframe”,url:s+”&type=iframe”}):e.pixelEnabled&&n.push({type:”image”,url:s+”&type=image”}),n}};function w(e){return!!(0,o.Z)(e,”mediaTypes.banner”)}function Z(e){return!!(0,o.Z)(e,”mediaTypes.video”)}function k(){return document.querySelector(‘meta[name=”description”]’)&&document.querySelector(‘meta[name=”description”]’).getAttribute(“content”)||””}function N(e,t){return”object”==typeof(0,o.Z)(e,”userId”)?e.userId[t]:void 0}function S(e,t){let r={};return”function”==typeof e.getFloor&&(r=e.getFloor({currency:u,mediaType:t,size:”*”})),r.floor||e.params.bidfloor||e.params.bidFloor||0}function A(e,t){var r;let i={};const a=(0,n.parseUrl)((0,o.Z)(t,”refererInfo.page”));(0,n.isEmpty)(a)||(i.page=””.concat(a.protocol,”://”).concat(a.hostname).concat(a.pathname)),null!==(r=t.refererInfo)&&void 0!==r&&r.ref&&(i.ref=t.refererInfo.ref);const d=document.getElementsByTagName(“meta”).keywords;d&&d.content&&(i.keywords=d.content);const s=(0,o.Z)(e,”params.site”);return s&&Object.keys(s).filter((e=>(0,p.q9)(y,e))).forEach((e=>i[e]=s[e])),i}function T(e,t,r){if(t[r].length>e)return t[r]=t[r].substring(0,t[r].length-e),0;const i=e-t[r].length;return t[r]=””,i}function _(e,t){return””.concat(t?”https://ads-stg.yieldmo.com”:”https://ads.yieldmo.com”).concat(e)}(0,s.dX)(x),(0,i.z)(“yieldmoBidAdapter”)}},e=>{var t;t=55511,e(e.s=t)}]);
})(),pbjs.processQueue();



Why use a touchscreen when there’s a keyboard at your fingertips

Some of the Play Store’s best smartphone apps offer multi-platform compatibility, the ability to enjoy your favorite RPGs, Metroidvania adventures, and confounding puzzle games on your new Android tablet. Even Google’s latest Chromebooks run games originally designed for Android devices, providing a more traditional keyboard gaming setup. This roundup of the best keyboard-compatible Android games for ChromeOS shows off our favorite titles to experience on your brand-new Chromebook. Take a look and enjoy!

ANDROID POLICE VIDEO OF THE DAY

SCROLL TO CONTINUE WITH CONTENT

1 SuperTuxKart

SuperTuxKart keyboard support chromebooks

SuperTuxKart is a free and open source kart racing video game themed after a few icons in the open source community. Think Mario Kart, but with Linux, BSD, and Mozilla characters. It’s been around for years, and there’s a polished version available on the Play Store that’s also playable on ChromeOS.

Since this was initially a desktop game, the keyboard controls have remained intact, with touchpad controls available for menu navigation if you want them. The game even provides helpful tutorials that deploy in-game, explaining mechanics such as boosting and using power-ups. SuperTuxKart shows its age in places but captures that classic cart racer feel that plays on your nostalgia.

2 Rusted Warfare – RTS Strategy

Rusted Warfare - RTS Strategy keyboard support chromebooks

It saddens us that the real-time strategy genre has been co-opted on mobile by a neverending assault of casual Clash of Clans clones. Those of us who are more familiar with the real-time strategy games of old pine for the days when Warcraft II reigned supreme. Well, it may surprise you to find out that there are a few options on Android, and one of them is called Rusted Warfare. Like most traditional RTS games, you will still spend most of your time using your mouse, but keyboard controls are included. Think of them as complementary to the mouse controls. Things like moving the map with your arrow keys or using the Enter key to close a dialog box work just as you would expect.

3 Stardew Valley

Stardew Valley is one of those games that works on any platform. The famous farming simulator/RPG hybrid adapts seamlessly to mouse and keyboard controls. You are tasked with building a new life in a beautiful forest settlement by growing crops, harvesting cattle, and renovating your home. So far, so Animal Crossing.

Stardew Valley is well known for its dungeon-crawler gameplay, with your character delving into dangerous caves in search of valuable loot. Vendors can be found in a nearby village to trade your goods with, as well as progress the story. It is an exceedingly relaxing experience that doesn’t lose any of its charm on Chromebooks.

4 Project Highrise

Project Highrise is another PC port that was originally designed around mouse controls, but that doesn’t mean keyboard controls aren’t included for things like moving the camera or selecting your tools. The Android version works as well on a Chromebook as the PC game on a personal computer. The UI has a slight touch-based look, but that means you can also play with the touchscreen. It’s a versatile release, and the tower-building simulation gameplay is fantastic.

5 Slayaway Camp

Slayaway Camp is a voxel-based sliding puzzler that’s filled to the brim with 80s slasher-film gore. Like any quality puzzler, the gameplay is easy to grasp but difficult to master. What’s nice is that the entire game can be played with the keyboard. You don’t need to use your mouse for the menus. Everything works. Still, the developer’s spiritual successor to Slayaway Camp doesn’t retain the keyboard controls. So if you want to enjoy some 80s slasher fun on your Chromebook while using the keyboard, you’ll have to do so in this release.

6 Dead Cells

Dead Cells set the standard for 2D hack-and-slash platformers and coined the term “Roguevania,” referring to gameplay that encourages exploration and discovery while embracing the unknown upon repeated runs. As with any game with controls as complex as Dead Cells, Chromebook keyboards can handle the chaos and keep up with the game’s pace. However, we recommend using a physical mouse for this one. The combat in Dead Cells is fast and punishing. You’ll die a lot. However, the Chromebooks’ superior screen sizes give them an advantage over the screens of smaller Android devices.

7 Riptide GP: Renegade

The Riptide watercraft racing series has had a lot of success on mobile, so it isn’t surprising that the developer included keyboard controls for Chrome OS. In Riptide GP: Renegade, you can use your keyboard arrow buttons to control your craft of choice, as well as use your boost when needed. There’s no need for the touchpad unless you’re navigating the menu. And if you’d like to play an earlier game in the series, those work with keyboard controls just as well as this one.

8 Into the Dead 2

An interesting runner game with a Telltales the Walking Dead-style theme and setting, Into the Dead 2 thrusts players into a mad dash to move forward at all costs. You must bob and weave around the undead, blasting them out of the way with a variety of destructive weaponry and gathering resources as you go. The keyboard controls work well to give decent maneuverability, although the touchpad is required to navigate menus. The gameplay loop is uncomplicated and easy to get into, its pace maintained by the player’s inability to stop moving.

9 Space Grunts

Space Grunts keyboard support chromebooks

Space Grunts is a turn-based shooter that has more in common with XCOM or Final Fantasy Tactics than many other OrangePixel games. Still, it keeps the old-school visuals Orange Pixel fans are fond of. Space Grunts is also available on the Chrome Web Store, but if you own it on Android, why spend more money on the same game? The keyboard controls work as great in the Android app as they do in the Chrome Web Store app. Since the entire game is turn-based, you can take your time learning how to use them.

10 Animal Super Squad

If you’ve yet to play Animal Super Squad, stop what you’re doing and install this game. It plays like a mashup of some of the best side-scrolling platformers, with a dash of Trials and the kart sections of Donkey Kong Country. The premise is outlandish, as you’ll spend a lot of your time driving a toilet kart. But if potty humor isn’t your thing, the solid gameplay, full keyboard controls, and a premium price point are. This is another one that can be played without touching your touchpad.

11 Sproggiwood

Most of Sproggiwood can be navigated with the keyboard, though there will be a few buttons you’ll have to use your touchpad to click on. These are mainly used outside the dungeons. Performance is decent, and the framerate felt smooth the entire time, if a little on the lower side when compared to the PC release. All in all, Sproggiwood offers a solid and enjoyable roguelike experience that works well with keyboard controls.

12 Beholder

Beholder keyboard support chromebooks

Beholder is another fantastic PC port for Android that works great on ChromeOS. The app is designed around mouse controls, though the keyboard can be used for things like selecting menu items and moving the camera. You play a landlord in a totalitarian State who spies on tenants to sniff out any plotting against the State. While that is your goal, you have a bit of a choice on how any given scenario plays out. You always have the option of blackmail or treating people with kindness, but in a totalitarian state, these choices may backfire. Fans of Papers, Please will recognize this dilemma, setting, and gameplay philosophy.

13 Doom & Destiny Advanced

Doom & Destiny Advanced exists in a weird spot as a sequel, prequel, and reboot. It takes place before the events of the first game in the series, but it was released after, plus some story and design elements have been altered. It’s still a fantastic turn-based RPG, and the story is as goofy as ever. Keyboard controls work wonderfully since you can easily move your characters and select their attacks, all without the need for the touchpad.

14 Death Road to Canada

Death Road to Canada may be considered a little pricey, but it’s worth it. Each playthrough is randomly generated, which keeps things fresh no matter how many times you play. The goofy story will have you traveling to Canada to escape a zombie outbreak, and a few companions will be joining you. Keyboard controls work perfectly, and there is no need to use the mouse. You can even plug in a physical controller to play this, which is an excellent option for when you are tired of slaying zombies with your keyboard.

15 Icewind Dale: Enhanced Edition

Beamdog offers several CRPGs on Android, including the Baldur’s Gate series. Our favorite of its releases is Icewind Dale: Enhanced Edition. Gameplay will feel familiar to any fans of Dungeons and Dragons, Baldur’s Gate, and many other popular tabletop games. You’ll randomly generate different characters with unique stats to venture out on fantasy adventures. The game has a huge enemy roster of creepy creatures for you to destroy, from Golems to Goblins. Being mouse-based, using the touchpad is required and works perfectly well. As with any of Beamdog’s games, you can expect hours of classic RPG action wrapped up in a detailed and intriguing story.

16 Sonic the Hedgehog Classic

One of Sega Genesis’s more famous classic games, Sonic the Hedgehog or Sonic 1, hardly needs an introduction. This varied platformer prioritizes the building of momentum to achieve high speed. If you’ve ever played the original Sonic, you should know the controls are simple. All you need to use are the directional keys to move along with the J key for your jump. The other classic Sonic games, such as Sonic 2 and Sonic CD, work with the keyboard.

17 Asphalt 8: Airborne

It’s safe to assume everyone here is familiar with Asphalt 8: Airborne. As one of the most high-profile games released on mobile, it’s nice to see that ChromeOS is supported with keyboard controls. The controls work well, though getting used to them may take some time. But, the time spent to do so is worth it when you can enjoy some fast-paced car racing action on your Chromebook of choice.

18 ROBLOX

The hugely popular game creation tool was already fit for PC, and the Android version is more than playable on ChromeOS. The gameplay varies wildly depending on what type of game you choose to play, and there are hundreds to choose from. Think Minecraft, but with more possibilities and tools to build unique game modes. The keyboard controls don’t require the touchpad to move the camera, unlike the Android version of Minecraft.

Why use a touchscreen to play games when every Chromebook has a keyboard?

Chromebooks have gained access to an impressive number of apps designed for Android devices, and you’ll likely find plenty of familiar faces to revisit with tighter physical controls. Whether it’s beloved Play Store darlings like Dead Cells and Roblox or quirky puzzle titles like Slayaway Camp, Chromebooks offer plenty of variety when it comes to multi-platform app compatibility.

For some, touch controls can feel unreliable for a gaming experience. A touch interface’s input accuracy can’t hold a candle to the physical buttons of solid keyboards or slick Android gaming controllers. Keyboard support is a growing commonality in Play Store app development. In time, it will become an expected feature to become standard, like the controller support in many Android games.






Next Post

Leave a Reply

Your email address will not be published. Required fields are marked *

Get more stuff like this
in your inbox

Subscribe to our mailing list and get interesting stuff and updates to your email inbox.