UNPKG

shaka-player

Version:
104 lines (100 loc) 86.2 kB
(function(){var g={}; (function(window){var k,aa=this;function m(a,b){var c=a.split("."),d=aa;c[0]in d||!d.execScript||d.execScript("var "+c[0]);for(var e;c.length&&(e=c.shift());)c.length||void 0===b?d[e]?d=d[e]:d=d[e]={}:d[e]=b}function p(a,b){function c(){}c.prototype=b.prototype;a.nb=b.prototype;a.prototype=new c;a.prototype.constructor=a;a.lb=function(a,c,f){return b.prototype[c].apply(a,Array.prototype.slice.call(arguments,2))}};/* Copyright 2015 Google Inc. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ function ba(){};function ca(a){var b=console[a];b?b.bind||(console[a]=function(){b.apply(console,arguments)}):console[a]=function(){}}ca("error");ca("warn");ca("info");ca("log");ca("debug");function da(a){ea[a]={da:fa(),end:NaN}}function ga(a){if(a=ea[a])a.end=fa()}function ha(a){return(a=ea[a])&&a.end?a.end-a.da:NaN}var fa=window.performance&&window.performance.now?window.performance.now.bind(window.performance):Date.now,ea={};function ia(a,b,c){this.id=a;this.bandwidth=b||0;this.lang=c||"unknown";this.active=!1}m("shaka.player.AudioTrack.compare",function(a,b){return a.lang<b.lang?-1:a.lang>b.lang?1:a.bandwidth<b.bandwidth?-1:a.bandwidth>b.bandwidth?1:0});function ja(){this.minBandwidth=this.maxBandwidth=this.maxWidth=this.minHeight=this.maxHeight=null}ja.prototype.clone=function(){var a=new ja;a.maxHeight=this.maxHeight;a.minHeight=this.minHeight;a.maxWidth=this.maxWidth;a.maxBandwidth=this.maxBandwidth;a.minBandwidth=this.minBandwidth;return a};function q(){this.fontSize="100%";this.fontColor=ka;this.fontOpacity=la;this.backgroundColor=ma;this.backgroundOpacity=la;this.fontEdge=na}m("shaka.player.TextStyle",q);q.prototype.a=function(){var a=window.localStorage.getItem("ShakaPlayerTextStyle");if(a){var b;try{b=JSON.parse(a)}catch(c){return}if(b&&"object"==typeof b){var a=b,d;for(d in a)d in this&&(this[d]=a[d])}}};q.prototype.load=q.prototype.a;q.prototype.b=function(){window.localStorage.setItem("ShakaPlayerTextStyle",JSON.stringify(this))}; q.prototype.store=q.prototype.b;function oa(a){var b=[];b.push("font-size: "+a.fontSize);b.push("color: "+pa(a.fontColor,a.fontOpacity));b.push("background-color: "+pa(a.backgroundColor,a.backgroundOpacity));for(var c=[],d=0;d<a.fontEdge.length;++d){var e=a.fontEdge[d].slice(3,6);c.push(pa(a.fontEdge[d].slice(0,3),a.fontOpacity)+" "+e.join("px ")+"px")}b.push("text-shadow: "+c.join(","));return b.join("; ")}function pa(a,b){return"rgba("+a.concat(b).join(",")+")"}var ka=[255,255,255],ma=[0,0,0]; q.StandardColors={WHITE:ka,BLACK:ma,RED:[255,0,0],GREEN:[0,255,0],BLUE:[0,0,255],YELLOW:[255,255,0],MAGENTA:[255,0,255],CYAN:[0,255,255]};var la=1;q.StandardOpacities={OPAQUE:la,SEMI_HIGH:.75,SEMI_LOW:.25,TRANSPARENT:0};var na=[]; q.EdgeStyles={NONE:na,RAISED:[[34,34,34,1,1,0],[34,34,34,2,2,0],[34,34,34,3,3,0]],DEPRESSED:[[204,204,204,1,1,0],[204,204,204,0,1,0],[34,34,34,-1,-1,0],[34,34,34,0,-1,0]],UNIFORM:[[34,34,34,0,0,4],[34,34,34,0,0,4],[34,34,34,0,0,4],[34,34,34,0,0,4]],DROP:[[34,34,34,2,2,3],[34,34,34,2,2,4],[34,34,34,2,2,5]]};function qa(a,b){this.id=a;this.lang=b||"unknown";this.enabled=this.active=!1}m("shaka.player.TextTrack.compare",function(a,b){return a.lang<b.lang?-1:a.lang>b.lang?1:0});function ra(a,b,c,d){this.id=a;this.bandwidth=b||0;this.width=c||0;this.height=d||0;this.active=!1}function sa(a,b){var c=a.width*a.height,d=b.width*b.height;return c<d?-1:c>d?1:a.bandwidth<b.bandwidth?-1:a.bandwidth>b.bandwidth?1:0}m("shaka.player.VideoTrack.compare",sa);function ta(){var a="CustomEvent"in window;if(a)try{new CustomEvent("")}catch(b){a=!1}a||(window.CustomEvent=ua)}m("shaka.polyfill.CustomEvent.install",ta);function ua(a,b){var c=document.createEvent("CustomEvent"),d=b||{bubbles:!1,cancelable:!1,detail:null};c.initCustomEvent(a,!!d.bubbles,!!d.cancelable,d.detail);return c};function va(){var a=Element.prototype;a.requestFullscreen=a.requestFullscreen||a.mozRequestFullScreen||a.msRequestFullscreen||a.webkitRequestFullscreen;a=Document.prototype;a.exitFullscreen=a.exitFullscreen||a.mozCancelFullScreen||a.msExitFullscreen||a.webkitExitFullscreen;"fullscreenElement"in document||Object.defineProperty(document,"fullscreenElement",{get:function(){return document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement}});document.addEventListener("webkitfullscreenchange", wa);document.addEventListener("webkitfullscreenerror",wa);document.addEventListener("mozfullscreenchange",wa);document.addEventListener("mozfullscreenerror",wa);document.addEventListener("MSFullscreenChange",wa);document.addEventListener("MSFullscreenError",wa)}m("shaka.polyfill.Fullscreen.install",va);function wa(a){var b=a.type.replace(/^(webkit|moz|MS)/,"").toLowerCase(),b=new Event(b,a);a.target.dispatchEvent(b)};function xa(){return Promise.reject(Error("The key system specified is not supported."))}function ya(a){return null==a?Promise.resolve():Promise.reject(Error("MediaKeys not supported."))}function za(){throw new TypeError("Illegal constructor.");}za.prototype.createSession=function(){};za.prototype.setServerCertificate=function(){};function Aa(){throw new TypeError("Illegal constructor.");}Aa.prototype.getConfiguration=function(){};Aa.prototype.createMediaKeys=function(){};function u(a){this.c=[];this.b=[];this.O=Ba;if(a)try{a(this.K.bind(this),this.a.bind(this))}catch(b){this.a(b)}}var Ba=0;function Ca(){window.Promise||(window.Promise=u,window.Promise.resolve=Da,window.Promise.reject=Ea,window.Promise.all=Fa,window.Promise.race=Ga,window.setImmediate?(Ha=function(a){return window.setImmediate(a)},Ia=function(a){return window.clearImmediate(a)}):(Ha=function(a){return window.setTimeout(a,0)},Ia=function(a){return window.clearTimeout(a)}))} m("shaka.polyfill.Promise.install",Ca);function Da(a){var b=new u;b.K(a);return b}function Ea(a){var b=new u;b.a(a);return b}function Fa(a){function b(a,b,c){a.O==Ba&&(e[b]=c,d++,d==e.length&&a.K(e))}var c=new u;if(!a.length)return c.K([]),c;for(var d=0,e=Array(a.length),f=c.a.bind(c),g=0;g<a.length;++g)a[g]&&a[g].then?a[g].then(b.bind(null,c,g),f):b(c,g,a[g]);return c}function Ga(a){for(var b=new u,c=b.K.bind(b),d=b.a.bind(b),e=0;e<a.length;++e)a[e]&&a[e].then?a[e].then(c,d):c(a[e]);return b} u.prototype.then=function(a,b){var c=new u;switch(this.O){case 1:Ja(this,c,a);break;case 2:Ja(this,c,b);break;case Ba:this.c.push({ma:c,ja:a}),this.b.push({ma:c,ja:b})}return c};u.prototype.then=u.prototype.then;u.prototype.catch=function(a){return this.then(void 0,a)};u.prototype["catch"]=u.prototype.catch;u.prototype.K=function(a){if(this.O==Ba){this.ha=a;this.O=1;for(a=0;a<this.c.length;++a)Ja(this,this.c[a].ma,this.c[a].ja);this.c=[];this.b=[]}}; u.prototype.a=function(a){if(this.O==Ba){this.ha=a;this.O=2;for(a=0;a<this.b.length;++a)Ja(this,this.b[a].ma,this.b[a].ja);this.c=[];this.b=[]}};function Ja(a,b,c){Ka.push(function(){if(c&&"function"==typeof c){try{var a=c(this.ha)}catch(e){b.a(e);return}a instanceof u?a==b?b.a(new TypeError("Chaining cycle detected")):a.then(b.K.bind(b),b.a.bind(b)):b.K(a)}else 1==this.O?b.K(this.ha):b.a(this.ha)}.bind(a));null==La&&(La=Ha(Ma))} function Ma(){for(;Ka.length;){null!=La&&(Ia(La),La=null);var a=Ka;Ka=[];for(var b=0;b<a.length;++b)a[b]()}}function Ha(){return 0}function Ia(){}var La=null,Ka=[];function Na(){var a=HTMLVideoElement.prototype;!a.getVideoPlaybackQuality&&"webkitDroppedFrameCount"in a&&(a.getVideoPlaybackQuality=Oa)}m("shaka.polyfill.VideoPlaybackQuality.install",Na);function Oa(){return{droppedVideoFrames:this.webkitDroppedFrameCount,totalVideoFrames:this.webkitDecodedFrameCount,corruptedVideoFrames:0,creationTime:NaN,totalFrameDelay:0}};function Pa(a,b){for(var c=[],d=0;d<a.length;++d){for(var e=!1,f=0;f<c.length&&!(e=b?b(a[d],c[f]):a[d]===c[f]);++f);e||c.push(a[d])}return c};var Qa=0;function Ra(a){this.b=a;this.c=0==Sa;this.a=0}var Sa=1;function Ta(a){var b=a.b.getUint8(a.a);a.a+=1;return b}function v(a){var b=a.b.getUint32(a.a,a.c);a.a+=4;return b}function Ua(a){var b,c;a.c?(b=a.b.getUint32(a.a,!0),c=a.b.getUint32(a.a+4,!0)):(c=a.b.getUint32(a.a,!1),b=a.b.getUint32(a.a+4,!1));if(2097151<c)throw new RangeError("DataViewReader: Overflow reading 64-bit value.");a.a+=8;return c*Math.pow(2,32)+b} function Va(a){if(a.a+16>a.b.byteLength)throw new RangeError("DataViewReader: Read past end of DataView.");var b=new Uint8Array(a.b.buffer,a.a,16);a.a+=16;return b}function w(a,b){if(a.a+b>a.b.byteLength)throw new RangeError("DataViewReader: Skip past end of DataView.");a.a+=b};var Wa={"output-restricted":"The required output protection is not available.","output-not-allowed":"The required output protection is not available.",expired:"The decryption key has expired.","internal-error":"The key system has encountered an unspecified error."};function Xa(a){this.c=Math.exp(Math.log(.5)/a);this.a=this.b=0}Xa.prototype.sample=function(a,b){var c=Math.pow(this.c,a);this.b=b*(1-c)+c*this.b;this.a+=a};function Ya(a){return a.b/(1-Math.pow(a.c,a.a))};function x(a){var b=new CustomEvent(a.type,{detail:a.detail,bubbles:!!a.bubbles}),c;for(c in a)c in b||(b[c]=a[c]);return b}function y(a){return new CustomEvent("error",{detail:a,bubbles:!0})};function Za(a,b,c){$a(b);$a(c);return c==b||a>=ab&&c==b.split("-")[0]||a>=bb&&c.split("-")[0]==b.split("-")[0]?!0:!1}var ab=1,bb=2;function $a(a){a=a.toLowerCase().split("-");var b=cb[a[0]];b&&(a[0]=b);return a.join("-")} var cb={aar:"aa",abk:"ab",afr:"af",aka:"ak",alb:"sq",amh:"am",ara:"ar",arg:"an",arm:"hy",asm:"as",ava:"av",ave:"ae",aym:"ay",aze:"az",bak:"ba",bam:"bm",baq:"eu",bel:"be",ben:"bn",bih:"bh",bis:"bi",bod:"bo",bos:"bs",bre:"br",bul:"bg",bur:"my",cat:"ca",ces:"cs",cha:"ch",che:"ce",chi:"zh",chu:"cu",chv:"cv",cor:"kw",cos:"co",cre:"cr",cym:"cy",cze:"cs",dan:"da",deu:"de",div:"dv",dut:"nl",dzo:"dz",ell:"el",eng:"en",epo:"eo",est:"et",eus:"eu",ewe:"ee",fao:"fo",fas:"fa",fij:"fj",fin:"fi",fra:"fr",fre:"fr", fry:"fy",ful:"ff",geo:"ka",ger:"de",gla:"gd",gle:"ga",glg:"gl",glv:"gv",gre:"el",grn:"gn",guj:"gu",hat:"ht",hau:"ha",heb:"he",her:"hz",hin:"hi",hmo:"ho",hrv:"hr",hun:"hu",hye:"hy",ibo:"ig",ice:"is",ido:"io",iii:"ii",iku:"iu",ile:"ie",ina:"ia",ind:"id",ipk:"ik",isl:"is",ita:"it",jav:"jv",jpn:"ja",kal:"kl",kan:"kn",kas:"ks",kat:"ka",kau:"kr",kaz:"kk",khm:"km",kik:"ki",kin:"rw",kir:"ky",kom:"kv",kon:"kg",kor:"ko",kua:"kj",kur:"ku",lao:"lo",lat:"la",lav:"lv",lim:"li",lin:"ln",lit:"lt",ltz:"lb",lub:"lu", lug:"lg",mac:"mk",mah:"mh",mal:"ml",mao:"mi",mar:"mr",may:"ms",mkd:"mk",mlg:"mg",mlt:"mt",mon:"mn",mri:"mi",msa:"ms",mya:"my",nau:"na",nav:"nv",nbl:"nr",nde:"nd",ndo:"ng",nep:"ne",nld:"nl",nno:"nn",nob:"nb",nor:"no",nya:"ny",oci:"oc",oji:"oj",ori:"or",orm:"om",oss:"os",pan:"pa",per:"fa",pli:"pi",pol:"pl",por:"pt",pus:"ps",que:"qu",roh:"rm",ron:"ro",rum:"ro",run:"rn",rus:"ru",sag:"sg",san:"sa",sin:"si",slk:"sk",slo:"sk",slv:"sl",sme:"se",smo:"sm",sna:"sn",snd:"sd",som:"so",sot:"st",spa:"es",sqi:"sq", srd:"sc",srp:"sr",ssw:"ss",sun:"su",swa:"sw",swe:"sv",tah:"ty",tam:"ta",tat:"tt",tel:"te",tgk:"tg",tgl:"tl",tha:"th",tib:"bo",tir:"ti",ton:"to",tsn:"tn",tso:"ts",tuk:"tk",tur:"tr",twi:"tw",uig:"ug",ukr:"uk",urd:"ur",uzb:"uz",ven:"ve",vie:"vi",vol:"vo",wel:"cy",wln:"wa",wol:"wo",xho:"xh",yid:"yi",yor:"yo",zha:"za",zho:"zh",zul:"zu"};function db(a){return Object.keys(a).map(function(b){return a[b]})}function eb(a,b){return fb(a,b,"boolean")}function gb(a,b){var c=fb(a,b,"number");if(null==c)return null;if(isNaN(c)||c==Number.NEGATIVE_INFINITY||c==Number.POSITIVE_INFINITY)throw new RangeError("'"+b+"' must be finite.");if(0>c)throw new RangeError("'"+b+"' must be >= 0");return c}function z(a,b){return fb(a,b,"string")} function fb(a,b,c){a=a[b];if(null==a)return null;if(typeof a!=c)throw new TypeError("'"+b+"' must be a "+c+".");return a}function A(a,b,c){a=a[b];if(null==a)return null;if(!(a instanceof c))throw new TypeError("'"+b+"' must be an instance of "+c.name+".");return a};function C(){this.a={}}C.prototype.push=function(a,b){this.a.hasOwnProperty(a)?this.a[a].push(b):this.a[a]=[b]};C.prototype.set=function(a,b){this.a[a]=b};C.prototype.get=function(a){return(a=this.a[a])?a.slice():null};function hb(a){var b=[],c;for(c in a.a)b.push.apply(b,a.a[c]);return b}function ib(a,b,c){if(a=a.a[b])for(b=0;b<a.length;++b)a[b]==c&&(a.splice(b,1),--b)}function kb(a){var b=[],c;for(c in a.a)b.push(c);return b};function D(){this.a=new C}D.prototype.destroy=function(){lb(this);this.a=null};function E(a,b,c,d){b=new mb(b,c,d);a.a.push(c,b)}D.prototype.ba=function(a,b){for(var c=this.a.get(b)||[],d=0;d<c.length;++d){var e=c[d];e.target==a&&(e.ba(),ib(this.a,b,e))}};function lb(a){for(var b=hb(a.a),c=0;c<b.length;++c)b[c].ba();a.a.a={}}function mb(a,b,c){this.target=a;this.type=b;this.a=c;this.target.addEventListener(b,c,!1)} mb.prototype.ba=function(){this.target&&(this.target.removeEventListener(this.type,this.a,!1),this.a=this.target=null)};function F(a){this.ia=new C;this.v=a}m("shaka.util.FakeEventTarget",F);F.prototype.addEventListener=function(a,b,c){c||this.ia.push(a,b)};F.prototype.removeEventListener=function(a,b,c){c||ib(this.ia,a,b)}; F.prototype.dispatchEvent=function(a){a.hasOwnProperty("srcElement")||(delete a.srcElement,Object.defineProperty(a,"srcElement",{get:function(){return null}}));if(a.hasOwnProperty("target"))a.target=this;else{delete a.target;var b=this;Object.defineProperty(a,"target",{get:function(){return b},set:function(a){b=a}})}if(a.hasOwnProperty("currentTarget"))a.currentTarget=null;else{delete a.currentTarget;var c=null;Object.defineProperty(a,"currentTarget",{get:function(){return c},set:function(a){c=a}})}return nb(this, a)};function nb(a,b){b.currentTarget=a;for(var c=a.ia.get(b.type)||[],d=0;d<c.length;++d){var e=c[d];try{e.handleEvent?e.handleEvent(b):e.call(a,b)}catch(f){}}a.v&&b.bubbles&&nb(a.v,b);return b.defaultPrevented};function G(){F.call(this,null);this.a=new Xa(3);this.c=new Xa(10);this.b=0}p(G,F);m("shaka.util.EWMABandwidthEstimator",G);G.prototype.sample=function(a,b){if(!(65536>b)){a=Math.max(a,50);var c=8E3*b/a,d=a/1E3;this.a.sample(d,c);this.c.sample(d,c);this.dispatchEvent(x({type:"bandwidth"}));this.b=Date.now()}};G.prototype.getBandwidth=function(){return.5>this.a.a?5E5:Math.min(Ya(this.a),Ya(this.c))};G.prototype.getDataAge=function(){return(Date.now()-this.b)/1E3};G.prototype.supportsCaching=function(){return!1};function H(){var a,b,c=new Promise(function(c,e){a=c;b=e});c.resolve=a;c.reject=b;c.destroy=H.prototype.destroy;return c}H.prototype.destroy=function(){this.catch(function(){});var a=Error("Destroyed!");a.type="destroy";this.reject(a)};function ob(a){a.split("").reduce(function(a,c,d){return a+(d&&0==d%4?" "+c:c)})};function pb(){this.g=new H;this.f=!1;this.a=null;this.b=[];this.c=null}function qb(a,b){if(a.f)throw Error("Cannot append to a running task!");a.b.push(b)}pb.prototype.start=function(){if(this.f)throw Error("Task already started!");this.f=!0;this.b.unshift(function(){});rb(this,void 0)};pb.prototype.end=function(){this.b.splice(1)}; function rb(a,b){var c=a.b[0](b),d;c?(d=c[0],a.c=c[1]):(d=Promise.resolve(),a.c=null);d.then(I(a,function(a){this.a?(this.b=[],this.c=null,sb(this)):(this.b.shift(),this.b.length?rb(this,a):(this.g.resolve(a),this.c=null))})).catch(I(a,function(a){this.b=[];this.c=null;this.a?sb(this):this.g.reject(a)}))}function sb(a){var b=Error("Task aborted.");b.type="aborted";a.g.reject(b);window.setTimeout(function(){this.a.resolve();this.a=null}.bind(a),5)};function I(a,b){return b.bind(a)};function tb(a,b,c){MediaSource.isTypeSupported(b);b=a.addSourceBuffer(b);this.h=a;this.c=b;this.l=c;this.i=new D;this.s=null;this.b=[];this.o=0;this.f=this.a=null;this.v=0;E(this.i,this.c,"updateend",this.u.bind(this))}var ub=1/60;tb.prototype.destroy=function(){vb(this).catch(function(){});this.f&&this.f.destroy();this.b=this.a=this.f=null;this.i.destroy();this.h=this.c=this.i=null}; function wb(a,b){for(var c=a.c.buffered,d=0;d<c.length;++d){var e=c.start(d)-ub,f=c.end(d)+ub;if(b>=e&&b<=f)return c.end(d)-b}return 0} function xb(a,b,c,d){if(a.a)return a=Error("Cannot fetch ("+a.j+"): previous operation not complete."),a.type="stream",Promise.reject(a);a.a=new pb;c!=a.c.timestampOffset&&(a.c.timestampOffset=c);d&&qb(a.a,function(){return[yb(this,d),this.g.bind(this)]}.bind(a));qb(a.a,function(){var a=b.a?b.a-b.b:1,c=new zb;c.a=3;c.h=1E3*a;c.c=1E3*this.v;c.j=this.s;return[Ab(b.url,c,this.l),J.prototype.f.bind(b.url)]}.bind(a));qb(a.a,I(a,function(a){this.l.getBandwidth();return[yb(this,a),this.g.bind(this)]})); var e=0==a.c.buffered.length&&0==a.b.length,f=null;qb(a.a,function(){if(0==this.c.buffered.length){var a=Error("Failed to buffer segment ("+this.j+").");a.type="stream";return[Promise.reject(a)]}e&&(a=b.b,f=this.c.buffered.start(0)-a);a=Bb(this.b,b.b);0<=a?this.b.splice(a+1,0,b):this.b.push(b)}.bind(a));return Cb(a).then(function(){return Promise.resolve(f)}.bind(a))} function Db(a){if(a.a)return a=Error("Cannot clear ("+a.j+"): previous operation not complete."),a.type="stream",Promise.reject(a);a.a=new pb;qb(a.a,function(){var a;a:if(0==this.c.buffered.length)a=Promise.resolve();else{try{this.c.remove(0,this.h.duration)}catch(c){a=Promise.reject(c);break a}this.b=[];a=this.f=new H}return[a,this.g.bind(this)]}.bind(a));return Cb(a)} function Eb(a,b){if(a.a){var c=Error("Cannot clearAfter ("+a.j+"): previous operation not complete.");c.type="stream";return Promise.reject(c)}a.a=new pb;qb(a.a,function(){return[Fb(this,b),this.g.bind(this)]}.bind(a));return Cb(a)}function vb(a){a.a?(a=a.a,a.a?a=a.a:a.f?(a.c&&a.c(),a.a=new H,a=a.a):(a.f=!0,a=Promise.resolve())):a=Promise.resolve();return a}function Cb(a){a.a.start();return a.a.g.then(I(a,function(){this.a=null})).catch(I(a,function(a){this.a=null;return Promise.reject(a)}))} function yb(a,b){try{a.c.appendBuffer(b)}catch(c){return Promise.reject(c)}a.f=new H;return a.f}function Fb(a,b){if(0==a.c.buffered.length)return Promise.resolve();var c=Bb(a.b,b);if(-1==c||c==a.b.length-1)return Promise.resolve();try{a.c.remove(a.b[c+1].b,a.h.duration)}catch(d){return Promise.reject(d)}a.b=a.b.slice(0,c+1);a.f=new H;return a.f}tb.prototype.g=function(){this.f&&"open"==this.h.readyState&&this.c.abort()};tb.prototype.u=function(){this.f&&(this.f.resolve(),this.f=null)};function Gb(a){return String.fromCharCode.apply(null,a)}m("shaka.util.Uint8ArrayUtils.toString",Gb);function Hb(a){for(var b=new Uint8Array(a.length),c=0;c<a.length;++c)b[c]=a.charCodeAt(c);return b}m("shaka.util.Uint8ArrayUtils.fromString",Hb);m("shaka.util.Uint8ArrayUtils.toBase64",function(a,b){var c=void 0==b?!0:b,d=window.btoa(Gb(a)).replace(/\+/g,"-").replace(/\//g,"_");return c?d:d.replace(/=*$/,"")});function Ib(a){return Hb(window.atob(a.replace(/-/g,"+").replace(/_/g,"/")))} m("shaka.util.Uint8ArrayUtils.fromBase64",Ib);m("shaka.util.Uint8ArrayUtils.fromHex",function(a){for(var b=new Uint8Array(a.length/2),c=0;c<a.length;c+=2)b[c/2]=window.parseInt(a.substr(c,2),16);return b});function Jb(a){for(var b="",c=0;c<a.length;++c){var d=a[c].toString(16);1==d.length&&(d="0"+d);b+=d}return b}m("shaka.util.Uint8ArrayUtils.toHex",Jb);function Kb(a,b){if(!a&&!b)return!0;if(!a||!b||a.length!=b.length)return!1;for(var c=0;c<a.length;++c)if(a[c]!=b[c])return!1;return!0};function Lb(){this.h=this.a="";this.j=!1;this.o=this.v=null;this.i=this.g=!1;this.l=this.f="";this.c=null;this.b=[]}function Mb(a,b){var c=new Lb;c.a=a.a;c.h=a.h;c.j=a.j;c.v=a.v;c.o=a.o;c.g=a.g;c.i=a.i;c.f=a.f;c.l=a.l;c.c=a.c?new Uint8Array(a.c.buffer):null;Nb(c,a.b);Nb(c,b.b);return c}function Nb(a,b){var c=a.b.concat(b.map(function(a){return{initData:new Uint8Array(a.initData.buffer),initDataType:a.initDataType}}));a.b=Pa(c,Ob)} function Ob(a,b){return a.initDataType==b.initDataType&&Kb(a.initData,b.initData)};function Pb(a,b){try{var c=new Qb(a,b);return Promise.resolve(c)}catch(d){return Promise.reject(d)}}function Rb(a){var b=this.mediaKeys;b&&b!=a&&Sb(b,null);delete this.mediaKeys;(this.mediaKeys=a)&&Sb(a,this);return Promise.resolve()} function Qb(a,b){this.a=this.keySystem=a;var c=!0;"org.w3.clearkey"==a&&(this.a="webkit-org.w3.clearkey",c=!1);var d=!1,e;e=document.getElementsByTagName("video");e=e.length?e[0]:document.createElement("video");for(var f=0;f<b.length;++f){var g=b[f],h={audioCapabilities:[],videoCapabilities:[],persistentState:"optional",distinctiveIdentifier:"optional",initDataTypes:g.initDataTypes,sessionTypes:["temporary"]},l=!1;if(g.audioCapabilities)for(var n=0;n<g.audioCapabilities.length;++n){var r=g.audioCapabilities[n]; r.contentType&&(l=!0,e.canPlayType(r.contentType.split(";")[0],this.a)&&(h.audioCapabilities.push(r),d=!0))}if(g.videoCapabilities)for(n=0;n<g.videoCapabilities.length;++n)r=g.videoCapabilities[n],r.contentType&&(l=!0,e.canPlayType(r.contentType,this.a)&&(h.videoCapabilities.push(r),d=!0));l||(d=e.canPlayType("video/mp4",this.a)||e.canPlayType("video/webm",this.a));"required"==g.persistentState&&(c?(h.persistentState="required",h.sessionTypes=["persistent-license"]):d=!1);if(d){this.b=h;return}}c= "Unsupported keySystem";if("org.w3.clearkey"==a||"com.widevine.alpha"==a)c="None of the requested configurations were supported.";c=Error(c);c.name="NotSupportedError";c.code=DOMException.NOT_SUPPORTED_ERR;throw c;}Qb.prototype.createMediaKeys=function(){var a=new Tb(this.a);return Promise.resolve(a)};Qb.prototype.getConfiguration=function(){return this.b};function Tb(a){this.g=a;this.b=null;this.a=new D;this.c=[];this.f={}} function Sb(a,b){a.b=b;lb(a.a);b&&(E(a.a,b,"webkitneedkey",a.hb.bind(a)),E(a.a,b,"webkitkeymessage",a.gb.bind(a)),E(a.a,b,"webkitkeyadded",a.eb.bind(a)),E(a.a,b,"webkitkeyerror",a.fb.bind(a)))}k=Tb.prototype;k.createSession=function(a){var b=a||"temporary";if("temporary"!=b&&"persistent-license"!=b)throw new TypeError("Session type "+a+" is unsupported on this platform.");a=this.b||document.createElement("video");a.src||(a.src="about:blank");b=new Ub(a,this.g,b);this.c.push(b);return b}; k.setServerCertificate=function(){return Promise.reject(Error("setServerCertificate not supported on this platform."))};k.hb=function(a){a=x({type:"encrypted",initDataType:"webm",initData:a.initData});this.b.dispatchEvent(a)};k.gb=function(a){var b=Vb(this,a.sessionId);b&&(a=x({type:"message",messageType:void 0==b.keyStatuses.la()?"licenserequest":"licenserenewal",message:a.message}),b.b&&(b.b.resolve(),b.b=null),b.dispatchEvent(a))}; k.eb=function(a){if(a=Vb(this,a.sessionId))Wb(a,"usable"),a.a&&a.a.resolve(),a.a=null}; k.fb=function(a){var b=Vb(this,a.sessionId);if(b){var c=Error("EME v0.1b key error");c.errorCode=a.errorCode;c.errorCode.systemCode=a.systemCode;!a.sessionId&&b.b?(c.method="generateRequest",45==a.systemCode&&(c.message="Unsupported session type."),b.b.reject(c),b.b=null):a.sessionId&&b.a?(c.method="update",b.a.reject(c),b.a=null):(c=a.systemCode,a.errorCode.code==MediaKeyError.MEDIA_KEYERR_OUTPUT?Wb(b,"output-restricted"):1==c?Wb(b,"expired"):Wb(b,"internal-error"))}}; function Vb(a,b){var c=a.f[b];return c?c:(c=a.c.shift())?(c.sessionId=b,a.f[b]=c):null}function Ub(a,b,c){F.call(this,null);this.f=a;this.h=!1;this.a=this.b=null;this.c=b;this.g=c;this.sessionId="";this.expiration=NaN;this.closed=new H;this.keyStatuses=new Xb}p(Ub,F); function Yb(a,b,c){if(a.h)return Promise.reject(Error("The session is already initialized."));a.h=!0;var d;try{if("persistent-license"==a.g)if(c)d=Hb("LOAD_SESSION|"+c);else{var e=new Uint8Array(b);d=Hb("PERSISTENT|"+Gb(e))}else d=new Uint8Array(b)}catch(f){return Promise.reject(f)}a.b=new H;try{a.f.webkitGenerateKeyRequest(a.c,d)}catch(g){if("InvalidStateError"!=g.name)return a.b=null,Promise.reject(g);setTimeout(function(){try{this.f.webkitGenerateKeyRequest(this.c,d)}catch(a){this.b.reject(a), this.b=null}}.bind(a),10)}return a.b}k=Ub.prototype;k.pa=function(a,b){if(this.a)this.a.then(this.pa.bind(this,a,b)).catch(this.pa.bind(this,a,b));else{this.a=a;var c,d;"webkit-org.w3.clearkey"==this.c?(c=Gb(new Uint8Array(b)),d=JSON.parse(c),"oct"!=d.keys[0].kty&&(this.a.reject(Error("Response is not a valid JSON Web Key Set.")),this.a=null),c=Ib(d.keys[0].k),d=Ib(d.keys[0].kid)):(c=new Uint8Array(b),d=null);try{this.f.webkitAddKey(this.c,c,d,this.sessionId)}catch(e){this.a.reject(e),this.a=null}}}; function Wb(a,b){a.keyStatuses.oa(b);var c=x({type:"keystatuseschange"});a.dispatchEvent(c)}k.generateRequest=function(a,b){return Yb(this,b,null)};k.load=function(a){return"persistent-license"==this.g?Yb(this,null,a):Promise.reject(Error("Not a persistent session."))};k.update=function(a){var b=new H;this.pa(b,a);return b}; k.close=function(){if("persistent-license"!=this.g){if(!this.sessionId)return this.closed.reject(Error("The session is not callable.")),this.closed;this.f.webkitCancelKeyRequest(this.c,this.sessionId)}this.closed.resolve();return this.closed};k.remove=function(){return"persistent-license"!=this.g?Promise.reject(Error("Not a persistent session.")):this.close()};function Xb(){this.size=0;this.a=void 0}var Zb;k=Xb.prototype;k.oa=function(a){this.size=void 0==a?0:1;this.a=a};k.la=function(){return this.a}; k.forEach=function(a){this.a&&a(Zb,this.a)};k.get=function(a){if(this.has(a))return this.a};k.has=function(a){var b=Zb;return this.a&&Kb(new Uint8Array(a),new Uint8Array(b))?!0:!1};function $b(a){this.systemIds=[];this.cencKeyIds=[];this.a=[];a=new Ra(new DataView(a.buffer));try{for(;a.a<a.b.byteLength;){var b=a.a,c=v(a),d=v(a);1==c?c=Ua(a):0==c&&(c=a.b.byteLength-b);if(1886614376!=d)w(a,c-(a.a-b));else{var e=Ta(a);if(1<e)w(a,c-(a.a-b));else{w(a,3);var f=Jb(Va(a)),g=[];if(0<e)for(var h=v(a),l=0;l<h;++l){var n=Jb(Va(a));g.push(n)}var r=v(a);w(a,r);this.cencKeyIds.push.apply(this.cencKeyIds,g);this.systemIds.push(f);this.a.push({start:b,end:a.a-1});a.a!=b+c&&w(a,c-(a.a-b))}}}}catch(t){}} ;function ac(a,b){try{var c=new bc(a,b);return Promise.resolve(c)}catch(d){return Promise.reject(d)}} function bc(a,b){this.keySystem=a;for(var c=!1,d=0;d<b.length;++d){var e=b[d],f={audioCapabilities:[],videoCapabilities:[],persistentState:"optional",distinctiveIdentifier:"optional",initDataTypes:e.initDataTypes,sessionTypes:["temporary"]},g=!1;if(e.audioCapabilities)for(var h=0;h<e.audioCapabilities.length;++h){var l=e.audioCapabilities[h];if(l.contentType){var g=!0,n=l.contentType.split(";")[0];MSMediaKeys.isTypeSupported(this.keySystem,n)&&(f.audioCapabilities.push(l),c=!0)}}if(e.videoCapabilities)for(h= 0;h<e.videoCapabilities.length;++h)l=e.videoCapabilities[h],l.contentType&&(g=!0,n=l.contentType.split(";")[0],MSMediaKeys.isTypeSupported(this.keySystem,n)&&(f.videoCapabilities.push(l),c=!0));g||(c=MSMediaKeys.isTypeSupported(this.keySystem,"video/mp4"));"required"==e.persistentState&&(f.persistentState="required",f.sessionTypes=["persistent-license"]);if(c){this.a=f;return}}c=Error("Unsupported keySystem");c.name="NotSupportedError";c.code=DOMException.NOT_SUPPORTED_ERR;throw c;} bc.prototype.createMediaKeys=function(){var a=new cc(this.keySystem);return Promise.resolve(a)};bc.prototype.getConfiguration=function(){return this.a};function dc(a){var b=this.mediaKeys;b&&b!=a&&ec(b,null);delete this.mediaKeys;return(this.mediaKeys=a)?ec(a,this):Promise.resolve()}function cc(a){this.a=new MSMediaKeys(a);this.b=new D}cc.prototype.createSession=function(a){if("temporary"!=(a||"temporary"))throw new TypeError("Session type "+a+" is unsupported on this platform.");return new fc(this.a)}; cc.prototype.setServerCertificate=function(){return Promise.reject(Error("setServerCertificate not supported on this platform."))};function ec(a,b){function c(){b.msSetMediaKeys(d.a);b.removeEventListener("loadedmetadata",c)}lb(a.b);if(!b)return Promise.resolve();E(a.b,b,"msneedkey",gc);var d=a;try{return 1<=b.readyState?b.msSetMediaKeys(a.a):b.addEventListener("loadedmetadata",c),Promise.resolve()}catch(e){return Promise.reject(e)}} function fc(a){F.call(this,null);this.c=null;this.g=a;this.b=this.a=null;this.f=new D;this.sessionId="";this.expiration=NaN;this.closed=new H;this.keyStatuses=new hc}p(fc,F);k=fc.prototype;k.generateRequest=function(a,b){this.a=new H;try{this.c=this.g.createSession("video/mp4",new Uint8Array(b),null),E(this.f,this.c,"mskeymessage",this.Ua.bind(this)),E(this.f,this.c,"mskeyadded",this.Sa.bind(this)),E(this.f,this.c,"mskeyerror",this.Ta.bind(this)),ic(this,"status-pending")}catch(c){this.a.reject(c)}return this.a}; k.load=function(){return Promise.reject(Error("MediaKeySession.load not yet supported"))};k.update=function(a){this.b=new H;try{this.c.update(new Uint8Array(a))}catch(b){this.b.reject(b)}return this.b};k.close=function(){try{this.c.close(),this.closed.resolve(),lb(this.f)}catch(a){this.closed.reject(a)}return this.closed};k.remove=function(){return Promise.reject(Error("MediaKeySession.remove is only applicable for persistent licenses, which are not supported on this platform"))}; function gc(a){var b=a.initData;if(b){var c=new $b(b);if(1>=c.a.length)a=b;else{var d=[];for(a=0;a<c.a.length;a++)d.push(b.subarray(c.a[a].start,c.a[a].end+1));b=Pa(d,jc);for(a=c=0;a<b.length;a++)c+=b[a].length;c=new Uint8Array(c);for(a=d=0;a<b.length;a++)c.set(b[a],d),d+=b[a].length;a=c}}else a=b;a=x({type:"encrypted",initDataType:"cenc",initData:a});this.dispatchEvent(a)}function jc(a,b){return Kb(a,b)} k.Ua=function(a){this.a&&(this.a.resolve(),this.a=null);a=x({type:"message",messageType:void 0==this.keyStatuses.la()?"licenserequest":"licenserenewal",message:a.message.buffer});this.dispatchEvent(a)};k.Sa=function(){this.a?(this.a.resolve(),this.a=null):this.b&&(ic(this,"usable"),this.b.resolve(),this.b=null)}; k.Ta=function(){var a=Error("EME v20140218 key error");a.errorCode=this.c.error;if(null!=this.a)this.a.reject(a),this.a=null;else if(null!=this.b)this.b.reject(a),this.b=null;else switch(this.c.error.code){case MSMediaKeyError.MS_MEDIA_KEYERR_OUTPUT:case MSMediaKeyError.MS_MEDIA_KEYERR_HARDWARECHANGE:ic(this,"output-not-allowed");default:ic(this,"internal-error")}};function ic(a,b){a.keyStatuses.oa(b);var c=x({type:"keystatuseschange"});a.dispatchEvent(c)}function hc(){this.size=0;this.a=void 0}var kc; k=hc.prototype;k.oa=function(a){this.size=void 0==a?0:1;this.a=a};k.la=function(){return this.a};k.forEach=function(a){this.a&&a(kc,this.a)};k.get=function(a){if(this.has(a))return this.a};k.has=function(a){var b=kc;return this.a&&Kb(new Uint8Array(a),new Uint8Array(b))?!0:!1};function lc(){Navigator.prototype.requestMediaKeySystemAccess&&MediaKeySystemAccess.prototype.getConfiguration||(HTMLMediaElement.prototype.webkitGenerateKeyRequest?(Zb=(new Uint8Array([0])).buffer,Navigator.prototype.requestMediaKeySystemAccess=Pb,delete HTMLMediaElement.prototype.mediaKeys,HTMLMediaElement.prototype.mediaKeys=null,HTMLMediaElement.prototype.setMediaKeys=Rb,window.MediaKeys=Tb,window.MediaKeySystemAccess=Qb):window.MSMediaKeys?(kc=(new Uint8Array([0])).buffer,delete HTMLMediaElement.prototype.mediaKeys, HTMLMediaElement.prototype.mediaKeys=null,HTMLMediaElement.prototype.setMediaKeys=dc,window.MediaKeys=cc,window.MediaKeySystemAccess=bc,Navigator.prototype.requestMediaKeySystemAccess=ac):(Navigator.prototype.requestMediaKeySystemAccess=xa,delete HTMLMediaElement.prototype.mediaKeys,HTMLMediaElement.prototype.mediaKeys=null,HTMLMediaElement.prototype.setMediaKeys=ya,window.MediaKeys=za,window.MediaKeySystemAccess=Aa))}m("shaka.polyfill.MediaKeys.install",lc);m("shaka.polyfill.installAll",function(){ta();va();Na();Ca();lc()});var mc=/^(?:([^:/?#.]+):)?(?:\/\/(?:([^/?#]*)@)?([^/#?]*?)(?::([0-9]+))?(?=[/#?]|$))?([^?#]+)?(?:\?([^#]*))?(?:#(.*))?$/;function K(a){var b;a instanceof K?(nc(this,a.I),this.P=a.P,this.H=a.H,oc(this,a.Y),this.F=a.F,pc(this,a.a.clone()),this.M=a.M):a&&(b=String(a).match(mc))?(nc(this,b[1]||"",!0),this.P=qc(b[2]||""),this.H=qc(b[3]||"",!0),oc(this,b[4]),this.F=qc(b[5]||"",!0),pc(this,b[6]||"",!0),this.M=qc(b[7]||"")):this.a=new L(null)}k=K.prototype;k.I="";k.P="";k.H="";k.Y=null;k.F="";k.M=""; k.toString=function(){var a=[],b=this.I;b&&a.push(rc(b,sc,!0),":");if(b=this.H){a.push("//");var c=this.P;c&&a.push(rc(c,sc,!0),"@");a.push(encodeURIComponent(b).replace(/%25([0-9a-fA-F]{2})/g,"%$1"));b=this.Y;null!=b&&a.push(":",String(b))}if(b=this.F)this.H&&"/"!=b.charAt(0)&&a.push("/"),a.push(rc(b,"/"==b.charAt(0)?tc:uc,!0));(b=this.a.toString())&&a.push("?",b);(b=this.M)&&a.push("#",rc(b,vc));return a.join("")}; k.resolve=function(a){var b=this.clone();"data"===b.I&&(b=new K);var c=!!a.I;c?nc(b,a.I):c=!!a.P;c?b.P=a.P:c=!!a.H;c?b.H=a.H:c=null!=a.Y;var d=a.F;if(c)oc(b,a.Y);else if(c=!!a.F){if("/"!=d.charAt(0))if(this.H&&!this.F)d="/"+d;else{var e=b.F.lastIndexOf("/");-1!=e&&(d=b.F.substr(0,e+1)+d)}if(".."==d||"."==d)d="";else if(-1!=d.indexOf("./")||-1!=d.indexOf("/.")){for(var e=0==d.lastIndexOf("/",0),d=d.split("/"),f=[],g=0;g<d.length;){var h=d[g++];"."==h?e&&g==d.length&&f.push(""):".."==h?((1<f.length|| 1==f.length&&""!=f[0])&&f.pop(),e&&g==d.length&&f.push("")):(f.push(h),e=!0)}d=f.join("/")}}c?b.F=d:c=""!==a.a.toString();c?pc(b,a.a.clone()):c=!!a.M;c&&(b.M=a.M);return b};k.clone=function(){return new K(this)};function nc(a,b,c){a.I=c?qc(b,!0):b;a.I&&(a.I=a.I.replace(/:$/,""))}function oc(a,b){if(b){b=Number(b);if(isNaN(b)||0>b)throw Error("Bad port number "+b);a.Y=b}else a.Y=null}function pc(a,b,c){b instanceof L?a.a=b:(c||(b=rc(b,wc)),a.a=new L(b))} function qc(a,b){return a?b?decodeURI(a):decodeURIComponent(a):""}function rc(a,b,c){return"string"==typeof a?(a=encodeURI(a).replace(b,xc),c&&(a=a.replace(/%25([0-9a-fA-F]{2})/g,"%$1")),a):null}function xc(a){a=a.charCodeAt(0);return"%"+(a>>4&15).toString(16)+(a&15).toString(16)}var sc=/[#\/\?@]/g,uc=/[\#\?:]/g,tc=/[\#\?]/g,wc=/[\#\?@]/g,vc=/#/g;function L(a){this.b=a||null}L.prototype.a=null;L.prototype.c=null; function yc(a,b,c){if(!a.a&&(a.a={},a.c=0,a.b))for(var d=a.b.split("&"),e=0;e<d.length;e++){var f=d[e].indexOf("="),g=null,h=null;0<=f?(g=d[e].substring(0,f),h=d[e].substring(f+1)):g=d[e];g=decodeURIComponent(g.replace(/\+/g," "));h=h||"";yc(a,g,decodeURIComponent(h.replace(/\+/g," ")))}a.b=null;(d=a.a.hasOwnProperty(b)&&a.a[b])||(a.a[b]=d=[]);d.push(c);a.c++} L.prototype.toString=function(){if(this.b)return this.b;if(!this.a)return"";var a=[],b;for(b in this.a)for(var c=encodeURIComponent(b),d=this.a[b],e=0;e<d.length;e++){var f=c;""!==d[e]&&(f+="="+encodeURIComponent(d[e]));a.push(f)}return this.b=a.join("&")};L.prototype.clone=function(){var a=new L;a.b=this.b;if(this.a){var b={},c;for(c in this.a)b[c]=this.a[c].concat();a.a=b;a.c=this.c}return a};function zc(){this.id=this.url=null;this.type="static";this.b=this.j=this.m=this.Da=null;this.g=5;this.i=this.c=this.f=null;this.h=1;this.a=[]}function Ac(){this.g=this.f=this.c=this.m=this.b=this.start=this.id=null;this.a=[]}function Bc(){this.i=this.b=this.height=this.width=this.contentType=this.lang=this.group=this.id=null;this.c=!1;this.h=this.g=this.f=this.m=null;this.j=[];this.a=[]}function Cc(){this.value=null}function Dc(){this.contentType=this.lang=this.id=null} function Ec(){this.g=this.f=this.c=this.m=this.h=this.b=this.height=this.width=this.bandwidth=this.lang=this.id=null;this.a=[]}function Fc(){this.b=this.a=this.c=this.f=null}function Gc(){this.parsedPssh=this.psshBox=null}function Hc(){this.url=null}function Ic(){this.url=null}function M(){this.m=null;this.g=1;this.c=this.b=this.a=this.f=null}M.prototype.clone=function(){var a=new M;a.m=N(this.m);a.g=this.g;a.f=this.f;a.a=O(this.a);a.b=O(this.b);a.c=O(this.c);return a}; function Jc(){this.a=this.url=null}Jc.prototype.clone=function(){var a=new Jc;a.url=N(this.url);a.a=O(this.a);return a};function Kc(){this.a=this.url=null}Kc.prototype.clone=function(){var a=new Kc;a.url=N(this.url);a.a=O(this.a);return a};function Lc(){this.m=null;this.b=1;this.g=this.a=null;this.i=1;this.f=null;this.c=[];this.h=null}Lc.prototype.clone=function(){var a=new Lc;a.m=N(this.m);a.b=this.b;a.a=this.a;a.g=this.g;a.i=this.i;a.f=O(this.f);a.c=N(this.c)||[];a.h=O(this.h);return a}; function Mc(){this.a=this.b=null}Mc.prototype.clone=function(){var a=new Mc;a.b=N(this.b);a.a=O(this.a);return a};function Nc(){this.b=1;this.h=this.a=null;this.j=1;this.i=this.f=this.c=this.g=null}Nc.prototype.clone=function(){var a=new Nc;a.b=this.b;a.a=this.a;a.h=this.h;a.j=this.j;a.g=this.g;a.c=this.c;a.f=this.f;a.i=O(this.i);return a};function Oc(){this.a=[]}Oc.prototype.clone=function(){var a=new Oc;a.a=N(this.a)||[];return a};function Pc(){this.b=this.a=this.c=null} Pc.prototype.clone=function(){var a=new Pc;a.c=this.c;a.a=this.a;a.b=this.b;return a};function Qc(a,b){this.da=a;this.end=b}Qc.prototype.clone=function(){return new Qc(this.da,this.end)};zc.TAG_NAME="MPD";Ac.TAG_NAME="Period";Bc.TAG_NAME="AdaptationSet";Cc.TAG_NAME="Role";Dc.TAG_NAME="ContentComponent";Ec.TAG_NAME="Representation";Fc.TAG_NAME="ContentProtection";Gc.TAG_NAME="cenc:pssh";Hc.TAG_NAME="BaseURL";Ic.TAG_NAME="Location";M.TAG_NAME="SegmentBase";Jc.TAG_NAME="RepresentationIndex"; Kc.TAG_NAME="Initialization";Lc.TAG_NAME="SegmentList";Mc.TAG_NAME="SegmentURL";Nc.TAG_NAME="SegmentTemplate";Oc.TAG_NAME="SegmentTimeline";Pc.TAG_NAME="S"; zc.prototype.parse=function(a,b){this.url=a.Da;this.id=P(b,"id",Q);this.type=P(b,"type",Q)||"static";this.b=P(b,"mediaPresentationDuration",Tc);this.g=P(b,"minBufferTime",Tc,this.g);this.f=P(b,"minimumUpdatePeriod",Tc,this.f);this.c=P(b,"availabilityStartTime",Uc,this.c);this.i=P(b,"timeShiftBufferDepth",Tc,this.i);this.h=P(b,"suggestedPresentationDelay",Tc,this.h);var c=a.m,d=R(this,b,Hc);this.m=Vc(c,d);if(d=S(this,b,Ic))this.j=Wc(c,d.url);this.a=R(this,b,Ac)}; Ac.prototype.parse=function(a,b){this.id=P(b,"id",Q);this.start=P(b,"start",Tc);this.b=P(b,"duration",Tc);var c=R(this,b,Hc);this.m=Vc(a.m,c);this.c=S(this,b,M);this.f=S(this,b,Lc);this.g=S(this,b,Nc);this.a=R(this,b,Bc);Xc(this)};function Xc(a){for(var b=[],c=0;c<a.a.length;++c){var d=a.a[c];null!=d.group&&(b[d.group]=!0)}for(c=0;c<a.a.length;++c)if(d=a.a[c],null==d.group){for(var e=1;1==b[e];)++e;b[e]=!0;d.group=e}} Bc.prototype.parse=function(a,b){var c=S(this,b,Dc)||{},d=S(this,b,Cc);this.id=P(b,"id",Q);this.group=P(b,"group",T);this.lang=P(b,"lang",Q,c.lang);this.contentType=P(b,"contentType",Q,c.contentType);this.width=P(b,"width",U);this.height=P(b,"height",U);this.b=P(b,"mimeType",Q);this.i=P(b,"codecs",Q);this.c=d&&"main"==d.value;this.lang&&(this.lang=$a(this.lang));c=R(this,b,Hc);this.m=Vc(a.m,c);this.j=R(this,b,Fc);!this.contentType&&this.b&&(this.contentType=this.b.split("/")[0]);this.f=a.c?Yc(this, b,a.c):S(this,b,M);this.g=a.f?Yc(this,b,a.f):S(this,b,Lc);this.h=a.g?Yc(this,b,a.g):S(this,b,Nc);this.a=R(this,b,Ec);!this.b&&this.a.length&&(this.b=this.a[0].b,!this.contentType&&this.b&&(this.contentType=this.b.split("/")[0]))};Cc.prototype.parse=function(a,b){this.value=P(b,"value",Q)};Dc.prototype.parse=function(a,b){this.id=P(b,"id",Q);this.lang=P(b,"lang",Q);this.contentType=P(b,"contentType",Q);this.lang&&(this.lang=$a(this.lang))}; Ec.prototype.parse=function(a,b){this.id=P(b,"id",Q);this.bandwidth=P(b,"bandwidth",U);this.width=P(b,"width",U,a.width);this.height=P(b,"height",U,a.height);this.b=P(b,"mimeType",Q,a.b);this.h=P(b,"codecs",Q,a.i);this.lang=a.lang;var c=R(this,b,Hc);this.m=Vc(a.m,c);this.a=R(this,b,Fc);this.c=a.f?Yc(this,b,a.f):S(this,b,M);this.f=a.g?Yc(this,b,a.g):S(this,b,Lc);this.g=a.h?Yc(this,b,a.h):S(this,b,Nc);this.a=this.a.concat(a.j)}; Fc.prototype.parse=function(a,b){this.f=b;this.c=P(b,"schemeIdUri",Q);var c=P(b,"cenc:default_KID",Q);c&&(this.b=c.replace(/[-]/g,""));this.a=S(this,b,Gc)};Gc.prototype.parse=function(a,b){var c=Zc(b);if(c){this.psshBox=Ib(c);try{this.parsedPssh=new $b(this.psshBox)}catch(d){if(!(d instanceof RangeError))throw d;}}};Hc.prototype.parse=function(a,b){this.url=Zc(b)};Ic.prototype.parse=function(a,b){this.url=Zc(b)}; M.prototype.parse=function(a,b){this.m=a.m||this.m;this.g=P(b,"timescale",U,this.g);this.f=P(b,"presentationTimeOffset",T,this.f);this.a=P(b,"indexRange",$c,this.a);this.b=S(this,b,Jc)||this.b;this.c=S(this,b,Kc)||this.c};Jc.prototype.parse=function(a,b){var c=P(b,"sourceURL",Q);this.url=Wc(a.m,c);this.a=P(b,"range",$c,O(a.a))};Kc.prototype.parse=function(a,b){var c=P(b,"sourceURL",Q);this.url=Wc(a.m,c);this.a=P(b,"range",$c)}; Lc.prototype.parse=function(a,b){this.m=a.m||this.m;this.b=P(b,"timescale",U,this.b);this.a=P(b,"presentationTimeOffset",T,this.a);this.g=P(b,"duration",U,this.g);var c=P(b,"startNumber",U);null!=c&&(this.i=c);this.f=S(this,b,Kc)||this.f;this.c=(c=R(this,b,Mc))&&0<c.length?c:this.c;this.h=S(this,b,Oc)||this.h};Mc.prototype.parse=function(a,b){var c=P(b,"media",Q);this.b=Wc(a.m,c);this.a=P(b,"mediaRange",$c)}; Nc.prototype.parse=function(a,b){this.b=P(b,"timescale",U,this.b);this.a=P(b,"presentationTimeOffset",T,this.a);this.h=P(b,"duration",U,this.h);var c=P(b,"startNumber",T);null!=c&&(this.j=c);this.g=P(b,"media",Q,this.g);this.c=P(b,"index",Q,this.c);this.f=P(b,"initialization",Q,this.f);this.i=S(this,b,Oc)||this.i};Oc.prototype.parse=function(a,b){this.a=R(this,b,Pc)};Pc.prototype.parse=function(a,b){this.c=P(b,"t",T);this.a=P(b,"d",T);this.b=P(b,"r",ad)}; function Vc(a,b){if(!b||0===b.length)return a;for(var c=[],d=0;d<b.length;d++){var e=b[d].url;null==a||0===a.length?c.push(new K(e)):(e=Wc(a.slice(0,1),e),c.push(e[0]))}return c}function Wc(a,b){if(!b)return a;var c=new K(b);return a?a.map(function(a){return a.resolve(c)}):[c]}function Yc(a,b,c){var d=O(c);(b=bd(b,c.constructor.TAG_NAME))&&d.parse(a,b);return d}function S(a,b,c){var d=null;if(b=bd(b,c.TAG_NAME))d=new c,d.parse(a,b);return d} function bd(a,b){for(var c=null,d=0;d<a.childNodes.length;d++)if(a.childNodes[d].tagName==b){if(c)return null;c=a.childNodes[d]}return c}function R(a,b,c){for(var d=[],e=0;e<b.childNodes.length;e++)if(b.childNodes[e].tagName==c.TAG_NAME){var f=new c;f.parse.call(f,a,b.childNodes[e]);d.push(f)}return d}function Zc(a){a=a.firstChild;return a.nodeType!=Node.TEXT_NODE?null:a.nodeValue}function N(a){return a?a.map(function(a){return a.clone()}):null}function O(a){return a?a.clone():null} function P(a,b,c,d){a=c(a.getAttribute(b));return null!=a?a:void 0!==d?d:null}function Uc(a){if(!a)return null;a=Date.parse(a);return isNaN(a)?null:Math.floor(a/1E3)} function Tc(a){if(!a)return null;var b=/^P(?:([0-9]*)Y)?(?:([0-9]*)M)?(?:([0-9]*)D)?(?:T(?:([0-9]*)H)?(?:([0-9]*)M)?(?:([0-9.]*)S)?)?$/.exec(a);if(!b)return null;a=0;var c=T(b[1]);c&&(a+=31536E3*c);(c=T(b[2]))&&(a+=2592E3*c);(c=T(b[3]))&&(a+=86400*c);(c=T(b[4]))&&(a+=3600*c);(c=T(b[5]))&&(a+=60*c);b=window.parseFloat(b[6]);(b=isNaN(b)?null:b)&&(a+=b);return a} function $c(a){var b=/([0-9]+)-([0-9]+)/.exec(a);if(!b)return null;a=T(b[1]);if(null==a)return null;b=T(b[2]);return null==b?null:new Qc(a,b)}function ad(a){a=window.parseInt(a,10);return isNaN(a)?null:a}function U(a){a=window.parseInt(a,10);return 0<a?a:null}function T(a){a=window.parseInt(a,10);return 0<=a?a:null}function Q(a){return a};function cd(a,b){this.url=a;this.b=b||new zb;this.g=this.i=this.h=0;this.a=null;this.c=new H;this.f=null}function zb(){this.body=null;this.a=1;this.h=1E3;this.c=0;this.method="GET";this.f="arraybuffer";this.b={};this.g=this.i=!1;this.j=null}var dd=!0;function ed(a){fd(a);a.b.body=null;a.c.destroy();a.c=null;a.f=null}function fd(a){a.a&&(a.a.onload=null,a.a.onreadystatechange=null,a.a.onerror=null,a.a.ontimeout=null);a.a=null}k=cd.prototype; k.Ha=function(){if(this.a)return this.c;if(0==this.url.lastIndexOf("data:",0)){var a=this.url.split(":")[1].split(";").pop().split(","),b=a.pop(),b="base64"==a.pop()?window.atob(b.replace(/-/g,"+").replace(/_/g,"/")):window.decodeURIComponent(b);"arraybuffer"==this.b.f&&(b=Hb(b).buffer);a=JSON.parse(JSON.stringify(new XMLHttpRequest));a.response=b;a.responseText=b.toString();b=this.c;b.resolve(a);ed(this);return b}if(0==this.url.lastIndexOf("idb:",0))return this.j();this.h++;this.i=Date.now();this.g|| (this.g=this.b.h);this.a=new XMLHttpRequest;a=this.url;dd&&(this.f&&!this.f.supportsCaching()||this.b.g)&&(a=new K(a),yc(a.a,"_",Date.now()),a=a.toString());this.a.open(this.b.method,a,!0);this.a.responseType=this.b.f;this.a.timeout=this.b.c;this.a.withCredentials=this.b.i;this.a.onload=this.Qa.bind(this);this.b.g&&(this.a.onreadystatechange=this.Xa.bind(this));this.a.onerror=this.kb.bind(this);this.a.ontimeout=this.ab.bind(this);for(b in this.b.b)this.a.setRequestHeader(b,this.b.b[b]);this.a.send(this.b.body); return this.c};function gd(a,b,c){b=Error(b);b.type=c;b.status=a.a.status;b.url=a.url;b.method=a.b.method;b.body=a.b.body;b.xhr=a.a;return b}k.Qa=function(a){this.f&&this.f.sample(Date.now()-this.i,a.loaded);200<=this.a.status&&299>=this.a.status?(this.c.resolve(this.a),ed(this)):this.h<this.b.a?hd(this):(a=gd(this,"HTTP error.","net"),this.c.reject(a),ed(this))};k.Xa=function(){if(this.a.readyState==XMLHttpRequest.HEADERS_RECEIVED){var a=Date.parse(this.a.getResponseHeader("Date"));a&&(Qa=a-Date.now())}}; k.kb=function(){var a=gd(this,"Network failure.","net");this.c.reject(a);ed(this)};k.ab=function(){if(this.h<this.b.a)hd(this);else{var a=gd(this,"Request timed out.","net");this.c.reject(a);ed(this)}};function hd(a){fd(a);window.setTimeout(a.Ha.bind(a),a.g*(1+.5*(2*Math.random()-1)));a.g*=2};function J(a,b,c,d){this.c=b;this.i=c||0;this.h=null!=d?d:null;this.b=this.a=null;this.j=a;this.g=null}function Ab(a,b,c){if(a.a)return a.a;b=b||new zb;if(a.i||a.h)b.b.Range="bytes="+(a.i+"-"+(null!=a.h?a.h:""));a.a=id(a,0,b,c);return a.a}J.prototype.f=function(){if(this.b){this.a=null;var a=this.b;if(a.a&&a.a.readyState!=XMLHttpRequest.DONE){a.a.abort();var b=gd(a,"Request aborted.","aborted");a.c.reject(b);ed(a)}this.g=this.b=null}}; function id(a,b,c,d){var e=a.c[b].toString();a.j&&(e=a.j(e,c.b)||e);a.b=new cd(e,c);d&&(a.b.f=d);e=a.b.Ha().then(I(a,function(a){this.g=this.b=this.a=null;this.g=a.a?new K(a.a):this.c[b];return Promise.resolve(a.response)}));return e=e.catch(I(a,function(a){if(this.a&&b+1<this.c.length)return this.a=id(this,b+1,c,d);this.a=this.b=null;return Promise.reject(a)}))}J.prototype.clone=function(){return new J(this.j,this.c.map(function(a){return a.clone()}),this.i,this.h)};J.prototype.toString=function(){return this.c[0].toString()};function jd(a,b){this.a=new zb;this.a.f="text";this.a.a=3;this.a.c=1E3*(null!=b?b:0);this.a.g=!0;this.b=a}function kd(a){var b=a.b;return Ab(b,a.a).then(function(a){var d;d=b.c;var e=[b.g];d=(a=(new DOMParser).parseFromString(a,"text/xml"))?S({Da:d,m:e},a,zc):null;if(d)return Promise.resolve(d);d=Error("MPD parse failure.");d.type="dash";return Promise.reject(d)})};function ld(a,b){this.a=a;this.b=b||null}ld.prototype.destroy=function(){this.a&&(this.a.f(),this.a=null);this.b=null};ld.prototype.create=function(){return this.a?Ab(this.a):Promise.resolve(this.b)};function md(a,b,c){this.b=a;this.a=b;this.url=c}function Bb(a,b){for(var c=a.length-1;0<=c;--c){var d=a[c];if(b>=d.b&&(null==d.a||b<d.a))return c}return-1}function nd(a,b){return a.map(function(a){return new md(a.b+b,null!=a.a?a.a+b:null,a.url)})};function od(){} od.prototype.parse=function(a,b,c,d){var e=null;try{a:{var f=[],g=new Ra(a),h=v(g);if(1936286840!=v(g))e=null;else{1==h&&(h=Ua(g));var l=Ta(g);w(g,3);w(g,4);var n=v(g);if(0==n)e=null;else{var r,t;0==l?(r=v(g),t=v(g)):(r=Ua(g),t=Ua(g));w(g,2);var B=g.b.getUint16(g.a,g.c);g.a+=2;a=r;b=b+h+t;for(h=0;h<B;h++){var jb=v(g);t=(jb&2147483648)>>>31;var l=jb&2147483647,Rc=v(g);v(g);if(1==t){e=null;break a}var ee=new J(d,c,b,b+l-1);f.push(new md(a/n,(a+Rc)/n,ee));a+=Rc;b+=l}e=f}}}}catch(Sc){if(!(Sc instanceof RangeError))throw Sc; }return e};function pd(a){this.a=a;this.b=0}pd.prototype.destroy=function(){this.a=null};pd.prototype.length=function(){return this.a.length};function qd(a){if(0==a.a.length)throw new RangeError("SegmentIndex: There is no first SegmentReference.");return a.a[0]}pd.prototype.X=function(){if(0==this.a.length)throw new RangeError("SegmentIndex: There is no last SegmentReference.");return this.a[this.a.length-1]}; pd.prototype.get=function(a){if(0>a||a>=this.a.length)throw new RangeError("SegmentIndex: The specified index is out of range.");return this.a[a]};function rd(a,b){var c=Bb(a.a,b);return 0<=c?a.a[c]:null}function sd(a,b){var c=b-a.b;0!=c&&(a.a=nd(a.a,c),a.b=b)};function td(){this.b=ud++;this.id=this.N=this.J=null;this.h=0;this.height=this.width=this.bandwidth=null;this.f=this.c="";this.g=[];this.G=!1;this.a=!0}var ud=0;td.prototype.destroy=function(){this.J&&(this.J.destroy(),this.J=null);this.N&&(this.N.destroy(),this.N=null)};function vd(a){var b=a.c||"";a.f&&(b+='; codecs="'+a.f+'"');return b}function wd(){this.b=xd++;this.id=null;this.contentType=this.lang="";this.f=!1;this.a=[];this.c=[]}var xd=0; wd.prototype.destroy=function(){for(var a=0;a<this.a.length;++a)this.a[a].destroy();this.c=this.a=null};function yd(a){for(var b=[],c=0;c<a.c.length;++c){var d=new zd;d.id=a.b;d.a=a.c[c];d.contentType=a.contentType;d.b=a.a.length?vd(a.a[0]):"";b.push(d)}return b}function Ad(){this.id=null;this.start=0;this.b=null;this.a=[]}Ad.prototype.destroy=function(){for(var a=0;a<this.a.length;++a)this.a[a].destroy();this.a=null};function Bd(){this.b=!1;this.f=this.h=this.g=null;this.c=0;this.a=[]} Bd.prototype.destroy=function(){for(var a=0;a<this.a.length;++a)this.a[a].destroy();this.a=null};function zd(){this.id=0;this.a=null;this.b=this.contentType=""};function Cd(a,b,c,d,e){F.call(this,a);this.c=b;this.a=new tb(c,d,e);this.s=this.B=this.b=null;this.C=!1;this.g=null;this.l=!1;this.i=null;this.o=!1;this.h=new H;this.j=this.f=!1;this.u=0;this.D=15;this.w=!1}p(Cd,F);Cd.prototype.A=function(a){null!=a.initialStreamBufferSize&&(this.u=Number(a.initialStreamBufferSize));null!=a.streamBufferSize&&(this.D=Number(a.streamBufferSize));null!=a.segmentRequestTime