2 lines
90 KiB
Plaintext
2 lines
90 KiB
Plaintext
!function(){"use strict";const e="vast",t="googima",i="freewheel",s="playing",r="viewable",n="external",a=n,o="time",l="adBreakIgnored",d="__jwpseg__",h="instream",u="article",c={[[h]]:1,[["banner"]]:2,[[u]]:3,[["feed"]]:4,[["floating"]]:5,[["interstitial"]]:5,[["slider"]]:5},p="adError",g="adItem",m="adStarted",y="adSkipped",f="jw-flag-ads-vpaid",v="jw-flag-ads-vpaid-controls",A="-1",b="vmap",P="TYPE_API",w="TYPE_SCHEDULE",_="jw-flag-ads-googleima",k=(e,t)=>({begin:e._offSet,text:t,cueType:"ads",adId:e.adBreakId});class E{constructor(e,t,i,s){this.client=s,this.player=e,this.pluginConfig=t,this.div=i,this.utils=this.player.utils,this.playerConfig=this.player.getConfig(),this.playlistItemManager=null,this.playerKey=this.playerConfig.key,this.casting=!1,this.player.pauseAd=this.pauseAd.bind(this),this.player.skipAd=this.skipAd.bind(this),this.player.skipAdBreak=this.skipAdBreak.bind(this),this.destroyAdsManager=this.destroyAdsManager.bind(this),this.handleDependencyError=this.handleDependencyError.bind(this),this.sendCues=this.sendCues.bind(this)}lateInitAfterReady(){this.onReady();const e=this.player.getPlaylistItem();e&&this.onPlaylistItemCallback({item:e,index:this.player.getPlaylistIndex()})}onReady(){throw new Error("Not implemented.")}onPlaylistItemCallback(){throw new Error("Not implemented.")}destroyAdsManager(){this.playlistItemManager&&(this.playlistItemManager.destroy(),this.playlistItemManager=null)}handleDependencyError(e,t){this.destroyAdsManager(),this.player.off(null,null,this),this.client===i&&(this.player.playAd=this.utils.noop),this.player.trigger(p,{id:A,client:this.client,message:e,code:900,adErrorCode:t,tag:""})}pauseAd(e,t=null){this.playlistItemManager&&(e?this.playlistItemManager.pause(t||{}):this.playlistItemManager.resume(t||{}))}skipAd(){var e;null!=this&&null!=(e=this.playlistItemManager)&&e.skipAd&&this.playlistItemManager.skipAd()}skipAdBreak(){var e;null!=this&&null!=(e=this.playlistItemManager)&&e.skipAdBreak&&this.playlistItemManager.skipAdBreak()}sendCues(e,t){const i=e.getMidRolls(),s=[];e.preRoll&&s.push(k(e.preRoll,t)),i.length&&i.forEach(e=>{"nonlinear"!==e._type&&s.push(k(e,t))}),e.postRoll&&s.push(k(e.postRoll,t)),this.player.addCues(s)}resetCues(){const e=this.player.getCues().filter(e=>"ads"!==e.cueType);this.player.setCues(e)}}const M=function(e,t,i,s){if(0!==s.indexOf(e))return!1;const r=parseFloat(s.slice(e.length));return!(r<t||r>i)&&r},C=M.bind(null,"800000",10,90),I=M.bind(null,"900000",10,90),j=M.bind(null,"JWIAB",1,999),S=M.bind(null,"120321",10,90),R=M.bind(null,"120241",10,90),T=M.bind(null,"18010",1,698),x=["18020012"];var O=function(e,t){if(null==e)throw new TypeError("Cannot convert undefined or null to object");return Object.prototype.hasOwnProperty.call(Object(e),t)};const L=/^[^:/?#]+:?\/\/[^/?#]+/,B=function(e,t){if(!e)return;if(!t)return e;let i,s="",r="";Object.keys(t).forEach(e=>{const i=t[e];s=`${s}${r}${e}=${i}`,r="&"});const n=(e=>{if(e)return new URL(e,window.location)})(e),a=n.pathname;return n.searchParams.has("cust_params")?n.searchParams.set("cust_params",`${s}&${n.searchParams.getAll("cust_params")}`):n.searchParams.set("cust_params",s),i=n.toString(),0===e.indexOf("./")?i=`.${i.substring(i.indexOf(a))}`:0===e.indexOf("../")?i=`..${i.substring(i.indexOf(a))}`:0!==e.indexOf(`${n.protocol}`)||e.includes("://")?0===e.indexOf("//")?i=i.replace(n.protocol,""):0!==e.indexOf("//")&&0===e.indexOf("/")?i=i.substring(i.indexOf(a)):0!==e.indexOf("/")&&0===e.indexOf(n.pathname.substring(1))&&(i=i.substring(i.indexOf(a)+1)):i=i.replace("://",":"),i},D=e=>e?new URL(e).hostname:"",V=(e,t=document.location.search)=>{if(e)return new URLSearchParams(t).getAll(e)},q="hb_jwvb",N="hb_jwcr",U={[[q]]:"VIEWABILITY",[[N]]:"COMPLETION_RATE",[["hb_jwiab"]]:"IAB_CONTEXTUAL",[["hb_jwbs"]]:"BRAND_SAFETY"},z=[q,N],$=/^(https?:\/\/).*.(?:ampproject.org|bing-amp.com)\/(?:.\/)*(.*)\/amp.*$/,H="IAB_CONTENT_2_2",Q=function(){if(!((e,t)=>{if(e)return new URLSearchParams(e).has(t)})(document.location.search,"isAMP"))return;const e=V("consentValue").join(),t=V("consentGdpr").join();return e||t?{gdprApplies:t,consentData:e}:void 0},F=Date.now||function(){return(new Date).getTime()},X=e=>{const t=(e=>{let t=window;for(;t;){try{if(t.frames[e])break}catch(e){}t=t===window.top?null:t.parent}return t})(`${e}Locator`);return null!==t&&function(i,s,r,n){const a=F(),o=t=>{let i=t?t.data:{};if("string"==typeof i)try{i=JSON.parse(i)}catch(e){i={}}const s=`${e}Return`;i[s]&&i[s].callId===a&&(removeEventListener("message",o),r(i[s].returnValue,i[s].success))};window.addEventListener("message",o,!1);const l=void 0!==n?"version":"parameter",d={[[`${e}Call`]]:{command:i,callId:a,parameter:n,[[l]]:s}};t.postMessage(JSON.stringify(d),"*")}};let W=null,G={gdprApplies:!0,consentData:""};const J=function(e=1e3){return null===W&&(W=new Promise(e=>{const t=window.__tcfapi||X("__tcfapi");if(t)return t("getTCData",2,(t,i)=>{e(!1!==i?{gdprApplies:t.gdprApplies,consentData:t.tcString,addtlConsent:t.addtlConsent}:null)});const i=window.__cmp||X("__cmp");if(i)return i("getConsentData",null,(t,i)=>{e(!1!==i?{gdprApplies:t.gdprApplies||t.isUserInEu,consentData:t.consentData}:null)});const s=Q();return e(s||{gdprApplies:!1,consentData:""})}).then(e=>(e&&(G=e),G))),Promise.race([W,new Promise(t=>{setTimeout(t,e,G)})])},K=function(e){const t=e.advertising;if(null!=t&&t.placement){const e=t.placement.toLowerCase();if(c[e])return c[e]}return c[null!=t&&t.outstream?u:h]},Y=function(){const e=(t=document.referrer)&&null!==t.match(L)?function(e){const t=e.match($);return t&&t.length>1?`${t[1]}${t[2]}`:e}(document.referrer):"";var t;if(window.top!==window.self){try{return{url:window.top.location.href,domain:window.top.document.domain,referrer:e}}catch(e){}return{url:e,domain:D(e),referrer:""}}return{url:document.location.href,domain:document.domain,referrer:e}},Z=function(e,t,i=!0){if("start"===e||"0%"===e||i&&!e&&0!==e)return"pre";if("end"===e||"100%"===e)return"post";if("string"==typeof e&&("pre"===e||"post"===e||e.indexOf("%")>=0))return e;const s=t.seconds(e);return"number"==typeof s&&!isNaN(s)&&s},ee=function(e,t){const i=Z(e,t);return"pre"===i?0:"post"===i?-1:i},te=function(e,t){const i=e.getPlugin("inference"),s=t.jwpseg_client_side,r=t.jwpseg||[];let n;if(!s||!s.length||!i)return r;try{n=i.predict(s,t)}catch(e){return t.jwpseg||[]}return[...Object.keys(n).filter(e=>n[e]),...r.filter(e=>-1===s.indexOf(e))]},ie=function(e){const t=[],i=[],s=[],r=[];let n=Boolean(e.some(e=>/^1/.test(String(e))));for(let r of e){"string"!=typeof r&&(r=String(r));const e=C(r);if(e){t.push(e);continue}const a=S(r);if(a){t.push(a);continue}const o=I(r);if(o){i.push(o);continue}const l=R(r);if(l){i.push(l);continue}const d=j(r);if(d){s.push(d);continue}const h=T(r);h?s.push(h):x.includes(String(r))?n=!1:"JWBRSAFE"!==r||(n=!0)}if(n&&r.push(1),t.length||i.length||s.length||r.length){const e={hb_jwvb:t,hb_jwcr:i,hb_jwiab:s,hb_jwbs:r};return Object.keys(e).forEach(t=>{e[t]=[...new Set(e[t])]}),e}return null},se=function(e,t){t&&"object"==typeof t&&Object.keys(t).forEach(i=>{const s=t[i];if(!s||"object"!=typeof s)return;const r=function(e,t,i){if(i&&t&&t.length)return i.sendIsIncluded?`HAS_${U[e]||"SEGMENT"}`:i.sendMax&&z.includes(e)?t.reduce((e,t)=>Math.max(e,t),-1/0):void 0}(i,e[i],s);void 0!==r&&(e[i]=[r])})},re=function(e){const{player:t,item:i,tag:s,targetingConfig:r,enablePPS:n=!1}=e,a=te(t,i);if(!a.length)return s;const o=ie(a);if(!o)return s;se(o,r);const l=function(e){if(!e)return;const t=[];for(const i in e)O(e,i)&&e[i].length&&t.push(`${i}=${e[i]}`);return t.join("&")}(o),d=new URL(s,window.location),h=d.searchParams,u=h.getAll("cust_params").filter(e=>e).join("&");if(!h.get("ppsj")&&n){const e=(e=>{var t;return null!=e&&null!=(t=e.hb_jwiab)&&t.length?e.hb_jwiab.map(String):null})(o),t="boolean"==typeof n||!("encodePPS"in n)||n.encodePPS;e&&h.set("ppsj",((e,t)=>{if(!t)return e;const i={PublisherProvidedTaxonomySignals:[{taxonomy:H,values:e}]};return window.btoa(JSON.stringify(i))})(e,t)),n.includeIABTaxonomyVersion&&h.set("iabt_ver",H)}return u&&u.length>0?h.set("cust_params",`${u}&${l}`):h.set("cust_params",l),d.toString()},ne=(e,t=!1)=>{const i=t?0===e.getPosition()&&"idle"===e.getState():0===e.getPosition();return e.isBeforePlay()||i?"pre":e.isBeforeComplete()||e.getPosition()===e.getDuration()?"post":"mid"};var ae=function(e,t){if(null==e)throw new TypeError("Cannot convert undefined or null to object");return Object.prototype.hasOwnProperty.call(Object(e),t)};const oe=/^((https?:)?\/\/)?(secure)?pubads\.g\.doubleclick\.net\/gampad\/ads\?[\S]*$/,le=function(e,t,i){for(;-1!==e.indexOf(t);)e=e.replace(t,i);return e},de=function(e,t){const i=Math.pow(10,t);return Math.round(e*i)/i},he=function(s,r,n,a,o,l={}){var h,u,c,p,g,m,y;if(!s)return s;const f=function(e,t){const i=e.getConfig(),s=e.getPlaylistItem()===t,r={playerHeight:e.getHeight()||i.height||"",playerWidth:e.getWidth()||i.width||"",itemDuration:s&&de(e.getDuration(),3)||"",integerDuration:s&&de(t.duration,0)||"",item:t,jwpseg:te(e,t),placement:K(i),userAgent:navigator.userAgent},n=i.advertising?i.advertising.ampMacros:{};return Object.assign(r,n)}(r,n),v=Y();let A=null;null!=n&&n.jwpseg&&(A=ie(n.jwpseg));const b={viewability:(null==(h=A)||null==(u=h.hb_jwvb)?void 0:u.map(e=>encodeURIComponent(e)).join(","))||"",completion:(null==(c=A)||null==(p=c.hb_jwcr)?void 0:p.map(e=>encodeURIComponent(e)).join(","))||"",brandSafety:1===(null==(g=A)?void 0:g.hb_jwbs[0])?encodeURIComponent("Yes"):encodeURIComponent("No"),contextual:(null==(m=A)||null==(y=m.hb_jwiab)?void 0:y.map(e=>encodeURIComponent(e)).join(","))||""};-1!==s.indexOf(d)&&(l.jwpseg=f.jwpseg),s=le(s,"__random-number__",()=>Math.random()*Math.pow(10,18)),s=le(s,"__timestamp__",(new Date).getTime()),s=le(s,"__page-url__",encodeURIComponent(f.pageUrl||v.url)),s=le(s,"__referrer__",encodeURIComponent(f.referrer||v.referrer)),s=le(s,"__player-height__",f.playerHeight),s=le(s,"__player-width__",f.playerWidth),s=le(s,"__item-duration__",f.itemDuration),s=le(s,"__integer-duration__",f.integerDuration),s=le(s,d,f.jwpseg),s=le(s,"__domain__",encodeURIComponent(f.domain||v.domain)),s=le(s,"__placement__",f.placement),s=le(s,"__device-ua__",encodeURIComponent(f.userAgent)),s=le(s,"__jw-viewability__",b.viewability),s=le(s,"__jw-completion__",b.completion),s=le(s,"__jw-brand-safety__",b.brandSafety),s=le(s,"__jw-contextual__",b.contextual),s=o.companion?le(s,"__companion-div__",o.companion.id):le(s,"__companion-div__","");const P=Object.keys(f).filter(e=>-1!==e.indexOf("item")),w=P.map(e=>{const t=e.match(/item([\w]+?)(List)?$/);let i;return t&&(i=t[1].toLowerCase()),i});let _=null;const k=/__item-([\w-]+?)(-list)?__/g,E=s;for(;null!==(_=k.exec(E));){const e=_[0],t=_[1],i=P[w.indexOf(t)];let r="";if(ae(n,t)&&"string"==typeof n[t]||i){r=i?f[i]:n[t];const e=!1===o.truncateMacros?4096:1e3;r.length>e&&(r=r.substring(0,e));const s=_[2]?",":null;r=r.split(s).map(encodeURIComponent)}s=le(s,e,r)}if(a===i)return s;if(a===e){const e=r.getConfig().autostart?1:0,t=r.getMute()?1:0;s=function(e,t,i){return oe.test(e)&&(e=`${e}&vpa=${t}&vpmute=${i}`),e}(s,e,t)}if((a===t||"cnx"===a)&&n.title&&-1===s.indexOf("vid_t=")){const e=n.title.substring(0,100).replace(/[^\x00-\x7F]/g,"");s+=`${function(e){return-1!==e.indexOf("?")?"&":"?"}(s)}vid_t=${encodeURIComponent(e)}`}return-1!==s.indexOf("__gdpr__")||-1!==s.indexOf("__gdpr_consent__")||-1!==s.indexOf("__addtl_consent__")?J().then(({gdprApplies:e,consentData:t,addtlConsent:i})=>(s=le(s,"__gdpr__",e?1:0),s=le(s,"__addtl_consent__",i||""),le(s,"__gdpr_consent__",t||""))).catch(()=>s):Promise.resolve(s)},ue=function(){},ce=function(e,t,i){let s=[];return e&&(s=e.getElementsByTagName(t),i&&s&&0===s.length&&(s=e.getElementsByTagName(`${i}:${t}`))),s},pe=function(e,t){return e?e.getAttribute(t):null},ge=function(e,t,i){e.push({message:t,code:1002,adErrorCode:70001,id:i})},me=function(){const e=new Error("No AdBreaks in VMAP");throw e.adErrorCode=60005,e},ye=function(e){if(e){const t=e.textContent||e.text;if(t)return t.trim()}return""},fe=function(e,t,i,s){let r=[];return e||t?(r=t.getElementsByTagNameNS?t.getElementsByTagNameNS(e,i):t.getElementsByTagName(`${s}:${i}`),r):r},ve=function(e){return e.ownerDocument instanceof Document?e.outerHTML||(new XMLSerializer).serializeToString(e):null},Ae=function(e,t){if(e){const i=e.getElementsByTagName(t);if(i)return i[0]}return null};let be=function(e){(e.indexOf("[REGULATIONS]")>=0||e.indexOf("[GDPRCONSENT]")>=0)&&(J().catch(ue),be=ue)};const Pe=function(e,t){let i=pe(t,"event");if("progress"===i){i=`${i}_${pe(t,"offset")}`}!function(e,t,i){e[t]||(e[t]=[]),i&&(e[t].push(i),be(i))}(e,i,ye(t))},we=function(e,t){if(!e)return null;const i=e.getElementsByTagName("Ad");if(!i.length)return null;const s={_offSet:t};if(1===i.length)s._adQueue=[i[0].textContent.trim()];else{s._pod=[];for(let e=0;e<i.length;e++)s._pod.push(i[e].textContent.trim())}return s},_e=function(e,t,i){if(ce(e,"VMAP",b).length)return function(e,t,i){const s=[],r=ce(e,"VMAP",b);pe(r[0],"version")||ge(s,"VMAP Schema Error: version missing from VMAP tag",A);const n=ce(e,"AdBreak",b);n.length||me();const a=e.lookupNamespaceURI(b),o={};for(let e=0;e<n.length;e++){const t={},i={},r=n[e],l=pe(r,"timeOffset")||0,d=pe(r,"breakId"),h=pe(r,"breakType"),u=ce(r,"AdSource",b)[0],c=pe(u,"id"),p=ce(r,"AdTagURI",b)[0],g=ce(r,"VASTData",b)[0]||ce(r,"VASTAdData",b)[0],m=pe(p,"templateType"),y=ye(p),f=fe(a,r,"Tracking",b);if(h||ge(s,"VMAP Schema Error: missing breakType on AdBreak",d),g||m||ge(s,"VMAP Schema Error: missing templateType on AdBreak",d),l||ge(s,"VMAP Schema Error: missing timeOffset on AdBreak",d),t._type=h,t._vmap={id:c,breakid:d,timeoffset:l},g)t._adXML=ve(Ae(g,"VAST"));else{if("vast2"!==m&&"vast3"!==m&&"vast4"!==m)continue;t._adQueue=[y],t._waterfallIndex=0}const v=[];if(f)for(let e=0;e<f.length;e++){Pe(i,f[e]);const t=pe(f[e],"event");v.push(t)}(v.indexOf("breakStart")<0||v.indexOf("breakEnd")<0||v.indexOf("error")<0)&&ge(s,"Tracking events are missing breakStart, breakEnd, or error for AdBreak",d),t._trackers=i,t._type=h;const A="number"==typeof l||"string"==typeof l;A&&!o[l]?(o[l]=t,o[l]._pod=t._adQueue?[...t._adQueue]:[]):A&&o[l]&&t._adQueue&&o[l]._pod.push(...t._adQueue)}return Object.keys(o).forEach(e=>{const s=o[e];switch(s._pod&&s._pod.length<=1&&delete s._pod,e){case"start":s._offSet="pre",t.setPreRoll(s);break;case"100%":case"end":s._offSet="post",t.setPostRoll(s);break;default:if(/^#/.test(e))break;/^\d\d?(?:\.\d+)?%$/.test(e)?s._offSet=e:s._offSet=i.seconds(e),t.addMidRoll(s)}}),t.preRoll||t.midRolls.length||t.postRoll||me(),t.sort(null,!0),s}(e,t,i);if(ce(e,"Playlist",b).length)return function(e,t,i){const s=ce(e,"Playlist",b)[0],r=s.getElementsByTagName("Preroll")[0],n=s.getElementsByTagName("Postroll")[0],a=we(r,"pre"),o=we(n,"post");a&&t.setPreRoll(a),o&&t.setPostRoll(o);const l=s.getElementsByTagName("Midroll");for(let e=0;e<l.length;e++){const s=l[e],r=i.seconds(s.getAttribute("timeOffset")),n=we(s,r);t.addMidRoll(n)}return[]}(e,t,i);throw new Error("No VMAP tag in response")},ke=function(e,t,i){if(null===e)return;let s;return Object.keys(e).forEach(t=>{const i=e[t];s=s||{},s[t]="_adQueue"===t||"_pod"===t?i.slice():i}),s?(s.requestTimeout=t,s.creativeTimeout=i,s._errors=[],s._waterfallIndex=0,s._adPodIndex=0,s):void 0},Ee=function(e,t){return"%"===e.toString().slice(-1)?t*parseFloat(e.slice(0,-1))/100:parseFloat(e)};class Me{constructor(e,t){this.adRules=e,this.utils=t,this.logger=this.utils.logger.child("ads-shared/Schedule"),this.preRoll=null,this.vmap={url:null,xml:null},this.postRoll=null,this.midRolls=[],this.playedMidRolls=[],this.duration=0,this._vmapPromise=null,this._vmapXHR=null}load(e,t,i,s){return this._vmapPromise||(this._vmapPromise=this._load(e,t,i,s)),this._vmapPromise}async _load(e,i,s,r){try{const{url:n,xml:a}=await this._prepareVMAP(e,i,s,r);if(s===t)return this._handleGoogimaVMAP(n,a),[];return await this._handleVastVMAP(e,s,r,n,a)}catch(t){throw this._mapErrorToEvent(e,t,this.getVMAPUrl())}}async _handleVastVMAP(e,t,i,s,r){let n;n=r?this.utils.parseXML(r):await this._fetchVMAP(s,i),e.trigger("adLoadedXML",{client:t,tag:s,vmapParsedXml:n});return _e(n,this,this.utils).map(e=>Object.assign(e,{vmap:s||this.getVMAPUrl()}))}_fetchVMAP(e,t){return new Promise((i,s)=>{this._vmapXHR=this.utils.ajax({url:e,withCredentials:t.withCredentials,retryWithoutCredentials:!0,requireValidXML:!0,timeout:this.requestTimeout},e=>{this._vmapXHR=null,i(e.responseXML)},(e,t,i,r)=>{this._vmapXHR=null,s(r)})})}_handleGoogimaVMAP(e,t){t?this.setPreRoll({_adXML:t}):this.setPreRoll({_adQueue:[e]})}async _prepareVMAP(e,t,i,s){const r=this.getVMAPUrl();if(this.vmap.xml)return Object.assign({},this.vmap);return{url:await he(r,e,t,i,s),xml:null}}_mapErrorToEvent(e,t,i){const s={id:A,vmap:i};if(null!=t&&t.message)Object.assign(s,{message:`VMAP Schema Error: ${t.message}`,code:1002,adErrorCode:(null==t?void 0:t.adErrorCode)||11002});else{const i={1:{code:1007,message:"Timeout"},602:{code:1e3,message:"Invalid XML"},default:{code:1008,message:e.getConfig().localization.errors[null==t?void 0:t.key]}},r=i[null==t?void 0:t.code]||i.default;this.logger.error(r.message),Object.assign(s,{message:"Error Loading VMAP Schedule",code:r.code,adErrorCode:r.code+1e4})}return s}canWaterfall(e){return e._adQueue&&e._waterfallIndex+1<e._adQueue.length}getPreRoll(e){return e&&"none"===this.adRules.startOnSeek?null:ke(this.preRoll,this.requestTimeout,this.creativeTimeout)}getPostRoll(e){const t=ke(this.postRoll,this.requestTimeout,this.creativeTimeout);return this.adRules.timeBetweenAdsAllowsAdPlayback(t,e)?t:null}getMidRollAtIndex(e){const t=this.midRolls[e];return ke(t,this.requestTimeout,this.creativeTimeout)}getLastMidRollIndexBetweenTime(e,t,i){if(e>t)return null;this.sort(i);let s=this.midRolls.length;for(;s--;){const r=this.midRolls[s],n=Ee(this.midRolls[s]._offSet,i);if(e>=n)return null;if(t>=n){const e=ke(r,this.requestTimeout,this.creativeTimeout);if(!this.adRules.timeBetweenAdsAllowsAdPlayback(e))return null;if(!this.adRules.timeBetweenAds){if(this.playedMidRolls.indexOf(s)>=0)return null;this.playedMidRolls.push(s)}return s}}return null}peek(e,t,i){if(this.midRolls.length>this.playedMidRolls.length){this.sort(i);let s=0;for(;this.midRolls[s];){const r=this.midRolls[s],n=Ee(r._offSet,i);if(n>=e&&-1===this.playedMidRolls.indexOf(s)){const i=F()+1e3*(n-e);return n<=t&&this.adRules.timeBetweenAdsAllowsAdPlayback(null,i)?s:null}s+=1}}const s=F()+1e3*(i-e);return this.postRoll&&t>=i&&this.adRules.timeBetweenAdsAllowsAdPlayback(null,s)?-1:null}getNextMidrollIndex(e,t,i){if(this.adRules.timeBetweenAds||this.adRules.startOnSeek)return this.getLastMidRollIndexBetweenTime(e,t,i);if(this.midRolls.length>this.playedMidRolls.length){const e=this.getClosestIndex(t,i);if(e>=0&&this.playedMidRolls.indexOf(e)<0)return this.playedMidRolls.push(e),e}return null}getMidRolls(){return this.midRolls.map(e=>ke(e,this.requestTimeout,this.creativeTimeout))}reset(){var e;null!==this._vmapXHR&&((e=this._vmapXHR).onload=e.onreadystatechange=e.onerror=null,"abort"in e&&e.abort(),this._vmapXHR=null),this.playedMidRolls=[],this.duration=0}setPreRoll(e){e&&this.resetBreakId(e),this.preRoll=e}addMidRoll(e){this.resetBreakId(e),this.midRolls.push(e),this.duration=0}setPostRoll(e){e&&this.resetBreakId(e),this.postRoll=e}sort(e,t){(!e||e<1)&&(e=1),(this.duration!==e||t)&&(this.duration=e,this.midRolls.forEach(t=>{t._offsetSeconds=Ee(t._offSet,e)}),this.midRolls.sort((e,t)=>e._offsetSeconds-t._offsetSeconds),function(e,t){for(let i=0;i<e.length;i++){const s=e[i];t?s._vmap.item=i+1:(s._adbreak={item:i+1,breakid:s._breakId},s._pod?s._adbreak.pod=s._pod:s._adbreak.tags=s._adQueue)}}(this.getAllAds(),t))}getAllAds(){const e=this.preRoll?[this.preRoll]:[],t=this.postRoll?[this.postRoll]:[];return e.concat(this.midRolls,t)}setVMAP(e){const t=e.trim();this.isXmlVMAP(t)?this.vmap={url:null,xml:t}:this.vmap={url:t,xml:null}}isVMAP(){return Boolean(this.vmap.url||this.vmap.xml)}isXmlVMAP(e){if(!e)return!1;return/^<\?xml|<vmap:/i.test(e.trim())}getVMAPUrl(){return this.vmap.xml?"https://jwplayer.com/vmap.xml":this.vmap.url}getClosestIndex(e,t){this.sort(t);let i=this.midRolls.length;for(;i--;)if(e>=Ee(this.midRolls[i]._offSet,t))return i;return-1}clearAds(){this.preRoll=null,this.midRolls.length=0,this.postRoll=null}resetBreakId(e){e.adBreakId=this.utils.genId(12)}resetAllBreakIds(){this.getAllAds().forEach(e=>{this.resetBreakId(e)})}destroy(){this.reset(),this.adRules.destroy()}}const Ce=function(e){return Array.isArray(e)?e.slice(0):[e]},Ie=function(e,t){return 0===e?1/0:e||t};class je{constructor(e){this.utils=e}getSchedule(e,t){const i=new Me(t,this.utils);if(i.requestTimeout=Ie(e.requestTimeout,5e3),i.creativeTimeout=Ie(e.creativeTimeout,5e3),e.tag)i.setPreRoll({_offSet:"pre",_adQueue:Ce(e.tag),_waterfallIndex:0});else if("string"==typeof e.vastxml)i.setPreRoll({_offSet:"pre",_adXML:e.vastxml});else{if("string"==typeof e.schedule)return i.setVMAP(e.schedule),i;if("string"==typeof e.adschedule)return i.setVMAP(e.adschedule),i;!function(e,t,i){const s=t.schedule||t.adschedule;if(!s)return;const r=i.logger.child("ads-shared/ConfigParser"),n={};Object.keys(s).forEach(e=>{const t=s[e];t.ad&&(Object.assign(t,t.ad),delete t.ad);const a=Z(t.offset,i),o=Ie(t.requestTimeout,5e3),l=Ie(t.creativeTimeout,5e3);let d=n[a];if(d){if("nonlinear"===t.type)return;"nonlinear"===d._type&&(d=null)}const h=n[a]=d||{_offSet:a,_type:t.type,_breakId:e,adBreakId:i.genId(12),requestTimeout:o,creativeTimeout:l};!1===a&&r.error("Error: ad offset format not supported",a);const u=t.skipoffset;if(void 0!==u&&void 0===h.skipoffset&&(h.skipoffset=u),"string"==typeof t.adm)h.adm=t.adm;else if(t.pod){const e=h._pod||[];h._pod=e.concat(t.pod)}else if(t.tag){const e=B(t.tag,t.custParams);h._adQueue&&(h._pod=[h._adQueue[0]],delete h._adQueue),h._pod?h._pod.push(Ce(e)[0]):h._adQueue=Ce(e)}else"string"==typeof t.vastxml?h._adXML=t.vastxml:r.error("Error: no ad tag provided")}),Object.keys(n).forEach(i=>{const s=n[i];switch(s.skipoffset=void 0!==s.skipoffset?s.skipoffset:t.skipoffset,i){case"pre":e.setPreRoll(s);break;case"post":e.setPostRoll(s);break;default:e.addMidRoll(s)}})}(i,e,this.utils)}return i.sort(),i}getOptParams(e,t){const i={cuetext:t.cuetext,dynamicMessage:t.admessage,loadingAd:t.loadingAd,podMessage:t.podmessage,skipoffset:e.skipoffset,skipmessage:t.skipmessage,skiptext:t.skiptext,omidAccessMode:e.omidAccessMode||"full",omidSupport:e.omidSupport||"auto",allowedOmidVendors:e.allowedOmidVendors||[],vpaidcontrols:e.vpaidcontrols||!1,conditionaladoptout:e.conditionaladoptout||!1,requestFilter:e.requestFilter,trackingFilter:e.trackingFilter,withCredentials:void 0===e.withCredentials||e.withCredentials,extensions:"[object Object]"===Object.prototype.toString.call(e.extensions)?e.extensions:{}},s=e.companiondiv;return s&&(i.companion={id:s.id,height:s.height,width:s.width}),i}getAdRules(e){const t=e.rules||{},i=parseInt(t.frequency,10);return{startOn:t.startOn||1,frequency:isNaN(i)?1:i,timeBetweenAds:t.timeBetweenAds||0,startOnSeek:t.startOnSeek||null,deferAds:t.deferAds||null}}}const Se=function(e,t=null,i={}){const s={client:e.client},{bidding:r,item:n,player:a}=e;if(e.isDestroyed()||Object.assign(s,{placement:K(a.getConfig()),viewable:a.getViewable()}),i.jwpseg&&(s.jwpseg=i.jwpseg),t){const{adBreakId:n,adPlayId:a}=e.getAdIds(t,i);if(Object.assign(s,{adBreakId:n,adPlayId:a,offset:t._offSet}),r){const e=r.getBid(a);e&&Object.assign(s,e.getEventObject())}}return s.item=n,s},Re=function(e,t,i,s){return{client:s,message:e,adErrorCode:t,id:A,placement:K(i),tag:""}};class Te{constructor(e,t){this.player=e,this.options=t,this.client=t.client,this.ignoreStartOnSeek=!1,this.reset(),t.timeBetweenAds&&e.on({adBreakStart:this.handleAdBreakStart,adSkipped:this.handleAdSkipped,adComplete:this.handleAdComplete,adBreakEnd:this.handleAdBreakEnd,destroyPlugin:this.destroy},this)}get timeBetweenAds(){return this.options.timeBetweenAds}get startOnSeek(){return this.ignoreStartOnSeek?null:this.options.startOnSeek}shouldDeferAds(){return this.options.deferAds&&!this.player.getConfig().activeTab}clearStartOnSeek(){this.ignoreStartOnSeek=!0}sendAdBreakIgnored(e,t){e&&this.player.trigger(l,function(e,t){let i={};return e&&(i={id:e._breakId,tag:e._adQueue&&e._adQueue.length>0?e._adQueue[0]:e._adXML,offset:e._offSet}),Object.assign(i,{timeSinceLastAd:t,type:l})}(e,t,this.client))}rulesAllowAdPlayback(e){const t=this.options,i=0===t.frequency&&1===e,s=e>=t.startOn&&(e-t.startOn)%t.frequency===0;return i||s}handleAdBreakStart(){this.adSkipped=!1,this.adComplete=!1}handleAdComplete(){this.adComplete=!0}handleAdSkipped(){this.adSkipped=!0}handleAdBreakEnd(){!this.adSkipped&&this.adComplete&&(this.recentCompletedAdTime=F(),this.player.trigger("previousAdCompleteTime",{time:this.recentCompletedAdTime}))}timeBetweenAdsAllowsAdPlayback(e,t=F()){if(this.options.timeBetweenAds){const i=(t-this.recentCompletedAdTime)/1e3;if(i<this.options.timeBetweenAds)return this.sendAdBreakIgnored(e,i),!1}return!0}reset(){this.ignoreStartOnSeek=!1,this.recentCompletedAdTime=0}destroy(){this.player.off(null,null,this)}}class xe{constructor(e,t,i){this.player=e,this.pluginConfig=t,this.adClient=i;const s=this.configParser=new je(e.utils),r=this.adRules=new Te(e,s.getAdRules(t),i);this.emptySchedule=new Me(r,e.utils),this.logger=this.player.utils.logger.child("ads-shared/ConfigScheduleParser")}getAdRules(){return this.adRules}resetDefaultSchedule(e){const t=void 0===this.pluginConfig.withCredentials||this.pluginConfig.withCredentials,i=this.defaultSchedule=this.configParser.getSchedule(this.pluginConfig,this.adRules);i.isVMAP()&&i.load(this.player,e,this.adClient,{withCredentials:t}).catch(e=>this.logger.debug(e))}getSchedule(e,t){var i;return t>0&&!this.adRules.rulesAllowAdPlayback(t)?this.emptySchedule:null!=e&&e.adschedule&&!0!==(null==(i=this.pluginConfig)?void 0:i.ignorePlaylistSchedules)?this.configParser.getSchedule(e,this.adRules):(this.resetDefaultSchedule(e),this.defaultSchedule)}getOptParams(e,t){return this.configParser.getOptParams(e,t)}reset(){this.adRules.reset()}destroy(){this.emptySchedule&&this.emptySchedule.destroy(),this.defaultSchedule&&this.defaultSchedule.destroy()}}var Oe="object"==typeof global&&global&&global.Object===Object&&global,Le="object"==typeof self&&self&&self.Object===Object&&self,Be=Oe||Le||Function("return this")(),De=Be.Symbol,Ve=Object.prototype,qe=Ve.hasOwnProperty,Ne=Ve.toString,Ue=De?De.toStringTag:void 0;var ze=Object.prototype.toString;var $e=De?De.toStringTag:void 0;function He(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":$e&&$e in Object(e)?function(e){var t=qe.call(e,Ue),i=e[Ue];try{e[Ue]=void 0;var s=!0}catch(e){}var r=Ne.call(e);return s&&(t?e[Ue]=i:delete e[Ue]),r}(e):function(e){return ze.call(e)}(e)}function Qe(e){return null!=e&&"object"==typeof e}var Fe=Array.isArray;function Xe(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function We(e){return e}function Ge(e){if(!Xe(e))return!1;var t=He(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}var Je,Ke=Be["__core-js_shared__"],Ye=(Je=/[^.]+$/.exec(Ke&&Ke.keys&&Ke.keys.IE_PROTO||""))?"Symbol(src)_1."+Je:"";var Ze=Function.prototype.toString;var et=/^\[object .+?Constructor\]$/,tt=Function.prototype,it=Object.prototype,st=tt.toString,rt=it.hasOwnProperty,nt=RegExp("^"+st.call(rt).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function at(e){return!(!Xe(e)||(t=e,Ye&&Ye in t))&&(Ge(e)?nt:et).test(function(e){if(null!=e){try{return Ze.call(e)}catch(e){}try{return e+""}catch(e){}}return""}(e));var t}function ot(e,t){var i=function(e,t){return null==e?void 0:e[t]}(e,t);return at(i)?i:void 0}var lt=Object.create,dt=function(){function e(){}return function(t){if(!Xe(t))return{};if(lt)return lt(t);e.prototype=t;var i=new e;return e.prototype=void 0,i}}();var ht=Date.now;var ut,ct,pt,gt=function(){try{var e=ot(Object,"defineProperty");return e({},"",{}),e}catch(e){}}(),mt=gt,yt=mt?function(e,t){return mt(e,"toString",{configurable:!0,enumerable:!1,value:(i=t,function(){return i}),writable:!0});var i}:We,ft=(ut=yt,ct=0,pt=0,function(){var e=ht(),t=16-(e-pt);if(pt=e,t>0){if(++ct>=800)return arguments[0]}else ct=0;return ut.apply(void 0,arguments)}),vt=ft,At=/^(?:0|[1-9]\d*)$/;function bt(e,t){var i=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==i||"symbol"!=i&&At.test(e))&&e>-1&&e%1==0&&e<t}function Pt(e,t,i){"__proto__"==t&&mt?mt(e,t,{configurable:!0,enumerable:!0,value:i,writable:!0}):e[t]=i}function wt(e,t){return e===t||e!=e&&t!=t}var _t=Object.prototype.hasOwnProperty;function kt(e,t,i){var s=e[t];_t.call(e,t)&&wt(s,i)&&(void 0!==i||t in e)||Pt(e,t,i)}var Et=Math.max;function Mt(e,t){return vt(function(e,t,i){return t=Et(void 0===t?e.length-1:t,0),function(){for(var s=arguments,r=-1,n=Et(s.length-t,0),a=Array(n);++r<n;)a[r]=s[t+r];r=-1;for(var o=Array(t+1);++r<t;)o[r]=s[r];return o[t]=i(a),function(e,t,i){switch(i.length){case 0:return e.call(t);case 1:return e.call(t,i[0]);case 2:return e.call(t,i[0],i[1]);case 3:return e.call(t,i[0],i[1],i[2])}return e.apply(t,i)}(e,this,o)}}(e,t,We),e+"")}function Ct(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}function It(e){return null!=e&&Ct(e.length)&&!Ge(e)}var jt=Object.prototype;function St(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||jt)}function Rt(e){return Qe(e)&&"[object Arguments]"==He(e)}var Tt=Object.prototype,xt=Tt.hasOwnProperty,Ot=Tt.propertyIsEnumerable,Lt=Rt(function(){return arguments}())?Rt:function(e){return Qe(e)&&xt.call(e,"callee")&&!Ot.call(e,"callee")},Bt=Lt;var Dt="object"==typeof exports&&exports&&!exports.nodeType&&exports,Vt=Dt&&"object"==typeof module&&module&&!module.nodeType&&module,qt=Vt&&Vt.exports===Dt?Be.Buffer:void 0,Nt=(qt?qt.isBuffer:void 0)||function(){return!1},Ut={};Ut["[object Float32Array]"]=Ut["[object Float64Array]"]=Ut["[object Int8Array]"]=Ut["[object Int16Array]"]=Ut["[object Int32Array]"]=Ut["[object Uint8Array]"]=Ut["[object Uint8ClampedArray]"]=Ut["[object Uint16Array]"]=Ut["[object Uint32Array]"]=!0,Ut["[object Arguments]"]=Ut["[object Array]"]=Ut["[object ArrayBuffer]"]=Ut["[object Boolean]"]=Ut["[object DataView]"]=Ut["[object Date]"]=Ut["[object Error]"]=Ut["[object Function]"]=Ut["[object Map]"]=Ut["[object Number]"]=Ut["[object Object]"]=Ut["[object RegExp]"]=Ut["[object Set]"]=Ut["[object String]"]=Ut["[object WeakMap]"]=!1;var zt="object"==typeof exports&&exports&&!exports.nodeType&&exports,$t=zt&&"object"==typeof module&&module&&!module.nodeType&&module,Ht=$t&&$t.exports===zt&&Oe.process,Qt=function(){try{var e=$t&&$t.require&&$t.require("util").types;return e||Ht&&Ht.binding&&Ht.binding("util")}catch(e){}}(),Ft=Qt&&Qt.isTypedArray,Xt=Ft?function(e){return function(t){return e(t)}}(Ft):function(e){return Qe(e)&&Ct(e.length)&&!!Ut[He(e)]},Wt=Xt,Gt=Object.prototype.hasOwnProperty;function Jt(e,t){var i=Fe(e),s=!i&&Bt(e),r=!i&&!s&&Nt(e),n=!i&&!s&&!r&&Wt(e),a=i||s||r||n,o=a?function(e,t){for(var i=-1,s=Array(e);++i<e;)s[i]=t(i);return s}(e.length,String):[],l=o.length;for(var d in e)!t&&!Gt.call(e,d)||a&&("length"==d||r&&("offset"==d||"parent"==d)||n&&("buffer"==d||"byteLength"==d||"byteOffset"==d)||bt(d,l))||o.push(d);return o}var Kt=Object.prototype.hasOwnProperty;function Yt(e){if(!Xe(e))return function(e){var t=[];if(null!=e)for(var i in Object(e))t.push(i);return t}(e);var t=St(e),i=[];for(var s in e)("constructor"!=s||!t&&Kt.call(e,s))&&i.push(s);return i}function Zt(e){return It(e)?Jt(e,!0):Yt(e)}var ei=ot(Object,"create");var ti=Object.prototype.hasOwnProperty;var ii=Object.prototype.hasOwnProperty;function si(e){var t=-1,i=null==e?0:e.length;for(this.clear();++t<i;){var s=e[t];this.set(s[0],s[1])}}function ri(e,t){for(var i=e.length;i--;)if(wt(e[i][0],t))return i;return-1}si.prototype.clear=function(){this.__data__=ei?ei(null):{},this.size=0},si.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},si.prototype.get=function(e){var t=this.__data__;if(ei){var i=t[e];return"__lodash_hash_undefined__"===i?void 0:i}return ti.call(t,e)?t[e]:void 0},si.prototype.has=function(e){var t=this.__data__;return ei?void 0!==t[e]:ii.call(t,e)},si.prototype.set=function(e,t){var i=this.__data__;return this.size+=this.has(e)?0:1,i[e]=ei&&void 0===t?"__lodash_hash_undefined__":t,this};var ni=Array.prototype.splice;function ai(e){var t=-1,i=null==e?0:e.length;for(this.clear();++t<i;){var s=e[t];this.set(s[0],s[1])}}ai.prototype.clear=function(){this.__data__=[],this.size=0},ai.prototype.delete=function(e){var t=this.__data__,i=ri(t,e);return!(i<0)&&(i==t.length-1?t.pop():ni.call(t,i,1),--this.size,!0)},ai.prototype.get=function(e){var t=this.__data__,i=ri(t,e);return i<0?void 0:t[i][1]},ai.prototype.has=function(e){return ri(this.__data__,e)>-1},ai.prototype.set=function(e,t){var i=this.__data__,s=ri(i,e);return s<0?(++this.size,i.push([e,t])):i[s][1]=t,this};var oi=ot(Be,"Map");function li(e,t){var i,s,r=e.__data__;return("string"==(s=typeof(i=t))||"number"==s||"symbol"==s||"boolean"==s?"__proto__"!==i:null===i)?r["string"==typeof t?"string":"hash"]:r.map}function di(e){var t=-1,i=null==e?0:e.length;for(this.clear();++t<i;){var s=e[t];this.set(s[0],s[1])}}di.prototype.clear=function(){this.size=0,this.__data__={hash:new si,map:new(oi||ai),string:new si}},di.prototype.delete=function(e){var t=li(this,e).delete(e);return this.size-=t?1:0,t},di.prototype.get=function(e){return li(this,e).get(e)},di.prototype.has=function(e){return li(this,e).has(e)},di.prototype.set=function(e,t){var i=li(this,e),s=i.size;return i.set(e,t),this.size+=i.size==s?0:1,this};var hi=function(e,t){return function(i){return e(t(i))}}(Object.getPrototypeOf,Object),ui=hi,ci=Function.prototype,pi=Object.prototype,gi=ci.toString,mi=pi.hasOwnProperty,yi=gi.call(Object);function fi(e){var t=this.__data__=new ai(e);this.size=t.size}fi.prototype.clear=function(){this.__data__=new ai,this.size=0},fi.prototype.delete=function(e){var t=this.__data__,i=t.delete(e);return this.size=t.size,i},fi.prototype.get=function(e){return this.__data__.get(e)},fi.prototype.has=function(e){return this.__data__.has(e)},fi.prototype.set=function(e,t){var i=this.__data__;if(i instanceof ai){var s=i.__data__;if(!oi||s.length<199)return s.push([e,t]),this.size=++i.size,this;i=this.__data__=new di(s)}return i.set(e,t),this.size=i.size,this};var vi="object"==typeof exports&&exports&&!exports.nodeType&&exports,Ai=vi&&"object"==typeof module&&module&&!module.nodeType&&module,bi=Ai&&Ai.exports===vi?Be.Buffer:void 0,Pi=bi?bi.allocUnsafe:void 0;var wi=Be.Uint8Array;function _i(e,t){var i,s,r=t?(i=e.buffer,s=new i.constructor(i.byteLength),new wi(s).set(new wi(i)),s):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}var ki,Ei=function(e,t,i){for(var s=-1,r=Object(e),n=i(e),a=n.length;a--;){var o=n[ki?a:++s];if(!1===t(r[o],o,r))break}return e};function Mi(e,t,i){(void 0!==i&&!wt(e[t],i)||void 0===i&&!(t in e))&&Pt(e,t,i)}function Ci(e,t){if(("constructor"!==t||"function"!=typeof e[t])&&"__proto__"!=t)return e[t]}function Ii(e){return function(e,t,i,s){var r=!i;i||(i={});for(var n=-1,a=t.length;++n<a;){var o=t[n],l=s?s(i[o],e[o],o,i,e):void 0;void 0===l&&(l=e[o]),r?Pt(i,o,l):kt(i,o,l)}return i}(e,Zt(e))}function ji(e,t,i,s,r,n,a){var o=Ci(e,i),l=Ci(t,i),d=a.get(l);if(d)Mi(e,i,d);else{var h,u=n?n(o,l,i+"",e,t,a):void 0,c=void 0===u;if(c){var p=Fe(l),g=!p&&Nt(l),m=!p&&!g&&Wt(l);u=l,p||g||m?Fe(o)?u=o:Qe(h=o)&&It(h)?u=function(e,t){var i=-1,s=e.length;for(t||(t=Array(s));++i<s;)t[i]=e[i];return t}(o):g?(c=!1,u=function(e,t){if(t)return e.slice();var i=e.length,s=Pi?Pi(i):new e.constructor(i);return e.copy(s),s}(l,!0)):m?(c=!1,u=_i(l,!0)):u=[]:function(e){if(!Qe(e)||"[object Object]"!=He(e))return!1;var t=ui(e);if(null===t)return!0;var i=mi.call(t,"constructor")&&t.constructor;return"function"==typeof i&&i instanceof i&&gi.call(i)==yi}(l)||Bt(l)?(u=o,Bt(o)?u=Ii(o):Xe(o)&&!Ge(o)||(u=function(e){return"function"!=typeof e.constructor||St(e)?{}:dt(ui(e))}(l))):c=!1}c&&(a.set(l,u),r(u,l,s,n,a),a.delete(l)),Mi(e,i,u)}}function Si(e,t,i,s,r){e!==t&&Ei(t,function(n,a){if(r||(r=new fi),Xe(n))ji(e,t,a,i,Si,s,r);else{var o=s?s(Ci(e,a),n,a+"",e,t,r):void 0;void 0===o&&(o=n),Mi(e,a,o)}},Zt)}var Ri,Ti=(Ri=function(e,t,i,s){Si(e,t,i,s)},Mt(function(e,t){var i=-1,s=t.length,r=s>1?t[s-1]:void 0,n=s>2?t[2]:void 0;for(r=Ri.length>3&&"function"==typeof r?(s--,r):void 0,n&&function(e,t,i){if(!Xe(i))return!1;var s=typeof t;return!!("number"==s?It(i)&&bt(t,i.length):"string"==s&&t in i)&&wt(i[t],e)}(t[0],t[1],n)&&(r=s<3?void 0:r,s=1),e=Object(e);++i<s;){var a=t[i];a&&Ri(e,a,i,r)}return e})),xi=function(e,t){if(null==e)throw new TypeError("Cannot convert undefined or null to object");return Object.prototype.hasOwnProperty.call(Object(e),t)};class Oi{constructor(e,t,i){this.config=e,this.setOptions(i),this.setLocalizationOptions(t)}setLocalizationOptions(e){for(const t in e)t&&"string"==typeof t&&(this[t]=e[t])}getFinalValue(e,t,i){const s=typeof i;if(void 0!==t){if("boolean"!==s&&"number"!==s||(t=(e=>{if("true"===e)return!0;if("false"===e)return!1;const t=parseFloat(e);return isNaN(t)?e:t})(t)),typeof t!==s)throw new Error(`invalid parameter: ${e} should be a ${s}`);return"object"===s&&"object"==typeof t?Ti(i,t,(e,t)=>null===t&&e?e:Array.isArray(t)?t:void 0):t}return i}setOptions(e,t=!1){for(const i in e)if(xi(e,i)){const s=t?this.config[i]||this.config[i.toLowerCase()]:this.config[i],r=e[i];this[i]=this.getFinalValue(i,s,r)}}}const Li={adPosition:"",autoplayadsmuted:!1,companiondiv:null,companionResourceType:"",customUi:null,debug:!1,omidSupport:"disabled",omidAccessModeRules:{},enablePreloading:!1,loadVideoTimeout:15e3,locale:"",maxRedirects:-1,ppid:"",preloadAds:!1,requestTimeout:1e4,truncateMacros:!0,vastLoadTimeout:1e4,vpaidcontrols:!1,vpaidmode:"insecure"};class Bi extends Oi{constructor(e,t,i){var s;const r=null==t||null==(s=t.localization)?void 0:s.advertising,{admessage:n,cuetext:a,podmessage:o,loadingAd:l,skipmessage:d,skiptext:h}=r;super(e,{admessage:n,cuetext:a,podmessage:o,loadingAd:l,skipmessage:d,skiptext:h},Li),this.utils=i,this.bidsResponse={}}}class Di{constructor(e,t,i){i.addClass(e,"jw-plugin-googima");const s=document.createElement("div");s.id=`${t}_ad`,s.className="jw-ads-view",this.visible=!1,this.utils=i,this.div=e,this.adDiv=s,e.appendChild(s)}resizeNonLinear(e){this.resize(!1,e)}resizeLinear(){this.resize(!0)}resize(e,t){const i=this.utils;i.toggleClass(this.div,"jw-ad-non-linear",!e),i.toggleClass(this.div,"jw-ad-linear",e),i.style(this.div,{height:t?`${t}px`:""})}getAdDiv(){return this.adDiv}adSetup(){this.visible=!0,this.utils.addClass(this.div,"jw-ad-instream"),this.resize(!0)}adTakeDown(){this.visible=!1,this.utils.removeClass(this.div,"jw-ad-instream"),this.resize(!0)}}const Vi={};let qi=null;function Ni(e){var t,i,s;return!qi&&null!=(t=window)&&null!=(i=t.google)&&null!=(s=i.ima)&&s.AdDisplayContainer&&(qi=Promise.resolve()),qi||(qi=function(e,t){if(Vi[t])return Vi[t];"file:"===document.location.protocol&&0===t.indexOf("//")&&(t=`https:${t}`);const i=new(0,e.scriptloader)(t);return Vi[t]=i.load(),Vi[t]}(e,"//imasdk.googleapis.com/js/sdkloader/ima3.js"),qi)}class Ui{constructor(e,t,i){e.extend(this,t),this.vol=0,this.imaProxy=null,this.view=i}setProxy(e){this.imaProxy=e,"boolean"==typeof this.muted&&this.mute(this.muted)}attachMedia(){}detachMedia(){}mute(e){this.muted=e,this.imaProxy&&(e?this.imaProxy.setVolume(0):this.vol>=0&&this.imaProxy.setVolume(this.vol)),this.muteAllAdContainerVideo(e)}muteAllAdContainerVideo(e){const t=this.view.getAdDiv().getElementsByTagName("video");for(let i=0;i<t.length;i++)t[i].muted=e}volume(e){this.vol=e/100,this.imaProxy&&this.imaProxy.setVolume(this.vol)}}class zi{constructor(e,t,i,s,r){Object.assign(this,e.Events),this.client="shared",this.player=e,this.item=i,this.config=s,this.casting=r;const n=e.utils,a=new je(n);this.adRules=new Te(e,a.getAdRules(s)),"string"==typeof t?(this.schedule=new Me(this.adRules,n),this.schedule.setPreRoll({tag:t})):(this.schedule=t,t.resetAllBreakIds()),this.logger=this.player.utils.logger.child("ads-shared/PlaylistItemManager"),this.vmapPromise=null,this.lastTimeEvent=null,this.prerollPromise=null,this.midrollPromise={},this.postrollPromise=null,this.next=null,this.nextPlaylistItemPromise=null,this.relatedNextUp=null,this.bidding=e.getPlugin("bidding"),this.bids=[],this.bidsPromises=[],this.bidsPromise=null,this._events=[]}attachListeners(){this.player.on({all:this.onAll,beforePlay:this.checkPreroll,relatedReady:this.relatedReady,cast:this.onCast,destroyBidding:this.destroyBids},this)}onAll(e,t){this.isDestroyed()||(e===o?this.checkMidrolls(t):"beforeComplete"===e?this.checkPostrolls(t):"meta"===e&&this.schedule.sort(this.player.getDuration()),"complete"===e&&(this.player.videoHasCompleted=!0))}relatedReady(){if(this.config.preloadAds){const e=this.player.getPlugin("related");e&&e.on("nextUp",e=>{e&&"discovery"===e.mode&&(this.relatedNextUp=e)})}}onCast(e){this.casting=Boolean(e.active)}init(e,t){if(this.config.clearAdsOnComplete&&this.player.videoHasCompleted&&this.schedule.clearAds(),e=e||null,this.schedule.isVMAP()&&(t.requestTimeout=this.schedule.requestTimeout,t.creativeTimeout=this.schedule.creativeTimeout,this.vmapPromise=this.schedule.load(this.player,this.item,this.client,t)),this.bidsPromise=this.vmapPromise||Promise.resolve(),this.bidsPromise=null!==e?this.bidsPromise.then(()=>{if(this.isDestroyed())return;if(this.bidding)return this.createBidsPromise(e,t);const i=function(e,t,i){const s=Se(e,t,i);return Object.assign(s,{message:"Ad Error: bidding plugin unavailable",code:900,adErrorCode:60008}),s}(this,null,t);this.player.trigger(p,i)}).catch(e=>this.logger.debug(e)):this.bidsPromise.catch(e=>this.logger.debug(e)),this.config.preloadAds)if(1===t.playlistItemEventCount){const e=this.player.getConfig().autostart;!1===e||"viewable"===e&&0===this.player.getViewable()?this.loadPreroll(t).catch(e=>this.isDestroyed()?null:this.enqueueAdEvent(p,e,{preload:!0})):this.player.once("autostartNotAllowed",()=>{this.loadPreroll(t).catch(e=>this.isDestroyed()?null:this.enqueueAdEvent(p,e,{preload:!0}))})}else t.preloadPreroll&&this.loadPreroll(t).catch(e=>this.isDestroyed()?null:this.enqueueAdEvent(p,e,{preload:!0}));return this.bidsPromise}createBidsPromise(t,i){const s=this.player;let r=parseInt(t.bidOnBreaks,10);return r=r>0?r:1/0,this.bids=this.schedule.getAllAds().slice(0,r).map(r=>{const{adPlayId:n}=this.getAdIds(r),a=s.getConfig(),{skipoffset:o}=this.config,l=null!=o&&o>=0,d=te(s,this.item),h={id:n,offset:t.offset,jwpseg:d,placement:K(a),tag:r._adQueue?r._adQueue[0]:r._currentTag,adClient:this.client};this.client===e&&(h.skipoffset=l?o:-1);const u=this.bidding.createNewBid(h,{getURLParts:Y});this.player.trigger("adBidRequest",Se(this,r,Object.assign({jwpseg:d},i))),u.init();const c=u.start().then(({result:t})=>{if(this.isDestroyed())return;let s=Promise.resolve();var n;t&&!t.error&&(r.jwpseg=d,t.adm?(r._adXML=t.adm,null!=r&&null!=(n=r._adQueue)&&n.length&&r._adQueue.unshift(t.adm)):t.tag&&(s=he(t.tag,this.player,this.item,this.client,{},r).then(t=>{this.client===e?(r._adQueue=r._adQueue||[],r._adQueue.unshift(t)):r._adQueue=[t]})));return this.player.trigger("adBidResponse",Se(this,r,i)),s});return this.bidsPromises.push(c),u}),Promise.all(this.bidsPromises)}checkPreroll(e){if(this.bidTimeoutStarted||(this.bidTimeoutStarted=!0,this.bids.forEach(e=>e.timeout())),this.casting||this.preRollPlayed||this.adRules.shouldDeferAds())return;this.preRollPlayed=!0;const t=(null==e?void 0:e.startTime)||this.player.getPosition();this.lastTimeEvent=t||this.lastTimeEvent;const i=this.schedule.getPreRoll(t);if(!i&&!this.vmapPromise)return;(null!==this.vmapPromise||i&&"nonlinear"!==i._type)&&this.startBlocking(),this.bidsPromise.then(()=>{if(this.isDestroyed())return;const e=this.schedule.getPreRoll(t);e&&"nonlinear"!==e._type&&this.triggerAdBreakEvents(e,"pre")}),t?"none"===this.adRules.startOnSeek&&(this.prerollPromise=null):this.adRules.clearStartOnSeek();const s=null!=e&&e.playReason?e.playReason:n;this.playPreroll({adBlock:this.adBlockErrorDetected,startTime:t,reason:s})}checkMidrolls(e){if(this.casting||0===e.duration||this.adRules.shouldDeferAds())return;const t=this.schedule.getNextMidrollIndex(this.lastTimeEvent,e.position,e.duration);if(this.lastTimeEvent=e.position,null!==t){if(this.isAdLoading)return;const e=this.schedule.getMidRollAtIndex(t);"nonlinear"!==e._type&&(this.startBlocking(),this.triggerAdBreakEvents(e,"mid")),this.playMidrollAtIndex(t,{adBlock:this.adBlockErrorDetected})}else if(!this.preRollPlayed&&this.schedule.getClosestIndex(e.position,e.duration)<0)this.checkPreroll(e);else if(this.config.preloadAds){const t=e.position+5,i=this.schedule.peek(e.position,t,e.duration);if(null!==i&&i>=0)this.loadMidrollAtIndex(i,{adBlock:this.adBlockErrorDetected,preload:!0}).catch(e=>this.logger.debug(e));else if(-1===i){const t=F()+1e3*(e.duration-e.position);this.loadPostroll({adBlock:this.adBlockErrorDetected,preload:!0,startTime:t}).catch(e=>this.logger.debug(e))}else if(null===this.next&&null===this.nextPlaylistItemPromise&&t>e.duration){const e=this.player.getPlaylistIndex()+1,t=this.player.getPlaylistItem(e);if(this.nextPlaylistRelated=Boolean(this.relatedNextUp),t||this.relatedNextUp){const t=this.relatedNextUp?-1:e;this.nextPlaylistItemPromise=Promise.resolve(this.player.getPlaylistItemPromise(t)).then(()=>{this.isDestroyed()||(this.trigger("preloadNext",{item:this.player.getPlaylistItem(e)||this.relatedNextUp,index:t}),this.relatedNextUp=null,this.nextPlaylistItemPromise=null)}).catch(e=>this.logger.debug(e))}}}}checkPostrolls(e){if(this.casting||this.adRules.shouldDeferAds()||this.isDestroyed())return;const t=this.schedule.getPostRoll();t&&("nonlinear"!==t._type&&(this.startBlocking(),this.triggerAdBreakEvents(t,"post")),this.playPostroll(e))}getAdIds(e,{tagIndex:t,podIndex:i}={}){let s=e.adRequestIds&&void 0!==t?e.adRequestIds[t]:null;if(!s){const t=`p${i||e._adPodIndex||0}w${e._waterfallIndex||0}`;"p0w0"===t?s=e.adBreakId:(e.adPlayIds=e.adPlayIds||{},s=e.adPlayIds[t]=e.adPlayIds[t]||this.player.utils.genId(12))}return{adBreakId:e.adBreakId,adPlayId:s}}loadPreroll(e={}){return this.prerollPromise||(this.prerollPromise=this.bidsPromise.then(()=>{if(this.isDestroyed())return;const t=this.schedule.getPreRoll(e.startTime);return t?(t._position="pre",t._preload=!0,this.loadAd(t,e)):void 0})),this.prerollPromise}loadMidrollAtIndex(e,t){return this.midrollPromise[e]||(this.midrollPromise[e]=this.bidsPromise.then(()=>{if(this.isDestroyed())return;const i=this.schedule.getMidRollAtIndex(e);return i?(i._position="mid",i._preload=!0,this.loadAd(i,t)):void 0})),this.midrollPromise[e]}loadPostroll(e={}){return this.postrollPromise||(this.postrollPromise=this.bidsPromise.then(()=>{if(this.isDestroyed())return;const t=this.schedule.getPostRoll(e.startTime);return t?(t._position="post",t._preload=!0,this.loadAd(t,e)):void 0})),this.postrollPromise}playPreroll(e){this.prerollPromise?this.playPreloadedPromise(this.prerollPromise,e):this.bidsPromise.then(()=>{if(this.isDestroyed())return;const t=this.schedule.getPreRoll(e.startTime);t?(t._position="pre",this.startAdBreak(t,e)):this.stopBlocking()})}playMidrollAtIndex(e){this.midrollPromise[e]?this.playPreloadedPromise(this.midrollPromise[e]):this.bidsPromise.then(()=>{const t=this.schedule.getMidRollAtIndex(e);t&&(t._position="mid",this.startAdBreak(t))})}playPostroll(e){this.postrollPromise?this.playPreloadedPromise(this.postrollPromise):this.bidsPromise.then(()=>{const t=this.schedule.getPostRoll();t&&(t._position="post",this.startAdBreak(t,e))})}isDestroyed(){return null===this.player}destroy(){this.destroyBids(),this.player.off(null,null,this),this.player=null}destroyBids(){this.bids.forEach(e=>e.stop()),this.bidsPromises=[],this.bids=[]}enqueueAdEvent(e,t,i){this._events.push({type:e,event:t}),i.preload||this.dequeueAdEvents()}async waitForAdPlay(e){this.isAdLoading=!0;let t=!1;try{await e,t=!0}catch(e){var i;null==(i=this.logger)||i.debug(e)}return this.isAdLoading=!1,t}dequeueAdEvents(){}triggerAdBreakEvents(){}startBlocking(){this.player.trigger("adAttemptStart")}stopBlocking(){this.player.trigger("adAttemptEnd")}loadAd(){}playPreloadedPromise(){}startAdBreak(){}adBreakForecast(){}}const $i=(e,t,...i)=>{if(null!=e&&e[t]&&"function"==typeof e[t])try{return e[t](...i)}catch(e){return null}return null},Hi=(e,i,s,r={})=>{i=i||null;const n={client:t};if(!e)return n;const{bidding:a,config:o,player:l}=e;Object.assign(n,{placement:K(l.getConfig()),viewable:l.getViewable()}),r.jwpseg&&(n.jwpseg=r.jwpseg),o.preloadAds&&(n.preloadAds=r.preload||(null==s?void 0:s._preload)||!1);const d=$i(i,"getAdPodInfo");if(d){const e=$i(d,"getTotalAds");if(e>1){const t=$i(d,"getAdPosition");Object.assign(n,{sequence:t,podcount:e}),r.podIndex="number"==typeof t?t-1:0}if(void 0===n.adposition){const e=$i(d,"getTimeOffset");n.adposition=0===e?"pre":-1===e?"post":"mid"}}if(s){const{adBreakId:t,adPlayId:i}=e.getAdIds(s,r);if(Object.assign(n,{tag:s._adQueue&&s._adQueue.length>0?s._adQueue[0]:s._adXML||s.adm,adBreakId:t,adPlayId:i,id:t,adposition:s._position}),s.jwpseg&&(n.jwpseg=s.jwpseg),a){const e=a.getBid(i);e&&Object.assign(n,e.getEventObject())}}const h=e.adsLoaderManager||r.loader;if(i){if(h){const e=n.mediationLayerAdServer;if("dfp"===e||"jwpdfp"===e){-1!==($i(i,"getWrapperAdSystem")||[]).concat($i(i,"getAdSystem")||[]).indexOf("SpotXJW")&&n.bidders.forEach(e=>{e.winner="SpotX"===e.name})}const t=h.userRequestContext;Object.assign(n,{tag:n.tag||h.getTag(i),ima:{ad:i,userRequestContext:t}})}Object.assign(n,{adtitle:i.getTitle(),adsystem:i.getAdSystem(),creativetype:i.getContentType(),duration:i.getDuration(),linear:i.isLinear()?"linear":"nonlinear",description:i.getDescription(),creativeAdId:i.getCreativeAdId(),adId:i.getAdId(),universalAdId:i.getUniversalAdIds().map(e=>({universalAdIdRegistry:e.g,universalAdIdValue:e.h})),advertiser:i.getAdvertiserName(),dealId:i.getDealId()});const e=i.getMediaUrl();e&&(n.mediaFile={file:e})}return void 0!==r.offset&&Object.assign(n,{adposition:n.adposition||r.offset,offset:r.offset}),n},Qi=(e,t,i,s,r)=>{const n=Hi(e,i,s,r),a=t.getVastErrorCode?t.getVastErrorCode():t.code;let o=t.getErrorCode?t.getErrorCode():t.adErrorCode;return o=o<1e4?o+2e4:o||60900,Object.assign(n,{message:`Ad Error: ${t.getMessage?t.getMessage():t.message}`,code:a>=100&&a<=1008?a:900,adErrorCode:o}),e&&(20402===o?n.timeout=e.options.loadVideoTimeout:21009===o?n.timeout=e.options.vastLoadTimeout:60004===o&&(n.timeout=e.options.requestTimeout)),void 0!==t.placement&&(n.placement=t.placement),void 0!==t.id&&(n.id=t.id),t.getInnerError&&(n.sourceError=t.getInnerError()),void 0!==t.tag&&(n.tag=t.tag),n},Fi=()=>null;class Xi{constructor(e,t){const{player:i,options:s,instreamProvider:r,view:n,adsLoaderManager:a,video:o,item:l,client:d}=e;if(i.utils.extend(this,i.Events),this.playlistItemManager=e,this.player=i,this.options=s,this.instreamProvider=r,this.view=n,this.adsLoaderManager=a,this.video=o,this.item=l,this.client=d,this.reason=t,this.env=i.getEnvironment(),this.utils=i.utils,this._qoe=new i.utils.Timer,this.logger=i.utils.logger.child("ads-googima/AdsPlayer"),s.customUi){const e=s.customUi;this.mainContainer=i.getContainer(),this.customUiDiv=document.getElementById(e.customUiDivId),this.adClickButton=document.getElementById(e.adClickButtonId),this.customCountDownDiv=document.getElementById(e.customCountDownId),this.customSkipButton=document.getElementById(e.customSkipButtonId),this.timeTillSkip=Number.POSITIVE_INFINITY}this.initAdsManagerPromise=null,this.blockingInstreamPlayer=null,this.currentAd=null,this.progressIntervalId=-1,this.viewablePlayedTime=0,this.lastPosition=null,this.adViewableImpressionHandler=Fi,this.paused=!1,this.playbackProxy={currentTime:this.player.getPosition(),duration:this.player.getDuration()},i.on("time",this.time,this)}time(e){this.playbackProxy.currentTime=e.position,e.duration>=e.position?this.playbackProxy.duration=e.duration:this.playbackProxy.duration=1/0}init(e,t,i){this.requestType=e,this.requestOptions=t,this.scheduledAd=i,this.offset=i._offset;const s=this.adsLoaderManager;return this.initAdsManagerPromise=this.initAdsManagerPromise||Ni(this.utils).then(()=>this.destroyed()?null:(this.logger.debug("Open adsLoaderManager"),s.open(e,t,this.video))).then(e=>{if(this.destroyed())return null;const i=s.getAdsManager(e,this.playbackProxy,this.options);if(this.instreamProvider.setProxy(i),s.bindEvents({AD_ERROR:this.adError.bind(this),LOADED:this.adLoaded.bind(this),CONTENT_PAUSE_REQUESTED:this.pauseRequested.bind(this),CONTENT_RESUME_REQUESTED:this.resumeRequested.bind(this),LOG:this.adLog.bind(this),STARTED:this.adStarted.bind(this),IMPRESSION:this.adImpression.bind(this),LINEAR_CHANGED:this.resize.bind(this),CLICK:this.adClick.bind(this),PAUSED:this.adPaused.bind(this),RESUMED:this.adResumed.bind(this),SKIPPED:this.adSkipped.bind(this),USER_CLOSE:this.adUserClose.bind(this),ALL_ADS_COMPLETED:this.allAdsCompleted.bind(this)},this),t.preloadAds)clearTimeout(this.timeoutAdStart);else{const{width:e,height:t}=this.player.getSafeRegion(!1),i=this.getViewMode();this.logger.debug("adsManager init with",e,t,i),s.init(e,t,i)}const r=i.getCuePoints();if(r.length){const e=r.filter(e=>e>0).map(e=>({begin:e,text:this.options.cuetext,cueType:"ads"}));this.player.addCues(e)}return i}).catch(e=>{if(clearTimeout(this.timeoutAdStart),this.asyncError&&!i._preload&&this.asyncError(e),null!=e&&e.getError){const t=e.getError();throw this.getAdErrorEventObject(t,e)}throw e}),this.initAdsManagerPromise}getViewMode(){const e=google.ima.ViewMode;return this.player.getFullscreen()?e.FULLSCREEN:e.NORMAL}beforeComplete(){const e=this.adsLoaderManager.adsManager;e&&e.getCuePoints().indexOf(-1)>-1&&this.playlistItemManager.startBlocking(),this.adsLoaderManager.unbindEvents(["CONTENT_RESUME_REQUESTED"]),this.logger.debug("Call contentComplete on IMA SDK"),this.adsLoaderManager.contentComplete()}requestAds(){var e,t;if(this.destroyed())return;this.logger.debug("Request ads to IMA SDK");let i=Promise.resolve();if(null!=this&&null!=(e=this.scheduledAd)&&null!=(t=e._adQueue)&&t.length){const e=this.scheduledAd._adQueue.map((e,t)=>he(e,this.player,this.item,this.client,this.options,this.scheduledAd).then(e=>{e=re({player:this.player,item:this.item,tag:e,targetingConfig:this.options.config.targeting,enablePPS:this.options.config.enablePPS}),this.scheduledAd._adQueue[t]=e}));i=Promise.all(e)}return i.then(()=>{this.startRequestTimeout(),this.trigger("adRequest",Hi(this.playlistItemManager,null,this.scheduledAd)),this.adsLoaderManager.requestAds(this.requestType,this.requestOptions,this.options,this.scheduledAd)})}muteInstreamProvider(){const e=this.video.muted||this.player.getMute();this.logger.debug("Setting mute on instreamProvider",e),this.instreamProvider.mute(e)}pauseRequested(e){const t=this.playlistItemManager.schedule.isVMAP();t&&this.playlistItemManager.startBlocking();const i=null==e?void 0:e.getAd();if(t){const e=$i(i,"getAdPodInfo"),t=$i(e,"getTimeOffset");if(t){const e=-1===t?"post":"mid";this.scheduledAd._position=e,this.playlistItemManager.triggerAdBreakEvents(this.scheduledAd,e)}}const s=Hi(this.playlistItemManager,i,this.scheduledAd);this.trigger(g,s)}resumeRequested(){var e;this.logger.debug("ResumeRequest from IMA SDK"),null!=this&&null!=(e=this.currentAd)&&e.isLinear()&&this.finishAd(),this.blockingInstreamPlayer&&this.view.adTakeDown(),this.trigger("stopBlocking"),this.blockingInstreamPlayer=null}finishAd(){this.currentAd&&(this.hideCustomUi(),clearInterval(this.progressIntervalId),this.viewablePlayedTime=0,this.currentAd=null)}discardAdBreak(e){if(!e&&this.adsLoaderManager&&(e=this.adsLoaderManager.adsManager),this.destroyed()||!e)return;this.currentAd&&this.trigger(y,Hi(this.playlistItemManager,this.currentAd,this.scheduledAd));const t=e.getCuePoints();if(0!==t.length){if(!this.currentAd){const e=this.player.getPosition(),i=this.player.getCues(),s=t.find(t=>t>=e);this.player.setCues(i.filter(e=>(null==e?void 0:e.begin)!==s))}e.discardAdBreak(),e.stop()}else this.destroy()}asyncDiscardAdBreak(){this.initAdsManagerPromise&&this.initAdsManagerPromise.then(e=>this.discardAdBreak(e)).catch(e=>this.logger.debug(e))}pause({reason:e}){if(this.destroyed())return;const t=this.adsLoaderManager.adsManager;t&&(this.viewablePlayedTime=0,this.logger.debug("JW Player pause ad"),this.reason=e||n,t.pause())}resume({reason:e}){if(this.destroyed())return;const t=this.adsLoaderManager.adsManager;t&&(this.logger.debug("JW Player resume ad"),this.reason=e||n,t.resume())}startRequestTimeout(){clearTimeout(this.timeoutAdStart),this.timeoutAdStart=setTimeout(()=>{this.logger.debug("Ad request timeout"),this.destroyed()||(this.asyncError=null,this.handleAdError({message:`Ad Request timeout after ${this.options.requestTimeout} milliseconds`,getErrorCode:()=>60004}),this.asyncDiscardAdBreak())},this.options.requestTimeout)}startAdsLoader(e){if(this.destroyed()||!this.initAdsManagerPromise)return Promise.reject();this.player.off("beforePlay",null,this),e&&(this.blockingInstreamPlayer=e,e.setText(this.options.loadingAd)),this.muteInstreamProvider(),this._qoe.tick("adBeforePlay"),this.startRequestTimeout(),this.initAdsManagerPromise.then(()=>{if(this.destroyed())return;const e=this.adsLoaderManager;if(!e.initialized){const{width:t,height:i}=this.player.getSafeRegion(!1),s=this.getViewMode();this.logger.debug("adsManager init with",t,i,s),e.init(t,i,s)}this.logger.debug("Start adsManager"),e.start()}).catch(e=>this.logger.debug(e))}resize(){const e=this.currentAd,t=this.adsLoaderManager.adsManager;if(!t)return;const i=e&&!e.isLinear(),s=this.player.getSafeRegion(i);if(i){let i=e.getHeight();i=this.player.getFullscreen()?s.height/2:Math.max(100,i+10),this.logger.debug("Resize adsManager",s.width,i,this.getViewMode()),t.resize(s.width,i,this.getViewMode()),this.view.resizeNonLinear(i)}else this.logger.debug("Resize adsManager",s.width,s.height,this.getViewMode()),t.resize(s.width,s.height,this.getViewMode()),this.view.resizeLinear()}setState(e,t,i){if(!e.isLinear())return;const r=Hi(this.playlistItemManager,e,this.scheduledAd);if(r.newstate=t,i&&(r.oldstate=i),null!==this.reason){r[t===s?"playReason":"pauseReason"]=this.reason,this.reason=null}this.instreamProvider.trigger("state",r)}customMainClickHandler(){this.adsLoaderManager.adsManager.resume()}customSkipHandler(e){if(e.stopPropagation(),this.timeTillSkip<=0){this.adsLoaderManager.adsManager.skip()}}customClickHandler(e){e.stopPropagation(),this.adsLoaderManager.adsManager.clicked()}addCustomEventHandlers(){this.mainClick=this.customMainClickHandler.bind(this),this.customSkip=this.customSkipHandler.bind(this),this.customClick=this.customClickHandler.bind(this),this.mainContainer.addEventListener("click",this.mainClick),this.adClickButton&&this.adClickButton.addEventListener("click",this.customClick),this.customSkipButton&&this.customSkipButton.addEventListener("click",this.customSkip)}removeCustomEventHandlers(){this.mainContainer.removeEventListener("click",this.mainClick),this.adClickButton&&this.adClickButton.removeEventListener("click",this.customClick),this.customSkipButton&&this.customSkipButton.removeEventListener("click",this.customSkip)}showCustomUi(){this.customUiDiv&&(this.customUiDiv.style.display="block",this.addCustomEventHandlers())}hideCustomUi(){this.customUiDiv&&(this.customUiDiv.style.display="none",this.removeCustomEventHandlers())}adLoaded(e){clearTimeout(this.timeoutAdStart);const t=e.getAd();if(this.playlistItemManager.schedule.isVMAP()){const e=$i(t,"getAdPodInfo"),i=$i(e,"getTimeOffset");i&&(this.scheduledAd._position=-1===i?"post":"mid")}const i=Hi(this.playlistItemManager,t,this.scheduledAd);this.trigger("adLoaded",i)}adStarted(e){this.player.getPip()&&this.player.requestPip(this.view.getAdDiv().querySelector("video"));const t=e.getAd();this.currentAd=t,this.paused=!1,t.isUiDisabled()&&this.showCustomUi();const i=Hi(this.playlistItemManager,t,this.scheduledAd);this.trigger(m,i)}adImpression(e){this.view.adSetup();const t=e.getAd(),i=t.isLinear(),r=i&&(t.getContentType().indexOf("image")>=0||-1===t.getDuration()),n=this.isVpaidAd(t),a=i&&n&&this.options.vpaidcontrols;this.currentAd=t,this.blockingInstreamPlayer&&this.blockingInstreamPlayer.setSkipOffset(t.getSkipTimeOffset()),this.adsLoaderManager.bindEvents({COMPLETE:this.adComplete.bind(this)}),n&&this.env.OS.mobile&&this.options.autoplayadsmuted&&this.adsLoaderManager.bindEvents({VOLUME_CHANGED:()=>{this.adsLoaderManager.unbindEvents(["VOLUME_CHANGED"]),this.player.setMute(0===this.adsLoaderManager.adsManager.getVolume())}}),i||this.trigger("stopBlocking",{isNonlinear:!0}),this.utils.toggleClass(this.player.getContainer(),f,i&&(r||n)),this.utils.toggleClass(this.player.getContainer(),v,a),this.resize(),this.muteInstreamProvider(),clearTimeout(this.timeoutAdStart);const o=this.adsLoaderManager.adsManager;this.progressInterval(t,o);const l=Hi(this.playlistItemManager,t,this.scheduledAd),d=void 0===l.podcount||1===l.sequence;"pre"===l.adposition&&d&&(this._qoe.tick("adImpression"),l.timeLoading=this._qoe.between("adBeforePlay","adImpression")),i&&!d&&this.trigger(g,l),this.trigger("adImpression",l,t),this.setupViewableListener(),this.setState(t,s,"buffering")}progressInterval(e,t){if(clearInterval(this.progressIntervalId),!t)return;const i=e.getAdId(),s=e.isSkippable()&&this.customSkipButton;let r=-1;const n=this.options.admessage||"",a=this.options.podmessage||"",l=this.options.skipmessage||"",d=this.options.skiptext||"",h=new RegExp("__AD_POD_CURRENT__","g"),u=new RegExp("__AD_POD_LENGTH__","g");this.progressIntervalId=setInterval(()=>{if(!this.currentAd||this.currentAd.getAdId()!==i)return void clearInterval(this.progressIntervalId);const c=t.getRemainingTime();if(isNaN(c)||c<=0)return;if(r===c)return;r=c;const p=this.currentAd.getDuration(),g=p-c,m=Math.round(p-g);if(s){const t=this.timeTillSkip=Math.ceil(e.getSkipTimeOffset()-g);t>0?(this.customSkipButton.innerText=l.replace(/(\b)xx(s?\b)/g,`$1${t}$2`),this.customSkipButton.style.cursor="default"):(this.customSkipButton.innerText=d,this.customSkipButton.style.cursor="pointer")}if(this.blockingInstreamPlayer){let e=n.replace(/(\b)xx(s?\b)/g,`$1${m}$2`);const t=$i(this.currentAd,"getAdPodInfo");if(t){const i=$i(t,"getTotalAds");if(i>1){const s=$i(t,"getAdPosition");e=`${a.replace(h,s).replace(u,i)} ${e}`}}this.blockingInstreamPlayer.setText(e),this.customCountDownDiv&&(this.customCountDownDiv.innerText=e),this.instreamProvider.trigger(o,{duration:p,position:g})}if(p>0){const t=Hi(this.playlistItemManager,e,this.scheduledAd);t.position=g,t.duration=p,this.adViewableImpressionHandler(t),this.trigger("adTime",t)}},250)}setupViewableListener(){this.player.off(r,this.viewableHandler,this),this.player.on(r,this.viewableHandler,this),this.viewableHandler({viewable:this.player.getViewable()})}adViewableHandler(e){const{position:t}=e;null===this.lastPosition&&(this.lastPosition=t);let i=t-this.lastPosition;if(this.lastPosition=t,i=Math.min(Math.max(0,i),4),this.viewablePlayedTime+=i,this.viewablePlayedTime>=2){this.player.off(r,this.viewableHandler,this),this.adViewableImpressionHandler=Fi;const e=Hi(this.playlistItemManager,this.currentAd,this.scheduledAd);this.trigger("adViewableImpression",e)}}viewableHandler(e){e.viewable?(this.viewablePlayedTime=0,this.lastPosition=null,this.adViewableImpressionHandler=this.adViewableHandler):this.adViewableImpressionHandler=Fi}adComplete(e){const t=e.getAd();this.finishAd();const i=Hi(this.playlistItemManager,t,this.scheduledAd);this.trigger("adComplete",i),this.adsLoaderManager.unbindEvents(["VOLUME_CHANGED"])}adClick(e){const t=this.adsLoaderManager.adsManager,i=e.getAd();this.reason="clickthrough",this.isVpaidAd(i)||(this.logger.debug("Ad paused due to ad click"),t.pause());const s=Hi(this.playlistItemManager,i,this.scheduledAd);this.trigger("adClick",s)}adPaused(e){if(!this.paused){this.paused=!0;const t=e.getAd();null===this.reason&&this.isVpaidAd(t)&&(this.reason=a),this.setState(t,"paused")}}adResumed(e){if(this.paused){this.paused=!1;const t=e.getAd();null===this.reason&&this.isVpaidAd(t)&&(this.reason=a),this.setState(t,s)}}adSkipped(e){const t=e.getAd();this.logger.debug("AdSkipped"),this.adsLoaderManager.unbindEvents(["COMPLETE","VOLUME_CHANGED"]),this.finishAd();const i=Hi(this.playlistItemManager,t,this.scheduledAd);this.trigger(y,i)}adUserClose(e){var t;this.logger.debug("AdUserClose"),null!=this&&null!=(t=this.currentAd)&&t.isLinear()&&-1===this.currentAd.getDuration()?this.adSkipped(e):(this.adsLoaderManager.unbindEvents(["COMPLETE","VOLUME_CHANGED"]),this.finishAd())}allAdsCompleted(){this.stopAdsManager(),this.trigger("allAdsComplete",{})}stopAdsManager(){this.initAdsManagerPromise.then(e=>{this.destroyed()||(this.logger.debug("Stop IMA SDK adsManager"),e.stop(),e.destroy(),this.initAdsManagerPromise=null)}).catch(e=>this.logger.debug(e))}adLog(e){this.logger.debug(e.type,e);const t=$i(e,"getAdData"),i=null==t?void 0:t.adError;if(i&&402===i.getVastErrorCode())this.handleAdError(i,e);else if(i){const t=$i(e,"getAd");this.trigger(p,Qi(this.playlistItemManager,i,t,this.scheduledAd,{jwpseg:this.adsLoaderManager.getJwpSeg(t)}))}}adError(e){const t=e.getError();this.handleAdError(t,e)}asyncError(e){var t;if(!this.destroyed())if(clearTimeout(this.timeoutAdStart),this.timeoutAdStart=setTimeout(()=>this.destroy(),0),null!=e&&e.getError){const t=e.getError();this.handleAdError(t,e,!0)}else null!=e&&null!=(t=e.target)&&t.src?this.logger.error(`Failed to load ${e.target.src}`):this.logger.error(e)}getAdErrorEventObject(e,t){const i=$i(t,"getUserRequestContext"),s=i?i.offset:void 0;return Qi(this.playlistItemManager,e,null,this.scheduledAd,{offset:s})}handleAdError(e,t,i){this.options.debug&&this.logger.error(e);const s=this.getAdErrorEventObject(e,t);this.player&&0===this.player.getPosition()&&(this._qoe.tick("adError"),s.timeLoading=this._qoe.between("adBeforePlay","adError")),this.trigger(p,s),this.destroyed()||(900===e.getErrorCode()||i?(clearTimeout(this.timeoutAdStart),this.timeoutAdStart=setTimeout(()=>this.destroy(),0)):this.destroy())}isVpaidAd(e){const t=e.getContentType();return"application/javascript"===t||"application/x-shockwave-flash"===t}destroy(){this.logger.debug("JW Player destroy AdsPlayer"),this.trigger("stopBlocking",{isDestroyed:!0}),this.off(),this.destroyed()||(this.player.off(null,null,this),clearTimeout(this.timeoutAdStart),clearInterval(this.progressIntervalId),this.currentAd=null,this.options=null,this.adsLoaderManager.reset(null,!0),this.view.adTakeDown(),this.video=null,this.initAdsManagerPromise=null,this.instreamProvider.off(),this.instreamProvider.setProxy(null),this.instreamProvider=null,this.view=null,this.player=null)}destroyed(){return!this.player}}let Wi=null;class Gi extends zi{constructor(e,i,s,r,n,a,o,l,d,h){super(e,i,s,r,h),e.utils.extend(this,e.Events),this.client=t,this.config=r,this.options=n,this.player=e,this.utils=e.utils,this.adsLoaderManager=l,this.view=o,this.qoe=new e.utils.Timer,this.instreamProvider=a,this.vmapPromise=Promise.resolve(),this.fullscreenIcon=e.getContainer().querySelector(".jw-icon-fullscreen"),this.video=d,this.hasPreroll=!0,this.reason=null}checkPreroll(e){this.adsLoaderManager.initializeDisplay({restrict:!0}),this.reason=null!=e&&e.playReason?e.playReason:n,super.checkPreroll(e)}checkPostrolls(e){this.schedule.isVMAP()&&this.adsPlayer?this.adsPlayer.beforeComplete():super.checkPostrolls(e)}createAdsPlayer(e){this.adsPlayer&&!this.adsPlayer.destroyed()||(this.adsPlayer=new Xi(this,this.reason),this.adsPlayer.on("all",(t,i)=>"allAdsComplete"===t?(this.adsPlayer.destroy(),void(this.adsPlayer=null)):"stopBlocking"===t?(this.stopBlocking(null==i?void 0:i.isNonlinear),void(!e&&i&&i.isDestroyed&&(this.adsPlayer=null))):void("adError"!==t?(this.dequeueAdEvents(),this.trigger(t,i)):this.enqueueAdEvent(t,i,{preload:e}))))}initAdsPlayer(e,t,i){return e===P&&(this.reason=n),this.createAdsPlayer(i._preload),this.player.on("resize",()=>this.adsPlayer.resize(),this.adsPlayer).on("fullscreen",()=>this.adsPlayer.resize(),this.adsPlayer),this.adsPlayer.init(e,t,i).then(e=>{this.trigger("adsManager",{adsManager:e,videoElement:this.video})})}adLoadRequest(e,t){const i=this.utils.extend({},this.config);i.ad=e,this.offset=e.offset||this.offset,i.adPosition=ne(this.player);const s=new Bi(i,this.player.getConfig(),this.utils),r=t?w:P,n=this.initAdsPlayer(r,s,e);return Ni(this.utils).then(()=>(this.adsPlayer.requestAds(),n))}pause(e){this.adsPlayer&&this.adsPlayer.pause(e||{})}resume(e){this.adsPlayer&&this.adsPlayer.resume(e||{})}skipAd(){this.adsLoaderManager&&this.adsLoaderManager.skipAd()}skipAdBreak(){this.adsPlayer&&this.adsPlayer.asyncDiscardAdBreak()}dequeueAdEvents(){this._events.forEach(({type:e,event:t})=>{this.trigger(e,t)}),this._events.splice(0)}triggerAdBreakEvents(e,t){var i;e._position=e._position||t,this.blockingInstreamPlayer.once("destroyed",()=>{this.dequeueAdEvents(),this.trigger("adBreakEnd",Hi(this,null,e))});const s=Hi(this,null,e);this.trigger("adBreakStart",s),this.dequeueAdEvents(),null!=this&&null!=(i=this.adsPlayer)&&i.destroyed()&&this.stopBlocking()}async startBlocking(){if(!this.blockingInstreamPlayer&&!this.destroyed()){if(super.startBlocking(),this.blockingInstreamPlayer=this.player.createInstream().init(),this.blockingInstreamPlayer.applyProviderListeners(this.instreamProvider),this.qoe.tick("adLoading"),this.blockingInstreamPlayer.adPlayPromise){if(!await this.waitForAdPlay(this.blockingInstreamPlayer.adPlayPromise))return}!function(e){if(Wi=e.getEnvironment(),!Wi||Wi.Features||Wi.Features.headless||!Wi.OS.iOS||Wi.Browser.version.major<10)return;const t=e.getContainer();t.requestFullscreen||t.webkitRequestFullscreen||e.getFullscreen()&&e.setFullscreen(!1)}(this.player),this.utils.addClass(this.player.getContainer(),_),this.adsPlayer&&!this.adsPlayer.destroyed()&&(this.adsPlayer.blockingInstreamPlayer=this.blockingInstreamPlayer),this.view.adSetup()}}stopBlocking(e){if(!this.destroyed()){var t;if(super.stopBlocking(),this.player.off("viewable",null,this),this.utils.removeClass(this.player.getContainer(),[f,v,_]),this.blockingInstreamPlayer)this.instreamProvider.off(),this.blockingInstreamPlayer.destroy(),this.blockingInstreamPlayer=null,null==(t=this.player)||t.trigger("adRequestedContentResume");e||this.view.adTakeDown()}}loadAd(e,t){if(e)return this.adsPlayer&&this.adsPlayer.scheduledAd!==e&&this.adsPlayer.destroy(),e._preload=!0,this.adLoadRequest(e,t)}playPreloadedPromise(e){e.then(()=>this.adsPlayer.startAdsLoader(this.blockingInstreamPlayer)).catch(()=>{this.stopBlocking()})}startAdBreak(e,t){e&&(((e,t)=>{var i;let s;if(null!=e&&null!=(i=e._adQueue)&&i[0]){try{s=new URL(e._adQueue[0],window.location).protocol}catch(e){t.utils.logger.debug(e)}"https:"!==s&&"https:"===window.location.protocol&&t.trigger(p,{message:"VPAID insecure request was blocked.",code:901,adErrorCode:50005})}})(e,this.player),this.adsPlayer&&this.adsPlayer.scheduledAd!==e&&this.adsPlayer.destroy(),this.startBlocking(),this.dequeueAdEvents(),this.adLoadRequest(e,t).then(()=>{this.adsPlayer.startAdsLoader(this.blockingInstreamPlayer)}).catch(()=>{this.stopBlocking()}))}destroy(){this.stopBlocking();const e=this.adsLoaderManager;e&&(e.reset(),this.adsLoaderManager=null),this.adsPlayer&&this.adsPlayer.destroy(),this.adsPlayer=null,super.destroy()}destroyed(){return null===this.adsLoaderManager}}var Ji=function(e,t){if(null==e)throw new TypeError("Cannot convert undefined or null to object");return Object.prototype.hasOwnProperty.call(Object(e),t)};class Ki{constructor(e,t){this.adsLoader=null,this.adDisplayContainer=null,this.displayInitialized=!1,this.initialized=!1,this.started=!1,this.adsRequest=null,this.userRequestContext=null,this.adsManager=null,this.adsLoaderEvents={},this.adsManagerEvents={},this.container=t,this.schedule=null,this.breakMap={},this.player=e,this.environment=e.getEnvironment(),this.logger=e.utils.logger.child("ads-googima/ima/AdsLoader")}getVpaidMode(e){const t=google.ima.ImaSdkSettings.VpaidMode;return"disabled"===e||"none"===e?t.DISABLED:"enabled"===e?t.ENABLED:t.INSECURE}initializeDisplay(e){this.adDisplayContainer&&!this.displayInitialized&&(this.adDisplayContainer.initialize(),null!=e&&e.restrict&&(this.displayInitialized=!0))}contentComplete(){this.adsLoader&&this.adsLoader.contentComplete()}reset(e,t){if(t){this.adsRequest=null,this.userRequestContext=null;const e=this.adsManager;e&&(e.destroy(),this.adsManager=null),this.adsManagerEvents={},Object.keys(this.adsLoaderEvents).forEach(e=>{this.adsLoader.removeEventListener(e,this.adsLoaderEvents[e])}),this.adsLoaderEvents={}}else this.contentComplete();e&&(this.schedule=null,this.breakMap={}),this.initialized=this.started=!1}prepare(e,t){const i=google.ima.settings;i.setDisableCustomPlaybackForIOS10Plus(!0);const s=t.locale||this.player.getConfig().language;i.setLocale(s);const r=t.ppid;return r&&i.setPpid(r),"enabled"===t.omidSupport&&i.setFeatureFlags({enableOmidBeta:!0}),t.maxRedirects>=0&&i.setNumRedirects(t.maxRedirects),null===this.adsLoader&&(this.adDisplayContainer=new google.ima.AdDisplayContainer(this.container,e),this.adsLoader=new google.ima.AdsLoader(this.adDisplayContainer)),this.adsLoader}open(e,t,i){const s=this.prepare(i,t);return new Promise((e,t)=>{s.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR,t,!1),s.addEventListener(google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED,e,!1),this.adsLoaderEvents[google.ima.AdErrorEvent.Type.AD_ERROR]=t,this.adsLoaderEvents[google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED]=e})}requestAds(e,t,i,s){var r,n,a;if(null!==this.adsRequest)return;if(!s)return;const o=this.player,l=this.adsRequest=new google.ima.AdsRequest,d=this.userRequestContext={requestType:e,vpaidMode:t.vpaidmode,playerVersion:o.version.split("+")[0],adPosition:t.adPosition};l.setAdWillAutoPlay(!1!==o.getConfig().autostart),l.setAdWillPlayMuted(o.getMute());const h=o.getSafeRegion(!1);l.linearAdSlotWidth=h.width,l.linearAdSlotHeight=h.height;const u=Ji((null==(r=google)?void 0:r.ima)||{},"VideoOrientation")&&Ji(l,"preferredLinearOrientation")&&["UNSET","LANDSCAPE","PORTRAIT","SQUARE"].every(e=>Ji(google.ima.VideoOrientation,e)),c="true"===(p=(p="string"!=typeof(p=null==(n=o.getConfig())||null==(a=n.advertising)?void 0:a.adOrientation)?String(p):p).trim().toLowerCase())?"SET_AUTOMATICALLY":"0"===p||"unset"===p?"UNSET":"1"===p||"landscape"===p?"LANDSCAPE":"2"===p||"portrait"===p?"PORTRAIT":"3"===p||"square"===p?"SQUARE":"DO_NOT_SET";var p;if(u&&"DO_NOT_SET"!==c){const e=Number(h.width)||0,t=Number(h.height)||0;let i="UNSET";"SET_AUTOMATICALLY"!==c?i=c:e>t?i="LANDSCAPE":e<t?i="PORTRAIT":0!==e&&0!==t&&e===t&&(i="SQUARE"),l.preferredLinearOrientation=google.ima.VideoOrientation[i]}const g=o.getSafeRegion(!0);l.nonLinearAdSlotWidth=g.width,l.nonLinearAdSlotHeight=g.height,l.forceNonLinearFullSlot=i.forceNonLinearFullSlot,l.vastLoadTimeout=i.vastLoadTimeout,"enabled"===t.omidSupport&&(l.omidAccessModeRules=t.omidAccessModeRules);const m=this.adsLoader.getSettings(),y=this.getVpaidMode(d.vpaidMode);if(m.setPlayerType("jwplayer"),m.setPlayerVersion(d.playerVersion),m.setVpaidMode(y),s._pod)l.adsResponse=d.adsResponse=((e,t)=>{const i=document.implementation.createDocument("http://www.iab.net/videosuite/vmap","vmap:VMAP",null),s=i.documentElement;return s.setAttribute("version","1.0"),e.forEach(e=>{const r=i.createElement("vmap:AdTagURI");r.appendChild(i.createCDATASection(e));const n=s.appendChild(i.createElement("vmap:AdBreak")),a=`${t}`.replace("pre","start").replace("post","end");n.setAttribute("timeOffset",a);const o=n.appendChild(i.createElement("vmap:AdSource"));o.setAttribute("allowMultipleAds","true"),o.setAttribute("followRedirects","true"),o.appendChild(r)}),s.outerHTML||(new XMLSerializer).serializeToString(s)})(s._pod,s._offSet);else if(s.adm||s._adXML)l.adsResponse=d.adsResponse=s.adm||s._adXML;else if(s.tag||s._adQueue&&1===s._adQueue.length){const e=s.tag||s._adQueue[0];l.adTagUrl=d.adTagUrl=e.trim()}else{var f;const e=null!=s&&null!=(f=s._adQueue)&&f.length?(e=>{const t=document.implementation.createDocument("http://www.w3.org/2001/XMLSchema-instance","VAST",null),i=t.documentElement;return i.setAttribute("version","2.0"),e.forEach((e,s)=>{const r=t.createElement("Ad");r.setAttribute("id",s);const n=t.createElement("Wrapper"),a=t.createElement("Extensions"),o=t.createElement("Extension");o.setAttribute("type","waterfall"),o.setAttribute("fallback_index",s);const l=t.createElement("VASTAdTagURI");l.appendChild(t.createCDATASection(e)),r.appendChild(n),n.appendChild(l),n.appendChild(a),a.appendChild(o),i.appendChild(r)}),i.outerHTML||(new XMLSerializer).serializeToString(i)})(s._adQueue):s.xml;l.adsResponse=d.adsResponse=e}this.adsLoader.requestAds(l,d)}getAdsManager(e,t,i){const s=new google.ima.AdsRenderingSettings;s.enablePreloading=i.enablePreloading||i.preloadAds,s.loadVideoTimeout=i.loadVideoTimeout,s.uiElements=null,s.useStyledNonLinearAds=!0,this.environment.OS.android&&this.environment.Browser.chrome&&this.environment.Browser.version.major>=84&&(s.mimeTypes=["video/mp4","video/webm","audio/mp4","audio/webm"]);const r=this.player.getConfig().bandwidthEstimate;if(s.bitrate=r?r/1e3:-1,i.customUi){i.customUi.disableUi&&(s.disableUi=!0)}return this.adsManager=e.getAdsManager(t,s),this.userRequestContext=e.getUserRequestContext(),this.adsManager}init(e,t,i){null!==this.adsManager&&!1===this.initialized&&(this.adsManager.init(e,t,i),this.initialized=!0)}start(){null!==this.adsManager&&!1===this.started&&(this.initializeDisplay({restrict:!0}),this.adsManager.start(),this.started=!0)}bindEvents(e){const t=google.ima.AdEvent.Type,i=google.ima.AdErrorEvent.Type;Object.keys(e).forEach(s=>{const r=t[s]||i[s],n=this.adsManagerEvents[r];n&&this.adsManager.removeEventListener(r,n),this.adsManager.addEventListener(r,e[s],!1),this.adsManagerEvents[r]=e[s]})}unbindEvents(e){const t=google.ima.AdEvent.Type,i=google.ima.AdErrorEvent.Type;e.forEach(e=>{const s=t[e]||i[e],r=this.adsManagerEvents[s];r&&(this.adsManager.removeEventListener(s,r),delete this.adsManagerEvents[s])})}getTag(e){if("string"==typeof this.schedule)return this.schedule;const t=$i(e,"getAdPodInfo");if(t){const e=this.breakMap[$i(t,"getTimeOffset")]||{};if(e.tag)return e.tag}return this.userRequestContext?this.userRequestContext.adTagUrl||this.userRequestContext.adsResponse||"":(this.logger.error("invalid request context",this.userRequestContext),"")}getJwpSeg(e){const t=$i(e,"getAdPodInfo");if(t){var i,s;const e=$i(t,"getTimeOffset");return null==this||null==(i=this.breakMap)||null==(s=i[e])?void 0:s.jwpseg}return null}_getTimeoffsetFromPosition(){const e=this.player.getPosition();let t,i=1/0;return Object.keys(this.breakMap).forEach(s=>{const r=e-s;r>=0&&r<i&&(t=s,i=r)}),i===1/0?-1:t}skipAd(){this.adsManager&&this.adsManager.skip()}getBid(e){const t=ee(e,this.player.utils);return this.breakMap[t]?this.breakMap[t].bid:null}setBid(e,t){const i=ee(e,this.player.utils);this.breakMap[i]=this.breakMap[i]||{},this.breakMap[i].bid=t}destroy(){var e,t;null==(e=this.adDisplayContainer)||e.destroy(),this.adDisplayContainer=null,null==(t=this.adsLoader)||t.destroy(),this.adsLoader=null,this.reset(!0,!0)}}const Yi="__JWP____ePBPK____";let Zi={};window[Yi]?Zi=window[Yi]:window[Yi]=Zi;const es={},ts={},is=(e,t)=>{const i=Zi[t];return i||(Zi[t]=new Promise((i,s)=>{const r=new e.key(t);if("unlimited"===r.edition())return s();const n=["//","entitlements.jwplayer.com","/",r.token(),".json"];"file:"===window.location.protocol&&n.unshift("https:"),e.ajax(n.join(""),function(e){const t=null==e?void 0:e.response;t?i(t):s()},function(){s()},{timeout:1e4,responseType:"json"})}))},ss=(e,t)=>{const i=es[t];return i||(es[t]=is(e,t).catch(()=>({})).then(e=>{if(!1===e.canUseVPB)throw new Error("Not entitled for Player Bidding")}))},rs=(e,t,i)=>{const s=ts[t];return s||(ts[t]=is(e,t).catch(()=>({})).then(e=>{let t,s;if(!0===i.outstream?(t=!1!==e.canPlayOutstreamAds,s="Outstream Ad Limit Reached"):(t=!1!==e.canPlayAds,s="Ad Limit Reached"),!1===t)throw new Error(s);return{message:"Can Play Ads"}}))};var ns="8.10.0";!function(e){if(e&&"undefined"!=typeof window){var t=document.createElement("style");t.setAttribute("media","screen"),t.innerHTML=e,document.head.appendChild(t)}}(".jw-plugin-googima{overflow:hidden;width:100%;height:100%;display:block;visibility:hidden;pointer-events:none;opacity:0}.jw-plugin-googima.jw-ad-instream{visibility:visible;display:block;pointer-events:all;opacity:1}.jw-plugin-googima.jw-ad-instream .jw-ads-view>:not(div),.jw-plugin-googima.jw-ad-instream .jw-ads-view>div:not(:empty){width:100%;height:100%}.jw-plugin-googima.jw-ad-linear{top:0;left:0;bottom:0}.jw-plugin-googima.jw-ad-non-linear{top:auto}.jw-plugin-googima .jw-ads-view{position:absolute;width:100%;height:100%}.jwplayer.jw-flag-ads-googleima.jw-flag-touch .jw-controlbar{font-size:1em}.jwplayer.jw-flag-ads-googleima.jw-flag-touch .jw-display-icon-display,.jwplayer.jw-flag-ads-googleima.jw-flag-touch .jw-display-icon-display .jw-icon-display{pointer-events:none}.jwplayer.jw-flag-ads-googleima .jw-controlbar{background:0 0!important;pointer-events:none}.jwplayer.jw-flag-ads-googleima .jw-controlbar .jw-horizontal-volume-container{pointer-events:auto}.jwplayer.jw-flag-ads-googleima .jw-controlbar .jw-icon{pointer-events:all}.jwplayer.jw-flag-ads-googleima .jw-controlbar .jw-icon-fullscreen:not(.jw-fullscreen-ima){display:none}.jwplayer.jw-flag-ads-googleima .jw-controlbar .jw-fullscreen-ima{display:flex}.jwplayer.jw-flag-ads-googleima .jw-controls-backdrop{display:none}.jwplayer.jw-flag-ads-googleima.jw-ie .jw-slider-volume,.jwplayer.jw-flag-ads-googleima.jw-ie .jw-svg-icon{background:rgba(0,0,0,.25);border-radius:3px}.jwplayer.jw-flag-ads-googleima.jw-ie .jw-slider-volume{margin:0 10px}@supports (filter:drop-shadow(0 0 3px #000)){.jwplayer.jw-flag-ads-googleima.jw-ie .jw-slider-volume,.jwplayer.jw-flag-ads-googleima.jw-ie .jw-svg-icon{background:0 0;border-radius:0}.jwplayer.jw-flag-ads-googleima.jw-ie .jw-slider-volume{margin:0}}.jwplayer.jw-flag-ads-googleima .jw-controlbar .jw-svg-icon{fill:#fff;filter:drop-shadow(0 0 3px #000)}.jwplayer.jw-flag-ads-googleima .jw-controlbar .jw-text{text-shadow:0 0 3px #000!important}.jwplayer.jw-flag-ads-googleima.jw-flag-small-player.jw-flag-ads.jw-state-playing.jw-flag-touch:not(.jw-flag-ads-vpaid) .jw-controls .jw-controlbar{pointer-events:none}.jwplayer.jw-flag-ads-googleima.jw-flag-small-player .jw-controlbar{flex-flow:column-reverse nowrap;height:100%;max-height:none}.jwplayer.jw-flag-ads-googleima.jw-flag-small-player .jw-button-container{align-items:flex-end;flex-wrap:wrap;margin-bottom:7px}.jwplayer.jw-flag-ads-googleima.jw-flag-small-player .jw-controlbar .jw-icon{height:30px}.jwplayer.jw-flag-ads-googleima.jw-flag-small-player .jw-text{align-self:flex-start;margin:16px 0 0 16px;order:-1;width:100%}"),function(e,t,i){try{(window.jwplayerPluginJsonp||window.jwplayer().registerPlugin)(e,t,i)}catch(e){}}(t,"8.1",class extends E{constructor(e,i,s,r){super(e,i,s,t),this.player.utils.extend(this,this.player.Events),this.configScheduleParser=new xe(this.player,this.pluginConfig,t),this.options=new Bi(this.pluginConfig||{},this.player.getConfig(),this.player.utils),this.adRules=this.configScheduleParser.getAdRules(),this.videoElement=null,this.playlistItemEventCount=0,this.nextPlaylistItemManager=null,this.nextPlaylistRelated=!1,this.bidsBlock=this.pluginConfig.bids,this.logger=e.utils.logger.child("ads-googima/googimaPlugin"),r&&r.sdkPromise&&r.checkEntitlements?(r.checkEntitlements(),r.sdkPromise()):(!function(e,t,i,s){const r=t.key,n=e.utils,a=rs(n,r,i),o=n.logger.child("ads-shared/checkEntitlements");let l;a.catch(e=>o.debug(e)),i.bids&&(l=ss(n,r),l.catch(e=>o.debug(e))),e.on("ready",()=>{l&&l.catch(i=>{e.trigger("destroyBidding"),e.trigger(p,Re(i.message,60009,t,s))}),a.catch(i=>{e.trigger("destroyPlugin",i),e.trigger(p,Re(i.message,60002,t,s))})})}(this.player,this.playerConfig,this.pluginConfig,t),Ni(this.player.utils).catch(e=>this.logger.debug(e))),this.view=new Di(this.div,this.player.id,this.player.utils),this.instreamProvider=new Ui(this.player.utils,this.player.Events,this.view),this.adsLoader=new Ki(this.player,this.view.getAdDiv()),this.version=ns;const n=this.player.getConfig().advertising;if(null!=n&&n.overrideAdConfigActive){const e=()=>{this.logger.debug("api disabled by overrideAdConfig entitlement")};this.player.loadAdTag=e,this.player.loadAdXml=e,this.player.loadAdBreak=e,this.player.playAd=e}else this.player.loadAdTag=this.loadAdTag.bind(this),this.player.loadAdXml=this.loadAdXml.bind(this),this.player.loadAdBreak=this.loadAdBreak.bind(this),this.player.playAd=this.loadAdTag.bind(this);this.player.on("ready",this.onReady,this),this.player.on("playlistItem",this.onPlaylistItemCallback,this),this.player.on("playlistComplete",this.onPlaylistCompleteCallback,this),this.player.on("cast",this.onCastCallback,this),this.player.on("mute",this.onMuteCallback,this),this.player.on("destroyPlugin",this.onDestroyPlugin,this),this.player.on("destroyBidding",this.onDestroyBidding,this),this.player.isReady()&&this.lateInitAfterReady()}getCompanions(e,t,i,s){try{return e.getCompanionAds(t,i,s)}catch(e){return[]}}addCompanionsToDOM(e){if(!e||!e.length)return;const t=document.getElementById(this.options.companiondiv.id);if(!t)return;const i=e[0];i&&("function"==typeof i.getContent?t.innerHTML=i.getContent():t.innerHTML=i.resource||i.content)}convertCompanions(e){const t=[];for(let i=0;i<e.length;i++){const s=e[i];t.push({width:s.getWidth(),height:s.getHeight(),type:"html",resource:s.getContent()})}return t}manageCompanionAd(e){const t=e.currentAd;let i=new google.ima.CompanionAdSelectionSettings;i.sizeCriteria=google.ima.CompanionAdSelectionSettings.SizeCriteria.IGNORE;const s=this.options.companiondiv||{width:300,height:250},r=this.convertCompanions(this.getCompanions(t,s.width,s.height,i));let n=r.length;if(n){const i=Hi(this.playlistItemManager,t,e.scheduledAd);i.companions=r,this.player.trigger("adCompanions",i)}if(this.options.companiondiv){i=new google.ima.CompanionAdSelectionSettings,this.options.companionResourceType&&(i.resourceType=google.ima.CompanionAdSelectionSettings.ResourceType[this.options.companionResourceType]);const e=this.getCompanions(t,this.options.companiondiv.width,this.options.companiondiv.height,i);n=Math.max(n,e.length),this.addCompanionsToDOM(e)}return n>0}resetSchedule(e){var t;null!=this&&null!=(t=this.playlistItemManager)&&t.adsPlayer&&this.playlistItemManager.adsPlayer.destroy(),this.reset(e),this.adsLoader.contentComplete(),function(e){const t=e.getCues();if(Array.isArray(t)&&t.length){const i=t.filter(e=>"ads"!==e.cueType);e.setCues(i)}}(this.player)}createPlaylistItemManager(e,t,i,s){const r=e.item||{},n=this.configScheduleParser.getSchedule(r,i.playlistItemEventCount),a=new(null!=s&&s.PlaylistItemManager?s.PlaylistItemManager:Gi)(this.player,n,r,this.pluginConfig,this.options,this.instreamProvider,this.view,this.adsLoader,this.videoElement,this.casting);return a.on("all",(e,t)=>{if("preloadNext"===e){const e=Object.assign({},i,{preloadPreroll:!0,playlistItemEventCount:this.playlistItemEventCount+1});return void(a.next=this.createPlaylistItemManager(t,w,e))}this.player.trigger(e,t)}),a.init(this.bidsBlock,i),a.on(m,()=>this.manageCompanionAd(a.adsPlayer)),a}handlePlaylistItem(e,t,i,s){null!=s&&s.sdkPromise?s.sdkPromise():Ni(this.player.utils).then(()=>{this.adsLoader.prepare(this.videoElement,i)});const r=e.item||this.player.getPlaylistItem(e.index);this.resetSchedule(!0);const n=this.configScheduleParser.getSchedule(r,this.playlistItemEventCount);!(t===w&&!this.adRules.rulesAllowAdPlayback(this.playlistItemEventCount))&&n&&(n.getAllAds().length||n.isVMAP())&&(this.nextPlaylistItemManager&&r!==this.nextPlaylistItemManager.item&&!1===this.nextPlaylistRelated&&(this.nextPlaylistItemManager.off(null,null,this),this.nextPlaylistItemManager.destroy(),this.nextPlaylistItemManager=null),this.adsLoader.reset(!0),this.playlistItemManager=this.nextPlaylistItemManager||this.createPlaylistItemManager(e,t,i),this.playlistItemManager.attachListeners(),this.nextPlaylistItemManager=null,this.nextPlaylistRelated=!1)}loadAdTag(e,t){let i;i=this.player._.isArray(e)?e.slice(0):[e],this.buildAndLoadAdObj({_adQueue:i},t)}loadAdXml(e,t){this.buildAndLoadAdObj({_adXML:e},t)}loadAdBreak(e,t){return null!=e&&e.adTag?this.loadAdTag(e.adTag,t):null!=e&&e.adXml?this.loadAdXml(e.adXml,t):void 0}buildAndLoadAdObj(e,t){const i={_position:ne(this.player),adBreakId:this.player.utils.genId(12)},s=Object.assign(i,e);this.loadAdObj(s,t)}loadAdObj(e,t){const i=this.player.utils.extend({},this.pluginConfig),s=new(null!=t&&t.Options?t.Options:Bi)(i,this.player.getConfig(),this.player.utils),r=this.playlistItemManager?this.playlistItemManager.blockingInstreamPlayer:null;r&&(r.noResume=!0),this.reset(),this.playlistItemManager=this.createPlaylistItemManager({item:this.player.getPlaylistItem()},P,s),this.playlistItemManager&&!this.playlistItemManager.destroyed()&&(this.playlistItemManager.startAdBreak(e),this.playlistItemManager.triggerAdBreakEvents(e))}handleDependencyError(e,t){this.destroy(),this.player.trigger(p,Qi(null,{message:e,adErrorCode:t,id:A,placement:K(this.playerConfig),tag:""}))}onReady(e){if(this.videoElement||(this.videoElement=this.player.createInstream().getMediaElement()),null!=e&&e.sdkPromise?e.sdkPromise():Ni(this.player.utils).catch(e=>{e.message.match(/Failed to load/)&&this.handleDependencyError("Ad playback blocked by an ad blocker",2e4)}),"idle"!==this.player.getState())return;const t=document.body;this.primeAdDisplay=()=>{t.removeEventListener("mouseup",this.primeAdDisplay),t.removeEventListener("touchend",this.primeAdDisplay),this.adsLoader.initializeDisplay(),this.primeAdDisplay=null},t.addEventListener("mouseup",this.primeAdDisplay,!1),t.addEventListener("touchend",this.primeAdDisplay,!1)}onPlaylistItemCallback(e){this.playlistItemEventCount++;const t=Object.assign({playlistItemEventCount:this.playlistItemEventCount},this.options);this.handlePlaylistItem(e,w,t),this.playlistItemManager&&!this.playlistItemManager.schedule.isVMAP()&&this.sendCues(this.playlistItemManager.schedule,this.options.cuetext)}onPlaylistCompleteCallback(){this.resetSchedule(!0)}onCastCallback(e){this.casting=Boolean(e.active),e.active&&this.resetSchedule()}onMuteCallback(e){this.instreamProvider.mute(e)}onDestroyPlugin(){this.reset()}onDestroyBidding(){this.bidsBlock=null}reset(e){this.playlistItemManager&&(e&&(this.nextPlaylistItemManager=this.playlistItemManager.next,this.nextPlaylistRelated=this.playlistItemManager.nextPlaylistRelated),this.playlistItemManager.off(null,null,this),this.playlistItemManager.destroy(),this.playlistItemManager=null),this.primeAdDisplay&&(document.body.removeEventListener("mouseup",this.primeAdDisplay),document.body.removeEventListener("touchend",this.primeAdDisplay)),this.configScheduleParser.reset()}destroy(){var e;this.reset(),null==this||null==(e=this.adsLoader)||e.destroy(),this.resetCues(),this.player.off(null,null,this),this.player.playAd=this.player.utils.noop,this.player.loadAdTag=this.player.utils.noop,this.player.loadAdXml=this.player.utils.noop,this.player.pauseAd=this.player.utils.noop}})}();
|